From ea7d19804edd818f640a9aa5298dece33b808471 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 26 Jan 2013 14:16:01 +0200 Subject: [PATCH 01/86] tvheadend: update to tvheadend-3.3.403. bump addon version --- packages/addons/service/multimedia/tvheadend/changelog.txt | 4 ++-- packages/addons/service/multimedia/tvheadend/meta | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/addons/service/multimedia/tvheadend/changelog.txt b/packages/addons/service/multimedia/tvheadend/changelog.txt index 636af1b6db..f3b59c4772 100644 --- a/packages/addons/service/multimedia/tvheadend/changelog.txt +++ b/packages/addons/service/multimedia/tvheadend/changelog.txt @@ -1,9 +1,9 @@ 3.0.4 -- update to TVHeadend 3.3.402 +- update to TVHeadend 3.3.403 3.0.3 - update to TVHeadend 3.3.328 -- add an option to preload capmt_ca.so library +- add an option to preload capmt_ca.so library 3.0.2 - update to TVHeadend 3.2.18 diff --git a/packages/addons/service/multimedia/tvheadend/meta b/packages/addons/service/multimedia/tvheadend/meta index 8e668c4c0f..5502c6f7af 100644 --- a/packages/addons/service/multimedia/tvheadend/meta +++ b/packages/addons/service/multimedia/tvheadend/meta @@ -19,8 +19,8 @@ ################################################################################ PKG_NAME="tvheadend" -PKG_VERSION="3.3.402" -PKG_REV="3" +PKG_VERSION="3.3.403" +PKG_REV="4" PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://www.lonelycoder.com/hts/tvheadend_overview.html" From 5fad8bb95fa30f37307fa33843832d365c086041 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 26 Jan 2013 15:36:27 +0200 Subject: [PATCH 02/86] transmission: add options to enable / disable LPD & DHT --- .../transmission/source/bin/transmission.start | 12 ++++++++++++ .../source/resources/language/English/strings.xml | 4 +++- .../transmission/source/resources/settings.xml | 2 ++ .../transmission/source/settings-default.xml | 2 ++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/packages/addons/service/downloadmanager/transmission/source/bin/transmission.start b/packages/addons/service/downloadmanager/transmission/source/bin/transmission.start index 455fbf7a5e..aa9972e29d 100755 --- a/packages/addons/service/downloadmanager/transmission/source/bin/transmission.start +++ b/packages/addons/service/downloadmanager/transmission/source/bin/transmission.start @@ -81,6 +81,18 @@ else TRANSMISSION_ARG="$TRANSMISSION_ARG --no-utp" fi +if [ "$TRANSMISSION_LPD" = "true" ]; then + TRANSMISSION_ARG="$TRANSMISSION_ARG --lpd" +else + TRANSMISSION_ARG="$TRANSMISSION_ARG --no-lpd" +fi + +if [ "$TRANSMISSION_LPD" = "true" ]; then + TRANSMISSION_ARG="$TRANSMISSION_ARG --dht" +else + TRANSMISSION_ARG="$TRANSMISSION_ARG --no-dht" +fi + if [ ! "$(pidof transmission-daemon)" ];then if [ -f "$LOCKDIR/$LOCKFILE" ] ; then rm -rf "$LOCKDIR/$LOCKFILE" diff --git a/packages/addons/service/downloadmanager/transmission/source/resources/language/English/strings.xml b/packages/addons/service/downloadmanager/transmission/source/resources/language/English/strings.xml index d5ff333d26..f95f3bfd40 100644 --- a/packages/addons/service/downloadmanager/transmission/source/resources/language/English/strings.xml +++ b/packages/addons/service/downloadmanager/transmission/source/resources/language/English/strings.xml @@ -16,6 +16,8 @@ Other Download Directory - Enable uTP support + Enable uTP for peer connections + Enable local peer discovery (LPD) + Enable distributed hash tables (DHT) diff --git a/packages/addons/service/downloadmanager/transmission/source/resources/settings.xml b/packages/addons/service/downloadmanager/transmission/source/resources/settings.xml index 9caf209ad7..ff158ca3e9 100644 --- a/packages/addons/service/downloadmanager/transmission/source/resources/settings.xml +++ b/packages/addons/service/downloadmanager/transmission/source/resources/settings.xml @@ -22,5 +22,7 @@ + + diff --git a/packages/addons/service/downloadmanager/transmission/source/settings-default.xml b/packages/addons/service/downloadmanager/transmission/source/settings-default.xml index c3de30f8e6..56dfa7b9ac 100644 --- a/packages/addons/service/downloadmanager/transmission/source/settings-default.xml +++ b/packages/addons/service/downloadmanager/transmission/source/settings-default.xml @@ -7,4 +7,6 @@ + + From 4d6a95c553191274896a8f763086100d2993b3b9 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 26 Jan 2013 16:00:13 +0200 Subject: [PATCH 03/86] Revert "transmission: add options to enable / disable LPD & DHT" This reverts commit 5fad8bb95fa30f37307fa33843832d365c086041. --- .../transmission/source/bin/transmission.start | 12 ------------ .../source/resources/language/English/strings.xml | 4 +--- .../transmission/source/resources/settings.xml | 2 -- .../transmission/source/settings-default.xml | 2 -- 4 files changed, 1 insertion(+), 19 deletions(-) diff --git a/packages/addons/service/downloadmanager/transmission/source/bin/transmission.start b/packages/addons/service/downloadmanager/transmission/source/bin/transmission.start index aa9972e29d..455fbf7a5e 100755 --- a/packages/addons/service/downloadmanager/transmission/source/bin/transmission.start +++ b/packages/addons/service/downloadmanager/transmission/source/bin/transmission.start @@ -81,18 +81,6 @@ else TRANSMISSION_ARG="$TRANSMISSION_ARG --no-utp" fi -if [ "$TRANSMISSION_LPD" = "true" ]; then - TRANSMISSION_ARG="$TRANSMISSION_ARG --lpd" -else - TRANSMISSION_ARG="$TRANSMISSION_ARG --no-lpd" -fi - -if [ "$TRANSMISSION_LPD" = "true" ]; then - TRANSMISSION_ARG="$TRANSMISSION_ARG --dht" -else - TRANSMISSION_ARG="$TRANSMISSION_ARG --no-dht" -fi - if [ ! "$(pidof transmission-daemon)" ];then if [ -f "$LOCKDIR/$LOCKFILE" ] ; then rm -rf "$LOCKDIR/$LOCKFILE" diff --git a/packages/addons/service/downloadmanager/transmission/source/resources/language/English/strings.xml b/packages/addons/service/downloadmanager/transmission/source/resources/language/English/strings.xml index f95f3bfd40..d5ff333d26 100644 --- a/packages/addons/service/downloadmanager/transmission/source/resources/language/English/strings.xml +++ b/packages/addons/service/downloadmanager/transmission/source/resources/language/English/strings.xml @@ -16,8 +16,6 @@ Other Download Directory - Enable uTP for peer connections - Enable local peer discovery (LPD) - Enable distributed hash tables (DHT) + Enable uTP support diff --git a/packages/addons/service/downloadmanager/transmission/source/resources/settings.xml b/packages/addons/service/downloadmanager/transmission/source/resources/settings.xml index ff158ca3e9..9caf209ad7 100644 --- a/packages/addons/service/downloadmanager/transmission/source/resources/settings.xml +++ b/packages/addons/service/downloadmanager/transmission/source/resources/settings.xml @@ -22,7 +22,5 @@ - - diff --git a/packages/addons/service/downloadmanager/transmission/source/settings-default.xml b/packages/addons/service/downloadmanager/transmission/source/settings-default.xml index 56dfa7b9ac..c3de30f8e6 100644 --- a/packages/addons/service/downloadmanager/transmission/source/settings-default.xml +++ b/packages/addons/service/downloadmanager/transmission/source/settings-default.xml @@ -7,6 +7,4 @@ - - From 2a80b33c0db188737810ffe1d02ef7a43211f536 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 26 Jan 2013 17:19:15 +0200 Subject: [PATCH 04/86] busybox: add sysctl.conf.sample --- packages/sysutils/busybox/config/sysctl.conf.sample | 3 +++ packages/sysutils/busybox/install | 12 +++--------- 2 files changed, 6 insertions(+), 9 deletions(-) create mode 100644 packages/sysutils/busybox/config/sysctl.conf.sample diff --git a/packages/sysutils/busybox/config/sysctl.conf.sample b/packages/sysutils/busybox/config/sysctl.conf.sample new file mode 100644 index 0000000000..37270a79d4 --- /dev/null +++ b/packages/sysutils/busybox/config/sysctl.conf.sample @@ -0,0 +1,3 @@ +## transmission with uTP support +# net.core.wmem_max=1048576 +# net.core.rmem_max=4194304 diff --git a/packages/sysutils/busybox/install b/packages/sysutils/busybox/install index 64b61ca2e2..49449deec0 100755 --- a/packages/sysutils/busybox/install +++ b/packages/sysutils/busybox/install @@ -50,6 +50,9 @@ USER_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw -m sha512 $USER_PASSWORD`" cp $PKG_DIR/config/httpd.conf $INSTALL/etc echo "chmod 000 $INSTALL/etc/shadow" >> $FAKEROOT_SCRIPT + mkdir -p $INSTALL/usr/config + cp $PKG_DIR/config/sysctl.conf.sample $INSTALL/usr/config + # /etc/fstab is needed by... touch $INSTALL/etc/fstab @@ -68,12 +71,3 @@ USER_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw -m sha512 $USER_PASSWORD`" mkdir -p $INSTALL/usr/www/error echo "404" > $INSTALL/usr/www/error/404.html - - # cron support - if [ "$CRON_SUPPORT" = "yes" ] ; then - mkdir -p $INSTALL/etc/init.d - cp $PKG_DIR/scripts/09_crond $INSTALL/etc/init.d/ - else - rm -f $INSTALL/sbin/crond - rm -f $INSTALL/bin/crontab - fi From db9196f8fd486d48bb5b7f4a9ed2d985c54a7d5e Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 26 Jan 2013 17:20:24 +0200 Subject: [PATCH 05/86] Revert "transmission: net.core.{r,w}mem.max *workaround for uTP" This reverts commit 2cf0e0be30ebd6f6e73f1fb78adc897f1cb3ecd4. --- .../transmission/source/bin/transmission.start | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/addons/service/downloadmanager/transmission/source/bin/transmission.start b/packages/addons/service/downloadmanager/transmission/source/bin/transmission.start index 455fbf7a5e..d024063421 100755 --- a/packages/addons/service/downloadmanager/transmission/source/bin/transmission.start +++ b/packages/addons/service/downloadmanager/transmission/source/bin/transmission.start @@ -89,11 +89,6 @@ if [ ! "$(pidof transmission-daemon)" ];then if [ -f "$LOCKDIR/$LOCKFILE" ] ; then break fi - # XXX: sysctls for uTP. we may remove this later - if [ "$TRANSMISSION_UTP" = "true" ]; then - sysctl -w net.core.wmem_max=1048576 > /dev/null 2>&1 - sysctl -w net.core.rmem_max=4194304 > /dev/null 2>&1 - fi EVENT_NOEPOLL=1 LD_LIBRARY_PATH="$ADDON_DIR/lib:$LD_LIBRARY_PATH" eval transmission-daemon -f $TRANSMISSION_ARG &>$LOG_FILE sleep 1 done & From 3a0a58f003e65c8e6130459abf0d8db17cedc208 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 26 Jan 2013 17:20:25 +0200 Subject: [PATCH 06/86] Revert "transmission: uTP is now disabled by default. add option to enable it." This reverts commit 0b3c1a4e6730b9884a1682cd503ca270dc0d02df. --- .../transmission/source/bin/transmission.start | 6 ------ .../source/resources/language/English/strings.xml | 1 - .../transmission/source/resources/settings.xml | 1 - .../transmission/source/settings-default.xml | 1 - 4 files changed, 9 deletions(-) diff --git a/packages/addons/service/downloadmanager/transmission/source/bin/transmission.start b/packages/addons/service/downloadmanager/transmission/source/bin/transmission.start index d024063421..295d5173fc 100755 --- a/packages/addons/service/downloadmanager/transmission/source/bin/transmission.start +++ b/packages/addons/service/downloadmanager/transmission/source/bin/transmission.start @@ -75,12 +75,6 @@ else TRANSMISSION_ARG="$TRANSMISSION_ARG -T" fi -if [ "$TRANSMISSION_UTP" = "true" ]; then - TRANSMISSION_ARG="$TRANSMISSION_ARG --utp" -else - TRANSMISSION_ARG="$TRANSMISSION_ARG --no-utp" -fi - if [ ! "$(pidof transmission-daemon)" ];then if [ -f "$LOCKDIR/$LOCKFILE" ] ; then rm -rf "$LOCKDIR/$LOCKFILE" diff --git a/packages/addons/service/downloadmanager/transmission/source/resources/language/English/strings.xml b/packages/addons/service/downloadmanager/transmission/source/resources/language/English/strings.xml index d5ff333d26..8f0dd87c49 100644 --- a/packages/addons/service/downloadmanager/transmission/source/resources/language/English/strings.xml +++ b/packages/addons/service/downloadmanager/transmission/source/resources/language/English/strings.xml @@ -16,6 +16,5 @@ Other Download Directory - Enable uTP support diff --git a/packages/addons/service/downloadmanager/transmission/source/resources/settings.xml b/packages/addons/service/downloadmanager/transmission/source/resources/settings.xml index 9caf209ad7..4149778c6f 100644 --- a/packages/addons/service/downloadmanager/transmission/source/resources/settings.xml +++ b/packages/addons/service/downloadmanager/transmission/source/resources/settings.xml @@ -21,6 +21,5 @@ - diff --git a/packages/addons/service/downloadmanager/transmission/source/settings-default.xml b/packages/addons/service/downloadmanager/transmission/source/settings-default.xml index c3de30f8e6..ab23f3521f 100644 --- a/packages/addons/service/downloadmanager/transmission/source/settings-default.xml +++ b/packages/addons/service/downloadmanager/transmission/source/settings-default.xml @@ -6,5 +6,4 @@ - From 30c4121a0c90aa0e52d6ad49d9042d4fd474d1c8 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 26 Jan 2013 17:24:27 +0200 Subject: [PATCH 07/86] busybox: oops, accidently removed cron support in 2a80b33c0. sry --- packages/sysutils/busybox/install | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/sysutils/busybox/install b/packages/sysutils/busybox/install index 49449deec0..c7c8cc4769 100755 --- a/packages/sysutils/busybox/install +++ b/packages/sysutils/busybox/install @@ -71,3 +71,12 @@ USER_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw -m sha512 $USER_PASSWORD`" mkdir -p $INSTALL/usr/www/error echo "404" > $INSTALL/usr/www/error/404.html + + # cron support + if [ "$CRON_SUPPORT" = "yes" ] ; then + mkdir -p $INSTALL/etc/init.d + cp $PKG_DIR/scripts/09_crond $INSTALL/etc/init.d/ + else + rm -f $INSTALL/sbin/crond + rm -f $INSTALL/bin/crontab + fi From aece06480248ceed0ecefe8ce23c95128bbf8918 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 26 Jan 2013 19:21:49 +0200 Subject: [PATCH 08/86] busybox: rework cron support --- packages/sysutils/busybox/build | 5 +++++ packages/sysutils/busybox/install | 3 --- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/sysutils/busybox/build b/packages/sysutils/busybox/build index 358a683c87..fe45f90c3c 100755 --- a/packages/sysutils/busybox/build +++ b/packages/sysutils/busybox/build @@ -39,6 +39,11 @@ cd $BUILD/busybox* # Build Busybox for system make distclean cp $BUSYBOX_CFG_FILE .config + if [ ! "$CRON_SUPPORT" = "yes" ] ; then + sed -i -e "s|^CONFIG_CROND=.*$|# CONFIG_CROND is not set|" .config + sed -i -e "s|^CONFIG_FEATURE_CROND_D=.*$|# CONFIG_FEATURE_CROND_D is not set|" .config + sed -i -e "s|^CONFIG_CRONTAB=.*$|# CONFIG_CRONTAB is not set|" .config + fi make oldconfig make ARCH=$TARGET_ARCH \ diff --git a/packages/sysutils/busybox/install b/packages/sysutils/busybox/install index c7c8cc4769..3cd5b33e0f 100755 --- a/packages/sysutils/busybox/install +++ b/packages/sysutils/busybox/install @@ -76,7 +76,4 @@ USER_PWD="`$ROOT/$TOOLCHAIN/bin/cryptpw -m sha512 $USER_PASSWORD`" if [ "$CRON_SUPPORT" = "yes" ] ; then mkdir -p $INSTALL/etc/init.d cp $PKG_DIR/scripts/09_crond $INSTALL/etc/init.d/ - else - rm -f $INSTALL/sbin/crond - rm -f $INSTALL/bin/crontab fi From 7564d70e96ca09b1de7eaa8af0b7df0b2f0f258b Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 26 Jan 2013 20:04:07 +0200 Subject: [PATCH 09/86] eventlircd: fix -custom_config.patch broken in 201120e --- .../patches/eventlircd-42-002-custom_config.patch | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/sysutils/remote/eventlircd/patches/eventlircd-42-002-custom_config.patch b/packages/sysutils/remote/eventlircd/patches/eventlircd-42-002-custom_config.patch index ad1b4fa78d..9412adce48 100644 --- a/packages/sysutils/remote/eventlircd/patches/eventlircd-42-002-custom_config.patch +++ b/packages/sysutils/remote/eventlircd/patches/eventlircd-42-002-custom_config.patch @@ -1,14 +1,12 @@ diff --git a/udev/lircd_helper.in b/udev/lircd_helper.in -index f580cc6..6befeed 100644 +index f580cc6..d4d7f3f 100644 --- a/udev/lircd_helper.in +++ b/udev/lircd_helper.in @@ -41,7 +41,11 @@ case "${ACTION}" in daemon="${daemon} --uinput" -- daemon="${daemon} --output=@localstatedir@/run/lirc/lircd-${devname_instance}" -- daemon="${daemon} --pidfile=@localstatedir@/run/lirc/lircd-${devname_instance}.pid" + daemon="${daemon} --output=@localstatedir@/run/lirc/lircd-${devname_instance}" + daemon="${daemon} --pidfile=@localstatedir@/run/lirc/lircd-${devname_instance}.pid" - daemon="${daemon} ${lircd_conf}" -+ daemon="${daemon} --output=@localstatedir@/run/lirc/lircd" -+ daemon="${daemon} --pidfile=@localstatedir@/run/lirc/lircd-${devname_instance}.pid" + if test -e "/storage/.config/lircd.conf" ; then + daemon="${daemon} /storage/.config/lircd.conf" + else From a5ee6b23cbafeff2313de69de0fa442a673bd579 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 26 Jan 2013 20:17:17 +0200 Subject: [PATCH 10/86] tbs-linux-drivers: don't build ir-lirc-codec --- packages/linux-drivers/linux-tbs-drivers/build | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/linux-drivers/linux-tbs-drivers/build b/packages/linux-drivers/linux-tbs-drivers/build index af3aabce0e..779aa1a1a7 100755 --- a/packages/linux-drivers/linux-tbs-drivers/build +++ b/packages/linux-drivers/linux-tbs-drivers/build @@ -27,4 +27,6 @@ cd $BUILD/${PKG_NAME}-${PKG_VERSION}/linux-tbs-drivers [ "$TARGET_ARCH" = "i386" ] && ./v4l/tbs-x86_r3.sh [ "$TARGET_ARCH" = "x86_64" ] && ./v4l/tbs-x86_64.sh +LDFLAGS="" make DIR=$(kernel_path) prepare +sed -i -e "s|^CONFIG_IR_LIRC_CODEC=.*$|# CONFIG_IR_LIRC_CODEC is not set|" v4l/.config LDFLAGS="" make DIR=$(kernel_path) From 3f5ab0b9ef19f8c2e405a8364bca7abe6d9a6d3c Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 26 Jan 2013 23:04:26 +0100 Subject: [PATCH 11/86] lirc: update xbox config file to support uinput Signed-off-by: Stephan Raue --- .../remote/lirc/config/lircd.conf.xbox | 94 +++++++++++-------- 1 file changed, 57 insertions(+), 37 deletions(-) diff --git a/packages/sysutils/remote/lirc/config/lircd.conf.xbox b/packages/sysutils/remote/lirc/config/lircd.conf.xbox index d7cd33e9ee..764eec06d8 100644 --- a/packages/sysutils/remote/lirc/config/lircd.conf.xbox +++ b/packages/sysutils/remote/lirc/config/lircd.conf.xbox @@ -1,43 +1,63 @@ + +# Please make this file available to others +# by sending it to +# +# this config file was automatically generated +# using lirc-0.9.1-git(default) on Sat Jan 26 21:54:39 2013 +# +# contributed by +# +# brand: xbox.conf +# model no. of remote control: +# devices being controlled by this remote: +# + begin remote - name XboxDVDDongle - bits 8 - eps 30 - aeps 100 + name xbox.conf + bits 8 + eps 30 + aeps 100 - one 0 0 - zero 0 0 - gap 163983 - toggle_bit_mask 0x0 + one 0 0 + zero 0 0 + gap 63985 + min_repeat 13 +# suppress_repeat 13 +# uncomment to suppress unwanted repeats +# toggle_bit_mask 0x72 + toggle_bit_mask 0xE1 - begin codes - LEFT 0xA9 - UP 0xA6 - RIGHT 0xA8 - DOWN 0xA7 - SELECT 0x0B - 1 0xCE - 2 0xCD - 3 0xCC - 4 0xCB - 5 0xCA - 6 0xC9 - 7 0xC8 - 8 0xC7 - 9 0xC6 - 0 0xCF - MENU 0xF7 - DISPLAY 0xD5 - REVERSE 0xE2 - FORWARD 0xE3 - PLAY 0xEA - PAUSE 0xE6 - STOP 0xE0 - SKIP- 0xDD - SKIP+ 0xDF - TITLE 0xE5 - INFO 0xC3 - BACK 0xD8 - end codes + begin codes + KEY_OK 0xEA + KEY_STOP 0xE0 + KEY_PAUSE 0xE6 + KEY_NEXT 0xDF + KEY_PREVIOUS 0xDD + KEY_FASTFORWARD 0xE3 + KEY_REWIND 0xE2 + KEY_PROG1 0xD5 + KEY_TITLE 0xE5 + KEY_INFO 0xC3 + KEY_OK 0x0B + KEY_UP 0xA6 + KEY_DOWN 0xA7 + KEY_LEFT 0xA9 + KEY_RIGHT 0xA8 + KEY_MENU 0xF7 + KEY_BACK 0xD8 + KEY_0 0xCF + KEY_1 0xCE + KEY_2 0xCD + KEY_3 0xCC + KEY_4 0xCB + KEY_5 0xCA + KEY_6 0xC9 + KEY_7 0xC8 + KEY_8 0xC7 + KEY_9 0xC6 + end codes end remote + + From bf65f62be8e094a4f76b9aa011583ddaa459fefc Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 26 Jan 2013 23:04:49 +0100 Subject: [PATCH 12/86] eventlircd: simplyfing lirc udev rule Signed-off-by: Stephan Raue --- .../remote/eventlircd/udev.d/98-lircd.rules | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/packages/sysutils/remote/eventlircd/udev.d/98-lircd.rules b/packages/sysutils/remote/eventlircd/udev.d/98-lircd.rules index 99dbd09c30..4ab905ddcf 100644 --- a/packages/sysutils/remote/eventlircd/udev.d/98-lircd.rules +++ b/packages/sysutils/remote/eventlircd/udev.d/98-lircd.rules @@ -20,6 +20,11 @@ SUBSYSTEM=="lirc", \ ENV{lircd_driver}="default", \ ENV{lircd_conf}="/etc/lirc/lircd.conf" +### Microsoft Xbox DVD dongle +SUBSYSTEM=="lirc", DRIVERS=="lirc_xbox", \ + ENV{lircd_driver}="default", \ + ENV{lircd_conf}="/etc/lirc/lircd.conf.xbox" + #------------------------------------------------------------------------------- # Ask lircd_helper to handle USB devices that do not show up as lirc devices # and are supported by lircd. Remote controls that are USB HID devices that show @@ -36,21 +41,6 @@ ENV{ID_VENDOR_ID}=="0fe9", ENV{ID_MODEL_ID}=="9010", \ ENV{lircd_driver}="dvico", \ ENV{lircd_conf}="/etc/lirc/lircd.conf" -### Microsoft Xbox DVD dongle -ENV{ID_VENDOR_ID}=="045e", ENV{ID_MODEL_ID}=="0284", \ - ENV{lircd_driver}="default", \ - ENV{lircd_conf}="/etc/lirc/lircd.conf.xbox" - -### Gamester Xbox DVD dongle -ENV{ID_VENDOR_ID}=="040b", ENV{ID_MODEL_ID}=="6521", \ - ENV{lircd_driver}="default", \ - ENV{lircd_conf}="/etc/lirc/lircd.conf.xbox" - -### Chinese Manufacturers Xbox DVD dongle -ENV{ID_VENDOR_ID}=="ffff", ENV{ID_MODEL_ID}=="ffff", \ - ENV{lircd_driver}="default", \ - ENV{lircd_conf}="/etc/lirc/lircd.conf.xbox" - # Enable wake-on-usb for the USB remotes. ENV{lircd_driver}=="?*", ENV{lircd_conf}=="?*", RUN+="wakeup_enable" From d626253cfc1959774c70f1996ac0f00d11f0ef01 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 26 Jan 2013 23:05:29 +0100 Subject: [PATCH 13/86] e2fsprogs: update to e2fsprogs-1.42.7 Signed-off-by: Stephan Raue --- packages/sysutils/e2fsprogs/meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/e2fsprogs/meta b/packages/sysutils/e2fsprogs/meta index b06f50b064..9cf95274f8 100644 --- a/packages/sysutils/e2fsprogs/meta +++ b/packages/sysutils/e2fsprogs/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="e2fsprogs" -PKG_VERSION="1.42.6" +PKG_VERSION="1.42.7" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" From 99917e437e78942e838623399d2e22e337ff53df Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 26 Jan 2013 23:05:46 +0100 Subject: [PATCH 14/86] ntfs-3g_ntfsprogs: update to ntfs-3g_ntfsprogs-2013.1.13 Signed-off-by: Stephan Raue --- packages/sysutils/ntfs-3g_ntfsprogs/meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sysutils/ntfs-3g_ntfsprogs/meta b/packages/sysutils/ntfs-3g_ntfsprogs/meta index a4d3e5deda..cff28748f6 100644 --- a/packages/sysutils/ntfs-3g_ntfsprogs/meta +++ b/packages/sysutils/ntfs-3g_ntfsprogs/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="ntfs-3g_ntfsprogs" -PKG_VERSION="2012.1.15" +PKG_VERSION="2013.1.13" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" From 3765e1ac070c24abea9f8d454e2c8c9b728a214c Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 27 Jan 2013 02:43:47 +0100 Subject: [PATCH 15/86] systemd: add keymap support Signed-off-by: Stephan Raue --- packages/sysutils/systemd/build | 2 +- packages/sysutils/systemd/install | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/sysutils/systemd/build b/packages/sysutils/systemd/build index eff6154fb6..27cf50fb45 100755 --- a/packages/sysutils/systemd/build +++ b/packages/sysutils/systemd/build @@ -74,7 +74,7 @@ ac_cv_func_malloc_0_nonnull=yes \ --disable-localed \ --disable-coredump \ --enable-gudev \ - --disable-keymap \ + --enable-keymap \ --disable-manpages \ --enable-split-usr \ --with-firmware-path="/storage/.config/firmware:/lib/firmware" \ diff --git a/packages/sysutils/systemd/install b/packages/sysutils/systemd/install index 636c100056..e22f81781f 100755 --- a/packages/sysutils/systemd/install +++ b/packages/sysutils/systemd/install @@ -54,10 +54,20 @@ mkdir -p $INSTALL/lib/systemd done cp $PKG_BUILD/mtd_probe $INSTALL/lib/udev + cp $PKG_BUILD/.libs/keymap $INSTALL/lib/udev + cp $PKG_BUILD/src/udev/keymap/findkeyboards $INSTALL/lib/udev + cp $PKG_BUILD/src/udev/keymap/keyboard-force-release.sh $INSTALL/lib/udev +mkdir -p $INSTALL/lib/udev/keymaps + cp $PKG_BUILD/keymaps/* $INSTALL/lib/udev/keymaps +mkdir -p $INSTALL/lib/udev/keymaps/force-release + cp $PKG_BUILD/keymaps-force-release/* $INSTALL/lib/udev/keymaps/force-release + mkdir -p $INSTALL/lib/udev/rules.d cp $PKG_BUILD/rules/*.rules $INSTALL/lib/udev/rules.d rm -rf $INSTALL/lib/udev/rules.d/80-net-name-slot.rules rm -rf $INSTALL/lib/udev/rules.d/99-systemd.rules + cp $PKG_BUILD/src/udev/keymap/*.rules $INSTALL/lib/udev/rules.d + mkdir -p $INSTALL/lib/udev/hwdb.d cp $PKG_BUILD/hwdb/*.hwdb $INSTALL/lib/udev/hwdb.d From f811ca5244384a47c2c2dbc97ab2a0b330262cba Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 27 Jan 2013 16:54:06 +0100 Subject: [PATCH 16/86] xkbcomp: update configure settings Signed-off-by: Stephan Raue --- packages/x11/app/xkbcomp/build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/x11/app/xkbcomp/build b/packages/x11/app/xkbcomp/build index b2bf921a6f..a6bde88fc4 100755 --- a/packages/x11/app/xkbcomp/build +++ b/packages/x11/app/xkbcomp/build @@ -24,10 +24,10 @@ cd $PKG_BUILD -ac_cv_file___xkbparse_c=yes \ ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=/usr \ --sysconfdir=/etc \ + --with-xkb-config-root=$XORG_PATH_XKB \ make From 1774a0a71150d4d9c35e2a89c199a336e3fb3558 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 27 Jan 2013 16:54:45 +0100 Subject: [PATCH 17/86] xkeyboard-config: update configure settings Signed-off-by: Stephan Raue --- packages/x11/data/xkeyboard-config/build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/x11/data/xkeyboard-config/build b/packages/x11/data/xkeyboard-config/build index 17b863f79b..de68801b9d 100755 --- a/packages/x11/data/xkeyboard-config/build +++ b/packages/x11/data/xkeyboard-config/build @@ -34,10 +34,11 @@ XKBCOMP="/usr/bin/xkbcomp" \ --sysconfdir=/etc \ --without-xsltproc \ --enable-compat-rules \ + --enable-runtime-deps \ --enable-nls \ --disable-rpath \ --with-xkb-base=$XORG_PATH_XKB \ - --without-xkb-rules-symlink \ + --with-xkb-rules-symlink=xorg \ --with-gnu-ld \ make From 9b9b98b1a3dec7445e9823f80ce40f49f88502b7 Mon Sep 17 00:00:00 2001 From: Detlev Rackow Date: Mon, 28 Jan 2013 23:18:49 +0200 Subject: [PATCH 18/86] systemd: write to RTC in utc. to keep in line with connman --- packages/sysutils/systemd/udev.d/80-clock.rules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/sysutils/systemd/udev.d/80-clock.rules b/packages/sysutils/systemd/udev.d/80-clock.rules index 18aa7a2c63..6906498f93 100644 --- a/packages/sysutils/systemd/udev.d/80-clock.rules +++ b/packages/sysutils/systemd/udev.d/80-clock.rules @@ -1,2 +1,2 @@ -ACTION=="add", SUBSYSTEM=="rtc", RUN+="/sbin/hwclock --hctosys --rtc=/dev/%k" -ACTION=="add", MAJOR==10, MINOR==135, RUN+="/sbin/hwclock --hctosys --rtc=/dev/%k" +ACTION=="add", SUBSYSTEM=="rtc", RUN+="/sbin/hwclock --hctosys --utc --rtc=/dev/%k" +ACTION=="add", MAJOR==10, MINOR==135, RUN+="/sbin/hwclock --hctosys --utc --rtc=/dev/%k" From 5d1977062a0cdd88806fa95fd81e8ff42e8f1011 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Mon, 28 Jan 2013 23:54:37 +0200 Subject: [PATCH 19/86] libX11: fix non-working keyboard layouts (again) this is a partial solution. requires invocation of setxkbmap when a keyboard is added / replugged. a propper fix is to move xkb setup to udev. I will do that later when our new settings addon is ready. closes #108 #823 #1661 #1741 #1743 --- packages/x11/lib/libX11/build | 1 - packages/x11/lib/libX11/install | 6 ++++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/x11/lib/libX11/build b/packages/x11/lib/libX11/build index d5d6b22443..2a58cbfe35 100755 --- a/packages/x11/lib/libX11/build +++ b/packages/x11/lib/libX11/build @@ -42,7 +42,6 @@ cd $PKG_BUILD --disable-xcms \ --enable-xlocale \ --enable-xkb \ - --disable-xlocaledir \ --disable-xf86bigfont \ --enable-malloc0returnsnull \ --disable-specs \ diff --git a/packages/x11/lib/libX11/install b/packages/x11/lib/libX11/install index ecf4cacea2..7ee76b37a2 100755 --- a/packages/x11/lib/libX11/install +++ b/packages/x11/lib/libX11/install @@ -25,3 +25,9 @@ mkdir -p $INSTALL/usr/lib cp -P $PKG_BUILD/src/.libs/libX11*.so* $INSTALL/usr/lib rm -rf $INSTALL/usr/lib/libX11*.so*T + +mkdir -p $INSTALL/usr/share/X11 + cp -R $SYSROOT_PREFIX/usr/share/X11/locale $INSTALL/usr/share/X11 + +mkdir -p $INSTALL/usr/lib/X11 + cp -R $SYSROOT_PREFIX/usr/lib/X11/locale $INSTALL/usr/lib/X11 From 88b437dc03448bd2a51c820cb6dab21973b29a3b Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 29 Jan 2013 02:42:55 +0100 Subject: [PATCH 20/86] libX11: mostly cosmetics, we dont do install from $SYSROOT_PREFIX :-) Signed-off-by: Stephan Raue --- packages/x11/lib/libX11/build | 4 +++- packages/x11/lib/libX11/install | 9 +++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/x11/lib/libX11/build b/packages/x11/lib/libX11/build index 2a58cbfe35..a31fde42f2 100755 --- a/packages/x11/lib/libX11/build +++ b/packages/x11/lib/libX11/build @@ -28,7 +28,6 @@ export CFLAGS_FOR_BUILD="$HOST_CFLAGS" export LDFLAGS_FOR_BUILD="$HOST_LDFLAGS" cd $PKG_BUILD - ./configure --host=$TARGET_NAME \ --build=$HOST_NAME \ --prefix=/usr \ @@ -41,6 +40,7 @@ cd $PKG_BUILD --enable-xthreads \ --disable-xcms \ --enable-xlocale \ + --disable-xlocaledir \ --enable-xkb \ --disable-xf86bigfont \ --enable-malloc0returnsnull \ @@ -54,5 +54,7 @@ cd $PKG_BUILD --without-lint make +make -C nls DESTDIR=`pwd`/.install install $MAKEINSTALL + diff --git a/packages/x11/lib/libX11/install b/packages/x11/lib/libX11/install index 7ee76b37a2..fb944d100e 100755 --- a/packages/x11/lib/libX11/install +++ b/packages/x11/lib/libX11/install @@ -26,8 +26,9 @@ mkdir -p $INSTALL/usr/lib cp -P $PKG_BUILD/src/.libs/libX11*.so* $INSTALL/usr/lib rm -rf $INSTALL/usr/lib/libX11*.so*T -mkdir -p $INSTALL/usr/share/X11 - cp -R $SYSROOT_PREFIX/usr/share/X11/locale $INSTALL/usr/share/X11 +mkdir -p $INSTALL + cp -R $PKG_BUILD/.install/* $INSTALL -mkdir -p $INSTALL/usr/lib/X11 - cp -R $SYSROOT_PREFIX/usr/lib/X11/locale $INSTALL/usr/lib/X11 +mkdir -p $INSTALL/usr/lib/X11/locale/common + cp -R $PKG_BUILD/modules/*/*/.libs/*.so* $INSTALL/usr/lib/X11/locale/common + rm -rf $INSTALL/usr/lib/X11/locale/common/*.so.*T \ No newline at end of file From 3f47dd5ec2618a0ca7e2054e5d07e1ad44beae03 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 29 Jan 2013 02:43:41 +0100 Subject: [PATCH 21/86] linux: update to linux-3.7.5 Signed-off-by: Stephan Raue --- packages/linux/meta | 2 +- .../linux-203-stb0899_enable_low_symbol_rate.patch | 0 ...linux-206.01-media-ene-ir-Fix-cleanup-on-probe-failure.patch | 0 ...2-media-rc-Make-probe-cleanup-goto-labels-more-verbose.patch | 0 .../linux-206.03-media-rc-Set-rdev-before-irq-setup.patch | 0 ...6.04-media-rc-Call-rc_register_device-before-irq-setup.patch | 0 packages/linux/patches/{3.7.4 => 3.7.5}/linux-210-dvbsky.patch | 0 .../{3.7.4 => 3.7.5}/linux-212-mantis_stb0899_faster_lock.patch | 0 .../patches/{3.7.4 => 3.7.5}/linux-213-cinergy_s2_usb_r2.patch | 0 .../linux-214-rtl28xxu_add_NOXON_USB_dongle_rev.2.patch | 0 .../linux-215-rtl28xxu_ASUS_My_Cinema-U3100Mini_Plus_V2.patch | 0 .../linux-216-rtl28xxu_add_Gigabyte_U7300_DVB-T_Dongle.patch | 0 .../patches/{3.7.4 => 3.7.5}/linux-221-ngene-octopus.patch | 0 .../{3.7.4 => 3.7.5}/linux-222-stb0899_signal_quality.patch | 0 .../patches/{3.7.4 => 3.7.5}/linux-700-jmicron_1_0_8_5.patch | 0 .../linux-950-saa716x_PCIe_interface_chipset.patch | 0 16 files changed, 1 insertion(+), 1 deletion(-) rename packages/linux/patches/{3.7.4 => 3.7.5}/linux-203-stb0899_enable_low_symbol_rate.patch (100%) rename packages/linux/patches/{3.7.4 => 3.7.5}/linux-206.01-media-ene-ir-Fix-cleanup-on-probe-failure.patch (100%) rename packages/linux/patches/{3.7.4 => 3.7.5}/linux-206.02-media-rc-Make-probe-cleanup-goto-labels-more-verbose.patch (100%) rename packages/linux/patches/{3.7.4 => 3.7.5}/linux-206.03-media-rc-Set-rdev-before-irq-setup.patch (100%) rename packages/linux/patches/{3.7.4 => 3.7.5}/linux-206.04-media-rc-Call-rc_register_device-before-irq-setup.patch (100%) rename packages/linux/patches/{3.7.4 => 3.7.5}/linux-210-dvbsky.patch (100%) rename packages/linux/patches/{3.7.4 => 3.7.5}/linux-212-mantis_stb0899_faster_lock.patch (100%) rename packages/linux/patches/{3.7.4 => 3.7.5}/linux-213-cinergy_s2_usb_r2.patch (100%) rename packages/linux/patches/{3.7.4 => 3.7.5}/linux-214-rtl28xxu_add_NOXON_USB_dongle_rev.2.patch (100%) rename packages/linux/patches/{3.7.4 => 3.7.5}/linux-215-rtl28xxu_ASUS_My_Cinema-U3100Mini_Plus_V2.patch (100%) rename packages/linux/patches/{3.7.4 => 3.7.5}/linux-216-rtl28xxu_add_Gigabyte_U7300_DVB-T_Dongle.patch (100%) rename packages/linux/patches/{3.7.4 => 3.7.5}/linux-221-ngene-octopus.patch (100%) rename packages/linux/patches/{3.7.4 => 3.7.5}/linux-222-stb0899_signal_quality.patch (100%) rename packages/linux/patches/{3.7.4 => 3.7.5}/linux-700-jmicron_1_0_8_5.patch (100%) rename packages/linux/patches/{3.7.4 => 3.7.5}/linux-950-saa716x_PCIe_interface_chipset.patch (100%) diff --git a/packages/linux/meta b/packages/linux/meta index bacaf9008f..dbe114288e 100644 --- a/packages/linux/meta +++ b/packages/linux/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="linux" -PKG_VERSION="3.7.4" +PKG_VERSION="3.7.5" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/linux/patches/3.7.4/linux-203-stb0899_enable_low_symbol_rate.patch b/packages/linux/patches/3.7.5/linux-203-stb0899_enable_low_symbol_rate.patch similarity index 100% rename from packages/linux/patches/3.7.4/linux-203-stb0899_enable_low_symbol_rate.patch rename to packages/linux/patches/3.7.5/linux-203-stb0899_enable_low_symbol_rate.patch diff --git a/packages/linux/patches/3.7.4/linux-206.01-media-ene-ir-Fix-cleanup-on-probe-failure.patch b/packages/linux/patches/3.7.5/linux-206.01-media-ene-ir-Fix-cleanup-on-probe-failure.patch similarity index 100% rename from packages/linux/patches/3.7.4/linux-206.01-media-ene-ir-Fix-cleanup-on-probe-failure.patch rename to packages/linux/patches/3.7.5/linux-206.01-media-ene-ir-Fix-cleanup-on-probe-failure.patch diff --git a/packages/linux/patches/3.7.4/linux-206.02-media-rc-Make-probe-cleanup-goto-labels-more-verbose.patch b/packages/linux/patches/3.7.5/linux-206.02-media-rc-Make-probe-cleanup-goto-labels-more-verbose.patch similarity index 100% rename from packages/linux/patches/3.7.4/linux-206.02-media-rc-Make-probe-cleanup-goto-labels-more-verbose.patch rename to packages/linux/patches/3.7.5/linux-206.02-media-rc-Make-probe-cleanup-goto-labels-more-verbose.patch diff --git a/packages/linux/patches/3.7.4/linux-206.03-media-rc-Set-rdev-before-irq-setup.patch b/packages/linux/patches/3.7.5/linux-206.03-media-rc-Set-rdev-before-irq-setup.patch similarity index 100% rename from packages/linux/patches/3.7.4/linux-206.03-media-rc-Set-rdev-before-irq-setup.patch rename to packages/linux/patches/3.7.5/linux-206.03-media-rc-Set-rdev-before-irq-setup.patch diff --git a/packages/linux/patches/3.7.4/linux-206.04-media-rc-Call-rc_register_device-before-irq-setup.patch b/packages/linux/patches/3.7.5/linux-206.04-media-rc-Call-rc_register_device-before-irq-setup.patch similarity index 100% rename from packages/linux/patches/3.7.4/linux-206.04-media-rc-Call-rc_register_device-before-irq-setup.patch rename to packages/linux/patches/3.7.5/linux-206.04-media-rc-Call-rc_register_device-before-irq-setup.patch diff --git a/packages/linux/patches/3.7.4/linux-210-dvbsky.patch b/packages/linux/patches/3.7.5/linux-210-dvbsky.patch similarity index 100% rename from packages/linux/patches/3.7.4/linux-210-dvbsky.patch rename to packages/linux/patches/3.7.5/linux-210-dvbsky.patch diff --git a/packages/linux/patches/3.7.4/linux-212-mantis_stb0899_faster_lock.patch b/packages/linux/patches/3.7.5/linux-212-mantis_stb0899_faster_lock.patch similarity index 100% rename from packages/linux/patches/3.7.4/linux-212-mantis_stb0899_faster_lock.patch rename to packages/linux/patches/3.7.5/linux-212-mantis_stb0899_faster_lock.patch diff --git a/packages/linux/patches/3.7.4/linux-213-cinergy_s2_usb_r2.patch b/packages/linux/patches/3.7.5/linux-213-cinergy_s2_usb_r2.patch similarity index 100% rename from packages/linux/patches/3.7.4/linux-213-cinergy_s2_usb_r2.patch rename to packages/linux/patches/3.7.5/linux-213-cinergy_s2_usb_r2.patch diff --git a/packages/linux/patches/3.7.4/linux-214-rtl28xxu_add_NOXON_USB_dongle_rev.2.patch b/packages/linux/patches/3.7.5/linux-214-rtl28xxu_add_NOXON_USB_dongle_rev.2.patch similarity index 100% rename from packages/linux/patches/3.7.4/linux-214-rtl28xxu_add_NOXON_USB_dongle_rev.2.patch rename to packages/linux/patches/3.7.5/linux-214-rtl28xxu_add_NOXON_USB_dongle_rev.2.patch diff --git a/packages/linux/patches/3.7.4/linux-215-rtl28xxu_ASUS_My_Cinema-U3100Mini_Plus_V2.patch b/packages/linux/patches/3.7.5/linux-215-rtl28xxu_ASUS_My_Cinema-U3100Mini_Plus_V2.patch similarity index 100% rename from packages/linux/patches/3.7.4/linux-215-rtl28xxu_ASUS_My_Cinema-U3100Mini_Plus_V2.patch rename to packages/linux/patches/3.7.5/linux-215-rtl28xxu_ASUS_My_Cinema-U3100Mini_Plus_V2.patch diff --git a/packages/linux/patches/3.7.4/linux-216-rtl28xxu_add_Gigabyte_U7300_DVB-T_Dongle.patch b/packages/linux/patches/3.7.5/linux-216-rtl28xxu_add_Gigabyte_U7300_DVB-T_Dongle.patch similarity index 100% rename from packages/linux/patches/3.7.4/linux-216-rtl28xxu_add_Gigabyte_U7300_DVB-T_Dongle.patch rename to packages/linux/patches/3.7.5/linux-216-rtl28xxu_add_Gigabyte_U7300_DVB-T_Dongle.patch diff --git a/packages/linux/patches/3.7.4/linux-221-ngene-octopus.patch b/packages/linux/patches/3.7.5/linux-221-ngene-octopus.patch similarity index 100% rename from packages/linux/patches/3.7.4/linux-221-ngene-octopus.patch rename to packages/linux/patches/3.7.5/linux-221-ngene-octopus.patch diff --git a/packages/linux/patches/3.7.4/linux-222-stb0899_signal_quality.patch b/packages/linux/patches/3.7.5/linux-222-stb0899_signal_quality.patch similarity index 100% rename from packages/linux/patches/3.7.4/linux-222-stb0899_signal_quality.patch rename to packages/linux/patches/3.7.5/linux-222-stb0899_signal_quality.patch diff --git a/packages/linux/patches/3.7.4/linux-700-jmicron_1_0_8_5.patch b/packages/linux/patches/3.7.5/linux-700-jmicron_1_0_8_5.patch similarity index 100% rename from packages/linux/patches/3.7.4/linux-700-jmicron_1_0_8_5.patch rename to packages/linux/patches/3.7.5/linux-700-jmicron_1_0_8_5.patch diff --git a/packages/linux/patches/3.7.4/linux-950-saa716x_PCIe_interface_chipset.patch b/packages/linux/patches/3.7.5/linux-950-saa716x_PCIe_interface_chipset.patch similarity index 100% rename from packages/linux/patches/3.7.4/linux-950-saa716x_PCIe_interface_chipset.patch rename to packages/linux/patches/3.7.5/linux-950-saa716x_PCIe_interface_chipset.patch From 4c2c481e28ebc8fd2a3e1eb79a58f7a269f5f92e Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 29 Jan 2013 02:48:56 +0100 Subject: [PATCH 22/86] projects/*/linux: disable SMB2 and CIFS FSCACHE support Signed-off-by: Stephan Raue --- projects/ARCTIC_MC/linux/linux.x86_64.conf | 6 +++--- projects/ATV/linux/linux.i386.conf | 4 ++-- projects/Fusion/linux/linux.i386.conf | 4 ++-- projects/Fusion/linux/linux.x86_64.conf | 4 ++-- projects/Generic/linux/linux.i386.conf | 4 ++-- projects/Generic_OSS/linux/linux.i386.conf | 4 ++-- projects/ION/linux/linux.i386.conf | 4 ++-- projects/ION/linux/linux.x86_64.conf | 4 ++-- projects/Intel/linux/linux.i386.conf | 4 ++-- projects/Intel/linux/linux.x86_64.conf | 4 ++-- projects/RPi/linux/linux.arm.conf | 2 +- projects/Ultra/linux/linux.x86_64.conf | 4 ++-- projects/Virtual/linux/linux.i386.conf | 4 ++-- projects/Virtual/linux/linux.x86_64.conf | 4 ++-- 14 files changed, 28 insertions(+), 28 deletions(-) diff --git a/projects/ARCTIC_MC/linux/linux.x86_64.conf b/projects/ARCTIC_MC/linux/linux.x86_64.conf index fcdfc11bcf..5622d097bb 100644 --- a/projects/ARCTIC_MC/linux/linux.x86_64.conf +++ b/projects/ARCTIC_MC/linux/linux.x86_64.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86_64 3.7.3 Kernel Configuration +# Linux/x86_64 3.7.5 Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -2974,8 +2974,8 @@ CONFIG_CIFS_STATS2=y # CONFIG_CIFS_XATTR is not set # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -CONFIG_CIFS_SMB2=y -CONFIG_CIFS_FSCACHE=y +# CONFIG_CIFS_SMB2 is not set +# CONFIG_CIFS_FSCACHE is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set diff --git a/projects/ATV/linux/linux.i386.conf b/projects/ATV/linux/linux.i386.conf index f81580cc2f..5301805838 100644 --- a/projects/ATV/linux/linux.i386.conf +++ b/projects/ATV/linux/linux.i386.conf @@ -2902,8 +2902,8 @@ CONFIG_CIFS_STATS2=y # CONFIG_CIFS_XATTR is not set # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -CONFIG_CIFS_SMB2=y -CONFIG_CIFS_FSCACHE=y +# CONFIG_CIFS_SMB2 is not set +# CONFIG_CIFS_FSCACHE is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set diff --git a/projects/Fusion/linux/linux.i386.conf b/projects/Fusion/linux/linux.i386.conf index 483448a23e..2f3692e776 100644 --- a/projects/Fusion/linux/linux.i386.conf +++ b/projects/Fusion/linux/linux.i386.conf @@ -3250,8 +3250,8 @@ CONFIG_CIFS_STATS2=y # CONFIG_CIFS_XATTR is not set # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -CONFIG_CIFS_SMB2=y -CONFIG_CIFS_FSCACHE=y +# CONFIG_CIFS_SMB2 is not set +# CONFIG_CIFS_FSCACHE is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set diff --git a/projects/Fusion/linux/linux.x86_64.conf b/projects/Fusion/linux/linux.x86_64.conf index f5cbbd9068..4e972e3c08 100644 --- a/projects/Fusion/linux/linux.x86_64.conf +++ b/projects/Fusion/linux/linux.x86_64.conf @@ -3194,8 +3194,8 @@ CONFIG_CIFS_STATS2=y # CONFIG_CIFS_XATTR is not set # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -CONFIG_CIFS_SMB2=y -CONFIG_CIFS_FSCACHE=y +# CONFIG_CIFS_SMB2 is not set +# CONFIG_CIFS_FSCACHE is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set diff --git a/projects/Generic/linux/linux.i386.conf b/projects/Generic/linux/linux.i386.conf index 4dae35128d..4479df2f7d 100644 --- a/projects/Generic/linux/linux.i386.conf +++ b/projects/Generic/linux/linux.i386.conf @@ -3434,8 +3434,8 @@ CONFIG_CIFS_STATS2=y # CONFIG_CIFS_XATTR is not set # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -CONFIG_CIFS_SMB2=y -CONFIG_CIFS_FSCACHE=y +# CONFIG_CIFS_SMB2 is not set +# CONFIG_CIFS_FSCACHE is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set diff --git a/projects/Generic_OSS/linux/linux.i386.conf b/projects/Generic_OSS/linux/linux.i386.conf index 8b91b87896..1fc2313d55 100644 --- a/projects/Generic_OSS/linux/linux.i386.conf +++ b/projects/Generic_OSS/linux/linux.i386.conf @@ -3437,8 +3437,8 @@ CONFIG_CIFS_STATS2=y # CONFIG_CIFS_XATTR is not set # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -CONFIG_CIFS_SMB2=y -CONFIG_CIFS_FSCACHE=y +# CONFIG_CIFS_SMB2 is not set +# CONFIG_CIFS_FSCACHE is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set diff --git a/projects/ION/linux/linux.i386.conf b/projects/ION/linux/linux.i386.conf index 223d79f0a4..3a23bab78f 100644 --- a/projects/ION/linux/linux.i386.conf +++ b/projects/ION/linux/linux.i386.conf @@ -3225,8 +3225,8 @@ CONFIG_CIFS_STATS2=y # CONFIG_CIFS_XATTR is not set # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -CONFIG_CIFS_SMB2=y -CONFIG_CIFS_FSCACHE=y +# CONFIG_CIFS_SMB2 is not set +# CONFIG_CIFS_FSCACHE is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set diff --git a/projects/ION/linux/linux.x86_64.conf b/projects/ION/linux/linux.x86_64.conf index 7e3bdf8c75..b67a437723 100644 --- a/projects/ION/linux/linux.x86_64.conf +++ b/projects/ION/linux/linux.x86_64.conf @@ -3152,8 +3152,8 @@ CONFIG_CIFS_STATS2=y # CONFIG_CIFS_XATTR is not set # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -CONFIG_CIFS_SMB2=y -CONFIG_CIFS_FSCACHE=y +# CONFIG_CIFS_SMB2 is not set +# CONFIG_CIFS_FSCACHE is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set diff --git a/projects/Intel/linux/linux.i386.conf b/projects/Intel/linux/linux.i386.conf index 9a4641319c..479800c606 100644 --- a/projects/Intel/linux/linux.i386.conf +++ b/projects/Intel/linux/linux.i386.conf @@ -3272,8 +3272,8 @@ CONFIG_CIFS_STATS2=y # CONFIG_CIFS_XATTR is not set # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -CONFIG_CIFS_SMB2=y -CONFIG_CIFS_FSCACHE=y +# CONFIG_CIFS_SMB2 is not set +# CONFIG_CIFS_FSCACHE is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set diff --git a/projects/Intel/linux/linux.x86_64.conf b/projects/Intel/linux/linux.x86_64.conf index 491d8e2a1c..90dc83e016 100644 --- a/projects/Intel/linux/linux.x86_64.conf +++ b/projects/Intel/linux/linux.x86_64.conf @@ -3200,8 +3200,8 @@ CONFIG_CIFS_STATS2=y # CONFIG_CIFS_XATTR is not set # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -CONFIG_CIFS_SMB2=y -CONFIG_CIFS_FSCACHE=y +# CONFIG_CIFS_SMB2 is not set +# CONFIG_CIFS_FSCACHE is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set diff --git a/projects/RPi/linux/linux.arm.conf b/projects/RPi/linux/linux.arm.conf index 58f33ea42e..a0820b8824 100644 --- a/projects/RPi/linux/linux.arm.conf +++ b/projects/RPi/linux/linux.arm.conf @@ -2261,7 +2261,7 @@ CONFIG_CIFS_STATS2=y # CONFIG_CIFS_XATTR is not set # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -CONFIG_CIFS_FSCACHE=y +# CONFIG_CIFS_FSCACHE is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set diff --git a/projects/Ultra/linux/linux.x86_64.conf b/projects/Ultra/linux/linux.x86_64.conf index f11ec35e52..c17c03a583 100644 --- a/projects/Ultra/linux/linux.x86_64.conf +++ b/projects/Ultra/linux/linux.x86_64.conf @@ -2939,8 +2939,8 @@ CONFIG_CIFS_STATS2=y # CONFIG_CIFS_XATTR is not set # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -CONFIG_CIFS_SMB2=y -CONFIG_CIFS_FSCACHE=y +# CONFIG_CIFS_SMB2 is not set +# CONFIG_CIFS_FSCACHE is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set diff --git a/projects/Virtual/linux/linux.i386.conf b/projects/Virtual/linux/linux.i386.conf index 1e1b0078f3..be7ee24075 100644 --- a/projects/Virtual/linux/linux.i386.conf +++ b/projects/Virtual/linux/linux.i386.conf @@ -3269,8 +3269,8 @@ CONFIG_CIFS_STATS2=y # CONFIG_CIFS_XATTR is not set # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -CONFIG_CIFS_SMB2=y -CONFIG_CIFS_FSCACHE=y +# CONFIG_CIFS_SMB2 is not set +# CONFIG_CIFS_FSCACHE is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set diff --git a/projects/Virtual/linux/linux.x86_64.conf b/projects/Virtual/linux/linux.x86_64.conf index be65978745..15a6d55c50 100644 --- a/projects/Virtual/linux/linux.x86_64.conf +++ b/projects/Virtual/linux/linux.x86_64.conf @@ -3196,8 +3196,8 @@ CONFIG_CIFS_STATS2=y # CONFIG_CIFS_XATTR is not set # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_DFS_UPCALL is not set -CONFIG_CIFS_SMB2=y -CONFIG_CIFS_FSCACHE=y +# CONFIG_CIFS_SMB2 is not set +# CONFIG_CIFS_FSCACHE is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set From 7338855b9b5bdf0273bf63551dfbdd5ea7d12722 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 29 Jan 2013 03:15:15 +0100 Subject: [PATCH 23/86] Revert "setxkbmap: revert change to set keyboard layout via udev, this should partly fix the change keyboard layout issues, but needs some more work" This reverts commit 9eb0f5f1951a03fd25e691ea8fbda0356cf858f0. --- packages/x11/app/setxkbmap/install | 2 + .../{init.d/72_keyboard => scripts/xkb-setup} | 39 ++++++++----------- .../app/setxkbmap/udev.d/98-xorg-xkb.rules | 8 ++++ 3 files changed, 27 insertions(+), 22 deletions(-) rename packages/x11/app/setxkbmap/{init.d/72_keyboard => scripts/xkb-setup} (67%) mode change 100644 => 100755 create mode 100644 packages/x11/app/setxkbmap/udev.d/98-xorg-xkb.rules diff --git a/packages/x11/app/setxkbmap/install b/packages/x11/app/setxkbmap/install index 6a5aaf3171..16941ff820 100755 --- a/packages/x11/app/setxkbmap/install +++ b/packages/x11/app/setxkbmap/install @@ -25,3 +25,5 @@ mkdir -p $INSTALL/usr/bin cp $PKG_BUILD/$1 $INSTALL/usr/bin +mkdir -p $INSTALL/lib/udev + cp $PKG_DIR/scripts/xkb-setup $INSTALL/lib/udev diff --git a/packages/x11/app/setxkbmap/init.d/72_keyboard b/packages/x11/app/setxkbmap/scripts/xkb-setup old mode 100644 new mode 100755 similarity index 67% rename from packages/x11/app/setxkbmap/init.d/72_keyboard rename to packages/x11/app/setxkbmap/scripts/xkb-setup index 32478732e2..a2498b336a --- a/packages/x11/app/setxkbmap/init.d/72_keyboard +++ b/packages/x11/app/setxkbmap/scripts/xkb-setup @@ -1,3 +1,5 @@ +#!/bin/sh + ################################################################################ # This file is part of OpenELEC - http://www.openelec.tv # Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) @@ -18,28 +20,21 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -# setup keyboard layout -# -# runlevels: openelec +. /etc/profile +. /var/config/settings.conf -( - if [ -f /var/config/settings.conf ]; then - . /var/config/settings.conf +if [ -z $X11_KEYMAP ]; then + X11_KEYMAP="us" +fi - progress "setup keyboard layout" +if [ ! "$X11_KEYMAP2" == "-none-" ]; then + XKBLAYOUT="$X11_KEYMAP,$X11_KEYMAP2" + XKBOPTIONS="grp:alt_shift_toggle" +else + XKBLAYOUT="$X11_KEYMAP" +fi - if [ -z $X11_KEYMAP ]; then - X11_KEYMAP="us" - fi - - # waiting for Xorg to start - wait_for_xorg - - # setup keymap - if [ -z $X11_KEYMAP2 ]; then - setxkbmap -display $DISPLAY $X11_KEYMAP; - else - setxkbmap -display $DISPLAY -layout "$X11_KEYMAP,$X11_KEYMAP2" -option "grp:alt_shift_toggle"; - fi - fi -)& +echo "XKBMODEL=\"pc105\"" +echo "XKBVARIANT=\"\"" +echo "XKBLAYOUT=\"$XKBLAYOUT\"" +echo "XKBOPTIONS=\"$XKBOPTIONS\"" diff --git a/packages/x11/app/setxkbmap/udev.d/98-xorg-xkb.rules b/packages/x11/app/setxkbmap/udev.d/98-xorg-xkb.rules new file mode 100644 index 0000000000..a99b7f3c1e --- /dev/null +++ b/packages/x11/app/setxkbmap/udev.d/98-xorg-xkb.rules @@ -0,0 +1,8 @@ +ACTION!="add|change", GOTO="xorg_xkb_end" +SUBSYSTEM!="input", GOTO="xorg_xkb_end" +KERNEL!="event*", GOTO="xorg_xkb_end" + +ENV{ID_INPUT_KEY}=="?*", IMPORT{program}="xkb-setup" + +LABEL="xorg_xkb_end" + From 23b0220008c8a20226b68fdb09c41054672c2e1a Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 29 Jan 2013 04:30:30 +0100 Subject: [PATCH 24/86] xbmc: update to xbmc-12.0 Signed-off-by: Stephan Raue --- packages/mediacenter/xbmc-theme-Confluence/meta | 2 +- packages/mediacenter/xbmc/meta | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mediacenter/xbmc-theme-Confluence/meta b/packages/mediacenter/xbmc-theme-Confluence/meta index 61443de787..2c3582cd78 100644 --- a/packages/mediacenter/xbmc-theme-Confluence/meta +++ b/packages/mediacenter/xbmc-theme-Confluence/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="xbmc-theme-Confluence" -PKG_VERSION="aea93c3" +PKG_VERSION="12.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/mediacenter/xbmc/meta b/packages/mediacenter/xbmc/meta index 2e1c897752..fe0b65c3b0 100644 --- a/packages/mediacenter/xbmc/meta +++ b/packages/mediacenter/xbmc/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="xbmc" -PKG_VERSION="aea93c3" +PKG_VERSION="12.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" From 8dcc5c97b839176fc39ed81eba0d552fb53d33a7 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 29 Jan 2013 04:30:50 +0100 Subject: [PATCH 25/86] xbmc: show XBMC splash Signed-off-by: Stephan Raue --- packages/mediacenter/xbmc/config/advancedsettings.xml | 1 - packages/mediacenter/xbmc/install | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/mediacenter/xbmc/config/advancedsettings.xml b/packages/mediacenter/xbmc/config/advancedsettings.xml index 81c059d66d..0b5968f9b3 100644 --- a/packages/mediacenter/xbmc/config/advancedsettings.xml +++ b/packages/mediacenter/xbmc/config/advancedsettings.xml @@ -1,6 +1,5 @@ - false false cputemp gputemp diff --git a/packages/mediacenter/xbmc/install b/packages/mediacenter/xbmc/install index 90983e8427..19dfc2172d 100755 --- a/packages/mediacenter/xbmc/install +++ b/packages/mediacenter/xbmc/install @@ -64,7 +64,7 @@ rm -rf $ROOT/$INSTALL/usr/share/xbmc/addons/visualization.milkdrop # overriding Splash image mkdir -p $INSTALL/usr/share/xbmc/media - rm -rf $INSTALL/usr/share/xbmc/media/Splash.png +# rm -rf $INSTALL/usr/share/xbmc/media/Splash.png # if [ -f $PROJECT_DIR/$PROJECT/splash/splash.png ]; then # cp $PROJECT_DIR/$PROJECT/splash/splash.png $INSTALL/usr/share/xbmc/media/Splash.png # else From 53ad9d2478a90124fa803bd87d7754484eadb129 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 29 Jan 2013 10:21:37 +0100 Subject: [PATCH 26/86] eglibc: update to eglibc-2.17-22321 Signed-off-by: Stephan Raue --- packages/toolchain/devel/eglibc/meta | 2 +- ...7-22220-select_fd_type.patch => eglibc-select_fd_type.patch} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename packages/toolchain/devel/eglibc/patches/{eglibc-2.17-22220-select_fd_type.patch => eglibc-select_fd_type.patch} (100%) diff --git a/packages/toolchain/devel/eglibc/meta b/packages/toolchain/devel/eglibc/meta index f7aadf2bb7..f3c72dd6df 100644 --- a/packages/toolchain/devel/eglibc/meta +++ b/packages/toolchain/devel/eglibc/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="eglibc" -PKG_VERSION="2.17-22220" +PKG_VERSION="2.17-22321" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/toolchain/devel/eglibc/patches/eglibc-2.17-22220-select_fd_type.patch b/packages/toolchain/devel/eglibc/patches/eglibc-select_fd_type.patch similarity index 100% rename from packages/toolchain/devel/eglibc/patches/eglibc-2.17-22220-select_fd_type.patch rename to packages/toolchain/devel/eglibc/patches/eglibc-select_fd_type.patch From 321041a8ba49eba79c3cf9df9cecc7b686a18191 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Tue, 29 Jan 2013 10:22:37 +0100 Subject: [PATCH 27/86] xbmc: update XVBA/VDPAU patches Signed-off-by: Stephan Raue --- ...ch => xbmc-801-xvba_support-ae08a23.patch} | 647 +++++++++++++----- ...-809-add_keymapping_for_XF86XK_Sleep.patch | 24 - ...dd_multithread_support_for_hi10p-0.1.patch | 107 --- 3 files changed, 484 insertions(+), 294 deletions(-) rename packages/mediacenter/xbmc/patches.x86/{xbmc-801-xvba_support-f3add0d.patch => xbmc-801-xvba_support-ae08a23.patch} (96%) delete mode 100644 packages/mediacenter/xbmc/patches.x86/xbmc-809-add_keymapping_for_XF86XK_Sleep.patch delete mode 100644 packages/mediacenter/xbmc/patches/xbmc-601-add_multithread_support_for_hi10p-0.1.patch diff --git a/packages/mediacenter/xbmc/patches.x86/xbmc-801-xvba_support-f3add0d.patch b/packages/mediacenter/xbmc/patches.x86/xbmc-801-xvba_support-ae08a23.patch similarity index 96% rename from packages/mediacenter/xbmc/patches.x86/xbmc-801-xvba_support-f3add0d.patch rename to packages/mediacenter/xbmc/patches.x86/xbmc-801-xvba_support-ae08a23.patch index 1f5db47dd0..97565b8864 100644 --- a/packages/mediacenter/xbmc/patches.x86/xbmc-801-xvba_support-f3add0d.patch +++ b/packages/mediacenter/xbmc/patches.x86/xbmc-801-xvba_support-ae08a23.patch @@ -1,7 +1,57 @@ -From c5afa461015a57c40157dc80012873b9578dd5cb Mon Sep 17 00:00:00 2001 +From bfd49543c49747236d401df4351767d584f756ac Mon Sep 17 00:00:00 2001 +From: wsnipex +Date: Sun, 4 Nov 2012 14:05:52 +0100 +Subject: [PATCH 01/72] configure: add --enable-pvraddons-with-dependencies + switch for intree building of PVR Addons + +--- + configure.in | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/configure.in b/configure.in +index 4769315..350d960 100644 +--- a/configure.in ++++ b/configure.in +@@ -521,6 +521,14 @@ AC_ARG_ENABLE([external-ffmpeg], + [use_external_ffmpeg=$use_external_libraries]) + + ### End of external library options ++### PVR addons specific ++AC_ARG_ENABLE([pvraddons-with-dependencies], ++ [AS_HELP_STRING([--enable-pvraddons-with-dependencies], ++ [enable build of pvr addons with dependencies (default is no) 'Linux only'])], ++ [use_pvraddons_with_deps=$enableval], ++ [use_pvraddons_with_deps=no]) ++ ++### End PVR addons specific + + if test "x$host_vendor" != "xapple"; then + DEFAULT_COMPILE_FLAGS="-fPIC -DPIC -D_REENTRANT" +@@ -2770,12 +2778,16 @@ XB_CONFIG_MODULE([pvr-addons], [ + if test "$USE_EXTERNAL_FFMPEG" = 1; then + PVR_EXT_FFMPEG="--enable-external-ffmpeg" + fi ++ if test "$use_pvraddons_with_deps" = "yes"; then ++ ADDONS_WITH_DEPS="--enable-addons-with-dependencies" ++ fi + ./configure \ + --prefix="${prefix}" \ + --host=$host_alias \ + --build=$build_alias \ + --target=$target_alias \ + $PVR_EXT_FFMPEG \ ++ $ADDONS_WITH_DEPS \ + CC="$CC" \ + CXX="$CXX" \ + CFLAGS="$CFLAGS" \ +-- +1.7.10 + + +From dc83e2351e8bf8e904102782ea489d2c8caa2802 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:03:31 +0200 -Subject: [PATCH 01/65] VideoRenerers: add buffering +Subject: [PATCH 02/72] VideoRenerers: add buffering --- xbmc/Application.cpp | 3 + @@ -21,7 +71,7 @@ Subject: [PATCH 01/65] VideoRenerers: add buffering 14 files changed, 380 insertions(+), 93 deletions(-) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index 2193cfe..d30bd61 100644 +index c6f0a14..18e6310 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp @@ -2367,7 +2367,10 @@ void CApplication::Render() @@ -897,7 +947,7 @@ index 2ab5684..f493ba7 100644 virtual unsigned int PreInit(); virtual void UnInit(); diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 54c6b29..b5ecf4d 100644 +index 0cd2510..315d64a 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp @@ -463,7 +463,7 @@ bool CDVDPlayer::OpenFile(const CFileItem& file, const CPlayerOptions &options) @@ -984,10 +1034,10 @@ index 3008c25..a4bb1ba 100644 1.7.10 -From b6c4e583144aa7b731d018bb9f5200f0ed284089 Mon Sep 17 00:00:00 2001 +From dacc0167c993efa6ac884fd3c439fc5f0c823934 Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 2 Oct 2012 10:49:09 +0200 -Subject: [PATCH 02/65] linuxrenderer: delete all textures on reconfigure +Subject: [PATCH 03/72] linuxrenderer: delete all textures on reconfigure --- xbmc/cores/VideoRenderers/LinuxRendererGL.cpp | 2 +- @@ -1010,10 +1060,10 @@ index b32a7ea..a2dc2be 100644 1.7.10 -From 069c58739b142a2239b1f125e89b5810d9aa6225 Mon Sep 17 00:00:00 2001 +From 226539d21ba940ea8add89417df7102302c7ba79 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:17:33 +0200 -Subject: [PATCH 03/65] drop frame counter in application, ask render manager +Subject: [PATCH 04/72] drop frame counter in application, ask render manager instead --- @@ -1024,7 +1074,7 @@ Subject: [PATCH 03/65] drop frame counter in application, ask render manager 4 files changed, 23 insertions(+), 45 deletions(-) diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index d30bd61..f5efb3a 100644 +index 18e6310..9a7b900 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp @@ -415,8 +415,6 @@ @@ -1119,7 +1169,7 @@ index d30bd61..f5efb3a 100644 } void CApplication::SetStandAlone(bool value) -@@ -5621,12 +5596,6 @@ bool CApplication::SwitchToFullScreen() +@@ -5638,12 +5613,6 @@ bool CApplication::SwitchToFullScreen() // See if we're playing a video, and are in GUI mode if ( IsPlayingVideo() && g_windowManager.GetActiveWindow() != WINDOW_FULLSCREEN_VIDEO) { @@ -1132,7 +1182,7 @@ index d30bd61..f5efb3a 100644 // then switch to fullscreen mode g_windowManager.ActivateWindow(WINDOW_FULLSCREEN_VIDEO); return true; -@@ -5859,7 +5828,6 @@ bool CApplication::IsCurrentThread() const +@@ -5876,7 +5845,6 @@ bool CApplication::IsCurrentThread() const bool CApplication::IsPresentFrame() { @@ -1141,10 +1191,10 @@ index d30bd61..f5efb3a 100644 return ret; diff --git a/xbmc/Application.h b/xbmc/Application.h -index 595b285..36ea33e 100644 +index 69609fa..6764a60 100644 --- a/xbmc/Application.h +++ b/xbmc/Application.h -@@ -421,10 +421,8 @@ class CApplication : public CXBApplicationEx, public IPlayerCallback, public IMs +@@ -422,10 +422,8 @@ class CApplication : public CXBApplicationEx, public IPlayerCallback, public IMs bool m_bEnableLegacyRes; bool m_bTestMode; bool m_bSystemScreenSaverEnable; @@ -1192,10 +1242,10 @@ index 34ff8d0..288175e 100644 1.7.10 -From e4af5841025ac832bd1719c1cfb0f42e4f26574f Mon Sep 17 00:00:00 2001 +From 0f81843cb7279f3b99607551967354ff30e15e4d Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:34:39 +0200 -Subject: [PATCH 04/65] videoplayer: adopt lateness detection and dropping to +Subject: [PATCH 05/72] videoplayer: adopt lateness detection and dropping to buffering --- @@ -1734,10 +1784,10 @@ index fe7e12c..4913712 100644 1.7.10 -From 0279ba32133779c414b093185dfe387093ca0d03 Mon Sep 17 00:00:00 2001 +From 4bc6ff77b121468020578f9d393e8aaae1a419f6 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:41:31 +0200 -Subject: [PATCH 05/65] videoplayer: update frametime, it might change due to +Subject: [PATCH 06/72] videoplayer: update frametime, it might change due to fps detection --- @@ -1761,10 +1811,10 @@ index 93908a7..4675556 100644 1.7.10 -From 6daaf4d05e6fdcc22bd289c9a64a90795ed0cb07 Mon Sep 17 00:00:00 2001 +From 723a731d68b9360f9804e8711255afa62c4ce34d Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:43:06 +0200 -Subject: [PATCH 06/65] videoplayer: give streams with invalid fps a chance +Subject: [PATCH 07/72] videoplayer: give streams with invalid fps a chance for fps detection --- @@ -1788,10 +1838,10 @@ index 4675556..2ef6358 100644 1.7.10 -From c4b011e38d54e7fff1321091cefbb26c8eaecc65 Mon Sep 17 00:00:00 2001 +From 60c955c30cdfcf361396e47fc92a1e1883b085fe Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 10:49:05 +0200 -Subject: [PATCH 07/65] dvdplayer: allow rewinding at end of stream, do a seek +Subject: [PATCH 08/72] dvdplayer: allow rewinding at end of stream, do a seek after rewind --- @@ -1799,7 +1849,7 @@ Subject: [PATCH 07/65] dvdplayer: allow rewinding at end of stream, do a seek 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index b5ecf4d..57e00e4 100644 +index 315d64a..6fcb6b3 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp @@ -1542,7 +1542,7 @@ void CDVDPlayer::HandlePlaySpeed() @@ -1811,7 +1861,7 @@ index b5ecf4d..57e00e4 100644 && m_SpeedState.lastpts != m_dvdPlayerVideo.GetCurrentPts() && m_SpeedState.lasttime != GetTime()) { -@@ -2178,6 +2178,12 @@ void CDVDPlayer::HandleMessages() +@@ -2183,6 +2183,12 @@ void CDVDPlayer::HandleMessages() pvrinputstream->Pause( speed == 0 ); } @@ -1828,10 +1878,10 @@ index b5ecf4d..57e00e4 100644 1.7.10 -From 22a1f2ea4fc9034d2e2097dd5331559c32db87e5 Mon Sep 17 00:00:00 2001 +From 8d237cf023501560fc394679819463034a209413 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 2 Sep 2012 16:05:21 +0200 -Subject: [PATCH 08/65] video player: present correct pts to user for a/v sync +Subject: [PATCH 09/72] video player: present correct pts to user for a/v sync (after buffering in renderer) --- @@ -1922,10 +1972,10 @@ index 4913712..509d5f7 100644 1.7.10 -From 140c373ba1ee2224744682f439c6598a0e694c7e Mon Sep 17 00:00:00 2001 +From 04a6a8b4ca29c17da6bbb9591685922b2f6f1442 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 28 May 2012 11:02:29 +0200 -Subject: [PATCH 09/65] vaapi: adopt to buffering in renderer +Subject: [PATCH 10/72] vaapi: adopt to buffering in renderer --- xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 2 +- @@ -1983,10 +2033,10 @@ index 863edc4..417cbc0 100644 1.7.10 -From 563a1ebb7f94ad9d66929991aa5f412cebd2419c Mon Sep 17 00:00:00 2001 +From 4d237410264bbff9c4ac373de498f80ecb15f7a3 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 7 Apr 2012 09:19:00 +0200 -Subject: [PATCH 10/65] vdpau: redesign +Subject: [PATCH 11/72] vdpau: redesign --- language/English/strings.po | 12 +- @@ -2017,7 +2067,7 @@ Subject: [PATCH 10/65] vdpau: redesign create mode 100644 xbmc/utils/ActorProtocol.h diff --git a/language/English/strings.po b/language/English/strings.po -index ac34df0..f825c57 100644 +index dff2978..88292d3 100644 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -5114,7 +5114,15 @@ msgctxt "#13434" @@ -7696,7 +7746,7 @@ index 27887d4..72718e5 100644 bool m_videoEnableHighQualityHwScalers; float m_videoAutoScaleMaxFps; diff --git a/xbmc/settings/GUISettings.cpp b/xbmc/settings/GUISettings.cpp -index 23fdee7..c5936f9 100644 +index 76ec0cc..4cdb093 100644 --- a/xbmc/settings/GUISettings.cpp +++ b/xbmc/settings/GUISettings.cpp @@ -685,6 +685,8 @@ void CGUISettings::Initialize() @@ -8146,10 +8196,10 @@ index e7af3cb..2dd8a9f 100644 1.7.10 -From 3437f8d62c5dba3c47951298ba3c71796ebc6ee0 Mon Sep 17 00:00:00 2001 +From c088467d9d0955051a510dadbddb270ddc3e3c20 Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 25 Sep 2012 12:14:15 +0200 -Subject: [PATCH 11/65] linuxrenderer: drop method RenderMultiPass +Subject: [PATCH 12/72] linuxrenderer: drop method RenderMultiPass --- xbmc/cores/VideoRenderers/LinuxRendererGL.cpp | 9 ++------- @@ -8199,10 +8249,10 @@ index 3218cd5..afc78c2 100644 1.7.10 -From b6374ee1781491fcc000e4e22888a30be00d0474 Mon Sep 17 00:00:00 2001 +From 0de3939247a63509e6bfab2e77c298eaa28aa29c Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 25 Sep 2012 13:20:47 +0200 -Subject: [PATCH 12/65] linuxrenderer: implement progressive weave for vdpau +Subject: [PATCH 13/72] linuxrenderer: implement progressive weave for vdpau --- xbmc/cores/VideoRenderers/LinuxRendererGL.cpp | 55 ++++++++++++++++++------- @@ -8330,10 +8380,10 @@ index afc78c2..2fc34ae 100644 1.7.10 -From 83d9332c846b80af7aea8b0f4f35aaf6d06e7668 Mon Sep 17 00:00:00 2001 +From c12380f4b9c9c2671bfd1ebd3e29ba7cd83ac95e Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 15:22:05 +0200 -Subject: [PATCH 13/65] X11: ditch SDL for video and window events +Subject: [PATCH 14/72] X11: ditch SDL for video and window events --- xbmc/Application.cpp | 2 +- @@ -8349,7 +8399,7 @@ Subject: [PATCH 13/65] X11: ditch SDL for video and window events create mode 100644 xbmc/windowing/WinEventsX11.h diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp -index f5efb3a..b38d16a 100644 +index 9a7b900..fc8e721 100644 --- a/xbmc/Application.cpp +++ b/xbmc/Application.cpp @@ -790,7 +790,7 @@ bool CApplication::CreateGUI() @@ -9817,10 +9867,10 @@ index 2dd8a9f..9616d17 100644 1.7.10 -From 86e08d915ef0345be8ad2c7c7327445f0144d52c Mon Sep 17 00:00:00 2001 +From 58fa894afaffbc990ee1ab87ff55db30e36ab2c2 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 15:24:22 +0200 -Subject: [PATCH 14/65] X11: Add xbmc icon +Subject: [PATCH 15/72] X11: Add xbmc icon --- xbmc/windowing/X11/WinSystemX11.cpp | 126 ++++++++++++++++++++++++++++++++++- @@ -10009,10 +10059,10 @@ index 9616d17..debf714 100644 1.7.10 -From 8110f4d02a52a33e38a0d7abfad438df395d0b2e Mon Sep 17 00:00:00 2001 +From cad2ac7f357906f10f100a038ff28e83a69c68e8 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 20 May 2012 14:11:26 +0200 -Subject: [PATCH 15/65] X11: add SDL joystick until we have a better solution +Subject: [PATCH 16/72] X11: add SDL joystick until we have a better solution --- xbmc/windowing/WinEventsX11.cpp | 26 ++++++++++++++++++++++++++ @@ -10066,10 +10116,10 @@ index 24477ae..2ec86a8 100644 1.7.10 -From 77c5aa42be8282924c1f96bd6ac7cfcfee294974 Mon Sep 17 00:00:00 2001 +From fdefd4cf296518f31ad1165268fccd651e08dd3c Mon Sep 17 00:00:00 2001 From: Joakim Plate Date: Thu, 5 Jul 2012 12:35:55 +0200 -Subject: [PATCH 16/65] X11: factor out code handling device reset +Subject: [PATCH 17/72] X11: factor out code handling device reset notification --- @@ -10133,10 +10183,10 @@ index debf714..8c28e3f 100644 1.7.10 -From b32a793828136f11d050c09248648fb7f02df9aa Mon Sep 17 00:00:00 2001 +From 9a409794d1eb8ee0c4b0b1124dea7dd30af32c06 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 15:02:00 +0200 -Subject: [PATCH 17/65] X11: move xrandr events to WinEventsX11 +Subject: [PATCH 18/72] X11: move xrandr events to WinEventsX11 --- xbmc/windowing/WinEventsX11.cpp | 42 +++++++++++++++++++++++++++++++++++ @@ -10280,10 +10330,10 @@ index 70557d0..1cce843 100644 1.7.10 -From 5a45de1a4288e8a32b300335b8fcd1dd08db840a Mon Sep 17 00:00:00 2001 +From 1dc579a2d5c608cfd4f799971759d18cbd2957e5 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 12 Apr 2012 15:43:56 +0200 -Subject: [PATCH 18/65] xrandr: remove method RestoreState +Subject: [PATCH 19/72] xrandr: remove method RestoreState --- xbmc/windowing/X11/WinSystemX11.cpp | 13 +++++++++++-- @@ -10362,10 +10412,10 @@ index 2a269d0..5b64633 100644 1.7.10 -From 81449c0af3253d0ccc5413dae3dd80e98aa29f98 Mon Sep 17 00:00:00 2001 +From 4a6f0e986fc27b356041a4b1bb989e0e594c8aa7 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 20 May 2012 13:17:10 +0200 -Subject: [PATCH 19/65] xrandr: observe orientation +Subject: [PATCH 20/72] xrandr: observe orientation --- xbmc/windowing/X11/WinSystemX11.cpp | 61 +++++++++++++++++++++++++++++++++-- @@ -10534,10 +10584,10 @@ index 5b64633..618bd68 100644 1.7.10 -From ec7d0a2efdd7309d1f8c5cf6c435ac0e113e176f Mon Sep 17 00:00:00 2001 +From 97e5811e05a4ecde7249b2f76283729ff300fda9 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 11:54:15 +0200 -Subject: [PATCH 20/65] xrandr: allow getting info for multiple screen's +Subject: [PATCH 21/72] xrandr: allow getting info for multiple screen's Refactored by: Joakim Plate --- @@ -10712,10 +10762,10 @@ index 618bd68..0824af5 100644 1.7.10 -From 5645d3b0dcc06de721bd9bed270e73a495413fef Mon Sep 17 00:00:00 2001 +From 2b379b9ce21b6d61b44b647b79ef3587dbbcf0ec Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 11:44:00 +0200 -Subject: [PATCH 21/65] X11: fix multi-head setups +Subject: [PATCH 22/72] X11: fix multi-head setups --- language/English/strings.po | 4 +- @@ -10729,7 +10779,7 @@ Subject: [PATCH 21/65] X11: fix multi-head setups 8 files changed, 235 insertions(+), 115 deletions(-) diff --git a/language/English/strings.po b/language/English/strings.po -index f825c57..0d89387 100644 +index 88292d3..bba7284 100644 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -895,7 +895,9 @@ msgctxt "#245" @@ -10756,7 +10806,7 @@ index efe5493..85d780d 100644 virtual void SetViewPort(CRect& viewPort); virtual void GetViewPort(CRect& viewPort); diff --git a/xbmc/settings/GUISettings.cpp b/xbmc/settings/GUISettings.cpp -index c5936f9..e98bfa8 100644 +index 4cdb093..0e320e1 100644 --- a/xbmc/settings/GUISettings.cpp +++ b/xbmc/settings/GUISettings.cpp @@ -392,11 +392,16 @@ void CGUISettings::Initialize() @@ -11447,10 +11497,10 @@ index 93cf5db..71034fc 100644 1.7.10 -From 7ca5c01cbe6d3cbc6e990ec899b5b1e96c3b644c Mon Sep 17 00:00:00 2001 +From 2a747f13a0a50dea0883d0d3c701ef290235a99b Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 11:36:32 +0200 -Subject: [PATCH 22/65] X11: remove all DefaultScreen and RootWindow macros +Subject: [PATCH 23/72] X11: remove all DefaultScreen and RootWindow macros --- xbmc/windowing/X11/WinSystemX11.cpp | 6 +++--- @@ -11518,10 +11568,10 @@ index f858f88..d192697 100644 1.7.10 -From efcade2f8d1ac7d12b02a2f9ecd800c9262eb608 Mon Sep 17 00:00:00 2001 +From cf018ebbf1eae8f5ae2914ef347aac5f963c0d71 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 11:45:22 +0200 -Subject: [PATCH 23/65] X11: remove all DefaultScreen and RootWindow macros +Subject: [PATCH 24/72] X11: remove all DefaultScreen and RootWindow macros (VideoRefClock) Note this is on a separate display connection. @@ -11593,10 +11643,10 @@ index 9785fe7..0004e07 100644 1.7.10 -From f4349a5aef80891eb84bdff08535dc1907168857 Mon Sep 17 00:00:00 2001 +From 5d8bfcd52e5a189515629c15c73434ef6c6bcc88 Mon Sep 17 00:00:00 2001 From: xbmc Date: Wed, 20 Jun 2012 17:37:11 +0200 -Subject: [PATCH 24/65] X11: recreate gl context after output has changed +Subject: [PATCH 25/72] X11: recreate gl context after output has changed --- xbmc/windowing/X11/WinSystemX11.cpp | 24 ++++++++++++++---------- @@ -11747,10 +11797,10 @@ index d192697..0f2d1d2 100644 1.7.10 -From 766d405b3210fb575bbeeda5c2d1dd4936f7b823 Mon Sep 17 00:00:00 2001 +From bd9a29b7661c75152174959f9f269f32c13a658b Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 12:06:25 +0200 -Subject: [PATCH 25/65] X11: hook video reference clock in windowing +Subject: [PATCH 26/72] X11: hook video reference clock in windowing --- xbmc/video/VideoReferenceClock.cpp | 71 ++++++++++++++++++++++++++---------- @@ -11955,10 +12005,10 @@ index dcc4f09..7eb6317 100644 1.7.10 -From 08e9dc3f84f93485a047885d5e8ce26c371dfcc0 Mon Sep 17 00:00:00 2001 +From 702f79eab647ec68030c99d6113976f3c602e87c Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 21 Jun 2012 17:26:51 +0200 -Subject: [PATCH 26/65] X11: fix video calibrations +Subject: [PATCH 27/72] X11: fix video calibrations --- xbmc/settings/Settings.cpp | 1 + @@ -12063,10 +12113,10 @@ index cc28f56..c046c86 100644 1.7.10 -From 83894260bf9cc7edfd1ed8d95c263034a5662158 Mon Sep 17 00:00:00 2001 +From 07920e322c9770ebb99becd104ebce0789c502fa Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 12:00:26 +0200 -Subject: [PATCH 27/65] X11: deactivate screen saver on startup +Subject: [PATCH 28/72] X11: deactivate screen saver on startup --- xbmc/windowing/X11/WinSystemX11.cpp | 29 +++++++++++++++++++++++++++++ @@ -12136,10 +12186,10 @@ index c046c86..e953d2d 100644 1.7.10 -From 6298d6e6bb5aa7095fd8834c5b33115dd26f2303 Mon Sep 17 00:00:00 2001 +From 835bcc9c7fd477012492ffc4cad2bdd9ce506064 Mon Sep 17 00:00:00 2001 From: FernetMenta Date: Thu, 5 Jul 2012 12:10:09 +0200 -Subject: [PATCH 28/65] X11: change method of going full-screen +Subject: [PATCH 29/72] X11: change method of going full-screen --- xbmc/windowing/X11/WinSystemX11.cpp | 9 ++++++++- @@ -12183,10 +12233,10 @@ index b3e7ab5..91f92c1 100644 1.7.10 -From 3ee15319a23761a412e8a9d1ad6b12da5ad9bef5 Mon Sep 17 00:00:00 2001 +From e2442797ff82b3ed8053f1a6422863ffce9cbe5f Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 28 Jun 2012 19:12:39 +0200 -Subject: [PATCH 29/65] X11: reset key repeat and key modifier on focus lost +Subject: [PATCH 30/72] X11: reset key repeat and key modifier on focus lost and gain --- @@ -12218,10 +12268,10 @@ index 6c22358..d86205d 100644 1.7.10 -From 63ca8875197d6834344e18d251dd53602b50613a Mon Sep 17 00:00:00 2001 +From 77a22163a7f611e9183b7cd0b817fc51a42d45de Mon Sep 17 00:00:00 2001 From: Joakim Plate Date: Thu, 5 Jul 2012 14:18:46 +0200 -Subject: [PATCH 30/65] X11: replace custom utf8 to unicode with charset +Subject: [PATCH 31/72] X11: replace custom utf8 to unicode with charset convertor (squash to x11 events) --- @@ -12438,10 +12488,10 @@ index 6100933..72955ad 100644 1.7.10 -From d549f751d3261799f94640181dda000e15fa8b66 Mon Sep 17 00:00:00 2001 +From e060b3197bbac54b79b604bbbf9a8e86257980f5 Mon Sep 17 00:00:00 2001 From: Joakim Plate Date: Thu, 5 Jul 2012 14:23:54 +0200 -Subject: [PATCH 31/65] X11: fixed invalid usage of sizeof() (squash into x11 +Subject: [PATCH 32/72] X11: fixed invalid usage of sizeof() (squash into x11 changes) --- @@ -12505,17 +12555,17 @@ index 72955ad..102a076 100644 1.7.10 -From 064ec732cd3a400dd16523770d6adaee2e4e10e6 Mon Sep 17 00:00:00 2001 +From c52af3ba68292f08331cbbbc940dfcea838a2f44 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 9 Jun 2012 18:23:53 +0200 -Subject: [PATCH 32/65] add missing keys to xbmc keytable +Subject: [PATCH 33/72] add missing keys to xbmc keytable --- xbmc/input/XBMC_keytable.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xbmc/input/XBMC_keytable.cpp b/xbmc/input/XBMC_keytable.cpp -index dbc28a7..0ab6e78 100644 +index aaf65ba..9d7922f 100644 --- a/xbmc/input/XBMC_keytable.cpp +++ b/xbmc/input/XBMC_keytable.cpp @@ -179,6 +179,8 @@ @@ -12531,10 +12581,10 @@ index dbc28a7..0ab6e78 100644 1.7.10 -From 0815b0e72b8e6db1523c1e0a7672e591bb5ba5ed Mon Sep 17 00:00:00 2001 +From 25587ee807eca2fc9dde4528e3fc930b337e38b0 Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 16 Mar 2012 15:57:51 +0100 -Subject: [PATCH 33/65] videorefclock: temp deactivate of nv settings +Subject: [PATCH 34/72] videorefclock: temp deactivate of nv settings --- xbmc/video/VideoReferenceClock.cpp | 2 +- @@ -12557,10 +12607,10 @@ index fa8e35a..85e36c7 100644 1.7.10 -From 3d495917e2d8b0b68b18ae27cfb00d32821b0153 Mon Sep 17 00:00:00 2001 +From 4f8a95de09408321e2df3da891536c314fe3b4d2 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 20 Aug 2012 09:09:09 +0200 -Subject: [PATCH 34/65] videorefclock: ask graphics context for refresh rate +Subject: [PATCH 35/72] videorefclock: ask graphics context for refresh rate --- xbmc/video/VideoReferenceClock.cpp | 3 ++- @@ -12591,10 +12641,10 @@ index 85e36c7..8209163 100644 1.7.10 -From f355c4ee7062955f8974eed2a19c9d8519f8c914 Mon Sep 17 00:00:00 2001 +From 85d81f0c933cb0a75c2c21de86b4065e3db86002 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 9 Jul 2012 14:00:18 +0200 -Subject: [PATCH 35/65] X11: fix icon texture after +Subject: [PATCH 36/72] X11: fix icon texture after cc5ed3c2474084ebc0373a3046410e6f766e03f4 --- @@ -12702,10 +12752,10 @@ index 91f92c1..174ccef 100644 1.7.10 -From ce002ad4313fe9351f52f2306f953071b4717f41 Mon Sep 17 00:00:00 2001 +From 111c2f8fd0f6b698fbff0fda6dc6c17ce3644626 Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 10 Jul 2012 11:14:12 +0200 -Subject: [PATCH 36/65] X11: check for window manager +Subject: [PATCH 37/72] X11: check for window manager --- xbmc/windowing/X11/WinSystemX11.cpp | 74 ++++++++++++++++++++++++++++++++++- @@ -12826,10 +12876,10 @@ index e953d2d..0b7c10a 100644 1.7.10 -From 7de4839edfbbae70a96b642c7b94da8094d6831c Mon Sep 17 00:00:00 2001 +From f1051e1991e5ef5d83ce428b841ac365082042ec Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 12 Jul 2012 11:11:47 +0200 -Subject: [PATCH 37/65] X11: dont set window on xrandr if no mode available +Subject: [PATCH 38/72] X11: dont set window on xrandr if no mode available --- xbmc/windowing/X11/WinSystemX11.cpp | 11 ++++++----- @@ -12866,10 +12916,10 @@ index 4f1ae26..c11ea89 100644 1.7.10 -From e682379b7bdb3594a0cfbee1ef9e4be57d78594d Mon Sep 17 00:00:00 2001 +From 83b9c33e88077d957884ee22316c218e570dc3d5 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 26 Jul 2012 09:34:28 +0200 -Subject: [PATCH 38/65] X11: fix crash after a resolution change on startup +Subject: [PATCH 39/72] X11: fix crash after a resolution change on startup --- xbmc/windowing/X11/WinSystemX11.cpp | 3 ++- @@ -12893,10 +12943,10 @@ index c11ea89..0bd72d4 100644 1.7.10 -From a7698600db2b1f231bd5c47a47d4bf603f3d5933 Mon Sep 17 00:00:00 2001 +From b8956ed57f1b683ae79d7306c7461a31c894e9a9 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 15 Sep 2012 18:27:29 +0200 -Subject: [PATCH 39/65] X11: lock graphics context in NotifyXRREvent +Subject: [PATCH 40/72] X11: lock graphics context in NotifyXRREvent --- xbmc/windowing/X11/WinSystemX11.cpp | 2 ++ @@ -12919,10 +12969,10 @@ index 0bd72d4..ef83133 100644 1.7.10 -From bca47c8aa4ef5f69c2efd2f9cfd128d575776086 Mon Sep 17 00:00:00 2001 +From aed5d244b81b1a0b171b7fea3b332decafc96c56 Mon Sep 17 00:00:00 2001 From: Rainer Hochecker Date: Sat, 8 Oct 2011 16:45:13 +0200 -Subject: [PATCH 40/65] ffmpeg: add xvba hwaccel +Subject: [PATCH 41/72] ffmpeg: add xvba hwaccel --- lib/ffmpeg/configure | 8 ++ @@ -13789,10 +13839,10 @@ index f0d9c01..0f8cf7b 100644 1.7.10 -From 9dda703c82dd961e7f51dbde13ab799d86ef53f8 Mon Sep 17 00:00:00 2001 +From 922cada27e255bc3f685b700c2ffa4a146f87624 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 12 Apr 2012 12:09:31 +0200 -Subject: [PATCH 41/65] xvba: add decoder +Subject: [PATCH 42/72] xvba: add decoder --- configure.in | 48 + @@ -13815,7 +13865,7 @@ Subject: [PATCH 41/65] xvba: add decoder create mode 100644 xbmc/cores/dvdplayer/DVDCodecs/Video/XVBA.h diff --git a/configure.in b/configure.in -index 1fc450b..f42e81c 100644 +index 350d960..3660fa4 100644 --- a/configure.in +++ b/configure.in @@ -124,6 +124,8 @@ vaapi_not_found="== Could not find libva. VAAPI support disabled. ==" @@ -13909,7 +13959,7 @@ index 1fc450b..f42e81c 100644 --enable-pthreads \ --enable-runtime-cpudetect \ diff --git a/language/English/strings.po b/language/English/strings.po -index 0d89387..ba647f3 100644 +index bba7284..ede18b3 100644 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -5124,7 +5124,11 @@ msgctxt "#13436" @@ -17197,7 +17247,7 @@ index 15a39fa..e5e71f3 100644 if(m_bAllowFullscreen) diff --git a/xbmc/settings/GUISettings.cpp b/xbmc/settings/GUISettings.cpp -index e98bfa8..a87f871 100644 +index 0e320e1..10ef779 100644 --- a/xbmc/settings/GUISettings.cpp +++ b/xbmc/settings/GUISettings.cpp @@ -696,6 +696,9 @@ void CGUISettings::Initialize() @@ -17239,10 +17289,10 @@ index f25d10d..f6b1ea4 100644 1.7.10 -From 2c93be8f7888de573b1bd4e43818c4e354f9b7e4 Mon Sep 17 00:00:00 2001 +From 517eda0bf58a6376a82839ab92e51b97c143edf1 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 23 Aug 2012 19:39:49 +0200 -Subject: [PATCH 42/65] ffmpeg: add av_find_default_stream_index to interface +Subject: [PATCH 43/72] ffmpeg: add av_find_default_stream_index to interface --- lib/DllAvFormat.h | 4 ++++ @@ -17288,10 +17338,10 @@ index 9bda3f3..bf31fcb 100644 1.7.10 -From cc5a834ad7499213db0ff8478656cb3d23bc6aa9 Mon Sep 17 00:00:00 2001 +From 23be471842ae9ea7bd62c18261a5e96a11045d04 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 20 Aug 2012 16:06:39 +0200 -Subject: [PATCH 43/65] dvdplayer: observe pts counter overflow +Subject: [PATCH 44/72] dvdplayer: observe pts counter overflow --- .../cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.cpp | 198 +++++++++++++++++++- @@ -17577,10 +17627,10 @@ index 2b5f2e8..e0acf29 100644 1.7.10 -From a4c4c81076b5d30f7e4f8b18579ba71eac7126d1 Mon Sep 17 00:00:00 2001 +From 66382788a903f99ba317e972ba0445fc68320750 Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 2 Oct 2012 13:02:10 +0200 -Subject: [PATCH 44/65] dvdplayer: avoid short screen flicker caused by +Subject: [PATCH 45/72] dvdplayer: avoid short screen flicker caused by unnecessary reconfigure of renderer --- @@ -17613,10 +17663,10 @@ index e5e71f3..8b02d81 100644 1.7.10 -From 58de6d26fab0eb7b876b4636666c3c1a0a7cc6d2 Mon Sep 17 00:00:00 2001 +From 04f4521c1938a7ac17acd59f3bd6be59c7ba8184 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sat, 16 Jun 2012 12:46:30 +0200 -Subject: [PATCH 45/65] xvba: do not use vaapi if xvba is present +Subject: [PATCH 46/72] xvba: do not use vaapi if xvba is present --- xbmc/cores/dvdplayer/DVDCodecs/Video/VAAPI.cpp | 9 +++++++++ @@ -17646,10 +17696,10 @@ index a2b9195..43a05b3 100644 1.7.10 -From a7246851e416366a59da075fe7fadf5af5365f3b Mon Sep 17 00:00:00 2001 +From a133b7fa119e859ec50b9f05a33de984105234f3 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 11 Oct 2012 12:05:50 +0200 -Subject: [PATCH 46/65] vdpau: advanced settings for auto deinterlacing +Subject: [PATCH 47/72] vdpau: advanced settings for auto deinterlacing --- xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 8 ++++---- @@ -17715,20 +17765,20 @@ index 72718e5..aaa4702 100644 1.7.10 -From 07d871d33fcd1e92a714f7c3f1681e5e2988d8f9 Mon Sep 17 00:00:00 2001 +From 62540aeaa356823bd34e9367ac39eef23a6e4ce4 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 11 Oct 2012 13:01:08 +0200 -Subject: [PATCH 47/65] dvdplayer: correct determination if video is playing +Subject: [PATCH 48/72] dvdplayer: correct determination if video is playing --- xbmc/cores/dvdplayer/DVDPlayer.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 57e00e4..66cd24a 100644 +index 6fcb6b3..f76691d 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp -@@ -2377,9 +2377,16 @@ bool CDVDPlayer::IsPaused() const +@@ -2382,9 +2382,16 @@ bool CDVDPlayer::IsPaused() const bool CDVDPlayer::HasVideo() const { @@ -17751,10 +17801,10 @@ index 57e00e4..66cd24a 100644 1.7.10 -From eec6b29df168572d12dd3b683036682a66755135 Mon Sep 17 00:00:00 2001 +From 5a093bbd60d1ca47ed7c5e4639f28dafc1b565c1 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 14 Oct 2012 13:46:54 +0200 -Subject: [PATCH 48/65] rendermanager: fix stuttering in non full-screen mode, +Subject: [PATCH 49/72] rendermanager: fix stuttering in non full-screen mode, squash to add buffering --- @@ -17780,10 +17830,10 @@ index 0506823..b141c80 100644 1.7.10 -From 6c238cf78efc5e049c2d6275ba748ba110205b5e Mon Sep 17 00:00:00 2001 +From d0597caa2c922575efdf081d719d5665c626ffec Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 14 Oct 2012 17:54:02 +0200 -Subject: [PATCH 49/65] rendermanager: forgot to set flip event if buffering +Subject: [PATCH 50/72] rendermanager: forgot to set flip event if buffering is not used --- @@ -17826,10 +17876,10 @@ index b141c80..9290f80 100644 1.7.10 -From 18edbd82c3b10f096b2597dd9b951cdc083118ff Mon Sep 17 00:00:00 2001 +From c485392afa608bfbcf903fa53a9dd824258c96dd Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 26 Oct 2012 15:30:22 +0200 -Subject: [PATCH 50/65] vdpau: fix small mem leak +Subject: [PATCH 51/72] vdpau: fix small mem leak --- xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 2 ++ @@ -17852,10 +17902,10 @@ index d95797b..fec4b88 100644 1.7.10 -From 01168b2d4e3b0a59925ce0985a10a952893f699c Mon Sep 17 00:00:00 2001 +From 9d7228a84013e409149d7b05d34545d1bdf06e27 Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 29 Oct 2012 18:25:56 +0100 -Subject: [PATCH 51/65] xvba: do not render if there is no valid texture +Subject: [PATCH 52/72] xvba: do not render if there is no valid texture --- xbmc/cores/VideoRenderers/LinuxRendererGL.cpp | 8 +++----- @@ -17889,10 +17939,10 @@ index ec3606a..7c3adcb 100644 1.7.10 -From afa62dee526b29430d6113ac039768c84cf425f1 Mon Sep 17 00:00:00 2001 +From 85be082db41b27cdd3824b8360dc021e17a84c22 Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 2 Nov 2012 13:20:03 +0100 -Subject: [PATCH 52/65] player: fix rewind +Subject: [PATCH 53/72] player: fix rewind --- xbmc/cores/dvdplayer/DVDMessage.h | 5 ++++- @@ -17940,7 +17990,7 @@ index 30b2f5c..b9831d4 100644 class CDVDMsgPlayerSeekChapter : public CDVDMsg diff --git a/xbmc/cores/dvdplayer/DVDPlayer.cpp b/xbmc/cores/dvdplayer/DVDPlayer.cpp -index 66cd24a..3d56e81 100644 +index f76691d..07df0d8 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.cpp +++ b/xbmc/cores/dvdplayer/DVDPlayer.cpp @@ -1543,11 +1543,13 @@ void CDVDPlayer::HandlePlaySpeed() @@ -17967,7 +18017,7 @@ index 66cd24a..3d56e81 100644 } } } -@@ -2025,7 +2027,7 @@ void CDVDPlayer::HandleMessages() +@@ -2030,7 +2032,7 @@ void CDVDPlayer::HandleMessages() if(!m_pSubtitleDemuxer->SeekTime(time, msg.GetBackward())) CLog::Log(LOGDEBUG, "failed to seek subtitle demuxer: %d, success", time); } @@ -17976,7 +18026,7 @@ index 66cd24a..3d56e81 100644 } else CLog::Log(LOGWARNING, "error while seeking"); -@@ -2163,9 +2165,10 @@ void CDVDPlayer::HandleMessages() +@@ -2168,9 +2170,10 @@ void CDVDPlayer::HandleMessages() double offset; offset = CDVDClock::GetAbsoluteClock() - m_State.timestamp; offset *= m_playSpeed / DVD_PLAYSPEED_NORMAL; @@ -17988,7 +18038,7 @@ index 66cd24a..3d56e81 100644 m_State.timestamp = CDVDClock::GetAbsoluteClock(); } -@@ -2181,7 +2184,8 @@ void CDVDPlayer::HandleMessages() +@@ -2186,7 +2189,8 @@ void CDVDPlayer::HandleMessages() // do a seek after rewind, clock is not in sync with current pts if (m_playSpeed < 0 && speed >= 0) { @@ -17998,7 +18048,7 @@ index 66cd24a..3d56e81 100644 } // if playspeed is different then DVD_PLAYSPEED_NORMAL or DVD_PLAYSPEED_PAUSE -@@ -2762,10 +2766,11 @@ int64_t CDVDPlayer::GetTime() +@@ -2767,10 +2771,11 @@ int64_t CDVDPlayer::GetTime() { offset = CDVDClock::GetAbsoluteClock() - m_State.timestamp; offset *= m_playSpeed / DVD_PLAYSPEED_NORMAL; @@ -18011,7 +18061,7 @@ index 66cd24a..3d56e81 100644 } // return length in msec -@@ -3135,7 +3140,7 @@ bool CDVDPlayer::CloseTeletextStream(bool bWaitForBuffers) +@@ -3140,7 +3145,7 @@ bool CDVDPlayer::CloseTeletextStream(bool bWaitForBuffers) return true; } @@ -18020,7 +18070,7 @@ index 66cd24a..3d56e81 100644 { double startpts; if(accurate) -@@ -3147,19 +3152,23 @@ void CDVDPlayer::FlushBuffers(bool queued, double pts, bool accurate) +@@ -3152,19 +3157,23 @@ void CDVDPlayer::FlushBuffers(bool queued, double pts, bool accurate) if(startpts != DVD_NOPTS_VALUE) startpts -= m_offset_pts; @@ -18048,7 +18098,7 @@ index 66cd24a..3d56e81 100644 m_CurrentTeletext.dts = DVD_NOPTS_VALUE; m_CurrentTeletext.startpts = startpts; -@@ -3203,7 +3212,7 @@ void CDVDPlayer::FlushBuffers(bool queued, double pts, bool accurate) +@@ -3208,7 +3217,7 @@ void CDVDPlayer::FlushBuffers(bool queued, double pts, bool accurate) m_CurrentTeletext.started = false; } @@ -18058,7 +18108,7 @@ index 66cd24a..3d56e81 100644 UpdatePlayState(0); } diff --git a/xbmc/cores/dvdplayer/DVDPlayer.h b/xbmc/cores/dvdplayer/DVDPlayer.h -index 9438a9b..2bbb031 100644 +index d3c201e..70ecea9 100644 --- a/xbmc/cores/dvdplayer/DVDPlayer.h +++ b/xbmc/cores/dvdplayer/DVDPlayer.h @@ -310,7 +310,7 @@ class CDVDPlayer : public IPlayer, public CThread, public IDVDPlayer @@ -18137,10 +18187,10 @@ index 509d5f7..7cddda7 100644 1.7.10 -From b7b8cd1063c8bb3311662d80734f028ccbe6b8a6 Mon Sep 17 00:00:00 2001 +From 024ecda241754f02ad985fab9116e33b06b8d174 Mon Sep 17 00:00:00 2001 From: fritsch Date: Fri, 2 Nov 2012 17:56:12 +0100 -Subject: [PATCH 53/65] xvba: do not create decoder for surfaces larger than +Subject: [PATCH 54/72] xvba: do not create decoder for surfaces larger than width 2048 or height 1536 --- @@ -18177,10 +18227,10 @@ index e8e376a..b73c48a 100644 1.7.10 -From 7c3061b823a062e2305e5a682ea38e0863629ed2 Mon Sep 17 00:00:00 2001 +From 98ebb0d0232cf4a7ea2082f9f16e210a39e983e8 Mon Sep 17 00:00:00 2001 From: fritsch Date: Sun, 4 Nov 2012 16:24:10 +0100 -Subject: [PATCH 54/65] xvba: add string for available decoders - we are +Subject: [PATCH 55/72] xvba: add string for available decoders - we are important so make sure we are there --- @@ -18207,10 +18257,10 @@ index 0cea7a9..6fb74b7 100644 1.7.10 -From c2bc8d899564dd50b839a8e48b7bd8705c9c2c68 Mon Sep 17 00:00:00 2001 +From 84e701f7db6603a2942611d5c74ba645c625ec0d Mon Sep 17 00:00:00 2001 From: fritsch Date: Thu, 22 Nov 2012 21:32:21 +0100 -Subject: [PATCH 55/65] xvba: revisit Artefacts. There are more broken video +Subject: [PATCH 56/72] xvba: revisit Artefacts. There are more broken video files out there --- @@ -18244,10 +18294,10 @@ index a077442..87af687 100644 1.7.10 -From ed6c35b57d161805e76f9cc68acc7019b0360bf9 Mon Sep 17 00:00:00 2001 +From afd776e3e90a1787ce4c3392266d70368de4e164 Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 23 Nov 2012 09:42:02 +0100 -Subject: [PATCH 56/65] xvba: reactivate accidently disabled +Subject: [PATCH 57/72] xvba: reactivate accidently disabled IsDecodingFinished --- @@ -18271,10 +18321,10 @@ index b73c48a..47ff25f 100644 1.7.10 -From 3e777702bb9911a4aa9cfcdbb7cedc908884f507 Mon Sep 17 00:00:00 2001 +From 37576c15f9e3a0c2dce593e9d9cb5a7863845de7 Mon Sep 17 00:00:00 2001 From: xbmc Date: Fri, 23 Nov 2012 17:41:12 +0100 -Subject: [PATCH 57/65] xrandr: fix query for multiple screens +Subject: [PATCH 58/72] xrandr: fix query for multiple screens --- xbmc/windowing/X11/XRandR.cpp | 10 ++++++---- @@ -18315,10 +18365,10 @@ index cc933b9..533e03d 100644 1.7.10 -From 77f16bb83a0ced22ab2e0be9249bea0ff9dd5e85 Mon Sep 17 00:00:00 2001 +From bd5d572c69ee254beedb5e9339831652943ea8b4 Mon Sep 17 00:00:00 2001 From: xbmc Date: Sun, 2 Dec 2012 15:46:55 +0100 -Subject: [PATCH 58/65] X11: add debug log to print out refresh after xrr +Subject: [PATCH 59/72] X11: add debug log to print out refresh after xrr event --- @@ -18346,10 +18396,10 @@ index ef83133..76c6362 100644 1.7.10 -From 1f04e7094e94ccd43a543228d04fee149e473966 Mon Sep 17 00:00:00 2001 +From d418ae1053a3842eb3e6a3bbd84666a5ee3defe2 Mon Sep 17 00:00:00 2001 From: xbmc Date: Tue, 11 Dec 2012 11:08:13 +0100 -Subject: [PATCH 59/65] X11: dont call XCloseDisplay on shutdown, it crashes +Subject: [PATCH 60/72] X11: dont call XCloseDisplay on shutdown, it crashes when powered doen by cec on ATI --- @@ -18374,10 +18424,10 @@ index 76c6362..e4e25b2 100644 1.7.10 -From b950ef11c5e8abe280a703963a945965709b5871 Mon Sep 17 00:00:00 2001 +From 3b700401e9aace50b5ce6c5d7ba2a2e33bb5217f Mon Sep 17 00:00:00 2001 From: xbmc Date: Wed, 12 Dec 2012 09:52:17 +0100 -Subject: [PATCH 60/65] vdpau: make interop gl default and remove setting, +Subject: [PATCH 61/72] vdpau: make interop gl default and remove setting, rename and intvert interop yuv --- @@ -18388,7 +18438,7 @@ Subject: [PATCH 60/65] vdpau: make interop gl default and remove setting, 4 files changed, 15 insertions(+), 30 deletions(-) diff --git a/language/English/strings.po b/language/English/strings.po -index ba647f3..8c179a9 100644 +index ede18b3..281a8a1 100644 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -5121,7 +5121,7 @@ msgid "Allow Vdpau OpenGL interop" @@ -18473,7 +18523,7 @@ index fec4b88..ad140fb 100644 if (!glXBindTexImageEXT) glXBindTexImageEXT = (PFNGLXBINDTEXIMAGEEXTPROC)glXGetProcAddress((GLubyte *) "glXBindTexImageEXT"); diff --git a/xbmc/settings/GUISettings.cpp b/xbmc/settings/GUISettings.cpp -index a87f871..e45c85d 100644 +index 10ef779..a4bd524 100644 --- a/xbmc/settings/GUISettings.cpp +++ b/xbmc/settings/GUISettings.cpp @@ -690,8 +690,7 @@ void CGUISettings::Initialize() @@ -18532,10 +18582,10 @@ index 3c19a06..b9f18e4 100644 1.7.10 -From 0611007b884af1e485db0bb379a55a39a0e4a9a9 Mon Sep 17 00:00:00 2001 +From a060312a4e236858bf3c9a97d663c5643796b649 Mon Sep 17 00:00:00 2001 From: xbmc Date: Wed, 12 Dec 2012 18:34:47 +0100 -Subject: [PATCH 61/65] vdpau: drop studio level conversion +Subject: [PATCH 62/72] vdpau: drop studio level conversion --- language/English/strings.po | 6 +- @@ -18545,7 +18595,7 @@ Subject: [PATCH 61/65] vdpau: drop studio level conversion 4 files changed, 7 insertions(+), 98 deletions(-) diff --git a/language/English/strings.po b/language/English/strings.po -index 8c179a9..1cd9e04 100644 +index 281a8a1..fc896b3 100644 --- a/language/English/strings.po +++ b/language/English/strings.po @@ -4371,11 +4371,7 @@ msgctxt "#13121" @@ -18703,7 +18753,7 @@ index ad140fb..5851e1a 100644 } diff --git a/xbmc/settings/GUISettings.cpp b/xbmc/settings/GUISettings.cpp -index e45c85d..8980e9d 100644 +index a4bd524..67aeec9 100644 --- a/xbmc/settings/GUISettings.cpp +++ b/xbmc/settings/GUISettings.cpp @@ -772,7 +772,6 @@ void CGUISettings::Initialize() @@ -18718,10 +18768,10 @@ index e45c85d..8980e9d 100644 1.7.10 -From 6e60f7cc2fbda3af8ef8d5354625d9ca99139648 Mon Sep 17 00:00:00 2001 +From 6d03704ce1cbc7d09d684da1ced478b2b59c0b35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Coutant?= Date: Wed, 12 Dec 2012 19:49:47 +0100 -Subject: [PATCH 62/65] x11: support for multiple x screens +Subject: [PATCH 63/72] x11: support for multiple x screens --- xbmc/windowing/X11/XRandR.cpp | 2 +- @@ -18744,10 +18794,10 @@ index 533e03d..7a16488 100644 1.7.10 -From 23da4306821c2157f5cec95eade246d4c2f5361d Mon Sep 17 00:00:00 2001 +From 597c8449084e1e5ebfebfb31db570f7826d06517 Mon Sep 17 00:00:00 2001 From: xbmc Date: Wed, 12 Dec 2012 20:28:49 +0100 -Subject: [PATCH 63/65] vdpau: observe ffmpeg tags for color space +Subject: [PATCH 64/72] vdpau: observe ffmpeg tags for color space --- xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 38 ++++++++++++++++-------- @@ -18851,10 +18901,10 @@ index 4d1559c..471ad68 100644 1.7.10 -From 220d6d1416228b63b071dabf68a085c6d24facd6 Mon Sep 17 00:00:00 2001 +From 3f9308d76025ef1e31923fa9a06587f75c00f870 Mon Sep 17 00:00:00 2001 From: xbmc Date: Thu, 20 Dec 2012 19:35:38 +0100 -Subject: [PATCH 64/65] fix compile error after recent change +Subject: [PATCH 65/72] fix compile error after recent change --- xbmc/settings/GUIWindowSettingsCategory.cpp | 2 +- @@ -18877,10 +18927,10 @@ index b9f18e4..cacb32a 100644 1.7.10 -From f3add0d0f2995f8ec15e87780a930cf07dbe76ed Mon Sep 17 00:00:00 2001 +From 213792b2678760d42740d581a1ee71e186a31c4d Mon Sep 17 00:00:00 2001 From: xbmc Date: Mon, 24 Dec 2012 16:02:42 +0100 -Subject: [PATCH 65/65] pvr: increase changes counter of stream on stream +Subject: [PATCH 66/72] pvr: increase changes counter of stream on stream change, cosmetics after dd307930d39d92f145a01a16600cd00e01ec39be @@ -18914,3 +18964,274 @@ index 8c984f6..034e545 100644 -- 1.7.10 + +From e810d3bd68e89e800fba217e88184c2df0fe4040 Mon Sep 17 00:00:00 2001 +From: xbmc +Date: Thu, 17 Jan 2013 16:03:22 +0100 +Subject: [PATCH 67/72] X11: add keymapping for XF86XK_Sleep + +--- + xbmc/windowing/WinEventsX11.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/xbmc/windowing/WinEventsX11.cpp b/xbmc/windowing/WinEventsX11.cpp +index c31877e..ed31c04 100644 +--- a/xbmc/windowing/WinEventsX11.cpp ++++ b/xbmc/windowing/WinEventsX11.cpp +@@ -143,6 +143,7 @@ + , {XK_Break, XBMCK_BREAK} + , {XK_Menu, XBMCK_MENU} + , {XF86XK_PowerOff, XBMCK_POWER} ++, {XF86XK_Sleep, XBMCK_SLEEP} + , {XK_EcuSign, XBMCK_EURO} + , {XK_Undo, XBMCK_UNDO} + /* Media keys */ +-- +1.7.10 + + +From 2cb807b2f801f06723cde1bdd636550c08fc08ab Mon Sep 17 00:00:00 2001 +From: fritsch +Date: Sat, 12 Jan 2013 13:03:50 +0100 +Subject: [PATCH 68/72] dvdplayer: Allow multithread decoding for hi10p + content by default + +This allows decoding of some hi10p material on e.g. AMD Fusion with +both cores at the max. This introduces a new advancedsetting named +disablehi10pmultithreading to disable hi10p decoded multithreaded. +--- + .../DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 18 ++++++++++++++++-- + .../dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h | 1 + + xbmc/settings/AdvancedSettings.cpp | 2 ++ + xbmc/settings/AdvancedSettings.h | 1 + + 4 files changed, 20 insertions(+), 2 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +index b3252ec..3f8a6e8 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp +@@ -154,6 +154,7 @@ enum PixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx + m_iScreenHeight = 0; + m_iOrientation = 0; + m_bSoftware = false; ++ m_isHi10p = false; + m_pHardware = NULL; + m_iLastKeyframe = 0; + m_dts = DVD_NOPTS_VALUE; +@@ -204,7 +205,10 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options + case FF_PROFILE_H264_HIGH_444_PREDICTIVE: + case FF_PROFILE_H264_HIGH_444_INTRA: + case FF_PROFILE_H264_CAVLC_444: ++ // this is needed to not open the decoders + m_bSoftware = true; ++ // this we need to enable multithreading for hi10p via advancedsettings ++ m_isHi10p = true; + break; + } + } +@@ -277,8 +281,18 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options + m_pCodecContext->codec_tag = hints.codec_tag; + /* Only allow slice threading, since frame threading is more + * sensitive to changes in frame sizes, and it causes crashes +- * during HW accell */ +- m_pCodecContext->thread_type = FF_THREAD_SLICE; ++ * during HW accell - so we unset it in this case. ++ * ++ * When we detect Hi10p and user did not disable hi10pmultithreading ++ * via advancedsettings.xml we keep the ffmpeg default thread type. ++ * */ ++ if(m_isHi10p && !g_advancedSettings.m_videoDisableHi10pMultithreading) ++ { ++ CLog::Log(LOGDEBUG,"CDVDVideoCodecFFmpeg::Open() Keep default threading for Hi10p: %d", ++ m_pCodecContext->thread_type); ++ } ++ else ++ m_pCodecContext->thread_type = FF_THREAD_SLICE; + + #if defined(TARGET_DARWIN_IOS) + // ffmpeg with enabled neon will crash and burn if this is enabled +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h +index bf4367c..db1d2b2 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h +@@ -116,6 +116,7 @@ class CDVDVideoCodecFFmpeg : public CDVDVideoCodec + + std::string m_name; + bool m_bSoftware; ++ bool m_isHi10p; + IHardwareDecoder *m_pHardware; + int m_iLastKeyframe; + double m_dts; +diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp +index d913924..6a48309 100644 +--- a/xbmc/settings/AdvancedSettings.cpp ++++ b/xbmc/settings/AdvancedSettings.cpp +@@ -116,6 +116,7 @@ void CAdvancedSettings::Initialize() + m_DXVANoDeintProcForProgressive = false; + m_videoFpsDetect = 1; + m_videoDefaultLatency = 0.0; ++ m_videoDisableHi10pMultithreading = false; + + m_musicUseTimeSeeking = true; + m_musicTimeSeekForward = 10; +@@ -502,6 +503,7 @@ void CAdvancedSettings::ParseSettingsFile(const CStdString &file) + XMLUtils::GetBoolean(pElement,"enablehighqualityhwscalers", m_videoEnableHighQualityHwScalers); + XMLUtils::GetFloat(pElement,"autoscalemaxfps",m_videoAutoScaleMaxFps, 0.0f, 1000.0f); + XMLUtils::GetBoolean(pElement,"allowmpeg4vdpau",m_videoAllowMpeg4VDPAU); ++ XMLUtils::GetBoolean(pElement,"disablehi10pmultithreading",m_videoDisableHi10pMultithreading); + XMLUtils::GetBoolean(pElement,"allowmpeg4vaapi",m_videoAllowMpeg4VAAPI); + XMLUtils::GetBoolean(pElement, "disablebackgrounddeinterlace", m_videoDisableBackgroundDeinterlace); + XMLUtils::GetInt(pElement, "useocclusionquery", m_videoCaptureUseOcclusionQuery, -1, 1); +diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h +index aaa4702..863e4f3 100644 +--- a/xbmc/settings/AdvancedSettings.h ++++ b/xbmc/settings/AdvancedSettings.h +@@ -168,6 +168,7 @@ class CAdvancedSettings + bool m_DXVAForceProcessorRenderer; + bool m_DXVANoDeintProcForProgressive; + int m_videoFpsDetect; ++ bool m_videoDisableHi10pMultithreading; + + CStdString m_videoDefaultPlayer; + CStdString m_videoDefaultDVDPlayer; +-- +1.7.10 + + +From 5e52fa15742e1300ac394738ead4ca2792c4812c Mon Sep 17 00:00:00 2001 +From: xbmc +Date: Mon, 21 Jan 2013 09:00:19 +0100 +Subject: [PATCH 69/72] X11: remove toggle full screen after resume + +--- + xbmc/powermanagement/PowerManager.cpp | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/xbmc/powermanagement/PowerManager.cpp b/xbmc/powermanagement/PowerManager.cpp +index a5534c9..7e2ddc6 100644 +--- a/xbmc/powermanagement/PowerManager.cpp ++++ b/xbmc/powermanagement/PowerManager.cpp +@@ -223,11 +223,6 @@ void CPowerManager::OnWake() + #if defined(_WIN32) + ShowWindow(g_hWnd,SW_RESTORE); + SetForegroundWindow(g_hWnd); +-#elif !defined(TARGET_DARWIN_OSX) +- // Hack to reclaim focus, thus rehiding system mouse pointer. +- // Surely there's a better way? +- g_graphicsContext.ToggleFullScreenRoot(); +- g_graphicsContext.ToggleFullScreenRoot(); + #endif + } + g_application.ResetScreenSaver(); +-- +1.7.10 + + +From e8f3e20dfb3bde4434e2aea69b34e22ba1859a31 Mon Sep 17 00:00:00 2001 +From: xbmc +Date: Wed, 23 Jan 2013 17:03:02 +0100 +Subject: [PATCH 70/72] xrandr: set screen on mode change command + +--- + xbmc/windowing/X11/XRandR.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/windowing/X11/XRandR.cpp b/xbmc/windowing/X11/XRandR.cpp +index 7a16488..6531ba3 100644 +--- a/xbmc/windowing/X11/XRandR.cpp ++++ b/xbmc/windowing/X11/XRandR.cpp +@@ -246,7 +246,7 @@ bool CXRandR::SetMode(XOutput output, XMode mode) + m_currentMode = modeFound.id; + char cmd[255]; + if (getenv("XBMC_BIN_HOME")) +- snprintf(cmd, sizeof(cmd), "%s/xbmc-xrandr --output %s --mode %s", getenv("XBMC_BIN_HOME"), outputFound.name.c_str(), modeFound.id.c_str()); ++ snprintf(cmd, sizeof(cmd), "%s/xbmc-xrandr --screen %d --output %s --mode %s", getenv("XBMC_BIN_HOME"), outputFound.screen, outputFound.name.c_str(), modeFound.id.c_str()); + else + return false; + CLog::Log(LOGINFO, "XRANDR: %s", cmd); +-- +1.7.10 + + +From f229dba603070e1f0528d395c9d5d63f9044ae6e Mon Sep 17 00:00:00 2001 +From: xbmc +Date: Wed, 23 Jan 2013 17:03:39 +0100 +Subject: [PATCH 71/72] X11: recreate glx context when output changes + +--- + xbmc/windowing/X11/WinSystemX11.cpp | 6 +++--- + xbmc/windowing/X11/WinSystemX11.h | 2 +- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/xbmc/windowing/X11/WinSystemX11.cpp b/xbmc/windowing/X11/WinSystemX11.cpp +index e4e25b2..b87e264 100644 +--- a/xbmc/windowing/X11/WinSystemX11.cpp ++++ b/xbmc/windowing/X11/WinSystemX11.cpp +@@ -409,11 +409,11 @@ bool CWinSystemX11::IsSuitableVisual(XVisualInfo *vInfo) + return true; + } + +-bool CWinSystemX11::RefreshGlxContext() ++bool CWinSystemX11::RefreshGlxContext(bool force) + { + bool retVal = false; + +- if (m_glContext) ++ if (m_glContext && !force) + { + CLog::Log(LOGDEBUG, "CWinSystemX11::RefreshGlxContext: refreshing context"); + glXMakeCurrent(m_dpy, None, NULL); +@@ -930,7 +930,7 @@ bool CWinSystemX11::SetWindow(int width, int height, bool fullscreen, const CStd + } + + CDirtyRegionList dr; +- RefreshGlxContext(); ++ RefreshGlxContext(!m_currentOutput.Equals(output)); + XSync(m_dpy, FALSE); + g_graphicsContext.Clear(0); + g_graphicsContext.Flip(dr); +diff --git a/xbmc/windowing/X11/WinSystemX11.h b/xbmc/windowing/X11/WinSystemX11.h +index 0b7c10a..33b1739 100644 +--- a/xbmc/windowing/X11/WinSystemX11.h ++++ b/xbmc/windowing/X11/WinSystemX11.h +@@ -74,7 +74,7 @@ class CWinSystemX11 : public CWinSystemBase + void NotifyMouseCoverage(bool covered); + + protected: +- bool RefreshGlxContext(); ++ bool RefreshGlxContext(bool force); + void CheckDisplayEvents(); + void OnLostDevice(); + bool SetWindow(int width, int height, bool fullscreen, const CStdString &output); +-- +1.7.10 + + +From ae08a23a2f4fd78139e2ebca8a4a87ab619feb0b Mon Sep 17 00:00:00 2001 +From: xbmc +Date: Sun, 27 Jan 2013 12:10:19 +0100 +Subject: [PATCH 72/72] vdpau: switch off de-interlacing on ff + +--- + xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +index 8858614..3e21d9d 100644 +--- a/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp ++++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/VDPAU.cpp +@@ -2043,8 +2043,9 @@ void CMixer::InitCycle() + EINTERLACEMETHOD method = GetDeinterlacingMethod(); + bool interlaced = m_mixerInput[1].DVDPic.iFlags & DVP_FLAG_INTERLACED; + +- if (mode == VS_DEINTERLACEMODE_FORCE || +- (mode == VS_DEINTERLACEMODE_AUTO && interlaced)) ++ if (!(flags & DVP_FLAG_NO_POSTPROC) && ++ (mode == VS_DEINTERLACEMODE_FORCE || ++ (mode == VS_DEINTERLACEMODE_AUTO && interlaced))) + { + if((method == VS_INTERLACEMETHOD_AUTO && interlaced) + || method == VS_INTERLACEMETHOD_VDPAU_BOB +-- +1.7.10 + diff --git a/packages/mediacenter/xbmc/patches.x86/xbmc-809-add_keymapping_for_XF86XK_Sleep.patch b/packages/mediacenter/xbmc/patches.x86/xbmc-809-add_keymapping_for_XF86XK_Sleep.patch deleted file mode 100644 index 0491ea4e5c..0000000000 --- a/packages/mediacenter/xbmc/patches.x86/xbmc-809-add_keymapping_for_XF86XK_Sleep.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 61faa9f05d3d78a68c8a317420391eb77ae0ef7a Mon Sep 17 00:00:00 2001 -From: xbmc -Date: Thu, 17 Jan 2013 16:03:22 +0100 -Subject: [PATCH] X11: add keymapping for XF86XK_Sleep - ---- - xbmc/windowing/WinEventsX11.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/xbmc/windowing/WinEventsX11.cpp b/xbmc/windowing/WinEventsX11.cpp -index c31877e..ed31c04 100644 ---- a/xbmc/windowing/WinEventsX11.cpp -+++ b/xbmc/windowing/WinEventsX11.cpp -@@ -143,6 +143,7 @@ - , {XK_Break, XBMCK_BREAK} - , {XK_Menu, XBMCK_MENU} - , {XF86XK_PowerOff, XBMCK_POWER} -+, {XF86XK_Sleep, XBMCK_SLEEP} - , {XK_EcuSign, XBMCK_EURO} - , {XK_Undo, XBMCK_UNDO} - /* Media keys */ --- -1.7.10 - diff --git a/packages/mediacenter/xbmc/patches/xbmc-601-add_multithread_support_for_hi10p-0.1.patch b/packages/mediacenter/xbmc/patches/xbmc-601-add_multithread_support_for_hi10p-0.1.patch deleted file mode 100644 index 3b285fd152..0000000000 --- a/packages/mediacenter/xbmc/patches/xbmc-601-add_multithread_support_for_hi10p-0.1.patch +++ /dev/null @@ -1,107 +0,0 @@ -From ca0ddf0673dea966af5bf0bc562f9ff69a551cd9 Mon Sep 17 00:00:00 2001 -From: fritsch -Date: Sat, 12 Jan 2013 13:03:50 +0100 -Subject: [PATCH] dvdplayer: Allow multithread decoding for hi10p content by - default - -This allows decoding of some hi10p material on e.g. AMD Fusion with -both cores at the max. This introduces a new advancedsetting named -disablehi10pmultithreading to disable hi10p decoded multithreaded. ---- - .../DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp | 18 ++++++++++++++++-- - .../dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h | 1 + - xbmc/settings/AdvancedSettings.cpp | 2 ++ - xbmc/settings/AdvancedSettings.h | 1 + - 4 files changed, 20 insertions(+), 2 deletions(-) - -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -index 8f81637..77ac6b1 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.cpp -@@ -138,6 +138,7 @@ enum PixelFormat CDVDVideoCodecFFmpeg::GetFormat( struct AVCodecContext * avctx - m_iScreenHeight = 0; - m_iOrientation = 0; - m_bSoftware = false; -+ m_isHi10p = false; - m_pHardware = NULL; - m_iLastKeyframe = 0; - m_dts = DVD_NOPTS_VALUE; -@@ -187,7 +188,10 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options - case FF_PROFILE_H264_HIGH_444_PREDICTIVE: - case FF_PROFILE_H264_HIGH_444_INTRA: - case FF_PROFILE_H264_CAVLC_444: -+ // this is needed to not open the decoders - m_bSoftware = true; -+ // this we need to enable multithreading for hi10p via advancedsettings -+ m_isHi10p = true; - break; - } - } -@@ -247,8 +251,18 @@ bool CDVDVideoCodecFFmpeg::Open(CDVDStreamInfo &hints, CDVDCodecOptions &options - m_pCodecContext->codec_tag = hints.codec_tag; - /* Only allow slice threading, since frame threading is more - * sensitive to changes in frame sizes, and it causes crashes -- * during HW accell */ -- m_pCodecContext->thread_type = FF_THREAD_SLICE; -+ * during HW accell - so we unset it in this case. -+ * -+ * When we detect Hi10p and user did not disable hi10pmultithreading -+ * via advancedsettings.xml we keep the ffmpeg default thread type. -+ * */ -+ if(m_isHi10p && !g_advancedSettings.m_videoDisableHi10pMultithreading) -+ { -+ CLog::Log(LOGDEBUG,"CDVDVideoCodecFFmpeg::Open() Keep default threading for Hi10p: %d", -+ m_pCodecContext->thread_type); -+ } -+ else -+ m_pCodecContext->thread_type = FF_THREAD_SLICE; - - #if defined(TARGET_DARWIN_IOS) - // ffmpeg with enabled neon will crash and burn if this is enabled -diff --git a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h -index 61d0305..827b2d9 100644 ---- a/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h -+++ b/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.h -@@ -114,6 +114,7 @@ class CDVDVideoCodecFFmpeg : public CDVDVideoCodec - - std::string m_name; - bool m_bSoftware; -+ bool m_isHi10p; - IHardwareDecoder *m_pHardware; - int m_iLastKeyframe; - double m_dts; -diff --git a/xbmc/settings/AdvancedSettings.cpp b/xbmc/settings/AdvancedSettings.cpp -index 16800b7..1e0f3e0 100644 ---- a/xbmc/settings/AdvancedSettings.cpp -+++ b/xbmc/settings/AdvancedSettings.cpp -@@ -112,6 +112,7 @@ void CAdvancedSettings::Initialize() - m_DXVANoDeintProcForProgressive = false; - m_videoFpsDetect = 1; - m_videoDefaultLatency = 0.0; -+ m_videoDisableHi10pMultithreading = false; - - m_musicUseTimeSeeking = true; - m_musicTimeSeekForward = 10; -@@ -498,6 +499,7 @@ void CAdvancedSettings::ParseSettingsFile(const CStdString &file) - XMLUtils::GetBoolean(pElement,"enablehighqualityhwscalers", m_videoEnableHighQualityHwScalers); - XMLUtils::GetFloat(pElement,"autoscalemaxfps",m_videoAutoScaleMaxFps, 0.0f, 1000.0f); - XMLUtils::GetBoolean(pElement,"allowmpeg4vdpau",m_videoAllowMpeg4VDPAU); -+ XMLUtils::GetBoolean(pElement,"disablehi10pmultithreading",m_videoDisableHi10pMultithreading); - XMLUtils::GetBoolean(pElement,"allowmpeg4vaapi",m_videoAllowMpeg4VAAPI); - XMLUtils::GetBoolean(pElement, "disablebackgrounddeinterlace", m_videoDisableBackgroundDeinterlace); - XMLUtils::GetInt(pElement, "useocclusionquery", m_videoCaptureUseOcclusionQuery, -1, 1); -diff --git a/xbmc/settings/AdvancedSettings.h b/xbmc/settings/AdvancedSettings.h -index 27887d4..fc05e41 100644 ---- a/xbmc/settings/AdvancedSettings.h -+++ b/xbmc/settings/AdvancedSettings.h -@@ -164,6 +164,7 @@ class CAdvancedSettings - bool m_DXVAForceProcessorRenderer; - bool m_DXVANoDeintProcForProgressive; - int m_videoFpsDetect; -+ bool m_videoDisableHi10pMultithreading; - - CStdString m_videoDefaultPlayer; - CStdString m_videoDefaultDVDPlayer; --- -1.7.10 - From 2defc5f4bc9a378742f684e8c3744c603568e5ce Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Tue, 29 Jan 2013 19:59:36 +0400 Subject: [PATCH 28/86] revert b43 to wl for ATV users --- packages/linux-drivers/bcm_sta/build | 30 +++++++ packages/linux-drivers/bcm_sta/install | 33 ++++++++ packages/linux-drivers/bcm_sta/meta | 39 +++++++++ packages/linux-drivers/bcm_sta/need_unpack | 32 ++++++++ .../bcm_sta-5.100.82.112-001-license.patch | 21 +++++ .../bcm_sta-5.100.82.112-002-user-ioctl.patch | 29 +++++++ ...cm_sta-5.100.82.112-003-linux-recent.patch | 79 +++++++++++++++++++ ...m_sta-5.100.82.112-004-rename-device.patch | 26 ++++++ 8 files changed, 289 insertions(+) create mode 100755 packages/linux-drivers/bcm_sta/build create mode 100755 packages/linux-drivers/bcm_sta/install create mode 100644 packages/linux-drivers/bcm_sta/meta create mode 100755 packages/linux-drivers/bcm_sta/need_unpack create mode 100644 packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-001-license.patch create mode 100644 packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-002-user-ioctl.patch create mode 100644 packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-003-linux-recent.patch create mode 100644 packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-004-rename-device.patch diff --git a/packages/linux-drivers/bcm_sta/build b/packages/linux-drivers/bcm_sta/build new file mode 100755 index 0000000000..08f9b73866 --- /dev/null +++ b/packages/linux-drivers/bcm_sta/build @@ -0,0 +1,30 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# 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, 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 OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +. config/options $1 + +cd $PKG_BUILD + +[ "$TARGET_ARCH" = "i386" ] && cd x86-32 +[ "$TARGET_ARCH" = "x86_64" ] && cd x86-64 + +KBUILD_NOPEDANTIC=1 make V=1 CC=$CC -C $(kernel_path) M=`pwd` diff --git a/packages/linux-drivers/bcm_sta/install b/packages/linux-drivers/bcm_sta/install new file mode 100755 index 0000000000..c7a21304d2 --- /dev/null +++ b/packages/linux-drivers/bcm_sta/install @@ -0,0 +1,33 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# 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, 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 OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +. config/options $1 + +VER=`ls $BUILD/linux*/modules/lib/modules` + +mkdir -p $INSTALL/lib/modules/$VER/bcm_sta + if [ "$TARGET_ARCH" = "i386" ]; then + cp $PKG_BUILD/x86-32/wl.ko $INSTALL/lib/modules/$VER/bcm_sta + fi + if [ "$TARGET_ARCH" = "x86_64" ]; then + cp $PKG_BUILD/x86-64/wl.ko $INSTALL/lib/modules/$VER/bcm_sta + fi diff --git a/packages/linux-drivers/bcm_sta/meta b/packages/linux-drivers/bcm_sta/meta new file mode 100644 index 0000000000..763ab141f6 --- /dev/null +++ b/packages/linux-drivers/bcm_sta/meta @@ -0,0 +1,39 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# 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, 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 OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +PKG_NAME="bcm_sta" +PKG_VERSION="5.100.82.112" +PKG_REV="1" +PKG_ARCH="i386 x86_64" +PKG_LICENSE="nonfree" +PKG_SITE="http://www.broadcom.com/" +PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz" +PKG_DEPENDS="" +PKG_BUILD_DEPENDS="toolchain linux" +PKG_PRIORITY="optional" +PKG_SECTION="driver" +PKG_SHORTDESC="bcm_sta: Broadcom's BCM4311-, BCM4312-, BCM4313-, BCM4321-, BCM4322-, BCM43224-, and BCM43225-based WLAN driver" +PKG_LONGDESC="These packages contain Broadcom's IEEE 802.11a/b/g/n hybrid Linux® device driver for use with Broadcom's BCM4311-, BCM4312-, BCM4313-, BCM4321-, BCM4322-, BCM43224-, and BCM43225-based hardware. There are different tars for 32-bit and 64-bit x86 CPU architectures. Make sure that you download the appropriate tar because the hybrid binary file must be of the appropriate architecture type. The hybrid binary file is agnostic to the specific version of the Linux kernel because it is designed to perform all interactions with the operating system through operating-system-specific files and an operating system abstraction layer file. All Linux operating-system-specific code is provided in source form, making it possible to retarget to different kernel versions and fix operating system related issues." +PKG_IS_ADDON="no" + +PKG_AUTORECONF="no" + +# Downloadlocation: +# http://www.broadcom.com/support/802.11/linux_sta.php \ No newline at end of file diff --git a/packages/linux-drivers/bcm_sta/need_unpack b/packages/linux-drivers/bcm_sta/need_unpack new file mode 100755 index 0000000000..ed70b61127 --- /dev/null +++ b/packages/linux-drivers/bcm_sta/need_unpack @@ -0,0 +1,32 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# 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, 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 OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +. config/options $1 + +STAMP=$STAMPS/$1/unpack + +test $PKG_DIR/config/linux.$TARGET_ARCH.conf -nt $STAMP -o \ + $PROJECT_DIR/$PROJECT/linux/linux.$TARGET_ARCH.conf -nt $STAMP -o \ + $PKG_DIR/url -nt $STAMP -o \ + $PKG_DIR/meta -nt $STAMP && rm -f $STAMP + +exit 0 diff --git a/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-001-license.patch b/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-001-license.patch new file mode 100644 index 0000000000..e891a1180d --- /dev/null +++ b/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-001-license.patch @@ -0,0 +1,21 @@ +--- a/x86-32/src/wl/sys/wl_linux.c 2010-12-15 02:58:07.000000000 +0100 ++++ b/x86-32/src/wl/sys/wl_linux.c 2010-12-25 18:15:43.356676382 +0100 +@@ -240,6 +240,7 @@ + + static int nompc = 0; + module_param(nompc, int, 0); ++MODULE_LICENSE("Mixed/Proprietary"); + + #ifdef quote_str + #undef quote_str +--- a/x86-64/src/wl/sys/wl_linux.c 2010-12-15 02:58:07.000000000 +0100 ++++ b/x86-64/src/wl/sys/wl_linux.c 2010-12-25 18:15:43.356676382 +0100 +@@ -240,6 +240,7 @@ + + static int nompc = 0; + module_param(nompc, int, 0); ++MODULE_LICENSE("Mixed/Proprietary"); + + #ifdef quote_str + #undef quote_str + diff --git a/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-002-user-ioctl.patch b/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-002-user-ioctl.patch new file mode 100644 index 0000000000..76dc48a4cf --- /dev/null +++ b/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-002-user-ioctl.patch @@ -0,0 +1,29 @@ +--- a/x86-32/src/wl/sys/wl_cfg80211.c 2011-10-23 03:56:55.000000000 +1100 ++++ b/x86-32/src/wl/sys/wl_cfg80211.c 2012-05-24 18:43:17.324465658 +1000 +@@ -1466,7 +1466,10 @@ + scb_val.val = 0; + err = wl_dev_ioctl(dev, WLC_GET_RSSI, &scb_val, sizeof(scb_val_t)); + if (err) { +- WL_ERR(("Could not get rssi (%d)\n", err)); ++ if (err != -EINVAL) { ++ // Don't fill syslog with EINVAL error ++ WL_ERR(("Could not get rssi (%d)\n", err)); ++ } + return err; + } + rssi = dtoh32(scb_val.val); +--- a/x86-32/src/wl/sys/wl_linux.c 2011-10-23 03:56:55.000000000 +1100 ++++ b/x86-32/src/wl/sys/wl_linux.c 2012-05-24 18:43:17.324465658 +1000 +@@ -1579,11 +1579,7 @@ + } + + WL_LOCK(wl); +- if (!capable(CAP_NET_ADMIN)) { +- bcmerror = BCME_EPERM; +- } else { +- bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif); +- } ++ bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif); + WL_UNLOCK(wl); + + done1: diff --git a/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-003-linux-recent.patch b/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-003-linux-recent.patch new file mode 100644 index 0000000000..6037c1510c --- /dev/null +++ b/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-003-linux-recent.patch @@ -0,0 +1,79 @@ +--- a/x86-32/Makefile 2012-10-15 23:08:11.256904135 +1100 ++++ b/x86-32/Makefile 2012-10-15 23:08:18.970262327 +1100 +@@ -15,21 +15,9 @@ + + ifneq ($(KERNELRELEASE),) + +- LINUXVER_GOODFOR_CFG80211:=$(strip $(shell \ +- if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "32" ]; then \ +- echo TRUE; \ +- else \ +- echo FALSE; \ +- fi \ +- )) ++ LINUXVER_GOODFOR_CFG80211:=TRUE + +- LINUXVER_WEXT_ONLY:=$(strip $(shell \ +- if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "17" ]; then \ +- echo FALSE; \ +- else \ +- echo TRUE; \ +- fi \ +- )) ++ LINUXVER_WEXT_ONLY:=FALSE + + ifneq ($(API),) + ifeq ($(API), CFG80211) +--- a/x86-32/src/wl/sys/wl_cfg80211.c 2012-10-15 23:08:11.266904352 +1100 ++++ b/x86-32/src/wl/sys/wl_cfg80211.c 2012-10-15 23:08:32.313638398 +1100 +@@ -42,7 +42,7 @@ + enum nl80211_iftype type, u32 *flags, struct vif_params *params); + static s32 __wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev, + struct cfg80211_scan_request *request, struct cfg80211_ssid *this_ssid); +-static s32 wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev, ++static s32 wl_cfg80211_scan(struct wiphy *wiphy, + struct cfg80211_scan_request *request); + static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed); + static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev, +@@ -570,10 +570,12 @@ + } + + static s32 +-wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev, ++wl_cfg80211_scan(struct wiphy *wiphy, + struct cfg80211_scan_request *request) + { + s32 err = 0; ++ struct wl_priv *wl = wiphy_to_wl(wiphy); ++ struct net_device *ndev = wl_to_ndev(wl); + + CHECK_SYS_UP(); + err = __wl_cfg80211_scan(wiphy, ndev, request, NULL); +--- a/x86-32/src/wl/sys/wl_iw.h 2012-10-15 23:08:11.266904352 +1100 ++++ b/x86-32/src/wl/sys/wl_iw.h 2012-10-15 23:08:18.973595675 +1100 +@@ -15,6 +15,7 @@ + #ifndef _wl_iw_h_ + #define _wl_iw_h_ + ++#include + #include + + #include +--- a/x86-32/src/wl/sys/wl_linux.c 2012-10-15 23:08:11.266904352 +1100 ++++ b/x86-32/src/wl/sys/wl_linux.c 2012-10-15 23:08:18.973595675 +1100 +@@ -40,7 +40,6 @@ + #include + #define WLC_MAXBSSCFG 1 + +-#include + #include + #include + #include +@@ -385,7 +384,7 @@ + #endif + .ndo_get_stats = wl_get_stats, + .ndo_set_mac_address = wl_set_mac_address, +- .ndo_set_multicast_list = wl_set_multicast_list, ++ .ndo_set_rx_mode = wl_set_multicast_list, + .ndo_do_ioctl = wl_ioctl + }; diff --git a/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-004-rename-device.patch b/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-004-rename-device.patch new file mode 100644 index 0000000000..36d3d27288 --- /dev/null +++ b/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-004-rename-device.patch @@ -0,0 +1,26 @@ +diff -Naur bcm_sta-5.100.82.38/x86-32/src/wl/sys/wl_linux.c bcm_sta-5.100.82.38.patch/x86-32/src/wl/sys/wl_linux.c +--- bcm_sta-5.100.82.38/x86-32/src/wl/sys/wl_linux.c 2010-12-15 02:58:07.000000000 +0100 ++++ bcm_sta-5.100.82.38.patch/x86-32/src/wl/sys/wl_linux.c 2010-12-27 22:14:38.679428984 +0100 +@@ -251,7 +251,7 @@ + #define quote_str(s) to_str(s) + + #ifndef BRCM_WLAN_IFNAME +-#define BRCM_WLAN_IFNAME eth%d ++#define BRCM_WLAN_IFNAME wlan%d + #endif + + static char name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME); +diff -Naur bcm_sta-5.100.82.38/x86-32/src/wl/sys/wl_linux.c.orig bcm_sta-5.100.82.38.patch/x86-32/src/wl/sys/wl_linux.c.orig +diff -Naur bcm_sta-5.100.82.38/x86-64/src/wl/sys/wl_linux.c bcm_sta-5.100.82.38.patch/x86-64/src/wl/sys/wl_linux.c +--- bcm_sta-5.100.82.38/x86-64/src/wl/sys/wl_linux.c 2010-12-15 03:01:09.000000000 +0100 ++++ bcm_sta-5.100.82.38.patch/x86-64/src/wl/sys/wl_linux.c 2010-12-27 22:15:18.273865927 +0100 +@@ -251,7 +251,7 @@ + #define quote_str(s) to_str(s) + + #ifndef BRCM_WLAN_IFNAME +-#define BRCM_WLAN_IFNAME eth%d ++#define BRCM_WLAN_IFNAME wlan%d + #endif + + static char name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME); +diff -Naur bcm_sta-5.100.82.38/x86-64/src/wl/sys/wl_linux.c.orig bcm_sta-5.100.82.38.patch/x86-64/src/wl/sys/wl_linux.c.orig From 2c51355e7774aefed8e919d9cbc21f42c354683f Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Tue, 29 Jan 2013 20:24:00 +0400 Subject: [PATCH 29/86] remove b43 kernel config --- projects/ATV/linux/linux.i386.conf | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/projects/ATV/linux/linux.i386.conf b/projects/ATV/linux/linux.i386.conf index 5301805838..a6c4c54407 100644 --- a/projects/ATV/linux/linux.i386.conf +++ b/projects/ATV/linux/linux.i386.conf @@ -1309,15 +1309,15 @@ CONFIG_CARL9170=m CONFIG_CARL9170_LEDS=y CONFIG_CARL9170_WPC=y # CONFIG_ATH6KL is not set -CONFIG_B43=m -CONFIG_B43_SSB=y -CONFIG_B43_PCI_AUTOSELECT=y -CONFIG_B43_PCICORE_AUTOSELECT=y -CONFIG_B43_PIO=y -CONFIG_B43_PHY_N=y -CONFIG_B43_PHY_LP=y +# CONFIG_B43 is not set +# CONFIG_B43_SSB is not set +# CONFIG_B43_PCI_AUTOSELECT is not set +# CONFIG_B43_PCICORE_AUTOSELECT is not set +# CONFIG_B43_PIO is not set +# CONFIG_B43_PHY_N is not set +# CONFIG_B43_PHY_LP is not set # CONFIG_B43_PHY_HT is not set -CONFIG_B43_LEDS=y +# CONFIG_B43_LEDS is not set # CONFIG_B43_DEBUG is not set # CONFIG_B43LEGACY is not set # CONFIG_BRCMFMAC is not set From 4f05ddedaa18776c5fd5468b808686f6b099eb6d Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Tue, 29 Jan 2013 20:25:16 +0400 Subject: [PATCH 30/86] add bcm_sta to ATV drivers --- projects/ATV/options | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/ATV/options b/projects/ATV/options index 2207844b46..5432431588 100755 --- a/projects/ATV/options +++ b/projects/ATV/options @@ -161,7 +161,7 @@ # for a list of additinoal drivers see packages/linux-drivers # Space separated list is supported, # e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2" - ADDITIONAL_DRIVERS="RTL8192CU dvbhdhomerun" + ADDITIONAL_DRIVERS="RTL8192CU dvbhdhomerun bcm_sta" # build with network support (yes / no) NETWORK="yes" From fc78eb074ce3912a3dca555af00f8ecc76a252a5 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 29 Jan 2013 19:48:06 +0200 Subject: [PATCH 31/86] Python: install wsgiref. closes #1710 --- packages/lang/Python/build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/lang/Python/build b/packages/lang/Python/build index 06f2e57c99..44e1ee00e5 100755 --- a/packages/lang/Python/build +++ b/packages/lang/Python/build @@ -80,11 +80,11 @@ make -j1 CC="$TARGET_CC" \ sed -e "s|^LIBDIR=.*|LIBDIR= $SYSROOT_PREFIX/usr/lib|" \ -i $SYSROOT_PREFIX/usr/lib/python*/config/Makefile -EXCLUDE_DIRS="bsddb curses idlelib lib-tk lib2to3 msilib wsgiref" +EXCLUDE_DIRS="bsddb curses idlelib lib-tk lib2to3 msilib" INCLUDE_DIRS="compiler ctypes ctypes/macholib distutils distutils/command email" INCLUDE_DIRS="$INCLUDE_DIRS email/mime encodings hotshot importlib json logging" INCLUDE_DIRS="$INCLUDE_DIRS multiprocessing plat-linux2 sqlite3 xml xml/dom xml/etree" -INCLUDE_DIRS="$INCLUDE_DIRS xml/parsers xml/sax" +INCLUDE_DIRS="$INCLUDE_DIRS xml/parsers xml/sax wsgiref" mkdir -p ./Lib cp ../Lib/*.py ./Lib From a78774bbb06a3b72ae3ef68001f4288dabdab628 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 30 Jan 2013 03:56:55 +0100 Subject: [PATCH 32/86] projects/Fusion/linux: add ACPI_CPUFREQ driver, which replaces the POWERNOW_K8 driver, this fixes #1815 Signed-off-by: Stephan Raue --- projects/Fusion/linux/linux.i386.conf | 7 ++++--- projects/Fusion/linux/linux.x86_64.conf | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/projects/Fusion/linux/linux.i386.conf b/projects/Fusion/linux/linux.i386.conf index 2f3692e776..9b67bb9f91 100644 --- a/projects/Fusion/linux/linux.i386.conf +++ b/projects/Fusion/linux/linux.i386.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/i386 3.7.3 Kernel Configuration +# Linux/i386 3.7.5 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y @@ -506,10 +506,11 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y # x86 CPU frequency scaling drivers # # CONFIG_X86_PCC_CPUFREQ is not set -# CONFIG_X86_ACPI_CPUFREQ is not set +CONFIG_X86_ACPI_CPUFREQ=y +CONFIG_X86_ACPI_CPUFREQ_CPB=y # CONFIG_X86_POWERNOW_K6 is not set # CONFIG_X86_POWERNOW_K7 is not set -CONFIG_X86_POWERNOW_K8=y +# CONFIG_X86_POWERNOW_K8 is not set # CONFIG_X86_GX_SUSPMOD is not set # CONFIG_X86_SPEEDSTEP_CENTRINO is not set # CONFIG_X86_SPEEDSTEP_ICH is not set diff --git a/projects/Fusion/linux/linux.x86_64.conf b/projects/Fusion/linux/linux.x86_64.conf index 4e972e3c08..adc689497d 100644 --- a/projects/Fusion/linux/linux.x86_64.conf +++ b/projects/Fusion/linux/linux.x86_64.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86_64 3.7.4 Kernel Configuration +# Linux/x86_64 3.7.5 Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -478,8 +478,9 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y # x86 CPU frequency scaling drivers # # CONFIG_X86_PCC_CPUFREQ is not set -# CONFIG_X86_ACPI_CPUFREQ is not set -CONFIG_X86_POWERNOW_K8=y +CONFIG_X86_ACPI_CPUFREQ=y +CONFIG_X86_ACPI_CPUFREQ_CPB=y +# CONFIG_X86_POWERNOW_K8 is not set # CONFIG_X86_SPEEDSTEP_CENTRINO is not set # CONFIG_X86_P4_CLOCKMOD is not set From 52d73089f2dcd6cb41c4474c90ba9caa1764ac6f Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 30 Jan 2013 04:13:13 +0100 Subject: [PATCH 33/86] projects/*/linux: add Realtek PSTOR PCIe Cardreader support, this should fix #1798 Signed-off-by: Stephan Raue --- projects/Fusion/linux/linux.i386.conf | 3 ++- projects/Generic/linux/linux.i386.conf | 3 ++- projects/Generic_OSS/linux/linux.i386.conf | 3 ++- projects/ION/linux/linux.i386.conf | 3 ++- projects/ION/linux/linux.x86_64.conf | 3 ++- projects/Intel/linux/linux.i386.conf | 3 ++- projects/Intel/linux/linux.x86_64.conf | 3 ++- projects/Virtual/linux/linux.i386.conf | 3 ++- projects/Virtual/linux/linux.x86_64.conf | 3 ++- 9 files changed, 18 insertions(+), 9 deletions(-) diff --git a/projects/Fusion/linux/linux.i386.conf b/projects/Fusion/linux/linux.i386.conf index 9b67bb9f91..b0f9f4b0e4 100644 --- a/projects/Fusion/linux/linux.i386.conf +++ b/projects/Fusion/linux/linux.i386.conf @@ -2981,7 +2981,8 @@ CONFIG_R8187SE=m CONFIG_RTL8192U=m # CONFIG_RTLLIB is not set CONFIG_R8712U=m -# CONFIG_RTS_PSTOR is not set +CONFIG_RTS_PSTOR=m +# CONFIG_RTS_PSTOR_DEBUG is not set CONFIG_RTS5139=m # CONFIG_RTS5139_DEBUG is not set # CONFIG_TRANZPORT is not set diff --git a/projects/Generic/linux/linux.i386.conf b/projects/Generic/linux/linux.i386.conf index 4479df2f7d..43c8dfe53f 100644 --- a/projects/Generic/linux/linux.i386.conf +++ b/projects/Generic/linux/linux.i386.conf @@ -3153,7 +3153,8 @@ CONFIG_R8187SE=m CONFIG_RTL8192U=m # CONFIG_RTLLIB is not set CONFIG_R8712U=m -# CONFIG_RTS_PSTOR is not set +CONFIG_RTS_PSTOR=m +# CONFIG_RTS_PSTOR_DEBUG is not set CONFIG_RTS5139=m # CONFIG_RTS5139_DEBUG is not set # CONFIG_TRANZPORT is not set diff --git a/projects/Generic_OSS/linux/linux.i386.conf b/projects/Generic_OSS/linux/linux.i386.conf index 1fc2313d55..8eca4a51fe 100644 --- a/projects/Generic_OSS/linux/linux.i386.conf +++ b/projects/Generic_OSS/linux/linux.i386.conf @@ -3156,7 +3156,8 @@ CONFIG_R8187SE=m CONFIG_RTL8192U=m # CONFIG_RTLLIB is not set CONFIG_R8712U=m -# CONFIG_RTS_PSTOR is not set +CONFIG_RTS_PSTOR=m +# CONFIG_RTS_PSTOR_DEBUG is not set CONFIG_RTS5139=m # CONFIG_RTS5139_DEBUG is not set # CONFIG_TRANZPORT is not set diff --git a/projects/ION/linux/linux.i386.conf b/projects/ION/linux/linux.i386.conf index 3a23bab78f..3f950bf03e 100644 --- a/projects/ION/linux/linux.i386.conf +++ b/projects/ION/linux/linux.i386.conf @@ -2977,7 +2977,8 @@ CONFIG_R8187SE=m CONFIG_RTL8192U=m # CONFIG_RTLLIB is not set CONFIG_R8712U=m -# CONFIG_RTS_PSTOR is not set +CONFIG_RTS_PSTOR=m +# CONFIG_RTS_PSTOR_DEBUG is not set CONFIG_RTS5139=m # CONFIG_RTS5139_DEBUG is not set # CONFIG_TRANZPORT is not set diff --git a/projects/ION/linux/linux.x86_64.conf b/projects/ION/linux/linux.x86_64.conf index b67a437723..92d84c80b6 100644 --- a/projects/ION/linux/linux.x86_64.conf +++ b/projects/ION/linux/linux.x86_64.conf @@ -2903,7 +2903,8 @@ CONFIG_R8187SE=m CONFIG_RTL8192U=m # CONFIG_RTLLIB is not set CONFIG_R8712U=m -# CONFIG_RTS_PSTOR is not set +CONFIG_RTS_PSTOR=m +# CONFIG_RTS_PSTOR_DEBUG is not set CONFIG_RTS5139=m # CONFIG_RTS5139_DEBUG is not set # CONFIG_TRANZPORT is not set diff --git a/projects/Intel/linux/linux.i386.conf b/projects/Intel/linux/linux.i386.conf index 479800c606..8d3a15509c 100644 --- a/projects/Intel/linux/linux.i386.conf +++ b/projects/Intel/linux/linux.i386.conf @@ -3024,7 +3024,8 @@ CONFIG_R8187SE=m CONFIG_RTL8192U=m # CONFIG_RTLLIB is not set CONFIG_R8712U=m -# CONFIG_RTS_PSTOR is not set +CONFIG_RTS_PSTOR=m +# CONFIG_RTS_PSTOR_DEBUG is not set CONFIG_RTS5139=m # CONFIG_RTS5139_DEBUG is not set # CONFIG_TRANZPORT is not set diff --git a/projects/Intel/linux/linux.x86_64.conf b/projects/Intel/linux/linux.x86_64.conf index 90dc83e016..942bb66804 100644 --- a/projects/Intel/linux/linux.x86_64.conf +++ b/projects/Intel/linux/linux.x86_64.conf @@ -2951,7 +2951,8 @@ CONFIG_R8187SE=m CONFIG_RTL8192U=m # CONFIG_RTLLIB is not set CONFIG_R8712U=m -# CONFIG_RTS_PSTOR is not set +CONFIG_RTS_PSTOR=m +# CONFIG_RTS_PSTOR_DEBUG is not set CONFIG_RTS5139=m # CONFIG_RTS5139_DEBUG is not set # CONFIG_TRANZPORT is not set diff --git a/projects/Virtual/linux/linux.i386.conf b/projects/Virtual/linux/linux.i386.conf index be7ee24075..12e12cc8a6 100644 --- a/projects/Virtual/linux/linux.i386.conf +++ b/projects/Virtual/linux/linux.i386.conf @@ -3029,7 +3029,8 @@ CONFIG_R8187SE=m CONFIG_RTL8192U=m # CONFIG_RTLLIB is not set CONFIG_R8712U=m -# CONFIG_RTS_PSTOR is not set +CONFIG_RTS_PSTOR=m +# CONFIG_RTS_PSTOR_DEBUG is not set CONFIG_RTS5139=m # CONFIG_RTS5139_DEBUG is not set # CONFIG_TRANZPORT is not set diff --git a/projects/Virtual/linux/linux.x86_64.conf b/projects/Virtual/linux/linux.x86_64.conf index 15a6d55c50..91a757b942 100644 --- a/projects/Virtual/linux/linux.x86_64.conf +++ b/projects/Virtual/linux/linux.x86_64.conf @@ -2955,7 +2955,8 @@ CONFIG_R8187SE=m CONFIG_RTL8192U=m # CONFIG_RTLLIB is not set CONFIG_R8712U=m -# CONFIG_RTS_PSTOR is not set +CONFIG_RTS_PSTOR=m +# CONFIG_RTS_PSTOR_DEBUG is not set CONFIG_RTS5139=m # CONFIG_RTS5139_DEBUG is not set # CONFIG_TRANZPORT is not set From a581aee4cc230ade82622b5e62f6f7de914b2ae8 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 30 Jan 2013 05:39:32 +0100 Subject: [PATCH 34/86] linux: add patch to disable XBOX controller PIDs which are supported by lirc Signed-off-by: Stephan Raue --- .../patches/linux-059-remove_some_xpad_pids.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 packages/linux/patches/linux-059-remove_some_xpad_pids.patch diff --git a/packages/linux/patches/linux-059-remove_some_xpad_pids.patch b/packages/linux/patches/linux-059-remove_some_xpad_pids.patch new file mode 100644 index 0000000000..93c94d2e39 --- /dev/null +++ b/packages/linux/patches/linux-059-remove_some_xpad_pids.patch @@ -0,0 +1,11 @@ +diff -Naur linux-3.7.5/drivers/input/joystick/xpad.c linux-3.7.5.patch/drivers/input/joystick/xpad.c +--- linux-3.7.5/drivers/input/joystick/xpad.c 2013-01-28 05:50:55.000000000 +0100 ++++ linux-3.7.5.patch/drivers/input/joystick/xpad.c 2013-01-30 05:14:21.434759231 +0100 +@@ -166,7 +166,6 @@ + { 0x0f0d, 0x0016, "Hori Real Arcade Pro.EX", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, + { 0x0f0d, 0x000d, "Hori Fighting Stick EX2", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, + { 0x1689, 0xfd00, "Razer Onza Tournament Edition", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360 }, +- { 0xffff, 0xffff, "Chinese-made Xbox Controller", 0, XTYPE_XBOX }, + { 0x0000, 0x0000, "Generic X-Box pad", 0, XTYPE_UNKNOWN } + }; + From 38ee662107f3c50de6bd07f632a2243ba4e441cf Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 30 Jan 2013 05:42:00 +0100 Subject: [PATCH 35/86] projects/*/linux: reenable xpad driver, this should fix #1814 Signed-off-by: Stephan Raue --- projects/ARCTIC_MC/linux/linux.x86_64.conf | 4 +++- projects/ATV/linux/linux.i386.conf | 4 +++- projects/Fusion/linux/linux.i386.conf | 4 +++- projects/Fusion/linux/linux.x86_64.conf | 7 +++++-- projects/Generic/linux/linux.i386.conf | 4 +++- projects/Generic_OSS/linux/linux.i386.conf | 4 +++- projects/ION/linux/linux.i386.conf | 4 +++- projects/ION/linux/linux.x86_64.conf | 4 +++- projects/Intel/linux/linux.i386.conf | 4 +++- projects/Intel/linux/linux.x86_64.conf | 4 +++- projects/Ultra/linux/linux.x86_64.conf | 4 +++- projects/Virtual/linux/linux.i386.conf | 4 +++- projects/Virtual/linux/linux.x86_64.conf | 4 +++- 13 files changed, 41 insertions(+), 14 deletions(-) diff --git a/projects/ARCTIC_MC/linux/linux.x86_64.conf b/projects/ARCTIC_MC/linux/linux.x86_64.conf index 5622d097bb..1974941d1a 100644 --- a/projects/ARCTIC_MC/linux/linux.x86_64.conf +++ b/projects/ARCTIC_MC/linux/linux.x86_64.conf @@ -1364,7 +1364,9 @@ CONFIG_INPUT_JOYSTICK=y # CONFIG_JOYSTICK_ZHENHUA is not set # CONFIG_JOYSTICK_AS5011 is not set # CONFIG_JOYSTICK_JOYDUMP is not set -# CONFIG_JOYSTICK_XPAD is not set +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y diff --git a/projects/ATV/linux/linux.i386.conf b/projects/ATV/linux/linux.i386.conf index a6c4c54407..5570292849 100644 --- a/projects/ATV/linux/linux.i386.conf +++ b/projects/ATV/linux/linux.i386.conf @@ -1431,7 +1431,9 @@ CONFIG_INPUT_JOYSTICK=y # CONFIG_JOYSTICK_ZHENHUA is not set # CONFIG_JOYSTICK_AS5011 is not set # CONFIG_JOYSTICK_JOYDUMP is not set -# CONFIG_JOYSTICK_XPAD is not set +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y diff --git a/projects/Fusion/linux/linux.i386.conf b/projects/Fusion/linux/linux.i386.conf index b0f9f4b0e4..83f5c49acd 100644 --- a/projects/Fusion/linux/linux.i386.conf +++ b/projects/Fusion/linux/linux.i386.conf @@ -1495,7 +1495,9 @@ CONFIG_INPUT_JOYSTICK=y # CONFIG_JOYSTICK_ZHENHUA is not set # CONFIG_JOYSTICK_AS5011 is not set # CONFIG_JOYSTICK_JOYDUMP is not set -# CONFIG_JOYSTICK_XPAD is not set +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y diff --git a/projects/Fusion/linux/linux.x86_64.conf b/projects/Fusion/linux/linux.x86_64.conf index adc689497d..c555c3ec4d 100644 --- a/projects/Fusion/linux/linux.x86_64.conf +++ b/projects/Fusion/linux/linux.x86_64.conf @@ -1454,7 +1454,9 @@ CONFIG_INPUT_JOYSTICK=y # CONFIG_JOYSTICK_ZHENHUA is not set # CONFIG_JOYSTICK_AS5011 is not set # CONFIG_JOYSTICK_JOYDUMP is not set -# CONFIG_JOYSTICK_XPAD is not set +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y @@ -2925,7 +2927,8 @@ CONFIG_R8187SE=m CONFIG_RTL8192U=m # CONFIG_RTLLIB is not set CONFIG_R8712U=m -# CONFIG_RTS_PSTOR is not set +CONFIG_RTS_PSTOR=m +# CONFIG_RTS_PSTOR_DEBUG is not set CONFIG_RTS5139=m # CONFIG_RTS5139_DEBUG is not set # CONFIG_TRANZPORT is not set diff --git a/projects/Generic/linux/linux.i386.conf b/projects/Generic/linux/linux.i386.conf index 43c8dfe53f..1946a92c6e 100644 --- a/projects/Generic/linux/linux.i386.conf +++ b/projects/Generic/linux/linux.i386.conf @@ -1578,7 +1578,9 @@ CONFIG_INPUT_JOYSTICK=y # CONFIG_JOYSTICK_ZHENHUA is not set # CONFIG_JOYSTICK_AS5011 is not set # CONFIG_JOYSTICK_JOYDUMP is not set -# CONFIG_JOYSTICK_XPAD is not set +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y diff --git a/projects/Generic_OSS/linux/linux.i386.conf b/projects/Generic_OSS/linux/linux.i386.conf index 8eca4a51fe..7a850c37ae 100644 --- a/projects/Generic_OSS/linux/linux.i386.conf +++ b/projects/Generic_OSS/linux/linux.i386.conf @@ -1576,7 +1576,9 @@ CONFIG_INPUT_JOYSTICK=y # CONFIG_JOYSTICK_ZHENHUA is not set # CONFIG_JOYSTICK_AS5011 is not set # CONFIG_JOYSTICK_JOYDUMP is not set -# CONFIG_JOYSTICK_XPAD is not set +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y diff --git a/projects/ION/linux/linux.i386.conf b/projects/ION/linux/linux.i386.conf index 3f950bf03e..2c81c67b34 100644 --- a/projects/ION/linux/linux.i386.conf +++ b/projects/ION/linux/linux.i386.conf @@ -1501,7 +1501,9 @@ CONFIG_INPUT_JOYSTICK=y # CONFIG_JOYSTICK_ZHENHUA is not set # CONFIG_JOYSTICK_AS5011 is not set # CONFIG_JOYSTICK_JOYDUMP is not set -# CONFIG_JOYSTICK_XPAD is not set +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y diff --git a/projects/ION/linux/linux.x86_64.conf b/projects/ION/linux/linux.x86_64.conf index 92d84c80b6..c88c50f7b7 100644 --- a/projects/ION/linux/linux.x86_64.conf +++ b/projects/ION/linux/linux.x86_64.conf @@ -1443,7 +1443,9 @@ CONFIG_INPUT_JOYSTICK=y # CONFIG_JOYSTICK_ZHENHUA is not set # CONFIG_JOYSTICK_AS5011 is not set # CONFIG_JOYSTICK_JOYDUMP is not set -# CONFIG_JOYSTICK_XPAD is not set +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y diff --git a/projects/Intel/linux/linux.i386.conf b/projects/Intel/linux/linux.i386.conf index 8d3a15509c..9e50109638 100644 --- a/projects/Intel/linux/linux.i386.conf +++ b/projects/Intel/linux/linux.i386.conf @@ -1519,7 +1519,9 @@ CONFIG_INPUT_JOYSTICK=y # CONFIG_JOYSTICK_ZHENHUA is not set # CONFIG_JOYSTICK_AS5011 is not set # CONFIG_JOYSTICK_JOYDUMP is not set -# CONFIG_JOYSTICK_XPAD is not set +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y diff --git a/projects/Intel/linux/linux.x86_64.conf b/projects/Intel/linux/linux.x86_64.conf index 942bb66804..af57a14d86 100644 --- a/projects/Intel/linux/linux.x86_64.conf +++ b/projects/Intel/linux/linux.x86_64.conf @@ -1462,7 +1462,9 @@ CONFIG_INPUT_JOYSTICK=y # CONFIG_JOYSTICK_ZHENHUA is not set # CONFIG_JOYSTICK_AS5011 is not set # CONFIG_JOYSTICK_JOYDUMP is not set -# CONFIG_JOYSTICK_XPAD is not set +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y diff --git a/projects/Ultra/linux/linux.x86_64.conf b/projects/Ultra/linux/linux.x86_64.conf index c17c03a583..f2e3e58381 100644 --- a/projects/Ultra/linux/linux.x86_64.conf +++ b/projects/Ultra/linux/linux.x86_64.conf @@ -1366,7 +1366,9 @@ CONFIG_INPUT_JOYSTICK=y # CONFIG_JOYSTICK_ZHENHUA is not set # CONFIG_JOYSTICK_AS5011 is not set # CONFIG_JOYSTICK_JOYDUMP is not set -# CONFIG_JOYSTICK_XPAD is not set +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y diff --git a/projects/Virtual/linux/linux.i386.conf b/projects/Virtual/linux/linux.i386.conf index 12e12cc8a6..ad75b2f3f8 100644 --- a/projects/Virtual/linux/linux.i386.conf +++ b/projects/Virtual/linux/linux.i386.conf @@ -1521,7 +1521,9 @@ CONFIG_INPUT_JOYSTICK=y # CONFIG_JOYSTICK_ZHENHUA is not set # CONFIG_JOYSTICK_AS5011 is not set # CONFIG_JOYSTICK_JOYDUMP is not set -# CONFIG_JOYSTICK_XPAD is not set +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y diff --git a/projects/Virtual/linux/linux.x86_64.conf b/projects/Virtual/linux/linux.x86_64.conf index 91a757b942..1127dbf4fb 100644 --- a/projects/Virtual/linux/linux.x86_64.conf +++ b/projects/Virtual/linux/linux.x86_64.conf @@ -1463,7 +1463,9 @@ CONFIG_INPUT_JOYSTICK=y # CONFIG_JOYSTICK_ZHENHUA is not set # CONFIG_JOYSTICK_AS5011 is not set # CONFIG_JOYSTICK_JOYDUMP is not set -# CONFIG_JOYSTICK_XPAD is not set +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y From 52e8b1e9c7341f22289c440e61b4752000bc95c7 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 30 Jan 2013 06:23:39 +0100 Subject: [PATCH 36/86] Revert "bluez: rework install script, install some tools to release build" This reverts commit 3f796d5d855000c681aa2f122ee3ce731773928f. --- packages/network/bluez/build | 2 +- packages/network/bluez/install | 54 ++++++++++++++-------------------- 2 files changed, 23 insertions(+), 33 deletions(-) diff --git a/packages/network/bluez/build b/packages/network/bluez/build index 133e8152f3..1c9f9c300c 100755 --- a/packages/network/bluez/build +++ b/packages/network/bluez/build @@ -31,7 +31,7 @@ fi if [ "$DEVTOOLS" = "yes" ]; then DEVTOOLS_CONFIG="--enable-monitor --enable-test --enable-tools" else - DEVTOOLS_CONFIG="--disable-monitor --disable-test --enable-tools" + DEVTOOLS_CONFIG="--disable-monitor --disable-test --disable-tools" fi cd $PKG_BUILD diff --git a/packages/network/bluez/install b/packages/network/bluez/install index 70ab26b61c..61218f9d25 100755 --- a/packages/network/bluez/install +++ b/packages/network/bluez/install @@ -25,45 +25,35 @@ mkdir -p $INSTALL/etc/dbus-1/system.d cp $PKG_BUILD/src/bluetooth.conf $INSTALL/etc/dbus-1/system.d -mkdir -p $INSTALL/usr/lib/bluetooth - cp $PKG_BUILD/src/bluetoothd $INSTALL/usr/lib/bluetooth - cp $PKG_BUILD/obexd/src/obexd $INSTALL/usr/lib/bluetooth +mkdir -p $INSTALL/lib/udev + cp $PKG_BUILD/tools/hid2hci $INSTALL/lib/udev + +mkdir -p $INSTALL/lib/udev/rules.d + cp $PKG_BUILD/tools/97-hid2hci.rules $INSTALL/lib/udev/rules.d mkdir -p $INSTALL/usr/lib cp -P $PKG_BUILD/lib/.libs/libbluetooth.so* $INSTALL/usr/lib -# client - mkdir -p $INSTALL/usr/bin - cp $PKG_BUILD/client/bluetoothctl $INSTALL/usr/bin - -# tools - mkdir -p $INSTALL/lib/udev - cp $PKG_BUILD/tools/hid2hci $INSTALL/lib/udev - - mkdir -p $INSTALL/lib/udev/rules.d - cp $PKG_BUILD/tools/97-hid2hci.rules $INSTALL/lib/udev/rules.d - - mkdir -p $INSTALL/usr/bin - cp $PKG_BUILD/tools/bccmd $INSTALL/usr/bin - cp $PKG_BUILD/tools/ciptool $INSTALL/usr/bin - cp $PKG_BUILD/tools/hciattach $INSTALL/usr/bin - cp $PKG_BUILD/tools/hciconfig $INSTALL/usr/bin - cp $PKG_BUILD/tools/hcidump $INSTALL/usr/bin - cp $PKG_BUILD/tools/hcitool $INSTALL/usr/bin - cp $PKG_BUILD/tools/l2ping $INSTALL/usr/bin - cp $PKG_BUILD/tools/l2test $INSTALL/usr/bin - cp $PKG_BUILD/tools/rctest $INSTALL/usr/bin - cp $PKG_BUILD/tools/rfcomm $INSTALL/usr/bin - cp $PKG_BUILD/tools/sdptool $INSTALL/usr/bin - -# test +mkdir -p $INSTALL/usr/lib/bluetooth + cp $PKG_BUILD/src/bluetoothd $INSTALL/usr/lib/bluetooth + cp $PKG_BUILD/obexd/src/obexd $INSTALL/usr/lib/bluetooth if [ "$DEVTOOLS" = "yes" ]; then -# monitor - mkdir -p $INSTALL/usr/bin - cp $PKG_BUILD/monitor/btmon $INSTALL/usr/bin +mkdir -p $INSTALL/usr/bin + cp $PKG_BUILD/tools/bccmd $INSTALL/usr/bin + cp $PKG_BUILD/client/bluetoothctl $INSTALL/usr/bin + cp $PKG_BUILD/monitor/btmon $INSTALL/usr/bin + cp $PKG_BUILD/tools/ciptool $INSTALL/usr/bin + cp $PKG_BUILD/tools/hciattach $INSTALL/usr/bin + cp $PKG_BUILD/tools/hciconfig $INSTALL/usr/bin + cp $PKG_BUILD/tools/hcidump $INSTALL/usr/bin + cp $PKG_BUILD/tools/hcitool $INSTALL/usr/bin + cp $PKG_BUILD/tools/l2ping $INSTALL/usr/bin + cp $PKG_BUILD/tools/l2test $INSTALL/usr/bin + cp $PKG_BUILD/tools/rctest $INSTALL/usr/bin + cp $PKG_BUILD/tools/rfcomm $INSTALL/usr/bin + cp $PKG_BUILD/tools/sdptool $INSTALL/usr/bin -# test mkdir -p $INSTALL/usr/lib/bluez/test cp -P $PKG_BUILD/test/* $INSTALL/usr/lib/bluez/test chmod +x $INSTALL/usr/lib/bluez/test/* From 617d5bfc45965d1a11a091486f278f45c856c425 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 30 Jan 2013 06:23:52 +0100 Subject: [PATCH 37/86] Revert "bluez: build depend on 'readline'" This reverts commit ef1dc59246da91a9bdc78b6054e96fc06edd188d. --- packages/network/bluez/meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/network/bluez/meta b/packages/network/bluez/meta index 233586be2e..8558547642 100644 --- a/packages/network/bluez/meta +++ b/packages/network/bluez/meta @@ -26,7 +26,7 @@ PKG_LICENSE="GPL" PKG_SITE="http://www.bluez.org/" PKG_URL="http://www.kernel.org/pub/linux/bluetooth/$PKG_NAME-$PKG_VERSION.tar.xz" PKG_DEPENDS="libusb-compat dbus glib systemd" -PKG_BUILD_DEPENDS="toolchain libusb-compat dbus glib systemd readline" +PKG_BUILD_DEPENDS="toolchain libusb-compat dbus glib systemd" PKG_PRIORITY="optional" PKG_SECTION="network" PKG_SHORTDESC="bluez: Bluetooth Tools and System Daemons for Linux." From bd1fe46897408d4722df18a23429245aef031e2c Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 30 Jan 2013 06:24:03 +0100 Subject: [PATCH 38/86] Revert "bluez: add init script and udev rule (needs rework)" This reverts commit 6e5d304a3f63280bdfccad3b994b91a1fff0972b. --- packages/network/bluez/init.d/22_bluez | 27 ------------------- .../network/bluez/udev.d/09-bluetooth.rules | 6 ----- 2 files changed, 33 deletions(-) delete mode 100644 packages/network/bluez/init.d/22_bluez delete mode 100644 packages/network/bluez/udev.d/09-bluetooth.rules diff --git a/packages/network/bluez/init.d/22_bluez b/packages/network/bluez/init.d/22_bluez deleted file mode 100644 index 92aa14170a..0000000000 --- a/packages/network/bluez/init.d/22_bluez +++ /dev/null @@ -1,27 +0,0 @@ -################################################################################ -# Copyright (C) 2009-2010 OpenELEC.tv -# http://www.openelec.tv -# -# 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, 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 OpenELEC.tv; see the file COPYING. If not, write to -# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. -# http://www.gnu.org/copyleft/gpl.html -################################################################################ - -# starting Bluetooth -# -# runlevels: openelec, textmode - -# starting Bluetooth manager - progress "starting Bluetooth manager" - /usr/lib/bluetooth/bluetoothd > /dev/null 2>&1 & diff --git a/packages/network/bluez/udev.d/09-bluetooth.rules b/packages/network/bluez/udev.d/09-bluetooth.rules deleted file mode 100644 index 7aa0a38d29..0000000000 --- a/packages/network/bluez/udev.d/09-bluetooth.rules +++ /dev/null @@ -1,6 +0,0 @@ -ACTION!="add|change", GOTO="end" - -KERNEL=="hci[0-9]*", SUBSYSTEM=="bluetooth", RUN+="/usr/bin/hciconfig %k up" -KERNEL=="hci[0-9]*", SUBSYSTEM=="bluetooth", RUN+="/usr/bin/hciconfig %k lm master" - -LABEL="end" From b612271f7f659780d6dcbf70a2a2abd4da9ae606 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 30 Jan 2013 06:24:12 +0100 Subject: [PATCH 39/86] Revert "bluez: update to bluez-5.1" This reverts commit d5e294aaa5b4fe4aaf2f257ff638ec0fde446ff4. --- packages/network/bluez/build | 47 +++++++++---- packages/network/bluez/config/main.conf | 66 +++++++++++++++++++ packages/network/bluez/install | 62 +++++++++++------ packages/network/bluez/meta | 2 +- .../patches/bluez-4.99-automake_1.13.patch | 12 ++++ .../bluez/patches/bluez-4.99-systemd.patch | 15 +++++ .../network/bluez/udev.d/09-bluetooth.rules | 6 ++ 7 files changed, 177 insertions(+), 33 deletions(-) create mode 100644 packages/network/bluez/config/main.conf create mode 100644 packages/network/bluez/patches/bluez-4.99-automake_1.13.patch create mode 100644 packages/network/bluez/patches/bluez-4.99-systemd.patch create mode 100644 packages/network/bluez/udev.d/09-bluetooth.rules diff --git a/packages/network/bluez/build b/packages/network/bluez/build index 1c9f9c300c..67668175df 100755 --- a/packages/network/bluez/build +++ b/packages/network/bluez/build @@ -22,17 +22,22 @@ . config/options +if [ "$ALSA_SUPPORT" = "yes" ]; then + BLUEZ_ALSA="--enable-audio --enable-alsa" +else + BLUEZ_ALSA="--disable-audio --disable-alsa" +fi + if [ "$DEBUG" = "yes" ]; then DEBUG_CONFIG="--enable-debug" else DEBUG_CONFIG="--disable-debug" fi - if [ "$DEVTOOLS" = "yes" ]; then - DEVTOOLS_CONFIG="--enable-monitor --enable-test --enable-tools" + DEVTOOLS_CONFIG="--enable-bccmd --enable-tools" else - DEVTOOLS_CONFIG="--disable-monitor --disable-test --disable-tools" -fi + DEVTOOLS_CONFIG="--disable-bccmd --disable-tools" +fi cd $PKG_BUILD ./configure --host=$TARGET_NAME \ @@ -45,18 +50,38 @@ cd $PKG_BUILD --disable-silent-rules \ --enable-shared \ --disable-static \ - --enable-library \ + --enable-optimization \ + --enable-fortify \ + --disable-pie \ + --enable-network \ + --disable-sap \ + --disable-proximity \ + --disable-serial \ + --enable-input \ + --enable-service \ + --enable-health \ + --disable-pnat \ + --disable-gstreamer \ + $BLUEZ_ALSA \ --enable-usb \ - --enable-udev \ - --disable-cups \ - --disable-obex \ - --enable-client \ - --disable-systemd \ --enable-datafiles \ - --disable-experimental \ + --enable-pcmcia \ + --enable-hid2hci \ + --enable-dfutool \ + --disable-hidd \ + --disable-pand \ + --disable-dund \ + --disable-cups \ + --enable-wiimote \ + --disable-maemo6 \ + --disable-dbusoob \ + --enable-thermometer \ + --disable-hal \ + --disable-capng \ --with-gnu-ld \ $DEBUG_CONFIG \ $DEVTOOLS_CONFIG \ + --disable-test make diff --git a/packages/network/bluez/config/main.conf b/packages/network/bluez/config/main.conf new file mode 100644 index 0000000000..0ff6b0b921 --- /dev/null +++ b/packages/network/bluez/config/main.conf @@ -0,0 +1,66 @@ +[General] + +# List of plugins that should not be loaded on bluetoothd startup +DisablePlugins = input + +# Default adaper name +# %h - substituted for hostname +# %d - substituted for adapter id +Name = %h-%d + +# Default device class. Only the major and minor device class bits are +# considered. +Class = 0x000100 + +# How long to stay in discoverable mode before going back to non-discoverable +# The value is in seconds. Default is 180, i.e. 3 minutes. +# 0 = disable timer, i.e. stay discoverable forever +DiscoverableTimeout = 0 + +# How long to stay in pairable mode before going back to non-discoverable +# The value is in seconds. Default is 0. +# 0 = disable timer, i.e. stay pairable forever +PairableTimeout = 0 + +# Use some other page timeout than the controller default one +# which is 16384 (10 seconds). +PageTimeout = 8192 + +# Discover scheduler interval used in Adapter.DiscoverDevices +# The value is in seconds. Defaults is 30. +DiscoverSchedulerInterval = 30 + +# What value should be assumed for the adapter Powered property when +# SetProperty(Powered, ...) hasn't been called yet. Defaults to true +InitiallyPowered = true + +# Remember the previously stored Powered state when initializing adapters +RememberPowered = true + +# Use vendor, product and version information for DID profile support. +# The values are separated by ":" and VID, PID and version. +#DeviceID = 1234:5678:abcd + +# Do reverse service discovery for previously unknown devices that connect to +# us. This option is really only needed for qualification since the BITE tester +# doesn't like us doing reverse SDP for some test cases (though there could in +# theory be other useful purposes for this too). Defaults to true. +ReverseServiceDiscovery = true + +# Enable name resolving after inquiry. Set it to 'false' if you don't need +# remote devices name and want shorter discovery cycle. Defaults to 'true'. +NameResolving = true + +# Enable runtime persistency of debug link keys. Default is false which +# makes debug link keys valid only for the duration of the connection +# that they were created for. +DebugKeys = false + +# Enable Low Energy support if the dongle supports. Default is false. +# Enable/Disable interleave discovery and attribute server over LE. +EnableLE = false + +# Enable the GATT Attribute Server. Default is false, because it is only +# useful for testing. Attribute server is not enabled over LE if EnableLE +# is false. +AttributeServer = false diff --git a/packages/network/bluez/install b/packages/network/bluez/install index 61218f9d25..bf605ad081 100755 --- a/packages/network/bluez/install +++ b/packages/network/bluez/install @@ -22,39 +22,59 @@ . config/options +PKG_DIR=`find $PACKAGES -type d -name $1` + +mkdir -p $INSTALL/etc/bluetooth +# cp $PKG_BUILD/src/main.conf $INSTALL/etc/bluetooth + cp $PKG_DIR/config/main.conf $INSTALL/etc/bluetooth + cp $PKG_BUILD/tools/rfcomm.conf $INSTALL/etc/bluetooth + cp $PKG_BUILD/input/input.conf $INSTALL/etc/bluetooth + + if [ "$ALSA_SUPPORT" = yes ]; then + cp $PKG_BUILD/audio/audio.conf $INSTALL/etc/bluetooth + fi + mkdir -p $INSTALL/etc/dbus-1/system.d cp $PKG_BUILD/src/bluetooth.conf $INSTALL/etc/dbus-1/system.d mkdir -p $INSTALL/lib/udev +# not needed: cp $PKG_BUILD/scripts/bluetooth_serial $INSTALL/lib/udev +# not needed: chmod +x $INSTALL/lib/udev/bluetooth_serial cp $PKG_BUILD/tools/hid2hci $INSTALL/lib/udev mkdir -p $INSTALL/lib/udev/rules.d - cp $PKG_BUILD/tools/97-hid2hci.rules $INSTALL/lib/udev/rules.d + cp $PKG_BUILD/scripts/97-bluetooth.rules $INSTALL/lib/udev/rules.d +# todo: cp $PKG_BUILD/scripts/97-bluetooth-hid2hci.rules $INSTALL/lib/udev/rules.d +# not needed: cp $PKG_BUILD/scripts/97-bluetooth-serial.rules $INSTALL/lib/udev/rules.d mkdir -p $INSTALL/usr/lib cp -P $PKG_BUILD/lib/.libs/libbluetooth.so* $INSTALL/usr/lib -mkdir -p $INSTALL/usr/lib/bluetooth - cp $PKG_BUILD/src/bluetoothd $INSTALL/usr/lib/bluetooth - cp $PKG_BUILD/obexd/src/obexd $INSTALL/usr/lib/bluetooth +if [ "$ALSA_SUPPORT" = yes ]; then + mkdir -p $INSTALL/usr/lib/alsa + cp $PKG_BUILD/audio/.libs/*.so $INSTALL/usr/lib/alsa +fi + +mkdir -p $INSTALL/usr/lib/bluetooth/plugins + +mkdir -p $INSTALL/usr/sbin + cp $PKG_BUILD/src/bluetoothd $INSTALL/usr/sbin + +mkdir -p $INSTALL/usr/share/alsa + cp $PKG_BUILD/audio/bluetooth.conf $INSTALL/usr/share/alsa if [ "$DEVTOOLS" = "yes" ]; then -mkdir -p $INSTALL/usr/bin - cp $PKG_BUILD/tools/bccmd $INSTALL/usr/bin - cp $PKG_BUILD/client/bluetoothctl $INSTALL/usr/bin - cp $PKG_BUILD/monitor/btmon $INSTALL/usr/bin - cp $PKG_BUILD/tools/ciptool $INSTALL/usr/bin - cp $PKG_BUILD/tools/hciattach $INSTALL/usr/bin - cp $PKG_BUILD/tools/hciconfig $INSTALL/usr/bin - cp $PKG_BUILD/tools/hcidump $INSTALL/usr/bin - cp $PKG_BUILD/tools/hcitool $INSTALL/usr/bin - cp $PKG_BUILD/tools/l2ping $INSTALL/usr/bin - cp $PKG_BUILD/tools/l2test $INSTALL/usr/bin - cp $PKG_BUILD/tools/rctest $INSTALL/usr/bin - cp $PKG_BUILD/tools/rfcomm $INSTALL/usr/bin - cp $PKG_BUILD/tools/sdptool $INSTALL/usr/bin + mkdir -p $INSTALL/usr/bin + cp $PKG_BUILD/tools/ciptool $INSTALL/usr/bin + cp $PKG_BUILD/tools/dfutool $INSTALL/usr/bin + cp $PKG_BUILD/tools/hcitool $INSTALL/usr/bin + cp $PKG_BUILD/tools/l2ping $INSTALL/usr/bin + cp $PKG_BUILD/tools/rfcomm $INSTALL/usr/bin + cp $PKG_BUILD/tools/sdptool $INSTALL/usr/bin - mkdir -p $INSTALL/usr/lib/bluez/test - cp -P $PKG_BUILD/test/* $INSTALL/usr/lib/bluez/test - chmod +x $INSTALL/usr/lib/bluez/test/* +mkdir -p $INSTALL/usr/sbin + cp $PKG_BUILD/tools/bccmd $INSTALL/usr/sbin # TODO + cp $PKG_BUILD/tools/hciattach $INSTALL/usr/sbin + cp $PKG_BUILD/tools/hciconfig $INSTALL/usr/sbin fi + diff --git a/packages/network/bluez/meta b/packages/network/bluez/meta index 8558547642..26f83b8fc0 100644 --- a/packages/network/bluez/meta +++ b/packages/network/bluez/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="bluez" -PKG_VERSION="5.1" +PKG_VERSION="4.99" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/network/bluez/patches/bluez-4.99-automake_1.13.patch b/packages/network/bluez/patches/bluez-4.99-automake_1.13.patch new file mode 100644 index 0000000000..68b48872d4 --- /dev/null +++ b/packages/network/bluez/patches/bluez-4.99-automake_1.13.patch @@ -0,0 +1,12 @@ +diff -Naur bluez-4.101-old/configure.ac bluez-4.101-new/configure.ac +--- bluez-4.101-old/configure.ac 2012-06-22 09:36:49.000000000 -0700 ++++ bluez-4.101-new/configure.ac 2012-12-29 08:49:05.000000000 -0800 +@@ -2,7 +2,7 @@ + AC_INIT(bluez, 4.101) + + AM_INIT_AUTOMAKE([foreign subdir-objects color-tests]) +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + + m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + diff --git a/packages/network/bluez/patches/bluez-4.99-systemd.patch b/packages/network/bluez/patches/bluez-4.99-systemd.patch new file mode 100644 index 0000000000..56cfc6db29 --- /dev/null +++ b/packages/network/bluez/patches/bluez-4.99-systemd.patch @@ -0,0 +1,15 @@ +X-Git-Url: http://git.kernel.org/?p=bluetooth%2Fbluez.git;a=blobdiff_plain;f=tools%2Fhid2hci.c;h=e3a5b2ef785a782bd3da4ae9c44704a32dc2f665;hp=45a3a3db8b29411ee193e480f5ce8a82a40103d1;hb=35beaaa5b39d50eabd54563804182bb01a5d7ff4;hpb=cc47dc79aac98f7b25bd2afccf1c10560e779d16 + +diff --git a/tools/hid2hci.c b/tools/hid2hci.c +index 45a3a3d..e3a5b2e 100644 +--- a/tools/hid2hci.c ++++ b/tools/hid2hci.c +@@ -291,7 +291,7 @@ int main(int argc, char *argv[]) + if (udev == NULL) + goto exit; + +- snprintf(syspath, sizeof(syspath), "%s/%s", udev_get_sys_path(udev), devpath); ++ snprintf(syspath, sizeof(syspath), "/sys/%s", devpath); + udev_dev = udev_device_new_from_syspath(udev, syspath); + if (udev_dev == NULL) { + fprintf(stderr, "error: could not find '%s'\n", devpath); diff --git a/packages/network/bluez/udev.d/09-bluetooth.rules b/packages/network/bluez/udev.d/09-bluetooth.rules new file mode 100644 index 0000000000..b5be47b242 --- /dev/null +++ b/packages/network/bluez/udev.d/09-bluetooth.rules @@ -0,0 +1,6 @@ +ACTION!="add|change", GOTO="end" + +KERNEL=="hci[0-9]*", SUBSYSTEM=="bluetooth", RUN+="/usr/sbin/hciconfig %k up" +KERNEL=="hci[0-9]*", SUBSYSTEM=="bluetooth", RUN+="/usr/sbin/hciconfig %k lm master" + +LABEL="end" From 2ad5beded2a432d06549986672ae3adeb65ae6c4 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Wed, 30 Jan 2013 12:13:17 +0200 Subject: [PATCH 40/86] makemkv: update to makemkv-1.7.10 --- packages/addons/multimedia/makemkv/changelog.txt | 3 +++ packages/addons/multimedia/makemkv/meta | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/addons/multimedia/makemkv/changelog.txt b/packages/addons/multimedia/makemkv/changelog.txt index 10fada479b..e694e185c6 100644 --- a/packages/addons/multimedia/makemkv/changelog.txt +++ b/packages/addons/multimedia/makemkv/changelog.txt @@ -1,3 +1,6 @@ +3.0.2 +- update to makemkv-1.7.10 + 3.0.2 - update to makemkv-1.7.9 diff --git a/packages/addons/multimedia/makemkv/meta b/packages/addons/multimedia/makemkv/meta index 09d75a0cf1..4d2871caf3 100644 --- a/packages/addons/multimedia/makemkv/meta +++ b/packages/addons/multimedia/makemkv/meta @@ -19,8 +19,8 @@ ################################################################################ PKG_NAME="makemkv" -PKG_VERSION="1.7.9" -PKG_REV="2" +PKG_VERSION="1.7.10" +PKG_REV="3" PKG_ARCH="any" PKG_LICENSE="OSS" PKG_SITE="http://www.makemkv.com/forum2/viewforum.php?f=3" From f50386d87f600aabc3962db40607099c2959dc3d Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Wed, 30 Jan 2013 12:15:15 +0200 Subject: [PATCH 41/86] makemkv: ups. update changelog. --- packages/addons/multimedia/makemkv/changelog.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/addons/multimedia/makemkv/changelog.txt b/packages/addons/multimedia/makemkv/changelog.txt index e694e185c6..c0754ab8a7 100644 --- a/packages/addons/multimedia/makemkv/changelog.txt +++ b/packages/addons/multimedia/makemkv/changelog.txt @@ -1,4 +1,4 @@ -3.0.2 +3.0.3 - update to makemkv-1.7.10 3.0.2 From 8d808bea0322d577696ee592843392c82b0f50d3 Mon Sep 17 00:00:00 2001 From: vpeter4 Date: Thu, 31 Jan 2013 13:27:25 +0100 Subject: [PATCH 42/86] autoupdate: checking download success --- packages/tools/autoupdate/scripts/autoupdate.devel | 1 + packages/tools/autoupdate/scripts/autoupdate.release | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/tools/autoupdate/scripts/autoupdate.devel b/packages/tools/autoupdate/scripts/autoupdate.devel index b786df98c0..5c49d7ab47 100755 --- a/packages/tools/autoupdate/scripts/autoupdate.devel +++ b/packages/tools/autoupdate/scripts/autoupdate.devel @@ -46,6 +46,7 @@ download () { wget -U "$THIS_DISTRIBUTION ($THIS_ARCH): $THIS_VERSION" \ -c ${1}?sysid=$SYSTEMID \ -O $2 > /dev/null 2>&1 + [ $? -ne 0 ] && exit 1 ;; scp) scp $SCP_ARG "$1" $TMP_DIR diff --git a/packages/tools/autoupdate/scripts/autoupdate.release b/packages/tools/autoupdate/scripts/autoupdate.release index a122750dc7..8cb107599d 100755 --- a/packages/tools/autoupdate/scripts/autoupdate.release +++ b/packages/tools/autoupdate/scripts/autoupdate.release @@ -46,6 +46,7 @@ download () { wget -U "$THIS_DISTRIBUTION ($THIS_ARCH): $THIS_VERSION" \ -c ${1}?sysid=$SYSTEMID \ -O $2 > /dev/null 2>&1 + [ $? -ne 0 ] && exit 1 ;; scp) scp $SCP_ARG "$1" $TMP_DIR From 6f567364e509e4e784d6f6404342a8350786050d Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Thu, 31 Jan 2013 15:05:09 +0100 Subject: [PATCH 43/86] dvb-firmware: update to dvb-firmware-0.0.30, this fixes #1822 Signed-off-by: Stephan Raue --- packages/linux-firmware/dvb-firmware/meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/linux-firmware/dvb-firmware/meta b/packages/linux-firmware/dvb-firmware/meta index dcac5ad845..3074b40989 100644 --- a/packages/linux-firmware/dvb-firmware/meta +++ b/packages/linux-firmware/dvb-firmware/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="dvb-firmware" -PKG_VERSION="0.0.29" +PKG_VERSION="0.0.30" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="Free-to-use" From 513f9c98cc26592f30f46de572915111f4783d6b Mon Sep 17 00:00:00 2001 From: fritsch Date: Fri, 1 Feb 2013 13:39:35 +0100 Subject: [PATCH 44/86] AE: fix no devices found - 10 seconds start delay --- .../xbmc-464-fix-no-devices-found.patch | 276 ++++++++++++++++++ 1 file changed, 276 insertions(+) create mode 100644 packages/mediacenter/xbmc/patches/xbmc-464-fix-no-devices-found.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-464-fix-no-devices-found.patch b/packages/mediacenter/xbmc/patches/xbmc-464-fix-no-devices-found.patch new file mode 100644 index 0000000000..2a3d2ca95f --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-464-fix-no-devices-found.patch @@ -0,0 +1,276 @@ +From ac29de2eff8fe144fdbe0330dc38036cf546a372 Mon Sep 17 00:00:00 2001 +From: fritsch +Date: Thu, 31 Jan 2013 21:27:56 +0100 +Subject: [PATCH 1/2] AE: make forced enumeration possible - this can be used + to delay startup when now devices are present + +--- + xbmc/cores/AudioEngine/AESinkFactory.cpp | 10 +++++----- + xbmc/cores/AudioEngine/AESinkFactory.h | 2 +- + xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp | 11 +++++++++++ + xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 4 ++-- + xbmc/cores/AudioEngine/Sinks/AESinkALSA.h | 2 +- + xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp | 2 +- + xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.h | 2 +- + xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp | 2 +- + xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.h | 2 +- + xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp | 2 +- + xbmc/cores/AudioEngine/Sinks/AESinkOSS.h | 2 +- + xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp | 2 +- + xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h | 4 ++-- + 13 files changed, 29 insertions(+), 18 deletions(-) + +diff --git a/xbmc/cores/AudioEngine/AESinkFactory.cpp b/xbmc/cores/AudioEngine/AESinkFactory.cpp +index b066ecd..9917f11 100644 +--- a/xbmc/cores/AudioEngine/AESinkFactory.cpp ++++ b/xbmc/cores/AudioEngine/AESinkFactory.cpp +@@ -129,15 +129,15 @@ IAESink *CAESinkFactory::Create(std::string &device, AEAudioFormat &desiredForma + return NULL; + } + +-#define ENUMERATE_SINK(SINK) { \ ++#define ENUMERATE_SINK(SINK, force) { \ + AESinkInfo info; \ + info.m_sinkName = #SINK; \ +- CAESink ##SINK::EnumerateDevicesEx(info.m_deviceInfoList); \ ++ CAESink ##SINK::EnumerateDevicesEx(info.m_deviceInfoList, force); \ + if(!info.m_deviceInfoList.empty()) \ + list.push_back(info); \ + } + +-void CAESinkFactory::EnumerateEx(AESinkInfoList &list) ++void CAESinkFactory::EnumerateEx(AESinkInfoList &list, bool force) + { + #if defined(TARGET_WINDOWS) + ENUMERATE_SINK(DirectSound); +@@ -147,10 +147,10 @@ void CAESinkFactory::EnumerateEx(AESinkInfoList &list) + ENUMERATE_SINK(AUDIOTRACK); + #elif defined(TARGET_LINUX) || defined(TARGET_FREEBSD) + #if defined(HAS_ALSA) +- ENUMERATE_SINK(ALSA); ++ ENUMERATE_SINK(ALSA, force); + #endif + +- ENUMERATE_SINK(OSS); ++ ENUMERATE_SINK(OSS, force); + #endif + + } +diff --git a/xbmc/cores/AudioEngine/AESinkFactory.h b/xbmc/cores/AudioEngine/AESinkFactory.h +index 99c53f9..6f8a4e5 100644 +--- a/xbmc/cores/AudioEngine/AESinkFactory.h ++++ b/xbmc/cores/AudioEngine/AESinkFactory.h +@@ -40,6 +40,6 @@ class CAESinkFactory + public: + static void ParseDevice(std::string &device, std::string &driver); + static IAESink *Create(std::string &device, AEAudioFormat &desiredFormat, bool rawPassthrough); +- static void EnumerateEx(AESinkInfoList &list); ++ static void EnumerateEx(AESinkInfoList &list, bool force = false); + }; + +diff --git a/xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp b/xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp +index 410e20c..8a19ac4 100644 +--- a/xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp ++++ b/xbmc/cores/AudioEngine/Engines/SoftAE/SoftAE.cpp +@@ -39,6 +39,7 @@ + #include "Interfaces/AESink.h" + #include "Utils/AEUtil.h" + #include "Encoders/AEEncoderFFmpeg.h" ++#include + + using namespace std; + +@@ -74,7 +75,17 @@ + m_outputStageFn (NULL ), + m_streamStageFn (NULL ) + { ++ unsigned int c_retry = 5; + CAESinkFactory::EnumerateEx(m_sinkInfoList); ++ while(m_sinkInfoList.size() == 0 && c_retry > 0) ++ { ++ CLog::Log(LOGNOTICE, "No Devices found - retry: %d", c_retry); ++ usleep(2000000); ++ c_retry--; ++ // retry the enumeration ++ CAESinkFactory::EnumerateEx(m_sinkInfoList, true); ++ } ++ CLog::Log(LOGNOTICE, "Found %lu Lists of Devices", m_sinkInfoList.size()); + for (AESinkInfoList::iterator itt = m_sinkInfoList.begin(); itt != m_sinkInfoList.end(); ++itt) + { + CLog::Log(LOGNOTICE, "Enumerated %s devices:", itt->m_sinkName.c_str()); +diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp +index 91218a4..b0d6bb1 100644 +--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp ++++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp +@@ -676,11 +676,11 @@ bool CAESinkALSA::OpenPCMDevice(const std::string &name, const std::string ¶ + return false; + } + +-void CAESinkALSA::EnumerateDevicesEx(AEDeviceInfoList &list) ++void CAESinkALSA::EnumerateDevicesEx(AEDeviceInfoList &list, bool force) + { + /* ensure that ALSA has been initialized */ + snd_lib_error_set_handler(sndLibErrorHandler); +- if(!snd_config) ++ if(!snd_config || force) + snd_config_update(); + + snd_config_t *config; +diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.h b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.h +index db1ba80..c1b1c76 100644 +--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.h ++++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.h +@@ -50,7 +50,7 @@ class CAESinkALSA : public IAESink + virtual unsigned int AddPackets (uint8_t *data, unsigned int frames, bool hasAudio); + virtual void Drain (); + +- static void EnumerateDevicesEx(AEDeviceInfoList &list); ++ static void EnumerateDevicesEx(AEDeviceInfoList &list, bool force = false); + private: + CAEChannelInfo GetChannelLayout(AEAudioFormat format); + void GetAESParams(const AEAudioFormat format, std::string& params); +diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp +index e8a7876..8f23b41 100644 +--- a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp ++++ b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp +@@ -236,7 +236,7 @@ void CAESinkAUDIOTRACK::SetVolume(float volume) + m_volume_changed = true; + } + +-void CAESinkAUDIOTRACK::EnumerateDevicesEx(AEDeviceInfoList &list) ++void CAESinkAUDIOTRACK::EnumerateDevicesEx(AEDeviceInfoList &list, bool force) + { + m_info.m_channels.Reset(); + m_info.m_dataFormats.clear(); +diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.h b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.h +index 46b3551..bbb7856 100644 +--- a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.h ++++ b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.h +@@ -43,7 +43,7 @@ class CAESinkAUDIOTRACK : public CThread, public IAESink + virtual void Drain (); + virtual bool HasVolume (); + virtual void SetVolume (float volume); +- static void EnumerateDevicesEx(AEDeviceInfoList &list); ++ static void EnumerateDevicesEx(AEDeviceInfoList &list, bool force = false); + + private: + virtual void Process(); +diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp +index 4d3d41e..c9680e7 100644 +--- a/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp ++++ b/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp +@@ -464,7 +464,7 @@ double CAESinkDirectSound::GetCacheTotal() + return (double)m_dwBufferLen / (double)m_AvgBytesPerSec; + } + +-void CAESinkDirectSound::EnumerateDevicesEx(AEDeviceInfoList &deviceInfoList) ++void CAESinkDirectSound::EnumerateDevicesEx(AEDeviceInfoList &deviceInfoList, bool force) + { + CAEDeviceInfo deviceInfo; + +diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.h b/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.h +index 9f54090..2e6209b 100644 +--- a/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.h ++++ b/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.h +@@ -43,7 +43,7 @@ class CAESinkDirectSound : public IAESink + virtual double GetCacheTime (); + virtual double GetCacheTotal (); + virtual unsigned int AddPackets (uint8_t *data, unsigned int frames, bool hasAudio); +- static void EnumerateDevicesEx (AEDeviceInfoList &deviceInfoList); ++ static void EnumerateDevicesEx (AEDeviceInfoList &deviceInfoList, bool force = false); + private: + void AEChannelsFromSpeakerMask(DWORD speakers); + DWORD SpeakerMaskFromAEChannels(const CAEChannelInfo &channels); +diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp +index 06b9a7f..970e236 100644 +--- a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp ++++ b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp +@@ -427,7 +427,7 @@ void CAESinkOSS::Drain() + // ??? + } + +-void CAESinkOSS::EnumerateDevicesEx(AEDeviceInfoList &list) ++void CAESinkOSS::EnumerateDevicesEx(AEDeviceInfoList &list, bool force) + { + int mixerfd; + const char * mixerdev = "/dev/mixer"; +diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.h b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.h +index aa8a9f8..7e2db8b 100644 +--- a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.h ++++ b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.h +@@ -43,7 +43,7 @@ class CAESinkOSS : public IAESink + virtual double GetCacheTotal () { return 0.0; } /* FIXME */ + virtual unsigned int AddPackets (uint8_t *data, unsigned int frames, bool hasAudio); + virtual void Drain (); +- static void EnumerateDevicesEx(AEDeviceInfoList &list); ++ static void EnumerateDevicesEx(AEDeviceInfoList &list, bool force = false); + private: + int m_fd; + std::string m_device; +diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp +index 8475d60..f238d75 100644 +--- a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp ++++ b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp +@@ -559,7 +559,7 @@ bool CAESinkWASAPI::SoftResume() + return false; + } + +-void CAESinkWASAPI::EnumerateDevicesEx(AEDeviceInfoList &deviceInfoList) ++void CAESinkWASAPI::EnumerateDevicesEx(AEDeviceInfoList &deviceInfoList, bool force) + { + IMMDeviceEnumerator* pEnumerator = NULL; + IMMDeviceCollection* pEnumDevices = NULL; +diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h +index a0c567a..7111ea9 100644 +--- a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h ++++ b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h +@@ -45,7 +45,7 @@ class CAESinkWASAPI : public IAESink + virtual unsigned int AddPackets (uint8_t *data, unsigned int frames, bool hasAudio); + virtual bool SoftSuspend (); + virtual bool SoftResume (); +- static void EnumerateDevicesEx (AEDeviceInfoList &deviceInfoList); ++ static void EnumerateDevicesEx (AEDeviceInfoList &deviceInfoList, bool force = false); + private: + bool InitializeExclusive(AEAudioFormat &format); + void AEChannelsFromSpeakerMask(DWORD speakers); +@@ -78,4 +78,4 @@ class CAESinkWASAPI : public IAESink + unsigned int m_uiBufferLen; /* wasapi endpoint buffer size, in frames */ + double m_avgTimeWaiting; /* time between next buffer of data from SoftAE and driver call for data */ + double m_sinkLatency; /* time in seconds of total duration of the two WASAPI buffers */ +-}; +\ No newline at end of file ++}; +-- +1.7.10 + + +From b236f0a78079f522f8f9743098820e6301e27625 Mon Sep 17 00:00:00 2001 +From: fritsch +Date: Fri, 1 Feb 2013 13:05:24 +0100 +Subject: [PATCH 2/2] AE: recreate alsa source tree to find new devices + +--- + xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp +index b0d6bb1..61848a1 100644 +--- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp ++++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp +@@ -681,7 +681,13 @@ void CAESinkALSA::EnumerateDevicesEx(AEDeviceInfoList &list, bool force) + /* ensure that ALSA has been initialized */ + snd_lib_error_set_handler(sndLibErrorHandler); + if(!snd_config || force) ++ { ++ if(force) ++ snd_config_update_free_global(); ++ + snd_config_update(); ++ } ++ + + snd_config_t *config; + snd_config_copy(&config, snd_config); +-- +1.7.10 + From af534fc7a925cf47ac266a9c04b0dd9ab8fbf3c9 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 1 Feb 2013 16:22:45 +0100 Subject: [PATCH 45/86] connman: update to connman-1.11 Signed-off-by: Stephan Raue --- packages/network/connman/build | 25 ++++++++++--------- packages/network/connman/meta | 2 +- .../patches/connman-1.10-automake-1.13.patch | 12 --------- ...ch => connman-do-not-cleanup-routes.patch} | 0 4 files changed, 14 insertions(+), 25 deletions(-) delete mode 100644 packages/network/connman/patches/connman-1.10-automake-1.13.patch rename packages/network/connman/patches/{connman-1.10-do-not-cleanup-routes.patch => connman-do-not-cleanup-routes.patch} (100%) diff --git a/packages/network/connman/build b/packages/network/connman/build index 9f46026db1..e16d90d444 100755 --- a/packages/network/connman/build +++ b/packages/network/connman/build @@ -49,28 +49,29 @@ cd $PKG_BUILD --disable-gtk-doc \ --disable-debug \ --enable-threads \ - --enable-loopback=builtin \ - --enable-ethernet=builtin \ - --enable-wifi=builtin \ - --disable-bluetooth \ --disable-hh2serial-gps \ - --disable-dundee \ - --disable-wispr \ - --disable-ofono \ --disable-openconnect \ $CONNMAN_OPENVPN \ --disable-vpnc \ --disable-l2tp \ $CONNMAN_PPTP \ - --disable-tist \ - --disable-pacrunner \ - --disable-iwmx \ --disable-iospm \ + --disable-tist \ + --disable-session-policy-local \ + --disable-test \ --disable-nmcompat \ --disable-polkit \ - --enable-client \ + --disable-selinux \ + --enable-loopback=builtin \ + --enable-ethernet=builtin \ + --enable-wifi=builtin \ + --disable-bluetooth \ + --disable-ofono \ + --disable-dundee \ + --disable-pacrunner \ + --disable-wispr \ --disable-tools \ - --disable-test \ + --enable-client \ --enable-datafiles \ --disable-silent-rules \ diff --git a/packages/network/connman/meta b/packages/network/connman/meta index 400cf2e491..b0994f57a5 100644 --- a/packages/network/connman/meta +++ b/packages/network/connman/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="connman" -PKG_VERSION="1.10" +PKG_VERSION="1.11" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/network/connman/patches/connman-1.10-automake-1.13.patch b/packages/network/connman/patches/connman-1.10-automake-1.13.patch deleted file mode 100644 index d1fe520c9b..0000000000 --- a/packages/network/connman/patches/connman-1.10-automake-1.13.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur connman-1.10/configure.ac connman-1.10.patch/configure.ac ---- connman-1.10/configure.ac 2012-12-22 22:52:47.000000000 +0100 -+++ connman-1.10.patch/configure.ac 2013-01-12 00:54:04.975043201 +0100 -@@ -2,7 +2,7 @@ - AC_INIT(connman, 1.10) - - AM_INIT_AUTOMAKE([foreign subdir-objects color-tests]) --AM_CONFIG_HEADER(config.h) -+AC_CONFIG_HEADERS(config.h) - - m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - diff --git a/packages/network/connman/patches/connman-1.10-do-not-cleanup-routes.patch b/packages/network/connman/patches/connman-do-not-cleanup-routes.patch similarity index 100% rename from packages/network/connman/patches/connman-1.10-do-not-cleanup-routes.patch rename to packages/network/connman/patches/connman-do-not-cleanup-routes.patch From 564d8cf1b446c6539e00b369ae7177991f2c6457 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 1 Feb 2013 16:27:57 +0100 Subject: [PATCH 46/86] bcm_sta: update patches Signed-off-by: Stephan Raue --- ...icense.patch => bcm_sta-001-license.patch} | 0 .../patches/bcm_sta-002-user-ioctl.patch | 58 +++++++ .../patches/bcm_sta-003-linux-recent.patch | 162 ++++++++++++++++++ .../patches/bcm_sta-004-rename-device.patch | 22 +++ .../bcm_sta-5.100.82.112-002-user-ioctl.patch | 29 ---- ...cm_sta-5.100.82.112-003-linux-recent.patch | 79 --------- ...m_sta-5.100.82.112-004-rename-device.patch | 26 --- 7 files changed, 242 insertions(+), 134 deletions(-) rename packages/linux-drivers/bcm_sta/patches/{bcm_sta-5.100.82.112-001-license.patch => bcm_sta-001-license.patch} (100%) create mode 100644 packages/linux-drivers/bcm_sta/patches/bcm_sta-002-user-ioctl.patch create mode 100644 packages/linux-drivers/bcm_sta/patches/bcm_sta-003-linux-recent.patch create mode 100644 packages/linux-drivers/bcm_sta/patches/bcm_sta-004-rename-device.patch delete mode 100644 packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-002-user-ioctl.patch delete mode 100644 packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-003-linux-recent.patch delete mode 100644 packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-004-rename-device.patch diff --git a/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-001-license.patch b/packages/linux-drivers/bcm_sta/patches/bcm_sta-001-license.patch similarity index 100% rename from packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-001-license.patch rename to packages/linux-drivers/bcm_sta/patches/bcm_sta-001-license.patch diff --git a/packages/linux-drivers/bcm_sta/patches/bcm_sta-002-user-ioctl.patch b/packages/linux-drivers/bcm_sta/patches/bcm_sta-002-user-ioctl.patch new file mode 100644 index 0000000000..1209a320de --- /dev/null +++ b/packages/linux-drivers/bcm_sta/patches/bcm_sta-002-user-ioctl.patch @@ -0,0 +1,58 @@ +--- a/x86-32/src/wl/sys/wl_cfg80211.c 2013-01-25 13:59:21.000000000 +0100 ++++ b/x86-32/src/wl/sys/wl_cfg80211.c 2013-01-31 07:47:40.000000000 +0100 +@@ -1466,7 +1466,10 @@ + scb_val.val = 0; + err = wl_dev_ioctl(dev, WLC_GET_RSSI, &scb_val, sizeof(scb_val_t)); + if (err) { +- WL_ERR(("Could not get rssi (%d)\n", err)); ++ if (err != -EINVAL) { ++ // Don't fill syslog with EINVAL error ++ WL_ERR(("Could not get rssi (%d)\n", err)); ++ } + return err; + } + rssi = dtoh32(scb_val.val); +--- a/x86-32/src/wl/sys/wl_linux.c 2013-01-25 13:59:21.000000000 +0100 ++++ b/x86-32/src/wl/sys/wl_linux.c 2013-01-31 07:47:40.000000000 +0100 +@@ -1579,11 +1579,7 @@ + } + + WL_LOCK(wl); +- if (!capable(CAP_NET_ADMIN)) { +- bcmerror = BCME_EPERM; +- } else { +- bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif); +- } ++ bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif); + WL_UNLOCK(wl); + + done1: +--- a/x86-64/src/wl/sys/wl_cfg80211.c 2013-01-25 13:59:21.000000000 +0100 ++++ b/x86-64/src/wl/sys/wl_cfg80211.c 2013-01-31 07:49:06.000000000 +0100 +@@ -1466,7 +1466,10 @@ + scb_val.val = 0; + err = wl_dev_ioctl(dev, WLC_GET_RSSI, &scb_val, sizeof(scb_val_t)); + if (err) { +- WL_ERR(("Could not get rssi (%d)\n", err)); ++ if (err != -EINVAL) { ++ // Don't fill syslog with EINVAL error ++ WL_ERR(("Could not get rssi (%d)\n", err)); ++ } + return err; + } + rssi = dtoh32(scb_val.val); +--- a/x86-64/src/wl/sys/wl_linux.c 2013-01-25 13:59:21.000000000 +0100 ++++ b/x86-64/src/wl/sys/wl_linux.c 2013-01-31 07:50:03.000000000 +0100 +@@ -1579,11 +1579,7 @@ + } + + WL_LOCK(wl); +- if (!capable(CAP_NET_ADMIN)) { +- bcmerror = BCME_EPERM; +- } else { +- bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif); +- } ++ bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif); + WL_UNLOCK(wl); + + done1: diff --git a/packages/linux-drivers/bcm_sta/patches/bcm_sta-003-linux-recent.patch b/packages/linux-drivers/bcm_sta/patches/bcm_sta-003-linux-recent.patch new file mode 100644 index 0000000000..57bc7e30ef --- /dev/null +++ b/packages/linux-drivers/bcm_sta/patches/bcm_sta-003-linux-recent.patch @@ -0,0 +1,162 @@ +--- a/x86-32/Makefile 2013-01-25 13:59:21.000000000 +0100 ++++ b/x86-32/Makefile 2013-01-31 10:00:10.000000000 +0100 +@@ -15,21 +15,9 @@ + + ifneq ($(KERNELRELEASE),) + +- LINUXVER_GOODFOR_CFG80211:=$(strip $(shell \ +- if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "32" ]; then \ +- echo TRUE; \ +- else \ +- echo FALSE; \ +- fi \ +- )) +- +- LINUXVER_WEXT_ONLY:=$(strip $(shell \ +- if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "17" ]; then \ +- echo FALSE; \ +- else \ +- echo TRUE; \ +- fi \ +- )) ++ LINUXVER_GOODFOR_CFG80211:=TRUE ++ ++ LINUXVER_WEXT_ONLY:=FALSE + + ifneq ($(API),) + ifeq ($(API), CFG80211) +--- a/x86-32/src/wl/sys/wl_cfg80211.c 2013-01-25 13:59:21.000000000 +0100 ++++ b/x86-32/src/wl/sys/wl_cfg80211.c 2013-01-31 10:00:10.000000000 +0100 +@@ -42,7 +42,7 @@ + enum nl80211_iftype type, u32 *flags, struct vif_params *params); + static s32 __wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev, + struct cfg80211_scan_request *request, struct cfg80211_ssid *this_ssid); +-static s32 wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev, ++static s32 wl_cfg80211_scan(struct wiphy *wiphy, + struct cfg80211_scan_request *request); + static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed); + static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev, +@@ -570,10 +570,12 @@ + } + + static s32 +-wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev, ++wl_cfg80211_scan(struct wiphy *wiphy, + struct cfg80211_scan_request *request) + { + s32 err = 0; ++ struct wl_priv *wl = wiphy_to_wl(wiphy); ++ struct net_device *ndev = wl_to_ndev(wl); + + CHECK_SYS_UP(); + err = __wl_cfg80211_scan(wiphy, ndev, request, NULL); +--- a/x86-32/src/wl/sys/wl_iw.h 2013-01-25 13:59:21.000000000 +0100 ++++ b/x86-32/src/wl/sys/wl_iw.h 2013-01-31 10:00:10.000000000 +0100 +@@ -15,6 +15,7 @@ + #ifndef _wl_iw_h_ + #define _wl_iw_h_ + ++#include + #include + + #include +--- a/x86-32/src/wl/sys/wl_linux.c 2013-01-25 13:59:21.000000000 +0100 ++++ b/x86-32/src/wl/sys/wl_linux.c 2013-01-31 10:00:10.000000000 +0100 +@@ -40,7 +40,6 @@ + #include + #define WLC_MAXBSSCFG 1 + +-#include + #include + #include + #include +@@ -385,7 +384,7 @@ + #endif + .ndo_get_stats = wl_get_stats, + .ndo_set_mac_address = wl_set_mac_address, +- .ndo_set_multicast_list = wl_set_multicast_list, ++ .ndo_set_rx_mode = wl_set_multicast_list, + .ndo_do_ioctl = wl_ioctl + }; + +--- a/x86-64/Makefile 2013-01-25 13:59:21.000000000 +0100 ++++ b/x86-64/Makefile 2013-01-31 10:06:20.000000000 +0100 +@@ -15,21 +15,9 @@ + + ifneq ($(KERNELRELEASE),) + +- LINUXVER_GOODFOR_CFG80211:=$(strip $(shell \ +- if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "32" ]; then \ +- echo TRUE; \ +- else \ +- echo FALSE; \ +- fi \ +- )) +- +- LINUXVER_WEXT_ONLY:=$(strip $(shell \ +- if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "17" ]; then \ +- echo FALSE; \ +- else \ +- echo TRUE; \ +- fi \ +- )) ++ LINUXVER_GOODFOR_CFG80211:=TRUE ++ ++ LINUXVER_WEXT_ONLY:=FALSE + + ifneq ($(API),) + ifeq ($(API), CFG80211) +--- a/x86-64/src/wl/sys/wl_cfg80211.c 2013-01-25 13:59:21.000000000 +0100 ++++ b/x86-64/src/wl/sys/wl_cfg80211.c 2013-01-31 10:07:35.000000000 +0100 +@@ -42,7 +42,7 @@ + enum nl80211_iftype type, u32 *flags, struct vif_params *params); + static s32 __wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev, + struct cfg80211_scan_request *request, struct cfg80211_ssid *this_ssid); +-static s32 wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev, ++static s32 wl_cfg80211_scan(struct wiphy *wiphy, + struct cfg80211_scan_request *request); + static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed); + static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev, +@@ -570,10 +570,12 @@ + } + + static s32 +-wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev, ++wl_cfg80211_scan(struct wiphy *wiphy, + struct cfg80211_scan_request *request) + { + s32 err = 0; ++ struct wl_priv *wl = wiphy_to_wl(wiphy); ++ struct net_device *ndev = wl_to_ndev(wl); + + CHECK_SYS_UP(); + err = __wl_cfg80211_scan(wiphy, ndev, request, NULL); +--- a/x86-64/src/wl/sys/wl_iw.h 2013-01-25 13:59:21.000000000 +0100 ++++ b/x86-64/src/wl/sys/wl_iw.h 2013-01-31 10:07:58.000000000 +0100 +@@ -15,6 +15,7 @@ + #ifndef _wl_iw_h_ + #define _wl_iw_h_ + ++#include + #include + + #include +--- a/x86-64/src/wl/sys/wl_linux.c 2013-01-25 13:59:21.000000000 +0100 ++++ b/x86-64/src/wl/sys/wl_linux.c 2013-01-31 10:08:30.000000000 +0100 +@@ -40,7 +40,6 @@ + #include + #define WLC_MAXBSSCFG 1 + +-#include + #include + #include + #include +@@ -385,7 +384,7 @@ + #endif + .ndo_get_stats = wl_get_stats, + .ndo_set_mac_address = wl_set_mac_address, +- .ndo_set_multicast_list = wl_set_multicast_list, ++ .ndo_set_rx_mode = wl_set_multicast_list, + .ndo_do_ioctl = wl_ioctl + }; + diff --git a/packages/linux-drivers/bcm_sta/patches/bcm_sta-004-rename-device.patch b/packages/linux-drivers/bcm_sta/patches/bcm_sta-004-rename-device.patch new file mode 100644 index 0000000000..c469beab7d --- /dev/null +++ b/packages/linux-drivers/bcm_sta/patches/bcm_sta-004-rename-device.patch @@ -0,0 +1,22 @@ +--- a/x86-32/src/wl/sys/wl_linux.c 2010-12-15 02:58:07.000000000 +0100 ++++ b/x86-32/src/wl/sys/wl_linux.c 2010-12-27 22:14:38.679428984 +0100 +@@ -251,7 +251,7 @@ + #define quote_str(s) to_str(s) + + #ifndef BRCM_WLAN_IFNAME +-#define BRCM_WLAN_IFNAME eth%d ++#define BRCM_WLAN_IFNAME wlan%d + #endif + + static char name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME); +--- a/x86-64/src/wl/sys/wl_linux.c 2010-12-15 03:01:09.000000000 +0100 ++++ b/x86-64/src/wl/sys/wl_linux.c 2010-12-27 22:15:18.273865927 +0100 +@@ -251,7 +251,7 @@ + #define quote_str(s) to_str(s) + + #ifndef BRCM_WLAN_IFNAME +-#define BRCM_WLAN_IFNAME eth%d ++#define BRCM_WLAN_IFNAME wlan%d + #endif + + static char name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME); diff --git a/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-002-user-ioctl.patch b/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-002-user-ioctl.patch deleted file mode 100644 index 76dc48a4cf..0000000000 --- a/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-002-user-ioctl.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- a/x86-32/src/wl/sys/wl_cfg80211.c 2011-10-23 03:56:55.000000000 +1100 -+++ b/x86-32/src/wl/sys/wl_cfg80211.c 2012-05-24 18:43:17.324465658 +1000 -@@ -1466,7 +1466,10 @@ - scb_val.val = 0; - err = wl_dev_ioctl(dev, WLC_GET_RSSI, &scb_val, sizeof(scb_val_t)); - if (err) { -- WL_ERR(("Could not get rssi (%d)\n", err)); -+ if (err != -EINVAL) { -+ // Don't fill syslog with EINVAL error -+ WL_ERR(("Could not get rssi (%d)\n", err)); -+ } - return err; - } - rssi = dtoh32(scb_val.val); ---- a/x86-32/src/wl/sys/wl_linux.c 2011-10-23 03:56:55.000000000 +1100 -+++ b/x86-32/src/wl/sys/wl_linux.c 2012-05-24 18:43:17.324465658 +1000 -@@ -1579,11 +1579,7 @@ - } - - WL_LOCK(wl); -- if (!capable(CAP_NET_ADMIN)) { -- bcmerror = BCME_EPERM; -- } else { -- bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif); -- } -+ bcmerror = wlc_ioctl(wl->wlc, ioc.cmd, buf, ioc.len, wlif->wlcif); - WL_UNLOCK(wl); - - done1: diff --git a/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-003-linux-recent.patch b/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-003-linux-recent.patch deleted file mode 100644 index 6037c1510c..0000000000 --- a/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-003-linux-recent.patch +++ /dev/null @@ -1,79 +0,0 @@ ---- a/x86-32/Makefile 2012-10-15 23:08:11.256904135 +1100 -+++ b/x86-32/Makefile 2012-10-15 23:08:18.970262327 +1100 -@@ -15,21 +15,9 @@ - - ifneq ($(KERNELRELEASE),) - -- LINUXVER_GOODFOR_CFG80211:=$(strip $(shell \ -- if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "32" ]; then \ -- echo TRUE; \ -- else \ -- echo FALSE; \ -- fi \ -- )) -+ LINUXVER_GOODFOR_CFG80211:=TRUE - -- LINUXVER_WEXT_ONLY:=$(strip $(shell \ -- if [ "$(VERSION)" -ge "2" -a "$(PATCHLEVEL)" -ge "6" -a "$(SUBLEVEL)" -ge "17" ]; then \ -- echo FALSE; \ -- else \ -- echo TRUE; \ -- fi \ -- )) -+ LINUXVER_WEXT_ONLY:=FALSE - - ifneq ($(API),) - ifeq ($(API), CFG80211) ---- a/x86-32/src/wl/sys/wl_cfg80211.c 2012-10-15 23:08:11.266904352 +1100 -+++ b/x86-32/src/wl/sys/wl_cfg80211.c 2012-10-15 23:08:32.313638398 +1100 -@@ -42,7 +42,7 @@ - enum nl80211_iftype type, u32 *flags, struct vif_params *params); - static s32 __wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev, - struct cfg80211_scan_request *request, struct cfg80211_ssid *this_ssid); --static s32 wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev, -+static s32 wl_cfg80211_scan(struct wiphy *wiphy, - struct cfg80211_scan_request *request); - static s32 wl_cfg80211_set_wiphy_params(struct wiphy *wiphy, u32 changed); - static s32 wl_cfg80211_join_ibss(struct wiphy *wiphy, struct net_device *dev, -@@ -570,10 +570,12 @@ - } - - static s32 --wl_cfg80211_scan(struct wiphy *wiphy, struct net_device *ndev, -+wl_cfg80211_scan(struct wiphy *wiphy, - struct cfg80211_scan_request *request) - { - s32 err = 0; -+ struct wl_priv *wl = wiphy_to_wl(wiphy); -+ struct net_device *ndev = wl_to_ndev(wl); - - CHECK_SYS_UP(); - err = __wl_cfg80211_scan(wiphy, ndev, request, NULL); ---- a/x86-32/src/wl/sys/wl_iw.h 2012-10-15 23:08:11.266904352 +1100 -+++ b/x86-32/src/wl/sys/wl_iw.h 2012-10-15 23:08:18.973595675 +1100 -@@ -15,6 +15,7 @@ - #ifndef _wl_iw_h_ - #define _wl_iw_h_ - -+#include - #include - - #include ---- a/x86-32/src/wl/sys/wl_linux.c 2012-10-15 23:08:11.266904352 +1100 -+++ b/x86-32/src/wl/sys/wl_linux.c 2012-10-15 23:08:18.973595675 +1100 -@@ -40,7 +40,6 @@ - #include - #define WLC_MAXBSSCFG 1 - --#include - #include - #include - #include -@@ -385,7 +384,7 @@ - #endif - .ndo_get_stats = wl_get_stats, - .ndo_set_mac_address = wl_set_mac_address, -- .ndo_set_multicast_list = wl_set_multicast_list, -+ .ndo_set_rx_mode = wl_set_multicast_list, - .ndo_do_ioctl = wl_ioctl - }; diff --git a/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-004-rename-device.patch b/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-004-rename-device.patch deleted file mode 100644 index 36d3d27288..0000000000 --- a/packages/linux-drivers/bcm_sta/patches/bcm_sta-5.100.82.112-004-rename-device.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -Naur bcm_sta-5.100.82.38/x86-32/src/wl/sys/wl_linux.c bcm_sta-5.100.82.38.patch/x86-32/src/wl/sys/wl_linux.c ---- bcm_sta-5.100.82.38/x86-32/src/wl/sys/wl_linux.c 2010-12-15 02:58:07.000000000 +0100 -+++ bcm_sta-5.100.82.38.patch/x86-32/src/wl/sys/wl_linux.c 2010-12-27 22:14:38.679428984 +0100 -@@ -251,7 +251,7 @@ - #define quote_str(s) to_str(s) - - #ifndef BRCM_WLAN_IFNAME --#define BRCM_WLAN_IFNAME eth%d -+#define BRCM_WLAN_IFNAME wlan%d - #endif - - static char name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME); -diff -Naur bcm_sta-5.100.82.38/x86-32/src/wl/sys/wl_linux.c.orig bcm_sta-5.100.82.38.patch/x86-32/src/wl/sys/wl_linux.c.orig -diff -Naur bcm_sta-5.100.82.38/x86-64/src/wl/sys/wl_linux.c bcm_sta-5.100.82.38.patch/x86-64/src/wl/sys/wl_linux.c ---- bcm_sta-5.100.82.38/x86-64/src/wl/sys/wl_linux.c 2010-12-15 03:01:09.000000000 +0100 -+++ bcm_sta-5.100.82.38.patch/x86-64/src/wl/sys/wl_linux.c 2010-12-27 22:15:18.273865927 +0100 -@@ -251,7 +251,7 @@ - #define quote_str(s) to_str(s) - - #ifndef BRCM_WLAN_IFNAME --#define BRCM_WLAN_IFNAME eth%d -+#define BRCM_WLAN_IFNAME wlan%d - #endif - - static char name[IFNAMSIZ] = quote_str(BRCM_WLAN_IFNAME); -diff -Naur bcm_sta-5.100.82.38/x86-64/src/wl/sys/wl_linux.c.orig bcm_sta-5.100.82.38.patch/x86-64/src/wl/sys/wl_linux.c.orig From bcc13a27a36ecb187cfea5c3c9e571f0670ca8c2 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 1 Feb 2013 16:52:16 +0100 Subject: [PATCH 47/86] speex: add patch to support automake-1.13 Signed-off-by: Stephan Raue --- .../audio/speex/patches/speex-automake-1.13.patch | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 packages/audio/speex/patches/speex-automake-1.13.patch diff --git a/packages/audio/speex/patches/speex-automake-1.13.patch b/packages/audio/speex/patches/speex-automake-1.13.patch new file mode 100644 index 0000000000..3eed654271 --- /dev/null +++ b/packages/audio/speex/patches/speex-automake-1.13.patch @@ -0,0 +1,12 @@ +diff -Naur speex-1.2rc1/configure.ac speex-1.2rc1.patch/configure.ac +--- speex-1.2rc1/configure.ac 2008-07-21 04:17:08.000000000 +0200 ++++ speex-1.2rc1.patch/configure.ac 2013-02-01 16:50:06.747570221 +0100 +@@ -2,7 +2,7 @@ + + AC_INIT(libspeex/speex.c) + +-AM_CONFIG_HEADER([config.h]) ++AC_CONFIG_HEADERS([config.h]) + + SPEEX_MAJOR_VERSION=1 + SPEEX_MINOR_VERSION=1 From 2a02a5914e6750002a94ea76aad0cbf001346629 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Fri, 1 Feb 2013 16:52:55 +0100 Subject: [PATCH 48/86] json-c: add patch to support automake-1.13, this fixes #1830 Signed-off-by: Stephan Raue --- .../devel/json-c/patches/json-c-automake-1.13.patch | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 packages/devel/json-c/patches/json-c-automake-1.13.patch diff --git a/packages/devel/json-c/patches/json-c-automake-1.13.patch b/packages/devel/json-c/patches/json-c-automake-1.13.patch new file mode 100644 index 0000000000..7a914a6922 --- /dev/null +++ b/packages/devel/json-c/patches/json-c-automake-1.13.patch @@ -0,0 +1,12 @@ +diff -Naur json-c-0.9/configure.in json-c-0.9.patch/configure.in +--- json-c-0.9/configure.in 2009-01-06 23:55:33.000000000 +0100 ++++ json-c-0.9.patch/configure.in 2013-02-01 16:45:09.890830041 +0100 +@@ -10,7 +10,7 @@ + # Checks for libraries. + + # Checks for header files. +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + AC_HEADER_STDC + AC_CHECK_HEADERS(fcntl.h limits.h strings.h syslog.h unistd.h [sys/param.h] stdarg.h) + From ddc180276ac54e91cebd472ff8ecee9bac52c382 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 2 Feb 2013 14:23:48 +0100 Subject: [PATCH 49/86] RTL8192CU: update to RTL8192CU-v3.4.4_4749.20121105 Signed-off-by: Stephan Raue --- packages/linux-drivers/RTL8192CU/meta | 2 +- ...dd_more_products.patch => RTL8192CU-add_more_products.patch} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename packages/linux-drivers/RTL8192CU/patches/{RTL8192CU-v3.4.3_4369.20120622-add_more_products.patch => RTL8192CU-add_more_products.patch} (100%) diff --git a/packages/linux-drivers/RTL8192CU/meta b/packages/linux-drivers/RTL8192CU/meta index 1e3b7415ad..a67c58806c 100644 --- a/packages/linux-drivers/RTL8192CU/meta +++ b/packages/linux-drivers/RTL8192CU/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="RTL8192CU" -PKG_VERSION="v3.4.3_4369.20120622" +PKG_VERSION="v3.4.4_4749.20121105" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/linux-drivers/RTL8192CU/patches/RTL8192CU-v3.4.3_4369.20120622-add_more_products.patch b/packages/linux-drivers/RTL8192CU/patches/RTL8192CU-add_more_products.patch similarity index 100% rename from packages/linux-drivers/RTL8192CU/patches/RTL8192CU-v3.4.3_4369.20120622-add_more_products.patch rename to packages/linux-drivers/RTL8192CU/patches/RTL8192CU-add_more_products.patch From 5ec73a2e7ef49215818c8677f67e776fd20709f8 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 2 Feb 2013 14:34:18 +0100 Subject: [PATCH 50/86] bcm2835-driver: update to bcm2835-driver-73d99ed Signed-off-by: Stephan Raue --- packages/graphics/bcm2835-driver/meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/graphics/bcm2835-driver/meta b/packages/graphics/bcm2835-driver/meta index 2752b1c690..21990f3606 100644 --- a/packages/graphics/bcm2835-driver/meta +++ b/packages/graphics/bcm2835-driver/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="bcm2835-driver" -PKG_VERSION="ce9dbf9" +PKG_VERSION="73d99ed" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="nonfree" From de15aaaf6bfce8bb89c9eaf6402ab775763623b4 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 2 Feb 2013 14:35:00 +0100 Subject: [PATCH 51/86] bcm2835-bootloader: update to bcm2835-bootloader-73d99ed Signed-off-by: Stephan Raue --- packages/tools/bcm2835-bootloader/meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tools/bcm2835-bootloader/meta b/packages/tools/bcm2835-bootloader/meta index 263dea888d..8235b7a6ab 100644 --- a/packages/tools/bcm2835-bootloader/meta +++ b/packages/tools/bcm2835-bootloader/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="bcm2835-bootloader" -PKG_VERSION="ce9dbf9" +PKG_VERSION="73d99ed" PKG_REV="1" PKG_ARCH="arm" PKG_LICENSE="nonfree" From 53b78bb5ed51cd9d473c99e3bf6e055b1aef14a8 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 2 Feb 2013 14:37:35 +0100 Subject: [PATCH 52/86] bcm2835-bootloader: install start_x.elf and fixup_x.dat too Signed-off-by: Stephan Raue --- .../bcm2835-bootloader/files/3rdparty/bootloader/config.txt | 2 +- packages/tools/bcm2835-bootloader/install | 2 ++ packages/tools/bcm2835-bootloader/scripts/update.sh | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/tools/bcm2835-bootloader/files/3rdparty/bootloader/config.txt b/packages/tools/bcm2835-bootloader/files/3rdparty/bootloader/config.txt index 40e7df9d18..7f616b2f80 100644 --- a/packages/tools/bcm2835-bootloader/files/3rdparty/bootloader/config.txt +++ b/packages/tools/bcm2835-bootloader/files/3rdparty/bootloader/config.txt @@ -30,7 +30,7 @@ gpu_mem=128 # SDRAM size based GPU memory split, uncomment and setup to override 'gpu_mem' -# gpu_mem_256=128 +# gpu_mem_256=100 # gpu_mem_512=128 ################################################################################ diff --git a/packages/tools/bcm2835-bootloader/install b/packages/tools/bcm2835-bootloader/install index 1f5079f57f..83ee16b9eb 100755 --- a/packages/tools/bcm2835-bootloader/install +++ b/packages/tools/bcm2835-bootloader/install @@ -26,7 +26,9 @@ mkdir -p $INSTALL/usr/share/bootloader cp $PKG_BUILD/LICENCE* $INSTALL/usr/share/bootloader cp $PKG_BUILD/bootcode.bin $INSTALL/usr/share/bootloader cp $PKG_BUILD/fixup.dat $INSTALL/usr/share/bootloader + cp $PKG_BUILD/fixup_x.dat $INSTALL/usr/share/bootloader cp $PKG_BUILD/start.elf $INSTALL/usr/share/bootloader + cp $PKG_BUILD/start_x.elf $INSTALL/usr/share/bootloader cp $PKG_DIR/scripts/update.sh $INSTALL/usr/share/bootloader cp $PKG_DIR/files/3rdparty/bootloader/config.txt $INSTALL/usr/share/bootloader diff --git a/packages/tools/bcm2835-bootloader/scripts/update.sh b/packages/tools/bcm2835-bootloader/scripts/update.sh index 7b13203b2d..a3e5589c6b 100755 --- a/packages/tools/bcm2835-bootloader/scripts/update.sh +++ b/packages/tools/bcm2835-bootloader/scripts/update.sh @@ -30,7 +30,9 @@ cp $SYSTEM_ROOT/usr/share/bootloader/LICENCE* $BOOT_ROOT cp $SYSTEM_ROOT/usr/share/bootloader/bootcode.bin $BOOT_ROOT cp $SYSTEM_ROOT/usr/share/bootloader/fixup.dat $BOOT_ROOT + cp $SYSTEM_ROOT/usr/share/bootloader/fixup_x.dat $BOOT_ROOT cp $SYSTEM_ROOT/usr/share/bootloader/start.elf $BOOT_ROOT + cp $SYSTEM_ROOT/usr/share/bootloader/start_x.elf $BOOT_ROOT # cleanup not more needed files rm -rf $BOOT_ROOT/loader.bin From 5cd56586b944c51d4f9eecde740ba131e2db9193 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 2 Feb 2013 14:39:07 +0100 Subject: [PATCH 53/86] bcm2835-bootloader: set gpu memory to 100MB for 256MB boards Signed-off-by: Stephan Raue --- packages/tools/bcm2835-bootloader/scripts/update.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/tools/bcm2835-bootloader/scripts/update.sh b/packages/tools/bcm2835-bootloader/scripts/update.sh index a3e5589c6b..b567562dea 100755 --- a/packages/tools/bcm2835-bootloader/scripts/update.sh +++ b/packages/tools/bcm2835-bootloader/scripts/update.sh @@ -44,6 +44,9 @@ mv $BOOT_ROOT/config.txt $BOOT_ROOT/config.txt.bk cat $SYSTEM_ROOT/usr/share/bootloader/config.txt \ $BOOT_ROOT/config.txt.bk > $BOOT_ROOT/config.txt + else + sed -e "s,# gpu_mem_256=128,gpu_mem_256=100,g" -i $BOOT_ROOT/config.txt + sed -e "s,# gpu_mem_512=128,gpu_mem_512=128,g" -i $BOOT_ROOT/config.txt fi # mount $BOOT_ROOT r/o From 41a52e972b2977254d30b8ffd4afe713609f7bcd Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 2 Feb 2013 14:39:50 +0100 Subject: [PATCH 54/86] projects/RPi/patches/linux: update RPi patches Signed-off-by: Stephan Raue --- projects/RPi/linux/linux.arm.conf | 8 +- ...=> linux-3.6-01-RPi_support-d114d19.patch} | 580 +++++++++++------- 2 files changed, 376 insertions(+), 212 deletions(-) rename projects/RPi/patches/linux/{linux-3.6-01-RPi_support-6c080b7.patch => linux-3.6-01-RPi_support-d114d19.patch} (99%) diff --git a/projects/RPi/linux/linux.arm.conf b/projects/RPi/linux/linux.arm.conf index a0820b8824..2967f6f57e 100644 --- a/projects/RPi/linux/linux.arm.conf +++ b/projects/RPi/linux/linux.arm.conf @@ -930,6 +930,7 @@ CONFIG_ATH9K_HTC=m CONFIG_CARL9170=m CONFIG_CARL9170_LEDS=y CONFIG_CARL9170_WPC=y +# CONFIG_CARL9170_HWRNG is not set CONFIG_ATH6KL=m # CONFIG_ATH6KL_SDIO is not set CONFIG_ATH6KL_USB=m @@ -942,6 +943,7 @@ CONFIG_B43_PHY_N=y CONFIG_B43_PHY_LP=y # CONFIG_B43_PHY_HT is not set CONFIG_B43_LEDS=y +CONFIG_B43_HWRNG=y # CONFIG_B43_DEBUG is not set # CONFIG_B43LEGACY is not set # CONFIG_BRCMFMAC is not set @@ -1064,7 +1066,11 @@ CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_TTY_PRINTK is not set # CONFIG_HVC_DCC is not set # CONFIG_IPMI_HANDLER is not set -# CONFIG_HW_RANDOM is not set +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +# CONFIG_HW_RANDOM_ATMEL is not set +# CONFIG_HW_RANDOM_EXYNOS is not set +CONFIG_HW_RANDOM_BCM2708=y # CONFIG_R3964 is not set # CONFIG_RAW_DRIVER is not set # CONFIG_TCG_TPM is not set diff --git a/projects/RPi/patches/linux/linux-3.6-01-RPi_support-6c080b7.patch b/projects/RPi/patches/linux/linux-3.6-01-RPi_support-d114d19.patch similarity index 99% rename from projects/RPi/patches/linux/linux-3.6-01-RPi_support-6c080b7.patch rename to projects/RPi/patches/linux/linux-3.6-01-RPi_support-d114d19.patch index 519894d5c9..732c6f67cf 100644 --- a/projects/RPi/patches/linux/linux-3.6-01-RPi_support-6c080b7.patch +++ b/projects/RPi/patches/linux/linux-3.6-01-RPi_support-d114d19.patch @@ -1,6 +1,6 @@ diff -Naur linux-3.6.11/arch/arm/configs/bcmrpi_cutdown_defconfig linux-rpi-3.6.y/arch/arm/configs/bcmrpi_cutdown_defconfig --- linux-3.6.11/arch/arm/configs/bcmrpi_cutdown_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/configs/bcmrpi_cutdown_defconfig 2013-01-20 16:51:23.592917378 +0100 ++++ linux-rpi-3.6.y/arch/arm/configs/bcmrpi_cutdown_defconfig 2013-02-01 18:44:58.176205860 +0100 @@ -0,0 +1,546 @@ +CONFIG_EXPERIMENTAL=y +CONFIG_LOCALVERSION="-cutdown" @@ -550,8 +550,8 @@ diff -Naur linux-3.6.11/arch/arm/configs/bcmrpi_cutdown_defconfig linux-rpi-3.6. +CONFIG_LIBCRC32C=y diff -Naur linux-3.6.11/arch/arm/configs/bcmrpi_defconfig linux-rpi-3.6.y/arch/arm/configs/bcmrpi_defconfig --- linux-3.6.11/arch/arm/configs/bcmrpi_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/configs/bcmrpi_defconfig 2013-01-20 16:51:23.588917404 +0100 -@@ -0,0 +1,995 @@ ++++ linux-rpi-3.6.y/arch/arm/configs/bcmrpi_defconfig 2013-02-01 18:44:58.174205871 +0100 +@@ -0,0 +1,998 @@ +# CONFIG_ARM_PATCH_PHYS_VIRT is not set +CONFIG_EXPERIMENTAL=y +# CONFIG_LOCALVERSION_AUTO is not set @@ -630,6 +630,8 @@ diff -Naur linux-3.6.11/arch/arm/configs/bcmrpi_defconfig linux-rpi-3.6.y/arch/a +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_RARP=y +CONFIG_NET_IPIP=m ++CONFIG_NET_IPGRE_DEMUX=m ++CONFIG_NET_IPGRE=m +CONFIG_SYN_COOKIES=y +CONFIG_INET_AH=m +CONFIG_INET_ESP=m @@ -842,6 +844,7 @@ diff -Naur linux-3.6.11/arch/arm/configs/bcmrpi_defconfig linux-rpi-3.6.y/arch/a +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_ACT_CSUM=m ++CONFIG_BATMAN_ADV=m +CONFIG_NET_PKTGEN=m +CONFIG_HAMRADIO=y +CONFIG_AX25=m @@ -1022,7 +1025,7 @@ diff -Naur linux-3.6.11/arch/arm/configs/bcmrpi_defconfig linux-rpi-3.6.y/arch/a +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_TTY_PRINTK=y -+# CONFIG_HW_RANDOM is not set ++CONFIG_HW_RANDOM_BCM2708=m +CONFIG_RAW_DRIVER=y +CONFIG_BRCM_CHAR_DRIVERS=y +CONFIG_BCM_VC_CMA=y @@ -1549,7 +1552,7 @@ diff -Naur linux-3.6.11/arch/arm/configs/bcmrpi_defconfig linux-rpi-3.6.y/arch/a +CONFIG_LIBCRC32C=y diff -Naur linux-3.6.11/arch/arm/configs/bcmrpi_emergency_defconfig linux-rpi-3.6.y/arch/arm/configs/bcmrpi_emergency_defconfig --- linux-3.6.11/arch/arm/configs/bcmrpi_emergency_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/configs/bcmrpi_emergency_defconfig 2013-01-20 16:51:23.588917404 +0100 ++++ linux-rpi-3.6.y/arch/arm/configs/bcmrpi_emergency_defconfig 2013-02-01 18:44:58.173205877 +0100 @@ -0,0 +1,532 @@ +CONFIG_EXPERIMENTAL=y +# CONFIG_LOCALVERSION_AUTO is not set @@ -2085,7 +2088,7 @@ diff -Naur linux-3.6.11/arch/arm/configs/bcmrpi_emergency_defconfig linux-rpi-3. +CONFIG_LIBCRC32C=y diff -Naur linux-3.6.11/arch/arm/configs/bcmrpi_quick_defconfig linux-rpi-3.6.y/arch/arm/configs/bcmrpi_quick_defconfig --- linux-3.6.11/arch/arm/configs/bcmrpi_quick_defconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/configs/bcmrpi_quick_defconfig 2013-01-20 16:51:23.580917450 +0100 ++++ linux-rpi-3.6.y/arch/arm/configs/bcmrpi_quick_defconfig 2013-02-01 18:44:58.168205905 +0100 @@ -0,0 +1,298 @@ +# CONFIG_ARM_PATCH_PHYS_VIRT is not set +CONFIG_EXPERIMENTAL=y @@ -2387,7 +2390,7 @@ diff -Naur linux-3.6.11/arch/arm/configs/bcmrpi_quick_defconfig linux-rpi-3.6.y/ +CONFIG_AVERAGE=y diff -Naur linux-3.6.11/arch/arm/include/asm/fiq.h linux-rpi-3.6.y/arch/arm/include/asm/fiq.h --- linux-3.6.11/arch/arm/include/asm/fiq.h 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/include/asm/fiq.h 2013-01-20 16:51:23.617917236 +0100 ++++ linux-rpi-3.6.y/arch/arm/include/asm/fiq.h 2013-02-01 18:44:58.195205754 +0100 @@ -42,6 +42,7 @@ /* helpers defined in fiqasm.S: */ extern void __set_fiq_regs(unsigned long const *regs); @@ -2398,7 +2401,7 @@ diff -Naur linux-3.6.11/arch/arm/include/asm/fiq.h linux-rpi-3.6.y/arch/arm/incl { diff -Naur linux-3.6.11/arch/arm/Kconfig linux-rpi-3.6.y/arch/arm/Kconfig --- linux-3.6.11/arch/arm/Kconfig 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/Kconfig 2013-01-20 16:51:23.628917171 +0100 ++++ linux-rpi-3.6.y/arch/arm/Kconfig 2013-02-01 18:44:58.203205709 +0100 @@ -999,6 +999,23 @@ help Support for ST's SPEAr platform (SPEAr3xx, SPEAr6xx and SPEAr13xx). @@ -2433,7 +2436,7 @@ diff -Naur linux-3.6.11/arch/arm/Kconfig linux-rpi-3.6.y/arch/arm/Kconfig config ARCH_ACORN diff -Naur linux-3.6.11/arch/arm/Kconfig.debug linux-rpi-3.6.y/arch/arm/Kconfig.debug --- linux-3.6.11/arch/arm/Kconfig.debug 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/Kconfig.debug 2013-01-20 16:51:23.746916492 +0100 ++++ linux-rpi-3.6.y/arch/arm/Kconfig.debug 2013-02-01 18:44:58.313205095 +0100 @@ -371,6 +371,14 @@ For more details about semihosting, please see chapter 8 of DUI0203I_rvct_developer_guide.pdf from ARM Ltd. @@ -2451,7 +2454,7 @@ diff -Naur linux-3.6.11/arch/arm/Kconfig.debug linux-rpi-3.6.y/arch/arm/Kconfig. config EARLY_PRINTK diff -Naur linux-3.6.11/arch/arm/kernel/fiqasm.S linux-rpi-3.6.y/arch/arm/kernel/fiqasm.S --- linux-3.6.11/arch/arm/kernel/fiqasm.S 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/kernel/fiqasm.S 2013-01-20 16:51:23.347918786 +0100 ++++ linux-rpi-3.6.y/arch/arm/kernel/fiqasm.S 2013-02-01 18:44:57.931207228 +0100 @@ -47,3 +47,7 @@ mov r0, r0 @ avoid hazard prior to ARMv4 mov pc, lr @@ -2462,7 +2465,7 @@ diff -Naur linux-3.6.11/arch/arm/kernel/fiqasm.S linux-rpi-3.6.y/arch/arm/kernel +ENDPROC(__FIQ_Branch) diff -Naur linux-3.6.11/arch/arm/kernel/fiq.c linux-rpi-3.6.y/arch/arm/kernel/fiq.c --- linux-3.6.11/arch/arm/kernel/fiq.c 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/kernel/fiq.c 2013-01-20 16:51:23.354918746 +0100 ++++ linux-rpi-3.6.y/arch/arm/kernel/fiq.c 2013-02-01 18:44:57.937207195 +0100 @@ -137,6 +137,7 @@ EXPORT_SYMBOL(set_fiq_handler); EXPORT_SYMBOL(__set_fiq_regs); /* defined in fiqasm.S */ @@ -2473,7 +2476,7 @@ diff -Naur linux-3.6.11/arch/arm/kernel/fiq.c linux-rpi-3.6.y/arch/arm/kernel/fi EXPORT_SYMBOL(enable_fiq); diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/armctrl.c linux-rpi-3.6.y/arch/arm/mach-bcm2708/armctrl.c --- linux-3.6.11/arch/arm/mach-bcm2708/armctrl.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/armctrl.c 2013-01-20 16:51:23.111920142 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/armctrl.c 2013-02-01 18:44:57.703208501 +0100 @@ -0,0 +1,227 @@ +/* + * linux/arch/arm/mach-bcm2708/armctrl.c @@ -2704,7 +2707,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/armctrl.c linux-rpi-3.6.y/arch/arm +} diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/armctrl.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/armctrl.h --- linux-3.6.11/arch/arm/mach-bcm2708/armctrl.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/armctrl.h 2013-01-20 16:51:23.112920137 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/armctrl.h 2013-02-01 18:44:57.704208496 +0100 @@ -0,0 +1,27 @@ +/* + * linux/arch/arm/mach-bcm2708/armctrl.h @@ -2735,7 +2738,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/armctrl.h linux-rpi-3.6.y/arch/arm +#endif diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/bcm2708.c linux-rpi-3.6.y/arch/arm/mach-bcm2708/bcm2708.c --- linux-3.6.11/arch/arm/mach-bcm2708/bcm2708.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/bcm2708.c 2013-01-20 16:51:23.111920142 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/bcm2708.c 2013-02-01 18:44:57.703208501 +0100 @@ -0,0 +1,950 @@ +/* + * linux/arch/arm/mach-bcm2708/bcm2708.c @@ -3689,7 +3692,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/bcm2708.c linux-rpi-3.6.y/arch/arm +module_param(uart_clock, uint, 0644); diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-rpi-3.6.y/arch/arm/mach-bcm2708/bcm2708_gpio.c --- linux-3.6.11/arch/arm/mach-bcm2708/bcm2708_gpio.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/bcm2708_gpio.c 2013-01-20 16:51:23.111920142 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/bcm2708_gpio.c 2013-02-01 18:44:57.703208501 +0100 @@ -0,0 +1,339 @@ +/* + * linux/arch/arm/mach-bcm2708/bcm2708_gpio.c @@ -4032,7 +4035,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/bcm2708_gpio.c linux-rpi-3.6.y/arc +MODULE_LICENSE("GPL"); diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/bcm2708.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/bcm2708.h --- linux-3.6.11/arch/arm/mach-bcm2708/bcm2708.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/bcm2708.h 2013-01-20 16:51:23.111920142 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/bcm2708.h 2013-02-01 18:44:57.703208501 +0100 @@ -0,0 +1,51 @@ +/* + * linux/arch/arm/mach-bcm2708/bcm2708.h @@ -4087,7 +4090,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/bcm2708.h linux-rpi-3.6.y/arch/arm +#endif diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/clock.c linux-rpi-3.6.y/arch/arm/mach-bcm2708/clock.c --- linux-3.6.11/arch/arm/mach-bcm2708/clock.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/clock.c 2013-01-20 16:51:23.111920142 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/clock.c 2013-02-01 18:44:57.702208507 +0100 @@ -0,0 +1,61 @@ +/* + * linux/arch/arm/mach-bcm2708/clock.c @@ -4152,7 +4155,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/clock.c linux-rpi-3.6.y/arch/arm/m +EXPORT_SYMBOL(clk_set_rate); diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/clock.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/clock.h --- linux-3.6.11/arch/arm/mach-bcm2708/clock.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/clock.h 2013-01-20 16:51:23.111920142 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/clock.h 2013-02-01 18:44:57.703208501 +0100 @@ -0,0 +1,24 @@ +/* + * linux/arch/arm/mach-bcm2708/clock.h @@ -4180,7 +4183,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/clock.h linux-rpi-3.6.y/arch/arm/m +}; diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/delay.S linux-rpi-3.6.y/arch/arm/mach-bcm2708/delay.S --- linux-3.6.11/arch/arm/mach-bcm2708/delay.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/delay.S 2013-01-20 16:51:23.112920137 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/delay.S 2013-02-01 18:44:57.704208496 +0100 @@ -0,0 +1,20 @@ +/* + * linux/arch/arm/lib/delay.S @@ -4204,7 +4207,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/delay.S linux-rpi-3.6.y/arch/arm/m +ENDPROC(bcm2708_delay) diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/dma.c linux-rpi-3.6.y/arch/arm/mach-bcm2708/dma.c --- linux-3.6.11/arch/arm/mach-bcm2708/dma.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/dma.c 2013-01-20 16:51:23.112920137 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/dma.c 2013-02-01 18:44:57.704208496 +0100 @@ -0,0 +1,397 @@ +/* + * linux/arch/arm/mach-bcm2708/dma.c @@ -4605,7 +4608,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/dma.c linux-rpi-3.6.y/arch/arm/mac +MODULE_PARM_DESC(dmachans, "Bitmap of DMA channels available to the ARM"); diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/dmaer.c linux-rpi-3.6.y/arch/arm/mach-bcm2708/dmaer.c --- linux-3.6.11/arch/arm/mach-bcm2708/dmaer.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/dmaer.c 2013-01-20 16:51:23.115920122 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/dmaer.c 2013-02-01 18:44:57.708208474 +0100 @@ -0,0 +1,887 @@ +#include +#include @@ -5496,7 +5499,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/dmaer.c linux-rpi-3.6.y/arch/arm/m + diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/arm_control.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/arm_control.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/arm_control.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/arm_control.h 2013-01-20 16:51:23.112920137 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/arm_control.h 2013-02-01 18:44:57.705208490 +0100 @@ -0,0 +1,419 @@ +/* + * linux/arch/arm/mach-bcm2708/arm_control.h @@ -5919,7 +5922,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/arm_control.h linux-r +#endif diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/arm_power.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/arm_power.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/arm_power.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/arm_power.h 2013-01-20 16:51:23.115920122 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/arm_power.h 2013-02-01 18:44:57.708208474 +0100 @@ -0,0 +1,60 @@ +/* + * linux/arch/arm/mach-bcm2708/include/mach/arm_power.h @@ -5983,7 +5986,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/arm_power.h linux-rpi +#endif diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/clkdev.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/clkdev.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/clkdev.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/clkdev.h 2013-01-20 16:51:23.114920128 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/clkdev.h 2013-02-01 18:44:57.706208485 +0100 @@ -0,0 +1,7 @@ +#ifndef __ASM_MACH_CLKDEV_H +#define __ASM_MACH_CLKDEV_H @@ -5994,7 +5997,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/clkdev.h linux-rpi-3. +#endif diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/debug-macro.S linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/debug-macro.S --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/debug-macro.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/debug-macro.S 2013-01-20 16:51:23.112920137 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/debug-macro.S 2013-02-01 18:44:57.705208490 +0100 @@ -0,0 +1,22 @@ +/* arch/arm/mach-bcm2708/include/mach/debug-macro.S + * @@ -6020,7 +6023,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/debug-macro.S linux-r +#include diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/dma.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/dma.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/dma.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/dma.h 2013-01-20 16:51:23.113920133 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/dma.h 2013-02-01 18:44:57.706208485 +0100 @@ -0,0 +1,84 @@ +/* + * linux/arch/arm/mach-bcm2708/include/mach/dma.h @@ -6108,7 +6111,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/dma.h linux-rpi-3.6.y +#endif /* _MACH_BCM2708_DMA_H */ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/entry-macro.S linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/entry-macro.S --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/entry-macro.S 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/entry-macro.S 2013-01-20 16:51:23.114920128 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/entry-macro.S 2013-02-01 18:44:57.707208479 +0100 @@ -0,0 +1,69 @@ +/* + * arch/arm/mach-bcm2708/include/mach/entry-macro.S @@ -6181,7 +6184,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/entry-macro.S linux-r + .endm diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/frc.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/frc.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/frc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/frc.h 2013-01-20 16:51:23.113920133 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/frc.h 2013-02-01 18:44:57.706208485 +0100 @@ -0,0 +1,38 @@ +/* + * arch/arm/mach-bcm2708/include/mach/timex.h @@ -6223,7 +6226,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/frc.h linux-rpi-3.6.y +#endif diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/gpio.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/gpio.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/gpio.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/gpio.h 2013-01-20 16:51:23.115920122 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/gpio.h 2013-02-01 18:44:57.707208479 +0100 @@ -0,0 +1,48 @@ +/* + * arch/arm/mach-bcm2708/include/mach/gpio.h @@ -6275,7 +6278,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/gpio.h linux-rpi-3.6. + diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/hardware.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/hardware.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/hardware.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/hardware.h 2013-01-20 16:51:23.113920133 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/hardware.h 2013-02-01 18:44:57.706208485 +0100 @@ -0,0 +1,28 @@ +/* + * arch/arm/mach-bcm2708/include/mach/hardware.h @@ -6307,7 +6310,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/hardware.h linux-rpi- +#endif diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/io.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/io.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/io.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/io.h 2013-01-20 16:51:23.114920128 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/io.h 2013-02-01 18:44:57.707208479 +0100 @@ -0,0 +1,28 @@ +/* + * arch/arm/mach-bcm2708/include/mach/io.h @@ -6339,7 +6342,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/io.h linux-rpi-3.6.y/ +#endif diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/irqs.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/irqs.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/irqs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/irqs.h 2013-01-20 16:51:23.112920137 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/irqs.h 2013-02-01 18:44:57.704208496 +0100 @@ -0,0 +1,199 @@ +/* + * arch/arm/mach-bcm2708/include/mach/irqs.h @@ -6542,7 +6545,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/irqs.h linux-rpi-3.6. +#endif /* _BCM2708_IRQS_H_ */ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/memory.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/memory.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/memory.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/memory.h 2013-01-20 16:51:23.113920133 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/memory.h 2013-02-01 18:44:57.706208485 +0100 @@ -0,0 +1,57 @@ +/* + * arch/arm/mach-bcm2708/include/mach/memory.h @@ -6603,8 +6606,8 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/memory.h linux-rpi-3. +#endif diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/platform.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/platform.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/platform.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/platform.h 2013-01-20 16:51:23.114920128 +0100 -@@ -0,0 +1,225 @@ ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/platform.h 2013-02-01 18:44:57.706208485 +0100 +@@ -0,0 +1,226 @@ +/* + * arch/arm/mach-bcm2708/include/mach/platform.h + * @@ -6669,6 +6672,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/platform.h linux-rpi- +#define DMA_BASE (BCM2708_PERI_BASE + 0x7000) /* DMA controller */ +#define ARM_BASE (BCM2708_PERI_BASE + 0xB000) /* BCM2708 ARM control block */ +#define PM_BASE (BCM2708_PERI_BASE + 0x100000) /* Power Management, Reset controller and Watchdog registers */ ++#define RNG_BASE (BCM2708_PERI_BASE + 0x104000) /* Hardware RNG */ +#define GPIO_BASE (BCM2708_PERI_BASE + 0x200000) /* GPIO */ +#define UART0_BASE (BCM2708_PERI_BASE + 0x201000) /* Uart 0 */ +#define MMCI0_BASE (BCM2708_PERI_BASE + 0x202000) /* MMC interface */ @@ -6832,7 +6836,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/platform.h linux-rpi- +/* END */ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/power.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/power.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/power.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/power.h 2013-01-20 16:51:23.113920133 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/power.h 2013-02-01 18:44:57.706208485 +0100 @@ -0,0 +1,26 @@ +/* + * linux/arch/arm/mach-bcm2708/power.h @@ -6862,7 +6866,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/power.h linux-rpi-3.6 +#endif diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/system.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/system.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/system.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/system.h 2013-01-20 16:51:23.112920137 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/system.h 2013-02-01 18:44:57.705208490 +0100 @@ -0,0 +1,38 @@ +/* + * arch/arm/mach-bcm2708/include/mach/system.h @@ -6904,7 +6908,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/system.h linux-rpi-3. +#endif diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/timex.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/timex.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/timex.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/timex.h 2013-01-20 16:51:23.115920122 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/timex.h 2013-02-01 18:44:57.707208479 +0100 @@ -0,0 +1,23 @@ +/* + * arch/arm/mach-bcm2708/include/mach/timex.h @@ -6931,7 +6935,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/timex.h linux-rpi-3.6 +#define CLOCK_TICK_RATE (1000000) diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/uncompress.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/uncompress.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/uncompress.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/uncompress.h 2013-01-20 16:51:23.114920128 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/uncompress.h 2013-02-01 18:44:57.706208485 +0100 @@ -0,0 +1,85 @@ +/* + * arch/arm/mach-bcn2708/include/mach/uncompress.h @@ -7020,7 +7024,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/uncompress.h linux-rp + diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/vcio.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/vcio.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/vcio.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/vcio.h 2013-01-20 16:51:23.113920133 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/vcio.h 2013-02-01 18:44:57.705208490 +0100 @@ -0,0 +1,141 @@ +/* + * arch/arm/mach-bcm2708/include/mach/vcio.h @@ -7165,7 +7169,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/vcio.h linux-rpi-3.6. +#endif diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/vc_mem.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/vc_mem.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/vc_mem.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/vc_mem.h 2013-01-20 16:51:23.115920122 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/vc_mem.h 2013-02-01 18:44:57.707208479 +0100 @@ -0,0 +1,36 @@ +/***************************************************************************** +* Copyright 2010 - 2011 Broadcom Corporation. All rights reserved. @@ -7205,7 +7209,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/vc_mem.h linux-rpi-3. + diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/vc_support.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/vc_support.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/vc_support.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/vc_support.h 2013-01-20 16:51:23.114920128 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/vc_support.h 2013-02-01 18:44:57.707208479 +0100 @@ -0,0 +1,69 @@ +#ifndef _VC_SUPPORT_H_ +#define _VC_SUPPORT_H_ @@ -7278,7 +7282,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/vc_support.h linux-rp +#endif diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/vmalloc.h linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/vmalloc.h --- linux-3.6.11/arch/arm/mach-bcm2708/include/mach/vmalloc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/vmalloc.h 2013-01-20 16:51:23.112920137 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/include/mach/vmalloc.h 2013-02-01 18:44:57.705208490 +0100 @@ -0,0 +1,20 @@ +/* + * arch/arm/mach-bcm2708/include/mach/vmalloc.h @@ -7302,7 +7306,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/include/mach/vmalloc.h linux-rpi-3 +#define VMALLOC_END (0xe8000000) diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/Kconfig linux-rpi-3.6.y/arch/arm/mach-bcm2708/Kconfig --- linux-3.6.11/arch/arm/mach-bcm2708/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/Kconfig 2013-01-20 16:51:23.115920122 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/Kconfig 2013-02-01 18:44:57.708208474 +0100 @@ -0,0 +1,41 @@ +menu "Broadcom BCM2708 Implementations" + depends on ARCH_BCM2708 @@ -7347,7 +7351,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/Kconfig linux-rpi-3.6.y/arch/arm/m +endmenu diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/Makefile linux-rpi-3.6.y/arch/arm/mach-bcm2708/Makefile --- linux-3.6.11/arch/arm/mach-bcm2708/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/Makefile 2013-01-20 16:51:23.111920142 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/Makefile 2013-02-01 18:44:57.702208507 +0100 @@ -0,0 +1,11 @@ +# +# Makefile for the linux kernel. @@ -7362,14 +7366,14 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/Makefile linux-rpi-3.6.y/arch/arm/ + diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/Makefile.boot linux-rpi-3.6.y/arch/arm/mach-bcm2708/Makefile.boot --- linux-3.6.11/arch/arm/mach-bcm2708/Makefile.boot 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/Makefile.boot 2013-01-20 16:51:23.115920122 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/Makefile.boot 2013-02-01 18:44:57.708208474 +0100 @@ -0,0 +1,3 @@ + zreladdr-y := 0x00008000 +params_phys-y := 0x00000100 +initrd_phys-y := 0x00800000 diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/power.c linux-rpi-3.6.y/arch/arm/mach-bcm2708/power.c --- linux-3.6.11/arch/arm/mach-bcm2708/power.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/power.c 2013-01-20 16:51:23.110920148 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/power.c 2013-02-01 18:44:57.702208507 +0100 @@ -0,0 +1,194 @@ +/* + * linux/arch/arm/mach-bcm2708/power.c @@ -7567,7 +7571,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/power.c linux-rpi-3.6.y/arch/arm/m +MODULE_LICENSE("GPL"); diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/vcio.c linux-rpi-3.6.y/arch/arm/mach-bcm2708/vcio.c --- linux-3.6.11/arch/arm/mach-bcm2708/vcio.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/vcio.c 2013-01-20 16:51:23.111920142 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/vcio.c 2013-02-01 18:44:57.704208496 +0100 @@ -0,0 +1,474 @@ +/* + * linux/arch/arm/mach-bcm2708/vcio.c @@ -8045,7 +8049,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/vcio.c linux-rpi-3.6.y/arch/arm/ma +MODULE_ALIAS("platform:bcm-mbox"); diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/vc_mem.c linux-rpi-3.6.y/arch/arm/mach-bcm2708/vc_mem.c --- linux-3.6.11/arch/arm/mach-bcm2708/vc_mem.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/vc_mem.c 2013-01-20 16:51:23.111920142 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/vc_mem.c 2013-02-01 18:44:57.702208507 +0100 @@ -0,0 +1,458 @@ +/***************************************************************************** +* Copyright 2010 - 2011 Broadcom Corporation. All rights reserved. @@ -8507,7 +8511,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/vc_mem.c linux-rpi-3.6.y/arch/arm/ + diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/vc_support.c linux-rpi-3.6.y/arch/arm/mach-bcm2708/vc_support.c --- linux-3.6.11/arch/arm/mach-bcm2708/vc_support.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/vc_support.c 2013-01-20 16:51:23.115920122 +0100 ++++ linux-rpi-3.6.y/arch/arm/mach-bcm2708/vc_support.c 2013-02-01 18:44:57.708208474 +0100 @@ -0,0 +1,319 @@ +/* + * vc_support.c @@ -8830,7 +8834,7 @@ diff -Naur linux-3.6.11/arch/arm/mach-bcm2708/vc_support.c linux-rpi-3.6.y/arch/ + diff -Naur linux-3.6.11/arch/arm/Makefile linux-rpi-3.6.y/arch/arm/Makefile --- linux-3.6.11/arch/arm/Makefile 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/Makefile 2013-01-20 16:51:23.281919169 +0100 ++++ linux-rpi-3.6.y/arch/arm/Makefile 2013-02-01 18:44:57.873207552 +0100 @@ -198,6 +198,7 @@ machine-$(CONFIG_MACH_SPEAR320) := spear3xx machine-$(CONFIG_MACH_SPEAR600) := spear6xx @@ -8841,7 +8845,7 @@ diff -Naur linux-3.6.11/arch/arm/Makefile linux-rpi-3.6.y/arch/arm/Makefile # by CONFIG_* macro name. diff -Naur linux-3.6.11/arch/arm/mm/alignment.c linux-rpi-3.6.y/arch/arm/mm/alignment.c --- linux-3.6.11/arch/arm/mm/alignment.c 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mm/alignment.c 2013-01-20 16:51:23.238919413 +0100 ++++ linux-rpi-3.6.y/arch/arm/mm/alignment.c 2013-02-01 18:44:57.828207803 +0100 @@ -856,9 +856,11 @@ case 0x08000000: /* ldm or stm, or thumb-2 32bit instruction */ if (thumb2_32b) @@ -8858,7 +8862,7 @@ diff -Naur linux-3.6.11/arch/arm/mm/alignment.c linux-rpi-3.6.y/arch/arm/mm/alig goto bad; diff -Naur linux-3.6.11/arch/arm/mm/Kconfig linux-rpi-3.6.y/arch/arm/mm/Kconfig --- linux-3.6.11/arch/arm/mm/Kconfig 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mm/Kconfig 2013-01-20 16:51:23.247919362 +0100 ++++ linux-rpi-3.6.y/arch/arm/mm/Kconfig 2013-02-01 18:44:57.837207753 +0100 @@ -354,7 +354,7 @@ # ARMv6 @@ -8870,7 +8874,7 @@ diff -Naur linux-3.6.11/arch/arm/mm/Kconfig linux-rpi-3.6.y/arch/arm/mm/Kconfig select CPU_PABRT_V6 diff -Naur linux-3.6.11/arch/arm/mm/proc-v6.S linux-rpi-3.6.y/arch/arm/mm/proc-v6.S --- linux-3.6.11/arch/arm/mm/proc-v6.S 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/mm/proc-v6.S 2013-01-20 16:51:23.246919368 +0100 ++++ linux-rpi-3.6.y/arch/arm/mm/proc-v6.S 2013-02-01 18:44:57.836207759 +0100 @@ -73,10 +73,19 @@ * * IRQs are already disabled. @@ -8896,7 +8900,7 @@ diff -Naur linux-3.6.11/arch/arm/mm/proc-v6.S linux-rpi-3.6.y/arch/arm/mm/proc-v ENTRY(cpu_v6_dcache_clean_area) diff -Naur linux-3.6.11/arch/arm/tools/mach-types linux-rpi-3.6.y/arch/arm/tools/mach-types --- linux-3.6.11/arch/arm/tools/mach-types 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/arch/arm/tools/mach-types 2013-01-20 16:51:23.453918180 +0100 ++++ linux-rpi-3.6.y/arch/arm/tools/mach-types 2013-02-01 18:44:58.048206575 +0100 @@ -519,6 +519,7 @@ prima2_evb MACH_PRIMA2_EVB PRIMA2_EVB 3103 paz00 MACH_PAZ00 PAZ00 3128 @@ -8907,7 +8911,7 @@ diff -Naur linux-3.6.11/arch/arm/tools/mach-types linux-rpi-3.6.y/arch/arm/tools ics_if_voip MACH_ICS_IF_VOIP ICS_IF_VOIP 3206 diff -Naur linux-3.6.11/drivers/char/broadcom/Kconfig linux-rpi-3.6.y/drivers/char/broadcom/Kconfig --- linux-3.6.11/drivers/char/broadcom/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/char/broadcom/Kconfig 2013-01-20 16:51:37.214837924 +0100 ++++ linux-rpi-3.6.y/drivers/char/broadcom/Kconfig 2013-02-01 18:45:10.347137966 +0100 @@ -0,0 +1,18 @@ +# +# Broadcom char driver config @@ -8929,13 +8933,13 @@ diff -Naur linux-3.6.11/drivers/char/broadcom/Kconfig linux-rpi-3.6.y/drivers/ch + diff -Naur linux-3.6.11/drivers/char/broadcom/Makefile linux-rpi-3.6.y/drivers/char/broadcom/Makefile --- linux-3.6.11/drivers/char/broadcom/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/char/broadcom/Makefile 2013-01-20 16:51:37.214837924 +0100 ++++ linux-rpi-3.6.y/drivers/char/broadcom/Makefile 2013-02-01 18:45:10.347137966 +0100 @@ -0,0 +1,2 @@ +obj-$(CONFIG_BCM_VC_CMA) += vc_cma/ + diff -Naur linux-3.6.11/drivers/char/broadcom/vc_cma/Makefile linux-rpi-3.6.y/drivers/char/broadcom/vc_cma/Makefile --- linux-3.6.11/drivers/char/broadcom/vc_cma/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/char/broadcom/vc_cma/Makefile 2013-01-20 16:51:37.213837930 +0100 ++++ linux-rpi-3.6.y/drivers/char/broadcom/vc_cma/Makefile 2013-02-01 18:45:10.346137971 +0100 @@ -0,0 +1,15 @@ +EXTRA_CFLAGS += -Wall -Wstrict-prototypes -Wno-trigraphs +EXTRA_CFLAGS += -Werror @@ -8954,7 +8958,7 @@ diff -Naur linux-3.6.11/drivers/char/broadcom/vc_cma/Makefile linux-rpi-3.6.y/dr + diff -Naur linux-3.6.11/drivers/char/broadcom/vc_cma/vc_cma.c linux-rpi-3.6.y/drivers/char/broadcom/vc_cma/vc_cma.c --- linux-3.6.11/drivers/char/broadcom/vc_cma/vc_cma.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/char/broadcom/vc_cma/vc_cma.c 2013-01-20 16:51:37.213837930 +0100 ++++ linux-rpi-3.6.y/drivers/char/broadcom/vc_cma/vc_cma.c 2013-02-01 18:45:10.347137966 +0100 @@ -0,0 +1,1145 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -10101,9 +10105,157 @@ diff -Naur linux-3.6.11/drivers/char/broadcom/vc_cma/vc_cma.c linux-rpi-3.6.y/dr +module_exit(vc_cma_exit); +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Broadcom Corporation"); +diff -Naur linux-3.6.11/drivers/char/hw_random/bcm2708-rng.c linux-rpi-3.6.y/drivers/char/hw_random/bcm2708-rng.c +--- linux-3.6.11/drivers/char/hw_random/bcm2708-rng.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-rpi-3.6.y/drivers/char/hw_random/bcm2708-rng.c 2013-02-01 18:45:10.350137949 +0100 +@@ -0,0 +1,117 @@ ++/** ++ * Copyright (c) 2010-2012 Broadcom. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions, and the following disclaimer, ++ * without modification. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The names of the above-listed copyright holders may not be used ++ * to endorse or promote products derived from this software without ++ * specific prior written permission. ++ * ++ * ALTERNATIVELY, this software may be distributed under the terms of the ++ * GNU General Public License ("GPL") version 2, as published by the Free ++ * Software Foundation. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS ++ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR ++ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ++ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF ++ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ++ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++#define RNG_CTRL (0x0) ++#define RNG_STATUS (0x4) ++#define RNG_DATA (0x8) ++#define RNG_FF_THRESHOLD (0xc) ++ ++/* enable rng */ ++#define RNG_RBGEN 0x1 ++/* double speed, less random mode */ ++#define RNG_RBG2X 0x2 ++ ++/* the initial numbers generated are "less random" so will be discarded */ ++#define RNG_WARMUP_COUNT 0x40000 ++ ++static int bcm2708_rng_data_read(struct hwrng *rng, u32 *buffer) ++{ ++ void __iomem *rng_base = (void __iomem *)rng->priv; ++ unsigned words; ++ /* wait for a random number to be in fifo */ ++ do { ++ words = __raw_readl(rng_base + RNG_STATUS)>>24; ++ } ++ while (words == 0); ++ /* read the random number */ ++ *buffer = __raw_readl(rng_base + RNG_DATA); ++ return 4; ++} ++ ++static struct hwrng bcm2708_rng_ops = { ++ .name = "bcm2708", ++ .data_read = bcm2708_rng_data_read, ++}; ++ ++static int __init bcm2708_rng_init(void) ++{ ++ void __iomem *rng_base; ++ int err; ++ ++ /* map peripheral */ ++ rng_base = ioremap(RNG_BASE, 0x10); ++ pr_info("bcm2708_rng_init=%p\n", rng_base); ++ if (!rng_base) { ++ pr_err("bcm2708_rng_init failed to ioremap\n"); ++ return -ENOMEM; ++ } ++ bcm2708_rng_ops.priv = (unsigned long)rng_base; ++ /* register driver */ ++ err = hwrng_register(&bcm2708_rng_ops); ++ if (err) { ++ pr_err("bcm2708_rng_init hwrng_register()=%d\n", err); ++ iounmap(rng_base); ++ } else { ++ /* set warm-up count & enable */ ++ __raw_writel(RNG_WARMUP_COUNT, rng_base + RNG_STATUS); ++ __raw_writel(RNG_RBGEN, rng_base + RNG_CTRL); ++ } ++ return err; ++} ++ ++static void __exit bcm2708_rng_exit(void) ++{ ++ void __iomem *rng_base = (void __iomem *)bcm2708_rng_ops.priv; ++ pr_info("bcm2708_rng_exit\n"); ++ /* disable rng hardware */ ++ __raw_writel(0, rng_base + RNG_CTRL); ++ /* unregister driver */ ++ hwrng_unregister(&bcm2708_rng_ops); ++ iounmap(rng_base); ++} ++ ++module_init(bcm2708_rng_init); ++module_exit(bcm2708_rng_exit); ++ ++MODULE_DESCRIPTION("BCM2708 H/W Random Number Generator (RNG) driver"); ++MODULE_LICENSE("GPL and additional rights"); +diff -Naur linux-3.6.11/drivers/char/hw_random/Kconfig linux-rpi-3.6.y/drivers/char/hw_random/Kconfig +--- linux-3.6.11/drivers/char/hw_random/Kconfig 2012-12-17 18:27:45.000000000 +0100 ++++ linux-rpi-3.6.y/drivers/char/hw_random/Kconfig 2013-02-01 18:45:10.350137949 +0100 +@@ -289,3 +289,14 @@ + module will be called exynos-rng. + + If unsure, say Y. ++ ++config HW_RANDOM_BCM2708 ++ tristate "BCM2708 generic true random number generator support" ++ depends on HW_RANDOM && ARCH_BCM2708 ++ ---help--- ++ This driver provides the kernel-side support for the BCM2708 hardware. ++ ++ To compile this driver as a module, choose M here: the ++ module will be called bcm2708-rng. ++ ++ If unsure, say N. +\ Kein Zeilenumbruch am Dateiende. +diff -Naur linux-3.6.11/drivers/char/hw_random/Makefile linux-rpi-3.6.y/drivers/char/hw_random/Makefile +--- linux-3.6.11/drivers/char/hw_random/Makefile 2012-12-17 18:27:45.000000000 +0100 ++++ linux-rpi-3.6.y/drivers/char/hw_random/Makefile 2013-02-01 18:45:10.348137960 +0100 +@@ -25,3 +25,4 @@ + obj-$(CONFIG_HW_RANDOM_PPC4XX) += ppc4xx-rng.o + obj-$(CONFIG_HW_RANDOM_PSERIES) += pseries-rng.o + obj-$(CONFIG_HW_RANDOM_EXYNOS) += exynos-rng.o ++obj-$(CONFIG_HW_RANDOM_BCM2708) += bcm2708-rng.o diff -Naur linux-3.6.11/drivers/char/Kconfig linux-rpi-3.6.y/drivers/char/Kconfig --- linux-3.6.11/drivers/char/Kconfig 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/char/Kconfig 2013-01-20 16:51:37.228837844 +0100 ++++ linux-rpi-3.6.y/drivers/char/Kconfig 2013-02-01 18:45:10.360137896 +0100 @@ -585,6 +585,8 @@ source "drivers/s390/char/Kconfig" @@ -10115,7 +10267,7 @@ diff -Naur linux-3.6.11/drivers/char/Kconfig linux-rpi-3.6.y/drivers/char/Kconfi default n diff -Naur linux-3.6.11/drivers/char/Makefile linux-rpi-3.6.y/drivers/char/Makefile --- linux-3.6.11/drivers/char/Makefile 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/char/Makefile 2013-01-20 16:51:37.205837976 +0100 ++++ linux-rpi-3.6.y/drivers/char/Makefile 2013-02-01 18:45:10.340138003 +0100 @@ -63,3 +63,6 @@ js-rtc-y = rtc.o @@ -10125,7 +10277,7 @@ diff -Naur linux-3.6.11/drivers/char/Makefile linux-rpi-3.6.y/drivers/char/Makef + diff -Naur linux-3.6.11/drivers/cpufreq/bcm2835-cpufreq.c linux-rpi-3.6.y/drivers/cpufreq/bcm2835-cpufreq.c --- linux-3.6.11/drivers/cpufreq/bcm2835-cpufreq.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/cpufreq/bcm2835-cpufreq.c 2013-01-20 16:51:35.768846232 +0100 ++++ linux-rpi-3.6.y/drivers/cpufreq/bcm2835-cpufreq.c 2013-02-01 18:45:09.408143141 +0100 @@ -0,0 +1,239 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -10368,7 +10520,7 @@ diff -Naur linux-3.6.11/drivers/cpufreq/bcm2835-cpufreq.c linux-rpi-3.6.y/driver + diff -Naur linux-3.6.11/drivers/cpufreq/Kconfig.arm linux-rpi-3.6.y/drivers/cpufreq/Kconfig.arm --- linux-3.6.11/drivers/cpufreq/Kconfig.arm 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/cpufreq/Kconfig.arm 2013-01-20 16:51:35.781846158 +0100 ++++ linux-rpi-3.6.y/drivers/cpufreq/Kconfig.arm 2013-02-01 18:45:09.418143085 +0100 @@ -76,3 +76,12 @@ help This adds the CPUFreq driver for Samsung EXYNOS5250 @@ -10384,7 +10536,7 @@ diff -Naur linux-3.6.11/drivers/cpufreq/Kconfig.arm linux-rpi-3.6.y/drivers/cpuf + diff -Naur linux-3.6.11/drivers/cpufreq/Makefile linux-rpi-3.6.y/drivers/cpufreq/Makefile --- linux-3.6.11/drivers/cpufreq/Makefile 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/cpufreq/Makefile 2013-01-20 16:51:35.764846255 +0100 ++++ linux-rpi-3.6.y/drivers/cpufreq/Makefile 2013-02-01 18:45:09.406143152 +0100 @@ -48,6 +48,7 @@ obj-$(CONFIG_ARM_EXYNOS4X12_CPUFREQ) += exynos4x12-cpufreq.o obj-$(CONFIG_ARM_EXYNOS5250_CPUFREQ) += exynos5250-cpufreq.o @@ -10395,7 +10547,7 @@ diff -Naur linux-3.6.11/drivers/cpufreq/Makefile linux-rpi-3.6.y/drivers/cpufreq # PowerPC platform drivers diff -Naur linux-3.6.11/drivers/hwmon/bcm2835-hwmon.c linux-rpi-3.6.y/drivers/hwmon/bcm2835-hwmon.c --- linux-3.6.11/drivers/hwmon/bcm2835-hwmon.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/hwmon/bcm2835-hwmon.c 2013-01-20 16:51:35.842845807 +0100 ++++ linux-rpi-3.6.y/drivers/hwmon/bcm2835-hwmon.c 2013-02-01 18:45:09.463142834 +0100 @@ -0,0 +1,219 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -10618,7 +10770,7 @@ diff -Naur linux-3.6.11/drivers/hwmon/bcm2835-hwmon.c linux-rpi-3.6.y/drivers/hw +module_platform_driver(bcm2835_hwmon_driver); diff -Naur linux-3.6.11/drivers/hwmon/Kconfig linux-rpi-3.6.y/drivers/hwmon/Kconfig --- linux-3.6.11/drivers/hwmon/Kconfig 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/hwmon/Kconfig 2013-01-20 16:51:35.875845618 +0100 ++++ linux-rpi-3.6.y/drivers/hwmon/Kconfig 2013-02-01 18:45:09.486142706 +0100 @@ -1411,6 +1411,16 @@ help Support for the A/D converter on MC13783 and MC13892 PMIC. @@ -10638,7 +10790,7 @@ diff -Naur linux-3.6.11/drivers/hwmon/Kconfig linux-rpi-3.6.y/drivers/hwmon/Kcon comment "ACPI drivers" diff -Naur linux-3.6.11/drivers/hwmon/Makefile linux-rpi-3.6.y/drivers/hwmon/Makefile --- linux-3.6.11/drivers/hwmon/Makefile 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/hwmon/Makefile 2013-01-20 16:51:35.815845962 +0100 ++++ linux-rpi-3.6.y/drivers/hwmon/Makefile 2013-02-01 18:45:09.446142929 +0100 @@ -129,6 +129,7 @@ obj-$(CONFIG_SENSORS_W83L786NG) += w83l786ng.o obj-$(CONFIG_SENSORS_WM831X) += wm831x-hwmon.o @@ -10649,7 +10801,7 @@ diff -Naur linux-3.6.11/drivers/hwmon/Makefile linux-rpi-3.6.y/drivers/hwmon/Mak diff -Naur linux-3.6.11/drivers/i2c/busses/i2c-bcm2708.c linux-rpi-3.6.y/drivers/i2c/busses/i2c-bcm2708.c --- linux-3.6.11/drivers/i2c/busses/i2c-bcm2708.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/i2c/busses/i2c-bcm2708.c 2013-01-20 16:51:36.088844394 +0100 ++++ linux-rpi-3.6.y/drivers/i2c/busses/i2c-bcm2708.c 2013-02-01 18:45:09.654141768 +0100 @@ -0,0 +1,400 @@ +/* + * Driver for Broadcom BCM2708 BSC Controllers @@ -11053,7 +11205,7 @@ diff -Naur linux-3.6.11/drivers/i2c/busses/i2c-bcm2708.c linux-rpi-3.6.y/drivers +MODULE_ALIAS("platform:" DRV_NAME); diff -Naur linux-3.6.11/drivers/i2c/busses/Kconfig linux-rpi-3.6.y/drivers/i2c/busses/Kconfig --- linux-3.6.11/drivers/i2c/busses/Kconfig 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/i2c/busses/Kconfig 2013-01-20 16:51:36.108844279 +0100 ++++ linux-rpi-3.6.y/drivers/i2c/busses/Kconfig 2013-02-01 18:45:09.671141673 +0100 @@ -314,6 +314,25 @@ This driver can also be built as a module. If so, the module will be called i2c-au1550. @@ -11082,7 +11234,7 @@ diff -Naur linux-3.6.11/drivers/i2c/busses/Kconfig linux-rpi-3.6.y/drivers/i2c/b depends on BLACKFIN diff -Naur linux-3.6.11/drivers/i2c/busses/Makefile linux-rpi-3.6.y/drivers/i2c/busses/Makefile --- linux-3.6.11/drivers/i2c/busses/Makefile 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/i2c/busses/Makefile 2013-01-20 16:51:36.085844412 +0100 ++++ linux-rpi-3.6.y/drivers/i2c/busses/Makefile 2013-02-01 18:45:09.650141790 +0100 @@ -30,6 +30,7 @@ # Embedded system I2C/SMBus host controller drivers obj-$(CONFIG_I2C_AT91) += i2c-at91.o @@ -11093,7 +11245,7 @@ diff -Naur linux-3.6.11/drivers/i2c/busses/Makefile linux-rpi-3.6.y/drivers/i2c/ obj-$(CONFIG_I2C_DAVINCI) += i2c-davinci.o diff -Naur linux-3.6.11/drivers/misc/Kconfig linux-rpi-3.6.y/drivers/misc/Kconfig --- linux-3.6.11/drivers/misc/Kconfig 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/Kconfig 2013-01-20 16:51:39.333825744 +0100 ++++ linux-rpi-3.6.y/drivers/misc/Kconfig 2013-02-01 18:45:12.476126489 +0100 @@ -517,4 +517,6 @@ source "drivers/misc/carma/Kconfig" source "drivers/misc/altera-stapl/Kconfig" @@ -11103,7 +11255,7 @@ diff -Naur linux-3.6.11/drivers/misc/Kconfig linux-rpi-3.6.y/drivers/misc/Kconfi + diff -Naur linux-3.6.11/drivers/misc/Makefile linux-rpi-3.6.y/drivers/misc/Makefile --- linux-3.6.11/drivers/misc/Makefile 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/Makefile 2013-01-20 16:51:39.323825802 +0100 ++++ linux-rpi-3.6.y/drivers/misc/Makefile 2013-02-01 18:45:12.463126559 +0100 @@ -50,3 +50,4 @@ obj-$(CONFIG_USB_SWITCH_FSA9480) += fsa9480.o obj-$(CONFIG_ALTERA_STAPL) +=altera-stapl/ @@ -11111,7 +11263,7 @@ diff -Naur linux-3.6.11/drivers/misc/Makefile linux-rpi-3.6.y/drivers/misc/Makef +obj-$(CONFIG_BCM2708_VCHIQ) += vc04_services/ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchi/connections/connection.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/connections/connection.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchi/connections/connection.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/connections/connection.h 2013-01-20 16:51:39.341825698 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/connections/connection.h 2013-02-01 18:45:12.485126440 +0100 @@ -0,0 +1,328 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -11443,7 +11595,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchi/connections/co +/****************************** End of file **********************************/ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h 2013-01-20 16:51:39.341825698 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h 2013-02-01 18:45:12.485126440 +0100 @@ -0,0 +1,204 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -11651,7 +11803,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchi/message_driver +/****************************** End of file ***********************************/ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h 2013-01-20 16:51:39.340825704 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h 2013-02-01 18:45:12.484126446 +0100 @@ -0,0 +1,224 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -11879,7 +12031,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h lin +/****************************** End of file **********************************/ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h 2013-01-20 16:51:39.340825704 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h 2013-02-01 18:45:12.484126446 +0100 @@ -0,0 +1,71 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -11954,7 +12106,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchi/vchi_cfg_inter +#endif /*VCHI_CFG_INTERNAL_H_*/ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchi/vchi_common.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/vchi_common.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchi/vchi_common.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/vchi_common.h 2013-01-20 16:51:39.340825704 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/vchi_common.h 2013-02-01 18:45:12.484126446 +0100 @@ -0,0 +1,163 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -12121,7 +12273,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchi/vchi_common.h +#endif // VCHI_COMMON_H_ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchi/vchi.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/vchi.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchi/vchi.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/vchi.h 2013-01-20 16:51:39.340825704 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/vchi.h 2013-02-01 18:45:12.485126440 +0100 @@ -0,0 +1,370 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -12495,7 +12647,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchi/vchi.h linux-r +/****************************** End of file **********************************/ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchi/vchi_mh.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/vchi_mh.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchi/vchi_mh.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/vchi_mh.h 2013-01-20 16:51:39.340825704 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchi/vchi_mh.h 2013-02-01 18:45:12.485126440 +0100 @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -12541,7 +12693,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchi/vchi_mh.h linu +#endif diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c 2013-01-20 16:51:39.338825715 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c 2013-02-01 18:45:12.483126451 +0100 @@ -0,0 +1,538 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -13083,7 +13235,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_283 +} diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h 2013-01-20 16:51:39.339825710 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h 2013-02-01 18:45:12.484126446 +0100 @@ -0,0 +1,42 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -13129,7 +13281,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_283 +#endif /* VCHIQ_2835_H */ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c 2013-01-20 16:51:39.336825726 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c 2013-02-01 18:45:12.481126462 +0100 @@ -0,0 +1,2802 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -15935,7 +16087,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm +MODULE_AUTHOR("Broadcom Corporation"); diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h 2013-01-20 16:51:39.339825710 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h 2013-02-01 18:45:12.484126446 +0100 @@ -0,0 +1,212 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -16151,7 +16303,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm +#endif /* VCHIQ_ARM_H */ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h 2013-01-20 16:51:39.337825720 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h 2013-02-01 18:45:12.482126456 +0100 @@ -0,0 +1,37 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -16192,7 +16344,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_bui +const char *vchiq_get_build_date(void); diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h 2013-01-20 16:51:39.338825715 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h 2013-02-01 18:45:12.482126456 +0100 @@ -0,0 +1,60 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -16256,7 +16408,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg +#endif /* VCHIQ_CFG_H */ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c 2013-01-20 16:51:39.339825710 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c 2013-02-01 18:45:12.483126451 +0100 @@ -0,0 +1,119 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -16379,7 +16531,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_con +EXPORT_SYMBOL(vchiq_add_connected_callback); diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h 2013-01-20 16:51:39.339825710 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h 2013-02-01 18:45:12.483126451 +0100 @@ -0,0 +1,51 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -16434,7 +16586,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_con + diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c 2013-01-20 16:51:39.337825720 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c 2013-02-01 18:45:12.481126462 +0100 @@ -0,0 +1,3727 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -20165,7 +20317,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cor +} diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h 2013-01-20 16:51:39.339825710 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h 2013-02-01 18:45:12.483126451 +0100 @@ -0,0 +1,698 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -20867,7 +21019,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cor +#endif diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion 2013-01-20 16:51:39.338825715 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion 2013-02-01 18:45:12.482126456 +0100 @@ -0,0 +1,89 @@ +#!/usr/bin/perl -w + @@ -20960,7 +21112,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_gen + diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h 2013-01-20 16:51:39.336825726 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h 2013-02-01 18:45:12.480126467 +0100 @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -21005,7 +21157,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h l + diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h 2013-01-20 16:51:39.339825710 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h 2013-02-01 18:45:12.484126446 +0100 @@ -0,0 +1,182 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -21191,7 +21343,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if. +#endif /* VCHIQ_IF_H */ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h 2013-01-20 16:51:39.337825720 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h 2013-02-01 18:45:12.482126456 +0100 @@ -0,0 +1,129 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -21324,7 +21476,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioc +#endif diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c 2013-01-20 16:51:39.338825715 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c 2013-02-01 18:45:12.483126451 +0100 @@ -0,0 +1,454 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -21782,7 +21934,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ker +} diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h 2013-01-20 16:51:39.339825710 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h 2013-02-01 18:45:12.484126446 +0100 @@ -0,0 +1,71 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -21857,7 +22009,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_mem +#endif diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h 2013-01-20 16:51:39.339825710 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h 2013-02-01 18:45:12.483126451 +0100 @@ -0,0 +1,58 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -21919,7 +22071,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pag +#endif /* VCHIQ_PAGELIST_H */ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c 2013-01-20 16:51:39.338825715 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c 2013-02-01 18:45:12.482126456 +0100 @@ -0,0 +1,240 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -22163,7 +22315,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pro + diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c 2013-01-20 16:51:39.339825710 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c 2013-02-01 18:45:12.483126451 +0100 @@ -0,0 +1,802 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -22969,7 +23121,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shi +EXPORT_SYMBOL(vchi_service_release); diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c 2013-01-20 16:51:39.338825715 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c 2013-02-01 18:45:12.482126456 +0100 @@ -0,0 +1,120 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -23093,7 +23245,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_uti +} diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h 2013-01-20 16:51:39.338825715 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h 2013-02-01 18:45:12.482126456 +0100 @@ -0,0 +1,82 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -23179,7 +23331,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_uti + diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c --- linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c 2013-01-20 16:51:39.337825720 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c 2013-02-01 18:45:12.482126456 +0100 @@ -0,0 +1,59 @@ +/** + * Copyright (c) 2010-2012 Broadcom. All rights reserved. @@ -23242,7 +23394,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ver +} diff -Naur linux-3.6.11/drivers/misc/vc04_services/Kconfig linux-rpi-3.6.y/drivers/misc/vc04_services/Kconfig --- linux-3.6.11/drivers/misc/vc04_services/Kconfig 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/Kconfig 2013-01-20 16:51:39.341825698 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/Kconfig 2013-02-01 18:45:12.486126435 +0100 @@ -0,0 +1,10 @@ +config BCM2708_VCHIQ + tristate "Videocore VCHIQ" @@ -23256,7 +23408,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/Kconfig linux-rpi-3.6.y/drive + diff -Naur linux-3.6.11/drivers/misc/vc04_services/Makefile linux-rpi-3.6.y/drivers/misc/vc04_services/Makefile --- linux-3.6.11/drivers/misc/vc04_services/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/misc/vc04_services/Makefile 2013-01-20 16:51:39.336825726 +0100 ++++ linux-rpi-3.6.y/drivers/misc/vc04_services/Makefile 2013-02-01 18:45:12.480126467 +0100 @@ -0,0 +1,18 @@ +ifeq ($(CONFIG_MACH_BCM2708),y) + @@ -23278,7 +23430,7 @@ diff -Naur linux-3.6.11/drivers/misc/vc04_services/Makefile linux-rpi-3.6.y/driv + diff -Naur linux-3.6.11/drivers/mmc/card/block.c linux-rpi-3.6.y/drivers/mmc/card/block.c --- linux-3.6.11/drivers/mmc/card/block.c 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/mmc/card/block.c 2013-01-20 16:51:37.331837252 +0100 ++++ linux-rpi-3.6.y/drivers/mmc/card/block.c 2013-02-01 18:45:10.454137389 +0100 @@ -1135,7 +1135,7 @@ brq->data.blocks = 1; } @@ -23290,7 +23442,7 @@ diff -Naur linux-3.6.11/drivers/mmc/card/block.c linux-rpi-3.6.y/drivers/mmc/car */ diff -Naur linux-3.6.11/drivers/mmc/core/sd.c linux-rpi-3.6.y/drivers/mmc/core/sd.c --- linux-3.6.11/drivers/mmc/core/sd.c 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/mmc/core/sd.c 2013-01-20 16:51:37.327837275 +0100 ++++ linux-rpi-3.6.y/drivers/mmc/core/sd.c 2013-02-01 18:45:10.450137410 +0100 @@ -13,6 +13,8 @@ #include #include @@ -23451,7 +23603,7 @@ diff -Naur linux-3.6.11/drivers/mmc/core/sd.c linux-rpi-3.6.y/drivers/mmc/core/s * Fetch and process SD Status register. diff -Naur linux-3.6.11/drivers/mmc/host/Kconfig linux-rpi-3.6.y/drivers/mmc/host/Kconfig --- linux-3.6.11/drivers/mmc/host/Kconfig 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/mmc/host/Kconfig 2013-01-20 16:51:37.319837321 +0100 ++++ linux-rpi-3.6.y/drivers/mmc/host/Kconfig 2013-02-01 18:45:10.444137443 +0100 @@ -229,6 +229,27 @@ YMMV. @@ -23482,7 +23634,7 @@ diff -Naur linux-3.6.11/drivers/mmc/host/Kconfig linux-rpi-3.6.y/drivers/mmc/hos depends on ARCH_OMAP diff -Naur linux-3.6.11/drivers/mmc/host/Makefile linux-rpi-3.6.y/drivers/mmc/host/Makefile --- linux-3.6.11/drivers/mmc/host/Makefile 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/mmc/host/Makefile 2013-01-20 16:51:37.312837362 +0100 ++++ linux-rpi-3.6.y/drivers/mmc/host/Makefile 2013-02-01 18:45:10.437137481 +0100 @@ -13,6 +13,7 @@ obj-$(CONFIG_MMC_SDHCI_PXAV2) += sdhci-pxav2.o obj-$(CONFIG_MMC_SDHCI_S3C) += sdhci-s3c.o @@ -23493,7 +23645,7 @@ diff -Naur linux-3.6.11/drivers/mmc/host/Makefile linux-rpi-3.6.y/drivers/mmc/ho obj-$(CONFIG_MMC_OMAP) += omap.o diff -Naur linux-3.6.11/drivers/mmc/host/sdhci-bcm2708.c linux-rpi-3.6.y/drivers/mmc/host/sdhci-bcm2708.c --- linux-3.6.11/drivers/mmc/host/sdhci-bcm2708.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/mmc/host/sdhci-bcm2708.c 2013-01-20 16:51:37.315837344 +0100 ++++ linux-rpi-3.6.y/drivers/mmc/host/sdhci-bcm2708.c 2013-02-01 18:45:10.440137464 +0100 @@ -0,0 +1,1413 @@ +/* + * sdhci-bcm2708.c Support for SDHCI device on BCM2708 @@ -24910,7 +25062,7 @@ diff -Naur linux-3.6.11/drivers/mmc/host/sdhci-bcm2708.c linux-rpi-3.6.y/drivers + diff -Naur linux-3.6.11/drivers/mmc/host/sdhci.c linux-rpi-3.6.y/drivers/mmc/host/sdhci.c --- linux-3.6.11/drivers/mmc/host/sdhci.c 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/mmc/host/sdhci.c 2013-01-20 16:51:37.314837350 +0100 ++++ linux-rpi-3.6.y/drivers/mmc/host/sdhci.c 2013-02-01 18:45:10.439137470 +0100 @@ -28,6 +28,7 @@ #include #include @@ -25783,7 +25935,7 @@ diff -Naur linux-3.6.11/drivers/mmc/host/sdhci.c linux-rpi-3.6.y/drivers/mmc/hos sdhci_disable_card_detection(host); diff -Naur linux-3.6.11/drivers/mmc/host/sdhci.h linux-rpi-3.6.y/drivers/mmc/host/sdhci.h --- linux-3.6.11/drivers/mmc/host/sdhci.h 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/mmc/host/sdhci.h 2013-01-20 16:51:37.320837316 +0100 ++++ linux-rpi-3.6.y/drivers/mmc/host/sdhci.h 2013-02-01 18:45:10.444137443 +0100 @@ -275,6 +275,20 @@ void (*platform_reset_enter)(struct sdhci_host *host, u8 mask); void (*platform_reset_exit)(struct sdhci_host *host, u8 mask); @@ -25846,7 +25998,7 @@ diff -Naur linux-3.6.11/drivers/mmc/host/sdhci.h linux-rpi-3.6.y/drivers/mmc/hos #endif /* __SDHCI_HW_H */ diff -Naur linux-3.6.11/drivers/net/usb/smsc95xx.c linux-rpi-3.6.y/drivers/net/usb/smsc95xx.c --- linux-3.6.11/drivers/net/usb/smsc95xx.c 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/net/usb/smsc95xx.c 2013-01-20 16:51:38.237832044 +0100 ++++ linux-rpi-3.6.y/drivers/net/usb/smsc95xx.c 2013-02-01 18:45:11.285132909 +0100 @@ -46,11 +46,23 @@ #define SMSC95XX_INTERNAL_PHY_ID (1) #define SMSC95XX_TX_OVERHEAD (8) @@ -26863,7 +27015,7 @@ diff -Naur linux-3.6.11/drivers/net/usb/smsc95xx.c linux-rpi-3.6.y/drivers/net/u }; diff -Naur linux-3.6.11/drivers/net/usb/smsc95xx.h linux-rpi-3.6.y/drivers/net/usb/smsc95xx.h --- linux-3.6.11/drivers/net/usb/smsc95xx.h 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/net/usb/smsc95xx.h 2013-01-20 16:51:38.233832068 +0100 ++++ linux-rpi-3.6.y/drivers/net/usb/smsc95xx.h 2013-02-01 18:45:11.282132925 +0100 @@ -63,6 +63,7 @@ #define INT_STS_TDFO_ (0x00001000) #define INT_STS_RXDF_ (0x00000800) @@ -26904,7 +27056,7 @@ diff -Naur linux-3.6.11/drivers/net/usb/smsc95xx.h linux-rpi-3.6.y/drivers/net/u #define Tx_COE_EN_ (0x00010000) diff -Naur linux-3.6.11/drivers/net/usb/usbnet.c linux-rpi-3.6.y/drivers/net/usb/usbnet.c --- linux-3.6.11/drivers/net/usb/usbnet.c 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/net/usb/usbnet.c 2013-01-20 16:51:38.231832080 +0100 ++++ linux-rpi-3.6.y/drivers/net/usb/usbnet.c 2013-02-01 18:45:11.280132936 +0100 @@ -359,10 +359,12 @@ void usbnet_defer_kevent (struct usbnet *dev, int work) { @@ -27090,7 +27242,7 @@ diff -Naur linux-3.6.11/drivers/net/wireless/rtl8192cu/os_dep/osdep_service.c li diff -Naur linux-3.6.11/drivers/net/wireless/rtl8192cu/wlan0dhcp linux-rpi-3.6.y/drivers/net/wireless/rtl8192cu/wlan0dhcp diff -Naur linux-3.6.11/drivers/spi/Kconfig linux-rpi-3.6.y/drivers/spi/Kconfig --- linux-3.6.11/drivers/spi/Kconfig 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/spi/Kconfig 2013-01-20 16:51:37.248837729 +0100 ++++ linux-rpi-3.6.y/drivers/spi/Kconfig 2013-02-01 18:45:10.380137788 +0100 @@ -74,6 +74,14 @@ This selects a driver for the Atmel SPI Controller, present on many AT32 (AVR32) and AT91 (ARM) chips. @@ -27108,7 +27260,7 @@ diff -Naur linux-3.6.11/drivers/spi/Kconfig linux-rpi-3.6.y/drivers/spi/Kconfig depends on BLACKFIN diff -Naur linux-3.6.11/drivers/spi/Makefile linux-rpi-3.6.y/drivers/spi/Makefile --- linux-3.6.11/drivers/spi/Makefile 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/spi/Makefile 2013-01-20 16:51:37.242837764 +0100 ++++ linux-rpi-3.6.y/drivers/spi/Makefile 2013-02-01 18:45:10.375137815 +0100 @@ -16,6 +16,7 @@ obj-$(CONFIG_SPI_AU1550) += spi-au1550.o obj-$(CONFIG_SPI_BCM63XX) += spi-bcm63xx.o @@ -27119,8 +27271,8 @@ diff -Naur linux-3.6.11/drivers/spi/Makefile linux-rpi-3.6.y/drivers/spi/Makefil obj-$(CONFIG_SPI_BUTTERFLY) += spi-butterfly.o diff -Naur linux-3.6.11/drivers/spi/spi-bcm2708.c linux-rpi-3.6.y/drivers/spi/spi-bcm2708.c --- linux-3.6.11/drivers/spi/spi-bcm2708.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/spi/spi-bcm2708.c 2013-01-20 16:51:37.242837764 +0100 -@@ -0,0 +1,594 @@ ++++ linux-rpi-3.6.y/drivers/spi/spi-bcm2708.c 2013-02-01 18:45:10.375137815 +0100 +@@ -0,0 +1,600 @@ +/* + * Driver for Broadcom BCM2708 SPI Controllers + * @@ -27382,6 +27534,10 @@ diff -Naur linux-3.6.11/drivers/spi/spi-bcm2708.c linux-rpi-3.6.y/drivers/spi/sp + if (state) { + state->cs = cs; + state->cdiv = cdiv; ++ dev_dbg(dev, "setup: want %d Hz; " ++ "bus_hz=%lu / cdiv=%u == %lu Hz; " ++ "mode %u: cs 0x%08X\n", ++ hz, bus_hz, cdiv, bus_hz/cdiv, mode, cs); + } + + return 0; @@ -27400,7 +27556,8 @@ diff -Naur linux-3.6.11/drivers/spi/spi-bcm2708.c linux-rpi-3.6.y/drivers/spi/sp + + if (xfer->bits_per_word || xfer->speed_hz) { + ret = bcm2708_setup_state(spi->master, &spi->dev, &state, -+ spi->max_speed_hz, spi->chip_select, spi->mode, ++ xfer->speed_hz ? xfer->speed_hz : spi->max_speed_hz, ++ spi->chip_select, spi->mode, + spi->bits_per_word); + if (ret) + return ret; @@ -27501,6 +27658,7 @@ diff -Naur linux-3.6.11/drivers/spi/spi-bcm2708.c linux-rpi-3.6.y/drivers/spi/sp + if (ret < 0) { + kfree(state); + spi->controller_state = NULL; ++ return ret; + } + + dev_dbg(&spi->dev, @@ -27720,7 +27878,7 @@ diff -Naur linux-3.6.11/drivers/staging/media/lirc/lirc_rpi.c linux-rpi-3.6.y/dr diff -Naur linux-3.6.11/drivers/staging/media/lirc/Makefile linux-rpi-3.6.y/drivers/staging/media/lirc/Makefile diff -Naur linux-3.6.11/drivers/thermal/bcm2835-thermal.c linux-rpi-3.6.y/drivers/thermal/bcm2835-thermal.c --- linux-3.6.11/drivers/thermal/bcm2835-thermal.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/thermal/bcm2835-thermal.c 2013-01-20 16:51:39.312825864 +0100 ++++ linux-rpi-3.6.y/drivers/thermal/bcm2835-thermal.c 2013-02-01 18:45:12.449126634 +0100 @@ -0,0 +1,208 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -27932,7 +28090,7 @@ diff -Naur linux-3.6.11/drivers/thermal/bcm2835-thermal.c linux-rpi-3.6.y/driver +module_platform_driver(bcm2835_thermal_driver); diff -Naur linux-3.6.11/drivers/thermal/Kconfig linux-rpi-3.6.y/drivers/thermal/Kconfig --- linux-3.6.11/drivers/thermal/Kconfig 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/thermal/Kconfig 2013-01-20 16:51:39.312825864 +0100 ++++ linux-rpi-3.6.y/drivers/thermal/Kconfig 2013-02-01 18:45:12.449126634 +0100 @@ -27,3 +27,14 @@ help Enable this to plug the SPEAr thermal sensor driver into the Linux @@ -27950,7 +28108,7 @@ diff -Naur linux-3.6.11/drivers/thermal/Kconfig linux-rpi-3.6.y/drivers/thermal/ + diff -Naur linux-3.6.11/drivers/thermal/Makefile linux-rpi-3.6.y/drivers/thermal/Makefile --- linux-3.6.11/drivers/thermal/Makefile 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/thermal/Makefile 2013-01-20 16:51:39.311825870 +0100 ++++ linux-rpi-3.6.y/drivers/thermal/Makefile 2013-02-01 18:45:12.448126640 +0100 @@ -3,4 +3,5 @@ # @@ -27961,7 +28119,7 @@ diff -Naur linux-3.6.11/drivers/thermal/Makefile linux-rpi-3.6.y/drivers/thermal +obj-$(CONFIG_THERMAL_BCM2835) += bcm2835-thermal.o diff -Naur linux-3.6.11/drivers/usb/core/generic.c linux-rpi-3.6.y/drivers/usb/core/generic.c --- linux-3.6.11/drivers/usb/core/generic.c 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/core/generic.c 2013-01-20 16:51:39.184826600 +0100 ++++ linux-rpi-3.6.y/drivers/usb/core/generic.c 2013-02-01 18:45:12.302127427 +0100 @@ -149,6 +149,7 @@ dev_warn(&udev->dev, "no configuration chosen from %d choice%s\n", @@ -27972,7 +28130,7 @@ diff -Naur linux-3.6.11/drivers/usb/core/generic.c linux-rpi-3.6.y/drivers/usb/c } diff -Naur linux-3.6.11/drivers/usb/core/hub.c linux-rpi-3.6.y/drivers/usb/core/hub.c --- linux-3.6.11/drivers/usb/core/hub.c 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/core/hub.c 2013-01-20 16:51:39.185826595 +0100 ++++ linux-rpi-3.6.y/drivers/usb/core/hub.c 2013-02-01 18:45:12.303127421 +0100 @@ -25,7 +25,6 @@ #include #include @@ -28095,7 +28253,7 @@ diff -Naur linux-3.6.11/drivers/usb/core/hub.c linux-rpi-3.6.y/drivers/usb/core/ !hcd->driver->port_handed_over || diff -Naur linux-3.6.11/drivers/usb/core/message.c linux-rpi-3.6.y/drivers/usb/core/message.c --- linux-3.6.11/drivers/usb/core/message.c 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/core/message.c 2013-01-20 16:51:39.182826612 +0100 ++++ linux-rpi-3.6.y/drivers/usb/core/message.c 2013-02-01 18:45:12.300127437 +0100 @@ -1877,6 +1877,85 @@ if (cp->string == NULL && !(dev->quirks & USB_QUIRK_CONFIG_INTF_STRINGS)) @@ -28184,7 +28342,7 @@ diff -Naur linux-3.6.11/drivers/usb/core/message.c linux-rpi-3.6.y/drivers/usb/c usb_unlocked_enable_lpm(dev); diff -Naur linux-3.6.11/drivers/usb/core/otg_whitelist.h linux-rpi-3.6.y/drivers/usb/core/otg_whitelist.h --- linux-3.6.11/drivers/usb/core/otg_whitelist.h 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/core/otg_whitelist.h 2013-01-20 16:51:39.181826618 +0100 ++++ linux-rpi-3.6.y/drivers/usb/core/otg_whitelist.h 2013-02-01 18:45:12.299127443 +0100 @@ -19,33 +19,82 @@ static struct usb_device_id whitelist_table [] = { @@ -28402,7 +28560,7 @@ diff -Naur linux-3.6.11/drivers/usb/core/otg_whitelist.h linux-rpi-3.6.y/drivers diff -Naur linux-3.6.11/drivers/usb/gadget/file_storage.c linux-rpi-3.6.y/drivers/usb/gadget/file_storage.c --- linux-3.6.11/drivers/usb/gadget/file_storage.c 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/gadget/file_storage.c 2013-01-20 16:51:39.178826636 +0100 ++++ linux-rpi-3.6.y/drivers/usb/gadget/file_storage.c 2013-02-01 18:45:12.295127465 +0100 @@ -573,8 +573,37 @@ .iConfiguration = FSG_STRING_CONFIG, .bmAttributes = USB_CONFIG_ATT_ONE | USB_CONFIG_ATT_SELFPOWER, @@ -28532,7 +28690,7 @@ diff -Naur linux-3.6.11/drivers/usb/gadget/file_storage.c linux-rpi-3.6.y/driver if (!req) diff -Naur linux-3.6.11/drivers/usb/gadget/Kconfig linux-rpi-3.6.y/drivers/usb/gadget/Kconfig --- linux-3.6.11/drivers/usb/gadget/Kconfig 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/gadget/Kconfig 2013-01-20 16:51:39.173826664 +0100 ++++ linux-rpi-3.6.y/drivers/usb/gadget/Kconfig 2013-02-01 18:45:12.291127486 +0100 @@ -505,6 +505,12 @@ bool depends on USB_GADGET_DUALSPEED @@ -28548,7 +28706,7 @@ diff -Naur linux-3.6.11/drivers/usb/gadget/Kconfig linux-rpi-3.6.y/drivers/usb/g # diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/changes.txt linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/changes.txt --- linux-3.6.11/drivers/usb/host/dwc_common_port/changes.txt 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/changes.txt 2013-01-20 16:51:39.084827176 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/changes.txt 2013-02-01 18:45:12.186128052 +0100 @@ -0,0 +1,174 @@ + +dwc_read_reg32() and friends now take an additional parameter, a pointer to an @@ -28726,7 +28884,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/changes.txt linux-rpi-3 +library code directly into a driver module, instead of as a standalone module. diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/doc/doxygen.cfg linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/doc/doxygen.cfg --- linux-3.6.11/drivers/usb/host/dwc_common_port/doc/doxygen.cfg 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/doc/doxygen.cfg 2013-01-20 16:51:39.086827164 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/doc/doxygen.cfg 2013-02-01 18:45:12.189128036 +0100 @@ -0,0 +1,270 @@ +# Doxyfile 1.4.5 + @@ -29000,7 +29158,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/doc/doxygen.cfg linux-r +SEARCHENGINE = NO diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_cc.c linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_cc.c --- linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_cc.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_cc.c 2013-01-20 16:51:39.084827176 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_cc.c 2013-02-01 18:45:12.187128047 +0100 @@ -0,0 +1,532 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_cc.c $ @@ -29536,7 +29694,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_cc.c linux-rpi-3.6. +#endif /* DWC_CCLIB */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_cc.h linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_cc.h --- linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_cc.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_cc.h 2013-01-20 16:51:39.088827152 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_cc.h 2013-02-01 18:45:12.191128025 +0100 @@ -0,0 +1,225 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_cc.h $ @@ -29765,7 +29923,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_cc.h linux-rpi-3.6. + diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c --- linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c 2013-01-20 16:51:39.087827158 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c 2013-02-01 18:45:12.191128025 +0100 @@ -0,0 +1,1308 @@ +#include "dwc_os.h" +#include "dwc_list.h" @@ -31077,7 +31235,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c linux +} diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_common_linux.c linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_common_linux.c --- linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_common_linux.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_common_linux.c 2013-01-20 16:51:39.085827170 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_common_linux.c 2013-02-01 18:45:12.188128041 +0100 @@ -0,0 +1,1421 @@ +#include +#include @@ -32502,7 +32660,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_common_linux.c linu +#endif /* DWC_LIBMODULE */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c --- linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c 2013-01-20 16:51:39.087827158 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c 2013-02-01 18:45:12.190128030 +0100 @@ -0,0 +1,1275 @@ +#include "dwc_os.h" +#include "dwc_list.h" @@ -33781,7 +33939,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c linux +} diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_crypto.c linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_crypto.c --- linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_crypto.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_crypto.c 2013-01-20 16:51:39.084827176 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_crypto.c 2013-02-01 18:45:12.186128052 +0100 @@ -0,0 +1,308 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_crypto.c $ @@ -34093,7 +34251,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_crypto.c linux-rpi- +#endif /* DWC_CRYPTOLIB */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_crypto.h linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_crypto.h --- linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_crypto.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_crypto.h 2013-01-20 16:51:39.087827158 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_crypto.h 2013-02-01 18:45:12.190128030 +0100 @@ -0,0 +1,111 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_crypto.h $ @@ -34208,7 +34366,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_crypto.h linux-rpi- +#endif /* _DWC_CRYPTO_H_ */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_dh.c linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_dh.c --- linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_dh.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_dh.c 2013-01-20 16:51:39.084827176 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_dh.c 2013-02-01 18:45:12.186128052 +0100 @@ -0,0 +1,291 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_dh.c $ @@ -34503,7 +34661,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_dh.c linux-rpi-3.6. +#endif /* DWC_CRYPTOLIB */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_dh.h linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_dh.h --- linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_dh.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_dh.h 2013-01-20 16:51:39.084827176 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_dh.h 2013-02-01 18:45:12.186128052 +0100 @@ -0,0 +1,106 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_dh.h $ @@ -34613,7 +34771,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_dh.h linux-rpi-3.6. +#endif /* _DWC_DH_H_ */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_list.h linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_list.h --- linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_list.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_list.h 2013-01-20 16:51:39.086827164 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_list.h 2013-02-01 18:45:12.188128041 +0100 @@ -0,0 +1,594 @@ +/* $OpenBSD: queue.h,v 1.26 2004/05/04 16:59:32 grange Exp $ */ +/* $NetBSD: queue.h,v 1.11 1996/05/16 05:17:14 mycroft Exp $ */ @@ -35211,7 +35369,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_list.h linux-rpi-3. +#endif /* _DWC_LIST_H_ */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_mem.c linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_mem.c --- linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_mem.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_mem.c 2013-01-20 16:51:39.085827170 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_mem.c 2013-02-01 18:45:12.187128047 +0100 @@ -0,0 +1,245 @@ +/* Memory Debugging */ +#ifdef DWC_DEBUG_MEMORY @@ -35460,7 +35618,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_mem.c linux-rpi-3.6 +#endif /* DWC_DEBUG_MEMORY */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_modpow.c linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_modpow.c --- linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_modpow.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_modpow.c 2013-01-20 16:51:39.086827164 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_modpow.c 2013-02-01 18:45:12.189128036 +0100 @@ -0,0 +1,636 @@ +/* Bignum routines adapted from PUTTY sources. PuTTY copyright notice follows. + * @@ -36100,7 +36258,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_modpow.c linux-rpi- +#endif /*DWC_CRYPTOLIB */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_modpow.h linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_modpow.h --- linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_modpow.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_modpow.h 2013-01-20 16:51:39.086827164 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_modpow.h 2013-02-01 18:45:12.188128041 +0100 @@ -0,0 +1,34 @@ +/* + * dwc_modpow.h @@ -36138,7 +36296,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_modpow.h linux-rpi- +#endif /* _LINUX_BIGNUM_H */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_notifier.c linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_notifier.c --- linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_notifier.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_notifier.c 2013-01-20 16:51:39.085827170 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_notifier.c 2013-02-01 18:45:12.187128047 +0100 @@ -0,0 +1,319 @@ +#ifdef DWC_NOTIFYLIB + @@ -36461,7 +36619,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_notifier.c linux-rp +#endif /* DWC_NOTIFYLIB */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_notifier.h linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_notifier.h --- linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_notifier.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_notifier.h 2013-01-20 16:51:39.085827170 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_notifier.h 2013-02-01 18:45:12.188128041 +0100 @@ -0,0 +1,122 @@ + +#ifndef __DWC_NOTIFIER_H__ @@ -36587,7 +36745,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_notifier.h linux-rp +#endif /* __DWC_NOTIFIER_H__ */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_os.h linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_os.h --- linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_os.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_os.h 2013-01-20 16:51:39.087827158 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/dwc_os.h 2013-02-01 18:45:12.189128036 +0100 @@ -0,0 +1,1260 @@ +/* ========================================================================= + * $File: //dwh/usb_iip/dev/software/dwc_common_port_2/dwc_os.h $ @@ -37851,7 +38009,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/dwc_os.h linux-rpi-3.6. +#endif /* _DWC_OS_H_ */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/Makefile linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/Makefile --- linux-3.6.11/drivers/usb/host/dwc_common_port/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/Makefile 2013-01-20 16:51:39.085827170 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/Makefile 2013-02-01 18:45:12.187128047 +0100 @@ -0,0 +1,58 @@ +# +# Makefile for DWC_common library @@ -37913,7 +38071,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/Makefile linux-rpi-3.6. + rm -rf *.o *.ko .*.cmd *.mod.c .*.o.d .*.o.tmp modules.order Module.markers Module.symvers .tmp_versions/ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/Makefile.fbsd linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/Makefile.fbsd --- linux-3.6.11/drivers/usb/host/dwc_common_port/Makefile.fbsd 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/Makefile.fbsd 2013-01-20 16:51:39.087827158 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/Makefile.fbsd 2013-02-01 18:45:12.190128030 +0100 @@ -0,0 +1,17 @@ +CFLAGS += -I/sys/i386/compile/GENERIC -I/sys/i386/include -I/usr/include +CFLAGS += -DDWC_FREEBSD @@ -37934,7 +38092,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/Makefile.fbsd linux-rpi +.include diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/Makefile.linux linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/Makefile.linux --- linux-3.6.11/drivers/usb/host/dwc_common_port/Makefile.linux 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/Makefile.linux 2013-01-20 16:51:39.083827182 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/Makefile.linux 2013-02-01 18:45:12.185128058 +0100 @@ -0,0 +1,49 @@ +# +# Makefile for DWC_common library @@ -37987,7 +38145,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/Makefile.linux linux-rp + rm -rf *.o *.ko .*.cmd *.mod.c .*.o.d .*.o.tmp modules.order Module.markers Module.symvers .tmp_versions/ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/usb.h linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/usb.h --- linux-3.6.11/drivers/usb/host/dwc_common_port/usb.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/usb.h 2013-01-20 16:51:39.087827158 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_common_port/usb.h 2013-02-01 18:45:12.190128030 +0100 @@ -0,0 +1,946 @@ +/* + * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -38937,7 +39095,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_common_port/usb.h linux-rpi-3.6.y/d +#endif /* _USB_H_ */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/doc/doxygen.cfg linux-rpi-3.6.y/drivers/usb/host/dwc_otg/doc/doxygen.cfg --- linux-3.6.11/drivers/usb/host/dwc_otg/doc/doxygen.cfg 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/doc/doxygen.cfg 2013-01-20 16:51:39.060827314 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/doc/doxygen.cfg 2013-02-01 18:45:12.164128171 +0100 @@ -0,0 +1,224 @@ +# Doxyfile 1.3.9.1 + @@ -39165,7 +39323,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/doc/doxygen.cfg linux-rpi-3.6.y +SEARCHENGINE = NO diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dummy_audio.c linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dummy_audio.c --- linux-3.6.11/drivers/usb/host/dwc_otg/dummy_audio.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dummy_audio.c 2013-01-20 16:51:39.064827290 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dummy_audio.c 2013-02-01 18:45:12.168128149 +0100 @@ -0,0 +1,1575 @@ +/* + * zero.c -- Gadget Zero, for USB development @@ -40744,7 +40902,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dummy_audio.c linux-rpi-3.6.y/d +module_exit (cleanup); diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_cfi_common.h linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_cfi_common.h --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_cfi_common.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_cfi_common.h 2013-01-20 16:51:39.054827348 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_cfi_common.h 2013-02-01 18:45:12.157128208 +0100 @@ -0,0 +1,142 @@ +/* ========================================================================== + * Synopsys HS OTG Linux Software Driver and documentation (hereinafter, @@ -40890,7 +41048,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_cfi_common.h linux-rpi-3.6. +#endif diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_adp.c linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_adp.c --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_adp.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_adp.c 2013-01-20 16:51:39.064827290 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_adp.c 2013-02-01 18:45:12.168128149 +0100 @@ -0,0 +1,854 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_adp.c $ @@ -41748,7 +41906,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_adp.c linux-rpi-3.6.y/d +} diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_adp.h linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_adp.h --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_adp.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_adp.h 2013-01-20 16:51:39.054827348 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_adp.h 2013-02-01 18:45:12.156128214 +0100 @@ -0,0 +1,80 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_adp.h $ @@ -41832,7 +41990,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_adp.h linux-rpi-3.6.y/d +#endif //__DWC_OTG_ADP_H__ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_attr.c linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_attr.c --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_attr.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_attr.c 2013-01-20 16:51:39.059827320 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_attr.c 2013-02-01 18:45:12.162128182 +0100 @@ -0,0 +1,1210 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_attr.c $ @@ -43046,7 +43204,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_attr.c linux-rpi-3.6.y/ +} diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_attr.h linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_attr.h --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_attr.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_attr.h 2013-01-20 16:51:39.063827296 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_attr.h 2013-02-01 18:45:12.168128149 +0100 @@ -0,0 +1,89 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_attr.h $ @@ -43139,7 +43297,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_attr.h linux-rpi-3.6.y/ +#endif diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_cfi.c linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_cfi.c --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_cfi.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_cfi.c 2013-01-20 16:51:39.059827320 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_cfi.c 2013-02-01 18:45:12.164128171 +0100 @@ -0,0 +1,1876 @@ +/* ========================================================================== + * Synopsys HS OTG Linux Software Driver and documentation (hereinafter, @@ -45019,7 +45177,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_cfi.c linux-rpi-3.6.y/d +#endif //DWC_UTE_CFI diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_cfi.h linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_cfi.h --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_cfi.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_cfi.h 2013-01-20 16:51:39.060827314 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_cfi.h 2013-02-01 18:45:12.165128165 +0100 @@ -0,0 +1,320 @@ +/* ========================================================================== + * Synopsys HS OTG Linux Software Driver and documentation (hereinafter, @@ -45343,7 +45501,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_cfi.h linux-rpi-3.6.y/d +#endif /* (__DWC_OTG_CFI_H__) */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_cil.c linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_cil.c --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_cil.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_cil.c 2013-01-20 16:51:39.065827285 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_cil.c 2013-02-01 18:45:12.170128138 +0100 @@ -0,0 +1,7151 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_cil.c $ @@ -52498,7 +52656,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_cil.c linux-rpi-3.6.y/d +} diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_cil.h linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_cil.h --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_cil.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_cil.h 2013-01-20 16:51:39.061827308 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_cil.h 2013-02-01 18:45:12.165128165 +0100 @@ -0,0 +1,1464 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_cil.h $ @@ -53966,7 +54124,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_cil.h linux-rpi-3.6.y/d +#endif diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c 2013-01-20 16:51:39.055827342 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c 2013-02-01 18:45:12.159128198 +0100 @@ -0,0 +1,1571 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_cil_intr.c $ @@ -55541,7 +55699,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c linux-rpi-3. +} diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_core_if.h linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_core_if.h --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_core_if.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_core_if.h 2013-01-20 16:51:39.060827314 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_core_if.h 2013-02-01 18:45:12.164128171 +0100 @@ -0,0 +1,705 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_core_if.h $ @@ -56250,7 +56408,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_core_if.h linux-rpi-3.6 +#endif /* __DWC_CORE_IF_H__ */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_dbg.h linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_dbg.h --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_dbg.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_dbg.h 2013-01-20 16:51:39.055827342 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_dbg.h 2013-02-01 18:45:12.157128208 +0100 @@ -0,0 +1,117 @@ +/* ========================================================================== + * @@ -56371,7 +56529,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_dbg.h linux-rpi-3.6.y/d +#endif diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_driver.c linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_driver.c --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_driver.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_driver.c 2013-01-20 16:51:39.058827326 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_driver.c 2013-02-01 18:45:12.161128187 +0100 @@ -0,0 +1,1732 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_driver.c $ @@ -58107,7 +58265,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_driver.c linux-rpi-3.6. +*/ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_driver.h linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_driver.h --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_driver.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_driver.h 2013-01-20 16:51:39.056827336 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_driver.h 2013-02-01 18:45:12.160128192 +0100 @@ -0,0 +1,86 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_driver.h $ @@ -58197,7 +58355,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_driver.h linux-rpi-3.6. +#endif diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd.c --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd.c 2013-01-20 16:51:39.059827320 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd.c 2013-02-01 18:45:12.163128176 +0100 @@ -0,0 +1,3496 @@ + +/* ========================================================================== @@ -61697,7 +61855,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd.c linux-rpi-3.6.y/d +#endif /* DWC_DEVICE_ONLY */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c 2013-01-20 16:51:39.063827296 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c 2013-02-01 18:45:12.167128154 +0100 @@ -0,0 +1,1132 @@ +/*========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_ddma.c $ @@ -62833,7 +62991,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c linux-rpi-3. +#endif /* DWC_DEVICE_ONLY */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd.h linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd.h --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd.h 2013-01-20 16:51:39.053827354 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd.h 2013-02-01 18:45:12.155128219 +0100 @@ -0,0 +1,829 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd.h $ @@ -63666,7 +63824,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd.h linux-rpi-3.6.y/d +#endif /* DWC_DEVICE_ONLY */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h 2013-01-20 16:51:39.061827308 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h 2013-02-01 18:45:12.165128165 +0100 @@ -0,0 +1,417 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_if.h $ @@ -64087,7 +64245,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h linux-rpi-3.6. +#endif /* DWC_DEVICE_ONLY */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c 2013-01-20 16:51:39.056827336 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c 2013-02-01 18:45:12.159128198 +0100 @@ -0,0 +1,2248 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_intr.c $ @@ -66339,7 +66497,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c linux-rpi-3. +#endif /* DWC_DEVICE_ONLY */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c 2013-01-20 16:51:39.053827354 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c 2013-02-01 18:45:12.156128214 +0100 @@ -0,0 +1,938 @@ + +/* ========================================================================== @@ -67281,7 +67439,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c linux-rpi-3 +#endif /* DWC_DEVICE_ONLY */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c 2013-01-20 16:51:39.055827342 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c 2013-02-01 18:45:12.158128203 +0100 @@ -0,0 +1,958 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_hcd_queue.c $ @@ -68243,7 +68401,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c linux-rpi-3 +#endif /* DWC_DEVICE_ONLY */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c 2013-01-20 16:51:39.055827342 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c 2013-02-01 18:45:12.157128208 +0100 @@ -0,0 +1,113 @@ +#include "dwc_otg_regs.h" +#include "dwc_otg_dbg.h" @@ -68360,7 +68518,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c linux-rpi-3. +} diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h 2013-01-20 16:51:39.054827348 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h 2013-02-01 18:45:12.156128214 +0100 @@ -0,0 +1,36 @@ +#ifndef __DWC_OTG_MPHI_FIX_H__ +#define __DWC_OTG_MPHI_FIX_H__ @@ -68400,7 +68558,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h linux-rpi-3. +#endif diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h 2013-01-20 16:51:39.063827296 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h 2013-02-01 18:45:12.167128154 +0100 @@ -0,0 +1,188 @@ +#ifndef _DWC_OS_DEP_H_ +#define _DWC_OS_DEP_H_ @@ -68592,7 +68750,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h linux-rpi-3.6. +#endif /* _DWC_OS_DEP_H_ */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_pcd.c linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_pcd.c --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_pcd.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_pcd.c 2013-01-20 16:51:39.057827331 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_pcd.c 2013-02-01 18:45:12.160128192 +0100 @@ -0,0 +1,2708 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd.c $ @@ -71304,7 +71462,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_pcd.c linux-rpi-3.6.y/d +#endif /* DWC_HOST_ONLY */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_pcd.h linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_pcd.h --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_pcd.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_pcd.h 2013-01-20 16:51:39.058827326 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_pcd.h 2013-02-01 18:45:12.162128182 +0100 @@ -0,0 +1,266 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd.h $ @@ -71574,7 +71732,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_pcd.h linux-rpi-3.6.y/d +#endif /* DWC_HOST_ONLY */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h 2013-01-20 16:51:39.054827348 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h 2013-02-01 18:45:12.156128214 +0100 @@ -0,0 +1,360 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd_if.h $ @@ -71938,7 +72096,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h linux-rpi-3.6. +#endif /* DWC_HOST_ONLY */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c 2013-01-20 16:51:39.057827331 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c 2013-02-01 18:45:12.161128187 +0100 @@ -0,0 +1,5147 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd_intr.c $ @@ -77089,7 +77247,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c linux-rpi-3. +#endif /* DWC_HOST_ONLY */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c 2013-01-20 16:51:39.062827302 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c 2013-02-01 18:45:12.166128160 +0100 @@ -0,0 +1,1374 @@ + /* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_pcd_linux.c $ @@ -78467,7 +78625,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c linux-rpi-3 +#endif /* DWC_HOST_ONLY */ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_regs.h linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_regs.h --- linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_regs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_regs.h 2013-01-20 16:51:39.059827320 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/dwc_otg_regs.h 2013-02-01 18:45:12.162128182 +0100 @@ -0,0 +1,2550 @@ +/* ========================================================================== + * $File: //dwh/usb_iip/dev/software/otg/linux/drivers/dwc_otg_regs.h $ @@ -81021,7 +81179,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/dwc_otg_regs.h linux-rpi-3.6.y/ +#endif diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/Makefile linux-rpi-3.6.y/drivers/usb/host/dwc_otg/Makefile --- linux-3.6.11/drivers/usb/host/dwc_otg/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/Makefile 2013-01-20 16:51:39.054827348 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/Makefile 2013-02-01 18:45:12.157128208 +0100 @@ -0,0 +1,81 @@ +# +# Makefile for DWC_otg Highspeed USB controller driver @@ -81106,7 +81264,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/Makefile linux-rpi-3.6.y/driver +endif diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm linux-rpi-3.6.y/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm --- linux-3.6.11/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm 2013-01-20 16:51:39.062827302 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm 2013-02-01 18:45:12.166128160 +0100 @@ -0,0 +1,337 @@ +package dwc_otg_test; + @@ -81447,7 +81605,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm linux-rpi- +1; diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/test/Makefile linux-rpi-3.6.y/drivers/usb/host/dwc_otg/test/Makefile --- linux-3.6.11/drivers/usb/host/dwc_otg/test/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/test/Makefile 2013-01-20 16:51:39.062827302 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/test/Makefile 2013-02-01 18:45:12.166128160 +0100 @@ -0,0 +1,16 @@ + +PERL=/usr/bin/perl @@ -81467,7 +81625,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/test/Makefile linux-rpi-3.6.y/d + done diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/test/test_mod_param.pl linux-rpi-3.6.y/drivers/usb/host/dwc_otg/test/test_mod_param.pl --- linux-3.6.11/drivers/usb/host/dwc_otg/test/test_mod_param.pl 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/test/test_mod_param.pl 2013-01-20 16:51:39.062827302 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/test/test_mod_param.pl 2013-02-01 18:45:12.167128154 +0100 @@ -0,0 +1,133 @@ +#!/usr/bin/perl -w +# @@ -81604,7 +81762,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/test/test_mod_param.pl linux-rp +0; diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/test/test_sysfs.pl linux-rpi-3.6.y/drivers/usb/host/dwc_otg/test/test_sysfs.pl --- linux-3.6.11/drivers/usb/host/dwc_otg/test/test_sysfs.pl 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/test/test_sysfs.pl 2013-01-20 16:51:39.063827296 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/dwc_otg/test/test_sysfs.pl 2013-02-01 18:45:12.167128154 +0100 @@ -0,0 +1,193 @@ +#!/usr/bin/perl -w +# @@ -81801,7 +81959,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/dwc_otg/test/test_sysfs.pl linux-rpi-3. +0; diff -Naur linux-3.6.11/drivers/usb/host/Kconfig linux-rpi-3.6.y/drivers/usb/host/Kconfig --- linux-3.6.11/drivers/usb/host/Kconfig 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/Kconfig 2013-01-20 16:51:39.095827112 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/Kconfig 2013-02-01 18:45:12.199127982 +0100 @@ -610,6 +610,19 @@ To compile this driver a module, choose M here: the module will be called "hwa-hc". @@ -81824,7 +81982,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/Kconfig linux-rpi-3.6.y/drivers/usb/hos depends on USB && ARM && ARCH_MXC diff -Naur linux-3.6.11/drivers/usb/host/Makefile linux-rpi-3.6.y/drivers/usb/host/Makefile --- linux-3.6.11/drivers/usb/host/Makefile 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/host/Makefile 2013-01-20 16:51:39.075827228 +0100 ++++ linux-rpi-3.6.y/drivers/usb/host/Makefile 2013-02-01 18:45:12.179128090 +0100 @@ -37,6 +37,8 @@ obj-$(CONFIG_USB_R8A66597_HCD) += r8a66597-hcd.o obj-$(CONFIG_USB_ISP1760_HCD) += isp1760.o @@ -81836,7 +81994,7 @@ diff -Naur linux-3.6.11/drivers/usb/host/Makefile linux-rpi-3.6.y/drivers/usb/ho obj-$(CONFIG_USB_OCTEON2_COMMON) += octeon2-common.o diff -Naur linux-3.6.11/drivers/usb/Makefile linux-rpi-3.6.y/drivers/usb/Makefile --- linux-3.6.11/drivers/usb/Makefile 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/usb/Makefile 2013-01-20 16:51:39.112827014 +0100 ++++ linux-rpi-3.6.y/drivers/usb/Makefile 2013-02-01 18:45:12.220127869 +0100 @@ -25,6 +25,7 @@ obj-$(CONFIG_USB_R8A66597_HCD) += host/ obj-$(CONFIG_USB_HWA_HCD) += host/ @@ -81847,7 +82005,7 @@ diff -Naur linux-3.6.11/drivers/usb/Makefile linux-rpi-3.6.y/drivers/usb/Makefil diff -Naur linux-3.6.11/drivers/video/bcm2708_fb.c linux-rpi-3.6.y/drivers/video/bcm2708_fb.c --- linux-3.6.11/drivers/video/bcm2708_fb.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/video/bcm2708_fb.c 2013-01-20 16:51:37.011839091 +0100 ++++ linux-rpi-3.6.y/drivers/video/bcm2708_fb.c 2013-02-01 18:45:10.175138893 +0100 @@ -0,0 +1,491 @@ +/* + * linux/drivers/video/bcm2708_fb.c @@ -82342,7 +82500,7 @@ diff -Naur linux-3.6.11/drivers/video/bcm2708_fb.c linux-rpi-3.6.y/drivers/video +MODULE_PARM_DESC(fbdepth, "Bit depth of ARM Framebuffer"); diff -Naur linux-3.6.11/drivers/video/Kconfig linux-rpi-3.6.y/drivers/video/Kconfig --- linux-3.6.11/drivers/video/Kconfig 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/video/Kconfig 2013-01-20 16:51:37.156838258 +0100 ++++ linux-rpi-3.6.y/drivers/video/Kconfig 2013-02-01 18:45:10.276138348 +0100 @@ -312,6 +312,20 @@ help Support the Permedia2 FIFO disconnect feature. @@ -82366,7 +82524,7 @@ diff -Naur linux-3.6.11/drivers/video/Kconfig linux-rpi-3.6.y/drivers/video/Kcon depends on FB && ARM && ARM_AMBA diff -Naur linux-3.6.11/drivers/video/logo/logo_linux_clut224.ppm linux-rpi-3.6.y/drivers/video/logo/logo_linux_clut224.ppm --- linux-3.6.11/drivers/video/logo/logo_linux_clut224.ppm 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/video/logo/logo_linux_clut224.ppm 2013-01-20 16:51:37.126838430 +0100 ++++ linux-rpi-3.6.y/drivers/video/logo/logo_linux_clut224.ppm 2013-02-01 18:45:10.247138505 +0100 @@ -1,1604 +1,883 @@ P3 -# Standard 224-color Linux logo @@ -84855,7 +85013,7 @@ diff -Naur linux-3.6.11/drivers/video/logo/logo_linux_clut224.ppm linux-rpi-3.6. +0 0 0 0 0 0 0 0 0 diff -Naur linux-3.6.11/drivers/video/Makefile linux-rpi-3.6.y/drivers/video/Makefile --- linux-3.6.11/drivers/video/Makefile 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/video/Makefile 2013-01-20 16:51:37.074838729 +0100 ++++ linux-rpi-3.6.y/drivers/video/Makefile 2013-02-01 18:45:10.205138731 +0100 @@ -99,6 +99,7 @@ obj-$(CONFIG_FB_PVR2) += pvr2fb.o obj-$(CONFIG_FB_VOODOO1) += sstfb.o @@ -84866,7 +85024,7 @@ diff -Naur linux-3.6.11/drivers/video/Makefile linux-rpi-3.6.y/drivers/video/Mak obj-$(CONFIG_FB_CIRRUS) += cirrusfb.o diff -Naur linux-3.6.11/drivers/watchdog/bcm2708_wdog.c linux-rpi-3.6.y/drivers/watchdog/bcm2708_wdog.c --- linux-3.6.11/drivers/watchdog/bcm2708_wdog.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/watchdog/bcm2708_wdog.c 2013-01-20 16:51:39.709823582 +0100 ++++ linux-rpi-3.6.y/drivers/watchdog/bcm2708_wdog.c 2013-02-01 18:45:12.899124208 +0100 @@ -0,0 +1,385 @@ +/* + * Broadcom BCM2708 watchdog driver. @@ -85255,7 +85413,7 @@ diff -Naur linux-3.6.11/drivers/watchdog/bcm2708_wdog.c linux-rpi-3.6.y/drivers/ + diff -Naur linux-3.6.11/drivers/watchdog/Kconfig linux-rpi-3.6.y/drivers/watchdog/Kconfig --- linux-3.6.11/drivers/watchdog/Kconfig 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/watchdog/Kconfig 2013-01-20 16:51:39.718823530 +0100 ++++ linux-rpi-3.6.y/drivers/watchdog/Kconfig 2013-02-01 18:45:12.907124165 +0100 @@ -352,6 +352,12 @@ To compile this driver as a module, choose M here: the module will be called imx2_wdt. @@ -85271,7 +85429,7 @@ diff -Naur linux-3.6.11/drivers/watchdog/Kconfig linux-rpi-3.6.y/drivers/watchdo config AT32AP700X_WDT diff -Naur linux-3.6.11/drivers/watchdog/Makefile linux-rpi-3.6.y/drivers/watchdog/Makefile --- linux-3.6.11/drivers/watchdog/Makefile 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/drivers/watchdog/Makefile 2013-01-20 16:51:39.703823616 +0100 ++++ linux-rpi-3.6.y/drivers/watchdog/Makefile 2013-02-01 18:45:12.894124235 +0100 @@ -52,6 +52,7 @@ obj-$(CONFIG_NUC900_WATCHDOG) += nuc900_wdt.o obj-$(CONFIG_TS72XX_WATCHDOG) += ts72xx_wdt.o @@ -85283,7 +85441,7 @@ diff -Naur linux-3.6.11/drivers/watchdog/Makefile linux-rpi-3.6.y/drivers/watchd diff -Naur linux-3.6.11/.gitignore linux-rpi-3.6.y/.gitignore diff -Naur linux-3.6.11/include/linux/broadcom/vc_cma.h linux-rpi-3.6.y/include/linux/broadcom/vc_cma.h --- linux-3.6.11/include/linux/broadcom/vc_cma.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/include/linux/broadcom/vc_cma.h 2013-01-20 16:51:26.583900141 +0100 ++++ linux-rpi-3.6.y/include/linux/broadcom/vc_cma.h 2013-02-01 18:45:01.010190035 +0100 @@ -0,0 +1,30 @@ +/***************************************************************************** +* Copyright 2012 Broadcom Corporation. All rights reserved. @@ -85317,7 +85475,7 @@ diff -Naur linux-3.6.11/include/linux/broadcom/vc_cma.h linux-rpi-3.6.y/include/ + diff -Naur linux-3.6.11/include/linux/mmc/host.h linux-rpi-3.6.y/include/linux/mmc/host.h --- linux-3.6.11/include/linux/mmc/host.h 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/include/linux/mmc/host.h 2013-01-20 16:51:26.545900358 +0100 ++++ linux-rpi-3.6.y/include/linux/mmc/host.h 2013-02-01 18:45:00.968190270 +0100 @@ -257,6 +257,7 @@ #define MMC_CAP2_HC_ERASE_SZ (1 << 9) /* High-capacity erase size */ #define MMC_CAP2_CD_ACTIVE_HIGH (1 << 10) /* Card-detect signal active high */ @@ -85328,7 +85486,7 @@ diff -Naur linux-3.6.11/include/linux/mmc/host.h linux-rpi-3.6.y/include/linux/m unsigned int power_notify_type; diff -Naur linux-3.6.11/include/linux/mmc/sdhci.h linux-rpi-3.6.y/include/linux/mmc/sdhci.h --- linux-3.6.11/include/linux/mmc/sdhci.h 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/include/linux/mmc/sdhci.h 2013-01-20 16:51:26.547900348 +0100 ++++ linux-rpi-3.6.y/include/linux/mmc/sdhci.h 2013-02-01 18:45:00.970190259 +0100 @@ -93,6 +93,7 @@ #define SDHCI_QUIRK2_HOST_OFF_CARD_ON (1<<0) @@ -85355,7 +85513,7 @@ diff -Naur linux-3.6.11/include/linux/mmc/sdhci.h linux-rpi-3.6.y/include/linux/ diff -Naur linux-3.6.11/include/net/bluetooth/hci.h linux-rpi-3.6.y/include/net/bluetooth/hci.h --- linux-3.6.11/include/net/bluetooth/hci.h 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/include/net/bluetooth/hci.h 2013-01-20 16:51:26.856898578 +0100 ++++ linux-rpi-3.6.y/include/net/bluetooth/hci.h 2013-02-01 18:45:01.287188489 +0100 @@ -142,7 +142,7 @@ #define HCI_DISCONN_TIMEOUT msecs_to_jiffies(2000) /* 2 seconds */ #define HCI_PAIRING_TIMEOUT msecs_to_jiffies(60000) /* 60 seconds */ @@ -85367,7 +85525,7 @@ diff -Naur linux-3.6.11/include/net/bluetooth/hci.h linux-rpi-3.6.y/include/net/ diff -Naur linux-3.6.11/kernel/module.c linux-rpi-3.6.y/kernel/module.c --- linux-3.6.11/kernel/module.c 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/kernel/module.c 2013-01-20 16:51:25.796904657 +0100 ++++ linux-rpi-3.6.y/kernel/module.c 2013-02-01 18:45:00.278194123 +0100 @@ -2680,20 +2680,23 @@ memset(ptr, 0, mod->core_size); mod->module_core = ptr; @@ -85407,7 +85565,7 @@ diff -Naur linux-3.6.11/kernel/module.c linux-rpi-3.6.y/kernel/module.c pr_debug("final section addresses:\n"); diff -Naur linux-3.6.11/net/core/skbuff.c linux-rpi-3.6.y/net/core/skbuff.c --- linux-3.6.11/net/core/skbuff.c 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/net/core/skbuff.c 2013-01-20 16:51:26.003903471 +0100 ++++ linux-rpi-3.6.y/net/core/skbuff.c 2013-02-01 18:45:00.494192917 +0100 @@ -340,43 +340,57 @@ EXPORT_SYMBOL(build_skb); @@ -85484,7 +85642,7 @@ diff -Naur linux-3.6.11/net/core/skbuff.c linux-rpi-3.6.y/net/core/skbuff.c local_irq_restore(flags); diff -Naur linux-3.6.11/sound/arm/bcm2835.c linux-rpi-3.6.y/sound/arm/bcm2835.c --- linux-3.6.11/sound/arm/bcm2835.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/sound/arm/bcm2835.c 2013-01-20 16:51:27.133896990 +0100 ++++ linux-rpi-3.6.y/sound/arm/bcm2835.c 2013-02-01 18:45:01.554186998 +0100 @@ -0,0 +1,413 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -85901,7 +86059,7 @@ diff -Naur linux-3.6.11/sound/arm/bcm2835.c linux-rpi-3.6.y/sound/arm/bcm2835.c +MODULE_ALIAS("platform:bcm2835_alsa"); diff -Naur linux-3.6.11/sound/arm/bcm2835-ctl.c linux-rpi-3.6.y/sound/arm/bcm2835-ctl.c --- linux-3.6.11/sound/arm/bcm2835-ctl.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/sound/arm/bcm2835-ctl.c 2013-01-20 16:51:27.132896996 +0100 ++++ linux-rpi-3.6.y/sound/arm/bcm2835-ctl.c 2013-02-01 18:45:01.554186998 +0100 @@ -0,0 +1,200 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -86105,7 +86263,7 @@ diff -Naur linux-3.6.11/sound/arm/bcm2835-ctl.c linux-rpi-3.6.y/sound/arm/bcm283 +} diff -Naur linux-3.6.11/sound/arm/bcm2835.h linux-rpi-3.6.y/sound/arm/bcm2835.h --- linux-3.6.11/sound/arm/bcm2835.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/sound/arm/bcm2835.h 2013-01-20 16:51:27.132896996 +0100 ++++ linux-rpi-3.6.y/sound/arm/bcm2835.h 2013-02-01 18:45:01.553187003 +0100 @@ -0,0 +1,155 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -86264,7 +86422,7 @@ diff -Naur linux-3.6.11/sound/arm/bcm2835.h linux-rpi-3.6.y/sound/arm/bcm2835.h +#endif /* __SOUND_ARM_BCM2835_H */ diff -Naur linux-3.6.11/sound/arm/bcm2835-pcm.c linux-rpi-3.6.y/sound/arm/bcm2835-pcm.c --- linux-3.6.11/sound/arm/bcm2835-pcm.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/sound/arm/bcm2835-pcm.c 2013-01-20 16:51:27.131897002 +0100 ++++ linux-rpi-3.6.y/sound/arm/bcm2835-pcm.c 2013-02-01 18:45:01.552187009 +0100 @@ -0,0 +1,408 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -86676,7 +86834,7 @@ diff -Naur linux-3.6.11/sound/arm/bcm2835-pcm.c linux-rpi-3.6.y/sound/arm/bcm283 +} diff -Naur linux-3.6.11/sound/arm/bcm2835-vchiq.c linux-rpi-3.6.y/sound/arm/bcm2835-vchiq.c --- linux-3.6.11/sound/arm/bcm2835-vchiq.c 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/sound/arm/bcm2835-vchiq.c 2013-01-20 16:51:27.132896996 +0100 ++++ linux-rpi-3.6.y/sound/arm/bcm2835-vchiq.c 2013-02-01 18:45:01.553187003 +0100 @@ -0,0 +1,826 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -87506,7 +87664,7 @@ diff -Naur linux-3.6.11/sound/arm/bcm2835-vchiq.c linux-rpi-3.6.y/sound/arm/bcm2 +} diff -Naur linux-3.6.11/sound/arm/Kconfig linux-rpi-3.6.y/sound/arm/Kconfig --- linux-3.6.11/sound/arm/Kconfig 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/sound/arm/Kconfig 2013-01-20 16:51:27.133896990 +0100 ++++ linux-rpi-3.6.y/sound/arm/Kconfig 2013-02-01 18:45:01.554186998 +0100 @@ -39,5 +39,12 @@ Say Y or M if you want to support any AC97 codec attached to the PXA2xx AC97 interface. @@ -87522,7 +87680,7 @@ diff -Naur linux-3.6.11/sound/arm/Kconfig linux-rpi-3.6.y/sound/arm/Kconfig diff -Naur linux-3.6.11/sound/arm/Makefile linux-rpi-3.6.y/sound/arm/Makefile --- linux-3.6.11/sound/arm/Makefile 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/sound/arm/Makefile 2013-01-20 16:51:27.132896996 +0100 ++++ linux-rpi-3.6.y/sound/arm/Makefile 2013-02-01 18:45:01.552187009 +0100 @@ -14,3 +14,9 @@ obj-$(CONFIG_SND_PXA2XX_AC97) += snd-pxa2xx-ac97.o @@ -87535,7 +87693,7 @@ diff -Naur linux-3.6.11/sound/arm/Makefile linux-rpi-3.6.y/sound/arm/Makefile + diff -Naur linux-3.6.11/sound/arm/vc_vchi_audioserv_defs.h linux-rpi-3.6.y/sound/arm/vc_vchi_audioserv_defs.h --- linux-3.6.11/sound/arm/vc_vchi_audioserv_defs.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-rpi-3.6.y/sound/arm/vc_vchi_audioserv_defs.h 2013-01-20 16:51:27.133896990 +0100 ++++ linux-rpi-3.6.y/sound/arm/vc_vchi_audioserv_defs.h 2013-02-01 18:45:01.554186998 +0100 @@ -0,0 +1,114 @@ +/***************************************************************************** +* Copyright 2011 Broadcom Corporation. All rights reserved. @@ -87653,7 +87811,7 @@ diff -Naur linux-3.6.11/sound/arm/vc_vchi_audioserv_defs.h linux-rpi-3.6.y/sound +#endif // _VC_AUDIO_DEFS_H_ diff -Naur linux-3.6.11/sound/pci/Kconfig linux-rpi-3.6.y/sound/pci/Kconfig --- linux-3.6.11/sound/pci/Kconfig 2012-12-17 18:27:45.000000000 +0100 -+++ linux-rpi-3.6.y/sound/pci/Kconfig 2013-01-20 16:51:27.249896326 +0100 ++++ linux-rpi-3.6.y/sound/pci/Kconfig 2013-02-01 18:45:01.669186355 +0100 @@ -2,8 +2,8 @@ config SND_TEA575X From 14c26535be8d06987c3f71c060be59d5a6000db2 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 2 Feb 2013 16:23:57 +0100 Subject: [PATCH 55/86] RTL8192CU: add patch to support kernel 3.7 Signed-off-by: Stephan Raue --- .../patches/RTL8192CU-use_kthread_run.patch | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 packages/linux-drivers/RTL8192CU/patches/RTL8192CU-use_kthread_run.patch diff --git a/packages/linux-drivers/RTL8192CU/patches/RTL8192CU-use_kthread_run.patch b/packages/linux-drivers/RTL8192CU/patches/RTL8192CU-use_kthread_run.patch new file mode 100644 index 0000000000..a40a21421a --- /dev/null +++ b/packages/linux-drivers/RTL8192CU/patches/RTL8192CU-use_kthread_run.patch @@ -0,0 +1,107 @@ +diff -ur _/core/rtw_mp.c rt8192cu-master/core/rtw_mp.c +--- _/core/rtw_mp.c 2012-07-09 10:32:18.000000000 +0200 ++++ rt8192cu-master/core/rtw_mp.c 2012-12-21 03:13:45.358137142 +0100 +@@ -1140,8 +1140,7 @@ + _rtw_memset(ptr, payload, pkt_end - ptr); + + //3 6. start thread +- pmp_priv->tx.PktTxThread = kernel_thread(mp_xmit_packet_thread, pmp_priv, CLONE_FS|CLONE_FILES); +- if(pmp_priv->tx.PktTxThread < 0) ++ if(!start_kthread(&pmp_priv->tx.PktTxThread, mp_xmit_packet_thread, pmp_priv, "8192cu-mp-xmit")) + DBG_871X("Create PktTx Thread Fail !!!!!\n"); + + } +diff -ur _/include/osdep_service.h rt8192cu-master/include/osdep_service.h +--- _/include/osdep_service.h 2012-07-09 10:32:18.000000000 +0200 ++++ rt8192cu-master/include/osdep_service.h 2012-12-21 03:09:05.314123589 +0100 +@@ -100,6 +100,9 @@ + #include + #endif + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) ++ #include ++#endif + + #ifdef CONFIG_USB_HCI + typedef struct urb * PURB; +@@ -133,8 +136,12 @@ + //typedef u32 _irqL; + typedef unsigned long _irqL; + typedef struct net_device * _nic_hdl; +- ++ ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) + typedef pid_t _thread_hdl_; ++#else ++ typedef struct task_struct * _thread_hdl_; ++#endif + typedef int thread_return; + typedef void* thread_context; + +@@ -827,4 +834,8 @@ + + #endif + ++#ifdef PLATFORM_LINUX ++extern int start_kthread(_thread_hdl_ *t_hdl, int (*threadfn)(void *data), ++ void *data, const char *name); ++#endif + +diff -ur _/os_dep/linux/os_intfs.c rt8192cu-master/os_dep/linux/os_intfs.c +--- _/os_dep/linux/os_intfs.c 2012-12-21 03:17:25.618147802 +0100 ++++ rt8192cu-master/os_dep/linux/os_intfs.c 2012-12-21 03:14:14.554138555 +0100 +@@ -797,27 +797,22 @@ + RT_TRACE(_module_os_intfs_c_,_drv_info_,("+rtw_start_drv_threads\n")); + + #ifdef CONFIG_SDIO_HCI +- padapter->xmitThread = kernel_thread(rtw_xmit_thread, padapter, CLONE_FS|CLONE_FILES); +- if(padapter->xmitThread < 0) ++ if(!start_kthread(&padapter->xmitThread, rtw_xmit_thread, padapter, "8192cu-xmit")) + _status = _FAIL; + #endif + + #ifdef CONFIG_RECV_THREAD_MODE +- padapter->recvThread = kernel_thread(recv_thread, padapter, CLONE_FS|CLONE_FILES); +- if(padapter->recvThread < 0) ++ if(!start_kthread(&padapter->recvThread, recv_thread, padapter, "8192cu-recv")) + _status = _FAIL; + #endif + +- padapter->cmdThread = kernel_thread(rtw_cmd_thread, padapter, CLONE_FS|CLONE_FILES); +- if(padapter->cmdThread < 0) ++ if(!start_kthread(&padapter->cmdThread, rtw_cmd_thread, padapter, "8192cu-cmd")) + _status = _FAIL; + else + _rtw_down_sema(&padapter->cmdpriv.terminate_cmdthread_sema); //wait for cmd_thread to run +- + + #ifdef CONFIG_EVENT_THREAD_MODE +- padapter->evtThread = kernel_thread(event_thread, padapter, CLONE_FS|CLONE_FILES); +- if(padapter->evtThread < 0) ++ if(!start_kthread(&padapter->evtThread, event_thread, padapter, "8192cu-evt")) + _status = _FAIL; + #endif + +diff -ur _/os_dep/osdep_service.c rt8192cu-master/os_dep/osdep_service.c +--- _/os_dep/osdep_service.c 2012-12-21 03:17:25.618147802 +0100 ++++ rt8192cu-master/os_dep/osdep_service.c 2012-12-21 03:08:30.330121896 +0100 +@@ -1553,3 +1553,19 @@ + #endif + } + ++#ifdef PLATFORM_LINUX ++int start_kthread(_thread_hdl_ *t_hdl, int (*threadfn)(void *data), ++ void *data, const char *name) ++{ ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) ++ *t_hdl = kernel_thread(threadfn, data, CLONE_FS|CLONE_FILES); ++ if(*t_hdl < 0) ++#else ++ *t_hdl = kthread_run(threadfn, data, name); ++ if(IS_ERR(*t_hdl)) ++#endif ++ return 0; ++ return -1; ++} ++#endif ++ From 986806a21e52f3df9fafd05e32a3063e1986f2cc Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Sat, 2 Feb 2013 19:42:50 +0200 Subject: [PATCH 56/86] Virtual: add uvesafb & xhci-hcd to initrd --- projects/Virtual/options | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/Virtual/options b/projects/Virtual/options index afd0eb3aa6..ffd1e96717 100755 --- a/projects/Virtual/options +++ b/projects/Virtual/options @@ -293,7 +293,7 @@ LCD_DRIVER="irtrans,imon,imonlcd,mdm166a,MtxOrb,lis,dm140,hd44780,CFontz" # Modules to install in initramfs for early boot - INITRAMFS_MODULES="" + INITRAMFS_MODULES="uvesafb xhci-hcd" # additional Firmware to use (dvb-firmware, misc-firmware, wlan-firmware) # Space separated list is supported, From 49869f1686e25c9202c6864038cd9783107db1cc Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 2 Feb 2013 22:06:29 +0100 Subject: [PATCH 57/86] linux: add patch to Add workaround for conflicting IEC958 controls Signed-off-by: Stephan Raue --- ...ound_for_conflicting_IEC958_controls.patch | 266 ++++++++++++++++++ 1 file changed, 266 insertions(+) create mode 100644 packages/linux/patches/3.7.5/linux-990.01-hda_Add_workaround_for_conflicting_IEC958_controls.patch diff --git a/packages/linux/patches/3.7.5/linux-990.01-hda_Add_workaround_for_conflicting_IEC958_controls.patch b/packages/linux/patches/3.7.5/linux-990.01-hda_Add_workaround_for_conflicting_IEC958_controls.patch new file mode 100644 index 0000000000..a17d219332 --- /dev/null +++ b/packages/linux/patches/3.7.5/linux-990.01-hda_Add_workaround_for_conflicting_IEC958_controls.patch @@ -0,0 +1,266 @@ +From dcda5806165c155d90b9aa466a1602cf4726012b Mon Sep 17 00:00:00 2001 +From: Takashi Iwai +Date: Fri, 12 Oct 2012 17:24:51 +0200 +Subject: [PATCH] ALSA: hda - Add workaround for conflicting IEC958 controls + +When both an SPDIF and an HDMI device are created on the same card +instance, multiple IEC958 controls are created with indices=0, 1, ... +But the alsa-lib configuration can't know which index corresponds +actually to which PCM device, and both the SPDIF and the HDMI +configurations point to the first IEC958 control wrongly. + +This patch introduces a (hackish and ugly) workaround: the IEC958 +controls for the SPDIF device are re-labeled with device=1 when HDMI +coexists. The device=1 corresponds to the actual PCM device for +SPDIF, so it's anyway a better representation. In future, HDMI +controls should be moved with the corresponding PCM device number, +too. + +Signed-off-by: Takashi Iwai +--- + sound/pci/hda/hda_codec.c | 60 ++++++++++++++++++++++++++++------------ + sound/pci/hda/hda_codec.h | 1 + + sound/pci/hda/hda_local.h | 8 +++-- + sound/pci/hda/patch_cirrus.c | 5 ++- + sound/pci/hda/patch_hdmi.c | 7 ++-- + sound/pci/hda/patch_realtek.c | 7 ++-- + sound/pci/hda/patch_sigmatel.c | 7 ++-- + 7 files changed, 63 insertions(+), 32 deletions(-) + +diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c +index ee958a7..2da7875 100644 +--- a/sound/pci/hda/hda_codec.c ++++ b/sound/pci/hda/hda_codec.c +@@ -2166,12 +2166,12 @@ EXPORT_SYMBOL_HDA(snd_hda_set_vmaster_tlv); + + /* find a mixer control element with the given name */ + static struct snd_kcontrol * +-_snd_hda_find_mixer_ctl(struct hda_codec *codec, +- const char *name, int idx) ++find_mixer_ctl(struct hda_codec *codec, const char *name, int dev, int idx) + { + struct snd_ctl_elem_id id; + memset(&id, 0, sizeof(id)); + id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; ++ id.device = dev; + id.index = idx; + if (snd_BUG_ON(strlen(name) >= sizeof(id.name))) + return NULL; +@@ -2189,15 +2189,16 @@ _snd_hda_find_mixer_ctl(struct hda_codec *codec, + struct snd_kcontrol *snd_hda_find_mixer_ctl(struct hda_codec *codec, + const char *name) + { +- return _snd_hda_find_mixer_ctl(codec, name, 0); ++ return find_mixer_ctl(codec, name, 0, 0); + } + EXPORT_SYMBOL_HDA(snd_hda_find_mixer_ctl); + +-static int find_empty_mixer_ctl_idx(struct hda_codec *codec, const char *name) ++static int find_empty_mixer_ctl_idx(struct hda_codec *codec, const char *name, ++ int dev) + { + int idx; + for (idx = 0; idx < 16; idx++) { /* 16 ctlrs should be large enough */ +- if (!_snd_hda_find_mixer_ctl(codec, name, idx)) ++ if (!find_mixer_ctl(codec, name, dev, idx)) + return idx; + } + return -EBUSY; +@@ -3148,26 +3149,48 @@ static struct snd_kcontrol_new dig_mixes[] = { + }; + + /** +- * snd_hda_create_spdif_out_ctls - create Output SPDIF-related controls ++ * snd_hda_create_dig_out_ctls - create Output SPDIF-related controls + * @codec: the HDA codec +- * @nid: audio out widget NID +- * +- * Creates controls related with the SPDIF output. +- * Called from each patch supporting the SPDIF out. ++ * @associated_nid: NID that new ctls associated with ++ * @cvt_nid: converter NID ++ * @type: HDA_PCM_TYPE_* ++ * Creates controls related with the digital output. ++ * Called from each patch supporting the digital out. + * + * Returns 0 if successful, or a negative error code. + */ +-int snd_hda_create_spdif_out_ctls(struct hda_codec *codec, +- hda_nid_t associated_nid, +- hda_nid_t cvt_nid) ++int snd_hda_create_dig_out_ctls(struct hda_codec *codec, ++ hda_nid_t associated_nid, ++ hda_nid_t cvt_nid, ++ int type) + { + int err; + struct snd_kcontrol *kctl; + struct snd_kcontrol_new *dig_mix; +- int idx; ++ int idx, dev = 0; ++ const int spdif_pcm_dev = 1; + struct hda_spdif_out *spdif; + +- idx = find_empty_mixer_ctl_idx(codec, "IEC958 Playback Switch"); ++ if (codec->primary_dig_out_type == HDA_PCM_TYPE_HDMI && ++ type == HDA_PCM_TYPE_SPDIF) { ++ dev = spdif_pcm_dev; ++ } else if (codec->primary_dig_out_type == HDA_PCM_TYPE_SPDIF && ++ type == HDA_PCM_TYPE_HDMI) { ++ for (idx = 0; idx < codec->spdif_out.used; idx++) { ++ spdif = snd_array_elem(&codec->spdif_out, idx); ++ for (dig_mix = dig_mixes; dig_mix->name; dig_mix++) { ++ kctl = find_mixer_ctl(codec, dig_mix->name, 0, idx); ++ if (!kctl) ++ break; ++ kctl->id.device = spdif_pcm_dev; ++ } ++ } ++ codec->primary_dig_out_type = HDA_PCM_TYPE_HDMI; ++ } ++ if (!codec->primary_dig_out_type) ++ codec->primary_dig_out_type = type; ++ ++ idx = find_empty_mixer_ctl_idx(codec, "IEC958 Playback Switch", dev); + if (idx < 0) { + printk(KERN_ERR "hda_codec: too many IEC958 outputs\n"); + return -EBUSY; +@@ -3177,6 +3200,7 @@ int snd_hda_create_spdif_out_ctls(struct hda_codec *codec, + kctl = snd_ctl_new1(dig_mix, codec); + if (!kctl) + return -ENOMEM; ++ kctl->id.device = dev; + kctl->id.index = idx; + kctl->private_value = codec->spdif_out.used - 1; + err = snd_hda_ctl_add(codec, associated_nid, kctl); +@@ -3189,7 +3213,7 @@ int snd_hda_create_spdif_out_ctls(struct hda_codec *codec, + spdif->status = convert_to_spdif_status(spdif->ctls); + return 0; + } +-EXPORT_SYMBOL_HDA(snd_hda_create_spdif_out_ctls); ++EXPORT_SYMBOL_HDA(snd_hda_create_dig_out_ctls); + + /* get the hda_spdif_out entry from the given NID + * call within spdif_mutex lock +@@ -3364,7 +3388,7 @@ int snd_hda_create_spdif_in_ctls(struct hda_codec *codec, hda_nid_t nid) + struct snd_kcontrol_new *dig_mix; + int idx; + +- idx = find_empty_mixer_ctl_idx(codec, "IEC958 Capture Switch"); ++ idx = find_empty_mixer_ctl_idx(codec, "IEC958 Capture Switch", 0); + if (idx < 0) { + printk(KERN_ERR "hda_codec: too many IEC958 inputs\n"); + return -EBUSY; +@@ -4472,7 +4496,7 @@ int snd_hda_add_new_ctls(struct hda_codec *codec, + addr = codec->addr; + else if (!idx && !knew->index) { + idx = find_empty_mixer_ctl_idx(codec, +- knew->name); ++ knew->name, 0); + if (idx <= 0) + return err; + } else +diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h +index 10a03b0..62d4229 100644 +--- a/sound/pci/hda/hda_codec.h ++++ b/sound/pci/hda/hda_codec.h +@@ -836,6 +836,7 @@ struct hda_codec { + struct mutex hash_mutex; + struct snd_array spdif_out; + unsigned int spdif_in_enable; /* SPDIF input enable? */ ++ int primary_dig_out_type; /* primary digital out PCM type */ + const hda_nid_t *slave_dig_outs; /* optional digital out slave widgets */ + struct snd_array init_pins; /* initial (BIOS) pin configurations */ + struct snd_array driver_pins; /* pin configs set by codec parser */ +diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h +index 09dbdc3..8c43198 100644 +--- a/sound/pci/hda/hda_local.h ++++ b/sound/pci/hda/hda_local.h +@@ -240,9 +240,11 @@ int snd_hda_mixer_bind_tlv(struct snd_kcontrol *kcontrol, int op_flag, + /* + * SPDIF I/O + */ +-int snd_hda_create_spdif_out_ctls(struct hda_codec *codec, +- hda_nid_t associated_nid, +- hda_nid_t cvt_nid); ++int snd_hda_create_dig_out_ctls(struct hda_codec *codec, ++ hda_nid_t associated_nid, ++ hda_nid_t cvt_nid, int type); ++#define snd_hda_create_spdif_out_ctls(codec, anid, cnid) \ ++ snd_hda_create_dig_out_ctls(codec, anid, cnid, HDA_PCM_TYPE_SPDIF) + int snd_hda_create_spdif_in_ctls(struct hda_codec *codec, hda_nid_t nid); + + /* +diff --git a/sound/pci/hda/patch_cirrus.c b/sound/pci/hda/patch_cirrus.c +index 61a7113..a7f8790 100644 +--- a/sound/pci/hda/patch_cirrus.c ++++ b/sound/pci/hda/patch_cirrus.c +@@ -873,8 +873,9 @@ static int build_digital_output(struct hda_codec *codec) + if (!spec->multiout.dig_out_nid) + return 0; + +- err = snd_hda_create_spdif_out_ctls(codec, spec->multiout.dig_out_nid, +- spec->multiout.dig_out_nid); ++ err = snd_hda_create_dig_out_ctls(codec, spec->multiout.dig_out_nid, ++ spec->multiout.dig_out_nid, ++ spec->pcm_rec[1].pcm_type); + if (err < 0) + return err; + err = snd_hda_create_spdif_share_sw(codec, &spec->multiout); +diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c +index 71555cc..39ca100 100644 +--- a/sound/pci/hda/patch_hdmi.c ++++ b/sound/pci/hda/patch_hdmi.c +@@ -1589,9 +1589,10 @@ static int generic_hdmi_build_controls(struct hda_codec *codec) + if (err < 0) + return err; + +- err = snd_hda_create_spdif_out_ctls(codec, +- per_pin->pin_nid, +- per_pin->mux_nids[0]); ++ err = snd_hda_create_dig_out_ctls(codec, ++ per_pin->pin_nid, ++ per_pin->mux_nids[0], ++ HDA_PCM_TYPE_HDMI); + if (err < 0) + return err; + snd_hda_spdif_ctls_unassign(codec, pin_idx); +diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c +index 8253b4e..2d2bb66 100644 +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -1836,9 +1836,10 @@ static int __alc_build_controls(struct hda_codec *codec) + return err; + } + if (spec->multiout.dig_out_nid) { +- err = snd_hda_create_spdif_out_ctls(codec, +- spec->multiout.dig_out_nid, +- spec->multiout.dig_out_nid); ++ err = snd_hda_create_dig_out_ctls(codec, ++ spec->multiout.dig_out_nid, ++ spec->multiout.dig_out_nid, ++ spec->pcm_rec[1].pcm_type); + if (err < 0) + return err; + if (!spec->no_analog) { +diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c +index 770013f..6214165 100644 +--- a/sound/pci/hda/patch_sigmatel.c ++++ b/sound/pci/hda/patch_sigmatel.c +@@ -1136,9 +1136,10 @@ static int stac92xx_build_controls(struct hda_codec *codec) + } + + if (spec->multiout.dig_out_nid) { +- err = snd_hda_create_spdif_out_ctls(codec, +- spec->multiout.dig_out_nid, +- spec->multiout.dig_out_nid); ++ err = snd_hda_create_dig_out_ctls(codec, ++ spec->multiout.dig_out_nid, ++ spec->multiout.dig_out_nid, ++ spec->autocfg.dig_out_type[0]); + if (err < 0) + return err; + err = snd_hda_create_spdif_share_sw(codec, +-- +1.7.7.6 + From 6f4cb57328e5a5c99bd714b24b9e9694606d31bf Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 2 Feb 2013 22:46:41 +0100 Subject: [PATCH 58/86] alsa-lib: add upstream patches Signed-off-by: Stephan Raue --- .../patches/alsa-lib-hda-intel-hd-001.patch | 83 ++++++++++++ .../patches/alsa-lib-hda-intel-hd-002.patch | 123 ++++++++++++++++++ 2 files changed, 206 insertions(+) create mode 100644 packages/audio/alsa-lib/patches/alsa-lib-hda-intel-hd-001.patch create mode 100644 packages/audio/alsa-lib/patches/alsa-lib-hda-intel-hd-002.patch diff --git a/packages/audio/alsa-lib/patches/alsa-lib-hda-intel-hd-001.patch b/packages/audio/alsa-lib/patches/alsa-lib-hda-intel-hd-001.patch new file mode 100644 index 0000000000..48bf3318ec --- /dev/null +++ b/packages/audio/alsa-lib/patches/alsa-lib-hda-intel-hd-001.patch @@ -0,0 +1,83 @@ +snd_config_get_bool() was improved to parse also ASCII strings now, +so we don't have to open-code the boolean parser in +src/control/setup.c any longer. + +Signed-off-by: Takashi Iwai suse.de> +--- + src/control/setup.c | 37 ++++++------------------------------- + 1 file changed, 6 insertions(+), 31 deletions(-) + +diff --git a/src/control/setup.c b/src/control/setup.c +index eecda45..bd3599d 100644 +--- a/src/control/setup.c ++++ b/src/control/setup.c +@@ -400,7 +400,6 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da + { + snd_config_t *conf; + snd_config_iterator_t i, next; +- char *tmp; + int iface = SND_CTL_ELEM_IFACE_MIXER; + const char *name = NULL; + long index = 0; +@@ -464,33 +463,17 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da + continue; + } + if (strcmp(id, "lock") == 0) { +- if ((err = snd_config_get_ascii(n, &tmp)) < 0) { +- SNDERR("field %s has an invalid type", id); +- goto _err; +- } +- err = snd_config_get_bool_ascii(tmp); +- if (err < 0) { +- SNDERR("field %s is not a boolean", id); +- free(tmp); ++ err = snd_config_get_bool(n); ++ if (err < 0) + goto _err; +- } + lock = err; +- free(tmp); + continue; + } + if (strcmp(id, "preserve") == 0) { +- if ((err = snd_config_get_ascii(n, &tmp)) < 0) { +- SNDERR("field %s has an invalid type", id); +- goto _err; +- } +- err = snd_config_get_bool_ascii(tmp); +- if (err < 0) { +- SNDERR("field %s is not a boolean", id); +- free(tmp); ++ err = snd_config_get_bool(n); ++ if (err < 0) + goto _err; +- } + preserve = err; +- free(tmp); + continue; + } + if (strcmp(id, "value") == 0) { +@@ -502,18 +485,10 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da + continue; + } + if (strcmp(id, "optional") == 0) { +- if ((err = snd_config_get_ascii(n, &tmp)) < 0) { +- SNDERR("field %s has an invalid type", id); +- goto _err; +- } +- err = snd_config_get_bool_ascii(tmp); +- if (err < 0) { +- SNDERR("field %s is not a boolean", id); +- free(tmp); ++ err = snd_config_get_bool(n); ++ if (err < 0) + goto _err; +- } + optional = err; +- free(tmp); + continue; + } + SNDERR("Unknown field %s", id); +-- +1.7.12.2 + diff --git a/packages/audio/alsa-lib/patches/alsa-lib-hda-intel-hd-002.patch b/packages/audio/alsa-lib/patches/alsa-lib-hda-intel-hd-002.patch new file mode 100644 index 0000000000..72b115faf4 --- /dev/null +++ b/packages/audio/alsa-lib/patches/alsa-lib-hda-intel-hd-002.patch @@ -0,0 +1,123 @@ +From: Takashi Iwai suse.de> +Subject: [PATCH RFC 2/2] Add workaround for conflicting IEC958 controls for HD-audio +Newsgroups: gmane.linux.alsa.devel +Date: 2012-10-12 15:25:49 GMT (16 weeks, 1 day, 5 hours and 49 minutes ago) + +When both an SPDIF and an HDMI output are present on HD-audio, both +try to access IEC958 controls with index=0 although one of them must +be wrong. For avoiding this conflict, the recent kernel code moves +the IEC958 controls of an SPDIF with device=1 once when the conflict +happens. + +In this patch, the corresponding support is added in alsa-lib side. +The new "skip_rest" boolean flag is added to the hooked element +definition which indicates that the rest of element array will be +ignored once when this element is present and evaluated. With this +new flag, the HD-audio config takes device=1 primarily, then take +device=0 as fallback. + +Signed-off-by: Takashi Iwai suse.de> +--- + src/conf/cards/HDA-Intel.conf | 16 ++++++++++++++++ + src/control/setup.c | 19 ++++++++++++++++--- + 2 files changed, 32 insertions(+), 3 deletions(-) + +diff --git a/src/conf/cards/HDA-Intel.conf b/src/conf/cards/HDA-Intel.conf +index d4f2667..55fb624 100644 +--- a/src/conf/cards/HDA-Intel.conf ++++ b/src/conf/cards/HDA-Intel.conf +@@ -113,6 +113,22 @@ HDA-Intel.pcm.iec958.0 { + hook_args [ + { + name "IEC958 Playback Default" ++ device 1 ++ optional true ++ lock true ++ preserve true ++ value [ $AES0 $AES1 $AES2 $AES3 ] ++ } ++ { ++ name "IEC958 Playback Switch" ++ device 1 ++ optional true ++ value true ++ # if this element is present, skip the rest ++ skip_rest true ++ } ++ { ++ name "IEC958 Playback Default" + lock true + preserve true + value [ $AES0 $AES1 $AES2 $AES3 ] +diff --git a/src/control/setup.c b/src/control/setup.c +index bd3599d..f23bf2c 100644 +--- a/src/control/setup.c ++++ b/src/control/setup.c +@@ -396,7 +396,7 @@ static int snd_config_get_ctl_elem_value(snd_config_t *conf, + return 0; + } + +-static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_data) ++static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_data, int *quit) + { + snd_config_t *conf; + snd_config_iterator_t i, next; +@@ -408,6 +408,7 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da + int lock = 0; + int preserve = 0; + int optional = 0; ++ int skip_rest = 0; + snd_config_t *value = NULL, *mask = NULL; + snd_sctl_elem_t *elem = NULL; + int err; +@@ -491,6 +492,13 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da + optional = err; + continue; + } ++ if (strcmp(id, "skip_rest") == 0) { ++ err = snd_config_get_bool(n); ++ if (err < 0) ++ goto _err; ++ skip_rest = err; ++ continue; ++ } + SNDERR("Unknown field %s", id); + return -EINVAL; + } +@@ -539,6 +547,9 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da + if (! optional) + SNDERR("Cannot obtain info for CTL elem (%s,'%s',%li,%li,%li): %s",snd_ctl_elem_iface_name(iface), name, index, device, subdevice, snd_strerror(err)); + goto _err; ++ } else { ++ if (skip_rest) ++ *quit = 1; + } + snd_ctl_elem_value_set_id(elem->val, elem->id); + snd_ctl_elem_value_set_id(elem->old, elem->id); +@@ -594,7 +605,7 @@ int snd_sctl_build(snd_sctl_t **sctl, snd_ctl_t *handle, snd_config_t *conf, snd + { + snd_sctl_t *h; + snd_config_iterator_t i, next; +- int err; ++ int err, quit = 0; + + assert(sctl); + assert(handle); +@@ -614,11 +625,13 @@ int snd_sctl_build(snd_sctl_t **sctl, snd_ctl_t *handle, snd_config_t *conf, snd + INIT_LIST_HEAD(&h->elems); + snd_config_for_each(i, next, conf) { + snd_config_t *n = snd_config_iterator_entry(i); +- err = add_elem(h, n, private_data); ++ err = add_elem(h, n, private_data, &quit); + if (err < 0) { + free_elems(h); + return err; + } ++ if (quit) ++ break; + } + *sctl = h; + return 0; +-- +1.7.12.2 + From f0a6ca107a04fb4e9081aa333c1030b1fb8cfa2e Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 2 Feb 2013 22:47:36 +0100 Subject: [PATCH 59/86] xbmc: add PR2158 patch Signed-off-by: Stephan Raue --- .../xbmc/patches/xbmc-990.01-PR2158.patch | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 packages/mediacenter/xbmc/patches/xbmc-990.01-PR2158.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-990.01-PR2158.patch b/packages/mediacenter/xbmc/patches/xbmc-990.01-PR2158.patch new file mode 100644 index 0000000000..7f984189e7 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-990.01-PR2158.patch @@ -0,0 +1,39 @@ +From ac86e23aa11861a4fa063fb2fa05f10cbc4eea19 Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 1 Feb 2013 18:37:20 +0000 +Subject: [PATCH] [rbp] Avoid blocking the video thread keeping the video fifo + full. OpenMAX IL is an asynchronous media player. The key + to getting good performance is to ensure the audio and + video fifo have sufficient data to withstand any processing + spikes by the ARM. Ideally the fifos would allow the arm to + crash, and video and audio playback to continue smoothly + for a couple of seconds. + +I've examined the fifo behaviour, and found the video fifo is always almost empty. (The audio fifo is full). +It turns out that the PlayerVideo task (which submits video frames to GPU fifo) blocks until the presentation time has arrived before calling FlipPage (in order to keep subtitles etc. synced). +This is very bad. We generally only one frame of video data in the GPU fifo. This means a spike in ARM workload (e.g. bringing up OSD, or a peak in bitrate) causes the fifo to empty and video to stutter. + +The patch here avoids blocking, and lets the FlipPage happen on a later packet. +I've found with this patch, my test clip (1080p with software DTS audio decode) I can play without stuttering at 700MHz. Without this patch it fails to play even at 1000MHz. +--- + xbmc/cores/omxplayer/OMXPlayerVideo.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +index 90f94aa..5f3f050 100644 +--- a/xbmc/cores/omxplayer/OMXPlayerVideo.cpp ++++ b/xbmc/cores/omxplayer/OMXPlayerVideo.cpp +@@ -455,8 +455,8 @@ void OMXPlayerVideo::Output(int iGroupId, double pts, bool bDropPacket) + double pts_media = m_av_clock->OMXMediaTime(false, false); + ProcessOverlays(iGroupId, pts_media); + +- while(!CThread::m_bStop && m_av_clock->GetAbsoluteClock(false) < (iCurrentClock + iSleepTime + DVD_MSEC_TO_TIME(500)) ) +- Sleep(1); ++ if (!CThread::m_bStop && m_av_clock->GetAbsoluteClock(false) < (iCurrentClock + iSleepTime + DVD_MSEC_TO_TIME(500)) ) ++ return; + + g_renderManager.FlipPage(CThread::m_bStop, (iCurrentClock + iSleepTime) / DVD_TIME_BASE, -1, FS_NONE); + +-- +1.7.10 + From 0757e8858d240fd82a260c61a8bb8031ac8f679c Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 3 Feb 2013 01:36:27 +0100 Subject: [PATCH 60/86] busybox-initramfs: dont load splash in background, to make Milhouse happy Signed-off-by: Stephan Raue --- packages/initramfs/sysutils/busybox-initramfs/scripts/init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/initramfs/sysutils/busybox-initramfs/scripts/init b/packages/initramfs/sysutils/busybox-initramfs/scripts/init index c155c0156b..51dab2d243 100755 --- a/packages/initramfs/sysutils/busybox-initramfs/scripts/init +++ b/packages/initramfs/sysutils/busybox-initramfs/scripts/init @@ -373,7 +373,7 @@ SPLASHIMAGE="/splash/splash.png" fi - ply-image $SPLASHIMAGE > /dev/null 2>&1 & + ply-image $SPLASHIMAGE > /dev/null 2>&1 fi } From f0ed75b91928c3a94bcafe8371365119082a630a Mon Sep 17 00:00:00 2001 From: vpeter4 Date: Sat, 6 Oct 2012 19:07:47 +0200 Subject: [PATCH 61/86] sundtek: addon redesign addon renamed to just sundtek added addon settings sundtek's binaries are downloaded on first run automatically download new version of the binaries if available added preload library to .profile (to run mediaclient, w_scan, ... from console) The addon is now generic for all architectures (doesn't contain any binary file). Signed-off-by: Stephan Raue --- .../source/bin/userspace-driver.sh | 85 -------- .../driver/{sundtek-mediatv => sundtek}/addon | 7 +- .../changelog.txt | 8 +- .../config/sundtek.conf | 12 +- .../config/sundtek.conf.full | 0 .../icon/icon.png | Bin .../driver/{sundtek-mediatv => sundtek}/meta | 6 +- .../driver/sundtek/settings-default.xml | 7 + .../source/bin/device-attached.sh | 0 .../driver/sundtek/source/bin/sundtek.start} | 17 +- .../driver/sundtek/source/bin/sundtek.stop} | 25 +-- .../sundtek/source/bin/userspace-driver.sh | 197 ++++++++++++++++++ .../source/default.py | 0 .../resources/language/English/strings.xml | 9 + .../sundtek/source/resources/settings.xml | 12 ++ .../source/sleep.d/sundtek.power} | 4 +- 16 files changed, 257 insertions(+), 132 deletions(-) delete mode 100755 packages/addons/driver/sundtek-mediatv/source/bin/userspace-driver.sh rename packages/addons/driver/{sundtek-mediatv => sundtek}/addon (83%) rename packages/addons/driver/{sundtek-mediatv => sundtek}/changelog.txt (56%) rename packages/addons/driver/{sundtek-mediatv => sundtek}/config/sundtek.conf (73%) rename packages/addons/driver/{sundtek-mediatv => sundtek}/config/sundtek.conf.full (100%) rename packages/addons/driver/{sundtek-mediatv => sundtek}/icon/icon.png (100%) rename packages/addons/driver/{sundtek-mediatv => sundtek}/meta (95%) create mode 100755 packages/addons/driver/sundtek/settings-default.xml rename packages/addons/driver/{sundtek-mediatv => sundtek}/source/bin/device-attached.sh (100%) mode change 100755 => 100644 rename packages/{3rdparty/driver/sundtek/build => addons/driver/sundtek/source/bin/sundtek.start} (73%) mode change 100755 => 100644 rename packages/{3rdparty/driver/sundtek/meta => addons/driver/sundtek/source/bin/sundtek.stop} (65%) create mode 100644 packages/addons/driver/sundtek/source/bin/userspace-driver.sh rename packages/addons/driver/{sundtek-mediatv => sundtek}/source/default.py (100%) create mode 100644 packages/addons/driver/sundtek/source/resources/language/English/strings.xml create mode 100644 packages/addons/driver/sundtek/source/resources/settings.xml rename packages/addons/driver/{sundtek-mediatv/source/sleep.d/sundtek-mediatv.power => sundtek/source/sleep.d/sundtek.power} (93%) mode change 100755 => 100644 diff --git a/packages/addons/driver/sundtek-mediatv/source/bin/userspace-driver.sh b/packages/addons/driver/sundtek-mediatv/source/bin/userspace-driver.sh deleted file mode 100755 index ef8855229a..0000000000 --- a/packages/addons/driver/sundtek-mediatv/source/bin/userspace-driver.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/sh - -################################################################################ -# This file is part of OpenELEC - http://www.openelec.tv -# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) -# -# 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, 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 OpenELEC.tv; see the file COPYING. If not, write to -# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. -# http://www.gnu.org/copyleft/gpl.html -################################################################################ - -. /etc/profile - -ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.sundtek-mediatv" -ADDON_HOME="$HOME/.xbmc/userdata/addon_data/driver.dvb.sundtek-mediatv" -SUNDTEK_READY="/var/run/sundtek.ready" -ADAPTER_WAIT_TIME=120 - -NETWORK_TUNER_IP=$(awk '/^network_tuner_ip=/ {split($0,a,"="); printf("%s", a[2])}' "$ADDON_HOME/sundtek.conf") - -mkdir -p $ADDON_HOME - -if [ ! -f "$ADDON_HOME/sundtek.conf" ]; then - cp $ADDON_DIR/config/* $ADDON_HOME/ -fi - -SUNDTEK_ARG="--pluginpath=$ADDON_DIR/bin --daemon" - -if [ -z "$(pidof mediasrv)" ]; then - rm -f /var/log/mediasrv.log - rm -f /var/log/mediaclient.log - rm -f $SUNDTEK_READY - rm -f /tmp/sundtek.conf - - ln -sf $ADDON_HOME/sundtek.conf /tmp/sundtek.conf - mediasrv $SUNDTEK_ARG - - if [ -n "$NETWORK_TUNER_IP" ]; then - logger -t Sundtek "### Trying to connect Sundtek device $NETWORK_TUNER_IP ###" - mediaclient --mount=$NETWORK_TUNER_IP - else - logger -t Sundtek "### Trying to attach Sundtek device ###" - fi - - # wait for device to get attached or connected - cnt=0 - while [ 1 ]; do - if [ -n "$NETWORK_TUNER_IP" -a -e /dev/dvb/adapter*/frontend* ]; then - sh $ADDON_DIR/bin/device-attached.sh - fi - - if [ -f $SUNDTEK_READY ]; then - rm -f $SUNDTEK_READY - break - elif [ "$cnt" = "$ADAPTER_WAIT_TIME" ]; then - logger -t Sundtek "### No Sundtek device attached or connected ###" - return - fi - let cnt=cnt+1 - usleep 500000 - done - -( - # save adapter serial number in background - sleep 4 - serial_number_old=$(cat $ADDON_HOME/adapters.txt 2>/dev/null) - serial_number_new=$(mediaclient -e | awk '/device / {print $0} /ID:/ {print $2}') - if [ "$serial_number_old" != "$serial_number_new" ]; then - echo "$serial_number_new" >$ADDON_HOME/adapters.txt - fi -)& -fi - -export LD_PRELOAD=$ADDON_DIR/lib/libmediaclient.so:$LD_PRELOAD diff --git a/packages/addons/driver/sundtek-mediatv/addon b/packages/addons/driver/sundtek/addon similarity index 83% rename from packages/addons/driver/sundtek-mediatv/addon rename to packages/addons/driver/sundtek/addon index 12b17a98c2..64dad25a52 100755 --- a/packages/addons/driver/sundtek-mediatv/addon +++ b/packages/addons/driver/sundtek/addon @@ -24,9 +24,4 @@ mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/config/ cp -P $PKG_DIR/config/* $ADDON_BUILD/$PKG_ADDON_ID/config/ - -mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin/ - cp -Pa $ROOT/$BUILD/sundtek-*/opt/bin/* $ADDON_BUILD/$PKG_ADDON_ID/bin/ - -mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib/ - cp -Pa $ROOT/$BUILD/sundtek-*/opt/lib/*.so $ADDON_BUILD/$PKG_ADDON_ID/lib/ + cp -P $PKG_DIR/settings-default.xml $ADDON_BUILD/$PKG_ADDON_ID/ diff --git a/packages/addons/driver/sundtek-mediatv/changelog.txt b/packages/addons/driver/sundtek/changelog.txt similarity index 56% rename from packages/addons/driver/sundtek-mediatv/changelog.txt rename to packages/addons/driver/sundtek/changelog.txt index 6e2258a742..7043ca6cb5 100644 --- a/packages/addons/driver/sundtek-mediatv/changelog.txt +++ b/packages/addons/driver/sundtek/changelog.txt @@ -1,12 +1,16 @@ 3.0.1 -- bump addon version + addon renamed to just sundtek + added addon settings + sundtek's binaries are downloaded on first run + automatically download new version of the binaries if available + added preload library to .profile (to run mediaclient, w_scan, ... from console) 2.1.4 support for Raspberry Pi 2.1.3 support for network tuner - + 2.1.2 support for multiple Sundtek tuners support for working with other tuners (kernel drivers) diff --git a/packages/addons/driver/sundtek-mediatv/config/sundtek.conf b/packages/addons/driver/sundtek/config/sundtek.conf similarity index 73% rename from packages/addons/driver/sundtek-mediatv/config/sundtek.conf rename to packages/addons/driver/sundtek/config/sundtek.conf index 04553abba7..103a7ab60b 100644 --- a/packages/addons/driver/sundtek-mediatv/config/sundtek.conf +++ b/packages/addons/driver/sundtek/config/sundtek.conf @@ -2,11 +2,8 @@ # sundtek.conf # # Call attach/detach script when new device appears/disappears -# Do not change this line! -device_attach=/storage/.xbmc/addons/driver.dvb.sundtek-mediatv/bin/device-attached.sh - -# network tuner IP address (OpenELEC specific) -#network_tuner_ip=xxx.xxx.xxx.xxx +# Do not change this line (OpenElec addon require this) ! +device_attach=/storage/.xbmc/addons/driver.dvb.sundtek/bin/device-attached.sh # Infrared Control Support is disabled/enabled ir_disabled=1 @@ -19,8 +16,11 @@ bulk_notification=on # Get adapter serial number with mediaclient -e # or look into file adapter_serial_number.txt -[SERIALNUMBER] +#[SERIALNUMBER] # Choose initial DVB mode for hybrid DVB-T/DVB-C devices only #initial_dvb_mode=[DVBC|DVBT] # default mode is DVB-C, we must set it to DVB-T if needed #initial_dvb_mode=DVBT + +#[U123456789012] +#initial_dvb_mode=DVBT diff --git a/packages/addons/driver/sundtek-mediatv/config/sundtek.conf.full b/packages/addons/driver/sundtek/config/sundtek.conf.full similarity index 100% rename from packages/addons/driver/sundtek-mediatv/config/sundtek.conf.full rename to packages/addons/driver/sundtek/config/sundtek.conf.full diff --git a/packages/addons/driver/sundtek-mediatv/icon/icon.png b/packages/addons/driver/sundtek/icon/icon.png similarity index 100% rename from packages/addons/driver/sundtek-mediatv/icon/icon.png rename to packages/addons/driver/sundtek/icon/icon.png diff --git a/packages/addons/driver/sundtek-mediatv/meta b/packages/addons/driver/sundtek/meta similarity index 95% rename from packages/addons/driver/sundtek-mediatv/meta rename to packages/addons/driver/sundtek/meta index 3c036ac677..ce0440aacb 100644 --- a/packages/addons/driver/sundtek-mediatv/meta +++ b/packages/addons/driver/sundtek/meta @@ -18,15 +18,15 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -PKG_NAME="sundtek-mediatv" +PKG_NAME="sundtek" PKG_VERSION="3.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="nonfree" PKG_SITE="http://support.sundtek.com/" PKG_URL="" -PKG_DEPENDS="sundtek" -PKG_BUILD_DEPENDS="sundtek" +PKG_DEPENDS="" +PKG_BUILD_DEPENDS="" PKG_PRIORITY="optional" PKG_SECTION="driver/dvb" PKG_SHORTDESC="Sundtek USB Stick DVB userspace driver" diff --git a/packages/addons/driver/sundtek/settings-default.xml b/packages/addons/driver/sundtek/settings-default.xml new file mode 100755 index 0000000000..5de6cb8a02 --- /dev/null +++ b/packages/addons/driver/sundtek/settings-default.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/packages/addons/driver/sundtek-mediatv/source/bin/device-attached.sh b/packages/addons/driver/sundtek/source/bin/device-attached.sh old mode 100755 new mode 100644 similarity index 100% rename from packages/addons/driver/sundtek-mediatv/source/bin/device-attached.sh rename to packages/addons/driver/sundtek/source/bin/device-attached.sh diff --git a/packages/3rdparty/driver/sundtek/build b/packages/addons/driver/sundtek/source/bin/sundtek.start old mode 100755 new mode 100644 similarity index 73% rename from packages/3rdparty/driver/sundtek/build rename to packages/addons/driver/sundtek/source/bin/sundtek.start index 5777907bb4..eed33185de --- a/packages/3rdparty/driver/sundtek/build +++ b/packages/addons/driver/sundtek/source/bin/sundtek.start @@ -20,18 +20,9 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -. config/options $1 +. /etc/profile -cd $PKG_BUILD +ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.sundtek" -# binary search & replace (strings must be same length!) -# mediasrv -# /etc/sunI»dtek.conf -# /etc/sundtek.conf -# libdrv_em28xx.so -# /etc/sundtek.conf -# mediaclient -# /etc/sundtek_diseqc.conf -perl -pi -e 's|/etc|/tmp|g' opt/bin/mediasrv -perl -pi -e 's|/etc|/tmp|g' opt/bin/dvb/libdrv_em28xx.so -perl -pi -e 's|/etc|/tmp|g' opt/bin/mediaclient +logger -t Sundtek "### Sundtek manual start ###" +. $ADDON_DIR/bin/userspace-driver.sh diff --git a/packages/3rdparty/driver/sundtek/meta b/packages/addons/driver/sundtek/source/bin/sundtek.stop similarity index 65% rename from packages/3rdparty/driver/sundtek/meta rename to packages/addons/driver/sundtek/source/bin/sundtek.stop index 02003fea0c..be22e253f3 100644 --- a/packages/3rdparty/driver/sundtek/meta +++ b/packages/addons/driver/sundtek/source/bin/sundtek.stop @@ -1,3 +1,5 @@ +#!/bin/sh + ################################################################################ # This file is part of OpenELEC - http://www.openelec.tv # Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) @@ -18,18 +20,11 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -PKG_NAME="sundtek" -PKG_VERSION="20120912" -PKG_REV="0" -PKG_ARCH="i386 x86_64 arm" -PKG_LICENSE="nonfree" -PKG_SITE="http://support.sundtek.com/" -PKG_URL="${DISTRO_SRC}/${PKG_NAME}-${PKG_VERSION}-${ARCH}.tar.gz" -PKG_DEPENDS="" -PKG_BUILD_DEPENDS="" -PKG_PRIORITY="optional" -PKG_SECTION="driver/dvb" -PKG_SHORTDESC="Sundtek USB Stick DVB userspace driver" -PKG_LONGDESC="Driver for Sundtek MediaTV Pro (DVB-C, DVB-T, AnalogTV, Composite, S-Video, FM-Radio USB Stick) and Sundtek SkyTV Ultimate (DVB-S/S2 USB)." -PKG_IS_ADDON="no" -PKG_AUTORECONF="no" +. /etc/profile + +ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.sundtek" + +export LD_PRELOAD=$ADDON_DIR/lib/libmediaclient.so + +logger -t Sundtek "### Sundtek manual stop ###" +mediaclient --shutdown diff --git a/packages/addons/driver/sundtek/source/bin/userspace-driver.sh b/packages/addons/driver/sundtek/source/bin/userspace-driver.sh new file mode 100644 index 0000000000..0ec17a5389 --- /dev/null +++ b/packages/addons/driver/sundtek/source/bin/userspace-driver.sh @@ -0,0 +1,197 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# 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, 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 OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +. /etc/profile + +ADDON_DIR="$HOME/.xbmc/addons/driver.dvb.sundtek" +ADDON_HOME="$HOME/.xbmc/userdata/addon_data/driver.dvb.sundtek" +ADDON_SETTINGS="$ADDON_HOME/settings.xml" +SUNDTEK_READY="/var/run/sundtek.ready" + +mkdir -p $ADDON_HOME + +if [ ! -f "$ADDON_HOME/sundtek.conf" ]; then + cp $ADDON_DIR/config/* $ADDON_HOME/ +fi + +if [ ! -f "$ADDON_SETTINGS" ]; then + cp $ADDON_DIR/settings-default.xml $ADDON_SETTINGS +fi + +mkdir -p /var/config +cat "$ADDON_SETTINGS" | awk -F\" '{print $2"=\""$4"\""}' | sed '/^=/d' > /var/config/sundtek-addon.conf +. /var/config/sundtek-addon.conf + +if [ "$AUTO_UPDATE" = "true" -a -f $ADDON_DIR/bin/mediasrv ]; then + logger -t Sundtek "### Checking for new Sundtek binary installer ###" + touch $ADDON_HOME/driver-version.txt + wget -O /tmp/sundtek-driver-version.txt http://sundtek.de/media/latest.phtml + md5_1=$(md5sum -b /tmp/sundtek-driver-version.txt | awk '{print $1}') + md5_2=$(md5sum -b $ADDON_HOME/driver-version.txt | awk '{print $1}') + if [ "$md5_1" != "$md5_2" ]; then + logger -t Sundtek "### Updating Sundtek binary installer ###" + rm -f $ADDON_DIR/bin/mediasrv + fi + + rm -f /tmp/sundtek-driver-version.txt +fi + +if [ ! -f $ADDON_DIR/bin/mediasrv ]; then + logger -t Sundtek "### Downloading installer ###" + cd $ADDON_DIR + mkdir -p bin lib tmp + cd tmp/ + + ARCH=$(sed -n 's|.*\.\([^-]*\)-.*|\1|p' /etc/release | tr -d '\n') + if [ "$ARCH" = "x86_64" ]; then + INSTALLER_URL="http://sundtek.de/media/netinst/64bit/installer.tar.gz" + elif [ "$ARCH" = "i386" ]; then + INSTALLER_URL="http://sundtek.de/media/netinst/32bit/installer.tar.gz" + elif [ "$ARCH" = "arm" ]; then + INSTALLER_URL="http://sundtek.de/media/netinst/armsysvhf/installer.tar.gz" + else + logger -t Sundtek "### Unsupported architecture ###" + cd .. + rm -fr tmp/ + exit 1 + fi + + # test only !!! + #INSTALLER_URL="http://sundtek.de/support/installer.tar.gz" + + wget -O installer.tar.gz $INSTALLER_URL + wget -O ../driver-version.txt http://sundtek.de/media/latest.phtml + logger -t Sundtek "### Extracting installer ###" + tar -xzf installer.tar.gz + if [ $? -ne 0 ]; then + logger -t Sundtek "### Installer damaged ###" + cd .. + rm -fr tmp/ + exit 2 + fi + + cp -Pa opt/bin/* ../bin/ + cp -Pa opt/lib/* ../lib/ + cp ../driver-version.txt $ADDON_HOME/ + cd .. + rm -fr tmp/ + logger -t Sundtek "### Installer finished ###" +fi + +if [ ! -f $ADDON_HOME/driver-version.txt ]; then + cp $ADDON_DIR/driver-version.txt $ADDON_HOME/ +fi + +# enable to install same version again +rm -f /storage/.xbmc/addons/packages/driver.dvb.sundtek-* + +# add alias for /opt/bin/mediaclient +#alias_set="$(grep /opt/bin/mediaclient /storage/.profile 2>/dev/null)" +alias_set="$(grep libmediaclient.so /storage/.profile 2>/dev/null)" +if [ -z "$alias_set" ]; then + echo "" >>/storage/.profile + #echo "alias /opt/bin/mediaclient=/storage/.xbmc/addons/driver.dvb.sundtek/bin/mediaclient" >>/storage/.profile + echo "[ -f /storage/.xbmc/addons/driver.dvb.sundtek/lib/libmediaclient.so ] && export LD_PRELOAD=/storage/.xbmc/addons/driver.dvb.sundtek/lib/libmediaclient.so" >>/storage/.profile + echo "" >>/storage/.profile +fi + +export LD_PRELOAD=$ADDON_DIR/lib/libmediaclient.so + +if [ "$ANALOG_TV" = "true" -a ! -f "$ADDON_DIR/bin/plugins/lib/libavcodec.so.54.12.100" ]; then + logger -t Sundtek "### Downloading missing ffmpeg libraries ###" + cd $ADDON_DIR/bin + mkdir -p plugins/ + cd plugins/ + + ARCH=$(sed -n 's|.*\.\([^-]*\)-.*|\1|p' /etc/release | tr -d '\n') + wget -O sundtek-ffmpeg-analog_tv-lib.tgz http://dl.dropbox.com/u/8224157/public/sundtek/sundtek-ffmpeg-analog_tv-lib-$ARCH.tgz + + logger -t Sundtek "### Extracting ffmpeg libraries ###" + tar -xzf sundtek-ffmpeg-analog_tv-lib.tgz + if [ $? -ne 0 ]; then + logger -t Sundtek "### Ffmpeg library archive damaged ###" + rm -f sundtek-ffmpeg-analog_tv-lib.tgz + exit 2 + fi + + rm -f sundtek-ffmpeg-analog_tv-lib.tgz +fi + +if [ -z "$(pidof mediasrv)" ]; then + rm -f /var/log/mediasrv.log + rm -f /var/log/mediaclient.log + rm -f $SUNDTEK_READY + + mediasrv --wait-for-devices -p $ADDON_DIR/bin -c $ADDON_HOME/sundtek.conf -d + + if [ -n "$NETWORK_TUNER_IP" -a "$NETWORK_TUNER_IP" != "0.0.0.0" ]; then + logger -t Sundtek "### Trying to connect to Sundtek network device IP $NETWORK_TUNER_IP ###" + mediaclient --mount=$NETWORK_TUNER_IP + else + logger -t Sundtek "### Trying to attach Sundtek device ###" + fi + + # wait for device to get attached or connected + for i in $(seq 1 240); do + if [ -n "$NETWORK_TUNER_IP" -a -e /dev/dvb/adapter*/frontend* ]; then + sh $ADDON_DIR/bin/device-attached.sh + fi + + if [ -f $SUNDTEK_READY ]; then + rm -f $SUNDTEK_READY + logger -t Sundtek "### Sundtek ready ###" + + if [ -n $SETTLE_TIME -a $SETTLE_TIME -gt 0 ]; then + logger -t Sundtek "### Settle for $SETTLE_TIME sec ###" + sleep $SETTLE_TIME + fi + + break + elif [ "$i" = "240" ]; then + logger -t Sundtek "### No Sundtek device attached or connected ###" + return + else + usleep 500000 + fi + done + + if [ "$ANALOG_TV" = "true" ]; then + logger -t Sundtek "### Switching to analog TV mode ###" + #rm -fr /dev/dvb/ + mediaclient --disable-dvb=/dev/dvb/adapter0 + fi + + if [ "$RUN_USER_SCRIPT" = "true" -a -f "$ADDON_HOME/userscript.sh" ]; then + logger -t Sundtek "### Running user script $ADDON_HOME/userscript.sh ###" + cat $ADDON_HOME/userscript.sh | dos2unix >/var/run/sundtek-userscript.sh + sh /var/run/sundtek-userscript.sh + fi +( + # save adapter serial number in background + sleep 5 + serial_number_old=$(cat $ADDON_HOME/adapters.txt 2>/dev/null) + serial_number_new=$(mediaclient -e | awk '/device / {print $0} /ID:/ {print $2}') + if [ "$serial_number_old" != "$serial_number_new" ]; then + echo "$serial_number_new" >$ADDON_HOME/adapters.txt + fi +)& +fi diff --git a/packages/addons/driver/sundtek-mediatv/source/default.py b/packages/addons/driver/sundtek/source/default.py similarity index 100% rename from packages/addons/driver/sundtek-mediatv/source/default.py rename to packages/addons/driver/sundtek/source/default.py diff --git a/packages/addons/driver/sundtek/source/resources/language/English/strings.xml b/packages/addons/driver/sundtek/source/resources/language/English/strings.xml new file mode 100644 index 0000000000..fe9a39f090 --- /dev/null +++ b/packages/addons/driver/sundtek/source/resources/language/English/strings.xml @@ -0,0 +1,9 @@ + + + General + Auto update binary driver + Analog TV + Network tuner IP + Extra settle time + Run user script + diff --git a/packages/addons/driver/sundtek/source/resources/settings.xml b/packages/addons/driver/sundtek/source/resources/settings.xml new file mode 100644 index 0000000000..13c4605753 --- /dev/null +++ b/packages/addons/driver/sundtek/source/resources/settings.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/packages/addons/driver/sundtek-mediatv/source/sleep.d/sundtek-mediatv.power b/packages/addons/driver/sundtek/source/sleep.d/sundtek.power old mode 100755 new mode 100644 similarity index 93% rename from packages/addons/driver/sundtek-mediatv/source/sleep.d/sundtek-mediatv.power rename to packages/addons/driver/sundtek/source/sleep.d/sundtek.power index 2dbf91847e..b81f5ea9cc --- a/packages/addons/driver/sundtek-mediatv/source/sleep.d/sundtek-mediatv.power +++ b/packages/addons/driver/sundtek/source/sleep.d/sundtek.power @@ -23,12 +23,12 @@ . /etc/profile LOCKDIR="/var/lock/" -LOCKFILE="sundtek-mediatv" +LOCKFILE="sundtek" case "$1" in hibernate|suspend) if [ -n "$(pidof mediasrv)" ]; then - progress "Shutting down Sundtek MediaTV DVB driver for suspending..." + progress "Shutting down Sundtek DVB driver for suspending..." mkdir -p "$LOCKDIR" touch "$LOCKDIR/$LOCKFILE" mediaclient --shutdown From ac02b5fd8f5da7a81543c8f88297a80736ff1f3e Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 3 Feb 2013 14:37:07 +0100 Subject: [PATCH 62/86] Revert "alsa-lib: add upstream patches" This reverts commit 6f4cb57328e5a5c99bd714b24b9e9694606d31bf. --- .../patches/alsa-lib-hda-intel-hd-001.patch | 83 ------------ .../patches/alsa-lib-hda-intel-hd-002.patch | 123 ------------------ 2 files changed, 206 deletions(-) delete mode 100644 packages/audio/alsa-lib/patches/alsa-lib-hda-intel-hd-001.patch delete mode 100644 packages/audio/alsa-lib/patches/alsa-lib-hda-intel-hd-002.patch diff --git a/packages/audio/alsa-lib/patches/alsa-lib-hda-intel-hd-001.patch b/packages/audio/alsa-lib/patches/alsa-lib-hda-intel-hd-001.patch deleted file mode 100644 index 48bf3318ec..0000000000 --- a/packages/audio/alsa-lib/patches/alsa-lib-hda-intel-hd-001.patch +++ /dev/null @@ -1,83 +0,0 @@ -snd_config_get_bool() was improved to parse also ASCII strings now, -so we don't have to open-code the boolean parser in -src/control/setup.c any longer. - -Signed-off-by: Takashi Iwai suse.de> ---- - src/control/setup.c | 37 ++++++------------------------------- - 1 file changed, 6 insertions(+), 31 deletions(-) - -diff --git a/src/control/setup.c b/src/control/setup.c -index eecda45..bd3599d 100644 ---- a/src/control/setup.c -+++ b/src/control/setup.c -@@ -400,7 +400,6 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da - { - snd_config_t *conf; - snd_config_iterator_t i, next; -- char *tmp; - int iface = SND_CTL_ELEM_IFACE_MIXER; - const char *name = NULL; - long index = 0; -@@ -464,33 +463,17 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da - continue; - } - if (strcmp(id, "lock") == 0) { -- if ((err = snd_config_get_ascii(n, &tmp)) < 0) { -- SNDERR("field %s has an invalid type", id); -- goto _err; -- } -- err = snd_config_get_bool_ascii(tmp); -- if (err < 0) { -- SNDERR("field %s is not a boolean", id); -- free(tmp); -+ err = snd_config_get_bool(n); -+ if (err < 0) - goto _err; -- } - lock = err; -- free(tmp); - continue; - } - if (strcmp(id, "preserve") == 0) { -- if ((err = snd_config_get_ascii(n, &tmp)) < 0) { -- SNDERR("field %s has an invalid type", id); -- goto _err; -- } -- err = snd_config_get_bool_ascii(tmp); -- if (err < 0) { -- SNDERR("field %s is not a boolean", id); -- free(tmp); -+ err = snd_config_get_bool(n); -+ if (err < 0) - goto _err; -- } - preserve = err; -- free(tmp); - continue; - } - if (strcmp(id, "value") == 0) { -@@ -502,18 +485,10 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da - continue; - } - if (strcmp(id, "optional") == 0) { -- if ((err = snd_config_get_ascii(n, &tmp)) < 0) { -- SNDERR("field %s has an invalid type", id); -- goto _err; -- } -- err = snd_config_get_bool_ascii(tmp); -- if (err < 0) { -- SNDERR("field %s is not a boolean", id); -- free(tmp); -+ err = snd_config_get_bool(n); -+ if (err < 0) - goto _err; -- } - optional = err; -- free(tmp); - continue; - } - SNDERR("Unknown field %s", id); --- -1.7.12.2 - diff --git a/packages/audio/alsa-lib/patches/alsa-lib-hda-intel-hd-002.patch b/packages/audio/alsa-lib/patches/alsa-lib-hda-intel-hd-002.patch deleted file mode 100644 index 72b115faf4..0000000000 --- a/packages/audio/alsa-lib/patches/alsa-lib-hda-intel-hd-002.patch +++ /dev/null @@ -1,123 +0,0 @@ -From: Takashi Iwai suse.de> -Subject: [PATCH RFC 2/2] Add workaround for conflicting IEC958 controls for HD-audio -Newsgroups: gmane.linux.alsa.devel -Date: 2012-10-12 15:25:49 GMT (16 weeks, 1 day, 5 hours and 49 minutes ago) - -When both an SPDIF and an HDMI output are present on HD-audio, both -try to access IEC958 controls with index=0 although one of them must -be wrong. For avoiding this conflict, the recent kernel code moves -the IEC958 controls of an SPDIF with device=1 once when the conflict -happens. - -In this patch, the corresponding support is added in alsa-lib side. -The new "skip_rest" boolean flag is added to the hooked element -definition which indicates that the rest of element array will be -ignored once when this element is present and evaluated. With this -new flag, the HD-audio config takes device=1 primarily, then take -device=0 as fallback. - -Signed-off-by: Takashi Iwai suse.de> ---- - src/conf/cards/HDA-Intel.conf | 16 ++++++++++++++++ - src/control/setup.c | 19 ++++++++++++++++--- - 2 files changed, 32 insertions(+), 3 deletions(-) - -diff --git a/src/conf/cards/HDA-Intel.conf b/src/conf/cards/HDA-Intel.conf -index d4f2667..55fb624 100644 ---- a/src/conf/cards/HDA-Intel.conf -+++ b/src/conf/cards/HDA-Intel.conf -@@ -113,6 +113,22 @@ HDA-Intel.pcm.iec958.0 { - hook_args [ - { - name "IEC958 Playback Default" -+ device 1 -+ optional true -+ lock true -+ preserve true -+ value [ $AES0 $AES1 $AES2 $AES3 ] -+ } -+ { -+ name "IEC958 Playback Switch" -+ device 1 -+ optional true -+ value true -+ # if this element is present, skip the rest -+ skip_rest true -+ } -+ { -+ name "IEC958 Playback Default" - lock true - preserve true - value [ $AES0 $AES1 $AES2 $AES3 ] -diff --git a/src/control/setup.c b/src/control/setup.c -index bd3599d..f23bf2c 100644 ---- a/src/control/setup.c -+++ b/src/control/setup.c -@@ -396,7 +396,7 @@ static int snd_config_get_ctl_elem_value(snd_config_t *conf, - return 0; - } - --static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_data) -+static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_data, int *quit) - { - snd_config_t *conf; - snd_config_iterator_t i, next; -@@ -408,6 +408,7 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da - int lock = 0; - int preserve = 0; - int optional = 0; -+ int skip_rest = 0; - snd_config_t *value = NULL, *mask = NULL; - snd_sctl_elem_t *elem = NULL; - int err; -@@ -491,6 +492,13 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da - optional = err; - continue; - } -+ if (strcmp(id, "skip_rest") == 0) { -+ err = snd_config_get_bool(n); -+ if (err < 0) -+ goto _err; -+ skip_rest = err; -+ continue; -+ } - SNDERR("Unknown field %s", id); - return -EINVAL; - } -@@ -539,6 +547,9 @@ static int add_elem(snd_sctl_t *h, snd_config_t *_conf, snd_config_t *private_da - if (! optional) - SNDERR("Cannot obtain info for CTL elem (%s,'%s',%li,%li,%li): %s",snd_ctl_elem_iface_name(iface), name, index, device, subdevice, snd_strerror(err)); - goto _err; -+ } else { -+ if (skip_rest) -+ *quit = 1; - } - snd_ctl_elem_value_set_id(elem->val, elem->id); - snd_ctl_elem_value_set_id(elem->old, elem->id); -@@ -594,7 +605,7 @@ int snd_sctl_build(snd_sctl_t **sctl, snd_ctl_t *handle, snd_config_t *conf, snd - { - snd_sctl_t *h; - snd_config_iterator_t i, next; -- int err; -+ int err, quit = 0; - - assert(sctl); - assert(handle); -@@ -614,11 +625,13 @@ int snd_sctl_build(snd_sctl_t **sctl, snd_ctl_t *handle, snd_config_t *conf, snd - INIT_LIST_HEAD(&h->elems); - snd_config_for_each(i, next, conf) { - snd_config_t *n = snd_config_iterator_entry(i); -- err = add_elem(h, n, private_data); -+ err = add_elem(h, n, private_data, &quit); - if (err < 0) { - free_elems(h); - return err; - } -+ if (quit) -+ break; - } - *sctl = h; - return 0; --- -1.7.12.2 - From fc9b765cc9bcbbd8cc1acc39f6eec6c59db7d8a6 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 3 Feb 2013 14:49:58 +0100 Subject: [PATCH 63/86] xbmc: add PR2119 patch Signed-off-by: Stephan Raue --- .../xbmc/patches/xbmc-990.02-PR2119.patch | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 packages/mediacenter/xbmc/patches/xbmc-990.02-PR2119.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-990.02-PR2119.patch b/packages/mediacenter/xbmc/patches/xbmc-990.02-PR2119.patch new file mode 100644 index 0000000000..9133fdc7ce --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-990.02-PR2119.patch @@ -0,0 +1,91 @@ +From 5016973c68567e0691c9dc6c14d78de9e7d4558c Mon Sep 17 00:00:00 2001 +From: popcornmix +Date: Fri, 25 Jan 2013 23:00:13 +0000 +Subject: [PATCH] [rbp] Add support for new video codecs Latest firmware has a + start_x.elf with support for additional codecs. These are + MJPEG, VP6, VP8 and Ogg Theora. They are software GPU + accelerated and should be good for SD resolutions. This + update should be harmless with firmware that doesn't + support the new codecs - they will fail to open and behave + as before. + +--- + xbmc/cores/omxplayer/OMXVideo.cpp | 33 +++++++++++++++++++++++++++++++++ + 1 file changed, 33 insertions(+) + +diff --git a/xbmc/cores/omxplayer/OMXVideo.cpp b/xbmc/cores/omxplayer/OMXVideo.cpp +index 9215fd9..45e10fe 100644 +--- a/xbmc/cores/omxplayer/OMXVideo.cpp ++++ b/xbmc/cores/omxplayer/OMXVideo.cpp +@@ -69,7 +69,10 @@ + #define OMX_MPEG2V_DECODER OMX_VIDEO_DECODER + #define OMX_VC1_DECODER OMX_VIDEO_DECODER + #define OMX_WMV3_DECODER OMX_VIDEO_DECODER ++#define OMX_VP6_DECODER OMX_VIDEO_DECODER + #define OMX_VP8_DECODER OMX_VIDEO_DECODER ++#define OMX_THEORA_DECODER OMX_VIDEO_DECODER ++#define OMX_MJPEG_DECODER OMX_VIDEO_DECODER + + #define MAX_TEXT_LENGTH 1024 + +@@ -145,6 +148,7 @@ bool COMXVideo::NaluFormatStartCodes(enum CodecID codec, uint8_t *in_extradata, + + bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, bool hdmi_clock_sync) + { ++ bool vflip = false; + Close(); + + OMX_ERRORTYPE omx_err = OMX_ErrorNone; +@@ -248,6 +252,18 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b + m_codingType = OMX_VIDEO_CodingMPEG4; + m_video_codec_name = "omx-h263"; + break; ++ case CODEC_ID_VP6: ++ // this form is encoded upside down ++ vflip = true; ++ // fall through ++ case CODEC_ID_VP6F: ++ case CODEC_ID_VP6A: ++ // (role name) video_decoder.vp6 ++ // VP6 ++ decoder_name = OMX_VP6_DECODER; ++ m_codingType = OMX_VIDEO_CodingVP6; ++ m_video_codec_name = "omx-vp6"; ++ break; + case CODEC_ID_VP8: + // (role name) video_decoder.vp8 + // VP8 +@@ -255,6 +271,21 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b + m_codingType = OMX_VIDEO_CodingVP8; + m_video_codec_name = "omx-vp8"; + break; ++ case CODEC_ID_THEORA: ++ // (role name) video_decoder.theora ++ // theora ++ decoder_name = OMX_THEORA_DECODER; ++ m_codingType = OMX_VIDEO_CodingTheora; ++ m_video_codec_name = "omx-theora"; ++ break; ++ case CODEC_ID_MJPEG: ++ case CODEC_ID_MJPEGB: ++ // (role name) video_decoder.mjpg ++ // mjpg ++ decoder_name = OMX_MJPEG_DECODER; ++ m_codingType = OMX_VIDEO_CodingMJPEG; ++ m_video_codec_name = "omx-mjpeg"; ++ break; + case CODEC_ID_VC1: + case CODEC_ID_WMV3: + // (role name) video_decoder.vc1 +@@ -594,6 +625,8 @@ bool COMXVideo::Open(CDVDStreamInfo &hints, OMXClock *clock, bool deinterlace, b + configDisplay.transform = OMX_DISPLAY_ROT0; + break; + } ++ if (vflip) ++ configDisplay.transform = OMX_DISPLAY_MIRROR_ROT180; + + omx_err = m_omx_render.SetConfig(OMX_IndexConfigDisplayRegion, &configDisplay); + if(omx_err != OMX_ErrorNone) +-- +1.7.10 + From cca4563b9707a4cdaef3ca52c5cb2e393d8a9e96 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 3 Feb 2013 15:04:50 +0100 Subject: [PATCH 64/86] aver_h826d: remove driver, this driver dont work with kernels newer then 3.2 anymore, and there are no hacks avaible anymore to support newer kernels. 'Avermedia stopped developing the driver for newer kernels...' see http://www.linuxtv.org/wiki/index.php/AVerMedia_AverTV_Hybrid_Volar_HX_(A827), this device (as well A826) is now not more supported here Signed-off-by: Stephan Raue --- packages/linux-drivers/aver_h826d/build | 29 -------- packages/linux-drivers/aver_h826d/install | 28 -------- .../kdep_2.6.30/OBJ-4GREG/_prebuild.o_shipped | Bin 720948 -> 0 bytes .../OBJ-4GREG/aver/osdep_dvb.o_shipped | Bin 7292 -> 0 bytes .../kdep_2.6.30/OBJ-x64/_prebuild.o_shipped | Bin 963808 -> 0 bytes .../OBJ-x64/aver/osdep_dvb.o_shipped | Bin 10224 -> 0 bytes packages/linux-drivers/aver_h826d/meta | 36 ---------- .../aver_h826d-0.10-100-latest_kernel.patch | 65 ------------------ ...ver_h826d-0.10-100-latest_kernel.patch.txt | 1 - .../aver_h826d-0.10-101-kernel-3.2.patch | 11 --- .../aver_h826d-0.10-102-crosscompile.patch | 13 ---- packages/linux-drivers/aver_h826d/unpack | 52 -------------- 12 files changed, 235 deletions(-) delete mode 100755 packages/linux-drivers/aver_h826d/build delete mode 100755 packages/linux-drivers/aver_h826d/install delete mode 100644 packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-4GREG/_prebuild.o_shipped delete mode 100644 packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-4GREG/aver/osdep_dvb.o_shipped delete mode 100644 packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-x64/_prebuild.o_shipped delete mode 100644 packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-x64/aver/osdep_dvb.o_shipped delete mode 100644 packages/linux-drivers/aver_h826d/meta delete mode 100644 packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-100-latest_kernel.patch delete mode 100644 packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-100-latest_kernel.patch.txt delete mode 100644 packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-101-kernel-3.2.patch delete mode 100644 packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-102-crosscompile.patch delete mode 100755 packages/linux-drivers/aver_h826d/unpack diff --git a/packages/linux-drivers/aver_h826d/build b/packages/linux-drivers/aver_h826d/build deleted file mode 100755 index ae725f6a48..0000000000 --- a/packages/linux-drivers/aver_h826d/build +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -################################################################################ -# This file is part of OpenELEC - http://www.openelec.tv -# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) -# -# 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, 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 OpenELEC.tv; see the file COPYING. If not, write to -# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. -# http://www.gnu.org/copyleft/gpl.html -################################################################################ - -. config/options $1 - -cd $PKG_BUILD/installer/src - -LDFLAGS="" make KERNELDIR=$(kernel_path) - -fix_module_depends "h826d.ko" "averusbh826d,videodev" diff --git a/packages/linux-drivers/aver_h826d/install b/packages/linux-drivers/aver_h826d/install deleted file mode 100755 index 2723572407..0000000000 --- a/packages/linux-drivers/aver_h826d/install +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -################################################################################ -# This file is part of OpenELEC - http://www.openelec.tv -# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) -# -# 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, 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 OpenELEC.tv; see the file COPYING. If not, write to -# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. -# http://www.gnu.org/copyleft/gpl.html -################################################################################ - -. config/options $1 - -VER=`ls $BUILD/linux*/modules/lib/modules` - -mkdir -p $INSTALL/lib/modules/$VER/aver_h826d - cp $PKG_BUILD/installer/src/*.ko $INSTALL/lib/modules/$VER/aver_h826d diff --git a/packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-4GREG/_prebuild.o_shipped b/packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-4GREG/_prebuild.o_shipped deleted file mode 100644 index f167884b53c91d9005b9f8d9e49b484cbe0436f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 720948 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

8yWW5PLVt8q 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

WD*%R?dcTZEFxLm_2dgmQZx3aR!Yl&|NZ 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⪼|3Ui~z$EV^RGlKg#_`Kp_nJ5gUgPTdWs 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 diff --git a/packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-4GREG/aver/osdep_dvb.o_shipped b/packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-4GREG/aver/osdep_dvb.o_shipped deleted file mode 100644 index 9c98ea81376152f428676141ef208a855d39bfab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7292 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%0D=*jsQYVd%u%>3VaaX;=oY)CRJacc9#`V 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%0A7yc@T&r(l!;RCi=a} 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 aq(l{@X_X((JW4&pQKa!2rcyvUkLQ!N4ce+4%?m zgOp07#&1aJvvHxTNKeGAIlE)rdU5Pwu5>py;ls|)uua@e0wgMbTuktGx=9&z*l3_; zt4dC4-m7n6@KcSRnyO9UG$q0zaK{SxavzoXI{KWmDP0J})#=X@HS%Bn{>MjsSEV7} zz=Wqbc;iN_GJ7Z+r~r)nLxZX#AB>rIsvJSdzre@H7uC3~7dYAJZStQ8d*#?Wo`+Sb zJUA097+kPs6nG#WXT$@K;c;dhcF~raig@4&JVwU@EqIKOf7tvM$icnXhmQV};fu^Yl|1cPwkK!vVNFuTzwv4-Q zb@csG+GRY}72DEZg7H!DE!hvLuWP!c+u0AfHW_#obXPMLf@!>FY%AiuzpxUU?KU&Vc+@c4DycLpB6iTlpP zu%;_*b>cM%>fao@#w zEQ|X-g-2`LHvy03aoXam;IT69yA+Qn5w8wqy zW=GryQVDd%eN*sQ9rr;+K*Tv8W?$gxxDSjdkc|7T;Oc0&HvOp*4$c(9^3t{ZHV5+_ z`aW*VQwA{_!@TxhLph|UeS2+pwWMD|r&%gh#3Xd>nmCGj=AY%l zfR?}{BD=u)tP(odzJjYJd?ohHu-&-tb%xbN?s?YWh)2tBCnIu zU&2Cw)RppjY5FSlxJ##MQTjb@Z-Bn#^}_TU>h&>sy&%0+y*?_h=cl{W>tE!xDy;&G1eVI{`1BuD>Lc=c zUixS1_0RJ9$@CA^>!0NH-1GwV`mns7lm4c9eMnx0#>ixAHnVJy5+qAg>kaz1(d9SCQ8<(>v7bujTcO z^fvYSD|sE2UaMZ0$ZL6e1zxlIu3Bx&;MwNf_ACo57Tx)uvG?Tf7lLn(j`o}$?OGDA z8SRBbOHeKaYolHVRnthKtHa03B7yCL^3Uky1(A8`60^9YJFC4in^y*~c{0Ou{P(abkuOgl6Yc4V_TCZg`b2#C7_jQdmFGmFy{{#G zflo!(mEap^ezf?-31qV#-FFK1n)fv)j26As+7^L6s%~% zT4Yy!T6q?Fk=JSf;Wc9b_q2Pf2zR9EI*);OMEsgD#LJbKENcBFzI6Wf_a`!c`-ZPO z`A^pQPjT|2-k$rt1|R7R$xim4v-RwG@|yg1k5TmiN0FK5+yOkD1H7cS2+ca}k3Zay z-~O?xTqfzr>n?cbc;^{7O#dw1&Ic!0i$|e$k)-XngPVH(FnGU(P4ds-;~(~8Pr?#4 zCVhycp9jBO3R^Q{#%m`zc+mCAy*vtUiN)<$;T7g)GWr zNo4Bi89byDfTjP5#(_T$h#r?Tk0na`9It04I|P>U<&0aIqO253R2l)h!^%dA)ZjI0tTS1$Wj<6W2p zb&18@cvNkKO~Yz|4X6aMvxmn10Sc{cDk+^f{yWzvrj?+YbG*wL_@48$Co-fvUULp^ z9ozQ?{@7bO-Wr6s@uAYvjyDGHd&7RdBVCN4JlF1uUv(b*WUx3#dm}?SVJq2L8o%b; zc+DrdT}gd4a&YXtSmx&rya4BGK*K8SYj&ph6ogO58DKDv&KkGe#4iNZy^X55G2pprN^yDttZ<27dy z2a$tk%)2M^CwKp69J&7&v3cpcH2-0JW+WEat=P`PnKjMz!v2I~!_AkTV)oo?xhM!1 zH7s=gm5I661``R`J1`Wh0FXzMN9BG{NC&9mVi^YCnQhcjz+QnjgQ{<5U+;u$K>Nh*(% zbbrz}*`tz9%}ZLC^!c7qNoVFJS&MH3ZW6w_$dzM?qdSYE`v=dzJmI^xY3caCzX?04 zS~g&ZEJq%lUMcBw&O78v4~>>R*Yq&fHh0GJZxzqIHq)N)%}7kY_W7Mnj}PE|yqOIv zjz;tOYn8Q_XU{2gw#CtLTpA-A|B2gx{l}=@8S@3KIdH$It85P<7(8x}8Fc9-*5Z4y z{3WK8BtBQ#Hd6Hs7cC%Nc+;e4Z`2u%Nd{Hc;#<(58r>zVzrg5TI^J6R6;urdR{>(9 z4Q%Cu$g2z~@OA?S1P7j8kp-%$B*jvv5TNRkXm5}B*pn=JR8|>*ED-dLQG=q%C!6%F zlT@PmludfnN$OMTUb5eUG*s=PA#3rskPmcJts2jxBWv+ABy%(%N6Egvj0Py^&3-6| z2MTq5-jAV1FEVq?A(fw=LxzwbnOKYW;P72P{eA&Sm~u-|#DD3pB6wJfGWeUg@@8~w zj7-AFm1kB*W{%ozuZwOk!XQ4sE825^$94=z5pMNN`N%rqYcdOeJwtFG$&fD87{?0~ zUuObOyl~;%fsum)!+&p@0yaH;Z1G(9K4PQ>M|<~kT*nH=;b;~+6Wv>3p}dm0vXYdw zc#ME6n953=h%tFAzLVb^D7F^Wpt$C@>8tTOa^PxfQ3^lc-}D0C!3-8HRPT4;0j#@O z%^tEE|HN`aTQ)BZ!cwTyQyjXoLmG=H`=sy2nLc_ey7wn?->ErUYJ!fcfwqy4W*@kY)#A%cWXmsK2=Axr{LupKc@R@f!E59n1xNer&p9&a zP$k=nBVc}eo*|PxnIBO;QRRBRdJ*bFL(N$^)fNo1ei4cKkx?1VQ1&N8E;It6F4~_g zxfFB3kr!QZsA`h3q=t(kYkDpbVAfZS@8eJKh+-}Jn@H8tq+6E!gzmqO^Uu)-6N@RI z0!|T3rBHf0M#R)#?^d}SPjg}+^3^dtBB~z`QC)M8P#Mfk`tYS*|7UtNZybf`Vt6AK z*)5To{zH)~uNZ`HE6Cp4D)2|@(RHZ(6qz6*zu?wxnNiatSB-+(%KN6xp<3XGpnNXl zLNl*fEptcNd!jw(O)3w4XHseCo8XZ2@>oSSSG94}KJZCgmaXLAl7$l|eCM3#8|C3o zQR<49RFL};Lh>nTU0T&G`XMGAwB|j9@yV=H^Dt3e%3{r;av>c}zoAOE?;J?3yQe7H zQ-n2jNU}OUcT~1Yvfm4U_&%$V;v$Z8V#SW(@Ss<6i?7&!5kCqpY_Q?NyXQS8^v8$< zVmsVLKg7H)joo`aU*xsWC zpal701)-3ks?#)JHNxeAXAwr^>|V+E9BnN+gc+0VZEOS(=uHm7j@6nGRqZ(?FrHYl z=(L$xEOKk~;L%FIUDV5I*PMP^Cb(ze!N&nG{96~Dh0OSV5l7{8lpmz?Z&Ue|hVK$q zvsN4{_GuJqic((0S38N5Ptu_k>}MMn1$X9Ck=Yo1C_F0R0|@t5j8W*J_#x;y6zwV^ zD#sZ7#CiZt4i24^BvRT=&TH#0>?O_3foG+GiC+5#4{!!$e|Fy2t+v2(=%w{Ypu0G*nON&O0@i4{W4KY=$5Rl0X^z1q_0P^djoo86 zW&F~Qpj;x*C5O>AqX`lW-p}P=(Z>^_&kvDB?Z4F8F9>qIS3}8a<1m;rIpC6qG#ap% zeH>Yv-pkhd@Ri=;M~m7@67&36)7+tJt zBNVZ`+&<*CTCP-65=w?lUl}%r=v&^O^{=CRJF52 zdr?#Ha1hs2K`lAfKk*Ff&PSA90@-pBSsVom=md9B7MhgsA6pvjeOJ`RXiu>gIVK6q zcMxO6UIQ@z4_d8pCGb|k$dwnABT;LLuEak{;>ApKi}u)rg-b=VR7p*-&8;M=L@uI{ znZ8$1^2|KkTd~hewPT7O9Ux=r9vCY&5s5g%YCd|K9h#?73=Dq@U%V<3rsjGIR7QV0mDl9&JKmK^&|=LV@x84b_kq-(+mideZ;F z7iIS$KVGyl`=0KU-`Kj==cE^%1IWR@C*hI9zk87p-}mbLSQo_3x#)iN{XsnFzh(Rj ztLd#kzpbFSUW*r$Y^*QX&+u8vz!v;_0sl685}&Vt7yOaq_QES|v;BEQVwqQ3XCKrg zkAu=yOwK#aE#*?o)m1EKN`Qfx#=7%o_!e1!Mj*e~xP$jMc*l-3m^p8e+ne(7c#g+k zxySa6NchI_coD^+VAI^8wr?of$}Tz5+@(lN%pKZabF;F|ai3i-*~30~!dE&m8S>e0 zS9UBsa5<*OJno1h8d&tNr}(^;*q0A%@xrQsXQ~o*!kZ2XU)|SZ@3*(u2Rq(69v80c z`@r@MOZd(qjE|E-n&y_-zOoz`t=JQoSc$pVGw+KJnkZgIK?ff|UzybI#3qK%;)*?zpbl4E+1XO!nCHxBlFBElRrFt5W?r}kiD?sgo-j1Dw)w^%M?HkF0 zm0h;49IL~rfD7@w?Vafp@XN^4N^XFvEZ=ahNA|FA&abH+7cK8-)+3F0*q@g2=`D&b zv+~C6>N|rCf?l)V2Vxxqy_VsD%C>NYgg)cc7i&UA7|8TjSP-35@?N@D<$obN>{jeX z$yz4ceEIq{bat-DS|Ue`Ie0l#y{s6TsUvd=DsKcbF=o-#BzCf_;VR*b<{EfYKXNUA1CZkbxV4S)GxYO(mQ z%C8=NnEmXjN>!3wlErW06HVyJ#cTxG|AD`N5x@5H1O7`bKBRu&mn6xz5@wQLrTSO0 zW>jgi=8QM|2~O-=i%S@ zL&=(|qGZkajmeq|yvdpi@%tkDzPLJB^QpnfnhD4=5&tgvk7UiImnUl`btG#h6Kv@Y_HI};?TCp*OvZB!#8eP8vJ5*?;vH^|G$y;5l7)A1a zTFG5ntyp_DD{szKWR6zuL@N)ONyA z!BJkR=!yeb+lOf;eI;wr{8Q-{UbkBBwI8qO;Q*6-l7Ss+`gr&HE6ywp*LxG!SJWA< ziD$rmSaREc6+A0-(VO_GIJJs+i%ik1SyVda)*X3YgEum(V)W@MDb-kEn5B%MX^XO} z*ndX26dbH;Vfe>8ehZ!9znX>Gt*4B$?mQbqY_;54LR$cJ6qj71Rg@V-4WhOcxkqKJNBQx?=9IMJaBxVvcqpZQacPg zc;1c!_>Mio1IPO-*ZP}EEVf#m)9TQqwDvGs1I~UbixFa+?5Nx#dvVqy-!8HDbbN67 zzFkOe?>IQ9@*Un=|I-StA6EQ_C^wm5YFB_y9kzb-eby7dx?-}(u7XK7TCCV=%zZBc z=s07ibb*KYnJWHhd$rwRcX|{4in?g;`_b2+!kxkzM@M&-MsaX_@l6U;f5oL7F7F-D zwPpO_$6joYjMR{IXi|zu`_Y~a9Op~*{G&*I8Cr9%6QurJFd0n}aybbN1l#G&YdB>qmda$1RWe=Ku}GOYIi|~+b?403rB&!|R zr*V;hwRj6Z0D#fEK}%$jrghx1vI1#Y`?Tn9@8FZ!S1JNzIdbpg%-@`Dmprh)&C+_> z1;~i+m#h3$GzmZ+PS02GiO&x8PJ99U{?4aS(8W5+y_GoLSdev$lt$G2kgn^A=8e=< z_@i*4iguOBj7sy)TCpUq2l1zQxo_4kxBzc}i#PR3=Ppt2SIGMSYtcRhcQM`zP=K_1 z4*p(UF;1jlV9xkN2z3yEb6kY=4TOIrfR2&Gpjz=4Mw2W=8W(HQpkW}VMB{q^EPW!1 zDf_(RTA)2EV3-e`k*KMQ?zgPQ@1t~d|1qKOCKl6NYS+w3OrMiE1LLQ1gyt~y8#;9{ z!A|^yf3b*;!J;JV6DAFoM%l9yQp4V+?qB$19m6d&fo7OJkA1>ftBoF!h_A& z1N0!;RRZYMgvpgr!oy6Fi(JMf-3z}$NJ^m2sVeiBo)>)!HKIvCbsYW(x)j}}=>q}$ zw;iANon}z#SN-(&0c6LHcIZU(H#7wo{QPG7ahy-qq93pouqy}kx+7sYRHN?&U`A{+ zkB*&ZIt@4akBg_#eY*@icZ~*?S&uQ@vGvI&M2V+ z*5bv4aMi7#jB2Zq@n{S*pH2K^DZbj%=dj(6FrgeO9P0)|>EsbqjOi&A$|MEceekQm zC{wp*3TqeqroS#^SM7?$sOga^U*3E(w)0fYwW7DzgxGSb=2rE%oe!yXukXxKtMNs= zRv}`h^501$hzFjDUZCVBN`llLp|9N62wS?Y8e`?SX+B zjsJyEl{jH&p9?x-{L^0KU~7Pqo%D@|Ck$*2KG+(3ur>H#Yw*F=0PmQj54Hv$Yz;ox8ho%d;E+Pn2U`P- z=Sd%I4L;Z!eAW2p#Xr~@e6Th6{1?CzHJJ2iTLbzhz={r7jadvDLg7iDVEfrV zCXGHiFc89_Q%!T^RU^s)DJyA7HmB8oEE;U}2*uCR3wTLhD_M0pw-vWVL+mET8X$f9 zgRyKl=9+&`-xkrB;kMQ+aWHy>zEyn8zV&PAkiPvVtsR&p7(Z=_`uFq=)(+TLv?Yr6 z6=m`Gka7EneREqn1XHW!3^dI6~dx#i`paHg%+(u6aiIUWb*ifDaY?FG^LxL7YrLtAM2Ak!j3sDPC!ghy$I z5v_owElU62@7jBx$IPUyud6@*=JRRioPG9V?X}llYwfkyUK?X8sf8D)s0IF}4sv^I%9#s~ii_(I>7e&EDl3WJMP!wU-rMMbJ+Np!{)Zh@B5vTxSwtz| zCL8mM$V>T`UzGEnKIc6x)=!S;e~3b#U-T87gaE5cy?k_fp_5Tw+-B(J;wLfY7pQr%IQZ(yvY%~t#=U@Uih-u&$PsUTC$A15Dga0__ zKh~mp{-KFF|B(w*oyrBLer)m|Tl`0w8FYq}|JdO_&hQ^+`j4~pBO_}D^?`qkCyoS0)+eBz7pRBkWxXrT#%{(oyF=+(r;mrTyePa$4bm1YAA3?gyUr_zV zUO1s$P}B8H*NFTDqq~m!$h({S^B2^@aSq92RHizXP<{=0S}<6SNzAFU)H3WP>KSTy z&q1hX$tOO3aQ=ci&NWkxB?9G4i~SGmp0LmMVtzUCU{n3ekElm_@g)x*0sK}W5c#eV z);YxVd+c5H)YGgF0OeSpSm$mOd>cGC%gNMyyg17j^L?GOoNUj>x3hdn$vgR-|9zVK z1q%rr-#u)958L0v_V?)a5uj^NELYmTyC~egyGXU~3fuMTcNc}*cZJ{j-=}%Y^sVWm zaKL6eumcM6`~l(FH#_(~O>59wnGrd?^^>=BN@iZPa4@#@ysr1hyI}b4vNts0kgL*h z!sc`9485Smx{(F0fRS?OF*y<2n&6?44I^>BwYVPmSH<6sHjOBQGathd`u1{xNbd`J z@SF1;xU$dLnr@EaxThnXM8|>)pny4HvN9(SM=>m*P+;=x;-DA5*pIKP>rN|+seA8> zfNtcyLjf2GpXc^3@cEl>YCcM$d*h`zGhjMa+!$Q{I6K_ASSoC_-#Xkn-hL};on^mO zYsD1$JH2`7$a$q+Ij*F>0sI6da~H^~SI!}Y(|aYIZk{?_*>3{$aF|yBb9Nf6Tp?B8jA zn!ZohN7c%VFyZ`;N*6e*BRT65^}g_0Nf`kcyHFw$?YRNXbmoc=GQFNKO1gCq-|^_> zqrs*#C+c#b9XSL1U=3m=z!oFGh=<-k&3Dy>(%Vu1Mpf;)EZl-~h zOb4ONedz7NaoAnSS<@K>nD;HNKpHKkba31&stgn+U!VxAv+L477G#;Pf=`vDd5g@;;&)+x3A92wyF9h>NaP1nnd~!ng=A$?V zvC~LVUbp}+us`FKlDt6QZ;T(`sZkXE$$zH?p^odT@09TBw1cwO8he>p&$+9)2w{A@ zT7eN!GMT_Xcylh5Zz=#h!fW7IHN$8!RWj%s6ZHDgh%ZmRQvUxX+SA7dg7Ip-_?&-^ z{sikMb>k?cy;?dA*=2nMcp-`y%6|b@|Mzn}W`gt+N43rUQ+i&s&WgL$4UWy_DmS#M z9h>5ok2SqE*QtCQ-D`8LDz4>X`c?c!A-gfv(~l7UY&z{+()T4;ofWOB`MH`6t5IXV z0c0g$){}CRj2dtGtilz-|InYWDfbJDVN^;XIu}^#>MlMzPstD?^bF_>32}Q>Loa@- zgm=lxH=5YYejncEu4<4n>~GB3EUMKs_g`x;Q7F*YoGRL#;9J2u6go zI&9^nci{e=pK%_g7H`x?Djp(PVOpvFO-s19eO&G!I{U$@`1m!}C>;H5*)aEI{MY+7R)d&r_pQlx zRKai_y>AzN2=}J0*pzVFKaYz+HUR$oBDM~lAQJz6ZSiK_KQ$X0TE$TTd1B~0mf2}t zo^qEn05~!9HiJ|ms0E>=-FtKRBtQ<>*WeLLt!MXk%mg*Dj7l>_SNgaO*o84V1B;}n zRO2pZji|zu)pYC4zcP56H_4^U!nE77R}B&PcDN@qLZ+qxf(wE`&{KLX@9mh?ya~$m zq0O5*?FB7L*fT1%KQ)#8nzWluzYbUscktPKl7a~*5O(lKCIo67jwOMy)KDnNc2=%cN(=w7vW_G4)L2EsWQ9c7#qZg2h%egq%p+ltrWY9!fbEgf$ z0eB25>3TDY`0VSdip%wUVsyTE*Y8Hm*@~JW55kpG@2ph0FAv=XgW&t0Abix|itp3) zRw@OMo-iN*H}7SmA*B+o&cdD1; z!IQQZ-_kjXKi7DxM2~UC+j=p6QM;NBnqAZhyoS~$96Yy8==4QmMQSCRbe@ggw?p1i zt}uiUjmTx1W>TdOL1@Jn5wG3)j)&^X^HU%DGHeSR8(2TdwU>Yfc~k|(YxFrME^@mF zk;li2*v3r&XC4o?2F^PaG4`@|(X12nu+urr|XyzCobRwq)qAT)oCjL|7 zrSvm&t`@~)u_nDW75Kd#y1kkzJwxuR%xH?vRti-s`FQA@|5Nxb*DwNjuk9TN_k4v=HukEaKYi]eQIJX1as8*(?%2EcAPR&Em;zqP z^4AYBfBkUzP0uOShUt0#>4)f^7pkZOhWKAlzp~$ofsV2Izs9+jQVW+0;eUPK!8_SC zFfcuy-Fvt#JohP`#}{)lf6|*=sUekJNj@ilfw0cZ+pL#=y0)CEXU?svf*8IOdnwO# zd94|+ynm;;Xy~}++sMBgp<@-@LSfqykyc%l)e7RC~ zf1SMtdW6vzXk9{;B2Tpp4hT|hPQo~)u7JVk*;MwNIr#TmRxO=$Z>Kz^8m0C_AeOYG zR^nC!I6nFkx0nsv*U>qyFU{%_UF6!*UM)jGzf8H1(mGbf4GV|RCtU7wrIVGZ4{9i| z1kM63)LA6i_EJcL6p@vGNtM{8XRwm||y$;YXVZHPf%-Edt08@Tof zNhADmie`A}V`!{IRS)Qsihd}!a7mpE$d$Z#5tk)mJcfnUwb^9|^2GS_mV8M zST-R`L2K!|&AXK93K+>j?|;Y%%eVaf1;>mwLuUFKYW>Tp4IK$MB`5AZ#pnfDJZ2bqw$7w;jy6XWH@ zS_qU=aZ#QqAStZEsG8%t7ey>;T?u&~rp-Y8lv8LUeUYD)+)Wjidi_^bd8BZy880~Z za5cx301deqR_gH?Ua%!sRJr#~z~^Sf-c|J#zf>;&E65w5UE>;8x|FX)+nwhF9ncs? zAIc?WnV2d)-=*YT$h5E5k>I|fuxSeh<`b8Tgis?ebFvA_jG|}sAXVv-Tz|gU{(P~$ z`2xEqW(V#K)pI0olNIwXFmdv-0%fAV&VZ%aE5ZdF|0-X$>(8guKgRd(aD0_hT8aI- zA0%Py*UR`Ev|sZh?bm(y9makwWyrw)lJ@II1hBuB{hF;)eevwqvHjVvn+UJAUwa5@ z!4l5BcNIQq`}LRb=-aPZX252eDZ0`t8uLsKF&Z)k7D-WUzh;fHnpR~s&kowJ!|?9g ze(kjhZhWBj>u~*ApE369*x&~WQqU9ZF(l>eN*cGL_uXE@ zH`vMW6PN2-<=)m>$0W@2|ira+=d?5Djequ0t?;vV1Hmg6t-W@}+iuP{Z>yW*hnbFh}_>oby zSMqT`_HJhRBkbMm&mUs%F3G=td$;twlD%8^{ExDCQ_9&ZMbe7}+Zxv1EqU^bj9B#S z-6Ey4D@n0}V`cAVs?dWHOaXg0zr^s#*t?~CnY|n9sW3fOvVS+Bs&aw*C)vLPRR#p{ z0ocDOk4x;|0dXw~0Qie9u@BV#Eoi4TXutMvs%_=i0O#V+z-*yM2j&W~f1B*If0Kg5 z<`AoF|K=E>94tYc`v++MW+CpXc=m6?VP^avWB;ax;A;ndO@CJVH}U-k*uM=H>9gQr zu>}%yNZY^J=|9Q-ty}Qy-(D-RKh*wR8CIOsMVCwM-&aD~Df{>Hz&f6))jF|){X0-? zfRGNr{@sE$U`8Z{%FU;h?B4|R!0g}FiQ3LpxJ21?#qJ9~S7rYOA+s*ph0jypY4;vN zPYpbPsnqU$1ag)duod#KSrV1&+vKw`Ich8L(=;BlI%CJeL@K;bT7|t%?A{Eor{`(d z?)_DK2;05urJ%NZS8HgaJ-jzYTtJO}5rU-D{_U5ebDXk&GYYY?e{(#-V2J&@x}*#L z$M)|4l?5i6#y<`gRI+~u${Y}74r~7=bNB4ud=dLM6`7#@o2u_$%>K>F!}f2Amwnj3 zufyj*(*8}n1?=A*$7w0Ee=}#m{_W+2;cO_Z`Bt!h8^tonIXHHr_@LrjMxU7M+rM*M&j;+`wU|Redw3n+kM;An@V%1% z8tl(PX_f5Z+kJcZ4*!uL^N$Oa{36m3|HL%zp^&C=R?9#1iJ7ENno+3du*o*){~fm1 z|82k*_CFK-?(cLwO2;KP4JPQHVNA@0%$oM+!AKl~@w^`f^$jql)17idboqk1=<;-Z z(%BqcKCKaJP~6j;Xh4jMWD5-Ew39DL;lKaMfi&=Y_hS4y7d14&PTiPv9!K7o7@t4Y zP!FL)<2U|^^&FpIkV>LCWq3!M30@_g9OOfdXLKKcFyNlyG*# z$Uf*9+0A;_?der8P3h1y3(Gpzz|%G)on5K~tmKG%cN|WMcQHAcBIkBFv|}?M*?9h6-lmGnzq~!@J#qQSKk%t}0l&Rc{`U`h`2RUQ1P+Vi@sn>X+>KBWv47qD+PdY7lRiD}%7(Va z>pwX8j-P$`tO+03c}DVW3qQML@aC-;bWwKH;NZI{SL} z+1Q~s3>}{S;Q0@H^oK9a81>E1_59d*eai87Uv_8wH($K#Gmm`xUDu8t|BGKvo_fc` zTkP5;=k45e!B?~SYrBu`IsJx#x{n=p&DVeW#o8A(z4F-cvDt51^1=VvGWqTkx1RlC z#}9Vj_SBYZzw+ALgBO3`YfI0*;f|{7K6BeshmSjb<*1K+q~W65YrZ~t#1}q!%Jp{~ zd(4X`e&U{YKQR5OcNIHVu1Rm(-t?>a7ysvx-#PX8f4#1K?8CQx`nkJ5_SV!>{(GhK zt%G0w-1T=)fBrM)-+JUH@A&#>VjI7i`{#B4wtmWaSFaks>dTk?_NptN-Sc=)$Gu0~ z`p{?I*>H8;m1nPheU|-!af8n1KeO&a-`WDXIQMpPsI)TLK-=1|KU_q~8xazBghw-)U`640M033w3Y6r~opD^0?|vaH7u z51T3c)0+yV{K&*t?w}hRt)~)H`TAWrz9A*8qr>`~#)ErtEPKH=;554ELm*j3MZ9!M z_PU1IW_fN7cQ|XrgC>qsV$QFd`vuO`O(>!u<{^xA(afn}#cgmeUPeH%Cd-^737=_L z!h~!ew@Xvm9Br{YX+euXiW{@IH zh;wtTB$&F#;EjKNYjrwB*S1P(OF3)x@~hxLcB?E)qwZmS4M{C*BSY534YtNT@FLqh=^8X8$_RvMaj9^YS>iJr9Klo(OZzdl~7SGWx7yg%O! zWX+qJ_ZA+ETGZHVHPBo!69dV@=9?g(>{Q z$3}jHVe1&=z&={6PUT>-&OtIXIiN?yI#doO>l~5FIhZUt?3KItOVC!5h<(tQj)nu( zN=~L?#f0?|XS}yRNM=a?PhLoj**?_fyoHGm|BUN*V8%|NIcZw83c4wVDIZx9CB%cQ~n2zRzW}hBk$s+K#IqT&G_!ic3 zJRps`ABd%#JeINT&QAH-=6qEU=Z*xa!a7Sk5aC`aG<7iuOVJ0~7dwfne;E-|Qvbuk zsXkwi!bx|MYUa5>Gd0p3uNmvV&_$-9W_LzPfvS3i{vnLw(~?y9G>9GeSlx&wRVLk^ zFR?!KC41GNq@yRqSls>ar3SYF-dl^}!h5%A-m4LetSJ|sA+s8#6259Y>yc|C!+s7t zDU}~U9g+CnC&`z84zLPG2y9(UUcDIq0nQ+Z;%}Nc6hO7Pw{jk}x%Ux78G%;~&@!b0 z=odzY#+e@Pi^QrT_me%W=)`}1pfl4&osmX@wNfLgE86o_%y@iaqaeI!CN1yxu};ZV zxKda`jC98FM|Jxcgf{o{%;d@uI_KsgJfka2LK~a$qw0KILS8EQ-j)~o#Wzh#qou(J z(q(pd>94CenWjIhE0NYhYupT>h+%6&+1VJ6*WpgS3EZ?+8~yMeWql$1mk zppog#JH@#{YS2mYj2+bnm*RVL`D1ZJ6?PtuI~(KOLlH;`=g~Nn59o6ns&E_;hS+%b z^AXTXG%=XHpvr!^YUe{W(d1h7ZRbO^(WFj~cRv@YM?U{s%=>1)G$NWnnGyE(5uG5P zl&K4sMVkCQJDo?pM!H`ja-RP_IUhKU=WkgIobfLiUH{*nE2b^Jc`S) zoW~{*aYN{(#@)^}BRn{y4<3BzgNK7!uSJeQJ#mO{BkY$)>_k5djP^@DJ^^paRP_*0 zsH^JUCL`tb_8}i@=$4<10W^(s0Ci17rb)*bndGjmKF&IclD4(>F6d4t;2tv7e}_b5 z57ht(LOCG>_yhvzY64>#w};R<1IHS44seh_*g4Z7MFs|xoeu@j$>#C51 zZk)92)r0wHs^@(4fDOz+`#BD;sM&+KSHX~q^XRE0gD{UFA2D^?+fdH5$q@^{Zqh@; zBx9os2%|9t0zihCi$H8zAjG;rV7!58@Ivp)PEDSgR~Q1>$+@R1>e}klrjVe$>!@gE z06}%wbK$ZZ!CTb?$BZePD&(KBK%1(MUcah51nF6Ba1rD&s+(Td{OKR;GWy0@VR~K4 zH_bTgqtB*kBFrE=K#M^}(zVr>7Q%@QuE~$=T}MYVw;yVV144+@0VF7nQp!w-A#xA{ zx#mWSh1)Or7_zrvEHoB^)K4j*leM(->Ix!AFk5#p-?b9v6EY_GQ-X|O^q&jYkg z!ZpbO+79wv%~K5?gJVt2zu%{sFxn-b(nNaulGqhZMvQS1#;L8VcO48jM;l2rGJLyhi1;sqhLAU%}{j9 zIkQHrnJ$64UJ8mne|iV0Gel0^+c;Z2QV&v;sCpWOh9nF|I71C~eTi-!_<9?%u+ZD>LF1Z3#J99Q#J zaqrN45_QfLQB2mA6$2|pw=mE(!I4y--Wud@$6k?&+4!%H3W*crw z%!tF#7BLM@albLdFHSyshcef->BtiJ#oVJk;@4B0tLpGt&sSUo+c?F!hxN6&Nt|ei z!R!CuV3lDC%$YT?lGe~l+P!`mQpD7&cU6_0Fn`Ms()p(?2D0JNBpG#~VE)yExP-+( zFLuGT=o8FzFrG*<%xFtcnK4nc^uQpvS8BgS(tXpeG*SGrvJb}XTe;e%8~- zmEFgGSN0z7{Ze(GiuZmz0!hP;=Dly-6@Gu@jqv+dcZT0*{xaTjzYO;=4{Lxd(R2pzQZZ< zKGu6bQr?Y!UNpl1w)UQryzj4KJnTIud+*QVo!c%l{@zf+9wozth6|4>d({#=^RMth z3;|~DeKdJ+SHalU%BV`&JVC=!)#@Q|xKgWbHADzZZ_I#wjCrgd+ZuSB%}4yss{ij% zuv7M{x0zTSFm(ohVK>EN$C6vBn3O^al75B97`nuy7AAr4@F+$>{5D>oKGly^zjcyD zJT|Hu;Nl<-8<-TzVME281Ico3Xp+rQjRVzY3iyTLm7kh7rLx@{@Sf_~*ycQv0(X(8 zTl!fp+nvK0q`>&voX-y;1rgYynO1ziRMg0FJRyw z9=rI9KVWzs2MoWn^-#^yzccASkMtQjUk3o@yNnxty+P9>)THy#qRo8ukJQR<-R8sP zxAuQwMnHPad-=V(f!PIz7_L4%o8hWKd2AY;kD+3+4Apj|4Kq}9RtXH1x!1IewwtiM z^*iAuU8ps(dISEG=FJfPJKIqHGWpgT=1FDe*ABFfCQkeLs;{y`ve}-%Ah1v?ddlzE z+iOknG2ePAf7+e9diiEA#{YsA`zv^2Zk$o|(!Pr)^a5#1@jw6a_A>l`=lKWY=?8ck zz(&%5O>_X5Tlg)7tA+3=h;v%!;c-x<&N4m6QCXFJhx#xRc;3uMcjVq2!Gd6ELuN_K z&PzeCq(FvXBuwESF!u0na=QeY&ELX$_*Y0O{z5SLSNJe8wPhb9L2PFNM(->|%`U&> z1xkJZKP)t>B-2LWlh{&%q+(&ccei>7$dHQ6(5N0@o657A*K)AbbjmH3Cevr3FOrHJer{T3o*_2$w>zKri-xhK0Np+=&aF61gN`}?x8_2mGj0iYyT0FdeY zQvhBB0D(3Gb>S4^D1Qs#;UDS|&??kpvZ#7Sv!h)o6~bm537A}L5|k}9InQGMhRsPv z5K0T4HGVt5uF~(q5UDh>D!{@Q{((lm0SSy0(}lv(GNSh}2TCnLCRM9zlKh6eq&lx{ zFNyU@!8k;%y$9B~AEPQt(#(2!fC!C2zAl#+Uw(d5-hKJ0gt9L`7s>ZATAo_-#epDV z-AD17B%=(?6c!r*gMGCgkKLRLFxLyLi18a9{1M0KZVS%djAghlX z5U6*Vy$8Mr5o@Wg=RDNoH<3%%u$zd#+=WEslb$0UT_J^fOZ;2po6*m(@4W;);&$>u z>Vvy-NGB*~mwIH8u|pOFOw>^(%m8AaUO0f>r#EZ>4l-tnqPR@JP;tWyP@KbwnQD!N zKT3G!p%O#G$j31rHXlFo5BWIo!{#$oma2hu)l-n-{Fdb0K0go z(8p|4ekM9jQ5;T1jINb3-XNpgQnUu%FdEvZY7%sd?=sH*cWVe~GNysFN02tej*%Se z(cDTTEHMd0%eOHaO)|oC?O>h0YX{STl0VMtBs+hm%oEJ(I}o#@U(TN7hR4skneYn% zngJ;M-*h-PgJRErWZ3fAg;HLcWc*X>G<*IGb>)&R_(Lv`VO2w_;_s22uc~U&X zd({q}<4qzak)!TPPMMB%B7{7L2EX5-KI+BUXq|~S5@e3Q_*04rpOCnOzxWFhEL?w8 zB2ztn01sh5)td`>d&p0fPT&>AcKE5g{6~@&|BxZ#KYH9EFWf?BAo1wOM*mTW1IehN zMW-U5#}4I{cRjpjD*5-+)06KX_#@KxkH4Tt?zDIxku0I9=;|;H$HnE2srW^Rz$gch zeRi@?b4moXhF6&iX9d<4IH$ZCyU$9-rI0C5_lj^n1lmg+GK3KDXq-7w9RfEH693He zYA#rW;B*ev-~nZ#+P&YJ!XSm43xW=N^sto$^Bug8d>+24!8geP*BF|lMHc%SYHV_gwPTMHJs1z+K*rm|0bugH=+kZW&4~HUQO6%Js_4{ zlFysd#1n3W_hq9$nfWR3Va2{Caxh<*2Mg!@HPYl@^f&Mz+IGw{{OWbAP(ph)y+l~e zKyt~*f#iQ5)b6}Gki4^MAbFR%DtRFJ^)UmX)6HKN~Enq+5<>?5NWGN4J7-Kwgzcyu{@ctbPEmKC?B{gxiJjD zp^)?t1-u>ts1R_d&;t(70vvwt^&1exzlH9~yj_IZS_!EfEaJn13-*x9IJ1Z0kKq~T zXF{>lP|RPS`JYPZsHBR}zk=v*l!RSAh#pd{q|7N|?`jDZv) zAfB;i)Pp7`@|FI;wBexjSfJuFZB^y&~V@zcXN z_S3`QmQ3q%yemExn0$u5iFZsE!8<04Kl#{HkR9lmjQn5+dM4vVCJP4Yn|NNz%J9#d zEO?fgj9+gi<5^}he!ZEDXPL?P^=2}jWhUd-o5^^Vne4M1=#Vk3L&iVMRh!tGrx|&O zMej@=$lz%VS-9a)1kPw+(SfUy5Y_rgF;F!3cXls4b41nLW7WwCoZJYUo=Cv53)Uzx zAT(mZeeOhT0&upw0Mgf^8VyMHc!t*6LLwF=g0+Cm6?d&L9e~kqsVWRprI|`M|2M-_ zNh4&eLMMD-537Z%$;1aiNe|JRKaH_U1Hx3BF|kCN<$w?2bH?7O=Z4Y&InA`m2i);g za7Wr-HU8AlX~|Y1l)&rDgc4+eKQA;XW30=B5(czPD51^ag;E**g4{LGh48qe%D?gy z)Nm^T1%4mW`;LYLsKsiSgG3HKBkThB^yZ1-J;0~W^DE#OvcY2)AgAT{*M~G=7pTv} z@dP22!t;;@-Vo(^yv!?c2fp$1e+B6F}Xy6^F-lPai4s(T4%N8*s}(G1Uh8k!BXYQ%=YH}Fz6 z*A7$xH25YRpgy64g9G?RnuraIsZs!?S725OQm>DkW&0pi!w%4lCnoXik*Z>S!jMiE z&a^YybCcmrITuYbE1Mq<) zJX$vJp`J2QM7ti_$CUOo7{Dg*nW>K%UlO^zF1qPk_+vbhLH$$0ubLY>( zBU$S&!SK9VtNoEQ6c6h4ObkJ}gjppV18HRxk2Ig+g(tD4o6(ZL3LcgPgG#yJmhXS_ z9FG0^HYP5BURpkX)$O;@<&#@FC!W?4%`5?W=X7>XM39XPZ~hd2hgf2;{L9d~lb$YN> zJ;Qx9_#{18??tV3>08;}{`0^6F6%QWwKUrEZ@{%ax{P9aLh}^*6voK$Lr}Duh9&y zl!-KNp&m$ow{)z{O*GUEbP4!HmaefriT~>?i?~idq40>!3=A^SSV6+i@{^6cdSYGu5co7rRHT{`V`FH@^-An#UFa~PYytQMtfR_{qo$=Oea1RZDU^n zp$0c>X+=3)<_6;IX@5o+x1qyf;f!+EmV9eHK*cU{Yn}dWl3%x#@d~9xiAzhqwXtG} z5{C-UpCWjljmE5X2^WC`^g;lt?cQ|C&~P463MalyZ4}cyuXZ>&<=!knWmhOan?~+l z%4Y-v@qAbU_)-2A{%uqUgX>>N)#f}IcODhcw1Wl1*w7mSu9r{5qK~E_^x=@t_i)Z*Gi1+Ik-r9eJ%Dc zR|His3~c5lHLzvEo{7s*-31a22K;FX zDEe-+yg8L!cwM{mln#%QZLQ8uJ*ap`4i&zYaBz`OFD@d=UJiTNv}H(pC3VG{(hkBT zPU%DR!v41Gry8zncc(2&IZ4DXd^tV`$^c(ICA;{pcIsu9dQyn@t&vXQx$5 zZ}bQ`o8>zQ0Ytn2K@s<8ZU%j)N%1qrJk;M(_CS^7$5)EyO8z=AdqFKO2VpEob&FEM z`4Pv8_a@=G*Mx|SK`)e#EkqY(LKfa z4RM`tUc$i}-03U1b%Yncklf=^`Ffx*e`pH8CG_K8>C}en>YN`>aq@&N1eDcK4~TlU zSpPN!%xv0}o}IY&_$Cg-I1GUCa)#9yN!8<=r`sKMJ#ajmI1wlBC(J#CSYeOavh64X zCpO5R<96CFU8%cMJV>rtFK-ps(^T$OviTKUp?<3;PvFnCYgm6ldtrUVIzCW)%DoX? zqU5Ltu|t?);)Vo@5);|^HL4I8FL-WefWHmfUUp#(_=_qB!kTRAK3`-2+$9@DUI&1Y zcgh6@25PN`mme8Dki;g9e#0cWs#~))C2z#hZ=!So;NPe!btOSP=hw=|K)@xP=R{R# zi&g9S^l8y18RS38XZ@gl3B)BE1zyB>>XIsyC!h{WRQ!g4SK`a?hHw>M2AtO*MaLmZ zIqUMV6syR`+RJMKkB#Zc2rPcw3t!{~juOC9j`TyGC0w^PH|2U=^W7DV)Xvl9A%9ZD z|BpRG$Ya^17CtXgi&w;uS2E>W+o|jr*h8Hz%mFj-K~VfK+H+$lRbA-m=Zf}B#rG-H z-nvk6B%1jI-Z979owN8ZIlcH#e!MJ6N47vsnfIxZx=5bIB?Ofu6yA=n>b_f}KdFoc zC&GDf@x5j$&So{rr1k*4m+3b?*^qPX?Wo;z4W=ACW0hcQTlIK^b0 zWE55Wf?_n}&w%r(NB{Oj0oRwWTK~Y!a?_qcH2kQ-JEg$|&(7!!>{mc=3 z$J$cq>vyb9p`fzYCY?gO?_n6V?kC^Dj+R^$nKvCST#lTYPN>)8ydLY4dZLR~NIO_V zsrL-e-%;Z?ba)2FU)qxI(rLdv?#7q5_iLp3?e#@7k4l|bvtvDSgY?5&ulH=kx^me1 zPpDY`ZK3+>)OrapH?sZ<6rSn~{8#U*{$ncDUp%`rClHl%_Sj094Ik^-63x5?8%IhX zdIL9>^+|^37Y$u5#XSM9qL!56vF3yovi5F4vd^V79T(K;QRqLF;NebfIr49i`C2Le z$rba{ZdSR!$5qTv)unQNGR|^%o(KLrb7o>F^mOL-cGReIBtI1!c*XvWtyte@rM^o2 zJHBH6j}Dt3CxI)#d-kyTkFJ=1gyhGfY$jyROlSo%PYSQ%TyF{gGlr6hs7EnqpWkST zP+UnO{8{4+)wGRYpMEx!L6ZkQSSQKKA{YFu*BV`H#;XI&QB&p&2*kqz@Rksx;h3sk zvkICvFnJtZv7D_GZ?ONQ+{s|ZTS4aO!(=2?`uN!$H^C=8mP%dmRLY$&NVRB4dKK1x zg7P3`FKmifN2nI$4n2Ab>U2nB+&#zc0M)6}-xjue1Kd)E! z)A5>RQD3qAgiA%7$G^31Y?NZFfe_HBK@g%D&d-!PuNG^NC-G06%o7XXbpgQJu%Jb` zm?YV6zG=P7e)DBn+h{(4;}CCtw(p0$&UdW+=8nE2aFMrlr2XdWeXz&$TQz-O!4K>p z-o3uzyThU4V~s39gIUIF3^WlTIFoM4~+#WXKc=eK6&Aq-YiaO~pW%IRCuYn&7rh zNZAwCMy#{psgb@miP#C5E?vr|K#heOq1ggWGB}y%fKy@M`b`T}e+4m0majLqmIF&}blb zP=&DCRCdZ+P+;KA_ZIdl_I^+*LfrhfO6KDMmhTv@e9Cz|;KDSUR!t0)i6TvJrK+kq zhsC{bU|C`<^uleO)MfulJ{_r3;V)iiQ!uqeuhCzv6G{spT?}L`Y8~%O- zXodi2JsNl%wGZ}A+azZ~29kqslbXO|)}{}~hz<3Q#Q)F5dl3l0USE&HQnV?V^?A}+ zLvod{Vr>Q7!PI zvA3g%y%_fp28ce?ahR^aE3Y!CCfRqd$@C5Y_H&GannUQ3$d`TRf2J%yX`bEJi~|X6A+VSg9nH zT`*{n#8?ctreg@1u>6K0D7m@Qnc9fw`qY~3^_@=ZnNp^we}(Y&o>`c&rbZ5Kv}Za} z23p5e6{dK6HVmF1Re?v`6)t7IFn#%5hy4KZl=AwIld11kT?`0f$W#j35(^0A9Hp_c zgqzi%tnk-WSTBNQo@eCw*}gniVIGvw^=ueTAsdFs9ZGd&zfgQn%X5g3kiA+!Z+EV! z)i!Eil~#L!QB2Ru*sS0)>q*fGAWdLjKEU$I9vmtUbpkZjlyY99WKk!Pn^HYn+MG)p znm~wJ`GSoe0J~VdmhfMUpV1E&w&$(SxFeY&K%U$})gAKBh?c!_Ri>|OvrwJm#T1GWgT#Lg!-vqf~L zMal-jP=;M{-8bYLttJnpuP4=0Q-gTz8)8}D;80%?AWT38(>T+lq_FNcbWd{!*e_KQ z=5SaG!T#cx(S=sk6n}sryCp;M7rAM2{s5gMZ-pR&nft0;sqE#Ah?l(`J@i2^8(C?X z+LGJZiFfNx`0(>fz<)%a=+W6qtAb#IP`gS_WP0m;(ku55h+p7gfdNH}YEOzmo&Jb{ zV+tDJ2~lmwB4|e%%SDgg|4x6Hxxug8J{}uYupr|Reny!;>5~GY5|c@7Ncj4(v>B+w zyEltCQD7+48hN8oJ5woRumWfQqmf2xZZ3#owqO@l2#sKrh!KSy^IyT--Y+$vhv%TR ze$lG$0L%$jLRuhJZ+blQBeP_Lo!B~*Dx{(`ptYhhl>tF<9j9{HyB0????bJ6zC>?5 z8!z^*x6FIy6ui?f;duO}vi2;@l4LU&a&jr&#?(?WC6^UX)%opR_108(+7md9)Wd_j zaXViXxA($^@g+m=o!5BwTwYVIgeyAt%h!#|Os8?ypKs(}OEmDK;LKwq?($K4Yz8Uy8c((gHF>oZDx}`<3{g?}G5c z$*5TOJ2()sPFR3tuB=PuH^I6j`Hc`OY?E(Ys3+pCWR;-s>s*^n2plv=WmkQl1ctIF+Kf;2A1U_~fggT_@`?(OWPZj2)- zjk)(S)s+rwgq)+mchk!%G)Ht4Z|hpg3MNN;E(1;qAH{#e%Ue|&Cf#9}V`kn_V8H>h~l=#VfqZp^f?^B+VeU_ zEUZ`D4_vYGG=Y5pD;RrTZNz%AEt_eesAzXy;G|UYl<_4fR-zdj|3luxmE}{?4hsU+ z(teyu0oo3xVV4OBx3hHIS%bw%EZ$ecI@~rC`~(-wxWyd;&uMR{#ZoF53JD5T%;&P; z42Q&RCAg|Yrk!^gCc{U7d@5XKofNlMiELXaW`{)d1KSJL93Q18sEh$&Ak-=Qw_v`I z&t*p|+Ot?i&;wnWd98+l=nrK19);?_xyTv)4j=rZ+1cKx+x$)i)>G zj+gcuUO#L;zRH*V5BdG}Q**L94A~!yzNP$&M46&wK1hITbCsIKlp|I=O>$P(U#PG7 z#Ml_p5G5+3v@vD~C}H21r5QMeFaOQ_H%b=;X8a<6FBAU_r5R|PN+Xm5_pn|?Wzmd- z7fyER-%U69Gy2BnExFM% zscMByU}02|H0(K0OoZnKY=dSM!t0m8s?3Iu%hzYy5R9#nxR6@fu>D-;)fc^EEtMj@ zrly=Lg%A2pc>fE`fz;tU5jC-HEOEFITWYeDcEMF!%2rV=Y8BNYg|qV&NLqO83ttAF zEd2S*)+pMYtL71FW8ftWd17Qt>dt3I3Wvu_%I>d8O{5G+>-a9R*z?w3Emo81$LT2# zy;#z!+@Q?Q^%F$3$E@ZXUiY^?OPLE&C)W@nEVokm$&j)D2)&T8z|sx87^(}2RXJPb zZL^R;ib7NQg3j>w(0cGM*&gVlFGRm$H^QJ8`-Rev!|=F^a_AWQjgjIlQ5~479YO$J zj2i4(B8(pMS#P8Dxr2m?JdJ^cqxcWHt9ywhtZ?YzS=Zc8TaeFhaCKGi`wV^!&=c(U zq3^TGzI#h2IGn>LUmQjf>lfhD)pH$*T%U{^FBTKQ6zZ6h?+< zW-Itv^A^Sbiks9g1n1rc;e6_yE6|yGvB~;~n*>%R#2tKQ*ihkeXc0zVQ+J==1bthT z)RFj5%Paw-tPWcA+ zM~A95kd)gc6`?V>oYw1nIa;l#7cD^o3|w2JKIHLQ%5A`xI6BU%br0~}!9}kCZW$6) zOVQ;&XrQc@Sv*{DXt|cIqe`MYeZUA=$Ns zuNy)>=jpwdYk=}Ti6})my4b%{`s%zv*l0;Ohq#Bd7 zUj(A1rN~?ne?MsW0c-R-|CE0&NP6WfmbtN3BCx(p`n_3JS3f88&rI?@@CoFA+VkNs$pf6^DQ z+4p)8`yii3=38fgHenq?^i@7UJWFi365*`uBNW#`|1aQUSxA267p+GftVc;QcQsq3 zc=41R#H~{yq;uiIB8p5Z@vzQ71$4t)t0C+OAliZyi$&*x-Cu zLlD;tRl7MnMBFa^AN^iyjWe}&&GwP7#^YtQ(>fOWog1T>s{mT}Zt$x9K5WiotM4L7 zfGMIsnrW41Zp`+5RzAK*5-8>R5E2`?Pm=_0(~71W%`ot%)KoYOPv6?{+mjsNp? z2FNv?6x#90_xI;|OXMl+#FVGNS)21a>$nv}n}c<9a8Hcod5HHw-+(g zaVOL81iCGpiRgnp)=j>s@fYI9yv}LnLBfk$N4H&}%4uW@76pG!YpwsS1jARa<)DO6 zYx43gRC2*UMK?3%tib9{9WC&Y|2J>qnS)Fe9gcVZo};lsjmGc6!H}Ycqo`gu9xK#% zJfl)LAS={>Jc1M{i&FluBnAuj;sdpv06$drSKt~-{A*lQ2x6l>M4dq=$xxA?#-323 zk!Hss65F4EKjJ2G^*|VZJsUxsR;waP>56r3_ikdqn%uqH>%8^$?%iI$tud0Zdv~zQ zi02qsy(B1ptD~8J0*?7XsOu7EFt}gHnGMr8bvqIwFhkNzxtGstbACI}T2tj7O!=8P z3M6Ikf{yZ8zz-hO3A65OEg8_zi8zC&N_&8^(Hmv0-Vff@EdQv%ww(O4LTc$RrI+c$T7j z1ty^aDqlZG&I+{^c$&w9Z@=wIhgH+kb$4VDXHh);+?D>3DxHI=x@&$~vR+t-!FWBo zd`^qtmg*Ro=tUE~Nn^E4B(cc&TH_}A1XDjTKra(XDMB=gaU}*jbL2JNMwHlfr_QFX z)#BVt^{;so_E5s}C*O~Bd;rMEKfVS2D{En;>#wo*j85+muYcJrSNz_=B^smMYSF;0 z=T-mo)T>M7X=zk6lTE+w%{ugLMxbvK0)1-=^sOP#x4H^_Gwabh+4$9T;wE387=hG? zW@z`HGh>vXHiwgk?L3V7?OnAxe>C$l-?vxk_w+riv6cvy@`dw2Z74U9q0*)Nw~?Rl zd{p3pq*m?p(6dIMsYTgbVWckCh3qJY^N1?nBKjTLyJDvOp7*M9z=@Rm5qKu@vnJ4M z^QOWIB>40yEmSf6PNwJhUN8BSKOWvGjPdjQ!{RZ<6xcRR9@sJ{cv-^OZUuMwR{M`hdj%J&OHa)O?J`L?BAap;M}y zsUPVq$At#U0rM>PkY5hlns#-cf5;(=Bi5Ko`T+TkDhjpi8Fx}O4l+QO;tDB)E?_SCtP6)e z_U5=m1KU1^x;p~plDRc+O7t$JC@%h2V7mRMOgHO2{!EKzc!t%VZPCm%d@tiB1-haO zP=z);fvD5Ji9djLBk@)IpZJq4lmP$J{I0$S`+Fe?1k=Jz7i>o<2!_u!?7%NBD8~Zr zjK@>s2UF3>KU3eXcrq3J-rCfP$KIIw!rfn9PgjePsW+Zat$DdRHU1|z$hsM~1V8}z z_-Kdre%~^7Jg)E}EMGQ?^mD zp^E)x=QTB!)bZZtYsH*r7)MnEng3*ajcxyYRJX)*v}TlTIvr9 ziPsYDY4I#Jbl&)PtaneI+aB-!9jPZheFdmL;K+hCQH{3$=0`HegZ2F0FX+s-HsS>u zHC@s`ANkg5%$G<=NGLv1QftEbCm7{eNZ>2}*y#H~eAH?Oi?I!mX6{M$n^kjaL(&J3 zu86T=5W_YBC=Ry{XGEMRM519FF!jyA{pXWlqD)7>m!H_3IVm#tkgL~j2g|?=l~%FXo0oDVg0oLGN|m8z$f?9E zDzqWN5z(cHWcjN>#Okp3cGHUif3lMYhPR;Lwsa*FwI=J;vTMW)AQn+o04pvN+6&wOUFo)>6)NtbWSy$coj#T!h>ii^C<)jAItj?|nwsgp$S+Bikg!F`Ng26(Z4l8Q#UvM8t73xAN zOb%tav2rcT9rUMTP-%5^UTiW8XS?Tm)Z?rZ-X*l>EQY=ZZn#P;NF=$An0dq22;UXE zQ!k!@a9*hyE0ym@MIbQnpYw2PVliF=Wip;r{}NW&7)`Q){3;8R^+S&)9>5e zxmbvE=o?5O!k(mSpwAlxa|>qEDZp?A+N{@G9|e;p^wxQJAmGsJBu))p2{Xngnt2+< z@lL4ao%$r+IsNc%%@NB3WJ=i{X%`A&Vocyqn|m;1%d^-b-P^%i4mw2OTkAyDi(Vt~ z0Yv7Do`}Q#Y!UEK-xOId>1oYZ)e7R|NU=xZxog3*RegK+ass5EiAR&`oz@9$?gF(K zT#72X7CeJ^VC(0e3g6Xdv`HTDDH;4^mm5m;~_tvU*2-s3YR-cjLWU-v3L%t)*7Z_^oq4gruHwo=V9{X=y&- zzmafnTQA?Y(ru^C%dU>ZGh-J%!9h~dg(y|fxP;Hthznk6=CX9LtUMIO4h#dgrDT3u7lr29q~Kh$T0*nz%+M?wTWOXV{h(C01sH;U zapg_k+A@p|I)i~2d=Fi@Cxw`?Mgx_2EheTJHM-v*s9{X$jvpy`7u{buAx zzLiwaet#e2jHyB74^CcB~F`OE%Qm&%Xx*=)2COfdM|_+GQW2n zJH4h0^{8`z$QPMDOTEVdkG~#UNp%qUhCAPkk`2=n==Ml78@=UdRrzt#Q(oL0o-;(Q z{UI zWAR4#dNzR}NZ-0xrIf_@6xJy|fpRU=$Fbb2s@#a_F;(tMmCLzax$)D-5idM1iCRvY zev#m#hwIx4?M?N{9Rf;2xlO8ERMTD0naH5I3W_VS?yM`Epvoz>vXX2CYrV`tNEOZ^ zDGD9G!5Y-#k0mw5P}Af1-tIiMViwR~TuRmX?gwj;1R2rX-=4jDHkvSdY}uQzv$KYH zGp-}`c-D)CHh0Rbw(L#t7hcO8!S#dyL=Ox%azBrV>MU?l!a?66?}fsSV)a;id((tN z<{T6ss2%X6_=(z9`bp|)|sN1t>gv>Y*AFqR#MNgjugdA znp0a@$<1E%O@$93OWAP5-JU@}12^Khqn@@`Stsdiu&QPY03>)QR@VuI1cRv+T zGslTk$$<`Hez!St$j&+uIvexKr#4r{)C3tQez^=54XeNpHABYt>)>bs`&iljB;-FA z@?67%=GhQ+BL99jX&R~Sz5VzfGpVNyz(TFqptFu$(aWd6nh!gy{K!A#Gg_2hz6Y*? z(!1U~g_@#oo$}b4t;%`(xeXOI#r@steCs@&U!VYaFn?%s7_8RjN6F{qUzx*uxT{Rz zA2ySh@duSvyo-(>`GIMB|$CQeSHH6lD10qvoDKy zigABEyq|2wE4#3RVuJPL#*e9>Fy)JlSe=6;;dl*xP za9Ec?6SLj$`YsN$igI(4{3zG@L*FMQ66oK*_ zQu)dn@k(;#Yc0R}6VzWW1ZH&J9z<^bp&-XUZ$BZgs)`N#;NKyrE^}K2n#kMhbvBe+ z%3PcZJZc252Y)_LUci3ykMYFV{=Yk(Cb~h6_aTP)m-2!M_;bQwFFUbVhk^;_xEU*+ z$Ok!tpp3vq%CAL$i*40p%kKQi`KFxSw2fWP4Y zmkV!)7xv@8e#1-Xff%vfIn^?;m2KN?t!{(s-0a?)IU8Y2e=tDrraf)nt<#%SqcA<{ zaLy%Ee-XwYbrOpE8E-df38c`2-p zzOD5ec=K$n)?&Q*R@P7BjY_Ka&*3>WZ37asrSU${j<#KBQ8lS_G7rf(kIhfogxS1F z?1?-kpG|L*xi=5p5KC&bXC~U{TCmNtLB3Sk2Kf?gkaNz2ev=U6qF(>fzyzs)XcsF*P%)_W(Tb&ZvGQ(NS zE3w@rEC$h3B$8*q{{tmyS3z8HRjo2c-J)K^AgAo5>F<`n2}?!s&dwali{&fBtv)^IR9(n{JX7u>j%LbvOd^2HP|ovMSuxdFOUuen zU~9Na)NzbY306DstqtEmj2WUW;vOSo$xHT{rTW!NkSf^ImCD+A78cV>nIC^~<+dZ% zxFvX(%!Sv)5)*OHg?$5yt{3r&w!QChH_P&1k{?BRkPv3Pz^p4~inKHn=`3Xo7xb^F zG*0#~>DMA%SD^swK!Q*2LH=1kjJ>@V&AaE*MsTY@HH^Ky#5_JNWFDU!GLMfBnaAG| zGLN5F$vp0jPZ|GK*F{U$uoe?qkhK_Ih_<}ws(8@Daz2POs84WzLlMxU;6zeQnLbPY zMA4GMet9)&qHLjn!%YwP?llJjaiJSkQ7|RAD{OWd4;c)MOC@_U!o|4vU}C_4-d(oh>wm_4@zd?Lm-0 zAb?4RAZt*0wRX8nkB}Da)66t z3GnrYuaMbRyK}G1Y5y{FpA9JStd`J$FxzH+V1K(GHGoo-TJrbWU$eq1qxbwG`ngj4 zC_<8zouZ6_9srrodFFIVAHt#wE9 z#^QhG(99^Qzn%+;eCt?xMWGqK6~EA#1C+o5I$RGVUXCdky#+7q5YU3Bn2AT4VLVDE z*CH7h)9qou7U|6!3-oD6KfCvIq4@nZ_)ncB(D~+k0AJVk$Nx$XbJyG|D!#t)OX%=f$#R7*!QbhPmdU=bA`LSa%cvC(>)Y?2JV-t zoQ)rS-eWsJh(OA6Jh;9Ly_c+~;V*^wClgl0Pz1(D?;!L1(e!C0DyxBv%4@fAq(6_L zDSFZC*%-IQxmiBN`LWq7hj`}}Ivg4}1F+y|a~^|FL$qfxT7q^hJD{1PxCZ$MUb(=) zzHjD}z$*8D=_ie3z0N>wL&DYPEdz7V^A!L|Ly5ZD9D|9>qIswX@>bT$YtsM&_JFrV*gEg98o%}iP=ye?!DgMLYGU8tBZ zAR(B;y>}_l!5zRjNHzGSaF1ja^=$=^0=BPEfPFq3ZCtM!xLq1RLA~lzSvuIwd473Q zG{y9pQY3>Ku}wD%|8cuj`JtNi2xk$}n)?B@w9}Sdu#fdj%6&h!gcnp^&Llh7P&}W! z2(?z1-gij$s>vpkr!JpQGCMj1W|~buAq#&pRPLfuKX;Q)XpjEufw1VJ3HT=7_gyR& z&Afqk((8XnI(+bT`pL*0^uyoF@17q%m)+3Lc2RdP!3F6Z>C$ z6?gEWnNj#4MnKb{o!GDyOJIBz_wsOLnF%zN#8;`aOiwW3OYrSdb%?1X5lsvg^!{{0 zIRM00X~!bWJCqO?0F|bwAd5udM|!cPiByp%Itp|`F`uc)%OjrYY&`-5DFKIm&Ydr3 zAutb5)_7cw-@rMDp3R^h!BY+0TRl7-#;S;FEw?fZ2F-DJ1HZxZ2a9!ivb8|@9|46E zDJxWYYpSkC%HxA~?qP;$A1pXf-bHzWRj;Zo%-8P}wa8Yu)_bp)_e=CUk;CurH{VeK z-_JAeAX>h^!@Pq`_Drl^7Ey9Jv0fFj|JMVGv!ftp#1y2@*|}D zd3dKhGxl0pBv$rU>jPW~_awTdy;pNeuCWdh(u7;uQhXP;w6Ed8cS{om-Oo6zpIXVf zdrD~C{l3t;yE(M({-@Bo`{+vRZaEJXT%qcTql_RvcP}JG{eV1oms5H|s`u|BckMcK2My6!1L*NKlsr9;? z4!k8U2N(W1TnkZnY%GP71e9-Fu9|5v!IysPY_ zYUf~{|C#14!XBK;E9*&TIp5`Yf_z8LlC5CuU#?yXvZKFA$W@Ao{8OQZ_+}xPY;}Y3 zP7CfD2karbCEtETr~}{8zBHJz;ncL5kZC5$7+Os~ts+>P^>L`a()RKPQ&EIR z_tMb{3z+@E`JX?yM!v^ZYb*`(J+h?o_j3HbhCLS^*N12}{IdzJQ%!XLVqD*^H1Mlj zrO<>KjdZvg`8)0!7^EgF$YEGd?`qF}k5w?H9#-UVXvckfSfE}uWWo{pk@cK) z)>v^p+^&v%paM6I5VK}Hc-ak3k}W_$!o60s?TU*U8h95$i|8Y$)znm6A^SeL;{TSy zr%4ep>9SW1O-*ILCZNHqM;r_of^7&0R@(~_ll)RNH^ke z-5J&1w{mAx-Vn;2QF%iscSgx?_K3mdv4<`6A^bBCy%y0yM3c7OG3V`iK@!7JU6xpJ z3Lw;h4%E5YI0Y!FH}cesI4 zkX!cC>;)T;+eSeIz4F#UnLCltnfp`=BVl#s5JB5rFeu)!45QVLI)#MW7$OQUt2u0v zLR&u1w**6jvU$_;a3>=aU4%*zvh-uRuUkrG9d6R)LIq^LJ)z6_1Yca^ z&zCkZlo=Q=sgUaG6=?x#nU%QniwjC@HA^o{f@#rp&LPO3XU8wQ->C~yBV=pVmGcri-T z-y3HYV|C)QZZnyGux^m~S5^yC`l^CDtO0Z05U74f$u=5ljqm$`DjrMT=3Q=gG z0;$Ed!E<}|dh86Vm7eHx!9cY9f~dhFEZMiV>{l8%6l(CZ3v_U0=Na8hdOGM(lsfoY zjpDs&@c!FR-K>v)QUxcHH;TnW&G7TIKBBJFLCloxzCI}R%YR&&r*TVl z(hJG!4Z0cWVM6l4DLe?RnFg}f55?q_>9>#ZH}C?ydW=L|TQlscpx0^n^#*xPl(;_I)~KKPN?m$Iul+JM3wxxhgaS0+B` z6m#0}gOINT>^V9sq`iJ^8);6jjfO5g7?@v-TfB)qCVf#*gQj=&v-FY%voVO>1 z8=$aWK3FV3ZXzGccP-{O{0YEZBUSeA#d^z}gA8&ywc!eL7ZJ%nPFb8fSi(n`f^{lR z9pH)TC`>419nxCK3edxkwolatZBu^(?JJnedd%*|&^2_|Oiw)a>7Eje}}U_ zpnreu`f>CFK(af7YV=C`!0zcjki+b6y!O|h|LgYrK>-m4yK2Vh&)mO1zCDD$xnD0~ zj2%3LOr;6<>vQT?7snCWe|j7jiz8ABBjnd`<7vU*O;|G+7OR8L$ZN1i8%63YeN-INF*eYgo=w` zk-X;RldIM~zK55IF*i-Y+BKeciz$Q|c^<0YUWj`>PIO!AbqI9?nbg@mdkORn=y)8Kh&805$*1Dc@5Sm;RlImHl|AQJs~$cl)(OoU^?Lk@$L%#$JQaRq zV*JM5>SJzrg}CRgOnP&|Ao)wa#F`9%(=S7Etojl>O@} zmN?C{6TL5Sc$KsE>@kNo5BA~_|5qQLve%4Ajo*F4^S(W88X}2}zLtCYW&){JJ5b5egWl-{xCzuDbB$7M=f09GRk=v zPO|i8pkKVfcC9;gtlL@#@4<2L@lPb8lb=7Ywef~`IfIEahG0!;9SiZx{o4EBT6^%Y z?llNu49}!YkE&R1nS2X!4215sj`eDi@7h(Mc(3gHsB#SWL=qIj8$u<7^52l?PDKTc zrQR}Qbsu!L)S1@-_up}X4b-$`nGz1?#I5NM2OF$U_dJYsG$48%@cvDSlZS;HZ zPq-Zo;1A;;k1pbtrIV5_6k70HDi6H*EBDo6QtJEB06SW3!S+oPdyHS{IeMWuoSLbn z^rA0A@Ygma^t8Y4mF)csTRfTTj>KIGTr0pV?E@GFEMTn;@ekFs0^aEFsuLmpZ1CaC z9qY`kcjh)!;nXa>03*)agm<-rI^2_=TqhqcZp=>}M~^mqSJ=vGEF$JEb0B;&e>A`P zKX1?D*ZIjY!jYeh#XrE2-HxDsu)ps~m;%7^6Yk`g^Aqf%RVSUbb3f5X5tulmfBah9 zm6V81dYF!PnFo-F>w@|zZ?1Seo~<4MUKqV^%rSAW!ZD+q4Rg0AoQFqV9JBXSI~T|1 z9N~^S74#XIxOeZ2h&39)xPy>Bvt?Q)Mu)>ZB(QrJcxY@7+?I?9{>7bm94mJhroMrSWLX#C`u z$^j`rz6AJL0XpCuoO0xDz3_a|1Eq&WS~g?JU%9XP|6}h;0Hdm|_M0Ue1QLct#Dy`2 zimgflsGukbNg&YxfrQ1CAc+!WiD3e$EQ5hUnxd14)rzfDv~_8VZLRWa6$BLb22zEp z)oF`WiptokrLyGzzH`r;nM?vm)t1@>X1;gMJ?GqW&%N*7`|i8%O?EB&bBt6eOSpqeXbm|r*g#JUmQ!B3|wc^0X)8_}y_yh6??Ye#V8s(mj1^o<28l2dCI zUGDHz<>8l4YyNmJul6|_>CM-wWmy&eu{^g6UXZ)dSunV9?z?$|xB9Ni zt=&d}W(aH9<9kyfPFmG(fUaLz=OgothZ8j);&^9Q^{Inj^NkohccSmA$n0XnDUEEd;rSC{ zlez8u5fiK5GSiZjTd^_0Ohh80=sF~Z6RRIJQdK{%n_GlEp0{n>t?ySFJfXz*B;K}s zJFj-5`xp3P_pkO`4bv-312>?0IrP=$I(%TGghR&e`;L(c|eCvuAoS(>XHS?71x2 zPmaDLGC!8eYDt@`CcHDH_8(ZK-ihlcvoei2loxlkH~X%{4+Ye`haY9=G3OdihoooZ z{%+3WGe6zkIbu(er{t$&hMqeRcYC{?%MK{N=3we_cZcdfGPx#;zjQe}b@9Sqai=GO=I%na7!f-DE~C z{h+Y++El#ObW5I5hBsyg*CIaQ^QmT$*YXX*Y1P+M4d$$9KVIgmvqd&j-MIh{@sm_$ zN@v8|p3lY1$GGT-4Dg7yDDh{2y#;lbr>F9{PMHf~QQwCvH1U{Q=WJ)fTL?IwM3);^ zvMtK3zb>5WdwTaeJkP^Hi#=Yrm^y>pGD2p3Is?PJ%PWE_wDfJyyS{vTQI6Ft!ecMJ z5FXwBXX2kow_+mPqW;i;TdbeaKxDpqV=5-RX3;Zh5ia_CfxZ{lX0jeEr^NeQD3%;+ z7QCN?@Xkq2c{Iyi6HKYu8}GyW6YL-Iy*j`OGT!nCH)NW9r`d~#ylj5j*E8kO;zZnP z8MHhVM@h?z99y#GrJxbjh(U}`ZPeEY2|@k}jZ65+52>%%>-~RC-<}hV<7GH6r4hs; zo`6NAEw8s*rOPjbMe2hK<&maVhhNd55uD388TQZl$ex%C_KV>+;za2qXc%6?^%J|_ zC%3(i z@0PqBvVLq=0ajgVH~P9|Zm9Vzg!hHlZ1$=l^qX}zq6p2tw8FttQ2M>TKR)h|1zI`l z%~^vV1foB=weS94M@idAQub09f!Z8AG6HqmaP;~LSJvK<_nHQvB=Y9<#!F}f`LACd z%^xQ(TxA8toRoDFrlQI)5JYujhy$uAqj1GF*!uLYc}|$^rS7piU{kK{@!LjP!j5gJ=Ci2gA|CGo1B88ShIziZyQ;H-==44@{m7j>T?-^o% z$qk*3})f{wI|82{%y*Om&6?J{}8JA1uEXrMR>Hf^- z-DxVHyJCVXx3cl?n1d=J~}5Vg1^j^n_J5plH+2xc$n+ws%SZcStanCN3h9bWe{_L^}_-H-5jL*Q*^=Fq|%Of$) zreyAC+v6Gi9Zi4xiNEmm>VWYhD&KGkqWx^kM;-6m@Ug}9a_wV2xP)PYcVyJD=<^3$ zwhQS`SKQqbveKvWvPhSdhxjp+>2cI_!Su%k*tW7<3U7A8?0z+-{nds{4jEbggAcJ+ z;Zx4A&aQ+#3%ZiR+68-Yzh%p^N(K*qDN8=VQOdV($1&7i$9t4X%k$gv{5_bDn*7c0 zGlAY>(+@&4vsvEvfXM(ik(H@g->D;47%F@DlJrt=aT_E2YxS5jGXLzly95ulLr%|k z`?tI1 z>Hw^~pR(i?Q}B=QJm%62j(y?r7{AG9dzi9hB9geHm-+3^miX9qxpvCV%kGJ@acf>hIgUU9aM94cj^V z_7hW<`gwB)t=PQZKptx5Ja2`(A79>Lx2sH){BRHaMSTr(H1GRh|Dnj?1p-5bwliXR z8o}WR^KSO(e}KCZ+35J~dOKp*<|8sz_Oqt8@5^?Xy4}^Awk2LN-ybhK1ZCP^T-zkw zWZs+fu5KCI4)3XT1Ns*_@JKKx>-j6jy@^*j*;@s(YoEF@M0y-^ZB5Fwv)QN zHwSN;Q&9VC?dyfL9~G<^IPi451j;n0_1&BBj+v-bDmO|&n&dLup39vKN!5&kE6 zM%{;4_)gwp!k3rw=&#A##ovTvWc+TrJkcXg;r`gS?6rNKZMnX( zWdj|teQ1@wj@_c2ilbKgW<63D-NWUeP5!l(k6hZ>McXnWQAAfP(q&-1$TJDI_BI+wQtI_)jne6+iD+XXkM|Xr?lzt z=+H(3L4E$~_S$G5hv^T@`D{1h@WoWPsmei=ew*iGRJySj(_gl?Pfk`7G1W0~jf&Ty z;<TnL5T(znB-`5O(znNxL-}`v^j7Wvux&p2ezi8m!^_9C zufcN@X~O5Koh!d~J1%Sa+~g=3Cfc!QT#iUb>3%Nx82fmBp$Kmxih4e(Wqq_tUl+u# zw1|;b=|`yVR?katX1$?>y_U~w{io9-t}(o=pTGJ~`}cLv|48xwqUm4v_n%c7Jqkgx509<$vu6D|bVx@t{z!i|Au^swd7{Rn0Q;w?@hFw!P1JbQ^9zkf??uL=P~@;O zG9GP+9P(%PbZFvXTSJrG|Ni%vr`1p;MUT4v)%AxXT%R57^;oQY?PI+274B8W)jk$% zL4W@B5A`>^-fHGVo1|Fbuh!)Y%g5>;YxI%I)1Ho6mP!lPc8m4*BgLof`i^a{pT9k} zonNfISUO@q)}OZR#mdLpI}#nyZ__^32Uj0qJ-=o8x_tDq;nSJx^DWblv|iFmzSVja zw)B>=hH)#uRD3?ddTmVpM`5pxF0%FdT^3ylcaooD{qIX%pF8^X+lO2D+gkq!*AuPo z&$JcKMC8Hx`S;&%;q{ih5uk2FAs!jZsGE?_2QGilC*yQyy!ioF{jqYqaY@&I&HfCL zulX!t?u)xqxIds~qXSg!g#5XWb64SsTljRwU%>@y_fOEj;QVU2}k|fLxxPc!G=X(Bs(|c>|yA zLe1VqbF=gB$gkMZ6PIs%TEHbQ*01|cDrj_=BQPn*cd0S+(;WHcr!w;Ea(gCb;yt}m z;-KazrI0q|FFc}Yw1_SU$_O=_y{F@L;J^9?!&~g{)4ZT zVO``MzgZ}HSP?&v`Lb@TGJPi+k;FH$+wdtiA2g$swQq5N+TA%2sSl~bh5e$o8P@C# zRi~>@zSkm>?5B1&n(@*+?!z(7{1i6FBbdezQ;izLt3?=}Aa~rdK6Pim*es|!r=WIA zbXcCn@1MXwvh1b`);6-xsw>YE)JdL}^P6 zn7n zqkqJB#>lr7KaSCy9~YT$wc$4f_}9umRJFbT)4p`uGU5>S+OXT&UaRrArT^<5rWfJs zo7Vd6@o0Iz{Fle0)%zM_+DB~qx<>SFQSBo(y~X@4m0q`ObF>3kpKZCHBKCZbOi0

1A8T|37Z8jb0le&_B7}{~x!FeV+3O)*_L!?6Jh{eYicfTk#Vexd7e@!>Nc3BoxED%Pxa+}8CTGFKZ;&I|H5=& z+JE5(O3k8W_LFR$*(G=xW?sr#S-S0+w{&O9&719ZXs&<5>l)9R;1iVHe(DgHy-UPQ`VKkwG}p^0neR-}FE$#vrHyG-2d zZ@s?$($-6ElJ$}eU)_31RQD69bXGUso`;_kLa!s${ftz17W$npxxOQ-35Y8?r}p~h z1E%fut?x_wx}V?wj`dK?ENYwAOFyoix}M+fe%0sqQ&D|+LG3y0ME^U_@2vLqQVal6 zcSpBg+P>b*Ro8!gy}3Pp?eY6h-tS=hi&@V$J@_G3L5_6)^h;RJIYiE82L2`3Z?OU7 zOR)E~^7lyfd$jEZ_bX!V-^Z+1#-^|9i;9j~?~F}vu^yb*YCRkIHMYDT&?>){>Fe%@ z&97zpk@JfwU#s(}^?rxLw3ycMItqJj*lit;w(Mo_1jF#vAmu;`bna3=7f4pV= zj9cf&f^($)kGy}Tb$QGyg-lWK3KYEVk8Mi#^2C&>jrOdsBszkAj2&js{`a4c0Pp*! z;^W3A3!g-M{P>W^m)HaWUVM1W{R8r$Fh7){0zWvU2!$yolo$a8o+xAyA?znIks4ln zsF8(_7zMWfwMU>m0__oKk3f3_+9S{&f%XWrN1#0d?Gb2?z_Aj6&GGOg&Seqf6g$Mb ztml+ZB!4w9#bGcNDErK#3*m4$T)Yg_zaypFayF(O;F0q|=cVq4-22@75{eV|C+;WL z@gw2IaGejj#=0*{DCR#(QWh?ZabM=%XXuoVQ$9{T01HLX-v4{I{>FmNU zsSw@3_P_QBSgC1dEe0qnD?px}8g!!F@ChmM1s#h89g0rpVoQG16#BBX zgS|L{j+@MCj-pf1tr({mub7~isFEbYdLh zMRY4#u-8Y^zoB@VVqeA66~C$YEyXhw&s021v7cgwVy0q$#Q}-~70-^s1o%tZjdBSe z<|pJzC?Wd20vFZL9vPn!Bf>JzC?q<$O_ik6#*`~|@$QlChDBK3*X zCsLot{E5t8>?u;8H1&zpCsLni=TH53&|nx;n)>8ZpGbWo^%GQHP-)7OraY1IM9L?s zyr9yQCrx=G<%yK2tJW|MCuVKPh@$BEDw?K5Ic(0BTYRb^GgOYpN>T2 zBM3f`@XD`%k@<86GM`RF6$3s_BACGo3WkyJ@#&HRYWkI4K^0Md@2 z(zHXGc8Ih?q#Yvd5NU@JHiKMYx=NgL^*AKj`DLA^Av|Gj!?{3EKs~i z@nXe7#gU4m6h|u-DUMMbt5~d9qBu@*yyAo?WVwU}PE6d6 z$o4>F`yjHt5E&05<8d93?V~CRX@@lJ5NU@%57^cDZDZg5APBdcN zwfVN(JWVIk4m>w)y+hA5;R(zHXQ9U|=zX@^KVMB2F#NIS$Z z4gP%PFHl?bZ8_z~LvDno6B8WSh6d&< zzd$jXrrt%->99+h`CY7hLD&&F<P^djYt zQH-XUJ~lcX`IDxf#mbj-rRksi=r{Zur|Ho&?TuHypgY^hL60=;PSA9s8|gwjv#p8B zCpr?ctxJ?9lD<@FBI(PNCX&8f=_{hpjku9^A#Oy*kLZZPXg#)@D^;Hu55I_RMW><# zoTPF@$`L6?q@1J!OF^?86IouO1)NL-pGdyYz^jx`BwuLY6y+1i7aCZmd}18ROLQS$ zq61j2>BKmco9I?#Tu3u6Vh80X&3e2VNdJf|ACcuFvV4*byaqJoh|HhpRAihb9ay1q zMEXIbAJddiWIjaZLu5XZ4!l<7h)fq6`b6eKWI2c|*K{ELBJ#W?I^(jf8OkS;PmEWj zU!>_5k#>j{a3&Gq$|zys7m>>6{Bg|^F^mao;2-MD__!; zroB1JpQ{*6)84%3bjXu-#bI1gzNACWrf*RGjZx@yVH}B~*)Pvmn#lf`=m3fy?2+bq zwLs;F)FaZ~Lgf=VP7pax2p{DWJ=h^lJBw7_ABE%#jq)s3K9PK(!M{oQHr6OjWL$*? zE>XT9^p+}3w<^TtpmLYl!fZ zNIjvkZgH>jiHtLm*MUUZlXTd>PvwZTD>U$a}H@`;ou(of+7U)FRRUs0OK{D}02$a*I7yd|<-{g#OM z34%{#e2C1C$owQ77z9ndKM|o91TZdtRQk_K?~I};|BljsiAL~AGan+akBRh?NWY0J z$Gbr0C#W?2B29fF{U*{MBK3*X|0|Gwyhnr`(v;g3Mbpl1(r7q8c zZey27IibOKD&Izz(nRJfG|;VlLFmOPO{6^{%T1K>09lWu**=I2Y621d#VaNfS#BVH z<5G}zk~F=ergw;AM>Y|1MDm3O4g<|{=P(`i zNVD>CmCj>2^oB>#v@=5K(b4E$Y!xYOaIrN;X@iTcu}T|UY!xeQaIsaQw86#JIHe6P zw#F-MaIrN(X@iTciAoz>Y+a(X!Nu04N*i2kU8c0b#n$CY8(eH%p|rup)|E;dTx?BJ z+Tdc#uQZYML}dLDdA<-?Pm6(!H<9T?rW4(YY*(aNpG3y}J4EOaSuaG&2_NTIK+}mX zrKvA`$lu0v)bC1_yItw;DgAw=?@)RbkmVp!?@s0aK;1}qFb037=|5He&tp(-+#x?A z{UI`bM4mU24s?K~Uqt#(WW0qBbZR=0=|qk*!biGG(`|GsZDX9$HpVM$V}jB)CMs=X zlF~MIP};_hO52#Mw2hsVwz0F)Hl`?TBVP}|c-YuQX&XIC+t^iU8@nlOV|S%(?4h)c z$0=4SYDsAH_O52#Gw2h}KZDYF9 zHuh24#&0NX<7rCU*jH&APgmN;Zz^r$x0JT=45e*6Q)wH|QrgCTO52#Bw2hfc+t^=e z8wV(D<3OctJX>iSH{jG`{StYe5qVw;ALrFGOh^B;S>?7U{jAc@EB&0(F9O-G5vlir z@?Tc^C8d9>^eaj?MkD&Mtx5}m-ljB>=RJ}A2$B7oq{IK;sho|kDlLe9>@}qYLI0jK z`n4U(e?12Opy_Wa|E(Cz(s&Z-50UXB$~=MTptFgHGm-ui8E@eOhiN*I=|uKx!bkcN z&6mjQb)ga8rOGG9L0)K-=iACB(w@-ZFH=5|^+e=2N#r<5fv{iVuZMugnAfz)448c06%Ye_?&eCpSc27X8R-z7qheCn?t4J4oXHIM97g({pU#o$*2Acq@hnf^#c2r6 z_`34nBtnjS>i>Z>kbLUDMH>3#Q$I)=__p%@NQ4~u)c+G{Aot{}~Z-Yqp& zc!KgzB0`RQ>Yq#+NIvy@lZHO|)c2Cce3Hm{F_H6HBIlb#&Oc89G9M!6muaM7k4U@e zq!S$0H;9n$LqtC0a~^vdY0Qh6?tmO=&ae9_pGf+2(vT-|eomxcL|#V_IsYZnKO)O< zCXo4^p?H>JKgC8}R}@4(MCM1Ne?*pZtI7$&E|KLWa(+!@e%n+|5PC%VOQgRQ{UuVKNO>ateG`ZT>kT6OeM{*-C>>P#ZKeOD z^dFVpsq~+f{)^J@DE*$&?<)OQrFSX)zS6su{!r-;lnyDqN9n&Q{gKiiEB$w+KUMk@ zr5`4uUl2rjiL6f|>yya%5E&mLAff=bgr(v&0Ga`cZh{Ufseh^+TVfy_rxY1$!8J4D)fjB+l_8;QvG z|CD}Q=_i!_jnYpl{gl${mENHA(@JktdXv(dm3~I)XO-Tf^m9r-Pefc^Q2IrsUsC#I zrC(7xLorjazv2MJfr@7ujzhbm?%W-AU;%u&o$%u^h$ zI6^UBu|V-+#fze8)T2$0RDPkN&`7uG(aImCC^X_}(_@rhq$o7>ZMsrE*}jNur$n|>BHQVBAlsXu($ptSeIoUV)F)D(XzR0`PXJ9jf=bg4 zY1$#u4v}_}+4{@b`%X+g-}q_m*Yv`3ouiOi44daY4;L5wp?lopJ` zdXdtCkSEd}k@kq(Z}n}J69m1CG$zB}QCy+vf=DNF{q<($3*x*b(yv>TF9`X7(t=1Q z(hnlH zAV1X^#yeF`5a~qvPh=cdY5HB!i2O)%J^BaA7gU;hq*`e^~Vd(JqLL$1jvG zi2Q!3v>?tWBJ=r`@&&;slK+VE1(jyL{shFy?G|)7mIyi(9g3D>Vw~GrLV0ZFAjUfk z#wl{M2lP zdPM3GsVC`*)Fa&)eh}#|k^U0tFOmKd6BSdjIfiuijs}lYehF#TB!yZH`1w!$tXAJMA#*|m1aEdpk8-_j0 z4gL|kf_{$a$agal@e~A~$a*ERo{28lBeLBSS--??iu9lKiLftr)xHCIq!}k7<3!|n zPvm)O0og8zJU@tCVTafq*q7-zuZi6pO9Zccc^PACdkMQ``pW2Wk32j7v1=avEg6Nk02cq6JJO;yfTy zpGbXTN9aj<$0b%W=y=pKk?n`*h8&UoGLiO)v`?h{R3hTqjo8(o2lYXk{R5Hb8Eus_g6dLmBnodka`yjHt z5NVg_fIT8NCuR^kxvhbU?s(?ovIOI51mheA;}sJW6BUybJ1BNkOjhiq*jX_}F;%gP zqDQf-VmHO^z(n;+FwxM=pEUC)c5oYHKBSosk@+M8SuVkjHCC$925YQtN((v-?NoFt zGC!s>KO)OVWPUwW-(Zb(qSC~8PmSeO+F*^9uC&1#tFO|6ut#(#I(yVuXK1=0{2?YM z*H{_K7ex7qZpB2!WW`j(ZJ^2vLZ3)GgOo3*H2Fi6FNm7}M7Lt1VzQzq&Shn(yr9x? zNGF}7bZ5}HDklg&k#a=J5h<6ia)RI!DMw6F?4;NQH#Z7ZUQlV5qFXU8(a3cI7O6bZ zjhi6Ec*R7;4$vdNt713cMAZ|79MK8?hzXjWsF5f=b6BAJU0RcTzf4k?mo*>Ip)QNIfF;h}0vdD%~A) z05r=d7;i9MFh$B<%pEKL*)dOrrcf17lgk=)+f=a$a*8qdLzau#sgP_ zrk{eSA0qXLtVd#kBF_`j9Z^sB0;wm6bRz4S$o5O5Jh7ui<&TILEZ}7|^yZ!I$ z5&^$!Xr>Dbn7uMx&&aW3@#4XmE(hDg;$>&!XwXBw4pUfv!q7pyzU(z9@oCG!km9)8OE<e_#@&I&;l2T(HK8@WZlN{7k`19i{rF&WpmBb1)7?cELMFIr zWw)ZU1C676t3!dtaYj4Pm=`SBlbfn`7p$Lu;?8DI|J1Pz;75F6BG z{V06Kk{A7`ydjeU4UEy9fWd*E8~O zFduuOrAXjCWBX{k0(mhSWU{mae{zI72F(La;<%_9%IZKO{eWpZBc;KQ!N~;+ID6?v zeIY&l`xjiVKQO*wrR;@=C1;7mNn)mV$gc;vSt#;e_>t>Jh~C)ZOJwh!!ml8D|G*m?f+YuXos8jx zkgs{)XFCrpa(FU#d%uggPhg=ot#oDmC9v)1!IFKsi2fTpjDjICoS=|6XK9BcOIo0z zBc%gI&>M_CCl6?d=CyV~_(;;ElI}sJhJqpeEYA5ew>s z%{FJed-lQ2B?$*8bHK=q41Gw84rB44Q5YpY?dcP2-qe+Oqy@GW1xu2fAvm;K>F{o) z^V6L;Z!UQ$@Wu3|REWTjJ;#*irKy_EKb{IjU*53SiLW2O@cUVL2m zyr=ju(2dWV_{8Be5TC@5{~RhV5Jlf32A(tUnSnDP=fGzyKD1}_0!@gp3tnHkD)7dO zs6vc&Aq47$AVQKd8WqaH4-tDglJ-(;+HWIiuf(QpjifckrZq*I273sO@JAr!3cbaiB+Ufcv%x>bcl7eMP z;eoPY+#a00Nj!^+(0@#1x79F?W8dY!2{d4aWsd5*nH<54I!#cx4(7B#DEdf>^Wdhg zmAwKD6QWMVov;Y2<3qH0DE0Yabqu$&;EC~JkI8=(TMZf)41_!ULl5_FM1-OT`-v!O z)BVB9_(0Q7f~6OFW*!%)Ped2uA7H#P^~-|rOfO3)J;9vAxk1EIPxNqEP{bfbKSt;} zWpxw*c2xc@+EJ`eNH9#J9I1#NRH{r3yzzIaK38O<{vly!kWjss;G}hj7GdtPz{%;| zS;6#!h{F}@yCDQurU!1njB}E+ zbHIMTYv;jc&*@VG+fE6V><=y4x6tzK3v5ddeTZ&$FHYgOP~i4UQS}hY-ibrZah^pA z`_uYMVHop7oZb7;;WeFY&IsvLxBW#=4-RcQyDIG@Ll`?ncD|95VQY7L0^CD}LR&tO zlQq=kTLCc_3T*qM=~Gc|pA+F=mbP#wdk94!ru-siF5qiEuwPCXR8m)Tdx32aVPI(v zG;~KiQTN+^7DU$`*!I)ld@J2L@cxCET6e?H2Z^r10SA4T_50)|U;Txj)Vv>B^8q4q zIh){=UtrcDnL##vJ4ZN-)jOk%Luw5s%pcO2JA~E+YX}^^E8S~?WkXnJlWdpT&M=5e zia>qSZ|No^yVLoG9>%rqEnG8_uZm=#{&&IjILw-wf&;CCO@aE?f_De%Uk(1S=v$Js z&m=V;+!RU5N~N3Oa)_fn)a~vBPg8>2E#+?s&Kgk53SfkCSf+eTz(*RvuU6 za+coTGHYn}4E94okAwSwHmkzS3mZ<5Sz^et~$M zg7O-*Xsu0qR(haSR0IL(h))P^>Wb-c*8`N^)D?5&u4guXIE3b>f4DMU%&$3w42+dP zMskF`U}^jsUsA}Q9cbvo-otoid}sG(|>9f>dOyohYr~1hxWy z2Wa_vqf2T=Ut?b~f8L%x9(|s}@5VPe&8{EvY~r;>%WI5=lX#86faFWp;+09D=}%Cm zz_zJU22NqORhTI(Tn=oT2KEW)K)}A%u-P&3+PP&HWdch>(<6pvL>ZbHF*GY;Xgz1b zEOF#&+%y0AuPg>p7eY;3ap+@Om^3!FD7&elQApp(vaSzdF{XiMY`F{K13cF)^q=Lq?nVFUp6hn`(>+zs`Fne2XZm}2W>@&TdwiAtR8RFVe@D-pM$g=r z{4USDM?CYM^w*#UGt8i~ao5JbZdysVDHeJj2 zc|A4tIA)y}t$&BnPZs@nXwi+nK3+#vhNyrNl%$~laXGK4h;jy#FPNGTZAyw1%YQ*rbSmcfgIGrHjbE^S56%hTjFyA3DestZ$0vzj1_2!How;S`m*YZvsQ z(g1PFqWglKJ_sUvYtt-wcKsdex33`AZ9xPJzTouY{4*stgo9nQ-ic>C762M9filhu z&h9Y;X6z08Nq3n9GF&ia9U-v zWlj4woD2qTpDf>#QwxJRdfk4xF^8!lhPqE~`fkmhP})Pc{_KZqf8ZIDS^Uw#;*a*F zZTv1JQD2QOu>&lw-;=g+ZJ=SaOpl9rQE=@VlIg+Hh3S7O%}ZZF*6j2eR4h`qdC{#I zp{6un6&moF((-Ze7Cu-qVb>>Pg5AfqR^#Ff7G)^OQv&BlYc2m(n%AWPWRwX(kFBxh z5E>b((U%%H?QCx(v$paGG>l<^r!SWR|B;6mrQce5ar#UY7F@fqJdDRxbMA5&{Rp35 z(Uo9s63#d?om=BW{~RpwqvSd=@uUmeD7_)D>bJp4pPHd>*W+`kn4yu})gaL|wqeA7 zq55%-YOjMRdMexrq7$NB3bGgm7kh(DUo!;IiHC?v0@-pG-g(t7-ib8(emucWd zFbd%3y%j9%F=b3Rh0!_*qFgDa6h}hj$2r}`UEBWZnfM|sU@>^(TF*qENN5J^U$t*D zA&v8l$-)F>OpXZ`TJspRwQQW&_^`4nq)7^$EC8fG>N|UK$4CYM_&; zJT@~s`)SeHPYkAGg%FOh;l34}aw%^u$kGkh5Fv3IBqpguV0#hn-Jyx|{#_cUt_aX4 zV*(A6WZ=V$_4dnoOUUjJcYd>7!-eR3;G>kHVF+ACt#lDT zomj=kX@Og$rCkveDKp}U!>W+;x><+-R+#EL2i*tv+#Fg0@*PYu>N|1S>HOfY6OIq8 zdOcX#HR`TcpkWBkA%78t(jCn^2jCX*`N3J0jt?tO7U7;0ZVvWKkJJ07s&O*2QL`Ra zX+sqo74BWTmM~M0re4m+shM`T*n0X6XR8=$w+dO)JAhWU53YA$d&J_LE9AKXvz#m8 zY}$>#yWzCRX)5BttfP$C*TLp06TKo& zmO~qUQ^q&S#Dq9t3`tdfMfJpsYcv-0Ww=G!N7i1qc@WXjIFq-J(W+o|1XleeSUNMX z{W{-F)Y}F45Q`LRQE|mS$obGa9%6j(oU#ojefL19KX1=c+SYhiN0j$;MA;=H3N^$* zZqkrC#l^%<_RyE%R6cC8FpCbR_1}2!4WlDxDVo{n(6(LdfVn_nCZpyg;mQE3F>2Of zs<3}}PJ>>WmBJghvU(DpHH7aiwc3P1S0eX8>`fRvN8t*_jD{-}BV%h5CLA1Fx1qig&>t~bJZAbJxs{X9EVpr?3fV2Tthq1A`x&=@ zC07UG0n8ZtmdPW~Z~@F0*$WrV>zy93f@Q8!ckmH6rhU9)B1Qj{{>$aoWUhD2U2oQN z&~t&0@c_MYH|dtKtpmGaK%qkio7acjAi&K&+%|ymh5HPO@WHrU5BIQfgF8b!^G{sx z?EL;_c;dAv>&kNpdf_QBffnSMnCdxw4moCH6YffSgPpnUqTbZJXF+eXo2P|=dLq4lFB%j2XB5bcS2#xV)M$4q&uZ!ZUiyYW> z(l7~2p@F5t!qS1I=iJ)->mpa&7}zX@V4_L&CxV3REn<~rs)VJh;K4Qcpj*OsrF>W5 zXevI4pv!p!dZz81C|rY$Mp>Xy^A(`6DQDB&2Y0T->iP80npdbo?t(CPnsB*yrvV0$ zV2oaa`^r|I~vrc53t>eVB5?d8Uqxh2+; zxN?b#Zo(QoyEgyjfmOf9wN9WRVz$6$h3yudqf^(wRT39Q;;2fYaM#~0Y*S3PI5vak{Ag`IGhTeXG;Ry}W5 zMG@wTO-AZ&+?rYS;?9u2cQ_rJ5tAe7S)7-OUEQmQ`i9DHj5ELC2x2bVr(y`=g@-Iv z1m)&!?_6Fp^ZIIsTr;D~v89)T`7}OPGl6TKjIb9BtcUqdG146%jYWno;LIk63mI5$ zMb1J0TDQ^*x|J4pE4?P& zU3qV_#(1*LmK)0rx3wV}Xt=$F%=g=rSw$H$mqGUW&y5Pj zl@Pii7R79EN|kHq^N&U59i}6X!Sk>3UhRf3Q4$y zDqDV180cyQuA1v33Ft&`nnb5NOQ@nY-(tnge`f4B*l->@fHSCF`Hfb4c(8tgJv`im z5}7Pv3h?~V-wX^-vF7NV(4R;Xz^>!gdxlX2KgNOTVEWy>dB>fAr9%$61v%>!gd`}p z3Au^6r8&8yh`B(vX;eSa27^#xpW!XGb!_?!H2mOY?zQmUjjb2D`>^515>eVhQ#q?E8BK>Yc$#%&4j%sFORRgRv6vEtK@(0Tc5J&F-8{E8~g= zM4y~!Ag4x8_P8giA1}RetKIdXjB0ijqg^set8I^)OR<`YM&mm8l%t1zrj{n#N8n}X_zjLkE=yZJ-xEtDDZ!9Y_1 zCg-Cmp~%1-Yy;!0}XTE zmpw5J^RSYIi`Ry^2sXCToQfMInDA^%<8FFVDV2Lu_B`Ue^D8=Iqo;AzxSE!lFiRw8 z1zaNG1d+jZF5HL?6xVcexmbD9zS0$ab`w^>8g9mz8NNWd4i_<~oInHaIy7AmpB@5&>6SgAXq+D*38lh? z$J;8^GPMbWizp(~;r}{O&f8jxFFNu@$B5M#uaYC_6fM_d8oI#z9BszU5 zL>ZqHs5#%xBA(iq0X590r}bSix4|JMG6NBM=A96eH)RfBGmy`}cjg^guzDjyQm4{mxBYckC~5?B})p{=oJe^!A0J4<2zO$uU>z zKX}B2o7_lPAL{hMBkqlFJ(ZSr&)S^>0u4V4-SdZ?1J;B#{$b+xycz)0W|LdzxqXYxrzW^9*}G&2xT! zn&-r!pm!kcPJA9r^GyFN%`@ZXw2g0g#(XQSe_C3ar}uSfX?W__9T%UFnAD+TM?L~f zB0i}DpOM1@qON!cUW0R?KR#=L<=K$zPxgN%_=LaAvR31nIj6&k_h#Z1JkG&A54u0> z{9x*<-Jb8-DRJMi`CL%DSM3ov79#LFIDtn}@rS2WQ{_OuPQka$k78S;cvi42{x#t9 z*;Ow-BF_W-rQ<_+^1S%ie^qM73r4j4zM$KZzxNRG_bETteumnKwa?d*prqmq)0jDR zOYmtcU*93@QP8-H5D^0IW*sS zGs~>uRpsUQtqUiftH!tAB?qXo_P_s<2=IK2{xf|`gd^u_gtQW)j(Ny)H~P;TP2e~y zhW5wMR%~PWvK{!!Gl(r=%L1}^{IFR3FkW^)&DdrsO(DK=f#ktC$s?SUkOAN_kmM zj>`6%I%`IGzsYmTt7ep!RZQ-8O}VeEssd!cse}5TQ`S!j3iO*&SvhNVS$XAIIIuG~ z8vUGcv#-i4GTKM0XXklTdMM+t$+OFCUHW`f`o+Gg88py8V&QY@7f&e2=~q}WvwB{? zl3~RqXHB&ucJ%r=d2`BV`U+>x6DM*;7w48&f;#WKVpK|5@zlvx_s`Jh(E1y1Y zc6pVzVy3UWYUbqW-twxdSyiWWkg7V2-sG~f&!sn_+$UKgv*PKqd~N6RFO<(Nk(6)3 z*r}(^3_s#N-D<09K5KHBcW#Ams<*Og)>YHXXLu!sE$2VR-jvBR?fR7pKLa6#O^Ib&@&&WU zqZyR3U0gkR`s{L6OBC1|E_BqcxcEPz7RcH#sQR$Ix?Q`qrV^qi;&nBE(J|{~5 z-(3#zBYXPn$x%M&srPS%aWk*Q$uiT*8C!mJ4mtwg=&Pn#eP&x_Q)ZQwdoPe4A>4!8 zGFCWR5l+d}s`ANY{m}zOcm@42OwSI};U28OS3biEQ|!;IR{faa49>`$X!mSZAv)7y zA6oLrSu-nqv#P9-$Ey>HZGA0%0WEbX*os>5!cl7Y# z1$l+JMY&dH8{8bLzs)Ty7?sz5pfzApW^u`+{M?f9)<8Kd=Hc0Lm_0r>uOu(0#5!kE zK|#)>VdIJ~vCfsl;*#u=amCi4Nx8X`Mvfj;P%?U~HJF4ZWM)h%7&~e7xDvn^D>IW+ z!6-xYpOjyKEXU?$=U!rEn*58#j?S5sH+C${WK8NmDi;n-$}dC_^muG;PIeJ|S2AZb z6yUm&!wYgt;Js1>qe=?Z%BbOmjDsW;=3J}>a&wAHa#g!!AdL+%aJFiVFC2y9(}Lu3 zt{fJZlng`R$t}60C~pAD&f}cXg~cUfEfn5RbP{DJVG58jiFs$2Qk=sRM#u-Rmpho_*v5@S9$X%_RF5w zZ)EmFD@V@#qPbOigtMg0ZoGq)aaLvqYd>ab=!-kVNOKTlzdsyv z01liosKJU1WkZKr*6?}#hgVe1n2Sl6)v|9@=Sr$)mfMcn-KI6N+E;FA%B&ffR9Ap5 zK2y@IlHBafL70`q7T=pa(aYjv@P?O?I+9a%mWn(nteCJTIhF(}Gn}oE{aca)T97Se zBcj=GC@e_gq83zkM30HtEfupPd1MdhpBWxKtZ_4ESL2eR%4d-uwpf&1c;>JXmO!R} zA@b$8K)!R$w@JQOh>`L=%6v}|I48pzh30kUNQE;mDzb|6a9** z>OrA3@Vx%#^*;mS@RV!IG4t ze$cQA-`L4>kG8Q$g$=U`r~;v|cv%&_Eg_MEfN$(`(*{BIrX+cRsA zKzjt*BhVfJYj3mpYY)X&6M?TweBWztCtpniIYz90UE1j}63%uv+9U8k5rIJmkFEJb z#!>pS;lSbjuRKEf|3oFX7xGJsK+*ogx3@1Xqjp2>5jch-aIB0IJ&$sH_@W_9J<9w7 zM;LFij*$LE{cYF(--xr5`!g=Q-``>;Jhn+Me^jF9NIE=e1vIu-n&TzSMBGGS zkvO)o@oO?~YQGL?yPeHk&^F)Z+VAb_1cto3)NTHlPTl^%Bz!2>4IjSK?<{=yEoO3j+&mTbXP^fvHZujdMy97I)9HbXYKR*7<22GaVGIR&3Id``vZolV`Xh;my)#|hxm5Nw+qD6O>TT|Y_t;kTbty&^EO&Y*=8kXS*iF=w7%J7 zfpbQamFTs;h41dxJ@~e)HTcFGUh&=EipO`V3Jt1P$E zdSVs*=^>o@Ci=4#9ETM|j*ZqIw=wlE@Fd0Bwas#Ovc3zO`>hpX`DT1Cv~H1O{Ax{N zKPzu5OYwkwPuv=Z!e6r0ijTLh*-B5QZnfMA)&@C#daLDfTN~wg(^e}k)!GDk%i0Wi z%X((3m5^#Z3mK>7Z*(GIaU;5Fe7oIA)=iC8TyN_R9H-#ha=WYzZ!m@%-jEo+5$8fK zZ{X(ztmEsg#AYi6->FtAzB^cclq+a0#&@%IlYH0Udy}<9j+dg04l9KC_p&}}WZ6Gz zq|J{S<1tqJtO?CJ zCC#$-!m<|}HzKnST28C`);QSjEvfq&X`u@^7QQ)JbrhewRMSe8*Y;#CM9dAKzWAm+@^`P55rMo{~C!NxuJ2_>NauF2}2^Yy0n2q&TeC z@a?u%Z{;XxAqM>BmjmC>kf=Bs>7x@RINoyMyO-sb<2X6)jPFz{MdFmw=t7xNYKg&1swc7BPrRixkLH%w%5k0?qroP=Z6!5w zV2{Ufu9bjehn0+D%jzWj4mkeQ>L~ojVeOyRbNGJH+Jx`7tCyvYwUW=kXn~ zxB8lf19A9dU zmE&R@7g;6v9&T+%ULC9*`0i%?9^Z*pBfjsqcH(=H^`spC3Ey7pL$T~|C8YEox~SQ% zKjJ>jjXuTaBYfV+hjXt#;qwQ4xX-HzpI7jC9-qzltjFhZe144&*F7J?=g0W`2%jI| z6Ky;CxVf42baa0kq48yZqCN0$dLCWq?vB>*O{ZqPe)9n9o{P}Z@b|qjJq3H6o*@{m z6m{(H_)C-gq=U`dvi|r9&QScFKQWOB{)4A<;GEsM?ePwrD=`mw4>x)ED}Cp65f6^O zm)*X#VL{I%GD>@IO`?AA^iz_lpLKn~32o_bSpSH#H`8B#+<7u^!^az(CsFUV=bW6k zmp=T8lXKwU3%_%6-p%}u2U@Rv?3DR;Rwozd-m5cCb9E=)In>4LjI6p#TwRHuT<7AL z7JR49)rAN@InMbPCZK0WegmeXPlMg7e(UZCwCelEaXic#etR6RTY|pN(9c;zsoCkYCnErk1ORd?!K5ckKrWQr_G4TLcr8D~{v7D>l8JWa# zX1#Vzl9cn=#Yrru|FKm`Ea!%^9!rvPB7Q9AhK_wYu$&tf-q3;N^j`Z)2bRx--+Q*G^Aidg7FsDKwhgj~T)`?kQ9yC8 zq7I8nQJBF!7Ikp1#f5Q=+7wWbj2Z?+=2of(I3m9vriu&lw(lkKrDx; z=FU_shvJp`L0FFZu$Km7IXL4dL$Dn7`_B)>a_DY~O2cy4p6@?gD94qtdMt-x;td8Y zN4>Q+UGA?!|Hm}q!##Af*l%@Kl^)W$C!ba2g5*!VqM8EIHt2m-F-YvUr6BE@=Tth7 zyz@6zGDur`qu`-smFrkRTgytNL$_=YP_%Ft{rN8 z*TnujAFml7OviFzont%jJHCvQ%Y)a7;vWVJQcB0?+bbR7F&}dw;63mi^hOBSmg6BT zfPg#)!2|)>>mb|&0qYO*Tn+*2G!H^41kBF_2#X+K-QNIV6$ES#EYk`I*hW}ywGgn~ zW#(#G?`fNLRsBAE$8vEk*N40Z(gZGWvL0}maZ(SSu4hSOze(q;Ne|b0C?Yg40Uu-%bd&F5Okw_v{e39hs_mAe-1Z>M2 zK-NRxFO5)N57G*Od;4+W+2Qef^Ec{gAXh-(6NiRie=AObBlLrAX(@^D9s2=akTVc%3jN^2cL(=^@7NFco4XH3`$9i( z9SCszY8kQF?Nmsq<{CM&To`ujFe=#{80i%^`f`b(nljNxtq# zXRg2+$6s5T;JevdUIJV;YP8e@teW!zKT;B=fIIJmf{KfShJ}kJt!}T7n?{IFw z^<6GVT;JhbgyYRjjED7yFa}$jg!dSnw{WcHb#v$#j4yg1R4D(heW5sCDo!2^>uxhhe?h8cbo>9*SR_{JTBEO&}Fr28Ne{;EdVfWgz)`^1~N_#5unl zq@qV@cm)XV`kL@ckhsQM3ext~-QiUr6}rd5%^y_aSk2(EUp<}Q%@-$rUSfV5pK&};>X@9o<_;9BEu zko;@QHM>CCly|~j41Dr-X&wf_-T4IU+d}&B=QWRm#5Ly=AQe-ZHTytt+rQO33zGlH zsc8U->y<+w6|_@i# zt0J)f;CfbA+w9*RA@n17-%Z1KSOZ}{!ud}Rl6SR4bOmV}@oNP3bHyrkWGo2oWo@Le zUV(jyZWzCw6W)utH>U~j$$a?yNa49Ftct|72dA&w=ePrz3@OJo4{Ip&a(GD4`t5-J=FzdTIYC;ko#0W)zl(JChrQYbbt5 zQ52TTwsb)hmP^raa}<_~`XX7=jgYdcFLM}%M z&%=bsPS?OS&hPkK@Y5!C>H<>naaku}9Qf+-PBD1h`i=O$pL)KNFdp1=wG-A8z7q)b zR5Q9W))P0XqO&kQDDUgs1FmiVc%w7c6Tj`}&cZm+r0gQpS8UfVSYO;sT^C{8=smRy z)*D}6*+rttaZ`e~SU6kPNAYqX;=zIw7&Xor!jwAc=cS9fc%9c*{JrN!}ypY*Gi1F2}z z#*PDFyO)a{kJta47K`II*K2-k9>zbqCN>}C-WOwqackM>*ol~)-94@V<6q2-D+H;y zk{c(CV`GcrCSm-so8u;f#C6ydl+)jjn+j49e>rX%Uc-Bv5v1+w)Na%9df~)wGw>SL z_eFSJc}F)K@AzkTbejoMk?~wNVcZ*YzT0e!w{`A52jlaHb{EFIs2jT9fY(ziy8i_P zXI;@9$3a`%eck7Qw^jgPMc ziTjvKL2xHc@l_!Cp62*vAZ>Hk#+yMZ9^DpyGYIb6hvTb3^8KEPufgjdK98@(>!Cly zTRb=JUyTR_@w$xc{-@h|2lti)@+CSes`A6u8O8Uz=5Pr@3!e($w}wIF!o z*9kmG+dbzJZU?FO!Du&nQjCaX^u9PqH2a z|8PUH0k4xkOvZ6QF{D$!3=p<|jqI0+*Vo+HFAD_!`V;-KF}~Bk`U&H}G(`%I1N@1k z6dVT>C96_!9Iy@Cn}Xv2_w-vSI1X?})cvmk$^Tp1AIAaiRjxmd1Bz`2`g3^Q^kRP; z2YBr}{c#+?{SX`nY>SEp2;;yq>i`@F`0Q5);5eXo>B|8VL2zM%2I4rtMK2nN;{ZS1 zGEf)?;`a;`#({@kABf`szwrD(VH_Bom@13||GF+!7zZ+LNX2o08*^XkbdWaNkyIQ9 z_`AMOEdr_Nq#9HVf}7fP&`glF=HY{8q5Pt9kT4EB{=gs{2W;nB2jMuN&|esY;{aD3 zIvB?R+{?jnfPZEB;CUbwF+S_VA;LItd#|AtaLpYXJQT+PK6KPjVH}uP zI26YL?!CoBaU8H2?;MKbfMUn4p*RlkJq`~Q#({^Lhu)0Wx_=GDaezCOG^_@%2c-?G z1*v#;@-Q3+Y_+R~EywG>Zybi>06%)~FdPSLYyLhA#{q@ytzkG0a8a>oI1cbrlGAR* z_+~C`4aUbA({97~S@Y9yT(Iq~O5-s;acdfm3%17&q^$#~Xn8SB7$0E&OBf%@|Cxs4 z1DBIG9LEQKRnhRfK-ykjFdWARZrts|H{$i1j}G62*Vnx|9LEQK%lpG|e6W4+%75GkMZ|BWq1s)yT5689Hip< zj}3b;{=x4JPk`jV`q}Ul#xLlaz89}yFJK=??wNV%`|b-Hp8vy&wy0aZccv| z<(lK^2SISJeU{z;l8;QuIE3-r$7ei;@gGgkcpl?pOEM0Fw9PbU{0*dH_u7o3AaH-; z1-xc_Wd9WI<)R9{PetMvc#lGf?=x|D4ev1tAaI?J;~lQ!bs%t^J{Tmf!_z_HI(sBY zTt^Gz0IZX79KiK32NKuAC~+N&;{mSUki+>J@2}{a)2$~6oTq!CbUxkXrzS zyX|VXB$RiJ?%oF^&c`|sI1l$lnfP({WRN)T_5;Zs7~UfVCCs-tzT!MP0EBJa@g4&~ z;=G!Q@mu5K2Vp$St5_bKPlsSU%%3>E;=DNw<6+)R18J+e6p!O8&X;r_-6)Va&y7Y2^Vb-Zv;N*I z8s*JZy|o~1SKk)rtusFg^OEA0iAh3zO*=2lM|}6hK3HFh2S@k8`r-{A3;UEfujugl z#?Zc4PdFb4^#gm=STDF&iS?rRbjLs}H`mub5X)_A**6HwjpHAdms>r4FqW5pYujKf zuVUW7Ay{5+Z_N;)eAjjwDwJ!}oS|4Q?vp2mVtH`+`#^U<3uh9Zg}|c2_SJ?C;*A$z$B3PyiWtc&CSslgT&|idXToCoAmQQDy~g5 zlz_nJwj3n?@exB6NLwFOI*xaWB~#OH1Ht|6fpi>~c;%^d9FJ_1GcvYgJUl?~n0vKt0b7?xW!SxLbNDaNiW4Nmybk za8DHPA?%XF-e|n^9rr%v@3^mt`ly3@mhyL8Gs`--huKADVV@HF3hLv2rO>X(!dQiU zQrwZpFWw(~e&#~J{9s$&2m#AD9>M|$ST+uV2?CboItVvG2!()ciR}^wArC?+gm4Jh z){7u$Alv|96@&-~b0DmMfMvnZGzkXWgnC7_J7rH`XzA>q+=c9I`(0ZSoi!>=aL@+iEUz=*S+2U z1#2mMrmzihU2s20Y+KvPQn&w$>vn4N4v53P(9vf@^(D9e%YHD??f*J^XoB1S6+iP9 zxBqLy)&{r#>%Act-2Shj@z=TiU&nuW-tGU2as2G|f8kys_9yH&Cl_vY`@i)2e{%c3 zVtSRh{a?FhpLP4c=ID32{a@Boi{1V&-8&Aq{|on`@cGGs(D09*@Z^d9FH`YXZvU4q zyV33c(jPqO_J1{)Qr-S9-G?8#{a@V9cisLk+zUv9dt%$0wr9EhU-<4l6ymV$@x2)5 zz3!-U;~}^I%k;Xj-T(E-qwW5$)ce}~UspeG_kSfVNlAoz2>k%o>}V7F0j_^>p2BAq z*LFQYVn48f?=t};_5*&**wL65eD+m6%2ho-*dNSC)hkL+QzgFTrLKxoi1E=ci&DDw zQes_LTOYIQzg4S3LanWj%im7%b}j5`HEWci5$Z!xsfzBK5H^)yKbvvG9uZ)a~}RJ@zZBPOV&OJ3h&cU7)dLew4F?jK4w zT4xUdPM})1+Eada%|r0&9{a7}8+Dn^UhA3<#v3~wG(9_C8+WuN130I6lV|1$k=hzD zQn={-FKC4JjNmOVyXM(b*1FcUWS(-Zx4UliyT4?Nd*oSYhG?Fk7~zkCTOFKSS>0~ ztv&Y3&?JksF~`Mx$_)VxaAIdCPBa6NAqcg&<_Zn%n0xF|W3gkd#Toj9YhKDaxnkRD z*Y}?%UtFoZqy6G?ZC(3?V6OJg_K3FI6xyD~(7F6$KAFIpbLYtGV!hp@v9>B}-*xg~ zDAi7(4z}74hiI***4bTErbwat)mmFQr=$9ctQtH=q+3( zN|y&>_IKTVW#xYpG<*J~p`aX|e(55YTDMq>BJ?d#^7*dc<-ZQ9-=_lNBZ zU#)UUAmem+i&3 zLC=GJ&U0b6D%L3Z5csP&JN4?hX(ssHkqb*~X{p$IY$J&0%Y~8*NhL2(; zWuv`h+QbjqGkVpODC82`{YCp>WoV-UGSse&vF7Xl2bsAF#e$OXZLzVj#eLfB#nHp9 zt?QlkJe}Ctgj(iTXcL=^HP|Opu9|cyD)VA7J0Z<*VjnWjb4*TAx+b?|O>#|Y$-2&UT}xJ>tFUEl*wrh)ADFy< z(!T5V79P_^b>{Sr$;HaH7Kpz5+og*TV@|S+R@F`8^pTzFGRM?qT~n8RZQY2mt6{Oe za9wQ#Prul5A#}Q9`r)vjg-je1vi6-%*6M|R@RLhQ#byay4-8)^2S0{yX&@YTxQ+)th(Iny1WtkkO+5ti)*rL zlIuEGVe+Yn3z~0!<0qVo_!;H38`f=Ee=5Sc2fn9&FQ%>dUQ9D%+V^5w>Be=N*4y_8 z>>TmCz)$9z`QP}r_>cJt{%1aekKv!{@?j2k4yHk^JMMF6R%AjCY=Sc)auUL;23+C;G#3!QsqW?^>VSw7zNG#g-jr zEm$yj-m_=NMfl=cw_$xtO|5E2x#|3#J$v|XHZR(=cw_l_7(GVBnMzXBFy=>{b3C^< zRKu%|#h(1VSb1R4{>A&swUNsmyk~61{+sqKf!JinVb5r{a=mA4yYdmwXj%DSsH0(T zc)LZnI?M%*Tb;0+5ayc@=ZR!3{K^$p7Ti1G12i#8rAn=g3=?DEH;wRy4!=0ye~W-! z1vUQoAUyPT_~|1Er6|^+fK;WNs^%2x_EhE1u}Vl)F;YL(Vyc>v`mB%|!bp8bjch0* z^=TERhOtuNmjV&0e4=a|ybwd#1hEbU+{LeKVyY5sC_>Z`A#v()usc!)J0DZvZ>gd} zQKHbhF8grd zr#m&!G54^tkF`}>d(tVa4PnIyt2xWfDogd#uGP@A-JCEf%yrB?u`|r55mf5tt_CVx z0TVskrt`&%si`%pE}d0fvQ=FQRbA$)x-3(5S+DAHAKumuQ#2aV2)9)5VV0W}mTC^B z=~^wWL2J{UJj~5#A5E*BuA42@Kl7&cD3uWPDL=(G>REnNdlcqbZK-~TAK)E_<=|oE zCmWFTo|a2C$2HqE%QdqxqEXQp+NiQ5b++`m_A<_Pw z*iCU8yS2xLWB0!-7V=wFvs#-NrR}z~`E>3{owc>xo)-a0bM1L!oy`Ze-IIj6_;!L$ zm8(3+0?c$8?0(p*!ACqSyqLqV)o;O?%Np0Dp)*4T2_VI^Ef9&J66F^H9yXjEiCP0 z9!&Wi);uwPP0>J~i`jo*`Tkq>tvI+cbmjJSmh}pJpKD#|bgV41n9Y_|q5KlKw2Mm5 zuG}W7Y_P0SIV`10^HekmD?2{lVM)1qWTlWFxOQ0Lj;xFn5;>=36}p!!UDG-knCA|vROSOqB zEjMWzpL3MKtA?XA<0?cnKPRO)D*MC6hW=2?IEw+ zH+E`i&wA`2PZBztYpGBOIonJ1r_?8S<*|DXIhH~Rmbwch=lf$J7v5zC+q&msq+5hm zIx3ItjN{H>?4gk6PJB2<9gh21QV@~*w(@lMH4ho7}3KC$DH^pX`Xzht%G zxM*z+spav@*${ZW!!JVg8Gq%o&?GGxS8Jab?)%!NlkfPWa3e|YNw(fO(K5dJgF*QC znXA>{+x^RSGi)?)j@2G>KdeWRPb8}nQxvM+WeQbdF@!O&ANZ?66~6+$e+J8v_Nn`XoYYJ!f6PYE{8Ml{Rap?LO2WI9E6`B zoQL3q@Gl5IL-+*(-5*|7+E!lK7JwPcK6)O;xSNC>o` z)PC;n;cm!A`3bNrhG#=kb1Z7_R>IBPT(`xJ#rQao-KtIZTuAh5ahF=!up@Qm@xs+n zFM7N)G{ic4@$WFfC~9Mb9%5~c7h5nv6g@@JOB80%#HO{jM!^&htqU_(te6xhikRAZ z@k>`x;Pfr(brT~xy8TvEkxU@uI&N)Uh5J6*#3Q)}mD>0V$#q@k)c$80!% z^;{bm*GR^Ha_)hx+@$UHtJb7#_A5ULiIJX($(zeIE!w#F+3*(EQh7hQN13A>T9I4a zct)5}c;`?3?Kq9Kw4Fb;tK2vcWA*k+D0JT?z#eqB17-Uc?OW_Q^W;@$B@@trrSk5w+|sc8x#rgB*VJFNw5<(Wk=X+8 z)W0`JHbymWDcZKS#kIw?$+A(|yrp?V^WNmmGd2}%EY?MhX^eDC39&fUcQ~9!CaRjF zTG|fG*k81-Snfwx9aBVG!!JG+7X4b-x1m!oMtw(}a|#R%N_(l=JjP!7u6e|HoMx`T zR^IRDQsS?i&20UBE9~WYPc!F3u6j%}TVaF2nXFfb3yWLaWxfpSUwx+ttkk?nCl8A+ z_@Z&bT6gW2w}rwEHa1NgJpS{=c7k2ye>;;cr3y=#!m>!Ai%e^ba!i!VGey-L>6j>H z|5D3umtCcINsdZQF<)aRq7~+5_62ar> zT61DoEvK%lUE^4DY^TzwwyaUYox~1hPZvgk)=TaI=Daw-c#IgZj+K;z$ZtPwK9jsp zSP<)4FF973`(tz-?>y5V24EbVwptFV_k~-QD>vP;aYc)3rDc`+MDj5&re8Zl6G|kM zw}h3aPbhpnm<%37sznL=q+zaI9w`t^|4HLojQ4~I1jyl2?qJ)<>B z`1&o3hNqzApyw!^YvTmR2VNClbwW;_O*+_T`?_uG_h85E@r*LzoLQNS5#S0Ne&y`7 zR}Y5r-@x3UkX}?ARi#iP|ca4fan?##VQiTPC| z*D73hTCY5LYv>-wy8QL#OUc?^tKqHXH&aZUDLf_I{L5Mmyzs7C8!r3}gXDu9CF8;Y z)(GxNzFA(+CR@66vP3H^y*pVFwH8e$OGIx=_fD1`7p3estEAj2<=l$zU(FFxyv93T ziVcxtaTV5vz59x`^W!Iy&rdalpYLN8~c9UKLpTy*k$`UzOgiU0MnC#MJTVYy`gjQ?L$ z1FG(CtKuIK3askANtE&5N!L#bQvRb#XcglV56DsCwe0`zvc~J$ONn)1ZI%50^X2tg z$b2jM|0A5ryEV!;A{6JMl)rUWC3I04bgF{Bs+*HlkMvVLpQ5_lUp;$(+B8sIk*cm9 zq<(X-vRAfp(uk1poN}H~xpcZR`b%ZEua#>~D>t4|Dt?5cQL}}y%fol7f~ZqA$F(rv z2qytTW@{6tL8P{KS4{Hq)T%{K?I_7pJ67=2UUS7U20gXW8$lnR;>9rkimuvGc%Pn| z+P$xM9o67am#S_Nlz`|$HG%`l96WY&FJLQ<5n*gYYjvbML)+mtH}&RYxtHuF6YY1fhy&Pw-&a}6Q0nqofgZS$&A@z}@^&toG){qFA=A|4x&tEK}RR2@DuRH{QM z1JI(5p-x!XK{>!xoXczY2>fnV7xDjgj22H8oUkT^*muTQlhpQ|1C2ecNs(CQwwB+o ztTwIs;nKxp+6dkluZ!r0m19lnq>aGCbMT^@6zXi;0<)oXF5w95Y=u85xoL%O;<<$L zxaAkNTiCn|A10nlID>Ja9}9nv3x7Wl&n4Wijk+q`r~O<)=q|5w39oveOL)@zT*8yo zxrB%U>X1Q1fq07GN%6e|C;s-M3;_^SZqxRfM4wCWs)l;;pvIHh-c?X7+QfeNH{q|2 ziBJdOPwG|pw>d;eDii)5lxo2HTte73_qhZ$eJmcq{DLw;5_?7=Mp?hrcFH5 zo>BL?1W<6FOYl&}*nsB}I?7Ck=MrQ?crM}j|Ju2P4zeSiOE}_pF5!Qn%Q^hY{~nj~ z*;4*^DZd;1&VG*Qv(7!|oO^@~u;jh#>ef498)cm~;vM(@T54d!=gswRI^SH6+dfW@ z@Be`p8^+&AJcE>^vj1vQt0F(wZGpcB_t<}fBX}ovUjM^R4LA13ouhx)8DSh@O;Xz1 zc7}5OU@HYTKg=-9ce4Ku)7c(ju(u|KX(Rp$BRcFzpl%3^?5e1}Cw|-+`oqphZlEwl z#0pbHlraHJqngJ|pn#l!z5q3E5%&?|OkGm`Wr|6OF>5VbE<>ti%LU=@S@&POAL!9=~5c4!^QfK?GZCD9M;Pg~dv~bbIzRc9Ay<9xAlHd@b zbZe*zIH43O)Cl}hLp>y~QLYVXUw^^!5w>#LS7V-6kQUyaCM+~PHPw&??~CpJ|J1!< z{{{cQu0#L7cdD=d-#gXU|L>jZ>;Lyo_4WVzq^i;XuWR@JtK_o{oZJ7;^6Yo<^6Yoy zw{LOvccr-cxsqLjT&b>st^ti<;IdXXDg~Eyyr;`LBGJ9I>fy3>$A&vC4X?qf$a193 z%Xh8P_Wt~F6&xqj#@tOiu;Y&6D~}Ew*ved;^0&s&=5THNYQ}*@Sn+&V5 zd%=ON{K(NC9N7I^vQk_rEm{3s{aUh;UCH3Uj)e^jVWSWo*kO7lIItgSRO&-Qn&F_S zJ`5b#4}$|cOxx=$+kxGyk2djfZQ@`5fCD=}Ocf2TX3>G2FF3ICg*|tOcI2mcIIyGV z3J&b(a>0Qez2v~S{p0uL9?T2P6L(=XFXL93Bd?4D2X?;fz!sFA%@ZBin#-1am4owk zU~}NW&T~7kxws>FZU=TgyxV{S+vgskdF>ADd<8hL^8+}r1?S?H|FLrs+ed$Dn(SlT z!uB0{`53pd_0Bo@iNx(L!}j!VKc?s||B%_bS>Bzl?chGOoamAY=&byMJ~B8R1Mlnq zSAAsg>{(k?wZD56z|&v0OWW%o;4*7ephuv2Q}h0!jX&pZR5fma1BuQ1iZ%|<-KcBc zCQn_RVe0AvQ&+TQ>j!*i%hrc@jb&>N^pUMOEw0VY2jH~_PvF4j0G|BOZa*iU-O+Bh zc0DYd-Rb(as_R*mR-@7;tF+gswAZV&7CbRycUs1%EY~Q6oe1yE^9gVt@lcJFC>-4x zW4Y#M%LJu=8aRC*?NiqT9{gzXS);{x;73e()-plO&+titqdH^MmTTUzObFq#i8RRC z)0PRLF!g!gQsN*j48}J&zqD=mcKuev=JZV&8#7y6Bk+7fwj=x4E(5$0#7;S=e|ESw z_7_VQo^R0O`G(oCL}$(GMIhO`35oNK>GfSeVKLH!uf^~TFqt1V`#QYyH7aZAlXXZY}k~(F#}zZBjv5FSf?YC z?TXAKU6F?U>H9J~2QS(cInv7&IZ|>(j+9)H*#|~ElcVje-#+r-NUxpeWL0nQv-i3M zeCi`1M1lW*CIs~PzX0Jy2rof+8Nw?NUWM=)1RI3cAv8ib1_AZnfbb@Sw;=oj!f^<1 zLwE-Qrpw`7`2HS*_aS@$;X?>b5I%y?4B-TXk0E>l;Zq3oIfS|{gX^M)IEILxX*k0v zyfAMYx_#IR_`SU3nf|-rnbxeaWU4H>LYUNF z+`Si0D~R0;PAG_9Ea`Y!LHzD8w4YWG?&QWjduz9JM>=-&U@Lb0{;&j?DhW-IoRFHJK4b=QQ%$$dO6tL zis8cVtlVmD2lxL?2fN$2$|*V6-7#+ago9nL^6^B6`+1___~Tk7tXu_mbOM|LCEU@z z{#-oRD0y@B`@{8nLmKzf*x%tja6)o>wTFXO zd$>a%>(YC9wPCVw>0v6uv~KV`fmeID;MGkDmQ4|A}WGceq>=VZAR@na|W7 zz%L#u_{Ev7?Sd1##)4~mY=NUdbZr;>H(lHLgln4Bvgn|+<(el`SW_&MP`sBkhK&x4AmFXhW$XEeY<4^Du}5#x`*N-U5^9DDA6 z>=7Ro&?By#s8CK&D6gHa8Uv2|Q3~Z)rE;|5^$76Ut6mQsm!xVNmjsUT=I4aDr16m8 zn2G(R@j2;Bv-`^-p)dix>n$#<1$fn5TY42dJmQ;Y?sJmwIa%9t7QAu!IN$RH=X?HI zaK86^xufLvlZX@iP9lolbleOIahk($_r~oymy@ETq{#Lpd@@CMzBq+}J74?~(4DVj zxbwq&-TCc~d-3H;t?jx?ex&@J{G$8*7E1#sRwFn=lJV%}M2`Z42OoWfg3FKc^S8M2 zCI9|3*rDm&)!)hA#~y@(Kb_@t{WJd08jxy0F)=rHlrDAV0!vk`MVFbDk(NHpU=gki z>4U@w_{W+4RQj_D{_F*RJ_zZ5R>7ZDkoIR4{8ZW=@$>VwQ{>(q~N>S6x<8R9kIX=uu@pCCfA} zt8Bl!M}GCWKrY2fN;jkzS1c{7E-0xgtt_kdtj?U=ag{YCP*8&*x5Qj)sV);L)T1HV zHPR)G+{$H8k)%qdq*7d6v3N09s%Xzo`+c$`rGi_GCDkQMYw|s6xm_#6tu>*#3@e(t zm2A&gU1lz+4v;D1vWlu&vH0$uh<(tIo;#y#QSLH$5u3K)CPU`pvf5b{)wPzA%Bdwj zozF{i1Sl3&tP-qx-7r04%F2nA%NCSWLjPT6sa{xCTwStoNm;caeacGsy1cBqrYv`S zzHwx6IW%zT_@d&%sYUa%r>va1th6jY-#E1>eSS_c6kE7fqx*^lD}eMc}dk`Xrc;_=9X15 zP^GYHVRhM3$TaA*H=~zIUYVzgPq74RtYWzn*_roGF^q86mE86nHoU*OXY0%LLftjH z6h@xfGO0%yYlX+pt9%4Sv>&BKmP@XWAj{>e&M23!njxri`BHSb{IrO2jm#CFm2~I^ zL6wXG$g)w2!IX~TsPd6|LKs5xIrwx#KN0;(g`5EXNws z#nk+&k_DAz`Q<)ijv-5;gK89CWwJqhm4ayuUxuh7zntcEP!;}3hKzAFE2|dHURJ%N zu(oVzhognJDp^Qxm0*h4PE205%p9bBR1IKXxLXiUbGv;kKUKl)8hFo+HH3R~Sj)ma z1P!@MW)~J)s>-T!ippy9a&e}F&ghe7&_kjyl~=FKzsWy2N9@MqEVavoWn@upsrOy- z%9buGHDnjnmQ>dY-^Hgg-#9{g{K~!VDynA{)k1lZl(an-E7^stTM|kmCgPG}aaBp> z%qnxGWpQDZ=Q?X-?&OJi#Tgm;OhcCZtzb5+G0JKKs~MNw;=3R#8aHl)AtT!`VqDD< zp=NW1iCn4^-#IFMgke6~o{tQS!X5U&5xKtVWH0nrqn`x1m0=R}y{{ny>TEo$H_L0Q z%4%x7Rv47J0n~GsRn=CP)OasP2<2?hEwJFqroAT-YC;x@N?`R|Qd_YMUPl6`r(-LZ zmsFdB%J2xGM^`SZp0;Qaw6ySoke)LR`pB}y&{Tz0W(yPu(m}7bqH6Jc&vyl?zCh2T zz5?XcAXt~Gt7F}4P{rEnSj&(BY95spKsz0^-E|c}ITI>&O3A`%c(!YVhVU35h<3}t zt}t;*(YSnL$BG8L@ieB18eT*V znd4^W6;7L9R6K5K-nbcg9rr}cs5r0*?;U^}W)Ualq6X*qSqmzr zS!$tI1!~D02@rA|9AXegt6Xzo)uLsdV;0dm27F9}Tf;jnKG%M)_(TO_cWGyW=q`dX zylUavCO8wBvI&U_V5Ge(i0_nBaN-Ko-$u$dq}K)k>bQ@l>*eYyf|uN~W%-L1l`X^( zE{JMN$5~UT2`@H4$=nYGbkraPiE%7reqV$ncqvj zy(@G)^LsPE$tjfH{>8O}yei1al{W=4+ZQ8~mo4;K zrnM`jPhEzIGs@JKey~$Ej>#?lyGn#IYjRv91TrK(C)?g6q z7uE;`@z{28=hD#O2-vR1827vuOzk!6U+aeK+NI^U2z?A39=MT0E#3T;h&$({l~v~2uiIc9V8%#T0oUks?P58@Yv56~b<- z*E28O&)<-IKOv?4e!_T^1=CI81TW9Fw8L${wJ*56Z?=?GErfk+-*>XC!n|4Ii;3(@ z2~<7=lfLB=B1ej&BbLk4%kHt;E{r4jhIB#BFIrgx4uJN(BstUg!r86uG+*4L z6dG1e@OitGSi%(pUU@hgQdm_3J7EjUI^1mb(j?zDy)@_-O|SO!HcnKukAi=NkIXH| zNzcwR-csFB*4wqHY`3Qdk>z$}BD)@m%&dZ&FNmyyRtH(ddjxhRNx1=Kc2+UbKdXk! zT)9V#tAwGqP&hv{xgsY&KMVJK{h!PZ2*P*=+6LIY0t4gA7FP&P8SnnmLB52H<{M!b z$fxgjU@S*0jCdp}SWB7WK^el3VZw^^2^G~#Z-Fy19ksE+Q;}+BFNGjl+Do6RZ%>0n zd*|RlHvtxq6f3lSUPU!*bD~Oz1@qA*%jTmKO!0h>AadDZA^ki2Nb#f%y4$kG)h=6F zv9P#$CA@IJIg&!}F(^O3VurDJeo^Lpc=z?{G9LFBiKn~7`=C>$thA&1uy2zi-a^cW zcq3+Rn0JB2zITBF+^B@BsYMo41S*D?CRqqCjbMu41yBX>Rv@x3HPyJPN^mV#cYMgjN0%&u zj}Bc3d08xXXSel{6*WcR(5@^K-g3p4LC;MFUtr{7T!2=?@!*cM4B4PIxdMFe#@5aQH}gR8c{ATswSLeU-_&^;HT`xqj*aYuA@x zRIjg^fmvguCcDZqJgRJbVTTpwtx8sxw@QG@@=*?0Ro?oHit<)sR}-Pft|X5-72eJ| ztR`P&vZ8#I0#ucsddJU!&xk;cQoeVjbbN2)KbCo{di+;TQWZ;Q--B8@`Q605D;N}> zF0H!6rJFBnoaF1}?J)a3%g&%O;Fo_xIvl^RDa+2v7EW>h=gUV{W&ZJ%AL~vXEd3ZO zTDoX|JV*bnI%2liAI}o=R)4gXd^;h$I{e|>5clXH8{|6OztI^Bb&p4aypdm9{fGA< zD)>LUlUL<1Zy~G;##{=mvZ5dT!(X>k1jdo`RLFyp7(mryVrJ@18-F_ z1KujZ*!RgYRh7OfL`8br?V#zUnUXT&_1JY-5nh^PJ$PvZQw?4~z}$HhuzFc3{4fc| zJ3-=)6%A=Q((ot6&A*{|mM|9hN5ik>U}I`rDg0!vtlIk~27m1w_;tl1{2`uylFyI% z2nCOy@%g8^e=g^rG*b9wA3h%bX+nl3R4iKNp9Gsq@-I2y$8i4X?Y}YePm_K{=AY0$ za{H%AzXJ15fSka#7wiKI8#6?@|8KHLCEs5c5lYlgbO<$r{0kh&7m=Lh`2!wO#r+c= zg7*6P50UQs3m1PC`4>C>DIULF!CzH$sDMArAQb$M6Ec-NPaY6TS-Ddz;A@(nS2$sQ zPWnhap^_n=LSQJkCsu#f?S1!8@^`)yI^bZO0bBgw;lk${f3WN^8W_MS3x0bz!CPHW zQVH%~LIrLhJAR2&Z@(|0;Oq7!R0yxHzZS#k>#ykR^YzzYxqJytU-zuw@g?+VhcBV% zdqctB>#yhO?)6V?|J{s#n&`RpkCz;`{t0lrrZ{h$AqRekBL4=*UkL`^MerD8OqlJT z25U0;2I2`^e--&`u78T?;PsD(5lqUIf12cD^-qBPGbly-k9wFI?kAei@N%vCr?-0^ znQ1V@`=@z%j)-KRMY_L++jZoh1hcoW=w?kU(!xpJRwr&CX~;Xlgof8vE0ONIU?x@@%k=KCIhOWOx`zwZjn!(_)SSOPG*6Ngwuq)N^eY{tp#7*Qn&7`<@N)G{gQ; zf%4{K2>t^GZzFhYC)utn|Ha^s6TFt-yThPBwSN=A#}YjJ>$W6+lHlVAzJ$Ts3BDV_ z-^t)l6MT1qzlqWQPJ-`2@O2FSBEiQK{9_DW80Ob)W-<#lHW|Ut?@QDOJpJ6|h;FAb`C4<)!d>?|pm%--{ypG_X zXYd@s_a*o*8TD5{@W}*!k--}Yz8}HA&&dBAf=?m%?-;y^;QJGND0F11|CJN`0D@0t z@MeM^Nbp7mzk=XX34SSq=Lvog!Ea*l8wh?d!FL@+*PoT(hY z{ueRozlq>82>w=v{gVWrN$>|4yq(~)2)>!YpC!9!&Z1bqqd+;71euvkX3-;KvYrD}&b&{51sM1zyUi z_Dd!BYYD!AQU7{^A4~Ar4Es3*&k_7=2G0@vID)TX@C5`vp5V7Lcq75*68vY3`kO=W zc?5rf!J7y^pWqXqQ&R0;PVf^5K9j+l34S8MH!$jN1;G~({96p3C-_2wKgZxV5d3un z-xCHHs{X75KZ)SSGWgvDKbhcb7<@g!Pa*jG82ny>pGxpAG57|8pGNS-jQ(?!;Ee=- z3xl^2{B(lL;e-26*TXju!bg@pVN;K4KMld(K=5N2d$bTxq-$?Kl2Cpah`2@d{!RHXXiQr#i@EpOH z5d04ezJTBt5PTQd)TR25k>D2+d~4Ftc8;72p~qXcgz_{|L7M({Ti{0j{JIKfvFyo13v5qu57M}bp? zs=t#2UrX>K8N8j~Ed;-a!Jj7h7>gTF}dD+vBPgO?{d&-s5P!4Cwd z6jlEkX@d0RR}p+UgO4Hj)dc?pgO4ZpTM7OX2CpOdH3YATq05i^y7=)d|7~zBMZ0At zgVz)MT7oZU@Hqs}6Z|d)&k_9X1ph9BFCh4J1pga@$9--5c-G%~xR#>bayWE8s{hR) z_&W%GA%iy&d>z3*%HYch{!W7bn8BL~{w{(K1*a-i{uKnjf#63mc%I-l68tg-zk%R4 z5&QuLZzcH61ph6A-%apa2tE~@%2fT;6Z}?!pU>d;68tuTuVe5H1izi&PcYtJjuO0; z;GbgHw-Nl^1pfhpKTh!X5d0Me-$d{`2tEaz`c(U!B>0^KKa;`R34RyB-@)Kd6a2jd ze~7_53I0BUKgr-P68vt05AR0Tp91_E`0*Tn?}uyYwr-il;57vQ0KwNW_!xqJkl>$Z z@bLuy5W#=L;B^H5Fu{j*r|U13;2$CQ3V9Kk;Lk94Bf;+>_`W^p`kzDaPZ0b925%zxCkg%$247C_PZ9iw4Bkxee#vF6pC|YV27i*^ z4-@>84Bk%gM+p8427j91|3>i1z3B2g3I6W{e?5c0NbpAqel3Gngn=@AJm;Sm;M#Zo zxj356Kb~vAk0<{kT>J8g;FPDCgHI*+R|)=G z2Cpah*9bnOH(h@@1aBjF1B2%X{&j+%$KVSHzLDTJFnA-uA0znv41Ny5zd`UHF?bWf zze(_I48EM;-y-;uF?9Qx3H~1he=CDuLGZ^3zE>h`pC|aY37%u{8wma#g1?WEe=EVi zOYko-_}v8m9>JF}@?THz?-TqT41O=ce?ah0G57|8|B&F{Vem%@zKP)f#o%oO{}I9W zN}~JEae{9q_-h$_6TzP#_zDJplHflk_{X@dWh;2jL!N${T$d`KU< z{x1^zNrLak;1%JZ3?I+=`=4;_JAdahcn!gSPVf~BK8E1GAb2Z-k0vSupGxpw6TC)8x1XNizae-7gU=y&JHh{j!E*%vEy3Tx;0p-;JA(fwWBfJ}{PzU^ zJA3|4D-XmEfOd@OFZC5&Rnr{xrc~ zAo#wF@;eFs-vmFJ!Cxf!iv<4_BmeTm?>YZpB6!tUy8Sc~=*j;^@JS3lhTty~`~pV# z;|czEf?v(xbp(Hf;KwoYpGxpo3H~n(UQh6C1izD!{~Ur>DE-%O`xrb&@JfRJ2ZJvl zcoo4r8N89;)dW8@neKmc2tI`1YZ&!!BKS~(-_GF62|kSA_cC}h!G{z4I}CmW!D|S9 z0;B$Tf{!40GlSni@R0<64}-T7d=$YSWAM8Pz7xT>F!*|c?@aJ#8TG%H;JXlfXg|9D zHV}L?!4F~ZM+rWL;0qbNjo`Zy{Bj0=oZz(tzk|Uy5qvDccjD;!J4x_y1mD20ZzuR} z1pg_6KTYu63I10G?F8@V>k0tq6MS!ie~H2C2tJYEe_`;c1fN9ksr~8t(-V9jf}h9Wa|m8X@OLwK zj^O(e{EG~}fZ&q}{tE_gB=~*=A2ookzc~b-LhwTvyouoZ6MP<{|CbZ|0D_;yux}># zfds#p!LK0rRD$2Z;CX@{MDTxS@EZtzFv0)8;H?Bdgy1_5q}zWt!Q;O*6oP{qd}OI- z@bv^gjNm6T_`L+5M(|b!-$3xg3H~z%f0W?$1fQ5n*Po5x4FtcK!5=61bb?>V(e|4N zK7-)v82m|s&m{PRjQraPK8xT_GWgR3pH1+W7`&6j;G+lA^`|HJ zu>}7bqyBRUo+J2lhJB9U#}WLE48DNi#}oWI25%(zT!KHs;O7v09>Jev@Fs%KC-`p} z^Tz`W zcN6?%f`5@=znB#e@W%;$ z2Eo6=;F}1(h~Qfp{7Hf@Ciu8vbp6{2ekQ?>WALX5eip$mV(?CapH1+)82m+opF{Bf zVDO44nEc_R5ry#ne?7tf#Nagqe*?kCr_uEvL-2ng_=yZYp5W&ad^LmD5&S%Y-^Jil z3I0ZcZ)EU#g2#XBRDN%f<F-(xsk{~W=W5d2sMUqJ8+2)>fR8wq|P!Qao| z=Ma1;!N1DjO$1*?@aGtOIl(U?_}+TD{>=oxnBd1U_!R_SPVfsEJWucy1b-)k-$3v; z5&XLh-b(OG2tLw4*WYe}uO#?<247F`O9_56gWpT=RRsSbgKr@CWdz?Noi6`Tf;SWV z0tRm*_?roSAA>(m@YMwW3xjVW_!@#AlR=mNB*E7b{00VZCwL3Nzr)~96Z~?5kItm? z?@dD>{i2zvukFlHh+}@EU?&MexJ2=<>%9{Az-~j={$h{H+AP zn8E7^ehtBIX7H&5e;dIcWbk@|UrX>GG58#U=L!B72G0@v?F8R%9Nm5e1iy~pCop&; z!LKLy#SDH9!QVmfn;5)_;OhwfX$D_T@OKjYaRzTD_`3+cM>bvmD+qoA!H;3^Ji%`y z_*0DhZy@+h1Rph?&cBu5HxqmbBmcVzeha~GW$^U`zm?z*G5Ea%zm4Eq7<>c4ZzuTZ z5p?|>C3q{rr!#mP!QV~rr40T!!QVshcQN=Tg5N>#`x*R6g5OE-?=g5g!S5pY;f(%! zn&9sxcq4;%68wDx{}Uts7YTkh!N=#&{YTN+fBwIp;72id4Z%M^@Jkqc48cE0@LL#s zJi$Li@YRg^*Ae`~1h0c?f@npUSY7VFdWl~jBEPANNil8>@eBO?&;3sCnRI%sxPa4X zR6;cV`-_i&A$dI(FDZljRJ1Ruxo=_XD%zFxc`0LANrlFw%F^+ED~Vekz>^7!vGQ~9?A z$?s?IO%g8+V^Bll$G82T1m1gu6ZJG3L{c87aQr$18I}8^9RD%HzFo2(==r_O;GGhm zAZMJB{|k)#>xldxCh~v1ny&wtSg}?D)n762RQ=@;_WwrMuVL8N1!=#EVc$sDKT6og zf2R|o{hlAaWM3Pg{x>u1mrM5b5|91oMZ*3w4Ex3)?c=}GN!9;u!v4#I{eLj*n}e+X zMuz?4ME$=?*#DAYpO@^*&zsx~zRzzPgSSe2gbYg3mrsVuquRedNd7to-weS47h*D~yg@^qQ3H!?#_G7w< zr3%#kH#6)PZ1SJ~KO*cu$*`}N><4Q9_ZYlU;sdq63KqDKEx-ATm-s;Ke}z$glT?0_ zNBw_7ls}bWze%zmsQvo^PxU{WWZ$#>KO^i_8^Mn7+1I1eC1n?D8ErEze(co`TvS2zb2fv zZYem%wD8zer^{Pi6p|4l^x&l35MgA7vnZ<6c>8ox#|c&Eho z4eChQ+! z*tbdc13ka^J4>qkHp#x{^ZP4dAAhF^(SH5cF4+$>e!k1F@09F&&Yu?u`Cz4YKDEiWIs^(A7SuZkmbkU zsZjN2lK4RV?_EaubyE2~``=Zf{6917^Fi7_$FOfC>?>fe47!`}k^5yFoHM1$UoY7o z7@+?|15dR-FWE1Ucw9fJ2>aO#`%OXGH!$oUC+vq1_KO(y6+OjL$@L{ygYWur8H10J zcwc?r>un5PC-IUSP&V)P{(FSM>m?qRw_YD#`z;Kf3zFBs14{KDW03qX25*x1K=oh5 z;LSnWU&Y}0Ao<4_yfsMv0|s9&@qyMqZv#&~e=*zr$6xf7$n_~d|5q6HZIb;!>z@?p zpj7+YCBCm$@AKcknaSW|dWoe9Wd9BZuMd(x#NdrV@_0^xD!(~MJ{+2f;;ljQSq#2G z;=2c^|2hWW6r}y<8N4${{u>4#(>u8K5A8zNpFT)FgTWhvC%5;Pnz8sQ-V+;Eh4@Dwt5I=hqx0pT^*=L6(03 zgKr3u-_GEhg5=+1@XjFlUm1K%QgH1*2wrfg`qu}^&tve$Ao=?lyg5kz0|svml5b=1 z4MFmm@Pb3tUsI5L1%r16$v?^9WBLTw{$DV7eUN-|EM0!1#2W(4pNYVWIrUadCDvbf z*2H)Hbv?trRkDA?`?h}T|6+!HPO@*4czplLA?&YZ*f;9LQoRzu{wjujg%u`t_?(n@ zv_FclU(c`~(^s?~=>6q5gV#xXp!M@HM*dGq`IpzpnEz{t{QsL_pOfqdTE8a6(f!XP z@qMNGlLZWyUY}_U-WsI++ZcR9ko*A#-xMU@%;23t^2%;>{l(zH2KWT3|KSW?FY$ra z4{I5`F-ZH*FnDv2{687IHAudV!8ZiS4}%IK=Z_%y8yLJZNPZK8kLed&`#;a%^+EFA zGk9Z=e6JpK{h5R0=Q4O}ko;~2-yrc&Jg<-M`13Y{ZwiwCoxwYU1C~_%H3Z4eX7Eix@;ey3Gf4h8gOBMST>D>Q z@cJP6w4QYR8H3~(GI(>4{G$xs8YKS-gKr3u?+p_y)qk2KKG6EP2k>G`c?~lPC$auo zNUXn#81`cZh<9!BzOCQ-c`C!c=5GJ>YZ+mGCBwd5vVSsw{aS{7yJX)f@won6OxS;v zVc#}TEWcQa_DuMW-w!bCH{BzWFuVvKv|mBk{~N=8lVm^8`uz(AZx52c%HW+6FTZce zHQ-zRA-(DTt4I~=FHrtxGx(Sw`E?9lC-H&u{{(~AOFV2(dwqP%|1N{)g5)nTc%#I_ z>$%s**Z!}-i#6?~rZ_G2KfM%<{jY}Tf8F2(j~ai>lKnvaKL&Wpe*6yq{%;}dk7C&8 zgDig*!@gd!?^*s^2>bIH_UnTz{|yZLCZhZ+3H!G(>^B5yeIgq3HxgZ`)@GpHw9_`HHQ7Yg#ERI{T~_j?LpdaW!Se7_HQTbcT1w5KWC8kV}Pfg zzmtUh^@RN#hJD2#@vecM{|ttGCt<&iu)mODKPE`~H!|#NcKVM$cMH2*bWHNc#hTr=Gvlg#AYe`!gB#%|Y5XGVI6S z>)-z#BkbSCux}00{z``Z0>b_t!v4by`wf!)K=c1@hW!Uk+zZb*4PO>lOSFSeS`paVQ`XKqa44#wtK>c?%qx_otL{hG2 ze1C2r%5P!VHwIb%W`=#8WZ!fCdXBKajbYy$WcfET>>G*lA13VYVc6$`Y`@nTyfsMv z2L@jsBtIaTetsGxKG6Kz7kKLVDJRR-k#jKEC`b44#wtK)*jc3OrT+4O00{l68E3UsL&ypIo;>C;OH4ljG@7e!O5ccn4*mp|ya{}03$FOgd?3*MWpTAEC`$rh|^}_*x&sd3< zh41*$z_8yy*#C^Me~w|_EZP57HY`bB`==T9V;&UiAOFok{9yV2N!U;BPxpV59su|R zs{cgbMNL87{b%n(qJ5JTgZ955?9XP{ub1q<>%OD-#kc%381^*}i}rOM<^PJXznNj* zY!FK&-laVgzV`2A*iU^#Bt7T9ZwUK`8TNU}exUj969#XU_(1bt=m5I?8zer^{HFk( zYJW~Dzuu$$zbDGypJBgAvL9&v(=qIuCHtP^kAtwE&#N`=280moV(d zNcIEGzjGP(n+W@72>V+Z_VtqeK=bb*2LFE;I}i9Ms_ltbOAmdshy(#ydH~S{ zM1lw`AP|bO79{ql&%Z%M*ZQy^v7kXk7i+AnJ@&Q7r#{z?m9-N4+Mcoh&z#(a1_mhwRg@S*0G`IiuW^3aFR{Aae}Ur77=jlXL6w>;G2-|4R6`?Efx4{=W$RN%*(c|5?F51OJxme>Wfh{zLr7e;WR+_5WmH|19=zt^ZFH z_76_nzWzU!_V=5AO+NkK)2IEH3;tE`pV`X%zeMn_xRu9W%l_}}Ey-)Bb+*r_pEp?CvvuCJO!u__sEGV#59@ z?BCk>StsnD#s000pQnWV)g-P;YvZR;*gvqH`*+^czyE^RzqR})3;Tz$e{21}7wzxY z|EjK|H}YDpAA9=r|1pAp6#lLC|2kp+D(v4{|34<|pV-d&eIx9j#Qv@If2ZO8{g>L# z{l^RYr?+$eBZU1k*uS;@KZN%8>;Gb({vYep|CbB?YHyC(TL0Gz`v zTkF5>VgLS%VgDJetiPRTf4};LQNI}W*Vi8=`qXc{;Gf)1|IvbfjgS8%AOC{{f3**{ zYHlm-uMqsR@NaqkvyYE|T=0*<|C?6)PZRtrZ{zi=<>&9oKK{=M{?Q1xzcv4q;2*d> z-+!u)f8hxK@fVrQ{m zwP^p5KK{1}{^7aYtF5*FCc!@j|Ca4P+Qr?LL?FEWqo-`e=!nfCXae@Xba9RDZy_>UF*WAJZn{*Ms+Gw^RY z|MlO>bB{ku1^*iOxAyscq2OQo7}wt%=k)wP*~kCif`1bJt$lvKL)br!{agF|{*kc1 zn$Nx3TKnG>+8^<0|0|cfbr?#^GE~fqc#(xFc z-*Ww1?bH6V1pgHLXSU*hy5L_A|CaOrOdtQ71pmN++^W|6uNVBokLRyHXZiR)FZjpc z-&*~j68!7n-?IMa`1m&p{z>?AE1EmOJ^%Pr@Gp8IfBv86| z?BA(5b?;wp{wsw2v)I42`;TL^zu))|qW#tIA4Q@IeA<7$;2&PVQKz?(|5<{6E&OX* z_+RAXe=Gdy)*Ne#!#{SNg;mi0QQaW;mp;k;UlrvYboqitylN>`JUjf{$T%LEBs$KQ=U z{#n64vIF;jYyMvg{>g6n{x|#hx1Zp@{v_a^cG??selDc_{nnqV?(84Ix~AKItB?Oc z!9U)P+uxdhQ1DL{=lkF0zr)A>V8K5D|4b|X ziv|C(-udmn%g6s5!9QNa?T=ypm^6asA9y`O@UQO6{wea*n{NMRAOAYRKhvK58+iBJ ze}lPy@jq@9{L4z%zp2IizsJY_Rlz^C6Z@Arey;z21pn{=_OHhNy8ZY0_Y z{=O9a>)_vV{5{~~-)W-%{ExuDwf65!`%}~MwyaP4AM)`ZD)`5@v;Bhv|H|FC{w>@8 zu#f)%f`1DBt&P9wf`1bJEyv%ZKK{oG{)wHpZ~Pr4_}A^8KmH!~@xMUu&%nRR>Di$3 z^SOe5a1i?kTg<;Fef)11{9_%t{gsZN>wmN0A1P)3mdF36eEeS${4?+mIG=x9|K|n& z^1GFT>s)0{;&A>uM_+u{kO0GFBJS!i}U;cRUiNR1pgTP!x%s2 z#jXF{f`1nNG3==8|C*2gYl44bJKO)V;2&L*-~Kmz{C^hwQ`_nPz2G1B@qf$5zw;#j z`JdTN|Bkf3-~3Pd_`l=hKT7ad!R;G=dkX#;AOClK{1*!T!R_>)EBFVN=J)^mKK`c* z{*mqUKSl75`1pV50DY{I~h|A0_y!lI@%S zD+K?TkN=lG{%ZvPApBD}ewde_`3GLl5&Uc5pJ{Ra`?Zh%O@e<0{;eJVt{42P4(9%k zAy0k$`_{+*F~L6=;`+CC{{N8RpN4knzcKf9dU-}3sy4?h0C z3;w~~wr~9XBKRi{%b$Ng`S^FIUvTLry4U|B@HgWJ-Kc`*A9(FV`}@uR4E!^AQ}_Qb zKK|nc|KRT2{?bIf6L!L{NdyOZ^1uU%I$B>|7^j(;@EuuzkK`?f`0=3cnp57)o%N* z5&Y|pWB)by1+pH0|M>VnE%;}Ka{FtY!R`7#F8GH}W&b*Sflm9kq5l`5CB=CCOz@A7 zVE--9nU|pX2VS=d{#(vx|I!xYzre@8FycS|V$8<_HTLpV+SAqpx~c@ ze{0vjdeiVe=pkKZ~aS++P?OWqy7E-)y4VkZ|~#3RPc|CX8+dO zzfkZmTASbg4nF>?1^?g}_HS+ds}}s#I`)q#-t_qI=;L2Y`}@^D2LDJa>;L7nKZVWP zV(<^soY$N7-_^(ep@_eKVl1~m>+RkApJ4Mpy?@;s@%OK}jN4z;V*YjV@qd^0_iKM* z-1hmuDfp}P`Tkve{Qr>r%eK$|e}aG2Rr&tieEfS)7TQ0a{bQ~4e|OrS!scz64ea0Y z{HuqL|K5VXnz()b;|2f3#(e*tKK{!E|JYvJ=f6bok8R5L@9pD%w&0(dw0-`o1^?j9 z`Tl)<{BIKcgZr?5(CJzC=j#RkOdb21^-Irx{U@Q_<8MmvkHA0DivOd6f8aLuufhJ> zU;jy7*MFo$FsN`A2yCC7sAY=jW+{f8tJVf3gkl zpxZy#$Nwn7KQWp8D;+=Ae}&*5y_@}8o`2~_db{nv5dJt!=G=l)*gt-J4tf7@{m&Ep zD>k$L8V=(ffAu4MUH=-|Uo+P~aS!j9M*U0{uK#-EZ{9brX8(6~GK629aOyf?|5F}A z;`Z*|vAQMFzg}~5*YBJC@22=IH`ibP+_t3v|E}DbZ`_M_;CDw;?beWyTfg?C_w#S; zq2E#J_my^Z*WVKf|0&38Eei{LGuCIdifvM$ zxCS=W`8b0j7stKZnBOQ+_z>p=Dp2m-(MHc>-;tB=t}gO^F39^Cbv@~( zDW9!C(ajV-TY;iqvifWVihlXyvlS@1DD1NpgOAF#eNbrv(0#z@HZQGXj5B;Li#Cd4azm@CJduDDeLX{3U_EEbvzZ{$GK=D)6+xUlaK2 z0)Io`ZwmY^fxj*AcLcsg;O`3jJ%PV3@DBw3p};>9_*Q{u1pcwWKN0w+0{=|lp9}m8 zfo~Idqrkru_*Vk|THxOZ{9A#4C-CnDo)!2H0{>CqKMDM2f&U`#{|Wq8fj0^KH-Y~y z@IM6pr@;Rb_}>EmN8tV!`sw`Iyqmzg3%rNGiv`|O;JpOiTi|^J-dEuL1m0iZ zL4lVDJS6Y|0^d#G0|majzy}H3y-SwoL4g`9==Tu#5P=UB_%MO*De&O}4-0&Rz}=^E zn)Z$o^rHnnM&M%wK2G3e0v|8%2?C!e@Vx{+N#J`6d>?^F1U^~dQv^O$;QI=En!xuH z_;i7n3w(ya_ZRp~fgd37SpuIe@HqmH3Vg1>=Lvkizz-Do0)a0S_#%N<2z;@?mk4~R zz?TX9Ab}q&@Z|!J3H%U&A1d&}1b(={R|xzFfv*&JrNECA_)!8sTHwbB{8)h>C-CD1 zUM27o1b(8xPZIdQ1b(u>|4-nj2)tV0s|0?kz)utS=>lIZ@G}H{roiI@KTF_e3;Y~` zpDXb51b)82|1Iz}0>41u7Yh6$fnO}}wF19H;OhilBk)TFewn~87x)zdUoY@01%8#l zYX!bR;8zR$8i8Lc@Qnh$PT=|pg!x;6S|{);1g`I7%-;$W{%CxQw{#+HhzG!m@Y(~s z*x^IKQx4w;JOUoa>s)$mLr+#TGq?tPwa14Snk%EmSO4ayt-7vF>`)eVfL{M5Lg$&m z&!&O;N}%TE3YOs=sbQL%D|3eHGg!^dl|0iCdd1e6yx!plf~Ot6 z8oa^bw}59HuAf<=eH$IFze}v^N&oRS(=L6FzvhJw*MH7I^CE|z4!*O)?*I=t{3GzL z4%d(C(eaBNuD?d1^UorGQ|JA_&8?5^xEadu0E9-r4Ei8|(f=QK1pGL}x!&W$3xmif z44#C(yb}Y{zwd)b9o~+NbpEmBtlu4Rg5W`iPXf;zZ0i?+CmjASj}I%{jb8Oe<@L6U z!Al)}lgHNG_zeQTQQ$WT{APjQBJf)U zUMKL|1b(}~?-2N%0@p{S{H;LUE%40(H?z@>RiN$>^!Ewe%u+YbgM!}7Mpyrcpnpu@ zPYB%1YB&BSm2)u{BwbC6Zn?`|61VR2>d&Ne=qQ?z<(6@&jSCSz?%gAo4|h;_@4s* zOW=PC-2V$a^m{!z`_13z`#S<}C-5BwUL^4L0^dpC_)?UUDt%8!(03I0E&|_G-~oYm z7I+tdcNKUyfp-^p4}rT+?c+kx_i+S$FM;pdc)7r52z-Bm&lLCp0-q)D*#e&< zaQCUGJkJW$TtPoi;PVB3puiUhe4)S>3EX@u-CZ9R3;HDj*H^vrw*s|H;0Fo(V1X|e zcue4j2>eiiA13e>0(ZX5jHVZ;BL)4@0zXFJ#|r#7fgdk$^VAo+Zwk~2g8oE-pCs^; z1%8UaR|)(yfv*<$nF2pc;O7YZJc0jP;1>w|B7v_J_&R~>tHk+Rfx2Aa>ji$5z&8l| z8i8*V`1JzcB=8#rezU-D75Hrezg^&W3jA(?Zx(n`;P(pret|zI@P`CmFYt#2{;0qo z7x)tbe^TI23H%v>KPT|#1^$A-UljOD0)Iu|{}uSF0)I{5ZwUM?fxjd0cLn~wz&{lD zR)K#k@J|H(slY!M_%?xmDe$ia{*A!D75Mi8|3TnC3H%p<|0?j`1pbG>{}T8=0;fym zJ{#TtEbsz>?;!9U1zsfZ_5$x9@QwoCRp0@EcM^CPfp-&l4}lj8yr;l>3%swu`wKiM z@DhQC1U^9Ey9s=tz;_pTslW#dd=G)^-%96i^c)X?4-@#F0yj@pv_0r~9fE$Oz()yu zw7|y*e5}CB1U_Ei69hg{;FAQtkH9Aje5$~w34FT1X9#?zz-I}3j=<*%e7?XJ2z-&i z7Ylr;zz-7ma)BQr@WTYYLf|U}ex$&U7WlCOKVIM`2>c|0pDgfG1YRxhRRTXv;HL{* z-~E!m6{s@>ewM(`5%_rm|F^*P6V>v!0`D*N`tgedz5dIv`CEba7hC=KdO?4cz&8l| z8i8*V`1JzcB=8#rezU-D75HrezeC`634F7_?-BTY0)If@4+;EXfj=tn#|8eRz@HNM zGXj53;4cXLMS;I0@K*%>s=!|p_!|O$OW^Ma{9S>+FYpfqzE$8K3;a`oe=hKC0{>Fr zUkm(OfqyUX9|ZoBz<&|=uLA!~;C~4GFMi^Uq7y&u$#Zp?>z;spGcd((enTWJ|d5QLifLQqWkVL z`UYv*==MBs`vY7p;-3xgy^~TQ)qMYqxxeuM;+^S!!t6@c&%vD&M|%3^>ncXS9{QT= zS@<09rd}kj^NHeyQ{(#?czU*z58ddf^<`acz7Ke9)aHwb>pTO;Fvo43YAx}QYQ8Sr zncr5oL0>bE^E7vo{Q#ahk*DOj(08R94nu0cw&wm$)82!L>pY7hEHv#pgSgHoxrQ&T z9EQ4Ge6P#to`35{W#OCcfvTt1%n-3u#Qq9+es`zbnl&2q77@q?W zTU2yFFT)Kz>`khI@1lJI(~4ftsg~P*CBE@ z^WFGGokTpOny<4((7#FOqaQI?0sXg#-!$8f-;M^9_N^Ld^MT-XlWjf$Jh-pTXA`IY z?1`Nzb)aef1Hnm*pvjc&x%?W&&7Kb!F|j(A8l ze;%P><84cc>o`#i-3!4_LY&|L1}07|cyx))A3~fMPJyZr=QZ#u{OZb#t8L)%xhyP) zeg|48ynNd5I5hKg0&!|`-d0Xrw^tSOTPDw=5GN4i@nG_~9{NP$2`T08V#PR=QsypJRc8Ub1CzY{Gu)ck4vcxXwS|^!p*;75!Of>bx4f%9$@4z4+Ay#+$m^ z+nyt?>kzn%``5hxrKfMc57vy6p4~W~%skt7Jb1#HUrUL5uJc*^wkqzfoe1K8l(>!`#3dKQ-z4rg9=?M<`7{SWvsLH5>|5@P z&r6p}l88Uq8fd*9PJxEk2KLLA&mRKJKjBPa}SGG7GW% zsrR8*&irlHkK0v@iEiq-J8_+7*oiY4`bIhq>&@twLZ84#yn23H)qq!Z=dRoUz8P^E z5Z}c4FL=~BF8qu*Y1D^KcfGA69jCqZZ5sb<;tU`jQl)w0b1re+uJ|Ob|E{S2QJ#KC z-gvtj`ou;Sn)8jjJ^h@#_!;Q4wH$vH@@yB>`2=!$a~v5?T<2f8#Lj;Xco6HbY1iT4 z)l+T#x!`rqx^y-1kZQia%lOtqzs6YyUN;;Iq4E8SxUO5xJ<8j5=NGk02{;zAL&3)o z*X^os;w*wbeFO_1f&NPHD87=0Xm}I4j!X$J}x19mHvH z)=4#h^UvTb81G=mQN(qgb!d>ua~|}GG`DLT^sAs>Gns+W*AfrW{S{{IGj+HR`WokR z-wVWbzh|QyryTLOL0>z}j^B|!!0J4=IP1)w9;ff`(|M)d%=a245Mtkl$7vXnbgW5VxY820og&&a>3{T(bcBK>IeHau&a+ zRnXTVe^bv*&}V+)z)vCmOW+ZF1#czzui#-^BHkOk&+eRO_;?29{B1IEoo8@5bK|>= zxamWL@Lox!gZQ0GIiIG9cK)Tr_4x^8 zxp}t)`Wnag9Plb<+};3Q9k$~?4W4nI^A&IX#OGGCzU>Jf|AmFm zLB9+Z|ii|ICIP z!AB6+{oc5QfoWF-^pO)--xu@cOz5{b$D{S&seSD@b>L~|c%;vpbw1<ltIsybm71 zS5qGW?@#9kI?sR;X99ST)(O3t{1<{3Pq6th#I-M+M2gh*-o&tRr(&;=S7jm9v9k>o$;gNCJO?BRr^Nft*04C27;N{(I zzJ$0J|4pv*<7}@k1XuVKA)2i=B2Imo9p_%?gIM1dApZ}Dhg9?T%1u6hLT|?5F3@)$ z&iOZB0vY`X;-MDbBWn-+a^gDwEWW~QzM*|5cq+@nwrJOT;NfY^=|^w-h5ivzN9K;p zm^Nw`T6c867di7~2zai&>-YZ_THR2=}u@K#? zlHdV+^$c&Tw9(IGJ$-!hw(q_8!wTa&^UrlWd{r0ve5-xSu>hO=CxXW&v)=Hf;6-z7 zemZgboQ_^?o{!f+pV`aS-veHWdYbsJ5Z84}^yU(M%DbuGz$5q-b|>)OG_Q32Nt&;E zGja9>Pt*BDOMWnTVw}xSA|6sJ+C~}Yj*sh!>wJtkAYA4{A3T@!9ihLC zxbDYd>Sw)~JYNJaDz*7G#0mV)aZH`tjpaCLoJg8DeZYgxxSd2?=O4R;PYYu zevfb!_%(>r;2d`zhdzNvi_m2pZ~GKH+_upBc@_Adh*M6-L%o?i`_s78bx`wdK8d)O z=P)kVT7Fv{3jG#m{$2oHJj0H2J$MYq1>>6{9#X}*_14U9M`n#XXqoi z{!j&?`E5b=;;#cQon!Ml@GUei^=9P64Y21=`GWfH^X}!v;|4)dYbOQ z@%JIF^AB|5{7rig1`i+3!potr1`qzu`WwJEfmhApR9At&2A0JKAb^c|eyfC@(Q$*u0)Z)1)CVnY#PmdFS!}lky^HliUy`IA<{rhIEZ*ta?E5MT_ zw(q0FL+a)>*j;tNKR$xKh{mtpjPK8$ejs-Wahxuz9#eFjj=AGwM{h5sCK1t(PtN<3``x=5K(<9sVVF zox}ej?u}dOAHBg|b))%Q(&B!?p!Y6)J|nL4PdV%SMB+M5^hfTm8=yZOJczG?ehYrR z(Ki)%WE1!{@XVzQdVqJL&#^jw0PByb=K%2NG8UTgGnKeE9zx7bJr{xpocUf!Jfz;p z9pBA(y8!w|I$zV9iE|xsoliW??Y*DhR=-0ZMdC)^h0Y6gJ~g|s(D2dVRpmCHOoY;x{mKmS_A#TPzq~6Om=)kl{ z2R&95u)@W^cggA$S7dz)~tHB$cE#ImAdh9As2EQ@Lt@sKLZoo}~CoNJ)Z;O9Pgy@9xHulW<+rd{>m z>Fz8v{4?Ty^W`tZ590SeMjx8R`G;{_8w}rZ;Asq4v)(QxuJb9!0$}1C4_;Pm=W`i& zwy(`^A|6uHxYOw^Q-?Q*m#F6Nn*@0`^%dgOI&uE;;tbE#vjg-)XLGwU7jnPc20o9t z&OcVdz~p}lc#(7db}@MIVq1SZ;wLMZoBA{m52;gf^T>?nZ#>@od?C}`o-{CYK7syr z{4wB3EQBV{gNW;KSak!p%d9j12Oj;2Jk2sYB?f6eZU-Jm3YVyoL--Lz4`2GTY z_G<33rRcd{QO>7kR|YS!jXHq1S7#(>;+z0|mg=E53hQm_px@%m-`l}cI8c~4uOUtb zx0;*wehGc$7>;Z7g>yO20Q^jQ`x4iAmO1PBIPh9$9asdu1{1}^uSEQCH}03a;BzVT z`ud9AjQ$qrGk-A0;a|NDUh@^#(~OfHX&&l+k70>6>%&OmI{ySd;F|c;!P7WU7`_Z~ zGXHR%x3j%k2YvZ421b7e^odf|H$eYBcya>+EOV+YU02fi1oyP#bODb{u=!x(-nxoQ zJ$PFk0G{c?b+{BW>PW=V_s8kY!){=fUIC zSZLyZK-|j*pWn^+Z%5-;^I&&w?|Q@^L|pev^+-F;bnw^^o38|qJN5ZDanBczay@}< z)Lr0lT)#E__@;^P%$Hxm)6V%r$Az3{GGym7jJVgXrOfHH(A)MS9#YNEr7`pRXvC?5 z(9~@m@ev((`-(R6mJL`GZMcl4v zsU2r1c=Z&UPXVuU;w&eweY4lI?|)GLGoep+vEyunz6xLE8^dp_2cU19Ve1=+mzZCA z(py33KZm~BsY4MR|Ma-pf(6XfXLsT{Pcy#JY&8^m<;>qj-~l>M(VK}=4c>$Uh2a+w z52-!42&6abw8Fug&>UOt%zcG5uyKc~Tr=NBFsy`WESyW}jbv^+cpiF%hfTx`E@MDRW zsOIm{M-cxMk2il0Hwbo}=F+>dx$9R_`sQ@8WMgAp%GF3tw-cFrdU_r2rY?d$;H=xX5D%#?x#OBy_n!6m0eSuM z9pco{d5zvoKAq@dcNe-9+C$5qCeFUJrMsjoRmi}-60KZt&r z2E}cj{^Oj!BTSw|{IYTeCeP0hM_;$r+j0D&{`BH3%WLnD<(y|jKNgxe`-4|H{2=gB zXZ)N(+#7FrbpJl^y%ze2vpzfreI&xdO6WfZ&opq8H-PUD<2<)G{W8Sk^!HPsGx^UX z9#W^}uE(15jY>~X_lG#=`D;A=dAW7i)VYqhZkM?Pis`CeK^%QuUvI|un;6Dt9}lZD z`9+OAgn2Z{L-7dk#l-bEX>#VpG0;bF{v3q9*6>F;)xR*ZpF*65Jy>Y+c?56k24 z5Z7^PN853JAg=2l#zIcR*xP=CzKPB&^=9(f#L+bQgJ_x6-hCaNR4NGD0 zp{HMzH-9^lpU%H*pq)=Y;vt2DCcR~jBO{4>>ln>5y(T<00X@7GK{$9ejRxw?&q zehzV+XLgDmzY=j$_6F{oH+fy9;3dwU*-_k`B$yvroD?6o`N{p5S( zTK+D00*@To1bxX-9H-J*uO<@r`u9W@wuk;`aD{$}f?ow5!1`wLxsy0um&=VGGk>3l zK8)*Hk0H+Y#C5wG_hn$>6dujIbc)UU64!YK_GWI*lZS(6KH@Gg>+M3~^tm-}Je-dB z^&{-~*CI~h3yy=~tL}lm3YL@fglOJDlIS3z>}okDtlA z>;zsxT-PViKBV9*yMG74UW8}!06(6(PKr3B*HcdER<{B;x4rS?bN?c`hA=9h_c zDRG@=n)+F9I2}rp?E%kskjrH($*BT|nGh zANtvGP6BV5Z1eTtwdFRylelhIb~{-<}P9#bi7F4a9XmQRlq+ z5id?E7svR%1AXu^&i`^4{Q(}px|#v+`+wZ7l+&&<;@UU!AC9vd^m9Eutz$bdpyk5b z4u`(#Le`skbT;u4bss}gn$HDSc>Mhw4{{iF7vf}by%)n#eQe_I%EC#|e@8r|aMJ>@ zPT<{6;dUh>3`~8-5ZCQe!+1!Tad;f`r9oSNF?i7go8JIlHPPnvCJxql(B z=nDRVrypK;I7U_>_}hpRL;%ySuZipDk_DhM^Q-$R&Ofz~0~I6QOyb_W-ivoIaSnk# zhT{>+q5cgX#jm7sI;d_(oa#k(oCff!Qk#DPUh1ree}dOKaXOufaf0iXW*kl;uJey! zJvaFu1YRAqeNO{#9A@)Ph+l;h>Y@C$dJy`6GfqAr9%}LT?9B1{C+OEW=WiWPG2VRW{Wa@S!ah+$)yKEgmJDz~PZa>?%5qyo)UqxqfoZt~0=Sbw!7d(OIFC7XV zC9d0*oMFd50zBo6lheVgo%Q(!#E+n3PeA;q!K3#wF!OX9;>3z=-<{&R{$nv}nm^A@ zBChKb*}(ea_(d%zuJdnn&Ts!kJf!}c8$aeacqMTiC$JM+&@k|}M~Uk=4YT-X(=Q)@ zM@np-1y9Vkd3zd2Ui=f8n{hjyxL4)#?C zqJz7cM>vgE1!p5q{Ha+w9rCsj;Hky@^Jwtd#C87B-5HoXmqVX+zE^u9^vSTTUkkow zyv=U_uW{;mAL7^S!Fo&s^$PTjd)sk71y4q8{v-Grr#>a;px>SOHIumR$EwRX4i0bX z1n?UCiu2?){Qi0`&hSF>4bHZV)kBEi=+xmI#7WO(A*QkV8Ty(7nVULyJD2k;?q>5+ z;yTaRdz{Ga@U4V?O^K~v2cDQ>^P3STvWnxZL!8&34~(?+-w-cRHy1#rP;S)(eWNpO zJDX6M31Fu+M^Gk{AI;55{N3&Hu@c<+1zyCG*&$$UGhsq*; z*jbl4pU?THoOTTcFLmlX*W<$q<2aE-ICUa%ooDiRPG>lmTYUf?oysEz!$KAQ8~SgV zoAqQIc;W@-*RdZ@#0i4Y zpATN!ivt*bH*xJ7!|x>xe+4{=N0h@}eF2`veMCn8C*n6c6HX;$HpnC@lG^HKO5hq9_K!DAQjI5GFpjk%b8 zOP%B0{>1(ATtQsNPqgDWIQ*y@#L3RI^SRmZ0XBaWJhQvaKLU?C~d`=$?PeFuI~ zA>z7j*+F)kY0#(eE7X3_FC*^PuKz=v`ssF@jfj(Q?#ucQ@sMhtn@5<&>J!9?%(mnF z<>|}XMv=z~ycS==?W)1Ly%+c};<{Z)XFg5^kBqV7FGig3)4U#<^TzYRtF~}|twj9S zh=0XM8ULuN-3YTZrqrWuD~tcu_AvU**iZ55N=C>^MJyH#(myJ6_89 z1fBCneV>QUQw_J{Oa-rU)|tbJ>pWvg)-T}~bp`bLd*pgE?Y$lP`0@geU+MiKtift-a0wh<4$FXyBuIKcsX%h z&-$SZOnVOlk2`f(1#X^OV)R!ae$Y8TY#<&|C-C4Qi_Y-<1aXqi`EA?vTE8Ms-<7zo zXBN)~I}mY(5ZC#qf(%SPbHS6&@#O?Be$U)EG4oH3lgIUYSo zJfu!yNLn+VUqJlYupPgVcmOe5zWf7yxWv{E+`#RvcE;iU;A?`mekFJu3yG=QYVa~l z6vMAH@tyg84{=@3%SzSMcJHoll>uIZiytC3+5(nnzssd#$rRR}v4Y zaBjYv{<@fWiFzT&(QI{tr++Fpe{tHR>WS<86H|HopUi2gPl#*ZMrU082z_J->&@R8 z>2VF>;5?)w;*=8i>&JbG)AJK@T)4yVV>phf zPb1<~;J{+~x9D2-RTFLBe#HIqA4OdIhH*=6NBCcWIK{K=I5&V-Ilhk*52=;8I+#4S znmA>4oS(rPN83EGk@Jr_=QCr#lg@ZPn7BT_#k9-ahZcuE*2|7x2cC`C{6FBe6KtL# z?pL=Tp^xlo>kF>q{A1m0-W5DmZ1YjXy?#HLhdP!m6(wGx9?Fe>lusRuI9r^4sRh^H zv(cLw504^#@@MAH@r(Kd`dEa4(YLvt^Qpou!5=|Cj<_DrWln!Bgg!ojyB=w&v!QPo zV8`D8UW5)az7K;J_qFve68EeBJH&O}((_s04|)C!9=nzEc^Z6Fg7Yu$%E0)}A+F<8 zEn_{E#oJa9*X_-e@Xtn{0Izb!^8>`ad9)9AnYo|&b?9R~?KppeXPxoZc@z6KIOD1m zJmHM18N{`3?2tB|K^L}BCle2;8yFJn0Dcwpse2d<1b+;?=5fv+HtH?nx(-dw=alb> zhZHXQQ4Dh&Y;yzaYvyraQ@38kz53w!OXj>Z0=;=YmC+vz9+_dssYaZ16Y~@KMb&~= z{lQ=q_+!LF%6#jxd0u=AeejGnp3;1eW6v9rzq5YsOFX2$%pG^kI)4;#-L3?Fk-iMR zR}=RexA!7`{oX7z?QHTnPv0I;MLCfISjnUIli9` z9*Nj-HiDOqv3WglT89gmHjlRtOdMzY7u}3;do1UFJzuMYnLC=?Xi3 z5Ii;3=3~L*A)C)89#T`^OtKgHAmsf(M-A^}*n4ob~Nr#6t=)SUbPH$UZP^W$8=k)FPZ51Z2$6MIZ&jxRZ+HqpU^*Bl4KCTGj+ykCy%cZ7| zGv4+V;?z6G<^K`)8;85xhV=xuaJR)cA5UE8X`aVYg!l)7R}5re`0>O;YGGc#Z-hP( zvGtFDo9FzSIIn{@4YKvWf@ht6>3loqS>E5)PXOQIjGy`770!Bc9C)q6F927)?D%!W zb-!eOV?Lf=)Z5TEO|tdhfQLgi?|28tiC)8nKN4}q5!d$#XNEAi3H?&xaq1W6yyztG zWDh(3TJQi)SWKPki2IF)$B29FdXx?Kgm3#hxz3RhcKqFlht#axIPZY`rxVw4vZV|L zgD*pz$^~|u^S~RNd3`hDR88hYO#D}ght!_A>rQ4~|LpP3dE>CpU7SxG_nEXuK6?|_ z<9y8lc0S9X&pydZvGF|<`k-?h+(3%QAU*n9cA;fi@>?YPfjyM(27dz)yr-IkgV9}eY&$WmXAIcnQsi%mSC@eDcR*>IT z?;uW*bA0&`yxyrp!F`;6rE^}_kGRg?JfD0j;tvN8T*?Ds1rj|CJhGKbdMNY>FaEGX z^908#@H;$Czu%d|z_j;S#K}Iz@uxul4|sGr0~~%-@B96aFC&PD)c3jjggYV565_gD z$&L(gI;c+d^!Tt$Z<%!?NnDSg%Kcbx@_ZFM>(u#k@L15+w|zk8votr}%z1u;1OrtD|m?8t0K030CC;k1nP{#xta-mwu`M_0eu`dvMu7b zRSon3=kv%d&?hkdv0SPbOdNdQ;V;D5N<5_IEd(oSz|NnspF+mOAL|k7ljd^ONs`2_5^u<`mjD8DoUC)|sEPMm{t>77a zf7TpF+B~e|Pt8032@%)rD(c4pO#Dg2b^J6AwdVY40rcs8ZG9zpbhgdUMI7}dm$Vpp z-bP%vH;A9jy73b9k;yzEFx=HQh~MCh+Z`U^{IkyaUVrc{d)oPoB(B>P$8*NI!+$CC zi3PU)Oz;M0y{$!@*r}{P7c=l4@TzAy|DzE9cku9`EJSyzl1DlJCKSfh{{Z4T&%hXt zWBAG7QH(>BL#+o-6!41oDSSU7PWPeZ#muJX6GVdn11`*bV#(;(B~;i7+sA*pW^QwBB5& z!t$X85D%$W(HqU@hZBhFICV?xIExTRf9}_tiGM2e^`mUQ7WxeIrj47SFWTMKr=d@@ z;eI)b-&S9mI7>Lycffaeg7YkO=2uVfu(J+~0gpR*&Lpnulf->cIBcuKh?l50a`g|w zcNKBd79j8CO2luRz|_>|PVfj8a>Jh^PT!l$)&DpI`-ZsAC-pAB^$f<_uqU~_8RvL9 zi+D(#oQq@fUkQB*9d3N%#C80{J>0Yn@VycGHN))uUm;$i@GvfVD+vAj&}W_FY+;Jy z$8iJQ)zFUykDy=7d|U!!5mY02BXk@P__2KMTAJhDN`Mxc+-pX6%~dR0Hu6gmfbUotCgg)lX#}lBh>BIU6F9+%x z=*#xz0LJ$o@GZ{y!`sA7TVd(F{ExWKCyno)!d~@!7ImI##~%rvSkCDR{sN!Bac$N{%PVM zZ{s`QIc{&IGk?c{S2@SEnc&%p9N5G;1iZ;PZ(mJZ*Qe&~Hr@`VFCK(G;;dtDfEPRC zyv_3*$LM!KyMn~^IBas(`Mto4XW4lk1g@V0tv8eZYQ#@rDZp(j>LzgWce~8|eG=R} zU*!r8r!poE?ng5H@+Ww391G*ncYA^JZzy44^4W{HsTHK&%VOwDojR`sSJUk{mw~7H z+Wb!N+JQEI2|VHO&%rC4y8RBW|9-pPO#ZtyaDSx+^LW0H-&V_r)Awo_68jkZeCQRv zAAKzN9iDz}PH)!3Mvs4;w~n=Yk$uw`pBUDv4|s4EkHaFwpF!NO&P$1V$DQ3+X!Iw7 zuL;@wD&isaA_u3p+9CdPLi{a=lNn^k`JWeOW!nh$Z;#jF|M=%Qinz`*=A4HgLR`^&R+Hfk;O4bE}lUhryXU2Om_--qLvI&4M!)LQPEcai5YFL6Fmd{8j@4a7t0^IUy8 zLw`H;#m;(?0&4^uG^KugIKV3WD$|JmRv zr@e=R#~gkRah*?O75nx^3*Ue~)5p%|JEO<%yJP&e>h}u9+X!1f9^70wH2E(h9#TCE zuzPO2RYTwC`+f1-!j?uT?c&--*_sz^i-P@ztxGXT>6$_W@5& zwfO|_M6u165ZC=~ZZzAM-&V&%U+)}eFM>XX`;>l!{&whtXprgOH1u)$+@m)PBlR8h zWs8{`{Vr)e9xC$I$-Rl|en}r_>np({^KE`Qc+BbdOTg=9+4_fwhtz`@_07MJex7)V zGEZ$(D$cv9*NN-8ndjsz16Qwcp5guM_{GFaRJTGS%i-s3?c(?28x?TUx)zhr!V~J~hU>*lB^`A>z=M&h2`3S^6 z7Wzu(eCBeaKb{+K1oU@+hw-^-F!;MhkI!otga1ujKd&r+pF7~S{~MfVxikLDz)PJv zN5Lzc^UO-(A+;@6hmMH9%IJGCFm=e%f(7vJ3F+I-(j7V*Q* zdGZc#a=WTA;f!xj;vw};t`6q7FxumrbNL&6l(^0_coZjiEAl)K@sqpR?Yas2IQ}4^ z8Mp6(M}Oe)b|B*XVEBQ|%{TGJyoLOy+3{zBmqu-V7;&9v6t{es@o+Zul?T}R1oVkh zn49y5=ZJ^Yt+_gwetZ*g>LPZWpTW~k|AyY?{G-nJ83P`6#`$96I{!HO%lQ5u@sRo_ zcRVuV_EPABI3MW3X{n^ApM=@o{5d^MT+hcQ=e*?$@J8pn;!iKmhq*e?X@j>7e23$d zJLeA(@Pspu77`DsZn-$7&gVj(8OL$Wc-sJ;9Aop%#C3flOL&}|$}egQc&sN|Ea%-+ z6XMj&u;X;w!uiLXc`=x{j-STo%Fc*01N!1ocAO>9C!Oz~9s_-PFI#^$^sxjdekJn1 z4*D9Wo=<}}hU_>Q;vp5t-T%-Dc^19P?W&q<>-Pi?R@i(Vc+pgwA4Oc(A%*YdrI6=q z&=(J}_1_Z@sr~c%x8HmI=iy_C>-e$Dc^7lMIDohwpXE+_mxHevZu`a&Cxct!&2eNi zakIwr9{k_uOdMyu`T{()$d0ex=X{!iHt$E=s}JtexRBpgW5J^XxLp@x1|9?+D`TPg z{`(1tU)0-HfryUm{=9#Wlh{f^Qe-GkJcfeJk?Tw;{y6I^%mrW1&BW zxE?1J&V0NGyd38hW<99`PxP?!{||Vhb3W5ZT>B<}XMG8LJAb6}?3Sy)S)a!e*Pojr z(3RtLiKm~HSI={a>-g!JEUbb41~1Oqf>=KWCjSS(YnRyk9pZj<{ucU5ByQq#-pan= z3pph-?`|Zn>si{@j{gMonF-9%{VHwr&OF)%-hcua-@iOQtk7IAPGUXjl;M1;PU7)! zHruG-;E9P0Fzwa8#C4vPgP5E6M-nelxXFRu3i8|P4C1=Z!SxKx`fxLG9mibvFmWD* zJ{IBxSD@#<1rJ=xaZDZhe5}XAB&eE?vj-6Od@Cd#3&; zAx^b(oT>#6Ots_JBTnLR=H__1g?LDX@_cvtlzp=+SpOQosB+@E4l$>_$3Y*&@A2nB ze>e2u*$hnGUW7i1`s4IMy$^lHS#LXh#`$F8+#xvaP$R)(Ulw=QxXv@^obMeC zeG-4qo$S2re&_>1{@LXDGI;qMn}0_E4L;mfL&?aUDO>f#=IGRB8eA=E6e}d`|%{ zb=tcIe2wF~k+_Z@IEVv3j5sOqAQn_ppGL$f8)oNO_$9}Q;rS{jBTjeXA=M){zuJM9 z5ie02b36z>-O~@vaWfx}Ca&jKdc5ra@6Rvl9_Z7~_>oi+7>J zw6}Hok@Jr@pW}vthX=CG#Gg%E$1&g6=!`fkpieHb^=BLIjOS~>vg{cZiP;5E+qO!uGAE@xfc8$27d;~WiM5w-c*;I+_jxgDnzJTTkllfjFp+x%GYYG*ya1iWI1t=~+XK4)>G z=q)oJUnQ>FtKMe)TUf7l{Dt$}Qf9~L170!5=3|MMs2_6is}N^4ac^8LXZ=WiQ7aKA zKGlx%Z}28(UeqE^GQ#?k5T_pcdT0E641ETl2hI6a(f_zzNvHk;h|~8Ga^usS?@cDI z^AB9bZ`H&12*imwaZU%Xan1*>N1VuxT%tD+rvW_kJ@YvD@8D6yH)E{$SI%EK^%(_T ziv_p{ab|;ur!X*lC2`#@^Sp~{=q~|}zsmV^27dr?A~@ceIB$Swdf4%QMx4w8%#TH7 zyEVZVe|lpw;*TS)*Z)+79p@nM;9{Gf1|D_B;f2I?yTU6u|4T3q*F#_C92Xuj+==rZ zc#Xq<1W!2Y>JGoLZ~7fJ#A%0`OkB6Cc(|SaQt&3HUDe=GXMMhaxV}z;a+%9#>S^f9 zgLeF_;DPQo-}!gWCtPatA;fjv5(hKimtWNW&~I^$kB1UBV-iyDP+lj}+UD$Ijc=y22CFTn#2|C@M7eT==E*WsRjB93#M8b#d8ACJ^9 z>(T<~i=1`-Nbn{sv?iZZ!Bb8@ZU7HBzW0IG>}A*UMUT_8FT2I6oMqJmk(K!#?2YijQ&MyPcEVART2Cpl%`8C9KJ(GA2-a7dH7hK`@ z)Dyt}Hhd+|>#wn%4Eh`SueQg}EaE!zublz#Bpw$Beg?#C4ssmoxu_U({Og$UzJq2EP})>NYlf75rDk&pPM5ooK-5 zd>Wl~X(Vy&TT{USc14^h^a*F(I0^bVt|OfU{RZgM&bqW2`YM`FdV7>#)JNb^od1~f zqF)eaO&JSKeRe8D{$p%D5WLd)TsaNgd_Tg(IfA%;E;Q1}jsF_xQ#0)N3Gm1`n?FEY z*DbY_c{c>y3cWhe*8c+@bB1h@yB`Gnt8eu`b3Exe--qp4j?9nl6!P5(D{g>c%&T;B*;<`Rb+?TZxiFKz7S^9dNS#!%W&2VVs*se?q?o9cAj!ZD*}F-&Se9{#-#^=NY_=1Hnd}L)?1~ z4@Q=Wb1n30GQVNY2cGrx^!Ie8avY=o3_R`hyP^kR>N>9}xAmpq=J^sP&Rp<_a~wIH zxXwR?``<9V)kf&kBkcI~;IUGhzlAu_IJav(>fd%3&a-B)t?vO|?2M~0ac?}o#QKZ* zMa_mjf)gUst|OpN7V4R)apWQ|K7JWNyO`tAEyT?+ z0jYQ|4-?mUMv{Q#q1_roC&y zYe(6<4!qGBKd*ayc%k`Rf$(Z8aa{+6zteXx@(Fa+`420Mp#V4yRlPmFwjk!5myRc{ z;{*=o{Evh|1@z&5cAiH;AH@ARIK5Dp6A!7ga`UAl^7((x&IG>6D(nAu5VfuZ6|D+m z8W4+!q%BK9#dO0~3Pf6{d2w8|3N0(Flob&onDb&q@9qmE<8HR|ZpJ?iLGafy3f zCypEL|8t-7J1Ng;o&Wp3`MmE`zWL>M&pr3vbMNycP49tEm)ZxP2k#u|_Wuk#uJSN! z7{}>-f&*L*|3it}@rtVJX>R{k_{6VcANh+@G4K>7i{$M(@mKZaVdyis10k!u+=gP#DO$RX~2T?8JT;^sGjci@~O z^YDK7r;lMhEobNP6?h7Nw+qdfBD#;`%#%-eh%aTiSwMWC^|g}tP&0n;o$!^3aRGdi zJ21HjPu%0^>3RY6P2zkKdV{~`f--8}2M<5X^EQZf_M+csvvCG6zTz{DxN{yD&VdWB z6}`IebUg8a`gJCJ@>Tu+GjX3eB0G*!f1dpvpD*AOQ2XOnw4QC8UR5{#NZj@-IEOom zr%eU)>7ct`#}N0KL6UZZX=hG_Pxxzo>JBLG05|v?$TJw<4;-IGSs&Ri_S%c%OsjP< zk+{zso7Ky{R_pNnd9cV^@*fqS5$^b}B<}QgKkjb?@jMA`P?x06d?ES^S%_(52GcJ> z+I+@Up7#RxVk4D!rhunQ-SNyIZsSR#@UKHWEyM?!Cx3=dO3jmd;1j{$1(y804t*@o z-L4tV@ke}ao=1G3b`K(M<4mk){Vs@e0db%4X7exO*bcq7hKKB-ZTSTW;x=!a=eXN_ z9{M!u+ivjx96Y&-o7fS2TUxi)Cr9OTJaPMZ7|62cpCcWPi!XXo;=GW!?Uxq|OZW}& zPpbXm1;^*b?0S^-l7?RXUc8L^ckoZE^T4n_a{Lsm^ALRzaT`yxi1Q}#%mokQdz^3# zGUtE?ZeyR({KH%U?#x1f?=_l^QIgi&-0sLn| z-#g3gUk{#C{wEUm8NAs_FOhj0clZiU!WR5t;fpxn3wz2t@EIn|eqJX2>fG`V;5x#)9&+OlC z-kuG8hdRez174}-e;0WB0q%BR0q<7xGXoy4a_e^-J@9z#OWe+%1jbj+Q5D4V%#iH+ zJ^_r-eBw3_o7H`ZHt-x2Jjufa@Hcl__ocHwxZE|j61V*dFL1}x4IWc<@@vQErR@01 zxqa(=j>q#W`{beBB5?279Js8DqrhXAvv36NOJ7OcXXfx?p{Hd3eSx@*vrEnA@8KiA zw-P|R!>KMaFi zf`9C0ZWm?UY(JLc%u#h|G8%y4*z&k43JOtjQ*3ogqo&HYZcF#kcH$ZRHKJox~ zTAg#gflvDH?2`wdJr5YTzY~euc@jZEmH2DH>(sh920TaIZ#fq{uIj+G#BINl`28t_ zYaWI^U-j!1@PxX*@rlF74NhTZNu1k^WB)jQaTdd4@`&4h<&SjdzY@H0xSKBmkE(eX z1vjN`{cXf;zalZ_at?n9`g~R2egf}Q`P}nB_KB`#pGWzJ2@uaSxCuZkhfG`*cv!8|UHsgy^lhA< zA-p`yWa748>3}<)1<(h7=5|{U&za!f2N-+-pX=Zgo9g!I0uQKj^7HV)+YaVs_O@b2NDLNA}5s|5@OfkGWspgWm@3Mcwm(??xN0 z^^fE4&YS{X0v^OT;)kgvZu1$P&O#aAW^j+n!v^p=b$+`F++X7Md6>A3CpDG(I}!cO zK<`!ScdH`SN9$R*2>Pku0lMF29~d@s3~?L3N7eIl#pit1%k}1~;ARbT$-`E30b=9y z;(f6^?uMC0-1>K_`X45qXYS%bA#IrLOdEVs7%#amaS?pFC$O>P`8Md&XR?*dlPAFa zbe(M<8~J7CBlzT~`$bz*Vr`r`>RfsNaoexRU2O0%eC9ykei#FZXTA9B<>uGGC$$xi zqwIJ8fIc_Zt$$zq)qe2w_k#LX1M(a6?2?nbw58ByhGKuQsJs!tB5=E4I2@r zm)QV)o2n;QLZ4a0@f?8o?}k3A=J_+=jrs2QKZZ{d-;aS|Gef3uJmEKaeO1AKfAGMr zoVO48hnYj%j@M>2Pa446)cxT$_#{f$co+CzAbceQnJ3SHhp{fC{=5VK2nw5w`?t`i zr*Zs;!++@F+n8$KM5~&_vaqrmGXyZIXM9CaSs03KHL>SpjpRfqop z-i3)QdH965?XNkK+eH~N+Z@9E>Qv|aKZ3U_|8nrmTzCAd!4s3*{7mq)*Uj%FZsQ4H zzc`nlHXlHrug>#>rg5C@YTe}%w>}A)U-sdH&ur*>RlRBekEs5h0G}`lZ6$ne0FUBV zoGt|KAue+S$ocU({QW2}lK*WFLVq;$Z2@;YCqo~9 zjrBMlnRmnoU)8c0K7&iR-K4s{9!}h87e^^skCVaWE8MS!&ocM~g6?>Z18>~N%`XGb z$HbBRJOF>WZk-SRx1mq%?e_T=`siUilru1*qe|`gPR-U6sq@o`+dSt7+&;^QJN>ye4u&wIP`U@UvGe?)c9t8$7h=|jx(t0z&LREd$^Lf!-?DYlen;x z{;q(&M~zF2_(1V@!pD0Q=RxM%)5PiTz#=R5cO3Z91AX8XehP1soBVQ)zpIpW66X}+ zHqP)ite5N4I_UlCe#I*2y|457m4035=*JEAB96iM`4{5$_kZ!v?7B|FKdJn`gTMR< zUFp}53XZ=+?JuK<+xS!X)!Jv#&`fY|8^v^#5mh&0;9cr^^IGtP(*KRP&3|B9 zPJra|UFiMleE0)+hpHPpS9AQ`>Kru=yhrV)rNr%hOQbP-{T_zC^N;R4oD44CuO)f7 zm^jyG);GfN9_VB0{>Jm*!BKAi58z{7hYmzsULr_=l+= zZu@1_{bkO=IDPItd*2?H+2$zdd)53ugShRl2Y*8GLCl}4z~%SI79;+@ zfoDduQ1-$1#OEWP=W_n}p193hM4c;kJ%V|@T1Q31Z9Lw$IRUaq%z@sM&w)rD))M!b zy^yWG`*kUQX#_Wz z=d$md10GiQb8aE-GcRT5zw9qB6SsNmQS0$n@PN9`+Kmc@&)}DCC>E&?g~V-~v1L3i z9fy4Kk&F(?=!(W6<-4GRqMJHyi2W@ONiU}6DZ_z zK7SPYd=xN==N-|H;VCM4%b5$GGUl@H`-$7XuZm&Hj^iTYc3cuF&NYsHc)$7I0snY2 z=S|KJ55uQD-#xysg9lXo{Lb;OU=w-?ma!Q<5BVSF_NgH*YgYPTe>Oqih=Y&h=M>`3 zd}!e=XYisYpzl%Z?tSoxy52GK*(drn8_0QM3~`&c%pB&@?hNSt_^6?r&rg89W2{@h z5&G0G%u%+?!{Etlc?je;OE-Z>zU0(xgApBC$8mb_dojnbohbm%#2Dam$TSnTpKr%D zV&njPg2T_>Djamj`6uzg_pMPF&g1XIedfpPyplTe34At}x_t&Mu=<8UNPqSmHHx^+ zXD1e}f@x&$vekGRjsRaD>K0l6Cb0A2st z$3M}-T^4fQ^05#lp2@_WdU7-Car@Y`L2p#OI-9u9Y_*lwaX0eyE9Pp4@13pBvhV)| zK0PY`FN3Gm`LGwfL*2*T<|vLoGL9RT`1b*CLtzj;mAKDzA^Uy#sfIqN_WkAH`7_=A z#}l{tNz?vpA1nE3^BTBkBd@QA!M8aY`P`cIdEoirN&IP#FnBF^1n-ZufuBg+&hvn} zPxvSB-WnE4fBypBuC7yF08gvDeGQ(Y>gP6#IDQZH&pxK|4|5=RYCX3r^{R$A{l0v5 zAD8{*1mZUS$X=|MIB$keO#NQoQ_u(0Jb4?uTdl7ji2KY;PChkJh&ZQ&IR5aS3>I?p zripl-xh1Plfv+V#(0aU>IQ{+QY<-aaK1wQrt7+>VO}zeg`Vk3ermvVn}tm(V9Z<$jeTvfY;3cqa6V zX9jWWAI3r#{|Ip#PrkaZat?TA-8_G~L{O*b-+Yd^jmLir z2XZIk`4;*vH7+|e**K>T3PQIMKSvX{K56(50j~xR?#W$~d9}vz*{xq4yPUY~Z)F)9 zNWUHekD`zWe+T~YI@Zg28FUQ$BxbsO#uB%2#_+im(H{K`Bd;szFYq% z@HWIFao!8wIm4}g9z3Y-OT16q#+kvsFZ1CW;kYlcGuxRV#}2%%M-sO__V>)}BLaO8 zJV{g0KAr?WgSg#)doU9v{_CJmHL+06;V(IQ`reqa%tim9_+Q5Ur}7Uol=de(z5z9k ze&ROH#2xH&HsU!J`dn2f&jQb=`hN|0dbT^B`@m!B-1{tXpSiW)x_h0tjVC>ZeelD4 z2A@o&+uySic`oOUo`v`W;EBh%iC)x)5OJG_x+!j-R_K!nt|!=*%tr8ZjD4Phe>Zsa zZPv@a{BQVos`|G5Dvr~S^I}ZecQif| z`h?Q2fnKhE<@)*};seEh7kqkDeSQ+W>qvLM-h+P}_W_3SFq>bY&r$ohm+lYx%-vA+ z-A^bdZu6EXbNep_Z!dN8wl%f$o_!cuHMoeGBfPx^5rn zp4qFFe&W{OGlTUqzDI+{={nm!mhsEX>EN;d@O*e0{BH0>1?#K8w_eNb z=BjyO|K5^qH~lXbO8$?6KCbQyH4`6b+}oj#sPn@e;Eie>JqI2f&h1M6KOj!uYmu!p zh1?A@avjI-Rr}hZ4yVuU?9Vx?2#Mzr@H*wwLwuk-d;@)_ z+GlrM&++%D`aG7n&A)#Tk7GUJp9y_j)x&ylk9z;~WcYZ#W&^n%yc~L?#^rwEKC^}! zrI*P4iXQP-{rwg^s^Zy>uA}U_i=!}0-X?&@_TYGg&nIsC>&@qZorC_ahrSUDMf4kq z)B9rCIA!0w6F$+)_^BJ<^BR1@YCV1j9zX#W|DBHGc)~lgkF1vh;oEbZ|AhZS;c000;PQU4_+JE{l=>Xqz0kL*ad{g0_~{&v>{FkBN2xB_2fAVQI-cXt(0xSvkoqu< zxQ#Pc?IR1J_Z;QO%})HoM8E_1eWE<@^WhUOVIcjw1Ns!cM?&_6x4`{a92djqYxqQ9 zEIzq(qrj;@|7M}Qk5(%DHs()r_e`U3T+)6H|9gnr{&wXv5dWv3kE!q5`40M|y6-yT zM2;t@u8#uXQJj-EpxxEP?e_-YpV{{#t|4yY5g&=?QSe5!zq}1@s@?JbO5Elrxq>;S zwegSemKv=t@(#Z!@sx4t>5ZojN^PB zsO_OIAa3JHVWCSNW?3!G zzj}Y+Ir#K=SuZ}Hf_JHL+?g(fo%*l`&j*w(QwE;IeFkj*W-f6%-zrreRzsh_1tONc zxd{5)Y3_J#hCZ+@^HTm{o)q560LKyYKJkIp*Duh^pH`UwAKz&lXEeY-@-UIO?Qd!n z_ZPS6O%u2u=QX66ra<;yD`y(cYx=sI{5%`o1X}sN9^MuwA%}w8OMBk zjN9I4us)9OO+tA!lZe}S(yQ(}&4u3kBOB+z|77TMFn|(g9K0P9PJ;aPS*l=iznxxnE#T#;7JZ^sk2{qp9!{VyhN{R6Ar{t4)FX1VoG ziyr&PXnxv!1Rl9~kVB;1pW)M?*2NwhFdtMr`-3-@yW5=x-l5K`i--?Y2bzi7e#K7Z z!nzc3#^BS9z$MRjf}2WryD!5hfX|bNeyety|6=Yey+r2EzQhNLr<}NrC%BgVu|1e& z;9k0pv=2OO{sbQXjN?C*UuL?&!}qg(Pt3O+&gOik4`-poIU3xf?gLa4xACO^&U&e< zrxW*?M7Cd2XD)(IqsrS|;HeUKyMG7oP}iZK5x4C|@%Qp1ZzImJ?LLxiSLRO@aXW82 z)ccalh+Ch4^0@%|xVj#^9s2NKZX$+!z5^bc!n_H5yK}kSu*#>8xNSGN8|$&1n@Z@@ z#qK;DO`PUQw*Jex@kHo1Pj%}r1}|25zMZ&j*H7nq`{?ACnIECgsO!N|=ds>A!NOND zPmTdk;(I=W@HwBjQ}1KgwT7xjQg)ph-#^KBkV`qitk#GQ8YIS}!m zM%?x{h0mGDnmQ9)zE|Ni#D5ojqPP$jpH0wv(SK}j=1b^%Ri1agfZGkC-lE(aKX~{T zZg3getpm?|#Pi`1@DspOUvk5;zT(7fe~Z<4b%W=6*+Ak?gZE(L75*J@pE(+*#=hU{ zDY}sTd&jzc77};X3$CXM5oZ+o;ySnfM)1hqZvG%~st?F!-}ijJA^x}WQ%^&&XN=p8 z;d^OhT~8%$^U$mI!5Zj;_&hVhHBsoJ>iXh(;`V#IWq!!|`n$td@}N)`ByXR=C#cRj zJ72`{bS-fA_Wf-LC@hjw&~wMciqZ?%&wQ`TVq52Yp7xe-U_4_4hvb1b$@$ ziGLIHy_kS9E}ui6!TSp`?pt5N@yAsDM}bGwdY=itxt!Y-|Ha^4>N@lk(W~?1CE&eN z+&;Gu_ZfW1lb(|E*yE0V+~D+J)_3p^vk5+Rs($`N+~zrmeaa90&_8j16KXz;CT{hy zXLwu&@egwZar^lPng6oB)GwbO%?L7WX+-FYD)=$aXj+b(~o7H)BKk%eF56>iS$0cgmDu{L?(AO!S zbD>Y7X*uuRMBHaSMs$7i>LK`S9?8a%hkps5=;r?c?^XAKciG5srtaZ!uSC!16SsMe zDgPGmVs(ByLwq)|kHm93^x<*tc%CBeGiReUWAJeS^CtB9s&4!U-Z9PXT^ebq{#kTz8zW!9REwcX=4% z-19PyGp_u{6SwonzatBWKz}%KpDExZ6Wb0v3ZE_%NQv_j@N^{$h2J9n>VE8t(1+Fh z{1AFC#(hWRXXnc~{y_-|eU}aJwAqiiv#xRQ zlsFFs_p16Z4?e+5+2;ksb29Xac?`toF5-FSi|o3V{p$hf>t?w1&l2~U<=K5o=JOZC zZ64xuezcFM^S{PSyNct_$z>qzhKO5z2G?;nLVqTB6i2>ak@3F?AIZXT;G4kBCESJg zG15O1_nFO5^^Mn_S93fGbxuAAys^w3=R)H4_sbAo_CCzn(C6m4^>-4t{R+I#@r=d` z-vUqE!{A=X!Q0h5e1N!(KhebT zSKu7<1oUlcpL!d-L*0k`20X5=3r57bzmdb-c`E|1RB_f3ck+opRj?z*cLVW(>d&?C ziK@EsSMZ?f@7v%pY-p1IAAiSx=(QYw-0O~i40!%zH=hQcRQ+8_+-F8)?P8#%5q#bN<;>gwf8%w>`55%6 z-`F49t@-$O{C|Q^o$}f9X4~KYWY1S}yQ0^PA64sRU*h(Aza`f)-+~S=$Z{Fq zQ{WS+b;o(N!|Cs2?asWD(`_DyKCRwIc#F8rL#m1An-B5l+`@5o2i*So#I4@*2R1$p z`Xix_sr}df9bcQzO11x<37^D&IB#;ja0hYwd!SzU%DB7;pW^B6czVI3>b}9YbU!Z7 z{Ef}&CHe5%%i;TBmo}ys{6OM1&USTwW)^s|$ldNS;Jx$R{6cV#s-Jg*SE{=48hGP) zx6d!&UKIEo#5w#njx(di{ZR1A61Pu?xE-(9zj?fFhtCbrccJi$|KrdnE@1t8(0>HI zQF-`|I9;!0_hoq>cEs%*XH3O&FnBWPj&l}xB_@KzQ%~H+pI*UwnGY9&C!XUW4)XLh zPr)Zg#rZGrPIYd{z$bDC8$1M`V*0mjH~Ihrxqc53_hrA0yYKq+TH<#8$oC;j{13v% zdot%!;-7aX>$_F{*ASN)fYdub&VxRq^3z4!#+mG3bv<76CG=h#s3o4A?&5YmeijPP zCvJT_yE2c$XT0zb=K;qxGY>w+Rc@a~@U+VR8SqJ-&py||{|@K_N4kBUAU;qYHbI|I z=aBEf+xB()?3UpE%HPA4{uY4Osd{(>ahr$CFC3?wCs%{VOPEU?zJ$2X4C_~)AAmlx znB$p?{=O+bck#THI{yoCJAdT!$r5Mo-54*`-$}%6oC(}-kxv4Jp!e?M&cg=iJqTRp z;T6!g@8;Iu3m&U<^M8Ri`rLdoar?fomvQ#K&0hC#{FUl@#}6J*b#gv&+b_B9z-7ES z3HnZT4!jAxOYI9OaHIC?kKixApCad$-=I&R1Csv{_j3GgYJWM1xQ#QmBX{^!^m_rg z{9f?(;H$vR3q0<4nK={wJ*xiSNZkHCS-d=(&woMRrS#v!Kf0LxFX3rw_WKLRpV9Y2 z98RBS9?LBx(a=)p{c0aP1-xT63nf37fp@C$y$d|7=HWkx`wR|^WF_2S6W5n&an-u5yVzx71gL@8R zzTLL`#NL0k{q^?SAIlsryG`GH?>WS+zX$u{EAU@Q+}4M>8h88~9iKvOl%A6QJ_esC z*1OEZSHROJ^3;<2Z*xEUhn4?6#BDrLwSPSX?#K6A;<#yEgHNS8pL`A8k>`$ouP&P( zxeL{ohw%=_hpFf#66Xry1MLf^5w~#$QU7s!)LcT`=FN`_Dap?x;3?!;_=oUGsLw|Y z{u}#yhhluW8)hVU5cx#8F%yZ~c5~Fam;v6c_QzGCSNq^b@ZKZbdFujC40rPv!8`YK z^PjX=3wGB&KT;*E{Jm(aqHi! z?)#k$ed=u%VmQr>;1PUe>q0dC3VagP?l?acuGWkF{xXSi%lO9=cjgJ^=QKPy8$5x} z+sOJoj<}8AqsA)+o>BYD_26BqZahYOpm^SbK7P2nUq6C(tNQPM#9k*}pRJ!k#D6Gp zC;zi}K8yjskhqOszHeXZ#*NTNP(N`@F@J~NtMdFhc*g@+h~Puj+;u zyx8yd34jOZxp^aTr(aidzpy;aiO_eKR{ySMWXGnu%}bGxdCLGTV$-&TXuU^)+p=Q8k4bC|A@HF zn+G?pU}tuI%&uR2sV`YcJv@N8)tg1^zYG5`CB$vN{OY`YB)CV#xfVY0RcwIUn&wLI z#KSx;hoC+@D*o#J`5O+W^B#1PpAVpqRj|MCABp?S-r2e&bW?FSRL{Y}9~ z>fr+DyYt=tE5W^LzMTsmSM&Bh@Sr*ez5w2)&iNk@ck+*YYG>sCN9c2W?s)cj!uA)N zJ3S@icnEPjUJ+dQN`B@LAE^GUCT`nJ-p`4SqOxoR_jYo-^4h=sj?eSNop#m!{yuT~ zTmeS0@AL43{yuO#dlR=lLG^xd0eG$&_vyrK{84;m${AcH%(2i%)OqGq@Jxw2pKe-y{7ZKWz>oZu{F9aO;l-_o}*d9C&&k zxBf=>C)7Iq8}t!XmtF_&D0BP#44%NgAoFL>r|dWu_FG?-#BIMaUvhpHvYlxpZu{lO zMkGE_=#x+JMB5SLbv^X?>bma{hmRYaRCVBA(08eE{Fb=ST%Vn9QpdLYhut?n#OyZ4 zi#Ycs?&QDNorkH!o$?~o$UK5 za^2JfeQLg2e*tmZuka#{6J^od3vNHBV;>lP^Co;U7;tI#3+U4~v0lzg!=4$qj*TX6 z=T*L1M`hqKb>3S9zFF<3Cxa){yt)$HulV1H+x|v5OjFD0Fwa5XsmA>);&}!ix+850 zdh;yD?^oxFVZ@zzGKz&)Lq85Ycoi?bL(%?`qJNRW)6ky@9=VMH%B8uKI9*@k)qVTL z&BSd!d+Jy(*9;Y;FnT!QmC9=X4| z$MYP2M)lVZF24^Y`J4;hjf0!;6~yiLYNDIj^Tq~;2mAHwapE=}&p4hBlAoX8pHSC> z!(U*1q={P)eKmM`7*B}+0yvep9hdM#1`_8+;y$x)HXf;~j}y-`|IWrAfzJ!@EQ zeB${0GdmB(XHS~P&ioIt0m_6aByQu0sk$)}yltvG&LzZs=GknVGT%;ze*}MjTzvSmd=)I@&Q|F^!pMuBL=Zbetah!E(K93=8`xQ8g#|!1y%psm<_Q>u>VPvEc zJ{fg=cN%e@`I=2Amd_E-gYZw*bDWQYzXPAj=?r8X{{tRX*9CjL#PLT0ZhbLv8^8BD z4saLv9|3)by1&}s@Nt6!7}zdEd@A%^`@8)w2luOWdJl1*!7s1TOJttB2z`&bUjCH0 zvo1d12Jb*VJufp49?sxA#6Op~&+L@Vr}(df-rLMV>F+hfoq4G0&jXInaakXkZ!bXK zqw3@j;G5MxwbLu?->d4$Xz+-tOVhypGu`>DA#U@K#QRE1(ckspk<|>aY|NjD`^;C_ z_@%!$IXsYEM?>NB5`5CX@=Gegzb9_<(|!a4nQy~ssaqaZ=Z7i8?dKtbc)hHyGCk;x=z#4-e&fe%ib#9DnZ^WzGzGgZ1glInNhBzb|n+|BF?kgK{2BP0F$~1#L*hO&DSIxJ`m^IEjx(*!6+ZC5p>Cfk z#0Q$6^Po?ay7i6VxktMB*~D$0JxR_Ro;G(tA5-h`aqvb}2YSJa)j8p3_~Q)$IJB3+&-u`&)VQBa+-DB%SC_7U-mliz{lxRk*4chF!v87gd*(2Z zdG(R_RJ!@jZ*#xuRQv~md)4*z;o$A6j;$qb$0c$v``>|hE`UB?#dC*nHQ$~RpRsHp z_q#ISY5acKV)*a&4!4_9pWB>F+^*}Sn&*|!$A`Ge>vQv7hmRYKx0kc^WSca{-;Ntv63=k(ZdHd1i97WWe~M@=X3`?)D}(NK z*MP@xfD-=>_;}WEelShVQ^e_I8@SHP!ZcX#{`f%mBWB@Ldh>g0Fe8C92devjkaysO*)0Eg4x``eK@ z%AA=EeMg;Je++TkucVq+XG349_Pd*j=b5qn*6#z*r&L{f3p}9u^)-0MAKmc`rCU5c zv#?)2XAyVKd!yX?2JlW*Z_grb`xQKft={LCnL8YR+^i!e=bV2M_dv7dkI&$r@-mhA zw)+R{pTO@si_g)-ZJcdt+}pu}>iY3!@U$Ao$H42<_0+$><5S%6d;y-T_@EDMKIis3 zpZJN}I2+aassxWHUQgWSGmhWi#O0qk3;H@W?tg;bkL#LUkkng<50vL8;p3g??$;*p z$ZR+NN&LOcQNGR2A924t!`%8j@GeykCxXXS-KzudRdwc6@T5A&UP|2N$Fq#-^F35Qx|6|O5wO$Sa&#!X#cb3D)4VG_$k$JladcRuN z#}l{l$9CrU*RY*QLZ4Rc_JVgE=x+CC@D5eyy}j%oX<@zetDd->hsDbOBnSE|5o<>iz2l96Z|);^|;5U9Dnp;u5XRd?*|_5Vj%18 z7~!ql-?h+R1}@(#i?>D1o#38H?2lz>lEiHu^40u#6Z+`4Jb%80|98-5kN}y7LqB7m zu&R3p5O?Y}uJ= zKW#oBZrcq{b^HGay$642Pu61VN94{*18 zEc5}?=LYzk3Vmj}TYo!vms;;n!N>C?H#ibLUqPQc&h4|)SGHgCF{*w0U^#K;9C91$ zF$^Y5+{WLo@^&0}e5~95&yN4xY~Biyhu7er!52xQJeh6(!~S*ZTsHwcp6~Xb10GfD zYXxzqzTpF#JMqiRSGp2}_pAANA$YeM-}}MCs@}d#+-GXD=W3}Bn~B?a zJe@qDh9b}Ve9Qfc?&glC5Imvwqr-?>pX5r`zXYEXq3ey$1)$f;1fNM zpOA6P`Od~epP#`2ME1Th#BIA7yx%ANs&Mr5`K!6^b{E4Zjlvl~oEzX1SkK@{@VnsC zK7xV7`8aq&jr+UcF;$ng|DNNFZ(^SZ;6GmYH@sf_;I+i_48DwxSRHsH^!R7C&Yw!$ z)|1#wen#TF5D)( zDDj*R?os?!@Wg1h{(0g)vmiTf<^1_G^qYNd{Q*C4Jh{qe7I8aI68Nh5R}p_J^p&cP zolo3;J_oXFo)gfAQOKoVPl2~px#QVH+_oFMk2!7!m>;08Q}blEA6cLJk>`W#UjcB> z{v6U6M7Ef?vk&g;Zudm!Bd4%%9Q2PspHS!jSD^QX*hkjUH{i)@xKv7ixBiLSO{)4f z65Lbkj;EZs%|q&E?$2B@+>2iJ-6#1T`k?w8 z$k3lT{vLJS9tG}I?mYyfH++@W!sg!9Y@^u*NeA$??iv^g-=H9@6S1W+~7Da zfaF~ECG=r+-MY;$9Dn-^cb>iAl`8&8#BDqgT*u8sphtnr_j#5g&J)1H>T@rDfqxVQ zQpW2Q=o8q`E``r~;7QaO+3$w@%JF;D`1*-E>*Y(HCz8()^ywqq{f&ZeM&Xor;^4h% z9zF1l{rM4<1$HGM%{Xmwc}vhR4hY577C- zK1$fm{F%7V?Ah;p@)7j@kNBxY&~FB(U*UJiGvMRQAg4Y=D;Y?B=786!`;$%J5p@nc z2|TdC?Q<1z`hJ*x_4!HYgHzo4H^6&T{mg*-)p+gp2kTFRfQQ^47)w0QT*H%up7Y}Q zDUSZJtX{@(9&wxh=r;V4+o8Y0@xevh7CyH^pTLHLV}W@HJbf-VaSePvBknV|WXDVL zJZKQNo5WXSKL`CN;;Bf-1H;xzZN`p7WY@K3!Z~d zSdGiO;Jstq{yS{NarWXyi^Q2n+~zZ0%KAHy@iO8AogWrL?+vpa%igSozftx1YUtBQ zJTAY@L(tc$cwUBH)*Xh;dp z52$gu3cOg|SL_1sQT6j>a8H%H-Os=is@*@(eQjqxcNBPKuA3hQzFDn{qlwe^Nb@41mwe7I zGaHFJ`KSBe_HjM$nNYuWk0Nf@qkNC6^fv;YRQvK-;2yQ^?soj?(2d7X{Oo}~rRLk0#PiIa zm}N$mjTy8($M5+g8w`U_K5-jotdxPo830d?cJn2~?Y@bZXY+h9^oe}8{wCs1-cIM2 z$hbTOeN2t}7sLmu!-IBUAN(4<8G-lyhyjs!yx`qxo=*jjs(9vu=j6HD zZ6)qANA?@9TcGz;y7kY2ckk)u-x0Utn0$@%>A{RFqmRZq^IY|-1-yF?x6dWS^UTQX z{0#8Z=2qg?KedrV-3b07eA>(1KJSD3aUhkv{Q#fDEY{;VXm+P_j580&eKzyKa zoKD=CSCifCE`(2fGAH0{#CayTcPW>Y%fRn}PfU&Dlh6krWS?`O|AM&B(8UuTQfIaw z!to^c;wL2j@!)lNZeB~=e*dBP$hte#;kRY|#pi1HbSeLTfcF%-{d+_|$<4n8&r#R8 z+tKInY(8^?Zhao{f$~3vxE-(XI_|;+=*SW9=~4A_Ik^12SLxSD;Nki1b}xs2@=#92 z0{DLj9+<;G#%0@~9Dgd{_Q@wcVEn{w{F&Q%zWp2iN5dy@xZ7t9c#k@VTm{~y*5d=j z>3x&zx|ZwB*P+kZ$L;?uxKZb~++D2C(^(&RUu=Je-VJ6FSEZN@!tv_j4{BlnUBFU3FcFv z--`Y|ifuQE2`K(v;x_)Ye1AArY#2Ov69dto4xgCXM=pathQ9~>1KPbCJcIRx=FQXa z=~Va0-zM%eBl}%1?@909_)JT7d}aO=5x4OtaBi147Z7*qfT|B`9G~<1jmw$Pw@>82 z#U~E`46RrDcnT4`@Ax$J^Z5q)6y6_{`MLM*98W~u2d)CIoa$~jMBMhvj~mK;?6w8E&UKbZLR~)oXFq|Wc)$m_V;n557?f~%g{$pVg1?Ae@5KShmP^gCC(k_ z^McNLRO@a(@RX`!)4_A5yM2x(F0t@4{J(9)o%u=ot$j$lSHdT=C+mbi0UlR%H4W}n z@eiU~VAenRBm2LB^;<^VXO7M0r-Yj^M?xR*F>}8sbiUz z8n@5ii2KYF**wen;dSWSRh|3>yhp{e%O5ds+t~`28K#K1?N`2fU!xrQFx|hmkChyj zSqps|ZYWBBFMwWdsqF>*%h2ZzXCV52i%-6r@3arc8R_6Scf$HA0?&9^e-d~#aT|YS z!0i))-g^%FNbNca-29yld{D;9V+jc|My5!@a#|_iM+W=7UJDa%8bDP@Vm%+zO<`s@^AgHKFdCq4__sP0R@3*L1&`%8X) z29M%kD}4AUjxtX^Y*zVy0^DE#CC(n= zcK*aMk)=Ki+ZTC80TBIx#H~J2&Exe~j8GW*MpZvgfj)x!y|~R`V&H)hY~V#Q?sI(T zoQWjK{qNV{A6EB~egkjxvw_69&uEUnx75vxiQD*tXm2EbRzvSmb!;VZpV^RIcUVs5 zZ1^Ov;P~%`PZxaZ)V}{bc%!O&?}2x!>z7~PZ{FjkQ4Y*L`*Hl4H#z@pXm=WMpEGmsKgTZb3v9E$)nCg&k`>Cg8AaUA2czPdOx*S>jaP`zEa?5Jo-76L zROg}-hz~R$V$cWGdG99Tw%ruwe*^OQIP@`9|33has`>LHcv_t+b{@<9&0pZo=K;iR zyAf=)QV-`5r_W7g^Ct8BIMI*er*21_w}Gdz??~PFCwP=TpJ*R)Kje=GaJ#__8_4;s zinvqHiW zN_?PscsKMtyRnh9n*#R--TYJHdFILNx{G4r4H}O;qhO=k#!KAhIjZtA2|PU6?LPy& z?T>E01U#8{$>FCD|?#9fOe%(jhXFku)XQ> zVAk~2jXjCmes!t3F%3L%m^=P@@H%x)IFY!GKaLFt!(gt2KB)4LfIfotE^$5qePXt| z-PgdQIDkkVK825&%Bfg~ybUSfc#^n}D%X7z!PEGCVGO4^g1FD%mp92n^0}6{%}=G; z-(wD^eHN23iFWUEe6G#rS>pT$@qy;;CiwTNbLqF>^1&W1^>@_91n$m;PjK%Q;_&ycWPfbW zrUyKA8mD4AxkQS&1eRax5vQ!Wp4gH{1bGa*gkN(*=#q7w~NW-`Yac$C|Hmw%X9;C@U5>ZbEJjkx_iktnC% z$o+(v_?*U1Y=r(LM^AqTM4f*=1#c^H$G?3s$CG)B4KNI5G;y0Z`TUiP%Msx1>O8Ov zJfqHO7r{T-%WjXq(y%x^P8aGh3@~_dX=Dax_x{CUIrdLi@DV8qlnwj zImnukaXE*$?N`3aPp9~+?|pjO@p%~8?W^;j!N;h&F_`uh>z||M$tdv3xg5CUb0%@y zuVjKb%8gkDE}zGc^U|5{Nhtp~ae6Q8K-~5>SLL&sxX;kdIXtA!tb;yBt*;I6HwW_z#^7~VK;Ir@AbGnJdjBGBf^I`O zkN2SusOy3sz)B97nuiC*+n-$Q<)%D|P z#O=68-se0NLw^gn!F8)#pFT@G&)~xwq?P&kF7&~pxkHQKvuz2-?^X5COFYl)geZ+c z_soINr^d2@jN?LZj~d@IiTljze)qeshCV*t?ejO{w!bMH(f^D%Um`wG{=a}et=9D~ z;PDH1{>!@9uay10xF9Hme<^XFS)Ywl>Sx&D@39GKWuBZ#+|IYOIwxFB+!?R8_$6)d ze^~U@3?y%_gU7sX{ylh7`RA6ge+<`axNJ5D6Swi?m$-e7B2K@@k?j|zmuZH+L)EKx z_=i8`c~Zr8=62}2rn>zf2luFX`wF;oQG>uV}_N}cnU z5V!eHG;{oN&b)=V{oY-fLoy%!4xfmsW4+*;E8X$$RKfn~KQWi}SO}h6$m4z|KW&Z% z4`U$?!%TVx++e@k3HnXqPv<`SkUVTV-Ns*)tyeNX_jCBM+4?VazJj=&4~^=+*%IQ; z`tqW#Vt+ds`l!19a|w8{x^IvGdmtME6kbBF$n{_b?x!0UHk;x^7+b-tQS+{WqI z%m$5YXCly7s`~@yf+w)9C2!Y?el!~hzX$#qy8g3|&-rQdGxVF)IeA1S$62h-UB%#G z9~+4O0`N+;ew&HgekIT1c4Z!RfCq;1xX3u(Fa9deFM)Tf_1g;{FMiKa&ZRk3+;032 z-0lYScN%e<|7e~&{s!<|b?!P7J{ja0+pXCMeQLVf=P~GmE4keQGwM9K*Wnyb zP{mVB+~&=Tg1R>^Z_`fPUPr?=dq3xH_@vc+hLofKt)KoY;!+#L%l;fRgX5`Gc^Cm6 zD`T~cdj)YDXZTI#UtndffIg`1hnx-`Q1#~u_#}Q{gNbZs?iGJ*jMsv10*^h!`d;we zt2zE$b>DIcKKMH+^I=@{3z5gK=%0BxT^l4R>-XiWZ zo3i5~b#>dB827)h&w&{C{lF85N7l=c#GU!9;%_7FGq{;gR&rg|4t)?4S;p}S@Gf=# z^Dg4f`n`xly$E@D8TvMLp7{ZK&nGN=4h!Bti{nhG{Fi|zmCqt@uey$CA@0P3?<<&x zc;dtdn$Pz^AN!t#>!5!F{$UtM9=-zis`J(MvpN2DweRmo+{Tlp`+xQ!*D0mYS02s{ ziho%2GkIW3_-S(*cyb|glofL)eA-o=c>($azDEMn#e5HaRONZMAjcU7M;SFm#O?eE ztLxAz;`V!EB&V`puZBq zYMK9@BRKxdD7U{CJZG+(PXX^4>E^SETmO{$zT#%^;P$M)lz*60MZcJVyq|Rw{JYh- zKTVvj3$p7S%ffsKA1^-tBYc-R+^-xpj{AW}v9U;=4TWUFA3k>t^a|zZ8!Wn*GW8WhSf0l9MAI^<;Ii|xAV=f>d!oIkGjrkg^%|@ z?iY^N=0@%pK>4(97RJliz>*fw<4mm*U_dK6}(6pI5X0UQm<~&oh6> zUMF_ozv_rP{ZjRz2|S|ubq08ws&AKpcOKx5|1ZRCo-;U?;y7ad1$|Q0v7d?i%wrrp zSxLWg=dw?Hj5}}BiQD+Qk94=Y1p4G3cziEM9yU07x-Wz}nT!1044+1ohv(qq9mnlr z`kG&%Z>w~-yW6~h>%)P>Z65sdIFJ&wyB0ioF@wv&F9Y{{$L-=W$vh$)*Bw_t|2A=- zxfQ+ayB_(`;h2P^mHIPzKIg4YozLeGw{a#9;C4lSJoLS)UY!r#hPo>2^m_2{5gefK zyWt;ykjJGL@qZ3|m(qLcIL%cbmvb=m8qsfb z_@sXPN#Zs?G2F^~8tr@ye|f)E`a67qjfXB)R6H|?+j*NQ<0nMF7(92ro1aeHX*bFt z{Re)xf(L(KkO%%cc=|-15)&~qd`Gg67r&Pwd)dLnZ9K6$ce{(gyVQDb1rOr@DDj_7 zTs#qq^W!e!HvSa8Cv7?6`6qn5weEKR1AXixPMzEb8%)>jj?dA|Wt_)?2kzngJOKaM z#BINNaBz?~>%kjUy*d#*2lYzy8^PrUoA7&x+jycwxIwyY;yhj5%@*ygi9{p4l#2=Nma3b0Kk?hu#u*o^OZ0 z9|7XHU>=1&UtO2I<@n=bhpeRiUg#qu-TuGAKZ6OoC*qkx<7eZk3%KWX0{Y@Ix6ez&2b!PXLLX4`f5al|KegZbJ(ReOf3w=Z!o;0*I+5Gm z5s{q@9$vs4)7{(xpCI-lnODz2AJ64+{}B;<4xZe=K<*Fh5aMZ6$dW+^|jDjPK8umYuhuK8nQ>^Oknc!WjUsn(xXg=Q$eJ3WG^eg>4 zdb610^k2sD?1=p26Sw(nQ|oRT^m4tH5B*WZ>F;G^?| zqlJIMOGfsEbKnzG_wnw6KGMs2q}#j;o@i!c@fp!z_m?ZO@uOUtvBd2>iA{3HSwft? zS2L^s9C5BCF1ZJCew;_#_RAY!D%bDV!M_&^Nb>(8c$=D6pTQ@9zh_#HMt%TKUe7?T ze=l0b?S^qZy9@Mx6@C;0nLqCkxBZQjF_(B~OLn+_f}8J4-02tQA&%YVQ0QX;xBe(_ zg9gR_1n^AIt=~x8XZGlK-nf^zZ8v=lkFWT=3T|*P6mCLCRu@cKKBu8&_1fko4Yken zOO9=5cIbrV73&&SwN|ZaX{}$iqycPpO?gAa#R`{~w60#+w4{3Vl4Dy)b>ysq!m{dB zZB>P3wQE;3G#A&jE+yYpEfvR96cn`D{|dF%FJ8fp6PMREHaFBSbz9apt!!wXvwCf7 z)2fD*j%RUMO-ae*f}%-euwmxvRZXp{o3qVKSV7OIsD58vP`GxLeL-l+>b0v{|K~58)M~RA z`oFx?|9^NzkKSoYe*XhWh5J<~1|xBW3k1ODc{zreczv^H@avUs15dD`-Lg zck$$s#xcSN6?>c?FAUv8`%tUcI8FDAdxhBD8FE^U6?j z{rb?7|GCszJca(&m1QlhWlrTNJFIL;Yx9aiXLS@74fM>qf)d-pKrbsQa-JFBWkp4J zSwV5hlGdhm4fASBtESg9v{Id4ZeJw)h?1F#&s@8rwTX*k$k9Nvcg%eUNaogV+5 zUD<$k|MevWekbzMhUHDG28!jszIdXOhKgW~Kh(eD)y0&YGAb{tg6sZ&c_`-ety=oO z4q?Ld=7xsfi=d#8LYP_Kx}-7K6yf7W(U!zdaa9)-))yB}b{0;3D=*r@<)L+UBMh~! z4%M$++C=}6J+BnDv@Q)bty)IUG}{4k5>#1SIH`P2Jt@l@))f@Yo3Mgrp>z1D2(GJ` zu(qYi&Tf(x(AsWkC|$d3Swl087FFAUCd{M~+o)UmJ5#G>MbnaorDbJV%YM4-t}w4A zR5hz?PQ}cMS+$|V3rzNj^74wH-4$!+%&vAem8$ZYv&$*q+QwCd6GF2Jrj+r~r;tu{ za~hU8OR8YP@`l!VP0g)q>sQR8a#djmc~(JDNy~Aomdsz>d~EgV)sYFdT2=&SEV0W@ z+?-WY-qcJ7x9JTHOMl0RwyN@mC99VncIei8vm(kg>bZtvxuvjAN z>rM6C+E8$H)2h~%&|#qkp@O2mr%G1UuUNf26j{BV&Q(>jrF4d>Rz=pfhRT{(x3ny- zZw}Qotf1KXUN*gI`s`3i$QhJSg|pp+=)g?*uQRy6n zDuRX1?!Lu-B4r}f8l2R+k{nx`j&a&3nBG=6y{UQS`ugUEg2I-DR;Rcg7HL{t(HLyp zBKT~9w82lNI_(_2XD?f3UsE5UHj6o@RBfFk^3j~@d1#9i$|hCdY*Ku!5wiQvtjT31 z(`_>aMe3AIPtuH;GQm#3fl}FT`eo;HMX;)@CRDOyNkdCZhz~QN`E%y<4VFz?D6(Qj zXvH$;c-{9*6U~}+O%YrWIRDwWnl2EQ)JJTvQ+NVWHVO;)qNld`I2zMnYjaH_C39&N zUHVXkk<3?AG|dUthH55+n#}aN!qD`pIWy;%%&F*Wu(G^%p0w7ulxAe4dA0Lz+g#td zyNDW@w|d3el?~+$%j#(>#GXkPR9j3S`enc^U)49=_@x!ckRY3-%JR@kT3(@=it132 zJweVY*y0FKFo{~EvrYZtrWH-CO${wGD}v4p>pLTC@nooV3u9WgP0N~A(D@})RaH|+ z7je8WDuWfXoM!r!w}OJ^2AWY^!)UH=5hG=%sd>#78ERfiV_{jJYKs+L8k!sOPwabY zWqs4C>@u(CQLk z(Cho=5gmA(i|63l|2m0g&@7r$Q)CYm&MDqi8Yh=m(=2apttgz*x^n3XryOL9S&$B- zT+l*&U7J@G4AHpQsyA(3qy3?q6sv&c`+^~vO`*3F)vh7et4+7Vy3g#)RY7X^|^7C#i}h^ z9XT#kQZkcDdR?ESwxWizL053)C1oM|kG`kWR4A}JJZ(yH?;uoMNVSH_C@mjnd$tGl z3OXgWuFU>(%d$0nW~gTE;w5w?yo%1&b)i}16}4rR6pM8&bT;To6DQe&`S0vv>U3IO zxaI5)u3gd6uyo#>is@y1h7Uz73DE^mUytl{D-9BF%=RDj-*eC_C)G8r%`4}XR!wMW zT^(`u396b!g`sR=&F&tqn=(@<1Jh^H;b~2U-4p0Flj#I4$LVa{FD#rzTeOp#lBLJ2 zZE3BVUfr;+VFfirBV4kgrM_h8(qP%lzIbbFL9$?V*tpqVwmY%FM9NolBB zb{Lha3f_GSiP=MdbJuKTQ!C}hxwe@?MRILqPT9mQo~Q^G6%MGTQ%#F=;||SEEUPUq zDWIcn0dKfdoKdZ^2Q+6e%jcEOUG@K%d$YDil4M)7ei9K9)1yXECxcoNWYu|zPe=lk z4TzQmnYn-cUCYb|bB_>J``(9p&evyG0#Xd_<~A%_W;Q__09gATi3hq@S&={%zV_}v z57l1X1H^YC6^PmCyO@@=myTC2+#=CXn$n@g)S-w61K^ zHN$)M`-ma+$!=~(kP|2{7_#v9&h&dFhqQC|rwST>nof1?8o25De^xkj z;R51*-;NnEPW1xfe?z2izgPe2jP=o>XAU?*a)<(KN1yV3)E{`CGTx>)s&Gi4N{<+y zV_&Z>`ZEU3Mf>V$x$ix%7XKLy;WiD%DyU6f7jAYvUu-uF*fw5X{o?xwsD1ms!r#W9 z?i7pEr-6afR^jP-o7V?*8r))+)nb9)#brtr%iH72Qq)Sg!u=HQR#vHC8G9hXfN>4P ztEZh=SL4ZG%Alyrb!l)mPoGwM*)`*u=3bFR@* z{B1m#ix-?}SwJ~02StwFXm`7Qdfvam#U5C%axG4ipi*?22uYnitoK!Mg8wV8klKJ# z1XAL=i0hgr4pM7bi&6(;M5%*6U~3$B$<6%OL4{SFdl>3LPa~@IhQ+a*7l~U1#~ZAH z4w#J(wvRCn-*k$rZXqTVceBR2n5WnwyO@Jt@2l+|LD6vF1bKH-ePUs;5^dZi7+O7C z$<5AjGqD>^xn09Or$q=NKB8Hr&+e>Y>Te{ub}t@ohrI+W0cTL0Y9rS; z<_NCBf&xep*x-ag6EsBLFMcX$+EbETdAu}z7=RjZX=mjj zVT|a32s&bQV?~-GodOZd8y$UKa&})F_2?|plaYI;V`swy#U!3*jziQQo z0F>u&$$qGtVLn~y$MggEFoP3__d%_}h%)n(ind0t(^==H-o6y7Rir?4o24FWT8s|vp)2v-0lc0Un#>4qg>Li}hym~t23l)#G=mb-oU z(S9T(YOZ{P_-RlLuRAa%ow4}B`m1TLtSSXx*?H5>sR+*g0#}vEn6Wl#g8Qd)3|~XcnvR7|08n_9;#YAO@e*-DbDnKL|F(1x=ywqP_ii6CaqFFZvS0Pj8JOIs+9SBSf{Mb1w1$ zsk>k9uGhab4u=Wgy^Ll*{kOx>5D0v>U&`u1vJG)v6yt$^O^k;Qny#DxoDEP3#eCRP z%$E+3D0u`@=ekZXS~Z1pi5PP8gd`?3EU?PzT%Iw-OTLV`B&MR$qWg*mn696I-C;{s zZ%=z}6YR|SSwx2IX-LH*F^dR3*Ly&}^6tCEL&cns)ijSqe*6i6>XvSHB~k@Z@Gn=k{J(mony1D5&4DFhF&%!?AKkYEMu#-u z-`6Sv3Di{-*pBJu5t$a)ytQ?%k%$4#`a)DK;%2MOW2Nz}Xp;0=OvDWSi@Y0vgsrN9 zHKIR$vZgeUS%nV6N~ZCeTvY{&$jW%}3Kt8I&&PHpxwDnRDm-Qf5-_zx?`=0?Du>8-)Fq&`p1tS$qKqVProC<&>wY3^HD?) zzp47O!XSRe4QHyLIIhOU1;y4NdR$&vwZOv|l*pgSuN(?vTj7`f@3%QPkn{z+8)OU#$E1s1dWA9p+B1ba`m!R%JW#L0gw%pi1PMdx?d!}N zZ=)%7CKu{YC}G$A6+m_18~_;gfA}Cav<*$|6R;tsa>mOqS>cvUFg@e%izFg9L3WwM z6e^m7$)x8J6iJ%7*sb1{2>)M!g~OBo0Z-?Lk!uyUf*6B2uC#DHF>paDA=<&;gD)>@ zEUW-Htmo9OzZfkj;@hAPgHh3hAHez)Dv(oNU4Jq$WNm#C*iZW-V=Ny&sKAMaulFA? zCH4jMwMu<0?oBQC3HMTW?KIe)fXj-}@SsLnenV1QQke3P2%nVs7?x%P)r(V8F>V%u z<786ZI$A*rf|W$0Z`OlGuh!FIdZUab)%2eA#$(2fab!K2{T-d9T^G6F?$1ENXh zWn(ax$9CaC8>2HM9beB4A`;Y@dTT+Q(Kj;64E_;;>)!MF9jLdF&)f-x8Q=!MLZ%eR zoNvfa`7?0_!zosPZXjO&<3(^l3I~31xn6DO+r{(m&I|G$$c}drac+MD_xnT~Mkl`q z*J6SwcS<|cy7)i>1I)|S_H+I+E>2t)2eIkqjcbcb(#4&>j<@U0cD*OV?dDJ}=xpb5 zK~y68wSSTd8n+~-eBJC<4xg+LAn!Lw)Qw1LGFaUu{<0z}0bNyft3Sun9uV@diMik6 zL!jmUGloE^AAEHA9RdQuW!w*Q$aj_0K98F0s!x}|9k6(|9HSF&iLm?r#AC(gpR1*k zFOUp6MRw?J2Zh^uPa64Is-LFM1yl(@NatQa9 z$Fx8$xFh=~STwcl?Od|A;Sfzp$C7k0H3=iq4@xTEFrH5ze$0?pdcpxV`zNO#V3UBV z;i|J~K@7H4;U5UZ5W%`7GyJQvynEaFl(v{o%}h9xd)#?jAY%fZJ!aX<{`|@3Xa^Qr z&n?Mu#ov$uNN~fX6d6wgczj#`kC+L=Jk(dvH&D;Zq;qTN1-Cvm*aa<-MgyaA>M?l> zh=ScY=wFPg*(H*hm$z5_=(ek9dkFpQJtJ8GNwikQ1S=P`Y+e7pc-cJ6 zU+}&XSHoG&nd5W8E_jJDT zk6O)?h({{ZLjMtC=^uBBT9m~zBNapk@r@d|0l$SCz;lvVP8tY}*s$pWwJ4z`BJNaB#3Y|Md zgM>H5HbytItDceqk|bCoK_*<>!19%{Oo&!}71|$2bA&72%-0Lb8WbwIb z%&#Imm2c&0fO$D^G2p$!rqEJ`7o-a)7-_r0Kf8a8jVBcTCb7lINI+VFUR~LV<@w0j zYO50)uI{Xuv8FD!ziUgx1O2*!qXJ;3;RFf$^nm*p?vN~8S_N5*)fvL?;3G7EbpiKs1Z$*6@L;pen>o+Mc8R_| zp}sawgWjjm`-ELf@P=V7azf(*ZMCNnNrM(-B(4lS#-D>07==y{P)^|q5yIf(-zB)f zRvdPM9V&VMu-5f<3CadOQc>Xe`Ir*A{BHwJ6-7@)aTb?q6p{_23iu0(0^qOpc8sk3 zZA|tzh-#`5amFh!{5025H!f#tul^Cr!BRlvrdc_((;W5tum489(g=b8x?S!K;o8QZ zdZrEn$2<}mSZX@t01dFw3KisKey*2=X2gmVxqE^--91d-!30in@JpyF4WXo3^bk~W z0xtwyFo**A=?%Qr3Qzv=?gHG*O>I${?%p0hUS2e2DPjt@2VUn}1`8*ES7Q+pKD|q&k>2zqhOpZiI z7UCHE^U*NM?u>lhZgmL+QqUpl&iGf+Xy+k|A0NLscaOg&b$GJcZ-w)W=LX%(aG7$I zSyE++i8a@1>$Q{}LdnEsl*#99iWenkKMYphQo@geRihB5WZ|^T3U>sOjk?T&# z%q31cRd33Iaw!Wz_FMq0FEFQ|;Dhjq-2o3rL(2K`cU;H@GGVJ)E16IjT)3eec|^5D zKaRfxH3aj6BtKa5*LWq_5`@r>+!+Z~E*dNf9CC(*QV^klv|Bz;>TO_y&?+`rfFppM z&R~Ezmd0v4&eN`j;XKRu=wp0Nx@k;sNiZ0G06EtLgW#H=f~4nbf><>5R{kN;2kQyz zY##se&XRv+=e~fV3~s{6R*SWl`)99!4)GDbcA5;)7nHaDx40DY)Ck4ose{zlCXNwu|9_gX#k&cs{?2MlSB0vN;MbF8z zW>r8CT*%_+G2Ctjl?#-Dr+|m4y1%Z7ufQu^6 zt#_#rfG3_rc~LzpgaIjuIFPzZ?Ql}604Kv0F32I@fF5Dw`I9Q)~Hn$eTuTlpE^=ce&MYA0&tnWl^5^gOo&-vrsH7F zJghHgtLUN3%M^D(ld^qA@LF@wR^iP98yQz!{J~D@4+6=V^xzi-JtJU=79f>~T#pRq zVH`f89V13QLX0eqy~T2i<0+~fr5?aHW6}>`-4KS}Md|J=rsn%_T z-~M?E&s}SlLgL;BD+e~Z&PYL6kE7QV%UR-z3+aw^ujC-CU_jm7zVO2w7iBrOK%5#z z^m<8Ny)n5r|6EFAFwO5JnocMpchZncj(F-_;5;}M+;;Vjf_@xrVw>wl`fK@S!nb5S z?LfQEoS^#*nuNrCknj<-=F3t1UCta{E~KxBEo+}m%LU>p2i_ly`)l#79CXTlLX#c&*W|{LdkQUpYTU5Lo`8TAlsF-x8f`l$F%S`T<=(z5BGK0n`iP%61pIQ9Xmb#J>0ZPA?xMlxs6 z#(OnFTgTPr@$sYK1Q8>f>V5(Tq6DRA^ZRd-{FilcouP;*#_ z2&o;Nfzknf`3bfPPK)1i2%SX9&dRI@2THm9|l`eX)Kr2b%E$pT2dnG zm@dXr44m&c3lW`5rB%u(L^KHz*)R$8w7xWR$aqMFFv)x$l^T~3QiHb%iZx61eNoI$ zXU88L2MPRb9lk`;)4xbQ3$ub!?qxvOYbN%>>|cOK95z?b8_3fD z0@b*-F#s9a1`Sq}$wTkJWicPLB9_g>d{*TCVw0aH@}3wRIWyrnoP^`h@7>Q|07KSJ zOkkU%$C*8dc@d{HqCv@HwfWp4V&Q8ByNu@@O+JV}@#Pz!mSeom$2*}_XO3;(pn$6e z*+0zwzn{87TADj4qLo{kymrwhCjTA%>0B+ykMTG9ygu(;!I7~ZOvY5cXY~N0yLy?l z{@zQU1MA{(w>nlMRK&*1rH6m`tN3B3Hm-V;QdGeqhbBX)>Y_y;sEKBgpLb;H%Zpxo zfIO89OaPiX{=InzWUX^c0RZ1|_rFh3hw?)Myi^THwW_UQVlWW4+qd|6Ub0yg^ct9P zV9QxFC_3fHql7PlW*Y04wdKbA$lXmk{$jy_u25SN9T62)n)eK*yU?p1D;&y<}D!RO3dGrpTv;v?Rd z(g;LM={tgakSn#UH|}d(rLK^cUxdezC_S6hp~S%JV8@fUp9W1%34qe*#nAuQ>?J&5 zERjL+DU5}d$e5}Hd;l$$m_IOvtAQjKQmr#BkhBGth7a0IzDrUeP1HO0nBDK9HM}YG z*m`jUb^sLu+vT|IczO;?ww**j9cg zY9vi_CEk36+o9X&YAe4~({Gy-AX&Fq&tGO}uHfamf>c^n*{D~w?nrbh&fXW?uj}8C zvriQGuX^3V_*|7jcREAolj`L9_YIwq!T4rcR%h6-mHZr~BA50~g<5$z?4EKUA*XPA z*<0;pgD!$%1U)mmI9=~FNkft{+EgP0WE{4uk6QJwG(7=ZTpyLK3`xp54_!O(Pk(bh zO75*mP;}ArURDrr!0ANZwYLy*7hq(?_naZlLbIzo?N>z!zZc9-{?!~y$-V3H4|(0x1zEfe72QoU}S-|VgpX1S=d7Lj%h9KhZ6q#@hI=`_w;`kQHmiS6&hode+ z)xlf+*|1bJo&NGn$c3e9*p#Ar_>KO#;Uh@pNHbd#AxhE#N_`tYbv?$4OH$c2=8)%r zzHgtg!%vRp77USdcrVu}5~@iFfLcfwuHD%II`ES13-3fAriPGEk?tXk#Xe z0hh^VJc^c26R4Z^bvh(Gk(6apB~~!t!`s1(;?f-Eg=q2sIVG!~47aFff4i>BT7&2d z!hnEFc?A-sB#?^ZI)8wKi2_1HntONwQ`D6NgIK1oK^}kEis$6@xe%zeBZ_u9;kL7&o`nny2Kf>Z6 zI|M+;OKSCq66@dZRxC<~uY_-8#NZPVl$yV%%teR_ZU8tiUeT)Rn5e0qZK*}l0^-z# zuFm!;y<0)RI_=`G4p_n_y|~0rt@j5!V9C!5d=PzamuE9cP`}Jkzkcp*koye^ot*v zeB@`N=UW!uh3u6`Z?7NFj%YO*qMxTx{2}ttI;WZgp`|k5R8ewaFq3^}4>MP9U$M0V ze$YoCm4SWNkY#dtp|qDGZbL={yQ0iKNqG`gVi$i=023&)g#P$Ol#AA-c?G*YT38YvPqL^Z|L77c}C=8RERz3KFq7%G>1 zXppdjp+q>ding}p?F|GHtZlj?Xoe$b>)&+rh>{f^Ks~9nk(2T>?im=Pp$b=_U2pOo z)k{5qMN#|b!&>@p#*ZZteNp{hwAzlFh+BB)A|aB8m(9+c`Mr{zoGMH0F=o0vR-p60 z{00^-_2V^d)eW`@jIX?0=N=Dx_nt^U?491n zb&Bq7Z|IC(772KBMBz*;N!cz3=pHie+E~t_Vb`4t=mA#eDBl5nm=H6_&v!N&&f6ds z)$?Y_=JD90Q*?Dr+JVH50%Xbf=4+Co#`kHl<1Zrd?dp|=ROB{XF9Y3+@@B)L zn90gnN3ra3a-bH4cSpTQiQ$F9D`aSrZ;6yl5I92>#P2IW2jq$tN5j$J3cVcu8tW5L zCiH~DhNHs=-5rl?c(YzRU-@dp2MU&yOr4PgJCsT38r-C0p`>L!9W}nmdk_aqqwd(# zpB+B_(6~U#T5r0z!XDj2uxY5D=b^Jmh*w8e>f|xRJS21 z)sp^3(k-v^1YK*iNeB*H8ZBwYTeRlP5BQ-SeqM)hh4b11js)_D5J(?JW>}Xig+@kpteccD*fl!fp-qF-h^}q3fJS_x zte!tsX4*@Gf1#62;9D5zQtD)i z$QA`2hK-L;4ZxJixYPS4OJkfcbU8qVy-rkh61(y`OV@I{L~PUv>y*&6|uW^XpNK*I5W=d~W7 zsb1I<++LA=v2b?lM+Uz* zr$idRs;})db$DfVI)K^~xQqy8VnGYGIq82sBpn;V=9yKI8dlAcCc45Gwn5kL#C1d= z&TiqR9a5ZX!Rw>8DTc7!Cuuo~-+dF=MGi(v$u8bD`}O1R@%l~48alLea6V>B69ht2 zen;I^KSV2HH=Iz`sN%wVd!f}@>?N|PoCn7Tgj;!{{YSkI;t#rtCz{u=sMo;PjnXZC{4yTKW2IrF>WbvN2Ir> z<3+e0uA@o59zH+|*0;pW(9QdojUsZ~@2m?1`thk%4!EB_2TbzQXgGlC`$L2r^nLY1 z~zqho1kiE232biccbMSs|PSQZTiiXRc1+h1Mh3O2lK(KBGR9_$j}g2lUGSk zdm2IS&_{~ZYz)1KSIQT%w2qGy!)Z#nFKW5@MNu+9E7i=oLQE938hM3|<<_U=3*o|n z@yHAkBvuMS#lZ!SkCdiL6FW`LAwEK6zX zVT`@wYGpc%1u#ELF!rrRPs$n;oni+gXqybrwKRXOq>uv&%4z`>#=)rbFC&}sqsk_2 z;sNk1b#2TZq9)yyi}*WYTW}%E0QdIZ8)P}qwk8m`Nr8E_AQNfy$O&-+(LvdjLTdAi zKJYyGwHWurA-muv9AcaRjPfC60{Q?&75 zD3#F`z{W|>1};A1_!G0iv&OQ1f9U0x-mWWwS(;7yuF=F((=O6cB?8?i;IF+T!gG2# zPit73;E;~OAyQXvqMk-qFPc`1K74;hF?fzXiRQl@ty#k|qBo|xMkH(DbP_AO#L!k?A11RyJY?tWi=(UT5w(>KJ!1ceu*p9Y~ib z2|r2F_5bCko4hD^EXFQ>;!rtkm<^NnmN`{MCBU?zjfjRGY2O2< znB!{7_fb2aR>{v_nfeK5@xU@Zvk?Qxv&-LdEW*d5LeVbcnTkY2dXvhiq0-J5!wWyhzGX#*cu7= zj1=obd=@G00dC!4=jEmJ)whthSsCq<$0L4!qI}QzijKs0@+foA zg=rW|eoKMr@nVgTd&)F%I%1sd=%kiO!wq{vb3^d_0;(RBM-X_UlI#%e>-BEoQW(zJ z-61GO2VwM;(ryWnxa3Ae;7Zqn&eV^HXi`oLc%qpL*+3-xO~h87S3bI|V3zli^he1! zTGW7ee8Gx2J0L);NIXW$85`}U!&?TQu4RlINjN@@mXGz}Y;-G%5YD?a+-8>uxwL(Ho;9HZ$% z=Q;_#4>sNkj6KjtzQ*Vd6mJ*DQoT)`q&UN1t$o_uL_m4}(Hp1zjigPz>C7tIbEYz! zECy1g&Ny7})GTGt0dx9!KpI(lOcK>D7@jzsUgOjyEAow+oz;`G`BQu@igH6KoCXte+|zZF zI-`cNU#&j%(Y9e2Z$=a;4K*tg5`uvfflNk#r>LBl-d5X*7)> zFfS%U%{lizP><-8d>(?p_F`0^>+>^m`2K+1By&eoBvbK!H-qx{w0T%^ivQ_bsPyuE z>rWth8qoR&c;{!E>x|N+cx3153LY&opilF6p9`=o90XY~=3u1YV6&Yg8HIs@ zqrdCDVyG(OmqhTP3dSE$Rwg=3MxF^%6dB2QC_FCvws~cbeh1y>yQAaqTvQrXK=#zN zAPT>9p&P4$PvUJNt_H>|I;k3p&VkU-7Ki^i?V-C37b@I_P3c(Esua)glkS&eXG)th zIiEugf|KT~9I4_4!|~^MK^4$em>%OoX|xRT%1K1QU%C+Et_>0Wp~}eW#gTNzkxs{h z31?P{lBp{JX#^D8W{Pj&(~Sq{j|VvcP0pIoEauhd^?kefTxo;lE@n}Ezu*||u%y!5 z&lPV-Yp_7QlQoPV)J{iJ9A*qZm%c~wZ?cTY$4C|^Tv{_YO_T60r>O+9W>^M=%339b zHU=rIQxhBMjpM9WJiJrawuJPe^%l_vono_Qc8^^&sBUo*;A4(68q%i=OaXf-KaJmn91D~YYt#gMlgvMphk;uZ= zd#E=X3qJT7I#&e(zFUD>`?%U>_77|0v9jlv&zCU$!y~`=Qm}nS^XW8uqrMulS@1U= zo~q4*DP?SQITXEWIBv>ueA#TZxdOs@F1gYv!RiudNa$qP4oA}pl3W89c^Amlp^lVB zw!$@RQW1D6GHOmSc*E`8Wei|ZzY`B4ajXo4+N1Jks{^6%`$*Ugv6qP?#HgBsbExji zr(0U$0@cgf8?!DstRa2k9lnihMAo7$ZREMuCK@KSYl-rSQKP3%N-Da+VR%!Ne$qoO z?>QCp=5{n4NbOJZ#R-}ae6GIF*L&$+EQ_28c{9hxGe}PFcKy}M{P*C86iwE0wW*_) zhq0&eQC)i}0$(MnR}Jtb=d=~l*D+KoWFE7WT6G5#XJQO(_|&z`1X^{3!$cYg;*xmF zXLcC!_S}3A{NFv>6%dxut420=lM>~sosFE?OC1^W!U8Iz5pHpT3D?OcAgUXT`G(+&6^&r_9qVo(1uUdtZirHt7CTq1D-H`^M7C!x^x- zYZxlY3!~Fh7{(|ge1_dWuRmaKC8@|t7C9kFR38HNhJH9-6*)rAyAX3)iZrN_hOTBf ztD^M5#TJ{8%MVDzqLCoxa>a&cNv)4U9cXo-G`!`1xylAr3p*|8f7cHhkRuT0>i;ZX zBr6cKX@dcYHDv*+&?!};n=y(x!-ks!A`Ppg*1$Z6`kcqwWiNT_>4j7X%IoF~5riQ% zej>v8|2Ok(LcMH-e-)+{KYwz^Q#@qlQoSIr)mBeBtc64XWLq3dap?8TtOG!W%suT? zS0lKYcGGxnn_H31rXyq^Me03KjD${Grj|Zn;x6Fmuopuq!?u25$VJ>g$dB+SwJXo_ z`~}VCUj9>=c7wWu?p?ou^xheNe_p+*(%6@k;8*;B_!SfTMS968B1`ju-*x(U4r-neW~2hrI02K6uyo}Y#u1yWreN2ek{ zkB`?F#~i#U$}*g9q_{jw9)mQ})Wl{9;nzm&1&KamZ`8z&7gTG#XK4brepye!RHu?l z!UM_waU7*GTnsc5YRh3oBy@n%K`pwJ2YBZ%{@yZN1oZB>VItxcG{5+0H{LzmqFK!2 z3!3)IY8vWKg9SnXt8a22mO-TYSP>_EJH$%?l0f!IdLV-e7`_pKRVTuxN0A6}_@vi) zX_|csxd$&D{+&JYIW!=Ett)WN-OKZyDEp7?YKESmj$tG%`pBE`C>`tlHO3grOSqss zkUE5BCDz_H`f`Y0%E4vP0}f$$F$a8%{~X=)CeHDSAVO-OG9H77P>#72txKK@ZS;%c zFmo%{vr|ZfXbnT%ZTJtNAfDN}@0}(qOm>2Tc-qCVW~J$@4_}3p1lA|!3P22eA&-lr*UY6n1#1K5A3%QMHx07P zF|0>QaL8lIJUbO$Bx(Xfml0@5k}Qrgb0`iiAY6o@B?eC{iZ=EwtE*d8d_G1i&a@>C za8Gux!tj~Zaum)p`;UENA5o0?i?5i`1%)WsR3YwLn{)yZ*rX!#SOYMWG_#8aPC}1ejAAoe=u!aULH5Ie4>#SX8VCiRIjm4ui8{=pb@!}wS|kdc}H=j-?+euH;R{Sa<#Y_1K0uWoza@+i2J`CnH0 z!D1Nw$*H*U88Axb89KaD=mx!Vz}*{PCcV#9UzqtTqGWD&b4*>{OQJ2IPcbEgCkAz9 zgn8bhn~^yznLkiiNGbGj=a`CGW9YD#nvT_jtpS!US@QM28Jnfouzk-g6fTu-S5qm| z%(GH0(n-ah!P5{%#g2nu#2otHAiHp2+BtN13`$K?S-4huK&=Zv=MhkrcOA(SA5I4U zt{ofZ<`B{G6xYE}owtGQXr@@ly@Ju>+|no*+D7EK!hb)h+TK-44<3+EmY6qy@(NPx zP(W3;{=O$)sFxG(-k7hP@17IVl949COAK6_6z`o@5!PUz!gjn5G!os5!Sx_(YG}0f zDYdq7TH~LP*K_k zb)2*KqD{oNac9=M%<0kQ-V*Dy8S5zZrU76<6S=oNo&xWJ2ok?(kua3@BPDNC}>EbAjntm7KMabZO57 z`br)Ssw&U!oj|j)AIJ_a!JIzfOH!76lQpb?U%K@q4L#ca%_TQo8IVy31DH)fFXdG&avkDHWE|ahYa6(t#jxFv6%as84Fi% z4KLo;n*m$KG1dxuKtNww(Sj7)XSp$#NJi=D5(V>^dMWbw;)a{2Z+tlN(2?xp!^XR2 z1l0a$DhKXR!;09I;b5aep4Z4_VU?rbQ`hCLX^cu(1sJOb=}FF}hO!1OKPiIjyP=o_ zbPOoVVu$)0bPuS{u?d$C>W82b%l!YKRQ0+qh$~I@OcoWvjT6>TNaBNLIZF6u!%?FD zTdlTR6qFlxAHQ%zE;lHKb}oNjy#Nb?YkIKA_|F@}^2cU~bv%ge+WL>gd zzA%1oZv>2w5|C*<+lc!xzzF?$Ss1)h*Hs6tk;UO>kpogsfFLe6#-Yc%N4qY?U@2u@ zw!symidZFGrZCPEHn=eh81|bk*e&`1dLInQ#VIVMai0@wtl%8E(`t8YmgvOJ{ghnM z_>~fhqya;A<4wo6i;l(-;~b&Uu8@=bq;C)_iIf0E9nncR-Jo_S*Q3L&O5DiDZ=^jNcmM1f<-y>vyzz zP^9>91>8a17Uar7TX7)z5JQpT8pVAtjN6&Xx+9h#p!hO!hn5Js4}G+n<99V;0T2qE zJkOuT=v^g4{+gZ+Q?Tmiiuoz*9~eYB*>znHSlG+vZO@n`tVqoB#oslWAyeU!nxg4w ztPMyqH0yl&@$kCl-K;->(UsKzgQ%#~(DwUwV3r@{d#{vowtTX+qr>1Lg2k}KTUM_Jm+Wv4BT6id(QdT_A8a=zJY zU(sW|*7npqWgpR|7DCo>M=4hAqriZaQBk6{I!YhWQJ>|Q+EWbTofKv330FE$p;9U& zu*5tE;XcqDUl=o}e~>N`0H=UWP1_9v@KU$O8$_Mr5LaAH#&MQvQ{RfnAi$sa;jiIH zUz1%AKGH{F?zFnXg{$%Um)7|W2aMI^Y-PT?CmS&47d6xr+?+sXv5?s2XKYXg!i0{y zj9xOol6%J#W%Q5%J{W{7W8sc_+V3T&?H48TCFpE%i9$31+Qkz)5m)TMa!^PbqNG?J z5TC(AwHi6ahqJ!uedo%=s-QdmrRhRZS83Yqgp*+$o7;_rv?X73Vy;IV@kv#o3xEz3 zn1K-QEcKx*#>XU_^{3*OITgTrv2}<>nP1MxNsumM=cCobc~KONa;L-v8Gjl&vYXGDG!ID^#zkTdT}LZJ?`o^m+5~vf3^689 z#}o`Ax_VMtA--P1zm%m)aUtpcI=mh&Q9q?x)g&9eir4Hp6Xy#gGqN2yLHEPn`){Na z$KUYsvWUrWn>2A|=3t4F4?+MRE8zVyrAj=hE(S%3Uru&r5G*-b7|AFOulbhdvU?bJ z$r3cAA#E2qvL>Imo457c7rOKUnSZFc9?YG%9h>K=*q= z2V){H-A?;hkHm$!TAvLD=ykA@p+8ugnD=htl^tNLJpX_>q(uzt#7vfqC?BAZQ%BZv zL^&6~X6I93F}}h5X!39O=;B_6b_<*~!wquNX2M+$FqW|dSdjib0|AmRKuKb}5}#H& z?oH9P8_oaR@x(d6zuxv0GV;xjU24k2b=fscaHSpExa`cvWjb1Oz`(4zP+Y@{F%ZSP zFB*U6eHGs*E53z-=_d-NyG{aOX`GuE`#;3*<$nUGYFk5K{GW{e1LxtFI1JF3hX8u1 zzLArRK<)x4xEec|7Yrmx{}=D<3O*!5gR5#YxcmkE`3$cTnCx7^s1BIT5hX9VfsiFm zWV$@|kaUl`2kR~vuV}&Y80{YYpY3176cXt=(7)+#oBuS%80&3CoQ2{R7evFaIe38r zH3+s7-rJxcQm=i^Cb-xgh*5*-$WtX0eLq}8zGEBb7H23odKtYU5Mu>amt#qQTAOaG z4>AsG&PwwA2jUh>i@JE(JRoisUfyh=r#uG)S!5aBq`8^kczAd3Dnk?dS|0h>TG0Uw zmF@L>v;umHNn+qU>;$buD+&G+`6bs1_$^hgc=r|COOJLpn>WGPWP#G47O;a3z6FA` zOJHNE&(Tiq;O>f%ihfi3wR-$Hkn7c8ghzF-!?I{#P-=*r{?;`$6Jho?s%!y(xLRSz zNN>Bw1l~DxqMAXo)Yly}dPCbxMb_{G{{1(NB1zxEJhQpk{YDZOic!e+GsP&{lP2ZN zdF@}DyNr>dDV@mq$ByA8$R}kxH;jd*8*$nr>58b3ZEPGx4Kesl-;;a!FU#$1Jea7r zSvYi54yUZSS4u@GZO5V}LI z9fN3vFWfR=6A#8r!Eh&hfa12+xe4DEIIsAh=RY4Z&2A7Tnp(NZAX%xl-XY;=nPeL5 zVVv=O`BQ4-c6_Qs^F!MlegwVU1ERqZ0P8;-T}x$%6LaDMo2q3CLP6ad?u=5OU^8Do zeo@H=havZp8WNgG#B@(!Bi_7;1)!JLVQB}zgyfRbH7i|ke)j0n9xvUL*1aCx)cTnO zC+43Iv77JygNEQTF`hlC#r95Tlb%(_Y8FM!8nXyC!sPCT8Ha&t7$1}T|37XgoNTL@ zO^PZ^t#=`F;8CY&m)g;j3}DmM&_D@-YYyyrXrG0motYyO+R0H)CtU%iX|-mzZBT;5 zC4L8S6|FqB`wvS%Z>)hi0d8YUcs)yPIKDL*TmM@mfCtmd+pE4vv}o2?a?`w3h8B>6dB1+Yl_tp^ykcQ2^-|a|vc zdE=_o+z^EDOxgTHKg6iGHuYxu0^G|QJ^KkglpGu*y6@?IBhF>EK}=+YX_5ksMbU1K z;p47(k25X&HS9NI8f^h2+TBdx=!e~hR(_8iv_G@{*|thzxj?&BQzl`i&83G}a*dW2 zq;Z8MDijz}y>^*1>y#){lynNhsru9KdeZSdPlLJ@2B3I6(&pYC`HZcNj3P9qqdXio zvDgZ^oZpYQLSN^pOS6_RjobBVTVkMKSYIcSMo8-|{YE#lD-?nVe@}8|u9KGoh0)n- zB$*G9zI?!lDid!>jb1U&pr8Qere57tvJy<3i{p4Nu`Dk|QzUd0YNCdYcyjeST&@n>#;=u69G8XiMev^7JlKQ|*5Fr%#;$bJ z!2=1cT|HQA&w+3DNwrc#*OGY~w&Nu~?Oe(LtdV{ttq)vqAsbc4p^Re~L{yc=6oUu` z2)B$)bH-EU<}%7tI^KbI3Zo@c0}$PBw-}*J1$juqCw!Ac661pMPbuVYVw;$6ZF(Wm zjqNN(75o?8Jn&y$x(>(rw1Ka?keUqOlw|&glH>-sh67|obvW-F?Wpehr~}K26R~J0 z8|ZnIQj!QwMxi7c=D43_v+3sZnUu>3{v4eCo~o@E-21c zoXoV5JLdJ0jmg5RZ;XvYkWAx@FXKQSDslAKA>P$7yHe3|=5=S<*JCnZlu^T!awnjaI^WY{!Mfk^(aMYv?+L9oa@HAfnddlqrp0a5|WxNVE zCQqNT;V|TN5aIIr%zQY*Bs5GGWx{6C3o_qouV>)<`fZ5{I}T98GDbhCFq5HJxNo!C zrc0SjB;>Tx@Iayu$j}y&k&mRlo~MnnQY5ojRzSlgHkl=VXjc#}EANQ{!y{LcR`WjF z45O{j!-Gbmy(C@250jgLfmWIvVUe`l44eQhK~Bw8)1gAg-bqBsk2sexL@d9MLuovg zoYmI3xk6?;<+Y_1-|{3iFZ)!LBCz_+#~V`UsLy1FtC+ZU)s^AT)t;?ZYk%**zwpbM zg;#vI9q?g_1=Ptw2d{+~Cfhpv-@bJ5$zC%mx>e z&J4X^Qn!-`S2UC)7D4QVzG@A^% zsh&W;9Btnf3{V5EUsQlecCR$Ccy6oPz8L6({{NQjrdb(%>$CwO(dNID8RfWa@65BcXw|JR<>_xT0)b2xHWf2q`eVsyIxN-?#Yq~cs zRY>0AlO1W-2n`-ro5x2UGw`%C*F|oYQ7dtPAeRUN$b6e@Hm~-jy!#d$hg76X>Kqpq zs8ma1iSB%hl5$rtpWcpxEb*PI4KV-RPMcER&q32+QIkl*A>X_CRM>oy9~c``T-wn} zRZh(naDW?L-X#7G<^71a*edUCTIGG9Ea8K}B)36v4IdXr36u3bRaz`HMqMxd9fU7u z*{5)eV@>Hzc5FpmW7GvdjutTd(4P$|W3f{&3KP-LDpJP+1q~E+wKFw8REssZ-gGU* z<32UdPypvh?oopwjFUG zV>PneA+KReej{5|V>O1g-g4eu^|A&xJuwTWK*BjpsFOfxuB?B4!}BL`h>$|n!1Q>8 z0ar6|XcHKV075(|!e<7d1G)_xTlMZ(eZV7=yNhn@TohJDe?w_?#t!ray|^Q+#VR|WoApvwvj@sGbKHE^OncHH=>C3(B9w50 zuFFHvib>-Gsvl`^r)|XqheqHy?y6nEwGWI?O5+5L1Es{?gbLPjwSyCHY?y~NOcKV5 zxOXYRJQWU-q7h#>Ba%D5o-ei-qDwPO-5(Y^Kpakz0CHev5OK=zk-u)UMoRv@q`oA4 zjDDGx7lKG~IZH{R^rAXKeYRa5O_fwA7Ix2}NK5h@;=oJ&5^7%H_>!sN1{LSzoK!(X z6!*SA9Vf^ZM9@g42hm&(hQ~! z^`1tQC+xW5I)Sc+A8#1DZgx6(1Y8?ZRl_bdi<7kf_^e!A3}RXbk%exA$6{)|0#C{@ zS^a^H8$FUaEQtK@I$@eOG|F$s6%n(7x)y*BAlyi)MrW*z*5EU0UjfrxH;u9GrZ212 zd%Rea8?+ZRrkcMXOjp76d{mh}+u83H;mLuN;8lc(1E_Ahi&u7DMJ)V7Qcbok_3WAQ z%O@twa2WSlThVvGmrpOq+!Kb!2*f}rELv})f6g^_Lnj!EDSCtDcs&R4x6Ie#lLnJs z9wDSe>d!%cgcvyUK_Kx1Fq{s4oiCT5Pi_E=R7)lSoz4i*{85j-oBWu_ZgxNl>7;6A zlTo%!U31)^{EKMfP+VvcT&j+osy#%qBCf3yS5asD{BzQCq4FN`K=7rKzgt{I$n{-> z$5mJOyf3S_r~Px{8bbfj-XP<+qdBHqju8aQO3N@aT5nn2pcS_Oka@r9pk)GT)*@<# zwgKTU|3W)Ss*~)Zd@Tg;R!zYEVsoWw7MhpKKv&%+1YrJ%c!He)M-wniWW`bcPno(v z5sT9jF5GkJ;?MTAbeE@V;T;zHA&}Yv~&ChE_!mM!XstJ)&csx)e4Q z0EI;oS|(;{E{MgwdU|zYB5G%qwugJ0+^I2cgX1)R_`A#=m(|ZCo*7EgqQkS z-F1T&3U_&A9AKB|pqs#}}B9_-mcPfr1>c zIm`?WcX~T+^eMX02|TFmS!DXcu7GHKMH(u?S6@+pzFOp`n$u8kYuiOzTl6!tPB~5N z_;SQC3RlQaBpKACJ#T4dh&#I+N^ktC3M&o$=(90cDWf2EP=Ol|CL79Lek_ z>I8QG5xv)YCjLXzOyj_siz-bpBP1Pp;iwt$kSH8A z72OKpWBkL#dr6H_QQp06T?dfiz=|JL;XN!3df){ zi$!qmnt%m_G0o>5Fz}C@A{-W>3GEx2ihCTXd8m%s#P7ktNj^zkzdRPj2ow$|9B>v| zK5&X$JJ&cZUM|Br4CS#uhJf^u?Im54VqwsESnJb!>BkED6SC_Yn$>`>Mp|L0A&(D7bxXd z7EjI9j$zV`=}ax}CxfB8Xk2qCe>h5A$V*v078N^>g+HTa2~!hDm0qqt->Z52i-%by8wj`CHA?EucMIT5GZSubP%qj% z&L3V@21$_bgWV*2D=`NlC_dqY7Ws*p}asw|8QJ}6rwF#IC3|ro_xLIa5s!j-)yg#FhQot znb(Zca0=KM9h%bWCY9QTz<_)TrkLn9Xt& z(o3PUJkT;b$V_)I7!M}O7NgeX&!`NIPf_=p#6}w!m~l(yA~dVJNSK0LPdhWh+hWHp zO$!|l3XIEEqk+`41IwRVMcuj}w--KPN>FOWGbhawQXJU8;5d66z`JiQ%bRrOXdv&1 z2sE_7k3vVuju>Td;5);^TiKvhInR)?K%g1bqn} z?U5AVVHZ3Y?Q`)B-W4>jt1X3-m?q-nk#qFqG4>6rIh^%*+gLT`+Y<^|(`AdS=>wkq zP(Sih;5AF0c{%by<{QsYt9so1S6f(R(L^H5?kN=$b%AC)ER9#jP~x49lpENW+D8jb zR@DE^;8ZwVNP5$Q4IQ+2Y^;ZI(!;A_7KJ3<2V>NNx?0iPS(9mn!)sStGT^ClDwQ4Y z)D=MOi2J)0AmcpV-vZu=Z{7X9UmaE5^}f|Uu9l4c00%uPox4tq_f+h#9m5Iua;WjG zE?ANZs}5rgJyD zosLieGNYEqTh+6KzFsAWf*PB&+*iMRkUZI9Gy!)Pem8Jg8*t^0{7xdb%DD1LPB?gA z21s!&w!-tJY)p4SQ-#6{;%J&^`B>*0%(lO&-1plNR9uo5V~@nKw2`whd@wPk)PqP% z?HTKpHCuIGoV6@NHs-UB%$_8^Qc>;E$kLJa4z1?FW|Fdj%}tP%wt@ZCwkR0};Y{aO z5nDqp$CAT}QYeX1;S7ss!l$&Id-aZ?7?{fo2R0rvuM$#zK?a*+BAgKV*=^Z^=Cg|3 zix@O%+RPTo_~su}#C7ghZ6<7xAjL%+N)iPn#nrqWZpzAyL!I+}zehnYWi8?pc)U?( z@!t*yHV0Wf3XlUWvugO;rYg6oD{UBsbuqd3F!v~*!v;(m>228i;!n9_KVtuF}=L_kA(RqPt8oeRL+>a;S=|BhC>Mv|m z5cW>8sOX2t2D2bf%}L0w?%9_%ysD@m)XZkREP}5?RoYZ>#uEbL=2La)iIj`BwM;SG zDNqr8wIzs%32tk|M2f6VS!8A0ce$#YgU;LMVH6OG=mC7;+z|4~yW?gM7F_Y|#jS^{FSrJ=GeIi7I&fAsK#zEy?vt#aX_v*hZz<#5&iHPsyO%wt+& z{VAR7eQjRuZmM@e1Sj#b&m;+)wdICFSU;{Q=p3M0LMJMEiXUzZtr@AAlrm{$ZO$>n zrkv=@42JN2;|AA{s_nYo@K>Y2c3?6w8UDUTl13>gxm+gDndWS@145pdars;d2mB7- zL-O|FhmXk;LDC?Gg+}-S#Qpg61j3hrHEC|ZwRAiZODR=;C zWnaPj1br0g**}XTlRFY2z-TLQc{Hqtf2HS7eC_eiZP9Y?3f~xmYi-Gnr`gD!iJ%_{DWSF|+;2&tamFmcvR~O|G)Ho2kUMd7mo=joh$El;RghkpBR1un*3~G;Q zES}$-#6s85*|fQ(C^}T5`&2_s^_tQkIpjoyq-9QgDI+vmLaSmfluS5lbA#RFAITu>hQZ3KJNy+|6urQ1#*G3bN-5YfEInayWbrFH; z6r>rOO!N;al5Z?o0|qEvn_1@Qs>m`Wfx9?P!em9?6odpbJ;R%LJu`u zJRMyftD`vYEI8rtO%FEE2`^=qMf8q%;lcJbh`vZp#-T6H*WgaSJ)srtdiAn|oT0?k zO0%;QM@q-Ukk4s@SQkf-AILrN7bY-W6pb5(E}%sL#V7g(_h@Jang*qk7Yc8xVo|D= z4!=!EHYLij*{dz?`Dgj?zH@j_SQRv{1$m_R&WwR;{OZ!nO#T;GD5>@hXTi7GGs?(O~M<7vb}?BVen&}W^qyZG1|{hz?or3^%b z1HfCAD*0&$44HW+m!`E9K{@XGKXix2HEeC2+0PbVAdd;6aco~RnH77>MRx?uMS>x zIERg1MJp7hTTNyW8V0PytYQ>c?>6Ejvz3OJIS7;FkFp%|=@Z^^{Xfnb4y#fiOrv)( zSrJQh0-bsHtR)T#64;vb6mabsIvayj9R zRg;S@pwjp);|$n-#+GWWl(Gza{fu>S##=XTK9E9RNybK14#0KkDIi|gABcT~UwT%a zA2sC~;0#+iD~`3SK~5rBeKIUfesZ{)>8oe(I9Zo`#E}H_P!iSS1M5!XdML5GITj(5 z9>;CVKl?fns6lBEUymli7Y}DUS|2hhTEV-W(mD;^!ICqVQAX*VQ&F(Yzl_b3``DaB z^=kjT-Fa^kFodULfVROhQ)_adkTEfA0eUW)1yz{2d_BGEO6Nvf=D|ZEq7+xEarQ4j z+&3<$K_%5tOE~4CwcOn}gt*lRRnnRaeb+QZK?fIvEpBL^4+s2T<8#)t1OS`mcxA_t z>{>wHQX?zQcsN965Xb}~5U+ipY72Sw?{@VPeu3P&{%Uy!=Q;H~*gt73Jt3mzl^mZO z03@3*Qay)$2RbTgE!7vO3H9BIo&X!A?V`Wx}UPl|O5v(k>@y-G7ql zjGJbBWT__ALehpK9Eer3?Fz0Q&TyUy($|o|Z${!hvw{t*K&^;(4p6nrD;Sq9=R9=! zckz3+?;G0=f|INfS)BD4sz+#vYtj`eZKxBF9kZZqyiLkMmt=j4S(|GAa}i^w&V0`7 zYXg<^ zn=)M8xu#P<$*au(XcCwx+FGzS0~HwO=&dN^KfY2>b~6pPSfLCDB~4wH<+rJujGFv` zV&wtx1~lNr&1ys2&Rfa*S=2F?3t0xDg3wB?1R_mLi?g5|gvYLzW?b2RJpxPf0C|h(^Q5ptLj|)icNkt%0k>nOHQ~VuMB^{%D@5l4Y`b);Kp*DuEpM zurj`qy^T)d<#@V>Bs)o&cg*mlI&#Xspu{u_nhcYtQ?RG_;d)U?0B}oRr+|Sma@?p zMG|GnYO46#+$_1ejQD}M>)R-;Td__N7&yQF-52z2i*+%$oBD&2*)%p&e%o@HSwsnb zNu>^eEQ8KHc=&_fOjaawqkYCGoSIr0imUPknP+XPicIih$N;rd)%^=?u5L_~(m~(> z;H4B8%R^@B6p<($%qPd3NE+AVD$tomHjZ4T{cE^Q*LQdxDg*>0ZTuj2YtXtB6Ymf6 zb~w=(IXCTe2%Ph$FEn{$fuQ?}frzMGkk{kIBi?$o*}NCWj(-z7 zdYMlUk#%bWhn*8RCn>~(OLE&MpzyhA19h9F{yPIkc6Vp zDF|~RSc4f5C#Ny})l=HAvw%-{@5aX;dRfe(JRQKpDV2x7x3MX z0fbghL}zt0mOPhI!g4|D%y z!~GH|3*EC>u}ZRQNnS=eCPDG4ZgwV9DYCWP=uyn&NfwV+t7Rp%fiMoGwCs{4%SPYU zI|z^eriCzXlx`hr&SNXGbnlYrNy?F;B6p@RwrUw#mq_-raXX9CEQqVe+nh?r^^LZn zJW+-v*Fu`KP}Im->OZj0>oc0aSW1=8F7dP@18)SM5UEc_wCX(a86lhrcB$rblmovQ_&f=f*w%%eD`-2|m`U;CJsHwv$ zA>7L&?txKA_`S#WmImECjCeh)=R3Z0G$`6=TF@7m{Loo=us2FF_?d1qY!7brl8Ow? zHPD4*J<+bGyf7$2Caz`mykEo>`xCu(k_J1uahAx-K1JgigRE|@i5zg!e<6EBP$$D8 zn?DKg;z|JyvA889iBpR`glbCji(@DdoBR%LN|bur!zFh4(QLo{1jpZ&8wShJ9NI> zaN78&DjqUx*$8O8E7+*dEdBKA_IowBo5X9nMX1wi;K53hB^UH)pr(}%fCbYul{|z{ zLG;rWZ9$A~;69plb&`7h(acnSySPSo4+U`OkS)4H2|SW>(*4y*;Ycv9Tsfw%RY@{e zJ_v76Gi>Dq&AZ;uUmU`V>V>eznCp$$F*zKr<-m(pktGZ@2gH08(z9qrl)j_DrSu2B zFY4}fitBg-6>M8G%eo?o6w07yfb8nGFn8 z`Vf*m?o4`@-!xwv?YHmmC_V(DGfhZjkTvoSIG&)lNgyBBx*0VNY?8>zYvR7xoUl=) z4TIf~INv|B6G8^qc(C$oXj}K-ENAtCTP$gA2jHH@xB4vSq!wspOU?DuN^mTPqvBFP z>k-@ka%OdcZ@b}Q-PyEPrTvcNRZcQX60@G@`8zcUR(1M#q(Jng=7re0nbj)IPFO~SFs5!(PV_` z`2OfVv9e&IG2aIe3IB2o;!Y)FtCf<~RJ>h05gLNC0m#r=9oh2oG?Vq8>vzol-XM4D zgt{)TwPxN5`3=K-eDWcf3%;7H`7zxQbuOtn401WGh)=3LXQ%(bjmH{dH%6<7^l!-Z_{$S@q=5z92dYF$;rV-h`VaA{&~*7Dw+NyXWeW?cN5cr^LA+b`@`elaE<5 z!p|(|BHOsRbs%n50}MKVn7c!X2Ju_M!}^U@h8dcoyv|X6AnsQRT|$?z_;Qr=NeztF zN?U8Cr`WWbR3c&4ZZcUYqf}LHg{_gL1*ePW73vDjIwj@>I5f!YaG6Lzz;qC^oG6R1 z)#M%c*0M?mX;DdN8)%|vbyHoTspGhJU5%C)ByHZfLS{p%TDVTKg4P!X)+GKO`Ln*C zyK8qFQhK$M6)5cZuCy8&j9aHks{~O4>@+QZ)P`sENn-0Nm8-{X{$;aupQsj z5S)3(Gx)dZsf?__NJS`%Fjz*DNXcXwZAF7vr^|}LM=5t`NDl?cl;=P)Kx(Gx4CJfR z5Qn%K%gJ#;F6j~c*t+g&3^ru5Ei7WOygw;!77UsO7=Vw zI;_qv4sTNTGNNGG=zAyOYi5C`VAc-FreUGv^cJJ(@z4iC)wJzvxWAq!UC8v8l4=pn zWYXMcnqLRe1dRe*ay?%qrn$eNU%+JAGVHT}WeA2Km=bfhNoEQG0q3wX>m64?v@8^5 z(k4!zA03O}No4T5K}fC^S}1cMzj*?^0yRJ^N%LpG-*9LgN66uC@iTsyeNw1Zl(tPc z6su~)6dEQaRB>VLrNWs(=;EOt^(mH$%(hhLsyqxvoqvhPDgS_v2LmR zM&Pk|`CxH%l5PA%T#`75Gu9|~(y8om(Ip-?6EQgU1J5q-UqUfO%pbqi;PIXyWCukY zmJSIW+>#3rGZM7lwZ7iZ&&8QX;gQl7TpfJ1AJcY)|M4jr8+F81KGB$;qlNzJ=^FPP z#HUmxCRnwNHKu4ObCfn$h%DQ7O;CNcUc9a$f%U;BfSZl3I-3f_xh1TUEM96hxfU5! z!%eT)A>2ptCTdRrcq*rezCS;2_v)f~H zCnmoqgZt4GUG`C4E+-bA#0X=BB^4GFs!Q8NSxMV_GzkLXC{;wNMx+H$xS$4q*PY3? zbbztSb{3r1gSt@q+wXU<6yaQcDLL^*Mqr7+P_M0+vB5)GIP5FAXR zGww3}j|Awj&DI0JAH1nE%8e3l_jz5DJ|v7Wd9c^_7Aoj7yGM9lzZQJ$WdHlv8g7_5T! zPL+nxwMp`*%lw;GQ^?Zo$>vC^c7eXjS?6?Xf#RukK|p%`sYF`Mi>o(r_S1KDOgp^g zZK$hBr{5O`E+4E{ob9|X5xOgVIosN##>FeW;`5K!zd+x%_4>r@Qnq?~D%>zQbOM@t zAT;$*lCuv)UK-WTJ&&7gWeVo#oP#VRUmV>LI8Y3h9)5pc@1L(`HbK#dAOAPt$At)R;r8=g}o!OMWg9{h4ad6Gv-WlMFIV{-HP-68Rv>rI(Y(3PCH-9t~A zQG7P9`lNO|=>v5W_{{#&vH^&e8`2!Eq}SPK*YXmqZA}=lSamR7yk@tB0ZLohHiN`} z_In8~8O1lzyD}Nv2w0*QN(?=CT>sKCid>iroeaeTj-0Ge?l7j!Xe}eFTD!|Ewy^M{ zP<_==Dmi1Z*APk%bFWkFJQx!h_Rv&u61G)LjvI>}+@*Rr7C7}H?$&Q-m(&*!u+_ig zOh2n?l9VR~{(ip1eQZdL@#@CMDm6lfJH%Fgf#SfR95MO$n@PIbGez%0BXgW7cfe}# z`ScBQY~S{IzZ_&DAy;bpYfKgGJhop#ZK-c$;%&UC5MI#H&HdTD=^dVyiO(H433n9= zo}sS|lfg|i;l!5$MZ7akeBrT7VJz{^f*UP)#$-T(DLjS$PU7?69^E}zeTtn`;z3@v z*f_Ev2#2q-0uCWTugi^Ok0sgPk zNPYPY9;_@iwoMzh*R5Kr(8c?9k}hx*{~g~0L5zzPT3|!7M_aW=1AzDe2fN`zESp?n zPSEB>nngE5PdgeL|iI40c**>a@Z<-g3> zI1;(Ru-pu6Piq064EPnt;>5+(>|7n1$txv5BLJuyzn7sj#Y*aQtjmM*hyW?8Kx7vBlu1)2C1u5Dh>lXvV)a z#r(ozbDpat&C-e`9Y;Ef#Wl7p=X#Bvp6}>KhY}+<4+aHqs5_rmn+M?pR<9pIe2ymW z%$4=YiPELCSgr;`=UG-u#J!tlCRE&w3Ue{uuxIE*fka4k6dr=Zm|f2Vc?_R;3=->4 zPR7GjMo#Z}wfGNT8@;<S#{CuP1Bza zY{R!rNHd!{aNejB5q2`C&A!J2aCAnKf0k}P{A}q*&1JA%DVzMS=N~lZXqvIw?Q#Gx z!xLPxmA!M5&PP#Jsp6)S9>+x9>4YTr6P$F;>*e#*-5K_<>s?$=J6eKt5J_t$+v1vT zexft7AtK9XZ+W^$*m%SR!-1FOm`Z>Ym%4NzJ}=8iB$ieS+wB@nk!32iD-Fp?pDcyw z4FfacU^AOSDXC<>hoOz=$n_e2jLX_kZVIIZj7NI!_p*$=c4Z_q|G#(i2{qw#HvMZ_L0V18UIJgVGg#BX zNDbowz}R3%f397Ini@cee{BwoBeoKg!-BoS31;s$bCJYZ$I8g0U(|c<<>qO&=KKjS zjBo`bt@v!=NYoEsQ2@Ee`IF{W`r-TL04B;K!uCT=Nx5!d3F$o>!)I7$*In=66yApE zBcSa(L)@#~&ozXG{2e`_HO<>%yd1e4fAjW-3qNGh&fBrgnr#8>ouhCRm|2okX{Yz^ zs(Wc{l2O&iRMjT^Bj=}(24yZ=<8VA5Ekzu?EU-tNv+|T!k)Rk;$#ubt3(ugJ6PC*X zj&ZO`ByPN;sitcQawv6?#wVG7n!gC#xl|K)cT-Cd$2Vz*?!-+*_JG_hP15f7zre($ zP)8FE-VI9Dnme$C1u)Gg#FRIf8m}RMlwz=IX9>6z^wSm@J+rCSEzzZCn@!w5T4vM1 zE1%QcaF>RZe~|#-XooRC~vq{eTa*vZiVOd*nyUW@=;k3W0y%q}!Xot?=DpH!GRU1J zTyP$t%X>C2xs*wq@r!zgLQ6$OEWn6l*BHN>F>*Z*lisk4Y=OcPMfU=xQ4((4);u_5 z7nggB#Thrh?%Oq`Y@Q>EWg6hCFUQjK@#MBQm`rXpy;oPl2YW=uZSb@APWT4R3K}&R za*mv{%flVMpB>(_>htMc3ev(ED^O28UrH&V192FYyA*^B*bPMD-xl(4tsXHTcv@nz zG|FznO|#;#_y=Hw^DqTCeB97l<@_FxI;d5UO-|}knQV&JVjxgsO_LTk`L`?;T&jj~ z^F{mhH+BYoZzZw(V2?napEnRJ0z%?HI#MKI#)w3oE6aicm05ln|3#^T+fF&eM?3^7 zoNZv;^EL8iT9C#jZTi3Qeu}mZh4OrI=cb+nifa&!3tdVl!V@rPmh)i0 zuDbC(Di)j9S7d6dPt5%I^^EaK)kbDnhIMYUL+KOFgUk3BjYUm^)5uBLn#GSl$0fA| zEtL$pEet0J0$iJD4bWBCZH=o0Cl&;}Yz|}M(SZ<+mKNGom8)~l$PHMd(7-4{NyfE6 z=&}7BDkhRbMtoKr>=Wz^J!tdl>LW!Dbe#Vi@;J49D1 zhM!6Uh^v8tG~4Q9_fS2s=)QVGon~AQweZrE(}a>J(-wG(jZFCOYtT7(L!;NuHCI4_ zi7|FKoz>?YqmG{zpJ7(CA9kA%9=~E7qY_0j-y!DJ4no~Y#}A8ihu28_wwwN_BRv_S z`$O0i+!c(Fz);BQ+jZ}@f_<{$9IKE{;>+mMO24#}nVORgcB)Taw2fOrV^l|QHo698 zC>M!p1TH<4Dp$FtROxM^bF>4s;uB?aqP`DC7ndRmF}y2IZ1E-Ym;;ju7V}t&c?_#( zsyza+j-sEMiH7rsiE2GG$P>Jkr8($HkcegRWhXp#rbFqMcBaE5($UR*d{KSQl)|2b z*)bdQ&QWR15gR3(b^X{b7jrjHt^Q(6jsP%2h>?u!%2S0cayEK+KaE=*o&l`GfV?H1%fds2FP`L0qy9hKu>W6lyZmZ$T++^ep0DxA-a!^83g?#)1p?vYo zvn?x_2-Hl)sGJT3&7xfoJ8x+NdycEj$Y&RWn=qVTrOd1MY`^M?FW9a+rtvuwXD=r`!0$txOC3=-tCE?d=725iZi$EecY zLTBq8&+6>nnqxcGnH7(36@MdF%&0YAP7=ivh+Es%r2O!6{Ausf0FoEP33sn;xfQ%= zKl-CBoSKGlAY$aAgCbq-e}I6ZAra;Tl4}`6Ggq;~=Xzf5KV6qhJ%vDzJPX&C+IbI~o19E|6eLS5HaNHF z^ffMyq-DyUQzuorYf!w{)32jA06#KWm@1pz9h&kaSP(rW^a=Jy&`&h zl7~pEd>9Xs#-2>&5*doxuWW}pM1J%hIfd=E_p`?$2^PrwfWX*R-nFilUAPUGJ;!Cq z4?4+a($eJn`fa)SiC2W%2`|#vICJE|gB!D>sJ;pvJ_!IA#EWvgSuf^@{?M@*i2NER zK-1^7sPRYy!H=K|LVBo=$nAa75!`R z^}O5>IHeKTey*0b7sk{3ktd`{O!M@A&_I>$|5CDT|#lC!yQ|O}KYfN{?e+T&g#%6YKLMcwF zzggw%(^6{VGBc1G#)hIoGeEkIb5BP%g9=u-L4KuOeqZ~H6l&z_%nrEMKAS4GHp-o^ zhhqaqmoSa4cyWXVqz_L*kmYoH9@)6T8sWNj=2!{8f-q)DS3^Y$461^c^XS?$)-945g@?MAH zwnIHc9AB4#F$Nb(yb)IxAr+{%@b*D&qY=vJUSC_22A7%&J1%}hK2Z?TQ^)!az6_$D z|A)6X0k5>E(#ONT@2iL);tDFcH%Tv|Le@^`q!W|$0yti>btg?WvUJnp45+9$s30h! zs3555;3%W0C^*1?h=V8s3c@IexZ(&ZA|ool_ng|^s_(0Y`OowG@1u0`=G^+~tL4rEDeR>PyNCGvU=F#3@z$bghC!55Ax;UC;$oB#3y`3@-gJ*h%FR<3MeL zh$GHygd*hs(EG7x*fsB;E2CNzS>gp=3wQ$%>@-bf$zN4<;xlvLD4Ce3 zRE8JV*EBOd98*c>N-5iFxEly7^b0?yA876FqtiiF%|LSxlu7-#wW!3@0ne}g)(S3w zGI+!LFU?^aNcH@tPAKW37QFs~>_a*UXA1lZ+wtVho`(QH1P) zfyiG)FU>H*bBs=UjYX(b1))+A>+KnvYMoW(8<-VT5^cD$jx2~Fc`1VQ#*#9wB{p5M zpF7EtrA+*cY1e@$xcyfvBM9&@Tn$bw3p36Rpk`|fPR?&Z2P%3Ev6teKEBkSBOp*rZ z6U~hAib$pCa$Y4W1hF)Bf&)mV45%&58>mo0!dIm_F>gBEhRbSurM{!9y}M0=rtR^P zvqH%FHka~JBZT=I+b1=ubO74w=GB9}k~f*wYF~G4O`CC4>p;4@+R~MsC)JGLB>fKC zDo&JLg{+&aDub^zbwMFM7%$3_1wb5T!z`55#-}p$uGExKTL+z71?oZF1Ubz@=`~Tm zQMC9!%h`H50-H5(N7=#5 z+Qr^5sR3SkQli3X)SUt*sy0(_Vfmgp_RESHxxa=Umn!^Fz!HudGuHW<*0pd|eG%|$ zlS8N>y2rV6)Ap|>WeRd}Xz!CFwNg<B=XjCDR;2HpKfB@(m(w zMmAA&nK9&0z(K0vm^Vt~2_%W1_Icuq+-qwNIeI2|m*_*~CaL+5kmE7ofm4 zmmjPg%e?4T&^Q3g*Qm*qgMhrHL!+asak;|{fkXsxeXOCbi%E8G;_&dRtBGc7oY*^q zsF^k`ATGkMxYDuIvo~-s*_Y-b(YMard2ASNe9UT|JXroMN3D@P*lyuv29GL=!K(I8hL*qK?gC$xuNL|W3|Z%n17;ETbEQNcwo?g zmu4s`m_v&BiTpKRyf(mMRl|?Nb!=`D<*;n(U9I#iG%^^3QJFx|{ncwhboI8d zY-UrzC)(F>Lz#hws+yakfP1-;*xO{EyQaAi=&&Mb)(_EzwkRVr(H-K~qFh7{l2qfTe&xZ*lf#o1B=1vE*l1NPs`{|PMBQyK7R3`v zMGHB0yyApjPhK3iSxi848+0V}<{0G2VTLLzO8*lkq|vbx@Jkw+bXQ)_>`abwbF(Pe zMxrbu$&p*BoeqEb(A#i*w5N!<_#uI4V$lgEbCTK9oBRqc$L8ObVm1uR;wpzCME1^0 zw&?{q?e#7WJLo*jtg}dtIy65b(TphGgmWQuyOh}*f7ggV#quW^L3InJyu^m&%jOOt z`9`r@+^t2QaX1aNI`dX@hg=+FM-QxmKGix7v_^4Wa-GoAD2=xB)2!@Q6PK85dUPm6 zp87^#l*aEb-GHb2nycY-Sb}RC9xY0ByR)1rq$~v^0>*6q98J_Fy9{sDC#f#1>mF~c zaV>aiJwnX-jM7QCORuc=vN4sWUFAx&tJ~U$o1R%q^+L&);w24m^+s_Bj`KjoQ&0Ed zC2}7oPG<}sh%`-#P4)GzFjZ<2#cWo@3(u&RXVg0_UUV_$0jP4`_*e@yFB)*TO-xQK zEJ7uYpl-h?$n|2WVY(qk`Y70~D&zN78 zhUG7Omo%yDCUv+rz&g%-LqLgUA;P?cC(;p}y1w|A;war#7l#uGEb)AL=F%h%PV-_6 zm<>auY^EWkDWThr#;xgXr$q!%5+Lf{v|XcW zdZ+~7+|u3du7RQ7!cWswYW=-Pq-x@lIG9=wLGMnwr5!$eYieqd)PuOMvP3T;&~nWV z4NqVhZ3&MtZ@NSx4)vW>cca;{s3e**P8iK$aj!^0IR$#zG1$qh(?ujb+OU|-fTak`ohMOem0F`BdJ&^C)slaA3E zQq(5>)eYvwB_H4=`BXY*yJv;Bk2iMqb@$PmnV>XO@e{s`q0dI-#y$~+7Brc3XMh7k zLhc2W@-S?_A#zu@-Uh<7B_)sW^(YHKV}YwjE{=%#SzIu>GEwz;hiwykNO!7KB7w%( zgj{-Y8c{UR$I&pC!f20^lMw#D#$yy2vW*phT``JPM)W?=Dt3AVNOiV% z_aVii$tP-@{KJS!N;TuEx0Pwq0|NtTY*2bUnq+G*TA@1?gdNMjMqOc@mM1pm3N2a3 z<p`;4{1-DYe~aMj9X^gl*b-z&55=wXdF&C5;3kluKcf*!hR*IAy)-RqwqyU1-8GW z6D6y2qQ=J#g&LoviRfSwSHsAg&M+cPF-?rf*WW9vzE@Odtsmj?O0c|?R8m*>DsWE7 z`onyS^lqj|RR`9xJWP=}#HvY_&!Q#VMSLOI=qh>#XKskE!KL?#Mr85Xpc&t3N!t|j zkf3zQ3%`xlb8ILXz+ohJRZ#&Yub`3wO$fX<;a@K4bZk;ERGSw}s`J8w!!J=6H!#?V z?2eti-EB?rBV|);(BjbkD;tKOAVdt|2DlBf)TTq3mKt>f)Y;zLhSD1DS7_Y2^xoopms3aCK(0MOD44#Y9}p)8>e{N z^*LKR90)d=JE4tDm#bh~D+Fy@ysl8#34u@SsKfr3D(1_}hqZB{EjK0;P-tq&=!{8? zhufcD8hUpzIzRl_O{_4kFBiVy&j&m1)9aDoI`UvHmN*>UG?Ph&XL^ZIPz#ItVis9r zMg2mposUlNGDWH>aj;=>W_XCy9bUf)-&rVcYfFrV)BP6S&Zs51u8fgtN`k+Z%}U*t z{?;W(N4i|p8A;4n$nf**nVRC|nK;u}4QA1L6<>{Xr=|&=B^EGB=nRKG*%*uSFg6>7 z)oP>XEOCrn4_mHX?&coAMp3;t81u=@;v7omprTy!>NZquMrBo-?xJWYjYUj4uW%a= z=_o3-Eh8{Xk7;>hSr5T^n$C6Inl@^DIr6<2eY@mSpfuOIz}35^UW|8iJyi#ju8!d? z7!QBpZQt5eI1=|)BKevayLGu1olD9M1%BTZ{kqKECe=AKx_klsW2*B^VysRWm>e6M z4a>LKtnmdep5!HE@m>9=0xWT71|zFDzdC&xh^7(4B4rLdEy$eak==U4#Y8D-p(!FY29l`!Oa}g z+nk+pHFVWKVgUxWMO`=Okcr%48P;+->fBh#rkJZ1OOq?J?>^%P+!$ zPR6=|RGZZmRQfORHa?MaVT*0Qqh|mb3tK%Lt@vUh76ZPD>oU#f*zb2%i4g@5AuQ&tfr~1 zl+azS3l@<^bFz;u49<-WPa;W?dHbyDXbG+z<}1#Z0tQke4!9K=UJVm2bE$`cWH~Tx zo5ZE5DMj*Q;hL=B7mZ*~i<6M*XQt&9@Ptk{`VGyEjBjb4ghM`@L|SkSo!bIoa+9qC zBf_LctY8p=qr3X<8zaF#|r#CIPJGoG7ZL>Wx}T z?_<B>T&`~?HPXp>Mtl>K_^>uL#S%$Kv;j|+K;hm zTDnA214VAsKd~PKr^Hipns! zz|CjV1PVa~LV0D*6<1MJi$Q8_gJha8@^PqE8AquZ=Xbglm)rrCgvS;C7J%b3u1{X!Cr`FyR!`~uT_DWCqgJImF zXlm{0=nA+KYF0XdCh;+?H0cqI(zsY=>Mo6%H9Fh)T~?<3t#9+3rip8x;*zSR6=9%c*U}+~Z@1?u!EPy!geK#9l$6a+bfQ)@>nbB-;kB%cwGk4~|3%7@Xo3F^QkG0mJV*sC zLVB%k?V!t%;d#jkfzzRed@s7Sqsno5zuc-cUzKA}Wtisag^A|LiJ^Iu?nZ<}=xQTP zP}j6kC(Cm5hOGDwo9Z8tx>imLUsp&Gnp#SgZ1JY-9d6`|qL$z_aQ zsx-NDz0u?aQ%3A~qPz)CrLp@$@$xI7w(%X9-1_=Dk!=Ki3$3U+B`gyRBD|QnaM;95jEaBEY?JEKaCLX7bvBnV{zVKL+|DyS0#U(IBrthlaXf| zeI6f@F_M$80^5513Oa$TXaR>r`%^cfLMu?cg+Wc4K>jN|q z?ph^t9Swn))zxXD6VH+uWF3m=aMPYbur;Q9{2g1sDR?8XI_n5$SDTbetL=Vo`6v>RwN~RA1=Sx`*hLDRpA8# zb6N7R>9JPT(GVQ^Vl@braBO+JOr2~ueaOIS`KE99M=f-mPamll~Fd5qw zS(R`6QiM7*Lhq$Tlfcs|hNmSi)*AS;rdy&rVogL1dNm1M5XER{xAXuCe=gp)aKju% z+{CH1%@d;t7xHgO9W-}yQ8jaJ4|52s|03Pn9g3JLvw#w95&V(BW8j%fx%gyt`^s;| zJY!Q#I(`=?v=QmR_mfIU_OC_tNdE_V0Ucqvt&|x_3Te~LBG7)U8J>WlPW=I3f4AX` z><{41ENH4LO9y+ajgnP%UR4R9CyuDKAAiquBDOV#?|PeeBeFwub@lajN(;eHT2;C3 zxZ-hv3ec2xr4w9Z9VEiCYGN#LohF&5=nU4?Cd#LQ?%uVvm2jx=Lkk6!6^)wPRT%&}oE|sK1Bja+kV?mUukYY*IEH;VXOAb-*%7V#2RF@et=e=23 z?tW^mnhf0|LvYsK=)AjJC06OQiq&{m6LJStW^z!8-Ybj?359CE&3L`(OGFLXsNOM@ zst&E0w_9qmDf_Vxi)p#8rKnn66Rr{9=uqp8&88LG>w5@H?;K%8CeYeOY zQP3T!YE|M~)kAiDD3;|PoVtIovvZLXE)m6-*3U9=Y&Hvvs!@B96jQ{t@KWNIS8Z_G zU~$fCfMz)S-FW9Uw@3t!lpVwGwQBt^yH=%spu%3u*+XQ=WmSrhlTf?Nl{B`lTm=&o5YR_b8FX&g|qn)l+#wR99CJO78wd$6{WGuyU_7N$t#U{>S`WB(A ziYmaH+NU9JEslu>yh|bsp;z!KaslkLI=??&n;3$TY`)#Rh)9Qe*)>_C(4j)sC@B4X?;?#cwo51muzn1`YMXYz zoYvpv*j7=U&(304m#Jqt296gCOC?7|gDb0Irnk)ZJzfz7^LKFFGrf-GWIb2I-Oij1 znQZR$ftN(t`A$R@11AP$jFuR0YqZ2D}MYr$xlE&4KkHP=~9eHHIGO)?Q}LB(&{SQp<1@qBbIu!CCdak0a3Zlgj5xuc5*b3xjRS z*qY*{ojA-V5muw^dOzhh!xGQ|n^-88G>Qp#s&K^?S&w1><+urN=4|oge8LBz6_2A# zjm6aU@bIz)Tm1!>(#`8aDFpY>q^sb|GABC{MTbghaE#HvJAV=UR+C5t%Q+$!m3Xw0 zplVq(r24MTBZPQabxB)M_w5&^9jU%`U8`Dgkqe_*>imrOs`25?fyg*Uns{w%b1P)a zx2KQ05%9oNgfBmvgMf;txwIZzaRdmxgwQvU!g zUn{uq;*izYA(7-uE1~498U_D9J+A%Ipye$*twN!`Mq+LdZerDgy3Sz8Ez!g2qI4&5 zY)K{;9-0i=c;>|1K!SoekxNjOPcGz)-O7)WklWI%Fa8CMoUSoc_AMOmt2W?>XcytW z6$V3Ocbps${msm@5oeIvFtJF5#g;mDnLX+Faiyu~WG=7cFP5ezwX48rH?tYn$cAZb zm*KH?AG7&GAbc~J&-Ir!q|2hC2SW40oR{s9d!)8$cmj2Bbu`&Y2r64;-G2034rru_ z(iwJRSE)?FIx#;5K^!?dLl4#1H}6BK!yjVJ5*ouoE)f@FDI?W->6Qu#)_9qb!veaR zNz-SpJrmh{>Mn1b(NdES2<86LD~vht${b1?z*0bBosc3Qe%fq$mKdE5gm{;sH)i~$ z9z+wUQ$D;nzeOXn{5*MG1kHNP^+{I>pFd4Q3y1AU+a(%2yHs>(q@rg9fgE@_6%>qX zN*RB1CnzRinPh~L++bTh9#G;5VN5pp3UbBRp)L4B;~43I2mgf4J3?A3Wgt$8qV^^A zyoFy9*_bpNlXcdFtFYvHwaZX#YKBqs!4+2U53b@%l(Xt$ev4|HfeF*x+S#&JZJw+tO>@wO4Q@`0WhTPduS=-qgKs~b zEi{^X?7(EvHWY~Ra zMrEw=femd_L){vB=wqo|#8uHWK6jdNsI>c5)aJF>#Yq^CVXh>fBb^?tR%RA%nmHx$ zB$vgSkhnc;#gr1WDC`hM+~+W(bf$?xsaKlGV`jY~<}L!=0; zG}uWfvG!P&l;p?DRE}xwZsvQdt=whA(jo_rOG2<;GimS(H^yoWDeD&WCAhegEH@jp ziGTHu*5@UgK9lv*{L^aw8Nffmx!rIYnmMCqSnne2R4E#*?=bR3!A7$iK&**oPCTn) zZ)sQCo3vBJh*f}DA}{LKU}Xv7lHkHHXI#3Whast+wWw*Tc5TL4rl6>mEJ&xj1i3WY zF(8PtoMT_`4IPt}w+S(g zl?I5%qhm;dvB?#Q#sxV#5i8YIGZH4)KPKY2xxqRo4qAJ$CTtT9;OK~o4$TT#O3b)|@luUZKkkO}r4DU$ zKw3qBQ&&_frm{W!WSV>0O$;28lgx?q%Q0~9%Nmx`m-Ic620!?GPmK-D!{b{;{*KeD zxX4Xy9-14gHjRvrAtk^Rd{Jb6M|-DxhE6xRq*Z~+DhD&;-gnP;)}^78BT~=O_KX*3 zS4S^WGZ_|w(+u+FYEw8!k6dRxk;H~w9V)19l+Y!tfNZFbT(}b^(N|rDNrK@5r>y$g z=-)xN05?}2Jig3Y89nkZ-8ev( z2y$lVL&gMnCTap<$Q$nEE6c$3Dz%nAoBcQm##E7vvxe9mLQa_e!Wi!mzHHiBLXra# zygtfs72d4K>BSi!y1=@ZkEOWChrC+bJUg>qyrZ`=jn7$fUJrW)GUy^FS+pq&=VnFD zO)UXK_Ay)8#dut`tOX;JbQ!29C7U80lWV?>Cj1h(K6OG#QNjrBsr67 z{W_-TnYVH^h}1$Cc_#$XoyV356&-?qUWw;KwYEhHk9(3*HjjK0h&3CX;LskkN5z#| zuG!dxP)P*+E~&;+L-^J_228k+tO*;5nq$z<=DY6S2Tlm9di!edSoKhQ^T3I6n69v= ztgqr7NSLXaP&(aXiKy^@*Oj2wyMVn-lqqdbZugpl1Rl$t_pY% zXmKU&8(N$fNzyM7UEGaHoPfI2nHn}rCC#QwX5ow-YI*Kbb58ffvUb!wSTiv{vCtwF zWUZz*zA;vDV}xuIE{rn3r5*`U0zD1iwkgd}7zojMGBfUCqNlU+3g?gJ^|U5Spacq+ z*9{4Ox324j)FxU|HLd}H;^M9d1YadxH^Mm?n_GB?b@a5gx0}S#aRP&a_ztf!gkMN% zIq^p9ZKErYs~bK#wrK*2pb4W*OO0!(1~hf0TIEvev3#maty15)7RyZpQIxZQl@1|y zQ>x>MB)za1Exf@7fLr#R?bswb!9b-Kx-uYyr)i>z!@ z)g&pyRm!f}b+ZuGI#(PGXj!~yGvYVvH?dRKCdtqdWh0=wtNNPY z?pj62qyIJztt2BvCSKJ<5D9f3gnIK8H~t5J)ZC{;tIWAT1iC;XDBot z|MvE6s#7={p^j8jYtJI&7}ZBCt1hpHRi|%Bt6GACTfTk0#L~K4Th%O>+DF}$>M0dn z3Pp%0$zUH_r;Oa8))y7MtXGkQ7_|4%ds-c-vnL>gU_B;b5!pk%6t(p^LzV=0TAB?N zr+)J56H=o@ri>VO&2d@Wws?yXUQ(f9xk+WHLxMHoJ%r7sFM0nG)h9wCa7P%G65f5L z0#CT-CUH(`2zPe_akfn3gZVyC=?R4)9$LedMkIokh;q|%2|6!bU0R2 zU(hb$Ev8rlzudLtLvxvyBOJGYkoZ8T5YLGrysITvFh} zId^_R^pFdv_ogXYx3b{G`O8eY*KK|>nokjP&x@|4lBe0j{z+T-4>l^9Kc^%FhyBCTqNMU06 zE%b>Fd+`g=Yo2qh@Cqi_JWC4@B&SLRd6(yLZfa&&156S1&08+AK{uah3b);O=78xx4KVd zjD~Pfn+H!kTP9;Y=-p*YEgGm42>mnewnnq3rwIr5%JNJ@X+-)>QnDKn!nLd^B9KKG zX}g-cYb$%8-B)`F9$%(}DF{V=V89>b8qUizx&c>VwOv1PI+@~9ejf*uYnY4|K`Z$) zRU|yMyEviARo)q#o7k{n3nu+q%gG3-QwVVJ3U zm`d6uemo+|DT}v`QtFz+S(-|+-9tmAX`1FYPb`d#OI3K%p@;%+d=78-W=*Sw>`|Jv zM4i$}ZjvBoqv0RiBvt|=gHSw@3Da89+*cdy>e1{{VDsu|Q+jES!VQhsx;#;Ag1u^f zL~%~T;s^^`)R`SqZLPkLmmlkNUl=EsNY`Fj4t@4$i+J$jhA{xQkoM*^i0naZm8`(H z6pxIya|s@gber+0HR^W@8Ua1cdWJ^kW;Q|D0a*nVYV`qjJDH0_kFn#TnTYU#)@GRc!(R(`d&yB*lSFJ#W2tz8>zdrU zs!j4=mxHBieihQSNjMtTgSq@sB4b^c*_t-;NLQ;|Z9CQ?qOM%@_BDvXU1IPt*{xwC zHV#%%w9(QHxHKlE2d#(tKwoofJMtTnsd(K$E0U8%jyO8X6$s1h$Yk&feL}2XV-rXI zHA>_k9&7KgR%hmA%=D-z=E?PwDhm%OIwcRht~>j)uJzLDvTBSNYh9e1gENm&60l&e z%iP=aHIGRgv6~2TC<=r)baKa%4n;XQr7Kk=eTIy)wyPCYnrxuX%-rJ*WE7QriDZQ!=^}c1BT?ieX$Yz9;=-3v+Nm!_t%EO6`tZbs{W0 zr&9L@1JSRixmP*#k@7KwYhh?lti|Lv3ad1VEA;DPD{CNB<~bQ@`n&T_}Zdd*j2l~t7n)wE5I%#BTnBOA^!b}{Y4dDxjR5pn=NOu&_A>p$pdU&MeBnV-Mw{fco&H#(F>UR zw$pQK23n$`Pcn5jM5jRtOwgj})ZF%qT#zNV*$TExG zoiMR}{lu6GgUK>-MoiCUSXGV;@Pq9uP_DfTsWfmBuRx9#dHJG1TWH2~*sgG$Pp_en z+kowmSutTnRhF7v-!%`8CYlQ=h5~WOuHX0q)7T>isK#Vt*w^$l!&-qHY*1B)VRx5R zlt&N1Bux@^#h{62M!H7JD>L^_Qos}Qrffv$) zc#S>^9=OO>aYf&{g%^G=<489%F|lzY{9kB`22O;eXS(9uC{>oCD$WK7@eYt+5kul5 zu&PtF4WpZTabfRhT}w(QtD|-IY*oFpbeN`bP=#mgzM@+Z$$>)TpWlj2i5|Br(Ig}a z+@e9Q9?ArmB2{OK#GGM4yX}FzF3gfq7fb5Vs8d)VcHB*S==X#{)g^|GPBE%VnIji@ zD~8pcXe)`B*xZ9$=wMv!y8kd6;o8|?q8dWc>(CEdJ5E)-CX1VjY+1dcFR)-QmwdH^ zxQ6@|nkaKcYl}&nCC8`8U{2x=PcHhy42q9Yw2adH1zv_Ovg2pBS86CAoRGSSrI`V@ zVI_VV>`Z2jAm-8>3n!)FtG-3rDN^!PHB+j;0{520@ABF!z3{5>H-i&XV>n``!0(qX z;Adq04uiKTu374zQ=*k=6s?R%N?Vg=^TM2X@Ar4~dyTWXDy0HLY|PVZOSB&0K~~dR z+Fh#>%lN|Fs@B;p^8WU^gcNO(*?b7**ErFZT)Nx)2cTx28=%=vH@;=pNm&*L0gwFJMm9K0GO|{)q}j!{o$eHfo=tg;D0WF z&RuFRtXA8)XXhq1;c(T1(T3B&_pgeBb#zkoPpxw^^Yg<)bG6k_Afcm3$`~H&^${>5 zNC1qEwEbDbFHxYDXTl#R>LNcriQH$#J06>~5XCNiCfThjLm(ztus4(aP?9x=zL@A^ zwJG?CGV72m7Ew+;ti(}W|K_-K?mwdDxA8=&pu2jY#hggtvHFMxbJda!fIxMx!pGuq8KIw+o*SM>6J=sl+lKizp#L zL4hTiV34nTbYy-?aOmG|Z5STTl2Tu9rgywj)RW)lEsm`f8j6%+EGDZsm zS6Z7_=^ibSXe&$RW!v?)HerE`K{*2n_*p86X;aZ!SAksbj%o`amAsR2o9rD1#T06j zW1DPB93#!F8k*Ag4=R<)GB0f+_a#hQ&^U6wYurFYYXl#&uvI*_Q0*mls_^B$8Tjy^ zf<~E#og{_Ir za{40{u0}R()axY{eo1Nqw>E?$q&q^QXZ3XOwb$cJ{puCeWpwrSedX0@?3+~4i%XrD z6rDAZSfzER2OsP2z$}fM zsPSnCtyfl0L&Gxm<}n!!S}7QaT064P${~)GAvfw|sHN0NsFD3#%4kck)04JRudKPi zV4Gle*h=;gDuHUNj`E<}Jj zN)mtvY9y9%S@f_Ly}_F-Lk;z2ab)p(H`#_Lx~X;f*qP100o!+l{aBd_7GC=kz_6-~ zlurU!;>X?Fm3>^)m_jeU^YJ;m+fq|0eh$*U9l!uK>f}CMvqoG%huN&RP z_@){vG;auhR$URev{z`0(x|_^HOj?qU1DHb3w@@8%LYQ~jViFGsziq(A%gLEz?Hmr z4I&rY20f>89MQQ8Xz;b{GhAoEt8~Gnu9Duy5c?wd&R8hw-rYS50Q!8Osi4Y4*Xz4K_E!SG-0`!(xoqSrvd1Oh}9g z(qb`H!^q^EmbwlP4=0^Q0YJe)FO}pSYKB@+au$ncrPI}W?UkN6i6<(&JPk{(rb;Pk zAkK#1=D}a9vArfxvm)|$)U^3}o*=SS+9)zA4L8$u0XKq>96&XG#`kb5sy|n0wdq;q zqvupNVTk8Z1U&G7&0UkBUKds=Emq(aLi1U$$BH zp&K3>MFO8Le@X{!Ai4mtN*$Ran{)0mVOc%=M(0mexv6<{`6(@TZCqpDcfh zt>lSE)%eULVio-xdI8p6aiQSi8?R0C6H8OeHDb4IW;6Uc%zG6J^tyy){y}<|tw-z1 zT8rX@2~>b2WS!lfW1NC_eN;KY4}7)3#Nlp%dK*OmrAoZn_{@>iV^4eJdzrXFs00&2 z^qu(P$kLWzpP6Q+hrxgYha`YE(tvK0LH!?B90@U2l*_!6Dn5?S!> z?q3lXYQwizPtQ&+Zs>~CRJbXkcwB?oBA%Bwg*+tB>cHS)Y({3Lrr`D=EtO2KifZVI zi)%{eSN~iye`HezZUlp<4&U70-z6t*7gF?vQH@wZLk$=A1$}(j>y-vkvA8_Oq+>xR zJ!4<4jJ;<|%-Wr>p+n;bv#1L%eO=>qCj;*dMrx7E=@iOT7|B|!*2dwWX6DJMS)BMK zePDTdsn&s59Y=$<4X$yro~o(h6{0$heiVz6 zI?JqL3*qAVzax|>ldjM2A&u;tUH_&hNUL$jZ(mKKxNDD&L!-xT8Cw$Y)e91 z)R-HNN-Nf7mS=pEi(IpmuSJ$*t^bR_KQXn;Id3Hmcy@gBIc08Dp{lAyz)934`!=CA zej8zqeYHN64kcAoX)fC(VW1@52HJLYI*gRSh$;6qa;$5ySSMq_AIV-P^*wbMGE%O+ zj&C&`S!p*(jI(BCIUAT&zK4 zu2i=a4~mTgxKk|*RLMBtj=K59VdQ+69)(}D2`Tk1MYwh7?nt?baottt1jL|B7^mB? zDy_4=D8EYl9HCTHYq*usViAp2M{*~G-#E(KkniibgjtRa%}s8pjTnpE^yaBb^;DD2 zueN}gmatx8!^Yg`2=aNmqP>x$Y|PR#S1s3MDUF2YvDlQ#hVqAGsB3O5P?5{ zPTv|ODkH$k z=gdHKk2dNZDqNquf38lWpD>(yb1;Kd>|KvCEEx-1(GA9b)!);cPE~JdZeCn?cIb&0La)f8W*RWOXR`tToA*5n$&W{=2t0ki|MI8WyPA)~ILTC&0 zQ^^D&*G+5$@uDd8)Hzda9K*PmZs4lsm$t#to zz|Gy7bR9ky@j#j;6|>&rBwLKBF$5uKOzi}|$Y9^p2F)e|ZE>Z#Fcrvj+|iPgotyMF z)Ls;*xyVkUXlt>GHp`7>U%0WTI4n2V$%keB!UQcWD>M-(jK*c1&-v5H#>$eOE}z!biQ#xW&*&8woA z67x(WnIcpR^*x($Rf>{V$wZBkxdr#HD-vL65gSxty1V&S9E^Re7Irs=@*KI zF|&qkVgsljadJsOv(G5x0-7<}WeJ(H%pGRI@y-3M>fZsAHtsfZM@Bw8wVtUtGgNhq znZ7NaVx5st^STeV5%6ZXLj}$%YeCc{;%^9Li~E&J1~~yZ5`NhgN*t@j7i#r1f?!W& zZJRZ`OhI6l$(|TtH;K>*O!<%~63F$+`iRIkm3?{_&<1z>s|Sq=01KwJPEi46QUgIk z!o*4{FkLbvx9A=Y7kSJLXPt0f#U$(cl@df!#Jj+uUQfCpaN20uLP2%BiU|b}seWn< zLlte9p0=^cp)FxtTGzC|2M!lM$tc;=~)69t3&3YSk+9K+_ zoG$e8%KZu|+oJZnVqC2ahfsQFZX( zFakg1p%iKu2A5C5$Imr}znROlS^Y9FYf2L;nbqZ8eU}-vz6jL|b1q*)l%@88hKL&jXSj@-#2-dbMR@^m zGh;~9xlID)%7!^_2K5~&iKaGI_mRm{-4#ZyK3jL?MFrmYc0?))Q$x(G$53eo-prN6 zoyd2pwLCetG!e$Sq2fjz;(iAX%aK!IOf5*$|~IwQf;^UYgi8=@z;hC<1oG;Q77RK zB`JtEnTj^lcZnNv1-Qu)pYR zbOfYEh%%re4fKG7WvhT)Ch`TQ1FlpwrqaRf_kx@!hFjpLDqSOJhiQ?Wr4oZndSFq9 zM$zc_1(}B7*5qo71je`A>q(SlVwd^T5kb3c!yEeMP{;sx$q_m)r~|sijR#k%VOp}m zxD3wsjm>o+(nka!|8iVLRw~HGx#7qds;6G2*3mL}xvE}6;wGiOfK=jXMdgxVu!Qie zc&5x8<-&H$^PI1tFEcVMcB+1T9)htIWWD}5QbC)eE)6+J zj+KVm`24W$!a|t0DyaQHC$;q?$f5#oq1D*Qq3d!dz}8uujnDs{fyuG4*+7O7z`U!&H*aKwnBveGX0YI!(|B=)n6W+R*up=Vy4)FdO4H3~o{RHs98Bja0|Cy}58Cqc`^ zG;(sl<8PC_xwk?OAt^ZrB!a$S#Ui9-tmd&fMDg@hme?C0@&M0FixL}6np+pP(m!6rjqE@95E(6`Fwj~gx5cYWRSX0{f4hdPSw-xz0SC_#Y|b*VKaI-Aqp0BtG$mT zo8l~?Lh=xt4~9nMt};E8HAHNZQpu4{#94G8(5r4wbh7%&>}wj%TinMHm1!A}n?s@Z z{jV(3>IFR}*GO`Cst2feIkVYalL!cv0NSki_2LmQ)=^RIIgI=TD)WwmCB9I#>xr!`rsO0 zu_U~KmxJ_nW1aWArX{o;7caOB)kv9aB4uj`mBrqbgh9IK>0J#u9O?}Od)G+m zUtFPFsk3-9mK(9k9eIfb)?NHBtcIc*MY7WB$V47{@y(O0A(|YssCcRvbzs3!-W=qb zvxJT-n3LkrA6hgj&Mgl;9xpIPv3S5~q1w=BY#t~h&mKH!Tl8GN7p#qWX>=tpp8Ult zjiko2af+5zX|RvwvBrgm{%+PPau0!7n8l_Rmw1;%iq~bevC~nBWFe{MCaTFcWCaMG z-uOk*m-N3uCoBoEfcqj=9g>6e4^3~tv1C=HPTa3p8O*tf!BXNp#Sow^i@$J`+7i$> z=AnE8t6M*TZFj-F;@ z%S6^TF%B9?euMT52*7`Khp{ZSl>a5MRb$y-q zXRGgK?&U>>A*(PPo0*&+5$kW)Ge3qMKnOuKHF@B2kyjGFUM$sY?6TK{sJm zSD_seNT8olR~%)ms74yz(@ajIuoImeG9y{tDsoJiq};PJ^R;Ee2o05!Uqx7dAE;JE zTP_!JTx77qX6A}_0@xe+SFaL=7F8UGjxTd=I@O02wjg>L=Yr&vLK#G`YMfFM^4E_* zK=DhF)5m__*`P#pi*wBMu`Ndh&%RBhkWp5ohF@C6B5n1zQ?;n5;}z(ZrsRGh&o4%D zROWEcS+FT|NQ9G%8B_??%qYIX5f}H_KL+Q+MGN~R4&%y-aF}^Te>AP$_&7<#FGCCu+%oM!rjem12!`R9@knnv2q2`gik@F{~ zL|Elj%yJbM)~>L{yx3q;F}@vZCldQHI6G$d!H;Ho9>uTH{_;hhAP_BuMWKpql$V+$l~dT zJKPK*Pq*}UNudpy|Du&KX4TH=5QbL!BV07(i^=tK*=Fcj#F43eVWW-jODHN$kU5R- z_*x`ho!JbXzu0L)AMLS#Ij}!<;uTHId_mw`V&Z>7F&4;k{$*_tj5_G6SILQe(q|kb zC5aVBH6YP{*IYwvnN)pIBbhrrNx3;M2&vIQjPNJ1`g1@GrMGy@)D<;ql6!LPE^&2TF4&JR8q3Dqywq{LIR?t5=k(k>%1KdalyYt6)aY289^pf85IL`#+fG;wA0ZJw!>=-F;S8#GPN2Aw zu^opd$$N(rD5I{D9NRdqEYZXuV4iToPVV zQ4K!QK2Jg8Dw#ZyO#%Co#AwI5mxLbsTZ)Pm8s;)5Q&qxDh@az(*4wR1Y^bY>MP{Nc z=lzg`MHgkn6@4I?_aOy{H!N0aS(uF;N9ba>J64v88efvlXs>+68HjO`a|SJ~!7&@v zR1G5lGj6Pv@EPW2rerSIVNDsza+4>?Z^Tr+pboiljtIR$AV$eVe#9v&+uHkTxLzTt zBJMqUVe4vL+bngL%@7n#W_AF~@C2PBY35VCe0bX^Ji4b3m35sI5)F@(oSlQ~{NN@T zQ6sC7qDw+Dt0L3-j23=0%F99Zb)1+zq@GhCiJT&$1QD%B%s_Dx34`ce-v*Z=WG5=`r`(ABU9bTmksi)+FWEj7n8h%V*gfgcmS8cv6*%hJwjSA?=9iy zgRk)eon0M+W>q;?Nas)BZk9{Xtj(t6o6x{dxFnN=ts9|gvj}=Z6o+(rU-irKQhmW? z{#m4YeX%GRvk59?{farT8*uolVST6 z&Qa}mxm1xdAmWfIH}&J0a+bzOaVa_jtdN}0p#HK!RE%UQl=J8r#C>#OA1nD98!shZSr1i zT`Rg)RpkQahuW;B`eZpN+GI)?M1sD!{2~TN`e90(3JVhLjxeBtfLqnhV=T0EBMG-6 zv$dgb&e+#KfEvg8K5kzY6{Sw2Yg}$S#$YQ$y(Fh2P43f`imAA$=OU=W3tPTGw&rxT z(RL4tPTWpgWh@2B<)^-5;`FxR(~hOY~#QrGLVk8A}&|Tz)7w?t3vZuQYToVS!^Fu61}J?a=Uy@6nq@U zkKH&B<)dC4m^l*wiq5TsfrXc#Q2=qUw<%P#rl||{P6k86B(57~n!I@hjl0CS?a0#( z#rybXWjuP4xj%&l?L}q2K^1!ILx~C7mwOzE2z*O)$#)c;a3oW5N9|vTE*GXKek>g*Es(sKbm@Pcg5M&jtL=u zdc%TIctuXOm3o&_s-qo?1?$HtPby%rGqYNP%&X_{=Ryz^^buXtm8$;ZwGv_cFxw~% zI*RI$C3R=Dqb<c(TXmv;KaI7lm&1lfy17fe@LG#!R#V~tEnk;!Jeub z(xj}-dtD@MRuF%QHInDKY8w6B(PWI4!P<&=qyo2Y3MjY4C7zr} zGibI9p-vJMz{zXCn^5H-yob-QphBOpf1HTONJ}g>WYCc7-Mku)kjO!Q8bb<7prL&c za3!ac3b=kPr8|=@x@mZc1VFc%8lOSKjZ9{dE8B#ah0*)?dg6+Mh_=T+TIX$9*@0NG zXtb02MkZEIPYunQEI6T=g4)z6QL*m2V8>1yQ6(s@%<~Ai0dv>RmMW76kgQbVM3nv0 zL=ndl2`Qr~njX@ic2U1ZLLu}@HYrV_negMHW_$@&sMMg+f_Z*m6@?+k%yw9=3#J%a za-UGmoJ>SfwAZy8<<{`ePPVhtR)#yE@t#)ufp8Z1dKs>>)H^piwv}{%10Hlmhs{Hq zvP{KQ+XU7UThz>1XTm6rB_?ED=t9z(jD#E;Zq-v7XZMuw8QxYVS#_K_c3$Luqe?Lj zO6FKpXR=u%0CY{u`MBJOO;}|{2K787SqDhB=huNo7tjhTyW%$2Js#Mp4()s#=cf(Sw5#Er>YMXv5dp5Ae5Sj z^~4GQi;x(o7p1PEpwh5eP)<5BQ8-1JyQuY5J3HyR)wy0cZsb;wf}(! zESDUN#>JaXXUCXK?F$H}U`w8_6n$$N*|$dPueZWrxB&qs2m-aXv&eObBzTk(M9o3C zO2V0JOm7~>zPqt+BM#!)fH{G1ONuiuS4XvSfRCrD)6X*VPu*_#_p)v5FZkzm_Q!4U z?}dBU)&2Du^BK2zN4-eZb#G_>Fr6{E7^IHQ}G3{@+4)^A4e%M+yHuwSU}p z+I{W+#rp^PcM|@wodf>wgnx$Ue?<76`v&@76Ta&K0bh@ImydLd>Hn2*rav0*A|IjO zhQ_mt@IUSu+TTR@$-4*qql7d4^@MZ#n|IX5>T{X?{e(09b%gVK{g`lmufs8S@=4!o zHQ|TS{yK&5ukRY(Yo731iT+W-51@J97jr5fS?9N6+}!5~i%Wm5qwzeB@ITY|4-$S7 z;a3oTD1LVP;wHim-X-9B;%E8Db6-sD976c7u$Ejq^@Q(B>+mANx1smFmGHk%JKrOG zDfRQ`guj=@^J&6YV9mJx?1QLj(o9MZpH6g@D-nU=YiT+ksH*InGM{xJ~FwyT%^ZQxC52NvX zi0}^(Klv5mchETRk3B9Q>Cbv=gmXW?N%+~sZx6R~A^o|H_Vqsy&iio_;V+R|$U# zFX8ZqEuOyDzL*R7NPn0=w^%%-pUcpXVGYPf+Tr!^7~yXvKK$zgm0an0onLjZ!R5J^ zl011`f_ECSy4#-@)1PngV-Jb(J1zcei%UNbrFFaG^9_OEyV8C?knr!)xo|k)m(e&+ z5`HuBv5yhHf!61j2p3-M=IcKR=jYx>I6rr+y-f1yujk}UQAyh{6HFqWt zFZ*t9+ovNAHxH8j97E%F4B@XQzO=^TvJSbQClfvQ^KFE`lKA|O2;V^a;&+69lK9>( zFAV*Bi1zPcgkMhM`6$67mzsI`T+jOID zl;}rk-z^f(_lQd~?R=8xxt%W)&h0#yY3C85=XU-?IJdL&OT&1wT=!aw%lPp7euU_G zpI$~dum5WZ=lkZvgfso`Gx*aP{NR^`{_jZhzSQEFD2=!9Pzp>$|>7IP1IqMEDnX3hnRzs?g6P z>72TZaHjt~;Y@$*t3x|Xe?Q@T{{D&Zui;MT-nZ_U(9Umm4fuhC^K)AWe=D^!L^${7 z3l_(es2ugUd0gFBiJs5X8wls;K1lfG)X$ykL;v}?`w;$H8s`?mx%~qxrk%8(FSNL< zPd;~M2>D4pL;IhPZ0e@gtyT6 z{3qe7NuGR?aDMLJ3I7}IyImW?dx_4$t+(e9&iy%=aBhEuaBhE|aBk-Vg!6MRCH&7j zg#KJbIJff+!aq#%%x#48xZOwik9H63KTbH$<7i_TAAa9Y68_LWp`F_Z=l1U*ocrJ1 z6x#pezM-A(5zhU;mvA2EUlPv!KV(U0pYl2!7h&Grr;q8W z|ECbna_`xM^LSoP?eqLTK=eF5zs%szdyVOtoP#_*4TSUf9G}5^3Fq-Sg>W99Gc2Bt z&sj`Q<8waYJU-VD&f{|nwSNrGSsdm1c_f2xf2{et^ym5m0{#9O{HoU)dKtHywhQa< z7K^9te23_HpFWkL-|lsxeSY6%7Ejx6&Ct&iK1Juw<%GY6_|IL`K9AeIM89&^Shd+~D*x44Wm(;r9pf0G<_3bpfjoR4na&&uE*$l#yM;MX4) z=7rC@CoC@g=jZ;F=y`nhKi;$>^gqNo<@)*J48G3dG7i5dIcJgRMNf;RtDm=8Tap@1Y^LwJ_cD88-AwJUnJ4jA`J>j>|bKgYxJRaiC>$ehq13K^U3kkns z8)N5}=Urp*blk2ddLHKoGxU!W{hhR)w`-B76yNJ`i>J@6CwguNS=UP2fwz^%nICQ> zocZm$372tz$fTdEGx)89^ZoY@!oQ63=qc;(^k<99d)E|nXzjhwg)Wx0`;+xP6-BoP!DfF`XmF6VCL#7I*7p)~*xe0n(4O&+|Kxp?@pU z^F94y!g*a?MmYEL9>QhZt~cGN+pEL;ApI1))8Ypu`0*AWAzbZ8_PsV*T;8jP?j3(j z=znGD|B|6Ue1&;X+Rkwq{7o7BEgAf>41Plfe=vjpJ%b-=2Qcmb>oWLB8GM@XZFUU% z@fpH--e1~f#?7s_7fJ{4d6mV}{`3&e?RC zH0aiwYk!{vckLfyap^y|e>CCT{@apvT>I}%aM%6?)DE|QIpN&?Lxdkg=VskX^Ips^--&U)8Q!rAX@1L5q~_YT5uAU(;)2xq^Jn=HN?`Y-#sPhJF{ zTZx|e)qO*Nul=kw+73H^=QdR^U4-R1{*9P_2;CHS?L{>6mzzIZj^S8N}~xruP0 zcjx}`gtyZ8oIp7D{|$r-y=&(*i|>a1@wjawdLFlnGxV1eJ@fh7GW2(4=pQ9|=I6Wi zm;sc2@_g-OaT$M>yN)JY=&v(huUk&IjOWue3!7Eho1cEW|;ea@kFxIY&X z&g1`C!mp(B{Vu|pzdcDfub+KZnI6bEupDx*#ijq-$Z{T|7qtyzmUPN zAzbXvXW{?y`AG)fzt8+#`or{hWbi`<4ZXY<^OJWI&iv;Ogs_;qN2*hX}u6yYSqn2tSJSIeV=Q@Ac6=1O3YgKZy8Jlf`A+gwLEW6N=Ak ziJr%;M)bT6r-+`=vhW${6>opCb*;D@gEFk>mONM#&f^j?L+a;Pl*0#;ErEy|0Y8t^!&cNTU`3X`>28FdHmlO-=N^P}KbI5E`~5`1nQxqFae3|z7zeiw&mnr=r{@v2}=> zgme41W!nE9(R2IvCb(<=Ri~H-$@uVleS~nn2R%kO--Ff;g?5N$v3a_7Oe5?@5HSf99JB=X>iX3BQ{9a~I(&iC_JK zaQ5?jf^fD||DAC5^W1LKjE{`N)<31@%NqX>WT0fGOlB%J*ZM+oQp-5DAD>x46Z z_(2ALhH&O@yN-qTV*aqN#g&iIec^>femFZwmY`F#8y;e4L{obbjS!hG#AVctvTr4w?d`+U~ovakP2^ZvCA z{!79o#?Y;Y{*9(ZX{VX)M^hR6y&3!_!ne@++~w5J{{G|_@dAs>dujZIbO4_vljdLf zwP*X#&r2*W^unL(wlj2>GyTqi{yT(!oW}EoQ|5cp{wegnorKp>Kkv4<>*qS#&)*RJ z7`^Wf)1iIFUy{MwGx%5re@6!YGT{?Dg>iU<@DCC{ubT<|JcP!fn{ejOXA{o*Yt3wE z=MA`*xpg&6IP=eQEH2}@#~y)yUYOwL*m3@Nf*)+>{j&+)Y4K|keB9zUB>1&h6Y_cI zY35&f9QXeM!nyy~T0HIl%?a-M|J?+4{r^#dyZ%3t;I99VCAjPV33H+Ut7)CTn{eh2 zAI{)^Ae{NY9`m7n#$T1ehX`jr@L9r{4}8PoZhyIP``$u$F7tsmE(VEXHO5g&Vma9;n9T3p8M0Mf%encz;Jw#^pPzN2^RfA<7G$L`aE68u_=zbL`) zv-qnL{N;ED`8;KDnMZ!F?cc0_RzDMduiY%}`nk6ut2;2k-FqF8;O@O%nc(idmL|A+ zua*RN@70sw?!9IRzZrbq_45pi%ln>$mvDUeT^ans41Q?_zbb=&HG|)r!M~TmAIRXp z%;0~_;Ll|6-OdQ}&f{}X20t=`ACtk4&EP9C_&^4)W$;ro_~s1$_6&Yr2EQbOUzx$b zl)-Pv;J0V+do%dYGWcT|{OJt7(_6~teZLHTcm_W@gD=hCtr@&GgP)wiH)Qbn41Q(? zKR1JaD1%>-!M~8fugl=KWbp52@E>LHXDlxKnfcys|5!f12W9XhGx#wX{MZb>B7+ZP z@LC2xHG^-?;BU|1=VkCqGWeAl{7V`9h75jt2ER9h|15()mcgIS;5+?O`MmF!!4J>i zM`!S*8N4-v_h#^uGx&xKKA*wQ%;4u{@DFA1D>C>OGWc~F{976P?hO8527fez|2czi zcV_v#@0G!ypTS?2!5cF8aT$DN1|Q7eLm7M`gP&*dl3XYdCz_@f#8&l!BXx7O(=y}#_0!JnVOUzWieGWc;Bd}Rh-o54pi_)G>r zBZI#ygI}1zFU{arW$>?N@S8LE_cHhc8T^q9{@)q=$qfE?!r3mr^lfIHr2O!Bi_7}? z0rZOQ{(Eu;-;}{Wkioy0!SBrAzsumezdfvT?&nb%yfcHZ&){cg@XIs!jT!tW8T_vq z{E)ND-)mV0Uz5QXGWZ1<{OSz;-3F`_GWcZ~{NFS9e`WB$ zW$?q^S^i$fW$;rn_**mhr5XGi8T^3^{y!P~pm&w`zbS(cWbo56_<0%pUo-ga8T{87 zeAjcz`+rOZ@5@QX9}S2FlL z8T=0!eD8lQf3H_(@a_!0F@v9z!9ShBZ^_^fXYjgn%lm&=27he^KPiKsp2085;MZjE zyE6FW8GO(8l)u+2Gk8x1pU&XtW$>#r`1dpTV;Ovp_m=nn=nUSK!8c^^cVzG@GWbmy z{J{+Vw+#OL_m#ib@(g}b20t@{e>j6*WAWYa_=EQd_Kxk(GyO^Nkqo}Y;@jeDzup%) zwawS-zLcT=c7}fc^UW7sJBQkKniAZ#Ka{~QOmNrE-5LCx_s7q5?SCo3T|2E8#Pkk7 zm+;ozgPi;u!g+jlx-f3XJ$G{kzaWEuf$)#+9G?44!uh#(5x#WCK>r}&E&B!h?}T$Z zulYdSe>V>AA)Nd3VZ!;jpC+82yWI!N+kZ9TOy7~gPqVnJXYq$|{w@EMp}#1De?EiX zn!$gP!Jo|Fhg}rjm&a#G245tc=jHkg{%{8Wa|S>0L!m#?zMJ0*Gx+Z^_}>Wc-8HPM zOD_)XFW)}kbsrA+$$JI-;0(Tja2|)9KN8w`g4X#z5YF$lCBfZ(-070g4!8fV4E{_8 z|A&v3w{uA7=f8a-(Eo(+TL{01*2&!&{NCHyVFte2D(Z=jf07{PSncPtuOif5ZOa{e(B;d~u(z6E5`MvVXXV@Yi9TyU*0W zn4h-AKVPABzQ{Np?#Ab1j1&E*7$^GPt4#aSe;%Jfi_3F25&g+Te;CeRH=bt_&h4C? zY3E#`=XMUV1HK!c`{8{|-{imJ2|jB7^!5a|?n8CAC-`NS{^11wFN<&gujU8$-2E+n zWP-ok;tdJ@T8pnr@IH%=Cir_Ses+RiWAQ5z{5FeUYjK&Ei}noj{xhPNbAM-?G4fgW zdGoJ(FY{Yn-QNg*6RqbRzhEe&{SQ+6%@&t-diQXx)YYAkp}&CWx&2Fseme}ZTesH{ z{bMxm-^$Sci0HXL4`=9qOY~LRkNaF5-k1CHVvEcBoAfz= z;NQ*Q2Yn^9^Eu3yTj$3UzPN9|r>_n4{M`2t{?}at{pSe(J;{^5CVX4M5B!>GU)Hnm zhkDB&zVY?&TprK+3E%C2@Z8@J&h0-%`1W)!JN&xx_Fqdlx8F@Tw?9TWxBm{px&L3t z;CBZW@-$M9bX}w)f_$z4LzQPI&vJU@D>+mANZ=-qq z9O2KSb@fBSm(V(S>A#!)yLrFX&ii{UF3){C_>WtkR}%e^#FwrndghZi5`H+z8~;W4 zI@;Gy63%|zKfED~Gq3Y)ZVWj0^OYHVobYBkzjpZ#(~cX5oh?s4(&91>2hu$Lfbcia zK3%xkv?KH<(YRe?acRGa#_e*V=W)A^=$!T zKb+S2j|hJe&HEn+Uq<7$uNAyye54&LQT-fBIJeV8_%_u33c{rw_vt2_+ZiMLPC8#U z6E5wbtNM8h;oQy#3Gb(Nt|VOA+1|GEIl{S}Zxa3t@vFZQ&hOiJn`uzSjmLA6aPH4# zg!B8}M>s$CX~LQQdEYL7?sCGpof*Qp|K}0T{oMaQP5ZLmB%b{t^K0Gn3BQQst|bqWL?fMd|+p$ybjN{!QYCXWbF#AKo#n zhs(Yj@GZLp{ND*@`hC6^=m#)guAfbWv!3B~jPDlc`w8dv&tRPBFD9JN{cjU~I<503 zEsiFP9vkm0pZf2ce`VZWN8>qhSHSt)xrFeYXgnV#{2&_7-n&gZ?z#2$xu;rOp8F1x zyWUB-tSdL3?<1Vo{|5*cdiVJR;Y@!e;X?1$=QV^g{nrT>dbd8mML5&nLAcPn{d+&* zO#hO5OpnuXIG*s<{lYjL`-4Ew>#dLQhiRQ`CYM^YkMb{L2~qjtu^Z`$PK|())her&!d z&z1J=@~b;4!R<1u8_3|N5zgymGvVC+KP9-G*19hwxa;RP65RFYyBYj(!nr>?{3L!~ z*Zv`dGyPJ+rT^}^%?a+tZC!%9_nJ;{d#u!LO7Pq5JpN;XJNmaLxTF8)41NpY%pdM1 zT;9v|^U(yi+pz903GV23dN3YOH$Det@RuaGYyap3ckRC}!5#hT1b6f!7I*v0^=C4n zx5s_mBHZ=d?;?JF8R3sn z`@8=%wDU)jLmCP1pmx>~eiiZOal*e!?O#Fo^9jF?@D~vu{=vhcKZ`qsad_-!0e?3p z$MOGd9tk+xI~oc93AMk9@c+ai>)IJ7{4$bHZY7-UTt6lJz1xL$_WHT$kE|cIr|fTW z;gj6Y=Mz2KQ;sBhw!0nrczEB-cL>jY58*o;5b$mO82a;&JwpUJoN!rJ_Um=;Bz$-; z^IiGxzgb-R&w7cQiT)w<$9-{}$og&+YzXzUTV+kfq<*;%Pr$MD#6toA1hhkIK-$p6F#9 zT>B?v=-)*2-2TQ4{fCI2-|KF|<+;DI?{#0Moj(vgKld*g`aPeF$IZ2Wh{e-!do|H> z`>)B+UqJNl$9{C5Ph{wCBKpr@zq`*J8TyBa{@p1$u( ziJsf9X6Ofrp4&eqL%*5mx&60i=pP{ZqwQLdH+m>T|1{B`xxaaL{jc5N>HF?)aT%X| zAkVwc>oW918T$1Z`ZF{1XJ_a?P4qVspZt#u{qKlg_KW0Ll+UjJWB!%*`owTxqXDp&Ke*4S8Tzw{{^LY{NrwI!qQ8g6^Y#q=BSilt;u}wA==Xox^jKc? z8sY;-TRa_~6-57L*ooZdO&R(R5dE#xpATo~ze4ouw|A|h_DY8SmqfoS9h@RW;&d~oO(YFzQcw2`4Q$&9n$q)aMp}&sk8>syoGxSdq{jtPPp3czk z|MxJSmpdgDprb9Gj^_%ZUqbD_DMSBxqW=S}pRZ-;zfbgCwElmTq5loxkE4Aj|1Ulh z-fIQ%v9m0mzSmVmzd(HHnhgE7i2i9hAHSEOKd=sm3O>>mIbZrLFFrQGkGFHMlJLLL zy!Tl=?fd|5o5ua^-$uZLG==v#@N-?uYE zKSK08p5qz%mu?^WulFgpPZNA^J2#gQ-b441%PgM0?^lWbb~=}@&(PmZ^!L;Hzb`}o z7|~x({NafV{cbyi_uY;5@7@+q`~Nbc{{`{eS7zv2iT-jrM>;d~HKPAK@x##!{TW1m zFP%GQW#~Ud^epFpG(&$4(O*ULdwYg{`yIo0vY*K=7Ei}>712LP`+Xoo|30Gs3ysf( z8Tu=U{sH3W_h;yL+$r>bkk;Ft7Ek;CVxr$d{N$Ax`csMi5xS?$X6Vl)`UXC~GW0hQ z{du$=Zq3lI+&R3j?DymC9Gpz}g~V4+v3NQTXAu2;B=4P-p}&Oak0$x&vJCxoME{R; zKe{nP{{YcnPvh`VhW=@yKakd8-7aQ)()aDKxRZ1CwsU_n;q5eEr)1hWgXsTG{Nbz& z{Ut=dNc`%u4E=RP&-$pFGxT>6J@@C{4E-;Np8NA?hJLqQ!+P73=5cR}r{jDy(SMrw zPkn}dCDDJB+V9KIf0XE7Pv^xaGxT?5=kbME!p%Lx03>VSJeWr4~=e=Q5%{ zhxpHDGW0hQ{cnlC-I}4V+dcGWHSO!2EuQx0B}D%T8qcFL^e1HK`!n=2M9=+M$k1Ov z^!&ab$F&bM9+4R zk7ek;PV{VNxgkUUeWKry*4vLW^p6q!n~8ruouS`j&oG|sKfJHS)A4*U(f^L*w^wB7 zk0bhB=$vZH(4R!~FCl(j%g`?p{imq?H)rV2C;CTdd_I_=zl!MZqW)Z+p}&>rA0YYU z_6+?`iT-QUpI>C?|4Q_Sll->LUS=NC`8vqrGF8XZ_#B#{uM+*+i2p3j(DxAi9n^k* zhJKvrXXt#H%Fy3K^y9Stf0m(tlIS0#^L^XB%g5&ci_7@@hUBy(GW3l^e*&FH$7kqo zCi>%OzkDY{|0vP(`~EpYzvn(-|8oBiv3R;3Dn!rye_e)tkm$Mpr)20i6Fs;8_6+?; zh@RX3bcX&#`-b=B`8~?w>H8i>^gKQ*GxVnrJ@c|YO9&;vMppZ&u4us!ZTi_7@1|MQ24ejAd1F3r$iL-cardB}d}=>&hFUF(PJ zANs@XA8zq280gu4x1+^V`jtd~KgnZ#8Tz*n{RzbX-yzz9cS^hKOZ4_w(DJ*q5lifvt93*4E>rzLVslaFSBR%sf14v zpP#jO+Rt-|{s(k!o}Zz=is*UWUY()8o#=Vp-kG6)l;~H|Is15qez)g`aoCyUmc1>W zzVFdQ|8t_R&(NH}BAw&sXXvjY`X@-gadn3NcA~$4 z_{NpGngQDx-+v0`sC;Br<&Z*DPuOxc57x!i8PbK<|q?ew} z(4R~6Kcw|`eun-kqW=rYjaO&rZzuYliO=7ep?{R4E+%=2;hgm%B zPb1N@-MlqJ|8b(f6pwnyo-tn{ob8X-X4<)%=%t-g?Ah=r;cPd2Jk!o@M~3%hyW!pz zPv7@wqGvmDeTIG|(X*YpFGD|1^lV2yJwty9(X*ZUvJCyrM9+5E+cNZz56zaT^ZC8B5h>9ra9?`PG(X);=%{metKAj{#c@C`|0r+`V)zs?Wb?b(7%`HW!@jR^M2IJ z!g^r4>M<5i-|NFf&vw<1XXyV(^lVpsDnmc;^3Wf)tFE(n+MjcX{>>!co}Z!rHPN#j z_V*e3SG*$hhwZRSES~nKi|E-7yCy?_G10S~^kW(N)}umyWF8N;GT+IBM|M(+r~SNy z=-EzsS%&^PqGvnljT!m}h@S1F4`t||CVIA$)*Wr$H|_tC7MK0ScG8z;=-)~7GH$=J z<8}$*Y$v@e)6U&Q&vw20GW35WdbWE$m7#zBE5rP)!0uWqsWMu6ef{D zX(Tn2nzCsU8oLaNDbhqV+At^$lBvXGlZh}<8r#^jbMemb7(SpS~adaU)_>wjOb z=i&DDb^MO={GGqe^}DW_kmu)^HAcR{F=4#?oN-TaJ>DCT?~V6g!;Jii$AhtG` zHXzUEgmrL^>kp$&!{c_GH$M*tz@NhR8Cr?E`C>BhT%2fcM99n{Gy(i;!oXE8zq2 ze*Xre&K=0J&N%o)yw9C%)R~Sv>%0uF#rj-e)OjCy*7+3vHr_|q8g;fJ&pNxOh5g8% z>uD;k_g4z?taB`U44%h!FzQ^4y#JkB?zrmr9I=346G4L1gy#0Qo&J)OUyJhfm zvESz#b>2gsbymT1u@1jB>TE`yb#^^I?60q}-}e#M`|BX&S*I<$HTKuZMxAcRv(AO^ z;duU*W7N3;dDa;YAByAs9-~e%@~kr*{uSnVwo&Iz-0q(-sjwed?C&!1xEfMF;kpLH8K^7kR{`bmhDO(-|= zOW-aqKZcgD1}?9=@Slzv(Jv=ZohL}nQ-{xgB|qYb5flKNfk; z&r;-Foh0eA8hQ4UkRA*8aru0rxSI#|c@Ui2ZLjL=FWbEc&i;F&4*MxU-fh>{DMX&* znt(j(7bDL;HyVEUDY1t2y3K&I&V}NB-jZd!ecT2bUpI^ zv*8=M#m~3y9^c={jPIWse*9S>@Ak|7@?LB4*}<2h|8L<}qW=l!#LvGDXMPR*vFQH6 z&%++)hB}3KK659W{Y-(ge$IKJPE%ZGha2AE{P_6`4c{#*e*Q?q-!go3kN9=w8vc>t zyIc^fx9 z46L6SaQ5@P;rm?_zkUb9uQGg+;foCa#qbur;`ejm#lg?Uc<+UCye}BO9R4z%mzHG5 zuU`w#kKS+k{eHkDAH_4t*S)_1pIidHPp|Pq{qgx&FK51ZSONt_VIB*R@mO%wGq81nceP zexc6!(f9xTdUy}ce48snp4;sJ=XNv2-FYk-_sJI`&-;*m$ah2j8Y6!*^4WM^ahs7Z zL_Qt)`;7cl3tA;(5iLMt%bFMR;yJ)yO}K{55#KH^;~?LjD8PUvA{r zB7dLU^F~vZu))ah)ju}RZaz8Qe~ABw_nXLbylF=MG~_wnvy6N;@*M9~M*c?RIo>;r z{9o`jxE_tVI;^+*aos6}^Stq?;hW$*&-c3~)Sr*-j)Rxt{`ML8bLi&__$xS1?wuRz zm*D-#G4T6P|2+5=@EhP&(dSnFd|L>A8t37uaGsx6!?W-{W!1Hz&oj~gR>S8E4EfD? zU-k){bl|fxH^VOy_kErz+r8Gv&sTXrt~ZhY z1pBv6<^8y}8TpoZVO*?pis8Ks?=P;$b(@iY5BUYSeyv8H*RPGp&%^h+HyQb6gJa`z z{cOYMCWndZ^K*CPD{+17Y2*mm%+tyTfDcCHx3qi#pqkI!%X!aqWuh`+?$mTqBWx2lITd zk$)8VUbugI*2phJp7q}~@?Rj&`ac-?MmL4=GT%&GkGCK4uVS4HHu7VTPm8V>{x!kK ze}Q~)be{CDO-8=q&7uFT_?|`+aovAUp%1_?#}bQ@N@1b8~N_YAB*!wUn4&W z`R3SPj~V&($bW}^en6hj`47A`?5|g_K93T2<7Iv*^4H*f${j}jS>&f-K3_BPTMTb@ zTj+Bg-p?K)zP-iqBiSApaox zya@Rtu|7v4&-;*vklzRApT~^++sJ>9bzJG`uq~>xm;Wy zcSqbA%R66=_m4T^ZoE@*9>_(W>wE&3#NBq8pNc%k^`wzsi+nR2k6#=4gi)cN za$H9e#dSZ2A>S6)k+w#@8}e`Ce14vhzaIG~qt^U-7=nC*XkGd9|6}lrqqXn-eZyPa z9mebGA0GS1gkzNZ?cN0Mj`+Iecrh-hBOE z;EkgD4eyOdhw(mu{o7nz_n(IRMw|ya8Tp>bABXolmmB$^@K5lZN66>med6av{ukt*!g*}hF|qm7^VS?b4&zFLpNi*--QhpuIaObH5!Um~ z;%=y~;C<_z$a8**k-r$%@u!UZ>&WxCIIu9RA6^%Z64&#Pjy%uXU6AK_`%2_%@IK;t zK< z{Sx_AxQ^Ev`9tpw`-}D4i0l28fjsMXHS&Fs{}KBu$H?D{Jo}ks{p1+=p~#h`BHeVC||!V_L_k@?mjS6 z?gL*!eoAy6@cFqapC$Q4$g}?2$dAChy^lQWe~A1FtlJjj!g1m1`|DIHoa?_G+|~E_ zPH^UX!dX8D&ip_)>)!-te!93jbjM*_&l~wI$S=qJ!*52u(S2ck9*^r(lDJ-<7a`C3 zy^Z`p;9V~&;AcK^6im71?SIGjQsh?v;PZ?{8HqH z$}th`>Vy?W{tx8W;=ZN9gs{%Jep-pU*7wExyVgejbmXh?T)mr-?}t3=Uu)#=MV|F1 z8Tne|C*%D8y^;S5`FVIhzF$#TC(mJA$>MsQoQiyJ92foItFRuvgcsqyv=;UGyz6)5 zQ*hs#Ffr^$=HC-{n_PkW!&>CI-+w{A3+7?hNufUT`-!{y1989C!pI+u{CxD^-pF@F zekJY?&o%OWk>3^bd9{(h1^F#Fjz$>yBINs^pJF3F9r>BK9?drL704H0y)8BJYmuLW z{rk0%{~7s@uz$B1`NsE$^*?7=M!qBR<1s&H82Jm3pNIE}eU1DB z$p4D@dECgqh47l+w_|@DAg<^CFyvd|JfCXh zPeMK!$74q$eoIbvPbhG4hL%?}Yh$$H;F( zekATI8ax>Pe7LW;J0G5i`D|w7k3jwnoUe{G@|}=xgZ$}6{(R)O;&{B!$oE738|<&^ zjr=g=$6`JUjr`-tZ~w!TqIq(!nMS?}d0tOHGyH3~dw=1725-#7$g5E@>|jWvqpXa z^1ZPR-!t;-kgviz{NBhnm>TB)HRO}T_58O+ek=BGJ2=-*x>4skBY!`f_iwXMCk4;b z{_#lYzZ&P^L&SCe$09!p*V%SP{!HXw!~NuWM!qldYq5W?H1bvOU!&`qe?R**>TsUx z;GE|zsKfileIAX?kDG_F(Rh9RcH(YG8=`gVFR4Qef6DL`hClFF*e|Rn}C(waE91&XYdB z&r|XHZzJyd|1R1uKA&ae2O<9^>Q6HAv*F{S`x(FAm%%xo8&LmK)Nk~3{Qi#=cm01E zHShaB)5!Nnesgpl@cA)D{xRe`Mdvr4UyMB0bBof@Cx5QIqv6BFUH|-jG9!`adE-+f z|CN#d33>khoUO?7{qoVz#`<^tFn_$bTmS6m0pz!z68c1e=rsfR-En?fjQk6DuJR7@ ztiKV?It`u+^Gt7PczeTd7I))y{ijO*MaXxFuBU$8CO#jwOHVUA$MAMD;@7!a-1n0u z{X94`miJyO{;Ig!FW*GxE8pjrhVTAD*zQr$`uF*^aMtMoXMQA{`4baks8`JeDHQ<8djR^RUJ6!(TD_G<=lda}57MT=)MQ z^6bCa-1z-;HGCbM$NTQ(p$^y2{&3Fo5IFPG;A3z+j-D6lAByiAJZgBk;mhG?pw3gT zhWa_UANvaaJ&v!|uZ4UMoM$G$|HS7+^9|o)eyol^kEL81ExhQJD!%>t68%em9Cds> zY_~ePAMidNz8mr{z?ok_NB+n+Lj94^`%quMAG{jxYbL{+BmbP?^Wa;f=c~T{+weay zu8-l(qMHq$-vFP7{k0XIi~FlX7KCyAiT+Q3{{!{A8lG+VK*R4ae4^pg;D_M+IUC*^ z$3-RlJX{wVR)q21f%AV)IQL^N`~}Sa4EW~geYc*Sztf`sv|7$%XI6$f z{9ej+aDI>Iz;{BP-v_IPbAFn>8}c0QVQ~I@;yH%b!a2{a-V60PZ|&gxImb&4uZMHL zAHOuz=YH%0=g(aZGJKC^p-wu^1Ih3zT<_Yzx8Zp21it|JbK$$-{MqFF*mnJXPrl4u zy%G{SiM#6;zfX7pybq4kJK+2|*5}~qIKG})j`6}@hrft<*a&Bxr>a67_W36~A^M!i zpZEHH5b~$t{8Iq`2-nj|@V=P068PoFm%`7&{G@#twwr?Et}}dB^wSr9EzYZB;hg7E z_>-vfKKxPixdwhWuKTs{37G#+KMMU{iR;nzD}pyfe&xq8_vkT-^^|iQPpOvycw;B1gzZ}nasGK2ejtvE7vU|i4r}48v(50qpNBpV#_{_s zd=-wn`SA7drSR40=QB9#C)b4So{ROL4sVR(B@;dp_sI+3{Cxr|;2)!Y9h~QrL)L|U z=$FBN!|`%6d@AN`Hk`kYq6*I6NAV||zmMYJFG4^3{SV#XFJXO7hL>T#EP~I)_2N^* z>)|u;K4{ICp&zcR9}M5+tB~jY_BHUaxb9Da^S-6%>rjXH=W7g4S|9SP(;Ch?H-8h$ zyYt)p=zQg0w~4#^IzA_V9{Ee7_26G+M*d^uTSepbudj^!zO|vB+4x@8!Q#4~laX&2 ztwaCnX5@z>pC4Uc{OcYg-*iKm&kk5uE#dW8|Chj-zY5O$X!u|pU(?{daUNJ<_&PYZ z+u+;KKkKBxx!q2N_kgp05&STmw_g@_>nbriPW@{u@?2MkeHZroNzr-Uzf#5Ze(#9< z8Q70qjC?QTOYyyezD9m9@^jG7twz2G`KdTA9yIbZkk5_YFZkCiBVUO;e{cLUBmWih zoS&bO=kwt`H-`D={2UbAI|5`5Tevc<(Us4{WP zG9P)a&syX;pWh?T`PuFJ`16@4uIKY$T&&V}a@h&s+ z8;THRz z8}nxvo^AL5IQt(Ae-Zcj&%@dOhj8|@8GbabM`!KgR$#1u))@|GoqOP{^FEw)5_S#s zS!W+O>s$zDeuUxg8ot@^eRhlA&k=?XgL7QvaQ3;y@RkkYZ?~P{XBmDQoc%loXFu;5 z{xkfE=nzSfYx%Fr4;OE_d;I=88-9u5d4}I@_$zRZ_mDk8KlC1kUu*c?hOadI9}VMg zw~yf+_l%z(YIw)J;^zk&{tSF8&bJ@KFURxnCXM3PKi%-&hS$P*zS<05jpvO`_Kv^Z z48yNBe4OF44POE0aj_B3^|Mdo&?oap!8zV;hF=e7ozZY^w-nC&YB=+Mz?pBpPw1cd zj&SB5hfl$Cm>=P+)2d1Q`W+14VtDhU_;sei@51}F*Wq*U{Pt`3aICkSrlCITd~f)W zeM6r0f7(Ad=i#UW;(M0i0}P*Tct^xuLk<7L@X^VkP8OasFNXKPec(Fy zA$Xpd*gVvs9}Z`oi{RzhkHg@c|CNTfJ}_*T`CAQt2EG?QcbgCA@v;KW`ai*$PiztT zp&x2^C&POgem$K16v4UOQaJPP!kPaZ&hy@naMo$sGX8jvgEQX~&g~8|{BFZ%7{0{t zKjG}B-9hpDKhyBOh7U2k(C{bV?B{Jb=jU@c^9>G;-+xOu^QXaCKilv;IO{wJXPudF z=0AipztQkL4v9am6vI0h-ox;LaQ1m0oP9nGXMPc!`L%{`fwNAtl=$O48qVXf6P$JW z!r9LhIP=Tl%zp!Ce)m@K`)pzO@rIvmcz?r37(T`DmkeKK_}6fbcdtX^kM~eG^Jl<0 zpO?V79|yo$XDpm`o`Ey}9-R5F4FA*cmWRb3?}>(A2WLM|!r9L}!{0ajOT&MKbGrv0 z9>4#S;LP`dv(F)L<{yMJ|Dxea?GNYku2bNT;QdYy zcm*ay_sOrrS^p!rd(PvZ=X|Q%KmS<=e-!t_4O7Fo&cl8F>4slo_|5PF)EN)w zd@h9lhWDrM!a3f9j*8!B2g5Hj{CYU&?Iz`Z-iEldv0vUpzBpPB{_}zl;fF=*(EE>YZg;El zlI>efNZ7q?7%#WmQQY;vV%NKNZeC=fF#F zo^N@4*zO{Hf9x1|Uwp5%hvDzQd7ixJgiwC~w%Z@x70-DJ;osr;+oN!vf9Aly#QOPB z+#T0N(YXA1<2U6M(Z6@E-P^_b^!cpV$9V}&#ofPMhxus^ABgj6XH~~<_blZVZllrb zBISO&SD-$(I{?n@zNqT>?Y^qKV*6GT5|$|U+x-Cbx!qN8Zg(A==cTjThyC6J-v_uF zeg@7zH;McC_x+Dh?)$%2x$nQ@iSf7F3(oCcC9b!7gL1#!+m!q5u7J;q)~)YhfM3*H3htKM+dnF>$E^(&)e zsQ)d_hq;E|1|J^nH2?EoBbA>cJMtcJw|`yUzaB!qeRLl4`45%*`s-20<^8M9@N+ta zadEt(4WDlKTZW&0YW(`c4exha{QL;GIk9u7Pwx+B zoyXuA*zYspth34Rqcg&GS$~+}D-A#C^!RlihQE$^_z=$R{s_Ms>%7rFL;bE;w`agP z-b)N02WLMs;N0$e@DyBk*21~npA1jw68dNUM8ikJIX~+S?{-G0&-`@w65Rh(!f(d7 zHo#M{uJ-C0>T~{&fpdNygR`GH!`pNV^_joc@KVFq8{VpW{Q8$0z7WpyPvgw^b$Y^? z9}VZYeup!E@LBQer^A^aYIuXQitm*VB~q(e8eU}hmvGMK@9?J4 zas8M4c?79F!giTI8P5FGaOQ`?UEW{6o`-W>dt4BH^Z+ne8ffZ>pyAu+lFs6 zeE(kY>vu8yM#CRA{B^^>HhiCpj{)XRY_cIU%+9Z9?_ z)L)GIrJjaQHhhuczZu@9Z~X1v4SyHs;YD!X|9oQjM#B>>58Gv({os4z{bpPE3fzBo zfV0kp@HIG}Ujt`8-|%sUKW_M3!{0T$aZZ>Au7_jb?DL<7m%+Jy>J2~Uim+YgdmBF9 z@P&r|Z1|D=;%~Q?;iCS+IQQ?3aNhqs0WZVzoP}`C&yiP$?Q$MEiM#V*vHOd>`WQaQsPij)9lk$& z#5G~NPvL#gYw%8Z-n&aK@;DEq7~a|NXW*RAO87Z=uC+;AUypu6p7VLofcSl$VfZzM z-)s0R!#{$v|6kzjv-!30`^+$W1Dx}=$G}i$K{QGJ{<96dBfd{Q49;~vQC!dSQ*f@s z7f^@enh)o3@h6=5qXvck>1P>!C!F(83jYrG;mhEx{{x)IX|wBM{kVBZir(-0S4(mC zZ&~Mb!-v3M#&NXK@FT7d^T6jY7sGje$cOX1S`6oNiFe?vzZT9qf57=1pe)$o3XPl9tjEHV6hIFE~_gX8yk2AuV8G5ksRQao4x9?m)`H-_!f zdm26vJ_zT@+r-_vJtf+1bZfW$^%U}~KUd}F$J$7!fPWKRzkHo}U;jj&>-9^88$T0i54YSPuUh_pvF%LqEG=p7Y=faGk1vzkvJm zq&q^L{qR2hR`?jaU)}~k9Ph8s8xiVsNBx%#-=!er`Td+z;QW5hTsXg%vIM?2#``Ut z`K@r~o81}uDaU=|@o?7Z3}>A_aOUqcd;*+xo`&LZGxgXb7<$hed-W}`H*YV?;CGP$$`&kcXKbuq?-_IY)eLoFH z@3>vx&%VliKevqu`NyNRd5HXOtUKWkN9RNTdaN*(cYl2u=gGb94SqYGyS9NBTo?}Bl)1rP-ABb)FXXV-AM~x5L{R8#yf%7_*HzDMo!1;U*{3o2ZtKq!g>s}P< z)Z%=y-0)5lL!R@~9sV({Bfa1!;q$(~4DUWE)MuRu;%*(LN9P&8ekLm~mK{7zd7_-J zoN~B&vq^9G{F0UZOF6FhWE$D<@@)2Hc{^T++W=NSM2jtfi5azC!A55})QU0m0HLAkI0igI87`N^UFBT7RKJiRAzn}J&;UB>H{&BB|Lw$apem9);XN$Xeb9MadL*!ZK!l|J?`@aJ|1@{}@ z8s7GiP>1!}W0P--eHcI?NA%bGvuJ zng7!8KMX%-TG%eXZ+SDE>vJ5O{Y-brH~uA7B&eZ1?L9lheg*a|8WcmMWv zTz4)i-7#M)`T62HztZqJ!?(?h)z@{-dLh2wZ}+!dnYWS&eo`24TbAB#|a~|$B{7J*-8~(B3KN;TSjrij|&G5m7k2m}o!{2~& zT|KiP^s^ZEhySRE@2?s@@y(ELg!`6thBsaqKi>m>KF$w?@NB$aehPjJ-XE=56zX%o z@47g?CmVi(;hBbyHhh-h8x3!^Bz~X04Zqv)3d6rN{Lr`JZ}(ioM;ZR2;hz~^Z+PO{ zp`WYp+#nUs{oBp(!G=#Td z@NWEkYr{Jmo^ALY@5QhG9GvIj`Ebs|8p9hejbFcy;bRS-u`JZ#_2Lsa`}xK2)b~Rj z=I0u|0$z>t(%#EMoilGsBjMcc!*JGL4rl%KaMu6J@bjxepUmHG_;Yafxe(4i zSHW5T8#w#l?SuIJoCfE1v*FzCWH{?5ei-VrP70iLy2DxLN;tjrE ze&Wjb{akAJRKph<-t?3B_0tW%#qh@rUt;(g!?%gM_owGZ_i6sQ=-ld9pU$(R^Pzt& zgm=K_CZEFJjJ}`aU*EuAiJrsw*H7@LqWebw`V&3^^%GZxe)^!F{ouz${rlI!@b^*Y zDEK(kX%BB59l!q78Gc6e{NKOMg7?I@a^Rbz=du1Z5I!6I4253~zY~64bl>7%@3zhX!lHc)1>$z_}g{gmXQl!MPqf!nq#0!MPrKz_}hSg>yYz z1Lu0U5zh569M1L7=Cjy5xWDqcb{d@5!E4~WE>AanzTta(9=6LmC&919=N)Ikc^`Wz zoOK4nw?)T=|D0t6oOPas^Y_mzF?_AzTMXZ)CXAQkY6WMX^WeNsXu2-cpel)J{vv?&q;28^Zn^!IKThX>FZFR+r1RtCc0?*`CKlpukSU; z^YhdF*2n6*{E+B-0{&9cLfrjZ<~t+L>qVB4zYBTRp9W{0GNaCy$g|EN--Q0p!u9bX zarbZed(7s*55xJSU2Ul2K5xpH9Q}vU>q^7#5_kXAlTrS8`Ch?$%4djo{x(+M{q=dA zfAZin@qBL>{AoPLcnf|$)@?2P7Std7UDz)34K@bfArF59btb|$;`=0(@K^Eu@E_s) zy>m^!58I_*2=9yMhu0W>GyERR+XHZp>vwUt&bfcv{1E!d!TID$cyGM#8whWT<9ZT& zSNLT=hWf12AI>_zz+2#Rx)bU`9e#iEc5ywfm4>fDomZp#TYuj84!#%WbJV7=UG_5< z&VKg(Ddf4%kAw64b{?GTzZabA|7tk*?+7^i-}C3tPahobshfk3#5(T;=kGnsh0n$J zvMS)LQw?XGt#Ia>Yzh4^-ww`vCY#wnXeEnMSw&L#J?uqm5$?(~jx6bf?;{NJtRo`Ft2P^me z4^!^@AEVs&KS{ao|21*l|J!i(zZ}l~Px@`g`SJaquH5&3j&k4s#masE{gnIu$BOIz zC&StQG&uWz2G0Ad3x1D{%l&mSuKR`Xb8+4OP~5GPW%xeT8u*&%dhK6d!Rw;+>|ej5 z{$gAg_V^?IJU3PD=eebFKhH-h_w#&$azD=}{26~9a^akZ+2VR0UW0QU7Q;CYYfzu_ zupW6H@0*nSdH6%QpNEEj?Kq!)9`;r4=iz6#yKgCwFBBfOE!3fR5qJOA-Iu;7=Z&$- z%fz=O#J(Wy^1NQB?Gl{V24TCrFTL3C{&3!xj)HSs--)|*%l&xZ?qR#UFYO8E{bV0F?E$?9@;R};eFuk;(A;w4PS#gSK~hXJ9rs(J)f^+>}4d?zH0cZbv?iKpk;l8v{aNc)yf}a;ns=trQh4X%|9L_pb zaMt+|&V0kYLqE*7g)^T4XZ}_=`J5J$pSO-y_5HXeYL{_6 zqTG+`8RdRlvz7aCRVer4S}(50^%I=q`VG!;4Q;yPJo|Cosa?i3PPre~WaWNbPbl}} zDpT&qwNhM<>kBx?^(~y^`U%ea-Z}e*b^amt@0W1i@3r19%n$E-kAw4muQQzYdws>- zxOl%e0C^rSH))soAEDgO|Gmon{6DDN&wq(>KmSYik3T;@!#O`E9T0zhI>R|X=fgQa z*Nf}t;UaqZnA^uuvgz<WQ_1Mq?9{~b8%tc0`9@9;;WX8rwJtAoS* za9pY4eq4nzuJ*`tT;1T@ZeREUJpUOC=XUeO{rc%8+r1BYuAe92oQD_StiMFnzf|gP zK%V{YCqKaJ&Ocpoe4PU?!RHYd!nxi4@Xzr)a4ekbc{-eRW{Ug$k}dtuL!SHPE%*;O zu0MzKcsV>JR?v-?^Lad+^V17{A)eb5z}f#8ao>NL^nX9{?EgDBx4Ubr(B}f|mt){d zqnj4L&QF04!2YU|1J;d~^|!!V<2mP_;;#SQqxJ0Xi*`Rg){pnR=-<27cyV3-Y4`^? zpBJzY*gtLCb zlR}+ZoVQ2AnV%x==9!rPlSBVi z=)YNd@Vl|yR&b6h9ljpdh0$>4AB7)>>(oLx^Q++Fa6P)=l+Y*h#qfr>&i(*@8}qzN zhfrr(v~&D%x4+>>8a^F97Uz>aJBIp=aQwD{^E!Si{2BD$70!Gwcsm>yuXGCA9fjlZ zq|<`)ynP4!M$E&j@aDMR*aRPo?e5h%)aUuLskmGJ?tY^t7E5S>JkOu!!Mo!8a50?6 z#r3G)Eb7xA7ekd7$oe0j5&C5P$#B+xLEQDv`mZSW^=nQK^=q-;e>Z&he}?>>I35p! zvrc!zd%#&|5S(>}!kM24XMQT2`B&h~SHPM749JCaOSJv%&&$s|0A6FU*XI*?P|;?ocVTe);|@_d^ViT4ZFK-+#`opZW}^+vx2&N_qP%uj$b|B~Ua!&#>q&N^Sfng0{ce8bH6<2n@1{LygM?+$0a z2b}pqaOQ`?nV$$}ekz>#d2r?z!I}RI&io&S?;#JM+;PM@hr?N?H=OzV;SWZ;!r$L^ zIxFlK`lE)gFnm3n+uh~tP@jD^f-~RR@H617a~_;^2Edsg0%v|AocXD6<~PAPZ_Un$ zKi*bw);R^v?RJ4P-xtn&E}Z${aONL0e5T<`3}0*b7Q-8#8-IQVz&W3LoEP%+rwxA* z&UvVXv(CixN9`P1@V23;oIP>-@9l0Iu96r z+J*7+;|zZm&iPpgXFu0o6u(a zb$VYC-^&a?uy_3Y(Qx+P70y0$4gU$w{`32U?JmS~fRXSo@P5Av-VDzf+RFoKcl{cS z=QdZvx8ZYvN8y*?xl=j32c83b2j}zBEpR?B-3HGX zgMSW_eMP9x{N>_0->hHA|BUB^r@)8cc~l;p`Teg9b(rr7XMPx*KmSq=XTBQF`rpD2 z!t=nyt3p4l(+AGy()Ym6#BossXTHwxgZszdZkplQ@OC(^uZDBGiw*x3&UJPC)uA7* zs~&LHe+2HnpXvX6f$8wO@%hwDIP-@QJA*J9nShx2~h>IUcY_H$9keGjv0N~}(QxSP*0GH-)Wrv>K!7Wh_tjxY*!Sbr?s^`9sGPeL8m zp91H8c?|vwp103{Gd~Z`{rD!F`>_)4>Xb+S?_M9kxnEYoxgXcSx!-?>^E|U>ZfwHc z{^h(S!QFl-m;KUA++D9ZZ>`{8V17=9FT^_R4lhT35Zuj!KYj*H~x@+#^7 z9@OEwod|yw$K6wKZufarf4$V7gFNdmgU`ot_c8oNT))1C&yNP@-;XyQ5ZjQOf7Uqw z&N@fHS?3};`ne3wI@iL_LZ3IlS$`P(9vr`8;J4v=Hwj*k@veYhgYA9?zY+JDms}g> zhv%Ps_!i{ffiqtVXa1;x@#|;8nZF0l`lWE@Ux73KF`W5b2Zes#!n`$w^Ssm?-X8nC zjkr6G9&_iO>tl6KK>mKre>XV$>>zZuT_XgKpv!kL0HFZ44T_ivYryW`qj-y1(1{g3E10Qp+Hf4l|G?cQtnl7M3%kZBJKjP;2^)E8~ZusrEKYSU^{r;xm z@4~s?SHef(e&a9rD>xtSH#GD=4aa*vocnjC;cprKC7kbb|Ag~>?t!<2ez@ISIG>XY z5qHN|el%YHT&2{=zhvZ(&kx((3-fjf{I@9L?@Ncl_rdw69L_o`;O;%Nuk#x`ANP&> z+#3417{_l5_zcuJ9?m{9;p}q&oOK?7v(H!I?DJFj8|eQVIO`vNTNoGXcZPq4^UOK$ zu6WLq3updjIP>?w+0P94@wlEYHhhoUL;t7Z`hFao^-qH*;eFOs@Y&dp8{qfgINbz) z2lw+O!$Lnif0o19PZfMzbkO*9SPg#;zUT1x^^Z4vsNoX~FEM;Aye0Pg_wdemAN|ie zLZ6RfJ{Q8(IaU6?gZU*J7Qgz`1|B!#V#$4KIW9yfF{{ zIo8`daE|v|IFHjk3&Q;HI6WB7K3l^d$Ng|SIL{{+8Gap{_3whSP8po@P!4B5HE_&NaM0oON!8v(EGIlQEx*#oc;y&+96q&tTl^9pwAqct3Vz7#GKT zGo0(WP+Zrag#7(DzFvbLfb;MQ_-33ZKZkQ3wi(|2uF(GpIKK^mpNjjUeE1^tc^~{q z9M_ZK{J!ooIQ!pwROpBI8*SjcZ@B`_`<92{tWycU7JW9nJGNc7U!I7L>u6}(Ux$gi z^9=8Ejz#`~Xx@DOB;|Qh=N35Y-*41^40+a{uH4uEWOSIfxfs_0V}f)2cQt&dxSI#} zel1zv9~B~h3+gX~kAN?QKZegS#}|fv+T*xueoye8xQ?`icgOYmTsXfso(s>y@sfIP zsJ|fkpZ+@A1QkD0=!|?+n|C`EZNd0X_zU?DnzwC?m%VWg-e(~$J4tbtuw!xpp z{bW;jQIB439_Z=fzP?}oFT>sZTp;~#L>;b&-5v||AHj8e&uKgEuN2uY?ZjO_T!*va zeQ~_3f%n3=zJq^;^V>G~2ROdEmV`ceA9%Il55oC5<8(N$M;jgw^>4;?;n^pGzk%~Z z^CyF|pY!3Ye-C^L=HX5FQ8-?Hg+Gq`Kc5QQ<-GNUbKWMwxxc1}`}0yCStqlQ=Q^3M z@;6F;k@BJ9%Z)mpsr;>y|JKO=2Fki!S{c!)HzDrtV+dJLdiVYN6ckuOpTF{nbvn z-(Q`T`~7vca=*VWR_^!LmCF78x+@mQs-fDHxH~c z3(ot=LtYAX+~?8$_fn>cyE@JAer*z*<9ZEs-1~?UdA~DYPMC)?aU2bUUx&|e9)RD8 z^XFptF}NRI17|;9i2HdyPUh!laCBCn?p65eV{#?l)YveD0 z?}PC^1Lt*f1)SHf&2Z+Ao*U+$`A+a3abJBQ++BP9dbp&M(nA@zafqx z;q3EU)M1}nl>0t^Lml?H#hvV;m+SwfXs~`A?p_h!Pk{40aF)2=F9kCHy^!a5;J!EG z*MA?*_53@W>-nICp$_vW!rLy?x<4?;RxW=3yw#&#B7&dG8q1;dyTz^6vcX=ko{Uem;L!?&mXcS*(A* zU;KO?pxn>rq00Sy9;e*TXS#AfpIwyu`MgBjozFR+{otI>>rjXDnXlZ>=Wx{Fe0Hb` z`|))=|GX7G2tEp4jQgT@;rrtGRre1<{pQHO3TOW0598Z#Tg?Z?oW>w?%Ny+b3{t_e(hEA@P&Y5A!K-=1+ll!E@S+;GCaU)U*La6Cu6^!_oxoz-HiO<@WnVz=fiou-gi}~(;xR&8HVQ> z{vP}v=<{bdzwfcj>abmY-=h_r-}g8Hz6j$wAI|!h!CC)iIO~su^ZO*L;cIdJ`~%MI zHd+&ZT!+EA-L~*roUbOp-@x;Y7vRHiK719v4hQd#dp7r|m|1kU{%+GWpA7VekI)9A9k1f)q11; zHso1c#hemU3VJGPtYXL;5c@>c5CQ>%Xep*Ix!_{R7s8{=dZi zVM}q>|1r`1p6`DM@_ZjU3O)|UK{)SS|8;z?hCht+-d6Yk+^_Dx zK32z#>oOb{EydkBJT#hne?Dn%+^Etz}Mx8(4?)iD@ zW6=Pk*TLU}`K-lxwYRvQpFwce8E@3N>$_0DGp>&l;Y0Cx`VrrUJioU;6JCb(`Lej{ zbDyY=U!Q*(`366P{my)$xZCgUvoF8jyZspY;X2QTbDbB%x!>Q0bHD!qXa0z~uwCX) zgR`G3IQzLu+|7^MUm3FBhr+w#diN0Oa6PcSPoYoN-(TF%XAharG~_vN7aI9IBmd&hVY~dk#JBK9xS#L6 zIhJ?*xbHI*$#bX6#oc=5_X>s@`2ytm{f9F6kyKyB&$CrP7i~K{Fhl93;{rG!y z|K?wZio5;Dd?oyO{5;49aNcLupuRgv`txM1@*>%Aetnn+*1r?Z`bFYyysTfW+}BV0 zHPq+4ody2_=i!m?Cb%CM3uix*#9cp6GH#nbH42JW5<8H$z!Z)FxN8zkf4rl&z z_+MDhP5uo1x5WKJ3;6EXZYTIXIG=BUpMmvr!C#?%4(@*j!C8MX{LW}``Sall`1#ns z&9=p_-xkjL55QS}2AuVePlyhZ=;h82w_tv9;aqRy;fpbE2ksK;&`*T3{=IPa{}1w*@%5{?JARko{`@cGD{;K+wOiQk9aujp@SZr|9u04e^^gv~5$oYL zIInA!aQ44JT=)M2^6dXNIQvg(5XQy+Tf*6YDxCda3upha>f!r)(XGYym+RZT+`5_* zh5R~a{y@B+{m*(dwcB5=KHtAsb#^AdAUfXtd6;!}#{aYRt$eifw!hr`x%bzH%Re6? ze|P>Au17~IFO+{ylfS$9X^HdL$;fm5|L*#o(GT~R9`8w#V?TqV$@2S!<8|(zOYF>e zxgY=T`a3(`%sAui6irIJ@jB0wyfxl*%ySc*uQ=Ynqkaaq%l*saXj^o?_2Z&{X`Bb> z*73qRtiLn)-SIiNUWb>;csOsJjpNSw|JQ!uamVfc-Sw??$a!NwJ2P+YyfjGWhjpCa z7RNuqd6o5fUSgeRqKk-MCsy9S#c}6D*7y5SpZ8iyU;28%I^6DmwvNyH^R_<^r((PO zbGI)SclpMcpKFyDx`w0I&9T32|DL?dC&z9J6AF}PijP&EEB=u3@@Vb4*Aub7ZNFY~ zzdQ$jHLBsSVAKCw#M*dU7zl=5- zZ@Zgu-edhv(ewFudCtSm%p2!tXY!o4oyl`PcP7ty-kCh-e`oUCFFTXx{@R&5_v6mw zxqo*i&;7nL`Qqr}9dDf+hWGniSIqBBeb(8T{IKYI0`dBx?@S&3`IYRSZq?D(uVdu8 z!23-8`Feam<-9=7k7+nh@_vBtFRqXB{(j)^uAhN^tn;nA{~RLY<-GCtps`3liyE%1l)bDlp;IiXmK~6{5{xm zo3i~r$JMEjI(k0G$b24T)Hw!zcJ#i|uTNe7>;HoK{60U|zw7^Vsoz@q@$13&&ptU1 zozOq)XQB@4pAUEQTq*N>A?mRHP&j|?U}NUL)hUtjt~BcC{r<~;!G7nwbwod|&uvowpKx~`@caEtqtA=r z-0%5tZkPMZ)t8TN5(=?h_A>$Q<}F+1-@hN!$77kX-MOg4?Y^m8KF*L&3&QhZ`50mc z=kMFxne#LA{`|1B=Vx9Q`1`DU9eXe|P=P*pJqA zll^f1ndfbwN!pU1Qweq6Nk{CPh52y6Sxt%ol7 zJgY67eYS(Ih>i(ghvV8MI*E9{9C`XR@Pne837@|n&ip7i`@9Fvc{>!&`9B`carK42 zgK^yiXZ^`==3B!#|GW?6?=Sr)^4yPEaPBYG=eVv!p5yY*$MpUkV&rd!bN`NobN-9q zoS#PwUjgU-T?HQ>olE?B_zKSaUxx1!ovYo;jhCOhwH0p^xjUa1$oc$axD#^Wm=pR@nn^)t}V|7yJZM(0HLVn6(O zYL3_Wf5mwJj`|tfM-e-|{#WB25@)>pxj&BA`G3WD|Bm`QJKnt-#wJFu^X7&hW%$YB zTqpebh&D3+?mXb!f1Z1ixIUkp2HzCTvp=8wtJm*_ad92~tK4_}tMu6d^UV7VzYg7c z$30M7gNJUH{C;k<7g3+Fm%59fO80_S?;ee40z zeV0GKO+uda{rhpZZkb%YT(oQC&tJ99iT|L^_y-)BD#+wVVjJTm`(Yd^Ne`Hk0+ ze?KRQt*f1VPLe6_Gy43yxBGY3|Nq;#xUTqf z>s(i#MxSH)^~v?jJl8Yx)_V4NcU-v7i!U~w6J8zXIU#@U@<>^Su8#9;`RAQ^etuqb z&G+Nty81inXGmY}c;|7=?Yb|CMgO<`#c??-5>J!AyE@kA0&hi=>&KOW{Qt@Aa$ULo zdz0)(t{?vV9iPATjK2Tr`{z7xy&a8lalN&NbAJABZI{p4IRDaSf_q%z{(SJ6&0`Wh z64?Io{;0TL7vAp^PgeQi;wj3n6HirsnYdq9zW$_Uv0%E&pDXzc<)@1K&-;9xW5lym z{vdIGy!w1&@f?-^QwEx={Cn{{nSBWB;72JVQ>XDaupCQ!rT` zxhp@<PI7b~w5FHxRwQ>_0|6Lgl{yBEyRfFEPB-@G`^8 z4X-e~((o$7s|~L)yw>nK!|M(AUxfARwn*kbQEsfgr@at6F5I6D?Oxtf#FLdLiKi$} z5KmQJH#1f@P5G~KW0I~sZC)&&p*%x8Q+bwnmhv3&Y~^|4Im!#fbCnl~=P54{&sSb1 zUZA`}yij?Sc#-lN@nYq5;w8!xUX9ILsq!T8GUX{!r(AjZf>@mj<(cA@%Cp6*l;?_9 zE6*3NQC=ustGrmePI;+#z4CJLgy_Azd-?U8_D1ZV-S3=nFYnn4WB=^`ye98C;>jwX zC!V6bKs;4>k+}c)24BBKJYD6J#50svE{^q?X?T|Ms~5%c{`>fTyWVq*e6Hbn%FCsn zeC4I$1`{IQ||Nih9@+PZO5+@pHEbtEcKI=`+TzDDTb#So@RKu;TeW!D);l8 zr96LEH}dFtw(=tJ9Ob3rxymcV^ORSM=PR!hFHpW|TWo(68eU|0vEe1k6L*V^w^VtG zc$sqFPr2b0hF2P1Wq7sWHHOz3UZ*@=##OJ}k1HWDHs5~zXGuO$d9HYp@&fT><;CJD z%FD!4l~;Ht#cPzOh}SC5 zY7pD+b;=9G>y_t-Cq&=jcQ3#G^TZRCr->&i&)Yq=-DKtaNj^n+y5v)pCy1vhuar9J z%8SG^l-J3F?M&rW;#tbm#j_31F+A7sJj3%1FEG5&@FK&D4KFdg)bKLH%MGtEywdP0 z!>bLiF}&9BI^|`uf9sVOi6=xq^RmPG7f)24CGLM0^#43w_LTLn@F;yvFca!|M#MH#|YUfaTY}A6KH` zNropIo}&C?na@<^OT^QZ&k;{oUT|RSILc67BA%(dLOe@(jd-^5gch;-?suxYm!F>$ z@m%E@;(5w*#PgLGh!-d?5ie9;Azq}sM!Z;gLd#hHCCXF8OOi@Rh?rL?uM@9UUMgOr zJXgF{d8&Aw@@na)UU{W>!ah5$|8ns}<)z|D%8SL5l_$$D2uV?1*CsX(smfc6rx~7Z zc!uGbhG!X`ZFr91xrXN%o^N=8;f0158D4C7iQ%P&ml zdbs<&cK!?W$w}LHk6#f2e<&8(gyh8ad;+4t|60cJ3>sKrH z^=p*-`nAe0lKOSZyNcHt~^aVLwSmLw(^Un#QM)MJlF6%<-;e&>f|f$D)kEtFEqSJxvyWW z{6wi=VtA?HWy*d1a^g40`qj!0koq;s_ZF{J?(=oZeZF3~&nL()lJM)t z=M$CtK9dYjR{lzHY`>={_jOVYPcz*88T4G|zD|bWnTBT>o~`^M=|9KtT;-c5$Htpy zc)oJqe}UnJh8G!LY zJWqLIi5DwRm>C;aiSi`zQspV)Wy;gU%avz{S18XCuT<{m zxytZr`iw(<(`9OYHwxyozA^OV<#=POTmJvI*o z%9A8tt-R#zSiVMim3Xc48u2>ib>j8Pef@;Xc3cnM6P1@qoh0QI;>p_IkM*CTyjna} zd7XHg^2Ft_I_b(2tqi)Sj&63qKs-lzvhnMEd6Ia6 z@)YqxeSAO7cv3?4azw~R&3zeTEUZi|t zeJo$Be6jSO`hePB<96K+Y0A^?i+Q^86!8q@N#dEx6U4KW*T{CWm6wR;C@&JvRbC*T zr@TTuUwN5$f$}QxLgksy#O9$$`6=SX%G-#SC~qNNs(f$pGUb0xk8QVH`48e1%0Cyc zR9+=srTk6tYUQ)VYm`4JUaR~8@jB&qi`Oe3DxM%eSLar%dp>rJc%t%b@g(JEiYF`Y zAfBSUt$3>Pmf~s38;hqa|Lf`4e#ub&qj;wB8u2XUABblwUnriV{3Y>RygZZxv5h?thLwQ~7AgXDc5ko~wM4c)s!};)Tln z&$kyVe@619%4dm}E1xG`soedUzV216-2E9{?p3S&1Mzz0tHcu@js17-eUO{~FT@L! ze=A<3{4enmxO+eK?Mt!aw^aFR@iOJ_ikB-NEnZ=GrQubER~ufVe1UAYR=Mw|&hUD} z6CMlm?B>VUNi;mk@MObNl>7eW>ml2}cQHo3Gvhi*j#Z)x!Jsg4`HsDF*6%Gp zd*VFB{Uv(2{O|HJx$d7i-jN45iM`U~?=C+9^U3ixmt(?3Gu&UIm&-4c?>4x9&UAl? zUe4dbJY;Rxn4gF~IWEpK$3;&;9XiKF=eXz`*TI<24AehFzRT)}i{6TQ0m1`y~&)4fXTkS?GuJ`4{@=88x=61m7rB}s@5pQMhZ1z3sat&==T)WtSL4R>aPrf5K7~B=yuQUa^}Mbo&X&*KBOjV# z`9h@plsH)a!gOzcsHYhINM0e&&!zpw?Qxv1aeD*#X599md^J>_yh8oiwJ7{-+}=mO z8@HEmUXAdNl2@qbUF1(QVDbv?xG-*)NAl-ah<`CulDtAaFQUA0ct7W59FC*?#^G_a zzZxn}UZMUQDQ_II&#DULZ2udWZ|%nuvO-DuV)#eNYhxU2zwxpCy6xAi>$U%Q{kGro zS<^y$E+U?`|As9~koB62)PHj>{UP~c`;TWF+5T(D2iyND^0P|)ze+r9|C{OGI_1wJ zPa62g881!zV*0m*KbGUR@z+y-2mfQP`(6BZIc^WXhJ5SepQio+{!henh+m&ee@MQJ z@b@yGjPZ-{37&nnOrRHXj#K#ez;6wU-ieJHapW$aPF7kM`hd)pOzl8B##6L_v zTThj|wVneR@7A*;Tu17h*PYC_4g3t|r6&Ge)=TE$FEgLCDSr#|iFx&I`ms;>UFpXG z{vqbEA$}a~F|S;Qj4AIrWP-a6nc}WP%&TV+pJmF|IjGVKUh?zaFXFr!lz$@60UWpzl-y#;a?;Eb^Lq8zk#1kd)oM!9JhnN zfqw7e-aq#6Zy&TP@5bRU`nO5>b8z$IFS4K{W!scLlJn}| zCvsk0{3Pbv9{%st-^XvHJp=sfobM1{BK{-%2--QuH?tm?;NKwrQ~Y_%do%oY&UYCf zaoiRBG4$gce=Y4<#V;oh7xn3vIJo}5llD}p|Idl1>;DUhkL&-poB!1F4|o&*9PMo3H&eci zUrv5@@ORRlF20HL?cx7Szx45&$-@Djeb!$H=n(%;)*B=IeZ+H&{{rJ>g1?yan&RhE z{|vu`eqY9qC4W}%Be_n^@#hn_Rr~_tv%vSJ{x$rj+<)iW(w6OmOX07NA^tghAI3`_ z|5?trpfe8?@dL<{68=HzFXKCLz7_mh;#0-5Jvia)YWQ88R~^3>Z{W9*=S}>dSt{B+vc!}H`-AOBPH8Gjb}HpKU%e@FNd{W8Yu%nuX%=ZM1;&*3xtH5_*te;s+X zfOxrYBb z`BTTU|1&n^XA3`tIJEKG$g2*%8|~@h4f3alKZ$3UU&ME&o)Uf$aVz5`;#0vNk5}|5;o1Lf6g-bViSh;f3F-Htd=bBvIG6CFXipj6o$?j@2=gC*D|uVP>*PZn zKNWA_-zRQO{4mK&q@vDyOe)6{ocd>B>g^=@8j<$-v;=7 z)HB4-=X@u4_E~wM{waPI?VsU4AU@0Zapc1a?(>j2?(?Em+~-9L+~-AW_y?FDmeO+% zaXyZ5k;9)$9I|gi`Gc9q3LzNDEBNQArx-AK1;3j-EUoJnzlV9ajDLyoTfvVdZ>#u2 z^*rR29JfjRH<-`(9rSM-KQ@hdpbq{r@}!HOLp?qG8uGJ`znC}-@TU;ZA-c7^Bv-MGvAKz z5tzfOA!_?Yon#EZ-`CH!m5OJ)2tj$6S`C7xCMb+o63XV<=vrFA?j6aw9C%Dgxrnt|GX1LFbmT{jKt>8W{n&Un%TE%@{w7?6D$2I&J^zTwS z7lk~WF@NT8pBLrv{m6#`?(?D|?(?D&?(?ED?(?Dwz6ay0ioYT~$I$OJ+~-Ag+~-9N z+~-A2{14LaL;WrMMvj|}%@EJuWW0AMe-Lr&;-}FsJv^Jc!g2d}_Sv(+2l!VQFGKu& zv}c5$O#8?9C%9fr@PDWMQ~WNDJHz*A@@VSGr{9PE{So7(g#Q-tEaU&kePspz9LKHV1M;DU`@AUIqaNDh z^P&djeO}bWeO}bUv;Q+OgeTiW66(L0_ID`%#5A^{d^Y8T@?W8U3*j%5SMZaFo8>>j zJZ$-&Cq9Oo$`}ju~?*rU=hPdm55pMZ0?mA(DyH1$m)-#Lva>Q36K9Bfn#22{hgf-lC z!g^vRe;4x8bwVyc@(N#EC**P02?gABLJ@bJP{NH{IpURwS8>+~HN45ZUB_J~G;r4m zP26=t3wNE+#{Yo($_}3WUsNH!UEFm-4|ko=$6Y53@Pj$uA^xLWIO3Mq2>(9w*ckr- z_nQ;^8_aK0`~l|Y8GazwqhpdHkhZzbrq@3MFNWlz#@-of7`*Tz9g68czE@uFKZ{Hr64QKb-pl z%kLd&|ADyWpUe8q`hP7FpBHkyw)}ORm-WAw`yk7o5sByXBj8Vq94NXSnZ()nASrw-WJc#A^|+BOyz?+EWxo6?@MiT@1$ zEZ31`-1&0_cmAB?zMoEO#IkQg zbw{wyvHUO5&LZ{1_F-oK$7m>8ru305ecbtWfV*F4h`V2Cgu7p8ieJrqHN%e~Zp*m)g;sF) z3uPf$|7*sz^V^F#ZZVBtC~uyZ@JF*QE#seJ9&mp9>#Pw;*(&9KhIK*>H_z+1dEUUE z%W<3dA2YAEaPz#4o97+eJn!P>`2fF%d>-OoWIi0>=J^;m&nNgn#BGXS$@$LkTg@N* zc=BNdH_zv|dA^F9=L_6C&yk;P+L_0%q8|(R2|OPt;@_lvp5yKmxsE?FlIPoc-}DjU zR^Yf3#zhg2trMO@`7-4XW&K~l-^p>S`1W2W98dl@jyAD=Xw#n9I^i_>#s2zJ*4xJO zR_;@Z)c;2Mv4q=?##7%B;`#7g+UVqq@wA;kNjxoYJg;S37|&gZTambJ>*uRn9$Clk zXrHeVyKnvJ=c{a4Pwohxui|y#wOJA;x#@M`YOWVv7rY<$y5RkIiR*>;<7M3Y@e1z! zcop}4yoP(-tmEE~H*oLAo4EJmE!_L@Htzj+2lsxwi+evlz&9~34e`e_-bc9i<73?W z@fm(0*RN&#P1L`N&sj$;@arhQhC3fVRKGuR|AX}xBfp1o|AXb-|De17L9a&YcmIRs z>y&pNS_8LyGvY1WeQ0gmdOEoK(7L$gd${}1`ndbh2DtSMBR-1wIO3CtPa{6V-G{b} zyAN#zcOTjucOTj+?mn~y?mo0N+Agl69>y&f@qEM!xcktGxSwxO!rg~f#@&Zj z!QF>e#odQi!`+8g$K8k4z}<(|#NCJ1!rh0~#@&b3!QF?}#odS2!`+A0$K8iEz}<&7 z#NCHB!rg~9#@&ZD!QF>8#odQC!`+9rjJpqQ1$Q6X9CshuDxRHVSgI~?Ki^;tcOTkP zx@HLZ@8=uja6jK5kNf!s1>Da!DB^y;LAHbm$GwdECfDKnalcbc%7s@bAG=Tdzy7}d z*z@F{zOR2vzwgNJ>(7V8OkUy3-|$?bfbYS2tcY**{1Ep!c^UUPc?I`5c@_6Lc@5v{ z`60g5^F!R{vo@$uTb9mpgF$P^Fw^A=ZE-K&ktGWe4ISY zbEhhPS~j^SW1)e+n*49#59hgM3wJ%%j(8{H-H7)h-jDbo;=_oKB0i4zB;r%t`;-}O ze3m1=f_tAb$E{}-_daETTYe4qK4ppZhW9Bs+?^CL{_bD~p`;knz-+)ZQ;JJwvGF~+76!OOsKz$ z`@Y&9?)z%{xbLgYE@k0zdkWV(?^CW}A7e2bJb8ukmuCMs`Mwk|c?G|l>tK0ZxA<3C zxA^;)qxt<&mGU)?Tfja8s7{&mXt@G8HD?cbZw_8i&Wy z9^(-Ee^vHn-CL#p+o|6;+|P3c<8U`_94@9kZR)>;ICSuLlFwcI+qAQX{|4i$kK6A9 z+&Wj_pGQ1Plz$>##^1qlE4Xo} z;>Mwd8;3gnAjfUsU#9&{{FB5dJM}QnpOyWPd~Y0{kW2q@@}-!58_K_udD1xC&v-Eo zJ5!HwIE46Ased!=G!8rS`zGUX3gg8%{2F=Nrv8(-K6dZ{aqHr*pq?K7YTDVyUrhM{ zZodz4`+bDl?_>PDbS)QXg1?)2c#7{yJM;Ki#J_+aN&Abq>-kc|t^Whe57vJv@wfii zK9IN2zh#d5^z2}XRq+3qR`FZtml}Qw?WyBGWL|3E1+EuO{Ec`Ezk&X3iZoaMH`_s-j{!jGRDt;v6 zG>>1$yivf9ip-fR+djsEt@=g36&Z~ugmN>NW zzoUOU`1QoUi{C{12l$t=peHuOze77mco!ezN0PS_yiEO5{GrOXZxM$%_3ux6R`JV; zL)Nq~U4EAG1!|H<{je0vG)8B%^<>M`HGL;S~-&*SD>p7=~D|4`-I+qgc?ssE{r zck}HG&MQy(k5Jxxdj#c+ls}X5=Gzx?X`$pxnevY$e=7Ks>GvxBoAg%=|1-u#9lwG4 z8~C%hJ~r_Sm^WH@kM^|j2dTe<*NH+Q$!}o&o-3jyuGUq2EV%iF_X8 z`w_PZzKL-(#T)tbhvdr)--);_t5FtTPfD;M+QW&nBP8 z)N>N`Pw=Z)XHN0Ui1Q4Ojo(ewze4$YIo~;cIQg)OAIG>};GZEs9luYde#h@usK@d9 z+sx;V-~S-r9KUVG(e@a>`*K{z@72sRj^9J@EaYMQcJTsnd#J|mLBzR2{ju@8nf|R& z{&U2$j_+vWcR%{Y@mpa2?9=`Q>$CyBt>gDlu6JYVIe`41;7=#dr}(yx-%rv073z5e z?U~~*%cVagUmU+>$}cE?82Rb=eKzGCzc1x{9lyUw{y2W$i#vYzrk?FFeqTmDIDU`C z9lsYb|Ky2}&wC5_Lp6S_ze4@7@w-3mcl_SUb)il@JKFfYigmK%_f+PwKJ9;L))|Qn z@NFHx1Lln}^_)U}PViOYJjJ(l{BG~{^W#~!JAU6t`yIc_%ny#=Pjg*x{N7D}IeuS4 zJ=ci&D>}eI0%balRt;{06@= z^}+_fF7@IDzd7~N2EQ})9zM^KAZbG%|83^a5gyw4y|kY32470g(|y{Z{3BD(_S}Yl z9{jPX&oITp9Z?VBoPRqMbJJf%A>PzWZ%i90; z)ZItDhx0t;t6XQ@7ai(9H?7Bg(ZM&T?!M^YA5XnW{lT+%x-UBTXVdcTiw-_b-F?x) zZ%Vzpq5f~CKEt2IeNFZ|wWNxr`_kAZ-!83EKGdJRKV-4NA580C+u*yTb+yuKL8yOE o=KnT6W_>ciZ}9qpKZ^1r{6qAk|9{g_Twm(x7zypUo%#8{0Mi388UO$Q diff --git a/packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-x64/aver/osdep_dvb.o_shipped b/packages/linux-drivers/aver_h826d/kdep_2.6.30/OBJ-x64/aver/osdep_dvb.o_shipped deleted file mode 100644 index 38ab6ef00846ad74400d1d02fab561952678311e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10224 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 -@@ -435 +434 @@ -- init_MUTEX(tmp); -+ sema_init(tmp, 1); -@@ -439 +438 @@ -- init_MUTEX_LOCKED(tmp); -+ sema_init(tmp, 0); -@@ -1069,0 +1069 @@ -+static DEFINE_MUTEX(dvbdev_mutex); -@@ -1072 +1072 @@ -- lock_kernel(); -+ mutex_lock(&dvbdev_mutex); -@@ -1077 +1077 @@ -- unlock_kernel(); -+ mutex_unlock(&dvbdev_mutex); -diff -Nr -u0 original/installer/src/aver/osdep_dvb.c modified/installer/src/aver/osdep_dvb.c ---- original/installer/src/aver/osdep_dvb.c 2009-11-13 11:54:57.000000000 +0100 -+++ modified/installer/src/aver/osdep_dvb.c 2011-08-28 20:19:36.000000000 +0200 -@@ -79 +78,0 @@ --#include -@@ -233 +232 @@ -- init_MUTEX(&p->feedlock); -+ sema_init(&p->feedlock, 1); -diff -Nr -u0 original/installer/src/aver/osdep_th2.c modified/installer/src/aver/osdep_th2.c ---- original/installer/src/aver/osdep_th2.c 2009-11-13 11:54:57.000000000 +0100 -+++ modified/installer/src/aver/osdep_th2.c 2011-08-28 20:20:00.000000000 +0200 -@@ -78 +77,0 @@ --#include -@@ -80,0 +80 @@ -+#include "osdep.h" -@@ -90 +90 @@ -- lock_kernel(); -+ SysLockKernel(); -@@ -100 +100 @@ -- unlock_kernel(); -+ SysUnlockKernel(); -diff -Nr -u0 original/installer/src/aver/osdep_v4l2.c modified/installer/src/aver/osdep_v4l2.c ---- original/installer/src/aver/osdep_v4l2.c 2009-11-13 11:54:58.000000000 +0100 -+++ modified/installer/src/aver/osdep_v4l2.c 2011-08-28 20:20:19.000000000 +0200 -@@ -75,0 +76,2 @@ -+#define VFL_TYPE_VTX 3 -+ -@@ -84 +85,0 @@ --#include diff --git a/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-100-latest_kernel.patch.txt b/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-100-latest_kernel.patch.txt deleted file mode 100644 index 181f84035f..0000000000 --- a/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-100-latest_kernel.patch.txt +++ /dev/null @@ -1 +0,0 @@ -http://linuxtv.org/wiki/index.php/AVerMedia_AverTV_Hybrid_Volar_HX_(A827) \ No newline at end of file diff --git a/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-101-kernel-3.2.patch b/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-101-kernel-3.2.patch deleted file mode 100644 index 775974f4a5..0000000000 --- a/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-101-kernel-3.2.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Naur AVERMEDIA-Linux-x64-H826D-0.10-beta/installer/src/driver-core.c AVERMEDIA-Linux-x64-H826D-0.10-beta.patch/installer/src/driver-core.c ---- AVERMEDIA-Linux-x64-H826D-0.10-beta/installer/src/driver-core.c 2009-11-13 11:54:59.000000000 +0100 -+++ AVERMEDIA-Linux-x64-H826D-0.10-beta.patch/installer/src/driver-core.c 2011-12-21 02:32:24.008225956 +0100 -@@ -81,6 +81,7 @@ - #include "aver/id.h" - #include "driver-core.h" - #include -+#include - - - diff --git a/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-102-crosscompile.patch b/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-102-crosscompile.patch deleted file mode 100644 index b3ab88413b..0000000000 --- a/packages/linux-drivers/aver_h826d/patches-manual/aver_h826d-0.10-102-crosscompile.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/installer/src/Makefile b/installer/src/Makefile -index 7679c65..a83fb0b 100644 ---- a/installer/src/Makefile -+++ b/installer/src/Makefile -@@ -56,7 +56,7 @@ h826d-objs := $(COBJS) $(PREBUILD_OBJ) - averusbh826d-objs := aver/averusb-mod.o - default:: links - $(MAKE) -C $(KERNELSRC) O=$(KERNELOBJ) SUBDIRS=`pwd` $(TARGET) -- $(CROSS_COMPILE)strip --strip-debug *.ko -+ $(STRIP) --strip-debug *.ko - - - diff --git a/packages/linux-drivers/aver_h826d/unpack b/packages/linux-drivers/aver_h826d/unpack deleted file mode 100755 index 9148078f4b..0000000000 --- a/packages/linux-drivers/aver_h826d/unpack +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh - -################################################################################ -# This file is part of OpenELEC - http://www.openelec.tv -# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) -# -# 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, 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 OpenELEC.tv; see the file COPYING. If not, write to -# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. -# http://www.gnu.org/copyleft/gpl.html -################################################################################ - -. config/options $1 - -ZIP_PKG="`echo $PKG_URL | sed 's%.*/\(.*\)$%\1%'`" - -mkdir -p $BUILD/${PKG_NAME}-${PKG_VERSION} - -unzip $SOURCES/$1/$ZIP_PKG -d $BUILD/${PKG_NAME}-${PKG_VERSION} >/dev/null 2>&1 - -tail -n +115 $BUILD/${PKG_NAME}-${PKG_VERSION}/H826D_Installer_*/AVERMEDIA-Linux-*-H826D-0.10-beta.sh | bzip2 -d | tar xf - -C $BUILD/${PKG_NAME}-${PKG_VERSION} - -# this code is copied from scripts/unpack -PKG_BUILD=`ls -d $BUILD/${PKG_NAME}[-_.]${PKG_VERSION}` -for i in $PKG_DIR/patches-manual/$PKG_NAME-$PKG_VERSION*.patch ; do - if [ -f "$i" ]; then - PATCH=`basename $i` - PT=`echo $PATCH | sed 's/.*\.\(.*\)$/\1/'` - if [ "$PT" != "patch" -a "$PT" != "$TARGET_ARCH" ]; then - printf "%${INDENT}c SKIP PATCH: $i\n" >&$SILENT_OUT - continue; - else - printf "%${INDENT}c APPLY PATCH: $i\n" >&$SILENT_OUT - cat $i | patch -p1 -d `echo "$PKG_BUILD" | cut -f1 -d\ ` -p1 >&$VERBOSE_OUT - fi - fi -done - -# prebuild objects were hex edited for kernel 3.1 -[ "$TARGET_ARCH" = "x86_64" ] && KVSTR=x64 -[ "$TARGET_ARCH" = "i386" ] && KVSTR=4GREG -cp -rf $PKG_DIR/kdep_2.6.30/OBJ-$KVSTR/* $BUILD/${PKG_NAME}-${PKG_VERSION}/installer/src From 535f6451f8226d82e131586e0a4b75cc4ccedd68 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sun, 3 Feb 2013 15:44:45 +0100 Subject: [PATCH 65/86] alsa: add sample config to support Intel HD Audio Signed-off-by: Stephan Raue --- .../modprobe.d/disable-spdif-for-hd-audio.conf | 16 ++++++++++++++++ packages/audio/alsa/install | 3 +++ 2 files changed, 19 insertions(+) create mode 100644 packages/audio/alsa/config/modprobe.d/disable-spdif-for-hd-audio.conf diff --git a/packages/audio/alsa/config/modprobe.d/disable-spdif-for-hd-audio.conf b/packages/audio/alsa/config/modprobe.d/disable-spdif-for-hd-audio.conf new file mode 100644 index 0000000000..245345d416 --- /dev/null +++ b/packages/audio/alsa/config/modprobe.d/disable-spdif-for-hd-audio.conf @@ -0,0 +1,16 @@ +# INTEL HBR WORKAROUND FOR DTS-MA & Dolby TrueHD PLAYBACK + +# Uncomment the following lines to disable any S/PDIF out to deliver +# bitstreamed audio on Intel builds. This is a rough workaround for +# users that have both S/PDIF and HDMI audio outputs on their motherboard +# or motherboard+discrete graphics combo. + +# EVEN IF YOU ARE NOT USING THE S/PDIF OUTPUT +# but still have one, you will need to uncomment the lines below ! + +# after uncommenting these lines, you must reboot for these settings to take effect + +# blacklist snd_hda_codec_realtek +# blacklist snd_hda_codec_sigmatel +# blacklist snd_hda_codec_cirrus + diff --git a/packages/audio/alsa/install b/packages/audio/alsa/install index 99930fb0e2..861ad5839f 100755 --- a/packages/audio/alsa/install +++ b/packages/audio/alsa/install @@ -24,3 +24,6 @@ mkdir -p $INSTALL/etc/modprobe.d cp -P $PKG_DIR/config/alsa-base.conf $INSTALL/etc/modprobe.d + +mkdir -p $INSTALL/usr/config + cp -R $PKG_DIR/config/modprobe.d $INSTALL/usr/config From 6df5a568d0d3635d921b7dc2c48396aeac53df22 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 4 Feb 2013 00:28:34 +0100 Subject: [PATCH 66/86] xbmc: reenable build of goom, seems to work now Signed-off-by: Stephan Raue --- packages/mediacenter/xbmc/build | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/mediacenter/xbmc/build b/packages/mediacenter/xbmc/build index 14f200da22..8771e01746 100755 --- a/packages/mediacenter/xbmc/build +++ b/packages/mediacenter/xbmc/build @@ -22,9 +22,6 @@ . config/options $1 -# disable build of GOOM until its fixed - XBMC_VIS_GOOM="no" - if [ "$DISPLAYSERVER" = "xorg-server" ]; then XBMC_XORG="--enable-x11 --enable-xrandr" else From 3368ae19c09b411979b175495ae78206f58eb344 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 4 Feb 2013 00:28:57 +0100 Subject: [PATCH 67/86] xbmc: add upstream patch Signed-off-by: Stephan Raue --- ...990.03-Remove_some_annoying_log-spam.patch | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 packages/mediacenter/xbmc/patches/xbmc-990.03-Remove_some_annoying_log-spam.patch diff --git a/packages/mediacenter/xbmc/patches/xbmc-990.03-Remove_some_annoying_log-spam.patch b/packages/mediacenter/xbmc/patches/xbmc-990.03-Remove_some_annoying_log-spam.patch new file mode 100644 index 0000000000..29d276a2a5 --- /dev/null +++ b/packages/mediacenter/xbmc/patches/xbmc-990.03-Remove_some_annoying_log-spam.patch @@ -0,0 +1,26 @@ +From 5c61cc2c3ef7b047060742d736fd2a8cc037ae57 Mon Sep 17 00:00:00 2001 +From: Jim Carroll +Date: Sun, 3 Feb 2013 16:31:51 -0500 +Subject: [PATCH] Remove some annoying log-spam. + +--- + xbmc/interfaces/python/CallbackHandler.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xbmc/interfaces/python/CallbackHandler.cpp b/xbmc/interfaces/python/CallbackHandler.cpp +index 01707b9..61c0b5f 100644 +--- a/xbmc/interfaces/python/CallbackHandler.cpp ++++ b/xbmc/interfaces/python/CallbackHandler.cpp +@@ -35,8 +35,8 @@ + */ + PythonCallbackHandler::PythonCallbackHandler() : RetardedAsynchCallbackHandler("PythonCallbackHandler") + { ++ TRACE; + objectThreadState = PyThreadState_Get(); +- CLog::Log(LOGDEBUG,"NEWADDON PythonCallbackHandler construction with PyThreadState 0x%lx",(long)objectThreadState); + } + + /** +-- +1.7.10 + From ab047bd85ab2c1873918a38ff53332c820fd84b6 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 4 Feb 2013 00:29:26 +0100 Subject: [PATCH 68/86] linux: add patch to fix channel mappings Signed-off-by: Stephan Raue --- ...ault-multichannel-HDMI-mapping-regre.patch | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 packages/linux/patches/3.7.5/linux-990.02-hda-Fix-default-multichannel-HDMI-mapping-regre.patch diff --git a/packages/linux/patches/3.7.5/linux-990.02-hda-Fix-default-multichannel-HDMI-mapping-regre.patch b/packages/linux/patches/3.7.5/linux-990.02-hda-Fix-default-multichannel-HDMI-mapping-regre.patch new file mode 100644 index 0000000000..b62de2e517 --- /dev/null +++ b/packages/linux/patches/3.7.5/linux-990.02-hda-Fix-default-multichannel-HDMI-mapping-regre.patch @@ -0,0 +1,66 @@ +From b3ed803a1f4012a5067087674b8b1efad22d2bb0 Mon Sep 17 00:00:00 2001 +From: Anssi Hannula +Date: Sun, 3 Feb 2013 17:28:34 +0200 +Subject: [PATCH] ALSA: hda - Fix default multichannel HDMI mapping regression + +Commit d45e6889ee69456a4d5b1bbb32252f460cd48fa9 ("ALSA: hda - Provide +the proper channel mapping for generic HDMI driver") added support for +custom channel maps in the HDA HDMI driver. Due to a mistake in an +'if' condition the custom map is always used even when no such map has +been set. This causes incorrect channel mapping for multichannel audio +by default. + +Pass per_pin->chmap_set to hdmi_setup_channel_mapping() as a parameter +so that it can use it for detecting if a custom map has been set instead +of checking if map is NULL (which is never the case). + +Reported-by: Staffan Lindberg +Signed-off-by: Anssi Hannula +Cc: stable@vger.kernel.org +--- + +This also affects stable 3.7, but not earlier versions. + + sound/pci/hda/patch_hdmi.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c +index 807a2aa..e85959f 100644 +--- a/sound/pci/hda/patch_hdmi.c ++++ b/sound/pci/hda/patch_hdmi.c +@@ -714,9 +714,10 @@ static void hdmi_setup_fake_chmap(unsigned char *map, int ca) + + static void hdmi_setup_channel_mapping(struct hda_codec *codec, + hda_nid_t pin_nid, bool non_pcm, int ca, +- int channels, unsigned char *map) ++ int channels, unsigned char *map, ++ bool chmap_set) + { +- if (!non_pcm && map) { ++ if (!non_pcm && chmap_set) { + hdmi_manual_setup_channel_mapping(codec, pin_nid, + channels, map); + } else { +@@ -905,7 +906,8 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec, int pin_idx, + pin_nid, + channels); + hdmi_setup_channel_mapping(codec, pin_nid, non_pcm, ca, +- channels, per_pin->chmap); ++ channels, per_pin->chmap, ++ per_pin->chmap_set); + hdmi_stop_infoframe_trans(codec, pin_nid); + hdmi_fill_audio_infoframe(codec, pin_nid, + ai.bytes, sizeof(ai)); +@@ -915,7 +917,8 @@ static void hdmi_setup_audio_infoframe(struct hda_codec *codec, int pin_idx, + * accordingly */ + if (per_pin->non_pcm != non_pcm) + hdmi_setup_channel_mapping(codec, pin_nid, non_pcm, ca, +- channels, per_pin->chmap); ++ channels, per_pin->chmap, ++ per_pin->chmap_set); + } + + per_pin->non_pcm = non_pcm; +-- +1.7.10 + From adb8971ca1c166f047d46b8668c821a419cf1964 Mon Sep 17 00:00:00 2001 From: Christian Hewitt Date: Mon, 4 Feb 2013 08:28:10 +0400 Subject: [PATCH 69/86] atv: add xorg.conf comments to match other builds --- projects/ATV/filesystem/etc/X11/xorg-nvidia.conf | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/projects/ATV/filesystem/etc/X11/xorg-nvidia.conf b/projects/ATV/filesystem/etc/X11/xorg-nvidia.conf index a3e4bf67a1..dc8c0d4fc0 100644 --- a/projects/ATV/filesystem/etc/X11/xorg-nvidia.conf +++ b/projects/ATV/filesystem/etc/X11/xorg-nvidia.conf @@ -9,6 +9,13 @@ Section "Device" Option "ModeValidation" "NoVesaModes, NoXServerModes" Option "HWCursor" "false" Option "RegistryDwords" "RMDisableRenderToSysmem=1" + # To put Xorg in debug mode change "false" to "true" in the line below: + Option "ModeDebug" "false" + # To use a local /storage/.config/edid.bin file uncomment the 4 lines below +# Option "ConnectedMonitor" "DFP-0" +# Option "CustomEDID" "DFP-0:/storage/.config/edid.bin" +# Option "IgnoreEDID" "false" +# Option "UseEDID" "true" EndSection Section "Screen" From 91ebd27b9e3952143f264ff3dbc95a94bb239b62 Mon Sep 17 00:00:00 2001 From: Mettbrot Date: Mon, 4 Feb 2013 17:16:22 +0100 Subject: [PATCH 70/86] Update README.md When updating openELEC, copy md5 files too. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c3f7558a44..1ddbc66192 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ providing cutting edge hardware support to deliver a set-top box experience. read-only with the exception of /var (containing runtime configuration data). * Manual update/downgrade procedure is as follows: Extract the snapshot and navigate to the 'target' directory. - Copy KERNEL and SYSTEM to the 'Update' network share (or /storage/.update) on + Copy KERNEL and SYSTEM along with KERNEL.md5 and SYSTEM.md5 to the 'Update' network share (or /storage/.update) on your openelec machine. Your system will automatically upgrade during the next reboot. * Automatic mounting of filesystems is supported. Devices such as USB Flash From 37aff83993221258761169837febcff5d8df2451 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Mon, 4 Feb 2013 13:52:28 +0200 Subject: [PATCH 71/86] new package: add package 'intel-gpu-tools' --- packages/x11/other/intel-gpu-tools/build | 33 +++++++++++++++++ packages/x11/other/intel-gpu-tools/install | 26 +++++++++++++ packages/x11/other/intel-gpu-tools/meta | 37 +++++++++++++++++++ .../intel-gpu-tools-1.2-disable-cairo.patch | 25 +++++++++++++ 4 files changed, 121 insertions(+) create mode 100755 packages/x11/other/intel-gpu-tools/build create mode 100755 packages/x11/other/intel-gpu-tools/install create mode 100644 packages/x11/other/intel-gpu-tools/meta create mode 100644 packages/x11/other/intel-gpu-tools/patches/intel-gpu-tools-1.2-disable-cairo.patch diff --git a/packages/x11/other/intel-gpu-tools/build b/packages/x11/other/intel-gpu-tools/build new file mode 100755 index 0000000000..db6860a4ff --- /dev/null +++ b/packages/x11/other/intel-gpu-tools/build @@ -0,0 +1,33 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# 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, 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 OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +. config/options $1 + +cd $PKG_BUILD +mkdir -p m4 && do_autoreconf + +./configure --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --disable-nouveau \ + +make diff --git a/packages/x11/other/intel-gpu-tools/install b/packages/x11/other/intel-gpu-tools/install new file mode 100755 index 0000000000..cbf471cdad --- /dev/null +++ b/packages/x11/other/intel-gpu-tools/install @@ -0,0 +1,26 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# 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, 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 OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +. config/options $1 + +mkdir -p $INSTALL/usr/bin + cp -R $PKG_BUILD/tools/intel_reg_write $INSTALL/usr/bin diff --git a/packages/x11/other/intel-gpu-tools/meta b/packages/x11/other/intel-gpu-tools/meta new file mode 100644 index 0000000000..e4c11845a8 --- /dev/null +++ b/packages/x11/other/intel-gpu-tools/meta @@ -0,0 +1,37 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# 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, 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 OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +PKG_NAME="intel-gpu-tools" +PKG_VERSION="1.2" +PKG_REV="1" +PKG_ARCH="i386 x86_64" +PKG_LICENSE="OSS" +PKG_SITE="http://xorg.freedesktop.org" +#PKG_URL="http://xorg.freedesktop.org/archive/individual/app/$PKG_NAME-$PKG_VERSION.tar.gz" +PKG_URL="http://cgit.freedesktop.org/xorg/app/intel-gpu-tools/snapshot/$PKG_NAME-$PKG_VERSION.tar.gz" +PKG_DEPENDS="libdrm" +PKG_BUILD_DEPENDS="toolchain libdrm" +PKG_PRIORITY="optional" +PKG_SECTION="x11/other" +PKG_SHORTDESC="tools for debugging the Intel graphics driver" +PKG_LONGDESC="tools for debugging the Intel graphics driver" +PKG_IS_ADDON="no" + +PKG_AUTORECONF="no" diff --git a/packages/x11/other/intel-gpu-tools/patches/intel-gpu-tools-1.2-disable-cairo.patch b/packages/x11/other/intel-gpu-tools/patches/intel-gpu-tools-1.2-disable-cairo.patch new file mode 100644 index 0000000000..fe85571c64 --- /dev/null +++ b/packages/x11/other/intel-gpu-tools/patches/intel-gpu-tools-1.2-disable-cairo.patch @@ -0,0 +1,25 @@ +diff --git a/Makefile.am b/Makefile.am +index 6cd724c..9e77183 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -19,7 +19,7 @@ + # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-SUBDIRS = lib man tools scripts tests benchmarks demos ++SUBDIRS = lib man tools scripts benchmarks demos + + if BUILD_SHADER_DEBUGGER + SUBDIRS += debugger +diff --git a/configure.ac b/configure.ac +index 94d54a6..236904a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -57,7 +57,6 @@ PKG_CHECK_MODULES(DRM, [libdrm_intel >= 2.4.31 libdrm]) + PKG_CHECK_MODULES(PCIACCESS, [pciaccess >= 0.10]) + + # for testdisplay +-PKG_CHECK_MODULES(CAIRO, cairo) + PKG_CHECK_MODULES(LIBUDEV, [libudev], [udev=yes], [udev=no]) + if test x"$udev" = xyes; then + AC_DEFINE(HAVE_UDEV,1,[Enable udev-based monitor hotplug detection]) From 2fb1ca693a0def47f11ee9b229169a686774df8f Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Mon, 4 Feb 2013 14:14:11 +0200 Subject: [PATCH 72/86] linux: do not disable CONFIG_DEBUG_FS. required for intel-gpu-tools --- packages/linux/unpack | 7 ------- 1 file changed, 7 deletions(-) diff --git a/packages/linux/unpack b/packages/linux/unpack index 10beb98aaa..9621709a31 100755 --- a/packages/linux/unpack +++ b/packages/linux/unpack @@ -50,13 +50,6 @@ sed -i -e "s|^CONFIG_INITRAMFS_SOURCE=.*$|CONFIG_INITRAMFS_SOURCE=\"$ROOT/$BUILD sed -i -e "s|^CONFIG_SWAP=.*$|# CONFIG_SWAP is not set|" $LINUX/.config fi -# dont install some debug stuff on release builds - if [ ! "$DEVTOOLS" = yes ]; then - sed -i -e "s|^CONFIG_DEBUG_FS=.*$|# CONFIG_DEBUG_FS is not set|" $LINUX/.config -# sed -i -e "s|^CONFIG_NET_SCHED=.*$|# CONFIG_NET_SCHED is not set|" $LINUX/.config -# sed -i -e "s|^CONFIG_NET_SCH_NETEM=.*$|# CONFIG_NET_SCH_NETEM is not set|" $LINUX/.config - fi - # copy some extra firmware to linux tree cp -R $PKG_DIR/firmware/* $LINUX/firmware From a28b8d1fa65143bb25e1570230e737776c85059d Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Mon, 4 Feb 2013 14:15:34 +0200 Subject: [PATCH 73/86] xf86-video-intel: depend on 'intel-gpu-tools' --- packages/x11/driver/xf86-video-intel/meta | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/x11/driver/xf86-video-intel/meta b/packages/x11/driver/xf86-video-intel/meta index 5e9ae82427..4c99ab510e 100644 --- a/packages/x11/driver/xf86-video-intel/meta +++ b/packages/x11/driver/xf86-video-intel/meta @@ -25,7 +25,7 @@ PKG_ARCH="i386 x86_64" PKG_LICENSE="OSS" PKG_SITE="http://intellinuxgraphics.org/" PKG_URL="http://xorg.freedesktop.org/archive/individual/driver/$PKG_NAME-$PKG_VERSION.tar.bz2" -PKG_DEPENDS="systemd" +PKG_DEPENDS="systemd intel-gpu-tools" PKG_BUILD_DEPENDS="toolchain util-macros fontsproto systemd xorg-server" PKG_PRIORITY="optional" PKG_SECTION="x11/driver" From 3f9a6d33533cc222801a926f739caabe840cd879 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Mon, 4 Feb 2013 14:24:59 +0200 Subject: [PATCH 74/86] busybox: mount debugfs --- packages/sysutils/busybox/init.d/01_mount-filesystem | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/sysutils/busybox/init.d/01_mount-filesystem b/packages/sysutils/busybox/init.d/01_mount-filesystem index 290c5ee287..1ae9128f70 100644 --- a/packages/sysutils/busybox/init.d/01_mount-filesystem +++ b/packages/sysutils/busybox/init.d/01_mount-filesystem @@ -31,3 +31,4 @@ progress "mounting needed filesystems" mount -n -t tmpfs none /dev/shm mount -n -t ramfs none /var + mount -n -t debugfs none /sys/kernel/debug From ba214616b3cc2963354839c81a64c73737029c5b Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 4 Feb 2013 19:35:56 +0100 Subject: [PATCH 75/86] linux: update to linux-3.7.6 Signed-off-by: Stephan Raue --- packages/linux/meta | 2 +- .../linux-203-stb0899_enable_low_symbol_rate.patch | 0 ...linux-206.01-media-ene-ir-Fix-cleanup-on-probe-failure.patch | 0 ...2-media-rc-Make-probe-cleanup-goto-labels-more-verbose.patch | 0 .../linux-206.03-media-rc-Set-rdev-before-irq-setup.patch | 0 ...6.04-media-rc-Call-rc_register_device-before-irq-setup.patch | 0 packages/linux/patches/{3.7.5 => 3.7.6}/linux-210-dvbsky.patch | 0 .../{3.7.5 => 3.7.6}/linux-212-mantis_stb0899_faster_lock.patch | 0 .../patches/{3.7.5 => 3.7.6}/linux-213-cinergy_s2_usb_r2.patch | 0 .../linux-214-rtl28xxu_add_NOXON_USB_dongle_rev.2.patch | 0 .../linux-215-rtl28xxu_ASUS_My_Cinema-U3100Mini_Plus_V2.patch | 0 .../linux-216-rtl28xxu_add_Gigabyte_U7300_DVB-T_Dongle.patch | 0 .../patches/{3.7.5 => 3.7.6}/linux-221-ngene-octopus.patch | 0 .../{3.7.5 => 3.7.6}/linux-222-stb0899_signal_quality.patch | 0 .../patches/{3.7.5 => 3.7.6}/linux-700-jmicron_1_0_8_5.patch | 0 .../linux-950-saa716x_PCIe_interface_chipset.patch | 0 ....01-hda_Add_workaround_for_conflicting_IEC958_controls.patch | 0 ...990.02-hda-Fix-default-multichannel-HDMI-mapping-regre.patch | 0 18 files changed, 1 insertion(+), 1 deletion(-) rename packages/linux/patches/{3.7.5 => 3.7.6}/linux-203-stb0899_enable_low_symbol_rate.patch (100%) rename packages/linux/patches/{3.7.5 => 3.7.6}/linux-206.01-media-ene-ir-Fix-cleanup-on-probe-failure.patch (100%) rename packages/linux/patches/{3.7.5 => 3.7.6}/linux-206.02-media-rc-Make-probe-cleanup-goto-labels-more-verbose.patch (100%) rename packages/linux/patches/{3.7.5 => 3.7.6}/linux-206.03-media-rc-Set-rdev-before-irq-setup.patch (100%) rename packages/linux/patches/{3.7.5 => 3.7.6}/linux-206.04-media-rc-Call-rc_register_device-before-irq-setup.patch (100%) rename packages/linux/patches/{3.7.5 => 3.7.6}/linux-210-dvbsky.patch (100%) rename packages/linux/patches/{3.7.5 => 3.7.6}/linux-212-mantis_stb0899_faster_lock.patch (100%) rename packages/linux/patches/{3.7.5 => 3.7.6}/linux-213-cinergy_s2_usb_r2.patch (100%) rename packages/linux/patches/{3.7.5 => 3.7.6}/linux-214-rtl28xxu_add_NOXON_USB_dongle_rev.2.patch (100%) rename packages/linux/patches/{3.7.5 => 3.7.6}/linux-215-rtl28xxu_ASUS_My_Cinema-U3100Mini_Plus_V2.patch (100%) rename packages/linux/patches/{3.7.5 => 3.7.6}/linux-216-rtl28xxu_add_Gigabyte_U7300_DVB-T_Dongle.patch (100%) rename packages/linux/patches/{3.7.5 => 3.7.6}/linux-221-ngene-octopus.patch (100%) rename packages/linux/patches/{3.7.5 => 3.7.6}/linux-222-stb0899_signal_quality.patch (100%) rename packages/linux/patches/{3.7.5 => 3.7.6}/linux-700-jmicron_1_0_8_5.patch (100%) rename packages/linux/patches/{3.7.5 => 3.7.6}/linux-950-saa716x_PCIe_interface_chipset.patch (100%) rename packages/linux/patches/{3.7.5 => 3.7.6}/linux-990.01-hda_Add_workaround_for_conflicting_IEC958_controls.patch (100%) rename packages/linux/patches/{3.7.5 => 3.7.6}/linux-990.02-hda-Fix-default-multichannel-HDMI-mapping-regre.patch (100%) diff --git a/packages/linux/meta b/packages/linux/meta index dbe114288e..6d8f141bf1 100644 --- a/packages/linux/meta +++ b/packages/linux/meta @@ -19,7 +19,7 @@ ################################################################################ PKG_NAME="linux" -PKG_VERSION="3.7.5" +PKG_VERSION="3.7.6" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" diff --git a/packages/linux/patches/3.7.5/linux-203-stb0899_enable_low_symbol_rate.patch b/packages/linux/patches/3.7.6/linux-203-stb0899_enable_low_symbol_rate.patch similarity index 100% rename from packages/linux/patches/3.7.5/linux-203-stb0899_enable_low_symbol_rate.patch rename to packages/linux/patches/3.7.6/linux-203-stb0899_enable_low_symbol_rate.patch diff --git a/packages/linux/patches/3.7.5/linux-206.01-media-ene-ir-Fix-cleanup-on-probe-failure.patch b/packages/linux/patches/3.7.6/linux-206.01-media-ene-ir-Fix-cleanup-on-probe-failure.patch similarity index 100% rename from packages/linux/patches/3.7.5/linux-206.01-media-ene-ir-Fix-cleanup-on-probe-failure.patch rename to packages/linux/patches/3.7.6/linux-206.01-media-ene-ir-Fix-cleanup-on-probe-failure.patch diff --git a/packages/linux/patches/3.7.5/linux-206.02-media-rc-Make-probe-cleanup-goto-labels-more-verbose.patch b/packages/linux/patches/3.7.6/linux-206.02-media-rc-Make-probe-cleanup-goto-labels-more-verbose.patch similarity index 100% rename from packages/linux/patches/3.7.5/linux-206.02-media-rc-Make-probe-cleanup-goto-labels-more-verbose.patch rename to packages/linux/patches/3.7.6/linux-206.02-media-rc-Make-probe-cleanup-goto-labels-more-verbose.patch diff --git a/packages/linux/patches/3.7.5/linux-206.03-media-rc-Set-rdev-before-irq-setup.patch b/packages/linux/patches/3.7.6/linux-206.03-media-rc-Set-rdev-before-irq-setup.patch similarity index 100% rename from packages/linux/patches/3.7.5/linux-206.03-media-rc-Set-rdev-before-irq-setup.patch rename to packages/linux/patches/3.7.6/linux-206.03-media-rc-Set-rdev-before-irq-setup.patch diff --git a/packages/linux/patches/3.7.5/linux-206.04-media-rc-Call-rc_register_device-before-irq-setup.patch b/packages/linux/patches/3.7.6/linux-206.04-media-rc-Call-rc_register_device-before-irq-setup.patch similarity index 100% rename from packages/linux/patches/3.7.5/linux-206.04-media-rc-Call-rc_register_device-before-irq-setup.patch rename to packages/linux/patches/3.7.6/linux-206.04-media-rc-Call-rc_register_device-before-irq-setup.patch diff --git a/packages/linux/patches/3.7.5/linux-210-dvbsky.patch b/packages/linux/patches/3.7.6/linux-210-dvbsky.patch similarity index 100% rename from packages/linux/patches/3.7.5/linux-210-dvbsky.patch rename to packages/linux/patches/3.7.6/linux-210-dvbsky.patch diff --git a/packages/linux/patches/3.7.5/linux-212-mantis_stb0899_faster_lock.patch b/packages/linux/patches/3.7.6/linux-212-mantis_stb0899_faster_lock.patch similarity index 100% rename from packages/linux/patches/3.7.5/linux-212-mantis_stb0899_faster_lock.patch rename to packages/linux/patches/3.7.6/linux-212-mantis_stb0899_faster_lock.patch diff --git a/packages/linux/patches/3.7.5/linux-213-cinergy_s2_usb_r2.patch b/packages/linux/patches/3.7.6/linux-213-cinergy_s2_usb_r2.patch similarity index 100% rename from packages/linux/patches/3.7.5/linux-213-cinergy_s2_usb_r2.patch rename to packages/linux/patches/3.7.6/linux-213-cinergy_s2_usb_r2.patch diff --git a/packages/linux/patches/3.7.5/linux-214-rtl28xxu_add_NOXON_USB_dongle_rev.2.patch b/packages/linux/patches/3.7.6/linux-214-rtl28xxu_add_NOXON_USB_dongle_rev.2.patch similarity index 100% rename from packages/linux/patches/3.7.5/linux-214-rtl28xxu_add_NOXON_USB_dongle_rev.2.patch rename to packages/linux/patches/3.7.6/linux-214-rtl28xxu_add_NOXON_USB_dongle_rev.2.patch diff --git a/packages/linux/patches/3.7.5/linux-215-rtl28xxu_ASUS_My_Cinema-U3100Mini_Plus_V2.patch b/packages/linux/patches/3.7.6/linux-215-rtl28xxu_ASUS_My_Cinema-U3100Mini_Plus_V2.patch similarity index 100% rename from packages/linux/patches/3.7.5/linux-215-rtl28xxu_ASUS_My_Cinema-U3100Mini_Plus_V2.patch rename to packages/linux/patches/3.7.6/linux-215-rtl28xxu_ASUS_My_Cinema-U3100Mini_Plus_V2.patch diff --git a/packages/linux/patches/3.7.5/linux-216-rtl28xxu_add_Gigabyte_U7300_DVB-T_Dongle.patch b/packages/linux/patches/3.7.6/linux-216-rtl28xxu_add_Gigabyte_U7300_DVB-T_Dongle.patch similarity index 100% rename from packages/linux/patches/3.7.5/linux-216-rtl28xxu_add_Gigabyte_U7300_DVB-T_Dongle.patch rename to packages/linux/patches/3.7.6/linux-216-rtl28xxu_add_Gigabyte_U7300_DVB-T_Dongle.patch diff --git a/packages/linux/patches/3.7.5/linux-221-ngene-octopus.patch b/packages/linux/patches/3.7.6/linux-221-ngene-octopus.patch similarity index 100% rename from packages/linux/patches/3.7.5/linux-221-ngene-octopus.patch rename to packages/linux/patches/3.7.6/linux-221-ngene-octopus.patch diff --git a/packages/linux/patches/3.7.5/linux-222-stb0899_signal_quality.patch b/packages/linux/patches/3.7.6/linux-222-stb0899_signal_quality.patch similarity index 100% rename from packages/linux/patches/3.7.5/linux-222-stb0899_signal_quality.patch rename to packages/linux/patches/3.7.6/linux-222-stb0899_signal_quality.patch diff --git a/packages/linux/patches/3.7.5/linux-700-jmicron_1_0_8_5.patch b/packages/linux/patches/3.7.6/linux-700-jmicron_1_0_8_5.patch similarity index 100% rename from packages/linux/patches/3.7.5/linux-700-jmicron_1_0_8_5.patch rename to packages/linux/patches/3.7.6/linux-700-jmicron_1_0_8_5.patch diff --git a/packages/linux/patches/3.7.5/linux-950-saa716x_PCIe_interface_chipset.patch b/packages/linux/patches/3.7.6/linux-950-saa716x_PCIe_interface_chipset.patch similarity index 100% rename from packages/linux/patches/3.7.5/linux-950-saa716x_PCIe_interface_chipset.patch rename to packages/linux/patches/3.7.6/linux-950-saa716x_PCIe_interface_chipset.patch diff --git a/packages/linux/patches/3.7.5/linux-990.01-hda_Add_workaround_for_conflicting_IEC958_controls.patch b/packages/linux/patches/3.7.6/linux-990.01-hda_Add_workaround_for_conflicting_IEC958_controls.patch similarity index 100% rename from packages/linux/patches/3.7.5/linux-990.01-hda_Add_workaround_for_conflicting_IEC958_controls.patch rename to packages/linux/patches/3.7.6/linux-990.01-hda_Add_workaround_for_conflicting_IEC958_controls.patch diff --git a/packages/linux/patches/3.7.5/linux-990.02-hda-Fix-default-multichannel-HDMI-mapping-regre.patch b/packages/linux/patches/3.7.6/linux-990.02-hda-Fix-default-multichannel-HDMI-mapping-regre.patch similarity index 100% rename from packages/linux/patches/3.7.5/linux-990.02-hda-Fix-default-multichannel-HDMI-mapping-regre.patch rename to packages/linux/patches/3.7.6/linux-990.02-hda-Fix-default-multichannel-HDMI-mapping-regre.patch From 1a9508dceb924c4663366fb1b50d917bffa9744b Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Mon, 4 Feb 2013 21:57:09 +0100 Subject: [PATCH 76/86] projects/RPi/linux: enable debugfs Signed-off-by: Stephan Raue --- projects/RPi/linux/linux.arm.conf | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/projects/RPi/linux/linux.arm.conf b/projects/RPi/linux/linux.arm.conf index 2967f6f57e..0f0b78147a 100644 --- a/projects/RPi/linux/linux.arm.conf +++ b/projects/RPi/linux/linux.arm.conf @@ -163,6 +163,7 @@ CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y # # GCOV-based kernel profiling # +# CONFIG_GCOV_KERNEL is not set CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y @@ -675,6 +676,7 @@ CONFIG_CFG80211=y # CONFIG_CFG80211_REG_DEBUG is not set # CONFIG_CFG80211_CERTIFICATION_ONUS is not set CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set CONFIG_CFG80211_WEXT=y # CONFIG_LIB80211 is not set @@ -687,6 +689,7 @@ CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" # CONFIG_MAC80211_MESH is not set CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set # CONFIG_MAC80211_MESSAGE_TRACING is not set # CONFIG_MAC80211_DEBUG_MENU is not set # CONFIG_WIMAX is not set @@ -925,8 +928,10 @@ CONFIG_ATH9K_COMMON=m CONFIG_ATH9K_BTCOEX_SUPPORT=y CONFIG_ATH9K=m CONFIG_ATH9K_AHB=y +# CONFIG_ATH9K_DEBUGFS is not set CONFIG_ATH9K_RATE_CONTROL=y CONFIG_ATH9K_HTC=m +# CONFIG_ATH9K_HTC_DEBUGFS is not set CONFIG_CARL9170=m CONFIG_CARL9170_LEDS=y CONFIG_CARL9170_WPC=y @@ -2131,6 +2136,7 @@ CONFIG_EXT4_USE_FOR_EXT23=y # CONFIG_EXT4_FS_XATTR is not set # CONFIG_EXT4_DEBUG is not set CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set CONFIG_REISERFS_FS=y # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set @@ -2335,7 +2341,7 @@ CONFIG_MAGIC_SYSRQ=y # CONFIG_STRIP_ASM_SYMS is not set # CONFIG_READABLE_ASM is not set # CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_DEBUG_FS is not set +CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_DEBUG_KERNEL=y @@ -2381,6 +2387,7 @@ CONFIG_FRAME_POINTER=y # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_LKDTM is not set # CONFIG_NOTIFIER_ERROR_INJECTION is not set # CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set @@ -2392,6 +2399,7 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set +# CONFIG_DYNAMIC_DEBUG is not set # CONFIG_DMA_API_DEBUG is not set # CONFIG_ATOMIC64_SELFTEST is not set # CONFIG_SAMPLES is not set From 09109e9259eb051f34f771929b6a02635806404c Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Mon, 4 Feb 2013 23:43:48 +0200 Subject: [PATCH 77/86] intel-gpu-tools: add script to set colorspace. thanks to fritsch --- packages/x11/other/intel-gpu-tools/install | 1 + .../scripts/set-intel-color-space | 47 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100755 packages/x11/other/intel-gpu-tools/scripts/set-intel-color-space diff --git a/packages/x11/other/intel-gpu-tools/install b/packages/x11/other/intel-gpu-tools/install index cbf471cdad..21f521f3bd 100755 --- a/packages/x11/other/intel-gpu-tools/install +++ b/packages/x11/other/intel-gpu-tools/install @@ -24,3 +24,4 @@ mkdir -p $INSTALL/usr/bin cp -R $PKG_BUILD/tools/intel_reg_write $INSTALL/usr/bin + cp -P $PKG_DIR/scripts/set-intel-color-space $INSTALL/usr/bin diff --git a/packages/x11/other/intel-gpu-tools/scripts/set-intel-color-space b/packages/x11/other/intel-gpu-tools/scripts/set-intel-color-space new file mode 100755 index 0000000000..be054bd483 --- /dev/null +++ b/packages/x11/other/intel-gpu-tools/scripts/set-intel-color-space @@ -0,0 +1,47 @@ +#!/bin/sh + +################################################################################ +# Copyright (C) 2009-2010 OpenELEC.tv +# http://www.openelec.tv +# +# 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, 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 OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ +# Enable Limited or RGB full on intel Computers +# Usage: +# Set Limited mode: +# ./set-intel-color-space limited +# Set Full mode: +# ./set-intel-color-space full +################################################################################ + +if [ $# -gt 0 ] ; then + OUTPUT=`xrandr -display :0 -q | sed '/ connected/!d;s/ .*//;q'` + if [ "$1" = "limited" ] ; then + # limited modes + intel_reg_write 0x70008 0xC0000000 + intel_reg_write 0x70180 0xD8004400 + xrandr --output $OUTPUT --set "Broadcast RGB" "Limited 16:235" + elif [ "$1" == "full" ] ; then + # reset old mode + xrandr --output $OUTPUT --set "Broadcast RGB" "Limited 16:235" + intel_reg_write 0x70008 0xC4002000 + intel_reg_write 0x70180 0xDA004400 + # set new mode + xrandr --output $OUTPUT --set "Broadcast RGB" "Full" + fi +else + echo "Usage: $0 limited | full" +fi From af68bee9dc9aa1073106b55f47132ef185fb488f Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 5 Feb 2013 00:19:18 +0200 Subject: [PATCH 78/86] tvheadend: depend on 'curl', required for imagecache --- packages/addons/service/multimedia/tvheadend/meta | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/addons/service/multimedia/tvheadend/meta b/packages/addons/service/multimedia/tvheadend/meta index 5502c6f7af..75b6582070 100644 --- a/packages/addons/service/multimedia/tvheadend/meta +++ b/packages/addons/service/multimedia/tvheadend/meta @@ -26,8 +26,8 @@ PKG_LICENSE="GPL" PKG_SITE="http://www.lonelycoder.com/hts/tvheadend_overview.html" #PKG_URL="https://github.com/downloads/tvheadend/tvheadend/${PKG_NAME}-${PKG_VERSION}.tar.gz" PKG_URL="$DISTRO_SRC/${PKG_NAME}-${PKG_VERSION}.tar.gz" -PKG_DEPENDS="$ICONV avahi openssl" -PKG_BUILD_DEPENDS="toolchain $ICONV avahi openssl" +PKG_DEPENDS="$ICONV avahi openssl curl" +PKG_BUILD_DEPENDS="toolchain $ICONV avahi openssl curl" PKG_PRIORITY="optional" PKG_SECTION="service/multimedia" PKG_SHORTDESC="tvheadend (Version: $PKG_VERSION): a TV streaming server for Linux supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, IPTV, and Analog video (V4L) as input sources." From 43006644d623a98f1395e5a7cd8f768d845344eb Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 5 Feb 2013 00:20:34 +0200 Subject: [PATCH 79/86] tvheadend: disable libav --- packages/addons/service/multimedia/tvheadend/build | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/addons/service/multimedia/tvheadend/build b/packages/addons/service/multimedia/tvheadend/build index 7a69774b76..90c4c4481c 100755 --- a/packages/addons/service/multimedia/tvheadend/build +++ b/packages/addons/service/multimedia/tvheadend/build @@ -35,6 +35,7 @@ cd $PKG_BUILD --cpu=$TARGET_CPU \ --cc=$TARGET_CC \ --enable-timeshift \ + --disable-libav \ --enable-bundle make From 087741801e340213f9af7cff79da34c78438aaf2 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 5 Feb 2013 11:20:41 +0200 Subject: [PATCH 80/86] xf86-video-nvidia: fix build with kernel 3.6.7 --- .../patches.upstream/kernel-3.7.6-fix.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 packages/x11/driver/xf86-video-nvidia/patches.upstream/kernel-3.7.6-fix.patch diff --git a/packages/x11/driver/xf86-video-nvidia/patches.upstream/kernel-3.7.6-fix.patch b/packages/x11/driver/xf86-video-nvidia/patches.upstream/kernel-3.7.6-fix.patch new file mode 100644 index 0000000000..1b16475384 --- /dev/null +++ b/packages/x11/driver/xf86-video-nvidia/patches.upstream/kernel-3.7.6-fix.patch @@ -0,0 +1,11 @@ +--- a/kernel/conftest.sh 2013-02-04 15:10:20.669633666 -0500 ++++ b/kernel/conftest.sh 2013-02-04 15:10:34.283334673 -0500 +@@ -1701,7 +1701,7 @@ + SUBLEVEL=$(grep "^SUBLEVEL =" $MAKEFILE | cut -d " " -f 3) + + if [ -n "$PATCHLEVEL" -a $PATCHLEVEL -ge 6 \ +- -a -n "$SUBLEVEL" -a $SUBLEVEL -le 5 ]; then ++ -a -n "$SUBLEVEL" -a $SUBLEVEL -le 6 ]; then + SELECTED_MAKEFILE=Makefile.kbuild + RET=0 + fi From cb3c9bfba04bd86622e866781720652263a797e2 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 5 Feb 2013 11:21:27 +0200 Subject: [PATCH 81/86] xf86-video-nvidia-legacy: fix build with kernel 3.6.7 --- .../patches.upstream/kernel-3.7.6-fix.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 packages/x11/driver/xf86-video-nvidia-legacy/patches.upstream/kernel-3.7.6-fix.patch diff --git a/packages/x11/driver/xf86-video-nvidia-legacy/patches.upstream/kernel-3.7.6-fix.patch b/packages/x11/driver/xf86-video-nvidia-legacy/patches.upstream/kernel-3.7.6-fix.patch new file mode 100644 index 0000000000..1b16475384 --- /dev/null +++ b/packages/x11/driver/xf86-video-nvidia-legacy/patches.upstream/kernel-3.7.6-fix.patch @@ -0,0 +1,11 @@ +--- a/kernel/conftest.sh 2013-02-04 15:10:20.669633666 -0500 ++++ b/kernel/conftest.sh 2013-02-04 15:10:34.283334673 -0500 +@@ -1701,7 +1701,7 @@ + SUBLEVEL=$(grep "^SUBLEVEL =" $MAKEFILE | cut -d " " -f 3) + + if [ -n "$PATCHLEVEL" -a $PATCHLEVEL -ge 6 \ +- -a -n "$SUBLEVEL" -a $SUBLEVEL -le 5 ]; then ++ -a -n "$SUBLEVEL" -a $SUBLEVEL -le 6 ]; then + SELECTED_MAKEFILE=Makefile.kbuild + RET=0 + fi From 0e084e8fa63b6da8eb7296f9802f6d6f6bbfeb7b Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 5 Feb 2013 19:59:02 +0200 Subject: [PATCH 82/86] xf86-video-nvidia: update kernel-3.7-fix.patch. do not check patchlevel / sublevel --- .../patches.upstream/kernel-3.7-fix.patch | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 packages/x11/driver/xf86-video-nvidia/patches.upstream/kernel-3.7-fix.patch diff --git a/packages/x11/driver/xf86-video-nvidia/patches.upstream/kernel-3.7-fix.patch b/packages/x11/driver/xf86-video-nvidia/patches.upstream/kernel-3.7-fix.patch new file mode 100644 index 0000000000..16cbfd1fbf --- /dev/null +++ b/packages/x11/driver/xf86-video-nvidia/patches.upstream/kernel-3.7-fix.patch @@ -0,0 +1,16 @@ +diff --git a/kernel/conftest.sh b/kernel/conftest.sh +index 8eff4d7..2bf3318 100755 +--- a/kernel/conftest.sh ++++ b/kernel/conftest.sh +@@ -1716,11 +1716,8 @@ case "$6" in + PATCHLEVEL=$(grep "^PATCHLEVEL =" $MAKEFILE | cut -d " " -f 3) + SUBLEVEL=$(grep "^SUBLEVEL =" $MAKEFILE | cut -d " " -f 3) + +- if [ -n "$PATCHLEVEL" -a $PATCHLEVEL -ge 6 \ +- -a -n "$SUBLEVEL" -a $SUBLEVEL -le 5 ]; then + SELECTED_MAKEFILE=Makefile.kbuild + RET=0 +- fi + fi + fi + From 6c7a388ce11e326fccced457b99065527df616de Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Tue, 5 Feb 2013 20:00:00 +0200 Subject: [PATCH 83/86] xf86-video-nvidia-legacy: update kernel-3.7-fix.patch. do not check patchlevel / sublevel --- .../patches.upstream/kernel-3.7-fix.patch | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 packages/x11/driver/xf86-video-nvidia-legacy/patches.upstream/kernel-3.7-fix.patch diff --git a/packages/x11/driver/xf86-video-nvidia-legacy/patches.upstream/kernel-3.7-fix.patch b/packages/x11/driver/xf86-video-nvidia-legacy/patches.upstream/kernel-3.7-fix.patch new file mode 100644 index 0000000000..16cbfd1fbf --- /dev/null +++ b/packages/x11/driver/xf86-video-nvidia-legacy/patches.upstream/kernel-3.7-fix.patch @@ -0,0 +1,16 @@ +diff --git a/kernel/conftest.sh b/kernel/conftest.sh +index 8eff4d7..2bf3318 100755 +--- a/kernel/conftest.sh ++++ b/kernel/conftest.sh +@@ -1716,11 +1716,8 @@ case "$6" in + PATCHLEVEL=$(grep "^PATCHLEVEL =" $MAKEFILE | cut -d " " -f 3) + SUBLEVEL=$(grep "^SUBLEVEL =" $MAKEFILE | cut -d " " -f 3) + +- if [ -n "$PATCHLEVEL" -a $PATCHLEVEL -ge 6 \ +- -a -n "$SUBLEVEL" -a $SUBLEVEL -le 5 ]; then + SELECTED_MAKEFILE=Makefile.kbuild + RET=0 +- fi + fi + fi + From 35fdb1f672ef8fe5dc35c2851f455538ff5b97b1 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 6 Feb 2013 00:47:16 +0100 Subject: [PATCH 84/86] xf86-video-nvidia: remove old patch Signed-off-by: Stephan Raue --- .../patches.upstream/kernel-3.7.6-fix.patch | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 packages/x11/driver/xf86-video-nvidia-legacy/patches.upstream/kernel-3.7.6-fix.patch diff --git a/packages/x11/driver/xf86-video-nvidia-legacy/patches.upstream/kernel-3.7.6-fix.patch b/packages/x11/driver/xf86-video-nvidia-legacy/patches.upstream/kernel-3.7.6-fix.patch deleted file mode 100644 index 1b16475384..0000000000 --- a/packages/x11/driver/xf86-video-nvidia-legacy/patches.upstream/kernel-3.7.6-fix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/kernel/conftest.sh 2013-02-04 15:10:20.669633666 -0500 -+++ b/kernel/conftest.sh 2013-02-04 15:10:34.283334673 -0500 -@@ -1701,7 +1701,7 @@ - SUBLEVEL=$(grep "^SUBLEVEL =" $MAKEFILE | cut -d " " -f 3) - - if [ -n "$PATCHLEVEL" -a $PATCHLEVEL -ge 6 \ -- -a -n "$SUBLEVEL" -a $SUBLEVEL -le 5 ]; then -+ -a -n "$SUBLEVEL" -a $SUBLEVEL -le 6 ]; then - SELECTED_MAKEFILE=Makefile.kbuild - RET=0 - fi From c76d5574b767ae0b3aa523cbcd40172974bb0064 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 6 Feb 2013 00:47:26 +0100 Subject: [PATCH 85/86] xf86-video-nvidia: remove old patch Signed-off-by: Stephan Raue --- .../patches.upstream/kernel-3.7.6-fix.patch | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 packages/x11/driver/xf86-video-nvidia/patches.upstream/kernel-3.7.6-fix.patch diff --git a/packages/x11/driver/xf86-video-nvidia/patches.upstream/kernel-3.7.6-fix.patch b/packages/x11/driver/xf86-video-nvidia/patches.upstream/kernel-3.7.6-fix.patch deleted file mode 100644 index 1b16475384..0000000000 --- a/packages/x11/driver/xf86-video-nvidia/patches.upstream/kernel-3.7.6-fix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/kernel/conftest.sh 2013-02-04 15:10:20.669633666 -0500 -+++ b/kernel/conftest.sh 2013-02-04 15:10:34.283334673 -0500 -@@ -1701,7 +1701,7 @@ - SUBLEVEL=$(grep "^SUBLEVEL =" $MAKEFILE | cut -d " " -f 3) - - if [ -n "$PATCHLEVEL" -a $PATCHLEVEL -ge 6 \ -- -a -n "$SUBLEVEL" -a $SUBLEVEL -le 5 ]; then -+ -a -n "$SUBLEVEL" -a $SUBLEVEL -le 6 ]; then - SELECTED_MAKEFILE=Makefile.kbuild - RET=0 - fi From 13afe88c7e50c913ac6847418d56f3d8134d2423 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Wed, 6 Feb 2013 00:48:04 +0100 Subject: [PATCH 86/86] linux: add upstream patches, this fix #1841 Signed-off-by: Stephan Raue --- ...inux-990.03-media-ds3000_firmware-01.patch | 11 +++ ...inux-990.03-media-ds3000_firmware-02.patch | 87 +++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 packages/linux/patches/3.7.6/linux-990.03-media-ds3000_firmware-01.patch create mode 100644 packages/linux/patches/3.7.6/linux-990.03-media-ds3000_firmware-02.patch diff --git a/packages/linux/patches/3.7.6/linux-990.03-media-ds3000_firmware-01.patch b/packages/linux/patches/3.7.6/linux-990.03-media-ds3000_firmware-01.patch new file mode 100644 index 0000000000..a09ddf98e7 --- /dev/null +++ b/packages/linux/patches/3.7.6/linux-990.03-media-ds3000_firmware-01.patch @@ -0,0 +1,11 @@ +X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git;a=blobdiff_plain;f=drivers%2Fmedia%2Fdvb-frontends%2Fds3000.c;h=c84cd98a91504dcf2995a75a1e8d6e5013cf4f2d;hp=5b639087ce45623f7a2f1be7e1b6216c1bc686a8;hb=feadd7d3eca4da531b35b2af3623dd992f2d988d;hpb=6c17c24d384ce69893e191c94b500c97bd263c27 + +diff --git a/drivers/media/dvb-frontends/ds3000.c b/drivers/media/dvb-frontends/ds3000.c +index 5b63908..c84cd98 100644 +--- a/drivers/media/dvb-frontends/ds3000.c ++++ b/drivers/media/dvb-frontends/ds3000.c +@@ -1316,3 +1316,4 @@ MODULE_DESCRIPTION("DVB Frontend module for Montage Technology " + "DS3000/TS2020 hardware"); + MODULE_AUTHOR("Konstantin Dimitrov"); + MODULE_LICENSE("GPL"); ++MODULE_FIRMWARE(DS3000_DEFAULT_FIRMWARE); diff --git a/packages/linux/patches/3.7.6/linux-990.03-media-ds3000_firmware-02.patch b/packages/linux/patches/3.7.6/linux-990.03-media-ds3000_firmware-02.patch new file mode 100644 index 0000000000..23785d5832 --- /dev/null +++ b/packages/linux/patches/3.7.6/linux-990.03-media-ds3000_firmware-02.patch @@ -0,0 +1,87 @@ +From b41a536cf9806c3478b2fa68d59edafd0787e8aa Mon Sep 17 00:00:00 2001 +From: =?utf8?q?R=C3=A9mi=20Cardona?= +Date: Fri, 28 Sep 2012 08:59:27 -0300 +Subject: [PATCH] [media] ds3000: remove useless 'locking' +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf8 +Content-Transfer-Encoding: 8bit + +Since b9bf2eafaad9c1ef02fb3db38c74568be601a43a, the function +ds3000_firmware_ondemand() is called only once during init. This +locking scheme may have been useful when the firmware was loaded at +each tune. +Furthermore, it looks like this 'lock' was put in to prevent concurrent +access (and not recursion as the comments suggest). However, this open- +coded mechanism is anything but race-free and should have used a proper +mutex. + +Signed-off-by: Rémi Cardona +Reviewed-by: Antti Palosaari +Signed-off-by: Mauro Carvalho Chehab +--- + drivers/media/dvb-frontends/ds3000.c | 14 -------------- + 1 files changed, 0 insertions(+), 14 deletions(-) + +diff --git a/drivers/media/dvb-frontends/ds3000.c b/drivers/media/dvb-frontends/ds3000.c +index c84cd98..60a529e 100644 +--- a/drivers/media/dvb-frontends/ds3000.c ++++ b/drivers/media/dvb-frontends/ds3000.c +@@ -30,7 +30,6 @@ + #include "ds3000.h" + + static int debug; +-static int force_fw_upload; + + #define dprintk(args...) \ + do { \ +@@ -234,7 +233,6 @@ struct ds3000_state { + struct i2c_adapter *i2c; + const struct ds3000_config *config; + struct dvb_frontend frontend; +- u8 skip_fw_load; + /* previous uncorrected block counter for DVB-S2 */ + u16 prevUCBS2; + }; +@@ -397,9 +395,6 @@ static int ds3000_firmware_ondemand(struct dvb_frontend *fe) + if (ret < 0) + return ret; + +- if (state->skip_fw_load || !force_fw_upload) +- return 0; /* Firmware already uploaded, skipping */ +- + /* Load firmware */ + /* request the firmware, this will block until someone uploads it */ + printk(KERN_INFO "%s: Waiting for firmware upload (%s)...\n", __func__, +@@ -413,9 +408,6 @@ static int ds3000_firmware_ondemand(struct dvb_frontend *fe) + return ret; + } + +- /* Make sure we don't recurse back through here during loading */ +- state->skip_fw_load = 1; +- + ret = ds3000_load_firmware(fe, fw); + if (ret) + printk("%s: Writing firmware to device failed\n", __func__); +@@ -425,9 +417,6 @@ static int ds3000_firmware_ondemand(struct dvb_frontend *fe) + dprintk("%s: Firmware upload %s\n", __func__, + ret == 0 ? "complete" : "failed"); + +- /* Ensure firmware is always loaded if required */ +- state->skip_fw_load = 0; +- + return ret; + } + +@@ -1309,9 +1298,6 @@ static struct dvb_frontend_ops ds3000_ops = { + module_param(debug, int, 0644); + MODULE_PARM_DESC(debug, "Activates frontend debugging (default:0)"); + +-module_param(force_fw_upload, int, 0644); +-MODULE_PARM_DESC(force_fw_upload, "Force firmware upload (default:0)"); +- + MODULE_DESCRIPTION("DVB Frontend module for Montage Technology " + "DS3000/TS2020 hardware"); + MODULE_AUTHOR("Konstantin Dimitrov"); +-- +1.7.6.5 +