--- pidgin-2.4.1.orig/debian/pidgin-dbg.preinst +++ pidgin-2.4.1/debian/pidgin-dbg.preinst @@ -0,0 +1,42 @@ +#!/bin/sh +# preinst script for pidgin-dbg +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `install' +# * `install' +# * `upgrade' +# * `abort-upgrade' +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + install|upgrade) + if dpkg --compare-versions "$2" lt 1:2.1.1-2; then + if [ -h /usr/share/doc/pidgin-dbg ]; then + rm /usr/share/doc/pidgin-dbg + fi + fi + ;; + + abort-upgrade) + ;; + + *) + echo "preinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + --- pidgin-2.4.1.orig/debian/rules +++ pidgin-2.4.1/debian/rules @@ -0,0 +1,70 @@ +#!/usr/bin/make -f + +include /usr/share/cdbs/1/class/autotools.mk +include /usr/share/cdbs/1/rules/simple-patchsys.mk +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/class/gnome.mk +include /usr/share/cdbs/1/rules/utils.mk + +## Read version numbers from the changelog +version=$(shell dpkg-parsechangelog | grep '^Version: ' | sed -e 's/^Version: //' | sed -e 's/-.*//') +major=$(shell echo ${version} | cut -d. -f1-2) +micro=$(shell echo ${version} | cut -d. -f3 | cut -d+ -f1) +nextmicro=$(shell expr ${micro} + 1) + +# Build into a separate directory +DEB_BUILDDIR = $(DEB_SRCDIR)/build +DEB_CONFIGURE_SCRIPT = $(CURDIR)/configure +DEB_CONFIGURE_INVOKE = cd "$(DEB_BUILDDIR)"; $(DEB_CONFIGURE_SCRIPT_ENV) \ + ../configure $(DEB_CONFIGURE_NORMAL_ARGS) +LDFLAGS = -Wl,--as-needed +CFLAGS = -fstack-protector + +DEB_CONFIGURE_EXTRA_FLAGS := --enable-perl --with-zephyr=/usr --enable-dbus --enable-gnutls=no --enable-nss=yes --enable-cyrus-sasl --enable-nm --disable-silc +DEB_DH_MAKESHLIBS_ARGS_pidgin := -V -X/usr/lib/pidgin +DEB_DH_SHLIBDEPS_ARGS_pidgin := -X/usr/lib/pidgin/gevolution.so -X/usr/lib/pidgin/cap.so -- -dSuggests debian/pidgin/usr/lib/pidgin/cap.so -dDepends + +# finch package +DEB_DH_MAKESHLIBS_ARGS_finch := -V -X/usr/lib/finch +DEB_DH_SHLIBDEPS_ARGS_finch := -X/usr/lib/finch/gntclipboard.so -X/usr/lib/finch/gntgf.so -- -dSuggests debian/finch/usr/lib/finch/gntclipboard.so debian/finch/usr/lib/finch/gntgf.so -dDepends + +# libpurple package +DEB_DH_MAKESHLIBS_ARGS_libpurple0 := -V "libpurple0 (>= $(major).0)" -X/usr/lib/purple-2 +DEB_DH_SHLIBDEPS_ARGS_libpurple0 := -X/usr/lib/purple-2/tcl.so -- -dSuggests debian/libpurple0/usr/lib/purple-2/tcl.so -dDepends + +# for pidgin-dev, extra documentation is installed manually below +DEB_INSTALL_MANPAGES_pidgin-dev := debian/dh_pidgin.1 + +clean:: + rm -f debian/copyright + +common-install-impl:: + rm -f debian/tmp/usr/lib/pidgin/relnot.so # release notification plugin + rm -f debian/tmp/usr/bin/{nullclient,purple-client-example} # examples + rm -rf debian/tmp/usr/share/purple/ca-certs # we use /etc/ssl/certs + find debian/tmp/usr/lib -name '*.la' -print0 | xargs -0 rm + # Include author lists in copyright file + sed -e '/@PIDGIN_COPYRIGHT@/r COPYRIGHT' \ + -e '/@PIDGIN_COPYRIGHT@/d' \ + -e '/@OSCAR_AUTHORS@/r libpurple/protocols/oscar/AUTHORS' \ + -e '/@OSCAR_AUTHORS@/d' \ + debian/copyright.in > debian/copyright + # Translation domain to desktop file + echo 'X-Ubuntu-Gettext-Domain=pidgin' >> debian/tmp/usr/share/applications/pidgin.desktop + # Call intltool-update to build the .pot + cd $(DEB_SRCDIR)/po; intltool-update -p + +cleanbuilddir/pidgin:: + rm -f doc/TracHeader.html doc/TracFooter.html + rm -rf $(DEB_SRCDIR)/build + +build/pidgin-dev:: + pod2man debian/dh_pidgin > debian/dh_pidgin.1 + touch doc/TracHeader.html doc/TracFooter.html + cd build; make docs + +binary-install/pidgin-dev:: + dh_installdocs -ppidgin-dev debian/README.Debian.dev + +cleanbuilddir/pidgin-dev:: + rm -f debian/dh_pidgin.1 --- pidgin-2.4.1.orig/debian/dh_pidgin +++ pidgin-2.4.1/debian/dh_pidgin @@ -0,0 +1,67 @@ +#! /usr/bin/perl -w + +=head1 NAME + +dh_pidgin- depend on the appropriate version of pidgin + +=cut + +use strict; +use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B [S>] + +=head1 DESCRIPTION + +dh_pidgin is a debhelper program that is responsible for generating +the ${misc:Depends} substutions that depend on the correct versions of pidgin, +and adding them to substvars files. + +To use this program, make sure it is executed in debian/rules at some point +during the build process (normally during the install), and make sure that +your Depends: field in debian/control contains ${misc:Depends}. + +=cut + +init(); + +my ($pidgin_epoch, $pidgin_version, $next_version, $pidgin_major, $pidgin_minor, + $pidgin_rest); +$pidgin_version = `dpkg -s pidgin`; +$pidgin_version =~ /^Version:\s*([\S]+)/m; +$pidgin_version = $1; + +if (! defined $pidgin_version) { + error("pidgin is not installed. (Probably forgot to Build-Depend on pidgin)"); +} +if ($pidgin_version =~ m/(\d+:)?(\d+)\.(\d+)\.(.*)/) { + $pidgin_epoch = $1 || ""; + $pidgin_major = $2; + $pidgin_minor = $3; + $pidgin_rest = $4; +} else { + error("Unable to parse pidgin version out of '$pidgin_version'"); +} + +$next_version = $pidgin_epoch . ($pidgin_major + 1) . ".0"; +$pidgin_version = $pidgin_epoch . $pidgin_major . "." .$pidgin_minor; + +foreach my $package (@{$dh{DOPACKAGES}}) { + my $tmp=tmpdir($package); + addsubstvar($package, "misc:Depends", "pidgin", ">= $pidgin_version"); + addsubstvar($package, "misc:Depends", "pidgin", "<< $next_version"); + addsubstvar($package, "misc:Conflicts", "pidgin", ">= $next_version"); +} + +=head1 SEE ALSO + +L + +=head1 AUTHOR + +Written by Tollef Fog Heen , based on various other +dh_* commands written by Joey Hess . + +=cut --- pidgin-2.4.1.orig/debian/changelog +++ pidgin-2.4.1/debian/changelog @@ -0,0 +1,2441 @@ +pidgin (1:2.4.1-1ubuntu2.7) hardy-proposed; urgency=low + + * debian/patches/86_yahoo_protocol_fix.patch: + - Backport upstream changes to use version 16 of the Yahoo! + Messenger Protocol. The old authentication mechanism was + disabled, meaning that it can no longer be used for signing in + to Yahoo! services (LP: #389322) + + -- Chris Coulson Fri, 30 Oct 2009 15:02:16 +0000 + +pidgin (1:2.4.1-1ubuntu2.6) hardy-security; urgency=low + + * SECURITY UPDATE: arbitrary code execution via crafted MSNSLP packet + (LP: #415863) + - debian/patches/85_security_CVE-2009-2694.patch: properly destroy + slpmsg in libpurple/protocols/{msn,msnp9}/slplink.c. + - CVE-2009-2694 + + -- Marc Deslauriers Wed, 19 Aug 2009 12:52:47 -0400 + +pidgin (1:2.4.1-1ubuntu2.5) hardy-security; urgency=low + + * SECURITY UPDATE: denial of service via ICQWebMessage message type in + OSCAR protocol. (LP: #393736) + - debian/patches/84_security_CVE-2009-1889.patch: make the check better + in libpurple/protocols/oscar/oscar.c, only allocate memory if len is + valid in libpurple/protocols/oscar/bstream.c. + - CVE-2009-1889 + + -- Marc Deslauriers Fri, 03 Jul 2009 11:14:37 -0400 + +pidgin (1:2.4.1-1ubuntu2.4) hardy-security; urgency=low + + * SECURITY UPDATE: denial of service or possible code execution in XMPP + file transfer + - debian/patches/81_security_CVE-2009-1373.patch: calculate lengths + correctly in libpurple/protocols/jabber/si.c. + - CVE-2009-1373 + * SECURITY UPDATE: denial of service in PurpleCircBuffer object expansion + - debian/patches/82_security_CVE-2009-1375.patch: add an additional + check in libpurple/circbuffer.c. + - CVE-2009-1375 + * SECURITY UPDATE: arbitrary code execution via crafted MSN message + - debian/patches/83_security_CVE-2009-1376.patch: switch offset + variable to guint64 in libpurple/protocols/msn/slplink.c. + - CVE-2009-1376 + + -- Marc Deslauriers Mon, 25 May 2009 17:24:40 +0200 + +pidgin (1:2.4.1-1ubuntu2.3) hardy-proposed; urgency=low + + * Apply upstream patch to fix connexion issue with new ICQ + protocol: debian/patches/80_fix_ICQ_new_protocol.patch (LP: #340151) + + -- Didier Roche Tue, 10 Mar 2009 18:31:01 +0100 + +pidgin (1:2.4.1-1ubuntu2.2) hardy-security; urgency=low + + * SECURITY UPDATE: code execution via integer overflow in the MSN protocol + handler (LP: #245770) + - debian/patches/71_SECURITY_CVE-2008-2927.patch: fix + msn_slplink_process_msg() in src/protocols/msn/slplink.c and src/ + protocols/msnp9/slplink.c by checking against maximum size G_MAXSIZE. + - CVE-2008-2927 + * SECURITY UPDATE: denial of service via specially formulated long + filename (LP: #245769) + - debian/patches/72_SECURITY_CVE-2008-2955.patch: change + src/protocols/msn/[slplink.c,slpcall.*] to make sure xfer structure still + exists before putting dest_fp in it. + - CVE-2008-2955 + * SECURITY UPDATE: denial of service via resource exhaustion from arbitrary + URL in UPnP functionality (LP: #245769) + - debian/patches/73_SECURITY_CVE-2008-2957.patch: modified + libpurple/[upnp.c,util.*] to add purple_util_fetch_url_request_len() in + order to limit http downloads to 128k. + - CVE-2008-2957 + * SECURITY UPDATE: man in the middle attack from lack of certificate + validation in nss plugin (LP: #251304) + - debian/patches/74_SECURITY_CVE-2008-3532.patch: modified + libpurple/plugins/ssl/ssl-nss.c to add certificate validation code. + - CVE-2008-3532 + + -- Marc Deslauriers Thu, 20 Nov 2008 19:58:43 -0500 + +pidgin (1:2.4.1-1ubuntu2.1) hardy-proposed; urgency=low + + * Apply patch from upstream to fix issue where ICQ would not connect + (LP: #244591) + + -- Iain Lane Wed, 02 Jul 2008 02:43:32 +0100 + +pidgin (1:2.4.1-1ubuntu2) hardy; urgency=low + + * rebuild due to liblaunchpad-integration soname change + + -- Sebastien Bacher Wed, 09 Apr 2008 22:29:03 +0200 + +pidgin (1:2.4.1-1ubuntu1) hardy; urgency=low + + * Sync with Debian, remaining Ubuntu changes; (LP: #211769) + - debian/control: + + Set Maintainer to Ubuntu Core Developers. + + Add build-deps on liblaunchpad-integration-dev, intltool, + libnm-glib-dev (for --enable-nm) + + Drop build-deps on libsilc-1.1-2-dev | libsilc-dev (>= 1.1.1) as + this library is in universe. + + Drop the libpurple0 recommends on libpurple-bin. + + Add a gaim transitionnal package for upgrades. + + Moved finch's libx11-6 dependency to Suggests + - Ship compatibility symlinks via debian/gaim.links + - debian/rules: + + Pass --enable-nm to configure to enable NetworkManager support + + Pass --disable-silc to configure to disable silc support even if + it's installed in the build environment. + + Add X-Ubuntu-Gettext-Domain to the desktop file and update the + translation templates in common-install-impl::. + + Added necessary arguments to dh_shlibdeps for finch + - Update debian/prefs.xml to set the notify plugin prefs + /plugins/gtk/X11/notify/* and set /pidgin/plugins/loaded to load + the notify plugin + - debian/patches: + + 02_lpi for LP integration + + 04_let_crasher_for_apport to stop catching the SIGSEGV signal + and let apport handle it + + 05_default_to_irc_ubuntu_com to set the default IRC + server to irc.ubuntu.com. + + 70_autoconf patch + + -- Pedro Fragoso Fri, 04 Apr 2008 02:18:00 +0100 + +pidgin (2.4.1-1) unstable; urgency=low + + * New upstream release + - Fixes crash in XMPP if network connection goes down after resume + (Closes: #472057) + + -- Ari Pollak Tue, 01 Apr 2008 19:27:47 -0400 + +pidgin (2.4.0-2) unstable; urgency=low + + * Add finch.pc to finch-dev + * debian/patches/22_zephyr-crash.patch: + - Add patch from upstream to prevent crash in Zephyr when reading + accounts.xml file (Closes: #470947) + * debian/patches/23_empty-edit.patch: + - Add patch from upstream to prevent an invisible edit box in + message windows (Closes: #471365) + * debian/patches/24_debian-gconf.patch: + - Fix an earlier screwup where we set /pidgin/browsers/command in + prefs.xml as a string when it should've been a path, so it was never + recognized properly and prevented people from using a custom browser if + they had run 2.3.1-1. (Closes: #472929) + + -- Ari Pollak Fri, 28 Mar 2008 20:39:43 -0400 + +pidgin (2.4.0-1) unstable; urgency=low + + * New upstream release + * Install manpages into their appropriate packages, not pidgin-data + (Closes: #459908) + + -- Ari Pollak Fri, 29 Feb 2008 21:52:50 -0500 + +pidgin (2.3.1-3) unstable; urgency=low + + * Seed libpurple0.symbols file + * Build with -fstack-protector + * Add ${perl:Depends} to libpurple0 and pidgin to get the proper perlapi + versioning (Closes: #463143) + * Fix syntax problem in pidgin manpage (Closes: #463021) + + -- Ari Pollak Sun, 24 Feb 2008 15:17:18 -0500 + +pidgin (2.3.1-2) unstable; urgency=low + + * Make libpurple0 shlibs slightly looser by making it + >= MAJOR.MINOR.0 instead of >= VERSION. + * Change browser command in /etc/purple/prefs.xml to be of type + 'path' instead of 'string', to match what is set by pidgin. + Thanks to Will Thompson for the fix. (Closes: #456441) + * Fix FTBFS when doing a "make docs" by adding an appropriate $(top_srcdir) + before the path to an included file. (Closes: #454549) + + -- Ari Pollak Sat, 15 Dec 2007 15:23:38 -0500 + +pidgin (2.3.1-1) unstable; urgency=low + + * New upstream release + - Fixes problems logging into MSN (Closes: #454592) + - Fixes MSN display name randomly changing (Closes: #454490) + + -- Ari Pollak Fri, 07 Dec 2007 20:33:46 -0500 + +pidgin (2.3.0-1) unstable; urgency=low + + * New upstream release + - Fixes Jabber crash in non-UTF-8 locale (Closes: #436236) + - Fixes problem entering password manually into Jabber (Closes: #446365) + * 21_zephyr-external.patch + - Apply patch from Klee Dienes to fix the Zephyr protocol when + compiled against the system library, as we do (Closes: #451165) + * Build the Contact Availability Prediction plugin, and make sqlite optional + (Closes: #448096) + * Remove 14_xulrunner_nss patch and bump build-depends for libnss3-dev + (Closes: #450402) + + -- Ari Pollak Mon, 03 Dec 2007 14:47:48 -0400 + +pidgin (2.2.2-1) unstable; urgency=high + + * New upstream version + - Fixes a possible crash when parsing invalid HTML (CVE-2007-4999) + * 00_debian-ca-certs.patch: + - Make the X.509 certificate authority code look in /etc/ssl/certs and + make libpurple0 Recommend: ca-certificates. As far as I know + this is not used in any protocols yet. + * Fix dpkg-shlibdeps warning when trying to resolve plugin dependencies + (by making an shlibs.local with empty libjabber and liboscar entries), + since this will be a failure in the experimental version of dpkg + + -- Ari Pollak Wed, 24 Oct 2007 15:12:52 -0400 + +pidgin (2.2.1-1) unstable; urgency=high + + * New upstream release + - Fixes remote DoS (crash) in the MSN protocol (CVE-2007-4996) + - Fixes wrong file transfer size shown on MSN (Closes: #443447) + * Remove circular dependencies on libpurple0/-bin (Closes: #444148) + + -- Ari Pollak Sat, 29 Sep 2007 19:23:43 -0400 + +pidgin (2.2.0-1) unstable; urgency=low + + * New upstream version + - Fixes tabbed window preference (Closes: #440260) + - Fixes crash in music messaging plugin when sending message to offline + buddy (Closes: #441852) + - Adds option to show protocol icons in buddy list (Closes: #432077) + + -- Ari Pollak Fri, 14 Sep 2007 10:43:21 -0400 + +pidgin (2.1.1-4) unstable; urgency=low + + * pidgin-dev and finch-dev should depend on libpurple-dev (Closes: #441191) + + -- Ari Pollak Fri, 07 Sep 2007 11:10:47 -0400 + +pidgin (2.1.1-3) unstable; urgency=low + + * Make finch conflict & replace old versions of gaim (closes: #440351) + + -- Ari Pollak Fri, 31 Aug 2007 15:15:07 -0400 + +pidgin (2.1.1-2) unstable; urgency=low + + [ Laurent Bigonville ] + * Bump Standards-Version + * Split finch out of the pidgin package (Closes: #428678) + * Split libpurple out of the pidgin package (Closes: #421282) + * Add override file to quiet lintian a bit + * Remove symlinks for /usr/share/doc/pidgin{,-dev,-dbg} and really install + them instead + + [ Ari Pollak ] + * Move gconf schema into pidgin, so only pidgin needs to depend on gconf + * Make dh_pidgin add a versioned misc:Conflict on the next major version + of pidgin, in preparation for getting rid of the pidgin (<< 3.0) + dependency, and adding dh_purple/dh_finch. + + -- Ari Pollak Fri, 24 Aug 2007 22:04:23 -0400 + +pidgin (2.1.1-1) unstable; urgency=low + + * New upstream version + * Update new SVN repository information in debian/control + * Install Finch's window managers correctly (Closes: #438536) + + -- Ari Pollak Mon, 20 Aug 2007 17:40:05 -0400 + +pidgin (2.1.0-1) unstable; urgency=low + + * New upstream version + - Fixes a spelling mistake in MSN (Closes: #427170) + - Fixes a tray icon scaling problem on vertical panels (Closes: #433909) + + -- Ari Pollak Mon, 30 Jul 2007 17:57:20 -0400 + +pidgin (2.0.2-2) unstable; urgency=low + + * Make package binNMU-safe (Closes: #430101) + * Add Depends: python + + -- Ari Pollak Fri, 13 Jul 2007 14:55:15 -0400 + +pidgin (2.0.2-1) unstable; urgency=low + + * New upstream version (Closes: #429222) + * Enable SILC support (Closes: #260420) + * 21_purple-remote_syntax.patch: + - Fix syntax error in purple-remote script (Closes: #429623) + + -- Ari Pollak Thu, 12 Jul 2007 10:37:09 -0400 + +pidgin (2.0.1-1) unstable; urgency=low + + * New upstream release + - Should fix some buddy list synchronization crashes (Closes: #424062) + * Fix gevolution dependency exclusion + * Add appropriate Conflicts in addition to Replaces + * Fix dh_pidgin warning due to current lack of package epoch + + -- Ari Pollak Mon, 21 May 2007 23:44:41 -0400 + +pidgin (2.0.0+dfsg.1-4) unstable; urgency=low + + * Remove bashism in debian/rules + * Make pidgin-dev Replaces: gaim-dev (Closes: #422724) + + -- Ari Pollak Fri, 11 May 2007 18:42:08 -0400 + +pidgin (2.0.0+dfsg.1-3) unstable; urgency=low + + * Make pidgin-dbg Replaces: gaim-dbg (Closes: #422845) + + -- Ari Pollak Tue, 08 May 2007 11:42:49 -0400 + +pidgin (2.0.0+dfsg.1-2) unstable; urgency=low + + * Change pidgin-dev depends from glib to gtk (Closes: #422738) + + -- Ari Pollak Mon, 07 May 2007 21:09:45 -0400 + +pidgin (2.0.0+dfsg.1-1) unstable; urgency=low + + * New upstream release + - The .orig.tar.gz source has been modified to remove the + libpurple/protocols/irc/PROTOCOL file, which is non-DFSG-free. + Pidgin 2.0.1 should have this file removed upstream. + * Change name of package to pidgin (Closes: #418215) + * 20_purple-remote_friendly.patch: + - Make error messages friendlier when python-dbus is not installed + or if someone calls purple-remote/purple-url-handler with --help or -h + (Closes: #413204) + * Update Debian menu icon + * Update watch file + * Update prefs.xml for new path to browsers + * Loosen the dependency on pidgin-data slightly (Closes: #403582) + * Add purple-remote manpage from Anibal Avelar (Closes: #412278) + + -- Ari Pollak Sat, 5 Apr 2007 18:13:41 -0400 + +gaim (1:2.0.0+beta6-2) experimental; urgency=low + + * 18_sametime-strip-html.patch: + - Patch from David Everly to properly strip HTML entities in Sametime + group chat (Closes: #410311) + * Make gaim-dev an Arch: all package + * Install gaim API docs into gaim-dev + * Remove some extraneous Recommends/Suggests + * Add rationale for the recommended/suggests packages in the gaim + description + * Conflict with gaim-librvp (<= 0.9.5-2) to prevent a crash when it's + installed (Closes: #408861) + * Conflict with gaim-encryption (<= 3.0~beta7-1) to prevent a crash + + -- Ari Pollak Mon, 29 Jan 2007 12:11:13 -0500 + +gaim (1:2.0.0+beta6-1) experimental; urgency=low + + * New upstream release + * Add a Recommends: python-dbus (Closes: #404623) + * Attempt to enable Cyrus SASL for Jabber again, since support should + have been improved upstream + * 17_statusbox_crash.patch: + - Fix a common crash after upgrading from beta5 when setting status + to Available + + -- Ari Pollak Sat, 27 Jan 2007 16:53:01 -0500 + +gaim (1:2.0.0+beta5-11) unstable; urgency=low + + * 20_sametime-strip-html.patch: + - Patch from David Everly to properly strip HTML entities in Sametime + group chat (Closes: #410311) + + -- Ari Pollak Fri, 9 Mar 2007 20:06:05 -0500 + +gaim (1:2.0.0+beta5-10) unstable; urgency=low + + * 18-jabber-roster-crash.patch: + - Fix possible crash when aliasing a user on Jabber + * 19_docklet_translation.patch: + - Backport some translations of "Blink on new message" from beta6 + (Closes: #409259) + * Add a Recommends: python-dbus (Closes: #404623) + + -- Ari Pollak Sat, 3 Feb 2007 20:12:32 -0500 + +gaim (1:2.0.0+beta5-9) unstable; urgency=low + + * 15_file_save_name.patch: + - Fill the default filename correctly when receiving a file + * 16_yahoo_icon_crash.patch: + - Try to fix a double-free when unable to receive a Yahoo user's + buddy icon (Closes: #402345) + * 17_upnp_crash.patch: + - Fix a crash when receiving an invalid UPnP response + + -- Ari Pollak Sun, 17 Dec 2006 20:06:44 -0500 + +gaim (1:2.0.0+beta5-8) unstable; urgency=low + + * Remove dependency on libsasl2-modules + * Turn off building with gnutls (Really Closes: #401567) + * 13_yahoo_webauth_disable.patch: + - When Yahoo auth fails, don't fall back to using the web interface + since it's broken and only causes more bugs + * 14_xulrunner_nss.patch: + - Build against xulrunner-nss instead of mozilla-nss + + -- Ari Pollak Mon, 11 Dec 2006 13:12:42 -0500 + +gaim (1:2.0.0+beta5-7) unstable; urgency=medium + + * Add gaim-data dependency on ${misc:Depends} (Closes: #401845) + * Use NSS instead of gnutls (Hopefully Closes: #401567) + * Remove build-dep on libaudiofile-dev + * 12_gstreamer-cleanup.patch: + - Add patch to try cleaning up gstreamer support and hopefully fix a crash + related to it. If this doesn't fix the crash, I blame gstreamer. + (Closes: #397788, #399771) + + -- Ari Pollak Thu, 7 Dec 2006 15:16:48 -0500 + +gaim (1:2.0.0+beta5-6) unstable; urgency=low + + * Brown paper bag release. + * Only install gconf schemas in gaim-data (Closes: #401642, #401628) + + -- Ari Pollak Mon, 4 Dec 2006 21:13:29 -0500 + +gaim (1:2.0.0+beta5-5) unstable; urgency=low + + * Er, really install /usr/bin/gaim-remote and gconf schemas + * Really don't build with cyrus-SASL (Really Closes: #400002, 401295) + + -- Ari Pollak Mon, 4 Dec 2006 10:35:31 -0500 + +gaim (1:2.0.0+beta5-4) unstable; urgency=medium + + * Install /usr/bin/gaim-remote script + * Install gconf schemas + * Add Recommends: python + * Don't build with Cyrus-SASL, support is too unstable + (Closes: #400002, 401295) + * 08_jabber-info-crash.patch: + - Add patch from upstream to fix Jabber crash when getting info + on someone with no resource name (Closes: #398399) + * 10_text-arrow-keys.patch: + - Add patch from upstream to fix arrow keys not working in gaim-text + (Closes: #400496) + * 11_reread-resolvconf.patch: + - Add patch to re-read resolv.conf when connecting to a server + (Closes: #394989) + + -- Ari Pollak Mon, 4 Dec 2006 00:09:32 -0500 + +gaim (1:2.0.0+beta5-3) unstable; urgency=low + + * Add libsasl2-modules to Depends; otherwise, connecting to some + Jabber servers won't work. + * Oops, forgot to apply part of the Buddy List memleak patch + (Really closes: #398133) + * 07_msn-custom-smiley-crash.patch: + - Apply patch from upstream to prevent a crash when reading a malformed + custom emoticon. + + -- Ari Pollak Tue, 21 Nov 2006 14:27:19 -0500 + +gaim (1:2.0.0+beta5-2) unstable; urgency=low + + * Build with LDFLAGS=-Wl,--as-needed + * Build Jabber protocol with Cyrus SASL support + * 04_blist-memleak.patch: + - Add upstream fixes for some potential slow memory leaks due to a bug in + GTK+ (Closes: #398133) + * 05_url-handler-xmpp.patch: + - Add upstream fix for crash on odd xmpp: URLs (Closes: #398969) + * 06_jabber-registration-srv.patch: + - Add patch from George-Cristian Bîrzan to query SRV record when + registering on Jabber servers (Closes: #399230) + + -- Ari Pollak Sun, 19 Nov 2006 22:43:40 -0500 + +gaim (1:2.0.0+beta5-1) unstable; urgency=medium + + * New upstream release + - Disables unused/obsolete GStreamer sinks (arts, and NAS) + and falls back to a proper GStreamer sink more gracefully + (Closes: #397160, #397321) + - Fix an uninitialized pointer causing GStreamer crashes (Closes: #397788) + - Normalizes improper UTF-8 before sending to DBus (Closes: #397593) + - Fixes DNS lookup failure after changing networks (Closes: #394989) + * Add Recommends: gstreamer0.10-plugins-base, gstreamer0.10-plugins-good, + gstreamer0.10-alsa | gstreamer0.10-esd + * Don't ship Release Notification plugin (Closes: #396998) + * 03_gconf-gstreamer.patch: + - Try getting gstreamer settings from gconf even if we're not running + gnome + + -- Ari Pollak Sun, 5 Nov 2006 17:36:26 -0500 + +gaim (1:2.0.0+beta4-4) unstable; urgency=medium + + * 06_irc-signal-crash.patch: + - Add patch to work around crash on receiving non-ASCII characters + in IRC by not emitting the new "irc-receiving-text" signal; the text + from the server needs to be normalized into proper UTF-8 before sending + it to dbus. + (Closes: #394555, #395520) + * 07_delete-account-crash.patch: + - Add patch to fix crashies when deleting an Enabled account and then + either exiting or setting the status to Available. + + -- Ari Pollak Sat, 4 Nov 2006 11:01:15 -0500 + +gaim (1:2.0.0+beta4-3) unstable; urgency=low + + * 05_gaimgtklogviewer.patch: + - Revert upstream privatization of GaimGtkLogViewer, which is needed + for attaching to the "log-displaying" signal. + + -- Ari Pollak Sun, 22 Oct 2006 18:34:50 -0400 + +gaim (1:2.0.0+beta4-2) unstable; urgency=low + + * Build against libgadu properly (Closes: #394303) + * Make libgadu a Suggests instead of a Depends + * 04_ansi-comments.patch: + - Fix C++-style comments in gtkgaim.h to allow compilation of plugins with + -ansi + + -- Ari Pollak Sun, 22 Oct 2006 12:34:05 -0400 + +gaim (1:2.0.0+beta4-1) unstable; urgency=low + + * New upstream release + - This includes a new gaim-text binary; it + libgaim will probably be + split out into a separate package soon, but for now I just wanted to get + beta4 out there. + - Large log files should now behave better in the log viewer + (Closes: #341607) + - The text replacement plugin should work properly when text is surrounded + by punctuation (Closes: #277147) + - Buddy pounce should now have an event for receiving a message + (Closes: #277727) + - Should fix aliases with strange encodings (Closes: #391798) + * Add debian/patches/02_gnthistory-in-gtk.patch: + - Don't load GntHistory plugin in gtk gaim + * Remove bashisms from postinst scripts + * Move libmeanwhile1 from Depends to Suggests + + -- Ari Pollak Wed, 18 Oct 2006 17:30:20 -0400 + +gaim (1:2.0.0+beta3.1-5) unstable; urgency=low + + * Update version on evolution-data-server Suggests + * Update version on Conflicts/Replaces: gaim-meanwhile + + -- Ari Pollak Sun, 8 Oct 2006 18:29:17 -0400 + +gaim (1:2.0.0+beta3.1-4) unstable; urgency=medium + + * debian/patches/06_varargs-fix2.patch + - Add second varargs patch to fix another FTBFS on alpha + + -- Ari Pollak Thu, 28 Sep 2006 16:31:34 -0400 + +gaim (1:2.0.0+beta3.1-3) unstable; urgency=medium + + * debian/patches/05_varargs-fix.patch: + - Add fix for alpha FTBFS + * Add Conflicts and Replaces: gaim-dev (<< 1:2.0.0+beta3.1-2) on + gaim-data, since we moved a file from gaim-dev to gaim-data. + + -- Ari Pollak Thu, 28 Sep 2006 11:26:02 -0400 + +gaim (1:2.0.0+beta3.1-2) unstable; urgency=low + + * First upload of 2.0 branch to unstable + * Move the example .py files to /usr/share/doc/gimp-data/examples/ + (Closes: #386632) + * Re-add link from /usr/share/doc/gaim-dbg to gaim-data + * Move ChangeLog.API from gaim-dev to gaim-data since it could be useful + for gaim scripts, not just C plugins + * debian/patches/02_oscar-sendfile.patch: + - Add upstream fix for a bug where the Send File option wasn't + enabled in an AIM/ICQ conversaion for someone that isn't in your + buddy list + * debian/patches/03_novell-fix-1.patch, + debian/patches/04_novell-fix-2.patch: + - Add patches from upstream post-beta3.1 to fix some connection problems + with Novell protocol + + -- Ari Pollak Mon, 25 Sep 2006 22:12:53 -0400 + +gaim (1:2.0.0+beta3.1-1) experimental; urgency=low + + * New upstream release + * Suggest dbus-1-utils instead of dbus + * Change build-depends on libgnutls11-dev to libgnutls-dev (Closes: #335764) + * Move gaim.desktop and the dbus entry to the gaim package instead of + gaim-data, and make gaim-data Recommends: gaim (Closes: #313222) + * Move /usr/share/aclocal/gaim.m4 to gaim-dev + * Remove link to /usr/share/doc/gaim-data from gaim-dbg since + gaim-data may not be installed + + -- Ari Pollak Sun, 20 Aug 2006 22:31:24 -0400 + +gaim (1:2.0.0+beta3-4) experimental; urgency=low + + * Somehow I forgot to add libavahi-compat-howl-dev to the build-depends, + so do that. + + -- Ari Pollak Thu, 6 Apr 2006 18:34:29 -0400 + +gaim (1:2.0.0+beta3-3) experimental; urgency=low + + * Add build-depends on libgadu-dev >= 1.6+20060215-1 since the gaim + plugin now builds from the system library (Closes: #360280) + * Add build-depends on libxml-parser-perl to fix FTBFS (Closes: #360955) + + -- Ari Pollak Wed, 5 Apr 2006 17:31:52 -0400 + +gaim (1:2.0.0+beta3-1) experimental; urgency=low + + * New upstream release + - There is no more Away window, so "Away box should be toplevel" + no longer applies (Closes: #226280) + - Auto-away should be fixed with multiple accounts (Closes: #302686) + - Contact lists should no longer be lost if you run out of disk space + (Closes: #303922) + - Only display the font names in the preferences font selector + dialog, without the font size (Closes: #270529) + - Active/Away status is now integrated into the Buddy List and + has multiple account status (Closes: #240300, #290590, #223839) + - Play sounds even when queueing new messages to the system tray + (Closes: #242516, #272332) + - Don't segfault when running "gaim -l" when no preferences file exists + (Closes: #326852) + - Queued messages should now be saved to the logs as soon as they are + received (Closes: #255117) + - You should now be able to set your browser manually even if you're + using GNOME (Closes: #281381) + - Reconnecting should no longer pop up a new dialog (Closes: #347451) + - Log viewer now aggregates logs from the same "person" (Closes: #213438) + - There is now an included Gtk RC plugin that allows you to change + font sizes via a GUI (Closes: #275640) + - Auto-reconnect is now in the core and should no longer cause + crashes (Closes: #355645) + * Move back to straight cdbs build system, not tarball-in-tarball. + * Build-Depend on cdbs >= 0.4.37 since it automatically handles -dbg package + * Make /usr/share/doc/gaim-dbg a link to gaim-data + * Add libmeanwhile-dev, libavahi-compat-howl-dev, libdbus-glib-1-dev, dbus, + and python2.4 (to generate dbus schemas) to Build-Depends + * Conflict & Replace old gaim-meanwhile package, since we now provide + the meanwhile/sametime plugin. + * Re-enable perl plugin support, since it's been mostly fixed upstream + (Closes: #288851) + * debian/patches/{irc-ssl, logging-compatibility, privacy-crash}.patch: + - Removed, obsoleted by new upstream version + + -- Ari Pollak Mon, 27 Mar 2006 14:25:21 -0500 + +gaim (1:1.5.0+1.5.1cvs20051015-6) unstable; urgency=low + + * debian/patches/07_msncrashfix.patch: + - Backport patch from upstream trunk to handle base16/64 encoding more + gracefully, which should hopefully fix an MSN crasher (Closes: #383731) + + -- Ari Pollak Thu, 24 Aug 2006 22:05:20 -0400 + +gaim (1:1.5.0+1.5.1cvs20051015-5) unstable; urgency=low + + * Change build-depends on libgnutls11-dev to libgnutls-dev (Closes: #335764) + + -- Ari Pollak Sun, 25 Jun 2006 11:18:54 -0400 + +gaim (1:1.5.0+1.5.1cvs20051015-4) unstable; urgency=low + + * Number patches so that they're in a reliable order + * Bump Standards-Version to 3.7.2; no changes necessary + * debian/patches/05_es.po-update.patch: + - Add updated Spanish translation from Javier Fernández-Sanguino Peña + * debian/patches/06_disable-icq-webaware.patch: + - Steal patch from Ubuntu/upstream to disable the webaware feature to + drastically reduce AIM & ICQ spam (Closes: #360063, #369234) + + -- Ari Pollak Sun, 28 May 2006 12:16:34 -0400 + +gaim (1:1.5.0+1.5.1cvs20051015-3) unstable; urgency=low + + * debian/patches/privacy-crash.patch: + - Add patch from upstream CVS to fix crash when removing a user from + the block list (Closes: #357285) + + -- Ari Pollak Fri, 17 Mar 2006 13:26:33 -0500 + +gaim (1:1.5.0+1.5.1cvs20051015-2) unstable; urgency=low + + * debian/patches/logging-compatibility.patch: + - Add patch from upstream to make the log browser forwards-compatible with + the new log filenames in gaim 2.0 + * debian/patches/irc-ssl.patch: + - Add patch to enable IRC over SSL (Closes: #343553) + * debian/README.Debian.dev: + - Correct typo in suggested plugin package name (Closes: #351760) + * debian/control: + - Upgrade debhelper to 5.0 + - Add gaim-dbg package + * debian/compat: + - Upgrade debhelper compat version to 5 + * debian/rules: + - Add gaim-dbg package + + -- Ari Pollak Thu, 9 Feb 2006 14:56:25 -0500 + +gaim (1:1.5.0+1.5.1cvs20051015-1) unstable; urgency=low + + * New upstream CVS snapshot of the oldstatus branch + - Should fix a yahoo login crash (Closes: #323499) + - Adds a fix for a recent OSCAR rate-limiting problem + - Adds support for OSCAR file transfers behind NAT through proxy servers + (Closes: #267180) + + -- Ari Pollak Sat, 15 Oct 2005 16:20:06 -0400 + +gaim (1:1.5.0-1) unstable; urgency=low + + * New upstream release + - IRC quit message is now configurable (Closes: #261317) + * Remove patches introduced in 1.4.0 revisions as they are now + in upstream. + + -- Ari Pollak Fri, 12 Aug 2005 08:04:38 -0400 + +gaim (1:1.4.0-5) unstable; urgency=high + + * This release fixes three remotely-exploitable security issues. + These will be fixed in 1.5.0, but I'm adding the patches now so + I don't have to rush to package 1.5.0 when it comes out. + + * debian/patches/away-message-CAN-2005-2103.patch: + - Added + - Fixes CAN-2005-2103: Away message buffer overflow (arbitrary + code execution) + * debian/patches/libgg-CAN-2005-2370.patch: + - Added + - Fixes CAN-2005-2370: Memory alignment bug in libgadu + * debian/patches/oscar-CAN-2005-2102.patch: + - Added + - Fixes CAN-2005-2102: OSCAR UTF-8 filename remote crash + + * debian/control: + - Remove version from libgtkspell-dev build-depends, since the aspell + C++ transition was reverted. + + -- Ari Pollak Wed, 10 Aug 2005 11:49:26 -0400 + +gaim (1:1.4.0-4) unstable; urgency=low + + * Apparently the second OSCAR patch from upstream wasn't getting applied + properly. Apply it properly, hopefully this should fix the remaining + OSCAR sign-on problem. (Closes: #321071, #321726) + + -- Ari Pollak Sun, 7 Aug 2005 15:03:22 -0400 + +gaim (1:1.4.0-3) unstable; urgency=low + + * Build-depend on libxss-dev so X idle time support will actually get built + * Remove build-depends on autotools-dev since it is no longer necessary + * Change Suggests: evolution-data-server1.2 to evolution-data-server + + -- Ari Pollak Thu, 21 Jul 2005 06:59:18 -0400 + +gaim (1:1.4.0-2) unstable; urgency=low + + * Apply patch from upstream CVS to fix a crash when connecting to certain + AIM/ICQ accounts + * Bump build-depends to gtkspell >= 2.0.10-3, which now depends on + libaspell15c2 for the C++ ABI transition + + -- Ari Pollak Sat, 9 Jul 2005 20:02:34 -0400 + +gaim (1:1.4.0-1) unstable; urgency=low + + * New upstream version. + + -- Ari Pollak Fri, 8 Jul 2005 09:10:21 -0400 + +gaim (1:1.3.1-2) unstable; urgency=low + + * Argh, this shouldn't be a native package. Correctly include .orig.tar.gz + and .diff.gz in upload. (Closes: #314321) + + -- Ari Pollak Wed, 15 Jun 2005 17:22:02 -0400 + +gaim (1:1.3.1-1) unstable; urgency=medium + + * New upstream version. Fixes two remote DoS/crash security bugs, + CAN-2005-1934 and CAN-2005-1269. + + -- Ari Pollak Fri, 10 Jun 2005 12:19:14 -0400 + +gaim (1:1.3.0-2) unstable; urgency=low + + * debian/control: + - Update build-dependencies and Suggests to evolution-data-server1.2 + (Closes: #311663) + + -- Ari Pollak Thu, 2 Jun 2005 15:11:36 -0400 + +gaim (1:1.3.0-1) unstable; urgency=high + + * New upstream version. Fixes two remote DoS/overflow security bugs, + CAN-2005-1262 and CAN-2005-1261. + + -- Ari Pollak Wed, 11 May 2005 09:44:03 -0400 + +gaim (1:1.2.1-1) unstable; urgency=medium + + * New upstream version. Fixes IRC escaping remote DOS problems, hence medium + priority. + + * debian/patches/icq-auth2.patch: + - removed, upstream backed the changes out themselves in this release + + -- Robert McQueen Mon, 4 Apr 2005 04:36:38 +0100 + +gaim (1:1.2.0-3) unstable; urgency=high + + * debian/patches/icq-auth.patch: + - removed, it doesn't actually fix the problem :( + + * debian/patches/icq-auth2.patch: + - new patch to revert to the (arguably less secure, but fully functional) + ICQ authentication code from 1.1.4, arguably an RC bug so upload with + urgency=high if sarge is about to freeze (really closes: #301072) + + -- Robert McQueen Fri, 1 Apr 2005 15:17:19 +0100 + +gaim (1:1.2.0-2) unstable; urgency=low + + * debian/patches/icq-auth.patch: + - Apply patch from upstream CVS which should fix ICQ authentication + problems with passwords greater than 8 characters. (Closes: #301072) + + -- Ari Pollak Thu, 24 Mar 2005 11:11:49 -0500 + +gaim (1:1.2.0-1) unstable; urgency=medium + + * New upstream version. + + * Put better symlink-creating logic in postinst (Closes: #298467) + - this is an RC bug, so upload with urgency=medium + + -- Ari Pollak Mon, 21 Mar 2005 15:57:35 -0500 + +gaim (1:1.1.4-2) unstable; urgency=low + + * New revision to fix incorrect build on x86 (and my bad attempt at + a binary NMU) + + -- Ari Pollak Tue, 1 Mar 2005 03:51:14 -0500 + +gaim (1:1.1.4-1) unstable; urgency=low + + * New upstream version. + - fixes embarrasingly similar HTML crash exploit (CAN-2005-0208) + - fixes g_stat crashes by enabling large file support in Gaim, to match + glib's compile-time settings + - fixes MSN crashes introduced in 1.1.3 + + * Added CVE numbers for exploits fixed in 1.1.3 (CAN-2005-0472 and + CAN-2005-0473) to changelog. + + * debian/patches/00g_stat_brokenness.patch: + - removed + + * debian/control: + - added dependencies on pkg-config and libglib2.0-dev to gaim-dev, but + not on libgtk2.0-dev (it's perfectly possible to build Gaim plugins + that either have no UI code, or interact with the user via Gaim's + interface for doing so) (actually closes: #292728) + + * debian/dh_gaim: + - apply patch to make resulting gaim dependencies less strict + (closes: #296512) + + -- Robert McQueen Fri, 25 Feb 2005 12:28:57 +0000 + +gaim (1:1.1.3-3) unstable; urgency=low + + * Well, I feel dumb. I didn't actually make any changes in -2. + Really do it this time. + + -- Ari Pollak Mon, 21 Feb 2005 22:22:15 -0500 + +gaim (1:1.1.3-2) unstable; urgency=medium + + * Move g_stat() calls back to stat() as a workaround for brokenness + due to large file support in glib but not Gaim (closes: #295904) + + -- Ari Pollak Mon, 21 Feb 2005 21:31:51 -0500 + +gaim (1:1.1.3-1) unstable; urgency=high + + * New upstream version. + - security: fixes DoS bug and HTML parsing problems, so urgency=high + (CAN-2005-0472 and CAN-2005-0473 respectively) + - adds update for pt_BR translation (closes: #292549) + - adds HTTP proxy support for MSN (closes: #215810) + + -- Ari Pollak Thu, 17 Feb 2005 22:41:07 -0500 + +gaim (1:1.1.2-3) unstable; urgency=low + + * debian/control: + - make gaim-dev depend on pkg-config and libglib2.0-dev + (closes: #292728) + + -- Ari Pollak Wed, 2 Feb 2005 19:56:36 -0500 + +gaim (1:1.1.2-2) unstable; urgency=low + + * debian/gaim.postinst: + - add script to rmdir /usr/share/doc/gaim if it isn't a symlink, and + replace it with the gaim -> gaim-data symlink, on the basis that + dpkg doesn't replace directories with symlinks or vice versa + (closes: #291827) + + -- Robert McQueen Sun, 23 Jan 2005 14:45:08 +0000 + +gaim (1:1.1.2-1) unstable; urgency=low + + * Upload the formerly experimental packages with gaim/gaim-data/gaim-dev to + unstable, given that 1.1.1 is in sarge + + * New upstream version. + - fixes failure to hide Jabber and Yahoo messages in the System + Tray Icon, when enabled (closes: #259790) + + * debian/control: + - the conflicts/replaces of gaim-data on gaim that Ari added went + missing between 1.1.1-3 and 1.1.1-4... I added the replaces but + conflicting with old gaim packages prevents upgrades (see policy + 7.3) due to never unpacking conflicting packages side-by-side + + -- Robert McQueen Fri, 21 Jan 2005 18:26:10 +0000 + +gaim (1:1.1.1-4) experimental; urgency=low + + * debian/control: + - put gaim-dev into section devel + + -- Ari Pollak Tue, 11 Jan 2005 10:54:27 -0500 + +gaim (1:1.1.1-3) experimental; urgency=low + + * debian/control: + - gaim-data conflicts/replaces earlier versions of gaim (closes: #289873) + + -- Ari Pollak Tue, 11 Jan 2005 10:32:56 -0500 + +gaim (1:1.1.1-2) experimental; urgency=low + + * New upstream version in this experimental branch. Contains the same + changes made between 1.1.0-1 and 1.1.1-1 in unstable, included below for + reference. Further thanks due here to Ari for doing all the legwork with + this split into gaim{,-data,-dev}, making packages smaller and allowing + plugin packages to be built, and to Tollef Fog Heen for his dh_gaim + script. + + * debian/TODO.Debian: + - rename to gaim-dev.TODO so dh_installdocs automatically includes it in + the right place + + * debian/control: + - replace suggests of evolution with evolution-data-server + - make gaim-dev depend on gaim-data because of /usr/share/doc symlink + - tweak descriptions + + * debian/rules: + - explicitly disabled silc support until #273871 progresses + - install changelogs and documentation in the gaim-data package only, and + make gaim and gaim-dev symlink to it (allowed by policy as they both + depend on gaim-data) + - instruct dh_installman to install dh_gaim's manpage + - run dh_installdocs manually for gaim-dev to install only the files we + need on top of those in gaim-data + - don't bother removing /usr/lib/gaim/*.la files - they are not installed + any more + + * debian/gaim.install: + - install only /usr/lib/gaim/*.so files + - don't try and install the perl5 directory any longer + + * debian/gaim.preinst: + - moved aside to gaim.preinst.old because we no longer need to remove + /usr/share/doc/gaim if it is a symlink - it is once more a symlink + + * debian/gaim-dev.install: + - don't install /usr/lib/gaim/*.la files + + * debian/gaim-dev.manpages: + - removed in favour of variable in debian/rules + + -- Robert McQueen Tue, 4 Jan 2005 18:59:50 +0000 + +gaim (1:1.1.1-1) unstable; urgency=low + + * New upstream version. Massive thanks to Ari for all his help with the + previous releases. + + * debian/patches/libtoolize.patch, debian/relibtoolize: + - removed, should no longer be necessary now Debian's architectures are + supported by upstream libtool + + * debian/rules: + - disable perl support for now, its bitrotted enough to be nearly + useless, and is slated for removal in 2.0 unless anyone fixes it + + * debian/control: + - remove build dependency on automake1.8 because we no longer touch any + of the generated files + - remove perl build dependencies and substvars entries + + -- Robert McQueen Mon, 3 Jan 2005 23:30:47 +0000 + +gaim (1:1.1.0-3) experimental; urgency=low + + * Whoops, don't include 1.0.3 tarball in the .orig.tar.gz. + * Upload to experimental for now + + * debian/control: + - Update gaim package description to be more current about GNOME + (closes: #265269) + + -- Ari Pollak Thu, 9 Dec 2004 22:44:08 -0500 + +gaim (1:1.1.0-2) experimental; urgency=low + + * debian/control: + - added libxml2-dev, libebook-dev, and libedata-book-dev to build-deps for + gevolution plugin + (closes: #274030) + - added evolution to Suggests field for people who want to use gevolution + - added new gaim-dev and gaim-data packages, which split out the + development headers & libraries and architecture-independent data. + (closes: #233350, #162653, #234853, #267682, #274023) + + * debian/gaim-dev.install: + - added development files + + * debian/gaim-dev.manpages: + - added debian/dh_gaim.1, generated in debian/rules + + * debian/gaim-data.install: + - added architecture-independent files + + * debian/gaim.install: + - move existing prefs.xml and gaim-menu.xpm into gaim-data.install + - added the rest of the files that weren't included in -dev or -data + + * debian/README.Debian.dev: + - added README for Debian developers to explain how gaim plugins + should be packaged. + + * debian/rules: + - added dependency excludes for /usr/lib/gaim/gevolution.so, since + we added Suggests for that manually. + - clean up binary-post-install override to not remove the development + files, since we put them in gaim-dev now. + - added build/gaim-dev override to generate man page for + dh_gaim, and added cleanbuilddir/gaim-dev override to clean it up. + + * debian/dh_gaim + - added, thanks to Tollef Fog Heen for writing this. + + -- Ari Pollak Thu, 9 Dec 2004 12:30:00 -0500 + +gaim (1:1.1.0-1) unstable; urgency=low + + * New upstream version. (closes: #284193) + - Fixes MSN switchboard errors (closes: #284406) + + -- Ari Pollak Mon, 6 Dec 2004 10:27:25 -0500 + +gaim (1:1.0.3-1) unstable; urgency=low + + * New upstream version. + - fixes Jabber authentication issues (closes: #266632, #218994) + - fixes crash when dragging a buddy onto a convo window + (closes: #277208) + + -- Ari Pollak Fri, 12 Nov 2004 11:05:39 -0500 + +gaim (1:1.0.2-1) unstable; urgency=high + + * New upstream version, fixes a security hole in MSN. + + * debian/control: + - Add bzip2 to build-deps since the included tarball is now in bz2 format + + -- Ari Pollak Wed, 20 Oct 2004 10:45:55 -0400 + +gaim (1:1.0.1-2) unstable; urgency=low + + * Oops, this shouldn't be a native Debian package. Properly split out + the original tarball and the debian directory. (closes: #276298) + + -- Ari Pollak Wed, 13 Oct 2004 10:10:09 -0400 + +gaim (1:1.0.1-1) unstable; urgency=low + + * New upstream version. + + * debian/rules: + - move to a tarball-within-a-tarball build system. + + * debian/control: + - add build-dep for automake1.8 + + * debian/gaim.docs: + - removed, replaced by cdbs variable in debian/rules + + -- Ari Pollak Tue, 12 Oct 2004 12:26:39 -0400 + +gaim (1:1.0.0-1) unstable; urgency=medium + + * New upstream version (in Robot101's absence) + - urgency medium because it fixes some regressions in 0.82.1 + - should fix encoding problems (closes: #269646, #270490) + + * debian/patches/libtoolize.patch: + - updated + + -- Ari Pollak Sat, 18 Sep 2004 01:20:32 -0400 + +gaim (1:0.82.1-1) unstable; urgency=high + + * New upstream version. Fixes known security issues CAN-2004-0754 and + CAN-2004-0785, and includes several important bug fixes. + (closes: #268783) + + * debian/patches/allow-blist-shrink.patch: + - removed, I'm trusting upstream on this one :) + + * debian/patches/libtoolize.patch: + - updated + + * debian/patches/msn-fixes-CAN-2004-0500.patch: + - removed, included upstream + + -- Robert McQueen Sun, 29 Aug 2004 22:19:07 +0100 + +gaim (1:0.81-3) unstable; urgency=high + + * debian/patches/cvs-msn-slp-overflow.patch: + - removed, because upstream only fixed half the problem... + + * debian/patches/msn-fixes-CAN-2004-0500.patch: + - patch from SUSE to fix CAN-2004-0500 + + * debian/patches/cvs-gtkblist-size-request.patch: + - removed, because despite upstream's insistence... + + * debian/patches/allow-blist-shrink.patch: + - this is the required change to stop the buddy list from appearing wider + than its saved width + + -- Robert McQueen Fri, 13 Aug 2004 10:54:10 +0100 + +gaim (1:0.81-2) unstable; urgency=medium + + * debian/control: + - raise libgnutls11 build-dep to >= 1.0.16-5 to ensure correct libtasn + version is installed (closes: #264455) + + * debian/patches/cvs-gtkblist-size-request.patch: + - fix from CVS to stop the buddy list making itself over 200 pixels + wide all the time + + * debian/patches/cvs-msn-slp-overflow.patch: + - fix potential overflow in MSN's slp code + + -- Robert McQueen Thu, 12 Aug 2004 01:00:28 +0100 + +gaim (1:0.81-1) unstable; urgency=low + + * New upstream version. (closes: #264180) + + * debian/control: + - switch to gnutls11 instead of deprecated 10 (closes: #263637) + + * debian/relibtoolize: + - include the script I'm using to generate the following patches - it + needs adjustment to be robust to aclocal.m4 changes + + * debian/patches/cvs-irc-ison-lessflood.patch: + - removed + + * debian/patches/libtoolize.patch: + - updated + + -- Robert McQueen Sun, 8 Aug 2004 15:04:06 +0100 + +gaim (1:0.80-3) unstable; urgency=low + + * debian/patches/libtoolize.patch: + - not only was the patch turned out by my script complete garbage even on + my system, it had the added bonus property that it only worked if you + were building gaim in /home/robot101/debian/0.80/gaim-0.80 - this patch + should apply with -p1 because the cdbs patch thing doesn't try -p5 for + some reason... :P (actually closes: #260070) + + -- Robert McQueen Sun, 18 Jul 2004 21:25:27 +0100 + +gaim (1:0.80-2) unstable; urgency=low + + * debian/patches/libtoolize.patch: + - replace spectacularly broken patch with one that actually applies - I + can't actually work out how this ever appeared to work on my system + in the first place (closes: #260070) + + -- Robert McQueen Sun, 18 Jul 2004 20:15:45 +0100 + +gaim (1:0.80-1) unstable; urgency=low + + * New upstream version. (closes: #259891) + + * debian/patches/cvs-buddyicon.patch: + - removed + + * debian/patches/cvs-irc-ison-lessflood.patch: + - patch from CVS to avoid flooding yourself off with large numbers of + ISON requests on IRC (closes: #259010) + + * debian/patches/libtoolize.patch: + - updated + + * debian/control: + - lintian fix - make build-depends into a single line + + * debian/gaim.menu: + - lintian fix - added quotes around X11 in needs field + + * debian/rules: + - until I make a gaim-dev package (shortly - I didn't want to hold up the + new upstream version by sending Gaim to queue/NEW) don't ship gaim.pc + because it's confusing if stuff configures but doesn't build + + -- Robert McQueen Sat, 17 Jul 2004 18:15:54 +0100 + +gaim (1:0.79-2) unstable; urgency=low + + * debian/control: + - update libgnutls7-dev build-depend to libgnutls10-dev to help kill + off libgnutls7 (closes: #256428) + + -- Robert McQueen Sun, 27 Jun 2004 12:29:06 +0100 + +gaim (1:0.79-1) unstable; urgency=low + + * New upstream version. Doubtlessly closes many bugs, including the + repeatedly reported fact that this new version (and the one before) exist. + Sorry, I was busy. I'll look through the bugs soon, but currently I think + people would just appreciate the package. :) + + * debian/patches/cvs-buddyicon.patch: + - patch from CVS to fix buddy icon snafu + + * debian/patches/libtoolize.patch: + - updated + + -- Robert McQueen Sat, 26 Jun 2004 19:05:01 +0100 + +gaim (1:0.77-1) unstable; urgency=low + + * New upstream version. (closes: #245446) + - finally repairs MSN error reporting (closes: #195475) + - optionally mute sounds when the conversation is focussed (thanks + to Stu Tomlinson for implementing this) (closes: #140289) + + * debian/patches/browser-default.patch: + - removed + + * debian/patches/libtoolize.patch: + - updated + + * debian/prefs.xml: + - ship new default prefs.xml to use sensible-browser and have the docklet + loaded initially + + * debian/gaim.install: + - install prefs.xml into /etc/gaim + + -- Robert McQueen Sat, 24 Apr 2004 16:18:33 +0100 + +gaim (1:0.76-1) unstable; urgency=low + + * New upstream version. (closes: #241968, #242431) + - this version builds the zephyr plugin against an external libzephyr, + allowing kerberos support and closing a long standing wishlist bug, + making zephyr actually useful (closes: #152034) + - adds a "Network" preferences pane to choose incoming port ranges + (closes: #133850) + - adds the choice of "Gnome Default" to the browser choices, I also made + Debian's /usr/bin/sensible-browser the default (see below) + (closes: #210744) + - fixes saving of modified account prefs (closes: #229511, #231249) + - Yahoo! works again (closes: #231440, #236744) + - shouldn't clobber existing prefs/blist files if disk is full + (closes: #234790) + - Perl plugin loading fixed (closes: #229457) + + * debian/patches/browser-default.patch: + - set the default browser to Debian's sensible-browser (only affects new + users) + + * debian/patches/buffer-overflows.patch: + - removed on the basis that all the problems are fixed in this release, + although I plan to audit the patch to confirm this + + * debian/patches/libtoolize.patch: + - regenerated for this version + + * debian/control: + - added libzephyr-dev to build-depends + + * debian/rules: + - build against external libzephyr + - make dh_shlibdeps consider libzephyr.so for suggests only + + -- Robert McQueen Wed, 7 Apr 2004 03:34:57 +0100 + +gaim (1:0.75-3) unstable; urgency=high + + * Minor tweak to the security patch to fix an infinite loop. High urgency + because I meant to fix this before 0.75-2 reached testing, but didn't. + I'm going on holiday for a week, so if 0.76 comes out, be patient. + + -- Robert McQueen Wed, 24 Mar 2004 02:56:48 +0000 + +gaim (1:0.75-2) unstable; urgency=medium + + * Security update to fix 12 possible buffer overflow attacks. Details are + at http://security.e-matters.de/advisories/012004.html. + + * debian/patches/buffer-overflows.patch: + - patch from RedHat's RHSA-2004:032-04 advisory to fix CAN-2004-0006/7/8, + thanks to RedHat for this patch, Jacques A. Vidrine for the initial + patch, and Stefan Esser for finding the original problems + (closes: #229843) + + -- Robert McQueen Tue, 27 Jan 2004 16:06:39 +0000 + +gaim (1:0.75-1) unstable; urgency=low + + * New upstream version: + - restores Ctrl+PgUp/PgDn tab switching (closes: #226674, #226795) + + * debian/patches/libtoolize.patch: + - regenerated because for some reason, make dist doesn't work for + upstream on sid at the moment + + * debian/control: + - add build depend on xutils because configure uses imake to find + the X include directory - this makes Gaim link to the X ScreenSaver + and session management libs reliably (thanks to Ryan Murray) + (closes: #226227) + + -- Robert McQueen Sat, 10 Jan 2004 12:02:40 +0000 + +gaim (1:0.74+0.75cvs20040104-1) unstable; urgency=low + + * CVS snapshot. 0.74 had problems with leaking and some other stuff that + annoyed me, so I put off packaging it as long as possible. Turns out + CVS was just made usable now in preparation for a release, so I'm just + packaging it instead: + - typo fix in README was fixed in CVS (closes: #220999) + - this can be taken to provide 0.74 (closes: #223931) + + * debian/patches/00-libtoolize.patch: + - deleted, not necessary because I ran "make dist" on a Debian box + * debian/patches/gtkspell-locale2.patch: + - deleted, in favour of... + * debian/patches/gtkspell-locale3.patch: + - now very small because I had "cleanups" merged to CVS ;) + + * debian/control: + - change tcl8.3-dev and tk8.3-dev build deps to 8.4, upstream works with + 8.4 now + - add tcl8.3-dev and tk8.3-dev build conflicts + * debian/copyright: + - update to point at new COPYRIGHT file + * debian/gaim.README.Debian: + - deleted, had nothing to say really + * debian/gaim.docs: + - add new upstream COPYRIGHT file + + -- Robert McQueen Mon, 5 Jan 2004 03:30:17 +0000 + +gaim (1:0.72-1) unstable; urgency=low + + * New upstream version. Sorry I missed 0.71, been busy. Some nice bug + fixes and tweaks in these two versions: + - now possible to override your username on IRC (closes: #196265) + - rewritten Jabber plugin with XMPP support, bugs in old code + evaporate (closes: #199345, #217326) + - various bugfixes to SSL code (closes: #214798) + - fixes ICQ signon crashes (closes: #217851, #217856, #218496) + + * debian/patches/00-libtoolize.patch: + - updated for new version (I should make a script for this...) + * debian/patches/cvs-yahoo-{endian,tweak}.patch: + - deleted, included in this release + * debian/patches/gtkspell-locale.patch: + - deleted, was broken ("C" is not a language and has no dictionary) + * debian/patches/gtkspell-locale2.patch: + - reworked version which should set the dictionary consistently and + only when the locale has actually been set + (closes: #213937, #215811) + + * debian/control: + - added build depend for libstartup-notification0-dev + - added ${shlibs:Suggests} to the suggests field + - removed conflicts/replaces for the short-lived (never officially + released) libgaim-remote packages + * debian/rules: + - gentle fudge to stop dh_makeshlibs from acting on the plugins, some + of which cause it to false-positives (see #205142) + - gentle shlibdeps fudge to downgrade tcl and tk to suggests + (closes: #213409) + + -- Robert McQueen Sat, 1 Nov 2003 19:01:25 +0000 + +gaim (1:0.70-2) unstable; urgency=low + + * debian/patches/cvs-yahoo-endian.patch: + - memcpy(&some_char[], &some_int, sizeof(int)) is not portable, mmkay? + here's my patch [from CVS] (thanks Matthew Wilcox) + + -- Robert McQueen Mon, 29 Sep 2003 13:31:37 +0100 + +gaim (1:0.70-1) unstable; urgency=low + + * New upstream version. Skipped 0.69 because it was shunned upstream due + to not actually fixing the Yahoo! problem, and installed Perl all wrong. + Since 0.68 we've added Contact support, Tcl plugins, SSL for Jabber + and the new MSN plugin, and fixed the Yahoo! connection problems. Also, + I'm experimenting with a new changelog format. + - pays attention to the challenge type that Yahoo! sends us, and + presents an error on unknown types (closes: #212941) + - supports the new Yahoo! challenge type (one of them, anyway) + (closes: #212749) + - supports the new MSN protocol (closes: #207745) + + * debian/patches/00-libtoolize.patch: + - reran libtoolize with the Debian version of libtool, so that Perl + support works on arm, m68k and friends (thanks Keybuk) + * debian/patches/cvs-yahoo-tweak.patch: + - tweak to Yahoo! authentication code [from CVS] + * debian/patches/gtkspell-locale.patch: + - sets the GtkSpell dictionary according to the current locale. Not + merged upstream because blah blah Windows aspell blah blah, but I + don't really care. Sigh. (closes: #202009) + + * debian/control: + - standards version 3.6.1 + - dropped build conflicts in light of --disable-nss working properly + now (I submitted a patch just before 0.69) + - added versioned build-depend on libperl-dev >= 5.8.1, because DESTDIR + just decided to start working in MakeMaker, and I don't see how to + consistently support builds both with and without that functionality + without grossly hacking the build system + - change Tcl build-depend to tcl8.3-dev, which is all it supports at + the moment, and add tk8.3-dev for Tk support + - added ${perl:Depends} to depends + * debian/gaim.docs: + - removed plugins/SIGNALS because it's gone upstream - all the API docs + are moving into Doxygen, and I'll consider shipping them whenever + upstream starts shipping header files + * debian/rules: + - add --disable-nss to ensure consistent SSL library choice + + -- Robert McQueen Mon, 29 Sep 2003 13:28:07 +0100 + +gaim (1:0.68+0.69cvs20030917-1) experimental; urgency=low + + * CVS snapshot. Contains SSL support for Jabber and the new MSN plugin, + contact support, a Tcl plugin loader, and the two patches that were + in 0.68-1. + * Added build depends for GNUTLS and Tcl, and conflicts for NAS and NSS + (because we don't build with this functionality). + + -- Robert McQueen Thu, 18 Sep 2003 00:03:42 +0100 + +gaim (1:0.68-1) unstable; urgency=low + + * New upstream version. (closes: #209021) + - new event system and perl API + - ignores MSN's upgrade spam (new MSN plugin will be in 0.69) + - fixes Jabber registration (closes: #208070) + - now includes code to retrieve, parse and display Yahoo and MSN + profiles (closes: #201498) + * Start using the simple patch system from cdbs: + - cvs-libgaim-remote-glib.diff: link libgaim-remote with glib + [from CVS] (closes: #210652) + - cvs-yahoo-version.diff: update Yahoo protocol version to avoid + warnings and/or allow signing in [from CVS] + + -- Robert McQueen Wed, 17 Sep 2003 02:20:20 +0100 + +gaim (1:0.67-3) unstable; urgency=low + + * Apply my patch from CVS to stop the ticker crashing when it's reloaded + (enterprising hack to make GType reuse the existing type instead of + trying to register it again). (closes: #203727) + * Apply fix from CVS to stop crashes if you don't have yourself on your + buddy list (the developers all do this because it's the best way + to track your own status at the moment). (closes: #206574) + + -- Robert McQueen Sat, 23 Aug 2003 04:54:11 +0100 + +gaim (1:0.67-2) unstable; urgency=low + + * Apparently libgaim-remote is too small to warrant a package of its own + until anything else wants to use it. + * Tweak description again to make less of an issue of license and widget + set. (closes: #205518) + + -- Robert McQueen Tue, 19 Aug 2003 19:41:48 +0100 + +gaim (1:0.67-1) unstable; urgency=medium + + * New upstream version with much core/UI splitting work and a cool new + key/value XML-based prefs engine, rewritten IRC plugin, status icons + in conversation tabs, a tab colour for unseen status messages, and + various dialog rewrites. (closes: #202666, #202742, #203471) + + * Merged all the patches from 0.64-3 and should fix a few other bugs: + - store proxy settings correctly (closes: #195035, #195304) + - wait for the remote buddy list to download (on AIM/ICQ) before + maniupulating buddies (closes: #195655, #196445) + - display remote aliases correctly (closes: #196664) + - new prefs system works now (closes: #200810) + - apparently this one is fixed in 0.66 too (closes: #205093) + + * Between 0.64 and 0.67, various fairly crucial MSN bugfixes were made, + preventing all manner of infinite loops, unclosable chat windows, + cloned buddies, and the like. (closes: #199421, #199515, #200655) + (closes: #203306, #203309, #203866, #204960) + + * Skipped 0.65 because it was a little broken, hence the hasty release of + 0.66. + * Skipped 0.66 because I decided to switch to cdbs while I was reworking + the packaging for the new libgaim-remote library, and it turned out + the build system was subtly broken and needed fixing. These fixes + are in this version. So it builds. Hurrah. + * By skipping two versions, I shielded you all from the harsh disappearance + of the Message Notification plugin in 0.65 and 0.66. Which was my plan + all along, of course. + + * Medium urgency because this is a pretty solid release with lots of bug + fixes, and 0.64-3 sucked. + * Split out library and -dev packages for the new libgaim-remote0 library. + * Switched to CDBS. Shrunk debian/rules somewhat. :D + * Made the description less AIM-centric. + * Updated standards version to 3.6.0. + + -- Robert McQueen Fri, 15 Aug 2003 06:06:37 +0100 + +gaim (1:0.64-3) unstable; urgency=medium + + * Medium urgency because MSN and Yahoo are fairly broke in the previous + release, which should *not* be immortalised in testing. + * Added patch from CVS to fix various MSN crashes and corruption of + your friendly name. (closes: #195603) + * Added patch from CVS to fix crash for buddy lists sorted by status. + (closes: #196338, #196515) + * Backported fix from CVS to fix Yahoo's new penchant for lower-case + user names. + * Backported fix so AOL mail is not checked if you disable the option. + (closes: #196733) + * Corrected spelling error in Oscar (also in CVS). (closes: #196840) + + -- Robert McQueen Sun, 29 Jun 2003 02:34:32 +0100 + +gaim (1:0.64-2) unstable; urgency=low + + * Updated to standards version 3.5.10. + * Replaced the Debian menu icon with a nice-looking one now that the menu + policy doesn't mandate a crappy pallete. + * So I spent a day cleaning the BTS for the Gaim package. Closed about 20 + bugs, reassigned 3 and fixed 7. This is the second batch of fixes. + * Adjust wording so iconaway plugin no longer claims to minimise the away + window, which is a dialog and shouldn't (or sometimes can't) be + minimised. It wasn't doing it anyway. (closes: #188821) + * Linkify text appended by the history plugin if the option is enabled + to do this for conversations. (closes: #189511) + * Validate UTF8 for incoming server-stored aliases because clients like + Trillian send us random encodings but call them UTF-8. Avoids nasty + crashing. (closes: #189662) + * Added a "Close" button to the file transfer dialog. (closes: #192366) + + -- Robert McQueen Sat, 31 May 2003 16:56:18 +0100 + +gaim (1:0.64-1) unstable; urgency=low + + * New upstream version. + - Fixes some MSN problems, spiffs the debug window some more, and more + core/ui splitting work from Chip the living legend. + - New user request API fixes age-old dangling callback problems with + prompt dialogs such as the IRC nick change dialog. (closes: #189946) + * Made the signon meter window not dialog hinted, so you can ignore it and + carry on using Gaim while your eleventy billion accounts sign in. Found + and fixed a leak in the process. (closes: #187996) + * Fixed a minor typo which caused "" to be appended even when the + font dialog was cancelled. (closes: #188048) + * Fixed "Copy link location" menu entry the right way. The correct clipboard + to copy to is... both of them. (closes: #191301) + + -- Robert McQueen Sat, 31 May 2003 05:28:51 +0100 + +gaim (1:0.63-1) unstable; urgency=low + + * New upstream version. The 'I am happy ChipX86' version. He hacked loads on + this release, giving us a new MSN plugin, a new plugin API, and brought + us far closer to a core/UI split than we've ever done before. Three + cheers for Chip! Also thanks to faceprint, you can put chats in your + buddy list once more. And there was much rejoycing. + + -- Robert McQueen Sun, 18 May 2003 04:40:19 +0100 + +gaim (1:0.62-1) unstable; urgency=low + + * New upstream version. + - fixes AIM/ICQ proxy connection problems (closes: #188530) + - includes updated Japanese translation, thanks Junichi Uekawa + (closes: #188819) + - buddy list keyboard accelerators fixed (closes: #189843) + + -- Robert McQueen Sun, 27 Apr 2003 19:59:42 +0100 + +gaim (1:0.61-1) unstable; urgency=low + + * New upstream version. Fixes buddy list drag and drop issues. Some + new icons and spacing to improve the look of the buddy list. New + more flexible buddy pounce code. + + -- Robert McQueen Fri, 11 Apr 2003 03:12:18 +0100 + +gaim (1:0.60.0-1) unstable; urgency=low + + * New upstream version. Actually 0.60, but 0.60.0 is higher than the + versions on my CVS debs. Skipped 0.59.9, oh well. (closes: #184493) + - it has been in development for almost a year, and a third of all the + code has been rewritten in porting to Gtk2! + - features new buddy list with optional large buddy list icons + (closes: #130436) + - group folding is persistent across signons and signoffs + (closes: #133238) + - i18n fixed and rewritten in all protocols + (closes: #155058, #185531) + - adds X11R6 session management support (closes: #151272) + - new sound system with libao has arts plugin (closes: #170960) + - adds "Display remote nick if no alias is set" option which can display + and update MSN friendly names automatically (closes: #176466) + - other cool stuff like XML-based buddy list, global groups, asynchronous + DNS lookups, draggable conversational tabs, tray icon plugin to + replace the GNOME applet, ICQ server-stored buddy lists, cute new + PNG icons, external sounds... + * Added long title to Debian menu entry. (closes: #175379) + * Disabled NAS support. Feel free to add it to libao. + * Dropped licq2gaim.pl, it doesn't work with XML buddy list format. + * Tweaked debian/rules with new build options and such. + * Updated build-deps with Gtk2 etc, updated standards version, suggest + gnome-panel, kicker or docker for the tray icon plugin, and detail the + new arrangement in the description. + * Updated README.Debian with triumphant post-release banter. + * Wrote a manpage for gaim-remote. Fancy that. + + -- Robert McQueen Sat, 5 Apr 2003 12:30:11 +0100 + +gaim (1:0.59.8-1) unstable; urgency=low + + * The 'roll on 0.60' release. + * New upstream version. I'd apologise for the delay, but I put the + interesting fixes in 0.59.7-1 so there was no hurry anyway. + * No longer build the GNOME applet variant. It only works with GNOME + 1.4 which isn't shipped in Debian sid any more. Furthermore, the + applet won't exist in the Gtk2 version of Gaim, it's already been + replaced with my Tray Icon plugin. (closes: #180640) + * Add a note in the description, and a longer one in README.Debian, + explaining why gaim-gnome is gone. It's not coming back either. + If I get any bugs about this I'm gonna be hella annoyed. Use the + CVS debs from here: + deb http://people.debian.org/~robot101/gaim unstable cvs + deb-src http://people.debian.org/~robot101/gaim unstable cvs + And no, I will not upload them to sid. It's still buggy as hell. + * Kill off gaim-common and gaim-gnome packages. Conflict and replace + because all files belong to the gaim package now, and provide in + the vain hope that apt/dpkg will choose gaim over old gaim-gnome + packages and that I won't have to make a stub package. + * Major crapectomy in debian/rules now that we're only building the + one time. Thank god. + * Add gaim.preinst to remove old /usr/share/doc/gaim symlink because + dpkg wisely avoids transitions between symlinks and directories + and vice versa. + * Updated build-depends to exclude GNOME and libpanel-applet, include + esd, have libaudio-dev instead of nas-dev, and no longer require + perl 5.8 (sid is 5.6 on all arches now). + * Update standard version to 3.6.8. + + -- Robert McQueen Tue, 18 Feb 2003 00:04:05 +0000 + +gaim (1:0.59.7-1) unstable; urgency=medium + + * New upstream version. Various bug fixes including a remote crash bug + with malicious AIM rendezvous packets. + * Includes patch from CVS to fix Yahoo login problems - sends protocol + version 0x0900 instead of 0x0600. + * Yahoo i18n patch was included in this release. (closes: #170542) + * Fixed a small error causing the "Insert Smiley" button to crash when + offline. (closes: #175442) + * Replaced invasive automatic config.{guess,sub} updating from + debian/rules and replaced with much saner symlinking method. + * Murdered pallet of gaim-menu.xpm (for the Debian menu entry) + according to the idotic menu policy, to shut lintian up. + * This release is from the upstream 'gtk1-stable' branch. If you like + Gtk2, or use GNOME 2 or KDE 3.1, please consider trying my Gaim CVS + snapshot debs. The Gtk2 port is being worked on in CVS, and as a + result this version is a little buggier and has some regressions, + including no working IM image support and no protocol specific + smileys, but it does have infinitely better i18n, looks a lot + prettier, has support for session management (ie start at login in + GNOME 2), and also features my Tray Icon plugin, which replaces the + applet, and is visible in system-tray-applet in GNOME 2, or the + normal Kicker system tray in KDE 3.1. Please mail me directly with + any bugs you find in these, rather than filing them in the BTS. The + apt lines are: + deb http://people.debian.org/~robot101/gaim unstable cvs + deb-src http://people.debian.org/~robot101/gaim unstable cvs + (closes: #148248, #165291, #171714) + + -- Robert McQueen Mon, 6 Jan 2003 06:11:33 +0000 + +gaim (1:0.59.6-1) unstable; urgency=low + + * New upstream version. Fixes gigantic timestamp font in Jabber group + chats. (closes: #167153) + * Include patch from CVS to fix Yahoo! i18n issues (hopefully) and + crashes due to protocol changes. (closes: #160347, #166505) + + -- Robert McQueen Sun, 24 Nov 2002 06:01:09 +0000 + +gaim (1:0.59.5-2) unstable; urgency=low + + * Added patch from upstream CVS to fix bugs when an invalid gtk style + is loaded. Sigh. Roll on 0.60 with Gtk2 goodness. (closes: #152274) + + -- Robert McQueen Sat, 26 Oct 2002 22:41:20 +0100 + +gaim (1:0.59.5-1) unstable; urgency=low + + * New upstream version, sorry about the delay. Considering 0.59.3-1 + contained most of the fixes that went into 0.59.4, I didn't bother + packaging it. The only changes to 0.59.5 are to fix a crash in the + Yahoo plugin due to a slight change in the protocol. + * Updated config.sub from 20020621 to 20020905 and config.guess from + 20020529 to 20020903. + + -- Robert McQueen Fri, 25 Oct 2002 02:42:12 +0100 + +gaim (1:0.59.3-1) unstable; urgency=low + + * New upstream version. + * Updated to standards version 3.5.7. + * Tighten perl build-dep to require 5.8 (thanks Ryan Murray). + * Applied fixes from upstream CVS: + - remove Ctrl+K binding for colour + - fix yahoo memleak + - make the edit tab in the blist scrollable horizontally + - apply patch from A Lee to do charset transitions character by + character to avoid iconv's truncation (closes: #162396) + + -- Robert McQueen Sun, 29 Sep 2002 18:03:49 +0100 + +gaim (1:0.59.2-1) unstable; urgency=low + + * New upstream version. + * Revert all patches here, everything's included. + * Except for a blooper upstream which removes spaces from MSN and Yahoo + screen names, and adds random NULs instead. Doh! Pulled fix from + CVS. + + -- Robert McQueen Fri, 13 Sep 2002 02:22:05 +0100 + +gaim (1:0.59.1-4) unstable; urgency=low + + * Update build-deps to libgnome-dev (>= 1.4.2-3) and + libpanel-applet-dev (>= 1.4.1-2) to ensure imlib1/png2 is used. + * Minor modification from Matt Wilson at RedHat to fix UTF8 font + selection in GtkImHtml (widget used in conversation/chat windows). + + -- Robert McQueen Tue, 3 Sep 2002 18:33:24 +0100 + +gaim (1:0.59.1-3) unstable; urgency=high + + * The 'getting sick of this now' release. Third time lucky and all... + * Ryan Murray (of gdk-pixbuf-dev fame) suggests dropping the new build + dependencies and gently hacking the Makefile to substitute them out + of linking the applet, because they're not actually necessary. This + will also fix libpng2/3 compatibility issues that were making the + applet fall back to the ugly xpm icon (until Christian Marillat + stops being an idiot and links GNOME 1.4 against libpng2 again). + * Thanks to Lukas Geyer (of JimButton fame) for pointing me at the + right make features I needed to accomplish this without too much + hacking. + * Include a patch from Chris Blizzard (of RedHat fame) to fix an + oversight in my fix for the browser security vunlerability. Access + to unallocated memory in the non-manual browser handlers could have + caused crashes in some situations. Cheers Chris. Sorry everyone. + * Also edit the default manual browser command to not contain quotes + any more. Debian should get a /usr/bin/sensible-browser or + something. + + -- Robert McQueen Wed, 28 Aug 2002 02:42:42 +0100 + +gaim (1:0.59.1-2) unstable; urgency=high + + * Well, that's the reason. gdk-imlib-dev dropped the dependencies for + lib{jpeg,png,tiff,gif}-dev because apparently they're not necessary. + libgnome-dev probably needs to add these. + * Added build-deps on libpng3-dev and libtiff3g-dev, so that Gaim can + finally build on the buildds without me NMUing libgnome-dev in a fit + of anger. + * Set urgency back to high to hammer the point home. If this doesn't + build I'm going to be mighty annoyed. + * Changed gaim-gnome depend to gnome-panel (<< 1.5). It doesn't work + with GNOME 2. I'm writing a docklet for that. + + -- Robert McQueen Mon, 26 Aug 2002 19:02:14 +0100 + +gaim (1:0.59.1-1) unstable; urgency=low + + * New upstream version from the gtk1-stable branch. Merges my browser.c + patch, works with perl 5.8 and gettext 0.11.x, and has a pretty + icon. + * Upstream merged patch for fixed i18n with libiconv. + (closes: #154473, #155058) + * Updated gaim-menu.xpm in light of new gaim.png icon, and fixed + gaim-common.files for the new icon name. + * Fixes idiotic handling of http_proxy environment variable. + (closes: #144244) + * Updated ja.po because upstream is ignoring me about this. + (closes: #154485) + * Added libjpeg-dev build-dep. GNOME 1.4 is messed up in a half-baked + libpng2 -> 3 transition, and this dep must've fallen out somewhere + else along with someone's brain. Should let the security fix build + and propogate to sarge. + + -- Robert McQueen Mon, 26 Aug 2002 04:59:50 +0100 + +gaim (1:0.59-2) unstable; urgency=high + + * Wrote patch to fix hideously insecure execution of unescaped + arbitrary strings through the shell for the Manual browser URL click + handler. Replaces any spaces in the URL with +, and runs the user's + browser command directly without the shell. Users will soon learn + not to quote the %s in their browser command. (closes: #157909) + * Added libungif4-dev to build-deps. Looks like someone's brain fell + out. Ho hum. + * Updated config.sub from 20020307 to 20020621, and config.guess from + 20020320 to 20020529. + + -- Robert McQueen Sat, 24 Aug 2002 02:14:49 +0100 + +gaim (1:0.59-1) unstable; urgency=low + + * New upstream version. Finally. Contains various new and updated + translations, and fixes for various bugs, crashes & memleaks. + * Should work around a Gtk+ bug that causes spinning when some text + widget is smaller than the text height. (closes: #117498) + * Fixes strange tabbing order in 'Add Buddy' dialog. (closes: #134502) + * Hopefully a final end to stupid MSN errors. (closes: #147141) + * Should display UTF8 MSN names in their full glory. (closes: #150354) + * Updated config.sub from 20010420 to 20020307, and config.guess from + 20010420 to 20020320. + + -- root Fri, 26 Jul 2002 23:19:27 +0100 + +gaim (1:0.58-2) unstable; urgency=low + + * Applied patch from Chris Blizzard (of Redhat fame =) to fix munged + GNOME applet icon at startup. Cheers! (closes: #147071) + * Enabled NAS audio in non-GNOME package. (closes: #147291) + * Returned globbing to debian/gaim-common.files now we don't need to + make an exception for iconaway.so. + + -- Robert McQueen Fri, 24 May 2002 23:24:16 +0100 + +gaim (1:0.58-1) unstable; urgency=high + + * The 'DOH!' release. + * New upstream version, lots of nice stuff. See the changelog. =) + * To avoid upsetting upgrades, gaim-common now replaces suitably old + gaim-gnome packages because iconaway.so moved. (closes: #144945) + * Another attempt by upstream to fix those annoying 'Already there' + MSN errors. (closes: #145722) + * Fixes GNOME applet transparency problems. (closes: #145915) + * In the previous version, the MSN plugin got secure logins to Hotmail + that used MD5 auth cookies in a file which was opened in the + browser, and would log you straight into your inbox. Ironically, + this improved security used blatantly insecure tempfiles, which + were also created with the 644 mode, leaving the way open for + symlink attacks, and anyone on your system reading your mail. This + is fixed in this release. (closes: #146750) + * Not to mention the overflow in the Jabber plugin that got fixed. + * Automatic update of config.sub from 20010907 to 20020307, and + config.guess from 20010904 to 20020320. + + -- Robert McQueen Tue, 14 May 2002 17:44:43 +0100 + +gaim (1:0.57-2) unstable; urgency=high + + * The 'Ahh... phew' release. One or two patches from CVS. + * Fixes segfault DOS in TOC protocol code. (closes: #144318) + * Returns iconaway.so to gaim-common, the gnome/non-gnome dependent + code has been moved to the binary itself. + * High priority to reach woody with these fixes, and the fix in 0.57 + for Yahoo's new authorisation method. + + -- Robert McQueen Sun, 28 Apr 2002 16:54:18 +0100 + +gaim (1:0.57-1) unstable; urgency=low + + * The 'You did WHAT with configure.ac?!?' release. + * New upstream version. Adds an evil autoconf hack upstream, support + for Yahoo's new authorisation method, new keyboard shortcuts, + hashed secure logins for Hotmail from your MSN account, and various + translations and Jabber improvements. + + -- Robert McQueen Fri, 26 Apr 2002 17:09:18 +0100 + +gaim (1:0.56-1) unstable; urgency=low + + * The 'Hola from Tenerife!' release. + * New upstream version. Signal patch merged. Various bugfixes, and the + much-awaited send history finally appears. + * Automatic update of config.sub from 20010420 to 20020307, and + config.guess from 20010420 to 20020320. + + -- Robert McQueen Sat, 13 Apr 2002 18:40:05 +0100 + +gaim (1:0.55-2) unstable; urgency=low + + * Wrote patch to unblock useful signals like SIGCHLD because gdm + helpfully blocks them. Helps avoid zombies from filling your + process space when you start the applet from the GNOME panel. + [debian/patches/unblock-handled-signals.diff] + * Applied patch from CVS to fix MSN problems such as being constantly + prompted to allow buddies who you actually wanted to block. + [debian/patches/various-msn-fixes.diff] + * Automatic update of config.sub from 20020222 to 20020307, and + config.guess from 20020219 to 20020320. + + -- Robert McQueen Wed, 3 Apr 2002 20:53:38 +0100 + +gaim (1:0.55-1) unstable; urgency=low + + * The 'and relax...' release. + * New upstream version (all patches have been merged). + * Updated Spanish translation. (closes: #138471) + * Fixes HTTP incompliance in proxy code. (closes: #140036) + * Fixes crashing when enabling/disabling animated buddy icons. + (closes: #140192) + + -- Robert McQueen Sat, 30 Mar 2002 16:49:43 +0000 + +gaim (1:0.54-6) unstable; urgency=low + + * Updated gaimrc.c to recognise the option for the new Command sound + method so it doesn't override it at loadup. (closes: #139253) + + -- Robert McQueen Thu, 21 Mar 2002 13:01:42 +0000 + +gaim (1:0.54-5) unstable; urgency=low + + * Added MSN embarrased icon. (closes: #139109) + * Updated MSN pixmaps from CVS to avoid evil crashing on some archs. + + -- Robert McQueen Wed, 20 Mar 2002 11:14:58 +0000 + +gaim (1:0.54-4) unstable; urgency=low + + * Fixed a compiler warning with the sound patch. + + -- Robert McQueen Sun, 17 Mar 2002 17:56:05 +0000 + +gaim (1:0.54-3) unstable; urgency=low + + * Fixed a few things with my sound patch, like the mysterious swapping + of the recieve and first recieve sound options versus events. Doh! + (closes: #138759) + + -- Robert McQueen Sun, 17 Mar 2002 17:26:50 +0000 + +gaim (1:0.54-2) unstable; urgency=low + + * Removed ICQ plugin. It really doesn't work very well at all any + more. (closes: #137058) + * Updated README.Debian to take account of this. + + -- Robert McQueen Sat, 16 Mar 2002 19:46:42 +0000 + +gaim (1:0.54-1) unstable; urgency=medium + + * New upstream version. Goodies like IM Image sending for Oscar, + protocol specific smileys, off-line message and improved + typing notification support for Yahoo, DCC chat and mIRC formatting + support for IRC, and lots of general bugfixes, especially + pertaining to never being asked to accept/decline MSN buddies who + add you when you're off-line. (closes: #138472) + * Medium urgency upload because 0.53 was buggy but I had to let 0.53-2 + go in to testing because of the nul vulnerability. + * The six (!) patches in 0.53-2 from CVS are all included in this + version. + * 'Oscar' protocol renamed to 'Oscar / ICQ' upstream. (closes: #137061) + * Applied patch from me, already accepted upstream, with various + cleanups to fix unusual sound behaviour: + - attempting to play an internal sound with a command now + generates an error instead of silently failing + - attempting to play a file with the native method now warns + before probably failing + - the 'Test' button in the sound preferences now temporarily + enables the sound under test, so it always tries to play it + - using a command to play sounds is now a seperate option that + must be explicitly enabled, avoiding problems with testing for + other options happening before testing if a command had been + specified (closes: #137010) + * Now building the non-GNOME version against ESD to make sound support + more useful. Native sound support can only be expected to work for + internal sounds. (closes: #137013) + * Remove the .h files from gaim-common. It turns out to be very hard + indeed to make Gaim plugins build outside the Gaim source tree. I + will probably make a gaim-plugins package with a few worthy plugins + like the russian charset conversion, xosd signon/signoff + notification, etc - I'm open to suggestions. Plugins must be + runtime configurable (unlike irc-extras), actually useful (unlike + the one to arbitrarily change your idle time), and build against + the latest Gaim. + * Include the licq2gaim.pl buddy list import script in the examples + dir in gaim-common. + + -- Robert McQueen Sat, 16 Mar 2002 18:47:07 +0000 + +gaim (1:0.53-2) unstable; urgency=low + + * The 'No, I don't use CVS' release. + * Applied patches from CVS so that: + - closing a conversation window when a buddy is typing doesn't + cause a crash [debian/patches/close-typing-buddy-crash.diff] + - server-side buddy lists are disabled for ICQ over Oscar to avoid + mysterious bugs with authentication-required buddies not + appearing on-line [debian/patches/no-ssi-for-icq.diff] + - Gaim doesn't fork and uses gdk_beep() for console beeps + [debian/patches/non-forked-gdk-beep.diff] (closes: #136165) + - Gaim doesn't gradually make the X server use all your RAM + [debian/patches/memleak.diff] + - typing notification doesn't crash Gaim if you don't use tabs + [debian/paches/no-tab-crash.diff] + - sending a nul or � doesn't crash Gaim + [debian/patches/nul-crash.diff] + + -- Robert McQueen Mon, 4 Mar 2002 19:23:38 +0000 + +gaim (1:0.53-1) unstable; urgency=low + + * New upstream version. Adds typing notification, new ICQ icons, IM + Images, screen-name formatting support and server-side buddy list + storage/retrieval for Oscar, and various other nice features and + cleanups. (closes: #136512) + * Includes documentation and MSN segfault fixes that were patched into + the previous release. + * Automatic update of config.{sub,guess} from 20010420 to 20020222. + + -- Robert McQueen Sun, 3 Mar 2002 19:06:52 +0000 + +gaim (1:0.52-1) unstable; urgency=medium + + * New upstream version. Fixes a variety of nasty problems. + * Fixes crashing on connection with some MSN buddy lists. + * Uses correct Yahoo! messenger server. (closes: #133343) + * Fixes DOSable erroneous handling of HTML comments. (closes: #133603) + * Applied patch from CVS to fix MSN segfaults. (closes: #115538) + * Moved iconaway.so plugin into gaim-gnome package because it's + useless without the applet. (closes: #133500) + * Fixed little typo in manpage (already fixed in CVS). + + -- Robert McQueen Sun, 17 Feb 2002 22:32:10 +0000 + +gaim (1:0.51-2) unstable; urgency=low + + * Fixed description of gaim-gnome to make it obvious that it is a + panel applet. + * Made gaim-gnome depend on gnome-panel. It's unreasonable to request + that libpanel-applet0 does so, but gaim-gnome is useless without + it. (closes: #131233) + + -- Robert McQueen Mon, 28 Jan 2002 20:25:04 +0000 + +gaim (1:0.51-1) unstable; urgency=low + + * The 'Hi anyone on gaim's PTS' release. + * New upstream version, mostly bug fixes. (closes: #130737) + * Upstream developer Eric Warmenhoven departs... thanks for all of + your help and effort - you'll be greatly missed by all. + * According to him, crashes were caused by a Gtk+ bug which has now + been worked around. (closes: #115538) + * He removed the help message a few weeks ago because I said it didn't + wrap properly... not sure how helpful that was though. + (closes: #125310) + * He also grappled with the GNOME panel to implement transparent + backgrounds as best he could. The Gaim applet icon will have the + same background image as the panel, but it will not line up with + the panel's because the panel doesn't provide enough imformation to + achieve that. (closes: #128449) + * Made gaim-common include a handful of .h files so that you can build + plugins without the Gaim source - this opens the way for packaging + plugins that don't come with Gaim. The reason is that I do not wish + to include unofficial plugins in Gaim and accept responsibility for + ensuring they work with the latest versions, or be forced to remove + them from the package at a later date, sorry. (closes: #129737) + * I can no longer reproduce this bug with this new version, but I am + also unable to determine if/when exactly it was fixed from the CVS + logs. If you can still make it happen, please reopen it and I'll + chase it up. (closes: #117498) + * Fixed a few minor errors in the manpage. (closes: #130435, #130443) + * Re-worked description to highlight mutli-protocol support. + (closes: #130437) + * Automatic update of config.{sub,guess} from 20010907 to 20020102. + + -- Robert McQueen Sun, 27 Jan 2002 05:45:05 +0000 + +gaim (1:0.50-1) unstable; urgency=low + + * The 'Hi everyone who reads d-d-c!' release. + * New upstream version, includes GnomeICU import and Galeon patches + from 0.49-2. (closes: #125897) + * Added a suitably scaled Debian menu icon for gaim. (closes: #122302) + * Re-ordered build to do the non-GNOME version first and install that + 'manually', so all the files from the GNOME applet get installed + with the 'make install' target. This means gaim-gnome now contains + the applet panel images. (closes: #122315) + * Fixed re-declaration of time() in jabber/xtream.c. (closes: #124390) + + -- Robert McQueen Thu, 20 Dec 2001 18:30:16 +0000 + +gaim (1:0.49-2) unstable; urgency=medium + + * The 'grr... dpkg' release. Fixes possibly troublesome package + relationship problems. + * Made gaim-gnome conflict and replace old gaim packages. + * Made gaim-common have a versioned depend on gaim or gaim-gnome, + because a dpkg bug seemed to let you install an old gaim-common + with a new gaim or gaim-gnome, even though they have a versioned + depend on gaim-common. + * Added patch from CVS to support GnomeICU buddy list importing. + * Added option to use Galeon as the browser. + + -- Robert McQueen Sat, 1 Dec 2001 22:41:04 +0000 + +gaim (1:0.49-1) unstable; urgency=low + + * New upstream version. + * Removed evil hack from debian/rules to rename plugins from + libfoo.so.0.0.0 to libfoo.so (fixed upstream). + * Updated description to include Gadu-gadu protocol. + * Removal of buddies from within the IM window is now confirmed. + (closes: #116442) + * Memory leak in buddy list fixed. (closes: #119639) + * Pgup/pgdown in IM windows now scrolls only one text box, not both. + (closes: #120027) + * Included a minor patch to remove ^M characters from Oscar messages. + (closes: #120595) + * Now suggests ispell. (closes: #121656) + + -- Robert McQueen Fri, 30 Nov 2001 01:43:01 +0000 + +gaim (1:0.48-1) unstable; urgency=low + + * New upstream version. (closes: #119748) + * Better support for ICQ2000 features via OSCAR protocol, like + server/offline messages. + * Doesn't temporarily grow small GNONE panels when the applet starts + up. + * GNU config automated update: config.sub (20011005 to 20011108), + config.guess (20011005 to 20011108) + + -- Robert McQueen Fri, 16 Nov 2001 19:46:48 +0000 + +gaim (1:0.47-1) unstable; urgency=low + + * New upstream version. + * Sound-playing children now time out after 30 seconds. + (closes: #116982) + + -- Robert McQueen Fri, 2 Nov 2001 00:53:18 +0000 + +gaim (1:0.46-1) unstable; urgency=low + + * New upstream version. (closes: #114950) + * Added documentation: plugins/PERL-HOWTO, plugins/SIGNALS, + doc/CREDITS, doc/FAQ. + + -- Robert McQueen Fri, 19 Oct 2001 00:37:19 +0100 + +gaim (1:0.45-1) unstable; urgency=low + + * New upstream version, includes fix to avoid infinite IM window + growth. (closes: #114950) + * Upgraded to DH_COMPAT=3 to make /etc/CORBA/servers/gaim_applet.gnorba + a conffile. Adjusted build deps to match. + + -- Robert McQueen Sun, 14 Oct 2001 19:45:20 +0100 + +gaim (1:0.44-2) unstable; urgency=medium + + * Applied patch from CVS to avoid IM windows sizing to 0 by default + and growing limitlessly. + + -- Robert McQueen Tue, 25 Sep 2001 01:28:14 +0100 + +gaim (1:0.44-1) unstable; urgency=low + + * New upstream version. + * Enabled perl support, upstream assures me it works now. + (closes: #112732) + + -- Robert McQueen Sun, 23 Sep 2001 18:37:20 +0100 + +gaim (1:0.43-1) unstable; urgency=medium + + * New upstream version including various bugfixes. + * Colour selection dialogs now remember the previous colours. + (closes: #101562) + * Autorecon plugin now has an exponential backoff to allow users to + correct non-transient errors. (closes: #102042) + * Changed 'buddy' prompt to 'contact' to make the Add Buddy dialog + less AIM-specific. (closes: #105460) + * Users can now edit their alias with the MSN plugin. (closes: #110966) + * Added postinst scripts for gaim and gaim-gnome to rmdir their dirs + from /usr/share/doc if they exist, and replace them with symlinks + to gaim-common. (closes: #111127) + * Seeing as we have to build twice, try and build as little as + possible the first time round (just the gaim_applet binary and its + dependencies) to make it more efficient. + * Updated config.{sub,guess} from latest autotools-dev. + + -- Robert McQueen Tue, 11 Sep 2001 22:42:51 +0100 + +gaim (1:0.11.0pre15-1) unstable; urgency=low + + * New maintainer. (closes: #100549) + * New upstream version. (closes: #54105, #96166) + * Repackaged with sane version number, pristine .orig.tar.gz, and + seperate .diff.gz. (closes: #106488) + * MSN and OSCAR protocols are functional at time of release. + (closes: #92045, #105841) + * Plugins, locales and docs are now in a shared gaim-common package. + * Therefore, gaim and gaim-gnome are concurrently installable. + (closes: #69794, #87873) + * These new shared plugins are not linked against GNOME. + (closes: #83427) + * The GNOME applet now has a CORBA file and correct Applet menu entry, + so it correctly integrates with the panel and saves settings. + (closes: #80587, #92950, #101560) + * Added code to debian/rules to update config.{guess,sub} from + autotools-dev when necessary. (closes: #104934) + + -- Robert McQueen Fri, 31 Aug 2001 03:38:54 +0100 + +gaim (1:0.11.0pre11) unstable; urgency=low + + * New upstream release. + + -- Robert S. Edmonds Mon, 14 May 2001 17:40:05 -0400 + +gaim (1:0.11.0pre9-1) unstable; urgency=low + + * New upstream release. Closes: #91854 + + -- Robert S. Edmonds Tue, 27 Mar 2001 07:32:16 -0500 + +gaim (1:0.11.0pre8-1) unstable; urgency=low + + * New upstream release. + + -- Robert S. Edmonds Sun, 25 Mar 2001 15:26:59 -0500 + +gaim (1:0.11.0pre7-1) unstable; urgency=low + + * New upstream release. + + -- Robert S. Edmonds Sun, 18 Mar 2001 18:40:46 -0500 + +gaim (1:0.11.0pre4-2) unstable; urgency=low + + * Fixed gaim package, now contains a plain GTK-linked binary. + + -- Robert S. Edmonds Tue, 20 Feb 2001 18:12:45 -0500 + +gaim (1:0.11.0pre4-1) unstable; urgency=low + + * New upstream release. + + -- Robert S. Edmonds Sat, 23 Dec 2000 16:38:09 -0500 + +gaim (1:0.11.0pre2-1) unstable; urgency=low + + * New upstream release. + + -- Robert S. Edmonds Wed, 13 Dec 2000 07:28:04 -0500 + +gaim (1:0.10.3-2) unstable; urgency=low + + * Patched to fix remote HTML exploit when using OSCAR protocol. Closes: #77539 + * New upstream release. + + -- Robert S. Edmonds Tue, 28 Nov 2000 19:48:33 -0500 + +gaim (1:0.10.1) unstable; urgency=low + + * New upstream release. + + -- Robert S. Edmonds Sun, 17 Sep 2000 17:43:20 -0400 + +gaim (1:0.10.0-1) unstable; urgency=low + + * New upstream release. + + -- Robert S. Edmonds Mon, 11 Sep 2000 17:56:10 -0400 + +gaim (1:0.9.20-1) unstable; urgency=low + + * Thanks to Decklin Foster + * New upstream release. + * removed au2h generated files from .diff.gz + * Build with and without Gnome support + + -- Robert S. Edmonds Wed, 26 Jul 2000 00:19:20 -0400 + +gaim (1:0.9.18-1) unstable; urgency=low + + * New upstream release. + + -- Robert S. Edmonds Sat, 3 Jun 2000 11:14:21 -0400 + +gaim (1:0.9.15-1) unstable; urgency=low + + * New upstream release. + + -- Robert S. Edmonds Sun, 21 May 2000 21:00:40 -0400 + +gaim (1:0.9.13-1) unstable; urgency=low + + * New upstream release. + + -- Robert S. Edmonds Wed, 29 Mar 2000 21:16:47 -0500 + +gaim (1:0.9.10-2) unstable; urgency=low + + * Closes: #56340 + + -- Robert S. Edmonds Wed, 23 Feb 2000 19:01:54 -0500 + +gaim (1:0.9.10-1) unstable; urgency=low + + * New upstream release. + + -- Robert S. Edmonds Tue, 23 Nov 1999 22:42:47 -0500 + +gaim (1:0.9.7-1) unstable; urgency=low + + * New upstream release. + + -- Robert S. Edmonds Sun, 15 Aug 1999 20:01:54 -0400 + +gaim (0.9.5-1) unstable; urgency=low + + * New upstream release. + + -- Robert S. Edmonds Sat, 31 Jul 1999 23:12:54 -0400 + +gaim (0.8.0-1) unstable; urgency=low + + * New upstream version. + + -- Robert S. Edmonds Mon, 17 May 1999 20:00:10 -0400 + +gaim (19990311-1) unstable; urgency=low + + * New upstream version. + + -- Robert S. Edmonds Thu, 11 Mar 1999 16:58:29 -0500 + +gaim (19990227-1) unstable; urgency=low + + * New upstream version. + + -- Robert S. Edmonds Sat, 27 Feb 1999 21:54:49 -0500 + +gaim (19981231-1) unstable; urgency=low + + * New upstream version. + + -- Robert S. Edmonds Thu, 31 Dec 1998 14:06:14 -0500 + +gaim (19981126-1) unstable; urgency=low + + * New upsteam version. + + -- Robert S. Edmonds Sat, 28 Nov 1998 17:46:25 -0500 + +gaim (19981117-1) unstable; urgency=low + + * Initial release. + + -- Robert S. Edmonds Wed, 18 Nov 1998 16:59:35 -0500 --- pidgin-2.4.1.orig/debian/pidgin.preinst +++ pidgin-2.4.1/debian/pidgin.preinst @@ -0,0 +1,42 @@ +#!/bin/sh +# preinst script for pidgin +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `install' +# * `install' +# * `upgrade' +# * `abort-upgrade' +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + install|upgrade) + if dpkg --compare-versions "$2" lt 1:2.1.1-2; then + if [ -h /usr/share/doc/pidgin ]; then + rm /usr/share/doc/pidgin + fi + fi + ;; + + abort-upgrade) + ;; + + *) + echo "preinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + --- pidgin-2.4.1.orig/debian/TODO +++ pidgin-2.4.1/debian/TODO @@ -0,0 +1,3 @@ +- Add a dh_purple and/or dh_finch for people who want to package plugins for +those. dh_purple should probably add Depends: finch | pidgin with the +appropriate versions. --- pidgin-2.4.1.orig/debian/watch +++ pidgin-2.4.1/debian/watch @@ -0,0 +1,2 @@ +version=3 +http://sf.net/pidgin/pidgin-([\d.]+)\.tar\.gz --- pidgin-2.4.1.orig/debian/libpurple-dev.install +++ pidgin-2.4.1/debian/libpurple-dev.install @@ -0,0 +1,4 @@ +debian/tmp/usr/lib/libpurple*.so +debian/tmp/usr/include/libpurple +debian/tmp/usr/lib/pkgconfig/purple.pc +debian/tmp/usr/share/aclocal --- pidgin-2.4.1.orig/debian/libpurple0.install +++ pidgin-2.4.1/debian/libpurple0.install @@ -0,0 +1,6 @@ +debian/tmp/usr/lib/libpurple*.so.* +debian/tmp/usr/lib/purple-2 +debian/tmp/usr/lib/perl5/Purple.pm +debian/tmp/usr/lib/perl5/auto/Purple +debian/tmp/usr/share/man/*/Purple.* +debian/lintian-override/libpurple0 usr/share/lintian/overrides --- pidgin-2.4.1.orig/debian/finch.install +++ pidgin-2.4.1/debian/finch.install @@ -0,0 +1,6 @@ +debian/tmp/usr/bin/finch +debian/tmp/usr/lib/finch +debian/tmp/usr/lib/libgnt*.so.* +debian/tmp/usr/lib/gnt +debian/tmp/usr/share/man/*/finch.* +debian/lintian-override/finch usr/share/lintian/overrides --- pidgin-2.4.1.orig/debian/pidgin-dev.preinst +++ pidgin-2.4.1/debian/pidgin-dev.preinst @@ -0,0 +1,42 @@ +#!/bin/sh +# preinst script for pidgin-dev +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `install' +# * `install' +# * `upgrade' +# * `abort-upgrade' +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + install|upgrade) + if dpkg --compare-versions "$2" lt 1:2.1.1-2; then + if [ -h /usr/share/doc/pidgin-dev ]; then + rm /usr/share/doc/pidgin-dev + fi + fi + ;; + + abort-upgrade) + ;; + + *) + echo "preinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + --- pidgin-2.4.1.orig/debian/README.Debian.dev +++ pidgin-2.4.1/debian/README.Debian.dev @@ -0,0 +1,25 @@ +README for pidgin-dev - How to package Pidgin plugins +------------------------------------------------- + +First, let me explain the current Pidgin versioning scheme (as of 1.0.0): +Every time the plugin API in pidgin is made backwards-incompatible with +previous versions, the major version number (the first number before the .) +is incremented. So if currently in the pidgin 2.x series, the next +time the API will change such that plugins may need to be changed is +at 3.0.0. + +pidgin plugin packages should be named pidgin-, so for +Guifications, the package name should be pidgin-guifications. Plugin packages +should build-depend on pidgin-dev (>= minimum pidgin version required to +support plugin). Normally the minimum version of pidgin-dev will just +be 2.0.0 for the 2.x series, or higher if the plugin uses a new function +introduced in a later version. + +Plugin packages should also use dh_pidgin to set the correct dependencies +for the resulting package. dh_pidgin is included in the pidgin-dev package, +and can be used by making sure the Depends: field in the plugin package's +debian/control file contains "${misc:Depends}", the Conflicts: field contains +"${misc:Conflicts}", as well as calling dh_pidgin from debian/rules, normally +in the install rule. + +-- Ari Pollak 25 Sep 2006 --- pidgin-2.4.1.orig/debian/pidgin-menu.xpm +++ pidgin-2.4.1/debian/pidgin-menu.xpm @@ -0,0 +1,164 @@ +/* XPM */ +static char *pidgin-menu[] = { +/* columns rows colors chars-per-pixel */ +"32 32 126 2", +" c #2E3436", +". c #35243C", +"X c #3C1A42", +"o c #31234D", +"O c #401C46", +"+ c #431F4A", +"@ c #402046", +"# c #44234A", +"$ c #48284E", +"% c #4A2651", +"& c #4E2D53", +"* c #54345A", +"= c #503855", +"- c #58365F", +"; c #593D5E", +": c #5B3B61", +"> c #5E3868", +", c #6D4475", +"< c #6E4179", +"1 c #6B4B72", +"2 c #6F4D79", +"3 c #635666", +"4 c #6B5270", +"5 c #70457B", +"6 c #704F77", +"7 c #714A7C", +"8 c #715276", +"9 c #725079", +"0 c #78517F", +"q c #787878", +"w c #754680", +"e c #764C82", +"r c #784B82", +"t c #7E4E89", +"y c #755380", +"u c #7C5585", +"i c #7E5788", +"p c #7D5985", +"a c #7F5C88", +"s c #B6625C", +"d c #BC6C64", +"f c #BA797F", +"g c #D5693B", +"h c #F7741B", +"j c #F9751A", +"k c #E96F29", +"l c #EE7124", +"z c #F97E29", +"x c #C1634F", +"c c #814E8D", +"v c #81508D", +"b c #815E87", +"n c #815B8A", +"m c #8B5284", +"M c #845390", +"N c #865D91", +"B c #895596", +"V c #8A5D93", +"C c #915B9D", +"Z c #955EA1", +"A c #816587", +"S c #83638C", +"D c #816A85", +"F c #886A8F", +"G c #8B6195", +"H c #8A6B92", +"J c #8F6899", +"K c #8C7093", +"L c #916E99", +"P c #94729A", +"I c #98769F", +"U c #9561A1", +"Y c #9D65A8", +"T c #9773A0", +"R c #9A76A3", +"E c #9F71A9", +"W c #9C7AA4", +"Q c #A3708F", +"! c #B27A8D", +"~ c #A26BAE", +"^ c #A476B0", +"/ c #AA7CB3", +"( c #F9812F", +") c #FA924B", +"_ c #FA9651", +"` c #F3A06C", +"' c #F6AC79", +"] c #FBAB73", +"[ c #818181", +"{ c #8B8B8B", +"} c #938196", +"| c gray57", +" . c gray60", +".. c #A986B2", +"X. c #A798A9", +"o. c #A89BAB", +"O. c #B08CB9", +"+. c #B195B7", +"@. c #BDB3BF", +"#. c #BDA2C3", +"$. c #D2B2B5", +"%. c #DFBDB3", +"&. c #EFAE8A", +"*. c #E1A794", +"=. c #F8B486", +"-. c #C4A5CB", +";. c #C9B2CD", +":. c #D0B4D7", +">. c #D2B7D8", +",. c #D3B9D8", +"<. c #CBC4CC", +"1. c #D2D2D2", +"2. c #DBD6DB", +"3. c #DBC4E0", +"4. c #DFCFE3", +"5. c #E2DEE2", +"6. c #EBDFED", +"7. c #E5E4E5", +"8. c #E9E4EA", +"9. c #EEEEEE", +"0. c #EFE5F1", +"q. c #F2EBF3", +"w. c #F3F3F3", +"e. c #F9F6F9", +"r. c #FDFDFD", +"t. c None", +/* pixels */ +"t.t.t.t.t.t.t.t.t.t.t.q [ q q q q q q q q q q q q q q q [ q t.t.", +"t.t.t.t.t.t.t.t.t.t.q | w.r.r.r.r.r.r.r.r.r.r.r.r.r.r.r.9.| [ t.", +"t.t.t.t.t.t.t.t.t.q { r.r.r.e.r.e.r.r.r.e.r.e.r.r.r.e.r.r.r.{ q ", +"t.t.t.t.t.t.t.t.t.[ 7.r.r.e.r.e.r.r.e.e.r.e.r.e.e.r.r.e.r.r.7.[ ", +"t.t.t.t.t.t.t.t.t.q r.e.r.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.r.[ ", +"t.t.t.t.t.t.t.t.X @ } 9.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.r.q ", +"t.t.t.t.t.t.X X X 3 $ ; 7.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.e.r.q ", +"t.t.t.t.t.t.o X X @ o & 4 X.7.e.e.w.e.w.e.e.w.e.w.e.w.e.w.e.r.q ", +"t.t.t.t.t.X X - p H W P a 1 % @.w.e.w.e.e.w.e.w.e.w.w.e.w.e.r.q ", +"t.t.t.t.X + a W S y 6 y n L L * D w.w.w.w.w.w.e.w.w.e.w.w.w.r.q ", +"t.t.t.X + I G e 2 w 7 7 7 7 n W ; o.w.w.w.w.w.w.w.w.w.w.w.w.r.q ", +"t.t.X X S J e r e e e e e e r n I & 2.w.w.w.w.w.w.w.w.w.w.w.r.q ", +"t.t.X : W E 8.0.O.v t t t t c c J J S w.w.9.w.9.w.9.w.w.w.w.r.q ", +"t.t.X a U 3.r.r.r.^ v v v M c C -.q.+.9.w.9.9.w.9.w.9.9.9.9.r.q ", +"t.t.O P Y q.H H r.,.v v M M M Z F F q.8.w.9.9.9.9.w.w.9.9.9.e.[ ", +"t.t.X W ~ 0.H H r.4.v v c t c C A H e.<.9.9.9.9.9.9.9.9.9.w.w.[ ", +"t.t.@ W Y :.r.r.r...c c v v c B / 8.;.7.w.9.9.9.9.9.9.9.9.e.7.q ", +"t.t.O W B ~ >.q.#.M c M v v v M B U < r.r.r.r.e.9.e.r.r.r.e.{ q ", +"t.t.O W t M c c c v v %.=.' $.t V S = q q q [ r.r.1.q q q [ q t.", +"t.t.X R v v M c ! *.&.] _ ( j g d 6 X t.t.t.q e. .[ q q q t.t.t.", +"t.t.O I M M c M t ! ` ) ( j j l Q : X t.t.t.q q q t.t.t.t.t.t.t.", +"t.t.X R M t M t M c m s g l x m R $ X t.t.t.q q t.t.t.t.t.t.t.t.", +"t.X & R t M c c c c c c c c v c R + t.t.t.t.t.t.t.t.t.t.t.t.t.t.", +"t.X 1 G m c c c c c c c v v c c T & X t.t.t.t.t.t.t.t.t.t.t.t.t.", +"t.X F 7 c c c c c c c c c c c c a 8 X X t.t.t.t.t.t.t.t.t.t.t.t.", +"X & G t c c M c c M c c c v c c 5 S 8 @ X t.t.t.t.t.t.t.t.t.t.t.", +"X 9 u 5 c c c c c c c c c v v t 5 < u S : + X t.t.t.t.t.t.t.t.t.", +"O a 5 < t c c c c c c c c v t 5 < < < 5 i 6 % X t.t.t.t.t.t.t.t.", +"X i 5 < 5 t c c c c c c c c w < < 5 < < < e 6 O t.t.t.t.t.t.t.t.", +"O > 0 n n n V V G G G G G V N i i u i u i a 7 O t.t.t.t.t.t.t.t.", +". @ # # # O X X X X O O X X X X X X X X X X X X t.t.t.t.t.t.t.t.", +" t.t.t.t.t.t.t.t." +}; --- pidgin-2.4.1.orig/debian/lintian-override/libpurple0 +++ pidgin-2.4.1/debian/lintian-override/libpurple0 @@ -0,0 +1,4 @@ +# Internal libraries +libpurple0: binary-or-shlib-defines-rpath ./usr/lib/purple-2/libaim.so /usr/lib/purple-2 +libpurple0: binary-or-shlib-defines-rpath ./usr/lib/purple-2/libicq.so /usr/lib/purple-2 +libpurple0: binary-or-shlib-defines-rpath ./usr/lib/purple-2/libxmpp.so /usr/lib/purple-2 --- pidgin-2.4.1.orig/debian/lintian-override/finch +++ pidgin-2.4.1/debian/lintian-override/finch @@ -0,0 +1,3 @@ +finch: package-name-doesnt-match-sonames libgnt0 +# installed by pidgin-data +finch: binary-without-manpage usr/bin/finch --- pidgin-2.4.1.orig/debian/lintian-override/pidgin +++ pidgin-2.4.1/debian/lintian-override/pidgin @@ -0,0 +1,3 @@ +# installed by pidgin-data +pidgin: menu-icon-missing /usr/share/pixmaps/pidgin-menu.xpm +pidgin: binary-without-manpage usr/bin/pidgin --- pidgin-2.4.1.orig/debian/lintian-override/libpurple-bin +++ pidgin-2.4.1/debian/lintian-override/libpurple-bin @@ -0,0 +1,2 @@ +#installed by pidgin-data +libpurple-bin: binary-without-manpage usr/bin/purple-remote --- pidgin-2.4.1.orig/debian/pidgin-dev.doc-base +++ pidgin-2.4.1/debian/pidgin-dev.doc-base @@ -0,0 +1,9 @@ +Document: pidgin-dev +Title: Gaim API Manual +Abstract: This manual describes the Gaim programming interface + for use by Gaim plugins and scripts. +Section: devel + +Format: HTML +Index: /usr/share/doc/pidgin-dev/html/index.html +Files: /usr/share/doc/pidgin-dev/html/*.html --- pidgin-2.4.1.orig/debian/compat +++ pidgin-2.4.1/debian/compat @@ -0,0 +1 @@ +5 --- pidgin-2.4.1.orig/debian/pidgin.install +++ pidgin-2.4.1/debian/pidgin.install @@ -0,0 +1,9 @@ +debian/tmp/etc/gconf +debian/tmp/usr/bin/pidgin +debian/tmp/usr/lib/perl5/Pidgin.pm +debian/tmp/usr/lib/perl5/auto/Pidgin +debian/tmp/usr/lib/pidgin +debian/tmp/usr/share/applications +debian/tmp/usr/share/man/*/pidgin.* +debian/tmp/usr/share/man/*/Pidgin.* +debian/lintian-override/pidgin usr/share/lintian/overrides --- pidgin-2.4.1.orig/debian/pidgin-data.install +++ pidgin-2.4.1/debian/pidgin-data.install @@ -0,0 +1,6 @@ +debian/tmp/usr/share/icons +debian/tmp/usr/share/locale +debian/tmp/usr/share/pixmaps +debian/tmp/usr/share/sounds +debian/pidgin-menu.xpm usr/share/pixmaps +debian/prefs.xml etc/purple --- pidgin-2.4.1.orig/debian/purple-remote.1 +++ pidgin-2.4.1/debian/purple-remote.1 @@ -0,0 +1,65 @@ +.TH PURPLE-REMOTE 1 +.SH NAME +purple-remote \- Send remote commands to Pidgin/Finch +.SH SYNOPSIS +.TP 5 +\fBpurple-remote \fIcommand1\fR \fIcommand2\fR \fI...\fR +.RI +.br +.SH OPTIONS +Each command is of one of the three types: +.PP +[protocol:]commandname?param1=value1¶m2=value2&... +.br +FunctionName?param1=value1¶m2=value2&... +.br +FunctionName(value1,value2,...) +.PP +The second and third form are provided for completeness but their use +is not recommended; use purple-send or purple-send-async instead. The +second form uses introspection to find out the parameter names and +their types, therefore it is rather slow. + +.SH EXAMPLES +jabber:goim?screenname=testone@localhost&message=hi +.br +jabber:gochat?room=TestRoom&server=conference.localhost +.br +jabber:getinfo?screenname=testone@localhost +.br +jabber:addbuddy?screenname=my friend +.br +.PP +setstatus?status=away&message=don't disturb +.br +quit +.PP +PurpleAccountsFindConnected?name=&protocol=prpl-jabber +.br +PurpleAccountFindConnected(,prpl-jabber) + +.SH DESCRIPTION +.PP +Send remote commands to Purple. This program uses DBus to communicate with +Pidgin/Finch. + +.SH LICENSE +.PP +Copyright (c) 1998-2006 see: AUTHORS + +.PP +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License version 2, as +published by the Free Software Foundation +.SH AUTHORS +.PP +Sean Egan - Lead Developer +.PP +This manual page was written by Anibal Avelar . +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU General Public License, Version 2 any +later version published by the Free Software Foundation. + +.PP +On Debian systems, the complete text of the GNU General Public +License can be found in /usr/share/common-licenses/GPL. --- pidgin-2.4.1.orig/debian/pidgin-data.docs +++ pidgin-2.4.1/debian/pidgin-data.docs @@ -0,0 +1 @@ +ChangeLog.API --- pidgin-2.4.1.orig/debian/finch-dev.install +++ pidgin-2.4.1/debian/finch-dev.install @@ -0,0 +1,5 @@ +debian/tmp/usr/include/finch +debian/tmp/usr/include/gnt +debian/tmp/usr/lib/libgnt.so +debian/tmp/usr/lib/pkgconfig/gnt.pc +debian/tmp/usr/lib/pkgconfig/finch.pc --- pidgin-2.4.1.orig/debian/libpurple-bin.manpages +++ pidgin-2.4.1/debian/libpurple-bin.manpages @@ -0,0 +1 @@ +debian/purple-remote.1 --- pidgin-2.4.1.orig/debian/libpurple0.symbols +++ pidgin-2.4.1/debian/libpurple0.symbols @@ -0,0 +1,2099 @@ +libpurple-client.so.0 libpurple0 #MINVER# + PURPLE_BLIST_NODE_HAS_FLAG@Base 2.2.0 + PURPLE_BLIST_NODE_IS_BUDDY@Base 2.2.0 + PURPLE_BLIST_NODE_IS_CHAT@Base 2.2.0 + PURPLE_BLIST_NODE_IS_CONTACT@Base 2.2.0 + PURPLE_BLIST_NODE_IS_GROUP@Base 2.2.0 + PURPLE_BLIST_NODE_SHOULD_SAVE@Base 2.2.0 + PURPLE_BUDDY_IS_ONLINE@Base 2.2.0 + PURPLE_CONNECTION_IS_CONNECTED@Base 2.2.0 + PURPLE_CONNECTION_IS_VALID@Base 2.2.0 + PURPLE_CONV_CHAT@Base 2.2.0 + PURPLE_CONV_IM@Base 2.2.0 + _purple_oscar_convert@Base 2.2.0 + purple_account_add_buddies@Base 2.2.0 + purple_account_add_buddy@Base 2.2.0 + purple_account_change_password@Base 2.2.0 + purple_account_clear_current_error@Base 2.3.0 + purple_account_clear_settings@Base 2.2.0 + purple_account_connect@Base 2.2.0 + purple_account_destroy@Base 2.2.0 + purple_account_destroy_log@Base 2.2.0 + purple_account_disconnect@Base 2.2.0 + purple_account_get_active_status@Base 2.2.0 + purple_account_get_alias@Base 2.2.0 + purple_account_get_bool@Base 2.2.0 + purple_account_get_buddy_icon_path@Base 2.2.0 + purple_account_get_check_mail@Base 2.2.0 + purple_account_get_connection@Base 2.2.0 + purple_account_get_current_error@Base 2.3.0 + purple_account_get_enabled@Base 2.2.0 + purple_account_get_int@Base 2.2.0 + purple_account_get_log@Base 2.2.0 + purple_account_get_password@Base 2.2.0 + purple_account_get_presence@Base 2.2.0 + purple_account_get_protocol_id@Base 2.2.0 + purple_account_get_protocol_name@Base 2.2.0 + purple_account_get_proxy_info@Base 2.2.0 + purple_account_get_remember_password@Base 2.2.0 + purple_account_get_status@Base 2.2.0 + purple_account_get_status_type@Base 2.2.0 + purple_account_get_status_type_with_primitive@Base 2.2.0 + purple_account_get_status_types@Base 2.2.0 + purple_account_get_string@Base 2.2.0 + purple_account_get_ui_bool@Base 2.2.0 + purple_account_get_ui_int@Base 2.2.0 + purple_account_get_ui_string@Base 2.2.0 + purple_account_get_user_info@Base 2.2.0 + purple_account_get_username@Base 2.2.0 + purple_account_is_connected@Base 2.2.0 + purple_account_is_connecting@Base 2.2.0 + purple_account_is_disconnected@Base 2.2.0 + purple_account_is_status_active@Base 2.2.0 + purple_account_new@Base 2.2.0 + purple_account_notify_added@Base 2.2.0 + purple_account_register@Base 2.2.0 + purple_account_remove_buddies@Base 2.2.0 + purple_account_remove_buddy@Base 2.2.0 + purple_account_remove_group@Base 2.2.0 + purple_account_request_add@Base 2.2.0 + purple_account_request_change_password@Base 2.2.0 + purple_account_request_change_user_info@Base 2.2.0 + purple_account_request_close@Base 2.2.0 + purple_account_request_close_with_account@Base 2.2.0 + purple_account_set_alias@Base 2.2.0 + purple_account_set_bool@Base 2.2.0 + purple_account_set_buddy_icon_path@Base 2.2.0 + purple_account_set_check_mail@Base 2.2.0 + purple_account_set_connection@Base 2.2.0 + purple_account_set_enabled@Base 2.2.0 + purple_account_set_int@Base 2.2.0 + purple_account_set_password@Base 2.2.0 + purple_account_set_protocol_id@Base 2.2.0 + purple_account_set_proxy_info@Base 2.2.0 + purple_account_set_remember_password@Base 2.2.0 + purple_account_set_status_list@Base 2.2.0 + purple_account_set_status_types@Base 2.2.0 + purple_account_set_string@Base 2.2.0 + purple_account_set_ui_bool@Base 2.2.0 + purple_account_set_ui_int@Base 2.2.0 + purple_account_set_ui_string@Base 2.2.0 + purple_account_set_user_info@Base 2.2.0 + purple_account_set_username@Base 2.2.0 + purple_account_supports_offline_message@Base 2.2.0 + purple_accounts_add@Base 2.2.0 + purple_accounts_delete@Base 2.2.0 + purple_accounts_find@Base 2.2.0 + purple_accounts_find_any@Base 2.2.0 + purple_accounts_find_connected@Base 2.2.0 + purple_accounts_get_all@Base 2.2.0 + purple_accounts_get_all_active@Base 2.2.0 + purple_accounts_get_ui_ops@Base 2.2.0 + purple_accounts_init@Base 2.2.0 + purple_accounts_remove@Base 2.2.0 + purple_accounts_reorder@Base 2.2.0 + purple_accounts_restore_current_statuses@Base 2.2.0 + purple_accounts_set_ui_ops@Base 2.2.0 + purple_accounts_uninit@Base 2.2.0 + purple_blist_add_account@Base 2.2.0 + purple_blist_add_buddy@Base 2.2.0 + purple_blist_add_chat@Base 2.2.0 + purple_blist_add_contact@Base 2.2.0 + purple_blist_add_group@Base 2.2.0 + purple_blist_alias_buddy@Base 2.2.0 + purple_blist_alias_chat@Base 2.2.0 + purple_blist_alias_contact@Base 2.2.0 + purple_blist_destroy@Base 2.2.0 + purple_blist_find_chat@Base 2.2.0 + purple_blist_get_group_online_count@Base 2.2.0 + purple_blist_get_group_size@Base 2.2.0 + purple_blist_get_root@Base 2.2.0 + purple_blist_get_ui_ops@Base 2.2.0 + purple_blist_init@Base 2.2.0 + purple_blist_load@Base 2.2.0 + purple_blist_merge_contact@Base 2.2.0 + purple_blist_new@Base 2.2.0 + purple_blist_node_get_bool@Base 2.2.0 + purple_blist_node_get_extended_menu@Base 2.2.0 + purple_blist_node_get_flags@Base 2.2.0 + purple_blist_node_get_int@Base 2.2.0 + purple_blist_node_get_string@Base 2.2.0 + purple_blist_node_get_type@Base 2.2.0 + purple_blist_node_next@Base 2.2.0 + purple_blist_node_remove_setting@Base 2.2.0 + purple_blist_node_set_bool@Base 2.2.0 + purple_blist_node_set_flags@Base 2.2.0 + purple_blist_node_set_int@Base 2.2.0 + purple_blist_node_set_string@Base 2.2.0 + purple_blist_remove_account@Base 2.2.0 + purple_blist_remove_buddy@Base 2.2.0 + purple_blist_remove_chat@Base 2.2.0 + purple_blist_remove_contact@Base 2.2.0 + purple_blist_remove_group@Base 2.2.0 + purple_blist_rename_buddy@Base 2.2.0 + purple_blist_rename_group@Base 2.2.0 + purple_blist_request_add_buddy@Base 2.2.0 + purple_blist_request_add_chat@Base 2.2.0 + purple_blist_request_add_group@Base 2.2.0 + purple_blist_schedule_save@Base 2.2.0 + purple_blist_server_alias_buddy@Base 2.2.0 + purple_blist_set_ui_ops@Base 2.2.0 + purple_blist_set_visible@Base 2.2.0 + purple_blist_show@Base 2.2.0 + purple_blist_uninit@Base 2.2.0 + purple_blist_update_buddy_icon@Base 2.2.0 + purple_blist_update_buddy_status@Base 2.2.0 + purple_buddy_get_account@Base 2.2.0 + purple_buddy_get_alias@Base 2.2.0 + purple_buddy_get_alias_only@Base 2.2.0 + purple_buddy_get_contact@Base 2.2.0 + purple_buddy_get_contact_alias@Base 2.2.0 + purple_buddy_get_group@Base 2.2.0 + purple_buddy_get_icon@Base 2.2.0 + purple_buddy_get_local_alias@Base 2.2.0 + purple_buddy_get_name@Base 2.2.0 + purple_buddy_get_presence@Base 2.2.0 + purple_buddy_get_server_alias@Base 2.2.0 + purple_buddy_icon_get_account@Base 2.2.0 + purple_buddy_icon_get_checksum@Base 2.2.0 + purple_buddy_icon_get_extension@Base 2.2.0 + purple_buddy_icon_get_full_path@Base 2.2.0 + purple_buddy_icon_get_scale_size@Base 2.2.0 + purple_buddy_icon_get_username@Base 2.2.0 + purple_buddy_icon_new@Base 2.2.0 + purple_buddy_icon_ref@Base 2.2.0 + purple_buddy_icon_unref@Base 2.2.0 + purple_buddy_icon_update@Base 2.2.0 + purple_buddy_icons_get_cache_dir@Base 2.2.0 + purple_buddy_icons_init@Base 2.2.0 + purple_buddy_icons_is_caching@Base 2.2.0 + purple_buddy_icons_set_cache_dir@Base 2.2.0 + purple_buddy_icons_set_caching@Base 2.2.0 + purple_buddy_icons_uninit@Base 2.2.0 + purple_buddy_new@Base 2.2.0 + purple_buddy_set_icon@Base 2.2.0 + purple_build_dir@Base 2.2.0 + purple_chat_get_group@Base 2.2.0 + purple_chat_get_name@Base 2.2.0 + purple_chat_new@Base 2.2.0 + purple_connection_destroy@Base 2.2.0 + purple_connection_error@Base 2.2.0 + purple_connection_get_account@Base 2.2.0 + purple_connection_get_display_name@Base 2.2.0 + purple_connection_get_password@Base 2.2.0 + purple_connection_get_state@Base 2.2.0 + purple_connection_new@Base 2.2.0 + purple_connection_notice@Base 2.2.0 + purple_connection_set_account@Base 2.2.0 + purple_connection_set_display_name@Base 2.2.0 + purple_connection_set_state@Base 2.2.0 + purple_connection_update_progress@Base 2.2.0 + purple_connections_disconnect_all@Base 2.2.0 + purple_connections_get_all@Base 2.2.0 + purple_connections_get_connecting@Base 2.2.0 + purple_connections_get_ui_ops@Base 2.2.0 + purple_connections_init@Base 2.2.0 + purple_connections_set_ui_ops@Base 2.2.0 + purple_connections_uninit@Base 2.2.0 + purple_contact_get_alias@Base 2.2.0 + purple_contact_get_priority_buddy@Base 2.2.0 + purple_contact_invalidate_priority_buddy@Base 2.2.0 + purple_contact_new@Base 2.2.0 + purple_contact_on_account@Base 2.2.0 + purple_contact_set_alias@Base 2.2.0 + purple_conv_chat_add_user@Base 2.2.0 + purple_conv_chat_add_users@Base 2.2.0 + purple_conv_chat_cb_destroy@Base 2.2.0 + purple_conv_chat_cb_find@Base 2.2.0 + purple_conv_chat_cb_get_name@Base 2.2.0 + purple_conv_chat_cb_new@Base 2.2.0 + purple_conv_chat_clear_users@Base 2.2.0 + purple_conv_chat_find_user@Base 2.2.0 + purple_conv_chat_get_conversation@Base 2.2.0 + purple_conv_chat_get_id@Base 2.2.0 + purple_conv_chat_get_ignored@Base 2.2.0 + purple_conv_chat_get_ignored_user@Base 2.2.0 + purple_conv_chat_get_nick@Base 2.2.0 + purple_conv_chat_get_topic@Base 2.2.0 + purple_conv_chat_get_users@Base 2.2.0 + purple_conv_chat_has_left@Base 2.2.0 + purple_conv_chat_ignore@Base 2.2.0 + purple_conv_chat_is_user_ignored@Base 2.2.0 + purple_conv_chat_left@Base 2.2.0 + purple_conv_chat_remove_user@Base 2.2.0 + purple_conv_chat_remove_users@Base 2.2.0 + purple_conv_chat_rename_user@Base 2.2.0 + purple_conv_chat_send@Base 2.2.0 + purple_conv_chat_send_with_flags@Base 2.2.0 + purple_conv_chat_set_id@Base 2.2.0 + purple_conv_chat_set_ignored@Base 2.2.0 + purple_conv_chat_set_nick@Base 2.2.0 + purple_conv_chat_set_topic@Base 2.2.0 + purple_conv_chat_set_users@Base 2.2.0 + purple_conv_chat_unignore@Base 2.2.0 + purple_conv_chat_user_get_flags@Base 2.2.0 + purple_conv_chat_user_set_flags@Base 2.2.0 + purple_conv_chat_write@Base 2.2.0 + purple_conv_custom_smiley_add@Base 2.2.0 + purple_conv_custom_smiley_close@Base 2.2.0 + purple_conv_im_get_conversation@Base 2.2.0 + purple_conv_im_get_icon@Base 2.2.0 + purple_conv_im_get_send_typed_timeout@Base 2.2.0 + purple_conv_im_get_type_again@Base 2.2.0 + purple_conv_im_get_typing_state@Base 2.2.0 + purple_conv_im_get_typing_timeout@Base 2.2.0 + purple_conv_im_send@Base 2.2.0 + purple_conv_im_send_with_flags@Base 2.2.0 + purple_conv_im_set_icon@Base 2.2.0 + purple_conv_im_set_type_again@Base 2.2.0 + purple_conv_im_set_typing_state@Base 2.2.0 + purple_conv_im_start_send_typed_timeout@Base 2.2.0 + purple_conv_im_start_typing_timeout@Base 2.2.0 + purple_conv_im_stop_send_typed_timeout@Base 2.2.0 + purple_conv_im_stop_typing_timeout@Base 2.2.0 + purple_conv_im_update_typing@Base 2.2.0 + purple_conv_im_write@Base 2.2.0 + purple_conv_present_error@Base 2.2.0 + purple_conv_send_confirm@Base 2.2.0 + purple_conversation_autoset_title@Base 2.2.0 + purple_conversation_clear_message_history@Base 2.2.0 + purple_conversation_destroy@Base 2.2.0 + purple_conversation_get_account@Base 2.2.0 + purple_conversation_get_chat_data@Base 2.2.0 + purple_conversation_get_data@Base 2.2.0 + purple_conversation_get_extended_menu@Base 2.2.0 + purple_conversation_get_features@Base 2.2.0 + purple_conversation_get_gc@Base 2.2.0 + purple_conversation_get_im_data@Base 2.2.0 + purple_conversation_get_message_history@Base 2.2.0 + purple_conversation_get_name@Base 2.2.0 + purple_conversation_get_title@Base 2.2.0 + purple_conversation_get_type@Base 2.2.0 + purple_conversation_get_ui_ops@Base 2.2.0 + purple_conversation_has_focus@Base 2.2.0 + purple_conversation_is_logging@Base 2.2.0 + purple_conversation_message_get_flags@Base 2.2.0 + purple_conversation_message_get_message@Base 2.2.0 + purple_conversation_message_get_sender@Base 2.2.0 + purple_conversation_message_get_timestamp@Base 2.2.0 + purple_conversation_new@Base 2.2.0 + purple_conversation_present@Base 2.2.0 + purple_conversation_set_account@Base 2.2.0 + purple_conversation_set_data@Base 2.2.0 + purple_conversation_set_features@Base 2.2.0 + purple_conversation_set_logging@Base 2.2.0 + purple_conversation_set_name@Base 2.2.0 + purple_conversation_set_title@Base 2.2.0 + purple_conversation_set_ui_ops@Base 2.2.0 + purple_conversation_update@Base 2.2.0 + purple_conversation_write@Base 2.2.0 + purple_conversations_init@Base 2.2.0 + purple_conversations_set_ui_ops@Base 2.2.0 + purple_conversations_uninit@Base 2.2.0 + purple_core_ensure_single_instance@Base 2.2.0 + purple_core_get_ui@Base 2.2.0 + purple_core_get_ui_ops@Base 2.2.0 + purple_core_get_version@Base 2.2.0 + purple_core_init@Base 2.2.0 + purple_core_migrate@Base 2.2.0 + purple_core_quit@Base 2.2.0 + purple_core_quit_cb@Base 2.2.0 + purple_core_set_ui_ops@Base 2.2.0 + purple_email_is_valid@Base 2.2.0 + purple_escape_filename@Base 2.2.0 + purple_fd_get_ip@Base 2.2.0 + purple_find_buddies@Base 2.2.0 + purple_find_buddy@Base 2.2.0 + purple_find_buddy_in_group@Base 2.2.0 + purple_find_chat@Base 2.2.0 + purple_find_conversation_with_account@Base 2.2.0 + purple_find_group@Base 2.2.0 + purple_find_prpl@Base 2.3.0 + purple_get_attention_type_from_code@Base 2.2.0 + purple_get_blist@Base 2.2.0 + purple_get_chats@Base 2.2.0 + purple_get_conversations@Base 2.2.0 + purple_get_core@Base 2.2.0 + purple_get_ims@Base 2.2.0 + purple_got_protocol_handler_uri@Base 2.2.0 + purple_group_get_accounts@Base 2.2.0 + purple_group_get_name@Base 2.2.0 + purple_group_new@Base 2.2.0 + purple_group_on_account@Base 2.2.0 + purple_home_dir@Base 2.2.0 + purple_init@Base 2.2.0 + purple_log_common_deleter@Base 2.2.0 + purple_log_common_is_deletable@Base 2.2.0 + purple_log_common_lister@Base 2.2.0 + purple_log_common_sizer@Base 2.2.0 + purple_log_common_total_sizer@Base 2.2.0 + purple_log_common_writer@Base 2.2.0 + purple_log_delete@Base 2.2.0 + purple_log_free@Base 2.2.0 + purple_log_get_log_dir@Base 2.2.0 + purple_log_get_logs@Base 2.2.0 + purple_log_get_size@Base 2.2.0 + purple_log_get_system_logs@Base 2.2.0 + purple_log_get_total_size@Base 2.2.0 + purple_log_init@Base 2.2.0 + purple_log_is_deletable@Base 2.2.0 + purple_log_logger_add@Base 2.2.0 + purple_log_logger_free@Base 2.2.0 + purple_log_logger_get@Base 2.2.0 + purple_log_logger_get_options@Base 2.2.0 + purple_log_logger_remove@Base 2.2.0 + purple_log_logger_set@Base 2.2.0 + purple_log_set_free@Base 2.2.0 + purple_log_uninit@Base 2.2.0 + purple_log_write@Base 2.2.0 + purple_markup_get_css_property@Base 2.2.0 + purple_markup_get_tag_name@Base 2.2.0 + purple_markup_linkify@Base 2.2.0 + purple_markup_slice@Base 2.2.0 + purple_markup_strip_html@Base 2.2.0 + purple_markup_unescape_entity@Base 2.2.0 + purple_menu_action_free@Base 2.2.0 + purple_mime_decode_field@Base 2.2.0 + purple_normalize@Base 2.2.0 + purple_normalize_nocase@Base 2.2.0 + purple_notify_close@Base 2.2.0 + purple_notify_close_with_handle@Base 2.2.0 + purple_notify_get_ui_ops@Base 2.2.0 + purple_notify_init@Base 2.2.0 + purple_notify_searchresults_column_add@Base 2.2.0 + purple_notify_searchresults_column_get_title@Base 2.2.0 + purple_notify_searchresults_column_new@Base 2.2.0 + purple_notify_searchresults_free@Base 2.2.0 + purple_notify_searchresults_get_columns_count@Base 2.2.0 + purple_notify_searchresults_get_rows_count@Base 2.2.0 + purple_notify_searchresults_new@Base 2.2.0 + purple_notify_searchresults_new_rows@Base 2.2.0 + purple_notify_searchresults_row_add@Base 2.2.0 + purple_notify_searchresults_row_get@Base 2.2.0 + purple_notify_set_ui_ops@Base 2.2.0 + purple_notify_uninit@Base 2.2.0 + purple_notify_user_info_add_pair@Base 2.2.0 + purple_notify_user_info_add_section_break@Base 2.2.0 + purple_notify_user_info_add_section_header@Base 2.2.0 + purple_notify_user_info_destroy@Base 2.2.0 + purple_notify_user_info_entry_get_label@Base 2.2.0 + purple_notify_user_info_entry_get_type@Base 2.2.0 + purple_notify_user_info_entry_get_value@Base 2.2.0 + purple_notify_user_info_entry_new@Base 2.2.0 + purple_notify_user_info_entry_set_label@Base 2.2.0 + purple_notify_user_info_entry_set_type@Base 2.2.0 + purple_notify_user_info_entry_set_value@Base 2.2.0 + purple_notify_user_info_get_entries@Base 2.2.0 + purple_notify_user_info_get_text_with_newline@Base 2.2.0 + purple_notify_user_info_new@Base 2.2.0 + purple_notify_user_info_prepend_pair@Base 2.2.0 + purple_notify_user_info_remove_entry@Base 2.2.0 + purple_notify_user_info_remove_last_item@Base 2.2.0 + purple_prefs_add_bool@Base 2.2.0 + purple_prefs_add_int@Base 2.2.0 + purple_prefs_add_none@Base 2.2.0 + purple_prefs_add_path@Base 2.2.0 + purple_prefs_add_path_list@Base 2.2.0 + purple_prefs_add_string@Base 2.2.0 + purple_prefs_add_string_list@Base 2.2.0 + purple_prefs_destroy@Base 2.2.0 + purple_prefs_disconnect_by_handle@Base 2.2.0 + purple_prefs_disconnect_callback@Base 2.2.0 + purple_prefs_exists@Base 2.2.0 + purple_prefs_get_bool@Base 2.2.0 + purple_prefs_get_children_names@Base 2.2.0 + purple_prefs_get_int@Base 2.2.0 + purple_prefs_get_path@Base 2.2.0 + purple_prefs_get_path_list@Base 2.2.0 + purple_prefs_get_string@Base 2.2.0 + purple_prefs_get_string_list@Base 2.2.0 + purple_prefs_get_type@Base 2.2.0 + purple_prefs_init@Base 2.2.0 + purple_prefs_load@Base 2.2.0 + purple_prefs_remove@Base 2.2.0 + purple_prefs_rename@Base 2.2.0 + purple_prefs_rename_boolean_toggle@Base 2.2.0 + purple_prefs_set_bool@Base 2.2.0 + purple_prefs_set_generic@Base 2.2.0 + purple_prefs_set_int@Base 2.2.0 + purple_prefs_set_path@Base 2.2.0 + purple_prefs_set_path_list@Base 2.2.0 + purple_prefs_set_string@Base 2.2.0 + purple_prefs_set_string_list@Base 2.2.0 + purple_prefs_trigger_callback@Base 2.2.0 + purple_prefs_uninit@Base 2.2.0 + purple_prefs_update_old@Base 2.2.0 + purple_presence_add_status@Base 2.2.0 + purple_presence_compare@Base 2.2.0 + purple_presence_destroy@Base 2.2.0 + purple_presence_get_account@Base 2.2.0 + purple_presence_get_active_status@Base 2.2.0 + purple_presence_get_buddy@Base 2.2.0 + purple_presence_get_chat_user@Base 2.2.0 + purple_presence_get_context@Base 2.2.0 + purple_presence_get_conversation@Base 2.2.0 + purple_presence_get_idle_time@Base 2.2.0 + purple_presence_get_login_time@Base 2.2.0 + purple_presence_get_status@Base 2.2.0 + purple_presence_get_statuses@Base 2.2.0 + purple_presence_is_available@Base 2.2.0 + purple_presence_is_idle@Base 2.2.0 + purple_presence_is_online@Base 2.2.0 + purple_presence_is_status_active@Base 2.2.0 + purple_presence_is_status_primitive_active@Base 2.2.0 + purple_presence_new@Base 2.2.0 + purple_presence_new_for_account@Base 2.2.0 + purple_presence_new_for_buddy@Base 2.2.0 + purple_presence_new_for_conv@Base 2.2.0 + purple_presence_set_idle@Base 2.2.0 + purple_presence_set_login_time@Base 2.2.0 + purple_presence_set_status_active@Base 2.2.0 + purple_presence_switch_status@Base 2.2.0 + purple_primitive_get_id_from_type@Base 2.2.0 + purple_primitive_get_name_from_type@Base 2.2.0 + purple_primitive_get_type_from_id@Base 2.2.0 + purple_program_is_valid@Base 2.2.0 + purple_prpl_change_account_status@Base 2.3.0 + purple_prpl_get_statuses@Base 2.3.0 + purple_prpl_got_account_idle@Base 2.3.0 + purple_prpl_got_account_login_time@Base 2.3.0 + purple_prpl_got_user_idle@Base 2.3.0 + purple_prpl_got_user_login_time@Base 2.3.0 + purple_prpl_got_user_status_deactive@Base 2.3.0 + purple_restore_default_signal_handlers@Base 2.2.0 + purple_roomlist_cancel_get_list@Base 2.2.0 + purple_roomlist_expand_category@Base 2.2.0 + purple_roomlist_field_new@Base 2.2.0 + purple_roomlist_get_in_progress@Base 2.2.0 + purple_roomlist_get_list@Base 2.2.0 + purple_roomlist_get_ui_ops@Base 2.2.0 + purple_roomlist_new@Base 2.2.0 + purple_roomlist_ref@Base 2.2.0 + purple_roomlist_room_add@Base 2.2.0 + purple_roomlist_room_join@Base 2.2.0 + purple_roomlist_room_new@Base 2.2.0 + purple_roomlist_set_fields@Base 2.2.0 + purple_roomlist_set_in_progress@Base 2.2.0 + purple_roomlist_set_ui_ops@Base 2.2.0 + purple_roomlist_show_with_account@Base 2.2.0 + purple_roomlist_unref@Base 2.2.0 + purple_running_gnome@Base 2.2.0 + purple_running_kde@Base 2.2.0 + purple_running_osx@Base 2.2.0 + purple_savedstatus_activate@Base 2.2.0 + purple_savedstatus_activate_for_account@Base 2.2.0 + purple_savedstatus_delete@Base 2.2.0 + purple_savedstatus_delete_by_status@Base 2.2.0 + purple_savedstatus_find@Base 2.2.0 + purple_savedstatus_find_by_creation_time@Base 2.2.0 + purple_savedstatus_find_transient_by_type_and_message@Base 2.2.0 + purple_savedstatus_get_creation_time@Base 2.2.0 + purple_savedstatus_get_current@Base 2.2.0 + purple_savedstatus_get_default@Base 2.2.0 + purple_savedstatus_get_idleaway@Base 2.2.0 + purple_savedstatus_get_message@Base 2.2.0 + purple_savedstatus_get_startup@Base 2.2.0 + purple_savedstatus_get_substatus@Base 2.2.0 + purple_savedstatus_get_title@Base 2.2.0 + purple_savedstatus_get_type@Base 2.2.0 + purple_savedstatus_has_substatuses@Base 2.2.0 + purple_savedstatus_is_idleaway@Base 2.2.0 + purple_savedstatus_is_transient@Base 2.2.0 + purple_savedstatus_new@Base 2.2.0 + purple_savedstatus_set_idleaway@Base 2.2.0 + purple_savedstatus_set_message@Base 2.2.0 + purple_savedstatus_set_substatus@Base 2.2.0 + purple_savedstatus_set_title@Base 2.2.0 + purple_savedstatus_set_type@Base 2.2.0 + purple_savedstatus_substatus_get_message@Base 2.2.0 + purple_savedstatus_substatus_get_type@Base 2.2.0 + purple_savedstatus_unset_substatus@Base 2.2.0 + purple_savedstatuses_get_all@Base 2.2.0 + purple_savedstatuses_get_popular@Base 2.2.0 + purple_savedstatuses_init@Base 2.2.0 + purple_savedstatuses_uninit@Base 2.2.0 + purple_set_blist@Base 2.2.0 + purple_status_attr_destroy@Base 2.2.0 + purple_status_attr_get_id@Base 2.2.0 + purple_status_attr_get_name@Base 2.2.0 + purple_status_attr_get_value@Base 2.2.0 + purple_status_attr_new@Base 2.2.0 + purple_status_compare@Base 2.2.0 + purple_status_destroy@Base 2.2.0 + purple_status_get_attr_boolean@Base 2.2.0 + purple_status_get_attr_int@Base 2.2.0 + purple_status_get_attr_string@Base 2.2.0 + purple_status_get_attr_value@Base 2.2.0 + purple_status_get_id@Base 2.2.0 + purple_status_get_name@Base 2.2.0 + purple_status_get_presence@Base 2.2.0 + purple_status_get_type@Base 2.2.0 + purple_status_init@Base 2.2.0 + purple_status_is_active@Base 2.2.0 + purple_status_is_available@Base 2.2.0 + purple_status_is_exclusive@Base 2.2.0 + purple_status_is_independent@Base 2.2.0 + purple_status_is_online@Base 2.2.0 + purple_status_new@Base 2.2.0 + purple_status_set_active@Base 2.2.0 + purple_status_set_active_with_attrs_list@Base 2.2.0 + purple_status_set_attr_boolean@Base 2.2.0 + purple_status_set_attr_int@Base 2.2.0 + purple_status_set_attr_string@Base 2.2.0 + purple_status_type_add_attr@Base 2.2.0 + purple_status_type_destroy@Base 2.2.0 + purple_status_type_find_with_id@Base 2.2.0 + purple_status_type_get_attr@Base 2.2.0 + purple_status_type_get_attrs@Base 2.2.0 + purple_status_type_get_id@Base 2.2.0 + purple_status_type_get_name@Base 2.2.0 + purple_status_type_get_primary_attr@Base 2.2.0 + purple_status_type_get_primitive@Base 2.2.0 + purple_status_type_is_available@Base 2.2.0 + purple_status_type_is_exclusive@Base 2.2.0 + purple_status_type_is_independent@Base 2.2.0 + purple_status_type_is_saveable@Base 2.2.0 + purple_status_type_is_user_settable@Base 2.2.0 + purple_status_type_new@Base 2.2.0 + purple_status_type_new_full@Base 2.2.0 + purple_status_type_set_primary_attr@Base 2.2.0 + purple_status_uninit@Base 2.2.0 + purple_str_add_cr@Base 2.2.0 + purple_str_binary_to_ascii@Base 2.2.0 + purple_str_has_prefix@Base 2.2.0 + purple_str_has_suffix@Base 2.2.0 + purple_str_seconds_to_string@Base 2.2.0 + purple_str_size_to_units@Base 2.2.0 + purple_strcasereplace@Base 2.2.0 + purple_strcasestr@Base 2.2.0 + purple_strdup_withhtml@Base 2.2.0 + purple_strreplace@Base 2.2.0 + purple_text_strip_mnemonic@Base 2.2.0 + purple_time_build@Base 2.2.0 + purple_unescape_filename@Base 2.2.0 + purple_unescape_html@Base 2.2.0 + purple_uri_list_extract_filenames@Base 2.2.0 + purple_uri_list_extract_uris@Base 2.2.0 + purple_url_decode@Base 2.2.0 + purple_url_encode@Base 2.2.0 + purple_user_dir@Base 2.2.0 + purple_utf8_has_word@Base 2.2.0 + purple_utf8_ncr_decode@Base 2.2.0 + purple_utf8_ncr_encode@Base 2.2.0 + purple_utf8_salvage@Base 2.2.0 + purple_utf8_strcasecmp@Base 2.2.0 + purple_utf8_try_convert@Base 2.2.0 + purple_util_fetch_url_cancel@Base 2.2.0 + purple_util_init@Base 2.3.0 + purple_util_set_user_dir@Base 2.2.0 + purple_util_uninit@Base 2.3.0 + purple_util_write_data_to_file@Base 2.2.0 + purple_xfer_add@Base 2.2.0 + purple_xfer_cancel_local@Base 2.2.0 + purple_xfer_cancel_remote@Base 2.2.0 + purple_xfer_end@Base 2.2.0 + purple_xfer_error@Base 2.2.0 + purple_xfer_get_account@Base 2.2.0 + purple_xfer_get_bytes_remaining@Base 2.2.0 + purple_xfer_get_bytes_sent@Base 2.2.0 + purple_xfer_get_filename@Base 2.2.0 + purple_xfer_get_local_filename@Base 2.2.0 + purple_xfer_get_remote_ip@Base 2.2.0 + purple_xfer_get_remote_user@Base 2.2.0 + purple_xfer_get_size@Base 2.2.0 + purple_xfer_get_status@Base 2.2.0 + purple_xfer_get_type@Base 2.2.0 + purple_xfer_get_ui_ops@Base 2.2.0 + purple_xfer_is_canceled@Base 2.2.0 + purple_xfer_is_completed@Base 2.2.0 + purple_xfer_new@Base 2.2.0 + purple_xfer_ref@Base 2.2.0 + purple_xfer_request@Base 2.2.0 + purple_xfer_request_accepted@Base 2.2.0 + purple_xfer_request_denied@Base 2.2.0 + purple_xfer_set_bytes_sent@Base 2.2.0 + purple_xfer_set_completed@Base 2.2.0 + purple_xfer_set_filename@Base 2.2.0 + purple_xfer_set_local_filename@Base 2.2.0 + purple_xfer_set_message@Base 2.2.0 + purple_xfer_set_size@Base 2.2.0 + purple_xfer_start@Base 2.2.0 + purple_xfer_unref@Base 2.2.0 + purple_xfer_update_progress@Base 2.2.0 + purple_xfers_get_all@Base 2.2.0 + purple_xfers_get_ui_ops@Base 2.2.0 + purple_xfers_init@Base 2.2.0 + purple_xfers_set_ui_ops@Base 2.2.0 + purple_xfers_uninit@Base 2.2.0 + serv_add_deny@Base 2.2.0 + serv_add_permit@Base 2.2.0 + serv_alias_buddy@Base 2.2.0 + serv_chat_invite@Base 2.2.0 + serv_chat_leave@Base 2.2.0 + serv_chat_send@Base 2.2.0 + serv_chat_whisper@Base 2.2.0 + serv_get_info@Base 2.2.0 + serv_got_alias@Base 2.2.0 + serv_got_attention@Base 2.2.0 + serv_got_chat_in@Base 2.2.0 + serv_got_chat_invite@Base 2.2.0 + serv_got_chat_left@Base 2.2.0 + serv_got_im@Base 2.2.0 + serv_got_joined_chat@Base 2.2.0 + serv_got_typing@Base 2.2.0 + serv_got_typing_stopped@Base 2.2.0 + serv_join_chat@Base 2.2.0 + serv_move_buddy@Base 2.2.0 + serv_reject_chat@Base 2.2.0 + serv_rem_deny@Base 2.2.0 + serv_rem_permit@Base 2.2.0 + serv_send_attention@Base 2.2.0 + serv_send_file@Base 2.2.0 + serv_send_im@Base 2.2.0 + serv_set_info@Base 2.2.0 + serv_set_permit_deny@Base 2.2.0 + xmlnode_free@Base 2.2.0 + xmlnode_get_attrib@Base 2.2.0 + xmlnode_get_attrib_with_namespace@Base 2.2.0 + xmlnode_get_data@Base 2.2.0 + xmlnode_get_data_unescaped@Base 2.2.0 + xmlnode_get_namespace@Base 2.2.0 + xmlnode_get_prefix@Base 2.3.0 + xmlnode_insert_child@Base 2.2.0 + xmlnode_insert_data@Base 2.2.0 + xmlnode_remove_attrib@Base 2.2.0 + xmlnode_remove_attrib_with_namespace@Base 2.2.0 + xmlnode_set_attrib@Base 2.2.0 + xmlnode_set_attrib_with_namespace@Base 2.2.0 + xmlnode_set_attrib_with_prefix@Base 2.3.0 + xmlnode_set_namespace@Base 2.2.0 + xmlnode_set_prefix@Base 2.3.0 + xmlnode_to_formatted_str@Base 2.2.0 + xmlnode_to_str@Base 2.2.0 +libpurple.so.0 libpurple0 #MINVER# + PURPLE_DBUS_TYPE_PurpleAccount@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleAccountOption@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleAccountUiOps@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleAccountUserSplit@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleAttentionType@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleBlistNode@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleBlistUiOps@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleBuddy@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleBuddyIcon@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleBuddyIconSpec@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleBuddyList@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleCertificate@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleCertificatePool@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleCertificateScheme@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleCertificateVerificationRequest@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleCertificateVerifier@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleChat@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleCipher@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleCipherContext@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleCipherOps@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleCircBuffer@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleConnection@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleConnectionErrorInfo@Base 2.3.0 + PURPLE_DBUS_TYPE_PurpleConnectionUiOps@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleContact@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleConvChat@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleConvChatBuddy@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleConvIm@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleConvMessage@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleConversation@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleConversationUiOps@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleCore@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleCoreUiOps@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleDebugUiOps@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleDesktopItem@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleDnsQueryData@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleDnsQueryUiOps@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleEventLoopUiOps@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleGroup@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleIdleUiOps@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleKeyValuePair@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleLog@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleLogCommonLoggerData@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleLogLogger@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleLogSet@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleMenuAction@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleMimeDocument@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleMimePart@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleNetworkListenData@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleNotifySearchButton@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleNotifySearchColumn@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleNotifySearchResults@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleNotifyUiOps@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleNotifyUserInfo@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleNotifyUserInfoEntry@Base 2.2.0 + PURPLE_DBUS_TYPE_PurplePlugin@Base 2.2.0 + PURPLE_DBUS_TYPE_PurplePluginAction@Base 2.2.0 + PURPLE_DBUS_TYPE_PurplePluginInfo@Base 2.2.0 + PURPLE_DBUS_TYPE_PurplePluginLoaderInfo@Base 2.2.0 + PURPLE_DBUS_TYPE_PurplePluginPref@Base 2.2.0 + PURPLE_DBUS_TYPE_PurplePluginPrefFrame@Base 2.2.0 + PURPLE_DBUS_TYPE_PurplePluginProtocolInfo@Base 2.2.0 + PURPLE_DBUS_TYPE_PurplePluginUiInfo@Base 2.2.0 + PURPLE_DBUS_TYPE_PurplePounce@Base 2.2.0 + PURPLE_DBUS_TYPE_PurplePresence@Base 2.2.0 + PURPLE_DBUS_TYPE_PurplePrivacyUiOps@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleProxyConnectData@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleProxyInfo@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleRequestField@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleRequestFieldGroup@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleRequestFields@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleRequestUiOps@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleRoomlist@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleRoomlistField@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleRoomlistRoom@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleRoomlistUiOps@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleSavedStatus@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleSavedStatusSub@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleSoundUiOps@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleSrvQueryData@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleSrvResponse@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleSslConnection@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleSslOps@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleStatus@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleStatusAttr@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleStatusType@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleStoredImage@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleStringref@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleStunNatDiscovery@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleUtilFetchUrlData@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleValue@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleWhiteboard@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleWhiteboardPrplOps@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleWhiteboardUiOps@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleXfer@Base 2.2.0 + PURPLE_DBUS_TYPE_PurpleXferUiOps@Base 2.2.0 + PURPLE_DBUS_TYPE_UPnPMappingAddRemove@Base 2.2.0 + PURPLE_DBUS_TYPE_xmlnode@Base 2.2.0 + _purple_buddy_icon_set_old_icons_dir@Base 2.2.0 + _purple_buddy_icons_account_loaded_cb@Base 2.2.0 + _purple_buddy_icons_blist_loaded_cb@Base 2.2.0 + _purple_oscar_convert@Base 2.2.0 + empty_to_null@Base 2.2.0 + null_to_empty@Base 2.2.0 + purple_GList_to_array@Base 2.2.0 + purple_GSList_to_array@Base 2.2.0 + purple_account_add_buddies@Base 2.2.0 + purple_account_add_buddy@Base 2.2.0 + purple_account_change_password@Base 2.2.0 + purple_account_clear_current_error@Base 2.3.0 + purple_account_clear_settings@Base 2.2.0 + purple_account_connect@Base 2.2.0 + purple_account_destroy@Base 2.2.0 + purple_account_destroy_log@Base 2.2.0 + purple_account_disconnect@Base 2.2.0 + purple_account_get_active_status@Base 2.2.0 + purple_account_get_alias@Base 2.2.0 + purple_account_get_bool@Base 2.2.0 + purple_account_get_buddy_icon_path@Base 2.2.0 + purple_account_get_check_mail@Base 2.2.0 + purple_account_get_connection@Base 2.2.0 + purple_account_get_current_error@Base 2.3.0 + purple_account_get_enabled@Base 2.2.0 + purple_account_get_int@Base 2.2.0 + purple_account_get_log@Base 2.2.0 + purple_account_get_password@Base 2.2.0 + purple_account_get_presence@Base 2.2.0 + purple_account_get_protocol_id@Base 2.2.0 + purple_account_get_protocol_name@Base 2.2.0 + purple_account_get_proxy_info@Base 2.2.0 + purple_account_get_remember_password@Base 2.2.0 + purple_account_get_status@Base 2.2.0 + purple_account_get_status_type@Base 2.2.0 + purple_account_get_status_type_with_primitive@Base 2.2.0 + purple_account_get_status_types@Base 2.2.0 + purple_account_get_string@Base 2.2.0 + purple_account_get_ui_bool@Base 2.2.0 + purple_account_get_ui_int@Base 2.2.0 + purple_account_get_ui_string@Base 2.2.0 + purple_account_get_user_info@Base 2.2.0 + purple_account_get_username@Base 2.2.0 + purple_account_is_connected@Base 2.2.0 + purple_account_is_connecting@Base 2.2.0 + purple_account_is_disconnected@Base 2.2.0 + purple_account_is_status_active@Base 2.2.0 + purple_account_new@Base 2.2.0 + purple_account_notify_added@Base 2.2.0 + purple_account_option_add_list_item@Base 2.2.0 + purple_account_option_bool_new@Base 2.2.0 + purple_account_option_destroy@Base 2.2.0 + purple_account_option_get_default_bool@Base 2.2.0 + purple_account_option_get_default_int@Base 2.2.0 + purple_account_option_get_default_list_value@Base 2.2.0 + purple_account_option_get_default_string@Base 2.2.0 + purple_account_option_get_list@Base 2.2.0 + purple_account_option_get_masked@Base 2.2.0 + purple_account_option_get_setting@Base 2.2.0 + purple_account_option_get_text@Base 2.2.0 + purple_account_option_get_type@Base 2.2.0 + purple_account_option_int_new@Base 2.2.0 + purple_account_option_list_new@Base 2.2.0 + purple_account_option_new@Base 2.2.0 + purple_account_option_set_default_bool@Base 2.2.0 + purple_account_option_set_default_int@Base 2.2.0 + purple_account_option_set_default_string@Base 2.2.0 + purple_account_option_set_list@Base 2.2.0 + purple_account_option_set_masked@Base 2.2.0 + purple_account_option_string_new@Base 2.2.0 + purple_account_register@Base 2.2.0 + purple_account_remove_buddies@Base 2.2.0 + purple_account_remove_buddy@Base 2.2.0 + purple_account_remove_group@Base 2.2.0 + purple_account_request_add@Base 2.2.0 + purple_account_request_authorization@Base 2.2.0 + purple_account_request_change_password@Base 2.2.0 + purple_account_request_change_user_info@Base 2.2.0 + purple_account_request_close@Base 2.2.0 + purple_account_request_close_with_account@Base 2.2.0 + purple_account_request_password@Base 2.2.0 + purple_account_set_alias@Base 2.2.0 + purple_account_set_bool@Base 2.2.0 + purple_account_set_buddy_icon_path@Base 2.2.0 + purple_account_set_check_mail@Base 2.2.0 + purple_account_set_connection@Base 2.2.0 + purple_account_set_enabled@Base 2.2.0 + purple_account_set_int@Base 2.2.0 + purple_account_set_password@Base 2.2.0 + purple_account_set_protocol_id@Base 2.2.0 + purple_account_set_proxy_info@Base 2.2.0 + purple_account_set_register_callback@Base 2.2.0 + purple_account_set_remember_password@Base 2.2.0 + purple_account_set_status@Base 2.2.0 + purple_account_set_status_list@Base 2.2.0 + purple_account_set_status_types@Base 2.2.0 + purple_account_set_string@Base 2.2.0 + purple_account_set_ui_bool@Base 2.2.0 + purple_account_set_ui_int@Base 2.2.0 + purple_account_set_ui_string@Base 2.2.0 + purple_account_set_user_info@Base 2.2.0 + purple_account_set_username@Base 2.2.0 + purple_account_supports_offline_message@Base 2.2.0 + purple_account_unregister@Base 2.2.0 + purple_account_user_split_destroy@Base 2.2.0 + purple_account_user_split_get_default_value@Base 2.2.0 + purple_account_user_split_get_reverse@Base 2.2.0 + purple_account_user_split_get_separator@Base 2.2.0 + purple_account_user_split_get_text@Base 2.2.0 + purple_account_user_split_new@Base 2.2.0 + purple_account_user_split_set_reverse@Base 2.2.0 + purple_accounts_add@Base 2.2.0 + purple_accounts_delete@Base 2.2.0 + purple_accounts_find@Base 2.2.0 + purple_accounts_find_any@Base 2.2.0 + purple_accounts_find_connected@Base 2.2.0 + purple_accounts_find_ext@Base 2.2.0 + purple_accounts_get_all@Base 2.2.0 + purple_accounts_get_all_active@Base 2.2.0 + purple_accounts_get_handle@Base 2.2.0 + purple_accounts_get_ui_ops@Base 2.2.0 + purple_accounts_init@Base 2.2.0 + purple_accounts_remove@Base 2.2.0 + purple_accounts_reorder@Base 2.2.0 + purple_accounts_restore_current_statuses@Base 2.2.0 + purple_accounts_set_ui_ops@Base 2.2.0 + purple_accounts_uninit@Base 2.2.0 + purple_base16_decode@Base 2.2.0 + purple_base16_encode@Base 2.2.0 + purple_base16_encode_chunked@Base 2.2.0 + purple_base64_decode@Base 2.2.0 + purple_base64_encode@Base 2.2.0 + purple_blist_add_account@Base 2.2.0 + purple_blist_add_buddy@Base 2.2.0 + purple_blist_add_chat@Base 2.2.0 + purple_blist_add_contact@Base 2.2.0 + purple_blist_add_group@Base 2.2.0 + purple_blist_alias_buddy@Base 2.2.0 + purple_blist_alias_chat@Base 2.2.0 + purple_blist_alias_contact@Base 2.2.0 + purple_blist_destroy@Base 2.2.0 + purple_blist_find_chat@Base 2.2.0 + purple_blist_get_group_online_count@Base 2.2.0 + purple_blist_get_group_size@Base 2.2.0 + purple_blist_get_handle@Base 2.2.0 + purple_blist_get_root@Base 2.2.0 + purple_blist_get_ui_ops@Base 2.2.0 + purple_blist_init@Base 2.2.0 + purple_blist_load@Base 2.2.0 + purple_blist_merge_contact@Base 2.2.0 + purple_blist_new@Base 2.2.0 + purple_blist_node_get_bool@Base 2.2.0 + purple_blist_node_get_extended_menu@Base 2.2.0 + purple_blist_node_get_flags@Base 2.2.0 + purple_blist_node_get_int@Base 2.2.0 + purple_blist_node_get_string@Base 2.2.0 + purple_blist_node_get_type@Base 2.2.0 + purple_blist_node_next@Base 2.2.0 + purple_blist_node_remove_setting@Base 2.2.0 + purple_blist_node_set_bool@Base 2.2.0 + purple_blist_node_set_flags@Base 2.2.0 + purple_blist_node_set_int@Base 2.2.0 + purple_blist_node_set_string@Base 2.2.0 + purple_blist_remove_account@Base 2.2.0 + purple_blist_remove_buddy@Base 2.2.0 + purple_blist_remove_chat@Base 2.2.0 + purple_blist_remove_contact@Base 2.2.0 + purple_blist_remove_group@Base 2.2.0 + purple_blist_rename_buddy@Base 2.2.0 + purple_blist_rename_group@Base 2.2.0 + purple_blist_request_add_buddy@Base 2.2.0 + purple_blist_request_add_chat@Base 2.2.0 + purple_blist_request_add_group@Base 2.2.0 + purple_blist_schedule_save@Base 2.2.0 + purple_blist_server_alias_buddy@Base 2.2.0 + purple_blist_set_ui_ops@Base 2.2.0 + purple_blist_set_visible@Base 2.2.0 + purple_blist_show@Base 2.2.0 + purple_blist_uninit@Base 2.2.0 + purple_blist_update_buddy_icon@Base 2.2.0 + purple_blist_update_buddy_status@Base 2.2.0 + purple_buddy_get_account@Base 2.2.0 + purple_buddy_get_alias@Base 2.2.0 + purple_buddy_get_alias_only@Base 2.2.0 + purple_buddy_get_contact@Base 2.2.0 + purple_buddy_get_contact_alias@Base 2.2.0 + purple_buddy_get_group@Base 2.2.0 + purple_buddy_get_icon@Base 2.2.0 + purple_buddy_get_local_alias@Base 2.2.0 + purple_buddy_get_name@Base 2.2.0 + purple_buddy_get_presence@Base 2.2.0 + purple_buddy_get_server_alias@Base 2.2.0 + purple_buddy_icon_get_account@Base 2.2.0 + purple_buddy_icon_get_checksum@Base 2.2.0 + purple_buddy_icon_get_data@Base 2.2.0 + purple_buddy_icon_get_extension@Base 2.2.0 + purple_buddy_icon_get_full_path@Base 2.2.0 + purple_buddy_icon_get_scale_size@Base 2.2.0 + purple_buddy_icon_get_username@Base 2.2.0 + purple_buddy_icon_new@Base 2.2.0 + purple_buddy_icon_ref@Base 2.2.0 + purple_buddy_icon_set_data@Base 2.2.0 + purple_buddy_icon_unref@Base 2.2.0 + purple_buddy_icon_update@Base 2.2.0 + purple_buddy_icons_find@Base 2.2.0 + purple_buddy_icons_find_account_icon@Base 2.2.0 + purple_buddy_icons_find_custom_icon@Base 2.2.0 + purple_buddy_icons_get_account_icon_timestamp@Base 2.2.0 + purple_buddy_icons_get_cache_dir@Base 2.2.0 + purple_buddy_icons_get_checksum_for_user@Base 2.2.0 + purple_buddy_icons_get_handle@Base 2.2.0 + purple_buddy_icons_has_custom_icon@Base 2.2.0 + purple_buddy_icons_init@Base 2.2.0 + purple_buddy_icons_is_caching@Base 2.2.0 + purple_buddy_icons_set_account_icon@Base 2.2.0 + purple_buddy_icons_set_cache_dir@Base 2.2.0 + purple_buddy_icons_set_caching@Base 2.2.0 + purple_buddy_icons_set_custom_icon@Base 2.2.0 + purple_buddy_icons_set_for_user@Base 2.2.0 + purple_buddy_icons_uninit@Base 2.2.0 + purple_buddy_new@Base 2.2.0 + purple_buddy_set_icon@Base 2.2.0 + purple_build_dir@Base 2.2.0 + purple_certificate_check_signature_chain@Base 2.2.0 + purple_certificate_check_subject_name@Base 2.2.0 + purple_certificate_copy@Base 2.2.0 + purple_certificate_copy_list@Base 2.2.0 + purple_certificate_destroy@Base 2.2.0 + purple_certificate_destroy_list@Base 2.2.0 + purple_certificate_display_x509@Base 2.2.0 + purple_certificate_export@Base 2.2.0 + purple_certificate_find_pool@Base 2.2.0 + purple_certificate_find_scheme@Base 2.2.0 + purple_certificate_find_verifier@Base 2.2.0 + purple_certificate_get_fingerprint_sha1@Base 2.2.0 + purple_certificate_get_handle@Base 2.2.0 + purple_certificate_get_issuer_unique_id@Base 2.2.0 + purple_certificate_get_pools@Base 2.2.0 + purple_certificate_get_schemes@Base 2.2.0 + purple_certificate_get_subject_name@Base 2.2.0 + purple_certificate_get_times@Base 2.2.0 + purple_certificate_get_unique_id@Base 2.2.0 + purple_certificate_get_verifiers@Base 2.2.0 + purple_certificate_import@Base 2.2.0 + purple_certificate_init@Base 2.2.0 + purple_certificate_pool_contains@Base 2.2.0 + purple_certificate_pool_delete@Base 2.2.0 + purple_certificate_pool_destroy_idlist@Base 2.2.0 + purple_certificate_pool_get_idlist@Base 2.2.0 + purple_certificate_pool_get_scheme@Base 2.2.0 + purple_certificate_pool_mkpath@Base 2.2.0 + purple_certificate_pool_retrieve@Base 2.2.0 + purple_certificate_pool_store@Base 2.2.0 + purple_certificate_pool_usable@Base 2.2.0 + purple_certificate_register_pool@Base 2.2.0 + purple_certificate_register_scheme@Base 2.2.0 + purple_certificate_register_verifier@Base 2.2.0 + purple_certificate_signed_by@Base 2.2.0 + purple_certificate_uninit@Base 2.2.0 + purple_certificate_unregister_pool@Base 2.2.0 + purple_certificate_unregister_scheme@Base 2.2.0 + purple_certificate_unregister_verifier@Base 2.2.0 + purple_certificate_verify@Base 2.2.0 + purple_certificate_verify_complete@Base 2.2.0 + purple_chat_get_group@Base 2.2.0 + purple_chat_get_name@Base 2.2.0 + purple_chat_new@Base 2.2.0 + purple_cipher_context_append@Base 2.2.0 + purple_cipher_context_decrypt@Base 2.2.0 + purple_cipher_context_destroy@Base 2.2.0 + purple_cipher_context_digest@Base 2.2.0 + purple_cipher_context_digest_to_str@Base 2.2.0 + purple_cipher_context_encrypt@Base 2.2.0 + purple_cipher_context_get_data@Base 2.2.0 + purple_cipher_context_get_key_size@Base 2.2.0 + purple_cipher_context_get_option@Base 2.2.0 + purple_cipher_context_get_salt_size@Base 2.2.0 + purple_cipher_context_new@Base 2.2.0 + purple_cipher_context_new_by_name@Base 2.2.0 + purple_cipher_context_reset@Base 2.2.0 + purple_cipher_context_set_data@Base 2.2.0 + purple_cipher_context_set_iv@Base 2.2.0 + purple_cipher_context_set_key@Base 2.2.0 + purple_cipher_context_set_option@Base 2.2.0 + purple_cipher_context_set_salt@Base 2.2.0 + purple_cipher_digest_region@Base 2.2.0 + purple_cipher_get_capabilities@Base 2.2.0 + purple_cipher_get_name@Base 2.2.0 + purple_cipher_http_digest_calculate_response@Base 2.2.0 + purple_cipher_http_digest_calculate_session_key@Base 2.2.0 + purple_ciphers_find_cipher@Base 2.2.0 + purple_ciphers_get_ciphers@Base 2.2.0 + purple_ciphers_get_handle@Base 2.2.0 + purple_ciphers_init@Base 2.2.0 + purple_ciphers_register_cipher@Base 2.2.0 + purple_ciphers_uninit@Base 2.2.0 + purple_ciphers_unregister_cipher@Base 2.2.0 + purple_circ_buffer_append@Base 2.2.0 + purple_circ_buffer_destroy@Base 2.2.0 + purple_circ_buffer_get_max_read@Base 2.2.0 + purple_circ_buffer_mark_read@Base 2.2.0 + purple_circ_buffer_new@Base 2.2.0 + purple_cmd_do_command@Base 2.2.0 + purple_cmd_help@Base 2.2.0 + purple_cmd_list@Base 2.2.0 + purple_cmd_register@Base 2.2.0 + purple_cmd_unregister@Base 2.2.0 + purple_connection_destroy@Base 2.2.0 + purple_connection_error@Base 2.2.0 + purple_connection_error_is_fatal@Base 2.3.0 + purple_connection_error_reason@Base 2.3.0 + purple_connection_get_account@Base 2.2.0 + purple_connection_get_display_name@Base 2.2.0 + purple_connection_get_password@Base 2.2.0 + purple_connection_get_state@Base 2.2.0 + purple_connection_new@Base 2.2.0 + purple_connection_new_unregister@Base 2.2.0 + purple_connection_notice@Base 2.2.0 + purple_connection_set_account@Base 2.2.0 + purple_connection_set_display_name@Base 2.2.0 + purple_connection_set_state@Base 2.2.0 + purple_connection_ssl_error@Base 2.3.0 + purple_connection_update_progress@Base 2.2.0 + purple_connections_disconnect_all@Base 2.2.0 + purple_connections_get_all@Base 2.2.0 + purple_connections_get_connecting@Base 2.2.0 + purple_connections_get_handle@Base 2.2.0 + purple_connections_get_ui_ops@Base 2.2.0 + purple_connections_init@Base 2.2.0 + purple_connections_set_ui_ops@Base 2.2.0 + purple_connections_uninit@Base 2.2.0 + purple_contact_get_alias@Base 2.2.0 + purple_contact_get_priority_buddy@Base 2.2.0 + purple_contact_invalidate_priority_buddy@Base 2.2.0 + purple_contact_new@Base 2.2.0 + purple_contact_on_account@Base 2.2.0 + purple_contact_set_alias@Base 2.2.0 + purple_conv_chat_add_user@Base 2.2.0 + purple_conv_chat_add_users@Base 2.2.0 + purple_conv_chat_cb_destroy@Base 2.2.0 + purple_conv_chat_cb_find@Base 2.2.0 + purple_conv_chat_cb_get_name@Base 2.2.0 + purple_conv_chat_cb_new@Base 2.2.0 + purple_conv_chat_clear_users@Base 2.2.0 + purple_conv_chat_find_user@Base 2.2.0 + purple_conv_chat_get_conversation@Base 2.2.0 + purple_conv_chat_get_id@Base 2.2.0 + purple_conv_chat_get_ignored@Base 2.2.0 + purple_conv_chat_get_ignored_user@Base 2.2.0 + purple_conv_chat_get_nick@Base 2.2.0 + purple_conv_chat_get_topic@Base 2.2.0 + purple_conv_chat_get_users@Base 2.2.0 + purple_conv_chat_has_left@Base 2.2.0 + purple_conv_chat_ignore@Base 2.2.0 + purple_conv_chat_is_user_ignored@Base 2.2.0 + purple_conv_chat_left@Base 2.2.0 + purple_conv_chat_remove_user@Base 2.2.0 + purple_conv_chat_remove_users@Base 2.2.0 + purple_conv_chat_rename_user@Base 2.2.0 + purple_conv_chat_send@Base 2.2.0 + purple_conv_chat_send_with_flags@Base 2.2.0 + purple_conv_chat_set_id@Base 2.2.0 + purple_conv_chat_set_ignored@Base 2.2.0 + purple_conv_chat_set_nick@Base 2.2.0 + purple_conv_chat_set_topic@Base 2.2.0 + purple_conv_chat_set_users@Base 2.2.0 + purple_conv_chat_unignore@Base 2.2.0 + purple_conv_chat_user_get_flags@Base 2.2.0 + purple_conv_chat_user_set_flags@Base 2.2.0 + purple_conv_chat_write@Base 2.2.0 + purple_conv_custom_smiley_add@Base 2.2.0 + purple_conv_custom_smiley_close@Base 2.2.0 + purple_conv_custom_smiley_write@Base 2.2.0 + purple_conv_im_get_conversation@Base 2.2.0 + purple_conv_im_get_icon@Base 2.2.0 + purple_conv_im_get_send_typed_timeout@Base 2.2.0 + purple_conv_im_get_type_again@Base 2.2.0 + purple_conv_im_get_typing_state@Base 2.2.0 + purple_conv_im_get_typing_timeout@Base 2.2.0 + purple_conv_im_send@Base 2.2.0 + purple_conv_im_send_with_flags@Base 2.2.0 + purple_conv_im_set_icon@Base 2.2.0 + purple_conv_im_set_type_again@Base 2.2.0 + purple_conv_im_set_typing_state@Base 2.2.0 + purple_conv_im_start_send_typed_timeout@Base 2.2.0 + purple_conv_im_start_typing_timeout@Base 2.2.0 + purple_conv_im_stop_send_typed_timeout@Base 2.2.0 + purple_conv_im_stop_typing_timeout@Base 2.2.0 + purple_conv_im_update_typing@Base 2.2.0 + purple_conv_im_write@Base 2.2.0 + purple_conv_present_error@Base 2.2.0 + purple_conv_send_confirm@Base 2.2.0 + purple_conversation_autoset_title@Base 2.2.0 + purple_conversation_clear_message_history@Base 2.2.0 + purple_conversation_close_logs@Base 2.2.0 + purple_conversation_destroy@Base 2.2.0 + purple_conversation_do_command@Base 2.2.0 + purple_conversation_foreach@Base 2.2.0 + purple_conversation_get_account@Base 2.2.0 + purple_conversation_get_chat_data@Base 2.2.0 + purple_conversation_get_data@Base 2.2.0 + purple_conversation_get_extended_menu@Base 2.2.0 + purple_conversation_get_features@Base 2.2.0 + purple_conversation_get_gc@Base 2.2.0 + purple_conversation_get_im_data@Base 2.2.0 + purple_conversation_get_message_history@Base 2.2.0 + purple_conversation_get_name@Base 2.2.0 + purple_conversation_get_title@Base 2.2.0 + purple_conversation_get_type@Base 2.2.0 + purple_conversation_get_ui_ops@Base 2.2.0 + purple_conversation_has_focus@Base 2.2.0 + purple_conversation_is_logging@Base 2.2.0 + purple_conversation_message_get_flags@Base 2.2.0 + purple_conversation_message_get_message@Base 2.2.0 + purple_conversation_message_get_sender@Base 2.2.0 + purple_conversation_message_get_timestamp@Base 2.2.0 + purple_conversation_new@Base 2.2.0 + purple_conversation_present@Base 2.2.0 + purple_conversation_set_account@Base 2.2.0 + purple_conversation_set_data@Base 2.2.0 + purple_conversation_set_features@Base 2.2.0 + purple_conversation_set_logging@Base 2.2.0 + purple_conversation_set_name@Base 2.2.0 + purple_conversation_set_title@Base 2.2.0 + purple_conversation_set_ui_ops@Base 2.2.0 + purple_conversation_update@Base 2.2.0 + purple_conversation_write@Base 2.2.0 + purple_conversations_get_handle@Base 2.2.0 + purple_conversations_init@Base 2.2.0 + purple_conversations_set_ui_ops@Base 2.2.0 + purple_conversations_uninit@Base 2.2.0 + purple_core_ensure_single_instance@Base 2.2.0 + purple_core_get_ui@Base 2.2.0 + purple_core_get_ui_info@Base 2.2.0 + purple_core_get_ui_ops@Base 2.2.0 + purple_core_get_version@Base 2.2.0 + purple_core_init@Base 2.2.0 + purple_core_migrate@Base 2.2.0 + purple_core_quit@Base 2.2.0 + purple_core_quit_cb@Base 2.2.0 + purple_core_set_ui_ops@Base 2.2.0 + purple_date_format_full@Base 2.2.0 + purple_date_format_long@Base 2.2.0 + purple_date_format_short@Base 2.2.0 + purple_dbus_get_connection@Base 2.2.0 + purple_dbus_get_handle@Base 2.2.0 + purple_dbus_get_init_error@Base 2.2.0 + purple_dbus_id_to_pointer@Base 2.2.0 + purple_dbus_id_to_pointer_error@Base 2.2.0 + purple_dbus_init@Base 2.2.0 + purple_dbus_init_ids@Base 2.2.0 + purple_dbus_is_owner@Base 2.2.0 + purple_dbus_iter_hash_table@Base 2.2.0 + purple_dbus_message_get_args@Base 2.2.0 + purple_dbus_message_get_args_valist@Base 2.2.0 + purple_dbus_message_iter_get_args@Base 2.2.0 + purple_dbus_message_iter_get_args_valist@Base 2.2.0 + purple_dbus_pointer_to_id@Base 2.2.0 + purple_dbus_pointer_to_id_error@Base 2.2.0 + purple_dbus_register_bindings@Base 2.2.0 + purple_dbus_register_pointer@Base 2.2.0 + purple_dbus_signal_emit_purple@Base 2.2.0 + purple_dbus_uninit@Base 2.2.0 + purple_dbus_unregister_pointer@Base 2.2.0 + purple_dbusify_GList@Base 2.2.0 + purple_dbusify_GSList@Base 2.2.0 + purple_debug@Base 2.2.0 + purple_debug_error@Base 2.2.0 + purple_debug_fatal@Base 2.2.0 + purple_debug_get_ui_ops@Base 2.2.0 + purple_debug_info@Base 2.2.0 + purple_debug_init@Base 2.2.0 + purple_debug_is_enabled@Base 2.2.0 + purple_debug_misc@Base 2.2.0 + purple_debug_set_enabled@Base 2.2.0 + purple_debug_set_ui_ops@Base 2.2.0 + purple_debug_warning@Base 2.2.0 + purple_desktop_item_copy@Base 2.2.0 + purple_desktop_item_get_entry_type@Base 2.2.0 + purple_desktop_item_get_string@Base 2.2.0 + purple_desktop_item_get_type@Base 2.2.0 + purple_desktop_item_new_from_file@Base 2.2.0 + purple_desktop_item_unref@Base 2.2.0 + purple_dnsquery_a@Base 2.2.0 + purple_dnsquery_destroy@Base 2.2.0 + purple_dnsquery_get_host@Base 2.2.0 + purple_dnsquery_get_port@Base 2.2.0 + purple_dnsquery_get_ui_ops@Base 2.2.0 + purple_dnsquery_init@Base 2.2.0 + purple_dnsquery_set_ui_ops@Base 2.2.0 + purple_dnsquery_uninit@Base 2.2.0 + purple_email_is_valid@Base 2.2.0 + purple_escape_filename@Base 2.2.0 + purple_eventloop_get_ui_ops@Base 2.2.0 + purple_eventloop_set_ui_ops@Base 2.2.0 + purple_fd_get_ip@Base 2.2.0 + purple_find_buddies@Base 2.2.0 + purple_find_buddy@Base 2.2.0 + purple_find_buddy_in_group@Base 2.2.0 + purple_find_chat@Base 2.2.0 + purple_find_conversation_with_account@Base 2.2.0 + purple_find_group@Base 2.2.0 + purple_find_pounce@Base 2.2.0 + purple_find_prpl@Base 2.2.0 + purple_get_attention_type_from_code@Base 2.2.0 + purple_get_blist@Base 2.2.0 + purple_get_chats@Base 2.2.0 + purple_get_conversations@Base 2.2.0 + purple_get_core@Base 2.2.0 + purple_get_ims@Base 2.2.0 + purple_get_tzoff_str@Base 2.2.0 + purple_global_proxy_get_info@Base 2.2.0 + purple_got_protocol_handler_uri@Base 2.2.0 + purple_group_get_accounts@Base 2.2.0 + purple_group_get_name@Base 2.2.0 + purple_group_new@Base 2.2.0 + purple_group_on_account@Base 2.2.0 + purple_home_dir@Base 2.2.0 + purple_idle_get_ui_ops@Base 2.2.0 + purple_idle_init@Base 2.2.0 + purple_idle_set@Base 2.2.0 + purple_idle_set_ui_ops@Base 2.2.0 + purple_idle_touch@Base 2.2.0 + purple_idle_uninit@Base 2.2.0 + purple_imgstore_add@Base 2.2.0 + purple_imgstore_add_with_id@Base 2.2.0 + purple_imgstore_find_by_id@Base 2.2.0 + purple_imgstore_get_data@Base 2.2.0 + purple_imgstore_get_extension@Base 2.2.0 + purple_imgstore_get_filename@Base 2.2.0 + purple_imgstore_get_handle@Base 2.2.0 + purple_imgstore_get_size@Base 2.2.0 + purple_imgstore_init@Base 2.2.0 + purple_imgstore_ref@Base 2.2.0 + purple_imgstore_ref_by_id@Base 2.2.0 + purple_imgstore_uninit@Base 2.2.0 + purple_imgstore_unref@Base 2.2.0 + purple_imgstore_unref_by_id@Base 2.2.0 + purple_input_add@Base 2.2.0 + purple_input_get_error@Base 2.2.0 + purple_input_remove@Base 2.2.0 + purple_log_common_deleter@Base 2.2.0 + purple_log_common_is_deletable@Base 2.2.0 + purple_log_common_lister@Base 2.2.0 + purple_log_common_sizer@Base 2.2.0 + purple_log_common_total_sizer@Base 2.2.0 + purple_log_common_writer@Base 2.2.0 + purple_log_compare@Base 2.2.0 + purple_log_delete@Base 2.2.0 + purple_log_free@Base 2.2.0 + purple_log_get_handle@Base 2.2.0 + purple_log_get_log_dir@Base 2.2.0 + purple_log_get_log_sets@Base 2.2.0 + purple_log_get_logs@Base 2.2.0 + purple_log_get_size@Base 2.2.0 + purple_log_get_system_logs@Base 2.2.0 + purple_log_get_total_size@Base 2.2.0 + purple_log_init@Base 2.2.0 + purple_log_is_deletable@Base 2.2.0 + purple_log_logger_add@Base 2.2.0 + purple_log_logger_free@Base 2.2.0 + purple_log_logger_get@Base 2.2.0 + purple_log_logger_get_options@Base 2.2.0 + purple_log_logger_new@Base 2.2.0 + purple_log_logger_remove@Base 2.2.0 + purple_log_logger_set@Base 2.2.0 + purple_log_new@Base 2.2.0 + purple_log_read@Base 2.2.0 + purple_log_set_compare@Base 2.2.0 + purple_log_set_free@Base 2.2.0 + purple_log_uninit@Base 2.2.0 + purple_log_write@Base 2.2.0 + purple_major_version@Base 2.2.0 + purple_markup_extract_info_field@Base 2.2.0 + purple_markup_find_tag@Base 2.2.0 + purple_markup_get_css_property@Base 2.2.0 + purple_markup_get_tag_name@Base 2.2.0 + purple_markup_html_to_xhtml@Base 2.2.0 + purple_markup_linkify@Base 2.2.0 + purple_markup_slice@Base 2.2.0 + purple_markup_strip_html@Base 2.2.0 + purple_markup_unescape_entity@Base 2.2.0 + purple_marshal_BOOLEAN__INT_POINTER@Base 2.2.0 + purple_marshal_BOOLEAN__POINTER@Base 2.2.0 + purple_marshal_BOOLEAN__POINTER_POINTER@Base 2.2.0 + purple_marshal_BOOLEAN__POINTER_POINTER_POINTER@Base 2.2.0 + purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER@Base 2.2.0 + purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER@Base 2.2.0 + purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_UINT@Base 2.2.0 + purple_marshal_BOOLEAN__POINTER_POINTER_POINTER_UINT@Base 2.2.0 + purple_marshal_BOOLEAN__POINTER_POINTER_UINT@Base 2.2.0 + purple_marshal_INT__INT@Base 2.2.0 + purple_marshal_INT__INT_INT@Base 2.2.0 + purple_marshal_INT__POINTER_POINTER@Base 2.3.0 + purple_marshal_INT__POINTER_POINTER_POINTER_POINTER_POINTER@Base 2.2.0 + purple_marshal_POINTER__POINTER_INT64@Base 2.2.0 + purple_marshal_POINTER__POINTER_INT64_BOOLEAN@Base 2.2.0 + purple_marshal_POINTER__POINTER_INT@Base 2.2.0 + purple_marshal_POINTER__POINTER_INT_BOOLEAN@Base 2.2.0 + purple_marshal_POINTER__POINTER_POINTER@Base 2.2.0 + purple_marshal_VOID@Base 2.2.0 + purple_marshal_VOID__INT@Base 2.2.0 + purple_marshal_VOID__INT_INT@Base 2.2.0 + purple_marshal_VOID__POINTER@Base 2.2.0 + purple_marshal_VOID__POINTER_INT_INT@Base 2.2.0 + purple_marshal_VOID__POINTER_INT_POINTER@Base 2.3.0 + purple_marshal_VOID__POINTER_POINTER@Base 2.2.0 + purple_marshal_VOID__POINTER_POINTER_POINTER@Base 2.2.0 + purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER@Base 2.2.0 + purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_POINTER@Base 2.2.0 + purple_marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT@Base 2.2.0 + purple_marshal_VOID__POINTER_POINTER_POINTER_UINT@Base 2.2.0 + purple_marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT@Base 2.2.0 + purple_marshal_VOID__POINTER_POINTER_UINT@Base 2.2.0 + purple_marshal_VOID__POINTER_POINTER_UINT_UINT@Base 2.2.0 + purple_marshal_VOID__POINTER_UINT@Base 2.2.0 + purple_menu_action_free@Base 2.2.0 + purple_menu_action_new@Base 2.2.0 + purple_message_meify@Base 2.2.0 + purple_micro_version@Base 2.2.0 + purple_mime_decode_field@Base 2.2.0 + purple_mime_document_free@Base 2.2.0 + purple_mime_document_get_field@Base 2.2.0 + purple_mime_document_get_fields@Base 2.2.0 + purple_mime_document_get_parts@Base 2.2.0 + purple_mime_document_new@Base 2.2.0 + purple_mime_document_parse@Base 2.2.0 + purple_mime_document_parsen@Base 2.2.0 + purple_mime_document_set_field@Base 2.2.0 + purple_mime_document_write@Base 2.2.0 + purple_mime_part_get_data@Base 2.2.0 + purple_mime_part_get_data_decoded@Base 2.2.0 + purple_mime_part_get_field@Base 2.2.0 + purple_mime_part_get_field_decoded@Base 2.2.0 + purple_mime_part_get_fields@Base 2.2.0 + purple_mime_part_get_length@Base 2.2.0 + purple_mime_part_new@Base 2.2.0 + purple_mime_part_set_data@Base 2.2.0 + purple_mime_part_set_field@Base 2.2.0 + purple_minor_version@Base 2.2.0 + purple_mkstemp@Base 2.2.0 + purple_network_get_handle@Base 2.2.0 + purple_network_get_local_system_ip@Base 2.2.0 + purple_network_get_my_ip@Base 2.2.0 + purple_network_get_port_from_fd@Base 2.2.0 + purple_network_get_public_ip@Base 2.2.0 + purple_network_init@Base 2.2.0 + purple_network_ip_atoi@Base 2.2.0 + purple_network_is_available@Base 2.2.0 + purple_network_listen@Base 2.2.0 + purple_network_listen_cancel@Base 2.2.0 + purple_network_listen_map_external@Base 2.3.0 + purple_network_listen_range@Base 2.2.0 + purple_network_set_public_ip@Base 2.2.0 + purple_network_uninit@Base 2.2.0 + purple_normalize@Base 2.2.0 + purple_normalize_nocase@Base 2.2.0 + purple_notify_close@Base 2.2.0 + purple_notify_close_with_handle@Base 2.2.0 + purple_notify_email@Base 2.2.0 + purple_notify_emails@Base 2.2.0 + purple_notify_formatted@Base 2.2.0 + purple_notify_get_handle@Base 2.2.0 + purple_notify_get_ui_ops@Base 2.2.0 + purple_notify_init@Base 2.2.0 + purple_notify_message@Base 2.2.0 + purple_notify_searchresults@Base 2.2.0 + purple_notify_searchresults_button_add@Base 2.2.0 + purple_notify_searchresults_button_add_labeled@Base 2.2.0 + purple_notify_searchresults_column_add@Base 2.2.0 + purple_notify_searchresults_column_get_title@Base 2.2.0 + purple_notify_searchresults_column_new@Base 2.2.0 + purple_notify_searchresults_free@Base 2.2.0 + purple_notify_searchresults_get_columns_count@Base 2.2.0 + purple_notify_searchresults_get_rows_count@Base 2.2.0 + purple_notify_searchresults_new@Base 2.2.0 + purple_notify_searchresults_new_rows@Base 2.2.0 + purple_notify_searchresults_row_add@Base 2.2.0 + purple_notify_searchresults_row_get@Base 2.2.0 + purple_notify_set_ui_ops@Base 2.2.0 + purple_notify_uninit@Base 2.2.0 + purple_notify_uri@Base 2.2.0 + purple_notify_user_info_add_pair@Base 2.2.0 + purple_notify_user_info_add_section_break@Base 2.2.0 + purple_notify_user_info_add_section_header@Base 2.2.0 + purple_notify_user_info_destroy@Base 2.2.0 + purple_notify_user_info_entry_get_label@Base 2.2.0 + purple_notify_user_info_entry_get_type@Base 2.2.0 + purple_notify_user_info_entry_get_value@Base 2.2.0 + purple_notify_user_info_entry_new@Base 2.2.0 + purple_notify_user_info_entry_set_label@Base 2.2.0 + purple_notify_user_info_entry_set_type@Base 2.2.0 + purple_notify_user_info_entry_set_value@Base 2.2.0 + purple_notify_user_info_get_entries@Base 2.2.0 + purple_notify_user_info_get_text_with_newline@Base 2.2.0 + purple_notify_user_info_new@Base 2.2.0 + purple_notify_user_info_prepend_pair@Base 2.2.0 + purple_notify_user_info_remove_entry@Base 2.2.0 + purple_notify_user_info_remove_last_item@Base 2.2.0 + purple_notify_userinfo@Base 2.2.0 + purple_ntlm_gen_type1@Base 2.2.0 + purple_ntlm_gen_type3@Base 2.2.0 + purple_ntlm_parse_type2@Base 2.2.0 + purple_plugin_action_free@Base 2.2.0 + purple_plugin_action_new@Base 2.2.0 + purple_plugin_destroy@Base 2.2.0 + purple_plugin_disable@Base 2.3.0 + purple_plugin_get_author@Base 2.2.0 + purple_plugin_get_description@Base 2.2.0 + purple_plugin_get_homepage@Base 2.2.0 + purple_plugin_get_id@Base 2.2.0 + purple_plugin_get_name@Base 2.2.0 + purple_plugin_get_summary@Base 2.2.0 + purple_plugin_get_version@Base 2.2.0 + purple_plugin_ipc_call@Base 2.2.0 + purple_plugin_ipc_get_params@Base 2.2.0 + purple_plugin_ipc_register@Base 2.2.0 + purple_plugin_ipc_unregister@Base 2.2.0 + purple_plugin_ipc_unregister_all@Base 2.2.0 + purple_plugin_is_loaded@Base 2.2.0 + purple_plugin_is_unloadable@Base 2.2.0 + purple_plugin_load@Base 2.2.0 + purple_plugin_new@Base 2.2.0 + purple_plugin_pref_add_choice@Base 2.2.0 + purple_plugin_pref_destroy@Base 2.2.0 + purple_plugin_pref_frame_add@Base 2.2.0 + purple_plugin_pref_frame_destroy@Base 2.2.0 + purple_plugin_pref_frame_get_prefs@Base 2.2.0 + purple_plugin_pref_frame_new@Base 2.2.0 + purple_plugin_pref_get_bounds@Base 2.2.0 + purple_plugin_pref_get_choices@Base 2.2.0 + purple_plugin_pref_get_format_type@Base 2.2.0 + purple_plugin_pref_get_label@Base 2.2.0 + purple_plugin_pref_get_masked@Base 2.2.0 + purple_plugin_pref_get_max_length@Base 2.2.0 + purple_plugin_pref_get_name@Base 2.2.0 + purple_plugin_pref_get_type@Base 2.2.0 + purple_plugin_pref_new@Base 2.2.0 + purple_plugin_pref_new_with_label@Base 2.2.0 + purple_plugin_pref_new_with_name@Base 2.2.0 + purple_plugin_pref_new_with_name_and_label@Base 2.2.0 + purple_plugin_pref_set_bounds@Base 2.2.0 + purple_plugin_pref_set_format_type@Base 2.2.0 + purple_plugin_pref_set_label@Base 2.2.0 + purple_plugin_pref_set_masked@Base 2.2.0 + purple_plugin_pref_set_max_length@Base 2.2.0 + purple_plugin_pref_set_name@Base 2.2.0 + purple_plugin_pref_set_type@Base 2.2.0 + purple_plugin_probe@Base 2.2.0 + purple_plugin_register@Base 2.2.0 + purple_plugin_reload@Base 2.2.0 + purple_plugin_unload@Base 2.2.0 + purple_plugins_add_search_path@Base 2.2.0 + purple_plugins_destroy_all@Base 2.2.0 + purple_plugins_enabled@Base 2.2.0 + purple_plugins_find_with_basename@Base 2.2.0 + purple_plugins_find_with_filename@Base 2.2.0 + purple_plugins_find_with_id@Base 2.2.0 + purple_plugins_find_with_name@Base 2.2.0 + purple_plugins_get_all@Base 2.2.0 + purple_plugins_get_handle@Base 2.2.0 + purple_plugins_get_loaded@Base 2.2.0 + purple_plugins_get_protocols@Base 2.2.0 + purple_plugins_init@Base 2.2.0 + purple_plugins_load_saved@Base 2.2.0 + purple_plugins_probe@Base 2.2.0 + purple_plugins_register_load_notify_cb@Base 2.2.0 + purple_plugins_register_probe_notify_cb@Base 2.2.0 + purple_plugins_register_unload_notify_cb@Base 2.2.0 + purple_plugins_save_loaded@Base 2.2.0 + purple_plugins_uninit@Base 2.2.0 + purple_plugins_unload_all@Base 2.2.0 + purple_plugins_unregister_load_notify_cb@Base 2.2.0 + purple_plugins_unregister_probe_notify_cb@Base 2.2.0 + purple_plugins_unregister_unload_notify_cb@Base 2.2.0 + purple_pmp_create_map@Base 2.2.0 + purple_pmp_destroy_map@Base 2.2.0 + purple_pmp_get_public_ip@Base 2.2.0 + purple_pmp_init@Base 2.2.0 + purple_pounce_action_get_attribute@Base 2.2.0 + purple_pounce_action_is_enabled@Base 2.2.0 + purple_pounce_action_register@Base 2.2.0 + purple_pounce_action_set_attribute@Base 2.2.0 + purple_pounce_action_set_enabled@Base 2.2.0 + purple_pounce_destroy@Base 2.2.0 + purple_pounce_destroy_all_by_account@Base 2.2.0 + purple_pounce_execute@Base 2.2.0 + purple_pounce_get_data@Base 2.2.0 + purple_pounce_get_events@Base 2.2.0 + purple_pounce_get_options@Base 2.2.0 + purple_pounce_get_pouncee@Base 2.2.0 + purple_pounce_get_pouncer@Base 2.2.0 + purple_pounce_get_save@Base 2.2.0 + purple_pounce_new@Base 2.2.0 + purple_pounce_set_data@Base 2.2.0 + purple_pounce_set_events@Base 2.2.0 + purple_pounce_set_options@Base 2.2.0 + purple_pounce_set_pouncee@Base 2.2.0 + purple_pounce_set_pouncer@Base 2.2.0 + purple_pounce_set_save@Base 2.2.0 + purple_pounces_get_all@Base 2.2.0 + purple_pounces_get_all_for_ui@Base 2.2.0 + purple_pounces_get_handle@Base 2.2.0 + purple_pounces_init@Base 2.2.0 + purple_pounces_load@Base 2.2.0 + purple_pounces_register_handler@Base 2.2.0 + purple_pounces_uninit@Base 2.2.0 + purple_pounces_unregister_handler@Base 2.2.0 + purple_prefs_add_bool@Base 2.2.0 + purple_prefs_add_int@Base 2.2.0 + purple_prefs_add_none@Base 2.2.0 + purple_prefs_add_path@Base 2.2.0 + purple_prefs_add_path_list@Base 2.2.0 + purple_prefs_add_string@Base 2.2.0 + purple_prefs_add_string_list@Base 2.2.0 + purple_prefs_connect_callback@Base 2.2.0 + purple_prefs_destroy@Base 2.2.0 + purple_prefs_disconnect_by_handle@Base 2.2.0 + purple_prefs_disconnect_callback@Base 2.2.0 + purple_prefs_exists@Base 2.2.0 + purple_prefs_get_bool@Base 2.2.0 + purple_prefs_get_children_names@Base 2.2.0 + purple_prefs_get_handle@Base 2.2.0 + purple_prefs_get_int@Base 2.2.0 + purple_prefs_get_path@Base 2.2.0 + purple_prefs_get_path_list@Base 2.2.0 + purple_prefs_get_string@Base 2.2.0 + purple_prefs_get_string_list@Base 2.2.0 + purple_prefs_get_type@Base 2.2.0 + purple_prefs_init@Base 2.2.0 + purple_prefs_load@Base 2.2.0 + purple_prefs_remove@Base 2.2.0 + purple_prefs_rename@Base 2.2.0 + purple_prefs_rename_boolean_toggle@Base 2.2.0 + purple_prefs_set_bool@Base 2.2.0 + purple_prefs_set_generic@Base 2.2.0 + purple_prefs_set_int@Base 2.2.0 + purple_prefs_set_path@Base 2.2.0 + purple_prefs_set_path_list@Base 2.2.0 + purple_prefs_set_string@Base 2.2.0 + purple_prefs_set_string_list@Base 2.2.0 + purple_prefs_trigger_callback@Base 2.2.0 + purple_prefs_uninit@Base 2.2.0 + purple_prefs_update_old@Base 2.2.0 + purple_presence_add_list@Base 2.2.0 + purple_presence_add_status@Base 2.2.0 + purple_presence_compare@Base 2.2.0 + purple_presence_destroy@Base 2.2.0 + purple_presence_get_account@Base 2.2.0 + purple_presence_get_active_status@Base 2.2.0 + purple_presence_get_buddy@Base 2.2.0 + purple_presence_get_chat_user@Base 2.2.0 + purple_presence_get_context@Base 2.2.0 + purple_presence_get_conversation@Base 2.2.0 + purple_presence_get_idle_time@Base 2.2.0 + purple_presence_get_login_time@Base 2.2.0 + purple_presence_get_status@Base 2.2.0 + purple_presence_get_statuses@Base 2.2.0 + purple_presence_is_available@Base 2.2.0 + purple_presence_is_idle@Base 2.2.0 + purple_presence_is_online@Base 2.2.0 + purple_presence_is_status_active@Base 2.2.0 + purple_presence_is_status_primitive_active@Base 2.2.0 + purple_presence_new@Base 2.2.0 + purple_presence_new_for_account@Base 2.2.0 + purple_presence_new_for_buddy@Base 2.2.0 + purple_presence_new_for_conv@Base 2.2.0 + purple_presence_set_idle@Base 2.2.0 + purple_presence_set_login_time@Base 2.2.0 + purple_presence_set_status_active@Base 2.2.0 + purple_presence_switch_status@Base 2.2.0 + purple_primitive_get_id_from_type@Base 2.2.0 + purple_primitive_get_name_from_type@Base 2.2.0 + purple_primitive_get_type_from_id@Base 2.2.0 + purple_print_utf8_to_console@Base 2.2.0 + purple_privacy_allow@Base 2.2.0 + purple_privacy_check@Base 2.2.0 + purple_privacy_deny@Base 2.2.0 + purple_privacy_deny_add@Base 2.2.0 + purple_privacy_deny_remove@Base 2.2.0 + purple_privacy_get_ui_ops@Base 2.2.0 + purple_privacy_init@Base 2.2.0 + purple_privacy_permit_add@Base 2.2.0 + purple_privacy_permit_remove@Base 2.2.0 + purple_privacy_set_ui_ops@Base 2.2.0 + purple_program_is_valid@Base 2.2.0 + purple_proxy_connect@Base 2.2.0 + purple_proxy_connect_cancel@Base 2.2.0 + purple_proxy_connect_cancel_with_handle@Base 2.2.0 + purple_proxy_connect_socks5@Base 2.2.0 + purple_proxy_get_handle@Base 2.2.0 + purple_proxy_get_setup@Base 2.2.0 + purple_proxy_info_destroy@Base 2.2.0 + purple_proxy_info_get_host@Base 2.2.0 + purple_proxy_info_get_password@Base 2.2.0 + purple_proxy_info_get_port@Base 2.2.0 + purple_proxy_info_get_type@Base 2.2.0 + purple_proxy_info_get_username@Base 2.2.0 + purple_proxy_info_new@Base 2.2.0 + purple_proxy_info_set_host@Base 2.2.0 + purple_proxy_info_set_password@Base 2.2.0 + purple_proxy_info_set_port@Base 2.2.0 + purple_proxy_info_set_type@Base 2.2.0 + purple_proxy_info_set_username@Base 2.2.0 + purple_proxy_init@Base 2.2.0 + purple_proxy_uninit@Base 2.2.0 + purple_prpl_change_account_status@Base 2.2.0 + purple_prpl_get_statuses@Base 2.2.0 + purple_prpl_got_account_idle@Base 2.2.0 + purple_prpl_got_account_login_time@Base 2.2.0 + purple_prpl_got_account_status@Base 2.2.0 + purple_prpl_got_user_idle@Base 2.2.0 + purple_prpl_got_user_login_time@Base 2.2.0 + purple_prpl_got_user_status@Base 2.2.0 + purple_prpl_got_user_status_deactive@Base 2.2.0 + purple_quotedp_decode@Base 2.2.0 + purple_request_action@Base 2.2.0 + purple_request_action_varg@Base 2.2.0 + purple_request_choice@Base 2.2.0 + purple_request_choice_varg@Base 2.2.0 + purple_request_close@Base 2.2.0 + purple_request_close_with_handle@Base 2.2.0 + purple_request_field_account_get_default_value@Base 2.2.0 + purple_request_field_account_get_filter@Base 2.2.0 + purple_request_field_account_get_show_all@Base 2.2.0 + purple_request_field_account_get_value@Base 2.2.0 + purple_request_field_account_new@Base 2.2.0 + purple_request_field_account_set_default_value@Base 2.2.0 + purple_request_field_account_set_filter@Base 2.2.0 + purple_request_field_account_set_show_all@Base 2.2.0 + purple_request_field_account_set_value@Base 2.2.0 + purple_request_field_bool_get_default_value@Base 2.2.0 + purple_request_field_bool_get_value@Base 2.2.0 + purple_request_field_bool_new@Base 2.2.0 + purple_request_field_bool_set_default_value@Base 2.2.0 + purple_request_field_bool_set_value@Base 2.2.0 + purple_request_field_choice_add@Base 2.2.0 + purple_request_field_choice_get_default_value@Base 2.2.0 + purple_request_field_choice_get_labels@Base 2.2.0 + purple_request_field_choice_get_value@Base 2.2.0 + purple_request_field_choice_new@Base 2.2.0 + purple_request_field_choice_set_default_value@Base 2.2.0 + purple_request_field_choice_set_value@Base 2.2.0 + purple_request_field_destroy@Base 2.2.0 + purple_request_field_get_id@Base 2.2.0 + purple_request_field_get_label@Base 2.2.0 + purple_request_field_get_type@Base 2.2.0 + purple_request_field_get_type_hint@Base 2.2.0 + purple_request_field_group_add_field@Base 2.2.0 + purple_request_field_group_destroy@Base 2.2.0 + purple_request_field_group_get_fields@Base 2.2.0 + purple_request_field_group_get_title@Base 2.2.0 + purple_request_field_group_new@Base 2.2.0 + purple_request_field_image_get_buffer@Base 2.2.0 + purple_request_field_image_get_scale_x@Base 2.2.0 + purple_request_field_image_get_scale_y@Base 2.2.0 + purple_request_field_image_get_size@Base 2.2.0 + purple_request_field_image_new@Base 2.2.0 + purple_request_field_image_set_scale@Base 2.2.0 + purple_request_field_int_get_default_value@Base 2.2.0 + purple_request_field_int_get_value@Base 2.2.0 + purple_request_field_int_new@Base 2.2.0 + purple_request_field_int_set_default_value@Base 2.2.0 + purple_request_field_int_set_value@Base 2.2.0 + purple_request_field_is_required@Base 2.2.0 + purple_request_field_is_visible@Base 2.2.0 + purple_request_field_label_new@Base 2.2.0 + purple_request_field_list_add@Base 2.2.0 + purple_request_field_list_add_selected@Base 2.2.0 + purple_request_field_list_clear_selected@Base 2.2.0 + purple_request_field_list_get_data@Base 2.2.0 + purple_request_field_list_get_items@Base 2.2.0 + purple_request_field_list_get_multi_select@Base 2.2.0 + purple_request_field_list_get_selected@Base 2.2.0 + purple_request_field_list_is_selected@Base 2.2.0 + purple_request_field_list_new@Base 2.2.0 + purple_request_field_list_set_multi_select@Base 2.2.0 + purple_request_field_list_set_selected@Base 2.2.0 + purple_request_field_new@Base 2.2.0 + purple_request_field_set_label@Base 2.2.0 + purple_request_field_set_required@Base 2.2.0 + purple_request_field_set_type_hint@Base 2.2.0 + purple_request_field_set_visible@Base 2.2.0 + purple_request_field_string_get_default_value@Base 2.2.0 + purple_request_field_string_get_value@Base 2.2.0 + purple_request_field_string_is_editable@Base 2.2.0 + purple_request_field_string_is_masked@Base 2.2.0 + purple_request_field_string_is_multiline@Base 2.2.0 + purple_request_field_string_new@Base 2.2.0 + purple_request_field_string_set_default_value@Base 2.2.0 + purple_request_field_string_set_editable@Base 2.2.0 + purple_request_field_string_set_masked@Base 2.2.0 + purple_request_field_string_set_value@Base 2.2.0 + purple_request_fields@Base 2.2.0 + purple_request_fields_add_group@Base 2.2.0 + purple_request_fields_all_required_filled@Base 2.2.0 + purple_request_fields_destroy@Base 2.2.0 + purple_request_fields_exists@Base 2.2.0 + purple_request_fields_get_account@Base 2.2.0 + purple_request_fields_get_bool@Base 2.2.0 + purple_request_fields_get_choice@Base 2.2.0 + purple_request_fields_get_field@Base 2.2.0 + purple_request_fields_get_groups@Base 2.2.0 + purple_request_fields_get_integer@Base 2.2.0 + purple_request_fields_get_required@Base 2.2.0 + purple_request_fields_get_string@Base 2.2.0 + purple_request_fields_is_field_required@Base 2.2.0 + purple_request_fields_new@Base 2.2.0 + purple_request_file@Base 2.2.0 + purple_request_folder@Base 2.2.0 + purple_request_get_ui_ops@Base 2.2.0 + purple_request_input@Base 2.2.0 + purple_request_set_ui_ops@Base 2.2.0 + purple_restore_default_signal_handlers@Base 2.2.0 + purple_roomlist_cancel_get_list@Base 2.2.0 + purple_roomlist_expand_category@Base 2.2.0 + purple_roomlist_field_new@Base 2.2.0 + purple_roomlist_get_in_progress@Base 2.2.0 + purple_roomlist_get_list@Base 2.2.0 + purple_roomlist_get_ui_ops@Base 2.2.0 + purple_roomlist_new@Base 2.2.0 + purple_roomlist_ref@Base 2.2.0 + purple_roomlist_room_add@Base 2.2.0 + purple_roomlist_room_add_field@Base 2.2.0 + purple_roomlist_room_join@Base 2.2.0 + purple_roomlist_room_new@Base 2.2.0 + purple_roomlist_set_fields@Base 2.2.0 + purple_roomlist_set_in_progress@Base 2.2.0 + purple_roomlist_set_ui_ops@Base 2.2.0 + purple_roomlist_show_with_account@Base 2.2.0 + purple_roomlist_unref@Base 2.2.0 + purple_running_gnome@Base 2.2.0 + purple_running_kde@Base 2.2.0 + purple_running_osx@Base 2.2.0 + purple_savedstatus_activate@Base 2.2.0 + purple_savedstatus_activate_for_account@Base 2.2.0 + purple_savedstatus_delete@Base 2.2.0 + purple_savedstatus_delete_by_status@Base 2.2.0 + purple_savedstatus_find@Base 2.2.0 + purple_savedstatus_find_by_creation_time@Base 2.2.0 + purple_savedstatus_find_transient_by_type_and_message@Base 2.2.0 + purple_savedstatus_get_creation_time@Base 2.2.0 + purple_savedstatus_get_current@Base 2.2.0 + purple_savedstatus_get_default@Base 2.2.0 + purple_savedstatus_get_idleaway@Base 2.2.0 + purple_savedstatus_get_message@Base 2.2.0 + purple_savedstatus_get_startup@Base 2.2.0 + purple_savedstatus_get_substatus@Base 2.2.0 + purple_savedstatus_get_title@Base 2.2.0 + purple_savedstatus_get_type@Base 2.2.0 + purple_savedstatus_has_substatuses@Base 2.2.0 + purple_savedstatus_is_idleaway@Base 2.2.0 + purple_savedstatus_is_transient@Base 2.2.0 + purple_savedstatus_new@Base 2.2.0 + purple_savedstatus_set_idleaway@Base 2.2.0 + purple_savedstatus_set_message@Base 2.2.0 + purple_savedstatus_set_substatus@Base 2.2.0 + purple_savedstatus_set_title@Base 2.2.0 + purple_savedstatus_set_type@Base 2.2.0 + purple_savedstatus_substatus_get_message@Base 2.2.0 + purple_savedstatus_substatus_get_type@Base 2.2.0 + purple_savedstatus_unset_substatus@Base 2.2.0 + purple_savedstatuses_get_all@Base 2.2.0 + purple_savedstatuses_get_handle@Base 2.2.0 + purple_savedstatuses_get_popular@Base 2.2.0 + purple_savedstatuses_init@Base 2.2.0 + purple_savedstatuses_uninit@Base 2.2.0 + purple_set_blist@Base 2.2.0 + purple_signal_connect@Base 2.2.0 + purple_signal_connect_priority@Base 2.2.0 + purple_signal_connect_priority_vargs@Base 2.2.0 + purple_signal_connect_vargs@Base 2.2.0 + purple_signal_disconnect@Base 2.2.0 + purple_signal_emit@Base 2.2.0 + purple_signal_emit_return_1@Base 2.2.0 + purple_signal_emit_vargs@Base 2.2.0 + purple_signal_emit_vargs_return_1@Base 2.2.0 + purple_signal_get_values@Base 2.2.0 + purple_signal_register@Base 2.2.0 + purple_signal_unregister@Base 2.2.0 + purple_signals_disconnect_by_handle@Base 2.2.0 + purple_signals_init@Base 2.2.0 + purple_signals_uninit@Base 2.2.0 + purple_signals_unregister_by_instance@Base 2.2.0 + purple_sound_get_ui_ops@Base 2.2.0 + purple_sound_init@Base 2.2.0 + purple_sound_play_event@Base 2.2.0 + purple_sound_play_file@Base 2.2.0 + purple_sound_set_ui_ops@Base 2.2.0 + purple_sound_uninit@Base 2.2.0 + purple_sounds_get_handle@Base 2.2.0 + purple_srv_cancel@Base 2.2.0 + purple_srv_resolve@Base 2.2.0 + purple_ssl_close@Base 2.2.0 + purple_ssl_connect@Base 2.2.0 + purple_ssl_connect_fd@Base 2.2.0 + purple_ssl_connect_with_host_fd@Base 2.2.0 + purple_ssl_get_ops@Base 2.2.0 + purple_ssl_get_peer_certificates@Base 2.2.0 + purple_ssl_init@Base 2.2.0 + purple_ssl_input_add@Base 2.2.0 + purple_ssl_is_supported@Base 2.2.0 + purple_ssl_read@Base 2.2.0 + purple_ssl_set_ops@Base 2.2.0 + purple_ssl_strerror@Base 2.2.0 + purple_ssl_uninit@Base 2.2.0 + purple_ssl_write@Base 2.2.0 + purple_status_attr_destroy@Base 2.2.0 + purple_status_attr_get_id@Base 2.2.0 + purple_status_attr_get_name@Base 2.2.0 + purple_status_attr_get_value@Base 2.2.0 + purple_status_attr_new@Base 2.2.0 + purple_status_compare@Base 2.2.0 + purple_status_destroy@Base 2.2.0 + purple_status_get_attr_boolean@Base 2.2.0 + purple_status_get_attr_int@Base 2.2.0 + purple_status_get_attr_string@Base 2.2.0 + purple_status_get_attr_value@Base 2.2.0 + purple_status_get_handle@Base 2.2.0 + purple_status_get_id@Base 2.2.0 + purple_status_get_name@Base 2.2.0 + purple_status_get_presence@Base 2.2.0 + purple_status_get_type@Base 2.2.0 + purple_status_init@Base 2.2.0 + purple_status_is_active@Base 2.2.0 + purple_status_is_available@Base 2.2.0 + purple_status_is_exclusive@Base 2.2.0 + purple_status_is_independent@Base 2.2.0 + purple_status_is_online@Base 2.2.0 + purple_status_new@Base 2.2.0 + purple_status_set_active@Base 2.2.0 + purple_status_set_active_with_attrs@Base 2.2.0 + purple_status_set_active_with_attrs_list@Base 2.2.0 + purple_status_set_attr_boolean@Base 2.2.0 + purple_status_set_attr_int@Base 2.2.0 + purple_status_set_attr_string@Base 2.2.0 + purple_status_type_add_attr@Base 2.2.0 + purple_status_type_add_attrs@Base 2.2.0 + purple_status_type_add_attrs_vargs@Base 2.2.0 + purple_status_type_destroy@Base 2.2.0 + purple_status_type_find_with_id@Base 2.2.0 + purple_status_type_get_attr@Base 2.2.0 + purple_status_type_get_attrs@Base 2.2.0 + purple_status_type_get_id@Base 2.2.0 + purple_status_type_get_name@Base 2.2.0 + purple_status_type_get_primary_attr@Base 2.2.0 + purple_status_type_get_primitive@Base 2.2.0 + purple_status_type_is_available@Base 2.2.0 + purple_status_type_is_exclusive@Base 2.2.0 + purple_status_type_is_independent@Base 2.2.0 + purple_status_type_is_saveable@Base 2.2.0 + purple_status_type_is_user_settable@Base 2.2.0 + purple_status_type_new@Base 2.2.0 + purple_status_type_new_full@Base 2.2.0 + purple_status_type_new_with_attrs@Base 2.2.0 + purple_status_type_set_primary_attr@Base 2.2.0 + purple_status_uninit@Base 2.2.0 + purple_str_add_cr@Base 2.2.0 + purple_str_binary_to_ascii@Base 2.2.0 + purple_str_has_prefix@Base 2.2.0 + purple_str_has_suffix@Base 2.2.0 + purple_str_seconds_to_string@Base 2.2.0 + purple_str_size_to_units@Base 2.2.0 + purple_str_strip_char@Base 2.2.0 + purple_str_to_time@Base 2.2.0 + purple_strcasereplace@Base 2.2.0 + purple_strcasestr@Base 2.2.0 + purple_strdup_withhtml@Base 2.2.0 + purple_stringref_cmp@Base 2.2.0 + purple_stringref_len@Base 2.2.0 + purple_stringref_new@Base 2.2.0 + purple_stringref_new_noref@Base 2.2.0 + purple_stringref_printf@Base 2.2.0 + purple_stringref_ref@Base 2.2.0 + purple_stringref_unref@Base 2.2.0 + purple_stringref_value@Base 2.2.0 + purple_strreplace@Base 2.2.0 + purple_stun_discover@Base 2.2.0 + purple_stun_init@Base 2.2.0 + purple_text_strip_mnemonic@Base 2.2.0 + purple_time_build@Base 2.2.0 + purple_time_format@Base 2.2.0 + purple_timeout_add@Base 2.2.0 + purple_timeout_add_seconds@Base 2.2.0 + purple_timeout_remove@Base 2.2.0 + purple_unescape_filename@Base 2.2.0 + purple_unescape_html@Base 2.2.0 + purple_upnp_cancel_port_mapping@Base 2.2.0 + purple_upnp_discover@Base 2.2.0 + purple_upnp_get_public_ip@Base 2.2.0 + purple_upnp_init@Base 2.2.0 + purple_upnp_remove_port_mapping@Base 2.2.0 + purple_upnp_set_port_mapping@Base 2.2.0 + purple_uri_list_extract_filenames@Base 2.2.0 + purple_uri_list_extract_uris@Base 2.2.0 + purple_url_decode@Base 2.2.0 + purple_url_encode@Base 2.2.0 + purple_url_parse@Base 2.2.0 + purple_user_dir@Base 2.2.0 + purple_utf8_has_word@Base 2.2.0 + purple_utf8_ncr_decode@Base 2.2.0 + purple_utf8_ncr_encode@Base 2.2.0 + purple_utf8_salvage@Base 2.2.0 + purple_utf8_strcasecmp@Base 2.2.0 + purple_utf8_strftime@Base 2.2.0 + purple_utf8_try_convert@Base 2.2.0 + purple_util_chrreplace@Base 2.2.0 + purple_util_fetch_url_cancel@Base 2.2.0 + purple_util_fetch_url_request@Base 2.2.0 + purple_util_get_image_extension@Base 2.2.0 + purple_util_get_image_filename@Base 2.2.0 + purple_util_init@Base 2.3.0 + purple_util_read_xml_from_file@Base 2.2.0 + purple_util_set_user_dir@Base 2.2.0 + purple_util_uninit@Base 2.3.0 + purple_util_write_data_to_file@Base 2.2.0 + purple_util_write_data_to_file_absolute@Base 2.2.0 + purple_value_destroy@Base 2.2.0 + purple_value_dup@Base 2.2.0 + purple_value_get_boolean@Base 2.2.0 + purple_value_get_boxed@Base 2.2.0 + purple_value_get_char@Base 2.2.0 + purple_value_get_enum@Base 2.2.0 + purple_value_get_int64@Base 2.2.0 + purple_value_get_int@Base 2.2.0 + purple_value_get_long@Base 2.2.0 + purple_value_get_object@Base 2.2.0 + purple_value_get_pointer@Base 2.2.0 + purple_value_get_short@Base 2.2.0 + purple_value_get_specific_type@Base 2.2.0 + purple_value_get_string@Base 2.2.0 + purple_value_get_subtype@Base 2.2.0 + purple_value_get_type@Base 2.2.0 + purple_value_get_uchar@Base 2.2.0 + purple_value_get_uint64@Base 2.2.0 + purple_value_get_uint@Base 2.2.0 + purple_value_get_ulong@Base 2.2.0 + purple_value_get_ushort@Base 2.2.0 + purple_value_is_outgoing@Base 2.2.0 + purple_value_new@Base 2.2.0 + purple_value_new_outgoing@Base 2.2.0 + purple_value_set_boolean@Base 2.2.0 + purple_value_set_boxed@Base 2.2.0 + purple_value_set_char@Base 2.2.0 + purple_value_set_enum@Base 2.2.0 + purple_value_set_int64@Base 2.2.0 + purple_value_set_int@Base 2.2.0 + purple_value_set_long@Base 2.2.0 + purple_value_set_object@Base 2.2.0 + purple_value_set_pointer@Base 2.2.0 + purple_value_set_short@Base 2.2.0 + purple_value_set_string@Base 2.2.0 + purple_value_set_uchar@Base 2.2.0 + purple_value_set_uint64@Base 2.2.0 + purple_value_set_uint@Base 2.2.0 + purple_value_set_ulong@Base 2.2.0 + purple_value_set_ushort@Base 2.2.0 + purple_version_check@Base 2.2.0 + purple_whiteboard_clear@Base 2.2.0 + purple_whiteboard_create@Base 2.2.0 + purple_whiteboard_destroy@Base 2.2.0 + purple_whiteboard_draw_line@Base 2.2.0 + purple_whiteboard_draw_list_destroy@Base 2.2.0 + purple_whiteboard_draw_point@Base 2.2.0 + purple_whiteboard_get_brush@Base 2.2.0 + purple_whiteboard_get_dimensions@Base 2.2.0 + purple_whiteboard_get_session@Base 2.2.0 + purple_whiteboard_send_brush@Base 2.2.0 + purple_whiteboard_send_clear@Base 2.2.0 + purple_whiteboard_send_draw_list@Base 2.2.0 + purple_whiteboard_set_brush@Base 2.2.0 + purple_whiteboard_set_dimensions@Base 2.2.0 + purple_whiteboard_set_prpl_ops@Base 2.2.0 + purple_whiteboard_set_ui_ops@Base 2.2.0 + purple_whiteboard_start@Base 2.2.0 + purple_xfer_add@Base 2.2.0 + purple_xfer_cancel_local@Base 2.2.0 + purple_xfer_cancel_remote@Base 2.2.0 + purple_xfer_conversation_write@Base 2.2.0 + purple_xfer_end@Base 2.2.0 + purple_xfer_error@Base 2.2.0 + purple_xfer_get_account@Base 2.2.0 + purple_xfer_get_bytes_remaining@Base 2.2.0 + purple_xfer_get_bytes_sent@Base 2.2.0 + purple_xfer_get_filename@Base 2.2.0 + purple_xfer_get_local_filename@Base 2.2.0 + purple_xfer_get_local_port@Base 2.2.0 + purple_xfer_get_progress@Base 2.2.0 + purple_xfer_get_remote_ip@Base 2.2.0 + purple_xfer_get_remote_port@Base 2.2.0 + purple_xfer_get_remote_user@Base 2.2.0 + purple_xfer_get_size@Base 2.2.0 + purple_xfer_get_status@Base 2.2.0 + purple_xfer_get_type@Base 2.2.0 + purple_xfer_get_ui_ops@Base 2.2.0 + purple_xfer_is_canceled@Base 2.2.0 + purple_xfer_is_completed@Base 2.2.0 + purple_xfer_new@Base 2.2.0 + purple_xfer_read@Base 2.2.0 + purple_xfer_ref@Base 2.2.0 + purple_xfer_request@Base 2.2.0 + purple_xfer_request_accepted@Base 2.2.0 + purple_xfer_request_denied@Base 2.2.0 + purple_xfer_set_ack_fnc@Base 2.2.0 + purple_xfer_set_bytes_sent@Base 2.2.0 + purple_xfer_set_cancel_recv_fnc@Base 2.2.0 + purple_xfer_set_cancel_send_fnc@Base 2.2.0 + purple_xfer_set_completed@Base 2.2.0 + purple_xfer_set_end_fnc@Base 2.2.0 + purple_xfer_set_filename@Base 2.2.0 + purple_xfer_set_init_fnc@Base 2.2.0 + purple_xfer_set_local_filename@Base 2.2.0 + purple_xfer_set_message@Base 2.2.0 + purple_xfer_set_read_fnc@Base 2.2.0 + purple_xfer_set_request_denied_fnc@Base 2.2.0 + purple_xfer_set_size@Base 2.2.0 + purple_xfer_set_start_fnc@Base 2.2.0 + purple_xfer_set_write_fnc@Base 2.2.0 + purple_xfer_start@Base 2.2.0 + purple_xfer_unref@Base 2.2.0 + purple_xfer_update_progress@Base 2.2.0 + purple_xfer_write@Base 2.2.0 + purple_xfers_get_all@Base 2.2.0 + purple_xfers_get_handle@Base 2.2.0 + purple_xfers_get_ui_ops@Base 2.2.0 + purple_xfers_init@Base 2.2.0 + purple_xfers_set_ui_ops@Base 2.2.0 + purple_xfers_uninit@Base 2.2.0 --- pidgin-2.4.1.orig/debian/pidgin.menu +++ pidgin-2.4.1/debian/pidgin.menu @@ -0,0 +1,4 @@ +?package(pidgin):needs="X11" section="Applications/Network/Communication" \ + title="Pidgin" command="/usr/bin/pidgin" \ + longtitle="Multi-protocol Instant Messaging Client" \ + icon="/usr/share/pixmaps/pidgin-menu.xpm" --- pidgin-2.4.1.orig/debian/gaim.links +++ pidgin-2.4.1/debian/gaim.links @@ -0,0 +1,6 @@ +usr/bin/finch usr/bin/gaim-text +usr/bin/pidgin usr/bin/gaim +usr/bin/purple-send usr/bin/gaim-send +usr/bin/purple-send-async usr/bin/gaim-send-async +usr/bin/purple-remote usr/bin/gaim-remote +usr/bin/purple-url-handler usr/bin/gaim-url-handler --- pidgin-2.4.1.orig/debian/copyright.in +++ pidgin-2.4.1/debian/copyright.in @@ -0,0 +1,97 @@ +pidgin was initially packaged for Debian by Ari Pollak +on Sun, Apr 8 2007. + +It was downloaded from: + http://www.pidgin.im + +Purple/Pidgin/Finch is the legal property of its developers. +Please refer to the COPYRIGHT file distributed with this source distribution. +The contents of the COPYRIGHT file is included here: +@PIDGIN_COPYRIGHT@ + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License as +published by the Free Software Foundation; either version 2 of +the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +On Debian systems, the complete text of the GNU General Public +License can be found in /usr/share/common-licenses/GPL file. + +-------------------- + +The code for the GG protocol plugin (libpurple/protocols/gg/lib) has the +following copyright notice: + + (C) Copyright 2001-2003 Wojtek Kaniewski + Robert J. Woźny + Arkadiusz Miśkiewicz + Tomasz Chiliński + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License Version + 2.1 as published by the Free Software Foundation. + +On Debian systems, the complete text of the GNU Lesser General Public +License Version 2.1 can be found in /usr/share/common-licenses/LGPL-2.1 file. + +-------------------- + +The code for the OSCAR protocol (libpurple/protocols/oscar) has the following +copyright notice: + +This file is the legal property of its developers. +Please see the AUTHORS file distributed alongside this file. +The contents of the AUTHORS file is included here: +@OSCAR_AUTHORS@ + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +-------------------- + +The code for libzephyr (libpurple/protocols/zephyr), which is not built for the +Debian package, has the following copyright notices: + +Copyright 1987,1988 by the Massachusetts Institute of Technology + +All rights reserved. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of the Massachusetts +Institute of Technology (M.I.T.) not be used in advertising or publicity +pertaining to distribution of the software without specific, written +prior permission. + +M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + + +Copyright 1987, 1989 by the Student Information Processing Board + of the Massachusetts Institute of Technology + +Permission to use, copy, modify, and distribute this software +and its documentation for any purpose and without fee is +hereby granted, provided that the above copyright notice +appear in all copies and that both that copyright notice and +this permission notice appear in supporting documentation, +and that the names of M.I.T. and the M.I.T. S.I.P.B. not be +used in advertising or publicity pertaining to distribution +of the software without specific, written prior permission. +M.I.T. and the M.I.T. S.I.P.B. make no representations about +the suitability of this software for any purpose. It is +provided "as is" without express or implied warranty. --- pidgin-2.4.1.orig/debian/pidgin-dev.dirs +++ pidgin-2.4.1/debian/pidgin-dev.dirs @@ -0,0 +1,2 @@ +usr/share/doc/pidgin-data +usr/share/doc/pidgin-data/html --- pidgin-2.4.1.orig/debian/shlibs.local +++ pidgin-2.4.1/debian/shlibs.local @@ -0,0 +1,2 @@ +liboscar 0 +libjabber 0 --- pidgin-2.4.1.orig/debian/prefs.xml +++ pidgin-2.4.1/debian/prefs.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --- pidgin-2.4.1.orig/debian/control +++ pidgin-2.4.1/debian/control @@ -0,0 +1,159 @@ +Source: pidgin +Section: net +Priority: optional +Maintainer: Ubuntu Core Developers +XSBC-Original-Maintainer: Robert McQueen +Uploaders: Ari Pollak +Build-Depends: cdbs (>= 0.4.37), debhelper (>= 5.0.0), + libgtk2.0-dev, libxss-dev, libmeanwhile-dev, libgadu-dev (>= 1:1.6+20060215-1), + libnss3-dev (>= 3.11.7-1), tcl8.4-dev, tk8.4-dev, libgstreamer0.10-dev, + libgtkspell-dev, libltdl3-dev, libperl-dev, + libstartup-notification0-dev, libzephyr-dev, libxml2-dev, + libebook1.2-dev, libedata-book1.2-dev, libcamel1.2-dev, + libdbus-glib-1-dev, dbus, python (>= 2.4), libavahi-client-dev, + libavahi-glib-dev, libxml-parser-perl, libncursesw5-dev, libsasl2-dev, + xsltproc, doxygen, liblaunchpad-integration-dev, intltool, libnm-glib-dev, + libsqlite3-dev (>= 3.3) +Standards-Version: 3.7.2 +XS-Vcs-Svn: svn://svn.debian.org/svn/collab-maint/deb-maint/pidgin/ +XS-Vcs-Browser: http://svn.debian.org/wsvn/collab-maint/deb-maint/pidgin/ +Homepage: http://www.pidgin.im + +Package: libpurple0 +Architecture: any +Depends: pidgin-data (>= ${source:Upstream-Version}), pidgin-data (<< ${source:Upstream-Version}-z), ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, libsasl2-modules +Recommends: ca-certificates, libpurple-bin +Replaces: pidgin (<< 1:2.1.1-2), pidgin-data (<< 1:2.4.0-1) +Conflicts: pidgin (<< 1:2.1.1-2), pidgin-data (<< 1:2.4.0-1) +Suggests: ${shlibs:Suggests} +Description: multi-protocol instant messaging library + libpurple is a library intended to be used by programmers seeking + to write an IM client that connects to many IM networks. + Currently supported are: AIM/ICQ, Yahoo!, MSN, IRC, Jabber, Napster, Zephyr, + Gadu-Gadu, Bonjour, Groupwise, Sametime, SILC, and SIMPLE. + . + Some extra packages are suggested to use increased functionality: + * tcl8.4, tk8.4: + - Support for writing plugins with Tcl/Tk + +Package: pidgin +Architecture: any +Depends: pidgin-data (>= ${source:Upstream-Version}), pidgin-data (<< ${source:Upstream-Version}-z), ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends} +Conflicts: gaim (<< 1:2.0.0+beta6-3), pidgin-data (<< 1:2.4.0-1) +Replaces: gaim (<< 1:2.0.0+beta6-3), pidgin-data (<< 1:2.4.0-1) +Recommends: gstreamer0.10-plugins-base, gstreamer0.10-plugins-good +Suggests: gnome-panel (>= 2.1) | kicker (>= 3.1) | docker, evolution-data-server (>= 1.10.0), ${shlibs:Suggests} +Description: graphical multi-protocol instant messaging client for X + Pidgin is a graphical, modular Instant Messaging client capable of using + AIM/ICQ, Yahoo!, MSN, IRC, Jabber, Napster, Zephyr, Gadu-Gadu, Bonjour, + Groupwise, Sametime, SILC, and SIMPLE all at once. + . + Some extra packages are recommended to use the core functionality present + in most pidgin installations: + * gstreamer0.10-plugins-base, gstreamer0.10-plugins-good + - Sound support. + . + More extra packages are suggested to use increased functionality: + * gnome-panel | kicker | docker: + - To use the system tray icon functionality (minimizing to an icon, having + the icon blink when there are new messages, etc.) + * evolution-data-server: + - For interfacing with an Evolution address book + * libsqlite3-0: + - To use Contact Availability Prediction plugin + +Package: pidgin-data +Architecture: all +Depends: ${misc:Depends} +Enhances: libpurple0, finch, pidgin +Description: multi-protocol instant messaging client - data files + This package contains architecture-independent supporting data files + required for use with pidgin, such as documentation, icons, translations, + and sounds. + +Package: pidgin-dev +Section: devel +Architecture: all +Depends: pidgin (>= ${source:Version}), pkg-config, libpurple-dev, libgtk2.0-dev +Conflicts: gaim-dev (<< 1:2.0.0+beta6-3) +Replaces: gaim-dev (<< 1:2.0.0+beta6-3) +Suggests: doc-base +Description: multi-protocol instant messaging client - development files + This package contains the headers and other development files not included in + the main pidgin package. Install this if you wish to compile your own plugins. + . + If you are creating a pidgin plugin package, please be sure to read + /usr/share/doc/pidgin-dev/README.Debian.dev after installing pidgin-dev. + +Package: pidgin-dbg +Priority: extra +Architecture: any +Depends: pidgin (= ${binary:Version}) | finch (= ${binary:Version}) | libpurple0 (= ${binary:Version}), pidgin-data (= ${source:Version}), ${shlibs:Depends} +Conflicts: gaim-dbg (<< 1:2.0.0+beta6-3) +Replaces: gaim-dbg (<< 1:2.0.0+beta6-3) +Description: Debugging symbols for Pidgin + This package includes the debugging symbols useful for debugging Pidgin + and its plugins, contained in the pidgin package. The debugging symbols are + used for execution tracing and core dump analysis. + +Package: finch +Architecture: any +Depends: pidgin-data (>= ${source:Upstream-Version}), pidgin-data (<< ${source:Upstream-Version}-z), ${shlibs:Depends}, ${misc:Depends} +Recommends: gstreamer0.10-plugins-base, gstreamer0.10-plugins-good +Replaces: gaim (<< 1:2.0.0+beta6-3), pidgin (<< 1:2.1.1-2), pidgin-data (<< 1:2.4.0-1) +Conflicts: gaim (<< 1:2.0.0+beta6-3), pidgin (<< 1:2.1.1-2), pidgin-data (<< 1:2.4.0-1) +Suggests: ${shlibs:Suggests} +Description: text-based multi-protocol instant messaging client + Finch is a text/console-based, modular instant messaging client capable of + using AIM/ICQ, Yahoo!, MSN, IRC, Jabber, Napster, Zephyr, Gadu-Gadu, Bonjour, + Groupwise, Sametime, SILC, and SIMPLE all at once. + . + Some extra packages are recommended to use the core functionality present + in most finch installations: + * gstreamer0.10-plugins-base, gstreamer0.10-plugins-good + - Sound support. + +Package: finch-dev +Section: devel +Architecture: all +Depends: finch (>= ${source:Version}), pkg-config, libpurple-dev, libglib2.0-dev, libncursesw5-dev +Replaces: gaim (<< 1:2.0.0+beta6-3), pidgin-dev (<< 1:2.1.1-2) +Conflicts: gaim (<< 1:2.0.0+beta6-3), pidgin-dev (<< 1:2.1.1-2) +Description: text-based multi-protocol instant messaging client - development + This package contains the headers and other development files not included in + the main finch package. Install this if you wish to compile your own plugins, + or would like to compile programs that use the libgnt library. + +Package: libpurple-dev +Section: libdevel +Architecture: all +Depends: libpurple0 (>= ${source:Version}), pkg-config, libglib2.0-dev, libdbus-glib-1-dev, ${misc:Depends} +Replaces: pidgin-dev (<< 1:2.1.1-2) +Conflicts: pidgin-dev (<< 1:2.1.1-2) +Description: multi-protocol instant messaging library - development files + This package contains the headers and other development files not included in + the main libpurple0 package. Install this if you wish to compile your own + client-agnostic plugins, or would like to compile programs that use + libpurple. + +Package: libpurple-bin +Section: net +Architecture: all +Depends: ${shlibs:Depends}, ${misc:Depends}, python, python-dbus +Replaces: pidgin (<< 1:2.1.1-2), pidgin-data (<< 1:2.4.0-1) +Conflicts: pidgin (<< 1:2.1.1-2), pidgin-data (<< 1:2.4.0-1) +Description: multi-protocol instant messaging library - extra utilities + This package contains the utilities not included in the main libpurple0 + package. Currently included are: purple-remote, purple-send, + purple-send-async, and purple-url-handler, + +Package: gaim +Architecture: all +Depends: pidgin +Description: transitional package to Pidgin + This dummy package is provided to smooth the upgrade from Gaim to Pidgin. It + contains compatibility links from /usr/bin/gaim and related programs to the + newly-named programs. If you no longer need these links, this package can be + safely removed. + + --- pidgin-2.4.1.orig/debian/libpurple-bin.install +++ pidgin-2.4.1/debian/libpurple-bin.install @@ -0,0 +1,5 @@ +debian/tmp/usr/bin/purple-remote +debian/tmp/usr/bin/purple-send +debian/tmp/usr/bin/purple-send-async +debian/tmp/usr/bin/purple-url-handler +debian/lintian-override/libpurple-bin usr/share/lintian/overrides --- pidgin-2.4.1.orig/debian/pidgin-dev.install +++ pidgin-2.4.1/debian/pidgin-dev.install @@ -0,0 +1,4 @@ +build/doc/html/*.{html,gif,png} usr/share/doc/pidgin-dev/html +debian/tmp/usr/include/pidgin +debian/tmp/usr/lib/pkgconfig/pidgin.pc +debian/dh_pidgin usr/bin --- pidgin-2.4.1.orig/debian/patches/21_zephyr-external.patch +++ pidgin-2.4.1/debian/patches/21_zephyr-external.patch @@ -0,0 +1,733 @@ +diff -Nur pidgin-2.3.0/libpurple/protocols/zephyr/internal.h pidgin-2.3.0.new/libpurple/protocols/zephyr/internal.h +--- pidgin-2.3.0/libpurple/protocols/zephyr/internal.h 2007-11-24 14:06:01.000000000 -0500 ++++ pidgin-2.3.0.new/libpurple/protocols/zephyr/internal.h 2007-12-02 22:28:57.000000000 -0500 +@@ -1,10 +1,14 @@ +- + #ifndef __INTERNAL_H__ + #define __INTERNAL_H__ + + #include + +-#include ++#ifdef STATIC_ZEPHYR ++#include "zephyr_internal.h" ++#else ++#include ++#endif ++ + #ifndef WIN32 + #include + #endif +diff -Nur pidgin-2.3.0/libpurple/protocols/zephyr/Makefile.am pidgin-2.3.0.new/libpurple/protocols/zephyr/Makefile.am +--- pidgin-2.3.0/libpurple/protocols/zephyr/Makefile.am 2007-11-24 14:06:00.000000000 -0500 ++++ pidgin-2.3.0.new/libpurple/protocols/zephyr/Makefile.am 2007-12-02 22:28:57.000000000 -0500 +@@ -77,7 +77,7 @@ + + if STATIC_ZEPHYR + +-st = -DPURPLE_STATIC_PRPL -Dlint ++st = -DPURPLE_STATIC_PRPL -DSTATIC_ZEPHYR -Dlint + noinst_LIBRARIES = libzephyr.a + libzephyr_a_SOURCES = $(ZEPHYRSOURCES) + libzephyr_a_CFLAGS = $(AM_CFLAGS) +diff -Nur pidgin-2.3.0/libpurple/protocols/zephyr/zephyr.c pidgin-2.3.0.new/libpurple/protocols/zephyr/zephyr.c +--- pidgin-2.3.0/libpurple/protocols/zephyr/zephyr.c 2007-11-24 14:06:01.000000000 -0500 ++++ pidgin-2.3.0.new/libpurple/protocols/zephyr/zephyr.c 2007-12-02 22:28:57.000000000 -0500 +@@ -38,7 +38,6 @@ + #include "privacy.h" + #include "version.h" + +-#include "zephyr.h" + #include "internal.h" + + #include +diff -Nur pidgin-2.3.0/libpurple/protocols/zephyr/zephyr.h pidgin-2.3.0.new/libpurple/protocols/zephyr/zephyr.h +--- pidgin-2.3.0/libpurple/protocols/zephyr/zephyr.h 2007-11-24 14:06:01.000000000 -0500 ++++ pidgin-2.3.0.new/libpurple/protocols/zephyr/zephyr.h 1969-12-31 19:00:00.000000000 -0500 +@@ -1,339 +0,0 @@ +-/* This file is part of the Project Athena Zephyr Notification System. +- * It contains global definitions +- * +- * Created by: Robert French +- * +- * Copyright (c) 1987,1988,1991 by the Massachusetts Institute of +- * Technology. For copying and distribution information, see the +- * file "mit-copyright.h". +- */ +- +-#ifndef __ZEPHYR_H__ +-#define __ZEPHYR_H__ +- +-#include +- +-#include +- +-#include +-#include +- +-#include +- +-#ifndef IPPROTO_MAX /* Make sure not already included */ +-#ifndef WIN32 +-#include +-#endif +-#endif +- +-/* Use __STDC__ to guess whether we can use stdarg, prototypes, and const. +- * This is a public header file, so autoconf can't help us here. */ +-#ifdef __STDC__ +-# include +-# define ZP(x) x +-# define ZCONST const +-#else +-# define ZP(x) () +-# define ZCONST +-#endif +- +-#ifdef WIN32 +-/* this really should be uint32_t */ +-/*typedef unsigned int in_addr_t; +-struct in_addr +-{ +- in_addr_t s_addr; +-}; */ +-#include +-#endif +- +-/* Service names */ +-#define HM_SVCNAME "zephyr-hm" +-#define HM_SRV_SVCNAME "zephyr-hm-srv" +-#define SERVER_SVCNAME "zephyr-clt" +-#define SERVER_SERVICE "zephyr" +-#define SERVER_INSTANCE "zephyr" +- +-#define ZVERSIONHDR "ZEPH" +-#define ZVERSIONMAJOR 0 +-#define ZVERSIONMINOR 2 +- +-#define Z_MAXPKTLEN 1024 +-#define Z_MAXHEADERLEN 800 +-#define Z_MAXOTHERFIELDS 10 /* Max unknown fields in ZNotice_t */ +-#define Z_NUMFIELDS 17 +- +-/* Authentication levels returned by ZCheckAuthentication */ +-#define ZAUTH_FAILED (-1) +-#define ZAUTH_YES 1 +-#define ZAUTH_NO 0 +- +-typedef char ZPacket_t[Z_MAXPKTLEN]; +- +-/* Packet type */ +-typedef enum { +- UNSAFE, UNACKED, ACKED, HMACK, HMCTL, SERVACK, SERVNAK, CLIENTACK, STAT +-} ZNotice_Kind_t; +-extern ZCONST char *ZNoticeKinds[9]; +- +-/* Unique ID format */ +-typedef struct _ZUnique_Id_t { +- struct in_addr zuid_addr; +- struct timeval tv; +-} ZUnique_Id_t; +- +-/* Checksum */ +-typedef unsigned long ZChecksum_t; +- +-/* Notice definition */ +-typedef struct _ZNotice_t { +- char *z_packet; +- char *z_version; +- ZNotice_Kind_t z_kind; +- ZUnique_Id_t z_uid; +-#define z_sender_addr z_uid.zuid_addr +- struct timeval z_time; +- unsigned short z_port; +- int z_auth; +- int z_checked_auth; +- int z_authent_len; +- char *z_ascii_authent; +- char *z_class; +- const char *z_class_inst; +- char *z_opcode; +- char *z_sender; +- const char *z_recipient; +- char *z_default_format; +- char *z_multinotice; +- ZUnique_Id_t z_multiuid; +- ZChecksum_t z_checksum; +- int z_num_other_fields; +- char *z_other_fields[Z_MAXOTHERFIELDS]; +- caddr_t z_message; +- int z_message_len; +-} ZNotice_t; +- +-/* Subscription structure */ +-typedef struct _ZSubscriptions_t { +- char *zsub_recipient; +- char *zsub_class; +- char *zsub_classinst; +-} ZSubscription_t; +- +-/* Function return code */ +-typedef int Code_t; +- +-/* Locations structure */ +-typedef struct _ZLocations_t { +- char *host; +- char *time; +- char *tty; +-} ZLocations_t; +- +-typedef struct _ZAsyncLocateData_t { +- char *user; +- ZUnique_Id_t uid; +- char *version; +-} ZAsyncLocateData_t; +- +-/* for ZSetDebug */ +-#ifdef Z_DEBUG +-void (*__Z_debug_print) ZP((ZCONST char *fmt, va_list args, void *closure)); +-void *__Z_debug_print_closure; +-#endif +- +-int ZCompareUIDPred ZP((ZNotice_t *, void *)); +-int ZCompareMultiUIDPred ZP((ZNotice_t *, void *)); +- +-/* Defines for ZFormatNotice, et al. */ +-typedef Code_t (*Z_AuthProc) ZP((ZNotice_t*, char *, int, int *)); +-Code_t ZMakeAuthentication ZP((ZNotice_t*, char *,int, int*)); +- +-char *ZGetSender ZP((void)); +-char *ZGetVariable ZP((char *)); +-Code_t ZSetVariable ZP((char *var, char *value)); +-Code_t ZUnsetVariable ZP((char *var)); +-int ZGetWGPort ZP((void)); +-Code_t ZSetDestAddr ZP((struct sockaddr_in *)); +-Code_t ZFormatNoticeList ZP((ZNotice_t*, char**, int, +- char **, int*, Z_AuthProc)); +-Code_t ZParseNotice ZP((char*, int, ZNotice_t *)); +-Code_t ZReadAscii ZP((char*, int, unsigned char*, int)); +-Code_t ZReadAscii32 ZP((char *, int, unsigned long *)); +-Code_t ZReadAscii16 ZP((char *, int, unsigned short *)); +-Code_t ZSendPacket ZP((char*, int, int)); +-Code_t ZSendList ZP((ZNotice_t*, char *[], int, Z_AuthProc)); +-Code_t ZSrvSendList ZP((ZNotice_t*, char*[], int, Z_AuthProc, Code_t (*)())); +-Code_t ZSendNotice ZP((ZNotice_t *, Z_AuthProc)); +-Code_t ZSrvSendNotice ZP((ZNotice_t*, Z_AuthProc, Code_t (*)())); +-Code_t ZFormatNotice ZP((ZNotice_t*, char**, int*, Z_AuthProc)); +-Code_t ZFormatSmallNotice ZP((ZNotice_t*, ZPacket_t, int*, Z_AuthProc)); +-Code_t ZFormatRawNoticeList ZP((ZNotice_t *notice, char *list[], int nitems, +- char **buffer, int *ret_len)); +-Code_t ZLocateUser ZP((char *, int *, Z_AuthProc)); +-Code_t ZRequestLocations ZP((const char *, ZAsyncLocateData_t *, +- ZNotice_Kind_t, Z_AuthProc)); +-Code_t ZhmStat ZP((struct in_addr *, ZNotice_t *)); +-Code_t ZInitialize ZP((void)); +-Code_t ZSetServerState ZP((int)); +-Code_t ZSetFD ZP((int)); +-Code_t ZFormatSmallRawNotice ZP((ZNotice_t*, ZPacket_t, int*)); +-int ZCompareUID ZP((ZUnique_Id_t*, ZUnique_Id_t*)); +-Code_t ZMakeAscii ZP((char*, int, unsigned char*, int)); +-Code_t ZMakeAscii32 ZP((char *, int, unsigned long)); +-Code_t ZMakeAscii16 ZP((char *, int, unsigned int)); +-Code_t ZReceivePacket ZP((ZPacket_t, int*, struct sockaddr_in*)); +-Code_t ZCheckAuthentication ZP((ZNotice_t*, struct sockaddr_in*)); +-Code_t ZSetLocation ZP((char *exposure)); +-Code_t ZUnsetLocation ZP((void)); +-Code_t ZFlushMyLocations ZP((void)); +-Code_t ZFormatRawNotice ZP((ZNotice_t *, char**, int *)); +-Code_t ZRetrieveSubscriptions ZP((unsigned short, int*)); +-Code_t ZOpenPort ZP((unsigned short *port)); +-Code_t ZClosePort ZP((void)); +-Code_t ZFlushLocations ZP((void)); +-Code_t ZFlushSubscriptions ZP((void)); +-Code_t ZFreeNotice ZP((ZNotice_t *notice)); +-Code_t ZParseLocations ZP((register ZNotice_t *notice, +- register ZAsyncLocateData_t *zald, int *nlocs, +- char **user)); +-int ZCompareALDPred ZP((ZNotice_t *notice, void *zald)); +-void ZFreeALD ZP((register ZAsyncLocateData_t *zald)); +-Code_t ZCheckIfNotice ZP((ZNotice_t *notice, struct sockaddr_in *from, +- register int (*predicate) ZP((ZNotice_t *,void *)), +- void *args)); +-Code_t ZPeekPacket ZP((char **buffer, int *ret_len, +- struct sockaddr_in *from)); +-Code_t ZPeekNotice ZP((ZNotice_t *notice, struct sockaddr_in *from)); +-Code_t ZIfNotice ZP((ZNotice_t *notice, struct sockaddr_in *from, +- int (*predicate) ZP((ZNotice_t *, void *)), void *args)); +-Code_t ZSubscribeTo ZP((ZSubscription_t *sublist, int nitems, +- unsigned int port)); +-Code_t ZSubscribeToSansDefaults ZP((ZSubscription_t *sublist, int nitems, +- unsigned int port)); +-Code_t ZUnsubscribeTo ZP((ZSubscription_t *sublist, int nitems, +- unsigned int port)); +-Code_t ZCancelSubscriptions ZP((unsigned int port)); +-int ZPending ZP((void)); +-Code_t ZReceiveNotice ZP((ZNotice_t *notice, struct sockaddr_in *from)); +-#ifdef Z_DEBUG +-void Z_debug ZP((ZCONST char *, ...)); +-#endif +- +-#undef ZP +- +-/* Compatibility */ +-#define ZNewLocateUser ZLocateUser +- +-/* Macros to retrieve Zephyr library values. */ +-extern int __Zephyr_fd; +-extern int __Q_CompleteLength; +-extern struct sockaddr_in __HM_addr; +-extern char __Zephyr_realm[]; +-#define ZGetFD() __Zephyr_fd +-#define ZQLength() __Q_CompleteLength +-#define ZGetDestAddr() __HM_addr +-#define ZGetRealm() __Zephyr_realm +- +-#ifdef Z_DEBUG +-void ZSetDebug ZP((void (*)(ZCONST char *, va_list, void *), void *)); +-#define ZSetDebug(proc,closure) (__Z_debug_print=(proc), \ +- __Z_debug_print_closure=(closure), \ +- (void) 0) +-#else +-#define ZSetDebug(proc,closure) +-#endif +- +-/* Maximum queue length */ +-#define Z_MAXQLEN 30 +- +-/* Successful function return */ +-#define ZERR_NONE 0 +- +-/* Hostmanager wait time (in secs) */ +-#define HM_TIMEOUT 1 +- +-/* Server wait time (in secs) */ +-#define SRV_TIMEOUT 30 +- +-#define ZAUTH (ZMakeAuthentication) +-#define ZNOAUTH ((Z_AuthProc)0) +- +-/* Packet strings */ +-#define ZSRVACK_SENT "SENT" /* SERVACK codes */ +-#define ZSRVACK_NOTSENT "LOST" +-#define ZSRVACK_FAIL "FAIL" +- +-/* Server internal class */ +-#define ZEPHYR_ADMIN_CLASS "ZEPHYR_ADMIN" /* Class */ +- +-/* Control codes sent to a server */ +-#define ZEPHYR_CTL_CLASS "ZEPHYR_CTL" /* Class */ +- +-#define ZEPHYR_CTL_CLIENT "CLIENT" /* Inst: From client */ +-#define CLIENT_SUBSCRIBE "SUBSCRIBE" /* Opcode: Subscribe */ +-#define CLIENT_SUBSCRIBE_NODEFS "SUBSCRIBE_NODEFS" /* Opcode: Subscribe */ +-#define CLIENT_UNSUBSCRIBE "UNSUBSCRIBE" /* Opcode: Unsubsubscribe */ +-#define CLIENT_CANCELSUB "CLEARSUB" /* Opcode: Clear all subs */ +-#define CLIENT_GIMMESUBS "GIMME" /* Opcode: Give me subs */ +-#define CLIENT_GIMMEDEFS "GIMMEDEFS" /* Opcode: Give me default +- * subscriptions */ +- +-#define ZEPHYR_CTL_HM "HM" /* Inst: From HM */ +-#define HM_BOOT "BOOT" /* Opcode: Boot msg */ +-#define HM_FLUSH "FLUSH" /* Opcode: Flush me */ +-#define HM_DETACH "DETACH" /* Opcode: Detach me */ +-#define HM_ATTACH "ATTACH" /* Opcode: Attach me */ +- +-/* Control codes send to a HostManager */ +-#define HM_CTL_CLASS "HM_CTL" /* Class */ +- +-#define HM_CTL_SERVER "SERVER" /* Inst: From server */ +-#define SERVER_SHUTDOWN "SHUTDOWN" /* Opcode: Server shutdown */ +-#define SERVER_PING "PING" /* Opcode: PING */ +- +-#define HM_CTL_CLIENT "CLIENT" /* Inst: From client */ +-#define CLIENT_FLUSH "FLUSH" /* Opcode: Send flush to srv */ +-#define CLIENT_NEW_SERVER "NEWSERV" /* Opcode: Find new server */ +- +-/* HM Statistics */ +-#define HM_STAT_CLASS "HM_STAT" /* Class */ +- +-#define HM_STAT_CLIENT "HMST_CLIENT" /* Inst: From client */ +-#define HM_GIMMESTATS "GIMMESTATS" /* Opcode: get stats */ +- +-/* Login class messages */ +-#define LOGIN_CLASS "LOGIN" /* Class */ +- +-/* Class Instance is principal of user who is logging in or logging out */ +- +-#define EXPOSE_NONE "NONE" /* Opcode: Not visible */ +-#define EXPOSE_OPSTAFF "OPSTAFF" /* Opcode: Opstaff visible */ +-#define EXPOSE_REALMVIS "REALM-VISIBLE" /* Opcode: Realm visible */ +-#define EXPOSE_REALMANN "REALM-ANNOUNCED"/* Opcode: Realm announced */ +-#define EXPOSE_NETVIS "NET-VISIBLE" /* Opcode: Net visible */ +-#define EXPOSE_NETANN "NET-ANNOUNCED" /* Opcode: Net announced */ +-#define LOGIN_USER_LOGIN "USER_LOGIN" /* Opcode: user login +- (from server) */ +-#define LOGIN_USER_LOGOUT "USER_LOGOUT" /* Opcode: User logout */ +-#define LOGIN_USER_FLUSH "USER_FLUSH" /* Opcode: flush all locs */ +- +-/* Locate class messages */ +-#define LOCATE_CLASS "USER_LOCATE" /* Class */ +- +-#define LOCATE_HIDE "USER_HIDE" /* Opcode: Hide me */ +-#define LOCATE_UNHIDE "USER_UNHIDE" /* Opcode: Unhide me */ +- +-/* Class Instance is principal of user to locate */ +-#define LOCATE_LOCATE "LOCATE" /* Opcode: Locate user */ +- +-/* WG_CTL class messages */ +-#define WG_CTL_CLASS "WG_CTL" /* Class */ +- +-#define WG_CTL_USER "USER" /* Inst: User request */ +-#define USER_REREAD "REREAD" /* Opcode: Reread desc file */ +-#define USER_SHUTDOWN "SHUTDOWN" /* Opcode: Go catatonic */ +-#define USER_STARTUP "STARTUP" /* Opcode: Come out of it */ +-#define USER_EXIT "EXIT" /* Opcode: Exit the client */ +- +-#endif /* __ZEPHYR_H__ */ +diff -Nur pidgin-2.3.0/libpurple/protocols/zephyr/zephyr_internal.h pidgin-2.3.0.new/libpurple/protocols/zephyr/zephyr_internal.h +--- pidgin-2.3.0/libpurple/protocols/zephyr/zephyr_internal.h 1969-12-31 19:00:00.000000000 -0500 ++++ pidgin-2.3.0.new/libpurple/protocols/zephyr/zephyr_internal.h 2007-12-02 22:29:56.000000000 -0500 +@@ -0,0 +1,343 @@ ++/* This file is part of the Project Athena Zephyr Notification System. ++ * It contains global definitions ++ * ++ * Created by: Robert French ++ * ++ * Copyright (c) 1987,1988,1991 by the Massachusetts Institute of ++ * Technology. For copying and distribution information, see the ++ * file "mit-copyright.h". ++ */ ++ ++#ifndef __ZEPHYR_H__ ++#define __ZEPHYR_H__ ++ ++#ifndef STATIC_ZEPHYR ++#error Should use the system Zephyr headers when using the system Zephyr libs ++#endif ++ ++#include ++ ++#include ++ ++#include ++#include ++ ++#include ++ ++#ifndef IPPROTO_MAX /* Make sure not already included */ ++#ifndef WIN32 ++#include ++#endif ++#endif ++ ++/* Use __STDC__ to guess whether we can use stdarg, prototypes, and const. ++ * This is a public header file, so autoconf can't help us here. */ ++#ifdef __STDC__ ++# include ++# define ZP(x) x ++# define ZCONST const ++#else ++# define ZP(x) () ++# define ZCONST ++#endif ++ ++#ifdef WIN32 ++/* this really should be uint32_t */ ++/*typedef unsigned int in_addr_t; ++struct in_addr ++{ ++ in_addr_t s_addr; ++}; */ ++#include ++#endif ++ ++/* Service names */ ++#define HM_SVCNAME "zephyr-hm" ++#define HM_SRV_SVCNAME "zephyr-hm-srv" ++#define SERVER_SVCNAME "zephyr-clt" ++#define SERVER_SERVICE "zephyr" ++#define SERVER_INSTANCE "zephyr" ++ ++#define ZVERSIONHDR "ZEPH" ++#define ZVERSIONMAJOR 0 ++#define ZVERSIONMINOR 2 ++ ++#define Z_MAXPKTLEN 1024 ++#define Z_MAXHEADERLEN 800 ++#define Z_MAXOTHERFIELDS 10 /* Max unknown fields in ZNotice_t */ ++#define Z_NUMFIELDS 17 ++ ++/* Authentication levels returned by ZCheckAuthentication */ ++#define ZAUTH_FAILED (-1) ++#define ZAUTH_YES 1 ++#define ZAUTH_NO 0 ++ ++typedef char ZPacket_t[Z_MAXPKTLEN]; ++ ++/* Packet type */ ++typedef enum { ++ UNSAFE, UNACKED, ACKED, HMACK, HMCTL, SERVACK, SERVNAK, CLIENTACK, STAT ++} ZNotice_Kind_t; ++extern ZCONST char *ZNoticeKinds[9]; ++ ++/* Unique ID format */ ++typedef struct _ZUnique_Id_t { ++ struct in_addr zuid_addr; ++ struct timeval tv; ++} ZUnique_Id_t; ++ ++/* Checksum */ ++typedef unsigned long ZChecksum_t; ++ ++/* Notice definition */ ++typedef struct _ZNotice_t { ++ char *z_packet; ++ char *z_version; ++ ZNotice_Kind_t z_kind; ++ ZUnique_Id_t z_uid; ++#define z_sender_addr z_uid.zuid_addr ++ struct timeval z_time; ++ unsigned short z_port; ++ int z_auth; ++ int z_checked_auth; ++ int z_authent_len; ++ char *z_ascii_authent; ++ char *z_class; ++ const char *z_class_inst; ++ char *z_opcode; ++ char *z_sender; ++ const char *z_recipient; ++ char *z_default_format; ++ char *z_multinotice; ++ ZUnique_Id_t z_multiuid; ++ ZChecksum_t z_checksum; ++ int z_num_other_fields; ++ char *z_other_fields[Z_MAXOTHERFIELDS]; ++ caddr_t z_message; ++ int z_message_len; ++} ZNotice_t; ++ ++/* Subscription structure */ ++typedef struct _ZSubscriptions_t { ++ char *zsub_recipient; ++ char *zsub_class; ++ char *zsub_classinst; ++} ZSubscription_t; ++ ++/* Function return code */ ++typedef int Code_t; ++ ++/* Locations structure */ ++typedef struct _ZLocations_t { ++ char *host; ++ char *time; ++ char *tty; ++} ZLocations_t; ++ ++typedef struct _ZAsyncLocateData_t { ++ char *user; ++ ZUnique_Id_t uid; ++ char *version; ++} ZAsyncLocateData_t; ++ ++/* for ZSetDebug */ ++#ifdef Z_DEBUG ++void (*__Z_debug_print) ZP((ZCONST char *fmt, va_list args, void *closure)); ++void *__Z_debug_print_closure; ++#endif ++ ++int ZCompareUIDPred ZP((ZNotice_t *, void *)); ++int ZCompareMultiUIDPred ZP((ZNotice_t *, void *)); ++ ++/* Defines for ZFormatNotice, et al. */ ++typedef Code_t (*Z_AuthProc) ZP((ZNotice_t*, char *, int, int *)); ++Code_t ZMakeAuthentication ZP((ZNotice_t*, char *,int, int*)); ++ ++char *ZGetSender ZP((void)); ++char *ZGetVariable ZP((char *)); ++Code_t ZSetVariable ZP((char *var, char *value)); ++Code_t ZUnsetVariable ZP((char *var)); ++int ZGetWGPort ZP((void)); ++Code_t ZSetDestAddr ZP((struct sockaddr_in *)); ++Code_t ZFormatNoticeList ZP((ZNotice_t*, char**, int, ++ char **, int*, Z_AuthProc)); ++Code_t ZParseNotice ZP((char*, int, ZNotice_t *)); ++Code_t ZReadAscii ZP((char*, int, unsigned char*, int)); ++Code_t ZReadAscii32 ZP((char *, int, unsigned long *)); ++Code_t ZReadAscii16 ZP((char *, int, unsigned short *)); ++Code_t ZSendPacket ZP((char*, int, int)); ++Code_t ZSendList ZP((ZNotice_t*, char *[], int, Z_AuthProc)); ++Code_t ZSrvSendList ZP((ZNotice_t*, char*[], int, Z_AuthProc, Code_t (*)())); ++Code_t ZSendNotice ZP((ZNotice_t *, Z_AuthProc)); ++Code_t ZSrvSendNotice ZP((ZNotice_t*, Z_AuthProc, Code_t (*)())); ++Code_t ZFormatNotice ZP((ZNotice_t*, char**, int*, Z_AuthProc)); ++Code_t ZFormatSmallNotice ZP((ZNotice_t*, ZPacket_t, int*, Z_AuthProc)); ++Code_t ZFormatRawNoticeList ZP((ZNotice_t *notice, char *list[], int nitems, ++ char **buffer, int *ret_len)); ++Code_t ZLocateUser ZP((char *, int *, Z_AuthProc)); ++Code_t ZRequestLocations ZP((const char *, ZAsyncLocateData_t *, ++ ZNotice_Kind_t, Z_AuthProc)); ++Code_t ZhmStat ZP((struct in_addr *, ZNotice_t *)); ++Code_t ZInitialize ZP((void)); ++Code_t ZSetServerState ZP((int)); ++Code_t ZSetFD ZP((int)); ++Code_t ZFormatSmallRawNotice ZP((ZNotice_t*, ZPacket_t, int*)); ++int ZCompareUID ZP((ZUnique_Id_t*, ZUnique_Id_t*)); ++Code_t ZMakeAscii ZP((char*, int, unsigned char*, int)); ++Code_t ZMakeAscii32 ZP((char *, int, unsigned long)); ++Code_t ZMakeAscii16 ZP((char *, int, unsigned int)); ++Code_t ZReceivePacket ZP((ZPacket_t, int*, struct sockaddr_in*)); ++Code_t ZCheckAuthentication ZP((ZNotice_t*, struct sockaddr_in*)); ++Code_t ZSetLocation ZP((char *exposure)); ++Code_t ZUnsetLocation ZP((void)); ++Code_t ZFlushMyLocations ZP((void)); ++Code_t ZFormatRawNotice ZP((ZNotice_t *, char**, int *)); ++Code_t ZRetrieveSubscriptions ZP((unsigned short, int*)); ++Code_t ZOpenPort ZP((unsigned short *port)); ++Code_t ZClosePort ZP((void)); ++Code_t ZFlushLocations ZP((void)); ++Code_t ZFlushSubscriptions ZP((void)); ++Code_t ZFreeNotice ZP((ZNotice_t *notice)); ++Code_t ZParseLocations ZP((register ZNotice_t *notice, ++ register ZAsyncLocateData_t *zald, int *nlocs, ++ char **user)); ++int ZCompareALDPred ZP((ZNotice_t *notice, void *zald)); ++void ZFreeALD ZP((register ZAsyncLocateData_t *zald)); ++Code_t ZCheckIfNotice ZP((ZNotice_t *notice, struct sockaddr_in *from, ++ register int (*predicate) ZP((ZNotice_t *,void *)), ++ void *args)); ++Code_t ZPeekPacket ZP((char **buffer, int *ret_len, ++ struct sockaddr_in *from)); ++Code_t ZPeekNotice ZP((ZNotice_t *notice, struct sockaddr_in *from)); ++Code_t ZIfNotice ZP((ZNotice_t *notice, struct sockaddr_in *from, ++ int (*predicate) ZP((ZNotice_t *, void *)), void *args)); ++Code_t ZSubscribeTo ZP((ZSubscription_t *sublist, int nitems, ++ unsigned int port)); ++Code_t ZSubscribeToSansDefaults ZP((ZSubscription_t *sublist, int nitems, ++ unsigned int port)); ++Code_t ZUnsubscribeTo ZP((ZSubscription_t *sublist, int nitems, ++ unsigned int port)); ++Code_t ZCancelSubscriptions ZP((unsigned int port)); ++int ZPending ZP((void)); ++Code_t ZReceiveNotice ZP((ZNotice_t *notice, struct sockaddr_in *from)); ++#ifdef Z_DEBUG ++void Z_debug ZP((ZCONST char *, ...)); ++#endif ++ ++#undef ZP ++ ++/* Compatibility */ ++#define ZNewLocateUser ZLocateUser ++ ++/* Macros to retrieve Zephyr library values. */ ++extern int __Zephyr_fd; ++extern int __Q_CompleteLength; ++extern struct sockaddr_in __HM_addr; ++extern char __Zephyr_realm[]; ++#define ZGetFD() __Zephyr_fd ++#define ZQLength() __Q_CompleteLength ++#define ZGetDestAddr() __HM_addr ++#define ZGetRealm() __Zephyr_realm ++ ++#ifdef Z_DEBUG ++void ZSetDebug ZP((void (*)(ZCONST char *, va_list, void *), void *)); ++#define ZSetDebug(proc,closure) (__Z_debug_print=(proc), \ ++ __Z_debug_print_closure=(closure), \ ++ (void) 0) ++#else ++#define ZSetDebug(proc,closure) ++#endif ++ ++/* Maximum queue length */ ++#define Z_MAXQLEN 30 ++ ++/* Successful function return */ ++#define ZERR_NONE 0 ++ ++/* Hostmanager wait time (in secs) */ ++#define HM_TIMEOUT 1 ++ ++/* Server wait time (in secs) */ ++#define SRV_TIMEOUT 30 ++ ++#define ZAUTH (ZMakeAuthentication) ++#define ZNOAUTH ((Z_AuthProc)0) ++ ++/* Packet strings */ ++#define ZSRVACK_SENT "SENT" /* SERVACK codes */ ++#define ZSRVACK_NOTSENT "LOST" ++#define ZSRVACK_FAIL "FAIL" ++ ++/* Server internal class */ ++#define ZEPHYR_ADMIN_CLASS "ZEPHYR_ADMIN" /* Class */ ++ ++/* Control codes sent to a server */ ++#define ZEPHYR_CTL_CLASS "ZEPHYR_CTL" /* Class */ ++ ++#define ZEPHYR_CTL_CLIENT "CLIENT" /* Inst: From client */ ++#define CLIENT_SUBSCRIBE "SUBSCRIBE" /* Opcode: Subscribe */ ++#define CLIENT_SUBSCRIBE_NODEFS "SUBSCRIBE_NODEFS" /* Opcode: Subscribe */ ++#define CLIENT_UNSUBSCRIBE "UNSUBSCRIBE" /* Opcode: Unsubsubscribe */ ++#define CLIENT_CANCELSUB "CLEARSUB" /* Opcode: Clear all subs */ ++#define CLIENT_GIMMESUBS "GIMME" /* Opcode: Give me subs */ ++#define CLIENT_GIMMEDEFS "GIMMEDEFS" /* Opcode: Give me default ++ * subscriptions */ ++ ++#define ZEPHYR_CTL_HM "HM" /* Inst: From HM */ ++#define HM_BOOT "BOOT" /* Opcode: Boot msg */ ++#define HM_FLUSH "FLUSH" /* Opcode: Flush me */ ++#define HM_DETACH "DETACH" /* Opcode: Detach me */ ++#define HM_ATTACH "ATTACH" /* Opcode: Attach me */ ++ ++/* Control codes send to a HostManager */ ++#define HM_CTL_CLASS "HM_CTL" /* Class */ ++ ++#define HM_CTL_SERVER "SERVER" /* Inst: From server */ ++#define SERVER_SHUTDOWN "SHUTDOWN" /* Opcode: Server shutdown */ ++#define SERVER_PING "PING" /* Opcode: PING */ ++ ++#define HM_CTL_CLIENT "CLIENT" /* Inst: From client */ ++#define CLIENT_FLUSH "FLUSH" /* Opcode: Send flush to srv */ ++#define CLIENT_NEW_SERVER "NEWSERV" /* Opcode: Find new server */ ++ ++/* HM Statistics */ ++#define HM_STAT_CLASS "HM_STAT" /* Class */ ++ ++#define HM_STAT_CLIENT "HMST_CLIENT" /* Inst: From client */ ++#define HM_GIMMESTATS "GIMMESTATS" /* Opcode: get stats */ ++ ++/* Login class messages */ ++#define LOGIN_CLASS "LOGIN" /* Class */ ++ ++/* Class Instance is principal of user who is logging in or logging out */ ++ ++#define EXPOSE_NONE "NONE" /* Opcode: Not visible */ ++#define EXPOSE_OPSTAFF "OPSTAFF" /* Opcode: Opstaff visible */ ++#define EXPOSE_REALMVIS "REALM-VISIBLE" /* Opcode: Realm visible */ ++#define EXPOSE_REALMANN "REALM-ANNOUNCED"/* Opcode: Realm announced */ ++#define EXPOSE_NETVIS "NET-VISIBLE" /* Opcode: Net visible */ ++#define EXPOSE_NETANN "NET-ANNOUNCED" /* Opcode: Net announced */ ++#define LOGIN_USER_LOGIN "USER_LOGIN" /* Opcode: user login ++ (from server) */ ++#define LOGIN_USER_LOGOUT "USER_LOGOUT" /* Opcode: User logout */ ++#define LOGIN_USER_FLUSH "USER_FLUSH" /* Opcode: flush all locs */ ++ ++/* Locate class messages */ ++#define LOCATE_CLASS "USER_LOCATE" /* Class */ ++ ++#define LOCATE_HIDE "USER_HIDE" /* Opcode: Hide me */ ++#define LOCATE_UNHIDE "USER_UNHIDE" /* Opcode: Unhide me */ ++ ++/* Class Instance is principal of user to locate */ ++#define LOCATE_LOCATE "LOCATE" /* Opcode: Locate user */ ++ ++/* WG_CTL class messages */ ++#define WG_CTL_CLASS "WG_CTL" /* Class */ ++ ++#define WG_CTL_USER "USER" /* Inst: User request */ ++#define USER_REREAD "REREAD" /* Opcode: Reread desc file */ ++#define USER_SHUTDOWN "SHUTDOWN" /* Opcode: Go catatonic */ ++#define USER_STARTUP "STARTUP" /* Opcode: Come out of it */ ++#define USER_EXIT "EXIT" /* Opcode: Exit the client */ ++ ++#endif /* __ZEPHYR_H__ */ --- pidgin-2.4.1.orig/debian/patches/70_autoconf.patch +++ pidgin-2.4.1/debian/patches/70_autoconf.patch @@ -0,0 +1,47 @@ +diff -Nur pidgin-2.2.2/configure pidgin-2.2.2.new/configure +--- pidgin-2.2.2/configure 2007-10-23 22:57:26.000000000 +0200 ++++ pidgin-2.2.2.new/configure 2007-11-07 00:37:37.000000000 +0100 +@@ -27590,12 +27590,12 @@ + pkg_cv_STARTUP_NOTIFICATION_CFLAGS="$STARTUP_NOTIFICATION_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ +- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libstartup-notification-1.0 >= 0.5\"") >&5 +- ($PKG_CONFIG --exists --print-errors "libstartup-notification-1.0 >= 0.5") 2>&5 ++ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libstartup-notification-1.0 >= 0.5 launchpad-integration\"") >&5 ++ ($PKG_CONFIG --exists --print-errors "libstartup-notification-1.0 >= 0.5 launchpad-integration") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then +- pkg_cv_STARTUP_NOTIFICATION_CFLAGS=`$PKG_CONFIG --cflags "libstartup-notification-1.0 >= 0.5" 2>/dev/null` ++ pkg_cv_STARTUP_NOTIFICATION_CFLAGS=`$PKG_CONFIG --cflags "libstartup-notification-1.0 >= 0.5 launchpad-integration" 2>/dev/null` + else + pkg_failed=yes + fi +@@ -27608,12 +27608,12 @@ + pkg_cv_STARTUP_NOTIFICATION_LIBS="$STARTUP_NOTIFICATION_LIBS" + else + if test -n "$PKG_CONFIG" && \ +- { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libstartup-notification-1.0 >= 0.5\"") >&5 +- ($PKG_CONFIG --exists --print-errors "libstartup-notification-1.0 >= 0.5") 2>&5 ++ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libstartup-notification-1.0 >= 0.5 launchpad-integration\"") >&5 ++ ($PKG_CONFIG --exists --print-errors "libstartup-notification-1.0 >= 0.5 launchpad-integration") 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then +- pkg_cv_STARTUP_NOTIFICATION_LIBS=`$PKG_CONFIG --libs "libstartup-notification-1.0 >= 0.5" 2>/dev/null` ++ pkg_cv_STARTUP_NOTIFICATION_LIBS=`$PKG_CONFIG --libs "libstartup-notification-1.0 >= 0.5 launchpad-integration" 2>/dev/null` + else + pkg_failed=yes + fi +@@ -27632,9 +27632,9 @@ + _pkg_short_errors_supported=no + fi + if test $_pkg_short_errors_supported = yes; then +- STARTUP_NOTIFICATION_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libstartup-notification-1.0 >= 0.5"` ++ STARTUP_NOTIFICATION_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libstartup-notification-1.0 >= 0.5 launchpad-integration"` + else +- STARTUP_NOTIFICATION_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libstartup-notification-1.0 >= 0.5"` ++ STARTUP_NOTIFICATION_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libstartup-notification-1.0 >= 0.5 launchpad-integration"` + fi + # Put the nasty error message in config.log where it belongs + echo "$STARTUP_NOTIFICATION_PKG_ERRORS" >&5 --- pidgin-2.4.1.orig/debian/patches/72_SECURITY_CVE-2008-2955.patch +++ pidgin-2.4.1/debian/patches/72_SECURITY_CVE-2008-2955.patch @@ -0,0 +1,66 @@ +# +# Fix for denial of service via specially formulated long filename +# Ubuntu: https://bugs.launchpad.net/bugs/245769 +# Upstream: http://developer.pidgin.im/ticket/6246 +# Patch: http://developer.pidgin.im/viewmtn/revision/info/3008474548ddd234f222ed5a0be3066e2ea0da0b +# +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/msn/slpcall.c pidgin-2.4.1.new/libpurple/protocols/msn/slpcall.c +--- pidgin-2.4.1/libpurple/protocols/msn/slpcall.c 2008-03-31 13:21:24.000000000 -0400 ++++ pidgin-2.4.1.new/libpurple/protocols/msn/slpcall.c 2008-11-20 20:06:56.000000000 -0500 +@@ -103,8 +103,10 @@ + if (slpcall->end_cb != NULL) + slpcall->end_cb(slpcall, session); + +- if (slpcall->xfer != NULL) ++ if (slpcall->xfer != NULL) { ++ slpcall->xfer->data = NULL; + purple_xfer_unref(slpcall->xfer); ++ } + + g_free(slpcall); + } +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/msn/slpcall.h pidgin-2.4.1.new/libpurple/protocols/msn/slpcall.h +--- pidgin-2.4.1/libpurple/protocols/msn/slpcall.h 2008-03-31 13:21:24.000000000 -0400 ++++ pidgin-2.4.1.new/libpurple/protocols/msn/slpcall.h 2008-11-20 20:06:56.000000000 -0500 +@@ -25,6 +25,7 @@ + #define _MSN_SLPCALL_H_ + + #include "internal.h" ++#include "ft.h" + + typedef struct _MsnSlpCall MsnSlpCall; + +@@ -71,7 +72,7 @@ + /* Can be checksum, or smile */ + char *data_info; + +- void *xfer; ++ PurpleXfer *xfer; + + MsnSlpCb cb; + void (*end_cb)(MsnSlpCall *slpcall, MsnSession *session); +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/msn/slplink.c pidgin-2.4.1.new/libpurple/protocols/msn/slplink.c +--- pidgin-2.4.1/libpurple/protocols/msn/slplink.c 2008-11-20 20:06:12.000000000 -0500 ++++ pidgin-2.4.1.new/libpurple/protocols/msn/slplink.c 2008-11-20 20:06:56.000000000 -0500 +@@ -559,10 +559,17 @@ + + if (xfer != NULL) + { +- purple_xfer_start(slpmsg->slpcall->xfer, +- 0, NULL, 0); +- slpmsg->fp = ((PurpleXfer *)slpmsg->slpcall->xfer)->dest_fp; +- xfer->dest_fp = NULL; /* Disable double fclose() */ ++ purple_xfer_ref(xfer); ++ purple_xfer_start(xfer, 0, NULL, 0); ++ ++ if (xfer->data == NULL) { ++ purple_xfer_unref(xfer); ++ return; ++ } else { ++ purple_xfer_unref(xfer); ++ slpmsg->fp = xfer->dest_fp; ++ xfer->dest_fp = NULL; /* Disable double fclose() */ ++ } + } + } + } --- pidgin-2.4.1.orig/debian/patches/74_SECURITY_CVE-2008-3532.patch +++ pidgin-2.4.1/debian/patches/74_SECURITY_CVE-2008-3532.patch @@ -0,0 +1,179 @@ +# +# Fix for man in the middle attack from lack of certificate validation in nss plugin +# Ubuntu: https://bugs.launchpad.net/bugs/251304 +# Patch: http://patch-tracking.debian.net/patch/series/view/pidgin/2.4.3-4/25_ssl-nss.patch +# Patch: http://developer.pidgin.im/viewmtn/revision/info/ad677f4ab3dcd31d42fe39edbb9e9207dcf93df6 +# Patch: http://developer.pidgin.im/viewmtn/revision/info/3cbc74478c8df61d53804d0363dc936a3e0adeb7 +# +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/plugins/ssl/ssl-nss.c pidgin-2.4.1.new/libpurple/plugins/ssl/ssl-nss.c +--- pidgin-2.4.1/libpurple/plugins/ssl/ssl-nss.c 2008-03-31 13:21:24.000000000 -0400 ++++ pidgin-2.4.1.new/libpurple/plugins/ssl/ssl-nss.c 2008-11-20 20:11:53.000000000 -0500 +@@ -60,6 +60,7 @@ + + static const PRIOMethods *_nss_methods = NULL; + static PRDescIdentity _identity; ++static PurpleCertificateScheme x509_nss; + + /* Thank you, Evolution */ + static void +@@ -172,6 +173,7 @@ + #endif + } + ++#if 0 + static SECStatus + ssl_bad_cert(void *arg, PRFileDesc *socket) + { +@@ -211,6 +214,7 @@ + + return status; + } ++#endif + + static gboolean + ssl_nss_init(void) +@@ -227,6 +231,83 @@ + } + + static void ++ssl_nss_verified_cb(PurpleCertificateVerificationStatus st, ++ gpointer userdata) ++{ ++ PurpleSslConnection *gsc = (PurpleSslConnection *) userdata; ++ ++ if (st == PURPLE_CERTIFICATE_VALID) { ++ /* Certificate valid? Good! Do the connection! */ ++ gsc->connect_cb(gsc->connect_cb_data, gsc, PURPLE_INPUT_READ); ++ } else { ++ /* Otherwise, signal an error */ ++ if(gsc->error_cb != NULL) ++ gsc->error_cb(gsc, PURPLE_SSL_CERTIFICATE_INVALID, ++ gsc->connect_cb_data); ++ purple_ssl_close(gsc); ++ } ++} ++ ++/** Transforms an NSS containing an X.509 certificate into a Certificate instance ++ * ++ * @param cert Certificate to transform ++ * @return A newly allocated Certificate ++ */ ++static PurpleCertificate * ++x509_import_from_nss(CERTCertificate* cert) ++{ ++ /* New certificate to return */ ++ PurpleCertificate * crt; ++ ++ /* Allocate the certificate and load it with data */ ++ crt = g_new0(PurpleCertificate, 1); ++ crt->scheme = &x509_nss; ++ crt->data = CERT_DupCertificate(cert); ++ ++ return crt; ++} ++ ++static GList * ++ssl_nss_get_peer_certificates(PRFileDesc *socket, PurpleSslConnection * gsc) ++{ ++ CERTCertificate *curcert; ++ CERTCertificate *issuerCert; ++ PurpleCertificate * newcrt; ++ ++ /* List of Certificate instances to return */ ++ GList * peer_certs = NULL; ++ int count; ++ int64 now = PR_Now(); ++ ++ curcert = SSL_PeerCertificate(socket); ++ if (curcert == NULL) { ++ purple_debug_error("nss", "could not DupCertificate\n"); ++ return NULL; ++ } ++ ++ for (count = 0 ; count < CERT_MAX_CERT_CHAIN ; count++) { ++ purple_debug_info("nss", "subject=%s issuer=%s\n", curcert->subjectName, ++ curcert->issuerName ? curcert->issuerName : "(null)"); ++ newcrt = x509_import_from_nss(curcert); ++ peer_certs = g_list_append(peer_certs, newcrt); ++ ++ if (curcert->isRoot) { ++ break; ++ } ++ issuerCert = CERT_FindCertIssuer(curcert, now, certUsageSSLServer); ++ if (!issuerCert) { ++ purple_debug_error("nss", "partial certificate chain\n"); ++ break; ++ } ++ CERT_DestroyCertificate(curcert); ++ curcert = issuerCert; ++ } ++ CERT_DestroyCertificate(curcert); ++ ++ return peer_certs; ++} ++ ++static void + ssl_nss_handshake_cb(gpointer data, int fd, PurpleInputCondition cond) + { + PurpleSslConnection *gsc = (PurpleSslConnection *)data; +@@ -256,7 +337,25 @@ + purple_input_remove(nss_data->handshake_handler); + nss_data->handshake_handler = 0; + +- gsc->connect_cb(gsc->connect_cb_data, gsc, cond); ++ /* If a Verifier was given, hand control over to it */ ++ if (gsc->verifier) { ++ GList *peers; ++ /* First, get the peer cert chain */ ++ peers = ssl_nss_get_peer_certificates(nss_data->in, gsc); ++ ++ /* Now kick off the verification process */ ++ purple_certificate_verify(gsc->verifier, ++ gsc->host, ++ peers, ++ ssl_nss_verified_cb, ++ gsc); ++ ++ purple_certificate_destroy_list(peers); ++ } else { ++ /* Otherwise, just call the "connection complete" ++ callback */ ++ gsc->connect_cb(gsc->connect_cb_data, gsc, cond); ++ } + } + + static void +@@ -310,7 +409,10 @@ + SSL_AuthCertificateHook(nss_data->in, + (SSLAuthCertificate)ssl_auth_cert, + (void *)CERT_GetDefaultCertDB()); ++#if 0 ++ /* No point in hooking BadCert, since ssl_auth_cert always succeeds */ + SSL_BadCertHook(nss_data->in, (SSLBadCertHandler)ssl_bad_cert, NULL); ++#endif + + if(gsc->host) + SSL_SetURL(nss_data->in, gsc->host); +@@ -566,7 +668,21 @@ + x509_signed_by(PurpleCertificate * crt, + PurpleCertificate * issuer) + { +- return TRUE; ++ CERTCertificate *subjectCert; ++ CERTCertificate *issuerCert; ++ SECStatus st; ++ ++ issuerCert = X509_NSS_DATA(issuer); ++ g_return_val_if_fail(issuerCert, FALSE); ++ ++ subjectCert = X509_NSS_DATA(crt); ++ g_return_val_if_fail(subjectCert, FALSE); ++ ++ if (subjectCert->issuerName == NULL ++ || PORT_Strcmp(subjectCert->issuerName, issuerCert->subjectName) != 0) ++ return FALSE; ++ st = CERT_VerifySignedData(&subjectCert->signatureWrap, issuerCert, PR_Now(), NULL); ++ return st == SECSuccess; + } + + static GByteArray * --- pidgin-2.4.1.orig/debian/patches/83_security_CVE-2009-1376.patch +++ pidgin-2.4.1/debian/patches/83_security_CVE-2009-1376.patch @@ -0,0 +1,24 @@ +# +# Description: arbitrary code execution via crafted MSN message +# Patch: http://developer.pidgin.im/viewmtn/revision/info/9dd1c4c3db68a80dbf157a0c0bc0c723e42b7a6e +# +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/msn/slplink.c pidgin-2.4.1.new/libpurple/protocols/msn/slplink.c +--- pidgin-2.4.1/libpurple/protocols/msn/slplink.c 2009-05-25 17:24:27.000000000 +0200 ++++ pidgin-2.4.1.new/libpurple/protocols/msn/slplink.c 2009-05-25 17:24:32.000000000 +0200 +@@ -509,7 +509,7 @@ + { + MsnSlpMessage *slpmsg; + const char *data; +- gsize offset; ++ guint64 offset; + gsize len; + + #ifdef MSN_DEBUG_SLP +@@ -580,6 +580,7 @@ + if (slpmsg->buffer == NULL) + { + purple_debug_error("msn", "Failed to allocate buffer for slpmsg\n"); ++ msn_slpmsg_destroy(slpmsg); + return; + } + } --- pidgin-2.4.1.orig/debian/patches/20_purple-remote_friendly.patch +++ pidgin-2.4.1/debian/patches/20_purple-remote_friendly.patch @@ -0,0 +1,32 @@ +diff -Nur pidgin-2.0.0~beta6+mtn20070409/libpurple/purple-remote pidgin-2.0.0~beta6+mtn20070409.new/libpurple/purple-remote +--- pidgin-2.0.0~beta6+mtn20070409/libpurple/purple-remote 2007-04-09 22:16:28.000000000 -0400 ++++ pidgin-2.0.0~beta6+mtn20070409.new/libpurple/purple-remote 2007-04-09 22:20:36.000000000 -0400 +@@ -61,6 +65,7 @@ + GaimAccountsFindConnected?name=&protocol=prpl-jabber + GaimAccountFindConnected(,prpl-jabber) + """ % sys.argv[0] ++ sys.exit(1) + + cgaim = CheckedObject(gaim) + +@@ -204,7 +209,7 @@ + show_help() + raise "Unknown command: %s" % command + +-if len(sys.argv) == 1: ++if len(sys.argv) == 1 or sys.argv[1] == "--help" or sys.argv == "-h": + show_help() + + for arg in sys.argv[1:]: +diff -Nur pidgin-2.0.0~beta6+mtn20070409/libpurple/purple-url-handler pidgin-2.0.0~beta6+mtn20070409.new/libpurple/purple-url-handler +--- pidgin-2.0.0~beta6+mtn20070409/libpurple/purple-url-handler 2007-04-09 22:16:28.000000000 -0400 ++++ pidgin-2.0.0~beta6+mtn20070409.new/libpurple/purple-url-handler 2007-04-09 22:20:36.000000000 -0400 +@@ -254,7 +258,7 @@ + + + def main(argv=sys.argv): +- if len(argv) != 2: ++ if len(argv) != 2 or argv[1] == "--help" or argv[1] == "-h": + print "Usage: %s URI" % argv[0] + print "Example: %s \"xmpp:romeo@montague.net?message\"" % argv[0] + return --- pidgin-2.4.1.orig/debian/patches/01_gtkspell-locale3.patch +++ pidgin-2.4.1/debian/patches/01_gtkspell-locale3.patch @@ -0,0 +1,33 @@ +diff -u -r1.58 gtkutils.c +--- pidgin-2.0.0+beta6/pidgin/gtkutils.c 4 Jan 2004 06:59:09 -0000 1.58 ++++ pidgin-2.0.0+beta6/pidgin/gtkutils.c 5 Jan 2004 01:38:19 -0000 +@@ -1104,6 +1104,17 @@ + g_return_if_fail(textview != NULL); + g_return_if_fail(GTK_IS_TEXT_VIEW(textview)); + ++#ifdef _WIN32 ++ /* don't try and override the dictionary on windows */ ++ locale = NULL; ++#else ++ locale = setlocale(LC_MESSAGES, NULL); ++ ++ /* don't try and override the dictionary on default locales */ ++ if (!strcmp(locale, "C")) ++ locale = NULL; ++#endif /* _WIN32 */ ++ + if (gtkspell_new_attach(textview, locale, &error) == NULL && error) + { + gaim_debug_warning("gtkspell", "Failed to setup GtkSpell: %s\n", +--- pidgin-2.0.0+beta6/pidgin/gtkutils.h 29 Dec 2003 09:03:43 -0000 1.24 ++++ pidgin-2.0.0+beta6/pidgin/gtkutils.h 5 Jan 2004 01:38:19 -0000 +@@ -283,7 +283,8 @@ + void gaim_gtk_find_images(const char *message, GSList **list); + + /** +- * Sets up GtkSpell for the given GtkTextView, reporting errors ++ * Sets up GtkSpell for the given GtkTextView, selecting the appropriate ++ * dictionary for the locale on *nix systems, and reporting errors + * if encountered. + * + * This does nothing if Gaim is not compiled with GtkSpell support. --- pidgin-2.4.1.orig/debian/patches/02_lpi.patch +++ pidgin-2.4.1/debian/patches/02_lpi.patch @@ -0,0 +1,31 @@ +--- pidgin-2.0.0/configure.ac 2007-05-04 05:20:33.000000000 +0000 ++++ pidgin-2.0.0new/configure.ac 2007-05-04 14:23:29.295701079 +0000 +@@ -383,7 +383,7 @@ + dnl # Check for startup notification + dnl ####################################################################### + if test "x$enable_startup_notification" = "xyes"; then +- PKG_CHECK_MODULES(STARTUP_NOTIFICATION, [libstartup-notification-1.0 >= 0.5], , [ ++ PKG_CHECK_MODULES(STARTUP_NOTIFICATION, [libstartup-notification-1.0 >= 0.5 launchpad-integration], , [ + AC_MSG_RESULT(no) + enable_startup_notification=no + ]) +--- pidgin-2.0.0/pidgin/gtkblist.c 2007-05-04 04:41:49.000000000 +0000 ++++ pidgin-2.0.0new/pidgin/gtkblist.c 2007-05-04 14:24:37.815605805 +0000 +@@ -61,6 +61,8 @@ + #include + #include + ++#include ++ + #define HEADLINE_CLOSE_SIZE 12 + + typedef struct +@@ -4212,6 +4214,8 @@ + NULL, NULL); + gtk_item_factory_create_items(gtkblist->ift, sizeof(blist_menu) / sizeof(*blist_menu), + blist_menu, NULL); ++ launchpad_integration_add_items (gtk_item_factory_get_widget(gtkblist->ift, N_("/Help")), -1, TRUE, TRUE); ++ + pidgin_load_accels(); + g_signal_connect(G_OBJECT(accel_group), "accel-changed", + G_CALLBACK(pidgin_save_accels_cb), NULL); --- pidgin-2.4.1.orig/debian/patches/85_security_CVE-2009-2694.patch +++ pidgin-2.4.1/debian/patches/85_security_CVE-2009-2694.patch @@ -0,0 +1,46 @@ +# +# Description: fix arbitrary code execution via crafted MSNSLP packet +# Patch: http://developer.pidgin.im/viewmtn/revision/info/6f7343166c673bf0496ecb1afec9b633c1d54a0e +# Patch: http://developer.pidgin.im/viewmtn/revision/info/0899f42c08f68d7811a5b0ebe68acd5b85eddc13 +# Ubuntu: https://bugs.launchpad.net/ubuntu/+source/pidgin/+bug/415863 +# +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/msn/slplink.c pidgin-2.4.1.new/libpurple/protocols/msn/slplink.c +--- pidgin-2.4.1/libpurple/protocols/msn/slplink.c 2009-08-19 12:52:20.000000000 -0400 ++++ pidgin-2.4.1.new/libpurple/protocols/msn/slplink.c 2009-08-19 12:52:40.000000000 -0400 +@@ -476,6 +476,7 @@ + #endif + + msn_slplink_send_slpmsg(slplink, slpmsg); ++ msn_slpmsg_destroy(slpmsg); + } + + static void +@@ -602,7 +603,7 @@ + /* fseek(slpmsg->fp, offset, SEEK_SET); */ + len = fwrite(data, 1, len, slpmsg->fp); + } +- else if (slpmsg->size) ++ else if (slpmsg->size && slpmsg->buffer) + { + if (G_MAXSIZE - len < offset || (offset + len) > slpmsg->size) + { +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/msnp9/slplink.c pidgin-2.4.1.new/libpurple/protocols/msnp9/slplink.c +--- pidgin-2.4.1/libpurple/protocols/msnp9/slplink.c 2009-08-19 12:52:20.000000000 -0400 ++++ pidgin-2.4.1.new/libpurple/protocols/msnp9/slplink.c 2009-08-19 12:52:40.000000000 -0400 +@@ -475,6 +475,7 @@ + #endif + + msn_slplink_send_slpmsg(slplink, slpmsg); ++ msn_slpmsg_destroy(slpmsg); + } + + static void +@@ -593,7 +594,7 @@ + /* fseek(slpmsg->fp, offset, SEEK_SET); */ + len = fwrite(data, 1, len, slpmsg->fp); + } +- else if (slpmsg->size) ++ else if (slpmsg->size && slpmsg->buffer) + { + if (G_MAXSIZE - len < offset || (offset + len) > slpmsg->size) + { --- pidgin-2.4.1.orig/debian/patches/84_security_CVE-2009-1889.patch +++ pidgin-2.4.1/debian/patches/84_security_CVE-2009-1889.patch @@ -0,0 +1,85 @@ +# +# Description: fix denial of service via ICQWebMessage message type in OSCAR protocol. +# Upstream: http://developer.pidgin.im/ticket/9483 +# Patch: http://developer.pidgin.im/viewmtn/revision/info/9bac0a540156fb1848eedd61c8630737dee752c7 +# Ubuntu: https://bugs.launchpad.net/ubuntu/+source/pidgin/+bug/393736 +# +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/oscar/bstream.c pidgin-2.4.1.new/libpurple/protocols/oscar/bstream.c +--- pidgin-2.4.1/libpurple/protocols/oscar/bstream.c 2008-03-31 13:21:24.000000000 -0400 ++++ pidgin-2.4.1.new/libpurple/protocols/oscar/bstream.c 2009-07-03 11:14:28.000000000 -0400 +@@ -156,15 +156,19 @@ + return aimutil_getle32(bs->data + bs->offset - 4); + } + ++static void byte_stream_getrawbuf_nocheck(ByteStream *bs, guint8 *buf, int len) ++{ ++ memcpy(buf, bs->data + bs->offset, len); ++ bs->offset += len; ++} ++ + int byte_stream_getrawbuf(ByteStream *bs, guint8 *buf, int len) + { + + if (byte_stream_empty(bs) < len) + return 0; + +- memcpy(buf, bs->data + bs->offset, len); +- bs->offset += len; +- ++ byte_stream_getrawbuf_nocheck(bs, buf, len); + return len; + } + +@@ -172,12 +176,12 @@ + { + guint8 *ob; + ++ if (byte_stream_empty(bs) < len) ++ return NULL; ++ + ob = g_malloc(len); + +- if (byte_stream_getrawbuf(bs, ob, len) < len) { +- g_free(ob); +- return NULL; +- } ++ byte_stream_getrawbuf_nocheck(bs, ob, len); + + return ob; + } +@@ -186,12 +190,12 @@ + { + char *ob; + ++ if (byte_stream_empty(bs) < len) ++ return NULL; ++ + ob = g_malloc(len + 1); + +- if (byte_stream_getrawbuf(bs, (guint8 *)ob, len) < len) { +- g_free(ob); +- return NULL; +- } ++ byte_stream_getrawbuf_nocheck(bs, (guint8 *)ob, len); + + ob[len] = '\0'; + +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/oscar/oscar.c pidgin-2.4.1.new/libpurple/protocols/oscar/oscar.c +--- pidgin-2.4.1/libpurple/protocols/oscar/oscar.c 2008-03-31 13:21:24.000000000 -0400 ++++ pidgin-2.4.1.new/libpurple/protocols/oscar/oscar.c 2009-07-03 11:14:28.000000000 -0400 +@@ -2554,9 +2554,15 @@ + /* From libicq2000-0.3.2/src/ICQ.cpp */ + byte_stream_init(&qbs, (guint8 *)args->msg, args->msglen); + byte_stream_advance(&qbs, 21); ++ /* expected: 01 00 00 20 00 0e 28 f6 00 11 e7 d3 11 bc f3 00 04 ac 96 9d c2 | 00 00 | 06 00 00 00 | 49 43 51 53 43 53 ...*/ ++ /* unexpected: 00 00 26 00 81 1a 18 bc 0e 6c 18 47 a5 91 6f 18 dc c7 6f 1a | 00 00 | 0d 00 00 00 | 49 43 51 57 65 62 4d 65 73 73 61 67 65 ... */ + smstype = byte_stream_getle16(&qbs); ++ if (smstype != 0) ++ break; + taglen = byte_stream_getle32(&qbs); + tagstr = byte_stream_getstr(&qbs, taglen); ++ if (tagstr == NULL) ++ break; + byte_stream_advance(&qbs, 3); + byte_stream_advance(&qbs, 4); + smslen = byte_stream_getle32(&qbs); --- pidgin-2.4.1.orig/debian/patches/11_reread-resolvconf.patch +++ pidgin-2.4.1/debian/patches/11_reread-resolvconf.patch @@ -0,0 +1,34 @@ +--- pidgin-2.0.0+beta5.orig/libpurple/connection.c 2006-11-28 00:12:14.000000000 -0500 ++++ pidgin-2.0.0+beta5/libpurple/connection.c 2006-11-28 00:24:00.000000000 -0500 +@@ -37,6 +37,10 @@ + #include "signals.h" + #include "util.h" + ++#include ++#include ++#include ++ + static GList *connections = NULL; + static GList *connections_connecting = NULL; + static PurpleConnectionUiOps *connection_ui_ops = NULL; +@@ -139,6 +139,9 @@ + + purple_signal_emit(purple_connections_get_handle(), "signing-on", gc); + ++ /* Re-read resolv.conf and friends in case DNS servers have changed */ ++ res_init(); ++ + if (regist) + { + purple_debug_info("connection", "Registering. gc = %p\n", gc); +--- pidgin-2.0.0+beta5.orig/libpurple/network.c 2006-11-28 00:12:14.000000000 -0500 ++++ pidgin-2.0.0+beta5/libpurple/network.c 2006-11-28 00:24:15.000000000 -0500 +@@ -558,8 +558,6 @@ + switch(current) + { + case LIBNM_ACTIVE_NETWORK_CONNECTION: +- /* Call res_init in case DNS servers have changed */ +- res_init(); + if (ui_ops != NULL && ui_ops->network_connected != NULL) + ui_ops->network_connected(); + prev = current; --- pidgin-2.4.1.orig/debian/patches/73_SECURITY_CVE-2008-2957.patch +++ pidgin-2.4.1/debian/patches/73_SECURITY_CVE-2008-2957.patch @@ -0,0 +1,176 @@ +# +# Fix for denial of service via resource exhaustion from arbitrary URL in UPnP functionality +# Ubuntu: https://bugs.launchpad.net/bugs/245769 +# Patch: http://developer.pidgin.im/viewmtn/revision/info/434563a4b8fadb9593c241db4bb5ffd0bf2c0627 +# Patch: http://patch-tracking.debian.net/patch/series/view/pidgin/2.4.3-4/28_upnp_dos.patch +# +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/upnp.c pidgin-2.4.1.new/libpurple/upnp.c +--- pidgin-2.4.1/libpurple/upnp.c 2008-03-31 13:21:24.000000000 -0400 ++++ pidgin-2.4.1.new/libpurple/upnp.c 2008-11-20 20:09:17.000000000 -0500 +@@ -41,6 +41,8 @@ + #define HTTP_OK "200 OK" + #define DEFAULT_HTTP_PORT 80 + #define DISCOVERY_TIMEOUT 1000 ++/* limit UPnP-triggered http downloads to 128k */ ++#define MAX_UPNP_DOWNLOAD (128 * 1024) + + /*************************************************************** + ** Discovery/Description Defines * +@@ -443,8 +445,8 @@ + purple_timeout_remove(dd->tima); + dd->tima = 0; + +- purple_util_fetch_url_request(descriptionURL, TRUE, NULL, TRUE, httpRequest, +- TRUE, upnp_parse_description_cb, dd); ++ purple_util_fetch_url_request_len(descriptionURL, TRUE, NULL, TRUE, httpRequest, ++ TRUE, MAX_UPNP_DOWNLOAD, upnp_parse_description_cb, dd); + + g_free(httpRequest); + +@@ -708,8 +710,8 @@ + g_free(pathOfControl); + g_free(soapMessage); + +- gfud = purple_util_fetch_url_request(control_info.control_url, FALSE, NULL, TRUE, +- totalSendMessage, TRUE, cb, cb_data); ++ gfud = purple_util_fetch_url_request_len(control_info.control_url, FALSE, NULL, TRUE, ++ totalSendMessage, TRUE, MAX_UPNP_DOWNLOAD, cb, cb_data); + + g_free(totalSendMessage); + g_free(addressOfControl); +@@ -1047,7 +1049,7 @@ + { + static int handle; + +- return &handle; ++ return &handle; + } + + void +@@ -1055,5 +1057,5 @@ + { + purple_signal_connect(purple_network_get_handle(), "network-configuration-changed", + purple_upnp_get_handle(), PURPLE_CALLBACK(purple_upnp_network_config_changed_cb), +- GINT_TO_POINTER(0)); ++ NULL); + } +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/util.c pidgin-2.4.1.new/libpurple/util.c +--- pidgin-2.4.1/libpurple/util.c 2008-03-31 13:21:24.000000000 -0400 ++++ pidgin-2.4.1.new/libpurple/util.c 2008-11-20 20:09:17.000000000 -0500 +@@ -65,6 +65,7 @@ + char *webdata; + unsigned long len; + unsigned long data_len; ++ gssize max_len; + }; + + static char *custom_user_dir = NULL; +@@ -3727,6 +3728,15 @@ + gboolean got_eof = FALSE; + + while((len = read(source, buf, sizeof(buf))) > 0) { ++ ++ if(gfud->max_len != -1 && (gfud->len + len) > gfud->max_len) { ++ /* TODO: Fix this when not string frozen */ ++ /*purple_util_fetch_url_error(gfud, _("Error reading from %s: response too long (%d bytes limit)"),*/ ++ purple_util_fetch_url_error(gfud, "Error reading from %s: response too long (%d bytes limit)", ++ gfud->website.address, gfud->max_len); ++ return; ++ } ++ + /* If we've filled up our buffer, make it bigger */ + if((gfud->len + len) >= gfud->data_len) { + while((gfud->len + len) >= gfud->data_len) +@@ -3888,8 +3898,7 @@ + + gfud->fd = source; + +- if (!gfud->request) +- { ++ if (!gfud->request) { + if (gfud->user_agent) { + /* Host header is not forbidden in HTTP/1.0 requests, and HTTP/1.1 + * clients must know how to handle the "chunked" transfer encoding. +@@ -3933,6 +3942,18 @@ + const char *request, gboolean include_headers, + PurpleUtilFetchUrlCallback callback, void *user_data) + { ++ return purple_util_fetch_url_request_len(url, full, ++ user_agent, http11, ++ request, include_headers, -1, ++ callback, user_data); ++} ++ ++PurpleUtilFetchUrlData * ++purple_util_fetch_url_request_len(const char *url, gboolean full, ++ const char *user_agent, gboolean http11, ++ const char *request, gboolean include_headers, gssize max_len, ++ PurpleUtilFetchUrlCallback callback, void *user_data) ++{ + PurpleUtilFetchUrlData *gfud; + + g_return_val_if_fail(url != NULL, NULL); +@@ -3953,6 +3974,7 @@ + gfud->request = g_strdup(request); + gfud->include_headers = include_headers; + gfud->fd = -1; ++ gfud->max_len = max_len; + + purple_url_parse(url, &gfud->website.address, &gfud->website.port, + &gfud->website.page, &gfud->website.user, &gfud->website.passwd); +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/util.h pidgin-2.4.1.new/libpurple/util.h +--- pidgin-2.4.1/libpurple/util.h 2008-03-31 13:21:24.000000000 -0400 ++++ pidgin-2.4.1.new/libpurple/util.h 2008-11-20 20:09:17.000000000 -0500 +@@ -1029,6 +1029,23 @@ + * partial URL. + * @param user_agent The user agent field to use, or NULL. + * @param http11 TRUE if HTTP/1.1 should be used to download the file. ++ * @param max_len The maximum number of bytes to retrieve (-1 for unlimited) ++ * @param cb The callback function. ++ * @param data The user data to pass to the callback function. ++ * @deprecated In 3.0.0, we'll rename this to "purple_util_fetch_url" and get rid of the old one ++ */ ++#define purple_util_fetch_url_len(url, full, user_agent, http11, max_len, cb, data) \ ++ purple_util_fetch_url_request_len(url, full, user_agent, http11, NULL, \ ++ FALSE, max_len, cb, data); ++ ++/** ++ * Fetches the data from a URL, and passes it to a callback function. ++ * ++ * @param url The URL. ++ * @param full TRUE if this is the full URL, or FALSE if it's a ++ * partial URL. ++ * @param user_agent The user agent field to use, or NULL. ++ * @param http11 TRUE if HTTP/1.1 should be used to download the file. + * @param request A HTTP request to send to the server instead of the + * standard GET + * @param include_headers +@@ -1042,6 +1059,28 @@ + PurpleUtilFetchUrlCallback callback, gpointer data); + + /** ++ * Fetches the data from a URL, and passes it to a callback function. ++ * ++ * @param url The URL. ++ * @param full TRUE if this is the full URL, or FALSE if it's a ++ * partial URL. ++ * @param user_agent The user agent field to use, or NULL. ++ * @param http11 TRUE if HTTP/1.1 should be used to download the file. ++ * @param request A HTTP request to send to the server instead of the ++ * standard GET ++ * @param include_headers ++ * If TRUE, include the HTTP headers in the response. ++ * @param max_len The maximum number of bytes to retrieve (-1 for unlimited) ++ * @param callback The callback function. ++ * @param data The user data to pass to the callback function. ++ * @deprecated In 3.0.0, we'll rename this to "purple_util_fetch_url_request" and get rid of the old one ++ */ ++PurpleUtilFetchUrlData *purple_util_fetch_url_request_len(const gchar *url, ++ gboolean full, const gchar *user_agent, gboolean http11, ++ const gchar *request, gboolean include_headers, gssize max_len, ++ PurpleUtilFetchUrlCallback callback, gpointer data); ++ ++/** + * Cancel a pending URL request started with either + * purple_util_fetch_url_request() or purple_util_fetch_url(). + * --- pidgin-2.4.1.orig/debian/patches/00_debian-ca-certs.patch +++ pidgin-2.4.1/debian/patches/00_debian-ca-certs.patch @@ -0,0 +1,13 @@ +--- pidgin-2.4.0/libpurple/certificate.c ++++ pidgin-2.4.0.new/libpurple/certificate.c +@@ -745,8 +745,8 @@ + x509_ca_paths = g_list_append(NULL, g_build_filename(DATADIR, + "ca-certs", NULL)); + #else +- x509_ca_paths = g_list_append(NULL, g_build_filename(DATADIR, +- "purple", "ca-certs", NULL)); ++ x509_ca_paths = g_list_append(NULL, g_build_filename("etc", ++ "ssl", "certs", NULL)); + #endif + } + --- pidgin-2.4.1.orig/debian/patches/80_fix_ICQ_new_protocol.patch +++ pidgin-2.4.1/debian/patches/80_fix_ICQ_new_protocol.patch @@ -0,0 +1,38 @@ +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/oscar/oscar.h pidgin-2.4.1.new/libpurple/protocols/oscar/oscar.h +--- pidgin-2.4.1/libpurple/protocols/oscar/oscar.h 2009-03-10 17:06:07.000000000 +0100 ++++ pidgin-2.4.1.new/libpurple/protocols/oscar/oscar.h 2009-03-10 17:07:08.000000000 +0100 +@@ -285,6 +285,15 @@ + "us", "en", \ + } + ++#define CLIENTINFO_ICQBASIC_14_34_3096 { \ ++ "ICQBasic", \ ++ 0x010a, \ ++ 0x0014, 0x0034, \ ++ 0x0000, 0x0c18, \ ++ 0x0000043d, \ ++ "us", "en", \ ++} ++ + #define CLIENTINFO_NETSCAPE_7_0_1 { \ + "Netscape 2000 an approved user of AOL Instant Messenger (SM)", \ + 0x1d0d, \ +@@ -311,14 +320,14 @@ + #define CLIENTINFO_PURPLE_ICQ { \ + "Purple/" VERSION, \ + 0x010a, \ +- 0x0006, 0x0000, \ +- 0x0000, 0x17ab, \ +- 0x00007535, \ ++ 0x0014, 0x0034, \ ++ 0x0000, 0x0c18, \ ++ 0x0000043d, \ + "us", "en", \ + } + + #define CLIENTINFO_AIM_KNOWNGOOD CLIENTINFO_AIM_5_1_3036 +-#define CLIENTINFO_ICQ_KNOWNGOOD CLIENTINFO_ICQBASIC_14_34_3000 ++#define CLIENTINFO_ICQ_KNOWNGOOD CLIENTINFO_ICQBASIC_14_34_3096 + + typedef enum + { --- pidgin-2.4.1.orig/debian/patches/03_gconf-gstreamer.patch +++ pidgin-2.4.1/debian/patches/03_gconf-gstreamer.patch @@ -0,0 +1,14 @@ +diff -Nur pidgin-2.0.0+beta5/pidgin/gtksound.c pidgin-2.0.0+beta5.new/pidgin/gtksound.c +--- pidgin-2.0.0+beta5/pidgin/gtksound.c 2006-11-10 02:23:00.000000000 -0500 ++++ pidgin-2.0.0+beta5.new/pidgin/gtksound.c 2006-11-11 15:44:05.000000000 -0500 +@@ -448,9 +448,7 @@ + return; + volume = (float)(CLAMP(purple_prefs_get_int("/purple/gtk/sound/volume"),0,100)) / 50; + if (!strcmp(method, "automatic")) { +- if (purple_running_gnome()) { +- sink = gst_element_factory_make("gconfaudiosink", "sink"); +- } ++ sink = gst_element_factory_make("gconfaudiosink", "sink"); + if (!sink) + sink = gst_element_factory_make("autoaudiosink", "sink"); + } else if (!strcmp(method, "esd")) { --- pidgin-2.4.1.orig/debian/patches/02_manpage-desc.patch +++ pidgin-2.4.1/debian/patches/02_manpage-desc.patch @@ -0,0 +1,15 @@ +diff -Nur pidgin-2.3.1/doc/pidgin.1.in pidgin-2.3.1.new/doc/pidgin.1.in +--- pidgin-2.3.1/doc/pidgin.1.in 2007-12-07 09:36:59.000000000 -0500 ++++ pidgin-2.3.1.new/doc/pidgin.1.in 2008-01-29 18:53:30.000000000 -0500 +@@ -19,9 +19,9 @@ + .\" License along with this manual; if not, write to the Free + .\" Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + .\" Boston, MA 02111-1301 USA. +-.TH pidgin 1 ++.TH pidgin 1 "" "Pidgin v@VERSION@" + .SH NAME +-Pidgin v@VERSION@ \- Instant Messaging client ++pidgin \- Pidgin Instant Messaging client + .SH SYNOPSIS + .TP 5 + \fBpidgin \fI[options]\fR --- pidgin-2.4.1.orig/debian/patches/24_debian-gconf.patch +++ pidgin-2.4.1/debian/patches/24_debian-gconf.patch @@ -0,0 +1,20 @@ +Fix an earlier screwup where we set /pidgin/browsers/command as a string when +it should've been a path, so it was never recognized properly and prevenedt +people from using a custom browser if they had run 2.3.1-1. +This can be removed after lenny is released. +diff -Nur pidgin-2.4.0/pidgin/gtkprefs.c pidgin-2.4.0.new/pidgin/gtkprefs.c +--- pidgin-2.4.0/pidgin/gtkprefs.c 2008-02-29 07:09:29.000000000 -0500 ++++ pidgin-2.4.0.new/pidgin/gtkprefs.c 2008-03-28 20:02:37.000000000 -0400 +@@ -2246,4 +2246,12 @@ + PIDGIN_PREFS_ROOT "/conversations/im/x"); + purple_prefs_rename(PIDGIN_PREFS_ROOT "/conversations/y", + PIDGIN_PREFS_ROOT "/conversations/im/y"); ++ ++ if (purple_prefs_exists(PIDGIN_PREFS_ROOT "/browsers/command") && ++ purple_prefs_get_string(PIDGIN_PREFS_ROOT "/browsers/command")) ++ { ++ purple_prefs_remove(PIDGIN_PREFS_ROOT "/browsers/command"); ++ purple_prefs_add_path(PIDGIN_PREFS_ROOT "/browsers/command", ++ "sensible-browser"); ++ } + } --- pidgin-2.4.1.orig/debian/patches/05_default_to_irc_ubuntu_com.patch +++ pidgin-2.4.1/debian/patches/05_default_to_irc_ubuntu_com.patch @@ -0,0 +1,11 @@ +--- pidgin-2.0.0/libpurple/protocols/irc/irc.h 2007-04-26 05:35:54.000000000 +0000 ++++ pidgin-2.0.0new/libpurple/protocols/irc/irc.h 2007-05-04 11:18:31.959668369 +0000 +@@ -30,7 +30,7 @@ + #include "roomlist.h" + #include "sslconn.h" + +-#define IRC_DEFAULT_SERVER "irc.freenode.net" ++#define IRC_DEFAULT_SERVER "irc.ubuntu.com" + #define IRC_DEFAULT_PORT 6667 + #define IRC_DEFAULT_SSL_PORT 994 + --- pidgin-2.4.1.orig/debian/patches/81_security_CVE-2009-1373.patch +++ pidgin-2.4.1/debian/patches/81_security_CVE-2009-1373.patch @@ -0,0 +1,43 @@ +# +# Description: fix denial of service or possible code execution in XMPP +# file transfer +# Patch: http://developer.pidgin.im/viewmtn/revision/info/8331e31aeb0f14ac9b94a06bea4353bd9a01ba5a +# +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/jabber/si.c pidgin-2.4.1.new/libpurple/protocols/jabber/si.c +--- pidgin-2.4.1/libpurple/protocols/jabber/si.c 2008-03-31 19:21:24.000000000 +0200 ++++ pidgin-2.4.1.new/libpurple/protocols/jabber/si.c 2009-05-25 17:42:06.000000000 +0200 +@@ -347,7 +347,7 @@ + PurpleXfer *xfer = data; + JabberSIXfer *jsx = xfer->data; + int i; +- char buffer[256]; ++ char buffer[42]; /* 40 for DST.ADDR + 2 bytes for port number*/ + int len; + char *dstaddr, *p; + unsigned char hashval[20]; +@@ -372,7 +372,7 @@ + jsx->rxlen += len; + return; + } else if(jsx->rxqueue[0] != 0x05 || jsx->rxqueue[1] != 0x01 || +- jsx->rxqueue[3] != 0x03) { ++ jsx->rxqueue[3] != 0x03 || jsx->rxqueue[4] != 40) { + purple_debug_info("jabber", "invalid socks5 stuff\n"); + purple_input_remove(xfer->watcher); + xfer->watcher = 0; +@@ -414,7 +414,7 @@ + for(i=0; i<20; i++, p+=2) + snprintf(p, 3, "%02x", hashval[i]); + +- if(jsx->rxqueue[4] != 40 || strncmp(dstaddr, jsx->rxqueue+5, 40) || ++ if(strncmp(dstaddr, jsx->rxqueue + 5, 40) || + jsx->rxqueue[45] != 0x00 || jsx->rxqueue[46] != 0x00) { + purple_debug_error("jabber", "someone connected with the wrong info!\n"); + close(source); +@@ -480,6 +480,7 @@ + jabber_si_xfer_bytestreams_send_read_again_cb, xfer); + g_free(jsx->rxqueue); + jsx->rxqueue = NULL; ++ jsx->rxlen = 0; + } else { + close(source); + purple_xfer_cancel_remote(xfer); --- pidgin-2.4.1.orig/debian/patches/16_yahoo_icon_crash.patch +++ pidgin-2.4.1/debian/patches/16_yahoo_icon_crash.patch @@ -0,0 +1,37 @@ +--- pidgin.orig/libpurple/protocols/yahoo/yahoo_picture.c 2006-12-12 20:59:01.000000000 -0500 ++++ pidgin/libpurple/protocols/yahoo/yahoo_picture.c 2006-12-12 21:00:28.000000000 -0500 +@@ -130,9 +130,6 @@ + if (url_data != NULL) { + yd = gc->proto_data; + yd->url_datas = g_slist_prepend(yd->url_datas, url_data); +- } else { +- g_free(data->who); +- g_free(data); + } + } else if (who && send_icon_info) { + yahoo_send_picture_info(gc, who); +--- pidgin.orig/libpurple/protocols/yahoo/yahoo_profile.c 2006-12-12 20:59:01.000000000 -0500 ++++ pidgin/libpurple/protocols/yahoo/yahoo_profile.c 2006-12-12 21:02:13.000000000 -0500 +@@ -928,11 +928,6 @@ + FALSE, yahoo_got_photo, info2_data); + if (url_data != NULL) + yd->url_datas = g_slist_prepend(yd->url_datas, url_data); +- else { +- g_free(info2_data->info_data->name); +- g_free(info2_data->info_data); +- g_free(info2_data); +- } + } else { + /* Emulate a callback */ + yahoo_got_photo(NULL, info2_data, NULL, 0, NULL); +@@ -1272,10 +1267,6 @@ + url_data = gaim_util_fetch_url(url, TRUE, NULL, FALSE, yahoo_got_info, data); + if (url_data != NULL) + yd->url_datas = g_slist_prepend(yd->url_datas, url_data); +- else { +- g_free(data->name); +- g_free(data); +- } + + g_free(url); + } --- pidgin-2.4.1.orig/debian/patches/86_yahoo_protocol_fix.patch +++ pidgin-2.4.1/debian/patches/86_yahoo_protocol_fix.patch @@ -0,0 +1,3270 @@ +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/yahoo/Makefile.am pidgin-2.4.1.new/libpurple/protocols/yahoo/Makefile.am +--- pidgin-2.4.1/libpurple/protocols/yahoo/Makefile.am 2008-03-31 18:21:24.000000000 +0100 ++++ pidgin-2.4.1.new/libpurple/protocols/yahoo/Makefile.am 2009-10-30 14:58:14.092719116 +0000 +@@ -11,10 +11,6 @@ + yahoochat.c \ + yahoo_aliases.c \ + yahoo_aliases.h \ +- yahoo_auth.c \ +- yahoo_auth.h \ +- yahoo_crypt.h \ +- yahoo_crypt.c \ + yahoo_doodle.h \ + yahoo_doodle.c \ + yahoo_filexfer.h \ +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/yahoo/Makefile.in pidgin-2.4.1.new/libpurple/protocols/yahoo/Makefile.in +--- pidgin-2.4.1/libpurple/protocols/yahoo/Makefile.in 2008-03-31 18:22:11.000000000 +0100 ++++ pidgin-2.4.1.new/libpurple/protocols/yahoo/Makefile.in 2009-10-30 14:58:14.092719116 +0000 +@@ -49,16 +49,13 @@ + libyahoo_a_AR = $(AR) $(ARFLAGS) + libyahoo_a_LIBADD = + am__libyahoo_a_SOURCES_DIST = util.c yahoo.c yahoo.h yahoochat.h \ +- yahoochat.c yahoo_aliases.c yahoo_aliases.h yahoo_auth.c \ +- yahoo_auth.h yahoo_crypt.h yahoo_crypt.c yahoo_doodle.h \ ++ yahoochat.c yahoo_aliases.c yahoo_aliases.h yahoo_doodle.h \ + yahoo_doodle.c yahoo_filexfer.h yahoo_filexfer.c \ + yahoo_friend.h yahoo_friend.c yahoo_packet.h yahoo_packet.c \ + yahoo_picture.c yahoo_picture.h yahoo_profile.c ycht.c ycht.h + am__objects_1 = libyahoo_a-util.$(OBJEXT) libyahoo_a-yahoo.$(OBJEXT) \ + libyahoo_a-yahoochat.$(OBJEXT) \ + libyahoo_a-yahoo_aliases.$(OBJEXT) \ +- libyahoo_a-yahoo_auth.$(OBJEXT) \ +- libyahoo_a-yahoo_crypt.$(OBJEXT) \ + libyahoo_a-yahoo_doodle.$(OBJEXT) \ + libyahoo_a-yahoo_filexfer.$(OBJEXT) \ + libyahoo_a-yahoo_friend.$(OBJEXT) \ +@@ -79,15 +76,14 @@ + am__DEPENDENCIES_1 = + @STATIC_YAHOO_FALSE@libyahoo_la_DEPENDENCIES = $(am__DEPENDENCIES_1) + am__libyahoo_la_SOURCES_DIST = util.c yahoo.c yahoo.h yahoochat.h \ +- yahoochat.c yahoo_aliases.c yahoo_aliases.h yahoo_auth.c \ +- yahoo_auth.h yahoo_crypt.h yahoo_crypt.c yahoo_doodle.h \ ++ yahoochat.c yahoo_aliases.c yahoo_aliases.h yahoo_doodle.h \ + yahoo_doodle.c yahoo_filexfer.h yahoo_filexfer.c \ + yahoo_friend.h yahoo_friend.c yahoo_packet.h yahoo_packet.c \ + yahoo_picture.c yahoo_picture.h yahoo_profile.c ycht.c ycht.h + am__objects_2 = util.lo yahoo.lo yahoochat.lo yahoo_aliases.lo \ +- yahoo_auth.lo yahoo_crypt.lo yahoo_doodle.lo yahoo_filexfer.lo \ +- yahoo_friend.lo yahoo_packet.lo yahoo_picture.lo \ +- yahoo_profile.lo ycht.lo ++ yahoo_doodle.lo yahoo_filexfer.lo yahoo_friend.lo \ ++ yahoo_packet.lo yahoo_picture.lo yahoo_profile.lo \ ++ ycht.lo + @STATIC_YAHOO_FALSE@am_libyahoo_la_OBJECTS = $(am__objects_2) + libyahoo_la_OBJECTS = $(am_libyahoo_la_OBJECTS) + libyahoo_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ +@@ -378,10 +374,6 @@ + yahoochat.c \ + yahoo_aliases.c \ + yahoo_aliases.h \ +- yahoo_auth.c \ +- yahoo_auth.h \ +- yahoo_crypt.h \ +- yahoo_crypt.c \ + yahoo_doodle.h \ + yahoo_doodle.c \ + yahoo_filexfer.h \ +@@ -491,8 +483,6 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libyahoo_a-util.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libyahoo_a-yahoo.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libyahoo_a-yahoo_aliases.Po@am__quote@ +-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libyahoo_a-yahoo_auth.Po@am__quote@ +-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libyahoo_a-yahoo_crypt.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libyahoo_a-yahoo_doodle.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libyahoo_a-yahoo_filexfer.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libyahoo_a-yahoo_friend.Po@am__quote@ +@@ -504,8 +494,6 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yahoo.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yahoo_aliases.Plo@am__quote@ +-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yahoo_auth.Plo@am__quote@ +-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yahoo_crypt.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yahoo_doodle.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yahoo_filexfer.Plo@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yahoo_friend.Plo@am__quote@ +@@ -592,34 +580,6 @@ + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libyahoo_a_CFLAGS) $(CFLAGS) -c -o libyahoo_a-yahoo_aliases.obj `if test -f 'yahoo_aliases.c'; then $(CYGPATH_W) 'yahoo_aliases.c'; else $(CYGPATH_W) '$(srcdir)/yahoo_aliases.c'; fi` + +-libyahoo_a-yahoo_auth.o: yahoo_auth.c +-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libyahoo_a_CFLAGS) $(CFLAGS) -MT libyahoo_a-yahoo_auth.o -MD -MP -MF $(DEPDIR)/libyahoo_a-yahoo_auth.Tpo -c -o libyahoo_a-yahoo_auth.o `test -f 'yahoo_auth.c' || echo '$(srcdir)/'`yahoo_auth.c +-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libyahoo_a-yahoo_auth.Tpo $(DEPDIR)/libyahoo_a-yahoo_auth.Po +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='yahoo_auth.c' object='libyahoo_a-yahoo_auth.o' libtool=no @AMDEPBACKSLASH@ +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libyahoo_a_CFLAGS) $(CFLAGS) -c -o libyahoo_a-yahoo_auth.o `test -f 'yahoo_auth.c' || echo '$(srcdir)/'`yahoo_auth.c +- +-libyahoo_a-yahoo_auth.obj: yahoo_auth.c +-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libyahoo_a_CFLAGS) $(CFLAGS) -MT libyahoo_a-yahoo_auth.obj -MD -MP -MF $(DEPDIR)/libyahoo_a-yahoo_auth.Tpo -c -o libyahoo_a-yahoo_auth.obj `if test -f 'yahoo_auth.c'; then $(CYGPATH_W) 'yahoo_auth.c'; else $(CYGPATH_W) '$(srcdir)/yahoo_auth.c'; fi` +-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libyahoo_a-yahoo_auth.Tpo $(DEPDIR)/libyahoo_a-yahoo_auth.Po +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='yahoo_auth.c' object='libyahoo_a-yahoo_auth.obj' libtool=no @AMDEPBACKSLASH@ +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libyahoo_a_CFLAGS) $(CFLAGS) -c -o libyahoo_a-yahoo_auth.obj `if test -f 'yahoo_auth.c'; then $(CYGPATH_W) 'yahoo_auth.c'; else $(CYGPATH_W) '$(srcdir)/yahoo_auth.c'; fi` +- +-libyahoo_a-yahoo_crypt.o: yahoo_crypt.c +-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libyahoo_a_CFLAGS) $(CFLAGS) -MT libyahoo_a-yahoo_crypt.o -MD -MP -MF $(DEPDIR)/libyahoo_a-yahoo_crypt.Tpo -c -o libyahoo_a-yahoo_crypt.o `test -f 'yahoo_crypt.c' || echo '$(srcdir)/'`yahoo_crypt.c +-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libyahoo_a-yahoo_crypt.Tpo $(DEPDIR)/libyahoo_a-yahoo_crypt.Po +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='yahoo_crypt.c' object='libyahoo_a-yahoo_crypt.o' libtool=no @AMDEPBACKSLASH@ +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libyahoo_a_CFLAGS) $(CFLAGS) -c -o libyahoo_a-yahoo_crypt.o `test -f 'yahoo_crypt.c' || echo '$(srcdir)/'`yahoo_crypt.c +- +-libyahoo_a-yahoo_crypt.obj: yahoo_crypt.c +-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libyahoo_a_CFLAGS) $(CFLAGS) -MT libyahoo_a-yahoo_crypt.obj -MD -MP -MF $(DEPDIR)/libyahoo_a-yahoo_crypt.Tpo -c -o libyahoo_a-yahoo_crypt.obj `if test -f 'yahoo_crypt.c'; then $(CYGPATH_W) 'yahoo_crypt.c'; else $(CYGPATH_W) '$(srcdir)/yahoo_crypt.c'; fi` +-@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libyahoo_a-yahoo_crypt.Tpo $(DEPDIR)/libyahoo_a-yahoo_crypt.Po +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='yahoo_crypt.c' object='libyahoo_a-yahoo_crypt.obj' libtool=no @AMDEPBACKSLASH@ +-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libyahoo_a_CFLAGS) $(CFLAGS) -c -o libyahoo_a-yahoo_crypt.obj `if test -f 'yahoo_crypt.c'; then $(CYGPATH_W) 'yahoo_crypt.c'; else $(CYGPATH_W) '$(srcdir)/yahoo_crypt.c'; fi` +- + libyahoo_a-yahoo_doodle.o: yahoo_doodle.c + @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libyahoo_a_CFLAGS) $(CFLAGS) -MT libyahoo_a-yahoo_doodle.o -MD -MP -MF $(DEPDIR)/libyahoo_a-yahoo_doodle.Tpo -c -o libyahoo_a-yahoo_doodle.o `test -f 'yahoo_doodle.c' || echo '$(srcdir)/'`yahoo_doodle.c + @am__fastdepCC_TRUE@ mv -f $(DEPDIR)/libyahoo_a-yahoo_doodle.Tpo $(DEPDIR)/libyahoo_a-yahoo_doodle.Po +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/yahoo/Makefile.mingw pidgin-2.4.1.new/libpurple/protocols/yahoo/Makefile.mingw +--- pidgin-2.4.1/libpurple/protocols/yahoo/Makefile.mingw 2008-03-31 18:21:24.000000000 +0100 ++++ pidgin-2.4.1.new/libpurple/protocols/yahoo/Makefile.mingw 2009-10-30 14:58:14.092719116 +0000 +@@ -41,8 +41,6 @@ + yahoo.c \ + yahoochat.c \ + yahoo_aliases.c \ +- yahoo_auth.c \ +- yahoo_crypt.c \ + yahoo_doodle.c \ + yahoo_filexfer.c \ + yahoo_friend.c \ +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/yahoo/util.c pidgin-2.4.1.new/libpurple/protocols/yahoo/util.c +--- pidgin-2.4.1/libpurple/protocols/yahoo/util.c 2008-03-31 18:21:24.000000000 +0100 ++++ pidgin-2.4.1.new/libpurple/protocols/yahoo/util.c 2009-10-30 14:58:14.092719116 +0000 +@@ -24,6 +24,8 @@ + #include "config.h" + #endif + ++#include "proxy.h" ++#include "sslconn.h" + #include "debug.h" + #include "internal.h" + #include "prpl.h" +@@ -31,6 +33,699 @@ + #include "yahoo.h" + + #include ++ ++struct _YahooPurpleUtilFetchUrlData ++{ ++ YahooPurpleUtilFetchUrlCallback callback; ++ void *user_data; ++ ++ struct ++ { ++ char *user; ++ char *passwd; ++ char *address; ++ int port; ++ char *page; ++ ++ } website; ++ ++ char *url; ++ int num_times_redirected; ++ gboolean full; ++ char *user_agent; ++ gboolean http11; ++ char *request; ++ gsize request_written; ++ gboolean include_headers; ++ ++ gboolean is_ssl; ++ PurpleSslConnection *ssl_connection; ++ PurpleProxyConnectData *connect_data; ++ int fd; ++ guint inpa; ++ ++ gboolean got_headers; ++ gboolean has_explicit_data_len; ++ char *webdata; ++ unsigned long len; ++ unsigned long data_len; ++ gssize max_len; ++}; ++ ++static const char * ++yahoo_purple_strcasestr(const char *haystack, const char *needle) ++{ ++ size_t hlen, nlen; ++ const char *tmp, *ret; ++ ++ g_return_val_if_fail(haystack != NULL, NULL); ++ g_return_val_if_fail(needle != NULL, NULL); ++ ++ hlen = strlen(haystack); ++ nlen = strlen(needle); ++ tmp = haystack, ++ ret = NULL; ++ ++ g_return_val_if_fail(hlen > 0, NULL); ++ g_return_val_if_fail(nlen > 0, NULL); ++ ++ while (*tmp && !ret) { ++ if (!g_ascii_strncasecmp(needle, tmp, nlen)) ++ ret = tmp; ++ else ++ tmp++; ++ } ++ ++ return ret; ++} ++ ++static gboolean ++yahoo_purple_url_parse(const char *url, char **ret_host, int *ret_port, ++ char **ret_path, char **ret_user, char **ret_passwd) ++{ ++ gboolean is_https = FALSE; ++ char scan_info[255]; ++ char port_str[6]; ++ int f; ++ const char *at, *slash; ++ const char *turl; ++ char host[256], path[256], user[256], passwd[256]; ++ int port = 0; ++ /* hyphen at end includes it in control set */ ++ static const char addr_ctrl[] = "A-Za-z0-9.-"; ++ static const char port_ctrl[] = "0-9"; ++ static const char page_ctrl[] = "A-Za-z0-9.~_/:*!@&%%?=+^-"; ++ static const char user_ctrl[] = "A-Za-z0-9.~_/*!&%%?=+^-"; ++ static const char passwd_ctrl[] = "A-Za-z0-9.~_/*!&%%?=+^-"; ++ ++ g_return_val_if_fail(url != NULL, FALSE); ++ ++ if ((turl = yahoo_purple_strcasestr(url, "http://")) != NULL) ++ { ++ turl += 7; ++ url = turl; ++ } ++ else if ((turl = yahoo_purple_strcasestr(url, "https://")) != NULL) ++ { ++ is_https = TRUE; ++ turl += 8; ++ url = turl; ++ } ++ ++ /* parse out authentication information if supplied */ ++ /* Only care about @ char BEFORE the first / */ ++ at = strchr(url, '@'); ++ slash = strchr(url, '/'); ++ if ((at != NULL) && ++ (((slash != NULL) && (strlen(at) > strlen(slash))) || ++ (slash == NULL))) { ++ g_snprintf(scan_info, sizeof(scan_info), ++ "%%255[%s]:%%255[%s]^@", user_ctrl, passwd_ctrl); ++ f = sscanf(url, scan_info, user, passwd); ++ ++ if (f ==1 ) { ++ /* No passwd, possibly just username supplied */ ++ g_snprintf(scan_info, sizeof(scan_info), ++ "%%255[%s]^@", user_ctrl); ++ f = sscanf(url, scan_info, user); ++ *passwd = '\0'; ++ } ++ ++ url = at+1; /* move pointer after the @ char */ ++ } else { ++ *user = '\0'; ++ *passwd = '\0'; ++ } ++ ++ g_snprintf(scan_info, sizeof(scan_info), ++ "%%255[%s]:%%5[%s]/%%255[%s]", addr_ctrl, port_ctrl, page_ctrl); ++ ++ f = sscanf(url, scan_info, host, port_str, path); ++ ++ if (f == 1) ++ { ++ g_snprintf(scan_info, sizeof(scan_info), ++ "%%255[%s]/%%255[%s]", ++ addr_ctrl, page_ctrl); ++ f = sscanf(url, scan_info, host, path); ++ /* Use the default port */ ++ if (is_https) ++ g_snprintf(port_str, sizeof(port_str), "443"); ++ else ++ g_snprintf(port_str, sizeof(port_str), "80"); ++ } ++ ++ if (f == 0) ++ *host = '\0'; ++ ++ if (f <= 1) ++ *path = '\0'; ++ ++ sscanf(port_str, "%d", &port); ++ ++ if (ret_host != NULL) *ret_host = g_strdup(host); ++ if (ret_port != NULL) *ret_port = port; ++ if (ret_path != NULL) *ret_path = g_strdup(path); ++ if (ret_user != NULL) *ret_user = g_strdup(user); ++ if (ret_passwd != NULL) *ret_passwd = g_strdup(passwd); ++ ++ return ((*host != '\0') ? TRUE : FALSE); ++} ++ ++static void ++yahoo_purple_util_fetch_url_cancel(YahooPurpleUtilFetchUrlData *gfud) ++{ ++ if (gfud->ssl_connection != NULL) ++ purple_ssl_close(gfud->ssl_connection); ++ ++ if (gfud->connect_data != NULL) ++ purple_proxy_connect_cancel(gfud->connect_data); ++ ++ if (gfud->inpa > 0) ++ purple_input_remove(gfud->inpa); ++ ++ if (gfud->fd >= 0) ++ close(gfud->fd); ++ ++ g_free(gfud->website.user); ++ g_free(gfud->website.passwd); ++ g_free(gfud->website.address); ++ g_free(gfud->website.page); ++ g_free(gfud->url); ++ g_free(gfud->user_agent); ++ g_free(gfud->request); ++ g_free(gfud->webdata); ++ ++ g_free(gfud); ++} ++ ++/** ++ * The arguments to this function are similar to printf. ++ */ ++static void ++purple_util_fetch_url_error(YahooPurpleUtilFetchUrlData *gfud, const char *format, ...) ++{ ++ gchar *error_message; ++ va_list args; ++ ++ va_start(args, format); ++ error_message = g_strdup_vprintf(format, args); ++ va_end(args); ++ ++ gfud->callback(gfud, gfud->user_data, NULL, 0, error_message); ++ g_free(error_message); ++ yahoo_purple_util_fetch_url_cancel(gfud); ++} ++ ++static void url_fetch_connect_cb(gpointer url_data, gint source, const gchar *error_message); ++static void ssl_url_fetch_connect_cb(gpointer data, PurpleSslConnection *ssl_connection, PurpleInputCondition cond); ++static void ssl_url_fetch_error_cb(PurpleSslConnection *ssl_connection, PurpleSslErrorType error, gpointer data); ++ ++static gboolean ++parse_redirect(const char *data, size_t data_len, ++ YahooPurpleUtilFetchUrlData *gfud) ++{ ++ gchar *s; ++ gchar *new_url, *temp_url, *end; ++ gboolean full; ++ int len; ++ ++ if ((s = g_strstr_len(data, data_len, "\nLocation: ")) == NULL) ++ /* We're not being redirected */ ++ return FALSE; ++ ++ s += strlen("Location: "); ++ end = strchr(s, '\r'); ++ ++ /* Just in case :) */ ++ if (end == NULL) ++ end = strchr(s, '\n'); ++ ++ if (end == NULL) ++ return FALSE; ++ ++ len = end - s; ++ ++ new_url = g_malloc(len + 1); ++ strncpy(new_url, s, len); ++ new_url[len] = '\0'; ++ ++ full = gfud->full; ++ ++ if (*new_url == '/' || g_strstr_len(new_url, len, "://") == NULL) ++ { ++ temp_url = new_url; ++ ++ new_url = g_strdup_printf("%s:%d%s", gfud->website.address, ++ gfud->website.port, temp_url); ++ ++ g_free(temp_url); ++ ++ full = FALSE; ++ } ++ ++ purple_debug_info("util", "Redirecting to %s\n", new_url); ++ ++ gfud->num_times_redirected++; ++ if (gfud->num_times_redirected >= 5) ++ { ++ purple_util_fetch_url_error(gfud, ++ _("Could not open %s: Redirected too many times"), ++ gfud->url); ++ return TRUE; ++ } ++ ++ /* ++ * Try again, with this new location. This code is somewhat ++ * ugly, but we need to reuse the gfud because whoever called ++ * us is holding a reference to it. ++ */ ++ g_free(gfud->url); ++ gfud->url = new_url; ++ gfud->full = full; ++ g_free(gfud->request); ++ gfud->request = NULL; ++ ++ if (gfud->is_ssl) { ++ gfud->is_ssl = FALSE; ++ purple_ssl_close(gfud->ssl_connection); ++ gfud->ssl_connection = NULL; ++ } else { ++ purple_input_remove(gfud->inpa); ++ gfud->inpa = 0; ++ close(gfud->fd); ++ gfud->fd = -1; ++ } ++ gfud->request_written = 0; ++ gfud->len = 0; ++ gfud->data_len = 0; ++ ++ g_free(gfud->website.user); ++ g_free(gfud->website.passwd); ++ g_free(gfud->website.address); ++ g_free(gfud->website.page); ++ yahoo_purple_url_parse(new_url, &gfud->website.address, &gfud->website.port, ++ &gfud->website.page, &gfud->website.user, &gfud->website.passwd); ++ ++ if (yahoo_purple_strcasestr(new_url, "https://") != NULL) { ++ gfud->is_ssl = TRUE; ++ gfud->ssl_connection = purple_ssl_connect(NULL, ++ gfud->website.address, gfud->website.port, ++ ssl_url_fetch_connect_cb, ssl_url_fetch_error_cb, gfud); ++ } else { ++ gfud->connect_data = purple_proxy_connect(NULL, NULL, ++ gfud->website.address, gfud->website.port, ++ url_fetch_connect_cb, gfud); ++ } ++ ++ if (gfud->ssl_connection == NULL && gfud->connect_data == NULL) ++ { ++ purple_util_fetch_url_error(gfud, _("Unable to connect to %s"), ++ gfud->website.address); ++ } ++ ++ return TRUE; ++} ++ ++static size_t ++parse_content_len(const char *data, size_t data_len) ++{ ++ size_t content_len = 0; ++ const char *p = NULL; ++ ++ /* This is still technically wrong, since headers are case-insensitive ++ * [RFC 2616, section 4.2], though this ought to catch the normal case. ++ * Note: data is _not_ nul-terminated. ++ */ ++ if(data_len > 16) { ++ p = (strncmp(data, "Content-Length: ", 16) == 0) ? data : NULL; ++ if(!p) ++ p = (strncmp(data, "CONTENT-LENGTH: ", 16) == 0) ++ ? data : NULL; ++ if(!p) { ++ p = g_strstr_len(data, data_len, "\nContent-Length: "); ++ if (p) ++ p++; ++ } ++ if(!p) { ++ p = g_strstr_len(data, data_len, "\nCONTENT-LENGTH: "); ++ if (p) ++ p++; ++ } ++ ++ if(p) ++ p += 16; ++ } ++ ++ /* If we can find a Content-Length header at all, try to sscanf it. ++ * Response headers should end with at least \r\n, so sscanf is safe, ++ * if we make sure that there is indeed a \n in our header. ++ */ ++ if (p && g_strstr_len(p, data_len - (p - data), "\n")) { ++ sscanf(p, "%" G_GSIZE_FORMAT, &content_len); ++ purple_debug_misc("util", "parsed %" G_GSIZE_FORMAT "\n", content_len); ++ } ++ ++ return content_len; ++} ++ ++static void ++url_fetch_recv_cb(gpointer url_data, gint source, PurpleInputCondition cond) ++{ ++ YahooPurpleUtilFetchUrlData *gfud = url_data; ++ int len; ++ char buf[4096]; ++ char *data_cursor; ++ gboolean got_eof = FALSE; ++ ++ /* ++ * Read data in a loop until we can't read any more! This is a ++ * little confusing because we read using a different function ++ * depending on whether the socket is ssl or cleartext. ++ */ ++ while ((gfud->is_ssl && ((len = purple_ssl_read(gfud->ssl_connection, buf, sizeof(buf))) > 0)) || ++ (!gfud->is_ssl && (len = read(source, buf, sizeof(buf))) > 0)) ++ { ++ if(gfud->max_len != -1 && (gfud->len + len) > gfud->max_len) { ++ purple_util_fetch_url_error(gfud, _("Error reading from %s: response too long (%d bytes limit)"), ++ gfud->website.address, gfud->max_len); ++ return; ++ } ++ ++ /* If we've filled up our buffer, make it bigger */ ++ if((gfud->len + len) >= gfud->data_len) { ++ while((gfud->len + len) >= gfud->data_len) ++ gfud->data_len += sizeof(buf); ++ ++ gfud->webdata = g_realloc(gfud->webdata, gfud->data_len); ++ } ++ ++ data_cursor = gfud->webdata + gfud->len; ++ ++ gfud->len += len; ++ ++ memcpy(data_cursor, buf, len); ++ ++ gfud->webdata[gfud->len] = '\0'; ++ ++ if(!gfud->got_headers) { ++ char *tmp; ++ ++ /* See if we've reached the end of the headers yet */ ++ if((tmp = strstr(gfud->webdata, "\r\n\r\n"))) { ++ char * new_data; ++ guint header_len = (tmp + 4 - gfud->webdata); ++ size_t content_len; ++ ++ purple_debug_misc("util", "Response headers: '%.*s'\n", ++ header_len, gfud->webdata); ++ ++ /* See if we can find a redirect. */ ++ if(parse_redirect(gfud->webdata, header_len, gfud)) ++ return; ++ ++ gfud->got_headers = TRUE; ++ ++ /* No redirect. See if we can find a content length. */ ++ content_len = parse_content_len(gfud->webdata, header_len); ++ ++ if(content_len == 0) { ++ /* We'll stick with an initial 8192 */ ++ content_len = 8192; ++ } else { ++ gfud->has_explicit_data_len = TRUE; ++ } ++ ++ ++ /* If we're returning the headers too, we don't need to clean them out */ ++ if(gfud->include_headers) { ++ gfud->data_len = content_len + header_len; ++ gfud->webdata = g_realloc(gfud->webdata, gfud->data_len); ++ } else { ++ size_t body_len = 0; ++ ++ if(gfud->len > (header_len + 1)) ++ body_len = (gfud->len - header_len); ++ ++ content_len = MAX(content_len, body_len); ++ ++ new_data = g_try_malloc(content_len); ++ if(new_data == NULL) { ++ purple_debug_error("util", ++ "Failed to allocate %" G_GSIZE_FORMAT " bytes: %s\n", ++ content_len, g_strerror(errno)); ++ purple_util_fetch_url_error(gfud, ++ _("Unable to allocate enough memory to hold " ++ "the contents from %s. The web server may " ++ "be trying something malicious."), ++ gfud->website.address); ++ ++ return; ++ } ++ ++ /* We may have read part of the body when reading the headers, don't lose it */ ++ if(body_len > 0) { ++ tmp += 4; ++ memcpy(new_data, tmp, body_len); ++ } ++ ++ /* Out with the old... */ ++ g_free(gfud->webdata); ++ ++ /* In with the new. */ ++ gfud->len = body_len; ++ gfud->data_len = content_len; ++ gfud->webdata = new_data; ++ } ++ } ++ } ++ ++ if(gfud->has_explicit_data_len && gfud->len >= gfud->data_len) { ++ got_eof = TRUE; ++ break; ++ } ++ } ++ ++ if(len < 0) { ++ if(errno == EAGAIN) { ++ return; ++ } else { ++ purple_util_fetch_url_error(gfud, _("Error reading from %s: %s"), ++ gfud->website.address, g_strerror(errno)); ++ return; ++ } ++ } ++ ++ if((len == 0) || got_eof) { ++ gfud->webdata = g_realloc(gfud->webdata, gfud->len + 1); ++ gfud->webdata[gfud->len] = '\0'; ++ ++ gfud->callback(gfud, gfud->user_data, gfud->webdata, gfud->len, NULL); ++ yahoo_purple_util_fetch_url_cancel(gfud); ++ } ++} ++ ++static void ssl_url_fetch_recv_cb(gpointer data, PurpleSslConnection *ssl_connection, PurpleInputCondition cond) ++{ ++ url_fetch_recv_cb(data, -1, cond); ++} ++ ++/* ++ * This function is called when the socket is available to be written ++ * to. ++ * ++ * @param source The file descriptor that can be written to. This can ++ * be an http connection or it can be the SSL connection of an ++ * https request. So be careful what you use it for! If it's ++ * an https request then use purple_ssl_write() instead of ++ * writing to it directly. ++ */ ++ ++static void ++url_fetch_send_cb(gpointer data, gint source, PurpleInputCondition cond) ++{ ++ YahooPurpleUtilFetchUrlData *gfud; ++ int len, total_len; ++ ++ gfud = data; ++ ++ if (gfud->request == NULL) ++ { ++ /* Host header is not forbidden in HTTP/1.0 requests, and HTTP/1.1 ++ * clients must know how to handle the "chunked" transfer encoding. ++ * Purple doesn't know how to handle "chunked", so should always send ++ * the Host header regardless, to get around some observed problems ++ */ ++ if (gfud->user_agent) { ++ gfud->request = g_strdup_printf( ++ "GET %s%s HTTP/%s\r\n" ++ "Connection: close\r\n" ++ "User-Agent: %s\r\n" ++ "Accept: */*\r\n" ++ "Host: %s\r\n\r\n", ++ (gfud->full ? "" : "/"), ++ (gfud->full ? (gfud->url ? gfud->url : "") : (gfud->website.page ? gfud->website.page : "")), ++ (gfud->http11 ? "1.1" : "1.0"), ++ (gfud->user_agent ? gfud->user_agent : ""), ++ (gfud->website.address ? gfud->website.address : "")); ++ } else { ++ gfud->request = g_strdup_printf( ++ "GET %s%s HTTP/%s\r\n" ++ "Connection: close\r\n" ++ "Accept: */*\r\n" ++ "Host: %s\r\n\r\n", ++ (gfud->full ? "" : "/"), ++ (gfud->full ? (gfud->url ? gfud->url : "") : (gfud->website.page ? gfud->website.page : "")), ++ (gfud->http11 ? "1.1" : "1.0"), ++ (gfud->website.address ? gfud->website.address : "")); ++ } ++ } ++ ++ if(g_getenv("PURPLE_UNSAFE_DEBUG")) ++ purple_debug_misc("util", "Request: '%s'\n", gfud->request); ++ else ++ purple_debug_misc("util", "request constructed\n"); ++ ++ total_len = strlen(gfud->request); ++ ++ if (gfud->is_ssl) ++ len = purple_ssl_write(gfud->ssl_connection, gfud->request + gfud->request_written, ++ total_len - gfud->request_written); ++ else ++ len = write(gfud->fd, gfud->request + gfud->request_written, ++ total_len - gfud->request_written); ++ ++ if (len < 0 && errno == EAGAIN) ++ return; ++ else if (len < 0) { ++ purple_util_fetch_url_error(gfud, _("Error writing to %s: %s"), ++ gfud->website.address, g_strerror(errno)); ++ return; ++ } ++ gfud->request_written += len; ++ ++ if (gfud->request_written < total_len) ++ return; ++ ++ /* We're done writing our request, now start reading the response */ ++ if (gfud->is_ssl) { ++ purple_input_remove(gfud->inpa); ++ gfud->inpa = 0; ++ purple_ssl_input_add(gfud->ssl_connection, ssl_url_fetch_recv_cb, gfud); ++ } else { ++ purple_input_remove(gfud->inpa); ++ gfud->inpa = purple_input_add(gfud->fd, PURPLE_INPUT_READ, url_fetch_recv_cb, ++ gfud); ++ } ++} ++ ++static void ++url_fetch_connect_cb(gpointer url_data, gint source, const gchar *error_message) ++{ ++ YahooPurpleUtilFetchUrlData *gfud; ++ ++ gfud = url_data; ++ gfud->connect_data = NULL; ++ ++ if (source == -1) ++ { ++ purple_util_fetch_url_error(gfud, _("Unable to connect to %s: %s"), ++ (gfud->website.address ? gfud->website.address : ""), error_message); ++ return; ++ } ++ ++ gfud->fd = source; ++ ++ gfud->inpa = purple_input_add(source, PURPLE_INPUT_WRITE, ++ url_fetch_send_cb, gfud); ++ url_fetch_send_cb(gfud, source, PURPLE_INPUT_WRITE); ++} ++ ++static void ssl_url_fetch_connect_cb(gpointer data, PurpleSslConnection *ssl_connection, PurpleInputCondition cond) ++{ ++ YahooPurpleUtilFetchUrlData *gfud; ++ ++ gfud = data; ++ ++ gfud->inpa = purple_input_add(ssl_connection->fd, PURPLE_INPUT_WRITE, ++ url_fetch_send_cb, gfud); ++ url_fetch_send_cb(gfud, ssl_connection->fd, PURPLE_INPUT_WRITE); ++} ++ ++static void ssl_url_fetch_error_cb(PurpleSslConnection *ssl_connection, PurpleSslErrorType error, gpointer data) ++{ ++ YahooPurpleUtilFetchUrlData *gfud; ++ ++ gfud = data; ++ gfud->ssl_connection = NULL; ++ ++ purple_util_fetch_url_error(gfud, _("Unable to connect to %s: %s"), ++ (gfud->website.address ? gfud->website.address : ""), ++ purple_ssl_strerror(error)); ++} ++ ++YahooPurpleUtilFetchUrlData * ++purple_util_fetch_url_request_len_with_account(PurpleAccount *account, ++ const char *url, gboolean full, const char *user_agent, gboolean http11, ++ const char *request, gboolean include_headers, gssize max_len, ++ YahooPurpleUtilFetchUrlCallback callback, void *user_data) ++{ ++ YahooPurpleUtilFetchUrlData *gfud; ++ ++ g_return_val_if_fail(url != NULL, NULL); ++ g_return_val_if_fail(callback != NULL, NULL); ++ ++ if(g_getenv("PURPLE_UNSAFE_DEBUG")) ++ purple_debug_info("util", ++ "requested to fetch (%s), full=%d, user_agent=(%s), http11=%d\n", ++ url, full, user_agent?user_agent:"(null)", http11); ++ else ++ purple_debug_info("util", "requesting to fetch a URL\n"); ++ ++ gfud = g_new0(YahooPurpleUtilFetchUrlData, 1); ++ ++ gfud->callback = callback; ++ gfud->user_data = user_data; ++ gfud->url = g_strdup(url); ++ gfud->user_agent = g_strdup(user_agent); ++ gfud->http11 = http11; ++ gfud->full = full; ++ gfud->request = g_strdup(request); ++ gfud->include_headers = include_headers; ++ gfud->fd = -1; ++ gfud->max_len = max_len; ++ ++ yahoo_purple_url_parse(url, &gfud->website.address, &gfud->website.port, ++ &gfud->website.page, &gfud->website.user, &gfud->website.passwd); ++ ++ if (yahoo_purple_strcasestr(url, "https://") != NULL) { ++ if (!purple_ssl_is_supported()) { ++ purple_util_fetch_url_error(gfud, ++ _("Unable to connect to %s: Server requires TLS/SSL, but no TLS/SSL support was found."), ++ gfud->website.address); ++ return NULL; ++ } ++ ++ gfud->is_ssl = TRUE; ++ gfud->ssl_connection = purple_ssl_connect(account, ++ gfud->website.address, gfud->website.port, ++ ssl_url_fetch_connect_cb, ssl_url_fetch_error_cb, gfud); ++ } else { ++ gfud->connect_data = purple_proxy_connect(NULL, account, ++ gfud->website.address, gfud->website.port, ++ url_fetch_connect_cb, gfud); ++ } ++ ++ if (gfud->ssl_connection == NULL && gfud->connect_data == NULL) ++ { ++ purple_util_fetch_url_error(gfud, _("Unable to connect to %s"), ++ gfud->website.address); ++ return NULL; ++ } ++ ++ return gfud; ++} ++ + /* + * Returns cookies formatted as a null terminated string for the given connection. + * Must g_free return value. +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/yahoo/yahoo_aliases.c pidgin-2.4.1.new/libpurple/protocols/yahoo/yahoo_aliases.c +--- pidgin-2.4.1/libpurple/protocols/yahoo/yahoo_aliases.c 2008-03-31 18:21:24.000000000 +0100 ++++ pidgin-2.4.1.new/libpurple/protocols/yahoo/yahoo_aliases.c 2009-10-30 14:58:14.092719116 +0000 +@@ -56,7 +56,7 @@ + **************************************************************************/ + + static void +-yahoo_fetch_aliases_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data,const gchar *url_text, size_t len, const gchar *error_message) ++yahoo_fetch_aliases_cb(YahooPurpleUtilFetchUrlData *url_data, gpointer user_data,const gchar *url_text, size_t len, const gchar *error_message) + { + struct callback_data *cb = user_data; + PurpleConnection *gc = cb->gc; +@@ -147,7 +147,7 @@ + struct callback_data *cb; + const char *url; + char *request, *webpage, *webaddress; +- PurpleUtilFetchUrlData *url_data; ++ YahooPurpleUtilFetchUrlData *url_data; + + gboolean use_whole_url = FALSE; + +@@ -163,14 +163,16 @@ + url = yd->jp ? YAHOOJP_ALIAS_FETCH_URL : YAHOO_ALIAS_FETCH_URL; + purple_url_parse(url, &webaddress, NULL, &webpage, NULL, NULL); + request = g_strdup_printf("GET %s%s/%s HTTP/1.1\r\n" +- "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5)\r\n" ++ "User-Agent: " YAHOO_CLIENT_USERAGENT "\r\n" + "Cookie: T=%s; Y=%s\r\n" + "Host: %s\r\n" + "Cache-Control: no-cache\r\n\r\n", + use_whole_url ? "http://" : "", use_whole_url ? webaddress : "", webpage, yd->cookie_t,yd->cookie_y, webaddress); + + /* We have a URL and some header information, let's connect and get some aliases */ +- url_data = purple_util_fetch_url_request(url, use_whole_url, NULL, TRUE, request, FALSE, yahoo_fetch_aliases_cb, cb); ++ url_data = purple_util_fetch_url_request_len_with_account(purple_connection_get_account(gc), ++ url, use_whole_url, NULL, TRUE, request, FALSE, -1, ++ yahoo_fetch_aliases_cb, cb); + if (url_data != NULL) { + yd->url_datas = g_slist_prepend(yd->url_datas, url_data); + } +@@ -185,7 +187,7 @@ + **************************************************************************/ + + static void +-yahoo_update_alias_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data,const gchar *url_text, size_t len, const gchar *error_message) ++yahoo_update_alias_cb(YahooPurpleUtilFetchUrlData *url_data, gpointer user_data,const gchar *url_text, size_t len, const gchar *error_message) + { + xmlnode *node, *result; + struct callback_data *cb = user_data; +@@ -238,7 +240,7 @@ + int inttmp; + struct callback_data *cb; + PurpleBuddy *buddy; +- PurpleUtilFetchUrlData *url_data; ++ YahooPurpleUtilFetchUrlData *url_data; + gboolean use_whole_url = FALSE; + + /* use whole URL if using HTTP Proxy */ +@@ -287,7 +289,7 @@ + } + + request = g_strdup_printf("POST %s%s/%s HTTP/1.1\r\n" +- "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5)\r\n" ++ "User-Agent: " YAHOO_CLIENT_USERAGENT "\r\n" + "Cookie: T=%s; Y=%s\r\n" + "Host: %s\r\n" + "Content-Length: %" G_GSIZE_FORMAT "\r\n" +@@ -297,7 +299,9 @@ + strlen(content), content); + + /* We have a URL and some header information, let's connect and update the alias */ +- url_data = purple_util_fetch_url_request(url, use_whole_url, NULL, TRUE, request, FALSE, yahoo_update_alias_cb, cb); ++ url_data = purple_util_fetch_url_request_len_with_account( ++ purple_connection_get_account(gc), url, use_whole_url, NULL, TRUE, ++ request, FALSE, -1, yahoo_update_alias_cb, cb); + if (url_data != NULL) { + yd->url_datas = g_slist_prepend(yd->url_datas, url_data); + } +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/yahoo/yahoo_auth.c pidgin-2.4.1.new/libpurple/protocols/yahoo/yahoo_auth.c +--- pidgin-2.4.1/libpurple/protocols/yahoo/yahoo_auth.c 2008-03-31 18:21:24.000000000 +0100 ++++ pidgin-2.4.1.new/libpurple/protocols/yahoo/yahoo_auth.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,912 +0,0 @@ +-/* +- * yahoo_auth.c: Authentication routines. +- * +- * Written by Kevin Kurtz and Scott Werndorfer +- * +- * Copyright(c) 2003 Cerulean Studios +- * +- */ +- +-#include "internal.h" +- +-#include "yahoo.h" +-#include "yahoo_auth.h" +- +-/************* +- * Ugliness * +- *************/ +-static const auth_function_t main_function_list[5][96] = { +- { +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 }, +- { 0, 0x0, 0x0 } +- }, +- { +- { 2, 0x36056cd7, 0x4387 }, +- { 3, 0x538920, 0x0 }, +- { 3, 0x538a20, 0x0 }, +- { 4, 0x55f320, 0x0 }, +- { 3, 0x539320, 0x0 }, +- { 4, 0x55f340, 0x0 }, +- { 2, 0x4abb534d, 0x3769 }, +- { 1, 0x1d242da5, 0x0 }, +- { 2, 0x3c23132d, 0x339b }, +- { 1, 0x191265c, 0x0 }, +- { 1, 0x3db979db, 0x0 }, +- { 3, 0x539868, 0x0 }, +- { 1, 0x1a550e1e, 0x0 }, +- { 1, 0x2f140a2d, 0x0 }, +- { 2, 0x7c466a4b, 0x29bf }, +- { 1, 0x2d3f30d3, 0x0 }, +- { 2, 0x7e823b21, 0x6bb3 }, +- { 4, 0x55f360, 0x0 }, +- { 3, 0x5395a8, 0x0 }, +- { 4, 0x55f604, 0x0 }, +- { 3, 0x539ba8, 0x0 }, +- { 4, 0x5628c4, 0x0 }, +- { 3, 0x547818, 0x0 }, +- { 4, 0x5628e4, 0x0 }, +- { 3, 0x547978, 0x0 }, +- { 4, 0x5628a4, 0x0 }, +- { 2, 0x5b756ab9, 0x7e9b }, +- { 3, 0x539d48, 0x0 }, +- { 1, 0x1d1c4911, 0x0 }, +- { 3, 0x539f60, 0x0 }, +- { 3, 0x53a060, 0x0 }, +- { 1, 0x46bd7771, 0x0 }, +- { 1, 0x51ae2b42, 0x0 }, +- { 2, 0x2417591b, 0x177b }, +- { 2, 0x57f27c5f, 0x2433 }, +- { 3, 0x53a588, 0x0 }, +- { 3, 0x53a688, 0x0 }, +- { 1, 0x71422261, 0x0 }, +- { 4, 0x55f6a4, 0x0 }, +- { 2, 0x58e937f9, 0x1075 }, +- { 3, 0x53a7c8, 0x0 }, +- { 4, 0x55f6c4, 0x0 }, +- { 3, 0x53a8c8, 0x0 }, +- { 3, 0x53aa20, 0x0 }, +- { 2, 0xb4c3d13, 0x1597 }, +- { 4, 0x55f6e4, 0x0 }, +- { 1, 0xfe07d38, 0x0 }, +- { 2, 0x689b4017, 0x3cfb }, +- { 4, 0x562928, 0x0 }, +- { 3, 0x547b00, 0x0 }, +- { 1, 0x35413df3, 0x0 }, +- { 2, 0x5b611ab, 0x570b }, +- { 2, 0xda5334f, 0x3ac7 }, +- { 1, 0x47706008, 0x0 }, +- { 4, 0x55f744, 0x0 }, +- { 3, 0x547548, 0x0 }, +- { 4, 0x562884, 0x0 }, +- { 1, 0x57611b36, 0x0 }, +- { 2, 0x314c2cd1, 0x2b5b }, +- { 1, 0x1ef33946, 0x0 }, +- { 2, 0x28ea041f, 0x638f }, +- { 3, 0x53b1d0, 0x0 }, +- { 3, 0x53b2d0, 0x0 }, +- { 3, 0x53b418, 0x0 }, +- { 2, 0x511537cb, 0x7135 }, +- { 2, 0x1cf71007, 0x5e17 }, +- { 1, 0x583d4bcf, 0x0 }, +- { 3, 0x53b550, 0x0 }, +- { 1, 0x373e6856, 0x0 }, +- { 2, 0x4d595519, 0x1a7d }, +- { 3, 0x53b718, 0x0 }, +- { 3, 0x53b838, 0x0 }, +- { 1, 0xe2a36a7, 0x0 }, +- { 3, 0x53bc10, 0x0 }, +- { 3, 0x53bd10, 0x0 }, +- { 4, 0x55f784, 0x0 }, +- { 4, 0x55f7a4, 0x0 }, +- { 1, 0x53f3604f, 0x0 }, +- { 4, 0x55f7c4, 0x0 }, +- { 4, 0x55f7e4, 0x0 }, +- { 2, 0x1edc0ba3, 0x7531 }, +- { 3, 0x53be50, 0x0 }, +- { 1, 0x10df1038, 0x0 }, +- { 4, 0x55f804, 0x0 }, +- { 3, 0x53bf68, 0x0 }, +- { 1, 0x4ede0cac, 0x0 }, +- { 2, 0x2f076eeb, 0x5bcf }, +- { 1, 0x6d86030f, 0x0 }, +- { 1, 0x3f331713, 0x0 }, +- { 3, 0x53c0e8, 0x0 }, +- { 2, 0x41cd726f, 0x3f79 }, +- { 4, 0x55f824, 0x0 }, +- { 1, 0xece0054, 0x0 }, +- { 2, 0x19b32b03, 0x4ad1 }, +- { 4, 0x55f844, 0x0 }, +- { 4, 0x55f864, 0x0 } +- }, +- { +- { 2, 0x39731111, 0x419b }, +- { 1, 0x54f7757a, 0x0 }, +- { 4, 0x55f884, 0x0 }, +- { 4, 0x55f8a4, 0x0 }, +- { 3, 0x53c240, 0x0 }, +- { 3, 0x53c368, 0x0 }, +- { 2, 0x3cc0256b, 0x7ce7 }, +- { 1, 0x79991847, 0x0 }, +- { 2, 0x228f7fb5, 0x472d }, +- { 2, 0x32da290b, 0x7745 }, +- { 1, 0x7a28180d, 0x0 }, +- { 4, 0x55f91c, 0x0 }, +- { 4, 0x55f93c, 0x0 }, +- { 2, 0x5c814f8b, 0x227f }, +- { 3, 0x53c7b0, 0x0 }, +- { 2, 0xb496f6d, 0x412d }, +- { 1, 0x6f4b62da, 0x0 }, +- { 3, 0x53c8b8, 0x0 }, +- { 1, 0x64973977, 0x0 }, +- { 3, 0x53c9e8, 0x0 }, +- { 3, 0x53cae8, 0x0 }, +- { 4, 0x55f9d0, 0x0 }, +- { 3, 0x53cd28, 0x0 }, +- { 3, 0x547230, 0x0 }, +- { 1, 0x6dd14c92, 0x0 }, +- { 3, 0x53ceb0, 0x0 }, +- { 4, 0x560280, 0x0 }, +- { 4, 0x56034c, 0x0 }, +- { 4, 0x56036c, 0x0 }, +- { 3, 0x53d168, 0x0 }, +- { 1, 0x5e6324d8, 0x0 }, +- { 3, 0x53d2d0, 0x0 }, +- { 3, 0x53d3d0, 0x0 }, +- { 3, 0x53d798, 0x0 }, +- { 4, 0x5605b0, 0x0 }, +- { 1, 0x62745ed0, 0x0 }, +- { 2, 0x102c215b, 0x581 }, +- { 3, 0x53d970, 0x0 }, +- { 3, 0x53da70, 0x0 }, +- { 3, 0x53dbd0, 0x0 }, +- { 2, 0x19511111, 0x12c1 }, +- { 3, 0x53dd70, 0x0 }, +- { 2, 0x2a6e2953, 0x6977 }, +- { 3, 0x53e0d0, 0x0 }, +- { 1, 0x55cd5445, 0x0 }, +- { 4, 0x560bcc, 0x0 }, +- { 4, 0x560bec, 0x0 }, +- { 2, 0x646c21eb, 0x43e5 }, +- { 1, 0x71dc4898, 0x0 }, +- { 1, 0x167519cb, 0x0 }, +- { 1, 0x6d3158f8, 0x0 }, +- { 1, 0x7ea95bea, 0x0 }, +- { 4, 0x560c10, 0x0 }, +- { 1, 0x47377587, 0x0 }, +- { 1, 0x2d8b6e8f, 0x0 }, +- { 2, 0x5e6105db, 0x1605 }, +- { 1, 0x65b543c8, 0x0 }, +- { 3, 0x540278, 0x0 }, +- { 4, 0x560d34, 0x0 }, +- { 2, 0x48af73cb, 0xa67 }, +- { 1, 0x4fb96154, 0x0 }, +- { 3, 0x5406e8, 0x0 }, +- { 4, 0x560e38, 0x0 }, +- { 1, 0x622c4954, 0x0 }, +- { 4, 0x561014, 0x0 }, +- { 1, 0x20d220f3, 0x0 }, +- { 1, 0x361d4f0d, 0x0 }, +- { 1, 0x2b2000d1, 0x0 }, +- { 1, 0x6fb8593e, 0x0 }, +- { 3, 0x5409e8, 0x0 }, +- { 4, 0x561074, 0x0 }, +- { 1, 0x2b7f7dfc, 0x0 }, +- { 2, 0x5fc41a57, 0x693 }, +- { 2, 0x17154387, 0x2489 }, +- { 4, 0x561094, 0x0 }, +- { 4, 0x5610b4, 0x0 }, +- { 4, 0x5610d4, 0x0 }, +- { 3, 0x540d18, 0x0 }, +- { 1, 0x7e221470, 0x0 }, +- { 1, 0x7a600061, 0x0 }, +- { 4, 0x561190, 0x0 }, +- { 4, 0x5611b0, 0x0 }, +- { 3, 0x541218, 0x0 }, +- { 4, 0x5611d0, 0x0 }, +- { 2, 0xe813a5, 0x2ce5 }, +- { 2, 0x3d707e25, 0x3827 }, +- { 2, 0x77a53e07, 0x6a5f }, +- { 4, 0x562968, 0x0 }, +- { 3, 0x547d98, 0x0 }, +- { 3, 0x547f10, 0x0 }, +- { 1, 0x43a73788, 0x0 }, +- { 3, 0x5387b0, 0x0 }, +- { 4, 0x55f214, 0x0 }, +- { 3, 0x539420, 0x0 }, +- { 1, 0x55f4606b, 0x0 }, +- { 4, 0x55f380, 0x0 } +- }, +- { +- { 5, 0x55f3f8, 0x0 }, +- { 2, 0x32ca58e3, 0x4f9 }, +- { 1, 0x11756b30, 0x0 }, +- { 2, 0x218b2569, 0x5db1 }, +- { 1, 0x77d64b90, 0x0 }, +- { 5, 0x562948, 0x0 }, +- { 3, 0x547c10, 0x0 }, +- { 2, 0x7d1428cb, 0x3d }, +- { 1, 0x6f872c49, 0x0 }, +- { 1, 0x2e484655, 0x0 }, +- { 2, 0x1e3349f7, 0x41f5 }, +- { 3, 0x541400, 0x0 }, +- { 5, 0x561258, 0x0 }, +- { 1, 0x61640311, 0x0 }, +- { 5, 0x561278, 0x0 }, +- { 3, 0x541588, 0x0 }, +- { 3, 0x541688, 0x0 }, +- { 3, 0x541988, 0x0 }, +- { 1, 0x7044d3, 0x0 }, +- { 5, 0x561298, 0x0 }, +- { 2, 0x5c221625, 0x576f }, +- { 3, 0x541b30, 0x0 }, +- { 3, 0x541c30, 0x0 }, +- { 1, 0x2d406bb1, 0x0 }, +- { 2, 0x680b1f17, 0x12cd }, +- { 5, 0x5613a0, 0x0 }, +- { 2, 0x12564d55, 0x32b9 }, +- { 2, 0x21a67897, 0x6bab }, +- { 3, 0x541db8, 0x0 }, +- { 2, 0x6405119, 0x7143 }, +- { 1, 0x351d01ed, 0x0 }, +- { 2, 0x46356f6b, 0xa49 }, +- { 2, 0x32c77969, 0x72f3 }, +- { 5, 0x5613c0, 0x0 }, +- { 3, 0x541fe0, 0x0 }, +- { 3, 0x5420e0, 0x0 }, +- { 5, 0x5613e4, 0x0 }, +- { 3, 0x542220, 0x0 }, +- { 5, 0x561404, 0x0 }, +- { 2, 0x74d52c55, 0x5f43 }, +- { 1, 0x26201ca8, 0x0 }, +- { 1, 0x7aeb3255, 0x0 }, +- { 3, 0x53ab20, 0x0 }, +- { 2, 0x578f1047, 0x640b }, +- { 3, 0x542738, 0x0 }, +- { 3, 0x542df8, 0x0 }, +- { 5, 0x5615a0, 0x0 }, +- { 5, 0x561628, 0x0 }, +- { 1, 0x4a1352cf, 0x0 }, +- { 2, 0x4bfb6ef3, 0x704f }, +- { 2, 0x1b4c7fe7, 0x5637 }, +- { 2, 0x4091a3b, 0x4917 }, +- { 1, 0x270c2f52, 0x0 }, +- { 3, 0x5430b8, 0x0 }, +- { 5, 0x561748, 0x0 }, +- { 3, 0x543220, 0x0 }, +- { 5, 0x561768, 0x0 }, +- { 2, 0x127549d5, 0x579b }, +- { 2, 0xab54121, 0x7a47 }, +- { 5, 0x5617f0, 0x0 }, +- { 1, 0x751e6e49, 0x0 }, +- { 3, 0x543580, 0x0 }, +- { 3, 0x543680, 0x0 }, +- { 1, 0x670c3f74, 0x0 }, +- { 2, 0x6b080851, 0x7e8b }, +- { 1, 0x71cd789e, 0x0 }, +- { 1, 0x3eb20b7b, 0x0 }, +- { 5, 0x561ea0, 0x0 }, +- { 3, 0x543848, 0x0 }, +- { 2, 0x58a67753, 0x272b }, +- { 2, 0x1ab54ad7, 0x4d33 }, +- { 2, 0x7d30a45, 0x569 }, +- { 2, 0x737616bf, 0x70c7 }, +- { 3, 0x543990, 0x0 }, +- { 2, 0x45c4485d, 0x2063 }, +- { 5, 0x561f38, 0x0 }, +- { 1, 0x2598043d, 0x0 }, +- { 2, 0x223a4fe3, 0x49a7 }, +- { 1, 0x1eed619f, 0x0 }, +- { 5, 0x561f58, 0x0 }, +- { 1, 0x6f477561, 0x0 }, +- { 5, 0x561f7c, 0x0 }, +- { 5, 0x561f9c, 0x0 }, +- { 3, 0x543bf8, 0x0 }, +- { 2, 0x4bc13c4f, 0x45c1 }, +- { 1, 0x3b547bfb, 0x0 }, +- { 3, 0x543d08, 0x0 }, +- { 2, 0x71406ab3, 0x7a5f }, +- { 1, 0x2f1467e9, 0x0 }, +- { 2, 0x9366d1, 0x22d1 }, +- { 2, 0x587d1b75, 0x2ca5 }, +- { 2, 0x213a4be7, 0x4499 }, +- { 2, 0x62653e89, 0x2d5d }, +- { 5, 0x562198, 0x0 }, +- { 2, 0x4f5f3257, 0x444f }, +- { 2, 0x4c0e2b2b, 0x19d3 } +- }, +- { +- { 2, 0x3f867b35, 0x7b3b }, +- { 2, 0x32d25cb1, 0x3d6d }, +- { 5, 0x5622f0, 0x0 }, +- { 2, 0x50fa1c51, 0x5f4f }, +- { 3, 0x544130, 0x0 }, +- { 1, 0x5fe7af1, 0x0 }, +- { 2, 0x14067c29, 0x10c5 }, +- { 3, 0x544298, 0x0 }, +- { 2, 0x4a5558c5, 0x271f }, +- { 1, 0x3c0861b1, 0x0 }, +- { 5, 0x562864, 0x0 }, +- { 3, 0x546d50, 0x0 }, +- { 2, 0x18837c9d, 0x6335 }, +- { 5, 0x56238c, 0x0 }, +- { 1, 0x7dab5033, 0x0 }, +- { 3, 0x544548, 0x0 }, +- { 2, 0x3b87321, 0x7225 }, +- { 1, 0x7f906745, 0x0 }, +- { 3, 0x544700, 0x0 }, +- { 5, 0x5623ac, 0x0 }, +- { 1, 0x21c46c2c, 0x0 }, +- { 2, 0x2b36757d, 0x28d }, +- { 5, 0x5623cc, 0x0 }, +- { 3, 0x5448a8, 0x0 }, +- { 1, 0x106b4a85, 0x0 }, +- { 1, 0x17640f11, 0x0 }, +- { 3, 0x544a28, 0x0 }, +- { 1, 0x69e60486, 0x0 }, +- { 3, 0x547670, 0x0 }, +- { 2, 0x3782017d, 0x5bf }, +- { 5, 0x5623ec, 0x0 }, +- { 3, 0x5480c8, 0x0 }, +- { 1, 0x6bca53b0, 0x0 }, +- { 3, 0x546af0, 0x0 }, +- { 3, 0x546bf0, 0x0 }, +- { 3, 0x544d20, 0x0 }, +- { 3, 0x544e20, 0x0 }, +- { 1, 0xb8236e3, 0x0 }, +- { 5, 0x562908, 0x0 }, +- { 2, 0x5ee51c43, 0x4553 }, +- { 5, 0x56249c, 0x0 }, +- { 3, 0x546fd8, 0x0 }, +- { 3, 0x5470d8, 0x0 }, +- { 3, 0x546970, 0x0 }, +- { 2, 0x42b14c6f, 0x5531 }, +- { 1, 0x4a2548e8, 0x0 }, +- { 2, 0x5c071d85, 0x2437 }, +- { 3, 0x5467d8, 0x0 }, +- { 2, 0x29195861, 0x108b }, +- { 1, 0x24012258, 0x0 }, +- { 3, 0x546690, 0x0 }, +- { 1, 0x63cc2377, 0x0 }, +- { 1, 0x8d04b59, 0x0 }, +- { 2, 0x3fd30cf5, 0x7027 }, +- { 1, 0x7c3e0478, 0x0 }, +- { 2, 0x457776b7, 0x24b3 }, +- { 1, 0x86652bc, 0x0 }, +- { 2, 0x302f5b13, 0x371d }, +- { 3, 0x546548, 0x0 }, +- { 2, 0x58692d47, 0x671 }, +- { 1, 0x6601178e, 0x0 }, +- { 2, 0xf195b9b, 0x1369 }, +- { 1, 0x7ba21d8, 0x0 }, +- { 5, 0x562544, 0x0 }, +- { 5, 0x562564, 0x0 }, +- { 1, 0x13ac3d21, 0x0 }, +- { 2, 0x5bcf3275, 0x6e1b }, +- { 2, 0x62725c5b, 0x16b9 }, +- { 2, 0x5b950fdf, 0x2d35 }, +- { 5, 0x5625a0, 0x0 }, +- { 5, 0x5625c0, 0x0 }, +- { 2, 0x73ba5335, 0x1c13 }, +- { 5, 0x5625e0, 0x0 }, +- { 5, 0x562600, 0x0 }, +- { 1, 0x3e144154, 0x0 }, +- { 2, 0x4eed7b27, 0x38ab }, +- { 3, 0x545c58, 0x0 }, +- { 2, 0x627c7e0f, 0x7f01 }, +- { 2, 0x5d7e1f73, 0x2c0f }, +- { 3, 0x545aa0, 0x0 }, +- { 2, 0x55c9525f, 0x4659 }, +- { 1, 0x3765334c, 0x0 }, +- { 2, 0x5df66ddf, 0x7c25 }, +- { 3, 0x545d78, 0x0 }, +- { 3, 0x545e78, 0x0 }, +- { 1, 0x16ae5776, 0x0 }, +- { 3, 0x545ff8, 0x0 }, +- { 3, 0x546190, 0x0 }, +- { 5, 0x562620, 0x0 }, +- { 5, 0x562640, 0x0 }, +- { 3, 0x546290, 0x0 }, +- { 2, 0x4392327b, 0x7e0d }, +- { 3, 0x546398, 0x0 }, +- { 2, 0x3d8b0cb5, 0x640d }, +- { 2, 0x32865601, 0x4d43 }, +- { 5, 0x562660, 0x0 } +- } +-}; +- +-static const struct buffer_t type_three_list[NUM_TYPE_THREES]={ +- { 0x538920, "\x7a\x61\x31\x57\x9\xbc\x11\x8d\x6a\x12\x3a\x4d\x76\xbf\x19\x86\x2c\xc8\x69\x60\x84\x1\xc9\x21\xb1\xa6\xf\x99\xcd\xa0\x71\x8b\x5f\xb2\xd2\x53\xed\xf9\x55\xa\x50\x14\x15\xad\x88\x52\x5d\xbb\xe\xe5\xd\x56\x3e\x9b\xc7\x17\x9a\x97\x92\x23\x0\x37\xaa\x27\xf6\xb6\x33\xb5\xc5\xd1\x38\x1b\x85\x42\x13\xe1\x64\x1d\x4c\x87\x9f\x3c\x40\xdf\x7b\xd5\xae\xc6\x7c\xec\xd7\x49\x35\x2f\x2b\x9d\x32\xbd\x93\x45\x73\x91\x34\xd4\x39\x1e\x96\x65\xeb\x82\x5a\xf3\xd8\xf1\x41\xce\x9c\xe6\x90\x7d\x6b\x29\x6\xc1\x3d\x4e\xe3\xdb\x48\x6c\x62\x72\x7f\xfe\xdd\xcf\xa1\x24\x4f\xc0\xd0\x3f\x2d\x5c\x78\x6f\x3b\x10\xef\xba\xb\x25\xd6\x1f\x58\x8c\xf8\xcc\xc2\x5\xb3\xfa\xa4\xac\x6e\xf5\x18\x2a\x26\x5e\xf4\x79\xb8\xc3\x16\xe2\xf2\x83\x30\x59\xda\xe9\x36\x7\x46\xa9\xde\x77\xd3\xa3\x98\x8\x1c\xe7\xee\x51\xe8\xfb\x2\xc4\xfd\xff\x22\xaf\x7e\xcb\x68\xc\x28\xe4\x63\xca\x70\x75\xb0\x74\xa7\xea\x20\x4\x4b\xa5\xb7\xf7\xfc\x4a\x47\xf0\xa8\x81\xbe\xe0\x66\x8e\x44\x54\x6d\x80\xb9\x95\x2e\xab\x8a\x1a\x94\xdc\x89\xb4\x5b\x9e\xd9\x8f\xa2\x43\x67\x3" }, +- { 0x538a20, "\x28\xeb\x74\xef\xb7\x73\x79\xd1\x46\xcc\xfb\x3b\x91\xc2\x16\xcb\x93\xaf\x51\x88\xb0\x5d\xfa\xfc\xc\xf\xc8\x4a\x53\x17\x8e\xec\x81\x36\xc6\xdc\xbc\x89\xa\x1f\x78\xdd\x76\x6c\x85\xd2\x13\xb9\x3a\x97\xde\x86\x3e\x12\xbe\x68\x23\x6a\x58\xce\xea\xe3\xa8\x5a\x8c\x3\x8a\x9d\xfe\xf3\x47\x63\xdf\x44\xaa\xd9\x24\xf0\x5b\xe2\x9c\xd3\xa9\x2e\xfd\x8b\xbd\xa4\x7a\x42\x5f\x4d\xa2\x48\x83\xcd\xe\x27\x61\xcf\xd\x50\x6f\x49\xae\xc7\x2f\x31\x39\x8f\x11\xdb\xad\x6b\x7f\xb6\x55\x62\x4c\x66\xc4\x75\xf6\x1b\xc1\xf1\x90\x95\x65\x9\xe0\xb4\xbf\xf4\x35\x37\x1c\x67\xe8\xf9\xe6\x56\x99\x22\xc0\xe9\x92\x21\xe1\x7d\x6e\x34\xd4\x8d\x96\x20\x52\xd0\x69\x2d\xf8\x7e\x4f\xb\xac\x71\xa3\xe5\x2a\xa5\xc5\x18\x5e\x6\xca\x2\x4b\x26\xf5\xab\x9f\xe7\x15\x3d\xd6\x4\x8\xee\xbb\x57\x0\x40\xd5\xa7\x1d\x45\xa6\x2c\xff\x9a\x32\x84\x1a\x14\xf7\x80\xd8\x43\x72\x7\x98\x38\x87\x33\xb1\x29\xb3\x7c\x30\xba\x94\xc9\x64\xe4\x1\x77\x3c\x2b\x82\x54\x6d\x9e\xf2\x3f\xed\xc3\x4e\x5c\x60\x70\x19\xa0\xb8\xda\x5\xb2\x10\x7b\x25\xb5\x9b\x59\x41\x1e\xa1\xd7" }, +- { 0x539320, "\x9c\x3b\xec\x3e\x7b\x79\x6f\x88\x42\xe6\xe1\x9b\xa3\xd\x83\x86\x7a\xfc\xc5\xb3\xdb\x7c\xf6\xa\xb7\xe7\x3c\x53\x28\x65\xf2\xa9\x6a\xf4\xef\x2c\x3d\xf8\xed\x6\xaf\x31\x75\xab\xf3\x73\xee\x20\x95\x1b\xe\x19\xa8\x5b\xa5\x66\x74\x85\x11\x60\x1e\x2a\x6c\x48\x50\x2f\x9a\x2e\x55\xaa\xcb\x64\x40\x4c\x25\xe9\xd0\xfd\x2d\x46\x8b\x81\x8d\xd2\x32\x4a\xc6\x7\xd6\xbf\xfb\x98\xd4\x76\x7e\xc\xfa\xde\x14\xa6\xd5\xe2\x90\xd1\xeb\xd3\x58\xbb\x5f\x94\xf7\x78\x54\x27\x52\xb6\x22\xea\x8c\xc8\x7d\x87\x12\x9d\xa1\x63\x38\xd8\x35\x2b\xc9\x56\x10\x9f\x1a\x2\xbe\xf1\x59\x17\x9e\xac\x5a\xb8\x1\xb5\x30\xad\xff\xe0\x49\xe8\x23\x4e\x6b\x16\xdc\x4f\x89\x68\x43\xc1\x99\x4\xa7\x33\x92\x84\xa4\x26\x34\x41\x1d\xb2\x91\x61\xc2\x51\x8f\x36\xfe\x5\xa2\xf9\xb\x13\x71\x82\x6e\x5d\xb4\xdf\xdd\x7f\xa0\xcd\x44\xc7\x70\x4d\xf0\x1c\x4b\x45\x57\x37\x3a\xcc\xf5\x8a\xd9\xe4\xbc\x15\xc3\x62\xc4\x39\x72\x47\x97\xbd\x8\xe5\x67\x18\xb1\x77\x8e\x1f\x9\xba\xf\xd7\xb0\x24\xce\xda\x0\x96\xca\x69\x3\x6d\x93\xae\xe3\x3f\x5c\xcf\xc0\xb9\x29\x80\x21\x5e" }, +- { 0x539868, "\xf2\xc3\x9\x40\x62\x4b\x94\xd2\xf8\x4a\xdf\xa\xb1\x61\xf9\x9c\x13\x35\x3\xe8\xc4\xf6\x49\x1a\xc\x45\x97\xe\x83\x33\x6d\xa0\x73\xb9\x3d\x9d\xff\x60\xc6\xaf\x68\xb6\x89\x10\xb0\xde\x98\x7f\x8c\x5a\xa5\x1e\x6f\x7c\x17\x12\xd7\xdc\x75\xfc\x20\x1d\x92\xcf\xf1\x16\xd\x50\x41\x39\xab\xeb\x14\x65\xc8\xa4\x99\xb5\x8a\x21\x90\xba\x4d\x3c\xf3\x66\xd1\x96\xf\xac\xa6\x7b\xbc\x8f\xd0\x29\x1f\xb3\xce\xd8\x79\x2\x36\x0\xe5\x91\x5e\xbb\xaa\x52\xc2\x31\x6b\x88\x8b\x9b\x2a\x44\x6c\x2f\x8e\xfb\xa3\x6\x48\xa2\x69\xc9\x28\x43\x47\x37\xef\xb8\x84\xe0\x4f\x30\xae\x56\xb7\x4e\x34\x81\x77\x67\xfd\x74\x93\xcd\x7a\x51\x76\x54\x5b\x2b\x3e\x80\xea\x9f\x15\xe1\x9a\xbf\x38\xfa\x8\x24\x42\xee\x7e\x4\x5f\xa8\xc5\xdb\x4c\x2d\xd9\xca\x19\xcc\xcb\x85\xa1\x32\x25\xec\x64\x57\xad\xf5\xb\x71\x11\x3f\xfe\x58\x1c\xd3\xb2\x72\xf7\x2c\xa9\xf0\x8d\xe9\xbe\x70\xe7\x95\xe6\x6e\x7\x9e\x46\x53\xdd\xed\xe2\xf4\x3b\x22\xc1\x3a\x55\x26\xd6\xc7\xd4\xc0\x27\x5\x7d\x5d\xe4\xd5\x5c\xe3\xb4\x63\xa7\x59\x82\xda\x18\x23\x2e\x1b\x1\xbd\x78\x86\x6a\x87" }, +- { 0x5395a8, "\xfa\xb9\xda\x78\xde\x7f\x6\xab\xd7\xb1\x5c\x10\x1b\xf5\x62\x85\xf4\x98\xfb\xb2\xff\x5e\x5\x2b\x81\xd1\x7d\x58\xa7\x6b\x23\x7b\x26\x9f\xa9\xe\x59\xb8\xac\xd9\x64\x6e\x4f\x6a\x2d\x3c\x15\xc7\x63\x42\x54\x9\x90\xf6\xa0\x86\x9d\xea\xcf\x7c\xfe\xc5\xd4\x4d\xa6\xd5\xba\xcd\x5d\x9b\x2a\x6c\xb5\x7a\xbe\xf0\x44\x65\x0\x17\x3\xaf\xed\xfd\x1f\xc2\xd8\x5a\x16\xad\xc3\x35\x43\xbb\xa5\x37\x40\xf\x60\x99\x94\x1e\x89\x68\x88\xc8\xc4\x4a\x66\x24\x55\x3d\x4b\xe2\x1d\x1a\xe8\x19\x5b\xbf\x51\x8c\xae\x8a\x87\x8d\x3b\x22\x82\xd6\x80\x95\xef\x50\x21\xd\xd3\x33\x6d\x2c\xf1\xee\x38\xdc\xc1\x6f\x2\x46\xc6\x7e\x18\xb0\xce\x8\xd2\xb6\x53\x73\xe6\xf9\x3a\x4c\x48\x96\x1c\x70\x8b\x93\x69\xf7\x56\x30\x31\xdb\xa1\x1\xb\x77\xbc\xf2\x8e\x27\xa3\x7\xe4\x3f\xfc\x49\xcb\xe0\x45\x12\x67\x13\xb7\x74\xc\x52\xcc\xdd\x76\x29\x32\x57\xe1\xe9\x8f\xca\xaa\xbd\x71\x2e\x4\x97\xa4\xc9\x79\xdf\x83\xb3\x3e\x72\xc0\xb4\xec\x9a\x14\xa\x2f\x5f\x39\x25\x28\x75\xa2\xf8\x9c\xe3\xa8\x11\x9e\x4e\xd0\xe7\x61\x41\x84\xeb\x20\x36\x34\xf3\xe5\x92\x91\x47" }, +- { 0x539ba8, "\x88\x82\x72\x56\xde\xa5\x45\x91\xf9\xe4\xee\x32\x59\x18\xb8\x6f\x79\xc7\xb0\x8c\x11\xd2\xe7\xef\x48\xe6\x20\xa1\x22\x12\xc8\x15\x6a\x8f\x3b\xd5\x3c\xe8\x63\x28\x10\xe9\x2c\xf5\x69\xa7\xf6\xd0\x83\xe0\x80\x81\x46\x29\x38\x2e\xf8\x34\x5b\x1a\x9d\xfa\xa4\x35\x54\xc1\x7e\xe\xae\x7f\x6e\x57\xb4\xbc\xff\x9b\x4a\xb7\x2b\x0\x5f\x31\x6d\x74\xd8\x36\x5c\xc3\xa2\xdf\x3d\xe2\x86\xfb\x5a\xca\x30\x50\x3e\x73\x4e\x9a\x94\xf0\x7d\xc5\x4f\xe3\x66\x39\xeb\x70\x52\x4b\xe5\x71\xc0\x76\x44\xa9\xa0\x7b\x27\xb1\x6c\xf\xc6\x96\xcb\xba\xda\xea\x37\x1c\xac\xb3\xd6\xb9\xbf\xdb\x1d\x8a\xfe\x9\x21\x75\x5d\x97\xe1\x8e\x25\xbd\x2d\xdd\xf7\xcd\x2a\x1e\x5e\x7a\xc\xfd\x9f\x60\x8\x64\xce\xf4\x61\x8d\x9e\xcf\xd4\x49\xb\x67\x1\xf1\x87\x53\x13\xaf\x2f\xa\xec\x3a\xbb\xa8\xbe\xc9\x90\x43\x6\x7c\xb6\xcc\xc2\x4c\x62\xb5\xc4\x77\x3\xf3\xab\xd3\x33\x24\xf2\x55\x6b\x1b\xa3\x2\x4\x23\x16\x14\x95\x3f\x65\xad\x89\x26\x5\x42\xfc\x98\x7\xaa\x19\x9c\xa6\xd\x93\xed\xb2\x8b\x40\xd7\x47\x1f\x99\x78\x17\x92\xd1\x4d\x51\x58\x84\xdc\x41\xd9\x68\x85" }, +- { 0x547818, "\x73\x5\xde\x12\xaf\xb4\xaa\x9\x31\xcb\xba\x55\xd3\x1b\xf7\xbe\xd9\x45\x6d\x50\x2d\x74\xfa\x9c\xb3\xb2\xc0\x34\x16\x8d\x3d\x3f\x65\x13\xc8\xe3\xc\xfd\xea\x56\x67\x32\x7b\x24\xd1\xee\xc4\x1f\x3e\x4d\xd7\x33\xd5\xbf\xf\xca\x82\x63\x8b\x60\x86\xfe\x37\x51\x6\xe5\xe8\xe6\x64\x2b\x8a\xbb\xd0\xb8\xb1\xdc\xb9\x8c\x75\x5c\x14\x88\x22\x94\x96\x9d\xb7\x58\x2e\xbc\xc9\xa1\x1\x77\xec\xa2\x2\x6b\xc1\xad\xac\x62\xe1\x9b\x40\xb5\xd6\x78\x80\xc3\x4\x3\x4a\xa0\xeb\x8e\xf5\xc6\xab\xf6\x57\xa5\x8\xcc\x5b\xf2\xff\x2f\xa\x25\xb0\x3a\x7d\xf4\x43\x10\x85\x15\x44\xae\x92\x61\x27\x1c\xce\x19\xf9\xa6\xc5\x48\xe2\x59\xb\x89\xef\xc2\x0\xa8\x5d\x99\x54\xed\x2a\x3b\x4e\x42\xf3\x8f\x2c\x18\x6f\x69\x53\x68\xcd\x29\x6a\x1d\xc7\xf0\xd\x23\x4c\xe\x91\xfc\xe9\xcf\x98\x9a\x52\xfb\x21\x1e\x5f\x30\xda\x9e\x9f\xa9\x7a\x6c\x4b\x39\x7f\x20\x5a\xd2\x83\xdb\x49\x81\x93\x7\x3c\x95\xe0\x70\x26\x41\xa3\x79\x47\xa4\x11\x76\x97\x17\x35\xd8\xf8\x5e\x7e\x71\xbd\xf1\x28\x84\x46\xb6\xa7\xdf\x38\x66\x72\xdd\x90\xe4\x7c\x6e\xe7\x87\x36\x1a\xd4\x4f" }, +- { 0x547978, "\x4f\xf2\x63\xe9\xdd\x53\x55\xf0\xf6\x86\x76\xab\x8b\x91\x5\xa9\x5c\x92\xc9\xf3\x24\xdc\x3c\x6\xf4\x54\xb\xad\x28\x46\xaf\x60\xc1\xae\xc2\xec\x74\x84\xb3\xcc\x75\x1b\x34\xa6\xf\x6e\x85\xf9\x44\x69\x3d\x4e\x8e\x1f\xed\x15\x12\x62\xdb\xbd\xea\x68\x50\xfc\x30\xde\x5b\x9b\x33\x99\x8d\x61\x98\x56\x78\x19\xc\xb4\x8f\xc8\x10\xb0\x38\x17\x21\x2a\x5e\xe1\xb1\x81\xbc\x2b\xe3\x94\x7b\x6f\x9a\x7e\x48\x3\xc6\xb5\x65\x43\xaa\x23\x1d\x59\x31\xcf\x1\xb7\xfa\xfe\xbf\x1a\x96\xf5\x87\xac\xbb\xfd\xdf\x82\xd1\x13\x8a\x11\xe4\x40\x0\xc5\x7\xa5\xb6\xd9\x4b\xba\x3b\x93\xa0\x9e\x52\x9c\xe\x14\xd2\x3e\x7d\x9f\xd8\x72\x9\xe0\x39\x27\x77\x97\x29\xd5\x88\x95\xee\x22\x3a\x47\xc7\x16\xc4\x25\xb9\x6d\x8\x2c\x35\x6c\xcd\xb2\x5f\xf8\xff\x41\x18\x3f\xe5\x57\x2e\x67\xc3\x49\x89\x90\xcb\xe6\x26\x4\xa8\xbe\xca\x2f\xfb\xd4\x71\xf7\xda\xe8\x6b\x5d\x79\x70\x1c\xce\x7a\xa3\x2d\x4a\xd7\xe2\xb8\x64\x6a\x51\x73\xa\x37\xa2\xd3\x4d\x80\x5a\xa1\x36\x45\x66\xa4\x20\x58\x4c\xd6\x1e\xd\xeb\xe7\x42\x7f\x9d\xf1\xa7\xef\x32\xc0\x2\x8c\x83\x7c\xd0" }, +- { 0x539d48, "\x29\x0\x10\x9\x37\xc0\xb\xa\x91\xc8\xc9\xb6\x8e\x1\x9f\x64\xae\x13\xa6\xb7\x62\x27\xf7\xd0\x9e\x68\xf1\xf9\x15\xdd\x3a\x56\xca\xde\x96\x89\x8\x90\x38\xeb\x99\x57\xb8\xd7\x65\x94\x77\xb1\x16\x45\x5d\x67\x2f\x79\xd5\xcc\xdf\x44\xbe\x31\x8a\xef\x88\x7a\xfb\xa3\xa5\x39\x78\x84\x3\xe8\xbd\x8c\x85\x6f\xb2\x59\x6d\x93\x7\xaa\x36\xee\xe7\x7c\x21\x2b\xc7\x40\x54\xcd\xb9\x1f\x30\x80\xea\xcb\xfd\x20\xbf\x2c\xd\x6e\x73\x4b\xe5\x74\x18\x9d\x3f\xb4\xb3\x50\x81\x9a\xd4\xf3\xf2\x3e\x6b\x1d\x9b\x12\x49\xa1\xcf\x4f\x51\x41\x71\xc2\xd9\xdb\x5a\x97\x6a\xe0\x87\x6\x5\x2d\xf8\x47\x5b\x1b\x69\xc4\xad\xff\x43\x46\x24\xc\x82\x33\x8d\x26\x86\xab\x5c\x61\xe4\x66\xaf\x11\xa0\x42\xa2\x2e\x34\xdc\x25\x4d\xd6\xd2\x63\x70\x22\x83\x19\xa7\x4e\x92\xb5\xf\xda\x55\xed\x7f\x7b\xa4\xfc\x1a\x1e\x8b\xbc\xb0\xc3\x98\xec\x17\x60\xc1\x3d\x8f\x4c\x48\xac\xce\x7e\x72\xd1\x5e\x35\xa8\x32\x4\x1c\xe\x3b\xfa\xbb\xa9\x2a\xf6\xd8\x2\x6c\x23\x76\xe2\x53\xba\x28\x9c\xe1\xd3\x52\xf0\xe9\x7d\xe6\xfe\x58\x14\x5f\xf4\xe3\xc5\x4a\x3c\xf5\x75\xc6\x95" }, +- { 0x539f60, "\x5f\xfc\x77\xa1\x39\xa6\x43\xf3\x2b\xbf\xab\x35\x4b\xbe\xad\xcd\xd3\x87\x22\x4f\x62\x3a\x1b\x3c\xef\xb1\x71\xae\x8c\x96\xc4\x86\x38\xf8\xa\xf9\x9b\xfb\x33\x41\xea\x69\x4e\x5c\x42\x58\xcc\x67\xf1\x26\xc9\xf5\xa3\x74\xe4\xbb\x56\x8\x7d\xbd\x99\x72\x80\x5d\xed\x2d\x65\xe6\x9\xa0\xb3\xb5\xc5\xa9\x85\x7\xd\x82\x1f\x9e\xd2\x6f\x2\xaf\x57\x55\x93\x48\x76\xc6\x30\x16\xe0\x60\x51\xf7\x59\x1c\x45\x6c\x4\x92\x32\x7a\xf2\x2f\x4a\x36\x63\x2c\xdd\x70\xd7\x4c\xec\xce\x13\xd9\x89\x97\xc7\x81\x15\xdc\xa5\x7c\x5a\x3\x1a\x2a\x49\xb2\x11\x88\x68\xc1\xb4\x9d\x73\x9a\xc0\x47\x21\x12\xe2\x78\x31\x0\x3e\x6\x6d\xca\xb8\x7f\xcf\x25\xb0\x91\xff\xb\x84\x24\xe9\x8e\xa4\x6b\xc\xac\xe3\x17\xc2\xe7\x6a\xc8\x8d\xf0\x14\xe\x95\xcb\xc3\xd6\x3f\x6e\x64\xfa\xd4\xee\x90\x9f\xe8\xd5\x98\xdf\xeb\xf\x2e\x19\x20\xaa\x44\x46\xbc\x53\x8b\x4d\x3b\x7b\xfd\xa7\x29\x28\x34\xe5\x8f\xb7\xa2\xd8\xa8\x3d\xb9\x5b\x75\xdb\x5\x83\xb6\x50\x5e\x7e\x52\xfe\x37\xe1\x54\x66\x9c\xda\x1d\x40\x10\xba\x1e\x27\xf4\x1\xd0\x18\x94\xde\x8a\x79\x23\x61\xd1\xf6" }, +- { 0x53a060, "\x1e\x91\xb3\x15\xe7\xc6\x8d\xfe\xc9\xb5\xa6\xdf\x86\xa\x8e\x2b\x54\xbf\x2c\x1d\xbd\x9e\x5f\xcf\x6\x4d\x14\xf\x9c\x2f\x3f\xe8\x49\x1b\xa7\x4a\x10\x88\x7d\xbe\xb0\x35\x11\xe1\xa4\x6d\x30\x2e\x38\x60\xf6\xf7\xdb\xb7\x33\x75\xc\x20\x77\xa9\x9f\xef\xf4\x9b\x79\xfa\x5e\xd5\x3a\x3e\xe6\x44\xd8\x17\xda\xe5\x31\x78\xde\x39\x19\x93\xb4\xa3\xcb\x48\x9d\x45\x21\xf1\x67\xed\xce\x29\x95\xe0\x55\xc1\xfc\x5c\x82\x5\xd3\x80\x76\xab\x72\xb\x97\xd1\xf3\xea\xae\x34\x2d\x98\x73\xc2\xf5\x26\x8a\x1\x37\xfd\x47\xeb\x5d\x0\x56\x8\x66\x36\xd6\x7b\xb2\xe9\x70\xc7\xa5\x7a\x6b\x4c\xdd\x74\x6a\xbc\x43\xc8\x81\x64\x62\xa0\xd2\xfb\x83\x4e\x53\x1c\x52\xcc\x1a\x59\xd0\x99\xf8\x3b\x5a\x28\x41\xf0\xd9\x40\x90\xc0\x69\x7f\x4f\x8f\x8b\x42\x18\xe2\x57\xb6\xb1\xe4\x16\x61\xbb\x23\xa2\xd7\x1f\xc4\x85\xa1\x7c\x9\x65\x8c\xb8\x58\x7\x22\x12\xdc\x13\xcd\xc3\x89\x2a\xee\x27\x7e\xa8\xe\xba\x3d\x4b\x96\x50\x3\xac\x94\xad\xec\x6f\x5b\x87\xb9\xaf\xd4\x63\xf2\x6e\x51\x84\x68\x92\x25\xaa\xe3\x46\x3c\xc5\x24\x4\xd\xff\xf9\x2\xca\x9a\x71\x6c\x32" }, +- { 0x53a588, "\x87\xca\xb5\xe\xb6\xee\x76\xd4\xda\x6a\x2b\x3b\x46\x9e\x44\x1d\x38\x3\xa\xb3\x1b\xf5\xea\x80\x94\xe6\x33\x43\x95\x0\xe1\x5c\x41\xc8\x97\x36\xaf\x34\x53\xb0\x6d\x29\xf9\x32\x2\xd6\x75\xbe\x7\xae\xe3\x6c\xa8\xe5\x4d\x56\x68\xb\xf4\x5d\x51\xc5\x54\x6b\x85\xba\x65\x86\xa7\xa9\x2f\xf1\x28\x5b\x4\x9c\xe7\x3f\x70\xd\xd5\xbf\xac\x5e\xad\x5a\x6\x2d\x30\x45\xd2\x17\x8d\x25\xed\x16\xc7\xd3\xde\x78\x22\x4a\xa0\x20\xe2\x89\x11\xa6\x2e\xff\xfc\xec\xfe\x9d\x18\xfd\x27\x60\xb1\xc0\x81\x99\x69\xa5\x64\x3d\xf2\x39\x1c\x9b\xc9\xc4\x8a\x21\x1f\x57\x4b\x5\x62\xb2\x14\x59\x2a\x12\x5f\xd1\x50\x90\x52\xcf\x1\x9\x4f\x7d\x74\x10\x42\x19\x8e\xe0\x40\x8f\xc2\xc\x82\x6f\xbb\xa4\x63\x55\xd7\x24\xab\x92\xbd\xf8\xcb\x8\xe9\x26\x49\x58\xf3\x1a\xc1\xd9\xdb\x4c\xbc\xb8\x84\xc3\x88\x8c\x98\x77\xeb\xcc\x3c\x83\xdf\xfa\x79\x15\x91\x7e\x3a\xf\x93\x66\xce\xa2\x7b\x37\x9a\x1e\xd0\xa3\x71\x3e\x47\xaa\xb4\x23\x96\xe4\xb9\x4e\x7f\xf0\xcd\x9f\x61\xf6\xfb\x7a\xdd\x73\xb7\x13\x7c\x35\x2c\xa1\xe8\x8b\x31\xd8\x72\xc6\x67\xdc\x6e\xf7\x48\xef" }, +- { 0x53a688, "\x62\x6f\x9b\x9c\x31\x48\x4c\xca\xc1\xe6\xa2\x2e\xed\xb4\xe2\xc8\x8f\x45\xc7\x76\x7a\xa5\x40\xb8\x15\x36\x93\x13\xc2\xf6\x17\x2f\xf0\x23\xc5\x95\x79\x1e\xba\xc\x73\x8\x0\x60\xc9\x1f\x54\x58\xc6\xbb\x2c\xb3\x68\x55\xbe\x41\xfa\xc0\x2\xa7\xbd\x78\x57\xa9\x69\x6d\xe4\x12\xe8\x7\x3f\xac\x6c\x16\x4\x87\xb5\xa0\x33\x5e\xe1\x28\xee\x4f\x6b\x50\x99\xaf\x51\xbf\x7c\x7d\x6\x5c\xfe\x6a\x53\x9d\x2a\xd4\x14\x66\xcc\x65\xa3\x3b\xfd\xfc\xf9\x3\xb2\x19\x8e\x91\x49\xdf\x1\x44\xa\x98\x9f\x3a\x80\xf8\xb1\x42\x32\x3d\x22\x37\x8a\x35\xae\xd0\x8c\xdc\xab\xc3\x18\xd9\xe5\x10\x5d\x38\x27\xaa\x52\x3c\xf\x74\xf5\x90\xe7\xec\xd1\x81\x84\x2d\xd5\x8b\x82\x5b\x46\x11\x5\x4a\x4b\xea\x5a\xb\x92\x24\xf4\x1b\x5f\x21\x9e\x7f\xff\x6e\xb6\x8d\xfb\xdd\xcb\x1d\xf2\xe3\xb0\xef\xb7\x4e\x25\x86\xa1\xce\xcd\x72\x34\x64\xd3\xf7\x83\x94\x89\x9a\xd\xd8\x71\x67\xad\xbc\xf1\xa6\x63\x88\xd7\xe\x70\xc4\x20\xde\x3e\xd2\x7b\xb9\x1c\x1a\x39\x30\xda\x59\x47\x43\x29\x9\xe0\xcf\x77\x4d\x75\x97\x56\xdb\x2b\xa4\xa8\x7e\x96\x85\x26\xf3\xd6\xe9\x61\xeb" }, +- { 0x53a7c8, "\x84\x5c\x65\xae\x56\xa1\xcc\x60\xa9\x28\x29\xf5\x35\x54\x33\xd1\xd6\x48\x44\x68\x34\xef\xee\xf3\x80\xa5\xcf\x2c\x22\xdf\xac\x53\x18\x2a\x19\xdb\xf1\x3d\xbb\x1b\xc4\xf2\xa6\xbf\x32\x2b\xe7\x8c\xb6\xba\xf8\x8b\x1c\xb7\xfe\x11\x75\xf6\xf7\x59\x76\x9c\xb1\x6e\xb4\xc6\xd\xb2\xb8\xc\x1f\x6\x12\x62\xa0\x47\x74\x5e\xd3\xde\x6a\xe\xaf\xc1\x8d\x57\x7\x89\x0\xa8\xbc\x51\x95\x4d\x97\x98\xfb\x9a\xea\x61\x7d\xe5\x50\x4f\xdd\x52\x64\xe4\x16\x8\x70\xff\x40\xd7\x9\x87\xad\xc7\xf4\x4c\x83\xd2\x63\x6c\xeb\x3\x79\xf\x13\x27\x88\xc5\x8e\x20\x3c\xb9\xf0\xc9\x94\xc3\x96\x1\x67\xb\x3e\x7e\xd8\xd5\x2d\x42\x58\x6f\x6b\xcd\x86\xdc\xab\xed\xfc\x24\xa3\x5d\xe9\x9d\x3a\x38\x8f\x55\x30\x46\xca\xc2\x25\x5f\x66\xc8\xe2\x23\x7a\x6d\xfa\xce\xe6\x36\x45\xb3\xb5\xfd\x92\x1a\x39\x21\x31\xaa\x7f\x71\x9b\xbd\x93\x43\x4\xa4\xd0\x81\x41\xf9\x78\x5a\xa7\x17\xcb\x9f\x3b\x90\x2\xe3\x5b\x69\x1e\xec\xe1\x5\x91\xd4\x4b\x7b\x8a\x77\x4a\x7c\xd9\x82\xc0\x26\xbe\x85\xda\x14\x2e\xa\x9e\x72\x4e\xe0\xa2\xe8\x99\x3f\x37\x10\x2f\x15\x73\xb0\x1d\x49" }, +- { 0x53a8c8, "\xfe\x9b\xe5\x18\xb2\x38\x1d\xd4\x98\xa9\x52\x58\xc3\xe1\xe8\xbf\x39\x4a\x36\x9\x6f\x7e\xb0\x4f\xca\xcd\x3\xe0\x66\x1e\xdf\xd2\x59\x95\x71\x2a\x16\xa2\x86\xcf\x64\xf0\xdb\xf3\x8e\x35\x7f\x19\xb1\x33\x90\xbe\xc0\x8f\x5d\x6e\x51\x56\xda\xaf\xa\x25\x54\xd3\x41\xb9\x7d\x82\x62\x97\xfc\x4d\x88\xe3\x57\xff\xb4\xc7\x1c\xbd\x80\xef\xe6\x1\x23\xce\x17\x44\xdc\x67\x26\x6a\xbc\x8d\x45\xb8\xa3\x1f\x9e\x7\x74\xb3\xc9\x0\x9c\x78\xf4\xf1\x32\x49\x14\x73\xc5\x7a\x65\x5b\xf\x42\xbb\xa4\xb\xcc\xe7\x27\x9a\xfb\x55\xd6\xd\xad\xeb\x10\x79\x1a\x2d\xed\xe4\x2e\x5a\x7c\x3f\x3c\x47\xa6\x20\x92\x46\xb5\x84\x7b\x37\x89\xee\x2b\xf8\xa1\x30\x48\x9f\x87\x68\xb7\xae\xa0\x29\xb6\xc6\xf9\x2f\x22\xf6\x43\x83\x5c\x21\x5\xd1\xfd\x6b\x50\x11\x93\x8c\xe2\x28\xa5\x3b\x2c\xba\xd0\xcb\x91\x4c\xc1\x69\x53\x75\x12\x85\xab\x4\xf2\xd8\x34\xf7\xc2\x40\xec\x3d\xe9\xc\xa7\xd7\x8a\xaa\xac\x99\x15\x2\x31\xea\x6\x60\x4e\x72\x70\x94\x63\xfa\xc8\xc4\x3a\x4b\x13\x3e\xa8\xf5\xde\x24\xd9\x6c\x76\x5e\x96\x5f\x1b\x6d\x9d\xd5\xdd\xe\x77\x61\x8b\x8\x81" }, +- { 0x53aa20, "\xfc\x7a\xc6\x79\x44\xfa\x78\x60\xb5\xd8\xa\xc0\x19\x5e\x12\xa9\x29\xb3\xcd\x75\xe3\x7b\x3a\xf1\x85\xab\x2f\x33\xe9\xc1\x14\xf0\x96\x82\xf9\x72\x77\xa3\xdd\xc9\x8c\x53\x4e\x1\xd1\x2e\x5\xec\x16\xdb\xd7\xb2\x35\x10\x74\xb1\xf6\xbe\x8a\x15\x50\x92\xe0\x7\xde\x24\x9c\xe7\x22\xda\x5d\xc3\x9e\x42\x59\xb\x11\x4a\xaf\x5f\x76\xd0\x94\x2c\x3f\x48\x97\x99\x2b\x34\x1e\x89\x6b\x23\x30\xce\xc\x8b\xaa\x57\x91\xc7\xea\xf4\xb8\x21\x8d\x3e\x70\x6\xa2\x64\xd3\x9f\xf3\x4b\x13\x2a\x1c\x7d\xee\xa1\xe5\x58\xbf\x98\x3\xfb\x6e\x81\x61\x56\x8e\x71\xa6\x26\x5a\x46\x80\x7e\x9\x37\xa4\x6a\x90\x1b\x1d\x51\x27\x5b\x2d\xba\x4f\xbb\x7c\xa8\x93\xf7\x4\xf5\x68\xd5\xc8\xc4\xef\x36\x84\xe8\xcf\x62\x2\xcc\x67\x49\xb0\x43\xc2\x3b\xa7\xa5\x1f\xfe\xac\x40\xb9\xc5\xae\x6f\xd4\x9a\x95\xbc\x17\x47\x9d\x86\xb7\xfd\xeb\x63\x65\x39\x69\x3c\x55\xe1\x9b\xd2\x66\xdc\x73\xbd\xf8\x83\xff\xf\xcb\x52\xb4\x88\x4d\xe6\x8\x6c\x20\x18\xe2\x45\x25\xe\xf2\x32\xdf\x38\x41\x4c\x5c\x31\x8f\xb6\xed\x0\x54\x28\x3d\xe4\xd9\x6d\xca\xad\xd\x7f\xd6\x87\xa0\x1a" }, +- { 0x547b00, "\x72\xf0\x14\xcb\x61\xa5\xb2\x2\x75\x22\xc3\x9d\x5a\x63\xfa\x5f\xd9\x55\x58\x43\x24\x7d\x77\x93\xba\x50\x1d\xf7\x49\x18\xb0\x42\xbb\xec\x52\x38\xdc\xc8\x16\x54\x17\x19\x89\x67\x33\x3c\xa\xad\xc9\xde\x81\xed\xbd\xe\xb\x6d\x46\x30\x35\x2b\x8c\xa0\x1c\xd\xfd\xa1\x70\xc6\xd8\x41\xb3\xc0\x44\xeb\x92\xbe\x6b\x98\x1a\x76\x71\xc5\x51\x56\x80\xfc\x1\x53\x4b\xd0\x8b\xd2\x7b\xe7\x15\x5d\xe5\xa6\x8a\xd3\x9b\xf4\x69\x23\xe8\xb6\xc7\xe2\x73\x9f\x88\xdf\xb4\x28\xee\xc2\x94\xb8\xf9\x7f\x4a\x57\x6\xf6\xbf\xc1\xab\xfb\xa4\x8e\xd1\xd7\xf5\x7c\xa3\x1e\x3b\x32\x3\xaa\x90\x5c\x48\xe0\xe3\xcf\xd4\xef\x59\xd5\x1b\x34\x1f\x95\xce\x7a\x20\x26\x87\xb7\x78\x9c\x4f\xa2\x12\x97\x27\x3f\xff\x7\x84\x96\x4\xaf\xa8\xea\x2c\x6c\xae\x37\x91\xa9\x10\xdb\xcd\xda\x8\x99\xf1\x4d\xcc\x68\x79\x2e\xb1\x39\x9e\xe9\x2f\x6a\x3d\xf\x85\x8d\xca\x29\x86\xd6\xdd\x5\x25\x3a\x40\x21\x45\xac\x11\xf3\xa7\x9\x2a\x31\xe4\xc\xf8\x6e\x3e\xb5\x82\xfe\x74\x13\x65\xe1\x2d\x8f\xe6\xc4\x0\x5b\x4e\xb9\x66\xf2\x62\x36\x4c\x83\x5e\x6f\x47\x64\xbc\x9a\x60\x7e" }, +- { 0x547548, "\x7c\x11\x4d\x5b\x41\x55\x97\x3f\x59\xed\xda\x6f\x85\x33\x16\xc8\xb1\x18\x50\x6c\x9c\x38\x2\x71\x2e\xec\x93\xa1\xa5\x0\x91\xaf\x7a\x92\x1b\xc7\x3a\xa9\xbe\xb6\x9b\xe5\xee\x57\xf1\x99\x47\x4\x6b\xd8\x20\xf4\x3\xd3\x75\xe3\xb8\xdc\x7\x54\x4f\x2d\x37\x49\x14\x9f\x69\xc4\xf7\xc6\xf0\xce\x24\x7b\x7e\x89\x4e\x3c\x7f\xcc\x9\xe6\x2f\x61\xfc\xcd\x86\x62\x83\x56\x29\xd6\x32\xc\x76\xc1\x5c\x68\x51\xf3\xa8\xe2\x87\xcb\xe0\xdb\xb\xba\xe4\x46\x9a\x84\x95\xf\x10\x81\x82\x53\x1c\x26\xc2\x31\xb0\x8c\xb3\x9d\xd9\x96\x5a\x79\xd1\xb2\x25\x80\x1f\xa4\xff\x60\x44\x1a\xb9\x45\xf9\xd2\x6e\xd0\x5e\x35\x98\x66\xc3\x90\xae\xa0\x78\xb5\x34\x2c\x12\xf5\xcf\xaa\xe9\x77\x8b\x70\xde\xeb\x65\xbb\x72\xa6\x88\x58\xa2\x27\xc5\x4b\xbc\x19\xdf\x36\x1e\xa\x74\x15\x17\xbd\x22\xe7\xac\xf6\xf2\x30\xe8\x13\x1\xef\x8f\xd4\x2b\x23\x48\x5f\x21\x3d\x73\x8\xa7\xd\xfd\x63\x67\x4a\x8e\x6a\xd7\xb4\x3b\x40\xc9\xfa\x64\x39\x7d\xea\xab\xfb\xd5\x8d\x42\x8a\x6d\xca\x94\xc0\xe1\xad\xbf\xa3\x9e\x28\x3e\x1d\x43\x6\xb7\x52\xe\x2a\xfe\xf8\x5d\x4c\xdd\x5" }, +- { 0x53b1d0, "\xf\x8\xef\x6c\x8f\x19\x5e\x9c\xdb\xec\x35\x6f\xe9\x5\xe0\xd\xf3\x17\xa2\xb3\xcf\x28\x46\xe1\xa0\x6\x4e\x38\x4d\x25\x3f\xb5\x12\x80\xb2\xa7\x3\xbc\xca\x41\x6b\x2f\x1d\x4b\x66\x6a\x68\xaa\xc4\x77\xa4\x59\x4\xbe\xc9\xb9\x7b\xd1\xc5\xde\x57\x85\xa9\xcc\xc8\x6e\x78\xb\x82\x2\x5f\xae\x51\x7f\x2d\x8c\xee\xcb\x69\x62\x67\x81\x87\x5c\x1f\x8b\x74\xa5\xe\xf2\x5b\xc0\xc2\x18\xe5\xfd\x95\x65\x20\x97\x58\xc6\x3b\xb7\x9\xdc\x21\x11\xe4\xe3\x16\xa8\x63\xf6\x33\x6d\x8d\x9e\xb6\x34\x7\x14\x36\x71\x60\x45\xfb\x4a\x9a\xea\x1b\x90\x31\xb0\x99\x1c\xd3\x7c\x24\x47\xe2\xdf\xe8\xc7\x29\x30\x1\x2b\xd4\x8e\xb8\xd6\x7e\x2a\x7a\x3d\xf4\xdd\xd0\xb1\xf0\x73\xab\xbb\xa6\xf7\x3a\x1e\xba\x52\x4f\xbd\x4c\xb4\x72\xc1\xe7\xfa\x1a\x54\xf5\xac\xff\x5d\x40\x37\xd9\x43\x23\x93\xa1\x3c\x79\xad\x44\x76\xed\xaf\x84\x94\x49\x50\x91\x10\x70\x5a\xce\xc\xd8\x0\xfe\x92\xd5\x55\x56\x2e\xeb\x89\x13\x88\xc3\x64\xe6\x75\xa3\xf8\xf9\xa\x9f\xcd\x61\x83\x96\xfc\x22\x9d\x7d\x2c\x53\xd2\xbf\xd7\x39\x3e\xf1\x48\x8a\x15\x42\x98\x27\xda\x26\x32\x9b\x86" }, +- { 0x53b2d0, "\xab\xdf\x86\xff\xce\xfa\xaa\x1\xd2\x41\x9e\xe7\xbc\xc0\x77\x22\xe8\x7c\x4e\xfb\x8e\xf3\x33\xc9\x4b\x26\x60\x89\xc4\x69\x79\x96\x54\xcd\x10\x48\x23\x31\x38\x44\x82\xe5\x6a\x8\xd7\x3f\xe1\x28\xd3\xa6\x4c\x7\x34\x5b\x7f\xb0\xd\x81\xd0\xf\xc1\xaf\xcc\x3d\x99\x19\x24\x57\xb4\x2c\x8d\x7d\x58\x55\x27\x8a\x42\xb\xa2\xca\x53\xc5\xe0\xf4\x4f\x2f\x8b\x21\x2\x2d\x12\x65\xf5\xf2\xc8\xed\x1d\x47\x5c\x1c\xa8\x40\x7a\x8f\xda\x87\xd5\xb1\x4\x70\xea\xe\xeb\x29\xb5\xb8\x9f\xf8\x2a\x3b\xb3\xfd\x5d\x0\x71\x2e\xc2\x46\xec\x92\xf9\x6\x74\xe4\x6d\xa0\x59\x6e\x25\xa9\x7b\x5f\xe2\x64\x3e\x37\xfc\xd4\x9b\x5\x61\x84\x20\xa\xc6\xa7\x76\x83\x62\x32\xa3\x6f\xc7\x78\xa5\xf6\x30\x6c\xdc\xa1\x2b\xbd\xae\x15\x3a\xf1\x4d\x45\x5e\x75\x98\x68\xad\x1b\xd1\x49\x35\x6b\x52\x14\x1a\x11\x88\xbe\x8c\xac\xc\xe3\x66\x13\xd9\x17\xcf\xdd\x93\xbf\x39\x56\xf7\x18\x94\x63\x3\x1f\xd8\xb6\xcb\xf0\x9d\x9\x16\xe6\x90\xa4\xb2\xba\x85\x3c\xd6\xfe\x36\x50\xc3\x43\x80\x1e\xb9\xee\xb7\x9a\x51\x9c\xdb\xef\x67\xde\xe9\x7e\x97\xbb\x5a\x72\x4a\x73\x95\x91" }, +- { 0x53b418, "\xc6\xcb\x61\x7f\xb\x44\x1c\xea\xc1\x87\x7d\x4e\xd4\x23\xbc\x82\x10\xa7\x3e\xaa\xbf\x46\xb2\xd2\xa3\x33\x20\x27\xc0\x9f\xe2\x45\x6b\x96\x6\x8b\x1d\xb7\x26\x56\x88\xc3\x13\x2b\x15\x37\x9e\x57\xe5\xc8\x21\xa9\x92\x2\x38\xfe\xd7\xba\x9a\xc7\x5a\x84\x28\x58\xfb\xa8\x90\x42\xf4\x3d\xfa\xdc\xa\x4c\x48\x8f\x8e\x39\x3b\x63\x5\x79\x4a\x2c\x65\x71\xe\xdb\x29\xe0\x50\x1\x8d\x19\x31\x94\xd\xb4\x9c\x6c\xb3\x68\xc2\x2e\xce\x97\xe6\x2d\xcf\x36\x91\x1f\x7a\xf\xc4\x8a\x5d\x9b\xad\xfd\x93\xd8\x3f\x9d\x64\x85\x4d\x99\x69\xd5\xd1\x18\x1a\xd9\x12\x2f\xf5\xf2\xda\x80\x51\x1e\x4\x60\x7c\xd6\x86\x54\x62\xac\x5b\x17\xf8\x66\xa4\x43\x49\xff\x0\xe1\x9\xb9\xed\xdf\xd3\x55\x72\x16\x4f\xe9\xe3\xab\x81\xe8\x2a\xcd\xb1\x53\x77\x75\xb0\xdd\xc5\x67\xf3\xa6\xe4\x34\x3a\x40\x1b\x83\x6f\xef\xa5\xa2\xca\x73\xb5\x47\x8\x76\x11\xc9\x3\x3c\xf7\x6a\x25\x41\x30\xf9\xaf\x5c\x95\xa0\xb6\x35\x78\xbe\xd0\x14\xec\x59\xbb\x70\x5e\x74\x6e\xb8\xae\x7e\xfc\x7\x6d\x52\xe7\x32\x8c\xcc\xeb\xf1\x89\x7b\xbd\xa1\xf0\xc\x98\x24\xf6\x5f\xde\x22\x4b\xee" }, +- { 0x53b550, "\xa0\xb9\x6e\x86\xd9\x98\x97\x73\x25\x76\xf\xcc\x7\xe8\x7a\x79\xb5\xe5\x38\xf4\xc2\x16\x10\x2f\xa2\xec\x3a\xb0\xdf\x5f\xb4\x6a\xb1\x60\xd4\x3e\xd2\xde\x6\x95\x62\xd5\xab\x9\x13\x11\x92\xa6\x37\xa\x2c\x64\xf1\x80\x1b\xfc\x31\x22\x3b\xff\x94\x70\xca\x84\x24\xdd\xd7\xd3\xb2\x32\x3d\xb6\xb7\xa9\x26\x9b\x48\xc0\x1f\xaf\x83\x6c\x58\x29\xc3\x7d\xc5\xf3\x8d\xb\x8a\x2a\x69\x1d\x91\x7e\x9c\x3\xb8\xf2\x9f\x45\x28\x4c\xbb\xcb\x2b\xfd\x61\x7f\xb3\x99\x6b\xbc\x7c\x19\x52\x2\x78\xea\x5c\x49\x74\xa7\xc7\x59\xf6\xf0\x8f\x81\x82\x8c\x1\xf5\xc4\xad\x21\xa5\x0\x5a\x39\x75\xd8\xc\xc1\x85\x17\x5b\x77\x43\xc6\x89\xa1\xf9\x20\x93\xee\x12\x1e\x1a\xe1\x57\xf7\x4\xae\x18\xcf\x33\x47\xfe\xe9\x8\x71\x65\xbd\xd\xcd\x6d\xe4\xac\xba\xdc\xd0\xf8\x4e\xe0\x8e\x5d\x41\x3f\x54\x42\xa4\x40\x34\x5e\x87\x7b\xe3\xdb\xe7\x51\xd6\x9a\xaa\xce\xbe\x36\x67\x35\xd1\x68\x4f\xfa\x23\xfb\xed\x8b\x44\x9d\x50\xeb\xc8\x14\x15\xe6\xc9\xe\x88\x4d\x66\xa8\x5\x3c\x46\x2e\x27\x6f\x72\xbf\xa3\x2d\x96\x9e\xda\xe2\x63\x1c\x53\x55\xef\x56\x4b\x90\x4a\x30" }, +- { 0x53b718, "\xd4\x58\xf7\x7\xc3\xfd\x69\x49\x23\x17\x65\x84\x9b\xf\x77\x97\xb\xc4\x67\xb1\xbd\xba\x85\xc7\xff\x8f\x32\x28\xea\x6b\xd7\x9f\x31\xab\x9e\x5b\x11\xa8\x36\x8\x96\xa4\x4f\xa2\x70\xed\xd3\x91\x2a\xd9\x73\x6\xb4\xaa\x35\x72\x48\xf3\x0\x1e\xc0\xdf\x2e\x29\xdd\xb7\xa\xd\xaf\x2f\x56\x19\xc\x39\x5c\x46\xec\xac\xfc\x7d\xe6\x92\xf2\x15\xa3\x5d\x93\x3d\x98\x2d\x79\xb0\x52\x5f\xb3\x89\x3\x4\x1d\x55\x42\xcc\xe9\x83\x16\x80\xd2\x8e\x5a\x66\x1b\x47\xfa\x88\xa7\x9a\xd1\x25\xf8\x44\xe2\x26\x59\x9\x61\x40\x3c\x34\xd8\x30\x45\xbb\xc6\x7f\xe7\xbc\x7b\xa9\x3a\x1c\xe5\x68\x21\x5e\xb2\x12\x2c\x74\xcf\x8a\xb9\x24\x1\xcd\xe4\xb5\x9d\x1f\x18\x3b\xe0\x71\x4e\x4b\x4d\x62\xa0\xd0\xc2\xd6\xeb\x43\x51\xf9\xa6\xf4\x2\x90\x1a\xa5\xef\x5\x7c\xb8\x57\xc1\xfb\x8d\xde\x50\x33\xf5\x82\x86\x3e\x76\xc9\x8c\xa1\x8b\xc5\xee\xbe\xe3\xda\xae\x14\xf1\x6f\xe1\xd5\x10\xf6\x27\xfe\x6d\xce\x9c\x6e\x94\xe8\xb6\xca\x60\x37\x53\xe\x54\x3f\x99\x75\x81\x20\xcb\x4c\x7a\x6c\x38\x78\xdb\x64\x95\x6a\x13\x4a\xf0\xbf\x22\x41\xdc\x87\xc8\x7e\x63\x2b\xad" }, +- { 0x53b838, "\xe3\x57\xc6\x8b\x64\x27\x80\x87\x9b\x49\x29\x6e\xa8\xda\x5b\x20\xbb\x69\x19\xd3\x5e\x30\x9e\x9d\x24\xcd\x2c\x1c\x79\xb\x9f\x8d\xff\x41\x6f\x68\xbd\xd9\x55\xcf\x36\xe6\x5f\x93\x99\x33\xe1\x72\xf2\xe\xd2\xe2\x2e\xd7\xa7\x32\x31\xa2\x25\xfd\xef\x67\x21\xe4\x2d\x3e\xd0\xac\x34\x35\xf1\x44\xee\x5a\x83\x71\xc1\x59\x3f\xa3\x10\xfb\xa6\xcc\x0\x40\x18\x3b\x9a\x47\xfa\xa5\x66\x5d\x6a\x2f\x16\x23\x88\x7a\x84\xc5\xc9\xea\xce\x58\xeb\x11\xaf\x5\x37\x89\x17\x1a\xe5\xb8\xa\xc0\x95\x48\x81\xb7\xf\xf6\x7e\x60\x8f\x8\xd5\x42\xd1\xf8\x45\x2b\x5c\x1b\x76\xf0\xc8\xf4\x3\x7d\x50\xb5\x86\xb3\xe0\x7b\x3a\x1f\xdc\x92\x28\xca\x61\x4a\x78\x1e\x51\xdd\x3d\xbc\x77\xd8\x53\xf9\x94\x74\xc3\x9\x4f\xb6\xec\x2a\x91\x8c\xd4\x38\x4e\x26\x1d\x96\xdf\x4\xd\xab\xa4\xfc\xc4\x15\xa9\x3c\x97\x6b\x7\xde\x9c\xe8\x22\xe7\x2\x6d\xa1\x39\xf3\x54\xba\x6\x65\x90\xb0\x6c\x63\xad\xf5\xb4\xb9\xc\xe9\x1\xc7\xd6\xc2\xb2\x56\xbe\xaa\xb1\xcb\x52\x82\x14\xed\x7c\xfe\xae\x85\x8a\x13\xbf\x4c\x98\x4b\x62\x12\xa0\x4d\x7f\x73\x8e\x43\x75\xf7\x46\x70\xdb" }, +- { 0x53bc10, "\xf\xc6\xa1\xa3\x50\xbd\xce\xa7\x9\xa4\xf7\x1b\x8c\x3d\xf0\xe5\xdf\x3c\x20\x75\x3f\xdd\x12\x81\xde\x3b\xaf\x68\xf6\xea\x41\x58\xeb\x5d\xae\x61\xa\x46\xed\x91\x23\x65\x99\x86\x27\x92\x8e\x83\x51\x8\x4b\x3e\x32\x1f\xbf\x5b\xa9\xc5\xfe\x7c\xf4\x15\xdc\x89\xf5\x2b\x72\xad\x6b\xba\x5a\xf2\x24\x53\xe7\x29\xee\x4\xd\xf3\xe0\xb7\x67\xcf\xb0\xc3\xbc\xc9\xfa\x66\xcd\xb4\xd5\xd9\x71\xe3\xb8\xa0\x25\xf8\x78\xc4\x5\xe9\x87\xfd\x35\x1a\x98\x9f\x16\xb3\x6\x26\x22\xb2\xd6\x74\xc7\x84\xc2\x7d\x64\xec\x54\x37\x4c\xef\x70\xe\x48\x9b\x4e\xd7\x80\x7\x73\xbe\xd3\x2\x3\x94\xfc\x59\xb5\x8b\x21\x9d\xf1\x69\xe1\x10\x38\x2d\xd2\x45\x30\x42\x85\x6e\x52\xc\x76\x82\x6d\xa6\xd4\xe4\x90\xa2\x62\x7e\x1\xe6\x1d\x4a\xff\x8d\x79\x8a\x55\x77\x2f\xca\x9e\x47\x19\x6c\x28\xb6\x93\x97\x6a\x18\x5c\x4f\x95\x6f\xc0\x14\x40\xdb\xa8\x17\x34\x36\x39\x56\x11\x13\xd1\xc8\xcc\x1e\x2c\x5f\x43\x5e\xa5\xe8\xd0\x9a\xe2\xab\xf9\x4d\x3a\xaa\x1c\xb\x2a\xb9\x31\x7a\x60\xac\xfb\xb1\x44\x0\x88\x8f\x33\xc1\x7b\x49\x2e\xda\x63\xd8\x96\x57\xcb\xbb\x7f\x9c" }, +- { 0x53bd10, "\xba\x9d\x27\x84\x89\xcd\x60\x67\x68\xd9\x1f\xea\xf2\x15\xd2\x6\x12\x5d\x54\x75\xbc\xa0\x29\xe8\x16\x70\xc8\xf1\x9\xa4\x26\x30\x49\xd\xbd\xf4\xf8\xef\x8d\x1d\x41\x38\xf7\x9c\x1e\x87\xf3\xbe\x7a\x37\x88\xcb\x36\xe6\xfc\xd6\xd0\xad\x78\x71\x93\x96\xf0\x3c\xfe\x57\xe9\x4f\x7d\xaa\xf9\x62\x9a\xab\x18\x39\xbf\xc\xc3\x4d\xe7\x97\x7f\x8a\x3f\x1\xc9\x80\x76\x9e\xfb\xa1\x3e\xfa\xb3\x45\x3b\xdc\x5c\x5b\x58\x61\x2b\xec\xb4\x55\x1a\x9f\x6a\x3\x11\x32\xd1\xe1\xb2\xa8\x6c\xe4\xa3\xa7\x4b\xf5\x17\x40\x6e\x8\xff\x81\x4c\x5\x79\xae\x1c\x83\x46\x25\x6b\xdf\x24\x64\x2e\x4e\x21\x31\x2\x73\x6f\x3a\x8b\xc4\x7b\xac\x23\x72\x20\x65\x7\x33\xa2\xe0\x47\x77\x85\x2d\xdd\x0\xf6\xd8\x9b\xb9\x63\xd4\x53\xaf\xb7\xda\xa5\xc5\xc6\x2f\xa\x6d\x92\xb8\x50\x74\xbb\x14\xd3\xf\xb0\x4a\x95\xe3\xce\xee\xca\xe\x91\x82\x8c\x3d\x8f\x22\xa9\xb1\x86\xc0\x5f\x28\x90\xdb\x7c\x4\x94\xb\xc7\xd5\xfd\xc2\x2a\x1b\x98\xed\xcc\x59\x8e\xe5\xe2\x42\xb6\x34\xd7\xa6\x13\x2c\xc1\x44\x51\xcf\x99\x48\x69\xeb\x7e\xb5\x52\x35\x19\x66\x10\x56\x5e\x43\xde\x5a" }, +- { 0x53be50, "\x64\xe7\x66\xd5\xf\xc3\xc8\x20\x4e\x9\xd3\x30\x3f\xef\xa9\x80\xe3\x72\x42\x68\xa5\x51\x99\xb\xbf\x4d\xd1\x34\xaa\xdf\x2f\xec\x55\x58\xb0\xdb\xb8\xd6\xc5\x9b\x9a\xa\xbb\x40\xc2\xb2\x2e\x78\x89\x97\x5d\x74\xf7\x52\x5b\xa1\x2b\x83\xae\x7b\xd9\x5e\xfe\xfd\x98\xd2\x29\x13\xc6\x8e\x5c\xca\x7\xd4\xe4\x49\xa8\xa0\xff\xee\xc9\xcf\x16\xb4\x61\x8f\x60\x1\x84\xb5\xac\x62\x54\x6\x2d\x63\xa7\x48\x73\x1e\x92\x2c\x3c\x82\xe1\xcb\x10\xf2\xd8\x50\xf1\xfb\x96\xc\xd7\x6b\x87\x77\x7e\x15\x8a\xde\x31\xe\xab\x59\xd\x3b\xf3\x79\x1f\xfc\x81\x27\x1a\xf9\x94\x2a\x45\x88\xfa\x47\xe9\x7d\xb7\xed\x7c\x32\x7f\xe2\xbd\x6f\x18\x76\x4b\x65\x70\x22\x1d\xaf\xeb\x28\x4f\x9c\xbc\xf8\xcd\xc0\x1b\x43\xb1\xea\xa3\x6c\x12\x35\x44\x8d\x25\xb3\x1c\x24\xc4\x9d\xa2\x36\x56\xb9\x19\xe8\x21\x11\xf0\x75\x5\x17\xc7\xce\x41\x4\x4a\xe0\x6e\x67\x69\x4c\xdd\x53\x3e\xa6\xd0\x3d\xdc\xcc\xe6\x9f\x93\xc1\x33\x90\x57\x37\xb6\xa4\x9e\x6d\x8b\x46\xad\xba\x86\x38\x85\xf6\x5f\x8\x14\x2\xe5\x8c\x5a\x39\x95\xf5\x91\xda\x7a\xbe\x23\x26\x6a\x71\x3\xf4\x0\x3a" }, +- { 0x53bf68, "\x36\xbe\x8a\x3c\x5d\xaa\xc4\xf5\xfa\xc\x3f\xd\xa0\xc6\x49\xc1\xe1\x20\x7a\x31\x84\x87\xf7\x9f\x71\x6b\xeb\xa8\x11\x35\x22\x78\xe4\x83\x97\xdd\x53\x39\x45\xb9\x3\xad\x4c\x34\x8e\x79\xfc\x57\xb8\x47\x66\xfd\x54\x96\x33\x48\x4b\x88\xf9\x7\xa2\x3e\x64\x1b\xb2\xf\x5f\xcb\xcd\x18\xfb\x74\x70\xb1\x2a\x37\x2c\x98\x9a\x7c\x30\xe2\x75\x28\x26\x63\x1c\xec\x3a\xa3\x8\x85\xc5\xe\x2b\x4\xe9\xc9\x4f\xd1\xd2\x25\x9d\x6c\xd0\xfe\xce\xca\x15\xbc\x82\x2d\x27\x3d\xbb\x56\xe6\x24\xd7\xe3\xf2\x6e\x12\x9c\x6a\xe0\xe8\x4a\x9b\xd5\x10\x86\xc7\x90\x7d\x61\x67\xd8\xb5\xf1\x1a\x8f\xf8\x89\x4d\xa\xe5\xf4\x7b\x60\xa1\x40\x42\x2f\x1\xb6\x1f\xef\xd3\x81\xc2\x5b\x6d\x41\x5c\xff\x95\xc8\x76\x94\xd6\xd9\x19\xf3\x38\xb4\xdf\x59\xb\x52\xb7\xab\x73\x14\x62\xbf\x9e\xb3\x21\x3b\x17\xba\x58\xcc\xdb\x6\xda\x5\xa5\x16\x4e\x80\x1e\xa7\x8d\xa6\x7e\x99\xae\x0\x5e\x2e\x77\x50\x65\x29\x7f\xd4\xee\xf6\x2\x13\xdc\x69\xa4\x44\x8b\x32\xde\x92\x68\x1d\x51\xcf\xa9\xbd\xf0\xc3\x72\xed\xb0\x8c\xac\xc0\x23\x9\x46\x55\x91\x43\x5a\xe7\x93\xaf\x6f\xea" }, +- { 0x53c0e8, "\x6d\x90\x16\x84\x89\x48\x99\x24\xad\xbc\x92\xe\x6a\xf5\x4e\xea\xaf\x38\xcb\xbd\x8a\x12\x9e\xd6\xb\x8e\x9c\xf8\xb5\xa1\x81\xe3\x9d\xfa\x65\x77\x6\x7b\xb8\x98\xda\x54\xf6\x3b\x7\x93\x5c\x7a\x15\xfe\x2a\x30\x36\x80\x39\x8c\x2b\x4b\x5b\x21\xe0\x13\x6c\x29\xc0\xbb\x27\x3a\xdd\x3f\xa2\xe9\xac\x4c\xef\x44\x70\x19\x5a\x72\x7c\xc5\x3c\xdc\xcf\x88\xf2\x51\x47\x61\x3\x67\x82\xfb\xed\x18\x9f\xb7\xa7\xb0\xc4\xf\x26\x5\x28\xe5\xd2\x4f\xa\xd0\xb3\x1\xd5\x1a\x37\x6e\x8\x9a\x1f\x60\x45\x5f\xf9\x33\x9b\x6f\x2d\xca\x9\xb4\x3e\xbf\x96\x95\x4a\x11\x1d\x74\xcd\x87\xce\xb9\x20\x68\xc3\x40\xf1\x31\x8d\x25\x7f\x2\x17\xb6\xcc\xd3\xa5\x59\xf4\x91\xd1\x83\x4d\xc2\xe1\x22\xec\x4\x52\xf0\xd9\xae\xc8\x56\xf7\xd4\x85\x42\x1e\x35\x1c\x7e\xeb\xe2\x76\x6b\x49\x75\x3d\x58\xff\x57\xbe\x43\x46\xf3\xba\x2e\x69\xa3\x34\x78\xb2\x73\x5e\xe7\x1b\x8f\xd8\x8b\x94\xa8\xe6\x97\x7d\xde\x2c\xa6\xab\x23\xfd\x50\xe8\x79\x62\xa4\x66\xfc\xee\x86\x41\xc6\xd7\xa0\xc7\xe4\x5d\xc9\x53\x32\x63\xaa\xc1\x64\xdb\xb1\x0\x10\x2f\xc\xdf\xd\x14\x55\x71\xa9" }, +- { 0x53c240, "\x74\x4b\x7\xe3\x16\x70\x33\x94\xb\xb6\xe6\xc0\x62\xd5\xe5\xfb\xbe\x8d\x67\xc8\xc7\x58\xc6\x2e\xf9\x47\x77\x12\x4a\x68\x6c\x84\x35\xe1\x69\x14\xc4\x48\x32\x11\x9d\xb1\xe\x5a\xd0\x17\x60\xed\x28\x21\xef\x10\x2b\x5b\x31\xab\x23\x89\xf0\x18\x66\x0\x87\x99\x30\xe2\xda\x49\x7f\xd2\x4d\xcc\x81\xd6\xdf\x37\xd\x1a\xaa\x51\x97\xb3\x73\xd3\x50\xb2\xdd\xc3\xbf\x3e\x92\x1\x64\xf4\xcd\x1c\x8f\xaf\xa9\x24\x36\x91\x9e\xa4\xd1\x75\xc9\x59\x42\x4e\xb4\x6a\x4f\xa1\xe8\x6d\x61\x63\xea\x3c\x38\x5\xe9\x9c\x46\xb9\x9f\xb7\x43\xeb\xf5\x5c\x76\x3b\xd7\xba\xa5\x7b\x6f\x5f\xde\xad\xe7\x15\x2\x2f\x5e\xf7\xa6\xbb\x52\x95\xd9\x86\x26\xa\xa8\x8\x20\xf1\x45\x13\xca\xf6\x65\xcf\xe4\x98\xdc\x80\x19\x7a\xfd\x9b\x4\x1e\xa3\x9a\x5d\x72\xb5\xfa\x3\x53\xc2\xc\xa7\x57\x55\x7e\x29\x6e\x83\xb0\x1f\xbd\x8e\x93\x8a\x79\x96\x39\x7d\x88\x27\xcb\x71\xf\xf3\xfc\x25\x40\x3a\xd8\x85\x2c\x6b\xd4\x2d\x34\x54\xec\x8c\xe0\x1b\xb8\x8b\x3f\xf2\xac\xff\x7c\xa0\xee\xbc\x22\x44\xce\xc5\x9\xdb\x82\x78\x90\xae\xc1\x6\xa2\x41\x4c\x1d\x3d\xf8\xfe\x2a\x56" }, +- { 0x53c368, "\x8b\x9c\xe5\x1a\x2d\x5a\xf5\xa6\x77\x3\xd4\xb4\x99\x84\x32\x53\xcd\xca\x43\xb5\xe2\xcb\x1e\x8c\xc7\x81\x89\x49\xb3\xf7\x71\xbb\x4e\xe8\x7d\xaa\x2e\xd0\x7f\x3e\xf1\xe9\x60\xbf\x87\xe6\x6c\x6d\xff\x47\x10\xc5\xc9\x3a\x5e\x30\x3b\x0\x4a\x18\x63\x11\x8e\x92\xab\xf9\x8a\x9f\x9e\x1d\x45\x62\xf8\x83\xce\x5d\xcf\x78\xdd\x93\x8f\xc2\x76\x2b\xd3\x54\xd\x4d\x44\x31\xa\x42\x91\x23\xfd\x36\x48\x79\x2a\x4f\x2c\x80\x7c\x7\xb9\xb0\x68\x52\x33\x70\xe1\x6a\x9\xbe\xad\xf0\xb8\x37\x5c\x41\x95\x59\x72\xa5\x67\xf6\xa2\x13\x82\xfb\x19\x34\x66\x3f\x5b\xac\x5f\x9d\xeb\xd8\xb7\x21\x1c\x3c\x75\x4c\xd1\x7e\x74\x40\xb6\x22\x98\x69\xee\xea\xa4\x7a\xe4\x6e\x58\xc0\x12\x1b\xe\x14\xae\xde\x9a\x7b\xd7\x28\xed\x1f\x61\x55\xf\xb\x57\x17\x9b\xef\xe7\x97\xfa\xaf\x24\x4b\xd2\xa3\xd9\x85\x64\x8\x2f\x96\x50\x35\xa7\xe3\x25\xc1\x46\x8d\xcc\x73\xe0\x56\x15\x90\xa8\xbd\x5\x4\x20\xc4\xf3\x39\x16\x6\x38\x65\xf2\xdb\x86\x6f\x27\x1\xf4\x6b\xb1\xbc\xdc\xba\xc6\x26\x3d\xdf\xa1\x29\x51\x2\xa0\xc8\xda\xa9\xec\x94\xc3\xc\x88\xd6\xb2\xd5\xfe\xfc" }, +- { 0x53c7b0, "\x5f\xb6\xef\xa1\xfb\xd0\xa3\xb\xc9\x67\x54\xdd\x92\x4\xa5\xe0\x99\xa7\x62\x53\x87\x3c\xf6\xcc\x12\x45\xd5\xa6\x7b\xb4\x8e\x6f\x3e\x6e\xe3\x41\x44\x61\x8b\x5e\x2a\xb9\x2b\xdc\x46\x7c\x4b\xf0\x50\x4d\x9b\xad\xc3\xa8\x7d\x81\x8f\x2e\x1d\x79\xf3\xfe\x29\x8a\x3f\x22\x35\x4c\xa2\xf1\x90\x58\x9a\x70\xac\x88\xc4\xbb\x43\xb5\xbd\xaf\x24\x2c\x1c\xb0\xe9\xbc\x3\x3d\x18\xc5\x7\xd8\x9f\x97\xdf\xd9\xc6\x68\x5c\x15\x2\xda\xa9\xc2\xaa\x6\x55\xc7\x76\xf4\x2d\x7a\x32\x85\x86\xee\x19\x95\x4a\xec\x94\x80\x89\xbe\x9c\xcd\x56\x38\x10\xd3\x8\xdb\xb1\x6d\x6a\x2f\xf5\x33\x52\xcf\xab\xe6\x1f\xa4\x73\xf9\xf\xc8\xc0\xe8\x93\x13\xd\x84\xf7\x9d\xba\x64\x83\xb3\xae\x71\x37\x1e\x8c\x25\x0\xf2\x21\x9\xea\xd1\x1a\x7f\x42\xe1\x16\x48\x6c\xc1\x1b\xf8\xd6\x20\x27\x74\xb8\x49\x60\xcb\x6b\xa\x3b\x72\x75\x9e\x47\xeb\x4f\x91\x31\xe4\x63\xd2\xe7\xfc\xde\xb2\x28\x4e\xce\x57\xc\xb7\x98\xed\x36\x7e\x5a\x34\x40\x51\x23\x30\x59\x77\xfa\x5d\x1\x96\x39\x8d\xff\x17\x11\x66\x5\xfd\xd7\x14\xe5\xa0\xbf\x69\xe2\x82\x26\x65\x5b\xd4\x3a\x78\xca\xe" }, +- { 0x53c8b8, "\x69\x23\xad\xbe\xc\x4e\x2f\x48\x7e\xe3\x30\xaa\x9d\x42\xc3\xc1\x6e\x13\x64\xff\x3d\xd9\xdf\xb3\x4b\x98\xfc\xeb\x92\x83\x95\x50\xaf\xc9\x7b\xf\xc7\x8d\x53\xa8\xbb\xb5\xd8\x2e\x9f\x3\x81\xe8\x2d\xed\x74\x6c\x97\xe9\xb\xbd\x1d\x15\x4\xa0\x5a\x16\xbf\x3f\x7c\x35\x6\xcf\x7a\xae\x44\x8b\xf4\xf7\x5e\x1e\xef\x27\x8f\x29\x55\xf2\x4f\xd\xea\xc4\x5\x88\x18\x94\x34\x8\xb4\x62\xd7\x26\x56\xfb\xf8\x37\x33\xce\x1c\xd0\x47\xd5\xe0\x71\x41\xd6\x87\xee\x72\xf1\x70\xe5\x75\x7f\x21\x54\xca\x80\xb2\x11\x7d\xbc\xdc\x7\xe\x91\x38\x96\xa1\xb6\x3a\xfd\x2\x6f\xa6\x3e\x10\x60\x9c\x63\x77\x59\xec\xa\x86\xf5\x28\xfa\xe7\xe1\xb7\x76\x36\x1a\x1f\xa5\x9a\x45\x39\xdb\x5d\xd2\x5f\x2b\xf9\xfe\xde\x31\xab\x52\xd1\xa4\x3b\x4a\xb0\x0\xb9\x9b\x9e\x43\xc0\x12\x89\xa9\xa3\x20\x65\x14\x1\x46\x2c\xcc\x17\x8a\x68\xe2\x19\x4c\xd3\x32\x5b\xdd\x66\x73\xcb\x85\x1b\xc6\x67\x6a\xd4\xc2\x8e\x61\xda\xf3\x57\x79\xa7\xb8\x8c\x9\x40\x5c\x6d\xb1\xa2\x22\xc8\xf0\x25\x49\x58\x24\x6b\xe4\xcd\xba\x93\x2a\x99\xc5\x4d\xe6\xf6\x84\x3c\xac\x90\x82\x51\x78" }, +- { 0x53c9e8, "\x1\x69\x88\x4f\xf0\x48\xe7\xbd\xc3\xba\x8\x63\x75\x6d\x3a\x4b\xd7\x86\x59\x47\xb\xde\xa\xf1\xbe\x58\xe1\x5d\x91\xab\x9\xee\xad\x5e\x28\xca\x6\xa9\x4\xe9\x8e\xc5\x6f\xd0\xfe\xdf\x12\xc1\x7e\x4c\x2b\xcb\xb1\x96\x7a\x90\xf8\xc2\xa4\xe6\x73\xa2\xdd\x1c\xaa\xe4\x30\x3f\xcc\xc4\x35\x66\xb3\x1d\xdb\xa0\x7\x36\xa3\x54\xb9\x43\x94\xc\x8b\x98\x72\x44\xbc\xf5\xcd\x2d\x2\x5b\xed\x1f\x29\xf7\x0\x7f\x53\xda\x85\x2f\xc0\x89\x33\xa5\x9f\x9a\x8d\x64\x68\xd2\x9e\xaf\x40\xeb\xec\xfa\x26\x41\x9d\xd4\xa1\x10\x8c\x37\xbf\x4a\x81\xac\x45\xd6\xa7\xe3\x9c\x8f\x21\xf2\xff\x42\xea\x87\x32\x1a\x2e\xcf\xbb\x3e\x15\x22\x65\x7b\x61\x3d\x83\xa6\x78\x6a\xd8\xf\x2c\x31\x62\x97\x5c\x14\x27\x49\x46\xf4\xd1\xf3\x93\xb6\x60\x95\x3b\x99\xc6\x70\xfb\x67\x24\x6c\x9b\x25\xc9\xe5\xb4\x4d\xd5\x76\x71\x2a\x1b\xdc\xfc\x8a\xae\xe2\xef\xe0\x17\x13\x5f\x57\xb5\x79\x50\x6b\x56\x7c\x52\x11\x3\xd\x23\x7d\xa8\xd9\xe\x6e\x3c\x16\x38\x92\xce\x51\x34\xc7\x55\x18\xb7\xe8\x74\x82\xb2\xd3\x19\x20\x77\x5\xb8\xc8\xfd\xf9\x80\xf6\x1e\x4e\x84\x5a\x39\xb0" }, +- { 0x53cae8, "\xa4\x6d\xc3\xfc\x24\xa5\xb7\x3f\x26\xc0\x2d\xe3\x49\x71\xe0\x36\xaa\x39\x6a\xb4\x21\x67\x9a\xfa\x23\xe5\xec\x12\x25\xd\x72\x87\x27\x7a\x5d\x60\x6f\x57\x78\x94\x44\x56\xde\xc9\x95\x97\x2f\x77\x9d\x53\x89\xfe\xff\x8b\x46\x2c\xcb\x61\x8\xdf\x79\xb6\x20\xc\x15\x3d\x4a\x2e\xb2\x7\x73\x3e\xcf\x6\x88\xf4\x37\x32\x19\x3a\xf6\xe9\x75\xac\xeb\x30\xf9\xbb\xa7\x84\x63\x5f\xa8\x1a\x91\xc8\x9c\x7f\xd6\xd5\xed\x3c\x98\xd8\xbc\xb1\xf\xfd\x9\x3\x99\x6b\x16\x8e\x59\x4e\x1f\x66\x82\x2\x8d\x96\x4b\x22\xc5\xa3\x50\x74\xdd\x2b\x5e\xa1\xda\xcd\x5b\x58\x9e\x28\x1d\xe8\x62\x47\xf1\x33\x35\xaf\x34\xef\x5a\xa2\xbd\xe\x81\x4\x5\xee\x7c\x51\x4f\xbe\xc4\x42\xb\xca\xd3\x70\x9f\xba\xd4\x8c\x10\xfb\x90\x14\x13\x1b\x3b\x11\xc1\xad\xb9\x64\x48\xd0\x31\x4d\x8a\xd2\x86\x38\x0\x92\xdb\xf5\x5c\x9b\xea\x17\xf8\x68\x83\x18\x4c\x52\x1e\x2a\xe6\xa\x69\xab\x6c\x6e\xf7\xd9\xc7\x41\xf3\xc2\xa6\x1c\x7d\xb3\xd7\xdc\xd1\x93\xe2\xce\x85\xbf\xb8\xe1\x76\x40\x54\xcc\x7b\x8f\xa9\x7e\xe4\xae\x55\x1\x80\xf0\x43\xc6\xb5\xf2\x65\x29\xb0\xa0\x45\xe7" }, +- { 0x53cd28, "\xed\x8e\xda\x43\x63\x70\xc8\x69\xee\x7\x3b\xd6\xe9\x1c\x17\xc\x38\x97\xa3\xe1\xe\x6\x40\x96\x0\x7c\xbb\x39\x9\x2b\xd7\x78\x19\x59\x4\x44\xb9\xa7\x13\x68\x16\xcd\x8d\xa8\xc2\x54\xb5\x30\xac\x72\x5b\x12\x1b\x6b\x89\x6f\x99\xc6\xd3\x51\x76\x87\x91\x60\x27\xa0\x4d\x4f\x47\xf3\xd\xcc\x98\xaf\xf8\x6e\x9d\x9f\x7b\xfc\x36\x5e\x9c\xb8\xf5\x8b\xdf\x7f\xfa\xe4\x75\xcb\x9b\xf0\x77\x3\x41\x62\xb3\x11\x32\xa5\x2d\xa2\x6c\x3d\x86\xdb\x80\xba\x2a\x83\x90\xf2\x22\x24\xc5\xff\x5f\xb0\x15\x31\xbd\x1e\xcf\x57\x4e\xc7\xae\xf4\xe3\xb4\x4b\xce\x35\x3c\xb2\xa\x95\xfe\xa1\x5\xf9\xd1\x8a\xf6\xdd\x74\xa6\x2\x1\xe2\x52\xa4\x10\xb7\x93\xf7\xc4\x18\x28\xd4\x84\xa9\x9a\xc0\xe8\x8f\x53\x2f\x7a\x5c\x58\x26\x79\x42\x4a\x25\xad\x33\x67\xbe\x7d\x34\x1a\x46\x29\xde\x20\xd5\x3f\x1d\xd8\x3e\xe0\xb\xc1\x71\x14\x1f\x73\x6a\xfb\x61\x55\xab\x50\x85\xbc\xb6\x7e\x9e\xd9\xeb\x5d\xd0\xd2\x21\x64\xf1\xbf\xdc\x56\x45\x94\x65\x4c\xe5\x3a\xb1\x6d\xe6\x49\x8\x23\x88\xaa\xfd\xc9\x5a\x81\x37\x2e\xf\xef\x2c\xca\x92\xe7\x48\x82\x8c\xc3\xec\x66\xea" }, +- { 0x547230, "\x31\x69\xdc\xcc\x61\xe2\xd4\xad\x9a\x51\xe5\xfa\x53\x6d\xfe\x6\x89\x79\x46\x99\x24\x7c\xa0\x18\x56\x27\x7f\x2e\x2a\x77\x0\xd8\xcd\xb6\x1e\x4b\x4e\xfc\x4\x23\xa4\x75\x8\x44\x19\x80\x7\xf3\x16\x5c\x9\x93\xb9\xdb\x92\x10\x30\xd0\x43\xd7\x85\xfb\xdd\xe\x49\x39\xca\x2\x64\x8a\x35\xa6\xee\x13\xe0\x91\x9b\xce\xc2\x12\x82\xab\x4d\x74\x22\xd\x70\xb2\x90\x98\x3\xec\xc7\xcb\x9c\x71\xba\xac\x50\x21\xf8\xc0\xda\x67\xa\x72\xfd\x2d\xc\xf6\xa7\x52\x65\xaf\xc3\xa3\xa1\xea\x5a\xd5\x17\xbe\x7e\xcf\x94\xb0\x34\xd1\x1b\x6e\xf0\x54\xf2\xe8\x76\xbc\xe4\x3f\xf4\x73\xe9\xae\x7b\x6c\x3a\xbb\x8f\xe7\x4a\xb1\xb\x7a\x68\x86\x11\x2f\xf1\x8d\x81\x47\x42\x2c\x7d\x8c\x95\x55\xf7\xc5\x84\x1d\x59\x41\xd6\xbf\x8b\x33\x9f\xe6\x38\x45\x87\x1\xc4\x1a\x78\x40\x3c\xbd\xe1\xb7\x1f\x26\x6a\x6b\xa8\x96\xf5\xa9\x60\x37\xed\xa2\x15\x58\x3d\x8e\x48\x3b\x9d\xb4\x5b\x29\x62\x4c\xc6\x83\x66\xb3\xb8\xde\x1c\x2b\x5e\x63\x57\xd2\x5f\x25\x36\x20\x28\xb5\xc1\x5d\xc9\xf9\x9e\xf\x88\xa5\x5\xef\xdf\x97\x4f\x14\xc8\xd3\xff\xd9\xeb\xe3\x32\xaa\x3e\x6f" }, +- { 0x53ceb0, "\xbc\xb2\x5e\x24\x9d\xc6\x26\xc5\x91\x6c\x87\xb3\x70\x47\x6f\x5f\x1\xad\x7f\xa5\xea\x4\x7c\x31\x39\xdb\x15\x9e\xdd\x64\xb8\xf4\x9a\xd0\xe0\xf\xf0\xcd\xef\xd4\x23\xc0\x14\xcf\x79\x5b\xba\x48\x2f\x18\xc\x95\x55\x43\xab\x67\x99\xa3\xbd\xd9\x90\xec\xbf\x21\xff\xd2\xb6\x96\xf1\x5d\x6a\xe3\xd5\x4f\x7d\x8f\x46\xb1\x7e\x12\xb4\x6e\x97\x37\xa\x36\x94\xc8\x1f\x51\x8d\x60\x78\xaf\xfa\x9c\x2a\x40\x7b\x1d\xbb\xe9\x75\xe8\x5a\x3a\x11\xf5\x7\xed\x5\xc7\x9b\xf7\xb5\xb0\x1c\xd1\x4a\x83\xc4\x81\x7a\x92\xf2\x3b\x4e\xb9\x2\xde\xaa\xe\x1a\xcb\x5c\x44\xe1\xd6\x98\xa2\x4c\xee\xd7\x45\x9\x32\x20\x3e\x3d\xa7\x57\x58\x0\x73\xa6\x10\xfb\x6\x4b\xce\x74\x35\xfc\xae\x77\x89\xfe\x19\x53\xfd\x82\xc2\x85\x30\x50\x84\x8\xc3\x28\xf9\x22\x80\x65\x62\x13\xe4\xca\x34\x3f\xdc\x4d\xf3\x8a\x86\x8b\x69\xf8\xda\xa4\xc9\x61\xe7\x38\x6b\x54\x2b\x49\x29\xa0\xc1\x71\xd8\x2e\xa1\x1b\xd\xcc\x8e\x8c\xa8\x2d\x27\x42\x56\x16\x41\xf6\x72\xa9\xb\xe2\x68\x25\x63\x93\x1e\xb7\x9f\x59\xd3\xac\xe5\xdf\x2c\xe6\x88\x76\xeb\x3c\x52\x33\x17\x66\xbe\x3\x6d" }, +- { 0x53d168, "\x3\x21\xa0\xee\x97\xa8\x35\x87\x9f\x6e\x88\xf0\xc1\x1a\x19\xbd\xd2\x17\x78\xb9\xd6\x29\xf4\x28\x40\xe6\x8d\x1c\x2f\xf6\x56\x14\xdd\xa5\x57\x48\x9a\xce\xb4\xff\x5a\x5\x3a\x9d\x7e\x6d\x96\x6c\x55\x3b\x38\x4b\x51\x1f\x60\x8\x1d\x70\x22\xae\xd3\x8f\x99\xc3\x83\xe0\xde\xea\x6\xf9\x9b\x5c\x52\x2a\x72\xb7\xc9\xdb\xfa\xd7\xdf\x68\xbc\xb6\x59\x98\x74\xb2\x27\x9\xf\x44\x6f\x91\x7d\xcc\x12\x4e\x2d\x42\x7a\xf7\x9c\x7c\xe4\xf8\x94\xad\x23\xef\x8a\xaf\xb8\xe2\x80\xb5\x86\x54\x47\x4a\x2\x3c\x5f\xf3\xec\x4d\xe7\x8b\xbf\xb0\x26\xc5\x67\x24\x3e\xca\xbb\xd8\x1b\x63\xc6\x82\x75\x69\x5e\xdc\x45\xac\x71\x30\x76\xa\x81\xda\x33\x32\xd5\xbe\xd\xfc\xf2\x3d\xa4\xf1\x73\xed\x43\xd4\xe5\x2e\xe9\xd0\xcb\x41\x37\x5d\x34\xd9\x77\x7b\x7f\xa3\x39\x6a\x61\x16\xcf\x1\x7\xfd\x58\x13\xa2\x20\xc7\xc2\x66\x2c\x50\xd1\x65\x79\xc8\xb1\x64\xb3\x90\x0\x5b\x11\x31\xe\x25\x6b\x89\xe1\x8c\x53\x10\xaa\xc\x4\x4f\xa1\xa7\xc4\x85\x92\x36\x46\x1e\x3f\xfb\x84\xe8\xc0\x8e\xa6\xa9\xcd\xf5\xba\xab\x62\x15\x18\x9e\xb\x4c\x2b\x49\xeb\x93\x95\xe3\xfe" }, +- { 0x53d2d0, "\x43\x2f\x53\xa0\xc2\xfd\xcc\x6\x29\x3e\x1f\x44\xab\x65\x74\x54\x49\x27\xb7\xe2\x2c\x5a\x33\x34\x1e\x16\xa7\xae\xa\x92\x55\x20\xad\x98\xf8\xa9\xe\x8b\x32\xdf\xa5\x15\xfc\x9f\x23\x3c\xc4\xc0\x4c\xbe\x89\x9a\xf0\xe4\x73\x59\x30\x9e\x82\x58\x51\x8f\xbf\xa1\xc7\xeb\xf1\x64\x1b\x4b\xc8\xc3\x38\x31\xd2\xfe\x3d\xd0\x77\xcb\xd6\x24\xf7\xc\xe5\xff\xd8\x4d\xac\x10\xe6\x76\xbb\xf\x9c\x6c\x2e\xb\x75\x78\x5d\xa3\xaf\x17\x5e\xb0\xe1\xb1\x9b\xf9\x7\x39\x6d\x7b\x1c\x2a\x9\x3f\x12\x4\xc9\xc1\xc5\x19\x61\x5\xb4\x47\x37\x5f\xd5\x94\x28\x21\x88\x97\xfa\xd3\xcf\x7f\xdd\xd4\xf3\x68\xf4\x81\x62\x84\x91\x83\x8c\x7e\x67\x63\x66\xed\xe7\xe9\x85\x6f\xdb\xaa\x87\xec\xde\x90\xba\x25\xa2\xd\x6b\x5b\x7a\x96\x70\xe0\x86\xa8\xe8\x6a\x4e\x42\x57\x2b\xb6\x40\xce\x69\x46\xb5\x72\x80\xcd\x13\xf6\xf2\x0\xda\x93\x22\x60\x3b\x7c\xb2\x48\xef\x3\xb9\x71\x4f\xc6\x45\x36\x26\xfb\xf5\xca\x2\x6e\xd9\x8d\x95\x14\x2d\x8a\xd7\xdc\x52\xee\x99\xa4\xbc\xb8\x8e\x1a\x3a\x1d\x4a\x7d\x1\xe3\x56\xa6\x50\x35\x18\x8\x79\x5c\xbd\x41\xb3\xea\x9d\x11\xd1" }, +- { 0x53d3d0, "\xf1\xbb\x4b\x7e\xc1\x8a\x41\x12\x97\x5e\x57\x56\x9f\x2c\x5f\xb6\x47\xff\xb1\x4c\x8b\x9c\x63\xc4\xa7\x98\xb2\x31\x84\xb4\xd\x1d\xe0\x67\xfd\x2\x13\x10\xdb\x8\x83\x48\xc6\x86\xaa\xe5\x80\x9\x38\xfc\xe2\x85\xc7\x8d\xa9\x3b\x18\xa5\xb7\x32\x9b\x6a\x2e\x87\xc0\x24\xa0\xfa\x6b\x76\xa2\xe6\x7f\x5d\x7b\x40\x33\xfb\x62\xf6\x43\xd1\x6d\xa1\x29\xd5\x17\x50\xf9\x1c\xeb\xf2\x22\xc2\x51\xe4\x26\xca\x5b\xf\xf8\x96\x4e\xba\xf3\x55\xa4\x37\x36\x82\x70\x99\x20\xc9\xf5\x7c\xa8\x92\x6\x72\xe7\xb5\x9d\x44\xd2\xbf\x64\x16\x49\x3\x4a\xe3\x68\xd0\x1a\x34\x95\x7d\xcb\xbc\xd3\x78\xd7\x5a\xb0\xb9\x2f\x27\x77\xf7\x45\x25\x52\x1b\x3c\x3d\x9e\x2b\x74\x89\xa\x1f\xfe\xf0\x2a\xe1\x1\x3a\x9a\x39\x8e\x79\x71\xd8\xcc\x46\xe8\x69\x3e\xaf\x7a\x21\xad\xea\x75\x93\x15\x30\xf4\xe9\xdd\xe\x60\x28\x6e\x88\xae\x81\x4\x59\xc5\x90\xee\x61\xcf\x8f\xb8\xb3\x54\xed\x58\x6c\x91\x3f\x65\x6f\xd6\xbe\x4d\xef\xde\xa6\x8c\xc\xc3\x23\x35\x5c\xac\xd4\xda\x5\xc8\x14\x94\xd9\x19\xcd\x4f\x2d\x0\xdf\xbd\x7\x42\xab\xdc\x73\xa3\xb\x66\x53\x1e\xce\x11\xec" }, +- { 0x53d798, "\xcc\xbb\x69\x91\x5\x73\xbe\x41\xf4\x59\x24\xa5\xf6\x28\xc7\x7a\xc1\xd5\xd\x62\x40\xb1\x32\x16\x6d\x77\xdb\xee\x65\x95\xd7\x35\x2f\x64\x30\x7\xfa\x5a\xe3\x88\x93\x6a\xeb\x31\xde\xd4\xcb\x4f\x92\xc8\x11\xfb\xd0\x4e\x3a\xdc\x7e\x15\xf1\xb4\x61\x58\xad\x9e\xfe\xb9\x6\x4a\x0\x6f\x3\x7f\x8a\x20\x3d\x22\x78\xe1\xe9\xe6\x14\xbc\x75\xe4\xf8\x19\x5b\xc4\xb3\x7d\x76\x2d\x3c\x9d\x9b\xac\x8e\xb2\x3b\xb5\xa7\x47\x9f\xc3\x36\xdf\xf9\x90\x80\x43\xf5\xa4\xe\x4d\x33\xe0\xc\xdd\xb8\x2\x7c\x8b\xf0\x45\x46\xa9\x8c\xcf\x9a\xca\xce\x84\x83\x71\x48\x39\xba\xfc\x2a\xe2\x57\xc5\x98\x97\x60\xc6\xae\xc0\xd8\x37\x81\xaa\xb6\x2b\xea\x26\x21\x4b\x55\xe5\xd2\x85\xab\xb7\x34\xbf\xd9\x70\xcd\x53\x96\xc2\xef\x63\x13\x1e\xed\x12\xc9\x74\x42\x5e\x3e\x54\x9\xd3\x89\x6e\x72\x49\x2e\xd6\x1a\x9c\xa\xa8\x6c\xbd\x10\x86\x4\x38\x50\xf2\xb\x1f\x87\x2c\x29\x17\xfd\x52\x66\x67\xf\x8d\x1\xb0\x18\xda\xe8\x1d\x94\xa3\x25\x79\x3f\x8f\x51\xa2\x23\xf3\xaf\x68\x5d\xa1\xf7\x99\x1b\xff\xec\x56\x44\x8\xa6\x6b\xe7\x5c\xd1\x1c\xa0\x5f\x7b\x4c\x82\x27" }, +- { 0x53d970, "\xb9\xd7\x6b\x9c\x5b\xfb\xc0\x9b\xf\x49\x55\xa9\x6d\xa5\x17\xd0\xc3\xdc\x4b\xb8\xf2\xb0\x93\xee\x3c\xeb\xdf\x8d\xe1\xf6\x2f\xe2\xc4\x32\x4c\x35\x62\xb4\x92\x91\x1c\x6f\xb6\x30\xe3\x5a\xb2\x2\x5e\x64\x21\xd5\x0\xcd\xd2\xb7\xd\x81\xef\x14\xb1\x87\xf0\x8f\x20\x39\xfc\x16\x63\x38\x1a\x7a\x56\xe4\xf3\x6e\xf4\xcb\x27\x57\x34\x2b\x12\x86\x79\x3f\x7\x6\x5d\xe\xbd\x7b\x54\x8e\xf1\xc8\x51\xf5\xbf\xd8\x5\x26\x47\x67\xda\x53\x95\x98\xea\xed\x5f\x74\x41\x3a\xc\x8c\xa6\x94\x59\xb3\x8b\x46\x6c\x7c\xbe\x9e\x7d\x83\x36\x88\x31\x7e\x18\xdb\x5c\x19\xe6\xe0\x58\x9d\x72\x13\x77\xdd\xc2\xac\x75\x96\x8\x73\xd4\xa\x2c\x22\xe5\x2d\xf8\x71\xaf\x45\x2e\xc6\x76\x3d\x65\xf9\x29\x4f\x80\xd1\xd3\xe9\x69\x9a\xab\x90\x1b\x1\x1e\xc7\x15\x24\xec\xcc\xe8\xad\x3b\x10\x4d\xcf\x85\xa1\xa7\x89\x25\x11\xd9\xc1\x1d\xae\x9\xde\x6a\x44\x4a\x3e\xbb\x48\xca\xe7\x70\x4\x9f\xa8\x68\x43\xb\x8a\x52\x42\x50\xba\xfa\xce\xd6\x33\x61\x60\xa0\xa3\xf7\x3\x1f\x84\xfd\xbc\x40\x7f\x66\xaa\xc5\xb5\xa4\x37\xfe\x97\x28\xff\x78\x23\x82\xc9\x2a\x4e\x99\xa2" }, +- { 0x53da70, "\x46\x47\x9d\xa8\xcf\xa7\x62\xc7\x30\x42\x69\x3a\x34\x5a\xbe\xd5\x59\x63\x33\x21\x2c\xa0\x6\x1e\x31\xa6\x92\x3f\xc8\x57\x5e\xbf\xa9\x90\x19\xb0\x29\x7\x12\x1f\x23\x97\xe3\xa4\xdd\xb8\x3c\xb2\x5c\xce\xda\xd0\x52\x8\x64\xc3\xc0\x9a\xca\xea\x43\x6b\x41\x1c\x8c\x7a\x7b\xd1\x94\x5\xc\x93\x15\x51\xd9\xd4\x3e\x4c\x2f\x49\x4\xd2\xee\x73\x0\xa2\x8d\x6d\x55\x2\x3\xfe\xb\xc2\x1a\xe2\xf1\x83\x80\x36\x78\xf5\x96\x40\x75\xe\x9c\x7d\xad\x32\x5f\x2b\xc9\xbb\xf4\x7c\x66\xb7\x54\x8a\x89\xff\x50\xdc\x60\x25\xb3\x6a\xfb\xe4\x4d\xab\xb9\x74\xc5\xbc\xb6\xe8\xc6\xfd\x7f\x4a\x76\x3b\x9f\x45\x18\x4f\x9e\x95\x13\xb5\x10\xf8\x22\x5d\x1d\xdb\xbd\xb4\x6f\x84\xba\x17\xd\x6c\xaa\x44\xae\xf6\xde\x81\x11\x79\x85\x86\x39\x99\x82\x38\x6e\xa3\x26\x68\xeb\xc1\x27\xed\xcb\x2e\xdf\xf7\xef\xfa\xb1\x9\xd7\xd8\x8b\xac\x37\x4e\xe7\xf0\xe1\xd6\xa\xd3\xec\x61\x72\x5b\x28\xa1\x87\x70\xf3\x71\x98\x8e\x20\x53\x16\x3d\xa5\xf2\xf9\x4b\x9b\x91\x88\x2a\x65\xf\xfc\x67\xe6\x58\x2d\x14\x56\x48\x1\x7e\x35\xaf\xc4\xe9\x8f\xe0\x1b\xcc\x24\xe5\xcd\x77" }, +- { 0x53dbd0, "\x77\x1f\x49\xca\xc3\x17\x39\x14\x66\xde\xc5\xd9\x2f\xf\x6e\xd3\x7d\x21\x60\xec\x9a\x4b\x25\xc2\x71\xfc\xb\x81\x8e\xbf\x36\x99\xf7\x6b\x7e\x86\x10\xdc\xa7\xb0\x8b\xb9\x72\x20\xf4\x5e\x31\x74\x6c\x4f\x80\x4\xb1\xc9\xb7\xd0\xab\x7b\xd\xf6\x1d\xbc\x38\x78\xaa\x43\x3f\xf0\x82\xcf\xcb\x96\xf5\xeb\xce\xb5\x12\x29\xc0\x62\x63\x9\xf1\x2\xc1\x44\x32\x2c\xe8\x4e\xe6\x57\x7a\x83\x95\xb8\xfb\x37\xd7\x2a\x3\x5d\xef\xc7\x11\xd6\xa2\xb2\x5c\x85\xa3\x5a\x19\xfe\x8a\xad\xd2\xbd\x28\x9b\x34\x6f\x3c\x67\xe1\xc\x24\x68\x97\xb4\xda\xe3\x98\x7c\x2b\xd5\xee\xe4\xcc\x47\xcd\xb3\xe7\xfd\x61\x42\x3d\x4d\x9c\x5\x9e\x4a\xdd\xa9\xdf\x6d\x45\x6a\xd8\xfa\x16\xae\x58\x1b\x76\xf9\xa0\xe5\xb6\x1a\x59\xa5\xba\x9f\x65\xbb\xa4\xe\xd1\xd4\x51\x41\x40\xc8\xe2\xdb\xaf\x94\x64\x7f\x22\x3b\xf2\x2d\xc4\x70\x2e\x5b\x69\xc6\x56\x33\x7\xa\x15\xea\x91\x53\x1\xf8\x84\xe0\x30\x90\x75\x87\x5f\x54\x6\x46\xe9\x35\x92\x50\x79\x88\x1e\x8d\x3e\x8f\x73\x0\x18\x89\x93\x9d\x8c\x27\x1c\xa6\xbe\x23\xf3\xed\x55\x52\xa8\x26\xff\x8\x13\xac\x4c\x48\x3a\xa1" }, +- { 0x53dd70, "\x97\xd5\x40\x91\xed\xf1\xce\xf3\xc2\x6e\x94\x19\x5f\x5b\x7d\x9b\xc\x29\x5d\xda\x71\x7c\xab\x9d\xb4\x9e\x2d\x48\x2\xa8\x0\xbe\x7b\x86\xf\x38\x56\xee\xd3\x34\xa6\xbf\x7f\x1b\x8d\x53\xe8\xdb\x61\xa4\xe2\xe1\x2e\x78\x3d\xb6\x80\xd8\xe\xfa\x6d\xd1\xe7\x6\x4e\x14\x77\x54\xae\x5\xd4\xbc\x6a\x74\x3b\x1c\x8a\xc0\xb7\x45\x92\x26\x11\xd0\x99\x57\xaf\xb3\x95\x84\xfd\xc4\xa3\x22\xa7\x39\xbd\x41\x1e\x4f\x3e\x1a\x2b\x15\xba\x64\x1\x23\xa9\x37\x58\xd\x67\x76\x2c\x8e\xca\xc8\xdc\x65\x98\x90\xea\xad\x6f\xcc\xe5\x32\xbb\x28\x70\xf5\xa5\x12\xb9\xc6\x75\xf0\x3c\x4c\x6c\x85\x73\x88\xe6\x7\x72\x69\x82\x8b\x2f\xb2\xde\x10\x6b\xdd\xff\xb1\x43\xd6\x50\xcf\xd7\xb8\x4\x68\xe0\x93\x18\x79\xa\x9\xc5\xaa\x83\x7e\x16\xf4\xc3\xcb\x96\x87\xc7\xb\x49\x3a\x62\x3f\xb5\x31\x24\xa0\x8f\xf7\x13\x30\xe9\x51\x59\xa2\x4d\x47\x4a\xe3\x8c\x55\x81\xa1\x5c\x1d\xfc\x2a\xfe\xeb\xcd\xdf\x60\x25\x89\xef\x33\x7a\x20\x66\x27\xc1\xb0\x3\xf2\x9f\xf8\x1f\x9a\x5a\x9c\x5e\xf6\x35\x21\x52\xd9\x44\xe4\x4b\xc9\xec\xd2\x63\xf9\x36\x8\xac\x42\xfb\x17\x46" }, +- { 0x53e0d0, "\xed\xb6\x90\x15\xcd\x25\x37\x67\xfc\xf3\xd9\x12\xb8\x36\x3\x5d\xe5\x44\x43\x20\x93\x47\xfb\x9b\xca\x3b\xd0\x9c\xbf\x34\x42\x3a\x68\x73\x76\x3c\xc1\x8e\xb1\x51\x31\x98\x19\x1b\xb\xfe\xeb\x3d\xe6\x82\xea\x2\x9f\x9e\xf2\x46\x87\xfd\xb2\x83\x1f\x9\x8b\x4f\x5e\xa8\x16\xd7\xad\x71\xd2\x64\x24\x66\xe4\x48\xa\x79\x4\x84\x49\x52\xda\x8\x58\x8d\xec\x0\x7b\xe1\x2b\xd3\xc7\x96\x38\x32\x74\x2f\x60\x7a\x7d\xac\x85\x99\xa5\xbb\xc0\xf4\x10\xd4\x61\x6f\xba\x26\xc5\x3f\x8c\xb0\xf7\xee\xe8\xb3\x11\xa6\x2d\x54\x30\x1d\x2e\xe0\x1e\x6b\xc\xce\xcb\x6c\x65\x39\x4e\x5f\xdd\xef\x41\xc9\xf8\xe7\xf6\x92\xd8\x4a\xdc\x53\x40\xbd\xa4\xb5\x22\x9a\xe\x5b\xb7\xde\x5c\x8f\x29\xaf\x8a\x56\xb9\x95\x94\x5\x27\x35\x5a\x78\x18\xae\xd5\xb4\x3e\xa9\x6e\xaa\xc4\x6\x80\xc8\xf5\x6d\x55\x33\x72\xa0\x1c\x89\xa1\xa7\x2a\x97\x4b\xcf\x4d\x6a\xf9\x9d\x28\xf\x14\xa2\xff\x7e\xd6\x81\x91\x7f\x23\xd\x57\x62\x4c\x17\xc2\xc6\xf0\x77\xf1\xa3\x21\x88\x7\xab\x69\x63\xe2\xd1\x50\xcc\xe9\xdb\xc3\x86\xbc\x59\xe3\xbe\xfa\x75\x1\x45\x13\x70\xdf\x1a\x7c\x2c" }, +- { 0x540278, "\x6c\x9f\x49\x77\xa9\x27\x95\x66\xde\xf\x58\x2f\x4c\x1c\x4b\x73\x22\xcc\xfb\x1a\x85\xf6\x9c\x8b\xc5\xdd\xb0\x15\x46\x37\x79\x2\xab\x3d\x44\x8a\x10\x87\x9e\xfc\xba\xb9\x2b\xa\xf4\xd9\xbf\x78\xf1\xef\x11\xdc\x80\xd2\xd5\xf7\x5c\xbe\xe2\xd4\x9d\xd3\x13\x1\xe1\x18\x50\x53\x43\xd7\x64\xf8\xdb\xf2\x62\xcd\x99\xe7\xa2\x0\xaf\xbc\xff\x25\x91\x5f\x83\x60\xec\x42\xb6\x47\x8e\x6a\xd\x4f\x16\xe6\x51\x14\x8f\x5\xea\x70\x3a\xca\xc7\x74\xce\x5d\x98\x31\x3b\xe9\xe0\xc3\xa4\x1b\x92\xd0\xc\x40\x4d\xb5\x7f\x8\xf9\x39\xb1\x29\xc4\xd1\x21\xac\xc0\x54\x4\x55\xcb\x17\x69\xfe\xe5\x3e\x88\x1d\xe\x7c\x76\xb2\xc6\x24\x81\x9\xe4\x59\x34\x7a\x86\xf5\xad\x5e\x38\xbb\x4a\xe3\xc8\x26\x30\xbd\xfd\x33\x72\xb4\x20\x2a\x19\x6b\x97\x32\x96\x7b\xa1\xa6\xdf\x61\x71\x7\x23\xee\xc2\x75\xb7\xaa\x7e\x67\xa0\xa3\x94\xd8\xa5\x1e\x68\xda\xa7\x48\x8c\xf0\xb3\x4e\xfa\x9b\xb\x6f\x2d\x6d\x8d\xcf\x5b\xc9\xae\x9a\x3f\x6\x1f\x90\x65\x6e\xf3\x93\xa8\x45\x12\x2c\x52\x36\xeb\x82\x3c\x7d\x57\x28\x56\xed\xd6\x63\x2e\x3\x41\xc1\xb8\x5a\x89\x35\xe8\x84" }, +- { 0x5406e8, "\xbb\x3b\x8c\x61\x95\x4d\x8e\x4c\xe1\xae\xff\xc4\x47\x64\xc9\xb7\xd3\xca\xb\xed\xef\xc0\xc7\x43\x1c\x66\xb9\xd9\xea\x2f\xa0\xfb\xcc\xfa\x50\xd\x55\x46\x96\x24\x21\x70\xe0\x6\x33\xf3\x0\xd5\x67\x1a\x13\xde\xa5\x7c\x74\xfe\x1f\xaa\x73\xc3\x15\x93\x9f\xd7\x2b\x14\xcb\x7b\xb8\xe4\x91\xf0\xaf\x9\x23\x4f\x5e\x6d\xe\x89\xc5\x30\x77\x68\x1\xfc\xe3\xf4\xa8\x9e\xc2\xcd\xe6\x71\x44\x2c\x3\xc1\xa9\x62\x9b\xee\xbf\x2e\x65\x12\xb2\x25\x8f\x5a\x31\xe2\xf6\x7\xd6\x48\xad\xeb\xcf\x19\xd0\xbc\x29\x92\x16\xba\x9d\x3c\x9c\x94\x3a\x80\x2\xa4\x7f\x11\x1d\x63\xe7\x6c\x40\x86\x76\xf9\x83\x54\xa3\x84\x72\x18\x4b\xf7\x7a\xf1\x4a\xd2\xfd\xec\x2d\x8a\x3d\x7e\x78\xda\x42\x3e\x27\xdd\x5c\x69\xc6\xe9\xf8\xa1\x98\x36\x35\x60\x51\x85\x88\x53\xac\x10\xd4\x4\xdc\x6a\x7d\x9a\xb0\xa6\xc\xe5\x56\x32\x6b\xa2\xe8\x57\x38\x20\xce\x5b\x8d\xf2\x81\x22\x1b\x3f\x87\xbd\xa\x17\xb5\x34\xc8\x1e\x8b\x5\x8\xb1\x75\x59\xf5\x45\x79\x49\x5f\x41\x37\x28\xd1\x39\xab\x26\xa7\xb4\xf\xdf\xb6\xdb\xb3\x4e\x2a\x58\x52\xd8\x82\x90\x5d\x99\xbe\x6f\x97\x6e" }, +- { 0x5409e8, "\x2e\x94\x26\x55\x6c\xd6\xe3\x30\x16\x24\xae\xb8\x39\x13\x48\x85\x2\xa\xa8\xb9\xfb\x58\x3e\x59\x40\x37\x89\x4c\x68\xc9\x5b\xdb\xee\x83\xb\x64\x49\xf0\x52\xeb\x3f\x65\xbc\xfa\xa4\x6\x76\x27\xec\xc2\xe0\x53\x2a\x3c\x2b\xa2\x3d\x12\xde\xc7\xfc\xd7\x5\xed\xff\xc0\x9d\x14\x4a\xf7\xa3\x87\x79\x96\xa6\x7e\xd3\x1b\xf5\x90\x3\x80\x19\x4f\x77\x2f\xb1\x84\x7a\xe\x8e\xef\x62\xcd\xce\x9a\xd8\xb2\x69\xc4\xb0\xda\x23\x8\x11\xa0\x6b\x73\x4d\x9\x4e\x8c\x17\x21\x67\xbb\xd5\xcc\x20\x36\xea\x95\xe1\x5c\xe2\x7d\xe7\xc\x33\x5f\x99\xa5\xf4\x44\xdd\x25\xc1\x35\x29\x1a\x1c\x28\xb4\x9c\x34\x6f\x15\xa7\xf9\xe6\xb5\xd4\xe9\x9b\x1\x31\xf8\x72\xb3\x2d\x70\xdc\xfd\x46\x1f\x42\x8f\xcb\x54\x63\x93\x8d\x41\x5e\x9f\xe8\xf1\xe4\xb6\x71\x18\xbd\x6e\x7f\x81\x32\xd0\x74\xfe\x0\xcf\x47\xc6\xaf\x82\x38\x91\xac\xad\xc3\xb7\x6d\x1d\x8a\x98\xca\x97\x1e\x60\x7b\x88\xaa\xd2\xd1\xa1\x86\x61\xba\xc8\x10\x22\x3a\x9e\x51\x43\x92\x75\x3b\x56\xf2\x45\xa9\xbe\xd9\x78\x5d\x5a\x4\x4b\xd\x66\xf3\x7\x57\x7c\x2c\xe5\x50\xc5\xbf\xf\x6a\xf6\xdf\x8b\xab" }, +- { 0x540d18, "\x7a\x2e\x7c\x16\x54\x74\xa6\xd7\x3d\x42\x25\xa\x4c\x87\xff\xbd\xc6\xcf\xaa\x78\x0\x95\x91\x68\x50\x7e\x4\xbe\xf\x83\xc7\x82\x9a\xa1\x36\xe2\x9b\x43\x62\x79\xe4\x73\x93\x56\x17\xb5\x60\xf9\xf0\xd\x2\xef\xbb\x22\x1c\xfb\x28\x94\x1e\xdc\x1d\x2a\x7\x72\xa0\x2f\x40\xed\x6c\x7b\xcc\xb4\xbc\xeb\xf4\xa3\x96\x7d\xb8\xf6\x75\x9\xc5\xf2\x70\x33\xc2\x13\xf7\xdb\x97\x1b\x6f\x3\xe3\x6\x44\xc1\xd3\x2b\x4d\xe9\xb9\xe1\x64\x20\x8d\x18\x76\x9d\xda\x67\xa7\x9c\x32\xb\x6a\x99\xf1\x41\x59\x71\x23\x14\x88\xac\x49\x37\xba\xe6\xe0\x51\x4f\xfd\x8e\xe7\xd5\xcd\xd6\xb2\x58\xa8\x55\xa2\xc3\xdf\x5e\x9e\xc9\xd2\xd8\x7f\x84\x39\xb6\xab\x63\x9f\xfa\x69\xfe\x21\xb0\x3a\x1f\x34\x5c\x4a\xbf\xe8\x52\x8a\x4e\x30\x5b\x92\x46\x4b\x8b\x5f\x8f\x90\x6e\x61\x89\x3e\xd9\x27\xaf\xee\x26\x98\xb1\xde\x19\xca\xf3\x86\x53\xa4\xd0\xad\x1a\x47\x80\x85\x45\x2d\xc8\xe\xa9\x3b\x65\xb7\x8\x24\xb3\xc\x11\x35\x15\xdd\x5\xce\x5a\xea\x2c\x6b\xec\xe5\xf8\x3c\x77\xcb\x6d\xc0\xd4\xae\x81\x57\x31\x12\x10\xfc\x3f\x1\x29\xd1\x38\x8c\x5d\xf5\xc4\xa5\x66\x48" }, +- { 0x541218, "\x6e\x60\xba\x8c\x16\x67\xc7\xd9\xa1\xf9\x25\x41\x77\x6\x4b\x81\x98\xfb\x39\xe0\x7d\xa0\x10\xa4\x31\xf\xe5\x2b\x2d\xea\x68\xdf\x3d\xc8\xd5\x62\xaf\x83\xbd\xdb\x18\x88\xc4\xa9\x14\x38\x7f\x95\x5b\x51\xeb\x8e\xc\x2\xd0\x1\x6a\xcf\x92\x20\x7e\xc2\xc5\x36\xa6\xcd\x89\x64\x22\x8a\x96\xff\x49\xad\xb0\xc1\x13\x32\xa2\x99\x59\x17\xa5\x56\x29\x3b\x84\x93\x33\x5\x1c\x26\x94\xe8\x5d\xb8\x4\x5c\x4d\x46\xe9\x80\x4c\x45\x85\x9c\xb6\x11\xb1\xdd\x9b\x78\x9e\x8d\xac\xe2\x73\xbf\x82\xd2\x97\x57\x12\x63\xa8\x1a\xf2\xbc\x0\xc3\xcb\x7c\xf3\xe4\xdc\xd1\xed\xce\xd4\x6d\x15\x44\x8b\x52\x75\xd8\x7\x48\xfe\xe\xf6\x1f\xe3\x6c\x4e\x40\x4a\x91\x61\x70\xae\xe6\x19\xcc\x66\x1e\xa7\xd3\x43\xda\xde\x2a\xb4\x3e\x3a\xca\x9a\x5e\x71\xd\x34\xef\xb5\xb\x55\xbb\xee\x35\x50\x69\x4f\x9\x7b\x1d\x47\x86\x53\xb3\xbe\x79\xa3\xb9\x24\x8f\xe1\x1b\x58\xa\xd7\x2f\xfc\x8\x72\xf5\xe7\x7a\x5a\x54\xb7\x87\xfd\xf0\xc0\xc9\x30\x27\x3\xf1\xd6\x74\x3f\x90\xf7\x37\xf8\x28\x9f\x42\x6b\xab\x76\x23\x65\x6f\x2e\xb2\x21\xc6\x3c\x2c\xfa\xf4\x9d\x5f\xec\xaa" }, +- { 0x547d98, "\x84\xf6\x55\x2c\x2b\xb\x30\xb6\xd7\x91\x7b\xea\xfc\x8b\xb9\x6d\x11\x2a\x4a\xba\xc5\xfb\x8\x5c\xda\x3\x9f\x52\x8e\x81\xc4\xb3\xa5\x38\xf1\xc7\xca\xd9\xfe\x58\xcd\x42\x1a\xd8\xbd\x9a\xa4\x45\x36\x4f\x4e\x43\x9c\xe0\x9d\xd2\xd4\x19\x98\x26\xdd\x5d\xa8\x28\xfd\xc2\x31\xa0\xed\xbe\x1d\xd6\x68\x3a\x9\x12\xcc\x48\xa6\x95\x66\x6a\x92\xbb\xbc\xaf\xaa\x93\x53\x2d\xb0\xf2\xd\xd1\xcb\x2\x76\xb4\x5\x4c\x85\xde\x51\xe1\x54\x47\x8f\x70\xf5\xb1\x96\x18\x78\xfa\x39\x62\x88\x6e\x9b\x59\x8d\x8c\x87\x1\xf\x4d\x6\xa7\xe3\xb7\x77\xb2\xf0\x1b\x7a\x83\x50\x1f\x8a\xe8\x5f\xae\x4b\xeb\x13\xe5\xdf\x7\x41\x63\xf4\xc3\x64\x32\x21\x29\x94\xa9\x16\x6b\xa\x3b\xd3\x69\x5a\xa2\xff\x72\xef\x89\x2e\x7c\x82\xab\x49\x22\x61\x34\xdb\x7d\x5b\x5e\x65\x6c\xdc\xf7\x2f\x10\x3f\x60\xac\xc\xf3\xbf\x46\x86\x44\x99\xf9\xc8\x35\xec\xd5\x1e\x6f\x15\x4\x97\xc6\x25\x90\x1c\x80\x75\x3d\xa1\x33\x0\xd0\x7e\xb5\xe\x57\xe7\x67\x23\x17\x74\x27\x7f\xce\x3c\xad\xee\x3e\x37\x24\xe9\x71\x20\xe6\xe4\x9e\xa3\x73\xf8\xe2\x14\xc1\x56\x79\xcf\xb8\xc0\xc9\x40" }, +- { 0x547f10, "\x5\x3d\xbf\x26\xdf\xc3\xc0\xfd\xa2\xb\xee\x82\xad\xbd\x48\x1f\x66\x2c\x57\x13\x3e\x5c\x50\xe7\x29\xb7\x62\x32\x85\xe3\x9c\xf0\x69\xa6\x65\x92\x84\x9f\x54\xec\xa0\x15\xf9\x0\x78\xf7\xe1\xb5\xb8\xf2\x7f\xae\xf5\x44\xb2\xd6\xcb\xc\x8e\x7d\x4\xb1\x36\x24\xe\xa\x16\x43\xfe\x77\xb9\x63\xc5\x49\x3f\x71\xf6\x64\xc6\x87\xd0\x1c\xa1\x7e\x7c\x23\xd8\x67\x9b\x59\x53\xf3\xa5\xce\x7a\xb0\x68\x3a\xd9\xe9\x8a\xcc\x80\x45\xe4\x6\x4e\x2f\xd5\x6c\xea\x19\x9e\x97\xe2\x8d\x60\x37\x8b\xd4\xdd\x81\x5b\xa4\x8\xf1\x2d\x4d\x6a\xfa\xe0\x75\xa9\xe6\xd3\x76\x31\x86\xc1\xa8\x46\x72\x58\x38\x2a\x96\x73\xc4\xc7\x51\x9d\x30\xd2\x88\x27\xc8\x95\x52\x1d\x21\x94\x5e\x1\x56\x3b\x9\xdc\xa7\x79\x3\x7b\x39\x28\x6e\x1e\xc2\x2b\x70\x99\x6f\xff\x17\x18\xda\xaf\x2e\xb3\xba\x42\x5a\x55\x10\xd7\xe8\x47\xfb\x83\x8c\x5d\x6b\x3c\xab\xeb\xef\x25\x5f\x22\xb6\x33\x9a\xcd\x2\xb4\x91\x7\xd\xf\xdb\x1a\x61\x12\xbc\xcf\x34\xbb\x6d\x20\x4c\x11\x4a\xaa\xfc\x41\xe5\x1b\x74\xde\xbe\x4b\x40\x90\x98\xf8\x4f\x14\xca\xf4\xac\x93\x35\x8f\xc9\x89\xd1\xed\xa3" }, +- { 0x5387b0, "\x78\x56\x88\x23\x55\xb3\xa8\xaf\x59\xea\x6\x1f\x73\x25\xb0\xe1\x70\x4d\x82\x58\x26\xe7\x40\x1a\x6c\xc1\x48\xb1\xf0\xba\xff\x0\xab\x2d\xa6\x22\x43\xee\x19\x8c\xe\xda\x17\x53\x85\xbd\x1d\x6b\xf8\x50\xce\x76\x4\xdd\xa7\xf1\x8e\x52\x37\xa2\x51\xe3\x69\x3a\x1c\x16\x68\x4a\x86\xbb\xb6\x6f\xdc\xfe\x14\xc\x79\x5e\xf4\x96\x42\x54\x2e\x84\x5f\xb5\xbf\xcf\x61\x7d\xd7\x98\x71\x3e\xcd\x20\x3f\xd0\xae\xa9\xd\xc7\x8\x65\x8d\x3c\x81\x29\xb8\x6d\xb4\x80\xd1\x4b\x5b\x28\xa5\x4c\xa0\x6e\x90\xa\x11\x3\x64\x21\xdf\x2f\x24\xeb\xf2\x7b\xc5\xac\xb\xec\xed\x66\xd6\xe0\x9\x41\x32\xcb\x83\x93\xfa\x15\xe5\x27\x5a\x87\x44\xd4\xde\xf\x3b\x1\xb7\x2a\xf3\xa1\xd5\x72\xb2\x6a\x2b\x95\x7a\x8b\xca\x7e\x18\x7f\x47\xe6\xdb\x49\xf7\x9a\x9e\xad\x9d\x57\xf6\x60\xd2\xfc\x30\xfb\x9b\x45\xd9\x2c\xf5\x5d\x33\x1b\xc4\x89\x13\x35\x67\xef\x2\x36\x92\x99\x39\xf9\xaa\x74\xe2\x5c\x3d\xc3\x63\xcc\xc9\x62\xa4\xfd\x34\x12\xbe\xc0\xc8\xc2\x7\x10\x75\x31\xe8\xbc\xd8\x97\x4f\x46\x1e\x7c\x38\x4e\x94\x9f\xc6\x8f\xe9\x91\xe4\x8a\xa3\xb9\x9c\x5\x77\xd3" }, +- { 0x539420, "\xbb\x1a\x8e\x40\x7\x47\x3e\x6e\xb1\xfa\xa5\x63\x7c\xec\xa9\x75\x55\x76\xd2\xa6\xcb\xe4\x2d\xc6\x43\xa8\x18\x79\x48\xf0\x38\xd0\x9a\x8\xd5\xa0\x22\x7b\xc1\x84\x5a\x6b\xae\xd7\xbe\xb9\x50\xcf\x46\x70\x91\xed\xba\x8f\x7f\x1\xc5\x7d\x34\xf4\x14\x2\xe3\x2f\x64\x96\xb2\xee\x94\x4e\x90\x20\xd9\x95\x30\xca\x65\xf\xb\xd4\xd6\xde\xeb\x2a\x62\xd8\xc7\xdd\xe8\xe2\x4c\xbc\x77\x81\x66\x24\xc9\xb7\x60\x12\x39\xda\x71\xf1\x4d\x6c\xa\xf9\xb5\x6\x52\x3b\xa3\xb3\x7a\x35\x13\xe5\x57\x33\xc0\x16\x17\xfb\x87\xe7\xa1\x42\xe1\x67\x44\x54\x3d\xa4\x9\x19\x61\x15\x29\xb0\x0\xbf\xac\x5d\x1e\x27\x99\x56\x26\x83\x11\x5f\x69\x4f\x1d\xf5\x5\x8c\xff\x2b\x1c\x59\x21\xaf\xa2\xe\xdc\xb8\x85\x78\x80\x6a\x5c\x4\xfd\x25\x6d\x32\x9c\x8a\xc2\x8b\xf3\x9f\xb4\xd\x74\x9b\x8d\x97\x4a\xc3\x9d\x7e\xad\x28\x1b\x98\x53\xaa\x36\xf2\x49\xc8\xce\x73\xf8\xfc\x68\xef\xe6\x89\x3a\xea\x37\x31\xcd\xe0\x86\x3f\xb6\xab\xdf\x58\x23\x41\x3c\x88\x1f\xbd\x2e\xe9\xc4\x82\x72\xcc\x6f\xf6\xd3\x4b\xa7\x93\x5e\xfe\xf7\x51\x45\xd1\x10\x2c\x92\x5b\x9e\xdb\x3\xc" }, +- { 0x547c10, "\xb4\x8f\x68\x29\x2d\x91\x41\x34\x56\x3a\x46\xf8\xcf\x63\xb8\xb2\x1d\xcc\xb5\x5f\xe0\x83\xd0\x66\x28\x60\xa0\x20\x88\x3\x9b\x4\x36\x55\x1f\x6d\x24\x62\x7b\x99\x53\xf2\x86\x4b\xff\x3b\xe9\xce\x92\xa5\x71\x5a\x7\xd2\x4a\xdb\xa2\x9d\xf4\xfc\xc9\x90\xac\x72\x77\x1\xb9\x2a\xf1\xd4\xfa\xc2\x61\xc0\xcb\xf5\x6b\x18\x67\xc6\x0\x9\x58\xfb\xba\x3c\x1c\x49\xae\xe6\x38\x40\x80\x97\xdd\x14\xf\x69\x89\x4c\x59\x16\x9a\x2e\x4f\x4e\x5\x33\x3d\xa6\xb6\x6a\x13\x30\xca\xeb\x25\x65\xd7\x57\xa9\x6c\xb1\xde\xd5\xcd\xed\x7c\x15\xbc\x19\xa4\x85\xc1\xa1\x73\xef\xbe\xc5\x35\xe\x7e\x47\x8\x64\xf6\x3f\x8a\xf7\x52\x75\xe5\x48\x37\x23\x8c\xdf\xa7\xd3\xe1\x2\xd\xa8\xe4\x74\x5d\xc4\xad\xf3\xbb\x54\x70\xbf\xdc\x1a\xec\xc3\x31\x1b\xa\x7d\x93\xb7\x9e\x2c\xd1\xfd\xe3\x3e\x96\xd9\x51\x12\xe7\xd8\x50\xb\xe8\xe2\x17\x4d\x5e\xd6\x39\xc7\x5b\x6e\x21\x84\x22\x11\x82\xf9\x26\x1e\x6f\x95\x6\xea\x10\x98\x2f\x78\x5c\x32\x45\xaf\x8d\xf0\x7a\xbd\xaa\x81\xda\xb3\xc\xfe\xc8\x2b\x76\x79\x8b\x94\xb0\xa3\x7f\xee\x42\x87\xab\x27\x9c\x44\x43\x8e\x9f" }, +- { 0x541400, "\x7b\x35\x11\x79\x7\x2f\xf6\x82\x8e\xb4\x6e\xd2\x6d\xc5\x8c\x1c\xe0\xd6\x34\xf0\x4f\x25\x59\xe8\xdf\x1d\xeb\x32\x86\x51\xa4\xf2\x5c\xd1\xc8\x41\xec\x9d\x62\xac\xdd\x3e\xb8\x65\x75\x89\x12\x6c\x40\x4e\xc7\x27\xe1\x37\xcf\x9\x16\x78\xaa\x58\xd\xe6\x54\xfe\x8f\xfd\xf9\x61\x26\x3f\x2e\xcd\x2c\x4\xb2\x80\xf\x14\x6f\xc6\xab\xfb\x13\xdb\x9a\x21\xb3\xc0\xa9\x19\x70\xf3\x2b\xae\x9b\x49\xb7\xa8\x24\x1b\x48\xea\xed\xd9\x47\x9e\x9c\x69\x3c\x66\xbb\x6\x46\x38\x17\xb5\xcb\x5\x4a\x5e\x15\x20\xb9\xb6\x33\x4c\x7d\xa3\xd7\xb1\x23\x72\xc3\x4b\x63\xbe\xf7\x5b\x74\x64\x77\xcc\xd3\x85\xde\x1a\x31\x97\xa2\x8b\xfc\x10\x5f\xdc\xd5\xb0\xbd\x55\xc1\xe7\xc\x50\x43\x39\x71\x52\xe5\xaf\x8a\x60\x92\x2d\xd8\x3\xf5\x28\xca\xef\xd0\xc2\x53\x91\xa6\x73\x56\xa5\xf1\x57\x42\xf4\xd4\x36\x8d\xbc\xe9\x7e\x2\x76\x18\xb\x84\x5a\xe2\xbf\x68\x95\x29\x98\xad\x88\x1f\x81\x67\xa1\x3a\xa7\x22\xf8\x1\xa0\xce\x7a\xda\x30\xc4\xe4\xee\x7c\x3b\x4d\x3d\xe3\xfa\x6a\x7f\x99\x0\x93\xe\xff\x90\xa\x2a\x5d\x96\x8\x6b\x83\xba\x1e\x44\x87\x45\x9f\xc9\x94" }, +- { 0x541588, "\x11\x2b\xc0\x60\xd2\xf5\x1f\x42\xf7\x8e\x13\x8c\x68\x7b\x90\x26\xd1\x28\xa3\x9d\xd\xb6\x9a\x1b\xb5\xa0\xba\x7d\xa8\xd5\xe\x88\x93\xa6\xbe\x98\xd6\xe4\x50\xa1\x3e\xb7\x8d\x94\x46\x4a\xbc\xd7\xd4\xf1\x59\x97\x2a\x66\x2\xe1\x3d\xf\x1e\xe5\xc5\x49\xe9\xa4\x99\x6f\x6\x37\x96\xdb\x58\xd0\xfe\x2c\xe8\x21\x38\x71\x62\xb4\xda\x12\xac\x79\x17\x5b\xc8\x82\xeb\xf0\xe2\x3\x80\xaa\x9e\xb\xe3\x5a\xc1\x91\x35\x75\xea\xfa\x20\xdd\x23\x84\x31\x9b\x5d\x78\x7a\xc\x27\xa7\xf3\xa2\xa9\x87\x52\xb8\xf9\x5e\x9\x6e\x64\xc9\x18\xd8\xee\x86\x2f\x30\x7f\xb2\x3a\x47\xb3\x74\xde\xe7\x4b\x2e\x41\x29\x5\x33\x15\xfd\x7e\x22\xf6\x70\xbb\x67\x34\xf4\xab\x92\x1a\xe6\xa5\x7\x65\x3f\x39\x95\xef\xb1\x24\x85\xfc\x53\xf2\x1c\x8f\x81\x48\x5f\x25\x76\xdc\x19\x56\xcd\x2d\xff\x43\xbf\x4e\xb0\x1\x0\x9f\x51\xc7\x57\xad\x73\x72\xc4\x8\xbd\xa\x7c\x1d\x40\x77\x61\xb9\x89\x9c\x3b\x8a\x16\xc6\xcb\xce\x4f\x63\xd9\x6d\xcf\x3c\x6b\x54\xdf\x4c\x10\x8b\x69\x32\xe0\x45\xaf\x4d\x83\x5c\xec\xc3\x14\xf8\xed\xc2\x6c\xca\x55\x44\x6a\xcc\xfb\x36\xae\x4\xd3" }, +- { 0x541688, "\x6b\x1d\x53\x81\xa\x82\x7\x16\x41\x54\xa0\xbd\x87\x3\x20\x2d\xf7\xb5\x4\x59\x1b\xdf\x8c\x22\xe2\x10\x9\x55\x9e\xef\xa6\x57\x65\x7f\x3a\x35\x9c\x3e\xfe\x40\xfd\x17\xc0\x26\x33\x38\x7b\x6a\x5c\xd1\x50\x14\xec\x49\xfb\xa9\xe5\x1e\xf3\xea\xde\xdd\x44\x75\x46\xc9\x2b\xcb\xbb\x27\xab\x15\xe7\xed\x91\xda\x25\x4e\x5b\xb7\xee\x77\x58\xb8\xe4\x48\x63\x47\xd9\x0\xb0\xfa\xe1\xff\xb3\x72\x32\x3f\x29\x19\x68\x1\x23\xcc\x93\x8d\xd3\x31\xf9\xcf\xf6\x73\x8a\x4f\x11\xe6\xca\xa8\x18\x97\xc2\xd\x92\x62\x84\x85\x3b\x52\x6f\x9b\x6e\x5f\xe3\x9a\xce\xdb\x3d\x70\x95\xb\xdc\xc1\x2\xae\xc5\x56\x7e\x8b\x2a\xf5\x86\x28\xe0\xf1\x42\x83\xd5\xc8\xc7\x8\x4a\x5e\xf\xf8\x78\x5a\x1a\x66\x36\xfc\xd7\x34\x2c\xc3\x76\xbf\xe8\x21\x8e\x2f\x69\x7d\xa3\x98\x67\xa4\x8f\xe\xf2\xaf\x61\x4d\x24\xba\xaa\x7a\x6d\x5\xb9\x89\xbc\x2e\x30\x4b\xb4\x6c\x80\x1c\x9d\xc6\x3c\xb1\xd0\x88\xb6\xa1\xcd\xb2\xc\xbe\x79\xa2\xd8\x99\x4c\xd2\x74\x37\x51\x71\x9f\x13\x6\x90\xeb\xc4\xa7\xf0\xa5\xd6\x12\x45\xac\x64\xf4\x1f\xe9\x43\x96\x7c\x5d\x39\xd4\xad\x60\x94" }, +- { 0x541988, "\x4b\x8e\xb4\x43\x5a\xcc\x15\xc0\xa0\x22\x21\x58\xec\xad\xde\x42\x4a\x70\xd4\x26\xc6\xeb\x3a\x61\xbd\x99\x20\x92\xfe\x9d\x68\xae\x1f\x11\x5c\xcb\x8\x66\x49\xe1\x2e\x96\xf2\xca\xdd\xb0\x37\xfd\x86\xa1\x7d\x7b\xbe\xf5\xd9\x60\x6d\x63\xe0\xe8\x84\xf8\x75\x44\x6b\xab\x81\xe5\xa5\xe4\xd6\x3e\x10\x3\x97\xd8\xbc\x5\x98\x1a\xa\xd\x5d\xf1\x8a\x2c\x82\x34\xc8\x4e\x2b\xfa\x7\x4c\x2d\x6c\xc1\x5e\x46\x29\x9a\xc7\xb8\xb9\x56\xa2\x7f\x1d\x3d\x1e\x9c\x80\x6e\xb5\xe\x7a\xcf\xfc\x30\xd5\x95\xa3\xb2\x1b\xf4\xe2\x89\x28\x12\xc5\x3f\xf9\x2f\xc9\x4d\xed\x40\x1\x59\xb6\x85\x50\x77\xe7\xf7\x2a\x76\x51\x78\xc2\x8f\x94\x87\xe6\x8b\x9\x93\x8d\x57\xda\x79\x2\x71\x55\x19\xb3\x5f\x69\xdc\x25\x18\xd2\xf3\x4f\xba\xea\x9e\xaf\x31\xee\xa9\x0\x35\x90\xff\x6\x1c\x4\x13\xce\x14\x39\x5b\xdb\x38\x36\x24\x27\xfb\xac\x52\xd0\x6a\x74\xf0\x62\x45\x72\xbf\x65\x9b\x91\x48\xd1\xb\x32\xb7\xdf\x88\xf6\x41\xa6\x9f\xd3\xc\x7e\x6f\xaa\x73\xd7\xc4\xa4\xe9\x17\xcd\xb1\x3b\x64\x8c\xf\xef\x54\x83\x7c\xa8\x23\xe3\x16\xc3\x47\x3c\xa7\x33\x67\x53\xbb" }, +- { 0x541b30, "\xc9\x4d\x8e\xe5\xaf\x88\xa5\x73\xeb\x9e\x4e\xdc\x6b\x68\x28\x79\x7b\xad\x2c\xe\x51\xe1\xc6\x1f\x71\xb2\x61\x7\x42\x49\x35\x1a\xf2\x80\xd2\xd7\x82\xc3\x2b\xa2\xb6\x8b\xec\xa0\x2a\x29\xe7\x8a\x1c\x4b\xdf\xf7\xba\xb1\xdb\xee\x43\x7e\x87\xa7\xfa\x19\xb5\xf1\x95\x4f\xce\x66\xd9\xae\x11\x46\xa\xb8\x40\xf6\xe3\xbc\x77\xf8\xb3\x78\xf3\x5a\xac\xb0\x63\x8d\xcd\x64\x39\xa1\xa4\x9a\x4a\x69\x41\xed\x98\x37\xfb\x3f\xd0\xaa\x6\x7c\x7d\x3d\x94\xa6\x5f\x24\x12\x8\x9d\x32\xc4\x3b\xda\xa3\x10\x34\x8c\xd8\x5c\xcb\x20\x5b\x70\x86\x14\x27\x36\x1\xe9\x3\xc5\xa9\x67\xfd\x9b\x57\x6c\x0\x2e\x4\x84\xf\x26\x72\x92\x58\x17\x83\x2d\xdd\x6f\x62\xc7\xc\x55\x6d\xd5\x13\x3c\x5d\xb4\x5e\xea\x47\xc8\x25\xca\x59\xe0\x97\x21\x9c\x96\x93\x2f\x1e\x8f\x7a\xbf\xcc\xde\xf9\x16\x22\xf0\x81\x75\x3e\xd\x4c\xfe\x23\xbe\xa8\x76\x1b\xf5\x56\x18\x2\xe2\x33\xd3\xf4\xab\xb9\x6e\xc0\xff\xb\x1d\x60\x85\x30\x3a\xe6\x65\xd1\x52\x53\x54\xb7\x9f\x48\x89\xc2\x15\x74\xcf\x9\xc1\x38\x7f\x44\x99\xbb\x45\x31\x90\xd4\x5\xbd\x91\xfc\xef\x50\xe8\x6a\xd6\xe4" }, +- { 0x541c30, "\x76\xad\x9\x82\xbd\xb\x69\x6a\xe0\xac\xd4\x34\x31\xd2\x83\xe2\xe7\x28\x70\xe8\xc1\xdf\xa\x2d\xbe\xd5\xe9\xe3\xfb\x79\x7c\xff\xf0\xe6\x85\x43\x47\xb2\x64\x92\x81\x80\xb4\x6d\xf7\xee\x1\x1f\x60\x48\x8e\xa4\x54\x74\x50\x4a\x2a\x5e\x39\x5f\x8f\x46\xb1\x8\x12\xf3\xde\xbf\xcb\x2\xdd\xa2\x9e\xd6\x6f\x9a\x9c\x3d\x93\x77\x2f\x21\xf1\x19\x9f\xcd\x2c\xeb\x30\x13\x89\x88\xa1\x71\x17\x7\x73\x32\x16\xc6\x4d\x3a\xb5\xa3\xa7\x1e\x10\x65\x23\x7b\x5c\xd7\xcc\x15\xca\xae\x6b\x91\xef\x1c\xe\x8c\xda\x72\x4c\x6\x0\xdb\x8d\xbb\xb7\x26\xd\x6c\x37\x8a\x84\x2b\xf2\xd3\x41\xaa\x6e\x7d\xc2\xfc\x3e\xd1\x4\x45\x68\xb9\x27\xe4\x58\xb0\x1b\x44\x40\xba\x53\xd8\x66\x14\xe1\x67\x5\x5d\xc\x96\xf8\x4e\x98\x7e\xf4\x3\x99\x52\x51\x4f\x11\xa8\x1a\x9d\x86\x97\xc5\xf\x25\x75\xc8\x94\xa5\xb8\xec\xa6\xa0\x38\xab\xc9\x36\x24\x35\xc0\xc7\x90\xd0\x55\xfa\x95\xaf\x49\xfd\x7f\x42\x87\x7a\x3f\x56\xf5\x3c\x62\xc3\x59\xb3\x33\xa9\x2e\x1d\xea\xbc\x63\x18\xed\xd9\x3b\xf9\xc4\x78\x22\x5a\x29\xfe\x9b\x61\xe5\x5b\x8b\xce\x4b\x57\xcf\x20\xdc\xf6\xb6" }, +- { 0x541db8, "\xf\x3\xdb\xb5\x48\x8b\xe2\xbd\x4a\xc7\xdc\x63\xe9\x71\x94\x3d\xf7\xf9\x1c\xfa\x77\x1e\xea\x97\x9e\x57\x43\x91\xf8\xae\x4f\x55\x9b\xd1\x32\x67\xcf\x90\x2b\xac\x3a\xb4\x6\x85\x98\xc\xc1\x2c\xec\x40\xbf\x9\x59\xde\xcb\x6b\xa1\xad\x47\xbb\xd2\x22\x64\xa4\xb\xe5\xce\xd0\xff\xd4\x41\x45\x51\x65\xb9\xdd\x5\x38\xb6\xc2\x35\x21\xab\xc4\x1d\x1f\xa2\x74\x0\x5e\x93\xa\xe\x68\xda\x95\xf5\x6a\x1\xbc\xfe\x16\x12\xfc\x62\x2a\xf3\xf6\x7c\x5a\x46\x1a\xcd\xc3\x7b\x42\x27\x8f\x25\xa6\xca\x6c\xa7\xf2\x23\x5d\xd5\x54\xe4\xc5\x20\x50\x56\x3e\x69\x70\x52\xed\x7\x17\x66\x8a\xb1\x82\x37\xef\x3b\xfb\xd9\x7e\x36\x2e\x9a\x1b\x2f\x29\xe7\xa9\x83\xe3\xa3\x8c\xf1\x2d\x49\xd7\x31\x10\x78\x8e\xb2\x87\xd8\xe8\x5f\xb0\x76\x9d\x79\xc9\x4e\xe1\xe0\xee\xf4\x13\x9f\x14\xbe\x73\xb8\x88\x3c\x86\x7a\xa5\xba\x58\x7d\x6e\xa0\xc8\x11\x30\x61\x81\x33\xd6\x4c\x9c\x18\xf0\xfd\x99\x3f\xc0\x80\x28\x5b\x72\x4d\x6f\x92\xeb\x24\x75\x89\x8d\x15\xcc\x60\xaa\x4\x26\xd3\xdf\x8\x2\x5c\xa8\xe6\x44\x7f\xb7\x96\x39\xc6\x19\x34\xaf\xd\x53\x6d\x4b\xb3\x84" }, +- { 0x541fe0, "\x30\x7a\x4b\x48\x47\x3f\xc8\x2e\xde\xb1\x5f\x96\xe3\x40\xb3\xdf\x70\x73\x67\x87\x78\xdd\xa\x6b\xb5\x2f\xf0\x13\xc5\x1c\x7f\xa1\x8b\xb4\x8e\xeb\x63\xd5\x89\x9d\x0\x68\xab\x9\xfe\x76\x71\xb7\x5d\x92\xc1\xdc\x46\x79\x8c\x16\xf3\x1a\xc9\xd\x3b\xf6\xad\xe7\xa5\x45\x3\xee\xd1\x5c\xb6\xbc\x52\xc3\x3a\x94\x1f\xe2\x6f\x14\xca\x29\x69\x4a\xe5\x51\x31\xff\xaf\x50\x9a\xcc\xf4\x39\x7\x86\x82\xfa\xac\x20\x26\x83\x9f\x54\x11\xa3\x1e\x81\x43\x2c\x8\x8d\x5a\x85\xa2\xcb\x2a\x35\xb2\xda\x2d\xfd\xc4\x37\xa7\x3e\x7e\x75\x65\xa8\x66\x1\x25\x32\xd4\x4f\xa0\x1b\x6\xae\x28\x15\x9b\xba\x2b\x34\x77\x8f\xec\x99\x7c\xc0\xb9\xf9\x88\xce\xe9\x84\x93\xb0\x22\xcf\xed\xf\x7d\x74\xe0\x61\x2\xa6\xbf\x58\xea\xf2\x95\xfc\x6c\x56\x91\x4c\xe4\x80\x49\xbb\x18\xd0\xa9\xa4\xaa\x5e\x8a\xb\x33\x38\xd6\x53\xdb\xf7\x60\x44\xc\xc6\x62\x55\xd7\xbd\xfb\xcd\x5\x42\xef\x57\x24\x12\x90\xd9\x19\x27\x5b\x6a\xd2\x98\x23\xbe\x36\x4\xc2\x7b\xf8\x6e\xe\xc7\x6d\xd3\xf1\x97\xe1\xe6\xd8\x10\x9e\xe8\xf5\x59\x9c\x4d\x64\x3d\x21\x1d\x72\x41\x17\x4e\x3c\xb8" }, +- { 0x5420e0, "\xd8\x40\x46\x1c\x9c\xba\x77\xfd\x1d\xe0\xc0\x42\x92\xf0\xff\xa8\x78\x9e\x3f\xcd\x60\xea\xc7\x3c\x2f\x5f\x72\x74\xb3\x2c\xee\x94\x47\x80\xe8\xf5\x67\x8f\x53\x43\xd\xb9\xe9\xaf\x7e\x7a\xe\x63\xb6\xd2\xd4\x27\xc4\x7\x76\xad\x4e\x3\x5d\x2\xd6\xaa\x56\x6b\x12\x21\x37\xa0\xd1\xab\x3a\x11\x51\x90\x48\x23\x26\x6a\x6\x97\xc1\x9d\x35\xec\xa3\x24\x10\xfb\xf8\x41\x65\x1\x1f\x6d\x5\x8e\x7b\xb1\xfc\x44\xbc\x6e\x89\xa9\xc3\x2d\xb2\x18\xde\x71\xbe\xfe\xc5\x54\x73\x2b\x0\xa7\x5c\xae\xd3\x57\x95\xfa\xf1\x7c\xdf\xc\x31\xa6\x3d\x4a\x58\x79\x66\x87\xb8\x19\xf6\xf7\x8d\xbf\xcb\x45\x33\x6f\xb5\x91\x32\x5a\xbb\xdc\x62\x55\xa1\x4\x70\xa5\x8c\x16\x3e\x49\x64\x82\xf9\xdb\x59\x28\xcc\x50\x96\xb7\x38\xc6\x7d\x69\x29\xb4\x1b\xe7\x2e\xc2\xbd\x84\x85\x4d\xe1\x3b\xf4\xac\xd7\xe3\x8b\x4f\x30\x9f\x7f\x5b\xb\x20\xb0\x86\x88\xeb\xa2\xca\x34\x15\x81\x83\x13\xd9\x5e\x25\xf\xc8\xda\x4b\x99\xe5\x9\xf2\x93\xdd\x52\x6c\x2a\xc9\xef\x14\x9b\xf3\x68\xa4\x22\xce\x1a\x1e\xe4\xd5\x8\xe6\x9a\x98\xed\x61\x17\xa\x39\xcf\xe2\x4c\xd0\x8a\x36\x75" }, +- { 0x542220, "\xee\xa9\x92\x52\x24\x57\x44\x8e\xa0\xb9\x95\x20\x5b\x70\xbd\xc3\xa7\x17\x4d\x1d\x12\x9a\x0\xd0\xfc\x9d\x41\x6\xf4\x86\x50\x74\xe1\x5d\xa2\xdf\xa1\xa3\xf\xd5\x1b\x62\x28\x7c\x10\x79\x9b\xe2\x13\x7d\xce\x97\xd7\xb\x56\xf0\x63\x3c\x68\xdc\x21\xed\x7\x3d\x7a\xb6\xb5\x23\xe6\x3f\x29\xeb\xd6\x67\x89\xb3\x87\xf2\xfb\x71\x90\x5a\xc6\x42\x2f\x32\x77\xd4\x15\xde\x84\xff\x7b\xd3\x47\xa5\xb8\xc4\x8b\x55\x6c\xc2\x5\x54\x1a\x65\xfe\xcf\x6a\xb7\xa6\x4\xc9\xaf\xf8\xf7\x40\x8d\x16\xae\x3e\x99\x6f\x4b\xac\x26\x3\xb4\x2e\xf3\x69\x34\xb0\x8f\x45\xcc\xd9\x2d\xcd\x4c\x9e\x5f\x85\xe5\xca\x58\xe\x9c\xf5\xfa\x38\xc1\x30\xd\x94\x36\x6b\xc8\xe4\xad\x39\x3b\x22\x46\x96\xc7\xbc\x5c\xe9\x80\xa\x73\x33\xfd\xd8\x88\x2a\x4e\xef\x4f\x5e\xc0\x1e\xc5\x27\xec\x18\xf1\xd2\xc\xba\x8c\xa8\x59\x98\xe8\x9f\x43\x51\x49\x72\x19\xbf\x2\x1f\xbe\x64\xda\x53\x4a\xab\x82\xf6\x3a\xbb\x91\xaa\x6d\x78\x81\x66\x7f\x75\x76\x1\x25\x35\xb2\x8a\xcb\x11\x48\xdb\x61\xe3\x6e\x93\x60\x14\x37\xf9\x9\x1c\x2c\xd1\x2b\x8\xa4\x7e\xea\xdd\x31\x83\xe7\xe0\xb1" }, +- { 0x53ab20, "\xa5\xff\x5f\x5c\x76\xd0\x2c\x5d\x56\x88\x78\x11\x5\xaa\x2d\x3\x25\x2f\x32\x44\xae\x7d\xd4\xc\x38\xda\x6b\xde\xb1\x9f\xb5\x2b\xd1\xa8\x30\xf8\x1e\x73\xb6\x95\x55\x4\xaf\xf6\x48\x7c\xb3\x3f\x4b\xe2\x8b\xcd\x3e\xe0\x9c\x67\xc9\xf1\xfe\xea\xd6\x42\x63\xcb\x82\x94\x28\xc6\x54\x2e\x81\x52\x46\x41\x1\xe\x12\x43\x9\xf7\x3c\x2\x8c\xc7\x74\xd3\x45\x37\xbf\x58\x59\x6c\xfd\x7\xb0\x16\x39\x64\x23\xf9\x6a\x7a\x14\xd9\xb7\x86\x50\x19\x8\x57\x4e\x97\xac\x22\x7e\xbb\xad\x79\x4f\x85\x27\xc2\x61\x71\xe9\x1c\xc8\xc1\x93\x36\x70\x24\xc3\x3d\x1b\xf2\x6d\x15\x51\xfa\xbe\x87\xc4\xc0\x96\xb\xca\xa4\x75\xd8\x77\x1d\x53\x62\xe6\x2a\xb2\x4a\x8e\xd5\xdc\xf5\x35\x72\x5e\x34\xa1\x33\xc5\x69\x18\xa\xb4\x7b\x83\x31\xab\xa0\x9b\x21\xbc\x84\xfb\xd7\x89\x0\xd2\x3a\xfc\x13\x1a\xcf\xf3\xdd\x10\x90\x3b\xe4\x26\xf4\x4d\xa7\xf\x40\x7f\xe5\x29\x17\x8f\x20\xeb\xbd\x80\x99\x65\xa6\x6f\x4c\x47\xdb\x60\x1f\xec\x98\xe8\xa2\xb8\xb9\x5b\x91\xed\xf0\x9d\x68\x8d\x6\x5a\xba\x66\xdf\xa9\xe7\xe1\xef\x9e\x8a\xcc\x9a\xee\xd\x6e\xa3\xe3\x49\xce\x92" }, +- { 0x542738, "\xa5\xc3\x4\xb9\x92\x3d\x8a\x86\xe9\x67\x74\xd8\x9b\xcc\xe6\xd\xc6\x23\xf\xa1\xac\x42\x28\x93\xf8\x9c\x8d\xc7\xb7\x3\x8c\x69\x3c\xd1\x81\xf9\xa0\xfd\xba\x0\x75\x49\xc4\xb\xfc\x68\x65\xb0\x80\x64\xa\xda\x83\xf5\x58\x14\xec\x46\x1f\x61\x13\x27\x6b\xce\x1d\xbe\x96\x19\xc2\x9\xef\x37\x2f\xe2\x47\xf1\x7e\x21\x30\x90\xf7\x2b\xf4\x3b\x7\x1a\x56\xd3\x72\x5b\x4b\x85\xe\xd5\x8\x6f\x5d\xc0\x79\x59\x26\x98\xfe\x7d\x6\x4d\x10\xbf\xf3\xee\x2e\xe0\xe7\xd7\xd2\x9f\x60\x88\x25\xde\x7f\x4e\xe1\xae\xdf\xe4\x38\xb8\xe5\x8f\xa2\xd9\xcd\xa4\x73\xdb\x84\xb5\xca\x17\xa7\x54\xab\x97\x91\xfa\x66\x1c\x2d\xea\x31\x35\xe3\x77\xa9\x36\x5c\xc\x76\x95\x5a\x7c\x1b\xbd\x8e\x94\xff\xf2\xbc\xc1\xb4\x87\x2c\x44\xb6\xaa\xc8\x33\xf6\xa8\x45\x48\xa6\x6c\x1\x63\x55\x6a\xd6\x9a\x57\x40\x15\xad\xb3\x3a\x5\x43\x51\xfb\x71\x9d\x22\x1e\xed\x53\xd0\xc5\x8b\xeb\x18\x6d\x20\x3e\xcb\x89\x34\xf0\x3f\x2a\xcf\x39\x16\x4a\xaf\x9e\x29\xb1\x6e\x62\x11\x82\x5f\x7a\xbb\x52\x12\xc9\x99\xa3\xdd\xdc\x4c\x5e\x24\x50\xd4\x78\x70\x4f\xe8\x32\xb2\x2\x7b\x41" }, +- { 0x542df8, "\x94\x3b\xd0\xd7\xba\xb3\x84\xc4\x36\xdc\x30\xa9\xdd\xc7\xb1\x75\xe6\xa4\x71\xc2\x60\xbf\xf3\xea\x51\x49\x2f\x4e\xa5\x1\xa2\x44\x2\xfe\x85\xf0\x4\xcf\xac\xb7\x2c\x35\x5f\xa6\x18\x6a\x7a\xae\x9\xd3\x3c\x1a\xd1\x12\xcd\xaf\xcb\xb6\xe2\xef\x73\x7d\x47\x2d\xe0\x4b\xf5\x89\xbd\x79\x4c\xdf\x29\x19\x7\xbc\x66\x5c\xed\x62\x68\x3f\x81\x1b\xb4\x11\xc5\x93\xd\xc\x16\x52\x23\xff\xf1\x37\x83\x6d\x58\xab\x77\x59\x65\x46\x97\x56\x6e\xbe\xa1\xf9\x7c\x34\xc3\x76\xf\xb5\x96\x24\x10\xce\x82\x1d\x45\x1f\x67\xd4\xaa\x53\xad\xeb\xe5\x3\xa0\x64\x27\x38\xc8\x8b\x9f\xc1\x8c\x2b\xe9\x2a\xf6\xd8\x4f\xfa\x41\xe4\x7e\x8e\xe8\x90\x63\x9b\xb0\x72\x4a\x40\x57\xde\x61\xfc\x48\x1c\x17\x13\x14\x95\x99\x39\x28\xc0\x31\xe1\x98\x50\x5e\x0\x78\x3d\xfb\xf7\xda\xd5\x70\xca\x8f\x88\x6\xf4\xc9\xb8\xa7\x15\x5d\x6b\xbb\x8\x74\x1e\xcc\xd9\x21\x3a\x20\x3e\x92\x2e\x33\x54\x8d\x4d\x80\xf2\x5b\x91\xee\x42\xa8\xd2\xb9\x7b\xe\x9c\xf8\x9d\x86\x25\xa3\x22\xec\x5\xc6\x87\x32\x9e\xb2\xe7\x5a\x55\xa\xdb\x43\x8a\xb\x6c\x9a\xe3\x26\x69\x7f\x6f\xfd\xd6" }, +- { 0x5430b8, "\x18\xde\x60\xb0\x52\x81\xc0\x13\xd9\xf6\x7f\x69\x1b\xa4\x27\x73\xa1\xe9\xad\x2a\x9b\x45\xc5\xa5\x2d\x16\xb6\x33\x5e\xc7\x3e\xd5\xbe\x5\x98\xa7\x82\x5c\xec\x29\xd1\x6b\x5b\x85\xf5\x89\xf1\x1c\xf9\x4b\x58\xa9\xac\x23\x2e\xe2\x7c\x36\x8c\x63\x2\x3b\x61\x39\x17\xe0\x32\xc1\xab\x4\x3d\x8f\x26\xd4\xef\xc9\x35\x2f\xe7\xd7\xa6\xcc\x9f\x44\xe4\xc2\xdc\x3f\x4d\x7e\x4a\xf7\x66\x38\x12\x3c\x96\x64\x5f\xf8\xcd\x7d\xb\x70\x76\x99\xba\xdf\xf\xa8\xff\xd2\x56\xeb\x94\xae\xbd\x78\xdb\xf4\xb5\x3\x7b\x80\xfe\xd0\xc6\x41\x0\xc\x86\x8e\x6d\x54\xb3\x4e\x8b\xb2\xb7\xe3\x43\xfd\x53\x11\xd6\xd3\x77\xed\x21\x14\x9a\x6\x9\x1a\x87\x9d\xcf\x37\xc4\x49\x6c\xe1\x10\x5d\x6f\x72\x19\x2b\x51\x15\x4f\x2c\x57\x55\x84\x92\x30\xd\x8d\x25\x24\x8a\xe6\xe\xf0\x22\xc3\x9e\xe8\x28\xbc\x1f\x65\xb1\x1\x20\xa\x46\x67\xfc\x31\x91\xe5\x5a\xca\x71\x90\xbb\xfb\x34\xea\xa0\x79\xee\xa3\xa2\xb9\xdd\x62\x7\xbf\x47\xce\x50\x88\x1d\xf2\x1e\xaa\xda\x9c\xd8\xf3\xcb\xb4\x48\x42\xfa\x4c\xb8\x6a\x68\x6e\x83\x7a\x97\x59\x93\xc8\x40\xaf\x75\x8\x74\x3a\x95" }, +- { 0x543220, "\xbd\x7f\xc8\xb9\x77\x27\x36\x86\xbf\x96\xfe\xcd\xd\x93\xe0\xae\xec\x69\xee\x90\x3b\x91\x5a\xc0\xcb\x8\xfb\x5d\xa8\xe8\x26\x4c\x22\xf0\xa5\x5e\xff\xd5\x58\xc5\x89\x51\xf9\xfd\xfc\xce\xac\x74\x80\xa6\xde\x2e\x75\xd7\x61\x67\x3d\x35\xf6\x84\xdf\x3f\x5\xd8\x32\xc9\x54\x5b\x24\xc6\x6c\x11\x82\x9e\x2c\x99\x37\x9d\x1d\xd0\xbe\x6d\x6e\x92\xc7\x60\xe9\xaa\x47\x7e\x39\x2f\x97\x2\xad\x9a\xdc\xb3\x34\xca\xdd\x2d\xf5\x18\x81\xa4\x3c\x15\x40\x17\x63\xbc\xef\xcf\x1a\x52\xd2\x41\x55\x4a\x62\x8c\xf3\x68\x57\xe5\x9\xd6\x78\x59\xda\x7d\xe7\x50\x73\xba\x4f\xe1\x2a\xb0\xaf\x1e\x1b\xab\xcc\x9c\x0\x7\xe3\x46\x1f\x13\x85\x64\xe\x12\x45\x38\xdb\x79\x72\x70\xc2\x43\xb\xed\x44\xeb\xf2\x48\x30\x87\x8e\x31\x88\xb6\x49\x8f\xe2\x14\x7c\x76\xc3\xd9\xfa\x71\xa1\x6a\x25\x20\x98\x5c\x10\xf\x66\x94\xe6\xa7\x6b\xb4\xa0\xd4\x5f\x1c\x6\xd1\x7b\x8b\xb1\x4e\x28\x56\xb8\xf1\xc1\x16\x1\xea\xf8\x4\xbb\x19\x9b\x8d\x33\x42\xb7\x3a\x4d\xc\x7a\xe4\xf4\x83\x23\x9f\x3e\xc4\xd3\xb5\x3\x53\xb2\x95\x21\xa3\xa2\x8a\x29\x65\x4b\xf7\x2b\xa9\x6f\xa" }, +- { 0x543580, "\xb3\xd\xc5\xef\x7f\x75\x36\xd3\xbb\x73\x87\x24\x17\x6b\xeb\x25\x53\x5c\xfb\xf9\x13\x67\x77\xe7\x1c\xcf\x8\x79\xba\xab\xa7\xc8\xc7\x98\x74\x2d\x34\xf\xaa\xf6\x97\x69\x9f\xc0\x8c\xd9\x51\xcc\xa0\xb1\xf3\xd4\x4d\xe8\x88\xd2\x90\xe2\xbd\x52\xf7\x72\x57\xb0\x4a\x96\x81\xd0\x1f\xbf\xf5\x6d\x10\xea\xb4\x4e\x85\xf8\xde\x56\x5\x4c\xa9\x38\x41\x8d\x4b\x0\xae\x84\x80\xc4\xb2\x15\x3f\x7e\xee\xfc\x7d\x27\xbc\xdc\x70\x6c\x2c\x78\x39\x40\x9b\xbe\x68\xe6\xdd\x5e\xc9\xf1\x2a\x2f\xa1\xe4\xa8\xa\xce\x18\xd8\x22\xa3\x4f\x1e\xe3\xe1\x11\x92\x46\xc\x99\x28\x54\x47\x5d\x7c\x3d\xb8\x5f\x6a\xad\xfe\xfd\x63\x60\x43\x59\xb\x91\x71\xcd\x48\x35\xd5\x2e\x61\x9\x65\x33\x3c\xe9\x1d\x26\x89\x1a\xf4\xb5\x9a\x7b\xa4\x37\x93\x94\x14\x8a\x6\x8f\xe0\xd1\x30\x4\xa2\xdb\x7\xc3\xd7\x8b\xaf\xdf\x82\x50\x3b\x23\x49\xfa\x3e\x42\xa6\xc6\x5b\x9e\x9d\x12\x62\x32\xb7\xed\x55\xca\x8e\xcb\xe\x45\xc2\x19\x6e\x64\x31\x86\x2b\xda\xd6\xc1\xe5\x3a\x7a\x3\x95\x5a\xf2\x21\x1\x9c\x29\xb6\xa5\x16\xec\xb9\x2\x66\xac\x1b\x44\xff\x20\x58\x6f\x83\xf0\x76" }, +- { 0x543680, "\x82\x70\x6d\x44\x64\xe7\xe0\xb\x73\xf7\x12\x60\x5\x13\x9e\xe\x1a\xb8\xe1\xa0\x37\xe8\x61\xde\x55\xe3\x29\x25\x3e\xb6\x92\xcd\x6\x96\x56\x31\xa3\xe4\xcf\xe2\x7c\x23\x53\x84\xfd\xc\x62\x7f\xdd\xb0\x75\x15\x9b\xdf\xf3\x2a\x68\x87\x7\x5c\xd4\xfc\x6e\x80\x38\x5e\xd5\x3a\x50\xd0\x3b\x9\x9c\x4c\x8e\x40\xc2\x91\x58\x22\xae\xb3\x7e\xa6\x54\x90\x5a\x45\x7b\x2f\x18\xf8\x35\x3d\x48\xd\xc6\x20\x51\xfb\x3c\xf5\x2b\xa5\x32\xc3\xd7\x36\x6c\x74\xe6\x85\x1c\x88\xd3\x0\x6a\xa1\xac\xec\x97\xf1\x52\xf0\xf6\x1e\xeb\xfa\xd8\x27\x3f\xa9\x83\x9f\x86\x41\x5d\xaf\xdc\x8b\x8d\xa\x8a\x4b\x4a\xef\x99\xea\x7a\x77\x28\x21\x6b\x8\xc4\x2c\x81\xce\xd9\x14\xf2\xab\x69\x8f\xa2\x1b\xa7\xb7\xc1\x79\x72\x63\x6f\x33\x59\xaa\xb1\x42\x8c\x95\x10\x94\x76\x3\x7d\x16\x1d\xff\x24\xb9\x67\xbf\x66\x47\x4d\x9a\x4f\xc8\xbc\xd1\xed\xdb\xf4\x43\x49\x89\xbd\x1f\x5b\xb2\xc0\x98\x57\x4e\xe9\xc9\xba\x71\x39\xd6\x11\x19\x4\xa4\xfe\xb4\xcb\x26\xc7\x34\xee\x5f\xe5\xbb\x2d\xc5\x93\x46\x1\x78\xca\xad\xf\xcc\x17\xa8\xbe\x65\xda\xb5\x30\x2e\x2\xf9\x9d\xd2" }, +- { 0x543848, "\x5c\x7c\xa2\x4a\x63\x12\x58\x19\xbb\xc7\x60\xfa\x18\xc3\x49\x84\xc8\x5d\x61\xa\xbc\x55\xb3\xf3\x57\xb\xc4\x5f\x56\xc9\x4c\xd0\xe\x90\x9d\x2d\x4\x54\x93\x8\x17\x52\x79\x3c\xb9\x2c\x51\x4d\xb4\xb8\x3b\xfe\x6b\x3f\xd4\x86\x38\xa7\x92\xa8\xea\x30\xcc\xa3\xd6\x8d\xdd\xeb\xbe\x82\xe5\x1a\x98\x77\x1c\xef\x7b\xe1\x41\x22\xc1\x36\x3d\xe0\x9e\x31\xd7\xe3\xc6\x59\x46\x73\xe2\xae\xcd\x1b\x42\x11\xa4\xdc\x9f\x9\xce\x35\x67\x8f\x96\x4e\x83\x5b\xf2\x10\x80\x81\x4f\x2f\x37\xed\xfc\x64\x0\x24\xf0\x99\x78\x9b\x7d\x7\xc0\x6e\xdb\x7a\x39\x76\x75\xbf\x25\x4b\xa5\xc2\x7e\x1d\xd3\x2e\xc5\x6f\x34\xb1\xee\x8b\x68\x21\x2\xab\xd1\x14\xf4\xd\x5e\x23\xf1\x1\xca\xb7\xf5\x95\xa1\x44\x9c\xc\xb5\x6a\xad\xe4\x29\x8c\xd8\xf\x7f\x3a\xec\x32\x6c\x5\x13\x5a\x70\xda\xcf\x53\xa9\xe8\xd9\x74\xa6\x27\x89\x47\x1e\x8a\xd2\xb0\x50\xa0\x9a\x94\x3\x87\x71\xbd\xb6\x62\x65\xd5\xe9\xb2\xaf\xf7\x26\xac\x66\xfb\x85\xaa\xe7\x33\x88\x20\xdf\xfd\x15\xff\x69\x1f\xcb\x3e\xf9\xe6\x16\x45\xde\x6\x40\x8e\x43\x97\x72\xf8\x48\x2b\x91\xf6\xba\x28\x6d\x2a" }, +- { 0x543990, "\x43\x8a\x90\x7d\xc9\xb4\x33\x62\x2a\xc8\xdc\xcc\xe5\xd8\x8\x20\x5f\x53\x67\x18\xe0\x23\xad\xae\x93\x69\x59\x6d\x10\xd4\xef\xab\x5\xcf\xa1\xd7\x85\x97\x28\x98\x5e\x4a\xe1\xf\x13\x21\xc5\x86\x76\x22\x57\x2e\xc4\x77\xbe\x1d\x82\xb1\xd1\xf9\x6e\xb8\x81\xc6\xca\x4d\x26\x17\xe8\x12\xdd\xeb\xc0\xa\xe\xf2\x68\x9a\xf4\x61\xde\xa3\x3d\x2b\xe9\xe6\x48\x5d\x16\xa4\xb9\x45\xed\xe2\x55\x51\x4f\x99\xda\x24\x42\xea\x60\x5c\x9f\x37\x46\xbb\xb0\xb6\x7f\x3b\xe4\x8e\x73\xe7\x5b\xec\xe3\xce\xfb\x9d\xf5\x36\xa0\x6b\x40\x27\x3a\x4\xd\x15\x83\x88\x38\x63\x70\x2c\xd5\x5a\x58\x4c\x72\xac\xb3\x75\x29\x0\xd9\x35\x74\xa6\x6c\xc3\x66\x78\x56\xbc\x92\xb5\x50\x1f\xf1\x34\xa9\x1c\xcd\x3e\xb2\x8c\xbf\x44\xfc\x41\xc1\x7a\xdf\xee\x30\x65\xfa\xa2\x32\x91\x25\x80\xba\x3c\x39\x96\x54\x1\xf8\x71\x2d\x84\xa8\x6a\xfe\xaf\xa7\xf6\x4b\xc7\xd3\x8b\xf7\x3f\x8f\x9b\xfd\xbd\x19\x94\xdb\xc2\x52\x2f\x31\x2\x9\xff\xf3\x11\xb7\x95\x6\xaa\x7c\x9e\x7\x49\x4e\xd6\xa5\x1b\x1e\x1a\x64\x6f\xf0\x47\x79\x87\x7b\xc\x14\x9c\x3\x8d\xb\xcb\xd0\x7e\xd2\x89" }, +- { 0x543bf8, "\x19\xf2\xd0\x35\x72\xe6\xde\xe8\x38\x97\xfe\xd4\x0\xa9\x94\x77\x50\x74\xb9\xc\x15\xce\x54\x71\x45\x65\xba\xa8\x6d\xff\xd2\x63\x86\x5b\x93\xc8\x8a\xb6\x46\x20\x73\xa3\xe2\xae\xfd\x17\x16\x9c\x7\x5\x6b\x4d\x2e\xfc\xaf\x56\xb5\x95\xd7\x42\xb8\x18\x23\xa\x34\xf0\xcd\xfa\x3c\x9d\x9e\x8e\x59\x6f\x67\x92\x68\x5f\xcc\xe3\xe0\x41\x5a\x26\xdb\xe7\x33\x1e\x53\x37\x55\xb2\xf\xdc\x28\x10\x75\xb1\x12\xf7\x6c\xda\x2b\x8c\x89\xf5\xd9\xec\xc1\xb3\xee\xdd\xa2\x4f\xef\x9f\xa1\xbf\xdf\xb7\xca\xc3\x9b\xf4\x8\xb\x83\x3f\x32\xc2\x62\x1a\x2d\x2\x69\x4\x7e\x79\x61\x4c\x44\x84\x3d\x47\x39\xd\x8f\x5c\x81\xe9\x76\x8d\xad\xc5\x80\xd8\xcf\xc6\x7d\x1c\xd6\x7a\x51\x82\xc9\x31\x4b\x6\xb4\x85\x3b\x58\xf6\x6e\xa4\x3e\xe4\xa7\x2f\x25\x7b\x30\x66\x14\xc7\x57\xc0\x64\x21\x4e\x22\x2c\x99\xbc\xbb\x52\x49\x36\x1f\x7c\xf8\xf3\x3\x90\x3a\xc4\xa0\x4a\x91\x87\xcb\xd3\x78\xfb\x11\x70\xd1\xea\xf9\x96\x9a\x9\x5e\x1\xa5\x2a\x1b\xab\xf1\xd5\x43\xed\x13\xeb\x5d\xe\x8b\xe1\x98\x48\x29\xb0\x6a\xe5\xaa\xa6\xbd\x88\x60\xac\x40\x24\xbe\x27\x7f\x1d" }, +- { 0x543d08, "\x98\x9c\xb6\x1c\x91\xe3\x4d\x7\x3c\x42\xeb\x71\xda\x6c\x45\x61\x99\xd6\xb1\x14\x51\x28\x64\x3\x1e\xcf\x15\x10\xa\x75\x1b\xba\x73\x89\xc7\x69\xab\x3b\x8\x7b\x52\x82\xa9\xa0\x39\xa4\xf8\x6f\xa6\xad\x22\x9e\x50\xfc\xbf\x6\xe9\x5c\x2f\x8b\x1\x8d\xf0\x8c\xe2\xa5\xe\xe5\x4b\xf7\xaa\x66\x60\x4e\x7c\x4f\x34\xa2\xb4\x5d\xaf\xcb\x8a\xd4\xb7\x30\x88\x1d\xfe\xbb\x9a\x74\x9b\x37\xe1\x44\x3d\x38\x3a\xfb\x80\xc8\x41\x65\xc6\x4a\xd7\xf5\x70\x62\x2c\xc2\xb0\xf4\xae\x57\x21\xf6\x4\x54\x5\x2b\x83\x95\xdc\xb\x24\x94\x7f\xd0\x31\x84\x5f\xdd\xe8\x87\xce\xb8\xc5\x40\xc1\xa8\xd2\xc0\xd9\x53\xa3\x3f\x55\x6b\xa7\xf1\x1f\x13\xed\xf9\x3e\xc9\xc\x2e\x67\x96\xd1\x27\x77\xbd\x32\xde\xee\x48\xf\xc3\x76\x36\xcd\x2a\xe4\xea\xdb\x46\x6d\x25\x78\xef\x18\x11\xd8\xe7\xb5\xca\x4c\xbc\xff\xac\x5b\x97\x8e\xf2\xe0\x43\x20\x35\x93\x5e\x81\x63\x2d\x79\x68\x19\x92\x56\x12\x5a\x0\x47\xb9\xd5\xb3\x90\xf3\x1a\x33\x2\x26\xd3\x6a\x85\xcc\x7d\xa1\x23\xec\x9f\x7a\xfd\xe6\xfa\xbe\x29\xb2\x72\x7e\x49\x58\x6e\xd\x86\xc4\x16\x8f\xdf\x9\x17\x59\x9d" }, +- { 0x544130, "\xc9\x1c\x8\x44\xea\x55\xb5\x3e\x8a\x54\xeb\xd3\x86\xbb\x3b\x6e\x31\x3f\x22\xbc\xe4\xfc\x81\x4b\xd7\x8c\x1e\xb7\xb4\xb\xc8\x7c\xbe\x69\x1d\x9a\xfe\x18\x2b\xde\x4f\x6c\xcb\x52\x35\xe9\xed\xad\x79\x56\xb2\x41\xe2\xf7\xdb\xff\x6b\x71\x15\xf8\x5c\xcf\x48\xa7\x3c\x92\x60\x4a\x9f\x1f\x80\x4e\x8b\x43\x90\xab\x39\xee\x5\xd9\x6a\x40\x66\xf5\xb1\x29\x65\x9b\xf1\x84\x1a\x0\x64\x5f\xe\x76\x6d\x7\xc5\x67\x5b\x4c\x73\xd1\x7a\xf\x82\x7b\x47\x85\x74\xe6\xa1\x21\x42\xd8\x8e\x95\x98\xe3\xaa\x27\xb6\xb8\x26\xc\x6\xe8\x5e\x37\xbd\x6f\xca\xc1\x14\x4d\x10\x50\x3d\xb9\xf9\x19\x97\x1b\x7e\x20\xaf\xd5\x51\x2\xa\x8f\xa3\xd6\xc3\x62\xb0\xf4\x32\x12\x94\x8d\xc0\x78\x61\xc2\xe7\x3\x30\x63\xa8\xdc\x77\x9\x89\xa0\x46\x7f\x58\xd\xac\xa2\xe5\x88\x9e\xe0\xc4\x57\x68\xf0\x36\x38\x24\x1\xec\x91\x25\xef\xfa\xd2\x13\xce\xd4\xbf\x3a\xcc\xba\x93\xf6\xfd\x5a\x45\xcd\x72\x87\x49\xa6\x2d\x53\x28\x99\x2c\xb3\x5d\xd0\x4\x34\x96\x23\x9c\xe1\xc7\x16\xf3\x2f\x17\x75\xa5\xfb\x11\xdd\x2a\xae\xa9\xda\x70\xa4\x7d\x59\xc6\xdf\xf2\x9d\x33\x83\x2e" }, +- { 0x544298, "\x84\x6d\x8e\x4a\x54\x44\x86\xb1\x7b\x8f\xa3\xfe\xf2\x6f\x9b\x2a\xa\xdd\xd5\x4e\x94\xc6\x7e\x99\x46\x56\x1b\x62\xad\x9a\x1d\x5c\xb6\x11\x15\x7f\xa8\xb\x45\xe8\x18\x41\xf5\x19\x9f\x16\x31\x3e\xc7\x51\x6b\x5\xfd\x70\x10\x93\xd1\x32\x2f\xf4\x89\x64\xf7\x3b\x60\xca\x96\x4c\x90\xbd\xbf\xab\xb7\x68\xb3\xdf\x42\xd4\xa1\xcc\x21\x59\x72\xe4\xdc\x73\x9e\x79\x14\x3\xec\xda\xd7\x92\xf1\xb2\xb5\x39\x81\x4d\x5b\x1f\xf0\x67\x74\x7c\x1e\x57\x6e\xe1\xac\x30\xea\x6c\x13\x37\x3d\x98\x22\xc4\xbb\x20\x50\xc1\x27\xf6\x53\xb8\x87\xcb\xf\xd3\x48\xcd\xc3\x47\x12\x75\x2\xfa\x5d\x4f\x80\x1a\x5f\x8a\x8d\x83\x58\xa0\x52\xbe\x43\x36\x61\x8\x82\x6a\xce\xaa\xb9\xa4\xdb\x76\x3c\x8b\xc\x3a\xde\xef\x24\x2e\x4\x95\x55\xaf\xfb\xf8\xf3\xa2\xa6\x3f\x40\x66\x63\x77\xff\x65\x35\x69\x91\x85\x71\xc9\x2c\xd\xed\x97\x2b\x4b\x33\xba\x23\xf9\xe7\xc2\xc0\xe3\xeb\x5a\x9d\x78\x8c\x7a\x34\x9\x26\xd6\x5e\xe2\x1c\xc8\xb0\xa7\x28\x9c\xe6\x49\xd8\x25\x7d\xe9\x29\xe0\xd9\x6\xcf\xfc\x17\xbc\xd2\x7\xa5\xa9\xae\xc5\x38\xb4\xe5\xe\xee\x1\x2d\xd0\x0\x88" }, +- { 0x546d50, "\xab\x73\xec\xa\xdc\x52\x12\x6b\xc5\x5c\x71\x5e\x44\x8f\x41\x90\x8b\xe\x83\xba\x9e\xe4\x62\x42\x20\x38\xf3\x75\xb\x1b\x17\xf5\xd4\xcb\xaa\x81\xb1\x6c\x70\xc3\x11\x76\xd1\x69\x47\xf4\x9f\xe9\x95\xf\x4c\xe3\xd8\x92\xc2\x60\x5a\xe8\xf0\xb2\x0\x7b\x18\x4e\x85\x43\x97\x16\xce\x7a\xa7\x2e\xb8\xd2\x30\x2a\x66\xc7\x5f\xdf\xdb\xd0\xb0\xbb\xe1\x96\x3e\xfe\xc0\x26\xf7\x61\xee\xcc\x48\x3d\xfb\x3c\x2b\xae\x32\x55\xb9\x36\x7e\x68\xe5\xe2\xad\xac\x2f\xb3\xf1\xa1\xc9\x1d\x29\x72\x82\x67\x79\x51\x4\x50\xed\x1\x4b\x57\x5b\x1a\xbe\x7\x8a\x4a\x56\x9a\x9b\xca\x99\x2d\xb4\x8c\xb5\xdd\x25\x1f\xa6\xf2\x35\x2c\x89\xcd\x53\x77\x7d\x1c\x19\x84\xd\x6e\xea\x4d\x88\xc1\x24\x40\xa8\x8e\xbf\xa0\x3a\x54\x22\x58\x28\x6a\x3\x94\x64\xa2\x34\xff\xd6\x93\xa3\x23\x37\x9c\x8\xa4\xc6\xfc\x6d\xb7\x45\xde\x49\x31\xa9\xe6\x9d\xd7\xfa\xe0\x4f\x3f\xfd\x78\x98\x39\x6\x91\x21\xbd\xb6\xc8\x3b\x9\xe7\xa5\x7c\xbc\xf8\xc4\xd9\xeb\xf9\x87\x7f\xda\x1e\x86\x63\x46\x5d\xd3\xc\x2\xd5\xf6\x10\x15\xcf\x14\x33\x65\x27\xaf\x59\x13\xef\x80\x5\x8d\x6f\x74" }, +- { 0x544548, "\x1f\xf4\xd5\xe\x5c\x98\xdc\xdd\x53\x5a\xf0\x9c\x1b\x3b\xcb\xae\x3d\xa9\x99\x45\x97\x6b\x5b\x8\xb9\x44\xe8\x89\x6a\x92\xa0\xb3\xad\x8c\x5e\xd4\x77\x8b\x30\x72\x4e\x8f\xe0\x31\xec\xfb\x1d\xc0\xe1\xca\xab\x20\xb4\x73\x6e\xc9\xfc\x42\x35\xde\x93\x64\xaa\x85\xda\x14\xa5\x46\xa\xd0\xf6\xff\x2b\x6d\x33\x91\xa7\x59\xf1\xeb\xb2\x48\x62\xd9\x39\xf7\xfa\x75\x68\x4\xf8\xc4\x74\x6f\xe7\x41\x58\x15\x63\x55\xf5\x3\x1c\x9b\xe3\x52\xaf\xb0\x1e\x2d\xed\xe5\xa4\x5f\xd\x60\x82\xa2\x49\xbd\x7c\xcc\xb\xc3\x4b\x4a\xd8\x23\x28\x86\x51\xce\x7\x40\x7d\xd2\xe6\x4f\xa8\xfe\x9e\x65\x9a\xc1\x17\xee\x3a\x4d\x7e\xfd\x88\x12\x5\x9f\x78\x7f\xcf\x18\xea\x0\x61\xe4\x96\xdb\x6c\x26\x56\xbf\x1a\x16\x9\x80\xa3\x79\x36\xa1\x2f\x32\xf\xcd\xc5\x3c\xd6\x2c\x70\xd3\xf2\x84\xd7\xc6\xa6\x47\xf9\x34\x22\xf3\x66\x10\x38\x37\x6\x2\x54\x13\xb8\xe9\x29\xbe\x5d\x7b\xac\xb1\x67\x2a\x57\x3e\x7a\x83\x1\xb6\xc7\x9d\x94\x2e\x43\x76\x8d\x69\x8e\x24\x50\x8a\x25\xb7\x19\xd1\x87\xb5\x11\xef\xe2\xc2\xba\x21\x71\x27\x3f\x95\xdf\x81\xbb\x4c\x90\xbc\xc8\xc" }, +- { 0x544700, "\x78\x6c\xc5\xc\x2d\xa7\x97\x9c\x22\x76\x3e\x81\x51\x47\x59\x71\xb1\xa2\x4a\x3c\xb5\x16\x6\x95\xb9\x1\xe6\x91\x96\x1c\x1b\xad\x61\x64\xb2\xe7\x29\x19\x52\x3b\xfa\xaf\x30\xdb\xd4\xb\xfe\x75\x1f\xbe\xcb\xf6\xea\x31\xf8\xd8\xa3\x82\x73\x1d\x99\xf0\xcc\xb6\x46\x26\xaa\x8c\x87\x90\x24\x8f\x7a\x13\xee\xd1\xa9\x5\xb3\xf7\x2\x7c\x4c\x1e\xff\xe5\x77\xab\xd6\x98\x20\x4d\xc4\x23\xf4\xa4\x85\x9a\x8e\x1a\xe\xf5\x15\x60\x38\x72\xe9\xf1\xc3\x68\xf2\x93\xd3\x2a\x48\x74\xc2\x57\xa1\x7d\x94\x37\x92\x5c\xe1\x41\x83\xd5\x65\x14\xa6\xdc\x44\x27\xef\xd7\x25\x10\x2c\x7f\x40\xa5\x55\xbd\x2b\xd\xd0\xfc\xdf\xa0\x4\x0\x62\xb4\x5a\xeb\x6b\x84\x7e\x6a\xde\xed\x66\x3\xfb\x2e\x4f\x4e\xbb\x36\x5b\x18\xe3\x69\x3f\xec\xe4\xd2\xa\x34\x63\xcf\xa8\xf9\x9b\x7b\x6f\xe8\x49\xc1\x9\x54\xf3\x50\x67\x79\xc0\x9f\x8d\x5f\x17\x70\x11\xc8\xbc\xc6\xe0\x35\x39\xc7\x6e\x21\xbf\xda\x6d\x28\xf\xdd\x33\xac\x8a\x12\xc9\xcd\xb8\x45\xae\x32\xce\xe2\x56\xfd\x42\x89\x86\xca\x4b\x3d\x5e\xba\x8b\x5d\xb0\xb7\xd9\x58\x2f\x8\x43\x3a\x53\x9e\x80\x88\x7\x9d" }, +- { 0x5448a8, "\x8f\xf2\xa0\xf3\x5c\x91\xbb\xc7\xcf\x42\x8a\x62\xf4\x67\xb0\xd4\xad\x2f\xc8\x64\xe8\x6e\x40\xc5\x5d\x82\x85\xa\x24\x2a\x41\x74\x7e\xcd\xdc\x26\xea\xe7\x96\xfd\x57\x6f\x35\xa7\x29\x4a\xe4\x4e\x43\xe5\xd8\x79\xe1\xeb\x95\xc1\xa4\xed\x80\xa8\x31\x6\x44\x10\x6b\xbf\x3b\x25\x9e\x94\xee\x83\x81\x6d\x1c\x19\x78\xa5\x5\x56\x4d\x0\x93\xb2\x84\x77\xaf\x2e\x18\x7b\xd2\xf1\xd1\x23\x69\x32\x98\x73\x8c\x5b\x70\xac\x8d\x6a\xb\x30\x3e\xd3\xd9\xe6\xf6\xf0\xd\xf9\x20\x72\x50\x68\xd5\x5e\x99\xf7\xa1\xbe\x89\xca\xa9\xcc\x33\x92\x87\xc9\xb1\x9\x1f\x48\x11\xba\x8\x12\xc6\x22\x53\x71\x90\xb3\x7d\x1b\xb8\x45\x4c\xc2\x9a\x15\xdd\x7c\xb4\x55\xdb\xdf\xfc\x60\x3f\xef\x9d\x3c\x4b\x65\xc3\x13\x51\x4\xb9\xbc\x7\xd0\x97\x66\x8e\xec\x46\x54\xbd\xce\xe3\xe\x88\x8b\x16\x2c\xb5\xd6\xa3\xfe\x3a\xa2\x52\x5f\xe0\x9b\x36\x27\x3\xf5\xe9\xf8\xc\xd7\x28\xe2\xc0\xae\x86\xc4\x6c\xaa\xa6\xcb\x58\x61\x39\x1a\x7a\xab\x9f\x47\x34\x38\x2b\xde\xb6\x1\x2d\x1e\xff\x7f\x5a\x59\x4f\x76\x63\x2\x17\x21\xb7\xf\x14\x37\xfb\x49\x75\xda\x3d\xfa\x9c\x1d" }, +- { 0x544a28, "\x5d\x70\xed\x8d\xab\x3e\xdb\x57\xbc\xf6\x88\xde\xd5\xa1\x80\x2e\xb0\x29\xf1\x41\x9f\x27\xc2\x5b\x1a\xd8\x61\x97\x2a\xcf\xa\x17\xf3\x18\x77\x8\x42\xbb\x2f\x94\x21\x25\x1f\xc\xb8\x3d\xa8\x87\xa7\x71\x0\xd7\x45\x36\x7a\x4a\xca\xf5\xad\x60\x9d\x83\x40\x84\x56\xe\x4\xd1\x2\x96\x73\xe6\xaf\x35\xbe\x95\xc7\x1\x81\xeb\xb5\x7f\x51\x43\x52\xaa\x50\x22\xb9\xda\x54\xea\xd\xa0\xcb\x6f\x4c\x6e\xa5\x31\xdc\xce\xd9\x7b\xb4\x7c\xb\x85\x8b\xae\x12\x2c\x4f\x34\xdd\x6b\x2d\x6a\xfe\x63\xd3\xfc\x3\x20\x6d\xf0\xe5\xc3\x19\x62\x72\x1c\xb3\xc4\x65\x9c\xee\xd6\xfd\x76\xe9\x11\xa9\xe7\x2b\x46\xbd\x78\x89\x13\x9b\xcd\x15\x99\x9a\x69\x3f\x7\x6\xcc\x37\xf4\x98\x9e\x30\x47\x6c\x3a\x23\xe4\x66\xe8\x79\x3c\x5e\x14\x91\xb7\x8c\xfb\x8f\xc0\x3b\x7d\xe0\xa4\xfa\xc6\x4d\x90\x82\x44\x5\x67\x7e\xd2\x49\x64\xc8\x74\x8e\x32\xf9\x10\xff\x5a\x48\x5c\xc9\x92\xac\x16\x68\xd0\xef\x1e\xf\x24\x58\xbf\xb2\x55\x1d\x59\xe2\x33\xb1\xa6\x86\x4e\x4b\xc1\xe1\x39\xa2\x9\xba\x75\x5f\x38\xf8\xec\xdf\x53\xb6\xe3\xc5\x26\xa3\x1b\xd4\x93\x28\x8a\xf7\xf2" }, +- { 0x547670, "\x41\x55\xc1\xa3\xdf\xde\xf4\x5c\x1\x2e\xa8\xf0\x1f\x4e\x38\xf6\x9d\x24\x1a\xb3\xcc\xcf\x7e\x9a\x60\xd2\xed\xe1\x42\x92\xe\x6b\x39\x57\x8f\xad\xfa\x5f\xfd\x48\x8a\x4c\x73\x64\x7f\xf9\xbc\x77\x6a\xd0\xe7\x47\xd6\xa6\x13\xf7\xd1\xb2\x3b\x49\xbb\xbf\x19\x3e\xb9\x58\x6c\xcb\x32\x5b\xd9\x8\x2b\x86\x90\xa0\x2f\x36\xe8\xbe\x6f\xa\x44\xfb\x8d\xeb\x9f\x4\x75\x82\x72\xb6\xaf\x3\x2c\xfe\xae\xf8\x27\x4b\xf5\xcd\xb0\x4a\x35\x3d\x5d\x2\x7c\x10\xba\x2d\x76\x74\x4d\x21\x65\xdd\x98\x17\xca\x33\xd\x88\xc2\x96\xdb\x84\x53\x1e\x80\x1b\x7b\x5e\xb8\xb4\x3f\xd8\x1d\x56\x99\xec\x52\xc7\x70\xc3\x7a\xc\x34\x25\x5\xa5\xda\x16\x26\x54\xf3\xe0\xd4\x85\xbd\x9c\x68\xac\x8e\xe6\xd3\x87\xa2\x8b\xa1\x15\xb5\x78\xb\x0\x66\xea\x50\x79\x59\xaa\x22\x2a\x29\xc4\x7\x12\xee\x69\xf\xf2\x3c\xc6\x7d\x28\x9e\x6d\xc9\xe3\x20\xa9\x40\x94\x63\x71\x46\xff\x23\x4f\x14\xd5\xc5\xa7\xf1\x31\x67\x95\xe4\x93\x89\x11\x6\x91\xef\x8c\x6e\x62\xab\x51\x9\x5a\xdc\x83\x1c\xb1\xe5\xe2\x9b\xd7\x61\xb7\xc8\x3a\x43\xc0\xe9\x97\x81\x18\xce\x45\x30\xfc\xa4\x37" }, +- { 0x5480c8, "\xa0\xee\x48\xc3\x70\x1d\x44\x7f\xad\x27\x74\x5c\xe0\x71\x7a\x1a\x5a\x6c\x9d\xef\x28\x88\xa4\x89\xed\x75\x67\x22\x79\xd1\x6d\x1\xc6\x25\x7c\x31\x43\xa2\x66\x10\xac\x4b\x9\x1b\xcc\x3c\x32\xb\x8e\xe4\x60\x73\xf2\x8f\xfb\x47\x9a\x4e\xc0\x55\xd5\x91\x46\x59\xfa\x7\xa3\xbd\x78\xb7\xf\xec\xcd\xa7\xc8\xd4\xe5\x64\x12\x8d\xbb\x7b\xf6\x1e\x9c\xa9\xcb\xbf\x30\x11\x2a\x83\x37\x3a\xc4\x87\x5b\xb9\x6f\xf5\xae\x40\x50\x39\x7e\xb2\xe3\x5\x8c\xf4\xff\x92\x5e\xeb\x57\x77\xb5\x96\xe2\xfd\xba\xb1\x29\x6b\x4c\x51\xf0\x81\x0\x13\xf8\x14\x65\xf7\x3e\xc1\xa1\x5d\x2d\xaf\x69\x35\x3f\xd3\x24\xdf\x1c\x23\xe1\xfe\xf3\xdd\x16\xe6\xd\xb8\xa5\x9b\x9e\x63\x8\x8b\xa\x2f\xf9\x2e\x6e\xb0\x94\xb4\x80\xd8\x4f\x4\x56\xb6\x97\x21\xcf\x93\x3d\x26\x7d\x2\xaa\xd0\x76\xe8\xde\x17\xdb\x86\xb3\xca\xd9\x84\x99\x4d\xc5\xea\x3b\xdc\xab\xbe\x18\xc7\x2c\x3\x6\x68\x4a\x2b\xc9\x62\x95\x82\x85\x33\xf1\x42\xe7\x15\x20\xce\xd2\x58\x49\x98\x45\x41\x5f\xd6\x34\xa8\xda\x8a\x54\x38\xfc\x1f\x19\xd7\xc2\xe9\x61\xa6\xc\x72\x52\x9f\x6a\xbc\xe\x36\x53\x90" }, +- { 0x546af0, "\x15\x4f\x74\xa6\x26\xb3\xce\x55\x94\x77\xb4\x93\xba\xbc\x7d\xd4\xec\x2a\x79\xa2\x70\xbf\x14\x4c\x35\x4\xd7\x85\x6c\x0\x11\xf6\x69\xb8\x2\xa7\xc4\x6a\x58\x92\x39\x25\xe6\x9d\xa5\xa\xc7\xaa\xda\x36\xb5\x2d\xeb\x86\xa0\x12\x99\xb1\x9c\x34\xcc\xb7\x59\x62\xf0\xcd\x9f\x17\x8a\xca\xc3\xa3\x7\xf3\x57\x41\xe5\x88\xfb\x97\xde\xd1\x1\x24\x43\x68\x90\xa8\x4b\x72\xee\x80\xfa\x52\xf2\xe7\xf\x6f\x22\x5f\x37\x2c\x98\x73\xb2\x3a\xf8\xc9\xd0\x1c\x87\x66\xab\x5d\xf9\x9b\xb0\x32\x61\xa1\xe0\x29\x9\x31\x45\x2f\x2b\x30\x8d\x5b\x5e\xa4\xc5\x3\x51\x16\x1a\xe4\x4a\xc\x18\x1b\x6\x4d\x7c\x82\xef\x19\xb\x8c\x3f\xb9\x13\x53\xd2\x6d\xb6\x81\x64\xc1\xdd\x95\xdb\xc2\xe8\x46\x60\x8\xe1\xaf\x50\x1f\x1d\xea\xd5\xdc\xcb\xd\xdf\x83\x49\x8e\x2e\x44\x67\xff\x8f\x76\x63\xf7\xe9\x3e\x10\x47\x1e\xd6\x21\xf1\xa9\xac\x33\x89\x7b\x23\xbb\xf4\x20\xd9\xfd\xcf\x42\xc0\x3c\xc6\xe\x40\x5\x7e\x56\x7a\x38\x28\xf5\x48\xe2\x4e\x71\xbd\xc8\x5c\xed\x6e\x96\xae\x8b\x9e\xfc\x3d\x9a\x78\x5a\xfe\x91\xad\x65\xbe\x27\x84\x3b\x6b\xe3\x7f\x54\xd8\xd3\x75" }, +- { 0x546bf0, "\xc5\xb4\xfe\x62\x85\x73\x6d\xa3\x55\x60\x8\x7\xa4\x84\x2f\xcd\xaa\x5a\x36\xd6\x8a\xc\x89\x9c\xa6\x43\xc2\x13\xec\x9\x2c\x16\x52\x63\x81\xf\xed\x1b\x42\xf4\x66\xb6\xfc\xdb\xe7\x1e\xd8\xd5\x29\x5e\xe1\x57\xb0\xb5\xb\x70\xe8\x1\x3b\xde\xd4\x3\x1c\xbf\x5b\x27\x24\x34\xd\xbb\x5d\x39\xbc\xf8\x5c\x4\x3d\x47\x2\xe5\xf2\xdf\xe6\xc4\x95\x7a\x77\x3c\xa0\xff\x6b\x32\x38\x8b\x1a\x7e\x14\x26\x67\xc0\x58\x50\x64\x35\x18\xe2\xd7\x3e\x74\x2d\x41\xb7\x8e\x17\x11\xca\xc7\xd1\xdd\xcb\xd0\x90\xee\xeb\x72\x4e\x53\x80\x68\x4f\x56\xbd\x86\x76\xb2\x6f\x3f\x10\xe4\xba\xfb\x44\xc6\x5\x75\x48\x30\x9a\x19\x8d\x4d\xbe\x7f\xa1\xfd\xab\x9b\xa8\xaf\xf3\x9f\x4c\xad\xef\x8f\x2b\xf0\x31\xe3\x0\x21\xa\x2a\xf5\xc9\x23\xc8\x22\x79\x12\x78\xae\xac\x9d\x3a\x40\xf1\x93\x7b\xa9\x54\x20\x88\xe9\x45\x92\xea\x99\x7d\x6c\xd2\xcf\x6e\xc3\x82\xda\xb1\xd9\xe\x6\x94\x8c\x96\x46\x5f\xd3\x7c\x98\x9e\xb9\xf7\x69\x87\xce\x6a\x83\x28\xa5\xfa\xcc\x4a\x59\xa2\x1d\x61\xf9\x65\x37\xb3\x25\xa7\x91\x71\x1f\xf6\x2e\xb8\xc1\x4b\xdc\x15\x33\x97\x51\xe0\x49" }, +- { 0x544d20, "\xaf\x3a\xa1\x82\xc\x76\x4d\xed\x6a\x13\x70\xc9\xc0\x32\x7a\x63\xd\x6f\xca\xb5\xdd\x69\x8b\x83\x59\x62\x2b\x98\xa9\x60\x51\x34\xa0\x75\x8f\xef\x1e\x44\xab\x54\x9f\xbc\x4\xb7\xf1\x9a\x68\xf2\x28\x3f\xfd\x87\xfc\xb2\x10\x55\x11\x17\x47\x26\x48\x52\x4f\x25\xaa\x5c\x6c\x1c\x39\x8\xa6\x1d\xb3\xfa\xd4\xe7\x37\xa5\x8c\x22\x58\x24\x8d\x23\xad\x31\xe5\xbd\x1a\x53\xa2\x79\x71\xbf\x7\x67\xc7\xcd\x3e\xdf\x14\x21\x7b\x6b\xea\x4c\x49\x9b\x1b\xe4\x7f\xff\x29\x4b\x5d\xe9\xa8\x65\x77\xf3\xa\x6e\xd1\xe2\x89\x96\x38\xf4\x80\x3c\x6d\x2e\xc5\xc1\xf7\x92\x2c\x1f\x20\x41\x36\x2d\x12\x42\x78\x43\xce\xcf\xf\x7d\x90\x0\x5a\x30\xc6\x81\xd9\xf8\x4e\xeb\xd0\xbb\xa4\xae\xd2\xde\xe8\x5f\x9d\xd8\x27\xe6\x19\x9c\xec\x2\x74\x35\xba\x84\xe1\xb\x3b\x5\xfe\x4a\xfb\xb0\xcb\x97\xf0\x64\x86\x99\x91\x3\xbe\x45\xa3\xda\xb6\x95\x2f\xd6\xf6\xc8\x73\x33\x56\xf5\x15\xa7\xc3\x18\xd5\x8e\x93\xee\xc2\x50\xf9\x46\x7c\x6\xe3\xdc\xd7\xb4\xd3\xcc\xdb\xb9\xb1\x57\x94\x66\x85\xb8\x5b\x3d\x72\xe\x88\x40\x7e\x9\x1\x5e\x9e\x2a\x16\x61\xe0\xac\xc4\x8a" }, +- { 0x544e20, "\xd7\x3b\xe0\x11\x7a\x3\xca\xc9\xdb\x34\x4a\xc8\x24\x45\x7b\xc\x61\xf9\xcb\xc4\xad\x3d\xea\xaf\x7e\x63\x8f\x66\x2a\x21\x2c\x94\xb5\x72\xb2\xc0\x30\x77\x2f\x51\x91\x6\xf8\x25\x49\x1c\x74\xff\xdf\xbd\x71\x80\x81\x2b\xe1\x0\x4d\xda\x67\x35\x29\xf3\xc1\x89\x46\x32\x7c\x69\x3e\x1b\xf0\xab\x42\x9d\x26\xc5\x20\xb8\x6e\x12\x90\xd\xa\x5f\x23\xf5\xb9\x5e\x8b\x2\xe6\xe3\xf\x6c\x13\x65\xc3\x1f\xd9\x92\xde\x16\xc7\xd8\x75\x2d\x76\x3f\x6b\xc6\x70\xa1\xee\xa0\xed\x47\x4b\xef\xe\xbb\x9c\x9e\x31\x55\x6d\x8c\x79\x60\xa5\x2e\xe9\x37\x83\x40\xcd\x36\x84\xfd\xce\xb6\x57\xa3\x14\xf2\xeb\xdc\x4c\x28\xcc\x15\xd2\x4f\x1a\x5b\x1\x6a\x50\xcf\x8d\xfe\xb0\xbe\x5d\x44\xb\x59\xd5\xd3\x33\x3c\x5a\x27\x6f\x58\xa9\x96\xb7\xd1\xf7\x5c\x68\x8e\x19\x88\x86\xa6\x1e\x7\xa7\x53\xa2\x4\x10\x54\x7f\xf1\xbf\xbc\x3a\xac\x62\x4e\x8\x99\xd0\xe4\x48\x5\xe5\xfc\x98\x9\xf6\xa4\x1d\x9b\xa8\x56\xdd\x41\xb4\xb1\xfa\x97\x52\x9a\xe2\xfb\x95\x85\xc2\x38\xd6\x8a\xaa\x39\x43\xba\x87\xe8\xf4\x22\xae\x17\xd4\x93\x82\x73\x18\xec\x78\x64\x9f\xb3\x7d\xe7" }, +- { 0x546fd8, "\x40\x2d\xc5\x23\xcb\xf8\x99\x7b\x3b\xae\x91\xa6\xb8\x0\xb0\xe8\x50\x9d\xd\xaf\xd8\x1b\xd1\xe9\x9c\xc0\xc\xcc\x10\xc3\x53\xe0\xd0\x8a\x9\x2b\xb1\x47\x2\xb9\xce\xc4\x3c\xa5\x36\x1\x86\x94\x7f\x72\x7e\x2e\x17\x78\x62\xc8\x3a\x6\xd7\x32\x64\xea\xbb\x18\x8c\x1d\x66\xa9\x58\x8e\x84\x7c\x75\xcd\x45\xc9\x9b\xbf\x4d\x76\x1e\x1c\x49\x44\x3d\xef\x39\xa2\x3\x37\xdb\xbd\x5e\xbe\xf2\x6d\x67\x6c\xd5\x6b\xf\xf5\xd9\x33\x54\x2a\x82\xf6\xbc\xfd\xda\x13\x92\x68\x16\xed\x70\x9f\x5d\xeb\xec\xfc\xfb\xa3\x6e\x90\x5b\x98\x5f\x8f\xe4\xe\x15\xf4\xb5\x3f\x63\x35\x59\x85\x8d\x9e\x5\xb\xa8\x65\x60\xad\x8b\xb6\x8\x41\x12\x80\x1f\x93\xe5\x7d\x88\xa4\x4b\x89\x6f\x25\xdd\xe2\x30\x57\xf0\xac\xe1\x28\xa7\x97\xde\xee\x6a\xc1\xf7\xc7\x55\xd4\x61\x24\x51\xf9\xca\x2f\xe7\x4c\xb7\x4\xe6\x96\xe3\x11\xdf\x43\xcf\x42\xab\xb2\x83\x79\xc6\x52\xdc\xaa\xb4\x7a\x34\x4e\x26\x20\x5c\x19\xa1\xd6\xba\x48\x56\x2c\x9a\xf1\x4a\x46\x74\x5a\x95\x77\xf3\xb3\x71\x27\xd2\x73\xfa\x87\x7\xa\xd3\xa0\x29\x3e\x81\xff\x1a\x38\xc2\xfe\x14\x69\x21\x22\x4f\x31" }, +- { 0x5470d8, "\x13\x32\xf2\xee\xb5\x4b\x96\xd\x64\xb2\xc\xb0\x2f\xc0\x73\x53\xbe\x4d\x4c\xbc\x6f\xd8\x95\x4f\xe0\x6b\x24\x39\x63\xbb\x2b\xc7\xb3\xf4\xf7\x86\x7c\xa6\x23\x2c\x70\x52\xbd\x8b\x48\x80\x98\xb8\xf0\x56\xed\x91\x35\x65\xc3\xd3\x62\x60\xb9\x88\x31\xe1\x37\x1b\xac\x6e\x9e\x55\x1\xea\x4a\x42\xe8\xd9\x2a\x99\x61\x3f\xe2\x68\x58\xcd\x6\xa5\xa7\xd1\x1a\xae\x20\xca\x81\x5\xc5\x3e\xad\x66\x7b\xdc\x12\xa0\xa3\x74\x0\xa8\xb\x19\xfd\xb7\xdb\xb4\xcc\x9d\x3d\xf3\x5f\x5b\x72\xaf\x87\x92\x44\xff\xd4\xc8\x76\x8e\x5d\xd5\x3b\x22\xa9\x36\x47\xf9\x18\x15\x25\x4\x83\xc9\xda\xd7\x4e\xe5\xe4\xfe\x33\xd0\xa2\x5a\x7f\xc1\xf\x1d\x2e\x8a\x8f\x50\x27\x9f\x57\x1e\xeb\x6d\xf6\x54\x59\x49\x9c\x7e\xcf\x28\x93\x45\xec\xab\xaa\xbf\xa\xd6\x78\x41\x7d\x77\x26\x46\xb6\x2\xe3\x3a\xfb\xe\x8\xcb\x51\x82\x9a\x40\x84\x9\x5e\xfc\x7\xef\x21\x14\x2d\x71\xf5\x67\x85\x29\xb1\x30\x7a\xde\x90\x1f\x3\xf1\x3c\x75\xe6\x79\x11\x94\xc2\x16\xba\x97\xa4\x10\xdd\x1c\x69\xc6\xa1\x8d\x5c\x6a\xf8\xe9\x43\x34\x6c\x17\x8c\xfa\xc4\x38\x89\xce\x9b\xdf\xd2\xe7" }, +- { 0x546970, "\xe1\x9a\x3f\x1a\x1e\x5d\x57\x52\x34\xd5\x1d\x93\x35\x76\x92\xf7\xea\xb9\x5c\x3a\xe3\x1f\x70\x9b\xc\xf\xd2\x8e\x30\x4c\x4f\xb0\xb7\x8b\xfb\xaf\xd3\x58\x8\x38\x36\xa5\x0\x2c\x45\x3e\xa7\x4a\x32\x37\x2b\x56\xfe\x90\x51\xc1\x7\x6e\x23\x3b\xbc\x95\x15\x86\x16\x5a\xd0\x2e\x4e\xdd\xd8\xe5\x6b\x7d\xfa\x75\x18\x29\x7c\x48\x68\xb3\xf1\xd4\x8d\x63\x20\xba\x98\xad\xa9\x6\xfc\xb5\x84\x67\xc4\x4d\x9c\x7b\x17\xb6\xfd\x91\xcb\xe\xbb\x60\xe9\x99\x49\x83\x5\x8a\xdc\x66\x24\x21\xcc\x54\x28\x78\xd7\x7f\x2d\xcf\xca\x97\xed\x5b\xc5\x59\x94\xbd\x47\x40\x25\xde\x6d\x3d\xe4\x44\xe2\x6c\x1b\xce\x22\xb\x43\xc0\x7a\x2a\x73\x53\x31\x39\x11\x14\x3\xe7\xb2\xef\x2f\x77\x74\x88\xb1\x8c\x4\x72\x7e\x10\xee\xa4\xf5\xf8\xb4\x85\xe0\x41\x87\x9e\xeb\xc9\x50\x96\xd6\x13\x9\x26\x12\x80\x5f\xa8\x3c\xf3\x89\x46\x4b\xf4\xae\x27\xc8\xc7\x61\x82\xb8\xa3\xa1\xe6\x69\x5e\x2\xec\xab\xc3\xd1\xda\xbe\x79\xe8\x9d\xd9\xaa\xdf\xf6\xa0\x62\x8f\xac\x6f\xa6\x71\x81\xa2\xf0\x33\xa\x1\xf2\xc6\xdb\xf9\xcd\xff\x9f\xd\xc2\x64\x65\x55\x42\x1c\x19\x6a\xbf" }, +- { 0x5467d8, "\xf0\x36\x69\x25\x6b\x37\xee\x56\x5d\x85\xc4\x8b\xc6\x2\x62\xe4\x70\x48\x41\x91\x9d\x38\xff\x55\xfa\x3c\x89\xe6\x73\x30\xa8\x2d\x59\x3e\xec\xf1\x2b\xc9\x9e\x87\x84\x78\x9\x3b\xcd\xb0\xe2\xd9\x31\xf\xfc\x82\xc0\xce\x50\xe3\xbc\x79\x3\x67\x72\x9b\x32\xc1\x7a\xd\xa3\x65\xf2\xd6\x97\x6d\x93\x6f\x83\xab\x11\x74\xc3\xbf\x1f\x6c\xb1\xd8\x64\xb5\x19\xdc\x2c\xac\xe\x8\xb8\x76\xcf\x26\xbb\x6e\x51\x99\xa4\x9c\x53\x4\x88\x3d\xa1\xaf\x9f\x47\x7e\xe5\xd1\x52\xf7\x18\xd7\x15\xf3\x95\xd5\x1a\x86\x68\x8f\xba\x77\xc2\xf9\x5a\x90\x46\xe0\x61\x60\x2a\xef\xdf\x12\x1d\x5c\x7\x21\x34\x9a\xb3\x57\xb4\xe7\x1c\x4c\x35\xa2\xf5\x7b\x5b\x1\x8d\xda\x42\x71\xad\xc8\xf4\x13\x4d\x63\xb6\xfb\xbd\xed\x4f\x8e\x75\x16\x20\x28\xd4\x3a\x8a\xdd\x49\x14\x10\xa0\xde\x4e\x96\xdb\xb\x40\x7f\xcb\x80\x4b\xc\x5\x1e\x24\xfd\x44\x5e\xc7\x17\xae\x7c\xb2\x22\xd3\x92\x8c\x98\x81\x0\xb9\x27\xa7\x58\xb7\xa5\x29\x54\x4a\x6\x45\x1b\x6a\x3f\x23\xf8\xe9\xaa\xca\x66\xc5\x2e\x43\xcc\xfe\xd2\x33\x2f\xa9\xe1\xe8\x7d\x5f\xa\xbe\xf6\xd0\xea\x94\xeb\xa6\x39" }, +- { 0x546690, "\x34\xa1\x39\xaf\x83\xdd\x8b\xb9\xe3\xd3\x61\x77\xc\x52\x66\x5d\x31\x4\x9d\xb7\x6e\xeb\xb\x9b\x19\x2a\xb3\x7c\xe6\x53\xfc\x48\x1d\x68\x69\xed\xf8\xcb\xf1\x17\xb8\x84\xc5\x9c\x6c\x49\x97\x78\xa6\x18\xf7\xdc\x7a\x2d\x65\xd\x26\x56\xb4\xa2\x3\x93\xe9\x1c\x82\x14\x6f\xee\xd2\x74\xac\x62\xc0\x7b\x8f\xd7\x20\x35\x21\xe1\xa0\xcf\xcc\xc3\x67\x80\x55\xfe\x70\x4e\x58\xc8\x27\x0\x36\x5\xe0\x1f\x6d\x51\xd8\x25\x89\x2\x2c\x85\xde\x76\x81\x4d\x11\x9e\x2b\xe5\xcd\xda\x3b\xbd\x92\xc4\xdb\xf6\x46\xbb\xba\x75\xb6\x71\x7e\x79\x1b\xfa\xea\x64\xc1\xa9\x8c\x59\x5f\xe7\x90\x63\xb5\x5c\x98\x6b\x9f\xae\x5e\x7d\xad\xc6\x7f\x8d\x15\x6\xc2\x38\x43\x5b\x73\xa3\x96\xec\x3e\xe2\x99\x94\x1\x54\xca\xf9\x8\x24\xd0\x4f\xef\xf\x3a\x13\x72\xe8\xe4\xb0\x3d\xfd\x4c\x44\x5a\xf0\x60\xa5\xa7\x40\x88\x8a\xf4\xaa\x9\x4b\xf2\xd4\xbc\x12\x1e\x47\x41\x6a\x86\x45\xd6\x2f\x37\x50\xbe\xab\x91\xf3\x22\x8e\x95\xb1\x28\x87\xb2\x7\x3f\xdf\x16\xa4\x4a\x57\x33\x30\x23\xbf\x3c\xd9\x42\xc7\xff\xa\xf5\x29\xd1\x2e\x1a\x32\xfb\x9a\xc9\xe\xce\xa8\xd5\x10" }, +- { 0x546548, "\xab\x48\xd1\x4b\xbe\x95\x99\x9\x10\x36\x91\xe\x4c\xe7\x14\xb\x96\x16\xb4\xdf\x75\x20\x80\x7f\x74\xb3\x47\x12\xf6\xb2\x4\xca\x44\xe8\x42\x9c\xd5\x86\x30\xe0\x1d\x1e\x28\xe2\x81\xde\x2a\xa2\x45\xf0\xaa\xcc\x5f\xe6\x63\x64\xd9\x1f\x70\x49\xe1\x85\x7c\xf2\xc5\x88\x9e\xb7\xba\x9b\x17\x6e\x82\xd3\x69\x3d\x6\x1\x68\x11\x71\xf7\xd8\x24\xb6\xc7\x67\x50\x7e\x9f\xfc\xe4\xf5\xbb\x55\x7\xeb\x3c\x13\xc\x4d\xd4\x25\x23\x56\xa0\x6d\x5e\xc8\x84\x61\x8f\xdc\x2\xbd\xbc\x6f\xcd\xf3\x6c\x92\xfd\x3e\x21\xed\x1c\x6b\x79\x59\xec\x41\xac\x2c\x58\x8d\x89\x35\xaf\xda\xb0\xd6\x22\x5d\xc3\xd0\xa\x1a\x2e\x43\xe9\x7d\x52\x5c\x34\xa9\xd7\x60\xb9\x53\xee\x39\x3b\xc9\xe3\xae\xdd\x4e\x57\x8e\xf8\x19\x46\xa6\x3f\xb8\x90\x8a\xc1\x33\x4f\xea\xff\x51\x2f\x66\xc6\xf\xef\xa7\x7a\x9a\xdb\x94\xd2\xfa\xa5\xd\x8c\x18\x77\xad\x87\xc0\x54\x32\x31\xa3\x38\x62\x37\xf4\x93\x98\xf9\x83\x40\xce\x15\x1b\x3a\xfe\x3\xfb\x6a\x8b\x27\xf1\x9d\x73\x5b\x65\xe5\x7b\xb5\x4a\x8\xc2\x72\xbf\xa8\xc4\x76\x29\x26\xa1\x2b\xb1\xa4\x0\x78\xcf\xcb\x5a\x5\x2d\x97" }, +- { 0x545c58, "\x6\x15\x2e\xa6\xed\x8\xdb\x7b\x2a\x85\xcb\x50\x31\xf5\xb4\x63\x53\xc2\x6e\x91\x92\xe6\xaf\x68\x41\x61\x74\xf3\xbb\x23\xe4\x6a\xf8\xbc\xfe\xee\x93\x90\x6f\x5f\x8a\xf9\x81\xae\xe7\xad\xd0\x59\xcd\x57\x5b\xa5\xbe\x30\xc8\x39\x79\x35\x64\x3a\x6c\x73\x29\x13\x1c\x3c\x2d\xfa\x32\xa7\x71\xe5\x6d\x4d\xa1\x99\x51\x1d\xea\xaa\x67\x96\xe8\x98\xe0\x58\x5d\x8f\x49\x9e\x20\xb\xc6\xeb\xb5\xe\x7a\x4\xc5\x34\xc1\x1b\x77\xf6\xb3\x18\xd4\x47\x9a\x87\xca\x3d\x37\x21\x5\x3\xf2\x83\xa9\xce\x8c\xac\xd3\x9\x8d\xba\xe3\xd8\x4f\x24\x72\x36\x86\xb2\xcc\x69\xfc\x75\x9b\xd5\xd\x4c\xc3\x56\x25\x9c\x5e\x6b\x2b\xb1\x22\x60\x7\xd1\xdc\x8e\xf0\x4b\xb0\x97\x1e\x88\x27\x7c\xd7\xa0\xdf\x43\x1f\x5a\x54\xcf\xa\xa3\xd6\x78\x28\x66\x26\x89\xbd\xb6\x94\xc9\x2c\x95\x1a\x5c\xd2\xb7\xb9\x48\x17\x44\x70\xc7\x80\x52\x40\x11\xc4\x4e\xab\xda\xf\x45\x7e\x3e\x7f\xde\xbf\x1\xa2\x7d\xc\x55\xc0\x84\xa8\x65\x3b\x46\x2f\x62\x82\xef\x33\x76\x10\x14\xe2\x9f\x38\xf4\x42\xe1\xa4\xfb\xff\xfd\xec\x3f\xf1\xd9\xe9\x4a\x8b\xdd\x2\x9d\xb8\x0\x19\x16\x12\xf7" }, +- { 0x545aa0, "\x93\x1a\x38\x7a\xa7\x8c\x82\x3b\x40\x4d\x17\x1\x33\x4b\x7c\xe9\x7f\x41\xcc\x62\xc4\xf2\x70\x2f\x2\xe8\x86\x81\xce\xfe\xab\xdc\xad\x30\x4\x6e\x55\xff\x59\xbd\xf5\x23\x2d\x5b\x98\x13\x52\xc7\x7e\xaa\x1e\x4c\xfb\x95\xa8\xf0\x47\xf6\xea\xa2\x1c\xfa\x1d\xe3\xcf\xd9\x12\x57\xc0\x49\x0\xbb\x68\x7d\x3d\x3\xfc\xc1\xd7\xd2\x3c\x91\xae\xa5\xbe\xb2\x51\x69\xd8\xee\xb5\xdd\xf4\x6b\xd3\x4a\x65\x8b\xaf\xde\xe2\x36\x66\xd4\xa9\xc5\x94\x46\xc3\x6\xd0\x73\x87\x27\x9a\xb6\xdb\xb3\xa6\xe0\xe6\xc9\xd\x28\x21\x60\x97\xf8\x71\x2a\x2e\x3a\xfd\xcd\x67\x63\x72\x54\x9f\xf7\x9c\xef\x9\xca\x32\x5\x37\xac\x8a\x96\xe7\x7b\x2c\x4e\xa3\x29\xdf\x31\x84\x20\x8f\xc2\x44\xf\xb7\x39\x76\x6d\x5e\xd6\xbc\x74\x9e\x5f\x78\x64\x99\x92\x6f\x42\x43\xf3\x77\x6c\x79\xb1\xa\xbf\xa1\x9b\xf1\x15\x34\xeb\x88\x50\xc\xe4\xb4\xec\x19\x7\x18\xba\x75\x6a\x48\x22\x3f\x8d\xb\x8e\x89\x5d\xc8\x11\xc6\x61\xda\x5a\xd1\xa4\x8\x10\xf9\xb8\xe\x85\x9d\x45\x56\xe1\x26\xd5\xcb\x1b\x5c\x24\x2b\x25\xb0\x83\x16\x53\xb9\x90\x80\xed\x35\x3e\x1f\x4f\x58\xe5\xa0\x14" }, +- { 0x545d78, "\x28\x45\x39\x3a\x7e\x23\xae\x4c\xe5\x44\x3\x6c\x9a\xe3\xf8\x6d\x29\x79\x12\x48\xaf\x84\x19\x33\xf2\x94\x40\x9\x8\x56\x64\xa\x1\x5e\x34\x30\x95\xd5\x5d\x2b\x7b\xa1\xcd\x75\xf6\x61\xb4\xc6\x99\xe9\x1c\xde\x59\xb6\xe\xd3\xe7\xa9\xce\x5b\x15\xc8\xe8\xc5\x71\x42\x26\xa8\xb\x68\x3c\x70\x87\xc0\x5c\x20\xa3\x1d\xed\xd2\x91\xbc\x4a\x53\xfc\xb1\xbf\xc9\x37\x74\xb3\x69\x36\x5a\x32\x6e\xa6\xc4\x96\x10\x6b\x82\xbb\xe0\x93\x51\x3b\xe2\xd9\x98\x88\x47\x57\x63\xba\x1e\x4d\x8d\xb0\xa0\x22\x9d\xff\x3f\xab\x2\x9e\x41\xf\xf9\x8a\x76\xfb\x6\x6f\x14\xcb\x24\x90\xaa\xb8\xdc\x81\xfe\xb5\x83\x2c\x4\xc7\x55\xfa\xa2\xee\xc\xef\xbd\x5\x5f\x2f\x2e\xa4\xc2\x11\xf4\xe4\xf0\xcc\xf5\x4f\x92\x43\x4b\x54\xca\x3d\x8f\xb9\x66\x3e\x7a\x13\x46\xdf\xad\x7d\x72\xd1\x65\xdb\x35\xd6\x17\x31\xa5\xf7\x97\xc3\x1f\x73\x38\xe6\x89\x0\x50\xa7\x2a\x8c\xea\xec\x77\xc1\xeb\x8e\x67\xd7\xd0\xb2\x9c\x21\x7\xfd\xd\xbe\x85\x78\xcf\x2d\x86\xf3\x1a\x27\x6a\x80\xac\xf1\xd8\x58\x9f\xb7\x18\x25\xd4\x62\x4e\x1b\xe1\x49\x8b\x52\x7c\x60\xdd\xda\x16\x7f\x9b" }, +- { 0x545e78, "\xa2\xb4\xa\xde\x9f\x7f\x85\x5d\xea\x41\x31\x7a\xae\x71\xd0\x1d\x56\x14\xd9\x61\xc7\x59\x69\xbf\x47\xe7\x8c\x29\xd7\xf4\x86\xb5\x2\x93\x22\x8f\x60\x11\xc1\x95\x4f\x3d\x6b\xcc\xd2\xd\x3f\x3a\xdb\xf9\xf0\x8\xb9\x4e\xb\x65\x43\x5a\xce\x4d\x91\x49\x2e\x5b\x99\x8d\xd5\x3e\xe1\x4a\x9c\x38\x78\x77\x7d\xbe\x4b\xfc\x3\x35\x33\x5\xe9\x45\xb6\x1c\xf\x2d\xaf\x53\x57\x54\xc0\xab\xfd\xa9\xcd\x12\x81\x39\x70\xc3\xff\x94\x0\x98\x96\xf5\x79\x20\x6d\xf7\x7e\x88\xf3\x5f\x75\x73\x15\xc5\xb2\x52\xda\x9e\xa5\xc4\x36\x25\xc\x7c\x42\xee\x1e\x6a\x66\x8a\x8e\xbc\xd6\x44\x74\xe8\x10\xa0\x5c\x26\x1\x68\xd4\xa7\xe3\xbd\x3c\xbb\x28\x24\xdd\xf1\x18\x27\x30\x6f\x4c\xdf\x9a\x8b\xa1\x46\xe4\xcf\x4\x67\xd1\xac\xdc\x76\xf6\x34\xa4\x80\x89\xe0\xa6\x55\x19\xb3\xad\x3b\xfe\x5e\xc8\x7\x6\x87\xd3\xfb\x6c\xe2\xf8\x6e\x48\xd8\x2b\xef\x2a\xe6\xc9\x63\xa8\x62\xb0\x2f\xc2\x16\x82\xec\x90\x1b\x23\x51\x97\x9\xf2\x7b\xcb\xe\xb1\xaa\xc6\x9d\xfa\x64\xed\xe5\x32\x50\x92\x72\xb8\x9b\x17\x58\x2c\x83\xeb\x84\x13\x40\x1a\x37\xb7\xca\xba\x21\xa3\x1f" }, +- { 0x545ff8, "\xd3\x15\xec\xfd\x78\x34\xa2\x0\xbb\x4f\x7e\x3e\x16\x5e\x2f\x2e\x58\x3c\xd9\xcc\x49\x74\x1\xc\x84\xab\xfe\x2c\x93\xc7\x19\xea\x92\x36\x37\x47\x8c\xc6\x2d\x33\x6f\xf9\x5a\xd5\x56\xf\xef\xd1\xbf\xfb\xf6\x11\x7a\xbe\x6c\x57\xd2\x68\x6\xb2\x86\xf4\x89\x4e\x5d\xa\x9f\xb9\x42\x3a\x72\x65\xce\x7\xa8\xd6\x3b\x69\x64\xcf\x9e\x55\x4a\xe7\x1c\x1b\x67\x25\x7f\x38\x1e\x17\xeb\x88\xa3\x26\xa4\x8d\x87\xb7\xbc\x32\xad\xaf\x8\xde\x5f\x3f\xe8\xa9\xf8\x4b\xa5\x61\x79\xc3\x41\xe4\x9c\x83\x3\x21\x75\xb6\x54\xdd\x43\x91\x27\xfa\x66\xd4\x53\xb\x9d\xf1\x5b\x94\x39\x8e\xaa\xc8\x20\xc2\xb8\xe0\xa1\x28\x1d\x4c\xa7\xcb\x90\x6a\xd7\x40\x6b\x29\x13\x5c\x4\x8f\xe1\x9a\x31\xb1\x7c\xe2\x62\x1f\xc9\x10\x1a\xa0\x9\xb3\xe6\xf3\xc1\x5\xba\x82\x71\xc0\xe9\x60\x9b\xf0\x18\x12\x46\x48\xbd\xe3\xb4\xac\x30\xdf\xc5\x8b\xfc\x77\x81\x44\x97\xf5\xf7\x59\x98\x24\x3d\x2\x76\x22\xed\x6e\x2b\xff\xd\xc4\x70\x8a\xe5\xb5\x73\x99\xf2\x23\x52\xd8\xdb\x14\x96\xda\xb0\xd0\x45\x51\xae\xa6\x7d\x50\x6d\x95\xee\x80\x4d\xe\xca\xdc\x85\x63\x2a\x7b\xcd\x35" }, +- { 0x546190, "\x96\xef\xf6\x25\x2a\x8e\x6d\xc1\x11\x1d\xb8\x33\x85\xa7\x4c\xc8\x76\xad\x24\x29\xbe\x30\xbf\x54\x5b\x21\xb5\x2f\x51\xde\xca\x74\x9f\x80\xec\xc2\x37\xb9\xe6\xc5\x3a\xe0\xf2\xc4\xd3\x3\xaa\xed\xcb\xc6\xa3\xf4\xe4\xba\x49\xb\x18\x50\xac\xf3\x4e\x64\xe3\x4f\xe\x22\x38\xdf\x94\xc7\xd7\x17\x84\x6c\xb7\xc3\x13\x4b\x47\xb0\x6\xa1\x40\x5f\xa0\x89\xf9\x8a\x3e\xab\x81\x9c\x36\x5\x1a\x62\x8b\x5c\xe8\x7f\x23\xe1\x14\x32\x61\xea\x2\xf1\x5a\x0\x4\x19\xf8\x7e\x7\xa8\x9d\x69\x8f\x1e\x79\xb6\x2d\x59\x6f\xdc\xd4\x8d\x8\x75\x16\x63\x88\x26\x99\x42\xee\x55\x77\xbb\x1c\x1b\xf0\xaf\xbc\xfa\x98\x9e\xc0\xa2\xf\x60\xa\x52\xa9\x2e\x7a\x82\x86\x2b\xce\xf7\x73\x28\xe9\xd6\x4a\x90\x43\x2c\x5e\x8c\x10\x6a\x3b\xf5\xda\x68\x3c\xe2\x91\x56\xa5\x15\xae\xcc\x31\x95\x35\x39\x71\xd0\x7b\x78\xcf\x65\x53\x41\xa4\x6b\x7c\x67\xc\x57\x4d\xfc\xa6\xd\xd2\xc9\x9\xcd\x48\x12\x97\xb4\xfd\x3d\x83\xd8\xfb\xfe\xe5\xdd\x45\x92\x7d\x6e\x1\x5d\xe7\x20\x66\x58\xff\xb3\x3f\x27\xbd\x46\x34\x72\xd5\x1f\xb1\x70\xd9\xb2\xeb\x87\x9b\x9a\xd1\x93\x44\xdb" }, +- { 0x546290, "\x35\x7e\xbe\xb8\x37\x3c\x49\x22\xfe\x94\x24\x93\x78\x2\xcf\xdd\xe3\xb0\xe1\x70\xd3\xc3\xaf\x68\x6\x31\xb4\x7\x3d\xeb\x75\x76\x62\x5e\x73\xe6\xbf\x32\xd8\x9e\xdb\xda\x1b\xca\x11\xbc\x2f\x47\x6b\xed\xdc\x86\x64\x90\x65\xd0\xf4\xe4\x39\xa7\x16\x43\x8b\x5d\x61\x8a\x0\xf\xc4\xe9\xb9\x53\xe7\x15\x92\x21\xe0\x6e\xcb\x4a\xfb\x91\x9c\x97\x28\xc8\xd7\xd2\x99\x74\xb7\x4d\x63\x8e\x80\xe\xd9\xa0\x95\x2e\xc9\x7b\x42\x3a\x58\xd\x1c\xce\x84\xc6\x1e\x67\xa8\xc5\x17\x33\xcd\xd1\xdf\x8f\x66\x9f\xc7\x1\x3e\x2a\x23\x5\xb\xf9\x51\x81\x40\xb5\xef\xab\xf2\x5f\x50\x30\x6c\x26\x82\xfc\x60\x83\x3\x3b\x56\xe8\xfd\x18\xb2\x98\xba\x72\x27\xf5\xa1\xaa\x36\xec\x69\x4c\x77\x34\x59\xf3\x38\x9b\x7d\xc0\xa6\x48\xae\x20\xfa\xcc\xd5\xde\xb3\x14\xa4\xa\x5c\xad\x25\x7a\x4e\xe5\x46\x6f\xff\x52\x4b\x1d\xea\x8c\x79\xf1\x9a\x8d\xa2\xc2\xac\x89\x6a\x41\x44\xf8\x57\x9d\x9\x13\x7f\x10\x12\x2d\x45\xee\xa9\xe2\xc1\x3f\x1a\xbd\x29\x19\x54\xf7\xa5\x71\xd4\x96\x7c\x5b\x1f\x87\x4f\x4\xf0\x5a\xb6\x6d\xa3\xd6\xb1\x2b\xbb\x55\x8\x88\xf6\x85\xc\x2c" }, +- { 0x546398, "\x2f\x62\x9b\xe4\xee\xdb\x3f\x8d\xd3\xd7\x9c\x32\xd6\x4a\xca\x50\xe1\x8e\x6e\xf9\x99\xc5\x4e\xdf\x46\x5d\xd5\xb7\x6d\xb1\xb9\x7e\xf\xad\x44\x96\x13\x6c\x97\x26\xa8\x9f\x85\xde\xed\x56\xce\xda\xb0\xb\x1c\xb8\x3d\x5a\x1f\xdd\x84\xf3\xcd\x9e\x73\x28\x61\x8c\xbb\x69\x64\x4f\x0\x49\x3c\x75\xc3\x29\x8a\xe2\x4d\xc7\xcb\x10\xd\xe9\x7f\xc4\x60\x1b\x5f\xd1\x45\x42\x93\x59\xe8\x74\xff\x7a\x72\xea\xd4\xa\x3e\x7d\xc1\x31\xa4\x66\x92\xfd\xf6\x6b\x3b\xba\xbc\x19\x6a\x54\x4b\x38\x47\x43\x33\x91\x8b\xe\xae\x4\x76\x4c\xab\xc6\xbe\x36\xd0\xa0\x67\x90\x87\xf5\x9a\x77\xe6\xcf\xb2\x12\x22\x8\x37\x30\xaf\x16\x3\x58\xf1\xaa\x1e\x25\xeb\xf4\x21\xa9\xfe\x27\x83\xdc\x6\x2a\x48\x78\x68\xb4\xa7\x79\x9\x80\x81\xc8\x52\x17\xcc\x2d\x15\x94\x8f\xa1\x14\x98\xe7\xd9\x7b\xb6\x82\x5\xbf\x39\x88\xac\x86\xa2\xf8\xef\x23\x2e\x95\xd2\xa6\xf2\x2c\x3a\x2b\x65\x55\x18\xc9\x35\x57\x24\xd8\xec\xf7\xf0\xb3\x5b\x6f\xfb\x20\xbd\x5c\xfa\x71\x63\xc0\x1d\xe0\x53\x2\xa5\x7c\x51\x11\xb5\xfc\x1a\x5e\x9d\x40\x34\x1\x7\x89\xa3\xc\x70\xe5\xe3\x41\xc2" }, +-}; +- +-static const struct buffer_t type_four_list[NUM_TYPE_FOURS]={ +- { 0x55f320, "\x39\x25\x29\x3c\x2b\x3a\x32\x23\x26\x24\x2d\x3d\x35\x2e\x3b\x38\x20\x27\x28\x22\x33\x3f\x2c\x3e\x36\x2a\x30\x2f\x21\x34\x31\x37\x00" }, +- { 0x55f340, "\x5f\x4b\x40\x5e\x43\x4e\x55\x41\x5a\x57\x5d\x5b\x51\x4f\x4a\x52\x53\x58\x42\x44\x49\x46\x4d\x47\x48\x45\x50\x59\x4c\x54\x56\x5c\x00" }, +- { 0x55f360, "\x7a\x7c\x6f\x6c\x60\x62\x73\x69\x71\x65\x6d\x72\x78\x6b\x64\x70\x74\x7b\x7e\x76\x67\x68\x63\x77\x79\x7f\x61\x6e\x75\x66\x6a\x7d\x00" }, +- { 0x55f604, "\x17\xc\x1a\x19\x13\x12\x3\x1b\xa\x7\x1e\x1d\x5\x16\x15\x14\xd\x8\xb\x10\xf\x1\x4\x0\x18\x1c\xe\x11\x6\x1f\x2\x9\x00" }, +- { 0x5628c4, "\xd9\xd6\xd5\xc9\xda\xdd\xd2\xdf\xdc\xd7\xc3\xd3\xc8\xc6\xc4\xd1\xca\xcc\xc1\xc5\xd4\xc2\xc0\xcb\xdb\xde\xcf\xcd\xce\xd0\xd8\xc7\x00" }, +- { 0x5628e4, "\xf0\xff\xfc\xe4\xfb\xf1\xf3\xe3\xf5\xfe\xea\xf7\xf6\xe2\xe5\xe7\xf8\xe8\xef\xf9\xf4\xeb\xed\xfd\xe9\xfa\xe0\xe1\xec\xf2\xee\xe6\x00" }, +- { 0x5628a4, "\xa0\xb0\xb7\xb1\xbe\xbf\xab\xb2\xa6\xa9\xa8\xa2\xb4\xb3\xa5\xaf\xba\xac\xb8\xbc\xbd\xae\xbb\xa1\xb5\xad\xb9\xa3\xaa\xb6\xa7\xa4\x00" }, +- { 0x55f6a4, "\xa9\xaf\xb5\xa6\xa1\xbf\xac\xb9\xa0\xb0\xa5\xad\xa4\xbd\xba\xb1\xbb\xae\xab\xb8\xb4\xb2\xa8\xa3\xb7\xbe\xa2\xb3\xaa\xb6\xbc\xa7\x00" }, +- { 0x55f6c4, "\xcf\xd1\xd8\xc8\xc2\xce\xd9\xd2\xd6\xca\xc0\xd5\xdb\xcb\xc3\xc6\xd3\xd7\xdd\xdc\xc9\xd4\xde\xc1\xc7\xc4\xc5\xcc\xcd\xd0\xdf\xda\x00" }, +- { 0x55f6e4, "\xee\xf5\xf3\xe7\xe1\xef\xfc\xf7\xed\xe6\xe4\xf8\xe8\xec\xff\xf0\xe2\xea\xe5\xe9\xf2\xfa\xf9\xfd\xeb\xfe\xf4\xe0\xf6\xf1\xe3\xfb\x00" }, +- { 0x562928, "\x31\x3b\x33\x29\x34\x25\x24\x3d\x23\x28\x32\x27\x3a\x3e\x20\x22\x2b\x2e\x3c\x38\x30\x2c\x39\x35\x37\x2f\x3f\x2d\x2a\x26\x36\x21\x00" }, +- { 0x55f744, "\x51\x41\x4c\x5d\x46\x5c\x5a\x43\x49\x48\x5e\x42\x53\x47\x54\x4d\x45\x55\x58\x40\x4b\x5b\x56\x4f\x5f\x57\x4e\x52\x4a\x44\x59\x50\x00" }, +- { 0x562884, "\x84\x98\x8a\x88\x82\x92\x8d\x96\x85\x97\x8f\x90\x95\x8c\x80\x9c\x94\x9f\x91\x87\x86\x9d\x9e\x93\x9a\x9b\x8b\x83\x89\x81\x99\x8e\x00" }, +- { 0x55f784, "\x96\x9c\x8a\x8c\x92\x81\x82\x84\x95\x93\x91\x9f\x90\x85\x9b\x9d\x80\x89\x8e\x8b\x94\x83\x99\x87\x8f\x97\x88\x8d\x9a\x86\x9e\x98\x00" }, +- { 0x55f7a4, "\xb2\xa6\xa2\xaa\xa9\xb8\xac\xae\xab\xb7\xaf\xbc\xa3\xa0\xb0\xa5\xbf\xa1\xb3\xba\xb5\xbe\xb4\xbb\xb6\xbd\xb9\xa7\xa8\xa4\xad\xb1\x00" }, +- { 0x55f7c4, "\xd7\xdc\xc0\xdb\xd9\xd5\xc7\xc4\xd4\xd6\xc2\xce\xd8\xc3\xd1\xca\xcc\xc1\xc8\xcd\xc5\xc6\xd2\xcf\xde\xd3\xd0\xda\xc9\xcb\xdd\xdf\x00" }, +- { 0x55f7e4, "\xe4\xec\xf1\xf9\xe1\xfc\xe2\xe3\xfb\xe5\xef\xe7\xfd\xf7\xe6\xf8\xf3\xf5\xea\xfa\xe8\xeb\xed\xfe\xff\xf2\xf4\xe9\xee\xf0\xf6\xe0\x00" }, +- { 0x55f804, "\x1e\xa\xe\x13\x1b\xc\x14\x10\x8\xb\xd\x18\x2\x1c\x1a\x16\x11\x4\x15\x17\x9\x5\xf\x7\x12\x1d\x1\x19\x6\x3\x0\x1f\x00" }, +- { 0x55f824, "\x3c\x39\x32\x34\x35\x20\x3a\x2c\x3d\x2a\x2b\x26\x30\x38\x23\x33\x29\x2d\x36\x3e\x21\x25\x2f\x2e\x37\x31\x28\x24\x22\x3b\x27\x3f\x00" }, +- { 0x55f844, "\x57\x4c\x51\x45\x53\x54\x4b\x5b\x59\x49\x56\x47\x42\x4e\x58\x5d\x5e\x40\x5f\x46\x52\x5a\x55\x44\x50\x4d\x48\x5c\x41\x43\x4a\x4f\x00" }, +- { 0x55f864, "\x7b\x6b\x7d\x63\x7c\x61\x7a\x79\x71\x6c\x73\x74\x6e\x6a\x68\x7f\x66\x77\x67\x69\x60\x7e\x62\x6d\x76\x78\x6f\x72\x70\x65\x75\x64\x00" }, +- { 0x55f884, "\x92\x9c\x98\x8a\x96\x84\x80\x9f\x9b\x97\x93\x8e\x9a\x87\x88\x85\x8b\x94\x86\x8c\x90\x8d\x9d\x91\x82\x89\x8f\x99\x81\x83\x95\x9e\x00" }, +- { 0x55f8a4, "\xb8\xa9\xbf\xa3\xb3\xaa\xa2\xa5\xb6\xbd\xa7\xaf\xb4\xac\xa4\xba\xae\xa0\xbe\xb9\xa8\xbc\xa6\xb7\xab\xb5\xa1\xad\xb1\xb2\xbb\xb0\x00" }, +- { 0x55f91c, "\x1d\x1e\x1\xc\x12\xd\x14\x8\xe\x15\x9\xb\xa\x18\x1a\x7\x1b\x6\x4\xf\x16\x2\x0\x3\x10\x17\x11\x19\x13\x1c\x5\x1f\x00" }, +- { 0x55f93c, "\x3d\x2e\x2f\x35\x37\x25\x3f\x32\x3e\x23\x21\x27\x22\x2d\x3a\x39\x3c\x2a\x3b\x30\x29\x31\x26\x34\x24\x2c\x33\x2b\x20\x36\x38\x28\x00" }, +- { 0x55f9d0, "\xcc\xd6\xce\xc0\xcd\xd5\xd0\xde\xdc\xd2\xc1\xc9\xc5\xc8\xc6\xd7\xcf\xdb\xc4\xd1\xdf\xd9\xdd\xc3\xd3\xd8\xc2\xd4\xcb\xda\xc7\xca\x00" }, +- { 0x560280, "\x83\x85\x8d\x89\x9a\x96\x88\x90\x86\x9e\x9c\x95\x82\x84\x97\x8c\x98\x8b\x99\x91\x9b\x94\x93\x8a\x8e\x80\x9d\x9f\x81\x8f\x87\x92\x00" }, +- { 0x56034c, "\x4d\x46\x52\x58\x5c\x51\x41\x5b\x42\x40\x43\x5e\x48\x56\x49\x4e\x44\x50\x45\x53\x47\x5f\x55\x57\x5d\x4c\x5a\x4a\x4f\x54\x59\x4b\x00" }, +- { 0x56036c, "\x70\x74\x60\x65\x69\x6f\x79\x7e\x61\x6e\x64\x62\x75\x6b\x7f\x7b\x72\x71\x73\x7d\x6a\x66\x67\x78\x63\x7c\x6d\x77\x6c\x68\x76\x7a\x00" }, +- { 0x5605b0, "\xa7\xa3\xbe\xaa\xbd\xa8\xa9\xa0\xa4\xa1\xa6\xb5\xb4\xb0\xa2\xba\xb2\xb7\xb3\xbb\xb9\xaf\xac\xbf\xbc\xb6\xab\xb8\xad\xb1\xa5\xae\x00" }, +- { 0x560bcc, "\xd0\xc1\xd2\xcd\xca\xda\xd4\xdb\xc7\xd3\xc8\xc3\xcc\xd5\xc4\xc6\xdd\xcf\xc9\xcb\xc5\xc0\xd9\xd8\xd6\xde\xdf\xc2\xd1\xdc\xce\xd7\x00" }, +- { 0x560bec, "\xe2\xee\xfb\xfe\xf2\xe5\xf9\xef\xed\xe7\xe3\xfd\xfc\xe6\xfa\xea\xeb\xec\xf0\xf1\xf3\xe0\xf4\xe8\xff\xe1\xf7\xe4\xf5\xf8\xe9\xf6\x00" }, +- { 0x560c10, "\x2\x1b\x1\x11\x17\x1e\xa\x1d\xe\x8\x4\xf\x1a\x7\x9\xb\x10\x0\x1c\x18\x3\x12\x1f\xd\x19\x16\x14\x6\x5\xc\x15\x13\x00" }, +- { 0x560d34, "\x37\x36\x29\x3a\x3d\x2e\x38\x25\x28\x39\x3c\x26\x2d\x24\x30\x23\x21\x31\x3e\x34\x27\x22\x2f\x2c\x2a\x3f\x3b\x35\x33\x20\x2b\x32\x00" }, +- { 0x560e38, "\x23\x32\x27\x39\x28\x30\x36\x20\x3e\x3c\x38\x24\x34\x21\x35\x2e\x3a\x3b\x31\x3f\x2b\x37\x3d\x2a\x2f\x26\x22\x25\x33\x29\x2c\x2d\x00" }, +- { 0x561014, "\x16\xe\x19\x1\x15\x2\xa\x14\x1c\xf\x10\x4\x8\xc\xd\x0\x18\x5\x1f\x1a\x17\x1e\x13\x6\x9\x3\x7\x12\x1b\x11\x1d\xb\x00" }, +- { 0x561074, "\x65\x73\x7b\x7e\x6d\x69\x7f\x7d\x68\x6a\x60\x72\x78\x62\x67\x70\x61\x6c\x74\x79\x66\x71\x7c\x76\x64\x6e\x6b\x75\x63\x7a\x77\x6f\x00" }, +- { 0x561094, "\x83\x9a\x89\x87\x9f\x8d\x97\x92\x9d\x95\x99\x81\x88\x82\x8c\x8f\x85\x84\x94\x8a\x8b\x9c\x86\x9b\x96\x90\x93\x8e\x80\x9e\x98\x91\x00" }, +- { 0x5610b4, "\xbd\xbc\xa3\xa4\xbe\xb3\xa8\xab\xb0\xba\xb5\xb8\xb9\xaf\xb7\xa1\xb6\xaa\xac\xad\xbb\xb2\xae\xbf\xb1\xa5\xa0\xb4\xa2\xa9\xa6\xa7\x00" }, +- { 0x5610d4, "\xc1\xc8\xc9\xc0\xdb\xce\xd1\xd6\xd3\xdd\xd2\xdc\xcb\xd4\xc4\xc7\xd9\xd7\xd8\xcc\xda\xc2\xcf\xca\xc6\xd0\xc5\xde\xd5\xdf\xc3\xcd\x00" }, +- { 0x561190, "\x93\x94\x9c\x88\x80\x9d\x83\x8b\x8f\x97\x81\x87\x8c\x8d\x95\x96\x9a\x82\x92\x8a\x9b\x91\x9e\x98\x84\x86\x90\x85\x89\x99\x9f\x8e\x00" }, +- { 0x5611b0, "\xae\xa0\xb1\xb7\xa1\xa6\xa5\xa7\xaf\xa4\xbc\xac\xb6\xb3\xb0\xa8\xb8\xbe\xb2\xab\xb9\xbd\xa9\xb5\xbf\xa2\xbb\xa3\xba\xb4\xad\xaa\x00" }, +- { 0x5611d0, "\xcc\xd7\xd5\xca\xc0\xcd\xc4\xc2\xd8\xdf\xdc\xd1\xd4\xcb\xc6\xda\xc1\xd2\xcf\xc3\xdd\xce\xc7\xd6\xde\xd9\xc5\xc9\xd3\xc8\xd0\xdb\x00" }, +- { 0x562968, "\x7a\x78\x79\x7d\x6b\x62\x7c\x6d\x75\x6f\x7f\x65\x61\x60\x73\x77\x63\x6e\x71\x66\x70\x6c\x68\x6a\x76\x74\x69\x64\x72\x67\x7b\x7e\x00" }, +- { 0x55f214, "\xd\x14\x4\xc\x1d\x5\x7\x9\x1c\xe\x16\x11\x17\x3\x6\x15\xb\x0\x12\x13\x1\x19\x1b\x1f\x1a\x2\xa\x10\xf\x1e\x18\x8\x00" }, +- { 0x55f380, "\x98\x88\x94\x97\x83\x90\x99\x84\x8d\x9c\x86\x9d\x9e\x92\x91\x8b\x8f\x82\x8e\x9b\x93\x85\x87\x96\x95\x8a\x8c\x9a\x80\x81\x9f\x89\x00" } +-}; +- +-static const struct buffer_t type_five_list[NUM_TYPE_FIVES]={ +- { 0x55f3f8, "\xef\xe7\xf6\xfd\xeb\xf4\xec\xe2\xf7\xf9\xea\xe4\xf8\xff\xf5\xfa\xe8\xee\xfc\xe9\xe5\xfb\xe6\xe0\xfe\xed\xf2\xe1\xf1\xf0\xe3\xf3\x00" }, +- { 0x562948, "\x47\x41\x56\x59\x45\x40\x58\x48\x49\x57\x55\x54\x5a\x4c\x4f\x4d\x51\x5c\x53\x4a\x52\x5d\x5f\x5e\x50\x43\x42\x5b\x44\x46\x4b\x4e\x00" }, +- { 0x561258, "\x5b\x49\x5f\x43\x57\x4c\x54\x59\x5c\x5a\x51\x52\x5d\x4a\x5e\x47\x44\x56\x55\x4d\x40\x50\x58\x48\x46\x45\x4f\x41\x4b\x4e\x53\x42\x00" }, +- { 0x561278, "\x6b\x63\x7e\x69\x64\x7f\x70\x76\x68\x7d\x71\x60\x7c\x6d\x66\x77\x67\x6a\x7a\x78\x6f\x61\x62\x75\x7b\x74\x72\x65\x6c\x79\x6e\x73\x00" }, +- { 0x561298, "\x91\x97\x98\x8d\x8a\x8f\x82\x95\x84\x93\x99\x92\x9d\x86\x85\x94\x83\x90\x81\x80\x8c\x9f\x96\x9b\x88\x8e\x89\x87\x9c\x9e\x9a\x8b\x00" }, +- { 0x5613a0, "\xb1\xb0\xa4\xbd\xa8\xb5\xba\xbb\xb4\xb8\xaf\xb7\xb6\xa7\xbe\xae\xb2\xaa\xb3\xab\xac\xa0\xa6\xa2\xbf\xb9\xa9\xbc\xa1\xad\xa3\xa5\x00" }, +- { 0x5613c0, "\xc0\xc5\xd0\xdc\xcc\xda\xc4\xdb\xca\xcd\xd4\xcb\xc7\xc3\xd2\xde\xc6\xd1\xc1\xc8\xd5\xc9\xdf\xcf\xd9\xd8\xd6\xc2\xd3\xce\xd7\xdd\x00" }, +- { 0x5613e4, "\xf0\xee\xf8\xe4\xe8\xfb\xfa\xef\xf6\xf9\xf3\xec\xe3\xe0\xed\xf4\xe7\xff\xea\xfe\xe1\xe9\xf5\xf1\xfc\xe6\xe2\xe5\xfd\xf2\xf7\xeb\x00" }, +- { 0x561404, "\x1a\x16\x2\x19\x11\x1b\x17\xf\x14\x9\x18\x5\xe\xa\x6\x1d\x0\x1e\x7\x15\x4\x12\x8\x13\x10\xc\x1c\x1\xd\xb\x1f\x3\x00" }, +- { 0x5615a0, "\xba\xb8\xb2\xb5\xa0\xbc\xa1\xab\xb9\xbb\xbf\xb1\xa7\xb0\xbe\xa6\xb7\xa4\xaa\xae\xad\xac\xb6\xa8\xa2\xa3\xb3\xb4\xa9\xbd\xa5\xaf\x00" }, +- { 0x561628, "\x34\x35\x2f\x3a\x30\x32\x31\x21\x27\x3c\x37\x23\x3b\x2c\x26\x36\x24\x25\x29\x3f\x33\x3e\x22\x2d\x3d\x38\x39\x20\x28\x2b\x2e\x2a\x00" }, +- { 0x561748, "\x52\x54\x41\x5f\x53\x43\x5e\x56\x5c\x44\x5a\x46\x4d\x4b\x57\x5d\x51\x45\x58\x5b\x42\x49\x48\x59\x4a\x40\x47\x50\x4f\x4c\x55\x4e\x00" }, +- { 0x561768, "\x6f\x6b\x7d\x63\x6a\x79\x7f\x7c\x6d\x78\x62\x67\x69\x74\x75\x66\x7a\x6e\x70\x7e\x72\x61\x7b\x71\x73\x68\x60\x65\x64\x76\x6c\x77\x00" }, +- { 0x5617f0, "\xed\xe3\xeb\xe0\xf7\xf3\xfa\xf2\xf0\xfc\xfe\xfb\xfd\xe8\xe2\xef\xea\xf4\xe5\xe1\xee\xf8\xec\xe4\xe9\xf5\xff\xe7\xf6\xf1\xf9\xe6\x00" }, +- { 0x561ea0, "\xa9\xaf\xb0\xac\xa3\xb5\xa7\xb7\xae\xab\xbd\xa8\xb9\xb1\xa0\xaa\xa1\xa6\xb8\xb6\xad\xb3\xb4\xb2\xa2\xbb\xba\xa4\xa5\xbf\xbc\xbe\x00" }, +- { 0x561f38, "\x37\x31\x3a\x3e\x20\x33\x26\x3d\x29\x25\x2e\x39\x2b\x28\x36\x22\x23\x38\x35\x30\x2d\x2c\x21\x2f\x3b\x27\x32\x2a\x34\x3f\x3c\x24\x00" }, +- { 0x561f58, "\x55\x44\x47\x4d\x57\x4c\x43\x4a\x51\x53\x41\x5f\x49\x4e\x54\x5c\x4b\x5d\x45\x5b\x56\x52\x50\x46\x59\x5e\x40\x4f\x48\x42\x5a\x58\x00" }, +- { 0x561f7c, "\x79\x69\x61\x7e\x73\x7f\x6b\x66\x76\x7c\x63\x6e\x72\x6d\x67\x6f\x77\x71\x75\x64\x62\x74\x68\x7b\x70\x78\x6a\x65\x60\x7a\x6c\x7d\x00" }, +- { 0x561f9c, "\x9a\x82\x90\x8d\x8f\x94\x89\x9d\x81\x9f\x93\x85\x84\x98\x9c\x88\x8e\x86\x97\x92\x9e\x87\x9b\x99\x83\x8b\x95\x96\x91\x8a\x8c\x80\x00" }, +- { 0x562198, "\x96\x8e\x80\x89\x94\x99\x8a\x87\x90\x8d\x92\x9e\x84\x86\x9a\x82\x8f\x9b\x9f\x8b\x9d\x81\x88\x97\x95\x8c\x91\x93\x83\x98\x85\x9c\x00" }, +- { 0x5622f0, "\xf0\xeb\xe7\xe9\xed\xe1\xfd\xea\xe3\xf3\xee\xf9\xe0\xfe\xe5\xf5\xfb\xec\xef\xf8\xfa\xf6\xf1\xff\xe6\xe4\xf2\xf4\xf7\xe8\xe2\xfc\x00" }, +- { 0x562864, "\x73\x63\x69\x72\x64\x7f\x7b\x6d\x74\x75\x70\x6e\x66\x62\x77\x68\x6c\x7a\x6b\x76\x61\x71\x7d\x65\x78\x7e\x67\x7c\x60\x6f\x79\x6a\x00" }, +- { 0x56238c, "\x97\x87\x80\x8a\x93\x9b\x88\x96\x92\x8e\x83\x9a\x82\x85\x9c\x8d\x9f\x95\x9d\x8c\x86\x89\x8f\x90\x94\x91\x98\x81\x8b\x84\x99\x9e\x00" }, +- { 0x5623ac, "\xae\xb6\xbb\xb1\xad\xaf\xbf\xb2\xa9\xb4\xaa\xa6\xa0\xa8\xb7\xac\xb0\xa5\xb3\xba\xab\xa3\xa7\xa2\xb8\xbe\xa1\xbc\xb5\xbd\xa4\xb9\x00" }, +- { 0x5623cc, "\xc2\xd8\xde\xd2\xd0\xce\xca\xda\xd4\xc1\xdb\xc0\xd1\xdd\xc4\xd5\xcb\xc3\xdf\xc8\xcf\xd7\xc7\xd3\xd6\xc6\xc9\xdc\xcc\xcd\xd9\xc5\x00" }, +- { 0x5623ec, "\xec\xe1\xef\xee\xfd\xe8\xf4\xe7\xf8\xf1\xf0\xff\xf7\xfb\xfc\xf9\xed\xf5\xeb\xe5\xf6\xfa\xfe\xf2\xe4\xea\xe0\xe2\xf3\xe3\xe6\xe9\x00" }, +- { 0x562908, "\x13\x1c\x1a\x1d\x19\x15\x1f\x11\x18\x1\x0\xe\x12\x1e\xf\x1b\x17\x3\x14\xd\x6\x8\x10\x2\xc\x9\xb\x4\x5\x16\xa\x7\x00" }, +- { 0x56249c, "\x89\x9c\x8c\x97\x81\x96\x9a\x80\x91\x83\x8b\x93\x9f\x88\x8f\x8e\x87\x84\x94\x82\x8a\x95\x86\x98\x9e\x90\x92\x9d\x9b\x85\x8d\x99\x00" }, +- { 0x562544, "\x43\x42\x55\x4c\x48\x5b\x5d\x46\x50\x40\x49\x5c\x5e\x41\x53\x57\x58\x5f\x51\x47\x45\x4b\x52\x5a\x59\x54\x44\x56\x4f\x4a\x4d\x4e\x00" }, +- { 0x562564, "\x75\x65\x7b\x62\x7e\x60\x66\x6d\x61\x69\x6f\x7c\x6a\x76\x7f\x73\x63\x6c\x79\x7a\x70\x7d\x72\x71\x67\x68\x64\x74\x6e\x78\x6b\x77\x00" }, +- { 0x5625a0, "\xbf\xab\xb3\xa0\xb6\xb5\xb4\xaa\xbd\xa5\xbe\xba\xaf\xa4\xae\xa1\xb9\xa7\xa2\xb2\xac\xb7\xa8\xa9\xa3\xb1\xb8\xb0\xbc\xbb\xa6\xad\x00" }, +- { 0x5625c0, "\xc2\xdb\xcc\xd7\xdf\xc5\xd5\xde\xd6\xc9\xda\xd2\xcf\xdc\xd8\xca\xd9\xd0\xcd\xd3\xc4\xd1\xc8\xd4\xdd\xce\xc6\xc0\xc1\xc7\xcb\xc3\x00" }, +- { 0x5625e0, "\xe0\xe6\xeb\xe8\xec\xe4\xfa\xfc\xe5\xfe\xf4\xe3\xea\xf8\xf2\xfd\xf6\xff\xe7\xe9\xef\xee\xf7\xf3\xf1\xf9\xf0\xed\xfb\xe2\xe1\xf5\x00" }, +- { 0x562600, "\x12\x3\x1a\x15\x4\x19\xb\x1b\x17\x1e\xd\x5\x11\x14\x1c\x0\x18\x10\xa\x6\xe\x8\x2\x7\x13\x9\x16\x1d\xf\xc\x1\x1f\x00" }, +- { 0x562620, "\x3e\x3b\x31\x27\x28\x26\x38\x37\x2d\x2f\x32\x23\x3d\x24\x2a\x3a\x2c\x33\x34\x3f\x2b\x39\x30\x21\x36\x25\x3c\x2e\x22\x20\x29\x35\x00" }, +- { 0x562640, "\x4f\x5d\x57\x56\x4d\x45\x53\x5f\x5b\x49\x5c\x5e\x55\x41\x46\x48\x4c\x50\x4b\x42\x44\x4a\x47\x5a\x58\x4e\x43\x51\x52\x54\x59\x40\x00" }, +- { 0x562660, "\x6f\x64\x7d\x7b\x75\x70\x61\x6b\x60\x77\x73\x67\x7e\x7f\x68\x6a\x79\x69\x65\x66\x6c\x7a\x74\x76\x6e\x78\x63\x7c\x72\x71\x6d\x62\x00" } +-}; +- +-static unsigned int yahoo_auth_fibonacci(unsigned int challenge, int divisor, int outer_loop, int inner_loop); +-static unsigned char yahoo_auth_read45(unsigned int buffer, int offset); +-static unsigned char yahoo_auth_read3(unsigned int buffer, int offset); +-static unsigned int yahoo_auth_typefourfive(unsigned int challenge, int divisor, int outer_loop, int inner_loop, int initial); +-static unsigned int yahoo_auth_typethree(unsigned int challenge, int divisor, int outer_loop, int inner_loop, int offset); +-static unsigned int yahoo_auth_typetwo(unsigned int challenge, int divisor, int outer_loop, int inner_loop, int type_two_variable, int type_two_variable2); +-static unsigned int yahoo_auth_typeone(unsigned int challenge, int divisor, int outer_loop, int inner_loop, int type_one_variable); +- +-/****************************************************************************** +- y a h o o _ a u t h _ f i b o n a c c i () +-******************************************************************************/ +- +-static unsigned int yahoo_auth_fibonacci(unsigned int challenge, int divisor, int outer_loop, int inner_loop) +-{ +- unsigned int hash = (challenge & 0xff) * 0x9e3779b1; +- +- hash ^= (challenge & 0xff00) >> 0x8; +- hash *= 0x9e3779b1; +- hash ^= (challenge & 0xff0000) >> 0x10; +- hash *= 0x9e3779b1; +- hash ^= (challenge & 0xff000000) >> 0x18; +- hash *= 0x9e3779b1; +- +- if (outer_loop > 1) { +- const auth_function_t *ft; +- +- int remainder; +- +- hash = ((((hash ^ (hash >> 0x8)) >> 0x10) ^ hash) ^ (hash >> 0x8)) & 0xff; +- +- remainder = hash % divisor; +- +- outer_loop--; +- challenge *= 0x10dcd; +- +- ft = &main_function_list[inner_loop][remainder]; +- +- if (ft) { +- +- switch (ft->type) { +- +- case 0: +- return challenge; +- case 1: +- return yahoo_auth_typeone(challenge, divisor, outer_loop, inner_loop, ft->var1); +- +- case 2: +- return yahoo_auth_typetwo(challenge, divisor, outer_loop, inner_loop, ft->var1, ft->var2); +- +- case 3: +- return yahoo_auth_typethree(challenge, divisor, outer_loop, inner_loop, ft->var1); +- +- case 4: +- case 5: +- return yahoo_auth_typefourfive(challenge, divisor, outer_loop, inner_loop, ft->var1); +- +- default: +- break; +- } +- } +- } +- +- return challenge; +-} +- +-/****************************************************************************** +- y a h o o _ a u t h _ r e a d 4 5 () +-******************************************************************************/ +- +-static unsigned char yahoo_auth_read45(unsigned int buffer, int offset) +-{ +- int i; +- +- if (offset > 32) +- return 0; +- +- for (i = 0; i < NUM_TYPE_FOURS; i++) { +- if (type_four_list[i].buffer_start == buffer) +- return type_four_list[i].buffer[offset] ^ (buffer & 0xff); +- } +- +- for (i = 0; i < NUM_TYPE_FIVES; i++) { +- if (type_five_list[i].buffer_start == buffer) +- return type_five_list[i].buffer[offset] ^ (buffer & 0xff); +- } +- +- return 0; +-} +- +-/****************************************************************************** +- y a h o o _ a u t h _ r e a d 3 () +-******************************************************************************/ +- +-static unsigned char yahoo_auth_read3(unsigned int buffer, int offset) +-{ +- int i; +- +- if (offset > 256) +- return 0; +- +- for (i = 0; i < NUM_TYPE_THREES; i++) { +- if (type_three_list[i].buffer_start == buffer) +- return type_three_list[i].buffer[offset] ^ (buffer & 0xff); +- } +- +- return 0; +-} +- +-/****************************************************************************** +- y a h o o _ a u t h _ t y p e f o u r f i v e () +-******************************************************************************/ +- +-static unsigned int yahoo_auth_typefourfive(unsigned int challenge, int divisor, int outer_loop, int inner_loop, int initial) +-{ +- unsigned int final_value = 0; +- +- int i; +- +- /* Run through each bit. */ +- +- for (i = 0; i < 32; i++) +- { +- unsigned char buffer = yahoo_auth_read45(initial, i); /* Find the location in the challenge to put the 1/0 bit */ +- int mask = ~(1 << buffer); /* so that we can do a replace of our current value. */ +- int new_value = (challenge >> i) & 1; /* Is this bit 1 or 0? */ +- +- final_value = (final_value & mask) | (new_value << buffer); +- } +- +- return yahoo_auth_fibonacci(final_value, divisor, outer_loop, inner_loop); +-} +- +-/****************************************************************************** +- y a h o o _ a u t h _ t y p e t h r e e () +-******************************************************************************/ +- +-static unsigned int yahoo_auth_typethree(unsigned int challenge, int divisor, int outer_loop, int inner_loop, int offset) +-{ +- int new_challenge = yahoo_auth_read3(offset, (challenge & 0xff000000) >> 0x18) << 0x18; +- +- new_challenge |= yahoo_auth_read3(offset, (challenge & 0x00ff0000) >> 0x10) << 0x10; +- new_challenge |= yahoo_auth_read3(offset, (challenge & 0x0000ff00) >> 0x8) << 0x8; +- new_challenge |= yahoo_auth_read3(offset, (challenge & 0x000000ff)); +- +- return yahoo_auth_fibonacci(new_challenge, divisor, outer_loop, inner_loop); +-} +- +-/****************************************************************************** +- y a h o o _ a u t h _ t y p e t w o () +-******************************************************************************/ +- +-static unsigned int yahoo_auth_typetwo(unsigned int challenge, int divisor, int outer_loop, int inner_loop, int type_two_variable, int type_two_variable2) +-{ +- return yahoo_auth_fibonacci((challenge * type_two_variable) + type_two_variable2, divisor, outer_loop, inner_loop); +-} +- +-/****************************************************************************** +- y a h o o _ a u t h _ t y p e o n e () +-******************************************************************************/ +- +-static unsigned int yahoo_auth_typeone(unsigned int challenge, int divisor, int outer_loop, int inner_loop, int type_one_variable) +-{ +- return yahoo_auth_fibonacci(challenge ^ type_one_variable, divisor, outer_loop, inner_loop); +-} +- +-/****************************************************************************** +- y a h o o _ a u t h _ f i n a l C o u n t d o w n () +-******************************************************************************/ +- +-unsigned int yahoo_auth_finalCountdown(unsigned int challenge, int divisor, int inner_loop, int outer_loop) +-{ +- const auth_function_t *ft; +- +- int remainder = challenge % divisor; +- +- ft = &main_function_list[inner_loop][remainder]; +- +- if (ft) { +- +- switch(ft->type) { +- +- case 0: +- break; +- +- case 1: +- challenge = yahoo_auth_typeone(challenge, divisor, outer_loop, inner_loop, ft->var1); +- break; +- +- case 2: +- challenge = yahoo_auth_typetwo(challenge, divisor, outer_loop, inner_loop, ft->var1, ft->var2); +- break; +- +- case 3: +- challenge = yahoo_auth_typethree(challenge, divisor, outer_loop, inner_loop, ft->var1); +- break; +- +- case 4: +- case 5: +- challenge = yahoo_auth_typefourfive(challenge, divisor, outer_loop, inner_loop, ft->var1); +- break; +- } +- } +- +- return challenge; +-} +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/yahoo/yahoo_auth.h pidgin-2.4.1.new/libpurple/protocols/yahoo/yahoo_auth.h +--- pidgin-2.4.1/libpurple/protocols/yahoo/yahoo_auth.h 2008-03-31 18:21:24.000000000 +0100 ++++ pidgin-2.4.1.new/libpurple/protocols/yahoo/yahoo_auth.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,33 +0,0 @@ +-/* +- * yahoo_auth.h: Header for Yahoo Messenger authentication schemes. Eew. +- * +- * Copyright(c) 2003 Cerulean Studios +- */ +- +-#ifndef _YAHOO_AUTH_H_ +-#define _YAHOO_AUTH_H_ +- +-#define NUM_TYPE_THREES 105 +-#define NUM_TYPE_FOURS 56 +-#define NUM_TYPE_FIVES 37 +- +-unsigned int yahoo_auth_finalCountdown(unsigned int challenge, int divisor, int inner_loop, int outer_loop); +- +-/* We've defined the Yahoo authentication functions as having types 1-5; all take either 1 or 2 arguments. +- */ +- +-typedef struct _auth { +- int type; +- int var1; +- int var2; +-} auth_function_t; +- +-/* Type 3, 4 and 5 require lookups into ypager.exe's many static chunks of 256 bytes. Store them here. +- */ +- +-struct buffer_t { +- unsigned int buffer_start; +- unsigned char buffer[257]; +-}; +- +-#endif /* _YAHOO_AUTH_H_ */ +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/yahoo/yahoo.c pidgin-2.4.1.new/libpurple/protocols/yahoo/yahoo.c +--- pidgin-2.4.1/libpurple/protocols/yahoo/yahoo.c 2008-03-31 18:21:24.000000000 +0100 ++++ pidgin-2.4.1.new/libpurple/protocols/yahoo/yahoo.c 2009-10-30 14:58:14.112721348 +0000 +@@ -42,8 +42,6 @@ + #include "yahoo.h" + #include "yahoochat.h" + #include "yahoo_aliases.h" +-#include "yahoo_auth.h" +-#include "yahoo_crypt.h" + #include "yahoo_doodle.h" + #include "yahoo_filexfer.h" + #include "yahoo_friend.h" +@@ -57,7 +55,7 @@ + + static void yahoo_add_buddy(PurpleConnection *gc, PurpleBuddy *, PurpleGroup *); + #ifdef TRY_WEBMESSENGER_LOGIN +-static void yahoo_login_page_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, const gchar *url_text, size_t len, const gchar *error_message); ++static void yahoo_login_page_cb(YahooPurpleUtilFetchUrlData *url_data, gpointer user_data, const gchar *url_text, size_t len, const gchar *error_message); + #endif + static void yahoo_set_status(PurpleAccount *account, PurpleStatus *status); + +@@ -141,7 +139,6 @@ + static void yahoo_process_status(PurpleConnection *gc, struct yahoo_packet *pkt) + { + PurpleAccount *account = purple_connection_get_account(gc); +- struct yahoo_data *yd = gc->proto_data; + GSList *l = pkt->hash; + YahooFriend *f = NULL; + char *name = NULL; +@@ -161,29 +158,7 @@ + + switch (pair->key) { + case 0: /* we won't actually do anything with this */ +- break; +- case 1: /* we don't get the full buddy list here. */ +- if (!yd->logged_in) { +- purple_connection_set_display_name(gc, pair->value); +- purple_connection_set_state(gc, PURPLE_CONNECTED); +- yd->logged_in = TRUE; +- if (yd->picture_upload_todo) { +- yahoo_buddy_icon_upload(gc, yd->picture_upload_todo); +- yd->picture_upload_todo = NULL; +- } +- yahoo_set_status(account, purple_account_get_active_status(account)); +- +- /* this requests the list. i have a feeling that this is very evil +- * +- * scs.yahoo.com sends you the list before this packet without it being +- * requested +- * +- * do_import(gc, NULL); +- * newpkt = yahoo_packet_new(YAHOO_SERVICE_LIST, YAHOO_STATUS_OFFLINE, 0); +- * yahoo_packet_send_and_free(newpkt, yd); +- */ +- +- } ++ case 1: /* we won't actually do anything with this */ + break; + case 8: /* how many online buddies we have */ + break; +@@ -543,6 +518,18 @@ + } + + g_hash_table_foreach(ht, yahoo_do_group_cleanup, NULL); ++ ++ /* Now that we have processed the buddy list, we can say yahoo has connected */ ++ purple_connection_set_display_name(gc, purple_normalize(account, purple_account_get_username(account))); ++ purple_connection_set_state(gc, PURPLE_CONNECTED); ++ yd->logged_in = TRUE; ++ if (yd->picture_upload_todo) { ++ yahoo_buddy_icon_upload(gc, yd->picture_upload_todo); ++ yd->picture_upload_todo = NULL; ++ } ++ yahoo_set_status(account, purple_account_get_active_status(account)); ++ purple_debug_info("yahoo","Authentication: Connection established\n"); ++ + g_hash_table_destroy(ht); + g_free(norm_bud); + } +@@ -755,6 +742,7 @@ + int time; + int utf8; + int buddy_icon; ++ char *id; + char *msg; + }; + +@@ -796,6 +784,9 @@ + { + imv = pair->value; + } ++ if (pair->key == 429) ++ if (im) ++ im->id = pair->value; + l = l->next; + } + } else if (pkt->status == 2) { +@@ -851,6 +842,28 @@ + return; + } + ++ /* ++ * TODO: Is there anything else we should check when determining whether ++ * we should send an acknowledgement? ++ */ ++ if (im->id != NULL) { ++ /* Send acknowledgement. If we don't do this then the official ++ * Yahoo Messenger client for Windows will send us the same ++ * message 7 seconds later as an offline message. This is true ++ * for at least version 9.0.0.2162 on Windows XP. */ ++ struct yahoo_packet *pkt2; ++ pkt2 = yahoo_packet_new(YAHOO_SERVICE_MESSAGE_ACK, ++ YAHOO_STATUS_AVAILABLE, pkt->id); ++ yahoo_packet_hash(pkt2, "ssisii", ++ 1, purple_connection_get_display_name(gc), ++ 5, im->from, ++ 302, 430, ++ 430, im->id, ++ 303, 430, ++ 450, 0); ++ yahoo_packet_send_and_free(pkt2, yd); ++ } ++ + m = yahoo_string_decode(gc, im->msg, im->utf8); + /* This may actually not be necessary, but it appears + * that at least at one point some clients were sending +@@ -1333,6 +1346,14 @@ + NULL, NULL); + } + } ++ ++/* We use this structure once while we authenticate */ ++struct yahoo_auth_data ++{ ++ PurpleConnection *gc; ++ char *seed; ++}; ++ + /* This is the y64 alphabet... it's like base64, but has a . and a _ */ + static const char base64digits[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._"; + +@@ -1364,605 +1385,279 @@ + *out = '\0'; + } + +-static void yahoo_process_auth_old(PurpleConnection *gc, const char *seed) ++static void yahoo_auth16_stage3(PurpleConnection *gc, const char *crypt) + { +- struct yahoo_packet *pack; ++ struct yahoo_data *yd = gc->proto_data; + PurpleAccount *account = purple_connection_get_account(gc); + const char *name = purple_normalize(account, purple_account_get_username(account)); +- const char *pass = purple_connection_get_password(gc); +- struct yahoo_data *yd = gc->proto_data; +- +- /* So, Yahoo has stopped supporting its older clients in India, and undoubtedly +- * will soon do so in the rest of the world. +- * +- * The new clients use this authentication method. I warn you in advance, it's +- * bizarre, convoluted, inordinately complicated. It's also no more secure than +- * crypt() was. The only purpose this scheme could serve is to prevent third +- * party clients from connecting to their servers. +- * +- * Sorry, Yahoo. +- */ +- +- PurpleCipher *cipher; +- PurpleCipherContext *context; +- guchar digest[16]; +- +- char *crypt_result; +- char password_hash[25]; +- char crypt_hash[25]; +- char *hash_string_p = g_malloc(50 + strlen(name)); +- char *hash_string_c = g_malloc(50 + strlen(name)); +- +- char checksum; +- +- int sv; +- +- char result6[25]; +- char result96[25]; +- +- sv = seed[15]; +- sv = sv % 8; +- +- cipher = purple_ciphers_find_cipher("md5"); +- context = purple_cipher_context_new(cipher, NULL); +- +- purple_cipher_context_append(context, (const guchar *)pass, strlen(pass)); +- purple_cipher_context_digest(context, sizeof(digest), digest, NULL); +- +- to_y64(password_hash, digest, 16); +- +- crypt_result = yahoo_crypt(pass, "$1$_2S43d5f$"); +- +- purple_cipher_context_reset(context, NULL); +- purple_cipher_context_append(context, (const guchar *)crypt_result, strlen(crypt_result)); +- purple_cipher_context_digest(context, sizeof(digest), digest, NULL); +- to_y64(crypt_hash, digest, 16); +- +- switch (sv) { +- case 1: +- case 6: +- checksum = seed[seed[9] % 16]; +- g_snprintf(hash_string_p, strlen(name) + 50, +- "%c%s%s%s", checksum, name, seed, password_hash); +- g_snprintf(hash_string_c, strlen(name) + 50, +- "%c%s%s%s", checksum, name, seed, crypt_hash); +- break; +- case 2: +- case 7: +- checksum = seed[seed[15] % 16]; +- g_snprintf(hash_string_p, strlen(name) + 50, +- "%c%s%s%s", checksum, seed, password_hash, name); +- g_snprintf(hash_string_c, strlen(name) + 50, +- "%c%s%s%s", checksum, seed, crypt_hash, name); +- break; +- case 3: +- checksum = seed[seed[1] % 16]; +- g_snprintf(hash_string_p, strlen(name) + 50, +- "%c%s%s%s", checksum, name, password_hash, seed); +- g_snprintf(hash_string_c, strlen(name) + 50, +- "%c%s%s%s", checksum, name, crypt_hash, seed); +- break; +- case 4: +- checksum = seed[seed[3] % 16]; +- g_snprintf(hash_string_p, strlen(name) + 50, +- "%c%s%s%s", checksum, password_hash, seed, name); +- g_snprintf(hash_string_c, strlen(name) + 50, +- "%c%s%s%s", checksum, crypt_hash, seed, name); +- break; +- case 0: +- case 5: +- checksum = seed[seed[7] % 16]; +- g_snprintf(hash_string_p, strlen(name) + 50, +- "%c%s%s%s", checksum, password_hash, name, seed); +- g_snprintf(hash_string_c, strlen(name) + 50, +- "%c%s%s%s", checksum, crypt_hash, name, seed); +- break; +- } ++ PurpleCipher *md5_cipher; ++ PurpleCipherContext *md5_ctx; ++ guchar md5_digest[16]; ++ gchar base64_string[25]; ++ struct yahoo_packet *pkt; + +- purple_cipher_context_reset(context, NULL); +- purple_cipher_context_append(context, (const guchar *)hash_string_p, strlen(hash_string_p)); +- purple_cipher_context_digest(context, sizeof(digest), digest, NULL); +- to_y64(result6, digest, 16); ++ purple_debug_info("yahoo","Authentication: In yahoo_auth16_stage3\n"); + +- purple_cipher_context_reset(context, NULL); +- purple_cipher_context_append(context, (const guchar *)hash_string_c, strlen(hash_string_c)); +- purple_cipher_context_digest(context, sizeof(digest), digest, NULL); +- purple_cipher_context_destroy(context); +- to_y64(result96, digest, 16); ++ md5_cipher = purple_ciphers_find_cipher("md5"); ++ md5_ctx = purple_cipher_context_new(md5_cipher, NULL); ++ purple_cipher_context_append(md5_ctx, (guchar *)crypt, strlen(crypt)); ++ purple_cipher_context_digest(md5_ctx, sizeof(md5_digest), md5_digest, NULL); + +- pack = yahoo_packet_new(YAHOO_SERVICE_AUTHRESP, YAHOO_STATUS_AVAILABLE, 0); ++ to_y64(base64_string, md5_digest, 16); + ++ purple_debug_info("yahoo", "yahoo status: %d\n", yd->current_status); ++ pkt = yahoo_packet_new(YAHOO_SERVICE_AUTHRESP, yd->current_status, yd->session_id); + if(yd->jp) { +- yahoo_packet_hash(pack, "sssss", +- 0, name, +- 6, result6, +- 96, result96, +- 1, name, +- 135, YAHOOJP_CLIENT_VERSION); +- } else { +- yahoo_packet_hash(pack, "ssssss", +- 0, name, +- 6, result6, +- 96, result96, +- 1, name, +- 244, YAHOO_CLIENT_VERSION_ID, +- 135, YAHOO_CLIENT_VERSION); ++ yahoo_packet_hash(pkt, "ssssssss", ++ 1, name, ++ 0, name, ++ 277, yd->cookie_y, ++ 278, yd->cookie_t, ++ 307, base64_string, ++ 2, name, ++ 2, "1", ++ 135, YAHOOJP_CLIENT_VERSION); ++ } else { ++ yahoo_packet_hash(pkt, "sssssssss", ++ 1, name, ++ 0, name, ++ 277, yd->cookie_y, ++ 278, yd->cookie_t, ++ 307, base64_string, ++ 244, YAHOO_CLIENT_VERSION_ID, ++ 2, name, ++ 2, "1", ++ 135, YAHOO_CLIENT_VERSION); + } ++ if (yd->picture_checksum) ++ yahoo_packet_hash_int(pkt, 192, yd->picture_checksum); ++ yahoo_packet_send_and_free(pkt, yd); + +- yahoo_packet_send_and_free(pack, yd); +- +- g_free(hash_string_p); +- g_free(hash_string_c); ++ purple_cipher_context_destroy(md5_ctx); + } + +-/* I'm dishing out some uber-mad props to Cerulean Studios for cracking this +- * and sending the fix! Thanks guys. */ +- +-static void yahoo_process_auth_new(PurpleConnection *gc, const char *seed) ++static void yahoo_auth16_stage2(YahooPurpleUtilFetchUrlData *unused, gpointer user_data, const gchar *ret_data, size_t len, const gchar *error_message) + { +- struct yahoo_packet *pack = NULL; +- PurpleAccount *account = purple_connection_get_account(gc); +- const char *name = purple_normalize(account, purple_account_get_username(account)); +- const char *pass = purple_connection_get_password(gc); +- char *enc_pass; +- struct yahoo_data *yd = gc->proto_data; +- +- PurpleCipher *md5_cipher; +- PurpleCipherContext *md5_ctx; +- guchar md5_digest[16]; +- +- PurpleCipher *sha1_cipher; +- PurpleCipherContext *sha1_ctx1; +- PurpleCipherContext *sha1_ctx2; +- +- char *alphabet1 = "FBZDWAGHrJTLMNOPpRSKUVEXYChImkwQ"; +- char *alphabet2 = "F0E1D2C3B4A59687abcdefghijklmnop"; +- +- char *challenge_lookup = "qzec2tb3um1olpar8whx4dfgijknsvy5"; +- char *operand_lookup = "+|&%/*^-"; +- char *delimit_lookup = ",;"; +- +- char *password_hash = (char *)g_malloc(25); +- char *crypt_hash = (char *)g_malloc(25); +- char *crypt_result = NULL; +- +- unsigned char pass_hash_xor1[64]; +- unsigned char pass_hash_xor2[64]; +- unsigned char crypt_hash_xor1[64]; +- unsigned char crypt_hash_xor2[64]; +- char resp_6[100]; +- char resp_96[100]; +- +- unsigned char digest1[20]; +- unsigned char digest2[20]; +- unsigned char comparison_src[20]; +- unsigned char magic_key_char[4]; +- const char *magic_ptr; +- +- unsigned int magic[64]; +- unsigned int magic_work = 0; +- unsigned int magic_4 = 0; +- +- int x; +- int y; +- int cnt = 0; +- int magic_cnt = 0; +- int magic_len; +- +- memset(password_hash, 0, 25); +- memset(crypt_hash, 0, 25); +- memset(&pass_hash_xor1, 0, 64); +- memset(&pass_hash_xor2, 0, 64); +- memset(&crypt_hash_xor1, 0, 64); +- memset(&crypt_hash_xor2, 0, 64); +- memset(&digest1, 0, 20); +- memset(&digest2, 0, 20); +- memset(&magic, 0, 64); +- memset(&resp_6, 0, 100); +- memset(&resp_96, 0, 100); +- memset(&magic_key_char, 0, 4); +- memset(&comparison_src, 0, 20); +- +- md5_cipher = purple_ciphers_find_cipher("md5"); +- md5_ctx = purple_cipher_context_new(md5_cipher, NULL); +- +- sha1_cipher = purple_ciphers_find_cipher("sha1"); +- sha1_ctx1 = purple_cipher_context_new(sha1_cipher, NULL); +- sha1_ctx2 = purple_cipher_context_new(sha1_cipher, NULL); +- +- /* +- * Magic: Phase 1. Generate what seems to be a 30 byte value (could change if base64 +- * ends up differently? I don't remember and I'm tired, so use a 64 byte buffer. +- */ +- +- magic_ptr = seed; +- +- while (*magic_ptr != '\0') { +- char *loc; ++ struct yahoo_auth_data *auth_data = user_data; ++ PurpleConnection *gc = auth_data->gc; ++ struct yahoo_data *yd; ++ gboolean try_login_on_error = FALSE; + +- /* Ignore parentheses. */ ++ purple_debug_info("yahoo","Authentication: In yahoo_auth16_stage2\n"); + +- if (*magic_ptr == '(' || *magic_ptr == ')') { +- magic_ptr++; +- continue; +- } ++ if (!PURPLE_CONNECTION_IS_VALID(gc)) { ++ g_free(auth_data->seed); ++ g_free(auth_data); ++ g_return_if_reached(); ++ } + +- /* Characters and digits verify against the challenge lookup. */ ++ yd = (struct yahoo_data *)gc->proto_data; + +- if (isalpha(*magic_ptr) || isdigit(*magic_ptr)) { +- loc = strchr(challenge_lookup, *magic_ptr); +- if (!loc) { +- /* SME XXX Error - disconnect here */ ++ if (error_message != NULL) { ++ purple_debug_error("yahoo", "Login Failed, unable to retrieve stage 2 url: %s\n", error_message); ++ purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, error_message); ++ g_free(auth_data->seed); ++ g_free(auth_data); ++ return; ++ } ++ else if (len > 0 && ret_data && *ret_data) { ++ gchar **split_data = g_strsplit(ret_data, "\r\n", -1); ++ int totalelements = g_strv_length(split_data); ++ int response_no = -1; ++ char *crumb = NULL; ++ char *crypt = NULL; ++ ++ if (totalelements >= 5) { ++ response_no = strtol(split_data[1], NULL, 10); ++ crumb = g_strdup(split_data[2] + strlen("crumb=")); ++ yd->cookie_y = g_strdup(split_data[3] + strlen("Y=")); ++ yd->cookie_t = g_strdup(split_data[4] + strlen("T=")); ++ } ++ ++ g_strfreev(split_data); ++ ++ if(response_no != 0) { ++ /* Some error in the login process */ ++ PurpleConnectionError error; ++ char *error_reason = NULL; ++ ++ switch(response_no) { ++ case -1: ++ /* Some error in the received stream */ ++ error_reason = g_strdup(_("Received invalid data")); ++ error = PURPLE_CONNECTION_ERROR_NETWORK_ERROR; ++ break; ++ case 100: ++ /* Unknown error */ ++ error_reason = g_strdup(_("Unknown error")); ++ error = PURPLE_CONNECTION_ERROR_OTHER_ERROR; ++ break; ++ default: ++ /* if we have everything we need, why not try to login irrespective of response */ ++ if((crumb != NULL) && (yd->cookie_y != NULL) && (yd->cookie_t != NULL)) { ++ try_login_on_error = TRUE; ++ break; ++ } ++ error_reason = g_strdup(_("Unknown error")); ++ error = PURPLE_CONNECTION_ERROR_OTHER_ERROR; ++ break; + } + +- /* Get offset into lookup table and shl 3. */ +- +- magic_work = loc - challenge_lookup; +- magic_work <<= 3; +- +- magic_ptr++; +- continue; +- } else { +- unsigned int local_store; +- +- loc = strchr(operand_lookup, *magic_ptr); +- if (!loc) { +- /* SME XXX Disconnect */ ++ if(error_reason) { ++ purple_debug_error("yahoo", "Authentication error: %s\n", ++ error_reason); ++ purple_connection_error_reason(gc, error, error_reason); ++ g_free(error_reason); ++ g_free(auth_data->seed); ++ g_free(auth_data); ++ return; + } +- +- local_store = loc - operand_lookup; +- +- /* Oops; how did this happen? */ +- +- if (magic_cnt >= 64) +- break; +- +- magic[magic_cnt++] = magic_work | local_store; +- magic_ptr++; +- continue; + } +- } +- +- magic_len = magic_cnt; +- magic_cnt = 0; +- +- /* Magic: Phase 2. Take generated magic value and sprinkle fairy +- * dust on the values. +- */ +- +- for (magic_cnt = magic_len - 2; magic_cnt >= 0; magic_cnt--) { +- unsigned char byte1; +- unsigned char byte2; +- +- /* Bad. Abort. */ +- +- if ((magic_cnt + 1 > magic_len) || (magic_cnt > magic_len)) +- break; +- +- byte1 = magic[magic_cnt]; +- byte2 = magic[magic_cnt+1]; +- +- byte1 *= 0xcd; +- byte1 ^= byte2; +- +- magic[magic_cnt+1] = byte1; ++ crypt = g_strconcat(crumb, auth_data->seed, NULL); ++ yahoo_auth16_stage3(gc, crypt); ++ g_free(crypt); ++ g_free(crumb); + } ++ g_free(auth_data->seed); ++ g_free(auth_data); ++} + +- /* +- * Magic: Phase 3. This computes 20 bytes. The first 4 bytes are used as our magic +- * key (and may be changed later); the next 16 bytes are an MD5 sum of the magic key +- * plus 3 bytes. The 3 bytes are found by looping, and they represent the offsets +- * into particular functions we'll later call to potentially alter the magic key. +- * +- * %-) +- */ +- +- magic_cnt = 1; +- x = 0; +- +- do { +- unsigned int bl = 0; +- unsigned int cl = magic[magic_cnt++]; +- +- if (magic_cnt >= magic_len) +- break; +- +- if (cl > 0x7F) { +- if (cl < 0xe0) +- bl = cl = (cl & 0x1f) << 6; +- else { +- bl = magic[magic_cnt++]; +- cl = (cl & 0x0f) << 6; +- bl = ((bl & 0x3f) + cl) << 6; +- } +- +- cl = magic[magic_cnt++]; +- bl = (cl & 0x3f) + bl; +- } else +- bl = cl; +- +- comparison_src[x++] = (bl & 0xff00) >> 8; +- comparison_src[x++] = bl & 0xff; +- } while (x < 20); +- +- /* First four bytes are magic key. */ +- memcpy(&magic_key_char[0], comparison_src, 4); +- magic_4 = magic_key_char[0] | (magic_key_char[1] << 8) | +- (magic_key_char[2] << 16) | (magic_key_char[3] << 24); +- +- /* +- * Magic: Phase 4. Determine what function to use later by getting outside/inside +- * loop values until we match our previous buffer. +- */ +- for (x = 0; x < 65535; x++) { +- int leave = 0; +- +- for (y = 0; y < 5; y++) { +- unsigned char test[3]; ++static void yahoo_auth16_stage1_cb(YahooPurpleUtilFetchUrlData *unused, gpointer user_data, const gchar *ret_data, size_t len, const gchar *error_message) ++{ ++ struct yahoo_auth_data *auth_data = user_data; ++ PurpleConnection *gc = auth_data->gc; + +- /* Calculate buffer. */ +- test[0] = x; +- test[1] = x >> 8; +- test[2] = y; +- +- purple_cipher_context_reset(md5_ctx, NULL); +- purple_cipher_context_append(md5_ctx, magic_key_char, 4); +- purple_cipher_context_append(md5_ctx, test, 3); +- purple_cipher_context_digest(md5_ctx, sizeof(md5_digest), +- md5_digest, NULL); ++ purple_debug_info("yahoo","Authentication: In yahoo_auth16_stage1_cb\n"); + +- if (!memcmp(md5_digest, comparison_src+4, 16)) { +- leave = 1; +- break; ++ if (!PURPLE_CONNECTION_IS_VALID(gc)) { ++ g_free(auth_data->seed); ++ g_free(auth_data); ++ g_return_if_reached(); ++ } ++ ++ if (error_message != NULL) { ++ purple_debug_error("yahoo", "Login Failed, unable to retrieve login url: %s\n", error_message); ++ purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR, error_message); ++ g_free(auth_data->seed); ++ g_free(auth_data); ++ return; ++ } ++ else if (len > 0 && ret_data && *ret_data) { ++ gchar **split_data = g_strsplit(ret_data, "\r\n", -1); ++ int totalelements = g_strv_length(split_data); ++ int response_no = -1; ++ char *token = NULL; ++ ++ if(totalelements >= 5) { ++ response_no = strtol(split_data[1], NULL, 10); ++ token = g_strdup(split_data[2] + strlen("ymsgr=")); ++ } ++ ++ g_strfreev(split_data); ++ ++ if(response_no != 0) { ++ /* Some error in the login process */ ++ PurpleConnectionError error; ++ char *error_reason; ++ ++ switch(response_no) { ++ case -1: ++ /* Some error in the received stream */ ++ error_reason = g_strdup(_("Received invalid data")); ++ error = PURPLE_CONNECTION_ERROR_NETWORK_ERROR; ++ break; ++ case 1212: ++ /* Password incorrect */ ++ error_reason = g_strdup(_("Incorrect Password")); ++ error = PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED; ++ break; ++ case 1213: ++ /* security lock from too many failed login attempts */ ++ error_reason = g_strdup(_("Account locked: Too many failed login attempts.\nLogging into the Yahoo! website may fix this.")); ++ error = PURPLE_CONNECTION_ERROR_OTHER_ERROR; ++ break; ++ case 1235: ++ /* the username does not exist */ ++ error_reason = g_strdup(_("Username does not exist")); ++ error = PURPLE_CONNECTION_ERROR_INVALID_USERNAME; ++ break; ++ case 1214: ++ case 1236: ++ /* indicates a lock of some description */ ++ error_reason = g_strdup(_("Account locked: Unknown reason.\nLogging into the Yahoo! website may fix this.")); ++ error = PURPLE_CONNECTION_ERROR_OTHER_ERROR; ++ break; ++ case 100: ++ /* username or password missing */ ++ error_reason = g_strdup(_("Username or password missing")); ++ error = PURPLE_CONNECTION_ERROR_AUTHENTICATION_FAILED; ++ break; ++ default: ++ /* Unknown error! */ ++ error_reason = g_strdup(_("Unknown error")); ++ error = PURPLE_CONNECTION_ERROR_OTHER_ERROR; ++ break; + } ++ purple_debug_error("yahoo", "Authentication error: %s\n", ++ error_reason); ++ purple_connection_error_reason(gc, error, error_reason); ++ g_free(error_reason); ++ g_free(auth_data->seed); ++ g_free(auth_data); ++ } ++ else { ++ /* OK to login, correct information provided */ ++ YahooPurpleUtilFetchUrlData *url_data = NULL; ++ char *url = NULL; ++ gboolean yahoojp = purple_account_get_bool(purple_connection_get_account(gc), ++ "yahoojp", 0); ++ ++ url = g_strdup_printf(yahoojp ? YAHOOJP_LOGIN_URL : YAHOO_LOGIN_URL, token); ++ url_data = purple_util_fetch_url_request_len_with_account( ++ purple_connection_get_account(gc), url, TRUE, ++ YAHOO_CLIENT_USERAGENT, TRUE, NULL, FALSE, -1, ++ yahoo_auth16_stage2, auth_data); ++ g_free(url); ++ g_free(token); + } +- +- if (leave == 1) +- break; +- } +- +- /* If y != 0, we need some help. */ +- if (y != 0) { +- unsigned int updated_key; +- +- /* Update magic stuff. +- * Call it twice because Yahoo's encryption is super bad ass. +- */ +- updated_key = yahoo_auth_finalCountdown(magic_4, 0x60, y, x); +- updated_key = yahoo_auth_finalCountdown(updated_key, 0x60, y, x); +- +- magic_key_char[0] = updated_key & 0xff; +- magic_key_char[1] = (updated_key >> 8) & 0xff; +- magic_key_char[2] = (updated_key >> 16) & 0xff; +- magic_key_char[3] = (updated_key >> 24) & 0xff; + } ++} + +- enc_pass = yahoo_string_encode(gc, pass, NULL); +- +- /* Get password and crypt hashes as per usual. */ +- purple_cipher_context_reset(md5_ctx, NULL); +- purple_cipher_context_append(md5_ctx, (const guchar *)enc_pass, strlen(enc_pass)); +- purple_cipher_context_digest(md5_ctx, sizeof(md5_digest), +- md5_digest, NULL); +- to_y64(password_hash, md5_digest, 16); +- +- crypt_result = yahoo_crypt(enc_pass, "$1$_2S43d5f$"); +- +- g_free(enc_pass); +- enc_pass = NULL; +- +- purple_cipher_context_reset(md5_ctx, NULL); +- purple_cipher_context_append(md5_ctx, (const guchar *)crypt_result, strlen(crypt_result)); +- purple_cipher_context_digest(md5_ctx, sizeof(md5_digest), +- md5_digest, NULL); +- to_y64(crypt_hash, md5_digest, 16); +- +- /* Our first authentication response is based off of the password hash. */ +- for (x = 0; x < (int)strlen(password_hash); x++) +- pass_hash_xor1[cnt++] = password_hash[x] ^ 0x36; +- +- if (cnt < 64) +- memset(&(pass_hash_xor1[cnt]), 0x36, 64-cnt); +- +- cnt = 0; +- +- for (x = 0; x < (int)strlen(password_hash); x++) +- pass_hash_xor2[cnt++] = password_hash[x] ^ 0x5c; +- +- if (cnt < 64) +- memset(&(pass_hash_xor2[cnt]), 0x5c, 64-cnt); +- +- /* +- * The first context gets the password hash XORed with 0x36 plus a magic value +- * which we previously extrapolated from our challenge. +- */ +- +- purple_cipher_context_append(sha1_ctx1, pass_hash_xor1, 64); +- if (y >= 3) +- purple_cipher_context_set_option(sha1_ctx1, "sizeLo", GINT_TO_POINTER(0x1ff)); +- purple_cipher_context_append(sha1_ctx1, magic_key_char, 4); +- purple_cipher_context_digest(sha1_ctx1, sizeof(digest1), digest1, NULL); +- +- /* +- * The second context gets the password hash XORed with 0x5c plus the SHA-1 digest +- * of the first context. +- */ +- +- purple_cipher_context_append(sha1_ctx2, pass_hash_xor2, 64); +- purple_cipher_context_append(sha1_ctx2, digest1, 20); +- purple_cipher_context_digest(sha1_ctx2, sizeof(digest2), digest2, NULL); +- +- /* +- * Now that we have digest2, use it to fetch characters from an alphabet to construct +- * our first authentication response. +- */ +- +- for (x = 0; x < 20; x += 2) { +- unsigned int val = 0; +- unsigned int lookup = 0; +- +- char byte[6]; +- +- memset(&byte, 0, 6); +- +- /* First two bytes of digest stuffed together. */ +- +- val = digest2[x]; +- val <<= 8; +- val += digest2[x+1]; +- +- lookup = (val >> 0x0b); +- lookup &= 0x1f; +- if (lookup >= strlen(alphabet1)) +- break; +- sprintf(byte, "%c", alphabet1[lookup]); +- strcat(resp_6, byte); +- strcat(resp_6, "="); +- +- lookup = (val >> 0x06); +- lookup &= 0x1f; +- if (lookup >= strlen(alphabet2)) +- break; +- sprintf(byte, "%c", alphabet2[lookup]); +- strcat(resp_6, byte); +- +- lookup = (val >> 0x01); +- lookup &= 0x1f; +- if (lookup >= strlen(alphabet2)) +- break; +- sprintf(byte, "%c", alphabet2[lookup]); +- strcat(resp_6, byte); +- +- lookup = (val & 0x01); +- if (lookup >= strlen(delimit_lookup)) +- break; +- sprintf(byte, "%c", delimit_lookup[lookup]); +- strcat(resp_6, byte); +- } +- +- /* Our second authentication response is based off of the crypto hash. */ +- +- cnt = 0; +- memset(&digest1, 0, 20); +- memset(&digest2, 0, 20); +- +- for (x = 0; x < (int)strlen(crypt_hash); x++) +- crypt_hash_xor1[cnt++] = crypt_hash[x] ^ 0x36; +- +- if (cnt < 64) +- memset(&(crypt_hash_xor1[cnt]), 0x36, 64-cnt); +- +- cnt = 0; +- +- for (x = 0; x < (int)strlen(crypt_hash); x++) +- crypt_hash_xor2[cnt++] = crypt_hash[x] ^ 0x5c; +- +- if (cnt < 64) +- memset(&(crypt_hash_xor2[cnt]), 0x5c, 64-cnt); +- +- purple_cipher_context_reset(sha1_ctx1, NULL); +- purple_cipher_context_reset(sha1_ctx2, NULL); +- +- /* +- * The first context gets the password hash XORed with 0x36 plus a magic value +- * which we previously extrapolated from our challenge. +- */ +- +- purple_cipher_context_append(sha1_ctx1, crypt_hash_xor1, 64); +- if (y >= 3) { +- purple_cipher_context_set_option(sha1_ctx1, "sizeLo", +- GINT_TO_POINTER(0x1ff)); +- } +- purple_cipher_context_append(sha1_ctx1, magic_key_char, 4); +- purple_cipher_context_digest(sha1_ctx1, sizeof(digest1), digest1, NULL); +- +- /* +- * The second context gets the password hash XORed with 0x5c plus the SHA-1 digest +- * of the first context. +- */ +- +- purple_cipher_context_append(sha1_ctx2, crypt_hash_xor2, 64); +- purple_cipher_context_append(sha1_ctx2, digest1, 20); +- purple_cipher_context_digest(sha1_ctx2, sizeof(digest2), digest2, NULL); +- +- /* +- * Now that we have digest2, use it to fetch characters from an alphabet to construct +- * our first authentication response. +- */ +- +- for (x = 0; x < 20; x += 2) { +- unsigned int val = 0; +- unsigned int lookup = 0; +- +- char byte[6]; +- +- memset(&byte, 0, 6); +- +- /* First two bytes of digest stuffed together. */ +- +- val = digest2[x]; +- val <<= 8; +- val += digest2[x+1]; +- +- lookup = (val >> 0x0b); +- lookup &= 0x1f; +- if (lookup >= strlen(alphabet1)) +- break; +- sprintf(byte, "%c", alphabet1[lookup]); +- strcat(resp_96, byte); +- strcat(resp_96, "="); +- +- lookup = (val >> 0x06); +- lookup &= 0x1f; +- if (lookup >= strlen(alphabet2)) +- break; +- sprintf(byte, "%c", alphabet2[lookup]); +- strcat(resp_96, byte); +- +- lookup = (val >> 0x01); +- lookup &= 0x1f; +- if (lookup >= strlen(alphabet2)) +- break; +- sprintf(byte, "%c", alphabet2[lookup]); +- strcat(resp_96, byte); +- +- lookup = (val & 0x01); +- if (lookup >= strlen(delimit_lookup)) +- break; +- sprintf(byte, "%c", delimit_lookup[lookup]); +- strcat(resp_96, byte); +- } +- purple_debug_info("yahoo", "yahoo status: %d\n", yd->current_status); +- pack = yahoo_packet_new(YAHOO_SERVICE_AUTHRESP, yd->current_status, 0); +- +- if(yd->jp) { +- yahoo_packet_hash(pack, "sssss", +- 0, name, +- 6, resp_6, +- 96, resp_96, +- 1, name, +- 135, YAHOOJP_CLIENT_VERSION); +- } else { +- yahoo_packet_hash(pack, "ssssss", +- 0, name, +- 6, resp_6, +- 96, resp_96, +- 1, name, +- 244, YAHOO_CLIENT_VERSION_ID, +- 135, YAHOO_CLIENT_VERSION); ++static void yahoo_auth16_stage1(PurpleConnection *gc, const char *seed) ++{ ++ YahooPurpleUtilFetchUrlData *url_data = NULL; ++ struct yahoo_auth_data *auth_data = NULL; ++ char *url = NULL; ++ char *encoded_username; ++ char *encoded_password; ++ gboolean yahoojp; ++ ++ purple_debug_info("yahoo", "Authentication: In yahoo_auth16_stage1\n"); ++ ++ if(!purple_ssl_is_supported()) { ++ purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NO_SSL_SUPPORT, _("SSL support unavailable")); ++ return; + } + +- if (yd->picture_checksum) +- yahoo_packet_hash_int(pack, 192, yd->picture_checksum); +- +- yahoo_packet_send_and_free(pack, yd); +- +- purple_cipher_context_destroy(md5_ctx); +- purple_cipher_context_destroy(sha1_ctx1); +- purple_cipher_context_destroy(sha1_ctx2); ++ yahoojp = purple_account_get_bool(purple_connection_get_account(gc), ++ "yahoojp", 0); ++ auth_data = g_new0(struct yahoo_auth_data, 1); ++ auth_data->gc = gc; ++ auth_data->seed = g_strdup(seed); ++ ++ encoded_username = g_strdup(purple_url_encode(purple_account_get_username(purple_connection_get_account(gc)))); ++ encoded_password = g_strdup(purple_url_encode(purple_connection_get_password(gc))); ++ url = g_strdup_printf(yahoojp ? YAHOOJP_TOKEN_URL : YAHOO_TOKEN_URL, ++ encoded_username, encoded_password, purple_url_encode(seed)); ++ g_free(encoded_password); ++ g_free(encoded_username); ++ ++ url_data = purple_util_fetch_url_request_len_with_account( ++ purple_connection_get_account(gc), url, TRUE, ++ YAHOO_CLIENT_USERAGENT, TRUE, NULL, FALSE, -1, ++ yahoo_auth16_stage1_cb, auth_data); + +- g_free(password_hash); +- g_free(crypt_hash); ++ g_free(url); + } + + static void yahoo_process_auth(PurpleConnection *gc, struct yahoo_packet *pkt) +@@ -1987,11 +1682,10 @@ + if (seed) { + switch (m) { + case 0: +- yahoo_process_auth_old(gc, seed); +- break; ++ /* used to be for really old auth routine, dont support now */ + case 1: +- case 2: /* This case seems to work, could probably use testing */ +- yahoo_process_auth_new(gc, seed); ++ case 2: /* Yahoo ver 16 authentication */ ++ yahoo_auth16_stage1(gc, seed); + break; + default: + buf = g_strdup_printf(_("The Yahoo server has requested the use of an unrecognized " +@@ -2000,7 +1694,7 @@ + purple_notify_error(gc, "", _("Failed Yahoo! Authentication"), + buf); + g_free(buf); +- yahoo_process_auth_new(gc, seed); /* Can't hurt to try it anyway. */ ++ yahoo_auth16_stage1(gc, seed); /* Can't hurt to try it anyway. */ + } + } + } +@@ -2130,7 +1824,7 @@ + case 13: + #ifdef TRY_WEBMESSENGER_LOGIN + if (!yd->wm) { +- PurpleUtilFetchUrlData *url_data; ++ YahooPurpleUtilFetchUrlData *url_data; + yd->wm = TRUE; + if (yd->fd >= 0) + close(yd->fd); +@@ -2832,7 +2526,7 @@ + } + + static void +-yahoo_login_page_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, ++yahoo_login_page_cb(YahooPurpleUtilFetchUrlData *url_data, gpointer user_data, + const gchar *url_text, size_t len, const gchar *error_message) + { + PurpleConnection *gc = (PurpleConnection *)user_data; +@@ -3478,7 +3172,7 @@ + } + + static void +-yahoo_get_inbox_token_cb(PurpleUtilFetchUrlData *url_data, gpointer user_data, ++yahoo_get_inbox_token_cb(YahooPurpleUtilFetchUrlData *url_data, gpointer user_data, + const gchar *token, size_t len, const gchar *error_message) + { + PurpleConnection *gc = user_data; +@@ -3520,12 +3214,12 @@ + PurpleConnection *gc = action->context; + struct yahoo_data *yd = gc->proto_data; + +- PurpleUtilFetchUrlData *url_data; ++ YahooPurpleUtilFetchUrlData *url_data; + const char* base_url = "http://login.yahoo.com"; + char *request = g_strdup_printf( + "POST /config/cookie_token HTTP/1.0\r\n" + "Cookie: T=%s; path=/; domain=.yahoo.com; Y=%s;\r\n" +- "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5)\r\n" ++ "User-Agent: " YAHOO_CLIENT_USERAGENT "\r\n" + "Host: login.yahoo.com\r\n" + "Content-Length: 0\r\n\r\n", + yd->cookie_t, yd->cookie_y); +@@ -3535,8 +3229,9 @@ + if ((gc->account->proxy_info) && (gc->account->proxy_info->type == PURPLE_PROXY_HTTP)) + use_whole_url = TRUE; + +- url_data = purple_util_fetch_url_request(base_url, use_whole_url, +- "Mozilla/4.0 (compatible; MSIE 5.5)", TRUE, request, FALSE, ++ url_data = purple_util_fetch_url_request_len_with_account( ++ purple_connection_get_account(gc), base_url, use_whole_url, ++ YAHOO_CLIENT_USERAGENT, TRUE, request, FALSE, -1, + yahoo_get_inbox_token_cb, gc); + + g_free(request); +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/yahoo/yahoo_crypt.c pidgin-2.4.1.new/libpurple/protocols/yahoo/yahoo_crypt.c +--- pidgin-2.4.1/libpurple/protocols/yahoo/yahoo_crypt.c 2008-03-31 18:21:24.000000000 +0100 ++++ pidgin-2.4.1.new/libpurple/protocols/yahoo/yahoo_crypt.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,207 +0,0 @@ +-/* One way encryption based on MD5 sum. +- Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Ulrich Drepper , 1996. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, write to the Free +- Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +- 02111-1301 USA. */ +- +-/* warmenhoven took this file and made it work with the md5.[ch] we +- * already had. isn't that lovely. people should just use linux or +- * freebsd, crypt works properly on those systems. i hate solaris */ +- +-#include +-#include +-#include +- +-#include "cipher.h" +-#include "yahoo_crypt.h" +- +-/* Define our magic string to mark salt for MD5 "encryption" +- replacement. This is meant to be the same as for other MD5 based +- encryption implementations. */ +-static const char md5_salt_prefix[] = "$1$"; +- +-/* Table with characters for base64 transformation. */ +-static const char b64t[64] = +-"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; +- +-char *yahoo_crypt(const char *key, const char *salt) +-{ +- PurpleCipher *cipher; +- PurpleCipherContext *context1, *context2; +- guchar digest[16]; +- static char *buffer = NULL; +- static int buflen = 0; +- int needed = 3 + strlen (salt) + 1 + 26 + 1; +- +- size_t salt_len; +- size_t key_len; +- size_t cnt; +- +- char *cp; +- +- if (buflen < needed) { +- buflen = needed; +- if ((buffer = g_realloc(buffer, buflen)) == NULL) +- return NULL; +- } +- +- cipher = purple_ciphers_find_cipher("md5"); +- context1 = purple_cipher_context_new(cipher, NULL); +- context2 = purple_cipher_context_new(cipher, NULL); +- +- /* Find beginning of salt string. The prefix should normally always +- * be present. Just in case it is not. +- */ +- if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0) +- /* Skip salt prefix. */ +- salt += sizeof (md5_salt_prefix) - 1; +- +- salt_len = MIN (strcspn (salt, "$"), 8); +- key_len = strlen (key); +- +- /* Add the key string. */ +- purple_cipher_context_append(context1, (const guchar *)key, key_len); +- +- /* Because the SALT argument need not always have the salt prefix we +- * add it separately. +- */ +- purple_cipher_context_append(context1, (const guchar *)md5_salt_prefix, +- sizeof(md5_salt_prefix) - 1); +- +- /* The last part is the salt string. This must be at most 8 +- * characters and it ends at the first `$' character (for +- * compatibility which existing solutions). +- */ +- purple_cipher_context_append(context1, (const guchar *)salt, salt_len); +- +- /* Compute alternate MD5 sum with input KEY, SALT, and KEY. The +- * final result will be added to the first context. +- */ +- +- /* Add key. */ +- purple_cipher_context_append(context2, (const guchar *)key, key_len); +- +- /* Add salt. */ +- purple_cipher_context_append(context2, (const guchar *)salt, salt_len); +- +- /* Add key again. */ +- purple_cipher_context_append(context2, (const guchar *)key, key_len); +- +- /* Now get result of this (16 bytes) and add it to the other context. */ +- purple_cipher_context_digest(context2, sizeof(digest), digest, NULL); +- +- /* Add for any character in the key one byte of the alternate sum. */ +- for (cnt = key_len; cnt > 16; cnt -= 16) +- purple_cipher_context_append(context1, digest, 16); +- purple_cipher_context_append(context1, digest, cnt); +- +- /* For the following code we need a NUL byte. */ +- digest[0] = '\0'; +- +- /* The original implementation now does something weird: for every 1 +- * bit in the key the first 0 is added to the buffer, for every 0 +- * bit the first character of the key. This does not seem to be +- * what was intended but we have to follow this to be compatible. +- */ +- for (cnt = key_len; cnt > 0; cnt >>= 1) +- purple_cipher_context_append(context1, +- (cnt & 1) != 0 ? digest : (guchar *)key, 1); +- +- /* Create intermediate result. */ +- purple_cipher_context_digest(context1, sizeof(digest), digest, NULL); +- +- /* Now comes another weirdness. In fear of password crackers here +- * comes a quite long loop which just processes the output of the +- * previous round again. We cannot ignore this here. +- */ +- for (cnt = 0; cnt < 1000; ++cnt) { +- /* New context. */ +- purple_cipher_context_reset(context2, NULL); +- +- /* Add key or last result. */ +- if ((cnt & 1) != 0) +- purple_cipher_context_append(context2, (const guchar *)key, key_len); +- else +- purple_cipher_context_append(context2, digest, 16); +- +- /* Add salt for numbers not divisible by 3. */ +- if (cnt % 3 != 0) +- purple_cipher_context_append(context2, (const guchar *)salt, salt_len); +- +- /* Add key for numbers not divisible by 7. */ +- if (cnt % 7 != 0) +- purple_cipher_context_append(context2, (const guchar *)key, key_len); +- +- /* Add key or last result. */ +- if ((cnt & 1) != 0) +- purple_cipher_context_append(context2, digest, 16); +- else +- purple_cipher_context_append(context2, (const guchar *)key, key_len); +- +- /* Create intermediate result. */ +- purple_cipher_context_digest(context2, sizeof(digest), digest, NULL); +- } +- +- /* Now we can construct the result string. It consists of three parts. */ +- strncpy(buffer, md5_salt_prefix, MAX (0, buflen)); +- cp = buffer + strlen(buffer); +- buflen -= sizeof (md5_salt_prefix); +- +- strncpy(cp, salt, MIN ((size_t) buflen, salt_len)); +- cp = cp + strlen(cp); +- buflen -= MIN ((size_t) buflen, salt_len); +- +- if (buflen > 0) { +- *cp++ = '$'; +- --buflen; +- } +- +-#define b64_from_24bit(B2, B1, B0, N) \ +- do { \ +- unsigned int w = ((B2) << 16) | ((B1) << 8) | (B0); \ +- int n = (N); \ +- while (n-- > 0 && buflen > 0) { \ +- *cp++ = b64t[w & 0x3f]; \ +- --buflen; \ +- w >>= 6; \ +- }\ +- } while (0) +- +- b64_from_24bit (digest[0], digest[6], digest[12], 4); +- b64_from_24bit (digest[1], digest[7], digest[13], 4); +- b64_from_24bit (digest[2], digest[8], digest[14], 4); +- b64_from_24bit (digest[3], digest[9], digest[15], 4); +- b64_from_24bit (digest[4], digest[10], digest[5], 4); +- b64_from_24bit (0, 0, digest[11], 2); +- if (buflen <= 0) { +- g_free(buffer); +- buffer = NULL; +- } else +- *cp = '\0'; /* Terminate the string. */ +- +- /* Clear the buffer for the intermediate result so that people +- * attaching to processes or reading core dumps cannot get any +- * information. We do it in this way to clear correct_words[] +- * inside the MD5 implementation as well. +- */ +- purple_cipher_context_reset(context1, NULL); +- purple_cipher_context_digest(context1, sizeof(digest), digest, NULL); +- purple_cipher_context_destroy(context1); +- purple_cipher_context_destroy(context2); +- +- return buffer; +-} +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/yahoo/yahoo_crypt.h pidgin-2.4.1.new/libpurple/protocols/yahoo/yahoo_crypt.h +--- pidgin-2.4.1/libpurple/protocols/yahoo/yahoo_crypt.h 2008-03-31 18:21:24.000000000 +0100 ++++ pidgin-2.4.1.new/libpurple/protocols/yahoo/yahoo_crypt.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,27 +0,0 @@ +-/* +- * purple +- * +- * Purple is the legal property of its developers, whose names are too numerous +- * to list here. Please refer to the COPYRIGHT file distributed with this +- * source distribution. +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA +- */ +-#ifndef _YAHOO_CRYPT_H_ +-#define _YAHOO_CRYPT_H_ +- +-char *yahoo_crypt(const char *key, const char *salt); +- +-#endif /* _YAHOO_CRYPT_H */ +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/yahoo/yahoo_doodle.c pidgin-2.4.1.new/libpurple/protocols/yahoo/yahoo_doodle.c +--- pidgin-2.4.1/libpurple/protocols/yahoo/yahoo_doodle.c 2008-03-31 18:21:24.000000000 +0100 ++++ pidgin-2.4.1.new/libpurple/protocols/yahoo/yahoo_doodle.c 2009-10-30 14:58:14.112721348 +0000 +@@ -46,7 +46,6 @@ + #include "yahoo_friend.h" + #include "yahoochat.h" + #include "ycht.h" +-#include "yahoo_auth.h" + #include "yahoo_filexfer.h" + #include "yahoo_picture.h" + +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/yahoo/yahoo.h pidgin-2.4.1.new/libpurple/protocols/yahoo/yahoo.h +--- pidgin-2.4.1/libpurple/protocols/yahoo/yahoo.h 2008-03-31 18:21:24.000000000 +0100 ++++ pidgin-2.4.1.new/libpurple/protocols/yahoo/yahoo.h 2009-10-30 14:58:14.112721348 +0000 +@@ -28,8 +28,10 @@ + #include "circbuffer.h" + #include "prpl.h" + +-#define YAHOO_PAGER_HOST "scs.msg.yahoo.com" ++#define YAHOO_PAGER_HOST "scsa.msg.yahoo.com" + #define YAHOO_PAGER_PORT 5050 ++#define YAHOO_LOGIN_URL "https://login.yahoo.com/config/pwtoken_login?src=ymsgr&ts=&token=%s" ++#define YAHOO_TOKEN_URL "https://login.yahoo.com/config/pwtoken_get?src=ymsgr&ts=&login=%s&passwd=%s&chal=%s" + #define YAHOO_PROFILE_URL "http://profiles.yahoo.com/" + #define YAHOO_MAIL_URL "https://login.yahoo.com/config/login?.src=ym" + #define YAHOO_XFER_HOST "filetransfer.msg.yahoo.com" +@@ -41,6 +43,8 @@ + /* really we should get the list of servers from + http://update.messenger.yahoo.co.jp/servers.html */ + #define YAHOOJP_PAGER_HOST "cs.yahoo.co.jp" ++#define YAHOOJP_TOKEN_URL "https://login.yahoo.co.jp/config/pwtoken_get?src=ymsgr&ts=&login=%s&passwd=%s&chal=%s" ++#define YAHOOJP_LOGIN_URL "https://login.yahoo.co.jp/config/pwtoken_login?src=ymsgr&ts=&token=%s" + #define YAHOOJP_PROFILE_URL "http://profiles.yahoo.co.jp/" + #define YAHOOJP_MAIL_URL "http://mail.yahoo.co.jp/" + #define YAHOOJP_XFER_HOST "filetransfer.msg.yahoo.co.jp" +@@ -74,9 +78,13 @@ + #define YAHOO_STATUS_TYPE_INVISIBLE "invisible" + #define YAHOO_STATUS_TYPE_MOBILE "mobile" + +-#define YAHOO_CLIENT_VERSION_ID "2097087" +-#define YAHOO_CLIENT_VERSION "8.1.0.421" +-#define YAHOOJP_CLIENT_VERSION "6,0,0,1710" ++#define YAHOO_CLIENT_VERSION_ID "4194239" ++#define YAHOO_CLIENT_VERSION "9.0.0.2152" ++#define YAHOOJP_CLIENT_VERSION_ID "4194239" ++#define YAHOOJP_CLIENT_VERSION "9.0.0.2152" ++ ++ ++#define YAHOO_CLIENT_USERAGENT "Mozilla/4.0 (compatible; MSIE 5.5)" + + #if 0 + /* The following were observed with the Yahoo Japan client current as of January +@@ -250,4 +258,13 @@ + gboolean yahoo_send_attention(PurpleConnection *gc, const char *username, guint type); + GList *yahoo_attention_types(PurpleAccount *account); + ++/* This is a hack for 2.5.7 to get the y16 login to work properly with http proxies */ ++typedef struct _YahooPurpleUtilFetchUrlData YahooPurpleUtilFetchUrlData; ++ ++typedef void (*YahooPurpleUtilFetchUrlCallback)(YahooPurpleUtilFetchUrlData *url_data, gpointer user_data, const gchar *url_text, gsize len, const gchar *error_message); ++ ++YahooPurpleUtilFetchUrlData * purple_util_fetch_url_request_len_with_account(PurpleAccount *account, ++ const char *url, gboolean full, const char *user_agent, gboolean http11, ++ const char *request, gboolean include_headers, gssize max_len, ++ YahooPurpleUtilFetchUrlCallback callback, void *user_data); + #endif /* _YAHOO_H_ */ +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/yahoo/yahoo_packet.h pidgin-2.4.1.new/libpurple/protocols/yahoo/yahoo_packet.h +--- pidgin-2.4.1/libpurple/protocols/yahoo/yahoo_packet.h 2008-03-31 18:21:24.000000000 +0100 ++++ pidgin-2.4.1.new/libpurple/protocols/yahoo/yahoo_packet.h 2009-10-30 14:58:14.112721348 +0000 +@@ -102,6 +102,7 @@ + YAHOO_SERVICE_CHGRP_15 = 0xe7, + YAHOO_SERVICE_STATUS_15 = 0xf0, + YAHOO_SERVICE_LIST_15 = 0xf1, ++ YAHOO_SERVICE_MESSAGE_ACK = 0xfb, + YAHOO_SERVICE_FILETRANS_15 = 0xdc, + YAHOO_SERVICE_FILETRANS_INFO_15 = 0xdd, + YAHOO_SERVICE_FILETRANS_ACC_15 = 0xde, +@@ -122,8 +123,8 @@ + }; + + #define YAHOO_WEBMESSENGER_PROTO_VER 0x0065 +-#define YAHOO_PROTO_VER 0x000f +-#define YAHOO_PROTO_VER_JAPAN 0x000c ++#define YAHOO_PROTO_VER 0x0010 ++#define YAHOO_PROTO_VER_JAPAN 0x0010 + + #define YAHOO_PACKET_HDRLEN (4 + 2 + 2 + 2 + 2 + 4 + 4) + --- pidgin-2.4.1.orig/debian/patches/82_security_CVE-2009-1375.patch +++ pidgin-2.4.1/debian/patches/82_security_CVE-2009-1375.patch @@ -0,0 +1,17 @@ +# +# Description: denial of service in PurpleCircBuffer object expansion +# Patch: http://developer.pidgin.im/viewmtn/revision/info/7829ec76bdb008583f8da54e238c2265a1140db2 +# +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/circbuffer.c pidgin-2.4.1.new/libpurple/circbuffer.c +--- pidgin-2.4.1/libpurple/circbuffer.c 2008-03-31 19:21:23.000000000 +0200 ++++ pidgin-2.4.1.new/libpurple/circbuffer.c 2009-05-25 17:24:08.000000000 +0200 +@@ -68,7 +68,8 @@ + + /* If the fill pointer is wrapped to before the remove + * pointer, we need to shift the data */ +- if (in_offset < out_offset) { ++ if (in_offset < out_offset ++ || (in_offset == out_offset && buf->bufused > 0)) { + int shift_n = MIN(buf->buflen - start_buflen, + in_offset); + memcpy(buf->buffer + start_buflen, buf->buffer, --- pidgin-2.4.1.orig/debian/patches/71_SECURITY_CVE-2008-2927.patch +++ pidgin-2.4.1/debian/patches/71_SECURITY_CVE-2008-2927.patch @@ -0,0 +1,53 @@ +# +# Fix for code execution via integer overflow in the MSN protocol handler +# Ubuntu: https://bugs.launchpad.net/bugs/245770 +# Patch: http://patch-tracking.debian.net/patch/series/view/gaim/1:2.0.0+beta5-10etch1/20_CVE-2008-2927.patch +# Pathc: http://developer.pidgin.im/viewmtn/revision/info/c3831c9181f4f61b747321240086ee79e4a08fd8 +# +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/internal.h pidgin-2.4.1.new/libpurple/internal.h +--- pidgin-2.4.1/libpurple/internal.h 2008-03-31 13:21:23.000000000 -0400 ++++ pidgin-2.4.1.new/libpurple/internal.h 2008-11-20 20:01:38.000000000 -0500 +@@ -140,6 +140,14 @@ + # define G_MAXUINT32 ((guint32) 0xffffffff) + #endif + ++#ifndef G_MAXSIZE ++# if GLIB_SIZEOF_LONG == 8 ++# define G_MAXSIZE ((gsize) 0xffffffffffffffff) ++# else ++# define G_MAXSIZE ((gsize) 0xffffffff) ++# endif ++#endif ++ + #if GLIB_CHECK_VERSION(2,6,0) + # include + #endif +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/msn/slplink.c pidgin-2.4.1.new/libpurple/protocols/msn/slplink.c +--- pidgin-2.4.1/libpurple/protocols/msn/slplink.c 2008-03-31 13:21:24.000000000 -0400 ++++ pidgin-2.4.1.new/libpurple/protocols/msn/slplink.c 2008-11-20 20:02:37.000000000 -0500 +@@ -596,9 +596,11 @@ + } + else if (slpmsg->size) + { +- if ((offset + len) > slpmsg->size) ++ if (G_MAXSIZE - len < offset || (offset + len) > slpmsg->size) + { +- purple_debug_error("msn", "Oversized slpmsg - msgsize=%lld offset=%d len=%d\n", slpmsg->size, offset, len); ++ purple_debug_error("msn", "Oversized slpmsg - msgsize=%lld " ++ "offset=" G_GSIZE_FORMAT " len=" G_GSIZE_FORMAT "\n", ++ slpmsg->size, offset, len); + g_return_if_reached(); + } + else +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.1/libpurple/protocols/msnp9/slplink.c pidgin-2.4.1.new/libpurple/protocols/msnp9/slplink.c +--- pidgin-2.4.1/libpurple/protocols/msnp9/slplink.c 2008-03-31 13:21:24.000000000 -0400 ++++ pidgin-2.4.1.new/libpurple/protocols/msnp9/slplink.c 2008-11-20 20:03:54.000000000 -0500 +@@ -595,7 +595,7 @@ + } + else if (slpmsg->size) + { +- if ((offset + len) > slpmsg->size) ++ if (G_MAXSIZE - len < offset || (offset + len) > slpmsg->size) + { + purple_debug_error("msn", "Oversized slpmsg\n"); + g_return_if_reached(); --- pidgin-2.4.1.orig/debian/patches/04_let_crasher_for_apport.patch +++ pidgin-2.4.1/debian/patches/04_let_crasher_for_apport.patch @@ -0,0 +1,10 @@ +--- pidgin-2.3.1/pidgin/gtkmain.c 2007-12-07 14:37:11.000000000 +0000 ++++ pidgin-2.3.1/pidgin/gtkmain.c.new 2007-12-21 03:14:32.000000000 +0000 +@@ -93,7 +93,6 @@ + * Each list terminated with -1 + */ + static const int catch_sig_list[] = { +- SIGSEGV, + SIGHUP, + SIGINT, + SIGTERM, --- pidgin-2.4.1.orig/debian/patches/30_fix_icq_clientinfo.patch +++ pidgin-2.4.1/debian/patches/30_fix_icq_clientinfo.patch @@ -0,0 +1,32 @@ +diff -Nur -x '*.orig' -x '*~' pidgin-2.4.2/libpurple/protocols/oscar/oscar.h pidgin-2.4.2.new/libpurple/protocols/oscar/oscar.h +--- pidgin-2.4.2/libpurple/protocols/oscar/oscar.h 2008-05-12 20:07:44.000000000 +0100 ++++ pidgin-2.4.2.new/libpurple/protocols/oscar/oscar.h 2008-07-02 02:10:39.000000000 +0100 +@@ -258,6 +258,15 @@ + "us", "en", \ + } + ++#define CLIENTINFO_ICQ6_6_0_6059 { \ ++ "ICQ Client", \ ++ 0x010a, \ ++ 0x0006, 0x0000, \ ++ 0x0000, 0x17ab, \ ++ 0x00007535, \ ++ "us", "en", \ ++} ++ + #define CLIENTINFO_ICQBASIC_14_3_1068 { \ + "ICQBasic", \ + 0x010a, \ +@@ -302,9 +311,9 @@ + #define CLIENTINFO_PURPLE_ICQ { \ + "Purple/" VERSION, \ + 0x010a, \ +- 0x0014, 0x0034, \ +- 0x0000, 0x0bb8, \ +- 0x0000043d, \ ++ 0x0006, 0x0000, \ ++ 0x0000, 0x17ab, \ ++ 0x00007535, \ + "us", "en", \ + } +