diff --git a/src/third_party/ci20/LICENSE b/src/third_party/ci20/LICENSE
new file mode 100644
index 0000000..1941a11
--- /dev/null
+++ b/src/third_party/ci20/LICENSE
@@ -0,0 +1,28 @@
+Copyright 2008, Google Inc.
+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.
+    * 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 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.
diff --git a/src/third_party/ci20/mipsel-toolchain-sysroot-creator.sh b/src/third_party/ci20/mipsel-toolchain-sysroot-creator.sh
new file mode 100755
index 0000000..d01df8c
--- /dev/null
+++ b/src/third_party/ci20/mipsel-toolchain-sysroot-creator.sh
@@ -0,0 +1,518 @@
+#!/bin/bash
+# Copyright (c) 2012 The Native Client Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# This script is intended to build a mipsel-linux-gnu cross compilation
+# toolchain that runs on x86 linux and generates code for a little-endian,
+# hard-float, mips32 target.
+
+######################################################################
+# Config
+######################################################################
+
+set -o nounset
+set -o errexit
+
+readonly SCRIPT_DIR=$(dirname $0)
+
+readonly MAKE_OPTS="-j8"
+readonly ARCH="mips32"
+
+readonly GMP_URL="http://ftp.gnu.org/gnu/gmp/gmp-6.1.1.tar.bz2"
+readonly GMP_SHA1SUM="757d672e66d8e0afe60ca04735ab11c00d9346e4"
+
+readonly MPFR_URL="http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.4.tar.bz2"
+readonly MPFR_SHA1SUM="e3b0af77f18505184410d621fe0aae179e229dba"
+
+readonly MPC_URL="http://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz"
+readonly MPC_SHA1SUM="b8be66396c726fdc36ebb0f692ed8a8cca3bcc66"
+
+readonly GCC_URL="http://ftp.gnu.org/gnu/gcc/gcc-4.9.0/gcc-4.9.0.tar.bz2"
+readonly GCC_SHA1SUM="fbde8eb49f2b9e6961a870887cf7337d31cd4917"
+
+readonly BINUTILS_URL="http://ftp.gnu.org/gnu/binutils/binutils-2.26.tar.bz2"
+readonly BINUTILS_SHA1SUM="a637508cffeb2323b14bc8dd65378819768ad4ff"
+
+readonly KERNEL_URL="http://www.linux-mips.org/pub/linux/mips/kernel/v3.x/linux-3.18.3.tar.gz"
+readonly KERNEL_SHA1SUM="66c390838cc3401135be534135fe72813e92378b"
+
+readonly GLIBC_URL="http://ftp.gnu.org/gnu/glibc/glibc-2.19.tar.bz2"
+readonly GLIBC_SHA1SUM="382f4438a7321dc29ea1a3da8e7852d2c2b3208c"
+
+readonly INSTALL_ROOT=$(pwd)/toolchain/linux_x86/mips_trusted
+
+readonly TMP=$(pwd)/toolchain/tmp/crosstool-trusted
+
+readonly BUILD_DIR=${TMP}/build
+
+readonly JAIL_MIPS32=${INSTALL_ROOT}/sysroot
+
+readonly CROSS_TARBALL="mipsel_toolchain_sysroot"
+
+######################################################################
+# Helper
+######################################################################
+
+Banner() {
+  echo "######################################################################"
+  echo $*
+  echo "######################################################################"
+}
+
+SubBanner() {
+  echo "......................................................................"
+  echo $*
+  echo "......................................................................"
+}
+
+Usage() {
+  echo
+  echo "$0"
+  echo
+}
+
+DownloadOrCopy() {
+  local url=$1
+  local filename="${TMP}/${url##*/}"
+  local filetype="${url%%:*}"
+
+  if [ "${filename}" == "" ]; then
+    echo "Unknown error occured. Aborting."
+    exit 1
+  fi
+
+  if [[ "${filetype}" ==  "http" || ${filetype} ==  "https" ]] ; then
+    if [ ! -f "${filename}" ]; then
+      SubBanner "downloading from ${url} -> ${filename}"
+      wget ${url} -O ${filename}
+    fi
+  else
+    SubBanner "copying from ${url}"
+    cp ${url} ${filename}
+  fi
+}
+
+DownloadOrCopyAndVerify() {
+  local url=$1
+  local checksum=$2
+  local filename="${TMP}/${url##*/}"
+  local filetype="${url%%:*}"
+
+  if [ "${filename}" == "" ]; then
+    echo "Unknown error occured. Aborting."
+    exit 1
+  fi
+
+  if [[ "${filetype}" ==  "http" || ${filetype} ==  "https" ]] ; then
+    if [ ! -f "${filename}" ]; then
+      SubBanner "downloading from ${url} -> ${filename}"
+      wget ${url} -O ${filename}
+    fi
+    if [ "${checksum}" != "nochecksum" ]; then
+      if [ "$(sha1sum ${filename} | cut -d ' ' -f 1)" != "${checksum}" ]; then
+        echo "${filename} sha1sum failed. Deleting file and aborting."
+        rm -f ${filename}
+        exit 1
+      fi
+    fi
+  else
+    SubBanner "copying from ${url}"
+    cp ${url} ${filename}
+  fi
+}
+
+######################################################################
+#
+######################################################################
+
+# Some sanity checks to make sure this script is run from the right place
+# with the right tools.
+SanityCheck() {
+  Banner "Sanity Checks"
+
+  if ! mkdir -p "${INSTALL_ROOT}" ; then
+     echo "ERROR: ${INSTALL_ROOT} can't be created."
+    exit -1
+  fi
+
+  for tool in wget ; do
+    if ! which ${tool} ; then
+      echo "Required binary $tool not found."
+      echo "Exiting."
+      exit 1
+    fi
+  done
+}
+
+ClearInstallDir() {
+  Banner "clearing dirs in ${INSTALL_ROOT}"
+  rm -rf ${INSTALL_ROOT}/*
+  mkdir -p ${JAIL_MIPS32}
+}
+
+ClearBuildDir() {
+  Banner "clearing dirs in ${BUILD_DIR}"
+  rm -rf ${BUILD_DIR}/*
+}
+
+CreateTarBall() {
+  local tarball=$1
+  Banner "creating tar ball ${tarball}"
+  tar cfz ${tarball}.tgz -C ${INSTALL_ROOT} .
+}
+
+# Download the toolchain source tarballs or use a local copy when available.
+DownloadOrCopyAndInstallToolchain() {
+  Banner "Installing toolchain"
+
+  tarball="${TMP}/${GCC_URL##*/}"
+  DownloadOrCopyAndVerify ${GCC_URL} ${GCC_SHA1SUM}
+  SubBanner "extracting from ${tarball}"
+  tar jxf ${tarball} -C ${TMP}
+
+  pushd ${TMP}/gcc-*
+
+  local tarball="${TMP}/${GMP_URL##*/}"
+  DownloadOrCopyAndVerify ${GMP_URL} ${GMP_SHA1SUM}
+  SubBanner "extracting from ${tarball}"
+  tar jxf ${tarball}
+  local filename=`ls | grep gmp\-`
+  rm -f gmp
+  ln -s ${filename} gmp
+  # Fix gmp configure problem with flex.
+  sed -i "s/m4-not-needed/m4/" gmp/configure
+
+  local tarball="${TMP}/${MPFR_URL##*/}"
+  DownloadOrCopyAndVerify ${MPFR_URL} ${MPFR_SHA1SUM}
+  SubBanner "extracting from ${tarball}"
+  tar jxf ${tarball}
+  local filename=`ls | grep mpfr\-`
+  rm -f mpfr
+  ln -s ${filename} mpfr
+
+  local tarball="${TMP}/${MPC_URL##*/}"
+  DownloadOrCopyAndVerify ${MPC_URL} ${MPC_SHA1SUM}
+  SubBanner "extracting from ${tarball}"
+  tar zxf ${tarball}
+  local filename=`ls | grep mpc\-`
+  rm -f mpc
+  ln -s ${filename} mpc
+
+  popd
+
+  local tarball="${TMP}/${BINUTILS_URL##*/}"
+  DownloadOrCopyAndVerify ${BINUTILS_URL} ${BINUTILS_SHA1SUM}
+  SubBanner "extracting from ${tarball}"
+  tar jxf ${tarball} -C ${TMP}
+
+  tarball="${TMP}/${KERNEL_URL##*/}"
+  DownloadOrCopyAndVerify ${KERNEL_URL} ${KERNEL_SHA1SUM}
+  SubBanner "extracting from ${tarball}"
+  tar zxf ${tarball} -C ${TMP}
+
+  tarball="${TMP}/${GLIBC_URL##*/}"
+  DownloadOrCopyAndVerify ${GLIBC_URL} ${GLIBC_SHA1SUM}
+  SubBanner "extracting from ${tarball}"
+  tar jxf ${tarball} -C ${TMP}
+
+  Banner "Preparing the code"
+
+  # Fix a minor syntax issue in tc-mips.c.
+  local OLD_TEXT="as_warn_where (fragp->fr_file, fragp->fr_line, msg);"
+  local NEW_TEXT="as_warn_where (fragp->fr_file, fragp->fr_line, \"%s\", msg);"
+  local FILE_NAME="${TMP}/binutils-2.26/gas/config/tc-mips.c"
+  sed -i "s/${OLD_TEXT}/${NEW_TEXT}/g" "${FILE_NAME}"
+
+  export PATH=${INSTALL_ROOT}/bin:$PATH
+
+  Banner "Building binutils"
+
+  rm -rf ${BUILD_DIR}/binutils/
+  mkdir -p ${BUILD_DIR}/binutils/
+  pushd ${BUILD_DIR}/binutils/
+
+  SubBanner "Configuring"
+  ${TMP}/binutils-2.26/configure \
+    --prefix=${INSTALL_ROOT}     \
+    --target=mipsel-linux-gnu    \
+    --with-sysroot=${JAIL_MIPS32}
+
+  SubBanner "Make"
+  make ${MAKE_OPTS} all-binutils all-gas all-ld
+
+  SubBanner "Install"
+  make ${MAKE_OPTS} install-binutils install-gas install-ld
+
+  popd
+
+  Banner "Building GCC (initial)"
+
+  rm -rf ${BUILD_DIR}/gcc/initial
+  mkdir -p ${BUILD_DIR}/gcc/initial
+  pushd ${BUILD_DIR}/gcc/initial
+
+  SubBanner "Configuring"
+  ${TMP}/gcc-4.9.0/configure \
+    --prefix=${INSTALL_ROOT} \
+    --disable-libssp         \
+    --disable-libgomp        \
+    --disable-libmudflap     \
+    --disable-fixed-point    \
+    --disable-decimal-float  \
+    --with-mips-plt          \
+    --with-endian=little     \
+    --with-arch=${ARCH}      \
+    --enable-languages=c     \
+    --with-newlib            \
+    --without-headers        \
+    --disable-shared         \
+    --disable-threads        \
+    --disable-libquadmath    \
+    --disable-libatomic      \
+    --target=mipsel-linux-gnu
+
+  SubBanner "Make"
+  make ${MAKE_OPTS} all
+
+  SubBanner "Install"
+  make ${MAKE_OPTS} install
+
+  popd
+
+  Banner "Installing Linux kernel headers"
+  pushd ${TMP}/linux-3.18.3
+  make headers_install ARCH=mips INSTALL_HDR_PATH=${JAIL_MIPS32}/usr
+  popd
+
+  Banner "Building GLIBC"
+
+  rm -rf ${BUILD_DIR}/glibc/final
+  mkdir -p ${BUILD_DIR}/glibc/final
+  pushd ${BUILD_DIR}/glibc/final
+
+  BUILD_CC=gcc                      \
+  AR=mipsel-linux-gnu-ar            \
+  RANLIB=mipsel-linux-gnu-ranlibi   \
+  CC=mipsel-linux-gnu-gcc           \
+  CXX=mipsel-linux-gnu-g++          \
+  ${TMP}/glibc-2.19/configure       \
+    --prefix=/usr                   \
+    --enable-add-ons                \
+    --host=mipsel-linux-gnu         \
+    --disable-profile               \
+    --without-gd                    \
+    --without-cvs                   \
+    --build=i686-pc-linux-gnu       \
+    --with-headers=${JAIL_MIPS32}/usr/include
+
+  SubBanner "Make"
+  make ${MAKE_OPTS} all
+
+  SubBanner "Install"
+  make ${MAKE_OPTS} install install_root=${JAIL_MIPS32}
+
+  popd
+
+  Banner "Building GCC (final)"
+
+  rm -rf ${BUILD_DIR}/gcc/final
+  mkdir -p ${BUILD_DIR}/gcc/final
+  pushd ${BUILD_DIR}/gcc/final
+
+  ${TMP}/gcc-4.9.0/configure  \
+    --prefix=${INSTALL_ROOT}  \
+    --disable-libssp          \
+    --disable-libgomp         \
+    --disable-libmudflap      \
+    --disable-fixed-point     \
+    --disable-decimal-float   \
+    --with-mips-plt           \
+    --with-endian=little      \
+    --with-arch=${ARCH}       \
+    --target=mipsel-linux-gnu \
+    --enable-__cxa_atexit     \
+    --enable-languages=c,c++  \
+    --with-sysroot=${JAIL_MIPS32}
+
+  SubBanner "Make"
+  make ${MAKE_OPTS} all
+
+  SubBanner "Install"
+  make ${MAKE_OPTS} install
+
+  popd
+}
+
+# ----------------------------------------------------------------------
+# mips32 deb files to complete our code sourcery jail
+# ----------------------------------------------------------------------
+readonly REPO_DEBIAN=http://ftp.debian.org/debian
+readonly MIPS32_PACKAGES=${REPO_DEBIAN}/dists/jessie/main/binary-mipsel/Packages.xz
+
+readonly BASE_PACKAGELIST_MIPS32=${SCRIPT_DIR}/packagelist.jessie.mipsel.base
+readonly EXTRA_PACKAGELIST_MIPS32=${SCRIPT_DIR}/packagelist.jessie.mipsel.extra
+readonly TMP_BASE_PKG_MIPS32=${TMP}/packagelist.generated.jessie.mipsel.base
+readonly TMP_EXTRA_PKG_MIPS32=${TMP}/packagelist.generated.jessie.mipsel.extra
+
+GeneratePackageLists() {
+  local packages=
+  local TMP_PACKAGELIST=
+  Banner "Generating Cobalt package lists for mips32"
+  rm -f ${TMP}/Packages.bz2
+  DownloadOrCopy ${MIPS32_PACKAGES}
+  xzcat ${TMP}/Packages.xz\
+    | egrep '^(Package:|Filename:)' > ${TMP}/Packages_mipsel
+
+  echo -n > ${TMP_EXTRA_PKG_MIPS32}
+  TMP_PACKAGELIST=${TMP_EXTRA_PKG_MIPS32}
+  packages=$(cat ${EXTRA_PACKAGELIST_MIPS32})
+
+  for pkg in ${packages} ; do
+    echo ${pkg}
+    grep  -A 1 "${pkg}\$" ${TMP}/Packages_mipsel\
+      | egrep -o "pool/.*" >> ${TMP_PACKAGELIST}
+  done
+}
+
+InstallMissingLibraries() {
+  local DEP_FILES_NEEDED_MIPS32=
+
+  DEP_FILES_NEEDED_MIPS32=$(cat ${TMP_EXTRA_PKG_MIPS32})
+
+  for file in ${DEP_FILES_NEEDED_MIPS32} ; do
+    local package="${TMP}/${file##*/}"
+    Banner "installing ${file}"
+    DownloadOrCopy ${REPO_DEBIAN}/${file}
+    SubBanner "extracting to ${JAIL_MIPS32}"
+    dpkg --fsys-tarfile ${package}\
+      | tar -xvf - -C ${JAIL_MIPS32}
+  done
+}
+
+# Workaround for missing headers since pkg-config is not working correctly.
+FixIncludes() {
+  Banner "Fixing includes"
+  pushd ${JAIL_MIPS32}/usr/include/glib-2.0
+    ln -s ../../lib/glib-2.0/include/glibconfig.h .
+  popd
+
+  pushd ${JAIL_MIPS32}/usr/include/gtk-2.0
+    ln -s ../../lib/gtk-2.0/include/gdkconfig.h .
+  popd
+
+  pushd ${JAIL_MIPS32}/usr/include/dbus-1.0/dbus
+    ln -s ../../../lib/dbus-1.0/include/dbus/dbus-arch-deps.h .
+  popd
+
+  pushd ${JAIL_MIPS32}/usr/include
+    cp ./mipsel-linux-gnu/sys/* ./sys/
+    mkdir -p bits
+    cp ./mipsel-linux-gnu/bits/* ./bits/
+    mkdir -p gnu
+    cp ./mipsel-linux-gnu/gnu/* ./gnu/
+    mkdir -p asm
+    cp ./mipsel-linux-gnu/asm/* ./asm/
+    cp ./mipsel-linux-gnu/openssl/* ./openssl/
+  popd
+}
+
+FixLinks() {
+  Banner "Fixing links"
+  pushd ${JAIL_MIPS32}/lib/
+    mv mipsel-linux-gnu/* .
+    rm -rf mipsel-linux-gnu
+    ln -s . mipsel-linux-gnu
+  popd
+
+  pushd ${JAIL_MIPS32}/usr/lib/
+    mkdir -p pkgconfig
+    mv mipsel-linux-gnu/pkgconfig/* pkgconfig/
+    rm -rf mipsel-linux-gnu/pkgconfig
+    cp -r mipsel-linux-gnu/* .
+    rm -rf mipsel-linux-gnu
+    ln -s . mipsel-linux-gnu
+  popd
+
+  mkdir -p ${JAIL_MIPS32}/usr/share
+
+  pushd ${JAIL_MIPS32}/usr/share/
+    mkdir -p pkgconfig
+  popd
+
+  pushd ${JAIL_MIPS32}/usr/lib/
+    rm -f libgcc_s.so*
+    ln -s ../../../mipsel-linux-gnu/lib/libgcc_s.so.1 .
+    ln -s libgcc_s.so.1 libgcc_s.so
+  popd
+}
+
+FixLibs() {
+  Banner "Fixing libraries"
+
+  readonly liblist="libanl.co       \
+                    libBrokenLocale.so \
+                    libbz2.so       \
+                    libcap.so       \
+                    libcidn.so      \
+                    libcom_err.so   \
+                    libcrypt.so     \
+                    libdbus-1.so    \
+                    libdl.so        \
+                    libexpat.so     \
+                    libglib-2.0.so  \
+                    libgpg-error.so \
+                    libkeyutils.so  \
+                    libnsl.so       \
+                    libnss_compat.so\
+                    libnss_dns.so   \
+                    libnss_files.so \
+                    libnss_hesiod.so\
+                    libnss_nisplus.so\
+                    libnss_nis.so   \
+                    libpamc.so      \
+                    libpam_misc.so  \
+                    libpam.so       \
+                    libpci.so       \
+                    libpcre.so      \
+                    libpng12.so     \
+                    libresolv.so    \
+                    librt.so        \
+                    libthread_db.so \
+                    libutil.so      \
+                    libudev.so      \
+                    libz.so"
+  readonly liblist2="libpng12.so.0"
+
+  pushd ${JAIL_MIPS32}/usr/lib/
+    for library in ${liblist}; do
+      rm -f ${library}
+      ln -s ../../lib/${library}.[0123] ${library}
+    done
+    for library2 in ${liblist2}; do
+      rm -f ${library2}
+      ln -s ../../lib/${library2} ${library2}
+    done
+    rm -f libpython2.7.a
+    ln -s ./python2.7/config-mipsel-linux-gnu/libpython2.7.a libpython2.7.a
+    rm -f libm.so
+    ln -s ../../lib/libm.so.6 libm.so
+  popd
+}
+
+######################################################################
+# Main
+######################################################################
+
+mkdir -p ${TMP}
+SanityCheck
+ClearInstallDir
+ClearBuildDir
+DownloadOrCopyAndInstallToolchain
+GeneratePackageLists
+InstallMissingLibraries
+FixLinks
+FixLibs
+FixIncludes
+CreateTarBall ${CROSS_TARBALL}
+
diff --git a/src/third_party/ci20/packagelist.jessie.mipsel.base b/src/third_party/ci20/packagelist.jessie.mipsel.base
new file mode 100644
index 0000000..8a3d300
--- /dev/null
+++ b/src/third_party/ci20/packagelist.jessie.mipsel.base
@@ -0,0 +1,4 @@
+libssl1.0.0
+libssl-dev
+zlib1g
+zlib1g-dev
diff --git a/src/third_party/ci20/packagelist.jessie.mipsel.extra b/src/third_party/ci20/packagelist.jessie.mipsel.extra
new file mode 100644
index 0000000..d99b951
--- /dev/null
+++ b/src/third_party/ci20/packagelist.jessie.mipsel.extra
@@ -0,0 +1,273 @@
+comerr-dev
+krb5-multidev
+libaa1
+libaa1-dev
+libasound2
+libasound2-dev
+libasyncns0
+libatk1.0-0
+libatk1.0-dev
+libattr1
+libx264-142
+libx264-dev
+libxau6
+libxau-dev
+libxml2
+libxml2-dev
+libxvidcore4
+libavahi-client3
+libavahi-client-dev
+libavahi-common3
+libavahi-common-dev
+libavcodec56
+libavcodec-dev
+libavformat56
+libavformat-dev
+libavutil54
+libavutil-dev
+libavresample2
+libavresample-dev
+libbz2-1.0
+libbz2-dev
+libc6
+libc6-dev
+libcairo2
+libcairo2-dev
+libcairo-gobject2
+libcairo-script-interpreter2
+libcap2
+libcap-dev
+libcups2
+libcups2-dev
+libdbus-1-3
+libdbus-1-dev
+libdbus-glib-1-2
+libdbus-glib-1-dev
+libdirectfb-1.2-9
+libdirectfb-dev
+libdrm2
+libdrm-nouveau2
+libdrm-radeon1
+libdrm-dev
+libcomerr2
+libegl1-mesa
+libegl1-mesa-dev
+libexif12
+libexif-dev
+libexpat1
+libexpat1-dev
+libffi6
+libffi-dev
+libflac8
+libfontconfig1
+libfontconfig1-dev
+libfreetype6
+libfreetype6-dev
+libgbm1
+libgbm-dev
+libgconf-2-4
+libgconf2-dev
+libgcrypt11-dev
+libgcrypt20
+libgcr-3-dev
+libgcr-base-3-1
+libgcr-ui-3-1
+libgdk-pixbuf2.0-0
+libgdk-pixbuf2.0-dev
+libgdk-pixbuf2.0-common
+libgl1-mesa-glx
+libgl1-mesa-dev
+libglapi-mesa
+libgles2-mesa
+libgles2-mesa-dev
+libgmp10
+libgnutls-deb0-28
+libgnutls-openssl27
+libgnutls28-dev
+libgnutlsxx28
+libgpg-error0
+libgpg-error-dev
+libgssapi-krb5-2
+libgtk2.0-0
+libgtk2.0-dev
+libglib2.0-0
+libglib2.0-dev
+libgnome-keyring0
+libgnome-keyring-dev
+libgsm1
+libgssrpc4
+libhogweed2
+libice6
+libicu-dev
+libicu52
+libjpeg62-turbo
+libjpeg62-turbo-dev
+libjson-c2
+libkadm5clnt-mit9
+libkadm5srv-mit9
+libkdb5-7
+libk5crypto3
+libkeyutils1
+libkeyutils-dev
+libkrb5-3
+libkrb5-dev
+libkrb5support0
+liblzma5
+libmp3lame0
+libnettle4
+libnspr4
+libnspr4-0d
+libnspr4-dev
+libnss3
+libnss3-1d
+libnss3-dev
+libogg0
+libopenjpeg5
+libopus0
+liborbit2
+liborbit-2-0
+liborbit2-dev
+liborc-0.4-0
+libp11-kit0
+libp11-kit-dev
+libpam0g
+libpam0g-dev
+libpango-1.0-0
+libpango1.0-0
+libpango1.0-dev
+libpangocairo-1.0-0
+libpangoft2-1.0-0
+libpangoxft-1.0-0
+libpci3
+libpci-dev
+libpcre3
+libpcre3-dev
+libpcrecpp0
+libpixman-1-0
+libpixman-1-dev
+libpng12-0
+libpng12-dev
+libpulse0
+libpulse-dev
+libpulse-mainloop-glib0
+libpthread-stubs0-dev
+libpython2.7
+librtmp1
+libschroedinger-1.0-0
+libselinux1
+libsm6
+libsnappy1
+libsnappy-dev
+libsndfile1
+libspeex1
+libsoup-gnome2.4-1
+libsoup-gnome2.4-dev
+libspeechd2
+libspeechd-dev
+libsrtp0
+libsrtp0-dev
+libssl1.0.0
+libssl-dev
+libstdc++6
+libsystemd0
+libsqlite3-0
+libsqlite3-dev
+libtasn1-6
+libtasn1-6-dev
+libtheora0
+libudev1
+libudev-dev
+libuuid1
+libva1
+libvorbis0a
+libvorbisenc2
+libvpx1
+libwayland-client0
+libwayland-egl1-mesa
+libwayland-server0
+libwebkitgtk-1.0-0
+libwrap0
+libx11-6
+libx11-dev
+libx11-xcb1
+libx11-xcb-dev
+libxext6
+libxext-dev
+libxau6
+libxau-dev
+libxcb-dri2-0
+libxcb-dri2-0-dev
+libxcb-glx0
+libxcb-glx0-dev
+libxcb-image0
+libxcb-image0-dev
+libxcb1
+libxcb1-dev
+libxcb-icccm4
+libxcb-icccm4-dev
+libxcb-randr0
+libxcb-randr0-dev
+libxcb-render0
+libxcb-render0-dev
+libxcb-render-util0
+libxcb-render-util0-dev
+libxcb-keysyms1
+libxcb-keysyms1-dev
+libxcb-sync1
+libxcb-sync-dev
+libxcb-shape0
+libxcb-shape0-dev
+libxcb-shm0
+libxcb-shm0-dev
+libxcb-util0
+libxcb-util0-dev
+libxcb-xinerama0
+libxcb-xinerama0-dev
+libxcb-xfixes0
+libxcb-xfixes0-dev
+libxcb-xkb1
+libxcb-xkb-dev
+libxcomposite1
+libxcomposite-dev
+libxcursor1
+libxcursor-dev
+libxdamage1
+libxdamage-dev
+libxdmcp6
+libxdmcp-dev
+libxfixes3
+libxfixes-dev
+libxi6
+libxi-dev
+libxinerama1
+libxinerama-dev
+libxkbcommon0
+libxkbcommon-dev
+libxrandr2
+libxrandr-dev
+libxrender1
+libxrender-dev
+libxss1
+libxss-dev
+libxt6
+libxt-dev
+libxtst6
+libxtst-dev
+linux-libc-dev
+mesa-common-dev
+python2.7
+python2.7-dev
+x11proto-core-dev
+x11proto-composite-dev
+x11proto-damage-dev
+x11proto-fixes-dev
+x11proto-input-dev
+x11proto-kb-dev
+x11proto-randr-dev
+x11proto-record-dev
+x11proto-render-dev
+x11proto-scrnsaver-dev
+x11proto-xext-dev
+x11proto-xinerama-dev
+zlib1g
+zlib1g-dev
