summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThorsten Leemhuis <fedora@leemhuis.info>2019-12-13 08:57:04 +0100
committerThorsten Leemhuis <fedora@leemhuis.info>2019-12-13 08:57:04 +0100
commitf833e29b73c69a5d521b2cf26a550ebc7660f909 (patch)
treedc834f0f89844195d5c8bf5b2db213dd4c0ac29d
parent15c74107487672e89f163fb42f40cc7193673bc5 (diff)
parentff218a4ef1fc7a59f77fa3f09f1b46f4629bc12d (diff)
downloadkernel-f833e29b73c69a5d521b2cf26a550ebc7660f909.tar.gz
kernel-f833e29b73c69a5d521b2cf26a550ebc7660f909.tar.xz
kernel-f833e29b73c69a5d521b2cf26a550ebc7660f909.zip
Merge remote-tracking branch 'origin/stabilization' into stabilization-user-thl-vanilla-fedora
-rw-r--r--0001-bdev-Factor-out-bdev-revalidation-into-a-common-help.patch68
-rw-r--r--0002-bdev-Refresh-bdev-size-for-disks-without-partitionin.patch61
-rw-r--r--alsa-5.5.patch12400
-rw-r--r--alsa-5.6.patch390
-rw-r--r--configs/fedora/generic/arm/CONFIG_USB_EHCI_HCD1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC2
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC~1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH2
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH~1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L11
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1~1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_LINK1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL2
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT1
-rw-r--r--configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT1
-rw-r--r--kernel-aarch64-debug-fedora.config2
-rw-r--r--kernel-aarch64-fedora.config2
-rw-r--r--kernel-armv7hl-debug-fedora.config2
-rw-r--r--kernel-armv7hl-fedora.config2
-rw-r--r--kernel-armv7hl-lpae-debug-fedora.config2
-rw-r--r--kernel-armv7hl-lpae-fedora.config2
-rw-r--r--kernel-i686-debug-fedora.config24
-rw-r--r--kernel-i686-fedora.config24
-rw-r--r--kernel-x86_64-debug-fedora.config24
-rw-r--r--kernel-x86_64-fedora.config24
-rw-r--r--kernel.spec16
41 files changed, 13055 insertions, 17 deletions
diff --git a/0001-bdev-Factor-out-bdev-revalidation-into-a-common-help.patch b/0001-bdev-Factor-out-bdev-revalidation-into-a-common-help.patch
new file mode 100644
index 000000000..1e979a1fa
--- /dev/null
+++ b/0001-bdev-Factor-out-bdev-revalidation-into-a-common-help.patch
@@ -0,0 +1,68 @@
+From aea39223667868c77936546004b84716a623a438 Mon Sep 17 00:00:00 2001
+From: Jan Kara <jack@suse.cz>
+Date: Mon, 21 Oct 2019 10:37:59 +0200
+Subject: [PATCH 1/2] bdev: Factor out bdev revalidation into a common helper
+
+Factor out code handling revalidation of bdev on disk change into a
+common helper.
+
+Signed-off-by: Jan Kara <jack@suse.cz>
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+---
+ fs/block_dev.c | 26 ++++++++++++++------------
+ 1 file changed, 14 insertions(+), 12 deletions(-)
+
+diff --git a/fs/block_dev.c b/fs/block_dev.c
+index 9c073dbdc1b0..88c6d35ec71d 100644
+--- a/fs/block_dev.c
++++ b/fs/block_dev.c
+@@ -1512,6 +1512,14 @@ EXPORT_SYMBOL(bd_set_size);
+
+ static void __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part);
+
++static void bdev_disk_changed(struct block_device *bdev, bool invalidate)
++{
++ if (invalidate)
++ invalidate_partitions(bdev->bd_disk, bdev);
++ else
++ rescan_partitions(bdev->bd_disk, bdev);
++}
++
+ /*
+ * bd_mutex locking:
+ *
+@@ -1594,12 +1602,9 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
+ * The latter is necessary to prevent ghost
+ * partitions on a removed medium.
+ */
+- if (bdev->bd_invalidated) {
+- if (!ret)
+- rescan_partitions(disk, bdev);
+- else if (ret == -ENOMEDIUM)
+- invalidate_partitions(disk, bdev);
+- }
++ if (bdev->bd_invalidated &&
++ (!ret || ret == -ENOMEDIUM))
++ bdev_disk_changed(bdev, ret == -ENOMEDIUM);
+
+ if (ret)
+ goto out_clear;
+@@ -1632,12 +1637,9 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
+ if (bdev->bd_disk->fops->open)
+ ret = bdev->bd_disk->fops->open(bdev, mode);
+ /* the same as first opener case, read comment there */
+- if (bdev->bd_invalidated) {
+- if (!ret)
+- rescan_partitions(bdev->bd_disk, bdev);
+- else if (ret == -ENOMEDIUM)
+- invalidate_partitions(bdev->bd_disk, bdev);
+- }
++ if (bdev->bd_invalidated &&
++ (!ret || ret == -ENOMEDIUM))
++ bdev_disk_changed(bdev, ret == -ENOMEDIUM);
+ if (ret)
+ goto out_unlock_bdev;
+ }
+--
+2.21.0
+
diff --git a/0002-bdev-Refresh-bdev-size-for-disks-without-partitionin.patch b/0002-bdev-Refresh-bdev-size-for-disks-without-partitionin.patch
new file mode 100644
index 000000000..c988fa6a8
--- /dev/null
+++ b/0002-bdev-Refresh-bdev-size-for-disks-without-partitionin.patch
@@ -0,0 +1,61 @@
+From 91ee136f5e2179a0994985ea043468bbbcd400d4 Mon Sep 17 00:00:00 2001
+From: Jan Kara <jack@suse.cz>
+Date: Mon, 21 Oct 2019 10:38:00 +0200
+Subject: [PATCH 2/2] bdev: Refresh bdev size for disks without partitioning
+
+Currently, block device size in not updated on second and further open
+for block devices where partition scan is disabled. This is particularly
+annoying for example for DVD drives as that means block device size does
+not get updated once the media is inserted into a drive if the device is
+already open when inserting the media. This is actually always the case
+for example when pktcdvd is in use.
+
+Fix the problem by revalidating block device size on every open even for
+devices with partition scan disabled.
+
+Signed-off-by: Jan Kara <jack@suse.cz>
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+---
+ fs/block_dev.c | 19 ++++++++++---------
+ 1 file changed, 10 insertions(+), 9 deletions(-)
+
+diff --git a/fs/block_dev.c b/fs/block_dev.c
+index 88c6d35ec71d..d612468ee66b 100644
+--- a/fs/block_dev.c
++++ b/fs/block_dev.c
+@@ -1403,11 +1403,7 @@ static void flush_disk(struct block_device *bdev, bool kill_dirty)
+ "resized disk %s\n",
+ bdev->bd_disk ? bdev->bd_disk->disk_name : "");
+ }
+-
+- if (!bdev->bd_disk)
+- return;
+- if (disk_part_scan_enabled(bdev->bd_disk))
+- bdev->bd_invalidated = 1;
++ bdev->bd_invalidated = 1;
+ }
+
+ /**
+@@ -1514,10 +1510,15 @@ static void __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part);
+
+ static void bdev_disk_changed(struct block_device *bdev, bool invalidate)
+ {
+- if (invalidate)
+- invalidate_partitions(bdev->bd_disk, bdev);
+- else
+- rescan_partitions(bdev->bd_disk, bdev);
++ if (disk_part_scan_enabled(bdev->bd_disk)) {
++ if (invalidate)
++ invalidate_partitions(bdev->bd_disk, bdev);
++ else
++ rescan_partitions(bdev->bd_disk, bdev);
++ } else {
++ check_disk_size_change(bdev->bd_disk, bdev, !invalidate);
++ bdev->bd_invalidated = 0;
++ }
+ }
+
+ /*
+--
+2.21.0
+
diff --git a/alsa-5.5.patch b/alsa-5.5.patch
new file mode 100644
index 000000000..7b2162a63
--- /dev/null
+++ b/alsa-5.5.patch
@@ -0,0 +1,12400 @@
+From 0ac6b457d6e7f945aa84c26effe306b83bcf7ddb Mon Sep 17 00:00:00 2001
+From: Colin Ian King <colin.king@canonical.com>
+Date: Sun, 25 Nov 2018 23:12:08 +0000
+Subject: [PATCH 001/130] ALSA: usb-audio: fix spelling mistake "Frequence" ->
+ "Frequency"
+
+There are spelling mistakes in equalizer name fields, fix them.
+
+Signed-off-by: Colin Ian King <colin.king@canonical.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 940f457392e684bf0005628f6a155040648c5894)
+Bugzilla: 1772498
+---
+ sound/usb/mixer_us16x08.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/sound/usb/mixer_us16x08.c b/sound/usb/mixer_us16x08.c
+index f0e8e1539450..aea3b4ad7ded 100644
+--- a/sound/usb/mixer_us16x08.c
++++ b/sound/usb/mixer_us16x08.c
+@@ -1109,7 +1109,7 @@ static const struct snd_us16x08_control_params eq_controls[] = {
+ .control_id = SND_US16X08_ID_EQLOWFREQ,
+ .type = USB_MIXER_U8,
+ .num_channels = 16,
+- .name = "EQ Low Frequence",
++ .name = "EQ Low Frequency",
+ },
+ { /* EQ mid low gain */
+ .kcontrol_new = &snd_us16x08_eq_gain_ctl,
+@@ -1123,7 +1123,7 @@ static const struct snd_us16x08_control_params eq_controls[] = {
+ .control_id = SND_US16X08_ID_EQLOWMIDFREQ,
+ .type = USB_MIXER_U8,
+ .num_channels = 16,
+- .name = "EQ MidLow Frequence",
++ .name = "EQ MidLow Frequency",
+ },
+ { /* EQ mid low Q */
+ .kcontrol_new = &snd_us16x08_eq_mid_width_ctl,
+@@ -1144,7 +1144,7 @@ static const struct snd_us16x08_control_params eq_controls[] = {
+ .control_id = SND_US16X08_ID_EQHIGHMIDFREQ,
+ .type = USB_MIXER_U8,
+ .num_channels = 16,
+- .name = "EQ MidHigh Frequence",
++ .name = "EQ MidHigh Frequency",
+ },
+ { /* EQ mid high Q */
+ .kcontrol_new = &snd_us16x08_eq_mid_width_ctl,
+@@ -1165,7 +1165,7 @@ static const struct snd_us16x08_control_params eq_controls[] = {
+ .control_id = SND_US16X08_ID_EQHIGHFREQ,
+ .type = USB_MIXER_U8,
+ .num_channels = 16,
+- .name = "EQ High Frequence",
++ .name = "EQ High Frequency",
+ },
+ };
+
+--
+2.20.1
+
+
+From accf87200cc0d1411c40e577f7104c55caac01dc Mon Sep 17 00:00:00 2001
+From: Saurav Girepunje <saurav.girepunje@gmail.com>
+Date: Tue, 29 Oct 2019 23:22:00 +0530
+Subject: [PATCH 002/130] ALSA: usb-audio: sound: usb: usb true/false for bool
+ return type
+
+Use true/false for bool type return in uac_clock_source_is_valid().
+
+Signed-off-by: Saurav Girepunje <saurav.girepunje@gmail.com>
+Link: https://lore.kernel.org/r/20191029175200.GA7320@saurav
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 1d4961d9eb1aaa498dfb44779b7e4b95d79112d0)
+Bugzilla: 1772498
+---
+ sound/usb/clock.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/sound/usb/clock.c b/sound/usb/clock.c
+index 6b8c14f9b5d4..018b1ecb5404 100644
+--- a/sound/usb/clock.c
++++ b/sound/usb/clock.c
+@@ -165,21 +165,21 @@ static bool uac_clock_source_is_valid(struct snd_usb_audio *chip,
+ snd_usb_find_clock_source_v3(chip->ctrl_intf, source_id);
+
+ if (!cs_desc)
+- return 0;
++ return false;
+ bmControls = le32_to_cpu(cs_desc->bmControls);
+ } else { /* UAC_VERSION_1/2 */
+ struct uac_clock_source_descriptor *cs_desc =
+ snd_usb_find_clock_source(chip->ctrl_intf, source_id);
+
+ if (!cs_desc)
+- return 0;
++ return false;
+ bmControls = cs_desc->bmControls;
+ }
+
+ /* If a clock source can't tell us whether it's valid, we assume it is */
+ if (!uac_v2v3_control_is_readable(bmControls,
+ UAC2_CS_CONTROL_CLOCK_VALID))
+- return 1;
++ return true;
+
+ err = snd_usb_ctl_msg(dev, usb_rcvctrlpipe(dev, 0), UAC2_CS_CUR,
+ USB_TYPE_CLASS | USB_RECIP_INTERFACE | USB_DIR_IN,
+@@ -191,10 +191,10 @@ static bool uac_clock_source_is_valid(struct snd_usb_audio *chip,
+ dev_warn(&dev->dev,
+ "%s(): cannot get clock validity for id %d\n",
+ __func__, source_id);
+- return 0;
++ return false;
+ }
+
+- return !!data;
++ return data ? true : false;
+ }
+
+ static int __uac_clock_find_source(struct snd_usb_audio *chip, int entity_id,
+--
+2.20.1
+
+
+From 50704a502a8b9b71ca96de1bd0da70394d9576b3 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Thu, 14 Nov 2019 17:56:13 +0100
+Subject: [PATCH 003/130] ALSA: usb-audio: Add skip_validation option
+
+The unit descriptor validation may lead to a probe error when the
+device provides a buggy descriptor or the validator detected
+incorrectly. For identifying such an error and band-aiding, give a
+new module option, skip_validation. With this option, the driver
+ignores the validation errors with the hexdump of the unit
+descriptor, so we can check it in a bit more details.
+
+Link: https://lore.kernel.org/r/20191114165613.7422-2-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit f35ef592477c5347b8f780a5f0d4970671e22c61)
+Bugzilla: 1772498
+---
+ sound/usb/card.c | 3 +++
+ sound/usb/usbaudio.h | 1 +
+ sound/usb/validate.c | 23 ++++++++++++++++++++---
+ 3 files changed, 24 insertions(+), 3 deletions(-)
+
+diff --git a/sound/usb/card.c b/sound/usb/card.c
+index db91dc76cc91..9f743ebae615 100644
+--- a/sound/usb/card.c
++++ b/sound/usb/card.c
+@@ -74,6 +74,7 @@ static bool autoclock = true;
+ static char *quirk_alias[SNDRV_CARDS];
+
+ bool snd_usb_use_vmalloc = true;
++bool snd_usb_skip_validation;
+
+ module_param_array(index, int, NULL, 0444);
+ MODULE_PARM_DESC(index, "Index value for the USB audio adapter.");
+@@ -96,6 +97,8 @@ module_param_array(quirk_alias, charp, NULL, 0444);
+ MODULE_PARM_DESC(quirk_alias, "Quirk aliases, e.g. 0123abcd:5678beef.");
+ module_param_named(use_vmalloc, snd_usb_use_vmalloc, bool, 0444);
+ MODULE_PARM_DESC(use_vmalloc, "Use vmalloc for PCM intermediate buffers (default: yes).");
++module_param_named(skip_validation, snd_usb_skip_validation, bool, 0444);
++MODULE_PARM_DESC(skip_validation, "Skip unit descriptor validation (default: no).");
+
+ /*
+ * we keep the snd_usb_audio_t instances by ourselves for merging
+diff --git a/sound/usb/usbaudio.h b/sound/usb/usbaudio.h
+index feb30f9c1716..ff3cbf653de8 100644
+--- a/sound/usb/usbaudio.h
++++ b/sound/usb/usbaudio.h
+@@ -120,5 +120,6 @@ int snd_usb_lock_shutdown(struct snd_usb_audio *chip);
+ void snd_usb_unlock_shutdown(struct snd_usb_audio *chip);
+
+ extern bool snd_usb_use_vmalloc;
++extern bool snd_usb_skip_validation;
+
+ #endif /* __USBAUDIO_H */
+diff --git a/sound/usb/validate.c b/sound/usb/validate.c
+index 389e8657434a..36ae78c3da3d 100644
+--- a/sound/usb/validate.c
++++ b/sound/usb/validate.c
+@@ -322,11 +322,28 @@ static bool validate_desc(unsigned char *hdr, int protocol,
+
+ bool snd_usb_validate_audio_desc(void *p, int protocol)
+ {
+- return validate_desc(p, protocol, audio_validators);
++ unsigned char *c = p;
++ bool valid;
++
++ valid = validate_desc(p, protocol, audio_validators);
++ if (!valid && snd_usb_skip_validation) {
++ print_hex_dump(KERN_ERR, "USB-audio: buggy audio desc: ",
++ DUMP_PREFIX_NONE, 16, 1, c, c[0], true);
++ valid = true;
++ }
++ return valid;
+ }
+
+ bool snd_usb_validate_midi_desc(void *p)
+ {
+- return validate_desc(p, UAC_VERSION_1, midi_validators);
++ unsigned char *c = p;
++ bool valid;
++
++ valid = validate_desc(p, UAC_VERSION_1, midi_validators);
++ if (!valid && snd_usb_skip_validation) {
++ print_hex_dump(KERN_ERR, "USB-audio: buggy midi desc: ",
++ DUMP_PREFIX_NONE, 16, 1, c, c[0], true);
++ valid = true;
++ }
++ return valid;
+ }
+-
+--
+2.20.1
+
+
+From fb285eb397d32ae1edbdc4e7ad82a0e2157b2454 Mon Sep 17 00:00:00 2001
+From: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Date: Fri, 18 Oct 2019 15:38:47 +0800
+Subject: [PATCH 004/130] PCI: Add a helper to check Power Resource
+ Requirements _PR3 existence
+
+A driver may want to know the existence of _PR3, to choose different
+runtime suspend behavior. A user will be add in next patch.
+
+This is mostly the same as nouveau_pr3_present().
+
+Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Acked-by: Bjorn Helgaas <bhelgaas@google.com>
+Link: https://lore.kernel.org/r/20191018073848.14590-1-kai.heng.feng@canonical.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 52525b7a3cf82adec5c6cf0ecbd23ff228badc94)
+Bugzilla: 1772498
+---
+ drivers/pci/pci.c | 18 ++++++++++++++++++
+ include/linux/pci.h | 2 ++
+ 2 files changed, 20 insertions(+)
+
+diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
+index a97e2571a527..fcfaadc774ee 100644
+--- a/drivers/pci/pci.c
++++ b/drivers/pci/pci.c
+@@ -5854,6 +5854,24 @@ int pci_set_vga_state(struct pci_dev *dev, bool decode,
+ return 0;
+ }
+
++#ifdef CONFIG_ACPI
++bool pci_pr3_present(struct pci_dev *pdev)
++{
++ struct acpi_device *adev;
++
++ if (acpi_disabled)
++ return false;
++
++ adev = ACPI_COMPANION(&pdev->dev);
++ if (!adev)
++ return false;
++
++ return adev->power.flags.power_resources &&
++ acpi_has_method(adev->handle, "_PR3");
++}
++EXPORT_SYMBOL_GPL(pci_pr3_present);
++#endif
++
+ /**
+ * pci_add_dma_alias - Add a DMA devfn alias for a device
+ * @dev: the PCI device for which alias is added
+diff --git a/include/linux/pci.h b/include/linux/pci.h
+index f9088c89a534..1d15c5d49cdd 100644
+--- a/include/linux/pci.h
++++ b/include/linux/pci.h
+@@ -2310,9 +2310,11 @@ struct irq_domain *pci_host_bridge_acpi_msi_domain(struct pci_bus *bus);
+
+ void
+ pci_msi_register_fwnode_provider(struct fwnode_handle *(*fn)(struct device *));
++bool pci_pr3_present(struct pci_dev *pdev);
+ #else
+ static inline struct irq_domain *
+ pci_host_bridge_acpi_msi_domain(struct pci_bus *bus) { return NULL; }
++static bool pci_pr3_present(struct pci_dev *pdev) { return false; }
+ #endif
+
+ #ifdef CONFIG_EEH
+--
+2.20.1
+
+
+From 7fbcfac9bf68e2ccccafb3736287e1b1e021c2f3 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Mon, 21 Oct 2019 16:25:20 +0200
+Subject: [PATCH 005/130] PCI: Fix missing inline for pci_pr3_present()
+
+The inline prefix was missing in the dummy function pci_pr3_present()
+definition. Fix it.
+
+Reported-by: kbuild test robot <lkp@intel.com>
+Fixes: 52525b7a3cf8 ("PCI: Add a helper to check Power Resource Requirements _PR3 existence")
+Link: https://lore.kernel.org/r/201910212111.qHm6OcWx%lkp@intel.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 46b4bff6572b0552b1ee062043621e4b252638d8)
+Bugzilla: 1772498
+---
+ include/linux/pci.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/linux/pci.h b/include/linux/pci.h
+index 1d15c5d49cdd..be529d311122 100644
+--- a/include/linux/pci.h
++++ b/include/linux/pci.h
+@@ -2314,7 +2314,7 @@ bool pci_pr3_present(struct pci_dev *pdev);
+ #else
+ static inline struct irq_domain *
+ pci_host_bridge_acpi_msi_domain(struct pci_bus *bus) { return NULL; }
+-static bool pci_pr3_present(struct pci_dev *pdev) { return false; }
++static inline bool pci_pr3_present(struct pci_dev *pdev) { return false; }
+ #endif
+
+ #ifdef CONFIG_EEH
+--
+2.20.1
+
+
+From 6e6ea1a80e8b33f3908fdfa4ce45c3fa684cda75 Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Tue, 22 Oct 2019 19:43:12 +0200
+Subject: [PATCH 006/130] ALSA: hda: add Intel DSP configuration / probe code
+
+For distributions, we need one place where we can decide
+which driver will be activated for the auto-configation of the
+Intel's HDA hardware with DSP. Actually, we cover three drivers:
+
+* Legacy HDA
+* Intel SST
+* Intel Sound Open Firmware (SOF)
+
+All those drivers registers similar PCI IDs, so the first
+driver probed from the PCI stack can win. But... it is not
+guaranteed that the correct driver wins.
+
+This commit changes Intel's NHLT ACPI module to a common
+DSP probe module for the Intel's hardware. All above sound
+drivers calls this code. The user can force another behaviour
+using the module parameter 'dsp_driver' located in
+the 'snd-intel-dspcfg' module.
+
+This change allows to add specific dmi checks for the specific
+systems. The examples are taken from the pull request:
+
+ https://github.com/thesofproject/linux/pull/927
+
+Tested on Lenovo Carbon X1 7th gen.
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Tested-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191022174313.29087-1-perex@perex.cz
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 82d9d54a6c0ee8b12211fa4e59fd940a2da4e063)
+Bugzilla: 1772498
+---
+ include/sound/intel-dsp-config.h | 34 +++++
+ sound/hda/Kconfig | 10 +-
+ sound/hda/Makefile | 5 +-
+ sound/hda/intel-dsp-config.c | 249 +++++++++++++++++++++++++++++++
+ sound/hda/intel-nhlt.c | 3 -
+ sound/pci/hda/Kconfig | 11 +-
+ sound/pci/hda/hda_intel.c | 49 ++----
+ sound/soc/intel/Kconfig | 2 +-
+ sound/soc/intel/skylake/skl.c | 19 +--
+ sound/soc/sof/intel/Kconfig | 2 +-
+ sound/soc/sof/sof-pci-dev.c | 6 +
+ 11 files changed, 322 insertions(+), 68 deletions(-)
+ create mode 100644 include/sound/intel-dsp-config.h
+ create mode 100644 sound/hda/intel-dsp-config.c
+
+diff --git a/include/sound/intel-dsp-config.h b/include/sound/intel-dsp-config.h
+new file mode 100644
+index 000000000000..c36622bee3f8
+--- /dev/null
++++ b/include/sound/intel-dsp-config.h
+@@ -0,0 +1,34 @@
++/* SPDX-License-Identifier: GPL-2.0-only */
++/*
++ * intel-dsp-config.h - Intel DSP config
++ *
++ * Copyright (c) 2019 Jaroslav Kysela <perex@perex.cz>
++ */
++
++#ifndef __INTEL_DSP_CONFIG_H__
++#define __INTEL_DSP_CONFIG_H__
++
++struct pci_dev;
++
++enum {
++ SND_INTEL_DSP_DRIVER_ANY = 0,
++ SND_INTEL_DSP_DRIVER_LEGACY,
++ SND_INTEL_DSP_DRIVER_SST,
++ SND_INTEL_DSP_DRIVER_SOF,
++ SND_INTEL_DSP_DRIVER_LAST = SND_INTEL_DSP_DRIVER_SOF
++};
++
++#if IS_ENABLED(CONFIG_SND_INTEL_DSP_CONFIG)
++
++int snd_intel_dsp_driver_probe(struct pci_dev *pci);
++
++#else
++
++static inline int snd_intel_dsp_driver_probe(struct pci_dev *pci)
++{
++ return SND_INTEL_DSP_DRIVER_ANY;
++}
++
++#endif
++
++#endif
+diff --git a/sound/hda/Kconfig b/sound/hda/Kconfig
+index 3d33fc1757ba..b0c88fe040ee 100644
+--- a/sound/hda/Kconfig
++++ b/sound/hda/Kconfig
+@@ -34,6 +34,12 @@ config SND_HDA_PREALLOC_SIZE
+ via a proc file (/proc/asound/card*/pcm*/sub*/prealloc), too.
+
+ config SND_INTEL_NHLT
+- tristate
++ bool
+ # this config should be selected only for Intel ACPI platforms.
+- # A fallback is provided so that the code compiles in all cases.
+\ No newline at end of file
++ # A fallback is provided so that the code compiles in all cases.
++
++config SND_INTEL_DSP_CONFIG
++ tristate
++ select SND_INTEL_NHLT if ACPI
++ # this config should be selected only for Intel DSP platforms.
++ # A fallback is provided so that the code compiles in all cases.
+diff --git a/sound/hda/Makefile b/sound/hda/Makefile
+index 8560f6ef1b19..601e617918b8 100644
+--- a/sound/hda/Makefile
++++ b/sound/hda/Makefile
+@@ -14,5 +14,6 @@ obj-$(CONFIG_SND_HDA_CORE) += snd-hda-core.o
+ #extended hda
+ obj-$(CONFIG_SND_HDA_EXT_CORE) += ext/
+
+-snd-intel-nhlt-objs := intel-nhlt.o
+-obj-$(CONFIG_SND_INTEL_NHLT) += snd-intel-nhlt.o
++snd-intel-dspcfg-objs := intel-dsp-config.o
++snd-intel-dspcfg-$(CONFIG_SND_INTEL_NHLT) += intel-nhlt.o
++obj-$(CONFIG_SND_INTEL_DSP_CONFIG) += snd-intel-dspcfg.o
+diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c
+new file mode 100644
+index 000000000000..d9f6d9e872b4
+--- /dev/null
++++ b/sound/hda/intel-dsp-config.c
+@@ -0,0 +1,249 @@
++// SPDX-License-Identifier: GPL-2.0
++// Copyright (c) 2019 Jaroslav Kysela <perex@perex.cz>
++
++#include <linux/bits.h>
++#include <linux/dmi.h>
++#include <linux/module.h>
++#include <linux/pci.h>
++#include <sound/core.h>
++#include <sound/intel-dsp-config.h>
++#include <sound/intel-nhlt.h>
++
++static int dsp_driver;
++
++module_param(dsp_driver, int, 0444);
++MODULE_PARM_DESC(dsp_driver, "Force the DSP driver for Intel DSP (0=auto, 1=legacy, 2=SST, 3=SOF)");
++
++#define FLAG_SST BIT(0)
++#define FLAG_SOF BIT(1)
++#define FLAG_SOF_ONLY_IF_DMIC BIT(16)
++
++struct config_entry {
++ u32 flags;
++ u16 device;
++ const struct dmi_system_id *dmi_table;
++};
++
++/*
++ * configuration table
++ * - the order of similar PCI ID entries is important!
++ * - the first successful match will win
++ */
++static const struct config_entry config_table[] = {
++/* Cometlake-LP */
++#if IS_ENABLED(CONFIG_SND_SOC_INTEL_CML_LP)
++ {
++ /* prefer SST */
++ .flags = FLAG_SST,
++ .device = 0x02c8,
++ },
++#elif IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_LP)
++ {
++ .flags = FLAG_SOF,
++ .device = 0x02c8,
++ },
++#endif
++/* Cometlake-H */
++#if IS_ENABLED(CONFIG_SND_SOC_INTEL_CML_H)
++ {
++ .flags = FLAG_SST,
++ .device = 0x06c8,
++ },
++#elif IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_H)
++ {
++ .flags = FLAG_SOF,
++ .device = 0x06c8,
++ },
++#endif
++/* Merrifield */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_MERRIFIELD)
++ {
++ .flags = FLAG_SOF,
++ .device = 0x119a,
++ },
++#endif
++/* Broxton-T */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE)
++ {
++ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
++ .device = 0x1a98,
++ },
++#endif
++/* Geminilake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_GEMINILAKE)
++ {
++ .flags = FLAG_SOF,
++ .device = 0x3198,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Google Chromebooks",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
++ }
++ },
++ {}
++ }
++ },
++#endif
++#if IS_ENABLED(CONFIG_SND_SOC_INTEL_GLK)
++ {
++ .flags = FLAG_SST,
++ .device = 0x3198,
++ },
++#endif
++/* Icelake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_ICELAKE)
++ {
++ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
++ .device = 0x34c8,
++ },
++#endif
++/* Elkhart Lake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_ELKHARTLAKE)
++ {
++ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
++ .device = 0x4b55,
++ },
++#endif
++/* Appololake (Broxton-P) */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE)
++ {
++ .flags = FLAG_SOF,
++ .device = 0x5a98,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Up Squared",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "AAEON"),
++ DMI_MATCH(DMI_BOARD_NAME, "UP-APL01"),
++ }
++ },
++ {}
++ }
++ },
++#endif
++#if IS_ENABLED(CONFIG_SND_SOC_INTEL_APL)
++ {
++ .flags = FLAG_SST,
++ .device = 0x5a98,
++ },
++#endif
++/* Cannonlake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_CANNONLAKE)
++ {
++ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
++ .device = 0x9dc8,
++ },
++#endif
++/* Sunrise Point-LP */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_SKYLAKE)
++ {
++ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
++ .device = 0x9d70,
++ },
++#endif
++/* Kabylake-LP */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_KABYLAKE)
++ {
++ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
++ .device = 0x9d71,
++ },
++#endif
++/* Tigerlake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_TIGERLAKE)
++ {
++ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
++ .device = 0xa0c8,
++ },
++#endif
++/* Coffelake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_COFFEELAKE)
++ {
++ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
++ .device = 0xa348,
++ },
++#endif
++};
++
++static const struct config_entry *snd_intel_dsp_find_config
++ (struct pci_dev *pci, const struct config_entry *table, u32 len)
++{
++ u16 device;
++
++ device = pci->device;
++ for (; len > 0; len--, table++) {
++ if (table->device != device)
++ continue;
++ if (table->dmi_table && !dmi_check_system(table->dmi_table))
++ continue;
++ return table;
++ }
++ return NULL;
++}
++
++static int snd_intel_dsp_check_dmic(struct pci_dev *pci)
++{
++ struct nhlt_acpi_table *nhlt;
++ int ret = 0;
++
++ nhlt = intel_nhlt_init(&pci->dev);
++ if (nhlt) {
++ if (intel_nhlt_get_dmic_geo(&pci->dev, nhlt))
++ ret = 1;
++ intel_nhlt_free(nhlt);
++ }
++ return ret;
++}
++
++int snd_intel_dsp_driver_probe(struct pci_dev *pci)
++{
++ const struct config_entry *cfg;
++
++ if (dsp_driver > 0 && dsp_driver <= SND_INTEL_DSP_DRIVER_LAST)
++ return dsp_driver;
++
++ /* Intel vendor only */
++ if (snd_BUG_ON(pci->vendor != 0x8086))
++ return SND_INTEL_DSP_DRIVER_ANY;
++
++ /*
++ * detect DSP by checking class/subclass/prog-id information
++ * class=04 subclass 03 prog-if 00: no DSP, use legacy driver
++ * class=04 subclass 01 prog-if 00: DSP is present
++ * (and may be required e.g. for DMIC or SSP support)
++ * class=04 subclass 03 prog-if 80: use DSP or legacy mode
++ */
++ if (pci->class == 0x040300)
++ return SND_INTEL_DSP_DRIVER_LEGACY;
++ if (pci->class != 0x040100 && pci->class != 0x040380) {
++ dev_err(&pci->dev, "Unknown PCI class/subclass/prog-if information (0x%06x) found, selecting HDA legacy driver\n", pci->class);
++ return SND_INTEL_DSP_DRIVER_LEGACY;
++ }
++
++ dev_info(&pci->dev, "DSP detected with PCI class/subclass/prog-if info 0x%06x\n", pci->class);
++
++ /* find the configuration for the specific device */
++ cfg = snd_intel_dsp_find_config(pci, config_table, ARRAY_SIZE(config_table));
++ if (!cfg)
++ return SND_INTEL_DSP_DRIVER_ANY;
++
++ if (cfg->flags & FLAG_SOF) {
++ if (cfg->flags & FLAG_SOF_ONLY_IF_DMIC) {
++ if (snd_intel_dsp_check_dmic(pci)) {
++ dev_info(&pci->dev, "Digital mics found on Skylake+ platform, using SOF driver\n");
++ return SND_INTEL_DSP_DRIVER_SOF;
++ }
++ } else {
++ return SND_INTEL_DSP_DRIVER_SOF;
++ }
++ }
++
++ if (cfg->flags & FLAG_SST)
++ return SND_INTEL_DSP_DRIVER_SST;
++
++ return SND_INTEL_DSP_DRIVER_LEGACY;
++}
++EXPORT_SYMBOL_GPL(snd_intel_dsp_driver_probe);
++
++MODULE_LICENSE("GPL v2");
++MODULE_DESCRIPTION("Intel DSP config driver");
+diff --git a/sound/hda/intel-nhlt.c b/sound/hda/intel-nhlt.c
+index daede96f28ee..097ff6c10099 100644
+--- a/sound/hda/intel-nhlt.c
++++ b/sound/hda/intel-nhlt.c
+@@ -102,6 +102,3 @@ int intel_nhlt_get_dmic_geo(struct device *dev, struct nhlt_acpi_table *nhlt)
+ return dmic_geo;
+ }
+ EXPORT_SYMBOL_GPL(intel_nhlt_get_dmic_geo);
+-
+-MODULE_LICENSE("GPL v2");
+-MODULE_DESCRIPTION("Intel NHLT driver");
+diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig
+index dae47a45b2b8..bd48335d09d7 100644
+--- a/sound/pci/hda/Kconfig
++++ b/sound/pci/hda/Kconfig
+@@ -12,7 +12,7 @@ config SND_HDA_INTEL
+ tristate "HD Audio PCI"
+ depends on SND_PCI
+ select SND_HDA
+- select SND_INTEL_NHLT if ACPI
++ select SND_INTEL_DSP_CONFIG
+ help
+ Say Y here to include support for Intel "High Definition
+ Audio" (Azalia) and its compatible devices.
+@@ -23,15 +23,6 @@ config SND_HDA_INTEL
+ To compile this driver as a module, choose M here: the module
+ will be called snd-hda-intel.
+
+-config SND_HDA_INTEL_DETECT_DMIC
+- bool "DMIC detection and probe abort"
+- depends on SND_HDA_INTEL
+- help
+- Say Y to detect digital microphones on SKL+ devices. DMICs
+- cannot be handled by the HDaudio legacy driver and are
+- currently only supported by the SOF driver.
+- If unsure say N.
+-
+ config SND_HDA_TEGRA
+ tristate "NVIDIA Tegra HD Audio"
+ depends on ARCH_TEGRA
+diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
+index c52419376c74..2e5742d095ff 100644
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -46,7 +46,7 @@
+ #include <sound/initval.h>
+ #include <sound/hdaudio.h>
+ #include <sound/hda_i915.h>
+-#include <sound/intel-nhlt.h>
++#include <sound/intel-dsp-config.h>
+ #include <linux/vgaarb.h>
+ #include <linux/vga_switcheroo.h>
+ #include <linux/firmware.h>
+@@ -124,7 +124,7 @@ static char *patch[SNDRV_CARDS];
+ static bool beep_mode[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] =
+ CONFIG_SND_HDA_INPUT_BEEP_MODE};
+ #endif
+-static bool dmic_detect = IS_ENABLED(CONFIG_SND_HDA_INTEL_DETECT_DMIC);
++static bool dsp_driver = 1;
+
+ module_param_array(index, int, NULL, 0444);
+ MODULE_PARM_DESC(index, "Index value for Intel HD audio interface.");
+@@ -159,8 +159,9 @@ module_param_array(beep_mode, bool, NULL, 0444);
+ MODULE_PARM_DESC(beep_mode, "Select HDA Beep registration mode "
+ "(0=off, 1=on) (default=1).");
+ #endif
+-module_param(dmic_detect, bool, 0444);
+-MODULE_PARM_DESC(dmic_detect, "DMIC detect on SKL+ platforms");
++module_param(dsp_driver, bool, 0444);
++MODULE_PARM_DESC(dsp_driver, "Allow DSP driver selection (bypass this driver) "
++ "(0=off, 1=on) (default=1)");
+
+ #ifdef CONFIG_PM
+ static int param_set_xint(const char *val, const struct kernel_param *kp);
+@@ -2020,25 +2021,6 @@ static const struct hda_controller_ops pci_hda_ops = {
+ .position_check = azx_position_check,
+ };
+
+-static int azx_check_dmic(struct pci_dev *pci, struct azx *chip)
+-{
+- struct nhlt_acpi_table *nhlt;
+- int ret = 0;
+-
+- if (chip->driver_type == AZX_DRIVER_SKL &&
+- pci->class != 0x040300) {
+- nhlt = intel_nhlt_init(&pci->dev);
+- if (nhlt) {
+- if (intel_nhlt_get_dmic_geo(&pci->dev, nhlt)) {
+- ret = -ENODEV;
+- dev_info(&pci->dev, "Digital mics found on Skylake+ platform, aborting probe\n");
+- }
+- intel_nhlt_free(nhlt);
+- }
+- }
+- return ret;
+-}
+-
+ static int azx_probe(struct pci_dev *pci,
+ const struct pci_device_id *pci_id)
+ {
+@@ -2056,6 +2038,16 @@ static int azx_probe(struct pci_dev *pci,
+ return -ENOENT;
+ }
+
++ /*
++ * stop probe if another Intel's DSP driver should be activated
++ */
++ if (dsp_driver) {
++ err = snd_intel_dsp_driver_probe(pci);
++ if (err != SND_INTEL_DSP_DRIVER_ANY &&
++ err != SND_INTEL_DSP_DRIVER_LEGACY)
++ return -ENODEV;
++ }
++
+ err = snd_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE,
+ 0, &card);
+ if (err < 0) {
+@@ -2069,17 +2061,6 @@ static int azx_probe(struct pci_dev *pci,
+ card->private_data = chip;
+ hda = container_of(chip, struct hda_intel, chip);
+
+- /*
+- * stop probe if digital microphones detected on Skylake+ platform
+- * with the DSP enabled. This is an opt-in behavior defined at build
+- * time or at run-time with a module parameter
+- */
+- if (dmic_detect) {
+- err = azx_check_dmic(pci, chip);
+- if (err < 0)
+- goto out_free;
+- }
+-
+ pci_set_drvdata(pci, card);
+
+ err = register_vga_switcheroo(chip);
+diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
+index 01c99750212a..9ad89d56092b 100644
+--- a/sound/soc/intel/Kconfig
++++ b/sound/soc/intel/Kconfig
+@@ -215,7 +215,7 @@ config SND_SOC_INTEL_SKYLAKE_COMMON
+ select SND_SOC_INTEL_SST
+ select SND_SOC_HDAC_HDA if SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC
+ select SND_SOC_ACPI_INTEL_MATCH
+- select SND_INTEL_NHLT if ACPI
++ select SND_INTEL_DSP_CONFIG
+ help
+ If you have a Intel Skylake/Broxton/ApolloLake/KabyLake/
+ GeminiLake or CannonLake platform with the DSP enabled in the BIOS
+diff --git a/sound/soc/intel/skylake/skl.c b/sound/soc/intel/skylake/skl.c
+index 141dbbf975ac..58ba3e9469ba 100644
+--- a/sound/soc/intel/skylake/skl.c
++++ b/sound/soc/intel/skylake/skl.c
+@@ -27,6 +27,7 @@
+ #include <sound/hda_i915.h>
+ #include <sound/hda_codec.h>
+ #include <sound/intel-nhlt.h>
++#include <sound/intel-dsp-config.h>
+ #include "skl.h"
+ #include "skl-sst-dsp.h"
+ #include "skl-sst-ipc.h"
+@@ -987,22 +988,10 @@ static int skl_probe(struct pci_dev *pci,
+
+ switch (skl_pci_binding) {
+ case SND_SKL_PCI_BIND_AUTO:
+- /*
+- * detect DSP by checking class/subclass/prog-id information
+- * class=04 subclass 03 prog-if 00: no DSP, use legacy driver
+- * class=04 subclass 01 prog-if 00: DSP is present
+- * (and may be required e.g. for DMIC or SSP support)
+- * class=04 subclass 03 prog-if 80: use DSP or legacy mode
+- */
+- if (pci->class == 0x040300) {
+- dev_info(&pci->dev, "The DSP is not enabled on this platform, aborting probe\n");
++ err = snd_intel_dsp_driver_probe(pci);
++ if (err != SND_INTEL_DSP_DRIVER_ANY &&
++ err != SND_INTEL_DSP_DRIVER_SST)
+ return -ENODEV;
+- }
+- if (pci->class != 0x040100 && pci->class != 0x040380) {
+- dev_err(&pci->dev, "Unknown PCI class/subclass/prog-if information (0x%06x) found, aborting probe\n", pci->class);
+- return -ENODEV;
+- }
+- dev_info(&pci->dev, "DSP detected with PCI class/subclass/prog-if info 0x%06x\n", pci->class);
+ break;
+ case SND_SKL_PCI_BIND_LEGACY:
+ dev_info(&pci->dev, "Module parameter forced binding with HDaudio legacy, aborting probe\n");
+diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig
+index d62f51d33be1..1be28581c328 100644
+--- a/sound/soc/sof/intel/Kconfig
++++ b/sound/soc/sof/intel/Kconfig
+@@ -296,7 +296,7 @@ config SND_SOC_SOF_HDA
+ tristate
+ select SND_HDA_EXT_CORE if SND_SOC_SOF_HDA_LINK
+ select SND_SOC_HDAC_HDA if SND_SOC_SOF_HDA_AUDIO_CODEC
+- select SND_INTEL_NHLT if ACPI
++ select SND_INTEL_DSP_CONFIG
+ help
+ This option is not user-selectable but automagically handled by
+ 'select' statements at a higher level
+diff --git a/sound/soc/sof/sof-pci-dev.c b/sound/soc/sof/sof-pci-dev.c
+index d66412a77873..3a9e0e2a150d 100644
+--- a/sound/soc/sof/sof-pci-dev.c
++++ b/sound/soc/sof/sof-pci-dev.c
+@@ -12,6 +12,7 @@
+ #include <linux/module.h>
+ #include <linux/pci.h>
+ #include <linux/pm_runtime.h>
++#include <sound/intel-dsp-config.h>
+ #include <sound/soc-acpi.h>
+ #include <sound/soc-acpi-intel-match.h>
+ #include <sound/sof.h>
+@@ -277,6 +278,11 @@ static int sof_pci_probe(struct pci_dev *pci,
+ const struct snd_sof_dsp_ops *ops;
+ int ret;
+
++ ret = snd_intel_dsp_driver_probe(pci);
++ if (ret != SND_INTEL_DSP_DRIVER_ANY &&
++ ret != SND_INTEL_DSP_DRIVER_SOF)
++ return -ENODEV;
++
+ dev_dbg(&pci->dev, "PCI DSP detected");
+
+ /* get ops for platform */
+--
+2.20.1
+
+
+From 8f609dd45d5598536e5a1a7a84fe19ff7c13559a Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Tue, 22 Oct 2019 19:43:13 +0200
+Subject: [PATCH 007/130] ALSA: hda: fix intel DSP config
+
+Reshuffle list of devices by historical order and add correct
+information as needed.
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Link: https://lore.kernel.org/r/20191022174313.29087-2-perex@perex.cz
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit cc8f81c7e625168a60843b2b39e3a327cf5170fe)
+Bugzilla: 1772498
+---
+ sound/hda/intel-dsp-config.c | 220 ++++++++++++++++++++++++++---------
+ 1 file changed, 164 insertions(+), 56 deletions(-)
+
+diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c
+index d9f6d9e872b4..0b2a7201a46a 100644
+--- a/sound/hda/intel-dsp-config.c
++++ b/sound/hda/intel-dsp-config.c
+@@ -30,45 +30,98 @@ struct config_entry {
+ * - the first successful match will win
+ */
+ static const struct config_entry config_table[] = {
+-/* Cometlake-LP */
+-#if IS_ENABLED(CONFIG_SND_SOC_INTEL_CML_LP)
++/* Merrifield */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_MERRIFIELD)
+ {
+- /* prefer SST */
+- .flags = FLAG_SST,
+- .device = 0x02c8,
++ .flags = FLAG_SOF,
++ .device = 0x119a,
+ },
+-#elif IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_LP)
++#endif
++/* Broxton-T */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE)
+ {
+ .flags = FLAG_SOF,
+- .device = 0x02c8,
++ .device = 0x1a98,
+ },
+ #endif
+-/* Cometlake-H */
+-#if IS_ENABLED(CONFIG_SND_SOC_INTEL_CML_H)
++/*
++ * Apollolake (Broxton-P)
++ * the legacy HDaudio driver is used except on Up Squared (SOF) and
++ * Chromebooks (SST)
++ */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE)
+ {
+- .flags = FLAG_SST,
+- .device = 0x06c8,
++ .flags = FLAG_SOF,
++ .device = 0x5a98,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Up Squared",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "AAEON"),
++ DMI_MATCH(DMI_BOARD_NAME, "UP-APL01"),
++ }
++ },
++ {}
++ }
+ },
+-#elif IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_H)
++#endif
++#if IS_ENABLED(CONFIG_SND_SOC_INTEL_APL)
+ {
+- .flags = FLAG_SOF,
+- .device = 0x06c8,
++ .flags = FLAG_SST,
++ .device = 0x5a98,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Google Chromebooks",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
++ }
++ },
++ {}
++ }
+ },
+ #endif
+-/* Merrifield */
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_MERRIFIELD)
++/*
++ * Skylake and Kabylake use legacy HDaudio driver except for Google
++ * Chromebooks (SST)
++ */
++
++/* Sunrise Point-LP */
++#if IS_ENABLED(CONFIG_SND_SOC_INTEL_SKL)
+ {
+- .flags = FLAG_SOF,
+- .device = 0x119a,
++ .flags = FLAG_SST,
++ .device = 0x9d70,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Google Chromebooks",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
++ }
++ },
++ {}
++ }
+ },
+ #endif
+-/* Broxton-T */
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE)
++/* Kabylake-LP */
++#if IS_ENABLED(CONFIG_SND_SOC_INTEL_KBL)
+ {
+- .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
+- .device = 0x1a98,
++ .flags = FLAG_SST,
++ .device = 0x9d71,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Google Chromebooks",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
++ }
++ },
++ {}
++ }
+ },
+ #endif
++
++/*
++ * Geminilake uses legacy HDaudio driver except for Google
++ * Chromebooks
++ */
+ /* Geminilake */
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_GEMINILAKE)
+ {
+@@ -85,84 +138,139 @@ static const struct config_entry config_table[] = {
+ }
+ },
+ #endif
+-#if IS_ENABLED(CONFIG_SND_SOC_INTEL_GLK)
++
++/*
++ * CoffeeLake, CannonLake, CometLake, IceLake, TigerLake use legacy
++ * HDaudio driver except for Google Chromebooks and when DMICs are
++ * present. Two cases are required since Coreboot does not expose NHLT
++ * tables.
++ *
++ * When the Chromebook quirk is not present, it's based on information
++ * that no such device exists. When the quirk is present, it could be
++ * either based on product information or a placeholder.
++ */
++
++/* Cannonlake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_CANNONLAKE)
+ {
+- .flags = FLAG_SST,
+- .device = 0x3198,
++ .flags = FLAG_SOF,
++ .device = 0x9dc8,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Google Chromebooks",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
++ }
++ },
++ {}
++ }
+ },
+-#endif
+-/* Icelake */
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_ICELAKE)
+ {
+ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
+- .device = 0x34c8,
++ .device = 0x9dc8,
+ },
+ #endif
+-/* Elkhart Lake */
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_ELKHARTLAKE)
++
++/* Coffelake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_COFFEELAKE)
++ {
++ .flags = FLAG_SOF,
++ .device = 0xa348,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Google Chromebooks",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
++ }
++ },
++ {}
++ }
++ },
+ {
+ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
+- .device = 0x4b55,
++ .device = 0xa348,
+ },
+ #endif
+-/* Appololake (Broxton-P) */
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE)
++
++/* Cometlake-LP */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_LP)
+ {
+ .flags = FLAG_SOF,
+- .device = 0x5a98,
++ .device = 0x02c8,
+ .dmi_table = (const struct dmi_system_id []) {
+ {
+- .ident = "Up Squared",
++ .ident = "Google Chromebooks",
+ .matches = {
+- DMI_MATCH(DMI_SYS_VENDOR, "AAEON"),
+- DMI_MATCH(DMI_BOARD_NAME, "UP-APL01"),
++ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
+ }
+ },
+ {}
+ }
+ },
+-#endif
+-#if IS_ENABLED(CONFIG_SND_SOC_INTEL_APL)
+ {
+- .flags = FLAG_SST,
+- .device = 0x5a98,
++ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
++ .device = 0x02c8,
+ },
+ #endif
+-/* Cannonlake */
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_CANNONLAKE)
++/* Cometlake-H */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_H)
+ {
+ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
+- .device = 0x9dc8,
++ .device = 0x06c8,
+ },
+ #endif
+-/* Sunrise Point-LP */
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_SKYLAKE)
++
++/* Icelake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_ICELAKE)
+ {
+- .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
+- .device = 0x9d70,
++ .flags = FLAG_SOF,
++ .device = 0x34c8,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Google Chromebooks",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
++ }
++ },
++ {}
++ }
+ },
+-#endif
+-/* Kabylake-LP */
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_KABYLAKE)
+ {
+ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
+- .device = 0x9d71,
++ .device = 0x34c8,
+ },
+ #endif
++
+ /* Tigerlake */
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_TIGERLAKE)
++ {
++ .flags = FLAG_SOF,
++ .device = 0xa0c8,
++ .dmi_table = (const struct dmi_system_id []) {
++ {
++ .ident = "Google Chromebooks",
++ .matches = {
++ DMI_MATCH(DMI_SYS_VENDOR, "Google"),
++ }
++ },
++ {}
++ }
++ },
++
+ {
+ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
+ .device = 0xa0c8,
+ },
+ #endif
+-/* Coffelake */
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_COFFEELAKE)
++
++/* Elkhart Lake */
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_ELKHARTLAKE)
+ {
+ .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC,
+- .device = 0xa348,
++ .device = 0x4b55,
+ },
+ #endif
++
+ };
+
+ static const struct config_entry *snd_intel_dsp_find_config
+--
+2.20.1
+
+
+From 56731f15b8cce801875906ab32fefecd7858ab1a Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Mon, 28 Oct 2019 17:46:24 +0100
+Subject: [PATCH 008/130] ASoC: intel - fix the card names
+
+Those strings are exposed to the user space as the
+card name thus used in the GUIs. The common
+standard is to avoid '_' here. The worst case
+is 'sof-skl_hda_card' string.
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Cc: Mark Brown <broonie@kernel.org>
+Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191028164624.14334-1-perex@perex.cz
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit d745cc1ab65945b2d17ec9c5652f38299c054649)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c | 2 +-
+ sound/soc/intel/boards/skl_hda_dsp_generic.c | 2 +-
+ sound/soc/intel/boards/sof_rt5682.c | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
+index 74dda8784f1a..d14ca327c684 100644
+--- a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
++++ b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
+@@ -623,7 +623,7 @@ static int kabylake_card_late_probe(struct snd_soc_card *card)
+ * kabylake audio machine driver for MAX98927 + RT5514 + RT5663
+ */
+ static struct snd_soc_card kabylake_audio_card = {
+- .name = "kbl_r5514_5663_max",
++ .name = "kbl-r5514-5663-max",
+ .owner = THIS_MODULE,
+ .dai_link = kabylake_dais,
+ .num_links = ARRAY_SIZE(kabylake_dais),
+diff --git a/sound/soc/intel/boards/skl_hda_dsp_generic.c b/sound/soc/intel/boards/skl_hda_dsp_generic.c
+index 1778acdc367c..e8d676c192f6 100644
+--- a/sound/soc/intel/boards/skl_hda_dsp_generic.c
++++ b/sound/soc/intel/boards/skl_hda_dsp_generic.c
+@@ -90,7 +90,7 @@ skl_hda_add_dai_link(struct snd_soc_card *card, struct snd_soc_dai_link *link)
+ }
+
+ static struct snd_soc_card hda_soc_card = {
+- .name = "skl_hda_card",
++ .name = "hda-dsp",
+ .owner = THIS_MODULE,
+ .dai_link = skl_hda_be_dai_links,
+ .dapm_widgets = skl_hda_widgets,
+diff --git a/sound/soc/intel/boards/sof_rt5682.c b/sound/soc/intel/boards/sof_rt5682.c
+index 4f6e58c3954a..320a9b9273db 100644
+--- a/sound/soc/intel/boards/sof_rt5682.c
++++ b/sound/soc/intel/boards/sof_rt5682.c
+@@ -370,7 +370,7 @@ static int dmic_init(struct snd_soc_pcm_runtime *rtd)
+
+ /* sof audio machine driver for rt5682 codec */
+ static struct snd_soc_card sof_audio_card_rt5682 = {
+- .name = "sof_rt5682",
++ .name = "rt5682", /* the sof- prefix is added by the core */
+ .owner = THIS_MODULE,
+ .controls = sof_controls,
+ .num_controls = ARRAY_SIZE(sof_controls),
+--
+2.20.1
+
+
+From 63d4f97804a1ab4ad9e84843bdee307c2ab9e9b5 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Mon, 28 Oct 2019 14:06:34 +0100
+Subject: [PATCH 009/130] ALSA: hda: Allow non-Intel device probe gracefully
+
+The recent addition of snd_intel_dsp_driver_probe() check caused a
+spurious kernel warning when the driver is loaded for a non-Intel
+hardware due to snd_BUG_ON(). Moreover, for such a hardware, we
+should always return SND_INTEL_DSP_DRIVER_ANY, not check the
+dsp_driver option at all.
+
+This patch fixes these issues for non-Intel devices.
+
+Fixes: 82d9d54a6c0e ("ALSA: hda: add Intel DSP configuration / probe code")
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Link: https://lore.kernel.org/r/20191028130634.3501-1-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 91636a82044a2821201b54faac4d1d2425260842)
+Bugzilla: 1772498
+---
+ sound/hda/intel-dsp-config.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c
+index 0b2a7201a46a..be1df80ed013 100644
+--- a/sound/hda/intel-dsp-config.c
++++ b/sound/hda/intel-dsp-config.c
+@@ -307,13 +307,13 @@ int snd_intel_dsp_driver_probe(struct pci_dev *pci)
+ {
+ const struct config_entry *cfg;
+
+- if (dsp_driver > 0 && dsp_driver <= SND_INTEL_DSP_DRIVER_LAST)
+- return dsp_driver;
+-
+ /* Intel vendor only */
+- if (snd_BUG_ON(pci->vendor != 0x8086))
++ if (pci->vendor != 0x8086)
+ return SND_INTEL_DSP_DRIVER_ANY;
+
++ if (dsp_driver > 0 && dsp_driver <= SND_INTEL_DSP_DRIVER_LAST)
++ return dsp_driver;
++
+ /*
+ * detect DSP by checking class/subclass/prog-id information
+ * class=04 subclass 03 prog-if 00: no DSP, use legacy driver
+--
+2.20.1
+
+
+From fddf95e9cd5e5768e35aa6f60a9686f21e690dc5 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Tue, 5 Nov 2019 09:18:06 +0100
+Subject: [PATCH 010/130] ALSA: hda: Disable regmap internal locking
+
+Since we apply the own mutex (bus->cmd_mutex) in HDA core side, the
+internal locking in regmap is superfluous. This patch adds the flag
+to indicate that.
+
+Also, an infamous side-effect by this change is that it disables the
+regmap debugfs, too, and this is seen rather good; the regmap debugfs
+isn't quite useful for HD-audio as it provides the very sparse
+registers and its debugfs access tends to lead to the way too high
+resource usages or sometimes hang up. So it'd be rather safe to
+disable it altogether.
+
+Link: https://lore.kernel.org/r/2029139028.10333037.1572874551626.JavaMail.zimbra@redhat.com
+Link: https://lore.kernel.org/r/20191105081806.4896-1-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 42ec336f1f9d54049811b749f729e9e01c152ade)
+Bugzilla: 1772498
+---
+ sound/hda/hdac_regmap.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/sound/hda/hdac_regmap.c b/sound/hda/hdac_regmap.c
+index 286361ecd640..906b1e20bae0 100644
+--- a/sound/hda/hdac_regmap.c
++++ b/sound/hda/hdac_regmap.c
+@@ -363,6 +363,7 @@ static const struct regmap_config hda_regmap_cfg = {
+ .reg_write = hda_reg_write,
+ .use_single_read = true,
+ .use_single_write = true,
++ .disable_locking = true,
+ };
+
+ /**
+--
+2.20.1
+
+
+From b9f21867949f2ed530dbefed02d139c5a92e0621 Mon Sep 17 00:00:00 2001
+From: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Date: Fri, 18 Oct 2019 15:38:48 +0800
+Subject: [PATCH 011/130] ALSA: hda: Allow HDA to be runtime suspended when
+ dGPU is not bound to a driver
+
+Nvidia proprietary driver doesn't support runtime power management, so
+when a user only wants to use the integrated GPU, it's a common practice
+to let dGPU not to bind any driver, and let its upstream port to be
+runtime suspended. At the end of runtime suspension the port uses
+platform power management to disable power through _OFF method of power
+resource, which is listed by _PR3.
+
+After commit b516ea586d71 ("PCI: Enable NVIDIA HDA controllers"), when
+the dGPU comes with an HDA function, the HDA won't be suspended if the
+dGPU is unbound, so the power resource can't be turned off by its
+upstream port driver.
+
+Commit 37a3a98ef601 ("ALSA: hda - Enable runtime PM only for
+discrete GPU") only allows HDA to be runtime suspended once GPU is
+bound, to keep APU's HDA working.
+
+However, HDA on dGPU isn't that useful if dGPU is not bound to any
+driver. So let's relax the runtime suspend requirement for dGPU's HDA
+function, to disable the power source to save lots of power.
+
+BugLink: https://bugs.launchpad.net/bugs/1840835
+Fixes: b516ea586d71 ("PCI: Enable NVIDIA HDA controllers")
+Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Link: https://lore.kernel.org/r/20191018073848.14590-2-kai.heng.feng@canonical.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit bacd861452d2be86a4df341b12e32db7dac8021e)
+Bugzilla: 1772498
+---
+ sound/pci/hda/hda_intel.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
+index 2e5742d095ff..e0e9d4ee180d 100644
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -1281,11 +1281,17 @@ static void init_vga_switcheroo(struct azx *chip)
+ {
+ struct hda_intel *hda = container_of(chip, struct hda_intel, chip);
+ struct pci_dev *p = get_bound_vga(chip->pci);
++ struct pci_dev *parent;
+ if (p) {
+ dev_info(chip->card->dev,
+ "Handle vga_switcheroo audio client\n");
+ hda->use_vga_switcheroo = 1;
+- chip->bus.keep_power = 1; /* cleared in either gpu_bound op or codec probe */
++
++ /* cleared in either gpu_bound op or codec probe, or when its
++ * upstream port has _PR3 (i.e. dGPU).
++ */
++ parent = pci_upstream_bridge(p);
++ chip->bus.keep_power = parent ? !pci_pr3_present(parent) : 1;
+ chip->driver_caps |= AZX_DCAPS_PM_RUNTIME;
+ pci_dev_put(p);
+ }
+--
+2.20.1
+
+
+From faecd54be3265217bc7f8499c3f9e1d230ccd05d Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Mon, 28 Oct 2019 11:58:03 +0100
+Subject: [PATCH 012/130] ALSA: hda - Fix pending unsol events at shutdown
+
+This is an alternative fix attemp for the issue reported in the commit
+caa8422d01e9 ("ALSA: hda: Flush interrupts on disabling") that was
+reverted later due to regressions. Instead of tweaking the hardware
+disablement order and the enforced irq flushing, do calling
+cancel_work_sync() of the unsol work early enough, and explicitly
+ignore the unsol events during the shutdown by checking the
+bus->shutdown flag.
+
+Fixes: caa8422d01e9 ("ALSA: hda: Flush interrupts on disabling")
+Cc: Chris Wilson <chris@chris-wilson.co.uk>
+Link: https://lore.kernel.org/r/s5h1ruxt9cz.wl-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit ca58f55108fee41d87c9123f85ad4863e5de7f45)
+Bugzilla: 1772498
+---
+ sound/pci/hda/hda_bind.c | 4 ++++
+ sound/pci/hda/hda_intel.c | 3 +++
+ 2 files changed, 7 insertions(+)
+
+diff --git a/sound/pci/hda/hda_bind.c b/sound/pci/hda/hda_bind.c
+index 8272b50b8349..6a8564566375 100644
+--- a/sound/pci/hda/hda_bind.c
++++ b/sound/pci/hda/hda_bind.c
+@@ -43,6 +43,10 @@ static void hda_codec_unsol_event(struct hdac_device *dev, unsigned int ev)
+ {
+ struct hda_codec *codec = container_of(dev, struct hda_codec, core);
+
++ /* ignore unsol events during shutdown */
++ if (codec->bus->shutdown)
++ return;
++
+ if (codec->patch_ops.unsol_event)
+ codec->patch_ops.unsol_event(codec, ev);
+ }
+diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
+index e0e9d4ee180d..8981109e3565 100644
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -1389,8 +1389,11 @@ static int azx_free(struct azx *chip)
+ static int azx_dev_disconnect(struct snd_device *device)
+ {
+ struct azx *chip = device->device_data;
++ struct hdac_bus *bus = azx_bus(chip);
+
+ chip->bus.shutdown = 1;
++ cancel_work_sync(&bus->unsol_work);
++
+ return 0;
+ }
+
+--
+2.20.1
+
+
+From e3eb037a46c5b6771e9336bb493063dbffb90e04 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 29 Oct 2019 15:40:09 +0200
+Subject: [PATCH 013/130] ALSA: hda/hdmi - implement mst_no_extra_pcms flag
+
+To support the DP-MST multiple streams via single connector feature,
+the HDMI driver was extended with the concept of backup PCMs. See
+commit 9152085defb6 ("ALSA: hda - add DP MST audio support").
+
+This implementation works fine with snd_hda_intel.c as PCM topology
+is fully managed within the single driver.
+
+When the HDA codec driver is used from ASoC components, the concept
+of backup PCMs no longer fits. For ASoC topologies, the physical
+HDMI converters are presented as backend DAIs and these should match
+with hardware capabilities. The ASoC topology may define arbitrary
+PCMs (i.e. frontend DAIs) and have processing elements before eventual
+routing to the HDMI BE DAIs. With backup PCMs, the link between
+FE and BE DAIs would become dynamic and change when monitors are
+(un)plugged. This would lead to modifying the topology every time
+hotplug events happen, which is not currently possible in ASoC and
+there does not seem to be any obvious benefits from this design.
+
+To overcome above problems and enable the HDMI driver to be used
+from ASoC, this patch adds a new mode (mst_no_extra_pcms flags) to
+patch_hdmi.c. In this mode, the codec driver does not assume
+the backup PCMs to be created.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191029134017.18901-2-kai.vehmanen@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 2a2edfbbfee47947dd05f5860c66c0e80ee5e09d)
+Bugzilla: 1772498
+---
+ include/sound/hda_codec.h | 1 +
+ sound/pci/hda/patch_hdmi.c | 19 ++++++++++++++-----
+ 2 files changed, 15 insertions(+), 5 deletions(-)
+
+diff --git a/include/sound/hda_codec.h b/include/sound/hda_codec.h
+index 9a0393cf024c..ac18f428eda6 100644
+--- a/include/sound/hda_codec.h
++++ b/include/sound/hda_codec.h
+@@ -254,6 +254,7 @@ struct hda_codec {
+ unsigned int force_pin_prefix:1; /* Add location prefix */
+ unsigned int link_down_at_suspend:1; /* link down at runtime suspend */
+ unsigned int relaxed_resume:1; /* don't resume forcibly for jack */
++ unsigned int mst_no_extra_pcms:1; /* no backup PCMs for DP-MST */
+
+ #ifdef CONFIG_PM
+ unsigned long power_on_acct;
+diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
+index d14f6684737d..b8579cd21809 100644
+--- a/sound/pci/hda/patch_hdmi.c
++++ b/sound/pci/hda/patch_hdmi.c
+@@ -2075,15 +2075,24 @@ static bool is_hdmi_pcm_attached(struct hdac_device *hdac, int pcm_idx)
+ static int generic_hdmi_build_pcms(struct hda_codec *codec)
+ {
+ struct hdmi_spec *spec = codec->spec;
+- int idx;
++ int idx, pcm_num;
+
+ /*
+ * for non-mst mode, pcm number is the same as before
+- * for DP MST mode, pcm number is (nid number + dev_num - 1)
+- * dev_num is the device entry number in a pin
+- *
++ * for DP MST mode without extra PCM, pcm number is same
++ * for DP MST mode with extra PCMs, pcm number is
++ * (nid number + dev_num - 1)
++ * dev_num is the device entry number in a pin
+ */
+- for (idx = 0; idx < spec->num_nids + spec->dev_num - 1; idx++) {
++
++ if (codec->mst_no_extra_pcms)
++ pcm_num = spec->num_nids;
++ else
++ pcm_num = spec->num_nids + spec->dev_num - 1;
++
++ codec_dbg(codec, "hdmi: pcm_num set to %d\n", pcm_num);
++
++ for (idx = 0; idx < pcm_num; idx++) {
+ struct hda_pcm *info;
+ struct hda_pcm_stream *pstr;
+
+--
+2.20.1
+
+
+From d396423ca770d10ab33a485f118e80a1a9f70516 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Mon, 11 Nov 2019 20:09:37 +0100
+Subject: [PATCH 014/130] ALSA: hda/hdmi - Clean up Intel platform-specific
+ fixup checks
+
+Introduce a new flag in hdmi_spec to indicate the Intel platform-
+specific fixups so that we can get rid of the lengthy codec ID
+checks. The flag is set in intel_hsw_common_init() commonly.
+
+Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Link: https://lore.kernel.org/r/20191111190937.19186-1-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit cb45722b289b54476b68883985c2824c69a7fba9)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_hdmi.c | 27 +++++----------------------
+ 1 file changed, 5 insertions(+), 22 deletions(-)
+
+diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
+index b8579cd21809..ee72d990cef3 100644
+--- a/sound/pci/hda/patch_hdmi.c
++++ b/sound/pci/hda/patch_hdmi.c
+@@ -37,25 +37,6 @@ static bool static_hdmi_pcm;
+ module_param(static_hdmi_pcm, bool, 0644);
+ MODULE_PARM_DESC(static_hdmi_pcm, "Don't restrict PCM parameters per ELD info");
+
+-#define is_haswell(codec) ((codec)->core.vendor_id == 0x80862807)
+-#define is_broadwell(codec) ((codec)->core.vendor_id == 0x80862808)
+-#define is_skylake(codec) ((codec)->core.vendor_id == 0x80862809)
+-#define is_broxton(codec) ((codec)->core.vendor_id == 0x8086280a)
+-#define is_kabylake(codec) ((codec)->core.vendor_id == 0x8086280b)
+-#define is_geminilake(codec) (((codec)->core.vendor_id == 0x8086280d) || \
+- ((codec)->core.vendor_id == 0x80862800))
+-#define is_cannonlake(codec) ((codec)->core.vendor_id == 0x8086280c)
+-#define is_icelake(codec) ((codec)->core.vendor_id == 0x8086280f)
+-#define is_tigerlake(codec) ((codec)->core.vendor_id == 0x80862812)
+-#define is_haswell_plus(codec) (is_haswell(codec) || is_broadwell(codec) \
+- || is_skylake(codec) || is_broxton(codec) \
+- || is_kabylake(codec) || is_geminilake(codec) \
+- || is_cannonlake(codec) || is_icelake(codec) \
+- || is_tigerlake(codec))
+-#define is_valleyview(codec) ((codec)->core.vendor_id == 0x80862882)
+-#define is_cherryview(codec) ((codec)->core.vendor_id == 0x80862883)
+-#define is_valleyview_plus(codec) (is_valleyview(codec) || is_cherryview(codec))
+-
+ struct hdmi_spec_per_cvt {
+ hda_nid_t cvt_nid;
+ int assigned;
+@@ -162,6 +143,7 @@ struct hdmi_spec {
+
+ bool dyn_pin_out;
+ bool dyn_pcm_assign;
++ bool intel_hsw_fixup; /* apply Intel platform-specific fixups */
+ /*
+ * Non-generic VIA/NVIDIA specific
+ */
+@@ -925,7 +907,7 @@ static int hdmi_setup_stream(struct hda_codec *codec, hda_nid_t cvt_nid,
+ return err;
+ }
+
+- if (is_haswell_plus(codec)) {
++ if (spec->intel_hsw_fixup) {
+
+ /*
+ * on recent platforms IEC Coding Type is required for HBR
+@@ -1709,7 +1691,7 @@ static int hdmi_add_pin(struct hda_codec *codec, hda_nid_t pin_nid)
+ * To simplify the implementation, malloc all
+ * the virtual pins in the initialization statically
+ */
+- if (is_haswell_plus(codec)) {
++ if (spec->intel_hsw_fixup) {
+ /*
+ * On Intel platforms, device entries number is
+ * changed dynamically. If there is a DP MST
+@@ -1758,7 +1740,7 @@ static int hdmi_add_pin(struct hda_codec *codec, hda_nid_t pin_nid)
+ per_pin->dev_id = i;
+ per_pin->non_pcm = false;
+ snd_hda_set_dev_select(codec, pin_nid, i);
+- if (is_haswell_plus(codec))
++ if (spec->intel_hsw_fixup)
+ intel_haswell_fixup_connect_list(codec, pin_nid);
+ err = hdmi_read_pin_conn(codec, pin_idx);
+ if (err < 0)
+@@ -2825,6 +2807,7 @@ static int intel_hsw_common_init(struct hda_codec *codec, hda_nid_t vendor_nid,
+ spec->vendor_nid = vendor_nid;
+ spec->port_map = port_map;
+ spec->port_num = port_num;
++ spec->intel_hsw_fixup = true;
+
+ intel_haswell_enable_all_pins(codec, true);
+ intel_haswell_fixup_enable_dp12(codec);
+--
+2.20.1
+
+
+From 3c8372547754addd020cc95c164508fd67cb53b8 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Fri, 15 Nov 2019 14:44:47 +0200
+Subject: [PATCH 015/130] ALSA: hda: hdmi - fix port numbering for ICL and TGL
+ platforms
+
+Semantics of port#0 differ between ICL and TGL:
+
+ ICL port#0 -> never used for HDAudio
+ ICL port#1 -> should be mapped to first pin (0x04)
+ TGL port#0 -> typically not used, but HW has the support,
+ so should be mapped to first pin (0x04)
+ TGL port#1 -> should be mapped to 2nd pin (0x06)
+
+Refactor the port mapping logic to allow to take the above
+differences into account. Fixes issues with HDAudio on some
+TGL platforms.
+
+Co-developed-by: Pan Xiuli <xiuli.pan@linux.intel.com>
+Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Link: https://lore.kernel.org/r/20191115124449.20512-2-kai.vehmanen@linux.intel.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit d577cf76fa3192f9e656bb101aa54d25a6a71347)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_hdmi.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
+index ee72d990cef3..cc35a8569439 100644
+--- a/sound/pci/hda/patch_hdmi.c
++++ b/sound/pci/hda/patch_hdmi.c
+@@ -2664,7 +2664,7 @@ static int intel_pin2port(void *audio_ptr, int pin_nid)
+ */
+ for (i = 0; i < spec->port_num; i++) {
+ if (pin_nid == spec->port_map[i])
+- return i + 1;
++ return i;
+ }
+
+ /* return -1 if pin number exceeds our expectation */
+@@ -2684,9 +2684,9 @@ static int intel_port2pin(struct hda_codec *codec, int port)
+ return port + intel_base_nid(codec) - 1;
+ }
+
+- if (port < 1 || port > spec->port_num)
++ if (port < 0 || port >= spec->port_num)
+ return 0;
+- return spec->port_map[port - 1];
++ return spec->port_map[port];
+ }
+
+ static void intel_pin_eld_notify(void *audio_ptr, int port, int pipe)
+@@ -2838,9 +2838,9 @@ static int patch_i915_icl_hdmi(struct hda_codec *codec)
+ {
+ /*
+ * pin to port mapping table where the value indicate the pin number and
+- * the index indicate the port number with 1 base.
++ * the index indicate the port number.
+ */
+- static const int map[] = {0x4, 0x6, 0x8, 0xa, 0xb};
++ static const int map[] = {0x0, 0x4, 0x6, 0x8, 0xa, 0xb};
+
+ return intel_hsw_common_init(codec, 0x02, map, ARRAY_SIZE(map));
+ }
+@@ -2849,7 +2849,7 @@ static int patch_i915_tgl_hdmi(struct hda_codec *codec)
+ {
+ /*
+ * pin to port mapping table where the value indicate the pin number and
+- * the index indicate the port number with 1 base.
++ * the index indicate the port number.
+ */
+ static const int map[] = {0x4, 0x6, 0x8, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf};
+
+--
+2.20.1
+
+
+From 485ef81d2510635f707bec0fb461b199e0b6cb89 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Fri, 15 Nov 2019 14:44:48 +0200
+Subject: [PATCH 016/130] ALSA: hda: hdmi - remove redundant code comments
+
+Remove unnecessary comments related to pin mapping on
+Intel platforms.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Link: https://lore.kernel.org/r/20191115124449.20512-3-kai.vehmanen@linux.intel.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit c8e3eb9be57f91751aeb9397118755390dbff9a4)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_hdmi.c | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
+index cc35a8569439..71848dce0025 100644
+--- a/sound/pci/hda/patch_hdmi.c
++++ b/sound/pci/hda/patch_hdmi.c
+@@ -2655,7 +2655,7 @@ static int intel_pin2port(void *audio_ptr, int pin_nid)
+ base_nid = intel_base_nid(codec);
+ if (WARN_ON(pin_nid < base_nid || pin_nid >= base_nid + 3))
+ return -1;
+- return pin_nid - base_nid + 1; /* intel port is 1-based */
++ return pin_nid - base_nid + 1;
+ }
+
+ /*
+@@ -2667,7 +2667,6 @@ static int intel_pin2port(void *audio_ptr, int pin_nid)
+ return i;
+ }
+
+- /* return -1 if pin number exceeds our expectation */
+ codec_info(codec, "Can't find the HDMI/DP port for pin %d\n", pin_nid);
+ return -1;
+ }
+@@ -2680,7 +2679,6 @@ static int intel_port2pin(struct hda_codec *codec, int port)
+ /* we assume only from port-B to port-D */
+ if (port < 1 || port > 3)
+ return 0;
+- /* intel port is 1-based */
+ return port + intel_base_nid(codec) - 1;
+ }
+
+@@ -2856,7 +2854,6 @@ static int patch_i915_tgl_hdmi(struct hda_codec *codec)
+ return intel_hsw_common_init(codec, 0x02, map, ARRAY_SIZE(map));
+ }
+
+-
+ /* Intel Baytrail and Braswell; with eld notifier */
+ static int patch_i915_byt_hdmi(struct hda_codec *codec)
+ {
+--
+2.20.1
+
+
+From c581baec7a7479f1767335255a7b7de405bfc707 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Fri, 15 Nov 2019 14:44:49 +0200
+Subject: [PATCH 017/130] ALSA: hda - remove forced polling workaround for CFL
+ and CNL
+
+Remove the workarounds added in commit fa763f1b2858 ("ALSA:
+hda - Force polling mode on CNL for fixing codec communication")
+and commit a8d7bde23e71 ("ALSA: hda - Force polling mode on CFL
+for fixing codec communication").
+
+The workarounds are no longer needed after the more generic
+change done in commit 2756d9143aa5 ("ALSA: hda - Fix intermittent
+CORB/RIRB stall on Intel chips"). This change applies to a larger
+set of hardware and covers CFL and CNL as well.
+
+Similar change was already done to SOF DSP HDA driver with
+no regressions detected.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Link: https://lore.kernel.org/r/20191115124449.20512-4-kai.vehmanen@linux.intel.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit ee906c6b9c6e7e4ad749f5cfdf65768455f4bf43)
+Bugzilla: 1772498
+---
+ sound/pci/hda/hda_intel.c | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
+index 8981109e3565..e76a0bb6d3cf 100644
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -369,8 +369,6 @@ enum {
+ ((pci)->device == 0x160c))
+
+ #define IS_BXT(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0x5a98)
+-#define IS_CFL(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0xa348)
+-#define IS_CNL(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0x9dc8)
+
+ static char *driver_short_names[] = {
+ [AZX_DRIVER_ICH] = "HDA Intel",
+@@ -1763,10 +1761,6 @@ static int azx_create(struct snd_card *card, struct pci_dev *pci,
+ if (!azx_snoop(chip))
+ azx_bus(chip)->dma_type = SNDRV_DMA_TYPE_DEV_UC;
+
+- /* Workaround for a communication error on CFL (bko#199007) and CNL */
+- if (IS_CFL(pci) || IS_CNL(pci))
+- azx_bus(chip)->polling_mode = 1;
+-
+ if (chip->driver_type == AZX_DRIVER_NVIDIA) {
+ dev_dbg(chip->card->dev, "Enable delay in RIRB handling\n");
+ chip->bus.needs_damn_long_delay = 1;
+--
+2.20.1
+
+
+From 8de79a35aa53df66d5eec899cafff067a0908da4 Mon Sep 17 00:00:00 2001
+From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+Date: Tue, 15 Oct 2019 14:44:09 +0900
+Subject: [PATCH 018/130] ASoC: sof: include types.h at header.h
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Content-Transfer-Encoding: 8bit
+
+Without <types.h> we will get these error
+
+linux/include/sound/sof/header.h:125:2: error: unknown type name ‘uint32_t’uint32_t size;
+linux/include/sound/sof/header.h:136:2: error: unknown type name ‘uint32_t’uint32_t size;
+linux/include/sound/sof/header.h:137:2: error: unknown type name ‘uint32_t’uint32_t cmd;
+...
+linux/include/sound/sof/dai-imx.h:18:2: error: unknown type name ‘uint16_t’uint16_t reserved1;
+linux/include/sound/sof/dai-imx.h:30:2: error: unknown type name ‘uint16_t’uint16_t tdm_slot_width;
+linux/include/sound/sof/dai-imx.h:31:2: error: unknown type name ‘uint16_t’uint16_t reserved2;
+
+Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+Link: https://lore.kernel.org/r/87a7a24l7r.wl-kuninori.morimoto.gx@renesas.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 03048217624a9472c1c7a205c8ea9bf8d4026e59)
+Bugzilla: 1772498
+---
+ include/sound/sof/header.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/sound/sof/header.h b/include/sound/sof/header.h
+index 10f00c08dbb7..332143ff7278 100644
+--- a/include/sound/sof/header.h
++++ b/include/sound/sof/header.h
+@@ -9,6 +9,7 @@
+ #ifndef __INCLUDE_SOUND_SOF_HEADER_H__
+ #define __INCLUDE_SOUND_SOF_HEADER_H__
+
++#include <linux/types.h>
+ #include <uapi/sound/sof/abi.h>
+
+ /** \addtogroup sof_uapi uAPI
+--
+2.20.1
+
+
+From eeb591355d00f4e6e077745aca5ff5a2899eca2d Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 27 Sep 2019 15:05:28 -0500
+Subject: [PATCH 019/130] ASoC: SOF: trace: move to opt-in with Kconfig and
+ module parameter
+
+In a number of debug cases, the DMA-based trace can add problems
+(e.g. with HDaudio channel allocation). It also generates additional
+traffic on the bus and if the DMA handling is unreliable will prevent
+audio use-cases from working normally. Using the trace also requires
+tools to be installed on the target.
+
+The trace can be instead handled as dynamic debug. We can use a
+Kconfig to force the trace to be enabled in all cases, or use a module
+parameter to enable it on a need-basis, e.g. by setting "options
+snd_sof sof_debug=0x1" in a /etc/modprobe.d file.
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20190927200538.660-4-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 2ab4c50f6955514150f83b47b7aee3ba5fe3ac1d)
+Bugzilla: 1772498
+---
+ sound/soc/sof/Kconfig | 8 ++++++++
+ sound/soc/sof/core.c | 25 +++++++++++++++++++------
+ sound/soc/sof/sof-priv.h | 13 +++++++++----
+ sound/soc/sof/trace.c | 17 ++++++++++++++++-
+ 4 files changed, 52 insertions(+), 11 deletions(-)
+
+diff --git a/sound/soc/sof/Kconfig b/sound/soc/sof/Kconfig
+index bb8036ae567e..cc592bcadae7 100644
+--- a/sound/soc/sof/Kconfig
++++ b/sound/soc/sof/Kconfig
+@@ -142,6 +142,14 @@ config SND_SOC_SOF_DEBUG_ENABLE_DEBUGFS_CACHE
+ Say Y if you want to enable caching the memory windows.
+ If unsure, select "N".
+
++config SND_SOC_SOF_DEBUG_ENABLE_FIRMWARE_TRACE
++ bool "SOF enable firmware trace"
++ help
++ The firmware trace can be enabled either at build-time with
++ this option, or dynamically by setting flags in the SOF core
++ module parameter (similar to dynamic debug)
++ If unsure, select "N".
++
+ config SND_SOC_SOF_DEBUG_IPC_FLOOD_TEST
+ bool "SOF enable IPC flood test"
+ help
+diff --git a/sound/soc/sof/core.c b/sound/soc/sof/core.c
+index 81f28f7ff1a0..15167b8220ed 100644
+--- a/sound/soc/sof/core.c
++++ b/sound/soc/sof/core.c
+@@ -16,6 +16,11 @@
+ #include "sof-priv.h"
+ #include "ops.h"
+
++/* see SOF_DBG_ flags */
++int sof_core_debug;
++module_param_named(sof_debug, sof_core_debug, int, 0444);
++MODULE_PARM_DESC(sof_debug, "SOF core debug options (0x0 all off)");
++
+ /* SOF defaults if not provided by the platform in ms */
+ #define TIMEOUT_DEFAULT_IPC_MS 500
+ #define TIMEOUT_DEFAULT_BOOT_MS 2000
+@@ -350,12 +355,20 @@ static int sof_probe_continue(struct snd_sof_dev *sdev)
+ goto fw_run_err;
+ }
+
+- /* init DMA trace */
+- ret = snd_sof_init_trace(sdev);
+- if (ret < 0) {
+- /* non fatal */
+- dev_warn(sdev->dev,
+- "warning: failed to initialize trace %d\n", ret);
++ if (IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG_ENABLE_FIRMWARE_TRACE) ||
++ (sof_core_debug & SOF_DBG_ENABLE_TRACE)) {
++ sdev->dtrace_is_supported = true;
++
++ /* init DMA trace */
++ ret = snd_sof_init_trace(sdev);
++ if (ret < 0) {
++ /* non fatal */
++ dev_warn(sdev->dev,
++ "warning: failed to initialize trace %d\n",
++ ret);
++ }
++ } else {
++ dev_dbg(sdev->dev, "SOF firmware trace disabled\n");
+ }
+
+ /* hereafter all FW boot flows are for PM reasons */
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 730f3259dd02..d5b1a4f895da 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -28,10 +28,14 @@
+ #include <uapi/sound/sof/fw.h>
+
+ /* debug flags */
+-#define SOF_DBG_REGS BIT(1)
+-#define SOF_DBG_MBOX BIT(2)
+-#define SOF_DBG_TEXT BIT(3)
+-#define SOF_DBG_PCI BIT(4)
++#define SOF_DBG_ENABLE_TRACE BIT(0)
++#define SOF_DBG_REGS BIT(1)
++#define SOF_DBG_MBOX BIT(2)
++#define SOF_DBG_TEXT BIT(3)
++#define SOF_DBG_PCI BIT(4)
++
++/* global debug state set by SOF_DBG_ flags */
++extern int sof_core_debug;
+
+ /* max BARs mmaped devices can use */
+ #define SND_SOF_BARS 8
+@@ -434,6 +438,7 @@ struct snd_sof_dev {
+ int dma_trace_pages;
+ wait_queue_head_t trace_sleep;
+ u32 host_offset;
++ u32 dtrace_is_supported; /* set with Kconfig or module parameter */
+ u32 dtrace_is_enabled;
+ u32 dtrace_error;
+ u32 dtrace_draining;
+diff --git a/sound/soc/sof/trace.c b/sound/soc/sof/trace.c
+index 4c3cff031fd6..b0e4556c8536 100644
+--- a/sound/soc/sof/trace.c
++++ b/sound/soc/sof/trace.c
+@@ -162,6 +162,9 @@ int snd_sof_init_trace_ipc(struct snd_sof_dev *sdev)
+ struct sof_ipc_reply ipc_reply;
+ int ret;
+
++ if (!sdev->dtrace_is_supported)
++ return 0;
++
+ if (sdev->dtrace_is_enabled || !sdev->dma_trace_pages)
+ return -EINVAL;
+
+@@ -222,6 +225,9 @@ int snd_sof_init_trace(struct snd_sof_dev *sdev)
+ {
+ int ret;
+
++ if (!sdev->dtrace_is_supported)
++ return 0;
++
+ /* set false before start initialization */
+ sdev->dtrace_is_enabled = false;
+
+@@ -277,6 +283,9 @@ EXPORT_SYMBOL(snd_sof_init_trace);
+ int snd_sof_trace_update_pos(struct snd_sof_dev *sdev,
+ struct sof_ipc_dma_trace_posn *posn)
+ {
++ if (!sdev->dtrace_is_supported)
++ return 0;
++
+ if (sdev->dtrace_is_enabled && sdev->host_offset != posn->host_offset) {
+ sdev->host_offset = posn->host_offset;
+ wake_up(&sdev->trace_sleep);
+@@ -293,6 +302,9 @@ int snd_sof_trace_update_pos(struct snd_sof_dev *sdev,
+ /* an error has occurred within the DSP that prevents further trace */
+ void snd_sof_trace_notify_for_error(struct snd_sof_dev *sdev)
+ {
++ if (!sdev->dtrace_is_supported)
++ return;
++
+ if (sdev->dtrace_is_enabled) {
+ dev_err(sdev->dev, "error: waking up any trace sleepers\n");
+ sdev->dtrace_error = true;
+@@ -305,7 +317,7 @@ void snd_sof_release_trace(struct snd_sof_dev *sdev)
+ {
+ int ret;
+
+- if (!sdev->dtrace_is_enabled)
++ if (!sdev->dtrace_is_supported || !sdev->dtrace_is_enabled)
+ return;
+
+ ret = snd_sof_dma_trace_trigger(sdev, SNDRV_PCM_TRIGGER_STOP);
+@@ -326,6 +338,9 @@ EXPORT_SYMBOL(snd_sof_release_trace);
+
+ void snd_sof_free_trace(struct snd_sof_dev *sdev)
+ {
++ if (!sdev->dtrace_is_supported)
++ return;
++
+ snd_sof_release_trace(sdev);
+
+ snd_dma_free_pages(&sdev->dmatb);
+--
+2.20.1
+
+
+From f1e8f5f928c09194078db704356af60ddaee6280 Mon Sep 17 00:00:00 2001
+From: Liam Girdwood <liam.r.girdwood@linux.intel.com>
+Date: Fri, 27 Sep 2019 15:05:29 -0500
+Subject: [PATCH 020/130] ASoC: SOF: ipc: retain DSP context after FW
+ exception.
+
+Add config option to prevent DSP entering D3 after any FW exception.
+This can then be used to dump FW context for debug.
+
+Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20190927200538.660-5-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 9a06508bf7824ba34f2e1e9e08df505ac14a44c2)
+Bugzilla: 1772498
+---
+ sound/soc/sof/Kconfig | 8 ++++++++
+ sound/soc/sof/debug.c | 16 ++++++++++++++++
+ sound/soc/sof/ipc.c | 4 +---
+ sound/soc/sof/sof-priv.h | 2 ++
+ 4 files changed, 27 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/sof/Kconfig b/sound/soc/sof/Kconfig
+index cc592bcadae7..56a3ab66b46b 100644
+--- a/sound/soc/sof/Kconfig
++++ b/sound/soc/sof/Kconfig
+@@ -158,6 +158,14 @@ config SND_SOC_SOF_DEBUG_IPC_FLOOD_TEST
+ Say Y if you want to enable IPC flood test.
+ If unsure, select "N".
+
++config SND_SOC_SOF_DEBUG_RETAIN_DSP_CONTEXT
++ bool "SOF retain DSP context on any FW exceptions"
++ help
++ This option keeps the DSP in D0 state so that firmware debug
++ information can be retained and dumped to userspace.
++ Say Y if you want to retain DSP context for FW exceptions.
++ If unsure, select "N".
++
+ endif ## SND_SOC_SOF_DEBUG
+
+ endif ## SND_SOC_SOF_OPTIONS
+diff --git a/sound/soc/sof/debug.c b/sound/soc/sof/debug.c
+index 5529e8eeca46..d2b3b99d3a20 100644
+--- a/sound/soc/sof/debug.c
++++ b/sound/soc/sof/debug.c
+@@ -463,3 +463,19 @@ void snd_sof_free_debug(struct snd_sof_dev *sdev)
+ debugfs_remove_recursive(sdev->debugfs_root);
+ }
+ EXPORT_SYMBOL_GPL(snd_sof_free_debug);
++
++void snd_sof_handle_fw_exception(struct snd_sof_dev *sdev)
++{
++ if (IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG_RETAIN_DSP_CONTEXT) ||
++ (sof_core_debug & SOF_DBG_RETAIN_CTX)) {
++ /* should we prevent DSP entering D3 ? */
++ dev_info(sdev->dev, "info: preventing DSP entering D3 state to preserve context\n");
++ pm_runtime_get_noresume(sdev->dev);
++ }
++
++ /* dump vital information to the logs */
++ snd_sof_dsp_dbg_dump(sdev, SOF_DBG_REGS | SOF_DBG_MBOX);
++ snd_sof_ipc_dump(sdev);
++ snd_sof_trace_notify_for_error(sdev);
++}
++EXPORT_SYMBOL(snd_sof_handle_fw_exception);
+diff --git a/sound/soc/sof/ipc.c b/sound/soc/sof/ipc.c
+index 086eeeab8679..3382a745ba5a 100644
+--- a/sound/soc/sof/ipc.c
++++ b/sound/soc/sof/ipc.c
+@@ -210,9 +210,7 @@ static int tx_wait_done(struct snd_sof_ipc *ipc, struct snd_sof_ipc_msg *msg,
+ if (ret == 0) {
+ dev_err(sdev->dev, "error: ipc timed out for 0x%x size %d\n",
+ hdr->cmd, hdr->size);
+- snd_sof_dsp_dbg_dump(ipc->sdev, SOF_DBG_REGS | SOF_DBG_MBOX);
+- snd_sof_ipc_dump(ipc->sdev);
+- snd_sof_trace_notify_for_error(ipc->sdev);
++ snd_sof_handle_fw_exception(ipc->sdev);
+ ret = -ETIMEDOUT;
+ } else {
+ /* copy the data returned from DSP */
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index d5b1a4f895da..348759035dd0 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -33,6 +33,7 @@
+ #define SOF_DBG_MBOX BIT(2)
+ #define SOF_DBG_TEXT BIT(3)
+ #define SOF_DBG_PCI BIT(4)
++#define SOF_DBG_RETAIN_CTX BIT(5) /* prevent DSP D3 on FW exception */
+
+ /* global debug state set by SOF_DBG_ flags */
+ extern int sof_core_debug;
+@@ -580,6 +581,7 @@ void snd_sof_get_status(struct snd_sof_dev *sdev, u32 panic_code,
+ struct sof_ipc_panic_info *panic_info,
+ void *stack, size_t stack_words);
+ int snd_sof_init_trace_ipc(struct snd_sof_dev *sdev);
++void snd_sof_handle_fw_exception(struct snd_sof_dev *sdev);
+
+ /*
+ * Platform specific ops.
+--
+2.20.1
+
+
+From 9de42cad7a0c02393de0999286b1c2cc2a3ea39f Mon Sep 17 00:00:00 2001
+From: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Date: Fri, 27 Sep 2019 15:05:32 -0500
+Subject: [PATCH 021/130] ASoC: SOF: core: check for mandatory fw_ready op
+ during SOF probe
+
+fw_ready should be a mandatory op. Make sure fw_ready ops is set
+during probe.
+
+Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20190927200538.660-8-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 8692d498d675e2e1433274c5f03b855824f3f35d)
+Bugzilla: 1772498
+---
+ sound/soc/sof/core.c | 3 ++-
+ sound/soc/sof/ipc.c | 6 ------
+ sound/soc/sof/sof-priv.h | 2 +-
+ 3 files changed, 3 insertions(+), 8 deletions(-)
+
+diff --git a/sound/soc/sof/core.c b/sound/soc/sof/core.c
+index 15167b8220ed..5998861a9002 100644
+--- a/sound/soc/sof/core.c
++++ b/sound/soc/sof/core.c
+@@ -466,7 +466,8 @@ int snd_sof_device_probe(struct device *dev, struct snd_sof_pdata *plat_data)
+ if (!sof_ops(sdev) || !sof_ops(sdev)->probe || !sof_ops(sdev)->run ||
+ !sof_ops(sdev)->block_read || !sof_ops(sdev)->block_write ||
+ !sof_ops(sdev)->send_msg || !sof_ops(sdev)->load_firmware ||
+- !sof_ops(sdev)->ipc_msg_data || !sof_ops(sdev)->ipc_pcm_params)
++ !sof_ops(sdev)->ipc_msg_data || !sof_ops(sdev)->ipc_pcm_params ||
++ !sof_ops(sdev)->fw_ready)
+ return -EINVAL;
+
+ INIT_LIST_HEAD(&sdev->pcm_list);
+diff --git a/sound/soc/sof/ipc.c b/sound/soc/sof/ipc.c
+index 3382a745ba5a..5994e1073364 100644
+--- a/sound/soc/sof/ipc.c
++++ b/sound/soc/sof/ipc.c
+@@ -794,12 +794,6 @@ struct snd_sof_ipc *snd_sof_ipc_init(struct snd_sof_dev *sdev)
+ struct snd_sof_ipc *ipc;
+ struct snd_sof_ipc_msg *msg;
+
+- /* check if mandatory ops required for ipc are defined */
+- if (!sof_ops(sdev)->fw_ready) {
+- dev_err(sdev->dev, "error: ipc mandatory ops not defined\n");
+- return NULL;
+- }
+-
+ ipc = devm_kzalloc(sdev->dev, sizeof(*ipc), GFP_KERNEL);
+ if (!ipc)
+ return NULL;
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 348759035dd0..44f789bf7fb0 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -133,7 +133,7 @@ struct snd_sof_dsp_ops {
+ * FW ready checks for ABI compatibility and creates
+ * memory windows at first boot
+ */
+- int (*fw_ready)(struct snd_sof_dev *sdev, u32 msg_id); /* optional */
++ int (*fw_ready)(struct snd_sof_dev *sdev, u32 msg_id); /* mandatory */
+
+ /* connect pcm substream to a host stream */
+ int (*pcm_open)(struct snd_sof_dev *sdev,
+--
+2.20.1
+
+
+From 63398beda87ad3d6d43cc5fc90f173540b3fd1b3 Mon Sep 17 00:00:00 2001
+From: Marcin Rajwa <marcin.rajwa@linux.intel.com>
+Date: Fri, 27 Sep 2019 15:05:33 -0500
+Subject: [PATCH 022/130] ASoC: SOF: ipc: introduce no_stream_position in
+ sof_ipc_stream_params struct
+
+The host period bytes value needs to be passed to firmware.
+However current implementation uses this field for different
+purpose - to indicate whether FW should send stream position
+to the host. Therefore this patch introduces another field
+"no_stream_position", a boolean value aimed to store information
+about position tracking. This way host_period_bytes preserves its
+original value.
+
+Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20190927200538.660-9-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit e3ebfd0ab5b4880bfb6a9f32614c2e389cc3da56)
+Bugzilla: 1772498
+---
+ include/sound/sof/stream.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/include/sound/sof/stream.h b/include/sound/sof/stream.h
+index 0b71b381b952..7facefb541b3 100644
+--- a/include/sound/sof/stream.h
++++ b/include/sound/sof/stream.h
+@@ -83,10 +83,10 @@ struct sof_ipc_stream_params {
+ uint16_t sample_valid_bytes;
+ uint16_t sample_container_bytes;
+
+- /* for notifying host period has completed - 0 means no period IRQ */
+ uint32_t host_period_bytes;
++ uint16_t no_stream_position; /**< 1 means don't send stream position */
+
+- uint32_t reserved[2];
++ uint16_t reserved[3];
+ uint16_t chmap[SOF_IPC_MAX_CHANNELS]; /**< channel map - SOF_CHMAP_ */
+ } __packed;
+
+--
+2.20.1
+
+
+From 0a637a33ef7f532235b1d972ee54cf8b603730e5 Mon Sep 17 00:00:00 2001
+From: Marcin Rajwa <marcin.rajwa@linux.intel.com>
+Date: Fri, 27 Sep 2019 15:05:34 -0500
+Subject: [PATCH 023/130] ASoC: SOF: Intel: hda: fix reset of host_period_bytes
+
+This patch prevents the reset of host period bytes
+and uses no_stream_position to record requests
+for stream position.
+
+Signed-off-by: Marcin Rajwa <marcin.rajwa@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20190927200538.660-10-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit f567ff6c76f7e9b317248fcab7a0eb3ef432dc9e)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-pcm.c | 15 ++++++++++++---
+ 1 file changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda-pcm.c b/sound/soc/sof/intel/hda-pcm.c
+index 9b730f183529..575f5f5877d8 100644
+--- a/sound/soc/sof/intel/hda-pcm.c
++++ b/sound/soc/sof/intel/hda-pcm.c
+@@ -89,6 +89,7 @@ int hda_dsp_pcm_hw_params(struct snd_sof_dev *sdev,
+ struct hdac_ext_stream *stream = stream_to_hdac_ext_stream(hstream);
+ struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata;
+ struct snd_dma_buffer *dmab;
++ struct sof_ipc_fw_version *v = &sdev->fw_ready.version;
+ int ret;
+ u32 size, rate, bits;
+
+@@ -116,9 +117,17 @@ int hda_dsp_pcm_hw_params(struct snd_sof_dev *sdev,
+ /* disable SPIB, to enable buffer wrap for stream */
+ hda_dsp_stream_spib_config(sdev, stream, HDA_DSP_SPIB_DISABLE, 0);
+
+- /* set host_period_bytes to 0 if no IPC position */
+- if (hda && hda->no_ipc_position)
+- ipc_params->host_period_bytes = 0;
++ /* update no_stream_position flag for ipc params */
++ if (hda && hda->no_ipc_position) {
++ /* For older ABIs set host_period_bytes to zero to inform
++ * FW we don't want position updates. Newer versions use
++ * no_stream_position for this purpose.
++ */
++ if (v->abi_version < SOF_ABI_VER(3, 10, 0))
++ ipc_params->host_period_bytes = 0;
++ else
++ ipc_params->no_stream_position = 1;
++ }
+
+ ipc_params->stream_tag = hstream->stream_tag;
+
+--
+2.20.1
+
+
+From 7f89237bf642c6a090557db68be76c6d67658904 Mon Sep 17 00:00:00 2001
+From: Liam Girdwood <liam.r.girdwood@linux.intel.com>
+Date: Fri, 27 Sep 2019 15:05:37 -0500
+Subject: [PATCH 024/130] ASoC: SOF: Intel: Add context data to any IPC
+ timeout.
+
+Helps with FW debug as it provides DSP IPC processing context.
+
+Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20190927200538.660-13-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 3a9e204d4e36904a464a2e53206b053a7ffc7bad)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/bdw.c | 22 +++++++++++++++++++++-
+ sound/soc/sof/intel/byt.c | 23 ++++++++++++++++++++++-
+ 2 files changed, 43 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/sof/intel/bdw.c b/sound/soc/sof/intel/bdw.c
+index 80e2826fb447..f395d0638876 100644
+--- a/sound/soc/sof/intel/bdw.c
++++ b/sound/soc/sof/intel/bdw.c
+@@ -247,7 +247,7 @@ static void bdw_dump(struct snd_sof_dev *sdev, u32 flags)
+ struct sof_ipc_dsp_oops_xtensa xoops;
+ struct sof_ipc_panic_info panic_info;
+ u32 stack[BDW_STACK_DUMP_SIZE];
+- u32 status, panic;
++ u32 status, panic, imrx, imrd;
+
+ /* now try generic SOF status messages */
+ status = snd_sof_dsp_read(sdev, BDW_DSP_BAR, SHIM_IPCD);
+@@ -256,6 +256,26 @@ static void bdw_dump(struct snd_sof_dev *sdev, u32 flags)
+ BDW_STACK_DUMP_SIZE);
+ snd_sof_get_status(sdev, status, panic, &xoops, &panic_info, stack,
+ BDW_STACK_DUMP_SIZE);
++
++ /* provide some context for firmware debug */
++ imrx = snd_sof_dsp_read(sdev, BDW_DSP_BAR, SHIM_IMRX);
++ imrd = snd_sof_dsp_read(sdev, BDW_DSP_BAR, SHIM_IMRD);
++ dev_err(sdev->dev,
++ "error: ipc host -> DSP: pending %s complete %s raw 0x%8.8x\n",
++ panic & SHIM_IPCX_BUSY ? "yes" : "no",
++ panic & SHIM_IPCX_DONE ? "yes" : "no", panic);
++ dev_err(sdev->dev,
++ "error: mask host: pending %s complete %s raw 0x%8.8x\n",
++ imrx & SHIM_IMRX_BUSY ? "yes" : "no",
++ imrx & SHIM_IMRX_DONE ? "yes" : "no", imrx);
++ dev_err(sdev->dev,
++ "error: ipc DSP -> host: pending %s complete %s raw 0x%8.8x\n",
++ status & SHIM_IPCD_BUSY ? "yes" : "no",
++ status & SHIM_IPCD_DONE ? "yes" : "no", status);
++ dev_err(sdev->dev,
++ "error: mask DSP: pending %s complete %s raw 0x%8.8x\n",
++ imrd & SHIM_IMRD_BUSY ? "yes" : "no",
++ imrd & SHIM_IMRD_DONE ? "yes" : "no", imrd);
+ }
+
+ /*
+diff --git a/sound/soc/sof/intel/byt.c b/sound/soc/sof/intel/byt.c
+index a1e514f71739..b2597ecfdc1c 100644
+--- a/sound/soc/sof/intel/byt.c
++++ b/sound/soc/sof/intel/byt.c
+@@ -145,7 +145,7 @@ static void byt_dump(struct snd_sof_dev *sdev, u32 flags)
+ struct sof_ipc_dsp_oops_xtensa xoops;
+ struct sof_ipc_panic_info panic_info;
+ u32 stack[BYT_STACK_DUMP_SIZE];
+- u32 status, panic;
++ u32 status, panic, imrd, imrx;
+
+ /* now try generic SOF status messages */
+ status = snd_sof_dsp_read(sdev, BYT_DSP_BAR, SHIM_IPCD);
+@@ -154,6 +154,27 @@ static void byt_dump(struct snd_sof_dev *sdev, u32 flags)
+ BYT_STACK_DUMP_SIZE);
+ snd_sof_get_status(sdev, status, panic, &xoops, &panic_info, stack,
+ BYT_STACK_DUMP_SIZE);
++
++ /* provide some context for firmware debug */
++ imrx = snd_sof_dsp_read(sdev, BYT_DSP_BAR, SHIM_IMRX);
++ imrd = snd_sof_dsp_read(sdev, BYT_DSP_BAR, SHIM_IMRD);
++ dev_err(sdev->dev,
++ "error: ipc host -> DSP: pending %s complete %s raw 0x%8.8x\n",
++ panic & SHIM_IPCX_BUSY ? "yes" : "no",
++ panic & SHIM_IPCX_DONE ? "yes" : "no", panic);
++ dev_err(sdev->dev,
++ "error: mask host: pending %s complete %s raw 0x%8.8x\n",
++ imrx & SHIM_IMRX_BUSY ? "yes" : "no",
++ imrx & SHIM_IMRX_DONE ? "yes" : "no", imrx);
++ dev_err(sdev->dev,
++ "error: ipc DSP -> host: pending %s complete %s raw 0x%8.8x\n",
++ status & SHIM_IPCD_BUSY ? "yes" : "no",
++ status & SHIM_IPCD_DONE ? "yes" : "no", status);
++ dev_err(sdev->dev,
++ "error: mask DSP: pending %s complete %s raw 0x%8.8x\n",
++ imrd & SHIM_IMRD_BUSY ? "yes" : "no",
++ imrd & SHIM_IMRD_DONE ? "yes" : "no", imrd);
++
+ }
+
+ /*
+--
+2.20.1
+
+
+From 5c2784a52e77957f4c7a677296369d1ef09413db Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 8 Oct 2019 11:44:35 -0500
+Subject: [PATCH 025/130] ASoC: SOF: enable sync_write in hdac_bus
+
+Align SOF HDA implementation with snd-hda-intel driver and enable
+sync_write flag for all supported Intel platforms in SOF. When set,
+a sync is issued after each verb write.
+
+Sync after write has helped to overcome intermittent delays in
+system resume flow on Intel Coffee Lake systems, and most recently
+probe errors related to the HDMI codec on Ice Lake systems.
+
+Matches the snd-hda-intel driver change done in commit 2756d9143aa5
+("ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips").
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191008164443.1358-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit f3416e7144f5d4ba0fc5dcef6ebfff891266c46a)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c
+index 06e84679087b..5a5163eef2ef 100644
+--- a/sound/soc/sof/intel/hda.c
++++ b/sound/soc/sof/intel/hda.c
+@@ -268,6 +268,7 @@ static int hda_init(struct snd_sof_dev *sdev)
+
+ bus->use_posbuf = 1;
+ bus->bdl_pos_adj = 0;
++ bus->sync_write = 1;
+
+ mutex_init(&hbus->prepare_mutex);
+ hbus->pci = pci;
+--
+2.20.1
+
+
+From e1cc39fb37b304910435e08907d9bd3f29636b89 Mon Sep 17 00:00:00 2001
+From: Jaska Uimonen <jaska.uimonen@linux.intel.com>
+Date: Tue, 8 Oct 2019 11:44:41 -0500
+Subject: [PATCH 026/130] ASoC: SOF: enable dual control for pga
+
+Currently sof pga element supports only 1 kcontrol and you can't create
+for example a mixer element with combined volume slider and mute switch.
+So enable sof pga to have more than 1 kcontrol associated with it. Also
+check for possible NULL tlv pointer as switch element might not have it.
+
+Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191008164443.1358-8-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit a68c6b6cc77b841dc37c17a5d9a7074e26801af5)
+Bugzilla: 1772498
+---
+ sound/soc/sof/topology.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index 4452594c2e17..32a70ffc149d 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -1581,7 +1581,7 @@ static int sof_widget_load_pga(struct snd_soc_component *scomp, int index,
+ if (!volume)
+ return -ENOMEM;
+
+- if (le32_to_cpu(tw->num_kcontrols) != 1) {
++ if (!le32_to_cpu(tw->num_kcontrols)) {
+ dev_err(sdev->dev, "error: invalid kcontrol count %d for volume\n",
+ tw->num_kcontrols);
+ ret = -EINVAL;
+@@ -1618,7 +1618,8 @@ static int sof_widget_load_pga(struct snd_soc_component *scomp, int index,
+ swidget->private = volume;
+
+ list_for_each_entry(scontrol, &sdev->kcontrol_list, list) {
+- if (scontrol->comp_id == swidget->comp_id) {
++ if (scontrol->comp_id == swidget->comp_id &&
++ scontrol->volume_table) {
+ min_step = scontrol->min_volume_step;
+ max_step = scontrol->max_volume_step;
+ volume->min_value = scontrol->volume_table[min_step];
+--
+2.20.1
+
+
+From 7e68f35584ab3b3242a91431037bc7ed5df568dd Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 8 Oct 2019 11:44:36 -0500
+Subject: [PATCH 027/130] Revert "ASoC: SOF: Force polling mode on CFL and CNL"
+
+This reverts commit 64ca9d9fcb3e3c86b1417e3d17a90b43dd660f81.
+
+The workaround is no longer needed after configuring HDAC
+bus with sync_write=1.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191008164443.1358-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 902fd492d5ea2c02666ddadc1da977ca94e6b52c)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda.c | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c
+index 5a5163eef2ef..103f4273c4d3 100644
+--- a/sound/soc/sof/intel/hda.c
++++ b/sound/soc/sof/intel/hda.c
+@@ -32,9 +32,6 @@
+ /* platform specific devices */
+ #include "shim.h"
+
+-#define IS_CFL(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0xa348)
+-#define IS_CNL(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0x9dc8)
+-
+ #define EXCEPT_MAX_HDR_SIZE 0x400
+
+ /*
+@@ -262,10 +259,6 @@ static int hda_init(struct snd_sof_dev *sdev)
+ /* HDA bus init */
+ sof_hda_bus_init(bus, &pci->dev);
+
+- /* Workaround for a communication error on CFL (bko#199007) and CNL */
+- if (IS_CFL(pci) || IS_CNL(pci))
+- bus->polling_mode = 1;
+-
+ bus->use_posbuf = 1;
+ bus->bdl_pos_adj = 0;
+ bus->sync_write = 1;
+--
+2.20.1
+
+
+From beea344394167f3c1f55422f06646a4faa72e697 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Tue, 8 Oct 2019 11:44:37 -0500
+Subject: [PATCH 028/130] ASoC: SOF: acpi: add debug module param
+
+Add debug parameter for snd-sof-acpi.
+
+One of the usages for this debug parameter to disable pm_runtime,
+which can be useful for platform bringup, or keep the parent device
+active while enabling pm_runtime for child devices (e.g. with
+SoundWire or MFD). This can also be useful to measure suspend-resume
+latencies or child devices.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191008164443.1358-4-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 70b0c75ae1e3d35f829b5fe7ae5692efae63ca71)
+Bugzilla: 1772498
+---
+ sound/soc/sof/sof-acpi-dev.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/sof/sof-acpi-dev.c b/sound/soc/sof/sof-acpi-dev.c
+index ea7b8b895412..df318f50dd0b 100644
+--- a/sound/soc/sof/sof-acpi-dev.c
++++ b/sound/soc/sof/sof-acpi-dev.c
+@@ -29,6 +29,12 @@ static char *tplg_path;
+ module_param(tplg_path, charp, 0444);
+ MODULE_PARM_DESC(tplg_path, "alternate path for SOF topology.");
+
++static int sof_acpi_debug;
++module_param_named(sof_acpi_debug, sof_acpi_debug, int, 0444);
++MODULE_PARM_DESC(sof_acpi_debug, "SOF ACPI debug options (0x0 all off)");
++
++#define SOF_ACPI_DISABLE_PM_RUNTIME BIT(0)
++
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_HASWELL)
+ static const struct sof_dev_desc sof_acpi_haswell_desc = {
+ .machines = snd_soc_acpi_intel_haswell_machines,
+@@ -121,6 +127,9 @@ static const struct dev_pm_ops sof_acpi_pm = {
+
+ static void sof_acpi_probe_complete(struct device *dev)
+ {
++ if (sof_acpi_debug & SOF_ACPI_DISABLE_PM_RUNTIME)
++ return;
++
+ /* allow runtime_pm */
+ pm_runtime_set_autosuspend_delay(dev, SND_SOF_SUSPEND_DELAY_MS);
+ pm_runtime_use_autosuspend(dev);
+@@ -221,7 +230,8 @@ static int sof_acpi_probe(struct platform_device *pdev)
+
+ static int sof_acpi_remove(struct platform_device *pdev)
+ {
+- pm_runtime_disable(&pdev->dev);
++ if (!(sof_acpi_debug & SOF_ACPI_DISABLE_PM_RUNTIME))
++ pm_runtime_disable(&pdev->dev);
+
+ /* call sof helper for DSP hardware remove */
+ snd_sof_device_remove(&pdev->dev);
+--
+2.20.1
+
+
+From 34cbc5daae759efa7dd448def5beacd283386cc7 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Tue, 8 Oct 2019 11:44:38 -0500
+Subject: [PATCH 029/130] ASoC: SOF: pci: add debug module param
+
+Add debug parameter for snd-sof-pci.
+
+One of the usages for this debug parameter to disable pm_runtime,
+which can be useful for platform bringup, or keep the parent device
+active while enabling pm_runtime for child devices (e.g. with
+SoundWire or MFD). This can also be useful to measure suspend-resume
+latencies or child devices.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191008164443.1358-5-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 8b160dc2a92c83a566b0596c79febb5933f9a6b5)
+Bugzilla: 1772498
+---
+ sound/soc/sof/sof-pci-dev.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/sof/sof-pci-dev.c b/sound/soc/sof/sof-pci-dev.c
+index 3a9e0e2a150d..be5a8da504c5 100644
+--- a/sound/soc/sof/sof-pci-dev.c
++++ b/sound/soc/sof/sof-pci-dev.c
+@@ -30,6 +30,12 @@ static char *tplg_path;
+ module_param(tplg_path, charp, 0444);
+ MODULE_PARM_DESC(tplg_path, "alternate path for SOF topology.");
+
++static int sof_pci_debug;
++module_param_named(sof_pci_debug, sof_pci_debug, int, 0444);
++MODULE_PARM_DESC(sof_pci_debug, "SOF PCI debug options (0x0 all off)");
++
++#define SOF_PCI_DISABLE_PM_RUNTIME BIT(0)
++
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_APOLLOLAKE)
+ static const struct sof_dev_desc bxt_desc = {
+ .machines = snd_soc_acpi_intel_bxt_machines,
+@@ -250,6 +256,9 @@ static void sof_pci_probe_complete(struct device *dev)
+ {
+ dev_dbg(dev, "Completing SOF PCI probe");
+
++ if (sof_pci_debug & SOF_PCI_DISABLE_PM_RUNTIME)
++ return;
++
+ /* allow runtime_pm */
+ pm_runtime_set_autosuspend_delay(dev, SND_SOF_SUSPEND_DELAY_MS);
+ pm_runtime_use_autosuspend(dev);
+@@ -376,7 +385,8 @@ static void sof_pci_remove(struct pci_dev *pci)
+ snd_sof_device_remove(&pci->dev);
+
+ /* follow recommendation in pci-driver.c to increment usage counter */
+- pm_runtime_get_noresume(&pci->dev);
++ if (!(sof_pci_debug & SOF_PCI_DISABLE_PM_RUNTIME))
++ pm_runtime_get_noresume(&pci->dev);
+
+ /* release pci regions and disable device */
+ pci_release_regions(pci);
+--
+2.20.1
+
+
+From 39844b2b23b8746263988926996db159a3ebbea7 Mon Sep 17 00:00:00 2001
+From: Jaska Uimonen <jaska.uimonen@linux.intel.com>
+Date: Tue, 8 Oct 2019 11:44:43 -0500
+Subject: [PATCH 030/130] ASoC: SOF: acpi led support for switch controls
+
+Currently sof doesn't support acpi leds with mute switches. So implement
+acpi leds following quite shamelessly existing HDA implementation by
+Takashi Iwai.
+
+Mute leds can be enabled in topology by adding led and direction token
+in switch control private data.
+
+Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191008164443.1358-10-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 5d43001ae43606dc525f55c482c545afba01bb55)
+Bugzilla: 1772498
+---
+ include/uapi/sound/sof/tokens.h | 4 ++++
+ sound/soc/sof/control.c | 32 ++++++++++++++++++++++++++++++++
+ sound/soc/sof/sof-priv.h | 9 +++++++++
+ sound/soc/sof/topology.c | 13 +++++++++++++
+ 4 files changed, 58 insertions(+)
+
+diff --git a/include/uapi/sound/sof/tokens.h b/include/uapi/sound/sof/tokens.h
+index 8f996857fb24..28ef01a67765 100644
+--- a/include/uapi/sound/sof/tokens.h
++++ b/include/uapi/sound/sof/tokens.h
+@@ -114,4 +114,8 @@
+ #define SOF_TKN_IMX_ESAI_FIRST_TOKEN 1100
+ /* TODO: Add ESAI tokens */
+
++/* Led control for mute switches */
++#define SOF_TKN_MUTE_LED_USE 1300
++#define SOF_TKN_MUTE_LED_DIRECTION 1301
++
+ #endif
+diff --git a/sound/soc/sof/control.c b/sound/soc/sof/control.c
+index 2b8711eda362..b73d4587c5da 100644
+--- a/sound/soc/sof/control.c
++++ b/sound/soc/sof/control.c
+@@ -11,8 +11,37 @@
+ /* Mixer Controls */
+
+ #include <linux/pm_runtime.h>
++#include <linux/leds.h>
+ #include "sof-priv.h"
+
++static void update_mute_led(struct snd_sof_control *scontrol,
++ struct snd_kcontrol *kcontrol,
++ struct snd_ctl_elem_value *ucontrol)
++{
++ unsigned int temp = 0;
++ unsigned int mask;
++ int i;
++
++ mask = 1U << snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
++
++ for (i = 0; i < scontrol->num_channels; i++) {
++ if (ucontrol->value.integer.value[i]) {
++ temp |= mask;
++ break;
++ }
++ }
++
++ if (temp == scontrol->led_ctl.led_value)
++ return;
++
++ scontrol->led_ctl.led_value = temp;
++
++ if (!scontrol->led_ctl.direction)
++ ledtrig_audio_set(LED_AUDIO_MUTE, temp ? LED_OFF : LED_ON);
++ else
++ ledtrig_audio_set(LED_AUDIO_MICMUTE, temp ? LED_OFF : LED_ON);
++}
++
+ static inline u32 mixer_to_ipc(unsigned int value, u32 *volume_map, int size)
+ {
+ if (value >= size)
+@@ -118,6 +147,9 @@ int snd_sof_switch_put(struct snd_kcontrol *kcontrol,
+ cdata->chanv[i].value = value;
+ }
+
++ if (scontrol->led_ctl.use_led)
++ update_mute_led(scontrol, kcontrol, ucontrol);
++
+ /* notify DSP of mixer updates */
+ if (pm_runtime_active(sdev->dev))
+ snd_sof_ipc_set_get_comp_data(sdev->ipc, scontrol,
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 44f789bf7fb0..5a11a8517fa5 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -15,6 +15,7 @@
+
+ #include <sound/hdaudio.h>
+ #include <sound/soc.h>
++#include <sound/control.h>
+
+ #include <sound/sof.h>
+ #include <sound/sof/stream.h> /* needs to be included before control.h */
+@@ -310,6 +311,12 @@ struct snd_sof_pcm {
+ bool prepared[2]; /* PCM_PARAMS set successfully */
+ };
+
++struct snd_sof_led_control {
++ unsigned int use_led;
++ unsigned int direction;
++ unsigned int led_value;
++};
++
+ /* ALSA SOF Kcontrol device */
+ struct snd_sof_control {
+ struct snd_sof_dev *sdev;
+@@ -324,6 +331,8 @@ struct snd_sof_control {
+ u32 *volume_table; /* volume table computed from tlv data*/
+
+ struct list_head list; /* list in sdev control list */
++
++ struct snd_sof_led_control led_ctl;
+ };
+
+ /* ASoC SOF DAPM widget */
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index 32a70ffc149d..e150f53d2124 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -494,6 +494,11 @@ static int sof_control_load_volume(struct snd_soc_component *scomp,
+ }
+
+ out:
++ /* set up possible led control from mixer private data */
++ ret = sof_parse_tokens(scomp, &scontrol->led_ctl, led_tokens,
++ ARRAY_SIZE(led_tokens), mc->priv.array,
++ le32_to_cpu(mc->priv.size));
++
+ dev_dbg(sdev->dev, "tplg: load kcontrol index %d chans %d\n",
+ scontrol->comp_id, scontrol->num_channels);
+
+@@ -840,6 +845,14 @@ static const struct sof_topology_token dmic_pdm_tokens[] = {
+ static const struct sof_topology_token hda_tokens[] = {
+ };
+
++/* Leds */
++static const struct sof_topology_token led_tokens[] = {
++ {SOF_TKN_MUTE_LED_USE, SND_SOC_TPLG_TUPLE_TYPE_WORD, get_token_u32,
++ offsetof(struct snd_sof_led_control, use_led), 0},
++ {SOF_TKN_MUTE_LED_DIRECTION, SND_SOC_TPLG_TUPLE_TYPE_WORD,
++ get_token_u32, offsetof(struct snd_sof_led_control, direction), 0},
++};
++
+ static void sof_parse_uuid_tokens(struct snd_soc_component *scomp,
+ void *object,
+ const struct sof_topology_token *tokens,
+--
+2.20.1
+
+
+From 151d91920fd3e9626541fe9b3d2f6af16f765f8c Mon Sep 17 00:00:00 2001
+From: Daniel Baluta <daniel.baluta@nxp.com>
+Date: Tue, 8 Oct 2019 11:44:39 -0500
+Subject: [PATCH 031/130] ASoC: SOF: imx: Describe ESAI parameters to be sent
+ to DSP
+
+Introduce sof_ipc_dai_esai_params to keep information that
+we get from topology and we send to DSP FW.
+
+Also bump the ABI minor to reflect the changes on DSP FW.
+
+Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191008164443.1358-6-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit b4be427683cf6debda331a5d6a4af34885851d19)
+Bugzilla: 1772498
+---
+ include/sound/sof/dai-imx.h | 34 +++++++++++++++++++++++++++++++++
+ include/sound/sof/dai.h | 2 ++
+ include/uapi/sound/sof/abi.h | 2 +-
+ include/uapi/sound/sof/tokens.h | 3 +--
+ 4 files changed, 38 insertions(+), 3 deletions(-)
+ create mode 100644 include/sound/sof/dai-imx.h
+
+diff --git a/include/sound/sof/dai-imx.h b/include/sound/sof/dai-imx.h
+new file mode 100644
+index 000000000000..e02fb0b0fae1
+--- /dev/null
++++ b/include/sound/sof/dai-imx.h
+@@ -0,0 +1,34 @@
++/* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */
++/*
++ * Copyright 2019 NXP
++ *
++ * Author: Daniel Baluta <daniel.baluta@nxp.com>
++ */
++
++#ifndef __INCLUDE_SOUND_SOF_DAI_IMX_H__
++#define __INCLUDE_SOUND_SOF_DAI_IMX_H__
++
++#include <sound/sof/header.h>
++
++/* ESAI Configuration Request - SOF_IPC_DAI_ESAI_CONFIG */
++struct sof_ipc_dai_esai_params {
++ struct sof_ipc_hdr hdr;
++
++ /* MCLK */
++ uint16_t reserved1;
++ uint16_t mclk_id;
++ uint32_t mclk_direction;
++
++ uint32_t mclk_rate; /* MCLK frequency in Hz */
++ uint32_t fsync_rate; /* FSYNC frequency in Hz */
++ uint32_t bclk_rate; /* BCLK frequency in Hz */
++
++ /* TDM */
++ uint32_t tdm_slots;
++ uint32_t rx_slots;
++ uint32_t tx_slots;
++ uint16_t tdm_slot_width;
++ uint16_t reserved2; /* alignment */
++} __packed;
++
++#endif
+diff --git a/include/sound/sof/dai.h b/include/sound/sof/dai.h
+index 0f1235022146..c229565767e5 100644
+--- a/include/sound/sof/dai.h
++++ b/include/sound/sof/dai.h
+@@ -11,6 +11,7 @@
+
+ #include <sound/sof/header.h>
+ #include <sound/sof/dai-intel.h>
++#include <sound/sof/dai-imx.h>
+
+ /*
+ * DAI Configuration.
+@@ -73,6 +74,7 @@ struct sof_ipc_dai_config {
+ struct sof_ipc_dai_dmic_params dmic;
+ struct sof_ipc_dai_hda_params hda;
+ struct sof_ipc_dai_alh_params alh;
++ struct sof_ipc_dai_esai_params esai;
+ };
+ } __packed;
+
+diff --git a/include/uapi/sound/sof/abi.h b/include/uapi/sound/sof/abi.h
+index a0fe0d4c4b66..ebfdc20ca081 100644
+--- a/include/uapi/sound/sof/abi.h
++++ b/include/uapi/sound/sof/abi.h
+@@ -26,7 +26,7 @@
+
+ /* SOF ABI version major, minor and patch numbers */
+ #define SOF_ABI_MAJOR 3
+-#define SOF_ABI_MINOR 10
++#define SOF_ABI_MINOR 11
+ #define SOF_ABI_PATCH 0
+
+ /* SOF ABI version number. Format within 32bit word is MMmmmppp */
+diff --git a/include/uapi/sound/sof/tokens.h b/include/uapi/sound/sof/tokens.h
+index 28ef01a67765..d65406f34361 100644
+--- a/include/uapi/sound/sof/tokens.h
++++ b/include/uapi/sound/sof/tokens.h
+@@ -111,8 +111,7 @@
+ /* TODO: Add SAI tokens */
+
+ /* ESAI */
+-#define SOF_TKN_IMX_ESAI_FIRST_TOKEN 1100
+-/* TODO: Add ESAI tokens */
++#define SOF_TKN_IMX_ESAI_MCLK_ID 1100
+
+ /* Led control for mute switches */
+ #define SOF_TKN_MUTE_LED_USE 1300
+--
+2.20.1
+
+
+From 631932d09b78a4b8bbc939342d52631749b3e790 Mon Sep 17 00:00:00 2001
+From: Daniel Baluta <daniel.baluta@nxp.com>
+Date: Tue, 8 Oct 2019 11:44:40 -0500
+Subject: [PATCH 032/130] ASoC: SOF: imx: Read ESAI parameters and send them to
+ DSP
+
+ESAI parameters are read for topology file, packed into
+sof_ipc_dai_esai_parms struct and then sent to DSP.
+
+Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191008164443.1358-7-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit a4eff5f86c9c5e7d07d880bd86ce8faad19d7063)
+Bugzilla: 1772498
+---
+ sound/soc/sof/pcm.c | 8 +++++
+ sound/soc/sof/topology.c | 69 ++++++++++++++++++++++++++++++++++++++--
+ 2 files changed, 75 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/sof/pcm.c b/sound/soc/sof/pcm.c
+index 2b876d497447..b0f4217433e5 100644
+--- a/sound/soc/sof/pcm.c
++++ b/sound/soc/sof/pcm.c
+@@ -691,6 +691,14 @@ static int sof_pcm_dai_link_fixup(struct snd_soc_pcm_runtime *rtd,
+ case SOF_DAI_INTEL_ALH:
+ /* do nothing for ALH dai_link */
+ break;
++ case SOF_DAI_IMX_ESAI:
++ channels->min = dai->dai_config->esai.tdm_slots;
++ channels->max = dai->dai_config->esai.tdm_slots;
++
++ dev_dbg(sdev->dev,
++ "channels_min: %d channels_max: %d\n",
++ channels->min, channels->max);
++ break;
+ default:
+ dev_err(sdev->dev, "error: invalid DAI type %d\n",
+ dai->dai_config->type);
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index e150f53d2124..0adad3246652 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -804,6 +804,13 @@ static const struct sof_topology_token dmic_tokens[] = {
+
+ };
+
++/* ESAI */
++static const struct sof_topology_token esai_tokens[] = {
++ {SOF_TKN_IMX_ESAI_MCLK_ID,
++ SND_SOC_TPLG_TUPLE_TYPE_SHORT, get_token_u16,
++ offsetof(struct sof_ipc_dai_esai_params, mclk_id), 0},
++};
++
+ /*
+ * DMIC PDM Tokens
+ * SOF_TKN_INTEL_DMIC_PDM_CTRL_ID should be the first token
+@@ -2550,8 +2557,66 @@ static int sof_link_esai_load(struct snd_soc_component *scomp, int index,
+ struct snd_soc_tplg_hw_config *hw_config,
+ struct sof_ipc_dai_config *config)
+ {
+- /*TODO: Add implementation */
+- return 0;
++ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
++ struct snd_soc_tplg_private *private = &cfg->priv;
++ struct sof_ipc_reply reply;
++ u32 size = sizeof(*config);
++ int ret;
++
++ /* handle master/slave and inverted clocks */
++ sof_dai_set_format(hw_config, config);
++
++ /* init IPC */
++ memset(&config->esai, 0, sizeof(struct sof_ipc_dai_esai_params));
++ config->hdr.size = size;
++
++ ret = sof_parse_tokens(scomp, &config->esai, esai_tokens,
++ ARRAY_SIZE(esai_tokens), private->array,
++ le32_to_cpu(private->size));
++ if (ret != 0) {
++ dev_err(sdev->dev, "error: parse esai tokens failed %d\n",
++ le32_to_cpu(private->size));
++ return ret;
++ }
++
++ config->esai.mclk_rate = le32_to_cpu(hw_config->mclk_rate);
++ config->esai.bclk_rate = le32_to_cpu(hw_config->bclk_rate);
++ config->esai.fsync_rate = le32_to_cpu(hw_config->fsync_rate);
++ config->esai.mclk_direction = hw_config->mclk_direction;
++ config->esai.tdm_slots = le32_to_cpu(hw_config->tdm_slots);
++ config->esai.tdm_slot_width = le32_to_cpu(hw_config->tdm_slot_width);
++ config->esai.rx_slots = le32_to_cpu(hw_config->rx_slots);
++ config->esai.tx_slots = le32_to_cpu(hw_config->tx_slots);
++
++ dev_info(sdev->dev,
++ "tplg: config ESAI%d fmt 0x%x mclk %d width %d slots %d mclk id %d\n",
++ config->dai_index, config->format,
++ config->esai.mclk_rate, config->esai.tdm_slot_width,
++ config->esai.tdm_slots, config->esai.mclk_id);
++
++ if (config->esai.tdm_slots < 1 || config->esai.tdm_slots > 8) {
++ dev_err(sdev->dev, "error: invalid channel count for ESAI%d\n",
++ config->dai_index);
++ return -EINVAL;
++ }
++
++ /* send message to DSP */
++ ret = sof_ipc_tx_message(sdev->ipc,
++ config->hdr.cmd, config, size, &reply,
++ sizeof(reply));
++ if (ret < 0) {
++ dev_err(sdev->dev, "error: failed to set DAI config for ESAI%d\n",
++ config->dai_index);
++ return ret;
++ }
++
++ /* set config for all DAI's with name matching the link name */
++ ret = sof_set_dai_config(sdev, size, link, config);
++ if (ret < 0)
++ dev_err(sdev->dev, "error: failed to save DAI config for ESAI%d\n",
++ config->dai_index);
++
++ return ret;
+ }
+
+ static int sof_link_dmic_load(struct snd_soc_component *scomp, int index,
+--
+2.20.1
+
+
+From 78da07e36b7ae563f64def77a72dc02cf010cd8f Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 11 Oct 2019 11:43:09 -0500
+Subject: [PATCH 033/130] ASoC: SOF: Intel: byt: fix operator precedence
+ warnings
+
+Address cppcheck warnings
+
+sound/soc/sof/intel/byt.c:163:26: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ panic & SHIM_IPCX_BUSY ? "yes" : "no",
+ ^
+
+sound/soc/sof/intel/byt.c:164:26: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ panic & SHIM_IPCX_DONE ? "yes" : "no", panic);
+ ^
+
+sound/soc/sof/intel/byt.c:167:25: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ imrx & SHIM_IMRX_BUSY ? "yes" : "no",
+ ^
+
+sound/soc/sof/intel/byt.c:168:25: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ imrx & SHIM_IMRX_DONE ? "yes" : "no", imrx);
+ ^
+
+sound/soc/sof/intel/byt.c:171:27: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ status & SHIM_IPCD_BUSY ? "yes" : "no",
+ ^
+
+sound/soc/sof/intel/byt.c:172:27: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ status & SHIM_IPCD_DONE ? "yes" : "no", status);
+ ^
+
+sound/soc/sof/intel/byt.c:175:25: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ imrd & SHIM_IMRD_BUSY ? "yes" : "no",
+ ^
+
+sound/soc/sof/intel/byt.c:176:25: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ imrd & SHIM_IMRD_DONE ? "yes" : "no", imrd);
+ ^
+
+Fixes: 3a9e204d4e369 ("ASoC: SOF: Intel: Add context data to any IPC timeout.")
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191011164312.7988-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit f9f618e7128e834db3f54d290a926c4a71104e02)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/byt.c | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/sound/soc/sof/intel/byt.c b/sound/soc/sof/intel/byt.c
+index b2597ecfdc1c..07e5efe4945c 100644
+--- a/sound/soc/sof/intel/byt.c
++++ b/sound/soc/sof/intel/byt.c
+@@ -160,20 +160,20 @@ static void byt_dump(struct snd_sof_dev *sdev, u32 flags)
+ imrd = snd_sof_dsp_read(sdev, BYT_DSP_BAR, SHIM_IMRD);
+ dev_err(sdev->dev,
+ "error: ipc host -> DSP: pending %s complete %s raw 0x%8.8x\n",
+- panic & SHIM_IPCX_BUSY ? "yes" : "no",
+- panic & SHIM_IPCX_DONE ? "yes" : "no", panic);
++ (panic & SHIM_IPCX_BUSY) ? "yes" : "no",
++ (panic & SHIM_IPCX_DONE) ? "yes" : "no", panic);
+ dev_err(sdev->dev,
+ "error: mask host: pending %s complete %s raw 0x%8.8x\n",
+- imrx & SHIM_IMRX_BUSY ? "yes" : "no",
+- imrx & SHIM_IMRX_DONE ? "yes" : "no", imrx);
++ (imrx & SHIM_IMRX_BUSY) ? "yes" : "no",
++ (imrx & SHIM_IMRX_DONE) ? "yes" : "no", imrx);
+ dev_err(sdev->dev,
+ "error: ipc DSP -> host: pending %s complete %s raw 0x%8.8x\n",
+- status & SHIM_IPCD_BUSY ? "yes" : "no",
+- status & SHIM_IPCD_DONE ? "yes" : "no", status);
++ (status & SHIM_IPCD_BUSY) ? "yes" : "no",
++ (status & SHIM_IPCD_DONE) ? "yes" : "no", status);
+ dev_err(sdev->dev,
+ "error: mask DSP: pending %s complete %s raw 0x%8.8x\n",
+- imrd & SHIM_IMRD_BUSY ? "yes" : "no",
+- imrd & SHIM_IMRD_DONE ? "yes" : "no", imrd);
++ (imrd & SHIM_IMRD_BUSY) ? "yes" : "no",
++ (imrd & SHIM_IMRD_DONE) ? "yes" : "no", imrd);
+
+ }
+
+--
+2.20.1
+
+
+From c1b2c6fecd44be2baa21f763e26a2a98d06708e6 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 11 Oct 2019 11:43:10 -0500
+Subject: [PATCH 034/130] ASoC: SOF: Intel: bdw: fix operator precedence
+ warnings
+
+Address cppcheck warnings
+
+sound/soc/sof/intel/bdw.c:265:26: style: Clarify calculation precedence
+for '&' and '?'. [clarifyCalculation]
+ panic & SHIM_IPCX_BUSY ? "yes" : "no",
+ ^
+
+sound/soc/sof/intel/bdw.c:266:26: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ panic & SHIM_IPCX_DONE ? "yes" : "no", panic);
+ ^
+
+sound/soc/sof/intel/bdw.c:269:25: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ imrx & SHIM_IMRX_BUSY ? "yes" : "no",
+ ^
+
+sound/soc/sof/intel/bdw.c:270:25: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ imrx & SHIM_IMRX_DONE ? "yes" : "no", imrx);
+ ^
+
+sound/soc/sof/intel/bdw.c:273:27: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ status & SHIM_IPCD_BUSY ? "yes" : "no",
+ ^
+
+sound/soc/sof/intel/bdw.c:274:27: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ status & SHIM_IPCD_DONE ? "yes" : "no", status);
+ ^
+
+sound/soc/sof/intel/bdw.c:277:25: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ imrd & SHIM_IMRD_BUSY ? "yes" : "no",
+ ^
+
+sound/soc/sof/intel/bdw.c:278:25: style: Clarify calculation
+precedence for '&' and '?'. [clarifyCalculation]
+ imrd & SHIM_IMRD_DONE ? "yes" : "no", imrd);
+ ^
+
+Fixes: 3a9e204d4e369 ("ASoC: SOF: Intel: Add context data to any IPC timeout.")
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191011164312.7988-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 7ad03a2c848f6fb0a8dea656c9c161929696878e)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/bdw.c | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/sound/soc/sof/intel/bdw.c b/sound/soc/sof/intel/bdw.c
+index f395d0638876..bf961a8798a7 100644
+--- a/sound/soc/sof/intel/bdw.c
++++ b/sound/soc/sof/intel/bdw.c
+@@ -262,20 +262,20 @@ static void bdw_dump(struct snd_sof_dev *sdev, u32 flags)
+ imrd = snd_sof_dsp_read(sdev, BDW_DSP_BAR, SHIM_IMRD);
+ dev_err(sdev->dev,
+ "error: ipc host -> DSP: pending %s complete %s raw 0x%8.8x\n",
+- panic & SHIM_IPCX_BUSY ? "yes" : "no",
+- panic & SHIM_IPCX_DONE ? "yes" : "no", panic);
++ (panic & SHIM_IPCX_BUSY) ? "yes" : "no",
++ (panic & SHIM_IPCX_DONE) ? "yes" : "no", panic);
+ dev_err(sdev->dev,
+ "error: mask host: pending %s complete %s raw 0x%8.8x\n",
+- imrx & SHIM_IMRX_BUSY ? "yes" : "no",
+- imrx & SHIM_IMRX_DONE ? "yes" : "no", imrx);
++ (imrx & SHIM_IMRX_BUSY) ? "yes" : "no",
++ (imrx & SHIM_IMRX_DONE) ? "yes" : "no", imrx);
+ dev_err(sdev->dev,
+ "error: ipc DSP -> host: pending %s complete %s raw 0x%8.8x\n",
+- status & SHIM_IPCD_BUSY ? "yes" : "no",
+- status & SHIM_IPCD_DONE ? "yes" : "no", status);
++ (status & SHIM_IPCD_BUSY) ? "yes" : "no",
++ (status & SHIM_IPCD_DONE) ? "yes" : "no", status);
+ dev_err(sdev->dev,
+ "error: mask DSP: pending %s complete %s raw 0x%8.8x\n",
+- imrd & SHIM_IMRD_BUSY ? "yes" : "no",
+- imrd & SHIM_IMRD_DONE ? "yes" : "no", imrd);
++ (imrd & SHIM_IMRD_BUSY) ? "yes" : "no",
++ (imrd & SHIM_IMRD_DONE) ? "yes" : "no", imrd);
+ }
+
+ /*
+--
+2.20.1
+
+
+From 2a49b432e13f3820663d2a6210b1782ee17b0348 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 11 Oct 2019 11:43:11 -0500
+Subject: [PATCH 035/130] ASoC: SOF: topology: remove always-true redundant
+ test
+
+Address cppcheck warning:
+
+sound/soc/sof/topology.c:2322:6: style: Condition 'pcm' is always true
+[knownConditionTrueFalse]
+ if (pcm) {
+ ^
+
+sound/soc/sof/topology.c:2311:6: note: Assuming that condition '!pcm'
+is not redundant
+ if (!pcm)
+ ^
+
+sound/soc/sof/topology.c:2322:6: note: Condition 'pcm' is always true
+ if (pcm) {
+ ^
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191011164312.7988-4-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 494e8f65da24d550a5e7c6a85b9433ffb181705c)
+Bugzilla: 1772498
+---
+ sound/soc/sof/topology.c | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index 0adad3246652..b451e8df77d3 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -2309,10 +2309,9 @@ static int sof_dai_load(struct snd_soc_component *scomp, int index,
+ spcm->stream[SNDRV_PCM_STREAM_PLAYBACK].comp_id = COMP_ID_UNASSIGNED;
+ spcm->stream[SNDRV_PCM_STREAM_CAPTURE].comp_id = COMP_ID_UNASSIGNED;
+
+- if (pcm) {
+- spcm->pcm = *pcm;
+- dev_dbg(sdev->dev, "tplg: load pcm %s\n", pcm->dai_name);
+- }
++ spcm->pcm = *pcm;
++ dev_dbg(sdev->dev, "tplg: load pcm %s\n", pcm->dai_name);
++
+ dai_drv->dobj.private = spcm;
+ list_add(&spcm->list, &sdev->pcm_list);
+
+--
+2.20.1
+
+
+From 3c7ba2805c8c4af4e61d2f40ca078fc0fdc9d17b Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 11 Oct 2019 11:43:12 -0500
+Subject: [PATCH 036/130] ASoC: SOF: topology: check errors when parsing LED
+ tokens
+
+sof_parse_tokens() returns a value that is checked on every call
+except for LED tokens, fix with explicit test.
+
+Detected with cppcheck warning:
+
+sound/soc/sof/topology.c:973:6: style: Variable 'ret' is assigned a
+value that is never used. [unreadVariable]
+ ret = sof_parse_tokens(scomp, &scontrol->led_ctl, led_tokens,
+ ^
+
+Fixes: 5d43001ae4360 ("ASoC: SOF: acpi led support for switch controls")
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191011164312.7988-5-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 8a3ab38c36926ddbda3d2a3086c0a741fa175cff)
+Bugzilla: 1772498
+---
+ sound/soc/sof/topology.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index b451e8df77d3..8032bb8a709c 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -498,6 +498,11 @@ static int sof_control_load_volume(struct snd_soc_component *scomp,
+ ret = sof_parse_tokens(scomp, &scontrol->led_ctl, led_tokens,
+ ARRAY_SIZE(led_tokens), mc->priv.array,
+ le32_to_cpu(mc->priv.size));
++ if (ret != 0) {
++ dev_err(sdev->dev, "error: parse led tokens failed %d\n",
++ le32_to_cpu(mc->priv.size));
++ return ret;
++ }
+
+ dev_dbg(sdev->dev, "tplg: load kcontrol index %d chans %d\n",
+ scontrol->comp_id, scontrol->num_channels);
+--
+2.20.1
+
+
+From 3450e41ea1124a2ee3a26849cc00a99ac8df8a67 Mon Sep 17 00:00:00 2001
+From: YueHaibing <yuehaibing@huawei.com>
+Date: Mon, 14 Oct 2019 17:13:08 +0800
+Subject: [PATCH 037/130] ASoC: SOF: Fix randbuild error
+
+When LEDS_TRIGGER_AUDIO is m and SND_SOC_SOF is y,
+
+sound/soc/sof/control.o: In function `snd_sof_switch_put':
+control.c:(.text+0x587): undefined reference to `ledtrig_audio_set'
+control.c:(.text+0x593): undefined reference to `ledtrig_audio_set'
+
+Reported-by: Hulk Robot <hulkci@huawei.com>
+Fixes: 5d43001ae436 ("ASoC: SOF: acpi led support for switch controls")
+Signed-off-by: YueHaibing <yuehaibing@huawei.com>
+Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191014091308.23688-1-yuehaibing@huawei.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 9899a7a869935c4c93247b290ac7a70e0deab202)
+Bugzilla: 1772498
+---
+ sound/soc/sof/control.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/sound/soc/sof/control.c b/sound/soc/sof/control.c
+index b73d4587c5da..7baf7f1507c3 100644
+--- a/sound/soc/sof/control.c
++++ b/sound/soc/sof/control.c
+@@ -36,10 +36,12 @@ static void update_mute_led(struct snd_sof_control *scontrol,
+
+ scontrol->led_ctl.led_value = temp;
+
++#if IS_REACHABLE(CONFIG_LEDS_TRIGGER_AUDIO)
+ if (!scontrol->led_ctl.direction)
+ ledtrig_audio_set(LED_AUDIO_MUTE, temp ? LED_OFF : LED_ON);
+ else
+ ledtrig_audio_set(LED_AUDIO_MICMUTE, temp ? LED_OFF : LED_ON);
++#endif
+ }
+
+ static inline u32 mixer_to_ipc(unsigned int value, u32 *volume_map, int size)
+--
+2.20.1
+
+
+From 46c0429ba78df9619b0c845dd0377e812cc0ceca Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Tue, 22 Oct 2019 14:28:43 -0500
+Subject: [PATCH 038/130] ASoC: SOF: Intel: hda-loader: improve error handling
+
+If a ROM timeout is detected, we still stop the DMA but will return
+the initial error should the DMA stop also fail.
+
+Likewise the cleanup is handled regardless of the status, but we
+return the initial error.
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191022192844.21022-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 76dc6a2b312d15c91ff4b4d171e98cdc73ba3745)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-loader.c | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda-loader.c b/sound/soc/sof/intel/hda-loader.c
+index 65c2af3fcaab..7956dbf5be88 100644
+--- a/sound/soc/sof/intel/hda-loader.c
++++ b/sound/soc/sof/intel/hda-loader.c
+@@ -253,10 +253,16 @@ static int cl_copy_fw(struct snd_sof_dev *sdev, struct hdac_ext_stream *stream)
+ HDA_DSP_REG_POLL_INTERVAL_US,
+ HDA_DSP_BASEFW_TIMEOUT_US);
+
++ /*
++ * even in case of errors we still need to stop the DMAs,
++ * but we return the initial error should the DMA stop also fail
++ */
++
+ ret = cl_trigger(sdev, stream, SNDRV_PCM_TRIGGER_STOP);
+ if (ret < 0) {
+ dev_err(sdev->dev, "error: DMA trigger stop failed\n");
+- return ret;
++ if (!status)
++ status = ret;
+ }
+
+ return status;
+@@ -341,13 +347,15 @@ int hda_dsp_cl_boot_firmware(struct snd_sof_dev *sdev)
+ /*
+ * Perform codeloader stream cleanup.
+ * This should be done even if firmware loading fails.
++ * If the cleanup also fails, we return the initial error
+ */
+ ret1 = cl_cleanup(sdev, &sdev->dmab, stream);
+ if (ret1 < 0) {
+ dev_err(sdev->dev, "error: Code loader DSP cleanup failed\n");
+
+ /* set return value to indicate cleanup failure */
+- ret = ret1;
++ if (!ret)
++ ret = ret1;
+ }
+
+ /*
+--
+2.20.1
+
+
+From c2f63a4a75f4bd02ec46b58dee7468acc0771576 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Tue, 22 Oct 2019 14:28:44 -0500
+Subject: [PATCH 039/130] ASoC: SOF: Intel: hda: add dev_err() traces for
+ snd_sof_dsp_read_poll_timeout()
+
+Such traces should be extremely rare but extremely useful for debug.
+
+Report errors for all calls to sdn_sof_dsp_read_poll_timeout(), but
+only on negative values for consistency.
+
+Add traces that enable each timeout to be uniquely identified.
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191022192844.21022-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 6a414489e0f3309a221f26b3d11c19d1a96a3635)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-dsp.c | 30 +++++++++++++++++++++++++++---
+ sound/soc/sof/intel/hda-loader.c | 13 ++++++++++++-
+ sound/soc/sof/intel/hda-stream.c | 24 ++++++++++++++++++++----
+ 3 files changed, 59 insertions(+), 8 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda-dsp.c b/sound/soc/sof/intel/hda-dsp.c
+index fb55a3c5afd0..3ea401646e0c 100644
+--- a/sound/soc/sof/intel/hda-dsp.c
++++ b/sound/soc/sof/intel/hda-dsp.c
+@@ -42,6 +42,12 @@ int hda_dsp_core_reset_enter(struct snd_sof_dev *sdev, unsigned int core_mask)
+ ((adspcs & reset) == reset),
+ HDA_DSP_REG_POLL_INTERVAL_US,
+ HDA_DSP_RESET_TIMEOUT_US);
++ if (ret < 0) {
++ dev_err(sdev->dev,
++ "error: %s: timeout on HDA_DSP_REG_ADSPCS read\n",
++ __func__);
++ return ret;
++ }
+
+ /* has core entered reset ? */
+ adspcs = snd_sof_dsp_read(sdev, HDA_DSP_BAR,
+@@ -77,6 +83,13 @@ int hda_dsp_core_reset_leave(struct snd_sof_dev *sdev, unsigned int core_mask)
+ HDA_DSP_REG_POLL_INTERVAL_US,
+ HDA_DSP_RESET_TIMEOUT_US);
+
++ if (ret < 0) {
++ dev_err(sdev->dev,
++ "error: %s: timeout on HDA_DSP_REG_ADSPCS read\n",
++ __func__);
++ return ret;
++ }
++
+ /* has core left reset ? */
+ adspcs = snd_sof_dsp_read(sdev, HDA_DSP_BAR,
+ HDA_DSP_REG_ADSPCS);
+@@ -151,8 +164,12 @@ int hda_dsp_core_power_up(struct snd_sof_dev *sdev, unsigned int core_mask)
+ (adspcs & cpa) == cpa,
+ HDA_DSP_REG_POLL_INTERVAL_US,
+ HDA_DSP_RESET_TIMEOUT_US);
+- if (ret < 0)
+- dev_err(sdev->dev, "error: timeout on core powerup\n");
++ if (ret < 0) {
++ dev_err(sdev->dev,
++ "error: %s: timeout on HDA_DSP_REG_ADSPCS read\n",
++ __func__);
++ return ret;
++ }
+
+ /* did core power up ? */
+ adspcs = snd_sof_dsp_read(sdev, HDA_DSP_BAR,
+@@ -171,17 +188,24 @@ int hda_dsp_core_power_up(struct snd_sof_dev *sdev, unsigned int core_mask)
+ int hda_dsp_core_power_down(struct snd_sof_dev *sdev, unsigned int core_mask)
+ {
+ u32 adspcs;
++ int ret;
+
+ /* update bits */
+ snd_sof_dsp_update_bits_unlocked(sdev, HDA_DSP_BAR,
+ HDA_DSP_REG_ADSPCS,
+ HDA_DSP_ADSPCS_SPA_MASK(core_mask), 0);
+
+- return snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR,
++ ret = snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR,
+ HDA_DSP_REG_ADSPCS, adspcs,
+ !(adspcs & HDA_DSP_ADSPCS_SPA_MASK(core_mask)),
+ HDA_DSP_REG_POLL_INTERVAL_US,
+ HDA_DSP_PD_TIMEOUT * USEC_PER_MSEC);
++ if (ret < 0)
++ dev_err(sdev->dev,
++ "error: %s: timeout on HDA_DSP_REG_ADSPCS read\n",
++ __func__);
++
++ return ret;
+ }
+
+ bool hda_dsp_core_is_enabled(struct snd_sof_dev *sdev,
+diff --git a/sound/soc/sof/intel/hda-loader.c b/sound/soc/sof/intel/hda-loader.c
+index 7956dbf5be88..b1783360fe10 100644
+--- a/sound/soc/sof/intel/hda-loader.c
++++ b/sound/soc/sof/intel/hda-loader.c
+@@ -126,7 +126,8 @@ static int cl_dsp_init(struct snd_sof_dev *sdev, const void *fwdata,
+ HDA_DSP_INIT_TIMEOUT_US);
+
+ if (ret < 0) {
+- dev_err(sdev->dev, "error: waiting for HIPCIE done\n");
++ dev_err(sdev->dev, "error: %s: timeout for HIPCIE done\n",
++ __func__);
+ goto err;
+ }
+
+@@ -152,6 +153,10 @@ static int cl_dsp_init(struct snd_sof_dev *sdev, const void *fwdata,
+ if (!ret)
+ return 0;
+
++ dev_err(sdev->dev,
++ "error: %s: timeout HDA_DSP_SRAM_REG_ROM_STATUS read\n",
++ __func__);
++
+ err:
+ hda_dsp_dump(sdev, SOF_DBG_REGS | SOF_DBG_PCI | SOF_DBG_MBOX);
+ hda_dsp_core_reset_power_down(sdev, chip->cores_mask);
+@@ -258,6 +263,12 @@ static int cl_copy_fw(struct snd_sof_dev *sdev, struct hdac_ext_stream *stream)
+ * but we return the initial error should the DMA stop also fail
+ */
+
++ if (status < 0) {
++ dev_err(sdev->dev,
++ "error: %s: timeout HDA_DSP_SRAM_REG_ROM_STATUS read\n",
++ __func__);
++ }
++
+ ret = cl_trigger(sdev, stream, SNDRV_PCM_TRIGGER_STOP);
+ if (ret < 0) {
+ dev_err(sdev->dev, "error: DMA trigger stop failed\n");
+diff --git a/sound/soc/sof/intel/hda-stream.c b/sound/soc/sof/intel/hda-stream.c
+index 0c11fceb28a7..29ab43281670 100644
+--- a/sound/soc/sof/intel/hda-stream.c
++++ b/sound/soc/sof/intel/hda-stream.c
+@@ -275,8 +275,12 @@ int hda_dsp_stream_trigger(struct snd_sof_dev *sdev,
+ HDA_DSP_REG_POLL_INTERVAL_US,
+ HDA_DSP_STREAM_RUN_TIMEOUT);
+
+- if (ret)
++ if (ret < 0) {
++ dev_err(sdev->dev,
++ "error: %s: cmd %d: timeout on STREAM_SD_OFFSET read\n",
++ __func__, cmd);
+ return ret;
++ }
+
+ hstream->running = true;
+ break;
+@@ -294,8 +298,12 @@ int hda_dsp_stream_trigger(struct snd_sof_dev *sdev,
+ HDA_DSP_REG_POLL_INTERVAL_US,
+ HDA_DSP_STREAM_RUN_TIMEOUT);
+
+- if (ret)
++ if (ret < 0) {
++ dev_err(sdev->dev,
++ "error: %s: cmd %d: timeout on STREAM_SD_OFFSET read\n",
++ __func__, cmd);
+ return ret;
++ }
+
+ snd_sof_dsp_write(sdev, HDA_DSP_HDA_BAR, sd_offset +
+ SOF_HDA_ADSP_REG_CL_SD_STS,
+@@ -356,8 +364,12 @@ int hda_dsp_stream_hw_params(struct snd_sof_dev *sdev,
+ HDA_DSP_REG_POLL_INTERVAL_US,
+ HDA_DSP_STREAM_RUN_TIMEOUT);
+
+- if (ret)
++ if (ret < 0) {
++ dev_err(sdev->dev,
++ "error: %s: timeout on STREAM_SD_OFFSET read1\n",
++ __func__);
+ return ret;
++ }
+
+ snd_sof_dsp_update_bits(sdev, HDA_DSP_HDA_BAR,
+ sd_offset + SOF_HDA_ADSP_REG_CL_SD_STS,
+@@ -418,8 +430,12 @@ int hda_dsp_stream_hw_params(struct snd_sof_dev *sdev,
+ HDA_DSP_REG_POLL_INTERVAL_US,
+ HDA_DSP_STREAM_RUN_TIMEOUT);
+
+- if (ret)
++ if (ret < 0) {
++ dev_err(sdev->dev,
++ "error: %s: timeout on STREAM_SD_OFFSET read2\n",
++ __func__);
+ return ret;
++ }
+
+ snd_sof_dsp_update_bits(sdev, HDA_DSP_HDA_BAR,
+ sd_offset + SOF_HDA_ADSP_REG_CL_SD_STS,
+--
+2.20.1
+
+
+From ae6f9d27eca6aa21c2f47b7d22dacc72bc6ff71d Mon Sep 17 00:00:00 2001
+From: Pan Xiuli <xiuli.pan@linux.intel.com>
+Date: Tue, 22 Oct 2019 14:47:05 -0500
+Subject: [PATCH 040/130] ASoC: SOF: Intel: initial support to JasperLake.
+
+Add Kconfig, PCI ID and chip info for JSL platform.
+The DSP only has 2 cores for this platform.
+
+Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191022194705.23347-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 6fd9903527bf103167004022a0199b8fac1b8b29)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/Kconfig | 16 ++++++++++++++++
+ sound/soc/sof/intel/cnl.c | 17 +++++++++++++++++
+ sound/soc/sof/intel/hda.h | 1 +
+ sound/soc/sof/sof-pci-dev.c | 22 ++++++++++++++++++++++
+ 4 files changed, 56 insertions(+)
+
+diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig
+index 1be28581c328..aac8d5deba3d 100644
+--- a/sound/soc/sof/intel/Kconfig
++++ b/sound/soc/sof/intel/Kconfig
+@@ -29,6 +29,7 @@ config SND_SOC_SOF_INTEL_PCI
+ select SND_SOC_SOF_COMETLAKE_H if SND_SOC_SOF_COMETLAKE_H_SUPPORT
+ select SND_SOC_SOF_TIGERLAKE if SND_SOC_SOF_TIGERLAKE_SUPPORT
+ select SND_SOC_SOF_ELKHARTLAKE if SND_SOC_SOF_ELKHARTLAKE_SUPPORT
++ select SND_SOC_SOF_JASPERLAKE if SND_SOC_SOF_JASPERLAKE_SUPPORT
+ help
+ This option is not user-selectable but automagically handled by
+ 'select' statements at a higher level
+@@ -244,6 +245,21 @@ config SND_SOC_SOF_ELKHARTLAKE
+ This option is not user-selectable but automagically handled by
+ 'select' statements at a higher level
+
++config SND_SOC_SOF_JASPERLAKE_SUPPORT
++ bool "SOF support for JasperLake"
++ help
++ This adds support for Sound Open Firmware for Intel(R) platforms
++ using the JasperLake processors.
++ Say Y if you have such a device.
++ If unsure select "N".
++
++config SND_SOC_SOF_JASPERLAKE
++ tristate
++ select SND_SOC_SOF_HDA_COMMON
++ help
++ This option is not user-selectable but automagically handled by
++ 'select' statements at a higher level
++
+ config SND_SOC_SOF_HDA_COMMON
+ tristate
+ select SND_SOC_SOF_INTEL_COMMON
+diff --git a/sound/soc/sof/intel/cnl.c b/sound/soc/sof/intel/cnl.c
+index 4ddd73762d81..5b97bdfba823 100644
+--- a/sound/soc/sof/intel/cnl.c
++++ b/sound/soc/sof/intel/cnl.c
+@@ -327,3 +327,20 @@ const struct sof_intel_dsp_desc ehl_chip_info = {
+ .ssp_base_offset = CNL_SSP_BASE_OFFSET,
+ };
+ EXPORT_SYMBOL(ehl_chip_info);
++
++const struct sof_intel_dsp_desc jsl_chip_info = {
++ /* Jasperlake */
++ .cores_num = 2,
++ .init_core_mask = 1,
++ .cores_mask = HDA_DSP_CORE_MASK(0) |
++ HDA_DSP_CORE_MASK(1),
++ .ipc_req = CNL_DSP_REG_HIPCIDR,
++ .ipc_req_mask = CNL_DSP_REG_HIPCIDR_BUSY,
++ .ipc_ack = CNL_DSP_REG_HIPCIDA,
++ .ipc_ack_mask = CNL_DSP_REG_HIPCIDA_DONE,
++ .ipc_ctl = CNL_DSP_REG_HIPCCTL,
++ .rom_init_timeout = 300,
++ .ssp_count = ICL_SSP_COUNT,
++ .ssp_base_offset = CNL_SSP_BASE_OFFSET,
++};
++EXPORT_SYMBOL(jsl_chip_info);
+diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
+index 23e430d3e056..ea02bf40cb25 100644
+--- a/sound/soc/sof/intel/hda.h
++++ b/sound/soc/sof/intel/hda.h
+@@ -604,5 +604,6 @@ extern const struct sof_intel_dsp_desc skl_chip_info;
+ extern const struct sof_intel_dsp_desc icl_chip_info;
+ extern const struct sof_intel_dsp_desc tgl_chip_info;
+ extern const struct sof_intel_dsp_desc ehl_chip_info;
++extern const struct sof_intel_dsp_desc jsl_chip_info;
+
+ #endif
+diff --git a/sound/soc/sof/sof-pci-dev.c b/sound/soc/sof/sof-pci-dev.c
+index be5a8da504c5..e0b150f29e81 100644
+--- a/sound/soc/sof/sof-pci-dev.c
++++ b/sound/soc/sof/sof-pci-dev.c
+@@ -246,6 +246,24 @@ static const struct sof_dev_desc ehl_desc = {
+ };
+ #endif
+
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_JASPERLAKE)
++static const struct sof_dev_desc jsl_desc = {
++ .machines = snd_soc_acpi_intel_jsl_machines,
++ .resindex_lpe_base = 0,
++ .resindex_pcicfg_base = -1,
++ .resindex_imr_base = -1,
++ .irqindex_host_ipc = -1,
++ .resindex_dma_base = -1,
++ .chip_info = &jsl_chip_info,
++ .default_fw_path = "intel/sof",
++ .default_tplg_path = "intel/sof-tplg",
++ .nocodec_fw_filename = "sof-jsl.ri",
++ .nocodec_tplg_filename = "sof-jsl-nocodec.tplg",
++ .ops = &sof_cnl_ops,
++ .arch_ops = &sof_xtensa_arch_ops
++};
++#endif
++
+ static const struct dev_pm_ops sof_pci_pm = {
+ SET_SYSTEM_SLEEP_PM_OPS(snd_sof_suspend, snd_sof_resume)
+ SET_RUNTIME_PM_OPS(snd_sof_runtime_suspend, snd_sof_runtime_resume,
+@@ -429,6 +447,10 @@ static const struct pci_device_id sof_pci_ids[] = {
+ { PCI_DEVICE(0x8086, 0x34C8),
+ .driver_data = (unsigned long)&icl_desc},
+ #endif
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_JASPERLAKE)
++ { PCI_DEVICE(0x8086, 0x38c8),
++ .driver_data = (unsigned long)&jsl_desc},
++#endif
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_LP)
+ { PCI_DEVICE(0x8086, 0x02c8),
+ .driver_data = (unsigned long)&cml_desc},
+--
+2.20.1
+
+
+From 7de4b3424a30b11a2ea4d63a6c6d57c9407bf771 Mon Sep 17 00:00:00 2001
+From: Pan Xiuli <xiuli.pan@linux.intel.com>
+Date: Tue, 22 Oct 2019 14:47:04 -0500
+Subject: [PATCH 041/130] ASoC: Intel: common: add ACPI matching tables for JSL
+
+There are no upstream machine drivers just yet so just add dummy table
+for compilation in nocodec-mode.
+
+Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
+Link: https://lore.kernel.org/r/20191022194705.23347-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 4f0637eae56f02ef648de5ed839d572259d396e9)
+Bugzilla: 1772498
+---
+ include/sound/soc-acpi-intel-match.h | 1 +
+ sound/soc/intel/common/Makefile | 1 +
+ .../intel/common/soc-acpi-intel-jsl-match.c | 18 ++++++++++++++++++
+ 3 files changed, 20 insertions(+)
+ create mode 100644 sound/soc/intel/common/soc-acpi-intel-jsl-match.c
+
+diff --git a/include/sound/soc-acpi-intel-match.h b/include/sound/soc-acpi-intel-match.h
+index 6c9929abd90b..4e44782862df 100644
+--- a/include/sound/soc-acpi-intel-match.h
++++ b/include/sound/soc-acpi-intel-match.h
+@@ -27,6 +27,7 @@ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_cnl_machines[];
+ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_icl_machines[];
+ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_tgl_machines[];
+ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_ehl_machines[];
++extern struct snd_soc_acpi_mach snd_soc_acpi_intel_jsl_machines[];
+
+ /*
+ * generic table used for HDA codec-based platforms, possibly with
+diff --git a/sound/soc/intel/common/Makefile b/sound/soc/intel/common/Makefile
+index 18d9630ae9a2..eafe95ead49b 100644
+--- a/sound/soc/intel/common/Makefile
++++ b/sound/soc/intel/common/Makefile
+@@ -9,6 +9,7 @@ snd-soc-acpi-intel-match-objs := soc-acpi-intel-byt-match.o soc-acpi-intel-cht-m
+ soc-acpi-intel-bxt-match.o soc-acpi-intel-glk-match.o \
+ soc-acpi-intel-cnl-match.o soc-acpi-intel-icl-match.o \
+ soc-acpi-intel-tgl-match.o soc-acpi-intel-ehl-match.o \
++ soc-acpi-intel-jsl-match.o \
+ soc-acpi-intel-hda-match.o
+
+ obj-$(CONFIG_SND_SOC_INTEL_SST) += snd-soc-sst-dsp.o snd-soc-sst-ipc.o
+diff --git a/sound/soc/intel/common/soc-acpi-intel-jsl-match.c b/sound/soc/intel/common/soc-acpi-intel-jsl-match.c
+new file mode 100644
+index 000000000000..1c68a04f0c6e
+--- /dev/null
++++ b/sound/soc/intel/common/soc-acpi-intel-jsl-match.c
+@@ -0,0 +1,18 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * soc-apci-intel-jsl-match.c - tables and support for JSL ACPI enumeration.
++ *
++ * Copyright (c) 2019, Intel Corporation.
++ *
++ */
++
++#include <sound/soc-acpi.h>
++#include <sound/soc-acpi-intel-match.h>
++
++struct snd_soc_acpi_mach snd_soc_acpi_intel_jsl_machines[] = {
++ {},
++};
++EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_jsl_machines);
++
++MODULE_LICENSE("GPL v2");
++MODULE_DESCRIPTION("Intel Common ACPI Match module");
+--
+2.20.1
+
+
+From a8fbd7629399a706abe19bbad51f2120a60f5f56 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Thu, 24 Oct 2019 16:03:17 -0500
+Subject: [PATCH 042/130] ASoC: SOF: define INFO_ flags in dsp_ops
+
+Currently the INFO_ flags such as PAUSE/NO_PERIOD_WAKEUP are defined
+in the SOF PCM core, which doesn't scale. To account for platform
+variations, these flags need to be set in DSP ops.
+
+This patch only moves the definitions and does not change any
+functionality.
+
+Reviewed-by: Jaska Uimonen <jaska.uimonen@intel.com>
+Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191024210318.30068-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 27e322fabd508ba73ced625fc41f0b7ceee26416)
+Bugzilla: 1772498
+---
+ sound/soc/sof/imx/imx8.c | 7 +++++++
+ sound/soc/sof/intel/apl.c | 7 +++++++
+ sound/soc/sof/intel/bdw.c | 9 ++++++++-
+ sound/soc/sof/intel/byt.c | 21 +++++++++++++++++++++
+ sound/soc/sof/intel/cnl.c | 7 +++++++
+ sound/soc/sof/pcm.c | 8 +++-----
+ sound/soc/sof/sof-priv.h | 3 +++
+ 7 files changed, 56 insertions(+), 6 deletions(-)
+
+diff --git a/sound/soc/sof/imx/imx8.c b/sound/soc/sof/imx/imx8.c
+index 2a22b18e5ec0..cfefcfd92798 100644
+--- a/sound/soc/sof/imx/imx8.c
++++ b/sound/soc/sof/imx/imx8.c
+@@ -388,6 +388,13 @@ struct snd_sof_dsp_ops sof_imx8_ops = {
+ /* DAI drivers */
+ .drv = imx8_dai,
+ .num_drv = 1, /* we have only 1 ESAI interface on i.MX8 */
++
++ /* ALSA HW info flags */
++ .hw_info = SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_PAUSE |
++ SNDRV_PCM_INFO_NO_PERIOD_WAKEUP
+ };
+ EXPORT_SYMBOL(sof_imx8_ops);
+
+diff --git a/sound/soc/sof/intel/apl.c b/sound/soc/sof/intel/apl.c
+index 8dc7a5558da4..15d26e8d90a9 100644
+--- a/sound/soc/sof/intel/apl.c
++++ b/sound/soc/sof/intel/apl.c
+@@ -97,6 +97,13 @@ const struct snd_sof_dsp_ops sof_apl_ops = {
+ .runtime_resume = hda_dsp_runtime_resume,
+ .runtime_idle = hda_dsp_runtime_idle,
+ .set_hw_params_upon_resume = hda_dsp_set_hw_params_upon_resume,
++
++ /* ALSA HW info flags */
++ .hw_info = SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_PAUSE |
++ SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
+ };
+ EXPORT_SYMBOL(sof_apl_ops);
+
+diff --git a/sound/soc/sof/intel/bdw.c b/sound/soc/sof/intel/bdw.c
+index bf961a8798a7..7b4cd1f456bf 100644
+--- a/sound/soc/sof/intel/bdw.c
++++ b/sound/soc/sof/intel/bdw.c
+@@ -591,7 +591,14 @@ const struct snd_sof_dsp_ops sof_bdw_ops = {
+
+ /* DAI drivers */
+ .drv = bdw_dai,
+- .num_drv = ARRAY_SIZE(bdw_dai)
++ .num_drv = ARRAY_SIZE(bdw_dai),
++
++ /* ALSA HW info flags */
++ .hw_info = SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_PAUSE |
++ SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
+ };
+ EXPORT_SYMBOL(sof_bdw_ops);
+
+diff --git a/sound/soc/sof/intel/byt.c b/sound/soc/sof/intel/byt.c
+index 07e5efe4945c..62edb959f1fc 100644
+--- a/sound/soc/sof/intel/byt.c
++++ b/sound/soc/sof/intel/byt.c
+@@ -532,6 +532,13 @@ const struct snd_sof_dsp_ops sof_tng_ops = {
+ /* DAI drivers */
+ .drv = byt_dai,
+ .num_drv = 3, /* we have only 3 SSPs on byt*/
++
++ /* ALSA HW info flags */
++ .hw_info = SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_PAUSE |
++ SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
+ };
+ EXPORT_SYMBOL(sof_tng_ops);
+
+@@ -693,6 +700,13 @@ const struct snd_sof_dsp_ops sof_byt_ops = {
+ /* DAI drivers */
+ .drv = byt_dai,
+ .num_drv = 3, /* we have only 3 SSPs on byt*/
++
++ /* ALSA HW info flags */
++ .hw_info = SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_PAUSE |
++ SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
+ };
+ EXPORT_SYMBOL(sof_byt_ops);
+
+@@ -753,6 +767,13 @@ const struct snd_sof_dsp_ops sof_cht_ops = {
+ .drv = byt_dai,
+ /* all 6 SSPs may be available for cherrytrail */
+ .num_drv = ARRAY_SIZE(byt_dai),
++
++ /* ALSA HW info flags */
++ .hw_info = SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_PAUSE |
++ SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
+ };
+ EXPORT_SYMBOL(sof_cht_ops);
+
+diff --git a/sound/soc/sof/intel/cnl.c b/sound/soc/sof/intel/cnl.c
+index 5b97bdfba823..e9cdcc040fb5 100644
+--- a/sound/soc/sof/intel/cnl.c
++++ b/sound/soc/sof/intel/cnl.c
+@@ -255,6 +255,13 @@ const struct snd_sof_dsp_ops sof_cnl_ops = {
+ .runtime_resume = hda_dsp_runtime_resume,
+ .runtime_idle = hda_dsp_runtime_idle,
+ .set_hw_params_upon_resume = hda_dsp_set_hw_params_upon_resume,
++
++ /* ALSA HW info flags */
++ .hw_info = SNDRV_PCM_INFO_MMAP |
++ SNDRV_PCM_INFO_MMAP_VALID |
++ SNDRV_PCM_INFO_INTERLEAVED |
++ SNDRV_PCM_INFO_PAUSE |
++ SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
+ };
+ EXPORT_SYMBOL(sof_cnl_ops);
+
+diff --git a/sound/soc/sof/pcm.c b/sound/soc/sof/pcm.c
+index b0f4217433e5..b33928e1385b 100644
+--- a/sound/soc/sof/pcm.c
++++ b/sound/soc/sof/pcm.c
+@@ -435,6 +435,7 @@ static int sof_pcm_open(struct snd_pcm_substream *substream)
+ struct snd_soc_component *component =
+ snd_soc_rtdcom_lookup(rtd, DRV_NAME);
+ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(component);
++ const struct snd_sof_dsp_ops *ops = sof_ops(sdev);
+ struct snd_sof_pcm *spcm;
+ struct snd_soc_tplg_stream_caps *caps;
+ int ret;
+@@ -464,11 +465,8 @@ static int sof_pcm_open(struct snd_pcm_substream *substream)
+ le32_to_cpu(caps->period_size_min));
+
+ /* set runtime config */
+- runtime->hw.info = SNDRV_PCM_INFO_MMAP |
+- SNDRV_PCM_INFO_MMAP_VALID |
+- SNDRV_PCM_INFO_INTERLEAVED |
+- SNDRV_PCM_INFO_PAUSE |
+- SNDRV_PCM_INFO_NO_PERIOD_WAKEUP;
++ runtime->hw.info = ops->hw_info; /* platform-specific */
++
+ runtime->hw.formats = le64_to_cpu(caps->formats);
+ runtime->hw.period_bytes_min = le32_to_cpu(caps->period_size_min);
+ runtime->hw.period_bytes_max = le32_to_cpu(caps->period_size_max);
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 5a11a8517fa5..2d40de5ee285 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -211,6 +211,9 @@ struct snd_sof_dsp_ops {
+ /* DAI ops */
+ struct snd_soc_dai_driver *drv;
+ int num_drv;
++
++ /* ALSA HW info flags, will be stored in snd_pcm_runtime.hw.info */
++ u32 hw_info;
+ };
+
+ /* DSP architecture specific callbacks for oops and stack dumps */
+--
+2.20.1
+
+
+From 67594879a9d4b17f5510ae384b2a7ed77e6d05cc Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Thu, 24 Oct 2019 16:03:18 -0500
+Subject: [PATCH 043/130] ASoC: SOF: Intel: only support INFO_BATCH for legacy
+ platforms
+
+The current position update is not precise enough for PulseAudio to
+work reliably with the timer-based scheduling on Baytrail,
+Cherrytrail, Broadwell.
+
+Disable the NO_PERIOD_WAKEUP capability and use BATCH to signal that
+the position is only reliable and updated during period_elapsed
+events.
+
+This will be reverted when the firmware provides a more accurate
+position for those platforms.
+
+Reviewed-by: Jaska Uimonen <jaska.uimonen@intel.com>
+Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191024210318.30068-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 4c02a7bd43e22f4de53ad55b94d24e4388f712f0)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/bdw.c | 2 +-
+ sound/soc/sof/intel/byt.c | 6 +++---
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/sound/soc/sof/intel/bdw.c b/sound/soc/sof/intel/bdw.c
+index 7b4cd1f456bf..141dad554764 100644
+--- a/sound/soc/sof/intel/bdw.c
++++ b/sound/soc/sof/intel/bdw.c
+@@ -598,7 +598,7 @@ const struct snd_sof_dsp_ops sof_bdw_ops = {
+ SNDRV_PCM_INFO_MMAP_VALID |
+ SNDRV_PCM_INFO_INTERLEAVED |
+ SNDRV_PCM_INFO_PAUSE |
+- SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
++ SNDRV_PCM_INFO_BATCH,
+ };
+ EXPORT_SYMBOL(sof_bdw_ops);
+
+diff --git a/sound/soc/sof/intel/byt.c b/sound/soc/sof/intel/byt.c
+index 62edb959f1fc..2abf80b3eb52 100644
+--- a/sound/soc/sof/intel/byt.c
++++ b/sound/soc/sof/intel/byt.c
+@@ -538,7 +538,7 @@ const struct snd_sof_dsp_ops sof_tng_ops = {
+ SNDRV_PCM_INFO_MMAP_VALID |
+ SNDRV_PCM_INFO_INTERLEAVED |
+ SNDRV_PCM_INFO_PAUSE |
+- SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
++ SNDRV_PCM_INFO_BATCH,
+ };
+ EXPORT_SYMBOL(sof_tng_ops);
+
+@@ -706,7 +706,7 @@ const struct snd_sof_dsp_ops sof_byt_ops = {
+ SNDRV_PCM_INFO_MMAP_VALID |
+ SNDRV_PCM_INFO_INTERLEAVED |
+ SNDRV_PCM_INFO_PAUSE |
+- SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
++ SNDRV_PCM_INFO_BATCH,
+ };
+ EXPORT_SYMBOL(sof_byt_ops);
+
+@@ -773,7 +773,7 @@ const struct snd_sof_dsp_ops sof_cht_ops = {
+ SNDRV_PCM_INFO_MMAP_VALID |
+ SNDRV_PCM_INFO_INTERLEAVED |
+ SNDRV_PCM_INFO_PAUSE |
+- SNDRV_PCM_INFO_NO_PERIOD_WAKEUP,
++ SNDRV_PCM_INFO_BATCH,
+ };
+ EXPORT_SYMBOL(sof_cht_ops);
+
+--
+2.20.1
+
+
+From af01764721df770ee773faae776429901a9614fe Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Mon, 28 Oct 2019 18:33:29 +0100
+Subject: [PATCH 044/130] ASoC: SOF - remove the dead code (skylake/kabylake)
+
+Appearently the CONFIG_SND_SOC_SOF_KABYLAKE and CONFIG_SND_SOC_SOF_SKYLAKE
+options are not present in Kconfig and 'struct snd_sof_dsp_ops sof_skl_ops'
+is not declared in the code, too.
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Cc: Mark Brown <broonie@kernel.org>
+Link: https://lore.kernel.org/r/20191028173329.29538-1-perex@perex.cz
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit c3ad1092e1069f27d0ca110dcaada8a5435ea3e0)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda.h | 1 -
+ sound/soc/sof/sof-pci-dev.c | 44 -------------------------------------
+ 2 files changed, 45 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
+index ea02bf40cb25..8e03d876a0ac 100644
+--- a/sound/soc/sof/intel/hda.h
++++ b/sound/soc/sof/intel/hda.h
+@@ -596,7 +596,6 @@ extern struct snd_soc_dai_driver skl_dai[];
+ */
+ extern const struct snd_sof_dsp_ops sof_apl_ops;
+ extern const struct snd_sof_dsp_ops sof_cnl_ops;
+-extern const struct snd_sof_dsp_ops sof_skl_ops;
+
+ extern const struct sof_intel_dsp_desc apl_chip_info;
+ extern const struct sof_intel_dsp_desc cnl_chip_info;
+diff --git a/sound/soc/sof/sof-pci-dev.c b/sound/soc/sof/sof-pci-dev.c
+index e0b150f29e81..067acf389af7 100644
+--- a/sound/soc/sof/sof-pci-dev.c
++++ b/sound/soc/sof/sof-pci-dev.c
+@@ -174,42 +174,6 @@ static const struct sof_dev_desc icl_desc = {
+ };
+ #endif
+
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_SKYLAKE)
+-static const struct sof_dev_desc skl_desc = {
+- .machines = snd_soc_acpi_intel_skl_machines,
+- .resindex_lpe_base = 0,
+- .resindex_pcicfg_base = -1,
+- .resindex_imr_base = -1,
+- .irqindex_host_ipc = -1,
+- .resindex_dma_base = -1,
+- .chip_info = &skl_chip_info,
+- .default_fw_path = "intel/sof",
+- .default_tplg_path = "intel/sof-tplg",
+- .nocodec_fw_filename = "sof-skl.ri",
+- .nocodec_tplg_filename = "sof-skl-nocodec.tplg",
+- .ops = &sof_skl_ops,
+- .arch_ops = &sof_xtensa_arch_ops
+-};
+-#endif
+-
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_KABYLAKE)
+-static const struct sof_dev_desc kbl_desc = {
+- .machines = snd_soc_acpi_intel_kbl_machines,
+- .resindex_lpe_base = 0,
+- .resindex_pcicfg_base = -1,
+- .resindex_imr_base = -1,
+- .irqindex_host_ipc = -1,
+- .resindex_dma_base = -1,
+- .chip_info = &skl_chip_info,
+- .default_fw_path = "intel/sof",
+- .default_tplg_path = "intel/sof-tplg",
+- .nocodec_fw_filename = "sof-kbl.ri",
+- .nocodec_tplg_filename = "sof-kbl-nocodec.tplg",
+- .ops = &sof_skl_ops,
+- .arch_ops = &sof_xtensa_arch_ops
+-};
+-#endif
+-
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_TIGERLAKE)
+ static const struct sof_dev_desc tgl_desc = {
+ .machines = snd_soc_acpi_intel_tgl_machines,
+@@ -435,14 +399,6 @@ static const struct pci_device_id sof_pci_ids[] = {
+ { PCI_DEVICE(0x8086, 0xa348),
+ .driver_data = (unsigned long)&cfl_desc},
+ #endif
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_KABYLAKE)
+- { PCI_DEVICE(0x8086, 0x9d71),
+- .driver_data = (unsigned long)&kbl_desc},
+-#endif
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_SKYLAKE)
+- { PCI_DEVICE(0x8086, 0x9d70),
+- .driver_data = (unsigned long)&skl_desc},
+-#endif
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_ICELAKE)
+ { PCI_DEVICE(0x8086, 0x34C8),
+ .driver_data = (unsigned long)&icl_desc},
+--
+2.20.1
+
+
+From d08a87dcaa98f79927dd564cf6313b6161e33f84 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 29 Oct 2019 15:40:10 +0200
+Subject: [PATCH 045/130] ASoC: hdac_hda: add support for HDMI/DP as a HDA
+ codec
+
+Handle all HDA codecs using same logic, including HDMI/DP.
+
+Call to snd_hda_codec_build_controls() is delayed for HDMI/DP HDA
+devices. This is needed to discover the PCM device numbers as
+defined in topology.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191029134017.18901-3-kai.vehmanen@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 608b8c36c37114289e3ea328783161f542fdf71d)
+Bugzilla: 1772498
+---
+ sound/soc/codecs/hdac_hda.c | 114 ++++++++++++++++++++++++++++++++----
+ sound/soc/codecs/hdac_hda.h | 13 +++-
+ 2 files changed, 114 insertions(+), 13 deletions(-)
+
+diff --git a/sound/soc/codecs/hdac_hda.c b/sound/soc/codecs/hdac_hda.c
+index 4570f662fb48..6803d39e09a5 100644
+--- a/sound/soc/codecs/hdac_hda.c
++++ b/sound/soc/codecs/hdac_hda.c
+@@ -14,13 +14,11 @@
+ #include <sound/pcm_params.h>
+ #include <sound/soc.h>
+ #include <sound/hdaudio_ext.h>
++#include <sound/hda_i915.h>
+ #include <sound/hda_codec.h>
+ #include <sound/hda_register.h>
+-#include "hdac_hda.h"
+
+-#define HDAC_ANALOG_DAI_ID 0
+-#define HDAC_DIGITAL_DAI_ID 1
+-#define HDAC_ALT_ANALOG_DAI_ID 2
++#include "hdac_hda.h"
+
+ #define STUB_FORMATS (SNDRV_PCM_FMTBIT_S8 | \
+ SNDRV_PCM_FMTBIT_U8 | \
+@@ -32,6 +30,11 @@
+ SNDRV_PCM_FMTBIT_U32_LE | \
+ SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE)
+
++#define STUB_HDMI_RATES (SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |\
++ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 |\
++ SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_176400 |\
++ SNDRV_PCM_RATE_192000)
++
+ static int hdac_hda_dai_open(struct snd_pcm_substream *substream,
+ struct snd_soc_dai *dai);
+ static void hdac_hda_dai_close(struct snd_pcm_substream *substream,
+@@ -121,7 +124,46 @@ static struct snd_soc_dai_driver hdac_hda_dais[] = {
+ .formats = STUB_FORMATS,
+ .sig_bits = 24,
+ },
+-}
++},
++{
++ .id = HDAC_HDMI_0_DAI_ID,
++ .name = "intel-hdmi-hifi1",
++ .ops = &hdac_hda_dai_ops,
++ .playback = {
++ .stream_name = "hifi1",
++ .channels_min = 1,
++ .channels_max = 32,
++ .rates = STUB_HDMI_RATES,
++ .formats = STUB_FORMATS,
++ .sig_bits = 24,
++ },
++},
++{
++ .id = HDAC_HDMI_1_DAI_ID,
++ .name = "intel-hdmi-hifi2",
++ .ops = &hdac_hda_dai_ops,
++ .playback = {
++ .stream_name = "hifi2",
++ .channels_min = 1,
++ .channels_max = 32,
++ .rates = STUB_HDMI_RATES,
++ .formats = STUB_FORMATS,
++ .sig_bits = 24,
++ },
++},
++{
++ .id = HDAC_HDMI_2_DAI_ID,
++ .name = "intel-hdmi-hifi3",
++ .ops = &hdac_hda_dai_ops,
++ .playback = {
++ .stream_name = "hifi3",
++ .channels_min = 1,
++ .channels_max = 32,
++ .rates = STUB_HDMI_RATES,
++ .formats = STUB_FORMATS,
++ .sig_bits = 24,
++ },
++},
+
+ };
+
+@@ -135,10 +177,11 @@ static int hdac_hda_dai_set_tdm_slot(struct snd_soc_dai *dai,
+
+ hda_pvt = snd_soc_component_get_drvdata(component);
+ pcm = &hda_pvt->pcm[dai->id];
++
+ if (tx_mask)
+- pcm[dai->id].stream_tag[SNDRV_PCM_STREAM_PLAYBACK] = tx_mask;
++ pcm->stream_tag[SNDRV_PCM_STREAM_PLAYBACK] = tx_mask;
+ else
+- pcm[dai->id].stream_tag[SNDRV_PCM_STREAM_CAPTURE] = rx_mask;
++ pcm->stream_tag[SNDRV_PCM_STREAM_CAPTURE] = rx_mask;
+
+ return 0;
+ }
+@@ -278,6 +321,12 @@ static struct hda_pcm *snd_soc_find_pcm_from_dai(struct hdac_hda_priv *hda_pvt,
+ struct hda_pcm *cpcm;
+ const char *pcm_name;
+
++ /*
++ * map DAI ID to the closest matching PCM name, using the naming
++ * scheme used by hda-codec snd_hda_gen_build_pcms() and for
++ * HDMI in hda_codec patch_hdmi.c)
++ */
++
+ switch (dai->id) {
+ case HDAC_ANALOG_DAI_ID:
+ pcm_name = "Analog";
+@@ -288,13 +337,22 @@ static struct hda_pcm *snd_soc_find_pcm_from_dai(struct hdac_hda_priv *hda_pvt,
+ case HDAC_ALT_ANALOG_DAI_ID:
+ pcm_name = "Alt Analog";
+ break;
++ case HDAC_HDMI_0_DAI_ID:
++ pcm_name = "HDMI 0";
++ break;
++ case HDAC_HDMI_1_DAI_ID:
++ pcm_name = "HDMI 1";
++ break;
++ case HDAC_HDMI_2_DAI_ID:
++ pcm_name = "HDMI 2";
++ break;
+ default:
+ dev_err(&hcodec->core.dev, "invalid dai id %d\n", dai->id);
+ return NULL;
+ }
+
+ list_for_each_entry(cpcm, &hcodec->pcm_list_head, list) {
+- if (strpbrk(cpcm->name, pcm_name))
++ if (strstr(cpcm->name, pcm_name))
+ return cpcm;
+ }
+
+@@ -302,6 +360,18 @@ static struct hda_pcm *snd_soc_find_pcm_from_dai(struct hdac_hda_priv *hda_pvt,
+ return NULL;
+ }
+
++static bool is_hdmi_codec(struct hda_codec *hcodec)
++{
++ struct hda_pcm *cpcm;
++
++ list_for_each_entry(cpcm, &hcodec->pcm_list_head, list) {
++ if (cpcm->pcm_type == HDA_PCM_TYPE_HDMI)
++ return true;
++ }
++
++ return false;
++}
++
+ static int hdac_hda_codec_probe(struct snd_soc_component *component)
+ {
+ struct hdac_hda_priv *hda_pvt =
+@@ -322,6 +392,15 @@ static int hdac_hda_codec_probe(struct snd_soc_component *component)
+
+ snd_hdac_ext_bus_link_get(hdev->bus, hlink);
+
++ /*
++ * Ensure any HDA display is powered at codec probe.
++ * After snd_hda_codec_device_new(), display power is
++ * managed by runtime PM.
++ */
++ if (hda_pvt->need_display_power)
++ snd_hdac_display_power(hdev->bus,
++ HDA_CODEC_IDX_CONTROLLER, true);
++
+ ret = snd_hda_codec_device_new(hcodec->bus, component->card->snd_card,
+ hdev->addr, hcodec);
+ if (ret < 0) {
+@@ -366,20 +445,31 @@ static int hdac_hda_codec_probe(struct snd_soc_component *component)
+ dev_dbg(&hdev->dev, "no patch file found\n");
+ }
+
++ /* configure codec for 1:1 PCM:DAI mapping */
++ hcodec->mst_no_extra_pcms = 1;
++
+ ret = snd_hda_codec_parse_pcms(hcodec);
+ if (ret < 0) {
+ dev_err(&hdev->dev, "unable to map pcms to dai %d\n", ret);
+ goto error;
+ }
+
+- ret = snd_hda_codec_build_controls(hcodec);
+- if (ret < 0) {
+- dev_err(&hdev->dev, "unable to create controls %d\n", ret);
+- goto error;
++ /* HDMI controls need to be created in machine drivers */
++ if (!is_hdmi_codec(hcodec)) {
++ ret = snd_hda_codec_build_controls(hcodec);
++ if (ret < 0) {
++ dev_err(&hdev->dev, "unable to create controls %d\n",
++ ret);
++ goto error;
++ }
+ }
+
+ hcodec->core.lazy_cache = true;
+
++ if (hda_pvt->need_display_power)
++ snd_hdac_display_power(hdev->bus,
++ HDA_CODEC_IDX_CONTROLLER, false);
++
+ /*
+ * hdac_device core already sets the state to active and calls
+ * get_noresume. So enable runtime and set the device to suspend.
+diff --git a/sound/soc/codecs/hdac_hda.h b/sound/soc/codecs/hdac_hda.h
+index 6b1bd4f428e7..e145cec085b8 100644
+--- a/sound/soc/codecs/hdac_hda.h
++++ b/sound/soc/codecs/hdac_hda.h
+@@ -6,6 +6,16 @@
+ #ifndef __HDAC_HDA_H__
+ #define __HDAC_HDA_H__
+
++enum {
++ HDAC_ANALOG_DAI_ID = 0,
++ HDAC_DIGITAL_DAI_ID,
++ HDAC_ALT_ANALOG_DAI_ID,
++ HDAC_HDMI_0_DAI_ID,
++ HDAC_HDMI_1_DAI_ID,
++ HDAC_HDMI_2_DAI_ID,
++ HDAC_LAST_DAI_ID = HDAC_HDMI_2_DAI_ID,
++};
++
+ struct hdac_hda_pcm {
+ int stream_tag[2];
+ unsigned int format_val[2];
+@@ -13,7 +23,8 @@ struct hdac_hda_pcm {
+
+ struct hdac_hda_priv {
+ struct hda_codec codec;
+- struct hdac_hda_pcm pcm[2];
++ struct hdac_hda_pcm pcm[HDAC_LAST_DAI_ID];
++ bool need_display_power;
+ };
+
+ #define hdac_to_hda_priv(_hdac) \
+--
+2.20.1
+
+
+From 669fa4378c36f288936e3bdc52dfba7b245ea9fe Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 29 Oct 2019 15:40:13 +0200
+Subject: [PATCH 046/130] ASoC: SOF: Intel: add support for snd-hda-codec-hdmi
+
+Add support to implement HDMI/DP audio by using the common
+snd-hda-codec-hdmi driver.
+
+Change of codec driver affects user-space as the two
+drivers expose different mixer controls. A new kernel
+module option "use_common_hdmi" is added to user-space
+to indicate which interface should be used. The default
+driver can be selected via a Kconfig option.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191029134017.18901-6-kai.vehmanen@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 139c7febad1afa221c687f3314560284e482a1f4)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/Kconfig | 10 ++++++++++
+ sound/soc/sof/intel/hda-codec.c | 22 ++++++++++++++++++----
+ sound/soc/sof/intel/hda.c | 6 ++++++
+ sound/soc/sof/intel/hda.h | 6 ++++--
+ 4 files changed, 38 insertions(+), 6 deletions(-)
+
+diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig
+index aac8d5deba3d..95a2d1708dd9 100644
+--- a/sound/soc/sof/intel/Kconfig
++++ b/sound/soc/sof/intel/Kconfig
+@@ -299,6 +299,16 @@ config SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1
+ Say Y if you want to enable DMI Link L1
+ If unsure, select "N".
+
++config SND_SOC_SOF_HDA_COMMON_HDMI_CODEC
++ bool "SOF common HDA HDMI codec driver"
++ depends on SND_SOC_SOF_HDA_LINK
++ depends on SND_HDA_CODEC_HDMI
++ help
++ This adds support for HDMI audio by using the common HDA
++ HDMI/DisplayPort codec driver.
++ Say Y if you want to use the common codec driver with SOF.
++ If unsure select "Y".
++
+ endif ## SND_SOC_SOF_HDA_COMMON
+
+ config SND_SOC_SOF_HDA_LINK_BASELINE
+diff --git a/sound/soc/sof/intel/hda-codec.c b/sound/soc/sof/intel/hda-codec.c
+index 3ca6795a89ba..827f84a0722e 100644
+--- a/sound/soc/sof/intel/hda-codec.c
++++ b/sound/soc/sof/intel/hda-codec.c
+@@ -84,6 +84,8 @@ static int hda_codec_probe(struct snd_sof_dev *sdev, int address)
+ {
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC)
+ struct hdac_hda_priv *hda_priv;
++ struct snd_soc_acpi_mach_params *mach_params = NULL;
++ struct snd_sof_pdata *pdata = sdev->pdata;
+ #endif
+ struct hda_bus *hbus = sof_to_hbus(sdev);
+ struct hdac_device *hdev;
+@@ -113,8 +115,19 @@ static int hda_codec_probe(struct snd_sof_dev *sdev, int address)
+ if (ret < 0)
+ return ret;
+
+- /* use legacy bus only for HDA codecs, idisp uses ext bus */
+- if ((resp & 0xFFFF0000) != IDISP_VID_INTEL) {
++ if (pdata->machine)
++ mach_params = (struct snd_soc_acpi_mach_params *)
++ &pdata->machine->mach_params;
++
++ if ((resp & 0xFFFF0000) == IDISP_VID_INTEL)
++ hda_priv->need_display_power = true;
++
++ /*
++ * if common HDMI codec driver is not used, codec load
++ * is skipped here and hdac_hdmi is used instead
++ */
++ if ((mach_params && mach_params->common_hdmi_codec_drv) ||
++ (resp & 0xFFFF0000) != IDISP_VID_INTEL) {
+ hdev->type = HDA_DEV_LEGACY;
+ hda_codec_load_module(&hda_priv->codec);
+ }
+@@ -155,7 +168,8 @@ int hda_codec_probe_bus(struct snd_sof_dev *sdev)
+ }
+ EXPORT_SYMBOL(hda_codec_probe_bus);
+
+-#if IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI)
++#if IS_ENABLED(CONFIG_SND_HDA_CODEC_HDMI) || \
++ IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI)
+
+ void hda_codec_i915_get(struct snd_sof_dev *sdev)
+ {
+@@ -204,6 +218,6 @@ int hda_codec_i915_exit(struct snd_sof_dev *sdev)
+ }
+ EXPORT_SYMBOL(hda_codec_i915_exit);
+
+-#endif /* CONFIG_SND_SOC_HDAC_HDMI */
++#endif
+
+ MODULE_LICENSE("Dual BSD/GPL");
+diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c
+index 103f4273c4d3..7dc0018dc4c3 100644
+--- a/sound/soc/sof/intel/hda.c
++++ b/sound/soc/sof/intel/hda.c
+@@ -53,6 +53,11 @@ MODULE_PARM_DESC(use_msi, "SOF HDA use PCI MSI mode");
+ static int hda_dmic_num = -1;
+ module_param_named(dmic_num, hda_dmic_num, int, 0444);
+ MODULE_PARM_DESC(dmic_num, "SOF HDA DMIC number");
++
++static bool hda_codec_use_common_hdmi =
++ IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC);
++module_param_named(use_common_hdmi, hda_codec_use_common_hdmi, bool, 0444);
++MODULE_PARM_DESC(use_common_hdmi, "SOF HDA use common HDMI codec driver");
+ #endif
+
+ static const struct hda_dsp_msg_code hda_dsp_rom_msg[] = {
+@@ -459,6 +464,7 @@ static int hda_init_caps(struct snd_sof_dev *sdev)
+ &pdata->machine->mach_params;
+ mach_params->codec_mask = bus->codec_mask;
+ mach_params->platform = dev_name(sdev->dev);
++ mach_params->common_hdmi_codec_drv = hda_codec_use_common_hdmi;
+ }
+
+ /* create codec instances */
+diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
+index 8e03d876a0ac..d6ef657b8900 100644
+--- a/sound/soc/sof/intel/hda.h
++++ b/sound/soc/sof/intel/hda.h
+@@ -565,7 +565,9 @@ void hda_codec_jack_check(struct snd_sof_dev *sdev);
+
+ #endif /* CONFIG_SND_SOC_SOF_HDA */
+
+-#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA) && IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI)
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA) && \
++ (IS_ENABLED(CONFIG_SND_HDA_CODEC_HDMI) || \
++ IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI))
+
+ void hda_codec_i915_get(struct snd_sof_dev *sdev);
+ void hda_codec_i915_put(struct snd_sof_dev *sdev);
+@@ -579,7 +581,7 @@ static inline void hda_codec_i915_put(struct snd_sof_dev *sdev) { }
+ static inline int hda_codec_i915_init(struct snd_sof_dev *sdev) { return 0; }
+ static inline int hda_codec_i915_exit(struct snd_sof_dev *sdev) { return 0; }
+
+-#endif /* CONFIG_SND_SOC_SOF_HDA && CONFIG_SND_SOC_HDAC_HDMI */
++#endif
+
+ /*
+ * Trace Control.
+--
+2.20.1
+
+
+From 480f07ccb82555912594c2b6d560fdeb35176b40 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:35 -0500
+Subject: [PATCH 047/130] ASoC: SOF: Intel: Baytrail: clarify mutual exclusion
+ with Atom/SST driver
+
+Some distros select all options blindly, which leads to confusion and
+bug reports. Since SOF does not support Baytrail-CR for now, and
+UCM/topology files are still being propagated to downstream distros,
+make SOF on Baytrail an opt-in option that first require distros to
+opt-out of existing defaults.
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit df7257e544faf838c3e7ad6b4e89ffe59e87f5e1)
+Bugzilla: 1772498
+---
+ sound/soc/intel/Kconfig | 3 +++
+ sound/soc/sof/intel/Kconfig | 10 +++++++++-
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
+index 9ad89d56092b..5fd4be74b7ea 100644
+--- a/sound/soc/intel/Kconfig
++++ b/sound/soc/intel/Kconfig
+@@ -101,6 +101,9 @@ config SND_SST_ATOM_HIFI2_PLATFORM_ACPI
+ If you have a Intel Baytrail or Cherrytrail platform with an I2S
+ codec, then enable this option by saying Y or m. This is a
+ recommended option
++ This option is mutually exclusive with the SOF support on
++ Baytrail/Cherrytrail. If you want to enable SOF on
++ Baytrail/Cherrytrail, you need to deselect this option first.
+
+ config SND_SOC_INTEL_SKYLAKE
+ tristate "All Skylake/SST Platforms"
+diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig
+index 95a2d1708dd9..b6b509151b34 100644
+--- a/sound/soc/sof/intel/Kconfig
++++ b/sound/soc/sof/intel/Kconfig
+@@ -62,10 +62,18 @@ if SND_SOC_SOF_INTEL_ACPI
+
+ config SND_SOC_SOF_BAYTRAIL_SUPPORT
+ bool "SOF support for Baytrail, Braswell and Cherrytrail"
++ depends on SND_SST_ATOM_HIFI2_PLATFORM_ACPI=n
+ help
+ This adds support for Sound Open Firmware for Intel(R) platforms
+ using the Baytrail, Braswell or Cherrytrail processors.
+- Say Y if you have such a device.
++ This option is mutually exclusive with the Atom/SST and Baytrail
++ legacy drivers. If you want to enable SOF on Baytrail/Cherrytrail,
++ you need to deselect those options first.
++ SOF does not support Baytrail-CR for now, so this option is not
++ recommended for distros. At some point all legacy drivers will be
++ deprecated but not before all userspace firmware/topology/UCM files
++ are made available to downstream distros.
++ Say Y if you want to enable SOF on Baytrail/Cherrytrail
+ If unsure select "N".
+
+ config SND_SOC_SOF_BAYTRAIL
+--
+2.20.1
+
+
+From 8a391c34be3b2140c0498675df21523b8246ceb8 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:36 -0500
+Subject: [PATCH 048/130] ASoC: SOF: Intel: Broadwell: clarify mutual exclusion
+ with legacy driver
+
+Some distros select all options blindly, which leads to confusion and
+bug reports. SOF does not fully support Broadwell due to firmware
+dependencies, the machine drivers can only support one option, and
+UCM/topology files are still being propagated to downstream distros,
+so make SOF on Broadwell an opt-in option that first require distros
+to opt-out of existing defaults.
+
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=204237
+Fixes: f35bf70f61d3 ('ASoC: Intel: Make sure BDW based machine drivers build for SOF')
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit a6955fe0e2309feeab5ec71e4b0dcbe498f4f497)
+Bugzilla: 1772498
+---
+ sound/soc/intel/Kconfig | 3 +++
+ sound/soc/sof/intel/Kconfig | 10 +++++++++-
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
+index 5fd4be74b7ea..658eff2daf4e 100644
+--- a/sound/soc/intel/Kconfig
++++ b/sound/soc/intel/Kconfig
+@@ -59,6 +59,9 @@ config SND_SOC_INTEL_HASWELL
+ If you have a Intel Haswell or Broadwell platform connected to
+ an I2S codec, then enable this option by saying Y or m. This is
+ typically used for Chromebooks. This is a recommended option.
++ This option is mutually exclusive with the SOF support on
++ Broadwell. If you want to enable SOF on Broadwell, you need to
++ deselect this option first.
+
+ config SND_SOC_INTEL_BAYTRAIL
+ tristate "Baytrail (legacy) Platforms"
+diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig
+index b6b509151b34..0db9e80b7cef 100644
+--- a/sound/soc/sof/intel/Kconfig
++++ b/sound/soc/sof/intel/Kconfig
+@@ -85,10 +85,18 @@ config SND_SOC_SOF_BAYTRAIL
+
+ config SND_SOC_SOF_BROADWELL_SUPPORT
+ bool "SOF support for Broadwell"
++ depends on SND_SOC_INTEL_HASWELL=n
+ help
+ This adds support for Sound Open Firmware for Intel(R) platforms
+ using the Broadwell processors.
+- Say Y if you have such a device.
++ This option is mutually exclusive with the Haswell/Broadwell legacy
++ driver. If you want to enable SOF on Broadwell you need to deselect
++ the legacy driver first.
++ SOF does fully support Broadwell yet, so this option is not
++ recommended for distros. At some point all legacy drivers will be
++ deprecated but not before all userspace firmware/topology/UCM files
++ are made available to downstream distros.
++ Say Y if you want to enable SOF on Broadwell
+ If unsure select "N".
+
+ config SND_SOC_SOF_BROADWELL
+--
+2.20.1
+
+
+From 95761516cf6f36ea1e2e23ca4470c756dc0acda3 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:38 -0500
+Subject: [PATCH 049/130] ASoC: SOF: Kconfig: add EXPERT dependency for
+ developer options, clarify help
+
+Some distros select all possible options, despite existing warnings to
+be careful. This leads to e.g. user reports that the HDaudio codec and
+DMIC are not handled by SOF.
+
+Add an explicit menu item to unlock developer options, and make them
+dependent on CONFIG_EXPERT. Hopefully with this double-lock these
+options will only be selected by developers.
+
+GitHub issue: https://github.com/thesofproject/sof/issues/1885
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-5-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 70ae4eb540af32ee6a6260143ccae6054ebd433f)
+Bugzilla: 1772498
+---
+ sound/soc/sof/Kconfig | 25 ++++++++++++++++---------
+ 1 file changed, 16 insertions(+), 9 deletions(-)
+
+diff --git a/sound/soc/sof/Kconfig b/sound/soc/sof/Kconfig
+index 56a3ab66b46b..6435eb531668 100644
+--- a/sound/soc/sof/Kconfig
++++ b/sound/soc/sof/Kconfig
+@@ -14,7 +14,6 @@ config SND_SOC_SOF_PCI
+ depends on PCI
+ select SND_SOC_SOF
+ select SND_SOC_ACPI if ACPI
+- select SND_SOC_SOF_OPTIONS
+ select SND_SOC_SOF_INTEL_PCI if SND_SOC_SOF_INTEL_TOPLEVEL
+ help
+ This adds support for PCI enumeration. This option is
+@@ -27,7 +26,6 @@ config SND_SOC_SOF_ACPI
+ depends on ACPI || COMPILE_TEST
+ select SND_SOC_SOF
+ select SND_SOC_ACPI if ACPI
+- select SND_SOC_SOF_OPTIONS
+ select SND_SOC_SOF_INTEL_ACPI if SND_SOC_SOF_INTEL_TOPLEVEL
+ select IOSF_MBI if X86 && PCI
+ help
+@@ -40,19 +38,23 @@ config SND_SOC_SOF_OF
+ tristate "SOF OF enumeration support"
+ depends on OF || COMPILE_TEST
+ select SND_SOC_SOF
+- select SND_SOC_SOF_OPTIONS
+ help
+ This adds support for Device Tree enumeration. This option is
+ required to enable i.MX8 devices.
+ Say Y if you need this option. If unsure select "N".
+
+-config SND_SOC_SOF_OPTIONS
+- tristate
++config SND_SOC_SOF_DEVELOPER_SUPPORT
++ bool "SOF developer options support"
++ depends on EXPERT
+ help
+- This option is not user-selectable but automagically handled by
+- 'select' statements at a higher level
++ This option unlock SOF developer options for debug/performance/
++ code hardening.
++ Distributions should not select this option, only SOF development
++ teams should select it.
++ Say Y if you are involved in SOF development and need this option
++ If not, select N
+
+-if SND_SOC_SOF_OPTIONS
++if SND_SOC_SOF_DEVELOPER_SUPPORT
+
+ config SND_SOC_SOF_NOCODEC
+ tristate
+@@ -64,6 +66,11 @@ config SND_SOC_SOF_NOCODEC_SUPPORT
+ option if no known codec is detected. This is typically only
+ enabled for developers or devices where the sound card is
+ controlled externally
++ This option is mutually exclusive with the Intel HDaudio support,
++ selecting it may have negative impacts and prevent e.g. microphone
++ functionality from being enabled on Intel CoffeeLake and later
++ platforms.
++ Distributions should not select this option!
+ Say Y if you need this nocodec fallback option
+ If unsure select "N".
+
+@@ -168,7 +175,7 @@ config SND_SOC_SOF_DEBUG_RETAIN_DSP_CONTEXT
+
+ endif ## SND_SOC_SOF_DEBUG
+
+-endif ## SND_SOC_SOF_OPTIONS
++endif ## SND_SOC_SOF_DEVELOPER_SUPPORT
+
+ config SND_SOC_SOF
+ tristate
+--
+2.20.1
+
+
+From 34edfaf5c61574b5156daeb173476650be7b87a0 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:39 -0500
+Subject: [PATCH 050/130] ASoC: SOF: imx: fix reverse CONFIG_SND_SOC_SOF_OF
+ dependency
+
+updated solution to the problem reported with randconfig:
+
+CONFIG_SND_SOC_SOF_IMX depends on CONFIG_SND_SOC_SOF, but is in
+turn referenced by the sof-of-dev driver. This creates a reverse
+dependency that manifests in a link error when CONFIG_SND_SOC_SOF_OF
+is built-in but CONFIG_SND_SOC_SOF_IMX=m:
+
+sound/soc/sof/sof-of-dev.o:(.data+0x118): undefined reference to `sof_imx8_ops'
+
+use def_trisate to propagate the right settings without select.
+
+Fixes: f4df4e4042b0 ("ASoC: SOF: imx8: Fix COMPILE_TEST error")
+Fixes: 202acc565a1f ("ASoC: SOF: imx: Add i.MX8 HW support")
+Suggested-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-6-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit f9ad75468453b019b92c5296e6a04bf7c37f49e4)
+Bugzilla: 1772498
+---
+ sound/soc/sof/imx/Kconfig | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/sof/imx/Kconfig b/sound/soc/sof/imx/Kconfig
+index 5acae75f5750..71f318bc2c74 100644
+--- a/sound/soc/sof/imx/Kconfig
++++ b/sound/soc/sof/imx/Kconfig
+@@ -11,8 +11,8 @@ config SND_SOC_SOF_IMX_TOPLEVEL
+
+ if SND_SOC_SOF_IMX_TOPLEVEL
+
+-config SND_SOC_SOF_IMX8
+- tristate "SOF support for i.MX8"
++config SND_SOC_SOF_IMX8_SUPPORT
++ bool "SOF support for i.MX8"
+ depends on IMX_SCU
+ depends on IMX_DSP
+ help
+@@ -20,4 +20,8 @@ config SND_SOC_SOF_IMX8
+ Say Y if you have such a device.
+ If unsure select "N".
+
++config SND_SOC_SOF_IMX8
++ def_tristate SND_SOC_SOF_OF
++ depends on SND_SOC_SOF_IMX8_SUPPORT
++
+ endif ## SND_SOC_SOF_IMX_IMX_TOPLEVEL
+--
+2.20.1
+
+
+From 5efd9ba11e644ef74a0c51d543145f116a886438 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:40 -0500
+Subject: [PATCH 051/130] ASoC: SOF: Intel: use def_tristate, avoid using
+ select
+
+So far we used select to use the relevant built-in/module options, but
+this led to blurring layers between core and Intel Kconfigs.
+
+Use def_tristate works just as well and removes Intel stuff from the code.
+
+Suggested-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-7-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit b000135e5f272118e576e9720590e5979f0abe49)
+Bugzilla: 1772498
+---
+ sound/soc/sof/Kconfig | 2 --
+ sound/soc/sof/intel/Kconfig | 4 ++--
+ 2 files changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/sound/soc/sof/Kconfig b/sound/soc/sof/Kconfig
+index 6435eb531668..71a0fc075a63 100644
+--- a/sound/soc/sof/Kconfig
++++ b/sound/soc/sof/Kconfig
+@@ -14,7 +14,6 @@ config SND_SOC_SOF_PCI
+ depends on PCI
+ select SND_SOC_SOF
+ select SND_SOC_ACPI if ACPI
+- select SND_SOC_SOF_INTEL_PCI if SND_SOC_SOF_INTEL_TOPLEVEL
+ help
+ This adds support for PCI enumeration. This option is
+ required to enable Intel Skylake+ devices
+@@ -26,7 +25,6 @@ config SND_SOC_SOF_ACPI
+ depends on ACPI || COMPILE_TEST
+ select SND_SOC_SOF
+ select SND_SOC_ACPI if ACPI
+- select SND_SOC_SOF_INTEL_ACPI if SND_SOC_SOF_INTEL_TOPLEVEL
+ select IOSF_MBI if X86 && PCI
+ help
+ This adds support for ACPI enumeration. This option is required
+diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig
+index 0db9e80b7cef..f7c30a08ffbf 100644
+--- a/sound/soc/sof/intel/Kconfig
++++ b/sound/soc/sof/intel/Kconfig
+@@ -10,7 +10,7 @@ config SND_SOC_SOF_INTEL_TOPLEVEL
+ if SND_SOC_SOF_INTEL_TOPLEVEL
+
+ config SND_SOC_SOF_INTEL_ACPI
+- tristate
++ def_tristate SND_SOC_SOF_ACPI
+ select SND_SOC_SOF_BAYTRAIL if SND_SOC_SOF_BAYTRAIL_SUPPORT
+ select SND_SOC_SOF_BROADWELL if SND_SOC_SOF_BROADWELL_SUPPORT
+ help
+@@ -18,7 +18,7 @@ config SND_SOC_SOF_INTEL_ACPI
+ 'select' statements at a higher level
+
+ config SND_SOC_SOF_INTEL_PCI
+- tristate
++ def_tristate SND_SOC_SOF_PCI
+ select SND_SOC_SOF_MERRIFIELD if SND_SOC_SOF_MERRIFIELD_SUPPORT
+ select SND_SOC_SOF_APOLLOLAKE if SND_SOC_SOF_APOLLOLAKE_SUPPORT
+ select SND_SOC_SOF_GEMINILAKE if SND_SOC_SOF_GEMINILAKE_SUPPORT
+--
+2.20.1
+
+
+From 19b52530d84901fdfb1924862f3f82458ad110bc Mon Sep 17 00:00:00 2001
+From: Krzysztof Kozlowski <krzk@kernel.org>
+Date: Fri, 4 Oct 2019 16:49:31 +0200
+Subject: [PATCH 052/130] sound: Fix Kconfig indentation
+
+Adjust indentation from spaces to tab (+optional two spaces) as in
+coding style with command like:
+ $ sed -e 's/^ /\t/' -i */Kconfig
+
+Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
+Acked-by: Mark Brown <broonie@kernel.org>
+Link: https://lore.kernel.org/r/20191004144931.3851-1-krzk@kernel.org
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 82e8d723e9e6698572098bf2976223d5069b34b5)
+Bugzilla: 1772498
+---
+ sound/core/Kconfig | 28 ++++++++++----------
+ sound/drivers/Kconfig | 20 +++++++-------
+ sound/firewire/Kconfig | 6 ++---
+ sound/isa/Kconfig | 18 ++++++-------
+ sound/mips/Kconfig | 12 ++++-----
+ sound/pci/Kconfig | 2 +-
+ sound/soc/cirrus/Kconfig | 14 +++++-----
+ sound/soc/codecs/Kconfig | 32 +++++++++++------------
+ sound/soc/intel/Kconfig | 2 +-
+ sound/soc/intel/boards/Kconfig | 48 +++++++++++++++++-----------------
+ sound/soc/pxa/Kconfig | 16 ++++++------
+ sound/soc/qcom/Kconfig | 20 +++++++-------
+ sound/soc/samsung/Kconfig | 8 +++---
+ sound/soc/sof/imx/Kconfig | 12 ++++-----
+ sound/soc/sof/intel/Kconfig | 22 ++++++++--------
+ sound/soc/xilinx/Kconfig | 20 +++++++-------
+ sound/soc/zte/Kconfig | 12 ++++-----
+ sound/usb/Kconfig | 32 +++++++++++------------
+ 18 files changed, 162 insertions(+), 162 deletions(-)
+
+diff --git a/sound/core/Kconfig b/sound/core/Kconfig
+index 4ee79ad6ae22..4044c42d8595 100644
+--- a/sound/core/Kconfig
++++ b/sound/core/Kconfig
+@@ -72,11 +72,11 @@ config SND_PCM_OSS
+ config SND_PCM_OSS_PLUGINS
+ bool "OSS PCM (digital audio) API - Include plugin system"
+ depends on SND_PCM_OSS
+- default y
++ default y
+ help
+- If you disable this option, the ALSA's OSS PCM API will not
+- support conversion of channels, formats and rates. It will
+- behave like most of new OSS/Free drivers in 2.4/2.6 kernels.
++ If you disable this option, the ALSA's OSS PCM API will not
++ support conversion of channels, formats and rates. It will
++ behave like most of new OSS/Free drivers in 2.4/2.6 kernels.
+
+ config SND_PCM_TIMER
+ bool "PCM timer interface" if EXPERT
+@@ -128,13 +128,13 @@ config SND_SUPPORT_OLD_API
+ or older).
+
+ config SND_PROC_FS
+- bool "Sound Proc FS Support" if EXPERT
+- depends on PROC_FS
+- default y
+- help
+- Say 'N' to disable Sound proc FS, which may reduce code size about
+- 9KB on x86_64 platform.
+- If unsure say Y.
++ bool "Sound Proc FS Support" if EXPERT
++ depends on PROC_FS
++ default y
++ help
++ Say 'N' to disable Sound proc FS, which may reduce code size about
++ 9KB on x86_64 platform.
++ If unsure say Y.
+
+ config SND_VERBOSE_PROCFS
+ bool "Verbose procfs contents"
+@@ -142,8 +142,8 @@ config SND_VERBOSE_PROCFS
+ default y
+ help
+ Say Y here to include code for verbose procfs contents (provides
+- useful information to developers when a problem occurs). On the
+- other side, it makes the ALSA subsystem larger.
++ useful information to developers when a problem occurs). On the
++ other side, it makes the ALSA subsystem larger.
+
+ config SND_VERBOSE_PRINTK
+ bool "Verbose printk"
+@@ -164,7 +164,7 @@ config SND_DEBUG_VERBOSE
+ depends on SND_DEBUG
+ help
+ Say Y here to enable extra-verbose debugging messages.
+-
++
+ Let me repeat: it enables EXTRA-VERBOSE DEBUGGING messages.
+ So, say Y only if you are ready to be annoyed.
+
+diff --git a/sound/drivers/Kconfig b/sound/drivers/Kconfig
+index 09932cc98e9d..15d6d46acf9c 100644
+--- a/sound/drivers/Kconfig
++++ b/sound/drivers/Kconfig
+@@ -1,7 +1,7 @@
+ # SPDX-License-Identifier: GPL-2.0-only
+ config SND_MPU401_UART
+- tristate
+- select SND_RAWMIDI
++ tristate
++ select SND_RAWMIDI
+
+ config SND_OPL3_LIB
+ tristate
+@@ -90,16 +90,16 @@ config SND_DUMMY
+ will be called snd-dummy.
+
+ config SND_ALOOP
+- tristate "Generic loopback driver (PCM)"
+- select SND_PCM
+- help
+- Say 'Y' or 'M' to include support for the PCM loopback device.
++ tristate "Generic loopback driver (PCM)"
++ select SND_PCM
++ help
++ Say 'Y' or 'M' to include support for the PCM loopback device.
+ This module returns played samples back to the user space using
+ the standard ALSA PCM device. The devices are routed 0->1 and
+- 1->0, where first number is the playback PCM device and second
++ 1->0, where first number is the playback PCM device and second
+ number is the capture device. Module creates two PCM devices and
+ configured number of substreams (see the pcm_substreams module
+- parameter).
++ parameter).
+
+ The loopback device allows time sychronization with an external
+ timing source using the time shift universal control (+-20%
+@@ -142,12 +142,12 @@ config SND_MTS64
+ select SND_RAWMIDI
+ help
+ The ESI Miditerminal 4140 is a 4 In 4 Out MIDI Interface with
+- additional SMPTE Timecode capabilities for the parallel port.
++ additional SMPTE Timecode capabilities for the parallel port.
+
+ Say 'Y' to include support for this device.
+
+ To compile this driver as a module, chose 'M' here: the module
+- will be called snd-mts64.
++ will be called snd-mts64.
+
+ config SND_SERIAL_U16550
+ tristate "UART16550 serial MIDI driver"
+diff --git a/sound/firewire/Kconfig b/sound/firewire/Kconfig
+index b0a904cdb932..995c2cefc222 100644
+--- a/sound/firewire/Kconfig
++++ b/sound/firewire/Kconfig
+@@ -77,7 +77,7 @@ config SND_BEBOB
+ tristate "BridgeCo DM1000/DM1100/DM1500 with BeBoB firmware"
+ select SND_FIREWIRE_LIB
+ select SND_HWDEP
+- help
++ help
+ Say Y here to include support for FireWire devices based
+ on BridgeCo DM1000/DM1100/DM1500 with BeBoB firmware:
+ * Edirol FA-66/FA-101
+@@ -111,8 +111,8 @@ config SND_BEBOB
+ * M-Audio FireWire 1814/ProjectMix IO
+ * Digidesign Mbox 2 Pro
+
+- To compile this driver as a module, choose M here: the module
+- will be called snd-bebob.
++ To compile this driver as a module, choose M here: the module
++ will be called snd-bebob.
+
+ config SND_FIREWIRE_DIGI00X
+ tristate "Digidesign Digi 002/003 family support"
+diff --git a/sound/isa/Kconfig b/sound/isa/Kconfig
+index b690ed937cbe..6ffa48dd5983 100644
+--- a/sound/isa/Kconfig
++++ b/sound/isa/Kconfig
+@@ -2,22 +2,22 @@
+ # ALSA ISA drivers
+
+ config SND_WSS_LIB
+- tristate
+- select SND_PCM
++ tristate
++ select SND_PCM
+ select SND_TIMER
+
+ config SND_SB_COMMON
+- tristate
++ tristate
+
+ config SND_SB8_DSP
+- tristate
+- select SND_PCM
+- select SND_SB_COMMON
++ tristate
++ select SND_PCM
++ select SND_SB_COMMON
+
+ config SND_SB16_DSP
+- tristate
+- select SND_PCM
+- select SND_SB_COMMON
++ tristate
++ select SND_PCM
++ select SND_SB_COMMON
+
+ menuconfig SND_ISA
+ bool "ISA sound devices"
+diff --git a/sound/mips/Kconfig b/sound/mips/Kconfig
+index 8a33402fd415..b497b803c834 100644
+--- a/sound/mips/Kconfig
++++ b/sound/mips/Kconfig
+@@ -14,15 +14,15 @@ config SND_SGI_O2
+ tristate "SGI O2 Audio"
+ depends on SGI_IP32
+ select SND_PCM
+- help
+- Sound support for the SGI O2 Workstation.
++ help
++ Sound support for the SGI O2 Workstation.
+
+ config SND_SGI_HAL2
+- tristate "SGI HAL2 Audio"
+- depends on SGI_HAS_HAL2
++ tristate "SGI HAL2 Audio"
++ depends on SGI_HAS_HAL2
+ select SND_PCM
+- help
+- Sound support for the SGI Indy and Indigo2 Workstation.
++ help
++ Sound support for the SGI Indy and Indigo2 Workstation.
+
+ endif # SND_MIPS
+
+diff --git a/sound/pci/Kconfig b/sound/pci/Kconfig
+index 7630f808d087..93bc9bef7641 100644
+--- a/sound/pci/Kconfig
++++ b/sound/pci/Kconfig
+@@ -217,7 +217,7 @@ config SND_CMIPCI
+ will be called snd-cmipci.
+
+ config SND_OXYGEN_LIB
+- tristate
++ tristate
+
+ config SND_OXYGEN
+ tristate "C-Media 8786, 8787, 8788 (Oxygen)"
+diff --git a/sound/soc/cirrus/Kconfig b/sound/soc/cirrus/Kconfig
+index 2333efac758a..8039a8febefa 100644
+--- a/sound/soc/cirrus/Kconfig
++++ b/sound/soc/cirrus/Kconfig
+@@ -33,13 +33,13 @@ config SND_EP93XX_SOC_AC97
+ select SND_SOC_AC97_BUS
+
+ config SND_EP93XX_SOC_SNAPPERCL15
+- tristate "SoC Audio support for Bluewater Systems Snapper CL15 module"
+- depends on SND_EP93XX_SOC && MACH_SNAPPER_CL15 && I2C
+- select SND_EP93XX_SOC_I2S
+- select SND_SOC_TLV320AIC23_I2C
+- help
+- Say Y or M here if you want to add support for I2S audio on the
+- Bluewater Systems Snapper CL15 module.
++ tristate "SoC Audio support for Bluewater Systems Snapper CL15 module"
++ depends on SND_EP93XX_SOC && MACH_SNAPPER_CL15 && I2C
++ select SND_EP93XX_SOC_I2S
++ select SND_SOC_TLV320AIC23_I2C
++ help
++ Say Y or M here if you want to add support for I2S audio on the
++ Bluewater Systems Snapper CL15 module.
+
+ config SND_EP93XX_SOC_SIMONE
+ tristate "SoC Audio support for Simplemachines Sim.One board"
+diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
+index 229cc89f8c5a..ef9d73b89623 100644
+--- a/sound/soc/codecs/Kconfig
++++ b/sound/soc/codecs/Kconfig
+@@ -257,16 +257,16 @@ config SND_SOC_ALL_CODECS
+ select SND_SOC_WM9705 if (SND_SOC_AC97_BUS || SND_SOC_AC97_BUS_NEW)
+ select SND_SOC_WM9712 if (SND_SOC_AC97_BUS || SND_SOC_AC97_BUS_NEW)
+ select SND_SOC_WM9713 if (SND_SOC_AC97_BUS || SND_SOC_AC97_BUS_NEW)
+- help
+- Normally ASoC codec drivers are only built if a machine driver which
+- uses them is also built since they are only usable with a machine
+- driver. Selecting this option will allow these drivers to be built
+- without an explicit machine driver for test and development purposes.
++ help
++ Normally ASoC codec drivers are only built if a machine driver which
++ uses them is also built since they are only usable with a machine
++ driver. Selecting this option will allow these drivers to be built
++ without an explicit machine driver for test and development purposes.
+
+ Support for the bus types used to access the codecs to be built must
+ be selected separately.
+
+- If unsure select "N".
++ If unsure select "N".
+
+ config SND_SOC_88PM860X
+ tristate
+@@ -570,8 +570,8 @@ config SND_SOC_CS42XX8_I2C
+
+ # Cirrus Logic CS43130 HiFi DAC
+ config SND_SOC_CS43130
+- tristate "Cirrus Logic CS43130 CODEC"
+- depends on I2C
++ tristate "Cirrus Logic CS43130 CODEC"
++ depends on I2C
+
+ config SND_SOC_CS4341
+ tristate "Cirrus Logic CS4341 CODEC"
+@@ -643,19 +643,19 @@ config SND_SOC_L3
+ tristate
+
+ config SND_SOC_DA7210
+- tristate
++ tristate
+
+ config SND_SOC_DA7213
+- tristate
++ tristate
+
+ config SND_SOC_DA7218
+ tristate
+
+ config SND_SOC_DA7219
+- tristate
++ tristate
+
+ config SND_SOC_DA732X
+- tristate
++ tristate
+
+ config SND_SOC_DA9055
+ tristate
+@@ -717,7 +717,7 @@ config SND_SOC_INNO_RK3036
+ select REGMAP_MMIO
+
+ config SND_SOC_ISABELLE
+- tristate
++ tristate
+
+ config SND_SOC_LM49453
+ tristate
+@@ -988,7 +988,7 @@ config SND_SOC_RT5640
+ tristate
+
+ config SND_SOC_RT5645
+- tristate
++ tristate
+
+ config SND_SOC_RT5651
+ tristate
+@@ -1220,7 +1220,7 @@ config SND_SOC_UDA134X
+ tristate
+
+ config SND_SOC_UDA1380
+- tristate
++ tristate
+ depends on I2C
+
+ config SND_SOC_WCD9335
+@@ -1348,7 +1348,7 @@ config SND_SOC_WM8904
+ depends on I2C
+
+ config SND_SOC_WM8940
+- tristate
++ tristate
+
+ config SND_SOC_WM8955
+ tristate
+diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
+index 658eff2daf4e..7e9feca333b7 100644
+--- a/sound/soc/intel/Kconfig
++++ b/sound/soc/intel/Kconfig
+@@ -119,7 +119,7 @@ config SND_SOC_INTEL_SKYLAKE
+ select SND_SOC_INTEL_CNL
+ select SND_SOC_INTEL_CFL
+ help
+- This is a backwards-compatible option to select all devices
++ This is a backwards-compatible option to select all devices
+ supported by the Intel SST/Skylake driver. This option is no
+ longer recommended and will be deprecated when the SOF
+ driver is introduced. Distributions should explicitly
+diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
+index 5c27f7ab4a5f..882ff36a7c9c 100644
+--- a/sound/soc/intel/boards/Kconfig
++++ b/sound/soc/intel/boards/Kconfig
+@@ -3,13 +3,13 @@ menuconfig SND_SOC_INTEL_MACH
+ bool "Intel Machine drivers"
+ depends on SND_SOC_INTEL_SST_TOPLEVEL || SND_SOC_SOF_INTEL_TOPLEVEL
+ help
+- Intel ASoC Machine Drivers. If you have a Intel machine that
+- has an audio controller with a DSP and I2S or DMIC port, then
+- enable this option by saying Y
++ Intel ASoC Machine Drivers. If you have a Intel machine that
++ has an audio controller with a DSP and I2S or DMIC port, then
++ enable this option by saying Y
+
+- Note that the answer to this question doesn't directly affect the
+- kernel: saying N will just cause the configurator to skip all
+- the questions about Intel ASoC machine drivers.
++ Note that the answer to this question doesn't directly affect the
++ kernel: saying N will just cause the configurator to skip all
++ the questions about Intel ASoC machine drivers.
+
+ if SND_SOC_INTEL_MACH
+
+@@ -114,11 +114,11 @@ config SND_SOC_INTEL_CHT_BSW_RT5672_MACH
+ depends on X86_INTEL_LPSS || COMPILE_TEST
+ select SND_SOC_ACPI
+ select SND_SOC_RT5670
+- help
+- This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell
+- platforms with RT5672 audio codec.
+- Say Y or m if you have such a device. This is a recommended option.
+- If unsure select "N".
++ help
++ This adds support for ASoC machine driver for Intel(R) Cherrytrail & Braswell
++ platforms with RT5672 audio codec.
++ Say Y or m if you have such a device. This is a recommended option.
++ If unsure select "N".
+
+ config SND_SOC_INTEL_CHT_BSW_RT5645_MACH
+ tristate "Cherrytrail & Braswell with RT5645/5650 codec"
+@@ -311,20 +311,20 @@ config SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH
+ If unsure select "N".
+
+ config SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH
+- tristate "KBL with RT5663, RT5514 and MAX98927 in I2S Mode"
++ tristate "KBL with RT5663, RT5514 and MAX98927 in I2S Mode"
+ depends on I2C && ACPI
+ depends on MFD_INTEL_LPSS || COMPILE_TEST
+- depends on SPI
+- select SND_SOC_RT5663
+- select SND_SOC_RT5514
+- select SND_SOC_RT5514_SPI
+- select SND_SOC_MAX98927
+- select SND_SOC_HDAC_HDMI
+- help
+- This adds support for ASoC Onboard Codec I2S machine driver. This will
+- create an alsa sound card for RT5663 + RT5514 + MAX98927.
+- Say Y or m if you have such a device. This is a recommended option.
+- If unsure select "N".
++ depends on SPI
++ select SND_SOC_RT5663
++ select SND_SOC_RT5514
++ select SND_SOC_RT5514_SPI
++ select SND_SOC_MAX98927
++ select SND_SOC_HDAC_HDMI
++ help
++ This adds support for ASoC Onboard Codec I2S machine driver. This will
++ create an alsa sound card for RT5663 + RT5514 + MAX98927.
++ Say Y or m if you have such a device. This is a recommended option.
++ If unsure select "N".
+
+ config SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH
+ tristate "KBL with DA7219 and MAX98357A in I2S Mode"
+@@ -393,7 +393,7 @@ config SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH
+ help
+ This adds support for ASoC machine driver for Intel platforms
+ SKL/KBL/BXT/APL with iDisp, HDA audio codecs.
+- Say Y or m if you have such a device. This is a recommended option.
++ Say Y or m if you have such a device. This is a recommended option.
+ If unsure select "N".
+
+ endif ## SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC || SND_SOC_SOF_HDA_AUDIO_CODEC
+diff --git a/sound/soc/pxa/Kconfig b/sound/soc/pxa/Kconfig
+index 213d4dab0346..295cfffa4646 100644
+--- a/sound/soc/pxa/Kconfig
++++ b/sound/soc/pxa/Kconfig
+@@ -190,14 +190,14 @@ config SND_PXA2XX_SOC_MAGICIAN
+ HTC Magician.
+
+ config SND_PXA2XX_SOC_MIOA701
+- tristate "SoC Audio support for MIO A701"
+- depends on SND_PXA2XX_SOC && MACH_MIOA701
++ tristate "SoC Audio support for MIO A701"
++ depends on SND_PXA2XX_SOC && MACH_MIOA701
+ depends on AC97_BUS=n
+- select SND_PXA2XX_SOC_AC97
+- select SND_SOC_WM9713
+- help
+- Say Y if you want to add support for SoC audio on the
+- MIO A701.
++ select SND_PXA2XX_SOC_AC97
++ select SND_SOC_WM9713
++ help
++ Say Y if you want to add support for SoC audio on the
++ MIO A701.
+
+ config SND_PXA2XX_SOC_IMOTE2
+ tristate "SoC Audio support for IMote 2"
+@@ -205,7 +205,7 @@ config SND_PXA2XX_SOC_IMOTE2
+ select SND_PXA2XX_SOC_I2S
+ select SND_SOC_WM8940
+ help
+- Say Y if you want to add support for SoC audio on the
++ Say Y if you want to add support for SoC audio on the
+ IMote 2.
+
+ config SND_MMP_SOC_BROWNSTONE
+diff --git a/sound/soc/qcom/Kconfig b/sound/soc/qcom/Kconfig
+index 60086858e920..6530d2462a9e 100644
+--- a/sound/soc/qcom/Kconfig
++++ b/sound/soc/qcom/Kconfig
+@@ -3,8 +3,8 @@ config SND_SOC_QCOM
+ tristate "ASoC support for QCOM platforms"
+ depends on ARCH_QCOM || COMPILE_TEST
+ help
+- Say Y or M if you want to add support to use audio devices
+- in Qualcomm Technologies SOC-based platforms.
++ Say Y or M if you want to add support to use audio devices
++ in Qualcomm Technologies SOC-based platforms.
+
+ config SND_SOC_LPASS_CPU
+ tristate
+@@ -30,17 +30,17 @@ config SND_SOC_STORM
+ select SND_SOC_LPASS_IPQ806X
+ select SND_SOC_MAX98357A
+ help
+- Say Y or M if you want add support for SoC audio on the
+- Qualcomm Technologies IPQ806X-based Storm board.
++ Say Y or M if you want add support for SoC audio on the
++ Qualcomm Technologies IPQ806X-based Storm board.
+
+ config SND_SOC_APQ8016_SBC
+ tristate "SoC Audio support for APQ8016 SBC platforms"
+ depends on SND_SOC_QCOM
+ select SND_SOC_LPASS_APQ8016
+ help
+- Support for Qualcomm Technologies LPASS audio block in
+- APQ8016 SOC-based systems.
+- Say Y if you want to use audio devices on MI2S.
++ Support for Qualcomm Technologies LPASS audio block in
++ APQ8016 SOC-based systems.
++ Say Y if you want to use audio devices on MI2S.
+
+ config SND_SOC_QCOM_COMMON
+ tristate
+@@ -93,9 +93,9 @@ config SND_SOC_MSM8996
+ select SND_SOC_QDSP6
+ select SND_SOC_QCOM_COMMON
+ help
+- Support for Qualcomm Technologies LPASS audio block in
+- APQ8096 SoC-based systems.
+- Say Y if you want to use audio device on this SoCs
++ Support for Qualcomm Technologies LPASS audio block in
++ APQ8096 SoC-based systems.
++ Say Y if you want to use audio device on this SoCs
+
+ config SND_SOC_SDM845
+ tristate "SoC Machine driver for SDM845 boards"
+diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig
+index 638983123d8f..9304177de78a 100644
+--- a/sound/soc/samsung/Kconfig
++++ b/sound/soc/samsung/Kconfig
+@@ -195,10 +195,10 @@ config SND_SOC_ODROID
+ Say Y here to enable audio support for the Odroid XU3/XU4.
+
+ config SND_SOC_ARNDALE_RT5631_ALC5631
+- tristate "Audio support for RT5631(ALC5631) on Arndale Board"
+- depends on I2C
+- select SND_SAMSUNG_I2S
+- select SND_SOC_RT5631
++ tristate "Audio support for RT5631(ALC5631) on Arndale Board"
++ depends on I2C
++ select SND_SAMSUNG_I2S
++ select SND_SOC_RT5631
+
+ config SND_SOC_SAMSUNG_TM2_WM5110
+ tristate "SoC I2S Audio support for WM5110 on TM2 board"
+diff --git a/sound/soc/sof/imx/Kconfig b/sound/soc/sof/imx/Kconfig
+index 71f318bc2c74..bae4f7bf5f75 100644
+--- a/sound/soc/sof/imx/Kconfig
++++ b/sound/soc/sof/imx/Kconfig
+@@ -5,9 +5,9 @@ config SND_SOC_SOF_IMX_TOPLEVEL
+ depends on ARM64|| COMPILE_TEST
+ depends on SND_SOC_SOF_OF
+ help
+- This adds support for Sound Open Firmware for NXP i.MX platforms.
+- Say Y if you have such a device.
+- If unsure select "N".
++ This adds support for Sound Open Firmware for NXP i.MX platforms.
++ Say Y if you have such a device.
++ If unsure select "N".
+
+ if SND_SOC_SOF_IMX_TOPLEVEL
+
+@@ -16,9 +16,9 @@ config SND_SOC_SOF_IMX8_SUPPORT
+ depends on IMX_SCU
+ depends on IMX_DSP
+ help
+- This adds support for Sound Open Firmware for NXP i.MX8 platforms
+- Say Y if you have such a device.
+- If unsure select "N".
++ This adds support for Sound Open Firmware for NXP i.MX8 platforms
++ Say Y if you have such a device.
++ If unsure select "N".
+
+ config SND_SOC_SOF_IMX8
+ def_tristate SND_SOC_SOF_OF
+diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig
+index f7c30a08ffbf..b27fd3fdf335 100644
+--- a/sound/soc/sof/intel/Kconfig
++++ b/sound/soc/sof/intel/Kconfig
+@@ -37,7 +37,7 @@ config SND_SOC_SOF_INTEL_PCI
+ config SND_SOC_SOF_INTEL_HIFI_EP_IPC
+ tristate
+ help
+- This option is not user-selectable but automagically handled by
++ This option is not user-selectable but automagically handled by
+ 'select' statements at a higher level
+
+ config SND_SOC_SOF_INTEL_ATOM_HIFI_EP
+@@ -234,31 +234,31 @@ config SND_SOC_SOF_COMETLAKE_H_SUPPORT
+ config SND_SOC_SOF_TIGERLAKE_SUPPORT
+ bool "SOF support for Tigerlake"
+ help
+- This adds support for Sound Open Firmware for Intel(R) platforms
+- using the Tigerlake processors.
+- Say Y if you have such a device.
+- If unsure select "N".
++ This adds support for Sound Open Firmware for Intel(R) platforms
++ using the Tigerlake processors.
++ Say Y if you have such a device.
++ If unsure select "N".
+
+ config SND_SOC_SOF_TIGERLAKE
+ tristate
+ select SND_SOC_SOF_HDA_COMMON
+ help
+- This option is not user-selectable but automagically handled by
++ This option is not user-selectable but automagically handled by
+ 'select' statements at a higher level
+
+ config SND_SOC_SOF_ELKHARTLAKE_SUPPORT
+ bool "SOF support for ElkhartLake"
+ help
+- This adds support for Sound Open Firmware for Intel(R) platforms
+- using the ElkhartLake processors.
+- Say Y if you have such a device.
+- If unsure select "N".
++ This adds support for Sound Open Firmware for Intel(R) platforms
++ using the ElkhartLake processors.
++ Say Y if you have such a device.
++ If unsure select "N".
+
+ config SND_SOC_SOF_ELKHARTLAKE
+ tristate
+ select SND_SOC_SOF_HDA_COMMON
+ help
+- This option is not user-selectable but automagically handled by
++ This option is not user-selectable but automagically handled by
+ 'select' statements at a higher level
+
+ config SND_SOC_SOF_JASPERLAKE_SUPPORT
+diff --git a/sound/soc/xilinx/Kconfig b/sound/soc/xilinx/Kconfig
+index 69973179ef15..1d3586b68db7 100644
+--- a/sound/soc/xilinx/Kconfig
++++ b/sound/soc/xilinx/Kconfig
+@@ -9,15 +9,15 @@ config SND_SOC_XILINX_I2S
+ encapsulates PCM in AES format and sends AES data.
+
+ config SND_SOC_XILINX_AUDIO_FORMATTER
+- tristate "Audio support for the the Xilinx audio formatter"
+- help
+- Select this option to enable Xilinx audio formatter
+- support. This provides DMA platform device support for
+- audio functionality.
++ tristate "Audio support for the the Xilinx audio formatter"
++ help
++ Select this option to enable Xilinx audio formatter
++ support. This provides DMA platform device support for
++ audio functionality.
+
+ config SND_SOC_XILINX_SPDIF
+- tristate "Audio support for the the Xilinx SPDIF"
+- help
+- Select this option to enable Xilinx SPDIF Audio.
+- This provides playback and capture of SPDIF audio in
+- AES format.
++ tristate "Audio support for the the Xilinx SPDIF"
++ help
++ Select this option to enable Xilinx SPDIF Audio.
++ This provides playback and capture of SPDIF audio in
++ AES format.
+diff --git a/sound/soc/zte/Kconfig b/sound/soc/zte/Kconfig
+index a7842e4b791c..a23d4f13ca19 100644
+--- a/sound/soc/zte/Kconfig
++++ b/sound/soc/zte/Kconfig
+@@ -18,9 +18,9 @@ config ZX_I2S
+ ZTE ZX I2S interface
+
+ config ZX_TDM
+- tristate "ZTE ZX TDM Driver Support"
+- depends on COMMON_CLK
+- select SND_SOC_GENERIC_DMAENGINE_PCM
+- help
+- Say Y or M if you want to add support for codecs attached to the
+- ZTE ZX TDM interface
++ tristate "ZTE ZX TDM Driver Support"
++ depends on COMMON_CLK
++ select SND_SOC_GENERIC_DMAENGINE_PCM
++ help
++ Say Y or M if you want to add support for codecs attached to the
++ ZTE ZX TDM interface
+diff --git a/sound/usb/Kconfig b/sound/usb/Kconfig
+index e2c53a0841da..059242f15d75 100644
+--- a/sound/usb/Kconfig
++++ b/sound/usb/Kconfig
+@@ -107,24 +107,24 @@ config SND_USB_US122L
+ will be called snd-usb-us122l.
+
+ config SND_USB_6FIRE
+- tristate "TerraTec DMX 6Fire USB"
+- select FW_LOADER
+- select BITREVERSE
+- select SND_RAWMIDI
+- select SND_PCM
+- select SND_VMASTER
+- help
+- Say Y here to include support for TerraTec 6fire DMX USB interface.
+-
+- You will need firmware files in order to be able to use the device
+- after it has been coldstarted. An install script for the firmware
+- and further help can be found at
+- http://sixfireusb.sourceforge.net
++ tristate "TerraTec DMX 6Fire USB"
++ select FW_LOADER
++ select BITREVERSE
++ select SND_RAWMIDI
++ select SND_PCM
++ select SND_VMASTER
++ help
++ Say Y here to include support for TerraTec 6fire DMX USB interface.
++
++ You will need firmware files in order to be able to use the device
++ after it has been coldstarted. An install script for the firmware
++ and further help can be found at
++ http://sixfireusb.sourceforge.net
+
+ config SND_USB_HIFACE
+- tristate "M2Tech hiFace USB-SPDIF driver"
+- select SND_PCM
+- help
++ tristate "M2Tech hiFace USB-SPDIF driver"
++ select SND_PCM
++ help
+ Select this option to include support for M2Tech hiFace USB-SPDIF
+ interface.
+
+--
+2.20.1
+
+
+From d04677b943723aa40149b14f28e02a51cdf68080 Mon Sep 17 00:00:00 2001
+From: Sam McNally <sammc@chromium.org>
+Date: Tue, 17 Sep 2019 15:49:33 +1000
+Subject: [PATCH 053/130] ASoC: Intel: cht_bsw_rt5645: Add quirk for boards
+ using pmc_plt_clk_0
+
+As of commit 648e921888ad ("clk: x86: Stop marking clocks as
+CLK_IS_CRITICAL"), the cht_bsw_rt5645 driver needs to enable the clock
+it's using for the codec's mclk. It does this from commit 7735bce05a9c
+("ASoC: Intel: boards: use devm_clk_get() unconditionally"), enabling
+pmc_plt_clk_3. However, Strago family Chromebooks use pmc_plt_clk_0 for
+the codec mclk, resulting in white noise with some digital microphones.
+Add a DMI-based quirk for Strago family Chromebooks to use pmc_plt_clk_0
+instead - mirroring the changes made to cht_bsw_max98090_ti in
+commit a182ecd3809c ("ASoC: intel: cht_bsw_max98090_ti: Add quirk for
+boards using pmc_plt_clk_0") and making use of the existing
+dmi_check_system() call and related infrastructure added in
+commit 22af29114eb4 ("ASoC: Intel: cht-bsw-rt5645: add quirks for
+SSP0/AIF1/AIF2 routing").
+
+Signed-off-by: Sam McNally <sammc@chromium.org>
+Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20190917054933.209335-1-sammc@chromium.org
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit adebb11139029ddf1fba6f796c4a476f17eacddc)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/cht_bsw_rt5645.c | 26 +++++++++++++++++++------
+ 1 file changed, 20 insertions(+), 6 deletions(-)
+
+diff --git a/sound/soc/intel/boards/cht_bsw_rt5645.c b/sound/soc/intel/boards/cht_bsw_rt5645.c
+index 8879c3be29d5..c68a5b85a4a0 100644
+--- a/sound/soc/intel/boards/cht_bsw_rt5645.c
++++ b/sound/soc/intel/boards/cht_bsw_rt5645.c
+@@ -48,6 +48,7 @@ struct cht_mc_private {
+ #define CHT_RT5645_SSP2_AIF2 BIT(16) /* default is using AIF1 */
+ #define CHT_RT5645_SSP0_AIF1 BIT(17)
+ #define CHT_RT5645_SSP0_AIF2 BIT(18)
++#define CHT_RT5645_PMC_PLT_CLK_0 BIT(19)
+
+ static unsigned long cht_rt5645_quirk = 0;
+
+@@ -59,6 +60,8 @@ static void log_quirks(struct device *dev)
+ dev_info(dev, "quirk SSP0_AIF1 enabled");
+ if (cht_rt5645_quirk & CHT_RT5645_SSP0_AIF2)
+ dev_info(dev, "quirk SSP0_AIF2 enabled");
++ if (cht_rt5645_quirk & CHT_RT5645_PMC_PLT_CLK_0)
++ dev_info(dev, "quirk PMC_PLT_CLK_0 enabled");
+ }
+
+ static int platform_clock_control(struct snd_soc_dapm_widget *w,
+@@ -226,15 +229,21 @@ static int cht_aif1_hw_params(struct snd_pcm_substream *substream,
+ return 0;
+ }
+
+-/* uncomment when we have a real quirk
+ static int cht_rt5645_quirk_cb(const struct dmi_system_id *id)
+ {
+ cht_rt5645_quirk = (unsigned long)id->driver_data;
+ return 1;
+ }
+-*/
+
+ static const struct dmi_system_id cht_rt5645_quirk_table[] = {
++ {
++ /* Strago family Chromebooks */
++ .callback = cht_rt5645_quirk_cb,
++ .matches = {
++ DMI_MATCH(DMI_PRODUCT_FAMILY, "Intel_Strago"),
++ },
++ .driver_data = (void *)CHT_RT5645_PMC_PLT_CLK_0,
++ },
+ {
+ },
+ };
+@@ -526,6 +535,7 @@ static int snd_cht_mc_probe(struct platform_device *pdev)
+ int dai_index = 0;
+ int ret_val = 0;
+ int i;
++ const char *mclk_name;
+
+ drv = devm_kzalloc(&pdev->dev, sizeof(*drv), GFP_KERNEL);
+ if (!drv)
+@@ -662,11 +672,15 @@ static int snd_cht_mc_probe(struct platform_device *pdev)
+ if (ret_val)
+ return ret_val;
+
+- drv->mclk = devm_clk_get(&pdev->dev, "pmc_plt_clk_3");
++ if (cht_rt5645_quirk & CHT_RT5645_PMC_PLT_CLK_0)
++ mclk_name = "pmc_plt_clk_0";
++ else
++ mclk_name = "pmc_plt_clk_3";
++
++ drv->mclk = devm_clk_get(&pdev->dev, mclk_name);
+ if (IS_ERR(drv->mclk)) {
+- dev_err(&pdev->dev,
+- "Failed to get MCLK from pmc_plt_clk_3: %ld\n",
+- PTR_ERR(drv->mclk));
++ dev_err(&pdev->dev, "Failed to get MCLK from %s: %ld\n",
++ mclk_name, PTR_ERR(drv->mclk));
+ return PTR_ERR(drv->mclk);
+ }
+
+--
+2.20.1
+
+
+From 83c22d6aef225035385971716098b753ea2d145e Mon Sep 17 00:00:00 2001
+From: Naveen M <naveen.m@intel.com>
+Date: Tue, 15 Oct 2019 00:28:00 +0800
+Subject: [PATCH 054/130] ASoC: Intel: eve: Enable mclk and ssp sclk early
+
+rt5663 and rt5514 needs mclk/sclk early to synchronize its internal
+clocks.
+
+Signed-off-by: Naveen M <naveen.m@intel.com>
+Signed-off-by: Harsha Priya <harshapriya.n@intel.com>
+Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
+Signed-off-by: Brent Lu <brent.lu@intel.com>
+Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/1571070480-25666-1-git-send-email-brent.lu@intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 47cbea21628187c32efad562867aa2b6760d83cc)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Kconfig | 1 +
+ .../intel/boards/kbl_rt5663_rt5514_max98927.c | 94 +++++++++++++++++++
+ 2 files changed, 95 insertions(+)
+
+diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
+index 882ff36a7c9c..778422d36e61 100644
+--- a/sound/soc/intel/boards/Kconfig
++++ b/sound/soc/intel/boards/Kconfig
+@@ -320,6 +320,7 @@ config SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH
+ select SND_SOC_RT5514_SPI
+ select SND_SOC_MAX98927
+ select SND_SOC_HDAC_HDMI
++ select SND_SOC_INTEL_SKYLAKE_SSP_CLK
+ help
+ This adds support for ASoC Onboard Codec I2S machine driver. This will
+ create an alsa sound card for RT5663 + RT5514 + MAX98927.
+diff --git a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
+index d14ca327c684..ea0005d7d3c8 100644
+--- a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
++++ b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
+@@ -22,6 +22,9 @@
+ #include "../../codecs/rt5514.h"
+ #include "../../codecs/rt5663.h"
+ #include "../../codecs/hdac_hdmi.h"
++#include <linux/clk.h>
++#include <linux/clk-provider.h>
++#include <linux/clkdev.h>
+
+ #define KBL_REALTEK_CODEC_DAI "rt5663-aif"
+ #define KBL_REALTEK_DMIC_CODEC_DAI "rt5514-aif1"
+@@ -50,6 +53,8 @@ struct kbl_codec_private {
+ struct snd_soc_jack kabylake_headset;
+ struct list_head hdmi_pcm_list;
+ struct snd_soc_jack kabylake_hdmi[2];
++ struct clk *mclk;
++ struct clk *sclk;
+ };
+
+ enum {
+@@ -71,6 +76,61 @@ static const struct snd_kcontrol_new kabylake_controls[] = {
+ SOC_DAPM_PIN_SWITCH("DMIC"),
+ };
+
++static int platform_clock_control(struct snd_soc_dapm_widget *w,
++ struct snd_kcontrol *k, int event)
++{
++ struct snd_soc_dapm_context *dapm = w->dapm;
++ struct snd_soc_card *card = dapm->card;
++ struct kbl_codec_private *priv = snd_soc_card_get_drvdata(card);
++ int ret = 0;
++
++ /*
++ * MCLK/SCLK need to be ON early for a successful synchronization of
++ * codec internal clock. And the clocks are turned off during
++ * POST_PMD after the stream is stopped.
++ */
++ switch (event) {
++ case SND_SOC_DAPM_PRE_PMU:
++ /* Enable MCLK */
++ ret = clk_set_rate(priv->mclk, 24000000);
++ if (ret < 0) {
++ dev_err(card->dev, "Can't set rate for mclk, err: %d\n",
++ ret);
++ return ret;
++ }
++
++ ret = clk_prepare_enable(priv->mclk);
++ if (ret < 0) {
++ dev_err(card->dev, "Can't enable mclk, err: %d\n", ret);
++ return ret;
++ }
++
++ /* Enable SCLK */
++ ret = clk_set_rate(priv->sclk, 3072000);
++ if (ret < 0) {
++ dev_err(card->dev, "Can't set rate for sclk, err: %d\n",
++ ret);
++ clk_disable_unprepare(priv->mclk);
++ return ret;
++ }
++
++ ret = clk_prepare_enable(priv->sclk);
++ if (ret < 0) {
++ dev_err(card->dev, "Can't enable sclk, err: %d\n", ret);
++ clk_disable_unprepare(priv->mclk);
++ }
++ break;
++ case SND_SOC_DAPM_POST_PMD:
++ clk_disable_unprepare(priv->mclk);
++ clk_disable_unprepare(priv->sclk);
++ break;
++ default:
++ return 0;
++ }
++
++ return 0;
++}
++
+ static const struct snd_soc_dapm_widget kabylake_widgets[] = {
+ SND_SOC_DAPM_HP("Headphone Jack", NULL),
+ SND_SOC_DAPM_MIC("Headset Mic", NULL),
+@@ -79,11 +139,15 @@ static const struct snd_soc_dapm_widget kabylake_widgets[] = {
+ SND_SOC_DAPM_MIC("DMIC", NULL),
+ SND_SOC_DAPM_SPK("HDMI1", NULL),
+ SND_SOC_DAPM_SPK("HDMI2", NULL),
++ SND_SOC_DAPM_SUPPLY("Platform Clock", SND_SOC_NOPM, 0, 0,
++ platform_clock_control, SND_SOC_DAPM_PRE_PMU |
++ SND_SOC_DAPM_POST_PMD),
+
+ };
+
+ static const struct snd_soc_dapm_route kabylake_map[] = {
+ /* Headphones */
++ { "Headphone Jack", NULL, "Platform Clock" },
+ { "Headphone Jack", NULL, "HPOL" },
+ { "Headphone Jack", NULL, "HPOR" },
+
+@@ -92,6 +156,7 @@ static const struct snd_soc_dapm_route kabylake_map[] = {
+ { "Right Spk", NULL, "Right BE_OUT" },
+
+ /* other jacks */
++ { "Headset Mic", NULL, "Platform Clock" },
+ { "IN1P", NULL, "Headset Mic" },
+ { "IN1N", NULL, "Headset Mic" },
+
+@@ -643,6 +708,7 @@ static int kabylake_audio_probe(struct platform_device *pdev)
+ {
+ struct kbl_codec_private *ctx;
+ struct snd_soc_acpi_mach *mach;
++ int ret = 0;
+
+ ctx = devm_kzalloc(&pdev->dev, sizeof(*ctx), GFP_KERNEL);
+ if (!ctx)
+@@ -658,6 +724,34 @@ static int kabylake_audio_probe(struct platform_device *pdev)
+ dmic_constraints = mach->mach_params.dmic_num == 2 ?
+ &constraints_dmic_2ch : &constraints_dmic_channels;
+
++ ctx->mclk = devm_clk_get(&pdev->dev, "ssp1_mclk");
++ if (IS_ERR(ctx->mclk)) {
++ ret = PTR_ERR(ctx->mclk);
++ if (ret == -ENOENT) {
++ dev_info(&pdev->dev,
++ "Failed to get ssp1_mclk, defer probe\n");
++ return -EPROBE_DEFER;
++ }
++
++ dev_err(&pdev->dev, "Failed to get ssp1_mclk with err:%d\n",
++ ret);
++ return ret;
++ }
++
++ ctx->sclk = devm_clk_get(&pdev->dev, "ssp1_sclk");
++ if (IS_ERR(ctx->sclk)) {
++ ret = PTR_ERR(ctx->sclk);
++ if (ret == -ENOENT) {
++ dev_info(&pdev->dev,
++ "Failed to get ssp1_sclk, defer probe\n");
++ return -EPROBE_DEFER;
++ }
++
++ dev_err(&pdev->dev, "Failed to get ssp1_sclk with err:%d\n",
++ ret);
++ return ret;
++ }
++
+ return devm_snd_soc_register_card(&pdev->dev, &kabylake_audio_card);
+ }
+
+--
+2.20.1
+
+
+From f80cddbefe9bca88b832b053587286c56a35a6fc Mon Sep 17 00:00:00 2001
+From: Brent Lu <brent.lu@intel.com>
+Date: Fri, 25 Oct 2019 17:11:31 +0800
+Subject: [PATCH 055/130] ASoC: eve: implement set_bias_level function for
+ rt5514
+
+The first DMIC capture always fail (zero sequence data from PCM port)
+after using DSP hotwording function (i.e. Google assistant).
+
+This rt5514 codec requires to control mclk directly in the set_bias_level
+function. Implement this function in machine driver to control the
+ssp1_mclk clock explicitly could fix this issue.
+
+Signed-off-by: Brent Lu <brent.lu@intel.com>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/1571994691-20199-1-git-send-email-brent.lu@intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 15747a80207585fe942416025540c0ff34e2aef8)
+Bugzilla: 1772498
+---
+ .../intel/boards/kbl_rt5663_rt5514_max98927.c | 50 +++++++++++++++++++
+ 1 file changed, 50 insertions(+)
+
+diff --git a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
+index ea0005d7d3c8..a1056cda3dd7 100644
+--- a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
++++ b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
+@@ -653,6 +653,55 @@ static struct snd_soc_dai_link kabylake_dais[] = {
+ },
+ };
+
++static int kabylake_set_bias_level(struct snd_soc_card *card,
++ struct snd_soc_dapm_context *dapm, enum snd_soc_bias_level level)
++{
++ struct snd_soc_component *component = dapm->component;
++ struct kbl_codec_private *priv = snd_soc_card_get_drvdata(card);
++ int ret = 0;
++
++ if (!component || strcmp(component->name, RT5514_DEV_NAME))
++ return 0;
++
++ if (IS_ERR(priv->mclk))
++ return 0;
++
++ /*
++ * It's required to control mclk directly in the set_bias_level
++ * function for rt5514 codec or the recording function could
++ * break.
++ */
++ switch (level) {
++ case SND_SOC_BIAS_PREPARE:
++ if (dapm->bias_level == SND_SOC_BIAS_ON) {
++ dev_dbg(card->dev, "Disable mclk");
++ clk_disable_unprepare(priv->mclk);
++ } else {
++ dev_dbg(card->dev, "Enable mclk");
++ ret = clk_set_rate(priv->mclk, 24000000);
++ if (ret) {
++ dev_err(card->dev, "Can't set rate for mclk, err: %d\n",
++ ret);
++ return ret;
++ }
++
++ ret = clk_prepare_enable(priv->mclk);
++ if (ret) {
++ dev_err(card->dev, "Can't enable mclk, err: %d\n",
++ ret);
++
++ /* mclk is already enabled in FW */
++ ret = 0;
++ }
++ }
++ break;
++ default:
++ break;
++ }
++
++ return ret;
++}
++
+ static int kabylake_card_late_probe(struct snd_soc_card *card)
+ {
+ struct kbl_codec_private *ctx = snd_soc_card_get_drvdata(card);
+@@ -692,6 +741,7 @@ static struct snd_soc_card kabylake_audio_card = {
+ .owner = THIS_MODULE,
+ .dai_link = kabylake_dais,
+ .num_links = ARRAY_SIZE(kabylake_dais),
++ .set_bias_level = kabylake_set_bias_level,
+ .controls = kabylake_controls,
+ .num_controls = ARRAY_SIZE(kabylake_controls),
+ .dapm_widgets = kabylake_widgets,
+--
+2.20.1
+
+
+From 1b41ab23dfde6f139695afbb1cef0846453a8070 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 29 Oct 2019 15:40:11 +0200
+Subject: [PATCH 056/130] ASoC: Intel: skl-hda-dsp-generic: use
+ snd-hda-codec-hdmi
+
+Add support for using snd-hda-codec-hdmi driver for HDMI/DP
+instead of ASoC hdac-hdmi. This is aligned with how other
+HDA codecs are already handled.
+
+When snd-hda-codec-hdmi is used, the PCM device numbers are
+parsed from card topology and passed to the codec driver.
+This needs to be done at runtime as topology changes may
+affect PCM device allocation.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191029134017.18901-4-kai.vehmanen@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 7de9a47c8971bdec07cc9a62e948382003c5908f)
+Bugzilla: 1772498
+---
+ include/sound/soc-acpi.h | 2 +
+ sound/soc/intel/boards/Makefile | 2 +-
+ sound/soc/intel/boards/hda_dsp_common.c | 85 ++++++++++++++++++++
+ sound/soc/intel/boards/hda_dsp_common.h | 32 ++++++++
+ sound/soc/intel/boards/skl_hda_dsp_common.c | 6 ++
+ sound/soc/intel/boards/skl_hda_dsp_common.h | 23 ++++++
+ sound/soc/intel/boards/skl_hda_dsp_generic.c | 1 +
+ 7 files changed, 150 insertions(+), 1 deletion(-)
+ create mode 100644 sound/soc/intel/boards/hda_dsp_common.c
+ create mode 100644 sound/soc/intel/boards/hda_dsp_common.h
+
+diff --git a/include/sound/soc-acpi.h b/include/sound/soc-acpi.h
+index 35b38e41e5b2..26d57bc9a91e 100644
+--- a/include/sound/soc-acpi.h
++++ b/include/sound/soc-acpi.h
+@@ -60,12 +60,14 @@ static inline struct snd_soc_acpi_mach *snd_soc_acpi_codec_list(void *arg)
+ * @acpi_ipc_irq_index: used for BYT-CR detection
+ * @platform: string used for HDaudio codec support
+ * @codec_mask: used for HDAudio support
++ * @common_hdmi_codec_drv: use commom HDAudio HDMI codec driver
+ */
+ struct snd_soc_acpi_mach_params {
+ u32 acpi_ipc_irq_index;
+ const char *platform;
+ u32 codec_mask;
+ u32 dmic_num;
++ bool common_hdmi_codec_drv;
+ };
+
+ /**
+diff --git a/sound/soc/intel/boards/Makefile b/sound/soc/intel/boards/Makefile
+index 6445f90ea542..52e990b16b0d 100644
+--- a/sound/soc/intel/boards/Makefile
++++ b/sound/soc/intel/boards/Makefile
+@@ -24,7 +24,7 @@ snd-soc-kbl_rt5663_max98927-objs := kbl_rt5663_max98927.o
+ snd-soc-kbl_rt5663_rt5514_max98927-objs := kbl_rt5663_rt5514_max98927.o
+ snd-soc-kbl_rt5660-objs := kbl_rt5660.o
+ snd-soc-skl_rt286-objs := skl_rt286.o
+-snd-soc-skl_hda_dsp-objs := skl_hda_dsp_generic.o skl_hda_dsp_common.o
++snd-soc-skl_hda_dsp-objs := skl_hda_dsp_generic.o skl_hda_dsp_common.o hda_dsp_common.o
+ snd-skl_nau88l25_max98357a-objs := skl_nau88l25_max98357a.o
+ snd-soc-skl_nau88l25_ssm4567-objs := skl_nau88l25_ssm4567.o
+
+diff --git a/sound/soc/intel/boards/hda_dsp_common.c b/sound/soc/intel/boards/hda_dsp_common.c
+new file mode 100644
+index 000000000000..ed36b68d6705
+--- /dev/null
++++ b/sound/soc/intel/boards/hda_dsp_common.c
+@@ -0,0 +1,85 @@
++// SPDX-License-Identifier: GPL-2.0
++//
++// Copyright(c) 2019 Intel Corporation. All rights reserved.
++
++#include <sound/pcm.h>
++#include <sound/soc.h>
++#include <sound/hda_codec.h>
++#include <sound/hda_i915.h>
++#include "../../codecs/hdac_hda.h"
++
++#include "hda_dsp_common.h"
++
++/*
++ * Search card topology and return PCM device number
++ * matching Nth HDMI device (zero-based index).
++ */
++struct snd_pcm *hda_dsp_hdmi_pcm_handle(struct snd_soc_card *card,
++ int hdmi_idx)
++{
++ struct snd_soc_pcm_runtime *rtd;
++ struct snd_pcm *spcm;
++ int i = 0;
++
++ for_each_card_rtds(card, rtd) {
++ spcm = rtd->pcm ?
++ rtd->pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].pcm : NULL;
++ if (spcm && strstr(spcm->id, "HDMI")) {
++ if (i == hdmi_idx)
++ return rtd->pcm;
++ ++i;
++ }
++ }
++
++ return NULL;
++}
++
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC)
++/*
++ * Search card topology and register HDMI PCM related controls
++ * to codec driver.
++ */
++int hda_dsp_hdmi_build_controls(struct snd_soc_card *card,
++ struct snd_soc_component *comp)
++{
++ struct hdac_hda_priv *hda_pvt;
++ struct hda_codec *hcodec;
++ struct snd_pcm *spcm;
++ struct hda_pcm *hpcm;
++ int err = 0, i = 0;
++
++ if (!comp)
++ return -EINVAL;
++
++ hda_pvt = snd_soc_component_get_drvdata(comp);
++ hcodec = &hda_pvt->codec;
++
++ list_for_each_entry(hpcm, &hcodec->pcm_list_head, list) {
++ spcm = hda_dsp_hdmi_pcm_handle(card, i);
++ if (spcm) {
++ hpcm->pcm = spcm;
++ hpcm->device = spcm->device;
++ dev_dbg(card->dev,
++ "%s: mapping HDMI converter %d to PCM %d (%p)\n",
++ __func__, i, hpcm->device, spcm);
++ } else {
++ hpcm->pcm = 0;
++ hpcm->device = SNDRV_PCM_INVALID_DEVICE;
++ dev_warn(card->dev,
++ "%s: no PCM in topology for HDMI converter %d\n\n",
++ __func__, i);
++ }
++ i++;
++ }
++ snd_hdac_display_power(hcodec->core.bus,
++ HDA_CODEC_IDX_CONTROLLER, true);
++ err = snd_hda_codec_build_controls(hcodec);
++ if (err < 0)
++ dev_err(card->dev, "unable to create controls %d\n", err);
++ snd_hdac_display_power(hcodec->core.bus,
++ HDA_CODEC_IDX_CONTROLLER, false);
++
++ return err;
++}
++
++#endif
+diff --git a/sound/soc/intel/boards/hda_dsp_common.h b/sound/soc/intel/boards/hda_dsp_common.h
+new file mode 100644
+index 000000000000..431f7f09dccb
+--- /dev/null
++++ b/sound/soc/intel/boards/hda_dsp_common.h
+@@ -0,0 +1,32 @@
++/* SPDX-License-Identifier: GPL-2.0 */
++/*
++ * Copyright(c) 2019 Intel Corporation.
++ */
++
++/*
++ * This file defines helper functions used by multiple
++ * Intel HDA based machine drivers.
++ */
++
++#ifndef __HDA_DSP_COMMON_H
++#define __HDA_DSP_COMMON_H
++
++#include <sound/hda_codec.h>
++#include <sound/hda_i915.h>
++#include "../../codecs/hdac_hda.h"
++
++struct snd_pcm *hda_dsp_hdmi_pcm_handle(struct snd_soc_card *card,
++ int hdmi_idx);
++
++#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC)
++int hda_dsp_hdmi_build_controls(struct snd_soc_card *card,
++ struct snd_soc_component *comp);
++#else
++static inline int hda_dsp_hdmi_build_controls(struct snd_soc_card *card,
++ struct snd_soc_component *comp)
++{
++ return -EINVAL;
++}
++#endif
++
++#endif /* __HDA_DSP_COMMON_H */
+diff --git a/sound/soc/intel/boards/skl_hda_dsp_common.c b/sound/soc/intel/boards/skl_hda_dsp_common.c
+index 58409b6e476e..eb419e1ec42b 100644
+--- a/sound/soc/intel/boards/skl_hda_dsp_common.c
++++ b/sound/soc/intel/boards/skl_hda_dsp_common.c
+@@ -14,6 +14,9 @@
+ #include "../../codecs/hdac_hdmi.h"
+ #include "skl_hda_dsp_common.h"
+
++#include <sound/hda_codec.h>
++#include "../../codecs/hdac_hda.h"
++
+ #define NAME_SIZE 32
+
+ int skl_hda_hdmi_add_pcm(struct snd_soc_card *card, int device)
+@@ -136,6 +139,9 @@ int skl_hda_hdmi_jack_init(struct snd_soc_card *card)
+ char jack_name[NAME_SIZE];
+ int err;
+
++ if (ctx->common_hdmi_codec_drv)
++ return skl_hda_hdmi_build_controls(card);
++
+ list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) {
+ component = pcm->codec_dai->component;
+ snprintf(jack_name, sizeof(jack_name),
+diff --git a/sound/soc/intel/boards/skl_hda_dsp_common.h b/sound/soc/intel/boards/skl_hda_dsp_common.h
+index daa582e513b2..bbe6e2acfda3 100644
+--- a/sound/soc/intel/boards/skl_hda_dsp_common.h
++++ b/sound/soc/intel/boards/skl_hda_dsp_common.h
+@@ -14,6 +14,9 @@
+ #include <linux/platform_device.h>
+ #include <sound/core.h>
+ #include <sound/jack.h>
++#include <sound/hda_codec.h>
++#include "../../codecs/hdac_hda.h"
++#include "hda_dsp_common.h"
+
+ #define HDA_DSP_MAX_BE_DAI_LINKS 7
+
+@@ -29,10 +32,30 @@ struct skl_hda_private {
+ int pcm_count;
+ int dai_index;
+ const char *platform_name;
++ bool common_hdmi_codec_drv;
+ };
+
+ extern struct snd_soc_dai_link skl_hda_be_dai_links[HDA_DSP_MAX_BE_DAI_LINKS];
+ int skl_hda_hdmi_jack_init(struct snd_soc_card *card);
+ int skl_hda_hdmi_add_pcm(struct snd_soc_card *card, int device);
+
++/*
++ * Search card topology and register HDMI PCM related controls
++ * to codec driver.
++ */
++static inline int skl_hda_hdmi_build_controls(struct snd_soc_card *card)
++{
++ struct skl_hda_private *ctx = snd_soc_card_get_drvdata(card);
++ struct snd_soc_component *component;
++ struct skl_hda_hdmi_pcm *pcm;
++
++ pcm = list_first_entry(&ctx->hdmi_pcm_list, struct skl_hda_hdmi_pcm,
++ head);
++ component = pcm->codec_dai->component;
++ if (!component)
++ return -EINVAL;
++
++ return hda_dsp_hdmi_build_controls(card, component);
++}
++
+ #endif /* __SOUND_SOC_HDA_DSP_COMMON_H */
+diff --git a/sound/soc/intel/boards/skl_hda_dsp_generic.c b/sound/soc/intel/boards/skl_hda_dsp_generic.c
+index e8d676c192f6..4e45901e3a2f 100644
+--- a/sound/soc/intel/boards/skl_hda_dsp_generic.c
++++ b/sound/soc/intel/boards/skl_hda_dsp_generic.c
+@@ -178,6 +178,7 @@ static int skl_hda_audio_probe(struct platform_device *pdev)
+ ctx->pcm_count = hda_soc_card.num_links;
+ ctx->dai_index = 1; /* hdmi codec dai name starts from index 1 */
+ ctx->platform_name = mach->mach_params.platform;
++ ctx->common_hdmi_codec_drv = mach->mach_params.common_hdmi_codec_drv;
+
+ hda_soc_card.dev = &pdev->dev;
+ snd_soc_card_set_drvdata(&hda_soc_card, ctx);
+--
+2.20.1
+
+
+From b07481ef39cfbbf0caadac6432121bd4d49bd69f Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 29 Oct 2019 15:40:12 +0200
+Subject: [PATCH 057/130] ASoC: Intel: skl-hda-dsp-generic: fix include guard
+ name
+
+Match the include guard define to actual filename. The source
+directory now has an actual hda_dsp_common.h header, so the old
+include guard may cause confusion.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191029134017.18901-5-kai.vehmanen@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 0f163110256ac91aee562da149838fcb8a39d518)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/skl_hda_dsp_common.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/intel/boards/skl_hda_dsp_common.h b/sound/soc/intel/boards/skl_hda_dsp_common.h
+index bbe6e2acfda3..d6150670ca05 100644
+--- a/sound/soc/intel/boards/skl_hda_dsp_common.h
++++ b/sound/soc/intel/boards/skl_hda_dsp_common.h
+@@ -8,8 +8,8 @@
+ * platforms with HDA Codecs.
+ */
+
+-#ifndef __SOUND_SOC_HDA_DSP_COMMON_H
+-#define __SOUND_SOC_HDA_DSP_COMMON_H
++#ifndef __SKL_HDA_DSP_COMMON_H
++#define __SKL_HDA_DSP_COMMON_H
+ #include <linux/module.h>
+ #include <linux/platform_device.h>
+ #include <sound/core.h>
+--
+2.20.1
+
+
+From 33d568ce43c1a625611c9680c932607183716854 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 29 Oct 2019 15:40:14 +0200
+Subject: [PATCH 058/130] ASoC: Intel: bxt-da7219-max98357a: common hdmi codec
+ support
+
+Add support for using snd-hda-codec-hdmi driver for HDMI/DP
+instead of ASoC hdac-hdmi. This is aligned with how other
+HDA codecs are already handled.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191029134017.18901-7-kai.vehmanen@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 57ad18906f24278893b128967551fe7fa0996129)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Makefile | 2 +-
+ sound/soc/intel/boards/bxt_da7219_max98357a.c | 11 +++++++++++
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/intel/boards/Makefile b/sound/soc/intel/boards/Makefile
+index 52e990b16b0d..0cf4a984f083 100644
+--- a/sound/soc/intel/boards/Makefile
++++ b/sound/soc/intel/boards/Makefile
+@@ -4,7 +4,7 @@ snd-soc-sst-byt-rt5640-mach-objs := byt-rt5640.o
+ snd-soc-sst-byt-max98090-mach-objs := byt-max98090.o
+ snd-soc-sst-bdw-rt5677-mach-objs := bdw-rt5677.o
+ snd-soc-sst-broadwell-objs := broadwell.o
+-snd-soc-sst-bxt-da7219_max98357a-objs := bxt_da7219_max98357a.o
++snd-soc-sst-bxt-da7219_max98357a-objs := bxt_da7219_max98357a.o hda_dsp_common.o
+ snd-soc-sst-bxt-rt298-objs := bxt_rt298.o
+ snd-soc-sst-glk-rt5682_max98357a-objs := glk_rt5682_max98357a.o
+ snd-soc-sst-bytcr-rt5640-objs := bytcr_rt5640.o
+diff --git a/sound/soc/intel/boards/bxt_da7219_max98357a.c b/sound/soc/intel/boards/bxt_da7219_max98357a.c
+index ac1dea5f9d11..5873abb46441 100644
+--- a/sound/soc/intel/boards/bxt_da7219_max98357a.c
++++ b/sound/soc/intel/boards/bxt_da7219_max98357a.c
+@@ -21,6 +21,7 @@
+ #include "../../codecs/da7219.h"
+ #include "../../codecs/da7219-aad.h"
+ #include "../common/soc-intel-quirks.h"
++#include "hda_dsp_common.h"
+
+ #define BXT_DIALOG_CODEC_DAI "da7219-hifi"
+ #define BXT_MAXIM_CODEC_DAI "HiFi"
+@@ -38,6 +39,7 @@ struct bxt_hdmi_pcm {
+
+ struct bxt_card_private {
+ struct list_head hdmi_pcm_list;
++ bool common_hdmi_codec_drv;
+ };
+
+ enum {
+@@ -615,6 +617,13 @@ static int bxt_card_late_probe(struct snd_soc_card *card)
+ snd_soc_dapm_add_routes(&card->dapm, broxton_map,
+ ARRAY_SIZE(broxton_map));
+
++ pcm = list_first_entry(&ctx->hdmi_pcm_list, struct bxt_hdmi_pcm,
++ head);
++ component = pcm->codec_dai->component;
++
++ if (ctx->common_hdmi_codec_drv)
++ return hda_dsp_hdmi_build_controls(card, component);
++
+ list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) {
+ component = pcm->codec_dai->component;
+ snprintf(jack_name, sizeof(jack_name),
+@@ -720,6 +729,8 @@ static int broxton_audio_probe(struct platform_device *pdev)
+ if (ret)
+ return ret;
+
++ ctx->common_hdmi_codec_drv = mach->mach_params.common_hdmi_codec_drv;
++
+ return devm_snd_soc_register_card(&pdev->dev, &broxton_audio_card);
+ }
+
+--
+2.20.1
+
+
+From 555533e73e096583395ce632a80116c059ce97d5 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 29 Oct 2019 15:40:15 +0200
+Subject: [PATCH 059/130] ASoC: Intel: glk_rt5682_max98357a: common hdmi codec
+ support
+
+Add support for using snd-hda-codec-hdmi driver for HDMI/DP
+instead of ASoC hdac-hdmi. This is aligned with how other
+HDA codecs are already handled.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191029134017.18901-8-kai.vehmanen@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit dfe87aa86cd92d21603d64f4035fecae19c92e7a)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Makefile | 2 +-
+ sound/soc/intel/boards/glk_rt5682_max98357a.c | 11 +++++++++++
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/intel/boards/Makefile b/sound/soc/intel/boards/Makefile
+index 0cf4a984f083..b36f44906c91 100644
+--- a/sound/soc/intel/boards/Makefile
++++ b/sound/soc/intel/boards/Makefile
+@@ -6,7 +6,7 @@ snd-soc-sst-bdw-rt5677-mach-objs := bdw-rt5677.o
+ snd-soc-sst-broadwell-objs := broadwell.o
+ snd-soc-sst-bxt-da7219_max98357a-objs := bxt_da7219_max98357a.o hda_dsp_common.o
+ snd-soc-sst-bxt-rt298-objs := bxt_rt298.o
+-snd-soc-sst-glk-rt5682_max98357a-objs := glk_rt5682_max98357a.o
++snd-soc-sst-glk-rt5682_max98357a-objs := glk_rt5682_max98357a.o hda_dsp_common.o
+ snd-soc-sst-bytcr-rt5640-objs := bytcr_rt5640.o
+ snd-soc-sst-bytcr-rt5651-objs := bytcr_rt5651.o
+ snd-soc-sst-cht-bsw-rt5672-objs := cht_bsw_rt5672.o
+diff --git a/sound/soc/intel/boards/glk_rt5682_max98357a.c b/sound/soc/intel/boards/glk_rt5682_max98357a.c
+index bd2d371f2acd..b36264d1d1cd 100644
+--- a/sound/soc/intel/boards/glk_rt5682_max98357a.c
++++ b/sound/soc/intel/boards/glk_rt5682_max98357a.c
+@@ -19,6 +19,7 @@
+ #include <sound/soc-acpi.h>
+ #include "../../codecs/rt5682.h"
+ #include "../../codecs/hdac_hdmi.h"
++#include "hda_dsp_common.h"
+
+ /* The platform clock outputs 19.2Mhz clock to codec as I2S MCLK */
+ #define GLK_PLAT_CLK_FREQ 19200000
+@@ -41,6 +42,7 @@ struct glk_hdmi_pcm {
+ struct glk_card_private {
+ struct snd_soc_jack geminilake_headset;
+ struct list_head hdmi_pcm_list;
++ bool common_hdmi_codec_drv;
+ };
+
+ enum {
+@@ -545,6 +547,13 @@ static int glk_card_late_probe(struct snd_soc_card *card)
+ int err = 0;
+ int i = 0;
+
++ pcm = list_first_entry(&ctx->hdmi_pcm_list, struct glk_hdmi_pcm,
++ head);
++ component = pcm->codec_dai->component;
++
++ if (ctx->common_hdmi_codec_drv)
++ return hda_dsp_hdmi_build_controls(card, component);
++
+ list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) {
+ component = pcm->codec_dai->component;
+ snprintf(jack_name, sizeof(jack_name),
+@@ -612,6 +621,8 @@ static int geminilake_audio_probe(struct platform_device *pdev)
+ if (ret)
+ return ret;
+
++ ctx->common_hdmi_codec_drv = mach->mach_params.common_hdmi_codec_drv;
++
+ return devm_snd_soc_register_card(&pdev->dev, card);
+ }
+
+--
+2.20.1
+
+
+From d186922c20154420654a00b8b6186df7c0a9f4f3 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 29 Oct 2019 15:40:16 +0200
+Subject: [PATCH 060/130] ASoC: intel: sof_rt5682: common hdmi codec support
+
+Add support for using snd-hda-codec-hdmi driver for HDMI/DP
+instead of ASoC hdac-hdmi. This is aligned with how other
+HDA codecs are already handled.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191029134017.18901-9-kai.vehmanen@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 59bbd703ea2eae7c2766713135e4742c07fbbad7)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Makefile | 2 +-
+ sound/soc/intel/boards/sof_rt5682.c | 11 +++++++++++
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/intel/boards/Makefile b/sound/soc/intel/boards/Makefile
+index b36f44906c91..255cee8c7906 100644
+--- a/sound/soc/intel/boards/Makefile
++++ b/sound/soc/intel/boards/Makefile
+@@ -17,7 +17,7 @@ snd-soc-sst-byt-cht-cx2072x-objs := bytcht_cx2072x.o
+ snd-soc-sst-byt-cht-da7213-objs := bytcht_da7213.o
+ snd-soc-sst-byt-cht-es8316-objs := bytcht_es8316.o
+ snd-soc-sst-byt-cht-nocodec-objs := bytcht_nocodec.o
+-snd-soc-sof_rt5682-objs := sof_rt5682.o
++snd-soc-sof_rt5682-objs := sof_rt5682.o hda_dsp_common.o
+ snd-soc-kbl_da7219_max98357a-objs := kbl_da7219_max98357a.o
+ snd-soc-kbl_da7219_max98927-objs := kbl_da7219_max98927.o
+ snd-soc-kbl_rt5663_max98927-objs := kbl_rt5663_max98927.o
+diff --git a/sound/soc/intel/boards/sof_rt5682.c b/sound/soc/intel/boards/sof_rt5682.c
+index 320a9b9273db..751b8ea6ae1f 100644
+--- a/sound/soc/intel/boards/sof_rt5682.c
++++ b/sound/soc/intel/boards/sof_rt5682.c
+@@ -21,6 +21,7 @@
+ #include "../../codecs/rt5682.h"
+ #include "../../codecs/hdac_hdmi.h"
+ #include "../common/soc-intel-quirks.h"
++#include "hda_dsp_common.h"
+
+ #define NAME_SIZE 32
+
+@@ -53,6 +54,7 @@ struct sof_card_private {
+ struct clk *mclk;
+ struct snd_soc_jack sof_headset;
+ struct list_head hdmi_pcm_list;
++ bool common_hdmi_codec_drv;
+ };
+
+ static int sof_rt5682_quirk_cb(const struct dmi_system_id *id)
+@@ -274,6 +276,13 @@ static int sof_card_late_probe(struct snd_soc_card *card)
+ if (is_legacy_cpu)
+ return 0;
+
++ pcm = list_first_entry(&ctx->hdmi_pcm_list, struct sof_hdmi_pcm,
++ head);
++ component = pcm->codec_dai->component;
++
++ if (ctx->common_hdmi_codec_drv)
++ return hda_dsp_hdmi_build_controls(card, component);
++
+ list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) {
+ component = pcm->codec_dai->component;
+ snprintf(jack_name, sizeof(jack_name),
+@@ -651,6 +660,8 @@ static int sof_audio_probe(struct platform_device *pdev)
+ if (ret)
+ return ret;
+
++ ctx->common_hdmi_codec_drv = mach->mach_params.common_hdmi_codec_drv;
++
+ snd_soc_card_set_drvdata(&sof_audio_card_rt5682, ctx);
+
+ return devm_snd_soc_register_card(&pdev->dev,
+--
+2.20.1
+
+
+From 3f4711fbc1d93be2c68d2eff99baef5d1ae7bb54 Mon Sep 17 00:00:00 2001
+From: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Date: Tue, 29 Oct 2019 15:40:17 +0200
+Subject: [PATCH 061/130] ASoC: Intel: bxt_rt298: common hdmi codec support
+
+Add support for using snd-hda-codec-hdmi driver for HDMI/DP
+instead of ASoC hdac-hdmi. This is aligned with how other
+HDA codecs are already handled.
+
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191029134017.18901-10-kai.vehmanen@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 7d2ae58376658a3ca0d8f9a53f6f065df126c432)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Makefile | 2 +-
+ sound/soc/intel/boards/bxt_rt298.c | 11 +++++++++++
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/intel/boards/Makefile b/sound/soc/intel/boards/Makefile
+index 255cee8c7906..8bddf379cef1 100644
+--- a/sound/soc/intel/boards/Makefile
++++ b/sound/soc/intel/boards/Makefile
+@@ -5,7 +5,7 @@ snd-soc-sst-byt-max98090-mach-objs := byt-max98090.o
+ snd-soc-sst-bdw-rt5677-mach-objs := bdw-rt5677.o
+ snd-soc-sst-broadwell-objs := broadwell.o
+ snd-soc-sst-bxt-da7219_max98357a-objs := bxt_da7219_max98357a.o hda_dsp_common.o
+-snd-soc-sst-bxt-rt298-objs := bxt_rt298.o
++snd-soc-sst-bxt-rt298-objs := bxt_rt298.o hda_dsp_common.o
+ snd-soc-sst-glk-rt5682_max98357a-objs := glk_rt5682_max98357a.o hda_dsp_common.o
+ snd-soc-sst-bytcr-rt5640-objs := bytcr_rt5640.o
+ snd-soc-sst-bytcr-rt5651-objs := bytcr_rt5651.o
+diff --git a/sound/soc/intel/boards/bxt_rt298.c b/sound/soc/intel/boards/bxt_rt298.c
+index adf416a49b48..eabf9d8468ae 100644
+--- a/sound/soc/intel/boards/bxt_rt298.c
++++ b/sound/soc/intel/boards/bxt_rt298.c
+@@ -18,6 +18,7 @@
+ #include <sound/pcm_params.h>
+ #include "../../codecs/hdac_hdmi.h"
+ #include "../../codecs/rt298.h"
++#include "hda_dsp_common.h"
+
+ /* Headset jack detection DAPM pins */
+ static struct snd_soc_jack broxton_headset;
+@@ -31,6 +32,7 @@ struct bxt_hdmi_pcm {
+
+ struct bxt_rt286_private {
+ struct list_head hdmi_pcm_list;
++ bool common_hdmi_codec_drv;
+ };
+
+ enum {
+@@ -527,6 +529,13 @@ static int bxt_card_late_probe(struct snd_soc_card *card)
+ int err, i = 0;
+ char jack_name[NAME_SIZE];
+
++ pcm = list_first_entry(&ctx->hdmi_pcm_list, struct bxt_hdmi_pcm,
++ head);
++ component = pcm->codec_dai->component;
++
++ if (ctx->common_hdmi_codec_drv)
++ return hda_dsp_hdmi_build_controls(card, component);
++
+ list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) {
+ component = pcm->codec_dai->component;
+ snprintf(jack_name, sizeof(jack_name),
+@@ -626,6 +635,8 @@ static int broxton_audio_probe(struct platform_device *pdev)
+ if (ret)
+ return ret;
+
++ ctx->common_hdmi_codec_drv = mach->mach_params.common_hdmi_codec_drv;
++
+ return devm_snd_soc_register_card(&pdev->dev, card);
+ }
+
+--
+2.20.1
+
+
+From 03a37d6f2b29db4c976ede85c9a605471ea405b3 Mon Sep 17 00:00:00 2001
+From: Naveen Manohar <naveen.m@intel.com>
+Date: Fri, 1 Nov 2019 12:18:46 -0500
+Subject: [PATCH 062/130] ASoC: Intel: Add acpi match for rt1011 based m/c
+ driver
+
+Add match for CML m/c with RT1011 and RT5682
+
+Signed-off-by: Naveen Manohar <naveen.m@intel.com>
+Signed-off-by: Sathya Prakash M R <sathya.prakash.m.r@intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101171847.26767-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit f95ce1355944189c26e4182c813d7f018b434dbd)
+Bugzilla: 1772498
+---
+ sound/soc/intel/common/soc-acpi-intel-cnl-match.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/sound/soc/intel/common/soc-acpi-intel-cnl-match.c b/sound/soc/intel/common/soc-acpi-intel-cnl-match.c
+index 985aa366c9e8..16d0bae8b316 100644
+--- a/sound/soc/intel/common/soc-acpi-intel-cnl-match.c
++++ b/sound/soc/intel/common/soc-acpi-intel-cnl-match.c
+@@ -47,6 +47,13 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_cnl_machines[] = {
+ .sof_fw_filename = "sof-cnl.ri",
+ .sof_tplg_filename = "sof-cml-rt5682-max98357a.tplg",
+ },
++ {
++ .id = "10EC1011",
++ .drv_name = "cml_rt1011_rt5682",
++ .quirk_data = &cml_codecs,
++ .sof_fw_filename = "sof-cnl.ri",
++ .sof_tplg_filename = "sof-cml-rt1011-rt5682.tplg",
++ },
+ {
+ .id = "10EC5682",
+ .drv_name = "sof_rt5682",
+--
+2.20.1
+
+
+From 90dad5c0eeccbe941c5afaca1f60339a5bb31984 Mon Sep 17 00:00:00 2001
+From: Naveen Manohar <naveen.m@intel.com>
+Date: Fri, 1 Nov 2019 12:18:47 -0500
+Subject: [PATCH 063/130] ASoC: Intel: boards: Add CML m/c using RT1011 and
+ RT5682
+
+Machine driver to enable
+RT5682 on SSP0, DMIC, HDMI and
+RT1011 AMP on SSP1 with
+2 CH / 24 bit TDM Playback over 4 individual codecs and
+4 CH / 24 bit Capture to provide feedback.
+
+Signed-off-by: Naveen Manohar <naveen.m@intel.com>
+Signed-off-by: Sathya Prakash M R <sathya.prakash.m.r@intel.com>
+Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101171847.26767-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 17fe95d6df9320409015e5114309a3c05e31b736)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Kconfig | 14 +
+ sound/soc/intel/boards/Makefile | 2 +
+ sound/soc/intel/boards/cml_rt1011_rt5682.c | 487 +++++++++++++++++++++
+ 3 files changed, 503 insertions(+)
+ create mode 100644 sound/soc/intel/boards/cml_rt1011_rt5682.c
+
+diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
+index 778422d36e61..ef40f83e0a3b 100644
+--- a/sound/soc/intel/boards/Kconfig
++++ b/sound/soc/intel/boards/Kconfig
+@@ -423,6 +423,20 @@ config SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH
+ depends on MFD_INTEL_LPSS || COMPILE_TEST
+ select SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
+
++config SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH
++ tristate "CML with RT1011 and RT5682 in I2S Mode"
++ depends on I2C && ACPI
++ depends on MFD_INTEL_LPSS || COMPILE_TEST
++ select SND_SOC_RT1011
++ select SND_SOC_RT5682
++ select SND_SOC_DMIC
++ select SND_SOC_HDAC_HDMI
++ help
++ This adds support for ASoC machine driver for SOF platform with
++ RT1011 + RT5682 I2S codec.
++ Say Y if you have such a device.
++ If unsure select "N".
++
+ endif ## SND_SOC_SOF_COMETLAKE_LP && SND_SOC_SOF_HDA_LINK
+
+ endif ## SND_SOC_INTEL_MACH
+diff --git a/sound/soc/intel/boards/Makefile b/sound/soc/intel/boards/Makefile
+index 8bddf379cef1..9ae6544c6f3b 100644
+--- a/sound/soc/intel/boards/Makefile
++++ b/sound/soc/intel/boards/Makefile
+@@ -18,6 +18,7 @@ snd-soc-sst-byt-cht-da7213-objs := bytcht_da7213.o
+ snd-soc-sst-byt-cht-es8316-objs := bytcht_es8316.o
+ snd-soc-sst-byt-cht-nocodec-objs := bytcht_nocodec.o
+ snd-soc-sof_rt5682-objs := sof_rt5682.o hda_dsp_common.o
++snd-soc-cml_rt1011_rt5682-objs := cml_rt1011_rt5682.o hda_dsp_common.o
+ snd-soc-kbl_da7219_max98357a-objs := kbl_da7219_max98357a.o
+ snd-soc-kbl_da7219_max98927-objs := kbl_da7219_max98927.o
+ snd-soc-kbl_rt5663_max98927-objs := kbl_rt5663_max98927.o
+@@ -47,6 +48,7 @@ obj-$(CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH) += snd-soc-sst-byt-cht-cx2072x.
+ obj-$(CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH) += snd-soc-sst-byt-cht-da7213.o
+ obj-$(CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH) += snd-soc-sst-byt-cht-es8316.o
+ obj-$(CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH) += snd-soc-sst-byt-cht-nocodec.o
++obj-$(CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH) += snd-soc-cml_rt1011_rt5682.o
+ obj-$(CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH) += snd-soc-kbl_da7219_max98357a.o
+ obj-$(CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH) += snd-soc-kbl_da7219_max98927.o
+ obj-$(CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH) += snd-soc-kbl_rt5663_max98927.o
+diff --git a/sound/soc/intel/boards/cml_rt1011_rt5682.c b/sound/soc/intel/boards/cml_rt1011_rt5682.c
+new file mode 100644
+index 000000000000..a22f97234201
+--- /dev/null
++++ b/sound/soc/intel/boards/cml_rt1011_rt5682.c
+@@ -0,0 +1,487 @@
++// SPDX-License-Identifier: GPL-2.0
++// Copyright(c) 2019 Intel Corporation.
++
++/*
++ * Intel Cometlake I2S Machine driver for RT1011 + RT5682 codec
++ */
++
++#include <linux/input.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/clk.h>
++#include <linux/dmi.h>
++#include <linux/slab.h>
++#include <asm/cpu_device_id.h>
++#include <linux/acpi.h>
++#include <sound/core.h>
++#include <sound/jack.h>
++#include <sound/pcm.h>
++#include <sound/pcm_params.h>
++#include <sound/soc.h>
++#include <sound/rt5682.h>
++#include <sound/soc-acpi.h>
++#include "../../codecs/rt1011.h"
++#include "../../codecs/rt5682.h"
++#include "../../codecs/hdac_hdmi.h"
++#include "hda_dsp_common.h"
++
++/* The platform clock outputs 24Mhz clock to codec as I2S MCLK */
++#define CML_PLAT_CLK 24000000
++#define CML_RT1011_CODEC_DAI "rt1011-aif"
++#define CML_RT5682_CODEC_DAI "rt5682-aif1"
++#define NAME_SIZE 32
++
++static struct snd_soc_jack hdmi_jack[3];
++
++struct hdmi_pcm {
++ struct list_head head;
++ struct snd_soc_dai *codec_dai;
++ int device;
++};
++
++struct card_private {
++ char codec_name[SND_ACPI_I2C_ID_LEN];
++ struct snd_soc_jack headset;
++ struct list_head hdmi_pcm_list;
++ bool common_hdmi_codec_drv;
++};
++
++static const struct snd_kcontrol_new cml_controls[] = {
++ SOC_DAPM_PIN_SWITCH("Headphone Jack"),
++ SOC_DAPM_PIN_SWITCH("Headset Mic"),
++ SOC_DAPM_PIN_SWITCH("TL Ext Spk"),
++ SOC_DAPM_PIN_SWITCH("TR Ext Spk"),
++ SOC_DAPM_PIN_SWITCH("WL Ext Spk"),
++ SOC_DAPM_PIN_SWITCH("WR Ext Spk"),
++};
++
++static const struct snd_soc_dapm_widget cml_rt1011_rt5682_widgets[] = {
++ SND_SOC_DAPM_SPK("TL Ext Spk", NULL),
++ SND_SOC_DAPM_SPK("TR Ext Spk", NULL),
++ SND_SOC_DAPM_SPK("WL Ext Spk", NULL),
++ SND_SOC_DAPM_SPK("WR Ext Spk", NULL),
++ SND_SOC_DAPM_HP("Headphone Jack", NULL),
++ SND_SOC_DAPM_MIC("Headset Mic", NULL),
++ SND_SOC_DAPM_MIC("SoC DMIC", NULL),
++};
++
++static const struct snd_soc_dapm_route cml_rt1011_rt5682_map[] = {
++ /*speaker*/
++ {"TL Ext Spk", NULL, "TL SPO"},
++ {"TR Ext Spk", NULL, "TR SPO"},
++ {"WL Ext Spk", NULL, "WL SPO"},
++ {"WR Ext Spk", NULL, "WR SPO"},
++
++ /* HP jack connectors - unknown if we have jack detection */
++ { "Headphone Jack", NULL, "HPOL" },
++ { "Headphone Jack", NULL, "HPOR" },
++
++ /* other jacks */
++ { "IN1P", NULL, "Headset Mic" },
++
++ /* DMIC */
++ {"DMic", NULL, "SoC DMIC"},
++};
++
++static int cml_rt5682_codec_init(struct snd_soc_pcm_runtime *rtd)
++{
++ struct card_private *ctx = snd_soc_card_get_drvdata(rtd->card);
++ struct snd_soc_component *component = rtd->codec_dai->component;
++ struct snd_soc_jack *jack;
++ int ret;
++
++ /* need to enable ASRC function for 24MHz mclk rate */
++ rt5682_sel_asrc_clk_src(component, RT5682_DA_STEREO1_FILTER |
++ RT5682_AD_STEREO1_FILTER,
++ RT5682_CLK_SEL_I2S1_ASRC);
++
++ /*
++ * Headset buttons map to the google Reference headset.
++ * These can be configured by userspace.
++ */
++ ret = snd_soc_card_jack_new(rtd->card, "Headset Jack",
++ SND_JACK_HEADSET | SND_JACK_BTN_0 |
++ SND_JACK_BTN_1 | SND_JACK_BTN_2 |
++ SND_JACK_BTN_3,
++ &ctx->headset, NULL, 0);
++ if (ret) {
++ dev_err(rtd->dev, "Headset Jack creation failed: %d\n", ret);
++ return ret;
++ }
++
++ jack = &ctx->headset;
++
++ snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE);
++ snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND);
++ snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP);
++ snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN);
++ ret = snd_soc_component_set_jack(component, jack, NULL);
++ if (ret)
++ dev_err(rtd->dev, "Headset Jack call-back failed: %d\n", ret);
++
++ return ret;
++};
++
++static int cml_rt5682_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_dai *codec_dai = rtd->codec_dai;
++ int clk_id, clk_freq, pll_out, ret;
++
++ clk_id = RT5682_PLL1_S_MCLK;
++ clk_freq = CML_PLAT_CLK;
++
++ pll_out = params_rate(params) * 512;
++
++ ret = snd_soc_dai_set_pll(codec_dai, 0, clk_id, clk_freq, pll_out);
++ if (ret < 0)
++ dev_warn(rtd->dev, "snd_soc_dai_set_pll err = %d\n", ret);
++
++ /* Configure sysclk for codec */
++ ret = snd_soc_dai_set_sysclk(codec_dai, RT5682_SCLK_S_PLL1,
++ pll_out, SND_SOC_CLOCK_IN);
++ if (ret < 0)
++ dev_warn(rtd->dev, "snd_soc_dai_set_sysclk err = %d\n", ret);
++
++ /*
++ * slot_width should be equal or large than data length, set them
++ * be the same
++ */
++ ret = snd_soc_dai_set_tdm_slot(codec_dai, 0x0, 0x0, 2,
++ params_width(params));
++ if (ret < 0)
++ dev_warn(rtd->dev, "set TDM slot err:%d\n", ret);
++ return ret;
++}
++
++static int cml_rt1011_hw_params(struct snd_pcm_substream *substream,
++ struct snd_pcm_hw_params *params)
++{
++ struct snd_soc_pcm_runtime *rtd = substream->private_data;
++ struct snd_soc_dai *codec_dai;
++ struct snd_soc_card *card = rtd->card;
++ int srate, i, ret = 0;
++
++ srate = params_rate(params);
++
++ for (i = 0; i < rtd->num_codecs; i++) {
++ codec_dai = rtd->codec_dais[i];
++
++ /* 100 Fs to drive 24 bit data */
++ ret = snd_soc_dai_set_pll(codec_dai, 0, RT1011_PLL1_S_BCLK,
++ 100 * srate, 256 * srate);
++ if (ret < 0) {
++ dev_err(card->dev, "codec_dai clock not set\n");
++ return ret;
++ }
++
++ ret = snd_soc_dai_set_sysclk(codec_dai,
++ RT1011_FS_SYS_PRE_S_PLL1,
++ 256 * srate, SND_SOC_CLOCK_IN);
++ if (ret < 0) {
++ dev_err(card->dev, "codec_dai clock not set\n");
++ return ret;
++ }
++
++ /*
++ * Codec TDM is configured as 24 bit capture/ playback.
++ * 2 CH PB is done over 4 codecs - 2 Woofers and 2 Tweeters.
++ * The Left woofer and tweeter plays the Left playback data
++ * and similar by the Right.
++ * Hence 2 codecs (1 T and 1 W pair) share same Rx slot.
++ * The feedback is captured for each codec individually.
++ * Hence all 4 codecs use 1 Tx slot each for feedback.
++ */
++ if (!strcmp(codec_dai->component->name, "i2c-10EC1011:00")) {
++ ret = snd_soc_dai_set_tdm_slot(codec_dai,
++ 0x4, 0x1, 4, 24);
++ if (ret < 0)
++ break;
++ }
++ if (!strcmp(codec_dai->component->name, "i2c-10EC1011:02")) {
++ ret = snd_soc_dai_set_tdm_slot(codec_dai,
++ 0x1, 0x1, 4, 24);
++ if (ret < 0)
++ break;
++ }
++ /* TDM Rx slot 2 is used for Right Woofer & Tweeters pair */
++ if (!strcmp(codec_dai->component->name, "i2c-10EC1011:01")) {
++ ret = snd_soc_dai_set_tdm_slot(codec_dai,
++ 0x8, 0x2, 4, 24);
++ if (ret < 0)
++ break;
++ }
++ if (!strcmp(codec_dai->component->name, "i2c-10EC1011:03")) {
++ ret = snd_soc_dai_set_tdm_slot(codec_dai,
++ 0x2, 0x2, 4, 24);
++ if (ret < 0)
++ break;
++ }
++ }
++ if (ret < 0)
++ dev_err(rtd->dev,
++ "set codec TDM slot for %s failed with error %d\n",
++ codec_dai->component->name, ret);
++ return ret;
++}
++
++static struct snd_soc_ops cml_rt5682_ops = {
++ .hw_params = cml_rt5682_hw_params,
++};
++
++static const struct snd_soc_ops cml_rt1011_ops = {
++ .hw_params = cml_rt1011_hw_params,
++};
++
++static int sof_card_late_probe(struct snd_soc_card *card)
++{
++ struct card_private *ctx = snd_soc_card_get_drvdata(card);
++ struct snd_soc_component *component = NULL;
++ char jack_name[NAME_SIZE];
++ struct hdmi_pcm *pcm;
++ int ret, i = 0;
++
++ pcm = list_first_entry(&ctx->hdmi_pcm_list, struct hdmi_pcm,
++ head);
++ component = pcm->codec_dai->component;
++
++ if (ctx->common_hdmi_codec_drv)
++ return hda_dsp_hdmi_build_controls(card, component);
++
++ list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) {
++ component = pcm->codec_dai->component;
++ snprintf(jack_name, sizeof(jack_name),
++ "HDMI/DP, pcm=%d Jack", pcm->device);
++ ret = snd_soc_card_jack_new(card, jack_name,
++ SND_JACK_AVOUT, &hdmi_jack[i],
++ NULL, 0);
++ if (ret)
++ return ret;
++
++ ret = hdac_hdmi_jack_init(pcm->codec_dai, pcm->device,
++ &hdmi_jack[i]);
++ if (ret < 0)
++ return ret;
++
++ i++;
++ }
++ if (!component)
++ return -EINVAL;
++
++ return hdac_hdmi_jack_port_init(component, &card->dapm);
++}
++
++static int hdmi_init(struct snd_soc_pcm_runtime *rtd)
++{
++ struct card_private *ctx = snd_soc_card_get_drvdata(rtd->card);
++ struct snd_soc_dai *dai = rtd->codec_dai;
++ struct hdmi_pcm *pcm;
++
++ pcm = devm_kzalloc(rtd->card->dev, sizeof(*pcm), GFP_KERNEL);
++ if (!pcm)
++ return -ENOMEM;
++
++ pcm->device = dai->id;
++ pcm->codec_dai = dai;
++
++ list_add_tail(&pcm->head, &ctx->hdmi_pcm_list);
++
++ return 0;
++}
++
++/* Cometlake digital audio interface glue - connects codec <--> CPU */
++
++SND_SOC_DAILINK_DEF(ssp0_pin,
++ DAILINK_COMP_ARRAY(COMP_CPU("SSP0 Pin")));
++SND_SOC_DAILINK_DEF(ssp0_codec,
++ DAILINK_COMP_ARRAY(COMP_CODEC("i2c-10EC5682:00",
++ CML_RT5682_CODEC_DAI)));
++
++SND_SOC_DAILINK_DEF(ssp1_pin,
++ DAILINK_COMP_ARRAY(COMP_CPU("SSP1 Pin")));
++SND_SOC_DAILINK_DEF(ssp1_codec,
++ DAILINK_COMP_ARRAY(
++ /* WL */ COMP_CODEC("i2c-10EC1011:00", CML_RT1011_CODEC_DAI),
++ /* WR */ COMP_CODEC("i2c-10EC1011:01", CML_RT1011_CODEC_DAI),
++ /* TL */ COMP_CODEC("i2c-10EC1011:02", CML_RT1011_CODEC_DAI),
++ /* TR */ COMP_CODEC("i2c-10EC1011:03", CML_RT1011_CODEC_DAI)));
++
++SND_SOC_DAILINK_DEF(dmic_pin,
++ DAILINK_COMP_ARRAY(COMP_CPU("DMIC01 Pin")));
++
++SND_SOC_DAILINK_DEF(dmic16k_pin,
++ DAILINK_COMP_ARRAY(COMP_CPU("DMIC16k Pin")));
++
++SND_SOC_DAILINK_DEF(dmic_codec,
++ DAILINK_COMP_ARRAY(COMP_CODEC("dmic-codec", "dmic-hifi")));
++
++SND_SOC_DAILINK_DEF(idisp1_pin,
++ DAILINK_COMP_ARRAY(COMP_CPU("iDisp1 Pin")));
++SND_SOC_DAILINK_DEF(idisp1_codec,
++ DAILINK_COMP_ARRAY(COMP_CODEC("ehdaudio0D2", "intel-hdmi-hifi1")));
++
++SND_SOC_DAILINK_DEF(idisp2_pin,
++ DAILINK_COMP_ARRAY(COMP_CPU("iDisp2 Pin")));
++SND_SOC_DAILINK_DEF(idisp2_codec,
++ DAILINK_COMP_ARRAY(COMP_CODEC("ehdaudio0D2", "intel-hdmi-hifi2")));
++
++SND_SOC_DAILINK_DEF(idisp3_pin,
++ DAILINK_COMP_ARRAY(COMP_CPU("iDisp3 Pin")));
++SND_SOC_DAILINK_DEF(idisp3_codec,
++ DAILINK_COMP_ARRAY(COMP_CODEC("ehdaudio0D2", "intel-hdmi-hifi3")));
++
++SND_SOC_DAILINK_DEF(platform,
++ DAILINK_COMP_ARRAY(COMP_PLATFORM("0000:00:1f.3")));
++
++static struct snd_soc_dai_link cml_rt1011_rt5682_dailink[] = {
++ /* Back End DAI links */
++ {
++ /* SSP0 - Codec */
++ .name = "SSP0-Codec",
++ .id = 0,
++ .init = cml_rt5682_codec_init,
++ .ignore_pmdown_time = 1,
++ .ops = &cml_rt5682_ops,
++ .dpcm_playback = 1,
++ .dpcm_capture = 1,
++ .no_pcm = 1,
++ SND_SOC_DAILINK_REG(ssp0_pin, ssp0_codec, platform),
++ },
++ {
++ .name = "dmic01",
++ .id = 1,
++ .ignore_suspend = 1,
++ .dpcm_capture = 1,
++ .no_pcm = 1,
++ SND_SOC_DAILINK_REG(dmic_pin, dmic_codec, platform),
++ },
++ {
++ .name = "dmic16k",
++ .id = 2,
++ .ignore_suspend = 1,
++ .dpcm_capture = 1,
++ .no_pcm = 1,
++ SND_SOC_DAILINK_REG(dmic16k_pin, dmic_codec, platform),
++ },
++ {
++ .name = "iDisp1",
++ .id = 3,
++ .init = hdmi_init,
++ .dpcm_playback = 1,
++ .no_pcm = 1,
++ SND_SOC_DAILINK_REG(idisp1_pin, idisp1_codec, platform),
++ },
++ {
++ .name = "iDisp2",
++ .id = 4,
++ .init = hdmi_init,
++ .dpcm_playback = 1,
++ .no_pcm = 1,
++ SND_SOC_DAILINK_REG(idisp2_pin, idisp2_codec, platform),
++ },
++ {
++ .name = "iDisp3",
++ .id = 5,
++ .init = hdmi_init,
++ .dpcm_playback = 1,
++ .no_pcm = 1,
++ SND_SOC_DAILINK_REG(idisp3_pin, idisp3_codec, platform),
++ },
++ {
++ /*
++ * SSP1 - Codec : added to end of list ensuring
++ * reuse of common topologies for other end points
++ * and changing only SSP1's codec
++ */
++ .name = "SSP1-Codec",
++ .id = 6,
++ .dpcm_playback = 1,
++ .dpcm_capture = 1, /* Capture stream provides Feedback */
++ .no_pcm = 1,
++ .ops = &cml_rt1011_ops,
++ SND_SOC_DAILINK_REG(ssp1_pin, ssp1_codec, platform),
++ },
++};
++
++static struct snd_soc_codec_conf rt1011_conf[] = {
++ {
++ .dev_name = "i2c-10EC1011:00",
++ .name_prefix = "WL",
++ },
++ {
++ .dev_name = "i2c-10EC1011:01",
++ .name_prefix = "WR",
++ },
++ {
++ .dev_name = "i2c-10EC1011:02",
++ .name_prefix = "TL",
++ },
++ {
++ .dev_name = "i2c-10EC1011:03",
++ .name_prefix = "TR",
++ },
++};
++
++/* Cometlake audio machine driver for RT1011 and RT5682 */
++static struct snd_soc_card snd_soc_card_cml = {
++ .name = "cml_rt1011_rt5682",
++ .dai_link = cml_rt1011_rt5682_dailink,
++ .num_links = ARRAY_SIZE(cml_rt1011_rt5682_dailink),
++ .codec_conf = rt1011_conf,
++ .num_configs = ARRAY_SIZE(rt1011_conf),
++ .dapm_widgets = cml_rt1011_rt5682_widgets,
++ .num_dapm_widgets = ARRAY_SIZE(cml_rt1011_rt5682_widgets),
++ .dapm_routes = cml_rt1011_rt5682_map,
++ .num_dapm_routes = ARRAY_SIZE(cml_rt1011_rt5682_map),
++ .controls = cml_controls,
++ .num_controls = ARRAY_SIZE(cml_controls),
++ .fully_routed = true,
++ .late_probe = sof_card_late_probe,
++};
++
++static int snd_cml_rt1011_probe(struct platform_device *pdev)
++{
++ struct card_private *ctx;
++ struct snd_soc_acpi_mach *mach;
++ const char *platform_name;
++ int ret;
++
++ ctx = devm_kzalloc(&pdev->dev, sizeof(*ctx), GFP_ATOMIC);
++ if (!ctx)
++ return -ENOMEM;
++
++ INIT_LIST_HEAD(&ctx->hdmi_pcm_list);
++ mach = (&pdev->dev)->platform_data;
++ snd_soc_card_cml.dev = &pdev->dev;
++ platform_name = mach->mach_params.platform;
++
++ /* set platform name for each dailink */
++ ret = snd_soc_fixup_dai_links_platform_name(&snd_soc_card_cml,
++ platform_name);
++ if (ret)
++ return ret;
++
++ ctx->common_hdmi_codec_drv = mach->mach_params.common_hdmi_codec_drv;
++
++ snd_soc_card_set_drvdata(&snd_soc_card_cml, ctx);
++
++ return devm_snd_soc_register_card(&pdev->dev, &snd_soc_card_cml);
++}
++
++static struct platform_driver snd_cml_rt1011_rt5682_driver = {
++ .probe = snd_cml_rt1011_probe,
++ .driver = {
++ .name = "cml_rt1011_rt5682",
++ .pm = &snd_soc_pm_ops,
++ },
++};
++module_platform_driver(snd_cml_rt1011_rt5682_driver);
++
++/* Module information */
++MODULE_DESCRIPTION("Cometlake Audio Machine driver - RT1011 and RT5682 in I2S mode");
++MODULE_AUTHOR("Naveen Manohar <naveen.m@intel.com>");
++MODULE_AUTHOR("Sathya Prakash M R <sathya.prakash.m.r@intel.com>");
++MODULE_AUTHOR("Shuming Fan <shumingf@realtek.com>");
++MODULE_LICENSE("GPL v2");
++MODULE_ALIAS("platform:cml_rt1011_rt5682");
+--
+2.20.1
+
+
+From 0ce85d8a56990759d10305784278be01bb32633b Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:37 -0500
+Subject: [PATCH 064/130] ASoC: Intel: add mutual exclusion between SOF and
+ legacy Baytrail driver
+
+This legacy driver is already deprecated, let's make sure there is no
+conflict with SOF.
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-4-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 280393b712b7e338addc2f7f60b4e4da787ba19b)
+Bugzilla: 1772498
+---
+ sound/soc/intel/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
+index 7e9feca333b7..d6c5c68b7499 100644
+--- a/sound/soc/intel/Kconfig
++++ b/sound/soc/intel/Kconfig
+@@ -65,7 +65,7 @@ config SND_SOC_INTEL_HASWELL
+
+ config SND_SOC_INTEL_BAYTRAIL
+ tristate "Baytrail (legacy) Platforms"
+- depends on DMADEVICES && ACPI && SND_SST_ATOM_HIFI2_PLATFORM=n
++ depends on DMADEVICES && ACPI && SND_SST_ATOM_HIFI2_PLATFORM=n && SND_SOC_SOF_BAYTRAIL=n
+ select SND_SOC_INTEL_SST
+ select SND_SOC_INTEL_SST_ACPI
+ select SND_SOC_INTEL_SST_FIRMWARE
+--
+2.20.1
+
+
+From 5626167a66bddb85e0a33735c85dfb45781f4bce Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:41 -0500
+Subject: [PATCH 065/130] ASoC: Intel: Skylake: mark HDAudio codec support as
+ deprecated.
+
+This option famously broke audio on Linus' laptop and the problem have
+not been fixed.
+
+Mark as DEPRECATED to avoid any ambiguity with distros.
+
+Use SOF if you need HDaudio support w/ the DSP enabled, e.g. for DMIC
+capture.
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-8-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 02701b909c2fab4b49f9c9545ab921c9b2c7a768)
+Bugzilla: 1772498
+---
+ sound/soc/intel/Kconfig | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig
+index d6c5c68b7499..c8de0bb5bed9 100644
+--- a/sound/soc/intel/Kconfig
++++ b/sound/soc/intel/Kconfig
+@@ -209,9 +209,12 @@ config SND_SOC_INTEL_SKYLAKE_SSP_CLK
+ config SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC
+ bool "HDAudio codec support"
+ help
+- If you have a Intel Skylake/Broxton/ApolloLake/KabyLake/
+- GeminiLake or CannonLake platform with an HDaudio codec
+- then enable this option by saying Y
++ This option broke audio on Linus' Skylake laptop in December 2018
++ and the race conditions during the probe were not fixed since.
++ This option is DEPRECATED, all HDaudio codec support needs
++ to be handled by the SOF driver.
++ Distributions should not enable this option and there are no known
++ users of this capability.
+
+ config SND_SOC_INTEL_SKYLAKE_COMMON
+ tristate
+--
+2.20.1
+
+
+From 61e12eb73831fdc01c8b251a41ba4851a57c0370 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:42 -0500
+Subject: [PATCH 066/130] ASoC: Intel: boards: remove select SND_HDA_DSP_LOADER
+
+This option is only required with the Skylake platform driver, there
+is no reason to have this option in machine drivers. This is
+e.g. useless for SOF-based solutions.
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-9-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 9e7301762f6df44bb4a452b6aecbe0f322b370ee)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Kconfig | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
+index ef40f83e0a3b..91952ffc0b67 100644
+--- a/sound/soc/intel/boards/Kconfig
++++ b/sound/soc/intel/boards/Kconfig
+@@ -270,7 +270,6 @@ config SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH
+ depends on I2C && ACPI
+ depends on MFD_INTEL_LPSS || COMPILE_TEST
+ select SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
+- select SND_HDA_DSP_LOADER
+ help
+ This adds support for ASoC machine driver for Broxton-P platforms
+ with DA7219 + MAX98357A I2S audio codec.
+@@ -284,7 +283,6 @@ config SND_SOC_INTEL_BXT_RT298_MACH
+ select SND_SOC_RT298
+ select SND_SOC_DMIC
+ select SND_SOC_HDAC_HDMI
+- select SND_HDA_DSP_LOADER
+ help
+ This adds support for ASoC machine driver for Broxton platforms
+ with RT286 I2S audio codec.
+@@ -375,7 +373,6 @@ config SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH
+ select SND_SOC_MAX98357A
+ select SND_SOC_DMIC
+ select SND_SOC_HDAC_HDMI
+- select SND_HDA_DSP_LOADER
+ help
+ This adds support for ASoC machine driver for Geminilake platforms
+ with RT5682 + MAX98357A I2S audio codec.
+--
+2.20.1
+
+
+From 299b13ab242eba943e1d2b54ac43e7148470d435 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:43 -0500
+Subject: [PATCH 067/130] ASoC: Intel: boards: fix configs for
+ bxt-da7219-max98057a
+
+The same driver is reused for 3 different configurations, but the
+driver will only be build if ApolloLake is selected.
+
+Fix and make sure each device can work without dependencies on others
+(useful for minimal configurations).
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-10-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit c4a09f9a523e674ef9a046e05d99c90f2c9513b1)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Kconfig | 24 ++++++++++++++++++++++--
+ sound/soc/intel/boards/Makefile | 2 +-
+ 2 files changed, 23 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
+index 91952ffc0b67..826694ecfdbf 100644
+--- a/sound/soc/intel/boards/Kconfig
++++ b/sound/soc/intel/boards/Kconfig
+@@ -263,13 +263,17 @@ config SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
+ select SND_SOC_DMIC
+ select SND_SOC_HDAC_HDMI
+
++config SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON
++ tristate
++ select SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
++
+ if SND_SOC_INTEL_APL
+
+ config SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH
+ tristate "Broxton with DA7219 and MAX98357A in I2S Mode"
+ depends on I2C && ACPI
+ depends on MFD_INTEL_LPSS || COMPILE_TEST
+- select SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
++ select SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON
+ help
+ This adds support for ASoC machine driver for Broxton-P platforms
+ with DA7219 + MAX98357A I2S audio codec.
+@@ -365,6 +369,17 @@ endif ## SND_SOC_INTEL_KBL
+
+ if SND_SOC_INTEL_GLK || (SND_SOC_SOF_GEMINILAKE && SND_SOC_SOF_HDA_LINK)
+
++config SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH
++ tristate "GLK with DA7219 and MAX98357A in I2S Mode"
++ depends on I2C && ACPI
++ depends on MFD_INTEL_LPSS || COMPILE_TEST
++ select SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON
++ help
++ This adds support for ASoC machine driver for Geminilake platforms
++ with DA7219 + MAX98357A I2S audio codec.
++ Say Y or m if you have such a device. This is a recommended option.
++ If unsure select "N".
++
+ config SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH
+ tristate "GLK with RT5682 and MAX98357A in I2S Mode"
+ depends on I2C && ACPI
+@@ -418,7 +433,12 @@ config SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH
+ tristate "CML_LP with DA7219 and MAX98357A in I2S Mode"
+ depends on I2C && ACPI
+ depends on MFD_INTEL_LPSS || COMPILE_TEST
+- select SND_SOC_INTEL_DA7219_MAX98357A_GENERIC
++ select SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON
++ help
++ This adds support for ASoC machine driver for Cometlake platforms
++ with DA7219 + MAX98357A I2S audio codec.
++ Say Y or m if you have such a device. This is a recommended option.
++ If unsure select "N".
+
+ config SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH
+ tristate "CML with RT1011 and RT5682 in I2S Mode"
+diff --git a/sound/soc/intel/boards/Makefile b/sound/soc/intel/boards/Makefile
+index 9ae6544c6f3b..ba1aa89db09d 100644
+--- a/sound/soc/intel/boards/Makefile
++++ b/sound/soc/intel/boards/Makefile
+@@ -33,7 +33,7 @@ obj-$(CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH) += snd-soc-sof_rt5682.o
+ obj-$(CONFIG_SND_SOC_INTEL_HASWELL_MACH) += snd-soc-sst-haswell.o
+ obj-$(CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH) += snd-soc-sst-byt-rt5640-mach.o
+ obj-$(CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH) += snd-soc-sst-byt-max98090-mach.o
+-obj-$(CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH) += snd-soc-sst-bxt-da7219_max98357a.o
++obj-$(CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON) += snd-soc-sst-bxt-da7219_max98357a.o
+ obj-$(CONFIG_SND_SOC_INTEL_BXT_RT298_MACH) += snd-soc-sst-bxt-rt298.o
+ obj-$(CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH) += snd-soc-sst-glk-rt5682_max98357a.o
+ obj-$(CONFIG_SND_SOC_INTEL_BROADWELL_MACH) += snd-soc-sst-broadwell.o
+--
+2.20.1
+
+
+From 39c98691a7108dbaeb9bab734553207553111ca5 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:44 -0500
+Subject: [PATCH 068/130] ASoC: Intel: boards: Geminilake is only supported by
+ SOF
+
+Geminilake machine drivers are only tested and recommended with SOF.
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-11-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 3315e5b40f59d1aab6543773d99b1f19c3ea1848)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Kconfig | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
+index 826694ecfdbf..76d1e6ab30b5 100644
+--- a/sound/soc/intel/boards/Kconfig
++++ b/sound/soc/intel/boards/Kconfig
+@@ -367,7 +367,7 @@ config SND_SOC_INTEL_KBL_RT5660_MACH
+
+ endif ## SND_SOC_INTEL_KBL
+
+-if SND_SOC_INTEL_GLK || (SND_SOC_SOF_GEMINILAKE && SND_SOC_SOF_HDA_LINK)
++if SND_SOC_SOF_GEMINILAKE && SND_SOC_SOF_HDA_LINK
+
+ config SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH
+ tristate "GLK with DA7219 and MAX98357A in I2S Mode"
+@@ -394,7 +394,7 @@ config SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH
+ Say Y if you have such a device.
+ If unsure select "N".
+
+-endif ## SND_SOC_INTEL_GLK || (SND_SOC_SOF_GEMINILAKE && SND_SOC_SOF_HDA_LINK)
++endif ## SND_SOC_SOF_GEMINILAKE && SND_SOC_SOF_HDA_LINK
+
+ if SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC || SND_SOC_SOF_HDA_AUDIO_CODEC
+
+--
+2.20.1
+
+
+From 7b646af780bfa2e42b8e89856172469a540e7186 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:30:45 -0500
+Subject: [PATCH 069/130] ASoC: Intel: boards: sof_rt5682: use dependency on
+ SOF_HDA_LINK
+
+The wrong dependency is used and the build can be broken
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101173045.27099-12-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 8039105987fcd8dda39074df013cfdf0025dd297)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Kconfig | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
+index 76d1e6ab30b5..2702aefee775 100644
+--- a/sound/soc/intel/boards/Kconfig
++++ b/sound/soc/intel/boards/Kconfig
+@@ -411,11 +411,11 @@ config SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH
+
+ endif ## SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC || SND_SOC_SOF_HDA_AUDIO_CODEC
+
+-if SND_SOC_SOF_HDA_COMMON || SND_SOC_SOF_BAYTRAIL
++if SND_SOC_SOF_HDA_LINK || SND_SOC_SOF_BAYTRAIL
+ config SND_SOC_INTEL_SOF_RT5682_MACH
+ tristate "SOF with rt5682 codec in I2S Mode"
+ depends on I2C && ACPI
+- depends on (SND_SOC_SOF_HDA_COMMON && (MFD_INTEL_LPSS || COMPILE_TEST)) ||\
++ depends on (SND_SOC_SOF_HDA_LINK && (MFD_INTEL_LPSS || COMPILE_TEST)) ||\
+ (SND_SOC_SOF_BAYTRAIL && (X86_INTEL_LPSS || COMPILE_TEST))
+ select SND_SOC_RT5682
+ select SND_SOC_DMIC
+@@ -425,7 +425,7 @@ config SND_SOC_INTEL_SOF_RT5682_MACH
+ with rt5682 codec.
+ Say Y if you have such a device.
+ If unsure select "N".
+-endif ## SND_SOC_SOF_HDA_COMMON || SND_SOC_SOF_BAYTRAIL
++endif ## SND_SOC_SOF_HDA_LINK || SND_SOC_SOF_BAYTRAIL
+
+ if (SND_SOC_SOF_COMETLAKE_LP && SND_SOC_SOF_HDA_LINK)
+
+--
+2.20.1
+
+
+From 02f03f3b08ed85cb5c0b1c270eb91bc714721641 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Fri, 8 Nov 2019 10:46:37 +0100
+Subject: [PATCH 070/130] ASoC: intel: Avoid non-standard macro usage
+
+Pass the device pointer from the PCI pointer directly, instead of a
+non-standard macro. The macro didn't give any better readability.
+
+Acked-by: Mark Brown <broonie@kernel.org>
+Link: https://lore.kernel.org/r/20191108094641.20086-5-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 6420c24a30006e2fdbc292f88d37db56ca28f6e8)
+Bugzilla: 1772498
+---
+ sound/soc/intel/skylake/skl-pcm.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sound/soc/intel/skylake/skl-pcm.c b/sound/soc/intel/skylake/skl-pcm.c
+index 7f287424af9b..07bc047f077e 100644
+--- a/sound/soc/intel/skylake/skl-pcm.c
++++ b/sound/soc/intel/skylake/skl-pcm.c
+@@ -1310,7 +1310,7 @@ static int skl_pcm_new(struct snd_soc_pcm_runtime *rtd)
+ size = MAX_PREALLOC_SIZE;
+ snd_pcm_lib_preallocate_pages_for_all(pcm,
+ SNDRV_DMA_TYPE_DEV_SG,
+- snd_dma_pci_data(skl->pci),
++ &skl->pci->dev,
+ size, MAX_PREALLOC_SIZE);
+ }
+
+--
+2.20.1
+
+
+From 3541bd9bf269e2df13150125f7e417632967e292 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:09 -0500
+Subject: [PATCH 071/130] ASoC: SOF: ipc: introduce message for DSP power
+ gating
+
+Add new ipc messages which will be sent from driver to FW, to ask FW to
+enter specific power saving state.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-14-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 10992004e1e960c7e256ec70c7ab22895a7003d7)
+Bugzilla: 1772498
+---
+ include/sound/sof/header.h | 1 +
+ include/sound/sof/pm.h | 8 ++++++++
+ 2 files changed, 9 insertions(+)
+
+diff --git a/include/sound/sof/header.h b/include/sound/sof/header.h
+index 332143ff7278..bf3edd9c08b4 100644
+--- a/include/sound/sof/header.h
++++ b/include/sound/sof/header.h
+@@ -75,6 +75,7 @@
+ #define SOF_IPC_PM_CLK_GET SOF_CMD_TYPE(0x005)
+ #define SOF_IPC_PM_CLK_REQ SOF_CMD_TYPE(0x006)
+ #define SOF_IPC_PM_CORE_ENABLE SOF_CMD_TYPE(0x007)
++#define SOF_IPC_PM_GATE SOF_CMD_TYPE(0x008)
+
+ /* component runtime config - multiple different types */
+ #define SOF_IPC_COMP_SET_VALUE SOF_CMD_TYPE(0x001)
+diff --git a/include/sound/sof/pm.h b/include/sound/sof/pm.h
+index 003879401d63..3cf2e0f39d94 100644
+--- a/include/sound/sof/pm.h
++++ b/include/sound/sof/pm.h
+@@ -45,4 +45,12 @@ struct sof_ipc_pm_core_config {
+ uint32_t enable_mask;
+ } __packed;
+
++struct sof_ipc_pm_gate {
++ struct sof_ipc_cmd_hdr hdr;
++ uint32_t flags; /* platform specific */
++
++ /* reserved for future use */
++ uint32_t reserved[5];
++} __packed;
++
+ #endif
+--
+2.20.1
+
+
+From 145c89d929bcdf53b50c6528997bfc2595883513 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:40:57 -0500
+Subject: [PATCH 072/130] ASoC: SOF: add a field to store the current D0
+ substate of DSP
+
+Add field d0_substate to struct snd_sof_dev to store the current DSP
+D0 sub-state(only meaningful when DSP in D0), which could be D0I0 or
+D0I3.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 4c19030c511fd6eab029bae838f736256d2f43cd)
+Bugzilla: 1772498
+---
+ sound/soc/sof/sof-priv.h | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 2d40de5ee285..481dfe4ee2d0 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -68,6 +68,12 @@ extern int sof_core_debug;
+
+ #define DMA_CHAN_INVALID 0xFFFFFFFF
+
++/* DSP D0ix sub-state */
++enum sof_d0_substate {
++ SOF_DSP_D0I0 = 0, /* DSP default D0 substate */
++ SOF_DSP_D0I3, /* DSP D0i3(low power) substate*/
++};
++
+ struct snd_sof_dev;
+ struct snd_sof_ipc_msg;
+ struct snd_sof_ipc;
+@@ -387,6 +393,9 @@ struct snd_sof_dev {
+ */
+ struct snd_soc_component_driver plat_drv;
+
++ /* power states related */
++ enum sof_d0_substate d0_substate;
++
+ /* DSP firmware boot */
+ wait_queue_head_t boot_wait;
+ u32 boot_complete;
+--
+2.20.1
+
+
+From b5d42bad1c65b0b71c7a1115a9d50f25a24c2351 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:40:58 -0500
+Subject: [PATCH 073/130] ASoC: SOF: reset default d0_substate at probe() and
+ resume()
+
+We initialize/reset d0_substate to default d0i0 value when doing
+transition D3-->D0, e.g. at success of probing and resuming.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 09fe6b528886c0d07ce539b837749edcc46618d0)
+Bugzilla: 1772498
+---
+ sound/soc/sof/core.c | 3 +++
+ sound/soc/sof/pm.c | 3 +++
+ 2 files changed, 6 insertions(+)
+
+diff --git a/sound/soc/sof/core.c b/sound/soc/sof/core.c
+index 5998861a9002..8661c2cca76b 100644
+--- a/sound/soc/sof/core.c
++++ b/sound/soc/sof/core.c
+@@ -458,6 +458,9 @@ int snd_sof_device_probe(struct device *dev, struct snd_sof_pdata *plat_data)
+ /* initialize sof device */
+ sdev->dev = dev;
+
++ /* initialize default D0 sub-state */
++ sdev->d0_substate = SOF_DSP_D0I0;
++
+ sdev->pdata = plat_data;
+ sdev->first_boot = true;
+ dev_set_drvdata(dev, sdev);
+diff --git a/sound/soc/sof/pm.c b/sound/soc/sof/pm.c
+index e23beaeefe00..81e623dfc7e5 100644
+--- a/sound/soc/sof/pm.c
++++ b/sound/soc/sof/pm.c
+@@ -326,6 +326,9 @@ static int sof_resume(struct device *dev, bool runtime_resume)
+ "error: ctx_restore ipc error during resume %d\n",
+ ret);
+
++ /* initialize default D0 sub-state */
++ sdev->d0_substate = SOF_DSP_D0I0;
++
+ return ret;
+ }
+
+--
+2.20.1
+
+
+From 3cf1bbbb4506efc80e8066c4d40e92264f26eec7 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:40:59 -0500
+Subject: [PATCH 074/130] ASoC: SOF: add set_power_state() to dsp_ops for power
+ state update
+
+D0i3 is a platform-defined substate of D0, so we need a
+platform-specific callback in dsp_ops to handle the relevant
+configurations.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-4-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit e8f112d8c29f44ded83f97828c104bf0904871ec)
+Bugzilla: 1772498
+---
+ sound/soc/sof/ops.h | 9 +++++++++
+ sound/soc/sof/sof-priv.h | 2 ++
+ 2 files changed, 11 insertions(+)
+
+diff --git a/sound/soc/sof/ops.h b/sound/soc/sof/ops.h
+index 824d36fe59fd..d7c8fc06f961 100644
+--- a/sound/soc/sof/ops.h
++++ b/sound/soc/sof/ops.h
+@@ -193,6 +193,15 @@ static inline int snd_sof_dsp_set_clk(struct snd_sof_dev *sdev, u32 freq)
+ return 0;
+ }
+
++static inline int snd_sof_dsp_set_power_state(struct snd_sof_dev *sdev,
++ enum sof_d0_substate substate)
++{
++ if (sof_ops(sdev)->set_power_state)
++ return sof_ops(sdev)->set_power_state(sdev, substate);
++
++ return 0;
++}
++
+ /* debug */
+ static inline void snd_sof_dsp_dbg_dump(struct snd_sof_dev *sdev, u32 flags)
+ {
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 481dfe4ee2d0..e9902e4e8e55 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -189,6 +189,8 @@ struct snd_sof_dsp_ops {
+ int (*runtime_resume)(struct snd_sof_dev *sof_dev); /* optional */
+ int (*runtime_idle)(struct snd_sof_dev *sof_dev); /* optional */
+ int (*set_hw_params_upon_resume)(struct snd_sof_dev *sdev); /* optional */
++ int (*set_power_state)(struct snd_sof_dev *sdev,
++ enum sof_d0_substate d0_substate); /* optional */
+
+ /* DSP clocking */
+ int (*set_clk)(struct snd_sof_dev *sof_dev, u32 freq); /* optional */
+--
+2.20.1
+
+
+From 00b28b09cc4fb52852651219ac1369041484770d Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:00 -0500
+Subject: [PATCH 075/130] ASoC: SOF: Intel: hda-dsp: Add helper for setting DSP
+ D0ix substate
+
+Adding helper to implement setting dsp to d0i3 or d0i0 status, this will
+be needed for driver D0ix support.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-5-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 62f8f76604623980d41cf73691ca45288871efd9)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-dsp.c | 46 +++++++++++++++++++++++++++++++++++
+ sound/soc/sof/intel/hda.h | 10 ++++++++
+ 2 files changed, 56 insertions(+)
+
+diff --git a/sound/soc/sof/intel/hda-dsp.c b/sound/soc/sof/intel/hda-dsp.c
+index 3ea401646e0c..fa2f1f66c72c 100644
+--- a/sound/soc/sof/intel/hda-dsp.c
++++ b/sound/soc/sof/intel/hda-dsp.c
+@@ -306,6 +306,52 @@ void hda_dsp_ipc_int_disable(struct snd_sof_dev *sdev)
+ HDA_DSP_REG_HIPCCTL_BUSY | HDA_DSP_REG_HIPCCTL_DONE, 0);
+ }
+
++static int hda_dsp_wait_d0i3c_done(struct snd_sof_dev *sdev, int retry)
++{
++ struct hdac_bus *bus = sof_to_bus(sdev);
++
++ while (snd_hdac_chip_readb(bus, VS_D0I3C) & SOF_HDA_VS_D0I3C_CIP) {
++ if (!retry--)
++ return -ETIMEDOUT;
++ usleep_range(10, 15);
++ }
++
++ return 0;
++}
++
++int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
++ enum sof_d0_substate d0_substate)
++{
++ struct hdac_bus *bus = sof_to_bus(sdev);
++ int retry = 50;
++ int ret;
++ u8 value;
++
++ /* Write to D0I3C after Command-In-Progress bit is cleared */
++ ret = hda_dsp_wait_d0i3c_done(sdev, retry);
++ if (ret < 0) {
++ dev_err(bus->dev, "CIP timeout before update D0I3C!\n");
++ return ret;
++ }
++
++ /* Update D0I3C register */
++ value = d0_substate == SOF_DSP_D0I3 ? SOF_HDA_VS_D0I3C_I3 : 0;
++ snd_hdac_chip_updateb(bus, VS_D0I3C, SOF_HDA_VS_D0I3C_I3, value);
++
++ /* Wait for cmd in progress to be cleared before exiting the function */
++ retry = 50;
++ ret = hda_dsp_wait_d0i3c_done(sdev, retry);
++ if (ret < 0) {
++ dev_err(bus->dev, "CIP timeout after D0I3C updated!\n");
++ return ret;
++ }
++
++ dev_vdbg(bus->dev, "D0I3C updated, register = 0x%x\n",
++ snd_hdac_chip_readb(bus, VS_D0I3C));
++
++ return 0;
++}
++
+ static int hda_suspend(struct snd_sof_dev *sdev, bool runtime_suspend)
+ {
+ struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata;
+diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
+index d6ef657b8900..21b0e180017a 100644
+--- a/sound/soc/sof/intel/hda.h
++++ b/sound/soc/sof/intel/hda.h
+@@ -64,6 +64,13 @@
+ #define SOF_HDA_PPCTL_PIE BIT(31)
+ #define SOF_HDA_PPCTL_GPROCEN BIT(30)
+
++/*Vendor Specific Registers*/
++#define SOF_HDA_VS_D0I3C 0x104A
++
++/* D0I3C Register fields */
++#define SOF_HDA_VS_D0I3C_CIP BIT(0) /* Command-In-Progress */
++#define SOF_HDA_VS_D0I3C_I3 BIT(2) /* D0i3 enable bit */
++
+ /* DPIB entry size: 8 Bytes = 2 DWords */
+ #define SOF_HDA_DPIB_ENTRY_SIZE 0x8
+
+@@ -455,6 +462,9 @@ int hda_dsp_core_reset_power_down(struct snd_sof_dev *sdev,
+ void hda_dsp_ipc_int_enable(struct snd_sof_dev *sdev);
+ void hda_dsp_ipc_int_disable(struct snd_sof_dev *sdev);
+
++int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
++ enum sof_d0_substate d0_substate);
++
+ int hda_dsp_suspend(struct snd_sof_dev *sdev);
+ int hda_dsp_resume(struct snd_sof_dev *sdev);
+ int hda_dsp_runtime_suspend(struct snd_sof_dev *sdev);
+--
+2.20.1
+
+
+From d2b397a84c59634c88d3750db429f5be2e3a77ae Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:01 -0500
+Subject: [PATCH 076/130] ASoC: SOF: Intel: CNL: add set_power_state() ops
+
+Using hda_dsp_set_power_state() as set_power_state() ops for cnl to do
+d0ix platform configuration updates.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-6-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 73b51957122dc47a40325a5359b44ef337cbf217)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/cnl.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/sound/soc/sof/intel/cnl.c b/sound/soc/sof/intel/cnl.c
+index e9cdcc040fb5..982b81a0b13a 100644
+--- a/sound/soc/sof/intel/cnl.c
++++ b/sound/soc/sof/intel/cnl.c
+@@ -255,6 +255,7 @@ const struct snd_sof_dsp_ops sof_cnl_ops = {
+ .runtime_resume = hda_dsp_runtime_resume,
+ .runtime_idle = hda_dsp_runtime_idle,
+ .set_hw_params_upon_resume = hda_dsp_set_hw_params_upon_resume,
++ .set_power_state = hda_dsp_set_power_state,
+
+ /* ALSA HW info flags */
+ .hw_info = SNDRV_PCM_INFO_MMAP |
+--
+2.20.1
+
+
+From 7cb0adf614bc8d756f22dddd17f9eda4d48d6ee7 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:02 -0500
+Subject: [PATCH 077/130] ASoC: SOF: Intel: APL: add set_power_state() ops
+
+Using hda_dsp_set_power_state() as set_power_state() ops for apl to do
+d0ix platform configuration updates.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-7-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 35c930ba6025964ac71f041065ae212a0fcc7cca)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/apl.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/sound/soc/sof/intel/apl.c b/sound/soc/sof/intel/apl.c
+index 15d26e8d90a9..7daa8eb456c8 100644
+--- a/sound/soc/sof/intel/apl.c
++++ b/sound/soc/sof/intel/apl.c
+@@ -97,6 +97,7 @@ const struct snd_sof_dsp_ops sof_apl_ops = {
+ .runtime_resume = hda_dsp_runtime_resume,
+ .runtime_idle = hda_dsp_runtime_idle,
+ .set_hw_params_upon_resume = hda_dsp_set_hw_params_upon_resume,
++ .set_power_state = hda_dsp_set_power_state,
+
+ /* ALSA HW info flags */
+ .hw_info = SNDRV_PCM_INFO_MMAP |
+--
+2.20.1
+
+
+From e1f3cdb3b898b881acc9465773ff534a26f37cd9 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:03 -0500
+Subject: [PATCH 078/130] ASoC: SOF: add flag to snd_sof_pcm_stream for D0i3
+ compatible stream
+
+Add flag d0i3_compatible to struct snd_sof_pcm_stream to denote if the
+stream can tolerate a transition to the D0i3 substate while opened (thus
+seen as 'active' by pm_runtime).
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-8-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit e5c97e88084b8dca6850eba5d2937716b88306c1)
+Bugzilla: 1772498
+---
+ sound/soc/sof/sof-priv.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index e9902e4e8e55..7a21a45d3635 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -310,6 +310,7 @@ struct snd_sof_pcm_stream {
+ struct sof_ipc_stream_posn posn;
+ struct snd_pcm_substream *substream;
+ struct work_struct period_elapsed_work;
++ bool d0i3_compatible; /* DSP can be in D0I3 when this pcm is opened */
+ };
+
+ /* ALSA SOF PCM device */
+--
+2.20.1
+
+
+From 84bac6cfab76bb8e71b50054d9576aacb6e4c0d2 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:04 -0500
+Subject: [PATCH 079/130] ASoC: SOF: token: add tokens for PCM compatible with
+ D0i3 substate
+
+Add stream token SOF_TKN_STREAM_PLAYBACK_COMPATIBLE_D0I3 and
+SOF_TKN_STREAM_CAPTURE_COMPATIBLE_D0I3 to denote if the stream can be
+opened at low power d0i3 status or not.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-9-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 4a94940988cc44adeb383401dea0beeac4abbe63)
+Bugzilla: 1772498
+---
+ include/uapi/sound/sof/tokens.h | 4 ++++
+ sound/soc/sof/topology.c | 10 ++++++++++
+ 2 files changed, 14 insertions(+)
+
+diff --git a/include/uapi/sound/sof/tokens.h b/include/uapi/sound/sof/tokens.h
+index d65406f34361..76883e6fb750 100644
+--- a/include/uapi/sound/sof/tokens.h
++++ b/include/uapi/sound/sof/tokens.h
+@@ -113,6 +113,10 @@
+ /* ESAI */
+ #define SOF_TKN_IMX_ESAI_MCLK_ID 1100
+
++/* Stream */
++#define SOF_TKN_STREAM_PLAYBACK_COMPATIBLE_D0I3 1200
++#define SOF_TKN_STREAM_CAPTURE_COMPATIBLE_D0I3 1201
++
+ /* Led control for mute switches */
+ #define SOF_TKN_MUTE_LED_USE 1300
+ #define SOF_TKN_MUTE_LED_DIRECTION 1301
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index 8032bb8a709c..c4bc23163497 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -735,6 +735,16 @@ static const struct sof_topology_token pcm_tokens[] = {
+ offsetof(struct sof_ipc_comp_host, dmac_config), 0},
+ };
+
++/* PCM */
++static const struct sof_topology_token stream_tokens[] = {
++ {SOF_TKN_STREAM_PLAYBACK_COMPATIBLE_D0I3,
++ SND_SOC_TPLG_TUPLE_TYPE_BOOL, get_token_u16,
++ offsetof(struct snd_sof_pcm, stream[0].d0i3_compatible), 0},
++ {SOF_TKN_STREAM_CAPTURE_COMPATIBLE_D0I3,
++ SND_SOC_TPLG_TUPLE_TYPE_BOOL, get_token_u16,
++ offsetof(struct snd_sof_pcm, stream[1].d0i3_compatible), 0},
++};
++
+ /* Generic components */
+ static const struct sof_topology_token comp_tokens[] = {
+ {SOF_TKN_COMP_PERIOD_SINK_COUNT,
+--
+2.20.1
+
+
+From 178524d176b58f1c218cf1ddf701cfa7fa7a9a04 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:05 -0500
+Subject: [PATCH 080/130] ASoC: SOF: topology: parse and store d0i3_compatible
+ flag
+
+Parses the token from tplg file and store it to snd_sof_pcm_stream
+d0i3_compatible flag, which can be used later for d0ix transition
+management.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-10-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit c5232c0171428f005a3204e1c264231fb5999b28)
+Bugzilla: 1772498
+---
+ sound/soc/sof/topology.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index c4bc23163497..9e3996125d03 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -2308,6 +2308,7 @@ static int sof_dai_load(struct snd_soc_component *scomp, int index,
+ {
+ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
+ struct snd_soc_tplg_stream_caps *caps;
++ struct snd_soc_tplg_private *private = &pcm->priv;
+ struct snd_sof_pcm *spcm;
+ int stream = SNDRV_PCM_STREAM_PLAYBACK;
+ int ret = 0;
+@@ -2330,10 +2331,22 @@ static int sof_dai_load(struct snd_soc_component *scomp, int index,
+ dai_drv->dobj.private = spcm;
+ list_add(&spcm->list, &sdev->pcm_list);
+
++ ret = sof_parse_tokens(scomp, spcm, stream_tokens,
++ ARRAY_SIZE(stream_tokens), private->array,
++ le32_to_cpu(private->size));
++ if (ret) {
++ dev_err(sdev->dev, "error: parse stream tokens failed %d\n",
++ le32_to_cpu(private->size));
++ return ret;
++ }
++
+ /* do we need to allocate playback PCM DMA pages */
+ if (!spcm->pcm.playback)
+ goto capture;
+
++ dev_vdbg(sdev->dev, "tplg: pcm %s stream tokens: playback d0i3:%d\n",
++ spcm->pcm.pcm_name, spcm->stream[0].d0i3_compatible);
++
+ caps = &spcm->pcm.caps[stream];
+
+ /* allocate playback page table buffer */
+@@ -2361,6 +2374,9 @@ static int sof_dai_load(struct snd_soc_component *scomp, int index,
+ if (!spcm->pcm.capture)
+ return ret;
+
++ dev_vdbg(sdev->dev, "tplg: pcm %s stream tokens: capture d0i3:%d\n",
++ spcm->pcm.pcm_name, spcm->stream[1].d0i3_compatible);
++
+ caps = &spcm->pcm.caps[stream];
+
+ /* allocate capture page table buffer */
+--
+2.20.1
+
+
+From 99f21fd84280a7fc9a6f33f8f82b757306db97e7 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:06 -0500
+Subject: [PATCH 081/130] ASoC: SOF: Intel: hda-dsp: align the comments for
+ D0I3C update
+
+Align the logs for CIP timeout at D0I3C.I3 updating.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-11-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit aae7c82d01219bf568a7b12f5839d7ca52b17d59)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-dsp.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda-dsp.c b/sound/soc/sof/intel/hda-dsp.c
+index fa2f1f66c72c..74805a066183 100644
+--- a/sound/soc/sof/intel/hda-dsp.c
++++ b/sound/soc/sof/intel/hda-dsp.c
+@@ -330,7 +330,7 @@ int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
+ /* Write to D0I3C after Command-In-Progress bit is cleared */
+ ret = hda_dsp_wait_d0i3c_done(sdev, retry);
+ if (ret < 0) {
+- dev_err(bus->dev, "CIP timeout before update D0I3C!\n");
++ dev_err(bus->dev, "CIP timeout before D0I3C update!\n");
+ return ret;
+ }
+
+@@ -342,7 +342,7 @@ int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
+ retry = 50;
+ ret = hda_dsp_wait_d0i3c_done(sdev, retry);
+ if (ret < 0) {
+- dev_err(bus->dev, "CIP timeout after D0I3C updated!\n");
++ dev_err(bus->dev, "CIP timeout after D0I3C update!\n");
+ return ret;
+ }
+
+--
+2.20.1
+
+
+From f672aa4a4452ca0d79a8f6b44c76c0139f6f99ec Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:07 -0500
+Subject: [PATCH 082/130] ASoC: SOF: Intel: HDA: use macro for register polling
+ retry count
+
+Define macro and use it for the register polling retry count.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-12-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 92f4beb718d76e93b76343a3ba872df6cb210672)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-dsp.c | 6 ++----
+ sound/soc/sof/intel/hda.h | 1 +
+ 2 files changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda-dsp.c b/sound/soc/sof/intel/hda-dsp.c
+index 74805a066183..936361bd25e9 100644
+--- a/sound/soc/sof/intel/hda-dsp.c
++++ b/sound/soc/sof/intel/hda-dsp.c
+@@ -323,12 +323,11 @@ int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
+ enum sof_d0_substate d0_substate)
+ {
+ struct hdac_bus *bus = sof_to_bus(sdev);
+- int retry = 50;
+ int ret;
+ u8 value;
+
+ /* Write to D0I3C after Command-In-Progress bit is cleared */
+- ret = hda_dsp_wait_d0i3c_done(sdev, retry);
++ ret = hda_dsp_wait_d0i3c_done(sdev, HDA_DSP_REG_POLL_RETRY_COUNT);
+ if (ret < 0) {
+ dev_err(bus->dev, "CIP timeout before D0I3C update!\n");
+ return ret;
+@@ -339,8 +338,7 @@ int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
+ snd_hdac_chip_updateb(bus, VS_D0I3C, SOF_HDA_VS_D0I3C_I3, value);
+
+ /* Wait for cmd in progress to be cleared before exiting the function */
+- retry = 50;
+- ret = hda_dsp_wait_d0i3c_done(sdev, retry);
++ ret = hda_dsp_wait_d0i3c_done(sdev, HDA_DSP_REG_POLL_RETRY_COUNT);
+ if (ret < 0) {
+ dev_err(bus->dev, "CIP timeout after D0I3C update!\n");
+ return ret;
+diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
+index 21b0e180017a..5a089efc0e4c 100644
+--- a/sound/soc/sof/intel/hda.h
++++ b/sound/soc/sof/intel/hda.h
+@@ -214,6 +214,7 @@
+ #define HDA_DSP_CTRL_RESET_TIMEOUT 100
+ #define HDA_DSP_WAIT_TIMEOUT 500 /* 500 msec */
+ #define HDA_DSP_REG_POLL_INTERVAL_US 500 /* 0.5 msec */
++#define HDA_DSP_REG_POLL_RETRY_COUNT 50
+
+ #define HDA_DSP_ADSPIC_IPC 1
+ #define HDA_DSP_ADSPIS_IPC 1
+--
+2.20.1
+
+
+From e21c6caf57e71006a145a73c117305e0fe2ea512 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:08 -0500
+Subject: [PATCH 083/130] ASoC: SOF: PM: rename sof_send_pm_ipc to
+ sof_send_pm_ctx_ipc
+
+The helper sof_send_pm_ipc() is only suitable for context save/restore
+IPCs' sending, so rename it to sof_send_pm_ctx_ipc here.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-13-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 7c7eba2402c11137d1fa1d3fb964a2c6fc1ded3e)
+Bugzilla: 1772498
+---
+ sound/soc/sof/pm.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/sof/pm.c b/sound/soc/sof/pm.c
+index 81e623dfc7e5..ac900fb3379e 100644
+--- a/sound/soc/sof/pm.c
++++ b/sound/soc/sof/pm.c
+@@ -197,7 +197,7 @@ static int sof_restore_pipelines(struct snd_sof_dev *sdev)
+ return ret;
+ }
+
+-static int sof_send_pm_ipc(struct snd_sof_dev *sdev, int cmd)
++static int sof_send_pm_ctx_ipc(struct snd_sof_dev *sdev, int cmd)
+ {
+ struct sof_ipc_pm_ctx pm_ctx;
+ struct sof_ipc_reply reply;
+@@ -320,7 +320,7 @@ static int sof_resume(struct device *dev, bool runtime_resume)
+ }
+
+ /* notify DSP of system resume */
+- ret = sof_send_pm_ipc(sdev, SOF_IPC_PM_CTX_RESTORE);
++ ret = sof_send_pm_ctx_ipc(sdev, SOF_IPC_PM_CTX_RESTORE);
+ if (ret < 0)
+ dev_err(sdev->dev,
+ "error: ctx_restore ipc error during resume %d\n",
+@@ -361,7 +361,7 @@ static int sof_suspend(struct device *dev, bool runtime_suspend)
+ sof_cache_debugfs(sdev);
+ #endif
+ /* notify DSP of upcoming power down */
+- ret = sof_send_pm_ipc(sdev, SOF_IPC_PM_CTX_SAVE);
++ ret = sof_send_pm_ctx_ipc(sdev, SOF_IPC_PM_CTX_SAVE);
+ if (ret == -EBUSY || ret == -EAGAIN) {
+ /*
+ * runtime PM has logic to handle -EBUSY/-EAGAIN so
+--
+2.20.1
+
+
+From 0852a87eb392f8a9d735b60d3a151332da158519 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:10 -0500
+Subject: [PATCH 084/130] ASoC: SOF: Intel: hda-ipc: Don't read mailbox for
+ PM_GATE reply
+
+Memory windows could be powered off before receiving PM_GATE IPC reply
+from FW, we can't read the mailbox to get reply.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-15-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 463fbf6dc03aff41e973602bbad6cb135fa6d48a)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-ipc.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda-ipc.c b/sound/soc/sof/intel/hda-ipc.c
+index 6aae6f18b3dc..0fd2153c1769 100644
+--- a/sound/soc/sof/intel/hda-ipc.c
++++ b/sound/soc/sof/intel/hda-ipc.c
+@@ -83,10 +83,12 @@ void hda_dsp_ipc_get_reply(struct snd_sof_dev *sdev)
+ }
+
+ hdr = msg->msg_data;
+- if (hdr->cmd == (SOF_IPC_GLB_PM_MSG | SOF_IPC_PM_CTX_SAVE)) {
++ if (hdr->cmd == (SOF_IPC_GLB_PM_MSG | SOF_IPC_PM_CTX_SAVE) ||
++ hdr->cmd == (SOF_IPC_GLB_PM_MSG | SOF_IPC_PM_GATE)) {
+ /*
+ * memory windows are powered off before sending IPC reply,
+- * so we can't read the mailbox for CTX_SAVE reply.
++ * so we can't read the mailbox for CTX_SAVE and PM_GATE
++ * replies.
+ */
+ reply.error = 0;
+ reply.hdr.cmd = SOF_IPC_GLB_REPLY;
+--
+2.20.1
+
+
+From eee9b23d3c152581249c19f492cf21bd1e023a24 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:11 -0500
+Subject: [PATCH 085/130] ASoC: SOF: Intel: HDA: add cAVS specific compact IPC
+ header file
+
+On cAVS platforms, some IPCs are required to be sent via IPC registers
+only(e.g. when in D0i3, mailbox is unaccessible), add hda-ipc.h to hold
+definition of those compact IPCs.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-16-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 5056193d4d1a8b73087145add21141c46027d6a2)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-ipc.h | 51 +++++++++++++++++++++++++++++++++++
+ 1 file changed, 51 insertions(+)
+ create mode 100644 sound/soc/sof/intel/hda-ipc.h
+
+diff --git a/sound/soc/sof/intel/hda-ipc.h b/sound/soc/sof/intel/hda-ipc.h
+new file mode 100644
+index 000000000000..aef0ceac9803
+--- /dev/null
++++ b/sound/soc/sof/intel/hda-ipc.h
+@@ -0,0 +1,51 @@
++/* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */
++/*
++ * This file is provided under a dual BSD/GPLv2 license. When using or
++ * redistributing this file, you may do so under either license.
++ *
++ * Copyright(c) 2019 Intel Corporation. All rights reserved.
++ *
++ * Author: Keyon Jie <yang.jie@linux.intel.com>
++ */
++
++#ifndef __SOF_INTEL_HDA_IPC_H
++#define __SOF_INTEL_HDA_IPC_H
++
++/*
++ * Primary register, mapped to
++ * - DIPCTDR (HIPCIDR) in sideband IPC (cAVS 1.8+)
++ * - DIPCT in cAVS 1.5 IPC
++ *
++ * Secondary register, mapped to:
++ * - DIPCTDD (HIPCIDD) in sideband IPC (cAVS 1.8+)
++ * - DIPCTE in cAVS 1.5 IPC
++ */
++
++/* Common bits in primary register */
++
++/* Reserved for doorbell */
++#define HDA_IPC_RSVD_31 BIT(31)
++/* Target, 0 - normal message, 1 - compact message(cAVS compatible) */
++#define HDA_IPC_MSG_COMPACT BIT(30)
++/* Direction, 0 - request, 1 - response */
++#define HDA_IPC_RSP BIT(29)
++
++#define HDA_IPC_TYPE_SHIFT 24
++#define HDA_IPC_TYPE_MASK GENMASK(28, 24)
++#define HDA_IPC_TYPE(x) ((x) << HDA_IPC_TYPE_SHIFT)
++
++#define HDA_IPC_PM_GATE HDA_IPC_TYPE(0x8U)
++
++/* Command specific payload bits in secondary register */
++
++/* Disable DMA tracing (0 - keep tracing, 1 - to disable DMA trace) */
++#define HDA_PM_NO_DMA_TRACE BIT(4)
++/* Prevent clock gating (0 - cg allowed, 1 - DSP clock always on) */
++#define HDA_PM_PCG BIT(3)
++/* Prevent power gating (0 - deep power state transitions allowed) */
++#define HDA_PM_PPG BIT(2)
++/* Indicates whether streaming is active */
++#define HDA_PM_PG_STREAMING BIT(1)
++#define HDA_PM_PG_RSVD BIT(0)
++
++#endif
+--
+2.20.1
+
+
+From 325dfda7c31d247932c0ec20eda966bf0ca24512 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:12 -0500
+Subject: [PATCH 086/130] ASoC: SOF: configure D0ix IPC flags in
+ set_power_state
+
+The configuration for D0ix in FW is platform specific, let's do this and
+send IPC in the platform set_power_state() ops.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-17-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 534037fddd34b58be86a826d449a5a6635ecdbf5)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-dsp.c | 32 +++++++++++++++++++++++++++++++-
+ 1 file changed, 31 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/sof/intel/hda-dsp.c b/sound/soc/sof/intel/hda-dsp.c
+index 936361bd25e9..b5070409a5e3 100644
+--- a/sound/soc/sof/intel/hda-dsp.c
++++ b/sound/soc/sof/intel/hda-dsp.c
+@@ -19,6 +19,7 @@
+ #include <sound/hda_register.h>
+ #include "../ops.h"
+ #include "hda.h"
++#include "hda-ipc.h"
+
+ /*
+ * DSP Core control.
+@@ -319,10 +320,28 @@ static int hda_dsp_wait_d0i3c_done(struct snd_sof_dev *sdev, int retry)
+ return 0;
+ }
+
++static int hda_dsp_send_pm_gate_ipc(struct snd_sof_dev *sdev, u32 flags)
++{
++ struct sof_ipc_pm_gate pm_gate;
++ struct sof_ipc_reply reply;
++
++ memset(&pm_gate, 0, sizeof(pm_gate));
++
++ /* configure pm_gate ipc message */
++ pm_gate.hdr.size = sizeof(pm_gate);
++ pm_gate.hdr.cmd = SOF_IPC_GLB_PM_MSG | SOF_IPC_PM_GATE;
++ pm_gate.flags = flags;
++
++ /* send pm_gate ipc to dsp */
++ return sof_ipc_tx_message(sdev->ipc, pm_gate.hdr.cmd, &pm_gate,
++ sizeof(pm_gate), &reply, sizeof(reply));
++}
++
+ int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
+ enum sof_d0_substate d0_substate)
+ {
+ struct hdac_bus *bus = sof_to_bus(sdev);
++ u32 flags;
+ int ret;
+ u8 value;
+
+@@ -347,7 +366,18 @@ int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
+ dev_vdbg(bus->dev, "D0I3C updated, register = 0x%x\n",
+ snd_hdac_chip_readb(bus, VS_D0I3C));
+
+- return 0;
++ if (d0_substate == SOF_DSP_D0I0)
++ flags = HDA_PM_PPG;/* prevent power gating in D0 */
++ else
++ flags = HDA_PM_NO_DMA_TRACE;/* disable DMA trace in D0I3*/
++
++ /* sending pm_gate IPC */
++ ret = hda_dsp_send_pm_gate_ipc(sdev, flags);
++ if (ret < 0)
++ dev_err(sdev->dev,
++ "error: PM_GATE ipc error %d\n", ret);
++
++ return ret;
+ }
+
+ static int hda_suspend(struct snd_sof_dev *sdev, bool runtime_suspend)
+--
+2.20.1
+
+
+From 9ade30b8b3cf0e8d73a89b9ded857c50aeb91a37 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:13 -0500
+Subject: [PATCH 087/130] ASoC: SOF: PM: add helpers for setting D0 substate
+ for ADSP
+
+Add snd_sof_set_d0_substate() helper for setting ADSP to a specific D0
+substate, it will call into the platform specific implementation, and
+update the d0_substate at success.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-18-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 601252869f50af6f5ab377e7f4846d7b09cc66c0)
+Bugzilla: 1772498
+---
+ sound/soc/sof/pm.c | 17 +++++++++++++++++
+ sound/soc/sof/sof-priv.h | 2 ++
+ 2 files changed, 19 insertions(+)
+
+diff --git a/sound/soc/sof/pm.c b/sound/soc/sof/pm.c
+index ac900fb3379e..584241e9734a 100644
+--- a/sound/soc/sof/pm.c
++++ b/sound/soc/sof/pm.c
+@@ -411,6 +411,23 @@ int snd_sof_runtime_resume(struct device *dev)
+ }
+ EXPORT_SYMBOL(snd_sof_runtime_resume);
+
++int snd_sof_set_d0_substate(struct snd_sof_dev *sdev,
++ enum sof_d0_substate d0_substate)
++{
++ int ret;
++
++ /* do platform specific set_state */
++ ret = snd_sof_dsp_set_power_state(sdev, d0_substate);
++ if (ret < 0)
++ return ret;
++
++ /* update dsp D0 sub-state */
++ sdev->d0_substate = d0_substate;
++
++ return 0;
++}
++EXPORT_SYMBOL(snd_sof_set_d0_substate);
++
+ int snd_sof_resume(struct device *dev)
+ {
+ return sof_resume(dev, false);
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 7a21a45d3635..2231c673c678 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -485,6 +485,8 @@ int snd_sof_runtime_resume(struct device *dev);
+ int snd_sof_runtime_idle(struct device *dev);
+ int snd_sof_resume(struct device *dev);
+ int snd_sof_suspend(struct device *dev);
++int snd_sof_set_d0_substate(struct snd_sof_dev *sdev,
++ enum sof_d0_substate d0_substate);
+
+ void snd_sof_new_platform_drv(struct snd_sof_dev *sdev);
+
+--
+2.20.1
+
+
+From cd303b2a36cdc4dd2228147f9a9518da71d88215 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:14 -0500
+Subject: [PATCH 088/130] ASoC: SOF: Intel: CNL: add support for sending
+ compact IPC
+
+For compact IPCs, we will send the IPC header/command via the HIPCIDR
+register and the first 32bit payload via the HIPCIDD register, no
+mailbox will be used.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-19-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 0267de58acfe5059ace739741f1533dd605ed22f)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/cnl.c | 42 ++++++++++++++++++++++++++++++++++-----
+ sound/soc/sof/intel/hda.h | 1 +
+ 2 files changed, 38 insertions(+), 5 deletions(-)
+
+diff --git a/sound/soc/sof/intel/cnl.c b/sound/soc/sof/intel/cnl.c
+index 982b81a0b13a..0e1e265f3f3b 100644
+--- a/sound/soc/sof/intel/cnl.c
++++ b/sound/soc/sof/intel/cnl.c
+@@ -17,6 +17,7 @@
+
+ #include "../ops.h"
+ #include "hda.h"
++#include "hda-ipc.h"
+
+ static const struct snd_sof_debugfs_map cnl_dsp_debugfs[] = {
+ {"hda", HDA_DSP_HDA_BAR, 0, 0x4000, SOF_DEBUGFS_ACCESS_ALWAYS},
+@@ -150,14 +151,45 @@ static void cnl_ipc_dsp_done(struct snd_sof_dev *sdev)
+ CNL_DSP_REG_HIPCCTL_DONE);
+ }
+
++static bool cnl_compact_ipc_compress(struct snd_sof_ipc_msg *msg,
++ u32 *dr, u32 *dd)
++{
++ struct sof_ipc_pm_gate *pm_gate;
++
++ if (msg->header == (SOF_IPC_GLB_PM_MSG | SOF_IPC_PM_GATE)) {
++ pm_gate = msg->msg_data;
++
++ /* send the compact message via the primary register */
++ *dr = HDA_IPC_MSG_COMPACT | HDA_IPC_PM_GATE;
++
++ /* send payload via the extended data register */
++ *dd = pm_gate->flags;
++
++ return true;
++ }
++
++ return false;
++}
++
+ static int cnl_ipc_send_msg(struct snd_sof_dev *sdev,
+ struct snd_sof_ipc_msg *msg)
+ {
+- /* send the message */
+- sof_mailbox_write(sdev, sdev->host_box.offset, msg->msg_data,
+- msg->msg_size);
+- snd_sof_dsp_write(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDR,
+- CNL_DSP_REG_HIPCIDR_BUSY);
++ u32 dr = 0;
++ u32 dd = 0;
++
++ if (cnl_compact_ipc_compress(msg, &dr, &dd)) {
++ /* send the message via IPC registers */
++ snd_sof_dsp_write(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDD,
++ dd);
++ snd_sof_dsp_write(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDR,
++ CNL_DSP_REG_HIPCIDR_BUSY | dr);
++ } else {
++ /* send the message via mailbox */
++ sof_mailbox_write(sdev, sdev->host_box.offset, msg->msg_data,
++ msg->msg_size);
++ snd_sof_dsp_write(sdev, HDA_DSP_BAR, CNL_DSP_REG_HIPCIDR,
++ CNL_DSP_REG_HIPCIDR_BUSY);
++ }
+
+ return 0;
+ }
+diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
+index 5a089efc0e4c..5ad73a34b09c 100644
+--- a/sound/soc/sof/intel/hda.h
++++ b/sound/soc/sof/intel/hda.h
+@@ -312,6 +312,7 @@
+ #define CNL_DSP_REG_HIPCTDD (CNL_DSP_IPC_BASE + 0x08)
+ #define CNL_DSP_REG_HIPCIDR (CNL_DSP_IPC_BASE + 0x10)
+ #define CNL_DSP_REG_HIPCIDA (CNL_DSP_IPC_BASE + 0x14)
++#define CNL_DSP_REG_HIPCIDD (CNL_DSP_IPC_BASE + 0x18)
+ #define CNL_DSP_REG_HIPCCTL (CNL_DSP_IPC_BASE + 0x28)
+
+ /* HIPCI */
+--
+2.20.1
+
+
+From 8bb4306ead5641b1f9e7d97d0db0d5705b193e79 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:15 -0500
+Subject: [PATCH 089/130] ASoC: SOF: add a flag to indicate the system suspend
+ target
+
+Add flag 's0_suspend' to indicate if the system is entering S0ix or
+not.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-20-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 7367d3096b1443e55a2c730d1966f423b15d5cad)
+Bugzilla: 1772498
+---
+ sound/soc/sof/sof-priv.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 2231c673c678..e715673f20e5 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -398,6 +398,8 @@ struct snd_sof_dev {
+
+ /* power states related */
+ enum sof_d0_substate d0_substate;
++ /* flag to track if the intended power target of suspend is S0ix */
++ bool s0_suspend;
+
+ /* DSP firmware boot */
+ wait_queue_head_t boot_wait;
+--
+2.20.1
+
+
+From 8d8d925e7051604e82ef12a2dbddf5d77e02e40d Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:16 -0500
+Subject: [PATCH 090/130] ASoC: SOF: add a flag suspend_ignored for sof stream
+
+Add a suspend_ignored flag to snd_sof_pcm_stream that will be used to
+decide if the corresponding FW pipeline should be kept active to perform
+always on tasks when the system is entering the S0ix state.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-21-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 4cd933abd4820da7eefe672ff439b32d199a07be)
+Bugzilla: 1772498
+---
+ sound/soc/sof/sof-priv.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index e715673f20e5..c2541d020bde 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -311,6 +311,11 @@ struct snd_sof_pcm_stream {
+ struct snd_pcm_substream *substream;
+ struct work_struct period_elapsed_work;
+ bool d0i3_compatible; /* DSP can be in D0I3 when this pcm is opened */
++ /*
++ * flag to indicate that the DSP pipelines should be kept
++ * active or not while suspending the stream
++ */
++ bool suspend_ignored;
+ };
+
+ /* ALSA SOF PCM device */
+--
+2.20.1
+
+
+From 3b92b523982d92ab8944be6c739da55889e44878 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:17 -0500
+Subject: [PATCH 091/130] ASoC: SOF: PM: implement prepare/complete callbacks
+
+Implement the prepare() and complete() callbacks for power management,
+initialize s0_suspend flag at prepare(), and reset it at complete().
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-22-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 0b50b3b1c3bc2a2c9eeab418b3de3e60e0530cf4)
+Bugzilla: 1772498
+---
+ sound/soc/sof/pm.c | 23 +++++++++++++++++++++++
+ sound/soc/sof/sof-priv.h | 2 ++
+ 2 files changed, 25 insertions(+)
+
+diff --git a/sound/soc/sof/pm.c b/sound/soc/sof/pm.c
+index 584241e9734a..99e4e6ffff74 100644
+--- a/sound/soc/sof/pm.c
++++ b/sound/soc/sof/pm.c
+@@ -439,3 +439,26 @@ int snd_sof_suspend(struct device *dev)
+ return sof_suspend(dev, false);
+ }
+ EXPORT_SYMBOL(snd_sof_suspend);
++
++int snd_sof_prepare(struct device *dev)
++{
++ struct snd_sof_dev *sdev = dev_get_drvdata(dev);
++
++#if defined(CONFIG_ACPI)
++ sdev->s0_suspend = acpi_target_system_state() == ACPI_STATE_S0;
++#else
++ /* will suspend to S3 by default */
++ sdev->s0_suspend = false;
++#endif
++
++ return 0;
++}
++EXPORT_SYMBOL(snd_sof_prepare);
++
++void snd_sof_complete(struct device *dev)
++{
++ struct snd_sof_dev *sdev = dev_get_drvdata(dev);
++
++ sdev->s0_suspend = false;
++}
++EXPORT_SYMBOL(snd_sof_complete);
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index c2541d020bde..6408ac88a3e5 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -492,6 +492,8 @@ int snd_sof_runtime_resume(struct device *dev);
+ int snd_sof_runtime_idle(struct device *dev);
+ int snd_sof_resume(struct device *dev);
+ int snd_sof_suspend(struct device *dev);
++int snd_sof_prepare(struct device *dev);
++void snd_sof_complete(struct device *dev);
+ int snd_sof_set_d0_substate(struct snd_sof_dev *sdev,
+ enum sof_d0_substate d0_substate);
+
+--
+2.20.1
+
+
+From a8161368f38eb802d5bfc2601420a94076b3527f Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:18 -0500
+Subject: [PATCH 092/130] ASoC: SOF: ignore suspend/resume for D0ix compatible
+ streams
+
+During system suspend, the PM framework will freeze all applications and
+the ALSA/ASoC core will suspend all RUNNING PCM streams.
+
+However, D0ix-compatible PCM streams should keep the related pipelines
+active in the DSP when the system is entering S0ix. The TRIGGER_SUSPEND
+event is trapped in such cases to prevent the pipelines from being
+stopped. Likewise, the TRIGGER_RESUME/START events should not affect the
+pipeline state.
+
+The SOF driver also triggers some DSP Firmware pipelines based on the
+DAPM widgets power events. In such cases, we also ignore PRE_PMU and
+POST_PMD events to keep the pipelines active.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-23-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit ac8c046f19f94ec419c60d7a073af75a71386e97)
+Bugzilla: 1772498
+---
+ sound/soc/sof/pcm.c | 31 +++++++++++++++++++++++++++++++
+ sound/soc/sof/topology.c | 17 ++++++++++++++++-
+ 2 files changed, 47 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/sof/pcm.c b/sound/soc/sof/pcm.c
+index b33928e1385b..927b197c2c8d 100644
+--- a/sound/soc/sof/pcm.c
++++ b/sound/soc/sof/pcm.c
+@@ -350,6 +350,16 @@ static int sof_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
+ stream.hdr.cmd |= SOF_IPC_STREAM_TRIG_RELEASE;
+ break;
+ case SNDRV_PCM_TRIGGER_RESUME:
++ if (spcm->stream[substream->stream].suspend_ignored) {
++ /*
++ * this case will be triggered when INFO_RESUME is
++ * supported, no need to resume streams that remained
++ * enabled in D0ix.
++ */
++ spcm->stream[substream->stream].suspend_ignored = false;
++ return 0;
++ }
++
+ /* set up hw_params */
+ ret = sof_pcm_prepare(substream);
+ if (ret < 0) {
+@@ -360,9 +370,30 @@ static int sof_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
+
+ /* fallthrough */
+ case SNDRV_PCM_TRIGGER_START:
++ if (spcm->stream[substream->stream].suspend_ignored) {
++ /*
++ * This case will be triggered when INFO_RESUME is
++ * not supported, no need to re-start streams that
++ * remained enabled in D0ix.
++ */
++ spcm->stream[substream->stream].suspend_ignored = false;
++ return 0;
++ }
+ stream.hdr.cmd |= SOF_IPC_STREAM_TRIG_START;
+ break;
+ case SNDRV_PCM_TRIGGER_SUSPEND:
++ if (sdev->s0_suspend &&
++ spcm->stream[substream->stream].d0i3_compatible) {
++ /*
++ * trap the event, not sending trigger stop to
++ * prevent the FW pipelines from being stopped,
++ * and mark the flag to ignore the upcoming DAPM
++ * PM events.
++ */
++ spcm->stream[substream->stream].suspend_ignored = true;
++ return 0;
++ }
++ /* fallthrough */
+ case SNDRV_PCM_TRIGGER_STOP:
+ stream.hdr.cmd |= SOF_IPC_STREAM_TRIG_STOP;
+ ipc_first = true;
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index 9e3996125d03..ad798fb3bb32 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -135,7 +135,9 @@ static int sof_keyword_dapm_event(struct snd_soc_dapm_widget *w,
+ struct snd_kcontrol *k, int event)
+ {
+ struct snd_sof_widget *swidget = w->dobj.private;
++ int stream = SNDRV_PCM_STREAM_CAPTURE;
+ struct snd_sof_dev *sdev;
++ struct snd_sof_pcm *spcm;
+ int ret = 0;
+
+ if (!swidget)
+@@ -146,11 +148,19 @@ static int sof_keyword_dapm_event(struct snd_soc_dapm_widget *w,
+ dev_dbg(sdev->dev, "received event %d for widget %s\n",
+ event, w->name);
+
++ /* get runtime PCM params using widget's stream name */
++ spcm = snd_sof_find_spcm_name(sdev, swidget->widget->sname);
++
+ /* process events */
+ switch (event) {
+ case SND_SOC_DAPM_PRE_PMU:
++ if (spcm->stream[stream].suspend_ignored) {
++ dev_dbg(sdev->dev, "PRE_PMU event ignored, KWD pipeline is already RUNNING\n");
++ return 0;
++ }
++
+ /* set pcm params */
+- ret = ipc_pcm_params(swidget, SOF_IPC_STREAM_CAPTURE);
++ ret = ipc_pcm_params(swidget, stream);
+ if (ret < 0) {
+ dev_err(sdev->dev,
+ "error: failed to set pcm params for widget %s\n",
+@@ -166,6 +176,11 @@ static int sof_keyword_dapm_event(struct snd_soc_dapm_widget *w,
+ swidget->widget->name);
+ break;
+ case SND_SOC_DAPM_POST_PMD:
++ if (spcm->stream[stream].suspend_ignored) {
++ dev_dbg(sdev->dev, "POST_PMD even ignored, KWD pipeline will remain RUNNING\n");
++ return 0;
++ }
++
+ /* stop trigger */
+ ret = ipc_trigger(swidget, SOF_IPC_STREAM_TRIG_STOP);
+ if (ret < 0)
+--
+2.20.1
+
+
+From 95a260712df9014813aaeb2e8bf3149bcf82572c Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:19 -0500
+Subject: [PATCH 093/130] ASoC: SOF: Intel: hda-dsp: implement suspend/resume
+ for S0ix<->S0 transition
+
+Enable system wake up via IPC interrupt from DSP when the system is
+suspending to the S0ix state, and disable it in the corresponding
+resuming.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-24-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 66e40876ddc325d892c493a6d83574bbba5770ce)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-dsp.c | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/sound/soc/sof/intel/hda-dsp.c b/sound/soc/sof/intel/hda-dsp.c
+index b5070409a5e3..d23573d9e9c4 100644
+--- a/sound/soc/sof/intel/hda-dsp.c
++++ b/sound/soc/sof/intel/hda-dsp.c
+@@ -477,6 +477,15 @@ static int hda_resume(struct snd_sof_dev *sdev, bool runtime_resume)
+
+ int hda_dsp_resume(struct snd_sof_dev *sdev)
+ {
++ struct pci_dev *pci = to_pci_dev(sdev->dev);
++
++ if (sdev->s0_suspend) {
++ /* restore and disable the system wakeup */
++ pci_restore_state(pci);
++ disable_irq_wake(pci->irq);
++ return 0;
++ }
++
+ /* init hda controller. DSP cores will be powered up during fw boot */
+ return hda_resume(sdev, false);
+ }
+@@ -509,8 +518,16 @@ int hda_dsp_runtime_suspend(struct snd_sof_dev *sdev)
+ int hda_dsp_suspend(struct snd_sof_dev *sdev)
+ {
+ struct hdac_bus *bus = sof_to_bus(sdev);
++ struct pci_dev *pci = to_pci_dev(sdev->dev);
+ int ret;
+
++ if (sdev->s0_suspend) {
++ /* enable the system waking up via IPC IRQ */
++ enable_irq_wake(pci->irq);
++ pci_save_state(pci);
++ return 0;
++ }
++
+ /* stop hda controller and power dsp off */
+ ret = hda_suspend(sdev, false);
+ if (ret < 0) {
+--
+2.20.1
+
+
+From fb1833ed7540f40d3c82371bea470e2802fee2a6 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:20 -0500
+Subject: [PATCH 094/130] ASoC: SOF: return -ENOTSUPP if D0I3 is not supported
+
+No set_power_state ops means that the platform doesn't support D0i3,
+return -ENOTSUPP for the case.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-25-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 5655ce660a6d3eec4a3ad37feb99fb228540d1a9)
+Bugzilla: 1772498
+---
+ sound/soc/sof/ops.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/sof/ops.h b/sound/soc/sof/ops.h
+index d7c8fc06f961..93512dcbaacd 100644
+--- a/sound/soc/sof/ops.h
++++ b/sound/soc/sof/ops.h
+@@ -199,7 +199,8 @@ static inline int snd_sof_dsp_set_power_state(struct snd_sof_dev *sdev,
+ if (sof_ops(sdev)->set_power_state)
+ return sof_ops(sdev)->set_power_state(sdev, substate);
+
+- return 0;
++ /* D0 substate is not supported */
++ return -ENOTSUPP;
+ }
+
+ /* debug */
+--
+2.20.1
+
+
+From a9ff8edc56014d193031b94c32da8d1ca4cd9181 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:21 -0500
+Subject: [PATCH 095/130] ASoC: SOF: PM: Add support for DSP D0i3 state when
+ entering S0ix
+
+When system is entering into S0ix, the PCI device may transition to the
+D0i3 substate instead of D3. In D0i3, some always-on functionality can
+be enabled, such as acoustic event detection, voice activity detection
+or hotwording. When an event is detected, the DSP firmware can wake-up
+the device for a transition to D0 with an interrupt.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-26-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit c470fc3f61b25e955f8ba90fc9dc554881e4e72c)
+Bugzilla: 1772498
+---
+ sound/soc/sof/pm.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 46 insertions(+)
+
+diff --git a/sound/soc/sof/pm.c b/sound/soc/sof/pm.c
+index 99e4e6ffff74..560a937e0484 100644
+--- a/sound/soc/sof/pm.c
++++ b/sound/soc/sof/pm.c
+@@ -430,12 +430,58 @@ EXPORT_SYMBOL(snd_sof_set_d0_substate);
+
+ int snd_sof_resume(struct device *dev)
+ {
++ struct snd_sof_dev *sdev = dev_get_drvdata(dev);
++ int ret;
++
++ if (sdev->s0_suspend) {
++ /* resume from D0I3 */
++ dev_dbg(sdev->dev, "DSP will exit from D0i3...\n");
++ ret = snd_sof_set_d0_substate(sdev, SOF_DSP_D0I0);
++ if (ret == -ENOTSUPP) {
++ /* fallback to resume from D3 */
++ dev_dbg(sdev->dev, "D0i3 not supported, fall back to resume from D3...\n");
++ goto d3_resume;
++ } else if (ret < 0) {
++ dev_err(sdev->dev, "error: failed to exit from D0I3 %d\n",
++ ret);
++ return ret;
++ }
++
++ /* platform-specific resume from D0i3 */
++ return snd_sof_dsp_resume(sdev);
++ }
++
++d3_resume:
++ /* resume from D3 */
+ return sof_resume(dev, false);
+ }
+ EXPORT_SYMBOL(snd_sof_resume);
+
+ int snd_sof_suspend(struct device *dev)
+ {
++ struct snd_sof_dev *sdev = dev_get_drvdata(dev);
++ int ret;
++
++ if (sdev->s0_suspend) {
++ /* suspend to D0i3 */
++ dev_dbg(sdev->dev, "DSP is trying to enter D0i3...\n");
++ ret = snd_sof_set_d0_substate(sdev, SOF_DSP_D0I3);
++ if (ret == -ENOTSUPP) {
++ /* fallback to D3 suspend */
++ dev_dbg(sdev->dev, "D0i3 not supported, fall back to D3...\n");
++ goto d3_suspend;
++ } else if (ret < 0) {
++ dev_err(sdev->dev, "error: failed to enter D0I3, %d\n",
++ ret);
++ return ret;
++ }
++
++ /* platform-specific suspend to D0i3 */
++ return snd_sof_dsp_suspend(sdev);
++ }
++
++d3_suspend:
++ /* suspend to D3 */
+ return sof_suspend(dev, false);
+ }
+ EXPORT_SYMBOL(snd_sof_suspend);
+--
+2.20.1
+
+
+From 57fa7b6018c8497dbc676a7ed19580ce413c1f93 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 25 Oct 2019 17:41:22 -0500
+Subject: [PATCH 096/130] ASoC: SOF: pci: Add prepare/complete PM callbacks
+
+Use the new implemented snd_sof_prepare() and snd_sof_complete() as the
+power management callbacks for pci probing platforms.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191025224122.7718-27-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 6d407a39cc9619d0088b44333c6526924be00f8d)
+Bugzilla: 1772498
+---
+ sound/soc/sof/sof-pci-dev.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/sound/soc/sof/sof-pci-dev.c b/sound/soc/sof/sof-pci-dev.c
+index 067acf389af7..3b58b91e7b9e 100644
+--- a/sound/soc/sof/sof-pci-dev.c
++++ b/sound/soc/sof/sof-pci-dev.c
+@@ -229,6 +229,8 @@ static const struct sof_dev_desc jsl_desc = {
+ #endif
+
+ static const struct dev_pm_ops sof_pci_pm = {
++ .prepare = snd_sof_prepare,
++ .complete = snd_sof_complete,
+ SET_SYSTEM_SLEEP_PM_OPS(snd_sof_suspend, snd_sof_resume)
+ SET_RUNTIME_PM_OPS(snd_sof_runtime_suspend, snd_sof_runtime_resume,
+ snd_sof_runtime_idle)
+--
+2.20.1
+
+
+From 275c9af318fdb56701f9c336ecfdcaf8d05e7b03 Mon Sep 17 00:00:00 2001
+From: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:09:16 -0500
+Subject: [PATCH 097/130] ASoC: SOF: Intel: hda: Simplify the
+ hda_dsp_wait_d0i3c_done() function
+
+Remove the retry argument for the hda_dsp_wait_d0i3c_done()
+function and use the HDA_DSP_REG_POLL_RETRY_COUNT macro
+directly.
+
+Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101170916.26517-4-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 65c56f5dccc87ca2993a50672e144c7378189f2c)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-dsp.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda-dsp.c b/sound/soc/sof/intel/hda-dsp.c
+index d23573d9e9c4..8cd5ecc01b62 100644
+--- a/sound/soc/sof/intel/hda-dsp.c
++++ b/sound/soc/sof/intel/hda-dsp.c
+@@ -307,9 +307,10 @@ void hda_dsp_ipc_int_disable(struct snd_sof_dev *sdev)
+ HDA_DSP_REG_HIPCCTL_BUSY | HDA_DSP_REG_HIPCCTL_DONE, 0);
+ }
+
+-static int hda_dsp_wait_d0i3c_done(struct snd_sof_dev *sdev, int retry)
++static int hda_dsp_wait_d0i3c_done(struct snd_sof_dev *sdev)
+ {
+ struct hdac_bus *bus = sof_to_bus(sdev);
++ int retry = HDA_DSP_REG_POLL_RETRY_COUNT;
+
+ while (snd_hdac_chip_readb(bus, VS_D0I3C) & SOF_HDA_VS_D0I3C_CIP) {
+ if (!retry--)
+@@ -346,7 +347,7 @@ int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
+ u8 value;
+
+ /* Write to D0I3C after Command-In-Progress bit is cleared */
+- ret = hda_dsp_wait_d0i3c_done(sdev, HDA_DSP_REG_POLL_RETRY_COUNT);
++ ret = hda_dsp_wait_d0i3c_done(sdev);
+ if (ret < 0) {
+ dev_err(bus->dev, "CIP timeout before D0I3C update!\n");
+ return ret;
+@@ -357,7 +358,7 @@ int hda_dsp_set_power_state(struct snd_sof_dev *sdev,
+ snd_hdac_chip_updateb(bus, VS_D0I3C, SOF_HDA_VS_D0I3C_I3, value);
+
+ /* Wait for cmd in progress to be cleared before exiting the function */
+- ret = hda_dsp_wait_d0i3c_done(sdev, HDA_DSP_REG_POLL_RETRY_COUNT);
++ ret = hda_dsp_wait_d0i3c_done(sdev);
+ if (ret < 0) {
+ dev_err(bus->dev, "CIP timeout after D0I3C update!\n");
+ return ret;
+--
+2.20.1
+
+
+From a547d2de50bd9993d6b1723ece45ad954c042bb5 Mon Sep 17 00:00:00 2001
+From: Jaska Uimonen <jaska.uimonen@linux.intel.com>
+Date: Tue, 8 Oct 2019 11:44:42 -0500
+Subject: [PATCH 098/130] AsoC: SOF: refactor control load code
+
+Move code around to enable token parsing in control load.
+
+Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191008164443.1358-9-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit acf1b71cb693263c7c9373296e872a8fa61a5cf3)
+Bugzilla: 1772498
+---
+ sound/soc/sof/topology.c | 336 +++++++++++++++++++--------------------
+ 1 file changed, 168 insertions(+), 168 deletions(-)
+
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index ad798fb3bb32..d4aea5422ea8 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -447,174 +447,6 @@ static enum sof_comp_type find_process_comp_type(enum sof_ipc_process_type type)
+ return SOF_COMP_NONE;
+ }
+
+-/*
+- * Standard Kcontrols.
+- */
+-
+-static int sof_control_load_volume(struct snd_soc_component *scomp,
+- struct snd_sof_control *scontrol,
+- struct snd_kcontrol_new *kc,
+- struct snd_soc_tplg_ctl_hdr *hdr)
+-{
+- struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
+- struct snd_soc_tplg_mixer_control *mc =
+- container_of(hdr, struct snd_soc_tplg_mixer_control, hdr);
+- struct sof_ipc_ctrl_data *cdata;
+- int tlv[TLV_ITEMS];
+- unsigned int i;
+- int ret;
+-
+- /* validate topology data */
+- if (le32_to_cpu(mc->num_channels) > SND_SOC_TPLG_MAX_CHAN)
+- return -EINVAL;
+-
+- /* init the volume get/put data */
+- scontrol->size = struct_size(scontrol->control_data, chanv,
+- le32_to_cpu(mc->num_channels));
+- scontrol->control_data = kzalloc(scontrol->size, GFP_KERNEL);
+- if (!scontrol->control_data)
+- return -ENOMEM;
+-
+- scontrol->comp_id = sdev->next_comp_id;
+- scontrol->min_volume_step = le32_to_cpu(mc->min);
+- scontrol->max_volume_step = le32_to_cpu(mc->max);
+- scontrol->num_channels = le32_to_cpu(mc->num_channels);
+-
+- /* set cmd for mixer control */
+- if (le32_to_cpu(mc->max) == 1) {
+- scontrol->cmd = SOF_CTRL_CMD_SWITCH;
+- goto out;
+- }
+-
+- scontrol->cmd = SOF_CTRL_CMD_VOLUME;
+-
+- /* extract tlv data */
+- if (get_tlv_data(kc->tlv.p, tlv) < 0) {
+- dev_err(sdev->dev, "error: invalid TLV data\n");
+- return -EINVAL;
+- }
+-
+- /* set up volume table */
+- ret = set_up_volume_table(scontrol, tlv, le32_to_cpu(mc->max) + 1);
+- if (ret < 0) {
+- dev_err(sdev->dev, "error: setting up volume table\n");
+- return ret;
+- }
+-
+- /* set default volume values to 0dB in control */
+- cdata = scontrol->control_data;
+- for (i = 0; i < scontrol->num_channels; i++) {
+- cdata->chanv[i].channel = i;
+- cdata->chanv[i].value = VOL_ZERO_DB;
+- }
+-
+-out:
+- /* set up possible led control from mixer private data */
+- ret = sof_parse_tokens(scomp, &scontrol->led_ctl, led_tokens,
+- ARRAY_SIZE(led_tokens), mc->priv.array,
+- le32_to_cpu(mc->priv.size));
+- if (ret != 0) {
+- dev_err(sdev->dev, "error: parse led tokens failed %d\n",
+- le32_to_cpu(mc->priv.size));
+- return ret;
+- }
+-
+- dev_dbg(sdev->dev, "tplg: load kcontrol index %d chans %d\n",
+- scontrol->comp_id, scontrol->num_channels);
+-
+- return 0;
+-}
+-
+-static int sof_control_load_enum(struct snd_soc_component *scomp,
+- struct snd_sof_control *scontrol,
+- struct snd_kcontrol_new *kc,
+- struct snd_soc_tplg_ctl_hdr *hdr)
+-{
+- struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
+- struct snd_soc_tplg_enum_control *ec =
+- container_of(hdr, struct snd_soc_tplg_enum_control, hdr);
+-
+- /* validate topology data */
+- if (le32_to_cpu(ec->num_channels) > SND_SOC_TPLG_MAX_CHAN)
+- return -EINVAL;
+-
+- /* init the enum get/put data */
+- scontrol->size = struct_size(scontrol->control_data, chanv,
+- le32_to_cpu(ec->num_channels));
+- scontrol->control_data = kzalloc(scontrol->size, GFP_KERNEL);
+- if (!scontrol->control_data)
+- return -ENOMEM;
+-
+- scontrol->comp_id = sdev->next_comp_id;
+- scontrol->num_channels = le32_to_cpu(ec->num_channels);
+-
+- scontrol->cmd = SOF_CTRL_CMD_ENUM;
+-
+- dev_dbg(sdev->dev, "tplg: load kcontrol index %d chans %d comp_id %d\n",
+- scontrol->comp_id, scontrol->num_channels, scontrol->comp_id);
+-
+- return 0;
+-}
+-
+-static int sof_control_load_bytes(struct snd_soc_component *scomp,
+- struct snd_sof_control *scontrol,
+- struct snd_kcontrol_new *kc,
+- struct snd_soc_tplg_ctl_hdr *hdr)
+-{
+- struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
+- struct sof_ipc_ctrl_data *cdata;
+- struct snd_soc_tplg_bytes_control *control =
+- container_of(hdr, struct snd_soc_tplg_bytes_control, hdr);
+- struct soc_bytes_ext *sbe = (struct soc_bytes_ext *)kc->private_value;
+- int max_size = sbe->max;
+-
+- /* init the get/put bytes data */
+- scontrol->size = sizeof(struct sof_ipc_ctrl_data) +
+- le32_to_cpu(control->priv.size);
+-
+- if (scontrol->size > max_size) {
+- dev_err(sdev->dev, "err: bytes data size %d exceeds max %d.\n",
+- scontrol->size, max_size);
+- return -EINVAL;
+- }
+-
+- scontrol->control_data = kzalloc(max_size, GFP_KERNEL);
+- cdata = scontrol->control_data;
+- if (!scontrol->control_data)
+- return -ENOMEM;
+-
+- scontrol->comp_id = sdev->next_comp_id;
+- scontrol->cmd = SOF_CTRL_CMD_BINARY;
+-
+- dev_dbg(sdev->dev, "tplg: load kcontrol index %d chans %d\n",
+- scontrol->comp_id, scontrol->num_channels);
+-
+- if (le32_to_cpu(control->priv.size) > 0) {
+- memcpy(cdata->data, control->priv.data,
+- le32_to_cpu(control->priv.size));
+-
+- if (cdata->data->magic != SOF_ABI_MAGIC) {
+- dev_err(sdev->dev, "error: Wrong ABI magic 0x%08x.\n",
+- cdata->data->magic);
+- return -EINVAL;
+- }
+- if (SOF_ABI_VERSION_INCOMPATIBLE(SOF_ABI_VERSION,
+- cdata->data->abi)) {
+- dev_err(sdev->dev,
+- "error: Incompatible ABI version 0x%08x.\n",
+- cdata->data->abi);
+- return -EINVAL;
+- }
+- if (cdata->data->size + sizeof(const struct sof_abi_hdr) !=
+- le32_to_cpu(control->priv.size)) {
+- dev_err(sdev->dev,
+- "error: Conflict in bytes vs. priv size.\n");
+- return -EINVAL;
+- }
+- }
+- return 0;
+-}
+-
+ /*
+ * Topology Token Parsing.
+ * New tokens should be added to headers and parsing tables below.
+@@ -1090,6 +922,174 @@ static void sof_dbg_comp_config(struct snd_soc_component *scomp,
+ config->frame_fmt);
+ }
+
++/*
++ * Standard Kcontrols.
++ */
++
++static int sof_control_load_volume(struct snd_soc_component *scomp,
++ struct snd_sof_control *scontrol,
++ struct snd_kcontrol_new *kc,
++ struct snd_soc_tplg_ctl_hdr *hdr)
++{
++ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
++ struct snd_soc_tplg_mixer_control *mc =
++ container_of(hdr, struct snd_soc_tplg_mixer_control, hdr);
++ struct sof_ipc_ctrl_data *cdata;
++ int tlv[TLV_ITEMS];
++ unsigned int i;
++ int ret;
++
++ /* validate topology data */
++ if (le32_to_cpu(mc->num_channels) > SND_SOC_TPLG_MAX_CHAN)
++ return -EINVAL;
++
++ /* init the volume get/put data */
++ scontrol->size = struct_size(scontrol->control_data, chanv,
++ le32_to_cpu(mc->num_channels));
++ scontrol->control_data = kzalloc(scontrol->size, GFP_KERNEL);
++ if (!scontrol->control_data)
++ return -ENOMEM;
++
++ scontrol->comp_id = sdev->next_comp_id;
++ scontrol->min_volume_step = le32_to_cpu(mc->min);
++ scontrol->max_volume_step = le32_to_cpu(mc->max);
++ scontrol->num_channels = le32_to_cpu(mc->num_channels);
++
++ /* set cmd for mixer control */
++ if (le32_to_cpu(mc->max) == 1) {
++ scontrol->cmd = SOF_CTRL_CMD_SWITCH;
++ goto out;
++ }
++
++ scontrol->cmd = SOF_CTRL_CMD_VOLUME;
++
++ /* extract tlv data */
++ if (get_tlv_data(kc->tlv.p, tlv) < 0) {
++ dev_err(sdev->dev, "error: invalid TLV data\n");
++ return -EINVAL;
++ }
++
++ /* set up volume table */
++ ret = set_up_volume_table(scontrol, tlv, le32_to_cpu(mc->max) + 1);
++ if (ret < 0) {
++ dev_err(sdev->dev, "error: setting up volume table\n");
++ return ret;
++ }
++
++ /* set default volume values to 0dB in control */
++ cdata = scontrol->control_data;
++ for (i = 0; i < scontrol->num_channels; i++) {
++ cdata->chanv[i].channel = i;
++ cdata->chanv[i].value = VOL_ZERO_DB;
++ }
++
++out:
++ /* set up possible led control from mixer private data */
++ ret = sof_parse_tokens(scomp, &scontrol->led_ctl, led_tokens,
++ ARRAY_SIZE(led_tokens), mc->priv.array,
++ le32_to_cpu(mc->priv.size));
++ if (ret != 0) {
++ dev_err(sdev->dev, "error: parse led tokens failed %d\n",
++ le32_to_cpu(mc->priv.size));
++ return ret;
++ }
++
++ dev_dbg(sdev->dev, "tplg: load kcontrol index %d chans %d\n",
++ scontrol->comp_id, scontrol->num_channels);
++
++ return 0;
++}
++
++static int sof_control_load_enum(struct snd_soc_component *scomp,
++ struct snd_sof_control *scontrol,
++ struct snd_kcontrol_new *kc,
++ struct snd_soc_tplg_ctl_hdr *hdr)
++{
++ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
++ struct snd_soc_tplg_enum_control *ec =
++ container_of(hdr, struct snd_soc_tplg_enum_control, hdr);
++
++ /* validate topology data */
++ if (le32_to_cpu(ec->num_channels) > SND_SOC_TPLG_MAX_CHAN)
++ return -EINVAL;
++
++ /* init the enum get/put data */
++ scontrol->size = struct_size(scontrol->control_data, chanv,
++ le32_to_cpu(ec->num_channels));
++ scontrol->control_data = kzalloc(scontrol->size, GFP_KERNEL);
++ if (!scontrol->control_data)
++ return -ENOMEM;
++
++ scontrol->comp_id = sdev->next_comp_id;
++ scontrol->num_channels = le32_to_cpu(ec->num_channels);
++
++ scontrol->cmd = SOF_CTRL_CMD_ENUM;
++
++ dev_dbg(sdev->dev, "tplg: load kcontrol index %d chans %d comp_id %d\n",
++ scontrol->comp_id, scontrol->num_channels, scontrol->comp_id);
++
++ return 0;
++}
++
++static int sof_control_load_bytes(struct snd_soc_component *scomp,
++ struct snd_sof_control *scontrol,
++ struct snd_kcontrol_new *kc,
++ struct snd_soc_tplg_ctl_hdr *hdr)
++{
++ struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp);
++ struct sof_ipc_ctrl_data *cdata;
++ struct snd_soc_tplg_bytes_control *control =
++ container_of(hdr, struct snd_soc_tplg_bytes_control, hdr);
++ struct soc_bytes_ext *sbe = (struct soc_bytes_ext *)kc->private_value;
++ int max_size = sbe->max;
++
++ /* init the get/put bytes data */
++ scontrol->size = sizeof(struct sof_ipc_ctrl_data) +
++ le32_to_cpu(control->priv.size);
++
++ if (scontrol->size > max_size) {
++ dev_err(sdev->dev, "err: bytes data size %d exceeds max %d.\n",
++ scontrol->size, max_size);
++ return -EINVAL;
++ }
++
++ scontrol->control_data = kzalloc(max_size, GFP_KERNEL);
++ cdata = scontrol->control_data;
++ if (!scontrol->control_data)
++ return -ENOMEM;
++
++ scontrol->comp_id = sdev->next_comp_id;
++ scontrol->cmd = SOF_CTRL_CMD_BINARY;
++
++ dev_dbg(sdev->dev, "tplg: load kcontrol index %d chans %d\n",
++ scontrol->comp_id, scontrol->num_channels);
++
++ if (le32_to_cpu(control->priv.size) > 0) {
++ memcpy(cdata->data, control->priv.data,
++ le32_to_cpu(control->priv.size));
++
++ if (cdata->data->magic != SOF_ABI_MAGIC) {
++ dev_err(sdev->dev, "error: Wrong ABI magic 0x%08x.\n",
++ cdata->data->magic);
++ return -EINVAL;
++ }
++ if (SOF_ABI_VERSION_INCOMPATIBLE(SOF_ABI_VERSION,
++ cdata->data->abi)) {
++ dev_err(sdev->dev,
++ "error: Incompatible ABI version 0x%08x.\n",
++ cdata->data->abi);
++ return -EINVAL;
++ }
++ if (cdata->data->size + sizeof(const struct sof_abi_hdr) !=
++ le32_to_cpu(control->priv.size)) {
++ dev_err(sdev->dev,
++ "error: Conflict in bytes vs. priv size.\n");
++ return -EINVAL;
++ }
++ }
++ return 0;
++}
++
+ /* external kcontrol init - used for any driver specific init */
+ static int sof_control_load(struct snd_soc_component *scomp, int index,
+ struct snd_kcontrol_new *kc,
+--
+2.20.1
+
+
+From b0ba4b0be937405c5982db296e5d9e57a9239c5a Mon Sep 17 00:00:00 2001
+From: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Date: Mon, 4 Nov 2019 14:48:12 -0800
+Subject: [PATCH 099/130] ASoC: SOF: topology: set trigger order for FE DAI
+ link
+
+Set trigger order for FE DAI links to SND_SOC_DPCM_TRIGGER_POST
+to trigger the BE DAI's before the FE DAI's. This prevents the
+xruns seen on playback pipelines using the link DMA.
+
+Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191104224812.3393-3-ranjani.sridharan@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 5eee2b3f60065a2530d13f28e771be48b989eb4c)
+Bugzilla: 1772498
+---
+ sound/soc/sof/topology.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index d4aea5422ea8..143b8259a70a 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -2952,6 +2952,10 @@ static int sof_link_load(struct snd_soc_component *scomp, int index,
+ if (!link->no_pcm) {
+ link->nonatomic = true;
+
++ /* set trigger order */
++ link->trigger[0] = SND_SOC_DPCM_TRIGGER_POST;
++ link->trigger[1] = SND_SOC_DPCM_TRIGGER_POST;
++
+ /* nothing more to do for FE dai links */
+ return 0;
+ }
+--
+2.20.1
+
+
+From 00e0accc297d44a65b09af38a2d6813467f5b8e9 Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Tue, 19 Nov 2019 18:49:32 +0100
+Subject: [PATCH 100/130] ASoC: add control components management
+
+This ASCII string can carry additional information about
+soundcard components or configuration. Add the possibility
+to set this string via the ASoC card.
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Cc: Mark Brown <broonie@kernel.org>
+Link: https://lore.kernel.org/r/20191119174933.25526-1-perex@perex.cz
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit dc73d73aa7145f55412611f3eead1e85ae026785)
+Bugzilla: 1772498
+---
+ include/sound/soc.h | 1 +
+ sound/soc/soc-core.c | 13 +++++++++++++
+ 2 files changed, 14 insertions(+)
+
+diff --git a/include/sound/soc.h b/include/sound/soc.h
+index f264c6509f00..efc5fb8f3d64 100644
+--- a/include/sound/soc.h
++++ b/include/sound/soc.h
+@@ -978,6 +978,7 @@ struct snd_soc_card {
+ const char *name;
+ const char *long_name;
+ const char *driver_name;
++ const char *components;
+ char dmi_longname[80];
+ char topology_shortname[32];
+
+diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
+index 88978a3036c4..fff910fd933e 100644
+--- a/sound/soc/soc-core.c
++++ b/sound/soc/soc-core.c
+@@ -2095,6 +2095,19 @@ static int snd_soc_instantiate_card(struct snd_soc_card *card)
+ }
+ }
+
++ if (card->components) {
++ /* the current implementation of snd_component_add() accepts */
++ /* multiple components in the string separated by space, */
++ /* but the string collision (identical string) check might */
++ /* not work correctly */
++ ret = snd_component_add(card->snd_card, card->components);
++ if (ret < 0) {
++ dev_err(card->dev, "ASoC: %s snd_component_add() failed: %d\n",
++ card->name, ret);
++ goto probe_end;
++ }
++ }
++
+ if (card->late_probe) {
+ ret = card->late_probe(card);
+ if (ret < 0) {
+--
+2.20.1
+
+
+From 15b3f8b52655f2e8eafb5c209c829cd09650ae1f Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Wed, 20 Nov 2019 18:44:34 +0100
+Subject: [PATCH 101/130] ASoC: improve the DMI long card code in asoc-core
+
+Add append_dmi_string() function and make the code more readable.
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191120174435.30920-1-perex@perex.cz
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 4e01e5dbba96f731119f3f1a6bf51b54c98c5940)
+Bugzilla: 1772498
+---
+ sound/soc/soc-core.c | 66 +++++++++++++++++---------------------------
+ 1 file changed, 25 insertions(+), 41 deletions(-)
+
+diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
+index fff910fd933e..2cbd9796a25f 100644
+--- a/sound/soc/soc-core.c
++++ b/sound/soc/soc-core.c
+@@ -1729,6 +1729,23 @@ static int is_dmi_valid(const char *field)
+ return 1;
+ }
+
++/*
++ * Append a string to card->dmi_longname with character cleanups.
++ */
++static void append_dmi_string(struct snd_soc_card *card, const char *str)
++{
++ char *dst = card->dmi_longname;
++ size_t dst_len = sizeof(card->dmi_longname);
++ size_t len;
++
++ len = strlen(dst);
++ snprintf(dst + len, dst_len - len, "-%s", str);
++
++ len++; /* skip the separator "-" */
++ if (len < dst_len)
++ cleanup_dmi_name(dst + len);
++}
++
+ /**
+ * snd_soc_set_dmi_name() - Register DMI names to card
+ * @card: The card to register DMI names
+@@ -1763,61 +1780,36 @@ static int is_dmi_valid(const char *field)
+ int snd_soc_set_dmi_name(struct snd_soc_card *card, const char *flavour)
+ {
+ const char *vendor, *product, *product_version, *board;
+- size_t longname_buf_size = sizeof(card->snd_card->longname);
+- size_t len;
+
+ if (card->long_name)
+ return 0; /* long name already set by driver or from DMI */
+
+- /* make up dmi long name as: vendor.product.version.board */
++ /* make up dmi long name as: vendor-product-version-board */
+ vendor = dmi_get_system_info(DMI_BOARD_VENDOR);
+ if (!vendor || !is_dmi_valid(vendor)) {
+ dev_warn(card->dev, "ASoC: no DMI vendor name!\n");
+ return 0;
+ }
+
+- snprintf(card->dmi_longname, sizeof(card->snd_card->longname),
+- "%s", vendor);
++ snprintf(card->dmi_longname, sizeof(card->dmi_longname), "%s", vendor);
+ cleanup_dmi_name(card->dmi_longname);
+
+ product = dmi_get_system_info(DMI_PRODUCT_NAME);
+ if (product && is_dmi_valid(product)) {
+- len = strlen(card->dmi_longname);
+- snprintf(card->dmi_longname + len,
+- longname_buf_size - len,
+- "-%s", product);
+-
+- len++; /* skip the separator "-" */
+- if (len < longname_buf_size)
+- cleanup_dmi_name(card->dmi_longname + len);
++ append_dmi_string(card, product);
+
+ /*
+ * some vendors like Lenovo may only put a self-explanatory
+ * name in the product version field
+ */
+ product_version = dmi_get_system_info(DMI_PRODUCT_VERSION);
+- if (product_version && is_dmi_valid(product_version)) {
+- len = strlen(card->dmi_longname);
+- snprintf(card->dmi_longname + len,
+- longname_buf_size - len,
+- "-%s", product_version);
+-
+- len++;
+- if (len < longname_buf_size)
+- cleanup_dmi_name(card->dmi_longname + len);
+- }
++ if (product_version && is_dmi_valid(product_version))
++ append_dmi_string(card, product_version);
+ }
+
+ board = dmi_get_system_info(DMI_BOARD_NAME);
+ if (board && is_dmi_valid(board)) {
+- len = strlen(card->dmi_longname);
+- snprintf(card->dmi_longname + len,
+- longname_buf_size - len,
+- "-%s", board);
+-
+- len++;
+- if (len < longname_buf_size)
+- cleanup_dmi_name(card->dmi_longname + len);
++ append_dmi_string(card, board);
+ } else if (!product) {
+ /* fall back to using legacy name */
+ dev_warn(card->dev, "ASoC: no DMI board/product name!\n");
+@@ -1825,16 +1817,8 @@ int snd_soc_set_dmi_name(struct snd_soc_card *card, const char *flavour)
+ }
+
+ /* Add flavour to dmi long name */
+- if (flavour) {
+- len = strlen(card->dmi_longname);
+- snprintf(card->dmi_longname + len,
+- longname_buf_size - len,
+- "-%s", flavour);
+-
+- len++;
+- if (len < longname_buf_size)
+- cleanup_dmi_name(card->dmi_longname + len);
+- }
++ if (flavour)
++ append_dmi_string(card, flavour);
+
+ /* set the card long name */
+ card->long_name = card->dmi_longname;
+--
+2.20.1
+
+
+From f77607883b4040fdb1791e4e81402e452a97d1d0 Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Wed, 20 Nov 2019 18:44:35 +0100
+Subject: [PATCH 102/130] ASoC: DMI long name - avoid to add board name if
+ matches with product name
+
+Current code:
+
+ LENOVO-20QE000VMC-ThinkPadX1Carbon7th-20QE000VMC
+
+With the patch:
+
+ LENOVO-20QE000VMC-ThinkPadX1Carbon7th
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Link: https://lore.kernel.org/r/20191120174435.30920-2-perex@perex.cz
+Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 39870b0dec68ed7dd814beb697e541670975c7d8)
+Bugzilla: 1772498
+---
+ sound/soc/soc-core.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
+index 2cbd9796a25f..d42924ff13f1 100644
+--- a/sound/soc/soc-core.c
++++ b/sound/soc/soc-core.c
+@@ -1809,7 +1809,8 @@ int snd_soc_set_dmi_name(struct snd_soc_card *card, const char *flavour)
+
+ board = dmi_get_system_info(DMI_BOARD_NAME);
+ if (board && is_dmi_valid(board)) {
+- append_dmi_string(card, board);
++ if (!product || strcasecmp(board, product))
++ append_dmi_string(card, board);
+ } else if (!product) {
+ /* fall back to using legacy name */
+ dev_warn(card->dev, "ASoC: no DMI board/product name!\n");
+--
+2.20.1
+
+
+From acab1a3016c11ce7262f08ee5f978ba0fd650d81 Mon Sep 17 00:00:00 2001
+From: Hui Wang <hui.wang@canonical.com>
+Date: Thu, 21 Nov 2019 10:26:43 +0800
+Subject: [PATCH 103/130] ALSA: hda/realtek - Move some alc256 pintbls to
+ fallback table
+
+We have a new Dell machine which needs to apply the quirk
+ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, try to use the fallback table
+to fix it this time. And we could remove all pintbls of alc256
+for applying DELL1_MIC_NO_PRESENCE on Dell machines.
+
+Signed-off-by: Hui Wang <hui.wang@canonical.com>
+Link: https://lore.kernel.org/r/20191121022644.8078-1-hui.wang@canonical.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit aed8c7f40882015aad45088256231babcbc24482)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_realtek.c | 35 +++--------------------------------
+ 1 file changed, 3 insertions(+), 32 deletions(-)
+
+diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
+index 80f66ba85f87..4c83ed4b0d5c 100644
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -7608,38 +7608,6 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
+ SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+ {0x1b, 0x01011020},
+ {0x21, 0x02211010}),
+- SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x12, 0x90a60130},
+- {0x14, 0x90170110},
+- {0x1b, 0x01011020},
+- {0x21, 0x0221101f}),
+- SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x12, 0x90a60160},
+- {0x14, 0x90170120},
+- {0x21, 0x02211030}),
+- SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x12, 0x90a60170},
+- {0x14, 0x90170120},
+- {0x21, 0x02211030}),
+- SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell Inspiron 5468", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x12, 0x90a60180},
+- {0x14, 0x90170120},
+- {0x21, 0x02211030}),
+- SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x12, 0xb7a60130},
+- {0x14, 0x90170110},
+- {0x21, 0x02211020}),
+- SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x12, 0x90a60130},
+- {0x14, 0x90170110},
+- {0x14, 0x01011020},
+- {0x21, 0x0221101f}),
+- SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- ALC256_STANDARD_PINS),
+- SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x14, 0x90170110},
+- {0x1b, 0x01011020},
+- {0x21, 0x0221101f}),
+ SND_HDA_PIN_QUIRK(0x10ec0256, 0x1043, "ASUS", ALC256_FIXUP_ASUS_MIC,
+ {0x14, 0x90170110},
+ {0x1b, 0x90a70130},
+@@ -7852,6 +7820,9 @@ static const struct snd_hda_pin_quirk alc269_fallback_pin_fixup_tbl[] = {
+ SND_HDA_PIN_QUIRK(0x10ec0289, 0x1028, "Dell", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE,
+ {0x19, 0x40000000},
+ {0x1b, 0x40000000}),
++ SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
++ {0x19, 0x40000000},
++ {0x1a, 0x40000000}),
+ {}
+ };
+
+--
+2.20.1
+
+
+From 0ea4ea7f506846d630b9c31bcc9668c34e6f0555 Mon Sep 17 00:00:00 2001
+From: Hui Wang <hui.wang@canonical.com>
+Date: Thu, 21 Nov 2019 10:26:44 +0800
+Subject: [PATCH 104/130] ALSA: hda/realtek - Move some alc236 pintbls to
+ fallback table
+
+We have a new Dell machine which needs to apply the quirk
+ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, try to use the fallback table
+to fix it this time. And we could remove all pintbls of alc236
+for applying DELL1_MIC_NO_PRESENCE on Dell machines.
+
+Signed-off-by: Hui Wang <hui.wang@canonical.com>
+Link: https://lore.kernel.org/r/20191121022644.8078-2-hui.wang@canonical.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit d64ebdbfd4f71406f58210f5ccb16977b4cd31d2)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_realtek.c | 17 +++--------------
+ 1 file changed, 3 insertions(+), 14 deletions(-)
+
+diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
+index 4c83ed4b0d5c..4ebe104cb592 100644
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -7512,20 +7512,6 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
+ {0x19, 0x02a11020},
+ {0x1a, 0x02a11030},
+ {0x21, 0x0221101f}),
+- SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x12, 0x90a60140},
+- {0x14, 0x90170110},
+- {0x21, 0x02211020}),
+- SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x12, 0x90a60140},
+- {0x14, 0x90170150},
+- {0x21, 0x02211020}),
+- SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x21, 0x02211020}),
+- SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+- {0x12, 0x40000000},
+- {0x14, 0x90170110},
+- {0x21, 0x02211020}),
+ SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL2_MIC_NO_PRESENCE,
+ {0x14, 0x90170110},
+ {0x21, 0x02211020}),
+@@ -7823,6 +7809,9 @@ static const struct snd_hda_pin_quirk alc269_fallback_pin_fixup_tbl[] = {
+ SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
+ {0x19, 0x40000000},
+ {0x1a, 0x40000000}),
++ SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
++ {0x19, 0x40000000},
++ {0x1a, 0x40000000}),
+ {}
+ };
+
+--
+2.20.1
+
+
+From 98b36775111220537b7a2c33c8c0b65c79541df7 Mon Sep 17 00:00:00 2001
+From: Hui Wang <hui.wang@canonical.com>
+Date: Thu, 21 Nov 2019 10:54:27 +0800
+Subject: [PATCH 105/130] ALSA: hda/realtek - Enable the headset-mic on a
+ Xiaomi's laptop
+
+The headset on this machine is not defined, after applying the quirk
+ALC256_FIXUP_ASUS_HEADSET_MIC, the headset-mic works well
+
+BugLink: https://bugs.launchpad.net/bugs/1846148
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Hui Wang <hui.wang@canonical.com>
+Link: https://lore.kernel.org/r/20191121025427.8856-1-hui.wang@canonical.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 695d1ec3994f9de2cefae80ee2087c95d2e5a2f3)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_realtek.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
+index 4ebe104cb592..bd0c767981b1 100644
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -7248,6 +7248,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
+ SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD),
+ SND_PCI_QUIRK(0x19e5, 0x3204, "Huawei MACH-WX9", ALC256_FIXUP_HUAWEI_MACH_WX9_PINS),
+ SND_PCI_QUIRK(0x1b7d, 0xa831, "Ordissimo EVE2 ", ALC269VB_FIXUP_ORDISSIMO_EVE2), /* Also known as Malata PC-B1303 */
++ SND_PCI_QUIRK(0x1d72, 0x1901, "RedmiBook 14", ALC256_FIXUP_ASUS_HEADSET_MIC),
+ SND_PCI_QUIRK(0x10ec, 0x118c, "Medion EE4254 MD62100", ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE),
+
+ #if 0
+--
+2.20.1
+
+
+From 68b55950038f262d8f2675fa0ccb76bcf9ad398e Mon Sep 17 00:00:00 2001
+From: Jian-Hong Pan <jian-hong@endlessm.com>
+Date: Mon, 25 Nov 2019 17:34:06 +0800
+Subject: [PATCH 106/130] ALSA: hda/realtek - Enable internal speaker of ASUS
+ UX431FLC
+
+Laptops like ASUS UX431FLC and UX431FL can share the same audio quirks.
+But UX431FLC needs one more step to enable the internal speaker: Pull
+the GPIO from CODEC to initialize the AMP.
+
+Fixes: 60083f9e94b2 ("ALSA: hda/realtek - Enable internal speaker & headset mic of ASUS UX431FL")
+Signed-off-by: Jian-Hong Pan <jian-hong@endlessm.com>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20191125093405.5702-1-jian-hong@endlessm.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 436e25505f3458cc92c7f3c985e9cbc198a98209)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_realtek.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
+index bd0c767981b1..d2bf70a1d2fd 100644
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -5892,6 +5892,7 @@ enum {
+ ALC299_FIXUP_PREDATOR_SPK,
+ ALC294_FIXUP_ASUS_INTSPK_HEADSET_MIC,
+ ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE,
++ ALC294_FIXUP_ASUS_INTSPK_GPIO,
+ };
+
+ static const struct hda_fixup alc269_fixups[] = {
+@@ -6982,6 +6983,13 @@ static const struct hda_fixup alc269_fixups[] = {
+ .chained = true,
+ .chain_id = ALC256_FIXUP_ASUS_HEADSET_MODE
+ },
++ [ALC294_FIXUP_ASUS_INTSPK_GPIO] = {
++ .type = HDA_FIXUP_FUNC,
++ /* The GPIO must be pulled to initialize the AMP */
++ .v.func = alc_fixup_gpio4,
++ .chained = true,
++ .chain_id = ALC294_FIXUP_ASUS_INTSPK_HEADSET_MIC
++ },
+ };
+
+ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
+@@ -7141,7 +7149,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
+ SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK),
+ SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A),
+ SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC),
+- SND_PCI_QUIRK(0x1043, 0x17d1, "ASUS UX431FL", ALC294_FIXUP_ASUS_INTSPK_HEADSET_MIC),
++ SND_PCI_QUIRK(0x1043, 0x17d1, "ASUS UX431FL", ALC294_FIXUP_ASUS_INTSPK_GPIO),
+ SND_PCI_QUIRK(0x1043, 0x18b1, "Asus MJ401TA", ALC256_FIXUP_ASUS_HEADSET_MIC),
+ SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW),
+ SND_PCI_QUIRK(0x1043, 0x1a30, "ASUS X705UD", ALC256_FIXUP_ASUS_MIC),
+--
+2.20.1
+
+
+From 268e8ce52ad4278f6b94792483d3f8510b435b3e Mon Sep 17 00:00:00 2001
+From: Jens Verwiebe <info@jensverwiebe.de>
+Date: Sun, 24 Nov 2019 13:35:44 +0100
+Subject: [PATCH 107/130] ALSA: usb-audio: Fix Focusrite Scarlett 6i6 gen1 -
+ input handling
+
+The Scarlett 6i6 has no padding on rear inputs 3/4 but a gainstage.
+This patch introduces this functionality as to be seen in the mac
+or windows scarlett control.
+
+The correct address could already be found in the dump info, but was
+never used. Without this patch inputs 3/4 are quite unusable else.
+
+Signed-off-by: Jens Verwiebe <info@jensverwiebe.de>
+Link: https://lore.kernel.org/r/384d65cd-5e87-91eb-9fc3-e57226f534c6@jensverwiebe.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit bf2aa5cadd1c7bb91af4b5b1218e643cfffb5c9a)
+Bugzilla: 1772498
+---
+ sound/usb/mixer_scarlett.c | 23 +++++++++++++++++++++--
+ 1 file changed, 21 insertions(+), 2 deletions(-)
+
+diff --git a/sound/usb/mixer_scarlett.c b/sound/usb/mixer_scarlett.c
+index 83715fd8dfd6..9d10cbf1b5ed 100644
+--- a/sound/usb/mixer_scarlett.c
++++ b/sound/usb/mixer_scarlett.c
+@@ -142,6 +142,7 @@ enum {
+ SCARLETT_OUTPUTS,
+ SCARLETT_SWITCH_IMPEDANCE,
+ SCARLETT_SWITCH_PAD,
++ SCARLETT_SWITCH_GAIN,
+ };
+
+ enum {
+@@ -192,6 +193,15 @@ static const struct scarlett_mixer_elem_enum_info opt_pad = {
+ }
+ };
+
++static const struct scarlett_mixer_elem_enum_info opt_gain = {
++ .start = 0,
++ .len = 2,
++ .offsets = {},
++ .names = (char const * const []){
++ "Lo", "Hi"
++ }
++};
++
+ static const struct scarlett_mixer_elem_enum_info opt_impedance = {
+ .start = 0,
+ .len = 2,
+@@ -652,8 +662,8 @@ static struct scarlett_device_info s6i6_info = {
+ { .num = 1, .type = SCARLETT_SWITCH_PAD, .name = NULL},
+ { .num = 2, .type = SCARLETT_SWITCH_IMPEDANCE, .name = NULL},
+ { .num = 2, .type = SCARLETT_SWITCH_PAD, .name = NULL},
+- { .num = 3, .type = SCARLETT_SWITCH_PAD, .name = NULL},
+- { .num = 4, .type = SCARLETT_SWITCH_PAD, .name = NULL},
++ { .num = 3, .type = SCARLETT_SWITCH_GAIN, .name = NULL},
++ { .num = 4, .type = SCARLETT_SWITCH_GAIN, .name = NULL},
+ },
+
+ .matrix_mux_init = {
+@@ -883,6 +893,15 @@ static int scarlett_controls_create_generic(struct usb_mixer_interface *mixer,
+ if (err < 0)
+ return err;
+ break;
++ case SCARLETT_SWITCH_GAIN:
++ sprintf(mx, "Input %d Gain Switch", ctl->num);
++ err = add_new_ctl(mixer, &usb_scarlett_ctl_enum,
++ scarlett_ctl_enum_resume, 0x01,
++ 0x08, ctl->num, USB_MIXER_S16, 1, mx,
++ &opt_gain, &elem);
++ if (err < 0)
++ return err;
++ break;
+ }
+ }
+
+--
+2.20.1
+
+
+From 98db14f3c44954a5da1239328f4677808d5a3acf Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:09:14 -0500
+Subject: [PATCH 108/130] ASoC: SOF: topology: fix missing NULL pointer check
+
+Add check to avoid possible NULL pointer dereference issue.
+
+This issue was reported by static analysis tools, we didn't face this
+issue but we can't rule it out either as a false positive.
+
+Reported-by: Keqiao Zhang <keqiao.zhang@intel.com>
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101170916.26517-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 8cd73ce7ba6381feb9df763240dee3a6d4aff1ca)
+Bugzilla: 1772498
+---
+ sound/soc/sof/topology.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index 143b8259a70a..6096731e89ce 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -150,6 +150,11 @@ static int sof_keyword_dapm_event(struct snd_soc_dapm_widget *w,
+
+ /* get runtime PCM params using widget's stream name */
+ spcm = snd_sof_find_spcm_name(sdev, swidget->widget->sname);
++ if (!spcm) {
++ dev_err(sdev->dev, "error: cannot find PCM for %s\n",
++ swidget->widget->name);
++ return -EINVAL;
++ }
+
+ /* process events */
+ switch (event) {
+--
+2.20.1
+
+
+From d00288a4c998c445288666abb202808ea2d0dd8b Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Fri, 1 Nov 2019 12:09:15 -0500
+Subject: [PATCH 109/130] ASoC: SOF: Intel: hda: set L1SEN on S0ix suspend
+
+Set L1SEN to make sure the system can enter S0ix, and restore it on
+resume.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191101170916.26517-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 16299326a0cbbc88d4d6491a8ceebbfca81064c5)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda-dsp.c | 15 +++++++++++++++
+ sound/soc/sof/intel/hda.h | 3 +++
+ 2 files changed, 18 insertions(+)
+
+diff --git a/sound/soc/sof/intel/hda-dsp.c b/sound/soc/sof/intel/hda-dsp.c
+index 8cd5ecc01b62..4a4d318f97ff 100644
+--- a/sound/soc/sof/intel/hda-dsp.c
++++ b/sound/soc/sof/intel/hda-dsp.c
+@@ -478,9 +478,16 @@ static int hda_resume(struct snd_sof_dev *sdev, bool runtime_resume)
+
+ int hda_dsp_resume(struct snd_sof_dev *sdev)
+ {
++ struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata;
+ struct pci_dev *pci = to_pci_dev(sdev->dev);
+
+ if (sdev->s0_suspend) {
++ /* restore L1SEN bit */
++ if (hda->l1_support_changed)
++ snd_sof_dsp_update_bits(sdev, HDA_DSP_HDA_BAR,
++ HDA_VS_INTEL_EM2,
++ HDA_VS_INTEL_EM2_L1SEN, 0);
++
+ /* restore and disable the system wakeup */
+ pci_restore_state(pci);
+ disable_irq_wake(pci->irq);
+@@ -518,11 +525,19 @@ int hda_dsp_runtime_suspend(struct snd_sof_dev *sdev)
+
+ int hda_dsp_suspend(struct snd_sof_dev *sdev)
+ {
++ struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata;
+ struct hdac_bus *bus = sof_to_bus(sdev);
+ struct pci_dev *pci = to_pci_dev(sdev->dev);
+ int ret;
+
+ if (sdev->s0_suspend) {
++ /* enable L1SEN to make sure the system can enter S0Ix */
++ hda->l1_support_changed =
++ snd_sof_dsp_update_bits(sdev, HDA_DSP_HDA_BAR,
++ HDA_VS_INTEL_EM2,
++ HDA_VS_INTEL_EM2_L1SEN,
++ HDA_VS_INTEL_EM2_L1SEN);
++
+ /* enable the system waking up via IPC IRQ */
+ enable_irq_wake(pci->irq);
+ pci_save_state(pci);
+diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
+index 5ad73a34b09c..18d7e72bf9b7 100644
+--- a/sound/soc/sof/intel/hda.h
++++ b/sound/soc/sof/intel/hda.h
+@@ -408,6 +408,9 @@ struct sof_intel_hda_dev {
+
+ int irq;
+
++ /* PM related */
++ bool l1_support_changed;/* during suspend, is L1SEN changed or not */
++
+ /* DMIC device */
+ struct platform_device *dmic_dev;
+ };
+--
+2.20.1
+
+
+From d1475f9cebf57b062ca025e4d87ecaa8f0955f8e Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Mon, 11 Nov 2019 16:29:01 -0600
+Subject: [PATCH 110/130] ASoC: SOF: Intel: hda: use fallback for firmware name
+
+We have platforms such as CFL with no known I2S codec being used, and
+the ACPI tables are currently empty, so fall-back to using the
+firmware filename used in nocodec mode
+
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191111222901.19892-4-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 0af237d51a4e734db959a158185f79019f022f59)
+Bugzilla: 1772498
+---
+ sound/soc/sof/intel/hda.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c
+index 7dc0018dc4c3..91bd88fddac7 100644
+--- a/sound/soc/sof/intel/hda.c
++++ b/sound/soc/sof/intel/hda.c
+@@ -415,9 +415,16 @@ static int hda_init_caps(struct snd_sof_dev *sdev)
+ pdata->tplg_filename =
+ hda_mach->sof_tplg_filename;
+
+- /* firmware: pick the first in machine list */
++ /*
++ * firmware: pick the first in machine list,
++ * or use nocodec firmware name if list is empty
++ */
+ mach = pdata->desc->machines;
+- pdata->fw_filename = mach->sof_fw_filename;
++ if (mach->id[0])
++ pdata->fw_filename = mach->sof_fw_filename;
++ else
++ pdata->fw_filename =
++ pdata->desc->nocodec_fw_filename;
+
+ dev_info(bus->dev, "using HDA machine driver %s now\n",
+ hda_mach->drv_name);
+--
+2.20.1
+
+
+From 15f2f0826db2cd13a243fde28d9b7a6fd4b0428e Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Mon, 11 Nov 2019 16:33:40 -0600
+Subject: [PATCH 111/130] ASoC: SOF: PM: add state machine to comments
+
+Add Audio DSP state machine with comments. Note that the
+'D0<-->runtime D0I3' part is not implemented yet.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191111223343.19986-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 74b4dd04b19cc03e1cc369d9c371cf4206367df4)
+Bugzilla: 1772498
+---
+ sound/soc/sof/pm.c | 32 ++++++++++++++++++++++++++++++++
+ 1 file changed, 32 insertions(+)
+
+diff --git a/sound/soc/sof/pm.c b/sound/soc/sof/pm.c
+index 560a937e0484..3204c92f0e7d 100644
+--- a/sound/soc/sof/pm.c
++++ b/sound/soc/sof/pm.c
+@@ -428,6 +428,38 @@ int snd_sof_set_d0_substate(struct snd_sof_dev *sdev,
+ }
+ EXPORT_SYMBOL(snd_sof_set_d0_substate);
+
++/*
++ * Audio DSP states may transform as below:-
++ *
++ * D0I3 compatible stream
++ * Runtime +---------------------+ opened only, timeout
++ * suspend | +--------------------+
++ * +------------+ D0(active) | |
++ * | | <---------------+ |
++ * | +--------> | | |
++ * | |Runtime +--^--+---------^--+--+ The last | |
++ * | |resume | | | | opened D0I3 | |
++ * | | | | | | compatible | |
++ * | | resume| | | | stream closed | |
++ * | | from | | D3 | | | |
++ * | | D3 | |suspend | | d0i3 | |
++ * | | | | | |suspend | |
++ * | | | | | | | |
++ * | | | | | | | |
++ * +-v---+-----------+--v-------+ | | +------+----v----+
++ * | | | +-----------> |
++ * | D3 (suspended) | | | D0I3 +-----+
++ * | | +--------------+ | |
++ * | | resume from | | |
++ * +-------------------^--------+ d0i3 suspend +----------------+ |
++ * | |
++ * | D3 suspend |
++ * +------------------------------------------------+
++ *
++ * d0i3_suspend = s0_suspend && D0I3 stream opened,
++ * D3 suspend = !d0i3_suspend,
++ */
++
+ int snd_sof_resume(struct device *dev)
+ {
+ struct snd_sof_dev *sdev = dev_get_drvdata(dev);
+--
+2.20.1
+
+
+From a42c0c91a4bb7e180473b81bf98c56384149bd1c Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Mon, 11 Nov 2019 16:33:41 -0600
+Subject: [PATCH 112/130] ASoC: SOF: PM: add check before setting d0_substate
+
+Add check before seeting d0_substate and return success if Audio DSP is
+already in the target substate.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191111223343.19986-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 58a972efd21bb5adadd97f2546693ec64bfc99b9)
+Bugzilla: 1772498
+---
+ sound/soc/sof/pm.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/sound/soc/sof/pm.c b/sound/soc/sof/pm.c
+index 3204c92f0e7d..b89810bf3230 100644
+--- a/sound/soc/sof/pm.c
++++ b/sound/soc/sof/pm.c
+@@ -416,6 +416,9 @@ int snd_sof_set_d0_substate(struct snd_sof_dev *sdev,
+ {
+ int ret;
+
++ if (sdev->d0_substate == d0_substate)
++ return 0;
++
+ /* do platform specific set_state */
+ ret = snd_sof_dsp_set_power_state(sdev, d0_substate);
+ if (ret < 0)
+--
+2.20.1
+
+
+From bba0301fd9f218213736d2db9368bbc09346cbb5 Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Mon, 11 Nov 2019 16:33:42 -0600
+Subject: [PATCH 113/130] ASoC: SOF: add helper to check if we should enter
+ d0i3 suspend
+
+Add helper to check if the DSP should be put in D0i3. This function
+returns true if a stream has ignored the SUSPEND trigger to keep the
+pipelines running in the DSP.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191111223343.19986-4-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit a77e5d573f847d2f984c38eb711351326bc55258)
+Bugzilla: 1772498
+---
+ sound/soc/sof/core.c | 13 +++++++++++++
+ sound/soc/sof/sof-priv.h | 2 ++
+ 2 files changed, 15 insertions(+)
+
+diff --git a/sound/soc/sof/core.c b/sound/soc/sof/core.c
+index 8661c2cca76b..805918d3bcc0 100644
+--- a/sound/soc/sof/core.c
++++ b/sound/soc/sof/core.c
+@@ -132,6 +132,19 @@ struct snd_sof_dai *snd_sof_find_dai(struct snd_sof_dev *sdev,
+ return NULL;
+ }
+
++bool snd_sof_dsp_d0i3_on_suspend(struct snd_sof_dev *sdev)
++{
++ struct snd_sof_pcm *spcm;
++
++ list_for_each_entry(spcm, &sdev->pcm_list, list) {
++ if (spcm->stream[SNDRV_PCM_STREAM_PLAYBACK].suspend_ignored ||
++ spcm->stream[SNDRV_PCM_STREAM_CAPTURE].suspend_ignored)
++ return true;
++ }
++
++ return false;
++}
++
+ /*
+ * FW Panic/fault handling.
+ */
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 6408ac88a3e5..c7c2c70ee4d0 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -553,6 +553,8 @@ struct snd_sof_pcm *snd_sof_find_spcm_dai(struct snd_sof_dev *sdev,
+ return NULL;
+ }
+
++bool snd_sof_dsp_d0i3_on_suspend(struct snd_sof_dev *sdev);
++
+ struct snd_sof_pcm *snd_sof_find_spcm_name(struct snd_sof_dev *sdev,
+ const char *name);
+ struct snd_sof_pcm *snd_sof_find_spcm_comp(struct snd_sof_dev *sdev,
+--
+2.20.1
+
+
+From 37c30238887254ea800b5913475bd444fe0ba46d Mon Sep 17 00:00:00 2001
+From: Keyon Jie <yang.jie@linux.intel.com>
+Date: Mon, 11 Nov 2019 16:33:43 -0600
+Subject: [PATCH 114/130] ASoC: SOF: PM: only suspend to D0I3 when needed
+
+We should suspend audio to D3 by default, for the sake of power saving,
+change the condition of D0I3 suspending here to that when there is
+stream with suspend_ignored specified.
+
+Signed-off-by: Keyon Jie <yang.jie@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191111223343.19986-5-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 5e35d5f4224adb24c2bfa814b9fb562050aba3ea)
+Bugzilla: 1772498
+---
+ sound/soc/sof/pm.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/sof/pm.c b/sound/soc/sof/pm.c
+index b89810bf3230..0fd5567237a8 100644
+--- a/sound/soc/sof/pm.c
++++ b/sound/soc/sof/pm.c
+@@ -468,7 +468,7 @@ int snd_sof_resume(struct device *dev)
+ struct snd_sof_dev *sdev = dev_get_drvdata(dev);
+ int ret;
+
+- if (sdev->s0_suspend) {
++ if (snd_sof_dsp_d0i3_on_suspend(sdev)) {
+ /* resume from D0I3 */
+ dev_dbg(sdev->dev, "DSP will exit from D0i3...\n");
+ ret = snd_sof_set_d0_substate(sdev, SOF_DSP_D0I0);
+@@ -497,7 +497,7 @@ int snd_sof_suspend(struct device *dev)
+ struct snd_sof_dev *sdev = dev_get_drvdata(dev);
+ int ret;
+
+- if (sdev->s0_suspend) {
++ if (snd_sof_dsp_d0i3_on_suspend(sdev)) {
+ /* suspend to D0i3 */
+ dev_dbg(sdev->dev, "DSP is trying to enter D0i3...\n");
+ ret = snd_sof_set_d0_substate(sdev, SOF_DSP_D0I3);
+--
+2.20.1
+
+
+From 21fa58950c58b8b75e38f4cffac87e6058f0f01f Mon Sep 17 00:00:00 2001
+From: Dragos Tarcatu <dragos_tarcatu@mentor.com>
+Date: Mon, 11 Nov 2019 16:20:38 -0600
+Subject: [PATCH 115/130] ASoC: SOF: topology: free kcontrol memory on error
+
+The volume and bytes kcontrols are currently not freeing their
+memory on initialization failures. When an error occurs, all the
+widgets loaded so far are unloaded via sof_widget_unload().
+But this only happens for the widgets that got successfully loaded.
+
+Fix that by kfree()-ing the allocated memory on load error.
+
+Fixes: 311ce4fe7637d ("ASoC: SOF: Add support for loading topologies")
+Reviewed-by: Paul Olaru <paul.olaru@nxp.com>
+Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Signed-off-by: Dragos Tarcatu <dragos_tarcatu@mentor.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191111222039.19651-1-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 1b4efdaf6d6053c8944cee0edba0969dc1be7d4b)
+Bugzilla: 1772498
+---
+ sound/soc/sof/topology.c | 67 +++++++++++++++++++++++++++++-----------
+ 1 file changed, 49 insertions(+), 18 deletions(-)
+
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index 6096731e89ce..d82ab981e840 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -942,18 +942,22 @@ static int sof_control_load_volume(struct snd_soc_component *scomp,
+ struct sof_ipc_ctrl_data *cdata;
+ int tlv[TLV_ITEMS];
+ unsigned int i;
+- int ret;
++ int ret = 0;
+
+ /* validate topology data */
+- if (le32_to_cpu(mc->num_channels) > SND_SOC_TPLG_MAX_CHAN)
+- return -EINVAL;
++ if (le32_to_cpu(mc->num_channels) > SND_SOC_TPLG_MAX_CHAN) {
++ ret = -EINVAL;
++ goto out;
++ }
+
+ /* init the volume get/put data */
+ scontrol->size = struct_size(scontrol->control_data, chanv,
+ le32_to_cpu(mc->num_channels));
+ scontrol->control_data = kzalloc(scontrol->size, GFP_KERNEL);
+- if (!scontrol->control_data)
+- return -ENOMEM;
++ if (!scontrol->control_data) {
++ ret = -ENOMEM;
++ goto out;
++ }
+
+ scontrol->comp_id = sdev->next_comp_id;
+ scontrol->min_volume_step = le32_to_cpu(mc->min);
+@@ -963,7 +967,7 @@ static int sof_control_load_volume(struct snd_soc_component *scomp,
+ /* set cmd for mixer control */
+ if (le32_to_cpu(mc->max) == 1) {
+ scontrol->cmd = SOF_CTRL_CMD_SWITCH;
+- goto out;
++ goto skip;
+ }
+
+ scontrol->cmd = SOF_CTRL_CMD_VOLUME;
+@@ -971,14 +975,15 @@ static int sof_control_load_volume(struct snd_soc_component *scomp,
+ /* extract tlv data */
+ if (get_tlv_data(kc->tlv.p, tlv) < 0) {
+ dev_err(sdev->dev, "error: invalid TLV data\n");
+- return -EINVAL;
++ ret = -EINVAL;
++ goto out_free;
+ }
+
+ /* set up volume table */
+ ret = set_up_volume_table(scontrol, tlv, le32_to_cpu(mc->max) + 1);
+ if (ret < 0) {
+ dev_err(sdev->dev, "error: setting up volume table\n");
+- return ret;
++ goto out_free;
+ }
+
+ /* set default volume values to 0dB in control */
+@@ -988,7 +993,7 @@ static int sof_control_load_volume(struct snd_soc_component *scomp,
+ cdata->chanv[i].value = VOL_ZERO_DB;
+ }
+
+-out:
++skip:
+ /* set up possible led control from mixer private data */
+ ret = sof_parse_tokens(scomp, &scontrol->led_ctl, led_tokens,
+ ARRAY_SIZE(led_tokens), mc->priv.array,
+@@ -996,13 +1001,21 @@ static int sof_control_load_volume(struct snd_soc_component *scomp,
+ if (ret != 0) {
+ dev_err(sdev->dev, "error: parse led tokens failed %d\n",
+ le32_to_cpu(mc->priv.size));
+- return ret;
++ goto out_free_table;
+ }
+
+ dev_dbg(sdev->dev, "tplg: load kcontrol index %d chans %d\n",
+ scontrol->comp_id, scontrol->num_channels);
+
+- return 0;
++ return ret;
++
++out_free_table:
++ if (le32_to_cpu(mc->max) > 1)
++ kfree(scontrol->volume_table);
++out_free:
++ kfree(scontrol->control_data);
++out:
++ return ret;
+ }
+
+ static int sof_control_load_enum(struct snd_soc_component *scomp,
+@@ -1047,6 +1060,7 @@ static int sof_control_load_bytes(struct snd_soc_component *scomp,
+ container_of(hdr, struct snd_soc_tplg_bytes_control, hdr);
+ struct soc_bytes_ext *sbe = (struct soc_bytes_ext *)kc->private_value;
+ int max_size = sbe->max;
++ int ret = 0;
+
+ /* init the get/put bytes data */
+ scontrol->size = sizeof(struct sof_ipc_ctrl_data) +
+@@ -1055,13 +1069,16 @@ static int sof_control_load_bytes(struct snd_soc_component *scomp,
+ if (scontrol->size > max_size) {
+ dev_err(sdev->dev, "err: bytes data size %d exceeds max %d.\n",
+ scontrol->size, max_size);
+- return -EINVAL;
++ ret = -EINVAL;
++ goto out;
+ }
+
+ scontrol->control_data = kzalloc(max_size, GFP_KERNEL);
+ cdata = scontrol->control_data;
+- if (!scontrol->control_data)
+- return -ENOMEM;
++ if (!scontrol->control_data) {
++ ret = -ENOMEM;
++ goto out;
++ }
+
+ scontrol->comp_id = sdev->next_comp_id;
+ scontrol->cmd = SOF_CTRL_CMD_BINARY;
+@@ -1076,23 +1093,32 @@ static int sof_control_load_bytes(struct snd_soc_component *scomp,
+ if (cdata->data->magic != SOF_ABI_MAGIC) {
+ dev_err(sdev->dev, "error: Wrong ABI magic 0x%08x.\n",
+ cdata->data->magic);
+- return -EINVAL;
++ ret = -EINVAL;
++ goto out_free;
+ }
+ if (SOF_ABI_VERSION_INCOMPATIBLE(SOF_ABI_VERSION,
+ cdata->data->abi)) {
+ dev_err(sdev->dev,
+ "error: Incompatible ABI version 0x%08x.\n",
+ cdata->data->abi);
+- return -EINVAL;
++ ret = -EINVAL;
++ goto out_free;
+ }
+ if (cdata->data->size + sizeof(const struct sof_abi_hdr) !=
+ le32_to_cpu(control->priv.size)) {
+ dev_err(sdev->dev,
+ "error: Conflict in bytes vs. priv size.\n");
+- return -EINVAL;
++ ret = -EINVAL;
++ goto out_free;
+ }
+ }
+- return 0;
++
++ return ret;
++
++out_free:
++ kfree(scontrol->control_data);
++out:
++ return ret;
+ }
+
+ /* external kcontrol init - used for any driver specific init */
+@@ -1150,6 +1176,11 @@ static int sof_control_load(struct snd_soc_component *scomp, int index,
+ return 0;
+ }
+
++ if (ret < 0) {
++ kfree(scontrol);
++ return ret;
++ }
++
+ dobj->private = scontrol;
+ list_add(&scontrol->list, &sdev->kcontrol_list);
+ return ret;
+--
+2.20.1
+
+
+From 165ac3fd39d420dc48ff9e05142a6e07dbc249e0 Mon Sep 17 00:00:00 2001
+From: Liam Girdwood <liam.r.girdwood@linux.intel.com>
+Date: Mon, 11 Nov 2019 16:29:00 -0600
+Subject: [PATCH 116/130] ASoC: SOF: Intel: Fix CFL and CML FW nocodec binary
+ names.
+
+The manifest information is different between CNL, CML and CFL platforms
+hence we need to load different files.
+
+Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191111222901.19892-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 653c28afa76b45c570370c3c3a89975c68c5fc8e)
+Bugzilla: 1772498
+---
+ sound/soc/sof/sof-pci-dev.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/sound/soc/sof/sof-pci-dev.c b/sound/soc/sof/sof-pci-dev.c
+index 3b58b91e7b9e..bbeffd932de7 100644
+--- a/sound/soc/sof/sof-pci-dev.c
++++ b/sound/soc/sof/sof-pci-dev.c
+@@ -120,7 +120,7 @@ static const struct sof_dev_desc cnl_desc = {
+
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_COFFEELAKE)
+ static const struct sof_dev_desc cfl_desc = {
+- .machines = snd_soc_acpi_intel_cnl_machines,
++ .machines = snd_soc_acpi_intel_cfl_machines,
+ .resindex_lpe_base = 0,
+ .resindex_pcicfg_base = -1,
+ .resindex_imr_base = -1,
+@@ -129,7 +129,7 @@ static const struct sof_dev_desc cfl_desc = {
+ .chip_info = &cnl_chip_info,
+ .default_fw_path = "intel/sof",
+ .default_tplg_path = "intel/sof-tplg",
+- .nocodec_fw_filename = "sof-cnl.ri",
++ .nocodec_fw_filename = "sof-cfl.ri",
+ .nocodec_tplg_filename = "sof-cnl-nocodec.tplg",
+ .ops = &sof_cnl_ops,
+ .arch_ops = &sof_xtensa_arch_ops
+@@ -140,7 +140,7 @@ static const struct sof_dev_desc cfl_desc = {
+ IS_ENABLED(CONFIG_SND_SOC_SOF_COMETLAKE_H)
+
+ static const struct sof_dev_desc cml_desc = {
+- .machines = snd_soc_acpi_intel_cnl_machines,
++ .machines = snd_soc_acpi_intel_cml_machines,
+ .resindex_lpe_base = 0,
+ .resindex_pcicfg_base = -1,
+ .resindex_imr_base = -1,
+@@ -149,7 +149,7 @@ static const struct sof_dev_desc cml_desc = {
+ .chip_info = &cnl_chip_info,
+ .default_fw_path = "intel/sof",
+ .default_tplg_path = "intel/sof-tplg",
+- .nocodec_fw_filename = "sof-cnl.ri",
++ .nocodec_fw_filename = "sof-cml.ri",
+ .nocodec_tplg_filename = "sof-cnl-nocodec.tplg",
+ .ops = &sof_cnl_ops,
+ .arch_ops = &sof_xtensa_arch_ops
+--
+2.20.1
+
+
+From 6f3f161ac71319c1997170719e119f315a2251f6 Mon Sep 17 00:00:00 2001
+From: Krzysztof Kozlowski <krzk@kernel.org>
+Date: Wed, 20 Nov 2019 21:32:52 +0800
+Subject: [PATCH 117/130] ASoC: Fix Kconfig indentation
+
+Adjust indentation from spaces to tab (+optional two spaces) as in
+coding style with command like:
+ $ sed -e 's/^ /\t/' -i */Kconfig
+
+Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
+Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191120133252.6365-1-krzk@kernel.org
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 3efd72330543da44e82e9371dfb639802c886f6c)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Kconfig | 24 ++++++++++++------------
+ sound/soc/sof/intel/Kconfig | 10 +++++-----
+ 2 files changed, 17 insertions(+), 17 deletions(-)
+
+diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
+index 2702aefee775..ef20316e83d1 100644
+--- a/sound/soc/intel/boards/Kconfig
++++ b/sound/soc/intel/boards/Kconfig
+@@ -441,18 +441,18 @@ config SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH
+ If unsure select "N".
+
+ config SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH
+- tristate "CML with RT1011 and RT5682 in I2S Mode"
+- depends on I2C && ACPI
+- depends on MFD_INTEL_LPSS || COMPILE_TEST
+- select SND_SOC_RT1011
+- select SND_SOC_RT5682
+- select SND_SOC_DMIC
+- select SND_SOC_HDAC_HDMI
+- help
+- This adds support for ASoC machine driver for SOF platform with
+- RT1011 + RT5682 I2S codec.
+- Say Y if you have such a device.
+- If unsure select "N".
++ tristate "CML with RT1011 and RT5682 in I2S Mode"
++ depends on I2C && ACPI
++ depends on MFD_INTEL_LPSS || COMPILE_TEST
++ select SND_SOC_RT1011
++ select SND_SOC_RT5682
++ select SND_SOC_DMIC
++ select SND_SOC_HDAC_HDMI
++ help
++ This adds support for ASoC machine driver for SOF platform with
++ RT1011 + RT5682 I2S codec.
++ Say Y if you have such a device.
++ If unsure select "N".
+
+ endif ## SND_SOC_SOF_COMETLAKE_LP && SND_SOC_SOF_HDA_LINK
+
+diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig
+index b27fd3fdf335..cc09bb606f7d 100644
+--- a/sound/soc/sof/intel/Kconfig
++++ b/sound/soc/sof/intel/Kconfig
+@@ -264,16 +264,16 @@ config SND_SOC_SOF_ELKHARTLAKE
+ config SND_SOC_SOF_JASPERLAKE_SUPPORT
+ bool "SOF support for JasperLake"
+ help
+- This adds support for Sound Open Firmware for Intel(R) platforms
+- using the JasperLake processors.
+- Say Y if you have such a device.
+- If unsure select "N".
++ This adds support for Sound Open Firmware for Intel(R) platforms
++ using the JasperLake processors.
++ Say Y if you have such a device.
++ If unsure select "N".
+
+ config SND_SOC_SOF_JASPERLAKE
+ tristate
+ select SND_SOC_SOF_HDA_COMMON
+ help
+- This option is not user-selectable but automagically handled by
++ This option is not user-selectable but automagically handled by
+ 'select' statements at a higher level
+
+ config SND_SOC_SOF_HDA_COMMON
+--
+2.20.1
+
+
+From 716051e31d6ac7c9c195f9f36e9b2d0bb7c1ee39 Mon Sep 17 00:00:00 2001
+From: Ben Zhang <benzh@chromium.org>
+Date: Tue, 5 Nov 2019 17:13:27 -0800
+Subject: [PATCH 118/130] ASoC: bdw-rt5677: Add a DAI link for rt5677 SPI PCM
+ device
+
+This link is needed for the RT5677 DSP to do hotwording
+
+Signed-off-by: Ben Zhang <benzh@chromium.org>
+Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
+Link: https://lore.kernel.org/r/20191106011335.223061-3-cujomalainey@chromium.org
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 157b006f6be46be833b2941856b86e0a9d8bfb0e)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/bdw-rt5677.c | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/sound/soc/intel/boards/bdw-rt5677.c b/sound/soc/intel/boards/bdw-rt5677.c
+index 4a4d3353e26d..eeb9a11e4e14 100644
+--- a/sound/soc/intel/boards/bdw-rt5677.c
++++ b/sound/soc/intel/boards/bdw-rt5677.c
+@@ -74,6 +74,7 @@ static const struct snd_soc_dapm_route bdw_rt5677_map[] = {
+ /* CODEC BE connections */
+ {"SSP0 CODEC IN", NULL, "AIF1 Capture"},
+ {"AIF1 Playback", NULL, "SSP0 CODEC OUT"},
++ {"DSP Capture", NULL, "DSP Buffer"},
+ };
+
+ static const struct snd_kcontrol_new bdw_rt5677_controls[] = {
+@@ -258,6 +259,12 @@ SND_SOC_DAILINK_DEF(platform,
+ SND_SOC_DAILINK_DEF(be,
+ DAILINK_COMP_ARRAY(COMP_CODEC("i2c-RT5677CE:00", "rt5677-aif1")));
+
++/* Wake on voice interface */
++SND_SOC_DAILINK_DEFS(dsp,
++ DAILINK_COMP_ARRAY(COMP_CPU("spi-RT5677AA:00")),
++ DAILINK_COMP_ARRAY(COMP_CODEC("i2c-RT5677CE:00", "rt5677-dspbuffer")),
++ DAILINK_COMP_ARRAY(COMP_PLATFORM("spi-RT5677AA:00")));
++
+ static struct snd_soc_dai_link bdw_rt5677_dais[] = {
+ /* Front End DAI links */
+ {
+@@ -276,6 +283,13 @@ static struct snd_soc_dai_link bdw_rt5677_dais[] = {
+ SND_SOC_DAILINK_REG(fe, dummy, platform),
+ },
+
++ /* Non-DPCM links */
++ {
++ .name = "Codec DSP",
++ .stream_name = "Wake on Voice",
++ SND_SOC_DAILINK_REG(dsp),
++ },
++
+ /* Back End DAI links */
+ {
+ /* SSP0 - Codec */
+--
+2.20.1
+
+
+From 0509dabb0d84b34fe4632eabc8aae3bf699dffb4 Mon Sep 17 00:00:00 2001
+From: Curtis Malainey <cujomalainey@chromium.org>
+Date: Tue, 5 Nov 2019 17:13:34 -0800
+Subject: [PATCH 119/130] ASoC: bdw-rt5677: Turn on MCLK1 for DSP via DAPM
+
+The RT5677 DSP needs the I2S MCLK1 to run its DSP. Add a dapm route to
+SSP0 CODEC IN so the clock is turned on automatically when the DSP is
+turned on.
+
+Signed-off-by: Curtis Malainey <cujomalainey@chromium.org>
+Link: https://lore.kernel.org/r/20191106011335.223061-10-cujomalainey@chromium.org
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 55229597a94531726878229ccfcd3fe4ec572dc3)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/bdw-rt5677.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/sound/soc/intel/boards/bdw-rt5677.c b/sound/soc/intel/boards/bdw-rt5677.c
+index eeb9a11e4e14..b2475e3eff7b 100644
+--- a/sound/soc/intel/boards/bdw-rt5677.c
++++ b/sound/soc/intel/boards/bdw-rt5677.c
+@@ -75,6 +75,10 @@ static const struct snd_soc_dapm_route bdw_rt5677_map[] = {
+ {"SSP0 CODEC IN", NULL, "AIF1 Capture"},
+ {"AIF1 Playback", NULL, "SSP0 CODEC OUT"},
+ {"DSP Capture", NULL, "DSP Buffer"},
++
++ /* DSP Clock Connections */
++ { "DSP Buffer", NULL, "SSP0 CODEC IN" },
++ { "SSP0 CODEC IN", NULL, "DSPTX" },
+ };
+
+ static const struct snd_kcontrol_new bdw_rt5677_controls[] = {
+--
+2.20.1
+
+
+From 4ed26c72c431638378a523c30aea7842a84b48d7 Mon Sep 17 00:00:00 2001
+From: Yu-Hsuan Hsu <yuhsuan@chromium.org>
+Date: Tue, 24 Sep 2019 00:29:40 +0800
+Subject: [PATCH 120/130] ASoC: Intel: kbl_rt5663_rt5514_max98927: Add dmic
+ format constraint
+
+On KBL platform, the microphone is attached to external codec(rt5514)
+instead of PCH. However, TDM slot between PCH and codec is 16 bits only.
+In order to avoid setting wrong format, we should add a constraint to
+force to use 16 bits format forever.
+
+Signed-off-by: Yu-Hsuan Hsu <yuhsuan@chromium.org>
+Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20190923162940.199580-1-yuhsuan@chromium.org
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit e2db787bdcb4f2722ecf410168f0583764634e45)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
+index a1056cda3dd7..3e5f6bead229 100644
+--- a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
++++ b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
+@@ -465,6 +465,9 @@ static int kabylake_dmic_startup(struct snd_pcm_substream *substream)
+ snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS,
+ dmic_constraints);
+
++ runtime->hw.formats = SNDRV_PCM_FMTBIT_S16_LE;
++ snd_pcm_hw_constraint_msbits(runtime, 0, 16, 16);
++
+ return snd_pcm_hw_constraint_list(substream->runtime, 0,
+ SNDRV_PCM_HW_PARAM_RATE, &constraints_rates);
+ }
+--
+2.20.1
+
+
+From 0305b5a5db77305fc43a76efd39aed84c5561f96 Mon Sep 17 00:00:00 2001
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Date: Mon, 11 Nov 2019 16:28:59 -0600
+Subject: [PATCH 121/130] ASoC: Intel: acpi-match: split CNL tables in three
+
+Due to firmware manifest/signature differences, we have to use
+different firmware names, so split CNL machine table in three (CNL,
+CFL, CML).
+
+The CFL table is currently empty since all known platforms use
+HDaudio, but let's plan ahead.
+
+Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191111222901.19892-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 1f24d93c4f4ec0bb0b73c5b020060aa2d9faa756)
+Bugzilla: 1772498
+---
+ include/sound/soc-acpi-intel-match.h | 2 +
+ sound/soc/intel/common/Makefile | 3 +-
+ .../intel/common/soc-acpi-intel-cfl-match.c | 18 ++++++
+ .../intel/common/soc-acpi-intel-cml-match.c | 56 +++++++++++++++++++
+ .../intel/common/soc-acpi-intel-cnl-match.c | 38 -------------
+ 5 files changed, 78 insertions(+), 39 deletions(-)
+ create mode 100644 sound/soc/intel/common/soc-acpi-intel-cfl-match.c
+ create mode 100644 sound/soc/intel/common/soc-acpi-intel-cml-match.c
+
+diff --git a/include/sound/soc-acpi-intel-match.h b/include/sound/soc-acpi-intel-match.h
+index 4e44782862df..20c0bee3b959 100644
+--- a/include/sound/soc-acpi-intel-match.h
++++ b/include/sound/soc-acpi-intel-match.h
+@@ -24,6 +24,8 @@ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_kbl_machines[];
+ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_bxt_machines[];
+ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_glk_machines[];
+ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_cnl_machines[];
++extern struct snd_soc_acpi_mach snd_soc_acpi_intel_cfl_machines[];
++extern struct snd_soc_acpi_mach snd_soc_acpi_intel_cml_machines[];
+ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_icl_machines[];
+ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_tgl_machines[];
+ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_ehl_machines[];
+diff --git a/sound/soc/intel/common/Makefile b/sound/soc/intel/common/Makefile
+index eafe95ead49b..bd352878f89a 100644
+--- a/sound/soc/intel/common/Makefile
++++ b/sound/soc/intel/common/Makefile
+@@ -7,7 +7,8 @@ snd-soc-acpi-intel-match-objs := soc-acpi-intel-byt-match.o soc-acpi-intel-cht-m
+ soc-acpi-intel-hsw-bdw-match.o \
+ soc-acpi-intel-skl-match.o soc-acpi-intel-kbl-match.o \
+ soc-acpi-intel-bxt-match.o soc-acpi-intel-glk-match.o \
+- soc-acpi-intel-cnl-match.o soc-acpi-intel-icl-match.o \
++ soc-acpi-intel-cnl-match.o soc-acpi-intel-cfl-match.o \
++ soc-acpi-intel-cml-match.o soc-acpi-intel-icl-match.o \
+ soc-acpi-intel-tgl-match.o soc-acpi-intel-ehl-match.o \
+ soc-acpi-intel-jsl-match.o \
+ soc-acpi-intel-hda-match.o
+diff --git a/sound/soc/intel/common/soc-acpi-intel-cfl-match.c b/sound/soc/intel/common/soc-acpi-intel-cfl-match.c
+new file mode 100644
+index 000000000000..d6fd2026d0b8
+--- /dev/null
++++ b/sound/soc/intel/common/soc-acpi-intel-cfl-match.c
+@@ -0,0 +1,18 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * soc-apci-intel-cfl-match.c - tables and support for CFL ACPI enumeration.
++ *
++ * Copyright (c) 2019, Intel Corporation.
++ *
++ */
++
++#include <sound/soc-acpi.h>
++#include <sound/soc-acpi-intel-match.h>
++
++struct snd_soc_acpi_mach snd_soc_acpi_intel_cfl_machines[] = {
++ {},
++};
++EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_cfl_machines);
++
++MODULE_LICENSE("GPL v2");
++MODULE_DESCRIPTION("Intel Common ACPI Match module");
+diff --git a/sound/soc/intel/common/soc-acpi-intel-cml-match.c b/sound/soc/intel/common/soc-acpi-intel-cml-match.c
+new file mode 100644
+index 000000000000..5d08ae066738
+--- /dev/null
++++ b/sound/soc/intel/common/soc-acpi-intel-cml-match.c
+@@ -0,0 +1,56 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * soc-acpi-intel-cml-match.c - tables and support for CML ACPI enumeration.
++ *
++ * Copyright (c) 2019, Intel Corporation.
++ *
++ */
++
++#include <sound/soc-acpi.h>
++#include <sound/soc-acpi-intel-match.h>
++
++static struct snd_soc_acpi_codecs cml_codecs = {
++ .num_codecs = 1,
++ .codecs = {"10EC5682"}
++};
++
++static struct snd_soc_acpi_codecs cml_spk_codecs = {
++ .num_codecs = 1,
++ .codecs = {"MX98357A"}
++};
++
++struct snd_soc_acpi_mach snd_soc_acpi_intel_cml_machines[] = {
++ {
++ .id = "DLGS7219",
++ .drv_name = "cml_da7219_max98357a",
++ .quirk_data = &cml_spk_codecs,
++ .sof_fw_filename = "sof-cml.ri",
++ .sof_tplg_filename = "sof-cml-da7219-max98357a.tplg",
++ },
++ {
++ .id = "MX98357A",
++ .drv_name = "sof_rt5682",
++ .quirk_data = &cml_codecs,
++ .sof_fw_filename = "sof-cml.ri",
++ .sof_tplg_filename = "sof-cml-rt5682-max98357a.tplg",
++ },
++ {
++ .id = "10EC1011",
++ .drv_name = "cml_rt1011_rt5682",
++ .quirk_data = &cml_codecs,
++ .sof_fw_filename = "sof-cml.ri",
++ .sof_tplg_filename = "sof-cml-rt1011-rt5682.tplg",
++ },
++ {
++ .id = "10EC5682",
++ .drv_name = "sof_rt5682",
++ .sof_fw_filename = "sof-cml.ri",
++ .sof_tplg_filename = "sof-cml-rt5682.tplg",
++ },
++
++ {},
++};
++EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_cml_machines);
++
++MODULE_LICENSE("GPL v2");
++MODULE_DESCRIPTION("Intel Common ACPI Match module");
+diff --git a/sound/soc/intel/common/soc-acpi-intel-cnl-match.c b/sound/soc/intel/common/soc-acpi-intel-cnl-match.c
+index 16d0bae8b316..27588841c8b0 100644
+--- a/sound/soc/intel/common/soc-acpi-intel-cnl-match.c
++++ b/sound/soc/intel/common/soc-acpi-intel-cnl-match.c
+@@ -14,16 +14,6 @@ static struct skl_machine_pdata cnl_pdata = {
+ .use_tplg_pcm = true,
+ };
+
+-static struct snd_soc_acpi_codecs cml_codecs = {
+- .num_codecs = 1,
+- .codecs = {"10EC5682"}
+-};
+-
+-static struct snd_soc_acpi_codecs cml_spk_codecs = {
+- .num_codecs = 1,
+- .codecs = {"MX98357A"}
+-};
+-
+ struct snd_soc_acpi_mach snd_soc_acpi_intel_cnl_machines[] = {
+ {
+ .id = "INT34C2",
+@@ -33,34 +23,6 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_cnl_machines[] = {
+ .sof_fw_filename = "sof-cnl.ri",
+ .sof_tplg_filename = "sof-cnl-rt274.tplg",
+ },
+- {
+- .id = "DLGS7219",
+- .drv_name = "cml_da7219_max98357a",
+- .quirk_data = &cml_spk_codecs,
+- .sof_fw_filename = "sof-cnl.ri",
+- .sof_tplg_filename = "sof-cml-da7219-max98357a.tplg",
+- },
+- {
+- .id = "MX98357A",
+- .drv_name = "sof_rt5682",
+- .quirk_data = &cml_codecs,
+- .sof_fw_filename = "sof-cnl.ri",
+- .sof_tplg_filename = "sof-cml-rt5682-max98357a.tplg",
+- },
+- {
+- .id = "10EC1011",
+- .drv_name = "cml_rt1011_rt5682",
+- .quirk_data = &cml_codecs,
+- .sof_fw_filename = "sof-cnl.ri",
+- .sof_tplg_filename = "sof-cml-rt1011-rt5682.tplg",
+- },
+- {
+- .id = "10EC5682",
+- .drv_name = "sof_rt5682",
+- .sof_fw_filename = "sof-cnl.ri",
+- .sof_tplg_filename = "sof-cml-rt5682.tplg",
+- },
+-
+ {},
+ };
+ EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_cnl_machines);
+--
+2.20.1
+
+
+From 5013754204158edfa1252330c1120226af2dca7f Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Tue, 19 Nov 2019 15:51:38 +0100
+Subject: [PATCH 122/130] ASoC: Intel: bytcr_rt5640: Update quirk for Acer
+ Switch 10 SW5-012 2-in-1
+
+When the Acer Switch 10 SW5-012 quirk was added we did not have
+jack-detection support yet; and the builtin microphone selection of
+the original quirk is wrong too.
+
+Fix the microphone-input quirk and add jack-detection info so that the
+internal-microphone and headphone/set jack on the Switch 10 work properly.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Link: https://lore.kernel.org/r/20191119145138.59162-1-hdegoede@redhat.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 0bb887709eb16bdc4b5baddd8337abf3de72917f)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/bytcr_rt5640.c | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
+index 9c1aa4ec9cba..dd2b5ad08659 100644
+--- a/sound/soc/intel/boards/bytcr_rt5640.c
++++ b/sound/soc/intel/boards/bytcr_rt5640.c
+@@ -405,10 +405,12 @@ static const struct dmi_system_id byt_rt5640_quirk_table[] = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Aspire SW5-012"),
+ },
+- .driver_data = (void *)(BYT_RT5640_IN1_MAP |
+- BYT_RT5640_MCLK_EN |
+- BYT_RT5640_SSP0_AIF1),
+-
++ .driver_data = (void *)(BYT_RT5640_DMIC1_MAP |
++ BYT_RT5640_JD_SRC_JD2_IN4N |
++ BYT_RT5640_OVCD_TH_2000UA |
++ BYT_RT5640_OVCD_SF_0P75 |
++ BYT_RT5640_SSP0_AIF1 |
++ BYT_RT5640_MCLK_EN),
+ },
+ {
+ .matches = {
+--
+2.20.1
+
+
+From 04e4b5accb0405d3ba338dd244fc9c4510f8cd3e Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Mon, 2 Dec 2019 08:49:47 +0100
+Subject: [PATCH 123/130] ALSA: hda: Modify stream stripe mask only when needed
+
+The recent commit in HD-audio stream management for changing the
+stripe control seems causing a regression on some platforms. The
+stripe control is currently used only by HDMI codec, and applying the
+stripe mask unconditionally may lead to scratchy and static noises as
+seen on some MacBooks.
+
+For addressing the regression, this patch changes the stream
+management code to apply the stripe mask conditionally only when the
+codec driver requested.
+
+Fixes: 9b6f7e7a296e ("ALSA: hda: program stripe bits for controller")
+BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204477
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20191202074947.1617-1-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit cb50445130d14a5a609d7cd88db9d0436313c881)
+Bugzilla: 1772498
+---
+ include/sound/hdaudio.h | 1 +
+ sound/hda/hdac_stream.c | 19 ++++++++++++-------
+ sound/pci/hda/patch_hdmi.c | 5 +++++
+ 3 files changed, 18 insertions(+), 7 deletions(-)
+
+diff --git a/include/sound/hdaudio.h b/include/sound/hdaudio.h
+index b260c5fd2337..e05b95e83d5a 100644
+--- a/include/sound/hdaudio.h
++++ b/include/sound/hdaudio.h
+@@ -493,6 +493,7 @@ struct hdac_stream {
+ bool prepared:1;
+ bool no_period_wakeup:1;
+ bool locked:1;
++ bool stripe:1; /* apply stripe control */
+
+ /* timestamp */
+ unsigned long start_wallclk; /* start + minimum wallclk */
+diff --git a/sound/hda/hdac_stream.c b/sound/hda/hdac_stream.c
+index d8fe7ff0cd58..f9707fb05efe 100644
+--- a/sound/hda/hdac_stream.c
++++ b/sound/hda/hdac_stream.c
+@@ -96,12 +96,14 @@ void snd_hdac_stream_start(struct hdac_stream *azx_dev, bool fresh_start)
+ 1 << azx_dev->index,
+ 1 << azx_dev->index);
+ /* set stripe control */
+- if (azx_dev->substream)
+- stripe_ctl = snd_hdac_get_stream_stripe_ctl(bus, azx_dev->substream);
+- else
+- stripe_ctl = 0;
+- snd_hdac_stream_updateb(azx_dev, SD_CTL_3B, SD_CTL_STRIPE_MASK,
+- stripe_ctl);
++ if (azx_dev->stripe) {
++ if (azx_dev->substream)
++ stripe_ctl = snd_hdac_get_stream_stripe_ctl(bus, azx_dev->substream);
++ else
++ stripe_ctl = 0;
++ snd_hdac_stream_updateb(azx_dev, SD_CTL_3B, SD_CTL_STRIPE_MASK,
++ stripe_ctl);
++ }
+ /* set DMA start and interrupt mask */
+ snd_hdac_stream_updateb(azx_dev, SD_CTL,
+ 0, SD_CTL_DMA_START | SD_INT_MASK);
+@@ -118,7 +120,10 @@ void snd_hdac_stream_clear(struct hdac_stream *azx_dev)
+ snd_hdac_stream_updateb(azx_dev, SD_CTL,
+ SD_CTL_DMA_START | SD_INT_MASK, 0);
+ snd_hdac_stream_writeb(azx_dev, SD_STS, SD_INT_MASK); /* to be sure */
+- snd_hdac_stream_updateb(azx_dev, SD_CTL_3B, SD_CTL_STRIPE_MASK, 0);
++ if (azx_dev->stripe) {
++ snd_hdac_stream_updateb(azx_dev, SD_CTL_3B, SD_CTL_STRIPE_MASK, 0);
++ azx_dev->stripe = 0;
++ }
+ azx_dev->running = false;
+ }
+ EXPORT_SYMBOL_GPL(snd_hdac_stream_clear);
+diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
+index 71848dce0025..b35652cae616 100644
+--- a/sound/pci/hda/patch_hdmi.c
++++ b/sound/pci/hda/patch_hdmi.c
+@@ -32,6 +32,7 @@
+ #include <sound/hda_codec.h>
+ #include "hda_local.h"
+ #include "hda_jack.h"
++#include "hda_controller.h"
+
+ static bool static_hdmi_pcm;
+ module_param(static_hdmi_pcm, bool, 0644);
+@@ -1222,6 +1223,10 @@ static int hdmi_pcm_open(struct hda_pcm_stream *hinfo,
+ per_pin->cvt_nid = per_cvt->cvt_nid;
+ hinfo->nid = per_cvt->cvt_nid;
+
++ /* flip stripe flag for the assigned stream if supported */
++ if (get_wcaps(codec, per_cvt->cvt_nid) & AC_WCAP_STRIPE)
++ azx_stream(get_azx_dev(substream))->stripe = 1;
++
+ snd_hda_set_dev_select(codec, per_pin->pin_nid, per_pin->dev_id);
+ snd_hda_codec_write_cache(codec, per_pin->pin_nid, 0,
+ AC_VERB_SET_CONNECT_SEL,
+--
+2.20.1
+
+
+From 418156f40c1686839ff690363a6174049cebf3e8 Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Fri, 29 Nov 2019 15:40:27 +0100
+Subject: [PATCH 124/130] ALSA: hda - fixup for the bass speaker on Lenovo
+ Carbon X1 7th gen
+
+The auto-parser assigns the bass speaker to DAC3 (NID 0x06) which
+is without the volume control. I do not see a reason to use DAC2,
+because the shared output to all speakers produces the sufficient
+and well balanced sound. The stereo support is enough for this
+purpose (laptop).
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Link: https://lore.kernel.org/r/20191129144027.14765-1-perex@perex.cz
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit d2cd795c4ece1a24fda170c35eeb4f17d9826cbb)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_realtek.c | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
+index d2bf70a1d2fd..a596790d4245 100644
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -5544,6 +5544,16 @@ static void alc295_fixup_disable_dac3(struct hda_codec *codec,
+ }
+ }
+
++/* force NID 0x17 (Bass Speaker) to DAC1 to share it with the main speaker */
++static void alc285_fixup_speaker2_to_dac1(struct hda_codec *codec,
++ const struct hda_fixup *fix, int action)
++{
++ if (action == HDA_FIXUP_ACT_PRE_PROBE) {
++ hda_nid_t conn[1] = { 0x02 };
++ snd_hda_override_conn_list(codec, 0x17, 1, conn);
++ }
++}
++
+ /* Hook to update amp GPIO4 for automute */
+ static void alc280_hp_gpio4_automute_hook(struct hda_codec *codec,
+ struct hda_jack_callback *jack)
+@@ -5846,6 +5856,7 @@ enum {
+ ALC225_FIXUP_DISABLE_MIC_VREF,
+ ALC225_FIXUP_DELL1_MIC_NO_PRESENCE,
+ ALC295_FIXUP_DISABLE_DAC3,
++ ALC285_FIXUP_SPEAKER2_TO_DAC1,
+ ALC280_FIXUP_HP_HEADSET_MIC,
+ ALC221_FIXUP_HP_FRONT_MIC,
+ ALC292_FIXUP_TPT460,
+@@ -6646,6 +6657,10 @@ static const struct hda_fixup alc269_fixups[] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc295_fixup_disable_dac3,
+ },
++ [ALC285_FIXUP_SPEAKER2_TO_DAC1] = {
++ .type = HDA_FIXUP_FUNC,
++ .v.func = alc285_fixup_speaker2_to_dac1,
++ },
+ [ALC256_FIXUP_DELL_INSPIRON_7559_SUBWOOFER] = {
+ .type = HDA_FIXUP_PINS,
+ .v.pins = (const struct hda_pintbl[]) {
+@@ -7221,6 +7236,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
+ SND_PCI_QUIRK(0x17aa, 0x224c, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
+ SND_PCI_QUIRK(0x17aa, 0x224d, "Thinkpad", ALC298_FIXUP_TPT470_DOCK),
+ SND_PCI_QUIRK(0x17aa, 0x225d, "Thinkpad T480", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
++ SND_PCI_QUIRK(0x17aa, 0x2293, "Thinkpad X1 Carbon 7th", ALC285_FIXUP_SPEAKER2_TO_DAC1),
+ SND_PCI_QUIRK(0x17aa, 0x30bb, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
+ SND_PCI_QUIRK(0x17aa, 0x30e2, "ThinkCentre AIO", ALC233_FIXUP_LENOVO_LINE2_MIC_HOTKEY),
+ SND_PCI_QUIRK(0x17aa, 0x310c, "ThinkCentre Station", ALC294_FIXUP_LENOVO_MIC_LOCATION),
+@@ -7405,6 +7421,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
+ {.id = ALC255_FIXUP_DELL_SPK_NOISE, .name = "dell-spk-noise"},
+ {.id = ALC225_FIXUP_DELL1_MIC_NO_PRESENCE, .name = "alc225-dell1"},
+ {.id = ALC295_FIXUP_DISABLE_DAC3, .name = "alc295-disable-dac3"},
++ {.id = ALC285_FIXUP_SPEAKER2_TO_DAC1, .name = "alc285-speaker2-to-dac1"},
+ {.id = ALC280_FIXUP_HP_HEADSET_MIC, .name = "alc280-hp-headset"},
+ {.id = ALC221_FIXUP_HP_FRONT_MIC, .name = "alc221-hp-mic"},
+ {.id = ALC298_FIXUP_SPK_VOLUME, .name = "alc298-spk-volume"},
+--
+2.20.1
+
+
+From a7ff4a018897902cb76e6946162f452e99747a0b Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Fri, 22 Nov 2019 14:26:24 +0100
+Subject: [PATCH 125/130] ALSA: hda/hdmi - Clear codec->relaxed_resume flag at
+ unbinding
+
+The HDMI codec may leave codec->relaxed_resume flag set even after
+unbinding. Clear it unconditionally.
+
+It's very unlikely that this actually matters in the real use case,
+so just a fix for consistency.
+
+Fixes: ade49db337a9 ("ALSA: hda/hdmi - Allow audio component for AMD/ATI and Nvidia HDMI")
+Link: https://lore.kernel.org/r/20191122132624.5482-1-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 10a9594563415855bd99678ea4f91dea792e5499)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_hdmi.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
+index b35652cae616..5393da45b250 100644
+--- a/sound/pci/hda/patch_hdmi.c
++++ b/sound/pci/hda/patch_hdmi.c
+@@ -2311,8 +2311,8 @@ static void generic_hdmi_free(struct hda_codec *codec)
+ snd_hdac_acomp_exit(&codec->bus->core);
+ } else if (codec_has_acomp(codec)) {
+ snd_hdac_acomp_register_notifier(&codec->bus->core, NULL);
+- codec->relaxed_resume = 0;
+ }
++ codec->relaxed_resume = 0;
+
+ for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) {
+ struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx);
+--
+2.20.1
+
+
+From 396bdfdd1a2a119b724148d1e6911c6c1f76722b Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Fri, 22 Nov 2019 16:43:50 -0500
+Subject: [PATCH 126/130] ALSA: hda/hdmi - fix vgaswitcheroo detection for AMD
+
+Only enable the vga_switcheroo logic on systems with the
+ATPX ACPI method. This logic is not needed for asics
+that are not part of a PX (PowerXpress)/HG (Hybrid Graphics)
+platform.
+
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Acked-by: Evan Quan <evan.quan@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Link: https://lore.kernel.org/r/20191122214353.582899-2-alexander.deucher@amd.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 586bc4aab878efcf672536f0cdec3d04b6990c94)
+Bugzilla: 1772498
+---
+ sound/pci/hda/hda_intel.c | 45 +++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 45 insertions(+)
+
+diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
+index e76a0bb6d3cf..ff098957e30f 100644
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -35,6 +35,7 @@
+ #include <linux/clocksource.h>
+ #include <linux/time.h>
+ #include <linux/completion.h>
++#include <linux/acpi.h>
+
+ #ifdef CONFIG_X86
+ /* for snoop control */
+@@ -1401,6 +1402,34 @@ static int azx_dev_free(struct snd_device *device)
+ }
+
+ #ifdef SUPPORT_VGA_SWITCHEROO
++#ifdef CONFIG_ACPI
++/* ATPX is in the integrated GPU's namespace */
++static bool atpx_present(void)
++{
++ struct pci_dev *pdev = NULL;
++ acpi_handle dhandle, atpx_handle;
++ acpi_status status;
++
++ while ((pdev = pci_get_class(PCI_BASE_CLASS_DISPLAY << 16, pdev)) != NULL) {
++ dhandle = ACPI_HANDLE(&pdev->dev);
++ if (dhandle) {
++ status = acpi_get_handle(dhandle, "ATPX", &atpx_handle);
++ if (!ACPI_FAILURE(status)) {
++ pci_dev_put(pdev);
++ return true;
++ }
++ }
++ pci_dev_put(pdev);
++ }
++ return false;
++}
++#else
++static bool atpx_present(void)
++{
++ return false;
++}
++#endif
++
+ /*
+ * Check of disabled HDMI controller by vga_switcheroo
+ */
+@@ -1412,6 +1441,22 @@ static struct pci_dev *get_bound_vga(struct pci_dev *pci)
+ switch (pci->vendor) {
+ case PCI_VENDOR_ID_ATI:
+ case PCI_VENDOR_ID_AMD:
++ if (pci->devfn == 1) {
++ p = pci_get_domain_bus_and_slot(pci_domain_nr(pci->bus),
++ pci->bus->number, 0);
++ if (p) {
++ /* ATPX is in the integrated GPU's ACPI namespace
++ * rather than the dGPU's namespace. However,
++ * the dGPU is the one who is involved in
++ * vgaswitcheroo.
++ */
++ if (((p->class >> 16) == PCI_BASE_CLASS_DISPLAY) &&
++ atpx_present())
++ return p;
++ pci_dev_put(p);
++ }
++ }
++ break;
+ case PCI_VENDOR_ID_NVIDIA:
+ if (pci->devfn == 1) {
+ p = pci_get_domain_bus_and_slot(pci_domain_nr(pci->bus),
+--
+2.20.1
+
+
+From a7347cade76e5cf325b36b01fd40fc8471c770a4 Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Fri, 22 Nov 2019 16:43:51 -0500
+Subject: [PATCH 127/130] ALSA: hda/hdmi - Add new pci ids for AMD GPU display
+ audio
+
+These are needed so we can enable runtime pm in a subsequent
+patch.
+
+Reviewed-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Link: https://lore.kernel.org/r/20191122214353.582899-3-alexander.deucher@amd.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 8d68a87244a812323ce3f7d5022f9deda9db54b5)
+Bugzilla: 1772498
+---
+ sound/pci/hda/hda_intel.c | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
+index ff098957e30f..bc64d1565868 100644
+--- a/sound/pci/hda/hda_intel.c
++++ b/sound/pci/hda/hda_intel.c
+@@ -2599,6 +2599,20 @@ static const struct pci_device_id azx_ids[] = {
+ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
+ { PCI_DEVICE(0x1002, 0xaaf0),
+ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
++ { PCI_DEVICE(0x1002, 0xaaf8),
++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
++ { PCI_DEVICE(0x1002, 0xab00),
++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
++ { PCI_DEVICE(0x1002, 0xab08),
++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
++ { PCI_DEVICE(0x1002, 0xab10),
++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
++ { PCI_DEVICE(0x1002, 0xab18),
++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
++ { PCI_DEVICE(0x1002, 0xab20),
++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
++ { PCI_DEVICE(0x1002, 0xab38),
++ .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS },
+ /* VIA VT8251/VT8237A */
+ { PCI_DEVICE(0x1106, 0x3288), .driver_data = AZX_DRIVER_VIA },
+ /* VIA GFX VT7122/VX900 */
+--
+2.20.1
+
+
+From 0caa4b472c884305fe9412cfbab077ad043e92c4 Mon Sep 17 00:00:00 2001
+From: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Date: Wed, 20 Nov 2019 16:20:35 +0800
+Subject: [PATCH 128/130] ALSA: hda - Add mute led support for HP ProBook 645
+ G4
+
+Mic mute led does not work on HP ProBook 645 G4.
+We can use CXT_FIXUP_MUTE_LED_GPIO fixup to support it.
+
+Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20191120082035.18937-1-kai.heng.feng@canonical.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit e190de6941db14813032af87873f5550ad5764fe)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_conexant.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
+index 968d3caab6ac..90aa0f400a57 100644
+--- a/sound/pci/hda/patch_conexant.c
++++ b/sound/pci/hda/patch_conexant.c
+@@ -910,6 +910,7 @@ static const struct snd_pci_quirk cxt5066_fixups[] = {
+ SND_PCI_QUIRK(0x103c, 0x837f, "HP ProBook 470 G5", CXT_FIXUP_MUTE_LED_GPIO),
+ SND_PCI_QUIRK(0x103c, 0x8299, "HP 800 G3 SFF", CXT_FIXUP_HP_MIC_NO_PRESENCE),
+ SND_PCI_QUIRK(0x103c, 0x829a, "HP 800 G3 DM", CXT_FIXUP_HP_MIC_NO_PRESENCE),
++ SND_PCI_QUIRK(0x103c, 0x8402, "HP ProBook 645 G4", CXT_FIXUP_MUTE_LED_GPIO),
+ SND_PCI_QUIRK(0x103c, 0x8455, "HP Z2 G4", CXT_FIXUP_HP_MIC_NO_PRESENCE),
+ SND_PCI_QUIRK(0x103c, 0x8456, "HP Z2 G4 SFF", CXT_FIXUP_HP_MIC_NO_PRESENCE),
+ SND_PCI_QUIRK(0x103c, 0x8457, "HP Z2 G4 mini", CXT_FIXUP_HP_MIC_NO_PRESENCE),
+--
+2.20.1
+
+
+From addcf5abf004336c8a1a29244a1bbcf66a08414f Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Thu, 28 Nov 2019 21:26:30 +0100
+Subject: [PATCH 129/130] ALSA: hda/realtek - Fix inverted bass GPIO pin on
+ Acer 8951G
+
+We've added the bass speaker support on Acer 8951G by the commit
+00066e9733f6 ("Add Acer Aspire Ethos 8951G model quirk"), but it seems
+that the GPIO pin was wrongly set: while the commit turns off the bit
+to power up the amp, the actual hardware reacts other way round,
+i.e. GPIO bit on = amp on.
+
+So this patch fixes the bug, turning on the GPIO bit 0x02 as default.
+Since turning on the GPIO bit can be more easily managed with
+alc_setup_gpio() call, we simplify the quirk code by integrating the
+GPIO setup into the existing alc662_fixup_aspire_ethos_hp() and
+dropping the whole ALC669_FIXUP_ACER_ASPIRE_ETHOS_SUBWOOFER quirk.
+
+Fixes: 00066e9733f6 ("Add Acer Aspire Ethos 8951G model quirk")
+Reported-and-tested-by: Sergey 'Jin' Bostandzhyan <jin@mediatomb.cc>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/20191128202630.6626-1-tiwai@suse.de
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 336820c4374bc065317f247dc2bb37c0e41b64a6)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_realtek.c | 17 +++--------------
+ 1 file changed, 3 insertions(+), 14 deletions(-)
+
+diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
+index a596790d4245..c84cabadaf69 100644
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -8441,6 +8441,8 @@ static void alc662_fixup_aspire_ethos_hp(struct hda_codec *codec,
+ case HDA_FIXUP_ACT_PRE_PROBE:
+ snd_hda_jack_detect_enable_callback(codec, 0x1b,
+ alc662_aspire_ethos_mute_speakers);
++ /* subwoofer needs an extra GPIO setting to become audible */
++ alc_setup_gpio(codec, 0x02);
+ break;
+ case HDA_FIXUP_ACT_INIT:
+ /* Make sure to start in a correct state, i.e. if
+@@ -8523,7 +8525,6 @@ enum {
+ ALC662_FIXUP_USI_HEADSET_MODE,
+ ALC662_FIXUP_LENOVO_MULTI_CODECS,
+ ALC669_FIXUP_ACER_ASPIRE_ETHOS,
+- ALC669_FIXUP_ACER_ASPIRE_ETHOS_SUBWOOFER,
+ ALC669_FIXUP_ACER_ASPIRE_ETHOS_HEADSET,
+ };
+
+@@ -8855,18 +8856,6 @@ static const struct hda_fixup alc662_fixups[] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc662_fixup_aspire_ethos_hp,
+ },
+- [ALC669_FIXUP_ACER_ASPIRE_ETHOS_SUBWOOFER] = {
+- .type = HDA_FIXUP_VERBS,
+- /* subwoofer needs an extra GPIO setting to become audible */
+- .v.verbs = (const struct hda_verb[]) {
+- {0x01, AC_VERB_SET_GPIO_MASK, 0x02},
+- {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x02},
+- {0x01, AC_VERB_SET_GPIO_DATA, 0x00},
+- { }
+- },
+- .chained = true,
+- .chain_id = ALC669_FIXUP_ACER_ASPIRE_ETHOS_HEADSET
+- },
+ [ALC669_FIXUP_ACER_ASPIRE_ETHOS] = {
+ .type = HDA_FIXUP_PINS,
+ .v.pins = (const struct hda_pintbl[]) {
+@@ -8876,7 +8865,7 @@ static const struct hda_fixup alc662_fixups[] = {
+ { }
+ },
+ .chained = true,
+- .chain_id = ALC669_FIXUP_ACER_ASPIRE_ETHOS_SUBWOOFER
++ .chain_id = ALC669_FIXUP_ACER_ASPIRE_ETHOS_HEADSET
+ },
+ };
+
+--
+2.20.1
+
+
+From 251ba1fbf100a47f2e4599dada0bf75cc8f8f65b Mon Sep 17 00:00:00 2001
+From: Kailang Yang <kailang@realtek.com>
+Date: Tue, 26 Nov 2019 17:04:23 +0800
+Subject: [PATCH 130/130] ALSA: hda/realtek - Dell headphone has noise on
+ unmute for ALC236
+
+headphone have noise even the volume is very small.
+Let it fill up pcbeep hidden register to default value.
+The issue was gone.
+
+Fixes: 4344aec84bd8 ("ALSA: hda/realtek - New codec support for ALC256")
+Fixes: 736f20a70608 ("ALSA: hda/realtek - Add support for ALC236/ALC3204")
+Signed-off-by: Kailang Yang <kailang@realtek.com>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/9ae47f23a64d4e41a9c81e263cd8a250@realtek.com
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit e1e8c1fdce8b00fce08784d9d738c60ebf598ebc)
+Bugzilla: 1772498
+---
+ sound/pci/hda/patch_realtek.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
+index c84cabadaf69..6d6e34b3b3aa 100644
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -367,9 +367,7 @@ static void alc_fill_eapd_coef(struct hda_codec *codec)
+ case 0x10ec0215:
+ case 0x10ec0233:
+ case 0x10ec0235:
+- case 0x10ec0236:
+ case 0x10ec0255:
+- case 0x10ec0256:
+ case 0x10ec0257:
+ case 0x10ec0282:
+ case 0x10ec0283:
+@@ -381,6 +379,11 @@ static void alc_fill_eapd_coef(struct hda_codec *codec)
+ case 0x10ec0300:
+ alc_update_coef_idx(codec, 0x10, 1<<9, 0);
+ break;
++ case 0x10ec0236:
++ case 0x10ec0256:
++ alc_write_coef_idx(codec, 0x36, 0x5757);
++ alc_update_coef_idx(codec, 0x10, 1<<9, 0);
++ break;
+ case 0x10ec0275:
+ alc_update_coef_idx(codec, 0xe, 0, 1<<0);
+ break;
+--
+2.20.1
+
diff --git a/alsa-5.6.patch b/alsa-5.6.patch
new file mode 100644
index 000000000..b128cc7e6
--- /dev/null
+++ b/alsa-5.6.patch
@@ -0,0 +1,390 @@
+From 4ef91c45a5a283dc8899402bc68adfe0aa9a026d Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Wed, 4 Dec 2019 15:15:44 -0600
+Subject: [PATCH 1/4] ASoC: intel/skl/hda - export number of digital
+ microphones via control components
+
+It is required for the auto-detection in the user space (for UCM).
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Cc: Mark Brown <broonie@kernel.org>
+Link: https://lore.kernel.org/r/20191204211556.12671-2-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 8cd9956f61c65022209ce6d1e55ed12aea12357d)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/skl_hda_dsp_generic.c | 8 ++++++++
+ sound/soc/sof/intel/hda.c | 3 ++-
+ 2 files changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/intel/boards/skl_hda_dsp_generic.c b/sound/soc/intel/boards/skl_hda_dsp_generic.c
+index 4e45901e3a2f..11eaee9ae41f 100644
+--- a/sound/soc/intel/boards/skl_hda_dsp_generic.c
++++ b/sound/soc/intel/boards/skl_hda_dsp_generic.c
+@@ -100,6 +100,8 @@ static struct snd_soc_card hda_soc_card = {
+ .late_probe = skl_hda_card_late_probe,
+ };
+
++static char hda_soc_components[30];
++
+ #define IDISP_DAI_COUNT 3
+ #define HDAC_DAI_COUNT 2
+ #define DMIC_DAI_COUNT 2
+@@ -183,6 +185,12 @@ static int skl_hda_audio_probe(struct platform_device *pdev)
+ hda_soc_card.dev = &pdev->dev;
+ snd_soc_card_set_drvdata(&hda_soc_card, ctx);
+
++ if (mach->mach_params.dmic_num > 0) {
++ snprintf(hda_soc_components, sizeof(hda_soc_components),
++ "cfg-dmics:%d", mach->mach_params.dmic_num);
++ hda_soc_card.components = hda_soc_components;
++ }
++
+ return devm_snd_soc_register_card(&pdev->dev, &hda_soc_card);
+ }
+
+diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c
+index 91bd88fddac7..eea01f75d23d 100644
+--- a/sound/soc/sof/intel/hda.c
++++ b/sound/soc/sof/intel/hda.c
+@@ -351,7 +351,7 @@ static int hda_init_caps(struct snd_sof_dev *sdev)
+ const char *tplg_filename;
+ const char *idisp_str;
+ const char *dmic_str;
+- int dmic_num;
++ int dmic_num = 0;
+ int codec_num = 0;
+ int i;
+ #endif
+@@ -472,6 +472,7 @@ static int hda_init_caps(struct snd_sof_dev *sdev)
+ mach_params->codec_mask = bus->codec_mask;
+ mach_params->platform = dev_name(sdev->dev);
+ mach_params->common_hdmi_codec_drv = hda_codec_use_common_hdmi;
++ mach_params->dmic_num = dmic_num;
+ }
+
+ /* create codec instances */
+--
+2.20.1
+
+
+From 89be5f69889f7e9aeab05279869bba3e9e0d2002 Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Wed, 4 Dec 2019 15:15:45 -0600
+Subject: [PATCH 2/4] ASoC: Intel - use control components to describe card
+ config
+
+Use the control interface (field 'components' in the info structure)
+to pass the I/O configuration details. The goal is to replace
+the card long name with this.
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Cc: Mark Brown <broonie@kernel.org>
+Link: https://lore.kernel.org/r/20191204211556.12671-3-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit 0d5c8187562848b619a35f2ffc5e18ce703e9f3d)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/bytcht_es8316.c | 9 ++++++++-
+ sound/soc/intel/boards/bytcr_rt5640.c | 6 ++++++
+ sound/soc/intel/boards/bytcr_rt5651.c | 18 +++++++++++-------
+ 3 files changed, 25 insertions(+), 8 deletions(-)
+
+diff --git a/sound/soc/intel/boards/bytcht_es8316.c b/sound/soc/intel/boards/bytcht_es8316.c
+index 46612331f5ea..efa33f30dcac 100644
+--- a/sound/soc/intel/boards/bytcht_es8316.c
++++ b/sound/soc/intel/boards/bytcht_es8316.c
+@@ -361,6 +361,7 @@ static struct snd_soc_dai_link byt_cht_es8316_dais[] = {
+ /* SoC card */
+ static char codec_name[SND_ACPI_I2C_ID_LEN];
+ static char long_name[50]; /* = "bytcht-es8316-*-spk-*-mic" */
++static char components_string[32]; /* = "cfg-spk:* cfg-mic:* */
+
+ static int byt_cht_es8316_suspend(struct snd_soc_card *card)
+ {
+@@ -572,11 +573,17 @@ static int snd_byt_cht_es8316_mc_probe(struct platform_device *pdev)
+ }
+ }
+
+- /* register the soc card */
++ snprintf(components_string, sizeof(components_string),
++ "cfg-spk:%s cfg-mic:%s",
++ (quirk & BYT_CHT_ES8316_MONO_SPEAKER) ? "1" : "2",
++ mic_name[BYT_CHT_ES8316_MAP(quirk)]);
++ byt_cht_es8316_card.components = components_string;
+ snprintf(long_name, sizeof(long_name), "bytcht-es8316-%s-spk-%s-mic",
+ (quirk & BYT_CHT_ES8316_MONO_SPEAKER) ? "mono" : "stereo",
+ mic_name[BYT_CHT_ES8316_MAP(quirk)]);
+ byt_cht_es8316_card.long_name = long_name;
++
++ /* register the soc card */
+ snd_soc_card_set_drvdata(&byt_cht_es8316_card, priv);
+
+ ret = devm_snd_soc_register_card(dev, &byt_cht_es8316_card);
+diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
+index dd2b5ad08659..7bc6d3cec94c 100644
+--- a/sound/soc/intel/boards/bytcr_rt5640.c
++++ b/sound/soc/intel/boards/bytcr_rt5640.c
+@@ -1083,6 +1083,7 @@ static char byt_rt5640_codec_name[SND_ACPI_I2C_ID_LEN];
+ static char byt_rt5640_codec_aif_name[12]; /* = "rt5640-aif[1|2]" */
+ static char byt_rt5640_cpu_dai_name[10]; /* = "ssp[0|2]-port" */
+ static char byt_rt5640_long_name[40]; /* = "bytcr-rt5640-*-spk-*-mic" */
++static char byt_rt5640_components[32]; /* = "cfg-spk:* cfg-mic:*" */
+
+ static int byt_rt5640_suspend(struct snd_soc_card *card)
+ {
+@@ -1305,6 +1306,11 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev)
+ }
+ }
+
++ snprintf(byt_rt5640_components, sizeof(byt_rt5640_components),
++ "cfg-spk:%s cfg-mic:%s",
++ (byt_rt5640_quirk & BYT_RT5640_MONO_SPEAKER) ? "1" : "2",
++ map_name[BYT_RT5640_MAP(byt_rt5640_quirk)]);
++ byt_rt5640_card.components = byt_rt5640_components;
+ snprintf(byt_rt5640_long_name, sizeof(byt_rt5640_long_name),
+ "bytcr-rt5640-%s-spk-%s-mic",
+ (byt_rt5640_quirk & BYT_RT5640_MONO_SPEAKER) ?
+diff --git a/sound/soc/intel/boards/bytcr_rt5651.c b/sound/soc/intel/boards/bytcr_rt5651.c
+index 4606f6f582d6..80a5674ddb1b 100644
+--- a/sound/soc/intel/boards/bytcr_rt5651.c
++++ b/sound/soc/intel/boards/bytcr_rt5651.c
+@@ -798,6 +798,7 @@ static char byt_rt5651_codec_name[SND_ACPI_I2C_ID_LEN];
+ static char byt_rt5651_codec_aif_name[12]; /* = "rt5651-aif[1|2]" */
+ static char byt_rt5651_cpu_dai_name[10]; /* = "ssp[0|2]-port" */
+ static char byt_rt5651_long_name[50]; /* = "bytcr-rt5651-*-spk-*-mic[-swapped-hp]" */
++static char byt_rt5651_components[50]; /* = "cfg-spk:* cfg-mic:*" */
+
+ static int byt_rt5651_suspend(struct snd_soc_card *card)
+ {
+@@ -876,7 +877,6 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
+ const char *platform_name;
+ struct acpi_device *adev;
+ struct device *codec_dev;
+- const char *hp_swapped;
+ bool is_bytcr = false;
+ int ret_val = 0;
+ int dai_index = 0;
+@@ -1080,16 +1080,20 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
+ }
+ }
+
+- if (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED)
+- hp_swapped = "-hp-swapped";
+- else
+- hp_swapped = "";
+-
++ snprintf(byt_rt5651_components, sizeof(byt_rt5651_components),
++ "cfg-spk:%s cfg-mic:%s%s",
++ (byt_rt5651_quirk & BYT_RT5651_MONO_SPEAKER) ? "1" : "2",
++ mic_name[BYT_RT5651_MAP(byt_rt5651_quirk)],
++ (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED) ?
++ " cfg-hp:lrswap" : "");
++ byt_rt5651_card.components = byt_rt5651_components;
+ snprintf(byt_rt5651_long_name, sizeof(byt_rt5651_long_name),
+ "bytcr-rt5651-%s-spk-%s-mic%s",
+ (byt_rt5651_quirk & BYT_RT5651_MONO_SPEAKER) ?
+ "mono" : "stereo",
+- mic_name[BYT_RT5651_MAP(byt_rt5651_quirk)], hp_swapped);
++ mic_name[BYT_RT5651_MAP(byt_rt5651_quirk)],
++ (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED) ?
++ "-hp-swapped" : "");
+ byt_rt5651_card.long_name = byt_rt5651_long_name;
+
+ /* override plaform name, if required */
+--
+2.20.1
+
+
+From 36c175e19e9cbb685708519d41e27cd803206737 Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Wed, 4 Dec 2019 15:15:46 -0600
+Subject: [PATCH 3/4] ASoC: Intel - do not describe I/O configuration in the
+ long card name
+
+The long card name might be used in GUI. This information should be hidden.
+
+Add CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES configuration option.
+
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Cc: Mark Brown <broonie@kernel.org>
+Link: https://lore.kernel.org/r/20191204211556.12671-4-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+
+Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
+(cherry picked from commit b5706f8ec29fb461571d25e3e813ede121fe31cd)
+Bugzilla: 1772498
+---
+ sound/soc/intel/boards/Kconfig | 13 +++++++++++++
+ sound/soc/intel/boards/bytcht_es8316.c | 4 ++++
+ sound/soc/intel/boards/bytcr_rt5640.c | 4 ++++
+ sound/soc/intel/boards/bytcr_rt5651.c | 4 ++++
+ 4 files changed, 25 insertions(+)
+
+diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
+index ef20316e83d1..145eb55bd691 100644
+--- a/sound/soc/intel/boards/Kconfig
++++ b/sound/soc/intel/boards/Kconfig
+@@ -13,6 +13,19 @@ menuconfig SND_SOC_INTEL_MACH
+
+ if SND_SOC_INTEL_MACH
+
++config SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES
++ bool "Use more user friendly long card names"
++ help
++ Some drivers report the I/O configuration to userspace through the
++ soundcard's long card name in the control user space AP. An unfortunate
++ side effect is that this long name may also be used by the GUI,
++ confusing users with information they don't need.
++ This option prevents the long name from being modified, and the I/O
++ configuration will be provided through a different component interface.
++ Select Y if userspace like UCM (Use Case Manager) uses the component
++ interface.
++ If unsure select N.
++
+ if SND_SOC_INTEL_HASWELL
+
+ config SND_SOC_INTEL_HASWELL_MACH
+diff --git a/sound/soc/intel/boards/bytcht_es8316.c b/sound/soc/intel/boards/bytcht_es8316.c
+index efa33f30dcac..12a1c5255484 100644
+--- a/sound/soc/intel/boards/bytcht_es8316.c
++++ b/sound/soc/intel/boards/bytcht_es8316.c
+@@ -360,7 +360,9 @@ static struct snd_soc_dai_link byt_cht_es8316_dais[] = {
+
+ /* SoC card */
+ static char codec_name[SND_ACPI_I2C_ID_LEN];
++#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES)
+ static char long_name[50]; /* = "bytcht-es8316-*-spk-*-mic" */
++#endif
+ static char components_string[32]; /* = "cfg-spk:* cfg-mic:* */
+
+ static int byt_cht_es8316_suspend(struct snd_soc_card *card)
+@@ -578,10 +580,12 @@ static int snd_byt_cht_es8316_mc_probe(struct platform_device *pdev)
+ (quirk & BYT_CHT_ES8316_MONO_SPEAKER) ? "1" : "2",
+ mic_name[BYT_CHT_ES8316_MAP(quirk)]);
+ byt_cht_es8316_card.components = components_string;
++#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES)
+ snprintf(long_name, sizeof(long_name), "bytcht-es8316-%s-spk-%s-mic",
+ (quirk & BYT_CHT_ES8316_MONO_SPEAKER) ? "mono" : "stereo",
+ mic_name[BYT_CHT_ES8316_MAP(quirk)]);
+ byt_cht_es8316_card.long_name = long_name;
++#endif
+
+ /* register the soc card */
+ snd_soc_card_set_drvdata(&byt_cht_es8316_card, priv);
+diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
+index 7bc6d3cec94c..648fcc1d07b5 100644
+--- a/sound/soc/intel/boards/bytcr_rt5640.c
++++ b/sound/soc/intel/boards/bytcr_rt5640.c
+@@ -1082,7 +1082,9 @@ static struct snd_soc_dai_link byt_rt5640_dais[] = {
+ static char byt_rt5640_codec_name[SND_ACPI_I2C_ID_LEN];
+ static char byt_rt5640_codec_aif_name[12]; /* = "rt5640-aif[1|2]" */
+ static char byt_rt5640_cpu_dai_name[10]; /* = "ssp[0|2]-port" */
++#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES)
+ static char byt_rt5640_long_name[40]; /* = "bytcr-rt5640-*-spk-*-mic" */
++#endif
+ static char byt_rt5640_components[32]; /* = "cfg-spk:* cfg-mic:*" */
+
+ static int byt_rt5640_suspend(struct snd_soc_card *card)
+@@ -1311,12 +1313,14 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev)
+ (byt_rt5640_quirk & BYT_RT5640_MONO_SPEAKER) ? "1" : "2",
+ map_name[BYT_RT5640_MAP(byt_rt5640_quirk)]);
+ byt_rt5640_card.components = byt_rt5640_components;
++#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES)
+ snprintf(byt_rt5640_long_name, sizeof(byt_rt5640_long_name),
+ "bytcr-rt5640-%s-spk-%s-mic",
+ (byt_rt5640_quirk & BYT_RT5640_MONO_SPEAKER) ?
+ "mono" : "stereo",
+ map_name[BYT_RT5640_MAP(byt_rt5640_quirk)]);
+ byt_rt5640_card.long_name = byt_rt5640_long_name;
++#endif
+
+ /* override plaform name, if required */
+ platform_name = mach->mach_params.platform;
+diff --git a/sound/soc/intel/boards/bytcr_rt5651.c b/sound/soc/intel/boards/bytcr_rt5651.c
+index 80a5674ddb1b..c0d322a859f7 100644
+--- a/sound/soc/intel/boards/bytcr_rt5651.c
++++ b/sound/soc/intel/boards/bytcr_rt5651.c
+@@ -797,7 +797,9 @@ static struct snd_soc_dai_link byt_rt5651_dais[] = {
+ static char byt_rt5651_codec_name[SND_ACPI_I2C_ID_LEN];
+ static char byt_rt5651_codec_aif_name[12]; /* = "rt5651-aif[1|2]" */
+ static char byt_rt5651_cpu_dai_name[10]; /* = "ssp[0|2]-port" */
++#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES)
+ static char byt_rt5651_long_name[50]; /* = "bytcr-rt5651-*-spk-*-mic[-swapped-hp]" */
++#endif
+ static char byt_rt5651_components[50]; /* = "cfg-spk:* cfg-mic:*" */
+
+ static int byt_rt5651_suspend(struct snd_soc_card *card)
+@@ -1087,6 +1089,7 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
+ (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED) ?
+ " cfg-hp:lrswap" : "");
+ byt_rt5651_card.components = byt_rt5651_components;
++#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES)
+ snprintf(byt_rt5651_long_name, sizeof(byt_rt5651_long_name),
+ "bytcr-rt5651-%s-spk-%s-mic%s",
+ (byt_rt5651_quirk & BYT_RT5651_MONO_SPEAKER) ?
+@@ -1095,6 +1098,7 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
+ (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED) ?
+ "-hp-swapped" : "");
+ byt_rt5651_card.long_name = byt_rt5651_long_name;
++#endif
+
+ /* override plaform name, if required */
+ platform_name = mach->mach_params.platform;
+--
+2.20.1
+
+
+From 9aa9b367e35494f2d02112ca440a78908f645a04 Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela <perex@perex.cz>
+Date: Fri, 22 Nov 2019 09:31:03 +0100
+Subject: [PATCH 4/4] ASoC: SOF - topology - do not change the link triger
+ order for old firmare
+
+This is patch for SOF v1.3 firmware. The DSP firmware will crash
+without this patch. The 1.4.1 firmare has this issue fixed.
+
+BugLink: https://github.com/thesofproject/sof/issues/2102
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+---
+ sound/soc/sof/topology.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
+index d82ab981e840..cbbbf96416ef 100644
+--- a/sound/soc/sof/topology.c
++++ b/sound/soc/sof/topology.c
+@@ -2971,6 +2971,7 @@ static int sof_link_load(struct snd_soc_component *scomp, int index,
+ struct snd_soc_tplg_private *private = &cfg->priv;
+ struct sof_ipc_dai_config config;
+ struct snd_soc_tplg_hw_config *hw_config;
++ struct sof_ipc_fw_version *v = &sdev->fw_ready.version;
+ int num_hw_configs;
+ int ret;
+ int i = 0;
+@@ -2988,9 +2989,12 @@ static int sof_link_load(struct snd_soc_component *scomp, int index,
+ if (!link->no_pcm) {
+ link->nonatomic = true;
+
+- /* set trigger order */
+- link->trigger[0] = SND_SOC_DPCM_TRIGGER_POST;
+- link->trigger[1] = SND_SOC_DPCM_TRIGGER_POST;
++ /* this causes DSP panic on firmware v1.3 */
++ if (SOF_ABI_VER(v->major, v->minor, v->micro) > SOF_ABI_VER(3, 7, 0)) {
++ /* set trigger order */
++ link->trigger[0] = SND_SOC_DPCM_TRIGGER_POST;
++ link->trigger[1] = SND_SOC_DPCM_TRIGGER_POST;
++ }
+
+ /* nothing more to do for FE dai links */
+ return 0;
+--
+2.20.1
+
diff --git a/configs/fedora/generic/arm/CONFIG_USB_EHCI_HCD b/configs/fedora/generic/arm/CONFIG_USB_EHCI_HCD
deleted file mode 100644
index a2df656e0..000000000
--- a/configs/fedora/generic/arm/CONFIG_USB_EHCI_HCD
+++ /dev/null
@@ -1 +0,0 @@
-CONFIG_USB_EHCI_HCD=m
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH
new file mode 100644
index 000000000..9d675be4d
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH
@@ -0,0 +1 @@
+CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH
new file mode 100644
index 000000000..324a48c5f
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH
@@ -0,0 +1 @@
+CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC
index e109ab25a..eb1b21982 100644
--- a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC
@@ -1 +1 @@
-CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y
+# CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC~ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC~
new file mode 100644
index 000000000..4181a1dd2
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC~
@@ -0,0 +1 @@
+CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=n
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH
new file mode 100644
index 000000000..c13580570
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH
@@ -0,0 +1,2 @@
+CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
+
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH~ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH~
new file mode 100644
index 000000000..bad67ba0e
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH~
@@ -0,0 +1 @@
+# CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH is not set
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH
new file mode 100644
index 000000000..c11d5fcea
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH
@@ -0,0 +1 @@
+CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES
new file mode 100644
index 000000000..1e007232f
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES
@@ -0,0 +1 @@
+CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT
new file mode 100644
index 000000000..fa0eee213
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT
new file mode 100644
index 000000000..893908b7d
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT
new file mode 100644
index 000000000..711e96855
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT
new file mode 100644
index 000000000..f2d98813b
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT
new file mode 100644
index 000000000..eca28b0b2
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT
new file mode 100644
index 000000000..efe93bc3e
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT
new file mode 100644
index 000000000..9b6b0ebe3
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1
new file mode 100644
index 000000000..3d5403951
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1
@@ -0,0 +1 @@
+# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1~ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1~
new file mode 100644
index 000000000..df1d44aef
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1~
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1=n
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC
new file mode 100644
index 000000000..32dfcb2bc
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC
new file mode 100644
index 000000000..432d9eb42
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_LINK b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_LINK
new file mode 100644
index 000000000..3d4aa71ce
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_HDA_LINK
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_HDA_LINK=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT
new file mode 100644
index 000000000..acd67f035
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL
index a8070bb58..93748db03 100644
--- a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL
@@ -1 +1 @@
-# CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set
+CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT
new file mode 100644
index 000000000..d25aaa73d
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT
new file mode 100644
index 000000000..aa1c7a699
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
diff --git a/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT
new file mode 100644
index 000000000..616056ec4
--- /dev/null
+++ b/configs/fedora/generic/x86/CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT
@@ -0,0 +1 @@
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
diff --git a/kernel-aarch64-debug-fedora.config b/kernel-aarch64-debug-fedora.config
index d6706a037..167933e16 100644
--- a/kernel-aarch64-debug-fedora.config
+++ b/kernel-aarch64-debug-fedora.config
@@ -6698,9 +6698,9 @@ CONFIG_USB_DWC3_ULPI=y
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_EG20T is not set
CONFIG_USB_EHCI_FSL=m
-CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_HCD_ORION=m
CONFIG_USB_EHCI_HCD_PLATFORM=m
+CONFIG_USB_EHCI_HCD=y
# CONFIG_USB_EHCI_MXC is not set
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TEGRA=m
diff --git a/kernel-aarch64-fedora.config b/kernel-aarch64-fedora.config
index 71568fc8a..0574ba3e3 100644
--- a/kernel-aarch64-fedora.config
+++ b/kernel-aarch64-fedora.config
@@ -6676,9 +6676,9 @@ CONFIG_USB_DWC3_ULPI=y
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_EG20T is not set
CONFIG_USB_EHCI_FSL=m
-CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_HCD_ORION=m
CONFIG_USB_EHCI_HCD_PLATFORM=m
+CONFIG_USB_EHCI_HCD=y
# CONFIG_USB_EHCI_MXC is not set
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TEGRA=m
diff --git a/kernel-armv7hl-debug-fedora.config b/kernel-armv7hl-debug-fedora.config
index 08c34c836..ca2ef034c 100644
--- a/kernel-armv7hl-debug-fedora.config
+++ b/kernel-armv7hl-debug-fedora.config
@@ -6949,11 +6949,11 @@ CONFIG_USB_DWC3_ULPI=y
# CONFIG_USB_EG20T is not set
CONFIG_USB_EHCI_EXYNOS=m
# CONFIG_USB_EHCI_FSL is not set
-CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_HCD_OMAP=m
CONFIG_USB_EHCI_HCD_ORION=m
CONFIG_USB_EHCI_HCD_PLATFORM=m
CONFIG_USB_EHCI_HCD_STI=m
+CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_MV=m
# CONFIG_USB_EHCI_MV_U2O is not set
CONFIG_USB_EHCI_MXC=m
diff --git a/kernel-armv7hl-fedora.config b/kernel-armv7hl-fedora.config
index 3440ad0a8..f00f13893 100644
--- a/kernel-armv7hl-fedora.config
+++ b/kernel-armv7hl-fedora.config
@@ -6928,11 +6928,11 @@ CONFIG_USB_DWC3_ULPI=y
# CONFIG_USB_EG20T is not set
CONFIG_USB_EHCI_EXYNOS=m
# CONFIG_USB_EHCI_FSL is not set
-CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_HCD_OMAP=m
CONFIG_USB_EHCI_HCD_ORION=m
CONFIG_USB_EHCI_HCD_PLATFORM=m
CONFIG_USB_EHCI_HCD_STI=m
+CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_MV=m
# CONFIG_USB_EHCI_MV_U2O is not set
CONFIG_USB_EHCI_MXC=m
diff --git a/kernel-armv7hl-lpae-debug-fedora.config b/kernel-armv7hl-lpae-debug-fedora.config
index 01e72756a..59de8d9c7 100644
--- a/kernel-armv7hl-lpae-debug-fedora.config
+++ b/kernel-armv7hl-lpae-debug-fedora.config
@@ -6618,9 +6618,9 @@ CONFIG_USB_DWC3_ULPI=y
# CONFIG_USB_EG20T is not set
CONFIG_USB_EHCI_EXYNOS=m
# CONFIG_USB_EHCI_FSL is not set
-CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_HCD_ORION=m
CONFIG_USB_EHCI_HCD_PLATFORM=m
+CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TEGRA=m
CONFIG_USB_EHCI_TT_NEWSCHED=y
diff --git a/kernel-armv7hl-lpae-fedora.config b/kernel-armv7hl-lpae-fedora.config
index 093af1efa..c9454cd33 100644
--- a/kernel-armv7hl-lpae-fedora.config
+++ b/kernel-armv7hl-lpae-fedora.config
@@ -6597,9 +6597,9 @@ CONFIG_USB_DWC3_ULPI=y
# CONFIG_USB_EG20T is not set
CONFIG_USB_EHCI_EXYNOS=m
# CONFIG_USB_EHCI_FSL is not set
-CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_HCD_ORION=m
CONFIG_USB_EHCI_HCD_PLATFORM=m
+CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_TEGRA=m
CONFIG_USB_EHCI_TT_NEWSCHED=y
diff --git a/kernel-i686-debug-fedora.config b/kernel-i686-debug-fedora.config
index 8fb6ca2ff..c174b8623 100644
--- a/kernel-i686-debug-fedora.config
+++ b/kernel-i686-debug-fedora.config
@@ -5376,7 +5376,9 @@ CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
CONFIG_SND_SOC_INTEL_CML_H=m
+CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_CML_LP=m
+CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m
# CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH is not set
CONFIG_SND_SOC_INTEL_HASWELL=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
@@ -5389,11 +5391,14 @@ CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
-CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y
+# CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set
CONFIG_SND_SOC_INTEL_SKYLAKE=m
+CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
+CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
+CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
@@ -5432,13 +5437,28 @@ CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
CONFIG_SND_SOC_SOF_ACPI=m
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
# CONFIG_SND_SOC_SOF_DEBUG is not set
-# CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
+# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
+CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_LINK=y
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
# CONFIG_SND_SOC_SOF_NOCODEC is not set
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
# CONFIG_SND_SOC_SOF_OF is not set
CONFIG_SND_SOC_SOF_PCI=m
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_TOPLEVEL=y
CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_SSM2305 is not set
diff --git a/kernel-i686-fedora.config b/kernel-i686-fedora.config
index 987144b0b..e5c5bb988 100644
--- a/kernel-i686-fedora.config
+++ b/kernel-i686-fedora.config
@@ -5355,7 +5355,9 @@ CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
CONFIG_SND_SOC_INTEL_CML_H=m
+CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_CML_LP=m
+CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m
# CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH is not set
CONFIG_SND_SOC_INTEL_HASWELL=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
@@ -5368,11 +5370,14 @@ CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
-CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y
+# CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set
CONFIG_SND_SOC_INTEL_SKYLAKE=m
+CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
+CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
+CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
@@ -5411,13 +5416,28 @@ CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
CONFIG_SND_SOC_SOF_ACPI=m
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
# CONFIG_SND_SOC_SOF_DEBUG is not set
-# CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
+# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
+CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_LINK=y
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
# CONFIG_SND_SOC_SOF_NOCODEC is not set
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
# CONFIG_SND_SOC_SOF_OF is not set
CONFIG_SND_SOC_SOF_PCI=m
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_TOPLEVEL=y
CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_SSM2305 is not set
diff --git a/kernel-x86_64-debug-fedora.config b/kernel-x86_64-debug-fedora.config
index fb2a17a8f..0cf92751d 100644
--- a/kernel-x86_64-debug-fedora.config
+++ b/kernel-x86_64-debug-fedora.config
@@ -5427,7 +5427,9 @@ CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
CONFIG_SND_SOC_INTEL_CML_H=m
+CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_CML_LP=m
+CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m
# CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH is not set
CONFIG_SND_SOC_INTEL_HASWELL=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
@@ -5440,11 +5442,14 @@ CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
-CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y
+# CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set
CONFIG_SND_SOC_INTEL_SKYLAKE=m
+CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
+CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
+CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
@@ -5483,13 +5488,28 @@ CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
CONFIG_SND_SOC_SOF_ACPI=m
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
# CONFIG_SND_SOC_SOF_DEBUG is not set
-# CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
+# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
+CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_LINK=y
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
# CONFIG_SND_SOC_SOF_NOCODEC is not set
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
# CONFIG_SND_SOC_SOF_OF is not set
CONFIG_SND_SOC_SOF_PCI=m
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_TOPLEVEL=y
CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_SSM2305 is not set
diff --git a/kernel-x86_64-fedora.config b/kernel-x86_64-fedora.config
index e1c7dfd36..48513f24b 100644
--- a/kernel-x86_64-fedora.config
+++ b/kernel-x86_64-fedora.config
@@ -5406,7 +5406,9 @@ CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
CONFIG_SND_SOC_INTEL_CML_H=m
+CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_CML_LP=m
+CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m
# CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH is not set
CONFIG_SND_SOC_INTEL_HASWELL=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
@@ -5419,11 +5421,14 @@ CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
-CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y
+# CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC is not set
CONFIG_SND_SOC_INTEL_SKYLAKE=m
+CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
+CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y
+CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
CONFIG_SND_SOC=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SOC_MAX98088=m
@@ -5462,13 +5467,28 @@ CONFIG_SND_SOC_RT5660=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
CONFIG_SND_SOC_SOF_ACPI=m
+CONFIG_SND_SOC_SOF_APOLLOLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_CANNONLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COFFEELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_H_SUPPORT=y
+CONFIG_SND_SOC_SOF_COMETLAKE_LP_SUPPORT=y
# CONFIG_SND_SOC_SOF_DEBUG is not set
-# CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL is not set
+CONFIG_SND_SOC_SOF_ELKHARTLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_GEMINILAKE_SUPPORT=y
+# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
+CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC=y
+CONFIG_SND_SOC_SOF_HDA_LINK=y
+CONFIG_SND_SOC_SOF_ICELAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
+CONFIG_SND_SOC_SOF_JASPERLAKE_SUPPORT=y
+CONFIG_SND_SOC_SOF_MERRIFIELD_SUPPORT=y
# CONFIG_SND_SOC_SOF_NOCODEC is not set
# CONFIG_SND_SOC_SOF_NOCODEC_SUPPORT is not set
# CONFIG_SND_SOC_SOF_OF is not set
CONFIG_SND_SOC_SOF_PCI=m
# CONFIG_SND_SOC_SOF_STRICT_ABI_CHECKS is not set
+CONFIG_SND_SOC_SOF_TIGERLAKE_SUPPORT=y
CONFIG_SND_SOC_SOF_TOPLEVEL=y
CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_SSM2305 is not set
diff --git a/kernel.spec b/kernel.spec
index 1d5390275..374dc38e1 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -883,6 +883,16 @@ Patch535: 0001-libertas-fix-a-potential-NULL-pointer-dereference.patch
# rhbz 1769600
Patch536: powerpc-xive-skip-ioremap-of-ESB-pages-for-LSI-interrupts.patch
+# rhbz 1781762
+Patch537: 0001-bdev-Factor-out-bdev-revalidation-into-a-common-help.patch
+Patch538: 0002-bdev-Refresh-bdev-size-for-disks-without-partitionin.patch
+
+# ALSA code from v5.5 (Intel ASoC Sound Open Firmware driver support)
+Patch600: alsa-5.5.patch
+
+# ALSA code from v5.6 (Intel ASoC Sound Open Firmware driver support)
+Patch607: alsa-5.6.patch
+
# END OF PATCH DEFINITIONS
%endif
@@ -1751,6 +1761,9 @@ BuildKernel() {
mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/extra
mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/internal
mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/updates
+ # CONFIG_KERNEL_HEADER_TEST generates some extra files in the process of
+ # testing so just delete
+ find . -name *.h.s -delete
# first copy everything
cp --parents `find -type f -name "Makefile*" -o -name "Kconfig*"` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
cp Module.symvers $RPM_BUILD_ROOT/lib/modules/$KernelVer/build
@@ -2584,6 +2597,9 @@ fi
#
#
%changelog
+* Tue Dec 10 2019 Laura Abbott <labbott@redhat.com>
+- Fix for DVD reading (rhbz 1781762)
+
* Wed Dec 04 2019 Jeremy Cline <jcline@redhat.com> - 5.4.2-300
- Linux v5.4.2
6>n@Ԓ۾g#U_zB+ծ V:fE \57`1V+\< J36gVx&$o޵#y%^_WhwM'_Q5yu";~71D'E4Mc SZݙVCanIffR4pKNgYK25EcI#I:> HWQĥw90/6iډtx@,-y}浬毳}^f3f$_Q*cש1^ !:1Kūf?H?oʞ LF||-dz|3i!a谭&t2VW/]a&1;A5*ݦ||&NL9yڈ kzM3J[G d媛R41O5$,{'w F؉C/7lM a mcJJ{[ +q>6*;X3W Bg՛= ACdV|˹Qq36=Vq̑<yvΠ 1ڥk2Į;0 |LXK&q!k*u+eSoY}[$zvt7H7&ŹajtU/r#TW/L<=;d{ : -^oVe/uQjZxv<YR歯p,ƚ/ar`j?1~AA 5VM|U=J(,.${SC%޳P˫Ya͇Jg)w/6AncӌO&]J\If @5N :2uށ,Ʒ^BXڼ܈ڙF1g[QSEw0}mC:U _ WG\Vl)367Ghŗi*wHih dE<٫/ilϟo|8OŦ˙y9e LJ=n՜tCJtcBY>bb<.q cmg'Jf|ˇ'8&3"$y;[Kxb~$]4H"'?y+)džח[n]xؘKws ʣM #x 㕯anyqP'0SqGb,qHW`HG'[-۴!F_[ ̉k-lSͮ0#5եWf ω(; P)*:0 .ʒ)ll 䨚+T>/*moX&i[j=" ٠~LE !{N+#@t.>w|#u3fߣRv]F R) -,eb7э123PɅ@z~ Gc,дbS>cOC߶e1!k[Rx\i|Q,O.׿J^@  oJ3  ,_PѮA%wbG$+*ň'm"EȊwe^|t" NH0ڬܖSS`mPTZ$s)BQ8?32ża<5ͦ" h]hN\3^Pm:P-@_78:Uz4E@1km8)2;aM*uz2cC}^ɈR- SAjdC8Z Lr3I!;xhm,Х~&[pVDw*,&ѯN볞^GNs;94GD%dJm}0b9SdGO{Vfs¨d&\3RO Wls}j% $z%7"vd R|qUݘim8f,z߶37mb>Aj]{ּIYu`dS:|dGON4LY01y&O|ʹ76y)BiEFQ{q~x&I"dgw[?d.:Qg&v%'6f{ӻ?BcATlB/o:[l^wU`T7h`&1Nrجՙ.ң*a ~T F>?ɢGtet;>:!?qnj⃞|zM,  Y|3|%d$LYG`Nޡ1,+,-ϱd=*[ҧK> sƹCU~d2Q!>p RQւ~^u"Gm0Lͬa/4'\&dh{6qXOj=<myduʵn6|X lj340(0⇒ߏ ezЙh ĥ'fN=@j鑻H +9OԢ ){`5G ̧B 3+WB&!ƈ+ ]s ڧ&s; __I~Eۭ= %pf^_8(=Mq͟iM~_#]/Ge9eϝ]Q$;ܘq>;/HS| {G%Scjfmϩ \stHyZ$ȜFxY톳08AcrcKRX!73s#_&e<:5*TB/1 vp,N2A1NX8l#t*o< v&JeTCmPy6qC\/א(POүp Y(f<1rzO&;coռaXO6sQf팖Gtbh'n.i5#kKú y,gQ#gĘA iօ 3䘒K>Nv&"'};.^v %bH_O4/A1gq6o3.|Qbȑ"z[vg$7FNun#,V04>Ԏum  Kkql4>0bn h.rG-NXa}:9.g,,4m:3CEF>+ԲG\a>wrN{LnTb{P:w\-VW4۳̏,b3&l6u-{K~Q77ar_JCj[U+^t=6̵ }8tr} ¤HvOa TI%l|vI0b%m?Wz>ݎ/_iwg}NI2;V~ K|Qe8ZDb~'$=Jm\[-!bn^HK1[@3W M}YJn%FItK2Ck}!A&̽d><A{eU`%nrɸ?X`" [GR${q#K8E[Ɣ4MawS_y`hy ʺ Sحx.,L2JUh$K !kRJx~rBJb858ކW iPH` w8Jf}뻭 2G[0Y= NXI|| b5,)"6(V4<Ԕ ^_kgTP0&{o dQ_M$>bJՈSphYs[|T5^$@hTV:{[(slR%5` ,ix/iVC9+<\߯T]PuU[a6`mrRs<Ź(0& +Zn/!7*7Z[ צ'vk@ւSž2/x=.HIi_C10B];ժ4ZA^A!.OY|I$8N}„$wx6IP^b s zjC- "u`:rz9&!qD7OȳFUN6M_0 1f'ᆄ߬P.0zbՕ4?d8%4 @xPhi+C<ċgʎK+}Mh7-!c'>754ͫ JhVy ; J;eu>Uzh/kVla%T'79QKETyw7MtvGp4l5/ǻE.@ [srҲׂ+op!~hmbNָX+y库bfr ΍tƩiVeGo.#hhfO+Xiۮ^ӸLPY :cʟԶ3K/ȾS/fv*ţqh|PU+fÏA4epfX$'XqK쭠bΐz_" zC}xYqt|Uv45& VQO-=뿩u YypV~fQ^"Jy˼ic]md/bZ~5S4'ȄM?s% PCU ]O/o!%\JW\J~}n>URRВgF&tf 6LM7H3(mO&"JJ6Oti6"/+qVaFJf>$d>\]Zk^2_\͆Ax*Q N89jE!<-j ;Xy?420gݝi,![LHS+.cBQ?L*{A$̀ھj-*M0=~-7MfV6 2Uџݼ>u>U ,JeUa>x{ r,s[у %)V%`o~#1c1B"6XZPP݌ ,K|zrJ:ZHgRi`\-32u"ޑj=bZ;bxrgx9 U;1ƛIe+-qJ%yO}o0fw1yn8tsȝ{mJIQכ< D&/ "H \1ljRīT~^rL_#e}4]^! i{ gFrg1U$)T?kafKiV bddD7#:1Yq6~Pv3kߢrȍ=Kbxxڣ)vҵ?3gR;E7M)_טeJoQ qv )ZO<BFw=EҐFs}Id.ߴ-ΉM:iiρ~"]oZGQ2]Yzb_ڭ8aLxYe1.oY)sEJw^J: [i<ߨIqP޲K&JENf[/SN=aҙQ̐쨅ƳMHDv &;-u"O ev$@s%#2:iV5;뒃f$'&K+1@Ũ(ӝ @7$9"o̸Ei,%]hա]Y :4-M-]^{vjL3G >'Ygu0&\ 8iL[mO ]>"h2+tRqw Vw`*CȝϢ \^B/OSy) X21kwq ozzlD_byQPjl9Ӏr!9q7\{5T- @GN{er e胐_@W UG:P}ߓ鏫Vy&LMĸ0HT9 xKyg1^K͢O1QIꗨIJU*QW _2L>AShK+9lG$kP5p:Sͮv2kh rDXsp,N?0'?t n+)|ttG?IX tĆ!R9wZI[`A>{#a  d< Ca"Sl#JlW93 9d_g`sh%,n#aՓ`]Xi6?ܽ8R{kt "":WRK07 gɸ22kp}AMa/􇱈X*D!kC^ۆ2H%B#q J<AaG,v j\E]KX\Xyzi41 ['I_^\fp1R_K)MPDi,*eDMf[]%lU:=! D *w=9|{}fx&#{ϘK я0B}F xcBGzk- /8J hL}jXYr2\SB+- 7'΅tOsØdORCso -h\jdYK7o枞/Y,W@#0po@½N{6m lÄvT NJ[XS2yCpwx*|lU9_D[9~DSG<7?п&3/"ήRB`CHGO+bԜBz;U–l>9#-;s_O∽I=#RKL6jy_W;o-Ppa0R¹e*pTއ_=Op65lVY0UU]2Q[QیdcMj/9eg Fޔوk/njh嘦j3Ag?oB'0b蔦䑥?|]SfrD@1x,xFcNTxW7M׾\A7[?),1vB2HE)Z?'`G $Y6^&tbI0:Tzs{976RU08lֽ6f:ԖGwv2oZ%Jz%sA[F 7;bi:@0Ye CLGR pl,7Nr`;V\~?22JȟyΦ=;gG`|X~GU%hЀ)b$ Izz쿸Yjc/XC\0.z:>b$7-m xA/6Z,:DŽ[=J,RTF E-XɬJ=%5˩/;&JpD8$ &>JO핬`@[:)AmFK\SFbοs l*+LL' s9㋤ ߳l`&zmv=S `9<[) FwZEVX۱b^j!w. ICכa@c7E0pQsȟZX vZ- YJ5*`p3Dwԕ U!SWG1.-s:,?GIArFTU5355Vq%lwRHoq \ g%=vXЪJ{Ф8h)ݟ8T^]2zCdrƤ %~Bo'?^Хl"$Z }XIP].gŲ0|6G!1# g[qe@^Rv[=A;6 c9Q\2/΋ڝaf$wN2 աp\IK8~3@h*rad5R &!.)~ygih4Ԗ" FS>~ڧf>yxTH+] gErYڲ'!sM{њ9(Ҿ=us~7b~tTJo;< j/`2娀ZfWI(1*4 ~Z'gKs"LAV8ZSgBJbk6nWQܲ6Ot9 CL=}7lʫ$#XXRQ:䏕-D&}'`ވR'sUsA8ǍDՓJsc7UX:hE줍1"BJN8’0gܕ)$q ܀A^p%NVXIun@TRy9c}4uk?PI.V\+A?: l;'T:<(t̼_@[Kc@/ :Eu7!UP&YrUGyw_8OJ4ݘZo3{εwVe p݌. $1,r鵹߆%*&2Gj \Xl%M~*ʅC.Lqb—ئ7^(N1qWb0G: {F!0@{LہE e)PPgBxB]NɷwO qY}V7onvI,7-R[Ui5z~Ѿm`mX+UْvQg T_H ;`+"jS;(i`b'ȱ-&`QXj-(V4-n/W3;8iH ukߐ&R" e @sUS#J?<Z54ė(e뷚 jӇ*{QOY0Eި2Ѷ&^N&pT/~;5TG51Nn: 㡜Ctg3N [F=CK<RW35'NlOD/ITЕizΖ'x'$>@+SGb$U 0Gx ѝ3t;RDYJLx?UE5xL k.HV[4k>'H|+S>ujzow3{nE׌ҋFOjMwg?%J|MQP-as[`e!4)bjE6\MJ˓+Zͨd?rKsZ6ܲnC_{7vrWlf_ɦ#2 vz3(J/8b<8YsUy&vv3Z]ZH3_DE?L'ӟ סTZSzPPbNxo1P3SF}i>)*:Zb=ܺx/)ΊK+f'Qg05L L 94O,TLJ;|R('ƳVU%B'#~V݄ȢJg9_NE1MͅY_9Mc - {j6A*N{8{*`;oY]kگ F$ <7|M 6.Zl;$ݷw)oC j̝ˠسCƵ9L#бВ^2_:BDPyuqC=؋[!GİR')ФՃL;'Йݨk0ɀW3r># `1A^~OpҀY<7 - $}ҔIz%y)5 UU;/7 dA U|R \II6T a DiH[D{R?,zgɖeܖ1oD< 6iƣJv|YkM b2VK?A)$ ]4Oj4Z_2rdzrۨN #J"$Gadւx2z ACdF/HDq:d7ZZ$xD'!PB:uUO leanmeAh2z' Ŷ[qEQwдh[`R1pi~[Ydz_H r5xTzzfWJk`wͽVz#sb C5vnǷcKx7T+utGY^: E5F!aO EBuB硈-4C(_5J@_Ƹ 0 y+r]-$[[H|-go*/>^|t.h,u@#0R*Z>&.a"۸nj8Q oNʧrgIo* NA]W{y*^{<*ު&ù7@. %tNS|WߗktCZ+m(WǛ~˛ViNyvla[֡81J[ q+`Bἑ݈X~{:@ ,Xٰ)aP4qLč)^s|Г:Y:? Ƕ8gPꖑNLQOBft ^ʸkeClQK=rki*r&'Sjr7R^Yyvb? P@T3FJ9uk94 ,k9@^乓Wq]6Kъ`Sfϵ>W؊ׇ)9϶1?(2$Fƙlj>z$vK<|wP0I cDq gPgxۡ*WMihdW :$N" W#C)E kb4rIMHVj>NH;,Qs ?,A#q3<~~QVe{ꂺ.P!H{v0GD^<kYA)E 0c6 H8rRuÓ-}fB+Z0t).?YVypLF[jp%Ê/~RL)܁ȒA~\p3&?!e9S/ VN6(R{}#P 6N!!&c˘iuIb8rDGX0ˎ4xTDAD)k=0`5b g6͟n?0iSoEe("#Я@g+єFY=zHj|<&E/E"dxڦ}< ڢ7^O HU3 <{, ╩Ρ%Iefc巙C^ 6ᗍO?_0u'2L{)&UnT''Iƒx;S:΃ocV}|治#LLDF.PP#ځ!75}6uSjHz`6'NA:L#=wj7{Q>J(-i݆VAdJQj8cIpהu"0w5lr;[!RQC/"ҝwMFCIdf@za{1.sE;1$bp?ʏ /8v)#2I3tI-c@qs64Ç~E <˾/m2iW3Rh= bPR&zZ; E;>`KVb(:((%_u1H,7Ʈ;X чV7<,Uy]%ׁͺ9Nc0 \"ӨƸx<_ љ}Z0!",66[Нc?N;,c"?e=3Ɏ!O7xW+_4:&?rLN{7T.3{𰐗Cէn:&SH \J+@C4ُfR!4}SvU%i砭ѫIld.՛$;LLvHK%!gɋ/V Zpf~B 2ʳnc%!,? TU΄ہevLZ' '٥ݨOCE0hb6yJ{p&y6e#$LJ(KATf2ü$CrZHZ`5!G6p~o~Rp[{b 6N`4jPL S ]'g2ai_R\{E*YP 'ω$ѷY<<6B쏗ˆXaꄏW}57%ފAZl:'`NB?ǬP ˁ ! $̰p;%?YgIYJU֍`{d=.9eQr/ܻY7iBr& xh&L "'<nŪ;(JkʉXϢy>W|P^M? $[ٝz 1mqu8({o 7>@ =0p _VD%!!x4 2EB7S7Fk[s~%)^L> |b7.tvn_u[/dyB7SW@p+#VW?QD\ϣEDvQ")J?>"e:wՅi5#AR,N\N2߷'cR>&~x;PԥV)=ږ|ҋC jH Y{5^$YͶ.jU gUJy$9N_x!)a!m?*s9 TaZxyG3ȋmw//J++ Qk/5 RQ"5w8Qw&Er8ƑЋ>b1pʜARr\gۤ"@]=rp)SN1ӎ,Yۘ]1iUC)}JBLU[3T\.&q l+d`ECfS? ''1շDǐ?sYq/ν/Gcttӟ,/Edb{qdJEDŽbq^4!QC J%%G9&P妆HSof]ujOb/ZJ<< 9'bc@z@7W'9"tTj 5UD.856Yjck;Z)[ C5lV=';On/B {`e>< ~{:8l4# ~bQoےJs$9v•>UL!~ܩdkKxж''Eg& OHUF3Ldh$|ϧHSĩOkRgfٜ 6*@ `EΔ KKtq- l7aKXe,m'Sv{ hx#R,PcN Jgm\=zFO:3s(rV4_kQ19K}׭ñQp=t}Lx۹1&uc6rbahO]Ax귴b W'ȗz6 D/܄;])&aEDESJ>Ajܮz|hdY>BajIAL.;>Rd^}X><3sp4ڑk?7)ٳe)f)zߙ3[{5#)ZIkp^U% {dɷF cac԰ asL<:<Ɇ,s%_afd2L~cgt8z6_l52D8L#˗ m'n"͐ 4JLiwV) yB08U=$>/Xz!܎3JW PMA&/)ܶӿžB7C?ugIRQ<ݙ,A |_ur sx` xRGܲIN&j| XJfۼa X=<#cP>-CWzPlXD3\ֻ!1Yi!dy4QN2du$C5l8dTE\ƋpJl`5H>]R\Ԝyэ1U(嶧Ҕ̵)"BC }~ک Hu0Sq2TG^.=UCV,`%93 j,T)PQGW aB|]@%w 2 wm7:FYm' O_@T!,T+ %~yJwM> 31aa&'5b.W7fʗu$2q/l TedށVWo{ \$̂lA*o⾛iFX1wsn8{#f (Tj ,Wpy8!<(W뉙^@WImc+]YA@sjd' dPpEL<Jm$$#b&}+TH}y]z4DZVPy@BoBM݌nGmȋDQ̘=" 2BpR/ edj1JM3#<ē)~Yci:O.a0EUKKW\۵jk4P%§4׎mT$SXh"rwf)kAi/y1D"Oy0>ehOQ)u7"\N9P,2OR)!n9WӐFTL#=Ny{vo 2Kו'-P'&o^?cs8. ]HC~UpA.JRzE]H_ODhM: L\L~9DN'v[S-N]//my$e[3JDb(0}Yh;?7ZpFVO1|^}T)B9"0 1(='Ԩv YnL[5\Juwt5KyC<גAoƄ[ᕺalj9qw]܌(+>-UdÉ~4ZZ/_66Ӈ߅(Bc#M/-kB<(xD0wA>gܳeXƥQԏSK,T/iP-*ϡ"p]%%(SxRy-jԒ2"DsT"{Qbuv8͕}aacrm DJ1pͿ@wn1ىEFtG8v%Nj.W:іKŪσ)o"58BF(|ȹn8Ƹ\C׷ CqnUZKېNV`H=+ZF 7-l7+kxULQrl'FLz{pʛ|}}>J-ExQpt>Ej' 7=Y8%w"I{5[_ pppi,n730`ݱX-v$5'/qDQI.Cݢ&xͮbox-SWL)t8/9aY܎Umr^W4(и#lW^1p;%HgnsG5$Bf/WFvuSzp=gkр\@m6Coi%i'^Z+WsAOb "\٨efS햦ko5xNC[uj}O/|iN v!#Z?,EpݟU'oU i%Ѝ9q;~D-kcXi >T-|܎g\P:ƈm]9p[l%H(5Ѡ{sЩ__bwaK6X8kմ/Kی=3); U %6+ G9ގClCgB`v+LOb@guyLn ( c U+yͭ#skCwRqlϔjM=m9T=ai:5g+OE!kiGOxo^Q*taCW:҂v--y[M Ř"~1?XobyF|U폞l?#TX1( 231@5 } &K)z)m-E޸3ˠ U?5(0 g J*#>Ab\Ů̠l+?rDFX^w{$r;=3.ciVyr_!| FDfEm fVέǎFT^`{ PZG$Q\4-[Ҵb*Olc HCQ"fX4ߝYd ۘ n*]W.)?;dAᗕ6)9NWdֱ_8jF|޳ 1f\%\X4TOr0{sV%bpg ̐MT+bf2쫅iIJ_PFfIdyAr=uٖSYnzvXp+Ao7*n[9B+Q .90Ctׅ,%$ [vAP CCr lXGf4) |gNv甕ՖAl1<6A\͏ot}amOQ)#0_-Z C;(܏}Ch@`OQW/y>+2/}{ʋ* (dQ#5@-xJz"U2wcQ~=V{(Ju9 UYX̔x_m&z7\)r4m frc }IP8w( vmDt#Kofʃ5.aEgde࿘:kϜy7͸˂уkwDdjBܒkN|Fb]Qoovtk(yxvT%cP & Ԕ9La#H'}%.{a4Zo_%, a$uD8l!T9̾va9>wjywTH}5y15&r *^T:i}Q Pfi/ViPN@䓢//-¹Mz%h89r=)Ȩk | BH\a %%j\`@wTAvtQ"Ts4'K\a~=nx{'ZO 塲 JU`oS齽Yau7A"pUvgJ_| ]k9U2 CfD3  *:&]F9oO0 m/1_F8/b6Qgn6`uETMl蝳ܣi-iB۹ B ~{uQ^;#bx{ ^|Jiv6܏M}hu!#u}kG9Ǝj I3X-Z9zɤRF׏+.4I}B7iNkV f 3 Go\di%"n\ Y+fUb [xh!ЍN]9;w׽L`s~X2lբ[+?U)2bbQ!Ezzuz=$-KZ'Q~Hz+}8HG_.ʢ@#}Җ.-]݁f\#zߠ*UE("jGsИ:zb8hl0kX앓3nȄ:m)J,5Lߘ9翤:@F#QnAx߹66j K oDgdZ0(&׎as0]>XIƜPD%>JrƘ,2ǵsDQpuU!VfN|?ܯxEzXESk|%.\xMS !5ptWo;b}5&D]p%G>G;Xp<CC'*n8>z)G7KH!aSW,i MC63.i<8&Pm b پ 7ۉK{˶%(&=%,?15xEeՆNJ 4dDBg:TZSK_"A #Rzқ_bS6,QiS!79YYPx1E>&)49Ե[;@>YuNHʠ s0,'{қ#P-%u>q(BMxբ|E<['ML .(fA 'И r֔=S.B+M=jy[saGxQ\ҼXIԔ?04L֬ 1Rk> c8WY{Izv* 7Ex=0Pq+^<jUDtoMR2QTGJ| #ıkfT|k*^UkAF(tg.,ѻgMkjnvmHbj;VG#&)z^-/5gê Ӑ8YʙɾcԤ"=!݆fXhAPw<>#6=>5GGU_Ex>* ¿0 9h}*[>N+,"Ao^QҿY+)gp}{o:̪3 g̑>1T RWTQkG>z|Cȉ*CB|U8 BPA1|m?q/#̒[ f`M=x?iٺxd7Φ1kDoBFq,Sz@7ԴG6O/U\+PP2HAei_`@ .KA?9/At*V2MQF96"Jܔ"tE^`Ǚ>R}l^]yʁ5|pFy$^ۥRM]zcExbw?$v>y1*$y}תf[TCVSąH LB*95ܴΌ-Wmjp!+TN+5[ʼnTwq#ẽ׏ XhATv:5;T4HaO{&L^C[jFcc(НhZf+]G{ ʲ:(g:]@ H#&u%O>ឹ`3wg^Qny("+ 1 a[/28e۰, NT˧0}Fc9 uchR^V=i"{ z/~>02,[kLi[xI٠ gSLm% ۊb߻[osU\,EMΡwd=4HC$; ׃|rGkՒ_Op KAM.ag.b*44&~(tn[ٕo\c0vYIѹKpn<@W59 ('{:XD5SCBf& Qe؎>0M=+wAxuxѓ흒zW' ͠0"LR7;dm|,-/2,t}Bj|f~m8 v|·;#$PsODݷ2'ph0kD|wbԢz3?z¾#g2*ѽKNůꀬT98;XsxðYO{29Kew{(L4ŶJ*"8CAoznF8(,3#Yr(lI?A p9mWEItdԓX[_>o{tvn-:*@W)X&S#**C!ǨIg?QJ.o#$clrBTH>E$| F;wD_ܦ8ػi Y[]u_r9E% t}+Љ?C,FR";^yIt@͂8N%>ȦG!" cbzђ34 ٰ}=|%w@ -ld?3S܉J>I6Zyy )(=[26o m@#\͇mS,FS[U fьph:Xt.e M6n뢰ؐ4)qĀ 'pz!ѩ |3,Z!@o[6 ;T }<9L?>Ů9û+\KL/>7QhpP })'餒]L-dO59ʼn6No.] QraAΰ=4L#XGg zZxLp= _REAe5.~oqO)ӆ칶ւ:r5:`]gW˧<\:))Vx/x0GcRG{%jƊ/8쓷FRr Y4 rFlGiV99)aW9R0z@SWx0jZdϑ2 OxL\PpKbQkU ϹW@ݒ;nU(?v^exy dVȣ';`_>w b-Hr0(9iJ[;*AO[? nuT?< ml `mS/L.;ìMZ .θ|ָq |E$&S,B-oȜo3&j4bphG}Mv$Ki xC{z ~{4ʤLJ7ha"{nЇ _t<=!G"0d:탩~7mz7mYR&.d|\=d{&|>)2;CCyPoc:T{0fn?U/D2]H$^7f/qm 7=vcGd;Yx}FВex>5(׵ъ&%h8>ʐ̒+|.tvPdFJF}=;)X- =EwjW9X?,:ty\sȜݩ~}ZZ75rR@9möt@mhX;jL^V}Zyu2w DWP'@΀ѵ-5u*y}ȾUZ ՂMm$Oj5F\gy?.bRIֽe8 H[8仡&(xs>QiR6=0 8x&ST4\UQ-3>J}I j]&֜5𒠤hި؄ ެ ]h2^6/*4 R>&}^(Gr7suᠯtiOK1 {6d`L13 8'1ݤ!6QR'Ʈ~u<6?V]{5 mQ3^+!d̢^%fu^nm}eE; Z׹R\+sʃiC+irlN@ ڣ.5Eq{01:\1*YM0sc7"9a29h!z6n7Szq=s%( -|N|8s&TmbMxo.fZaK_or2ZcxW`wCbԽS"F[|aZiCO U%yvɩlV'`ԣZ -&#"K x Ysg$R` MVc U~ S dtZ\Th @n%8@R`4s5D[jgW:ƿi[`K|.u.;z;qZ=𳾊􌾞WӸec~5( [y7)Z@vB卋fB.G0H#OՔPz&MҨITdHP R7yiw7e9]0SKwrBmي!rwV>}_T=X.OGN$^lŵߠPNaM r~?qPeќHY?q|m D!{%u)?DOp8ێ׋ n;x{8S yqTP_ 3Sq& Q u;NSNsnPVyLc#l$ӄe Y+IXY!zOA^$ ~;'pyWpPt|;3dKWA]ԧY@5l֥L1|R2()"5X)4R=q0r" sD (cqa |bKOM,KЉ՟Wzr7+49]VqS;Y9~q/ a.)>`(2#$(˪_{rc>2JTINig ܠ8`"͔#eU]_)_OjxU!8r)B͌gٮƔlE#r'2dz|S㧌]:u =aUEth0?:k:74rDHʤFmVGI*q1eLiZPXY6y*BMc(T j>)aD o sTb^*F,OZŰ>!sв ]W RB8l8_[xSVw ZTԏBpĢDͻIH+!i:(3)y!A RvKì_bxY){or4ט;sq뵜\ʆcg(),5KqrWuyR+sf Qi?|WQ\J}8N;k~xf/*[K-NSɰ؆rqf;>kKYm;t͖rl?߾ͥeSCۃx[2`^wMƪ)%i2mppW:]٣I][aPM^ZF.RA Y=Yr1J$Er1b(a7PS].aOjHEc OZǡsWmΫ,${rhTckb0uy@Ug ǝ=oL<WJiN 0#I׽k:@*Rd 9\6Pi]ȧ>$p $lC}nNT') ҳ9µxl1&xjds[ AfC(9,s毘+BD]7*=ƛfZW;NIIЃs(D k,m 6o/FGsgkefL4Dsa>Pٹ<<0xk7BwB~@n$~%arV p$ 1;4.WϤ*y 6a @2"ɷI,e/~~[UU a(HkL[RS{'qwOqk1t VW&YUB$~6!щhLY3{6N>6C&sY[~qX$b>\cr@ |8ӆNCaLM |ll q*%O> j˥3YA-%vOiݎtWMnG8ESY˲˵vЛ-% $VEDסNR0( S9)@0uPov# 'fj%1|WA80y26l7ZZ>!⛿ҏY M_X|-_`" Ia'" pPrPp^vKj\޽tD.´_%suAgmVd@옱\4lҵ! `4t>:3pz'wQŪKx6r; 4bmZ3*g7̚\3"Βcl1lBj5MP|yom{7;zr3$aw/as$]"? 5oÕ }\^vmcuրK݉bJhءފ@q9U~ zs64s%Aj+Dw]Yy!k]lHfXYQ6RNq|QP3\Fc=V_g4Nvp4]j'|/m3V4wI .@AN_F`G& I^ع/h̓+(_( kz0+ŕ+ ӏ|3͠w#tUgW+^\ԙh/8`s L|*(pZ4N5kK܇Xrt}XfX.0U;lkq/9ea5MB5>If46~^&,FӣBpbzZf;F˚3k۵IY EE.]4ؘi$τ0`HN:È94#&ۺ9~]Č&i7&7@ '/JXϳַA43_P]YŤ/a_Z78;'cv"r}+ݟ6_VP~b +;VwlEt֨! ii$l|/ rԅIM,FɥWJ{.@/S$Cht7)FR_j,lMmps 0~V*ICt&Ťeda᝺N\>{ne`|e]1R?LuC3*92b*] p4Mn}Wm0Iq-xDєH~e&wmLHI OEq fҒ|673yhs^]f5vJ1'#p|>ӯM^d%C}qGnW<8`'2Ix+KNj%yix`;H) uoqx1U_g:h(M*D)}px!3oš2"?f;\AVouchFdJpc52< :_h(4c wf fwsWTHExn%._[ڈ (2#ɹ=d~sZVM-}/Ie$(Z.V[i:54;lzm0*wZ=ϭ}{`2Fkұn!NT%uAVA#fؘ҂d zULmP_쐘!F%jGEj@?J%]]= @eYKj^۷{h2 BjA:x)?W:n8cӪ.]b[()-swŽsM*D?O1 6ۡ‚jēZ*Yc,w)e_0`,7d (-E'^1L9؊5?I}S~`kmli~j̉ B.\N&X d%s B>G"+Ȝ%@O0#&d)5{&HȂ@84kY.^oF Sϛ|sHuo4#%G//jGv9 .+T0hJ(g+Ǜ^3adƝk!,h(ԗK'32Aԁ`>ס}i:@"Wfiq@ ~bj`n`),BA:3{@ȒU3"iO1p%D˝HJ1LKŲK;Pk?Sl=B(y 6^|u (!RY>7synj0!3W[S㚖`U3F$:77#.lf?gב#MS&Ӛ({zGз΋g&].~Lir2| ϒ[;$^p!T|}f#xH4ƣ hUcafl+'UČ=M\wLǚnL=.c7&@:Ay@FP%{wNDDpM0 㪒jȑ2%7GJyh5Ea})=+),}r zhҿ8`=^L h$P8<ՎQ0˦;TM~4#ϾURBo@Fyȸ>Iɚ#6\*3^EK84A\9 l xWTꖀ>[-xuz7p^`U6zոF Y:4Ro$5fx!l % ΣGJPjĦE)qAJgp~b*j LF_!L\͂{&ڪKsL(Q*I[&?Id!@=.瓒P \<#a5<߈KXMPIFzHAϧC w~!WuYPRPrѓJmux+݂adw#Ύ$%8kzN-rLU|O=,b69c)-),ŪK t~D `6r1{It܄@Hٓ9{CbGHMbJ)SZgoPXN͉6J:=@4 ylf PAFd CMH}B1x4_1d֐iʶ5'R3ұq 4)S  >i@silj`zp"4nc\؈ɉcRtTUk Ga>E:sjP[FoՖƤK{o7GOT'sSpIPDq3/Ymc, *zS ƁhKT7nqXrK#Őf2C6ԅ1{=}tx՘'ѠlVO'8|:iMGIԱ޳D<ES t\pֳO6S 7NEDOEA&oԺO)R%sakOm =ީ=)b&x{9ʸ/ۜ䖠 Fd+]şfeF鋶m!5mZǸg/EBM)qʥ;Z$F< P?:MM҇aHgFo68-VX:Rps=سm ƔU]m lH4>v|"اhSZ2mIH'33OMQƤЯ0ڠz]hesgwkٿ\Ckp6T1bR{'SIӊ3{];ͩʽD9&|, jƇ*Or>s_*>W ۿb^0fz璛8/itu™`O+_j@+WP_HqweQ\~~iiDLOKttN=SjZ&!,7~ zϛPpLKLH}WĠ\g}9zkeᾩÛ,8\9$rOqXubڕNܫ۽ST_4(!jE05]f <aAzЮtut 13v5/N]~@-gN̈|s kIŌמC]UOBA1^X8  ě-ҟvas&Ȫ_^!Д"5|dBdzg1qaQǠ~F)P^^.^7L!u}U&wbla`>/%,6m̆ a o)2_.<U;'MBP9?fdc>": |iUj d1rh]. ja/&HdR""Hg# 3D{ wGۛי .NW3QUP}T]k1`/~Va,rX3/nuJ^CB[30.Juʖ9UIZ1s1j Jt#-cUڹtE'3@ @{cj)6& 1fO7ʡKȡ|~)p! a(1 ^Rf$ 6Izpty ${l*(d812&SfF+5"0sl~hφE\^J,tYlyI/tĴ1XE1R#\?|n鎝7qe &;>1Eu0_rL&h 0_ @pDQSRF~ 2 MwPf/#:7omq!kyaĔ[o@2^'n-WoZmjfH+ϐ,0=+Ԇ Re<.`n;E&>2N=^6Ck;brhۆϒB{껲d?m7a|0kD ;O[Q)6 tt@XeT2&B8U[\ *zA{ kN%#B$_ՑvR1-ݻ/KDA <{d@ѣLi*i6}>;:z=sqthY˃LrX{0OK2# n51>Vnpĭ~+z3PCr) :v a{#<1\i>Gٺ~eW9.<1/p*8?jua\}1k%g _ qUSSdE+j諍n}cyh.|mRX2ww?¨A` Bxl..RZ]zS[Oxa(( @ueV~j N3:,h[/t31^\+Hݾհb䙠x_g~ץaD0. pཱWs&xbbdo.q,) Bcs11W5Wa.QkeBIJ~!ӄh-)>^z] $pN~  ku9ԴD[F(Y N !L;.hjYW%L]CKU] wGW% rs.0dXvnѕ!h0ra|hʡAu˭HчZBƫXLCU@\r]A!;YT>N1!-W(FnPx~MUZ|P=lj7zAҜl22c6k#O`{dJȔa(JG2/Z8³ ~ΌNOZO=uW Lc L~ LsdDisF?BQWh S+0nu5 {6YTYb p(Jsn~Ȱpu&&D)}1Z̹cs}YC2;V33 |oֹa%m?AG,2 ]cv- W_}@aSjUt3!ލO!jZPt%$^Z@)ͶP䚋' bkEXv@P(bOӫ1*i:w H-l[1wXÛ)5}qkF<Ȗ& yX"1vgLB. prs9;E[Y>Й(#. S+# ~ Ũl?N5eY|36[o7'[)\pz\u!=v:n2**Hѐ?\Y|&".K0M T /G!JO7I]yW|DޑI<*K,T8͹Zdcuϭm+^#3%W}3$XKp5]D?v?ٟc.,HnLlpo#NYTׄnf0!IMgVCɢ^ٱ}Ext{/k+nxi@2r)Qd}*R'i"zox?ɡ|sǹXqUnSQm!v,v `կq=RK$Qe[rlj˶ie&XBKu^Otb]X^$g3 I2Ucݙt8A*eik8Z* I IS{$=vPB|̩qc#ЋPݛ~-Ϧ#ǴZ&u :sbWc[HLBZ! [)wӣ7B)( ՗bڈhH'|;=o|Cg}LꅙqmHJ3 F>2v4;.BeS%,V c~i$Awު'i| $GZhdc,IɊ>*V:M7a(?7 kBN{@߳l3޸, )73i_?[°"HpIEQj5L^J ?O+ bQM *[ gz2e(LHk,,qI w8mw0.&/;g U.5psNZN8sv[cz?MIʥiݞn 'ʿa4]_2;"[;?t$[W5_wnmor 7eE>|0y=)mj\UHH MM':}aHKX`u.>[ǝafoT|+rmH A[rhw,c"k_QثA{Q.s֎i'hE Xxlb1e{$I<&R갔PiNJ48~֕uŠ!jVˎƫ;6]P %Zx|XszHG) t!>,$sVxqr|E\S;-֯£}$}kYjL>`9 sC:E8v!t҈<Ɍu1_Nr?gQ4bȗҤ\$W,\T fɢSԏ^pAT+>5+A}qr 5MZ4$^Q}t`A445k5oFv^Ixt2vBVB*eBS/'Jl~J@3$J$ !/ͿlL$2E]GAei.f*VbXV:?Mz:gz*| և{u'-fa>{2aԛ[53Y 'RF+ \Gu" ct@.+M;3w(f5(pf]Jh[% d0%vw,)?.JP'/P8$?K5Nޖb'! H\e3iK!RU0E)C:xT> 0 Je -Nֵٕ6xZ-Yš\SÂT.S@׏˰j1#gn\ P/4PXsj:ussrO b%u!c,k*LAʺn[Ҙhj]Xz>bF>ZsQɽG8G y= (!Ϻö~Ќﴄi{dyHbF)^| ."u)h9+tLt7ҫʢgJcUZ> CGyR[4"R+בImWH?MJ\a){pL= /D8LPqW2SOPVNkB@bczz0uN+P.Eq|,B C+2&ȜV3]Za^JOAQ#M#^#;)@GZ=)Ju25cD+Q>UfNK!{.Y U<7Jm߅:q21QtugahV5 UF*@of mF1\fK6X)EM rb\]$g`鹎W;1#="œoΧ6ۄd-r]Lf3qA)ލ! ǘXvt >@ڒ ]t؎(y{ izlFqw&MQw@+rCqȍ&*GN=.gbCp,r ]aQS8.0İrs<5/=$!>zsX7B3d; j-(Ur.bB'FJڧV%H,sҦ;$Yt}#ٞ? R`׵hرDULJ ³đRX(7lMP:i8q)J\<^Q *67QQͩ+~f*p)$lG*A攔gaz&]UBE:2Pvz.8ȷ?q  Ȅ{|+K_"ZlEnFjNrL56ǝL|-Sf&f}9NCܹKetmNrZvu= cU&o]|0f Mdf6ʯҴ%}iޓB&iJ׆q}"mVp/q=$ H%Rzqs F/i?}khiW+p<@zgF>}g໢I._r;bm"j,6^UF8DS+U5G첎(Z+~me 8j?(3keP1d{7l,$ j=_46gnX `: Dps#nnfRv0IUQ2<%cRx.R溄9/~{>_gw t#c2qUneMX(|ѤGA9t8\V2`ɨ-dž ~S~SG2ZRK; ioSͪO\3B RK SN|G!VXڷqu('@@HX*ܽ0GP@}~j)NJܝ%go/p1ʋʱ1USd9u**ψm\WZQLW 44kÏezcx 0 _=bsSid/2Е椙:]I7[/a_wR1i$U*C+qj#^ĭfX!!Z?֚Yg1a@A,M@!ݕOWz&p&0s5~pk4PY48|R|k&񴲌p (Zci jÒo̱/w(>T(y'y,cZ*f U; w$Kd )P*s]+ļ7YR M -8V ^F]W&l]!ʈ, ZH~E)W`8mٵ,.z4ʯT%{v ÖFj< 3vp@a}0ܝ|M̌C`ws.UL#gJ%00OQlr4v᲼E4aRy0a),F9>k t\_9! 7f>zL"<$P'wZ+ }lJ/>蒂>5+ QSp,wx(}ZwG5MibJ63#kNJlYA𺺨s\9w77 bXG9t};bpߝ?"2M|^J`~3: Fφ&0uU}6=>S L΢\mgnikV↿CփSLqa>?UDXhITSW-ӸByFHAds R-LS40ҧԫW*.3⌘s!p:iUx,<_vvj:.vȾl%|m:md?'Gg20JwU(䙄Na:o:'l.QF nu!VZ A-C݃Rv}|B,8g€8RNHyBŌ7<\v.}UN.י5.?z5,y]Z?f8ŁIJ=jm Y8 <*ItŎ  m2EA62_FV׽ܭH1\9zQ:PVt1PHs5_6*NΧ(ШwA/WHǻ0G87wѪy \,hpØ.Dǥ.6*b87/9XSo  M3X͂C4d$<Ϧw_YǣZtt{SVQ+[%T;8"tU$΋ΗJq{.V(a5Mwp?CL8"bx 6ܳ0=Js<>K Pz[^3=@Ie7Wo1"~ wm M>RB6 ?֯Uׁ `nI;k>†\\X{Ђt5ye6*= ?>זI!]%\Ӧ(XрoӶk&涚ˮwಙ8OX6{& S~cIgHK[`iwάʟ3}h@ȧIյChH5tQ#p3GXvB:tՙ[v±1W*6yRbjݡgS(Ə0V&lvuat)i(bJvm,aYk}Yk56#lk#Q<د;69niDEӺ wb0'\hYB q[c\k xiٻ}GN} yygdlQE=PVWYo/3ؿޔ̟ #e@| >kT;9;J1gx g'*MBI>/JTG\-K< :Qzs:yM"Dwo%=!r0AfdyƐʀ'ϴr]܁xT2=҉^=u λ!F)=ZuIw~> &m^k'f͔(蒾u-Rݹ!J:^^lpx.ig 2m /sɵŠھ`UᗞY΂N1&褤0TC/+EY BxhT/ 9m#2FNch9/<SmH5 5fGo8n*aνf X& $SI%ǃ(n bˍgF[ ^ (W^{~y|^F(Lg+>[6TYk.{d]W%׻g7G+rZP@fb33gp#E{V5 މ7C})JY$JשX\R&vG0STNub-R1uUV?S,ro8L_X_DF}?{JfkJOIʶL"#%|T4ӣR)"&yk#C.SZ`2nͨ^XvYΒr;P@)rqw p4*:du@ rL<3MJ> 7p-YK;hB9T`8tی_Hr2HkZrnoyJOe]4E T{ϯ\lٮq`o}9FLkkͲrƥFR PmՕw!@k_5`Fp^6(1#Qyfr} 0k ;uI.[EKC%mS;t kD\-|LjSP=T>4*6hT{6پ,FC,ցK"HEkLVhc#[~Mp6DQiO0n'+cnAW>@w72CJh(Z8aıQ0"ΫBxW^vr5| @?R$טPC]Q+I {JhH+FP]&;Y>GB[,-P=[,L/Csg 1nJ8 U4fh ]7fEX!ܰݐV=3YqS$q[pNokCsvc[!m0b;V68|='bSZ:xc+lǨ.!2b[tKk{.l6/T!4ߚa805IgQa~yo<9dD0AuD*`M3zê^,M!g)W- Գ andIӉ2;/bB=&0Dt-C)mFO@,Ik hMZe*󶯶Y0_<7jFsfeRd]) 6i%731?&o"I_]L%CgÃl1s 3!Q8a_zaq^g%d6hػE*%_>D[=p_S]JP[{,XEmN0 YpA&wqZE?t7wP]|mcnZ/Z%g٪,F׬tFt5^HS;A>U)1mZLP&Plmyq/W+ R>\[CN 9YI>4 ]gdpwwF|%ImaT_rIf$+-F5A&~<N6/gJdewO'cиD\1w$yu dKty_nYBlZc5_j&|ia T5)]4 ) ޠ@70El9nONBJ +!Md|AcVF+4FnF-FriAAqAa;G{e (dFr2i"Ҏ9=ȐYgȢ5<~PpϢBSl[/}lh+&9>sё̦T冪^@ t0h!CʈXYUmEbʟ=9Ev.\~.| 84 nwpZ 0]96yA)-\qG~zQ,NaXyN`L>}g i6" & /X,zY;܃nNTZ!#:C4\BDXX< 9^5ƨyB{PQhU#~1;jXPv[a_S.7vCow6P % : i"P7F &"P={DPx15z |@enH: S :_@E6\LAj`]Au+3^mKN5fۋkt'd i(Xt e|?Ȇ$Da0` Ib +?tݛFXVn=2JLh?v:vTn֟@i6a9{O# k? 51 $: vJ5@<4) S*͟^^A]Ռ'g-r씡Lo1{~灄K+Ll<aƵ[`HU*)5leYdULw8`=;-VLl 3xX&xEh_>矅{ z4(9EGqXc5<2H$733Kw 7sG=[~rDKY$;% AtY:=N{˺S!PotZ^U ,eq/;˴POk.ڀBGU (R - o(o7d%xpyyg={FU(,T,8NEYMو+] z1pKϙZr| ݥ)&XgDt:oZ JcQ$%!w&Zzp_W egeSbh<_q%s F:`]_2Ct=]orNW.NɴUa{U)&O8+«3:Bhm[}d*,dV/6SJXqHR[# %>?7<V2 s@rG,ci`XSD7l.&4ZUŀ[r[,-æRO:<}|t ܏AI"J3Fo4{e"XjT K7 V&ClB !"1 jA۽kO}`\iuOKe烕0/?n:S^SJ> C%Ҳo֤]M AYppQzXbMb 9M9"6VgȢ&j2DAdY͜-oeo^[$)(zy\ jv7}׼Ur_ ݥ~qɀ^B1iEB;:@lYB:E f CUۯVw՝t3Pֿ .In^v#bHTb˱x~S&vop?jb]j#u9P~ fUvʶ$3 .,]ƥD]sxQ)Wp{.\H@Y  H+d{Rɯ_ HI 8[IsH2^FزDAϏQBn\AQ/bo&LƆT&dz%/)C , s. ~Ux\̑TVR~aF,Q4G2 {%?ςx`H 7J59mF K7/Hey#{]QMyK;#@~pVu \[~NtuO|&}7qO_vm=@C%orSOĴ/M//"&(ѥ3#k/`y7c76a81a݄.x/c-M64v6Abr0+i|~H9 X1TtH~#Ohb[AsUj k*03ϯ eqC:WYP*2"5]ߖ=g1No!y[} S2rJ2/ˏA ӶQ ps&^RM=v0ytHa^-yC~PAk$*~zXh iٵ OćbJO42XTfUi3Lv!gJ )2x/flkhtF *e ]dT !D?!c#L鈻mz30\ֆrœtgq FÅє5<;6p4b+-uX:eSk{syj*}gd|BzU/njk/UXs0TOr$ьqtWNNYA=ZxdÅj_uPQQMD*8؉B|5*Лy58hEO/!pTe"=pcl̻XtM_*U_kzlJJcy*2Ұdk&e|>jtхM[K1@u;L\՜u >0@q}$.Mv":A0ijC{'yp$@jվ-ѣl2ĀKc ,k=MY#u횔RrWFQ =hu89ooʩ3k1[ _Kh,`T3a$'PmlaRWFKw/A 4g:Mޝ PG` ̦J>۔aiMտ:K wH |\ь@`(|]N̖i8NMyYA6?xpjĸ{X'5#Ҳh.ںY5LsqY`gWy?p['N"ǚA⎪( Sy!.1V,eQl|Tgy½W`ԠdcecnqSYz߳׶[4B[Wt̤ߥy%L(4ŗEKoym^C{ ;f.EDI; :H9B_ckF2|YV 4Pk~2p<`MTRƊ8%~Vd RV4|MKE0\A|R^ `TJK>xDStJOtv4IزZԁKV5+/!/`l+™N~"Fjt{lF)(ө^@Ɲ<ZE꘠qΖ&*kԡ$aOJ6㉄b묕u0iX5%bc1=b-_¥B* 9vOh,<:|,HSdueA!"R/-)HTeG~T8m>n󴎟)7 298 agGX ^>[(G,*tgK<D*:)qf>pEI_MO)*cdwM#潀lȜ?H\Б-9SQ! [+F i@96g.)ꮘ8VnDz*|mb'iyDIe }JVjHy 'huмGŽgyh^]ft=07%& 䧤OqNsؿA~sߤXȪbDlCOj %@{H O @_C0TAFi[yX #.HGNGrTjE0 .b-/% nKfϜ6 u_;Й뉲[&pޝ $Wiшlzv#}n7'fZfbR =>OVhūߨs#5Lo(;Q 4g̣-Nnwm\>یB#/(V ַ~#-8Fr<2Kmfǿ\ܪп>@ݜ6Y5>`r*h[z:y8=Hl}z?+Ԟ0ǿ AdrrHXBR'ڪ'\eu.@rշoʅن_Sp^ĤXԝL⧱֬T_E)r"utӹ, C⑫}$9!7/hUPG1:3˽Iȹ "+FD*@~#dTq i UPH5Fkc"'p$VG"aoT>B皒I [K,AZ\WY"jlY]Z|3uObY^wcv; abl_V/"j [|JL4a?{s6nWLJ?HwQRvKS;QMꖬ~A:RoD}0 @gd^o ,..+(MRk|)t3cV:]vQwE5n3DU#wS]}@gjEES6L,Ђr<1L/ b6`}n&XDؚEە^cA@є6/fg]I>G 9RY,bMh,k~CY_DeR:>|@^R UE|[) [$2xP':W|:|L ؕNْVYg}3l&tS#RinFKES'+@}I.juw~Oؤ+dvR5,7]$UVR !o0CeB]'"ֶtj/ҺڿW<,zHݯ.S M:=V da Y1 R Ԡ;kzr{ajXW(M[j]~6M̼Iiܝ* TK/C  -[il,kg &涹((C2&4'tLɛfAFflaiS LGq*^(Wޡno*P~Im+Zٹ_Zzm/K?d 58ἓI(gtv+mUCՈfFܨ9_R8kNGX' GϜ>P%Р=j-n&~)XݤX_Ў5.lnFϰ B ̈\\i00/\PñKA=D)vqR^(GiNh<۽dr[0nQY=[y> |e*̓tJhU}\Q^^ {VGH> "ŗIGV\<̢#TyY_sR]꼾Ճ8F7n7%2W:g'KEܝSd0& |g_(͓ƌDgәEbYeIjƬ:𓆀|(*k2S? &}s 4j2-5޶c^6"'f5Ԗd%9<]Y,L/RzPVzK~-x/6MVs ;|\7Rpe-Q X K mK_)Y*GbFuhK7I3i@OUNaK@Wf$s8 ("\]42S-%u4[ J ؿ5zxx&N?/M__hx@h3[%/=+CP4X? }fpx) PAvnW*q~UJje4OԳUϵfBa/.Z&1py֒!~+6C*o#߽*fJ4/-:AdB"]=b434'sk+c_v@Y _&ZHI9NF7`3rAT(gk6pimqM&r;=ē|ݸou6_{$D"X!f,zZ2 @.WD'Mѓk%~sDL2!^ vJEQ pGX8MaD.^6ED({Ƶq 4eRo5e(5-⤃)n"n5e m|ѧw~7+)Ȑ6$$\C"& KI˭}`0eMcV!Hyy̨ ԎǴ`eBv6 rA[l.;#AґՂ*vx+5*c!(OTʑo Q\u5Sa*1j9wq[ہbmP͘-Xow3 ղeZ&̋89d S.Odlp BKE0)F0dOݔ9@g-y a&Tt|Ql!:?Nj2 eW<`1vPܗLÎ,/1 >ǬhXsjEȜe-[iRpM%/xvdMy @Bw=K1sisZJ`'/ѐ_u gf Fn|p8 W-3My lGSS?VJ$e#}b\Ъ<Ӛ kUxw>) M=}Z22o Q68͔RM7`i?_anrv'EDqM۸e@(&rpJl)B\i5ANض{/ދdChxW,'/s[+"}$(DsE!0j ][ލIxn/ AEsT_(:JLۗ0A苤 OxW! QuaIQz kpL2̶2伯}Po?Hmm1]W?lS¸ڿIyӝ2_}@y_=j||{ ڸ ϴ+vSg@gד7pr%. tp8J5cQu}m|tc+6'~V-Jqb-l)ϜQ_ˈ2s$ۦ}wT%f2;Mvd*E "fbkDʤvFn^au:v"1>YGaI`4"@C7~kAT,="䂾)$ $::?àB"t-I\ݦs *W#,_^nGdҰ~ѓa!G !Aotuiֵtʲ G)w6qά{@$3%$#Bn (PJON#ͨqx $o% 6jl+#af$)[>'a0Wc`Uh5Vk n+"Mj /Gu>qj&p)N_Z 5sRvi([-^KCa|#5\@"֮c/)ykyX JkaNKD2A6E0G pHʆZM"Oe ~4qsGgnb$=p#=*`+a]ʣ@ƄrI"o}m'P<7@ON(=rεB“q3*$YyNxH%OOh㈐+WJ Λ3㢲Qƽhyض2Q1eT44q7".=! BT|i̝` Wb$Ĩ~6Ph)kJmi r{D]mҋIYxU}i v%9pfNoU|f`k׽"kK=s;s罤DSy/2:T-YQs[ߒa(pZ)Cܥq=)KqA]"dk ك噵b^k8EȄt$1=Gr3 8jn1~aۍz㳥 jݧKX@?ߋ3-ժ RYK=`=˲6L8A.̡J w'xQ[B:=֡Gm9͑9Z&(c+MR7d]@wS(ѡ<Ѽ2UՐK=s9sRX=}i ńB9YbPY5do*kwtIbe {V$DŽ/'(4,+KqhI m w6^N8 I[,΍Eݜ(+͗MeB!Oqh.?SY Q8dZ]Hz쏯`KR&4?wGVLX%uΠ=suDД&QإdP))=mBb)x%sEHӵ6^o>'%{6 V$BDjIUwqIӪ{VOТKpy=< +y mrC>Q%LMCŰ[No%[v@B`t }k 2fg>,kՑUvfX5iw.&t}2ߺ.;E|{DNRp!H0ԯ-%Ɠ.oɨs,| Ajsj=6ŏсmiڜ8"!* _srCS(톿_q&8z!D0)Ldq&*'Zǀ&ML1<re18]lƙe\rWQ\$E.<|n;|ʽ~.H vzdJk.Ep㮌rpLSprJ0AiQl?[=i"9nAPר>wՠL.n +,Jg&]­lA3LFŐ]WthT؅f-^i­*Y<pBF|R@!h !.(2~|Yfjjs#dZ')eJEQ?6a wx%s``Kؗ{8v1TRgCURjҙF102YY%Vhx)eCN;caZP=Q!%8y6ҶshE@nr<4Ѷ #JPŃŚ .ϓbEbBtnj'Mp:h%Sp*oxar[y;!]':My3t {bÑIsP?wQst%;/ԱK~CjrI ۱0DFZTN~+KظF{ `Jq`MCx:qq jZ#oգ[Ł%#v7(:809oM9pH08EOD$ŹZ3Xtr+kuꁉq9Z}/q2H׷餈FexMe6CȎ%p~(yD=3-n}MPz31cnQK'3@{tLѪXو=W{f;7,X%=]x(ؔD _ y]7W =T\tC7s8E??y0 E0^ 3LuXÀW.Hc?YRǦ`#$̕7jz2 6L' o saXWroObaϪ.J88꺫qFȓL@вM7LhOl.JØBMYFR"kYqQL열97Z-K Msi*m (:iA 5n;ZLS$0EU \#?~yuy: :"8ؚp:9-kʸ!kxTcAa<#VCг(nnAJ1r7[xvC@rn]mF~ΏHt2,L5S⏃*B~-=w?w:gZ#wŪ1%NaڝVhE_w[RhBF^O>7pZ Boc(h @ 5]) z,tCP0BVځ0!KCp3I3$B~$cNHp?g"j)ǤoKGȯÒ-+&C<-exK#G;^Rm.v3tV[9:/iٚzӇxw[o& KhV#G=Nixu%΋/m>l&asS1-O+穭O%_ F91A`7ƫوG B˺5WG6$H_QY/OFzW@s J[7z.T妯 1Mmj>Vf#5t̛D@\ c^e} Dҏg\Mrb6 !T ;s3]tF^]jc_Ι];7L ƕZ1^a.!.8)#C]l|>g y%W:`/4ȣAǦ n8it fAӥ Ʉ.((M;U:k3*WH]ڢuWaV3 {|4znZxDS~=4:`;n]b; TnM= )wF VXbȋb;D@ pĦ,%{څPA{ hwo@|AikU %slF._\+G55۶S.X9$5N<[U0(a|=sn(YKR5mJȃ5nΏu"\"6yב;X]A}C :vT`gZ&%4q%*6 qby4CI9r/#Xh:jqCq$xʜʽdgH@ ^|u8v9;31[-VT.fqC(-|+Brkw(8.LEO;]ĄPz&9UҵJzw7  kקigx%jUwzY+’Yj?ef& <EŽ6Hl=9 o}x(Ut0?^(/ <re(HT_qXq@"{违 e=P"'}^ղhssNvXl}bpmFh@_J˿=eKQ珘nP4O404qM~a)P&BQt'd *GKr0Rs]J<{RPwչ. tl [Ϗ"u4>@/ e~j7IHhg0[U=KSArg *+ڂ튥9E(;o07;[Wp>w5+NA;Ud2x2J+젽j<Ԭdh ?@e+A/?ށ_*0;p>z og ZFddX>_bl}\=+i 礏ahjZ2띲"w;$CKĄ^$_ ig{Y\ ü]`m[}QDUk2+&>% +q7pܦ?6EY1zCP'$pk?X:0ӯBh<ʪ~* 6I#/_?al%O(u{@K$2zdIԤl 4rt6#YCw|JkZR$G46]B-&/62P/0ګpRwEEQs>ݒnڰA,efrGkW/Ҧ(r'Kn}]Z55;aN3r!dҒ>˺kKwӕ̙~+ Ǝgp߭|- +J K}.Cƀ* yJ3j*[ڰt(<\cqJ]*jJާ_,}&0Rs X[}x(0€8) ZT$?g^<^G1(AҬZX|D(/gtӖ4^Cu5iGferk>K Z^p0gI2iy*c_ʓvD;K׮EJ4n% G@cٖ5sEv꒠stD$FEY4bFpds R(>"#q *n-\=9+5O~>iJ趇EiČWV7e؄pbU(9w9o,AwӐٸ6*@2+ݗ%G3S‡G8'+Z.vK")Cu4UY<-F:6Yl4]Sn `UBȃuvW>2?< xp!u7XLJz,o'"zO_,<}࢞eR!᫖x2Vz_"a`H,C@E ްT R$;k4+a\@m*^ԓ$B/; Sp_Wj* lvV6&X`l Xpy̽SƋ^LgCOS1E]̆vQRWPzf.e*<]Ztvł{OtVoAT뛐l0+Kw>1qFBhe;!inv&3CEzg{HTca,")AGԃ+wdBܞԘg!~o.'ਹH"H⎻YM˫o1+Jɕ&kW;^?IJBc o!~\N 3JK<^91ua|s%lՔmbtu`V$ 2"=WQϜjLC|1(So~yu^4..[ Bb+>ۢP'AxS`=5K` oj2T@5䢽KN(Yt- t$ƿHg0Q'˕*_ް eO)eY$8{eI6TA 'Z,g9`B_fܝ%/-GY"ZtǟN3xX ܪSԾ!Iqȷ 8rʛNˆ{/EL*LShV1+'117{du`%0 kv%Z#]'r/y2sìfD0zTH@l#Irn\gOah9Q"!滤Z;R\[!!΢ Gw#z3^S&Ox^B2 oZ" +?\"cgu<>A@L^g1t6.L~бTlQnjDmm(8PG2C)*iQclqLHFy`˄6(-isωnlPY `75vyՄ^+D.P:# OR !;a+}|cӵ͏otn ؼAQ\\}Dho (wKRna5o9 =/EES}h8Gg?絎,dcXH/hKkÓfDK@vGo) A8#K+wc-\9ƆV)yY^ ^􂌦ɞ)C-}dy-ۖ8?*WrJ{h6zRx)N}RǽڒK`=F:_gOd! 6=W+`?LS0'uА ,H1T ךݠGiiM+Oݾy"yGlwEp ԰,nf?_r?BRE4{hhYhZ,1G ?X'McKr#e^S j|Tٙ:;03~aGpLT~I8\gG'hWZdkdOamH0w[S5DZ ~M4ݓ>QOuA!WNKWS2 'q:7lrY~ bryGHJ2e Pq,/s0TI3yVf;wOiUJQ}"E~->ƪPIT6bRTlv9Hb" ]ll۶ f<x`v~g0i66Y&T8pI<bCEA3 %ps,;4&vFn&jys@q7f,Yj-Rv]6󧆜e@c9{O-~iC,a n.}.ln(W:0/Ɇv\6/>u+Έ&_}#lܤ6q;,_N cU:<,5/(,9WX }Cqu}(ֱ0SzcS*Y|޳%IKŢ~_$@K!feqRl »rvSƟo`=Bm΃CaƖGMRK .2ZOߍo`Xl"j׸u/Tn yT0D&H:(&au꾨b6KZmCl+SɑO`3ڏiۣ4{|{o^X2 b̑ Q\d0Lώ4k,q_ Bڌk+bFNǗn>SG K&ݑGmUٹka}gHȜ~.y䢡kCڔ..J_)@"FΨ9S֦F *}B.}Nm\A@YzȮt-s@$5 ]>E0ydR,L˾!IKj܏K޿=ϟl(x04`;7v[F,`{pfyHE[hV*LSjJTb {ѯnm^){*^SG̝(Dr+-cn0H)tO*3N;"wzy573[~>9Ҁc,*jlMt $>c^) H]@腺1e1z#&+XT7IA%"B2brO@|7/1p4<+ٻI"{JsGCJ5pΓ&JjMP.v(@pK{R4ÈXy{{zo{4^x~Vgb}wC$=RƂWЩ9%UuYrTuq/$ށ\ЦKpmAo.{<(SVy}a,l :]GQ<=5u"(T*Rx` @MQX}xg`mrmjj@#H܊}q_㭾-]gK_Ա85?ׯ"DefhY#8:?7R%/eEM$/ fYtC4଴Q!Dh.LK!$/ Z(]i߯뫑Kch;XgNNgqI1%Kel^ZuO_Ee8q}$n/l-)b'HMXݖրa -{DVDaf>6͈Q8֬k;8!hVj%b0e9\=;gcQr|i FѫDZĮ{ 'e A*y ?qDZdv7ڵ 8U,PhTtxe]d-'D ~Tq_ttEg(3U7bc\P]Ә @DA|{S5En\sgH))chbgS_>JZF.3*BU)4˓f$yvW3ks B7T2G6]ʹ1Y~APV)v!ՈWJ!ݜk.?iДA`9vM*o5gviSHnu +q_ ձe ?$.u;VK5[gc+m&],u$+60UgÛj;':t1rfOTcSz4'(W Q$(9" تx@]xq%lGС%.Fw!gi-^@Fb(lMq?.$8kBYVj,k_49^ªϡC? f%ah@\7Y]9bD_e 'I-?cZS9NĽn% ?[K#lXyzKx$jr [Zf `2簃4&rX3}@0@G?).s]yI("ثtJR0rTI,V^dyqw#.ZglԲm4-6D"˨ ftr2:7 xݶM)ʣ,{!麚!y3E߱Fۘ[ 's{mܥK$Ey_q~`Y:g]D.\ik^*R.AxuCS!A(\2^kJ4D)Y0H@:HˣQ̞;" 2F7utG]z f&NAE@iJ`J\ۊrD~(seH9fql~QIi0cP$ϛ,ߟVSfSpWၒӖ!V %XW>6a ipM\H!6uDǯT Oj2$WDse<->;P?!VS-i tE-y 6OKE:(T >mp##)NQ4݀xҴOup,r-\ޡ$n"˗L߄%3wҊLtvp=U0I8 YlT3F׾ф-}:ubP4W(&xi< ܵ~_*KQWzq"*&$/l,[ גHn7/#C5DDdA<"lbħѤns]Z5B-K-k{( 4$aϐ%= G,,ys5%N(Qy^Wd.}ٯƋghV1W }#nO&ONٛ{>#F YpNM o#C0v*cM! 0A?\=Aa:~K<1Ɉy*Q7-Cy..ʳ#a>f&붑iD7-MZj.|yڅ5țf#_5j*ӧV#c0i(T7z~MHucPO\@_IdWz]*”nԞB?\x*u˼xOISpsay0m04ߢw2OH}NX1s%Ʀ \:iWP)('g A9QE "IP#iND.vQ~V]wrɛ=JjVm js.#+ z \7}P?`,<5ps:&t Z;3T6$Dpns&$F\xw+_EʨuBFê/V!X"?ݗ$!>a.kx3F((Y)P?&m첍U麠0PJV47IԳʤSWR#ߵcpvoqM_7+ӤyL5LB.~ؒZrO@d16>X Ɔ ;;c6c$Hn[6x=.1q0la\Å ;l^cW)9n\s0|yUi`_77A^0B^%N&F}d@ 4F{`*): ZG2r7\P#%t8 S}$&r1*c2(E∞eX+Ght M[C_2xg~MgdxoEA}״>i{|\`+cӺ,Zh]sZ'd:<'929wy]E:)'{!]ozR #T Y%p;9-bȘNf1ktcOI!}(Ʒ06wO\8 EUD1#3ՐCwzd6.'||J7& J̧`X˄_Kv/ m-Oeu:1baI Y2t;W>\;4E^F<]3v\eXٮ"oц"]0d- ^\dm8ث \BDTċ"-浦(Rj@E5H>!lF}I)ޞw|D/4sN?'D*fJڧGYb8V75oɰ3#GJ'݊|܉ĦW|.{@өu2-ưtUd^wq+ B}#k(pհș&?,݆3("+SX 7h18LRS-@hc\C8pVGAy@f0xW4Dj@.@ey|ݞ6=Y $>A t˔0m\M?*(4wØǕ͂\ />LP\f`pX#8H_q(82bf\#ɜ5oWN5^x40 fEx=дx҇tQ f nK?qF1dY&" Cݺ-xa=A%?}m^G %ٖ|hFFjvnh )β{ X6tZ+va2EV[B͟TO[t@Gw9"!ݢZ,HL;u| cb`hT1Lzv߱6f:XԀZ2ߡJ  0f&aѢ,2DžŃp yc-J ̿ ԰m/b6_?虢},Y)u^7Qe؋̕_ X>K#%ٰky#.TtR{h.닁vT"da irіӚڿm~xX#$A&E~6|.Sx $I՜:nsVشa1ŊaCO,Ɲd\x,|=g[hYwe4BCXFlE9)FWk`Wʑ8 ]a(G2:E @{Fy #g76+ h_0+'Ea~ \5fu8Av^r-*Z _g`(叱)KcqK0ߐ Apʶ(iȗϰ00>i9x{p4 ](혞*oI8dUUL*v3Y4K\7nF"/sՕJsuɊۄ3?Q<ȳ>Ran+ٚdžՄ2%/; .%f0s},OQ:/כ&b;/MV2#aؼd]pX0ODoB tVEѩ=tgC70(#֯'R}D?$0(m(B%qi9^PyYǻ5.mO e'%hSĉ8Qz"`y{\ws,'|.D931Nd(yj#2OcB%fKEq,J0Db:fk@dEԲQfrޚ wr'ީѽ\§jrW.uhȳMduF9/u6@#$UN*溅i/R"yA8I0`DT{:q+Ȇ؊y8#!*:G|(p#8##MhKgZu](d E$%ihB?ؽn$芗`[8 Gt&w$$⯰RaIWi[9l/6n4.:ci/1VjJS&ĩ!|,M5rn)b^x`Vb ; cPݺt ߹j; :Geu @j4*N3]Ul~͏gG!+Nb/} u"CqGj'6uz^ЬG? z:CcI#,Kϴ{Gڎyw$eRȏԿ[q@Tϵ*zj6ǰCԥEÿ>S5,cr`yɶh8H Wi ^ն>C^~JC](K\;~sjXz~r0eTwO^+StKD2b\pAX$~Kvt@ZxXƎ,.zO7g4);H '85Z\[hDM2xsbʌxاe$K)Έԏeقfƀ3HXI81Rd=8D]+NӃ.)Bb(6dԌOD"~@Ͻdt9/%xI]Ѕ2t ,F{ZPAq7} ۵QhT:=^Fq-WU SxQ2i%*quDէG{C$* қu . LtS -]c~;'S eڻҢuR<@3.Mv3]|D[#Hr*XK.BfrxIMNaGvshh&;k ŀA +.3QFjKէl8^wʢȬTpCn [A؁M䖮@* ;dy>AJrX% )G5vvk.,=yU0y l3_JUP߼^-my^<.>67oc6y.gG?r;ؖ)2Ӿ,KA㬕P;^bmϮ|OC_[A>vV,k͐e쯐 ٧ll_pe:c!Wk:~ vccV|5ƑYAً'huΖM&`e *FYX,7C ;GM9NUi,l_7N-q,ywsbktpӛ+ZEt\y*M{O쉍{EHfsDDbFYhV~-$Rcc[iwxcN"@^u4#@OFz6:\zsk%cZҾoHћQ/u"fQ|#:\+y 9O7<0 y0x]ѻ ԛҔ8e~<&!(* NH,Lg^*ϺQǎD5 y*\A_ꚒF,h3yY( 5jW`i^dpn9n+ ҵ=soʠSF= [G|ǎ3' EY.8@W65J2o~I5zX]NE6Gar_BecN'2fEo;#B5BuLC3ŻV/Fu|BI !cHW(CfIqoY0o!\OM.n2Dz`Tȝo]ta~)WY;Lz޻58S, ?aO3u'PJs\ԡ(–nNՎ5LcGc-D._K5"Y<+|.OM:)}a#x, HpOuK,I 7/2FWPbS=I,D3o;=G݆ .skW˪"/:+LHK 6zWrlҦ]ٝaI_(RdAhJ8[DGDjzڦtȵ3+{CyN{˫1æ&7λDӎ:,6`LTjL`~@ٗЩC'HϬ+vnBQ>GaƑРy̤vU $D$N槆-6?W +~Z6K2@^n9|3E6}|WdPOSp$F|/ni7yD] ,)Zs7,*?ËY{)C:.IN$K ?*e=]WߔA"-Ϝ~z]ZBx b$n6+ϋMoE\cY툠[Ρ2Z >? 0TJkr35680-ng{$$m^^72s62u1P1揝%c>6q*nQ~(a]>U*> l`` 6eqEVk1&]?]{l1)Z@Iɹf؇_<>^;"qES`,9 Jx0 ձ/S梊c1|gGU1!̃v:vaK61^;/>(^MXo aMLD+׀r砮w)UHE3Bol6>p % ܺK>k V/q~_W2k3fTwwJc/ &iɣ@P(.""⑂ͱ;V 5mvV3즢QK1LBDM4_[~SnV"=;9@.1~\ۨ3"z(Υ87N;k >Թ)g-o$T^᳌H&|GȼozƆF.2Qf;-?0բ^KnYC?} M95YġOÿږɇȦk a~ͅ@n"L+/rtyztK Wu ‘3\AX?K-cqli'|Kh3IIymS硞-fpm4*| 3)Dң]M+me |ڹFA!$cŔE{M{Aw~b^v-pxQ42%r`&.2'ЂU17"Ɵxwrt%J)ϭiUg''"w+t(pEć4f R$cy*+eKk#ԐFGwJtaD_xE jYJ'IPx\Cڻ,O۾elCȞG#/pe)~8(Āb?b 厢2j 0,fYҍ]SYå^Up몟9BtG)"], Jc$R^e=4\G Վm#ųRr ) LB7*hU:JMBBYIU]EzWrCL a `) bAD)+D:]A52dΘ1L7|X(JW X+*?w(YxݹbB ,jज़Rw$Hqܣ|p5J6bfP8Ҽƒ?e/Z2ɿYYs!NvdRv-xd6fϖe!(wbJ"%Tŧ t~3c2$ '-4#| .{iD@DTH<;R_UI v+%M/sLW9`@pu=tyT+ZW7883U.LǓj}"sNd.Ðoect8?W8Z| AKd!đ?`Kt"lNhh;T\?sz,)r̕I۝x 4`“u3lR8!b>ǘH].gA|>i|@,9zɡtY.XffU6iKDBPӡR0z|xbyR4s̃)(V9A2mPA&5 MUUxxSP0{N mMqƵ? 6SC;'s>#w[@fgpB&d]iB{,pbq-QV cpHu:o7֡Ζz5 )\?AY=UVv"T$Y;5- ||/q^n!uķ:er{&$g;H~}c<& ')mk IH!r|o(T^E6aD-Լ+ rA׻TpY}Ż4,PNw0k*ٲ{ʼnl QY-4l2U0 nX8?zcΌ'#Y?M,[ME%$fԻB4SNʊpVkKRI׻MaOAe'?oydԆG ,j}o}Us!5` {1JPY҈8]1cP "تN3Z7IM g>^ESٓ vSwf-$JD{]s u׹qUϔFdB4ER 6瘭i[yÌZv^\,d'߿ 1&#RR0d,\ UU~7țq{g:LZ`IehZŔߪ=fΊI:Lz&>ӝ8 {HTqYF!Js 7Sd;9. Jd*w:! 첷AO6{6=r3]#]6^+PAgOrvc_@=nM:O^=(Sd/RA(iPE]2{k*B[=*ubx)0jd4L-dL P`{sܗ35 =ЪHQG/>!8<.4)uq֨]pq*c{e2s1NI(8'd|CBIWQfbM -c,F\܀"}xDk7ר GaclC1x7OjzKAH61ϼ-R'KYϮ:jJ@'۟Lu~\$0nęHbtfLɪg :Y׮;SϋAgE0qXcP^ 9uEHI&`'v\ﲄ-FJRǙCea/c*!)%0A\]B:"r&#ѠN^ D#d/Y~) , U )'yz%GbGۈ]cl%t h#YO[pYaNagKKL|&.mi ΀wOKODi6~gY> FoBh w͈8w 6=7v;[py}Vw, 0:$iTo/ Y s$ fbe?NN%U%orJVAVnA 7HG/'wG5=quKyp7'(]!(H#twM/OU70Rl"J۠#Š#{!&/Wv/ČnN |Բ+Y@"mqs]?XEe- R;G z jĽ>D]0?@$ ÿ́>U} ʼFW% 67љojJjo$5ÜU -G̵ C2DAPP *lFK䔂L%&̿YlJ;Ttq{*?d_=p7 ȕr&HBh^n/1] IL15{{ 0N`<ط@6g}W:3縅,M֖DaEX-SvHtXY8tqjaq($ּ&3:&y*7c\)do憒7"@||Stp: =va NF$^>Ίk7݃J#tA{?Uer²QB5%s|hQKRRhLeŖTG,h:$JշzPmlKb֑@`a:DoGqnT? T-S8}M똢 8K2O:ǟ1-`'Uk(![\uI\CAs]CM\޴7õt nM3}hEawѡ#< (R"SG9!> k6ϙ@} ,KЏt{Q`VPVwSx)P‹ MAE[S1Iv3PʍtDSg\gH W)6 ۊaFrQXncG~Ac2`Do޼u_OL'bd hJtb n]!"5V gn*)͂[430|0oO^T$O]A+{8$[K.m8VL u-Mnd0 oA6R 1Sb"AQ9:f'-\*-I2hp  ! f;};a7G9 v8u"^>r eҰX'Kl |M$_B)7yva_u!,C&==켯=)?rs^0+q;8M;üs)S02ׯEM׺x)`KwRq۰Y FԱSw_i[1VOօUHwtSo1.aQ@܇[ ׋ch]MߍW>xjQ/OIA1=#-78 :J$:MϘ~W3 /2b|Os8{ϯZ߰LШ* E!?7yJ80w+Ýc_AC};_ucH FM^[){-ڒf9Z&Z^BJ%$ ?/3|l^Ȑ`\ѨEv/n4Yj;T8+2`7*OE7> *O_(i<.ypC]&70[JhWqw.'z>kѾubͤf)I`=h#)=~3~]̝v,3ěڮQ(lTN8H|!1&FOۛr[op2;W c@Qjæ99 /9fYyLS{;&j0Lk.K6(tʛ.Jg&4JQ6սWx?Kd@Sl*? O "5$a_"灵A~xǃj;'}Hvbo3 DG[HʡN>5Y/~sRuY]/d2qWKt\Q"P.&o"{m{ɑL} fVƀȂ9 ~4䒶|jkƞ! F{Xq$!*ޤoqX8tiX0{s΀icb[Ja4.~34üԱe'c+r1flDa@:"&ȿPh o+-<:c+;:)$n5qLAnߌޠwLW<T@C - Z_A%*Gi%S7a萊R rH,.TPDD)=ocw8$RS)Y8 [TYdžխYŰTDJ ?Ŧp-9$h zFU|LBֵ0)[1~uͼc?tM|x =:Zaw"@rss."Wo|6;P27ïȠ"X]%r*96cGd3fEr<:a#_ K HyikǫH /Wqt$KwkJ9vFОh̩ydN^%W-%}m>,X|z굅' ?qI_POԤPyu/gVUK./!Y7V24p%}S㯥a| ם_5Ce_yLTV@rnÌ5*ZuoJEIx={C藺Ύ5Y\T#$;zXS{G)ی&JsBoWvVHZQm;GmxݏaVSDA`%R诐?$J&P_r kTĠt+?&B+{ ^R~4rVfBat* (,[^1$X Eαi֠v` N 4P0 ݕkOiSW&J.1zθ+ׅYC$HfJԂv8 zYli=PkKE9Ý9a/M۱[%bYgvKS ryR4%*كsT}}6DFσ jwk+Rۭu0/ JHejשSmZ7sOq6ʔ4 aCRƏ- 5}iu\?ɠH*peN!(fIm m ؕ k)t 3mj3Y1ʫ¿9YhQaoڋ*yݫ9eҊ:FrhPASKH}2B{,aks Ѕ ENz yN36ԟSt OCygu="9^& `r,hƓΠj^{at/Q P<뛠)HjKM쐻?'}oͮFkݭ *} 8~ [KCft}.'!Q7lj dYtl=UIE|KHI)~6FweN3,n䉴#Py*e Nj@þԜ\l^6ML/犼;Wekvm3O}:~ֳ"BlƵt)NqoUFvn KNrB<]0h[ѕr 9yvVj[` ޢ) bKuŕ=qD]s9!AHw ҼTR`1˕mrllJ_#B3S { ?eg<|,*nyot "5U&:Ԉ؟k$CbgXmCj=\u5C?&ruS7cSIz4E2 ԱOYa.}JXP˕\CB_=8T]Pnz4gb>:'kdzԷ8s+Fb𱪫}–B kwIEG-T@nJ*=1EbB(rdØM6Z_ҝ':Q׌]6 `MyqcЬM']Ew0[á}]C.X%/ENvG-0t+Huس6{@50/wf ¿X-.Z2Fx)jhh#IcU?!ё&Pqqy&ػ` #Pw͎?h롈d. 'Ók*}syҗzmVCNWx0eYALCAkw=1ފ9݈|!ϙ_/ 1.mŒ8e0|Ӡ2M" :kXW8=;6"U%5=b|۸(o{٥ R֤qͳ|Yb֩Nm;$ f&ݕK#Z\5բ4]pp ldWH?mz+'|4ɼtK Y0l{c./F<.I?}w5E9ML^Cg1UMjބVr+I}Q26t3*:__#AP1D>Xľ2!0 xG7PhojC[=؂@l['\O@z.ja BR]:MjWgZ<,CC# W|ހ,륃u]n01$-ԋƒy.Q8g ~Lץvh ޿ܮF KK,o[.L;S,"Z3JqYU2^ԨyU՘9$2g՞15a#|л[PCD YrV;[UUޛlDyЎ?0TǦ+:4o1)&+B4:4J Ř2I3RG"/Pb|kқE:Og;h]pMÞ?($S, 捽Bp8-{$'tʳKN@+TIf䬉F4~pqg `NE0qq\QyicfZLL#JuwSeRD-DuFc铧onG>Hz]V<1+p_m4EU/x> UyO3T^k󏝈-:ߵC2txOMX<`V yQ;NIPِ=yLj҄+dT,I@[G.<`HjWzh'1/EvS <[&vk T#0A-&X޿YY7*GMNlm^5-´&%{SZŠ 3ǧJ޺in̴֟w-*1#~T)+$ T[#/w ZO>,] 4G7rHy =T|ͬAn.>Z 2,J;r5*CWHtaSvc`0yJ$ b `[*#dt%eƳy=Rib&eRvel+ȩYFg35`x,19JDөx4GlC-\Dk8WcфaOl Y -^tJyri,8ϜzNSX(KK@Ѣ#q,[\cM*.x`~Ƥs딺bٓF>-DM %$&7WwM;aY49O"j60T'eg@ScE44|f'&ԳJ@k)8j1iv(rƽcϿ =qo5D+s i|2մQӧR n DMekFwt3̓TT|`5(8 -}?wMݳ2nP], bGhz[$ƌhU}DZ`Ҏ}ߝK\/ zfwnljind*n8xݖR8ˆ&E8ziiZlrn`wAt F? olsy$g'DO Ƿz&o;/a(KdtH %/+G<) i{R~!URO1Cy&" d=&]؛!dT ^M+ƒi-st+YE3? H~[m~6Bͣ4{M.p08n:%.ȓTTf\;;؍'|Q[6bW ^y=Aa0-hX +j`~р+2ׇ8vvTTGh] <ZP".Mf,Yes& *G2Ƹ/qkl$8B23Xh/Gy-zԫo5VN8198pt _n_F8ϡW_x7Gb9 gVz'1yReVcpw{w{[Gk"Z E cX#PA-9cJG)8׮I'KjW t&Yv )40A04N;rDKDb7cG+ Os}]&l=#&I@ޘ5 ̞Sx?L~YSN} 3죣w=4K=% B}<;)E߸@=UsL._B5 JP(y{ZBq_eRJ0m}C?zE(3 dI<ǔHT3@!$,S0^)sE:9GV3F8f BF3%iط7X 2ۀF+RϞ_-x.@n+k>X̌yȊdm6f-lڠM)\` ^kokQLwyaly#zΙ*/yM64j1J,4yCЎҎÉde>WFTa_}^ $r'z<㚻iTEcMMȇ}e%eK&-$o(4- } 4@#,GۼjǠfsP[CJc%>',OyҜw{W?c'kN5:>"֎F9tkj)Rssdf,g66/UكSi_؜ȑٶ4@D mvTC1>]#Ӷ+9]s Å=))9vJhB~D{ۥ@0ɏZ͏Ÿ ^5+ٚ~qF b[&ļRŊߏGI+˧ni& ԺNALT/ҝ!znILʫLxnZsUCR-5iUGf;#vB5K}m3%v߳=XA#幗|;Pn۵@n-z&~'pLALUT l[{utP`5YV#FvgcK i5e>T +4_iLYzgH3&{:beqCo1wv]~uO[l~؁vPUo#G#[ۦXpF .Jez%5D3Lp6R9>;iQJ/ eÍ|e8Z(6}iI*adi1sh&:F84-tFAl"J Fǒ֩50/Qaeߠ_D" ؅Uwo%|H9C,~Dإ!sA9zz=Pkt47kL`Qk4H.,]KPz#Z(~ֱG<9-w3;.%=V X5*M? !FTwoȷڸbMP։l>D IkS{#ZMA;GǥxD"%r9[Ⱥ2:؄f-bs)G]sMgtxΕ{ G; 8A؂G I zGx:،ԷP ]=#ySfhJkzz#’O>Lbޑy4gl9hS&C: iRG '\R 8'$d:ئ:xM䏠mxiL}4_eӡt+马 84f$&r*Vat3`GЃ.;(/%؃%)$5[:y͛+-XV֕( uoi2gIl6"GLCȫ))Ŵ[ \KRcdmcDvd4xFE衢 J$5RZ`yV ʟVATnéA<'=S@"UPoܓwUawhfƾ2Pb f)ivvvb*V[cx'oSw >,JoÎ-1)jF,Ă}a\޾~Wwxs2sm.3me%_* <zUFI$.=Ac$&|̖VۋδwQtð!n2j:Ƞ9@gց_ ϔ/Z 㟽3y؊U9}n=N5 2!ޡ]D9 )UfҹؚF𙊑_hOp`xSDŽJ㴫t|xs|Zoi,[wo6|fk" T(K)( u97+zrl4uR͟^LWyVZ7P$(xv}YZ\Ѥ̄ ~y#D 0U~:vGE廜 Qࢶq8(m쌒?/^C}-sO&%,$MW\ŰSQ]k?u,5 mL8 KlJ5K"goY[LK_w ٵɿSaBz 4˔4̹&5lGz'~7;k. JXF̘1e24G""5FFy[E&,5W!\L^,{{i)CP;l! ڕGR, jo6k {/j-JYt5Ow ldGԍٱѿ09/À'Rj>gi'GB9 -9/wI3ސ*$gɥ'hmtYRF-a <#:#F:JU!.$'m79EsDFZzW$csbÆ^eRjK^ [}V ETl%_7 `kk!w^3X9[>!%5j @هm8.P@ǙT[;aHq}l2l(Фqvi/q}G: Ćhd՝V&I 3"bX7xffaxIo<1̮"U/pmHq)d+pٞ>T@SŨoK~ZRkOKʴkS+d5{I17:b 劶4d|Ǣʽ؀JVᨵ 3Cϭ{YNg+3GMϒܢD#"Q@yyĥ9l%5,ŎIydn"B7oR/ RNXu#`"jP(sR` *oh/ʢBZq8Yl~フPEvRm|,É|ߐwu1-t!˄NGؖ)>N:Pġs٨j']Iv??^SOJN[CHDJ.f1DU-&pNSjc\HegsN?>ՐDهj I_Gum|:X^`>贶k~ kM\a,^UklkGMK +D+8~f9rt_"b. YyI xsP^X.>H}RGBK[K)d.|tO'5NV no9'>aq@R/OǤn#2!&W cvC3 +-vf%1^ 58\﫾=>5͢#Boʾ.Wy;Zmܛ/λUmuMpdٛޓ35O`/ATuܦB$B"PhBt)L/;|.~d=oN.1Ot?੃\c0e"L_ XzPdܟ9H{Wz=pAm犿Oer91NVDY[C(qPonpw%s؄6+aL=%bIomg(gM8C4'mrOy"3߸P^z2"?#9jڰCmעS@ᶐ1d(nD\` G84bx!i›3mՎq?TXFyHQHVwWT_ݒ/DJb1/^=Դ'~Z?7YxbJo xx]T: $ۦ?rܲfԉ6lQH2 Bƒ+Rr;ajpi'>9jrzDK 1ƽKM<8-Y{@֭"\73g86]7[c-"Ɂuvˑv@}8(Zz2n.HRoljO*hXO)MЍtr~>A;SrjGKT"륮t@fsZGc7=:#\錉Ipsıʗ0@שp;;WsAL^OÙ, =v'G)OaHE/v[)U8x9]{=\Zg={{Wu^`x~w04 RaTY}u?e31EZhg C6Y^6_S+L@T͎My*j4N*^qBM#{wOU1?v|a/m`q11'ĺ=zʵ߬5g?P|s@ؗ*|0\Jy3ǰnO3 ]k9+Lr˫a"- CPђ_C>S,*ZR"#(3+3[M1rR?z\!#:;SL4@Jj d~OqpHheG`&JP&C n)t{m!@y|yf&Oa;B]2S [ڣ ,>D+SǢ!@6֮wkmޜW\뙖!>l31E ǧ{Br6>w**6}vME)wE0?ۨVu 7m_eJ( ;bsdHTrGF?,Ypc$'H7P-x0xwWY>W%5')j`|; 5 `a/HmsZ^_{;C|M+UaTpә:ݰ咜:xx^"?4VȮR9pSUu>EOAH%y&wJ+8n u\D*zθQ$ !ޥkF|~o=8Jmڹ&ˑ9MiOڢUi/ J6^$QIcҾa@#l{ XTGͼ_)ՅCcv'ٟDDnv,q=3(P9L/딇cO. =ej,1MBޭSDAlu@Lj$Azgyʝ.$r}J,W8 Bvn?Τf-2?v.tNJzD$}Ne nqc߲C*łwKR /2w65C{AH>3a=X`RA E AE3sPO+${֑hQ|UN#vA~~`Z#pp%ٱ)ڐ^35 NxC$<ԳWҢ,;7흺A ioQa&)D0&)iLz="08IB~EWГtkZ3\>x s+?I0jFRۛO+ -ڃӈ:*$a%9;?y*-lV(b2yޅ $Ft`^Z`(d;,.>Z@Y--l0KΜ*)n$kwBkd,fеZ߀$?yv`H/9__/i$ 4aa٨5\:Ò&y+4N`8tX|`Q#,YתY@܍fؒ7#Nne4 d6&P3|q2<R4JOKtgeY(^&\|׻laŌB7uiXòn*o6C 7﹒j`ý}[&&SxΕꦍܞ+{U,D&@' W< 9Ӌj"(e#OT%k`vF:et}ۘK#OGb!-m:YԤ}1nM5+cYA]o7ejV\ݙ2t{P3(Fi`ֺ&p@)n: EAm2vءrxb]Kr;*-/b.uT\(lS0QVzF͝]Iu;!Y UQN~79IZb)`L6w̞t k)s SL(WS`Y Fg&IMM̦ḕ)adW/iR&^e=H8lg2pQPS7 QRutK뚼7˫*-5)ڃ n5 y#0o,G,z+5LTt^@Eu=w+p&c!"̚ Q[)a`?&?L'Jw`ɵ45*&|Άr$ٝZGIJQz˼o sT3*/Aܽ~&Ztޥ}p\* NGM q,du=3نL._/ְIp%9]vJC>1V%Pe6q_r#"e\ j%D |*^ںR=j"xvm}4[Kʵu4EwI&~~85knT,c^"K1-%G/n/1E6P[vLv+M2Է6 Ao孯Q?Dm1-MP*|RJy\CAU*ptrm3$)V)l0wi@qi9upCfWoń'T0h/1e wW;Qt{c'>^-7΋`gF%m{`.QIH2^M%+d[zڡzB'M<Q.>Q UD*89GWeU߆sfrWL 5 .Oa{.u0(V [v7A$Sv[QRG"X:NjZˑnr= ;E9q򷋁Eh`[3.=h;z\\ xuvNAPXOCk(sb ӵ8aLNP{X[9 Ҳe!V7,>X71t@rv ӗbT3ۙ$tsz+>/ʸfmN&> ʊvB6@Q^VʥɥZ*(tzM4Y~F;iuN ֌a;A^C+4ߛ-ql.UjF!`VuU`]t5kSA|lSjDA}HOoM| :FYMص|ˆ*G6&^B,0L"ny/ IфB0ͶQJL}K Xۜ,֡,a'D>OٴNLm6CfaOYNR}BYH[Q)k+Τ@D(ϸ(Sa@_O'KN#=-c|vB։{%as2ƕP-3ejYǩDR;Crʼ9!gcc]K.="\mysXz?%;M9ߘD(W`HMB Rf:NmS5DbWx4W~'iPv0ahǸF x6V?Zm!EFX[]Ya*ߕumC&Õד]McxKWHdM0'L$l˽#R5eFZFV 9Z n^!s߯ F=Ip7SOsľ NP 85ɘc;bI>bhZiVqG4^^JJ}08!=Mlio=߿h$7Gf(u€>qG дM ʯM0Ɛr*}@/5h^elvGKέ}5ㆵ07hPнPS"?@ZF ADG]:}.&OɕfK@FZl&>@iI` sÏ_hqxy/ERepA".7g H=u%㵥vcpsER1!ډ δ;7juL"/:[$yڒ!pq~2wCGb| ga{eJV, VkfĭnkO04lCw`֗vJ+f8lsabB&bhtx`tX?CH{9J0AHVRν iM)9;9ڴm~hׅ/T|8Mh²a:d9b B ⏈'=<%v%/.%F\ӿ\T/pI`dORP*&~~᝽\드uh}d.li97} Ѧ$TMDU/ 7#( mi*kiUD)kY-(#ĤiE~5=ǖrꗄ'i !tKU0=b7Atpַ]n*iYe]"H룻k.y!,L1Z"'AN-B?Q;5&ߗt\d$j' a .\qX7q?:9ZTby@7#OƄ< >/h$]#@B j߷zs|A&T8*lTvV \g\ G\b]?cME"]BI+_bik7+ f#e]!"WlVZRS' &^=! wR@B91Q:L -w?{N$nHXEFpixuL8!Bc{NU\cC <[ KНm='nFfJ+&M@<~1Y{Mt.-Z&#&ɃM9[$kn!}G\P" Ya\vSwވS!I/[qAh9?]ϥ }2۷Ԗ8ckǨ ( =-01֗Y'njJLx%e~Eʣ&zj~e͈U5E7^Ut) zt/DO ϸr;/VCv M|f*JF@]uuuO$bAvXi]7p y`/Óm&A^1c3_.)["76!Z]1ERW3(W[g{&>?a$Tq̨;J!8ۃ"A!RgB{~T#r7UQ1*H_y#ˈsefCMy2lS&\tGњ}!G>goW3F"w.ֿW5 ϲ7dk]`sB>pS1[OO 5+䜩٣h}N%ćdQC:ńЯ2Œl<+BMfb< :"G`ȋ2QD._]R'|> C[2 <dfrps% k NaxInj]CxFmu `Ɛ80Yǖ%-zW B=ޱ]ȟbɈ\, ɴ&G95gc5$o):@/i3ef:v[tN(@OzL2ok1*mt"qquYlW}.`syj\|gCpZu:$S&1I|JԞ7hPd4JKF[sFQU!*rN.$VXfʱMB#N):PR({IiLߎк1ɠb)rv‡ MıKS H硻Ed&U(Y~q.ޯ~Ke`;|sd&_BYH?) !0!<*.o85."Yt-t oȮ3w.k97R50c. lIy_!+@G',WKOthd+ ZTŠ I|rW:=1QCrݔҵfV8Y7C0=fQWhD`s*&gԏI펋.B؃QwN/$E{4PSN1x\៫S:\t<K1ehgjjK?U@/R;=`٫~dYotx4}ZM8؁d2E: _Yvp*NICVH[H؄\ɠҽye,;FMHw+ ֌Hk{L`L5'].D߹\٥K.|(k\Cy0-WH{xIFTӐ_;7rs_Z_KN~P}CPF)ۉ?FuHlޱ{FER.R, .6tUft8SL\fomQ2êIP,d/s \R՛L>zǘNi`a+~=)|U^BBr_JdgCOC:62$X7~\pf-'Ad<}#roYPE6Nt<)}IܭBB{ TVZ궇32)ucLbU-/0l+FA,yeYa ~P`A%o/A5x\ 6>CVh/%kM̷9p L* =*NTؚQXJFB?lϦl vl@,R l_5q CJ̓BĖgݬ9'a-e=b)єkpxV8S{mq=QsA-" 2V/f 0'^F- `jolsCuq WŐIETԘՄ"Ŋ ͽ ve}E)[ʎ5Ю~:c#N[Te[-~oq7쒰S]`O*ho]8zn"h/yo1tAؐ泜HV۸gqr n+i;~bIXe^]\Ćql+=.D'˜H~BIz~eY$"^\k?3,2SU\ Q(T"{.xr:~m;AzϫGX_e!EկMS w>ZK1%)qM6wX#[4X|7N9 G ß㛼Qd!UCMq0tݑψ [UQCu80?j1C8VQbTIɻ5Ui0*۩J;k =D2s\]xoMj cN7`;efJ$hΠW-m{'ӌSo > v󓉢 v 9D,L`#~!rMLx.tkEO/VW c6hN 8BRxyޏ5U`cnỢf\+ +`V`pMu>rdih4?.ESSξF ?~wP ^89C@A@* ݥV>4i3OF΄|WFA@̛aI$=yx]!G ^Gu6%E g5fY<2``4w*i9Dhu!/eWf Y.7%IGM7fQc2Ye==ֺXMQzIZV93 $t6sdI>ksCn?і,_nO /|\Cn¢L8 vUG jޯ o.}ZPf]Fh(tԉ*.\DluOD 5k)DR'<aY^!hHQ 9~1>w8nVҽ4>rOh{.M!Ƹc&J 9{LqladǪS&JdPdH}IԡMe ?,2ޏR5OY2ڵ3i_gbt׾B2~C[0%)(lx @P~wJ/Ftc{jeufAbl|)2<٩U`duRxVR*2h򾊜z\I86:aL CL{Nhk*t=p -#e S5T5g1,.f',z^O> ΀6 }2>ΰ^#jXM9(}cJ3j /]%5Gn!s.^n4p'VGI8Ai"jhdP~Ͼ>v I e(X>cD)=:E\k~tOM.KG7mߖYH]]O{S^1lZaӴtm-Ul&kTK\GI^Ff`Y>Qx`淑"1'ftg5)LQzc/72Bf9?J0=-43*!DeUEͩ4kC--QZa#bNfdTk0*6C;(TbGNUDVLfվwCwKnyuyOl{ec!h$HPg!z%۔e]9u;۠&@ge{?k)T[絹Zock)s9+^K.Y"Cr XcH~ JO13 ~Cd,7L!r"JazVEý3Дi͒gMhn&jCx~|WJ>( vx\x 9wkH R0ԍ^^s:4曆MYm1},HkhXKљ |ed=p+ ۝際>v߄)vL|ѪmO~"OmP&> ,v&O5WG<%/ǢD ˆ39߭Έ?ֺEpn,Sj%afбJ[Pň,H7p#1~_q^τX&D.Lh;Iҁ.C;nC|c\8&>%VCF˰i a'^)_rFE-* ,as hq&]$bynоÄ.{{ɠ:rŖ豺hr4QΈrd%kUӑ=t$e%* 6 EńF'ZKXbh.tp cJ"gWEf-Y2*Sw uQ m$qvYpW]rmMcMIqǿKVV$DKOL ~ا׈,m-jK'~PbRgGWw*)5  IϳA8YPӷlPEnFe'kG26EIXPviw'~:'p80 [i $?ŅD^5<噉<,Հ^X[Ǡ{>HyCA6~=ĢLD޶Q+6 LekN+.=G?\A/A8汆LlB7Ʉ2s1GylS9jw]1"U]Ol03h-,l-­ye B&G$[5mAMzGA+el_vz4V'2OȚ~2̿ aXwt@;>ߵ"uyAR5Ṕv^X]1>xV](iqZ; }蒲+̯ v$2CH\-w$hy0@,E4 g@#(`44tN j{|L/7l2popT,1,癀_8xFRMk ''m035*.lm=oj@!a$&xuJ*vJHö|uJ*sKHZ+Ņ3L;º]Y - $.y @ui꜆*?];ڦy i[{ 𼎼5Y~4m@rgt:2N~kР_ Ʀcp QB+Gdr `Nj*,XmTg!D|jGN<8_byA3W#Č_Z*`Ryt_nY,{@H `ԥfa1ѿJko‚bk{烃~*>f+3Ǻ/bBa L=E pI4A'ZACCӉfneZFaR"LrK߰:Yurc??۰wezߢd绠O??v@&;pUof*޲ ^j( (녵Y_c 5l;_Y t1Z b`"Gݏ5]TW)t+H4;"/J+5*RG7 mU+a%ҷ@5;ݩ9#Re,GFGXRzv?mP=Z,FSaE h tJxup()_c-{-gZW=@tȮK!Q^*fjvJ?EiYFf]s$2@;Vp}&cOIY[" ?4%5 .2W$'%2\0Ҽ2_J+:<73?ә ܶGӿnJ]C#g+XRE_,kT`[b2E0%Y 5kVq[#"&ӏn94RoV^$LK%r:{AoDZ\;Za~*Θvn+ /s+-'6s)qgvzx{zhגd%\G>Xhm?y3$aB;Tc;ayh벻dhD^#I.TTU)@HTPj{ϛm-@x.n %Qpr,}ch;$XcfA7drbY|W;h^>?<c #0KqoSM+ AǨU vdeV@f]E@rPb6Zkk1Z4%Q(AMwg1CϢ.{K嗑?A8V)Y)>؈KA֛Om朁x\jKLqY<򛥨 >9U޷@9En[z ~)pB0wO=E۶}^_ibWdߠ 4S}c2M ]$aKN䒜v:ѱXu,^;w]jz_UxKGVqw'byJ|H(k2j,7!YJ6HS)ŘA?9=_GBE`PxCj.ز(O0-9>T–5pVA[aqIәh{̗\uFU lhӢg,@w"0H%U(uknw'}+' [V^C1(soL&[s bXE~?Hr.U4rKN!2Դݙz{CŽmY+Owx(mȂم`]MC:Q>r_"zvp4tp9Ѓ{I坳l\7ߓq@jMh 4vsyCi<͓}DZ) ^i <9"$ ;`сC{5 zdeMӇVwГU ?<Nݱ#- ^&8ONL!]1FU'Q%f-;Xٹ^l#5 6IDحK4n'2gP"u.7A!KȔ8=_Y_Z֣[lDi+4) If-mIlx8A?μ !? L7f\D mZ_Sw\a`z􋼠 v] >Aav߿1D7۷)OZxz0HgYS !3*M/Hrf]R2b]?QU%֎lZӡuSM:4}jSji Wȫ%)ZI7$ЏaWtpwAg6@plz+n%D F o38hT$]㤣Cq4pԵҢw૟LTgr&Eٍ$ºL iqbXKC>Ksٙ24MmH$ex뫷),w1p>oARk` sOx%0F(:vG>V'EQ*mX11-39g3T- V=!y LلV7 تDF\l(7wėxLjŝ?Ӓ$\voo0[lQjxN~&6Ŧphfo"Y76?S UiԦݩW7L? wL2!$-bjE i%Aqxje]7]8"\mLlOZeKszi1væblU.wss1Ș(T-&!Y L},WR[\f_9%ިY<(+c* di>C߼4\8vdf@߲k8g%(7eC}Q~jyE5y}'-O!Ly宦 0\1ьĕ($|cC25YZuՠK|#3`ٷXdPB%V0~h{h}=Pl. $`UuJ0 B%V ,ܞ-u}iE"sW,Ux G*Eni u緞#EqXYA+m_5kHAO}NzJYEɵ52Ъ &o qI;S_qՏ=|FL4(5id 󵒙MK-o̷hSތ !7ݣy hZ5)=29ĸ1")?)TR٫Ё!3qc=xȩSSupdA1X0QPnjp3/9#3ty$9N'DM)v0$*OB=(Ӗij{NlE6jq9!|4;5tqC︃0OuvC|匩ӸZn;54,RGUD$ Q6iVLl%"۳\ m4snfv#Ћ 0TOk=H ֍{b1raY|!N8l4w @;pԻ5.zE{n/gQO-U!(`8f_ b;e1jG7|*d~$Ѕ 3|~UR6v n9:`mQ⮉iZT}1Px uDBJ@ąj igzRJ/A%[L\bXQrT F_ k.>J/>1(lAŪBZ*#P*UFt=(l=\),4pviu7PimrCsy+Up[u`R0qmnܦIrPH5b?ygJ~ANCΈdi0ib<^v$~4DڏUG{-PJąB4*Qk]T> N[\BO[P"/ܐ]Ŏ|vs8pF3$`1~F/Ped @émQ+ 7!qJP}UK*CJoQxay۫Z-WjAJ ;/lHoIة5aEI968fY2 | ~ԋ|5e@%.{#z@{,#lQ"mD8L2dzO0)U`ϋD>q) 7*z(;pfpA[/0+H iS4HJ,#cp0$6.Ŝ.U(Z._UUG#Z=tfH\jm!i?`lXȂk/yW4C)OAphZfpĂmM4*G Lu9(IdР3 t]ZwZb`h2(P'6 FU(%4=ĨcxC6\ <ޚ@헗7]½7FkQ54({sj S`nS5I n= ,wE+R}NDY_jV n//5[5JaӗecU=X9%~hK'q5tlj)Ε>{k:cH^D|*3~}s񕄮NN<{qe&祺E%IPYńHHy CMX]R j{U74 'sƟyOR]!_l^5BL3n,QBJ5m= WځǻvM}@יPL2?5'Y )'< $,࿦cZ4;(#'@ Ð+n/\UF>a4 r=|wjR"POTO Ɍ.SAm.K$Y;**C/VlqfS?hERcW\f !GB gYmmUh!D<;}G^ v`mX8/q|aVtYUsBܴ&Cg0Rn$ ^b>pC)G~ L\ Ǧ9\`Cu¹ï諑ޥ5ۆq09*yV cI.\c. fX J|:ʩWS&'&`AEg|q KaOx>8Mh/1 \qqAĵ4IAjF]Z4-#RHQP̬:Q*ĸzscS>>%3䆒37)aHwJ92r-=XJZɿ݌M8kfs'6Hi): d C-u-e M̰jFD*p2;*AUHk-}aFF+zzHRa-[9CO~mAW/Z"~J\8gOU]XOiĈd%>AW,-Œ^ @UQEmԏSxuEE}RlPo h|սI%.]Eqk^"] ^J{ eQ3% LJP\97-%ҨSTծ DpKuRT99ߏk4W;p ]pXnxAiUy߀aP? SbFwiZh5փ.p\]D:H-e(5Nk=2b%ſ[h8a8Ŕc@q{'adE] V;ٓ=P3"/4nIK.f2Cn$Ĉ$| ̮&)`&`UZka)_s8PX`@xUtCXMwx5$4$c" }VpDbBײadqHS. Cj8QLfS{)PQ'pt|g@]y}-4sS"3i'nPXQ'=QL;EDǥ"(0Fy+00{|_ z<mX7SqM /-}QÞmhyR|=#8fHU\i= T^{g-СYU>d Py5e(Ncs:13$jWJ$9Tp]tf!Z)K_D/d }D(j$oNo y;\b+xV*u# EIuؼ1yǦ;޶;C6OQ*틶YȕM5aKG_ %+@'"LVUj6ޡ1{O* trC|Bjj_W }%+XG I7^7Xe8g ]7>nH" Wҋ:&>BؘsG߽Hiޑ];P1cGɂմ~Z!Ĩί T KP hM#:(=tw@ yM~b0en ƉOfӵmM%RFM["j1(FTlj*b5˴t ShZ<\%S`G_3#G&4WysOdkAٛI# IGځrq`;=kg9PnYDMYo 6bp"gA\yeq}*ڸpT];bJ9ȸ#&T+6fWA ze^-ey@ВuA:FԎB::Ъĕ/Q~ΰ0]׀'z<xQo~fGos [@ԆpG +9aQb 0^@f\7RY[RXdo:/8}%3k`lv֧؄p#Ht*®"ܳ^&'_<РN4_A:zh%HMZj'Q2{р T"Cm;+.> E_CpN~W԰i#,BӬ*B>skˏ½j iA\JE7yHx r\ʼ=&+:fsCjt2mn @X'<XG8Qb!%l Yɢ3=W K61{2`o,Nֳ<[UAH'#ס_XG磔=bZ+=P)_xƸDD"bo?i*~JӾΑ|owWϼnb$zx q v)g~K_NR?]'-ݶw\04P9iS0;~.b)~*uԶᶋ FZL>L^LnQHד ja[Hq'$^l}7{˅x-x.YD aCDX b'ߠPἠԤs_';KqKO]YfX7 eutUO8n |d2wɈx>,Lm.^w@Bg6`o h~g.L36ͽf6gF!q|= bkk`3K3I"棆?C/ :Kh<O%:x:q,Uz ȣZ&=s-X#`WF7bX+O-cH>[+*mV+_Nf_nfz"ũ7$[вAeFCx ͫs3vu)}ԉ0Gn?T/S2ߌaכ* w-m^C|*ǩ~4bBB.%GeoX,z`K!OMP!M(} ĭJL*cНXIeP1<&ürV:2qw>M sn1l3c=ũDON-4Q:0@dW^wVh)X1䙈gMTz 3#Z>^YB6KG3rRFn~Qbs5j<{?323ggP;wXJcqa~9eR/KK;9 x_kVxUJ𛅗XgAm٨SvѦDF*亰l75Wp96˜y<"þF?ɜhzq(9J510d;--b/ ,S/: R+7Q;o jbLܿ o|WK>@0?2㇬J&;fvq⣦N N͒iql9aäF5h/I=Z _xN!/ C57qp'm0|mX~W$\wXOsd*48jg>l ]IwӓndiHeSOO̼_ӯg!/./(vn |.%~13#_,Z즐Q S1( 8u(|Ut子sopzo2{ kFK9wa7Hc`"ԅA9)B?^y9!hpZvz[ĩX(}1sȱa@{wބ<Ŗ5yLD]lXFcA) ^4,0IΆX;ezo?p'Ͻy)MU$DC[[齡H"4ꅘOay^|Lt鄠6Bۣ-ג8K0r&L"Go`˧?Hᤆcy5HC\+VcٲN@lTw_G0*+,2O +f ~']f V晞@gO1gN/)"˂ tڪgW$q@ {GYaU, Ǝgܗmg*W|s~XV$s` a'"VjMy G-dFID0b8aa6޿+pIdzTm m{vrE)%YfCy MâQy7@k$|e2j ~CIYvA܉Kp5 WM]=Fj xsjGkp1EPf<_v=GB2:pCcퟺlyJa|QO ,=} tIɋ(fzƠY< xg_~',& 6=q.ȯ֟} ޏ8h]=D*JE_$\ZUJJg`[ELV\q T;gFW~s4L˞I G:&g:Xr+mhA> R͕"bE3|VJَFDZW0_W s) k]2o*:CMؚaOibQT_q sų果PRj@>4MUeX E'+U$zW"g;eCZ9^Zp0Ac G<ȍsZsʌiH jܭ4(?iM_7Z[@vA0ӽY0hcMmEOn gLiї oА(׌1jהITK4Q\FGkL[|h)L=#K3+,b F_ O{I 4amBڪh“Zd\H@jհ_ nt3/=5D/$,6vM)FCQvnҼQd>p.Og,l`kwݾ [w8U1jݶNG8qy|WpG%|JThA?ׄM*$UyAFO ZHX0l. C8uzr׆s)s[I*:KfMvqsZHd }Qջ0MUސ#E:k笿LuVY fA)Aê❮cu>Zdu>y0{mB3;1҃\ݳG !d)^7.F(G$(6SW:!#jVꑊye-'sMWx+ **lzfFN_֋(9Mf1v*7rp#&G xs(V2 *W)CLJU G% avi>%=::U3˺X_Z\H$e/I@&z^M:Z&.`5?>0B c3B|Nf>1gnQ^v3gh67> ]70\r4ٹni0VT'=ZܗL#aK'ʣbm<}|*d5 //7|/H\%ՍBG6 ˅M `4R |0ōW*ɒApEX8@)0z9* YH2xjxH4 72ffgaXHO1ym9|,_g:zq.ڎ0,XS1q?YƆ|RE @[-Bw^P/J׷ 6/8:E{7I!꽲bL}^^M&ڼ6ofNOːEu؂ Cr8>TFi%aBmQ?rgvF[Q[b$'x2]BP6^!L {(p48KGbْeHTWCJĄa w">9ز.(XUMfwN%,]L1.E,y"TF [4C !C. WR-rRZfGJc|㘚OCwAѨxiQ/^A&G|&dmJx;E'C8S-9EWfLbSGZ%g=s}}hQ32#E2 O/EwD_S `3:0%휹aH=!@1Gi9hX%uRFa *Q?]jWZܬ9׺7=I!z(KBJ`-XaBkgT}a}hð/`e._YKS}Q!V*[1AMүjңg90滋Q̱(MX_RRxXC L笏(I_4H"+)1sr> 0J< ѹ%ncImb&">(V`~ZFYZ##E1Az\+1-QL" %CU8U=IJO Dt`;Q3f+TčES==tDedޜEf r#\/A)7$0QYBT WNCIt[~W/ l-(# .| Ֆ7sd)/yAp\+BAd}\4??8B >jBv4dCCr`fe)Ew7{*4K (/0c?mkgV rt lPƿ 3ǢQZ#]vׯ{vY-oEoI҉(57h>&(jH8 pa#(Ұ9(bz;T9JVA'!*DZ]Aoߟk++ji[߂<&Aa;?8+rriC%|εEDz7"krp.7)cݥW&z [ H3{~mKji[aAkp$]YBs{Ҁ|A$eM  bJ#V8\Ԗ uƎ͡Eȗ69yH/b^]k Эst@_cȆOrz#6o b=wTn7J =7.v@AJjXkF5泠p$aTU_y}vlZV9^@/Ѡ">)̽RcDx.Jül^:kJg1wm7PvL[ ">+MpSoFITt_`+ +I"=buJ@q贬ٚmz+}zV60!h\|q@ċBT勋Fa@Zxr^N,q[l(Sвǒmet#<ܧV^cN3WpG܀q.x5!Y<ٻԂN<=F·e3VܠJ 2M'/y wȽ,"5Wv/K7Ǎ4yE/hqգnc \3m;ܛVDQN}92 )4\72{$wd>J*?=bBJCY_^$<ָQp|{ۨ-.LU%4u.6sg>ч"J[ym}Ad"!%ՃM: 1w֯m71+YQ xExw+x #} Bǁ G.Vմt![x= q# [ *ܾ/bҿI4"-zb\ v >hJEQ' aԐ^J3HQ}/K9ď{r]]:n(~ʨ*^t B0lId|b{8u'mƎ! )ܰLt<$-k8rz-X^n67L8+)Gn@"s!`7ed!ji4pFerC3i1u>шB$.L>7qI8%-$q|՞Ql@ /ގdWR/J@z$"pK}a-Hg 9zm͆:\Ǎ Q&tl5;! i?B]|3YXm?bH1N{FoZ&а}#}f4rW㒞jfQ.Rڟ<_糁]^*9p((~ E! ڏsv7 4m]L{@O8\5.h+hURKKIѾ gר( zZL"azR\֗'z]n 矣MqDɺBPv-ATCΫ4XcI\&p;U_YeXUx3:+l 9X,kI*H[yF(q-"o" |N48@E>ޑRZ_4?^wU!;DurOn*W+Ns>tuN9)_"Bl=B VI=+O]@g1ˮcEC)5Ιb HG *ҵxS͊<kTKVc;W#v2gRf95IbWg'D$Lq&]Fv}h~:UC/<3psw`@ʡwߏU5bG@Xq 28uBG$U$Mwkcƙ4ONh #!w(d5'x: ѤwQ3)3n\CO_îTeWU瘝YhJ$JT*;35?,&nUf;( 2s-WP"4O0#h1@} ͆kreX];e*Ȁҭ2hU 9APxⒽ£#KTDYS0ɭf,ҹjo;^ČyrAh-O.CG=7*.8 `֡f{F(bLv̈́ b\/P]l[P {BԐ.W*,@8 P6 Qڗjc<*bc\bM㿪x[SF'="X݅?ޑlۀE*RɰЈ2A w`0lNBIĖ]it<7 wbw|iBɈ F+gյ UmS!hklW 75 dA x- (R1TcE 1f4gč KF(>x4Z |Sѩbjņdrt Az{@hܱ.\|-4-cXpS&0lωBt(]x] Dℼ n}!} 1w|[ش &iD POnӑӽ ?I\;~RψV:("%iZ$-Kh[\ќXE  >YrvV5p6Yqz 5nRm$^hGxHcȫ;/N4qz*Tr]!q w)R-m3!6h1l0ɐwd efF3-߬B(HHkߵM A|qda =֦Uu"Rswdb0;ģtAd} 7VqU(>NzFUc6@K[cԋzt8rgQeɖ8zp~t6"T`Z*ˡոPMԈe\xx$/?[^Mr>%0/M_tH2N {3\w]˦d%REvfuYXO0zWI6EU}o_=C,s2ZNhDz}. -<BzM%&KzlJ^k qO.ɲ7跧ݝ+$uȷs?ҕPC-4Krub/x7)('% @ >;VZN>*.p*^m/ʣqq~k;t0n;0J=RHd,%efZ =>L/?ت**h+t9cNX4xeZ*'oF=tE:BCPǿ} umiOz!|BB%Qx{sb[&vOS=.47ώOc7(qmYG&L2wzßĦYim-mnT1W !Xп!ʆr+p{Ui|#Oc5tyf\ӓЮMe׬tCθ=S?Gǘ@3 ;=PS77ج8jKhzK)PBr jXR,KF' @0CHiἅJl+o8Sg&Kt+[KRI׶r^#cM DAV-{ d;-˼2rײZzN~7`mIӞAdO$E< uUC3^ia;8J[GrM\ƈf @?rrpI\|k,g1%m"zsMQg9{VrX H.Ko. ePCGTz5&S uwGdʜ !nPox⋱ѳۘա䦝jhW[QJ9> `QFhQELaG&f(]?筓wD .0ě|t,$l/< uTN,6ԷVE x!E~C)Vjk0v? qTA=֥9rf,r@>90eݺ|%V)+3ݧmcFٞ%iȯn'qL/JJ+VMIn+p~ djˊ ER}4焆X%hdC|:rBiu:,U J̭f(@iT}df)@R@<49&,ع/2 x)շH'$qfЁ,-͵".cQǰe"L.Nti1e|z\WSi^_b5/ ?Ƭwn$$=㩆Vj %P#Ypg `#YW M۠%|/pF&H" aś&в$?"N_ 9(.fR4ՅT^Y,퉻- ]]wE)Q- ^Tyl%*. J]TeMpL${CSל4Gڻ:{}5ovo:Hrbx,5zvTu,0$sLmV} ՝0[ČhQ#a+SoR̓݁e i'F?/VƲ ܏Q=6t?5L𮱾OXߔ.s?,EUg1DEMsyL}ê̿M=:РvGK#f!aQhxPʸ̭[sђBq*m}q LHUx ]1]e AKG%;X&Es.?4QSuPj0w`Mdf\pI_ؙ[yH+(ms{ȮSBƟ,L\28W8!-ND9wBCvB+1)R>ړ(=G[{-pl;e&GIנb7'eR;et} 6yݣ F$: XZ:=k1N^4 ȃt(5Կ@.!4TG\=oc lÆّ>wӒVd,f;8j<ԡ͹ )A5uN2c$($ۣ ~{`L*mZ$rQHZ!,A@Nrf$MA}#c}(+̾SG& 0DV gʮp:3IyH[ɊEC'^*x ns sEaU2$>)`]9F`P2qγcxY .&$?cN9'ؖs>],d[JqN_oyoס[vC$ x|4$H+;E[ Gni$(BMRQdhќ z%Q[%7-ї8eaQdTI.ݾ?HkRﱬ'MB#P XABv',!vr:^W`M lMC6dvD k@eX еz6]%NtKK2Цj-5J[.zQ>>gϮ]TWZ~sn|4w(Ꞗ'3vH\G=5Yk\@H4^H7tp{wx7Rī=#i !:^G>x5 7 a&Ơ%=*8ۅ Ш3"w-LcXhD: !+Uې2-tOt"34& I<6YXQv5dD-+fVLC5Ke"פ5/Y̽>oqׂggph9- NUDXP@% fޢ2^8G.N }KC#hY'o UMɖS)gv VH]~b Ȋd4.ZC~LC/ԈW52xQu+WPr~e?bnx U\R*N q@Խ`gzJ Q@lfjzW61wfRo=lwOe'x:8AY}ۼuչ@KTMdid/*]P6'a`%4?eWr|qf rʊR]?9O[f:c 4)r. A ө:Gݓ<4d4 C/ϭL;fX}l]+U#%J5nRQ(B w0p]080d2 >42fmX >VY nNUIz^ժZ=8Qj:?)o' [O-깇,F -;Fw;IP7hriW8F,*z:6x($9;I|i"p0d귻qxx rx-rC/LݠfnClw3I'4<棠ƈ6w^6 _`CF.`l[!4L_E9 :]SJlۥ[,*y-o&UGZڕ8yu,&b܍ƭf5sѲ:' [|*5TPŘ~ Rx>nmd Hݮ3N "4jvsUز9]%7`E/RTQj>07gR(ԅbrYyc凛#޺X92?M!H(URp@iBq~ %/S, E.s/, UOi>D8k*&k@g '^iS -rBd/g:I["m>UZ>2/P;U!ۡ(4'M3f}Ts WT+}9 1o䶞@*Xv}4L gqߏẻG2$݁(@R _Iڈ?qt_>/Z1IH+J h&[\K|sS5ԫ|W{e.b6#C`pI:Zi r<>+8}:UAŃ03#zHAJQY\Aijء:P`5Yi n-w|O/f[<a1:1Bw1p\ H9;6KUD%P ,bH/.3zPEWyUeڀYKX:,~!಑Tf?`za xw8o]]a?7zsFX/ q!s\y3g<Ok?b5u!3a.҇ga1> Y5qGyGS'9$rXs\W;W`}&$~AٚR]> A|ODL=ш"!"u4<ؑOKVO%ߦ-H}̞$|޺Ϫ' V_;zOJ9Ap&4WJ%ߏݿ?Xr?(nF4#:phvA^SI /%:;W,B2RuO 7R.|t=wꟶ>DOˇ8^ :g$"kv[p :VP<8Xv@' ]l R:;_F nv p/tzpȇ5 r̆{tFP.0[ 0Wˈp^gDަ[w \}GC ~jxdQXٺ0*^3栌bx,C9> MjEbҽ6WP _ P@:w]zjuj K/%Н偙t8@X"Tx쬮`<7Wg=MHҎa!JA --#ɏ "V-h{Hƭ+ ]p] Ak#o̵$ t)eq|,`0炖VhF@&'mQԳ7pXYGVgIAޣ~ OE㗲AU KO$G<ir pdBWzw`{Hl)7*X۹W.Y9,4;l`aAA'dz0desx5 b;-H=p4;CQ}J1 (Yu#,eWr$(ʯt BH𭴯4qlQʯC)bYېCjꆍ Ey<״LUמ|ǽnJFWr-}H}'έCL-kJ-61?tOo>0 d7X]g2|Jcg` Y >Ak(?S.猣y C„2Bh7#`em8o nj<~STR7X;di|FV, uE]} + NEGw F1M3>ng~ /0~ >YFV9Qt kcB`*L@.#HSw*!C)Mk+()Z}#FmjbIn&S"?xOhfK{5ٙ.jkqeo|8ar.O|E@aB3R[/#T}b:uo6Dv\{-m72ݤCS^-'՛FnB>^8t1ϡ>Ob0w*_Ii r醀{6bb9ހ-}yAgD/f?sҜOVg]G*r"e\1-kGQksVAuVv: rHSH {yi!1pjI!Cs V"Vut L6!mSy 0%R?Y:ە2Ѧv$G:,V|2ie;{Tԁnclt;|KhJp_16pZ=N,}µ}1J\'Ĕ'HkT!q$η'좋`.i"z[~`?7vT̩s1p< +0_@ۘ(O, s74Y8VaZF,(;vǟ%&yQ|&^ׯIF0d#\K<1brP=p-a:Ui#mQzHQF{pKȡ^04-'8*O`~_ .ߨI^giU!z@^GƘ7`vPM1*tz\\TSNs Ɋ)d}hxBջ| 8/hؽ DS UETFM[zM\*2U }ا&qqfElߐږٹJEŕZޡT%Nmx5vlP\&w7q= Q&et 8oA` rQĦur1^-E)5u`kx368RD_ .|ByL$+ea^&]ej II &+ MmYm;l/^LO(>?:õxs 9rƳ/j,ԪD*u`gW_bVۯY˯誏5Q>Jv4B_h(v;ߎ)f,}&xq]d."vWlxo6Knj6!lbGJ{5%_f{f@[aB.XT2<g7w2*C5HjuUc6/3M'Zt*(~gQ" #E#}?Si uʰ<kE˛3Bbf:=+}οG.Em+5Fr)XI}N@O\R/D4Q̘u x gQe3ivy%yI9 mv RW:h2 rU]!88{:ڤsn|&6 rO~(yz=17.a# m~%m?De>^ .X`##N:p ƃ8a,: (, }NIShnS~T#(?N:31}lWGXw.;5j:;fM>s"O_;\pe~S*n:{jca?GSk*kt)0^7?'^[eo_g$` ^ϭ^r?:^Z_z ܣ{"+m+ 3#_ 1LU%_sMu s^vh?م/~c )4B[!,1~[LGB7}k%NB}@e FW鈹1;,勛;SkJ !ﯟ.\Won@s^ DA3=CdlّT[tKL'߄_}6/4mIU+Zxlb_jm*-d7wE}iY]yRPƁL0ݟXU()hraAɱmxc$Vt$m/Ho܌YcHԮ e%1{N/ESu;]6ⱀɮJ y7ʖNiy*3͟ }v΄uRF^m!{W5(~Wx%cs⼱xIg ʡR"[v<c)-dZ~>Z(GBٛ8ŕ!6LY?g%nև2n_MNͬz˰=.=.zB-hPvJ٤mp{)Q UEOrwa6Sb\I9R+W @1zJ|yFqmwb #uaLXMx2d&^'KĵZ5&+ ڲHG##kwL|>)L*?{AP㾷Dz'Z+˼#I[&\r[F >ORH@fVN%6=No3f$ҚXe1ՆA{+F E[mc&9\ 8FM.mF!V0` }VGa%tIw C'7$Eh3NP[bxjؒz*u d`1_b$RF(iث]ݢ9ZUI^uIIkox( EU(V. -b"sUF`)D! ‘ ۚ\jBv_s7c_$Ii-˔跟{鋔,(i{ԕk@+͕PXRމ#2lCF+v+m =-zmI`ya.r2g=8|lȐzij 3bMX«>5KA+8$!cZ P74=YzI%QGjRü.-r,1vz؛YrhѺc!@AcbU9Ccs/K"&Ցȿ mW~}l>uްyȶ4\7?y (4>T'70+im6MKx$T7S>؀]A^^5:fH ~s$nt97N]6Uk:zXjhY#! O3)r*`nL{rRpNПos&lWɢ8Mv*԰-/T[LénX` /Z6p4llkdW0Q%E(SدoN!!U0͌D*1]BA^$<[YN.:y'ڢ6w=Dw߂7_N5rlyY6^RsJo)te)Z-pL#GCw̰-֦>j^|@#I.NF>̞p.5(B)aLS<V3j.Xu[mG3}ڰkv2ZP(Q4|:d%otR[F$WM*c 9N*s:2a4ȬhIdHߵ<>=*fB|R.G"㔸ё2,QҋgX[V̘͖LlKׄ#ư1`V;gHehqclJ_ \Cb<^u呪7#.;c_UCjoc) }/Nʉ&bǞ5oT@Ahx΀?n놯 _fՈ +!4IYSBNnA6-lC!J;:Y<G+}[J?`oθmM&,`6z*Jϫ_{Hဨz.gC@wCU21`2w%M1N KK[A@F9ZvT58$#L=)x5& TIS?"kg‚2AZ^K Gn^@X=$ɸi.Bmfg\D:HLB%͡RоNڊTT6~s6M <1\H:.. qV8#L5\2 ,@rsX:kw -" ?Z[iD1Qw$w۞Hh'Z<>)HLc:,rG&RW& N[D_H.1=$9b83{5JL2b,#Ab{O(0FK<,!qOS,tL&eYwM>F诓b),xmz)A@WC6bH(!/^yg,oBf9YEi e\~ɄT.+K}R~VEO83~uoZ]*2{Hm5~c.o/>nw=/]śo,BV-^׸d^GWz1Bw@WE /]-xc7 &3U .p/Y:FDA.!."k<˺|>= nv8#O3t)[b!L?"wiH"kplcR$P0i-; ӆdEPSF?Z9 #W} P3s,J|(c w yVtu8o% .􀧥݈W~sB0%<8k:|eCAYHzRyCe O@ ZS0fyE[x(`-La2{Oz)YXjjGyvyh%X &!vm@K@|j^|Y̫Qc*E} -F]xܡ-j]#1vgOIUtd}^tM s )ǃe9jbD=$㈈},%ϗRLUFOF! P(^(Z&UD38MN/JΧOrUG$oiC"HX!Pz gFY^uh^Ffek =6>cϤW:"P樟ntȻ,2GPGCydcda $vg67tw<7ƕ XcpPU`[jo X_3V/6.;tVoNK0,WX5naBեȒ <;F(vRo @3'S,k lPbw0LY%3~M@)p}yZSBE~DM{$Q;X=\B0v:M>rQ0uG ,3YI}VZ6Y?mR^54~xwuLN![S3 QmO+uUoDEkiCz)&ZwSi:q)z}F2r!跣t2I?M\&*ȿ٣p@2jD>㍶B A Vɵ9|fPn!Ӳ-ĵR%KP]l\Ex-"6k~S kHbGeMَ2( qb7;$'q8xZCL3]o~fh\X)- 1'CGϓCY@b Hƹ(5*:i6"P㣵O^/{Jl9=@'^Eaq. 6FL6SH']\/ArpmBr0V|I8Cʔ&UjЗQ&E?!SDQ2%Q1dGtLr(/Y(vrecQc^gNHުF=n.FdPVՆVglpqζzޞ;+Ի1 oP dܶ۬Tަ>B:TM@4]5@GuSL}z)ٖ9.4#fF:dxr|fB ,CAQJV KşBGP08G.AhmjXA@_krYS?d[}6R,e#5W"d5z3[+})4X4U;_10bV仓L _cH:Cbq> I16W6U[4#&[l)\^o`,`/iΡ8od$F&,tJ6;Ib r іq0{ \/dU<-^G k ŴzzU [glSvzUmeƿx#Y5 t`c@mt˘@ 6  sCjrj1$d+S"ԿI`"a}X䙋ډO~vep[+~ ꃘE7[Q*,DCyTZ2xY–+͵@S\W,B-P9Sn TpIXyFE)`ǻ%_>@B{GPI|5JpO+΄Z#?ZKoH te`a{M$9Wgy׭6~p/b5%l +NX5pnG B3F ctZS6<ĩ'mj o8p]RG%%BwrWo$[(_'Şٜӻ4'A*`nnPĀwAcX: Cn* MU0:7t)0IF9aomP#նl"f[M/K`y#=e؝s\AVwKI~੆ϰ;#V)o8(J ^HQ|P1/%.Հ'btǔoFMUmőS|H$t|rj/L}٤p/kڮXrY%1c2n8Nɯ1'.x2?vP]W,>S:7M/OLw% }:|9--#~MU/F9}/ӮAS.N!ɽi(g4z +4)AIW@xcYx5V+N>j? ĢCiU(+zd'+)3~a`! SZe4JUd8 WM6Nq{^P Pj/3J'y"'ҬR`u 4ͯB_$גLNh%x }}ַ"3>^iu-fPfq:)zb_>4`Wr8eHۇjc~ڭ>'eB 5ЂWL%0#š1KF[E͵=)܅VUtWs}{_[2*_t5jZ&4X%uEaFe"P%iz{zAnt>>Cj wc5x; $D{6ڤuGӨG "Mx؎ԾHW!C sLG^ĉ'zwHGk60/]/stqn9<#14B(l`wjo:R^pV|G𲆪/*17435rؖ('Ia7*0܄Ih>z~.[%n[~MR+rGGf&tvl@>gpb$IqRُm[U-at-HuB,PMobVG S h-u۹,Jf8Z9 Bu:6oc6ƅ}?c&j5"D2c͹/kf 1ZsB# @Z#!H=?b\aӇ~TC\ީ~iIG7U` XONK$x7FqaaRw*E'ϵALR#('>NDoq8~eاohh hG璷lc"3:[_ [%Ff O'Bë [.ߴ`1~AР kNh׾?پWqp!L­`h~ n;(hGB;si(|jQ_fl ^#:md?s=lHi 2CPu&obB>e&qİ(<*ݑk࿉;絲NpHZGIUk+u%@SzMb6DD{;ȿWXQÃU,f{챘"_4}V N2x~}G7bp]Q%dy( ~ Vc; 3:ذúA|V m'^(=$>C26OJdڶ`z|: Y!ɾkZTYRFRd&*cpmxXr M\+:IPs]OwUO^F)'d/ _J{\1VIsDhR,B:+8X$ZXg@[̨mӜM 7i|ipnc3 Y4|gY)`io ! FB|t("bHZgUǩ}AzQ^y0GL!xɣ6 G%"͖@]X ӸjLDлU~DUWF?B %H_CY 0YP>IE xXu[XQ0Q#uFjUS/)8A@W,|g;> 8|ӆrs&1o@-BxdDiI6?A(L}(a|;DoOUԶ(N4&v@;|.b!jsuZӕf).w\[$yki.S+Ct:_oB:xS.R'#Ê>=]ȪkSshuۼt@,ӱy:t/a۬操}y(Լ7[ 6 (_p\Ҝ6CNrI €~]WI$)6FHgjWJ.ci:+J4٬ dtw)o[@uc|brL Ť= $D!.~goYazb;O ^nc%q%涸?B:#xEp随S͸`U3}4'uȡnXpDtvIJ"VЍ>qUqR^[a&FIvY6yCdйE=%6!%rC!ἄ+0HI̍&F]ƿS mΌ>< PȐtKӭL<ƨ>LCHI(xw1pgO MN5vtj !"^8z@7m pZFs,t$ w5?W3s` H b07K%Փ{n;&ye~ER-b6QZuxLHҥNK7X{ݡCR$IT蓠v?y@N02qo&Au9Wh,O sMGRÝ^ :(gDf8yv͓,4P9_[Ji+_ e֨sQ_PNM'ՎmK qs/-3?6@eEEQ[ 3Xv 3 ]{j3{$b4K" vBL*آ0hhBrd̾Dm6^۞\4_>e0ЉۈI J^hh9zQn%ڥXu/Vhxy @/ϹG#Rzd-SP^w3o6 lNiȢ5=;%q ]a.`_ܤJ-XV ǂ.W9 9U5|1BzAbV/S{3{PRpKli:/&[oD. 'FM'_#N5WZ^9fYn Jg Ll C9k͡*l5a3fh܍m@r'V@ǫYH{.x+}VjZߦ`Fg$?tFވ7Aף"$dܮ^͓Iir"UV,gg{DN("~T;hnHš=¸S } A&a=9|{D]̩A z,A"PC%A魹4M{-@uLVE^ :\dwuUWP S'0zOwU2]`!?:}ܸV|\p֠ ):[9n _!0硻Ti睸ˁs S'ARr>b+ ڷ㰰Xn!'[D'qm9Y)dozse*0`Z `CTiA(ݜ,Q\T! Pf/0`A>aX-ՔLآD)o;4"E/諡m+aOgcScY Z/kn¿bgaȂQU}~QCY7v / >Q,Q*ߪ0 oJ4BW4]wrCi}p̡vJ8rgPNμ v=`Z1gB2ϸ##@2Ew8 d@f aʁ LO#'5:,W t'#00fYʼ>poWϻ) ½لy?Nhdx7Xө4n#TQ7}J_A8/PJ/1V$ӯ[S=֎&_F#>=vy]0Im^3/&s`R#: cFM4aL|6O*9m'U߄C%I]I - ѵfTPaaxx ?8nz"R<ݺj& wg&P5| cdI$6:i#eQՐRDd"p-5ے\<^Fϼ3~nzɿ@uI`sDcn5s!FjV^`%t&*]U$kw $ޮԄ%[*Osنw_C:2=8Hޘ 9I|2|U{*H8 Erxt#y!2}z'JN%!E֫78j7x 52S@"oW/KV Ȫd_T0rGĶ $aN٨s :w+oKt^qpqeJW@" sIaa) W™dՍByh{6V(yLSY>?{ 70%p@AK<TPg6IlueV2PHexx>8DQ|6,^G2;&[G%kMdļNUȔfSO6ij 6j{ K%[eU++ S!jdMV7mWmJr~e'Y쏗p&=J|!Ty)BB;\4e:vZ)0E94.KMbʴ 킓":WY]c$Р2i}_JȪ#ƩGtI~:ĶNŌ/ F)R.0JsM1P@bYZr|w42$Ϡr*61^cFdGtӷJsdGȗҗg8|TbYpK3=MZMrtX״} [X tAk_L3)qWn0:IXOa,t {ԥB0Mrk1TD] Ẽb,5w華%Č{< 0LZX -uqKئx߬mXQn@oT.OJfq)7lDՓJmy8&zLG*.p/(G0+$ HG'I+jg_ `XC){wX6fk2rM.;ls3br>%O^' L/t)>gR{Dn/zJA"XzS=r|奫FljVAX[M؍Lsm]{ w#\,ehiٺ].wύ0K"-E/BciL풴;7жlࢾ7VVͣ4D6 ,90>4*) a\#Cc)d;s7Hc49һ:}\k;rz9)W؉"Vv%;l=3+* D$?/?3 KKgsQy/= ʹ~u`8hFӎ4+NCUbY &rÀxB˃{zF}P@D總} S,mUo`)8>9afE&W6M|+lBF?!N2z7} P&ޣH`*[iUt $v>r2.MK3Nk763X$]%-m"?F"=3?vGHe ו&4S^/WMp)EZfevBǕw!,{Dlu1Ex䢌 L:G>uޞ'J4 ?Q}Ђ <| :g#wj@MFdh)'t6̊5|Yv;}^\@б4d}:z|LC+x)oxv6q #&`vujH^73:z1]be_ AcoG;suنyI_#~MCeRaIAp&dV SHl$eƚ`9`7^G4[ U9/]Eh+Xɗ8BߺD?֘\Z B:9X.` =sT`Fg05CQXIʁ'ZټXK>C[d7d;哸ZSD&[ߍcJshI r],fׇ̘}F#InS^1&v#o:wD}O&WjٌwtB{Az;_II_܋Usk%`v^Fk~[zrQ 1>] QEJa+Xz}&B0i պo#/ː9 @G* ].+,G)y6¢j3h:Y BxVFn"{&laz%}`=Tk I;gFxhłMgEv@̓%wA:>K+vUT^퉀VاW6]J'KF[T`)}/6srZ1s;OvUӪVGsV-:Su/ eńKAu5ҢDsrj̵ d?3 B%B\p+`O)6r0$05=eqSu>&,to;q*X):~lx~J5mak)}[&B ڤRHap\4xQ]!DZ+jd3Ir݊y0Z9)Z|#懌~mE׾i|VSkin>% Oꤞ=`rqQpD?G{fjj|&=@[6#"p:%3 nb]j*pȰ%X9-f MoA@LcĢcNvN;zd5ٕű9͸Љf] E(J\Qa~nvl ۝,$ʧH!e}nOay#B3csXB$\3Ny%H_ ǕkK5ʿèm9k&Q&)gⲕҋZbyMs^[YxUd=]M },$яsmK*8i4F7}; i얋 6q)> QD}ʡ("?Uog>jǎc*G=y 'hXuu䔷B{3;z Z2+M ^$Բh""2>p.w յI}˨uZZ驻đWT.i{3m,(.(I9!_G.,Yɝ\sfAg pY(=gTeGmI3vj _pAK2v Guz}' Z=|~/+PH};YRb]m-lB݂ys$^t=aTj(\ _-UB`{EnTA16d<$-e`;{Y gwwq|wBU;!yAQ"Rqz\y3ڑ_kWꢯ&S =Lׁ~h@:U+%X'$1Ԑ3&Ne84ȍI}҅cW6 Wٶm|RɍD"TTapBh|G]*߻v(OK:Ce{Z&"eB|2 Iɴbn1h"Z/l`pmg7f~{>tؿ͊ƌiV ֦oBQ`$wцo}f>`o:CQ6G޹A B;V--">l2Ay JKkJ̏2DbE2#L AYֈ{%] Yw;\Ҫx/qȺ, R":o OPo݅oH0P ξE0wk:}[Ql cbՔroK*"U n~2(f}Z+aVL8yBU^݌~nz?ophy叽[9B7JrDDPu Z<dؒyS(-_{+H.3=ƶAfLO М$I/ɟ@DBM. SB" d~` yczY-%FDTքf-Y($gg+oe&dCAHM.p.ڡ I: hH-Bŵ]"E(B-Ff{c!p@]}k/^AfZS]1ʋp t/PE㯚Dd xZX,mtLw.+h`S^"8,_ꀞlHk"0 1SfNXkەT̓4U".Tќn9U^a!iT M|J`5(Pe199{YxD Z` \^ l 60Dm9a%s $IPDe#' [ANMO&0;$^>MLEqT)[f⃈hyjܬ?'+{Ħ/',\+?6-ER(%4-|߭a \Q ,lbil\户n3ZܙY=h ka齜~Ey?\`3A{1 8{ؑxw{6:}hcKRŸ{xWhL>ۢ 8HgGQ.@cX6gGY?mHD[~Q;Nd>6oC#OeB#y~ZMֽ$s(;T,ƙakJt/8@!*N"q|ga_Nb>%WeK~agŦT@~pZθxRϴ&^WlE:inVt1AN@vJ7P +yGt cY ɧj2 3݂TiVc*]"l,] 8cHXI <= DF]ӫ3K\״6oGvu fb]V³ᓽ͵tuhJI_ʕ/VIaA2pE5WuF`~ʁ5,=St&TAbja2>6eC*'H[i\>K ;v1 v7xeŒjo d{d;bNr13™|J֯ gqS~GDO/}>5c)MⱫ2c{T5~" ۚAx֐jhe Yؼc0N\Ffi˾߂#g VANVL$+r?'7Xo_R-/IXn#ѣS㺏}0DRx:[~Vx5k~u~\ae!=;s |L`?٬r_:+X%o6DS0ߞ{hl$ 1.E_tu[Ũǻ}DbQpLAZdf?tR1= /HPN`V %U;tU-K'A45"~s߃+9 :1ȀH,&s=ͺzF^-Eni}T;_ؔ)hMjDF_̳(+]7:)vOgJwR(XՆ8ݔUz^@SK]x[ sV V7oՄ[lGʃiw%Boe56QNQrUW0K_n Ⴢ܌?k>V^K)ƾA!}*)XKOBtG93aBGAfS>ǚ: c!KlD&CPnCzε ШIABN{>"2)yp)`=M|5=ēm!jJAs5 sXb {0ߚ-/o$-Bax/Lt,`t|ҙ "*ƣb`R{.$oa0Z N(brs& 1Y:z("mZW䒝LfàLcrU#1e`a5*˄FOi(Ӿ@_B`UE?LL7hGQkJANf]![\SkꥷQp͋3QRYdAr>ՎXk*J}G@ⰿ"vٸgRA&GnO ?YX0IT&DRa'ZXAev*Xʛn*Z^%+ƹ&%Gȝv2y c0o/"̲RDh??i`ڄu5jba2d$#,~;-л%q~6kp6tՓ%%{]w n>< B[.ˆ[4nbV춬w<9Cojٜ'_Ѽ$o3C@iǶ$:+FIOsK .g*CVZy>+VnWhuyT0XJz,LF;'^ EM{MЖ#?h w ZۮkZ P%{}"wZS5Op&f/VA gDʂHc 1bcx G<еxʄ[D81Z/ӵhǣX΃,j{ 9dKSS}>> |o24!b\+MnLΡZCL@6~B (M3Yڈ!<ȜElH Us}k\!}z du|EvUdH; sxvUWV'@KҿhV~h4 yX"C0Jtkp7hv/w䑇:›QOh|v^*B6Ѹp!F4I t~f>XT_G|~_˰K`_oNkAVƐf$L 8_e:2 -Q6 l PވڃAG5霋c,zÅz2i]F~hq w>?iLВ2 u(+]/NAL 9h(xIaXFW:?5~- t7` ue&xxv_v녽5[UU.nǝ.byQ9x,G#3`6{6ڌYP-쓜C:6HOOp\mAoZnvN`Pi#XL4aɾ~{_ ho;JIE@qwP_QF T{adԖ U0dHĒHpץt ]@e(&}qtn ߤvI K3R!0z*o~G~SB;y4S9y|meU%ă%THtދ?%܈oͰ3wIL A/GB,\ɯ$J -J@JS,<5o޵iVT[!i{C&c᠚3"^yв΁ D/I]iqi/Qvkot7S,ϸQcN.~uiB|gU~&M7_:qig 'ֽ_x2 VS>^b#Ŝ'?L; S,m[`/= P.,o9ΣuArl"Q*.4co3PoJ _n'F.3e"ctX.YĹCaS3rI.B kig߼fμߣ5xO6;ᖖ 5u8*Zz2*%瑝0+\8$~RjX[pBhS : V$"j <* 0$8t.GEC©6BDO!FO C<4cůk!}q%+AS=l'$%u=xU^oX4.V"Kwp@ c/UideIHWh ,){MH> ni篨, {5zx4 ٬`2 s\NBXk@ahh4$Qh$3JrfiHvI`j3-{ [:'ErFuZ̡W*7RQW1 j%rNI7eK/U ea 5&Q /zGQ"{h +%Zyj*<aFaOmPO-F#(}T'u W&|ܛ9`BvU;I/;0C. pAq'O|bI{˰ *ۘ $ t%=k>Hl SbOu\[^&/G[ ݲϟzP~FE;ȇYjmGYJ$'pEC2SھAI^nX .+7zVvo  3[;޵J)o8Mj 4,zœojKG{}ODT 84U:Rڿ]ޚCx<fVclLʫΒE˃ssCGQUD#NJ1^CNF\0p$#m~jhqYG>il{l(( y_WbMtWDJFY%YQ>S1BD6 jچ۫6ܓD [\}'%U֔몋v6~MS8*qakhS\}z-&7O=&KP mp'Z(x9,LK}%5HXj?࢒d 8k*>D0ebƟ{$,Ÿ d-mԻD3(7'81.&[q.j/)+0qW|a\ xJ{Va] st< Ja镰D*/m}5l.⃱J98(]q2S{}z^e6`^KMT8MBg4] ,p=Ѥ ?h[R4벌]w^eRJ|eԱC]@&[i8:!DW|SO8WJ_CI4RT~F~?s)8؏kU'<ј 8Mu}H/d"h#O9Uf5@"0בaciq+ec5 ?j#[վpZUufg bEˡOTpCjHZN-qm))xOe Tyv6F'6Uhuۓk;<8ǿEL"䔨 -[8ȎATz}M~oE!xzu"8L8rJL)+9Gr%F OY/4n= E{%m5rQ@\O+ TἼ :M斲 12G4nJL,I)Os]5~+W~f= @o`O,Mm$l$ .p+j J= ĵ;sE[[ԙec]dv"{1-\, :['GG\fy?Uv!"Zy3  $C7@PY})V5$8R?I~eFn%ċ&}ju~QY,QZx C0:_{4{[I]~Άu. !0-@x& :|J _7b_e5D늛KbP\' >,S}>gsy rn?[ 5K1񏴻Vu*_ EL#(ǯ$>,㰾PTb*'s>0W\,3AAg侜]ccma Ɂs:Węix|,Ԁhv8Mg8wGtДEk..ޘ$C>`7r"Ċ>p鑎sGy"m$-A[fEDiV@b,-!4M؋1Jg! y]:jZZ$'0tw1Yp3 V];(MDgUÂ%і$q'%w/&_V@=k6$S?xQMJSbϿZ*U[Ћb墨P?G߸TS ;YQX/3WY瘵QA!Bd<ЏE宅!YgC2AeݖB>wC{  ekic trΈX\*c+L*l‰ߥ_Nu&F(/pT~00ݗޛu~,) \= sz m,h A|>֮)|*꟏(9wQc7g~9;;qx?U͘6VMSӾFcn,+m!G82An{))a4X`0{4s.Vn> Ο.#s Ub̐0z:S+yZVSvLJIW䪁,^wGZtiOYI!kqSF" ֜@8:г0)ž6v; jt"6z[ZS,% kU?og+Gz枹>fMh!ES-}^PTg}q # ,Qh!oPعSP)Y8٨K g%WYM1 d6p48 9zީX'it?ֱl1;!~Ug(`gIq 1ळys@J̿yVVT@0 WG3İ,H@džw.FuZŝ/?FHeQƕ u%c9Eo'uasIV2[{NB{uH9 ~&`"{sTvZ1o)s PUIucX5a^uteeO6Ϊ E;i3Z(7 'fWΣv f_NKvs.Lԃᒱ6Et)m0Cs)} 4wqYm8iu/[QG705q%]Xo4'N >, ^h.dlr9+ 9x l~G TVezbɠaKjZd{d]5H`LZOLt1 ~̖ 2ذ`FSOloZzɪOm;٤hUvq%PӠsH4etWb B xh݄H(:-D+1 iD*)un5ۀSM,Г5Nbð0GY]ԼuM$bW(p֏P2r$>v]LlڪlR',rp ;uߚWYL:Pϛ-,x^T-U8+/&p\pT423w(9b pd ';BЧa9C"P:QiO-guҠväWbSt`q.νafڬ Վ6V$%NBaTD^A-7B3cOr?_6sB\9fx*5Tfp1;yNB]I[FQ97^#=M4Eo:lhJ~9 G;_U do>+.3wa(>WZ,gPIGV҈} L TpQ6nvLr5UI>Q, ~[hE DJ4W}{kk)_e@sK 3Md)~PH,Mʊ6>tCwͲY܉!IB6ZUNjK _) 5}a&ߙd M@IF0I@T}xώ I$&%<ٌ.aY+tP(!ũx[?lj1P{6mQdH5mq>d>N?UX{Eƞ: Ͷv4,4t6'~\8n `8?›x['mSsxMa!l//![/l!W'x'}C :b>t, 4Α6*[$/P**ۃE\*`4ևVf%QToJ~@dU7EԧWm6PXZu+eP e)_wAGqDqLQjfZ'7*_H(0 6oވ3OSLV(X0|TònH B5 zRoIa[9v=0d,Y l|a9b[n TLᶆe'7gZSN\Y4) ax_.xӍa:mӠ̤yϾarc\Ф_ˤ?Y= n8( nJ?x*oZU*Qmbw &~_a[Ny,Lܡ]2?~T0f"d,*3o#al6Z ⇜S8Zh_vcmи'ힿr xUBtUD:3Ý&q .b־6ܤ|a?ތBsXC_1o,̜Q][(5GϺ4c^˨Xbl2,w+tkC 8nzÃVO J]EΥHi˸>]em0cI fPv#'ovRv4EI=<Х6c:<' [G Y7BIߋpzq"Zv9pV nzEET^Zv/${R5tUtq'2R; P-otiN$~ ܤCQNE60"T2)6hl{Ko9%?*ߔ(YI#6j}h"(?x|;"){i>|+IӰuYY7R~u;nymLe \ I4t|S WO:= PA ANc^ۀƳob5+^(a#>|]__85M9Tկn84h"aIhxf\tw3&v,D{#@((.w Iu ԹoϪ ?o;?n-D4fȌ#-u6%"'aQJiu s&%>@dD՛frU>x\9F~RS{b|jl lKݏP]"5v*c~ћ'^̠wO.c[pjOqq)ãZx$c?*GFd 'zVHLK ߨEVʎ]nj=7vB r?dƔ5 8Un=)E.a8ƪCs\ %tq 6u0i"{Q١b 'Mqf OorOרf7lI_V5*zUe}"/ Gz¡=~"?ͥ 6+e#|לe #([g}՛cC4ԲL+#M\퍣IQd[(f#YdC ̿5aoh-KyΘ&A&ټ9GT~FhHo*/FoEGKEڹQYz<6sbX4/R<7]0iLfz@mFmeTd^%%|5c > Aۥ=γl2O2K޻MON{DMK0a"h{ :HYؐ,rI6p˜1mA$ OJK̹h?M)0~X!tGپ%=E$*2lےA6K}a^ZW je[C<*JEo3am> E D1ZX @F3647}( 3\l? F  "6irjLȬ'72h$v F;HwUrCI [0j! )]Go Vb1uٯ]N=k*PryY^ MԺ5r=2eDq: 3Qi/L<{:t}t[ћ#{Y`g'v܊-" o(n',l*=_IZ> ,*5ɼyn;8ӊaKB &J%'9Ϩ(?U @8op,-s÷׍_S(9 {bsf;jد u~?'v4ūrf] xSP'1>p>iƣ*`)ܳ<gχ3PIhXK j=;Tб2xW?9iG ɴy b!ͭ*Y,o2ٗNH+qނnxnQ;zqKlUhF9?HCN1t$=8YT H1y{xߵ!d[xEe Íxn_u& 껚b>R-{ WEW~T Q0,_֧iZwA%*ȭ>P#iboN4ZY(vtL+LybgxnFB{zcS}^JH_qmW΢HrL5pk0wKUlBac[ݹYl'K/u 0fsR^'9r|dޔ!",8GMT>UZ1M:Ny`rze1e|}y:Ѣhih)L%%APZz+'4b{N=wDZnç! |mbE'Q":Ur4|PкvMflCG g)ߵHmI(v0==gn2ıO S67]HfHOF6\$@%Zw)օ8Ӂ!*7R._oMUr,1So/ÒI --ڌ3[R!(;Sx1BDmuoAFUQqo͋uzgm{^e:>V1'ۍmMb\D* ] Fa(o[FO  ڄX%Y>qvXLa+ Р#KYBCs'y wK~g>z@Wf#ꁚqZ mq_ykP:5-j3UvBW`MCXk4 Q ЧGAcR<ʬx6Us zTH[Xi$EOC #06= y莩4ult<kȉzp?見ōWio.{.zoS݋& c*r/i:jQ|Y3A*G$ GV0vp4[s"ҎΧ=e OU/Kj0m,yV;Zl*yN"DY|j=L/[aE|Gnrqʾmk%P`2,~1;0ѝe^тyxiƝ\SM5jp5!}B@4 h@LULUD/]c+l9ɓަCjֻSGA1:Ulލ'\Lx6ٯ!\_F'+ʨ.VTU0By$`FQ/"O$)jgCy[s%ߪ8ɌuI][H46:C:O'7LY \ K *|b@Ow >|9P {qO7wmd, To\#gj!"Cm HO #J`BSMЙ""$wE²O@s!;O_7P0*7'"Ȋ"S|%SiXqPLx-R$ql`O|byye5#s5-6)2B@7,4sq"zCW\?#'\%aĢ{M_/0Ya3k^o )X6Nr`xFcbCOl,f2b5*hC냨/U5U;[LL"MZ_eQJK7KM҇̑NɓxG3wq%x\Yf>/?jfu\};+}+dDV$ti @W`kS?HsQwbٿ2$g+m)M)i8b8+-Ӆ* n`Cg4&?ȑvy>6Ug1YU %n0 έ_`D,6e8S5Ζ5hm=*hr ;k|J:(y2ܮ$}Y@ޛ:󴤼_US7I"vPbjSfO>wh%=^`A]w|,:# /x S`n&x[wfo ,Ώr>; Uӣ{cHG.Q)z5rA!=\yNH&m8VCwW%_|$q/cFSH x$C/#4m 42-ضcOgb]fFV 2 фfScM_\$x3k_5Vq:ۓnN-VKp9fR?y3"Ƌ<[`~yth[x%gdĔl2s;EPMJtB<4eYt[rC'ToG]MP At f {!G} 3ЗY  "d [ :?jX9LڀZ̲mTt(o4#;A.CQ*Xv\/h* >P*ROEɸ|:8vWƉs>>Z&[sZiꦈH* Vo}~6v-a5SZ$NfsŒWmP˷o`ÄpQ'fWh+h?Ԭjvy?p8 M>cAk%k_\"bA{;>)tA 6N[c hu.:C9?=t` ՑYY8֎t&l#~>ƒq3mw@'+@V5s١z>4:OKړXԱ0|SٍƎR ٴ'J% ` DN%8G( aӫ%l 3bR9^^$zIw3,:ȗ'PR $JqGGrN\iU awx*v3$4`3fnFQ#fn)^*e״j}\pȶbk }F*%KkSΪvZ^_ǔ\>M7'-U˳\Cw)]!b1a:t{廹PK}nF@i-je8BG^u0>e5+_xI= 3 !^^P9 ݦ,]}XG]:!jyJՋYLzD+Nٺq0jU1NΊ0FR [ܕ0cjOew%rT^JF+ѐH*38A:~?f6ˆSQmqЃ5qF-$յjܲ3>Б a(YZq&L]=5jShUB>W7jqi- ^8ʠ~! 1&}jA_ U> nbu4x5 Xge" J@]a;͂H)$2L˼`:JM-$˄GNLEP䭺>fJyS{Znq#\*<4VuOX3dLYf4]̠왒Ss㖎$W(.3yLVۂ"sR2[LZ/: pnADBb5Zt+|[!lٜp4'MUseR^n:HubY~3YȨ^ȈnCȫ v8bb{#/&'"KhlzTvO':ԍg^Vl5Y E3`xfd#/֕9bV/3q~裿6"eNFUt²G`4sS<D,N0Ȫ t-q X@#O%Ozϟ'RwaT*X(.oƃe< +s698.tCoUV=ZKeΕN2 2s\lJ7p暭F|Oά< !4 3`_S!wOI aԞ=BLKC,d%(/qHQ@~9*v)F :]BDn!;MԮT4Zj/8snUy[yqpw8kQ*Z0gcŌׄFk94bTv@"Gi+CenOjeѧ22J*u)PEB'7,鄯 lkcjLR0.'fkZdBit&\(7.n.kLSȏwAcxT?r!BVi?dW:Q[m D+~zwu)>I5{̥R6}@mpZ 4:c-c8Oa0O疑#sD͔y  ?x(+x`-2~; 5#u}ᔯ# ;5`d.h%/^DGry6'p[_z@VRWÜ7"﫸?W"6Rf ZM 3<,v>$:TxX$@ o-w.Ig8/ R*$6p :`)^o>AqͩǤ U:Wa1\EZ+0$d|"}Nb.}>}"XX vxo~ /Oe)/7nh2InNt`s, uλ8@ -Т$ C:<%$c%.CCQ㿰o;j)ջ4M}[ClB(FsWoy+dw.Uyn^̲2ꄶ~)I8-f,saVɕ5˨<54܎^˷/momX)]{ q ,Oʽmc&G^BJyZbY.ERֳCƠdnT4[I/)&63g6 /aSyā!iQ>$Ad>\u9"y&Ez'~PnJkOfJm(vWyY9k_~va2Of Sբ_8TXktEUgABu`n3`zfB߂[2gDxW xRqa]ϋ?T/i` )a ȾS&Fq)pӲbʻ/x*!r1!§& B&!t;eL4 !}NbFT7Ư/ݝ-6k|n=m02ė"̂o;{k_x2XGC;X[]p{UH\NjeG4ʔ[PRSVڰP5uĻɗ#”e`` 3aڧ>֯Or<ƙhgi&# fƀ˺z5&hOYy;h{I(4&AsD*N$Ӡ>)˂ L)ox@Ka?LWVj+{ut/B,(RҪVX"QKC?ާ1`CTκJ IG)OtxaLΚͪMpr O<)< ؛=%[~+ڪʯ tJN-gGV 4"#?YnD tXo\^Cy|Oܓg `u"X، m*rF 1YVuO-֦enZT> WU9C.M(H 2l#Gw=1XG?`\A[oacx4iyG5eƵ=u|Ck| =I( 8w2Cug*5궛02/,>{AwPCE.FAB/N8W7ӱ9 ]an9Gb HI. {ИcUBFU2Qysoj!s]nD§aFiv.{Jo |YӶ]n3̞MG-!d洚۴ :'4,BH<E{gyݒa,Ajwđ?vqk?HK928L6}TJ T*-^d3TƟf#L{08,2H K\FVcw,pK܇7gķPYSW}}+'3t٨s31Ά<*Jk R 32ih^~WS''k !އʇ*D1M6BkX8̵I'Xގ6_ahs%vDAt(fhU-ɚͬ_67d:,;Z 4r8wO8TȔ$ yT#R,kK~T`a϶E61Y` SܡG>ݼnڇUdd2eEkǞFŠRbOaV/a*w%aix!dV >8L ]!Ê'GS\+88E0}G-kRŠ;_L|uÑ'|quUAyLvNOʚJJ\^2.K-$ѵ]ͲHTXE|t/Fz٬r3jFD}T%dxI<m(j^rNY> )<;ͣiqOhOl>s”rqmyK6 aϳFʤ`:!WFޅ/J;r1c Bsu* sgUtO"Lyi~Q /XZfdU±!(>?JVNxII|ܔmH"3QDiМz d˗6 ˕5[)jΘQ>?]k&?C:b]^6|)put#ZK Ltƥ|r"z돺N{v3 x_2zɬW9pnd:&G(Rv)/mL vr)rf5DFG֐8 ߬`.\OT{0!d I e-&|@ [Y,1IGD,4t.iw&qb}[KxN@%Sb,6v!ećm$vv DYvzQ;Hɡ1J/mr}p|{xZְnN#+ÜY/OBpy+WM&L^6\+f:' m/m{xMX"[Dn?\_}7a.x̜9W ]z(Q[Bl^p!)*ijTZ*d^n/]`?)Nl:hTڵ>V@jޑuгYFN%Ǎwy0Z"h4Ɇǀv6+wht:T[Sڑ~㍓rDa;DU%xwwXk){~4RM:.SCHw語Po 0c!+Me)8: J2,>E$͎jr/"W[ꄔ9JJ?tDyn(3:XƺH_VpLZrڧ1 ?\1u"Vq&ܷl|\}a-zu@Izk"?g~Jߦ' ,hd=?m k2uFBDB8+d h A2dJYP3= 5$S/t)/c! ƮӳZkO`Rh6u=뾱@BG>}8Ёf@ 4)pf fo>럔{I^Ae|P_n}|gR&XLw6v[{e%RE6_m0siʠɟl# 4nT- ߒ*$yLe(Vl*mfM.k$.o%_'`c 4zm[%Mc)LtJ]w0C9\?9DAM3 -Zv3tP%pSӂPt X1(f"IPBY}N  )ԚK gYѹXm(FPĀoކ)ZH5B*(BDHɒ*)ݬ*DELx s*eb,5}!>!jtđ{#o37\ae'Pnksf06ryݍv4CD8':,2>GAv%!] ҅BhD+J>dqK}a.U$|okʏY.NzCEp.^4'c&x&u#0WKW1dʖ!ؾ*b9 l3ٿث̓Ğ(#:cmYcĢ|9T?<1-di ժF@ Ġ_ZKu*{ lE<]eu3g_ͬ<\rS 9W74kܾbJU0 <'3R{ЙC&VS?߼Q?t.2/Sr10psN*v8譸ї"?uc8:+jRUM% ] -AdAyi&/L \_ ]WўbDF+d*{ @^VЮl}=>8Dps3d]){R60 Qawzt$I n NRG=7BW"'–G#P"i{Hģ/un%6?jL= xW4^if|5 8,D㮮c1m8+^PLrP|ʜZfkjx Khui8.qߠMGGE]nt^ㄣ⩙Rpc4zާs# 5Tp VIc Ṁ aKn3滿Wd`07ՈW~S3(<:\4P0MJ_iY;`dLO>]3o|EORѪ,X2nBƵj6]-Ep?\\+|?1C6%TP&>E}Y%3CkFV8HgE!!ovkF)~th7UX|!$DЅO_W"0f OL7.ldW/FKUR2G)BER`~\'RJG-cc)޶x4"bEQv?I_AB)ӆrh??Ǽ ?t_6i!G/:8 ȢΕ'm6wko9Ǚ֊o.=]T47GuET* FMMFCIO+8yDSЫ?̙_k a9#[ bIc;RxB9 ,!*v:ĂXHļZ]?'l -֕-l$y6 HgGbɪ5AXZkd)DZec w] |GRz+&-,yv|d5Ai g:QjM5,v9 ^mYs~4;I7 `h&g GqPIZcXꊚ,&4fd8 &{F!!Ҹ^,&@u@7Tub.~Big|Vi)a3haVM ⼎Qb1xz=Y&q! Y 8UgCyVyK㡓T.%l~&‹QU%ڙo~yse)[GlHLDKr>/^"\ ho) Oژ'h6spc= {h^[xsNXWj nB5%ߔC]NoC؉bPZo]2wj7(ﯦ𫰣hOeO4N.h=*" T1N Bŷ`ȹQsFٻYPN #<ౖF9@Ds{QGՃj"8BXҩnjkhU9oы VO,BE<J1w9ûkGw_Ԃl"$о'wA6A0!ZxL.:aYlA:jӿ'C-ɟbnvN_2FGGIL7m{!}D.Oɰw\ rs<99- %\Ihԋ>ʫ$E&+J4Y95vA-Z=.]Vw*VAE+Z#Seb ԿBYƀnE#Qe#n ElF->uH&Wఛ`4=L6fLhij}%Uօa­I-zr4|O<؎0iVsmdž8A) n J[w&AX=W S}CdytJ^`b$D@[Khe6ThE:LP,'=}*7M :GZ=f9 ڼCFAa=Ra㴇avZrvYt]6]F Kb Kza~)49Ġ2auý=plbt/R' C=),v|xžYB!&MgzB+.Oi&9.&aȒ5usr?L&Eia{0%+$_\[-3&zdVKd"/߀o!]1S-EHJvp?볩9Fݛ-T7Eةƃ!Fhdqճօ`r߼'mѢʍ|S.:܉E!1Ygps{/-ui=~!Q=@cx׍]qWwc.*0=l'hMl|xOQeEABǁ"LG Q@($ʃ7G7R0L1I^:ohޏ ŭz%-U OhLwlӍ%pˠg3a^np&#{h#?kt0'`,}U4/JV{&|+l(MB9"xG{;SOI$n-B@G=ikg#Rs Z0vQ;C^0 iy"iԤM7!#<(O[[͟==")(1CinLf,k2+$7b8H2)|C$t71ma0Y$$4tRy%- n!]}">TCw p)5<\*( (k_4D}ܳ{xR?鼆&QyK_xb.MpV-}_uzǺ>y 1Yd5ۑ 598-u=t5l]1_;4ln1AY|{8j?6M2|ſʳ | 7`d?Oӌܰ@3?8|<JE#E*G=(`|% "ٵr=qeF`nC@$7dM)zWY ]|Cɛ" 3C7*1MG /*9# wNLR~:),rVEB 6 {7OG^v"?0KBtʽ@}5 q{c8Nk-c0ٟz6YFL8 F&T4+ Fpbb[gOtʤyA.GrD V[(: ?O>d"EYEC)PN evt8kv 2d'⢔y(W`$3t=DߏM3hnH Feo@*h[GmxXz%W')mYqj("RLa[3"c ':ٵ/%Vh)=JCړ9>bkELupNufaL)%oL0FǓ}-e#^(8 "*괙Cҫ}ppDppQl,xСeϨv&C@ƽsZꖈYKwXE* Iz^˥#2a1IZYI = Dj嚢Z^@r,ӷM0;D~bnɾ "[CfR~hJc g{3 kZT iH~QF ʐ$,;_p," PxrFэDHIqv*#daȦ͒CQ6E&%&"Y "+*F\eJ&%Th0|^6Xsi&pDnQ# /8xM^U+X? Ҽ]e)MԇXOQ{iqǕ c{E_*Vph |b<;RfݜHZ*NL &jV^ pr|*(Î+cRJHkC,eLVKoǀ,&fw!qkL\1YM os 26B24ҮV9v'&Yh!l,tv%GO|=|`F$e'D\+ľ]do|ha2eff& in;牽,MÜ]T.>Ӂ% 1؍l_C-( Ï"7szycnc6p%O!}>xwn°Z-:ΐLE8 & 1Kj,=Tn6,{YUۺd юdh'WԩRԺCj>\Fv ԡ ;T]їY,|Odf-moD7h?X^6  @m#ۿ(1P(1|i( Ca"*ȣ]ŀA{qQX ½u`r'^Ib+G|㾯I^LQd_d>[kM"ݣ5=q?䪸˗yAR&ubүY~}/L@|v@\tfjݘ:PXP:9(o5oƛ\*KW/Q4 ӐùcKVWNHYm/UNNQL}(̸mq^hT\?H@WIm{V{ē w5gy ̥ Ƃhk:|_>!'CqM|`k ˃9? Z\\)HUOEwa#tA#}Ն׼)Yr?= B"LtQW i ]- rf=r^/5m闛ٵ(E\P!Kxd8lvxؠS> qd}l +mg̨Z{괾F_r U{o`MR;i[PF! mH& U)?ݳo/||jVV /q)LB3MJ+z&; v7)Y}y5o#C3{CN:uv7?iL3'7ԅA=$i avh Ò7Cbe \sKRo&ni^UI-]D+S6+HkfҲ6)Ծ<+v p+*mn XkD˭#!*ιr`SɈ{f4c|_Gz*4 DXtbYS2/ @Ƕ|.T:mA:vOu%Yxk]o|j}v1&#hHZ Ā;7,Sܜ][ff0aGyH:v__Ł4F%\oZEN$c99=Adoy5WrxDN{ES苃䲋".N#Y@6j_)8U% &=(Wḃٻhu3Y3U+OY[tDwWJ5k2 `L;rD;f]ȱOn;lɩGNl,Q؋bN2%;0; E 3hp CP@z\J\ULt$ ˍM1O9!NsfG=[ưPfV8|V9Ntê+V<̙`2{`~[)n˙tC Sr02Lǹdj`-`rcoŜSUX_㨴T*S[b_XT|]3߀:<X+Zux85ւ7JGOSu$|O2+#S ƪGGJv_ z'n:wW8jшs$,s#ld#Q$u| :77xM٥+[}@ߟG7=Flz>o l317$H"S,2) VDuK.>KuT2Y1[XWmb!j4@=6ף? et a F턃ѫ0$3^miO^0+ZB@9 r!y={P;UdM+.ܞ4I+Tqv+8`)JGCaԗtZ*PsFJ6|nC5) `մ/O&g'c9ڪ0fV̓l||=I@G4֯P0Ö7dΧ}r3:aC ;8x¨KRb(Dm<-?HG4u6Hcobb /( 2 a8H;qکKl+`1قU[ tU mSrWU m^֪+ BO8>^^4l(ra+Y۠)"+{޿#+%jG/y '_ʼ{ѪҟUfk  ˬƗB ׁ_̋fc9>M[%V`JS1Ƞ +TZhOJ#C]tJlesdVau;ZV}77H0(_pe*6 JVoGJ[|DטrԣGef^N'[z^[&<\6Fosп[/pǕ$"Ncaϥ`7#+%p8@(-󲵑Ӗ߈wٮYEY;ڬ+~wM;$y, =Wɬ1F~zMmϚH%zvN?| WPюD%(JsS*Mɕg2)avEBUWHRбN:’@Y#XL+FneqA{k}a3(zau^L\FzuLXh&j\LHw[,D}WKHp?CoĨ5Kݐ*t9:g;O+ikdž_<'v#t(b1kv[𬟙"8 Dn*zQD/%6<"3\{L2*\pZs [H+Wد8)GhE#bOb(~ qWw+AHL+R}r],?KZV* ܛJFT#23*ϖ7TY Txj81ȅZ6$I-i_HbaT .CM1 St|?N-\lAlxƿ{2Ptel2!pZ:5bBoL/aPBڤN4+I^ @KTg]X/[ۗ G_YHI{ngtA}z3x0T잚s!3MuvCY#ϡ.2z̋a,Ѥ– + +\i]򛐗 L]_Rnm|(Al\JZ"\sjEUzllӽsYVl܊*2&BջҾ0 h̯Ah|y_oe`2a,M!ib_04%QinsƚFc-Fyaܔ tmJx}jZ_u%g.ZƸÀ/F 6]H_H_I ;;-I1LB=x Lwp0+@8|qp!-@n5麎=g+L> ,kifz.9ʍ_Sַr\Ng\L;?/,Ka8ـ-Ee +y<3՟fFmA/u4AϰraH?ɯxjp9U(~yÁTOܵFjw%7k5; ZNX_͘M"BbJb\7t5%mtZ9j&b$ >[$A:{ /,o4}OU bՃEc ;T}g3ߟo'C4e+TrZ@+~s <-T1ut}~-n6í24Bf́Џ 4/}H{1RxbXiN_c1/~I⌏4Pe"<{rx&Q3L`W8n>i cC, , pd6mDu~gcإ̮݀9I{:Ohdo?`aڐ%Bx,I SOR>HRʭ@gG%MG4Z6Kj5^QX!'XsY Sl lJ:)]YeCZ/o.֧'Fv> ~2-)ʸdf!9saz_ycߌC<,*D=n'*.?./8oĻ{Kp]*b X(̀ 儭ފp&/6M$Ԫ+VcK3&,H6x&0 +2L?Q PaWή^:@>R (5⹖A۠$,KYҚÖ: rM!p]F(q=lmrkdc jk ߞ {Ǟ?ꁄmL ayjs##l׍y3[jTCb)~ӄMi!BC Hdє[*cÎXَWdݎF=ANW\F+ _+?f}d{_ʥ+JH>6Q!}Lɽ)Lx%zPAg쒞Hec43/e,Yz]j]DjҚ>c#Y%5K+}y MyO`L."AKYP40P;)WX.kJ饯7_b-jAOO+8Ƅ$-&1Vh2AxLG3E$=PYbuEyRq=«\bz بHrrAHk4)`Ӥ3$GKJ#j͗H Yy<-HQ`'c'D x!F,yK:[0@B5 esl+n9bX8Ļ /zdrER'MCEno[KXOi䛺ae y{>G6uz{R1+-Di9XF_J1wcWPo{]{ h Uݰ,Qk{Ds*u_1ϹQ@yN 5L`[Mn)) `!lrgBe63#!^LD @k=v>=+CIuĭTe?V arURw^3tHLZ~PgO ^|m$ňJ*Y@%/@2;p3sp ˼C}6d;@>YtB$WP u{r=nS&93ef4}Z5 1μL]s ݔ `n•քf)/j0CHGۣ˾rńuPGďvD4q9f=1K>< 鷗 ^?#,,/F`Ѐ=AK; OnҰ^I>>(:05J9ܻag2uˉH\x)bQ4qZ]}B*Md[iGH rj"lAn $=?[apL}Aԉ6b?Σg[(=B3!rFM r )UMOo%rD$ce/N|9b}28^?fbRW0* &f SI|[0m t@B`>$^7ԝfnacü6yI͎CgHIjbn!  #o{nΕ[DFnvzvYhIm' GX~Lq(ŒThM=:ӺS<`BoZ.;n;#,iƬpI 7zVqgج;QsV5iV_x3OU本;7۟fF5fG St k9`u14~'+&!YnãS(p: G)89I~QD{P |[BS[JhQ#9Azbx%h]~I&L%/H2+& e2`I "  ӎJwke" ;V o=WSONmAsMLHâb:)2~ߚc'!T,eӿ/7Td5QM.rn  ۤiԊ̤`JcqըMS+"H}lI$&bmefEqu4G}4eI0Q,\MxԼ/ȴ ?Rb}L1S L\.Ysbz84.,Ez5maS;^ i =mfϠh{UCم"ߚnrJJv`}b52w2$nrhѝ5K:qN?Pq.:#)Eyw+2oY<&0&BZaͭת}J[DpBP W`$)dg [f#2gDɺo jYZk#of5r'Lf-z6>n}:4='{{N6{4`of*nx$&:Ó%~ IJªlҭF P:ɯtP]~)]hV9Ѥk15U(}<Ƶ/E')E_yGCAH}(etwYvdYәUL[#p֟㪃m=>u\yw4 D-Vs[OX6`$#sUI e|:d$HizA!Ս.:/,,S"7_0HdD5;.\!MvacRb|MUBu&y-.tY^j=6d2IGA9gF&_ [|^2Bxzԙ:ƐePoV(8BDC Rn3.wLAgє ;yNoV@3f,Jt0lբ89AMXn @Λb;">à :1GW юi;eq`[y *ˊҩ7ĢVBW:P2;ŦADuS9?tIY :vԻinyy¯<޵/_>5{!1m;WE؏{\vב^w ռ&cČ3P<N<l$O%z o@HoI 7+ ջp.v4Ԓ#Ro5 {E7qcnI7!@.~dkOj֏}=qkؔB6dOy<&kF;w[ Fj&VS @A;' tM<əS(LUqbqQ-E%9?ī w2ܯ|8}MpmjBP^NyZާ?q 0f)HM]뙖-u|!VP>EwicilԱ|I3Ph% s“4Ԃ?Ȉ!3Z{f}Ճ:QNF:?1AWB`tGNp)g]JòѲdvd\7kY gs;!p{Uaaۖ*_Jg(nLuKUo4R9aQ hQt.mѽncP?Z 1g:^7:^^??aNpe.=ݫ R0G&^sw@3~}̻+œT2`UL.1gSUC|.8h.`~2*o%żS3-WjS۝\HbI6~/CIk+TA%eV*pw/ZjSN4a"Hq<(6c%_9>BI5A`7$կI0dX7u"S7̗N 2|ԽGRGfcm|%L= ےOX`9ts[=LOդN|x'٩w<ΦKpKiEiI||h7gLv)pF;{_I@T~[P04S>ofGǟ*Kaqhм⟨bn 44- 7Z٦u6 mR>JقfcBO?ithDO>`ID'$xͺ4֛m]2*ơy"6=uQZ{s11nT>І {XVk9Du^=dL(ɽJ> &/0ٔb?υFHwm43/]T2l+.5p Gp; O8Ήe^fQѳlWnoS̷V)kVS*0M&]pol!jjUfntP2E{G.cCe˼1mIVwB.FAp|ۧa禛|Ҁsd:5W-| (Y*`3 aaF@; ȾJDɮ~ ]r:Մ_uMS\r4-3NHKiYFĒMw &Iɉhy[Q|#&G߉N,%5pɚD ן,WD N}ģόcߖ9=Ǿ=aلۊ!v4S5`PwO^b*7eDU|ͮ쩜m*^+Es k]dŚ'z u}Pp59*K/zl< a0ʠ0l#>Ny <4{AyePvۚ=,>b idOM ,#=857;I+rPJ7|2Oǯ$E,>#Uq311$(QY7UZc~52нowʂ̽O0.]G _7ﮉG=u.Va, 8a6dN݃/4 }@6c0 >]tGLbq1? IJǟr%fNf'lk#a#gC#o$󰘺B*6+wT#]@I?`GN/>tqR:,",4*JS}ssQrmw$zc:iSЬῡ@M^.Wɦ8> h3=nܭҝ] ?#9c'99x dт~vͬS-A~9lbbDXRk!l8F #jA[}@[ ^n}L`"5VS+ cbĜ\E藺/1,R?Iax؄Rs4%C_{ OQ bO[As5ktxj֤zezN!0bk팔,vry޾!MT;:3z Ŀx:egt.{QckzO&Ґ4idR/jdr1\j OҶkiJo]Œr]t-fλkQđ7ݤTeq'z}Ϗ MG|revQʓpKr׋Q8/klu &2NqZjr>/* X=ܺX"vuP&R"ԪP#3Hy {G&\} ϠWф[ؔ>ƋTSUh߅Ӕ@'񌙈 P>)-/cxMIX+!9" ?J Zj(hRHlWњSdt>38y;lamI%'8wB`fmRE&I 7-f;@mTn(Kt#F&\9~=Aק>/}&8U% +񺓢 9βc"nBT`i6Fֻv  /YSN飡dol/- < OP9į聒۱X窋\kQ@W0(Sߝ"pQٕɜbW lwm.'0 *dVe^K6/0Mw !.ax%qBϢ TD0.見>`j]S3Vw%:!$`Cz<#|pj>y2%b,gE,;JZdL? S:ZΙd:l^^u|f68&&Tj[< S]PW7ڸ|GJxsn"d=󩆠QU_l|OmϊO鱹j~+!m(͟/ !qWqa|:~+]E 9rrQ;!]Dsd[&Gj썕Vj@y+Y:)|$ -qznJ4SiVAX111^z5g+[ʷkbgA9]-bޥer?bI&-4a!аvPBK=)8yGl9k=$kT<ٮ +Q19tK,/ QW5HEzТM(NC#7" ?mHK=Jᄇ$Α0J2 17\~`\"#\Ν2q4qr.kCN{}!;$d{9>3xT)%nvt-v<2$23g̿Au pԾ\"Ru z'օl@;eu9 &۔""h7t5i#n6dxَb ]i(㓁fQyGGS'q[jUXW%c^pHtz5ρcn%d^m aR5Ma+!zDuf(B)25^=#9A''~c>N5rs5Tݒ+#F W=ӫ/ĕret6YoذіXɲ꫽M%tqj{H|P/@п9B d-JVCGhS疮;zޮ߅㒫ǁf}=X]iѐTxC^0^;5 eEgQkYIzaѲ;R&j1i nʦ t@J4N(v3hLN~/_ wOi".? HYc/'~ڈ:44yxKMU|~9EAa/I X*fi@UaQצem[^jyx(D=#hSZ[~bX.'CNRre%*}>R1U 2Wljf|M=V)M qJђo Yٺgf:7aqH gN&q=r3:S+֓꾵>F:{ -Q&A`TmBٙӖD-˰ćjE=PI- 9M] #'0GG@%rݫƧDr92BCM hUͩ FnRgma}}wԝ1*TQY0J*^Pk !ۃ!>!| gQ ˛zp쿑#zbd-J95[Pc4JxBkϏn+a~qY"mW>|;sf]jHЕa8@VSfq{;]f"[ 糨Jv;F(+|SGzCtcĮ 5q;͙ܴX >[RWl.xJGkMv5* UQ1*ʳw镟ŬޱpQ2B/kxmAU穇)T]1_SK[<|W*4P4Zl~KjqUcey*ctmՙC~qhP잟y+L*Y8U3[6}^N+n:+pcq#mJ#)O?x_S>+x1Gc}$\0LDAa]8j%=/&#]E7AFWpO൦J48Ж8(T9?E_za+<@?^:9kqG>1 :؜ztqFx3TJT`]N%s+sȈ9Vr/Us[; @/VOJ0q@>D4̸@E V@ >6= H 6f({: k[t`򡴩s@SK7qږgwtz퓎e 0,T?U.H#ƔlB# m jRǯOgQ,.^z &/"WIs!yvʝ$/`jEx4k-B* Pd_%q}8[9䊟\;IG>(~MW\(};Rƿ3Ү<^l*{~U8kPKeQ“S]VL/Oq#RxUvA%]Qis}ZڙMS93\YO+E7ʯ/x"+U5툅ʀ#vӠ1WN+] Ɯ1 z Ax+oұ.!hEN7$OWrϺ( 6.!9_wS^ LU L:aGAwi| S w},bɠ%N_0`E0ŏ>GZwm}!.H[A.rn08+Q]c\lEyH,p|`ءTFeXmv(//p^C}{o*xNyp [9骼u@P(a0; :CLD==QU:l)X kqhܹz1 ܏8L7 PuWmskA% ?<>G?c:(Ұm@A1 F-ӤZHU,:6gґ7HVA'\]W5yty3|_B-~TNp"#5R/Q+9v_6r;a^w\׬Wl#R<_ ҳw%n0JƁL7QF`qE1HhnS= Xv~0ނ@FisP/>E?Ԏ%o7eKJJTY&򚗝!3f' x[_&{3yoPe>?3u䛔՛N,)<.flVŒ% mj D4Hj`>k$UlPx~^-){EѾ֗aZ` a$Vm"U"wNL8| Gػi&8lId^дgUc:f("˅G@$ ^`nꙌ/@O@S_,JBp/;WPS,3{?땥?Q.=I J2~@96wa AZׁ;bh^y,5!hrq=U*IBŏZ2s;5AYfWLsV?p\T3bOq$H4tƜ.vB2"uYO?rЬ.hr(M^4"7YyQYUDؒi^.z֞EX콤|*.6?pgie 1 dEjBgg؋_1K;/evx|*%4UϬ\yRLϏ1B Y.-Xu ؙdgwf֠7汃~iz Tݻ oւy{`_<̱ݡqx!*6}Jà|IiAQ#ZzYe< :v({eqq]IDo8@IR'X5Vhy.u`)mVrSq9C[Xeϥ8aWS w6q^:{HIu4!Xk\gl]`%*܍PhR9"ƮUdCA ~iF(,bMCM31: [%`KkɑŮ"YJ4񀀟%vjBHsGX9r>W듂f i5j.hCH'|8J e!C'W Xy"|O0FUO5ȩJ"%fW3 WT}.f`D5j0}`U9gd+Pw?j^n[N-2k@4Ό"70!ܻ"Gi 莩N۾F6y]|yax:麟02\T. FݱM .u2h? ⋌GHYT}vZ&090ć?t #%@]yG߻q 9iϻ^tv~D _~)>3(%Ѥ oTD7ȩZt3j" eK`Wĥ8ҜgU6}^*u" ?_e$ cc Hhݳ_/h,Y#)Օ @zdvkrP{% G.[%%%xR~>sq\Ӳ={zͬ rd'YxLGqjZu!'sM%L+P/S|\7M١uNsC.@W%Z7=v|N%F :6zݵS6`d2o^.D-uto(.dVGwX4Ius滎Uh?tbfK[f.j< *fU^MalzCx& @ 0OVTt#l>ovﶨ`I1f䜇oyS¥>*S=4e;L?rc%j/7Z,`2fr@gZŔJ &T󥖏5 Ϝ3n?20 *+(gh7Kɯ9k,q9fO@{„B:HN{,<ʠߢMHF38UşR S÷ %T. 9 <5&=f]L7?̛<֍&c  KJӹ-Yq m +F8~L er6Qhu9zXT)\hE||[%*aї;)@5L$+r3A.DrŔ3csE<ҏ4VJN݁CyxϺхb$ gZPaA2W H6dxvw)w$EeP $KsЃ{WX !<5ao.J%mת 6q *DBw'Nu.b?.+ Mp*C~&R!"u9 HkF>N7:Z@c$tk8*G^" neR5JX?}6m1 хzElux2Әt,V,\yiT㋴X'^;FKChfRòi d rrW:-XFrያr1YJ:Mu]x:k0Q{q$36n_ᓀCBCu t%HS;'7vր`3?~^@%s xGz$D:ki8^.Sx5BDyU;{ FL7~UZES&O=v\O֜; 1\^瀭Ő[~vȭYsN{%wVf)aUsy$P-2_Q q&~^z-!-2ݫNˮFтn~ =1FӛpFJ>quэфChF;lJ:R%|BF4e$xD¿&չ  l?ȗ÷Bk4X}|M?q49, hVq %&w00ja5:O$D־~;$SHQ>Kj2@q ģd|wZ7 >V5K%W[{|34 Ta )2zC߇QNRpkH~_)SsK=%-.arKag68'0-'xPUPEY5*qM #ozN<ȕ -Î2H;qhYb7FhPnBב kD,vyH^~ܬ`c o Y&+&3N!y~o,ʑWde4)}GZ5L8tZ8`3:qP24auзhq+CFEAJ utB q93TF2$ A= JJ>4d ; 5;>X[>ŵVR xi4K ǽ&ZmO*\sZQ$$nWfLhB]aD.'Zc=ᘫ3\_0+yL4^<= L6+Sy;8˂1\#-Y?9y<][ePӚ'L-0A(]?6gF<=O_֨ ĺZ-;&xіtNl(b:b;E=j)7~e%u.5p9E1"N\HQ+]TzZ%L&v[.%萕ׇ#?&wҸRx\Z቏>>BJS@]ŝيK8,@0*|"gM_yrX 3GlPTi0(k.(d},TqҧsIfNReȵ*V1YeQmpcZ i֊٩4&oMgvc[ a7oU-.2J6>=>R"wQ-ezQ-H.%tqy{N : ""TXlX| B,xU{bqcDm*̵Zk2S4u a)h (x*}-Cg*ُ]wqGT?FSRۓ7#Qihs%ln gzu`ӝ$X;( G/)#d`3v^G 7VH*ILx#d;KUjѨXPC\8j)GeU]ToEz&r$4ɑ3wDKƄj} F 0e&Q-[\ a>pwMRvL 3mdZk8nL^6&1*)umnrp<x1 [ǚ{*ZCŋdjn AA =@6,] (/G )ӫ¤R=]șe]4' 0C . *y]_)w5Aic+s̨V\ۘ=}[B}2l1dSr4;kLwBnX3};cR}ȸ g `nV\v-X jB=qO+u sS~4\ff !VP2%Jz)#%5-¾-I%槊_gv) /D-bM^Di^Y3 Aq3f^?m1E(v*Ct3hdί0COJl=zYKPLt(.AgcY@:ta^#)m_+ y`&, ^lYu2>X%`w 0S5?xlZ^Ū[po(i, ]^r{QV g;jr~U7 ЎE".'(:r]i&_#t} t egw} g9*L͋0Bsw$9y.7HAեwsKJ9'F]1 l\n 9 |oۚV0"ΨBChX]@()lUxW颚y#[z%t],[;jJ,Eۗn,3z~)svgVMP׳{L֟ qTJ Q <9t"_L7oX|N7DT&.fMF_; |a];Aqb+J`B;]3(W'Bh.'l/*DKI[T;jwډzs j uxb~Zhd㻖PM,7Ϥ_J;QH؏ꌏ쌼}+:ܘe= Dբ/pPaxh"fs.fv XϾLDDOjou4, \PqF!/(oA#`5jJ `rWV#n٦bƗi0X% 7R06F۔[c3;uQ<-1hcBŽΉ{ݔவkq|DWmݖ ;~%$xu#/fz^ɏkd)95PN(lr2Ryʥw<DS|lSk,n7dݯHw$!u*,֎(F24<y8~ϚE/7!5Z2f &Ur$z`d HW*L&f79 ݫ=A0o>Ո6cw1dϛj330x=込|W #PΤ:xso*uF瞯\^bw*ل- jx&YߴIyGd%%>A/jQ " z&*}knv=I=ci/>&ƅf gj˔][|af]e:C0`<-+|RRr6:lT{ZMO,?q40|i$릂Oj3?iN#AR;XT ^Ŝ> 9!-#淽a5(YIh0zd㘠k# UO=dC] bmNeHeqZmJa-{w3W %jI:C)͘K;n]G1.7+KoE 0l'% 8 Q ͤ#xKmv9^HV0"|sP#:㋇\,)%0L>^Sng[͙WYT|@$Q53aeMѲ8FHAю38?_4#z<WS9"7i[/ўZ"ܰ#\MVRZޙK 5dn J)Y& 5|_ŗOb#A7<|x'Uq2  zfˀU TeP֞tA'x> B >[BŻT߶旟E8Ib^'>PGfR|2u;MhP<=DA;b6/l|aLg$\\f]?^1T(3ZKB1ls \ż L8QiQ"MR?\l Mm1C6fgӍjގsMV+Rt.|V]zٺt!2J/"N0׆)X C86CdC˸HAHTVDDHd%9jZB۰' \F:VܕF b.f! ȡnK]𪶎V0Ӑ!a=X{EDT/!\;YqyFSr:![Ʉ Ki Ү[ʟ"FRixsCpLϼ݂3b8)D7XȆQ0$gAX9c0DGR6>020 z,ѿoI 5V e<۠UUji f@/wGWwg4G m@+fXRnQSu6첤9 ZI\Wa^IøuUʦ&tQk3!i~)isZǢIUȴϹ faGL諯nNSbZ7qGo;ev}2gMM~6Oʢ~^ &Z;1~X),;'qKhwz`OԩT5r;W}~+Ԙ')g;{%0)#6٨KmKʺ&-Tt#$AppA7(ɣ U6(D9J(VO9OZ+s!na}# f^zpvŸ]D&}H~VQSǢrk̞|4VkysĤlPM ro*WF/eSI;îU.D'a,/֍İ㸮A'`cj޹BB\xT`qD[Ǣ&.=}0M_>Rer#y(yC-.bh gSKB TZJ@75)װ]IGjc\I*~ǀKa8hA28u˯h n#P$GBEU't{~Jգ(7 j0X2º6,퀟#z:BJ6J YT5WG752d"/-uY-x߰uzI_6xVyXk6\{)9ѡz@8"9*M4H}'0EXCLRT#F6)Y OZ˝X48`E[jwGzJ@S'2iXU8컸X}%$N,UA!SGi/O.'v?oT x* UN~k1l;{-Qgd̓?S%M} GeF3OomV, !,7 vDr@+-6H v<-Z.ӶjO+GB_Kf"LS#5O=](O=#kм*qfܰJU6.Z%Dj *f]`Yn[oS<="[+SbՀ ,W̝&/d̜TA܋ e_2Y=2X ǷK!MüJPUvyhD8HjK ~ %/J d`ф\10tf-JRwP]f# &!v7ۍM {nSWx`S#L˵H{`/R1,/"J0(qJbcd`/m*g T''xFdB?U$\Fy\s 4;Xƾ/tkr&=Ub}y!Uc*ThyS!Pa/pٵE$oU<3ŧtϘbB6yA[:=\]⡿Ax= < jH,-Mz)! u<:Ec$Ln{pF;;>㻛u>2- k(H:Su/s"bj#V@£~(E:$-\؂,dX-҈P->g'+ӡ*hқUp0Dv'F&~ȧ&X@r3O`%pФ.`x*zI #K9QOKjEh?xeUm6("W%>0RN.[ H2ڵ|8Tg6T*s^z `du%7 B#[<Lz]ڮkBZ9 ̉G?JJ-kiec?sEss)a,'hDr1m gh}1x<1|C+kz RWͼ/w?wƼ( ݨ kA<8<42H گˇ x7(֗ݾ}R1 e=ƵG4Rfx#/{'o+GXP,|<.h/dN5;:V|,uaN* 360#qj-24Íyb^-J%r?ot'QM}YT.B!Q.&x,{5TCnǫUwet]\@"7";X d +P\]G`hCL}`͝lgYl<ӈy?؊9g'wyI>iA n=7Id"uU墏wmUgq}ðfDlT2x_t]Gnd6ݙPM~ejbkc̅?_ZJS,h!kf0@ON*Y:z|{|HwB$f_Ľxߒ.)Gm9µ/6پT.k'(p֐@Ց`]Lj(/@DH<ϋ4i a1yAxxp{aO0^>CFۤVo^ӄ{]8 n6k֟w%OÔ*EL|iY_l&b:nn9jixtZV׹QXRCCؚ-qc>ԅg>dꛌz银cWG"]#L)#%ZH#-80 >!JMXD Łҩٴ`-#wymUyۏ.rE6><,V⭲W%Y%H\\'9v-[im~1UeyMS6%y$A9"l3 8LV /= b ܪN^ġ^ҝYDC_P`G}ژ&KɆb_U`nf,d%RSqLF+)Ic&*Q[j X*!J*XH9G-rI3}yŋw8?m%ݔ͋Jup5/]SiD&p0.kȖr&Y+ 2`G b~k1m Tp=8d$BJ/jU%+6#J61b eϰjBiiumF@R9*ƚS@ IYb2e˄y '\n)ϣ,J1qb猈6_UH|M.==E|epw&j贯D8Gʈ Lm P]uGTPFz*i*N\8rدz;<:ajK`hlGN6eB^DwʡXaT[+C}AocŅFAAvKKMeZDARoDw5_jMceQHJKnVpL@n>HH1 + .P{8Ϣ']V/kߑĠ'o֋\WOUοYh`ƌN'9g# 5* +lUli ^U:-?f 3Ⱥ?m-ڢ9E - 0p{Yohޞb3niB5~Rbg %ebZ3갺ISv%bH![*SA d -ߠ6KVYΛSazZDLm6cm:Ͽr3:u:^T_`"Qwb ѣQlS _sRB :l*v--oKLXk6@[U*@˲*N;p t?(L/ΕYߟ$7$/_' (rB?DsܪKr#+LЉߧm$Ҵ$_קL`vw% BhL0ߴOQ!r͸l@VٮZ uNL? 12RB'F.%R~uͪ+p yQ`Aϩ@8M3R͊D ~ttTFK!:$/́'`+!e^3DGLV `רNt['$*˫ƽ #t'k}x̗S5ȁQHr dZjI6|q|2zʅ@Mv => x'NIhlQlzH֖/.;VxS2ByZ5G04aci%}n-6:2zU FlŒN'F`0BgNe4,ȽyiDGAʭ+fU⍸FX/' -<3;~ſ&Sk] #9[ڊ*l*z; Wo}:I&8l ZƗ;[a$hGaxrSLL5J_Ӆ ^Qr9e%Wy]s<@(2g]u\ڦH53]~ ;g "ͨHdf7: F]YI$Pc؜g<ʲL,5e?P ]R X3n3G TcT8/I/pm_zO8J:IYydJ }MN"xa7t=6%O.5Ψ3[ўa;@@5KhАpʅԩ^M˶%Yvé! # .DW;Aꋌo`@ZC")OH(1{Ƣl:C?pPtnwNN{ul(bU=*-k RiI*x_\ ܭ{$ވjA鶭lC46XXԝő>S)q"i+uniED3fL6l _ή2g)ﭵ(t|uUNJ΂uRlM ?[K -/CL ) 7"hi@ۋ=m<pW%q'ČVjT2 Nc[[ mDm*8'6t0Z}NwGX []bXInpX|Лd%B:'ͬm.?|Dp׶6W+]\ n6/]adipui'P~| e 6ǕxJva]2{Rq̚ ,ح}CD4=hb;QV6sP_5aSTBօ (}S @e~յbؒ6;@{=V" Tk@Ҡ9CM 4)$y+LC;@M@A 3sn<.~PkS/ :EΒe_;t^|MR▶5-gXkQI!`q)ljTd~ 1InT}EDP=LQ&Ao:@kU-: ޡq* ma"q}FL(VR4؛"|k dY,%MC yrZ?\3/C%9P񃼦{~< 蓯 ФQAisOϧI^[eۅ5Nȃ%nz#&+>.sofoh胒.V# sMp,ra[Mo1wmcnhi0apA*G4#ъňvU^SJ gwسt`pAb0't³Џ([Bu{q[T |b=}mҾk X biE Db,Lk46pX'MH SA{!Yn.,Bj;b,A]`Waߪs >|_x9ºhS%!wr*.x=%\^\+|9#kgL5P/W</i^6yEG{30h]kkg#RD9B~XZw)^}#InGO<}8oEԱ'TE'YؼDeF肖#3wp"%-I{E*35ƱtrmEU ?Rd۷s䇖bU!:5Eh;ȵpd5Z$y֤N<Ԛ&?hoqn<' V?[A_Nɽb.pJgay'!Y /'IRxdm(d&cǢ1T! kX݅lXJ=!M( 4kCȋijU@ѯ&-B넾">A$̱Wp!?뀀#VʳYεdε$xvd} P6{lI9J̥o L;cJ S"$\ {\{8̧Rmq۪`PÔ AZnPP؆|Uo%XG}FgX6-:if!s(Իzwi>ҶMł-P֠ѼWh_9݌e?`b {zMXECo*DpJFw}b }ǝI) IFϋVHLYڌqRpW{|@XrE IH 8Y5 <SQexKi;X=g0:@HZWoTI+#bN9_ jNv -U52\f:4 ވ|e6K8fſZ Tj{ퟞi79etך7,=5M]*tC F9¸"\5K'^te[qy)|#r9"i+e}F@ k`iƲ{H8៺Pq4)ZzÒN^qk}C 'I1emVPq1(0Q0%TTl줹 )#41!GҥPt JMPTR)HgBBy9";i5W31aGjW5Q {4lKBʲ]ʢ+Ō7\ch1f E*(٥ t~췜+MI4-§>hזعդ'։XH; 2 a9X#M9ޕ|_h~1?-o]ZM@T!$;[^ KaY=11J8Qb3G!sEFN) L#e7EarƮ*ȕو-]!t ίG.LYܼ+g̾a_YusMvL]*1 u?#(?*NCt:orKr$8C=-!.w?|ن)n:4bDs.6xtj&m+ C朖U!mS1 efC>>Q5T|t; B9 c?;+$TƢKen> !H`!9FYFJ*`}fZ4d73a kxW0..N`-y[D. U5x]A[sz,x#Gvm]ɒaO'/}Pʫg+U%u_H`[JpF8M"y5hk)1[h? ,qڙwWAI*=9N0 RVE#/3[|gV(7qV1IȾ~bҳv pö> R=8+اDH ,1جX{.)a> i-A//# ;:X艫U"&0&QCyZGى*ׂyQ/Ҡf!qy{fD.GW/ #h2w[vۢ2D)]y}[yeMty?M!bG%vEh؅n 5D ۻ5[1$fՃɞ!ƊDP,76>RY(B䝊PZ> Z @J1F{`lI?|$#Cr]T&+@^^'=נ2k)4RsW6i dyx?cI}e%-7mHi{ǭkcT9}"+8_8ϵ,# O+Qg\L̊Iv*OSH |m]B5;wKSj Mx!ٛQn񟁰hOgV^JA_/Rhn7 i\~b7J^P]r ԏ_4Om{ h,Jbi*`OPl=6%0|f $  ̭|ʌ.ppFu8?y~>RuDwPαg{ʫ6Y" /h4(zo[Y8ड़M30AmR,= t5Ev4n,Qkr\7O<]R.+I9 i%"uqwBC] DϢ/ArEZZ-J/xGU=k::Tϗ.㑿RRD]^Xz5L"̅.$p^=brRbo y˛-r)6Ҽם`2| >]mh߹:ROyZ-MlÊuʡȓtE>Nж›1lcT5\s{TMu]~Ã`K=Fĕ[M >FK]Zg_d&F`y(JDznk*h|wczB~ř} y{q'e*'OfT#:d~2ӐC|J[.Lqry:JeToau=U8Sje}uiߦ BLb`v_bHE['0,Uh_Gѥ.ϫO_'G7)N/FyEOО&;( F\"߶g(My0{BMᥐ1^ 'uڢd}̩I?3C`IfQBc=}yWcG׵r5QB`S\ƾ忇ZZ`"gAm1IAFhd6-1Ns ҉%_@N>̝- 8/d𔞫0n%8yWcnRa8ρaغQ锪Б­jxKíb;5wb p4tUnGr]O+SKxel 2lT[S4 *v~XE*@B?}c{HxO`p@\όKD!e~?CS`sUa8ʼn`t1li+thBe0R/>ڶ$ =QC,}nZ),Rfn4{o=tgQkH?~gb۰.Di gE<I#w­G,pҺݠB1*L]4/ȀVv%J&/^*!eyB^+!}}(<v-hCP!ٓ="#S`{xW=r+NKs7OSت6d+k:b3$DcOˊIf4HØyw n{/ `x8*H`d -% Vս(Uq*_ǴnVZP ]0J5ͣy#⇗9E2DU *R0;^|gN.{0@wcTWKڃX7/MiMn1Duq~ 7k}ՖG2 fŚ$0&0A6unHM%Ԏ|Jm2{O՞@0AsB> G .kt#<;)nI툆jr`ƯX;ʺY=B/mklcv1Ka*8> YѢnٝВ2w˨kWFcwr,54;Qa0`<e,hqj4r|4oM)?:DbB{HVwq#]A GlKdUi]]zCl,BS#v dӢYEʚSg˪c/TegdxUh?܈m4K.+QRm}/GTU-PB6r♤[`cG<h&WW,asBTwf;> :&&eZdPmUK!A.f,qх45|{Nx!wd;`~*{:ƣڒ6(E)Nu$26hk'DOP(;^dI`-'P kENmPw9yX8ÌacTؤ͕,+F"C :|fsͩf8Gj6{΍ #4(FAu%R,ťb%*bEleV{6$$T* M^y7vlaXz'mQ{Y6y[<5xRhM{ev-wK~俇~C) 0!:d|" GBEW $ҹuWwoEn޲KoR=y 826Z@6Ə|mpT'ʧ]Qs"S+U\H^9RSòհ|>aE km# 72WO7R'Z$a@s#Ga2&H֣LpQŔ!NB [XgڜϹЗӐ̭:c#^j|ڰS) X!N-F+N&[djme S@2ſR:,.>!7|I:;k6Y@?n-v;ݭmH}M=mooS t-|Ng. B܃ot#8O!cg,} pDfu5F^<-(po$'$6\F=76tMRϠȗ*QH\w1unz"́2̛Z{ mS{={A5f>zGpG8Yut! Ձ)`ںC֕a'xR?Р>w(6]ZoJ;L(єfdq OÆsjsa\d~r&L_垩 k˄E~QA!`5rgJ~'ZˈM`6A'vˀe ^ݒCWG u d{=d5Qm`[U d/ՐL ^glV ˧s+8J=7G732,i]ģ]o[QfiEݧ|38V\ lbS_u9N44+L-TШhT0rvy| rb6-FY5?Uu\ȽYHe,h8 uԉ#=+ 3^KV q#KՖ0}<Ld'8.AY$cVwbB`qK,Cl'QA0玠iVF3|Ol:7F~1N>}" xp-㉆mZ3crȇk)uKN 5iHp0f2ɫfKF=z'*7gֿbR i2=TtF: -s *Vcrg)y[];3nS.K&6yi|8"iIwA"38f0&o=l0=dq€iVհJ8瓮Lo:/j{ӆ{V5H zCY[)Ԏי3 68rOi#uS=sP}MalJ|3Ƀ6IrV+͝8 蜏cBR\_''@sw0%M:URGg8n860݊VҰ.!֓0@751acoR&yP$fRowqV>M,]QV= 0Ȕ#& T\glc}17LsQ"mu˅A -o ٦@{a$'W'IQ4 .T{>_l~)zu2[lZ: zb4Qu# 8ZB:,*| BAȦ9?O,euZH b`6D0omxE2rQ[v4a5@H,CQ8xv5B!J+{=s դA94I UY<3&5*(Z}?ujǬ?Gkh͚~6сmE>6N+$`^DByl:Ѥ̒umYbоܳHE8͘7tGgu#:Umdp,UFiU330ٝQ·g׉Y'_9lC?UÛAHj\3yBDG_z)n)p$Ɩ;k ^uǕ~Ҵ  rR AJjvV/ҟZ- 4=Jg 2!)YDlFa*Gq-]Wq5ƌ_`(2M򛔼ۻ2-9Q*JhʕӚ E\f\2BDXm,/iO NnYn}فm`GL^9IhpP[s’rmZ:$J +?n \h̢<Ϻ+ؾ8{澽Gum7HeYrG4לeNKRihSAZȲ5>Ɏ}?kn/$mRdŬZPq#e/U|e)l-2Sz'65htDp_Ne-_e<9>R‹eҀwےe,r-M^`Seάy~s&vt?s:j8#؎XX˚ϸ=JmwTo"&ClPh3\&' i6׉@ 2%xҍT ڃ:5&2?Tv|^n_:3U ,~*"nOKȿko21}@CݗN N$5B"D'_xZmj4Z4OLLcݙ` Y΁$m)VP[~7ʙٵ5K~c#)ի2GQ5VKFX 8<q Mմtgj_EverjnQfJ$戵ԃl,ʻ~s鮺 6á>E=5pZg'!/u|M ՠK)p OՈjZq>7|@Jّ7atݩTKLOOaem=ŬWanip\$,¢ǝڃ{ɥyw3;;vB:'x6;% nzsgKLJãWφOz+ vY5P$ڣ[9=:]A_<,K*G?1Cʼ7}.gĭ߹| HA=ѧ[Nvo~:| 0wTkV'Lpѽ*0Kl)a"O/UrъqjwXF}F<vChu ∲+:5+t):Y s }*2Mpa H_:,2ԒIٶZC<Xagkכfh*T$%d]-,zn#1xJ",!8-O,gR̹ BK.rM[ʮNZzesa\I"k|,QNS8GԱË.Lx% ow_)Ђ/q+]1:Mj X>ݩؖ}fd؅z$b(/~3%EV˄tk*tDSKdz.u+G,A6\}A^>Oe)@{Y0ӒVj 5 Fj,C3݁z'gB |BZ3nqOȬ~7_W.H/xaX_PLJ 5@q'% 1E2exn3.>P#[R[f9I.0Vۂ?g ?$5p:ʚU1ljfMܟ~;Ea?5nW=};G1vfȲCH7k9(C ^dw~+8S۴ B1DZʊx,t[Oc:&ah0Y~F4:OCA>'ՏjI2Q``CڸyԳ9r2U Wp 6Y9.yc{<`!Co.)Lpˌáժ]s"Σ5⸦+'Ȁ.[3rF'zkl2Xv՘[LT!mk( 5W\$u/ޤ5+&&}0*Z-A_ w)_4aQ&^L01J.u {GYɮdЦ/t"+4ĄGt7\^$~Dp6 74u1_ 0&D9)XG睿 zE?vz~e=]p|{\P9#/IiBFuͤA߹գg3m; gGތl:&*t0-èviAdC %:i3#+IL]͠,5vW)$(CaI*Md# \fmsnxB^&ALSՐJutbUtB0=JaQv6fY0_iv7eʳ*]< V -B\sM6 , IלE=g /s]њkU9vfp E-P%TU 6˧}V<E/"-~U]˳+¬X$iE 0[x}5)؄øT"1_wBCY+B47(rJa4r0ӕy^Q{R'|"O3{]Qڔ=S_hZX焠sכ'0-obYvEٖ,l59~,e10K{96x\V2h&JAZy3Mk̂u|dZ]k2c(v۩Z: z27[.jdAN{8w`Ҥ R2=:MY-/ZaW4F]LNU ^R,2c MpG:NiD֏JM~.#"lݠp8D{yܑ,r6x^l9”dg= 4PYԧ`UaӹA~xV Z?Bzp&$f& dABؗE5M{zZj&"8>~Q`h "`A8u+ȩr)LkK5LdnޅβoL6 _<(jSPwޑ&6>WE|.#^3uh&b6`R:zs,'c]r9=L5Q R(_a;'aTˣ}y󟻜TM`@QNs"Dx'qY<[L'>2k 9&O*Ձ8rƒ^}giSxz$ҳR?^+EwHuY0ӦzvD2oA{uhL1ĨoK 1KO5h=gt*HK5;zMSҐ nZl;'6fl7#y 2+F 50YncNoyV2 }ᔱ$Rj3뾀(x6뎩 _ȸT7 U[ǶB!:ܖzru3bZ]җrso|"lO=n3s_O.т*9Of?dPAUw DݴwQs4SeG8Z_YcVZLC7M7m wKi{O: @sOYNsϓ K$]ֺOIn&yF'olІaC+λ賓. o|i%$YR΍wPNK'[0D\Hݪ[^<4[Eח_Ow3Ƈ-mysFӘSt"i}@ TsQXG[E~"x_9MBv+9AYt* tWTG37;f1{ ETX]^⩦!8?K' d2Yax&YPL)+4Tv_.;( /ݢDV3%pb UOdE|+`S=t#xv:`(ґSG~E,LB L*$P/IZa&?E|!6hp4l^opsǹ&,2_ـ )fj/OzV]{k»%&B#(t1E' #!EjP1ptRLSZr#ᑫiHx'iA elrܸʌ k 55SLi)E_RE~TU}=b{r`*U* P$0!ǾtHE4MKs3yC8*dc%C6x`)b8pxm'w+rq}i222&  py)$v=Ca\o+TC4f(Qd>T(?<\zV;{I--@曩51UB 0?}#(0XH3XU~ŬQ#먝EV  $#S"&g2:tr !1ZL䭑f3T'|L1 >YW: i'!eb)O˂.;K1F%RniZ8 CX׫p O)*n䂦P 2^O9eIIIAϢ֨y]=8U.qIi6F ڼ\\ ?F ʨe0IT ~ !8{£t/#os`_tnBʚi }ΛN0 9QNA?uvc\HD%l yݝ1^vD=`'?\ rgyvw1s^Xm_@4Df(uBZIٮrx:k޺試Xz'3̜M7+ǗŸ\5ƒsEu[U(H,q=0B@8-'qBS·W ]/€3jyM4,C9ifW4.[Θ?zeӛ5@0/\5SgǡNПd-lTtNV<4'0Vg`$r]8p-pIFEK_P#zNuF7fkL3Q+Gv^|0@Q^DO[fMr߈w5_VhNI uDO^ 8oY/ȩ" 1b( /;Բs٦KI8LA!:[;d6JdVib5YH>5H}L.g#[⢣36j6^od;-ki;koʘFVUkriլ]tyU:UOxthFw[w[%Y&ka\ ͍! Q>t*&w}Qdb!mIGO,JZq4E l"/inu? kL:!w9)H_%=`&X .Xi~jn5 bgd9"Kx'~l!% ]L%O%B Ʃ֒1KD_f4A Yd<"|(Vus8%dHi4Kt0VzJ'E;(p @8ԌHZ riצ?؄g6./RBhf4o!VY0dgukK ;f¢şJ4wY|:Τj|él,1䱒*<%vt#9bWRw_Km֕odk<SG7&*5j ZvX Q#ƺt0_SQ-H(wgzL}8ޝ]lbײ~ȫ2π *Sngd˾l@cg T3qk:f/$[Vew0[$E xsl@~`$g0z'nL `gaV.o}/wA]yi=*dX2Ggt%p'oF3礨XΜE[:×`~Z ~V~Y^Иwut,-vw \eJŌVl9[W|VPOZH>JW^&D@8565省f5",@.%αk.EOG+&xh͋TѬF_ I0#V*,׾;J>CP!T6{lӝ&"} n X3ԹP7olmî1F ]%! AMJD+˸NAIg^H? H_kAF3hcAvsF-S[vșFP+I%(+6ۑ3;1/O5vg;W^`^oA*'lAfy4ɉ<ө"=7T\os=FEjI>|AԬ1hE#+ fZTm?@hhF2)*c Oj)7("V.P؛Y)@us",q['2SrH7wX"UͅemY0^1xrB֞dyMt!R0l9`$׌ 0hM#0+ﺖ Rw#={5=-Þ%;@)g]e u8Fp"r#д3tœM#P"Q@mW㰧J_S^d5Hob\2Z*6$SgJ̪y:O!4{deUm[;O@Ο+.!*%a Q[hyjxM[s[㵏r Dz1&1TI%B?:!R UůaN4"&LM2$0 Q H+>KQDV)uS[\#m.0/X'f.3-6 >Aj\8VACwA  #7<-IM\pM wĮnHsoC'`%]a[%]m O3> GE$؊Rrq,@јG^t 53n^}JSJ53&{g D9dEXҙ#-=OS &.O#(`{+jREL`@8[> yqY4Qpivv-OBc@'l vnAFMcQ:ѣEe%6q#kTؠ,d!k3v}Wvz=dόOy0=v'Cj+$ʝ`_+ 2x[yc,[~\)s(=t k52bĹǢMr,rx8fN[Fھ/7`CLJ*M'!My ;5}A1 ,RqeD FB_P=oD ? U _S1†L(va0/\J G{?)`/Rv"tBa .[l dDQjzq`R-$i@"R,]?[@N4ЁR@UG&- qemr8>G:e4?ĀLK;V80\Ζ_X6ܰ>!wg" QC<3E뙏^;:Bʔ ;kER-3>jF%kc ձC5\6K-#8A=ux>ԽcC1gm[̩^@i]Qf C7'冗{VnJ do:IU_OiOǑcq%RQyEM0L$V)OƝK8RFjT"ԀTGE>psmת!fs:9 ֣¥½h>arH\l0oq)kO%,-B;H,Wb@i 7L/2 t_)X!& {HR=Bt=?tRѡ6p3"qRcA%@ktoƨvL48kL+P r-,u5Dy׽Q }+&$qN!ދXRºϻnl[̿l*IT( QpW9e`2żv@ҞbFgD.1SXĜK O~:+^YW'?<M= 04uWe_냅e wv>@8BH :.BT;?fȴ2Bhf)Ltw8 ftê(~rh..v.쭆 l U/}4;~FDs] S0m$*纏'@#sqAKTH_#-L%*xl.{ qǣ)$ٚ\nRkXRr#ۚ.헧 ,_@4 <8[, ⥀ ݦT.܈YO,_ EȆ=W>T\qd~*&bYPx|+čz2&@q\1ƶ"NTn.X L-@RS,f}cSPWeTu"'8kqfx ^Z3@eb.dz77!J *\J |ҏy7EVP9Z>owU~ ފzw^_SOPYxמa) # \-F8Ep;Y)yWIp/{W |- 8 `s؜`o~(0ؔ+!*_R옜Mҭ:)2r4P;Y(k ' Ҍ)Ί.?-Hț5.$(#=dSk94)ã0,IA 8s#3rɮ-a;5["w*![AHaW^'}UT/e}\)o>ߌn#TOZst|2Z9't4Kxގó5~/6CQzq$4#&{)1{D熶:6)Ձ|K,є- O.!ZE"ղEMkasB? 3Čm0cN78V𕅩"17OT!nj ݸGc[d->m߉"^@O%}XǖN{^JicSqhi`=_D%Wmo"ы"7WH;Ǟdoo/\,J/iM`Swħ&f,VnJ(UO;3P)+Hx~tmyg#E;q DGI v;>E| Î"f^. ů!UN^X"kϏQW%$ *Z8٠7=@ޣ@*H`&Wɖ mT{^WUE`(JCZ;8E$K*F>#4`A4hYfN˃ȣys9*!4?TӼ 0t]{]- EXd~kr~_yf2 0ƾSGt+-QRgn/xRVQ4cL~цO$rLEQ|'/ܚx?JX',T!PE^p5S{ vxkXt '`Jۑ-^lJ>$Œ$ Ù7' ?d38g;wuU3A5`Lkh,Y)71.5b:3*2gq!16d˜! fע%18T7e6,#-}%}_NFMl F.>7ޢf QYLED\:睔^9|TG (O@^i[ 7V T~ft?N6n踊td#F:9ӆϨ~OCS1-mnnSk AHDy!k>СoH%׶e =JȠ@\m'mmI؛ 2u%GV:o z: Z3 7dGWmf'kSQ@ȧw:}=8s|i'5*K-Zv9SI?.[V'|tQDhGJxCuz C`2Զ%"S1{^p6g*ax4 کD%=OE/%wrr47j'3a8NRNK[PH$7LG(Vog3XQ!y@#r}?B&OgI`S(1F,-!űZ^ YE{4,]n(%zmwI=:}|x]꼸Lyo Ig<ˀJ y850qn`-r+xȈA2PSwxjͶ9oE(ZvPa +?^K7=!RL,;,k#╟F 7#"Z[r szMz.a6݊?-QSRL2O:D9\ph!"q?-KiToy+H5MNJ߭l%Gypǥ]YkaNdV?`I-pW_xIZ$-u~1j!slXu F1ݛ(5jZ!y'">VvnO[!$8[>@acQ,āAMq0ꋧ$`EY[+2] ~\M]`Ye9INVz5^_!`dx,>n6P'Z[3Hf l,x*>}G+Ǭ!0nA0Is03h =o{W0On1c1:ZAE{!#FN(L۽KoP4- 1-Ocl(G@|VI<" tXeoۓGMvOབJʀvМϥ>iWþٟT X!>k@.>[ YEP &/Q/NMu. Dkr';c*V!c7ijo!Pl|Y[Ir#y4$ѣ= mq5vI f;:ŐNrBawoXT}i<@5O^JLl{hK,%QsűH ZϚxfΒ6˜Pi~$ ({qsM-H?a_9u3 r[d& ){  x1a6 it,2\X{]Nmza[ăP_ϹuB8kc82!,Tэ[!Y~ȐW9ad-Ik܉!]חhuy90Ɲ =e$h Ί:̡~:GyxͥxocWe`@Ē(6Ȋda3Q*DsRr(;&4^KNRl$ri!P%m&E9 lN@ۆ+/{еLhܵ/c6.9*YF ,Waǐa 2~TT9,M -M cEC8)Ot!V I, c`Ʃ, $Vѐ>;;{Ƕz V0IRC`*(">նѓbwS7bX!MKUjZR'+-ٮvc [2T* }TZ⎐b׻9LI8Y8W0Fd7b ]lBw&>0LHVKj'+(RHb S R#SgA ɰǵYԓ.h4+e(O R!ɽݒ0ifܪ@-'8IQ3I EX[~QU7O+| Bv-!R "85'Qo <#mtʅי/DOҵkWY5ޠuK55p2%\8mg P-8U#P\f~~.Rd-qqFR 5]*ljOF ИL,nnJqZX ؉3n9f7ɺ*ӕX1WL=| &Z Jj l#q-|VcʙT)6#7E0Ǡ\| d囗lN"Ňۉ,&%%cDhZ!s+rdPep`i 1Kھ1\ڰhm\G&C`+r` 8Q *Yq\ߢj!I&K3IR ! g1K |_#d"j?UN"~\B^%g]LƩJ`PS|wakQx{i|2}] @ {.h:y6;ɫw% %]Ձ&[')á~ӆ5[Q$h6i9KAɟ%~~&;hOv.:2Ř8NnN U(獥ErF%1\>^\X"s`,"Lyy*6UZM%bau_ۡw0%3$5u,vq|Os;N p88zۜJҨtw}H;Gmsz ZA^v[_u5 yd:q%{>A RLrv(#`?VGdԺ>A$mJMvC:E='׊`нgf~<v%, FovJ Kw>NS23Dr /-JdvQ6vⅴϥ.Ygwrxe3^-nIH.c(zp)_-0{xQUr\Ugd$dmzxW,胹zԲ_4GF 1FlFBtH@he-7~ Q(V]Bm||/ m-}VhЗϞ_`RW R4ٻ6Qsޥ?!8.ɹRBehr>hB;Cj"GG92דqBgxҭNq }4>&<'Vq Z Ƨ1]=xo;9j䮸lVsX_(>B~zАVm_٧!Lid"ZWCGQ fpO'boʕ(v ɔ7lgw>K(7'MmTT#ݕ] SyaDŚe)fj ՆnsTlZ/3Yẘu4h|XKzAI@JnEe$/y{' U/vEϷ`Y&XR6Kt<ٯZbƴQq6}0 l {u YٚV5[Iۯr&/FT3.2AOˬtroSQ%C4@>r?5Qu3_t("'o9*tqN(4(x14/UۨYwMs?v cSg ɊUtEܡ Ž -mQuUJ&ˈl'ذ΅eNኧF$m"ه̕|2[}`* g-=xDk&~~R)V<"Tdᨧh,XhK yT!q9o˯{ci ǥl:#:* kH?bδ7Kdo*ᚶ߻!m1|X @ ~0AOK&DFZ(z7RaӼZE~͓|vg \jbLa7i$bf5Z qЊ@S\L1]y >Su7K|V-2$wGvqX6("l=!`N57HEb4Aa.G*J`gVb+WadPJQޏ|IUu9T2{L ̳Wx2 o |*λZG%ժ F2ߜ^TaW) ՈHd2|\ru~ 9 [LDԉEnQ}>T~)hULF3>h <5atKӭEs\=lEoCB2)qe Siǃ8g&bWϱH3G`KB+d ]0Rx%DAT2"LHI(J~4Bnє So}ax''~B3Qa | }A!{_RHW\Ku܁PuCt1aF 껍*{Fy傾4 !eMv]xVd \rJ JVc%^¿?)>{_š̲%.㴤ji~dcgf)Mb^‡{p>1sĊKt("z.T|QKXmY]Al+ %8[T ;Ru6on/DzETbK(GY0i1j n@-Aea9Ƕ"ir/”{\7q>?G9 g[F:pG; RS*t8GDr'̫ڊl\>8m4/AJFIB<%F=(."1A7pۼ}*۶ֽck*ʟJ! bFUg1'^s@-V3@K=2hF!q1 #͂)5z+t8~_WJ: =kwe?n!D<p'{զ$|-l Yyug}nd1OPg0^!gC66RNaڋfnviܑ(]̘5,z2l̛]}e@T=1R~ x9ߒb_Р[{zaҞ |M-0d)|>K E& =Ce4QAvkLujӒ@>(qRfȴ~Y~PD݊S1# J]Ea#X?F+ɐG#c®\tFxJ=_H;]\Y' IhBBeI!#n2Tu]OwV6e9&ؤܔ@oW8YA jsu2+ 2ɘV#07TU&l)mT^ ĩKLzR[S""r2~G1ޢCɀ2%q*ȭ\Bh:9p Lֵ-7]5y)rZ6ϵ.FV[SZH*BJ 5u "< (yZ鰉 e7'^/KVu z>G.}s5G`G_@V]=d`\v$Z6~X'd#|Y]o&Vp![6_8ٗebB4ʻaq^e ?bk UBbF :( t)dG}ԌEu;kjBrq#YADʆ߶ 6x#ٰ}&Z"x 5aQe{2%P?C-+)sB,Ga)%nV`u僙<Q2 \.@ JJ莫V 㸬\2hv#&:yFl7Vb)H]b7]c2~{sΡ?E3;r505M 8?cED1z{xF8ceѹvZohŸr2(c[{zg66#/ZBjĶR0 sh?Qv*$pdovHWhԇwĂ\Kd.ɐt_d1߁nR@p8X!!:bg%(h5A&"+k].G΅;EQ778/*'/"ȌQ2 X;4y$tZS~WWd 8ʹns@TފD3Zº=ῳZ(; }H 5z\XU.C.* WIД;u*>OXE} aE!QG#6SE`m:AT0Wڙ}{zo9-2L5ƁgL_|!ЬJf`NG ebaҁZ%$KCLO;l?mgz1|KbAK"(v~՜Xf<}Y#wd BAZpC؜뇨ȫ"q _Pv̽R|u}P{pCRWi;ͯ]~]EmE\nq@+4&y= N8Q~y'UQ4&f/\8?ʵ0^hkZBEϓS&a_I'ZA/WDJ]***\!{5~_"3㷆;SJ;" 7[«Bǯߣ `¦w~ UqcQd^&ap6 D}h׵7/a!ґzqΊ<L( )T<~ɼph 9[Nd!DAHٹY3 '_%H&`oǑ]Qp^3ɖt IGbtl6=5Y&p.-PgmJN QmSI'd qv?-E7`|L͈~/ᡮS9p:s&n@ׯ<w b.' aVϡmۼ _8_0:%W:\?,zLC: fgb?#رI$&(gnfQýL2n5-YI,|6:rB~FuǶl[W(]Zc*vylTtԆ[xcܓ R9qXgQ" )_ZjM$E?`fUmr1&HGyeuh0"cQFtdqU=?XXZ=K6 }.Z=HF$FޓhgvFU\ 40CMCQ^9@o}g6U:0J/~(=Sd1*sәbt7Ⱥ7Y>x,6*,-3"u"+ <&?mXcѴE sAf4o0j9|c`RTzxcJwသ8> xͬ)wMoGnf#> ǝ~_,[9 |] N6<{VF"i4VZL= .L~ L7%J S$2wBM !'`)dN9k\@Z`1KE&2M.?"[컜rքE2,@;dG͋)=wU5p >f;Ww }P*J[(b%nwݾhleK VULU vu߭Jf8zdJoz>$_y͵RpVHV'?t.&>̎eC`vg23k6 't0pW6n>&Xf/ê2U"uz!w•DX\u12N0h8O?Qxl@Uuك+؛=8vv$%fk PqDJRaFv\ls&+Xj+83~\ I i: (b}z)Au -*B"n _RbxO,u,"$eXUu\"&ٺ?{DXGp3xou!(WKr֋q@*.O±Nz E~5E"K(Y/[Ӗ祐j5A[wN(<_nҰw59@.+5\?s]ԙF-aNKjv&gI1Awݍ!$^} qOgܲKyK`d]{PT\i8ֆB! i:εѯ-R;*+ٸKky[Y`Fb؅7Gi9>LPښP`JFG:ێ"+XN8Yluy?( JwuxVJEӻIHd ![aj鐱ƆU;+R-ty$u^譪ei%nqkX _3A'I;vL`1.XTi"K4v,Z^\E*TJŒ<R1մayM~(DlU}LdX8E8I[nUTݻS 撘3HLa[5U PO:] AMٕ`I_Ty]_5}X<0;'h84G(5vÓ[:ˆ;b0Fj Z#Fc͘ "zIKdX+"_J)ꗈO.BGM@zg?X4%j!"T >QaNDhUӋ1kJ #6>! ?acyn%an9 192 Q;f\ P&-0RHǸ:_]߂t˾I3ytt'T.ÓF8>р8OζId<<Ҕ#"H>/5TMEtzWR O΁RIG<ɝ.PniuF-"_Nezy2{E0xH!G09n.?h y>V)>0dE%Z ٠qf,͆ݒ4ԥW$߷34ٙeG៺n^!67@8&9I&!_:I69B^R@pͨ1!t Tޓd:X^:{q`i樂/}RTdGv `6,AT5)],XpEPAk6W֍r"`TJdO_ݻrP.P"%Emi z `oW2 N#晹0 %!̶e0;Yoޘ p|\)&B̟ciH_zEu6Yp%H@)>ShROϩc- 6o1vcU 5s'SeڟH BFZvk+oxJ-uxtJ S8F\4%+r)<͋ k$%^`,2Py%w$sE;޾s9'HV6;M"tc#0oAg:$9ɽ5!ҝP`>AV1{=BhRZh /-1jxk@f%:˘*X&sfIb}.)**0_mFwG6߮f @*;'S0B\ b^lv0"CϓhF[jhKo?"<JLMέ0Kv,! lCLtSw[r*+/3K~dĥvu\-0X8(/>feM'ڔDk %+˺2Nۊ<!IԚ$C0FtCۇah=צZk9ff+kxkhÒs,sBh/"hu{â a> C "IMIu4z3^};!f=}ĿZ\5) ,Ctoa]N*J u'P=r"B=Y87Fq>~_&0@qŢڋ4K 1BmKN3eɟ PGJmnސEbTyڿݠE) Q&PId%v5(]X o3C+ :CFUMQ;'֛WS,D`ǟS>*H+햂Ի̨T??Z&f 6_ੱ{ '2*<#ڏՐmu*6Pdf:crK dVT La*i s zD߀zUo3]_f$a;'Rf6Wy] NRyC@5w(+_ߘZ퀛+]">]&[K9H ^* $g39.P$>1/Lx' j0j*EemyhoO &-8&TE+VN@f.Lxü `?QN;dTr -'MƊ=Ue3cBB ÖX\-#̧e4pvY&LF7͚u]_7|Le j)pz=mrGsREwO[k C UǪխ.X e,B&8M=&ڈm:j q:t&@AĿ.](뢡+l(yܶ 52oTm_p>%1z.ѯ 4Fn8Gʠ~U&֦fZpvg1|_ fWGzdsj$|Wwu]=[hL\m]l0St.T` s814W.c]zi "d̚WT;*d0 +OD|LY=]e]HXfmYW]r  3JQiqBr+AJ0yU|FSpK("()FG5J- ߢKS kL@Uڀ CGxO!!+_atIq(d]s}4N 6Cx!~(5#Ҝsi/.ߨ!'X?7 g) OB+U鬬LڜI~g7 4J h줺4jX݁č & )G jlYBo{#2Ynw;)%J´י0uW>ۚ={;E\  B&++w3`g'riP:oa*^Z :u:# cօ&AUgWv9^Ǔd*0$8$6SAz  2%YSH ?N>eVudX2&?CLGml<RޤO+1! 1)Qd6@gwsROklJ^xBD9n$lyU!~tkeG՝Kuc;iyNٺXL)S@VZߵaENxa@L"``>aXs)&F-K|IJW9җR Mu.Bbh2)ͧ89Bn"&3 U6!=r.5|[U ف:5zedM= :`d0f bbQ ҡSoO iՉ*XU{2 ʭfݺճ+] Ъ( ؼ='|±V#P7af(oTkaDaC}ž%NWx=|IЖˬ]\|]Et,"1  ]J2HfdbjOM0{{f\iE?8.$;ϔ*>?@OE/hIshβq pɥm"5z38h<:EviC"r=CoKԗMc,ʦPg["+^::X8͟C)?okR Ȧ"& ye`LwAMq}'xں ܒ-j pQQ}ǺGdY[ D˓cߊ1;PGe+˝Fuz1u }9H(aYmX@Wl WIzG|jP4QsTFLhIe0䴷C6B]ҖuD #3hEA+0ע-d̓7FN TڭTp0Q('S=){DwSrFp…| omgjlO*[:5 @ {y#1'3|[GSQK$=;JjT2:6'ŨJ. j  8e`6+ޞH\5E<=ޮh\aLVņ$UHFQ|=w%k߫h,ԋfңⱨQWu=ݕ"x.17+̠YuÏ@\X7w1gaE{0{rAջһ@ 9G`TYчEdNn{+z iDBPՍj|&vcqN Pn1_v*Ka~ A#Kq޴+ |"GO{aߴg_U:&AWa8\8zLqKT$\!7I mdöEmgϨ&SK%ʠ>, 2j`*3}V@;YHA W ;ؙ,0ip:r:AS0# ;\6E6 /âmȑ- <^+La4O&dyRGfpݙȿt;ovTG[Z:1h݊/jUdyNҲ 1y9SC/7lbj^U0?\V4zr=Q!lhN!FtvZ:Iܔ ݤܩ{k'Eɢz(|aNzͷk{=7w3&EwH&N/m$v2S2a$6(VXF?UhVU+y߆ǿ"Sau4Ƀ*`b ,̍硫e&|m<>+oN@eKGq=Վ%hNB.6.7N8R7Y7r:Hq@h5(~}^s k92%9l&)"<6ˍd[!„@D}qdUr4>`lFq0dEf5 |cBz^puzE8껻A$vy),M9CM&;dHr|.䴛s˪y|(r:}LY:r*Z*ÊJfc}C=?!1»dFLʋjB|DEsԎwe-VO=+\#JP"u- (#f []dbA7̪~aI"nƶ_E %BaY槐* {߂2>ARm4Sg UklQQeQ}k8욻 xy^U"o+ԌW?!yE8p}Rg,RA5x5U9D=V0~p'J`pwt.87nȁ>#łP7D-9t$#ۓ(#Oe لZ+C:nOKmbJzƟ@{bG5ʅ8fua I=J|*griGH.\);hz $cj5BRGV˼71R*n4۝ƊmX0_4o^d]GفqI/cS34tyklT!c_nV 9_k50~q/[|f){rӰ-Qe2Df"X2-vpsCPѻ.xWi[ʪy.1uI<)n,m։?2sE^%~xGy&Kq%~>p >LmbSy8\lQ(c83үFc³3 nƷgy-=x"m󏃢 Jt49Aa\WG|6SNuݨIv[+;݄QPWHòگ3(vV-RtSy@k$LvZ44826hgD˪vƖl~$jA?]aWGiW&]Bhb 2 =4n0TxfʘP[0Av֕i]gW蜟s$5rMԤ&KIt R{C@ui'\!aqypv9(+*N8b s}G vAR?*Ip1ʎk CTz-CܴQ:wVs,7 YٝGN~f7$4SǶ5tVjtAb)H\1A~)i 9TWMU%-U5z"-l'=& '+yˣ`4G~C4XGyVsqG&'Σt].yiĊPmTjӷ+T\읊4H~q i̮,sg`2Q.^$Q/nK0=Zo{fԦL{}AV焇ؤ ب3fh I`k08PU{]7I<+sAF( tckޙD˼=y# tF(~ئ, `bf7P}H|73이 ؼ:4=k&W;q~ŶoRV6 7Ўϣ Pӂ,΅$5eCB+u5; L@d̶) Iց_'0+dgw_r"Et=!'Au'EBP siAo6aP;2͂KaGgn)m>"jx W?*5GiYm Rw*_9^e3٢c4`~(}wQ:أX]`9PVXR/4R3S@UQT EB3f$>zMȫrO]1)Yg=&e5;=mynj >Z+^G|)}6hh8ԟ*DSBm;Jv[eS:B%%c} q~8ԥ7|eМ+\ٛΑ3hTzu\/^ooi gtnԸN}TC>OI>!D3mW`Yh)Æ-p-'%&"[$Do(} /FC/C3IRetM5S<]j"D֤tD-[u%~mAH٦|-Βod@~&BP_2>&}}'v;ҾOϹ%QbXqm hTntʇvi֘TYK3/jl}+DrA |sxo~LDF| э>҅.+FB;lbLV*K; SfgK|;ޙUQ Azya"v xnx>*!-yL,ڬ SyVI5RF sҘ laSH5SAX+!4E2_r4_? 3-{rfpʪ-r>6U_7ҳoGi|ޮ)EB1NHGLU#7C[o%0 <59JU=KY-A+ZzZ 3 ?Vr"s#Z 9-IP.L2VĽ_xkNc"ClnԻ|:$"3(Z_oT,,#WpՎ|^]-vbMfV5/\E)'է o@ Sk±p @(nK;O wfqH H[嗣!aȯ7cz$}0⤐I,|0q*C* >0(IZXfxp̂PǗ}Co{h l(n"Wo'D ~\Oewjq$|~=&ɋaOqJ{MJy'ݵ2NB4+oZE| ZY:<\8XRr(}kRkVɞ?I3tGWT_ ]pjѡ wr=>nc,ȿcݏ{MhQ'TnX׷3= j1GL58e\&n[Wkrx$kֻjC>:nOƭ%re%r!~g n,YgIk8IKf'D\nNxG Ek2X7Dڱc vt%?mXKtGַ0*e}eKcWࢦ]K'0eUv$Ɵ82ZgNyЊ4o?:QtLՒ>ԙdFa\TdBpy֊%rtSXmn&kDMs>;N6S)wVHT)_߮hx]O[H?p&c0\/`O͖IчE /2w!<~hG9i[s T}Q>kd'a5ډЀ,-g\^@#}clJU;fy p٬lcԏj䊏G?uEz{{.jD  X ^Zβ<j(: L&>)mzrSC۠$΋7P׶Dz.%Lh`ZTR| B̤Ն28Ӿ|92z9W:vVνjqwr%qBs5縼X&ƴinF ȑ#W0G7aSr ÞPd CEiQﰪVe*BSe3Fa7]N#L/ :𿃲XʈKW:y.0҃N3:l{}C({ݓ.1CӛXp+([zTm~1E =C/}έbtmj5IJ#Ɩk_᝝SkIr?fez̫B-dHJ.tV k;җkN'oV'*RbS{;CxE;E:IK5#G -P)|ZULj˾,_X!.ϖl89=5)8zw_PçOkZ(h4/^/)N\N7N~HǑ&P<&`k (,/fLpMV5p g)>B+tR^qd~T =Q,w7\7A'2Xݺ_<ekT2&1(N0yP+n:nANPRd1 ;. ´: 8◨/:p5Ѯ:XaAz|tJ7F#ҏP+9iO x}*y1>Uk Q~P'nY')A0d^zf\h=uL턏 @ܖbK(_ҾXv)7] _4' u6"E&$ [ ,lz7w*ҧOkl8dI>c~\T̀BRyN/}]AA"> kc˵Et@9V6.GzlTro 6m\Crѝ?胭eZ Q#O?Rs!t ycg:}=Y&M_CRxlFTl~pVmsrf]=v@-"%be.}rY`̅bLu^,!8Mkᘈ] l<5]:s/86mBd0]4"D H"$0Oι-f5tro O{8gvgƘ5M4 /@GJ0= ɒa_QAF/*8Vj ,Z$4<ړ,@Wn Ӧ~|PqGϨC`@gKqH,סKwܥk9f`Ll Mq91pZ puM[;T~,(͘D<ޔCĠ|Ry >Se+Ɋ+(hl?oQz)p7PQ* B cet`4n>tWب-[3?FX4y"^k$P$d]s7DgKj7ʙ$lܻ "qi1DHA7f9QܥZI]JUL&W&ה/4_ 6vE[a۷{ݡI{ZYe77P· O#9-™Zׂ(;oٷZVY(PN1WS,LTҮP nQ߇g !SàA{FQYPj$4`=F)ť_uӱ3O桐sZGh)!bf6sr}OMf3!^P{ 4"sNy/BE7jۍ7XwCc'神HQEn!szDx{yDs?K-:7kV=A%Ut̴GSKo_US;mypP N aֵՀl0\uIJ h/FRI8bdRLKOjG/RUq>1]JS1Uk ~jOVzEL;-)J{?4n-k:ԤY@8o6m۩b!e$k6G*1kHT =K9RXOb n}L">!w=?-i@aD=>ZߤB$ÈtusE |x@ pS< uݠS} [Sr\ DYZ'% Ց|La˚S o `Fyʘ|O==Y\D7د܌A$x:X!j dṉ9; ԆzH#NizXM,]p'=/HOI>t*)1gs:ă/{KYK&(P^$NYog0=SZRK"O=:#D[-md)^_`. oA?e&._×;!W3 r]["p( AGFT`nX.'+mb0dRA< J4gUQ|vm(r焭2@PU/Եbt":ywj@]g.O5aR-^rpl}k:LN5fz $d;S}marj^+̾`2 ZŎo +BvG ѧMP(Qaz,N~b?0)̾?tKyvP(@HWn509T3 6|v=R0 N%2$;HSQ[IT*="-o5sKnQSZ>%<2 ~$t9<0惝|uLs'*oYm j;d u0^ )eIS'&y@ ^T߸P(DvEq c Iת ч `RяkfvY#}tگ3cNE+D>(ܛ,(O#)#ưrn hbNiE2q&VfuUUtuv~}#*%լ8,|Z4?z}YT] J9 Vb߂V*vliM&i>aCr +ߍ'k$ݞ8ebY,)7r(7xe?(׏ُ6ÍrXa^V#릉YM%+ЋjDsz#Ҷ̈́}JI54xIᏞ79 ޢe?eqrU, ])^ޓ4TyIrZV1 =vPyim:h䰹R{8\cHf0ӥy)O ؚfRb48na8AKۧil\czo6:KY\->238T@~"K*w/ sa0p[xQ mIJ;; Cj-/實:v 4}eH)WOQA[w~s 9t8XK!筕3p̈I&=d6r.SѺ",:o+d^ #oNI.QTD>-}G㸞Z~)|0,.'H1 xN~F-g<IhbIp՝4O59p¶[L}3PqYFPúGE)À2eF۲4:b=`޼tdUpuF(!n_(x=y@6\.7)~uV\RS8[EX?[Y*M}?펾вl7/-n6o%?G g[8[7o ΕƉ"t5 o^ޛ:,E囻ȕHao^:cǨcp>B E q> Qa2+[3n%hƑj^ڮy: ֍%x^ߍ Jl,-X{ h>^Pd!yZ0+8M>,~#n-pgtg@@X.)f}&9FTssnWogP UӮGy$*yUjT^}6Iڡ, 0VklY١[bq~+t/L4"OYdV ׈|0wxE NzT,Tp (1Ĭ8o@h57Ez УPʋCX˄6i)`8^J&L~ @֛#a >b`_`fCTِ o ȚbUUoLàO{S7ϯTu--G$1Dt3 [DhnIdid> NP@?FUЌ/x]8V໔ ՠVzDur3Qy|8MmqYD ]%BAy`v|ȺÃkFBE8."kENd!@W2io,RMy(kkY0ZTL,f' *aZXiMt3^iyUApν8j 1b#]6ѵ LϨW9%;t;{ǘxH6PV1gWMQ:wCŭ3;&hԃ/ζy95]7bע?CZ0ignd"tcqu]_B'_ē\vp>W=R.ck8e^ g1~ŋ+:Qc.|$%H}9>=tc~vUB'W^=HQ mI[kʬd;̎`+ZS>`P2ԎlΒױT[ Si{ҔJ̽u*xWuBl>nfU^ƃ{y~ t*NEa Ih, OVLBQ*/N@TKsMn_,RRyji!ȫe;=5m/eF3hNЉ]u$B^M߅+ A10PH肣}-]]dbs&Tq#U~o$ 8`YU,yFLE.x9Oe|D$O:NstyǵI6_[WX9fFWcfpǺ 1֋-@WR~2KT3 $!cG G6{&*nPLZI'DJ;  ۓAԋawA4 l?$]>X7?.i/ވ*:2qr%}ag9 + o @ϵ#22 KGzMWg~Ja {?#%OB83+B)S6e g]]ij\O?TpO1곅?&LIwJIz*lObq"Ί{h-v2w&X&D`ڜPĴSw?o)5ig`@:S\N?Ԙ%P~pQI]7toQӃ/(5(ql#K0iꥪp'0rkƕ7"sʴ I[޸ҮA@BA64mZQ ,BL;q:M?xE:%eSLj3UCRQ}z1Z~$ C.J~J_,yl8zG历$aܚ fs&mޢʩ*[R*}/iFl}T3 ߯).]P - R5ˑ*yW\\tv"GR ip>h;R`lACO7YL88vΠcU3htD!=3])15gcO#')vfᢎpqmc[C6$ԔNM>*Wtro} X* v2g˴_?jkD4c􈳃tX22J2#rUwE.8_gFfkxp3k*_`׬Cd[ tqg7z2WO/BJ׎M4L`ad& l)=(EkU^)"Zןe~ܸHmGZҮ!{zRKPnō}kf^R+%<;|9qt{7]\ַ -Ɉ%T/2lp%Zi"*r0P k\&; t!FvHG"O`8iشf_8 F(ޏzY7 R_;MvY,ћ.$y 4oh %<22`kQrkظ[ [d=b߬kA$$h տ5)(dz(𕻏moxK($K4XqҬ=:r*# n/Ӌ.,i+×5jf8fH*.f(~KzZ^]|BиE_`PgmcllNK̼{mhnl[>jEx|H:ƨߎ&tT<ʴ&_DbǦnPSƬd77q `wַn "w&S(#D''rY2IN@Ӟ~?XM</>\B+jP)7 q8r[YYN܂z¹W45̢:pO__tf9m"y24.-*E1}<P; _%P@-qPM`G`Fwrl{R trfn3DYt-} pZQA6LPIp:_v<Ej0OOH[K7IAHi4I:*)$VH Lst4PgFFh{ݪ A;vs6ik S`|wVXDaq -Wg@,U-r:nXU'g]:b$'IsEcB;cރ t9ȸN]UGݿYߋbG"78k|K8\0<+sZ ?pg!Yr)'8JZ-A)M8$#rL_9 >T O6.ѝ&I. YK) m=1 ;0׹>wԋ|"1Sj_5ʑ#%qIͅ,c^W:313n^[/%KPYY`sm~L74 #Tt$/{ܔLI8Z1굼ӫfy`xZL IYh_[v X_Vo쩟q8օةNG`_+f+஻l;T=: #ϔ9^eJjk͞ذ pVv4CjA''M~P,o,z4}yC S&Ec2jf&p1 zȔtI lA-YB"VY0x\z"wGnu~CB_*byPý)Qϙ âYHy8P0,2ZBL[A'cҤz빩\1^fϟzt7$ t\T@v~e>ӹ%wK -=Tjp~\xkOplQsߔ3"s 8bz/#q1Gs}GTZLa_;9{ƏBXs&%i5BS8uZ8ӗe$)*OM㐽2K /YUUfݎ3w 9s&ɦҲƛ 0%'1cFQ)iGMJ6 @~( "DOt^k#%Y%JĞMQ ]c"~8ymUY(~,v !wăJD{Aw`Z:n'0tفF dqsVUpҦOĭ"$hR"_nkR1ؒT^#@q )8l:ޔl OM,A#h^eqC^UKZ:(}T7uYRN2Ř]a V7pg)],X #^$"ق9S%BxTEXN^jtMUsݍOZځR%N Be΢/x:`Qro;a9{/iy/sܱ+p:HG_jn/I\0ChQE&4ijI=.|a8/lvk:4@s?C] C%FRsxmk <1AhdzC@J4@HlN25F_I>ÕbnF1LWq+Pv^x姙)ݓ~P.|,gt}@s_BBjHLG7/ 2$B4PXyR4ycj,g]#= ~y9#`!5 HKL3+ 0%Hsԧig5'ٜxl)v:Bi[FgT"XI|=55=׾xk6,.m]EכhZhMޡ` _P[ B :XSs-k^j3$xFz.z;uik5Z@ MκD#c7t֝ob\{tmM}PsC;CܸJ b {i; WCa "̉~`Zsry|X'tik*p3߻n/% D̈́Mbv2pw(4^-}xoi4jS~MGmo|upƏ_MbY ))rw_~-q+T?]i`;2);mu:_Ԝ?WM<Mb6@a/> i$Q_t6Yr-Z2YYجZNmd' TC0ۖt\aj}^CHN OWSfmĦ0ekl2, V~|a*-Q6): ;~`O`z9:<{lПf@O=ŤP|HsIss{Yj![C㭕}h*zt>q?ܕp$mEx|L]\BYi^;n i_=P2AFqwy&Ĥb_XM>o%k_ Ru=8}݉vL Y$:3n`E)s4o'ڸ ayV{M_zvD‹'{7.͉%_!/Μ9^4F$n`^]Zi)7tV Ѥ·8NF 9,3̓V ^fOH35E? K9O3&lB %0fO ̡4˭Gg tB&{/v^tz-sv+Z]q5qHj9%sBm@Tbf}QXWB %}edp}P  & /$UA[o5 ^:X4EkÄAauu1Eh6?#C%S0i |xb=;zhCu=JH&5C((}y3 h;-SԔaf}oC~y.he(x'-Wޮ™Bܝ;_)u9?@*hK(N3+0QsJ|5ux7MHZx?`.{ JomQuB7${ֱnpE2e ba󊜿mfxr.Wґw>c ^V4G~n&}m S0+QU7x:̞Hqu=ـ( xh-VEQ['b)6ބ>3)jV^(fuلs‡?AyǑ8to4I(/Fof@P; ܔy0xMYu}և\QL&Eٿ=ZM6L]N1ֶR}# 4|0)ի'ʒTĠj9-e/TBd(@D?ym\nv͹}"b7օQ{Ux§.#;kcy2Z86{4 _?% h-P]ypKب (g<˗//rT[4Ϛ *K a#U-Rd9?^TO$jPt֞B l66, .KֺY6 #O[EPu"{NllB6Y;aeFifՂ 24/ k 7[ i^v΄ARb6yKAFĎGDHHo) 囑/Qe]WB:_H,B}YxDg600!aqCr*7k+hXĆ6t|ZL[FTN,ĆJӣg>g3k<o6lCuaz/#/WiXoZ9=HJڗ}.7NdPZgG/ H59w|*oO8[^xֈN_x GD>:CF˕G#".W0L>pWHɐId%'JxFY ϙ#_Yr=1W=u_qAͪڶ*1^%y$/ kRa F^Q#4(dcw ;r c9>:;[ΧG*H} *]vO֏Y]K%k,VV?lfI~ +7bgz7812,i'ƒ]}8~Վ[EB+3܀*F2DJ iR 36\G}?Eı莎ަ#[X1a$-HNvg?9 9LJDRBf <lc7j=!&?=^QJVΗ3#UW|y+JO$CWM 襴^*:{ &祲R)|-kXtvXOw#։wdDq[N3H Z8SGu/}EͷK넸bveum|&|1Lx*7v+'xlKDzS"n<e5 KժTm$:r$oTGs7VSA@l11)VM^aCd)W9W!`N ]sU:4+t0&1 =QA(Y !"Hݯj>exAmj Xx`{<Vc 1v+_%1&A3y h2Cx*< )%¬E n r,aŊ/ y!I~xT;x?ssz`*$G ME缥m#bl@z}hEU.o۫jDs7zj9vRnw!:`#sQ@yTRIo?ssO!#dTm)}VP2TkD]&$PQĶO WlG!bh=ƴ[QqA˽L.CyEw2 =Zín%Rm#–Ӷ=#b39iGHTw95(>1ʱ`%J*t/CKhժE}`#rϗtSuWР>v+fւ n<1Jwftwb\nw3EOU, h]MB% tg\#9&@V֗w,9pG8,m8Ckv^\T. }01nT:LFrVtI,'//0ykgEVPF ")!h?;| S ]Mn1<8և`뒓t ]b\0<{o#SJԉfvgl_ɾ h:~-'%Ѿ/3/*2DZFE̿fHPȠ/jG/՝2hgTSt}AV!/[U ǩEźei7D-סKuJ ̺|4zl#:fإf M mf|p|6[29j~c| E= CC~N%iᓸ^p*mmzr:!/d:0hq09_f~Nx\iMn -\qw; "D."_ͺ\6;YI&04mbSߌI瘏#&m!ES`ӵo'} (SFZZ?W ᱧ4HPB9{Kk5J~tK&} G^ "1yꧧC 70` 8®5W#.̳;.-Dɭ'_SB$0e xY?ɼU>ZN]I S+z .x70;uˈ5򫏦QSShFoh')PG}'yM OjZK"@|#@*qM='T'<:9V^P_ݿtVGX{5©78VMSJ9edφ`T So ?Cnӷi*=C2%5~",J&Gw XX3ua:mskwJm_Cn 3z AMJvQ"6_{ aK!|A8.vStDOYEHǒ+U/(\WLsF+D?#ڨ~k*8bW"qsttQO)Vc3=葻2܊g^-ipRRiJE&lnHL"djL]߇ Noٳ L=yhUt@V纄~:0Ђ#]m+ؗaF䥖̞}I,Y: ,|JhGSyPVtReWqdL& Pc-Yuh5-R͌g%T-fu9c,-}i?6F$jCikP6@8y_R@a;iؙX.#_!VlL>s9K]!xR[%{+Hn,%ĺ#ύnY2:-(lO_~тEʛ}k2 7 O@TU+6Y F1Y&P Y 9X fcv4y}M&~QLE`Z1(Hr04փ O[~}Ht-Z3mGGip_D ɡ=U+97[Ӕ82xq3[ٴqJ&jsh_f*kϳӽkoF2ӂ#T3 ;Tsq{B%.D 2嬢Kʂ^1)Olyh"S' yz5TƸ ZL3 vU`0b5@FRlhw1}`(O~l`Daۏ_p4+f$BSc ARP Wſ $Ǘ0KT4_6^Zخzſ<_N"ʗ8$FxN-]nG(k| DSSnR˅BR)(W ;\oNg7@D?41Z'1{c2I 2x75~ 'r:]496)"TΜr4|O?68f\OxHCX\3:: 8G_fPi9e2"%'n1)iReYE9v<8l WR]@w#"JŰ=(e*4\r+#\GAߨB!<SVioUgq,Vc:Z[V}p`;<0^<&w^d`X BP)KH$jF@1E=HH1]4'o%(ltsxE]laV01Q!SCF zdpwİs stt7~@-ҲHTZGj{!E*$>6SS:?UaH؂[Uъ͡ZCsH.vy.ɿ9m4-+TeP$yuӓ;tJ`?`2\ƩNGo`W>Au1|<[ WQ|[蚼ȾٿQHaԓٲ A@-.nŠ9BqZHuO )K*EE)T&@{^HGUl\T^$:ڝ!w6vc_{&E'x2jC@Yau%)>"{</w8 \קL5{AGhvp~Q 柤%>W8n{@@6U%a/]B xL'ԇɷ{!zQ_z9`x=U.!} }MVXϋ)蜔ܔA D׾0Py ,G|l ٰMômٟC8 jːM}[5ܶȅ)Uo#ޏRsƒVqY*X?n 0!.k]E(DzG;BZ3`l@Щbs.ӥs4$N9.DزۅC# wl}wt5Gp%RYl_F2 CJMd_lg _P> ID}EW$ HYܣˬADztطFaA2%J,)OE/. QrGGy2ˌ"HTTb~DILw֢|@ڍjsӋhmS-:]飩P.N A삼3Img)i`.*XbY݈=R 4̐{DӒJSo3^r[]u.)S~^L#(I'O>@Z7=  mbݯ~dʧ؂1'I16,:xy6C?0"pՉ1$x>Y(J @ ,T7+.㸭Yŷ!D]ݏdf]?򔹾MA{_t&2L Y%nҙ+Xv;f (;WC6YWw):88Bù^dBiKCuʯg 4\*}J '%`cBF]1Dm+/DF9НŒKC MS}Ҟ5Mgݸ$^g !ƞwH檐itakRSÔ"ځk=#>'Ա^(,8XGF/Q7Ab@odnq0SM L}@rN:2到AGH sf"],Xr)u2|.)sU==3@96f\oЕVk m)tlچA;P2-gd\K.9.2ؚD-Ч󻴶>ى-ޥ+LbyZBGv6! KR褫G/ZBӾ[Q'7Bۡ|jQ=q;_$ՍmY(V2@6VmlM!j_<`K33R^N^CG,[4R>m͇Tywoz#66G?/=E"ȚʷгfWbU$zӔ'zO?{hRy uoJW,XsM6@ߪy)Q󹭋GNFl##T.g]ETR](E"x+-2=wׁʫ9Wg9]gLlã$zT){LQ^M -:L5^2B״^,:8 ڧ*;ݣ{'Va[b1;ߏ{*/_DNn7MS*s>7oQύN<;4wbSR]>Ђ=0>.kk[tHږq[(=iE.yF@{` x5@6X@MןaGϵ^HdkN,@V) NmЕƬ(I[IG~#.20\{eoAf#_E_w6k&ǽEB~R 8^&.#( {pm9a[qQE ,jMlkw~uTQvOj4{J1 ?/%3x[[Xg9>wM<T 6O _CF[feOus2ӽ/n3Nt2s\6V;m¦ P "G8H:x'ZwI+~~^o?8:ilQx\B%_itVMw"Ҝy ̮ʉܱmb 7CS2>Qt.(y i3uEeلm 7m">ty\L8RhN7\*슩x;- .޴SB65f!-Bet_Rax!-< ;c )Cl!H?d(NU#y rF_CίEPײ`tw쵫cu(r]EـKŤԦQ7r){Ǟ(X~5љA̼yzI(-K|Dh;WBmԜkE |G0LM NVW{ 6bra?0:J3ׇ6TQtotMJ<^xh?Lă+{QJƪˈ泟GNaƖ8C'i(B ; sqڈcr *9f˶&l9R

qر1r.(=rzh:34/.d::lat!\w3zxf&>9V]UXM|,z6@o,Ne?9FMNmK;d¢4n_^mѕ{dv:M#TE\:fP_ :! ;3"u^qYdD]0-룧r-Dnx^uOa)Ii$=nPqv"6q8lti K6L91e_`B@*gQTo&ڠ-՛du&!+Pu72ea1AO:k.vB]R2 r:Bՙdɨ}wIRʉ^M8rgtm9+opz>As^ʓ&ȸK'^0z_b(0 fO`UW.!gg'>U;Q;/RQ&m Ɣ.f>ɊdFH<r=3Reb5gufLgc\jZ+_!`#I63pdŒ,~ gFiO:5' mq|s#_c4"`3pIM-ER LRQuZgtqhdgt@6I0 >+'&}f@%;@ظga ;3,ܡPYS:/<[X00Y"/?n }_|WrwWq>sw]q(%8 }HLK4cG`ޓmU?"uQIK=*l@3^=emUXE?U 3vn'oA߼QsޓKFggr* 6M1D(`GKbO8k M Lx>mnX3kNrI~yNsccDN06A9A/ˊFrh0)tQY%|Plȴƛ/yL)m$c__#tETN˿^.8.v} ,]Qd0E+e5s22&rGΑu lQCX桌BAFso^=AI:ӍʝwU -cX0G.3cZ$[M" Yw2?Gl ӰrR 18N>!4Y, B;sáyx2@MEFe,9w+H hLfNfk:, 112a*Cy.) ɜ6^ ?gq0wdea4].|l@iMN<3mЇ':FTEnf " 5L/pLH&YgB#Y?>(js ȘglGh)QKW LQ >pS%/fD]zv ]g1aZr?dzxF \ac="]~jȿ,y|%cYtlr$(Za4D4@oֺ *61/=qq_ y,NT@V3=cCKvϹp$-/&v r{TpnG}A`<ېDk~':'k$0,QVc3 6P'ۙ$:vEA4L5E1VAj(~Km(7S'Hy. BD֡3(a:0 sjvGn wCY䞖_[HJZЎ07+X&A)l,@MpR0pQwk)K5aI M&W8U 'p末wЉƄ GȎ[cOuȦUߪ{@@V(뷕^Ϋdpr-SBFALjBI4 ƥ/O,h^|QͥX y[a*@}Ǟ/^zzluf qwt EݏUr.eS(PH24Qo5^ <[G&#J>,k|tȄx冉ldt.~/+g VF8ގ=9$gr΋2r7vz8a`%e`^|ϔ@܂X_鼾ȌmoWQo52D ŃX6G!ך1t T)ݛfvv3^zz(wΚ9W݉I|}JUrbĢ}6^B??Q \/7~>T*^Ʃ_D<[")m~t!荽{XN/)xB G=qr!D!%gll1e=$( n |TUH(rS!EZK뒺t@}aH #N2R ^'BghBU`i~_Tc#e7|3jfnLDi`]֑S(eywK_Oni?Ac)N13ЭŬhu- , iy-,@=`΋x8|t4l[uE=Ax[Q)gm˿c3QT3R ?V2~O5@ŮEƻ.1OHpUJOqj  ,">\H@I^H }Y1=־x~`*ۀ.I; kwhQ`Y'Qiv홮!)sQosdC១]~ OqH)aH.^Yͪ]Dk89Em ך.wzB X.Hf ]Gt),nx@36SPF(Ϝ;@Rٲ'efyIL<N`|m-NTl rk6L^QT[Lh?mYV"I&ٍ"P6t*C7~CTFjT,k=jF ~no *sZ0v_GJ_NGĈ^k%Bp}u' chP, @'4r~I]%9/T{=fGKʺEp|hɬAl9|z.2mK| f{߶Ui1`(pypE0t).Qet'"l.%m)Vd^_N;|5S@SN5Owӆ34ut 󤉐oL`v mYLRio'}፱D ۚȯ9KUW0a kN~G4MB% .wS-\ .F{ ΂vH>+d5A[B8W+!#EiJLY1r]ܣfnL%ouLjVp­bORZ,k Y!]R?ӣ ح#:ݧJmbxִX_hwӅ-r,U?$ҨGrxJ~#c?p+D/ yh!]ĦT=)r4HN/RUQoh]*?yxRˈ] sa+y0 \PL-@RQ߁SWJT$xGMRʷdՀ[2_ev྅? s_z-/^K(.h;Z")] U @uw /mPD&j#+ $!o^;"A #V y<h\nz6I௪X #b"\ҥdR~,F΃V#'SBQ\1˷_̿2yˍo<("O<&-ihU".a*H\4p'xc_` ?jpUI7$mLtWoyO䚼~=^#>񝡨ԜBƣ1dV7%aunMEd{jp: ??u5kˊRmQ1!=L*r[ euzm073_W:mFk0'PV(ւFuܖ$X*^A+,:tiJ>I%ӵ)<|]ΆCK_7e,_b+)[t|:{㝱!PhR'Nv̏Eʎ}Uɡ͞Nc>Q; M0,_i#mꬌi9(lpt.@VxE y|s^ uY\krȝ(x]ro35Wt;"0 o::LJuA(:}~2O&iy2C}jW+=HB @ϡh K|V+OxkIH}H-"A}m㟊0hGTQT.8`n&*N(R=gR&rl]k$Ÿ1z)\FѦ2ċynSMSuAرZAP/,)VFl[w01v:ŽܹtNQ(?DR+zv^6qY>yq'Ia-p#=M\6cwibxrWQlkq@żkI:8[%+m) lIgN\Q'..7YB&GOcg@F}qC4]ga5濜|(5(nB]J`b,DI7}:?{'1.evoQf*s9M}-;1sSZ@_!&?b(sʔ%%,ձ! Q&1=vrp<\rQ9Lm0޴ 騖& HYo; CHȐ,u:ٶL"񉟸*MIMx= GhJ_р8i jg`᤽tPI>kub>ӲV)tū?]3̒;-pGia8DmD vÎBf5l€E]ICh~&0B~(s84w*K\B쫮6ԴϖLe>U^n-q+@ jؽKGϲ ms-e1;c#Olկ$voo$hR0c.kr %\ڟ;na4=$`0n e!kIK5"GMd \t~g)ſqarfj:2PB EZJoߞryE'Nfz=]JNOs)TxN1,.J) C$y Ǥ?i?eQa] S.JNV er¾ ,<*bQW]:ڠުb۔܅K!lAm@K7S&MnHmR f# > :o/dÃ[/H ջBfo|Ӽ|a[HۈD˒)e7@ "9=yS]h^\BG'lVYz9tjLD]FPQNᗮ94g=|I]g(})؊r `1eٽqiZ٫Ц7?Y~~'b)aN#эZ]q0wc.#ѫh%/MOjOrn`lWwSn}} o(fɬXd_ߐJB̲c hU'_SsjqWJJQu*[ ٲ\bvfꨓ| _=e=K12t^S' yk8 # ȶ5MT)ᅼZ7ϩ| +:OiK< ~a/ Zp>nҽuytObo~+яKKL &rT@942 lݧd.Q_,}n_Te_ܐrЌe^{֦*/M^@ݹ&3ݧc3/Nrޕ+-|;}ou͔2pe$R-L 0 ikȝ@+`8чD] wN*aϋ>_g1d=]n-/ܧ&2&y8ҼeƵJ)brDs-Cǝ?IyD! hbIB:6 s%vlh42y #Xfui@ܚ~lѵ?8lzZ7dMWwz>rz4\=4lޕb N<MdAb=sI4; A_>kT?Zٻv\onfR0][ekjpocJ1im99(9~nJO' UݿIGß_/Icli*aB{.~_uF`s1^IIgIzBeBkL|۾Դ1s~jf2L"X,^iFp2On([SEJ$Gq~]'l8{:(sVgTw)U1ElD=Ύeo MjY93w_h,²??8ܫrmpG7OiU s(t5›EM✮jM@=ɱ y5Ype5%swh|AGܼ'k}M `'6wfZd'(xIiC,5[lfJ@h{ǮqwoIISN9oJYS9쩛[;[{g|0Ih4-W\e5 &Ł gBVEko'2DEbi피E-þQ!k򑑉62 &MiqQ(ϓ_z1t;)0&:y%tV!7iY};'r\$e*Q;Jě ;dqV9lsCv(T|,k_GtU"DŽ= )pуOksQXn7fipcs6Lyޞ̍亙ʼn7ZLUNCo`vIy>J^un 硣ᑱ޶vn B$RQ.>e23湯 *e.@*]N!jcYDC^B]! .¤u,f|,_ǼTn\myJAE /Wڰn ;-66 s9y*^gξ4_lv&IDlF!o=$v=T1܄Yrm-Gw>K4-X`9r4_}qOBg Á T4،/4ʣ}) tg8y Rho^9󇓣BI*$Nm+ns_xpNa*37npq#9״*,ǟrv}eZu$pPlfSZS\OHwS5N*9W/?JB3jo,q|7`0 j8N M܋5P0N %wi4@C1!Qf&5g>z?O1)tJV{|P4y}Nw?1S\I[ʬ)nOyWK}ǖkbzJX&I=.eUEoU3?(ZUdbsC|d: PcG ^vŒ*ؠFdQ~1k۴~ x-{ɇh<"s /Ɔu Aȡ(ʥ{k3 hC0yUia<@L\ ?q/J1R5]Ih@jW< vӿb"ˆUAiEp|]Z!? k-BVqf筕fQR},wXĶL! Zqj" |b+>!#/[1Iז[_^/%f׊c&Bo:>Ԟ+>=-]sGdNy|й y3Bʛ;hjˎ] n-.5٣ot֏t;)gM1 O(K~#7@)]d: 4둠p857^]u[Z* ug/(l!K@&0DAi&*\a>277cnbdsKpTU 5CO' UKA9^+Wo ^዁w?%cM]oZ- W>Y&FmʎbhI2C>#+Df=#j_,Y{xij3W;\YL-"dpJT\0]d(@vҍ<%2#+wGv|r M}`$(Wsy圜tL= u}Eȥߎ>W? PGaU9lݯakZ_YDH_E]9v<|ϥ+2@S;:px!vgه#ZV@">{ д'KGJt?/. qӪ1oլ;^l"9"Nuy6p]RS}te[m_plú=2puvBH@JY^4SzqF=@&{{@b| sv赋e!pv3{R-^]ɌQÎUmzOeo ?}A_};R f;RzADik-MQ08_oB0΁ž\<0&}wm"Vs5TEŦmNa`d G6A` `Cp4ČįT2f40=)wovC#qFKZ#j4O7['<@|⠗mYghD8τHn!N|aQݡW tC_@]u,aBZFV>X=cYQbPVHm5!H϶j,ݻfխ| ^lzKac$1cA8YW,2 fU5W`W:PrDgz}_FDk.pG5.4{.{ q :*ԛqvY*xɑ>R!oAZb?tĮuS mMmh$ڮ=22U~ _i>i@$\fc!aX/WF|j!$_hË!eA1 crܛ](։LX"UUMLȹ6uV.$DBUSe b-Z行㟲b|"o^X*JӉj~P#iv970.E)ޖ7`ee'C}%b3OǐNLj9[΀VW:;%L1<` `>,qz ߲ .-V=5}=-'47Q{8!Lߴom1 ;̓KϴfEnkb+{gKN\,[j l$oTE>\vV>_l : [9{خq뙊l6sT-8 CdCevt f7S?菕 ܾ.좢W|±1?B)G[18v==qTCNO\{4S'.,xvSN" {;l*X4d:@?q , [ۣ$}tP N']jGX%ڮ15#R?qW q-t]:)vhž$^PKp|C(3m# \4+'j21lzJ skYN~­1 dcYA"],ֶ|9ʻ4QSѿ^NoY:9R<.Ɯ9D|UkxݧHd0 Ūr\Idj?a#3|#P vIRRYZDJl5ڪאC+ku'VdX- 1R;XyFOl: ?%H1&X)ԣURyFZvPʨ#8Mp[P7VhiLkX ~?NX` xWpE&0#`rŽeFߏKNo}&kmHEr+~ɻ637/@%<Rc?vL`?-nIJVs{輏yuaLwjv:X X/kT$VR∰(i-~f*-;C WgkSN|a~`ʋenЎ$ 0 PKܢ**tui`ЊkPBN&"@M}L0,c6VKy@[/:㍥|,ilJkRJ5身\5^ձ^ +=ZC[nNfUUŪawtg%]zq_,us}:pi)ͦR=b,ul\_^f8 D=H$ Ner?̦fp3!+do߮}L( (X5>3+ܙ|,3 ӟ4W 45xe"imMONGy6lYC_.m"=F5_jM#k(e[`U;jB!g+Z\]VQTؙQjzFoʩSY;NHb?94 ڪ֔%I16.nb t{~zKۈ*n9&o#,OOWQc=]%u{nq e}PBݬ+_quR} 2 *Gq++DLf$ w\..87q&RXZ[/'Ȏ^9063!T?SR22=w#E޾N5oq3ٶnAh.71@6݉Ѹ &[.(<~ V;ݎcs=έTx_i%7W@3 jd)1F?z ObaNUۚ(c7d1\_oy/!@ZpI(K~m'h"Mpw ъTi Oelr=qC9օU^"TqE94aIQ@%3x,"OfTk&Ʉ1'̔GMQc+rᏰ5Nx_B^2 hI#F=Q3@P/d# ݁( RU[wPmh/7ט7?΃;0 \o8$ ~> tmYِh$7>UEy_;J{TdS< 断4pll ܛ/nBH6fĮ|bˈ9c'6\;dI>|VF'h}u*]DYoMcE"D9?A2ȝq,(sFI'D{Ůn٩,JL4V 3\_YYg&`=O1] vfzU+V'?>m'zЃ!.eY0) uǤ>.2zƇ\x:nMyZ~-㨅)"uMDVD}7)Sҋ.'#gI9?=36[_Qj6qvM hK!HiQ'WR< f'sʍj;dg9?l57idА3)2X.ֵ&QzP [ 0n}#h%N3\Z ;ێl2`+ɲǡLu_aH%=k&G 7cCEBk%㰍wKi*4+q[nc{5W F\#*_ iSp{".:|OЏ_ 'j!8UXᘝ|+ }o &V ; &qQսtq>*s1zUhdkln gP";Uơ.L,_7' 6K$́,6_<0jLP91(]f&x7+@_Lh_3d2k!e-DtxH&!Nႃ EL{n@rKz2Uaݹ2x&@ԿCB}1F3u>Fh 0W_j&x*}Ƹ*mWa'(ь\￝4aU"c'`Gr=B=ݻ^<=Λ84%p~TvѢ "Gy'=i/ҠŀgE'z Ump'[]x\k(k60E=ep{:q*L5z(.f+No` \ה ('z^OBJ6ի_Y0w'Q_`!KhtC Tʖ?0Pd>%c ?}_ "0$yZFϢE.Nݔ@L3>qaB x"V.W%KǷPW"?3≆/ނjeilОjD྄ ΍cR۔4xSR:@o_yǦg{i ^U3ӝ L9FH (OhpmYssp)'gHGF`84s_ Xx?{ PRK!90ǚѡA!i(i|lC.^w6S0o` ECbsd&_Jt9Qx|kQV])70T οGacJʇ'ŭ/a{~?%S r^0Ǐy#_G0㵶pGI-Uhr0*%|_+=\3|A-D0@f 8 dۑvlM)Wԡqm*رiZ s#t}q%KK CȀSLrYmS|Q$w[TrZWmvojW}rqoo]zyBk.>t` lRv Nsj{\k tX YܿTLS0bZ'Y4~bV/.A$['py[(>ҽrV_W2V57S0 MIˤ&*KW*bX6߭DJ`&N1c8]#b3v&]V(J z Yѷ΃\W{x#@䋅3o&&}/1ˈNOe;|e>X) {eXL91ik?N#&g &eETnL_qwtN6垭" }4>DsE|4ώE5P9QB{ zK#7G7VSR˗Vn-ēD#3 7;Toc|S :+P=*x.f+p #7+|1nt'gkLiGKpͤ˟ݎ{؇"=Av~A\uU Ow6P@ᆳp a'mM̨~zHrCs]߮⭋pD<4 :ZfT{,|r\iq.E%dgY4L?y4 T%b_Cw(_Nl"FZ2i@e]F\u&˾uPfO0(gMwlȲ:˟~I5c3z~!`x;Pdq( wz6!X+1#(zSeiLsz[ARd~)y#Qw׮|Cc Mݻ5C$*+n.G񈨔"xJ~zd#5ks]kԍ?#6?Rg?p\Dٿ&O胨ӆ: ԊletV31H`5r r1o[wy PZ7UϭGթcC.;R6$0qs쫻!52f+)bF*qrn/, X_}!< 0S6ժO|<;>˨%!9Y ?FKށ­oIq4dc3Kii\Z6|`&&*t&ˉIoyao# Cv6 LYz1UUVߞ88G/H 7q6HcɑD 7gEaƛjScv j7ͳ:6/(m3ʺXd[gfB?Vf@';՘M9/p%"AakRpEfpU3=zC<1wtM3$;NlYuέϗxpS1 j_5Qtls 䙩Ц]WRz v,I:-!ȴ7M8i(uncI_;42M"+˽ Sꕇ14W8Co\)35[`V Άi[Rn"B~4Ǔ\ odrrDi>hrxΣI:CB;ғ /w dfF&A%rR:xghIղrZV* +y9>)w|#1S4P\&a;Y{fB"»F..[W gOe+u/ƛ ΛF)aS5%QT@vaqt7Fοj {|ZILcD]^K @"l/kC %cnn˺W?B?"{80?iR;+ԛtL[ܨʫ ~؏qY`tDkA6w ~UBW؎a8CtKA0{|_;NZe!ӓ,e^ d<_2̶YxZ,HFk59S-FP^`n:R0JU;e\9/teK{ܣ lfɖ"x[8Ut:sGL a{ DäL! f*gXK:  Fmi,-zU !5!;؊_E"}߮z9a(y6:^$t' =۩,%*:ICZm/t\yi0z0Aj~ژŔR^'ֵ_9YܧNbs!lOQ[5Fo^نwx^-ԞEȘ_}UJ*$cO7K([ )ZфE{^J?)6&Avq@xMtAؒ6t/pK5UOU7(APvSp#9ʕ$^aAGJC-D;P7<,+`ۘ:g#y/ qɂXױR"0M!-̘03fYx!@i7--/x!`p𝖐FhEsX35Yy 嘹!cq^imw${7|T+/UzUsNlr&Mh fJg '"nk4J@oWn jxCqʖ:#~ҖƘՂ:)9c "ǵo.)=ҬfU'.F'dP>'nu70XQL0t7v@|=c+sL>$DQ*sn3KS|gȆƚ`^1-_^K-|po? C.3XṇnTSCJ{sg.+$ZY*4cC0%RxCipטA. p\P.gG7U&D?:#y?mUK-azw{( K0\. r{%Ӫh6DKKaBBaż>I @:۬ȫ{`CqW=1XLcC =bMՓE121ؔè}_ODďzZ,s8>*3ĦmDbsK0>`Peg!rǦb !& ٜ`>4#^-r0p18QtZHd'l nRܚJ85515bOOio>Rdm0Ta5}S{_ylI.MJL3m|` E>ʜ/G3 c&эF2F`,k}:nҵΙMPm s@0:Hj{O#To매$)aT? B͸ @@o~V!d|3U&k6JŷA+Ӣ?{qi64f7%yd(3!xvѦ}ygo<R{4k0G+z2HR3|a"L"HvHD,!N _>,-.ʹi)8=pF0wq;ޕ݁4A3Jxԛ3ixf$>1tbwЍДcRb @k\5Zg@Y c35X=޶ }4v%Gn_koz:4L+ kJ-r{q̠GFެ#~P9=u>9" gF<ƌt0?]tv-Nj%oAL&{uk,.i>ȖI И˦rbkHHAGoiby?{L'.Ss,ŀcl(g3% 7G@lg;'EL~6*g0⇐9 3V g6%g~H>pL_pr04%[(vX| ;<[K8 .J8&L(Qv3Td;W_lQ;̘P 0y]+Yޖ[C'Ï16V* n p\7_HJwn{8p[0!3ohf~Tavqs_%̤<ExDMI"dPPBd#a1@ʬB_[E=A+P=QHEz7Ĵ`HyR}Kn~EG({4]2l%h Aaz1ow"@IQy~!~clzuwʱ>'"l݊q756ŨlCG5P-Hãʒ:7E(\WF%g YCRRbE3ΔvoDiU~ʞӫ*dO3 2T`F 3VS )5- 9]&W 3DH, c3S4y, Ŭl*{@L@=KWR=2ZJ ;]I ߄͔W T-pMP&Q~H B.5Mv?a k KS3R *3Zk)Q9 ; u7xQx" 7ug$˒_ݱ{?fs_H& B@r"֩H8272,? UHȮg߄j|(-~&Us!$̋h姼uBs7+~/$WRwjj ͮ|OeGjeFߓsy{SSQ6՞SVM;J /O$>ş޲d$QN1:ߢ;W fdz18g;BjA4fRCcCRDavxKTg^sR=:M=ʝiq;OESTۨ&^ܾݘf\ѵ]H[oʇ}zWQ *)uͱ|yDPCBxu5X>ȈU;M0Yy)|RЂ(fw4m!nwC^_"RQr.C8O'Ryѯ }P2}KG+1WW|ѧ7YMBC5U_0NUAos >Qhd,<׳^P PL4mڞ;t9/,0veEliw*nBv%{oE ڻ4čGUDCEV?^kכ"ں9{2"N)K[Tofw2zK(LyJ8SZttGhu+~2[fP/k!7P5HTpm-&}>N k6Lǃk|uFg*%^Fs2܁$ڹQbvo[Qk2c`.c% 8^0GY)AIM |v`%q$x`$jKWMz /1jO|\gTPkFV뙘S~=9Җ{xR&>)#粒YO&F9¨8mϓz}ےʖ 5@W`(CmB?i,hzȔxBC$Ĩ'W[4PdT9U._\N?HǸ~Lzyta[h>l5vDt \.BĮ놴nҗ]Z_ʸ;JG+0ÜO#RmT4`%e /LRn^dtO`B$ڱT]mֿsHIBT+PqmmڋGV_aHoC-gz[T@CA=8B_*I-n4+뎌*- suwt>]mwl83-E*Cv{lf q>ߺpė1 j_cه4zjG/{WIѽ}pKSmT.!v4Xй8ȖzbdI=ɇ\V#'2z9 ȢXa;2oI/)^w~J< ;ɝ2ԭE;virRտVn(y /:4'ʮ‡r<Wi*;ei?.6Cqf"Բ݁E˻}ucYY2:N'УKc$S m=r Z& p *k5Y+kf)sEzS_hŮ|f}2,~_@5lwm|r2ZޝUVt?9?\`3eI)}CNC̟K1\ڐy>ݭV)! SI@h4v#uq3vҙFv3.p$VM<=Pіli-/Lon+8LNkj'CJ0CwՍ ԚƅےYpzL'L@dRzqCfܥ&1LdJz4|ZeBf_sЅ Vң@v[a`w{kQa'}y_^G\1R[js&q[\sEi{,uOH=[QĂ7ړ,NoHC0oVgL2 Ɵ50A$Ly+8 MIA.=+ kw2_=C oIbdQkވF Cw-n$$(/ mӶ^"qlZ/àPe<3^΍*Ȩd챷+_$Jn !(_ALyQ1RO%^7X̆-:v;mT<7ɱɨ4 %Oi2g #ֿwoCP"[K,IHar. ˀSs0[Laܷ>yx9Lk"^Hw=j,eQMR lfPWbA.d}G*_|~^[+5 ]%Jbn;DdMPe 1pLmPrïxk[,vJ!ik`^ۯLqR"-X@܆ptaAH7HH|R']i7 N 4ޓhi x(‘{2Ys%'\:kWdP\i; V.2.o` ] OpOA>rgE?hC q=3Ot:]洄"tΧeM"cvkʸ@4Ob$iO~o<#e#v $M0y}q͝$8rݻxy>a-wjwk8{t04_jLnz<MT>2ECRXF 7z |ƈ蝲aN4t+ y+f|2彳n6{(3&+Rtgt]GDr0NTcRJ Ԫo"_x9BVk9t Q[hC.E+5 (_WALl= ?\ݧg[u:b#^;D|(R7NTѾǃx2pa#VQ;Yvb1R1ؚ=Gk 6z?$s^8^U uPkONɰaiܣ]t}x2pHT A]7˚Uu0Q.VJ?-Ipɋuآ&N@Z<kA;Qۜz7!J mco5afES?2KK4llk 2]+4J;FZo1 W0# X}g6!}ӡQ.Z ~eP6ς$4a-2V\vݭ\VaAj>% "i+F;U&L5U$тkٓf9Z2d,ixCQE)C:e?jd+{: R)J:@7iI qZ$:>.6NALLx鞡v,\%D8glz &98yjK$6V+$s$FOWM kE6 )M /t$5DzJ Ҹ`X>)J6)a[u{!npi6ER\.̥s Tx,Md2T=^kpˆ8ÿgs `ػ֓$ UйZ&ə`>h<>H̽R~莙 V RрP7۰:ءzN.L3~3hknD@-蛯-Mi+`,bhEAt>Zj!\&6Ts#qF8U96^nj{ʿ68V^QsOϾOAq\ǂ^q@kEn2<~3/&k˴"Gk2{BVJb군qc`=FbxJ/4sA4W𨔬Ɇ^~*S=Qo׸/hG厲7wio3yT= ׾z+;6A]}3eZϴ]Ct;Y5"(_plPI;f:Mc'xP\ͼa~lځכYdΤףKW\ݻ>~Lӻ?]>?slTj'[l!o2pȫ5E!H|`zh9[uWud$Z$> Rտw}KłIghm}# Y#M ='ʢh`ZqZS(bU1S'ib˼$pዸTUtݽ .=[t*aBT9s)gU%:dc)upE{`5~{x+{U׹9yKX0^}.0RI7Vj I4ennnqa@Z85 Lsdk{AMOls9T^] ܃ a,V|Hyi-7/RubY8V {1n\y(XoVe ۰}hFLk|-w#B r)$H԰5/ފھW{E>"ey-)Њs9:ROZn\{ /^07 ݮ$͋Sdh52/eٹM{?zOeĮIV+2HyR.>.}G~QX,3A A3"8lv"W0~x jW O u%ɤY%EAw^eܧɱV¬K`A+t =X8~L?x_,ZGC]8= I 13?x*vX@ Z%9=YtVٰ1?dBY陷Ob&O ;ʋF.6X;mTuԞE-gta3x]7屑1>Iۖ۔p5lRl[!G6ngYrEfDp"GhAL⑟ޮac&U 5/i X#dӺ\ Pm;ZTYgkdWF=;54ñ.!GkaEϞ`񹄋\:伺c+afZ ؞ZoW6u t-$0pWpkW T}Y;8\"4gVTořP$ujh*4r]ֹ쪅՜P,!9eKx l9.ќO봪{vozD xq85#Z%1"TZ]1 p ;V*~R@D"M, s9!;,.AHQ^iY]i_ jiAH"ǩ(1FbRYrkJrrNt;?4ʎW >Uy O Ɵw3K^a<8+Keђ0aiEIr˲DCk31lsh _ 5&= (muX]s5_i-P;pW_!l?>ؔ煃ꌮXRRzm)4̍[qO4u>f{U{㘮7XnBPIق(icsf]yΏmM$(-{ѱcG a X! uٺu)K1! ;^LKJi$3Œ 5L<ڛ}_CRXXS{H!ܧ S |؈6 PR˴`#ETEq ʋ&+ o[NiWBCR{=fwмam#+Mѕb0Tָt0FgdMEXF>X:}vMpv^16 q㛛l$ E _dN&:3"p/m2Ȧ2OabҊL^bMs/4$`cxeעEͪ3EwlGaa!YSSl8@r ҉ֿ :8\ F[l#{axvdoǤdn`85srfՒ@ءIwfViQac*vD P"mNĸ1ZsLBxmT3oZ> P#A5+psAV9?UT4(톆r8jmS <{98ΎF* 4{_+HL1{+:;> QE4ҴG \JZX1$f]8|dgi(6/oû.,5hV +@[nuR?ԎͷYBs hPT $-S#t&% 4~O<mAa2X v[GPY]AT·J"=U)l/4Mvb3%mЦ?7 %"1-Cbon=4Ew@-z5. )Ģqh>iuXo7l5rU\e9v~@W\!IM3Z$V|/oF˧;Rh)Wz \M0}@igGܙKN- *%YXnڝ-n0!ġ)u&&1d-Hoc6;|7dd\?E,ybp.y7ۇN 2 :(>O{H)dƄB'|/:GӵQ:TKx\<>" Jsy䯏4m:2tteQ"9'ޚQL߾Sw̰dv$ˍ?Cw@y+jx%33"dL Y'|#CS]M/Q)"f#`VHiç -ۋQ28 `E26 BQ/񄓊KIZKl^/3 `FoW28 BapB='hH}" Nb~`I|i%r.|t>8[H ϴme֫yl*p= W^qh}ٚ60]*fs G+YVp3^u;)FmP31e&0wפ QǶUS,Ղc\ B64Z aa5[X#bVՎW$Bs6fd+𣀁=.F: ?bg& ù R:{z!Bw[Dҭp} HC̥N. ,)*yDqJAv Sd@}Ƃ"e84 1ʇ˅%e=ct 58m49S$Q̥?[Q K?i4\1ƹjrEgr\ ,ŀ[7/FkDD_R ׆jI#c >aT٨FD[ ^WPT;6)Ƽlv֝> ~8p=|ϲl2y6XG-qe`[ڂ_lv /alQSڌ9H*pt"Wˠ,b6,~w5_v#=/Ә~Kcu'9bWkv%G8[!tE9xx`%2)pbԫ6ֱ~"1OfV!>'nc^{y/(m-R8"T? _}Ҭi|?76_8 -&2TP\r[Q ųL|ud|DZilG&Guqw;.RL$a쬵oM3!9Ì= dʽ^ɥ?* r͟nst§ʶؤmcB~I .l]+V1wvfxUէ.rQHQ5 #y̪>7Ihgb*%uRMhA wom0=2e% U!_=cq>꾺H@g )TbKÌu<8p.=tCpeV7yC [q\g5 LgW}Pw9Fz1~_k#$5~:%gK1ʅ8w>w!~Y[[#HM(99U Wډ{z߰t#Uľ^@nƜ]I%whǦ|*!]b:j5y]Zs>Քu m ;Su=pF=8V Z4&g,j':=:ʋ",c2 v8"нA4p|`afP.>0qÑy=-7]G|z^V4 PQHFq"57+Fdr :m:1%BcQmax0r9 JJᰍs~i7_`Q¦>)[`(8;L!,E"B IZ7 M&  pANd~H^~oqÀJ1Jyݝ&lÞYb.%BDߣ'9¯z/*\鐚[g{H"muY=yUxMlAqF,F:1DP`:kǘ$o^aTֹivCT(a=Б1ӘC = -Y]Bc*'Q0ޤSie }vk;fiI$ѿWOa݇ܚ=EK xs@n\T`OuH[lkf X&R b 3fOJ40v_zA^[(`T,_;อvS#)@9oTj ^ e'%z=#-?ĤlÈ! nYXY?9eobּIqhMXT )jED~a)mʤGO/fuX0pFo9m2sLI9^3Av;QNhVGRwVI{*(2jQsiۏ}KfFo'⼹iѳ&x*Z-ld vro]i5B %ܕtpjgOg~x jW!GvP3p4`Ju*NaDN#s'<]à\eTp>_]&'qx= HWm-KTFT[ˡu|+,i8tOz=E*Y;+!r*6EnX⎛%bg8T7o`,eЃ\UDqvQ0OqC*.[D&¿ bZ3[O:|`yRQO Ƒc.KةwOOm)/=?ũS^orB݁ n]k +1ְg*8>z"G(tI d2J7 (!rըue (?\ N"ސ<-#w ,?CX*T,Pr\ü[K3:>oȯ2{QH/}@/k>lH5q|k-B8g>ጩ~UoA+ۋ(%3lrVV‰ ;"bq#oGq&KvOi~ւL',r$ߌ!sy~9aMU6xro5!0DodB[%?UrӑNnξ UF_K^EeWeS[BO !b9G Xbluwaq/-(PSA9poٮ[] qt}u]B-)e? >bCBeI99 Km#>1s=u[Xu4R]W_[lV|IZWƈO:^/ݱȵg"v8@ 08>{gɒ+oh l0{;>*{{~#*& 0P8@!⩃~c֬xk| Ln Ozh$ ׿>RZ_=FvH5;IDJH˺kVI5bpu޲I V9Fܮ4G ]K\q1[7>,bCU0~S oF?Md(bt$ym 35;hE 0Tm!yW6[jVtfi 0c~sAVBV_q\hI9;U9m,4-ӄ@fj,<ֈ*Ƹ ˀ#;ћIXsc!^Tzٸ>;ߠW.MAyOa:N.^EǠ"(!1`Ι؞<[ 䖚'ODvL^EKnlTvVj'(lȺ^ 솗n• x囌S9 vbN AMrp٩J\\͓)DձHk1~n^Lp 1 xr,كp[seb7h_7`O[xC#_4)>TojPQ !AR<㨲m"ؼn.G۰~\ac4,J7fSB4 ,}MOJ-5hm%}!IPq;Rl ghISpc :tiQLƾtU&fj tO3m}`Hy?l\2s&%h~?vY{M&Q ;֝@C6sHP:Tf|My&O=NGۙڧ3tJǂlh0[Lg"ZRfS}?\e;`LX<4ͧS,g =~CY e[…Q R9(r'5S ٢C5Q;jտy(l8ͫ`$9_MAMdŮ0TTj4Uhg0[L _վ@s7]sCe2rfRoy ^}kӚRZ$5LrcE8EwSI@1@ԽTu~ 9KR^ P?S҈9:on'Bo<*AZ$B?z}6+=!;*In6*~J$3 a"ȝQ] ({ 9ζ˼.;An(={ DDrx|lJQR?D?'1!.lوn9y.rG ٌHAeLH">hwwqQIkkfJ ]9EI+a;}irĪ0TFuuIlhG |xZ>d? z=Mа|&8Q#_>RB4 d;ߢ3%G=o`%.!us|=<؎|7R;t7m(|eI6=t% ,.-hsX!g[U'&¦_۲LZ6Q:b_Nc̤i/oZs+2 8oR%8_є5q"~>߱mdjA9).ɷà\C&ˀ㺍0M{_W9B\_AWDer&(>a/m9k7,A4LV86 %ʡ$7uy񘹮(ʞZ닋j@*%">gGlHqq. -0qym0 ndYxwZR 2$Mvr(p -`G@k{VO2l&כ/*MKF#g߄0V{E*$aZ:2Uw[ )c%jk8)lmy?'Эn,K)CV7/FG{+N52 "ָ[ᗀ8RY!FrQk}W%"̦S[s Z0zEFY^iX9cKrkʜݧ4L)5R)dM(ԘxxƇ( S*I+W @?[!#ԓZjv\t4UR]&Ek@{#K$>һVg2wepm|ztd}֍deP=.!n5X!4~Y4bEI4d+d?',Nj{qӇ{7 nS7?@i]ķS\؇7Rݛʁ E[1= )._yKՇ(@دkGפDCR HmuZPZ%h:Yd_*Ā׺ 0&@Ax~EےpMɳZ9^A (S\I1Ͽ_RP Y OOmȰ(H|_G쮘[7/LVvVXQj8&D-F)]جj!1M &ԋj_gh[& =>HJ!!NY|.] Iپn䢊$q@\{sxN$isRhGm/ hdw a4;#/q LhpߢW=Ff)+0gh8biwu u:ZqpH!JXb/n[c1.AS[xи|^_/`/Pg8+u1+w pgqXS"6M[z-f!' XVMxuLeGnp ԛW#hg9/g욆7'?@VƲ3!g)1Otf9AmfRӿQj΋:.J|*XDwח)-աrumǂlkU,:W!Ƭ='ى.Wg^a6N`:~n>YEǂN> !cY.AS%τ3b|jgH,qؿ#w1's PoMi5^P:7IحZzmکÂLhOˏywja]G@sk0U:ӡbtpWNdrab@zڨjSA/&<1X/@XqRv`O߆hXut;\ 8VR ft,Hk*`4z33OU;XRٟo$>‡i.GB[FdsiNdK7uah𿛺ǘ*4jAU~u!^0E,j,u b@__*uAs$ iĜ^j=6MSS-w`+ŝǛʀsô"m5&Jm!J>!("+,tJ{/A/X>x?} A)i@2jxDTOG8.)kF⮽-LFQ)*`4#amCmǠ+W(2z),k`ŽJo\~aMuנ QjjgrDx"< q;1 Zԍ/W{`_4,'E |k&Ārݚ;By>ύӁc$V=Ȣ>lm%8=;ZFGD?վK>|d)R^٢JZ-Id ݁'8xq#f猵-UeWh5uР|梃2ڗ9[᝚(T5pV$',^[e*tOcGRwxaZADg#`]{K>a$:rZ5KӐouC*vtCE!)OICZHs2 PZhr$27死mWJN>[h/ ׈l}&v_b 6.}mr!,8U3qhQXӮ99qfA (A0ܙU"q~~,v S"43Oں[7N/SyR`]Ǡ-sh:V"!Qsas6"%k(W GI\.a|UlaoyS&Hj!7W'դٛ߼qTz+z@SK,buhbfbF`3io:n`E8<I=ˉEVGq s*l]С6b~$4m! Bk^]jս#<2n+ TKzw^7n s,EF(rs\.j5|-ҠWqaDP=<7n+MEU0K;*ZM:DfW*o] <9h5im)[]rHN= 7Qk jYb:8O ȴ A[ˑ6 2_ ?3/EI_~TԽj6 ?:'rKVFx3#JY!gNtl+9J%_>fxI7l[У{ZWE#CP3.ubVK5#޿C-k_=qjaV7^`4rv62M-RěOJ[)*0)(z rPBzeĠxMO2 v(:Sy@ASzMErdC ̏]Rqh/5P bu,K; =\ZyM_(BD a0Oh87D=H"/me&/C~ԓ L3-y·{M([)o#niƽ`3.qwr3+M HcJT)Y_HYXZ>r!gsX/>RIZtChQ9R97MZ9yUh,M^u%f̭괗2!pMbrW`{O?RC`rĶr#hyfܼtlhQԌ, W[a-_kQ i0^*׹uQV弩Xd =HPETIPV*'s t 6pFP!&wq⌵ڷ'/禘{%0d7ZʊgĒs>"m>s()$ɓ[F0Q#^I^U;aI[4Z!1?gg"xħ9ә-(S&ʐ:_vCPmV 6/yAӽ,k֎(ޯu0&@ Z)S Mx3XmBX KjyC$qpQ/v%] }J#p T2%Gnugn|tmnwRk0MD60V"8]<$e& = oNJ(rRF$Ȝ-C'^m(jtbqj-aؕm?+H =yJ޽ǘ+hu8j25+Nj`hSS(lx RyP>#f851/^-z;5P"o8.m`mWZat n-OՓkh#|71[EVLp*1, Hf;B9c(tvsf514҆-Õ,d&'.peLoZP1Nge>ob>r=hI3}fA)^'j|e6 `<ky.%wGZSSsSe4Lo#GRTy\+£b*ţTj3xG ܋35TO={=ƨzB2v"kau1/(`tL1VUUvps~~,+t*2r]Y*R'P6&E(SteZE}^3Mq+ԑa:oӮCS{_n1*w?t̽:- X`aȰBhyZD7GׄvKMs:#uj ɝAcBh0yR#z9P84J|$(A~'4}WKϪ<]&o Կ Sv9 Þ$}v~+VHѡ5tPƃQⳡ3"NהR/܍O<c=3ڙv_mjs (m\s=A/ FF.@s!PX D< V)`S@} vC#/TRPCavQse-" *. 4)xp|dN["O .zsHދ4#}Yh2t@ ߷T\"SEH鿅_~=̐'c8H`kq Qt e;lʲbחĚ⨇cJ pT3M=5)@u_Lv!tj#,^ r$!\m+-C:IZJ&v@leH)6%8HYBGnόK{ 8/dBEc EJe)ȫ-!!{G}MVMHfhZQBm /|>rd^/6[kV)wi&\7K)b$/t "#aUV4^! 0ۚy!dΞRWCLM8LMVKS*k;5krmB=HOM8(02?$*`ODHYz9O<&]ALSDS@&t2-OݯwE<^jP>U(KDƠ&eׁ| rN B٩+b|>YCU}w1,5gs懔IY&{ h ?d`zBPHTʮ8GA{ 2KϫH rZ"#@411R IPYu<O/{yG|5%% pe|21 oހdMc}D^yN+>):p]FpM=mFbHpC@zvg7c鎇 y> -Qn;GMAњ.k}0DK髒ЏZ kP<_485%o \x0ԲLIO051шU&E ow`Xul dιI[3x YlYiŲ¶WlM/d罁ZPN ͻ!8"c~V£'l ;Iz]Ɂ yöepgܞLV\("_@ŵo`ͮ(#C,Q`@ƁX FRcB%COZHb0M\#gHCOc'ؐnjc*fMbIRq(ڐO tro(R2V *>3\zc)^kkSt"PHrxIdK0Xp  '_cVɷW`*AMR%P?&{j#̜|Z1A8QXalr4'h>2ۺQW*p/s()wxy!Ýql7Ud*8r>h[3jT#TIQKheKeZwX@vqzi:ƅy̾4r*%قE縢wh'7VjIJSxJ;Xr ӀM}u[ugVH(FԳ\iF3ܕ<3Jc: w稀{*D9D:wJmy?w!s*P -V*>f B/0$m)FBA`ejI3~AGEߊc+ˇ8!ꭠ/3tH v`Jd /{=$׫ߑׇ6 \Դx8V~6W.o XY~\cOwE&3۷@g7H}\jݪG2u:}N.eNuÓsj_ݥ@0Tg?5)ƉfplA#g,vYS>oOC/ݙ7HcaXADk}fo?Rŭ5]h@M.K#ڧ+sHw5^lԬ -٬hV,(˔#uwa??݁!w,iwagyO\c=  @].&H)<$?"EO4A \۶뫵VGw ߷n;Su:FÓ27C.1(4_`Tey0cg܃7;=8?ͦ}T Fgw/܋ SE-w5M`Q2 6e~sP"6v{uvnY19ϛV$bee~xq\O]T=Sp,0Fƫ0 ڱfvͧ,pTVhi,rnaLC&>y7`,3rT1a)_[֢jCoۖrDHod)rQ%,D cZH0DF(pv.#1k(x$.ʒs3DS#t6gߩ|m [>6}%GI3h+h޹ ?GToM+^vi0"I #[v>DC:p} r+^H Ị1tU1Qu ^8~&IYN{=D@rjte ՔfOCqls}OwF" 'Gds4aK\ӊk+g ?Iʨ'O0y)W">O`(}U|qmp.^M;&\Php;Y*!T(EhJl&OS.\QwX^^ŜHj+z;+ɱ~.+ LKm? N P1:륣]7>YzB a=Zϐ ڮE%B޾m.Z.fzd:ژjU3nT+-u4} xo ;VRP /p)޺8^В>ٮZ77x$>vkqqv sЯ¢`vR` boo_7,â0j Hy}WzuSE8y$w$%.ɛ ?Cbڔ+=q_uW20e"mO{KoA(qҨIAṱ|8(﹄_ (@5uwRzPrMts$k\Fj3~ 0M~$wPK{*@O۴UocO_*?s0w@%GQx/'2nWsHя/PgaE V]>[۬ "PyvQɘX߬' Jx}kԭqN#{Up3%WP}+g6N&*ʮU@Uq\3cGN!?``͇g{w.PDhب#Qy3 gk!)񯦈c+1'ORV=E 1X;WB? r0,Ÿ8D0X H*8ܟ-pi BU߃U0_y^⚋rr՟|I('ܷwʎW*$V1jo}jdAȕ3ƺS#!!̏? yyˬ-}"(kf3#j7~vm0xuVDpa٩LfA NJ`TWhHw&cx7nP8Lj"ʧOUEg,j-w{Jv byv,JgR^n-s59CdGk aR;¯x.;%kGbvLC404z ƻ(6^K*{Y) . rW\x^8e&HsO'u) 5ݞ1|yo@6Zb`R=>|Yr&h17Az eZ.r>SrC.TϓGy~wT_˾Ȼez)V@A[1Rk4XŲUW js2~ajkͷMƒEdzWo{_Bϋ;A)IVHh*"y ØYaY>H,DqiI8R5 :vAw$0:^]ʩ @P/GkIH)ULZ5@]މ 5W4HT-svHkФIY|bQ9cab)kzki3 qG)fh˓Q ^eG&GKbV[p|pueUק6VoNΛČS s;9ZDgC 37wZ%FouytJ2~SiXph𙯵R&1L4BbGl6!-|y6K_:l>C{0Rl{ܒvHtеՏc7a 4mV'àVl~ZnqÊsw3.׭aḰILUN kˮ=dC预ƎC#7JU/?'1q?q*Se aX2S+0 # 9@~!!Ǘx6§GW܆ʼnS,Sf  @ӝs1%HU QXԣL6Grh&%xts]oG.x]2vХ~ ݂Jno1OywyO6<;o++^PxpX*Sj/DٻHKF=6Ra #j=ɪ#[ӑ"͐*[wp{Ӓ41DaVD\UBl&m]%K7~,b>fu3IUg]صaQMF;T)͓t2[ʝgUͣ;o)I$l??YFORdx>W9 zlD`G!/Q5SY<[UkA#qJ iFz4Cv$,?Gi\Rp!4Q7F|`pc8:HM<%?@Og{-K\8p?y:xK.(m#Fk;-SqXmG][* #λEu³k8moQvz5l?(b hvG$q8}jxx.WN 4ĸaKq{ˣT h;"HJ%u5+\T]sAxδP)ח@Y"q /BOlW惂W +7V [c #kص|`KoeQN]*a3s6?Y$Yћ]6m8-Wn)t^4c]S@j4CʡA84hj#T.Z"Y|yf}۷|Y&G[D#"mIQ8# g2Og ~(P8 ^(h1zg+?=Oz>% wN)gX7'dlAq3Ϊ>؇$FMdid(q}e!fD8?pQ3EU:k4VeTgZi}}FY ki˛D7NS n[nLg]ycb~;IJ3m])ӵ!߻$9Dp9CA%T]3Ѹ׌!m$!:2¾>YLSfy恈f9W[O1{*x<ӿwU-K ߯'ij!'ϯK-,KoT$.oIWj!^{ۥ~Lm]>)t ?Yp&$FLܩ-se}@9 |AmBN8 l$?.d^fr \ : w' ~睗dp3 W>`p/w䏯WWa`'V a lǠ%orĞ6.H6z4!'[?+k[EclY>Aj^ܟCc˫An߿~S@z#)OU 7ULg9aɓ1e|#l*#FJD`}8<tce0?j޿g" 81gkW(Γ<]p#$ـ r|7- h YXchI Lb||¥Z`Xa9 gc7'䏫< L]N|k0|UT%x'5Go 8vD_Ũ߷'GY}9?KNtKFL.6P# t)jnY r\ɡ O&¸~S1nY$Cs+iڬa (MC _|զ v3=fb%re[),>ż 5eC١~/]yi[$)qH~ T@G|PcHa>@Z15X(O8̆b ^ҖlٮڲP<dijp$ =_ fEklz9TOeD"\8#A]dXroHtzp+q% '&JT JVk#%Xˇu o:G{bD+Ex .o{'3e\< -8PrI?(!r#h-tr>e5>y|H"acfd'jﵓ19k'1 e;riْBYW{Rj4zktqPN*R{SB#,V1' bg6&i4͔4i2譙 -V?d$^ ˍ@7?Suu`$vAN A5ܟl%$ {o&ٟ STU96QAKg۱xqc4H3#3StJXR=%„9gӱ8%k28B̎ۯZeʳi.'eyɈ Oe ;Eq/HTBhU6S |%% 鈍tr'=ԁ¨M k;^)0%}`-gՁ]?D3WeLk;?P H(G셖VSOvF7ych$5G&tQ2?^Ofijݜ9R7͂kq7]Dn^`VKkFWlRcG8\qQw-/֛s 5GS"RzDj Q*bh:H;t4!٢BXmafξpb7mŵO}Zha4s Nx׵ %m&?nSg?SJFvħ|ͪdTFjR,`bf&ܯ笕fc[!ouSe[ح zoxu YjeytVIg-5G6:qu+%K4|\ׂ"~\DO]I_2o{Jgm'5z gփ鋧_[޹ E;@J  |è!K\-ҤXGTQˢO{qES t%8h~PiPKq-k!``#uPMs O13ҵ.zr Fk@r2iBPJX,8l]@E9{Jҝ0؍^.< s,VN?63hx`DBYmYnh 'tȇ6W"Ȱ*Z}﬘O~UTX?ckaIdc/ ~iTjYr_!/9o]'O)?,jJA_CկP|*c*@&(TQ@TtϬcjB[h,V%I,;L8ɚDg.IͨENgdZB & /jI6iSNk\Q{GnLV%B$&Tɸ_N6`N ggn{+Ӛ&md,Ʉ 9޾fch^Xh4{^ƻe^{X{+aӀT\ of=+]Hx{m ҥ@ٗN0*VZaX Cϱ,&Eֿ`2m9|iW#ų@w!J 7Zs]甛~7gD8ǝfu<܄9xrdhQҸهLC88'ea< +Jal"F).A[!sp(01FJmVS`lo2ۜ]cxu  q-H懛mf0)Wgi"z!* xMSqAXc;N5i[8)в1gQ-~_rjs+:~rw7 KkwWaQwTaj0#\=;߂| E):Q^7<8į=O`­\dE8<5xy9~( &̩va{[ rͱ?apSI p \D*) &ۜ&_J9Y|I0(Vi/Q~h$B3ӂӰS),oa4*u?$K6t!gb\}GN1` 1ZIB(tfYsDO\>AnFsl$(*t'u^k^<9,&޸BSpq9kLV_]V%ؠ=vɟ> n9jUؠ\wn[,ó_*¼C+No4>M3Sp`+Y*d GH ; ı^e,XbU3r.$*7;QC 'n=0UQDWt1B] c`}L`bi)된a0鐠`6" Wduxc;0m]bzKiP!O?4d锠Ck` Qπy|SQVSr@==2M~"CpeJzu#"˲]-X?27E%NNj=u,w;3,\{V+㗷ژ wP4Q _:`ɿ=+8R*}})F[خhr"Ux6B;MFUq|%eLA^Q񈩷  /tۀZtv'pN[dAլþWsfGoæ Lh`)[TR)A qFFa>pv7MJ,8㛠DExڡM4'(Ol;ܶ[2xҁof<>Ȧ`3ക&gNwCzfLIm 0py,5V ʞ<)XI=ğCVJ,]^C橂 Y?Tf{`NPJ: NI0|;X}3<,0'` OjA,sd%UU[cbO N )E}C̦jw_8-yL&cWbtDT>8w Ѫ+"P5䲮kCl''Sfee5=S(z4( %6v*WL$ccEQۺJt\Io@vEr'47c#;~dmrܯ&M3E _3DmN#ۗwW9)EG-WFJMu!sa\&V2*QSB!lVK60)6W7+EŞ;[yEP=wxȜmǺGMx>~:@Bua?zBH$=JՍNoxK:^e\UT%bUfkexL1ZP|"pk G NbvQLg k5'td`8<ɓat+IbĖi Ýo!ov*w?$d>ޘ*|mjfRb EǏYYc-VcA ‚^uRаDrS1w\YDH>\^ , 5xk̕aڇ240f֝',{Y 0(r-~! uS0]6Uߥ~ Xp6ye/Si\q 0}``O( 71n鹿014TJ !/:sm yw_zgh(t!}+\#Ke]}tfA~>r/NlH u}xלS}oD T8:ľ#fBO#%*+y&`7+1SdaF]1!lkIΣy<F$(6NYa] 8<0}ܢÐ p(޸ڜcD#ɵu%pwIDcjwj_I"acDZˆYJ7l6*<KP=8ȵTʿ TRMg.37Lj{, o\79bAkyWr,a$X[zFwYܤ27ԃ?` IX΃Uʘ#k`LjhTK&;^.CDu/ ݩ~!.}A; (jE`0id9Z7]a)POB_;ʽ:_E0?(.~ g\36z$?,\HWcYfC.=И,a.h0{=K| jZ\6&2mnnj:Qipc$RW/w6-I=W޶+5 Lh3;^95ʀѫԤD m]99Ivn56lJG{Yb7ԗ;7|f B3@ oCWS&,9mU>sh;$׎{#ա] ǥ>6ڐdyi Tt)] qF2= bȯn,Ъ:i s愸E+ QN@%Eti~5}Ħ¡MPbLEcYleG^:yc<937XIR?ME;#ttHarOu&Y\GOf<6,9onri泓I U+HJ]hrIAKY]%uNZE⪽vȢ^ИeA$>.=Zyd⿍H Vf׋p{dIm^BMDʔ(stWI;h8}opvI;_?PڅkC({bbK9L|e|N1xD[I ˭'g e Ր4CFU;UT۵yxE9;煮'zqkgpi\'*3\ T_"]T52#Ӻqȇc/a,ۚSOc姅{:^"jJIh 'o`صON%׵ߗeWnGגr|, ID:2C16,%`d[un7 ,`1+e@'r"EZT!1UϸhoOg#>~iqho}i 8/u*>=d*=|WhϠ$~ouAI > SoFzyR«i+6i8#`LӁz޶sKw9 `K1*mw}HΞj]8y%+@¿J eVB%Qtu?cŽ}^MV!1`=1L]𪤵 BuIMyc933E1V wy8&?ӜTD'v1p{ i]tn?D18fYmsvf KMc yeT:GGuә)w<5? >qcbm0*Od1b{SjS\BDְB>f!eK:/;}OAVWd)/Bc+o^{5;vS~:obɱ4?ݡ"v:D$(2= J)7S 3ؿM2$_qƈbeSI9cep]7<, 1Rb(n߽@L%u2ZNF_896)=Ǔ}` aȠEf&V%ʭx#o9k%t jVVI38jB+Vv&Y o*4m `>,q'acHq q ɌH, Xנc,I\ҍw߹o!0IFhb9;T/.5r~rBYRY?{^دS q(Arv!eV(F^HqsYʋшb6ȧ<7 pR.8NWuٺO~v[ LKx@͐(OMi6/UPDI]6i# I Q:8J,iZ_< %^RM #@rf2nŎʺ`#$mYKb|'FW@/͢}%66.Q{7T{B mF~t1bOѣ4^>F̸ȟ;8PV"K!@, @ŰPh>%y4IW8OSm/5Bi%pHa{*՝V( i9v Ğ 6t/OySҪSp^ݓ豛ZPW#w8Je6ς-p]yzU*J JqEOST(.꓌tfOJg)7],s8;}\,6|`/]=ԛ eZX]sݛ=K>S;ŗ&y&NJ2qmAZUԊ}( _}kUv+M:IMCvY&ՅD{t2 // j܈+O DbkjFzQ0EDsQ KQD&P* fLYvIfoh%ShTџ굮B9QR Q=y ~7,R~gDϏ)sqʃ?ϓL6%+X,yXэ;-T& Nc:qCICł-X+J s71 JU)q~C(+Lx5qyzk}t"N#X=N+m 6tطa4R9^qFP^d N i<7[PeɦN5bVrxݚj3̶up2$ur|*mȯ6^ik +fGS˜m=m$ QCF#ⶖ h^9Yʔɠ2/b>έ2ÒM#OFr, *:Wrڐ@Rl?9^p A6vP-Uq3s7= umϧ(]X40@ˍ**ҟ"#ɐcV #7u>F76> qjxNf+'ͳs]>.aM9Ze4B/v~q },m^MCM$omJd e}42;t1z?8cժg=.+:) &N [ɤ Ť wShXW.T#]f#f;@AQy5vj.X47)=O1!I/5NkXP9߲lGl>oDi3fHuN5cG{B\0N=/PY/ʕۈ(4K{_9.d\&e9̪rC8^.zid<c@PdLyh8IA̵_C4|CkS_h@LDmgN*ڱ`vEX:-wDf؁41qhm9X=RyPV7 xw:)<\J6ij8p*zqs"eHƀ ?i9aj;xE]]14kzI24S'rރVE( ?/n\kDI=5%$$p5%V)Enu'!d @ft~)W:mie0/^Ԅ%6*ļ68prE.Y)R-RoLL?KM =Pj'|$.Udo^ .֛xfs Ы _R;6-bͶ}?|z1\+=yշɇ(Vlmfŀ!Ssmo9^F~=PkH=IT)~ʉ;͟CdKpkxhVB7C۷FG\lc~I4c?_8.x &?j/)/ Ƞ;z<$hɌI%6WB"ݧ50Xx1Cd4e}jf pe+4WH@53I-pq~dn ˚T@J=54=`r$g=ܬ)84#z;b6^@<✠Cn5:3|UE2˥Go%)Mh|i@&NUWʚ*Y& ~]'R2d-6T2᳈(iS]z$3eҗE(M'aA,4A )Btels-5, "6d`Ek3q+G _}DFQvƢj, f~*=lrkۅ㋉~﷌q uMH1WB/XxjtF TNv} ;PH{^zh9~J-_}85{FPmpoWRouծpS2&W]P%jWLP"ZIisZ( HZZ)m/F#H Ql!;yq&H\i-B,xn$~d*i 0obMl_HGI? rO6wΎl'r.jBn&" ]S2 XqvɽQpCa~qǂ\];P@o&!@Ա32eH=ԧ2,|3$2;7(eVN|~1-f?>g ifz*cfޯa0_0h;; KX :_E%u:Zt 2RSY' \DYdpmOd4H2RË{Cݾ2` W,#FϰxK"B`Mů1>kĞv }hK2;-X_iFI%#rV}s;W?ݫ #׭y8]G $##D=2 򁃏Q*c)[ۨrˆGwڰn!u%Q6?K^ 4'Ţ0;ckeD@^~k'< T/[nGl/e&v\Z&?7u޿{·ΠKȨF~ܵ9XWEƒU 'PaJQDkGL9q垤5q=.Wb2',o:OHC^PH_G<*[^졹f3/Ŕc{P>oR]'$U%vUiCdJdCO. .=nAS Z3>ؘ^/^ S +Tf䣼12 Z! Ǝ-1ܴ ӈ0W\3emTҚ{Xbc>`E$6>e'2>rV{-(w>pSij!Qa?cF nUMD"޻`'Ʒupn4zXqpO'7jH$O(Է=ߩx6EH] JQ'mzȜSaZXJW$ArIۤUo~NGYT봡=Mo^Vh $lEХr;Pw%Qr=6QV_Ϣ+^iBԏXE|ɠȌGNKR=RTD& "U:K,%yQ ɇG_".gUCGS]U6c;ʛf DGɂ_qKX zijwVAW}7Cw|<r@cVj~Q[>nA+" f[΋9&^FjBpXrITdC~AZ:Y)P+@NJfTw80BΚ^+'sS-q̢JItfvhWTF􅪟r``ǘU;Sa6wFB.ڄ3hI0}#NՏO?uz'--Gx!v3"JNe86AY¨XvFS[=xiŒxz_gt  A2|i^44eDÝ<'U50n hS;BK+H%ЕX8fJIR@P[A}Q~zXRXvM;ƴ]XqAD|G Ъ(eH!Xq&. ZJ S59 E $W2*/jWk?sxM P}k }TCݹBQmS2'7l`!)J^/T5`a4Ti2NN)ejfp Ug9vRTF7#E<(mZ!._r@VI^L9F+7t#z7' 5'>kŵO P=]]Ugu1 2GVc5 wp,?{_q/TRRJߣwx{~Rz逯XokCp~ \53uװFVBXL4_>EtKE(+!}# uq. - T*CVi 0?lkx! ڴU7+IUfĉ^Tݱ@b]aʠT*'-+aA_M7Т&>?E n&vtK@FC<휞6ejSvf߅3d,CRmhϤ R܂wWa2:\`{@ٙ>n<)V\Ì4^˳ t-' pI x'cD!cE9(RQHJ^%^%.!S [?ȸ$mL>%*@F&a쐰oc, ]cT&D $ʂDi|+:0{(&+z^=# k řlRBKYͮGrjs(7<,6?oi /ZɅZ<_a` X^q"9דޅ#Q~@faD&FأZŧWW)#PO+{Cc!;nw&ɵa> :[^Z$kZ0'KqeS4JvNXӿ5i\62/Gz1dz0῭LdݹKqkKƚyP4axLƁ>ߜtExU:?5o/6rؼu:-)Ꞓ5G~f Nwrx ] 8TUoJj3FMnE6joDݷ;afժpkHލ\SC1L>k${sw \ ]^t>W_V{hc!ڙ3^x L6yW>AIwr@`XQ{`h<xQӪkƨAӪDxVJCh5 :Y~E_Ir'>(d̂weȚ4$φ{D@vWy;6KG?MµShH.AA3ԭb,WQTҿ{9Z.TGC<7T۰ A1 9H {\l7Jیt--?ֲ AYƶ[ L+xS3tL>JzV/|ϕ$Zf?\.%PTP笫4J~1 4j@VP]`Fk_j\IņJ R2Z_1cjUG;.۹⏙ Zo;[/'nqGD%T 9\TQ#[e f ۰ m290ZPetz:Ky,. TzuJ=VG/]q%3ugEAy:1*Cb:/h8ir׺OFsjʏn`ˢhєdR9&kc. .jpXR,N:ƒ4X֮rzHN27-b1*yfp9I}6R3tZ_]43,C)KM<*r߶,Ԃi{@fF-lp&P"Rߛw8 !U~ۏٳ}X#(4uـAQ/BF dm1{@jJێ(PһU7oeYd*m'A ֨CPP$ƭ1 5NeB`Ţq($w;_`0D -e87ԯjX1,=S\_nT3u LSHYت=eseÑGLϗln(%R2͌wⅰ"l,y4q"b!dAcrH5qw#YȾ\g2p M:|xoHw>OnSfȴj¤p4kp@BQ%$9GeUؿA `#X=`%;w<ƉXI|Մ#C`]aؓZ_/}ܤ (P־nybtKƯLF!Wl;K0/4v1vQ`m64]t Hk)rQsf" |)2wZHX0Is ֝*l)v$ Ycg}@#c~450A*vX~tX|kpj,$E!prEb0dNC-W=Ls#K/K &kjp;q/ 3T-b. 3I l cl)XG*1V>{!L&FC~}ؓ@?h ֫LFi5ѫ9tAͻ窼CXɢWuj8_`mkq7g1N_!W_D?NԠaȘT;b {(D!cΆ12?Ƶh Tw)~a Q0@7X sU&& PN:l6.f{K?o,BCV"›,Q "7#4/$?Yw\a#F 9e0|g 3kƤ<-XīAqW&xH݈ho S $?i!+`-=6Ujb( T`8ah&:[ )|Y`!^Ś PKSutw3fLu}S/3. ҧDGiprJ[q/E%7&qܷ? YPaX ̱hJ{ֈ<4 lJ;|~#&m_Yg=Ko{%McX~wt {cFb] aPNҧ | 1\"/1>1vMkih $pCat`FE ]W~7!zmFޚ, !Anrvc$ x6gP\7IP4>qs`wOYcL̺|[:֊x܈zgV=jN%I=Ky6JB^2(ڽȴ5ѫ\֑Yxvd?3H3,R?袄/wm9^-qhlUMM;ޚPu9H) i[QݴUYa^_'9FBէB[zrX8/wPz/)/U9U-mG"-`bƴT !DxT 6R>u{B9r)UjQ^;ψP~_JzV!ͥއ<7ƈ|fu? P0/, Y~8(SkK2,\#Nq~ϱe_#L{20 ?͐hF*_ #lg!((tHa y,I/5Ӎ%AsI?wP  =N?xt=J*}j@AhY]J`8M?~ljz.@r%w& /F!txx#7G05RǓjZ_[\#"~(bem~`[DW e@:faqcWuѦ0QM)g s+i !''F <ﺰ&!֓& x 'jFg"nl(shtmßMR]s8v'`qj6ߗJ?ndǟ=7FG5LYo_ϩhd I>č#=o+nray˩p_1/H3}©ު55!1d`es d\tk\ ;bO̐ڵ\[:{l6? nzRE?Յavo󨻯[l+LfՖ,8$B1 ˪xZ% I(ߵtr9rXm>~\#t83N@9ZUH4qJ |]WhCx|(8V⪵abÓkZꧮϞNBF}cvF6g~.4b^z>U;d.gf%rE3E5_LkAᣞ" x!W @|Wp54G>`fIӣrȿw4XY#9oJ\cGN+3U@?S+xTW'ؿwD)S>2_K].9cl.OBO+i hħc XgIU+g"z+9K̈ hn*YkLge;b &aә˧6|кPw2ZUɃKkH7Vhz?,d&l4` D& 2?h<O/ +&_xd$\+3{)G] ÚWgx1b hqlj2$…Kt_]Asmߋd~LQ0E99%ZW#I;oQʜhEI% B џmg 2rrCkAs>y; uz5~h@ݪ>T  >oD_AO_;m|IfL$)({-2|[%ya(W]FN͐X֥ͨ[T+mpPj8PvR_ FK"oXٝ03F VQ}gcgҫ۬IO;@7iZ<|5mOH8xl9BAP\@HMDњ&NA u L.mw'i.3L>|9U#`~*f#ԋɻ;&3XÖrۼ. n~"k !6UDj$(O5rOɚӎw39w.P㮶Cx"=Rzw^]7Rp.n;fg~K"/h^?DC(=.W?Xng#Ln.w1,[BAZݟ~q:UEnr2՝a|ߘlpz<QΧ8MP /@Mwo D@vKI]\@tMP+qI3/tV$ C<>`G:Fn#@g员[pZ9xs0喚M4LUfn<?;&F2WKwZfr4ӃQ6Ygl!|պ5%yGWk텟cn"ECALi6xUvG rw̩OaoAş2 Ҩ}DjW7buYE8m'eV%}q*lUԉb[x1FЅgkY"B;T5Eu^A4ZcF٪Ӽt_Aj"NQK}go1P$K"L:z)4h.Џ. w͵;ulgەɂi-KK g0L7iDc")`҃@[Za-.RnZgjɪ:qxN7.v.4\X:+ s?9v_bnt1"&2QAfa[I[N/M+`).AuɆcTna=\R2<š^w\zaL[-ul aܵp\HI3"0yIhכYED4 s:j>{`ip=U.02ɓ1[>8&{|!U>[ҏBQHg=}xQS's%&VM g_K +W(#$O{m?q&RP8vyTRՠ s6;gT6*t;U.ovՀsҪO6'ކos] EY -B^pגamZD:'ڣ+f ꤟ?%މ}1 s8pyY_'5 VqD!)5.AJ*FǨ}C:3Z߲z˵X@5Q[ȫYԩu)rBd[R?B9 !L* wXkS#4rZTCβmKT@OBZ=ȴ+!akl+m0N/چЍ/* oA#e]Ihȯi*GNdXf_il?؉WcxZٖ"Ͻr_ Yc5.2fIƐ,j"a Rs2\Q%T+V&Zu0HDoA+ jܢlb@s;VD8R_4I k ck MH2@FXz"ޕ gDxgZPj>~?MFrrdNl-j Ww*W&uIZӮkXǎW0.R=pn\ r@ @q =K;>$.g[閰 @&5Hg-ϮM?w@%\/,15[ M>:3P B9jЮuٕt/6dskFz E?N$Eit\%w.X[lpH޽=FJerF= r*{80%~P/WV#[ kV`0 =S$ 1|'ؐwG8KY wЋ5|Ixx q&܃xC"[ɱU堚IZCD^B9y8T7lDb[&Q.Ζ9N\Gv$x_1-pZ5[p}11!=z Hcx(ӂ ?%^^%iZ>M6O ;,WG#4#!@ kE&T5YI.Úxۄ&Mn[PU|Ni$7@Q;cC,^π*0DdG̊F~+g~q*P2Pe{yU5&ҐUa)/Rש/Zke׀fߴd~/ݱ 6׭ Rȏ\^-+j\h@|KjX)U5lrj'/ 1-Y6 ًé9-eh mKhDk NCsۤ򿩋)vbe!0mqEnՆM6cRm3ks|iNuiV 29 У?pةX̷$Rwi5!FȀY k0%#V*)>%p\ K{^j}L-Tgr94k;ӊ`z+a|c Jr|Q$BO-` h9v{8Y$.{8]QʼZۄlf“ mI˵]co7 ?W$ـBOm?V,ߣt=A>#WQ59Jc1dUx)mU96lQDB[އsBF^ y7/&|d?@03eg:{3V,\+X18Ǟ-<% яFxvT")_kt;bWnXХCIiݞiw9';ZUsNRߴئ۞ew!Mvk&~g5κxJǨWܹm^a mnI#FQGOfĘ vX=NfĤjd)UFniAQ<&r - uIW3%a@U{ܟwo3%m"Y;P=?;4leR4{ϔdrUJ^獐9p7Uָ68OTf.,xgqmH/"HDSFt9ucF{kR#LvS\ m_6*1J[ے҇0.I,ZQj,:s{}Ϟ{p迦[~"KRի&t"6°n j. ,S? ySߛ6 rՓfD3E9t!{8 p@JJ||>"٥e#xXrzYG@TR.BJ\haљ$aET_D9|lu@Vȓžsj?ѩvǺ_ SeSB7Iz|9]`&Cysr"Ce^Fa53~'@t &6{'fHXs0G7]fբ+hc1 50Kt;ׅr뻂TܑHvv$V@SDoz:GmA.0z3bfz!ר*_pJ1͏ g5r [Dفڵ8o|^$(6If/bd5Zű\qv5̎Ƽ戧r+J5muqkª4DN ɋ͇[}N:RԈ8VEގĒ'J؃Z W :V6%-J/=Z _gCְ~e|V>jwE!@aa kN$bп JO(v"}2Z 8ט!~aVH&fQU!)g!|~7u@`1+;(/>n똞LAj+ReIXzyX)2qO! J$SomuUCYߊ-rU!c?˼~Me ^ku[d'~cO{.9-5C'ev >G$%<ayW\(kCt- p/4 ЎV˖} oJEUYJr"yd~mBM}pxпiwE6  5 p3G44CoKV&U>)u0gtv;8? D⠧>_(z ɯ›{WtƗqr3ccc%Ԩ. Q`7ɐ2nxhf]f,LIUֈqm0G1Pш+IKhg9@GU4|9mb߃5ecIa?:"G+LTYw {[8=<w\N/j٭?,hmpWs%)bTXA9' UXM(*ŠA+h)?bר{݁F*"{&F\~|R" +02o [g,(fH';|Xh| Q ]{lBL%{^u@IQp؞䭖?&'&͇߯V5S%3[3SDAjS7i|kV<j&-$F=7pO)vn(gn7MxQpa~shΤTuss3d^g^}DYn.u iq;gƏDhnC(M-H*icOE^|ִƔJQ< Dn%rl6P^-{yìEmm3vo@Za<6u1fw֝F&5Gs|F:(x*w>h, ,CrwN&l1jFm{7vX84fm 2l99[$58@[G_%֜ R^5*E{qmؖ62‚ ި "v=~!k80 zNRkL)5kC` $Vfp$Xz1PuS.\"83_#ƆhT4M0y?KxF獂]V<^֊D)Wo-LZ8+Bnrou,ĢBr2s(!ˍmh.ђdjfY6X!#J"0Ee>$#"oes1g#1 _d"@k8‹ܼ򧼫ÅxmJ=֞tBIViLp/dgH|O'%Nl""C L\˟8)k9)LߋbU.jcA1&>$"SW [@ȅqER`.G;XI dX?A0 -9Y0Y3+rM׋TVWAtGg wnUKcRݦݣa31 #G 6*-D&0͡J/qlp,ĚZϷgR# SV8ýSܤfо 咤WYzLy]jC .;&J#3wP31_ndYy'u)ߒK7? ; !iUPFUMӖ{!2DFg`y }AA}ɁY=a?c/bGXreJfW5?٢qlkRaXd5擔[( "Y,YxܓɛQ6{C9~gY`WV3b锌W.\^DN"hIaQ/j1Mpsb@-$+oEPהɲ4ׂ[$FK"adQ&NL$K\{9Cg&]JH6W#Q%"DőK"ذgil_zl٬qZN%^7^czD]!wQ{~w4'ZswDn TT`!IrD5M'BΆ/؛:*Q5ު…,!ZJ %; 1)]v$$?xbVWP~% CϬz]LReyl}ށl;?  Bd/ڇvI .Eu曡f_ڴ@tػBtp!*:OgJ_Pgݣ1vhbb2c"lZ"04N@݂#g@C?J>aHLˠOή^u͈'R Mmsl5:oZ}7 (m..5+R+);WR.Q9A86ٟ_Fz~cP}Q#ϸןuB(d̃ϱ17\g^) '4Ηֆ"[ li}1ۋ%T 3F_>͵[qn-pvKPPkʃ$gJ.m bv!}W?˔.{N"~ ,>-XP~P3WodmͤPN9dV GI~/;S׍ t4Nؠ,5NYzb#f\@Ď1Ş"1R*14̢7> Zs$N4lC5 kפ@58^)1v=]<:S5g%`tzȾ f4_B+KGG("n0W\ vrzܞbxay(OsL;L=aCCa$LN/]# a=1B*uOXl8\}Q}![Gg 98"6o]I D#л wⰋ),IIf6p xi],WiZЖImTQQQ#:Z. XnI`d-!&鯨]\>2'@vlv;ZmJ E+m62y"X@XW{L+ Q)OT+C&3vn$1&+dxI'! K7a gՇG ^W @v z,H9+NJ6Yp|e@&j&84˹ ],eÙ&UbDVGAɔP95`k#eH{7KPBBbϾ@s;p2goK IIW "ڋiA1?~e5AydJkQ@x*Ε==j }]$/!`IKB v;!kȂ昍{pgXB K)Չ($;ȨCs!JdH8jp9@-<Y{<M@w lj8\|`ñpyt Qq#1]QNտC^Pj8:`p F# qwʽ'iSE*d1olsaO:=V, T D|7mcp>fK;{4V(;[ä I;K7&v6n3- L 9`L){\XrW`QU=b<_iɒ9xEL6yVtMlbWW! }ޙ"{83 =r'.Fiyuk3<+f9.(zI")iUUׂ@r5-xah<-)&"zE/RY{n+9]o7 OR:suzl4 )Hc-:#n+M ^Tg̷S9̯O#Pg\?4P0BgOH*u;-(pwJNi]]C^ v.8" e*p!0V<,UƜH-t`Ju%$~+p _謰R-WPqv =i@HcFn,yAq2tOJ aH|RVݢs=CG=8|6xdIBKx4aU ࡄ#ku0;pJ_RyGNCښ%>o5[ݪ6274n4*jȺK40~:,`ojtAjK𹡭n%3>T~98F#)`-8H~R4y |dʃan3%I@&-s]2}66`Km|jjb>3P 6}p#IBբvc>RQ "K {ub+7S$ 7GwJ{g}̑Y֞n .UdRytk/k5(ay%o0;)O͹$٨~Ԟa8Soy!jK"nq<)υJD ?ze"9R;! )ǽG8"i];qht N*OO9L,]zSZDiZ!, ZFPԖYC_.: @aaeR ֹteTп6E qŻ+sJ#ZĠZ9%~ [&o*݈A MaH<߳ CuH|KQha4ȭ^aK)Ǯ9dy6f[t5}rwTsP"!0S ԓU%;fMJSN!Af*YY1y$GT*JWi?|WL"v- U]Ï3wVÖmw_,rx~4װ@55uͶ/?ˬ\"Ad*"lbऎ"ԬΙcE)mIQSaeE9"&cr%$KdLi^@ `d Wd+84}ʱՔ)^xNНR ;j ŰuAY{\Сr kUܟzKٳp0D|Xn(lz.[6MobCk2ҪPrdvR_O#w =[ޱ\Ӈh5{(Pr?"O*B/ϗ0B,%ft"Fv|GpgA.{%IqOO!5zaBEkb%Scq&$ey? 84wV<}˛F I52y1cΏHW'BWY6,-.GYظ5:&g}=S1HJ/Tu)롑djJKAn>‘d?Q.(m(>OJ_JE"KX V(c\iI[Ca[tuk[3d&!7ԢP%\ԉa9"FY+*nF 8S%?RJ:cB1V #:F ϕD]5]Cqit?8(6)'ԲS囻&%IvX깝" 4QI&2(IL'6A~x5{'rEh _dtxσ?ȇ⁊揋tw63 >:r+L )@}O FSnRZ0/%ac+;BXHхSp-D+/޺}[5t]_ L9gRt-C*žQk'Ѭ`W n=6ݯxWV]WY&PIvӅ Ƌ`QvNFLld=*W9m-_6zeZ5KKУ ۦ=ʑ*TcϬaҧ9u~+W 9=WjZ}^hgQR*_"@'5=$z^2$ixU=1@! uL'Ч?/ /5FNvI1|i?s#ߪ%Hd\lǶsOrYO %t3 ؈.oia+d!L6CMS%15QT! #,;;8}1O}tQO9h5/6b 2T,:?5~+i.S*F-y_ݘdIC/kcn͠~eM_V`Ki& 5U'xz ) ]]Myb:s}吱TY*`WP&5m_.PGZ- ܴAdl=m#sTmw7DyLlb +V h f՜C[y"EpbZ>*`sXk|9"JRb%iH˿vQR\MkZ)>ſUVPlo |#Vp5,C:Ѡ%/5KSSe]vLlCaXS3nmǤW‰L؂;t:PWqs͘N/i~G]S{bo)|_<˰Rhmy4K}++)z7㯫SԆzHN}TnʪR}D2<` .N'{*5)̏cM]d)w6n͡l{D~m] YD"[27HXI׈D.rӎ282޴Vy&, >8'rـ8U=MژO秙^#X⬑8/F}EjnZCc1L!jdiA|tu.LH,9Uɍn,g4ݠW3 zvBI} 1v1. U?&֒Z|'p'|꟏W?3;:hwq Nxj`-"6Y^h(\^ g94$lI{Z̓l"5lvIWPXYpmdYNv :ٌO+k:FJ,mj\oyl v-6zF|O%>COp1\4ֶY)T&l"xSB3a;?/Em:iҞ,Ƒ qy Ƥ 5XQYYEʍR*瘔a#m@d؏]R>,-eVa0ґZ.so2vo1es&+l#/m9rrߐWݶ!jFʩ9ܷr.b_%qp.k7uvR=6x6}JA1Պ֕0EfU-rf9ت_WW-u:SBczbϊ}JETNma d T(zK9,&胷T*D3Ȍ="&J!T[Hu2M"K2*O6 FĘ %%Z͋uK 2 @.E+"Gv]S|2X\CAү9Sޜø-n }&g6urgQER~Մ!Y--'f\w1roǯAO2gsHxԑ=:#7Y=$?2kVQrVuƤ|<SiGݴ֨g2rN9qQV wbC#-i&?׺S{QH,_іtpG<]mnW䃼]lY/U~NSyH = :i.2d6EzT?/'{QH7L_ev,٠F_)GVW,}5&Ti .hT0USs 4`~yYSU3#&9:HCN'A0X 2+͈b'/%\y"F /bp}c>aFQΪ]Uo2(dXsLگ<OkBX9[@nMZeQ! /|KN:`Cڞ0/cNUW0 g iD͆_1_Ke >8}IGʆߕkWUI [pf>wI"2u1ÿ[YǢZƒت ʁ`NK仂bR$:PYͩW:/kN#mvM>yު _1(~ylHm!Q5VJaAk@ 2'@"+N ~i\L=w.S1jKoB~+L0 Z--"y7>4xS|e:\f(5K =d2ϫ2!{j,fWC6.g2ݿ:̢fHXD pw{"0ErpjC&6ٱe0}MUEΔLS-ϽL׉=eBjǓ*{f<0BJR۴Gtf+=8R~9_Acmݠ rBm &7j^P[Pw2(G+mɕuX^7'<2R`F{5ȱ.GLf^ ԅGল?}_1]car?ʺ:`b?p)lyrL@6xJ2;(is6˫lH7|{r7%Bq`6䥼,|jztSo1"x V[& )I2qB):,F"TNdyz;,DݙWaK]$Z&JuSZo.ykW !`AMηOuZm^\;JoݻɰE!ni@]Rgu˚Q0{[W ؏G Rs>R26߿(nHc6 *IPA$nk"j!ri/V/id-'6(Ԣŗ$/ZjՆPCB. SL7Jp'2 ֥| N#Kz<-m'`USпI@!.wljms*ů5M_i"=(Lil' *{,|:NuHn21o-bYD7$̕X_=8Ip3mݿ/B(\o7ȫ^.y%-Rͅ`ūV o+E,%L{2˹lhχ+P ݉uT*@zEǕmʼ4䣵GsU{m+^NN&\qi;sÓAlJcg.oguL[:.;s5oqGbVp2,<|6O Ѯ> ݀_m,7:nW>:W@KEn0*!)J$ RF^|ȌsGzO~5Vw샷za6ZF. u43w_OvIxiژv0M'Q;r$'I ?س&JNQ )hMw -W.( 6mUhƂLd$F翴5br&M݉N0id_S}ҥ(C_mr?wL~*%GNpLiCu5<-35\#Y/h J[KRѿK93W9Us>9/NL^K64oܹE ^C) ֮0A`dRnay\DV26Ze4T[|/Z`$cnppzrL{5^>>9ڒ[jJËA%fO8#U~kFIDSoFfJh*~v4cXf1T[UQ R4b- ;7`DG"ۦZԧ#hY/uAn1,0Ԡѓ7*.m~ž:HIT(WQXiOm5iYPnWﻳ.pw*ԸS(*)SZ8woGX8[`IHoP˒&f{SyZ,jVVr,Z=n`-A8=ƷPwyh^B~BÂѯ"P^= &~ !+mklS4΍ TYa=FUv"CXNm♎Y.(ڃ);uTSZQeu ܼdE_[̾ШU36 i 1xI~@ny>Zi% Wcž%܂A=5-9 l!dhQ\í#lpSQ$Jx.d5M%t#oOdF .ؔ7i'?gM ޔ9ҏk9J喀z=օbuIUtk]T؎~bȈqT ]馧dCqH-tG4)7ܥ>eF2M#i+]uI`{LNnj;ymHJIfHX丵gaeOy,odÏq2 P7Tj"ː28DWݿj MO=y%kygZ$@ϼ̍RJ#7]ɓpӽK&BE2AL% %wݍ M 2i'JTT9->.EtY:\/Y$Dx0Kȿ"[N94WU9peX&Ղ/ ~DCRt첒Wt0Yi)e)PXN /}}K3yvyYva'Ɓ|o9W4Pvȕ,pohFF %z!\ c<*a)';A#ܚ o7\D,oE%ҁ vmrǧQs4򍇓*`;L{@=(Qm[Hy󅡿ZՄ~praʜ7率z.fXDnPi~ L})!A,t@_a*\ӒZt7( P%331W_}7yohx"صG'R93qU:mq#*/Gg81*HHCJܔ~Lu2;YL8KI"A:{U'( !$GS]7k$zŮxj k"n19G:u—3${gl}ۮ v }|ht J}*2Z 7uD;1}e3}Dڽ!b􅞛 :."/7902/`_oCG#7 /DQˆisK5gaZ'ZIV/OEH,&# x"g{IL^ P$9&ZNwwc0ei"al>4xbҢU4X8WVicN7>~]JήQ\2 ׉Uo:5SlzB=1vT@WOD?ă RP]hnm,xk#(igup9cE&g&PrY;דSN5Ta0'"fj\E&.ZJ#VCl诉KY_ "hMq^t>" (B,`C:9.Znu"2_'} fN/ɳyv\xE׫qO9ÿz {@\<](׷pWWheFIt3&/۟Cw^PƋvCMAW)YiB;PӸ,brGa5Z1ǾF!%*{z-mR AC2SK+VJpY@F,鴇&>Zs)/7pRZ/ gM}7KSow+[w_ &.! tKh <3)ԗ$1!PyDg {J~oT4w*/Peس|[E_.!j6:s}Fxy5gbv!Z??G.2x W-sfŽWW[Hh63&pɝ*y?ob 1&޴uEBzrAamFODEhORnqeW۲R/ ?(T`UY 0 }{;E~S!eR>WHxYV ?=h+ Jro q S?{UMr@]uL ~W6V&"(rQrZL"]^ybO 5ф;)̾DVK`"\b <Qp۷|E)cmekqXڀs|PD" Lإ7π{BPKb Л,-!/$ڿ@yO~ WP&GOx?wg€gp Ζ խeO8Jk.);]#O JcMxףjD\%5nu֨hݛΥ:Hpo ܦûz]_Dq\tC /!֧pKl:9)Lwخ:y3bcѲ%,-њmUGN#^'y ]fM7Umw 5Rxls")0hMٻUW| `GL3nAe*Kr1jK>H4f}kxa*?Hfyڐ> C|R^&͘*%{B%@T9{p遲k"^|};h=na^K^>F/&s !8 Į?;h}&fЬ"# Ӵțzc?$&BSѕLNF+EK({%Lޝ7u v;0Ix| ЁqG18p7?|%ޜ1^CO>I,'^swÝ~0$Ɩj7b+.f;'D,'ϲ綪kCHS]wR`2N܏vlU\hǜIbkeY žƐùL`! }&S  8dt3ӧA6lt0#Psoo} a}2,q= S >4ߓ-K"dBQ]<_[ÙsR˿8. Ty%%Ph3b}gZsўOxԡRnU/3HK9m1. cD@kϸtlN.}(/f-i1Z_>4:òW͍;ȰN_+kܑhdjָd!f+ljWtؤ4wWg,z%db(fdX|NK5MPpoe&zFRYW ]B.۾kZwRKeot 0Э1ly7QB5Ɵ408gUUCLFTl?2~73YS fʰ @Br*#)M!iOiǝkn_B6f8\Z%Bf} GF!?rWF V}˩Qt8(/i/Z(bF$8-zDEMNˍgԲY?[N#Λo O/rN;ڥP)OY'n+ ;D nh'o'Bd ,Zݮh-I|fc-My2.ڻsE'&$p P;8R Fw X=VV)l[[*JXR%OX 20%yjj*ey ƚv~cЕ}\]ŻJC'r!㰜6 4M"*CԮ vy槜F0fNFPRCz^r?5i7JyAt=iLvba{9|Wakn u﷑)jr"ީ6@IDg~;@-]1 1,Ml27`HZ $*DRZl~`2 ^;qk}l,?5 &0\LxB~ Lgv<+c3&DEyO֤P!9 p|SM#rlF<=8Ml8]7>˜ R=R^i\_"EQ*LnVX@lib1~qWh远% ޴A}@Ѡ*1oHNVpQtcۗdhb@9t҅-w]H}DXqό?aB:h%DHM#n$ I ;di Ę[NP^=@bnlhOfTzA?mEORd'[R _j!R\JCo,Z ïΙ7̴>w>'CT}lC( ڋ? :`mxD`mb@Dg/J1EE9\8VHTҀB]"sRF`a<^5#B>:  z<08N^ AJ ALz< $P֐^'!QǐwlN|I{4J>O׀YGpM}Q>_:]Q=f̾4] ;2_T@VumUqx]e7l- qd-8>uW6/drO`ߔ@W5$+Є ;Rv]gUx6(aSAe'#1OaܶI ׯm~N+>;^F6$wn[826^ō,ie2|G;e>V;ZGHAݐ_ckUcogU^y65SQQrVmVa3.U5V'cfP5ḣYw4]e&z [p3:rd]zX'ӧ@\a⋦{|oh@(5[1^)־*>3ԝ\eR! lp_8i`N~]h'q.qΖj\mAm/5eT' S¢76.w);8^m@ 1Nz*}}%dJޚd\`Uh}ZS[%ղM n@TYEX1! "k>VҤdht]4Pz.|C-()&m`neg&qvη E S@\hE9Wd3'P<O>h]ǀ3GA>owtzd!cY'׼`Lt2cA!CÃJecoz6M'b*f}j< ȣG)p~-o߁w+,OAg滈@^$YxeB pԭqwvKA#6 hv L z>yQAR.XtxLQ OЪKJpϙ;M,du䀢=6)*CoѯEQ1(?)&TNPz PաD9șKj2):૛*y$պFc**(S-YutkI{yFU3WjqB;L%xT~Riim`"-V}Ǒƚ6}Vr u`[5۝Qd+przIQdk}Vf.$M=+e+g鱑.u$ d$ y MJa|ì{Y$hú~ztcˁC!^n}ߐ\jSyxy躏 h-I{Ѷ϶GIgZAd{ M/{)eM%qEӾ!/A>BɌM rgѫ*ƀ^"3jY0ne\Qsnb 8~꫔5nH+¢0ĥ|neŵYxM8X3xd~WLf$ҙ4N Xݑ&V!5מ+P~Ԣ>!SJd lJZYGrYzB; l2d[xh*:؀dgsj&8ñ΄VZ^~#RS@B 4xhr 22?ַ{/ܾ4I@Q=[!Q#r_gLTĢDQ:˖#3w3`y]ie;C`W 5F L 2MU,\Y~z%XH %4 H6b>w)dwj X_ J(i|i f QhzDZ^&q]Ռ&U9~E(XؽZ;(P`ג hs %IKPaOou5CMrwQy@ O!{ Y "<-PUrN3k;2A ӗ@5MFa~'`Ro.rުDXIONVz"M3~ #nD7GTVk 3Z.q@µnJ``$p:VIͿfW 5hG] J@pal_dօZFHH+BU _Ĝ+ | u[o'ьW( ⽟_R I@^TZQ@(uz>-p΅U*Tzf}!h3<괥,A?cR qSQɫ?,[Z/痽K_=/y?S$ %˃L?l'W2x7x3]ÌnGmzKz%Sܧ1Sr'"V0l=[4Stͤ?¦TWautT;Sڿ:cŽցۧ/{:(zK#CPeI^6b=y*sǣœ}505Bz(gjctw+59Fܫ&=]<G})@rޖy 7b-W6st5`R$&jXHGhnߕė|1m:Y:)HW Hau=v t체ӡPW|L (noBzy*k§ A=˓ RSnj}CƱsB dבjI0XAJDrZǻjg~f*x(bo/1 5*\klnQjHlI"4x},J 249h ۺ&pN>l\XO"ϪՂ{PhhH5n |GÌ@P&4Ze~ r>2-fL+)wr0_O!?jS jYM&u=L'c7bwq&n-$o#\\r7aEK ^BE)S󐇲CGEw8 ݆Az8gLs]@Fv \59QGJƬeoL_!hObe #-¦%rخ>5lvD8Meb _C {P[G#PϷ3qEI( "N|Zdb4Ww_qb`ǚqݵݔ' 43>9`.6$%0S0fK!ڰ)v\3O$i0xEufr0q.tkA"ګ}?H]rA}ż֗C&(<9po1M溰7V D\O?dWɵT+ {k7lǷ#B.C^{ upTgъ${]%%f-iҵܴ?I,o.6e63?aZ q_LV_ӗmx&F*tN%!'&R\>Pbȵ)ۨ';  %1 cZ2w~XXov)KnΖU_|fYWN[LGM|Y #^dʶ+$z% μ+2VSt\(iOj>$ R$[ H vap{lx uMYrpK޲:MrC. 5*J4IFgh\!CF%{d6*cY ByjWKEѮ= N1tkY|YvfRgm|/5_īOA3¥Yf pV}>gׄSPS Ag:?ۀoSӬSأԑّX۵o;U. P6#!8;)L}7 v%ʒo@ IKǃ@\=rXD]wfy '~j"Sq s-p[?۽_KYoޘ {,Ogv縧()12'7#Jdn-tt#$Ѽ l#Q0=< l7znP2C݇l'_ECQNpPVTy{!:ªb8ۛtjfܥTy7nVisJ88AG'Wt`flA藺nZIOe@tZ[WBuVpFr k#ڪʸXMKw};1kViND-?嘐4Q3QQ3(MքESyfp~'׏zhpKV1-/YlEsRMRl@P mtcsp=Ux =Uk|5iS_2i`QvBaC) gm>2uH }lAOxV/aG_uY=lK&(D' GVc@yPg{XBKp:,3V*UJ&`l%TPǭ4w+yMXx=m}QTSힾ [zTt2>>lҁ@vԍ} NsЦ[2[AF+:3@EdśZ+D꽋N6"Wa{ KhigEz&ɩl<ۼ 6EIyaPJ4* qs'ql)RL_r 0EƬ8:ON}ޤLO|w+l@y1NcyđƈdN=6JPv'K0R[ GB N;ufA7,.?{Z62=yBT.ܜ&ZMʁݤ~޼oc'-HX # t&,\C"tjW[5^$8F6JM~7sWAY+٦-jKA ""5bCN;VXu H?SqqBɑ+" "k^fHBc ‹i] [Q22@jW+G0Z\[ ;'cxrȻffSЖ@ǡM"U(+};C;8%!k^gJ S9و*DeD=1Գ_y"7(~zp M$#'[v6iW`4;MO AUU~;glѐ.$ӈ^579࿿OX=1֨58SʱY;0$(j*y\*N /Ì@cw[CgY5[VzM;'E "cڐBo/--ـ`uǩ8g#"g9n24}7-+A#:LW@'V xA(ҬLTR<1Kp,+6>#Rqw ؞U&G]=HG6g1=g2 nF!i!*ĩ6Ǥ*dK߅U?LzzٵЗ& SIӂ0)~9t{$iNGƇ'pYgJ[O7㘲ZpAU'<:)(@r-!=X?f TuO v'2eo+>L WѨ3I@0_ŗナ~ϝik`&٥d~G2rRrKQ+ڷ* LwݧB9^O]:wytǠwKuB[7ĥ`2b pC!RnCB_P>Uă:q/1__ٯr56 Id{C8=$9fƳNh=č}1kH1#[fz5vDrλ 1BR\Uڵ"pb .v"DCĄ/ᓃxD Vmfo}[D~R;CҚ <VNQ>U\oCJ>b$s;Id,NA,JoVVC'ZUDfclCz@%, (W&޶%ԝA'PUFjI; ԯ>R-vH`rg?T?mB+ }dz: IМ4`1e{ߙP+*T#]>p{[I _rM:qN|n"2WoP b),O{Zywv޹q2=YԸ R?n`J|\>}WZa]Z73ά[):wKO*̸[[j)j>;"Bv(^lirc63h ZP?s8m϶Ђ:E:ВˤjsBndy?ol%WխxS0~DUy䇳-q=j NS.^]K}C|͹>)^4*T d1dG8={dH((N]xƐf*FLјInLNTJ>݊dtb[9?iu怬H.x{1mPKGlb_<9eLAC/O {1£&<٦TaA8y oPNvtK &'ҧ,pԈ2@lK\ܡxQ. er63B1j?#gi9%3[}oU3c5Kas\]@#/;}5A*1QD֡sONZ hƎ:B&!_e&R'-COJҰДp&VR6Mmw|ФΘCF. tUiPy=CgrE}+eh1>-}`6੪-as--&vSp+X Ҕ#S׹}& 豽fhhJ$$%L26eos;=qi҉gop.2% SܦAnlsoğ *Y "MDsb C>#r :[HdӋۥv] oLVVH@:. KCt]s731MK+k9"%"_` Qp,qo`b J֮96e4~&>;X}y  ?n A` w֚鰽k@ W?׺3L $]+bKlu xF} FgKFgl ΋@p'_J LbZHsXZ㜑 [F )kxെaRiO}0A2K&L_eOKFmULK,"7(N2Jb4{H/_'I3Eᓤ^="u~!cl~?v?$v=&ɂI?HV [? t^K`mY#_ oF* xK^G wl)8Wz=-z21->k1'jOiP gZ ]qC6Y\;޿O؋6tL~i(A*V.~)V/_w\dD8Ef,X!³$鍒$Gby{UFz٩rHXf) '[tj"SU7 am0<$PIe:@ S]tx2W}†-=5\lX21"}|܈}|GANB~X3^_FUDxJ)PxiFY4ubLU6 +y-cV8;=bĴP%cG5.~2wZdIׅ1u0 kyFY11hźU2yIn*Kx>7HUB_05},JO!^0=.њy@UTt,@2kX(h(+'܇[kN`C_~d[CōmpRٓ~P,SUGfmp[ÿ' NFmoh3F# a`ǯ1CT1Y߁h2ΩTqX'ځtpt.*h(Bg4F#C;cѓCh 5)9o3}KOLD#_C.Avkաv-IP$f{D(&#!~33`n/} Lf 20(\w4)Iw5Khd52de@)E_B>ݝOE a}eӍk 4vBW 9.@tCIE_'@%kaBnѳavogΥC{&Tȃ CN3t{TGg,S}bť3@oY9w4؎8.{os|\/dTF'zGb| ~@GKYNW]0 V"m}b8a"f*ͤOɺuW űx|9Q1?Ak| {vcDy}5^n&GMU}"%vjB7Z!K=" /'vO'=FnƑ 4+'C,g iSFYnS#h!wל2BU'˖h1D cWXڿ6Z/+'Yʔ0 [Q)F}).CYDxpVEnB 'W^#鳔Wzn eG,*j:WPS25XC[ˊ{w:7 ]\ɉ>,EYT{ <R}ɓlZwuŋ'e uYP z9VfËe-shRJ漐Cod01 ½ H>gE,P,cV7W=UeDPKTjDPb5QJ$vD뉈"f1ӿ8pg֟aYg e=U<[dOTsTF[hnI,v @h{ hT/L4]j/M(J9WdPRAo CK6 qcR&S~b luCboF%)桇S`Ըtow5=y7rѫ2&X ø 8ri(+H=Z;H-MՐ8e(J-Y Z[Sp{ a\FG,D'JW4p/e'Hͅ}k?Hs&@Y7J: ~wwZHjj rBpn5Izro'ZBJբU¦$dkiLg}W߯]xt|yѝU Gsvsj`W4ܐ6d  5"Xz{Ԅ~']J\eF2#4Zc=@zcN{@R`дV6!%#Y_ᇘmj 7B%mPHoh~Z\`\|SrFHH4&0 q/%<\CxC.$ؒj澝LRWC?~9q.HN)D]Θ|:/@QzH m'p4A\e|rWOW~'j%,Z? }v֣K^-6(wHYyZ$|Β.K+@\;4axFneV?hɘϻY @5b@AI0J++YTFt"Qdk() 젭Hnh.Z[{}2ȎF`lmUE%4{ޞ7Mc{. ]TɳznB} HTTK fj#, FRKP5&+|p׷VZ% XNN@QOJ;h){04 u?W&fL'|y"Xk2Wy2"'"e14Fc6"q pDˈ/LD<:m iӓ4)w-$9DXj{!ɢrLՑЅ6RQa61#)Qxs c%.):);} ya/-IJ|p?QL(#!NXr{O=Sq^Lqg8)&N,ݫX]>ᶙNoshb<~=eeh|s} [# x9_ki(7Gd=7y*)ȧ0a~VEUZV 4`V늞ck]b0nҥ_!ҷ1}$bx讉mT-y4Y?(C+muһqs>NLdqP-fWVOAi#s5]q3@z+ҕaClLgpjh+ ֔Xg/d>ϫ42wr[.SdIs]d6 `үjm契[ Q3ܷ9ijG$#-;ݬvIǎgJSw=nNS˧EHE=-=1[7 l@#JΎu.lmGfՉ{N2w*NAF92GGz|[TD;!Q4F3X~޽1qu7Vnw~[Yפ0ѨSd~ќaםBEG a-`xwP.y&(u V/IE=ԍL`Gl% ٬-.Jp*uHЯy';xy&;0rd>;r!IX~(ڲ[-]?V .A^ԁ4꠺RU -#(YomI_X9\zzm1 !7.r oŘHGLԚ G݇ꥨ1ΠwHB[D}χu^dB5뚵i+v`&/d(sKB!l!7NVX^d􍜦7w|SYccջ]8SqRȝ>\׆/VÔ;81LzYIAģGʮ [wnp}XL.] )>Lʃ|ċi Kغ7==;uv:nwtruS7A}pm{.#.*X⤋.\iSY*ǷS&;̬;_XY 8sX~52yzbf7Zq UTXRWĩKHÜw*w5j;1֓\Kef'sI`VP-8R>HeЫv \ELӂL͇>sM(% :Y2fſ%GsFfΏgWGOwUdTjPxӳWm#u2]Yv lr>Җk2}7 m,4PG P¼57n~=)Tyi9491Rhӣtd}'L|22ixU5 QS IěEفzW@:Iۗ{&Gg2R6@ d 3WT_FT5*XqWTּ0jݢKuAyS]ʴƱ[ 25*xdD#A25s'U\Ml::->x>C%D$أ[!`%=b#ۛ#Ŕ ^9%2s17Ոl@?硤)ܧ-`;+[ ^Tz,E08ʳov_S9"GT{A̞ӛ?!d2VĔc~ב2نP8h[ZpC$3,5κ[qU0&&]sX~@ڣ䑱#Mdsǚjzk뚼uIU6^R‹*j b4GWZBCߤ5̲B0I ܐӤ!vص@lK$~*B L.?_m*s"L?gJ*~λh+/%P1ܯ;|/fTu&R~#*k+pGg*Dذ{}yP _RmKM9 O=ԯHCW&45 ?$) >2!ڜ5xᐩ^M}))_Rb-G =BFrXY Ϛ?AU7Mһxa4>ED:} vF (Hw; .j^wA~O+-<[AEy!B%;u%4y<ˑ2ZF*eF6hyO^Kuۃ:.pR\[+':M? +#JLm(#hW| zrZl] 3yQ-/W_.$ NGLldstOS`H![]| !Pl*7>%@S'tδM]H%ް:q-5ek1Q# ՌaL伇Ir`r'xADsg"$(_% JjkJ64n%grGz4~%%W2890ܿ pޗn\_@ ;v`wq(:ɕ)\g~SE*bUO #em[}[yZQ!ڰ fI]|3B*?_ㄡb=6X%y/&H4E8Ĺ(,)ũ ?cɘ|hEǃ% N* +nMN_lXx.CxVվ̳| jy[=XF.кn cUb98 t[ |$iA.i#r*@DŽPB!6nHɟ}xKE՝ItAFm؍ES9I-ϼmM=KrEWDM6O^`Vh$+ZY8NU.Ư#R &}RЧ VıeP 1p.ƨEM&U@4\m:6a @c0"DJg#ws)BhfB˦PP׌x@D j[*5 ktArc3NZnK],0|i_XFziPzJ/?'tl5FQЋTvRɨwdj,s˘Nz|=4+q٣3yN@y~}81"[Jpx$zFa1tz:ȃ5z)! BM1K[:!KZ*gmVU?bpl3ԥX".qRMK(iL{_(A$CGN0os ӂ85[DžhXD{[%=?RI8[\JpܐX!`uv;ZH5 qttW]]qM3;byG ΁^ `ݣvYryl;8DCt.K0jB]jCEpOdҁB K,1ޱzMwPK^YV>ۺ><%h%)d7;m&"_ $'ϟG~'M*F|y)N&Y@ْX9Om"}6lC@P5wDfmT69#xmG6ӚGRx-^>r!@p[qb6UaC/)ȩ@\ol 2wh$(o#®h@_WIǮ2>v|g]goE$>u㍽w7M=EIdƊue%76+䷝Is_ƾP%lQ:L!a! ڣq=u/MD ЌWzbB]|XeroΝpץ.8CY춂[~ny4:ڻ-+0r6 &A ͨ…Q Ԉ.l3JU;GdN gķր=w@k^ 7zqEY ;SʛWsN-ᛮX cS|a$X.荂jHcn#lﯿ`e%vv\^#U&6mx+!-=8/M@fqcIf{H,FTeN6sÄQ%֫vtifdѱ#mRvPR2bذl.Ƹ\$}A~~j|3l Ww*RYM_j QRC=P ",qksP:Dr2H]~dǠ<$brG iGj 5L^?M`qN},`S.qXN=}2#ڢ)c ^zfII1:uFD"-1>d?*m`S;}sXk18\ȺFM)\2&,Pev|dRA˛ӆC1H=)\=Rae1Ar<$q-v1J>{=wbt۽_EQ.Fkz0z6鍏5:An!~Jև(Sښq\'AOlX.g_&7fc)ЍuK^>c{.HLOfSީm2 G)9`3K N$;;R ~AeJ26AmRr>nzi-i0*jLJ#.8!{gu-:<29WDqc0jT׻g})|aDa*h-࿯培隇}9oo_|Ld҉4u*A%@9ƈ3 ߄<'N{$rsE_cQẈ]l<%_aɞfX&S/w4tJ)c2~~W4h .@AN7{#KMjG)[ы_PfT ˡPKU?D8G>1S{^q1Yո+r;%JRM_%yͮb6|+t3 u`=򀈩5lZ 0\WBF!@KRg/ldWjP@<&DlLLϻX %-֦\BZ,{pa#YrǗF5p-Պ$[f@{4Zn#HrsyꗦY?nG.( vWp r$ d (sT#\ P#l/ ^ %{|zƧL"Ljy!9@ҞL]>dj]=soznۯJbq;Qf \`}-k&+u>Ϻ|[b3/-Berz6GvF"["*\Pj E ދKG]tPU;JŶ3J>ۅi?Ġ{IQ ;зhp/ҷ$G Z>w{4X1lFc0Ǐ~-NR(NH;-`]eX3;RRI@2}wBAd2$lĘkǹ.eDæ\b_Qc[mhuBfևloJ>e]02-H*>F6Gz߂Znpda_C! DG5=#x Dj^!+t|Q^$7T[I\2%n\hob("`_9Y/Ӿ^INV_/43"wGL4&r_ɝ} ;O+'Q3. H ߈:e=Rzni:btp`͆Bo]Qa\C,0 ʊJGh yuNC<ٽ#)ܙ]Q,#‚->;ic'p+ Q\ X*?*?'0xjK|뻚 YpE@a}y+7V|P5~AjP} p(.MȀ( }ڃݰjUYF^u|`3u]s*ۣ'`cz(6|P u|Q"4,UCS$̈h8PǤ_Q*OL=nW區KVUc@{P3")±+Kz݉L;}!1M3 Z'rj FL&R.77'ʁ(3wcHNDˆ&05o^V w_Ӗ#,*{CuKs4W$@~K>$$ߞ1NIMhk6ES122?-Xr^ CPaHu*0FT7}j/zy0X۲182,wi5[TT[ww[Gǹ[VEdkH) YX̓0l*GS\-בV"EV^ ؂+z"x(  I#ԔtM1,C V'd5s?/(|TNsaˉs0@~ h-udbT=Xܕ Rpum,5ZXچ2~h1M<-@{GQY yB3IX9'6Y+ >'YP-woX EYH{tr"e5Ȑ1ꬄowiN/ Lɜy#܊@C83;] [<ϧ(淫K:+w. 2$^eD]xv)=UuT4&? _#/צnsձ *\!}YW`>я$_u?h BF_?@Z&K7| ^u2N'm~yę"t3% U,ȺnenOr@*<+60SӔhװ&"YoÕ\ :Aϙ4mS6Kq6?QޢGZe,|iTM斫H=^ca$>QPjͯoQbY7QFd}</~>$Y<{gbGBdb,-:]/K*2٨23h|幘NҾkV2fH?I,È0#V&CsBotZk)A.0kYy\2jLOt D˚ b(()1M| Q/~,;XOw'OD o$UD\uCט-,˺NZ(J$.i/Dgys9δAL$]TR>؋݃2Cq W/y"*hx^ν|SWZsXQB&G)\lSFRw7 M^)dt%DٺAIXi3r*_Qt'aOVJ=Y \W(1mi-Ft^V_1r53V!i3~@2H+iCpؼo#NBJgLhMdcZlɣU(@?wI v_Du tɂkMq<(T?8rX][D8qya:bt!(fw ;ER3n>x$^Ί_1`@Gv;WV3FNSfnfdJܚղ'0ve#ێ//nBEXZT#o?e0o ʻ-kU(>Mh7־&k-` {Es.۝)\OL6n'D9 MLd3m,!T05ɜj#n<}[(qLln,\F095>$G>+EZgFj} MPThYTʜ@|&v1Sʪ| 84+ߤtZߊ N,cE4_3/8cwm8)%!=xAM +Zy;e]#s.gHimୌF"Az`(Ȼ$:?دXna?aKoR'ɑx$RE̅L;OrP֦/Du9qg+ #EpdmCM(|ᇫUPaF}GY<~\deGO{ `@!aU>$*6ůhvZNޮ>M4i'YE} s CWee.?lGa׈*# %&chymK! G\Xc*bَVofxI|B2ŕۆ :1Yr|ڍi3<-BtLuq&X@zyP菱NR*}>.VA3M ݎv/kR]XXlۦv0}DQ1'H),0H-sa?3XN})Sc^]r.kFӓN)4IOjJaAoQP^ 5!\l ~$crq)D|5hF-|rF_6/cn{/7>Ny[{dO/I617Qݦ CT*V=٦O]vVuwa>zӈ9ʺyߠOlKv2d8f QCSEd24+1 }T4׵ 1N+q1@ 85!~d*4Bӵ4t8 M]"mW._{"|Yi)8"iUdV|'sUH~XZJ#6*L/g"YoΞ۽#"3#T78ؕmEEÚ oq7俰Щ(LPoD3UL,hB"߉#l B$Yq#0Y:%2}[?s`_܄#{[cIeY=` P0vh|n]̵6_BvX)yeh8WWjlj^g8*9J E,{a̠2j0j$8vaA#QTD9C>A@) x 9IFK3>z]4ߍn#|bҵT'ۙe|VCrewo.RDns/{=.sflw|y0AI1?l aEDŘ#_b/xs #I̞Q'³UG"X-~E'孶;+*mw)-F$v4H Q7)O wPp/d > eK v;`mfEoMp|W|z*20id^c+ٳ^ ;vG銷T2\SO."&)z$:{dqt'M6bvVa<{(% iN#] !7 aαukTHյwK5y"j8DAg1p)s^&UɎom_/6(Kx0=mVq qtyC<ֿUzڹ҉u}훀Al6+*\kCsNh XwM?:KolKK#[]WduGk a  MVJdLa+1\YiuZmqgYģ'[`4|N`qwdRųGA$>2\^<)20!A p.a's2ҠᢆcBooֱc\p]FPd/Myv`ޥc|G6X~9 :;hr?T3`R'?x F P]e:xՕ x r{`>n 6XRjCi ̪A%V ܱ#n=T1™:ۤXGg06-9Sn9$Y6ZaXM,|9߀g1Ǝ"!b4n$3/`ɯCp6~j^ù@9$YHyW m `m<գ `d͚p2)5sPQ^لEğq[(j B]6փ8DJe#=e8']=0z5Pתu;p /VW!nK]/&;*i.}~iU1˯oMrb\@#ܚ$$,2|B`@sO ;P&@nwBh_].3}K# {% a ZӀ̱l? ?' ,%ݯA M%1]aY\.owCpy#ufl> c2RNGwJ]Q*aHEHjH$m.d"MSq[2?LIj?eji Jt[B>7{&1VŶxTyT_5Nt=9 #`!zD~݁Bu(XเqvhpN\O ]ܧC  &ɟ3[g7e giQ+0@)zAv c4N$;͙q4a6foǜ1}**Dn.B̀zQ"m<1_>VN #̳"VzI&ЈcukE%K!Xs凌v"^p07?é7&HR64ZmfԵz3?+P#x_8>c5QݿpZO~la6zYMiƴ6Ú%Z0w'CEM6$,p,?KV7Ru9s>:/ N( G[Sd&c <)[TUa'B3dFzYmÿ$aN=`cU.yE,UzD^-ee sOqنցU _o6q+Z뺹W8$vZlng̯d?-΅45?VggzSY*dK >>R]DhG7z\_›[F3@cnn>Z9AUj.G<-l_c^[UurkmOrLQM̒:#:ƴ\˭D$sM-t6cgUG-;]F\kw )`ՑŪ|NSI\pgg}GRŽ&Yܟ \[% UN=.0wRLt∼&ԇ'QV#HLuptN;kpMi&>}Rߝ8i#}t I"u@A5X1z+ցg8T҉ k y&cZ0ٽχQ(l\u{-oF_\ g˴_wY|E Vyi5-/Bjn K@ê+ᨣTb_RB6Jtaz75=(P<{ϞHђn-&];W_kJY\ѐ+ )nhՙGƱa f|¨՗4 Fvl 6͓FѲuLpE`ZV?e]٢ArZ>L~`2MR^%"e Z *\]9W;&%?*G2¸Po^`K*p% gYo}ǝ4ra8OfRΙ0E9Nٸve8氖Wp-dgM)18kb.Ɖts詬ۚ.۩cSY|rwQ})KHgTGF{p.*F;@]>eezCmo‚hC*@c6e\dD,38,pMKJ0*dLpw}˛Q?Bd&Ud^VFc>=/s3bO/ ܦb!pȚjIgV[+LұLwc[><:aGbʺl3o O#GUGx͟ ֱr@3X[p\D1#"m\:0oNwy2h ܋DK 76^>PξHU{fx;}ٖ3i +Vv/vO9` , I X9AͨDo45 вS:AjSAqb=QA޶#hb(1Z|7~&{V&~py&x 9\O=yxW˃6uX@9nMTmAܘڻKo>+%v9i|o\WSYed*cʳ:}Zu{`[y)J&ĵkcR ~n`:4B~[>p:E9piGqrPW5328/WsHhQ8|ѷBr&f[*r 0m(&canY]c-2繕 J} #骤Ƚgc{FcJma˭e ݵlj]-qvs>[AiK~䊦%9k:F{PA,]ѵk+G\I>*(pG:qe$jJvC3H]ӺptQwy%$d Lc.c&ˆaIg17? ٦#.;[ȿ -%OBPˀa~pk|%A;k;lI͇X mBSBnsv=fII+r.vDcP4=KF?Gl\~É8qW %V p/˽`O+E<);eC?|6<]*mQm *myeœq^Eҥ3$Y!똪gS>\?nDYt_K~hlFٱV ,)~RƅY ]ݑdLoo41tR}#/ٌdÎlBVDhiu0Bik1.qŠXi!y^i1[^c|CZ(0g_Dzf<1ђ(-s3fZ4 fn4+R1]H>eT0ެ 7!U&9 ls+A#@b>&YVpԊW*T( 2%څ.u|OdFJ1h_> XgT>83@Tm(1.Ύ!fO|n/Dܻ^~1nxv BMҙʥ]kFrv)WK7@bL tkz0c@|2QxTj: }Jj\hea:XP /*xHXΥH{ƿ) LIjV}pڶ ꢛQl] 8,)jZ.?q~V`tl|I<8)}Kvc{rFĔ$>0Iװ"jQ6ތƤ:CBȎs)en#vWA63%nj\,V9>s|?U9"?tӬGO}q@aD;i_|<%O'C `V ~I#D`^ qFo&[3+[R1 YS[:#}wBO +'ZDFR=ÖVƮ+|_g>p:1` i:=):HL!=^,g4egB77|fVwlRy"ge/qGrj9-`r:fKbu=yfײcҷ \ h;+ ":M7 /ɋr9gwe@Tz'WVy,)?Y7n'ML} {:4!P1$1sZ+no k6m\WceAPQuqOշ9]p%[SjiF՟)a\1XV})gSξ+ X|&|O7ݩ*pY87鑆hDYYAS3J1Ěw鉮lf8=$cTCd#b8Kԏ :+0e5̐gx@}L<;ƃp @QjR@գOR\\,jXIsPKS_+F-9{c"( Ɵ,?[ kٍD6F#%+>lGX?gZw6v u Wҹ@KRAՐ[d;.;սV`L*]Păѝ9%37'Q>W{WJtw3EicFҿk$_7Tr4.Rz[5XI_Ĺ7IbA"+ RxAE-"wu߁&3~g~Jq~$J]؀)u9qΙ#{ʅBĺo|$tJtD_^ӢV]fQG5Q(-6"y;*DHÉ۷AQv+率c̆0+~obSITLLN>ecSz繴A,xQ2q:G8zWm(6ה:W%s\F[ vV7Q;~F/5U Y)G-3$'`5ΑDm\vi?Q@&DKbheX#) 8 eKGoӑ|q K޻{"I3w:c"*ХѹݡC҉vCk~IO}hbxQ~.9cۉ^뫿J`%\dv@+\nWc+V{4 ]Eٶ朌5v}[=q 89/%/21ij`s9Β 91Xx5$Lp; /h>P%Ա?秗IxJ&PZvT9pͫ{zL+h [Ht&ưmucF-Ie9YTGo%~RWls1a`8Dz'ȑP#j7 ?0qpg3^%utЅƶyqThUd: r" XQh&+:d} ]$@"r-rL aee5pW4B8)eM K[#!X;fHݳ$%x u96PaE(ٽ!ESm <fے T 4TU ) |DNXK:w`2hqކ^3er\MpMwˡ+53xĆM¾4l9r~bFҧ}R^u(o"[Zf(y8kV::;pĬ@Bp/lSu[e>N{ sf+FynvëS.\ Ib-M1 G*5yȈ0eDrGcX:ʝ qHj'M;k NVwM5a6/ԅ3Xc NvJ%WWH-L*' [{Y1% @1_9uo̽IsĬv?wd?=e\)kzaU%)ҩƑΕ\@qsP׬O 5>bRJAd'8R8Xؐzk`̖R+|5 @jݠX<博D˄xhWLw@r> _CTV]j{ w6 "^8 +DX̕yzGGoK YLb+!k@ޤV`z<,$2LVd "Ě2(@꿟 ";<( `i.{1u(ϵ}Vu|Ll gV![#MPS,]ɼ!d|8`B젷K80w;BAق O>T!#Uu/| Q>q285HtSZz N&f;͆gq{ 0[_S6 E#˝2tlh/3|͂;CǑhu4rBH n\x cBY{HN٘ؕL/Ke VZo $Ea [gϽWf×)l; N{sXȉX/Nܔ{n) 8Y:D!( 3ּ ?C!8Z#xn-y]a1-Cid 0P24 U;~2 *U]FX L%' Q;n~xPבX(Mh봅)J.JL\rc]&jFԎ Ig褠hƾŽH`*M7{gJ`et޴9:E9C˿chR#31@KWŵZ*ϞLcTPݣ)z)"N *8#*:yȝ!A9d}.ҡV5&ϛKBZ8[dE!nkpMnj#Ѝ)q@E lH. ;ԕ F$yu_.u2Zr.a~yMjieTʔkYVɕ" o{6Ro98f#eSu{+'{N|iOGn Gcb]q$#鯠.}p jMȊkb]Ejl)`ѮPk!˻VI  Ԑ\#KTf/b( F;I;800C6^ZAtVrb7`ҋyq, 3uTe:l6ihٱ| _Ն)dq/EX3,gTҒ(b&.H- DAd@_T)0V{D)T"b x7wN}cg`wӍoaRFBf 9NVHz/;0\KAqτ|G=NoڔDK`:}i#;]L^p!W$y_ z^8_e#"J֢<$T>ffMn#oIO >:v7U ^B6 С6%sL#;_thq;Q2Qz /+$`9x^>J.YCg "ix!F)\c~HKZݫD#`m:$e49sC::Q{a|Xy智 =wfk>׍6/5ǁd'AT5~ {Ă$k1HE sf=li/P(HupIⰕL;dgR gRs߿STuFv'!'uD.rq:N +!a?;cl#cMs#O2 AD~BZ<D46k4D*09 Hq8R7T-mN1 ڛ9ݠL&{攥Zz{\jUJj O(M0Xݴ`P7Nhwi]Rֲ~Oâs2"]h|PLL|~!btf ؜qyDdD-ˑäooD՟p>o`# 1<线UFW0Aw)QsEEZ+iD m_u]59(`FCMm{) 0\bKCД\S$\2+{}!/3`X/NVX#0hAU{ w ^Hr[,th!Go\@cFZ!dE6 $ȳܘϔ>u12ܣD^c6:;Z XMdR)VFHZ14MYQ.[Ҡx՞{H ꦌ:~q3)eo4?T{sͻDIfV&0Q I@P߮=mEE%RT؝ڴnO qUp~B,W-+߬i^+7 4° ͱWE٭S gQk!(\:+AN|]Rʪ"Ld6~%7zȥyp̦څf3ADYTV/oSЂ]Q\ ).jX |Gx8d nc9J}~ܞU= I4V;Хи'ݹ1ӫ]|,#C SKz̤"\pI1~8^;,S"%e4*H"{7̓@Be*w B!&DEPe~뚑#Cm]a{%Q\^ LYCQQA`V`@F|&An^pSE,x-В<s.Dr+~%њe; V5EAA$ϒ+e 7~AG|NGqV2 ن>?`"վдc&ק;;eiv#sx"Bi@c_AJ/rOg;:UI&t!7CI6^+ƩMkg{+j,ǐ]bL}@ZRrQ~hbTQ>)R m9o WTEQas0vYxC?MX;bE[r#+Ƀd{rF*qi"L4 fw.!n_ήZySFKP^l9Z؈.N9{mɬ T:(]}@[Lct\MgQq.KڧؗU ZeKLP5!gF׳}ʕ_I@<\Xi &Qӹ;!p[`?K(?&l@ 0wr*FGck5?|I@ճuFpczc/Lyr@[?Ȧ YRæj4՘h4yFH i5i'<%scl}E{ c}P W䪸T&U#:ܓ+.7ZU˴ NGF6tWކƴ">Oe C ίL p ~q9-y `Oc4Gkѓ| ǾXla6 zZ)GQ؉J~  6a8{ do J,7U;\~ ^B+*kg9a|5Riٲ.Tɨ\-KىTy .o",)&x*/h _dpz3YÕ  G!S'TAX1L.Fڈ'"ѹov=,pO2UC< ?:@o嬂fP𼷎O3 |ģPs =uz)ڇxo@xJ_٭.6m`O1#?֝ D^db~< ̞>wLKLf$)ޖHx:=D 0fbW`A=xn}~yR,3DkOCR4">S \Bj~h8Bjp"=o+ݱLgÙ|Sia[2QN vrLpX}i\#뇪rwZvRRuYr9M=x=<)Xv"d3@* Ћ^nE-[LMkܓT;ܡ4APh :pJq l\sR;ڵ{f#*]ר1D+g"]=Nf&+MOtfLTr~gB쨍 Q{aTFnM ))ŚQ$Cᅥ)F:&2b^*@]A$~2Bw.vAſ_,)$<k8#>뻙/culVN5؋@ŭ&? I+*#@fԂ \8s}~ [޶͜<#s=wKR dE+C9{,v6}(ЄVvf W $T:qI瞫F: |Q*ў+$GV*[_ݍŁN zJCF]WPa]|bjPL;,Ҥxƨ 7U>JR1(;#]Rqq8h,DLfʾT>PU_ <Xgf"!`~h#xh9daOɻ-FWv`*SD+x1зrbN,N֖YB|^DTkhb}+d{d$RYMP{ 10/$yM+JiIYD.yH) tTyFT:wSRt o,<Xc;n*hIUoMsKs>Wi!Ԯh?'NC@Md!G$<57_:F}Q^$X1Qq-!`ʊ\PJLV@ UkWks,SRr lnD;".ݹ~.?5)UVm< P.!Y!encsƝ5IV"HGSR-QT@x(qj> y6\b+Dik+HLWTys8AAɄ_Ǽ.+O~w' @[Ab 5c|nJ2(5Uh9#^t]Yg)TY\mj$H{/,$v|q/ʇ?hQ()bF'0@4΅{jr ۆ>(W >PBKGK8!X9}+D10fM=@,B籮(+D/Ǯ޴鹒,Ծt䁍+;m4*k-`LڸZMs{r2KʜC]<ꉦ魟ZF% j)X9dٹ\K8"Oq1G-\qŘ . g%MN3GFV~=J¸|#j &qIȻi;1 ZL`dgW(ShCtWK;H`F@oC4o|6[i%ZPEXq0GRӑW'2Jdy isoEoϷ1L~BQoWj,;.Ņ%MbЦ !OH;X4߶빺J Z)u(t3ћMB[yȿv ݵ 0\fNV7E̓%NJ$18RX0o>2l}S[j\'ENoJD6$u[Ĕ;YQWVTyBᩇP~W'Q|8eEڪt^v;_y} k >?.ܳ  q~r:9nk;좼]28 s=.pR[KC侰0IF6i<<Ԃ sq_x%#!/^ ItO`շT;VyJ(zed_Oo&wy\P~ӁLis^ٓy7f1W 5[hruTBWJ4`cV&D%_pS"$7H٩KW ]yI h6|>q ]"! g7CL$Q`^Q I@9@( ?'g( "ood.b 둋h>Yam"R@l1{Fvc?Ƚ]t|6 \}䩼-%c$G.3̷'nV^!'4H1j-?prvfv͊ KqU-2ErT6 d7"ݗsܮ;Ł/r5ւ{cݟcuުE UW7/ݰ>S^wy6O7‘6Α}PU޸˖TZoo0 kDp}\Ih6w*׉)MK¥ #Ygp3.8=:D߬>X1F3B3%s 8>fK}"Q .YҔG$_GDXM8JtwSM*h[ _a*_q()]tX ^8K@j#n6r6*l K}g6$Cڰsj S\c2%=hm̖  !<]+i'ڦm" 䈛mf =\8lҸWݪk6y4x~Jos>`^?1rߟC`B1Kab/ 1? |Kms{ _9U}5a[og  B1RG9Q?&uFcEGTs- asIM}}ccD҂8}Ǘ['9"l\Vjs3 @!wx@۠'1( qcKm)/S!!|0 SD8WM#tG^:-~!s-dЫĊDG[4HY$מnTS.s(YUYA*sg| ~OҰWX6y|*ShX蠥4oC4l 20"qg"8F6%^Z9,r( 3#.[bewnf^bOܤMHfӲ\w$Iw=9B$sNjhΛn"?&0U֕}Bmߟȧl3ԏs;]-.tʱ6]M-A3br:­<bqkW9EV,Dز@߮viܦR:I kM%!QRjm"MʃRH_<P|#Ies /:dNm+q,9Zkmg}`xWj+ʭt5oaPgc'܅tD/o sa'AUPAصfF[$ sRQ0$@Ocs}F8HOEd[j];:-~ۀ *5h7m%ʖb UjeŤθh<9߬0Oalq}{qo[n-Ǫ bV@oV$\!^# "3&S.WwANAW2N_^("2лmcU]R[y&Vo@TcۇS-FrSV_ӔxYGȍi4E? N9~..~:ސ=I(}ԢcY%1Ǣsc7o@a~Knp~# rO˴V(rLZpP|YqӚw֥~`Es!tZ l_! &_I^Җ&ؽA٥ |yV18+(<˸0 lyaY* S{Ώh@slkkn qؿ}iVv*^sP@QG #•r-J%MzЉlo՜ζH֘b: MKN)s+Y*ɻYDvO.9ۅC#]{B\Բ&(c괨MXA8xJG4qZ>Nà{&!?l)}K $X+#HMfCd^ 6k.zjrTq"2Ta.ߜHL,QeV,Cbdd33!HLt64X+a4XnRrcǏMzH{`4!+qM oq̋AEbbza&:F*WA2l~CHЋ\䦪,փp# _$Ֆ)3u]’8 g"y ?ly)4 E!ɐhKg,w<{L47M'|"fu{<,Q͌hQ辬 -9{uѬK O,dH74eܒzc]QN/)Fa-žZJR0Hje5$`P'/Q&f/U4FaG{VcUQs((-"ME4a 9=0LB-6NSV?s'bNwp"«Y*SdH}3RFf?EA2k_ǽٰ(+-O O2W(E4ZuA yg%T?c"ucgKlj d$&z-p0dsl?u{Qr\VXBiZnCIǸnqnjK*slĤz"]=M4&Q=Աu^5~xJX.t'hU^qޣdCgԞ ϣjCUOI#6 | ܽ^Tqfx2c@XaCB vaY7[ 4j;]Fu1%uck꘱,PGw7IpzWdk4դ>#!k^#bq 0[;l7T2VQ vէl`piYuhFbK|5uƏxTyˏrL![cvEuUb&Kl2 t`x1OcdDn{\l!{w|lrjKE@,S%3/b'bJqiJsI 8ťPi+}nY<szaU>*4Qϔ%ýʫ[Va/_ձ9;gu^ D#@'2K6eR̴1H)m('-{~$͠yw{k?X>P-)=|Mwi&/eZ ?|K^ 9[MX'H :'R$oRqϻbi){i}H=˄) a[ՋE@lP0rrNx9l} Qтb$ LR{~~qVH`5}ӗ#SD4a^Gz_ OUJk]+%nn7!Jf*ҢS{0l&i'@ZfgE:JAY"xEQ ر:$&혴LD vX\`LO'_bѰLFF:p3L1W讯G/8q{rU(5Q(*ߋse1V؞4@;jJfTBHRj/&J4R@'FaSgY~>:AҶpPu6XcS]X<1QWi Zb>>RvȻT.ܰwਐ"E39'd*gCSU ޫ;V9'}&q;i4pGQoB0҅u9T%K'<#?,Y8,ϝM~nM/xB6+̘7/BDEM*|\BOm:0+xrKWjSlJQo9vJv@|0Lf>#T8E~^dI.\r7 {B\˔bmG2`Qs oU$g!'2\xԝtWC=78c BD񄻕r)Y!aB؆QSS N"[VG;^ Ph2ncy-ws'Z${ZltؐaWPcۈYµм{A@Y͋'ٰO>2 iVdQXWOkfeaY J,@Ͻ.5hyE[MPλcׄ=Xy:aU(L@ٮ[mn Q>'ݠ {fg~Ã{pwA,(ćGtxU ]ӼL@xv@r}}#zSl rYзO;P5adaxqJ[+m7ykNZ`┦K:~b=G=bL6',VS'PrO~{M}멭qX"wHuZ \2[8h63O:Na3F!n[bA=@MSxPdNU8^EPzwkp AQph+8a[z 0"{^܂?e02d2ax4p{w~B-zEg5BI!tgcF}a^)J(_(6{QP7Wj͟N"_Bւqqk[Yß(C;;ƑqѨ`+סB`" p/p>@>س.ǰth CpZGYoʃy2oZOnpЯjd?qa)(zr-pG؆C^D<檇*4M&䎎Jv&6' $RY啛`L ZSC]_@$nmHx9RFJiycO*a`K1gwޅd.@ӜۄP-E09;<׾nfJC?9<dsGAgRfW=Pkl3IULƞf]|Eޛ".]Cv upB Sz zHĤN^Z_"%$A'm S=N,` 6?{Z(3"b7uJ'SEeja& kAdP0ba 2s oӋ )L / il!Ȧ ѳu_T:Vܘh$mն.9IKjvHm@c&~Eh9 |HRE70>èqB_7J`7YA#V`)۽8ZFpɂc1XF:5ȸt+j兼|%dpY <,}=C:A۷#G3R]0V M\׋!m y$}MΕ-Ȝ*[$mEbڵB&)*&K'IpK\Ԃ m_)IpReq6{;Zbl6;<HX#w!wU-[E Y\&؞2 z(0Bpi$%=fmEWP-iW`_ ]Wϭl?rS)Ex>ޒHV72O]GF"7("吷fLYE}*Գ$mӦf= ,X-y3*,^RpCGEdUpƖp̙^bʨ↟N?<,`2Dˆ\wR5 %>:a3z;PX)If+]mk8[|#VCITC{"mp)Yᙴg oeԄʍ'P}4#t̳Ѩ|"k^Dt\(8zAsH78!Ji61-?U$:Dd8<*HDncXV|.g0L3;j.{B)E,0Zc&Q'ڻҫF y%Z W7׷RB S)XEZ^n2pX!Wvi3RËix'hV6?cqHn+2GC_lS߾KC@%vb%FޞY!)2ELgO#=3oV^DZ1 oYwlr"j ܇# ׸K2:dw"m^+tJw/LGF/:edJ{L}yD3ۓX*ŢzS[aK{AV)` 7륤];@[c2OB~Vvd;O,^ <3e`K]G0e$/; ojLlIVO8;NgcmShI!>ovmXD@u YSzt7> 8g&k*J&}WԸ1Jmi@S>ײ5C)ѺVKG߱#|8|,1p V JJ{˟XZwx?NΑ'"vMM_(G=J@*B%mO>N*n*?kb#H\a.*MHfZzx>XA=-WI~t ]cs #_dw^cœ4#8+pV1ν=m*?tuSSw)jkj*7?1L iyƘ*DX׭S̿/1QV8(>ha3ȏ񚯦>=SaޱwJA!!._Yhci' LJۍ1:eK2jljP^CҤ:-(8P;v̅:BZꁈPƳT L V2C笇}Ν@MPvF~c-9|丒d9YkFƓʼny,Zp>)V-w WpZIp5qG{ Gf>$R冁 @+7ˊ2Jdו"2u#n|pK:Bcc&:۪KI&X_lƬ>S++%2\h-}[r)~NJge{]/x3.9A\)/ HTdnVɭ8c[xUPxM:HO~vZFz |P :ѓ}}?72B% 8*#k p1CHa+2I6o$YG"ǰ@yՏ^3=4vH]bPʷ3qQ]+-4{N,Ap\5cβT^޸AmA%qoViBy$d)[N[u([nlgbŧ050?- /V86,PJ[BzX[ uOKm Xil2uI1U5%܆2G1q( A);SDh YW1/Q񭖿U֔s2JQʅ7H?Dx:e^= yq7@G'0Gk9B90pΙ](hgoG=Y5I>e҈,̗ᨃ)c`Z/Ek=;ƒLqm͍"օu a= d86n,=W6"j@Z#N1 %Qn067 w:62xX+v] *0 &cKd.Gz- ClKYWˁ$&ч!p 'WC:1z{*{GDK\]*gM6/vkH6 T 384ފFՅ{[4I|DaI@,@0!>ek\1TM,^VTvFL0>3vݬW7F:x)ye:7 ! Il!8 d<-r/6Y[pھEN=yˠ8fFA6 Rj:~y':9 Of u{K9_ECa]/ Z` OnE_|Ak2.{<w=t7CWT6Q[nd6O`obǏkP<`#;vmL/JZ%TĠmc ]hJڌ"?; gySjVK>!>8AlKBPc\2X7 ]JF9k}jkpߤpO' *r69_@6A@aj]]Iao M/'VX?LlKvSreY'p`Z72$5= n[V 0\mRXZfrOmW^^9qp >Wʆ=5HS<kf6ѽYY$+ro.SGneXxBEC̻!-ڔ8UpD5^H,1A͝v`0#-(pSA2BD=9g*ʪXO%?O9ivD.4.'> ߪ,EXZ˭BLF~* )pYMN^xw9͞NlԤɮdꆸ@su#EpÄ^fJv̨&*]o2ݷlp]k[dlj%Ӑ%iڒ Jׅ`73`C,Y awa8d3E|`)]'4"t ոT6gfLxfY`T+O{V۫<՗`"pbTvǒ+8Jy"4҇0)!b\e nLիNv,b7?pBUG)&kuM8d `TS[XU;r >Y3{+E`(O;'6xg`[gu,2ɜjd]*}9T֩9Ot}9ypoy~Ztţn-Vi2vj2e#D9 6?H[k +رFTmk` 'oS|7dEzWQqT߶+hco,+@ktx~%`™3\V{t&-<*U7;*?9mk5#<~ި _!T /ueĆ LOC/nGy!^#Z`V]7'bHrov' w-#4gn.Z]-&;  Vn*y{P(lcQ͌͒t0R&:]CḊbu:Rnۙ+fWDI`Wyꌟ)ꂅZw sr+OA68LOVki.uŠAv` /8t\Yn< Λ=R1 fCz竹eNumXԠUS>~ %"]{?11d2X}IBGz,t\y o15Vґ׷HŚ>k-IvD#) rIjΆ=e:hw$:͢ kٿfUxP@(5YZ]@:]W)FmFhNc QIUM/P!N!GeVoғ:An9SP1"}_=`A^ڪ%HŃEM@k|gٛ8(ԐY5=W@/QH ZԷU'1)OGطi=؁Wk<3 @+>pٝWӋ&4Z߉Ϡ?tc*uxylv)Jf.JM Ci׮gܾy;Mֱg'?{?g>͠^Q!s(϶VV!]XAP}-69քqXF0QE814b:MCď^iHsb_Zq?--Z-ܵPCkЭ]T .gaDCɨ'6E>(`y=lu:гg 1j50d|0SUBe_c,ߠtJƁޤutRN2!|t &w0'vZ@R#bk砵I* VY}ObU`kxP璚A!mĴ؊/ *Z/L;q$Y{L}ZKVQu.t *5(قg5pp|󞹂ac`(K#ť2I*mr$$9oo\B 3egFo0oQ?A$v LُQ8;DDѴ¿{Oo#J:,et۷)\a.?';~7Iŀ% D#m|K -UzUdKf|^Vb:SW*Bh@ c^t?qqH G~xC2[_s͆4@); Oy-B ~pIJ¹:WīRcz+3wk TBm&%T#Vei{E *8= y8sArP apͣO>]v'2bwCOH%<ۖdo:|a #׎3M#as1&Tth <'un݅=^ 6IC%0R<0 zRh9-V68`L>×(f[zX P,W7n{d?yFAts!O#$0Q80ɴ]< 4]^P;)M:y8.ޖ#g[Bf}L W&F+~6y%i!VBIMao2. J@zC=h{u_е< ZK TF}IwRKlXk@0 FVTwL}s5acl~-!@C*Z.Gz؄I<CS|k;ԝЂzNj>hmH9  )7"0RmhV{sVc%1KzQ/G&-}ݦHzp0c{99 z!JZ7=ss̨/G 1* ~.S\#gSQS2u6LL,]殓 PQ[.3ŞP`>pkHQS>JEcu>t?3koE؞3?;i'w0inQQ\eZ6zU( Qv*C\cqY࣯pCR{$?|cm`6.d$j3%•sٌ$\ $l RػIF)<Zm־~AodVFCmk20# Y_B cwLC/-x0WRQK{xsAcfRG͵[K&|Hb}dnc^R)!pQJqDI}NB.`NuӃbrk_E^ /ЩJ;wFJ}tc7kɹ>,>JK$787x<o@Zu+NX^bh +VɍQI1Q{>лYyTV7-Dn<A $YC%d@x^\K8mNj`'>}ʻy0\Bf@;6~KnI-kG1!VO2.#@ A& g#P[%r$5B&m[d% Cw[}V^D'M@jg{%#[swY~ )|PT˜RձwT3 BU9,%u-4oSQBN! Qz}|j Df63@8l|lL e?+'7#EWyU*lTC{0Kdt4g֑(g)j,VPFOyס(cvx2X.#}ױW.V«-yh3^ퟟF6bHtd-בJ4Lb6$ME*2 =ĒvZr~N{c7ӺĆ7X _r`IvJQ]9C4fĵ>S-덇j&V4&ȳ(( K)֚ S)ǘw쟯lc.k(!qj2+9]q$b7y&Y dv^ҼUGw45Dg$.6{Du-c%i:p>D>a:\PP3C'Xӡti¯y D5()V鶳N@<b,*fxi&GKiq2c4}+چdgs9 Nv6c4:鳐n `Ee5+=ڟsp w5 ݩGP=;&m Q7';еO']E R CyJkyr1o9s+1=}X ]"6XVh~WEeW^+=kT̫4G&i<N_ݹY @E.^pZߗjolS uEkvO'IMm횟4C`"Uۂ NL6XBK"D!B<\Ngл4bDPF͉}?snVeD%eTRr> h?"BUFFzyzz!Vˆ'JC+aM\ Wk+-!XP_mJ1X=r9C51r qP;{dJN,/\J/ZjRe3EYqH/)L̘,J\i7 *l"U~/e&[M.vmvI-q}Aa:$±?)_QS+m »9kda&A-NP=.Nyk&2kw=ξL Wˍ-B{<ϻ>Cy0=ؖwrir3Z|/ÃH}śtt #46&15*B2YAЯpPA4 H\0q,t!bA~%iInI'-릙R->Wb9-wGΓr&wgM7 Z̑P7B #֮\C5tYGQ͑+n [x>~50+?t|Fj@.Q̖PLe$CE|2rr&/v3q[&_ށk,d@Tj! >cWڠ;*h1j[rbߘ4beq #]DMc0-YMXV)o"ա-z)e .g>HC~ml|C#kjŴh}}Y7>zZ~.IV¦> N &?G$@Eйs~S&'9j,.e%gUy#ZFdRЫ́Kʃ!FJ;c/WPwUf Or!z;+wwULV%(5E4XRPHs*"/}ʯ I?NE f–~<%%[`XsDlh`{3W-YrS9'䅋ĻޱmfL^jxψ0e`^>]񇑘9"zªKPs8ΑԳc ΄іB9BWRw!MֲU1C#@KexR^Ptn/`@bStJ B,oWB9n13% sA 5HGNqc[XmrAC8ѐrxaOMjHV(]x:Kf1E'H[~X>ǯ^ _{k"6hg0ga:VbBO ETY2|o>XzKZadd HM4I`\̗Gwiƪt%]\Dd&qJ@>ƚسeGIyzWc?wrYi^毋8P,v wKDǑ!P\c>Uh5=Y.iQi^#e% =A>zowQxTc N)@k/"=JGYޛϞd V6!6fe_I 8- Y󵲁2C<= /_m`@, |IVZIQ;/.b *$NqanAޅ WR&cHcUcB b /є+1u~CT%%gu :P.ibђ0zTK>Q/8#k$0ďQ'џs*nZ?{߲:Dw\7] tJ#;fx'R O$5 R[|4ÝGk :Pv/yn9#ʿ!LyY$3|TOT3;p%_d@ >غkcROB0 ^ڿ/UA.yiLgRS1bq]yvQ&*],9^Bn-({!F@DδU6Rgt^24KiR\F䉄Rèthl5eHȇ@Nf`@p##T#u%=PqL޷Dj.L@,ߌ$12;fT~8M!?K~hQF>=4*Jw kґ)oobmiE9{ripB{r p&o[U 1j1@NPPR#WS_ u¼2nXF00Zx LY; gQ$n?!y`x+UK=9N AW,9LطVlYe .)'ݙ>.)iTϴ2:ґǾ%rCrE1jkBu80d->3v1*Ր&.aY鼺?ަe\폥# ?bUt&Gb^=̚ ?/"(<'Xp\| rG~Vm5M8s-h_HeQݹk gRYz: U_ws mm#Z$27ƳfOŎNJ ~;LUOB[y-1kj3: $؈9w~f7Q髟ўn8 9.]kh& z6PSU`iI,?7}qXB2X42} Qj;zI~*THY< BD ~kEig3ʭ1Ь=\$Ƿrt![l|F`4juMجn1V^-=]o]59aʶlk[ L,s2(eڳ孬JE GώXC oOF,ٶHa9pRfq@EQUE #l}~v70U<s$f!Y]SC#)fobV-SԚ!11=rE^^'|S"~# U˞3?^ \-1(0wp}ȡut42R/:u7 ӷlŀYr\IdDC;4Iq$@>iq@/' J-=PgmQO-{(5N+k.1ȭI_4V73 ?c4m$qW]IT<`~Veh#t =A2ټ*B?^K ΄޲lQM6il047N˶*.e t*_ LbAkM&s;FX6;Tġ} NÜbB?Jk> 8#{n!|7:Mam~;)Cˎ4_dh|m@ߛ*n@ivr.A<cq~Tt-={.fڪ~"7sgs8TsLN?zG%Kx!h^9u7ckE 2[(5#j;?,a1`l' ,O'}`/1gy 8 ζ" צn=ji! QoW0Gݺ4E`֯ڏ \¹ 8}dxclt8+xy(1&kbZfЭt)Osɧ{t΍Mށc;|\FWOp>FD τwyХ=|($ ҇j 08g0 e|`0у[ƱN2>Y_Mh>H1>Hx3ղipJHv:y%Ţ E@^T'ޣ)kfe9tp+Iq~wN yG1D/R V'#,*Sޖo$vCa菥х *5m|j5KkN%lBY@=Hյ.y/ $u"-rcJ\A&GBh)|Oql(V89rWeSTkIo{A y ceKlDK{Q ʱ\nؙ<+Xۀ|2B+HP-ꄄ`Ʋs=?jJs r]*X'v> l#04";7_j},"a:А$ ݈EҨK4FQrLILEtːR33k^Ǹ{ s]W{9y%0q5%61'9:UCGD.g KAI}$%[߹%uWbϞ5!}g^$2x.MԶO>W;x%_5zl*/{ ZO5n&sgʾZaS|[ ʪH`+( v+Z9z[7$'x~2'G;Hdm@A`,w gx.STvLQtpߟ5'LCuיD4TDEjϋ(֜cq0Rp9r^Og qQq05;Ua\Tqy(SNX{2Z R3{j-Nnp o8yWj~KtØ|/a7CQs2=O_{,d1?|<ִ7U65+,~b8H:d)x%S@xLa]PnOh"q\T=!A@dn7 S7K .nb59Hp`몺|6P,Y݀h:SFǑ=7翟qT !WjX7f$SXg7j]hV$ڡkzm5icR(ţ,v 8sdSAޱ Uahr ֓ 7?W+b1Bd*4W] mhoP4hEmBսݓ$uBkM|e3fUg;<`u7hY"X !r<3k"JZLa gռe4]Byc1 RJ:@Lmd Y\O$ϭV`3PS2[6 Eh><_`e:@&EãhZEXs) Fw5'FבphO r3J'_"rKRRRsbEFrAqp$cFњz^h? h_[z6i]"vFAˋw|1O (,.[@:ܠ#_ $bP>^捷:1OaO!Ug^Vx"MhXV$ـRzbHdTm `ɗGziqXry_(Ngt~LR"o#B굳Uǿ<@ ྉV:fR4r=p.>h@Cxt4tS lT.B9܁Q QHاq1y3LMԸzoN(< Zq'1CʶFBM'C7xG)ZC>`B857chO)C0mQhOƜ?ۨM]Ƴb.XY9D\7{ld+cQ.3?rƿ}&Δ"Q69:yRX0My7uU}L̰ߦqv"EZ8|oM=AbqD4*P! PC~dV=%"t~aNU(T)i-Px.M~Z?#'񟪭*B-l?؎Bq*~%͢> U^-uc݂fU'Ϯӝt&0c݂*j(/*Qz}='Z%CQ"ڙnDY̚{Qct?ѮA ALb煷|YudZvBZdYpHk0Hq>t?3#kIHwc: ?!a5LJ~Z.ou F-xlxDZOɊŨ y9@ 1Z H8eigѨ)QD(었0_+ ᳗AO) $+[A吹?zEth˘7ފp*'ނjWϠM&>Pi:|-IRqW/O` =ÆNΏlhӊ}|E F;$IVc:蜏w}xD^9B3AQf<{.KéU j825㮞 ,vTمR4ElG4s]o&rĂ;hi#M%0ic9zl_W1rmI~0h}(5ζngDB.cKRsO_Ej&zydk.$6Ա!:f\l?b_/GJxJEzifMcFZ#[?qfPFW[_q9cJj=d(|kOt߿PF 9gISQZQ$7+ʦnN{a-y#l9ί+&kow<"ƙ94{(aD]>ؘLҴɋ_̐L`>Iq;݉4C3Xx٨*)Hyh`7x-6[u!u;ky1,Mc_tLBCaqROch]'Vg[9OfM_T ].B/,׶WzذWz3(a Zʩ71zIYnO,SGFӊ2PݐĩrY`Vjsߝ@PMT&C+G zC᪴zT]VIKha b &$bƵ1&)nb`3i_vdJ~#])ÿ.m~1qDz|6p=h}M"\~cBw4k}qFj+&w,Ov+ Rt~H У8[oU+h;RjXC4=N&(|OWF5trA#o˂p =d5ҰΙ`oDZIz5mrˡyFtJ AKǀ\)(7\9MH>VsMa{U.$@E+NhQ>)Bo8toMHynE~I@(%LQc|Х;:NO_St7JLkSP-qrP︫amK,:rk]\C95L:{H1g7P\t \›c\@Y+`h dpU>/Qba&&DYbiEgCr },/8 q|kXDʆOD^珊:nMz,e[WK=f.l?w^@302$02wEQL!lWA 5>1Rl,L}UұIQS0W<` kgS}$j4&^5wu^iMqΨFw@ht7|9M[z:jDf/x䪤'Zyp[Eo6K:4n 2ۏG&Ut跟q9~ ip;࣠pXld]LTi]p4/;ps_{GOlkdSNҿ[.Wt%~[f&N5ckumo'YĥYl >O {Dln -[sNȏst3,ncR#^Bb0ݾ'~TIzt6 0VBf5 uzRVf-Պ~h#9a+ V6k>;RBS06CqA#'NG}X]62DΕ#r31 zH9Ѵ|' :D)}t-?S[ "(E4ʀhoZ+y8|2#&sd?dFxmli ./.qj8փQ QV_GӲI\>F6׎CO?0sOHoų-WhwGAGV8!_4=";0krls'X؃J+=|G+:a4'!ݺ@юc%iBA;ۉ5Ѥ?[?2qm4.q3'URo4$LG3>+tٺf;mD (&Uދ#YmbwH|htHb݊t)&V$sY65P{SWR1Ɛi}#o|{ )ߌw}Cj%T0{n!8^^lnUԢ%2V&SjwM 'V(AFjTdB X yCQv-Q$$M͈iJb͂Bh JJa"=`Q#&u=7pkSIɥ/$#,jTfZdҖAU &L-"N>LUUSb{ƳRß^0Lf.Z Dޑ&m=3t w2D^*k%*s_ˏ9e3w6 44$~ٱRې?꠬31X25Ͽ1jD;'r@W_R7q @"!$bl?P`J5_J1R4&4< v P3ArcdR+T}mJ1`AU{f>@dU4X0/=:&7ʘo{'w4"w&BZ 3pG).,U}?ՍPKw?t۽wȫb׀ > X1.*/{~$D _9d,k/w5JNP h> os\ @zwy#?Ꭱ`y=EKm*'Ìb*p@fZ"•1‚2_*Rn'B@@ģL'&Ts'G*}p IִLU ? ̹si)Nz:S~$ :=4 d*BOCSzOul>mpR _R^&: nّ(4+˯Oȥ@_ykwkNsk&a PUi7PZ2ókj7iB,a jR.0E[2C(B 拡#49ILBgz= ?dG *qTrūtdh;}% &ؼ9(rx`G5"G;ĺ7aW+nx(=<-i8 ˕ Y&:C8nJ %4+yV#Db+)zgicKĝHq#hRb2;E S̳N{XÑj੥!woCN}x҈Y!2'[9=[6{/'6[L(x?%i{Jc %m~8m0uQ.I;n~ {+,oK KvY6:LC=e>mplɝ` H˵Ū2D?UZWZwGLAV`EsoUQV,ج.Tu2QS 1ݜQԸ' +)08g5Gllig± {O~Jlu\p{>5E9k2X8sa~ z`Z$bgv/2bdăݚQ&*3)l'f{l6}$Z"r|ʼث?2OTR- k Zz%ĉ8hJ۶>CT|=rI(l+zݠkYИI o%M4Xa#,PέOw>n&4h Kc# _tLE`6=5ŃHcQ3r:(;?!Ғ<j@S|rm.Sm{(,b?R4N4;& XN~t$ >׊Ko5t }ٗs( ] cDupQlT|n3Mu!t"<' @ڐ?\*lAqs"1>uv)MPǡ|Y4@uWryMŋSp9"'>F03^ ԝD+aX3dh ;ʦ:Gχ0I>˭/ GXIcG.D%hCThGqbDr\ ,ôL5=a, s 8YאXI`npg/ZǗ.]% -lB"fGKXy!aί" A3AR2R I"L"P& Y W =i1XE^*xC|P)dqE,CKHU[/Cs/+/d]mdt2~녱ӜM*НKk̟}cܤP5ҜL9̯ Ch p$)V?QF|{n.)v.hE ~ LӺCZBv=!??l?y }3{>،Y⦈E/>$G b)^ 8 Eb8 z \Ҟ\Kpv5XwW:)m`wD+ {\mه1 U':fq,{[|(Rz(GE*R}} 7V$=ȾCf7`]n2-`[uNü0Шhc+%~n9M[Z]i_n9bspSgX~}T$Ü{ؕd1h>Ӭ;=c1N<-(V>ٴ%aFvMB^ӳg0-E:~.(G䙌'?+lUeF f"@V. Y l$^65`.ieѬzkBMX8j܍YID9x.݀k,C1Q( U :ȍ̿&ݢhh/@[6߭?-)[ U ι;:wkh@[_K}L+}M$PR47=*q.VR SFN?|;}g-lF6@ʀY [ƥ뛈06Mݏ#|;?vC5N}yһHpcѴbAj'Zqӝ`2୧/ &䊱Y\d<RHtvҗ/g_Ss΍N3CMtae[ŋupY` މV.[=삧c+1`AFϬ< )'}%-B@Ꮅ 'Kb@Eڄ>8 ViC󍉫cQp Na|ϲ';tvZ*гPfװi Y##։#|Y֖Dy|H-My-̾Ļ9^H]dMϯ\j3 G!D D=$̭.Ш'83%0yqMޕeUz:n"VGw 3^`tJ57c*=50b]lњ)HTn:OO2C[eZKM%cLk>i lv+4aEUcG2Ѥ<EKCk% |PLV4 u{ )ɣG1}B(㬐%Tm~  k`%30*ʉaC??f+Qq 3'%J`_w{Fegqӑ <($@RŻIފhl5 UtލSaK=T:#:)T}ţL$jH)ZC=TQO=< di+;J yҠ@]d#4T2>BɋHT(pgϚeEV >jeM lW6} *R'r&ݳg$ /\ fFhu3" n՝C%-8grrCp!>[δ PD'~wt^@DŽǖ2sdzjN9TC$ŭY|P?ڞa:_uI@yXmů`` ؋RbcR;O#o@hBT 0,&z\I<ցͮ&z'!e5C0Z`݅I:$rאT-&v4!GRFpͷ).%^*Ao44b< "gk!#]; *yق(2[6 {4hx?g3Pn Fe0ͻcIڻ%w- w,H%>)vp8t9ݗT0@0H kR@fVi=b-Zyi${)oϻ [@q6&,&|;5ݸB#*To \\_(p)㠿fx:K !j L,j!˨B!Us &1aI2!E] JZZXLХ1o#rK=DD|=t֔Ur\AJ]Xg^KW˰X'\wgfZy?)r%ߥ;q.`9ƘP0:%lww~gR54uzx9e^=EE5A1pSs6VGtVϏgtZi͆W+mJqe"|Sp9SHäq 7ٮčzz?L3+!0%P bLt|5x4bUB%|@ 6UisJiPÁ~1-QէYM3$͹%ŷ(WʬHS}Aº a.JLM ' y/?*QLM'EF V Ou G ]w=K wvTFMTX"nv=QX_d~w,zNE*x@%Tt'Xa{X+:W^KrT7/nP̒TBS$_IY{䩗c 45q=+=cs{$0uNScnؐc3[E~A]n}ꑁ_^QDgp6EgXq5hfލ&*;F)К]@ũ7Eyk& lV a])PK0)%/gh(8}mGLCmc+N.,4";Y~7]2zwCó/f80DkN\CvJ~; Z Q \&bD˹饔en2jԐٵ)km# 8l#CMW#7;(}]e%"PB`P{ axu( L"j0ns[a_ָi⏯+Ws$m偗k bQƚLof 5&^u:[S1|=` \D&m;zNطAJ׈%6[)n|+EkpC8Fetk^]xeeqdDdv^yM&ѝny1( NlFƧ3H䪩ʡ\N O >l d| +4&\~l5AwJyG)6L_ an Rكӻ`Թ _Xyev/;G#7rˁj9:Z=f- S?lwԭ>'igYV;87O%wCC ʀ%[q/Puv.f'M+@pX`!wLX c8ʅTQF=V}Wy)Gtt]"ג2/"Z#MF@P#bA,mk~|6{^^>m/%,bCZ7%5cgN@W^)6WI(n ϫ 'X݌HpڙtB'xϙ!%M ɼ +⁉%;zzQ"=7 x?yh,d}6?#E"c܍AIvE g||b"A UVhՃՖ`P m(Zi MW/.u"Al*i]5/>n .$Vk)>.|RS;u$C>5*2Ą0)}*$nm9ߦpy 1殅yMNԍHw #@EKB=-T51=h~!1vR3Jz~nb/~i<"Xр@# @RՀML `NRvGcҦ6?& F#&ሪߡKI^3SLЪ#Z۱G٣Fg5ڦ"{z*~)r#Hֽ?p8Zl )WGHG)ZDB|-'lj6g/ CfB_H9Y=HW*9 t5"x9ݭ!t=SiQ>~YGM$Kb*Єڒğ]նŒS7pSOꫪkdZj:7/F%Pf.+^aQ6şH*:Ss ׋;vnoA>ά!ַ$ TՅ(Á|@2TC[ڴBH;7 ֗i=.` &MN+B?MգO?:6tjuFQXփ}h!gxtU@./l\dtFv(Y_{ s%nN80U; WhDڐPŗJ8HtF?\x9S%~Q>on|%ص7E9v3Mk1r_0 t܆R(+AtfR)1 .ܝR`{UwBl0X -^$LEdtTѓXh t'>nC:12'SR @:JuMfcwNi.bMWPcQC[ >+ugtn:hB: j2°K_qO~Hy`\eRAOb/pE_u}6hI,^ 4HEUmEاİ.Z̈́ι/Q2CCI_ĝe珠!UdIK=:&Ci0ƆF•|2w}I4N3+<iZغ9u (9g} \壊R馤@V|K"uaAA~a8?uZ_[z^ yfXI*atMʽneȫ l NJ_B#Xp;*9v tMlOHܒ5<'_!S4:9kYܗ]9况n66Iy}Jog3ĩAGkR[ P4SC"^m7sΟǩ BSS׬Y -qTSbG ZU?|o6eXq)@Gyo'm/F{"p4;h(sH3mjz @5] B3 tÞte}}|i(Q_̊|&[aoSR]3@Hح:q7,:2NE{9w6zl6u8єrj%D˭#Xƅz3"TQ&445[tgC.9)jAEsh\*P닥gXgDSxS,nSr'H$nCVBVX>vTa҈|d , vɋw^Mb=S -N m˼umrɣ"Lm}CsS!`Bz㸍4O| 7Z`EgdpEi%汻{/xl5 Ϋ?H]+LV;2ԛAr7&O޳;56PF SsQ?d-\~)ɍz` > _QaF#)$QfV;“}g+ZjU`_mf䢳j6D3=KQ`aO3~< Gi >ϱYznDE$ȑ&_` 2.M?æ!$ ^95?](lN,̧-eXy\ߜTu6D{p]"U5jh8H|߫/)n?6D2qOc XTEn@E…CQYnߔ(,ms!FB|d`W*pS.n&`o^jVM۹ C8G+aBߖb/qhdQN]8pz:@{bFn“盕ѠOVfc\RdA4} 6KJ1l1t "dA+ 24HBtnӄv?u] -|K'pt3%tp!42e=RӢ'τ.;iS؈TkS,珬)`(dn|h"^J:$u_v87L׽pfv1%n(6eLcabAC}Tèl'HLJ+/4|>îh$փ0\qͰgFaB:{m\4v9Mx@WZ[i9 'gUп;'DtY*,9T lƗ<$-3ZW^UYel}h?y˰!ҡD:П[qtϧʉx% ̹ܦx#LD>7_-}b˄P+% |j p|'|$p{gpWWZMa_:*"}˱|]~֥ 'obZka1_C0jh_bZoJ&Zjz٨рZO ]|m>ӠRˇ-*Vm"C%k&X} Z_ }7YJ6āP 3#l83huRf@F)DD:־aL5&7)r(|@'T\sfk~Ksm僳 xZ,8M4HKR YTfrRpMb6󵐐y\(h1M3؋8pEJ> ȓRIa||$t}X0L,;7c9|z,& 3[u R1>r㤚.A4U"G6OOB69-BYq`:MJoI~Т` \Cl\5Seur‹kE$,}]D]5{d17ݻ0+ u%B9`8$~@gYB>k>U; 7zxgrL#1u~z_-pG\)|'r0cNhMԮjꌬ̷͆vj%TM"Xɨqo+O6ӛ"(u07r_ ^NP&zI~91 jgǴ.K 3G:nof[=H4>s9 Iy9$`C $}K2bZ,3ʄGs{<$bÌ ,RS”XUF4=]*āo*՚Q|O] c/1yQd^7 ֋92cTŞf3y%Q96nc S7űK~<ym ݦd (Xo$W?CU\tf^0~{~Ἁ٢\HNDqpY,Q LАPf^somJNt / Ln8'Cޔl-"EkՄ0ZC'!۹g*Ci`o,$Ҝ01u'P@,Η弎cz W_DbXO6)*MYH4ywbmG8sVG:e!h$|\j'bP7$7GCR`FmHs 0զ1zmlSƆ*%1tDU|oQ 4-DO|(03Is ݾރ/I:Ce24(9 DCZ=|!c!'E~0ɒ>c F`^D$)W$:!Չt峮7,?,w0vIl\ސ/CƫΎ_ d?{8)L!_qn"LLydѡ=|雦>"'t.ϣ~YEU w*?]G.>=*j}ۇekCZqΣVCQщz󭽦; ,۴amCJ+(+>r'-ۨ4u>,#v?4@$`DsUnʢ4t=rߏfPx_6?.Ǜ2w CqH=Y $P8T=.2' ]'ns? x-6 bp8 >+4\c VEA~`E=ON͸,4v3 oXBlݫ@!e Jft3twtcI^r(:r ($j :N'c&q {;JaG4#+kS,!J˻V $'UW;?p Źs12e3mv$yWGu8󪩂 mLkJ EBOW6';kLŚ#B][y7|H6as3i᠙or8qcGC; x¨\w6=qM F/{M_$f Wt9ZDGAB ;pnS`@`23%q-H d> Ŗ8CRpɸ]$[6~h{uķe& D#_(D1o| dH*v 24r˸4 ī3_Kmv( G`:ih+ۼ!72OU9݋ rE8 ,P!KGbL*F 7UU[Y'̼*MK$ sv:$U=>(!#dDYO.f*@|7BI!ƥϮVjaO?_%Q8u`h|4Z08o_jJ|; Evl&HWL}oE$FԚ>wjbCio'>DC܏L RFE/ )庤pbۣ30d Xr|&Y,\nE۸y-͒9);O s9]BTR@ qdaOM,eqihOOѢaٸ8 TVLvfɜt ͺbKSaN<>hH܏WNif]V%P%.K!>\Tڦ }U9ӕ3bl=dѓJ8O̎C3#d#KgLbťdrpI6W<# vGo^Z$@JVfެ:oU'I >aO'5LTVp5uQk;RhmL )NnӁzOdxVw30>t[Eŵqg%NBGT5~Z6>X= ;b޸mFjyNw"m~Z\yT(t|UVΊ㛓`1>Nیʮ=Р 4BBPh8jڂmmP<$klQW| ,_?r(-ZJ@Aˎ}꼃.\4nEjHIÌf_3P[4T遰9HS)ث= dA6&S* }c&9:H24yc^)3/mK#m ,S j|A'B `sδ@*鼇*K@ݸ씤}W8̲03ƾNOQ/ζ^ ܘxFl-k%6PȮ8ukeM.wMD#*\Èql:M݂:rSԁ.X[ 4V+Pd-*K-֡*%oLI_{!RMBVn+oZm9!w֎ ڧ41I%n?O[kR}j% /#WbfM y Rhn=l"sĪ@*kQ9QQDiR+ZenHx[;-Vj\HQZ=gMu.3B7G@HNd:ղ"HO~ 1g3!jvvw!@LcCN[26D.3G9B*P/A_ gW R*t\Y{/A0KiMj].u"1 99ә:Uڤ/P:wArlX#V=5ZjƊ[VTtb0z3= nQ윜WȒA}|f2|aCX 5:2)@]ƗwH-egv(v|ds31m|r{6M~5KM,X(DO=7KKKXP%gBܘЯjoJ :І힆-?y\ 81mLAJ2ݾVM TJ=Zh0.r%!"@jNur/wf{\4vlXB-u$LN{_v)-蹛P5axkeX8E:*\Ɏ)z<.@GAN/z+J!a^0s7}-RtNK 9| sہfX${#GHkNm:P@ p-O_QLr5zi.h P Z "+߳,nju#w:W! #3a6R@;h6c#(F\LJT]-pLi>OECVsnv)(L'ORﵨw0V;;BiOÐL YC';k)dGtD h/4K$X0@+&||?xc5R4"˄W=#e=mRT(k)PvQ.TF!t]h\*CX ]%:>SȽ"=5GJ޹xXNuS/ G(E!ET:k 8<ݟ] 4T,O*C0X@6x2O] #ȫΩn<|w)+. ^IvN%eˉOabdH oe͟Y38Yv."pCB&CjQEhkFhOxNW{<93Z,&QɘEȘH,8V3eF=m +FQ\k p͸tЃEb/Α~X^tرsP<^k) d 9cW=ȯ)<,ħ2(2oDE;}%9H_7-Iy1w'芍5kώ uʶ6&g\ѿ({f)@7_mL-l1;P4eqF2~; /i9>K۴OΖŦMAjGTٷ}QhI5_b1.>W'J\wCiTڿ$b~e'vu_o!uy!Kl͓T3=3I"ځ~7ubUɲCWՔ?- :7"mcVQ4#E鵋w]I"~RDWxd 'rjKel੶=MyI Ck:g3`/:dh碚9?~0`4 !o˚+̥P0Apoh@v$>C'޵vŽФEM2.XOy;NdhPf5:NyRmioznJc}@{~<}0#¬pq_E+d%6W#FxS'I HU qkrE6mS$4l8:|)"-њlDp?syKc-e#mBXyQo6[W=hw * h5,m?Xu tEҏ(t4NpC:[Zy"3vfs>x:G{xtŦubFk ږU=T> Hh #66l~%YTD5 K mZ#.ӒŮ\ׇbrnn\Jհ%ztF]/#r]A-2O3Mc:Y5.rJ/nѯa/bѝɭV>pmm&]m*@]D/!|X6 vl>uVKîB]"D('ᨘe`'TUrzHlp,Z#+Pg}%]O2&x崑Fg4{Ik8R㉗^XXu *G_A)dL&DMtjr\2'6f#ͥ urlb^2dlU<Kl> ZXB{mX8. Prs\+*Q2f_K*8 a5+6r3,9YpX5h30wyO|>9Ri,#Rۛ!u2G`ZQijGFd+kE@0>k %[Y%&%, |?)9]^?TWlM1lCҮwp b> ^B7X@v<\f} wx I:+b ߗCe+3FhVՀ44Tj626^,6pV/ k@٭-SQq=90v{Qx:F|,1JK 6O!JXyO<2׼D۱ (?J*lV4jJꪻ<i'ZFQX;hXPMWhGZ*^1lyW ĸh2| Dk%ڸ_=ab"!ȅ=d 5n. ȂFuZ,9]ma#e~)<}nRgTa0294>Y_}=;K3G iQ}Ur )PSkXǠĊ$Vgr٧~Ս[»[I+E{&:.+h=r*d^u4I?RMNH{G49Ԇ^D PQ#{ynlCs1qd[=/5`YtCWj$bz\T.WZo>FpqsIUG@Xb2?} I a&0ڜ37)h/ly&W[pc:[UÊd|ᘌqxS(W FJG:y,RxV싞ob {YW*F7-WCNK&k;Ө/Tqqٍ|.v!{6 ox."ݘ COq| `wwXÎSj"mP "߈|yߓ28y gOESzVU59DN&H̗lB OfȦSׂbz` "+*,9 #O> L莵wUw`/@$۹f)@UdBNr|,OxN%yv7;'e2-~ii*?)Z-9sStk7}~诌, Cabz/wݨ22M$yU(,ΏDi6(A6 *B8%n>3~y&G֕rm~hv̄ )@_6㝖mRFCmS qWb87=WgșCq0+5,l* ^=tYs9x7bEZx$+ 94l<և; u6U7#5/Eb ev`3(-*ĮR9;RbpG]j=, *wf`$ P3M>ղ']FxcmEr{"}5Dͥ9i΂9&*hUvAw :*=˩l'bId{=[.X,l2Ʈ54F_A-УeP*LO%$'#Ttu[뮑׈DΠ#k:=/"'˹Z` @VHUG^߫/hh?;V;nH*7C#^U J78XURkpt0fE 0b'4P,ʊhIr}"{q /lykU n*@)`89 D w;aץu+JGG! `2mYckfXQֶ`)C"xK%~j2wϛ"bOlrlteUq5@좵Rp`$Lr[N˥qC幔[#?2:ْd%]yAWUSeNRUuu? 0~9dw1frCx's9<8 3UwIesDPA;<I;Zb7bɗ]JFPYϏz4ZuLkz `+Bar)G(yN/PXt T@NB݃946.ݜR\PO.jNDo,iSBFtdcY*E<:`lM Q[Krh'9QjrKϸ~8J9b5 7ES cMsrTUg[|V~>B^NF07xdk@+i"\s=Flg' \hf=7TfXq z6t2 `܅1pk-*H 6Yi3fп*[!,wDd_F"8&_w\!؍|*:A&DHiw>}Euϊ(}!{VɳqDtFzeH1K&]kkNGtJUP!QdS>Ÿ_.a .~ )7p2(rx/gUZe5yx܍`C8n.M6A Y^ޢ_2 wLtx])R2.3h.CXA = ?ɜ(E`dvtZvO 9u~r/_@{/u4.\$A[rZ܍˚Q|F;>nɐ@z+[ j7Tbʐ Pv9/KmX5-oDywF̳uPտ<' wRFdlW?q^gQ?*J8kAܼG7EE²= <Ai| {1֐])]fewТ'=."b=+]ACؘ Z| l+Vg9f}7EGu!~MiϏПGM9`4_PCHxe! y 1f #cyi@(\i:@UkBqogTdA6[t[.IW1$B !m⦬k(uJEbU?/~J ߩlCVeAQ-!I5/WՎXH!z\4U iE?=__|ޅ%kP%!u_jRQ9]el5Q+0e۹Yyo_UgK<ۇvXdJvD ONN!ىo .fwیua| -+X&+/kE{FCš~lq=p*iFlO˰[|b:~Kxrs2;}$W[}psF 4x*z,}v3vl,X=X*@CQ4s7{jfP,LKC6x{dQ::^ (yue`"{fA`{% Zw/6Y 2%G+d8]A\w Y+=ػ$I.$؁#CU h1iJq{"m=pEK?̦n=u٥wiCFTE sxXsvT56zy@EC8OT8L=I@ܽry@A̞60AFEߘe\#+R]"|+9\~=UOfNvMv[i[̶Qd 5 c<8\n u;#1SHE+_De+/wҘ$nHx\(-DG5Ÿ3IȜ2RPnH7F`d% C[l1j۹Fi`[y[gv*)urtm?EţadSKgYknʺ?n n*"^u\KnuH=ηHbPkiP5Ѣ s?6Ln/:Wpg~7Ѫ;&We j ӉDu菏k5#p\%zGUK^Kd~|*SmU]9.j!kc@ȵ@SXRsIXN$!HɖXF\zU[RZYH|]J[*Jsxu}$uTVG Y}o(wQ,׷zM3 hT+Y_|)D HU=A]{kȏJ^ӽXO!xxpND!;RҎW pjDSWڽ} `osljǾ YSFdBʴw$>MV5-$Do2$@S(H55ni M L0ǎ=Kd~Ѧ a3qL/#%V\b[ԤC xӜ@5OW.SkMݫއK.`h< 2^@H {^jJPN"jMa;fңȏ +bCm2y4|-OOb#v69$(D?䡭&_BdA٨ 6AC ]3=Ci!v=a j"/C4}.ۖRF`g2/'NB*o40/AF8w!$܁UHW#1pOsm2I0M5VǨl2p B59K8eM ED[ _ + sd/H·5=c`Bw俾X6s視~+D(J$geG7]J +ALT(4oUiU%ZgV@i͂:CURD8M4jڍ5?16 x\!(P56vTN̥,{-n)j,\h]uB&bgIE> _=HjH* . jM,Ʀ2HMiIf)-9,c̅9 t~\44YR@_ӫ&RCktkMFͨcI(V~˃5XP:P4#(fa:i9INk~Kp=Y+tj?]{XB/& M'yUu19Suԏzd!{LC?dTYzΞ%3QJM*~VA`ǾAUDژƾjsġ7E@@c)7:"mŸ _y/MAjX[q@v?viO-"^7RF2g5~3=g-k?8μ_PdYղ@rgD E>@!?@xSDK5T=E@!*8qLp. d(!HuM y S~1!HsFTy!Z9U/ ׂjeVhvOamybp8&H_ֈu{xec:Z?ޢ3 (,~5>yIFXNah] l=pvFZd;DeVn6quOP]iŀAfY5?)O Ig~qPR+\=ehuۗNđ-̀ê,ٝ}(V:`wE5&5]1OQc4LtlTF5HwR_*b~})#_%SHFYвk<| Az*|2Lԣ:(mi)-y}=Ú-F׬0mwyh+j,h?@b{U~.7 [ck,1PFWUϠ ]\PYHzhf(س"ɛUE䧻tgőϨ./<]qbaIJTtUdN *A<x4evX͝i @tB8f^rpW~OW D$_IvYhZ[ީ``rXSՃ 8ϕbŽC7<| Z:`9JBSrmAId{oq77JqoЋbI1u(P Qև J;툜T"'#gF _~r۪F9<$eh0xIZ@E!ccC<66qe6dZIyuϮB qOڼ:{S$m4JĢh1H aPSXXf>0Z`p*GPLP@hG\2'=UljAB{ 0NGW69Z?e%%ex A=(:. =-6J0: . gFPށVU./[ڋ]gC&ul҃>*N8::lI]^|:;C0ǃi*Q?y.R~^=4'B]JOȣ qtЊ<8/[w~qwKiX7ɳˎ!hSvO'PY0xV OۊA+,cА\qqIV'e !~Tq>1oF᤬'"%u2! $ɷ$JǗv#!ް拽@t}vIW.Oߛ"tLiFL;Օt^E6o5ڄaͽJ@nf6}i(ZR}%{?^ELE:[#3m+&W]OoYyMKӅܲXtTRF4qkB>l w"Ϊ?yOuPb.%on_Lkdj>#0UÞ 5>#2uǩ~TZ?EV(r"YVW'@/=#=i?cov8`Je~M35Jzbޟ:0NJ0Tx?Ghq9%>/5\:J5dڂEo\q u'pU`gPGD[xg׊y48'ʑ25)dog3%Ut>'Kd/L>™sZ^nrH+n/A{'0en-nz >ѻ@?!F}S}zJt7!G&));SHekCEoH;UDKK&jOӳI[ZfVIJ0h 5ʎ%,,u"K=F(\Ҝ};Z WnoP4oj]U=C_f2 ^vhE ݄h`es ۷wF8uD* Vu)zD_S,.8c(9?3 5K @kaJR8)J*;Qy%i)3f%i 8Y>cY=ql kCicD<_ܜ~3MokVm֧+Odf^vs6,6H\zap3Ey&*Gsu 9FBo9.Z)ȠP c[h ۩Peޖ\8{R -Ye`"5?jf`QY! w2 Iʏ@&4ͅJI?)H䦝PJhT y=̜D}UN?,4 Iy]yl&+$_q6D\^X:/]8nf.J;.e5S{&=tk`]] )` TW'5ܦm܎T_H V6&JùR;s6XՂf7i+o`;OG0Vtַe۸VTy-}O13ğCm O}X"oK " x8m>;8u8eڴH9S71}9wm3NAȁ\e76zH!OmdM/Uj</ 52iIQ* Ilto ! zcRԏ/"L"gzx?DY6K1e9lH [ۮ53? iGRXEx/j>D#.#WVmh l1:d⭨RU@ Rs*avWGFEuoh[+o/?'Ի[vBi޾SXEFq+ u1PIX et:|ӯj%"{SRl=ۋJ AKN2)?z2W3HDS*TQ\; ^j N!0n @0\,*\JW|ajPrXmԇCݯt}+B]D.Xz6b8Kx^G 8=GqE(1P5ѸO q1O0h ^b6%| 6G"BOiє7;O/f$<\* Il}KPHA(>qxO830qjjwrYhO +>fBv< h !3OkV mc܅1\[̔,eÝ :x'daEU($`} wL;3rd' qu=F]JaNE0Q߳Vcz'(j\/#zw4y ~ì_V3QɀӤ}F# l6 -%b"4b)M(!6qyNL3p#ئa4Q pH/Ü $A|l=<=%79@e%͓OŌh4t/JGoB->Vz 7&^5qrA }%h ?1ޒ(Z⛯ n(Rfabޟ >l{?=NHϝګ7~7P@]_tY+L:YOz"RzF;eOM Y _^yJT}S4{Қ|.<,+aP=X#BGboٽFY=w#Tz~fpFkq3ȰH *Qޝ3H() aWՎb5؉͒l%暝Pk8DߙlV`hq| *ùtrIq߇ Ćcp̓? ||@E&E*4J3=8k:UYL.*-ڪN[f=rf|6Gf7PTDz=QRTܲq#4uP%U,sCsXz<\%ٹnK+2sty̻@7*xD/^v_,}ҡ7%\'м`s5,&GEcEmF?%mӌVqv@\Mޥ̚e|΄W#JnQ-+GJh -> d)ҫƭt? LbDTk d[گq!ktG k.^ibxW8/%MKNǵp#z|c0 $_U)Ve'rsRى'Dω9ȁnƊ2(5 ui2㜥SvhM5$ʹ͓R_M?Hw㓵m }< n ]M>݂Bc|Unl ^a$]Pye4 LCSl=ppqk?}`ZLQON xrrߢ$,P駰n f<ՙz#k? בg eqh8R78&Cf5U(dz+(ׯWΈI. t-39Ki-8X,BQFם6=춅+}&~ eM#I;mA73JPVCaoXs7pmmΜXrd2-2)'1 Y`W.>* 3P8FTfGQl`1J3uwk琭-YmO#ךH}'<.sS.]wr8ؑ Àǁ䤽/5CqFެk}ցB%AƆ6S1MEƝ48/_؍B#K,{~ K$U;zBC`3c|bptpJD2+70 ^o% X?\ɰ`iPTפ $[ QύQ bX ᐊ#Qg]t{#5+i]$wX܂Mޮқ1bdҡ~!AFkH06Anno[(g)kh02W^`r×aBDUm? 柧DxZ m@Wnbq@0C gaUR|kO5Hv; EևkJ8( Jv;EQO)T"%:1P\XʂkI`hWPH60g .:9fNIE. > NuCat.@}AqiWMO?"](]zArM2S,UNB,,dIl\ǂ҈aJ1lNjEq3 㾎";Зh;/Xˈ]Kqm MH>vYuы_=ҹ`a?/F_c >S}O97G 2M"tѪt`H>t5~.k6# -H[-[h(crS/kxElj8P55e6B7Yi02bM͋ #ѷK (-k5hnekR ξd6 ~ (zC8ƮYip0 o%ߑy.W;a,%BFyIFoX;d\3|k dJU߷œò=`f}Th6= ׋Zt)GM~ q5e?YPjKFTX].(g06_\+S5aNJYqiR<̿q1Rc!8BGMlY0zU> ]*_\N:x3!{ \р{Qy23uO*SA#S4(Ɉs)X>B,s ,mz񲏈:' \Vxms#Uϝ5]r(zhY`r(: 4] 0?%eA0Y ʬ~}lPоbͼ>5Y[+@b;W`tW (ލ"v*&c܍;\°Eck_LgeY qNV[ر&"eQ٣`aqyyZ)ҝg 4 rN]Mrs{`58-uo0 V¹wO{ f><=4J ^++exzkf"w\ϰ6,HW.P5i#\4C9:sJ 4CA$sFt `O9peӝZE*-B':?rlh[FlWmR=L}5F K@鿈ońne6{f#]rJpM@vb|L; Σm#{Ox )\1VѸ*`1߁u69PWhN-_"qeNd ntUdnO@ L&5't/5%{!AK)L?H7Fp^jiwAOj( Hq -͔afw"$0N X5`y7n1CpCꆲ7HޠdcK :S @O'4@JWRa uv-jw%ݏ{30i@ cJWyxq޵5R'$'S#E C\IJ]ʰ~{Nm\c2yEi% \3g38_~x$TĮ3(so{NG0"2zz 4ŎWlW$[fa.< a e\YمCOJ"$aVFVޗ@Q E.i!J\%;?'L-_-Qh@`pQYu^ FMLiN'}$3QH{,f_` 4bzONbAUZrBpB;n"̢^ǹ!S w/?t;Oiȋ"}Y%}ymSjxZ ʼn:9 :ftŷx0ʬg>/Gw0N1T T I' qfkjK07oG ڍa+EBhc)s%d Zs9&4T/ۊY ѯ5m3SB@2&3w7SO3o$򒺥/1󝋋D|{w%8pz$.f&ظ4l#/UȒ\nވ`G/ b!8X+-n`{x")Lsڟrg/lr0Р-!xy{HOa9xwFGVBwl(l`t2^{X)GA½苈WS Y=Vp2kRdquϙ*A - xBz2_xyӝ=ZR6apetD_PE l>Fb {E|viV<@J|? rM]@DWWt+(0$O2Hy ă MJÆMo` %qsKJ._wNTͺuJT&ڹ#Gh{Γ4˧jR+ $8$9@no㋊A> =YEsdbc2rx仚0TFN``LKO:&_ rqj႖|;o@0pۨ+S5aG< 9W-- ԅ'C1?FZ8y@֣iE0hjk#D1,_)1x`|tmLw6u2TG^Tн \9W3aВ ~->3ө(xu,닍f6Rpi~a<] ^,وUuگ(l5W\Ls50cM<CԻB8ulbۚ@2^-\m7JܤQ8bS.$lxF)=/=盍 "VW?z91xVnb mEuO(hk?/ش4x02RXBΨޔI.oMR]:s:)-#{ʣGv!O9%6/.]?^rkydxKAhtPK d^tZ\ead`ƥ؇NadJEfԇRk}-SPyre-[V oD\gWPr)K:DUłBm\tYW fT<:0vXmBZ6uLEG1*RdSQ` D?@."N }F "ŜÚSjkʥ]kd1;xkOqwϼů!jGl^]G0꘲y<y\'sv6hcQ]N1"s?=F6 rǦ1saN\.V}F9 ~:n]5\v| :Ckir  `첡JA@PT}ٷO&R 7['e?%j 2btf-OQY&ӱ.|m+GوE%Z9^ w9*MVحUPb*EX}oI7iبwJϝMcC\8.+\vđ%h6Y_ȣ ˤQë@tW&j$ꋴQI@,dA]kmqPN g^H*D@wGOIf˕+tO=!-2r3.~#d<9eTonSq4=:7߈I\M?.{4[CeuOy.'Gpf8B~\&{Z´#Z3l zuRœdjoh|~@kaWQJ5l2#;bݍpH_vG~>C>ϦHb1+nwqA} } n (7LR02MЁxr8@b]̲K $HR؉gl E!:凵zns[:^ה&w#lY2ʫw1g3&)]+:pO:M6ݾm ⡒_~4^+8~B 'PTb|n>YAhBIuD|Ѹh )135EA ^@8ԁ1:շ4ך B\ &ר'=dZJHi*";s}P!?Jp7tjjS*ߦDŽ,D*sW0|1y֨WHr1Gُ-b"l[ wcLڈ'g±Oxu#mMS8zH"AlF]7"c|ݴd ]ܘv$gv?!^zfՇusC.Ca, ͞) ^j2Z+˭L}҉XZOw/ _=웿/FXH|kS(k#f ' tBUBF&j*-oq : ~S! xŁMґMoq g?@.Ьݍ p3?3; O:%Oyvy5rAWO"ol XT3's&L+_ aɽ龲xOo0>=MlEDul$hdÔЃuEz8ν..% 9 ؼ\W~-naA xHSOcH[<7U8wu 'z\SC$t^NWv1NxRSPȋ[%)Xp \&DUȡ6#Ysȩ{/fwA{[8"5h7⣤,-tԛ\%J(Ӡ#x_5/t;qjXea@9eCD%9D'|HOj*>],W>Q>2@-XUP   Ap-@`j P%\-̡e0›%LvOwTFo 绨Q5f?Zm~bnfF:N/կpÃ%KBvazj]"\ՌENԟ on?̰liXδl$b u@WȘ7&P੧lE\0 sh7FOavI\3b-)frhXqD9̺=/HF7>A<򘈓q (8F,ga2Gt"<F= jSeHGXݭZEN e]n7PUfĤ`AA}.D@z{3g10ћACr\l R rUqxYHޝgq ;~gp"43x\k =T&Ue@7L@~B fS iy6v972T ДeBgVXĹuICx(C,DFQ2w.kgWjK"#;LKA(rT /F{-l\ߏ%8bnپɦu-@?~V%턪ۆшT7Ơhګٸcփlj|ٶA֜#?xcK3&Дʾyr1bhiteANI׀OLlf|TYIzb ?#( @ 9f6Y7ǖl^waEQ.3.n .k֓(h3Q5JВtaMG(_VB4`COq`իRKgը}iVJH.Bܟel-Ӻ H8`O^3h 'lK~K.ɯ&@0\xm oC8W2Ҫcxހ@\jOj8#7 `}Tpbm)Αy$!Rq4#>ᅲu˪og,}d+u.;e|3N~? 蘶>ҿI6"M|kH_ hkKgDzX jSЕ,Jj\-sDRAJm4 ъx◰;t[{PIvty PZatq:)N=d빗?^ z|&I_DSE^ܧdeE틢> #Xw 3U͓ UM+JDA!U{p) }}0-Aex3#œe>YWkoάi[~xc>ihe6hCT-Cj9'{z 1?3fMzpކrA'tDE<{ 1g=Cvp|72R7NBrԖ) 0 :YUR*ͅى c݄F|iOV j=ĝQF,zoٴ,7'a7)AgC4c0LBGF(:/;^!ӟZKXPRg,:Bۗ"F kuFs {pT@kafb}r~.W06R"q*ғy7ʎY xH[$4OFB~Ho{{,@7A7oZPAA")En lnNۂ}l&q˜1TD]ڰhMV g[<7[QC]g3Ffy\@[ \(FU?W(%8q q;7Jnsn,F,UZòE8:6Pϸ6JP<.»}E r&Qr&|TVdA7CN2wpϒaf!lI#bp 0<[>հ  8շLYs&yLL+_6͝ak3# P], @q z4> ߷IJ PRٟQ*#jfPAndoH\{K13%^V͍J#QJK a96ƧOj= Ggk 3҅ڽU6$=1kC*Fu?Il-G]ec߸_S\R!}8OfS[eH Tm5y[X'n.a|kqۍd|`j #91.I[ 0'qWT u>kx]7P% OBx,t|ݯEsv7[/-](Ro=M<_8=^%q>WQAR/?4d@XLJM\arOQomI3: #^ePҶayOŖ͍9 x'E5 s_;[N:i+ ]PGVM j9:Q` t.|eUv=X żlb9,{6{kDιyHE10[OL:7q4P:/)v7:Fuvݜ™eB£hcaL n3gaزٳκꫵPՠr&1EfYl7Oi~&0+ mWp:AwVM6A2R 70mŽxu,̏Ex7jsSYIz8gEqU' {YPDhXӚ!M@c-\u)UӕR~r/'|9>dba@]YP>= saWΆ3ڐ uwݥ>x[pѿ@ MumOKq7bLCHf{S3"RYō~ZZ$He5M:xu Ju^05,y>D[<E~ō]K,˚)(He2z)a2I]'suy(bRg"H0&=s2[fI%:O\y,8rcX9u5vw5-»TBo.R|b2ly"}V 2S!A\1F ηOߊ4i]C3 q)o0"tx܀ti!~ BISE"v\J!x?ؕ{_3t 9k$j#=ou шbP$^%,Y̋`jLqv1MŸ>11v~&Z6`#/fA ^oIWbqV:l׸U?ic~MC!k+!o㇔΍mw'1ߺ#_9$u.pe8m: Kuw&c ۦ*zUTD$~{|^0`i`!V/)ӧ ,AO My L%b+NJx^6&P]7CNv1`7)LQ" /FB,R=Hg\0U!KO*&sǻFQrw"Cael|Jujkf?u&7W7ko%PkftsyJ^ujTzZ#̣& ^M\6 1bq$KkӾ3a`ZL,58 Gz!jZF\B(\E $gE{k=N{;??~!,8ZlR Ӭ2MfD 0b~#Ȏ_nLzwVy)l#Fo?2՝¦# +@cpՐItXCFIdZQR"h&e",:UM@IXԮ](:lJ(+TD"E٦b J2nvx7c,%R~t?k&smO @FCj*TzJ*iRmK"Q'옞ږd)XҳوEuzT7nhP1z !7etu<ơ8O݉R)v37Dqkp,=A:5^͕T]3hF1lS)F'o(dc* |1mr|v, ./s"QQT cx_;Vt9qlSh ȭP|p؟!HM;AN}13izȕ43VD )q%u3xLҍl#?N"*~v\t*U/w LT$G$=3 ^7Uuy{3_hC{1b[ %z˂I3,.M=LuTPpbW<҄@aF_%H];`|W@ek5I0pU&r;י=<&\| 뚘2oH36/գc л͇)tMH@;99w AmA7~nD+FUn%ͿQA=+(*椛}Fۇr\|TfW96KBVz}@[?@7]q&sN2E8(GuG t#W~{3vVCsYs۔( A9"`_6eu'zm.,w"ÛEfTlj7?>L@Hͷԙ08 x2i4pBfdJO& ߁suBҗY<c&RџYknm׳*eWBJ3YWpX6njMe.*>/f[ v6.X,7X}Ǥc/Jάnά†'1re+gfF*숓u-IȴuiwhMk`^Piw9L9ad]9<4RyHɴľ2@%*%OI@u[Jp.A!Cy$CV H1,4n>hE%P@Ȃ_QYRT,=pi04RVD "'h$Kb蝝.{T[~ +m5E]h$Rj U v9{)~|5BA8QVl }Xm]4]F5y7[\ dAx5B-T3AHQ\0 z!xഽm8QJxѪRgNBwY'(бWu fͱ}L >oߜS0+y*.[՞CL[$HXdOZf"F`",fvXEq5#X*=ofAWtac%i!Ƒ,ot%Z'LSM˾lXzZQiI@G587u/ a==Jvϛ00 FV[ 6TN-"t [t#`thߣBO)@g"XHZHuǥ3XOUCoo숦Ẁ0tHQLY-q9]kr84~Kv.n N/%n, # cf.Rn-v}6Æo]yd>'YT2&!;tÐdZzM܌Y`G AAOKƂ%Oqn'O1ao1@ԓ)NW&@WBJۣ<'ga%ĸlQYxhN]Ӆ*D6Sbv7]8c}HrΉGBSޮ x:eR6x/^ސLdý5%{ND\ݲnЩXV #6z@BnS=5@U}АȐvR(KDg2Suq:e/z{E )~-RCj;yK ΋LQ1{\)m" _MV7L1!ǐeGʔ2HaWDڗk`R~ )g^A QM?h8-O8xWi~/ޤoFgjPrDc)R }5U?6Mj|;2-M4KeG*X_*e-K!i5ٛHrM9ӍdvW].שMU0V8R1}Y"韑V(8/Y@נ 1gd>@e7>i}θ-%A3уhA?2Dp檞Ek=hXcncThSHfd6OI;F좭Xioۊ D‹znPtyeC2ZA - J&l3F @Z&6I }P~Qi ELlcأXile Z.*Tt$vn0ҦH@1 X6xhh&P>3iٕgVE0{p菟cI_z!"x=5:ѵB JS^w<0Lý}6/a.â?r R Ĥ .:dCqҫavs ;(+)\rIw;7Qc[$.bt}z"?@6z8T਀OAI)@L0AJĹ隠؉RPX8C68!0;-1xB]0 V^<"In}vRU[3E@ q Kft=^:qx'7vBb`6pcdJ\kBq-茵튒5F@Iׇݫ{bN48"Я @[ڸiv덽āIP;[  %g Q8H3e(aC^۰B "Vvվɳ Ց F}4dz%r !nqV\T!nlfR \'ՠI!j5T;qiaҿ~ZIcq(?$E~xn& fÙp=i^rGK[8mMY;/x3wٮ[j]`2>x&j8 krKw2svW 6B-Mť/Lg::'A Lp6EB]h;aq=E@+G(7sۄH{*U_!q!4i7w6iaSSUjl iД _< |rjL˳Ϝ` ])y6џ$Oq52"~sH eZ_Jh-/3\)|F$5b%V[坙O@;"kJSR}$∲l-t P U)̏Fzp\' XĈU2 .ޠm5"dK>BqKEezvVJwOj6\h =^d9TM?R,ab/HY8ifh"@{Ear 5,T[ fXĕ, ~b&r!54 l}-Xs$ksCB踏tOu1tb4RM9ZjZ UGM X/M^!iwH`2:$Th*O4+K7i!5O"[ D\΃ 02\s΋UXc|aP&E > s^${~B'*# m9_Jh V1aW4Ej̨ϤPLp["Ne+dz !ꭄ= vH7M TE#jYѽm0jޙQM;ep!AۺkWhx i bjhWrE`J{ۮd},$]"yAs?jG-lM䤅j}4+2NuC=S12`z`${9>spk08<{4pjVVOPއܸݎ} c&,jȥ a|-3Ӽ]<ӇyG@@ =3rCk¥gZk'!dYI~5R`xQ_3Tr`>X@_RN BE}0,Z`Alu ;3>FD Cq[bAYtߗ\^<6{&:H}.B b֨/[#}C't9|2y!UNɯVPaz]{?1_&z(:_*b;O y1=)FX^Oo(l%쮾!,4?1}a\Q}nlzCڲ̹ P4+亸gn~=+3K>|2]{ԍ`Dvm_[mor]p4=ѫ,Qbt9eRʁ.6Oٵe7b9`="菚 @Be]Й4Q${#s ~PٌMj߀;~?H/"C!ѥ̞8x'Jv16}䅇ƅh=?\>7Ѣ1{50.R20T64! h ?J.GѤ] Ŷ=pTpc {;y 4в.`="{ yU[rbBc_)<4%ؗ^aV|$ԅ36CtZaN2Dxۻffp˞^"#b6uC˝'J)a­n̽?]%GH{Y8[m;ND T;1#e9աF" KeA.) a415QO>=એ4}: NœqG$W=+!_v9YA$RxF;OO3ቒD3d<,LY׳z`1C4hҵk=$P0ygvd0UGwLp]`4m8:c|GhoމȮJ?^l'&eb^:-I)$WuV>pcJn1d|sC"#p"Ө4si8(_pL [u1Գ59MSfd:f K>8r/k -qJ-'֚)jydJSEAOo8 17jg2eGG /:Z^́37&C~ 1 w-O>aE2t'p0umhI/dǭ|bFP^^at_MŝrgI 9i Ai}#lC!G>rraSΝeosK/UI9PY{Iy{42_(W};YKDt9w*8q Ew"Yhe9"~d=PG(=wjןyx +?$`+\-;oO'\9!o39e;z !.IԔȚ, ̂\D> fblˬQdjsS<(͠:*8-gu/Qڴ]+C?'#M|i,J>=\%CXZzR;5cuxVfù֥:ϫ&ͤ˸;HUVw] RхyLO1OKof'5QFx) DRs˾]þ4RLk;oGw>IxXw: m."._DT7N $bK=#VOoEK,gp׫%9> ukt~zMiO?*qO{`;TܘF\+BV\ܴd ۡ" >Āy~؝>eo *vmP^eE`;XkRs*rQ{ӢK~L{;bw?kV^Z$WsL d fp}g 'Qyr4M{82 Knfi*<օEBTX}>u03G"vHރk֣&-YdFKg B|!-b$[@adx:Xƾ .l x]=I`CZ=[>*t2F0e2PME>(˦dcL94Q- ܜnߒ2"ϑc/7s7GH5ܞ JLF0dSp~4ks.S ƒFU:,5YGZ_>XDVϼ.:i,t -Pݨ aF[~dAø GczYnuQ0f˄.3(gR- >ߝFE5Ǟ ob0 l;օG,NVA`i즩_?,15mx9D3:!PN7d/b/$xH1,3%{NeUR^Б#ߌy(ٝ];stPVsnD.GgFsF{S,zc њ[LգD4p4 ͥa_Z"ۏR3 T]Ϥ`WthtÁx4(clcc*9&+`GO ??l-5px][I >Ism{;c\%5b0}5|3d{,Pti~N O]s鼾a&ܼ[vh~۲nCNسX !L 2g3XC{{\i[{R"LnҜWLm{P}+ٲsj(܋/jҩx@X]Ej7fdQ,ua% O"X׌V2~`#lUQŹ:D{^&qGqɱ۝ꨘ[TG=ഷo !:9&c7=SifD-"_iKR=XA575('fHdFV&iH\\k)#f4֙=l|!$aA!tRДh yzќ@P Z! =DT-H.gQl +big_96nUVz)RB89G`݄7 r6-*T$է.W .|c6+MeBkJhg C8WqS*lԙȅ@KXiHs2'!X8d" Qo}ن`B,-YngDjX:}h Q^Is{*[6V=9,yhx(cؓS|@%пy&[rp_be<!u.*K#L7>&Ū( |OZ#eHUb|W&_jY'hLDTr@e1H_aA9Z+Yě67n&?ZUwFtG^)c~Kd`L[WV+qXXvٰUk,XBUJҪGf8ٟFhaЌcAE(㰲&duhH 6W$k)K~w S1hqP>1?L$Ƥ" KrszJ T8[-9 z`z qA4 XH2~j+қzܑϻ'+.GDױ%f*@e֌"[kN\oBxxNXB1 %7?\Cnۧ#C./(͗pАAL \ݸh9 S>'ƼEYCIHĽS~"]ͬp?HN@TOl~4WisN Լm :>lڇAVZisG`% " UׂHDstG Z]n֕ >vp:]%&3B/)?Offl{Xз,yD5ll"ab͑k617>-pdO=OM oScq0Lq$Zrzd| *l&QQq _ge9Ė'#i옍LqVrgk[%e+8,{fgKO1#Q%f ϻY yʙaO+|/,/H2ti(pq @AC{.Dg:GMV_T.iJ+InA0n#Px]n݌)|[-6C_Ľun^M^YNq o̳N-/cgBE/(@_g?e~Y0z$a* /qC bƷjxuεba۩Zݠɏ@JvKX#o> g (P#2=,ގSu\bkƐᔷ9WT^j"97;)<*\B|PBC*BUVMKO*U0jX5Agyy ]Mo>as%쥛/U! J|~Bt֯=5\uG,2@ڪ$;DXK}5I 6G>p.tӿa?rZ'j ړm%RN V1@ǘw^S#S,L--%eTKkp#'n(w*oUm-g4Yrzt]zl5,0(ZpV)D9 (>&+ 5h-gэTʴk2 fcAH]vXCFtGYGq̟73h#_|>(@PZPNtS﫢f <Nu w5F ^7D^_WwG| &GDt@zWHjto}h>V40WcM-$HS&dt)ǍYGYk= M} Ոd=u4_\g͞Vk-ME'vf` MGh::J %oUC<܂8]jcO3- 9]<.Ϛarzɯ6R'NbTf+Os}̲ǜQr„krFT*n%.\E̿@Gd-m=/w>! =׉+$&Dծ7Sq@]Jxv^9B* Lpρ,ڿ{rPY=8j;#k3 ul(e]?];zF+8 Rz.~qc^Ox]mY99388l|| #s m|nQ+>eEK:w Llo5k'lcHL6]L(Iw23͛=wNUGK]P/lCMZ N"hY]fH_`ʅFTЎ"$(Mэt6*eCsJC`v;8"G: Ͱ|72N2/zU:KἾT8FDz6J}'nbp?r,3EEޗUH'⫕hCT7tB*<6D侑.^=q.Z\-)[&^b\8S8Ol/E̐-`DTZ.>ab/͏VMN&RN~\0?㜦c͕;nG1DEͰSb0(2:Oj#^cڜ9z1!=BB?ZU~I%KЮ|:Rܿxl0`gE|E10TzEtʜz9Qf_q1fB+IuBo0j,y/5}1tV Du:J=ڈ֝2y{8W1076蹖 .iϓgU?$@3*}溺9;:7PSYbF DY-өŻrJ րѫN%ڭʧw8]ر|)a8&{k8M` fɰk<w3n-"(bx8ph>=Rի#ֲct@P2C+E"6d ` "+=$|wF( ͗5u0lTwIPДQޑ uU[wwt}>M TM䖯lHbxУHB҃F{ `"L{ڿ+uZġ,ɛVO3'RXVuih7=c awr#/%҅ ~r@^kB[Nƫ:F0ʣ+JH ,8X.{,7qeQoYd3)z[xP33euy8/ hC4 R ip]Ia51 x}UK%p 4އMZ^q\+gFdd*tKz _vNL1;"ҧgi2fqe/`[B펖uzLS9a'cm7$nEo erxYC-Y(r ߓ ,0o~kghT7E3[w˱O M B ImĐ*_ÈsfG-zf WTQbx6Ofm$$ׄ\W1WIe9Pnvԑ UdQlek|qv)svRjV2- 3ez_A5`Δcw#_5P ~p.^u#K$$hϊϑat ýCM}U:7(/%#;R82V^p "l^ ׾>ϑJŘlirbffj@_jC~l>l^ ;jE+s{EiSyV&ht}Ĉ)R=@PG{/xvRP ܯIhl9}>djC3vߦJ}b>8" @mp bw=2Ѿ?+')',ӪEq;ZqfH]g5ud"BLGAFOGx q%dc𛖐 kW[IYϚMݬ6wq̧6+hxuQol.9IFݨ#Z+̥Ztg9 h"oU0_9:Fv!~nnD zXyG\AH$E':Ӛ*}HG%!p)Kh$a1 6wo?mUlci SQ%~= ?P@NrՖm)f@}Aͻ ? 2^OF6bֵ˞g7|cC"p0ʈf^I$յ0qH)Ǚ0GSfzYEs_ɪ ";On[[L6xψB\Nq ss6` ,t:4bݸ)N*J#?Ίn<6. &H9Οp_'f 3USq.o3Mxf&mY]w%}]m:X ZDEVATl!(:QDz#:.Vރ5ް#T|yӌ*EUXwQun=]|JU-M,.L܅s_F/Lګ QSdKɧ.HVԊ 1fHG嗧a}6OÎgAGh/p̭$O^R$j AzM^°x]"Do< ˏGΰчoB&jI!~0v;Ej&_1Tqj.@9O(BXZQRsD̲_EW8ȧ=TP 7pF#1hצ{^VYߒ!]c_㘴A#_/ 5n*I7ʊP` W5]`GdVARaыk\s.2שqv#,K0I)aLF^mƆ1u8YnN[M'%is#\r(f_̟ѻObHY6[8zgx ;CCAh"#5tGj) ꟻ%Jmpu^2؋ÀK h%}ܦ 5}I,cD-E!LTR/+`k>(;U$nJ3dTa@l)eg e,Ϯ!s娣j[9 cj-*Nkg[/ӰF;Q5Jb@Mv m_F0 AsFwZu>L-kT'!DY[ <`n4m3i Tפ_8 #S*.C6 9.ln|͐7#həCc9I[J٘ZzmnSPZ586_rΆB0Ed'Ónrc#騘bt"Hw ڵ)+3'9x ~=n!Ѹ]KM]8\̅;zFe R2ӳxjgpik^\Rn׫)=4>4a1ǯxVa/i;k_ldmU I|BMS%K`҄M!LNK#.5b*Zz[%;`Jr V9DRv!0;y%㉚jqdUЀl#O SL4v`Öd2RPB8}P҈WudSPO`mϑ.rOS,Ca 2u2/Wfz;;Үrc o6NuW흎Љ5ec%  u&t|9%~ߨ0HuW*k^.yjmHt0*"UO]ˆßDc}bWurb##*3úu>hǪlX^OkPQy `okԓjGBvCZ)>z7[\Ҋ,VTk̢ &F!^~Xo`g&ǮUdD ~J7Kp;]8Kީc/BU"j`ixBN 8js,D: Sf] !uQ)}-耦tV9prɵ W0%w4ܘᛡܠ=3 /K8]q9ǭ5h数B@Ɔ1S-7=g#IM0TJZY C0ZԞqBA5ΐSiuoW7RZ‹~-[,%9AlSzm2D|?9/P %;|DV>5Tl>e=D-1}zNrdL˘p0˺UlG'%1s3q={kX=9/sc$/X̵Eۿl*' Իcw`bHhзK/XVyF[^S'?כ]]db^I> /\ KnN+)$9r$tY+LZx9$[ȼ`^s?W&qT+Mw9 -"/p?t.0{6''OZx\AKjl{(*{mM~V]ܾj$eh/A_,f ﻊ}AQwaIP%aXS&P 3NB/@9ެ\ \-j*~5ȶ$oERat mQoDrUyd͗OїԖt/&ɿ=eNU" >a_k9'pH/?O]2EWXj`%vjKf?[ OraG(ڃ~fDG.!85~)$],ZS0DscS2}|6|}4jx\@粲eArWm_y9"%*v'"AzzD=9J2rѼ~íj%pUS#YX:Q1Y_~`-g}ޚLE&{ ),N ۣΣű$dkt~cŶ} /w>7"U^ G<.@"=VY֢n(4*_Sl!vg6DehК cc!L\ &D]FXv^09m 6R^ލW7z2"M2YxP8 eV)26:q_=ŕ5R[|M vnH_Uڌհwaػ;S-+=KsP42#"6{muOhAT;(Hq"*ۣka\ky T{my'~dC^%X; 6wEs7IO<,9(c" E Qd,4niK b hfs&c0@ӫI4NximGp&8\]95B^ٙho%Bxb>ض"Ac/zBdY̩ F'` {//XmU;PN"B\06# Keh"kخŘ6Ps+\KP࿪{FrS8T'5iڰd>`uYdڬQt06ʮIaFю -ÑwsmԑbДe}WmӢbvfq'^$⩓WB008 bɽǬB~ݩxY 6(^(7W/7Wg Mq˱5KTL7G8-"&k.!KaG&'8V ^W$"%XX!ځ_ K0Rse *jiyt=oEV T48a/$~|wNҗnM Y/Zv .!呙p+)/?f.zUz 9j@ e.x*]hzUJԠc,T R4pTr+Wܴ3gJϼC<#f̵<֔x )4U}[lez8T:V'DV>lw>~Җ4 2N3sW>9 G|HRټrdn<cLv1-E&`"_UgY͔#*͔)8SJk3 u7HPTvJUϘϠADTTJlVӤEɸVV8ֆrND[]LB-uvI#Akk@]ணK鱓3^(ۭgWAL̷.R7M_ddR4 E4C33B:+C2+PʅSØ4>\ ]IX&N{z74L +{qf|T?PP:OwgZzli1m5[5B\N=rTAUK18(u%v=Y=jئgz_Z%%gA#G$,P2%GwhJA" `n׽ -{Upل s7xg`ʐ!B 0@bDaܛ> w_Qzސ_2&ZSؕiWf BdgΫ^!4lZ(p;8IdOd&9Ȱe6q=o;‚uY2a,Z}xע @iq7AҟN?lc#_eKUQpѳxlW]ǵUy0EyP>AZ@ĨNUOuݡ)FxPh`$-WLǤeTh܏k^(gqYΪ 4{^8m"kqJJB{3SM&"kJ6vBF'V)7t(D6jC/*Ӟ.eQ1s|.қ!]38w:^ݍ:J,cWU>V1oD䠔n};-YpaN/f;BO!j:#ial1Olc cZK.e;RoY1zH`fW2Z=Y-Xn_0 @0 V%GLuFX⬂ŊT`!K[Q\]+ /ء$?zimī^ro\dE<,)tt!Е#JA8b߆v$-PGv}8r/sm]9!e)N%9ͩ4bx͟s?u/)> z#T23Y^Hs:e$]v "5HH(qSv$': oWikd\T^@V#mUuoc9!Y޳=* 6`%uy" hW-aVȣ.<$~5k2%d^v ٷ9JWɁ rS$(17bV AZ[0OLk8*N ^%ǵ*AFqa"4K\YēOs@aLJ4n@ JQ+mF U~{pb첱.7V rN\c$#sBHV/_ډb<鄤X'wXdDx;?bϘ[WV|m~"ҬBcvw~e NBn]%r΄=b$~SVc Biacsr%ckQVz 0TI >1z [[5*?pN/h HǫL ?KamT }9!V&rwNRrZh ¶*_?؂[̗"z?clBǬyP 80 oáeWy7Te&+n̢'BU,!fE{_< kq/~pG,]H/1IdH7]}ONGnjϝ GaF!'O_Aުu \-|;'v: 8rz‚cf?ٜ?7w-ióowgA&Wr`AU |Þ:h xzbpc3s~`VWeiਵ-CNqbg#[oVlOœ5\OoS}Z7A3zyY@dI>*ɲ:ZmY,K,d$rcjS~|f>ANXH9LLYl7) V'~݋,Oכm!ntw.]W!^REcѬ>G4-QNjQXmPg!K7gEb[_f@=XFwj {OS,5zenZ}M'.辸cBc C*Y?Ӻ:"鹶f)-ombquU4?lYLo9%NgJjd{{wT=fZM~&@4̛a?!:?@M%]xQ-¤GXg;k,R03WSeĊVvП~Z +ԝ)7l1 uixί?@9P&vaAωTs`U8L4uUR`Iv~ƸĶkO"CU$V4[HwPMY(T P_µ_UgFͤ4`< 5BwhPk f -k_85`F{<(k] iD%Wcoҋ]TbTopIJT*W!+l+mvC:Uo4<3*!g-|3dI\#i1i \>JOs2 ft9"y5]a >}crKPav;es<2K 8~vdp=,Mi0YْwD&1'oToH+̷7(k:[`Uur Q?@)`Ȯ)HHN7QleMHkw*Q<,eϘ M fVYm -XWpvIo?bԕ0Y+AյfԜu -u̝-̸e 3uKaqwbVt4aP6[$3ff}8;Ur׿&tkݻ_ilEveFYX"ԆMXT! ! =w/K(|Wx1CTFړ{uq' 3yP.nW{fQ{RB#-X݅EI0n p2@NDDIma"7'pQx 6ۛ<)Hدtf h׍xP``IP;1?| ͑mO(p,utyEfx|'cs4t+OL8G04#MF)(KAUp[n nA)tW>#G]ڭG_>oƛc̷HQ5/xl$}&ٜgbrP`©mY 9wA`pf 8N=gF?s96&3x5?f67E*$cCMd0yG1@LD~̝9"vܤɎ.~5+c9*wD0v}B"pیVivŪc J5R[ P)*Xg+q dM IRg1$q 좖6iM űK_?`ֽ:VI%R6)gM욓oG/YpﲠGGlK0Y[v|.lHz_$L T:U"@!ݭ$ } A"m\+NCx+5+ Gs,)du^ll&x?W l{Ѳ*TB#?tj3)T:jqCb@Y:J'+eh}",>o/bXT=/0OM j J%qtn§kZfWഴԛ@Е2i2ڑ@#֛} g W, x$sA&x2)M.ȱSlndTjLvd0,m:(Hq`YcASDzYMFIE ePNTR2eɘWE}A{:, mVb,wy6~`W4Ɵ*@פfw>qͻɳfΨ]`n^xtCI<1L W?N[#lwF? Ō1+uzol@=W !l=|[ϛde6P^wb .Q Ј|b­IksaTAvMWIW*aؾ1>~BY(Im uh}e _q~ _JKpA\Ԙ!;L-/c(2Nk;2T\@5emi6AD8z-$]᮪瀏Ȇ c2ބBA~Êk\Br7 쾼;"`9 N#86sq+ЖeP]{K\0]^÷VZ%)5LiU~d 'uj ә%oҜHfLZs= e B0.*5)U8Ajpٷ]tt^igaP08 h+ W~XWi \{Ut7AH!tݟcysor>py(Ɏ:$|hiENV)Lދ0iyl@*'Nca$ɗӕb%kI[vȠuD'%3.^eˉjA"~vJ@H@Y'tt$Њ \I3 $, uQ;FTKJj(5bzcbGA2uO΀r3f% x %O缽0}Xn!`tu|eBFpϱ-;Jb4"ya謖4"eRI/ijHSl9 m&Ipi[4-|Ew?R(ؖȩs2?AFA"0/^^fY>*lP˖谢OV\( p m ڨuNM=X,T?Dot$)rs|!]==Tfx"MfʗK2a4Zq' *P N$д߀'=QN%N$Wa(˩9Scf# !vA{ś뚡i-lRK+\d!SG+>| jcIPB H9: +sy)G:l5:gtpd fw-${JcC-*Jum|oNLF8bJ"Eޝw'I(IUk؆}vUp($[_V+Fq;(1Ҭ;V36>/*'A֩Fu2swI~$'vMsHҎ7 p'K?.GA$b(o\-މўa- ;}PLجmVKjg%ct7{t9<6ONHq1O.S(Ɉ>G6V|yĻ1fde"F4 :h|φR9q~k`W @;゜ט~ms1DCLTZ>Qj>^Z (\LN%"_UcӠlRcxi <x2:3fhbg^NJ3 t} ho2e{gHK$NWޤφ3z#[Z{@KOSKe  e|0K_nۈѸp֮'.! R6b:hEO?S S uᨂ/f"x,7|txykh&`G)(.G4 Yy!O&[&4q)_,{v£DN 0L"""8؂H%bn -EB &Bخkz`S2FY"u4B,Av6sܕ&t?_t?k4lg5d֑uHLG=@ "QArSaGM+с[[aAocJ~s;%o/y1ߔjT`=4B3Ts1W _7WeQ@K-@ۢ{ B< aɼ7FKJY»QBRyН wIvz)"-:pzIw/uak=I3-gZ+ V|a?9#ޕ=hLryXa?_("Kw4Knț, d)8l Q6ʘܜQW-S61KJZAP+ =hl=kAXײ12bzȈE/{v 9L7yh>Ku|^?I>@zM6`53`XF]q\Dt8:uadڛї^} >`_tq㧾SfhdJbv#,@30h&ԯN繫v&p*Hl% Xoz& Gp%+UY}tzMWrB#KX3;[Divb:/kƟۤ|bK8 p7J$1 }S'|t!G1H-6ErZ-3lpb"aD;GL *;4[îSY07tS?ykܛߴ^Au,<[5x-vVk.hn{;VjZ5dX@L&LM;^|t a@-/O\@EZ41%F\[8#ŢuLE@Խ>zUM=\Cl[}S=׀n!%#*t†\]8hOMLSw?b+'3A(50 ,7\t%|4`lɷYJ;y:5+^!=ن=jR_2X idlyHw~eYsRDP'oTRXۥ~=ZhMzI&+ hhvfЏ[6p,b3WIMY. S mW,,PmY9\9~CM/A - &`YG.چ88SB{.6ƅWUh?^Y䧌mhSjLEl +v4W; 4~(.XsY*7eQx<6A qz#ۿ rv]uc,P}ԋT.\Cׇ!%|wy*`&` OX9@+^qZO o @7+ҹ t!aƦJ{%!뺑. *æiFPh\ E!F{njC.M8%}SsΧhߪ|Hb1xX=p%]P@vaePGiD'b-ՖWܲ+_ߤx̣Itj.vca#ƾ_e{;:YΝ?庐;yuM~:4kn'ӽI'%#[72\뽌0$sX,BɰJԁJC3 6(!g*glrP ^ T`{31 Ep* Ut屪CLȮd);) YQ2ΊD=2R2Q,gד "k:~Ǩ:c51|UwphUnjU[p,rwLY'<dk[G? 5\I%zkxRFze@MKXBt =v6YT8&!}3CṰύ+V]B5rT$rNvw#{q$+S!ׅc}ap6:! VD{kE8JH|,P]Lh.5O5<*h+U<|b#2Z'!o۪`zYBik r=8+|W{,igަ*bhlW|%`6{+‹y! ao#;QO/;6\Zzc2g qIj)=JRk%9!r/V&8 Mjf5_<5*; |# Eb햨):U糍x b͛3gq w?SCЛBL}9BN];.Z+m\/X;F\;9.§}j+a.n.uf 2SP YMN:]kC*܌SA}Djzpbg(dI<>*eCn.aπ"#}E wZ^+`Lp,Ba[oH˗uFseoV6SC$p@sq&nLg-<,g>:).7`&(G'^acQEL7Pn077W{-~c>㲇ًLvs]NR06G )C (,Kq6|ʚklm>Q!`089S@.xZ>̗+Yu59 ,ן-À1+gqMK3n.N_XpⰍ/ 3FZM5PL:ޚ7 Ko)xD/Z{GxH#Yi2mv_ d󯃙0D+z[Pd) "=6wqfh67@d}8U8]cK-{zgjj9e7`W c0q$Bz~S<vgH&VL+yYkn>ZQ_)TdЗbK̓_Mֲ /ByI6 G=sAbF++IlF9T ׫$@Qp*#8J]5:-e壟 \D!'N}8`/!dvC!e9fR#C wѣ2#x`la\"̽@k-g̤U {PDkhݘ@Xv-ϕ :w{7%PǺwKq4!Ceml.-{F[$UҪN:oZ~Rwdb@#2(efV!-&W3)Qp 8hv~B=LYm3&Ss,<\+% y)4WذS֢ŋHVNζSD0X^%]lwKW{y 8,wh9޸7pp&Ms`F?LU:&ńሆ^ H(-eQ|Z-Z޶Z9 yǩ)ތ%Py)G Vq̴ :>=Ǯ7$e=LN(ʄ8Ś}#_wSD x<돭%^^4tu/}weLھl*[ ` fOU 6/D3&=WI;P ZSujz}9o߷jCنYz 4E<]?TFfBז v̷ Cn|Wbd&?|m_bJU3[A1"A9erN|_6lHX…ToPu3f1V4mAkQkZt$F߈Ɔ(IjJKuP3yruCq{U:-Pq9gsqM}ǁHc{Gԭjk毈ChNfK@Ms.xW?kIFwYbF=, 7AV_6FAO`(ZW#$q:v $탒%z;/56WUhʜo5rvaQ9_,Q{#Z-$.2*jPHu_Ug C2,.—@$"fgřtYD8vy`+YVB~\a8OhN`s.%kh?bg˰$V$\M,K)5bqsFT:kV+Z9 ?O4x6^]8};6iD"*9-@ Su2@PZ] :r=,kBJ]o-ҵV:AL I严 &)Ƙ   P_L'/_G V&IAM85+}&iK?**id96A1S*b^_S(%\XU3簂{Kb%%ز4+.eQ5z~[bagsCXyѓ㣓ph9`wl#[8(R'h :'Rjw2gFaVQ@=UJH kGŴ0PoXA/1iW[nIf8R?0jh ^%D,7CpLxKih^? u6?d,ILfrJ=@`uH|Q%ӳ~YY(yJx% Dۏ `]LJP-=/eÂct ࠺㘌`nkBIם-0Y5>Ixk:kt<|(p 3L=5|u~ofn+m3}kn ]wԼ:EB-`xI_+`Zg#EJabl)KkpҙI{K&% jUk_\#v=r˾,ץLkN˜L{.u=Fh[گ%(n2  #\]YSC|O8(w* c,[ֻ[sQW?><& &Q1 Y67$22A``ݑ7c/iv+$> 166 aGQ)T-$,7༄ ݺiyO:4!+02ۑ# JxDMгtVPLolZUlu!+RuCcTLP)t`j5dT1 ~Zo--R3"Vt컱Rò4"0S{eSݭT[U_jG* 6ih,'WO=, ĥNLR:^q+9OJV~2sɸ 7$ckxP,-.( :|SD=Eu{- kDphJBqۻ!e>ɘ ^hDxh7Ͻ',&ICR+-,ư"xs~iTݴlL]ev&)c(OwIh$9yȮiq^~kȷ_C*ڶmaDe[*b(7⠚.,7>h>GZO'`{^pDKwû6̛J"e' B/AGf nggHYݤ3`+"[cN5( #WXGfGgc扪Y(I1sXoѧ^tm -:h(&{L]QrZF(1 (sY݀rVFgH7rC T2pnelw9+lCVhz9}@I8,I^rR3\0Z qps_}C?l1z c[ hQF\Y+s-c@Sdgb<$bXL _[ cQT4H%%wmXk“;[(;y$$9"XvƙT#7WB* ]#\n%vak(T-CLxp#P!SMQas o{9xINCH/N3*dmO:}}!BX0FtWӤ׈q՚wv& E-L suTrV%=v\j *CY0dODId'0ف o14064aG?aWoWEd&f$R!Y{({#%pw~ѯI'9J5#> TaN.Wv|ugn$쑔^&zwKg7虅rcfJ5SK l=%v~|UEYYa x..,K$S` h<ܱ YT@#{ 0 V샙Fipnw=^l[)K ]yXicb5QwLg?,P-a;IpqV蜠xJ;&@r<~d%izd/HU|Z,gnn8Udr)o->)$PIɬŻkCcT %ng6 R>?|IGq;}(L"B!چ: VY'^a[K6Cjfn~;~s2> DWNX/ 09 #nQwE)M 94.KoI]),+p".^i9\zso"0Dێm >9 'xu"֚FH? jW֪ #:g7" B =)Cz@h[(@]z ВV' ¬hltO0!SM#s<"'κt?Y8Ke+x~:> {La@L&&.FK%zk(赀8䭶~#o" &ADPt UTz_>  ȆSΙY8=cm4PD> x#fw"j1?ЖA1H)[8G%G2${(l^fyɪvйs C5L1O3vt1 HOzGJ>u Fp_}XM1ra/.5=`;b*fW|}V0uwT/y`P 4L{./;Hw2hKS/A\?(l^ Ʈm~-Eht^ qe<}"c!t2˖) Var3vۧY1(>)Nr^CGUn "dZ ͍yO s=O+|Ja4N$؟9_~cP:;p|>ͩJ.e\wGE7V"p~Z͓&Uyϵ%Ϗ_σFg*TzwxNjY ֊^σ3 +t~{ jޯ4\A3 $7a$i&$&"#9m̅?YS&5?+ !1ߩ 3rA[UImghb됻.lĿ6a.U2]~Lݟ|bF.t=H1X9)z<@HT;@~v$', tVQ[3Eu,( ce6cBR{huR7"i`D Hb.YpJՁý劳"HHg+"D%" Agx%g~"lWj>n;RRXn?\ .SIk=> P.wQo.ҷϏ㝇,1{4Դ5'Y4DRE3O i߽z)ΰ\ nPq"//D0YI쯙Fx\,)k V Ŏ€^y 5t!|m%u oveIehsk03]_fbﺬ ռ )NEey eH[6 Sʩ RHSO!ۀ\YxUD"#r#Kw諾@|y7-Cv1y⽴n7_{My!Ev,ۧ"wo꺖p8MKJ)Gi'\Y륋̮.mqW'0X>O*^!:Ě j!g29!v=g>`aCH.n5<`jCC?,]kʜ;x4e܆2?P^&B43W%$kߥ *VB `w0 "]3DBy~g`Cۊ$W]WK8VG8c͜MPBռLjfnhŒ=ޘ#ttX22#w";Y,d\YjjX<ܕ~tpp݆h= :Y1›"$Ju}[/us'NwQ'0+%ӭ $(#@xfݿv a ׻z`HSPsM (F;"0>a9`9볦U~1ȝTf`vt _M7Doh2W!"mtGQ4oϱKE"qgΘ/"8o5{+X|EPS<@u[SX%p(Hs_%')q})p , V+BM<JbPz+UNPugq᫧^wʤ N{/fεWo!8Ylb$lss(D@ Abbv)Sz_Ą0TAiZoUiV=Ibj=˛zJp4z%t_s%d,A c9@eDHR^:kM%#=E!Ǿ#0Lx`Z* WdJc`B#: 3"kEV&}\ n &Q .t~ >o#ڍix~v@w ^کJ%E7%҃'K38gp˟`XLPWZ/l)aG4NLHTM)7%UE8ç r[̋mf>x swxGcY{%%:|Z)Dn:3t GCznN[+ީT3e$]N8C kZBrFƐȬOfGv^\,ݮࡻ]Ņ7M~w_T(?T: (XUS*zk_ol fٮqs^@ҡJ6~ܬU^ =#ζ=_˟GݒUp@?v_A;d\_rI~1FOҠ 6/MNΨ=m=Jm\S|e- ^u|mYzj,.7g = ᾞWxޘ@CDhs.>1 ֎ ?Q߾2cz%:u}[#f^3>t4z) J&̎[EǾtxB<]1S4yU}UoxN.B*:$yU;2fFT2 v2ݥ.aGZ@LPLzk]j(.lϽm+/q'k8А\ZҨ>@d0i|$"1yU 5N=a N|Os7M7n"qzX LLuTD2jAgK 144npD9ȹVI+s*Y aV@xg m᯿- H*uŴ7:8ŏP!Od#m@x #xG##|LΠC˛F94-RjMWYnψmrhaXyCU´X>Tˠam‡Q7JSfhJ9ɤe(MmBzgެz@vLboJ-w.}R)ұbrfϖXZIkzU~NJg8࿛Y_ ؏[f0۠]P`a/[th>8\䀡f&#vWBNBBUį+r [bxhnY#K(NǍ6fLyw*HY~e Ϩ6@koɻK҄b.kT6U|p'uLG'x)a25(wZ?[#}cyyi*F"e$KiDb75ovd4:EC%@q*v1WqhQj?0KeeoSDj|I:/uUɿ b" c@l]E> P3siŽvN H{- dK'&T뫏jh1;DCW`dLs?MMv"W{[J/6*=YL6}9YF<Ul)#AygpO#>˞ңnF7>AzQr>n-\|֟9Vv/8ޠv˓TXܜR(L'vlOglsk}AXm*Y!CM &kVs@AG(k: E&_t}csA@n<; up7j,wDޭ@M{*@1{XJel0UHHܓ_sZp2VLb_`++4 }IUvر&cڏ "JM*C3js($M( O\7TBdg?nDYa4͉^?옼RoZ A|M !Q/@/7pniW5k4]kZ/IMKS8>Wh DD6L=B# x <U p hZ}\;s PUx3LB>HPTk,1TxOnGͦ u)VzjTEpRdTFT[.TlD `Uд-tY)y:\~KEM^ͦ-SlQM%"v/ihk\}a !$+Ji .=T^a .QQ'SO:=Ki;p,_EE)yEhG=Y3W@FQp$(kZmohlto+徍r'6,։r2W=3ĂGKp\)l+" *YN CW;'2F I$qW5BrQ?WM?/~UX\uXoq.H. Y S\ 63vHf͜8o6:كdxV$"!U>w_|=~M4?E(|A_Eۘ6[,Y3]А:8mÅE4a)z|G}`vM6HW2h[S&o| ZG>ʿJ?9}c@{=&T>u ^KJ3 9cy'䬱ejk&Oy)18|}[]!HreEn#!@T;ȭw!Jv)K][pEyeӆiXˤIغ=H&1"M&&Wqz2 Մބ

H"!5TQ'#!*姍~ |{d2[$5*?= q-i{)^$ҹ)6zA5+A Nwrv!+r.5MEK?$o-OxrI&$kf1@eTD,<&qyl[,+ߧcș/(Ǘ8m&n`RFEK:܃mϳrQ^mɍB:0s'_‡eAH M2 V6O27`CZx+}MS+oy rV P,Iu=II g̘Iݤ Rota?㨛&:S|ɂ& {&q/mR$jYtw} X' nOmIt446 GT6m:*Z'*$j ƫq AVoպEe ߷AӉ5 S( X1"ks ׋TX e Lp^-p}joyGs&kKAeP?TBe[kg oloqr>6;!iO9 2]' ?v"qV𙔭C`6f6nG5yiH n0Uk *s,3w|_SK82/ªF41I9k|'¸Xh'W#90ᗜkCI"] KXȄmyofj:e+>KI]>I%_F] VsU %@0պzv $VHvQⱩYO wH;=RW"% ӛ^ƛ5:j0 >LjovH 20[!NB {(ZQY} UzUk Rsi/KuJP8~qt&fo+ okw30$\I0TTLhd])=4? -[fQ(v&EGYժ,Nv*[ZD'PzйEͨ5.*C )@BkGK3mDFb A\*ҡU³"(Jƾq?%V(9"~~Tcre"aLo@3Z&^tG%ΩVVonZl_qёE1t vPٶFTٶ6K0k&,d:"ϢTS~njZQ-] dѥ&~m='Kwr&Cuo. Sf{¬ 9. ũ1x)z2T%U1NyA=y7f @T[YkE:R^jS-/9Jr{'$ΰɴj6*MLШVL x7"g'PYT<Ǹj"qODSZO:~W[1jUCv_ ='6]gٟ$[0kߐ2S.ZH46hSoKL7,6 e#`!um-A[B5JO&hnng9<{ayVnͻk#sʌm`n/ ,υvŧn!0gl+&]#ܖ !S{ͬE> jpbMawڊBWe]2XqQX"WI)t%=*"k1%;&Hb 2=9g/F`:`5x^5kC?%(;+h Ã/3 ӪVpkc"ReK;6h&?T'ׁ6cOIEPSOA.7VE@H&}Z=VV<ͧ!{z@]emָ umAϋQp.>G9oa\sx7u( ָ MϜPV; ^Dys {:$⣃!˯=:#?657YCq@hLbO?h*8]GZdo~DlMhh,OQWݠح[^z0]yYYEށ-SFpRGt3QdZ>d 0=D𾱃XpEk?)f5׼TF?9^w5c˒xF.y4j3M|HF\]L!\!}֒ rg:j,jGKIwKao6P͐yAm#h: &vcw fV/'[:{<ڱ`ʍUMUƚ+3}yݚ|@2i5EHb57d'?q&P8P`{S+;ĭq[7I0Ed\Κn+bAm%Eb+0.8/j`sBnEx|&3Im"`D=U-~Li jy بHȆ>oO eMgg}\j m37 }+˼Է,.rmjZ:񱀴f {at$44O m&;Wx)#Zm4et) s[zfzfA>b"٠%NҦY4ދ4U6E̅li6*Pq=ʨ-`!m-`c7y]Ah1BK Q7x#1/Jh$z9ǝ6S=6\0m`0Շhd>lH[xr1e ϐ0Paz+}*WIކp%ntSX.R,!Ǹ`"E6DӨW|tUd䚴ogr&' V5%$A|~nj~s>s[ߴ' }h|Z+z||  g 0묡b|zL]c5L!9P[mzʈgvx@GO'+(Ǧ~Hg(%?I=bjf1Z9|'9a,ZXVMѠ^!X=H,{ Uǃ%U:L'XS@/dJ1z/6'D%9Wa>ܟꁞS&@۞Z I;D 8v7>$Dޝ|^n#oļTo3|=n1¤m2 Qr~pzAO8X}*յf9b˿qڔzo&*Cܺ͌$HAk0PȦr+4EӔewC-ݱb>1q noNJ 5lD^f*IQduo Sm!۷ s?GBHWmͣӃz)ay L!kCΗЋ{0S 9ZRjodJ?dYg@QfsqZ5 h]&U:PZ; ˬYE:o S8qOi s/x>'/؛+lk:4B20"ٺ?UqYJъuۓV. l]iE~k>{*@싀.V$u(UKoG%(@4##-2\~!bbB5cKY͋XAb1xCH};0S`t6?@ C9LY$`|I*P .͆LGoJ}CfӵIF)uW&DN+x읓g^T6"=knO燮}ЍxqszEzU7(HY cINeI}} 6Xld!r78o*,2?v#В2SnƥDseKh+['K_ܞ"Ȁ ~"6Q"#јn[Uz3es Z:He\o8repes{Ϭpb<{r12LI˱yw %PGPPfY^kW~+] '?Y<~mYbFBf+개õu/kdFOT _r,%Q "q#qic>aǢ7xz1Ẋ<Ѡ˄#~j zQp= lXXp g;RԮ+,+OcF^MKlʨEk|s;Afڇ-QB"y_įqK:vV]'x5P0 [ L4jb +c/>dİk/Wg1^W OG!$X[Q?ODee"bvZs"RȵuHfc.&uV :E7 UIS!n \2q%8W`=Uq@`{dzFx CnՆط f˚*?I`0U-;0۝sÀӫ9~T"LL׶K͸fugU- 3s&(DR:-oyY`ORV}B2n 1S1Y=ƥ̳|BJTʁ3\5i `8,=%Kb"o3<xDL~GHXSUAoFc -kh!wZ ze_(I5 LK󫣭 U,!mȻQ> %Tzn/w?WQ'!A\8 )>i8֏136 ++O|ӼE ALz." 9.ͯ`3C\^Ac:i-t[lUM%a;Ago!Ą>V^#P'ŐwA,^y\ǩjmkhP%E8;gNdvKL+ ䷱11CUiLX#]5DEQ䑥j]V,SNy|( " b&SG΀!3BP9܆?86;FŦKw~!AD '陓Y~Qڤ3a&.V%ȑ!V63vZ>[Zg_}-8_LqaFicI~,}lixPi<3{2hh詭k nGBzӯg'b[\M0 vE#=B$qw :GozK0Z]u`n9q!W!? LʢL^!UI瓡Ņ%Vbw;nfk[֤hŹb.aJ|+7@j-!J&R.0=2p1hCzTl_…}{L[ *@J;ZdΡϰ3nt|i7<|t$.v>f'%+FtZ:E](fƮenQ m9V'Y:d4,D] E{֗\zMJVbq,C0+pIIN3Ѹ b3ao0̈Czc"fDQ@e7*HwDkh0(9!ɤaCHov6',`nNi18G VhּX<]u|, %52m9ڿa[g2i$/DG}E ߌ1ޚ_f?+ 5eLqPD8]ϱWF0'oLDkeAXi`8(.?A+dxn 0W$?r3"ˏARU STQKNzxUaA)eR'].JRTVӨs!ꮈo|Y »*t}w@  cIكK\C%܉gVGCA"[D4Syu;^ !i %ɜhBP\;72sM2qOԜ0CiDJn[~<%kG(< sޭjSqlf)T}0fTntδt?$Q ۱};`xjZ%Z;!D{ Vݔ+sz1{<*]4"~N&L }NE^e9e'FrY>I~A=v(䌛6C\(ā9{V(x3L5ͫp#ْF&AYXUmwYh LDV/5L+塗Q&FH:%ۓr!Ahk2K_$+HD80V.{Nq.%G!6Kw̩G,Ebs̆L|D\Ej; TnwKwrEFg$!F"l@J%h]0P|LM -CuuFϤ|;047Pـr"c_)ųNkM67HoDx% *KCGFtb-[_[!Yz^63B*i !3݆ ^ H2v6ƔZkx+-]B^ۢ'- [O&\t-b0pvy.&oc%FDC!֓u:~ĎK11e|=#vv y)jjKWuH'1 8y4bi# F)O;`٩A,`k>eMku܍W{E/Mq>S=b-q*^GfG/7J 0nhWR{JR~)V i$UQRQs:8x|٬ 3sCeDDKEu|5g$!ËιhlCʄ&:T9_af`93yta"o(.e5/>I9Av98Ej'+ҴP{o˴AM t$Cc+I?ңfPBQa(v J?T{,>;-6HsW5;L7_6HGa +c@ T&^u啨d %zE;@+2DL76 >schM-Wjd:]^ ֍:zpٸOol׃ox 4{eJO<Z աpB?HKlD3mb%Dyj#e P륿[ÛmsB(~NEø] QVn}i0 BxjJJFl|yVXn_gEYatW3kt ͺX>,{SAE%)ȑMnF(*r,#Z`B>|fAWnN8RL[}?^3D<>`WxT _4 +N@-;8=&"x'|ә7/N6Aw0TWiq$*zc NSJY-`j֠/4=!^΃!fO6 ֮ VŨ1o4aC,Ⱥ)fUrNLdV7hSƽ/ ҉pP62y|,- [g 'P Z,gYzݢI֯vo􏐓gsmiW *"W[> bK6'c2˝ƮH WM5;7Ŷ]vCWvNweoWDD":F@6 2T-+TzCUtwPm -,21ձn &~q1{{TT|pn\йT0q k^7jh̠*NZzŇiLAh8x 0/|J8I WΤ˪?3)q /], *m7"]j!LZ}\-c|y]A~$x1C'4kt^Ye%1QDL:5㏞ YϵçKYL9ZlECr/&/ ʃoHvD8ݫAI"I泸 'ԫH3斢0vfN" Eՙ<ODa:\5n[YQ=Z#NH*ܥb)rqAja û^F/P4J6F71dTiI&uX{qC8JfXL|w vهHIѲh٘>goo*򡨤7Plԝr/G~oڰ[<;O@y4JyQUP-Xݪ5x&Sca U\yRDNkM Bf#B^ ]%^W\w[;`rRF8EWb00)뙜<[`!f|ax9/y -Z55ìiVn#CȜL:yp}:wȽ-X |Y2 Z5fQ ݰ@R #)߮,r\mqQM%*VgxB IF8=b@5HZ`51ֈa=OZ3 &fHM➏: v~"ExAq߇_Vڜ`7yG&,iAӎ.-mpGĤidR\g[x{Nؔ^b_O ׶ c} PÇd֑ HՌbkLs]OͿT.9ϹZ[NJ 3V)ImV2yߵg⡍/LjS$ RDv`\*\_iܝ9'@NDzw]8kgzu'xU{Y6)se&sz ~B>ZDqjAz+e 9pƠm0Z2}f!#! $a01Fr.U˿V7F?RDQ_`(X[7;΃pVw]U9ـnhs)w6% )oT,k3rHUEMs9ۄAڕ#Edͮ|+ K3:d\' 'J]E%6Fɗ`t~M^o? o\r4G{}zY=ڳlGscqm@O]NJ76yXt_+OPH/JuVpy߯o%^N,=m>ovdz8)=`lD4eJŒPY)]Yi 59P{!be]8i PoɆVC&Tq*̱pN1Ip>)lʵU#(ajv2CIԥ^tBaYhYRR^kpIYوpEʄ|3J}4KA NjIiO0>33[@8B (`j[G aHvgEmT'7 ch~u릲ռ9ZHǼO Qz^Or}`gf5^2 /0E҄*>_=´U .~ XyiCyJmie, o>3ڽHK?tGpfX}kjeR޺ùHa"#LĢ{4>]?9 $hٱ)t;q(KJMQ#r ݈HWM<7W#-{ 2 ĈDM\CtX+飀=Ӳ<벜!M1MՑNsW W[zkȾ5mACcDihDxRXɠb:ެ$ϓ&Ll> 酺.uiT qjy pM^oe+VD# ^%I"EtuF{#M'S(ƶD3H<ԍAJ"Ro5>gծp[xkCj2[˄%j:K`e8O-"1rΏfH%6bkz}c.MG HYߌMýjF! G ;qTe6MbONezG[Fc{F5P4xHc)pהN(4G bt~O嗹V?Vtu+R?>rtmz ?dweb(Jų]ȉe8ZNRW3^&PGG: %oSM`U< %nnb %Jf}aV_l$6*ձ;c[ppdFuB k޽iB]DmE=A}dƑ\eǷcI3Y6$~wf$f8~a cS̐*LJQ4wgu"G-,eߗ76|*ymfr xrys<%b'0;ߤ;r72KǪջ̏Ma-:6Ji`ME*K7f͖zN[2^W:gKQ/Mt#*ȅ}m(>PGR t+b>_D9YQ'.9Fiq*Uxd 3LWaEѹ 7c::\5xԲ)koc54,`Vy`bFV=MWNlE\Ԯ`1\1ozb@ -43ExeI13XZE?N,eiBhz& ~~En1m $.0Hlla)e3P;>$=5Ya"jWV@w9X`PIKʺ9yn Z0qo97CS ֣醯cLIt3 ?'5;wa/1jJpVz}Lj$k09Е(~fU 'ao :O:U]mi#(_wf Yxqsn&JJt$nfd5):YdګpɅ36$W1QQWjH|L,T!mva=TbrM' &ա&K^-T6"`P<\u>o_W~H"58x'Zn6M.Y;#78D]D2V523\" WYٔʖ"Zk%[B"-ܴޕvEu }Wan!jhD^-+lEޑn9BPklӘЈq&A$yO . S 70,Ճx# I:\X澅zeo;7Xq:{Dz&,|o$GW<[eعuf7C7 B?>Uɞk/=eYZfx^[ i^ug/K졙i16QxL;LX"E o4\Jn*(mԖloOQ‰J匒i@^J>{Ak"|Ԁ,hr-K:oE响dG}Րme# Ri/3S aL$WPZB@e2}q^K G^k ϢNʆ*;VF+pQ:<  lW aMuvǜ:2y$uxV {ISKU֦1Y |DRv2=0pN?+9M|sg eEY1Gy||o`2؝ M8e\@ 3bj~'+PCd=ͭ>ͭa>6C^hLq~rM?r  T5mn tϲǓz q*t+񨘘'̀%dX3eF+J( 79a796λGm;cvz!ސus +23m!P8mEdO!ZP0~?LzcJ[DV! |.poaMޒO%{}(RЄ\%UOq#9lۺ:NamR$׮0}2s$ܾYWӏH #>E1XCQф6ȝ. TȄΊqM!P=ZޫɁG6&?l%ۻHtx2rP3hc%.4TLY¨zئ%E36ĨiZ.HfqTRgy;3#"zC=1$C9lj=c_=žaP6N7$ YU+ ǴCU+u?En|^RM4A-y:dPCWPGWh-1oҍ֖D{zf rlb F"E3ؚՁ_D-VdsH=ݰ=ng*p]v SGaC*uꋭX)0,MMVjeUm9 lwnZ+yG)Iئ׷-hzxZatxmYH0nxJ%kq,lk|:ɐeѫ+-nq8JFh+m E,SRJƓ&ah?dm' U.OS?|4df.u$\U|`"%J*sh2¯ I}h5_дbG7!\'u|*,)aӻx)MW&تB|T%lH[poO[-Yw\O䨎:O^(\ZMyfӮ;7sR&ݧP^ˁ.Nq{v1M|"Ma~SIsorLheɑ[(b?jP6Jsg!pDBiq_ќ́rY^*34$5Mz k ׄqKB=uNdg>ŵrTU/or9W }|vpJ?s7=.iqe sKV YQm׾VcQ|:-V7Uyݧ#9h#V7F\W ~uyNB%3#ݾ=4BNƜ2ݢ)v <']DN$f(jC~Z+Qc̛Rk>AYDC]9#UYQN=US |W֙[Hs$~UҨElGA:3@re ."ui9cF-LU %p{aW뢠c$IqJ G4j9zcqӎ;@N>5w<\?xrV5&1f&ɥ%b wI 6iu̦YJP.}tU7KFL5ϳ 1ΓVeϞgj^-d6*hE7! x@!X\yp#%,3:΋N1~Wԁk"<Qmo=,P85%a<FSƌU/oRӐ}jnI!q# iK7yR5-YK/{X⮴s a5PyE뉷'tp\wڡQKucohBQQ--z0qdJF?Ph\$/{*GfcZ@~S3̽̚73)\dv?+IL,rH/E7jRLUe'$<8R}@Jo@E99GnV(6㜛z)5 4Z?3D2# p [Q8vk˿FcQ,p%w }"ʨmH A;HG-\> t\X*wՉv]CyG[o9G/?p%qè+U]w_ xYl0,h<-EXgbH0` WbB414_G׹]޾Z#H'Eӛ?$ "ëY 1#`^9$Uza"W9rmxkvE_ _= ; neƱqV1bE \Jۻ~H# N7=1##iשȇk`TȓFdY{V#GR$|HO7rz(qZgi __Ǽ:>HÄɞ4X2RMR0?}PFzG\tat!Dߘȕ\k*TvxB{aOuc}kT+S4_1p 5s:`&E#~S˂߮>>8 P !Qq?4LX%%9=Nq% QČyS޲!KS1mNSN?Ƅ%[zmak &FEԈ졖MBP3_/BHzd ] }+5o(oOŧ18R)ޘW ߹_'c B>[g ūЗV68]bG:YQ~ 3d"F#ksj@/|ÊՁY3OIe6r yF]y݇Ѣ'O/#ϲ79,=t7Q{M/#0^ RN ŽBW(|w~:$[sAyƳWcswҙz2u^qI@@j~|QEV=e[oǔ>;۱(Y ,l,܊R3[nRtBTG}sպaf$HCmTԟm]cHfˠJtK Ǟ}p`i!i,- Ckk?v!;RVb)J@% w9jܴJ'i0D.* 7pھENCt2۔I@ ܗ_9yUS2zYDݺ "a1+dYj@գѴGxM )t,1D2A/F-hi+a?B'lhۮJ0)r]y D4hxNfD4VZjh8ۣ2`P>xi>Fffh* cd?fEE'ui ịچ\7GXM0[>ЯZuHփѡ+<1=أ|# +(wE(y?udh<'U9 KP\C O pr~ j")NV((j $H!|_q ی^&]g) LfMZ09U"WI66S-k[(HP1dAaǬw,|_J)ͥeIO6 [Bb!b*Sleqӱer&"bHtD] S)!ĺN(-ְ)o^Ť:f)WD1R&|-'dy4[x@26"U(fv֦3[NpkYzx LS}#y% dYsX=e3m峓*.drHz~W = nsYj8륄脻ٕ#IKAC,' ݝݟ$1[RVP(R/GW,EUY f1׃=Vu0=kIC2֙D gL,@] nbaȀF*/FjX,9x40zu6{}xa;EE{T5&I J@%9$! mX0Mx%8đoF&]ewOnkQSigahWT?kl (Ͽ;Gl'oV> p*Clϔ6~b&ڢ{Kœ~-a _Ioc8 'l^),w!3T190( W dfzgVAzCnA7]vg;`)^XK_ ts7C>`H; j>g1*T@vYN8Muh#W6BdAspoCfkvCq[N8},ByKvm=>P?&0&fGT-B/r]EQ&͙)%#d^]O)֜n`">V]['?n  3؍ ȴ"֏*MP![yKNu?E#-͖.^bP0{aD}q5oR_ፒ~Ka } 0<U*B:r8 gߺg߱~V˫;(fxDIN%7D) s~zUZC4X7Sbվ۵n &bx[wgw!eey7b'Q4lf;Cq@oCdṖH&uG.^wGy+I~i4Z}aȤKoK?I:82h/.l3i~^GF8h-Q1eؿ24:cku:y l@O~EdPT+v ,DGџ"Xy{ S  MP˜7 R!]yZvR'դ'X+o%O$UR ;]C_܄v>}cz UFF//&9sgy(CrIƋI{'svc<5zGY02U`7^(DJ!FBx>D;N;s%haTWK?"}i*6ؗ}9F Hl= ͿCo3!{+ 7~^K4#TLuɩZOn qnM4cO U2Ϯeq%JRfԓܩ/sރ?6X\SFN|ZiوN㨄3Cvz?aMUp?9dc7O뫹u;W)Eu_ޕLm?Ϝ`fVrͦ`gY ethv14EHN׶SZ!JJj;wKBՄPlkno ~/<DE6Q䪠t0DLq@ E1.I~ /tҒl~2DFj!\axQ QUQTnU.UNˇ+^$j>Y'njK빽e|m@Nϗ۪o'Y욠ס[>4ow3=7^飫W8O "sCb 4`T/$ hP{QsQr4b XqwށbN'ܖɐYeI.1+moi6}PJw? :kVd0r訌lɗh8qNl^AN+mr(Pڌe$s!ZbځXltQL;9Ϝ]j3%D/gT.a}h OQ L?/D4;"+*W>?5(W3|!Wd||(*qM_nCr^U\+1&l3Y"l}~8?@9_?bNJI_`#y@8}w+mƻ [\Gsm%0O<$WXѴ$K bca5/}c12'9T%Vqi^| Fb>HOea3\bq 1 !5П=PBC9/-[iTSw.bތ'SS<|dlDqJYƈRsWJ~ȕg:h#~'?: w0syVmqYrݬ[ayoB7k;f uq2\ͬ>Պ}>o7}h oT^!7L/:4U_PeD68.* +;*{Y*(2FE> $3:an$uF,SpBVp&9 Pm4dr0fKcT R©ґr`(R(bb^Ѕ׭"؆ S #BӅF6Z(>__澠ks)XIpE]& H:<;!<;hE@Cv\m:*rbDq$Cm;PAA[s FsMIepڥfTѿn|㹡.~޷\9ZS%Xr$EN9̶{{MLL*-p羀7]68覅'`ČAsNP%YLBndw+5|)5Uw[{>Rү(R0Lڤ$Y|C b&q,޿i")pmi^;ngVyf~_c"F$R𬎞ED$RnǶ[u0"8/"ƙyzq|r2nQlK7 2\3ʷS? {8TĢz1-"G!Gsf< !??'IhZbJA#@1d<#^Nq:nKƇ|0DV)8cIRS ORyFp VOgjxbpO'CNwXf}ޖIH8[ܩ"T $}o]l*8GUsAAEhRxalF ۈ!aه#xh|0!k4]w `Һk_]ÊVw !I.^O 0AVEBLUFEH~Yit-Y|D#9=KߵI˝wfDhdޘj FvQ'\bVx :TAz7ٰ(/#S]~k,693G}13U pQ<)${ r.څIүR'S)&mp%bj+9#_DZhfDQFo[#W~o3u Q(0]ߩN4b~"OvBN۬9<2B &F׿(` P-,&Ѥ9k4$h4Paq9N׶ڧK<[ ;SxxBlGPȍLr#F@Wn[fչ#J@wbUA[y$jhaCIiD1:{˒THk3 q&@}xQU .,ZeW.įO iԟxr Qle+CDG3V5/dqXk&kRR+S)4Q<Fm{\ 4v*K*;,x'@>4V5DV,3Ab ⡜1Kb(4yfgfͽ~ lhUKF)zom`xoaA-R>r5g*)j 79)EN%pm][$m۱k@enȨø׻:Ȳ0{cIЍ5y=kCk|ohI^+aghtst6DfDz?ZMp.k5Xjy}#aOcۨe$@ƴM g5Ӣ. p>z2Yp3캣BH m6 otץAWO{lϤj1o;ܙ]Ti)0-~W 5qO砀x5L]@=ߞ~wWF-O|~`r\DBAK/s?J<-g\*dE;U)m-qykuΝ&|&s򲦽jWą+'65g%mŁwiQEbLI$q@a ?[Z1}6u/ot ՇR̜ 5xar{V[Z ;\BS-g!mxy\u @## 2PրFn\ `C+P2{I"ҭʍsAHr9 gq![RrO߂&庌ICZ@d|\pO LjTP֍h4"psыa@EODz^=" \'O?Oq GNkǂj\ DI3Hd1zXHZQ؟ƫAJOsAȀ.]9D`{jh #Lea?dU)6$RAeU(^{oĸ Eބ)T;ࡣC21w Hs~LU 雗>ԓ9,AHN 63(8njxzߏ|O?Xþ-afu6e| ߡ6O$D"3:55jYmܳ^zM5f-~5mQRPﱷzJZ:,ho磿±q=٨ (:n=HDQ H-¼@9rigb{:\7 -s8kB4[r_%σ%i 5\WoOjYu` h&*`W`TK \+$9 4@+q h+ч3sLSTnn1|}s?xY#w 4?Ϯ4;CZھ'gN4~-30o::9}z\|lcK./rR4ZLG񏎠u歯J8/H}Ņs3o3^X'[ǖGD-l|,*"B4eՒ,³VQ剣b'v#Ek'-@A:N3nℨA3獠/,t iƀEУ] yA.*ѱW:ϩ" ~6 ?]8̷e%P`9ۄ<Hkj4!QKa-nlRڤ5T^JL/n7ALIadT0w k^+Y+5A%E`y|.&LT2h`JWX>EJ⡰Z Ƒ]FԄDPQ,ޮ*jʞJo`Tjip怌Q<"xiߠRK7{*h32dƞ $$`)xb 2=]47k?]zip?#X1]*>i}Eo;`dk%7Fs"||%I܋DQ͢ 3]4<V=?GϣWܦ@\cDVct &+aDa}73uo%ipHUViۘrp Bqc)/0hm{;N_́~LpC=p"@xkj %y`OI,zh2siYDmEMV"Tx-{fq A58-A^4QmOep;7W|>Q{@omn~~qCѸܾ4gk9=R:|60hn Z8yAC[Lg.H:oypRp Ma8jo3O,NLI;lD3'rP6 UcL_Vc9wR1@PAPs˗# E ?ʣ h:Μ**̦pgHVB ~07kAl*(e^bOU 8ve&/X¦lgXip{baWɆn[x \v?aj5kJ,/ֶ֔g|v3d.qnt`{㜪Dk%Z%^aI*%X)~H͹EH$+{[pJK)>C',a)P<7т%Z7{ 5y=,"YK W͗lW/lcZ&+b=#6g'ЙPd5wӣ I+-SγY$Uc"Z z&糰l,"\}̳Ug\O]]`+0O,L'(Y*kE2F@hwPkOeb{2J,)_wɅFwMc'ɯ*# Ec vz#ѡDH]24ȂAgK+ -p˔>u,9fg+{rpi2'TOt0c✀_ETx芪jG :;6S AzМ1qS65X?z oa75'i7dtpkX(};M X)`˩9;]b䔨Jw2{ *sc,Vδ~K45MazS|;-Q@x.& MB?ɹJȘWFGEYdt8 K7| _d>`s\) e< F> W?rg9XZt4fֆ#4-a4`8{:PA1~fq60g͹#N]8[_y_zHYua]rWՂ!فxXZMXQ$= 4o'Lp9PqC7lUji؋e|㪕ȳyܧ.=v(^+)%IY@E$ئ(2i0\FsL)xD'y$f=KO㫄,iKQѻ}ѲYAKcXCbyyudqw(>%t}xg_ZAQ.Rdn{r ɸK6]=?lJK`aSHLW)Ėbt#?F/V.|"g:3p,o>ssD5Vcs4M&*&GJ[Ipy@z x~?+:ِ NꕋvebdrNBt?2B=>/m|yrWN?Цyl-Ѥ̅ړѣz+]d[4VDa6a7m~xR(mʸk6: 'PTQ6Kop8 @ub"CXTcu(LZ qmKs+| \8i} TaҨq95)u b!.sW aa l I=SM:LPy~D!{ɵ?+80蟌I}8񙒪e.`o= b8T"_ 8s!ՖCنAt '^n~5ȳuW{cyz6 GI'?~Uy~oc7nli䐭eQ 8<@rL' یlyAӊ*#Ef^{v"kBp(3sp+_G "+x:ďQ4|A֗];i/-I6Ty?ذ+S e<.dr\Y!Y(E[ڻuypj bHˮ{v+N枟 =]ʴeݙwﹺ5(P0G yӦx6>bcz=]^ FJ 58<̆}i$ɟBkqˆBEOnnF+;\h}v݅ů`mg*k$BXd]y7)ΏL*PE/ݚ:=N]#+ Ѳ{ZbͪX~ĬÊ+4}i19Bϗt*':\&ڝP@FdTN*N9e$la)iS&/ibϜq̓9OfU sӉ[*5Ԥ*XIl*~_WkkU΅7%0u Ud(j]-ufm$`]#IE,xJ ;2 \&׉O(~pnuK7*6 ${1M!CK7l@S=4v ЄИ J-sG3" =1s8,b+I̪,mGzjMWꪓ/3-0= SVM')N[$ڈXP?!:;z\:bZi Lj /WcxI9EocʮB Ӈˡ Eydƫ,* Wߍ@^pN[Ohǖq[|̶Cc}5=}q!lOP BvU-.BTroIyzpʦ``A`<]A ;%znӖۧuuG t_41:zIIP 98[×Yc9eqY?h" q5}]▆PƲ.<{T{*(`Ymg|f$qc;*N!;_Kq,I\em5i⎡;t62#d[ էAe㾘^ x'*NîZFӷVUSR#>0:~iWpS _=ϠؙfVdFprn^_JyQY@gJjf+>niŌQaI ~A Q1P\k t)n''c a_;`uX[ L$M,*&"v|TID&cn>26[+BnfP}'G5ڷB:1tQ6^ʸT۝>W V3dn.3Ǖ3h TA/?\"ADyx-nt%NRN ~aJ_.Y{JH WA} jJ;z0q̼ȃ8e˺9"nl\xH1T϶s][Bl& U)Gݛ Y,./:e&١9*U-biKE!.2&*tEX{^QEW(Q~exK `cT3{ i;==;(m;waWRi6uAtx>9$ !Hb U<^ܛ9P+ ǥTqçǤ+x&+L!Rpqt:h8.2ϣ6ӛl@Vڋn{"[`;)~͔L/@gSeq@NsS l]M1/- eCQ0~ka+_<X-50PnB<ЦѱMʜ"TZl؈R ۔C2U;-GU) s'}mr O_/s| k.i7㼔T(vIvyġaCF(߭|jjَ o~G[QGy8C]1s=XܩMji_sDqyf\k9FHB0#kLD!8QI/I`RNf.ҲVq|qRS\W7/1^]5Ŭd\teqr$ضRYю^Pe&![ #PE"Gbc*vc:?v{Ộޢ&73Bs6by*eZc`˾]yۆjAxC^䢎7oN(Dn}}Rk8um]׭&" YnQf'YZl:z^KdKBIpWw{ܲMN1v/')Uٿ2%UE? c~ G|xCɄ}Yu'H_Xc 't$o+olV8e 2=&c}J~Ey%s̟]7UjȋpŬG\x6@3BoO&_Q(s!4?0(6100$yWj@5!&ä7CF#e uFH`r_JS@(>Z1G((t2;t[{Irrvv6tRQqoIݦ6YLh?[Yȭ]9fw|3B?[$8j?l'Xu3U!6"};&g}/a_{? ֣.M֊Z9;q=[!W)9eZi>Y",H*GFn^m&fCRtk'4l+!‚A@ PZL~ SWYP34kX`/C ?0݄zU?[= lRܱ<[G(i;=)ƒAX!KOPٱpEaOq%|,C90knySfCPD܁m6V&SSN82*d.PT4|U f ydrG!g{VnoS#]IJ'bbeM}dY3p!o@F۵'Mbx4^QuEm""1,Nts:7'+s\D`6 Q3Erx{ V?qM^eb \Dń,nz[[ls-"TkC4SsYh &b׆Β(?sA}| pmt*rMM?ϳ IֲSCzTϪ*.~S0U0顄~xUU`bMMz$B?~ T6m^@,}&=^cg^!$Z' UL),d0 .|>ڀ\!n:MJc C=,Y5lsg-qC|뇁lSe8؋V 5rӍ +~RQ$ηũb\ Q̍eq5Fr`ݢ nFC(|q!$x|pQoX\9,Uzw>'p!VCl%"ݎo8E"Ԭ3H Pp,FA"K 8FE B!Wavg8Fg8=r . `{Y!b2F67!VIsS`?ZuSۅr@?؜ԁC:0pvYO YxiÁG8O Xn+2Wp3X¾ CsچPVMG3 lHó\б yP+#:0Ƴ;J?8 V^'{mn*BbQn5Ѱ@8(RBӸ,G)*D3-ǒ6$&l]~ݑ^9ڸKz.CEL<;^kfo'G2ۅpU؝~qCy罪ɺM[vس/FP g/<ŗ`)p_%FvZ` `XJ~lljHވ]Qy㋜fNX T:gxYB و 8?C~mM@c#q\W1\߭ml*:ZQ_9i3옟n"Ӧ_Dno 'F M% W ;IbݞU*8;2mBm嚁 vjJ@Z:VCגoj ;Hes54fh:P mdyNIg vn<>qkpXhs N-, a@ uh2\wNn"Sh*{*_D8P~u$I#n0)Ii7{$<׀OiZ^jD{m}Vwȸ/[:҈e^:`'nLG G/|a8 ߠY|+Y}.fFm6藠}f9cH,qdVT8x2eoD`/h+~3𣽥d>½s7,['^V$,P-36+'|<¬̪%we ) 52#t,-&etY}*~O̠,PdMؤsryI V>[E8Mf`yfub)מ<6zp2e;.y35܋&G978nfbD<|ꗏCi_ Z.í aD!z,K .*sRSJO*}8yc!8.?X_sqv:Q c4 e(zV[kNhv4o&SU.λ?ٕ%yJP[ :K?$^sއsEF kHSm؆/cKP3.JJG=@h7gt-*:#D9#Z h9T={A'j/9 [iTN۬BG:(N1s+R[L2Ad(Q-AĔTЙjF<]cR!|z& wNYrj"LG$i 7Wb|_D| 7O+6KjNAkvH]ѶAƯp6j?\#=S+9& -4Tg[0q|ˑPOoe!;깜gV̺b(ڽpH?/ :}\dP-oB1 \yHUTlmExy?~|rߊhEpz@6(c(5JB8KX-^LJEꞼ|%WhZ\ܙ&L쿾޹AW[ja7Z|cu9:JoEIzb[hn%l7~0X ;bemx4Df K5Hv2 0!dl޲O:mҋ oΊW/qHpSgەwj#w^e)/ ?-a}.BdZi:T76cEMǍ=+kOM9 1!*$<j-!h7əoU<*WK]\\@nzc_u")PVQqgADJq9" N}l!_ۤöu[Q1с=q .R1j rynVCי8Ş4H_Y7pJ7*"7Ć 4cs8tc?>O2!Ǻ;2%DQ7aUD߅d޵\Cv8 ou}*%Ez Q-gH$wj{!hzug3ܜWV!;;H{ X_ o+pmUfX>rn 4fqqQ^nҗ_E1kk9gE4؍_F fcTyݺ<ݟgA-CMk>W_ɯ*EH#HFw;d h:4SQ船CkZ~rPs?!MuĆӻ"&`6DQ2SF@oZ+GaaxÅj"8LjYTwMPb3(-͌qb쌼Ov\)$7/=Ae^enىc.4BA^| .*CqDŽ)ɀg[3 ~%J_Kx|_ mUҎ~4A Nw?؃>p^aRF.0>_o?tjPɀXURsXS?=`h7;+F AkenTC * O9ήݢ6ñLRO*2[1n4D wqjCk*88EuLȽppP(2[8&^v'>fK5yC#૏wbudA莲lzlyR&w<1`u :*bt!ɜO?^ nzs'L'zYO[0oWt6J'kR-NzGRi=c372=F?_ Љ(m6q<'!H9#GQ!w+Wńʆ<[ZTIpMom,xvF8aj#-_]N ;I-WJ}Nw6Iɲ>IV:=ن0~f>@R~0MD_:j ->J%#2u@;F-ľXӫRL 7iXŴ:\ x+ :yz1X:o',BTgǢЈ|\X")_ Dz8ג!,xXmlYżVØC GJ01}V<G/j%jHO.B, 'E:6B\Rd4&Q<~xlRK 1iwu uT MpT] e352OY$aiI^T f+~ $ iRFN],2r RkZRigŁ%W_~)Y&Bb߂BLɔ{jH>maO~7UT Ojw1+h`7a񬭻S-aFe?οYsUebwA8G1ukxj Fv-*CD-"vG C9,P"^,-0-YƇwEF Lc*l)q0;7` HΙlgyV 7!z5G.ҘڮIxai3 O^X~|Wb٣dž1Qt}PaXJ}+,Pq"ơ)$6^DIcc$aߒ~:ҮQbT'SsKGTo֦^~7^{ھÐ!Уa4SyphZ RZWHPwPjL|@|IL  #lL n\?Q@$O֓KEB8z*pr(;2v 6k|EHNQDzМbp0ɐdyiynq9zP3po` gx8Z%IRGE0r[E]ƣ$cX> )YCJo+Nk{t-mЕ[yz`ǟaǂfА)ñ5Ӂ!:vVS֦MM$"6N{i8+?GKI,uֶ:ſyn?MƭʤN3b DoKhK8ӫQg2) 7x\eX* oQnDF'UN Luï 40;DUKxW_DgPjG,LjTIԜO.tE.C&0'Uc,K^6EYm\=ٜ`h}T)cPme^%`3= b:aMD7/׿f/͠Dir ~kQ^+\lZHt+-r[ek(8NC# ^`*&&K'偛E6nJi+@CNne)//>f =TSXK-%bvt_fjA #$}BF#9R4^#;Z!4'"5- YRW _8zm8ATZhvU|ܦhfJ ?)T灬W%@{vUN%|JWب+ܟ! Iԣ4+3kK.l91gv`24LCj9jWU=msy!ZEb5#,3KxCrSmx` @\77>xtCLzsno&Voqgݠd'p`VeotH'ރ\i8j*3 l6Ef)^?p?N& ~N0.0^翺VS=%7 P㜲<>?FatZah!Y1a1uzPE<_k=t,N埚Not<F}\2;-s.5M`_&78М]Qʁ ?";漩C˘f0NZ^x 뜝)Nϳ.^d|Mk3UxiI.0Um yʂСӣX38-O$4tB&qIeg; +p/pn^=NhN]*ۨQR{] 'Wj]սFa'fQ@T%%yYy;ciM"Ui*Nl:k#u\9TޒFM i? $}|kexoǧEG! qt7|ꅛ.go)Rح뎀r/ 5oțum[ckѝ`ޙ20nvN+/h4AoQzYGnL sN,YEHKS9{nPL]VNaD`=z!r.\ѨHז7p5̌az % &}UE25gtZ6tjBD5X\/i`)3!)OSSqg : (BI-%P]s &trڛs#i,GL'U Ж SxJsK \Wf U+WtOy:A1uwݐvls3-T#qw+gETȡH%æJK`^f'$[! Ot( <"o+l`Vekq_l .)i|j.|vf/vS5gP(WP!.Ѻo $ Bf`* O~{& }vͦEdl[| ;m}*5AƵYӷ;{_ymT?DuPC୳.rt6ݸRF̀2٬F]i`[MEhW*yy ~&{}DP&x:_Lj'eMfC""o\Їffì+mp= 5jn{k1bwQ`cɺ jG"մ!|&Z&4-0|V1c>+ qJ/ؼwQYD:+7Wlt*Yj5C9/ "zA&Vi+Gc(+"˝ cvd=+i 8QRF^I">M` $1j+~jG3kZ[0=`DSs*Ǖk XpT֌,^P$ ˚Q\lFBY}@#kt8ډ<ƽ+sz[eME@f ' qGݰafm_V=X-(DLtF H,8@驪B ` |+EE5xV"jq`1O^<x1dQ[}IpPQ6lkG3[B)G2o7\ ^+VoIQ[/YF~x_obxΘ8]__zF%v{lVRX'MvX9ҨBoC0y/;A ij}&bزĹ8 ƙ8qɕ1\4۫v7&{s1\rlPbKk4O y>VK |%wJh!+%cK)7>0j-?g)iyˇ˸љa#0fNG9Y a;|kxI Sȟy[4XҐB\tFgj&?`K0UKy_JQ1B9{-yQѡypVѫCndf~G⋠BLҰEZ smQF)sKPr){&ְ`Vxk]u(*¥p%ĴZ9_@a4 ]2gr*AM!4Dd$(=jSJ \NPWL"+0o%C揜+ZIH 3׮!tl1 B\OR1 cX oQ17ԯQf^s@!hƌglƱC3 | ,ѤCQ1ɟh @Wr$nMXVڋ8L!G#0/XkC7&Ciپ'u]k&N&y2ЬP|u#&\5^fzDGkO 4 I-L澋l̙e)u-q>V#O<šrkf2 ZxEV 4k @3STC}DQ&]AG;Go(9 4[q?&dM+.t.ihhY.Hm 8NݼjS6d?a /;OTBY`@>rd߉ ދzrLf1cU-=_ VUYq*uw>ioI\"XjL87[|-&_ZҨ78]˹܌Vqk`0r,ۨ+*xX0HTNnjޢLg2˨LFh 4INNTNL6 )+{DaL!xGnl`\ Ѹ?C%V|K}퀏yJN: pqjW?`l!&qD#(AnB5vah5@,,̊6L /MБ1J2=ktCVbiVCVXQ ] LSZZv*Is_T09e)x(yWm+sS`#~9".TvȞ/\.~)+rq$公 Wds;H?uu*{*My~ G!9K/F\V> x,j$fh$JM`gL dG]x͋dN9=*딁DQ%_Q:ChؗÇ EE+/H=gnJqzLFOm?91Sa[,bcO>_vGڗ*j@ZYnxyd4^al qTۚZ"zyND2 ӿO$X묧F~c1ƄcymlyXO%Jf h5M0BT & 9圷G`n\65?p3~#?8c)y 7pHImap#!5M;u ȣjGE)!zD/{@N(o02/|dYES"6;Ò'=MFH r,M3:xtz$d߰}HGBkf}3,|:*hm''S]и-d|f0er1gd$zn ge{T4-<]%[ `m#-q̲=֊*7&bߐPbeY;:`~]wr],ATTs]ngR|+J. p K~T&5iHsc?zBYIOw2+`f~~:>'?5|,\7FOcnh~|"tV UkGݨ?j 3ZhJ26V؅{[->^RmwsP\4D]1qޒQ]H*f@ܸbfYq ֶ+G[<8istYȖ&dR( y 8.v%J#tXGﬧDGVԻqZWCejeN?VtCT&w"|<N/wYuS _ v4*nժ(hU>L,GXDО U c*EH25}L_7CrjM k'G;" mЧ~y`w 2]$)Y1Ĕ5>fdбIЁ_>A,ai^~N5D:u '3Wȟ"x`>4Z<)Ӫ*cf^WJ[~jbsGkMKOAyzJ $ECØZ"I7.>?XD)-?S~qv 2|E./ n|ψ}4@۵Z E֒Of=]AP2=y[!1:M,W!K2Z|fv^;o4T jUu5gq1pRO&b_f >P69\:|t6OQ:1 ]@8{kJ/T@¸Ƶl7 $ >  * ;MnϯFŀHD:Fpԏ;(ͤO3|G#5/dbx'A*Ͷy˕/0v^1܏,|(9mؾPqx牫Qg)ԪM-1)=x2c>Te:<=NwqKEﰨn 2=:f%Jυ,Q䪜(4c2]8uβK,iyg,z6y˜zY\!nQ(4U _^?>u!xY?j4w6[hQx|GNfֺXR(u]g5L6-0ሉp<ٿi:PtH%GDWE-IDF҄ie3_qS^9\@t3om~PrUWH~}jjr 4y>=2sB (mkU\E:&-&t|@> ; *e rZ+OvdK`}%h:`l-E% &ʎbF}kCtrFѺCUL`rm'YT=n)@?ѳضsu(Kw_?zʦ3 6,yLrmVKU.m ʦ1)r\^/q1*RthAPFBd&x`M2Ĵ_܌{z֍:b@[LHR`tuҌ"O0/Fcmy dGBązkbD{ qܩgtQp3pQr?bBI$6Bu"ga : B ʎn}c~Åwj"X)LuC}˄7Oj-S"3=ۀT!wK g2/W׏)I⾣8IXǷ31D.dऋlu Z"a_E灃B;0$MO#rs3AٳDerGz-f^ܸSʳ4KQ:W&AtWϲ2eK1Fd(!l)\"%ZFbm&4> >v`A(S;9[Y@ۯ-G,>؎(ϸV² !ϜnͤS΃vOD"V% < 9;FZ q[^ߊ4P@7᪺_כhH<9X/SEHȻ샵ĕ &}ʅvל]Sg%5Go{.o5vmko[yG_OGhz]T|B7灜4>F2G S} !i12S%vibClXM8aKHvh@ e9@ļ0(Yq|T=gV+o˕mP$&F}xgZqx;&!FW#”PŜ\¨ ح&o2eK1R:Ze8f\t2+tw?: ,.aC~do StqI$jX\n㲪8[Ҡu&܌N<- ?/b*kT,?e퉦#C5m@0zNb.W@ 8Ș|FzTtug/XE[X3 Nsފ^_лoQT,^_ sȶ vUuH.kd%|ѳKI jw6dQ{ҥxiӁ} f$w/PVFR m` =vwa8?ی:ŧ#XQ::#si ?%qg3S+ ^hupu!_lG mNnzo>m=?,BYĮi}nl5F&㺝I'RSV_;' bS3Z7uCՆ ;hk=IiInMi Ơ9>>^w2F͓8 ']$L F§FAh ?,j^ uJ_E } f ^MgM1ٶ9qX˴H9o5R\B4JOᅤh1@g ^5w?L>3cc(8qDR4͎:4LGN붭e8ZL8LZDJه㴢Z5dѯ>;4er$AW6|x>]I-n*v8.)FЭPoQD}?9 pWr1dm݆{ʑnHPꡁ9k krwm@^Gf f4늨 L_=}2@USX"^s%ᆆ3Ɨ" y JR#Wx4V=[1LȀn x=db}mK]5j-ȋ\Y 31S!-kv1@.cs([| VtIkV 7qPyZh,YZtz! 㑥%X.o ~YX [ s݌OI,YפRou2RJS98`ř1Ut"Xf!kN醘n %>stFqj2BqFByObz#MZ$_>vCsѮyDs0pޠ\ٮ\(hA/ʑ|P4#0UCèzM1ױ 6&CmާqeCҹ7:QS% @XbBs>oOBҙb7 G]-X\pXu$XL?ďa VO|~r'Ů )@S,(k1cDqV 46U0ZFiPG9ݽk,oF}zC:I[j~!/ya[Ưʔg{BbhH Uu5|{x̮ 8c6PR-4*{d]#UTՂ 9u'>16 Y-Q>S'j F۠BuMG5:_!jmQĻ˻QEds%K <-:8 OC^L xAK#?d:ooٴ[UU *{/" {?cOI "v|gVYAFͶh́(WGۧ#vWt5>EZloPipL$=X7wę(SWZ!WqVux'd9Mh;FӍQ 5 g{Zyn6j*[س j= V4S9Θ\s)b.׵UO cobUv+WQe"Tkʇ*enP}FLԖ)h?M+)M6QGI}Cχ[cG1Q(gQsFJgͺm44\rP[V)6Ń0Tt͹ohbS`D'FBz 2 gıgl[~iou$8òЏ`2`@Yw| E/Ŝf@@m,CLMg-bdA Wg &DJI&y%Cm{s:n9]8oU;C)|TXQq[oT|*$,pt0Ǟ ˉTRvg߀>BImo{̻[W1thg{PUKb[6zz"$5/{°CuQj M&,,&I-5S蹤c3s9|jݍ&(#̩ -@tb.'OePHXfDžy,օ6( gb[At62P^ .l+_).dJt;@0K|Z+2!]p@NR|3g|drjoi(,G:_0mFK˯:X4]ŬtS':3a7%+vgMF=GMOIv8|:tn.+i?}ʶ$nx2YxBƓE.79$Zt%9pHCR*dc 8b>kW9A`"ҁMI~{N266%ѤY.iF}U^@͈H-k>  :iyw=[5 3޳rH#"3|[,E\TRŋt.jkMcTC wNh.?Lxъ`_*&ߣzȌ-cԽCYMaR7Ԥ&QC^UkiA8 RS! 2+T=؃;͍vmpXVV|2 c$Pn3Q+0#G"F%g"$_3zIGaVtY|h1t%=6*s&%!*Gtӥ8vԄl8 +sL5]σ9үGrr`Dר(\dzf6<96rMlg0Px%{zi R6f#iբ8AV[*U@Eqq ~;~G+o!l- $I TԲ=Q$CBHL`+ì-wh!y-L?CC1nj= TJVhˈ+cZܴ{oY@BOG>.yz!}b$pny9]jIYbaz#R|:6SCuDlyw8IU(ah5kӼ%->uNhx'H OF^ ]iwĻƕ_b>F5\rs!{D$hUKvDvQr $%Jd΢8kpl3ts|ȇ_σy@#ͫᚌ<}@dI6݈dET6w%unj2JF -`/E_`4"!}CǝFū O0$4 ״Y(i.sꭆ\6 $h+pOzRpf2! !&Jt=IܒjӬw@Fv3# lmDM_#{/o1`~&DEšbM׺x|*,sdB3ͱ``.kHC\:q*&n,ؔp[G釁I$% FwJI|ŪErL7NtC}Bk.x s*RajmUc0ݪbj ];mhf}0 dD plc<&ڈ ᑽP {(~I5F T5hʱzGfabwU$j*_RBk{>Yٵ<[ˋ?Յf =G]Ra6` Lj۫*֏U[D,ɠe y#8k_QKO 4c~LD5ۦBeZ#Mv~]Z/O@혃S/fʆmbtU+^*kq2H戶4Qxj}L 㼢NJ zkHcsj,x HskL~4(xGrLQuѪ!eDCzz>3xjeÀU(CRu=||׊==d&f| D*j P--Nz~$9b:L %E`[!ZC'@Z=6T#{<9TMr1:^ElZa! PܖE~|Wa)c<{Syj[Juy GTI:93Mْm".ꐺw~reDrad-"3 ERN. <)h47X+d'HS+.K\}aZح>vh'IQdfg(dU2$ oٖkT#XJJ0DQVZ'ZV%ÛλWw*GfbV?4`Wǃ}b~lI>tkuf.bG ?&X@ʕxX’^!l?-V R9dP$f'<[$tM\5K_/_3U~ѭ7pAxYa1 J1T:ϧ)[P¹T!pql.'ĎhQ2nJ]S)tY-;\BF7'r/!D>OnBHgG3.l¯?(P{m-=A^y6Ǝ>%vkG(Бxp`|1:}.4|uDL*tf]XX){:G̐5F9E Ø"ЁEq>&P?LOd:8TgUfXD迬jp1׽ QUŝk4K;{eKk̉2DhO{fI#BvM ݑ*?uL(΃- RsisAG*6Pf9]AQ9塈jo쫅s*kmlhxEfiy7 S@Ҋ6ōm6'{BpO\_U/AkwСy' }ƖQ&\e`xb D.R[A'#`[Y@r+saemT_/B||ce'\C7仼aζNN:`im,TdqN07"őr(b}ʡ'L5mm"΢VV  (+fkmG_X/ٯU#Xq7y16ǦQmW>v;Vƪ"!;K B7d5PI + ̉p$u:qy5Z\6桬NsIUJMA'^N~iM($$>=K~#>15g\<ī r2† C1&kS@(}&\~b#w/ @Xȹ/-3%J\D2k:gr*5]ANT=-ǜ[(萹ߗ3õŒK/aux. M b5%-1UQ-.敧{S &)G3-` `侴Z 2HojEb~TE)֝,'mʺMG+Pwi:R1x(IJIpQ2O$Qw:V*/.H$T!sG)K펞x|qRos`/{Azd D7BN*Q߮ 6(.rA3-h!59剙.# Ss|0CiOBep1ovd4pu9+ח  Zj6\+BZ+a.9npTcE^WOBASU%'>(*_P2sgCZj7rI)9? lOÅ$YAP\A,d.ESEZ?CWmDER([ K{qn6yT:ftEU 8~MU̬| f4ؚq {Ql>@1g?o8) }t47أ(9H'՟ˌ?%/ܮSp%AsjR{Yq\Cө` (%$`\}6tej[d<\OGRiO/y#7%qWSh0sŽdw;=9(JKlnL\X]S*;xʭ!NE2-xd5{OB8oDf+\)2]:0d &l6~ϓӽP.M%ƂeDORZRW JҠj|8k-͆u-9i"Fa2F4386O6ȿp A0VPi[%}Ӥ,@5UrKtBP [1L-#bU SY^"- uï+@_[5nD&2d l]7&uU+ rZҌ4O;!HK2 6r3BXUFm֧<o?]0v ϒ8q65f) ;@ F r;# [#T1 \%=-| U.x|lx׬+:xk!ſ DO5 :Np2 _wǾf$&۲˷sjЅ,A֧#t5Gq9Z}~nf(g(^֐-)Ѣ3טb)x/lKd6Se;꟧P}v8Q#7u92~r<̺#5IYJvȉnqVb5?DMDoWfhPM/nFؙXx C9.0`f/[y[U(W9ںۖWT2؟)VxAzUYGt|H2.}5D|=cn~OTmʘ8=(WQ*2`:JLDlؑyv׆}[/ϔ#ΠyFlʜ& PРU1j JAYY曭n@/3…džZTb.5#iINdRFҭ/&4xp9)fp--LާԂm ?TR (Ts SV\I䤒!ĻX7|f Pb Ut= Hi62Z-~?^J-|0kq*HbXgF0bxRӖZ^w6ͤ幠t1Q9lՇZ6;ڊZbnFSYSbKj;$JmŁFBEƖۀ?n=B$UG|ߘw") p2BuFڊ܏Y?}zhV raV]nB+@:][F yMb>GÉ|P6YIYZ{IC$:oY0%YlDJ(Gk::bށa=g).k3`Pe Cy>t7_*?n+ndQq8I&mɟt gyz}3lnG%7xVOdb:z3*Vw{3I%En'XqB'ymf{Ipoz+A`_r'HnHwv1IQ 7fJo;SvN%[T:ϋ k a&Q䮯Ea\ekfJM!qO0?_…Z@@h k5[l*ftrݜS;Na & T()@C\7؜ک Qmبw1%p thӮLE4^ [.PYhT{&5UG?m?PJ$lN43^q: Hv D@<JSgVN5ats%[25IŢ_uh2ZV'^R3y>703a:,/{۴$(EyCY+m $y-]2>_ "VRB4FhC›,$eQs-Kjldbc鳫dR$#.&CĢLo ZĚU42RPڵ\ cyH p{Kcl}?18:yX1J 1`D3y_L'#l$W'w"6SKAXwh^> ]E{'U%@5#xf951UJ6zHG9vqL9foc38%cs-0}C{YoO]9k)!*[WBSE(VƎm er8Op$ij!9keBʅAa{/X(sΦrػ`CMAmQk) Oz,Q2J{ TVϝLE]\OSlF:80<"Nx&-n:3t)On~rMyYD2@G[Y[ 5_,o-E\ y֛gip"z9$?6@-/m'(v{ksmmO fBbrZ_Bhk )[ 4.O'Uɰ]L3#ڐ/xPD%V4^LHB ɺȑy1լ٤ 3Rٌ{7\*5pk#=^wrW|vt}HXK^4KGZ \4P98^cW2JbI1,}R͗Lw ^Q=0xKw Tjb,"ǿPGejX;-LS 8x'H#nBiFŗ@%*>0CvATF Ϥo _jh9BlAwRH2@HO2O<焈_8@\e68;9}}wpf|6wg MdܽPķ|gF=zWS}&A$1Ō+wp^G.2UBOSz [Mm|Qn~<\N=%,l"$?ܧ({q3HCtT@|xk$&lB+s8)!Εʞ09W%c5 V@:¨oN[QD'EG ɳjZ6-TqJW@)w~r}5WBi-n_)Nƙ_iӺ4XA -XI~Y"U8-R$zzary8|T8FF< M8rR=6 Bk雘Šر&g쑏r1giE &="MGBuyQ"F(DOϴ[R@@8S֐Nu оMGE=Dath6cQI-e`|2F|ֵ.Y,O4qOáU}z{=T[o3ӳ}h,ٷAe4u k{Dh9+ t$  ʰе@";TgԺ> Vs+J$}- l܋,7;O%ȍ="]6l|flKw޺P1 @-(@L<ʪ'EHFZ:+q9ɕ^üB'=*CVr?q` M%|ov`a&PBFOqOw9ކrPl7iq{iv@;GJgˢ ×TK%n)ZOJ}i7YjA }˞JtԆdI`YBj+gi"Hp]8CjNp!pKZG7c~%ggW-+hyvghh=ØJ`Q£D5L|A{sqi0`U #VK'T7b3)$zaN7vt|.?cINRSAy1QbC]}q3ǧ3_ `!)-WB]KẼfHӲc.[?vEvͬxoÝm_ :uhߚx.# 9<5@Sќ(&^k]YV4\HmnԌ/u˰.:!XŊoEz-G6 fF‹X-ȃjihK5UaAwXPeA01jhHmga+!퉙anC74 D޼}}YW]M|я揲Yiσ C~J˱c9L)ulb0udb 5謝M=?t/+:0Bn´u ^ߥcC6Ճv0uQf*h5.Z@ډ 08=)SƢ}/peFߦ&sP0pY7՞㢧zRd(- WYD4`O +bQ01`GwS.ع/}ZZXуPff܇I ^5#Cl(>6K?mĤ<ϙm)fH$u$8__r5DW>h1WnB,I۞R.6@qXyu5i0ӎ?.B;NGe?O&:.X hEU&o]f(2ᅦA>]L`cEr-=y̶}u;YhA\ BoakfkXH節CڕS;&ۥ/u9 pthJRޮgPi|PpWaBQ\"%,;")i\2dF<)NbJUc˙t'Dp ,PZtPgS`$SM+I{ڮ|.)N1\MFNp\f4CS } mNl.7H mBH0#>dAsRgm\b.!`IWb~\D`O6t+AV~ϏX!=k1p3Ǔ+)İBL-Նc/u*9fp3ZئANKljkgV fTm}|X?ѽI:e$ u;-C r{d" XAK~a[ClOKJ#k7 MX_֞fR(42O S RԾd8,tt _Fb [>*n1}@Z[Hr@X Xk⵬\aQ豴qOEz6 'ҭo O苍c4Wn>d}ۮH*芻bzmM}f;>#` 3[DwH#ij'VBb]o4r$@K2OG k-}|=13!@70^@}Y ;O޻C0; w/*]5|PuT;ۦ{9'Tmd`mSj z ?7f;}KB]WyOc/7wzJU\k{lu9A4W&іx3+*|#4rJ6aaW%\m:zbUs='HxuzCE +eD.YۓEK-W ~.txC|uϐEAT[lgxwqcL;\=gG'EIn览%Rc~h;AH81^"""lKϼla41WEOvЖ>u3{r$FK@JrPJA$+vA}J=ӑ#.F=[ [VG~œVi7WJuХJ`  }}f/>6qgJ{_/HZZ԰nYmC*Hx2Z'&6ױcHg `q~@{ܔِhb +႘"%#^$Lބ]szcNL.fA / y_B-lO\pe0UM= *U)>6sϤMƨlg[eFjɼ)<=t%֗,+e)k#FmbH?NgFAU7F̫-壋Pk5^fpe-]PdCzYiit/cNނ,"n-EjJoQ4 5eD> z7]ʌy10{(\ʨd' ;na! 11omF!ϕBFcܮ[v)'uIdԼ]> b$+v]Lu[:G?Qr x|_kSW-Q?s!_P 5DB7ҐܾBEmfB̗zvzYI%<]1:ΨUZ2 2 Rn"@kZq3Ht/Jḇt%+K7*0Th `#T,;SL \Lܴq?t 7&@ Q"5Su}|e)_ipڒ0 pUc&kYWϲm 0D$Œ >+lЗ(%3n37ZAͦS9z9w<3FtDJ-_HY;ɘ˥?~/+f,#-HJ6D i~^7cEک_J AyW8Bdp^rDU0Ur+ "o+ArO?&ϾU+ ޓj.4t\k dqkg1|ŷna ;C2IE 8r[d"7rym6m{y֒H+I06~E[y^T`9U9%T5[uxy 'яTj:n*ۅJ T97nؿfd'IXNN1"B9γH T>+R1 WgC'nj,[Ǣ,߶)SH !v4'(ե# \DYZŖ\ {1? ;q9{W hh} ܈(o+ْؓn]aPWvSoSS^?b`TV%c1Um%%Wx4k"1Ie3`HbB.:o*1EN?B$7K,|f$oA) x%>7wo֌}]t)Nc0 eB}ToP1A?It6= R=cA'$YS${.6b^?4[ q'_X1'?ɌUx|`&!^GM qJ:F z]#k8GkƂh,ZЂCiQr2&M{HfKlPlcdM|)WC "䓰"vjp*:QհmW"z55ah"3:Z/XuHG2-Z/3Q9/ +d92~fwGmgXҥU o?HgfҞxQ^Cvm't.o,nfH@!OR{9W!qX}rpWK)f%&۲HoM!F8a6]]t{Ey- *N'V @N>H50} J$T,&½"QصJT+oiwCrd%+ mF7jUSׇ{zxۻt>L"^+ PZRA-1R&ơAɗh,uTÉ{/.\V3tO0ڙeW@uVM4~|+s}cȖ=L:1 O/B{ tAu'p杻ڧ.A >H&b-jlW3ng 4Fm^ ăh}\VVKt32Єnߞ+$(S] |_k}1Z{%㞋 DPa>Hukȱո'je$ *Ր3lzQoVBĹѫdR[śaDž{b)!Qy u+䁩ړik풾U,_z @ 9B"r!}Nضcuh8$P}R[=3\h41}xrkzO(CXL"m/\C?E^X4xвlD刟 ;˩a7 ŐȚ moU!Db|NC۟Ha&'G-{Mx~Nn;kGHY38&CØs0`ZdU^ˈQ`>c#vP m_D,Sih"?9ҹd ;[< Wp 8NTv( |8y0܎TmEZbG>n~9j}9 P-LvتS挝0+o#-aO#e':Ǖ ILMaor5Mzz؛^W0$6JN9e6n9t}{|ԌCoe^}R-t36`X#ŵ/t׎I˙-:IyzhtS"IW*rq{ uj~u\C@8LizGP+ Gə 8;$&':4S0럮dZZ? .Qn# 8xBe )bJÌ߀$Mka O܄.rbCiEE8&jt#툫 xZ.2={vܮ*wuՁ%WhI.e8~Kgo@šW ]<)Xm U&/XViiHf^)@\fƎF9X;OXm2![|Q¬d#po5Wr#e S[:M(T"wj^szo1g4jMI`gZ3k 6RL) Y6X; Xn dg%1;LؗOӪd9I%VH6\]pYN63J2 h:h,ξn`O#Hך`FoTO˹ $V \q*܉ K=!9 6 ='fzS0] @h=vӄ=:dANo_˂~i5_o a:;9 zAaD:1=#o9\.<[Je=k:YOf u=.K}0%'Q~ă Y=,'Ra^ R # RQʡ}_Ff8+.._*kuG띥 (GwvkW3Lpoz3ž͆luxH>VOB~}i;x}QDXh*m3XSfQnw}y/ nS= \qGR\88h~Gۢ%rHh_'5.Ct!Z YhzGd9*hj8IͥgNI2rZ wP}AZ 5]I֗M[w (&B%R|#]K_9,oreZu?FMpdH P;%Zzo;m?8}A$3Am{v̓3_+f$h^>t0) &dd%06>ϿIvAB[rx/q6tB,>:Х9JCfHR94H;=x@0 6)V.1GC{*?WL@(HqAbR dc|ͷDF^DɴYNꮦX5m܎Nޒlt^m~"IYkD|:,B*]v%A-tRAȵa3-t.e;`2 F2bʶ! ]Y4 tM`<;Jl70B Feu0 by,:צG|mY'b-iDսΔE 9XL _L .How s3 WS?v? 4۠2.`1CԽ.Y ɾE \%Uh0@%$!i(F< 8L\3|[DVˀ^hAW o^ç:+Y䫢l9UfO"*bшkyugcdN_m=<-/دOià6QA9۔g_΢ɼE"Øé@',}L g[Arp*?R*+}!C@#:#ɭg.VFKQq-еv'Qε%]n w}%$%F XDFQW@cg#R~PL (\eIƮ5^^6JhXbB}9:KMhr5B)xr8o#BP[ÓEN]wթZ'ڄcوP^ l8hHN1R0O}VbeM]gׄ~{ ɼ[P1LWP4|Rn hH?GCڕYrklHxI\Xq5U{BjCߋQʝkI`== $daч$[wqڠ37HٝHa$[V^$\~4 '%]8 cO1dȊк 'o~LULBx"XS/4r'k=ɶ^E'V"XNU9XD0rC 9KMM}'J: !G),8whԍ'a;NZnh:%uY }C)*m/+-KJ=.όEWG&ol~I#MT!^^gHgÖPhW@J'>hʴCTlBƞUXv![МaQ6OnŵbATt3O3Vb.b <')n~i KtG6გƲ~uk#~̛O h6p).Z?S ':@\!S#$ !׌#)0\xQD .^};P @u: rfYj>*/هb92`SF0~ hXUY>{H}HL t P׶ǧL.wcH&0)8 , a;hz$jA)+HPdbwIYZ6zFJv a:w ąbh{1̌ԙvYfAo ^\rbQLp[V?J8GVzMIkcn>g?m.¨ 8-;I|I^Wtܪ}寝XhwW[DԪו5T DK<<3I)MQA-ZE#xeƒ6& > ӸZom7OTat8\sO9s˳ iEկIX'cojDxsaҜJegx 棭/&tV@1bPB1dX6<@IzM[yv6%c?3Ǎr>&p@X@PBE V#Jʌs}=#_{ xڣ:u;m*j%S:V4:^dNӑxF?.XBha穨~rfWj~M뫈 M0}"+X)uy*okRd*3G ;zl "Uȝ8d/MWdOj5a8S]}~6yx3.^T\֕+aI'^i:+H~ jNl,s ʆߟQV>+G lͥv;~Fɇ NJ !e7[Csw8%ezx qQn1HYP[xIAqlՐe^rYaoe3FI 7 ξ^zQ~Bvx5lPHНi \knguʳ:KP*K1{׹! fJo|ɉü6;]w*S͙e:儉5˪bz[!ij8BQuXTű[9}9% ö]nHoy5NbeU+H2|SP>9ϰE!r}&Bn zJ6+zJ[p·!J<Rķ4ޖۃ{}J짱C -B?/I{}K&)=g΍xda QOJ2%+A25n nVApr'gnoykFUZIDx]wM@Ct2-xҌAJdi\6CQVg{I-?,ؒk+2+}B|C`X|xS(k&"j˱hr0V&{X?9g!/֓Zc=͹E{XֱO1BA0n| 99Ȁ*Etopv5k5D{y}nOǧ l׸D8 & Ftix8+:!tϫ#t鑊s,>6pH+/](-d`ChLg?u= Xj1Phɛ^#zlz@i8%IkHB~FI],E+wL[|g3Um!xK69c*J]s=5Ib.K#cO2hg-Azw/B'lmRڄڨH FwGbMbwS8p:YaRL&=VkwO*ZG/Nm'lt?~"ԳdfN:I۴B^2^aU'6wnnR](c I/^HRG:#ę<0x7d@ik4^ؑ?u J3 ZXrSMŬΛA Rr MIP n`n3RϪp+&q);>.Վӫ-63bmluq zeK;N0K[q!z:sYpy+~P{7x%πX.nCQuC$.C)A#ٞ!C2[ }0XkB_jKdzJ]GwojR61 4jU-gz%%J`1NT k^B,Ar随($A8m@zo<@`a1?5(.T; ݨPsrqP~>!T{F.C/]EM"L۽zbhi%Gz8\0vv|.\Qt;ƠdON~X⸡0QҐǚc&A71#!6Z'u9:3O֐=ɂ`ֲL0>[sAT<=(F0' _&r&j, ξNmu8/#]L׻[zǒrQDп#A^ ,k7TlU)p d7Lh\i514`9z =|5'6>ԛtv@5JCX_)0ϸ a/L&a#y״餶`(Lޡp3D)b_H3U=惮&"qesNc}+Yg S(U ;/,kD)E qby0_p)C1FdFImRr+_cp I6gPyX P> 4qWvNd $+,?{U:ep69~󤮪=S1qqsKߘ\ [g ;`ݍeO= Cvi%yRJ#ͫq۝-6j\hj>Rx|B#OAL+SmRbX (D1LNJ^n3/_몹HWQ3m8y^l8EB+-T>6&^CrL`K16a)"(Ɋhb(*]+%ٶ:YH/kn$cʓ[B"ǫybDLƙ֌]uUI('aqZvy^~\XsZq =t¯mBu>O@ȬY u(Ƨd0XcX5!> V.Qp[C,Yd@5e#ӫ 7I9)ջ@^E^ΣnhI ^CfƀZ7?|G3,P0R'>d2a7 2˨snd k*X=DC8$<9{)$(*0m:5#*f$mo1n& M:5@Tk<#Eapϛh3m& H Wv~I&"[=geQ]}Lx͂GA?բ ZcBEM$sizaPJ2:ϴ/LewQ%(lN2W-5l7G[NC4򦩱r @B?ң,m_iT+B_).lFz@c.#Srů4ͣL}PaH T_ϰqxh(3i9Qg~qnA6 -‚X;:Gد8t343^HH/emA_oP5g'[Bùssx_G`6ǝg 502I-^PdU<0a x[-N)^)aλ<6JE??p:e\R2Z/4θXŸb3yQ]0uh79k`Esa%9zohv' d>Vջc%N.BCՙGp&iDd4EjQT8HڐbQ8b€V׷7qI/V~D/}euIO#lϯQ92[@P;(|=vKO%RGE4KvV܃|M5~b-b`yĐP`l]o=FnK=og^ŭQ7H]1Ғ2,UDr_*k1:,G!5ݶݺ{#~{ |U2^!6^LW9X0l=#-{"n"= d{i uEKhTrtׄ lTxo,Ѥ; (}R)?C2oվmiX|Of[@.kDli5WnDI*-{T < 0o?*B>q r ǰSnr.+U{Ip. ]YICU/ֵ+&s(u5nzDH^{|at6z36jOe'8*\PBTáj)"r9!޹gvߜXk_<-inG[&3U &+9F [2WmvRnjL8 综$[. ${.s'D88+Xa.6"ǩX}oih=2oNS|SO#98:>c<,ET\Ck`m W%rPp4HW s2w(Tw9S |(H1C`/GQ\ZқJ:u/,`TH^4okb\Ѓ hZBe2.sB6T=8/Ja|FsqU'-#56pBqBO6|6U)OMb?:Tꙅ@OOёO4b6/]͜Ճ46~S? 0 nn?M2!FxvƬޚ1Oq~_Q_ 5x̷}%"pa0Y:~GIݹ%c{~?oYq"қ7t)JK+by |ۤ`hYY{ZݺpkDĘ;KϜbe#7YrX؋ GuFOsk:G^jrbLd}3nP@[B >SęE(D-;IO}Z̪NqCZ^eX`)SfastmtǕvPw/ElZF=p0vۨ(5ly Ouc3)>XCkMm-mwb s=-mRϩwIu-M١`U_`| { O/!'#Qt8M]O&  m?9.lA $UYm^|i<v4ul!Mzc6vK-?VLΠeHd A?}ghTf%l;qTIè$)\WjDP}|]am-+HPj Wڰ8K 5DZ ]7\f&C\@" sxC8޲TBɤVWfimgB~ zJO %} Dw[5͛`Tβ"f6lwwtL۟i`:kn|,2,['6FŃ֪v" gv5ڜ|CpH>g[S ^_yDrI&F/n!QA@_FHBr@ԑR[ǵHAb^z#= jk?vVĭ#G/8|`츾{WqU1-&&Hn|t!Ͳ$xm_( %8ݗ$ X-ĵ֚h&& Xkz3)0=n (\-;nq<%yiOE͑94 e%r ԃ])spPFp刊DARp~.i _DUĤmf]TTJG{ZF qF Y~uw+Oa+trh8ٲ ~DžODTTV` LJ0)/F"gIЩ^&8n'][mB臱;ӄ4Ȉ0pQ_YgJָ%B9{E r; ?bKBY\]P$ XR莑H,Ðz~pY|Yz2HkT dD_Ξuzx1rY( ^:O,NMdFxzpouT04#ۮ2XȰbii*(X0r9y^NKΎtL'OA#:'\;o"Q1י&8j|A2%K?n '4vbCQQޘV mC:h֑VS~ 謟rVJ$R0u AtiH=Sa>|Q9[\a6vlm nm ̰~$ݏ* va̺ZPRLIF3U8CrIIDRyc%uxho(yuD_iʎť~/h [ v]F h줨e7h}w"&8O3VpOYZi]^FqNx A2D KI$wೋ%HYd ^Z&'.lfP(̔lKt=+RgvRvcgYeTgUL^Ru&lof-ujCw-ғ[9<U碷 ')m[+<"s=yA=^uV .ᔈ:#+NSBBfE+d4{W[5I }~bACo= 63TQ_ͶNH,C=_>`#iFPFK$BYV0P=}p\B.%Yp1p{>P" ~Ť&c,a8vsADL6NJ2R9a."RYewG`Q*ocXe)YNZڑYfp^AF&׮ܩ,:H$ :u8D.5\/WSnN~"F IN3:ތۮdam2]ta>t\7d3vY#}_p=tx.-q6jU^U̒'݃;@~-8d,CJKD\=Q7 %Had#ф\?A?w1JE`WH(:dv qܨxr_a?dh)][Of?YS2qJ~D쪆 _f= ҹyCeD 팼U֚x*NLҞ[]/( =|#"g'u1%YcR7yPlM{:Xʖ#$ɁG6HW\Eb0}-^Hn_ ȐB_-IG8-1dOvHc&UPvGM` һcELŻϳi4vK|X :H8SQۓK[` ٌgޙ-ZH:Uo~ŚђS)EۄGR.0cUZy+ɢ\VKhU:TJOϵOC3y؎[q7t_o#fZS[ާ m=˛p>+%Wle6CՔbiz F%O!MEmFXx238cjeP'PNL]tȂv՞<ʭ|1;\$DM('uw<S6N)Ÿ5B-~l$"u?]D!"ׄbx7⮯;D73 UP3ƽu{ǟ$ޡ+<>>` q*rE)cjvYf煌9#1ECȲZS0PHB 4y%Yf/RȎWѺ99]}fy~`^Ǎ:S1 yLloF LO]ԷyNYx&eDv4R,Bΐ)EΒ뎲3 'wه~g+Y#~*Ytz-lhIb ګfZqdB˦5Dn>kNd} 0H]! .֍c6gRl%"bvT[#d}g{` Vowc:]XxbO,n1eV$ɥ{Ӏ$%X5 n>̡)VUs!0)"MF*ib(B"xAfn#C /x,y;ͭEMA>h=o@z䚮f,Ư>[~EҒz\۠MѤ B N5?n4!k! /Ϥivce ×aLǧ<# l͇L$Y%HKնӞh^]z91lަc+(ױֽ[Q4Yܱ(ScD^MQq?QfG2\)yUs e9<vo-a0;M${80iL%j`b{J5hM@~k^= ΗK.t<}-NoylQ/^ʜ3ȮeoXc 8 fIc&ˬN9XF4{>w_J}]{LDki (B`‘ ,Ͽ;PU뽒?ϑ FHu[ˮҹ3*̓eu;&ZܕMCJƺVgD~W\7Kɀo&y=0"䒘 }<"%ˏlՙne s. ȴe`f`1רIjd%3,Tg kVsc@Pe9˜!"ܦ\<"/ y ņ)'}*r^QG,sm0̬+Fљd;*,)X?o+~k 8X0\ZAV\61įuI:\7_6Yu;(7[1>Ja#,0w:Z$a)١k1TA#9!k+;-1yINHGvf)Ft}F38LxӍ8{5fn]T9Qh7q5) s"wiB@9?`krfӠ#jdڂWctn?CBKdvv*NƁ6ڇ"?C)|"ڎ|A.cN}hjCA!!c}[%4 2<"POe׍1~$Օ"QhX 9$] G |0%ZrK?7$԰&'өQîI> JWhrcx8_í֐EblRKݳKO .+YSOnp,e]d +tje=|9/0Wa$55qW2%,A>}#-IgEu!#<`G/L"/?c0Վg|*"x>p(w $PzDxϢ'I-F=f3d]9Xb=l(θ1@Jh!bB?y:$(:[n5wM'4@6ʕs$,b :w]ZB*3(UK Y!pD@=4tB͜A9jC&>su >6@% K)T{گJ մɭq*iC[#D>Z 0'$1#,¼EfoIR/2*P%fWf hTM ߊ1>M7"mC6fUPl N^OEBSmqdEHqUZZoTHqB3Ty@2kS8%9GѠ9/ З?m\©,=+;ڦ9V޶z n(~(pR>^l1m %6wCeЛmzgTw#1XDH2JuT1)Q/qpqIT/L"˂Y,czǚ49w"5'(F$ W}n\Ǥ\Y&+X5nͅ~8cܼ6_߽`g7ʗnDHI4[ǫ$hADžYxQl>G< _JLQO[K}əwVBJfQ]:Z,wt~(C @ fSިiKi4=YN9P)U`q[_2h IS&=fzw;Z:C1?cE t zjpA6&^!NzgEb=]yN>@)n[.5s rYj:.۠%BokR|ޓf h@(.9̎TW:~o٢=0=YvzPGPzҤtlTJd K@~&*5 9*ii)Y P+]i=^})āOG"=9 lk'֡bqj>WXAo++# DC7Q)kKg$77Lpk\ܨ 2 * D4ɒyΒɚ,sOJus슗ѝVDZXWgѨ2v `V L 웦YZpeieI@(p'2>b9(!f [<+%Ew.T$eLZFlaVAp*bs/iG dv:ݿ$TZq{QMbQ\@+<~f>Nhz}#!{-κ]2xk^3yvc sZ춈o*/Hj zt$bFavu M 5Ҩլ^ƀcXXrWIek|D4˚qO*YVoE{yMhLO~{QxZa~ZCK+;*8։M OShN?G l-G*eb@f郸 Rn{"U㚄yp!]׮M+˧;Vv}{3ڍ GH*3/' =+{& ܽyЩWrp-~ -ƾY߫/,}&`ɇUNLqIL}Ņ Hhq}5iUJ~6 ]2oŇ^OP1cff/AM+oˌ>\&ػ:VV,Fv'6+.񰩀8PXp_g!B Ix(96ǽAs]W@ɾ9`~{R0+3@cq8TύaH7v`agtQwQ窱6.)"RKbrڲr FXCFa \VV8B64:+>RW C R15{ {U@lY˯dO,!)$/sr]; m#[n~QU Ű 2&3,^ZTNkNji|*2KW-#INU@TjM2nkZ }Q~)2?\F:_s=q8SjRZefA%f((L46)~>=Q|Y`I J?Q1xr<8࿚Ճl ,`F7 O*AW:BE/li2'g[`iݗS1bںl|,د'V35wx/b>Y _7iWDfzhS ):׫Z%lIC*:`%mǎ W0E$mj0 ED6W~\bhƬD|I>Ĝ%-hSKP\I3T]q=9V?K6$#sB|r܅Lą3(9v<4 LboS*M I쫷elU? wmi;u~9vR>GbbPVWqDԓ&)fI̜Q' 8WQC@ˎA@VM|{3q|&mu]!. MNp8=-~U43f`49D9^׼8OQB pg'^$Ƨ+_Rduk@)c5KQe Enow^jl㾔N/j?'=[Ƥ'}8yXjI:=?1vs^kijYj!ڨQXuB󁶑T}qLglju\sA lM0 'A ]Ɛu]!f 8d}-m?fc f!X_S2N"r@`T@y,[j]^[$⧲dA?`zr[}"+pY} W Ĉ]@|^zjka׫^,&W 1Vo ,O@XH0W@x{zUd,%Y˟`MDvt Fo# AVRtKH QdI~1,+h CU"-BS4c mwRkN~a vobEnD際]%Fpbx. OsL86y,Gd΁фmܝfE?^lCeOn==2ގXR9oVa۩W#=wV_#qxaC K/{I1m2Q7[X*pL, (+0/cY'RWGn6;?{nYP]^i?DaS >.A9;K5SHR @ə[4NF H:@3:AXfLt=DvA3 HRT'k,O9e8>Oo$MWp*2i҂]((nܵɋm.bE'6w4䈌fP~@۾;,e>O^}&^=q?:-[.#8݄>&X I61m('5KFE٫3ߖEHo 5 5+g ǡ# e|C~aĭ 8Xg^>RPL$v wˈWc* %Mshu ]Wx4 qXOf3t~)4W9J1n2JT"a}@cbV@.CnOIj2&qEL2,`;5TPrU`qANwTId%-2;sEuZ`ay\Uc$.~z}xUf{G1r"R;ynw`Y[@4Gڹs65u 4Öpݿ5óu -fɹKжjauH6,p}qEtQ6B0JY399t؅cULͫ3!\M5C- d`/o'G4Cud ,-4;ͅ mѨި? [D&w2oO!FC (O X0%56pIa@ăMӧ; sGRP胩tG N~~8"rjc':h%h, &1՟GlBȃo{t4v)5p~w'@Lx%;x2:GQJom$MѝD|d q̮3*QrsGk~H-ؚ_5D [(}ze:31D٢sj82`~x8X&o3 j(z_ccj%βBŨp͡r,4%5'H|L)JyɜfFj`5Dj>* q?Ǵ"4NEA2@-wr AJ3R[l-w4{K>1b:&K\zV0/[mk w@aH8N00r|N{h|}NڍO/X>@zY\cPk&A$muLZLw}Xt+)rW L{,|]搟y``P2k{!?_qw'_a֗D[$9VuUsUۦƒ§];)U^N ֑gEn=\L_!+Ln\ݯyUc%j˄2XlJx^=E1:slU(E`36 ICyߗ$,Ď@VV!|;3qч#p>nVw+A4k1'ChO<$qGOuԠNW=SA 9\Y:hb[`~>k&Xd,&_U\t QZgg9V3]>Sws1h/֝6>aĉ϶1Lql#tlB+"ͭϥAPm@d#NN`GMQ?3 Ԁ6L*>:_n* 64"y4C71cwsX[E44X#V)G 䍳p ?IXscP/lA|8x &梤P 2L@Qaԧg7OSF4T~B$4@dI}Xck=tLfNs.:;|}%Թ&՜^`y=]_wpӄ%TZ!bҞ;|ZuQO$pسޭwʆ0J`{ͺo-A-R*Y|8ra.!r{_^Z08` zaȌ0H젆OJighټ c+ #>MUe,u\1$NH΋J2^r?m0{: ٠ +ߦQA&σ6\@7v(\] f G7v+( 2aJ ]dC1x.V3s-dVZl—c{mpyܜcH g_ ՛XuHU%E63K)nN-5Ver^I-{ް}\6(r!Krhi U z2ȵa 2 /j#|‰2/z!-#xN.{M->W/WO6Se[37T H Ǚu*ٸ? qaʀ3dn/%6υ 94 򙡬 Dm7& ס<67MۺCu<}#*RoD3D N.Tx̟#LL"׫l ߻+|T=6/+s^=ӂnT,=!xvVWw2[v@[79iޢމ,È@%,req?pNcYBH[o#PS]5J?,!վʱs(l:,7 JL!S[?I搦=c#/|)*xJ6DPb.,t^dktHt%ёݿ3OG _ B^?SAI"*!p L Rr+"Kzhc/o2}-Me%]eH-1{Bs&%@f'XKt pԁlGK3TU\&@w QyԭWY$`4ĺ'R(:|-<QjAd}Pr[% W "gYnAwΊH vwRx7Ԛ~R$V }!s t|YKy8d:zEKf38c?_b NSqľ3< s[XSVcО5-HiD Ҫ{֐,o!s⧠`ZJ*[zy,L7`S .L *>,Voe3*I LQq0[a`f:]RHTp W녩 PRKH}8I }QC(w)IqqW _NכU0ߑ@:]B:nlJ BWpgDy0Ln8u }>]FRkGG:U/=+$4}Bht?ݘTt\g#b$_ !dyD,3J=!w}3`{`Re+kGiѤCNyYI;RyFvVZ&;6htS7:/.sie_N|rs$!# p1L{7reAt(ۈ8~=]X0LHЭI"ɑ$Qky LL=juh vJuZҙmAw:3ev@!\ђ _7@j" `_^!Gf8(ksi[&{J/xhd؞iCUXXuv].Ө53t:\ΰjZ p3_r{r zXjgBj#T`cD,βf O))E.l_QK&zlR0mo$RV6.Wݚ (¶a +xFbmkle)pVmZm/0$0;VZB-yfq֊3O)IN HXs^ohŦ-ZgSp,kH f\&uȔI氜q!mڈ'*%>q Lg k/ eZZs)u%ҟ,ͭg)8z$4 *<l]EO'/X2:*~v%VZzɤB._Ys'>ۨm܌j73mWL\*^!&6R#8ZQmHjZYcpx뮾GXOW{$NQg STχN~2\mP`&_S']tb}Zp-Ey!yq! qÐ >SFYZ@#d(Mdʼn^CtwAK#`]Lq=hN)AB\V"z5r3ukh[IRfPkz7*LFsOlX3.V=te/̰I)jjRHBğ!C^h>d5p;Pj8N},)g,n($'$O˸J|˾i*3/ )#Yq*>T Rj-DWm#X\i`Ms0 %$dH%N(kF8}O%ɻ"-rS-+WRO.MKC.1hǩQx9X F1/!<;.cY NZǸ2U:,cI-dj]h@I)6M@K+ogN[g23rqP^`dMXʱK嗳pPyQ eCD.SPP;V8);PW'*`_!d(+BK9 %EhJA|l׼XhٌӹYG=m u0&/FֱyFì}A*d|%%=yhN rW!?dҡ@*Xi0vL^ێZn$feSMKOC)Œ3($P#!iXflכhCumn"yEuո1cHAW- {f>,/)1X'Wz_A Ϩk|GZ|HUF&\s%N;p<|QFǹ"*U'ɋqP]P[eeMI/´՘499:4ml[DdujVJf$fKY]$$ϨP VnZi'E_2-&HӏU,,- m~#Wn UA5:|vI>vi@[оj"VYI8flK 0,˒ ¯2-A{ߣH~1wt@i IZV NFYQARvS)& R cz ˓q`+B8bPm|պ\ȶ'f,"(8X6\9T-ȾMt4:\GZɴ[=tːfΡxvvI8Їn=޵u=D8jyEuIUw WJ +!o/ #OAǣVҽ.=h GZZ(QWLb/ޥyqGDL50Az )# >`W #rfhY!ڝ`1UUC7`fO4!QE2lm<վ9nA=]{8LJ ĤezePԺ^xq̋ g#} Rnژ 09_!*x9A߯NAF tbBKa/5"~OF2\-u]9?7X͋*QJs-Q#-T/æP.7U841ځ[Wv쏎~'+4)7W›MxP5xcUԬ?gF&w+޽-@$%,? @Hn{x}ѷ(kgޤi'\ytDT(٦s& Xx,&iTeES= ]I[7mNVNi>.Τq7,l|Anl^F e{?֤"G$k.vk8N'[ (HiV]nOG^JrMk%09{ߺ+v'S rK$ppzeAaSf(ɯݼaȻ.IE+)iӣ~Z{:aA*B7%sݴ=ArwjIF} y ͞sUlhY秅<:`i뛕ytd9\ۧ )֟My3U9{+)ie+/7`y?`z]q0K:*:{FV  sɺz'͇:"Q~,‰*G!To%)Nkjd[ad:B4ԒV&\ZgȕR s=AӘ+H^VzD}AgVkoDl!h}[(3U.*Ld»E/pp FX|p?5SO <%s=5c(9@S_hP_x>K>n~#Qj%gY _Q>3 p벜~RӄAd]QsgƆ[)V,fCn;#ua:K-:dۈgaf#MR\)zm3w1- _u zq,B (S..`j2!/jr? FNmVb>F H Qj^DkEyu°nS֋Lqotq|=n '<85)kw8ۋޢ`.|:xC˞#a֍ E,t&L/QX>\l T׳ 8%F5-$]nA-WO%[} = w@pIt;tdҹ1`IQdR< ZaP--MNʬm-+C v3vzcT4mW=jw  F'ʘr>Cb{l2㎉F\ -jCg=)R N+L +w |ȅ3r#hKXLTҊL1Ϧ'tYSh7eP.ds !.SpADԳ<i e +DA৿)| *'/Qh.|QSrZ!RuVS͞A\׺oק0J:V;oE91y)׏R߂xx0! H8N9ctUtwQNa'QEgOpi'V'bI G3_RR|Wg2HQv3c9jL[{' iQN) UofW`ۏa>cCڢT K<޳Bӿk^an!;Jڒ"a(m6fo;*U;T[ۀ61e&vY>~ɩMb#0* *{{k SGjq!*3Q +Q.ƃ}}C" Q" R{uKL NѤO0&{s*4SA96`hIan)쪋erwʽV0@Kaqak_qȋCN[٥bەޜuyGf EpGbC@b&'I r"fTn,KBl-[³)rЕj-3L-ٶJ o0 o[!>֜ 1v_VmȺ`c;\qoh\aĊsNw9BTDe``>:0j>b)<|-i@u`w1ma!AXhp`G[Bg)Vڳ"/Z]~=6 M#RՄdzOd +cal* (>|{^o؄`%z$[W0'zf2/f͍~aZjYEA4K{4 e 0fh)OnmLЗDcp0%JIs<)8Fo}I~l`\a`x>R8] )ӞǡWU Q-JIMfK~_d/!3"A$'t4ݷdxSz=!8_ s|ַ\:4EfwK7A2nme؎!oc vOŁ=pԇjf#7 0#W>NLjL10 1psϴ5V3465K$.8a/ LKj&e>@U{(c$4I1 %y[[ϚɆ nyYӓ>QGнxxnY 8@^?NՕ$/qä&!`Fq>svid`7:5\A;gS6$KefL_UqJœl?~P5&H"{:\l]So7E}ZU,S3uI W}G6Mc`Gm؛AU&tر^t.9Sv/}=6ƶ _:L|M JmB!*KG i9"i{czVA_CuD^3 Gc2Q?E6`wqOU`툐{ Tcc0+ꔯ"6gkUεC3MF| iHp=MAjZ:q' fxo|I܀",!>S'`ePLӈrw\A0zUp|+Rj먠 M&CKKqxۃM^)OetuW5E9 ElxLQ<%T`C2nj!_*I"\ m@#i\ E!nzsdcW~z6|2=!)5SPU2a5xp1FIDX\rZ,e'f$d4 g rC-2BѬ2na78UMQ7f+_-mU>` >.xlė/Wމ U'c Wk7qtT׸`uHWwvG϶U"%`uaNy0YGZ@tow{?I{22o("WXP.r5tw2Ix6QSp-[+sju'^)Nh2"NA!s/{#*`}x1yZbk1JEe0܋_/t񆯳lxHabF)'oNVJ=,r0F[.ԍJ2@} ڥ_o7٦V4{PWAIˁ)Jwfz>q 6ӑkU?PP P5dڟpnQCKo48~gᗞe/{΄(ꊖbE= ejNMS2Һ6o $,"В:VTaGTU2v7c^4rs؜2)WVNYh2"}QR?iܚHW4ƓgԖH+'zտe1aSRڗcHQ=р2iTj8yƋ;1v7>|n1l(*/?*؃ƑN\pl[ .xl|@_= 6V{+fוڡ-$Y _Z'6 T+.7NUE1fWYy]OAUn†X̗Bߜщ:<_]mOSˎw6ʈdGd((bS'?Zy꬞Nc!Ke1$+HbE.kHxws0гO)@3h7C(ʔ'Eyz%{L?#RepCrJD]MA7pgE3jw +܎c}q?٬n8R|߲dHOʾ6\xh S2YsXlr1󂧭UW`C:!Jc:ۓ^+wEFH 7pf6Mle{G.lI_jF{ u6n\RxM/m"@R&qEpd#*q#&q>;7p⼗*͚[NvzoiKTYO, @M9F(ݿ`<{) <QMI(3̑)yV80jL@bʇTskSXtx¢2FԽ[du1W g]zzm%嬨6oչT.N‹7 Qюݝ3:s3/¦  Յ`E:t4gIGۥG`v͜^0@߅BCbZGq[p"$Wg¶p/*eV9}?ETlEܚBbè]qt Y# %άFAσUOM+;|9!f}ĸF <ΒW7=xv28}.rʩ9b,8:20M<xf$h^N<*qBh-{ l~{#|X[C³gc\: ;*и:n"]S2~]Z+o+u5 t9Uy>bBu[tN5<#&SSbaNՀ민)p*G0q>*i%M$x-|;g CEPC։/Fo" MeƹV)L+m)܄X6j _7~d'eN̜ꎠAQpQg^SjCGI K c=gr_;=SGE$P)ȸkXd/3(]VIEۣ?y MWG_p,Uԥfx^QJzW͞tvI f#6lѰ%rKfLX؏GR/MT)}x4iǭ:IF0 G"*bhm`-y0GNqF>RE%L8~ԲHƪ(PjѢ.V`OS+m"lݯ}H|ֹRf zMQL+rcӯWWL!>m`֝H9ђIlz3:{76/".-{i 8 SĻ(_k2-fC0\vXߘ9xnf?ln h BAo&)~\%."댢˙\?1Ӛ`jP4O_ő6J<V\a7'[KpwDW*֠݇x"L7]ʚ)/eD)yCWi؈>W>/[w}fg/VߠhOl*)rLlۥk3{?9ˡ}_f4_0Ka;p /@wGw,RpU~q\~d"=t=XW"T45Y%`֎ gOt{Υt-ĺt=[ kil[O_{7Pi`}7 ?@,b˷?XF."kUO^.q*g~PE1ꝴ~cﰄ?,=t7c_8*@-u[^A"]W1[HRWZ8OZ).S20cxĶTWdSy3<^GF>3v78fThl4AH y#k-'1;E'Xh Qbs8m3MS3+Iae֠,P ;eR0Y+6g f)-Y7)=!6#7_`6 f༤R|#ؖ{,qN_Itu6P{$6;lrFR5f!EV/S3g.١N>'^ϩKIrBIr 4 Ӧa)s{ٷfo 8-߈"8m\U&+h)u6ǭ|iTaKm;&|55+]~mtޫR^by 9)Fv llfq+ 'SPÿZǁ'zU7ZCl>XTAF?PԡԄlVhQIĺd㛓G 75Q>%<%cӢfܶi_I)Em4 7ϗ\`zr4V[=yE`f ?-].SY!u7w#ِwLF 92lzYNP8c`IDl`` rnj='(~^u~(HI\<UO^DV q,MV_mKJ}:y eVmPL(;_f)! )Q'/M;iB;^Z64T숟I(x 7Bs%sqG?9Òv\$ދ%U2Փ3FN^5o[5_RiosPr.o@]w \mipLtw9 -9LBR4ZW ,_7R&l]t])9xDq/vZ*(;:yu[uc7Zj̀D(0 ycM.lvwcJ?*3;D 7-Yioo! +ēcfk'e0}sJ rƒCgZa*ԯj b_W !}WqX&b[\ O=Mhl1yhMNjt_Z'3s5y 1wq&bgΛ MY|t_,cߟ ;|wR_W)-ej9cP,=ˡ1D'mK+P΋H;I[0(~s*zzH " "F$2>R{TERaPPF5[;6AW2v?ij x&2"eTCL:M86+ 0]Iﺄ*AQ);sA"oºASX_g? fXjU~~]QH9a1ԕ>az6]%Y Ug~<EZ啕5228A!ζ f3\Ds']jG@9xܛN]@f}Y ^Qz\/e  yޏhn;ͻ*Xwn)it1 ^b9MߙWT{2j1~V=O*/cS^/YJ7Ÿ}HFxYs3&i:NI5z:3P i3P>e' ^5 ]`2.t<9>:r>]4=a dahA #0ӑC;uTrA=8mw|qD}wÿAWLd5k 9p$TrI`Wҩs$ G%A/P*D-]nBЄ&atF?E{%r0 ߦXԂP"sHwBA ZGnDklR3 gOIg>|SL:"OBmjP 05+XKC;x5̠u*Vp<cPJlQ0Y TAQi;KLo>Gk [D#_r'U})Sq&RFN5EprJzO4GN]_]J0xPxQ#ղ^۸|S#pM'U.W(O'Rs29U*2 dB, eF^\%x'/^V`0^%? rU?ѳ 6Igcds)ːIm G}XF`n{%2]%uLíYkSS>-{V&X>2"2uƦ*nH.nmCHM3RjoИ'o3^-n&jl4 f-63y:. \CQOߔ!r$ŌggNM#G{7ߪr/۷NȩWF6 C7hI#-!J#Uޫ ##):[B?ⴍFd|x-Q*\-Btqa&*6 iĔ:E@^ã_W+}Nl"W0Z_XETTR;=e74ec| 4 MQm 6*L%ls zOL9]Qot1{(H5tNt:j:DUI֤*g `L3ݘy5-o+6Ijc^C>N.lu[<~aOĝx$, ii3S<3-ob\QW! 6}g wG(Hӽ,4>(Ibe %䤻gd1}Co! pnEc0jFT Ƕ%zcA]!Aibe^yF\Xm6XpĿȩǮ%JZIȢPvv3s 'w柈Iڐ} 'TUDE'>3d72;LOT'=IF-,`1V=KKWh_OX ɩ5i{ էƄd_>Oh4 JI>w(~ `TE#6e) W%zL"t{`uVX9ۻFyDP`uCqol9G1Iߣip7:ۏ.k}a&[W0I ,Ǵ8{֬-{2=SoAM-XFO,/]X<{ dU `30lc&ɥR7& jexKJH\gp>|@t~A,8pH5jAPؓUjXƺ%++V#ZZ]Z,kfo-+L Pۘwi52.X{("ǠսkHI}M.*+\fi~ %`k{:Rq΢pRa,J3Vpqiy 4s5 7;1UA nOsл'zXxN荏sUq-^$33g;?(`#,c54 d{"R}O>2وmdǼ ¡Èȁ)FJ _ayFe$/|NߘVɇF0aUg[%4vq|PKSjn^&ؽEC/2d^~֋rдIxjƎTvMZl9fD5W6_o׾x/q V܌ݹ`<Ŧ:f‹1u*Z8fxg`&mԦbfdM/& 09%T'orPґ<0|a8[݊:,F$}BozS+M?7&}h' 0[iSQN&uVB9C"Xvcs*xy}?jR &m<9~L< ~!Q1lu缾jr8U6.ؾr-x_{Tp:6ôc4Ѻ֫”-$XH9X5RB$`M}RVʥBSS3aWY F7_eHk=$&snM+fUW"F7ZSj%|48&)j[-~7I'S>HK#+TI&L=2څ].j߈=Wr&?⓬{⛢ہv5EGUߢ@]o͍Cw - eP9a* о*`o֮~^[Q?d@-a6!9@2nXE:63#$r Ok5svBC@xܣ7E"?@ 1 u]Xo,': o q4b< 8Wl>fY{ +f);:.j'jw>!Y"ޗ/85&C^6ӌaɞ$4R'f<~vk.+L.OR*|""fDo;zZLw0\:8 & ywhҗ=]dW``vDqC^TBfg5  w(d%.9qEkw;f|2:28o 0'MR0C%"780;o*hoTt(H+{qJMe1Fi:)߻*ߏU"~QL@ ˾i?_?cp^+K$5Z̤\xD$3l)@J YN+vN7I4laj(dɉbi`q?r\;o݊q:NW#11mCE耶׿NiS4Aoi,ai aumJ̓ ;T#z+oxi%$+ֻCJU"6}+'~ 0͎֝OZ-KWF J3ޏ'Dl%R|r2~#)oC#7(@ .jV2D=,~i}4?IUBXyqJc[:kVDcC˷z^Y0f$}FQe.~Y#WO[?I% ׳j'ߡ)|F<&GLu J]mkz㚈vDV3$m wn+ ɡN}";nQ/׈cv2^(GM/1ڣ$H҅)M K5R~<\ P]ނ 7O*nZӚEj %K=Z v0²:zY[.UHeA.K_e,Bc.|\3wd8Ut`MkQ&jtmM%f}Eƺ{m՝kd7f2tKӪ)tNvlTŁlىFWrbG5=σ7Xز)dz^n|Glՠ a4wz0>Z~m>x3r*v'lbs"ݟ`T_ "_Zw?l|=(vЂM'$פTi$7X5si/db,B .s`WxQ/z 8C7& w+xk~|i#6+"HqەUWDU΃$a&b {6 ;G>."0k[stݕk tO385PMz\kfɜQC\s3m; -F\/@'>9lD#<γk~H) 4p2OM2"b)7mfbzP\OK @ $@sj -傕dy3P<)3f]!vw= ^ȆHzDd|c2+'gץt}䆣XБf݌ݢN4)h/,7ڵ3`G qdAX# 0A3ΰ<77h=²t=]gr)J(&iYv^Ht ߜe;hyIud=fJ|Lk"8 .2S*m`S4[}c*>[} W, 5yGG({ d>\y@4fo<ҀT!ZK׸. c"zL ٩ eNJs5**KޓS_$^pkwGC{#Hr 6y7u9Q88_l\ke-,5:L1ߎWe@e8Եl&6vO$#sL6%+L@fءR~?YT0~g"C@HLBgp}y?9pyNڣꉈJNiHNFܢV}Z ^7MGZ5|p$("ڥ]X}ldWv)>?].5.4M鯎E.8ĔuTYtĸrQqG-K q.tXKk,~k31769y~P&RRif-'nq=.] $(KCz}s|=fzxEY(鹳] Iǻ%p!zRaq=idL!)E2lï&6r%hh~GuD{&_E%4G` @6\7{@^e sp+bf%e&MOoDDihm'z}-w8(Y<8>6aJhpr١h`ٔJˀG $Nz ŲXv#/@ww+`!5Me@RvGkp2ӯ-m\^ͩFߧ@MKэPGA>~'B/>i{6᝕O&2"'V錞cҧSk+:S[7[_9ߚmi xm"Ƚ#bfAA wVneBu"8n_g_pCG(~7f-xD[ggy23u#SUU+ڂ5vSn ILlD=d ߰MǏJ|ۇr3#A}]E2)1yj.U$"}7WS-8 O?sR9_;_he3ZAQ5wgPiB9)fTc nn/cOg26H2|qe>g?tW4rXh9a 8 ֝Pw3Ti+]W߀HS8 nم wj&_MW]wG^e*cVy'LwVéOYF|cI(+g2'3 ]bݖWmm+x*W? Dp(=vX[`+ O*.πy c>iUYмT/2gȮCĪ;^CS'lD 8<G%u?GtXk2 F#f*mbA3*MI[Uclk*C;~6<:>Qva&H%5PgAٓ=rWDne Т-z w([jU;؁>9Log vr,ED`"R%UG! 7q7-?Y:\<ʷK #,³72TP(̯p!νY6k-(jHL AaH&~Eq_U"q=7:6<'ӄԏ|X XLw)s7nʌ{ģpxt( *i/BOɗ+mlH<9'a]cF?Q3=w%oAYR%iI6.hzS48Gykis\5۹Qk7 둢!~Y8dՖS8\h跭=_<`>ήIH!/Cw%7dh(,RXC(GzܣR-!i|̦-`J(_ hf_L#RP ")4H?8Wߣ*  ymz+l^4O=_)Dҵ($Dzr!Q4=T ?rXeU}x["x%1Yë&THiZ_ñ.# Ѷ4HȎ2V MHmrt H/*,,a1ǧpMYF Xb>AJ.7͝]ؕi"ܡЋ_XN$ǒY%A3@E9ԟ{B8=nŠ2c-V^ۮƫ^6=}HpMPB0P \8+8*BLysJXd͕#Q1՛"1` _i;(S9Ѓ I(cAܵNlb+' AAe%oM[Juѡ DMj0Xt%5JFYdsV4 xleZS&0b/kb8&$SV_ ŝgoXLBS78/"ٌ-ȓSAj]Ld-u1zVFCwhkPD`Vgg/g>ev?צt6^,,9 ʣBqaqh&bn^sfp>uɺ%!2Q\*Mhk$pkx>=PTp=D Q؝e`E!r+uL_>(nKm)r`WNS=dzĬ<*;K:Eu^d_7)fM5t^C7"m WX_㫞'bvtk֗ N#QHa(5C`wˁzݭ6F6kШ8jvW&Oślտ% ֓2D@1EI!eb٭ٲ7anK+ɫ,*; -t-y{kIgKYHgFP }5褞<8Vk H~{`@D(r2v2O$A@c\ o/hg_{2dHW h uS 7y*'JgAO-Rڬ徑?!l ۭpo,{/2a&, i۠ii:aiN /ηKͰ Qρ+&'Bk |yU׉M歞8A(۲I5-5%YGW@xYmԄ+W}"k$;-q4n)x8bOODՙXc?)jU{C-q!:@-@Fq1Vp+\>\+(gHRkA5u=8>9Nkۿ)E7RіƊ2_F?H0G,^*ݢdhLL6+X_w5 mҦ7)oA4L_E[JvKgEt F?(/6d{ţ%د>;%5 yr wWJsmg?4[uq>G `]\]&0npZU><ޔ y ڨW\K@$%6>u>}/N\Zh>t|nD312я襤Uf̊-%zzِ~6 i:wNC5=7Fp4>_v-F .JYy*LWWS0xDhL9q+p,GJtp7FqXܡK~XRNRLY,F%D2ӜusJgf–FOL +[#"D4]4:~0!,6pR#{)ݢP*PZgs)Wϳ3s=M dHChVY uN#,uNә-Hj==~2!赌9rg*!sJť Yhsms"7 l6`.lQdflOy ͤ.lF^Gd%tTY®~^@a5T8Cw1XeQ}dzܩuuJBy-Ͽ!O)wOf(6kzz)UEs[q՟hQ^(|c7c+:/)#;/LYѵ!?e⛜|1,~+v5g=?zZkP1|W|hlr%j[3b)ЪH}^UتVG=GQ̈́kF(?!}«SN9'O ƇxfRq K[4ibNJ< :s]ՕC}F Dt`\sx+Cb+өrzٗE4f|sKZXߡ+8\JŲ4[NU*. jf\NX8MπP Ta`i9Du{sIid[9y4W5ڛڠW 8V"- L+{ 5?ontjA«f}J^2 ,YXl* z/ ~Ug_xD&4?Sϼ%~|kG,9( Y_:0˵i+/<(:W4ywxFT>(i¤#3(6$\lR(sǛ[^aկM᳴p^FVգ3IhBc=wDyq*zP,ᲐZ?R#B\dgsㅺj#cDlGPK[н;qq⡈rTvmL盢t'1LOZbfl\[oW.$ 'ؗ/j\`[+gzTm6t Q#xuV#Z TIHDhe5r" L\ 3 OSZ@Çg.MkzC${yڝ>/xDqs |f9`ךӥ=D҄ۺ=YZꯜrmjR뿧`nmPWSHl3=2D[DC0ax񔍀Zah%CfpjL`@pśG|ic%_u~vXޯk^W۷mah/9sr498fVF-</<ұ1VĮyNx\0N\ȼ54+U^-e$Y n#ܖ拣kĊ_5j/Ϲ*8$ǥm!hۼ\ U%\nQ㽋MWe!Q)~oQQZ@[u2u7g4?bf{"/.ɋVoxǃeE"d-aEAE)Lif?aX?Cwȑ-2rľ@Eol!ę Sn{kCT5ptTP Ȣoݳ] ܷZG ɗ=Ƥ(Hp)]HI5h(m B9>'z-#zdOm6&dtF~2q62QCƧoiѠ)]R3&gwt}NCaVHJᄰxh/IVO!Fqsys,7 T+.u"!yKQ+xbGZ)=_6?.!Qr{lLhI[ҫ1.\HmQdlb/n6MszQ˦MSňivx& ?%hO5^TPAv0_ lp̻tCEv5bk+wcUr&[ҊE]USmU#yBŒ_kyFZsU0g4S@N7 rPܦF/Ov4jUr :V,<63?%: vNJ½ ñF)PgDmkSؤ%)xV>#g9˽W4¹#/L&MX/|+Y(1c 5R`REY مЉ2 Š7Hܿb@k4!R[ݘ8mgS~h۰3wDw ys/0>t^/=ە,VSztVbe3Uo{'7`z`(r`ྜIۡTP FΗ&`!AbXQG!er8Fİ'ժn V:fUz]< _OP"f""%e2? ɖ1U@mSG9";!ϼ,3eS~rIym)O-HIvG+ MCFcI TTSM=dbv/g5 ICxk6crrJ7ڟ}b(#O%Ղ:iiVb^8 - ќ}~4vaIU]͙M`JLb{ۇa@ڳ&~F%۩蹁пڕq1-9g\ R3Zn=DCym^*E Jư;z68[_! 4WܐJ͚%u|hZ0+3{ .R+w|ڵDI- L ?,~{?PŜaD3%@̌@x3+]pvĎ=koG@rKJ;b*(&\gࡐwC=z߇L}z^}+@`ƼlM+0n \V)`&TQDp@Bs&2%mN*V#a49ғ[NTg'Njk<%%rpY鉵p' kq_BQ/߈3 a)c %.O $Մֈ`P:[}ĢP|tZH qEWU wN*990.гFҀ`Ê2R9h8i_Tǧ/< 4䑌~2@јAdT*Q9 (կ*ekGx?EbjZ:Ifr&,} &;^d$:,UCh,& R[ F*ks!5ixm/4 g0hh muHS2$̢SPpLٓL ;kxBr*JˆS[훂qy?Sj\c,pV٠2>Ae 3 Jm4:+`2s})*#tAs.$ڕ:Bo}@of ӖIsDw }AY,!0 t2vwU:5*,GʪR-.ET͓"87켒" _:?-#SB~ |;Iy,Z؊/Q->9GQ@쌥!JM lF1s/~sD߿qFra>ȫ 4X`6}S[P_91j _&qwuJStnԠj/='#zanc !&KƅUW aD`N Eٽ<+p0!H\'%u6x#^67EbkK.WUSN SL P*wU[SAI$܏%0S3Ef(fT% ,ۧGYu+ Wk%RVcѻ2',iۗvD̴$ z}DX*Lfv_RDozG _N$9Ͳyo#`,,Z-mVN`3oINDz!p{U78t}Z$|Kov0z#-J$ʎUFq9Sؒu.X&꾌{'6xS-"Lc:{(B[`+d,AysD~&p;U "j%IJڡ+lEoJE̒|V2MU+ }7 dWrB/7sMR,\Gw@ {7jBaN|GtIܘU>gDVQT{le'\:AB?ȺYΊLП4q _X*~Jq`ZCJو(q4"t"7kiP<[R}|C3 Z9=tægǕw1xgeXaء;@th;4Q@:iZ>m\ %Se .Y\Zͦ0\%Ƃ%:ʢ|J9W u" {|P)fԅ*ɹ` ~ 9nQŶߛ=*VAb7Ba@zCfwHR![qNow{©qü# |rT+ӿ=p11i}'Ym퇱Y*{iz!<^@z26[Q()e.%pPֵHC`9sO_ċsP@1[>[@+a;1dWc_b:Jp2Ɓ#SP?.E f_yerl#4ws #)S Y~m9>at/[2"٠#$FlANJ0_HU?A]nT%eV&SLHk804Z[K1:e!fj,0NQl3 N ȢDFdhص#?(DO$m=LLś}KnN06ʷ38H5(Dz(#2^RwC$sDX&"~B99!_^@=/ r!(?~-)S)˴3HcU/}%?P;Yj6ysBd3Kƈ3γRXl<07f2˛N}-՜طm%"7 K5rCҫ,*yOr' 5*-dB bWK]=ۣ s$E֛[PdxEhXt-ghрU*r~ykGp #>_` 5hpHEG^ET䴾ED OXobg1kBlga+ihPqDx=K\w2@gA34Q-(O6p!3X\q!Exhzt[t̻=>C'Cœx+ZGݾHXMJz\9W<L"~]RG5CSds.gG CdڳsA - 0(\ #zB)Wd'C &Z.S[t0gGwR֎`cv?J z(ΡWQSrC;5J逐D PL\ljK|+w%c90LB |;3 s9i##1X,:$\|Xv͖fcs~)' 76٭y eYT,ޥ;z|9omų*)]}6&I^5xZu;wۿ{od(U0mYCgEOH.U|G5 /@?+rpe=~*I.Wp}hF 9_dҎ0<wpkhk1ҝoך1\z+ieb3߱o=Pys@Z$T9VM>² C)`V${DQB_ ٦1( H̍l jD[m:E?%9CD@#oV CJzЕ?؏6=M}9E {il""KˆvkP`Eǭ~5tA֌d'Bcec%vj_v8hS^j1LL+Cn=-ҋ5Kq&O̞bbIOOexWʪzI!{`{! f9f~t·fd?>TVBÎCVr]֦S~1pa1=|~h!B2q* Z)t85 =|>p$bMu^ ܉V@h`L-VfޯJK+19uՖs\eS{;wp8A$"\ARp\HGv5*HNmJ=AZqܿPP_cW SfNq "6v^DC)l=ѿZD<+G@gagey+@WUj?B6FN[ʙToAD:pku 6q˴CP#4U_mїnC{gJ\>420:{I[fs ۇmFoSlqNT؀rk,p`$4$LL([6`pB 'U}Z GNsEJK_=@wFE[]Zbf JX`AvV.E& diIyb״q9xTg? #fzNԶn$|TW?=< Τ pm€9_۷pK87/#J)soVrMP3G&!kap\'j-D#P; G J5$t%Hhlax!<]I^(EOiiETWpY%2#AA3ȶƋVzRce,ϔ0NV_!aXKnk{2:{wLE^KK&9d8O5!fG|D5fO|C42p {D7u ~pk!YS$ 7>@y9 C+)峥O{Sz7߈2#7Zks0\bGBH%lĶ7 7"}eC;6m{QL3KDBM6@x?Yb1Cyrt(A/abOgu+#~4L#À!95½1݀ Yv`1Io:'bpv!yGFiSJ*m6s Ruxuj{1dsQXjsm'[;rXOʈR܂8R;Z/A*RyܟTB_"7 V~"83vYh s-9!չ4'1o08\$8OnI(v y'T-.cs,+u띍ML>Ic`$VN!)IYH`mThAE9z-BGH6z}`n͹J2ϖ<zֶ1>Bæ2M{EѭɈ&,Kz&/?G~fX%{ kU ^P:Rd'W;clUss!cBZ+-e:ڥZ>yK0A0_ss[bF;Oٶ*E4zbY2E` :f.Q6bݱτ{x49_9 5wzc1`3 ð? S?[h)`:,4uC9Z%|^Eӏ}w!'#<Jl@PeчoDA]&MlF-]{@}(ֽ,QRP|St`"`\BFo.a/P"۾VV鞇@^ 4d!|!7Rl=9nFˮ{dKژa[ZDW$fzNW5#ܐ[ry:KdSQY4bC)m˛'Rhrr\ PPm{S>yqI@QvVƐwCCkx!U#Y] 4hQբc]X(x$t poj\pƊx qL"G%RbTW M2!P\NG>f)嫺2TNsbeڻy7 >Ͻr^(NDGc}-J$*i}M&c4aL 0ӏ虭r@`!WVjcW+U(]NS& & *qx^sΏ:NG8R-Oԉm2k낿M,.%EU_#y@kZ(x/+Χc=e}Y ag8mc:\uAOJ޾JoM<+?eM2f1dUIߣxZhG7_8#s6$F7K^ !uu1Qy2)h"ߍRW Q!M[ '{{ S6oK?Xb=DhES. Ox286dxK"Zn% S<3b #-=`QQ9v|P Y>d$|^>g\A^Qur |Rdl/Q[E9΃70aJWZ55h W3) [e.xf"\U(jj1glEubvPǏkCrgI4 ]Q๝jbBPM~kj׍{eǔJkA A`uг{^+.fJ:IAbiZ0߸q KRGc^~M"{3SI]da0Jy3oʱ}:jrkA [(:m%l C4 k0s DeRT@ty,p}_&+h!#j"F]KOepͷ`Vtu<ߝrY&M'TUj[SR5X F`hrܑaR+3y@P`Sv J xOk]tRnWEE&t^]YԨ>#+"2i(i <6_QY00 *:;N븰-z^_QY)*glD*EOStEH,IjHMFt4pny-9'k%uˑI5(zh~6yk4% B`5#E^X-qWco|u$ީzĨjUr$W%sAGb`71پfdq_q³%SmJ͹g7e3hӎQGCmOȣ7;&Zn}[#x(K%U7c$IN[tXJ'*(c=[*^b`)#s#aܪ=x-sx`>.~R'qXʟH;+oO>MѾ1Gl5Xԃc-X03X-] HByX\>*t7L i-!?S;- X!jI1Ql.Vù0>A?bT㭒5:D=w7q([ɛJBoӳk}oq?`~`qH3;$Lg~YL$(QQpfG ~XItOd<MF^/7N>zhv<_,erM/\/jZ{`nDdMu7bɬšiXw' _nEUN핍_{f}d"Jz90"j0vˆ;ǝP~Cmfń'=4"k`yc4Z y:%H&A&Xc:.7Dv,W rkEQݯR] &]qd%59@!1OnL|0fxԍWg]:2L3IKVH05ݘ!HTiZ` {OD{PGaVaV }ŀlsڱ*wz`đ4Y۶c\!5{-ag{1=b0p+U39iFevc uvR ĪcGQt~K{pfGQ=hy@}[G9e7kr 4Q*`[JJ۞ę|5mI/8MCE'Sp$`@c^2q}N\F@ʂ띻UbO|DJ<nc2GsVmm)S 9?_/m2Zώ*7L;Mk+Xal ǹ1Eusժ [׽)^GO%Y셉8}aX֦h&Xy]9;KAoʹ.\9.y]ÇY +ldMQe r'G_Jn~z璪3-:٦ʆ5Kl_LCF HmAb Be,>p{|b˪,|t\]>S?="cBx G<!ÑMM<|Tx 8[_%.ګ(QEҏh1LTgy朘(>ST.4߳>Gbn ݑ9ot#'S¿˻®$d@AO6ۈ'8X{0nKs󒏿R4$@[mR Ʉ4 l@( ]ے1Yj`R*f#qBꂜWostkт IpP`^^MijMo&\f&cyֿӶZM0 hOY%pI::a^N+쩯;P"mY--ae H!Q`vU0i_SE@rB`r>mX|%ÈуI ײ7ϡrS L1n67 yթ qY7!$ա ѹĄ}2R 7` o6.gߧr;ٹ3n;Z04+ |=40^gx<:n&44w5|1tedfu& mn}s?"vE? ~$[=F5qͭ_Pљ3xW.$Q5ů>imhTx"]2{IIp ubW1C4Y1fE^"IoS gMĵtEU[?\[}aKfLE GۏɃvws(2# %nBx tA)E!Ww/~+.ă81\],X2;z*+iWΝ U(ŶƂX1ՍFeo\ƕ4ۖA∽xaHz*8+Y5 .;ܔq *Gٜu!0N!چЊ'ڙ;:RnG|]c8lG6x?,\t?О1n /Z+K}S*-y9%NpѺc\_jU*'":Zc`ϊSvLoLܽK݇"_N!EʝP#۴<|D1!I7v3X\Rn7lm椵-D؏\AP9 @f[$kE&+Es`g`mfM$(Tn#-~mل#%?+$[~{ bi-w@Ze\E,̜&wŊ 4w2C%H0~!/ $+g. 4|CL*BI]8lnqMѢs͍݆f#-*P t3C' s[\ Ò`O6%K%SKENW8{M,kvdbj %h ҥ`ӳOdà37aTBhr= "hqrlzBa|pH:HONYB*h@lm[0"5UO cV)8'zLvXW_u&cy7&== ,*yDNQ%"v0S# Yﰦdkpi4Ǿ7?=(a(dR] ^يV(ص4ulRhv"ή<㥹?^X] U4x'\ Vz@ơ;gfryiu(O|Hgů WyW uzj"N *[geVw-_j#~cwoh ".W%a@C/FxEvypP{aA p=u4e&m\:䯫ws$vwH=S/MɨMm ݞ~ܥso,ryHEXljh WU 3Ho/dl8Ms$?$S^zfR KofA-TlKHYL -+$F4Lk:CO{08@=mjvuܕa)u@i ;]e^ (WyY4=*c%PU.!0FpP˃uÔ9c1֡.9+?sL*{G̬b\ќ`'w( m30&O2Q|)c MC}1Kj4J0VT?KpR /@+>T#'`(C&f|ܿjP^)1vޓQ"Ox>&yRy_\Iّ^6IR% ȺGa A: V$hg}@+욪 ϓ ՄpY}VxW X>#5"=,eY߾|J]x+5Yꜿv/;x9vȣu6"E-;_Bacpkׂ`3hڞpkiMڴ N LH\ si? <9zuMP1OD= tN]:r]~;I]]"-/iq$f}½t-jK$P>"&% 'tR}Ŧelc ~&w5U(U"77E.: pBƩA2*rʡСl>k Aճkdr8'&hfqR^DG)U$'")grH֡nTљY5-M,ިV\Cgi^;wU"ltCB*7c؞ӶZ .OYUBjs5T1M[8ZSqLfݸ`2g .Kٖ:v$ߣ!Ovh^43pk״J.tQLCF|6< HtY8E@!ӵb?j[1(o3FE8zmlb8{\Uu2ڍz:;c큅Nl:Ы, :?G'r,_Ů4o45dرS[`##8Uk@ >[Yt0U?Y!a]lB j?s͢K/9SZ9nG 6 1|+mWhek.bc>1f$!v9 Bf*BQqT_%e3'e/5؟ ;FDoc"yLRdŠ{KԎ̭*YM!"ỵ *`o~x6lh=zkUvO9\ Sm.t҈ b*JS L hNqFTDs0F7p4q~9MrV½v9ҳ&E7h1 ?6&5|zC A}հ~R7Mx?{A՞h49"ZRFNcgEqȤKhX ˮDN#R$^iZ 2?֑}SP‰ѥd8?[G1ڨEIs;%r'N7mTh^yɑ?TbrCatLdjTi fKY44in0@i5Y `HAmuLY0}d4d];PH:JgFiS{@$k"#O#YGWjtRx_(4z3$4;t{Vgg/1$Ib z{ 'R%7UP-;,X;T:H=\c AY<o耛/PK 6-/~X,~`.M8ndY≄x=$p]7ځ/qiZHU kdjC2}.D`?ysP̰dwUwz5bYou"@ƒ-¹X"U {".`هD{9>mM%?R+29Q|JD %OI-T)[ vawS;W+F "fuwscjꭨG` zEEx[jE"@"gSOz4̻Pg+k5!F#(UMkRULBv#b:xXTf\j2} (o_uv39#9W߇hT;R}TjC "&SJ}c裲3Ņ؂JOOY}"DuGVjh/,ӊߒ~KV:1`5ugh38:R}Jzzp!fN"yOpA/u ʨAK$P!3;eP.M?-m?yj #=U7e|##lMB6 {7z;P>_qouOguAY@Ziӈ~q9 SN7 )z%Zɽb_O %lXuAunF,9THfzQé4bUrNG6S% wz8b768 KնVS|fto1P(LA^1$Y?0kyL֨2_Nu㟶'l`J-^H $hjz$y]_3o1zJ6B,DȾqƏm7O ")E"`A^HSXϭbwC"['v62{/M9̴0?;n7ĆL,rgEi ƨq(, KgTE̶.- *KG":]41YPq3Mu"F =F} Tn& ț7cC~Vk=#4JMT9rn06Fڰ6ܴquT_vk 3*1JYI]i=FMU"m+60~pˋ.Q`V8z}/^MэWVqͣ2 @q;Ӽ Ekarm GC 7]LXHke^-#|x55`RV$<]N'OVSH)| ٖʗẖu7}9/xf /u!w!3Je(CaߐSCk38XDhV]DxM[8;tKNdRYQ:y]ٛ]> L8{8=K%[HLyCr`Y8ni׫p]x)i?߸)gSHH"1-ngt?c\}%R Ca{U;T' | sxPx}wWxc83(\:}su{iIO{3 j'B^[k24CӖ|+'9V-fr. #xN<,Ƈ >bi)uP%#-1!YuX9LA4 SQ:/@2cM o9ucijx~JPTLYY0Nu8/&FFui4h4wRe-qllA77>W^/UM4.\7JΣM8jx+ۑU={m{^`tJh'].U$%[ݍ)\ZϴJzbwpI5I*o6kIS֡;[+Ǵd"?຃Qr%+[`dݰ@0l% u;x۳P 棩GG,WOg8-z烈"4~R`1`NSsj_vWafzB(WGh$0aK⠰HxkNJf,ZY~0n@ڛ  6Q9cZʉgg@痷"RIGeRj6``)&zy6hYj*̍ku;,BAѡ:D{h |{W ^6{#H3PvN*w:(z ڌi. Vl_dzB6wu0u^} gw^-@)WP)5' Yb#| 2PJخdFT2JE/C?7}q9Saq3Sw4r\j(:<RlUzT]WtYTɛ([76W; zl-Q2:] ymh=kN`NQa/ӄAET]ӏ:7jl9|#vg-ZϥB7 ` Fp ~j9ǵ x1lPTmB[d= v *mhs[h@5|d.H=0qF*͒kPEʈ)3 \2 _ި ^9]RFG! X\1~zi\/nRz/?A mPO"F6NdD` lyp*٦Љ0qa`z P?-#$e4 /TOjkͺ*c)|Ȭ⋭y#c>8L|$3KkMh[le7q*аf*.?}%S2` 9h#F~Ʀ ){R aN/+A }`'72aX}*Sk0:)ƴYKY.ꑷHOYxE!8w&Z? s(ݷss{1c"sR_tY!g9z$9oKZT\ f+eNylH>fdW _}zeE܂j3dηrkL@h$Ekj:e+UBR`m`24C%,/4G}·,0S=-O/E=o\Tyg4FOM &J3"'%nX c'ZMQz}:YDSjXNt"T(@O*#u 1 Z, oi^~#Y,u&xﻹZQ'uv@}]({=8%l6~Wd]؈@p'R:4MIݹkUnTOn_mCc c2bS33%cfK>fB=SE'P`qw:ha?7\vq =huɛS$q?wOcѺs ܝ!nzBKcSSfNlӆAIV RZz cLV70R]eCV֚P9Yշ D:َ0\t mCIyKqд&&iY& q)+~ATPB>HWDA{ `(we3ڴyðU !7N[&˛KTON ap5 c4f$M•s*S O^7Єp_xZbup ^{}BZrKmzD>9՞ݙx]vϝP乚}1#r‘[ܴǪZz(ONeZ tQtMH՚5=Zx%ݚ=Nr{ֈU9ʛ &WRX$A]f(c(4[t}}=zXQ~X}tGX҄ZrP;J=uz! ՛1jr6سYՇL4cDNu,3̥%8EC> @x^T흁-5 [`LpZxO`)n1:^K;7h}V:zrL%=йϷI)ofLT"I;8\ወh.TPOBZT6 5>qHQr [50we;6}jKWP= ir`מn룋EݯN<3DeNT)3|0ĒKEt.H& 5Fg;7o@ve[*wzT#l4tqG2q_bդ?%^#{VQ?_H4\ 4s^qPle:Wq 窿hp M~EO㩣veNŠ(m=NM4XqaiᇼtʞyhHH.ժ4 R tV€k朅{iK.fvR y}//&'π1]F,Czѯ.Woq iXV̟S]P/ i&*olAGx\ l'5T|5և-n8ӈ) p N=B!5di3,pZ=KI]9*Q.QO|E ے[zLCjc 5v|)870.ϙ2_1Q R6\,P/V0_g q,'EX ڱ˔`jC|gCژ{fRR1 C+/;r)BqI;KY\vȶhtT4=:86&dU ;V╆uᅄ1M`'CV4HD:C2.$w*܈fPeSlW'Szv壶{fF]o_0*aVD1oBX8w~cq 0>uh sĥe22oy鹋V`/7Οgm}^ȬgG]QL"mõh5!,mFYkrCn-L۶+JH,*}rn,Ɇtä &5J=5;Ps(3sp!PUp1d]P7tZFav`^mSBqW⤉{-rϕ$AWY1JC{"PU,1jk Y_Jʉ jeSe~m;tU3NLփ۷)OIZ\j^-rdsj^``ZL@<#Su,`e;*w)5!@Re_)aD &L~u!m$q{ pD/ U&{Csf49095Ta$|0e-p "qrTRX6U yfy1DaP.@amiiOWci⾞ ?3^YvhA&!+9q~!fthH#nV{qZZVC5;c r;N7* 4$Uo{KZX[quyvs\mB$Y.p"L~z Xl9@Hb{~R~]g9ίÍjI"n4Ki\ bUEp[kUUk}(W:[Xevn X[*] k-ba3tp7+uIڧͪN%qy٘@ў2y%Soި7dw> = qɠ5uBr\IESO&fuQ2F2Ć f)tPU_ _J|¸vN>9sYKgXm!G) 'Dlv pZ #8dEMeÏU0dp*yh_:K4Ԉ75-{!vW/I3qw`z]KWZH kn\"iʴg5W{p1D[8y/ m*6=R R*^h&?O(YGXmG&-ۖC認# l6ʆ u-#f%%S {R=u m 䳪JE/Jj>T(,d0bɩ}:> QOVp87*i5TC?⌇U>kHktV|XpQ/o+ZnlCԏ *-1ZZ_>wZ̜C΅bgs.֧RX(Ma ! 3Kiw_w.G|i:TOML`2FzaԢdkGJ|G{Ռ㶦-mHDMRg C XI%lXAca5=WÇ>/#\tmi ^&C?!5~ )n[7B_cUZL;鶶 _!?1=3F-?ZY42w0*eVqH6W8<cVk׃l$G~Y9{E%7q/ujMإo}3X9Suk:h)?+KF+h4= A "7` ~RPA,u䘡kgrNC`.A0l_y4~r RGjA[ Nۅ(nN2hnr<"CvU:)sU"bOj+7rtyR'fEhѺ;~,/!{>ߺF?ꇼ>$* Gֹb;!Z@]Ꮸw 54s +wZDOXdZj?heQ~/jW 8\aH5orvԪyHh*Tp:RGxc#lBSB( Kp-}?s K0a>ywU5!{ //!-r, oK;fv\?X3*}1pvWh EDx$pxbZ1}g0eLrXj$![2**nf#XÈ=]x*nX%n`KmeY "G=Xuwo?(oS.a_Mjܶo PN OޭQ\oŮ|pl雲g.}y@աI,@%+h ~\ql`= "8xE[韛ݘy/VYv L{ŬFźI"+d9M>pqo=}nTpͧ'a%ߺ tu&<;֭—,슭$1a钏N,'pst\Cٙ;f }҃x[q4nO'VyPb"(=XCJ {!p6Em]KۚD($)@pofKZꇼ;+L#9/6Okq8-Ӵ[bWߵ/"bU2NBS&z<75\hgij}\W+Gsb0Iq9H3o0?2LMqgw;BݢppN^lT?B4q< "D;/J腓8h|r 9KÌu14+;vQ庒ۈȵ΄i@+ `1@ {#V&w~1h.|I2W]Bs' \{](.doeR ,;e++OJjgȚxnd\yP9,o{4~$]1w[Q3]@9aW.ʑIpg(C{88d4B4\a5UYqpk L +Eވ3V9kszV,i)5:#x++e G @Wj%,[ ]NG35UJg\o^!ע|wP|$֮ 5wj=[])p^c3 ѻu!_uMٗ~Y:kZF:*@ڂ)Sɼ2L [ [!ȟ!Jӵq&n>\phWLLl "L`+KX?EHn[3DJV`GQto^S h7<rؿ ݋N"Q4'^i V׼L9(#_he{HUgۘC#yHl,]2ݖL/YcC M(evQ;\K[U9jQۛS~F= 4F˫pU|/^THЁؾJaSlf# :KZ.x9nU%n8 {>6IQIlluA>!%:V^BV**)wu~=y== !;wV{Rn؂ EP*2rTF8ǞFE6cmWLU/UK}1q͊; @%9K Ozu 9s)w^\c,?G\hVNAsSJs>N! \Vuc'w7"$r[bLVfk$>+(z*_h9܆N"N¹2V!jHޥg1ZwVprzcWַT?* :ȕ/+}]b{Jᷪ1d#3E Ɯc48u3pn~sI5ck+8Zf6~zu 8J3n0򺂑RTP 3)1gyzd\ |1sf`0Ql-D#fP%"p+M'EUIy.FPV ,*ItX&[B{Ag%`u;&$r}FFlK%+*_9U@KI}KtVsgb2Ӡ֋>vvF)w0ӕ sfSMgG &)5':~Vcp/ +IxX`y HIazI)$)w?i:6Rr-FE2&GR)H׆}$)!nH=GIk;HIE@k^s]jk?o!oODÌГ~nf4K2E5uNjURȱO0#]4WYyqBє=76 yfQJ\؀wx*xYnRp֤L |_ oإV W_g_\<8otWi)|.' Sb.<&VJb܆"FqloਃƮS 8fxŨ? V GHqS_{kQQ/> IPM| +FKxQ.sGf]@vJBD:Jsp(=/Sg=ڭmEq#fyt S`6.PĪ4Mw;U4-=[,Ԗ {nײַ}Nf췯+|#LHT79e#=~s'(f @eu+׳%g9kP;pIJx@h,k>|@ +ng14MUG3N} N*Q%ةP{Nans=g$u tWfqB3B1tP>}-@c'ar@:qRo` 'sA)j"<۬bbM,Tr\jTJKpd%1U׀ں_x,/",b+&,ˉPpfʟ.zc2}d]{N\c63z?GLh1:r6Tӌ׏dEjK}*"sa+b. q9~)~QJI29".5.NeqRB~M8sOWWQtB/] [a%$%]R//Ci"jJV7HO*+̲_=ֆ D(g, c$@6-c1Ek0xLx3G ϴ"|n41c`VDفCD+8 2m B]8,tVn+ %f;?@\c1>>cV+r]N 3uαyj&G衹e u{3yR!zT9M|3dRWZg3QWS/t:yT+㯣[Fy>KA)lxu6r$U/u/dӛKȁv6>iic-)h{b Jèҭߎs"l2uQ⿿yޞI&{ʼn zx;a*3[PvaEU!Id~N,`%..$e>>ǩ_TmWbq}]Q5^dSfL '+uo*?@.WU>ciN/!YpqV$ dБH ӸPqp8fv]"+D푒I3]`6SќSD }7cê_C'kehFs}H$ɼ& V+T Ÿ. 6G`K(@pUˁ^]S3.aSNH(eǦqQ@'6_PpĖlO;,jbQusX5&C)J ՞ eVb swI;^%~ AE`(W:az'٨haH {5 MF2l3#./'+VVqlcj^iYp`¨>,53,8IӽI.EμQ[~|=fF qD.s]mq8qPFjqNܬ`0$s9$KN9FJZ`DQ:hb\p{EkK#VW,A@#hcec76or3mU>jU\η;PƸ@{j+Z3k]a{#udDL 9d {}JC6 obDq侯1^XĀmħW5FLfs-ҧSoGLիoB{wn`W"xa!HsM!oCKypkJ>A9y/Ea-+('wjAS@O,a͚1i#կh]ߦg/:Ǫb3mƕv\<YVgvy몙;k" mՈDAUtx"<6jLr6Ì|VP-OBܿ) ϋT4.@qvv3~/C+"gz2Dq' dNoM*G`V 9yKdǶh"Fǜe&oS %R97Bcmw&X>c{FvQ뵢 $yAy,^(;ԎE},%aadmgT>dǥc#6?XS{ JJ.Uӄ9l"cLBⓞ͐QX2a#Ӧ!F?XHk~uj܇ ݲ8x1锍MK>sa3 CjhZ:Oƛb%jmd45'M('VNpu<(R#kY*O_j&sg>*\f7gZx5at65ƾ\nX$?_0B]da>E}$?|UZT %n&kUO'j^|&DǖMg@䵆XloYO[:IoQ}F(4 yehp]T A)7ڋMf\]$iUj#Xp>Ztw"VI燲PAb9](GMIJ$m}CBxժfq#L lIi]@iE7ce?RD v5 dz0|>pBzO1?}U9&rޙPj4E$w3r5hA8%m"O`VD>ڦ\0 lfLsS|.<X&-?$o 4uo1"b8)HGtJГF KEX JT2"rg҂dl@Y(JŠkSj'i,z㩔z}k(s8IcP)v6lddÈ/߼=;b$xfhKL)jLG\`ѯos1Qwi boy+kV9ѮZeRܣI=o&K- lsRߴOޙ!ͫ#@ Щ0[{mk汙q^ߜ'&rԡC (﹯V/b@42e,ZAs i%:bpج(9t Kgs4}DxMN 2Vz4{ʶ`]fOLr-'&'ܢPGl qdp#)3*j$HWPHy u~{@VJL$%o= R5 \QzO{0`RҫmJeΟRx|]Mؽ6i'NCY C%DؤP!OAl~0uNr#Qxx`Ow^\geZMc{ ډt,Xtٱڎ^?ۅ:ޮxO*i6:XՀARwFj*`1V5s V/k8Sϝ 1Q<0%%Č #53t?(DܕTQBi?X`K67:.,VU4RvYP=̡Eyr_|A(gg+sV8EAY$fq{lt&Jdݦ!CL=L,wG+6:p" Hi,K7]ui11W;b6(\Y^H&F:\rg6'RQ762C0l:XdHx4jq$~k4PEb՞7K=E#]7=ۊqoPk#ivm_L^ٌ3 <.gYKE]Nk5VU 7*b)n׆,r:`̊ձfwb5Eȇ';RK kF^mc̤8z< {vL΅(4Z9U -[dy*LKxo)R[d|UJ"PYQψ2(j]/_P [A%s! 5a8n熴PNo )/!@i.IlLG$]"m"jw!;}@ߢPq*`*2EpߪVbJq3V H{TXI&q쐀j] _[zpBn pzT2FŹ%?XZ=o*QKj b3+k{Gf X+s78vo/WkݔZBD}cmj*.z4b!rh0; =:ty],=8٧9*_GB3ݥtw>0.JGHȶb:%Q%j2`G8«hM_C 8B!2/ FGm^'tTh3z,l'hҚ΁DjּP}H4!hT/Sz pYuVgU|gbSnx9"Կa~zSXh4~br x px"":(}`L`.v qg?q5bC*\;\PL/jմReW7?csCعؠH{#K`ItX8, 9?(Qo[=/Y&|6մiʷ= ,KM)io5Hwo3`v`nU_UIMx8lk|[pr SE=\,_F%fߗpޝ#JP+1A7 Ac)Nz-cҕ*g]\KGtn '0$)([n4Ҧ]{xx@ Hsz0^p?`q7(-A@wl*K'?^ނiD[.q7@ְ2Lm>2Ǿh,!$g ?&?<}=Y XNVf9|Ѩ0 U=Pl3>A* d=*th\Չo,U^Q Tk@]rۗ!V^w[ům7]ꇹPe2>A%Zp9MMKkFUœ}ӗW2H{`dx׍O᰺xfמ#?`C_ߞ_k)|uX!9_Z\}?B,qX t~,ÇAyAP [Xag2ϑGL߮r;jDEh{8Qų^"%X5vޭ{-HTJTN!| қ"r \#,ardma>äXUbaOSvL>˶\榮 &5JxnTmC6eVe2Fý\1I^ ҿoZrsݸ4v_>c.|*sl 8o8a!6_FgX|Yt}]b=~qE <\_˥{'8;8ϰ@F\r(i^RVjʔ;bCF 񣼹E"/&GWB M3 3_f!4(3U!/AB;$)S_"S7gc%%R+PdW+*c(Y2Lu蠡_3;Bf@XSc`;Z\`&HUÙUtmcOeR \+XD>(Y5 (\,)hm/Ǫ弚Ÿz3Z||YA׆ᵽۭ$K^ +`V @e[յŠJkGnГ (GtzHOYgg,ՋEQ-cW| u?h]f,l?ؼd+Y+o9'@vj &_Ht OE99hJ _Y[mnGɎ~GՏlm~@6s6oXc2b,wG8_f3D^2t6d-o#=<1$KQ4l+WNv~38̣X𣆑W軩ǺU6Z2E=r-c8e#:))WtSۢ4jz۽IVYܣCIcHy+ â:/OOӋdS uaa"0HzHMK$y9'xr 3%:;ɶR$S@^{8\TiGvAj] [pWӷ&'F4Z/ݭ8/h*LPQ m$:}zA%rbMe=z<;,sJfX.0UH*tRr@ V5m42/㛆i>M10i!q24wPFTZTo*':8;4KUMțV]z=m7)ܮwY1峩EZOaBO\, #((vRy2 ġ1I{F%8Ob &ȴK G:,m$@F9}@U8uh6qsF\϶$춨}gkaCV:+G2˧D7I{!ޥLIG{tY' iT}Z'b<\Af])-g>] GpJD… M̯t^>,PYZ]#bQ$puDPcuf16Ϥ#%{z9VNjjJ 췞&U=#B\W޴HՏˆ{iBMEd';4_%pU#]J03 CKj_hR^P0eYS?05@ҚIKsHf4:U޴LYca^&O#Iu3ub҃4D0,yhsF*4pY뮄#_U= cGL;өto%lU7DH{ªP;#^CiaDmKGF|:Ai ?#)irh Ӡ ޼PxoYg U AVcXJBܭ>]r3u$sIGJ%bpUGQkuӗl _ 9YN VLBJ/ _(Ȓp uprO3;2V?oFⵄ'y~cZYGug5ɡ JS N1Vq SSsV!-s7м/s8裋_˔'=_S%'W4V$*GSl 8`Zg_f}q?t&hq oc0(W`!1DLB\]1luiyS5ҋFE]QԢ)_3n73Q䨁 3I镢=#r#٪ܺ3d AQ{wrX޿ٺKY3eA{K_IB j_޹bgqN%ڴ8 . L߼~oB|yaD˔Rd}ͯ)#T~&yFCAbvŰ[m&Ndz ߆p$gj1իi@i9ק>\Z/c׶1QR MLHc-:>Pg=7&Ɠgɖn}*PD.Z\D{ƍ u ܖ a'(h( }ʚjS(kMKífP>֨94)TZfd#6/Wۏ}R@ ^zΧ, B.d񲖤_N L{픻d%&urz[^V1y/:K0Jtc;4?)479b-L -bi2snN8aFpoz5|Bl` _6G^@NnO|//b4 4w˃뮯,(@| iz%XHP\1)5+CYW\"t "$<"'e{ X*Rj-d{XaKoEkŤ>k?vr$#o[F`hׇB֔4`hd?{V|XSP'L d=k脊[X~?YwENfH³(bͷ.Ag2|q7U*ΐ%gfkg!;eA}[UH u Nvgn/L [CިLi.A"܆M^ /Uym:傞8:&Rbv8߯nh%1L`}c4Thp1 Y-I~n(Bi ^"neDXUR͟ĉS <:ff9l\yI<Ҥ'Ox{  |yqT n|j B=IKКeP]'~4ƒ_hֆƿ 4/:OFѻe-$~R /xϣ Lm$(ࡂmj5 po/ᓻ|dqN ;72(A{~Q.J,oej5 YkFOd&ϓw#}N I̒3CU%b-!A ]dK Td <Ԫ)&rݹe=+U$~|'܊}e{U.?3i1 nVY k>zWx0HuD\ lnh}myࡧ%ʲg%jk"jpv*!'LL  8zd(nX'56{wְJh˗'Rz9r0[+L<3||&$g8 -/.kWp{+(Vc(eH '*$.r`;Ya]ѩǰ3qW@P; Ooҫ֑rxѝ6Gp%-f.Ⱥ~֦CeODB jQAf].y)qWk "PO%O .RT띮RGSzJ2Mřb_ }Ltlo<LʄW.<.$jbź-pK :&R)PIJ?bYOjR/:VVT}G.e- ?LkPuc#AK {,QթYYi.!AwBl[6itad8LI h`?QTRyω 8zw!?KENH?nU:eY.-he9^\_k1 dIZlǹc 2nw8oO?:Y\  # `ת -3X`b\kޣvtKÈv6w {Q:(æ6cDQd38hTiih kS1`iYuD5XmP8i\ [:烹$¨aGQoYzlL&?pT.4",~ [5y1j́vOV[q"ƱpyÃHҋ, Y+sD'C#:0$pu \ $/#Ͳ)D}& dpP0O u)X鴙ohpb&_DE-{&T7ʏcBR5 Ew~a~6R]( 3+_1)Cig^5 t"iէnO* sYP/XNpLjp;C_ǯK6p4*a&F>h,ב WIgʼ Kd@` s@ʷbGzr6D`!k>&yH~JWD"P~"*vÔ[_퍖va e%b{GO26Xa'xEP:"X |FiOn%f]DװVvG&n6881lwE |׵J.^9߹Èzu( L<<xh"~^x.eD=NᵠPGKQI{":ЌxpcY7Q% c-%JH{z&z!$AM- nӍARx~Nxe09fptaqVTb_d"ݍ>j@z4AF-L|GywGLUOCfeDjw%z'[̳VP@k:!l~J0ׂ!cp.[U=M`V< _yd*}Garq-r=d*;a v͞8,HeXTCX\ܳHsa32"xֶzv\à w۶!%zmA"T0mqb&ޫ0d6չۯa8?%]D)sHSˁ?D{OZ3Z}-ɯp 4lTZd -,=}vhp]PȳjALQxkpJkpm:K2*Ի.tyErh~Bu/6V%#)w#Idhc3mA- ]oKFL`XcQ>A3ߑy>i]Vae\#Un+ڦF!S<ِ 遤9 mkkh:ͅj] .xe te`oh =ջcP\|m?fAC M~+詤 VqbT09 B9Mͨ(L!Y"۳rbio$>⥺b%)tjAKk_fҙ=zAiLчaɵ8NP׹ m{N-Gޱ,n+?[48MCi]moLG2VE`3, .e>ΚbaᨵRtjry4W/L*o-^$:X&M7uv\P ̷M 'AJ=elU- #OӴ*PIH}ݞgyMг$d~*%`vI+xY Ghjmh7GH"6wXNz5#]֊~Vy XDdہ<%p](ςNo%LW5suJl34HErwPp2GNAڔ:45mYJB;JTBN]0 y"Y`v9āTKq"θz8$]f. Bs@::_GL ceΊY^ds  ߓw67rm?j"ǫ'3S0lwl.8$7_Ĩ$K/# kvA'r9e87CGqf񥕡Ns8]W b/{B7~ 34̼{gFU"Y+(Tdo·4$ 0"i1mdÀK'킍 %fyBcp_Pv 'cg2LHu͐1QڒYBLVcJSDũZ|륙a@. $΃S2AZFG yrůrmcg LDqT+ӢX#+Ɵ 0~.Ԁ^]Q؍W=*2JntT0юGͰ?eO'Oʐ bV "033dOR\әYsQ-4Y% ѐxFT$M3i6*y-A|Caq-|-GJTXkG꺄r ܜnf"\qbv:#=4G%ssC+-8h9&/nT(.z$P?oRUԽ< !JZe.E`)Ox͊,x[$ӆ ѽ~Kөi$l3V3T,0]̺5h_WYx+5|nӢڝCkާ\Ps'=2Եz7 `Y(ȧ,4/_SM8W x0I*@=D3Ww 9xtQa`AY/3nVd˝^*o!!AԂP?SZߓT$/ÿ \y $RA)_]B.:ߒgd~c=L" `Ҏv6 .œ6Yٓ tj=@3 Y* b{wℳ<(S.%.0Ce4 C,uRSo'h ό1e[2>]ə`Ә0T,qڤC/yFg*YE޳cU$MM뺆MK~B(RIt.ZC(69ɴy}!,XL"`tA) 1G6 Jrڱ`5=Ҥ /ofN1FAk k_g)!X50ۗ;`eU _+y몯tBp¬ |xeO7j6g!q,wF' !K6_D10Ɔ%kIRl㺜$M/B(ai!Nʓ.^ n=/a=\Kaѣ,ӂ/_ hxY N<|p1u}\b):;/PM7Eŧak} 2KN1l۬:xeу=ɳal=o~.k2^B۴M]!ӂ4,Jt!V8#@&)TU @VfcpuG/lE>jOS?<-lw`H]n*4#߆5E3~ b48+(D g794_u4@fZ>+3;Z3"ZvOAߡ|S~NAՅ@= \b(rx<:T`QQ$fqJ]9L ?5n$`blL38meĝkއÐ]v&~OVd& AkObEZXS`Kn{i\9T`iqUтaUW^5? rN "#O>| A$yp*U&= IQ-#d`T7t'jH%)O6u$R`]忠&(4cڨ(y-]){"Ag0kbڿ 賵8ş4gȡɒ'@ oclrQy@IQ́eQx j_d8j!JPֵ%qtAPd;8" łFVQP>;Y2* Ui9}'z~;mOd.R U&ɼ}66V0K/urP.v AI ϑFjY5ՔP|4r˽[k)DYkƵvSLy*臂iVC7 xAtC[s6%^g“G 1+?М !V_x }}GtѓKI/Yǿ> +#ٞ׬{'Cjb6ͣFLR BN~  wXfM#Q2"7ȫQȾl~hYQэQU- }_ Dsҏ8?HY.{6$O\ չط g,!j -C8E%DB}4x c6CuNKMƌ ߹O rKj F^;ucr u5 q=@lgŏm d枮GPPDޛ3 87[$8sCES:YQGK|rԬ+۟ݔ5`<%9<,1jלy%r_Rp5[%\4B32^bT*-ʼoʊױIs͑cXJiQOУ]a A, /DT[R+Lļ,9N?cɝ"ɛƣ";n{W#A6Al\9C&Jn+,=2u= I{$~6r(AljK7U1P (Q{ ˰D灥Qa[dN7!Jt{Di9^"Bmł4M$/G}2x65VjIME*'$(?f0L|lGQ%1)Mi$ aAkڰ_Ji+{ćX|c@v aof0# ?ϹWsTܺFq o҂gHC>a5=hMOG.d&ٹz$:r+`+?Qz?r.3be1% C+ h4}ux W8`<2wB VtG4ѷ*~J;$/cii5vu],C,Bt'")b .J|%ލw7cA=@QUOn' D"3|ƆE]4iɄoGQ|mO/6ɇx =4₪~&y:p'JVFSsK:XShL䡲m? n)E*bP(&Ԅ: *w}?Oe8nG WֲuWQ iru%suvY'e׊͏1\Hd ;+j_c¾Cn=y 62 ֡Rbb5kEeG) r2T\ҘS< 6TrQd+t YXߘ0}Y_nӧ4tw[PxGUj? XѮK8Ub=; m(FHiW~* AɞS9 ucQxh7@> hT_U+dBWdI\D6 e )og3ߝ֋ ',x,{>:ݮ/&Pi۪JI/'aOBq i[v{/OhAP4׆jɔ ٩ܒs;6!ܥb^f'kv"gȞ%w9LܷFdpeb&6uG|ٗ'2x+AZH֜)21m3Mv aq! +4b1sS"ăڥ0in4nY6;B}9ʰ}SpƲq™"4ER$,W| 8 {  2$0K[f )XA_"I Kp+ݖiMWM$#ҤE60;[bRM?7"%] cӨx FI5X d*]I] +dVR/곓be0܊ OZtHe O'%s7A,O,(m$BTQ^5N@fRsuY$$׉Ye$PpquKy]5A[Q!IqGjiZ\V̘lUE9وMeIB_{]Ckq$[w7'*._GӦC|%ט5 兏;OO6a2##Gqo.FiH}1Y"0]Rl#O*t2lpbtv *꠸ҡ-Mጐhd9"5XOaIO'>pygEP۲|?"ɫdQ"g;9ʱ -T}z" t f8D-D %̮R&a}Qcnn5@B3-QDMF7lVx£4G4)01 +~_1?Hqʊ$NBa#I`LpC'ǛB./ɒi\NKKur1~)J|l$ _uU湌3*cU"P2_Jt?pڳ<@VhH );gZ#8ћ3I"=½ ҽW5r].gCOg(bb7M|3H$(pd @& enCcjrk+A@{` ʰMArkXX>; 18RrQ Ӛ+̙Pr'xu2cWz9emn2kèP0}~J )u]&ǂŲ(58zCMEě<~iJۡ8 {i=aCuD:QgCMY-?x@Iq|F|]PM?swr6Q ;0r&7)^wsΣRšO RN 2mc?4B5Wibdcl^4=# ÅCc;ȮLV}.Z4 r* mjѼX;t_u)qX}'#PSa jv.}_<:b[? q60 yJF!d٢a'X-)IDH-d{CL˝v-φUuuu2Հ!R 4F fb͆Z~)BW:s'P wѣIiѐ6J~B1Ke[N/b6FcZ(%.Ņs)尝ߞ2*h]D耩6 4xĎ/YZӬ<]olK}C;hp!N̥%`i=RSF#O!U +xXTD.=߰ժg?A P+j5\8/*/6hy2&:dp_$'=ɍn茭{ }c,x$!ﺎkD F𗝐 hKm/Ct,_A~"S;?( ~®o k08B>" J6r3O|Q Z}<4e#D9FM/T*I0 }fkKiЙ7.W!TJ p&-bRf2]tq AN0J% r앫GX3-n0045z#:znj5tU7ӆ[nV}|SyQnQ?/4g2Lx/T$h $kh|9];=E)央 ܍XƬP9(790 | Ԕt/3)m> 03q>lb(|6œE,֚,j=sûvNGPis{| 1(!=l+bx1+C/Q%U=}qVUam$}fM _wP4״jiO *L<}iZ=D[gSt%meZp @1k#b]C#!h RY\bמxk,!j\XLk\` %8]B8#g7><.:/Gf:8-[͘/ɡP OBwDVlupjWO" gA9"(<=xAZ ~ByEyĞ"r$շ[hlj=S ЇKO>(VK=%9~/?CKga#?s LmR>'8HV zOZXsP*DwSʏeR՞Hrz^NF.CsV$)IgV"9abMi8j*=R\$eB5tɗ8kZ 0 "oؔgp2Y\T((t_b9=X&ZӑW! !tvJ#\q]hc@{]PM tTPs%hzykV0BGX/ue9>EpoҡƂL&H|a$y\=-eH}˂a-Y`S H┮3;"s$10&f {#2e7'1q;V +V9~JQƬ׈Eϥ>]%[-NdٴlgJPp1+' ǯr~:9a/P\%V|<yeyDTwxGe2WԆdX>$#|U6e< 1{5hGrb2ʌ P}b Z=ٻs$Iz^mEBmSܺ{܅"asMXC<f:0E0r:D^rt5X,To'G"%0(9ѡ{Hi:P9̕ f@b3k uq7sB V2?| >_MAd t~_\.PX*蹿e:2gac Cp)X%겻>IqJsP^r׺(f1Y`w@}0>ƪYE]8_îVo?=Űք(!ފnc5o9Y쁊r}(I4p=E1"SaHI!}DkW[ .?e Oϧ*xB"o g^幮{b\*ۦ ׀FɶKGJE|1ID !d"ga.^nEe'+~9ZGfpGFHY~F$\$3<)kn/4DN;57vYo`N!v"&fO9 cz׾'ґ?3T] ((ǃUju&sb0p*+F] 浌Ez=މ)y}vO'㍔(4#PNEѸ8;pjlg,rKJ8 gO@Xs'Z RΕ5H,gFA@.ڹ%Kb p{J#n~c*j}*I#*2tnX515W6ד|= K܁n@}O,Ԭ3ݡ^zOs99^ {H.r 3]7aJyP-Z m/y?[YM}O:Dl])@E7SM]3!{ρER3eK>^RҼ(-n.k8H(aMgOkXWӡVZ18pxޙYũ‡9lTf_Z[PqכB)7@$4dG<\HsS/ ]Jlc 2`3l!r3kӆX7gͧ$(J#)i憞հC]vb/zŔKڴ3}+uwoR%A eEN&ZcIHj^NZoIF+v!~}}Wk<;[jP1H {- Uf{0PtzJ밨Kl"i7SC-Q\1?w|~"e䤌PB6wp̅t+ 5sCs d.1jpoNym4 j6wPvQ7ݴq/n~ŢT8ZoiMO=꺛*d_i ?_|s澩zլ:<:FKӼOLDW CfgmT^"!?4\k܂bZ~kmy}PRyy ޡ2:|e{NMw kwY2p~,-/ig&Ѯ3-? _㡮\uQz:ŒyQ[u^픦 7yQiڗ91n-ʜ}k[;\9j Am֜)=)Lh2By- Տ5?xtvR僃-85ڧ2r>wc [R߂5m8QE3e8d`%%'^y2j삅M*v#{*xgJJcU ՐGWPD\el&i&n* nQ\"xaI\qA@˛k`\-6C]=_GTlP0&PC DG.jfZ1f;$\(bЊ|d1w@B34yKR+4q<^ӥ4AjTe]W%9l}p60̤ {<VjW/ Ǫ}`@t( 1ui.V  (|`g_3qp:0L LIz"@U.i>d.46e(}`etM젂C2,EEw]'(ra Ѷu>۠ړMj\yc313”K|l*NsL9}HE}RÖH.8̛FتIz6,2~ց琝zqw-о|e8+y2x΂δ@c+Z( `yMVK'ZϦ9Q+>84K.}Y*jj 텒# :>g埖%&G&eVoeHXdcEb*oC6m+_eNGMܺ 6{*3a 78J붖l' T],i٧ȿcġSw5,~Gk?ExO݂4k?޻)Q IZi#5C&OOVӵf™_qսf @}1&wC}gY- zI1z)ĔPZ?ՀnƏVO_[{2×ǸKzgJ# 1xD>O`1[Z)KrUd` ݔqR:wzO1@c`};GҎ+NlΒ86![@t RDP-/1v̚14YE2|J?HѵL!U`0W6=>ezCt7 Oڡ?mڦM?Kj^{&Y+3WS !QsNDR R`Y,[]ӓ 2yP@+M)r9 ώkۥ^GޓlOVZM_/ROAA㾓Vŵ@o'G˦n}iV Xk*\+%.nƻ@GHo'f66N) E<X 7%I-\d~Cp۳&աƮtIvo1#)lMDdI~Gxx?hN11[qDHƿzkJ]߃L [Q-~/BɅ%t_9zwê(RV6t2gse8DЀY9tknbکqVy:h,B.cy>| fwqČjOalЂ]=c8糱ILp/Q ʑ>Ač50}^G5Y=Nn&.l}U>8F?VcLiܠPx8>D{pNBOe= >' >}_a.'x /ZQ\g!(gYm(tרƮ9+ͩeVZ4 `  )GS|By I%x 9E+@B]M&YdIꗁ 3S՜?GYKiƝ &)w| F#nq`k t+էWgњ͒Ӫ{bO3Gy}IÆS!flnJNrJPIiMm7^X'n}QJDh rɏ@^ Xxem+?QN ve`936 c|qYO fߋ!ФRBޫ~޾[:K0IHXFnLIi)!o73n*0nӁtExhJ^(Q' `X錂$_?9E)-d#_=Af*d:/!E/8˸n D*qbb8 IãπƋ ֩y&2E5Yګ!JnOr[C(j'ZŔ'7x]6IAL(tV.8.</NnAvr 0[ebjI מ z=B ts*f6 {Pw%0чt.nMB|T}}4=#e>kEh\XJ xV Cv%k\Z$/O76@,ѸhV;"֣.;=yL\PF 4#$gJ/l;!HiM0zQ~B*|p32(o7I'Y8 5g)K_2qyhԨ[o f= :/$"3.`1=wahP]qr<~U߱in%0M7M.6*O:XC j,k yyG8 |lyf@Z*?8j?^AKOȕ tP]aIMC3g+2s~9? Ġ@\r(S@қ uA(1hDUҴdTq?udž&hW߾`_ S(Ԣ8P)P6*=q5WLdM1PG휅<"t_,=,9'C+"NZkuĽB"sLݾ[XvۛҙGӡ5býV *.?IFكB'FfUC{t r5^g t19ݎ]yP/^I6XN5LIgJ3&W V|< %̭1"B}G2, ڞ/UL4dI J´:y-1ɪĻxb=@$M I g=G3mV┚6zBIXU_ACSw8,389C,j֟=/+ t$y~.]wsdEX"_H_& ۟;O*Tnɿ@t>i:cX-\Vm]pK^IҘD+nXbj]mͨn(:El_ke}xtxDZáQK0 xw+/ ⹌?+hgq-t: <ԟ>@rӠJ ǯ*/]}mYG ?< CPuxGdΥ0rxB3:| ɅfEu` K-h~Sj4gS@e~T!'$zju xjס^!K7A],l4Yj|ā HGF'i5;%ZX_(wQ 3iȕz@)id\ Ɍ䙧݃TxZƻ[wHͿ' a}r>וu5tǏ_|ZyӴ,"FװxM//{F.SxS \\֤lV"V_]:L8[ G 0 KXR/&7r/1"}i1gS^rv9v:/Sw%E2/ eǞJښbǯ.ZEɉ#!mgΙ\x OJBl| 6L>#fV痄4n:]ah(D}EUvox٨7­*4 I[*2>%Xy\iݞf`w3 SzNhZL&79y$NiV>zpKR-ͭP-o0oX|\6qY6}=o2U0!e{rI#2i++^ Dszh w9̓$Xf52_I 2c/E)5u)B jKKtugg}(D9 9e'.$yIrq4=IR 76jy\NOw`_7fёd-#KdRx8omq)g*i\XX,V4¿€vi\RvH(;)[V,fKda,PY7Np\זQ4 { H_pB*OVǬ^ٷ4gmo06Hu E|(obX|tT IaM +Qn UV'E {n+#B^)e~Ė; 7wc6@U0+@FiWf?b] |)0 ؙ\Z3qO@+J~ ItE"@M3 DTKro>A!^Uњ1ƥXu+FMi+D|"#fad tuUEP&kiـfXȊh7{m.]#aOĮkٷ]",IGtfH-j*OOaN7K׿UN~Hl%ky?3w,(~ab[G SP}w)iC6b80aqvS%_CJ& ˙f8S*Pog)+S[xJح;8~T7򕠋@YZU(`ƼHTŦp<O*.bkZ:)%F[}vZZrV1pkj_`hZ*k+~%O|{Y{(ƺ;\#&T-%DyzϺ"\|c|TƀcgK346~`5Cܪ-Ԗ<͝ol~f GCG> |ũm8 YDᔚ,I}sKzpK/ޕ5 WR8"AتWu42؍V~ޭ@rigI/iޭkHX,7)3v DFf} j4thCjqMMμ(CF.U8^E bu;dʝL`/Ґ+HvijpfܯclgEݳtc~ٯT%C e@*n3eF[۹{3gȨכn(Q,(t,fW/:wVP0CzM@hMxL#T{>C ?SjW\]/Xߣk0hse[IX̿!exoIH6P%?O ‹&n35̽~)l3c ٠>IYDp ~8>~%P~ċVm(]bAc=3(0(~ڀ@=BH,Ĭ 2$|x&[]Z2N/BmA C%8HWÑk]%}5ArAy[Q *;,ͷӅ(i}gUl]j#[iJ78l^ C~;c; x 4lLR$%_;Z! ؙSD buhrr&<@&n>.B)Brv9ka)=\z^%ȅc-;T=L[ Ba25b6LYefAn ԘF̝ڶ,JSCc+YW̊JVuU#j!itc9^(eC ;z1|VE4n{}k?Я.lOur?o/D`A.*;K=st %f>ߞkD-W 8r"t!QE0zbJ-iҴDsw>}~4)]wuMk'8~.շmcr<1޼ /xZZtnHMb茂142X c)y ю /D^:'Cm+:kh\㾦ԭE,;Ԇc<(+ *VIˬQ }K 4PRYMLEuLĉZRplzHgq}{F60S4C:_-wPV^Ip5:J=u/MJsBtsV)1l>[ޚ57;\&3[uтm@H#\k )̃2-rCbɵ~av0r蠌zFߠ(rSnjž)ۙ6^Pk1PGrӛ_&2+q>@$P }%C/z8P5)Xဈ RK7ôC(:3\v䔛pOh:(wZ .~S"33҅~շ 0D:X+dQ i"SO2ʏC2Π.(tz703x*ొ+zb! e'D}|<3TelmPzX5|['Dž!XBQ:(pWTij^c?`e9uAʖ}H[T- לP?-8w0?{eVR:c ά-Db?eSẉ4JK0t\;?O M^dp04({LEAD?lB+\~ҽr!C}%;Xn }XLmFmzPi<\,Q(-~sb}eiK:C&Q|E\vu]X?|ʨo,>8e3WeRHc1#/K:%I&aNZm["pm`>&2d% yСm/|1 I[dY&\n:d{tޞ?_ߺ f]r+ղp!^d4?݆PoŶ5iQ}pp#.0'm##Ĉ r]ů /YsYn1q|tZ~{!V[Ft3_5iI??J)k/ͬZj(1 +jMI{=ǻ#d4IYΓC&Xu10xV?}MwAFSbѼT\Dn жl{vZAV3GaONVcogv#cbSDŽ5n092|IK|+ՍC4z6 ki֓{,ea>ܭ N7E!DB;~;r} Bia`v\T 1TGJ).i:CJVCJBmKa8Klr5JX]89VY2oH1lGgBffΔY?5tkϥ~EywN^q%Keu ua$>,7 FnXrcAf }42"cDɪOݹX8|HȾ*0BfLvw !`PBl8@q"?tV%USQzZNߴ'=J$1Q1) cr8L(v̮rt^^YI)ur]sw wpRl^)ߵ5 FP .2@d{SÏhUT?gb"Nf9f9nWN^zZpvZI;;tOW=(ފiJMA<:?Z%jv&9;#WC{q_C EY+2xo[ڡr$fu7RXMmUXh׏҆Hnc7|3 Rvgix7jO^nr@0H0܅ !(FcNoJ>=BFF6~c2X>K;Z0wj+q `/Ϋڈ*R`~mG6| ;~ÒBME/CaphP%xg[a'E oz 1n$ g=t=$HN=?`j۷u2 Lϕ -aˍF֋V#&=fӽS:].?)MDcgh)}ZσS*2Ic/q`L @X_X)鲌|} Υs-Eh+rf[K%IF H%ņxA`j Q5AM^ t։!:xJKfNYLߎo!LH~urHr|şg-"J)Kb|.s^X&L ٲcQшnKL,R""Ƶ K<@}d3Zr;V KM;eVl.^S!Be#T4,׾4f{u7nQc1i!r8^ ;> { X-'na4nތrOyܜ ygLam crS7/7Xm,Y#-  ?DZul`5W~OA;\-$`*tdT%tPǕ{.N' + ;%֓*ɋ/3MC3L}8(1&ށ? vT![ۜ &۽JEnhuX2mUsO2-~C~;G*r.j,tLH:}ٹQo+oZg2iq&Ȅ3t<*U˞N f3R7rvmxXGf#o+׃2nM?$~8uv=vP'F-~CLRfv;-ex=뜆jkwN2`RĦbᛣօSHHy <"#QOE֪*DrP@cZbQ_q*,l$'>RP\g99v}4rٷ Gwrfb號l0!T]$+3LZN<~xoɸɟ03Xbܷ=|=}G~;0MF|c|0ց 0sx$j¡'OeMֲƉ5;JQW5GdS=0S%)2Ok<nr*ZvӐJ@΅k :n*jtdz̹ Ln6kϙG\7q?/X[A0"׼7@ C5XD1(U .jl$wc q-Itْhm̆0EY? ?[Ixٍ-P-##Lӗw*u^+InB(BHHLBeƈM(+ǖήب~&; 4 1QJ{Ka.Er,G1؜/0 §] xuֱղ% lm}<ހIٳ U;-\raVS8NJO(@armID^ƨh֟hSzIٮC`e :uEjrYY3h Zv1%ZSIkHs2ul* 2(.gSi9k6sS{9(uIGxWئJV*d.GĴ 4N'K80nd0ONBd&]Z4a8-ѶWC+ÎL~^IZOIcJ{mʝY&37C"G5\?4mPXID1i4mF3踈H@!@ }δS?nU)MO0]^J3u}Ɠ3 N$q ނ|P. )6F-F vf!Ar?*M(Ws&8 0].r7 bO LamXL[xE{p~ݳQ^ysqw?:cd3f5/@hi&z(~OU"ȷl2pz0,N]CWmio9'ڔ׏إ)[>lqhez9D7E6)Jy~\>BQW#}9b^5.MRRfX/ ] Bז(11&D4Axt* 9`@P1{[Z&Ss'SM >nƄ>t[b>5p}zAmy/g!SsS7p%E57_bd R-=Ɋ`Cv4xE@G,|ɮ\at^9/QM(&TKs iRðTD8pn Xjdx< `vg>TJmNPKA_PG\>6%'pcqx3% A<#$-Pn5amՑW"4UK[ W B e[iXMDEL)C!#p;s-O_FPy` =m4ʎ܂rN ƛG"mn[8qro"D#g63wxW[C1~l p1&jŘK1\+2RFшz,M-q3YVd8ΌQxkMrLF/"FSTN_ -$`# vm!B+ҎHoo@X=a0 $6IMK1>xڭ +򠮷n0ZDldE%%O\b/mI?iJ2[ga9HPfđ&QzI~C 'G:QFga_ܻء_M祭Y9gusmuļ#_ W}w[~,٘17},1BrMx@Kq1nY(U(VCFx^&iՍ50;0Fu=Jح3]j9t|?po6YA-$J<'GW̄fG.]JQ&Q7}iȚNOK$z^Dz"}YW5XaԱ_>ajRQT$ Uڤf3S@ حLCj߹4Pb1®ݳ t-`Kh`D#;> $XO3\*8 $j s:nXYg) 쵑rHT93j7<.nuӏUp$>-H$uYPT<1q j[L(xd! ey~D[gIU8$0niitn7_Gp5g&6y^ y :pzߙMl£O|~:7=GAtoa8j߫EiU`^HʹD5!DG[{WlHzǮ4pDf+0rOW-mX&^-CheT7E4\Q\ckl{aQT̗Q`>2ksc +K@p\L} M?)9 m׊߱g@]u4X6tVyh q$7QdAc &yj@R t0H뎓-k[$o픀 /Pځ ="/T33w C*tOwQct:41bQ'` QyAv= 6F{j\޶_:*WS:XI4@ݓ{J;N9>FHik =0_πQ{A_!PA<–wZPU.Z!de&CIE[{Wk}U}+I3F7>WoXNOe0o:w5m+|g"+:;OalubS:̓TiszMdbCY4\Xv+Wyr/pAmYC 9=bh, PѷI"woϐj`_Bd@0dߗ;w›W*4/oOv<&*]$>Ǿgtq|~JlMyҥǔjp {#VהZƀE̱ c\ּ⿨W/{X6*%#3RUjs.ʂ?QO򦳤T6܁qf9Ys鎊\!E3*O27S<]}1)~N²7L@$R _s8Rp0\nh4G!Q2Q)…("C';?3gp5.%p XfT%'/Aj$mgsiA5]͝"Ǹrx Wh9gP7f0>l 5kX*O*@{:^?J'AH,;T xtG#p^}$?5־ E?n4a TxXܖo#^tt.O/d,x &=K"!Y=fv'ԗpo()a-T5`do&CںC~[]ϿB_6L'+ J::!Q5Kl3g헲2gs$iFcWB:iC[Z¨%>n m1IM(aIqFTly.@y cgɩ7mDl?tsUC!8LefC~|t/@v(ڴ[K-śv+LN5֖'5S) _r{{sUl iT$4-M@z;l[䗛¥4z 7yBTˡvǓ e|#R5it g( =Ω!8϶t,ɹW=D7x|Tu5OGy׼["" {f#r_ÙMNĦ>$*BJL$śwyd3 S@0Eť`:oL  2ˏ&Vࢷfd?El2x Pra}X^NL -Ѳ,rJZFȝ] 1\"0,yo3xSGtPWPO[ϡ1_ͺ%f|X~") <ӗ`x%J c017X ![LZJGԚ!as=;Ow %.b{JwC|Zo"Z$JDgC; C=c<5(u`x $%`Bz{k3Ń,:+N*FY௯#Mm͇zBFacD{@28՘e 1:OwiAy ߝǦ;3֮]x_5|*B[\f p+3Y='(0 ]!2~}U0ZA+fU*!՞z⩛(Q}\>gb˒q>=nl~If%Fo&>غV ?:roBY$&S'1<;@f U]\=>X(HML2b6UK@#:/l@hC*,ycO^5aȯUeOTF5&AXHhqBy_ɾzȔgyv܏j jFR,! T2e  oN^|Zd)RTa;Qhrq&NªSd6tVdO(d(5 ɝ_GmVKb[vTf~[bM(D=[ 1J{\D+RܾZ8c^ZF.lCWqeYr,eH8zUz{!fr6~ێ7:f+^35& H_l7yA\΋2@xTnD>*;aZxo}(=df-| &O.'[\D6lǵ;7h$` T^X5ɨ&ずGtgze[Jg;b>hϷ90Ű,;t Np,r(a? ʜGJA"d&[IWɳ.P0لx43亚c%VųcO#I?#)\-G _fk] q0 eH@Fs\uַ;ߛծMrH2XlF:sFa|GX_c+~l2qru;+shWO:*r¢|[ }b'BR)7TT(]#C:ypk%*Szr2t#EJaE5;tI&-XoF|+Hh~ò}Ï969YUj#/,%R\Rzaw@[3 aƉ*Orv λaQ4QCq3hcϒLM> 5Rhuftl$ڎϑ5t<0mM7fP":-o0cxŰp4?F :;8yf금Hc,GD'jM~G<ϳRE,[+Vd$wX ~ٕӁ;~XѷFlChAWPԣ=qɉ޻%?kfsD0l)> e{,k w właj:d0*n]ِYFloؓʇpbq?I{X6oDl^MX+}yn>hݵ;]!"WvV։[!Y0Ֆ1l2ɥ +FfWDŵѨ.ub2\UO(ʯCg= o/OUFeADQӑ۬2:߶c c٭납+s] ;[mMnGD=?\,_b~@@ bH0ԙ$rU*;gtua/,jP# vVM v4ۄgk^;g`ʬ K7$|@Юkb3"vr <,d@ sڸ͹~rp@r"j9 q_Lx+P9xmSBZV)&,˛%8gem3O˰⏟6e(\C)?)R'NzX9D$-՘&d3ng_)w2j$5q xF+Q1bQ.܊s=vw*dõX4yN _&4:!yvd?MX T:LrO% j[/?(.aOk&<>Z\+f=.-vs*d.R;y⓳ds3aBo&⎅LWm!Gg|]jy9z<_Zmx9O-r.8Q KW]\32] Fd9mXh~wu5W͜\I5՗M0GKAƧαCG9Xm\A7r?mCО ȔBIv\"xWq27ק4Md {B{Q;_|TlbHAaBnEB"zdB%0rȚV/0/W*NDπk-Gm۞7s|  +sv%괇QK`Yשq]l'R?k)r!S1Mfks0-Pʦ) OLITżL!@35:BbgTˉ t7O)Aܭ=0'(֥݋*lmD4MA'a,pFIAs$Y*W̓IjiYoYeĘV 105l(qГ[b7w`qBW-S%' Js3f C φoPqxBU^ځ|ӽSGKn?Nᕍ|#*rUps} 'I^(EMy i6WT@JZ+ie{Xzq.,[^bﱝMb ^x~OJa(BW^}d*5V5'קe% o)i:(HۋBw5TY{\d[ɿj=@<p 3k8wF^  nkBom7e@ l n,X'CrZ*٨"T"J]@աa$G?> xZU>=K%npΣPݹ]W: ~ ֑Ԭ1 @Fs>!iVR%"lLoo]4:싪>;QP6hMk CY,1uȸ\!aF!GZ ẍuԛϸHÌ^bFwhR]@tBg<. _<yb g7`aUEǣĈߋHfg!O?uK+TQHL31X]"HEyf.ʑoq}tL1o^g>Lb("4KHI Y_Gb6ә-Y\l/ *Rh cUHc.⋖؋mȪY!^r 3>>h3i@}ך>E$}DPMf6V(iyig8 9] Z23dz9L/VÀ#V̦4 טy*Jn{6 IzGf%q5u? 4Qj#Eo"GS{XڬI?竍N\~a%}" C,'Kqb~&! }([l\sd 9k#ӑ!.iXõ>y(@?+nD.B5"jiUKjG; su=KrwClԣURXn*f՛T jə, |:ZyfPN[n_;eOk-)zPvpM"'JQ߉)4uU@ w#=mx* ѲQnfRL:tșvztPBaD3:VsB]Kݼ(ꨨg=. Di޶p ?aq"& „] &&"F x{;X[˘ uT:& 9} Nxei~%MQ}ܛyvѯzrF|XR9>[cAJ! c@ƉOcOhK"dJ!(qVIޫiW=ze:Z%QT٨1{c녣"nӷѰ3~OKEhI ҤrZF:]QwoŖ&JLkdAQaXYr|%Aj~@*P5hpq8hb3f2N0ݓA1c$eW7<1q}EqHֶ~!R]s@JOZ| #)' sQ҃}*){'?S2J`ßV9jn\ogǵӑ]Z[4pi7':hJś"0, aJ+[ݍ.ZD?*ClD[i4՜Qd} ~ǔDԔ^+n7;woܩޑpdF2>q<^'&!A=1z1r+cݏ(ubWay Z!nƷ8JK<'7!N")}{M={u9ZCKH]< |ʮ pÀ4;qM8ST}7H^-1f =) @ۣö,SLD{HK 7hBmb=EASkC=%wrԎyQ.z6z epB՟9; !q3)2 }I䊫Zz ڀac8Z7mmπFdͳ c/r:ب-'8>fzI'JNp^wo\T0[΀5"M}_p7(Bٳồ hl7VN8>p-woL&e 嘬2Dư=:;~Zhjc6P5}s:pHt0"0oXBقFهBT{P];c'/K2Fvg 5)"lYKv̜EUu|Lojfd/pE uzԬJA((9A$TRu) \Um@lbOt{Z8`?Vgf|1{f<0Pxof${r6>YÕ(`Ҹww,:]7_?3_3ko 5BѤX毙[G7޿#D, *Su yI֦`|Qjeߠ%:|s _?7<$=!1W e5*E8x!\!oa fcex;A*i{mNg$$C(~4(ζDV< B: ήș#:"CFK{x}#%[jө b&p΅+yFg֢3oxK\<-i>^q? *h,SAW#I6|\U)z=v\_30jqrʝ8g}t2uDSat+d >?NSO}E;&ɰ/_4շ_vRPucX.J.{<vnWp㥘+ ZH6sm4|o:y=> xqbv*BCn yB9m7Mĝ}YJ r"~Ek8OYQfbeO@4A.!(3e;soAn'݂ V:_t(_!*Qc.Z$l:xϻG.$ Jv1]˜0tHpIxP!ɰ0*I@ mhW6g_nJrRTs6?@msD`Y_cEhzСQ\d򸜎~P@*@T Y5YxQ@*-ԃȿC2bw E 1xķD6ܢpdQZ:_%|A8_c_']^&^!5=?}jފ˕4? ¹ưf'?ߢ$IWf\ ȰܣqKhBZ>%[ˌ_Q;A ]>9怘c`<޶\ۿtWZ0>noWM^|"Zj)\-&aϫ {bq -h+j_Gvop#1@hp3U>LKvz*ʂi;_56KZ+횘jaY3vtjC䀩$ᚢ nB`7U;D:`Zs_{(FmLN߹kDђ 893yd6H17$Z_3\_x/=t^~X/#]^}'X jV7ܻ۔Ft!򚬭aJ 'l"x Cd(_Y[eR+Vq]v"YZ=+:DzB.wtkXϮ#DjML?M/ϯ2ӧ`輥~ f_Hv&P* {NV X\e-&]{y$o'ȤAXbs7{VC"#s#vo9n`ykz鱘O,0 QP rA⇒C)ߴl`l)HZ˱}:66VvEڳG[I6,̴r}FrLi$imB>tU}NfsÚnel1U`'%w|6kSnq2(ȯg}Ʒlbs4^5sHիPu-5AJ#`zҐ^] P;/oUʰ[}EFל (61/F^]fJMO#2HAeJ2CܚJX}mg8#\QzjÞx9(u c-LЂoV"6>k=- ]738ZO}̩ /˒Tb #,ۙʻO7owT f[< آm~+2:=!͍SJ(E%DbY:*.zf6]޸DK3TIu*0&[Fpjc(Lξ$Hxؚod/Bc/Si"X8#|gD[ ] Pi%ŗ4Yu܊ :DwC9PY/!W%C~o(>5gr该Dį Nn=~~ 9Ȱ{^l3I(KLbX;\N_B_&a<ozM7a m8 >Χ!JpP:l5LX5(^iyt{To"ȕ!mviG8gKO՜H!솁Z%4CMϜ&bvԢ- 3A'R qG zwȇFH> U7 wMD[sBOʕ>\dܗo" Vx(6fD2^?i7 yErAu~Axtc[n8J-Z۰OƊ (gQ5FBsY1ymf,oivz{E/^#w֨{~q$yNp X &u:#"S):@^{E9Pcϊ*éR!*H&3m~!j/喿675VЏɾ 11b9 mBQ#JpӰetjM8wĂ&-جؠ:C% mTXbj#_vf1o465ZsoOԋaAiswN+bS1!{m_H0نwsbnGw<]Q f'+v^0k?&*rMQ&SYݒV"[$O;bԪ—9>A턘 O-z0=r Qg@X$EO1[0^"7h$r~IB۽e>O4Ynf&# c >'q1}҂01D̯L„ǓJ]UYpL*6#(B;L X4-g~$(^Zaݒ෩ọN0vn"| Z{m'zA Y{: {D[ *P<4~>j'Jً ߢ ܍'y"{dB,X;fNr#Wq c:2J1j8U I}p&qqCJؓc5׌(k13Mo1> crn0Ao>_kWٺWp $uJ aM}<8,9=5~?"`_+'0]C<<⣊#-J.[K[9F@7up%yiH+xj35=\g&Q?j4,$=UO#Fai[6ٞgڻ6ա0xp:Б'iDP%k~0y֌jbilFau'r(buBPPLD l̻+jb[U~&Npy_5 @>3kVtx|K>WpPpXQ Oevq`d2nteX87p UXh({%gzDPM9Fjھl'*&;`paÜ@iXHu UE9J\r[}i7\=t@p*r3W,&B^*kjRg"L :PMK3G(0 tr^#߼8y hɐ8e%hUJ|8ٗQ6 ZZcHз)Pk#PqQw?TRUO(*M k9FIT5逃{$h!`}y^JlM(ʑEUqVs_NϨYPygD%(T@ԃyj<8+~YJ15;Q]4E@dR賁<;Z &zb;o<& ЮFB N/Q-g!}Pac>qk镖"|)'8KCbQ6A)c2muOv =sq[)e h2/F̊oѠВݭuNM⇗z+~8Fe Z6I& a,ePK.ޚI͵1OiQMZVW>⿫=fЀzrTM+H -QkH4#تuWñN r(h\qPT67ʺZgZ]U!E1"x]%B\{mͬ KPC-GLYo3da2_i#jѥ:F.֪%{=L,E7i'ṁf..Wwa;VB'1ڹ~ 2t]:Wr9‹11wBx^!c6pNt狰?Aptm& D(Wdī 1dSXMegplM뫪>ԧvW5|RW,7='0|te<=94 S֪]XH8;u'CFlIOf;)x|o1YZJ&aMc2u8,2| .WMiEִ."V;UD JגȏY~#'qY}w]}Rޅl1&_BNAٙa,qo)Yl_F$:sZs5٤ l_*dMaEVPb =)[Qbd@G(W!xyN>O`D<٨켺P$ؐ Ϭg,zChś 3ؗ0Zc W9`oU5NHRQc.ISi^Y.!ZQ,e |0Gh#`FC :o w*x~^DN? u&YAuOi|}\蕯 pH@3vG&\H?I pXwi*8>,_l"bJlµ?ٿ#C[Jiɾ@mOה<MΌX\OCeBdP$.-KEQ])9z&-#h%Tt<q&6%+U/rBmIRAw a9MQ\4a#hkm@k@=YYkF}p',kP7ab ^oö0tF!qHNzY~97D#Ci^^R4x`^Zktlת@X`>}j f)Y3XY7҄FXN'2pwo!U7DHHU<#鱭SnpWsoG.Z< s{դ~' LL̏j1 Ԛw)-E9exYˉ^A w MꠌVF  St# Dy CC4s*54A:Wkkg+FoIVƏT ߍ_NVń: ٺIA: #܎x*n]y =`:6fִ>BB4s^wA«P[ٵCY!0d:׺u\R:D]>.1u" _@u3 S,6}S9k{)g3+X8JZ`'t%o{ HGGy,ݥݴ]T4 "A]V^k -վ[>sc$6D1XDW1Iw֍(oVHs0N6Exp "nJU T)?9򁒻?Ԕ LG 3`#J-W,YymUN4|yK4d2I;y<ëQ! X9g hF8|ѷ]N0qO*Fmw&SبD_ "?D&aCцB=/> 'Ua;`<ۖ8G'YpC'ESW)wQ'F!Ml3ʰMV+',&&t340桾qk{PIR /G*S7:t+V5_$;-φȆ0 BM4Ǎ`K uŁ'9e15tt_V7]90/ΙHcutIsaigi<"Zj§4mM݀ c(^vngY, vܢ6Cj ?\E6Z /[ljjF i2!K8m%[!)&8hg= DnJ|1m//&{{^@z⇠ S޳ZniьȀl*P+5&D2IyD<]mu"fm^|p;T{7] *gZ4UܠxpR9\KS@**+jefSgĸ#Y-V]@zpp! Ziend}IrhXϓZ)%#oOs޼2,N!7G2FL(9fE,Ʌ *Υmu1B [+T .j *~SIRw]=:2;amk)q&D˻q*q:}P'*J76t c؄2f/ϰߏj,{p }Ǎ9"7 x6PR "Ir0Q^ "H]QvjA(jfK$`ONc 8eeO^kb@A~l;PTZyDhq%QuY.@ \gOHDO׈E$nLi{j*5$+;Ά<|Mf,^}G[)_c0&Ļw sU’4r)ޯcuw z2N&\Q!kw*w)?͋Uqh)Ĉ,\'b#ڙ#Q, } FJĻkPpj6/a+bh˶ؠBۀo&pMVhJ!;r <(ȺoΩ߱ A5XOԉh.Hq9*(1r&J0:LAڋA@t~.kdU~bq7gcM ) * iEdtbNB r|0H'(=.pHفq9a8I3I&TJ5ߤ(ujclHrw>BE:Κ0xĵbp;H6dIG128xFxsSC1XT;rI,;Kt9mPFͿ%tXP[cA\0 C)$W#Jep{Q%òrϘUa% qJu4}y$00j:\q}iڨr+se5$$D!C(nB=Z sąR[Vcأ\lKItBR+-uWVuqs=]q#3q^*.Yԧ#OSZQx>CB+ZUZ*јI>a[\@V4X]A_]8ޑ{LMzg^=jA;Tb/(^|\ w6Z#/\.I&T!׵od](qMk+OnV0TH_pAf2f7~ 0'ԡ /gk*t&#MA1˄%47-Z4ZUX`0)'c6`Ӂ}ۮ.L.֡U2O(A$!m^~bԝ*qʁif\.rt)G!À j#!Ogם|̸AnJbF*2|p&S@H溗MQWFA Kae^-Ώ:YCNW;Թ3H^z @$& P5AOT?yǰ,US7'S*.hsfixwGc 1wD@y#~YF*q>Qe.Ք-b)8H<bE񿌈+ރSУc~eV8ua5{^ ~֪3vMgmS>~x{yx$q @׭S}BwE,Ѣ 8|E[ 0RNxJ'j['+$7^WYg9 /?;/9O;&m5[W1 Cfid5hx}BsD '1. D@9 Cپ W`) Gr=@NdzdG}n Ž9hw"H@ s/+܃[yUXsfnN8VARj(EYmFImÍ8NDOsr:5')KL5'kJԉo_PeHS~ g͵2V'=z}xEwPj|wZeزv6uĨXsj3C'젥+㧍uhe|' - US=KwZrC{nPQwWSY}yoleyzS"&޾Td)] @ʹ_8:@@aX7V>rt磅UX>v>ĽR Ө &RN]=ɕZtgx]0C߯BӦo%n9ituՖ_*y 'h)@V> ٌ݊VZ)8Ha J9c7/˷nwȎRn6JW3:2}--^3K%Jz/(uv9;%`!]r-.S*SF hk)@՞-`Lf <>GVag>t 3xͻ CF  dS]i+ѿl!r` #;{in"FI2QHؓӣGu/xbҵ-p IЧ%tL4fM.T1Ǹ_Nۄl^Ny;& &)šSkj~?<sz``^1{!Nt6NJqꑝt78_e7'~T GV>ž&szgz~\mUiT:ζFe)e-${=jo5}3V>e9XRY_xwCs|&O*B9naף,k'7bacxgy10wKmNI\BE6xL`sqm4η?X\-:Yw=FQDlmuvjAK@(3 zΨ&=|MYL6(d0f95Cn6οsEj>E Bi^$Q&o;E6T6Û #`m jYy7ϏuD3 f>4cwb '3K{ҼO>>:+]x%7wˇ`oLiVοV9IxzN|E[3dSz\p]LnN'y|@ɐciI0ԏk3M ~'#eF_k dΐh>{A^qYW=x]xwm$*6ٱ4wj+:,nM0', \AsUo)tCCHԉQ 2OvRTU@/Wgyѱ+8wu3nOF2Ř=b)݀1ђR\RP3v<PM今9h]6qUˏ uǒ:5ttJ|>'9f abmeiF.s;%.D{kQYGD()GTEc)K16%]ތf}$2,ZGG@7pZLKGDG!?,W=m o8ڂ\b--.fzEp|e> tӫ!G 7RpOgAW}&p[#E=).iQ$)0t2Bÿ➳"͉\a|"8J;wa䩦 Et} ϒl_T*8[Zѯk4BT~@guJkmPrr p_H ;\ra⌛3k9-̘oE5'RK:%ꑸХ?Bձ Mм% Ȑ i狤5m p gX7`4s Tب( h}PBńh@o9 T]8h> sDV 3,&Wgx7=_ ]&bi2 [C>ԌgR_rv=>ZzmDɼ ut*>P 6zMU$kl16Q=zQOxM|䩐a鯿}M!]]`.ngEi*/pq%Ss74!4*6yj&>Yxh@C`)2M-PDZ{lA5V8:H/۞,_:H?'߇nYP٘zMzKilsւ)f<$;]a4 ѧĆo\Y;Q2-vkQuJq:Ϥ}Uf*j _>ty#櫫_ {8@3Zi8*2hDqt*U9jf`k}-,Bi˨'֕l[qR'`qNH N6Sۊ46k`#:BWO Y_tQ O(Fڵ.knj Kn}FdR4G*zx?c4<&BY~G>iLf PǦ> ye aq zL:'XCI%E}pq(NL}Elŋ3C/۞BsM.#u#gyz|)kFw.b/>`TQ0Nj(7W1Aj@a@8l3?FGI1_f.pSOO4x:DhXmرc1ț|nqPV ^~۽mQ][C$ cs47qS{:[QI@ =_Wj.[%]K~V6Hqwa̎]1 %=>^tmYO4PZGk[ZE]|T{QȰ)p Z\ºb֖lB,B:iJ wEUl#!&I(YANL",H}Oꔤ:;{gkARjC^ 1o }'}ui[GQer!oF^7qi8CoE87OSDrhSքw_q>L4Ah 2BL>[ A_Ӽ+Tt Q.@Lj&[F:`ͳfDΰ8\=/oIP "uUMU7+g0 qD]] &^Rͥ 7p##[.c~z&t2,St, <fw6WZSp2-cEѶLm a#61ǏE'sOX/| h  %7h,~CBluDpdD1=F|7smGOW&қ.7 v|qJ@!6D?WÎ3&l+;EXg:)'bUӍ_N lLȂ͍)pfQGgoZ[3[iknךʢ MunBlY}~zT)- ,\%v,e@HZd%uRxL& 4"'R3n>ŋVkRjRZ#KVviE⿹rmtڷ ÷G (V&^ 24nGz@s!uIN=- ?eSMO.^3I@آߕEx(ܟX &ؔV[82ږ(72&+2so$PSk; :q,y][^ Dٺi^~ ^RvػipƁ2 tLSYVEe&(JY즚䠹@뢢y.HVfMX{oy69]AoS@?zuOŸq^*e|Z5N}:M'L@bvzas@ĸ\QdKV{Sdv%>hٶ47N#يli[s+[iOTRZU0xjXGv+Wb|zQC2aF eXluPoC?$Ka v~e)"&{D78$  XO+UG< 2cRu: Dqwݗno(?[Վ19wTӀ e($N:6N7xmi [wևX!,@^6~jt&O ԣUCFZ cH9G[LԸ$8r[] =K=7,#ziR˱QR:x=~9bAO?U7(c7!l"b-:|=%| ҹQo3?>0 a:1UIj`pmQI`I0 2|4~ XkO句#hĽ)ޤtHbn3!CtT6fMJVLMd 2'r/0[R,k7ᦫG|,xjjs8cؤ5n79"lh/Tx-8_!aRS&wTaE9_ @bGF+(MAC;ƑAb0鿍Ab1*E)<DaOͣQ w]7b?NPv f0nnnG{) $OAK LdM_j*-|O 'hx"Y*i ۮ؅D⣅{KP=[pUƨzhҤA02W!EMǿ< UkζuaR!)z N68[M<^YfŸ ʙɭ,`P%7}xn\cŒ {COtFObsqH7Q`C- o ,lPU;CDT4w9s ΞX\ڊ8sJۈ0) vTFŊnݥA7=zG!-۞4ŽB箞ll}@q:Ȅ*E(շIlFTAio$6Bv?S "4持,O/#g2z@WX@2`@=Aj0fo{l.)mE:߳Bo S]=E7h讽W|R@$a@/֣>P@lFec [#Pʽho%/tB@D_陝#t`N,7A_!xDf܊XRaI@Kf# N*j:qDU&7%#o+P_Ys;6jbQCz=<ƚN+KR|ŋǏ FXdxyyKM],KP2›j\Rg,9N<V<@uLˆLD[u֠7:G?axSZؐϽ5C:j3vʌ;q1 嬕eVXnTVp\`nnZBtyS;bgr"Yiqџ^ CAiʽsˎA#`|Ϻ0 &lvqx2%C wEO5X@OVx$H usIaJ\&3.*%*PvvijSehC|k+?6uY>]JyO8Fn )p;iS;gڀ}dZfqx6$!AB),ƍ1F-.*C,$r|>wa`%Tn-y(~%+\/+,NE_U<kȠKe^~P@[|W-dj&P:+I6C;6ɛB8xlدN`?M43hi NV#@Z`P[' fGk]BsIQ|U"S' < Vuz*]bp&|]]}" Þ}I4@A=?rnWWijU-p񞙁%qkEKn'gOo66Vk!*V LZq ʻr:T11R+]88cxFrX'|'yP wؓJf%7,${0 2WCIJH"殺iD̓1S>*|Y㙠G|I7É_XEP"מ+׼L+m7a?ĵg!|-_8ǪF{ 0%DmXHQqd==goKJ Yzkگ! ܒpJH5d5 3j΃ʆl>*OJ&,l &!ھfm7 *-;1oE]ӣuUM.P,+=hGDp P|-'؞F(1;d>O%U ct[E-n6ZnǛKPZ" b̓{”`ˡ.EmSxw:,{(@3ҍ;f&_ȒU &k ߬b:1l+6ܳ4ߕ긧A,\VeC?L?{kZd'>_ sG\'xp1}[v/^mR0+˒㿃k Fvӥh6gGHC3EكiM <ٻh^ajykhz ^Vx-|Kdk^`Oy`B+jҘwt1 *|zU7i7w ҄]lE@IK>o~ƧCBKH2k`—!M~u396\w*v|ۍ@9{~=sXU@F hPb dmu"a_>ESwz#FqT,`Z!̰lHy4rvKհmNQRW $gqwVN7\YNKxȨ?QMTR`H*=(4^^Vc~1;SߥRf6aDvTdĺ&#ZpL%vjvGKbvDK)!a瘸_A6@/5Sa0g7K0A.)>S:g?6WlRcOܵHaql|] ſR/a^,>fOb+WOCD~~"Bc!?oN ~Jj\oّvVyп.~\8*n7<( GgxXϹK?.8pv@fhTY0Dc>zvx B#~{Ug,&Gjg|ͪy̓I+7dE EEj͹9н'sdV5 6<> U!FƬ&p۸ kc٩/BjbIr饤 qc~* YqG-`wZĀ?KW1t/U[y5 PNYֆm,fl>vTIFK`jJËBߖWNN;46r &5рcUե.fHןW)iPw9q ld\11lx{%aq1*ĒkYRD!S[Q%?:IG(Dѹ&؏:Y2' <2/ dad[ftJT+J< g"@;RAj>9͒,\i^KJI)\$̪=NQ#ԯB܍ &TM" ;/[>xH!sn>bBf-7C!?5lK=;oFCk *ߚݒ{Ϸ˒Oj%40BsCV3p s[ E(;ː'mQp|HTȁ%= ""Vy 5]⸵,TM&: _O»+5/y"l`!^DB PP7ŸN }]6+ l'A}cW\!ne]MĤru,YNoޛ1T+Ao㛑m*\[";Qݫ9.ki}.D*YUQJ0|Je':*m*z[N`KM1dFrUu4Qxk-peF?)jwnހZ5mp^;RC5pF;jg1>vgqyMLh 2{[Hq^< jR˽b1SMƿd\!0tA l<9f]uzP(k #H6`m` X*2_񘌘\0 ,p/~&Lx(G^_k]+,@q̀vfw H<|f$Jsj|JU!(<{==}A-ze܅;ǡ]QUh?V hՕ'g~ hąVN:uZ$?i>8oJ!o[zF3iy).GCJbUE CFs{hl R@2VflE2; ~kIDy$F5c13aZ2 :p^9|'C/+ !L[C{XtgwT=uFs6=:h2G, 8`iy_!Kmhc;B^p̝ (=cuHxVӎBtC oe3З&9f#೵J(CrNiX~6=KEc[< ~{ZMnR`Jdjc/"W@btAw}2IP;wPlOg`3L7.Ľy&7B|2 b2#?lpNzFK \+ZDx+aP6DpNA|v:ŔO[ Y?Zsɲx iIzb_-ls3eƠJ(AppEVFs&U7=+Ν'r nkQToI5&uƋ&;tiEc}.H3$M&٨Wrf0ƝiE:@o)x%U:ST\NSdGpO.A[- %i~G`[xt8?˗4;KG7 z'_{|&>hy{2rېrm3c-w{r[]^#v k'|ue-Cl W%z2I l䔍_$=fѵViƱH}?~8Xs%qT[˻(@@5GOAF+CV a!1T Ļ `:Y^w{kۦ-OU/Ib'ms~:J>W.Dosv>Vš6ap:C:te+V3ZHP'BOUQ-N(VӮ:23tўB Kjɕhq%+U'I0Z ŧf~o/Sޜs! Evj* h*lM /.ǘ{8p]iJvzCmoXpbi]^,}|h|/'W].X4DN^$&6hXŝ=]Πh "HpU5L$/<#J(+AH/79T-Sb7ӓe.A>u^]wGPesnF`%SB(b;%}&A=*~A9V! H%t0B>㑫("خF \іJ^o"g* #p c%mj:wG EII@/*NewDbbvRۀG eG 4Sĭi9p|_Cňw9ߚK%rp =! ;" `WʴyWQ許l{קc cyHwPw :"{0Dݓoic˘P`ILw*tr%?O Dyw~kVHxKg7%LI^#_KǤ6!HIn|${׾V=ԎSvr7cWu -5tVY!N0NTDDC&QѿT _C<.mZgǽ릴Er| P5jhX{v4JaF;q'_.dhwֽZC&΂AkVyTC׋^24A\F"`pbMj¯b_ AABB!"#Obq2C5{A<3Ig?Lm*JL/18rjγ\jj;}_d3P_'3MS+s{.H"5.E~}Ɍ2:gD'.tmN]O93?Q;W4YyH jI15V["-ZW [n N˻#'RNPf&hq#'1V,}a *-קf/%oܥDF^b},BuzWk#̓ny)JSRus J\\فIA!p<8)Vϐo>nsI1SW>#Y/F=@_EF2;Fɷe NAZ.ў92 qW֓,LP= MFKd]*Xg`x7SUf0Ԋ2'V6vc3d?}˴<JmT{ь޶'><mr/Nav3M 9@m=㫽0 _u0~v {v/3ݚcuaWWɓL՜]'|Ze0GJCDJ$V0mS&+7aQ5'O5 ,L$ :f\`/p(po¡Ldx #p#;G̒H0$UV p wJx{Q39hmMhQOm/"9tqn^ 5~潔aIcJ& ܲ w!$v|AW :Tk&PC)Cd_Fen@XT3S{d79 'kzRk0?Ea$_ >`.n꺻iTbwbMbp%H5P+CXc͂p{BFⓃd:ٱ.a֊Hv 礖^F ܿtL/A@+X-|0BfX#qPV:B$}1>A- `$rXi/ Γ6"Pw}v:<öVj 5ŽpXOٗ^ ,?KU [+bi9+cD217P? t-m-*8u2rwi?M G9p2 ^xeCv|aZ5|[&.>6y4(c0%!e kg :Tm3R&'MߔCj~\FͣZ&0w:`q$1w<'Pz?s#'G[1i@AURcXPn-&6j-b/K~L$|wCmLZs(0m!Z зq&?0 xmTF x׬ke^1KrWPAd F,pFVп hDS%{);Yo8ffF @COa$|0o=| `hהO@ոS8b C u-l pE23.AWNiqmeqiypkk$Ͳq"+NujŃ~WS_S))A`S݆坣.oy!x/(IY؞\Y8S2{+=NG]uWՒI ٓw՞ BifW]sFˈ1nAM'+?) us8WSVcqj h-R !!o͞0$>ׇ/[{7e].LPXkA.\.Nu$^h(/?{1RKlc#S]ZA؁|SEg2}~zuysy2۬e#HѨQE6Y4NUTc'T}2Qݡ({nJ2-ˤ#/䫫mC!׆}[(4dm )'*NSY|:`["[]gTsfE>YuZck a&u,ַ=83l'SI1IsS7Hݝs[H_>=܊؛.C1Q|H˗ fW܀%Ԯf} ԎQ" +Z@ᇨ5ѡܯW$CrK #dc6&svFIWH8 WdH- k:%̓ | d\J7nT:v7\r#Υ ZxeY +vA! Hr+EE{G2IETsC-f欄U@\VlEv q,m`hvß8 7ѭF5fo֫3=,MuS#~vdvUj&d@ pXm +Ћ o`uOf{m9QA8C9Q`9w RhAǐB)aK"k #}5p&^}ЗW,4S}+ԥ׏hg5MH #oIk3Gk3N:Ռ:R˺1~d)?Pr@( :n£|bQ8;nf;ljLD!Ir㍷{Y|a*ۗ2 c$zs厜 +C»rR2? ~rpȚp]T`_wT(sj.9 \^;57"}/8j949\*;K'oL$c \yk7CT+-uĽT֍nx0 jrcDZ%۱n~𩠎}X$1w,/~1!B9;_e=½d2}}O]ĭ;=M<&ڊ8 j#F#Lm)ƉJ$fNq5gi{C;,WId/g1xkM/MxѰO'J $\ %mS%p/l?۞V77O3@V)2B*ݙ`YʍϡV <28")(iS,^Ū 4>SΆG®ӵ{r=Zu5IM3EέX{7[<2'-BaRu~v*_b=L'4eOMvXk_FEx"'OLxtRR(;搌Qo^La䗬+M=aRgI(9&sd&MӺ7}@g"_mxbG- sHo{wM4rVmnreCki>MVLz|4;TD²S~NyߝF>n(si \6\ZSzFvQP.j5xor[xF^iORhvׯ$bO&aJBywSΖAwHɱ6x)f vT5N # l 2Zܟkv~E+̄3Fi M5sm+1Œ騯Wl׼]\$=tDh}zX,'i+\7Xl%4\)ؖеޯUŤK Kh¿bbXCLcX"d``g!TW6 L EpѮ@,A=8]dP. x4Ԍucl0 BՔٿ3<;r-ql FcRꍼ({EVT9uxdݰӲ[M[\[[e[S4yI<ў/B üɔqrrQFL^gQ Tyy\V?pU%Ґa{,"إLsRb兰~I]t釷 {겤sV&^掙CM(ۙ]tX'{.t*[>uSAZkWf掦vb?/Jw&6:jrX߼g+uCGIif3r2 ox!9V(hz.pu@BRMUh,AnNZ^@]'.DmR:"1.R %6T[7e|Ë|hO:($Vը ,{7ĺGT8^d dOCDB +- j/sIR)($*Kmyڌ br(ˡJUf O*,5:|0QIO'SNz /GeU8,&qvБ]4qܗp %\rW=́>@Vaiߞ9Ms .Z~%VJE{?x oS V.=W$@%8_VB*+ХU,wOeNVn2Ϩ9UZfasB fw M܉bXZ5|Ӧ'bS׺4g i'KBSxeTWL™Tڟ”PzZc0BQk) Mڜ7]&v[g>ĜWc {וvxo';z**kS:.Iw~0#ݢX p*UuFu0+HKr[ʪO8V>ACϣ$:ُ㉧1B! 66(h9ְjZUJ0~mIs$Frn{Z:RrR{h]؂ȺYLX.57CQ3f_}NjL i3Ew=:9ԁFZ:ߨ?KS~=]ԸF̜pao,[> dxe0Aާ91ǧڳ4ܣЛ ^ %7NMf+ܴ( ]ͳ Կ`Dڂ`pVTF0qS um߻nAMQP35N ,vY (4tA0M#kלՓ-gQ]ʀKsQ0mzzkҐl +~2s̚$fy"d ~/s1%H\v>H *^|+~zgHkW$o ?ߍÔePS"] `5MGl< mp , i{0B).,8_F<֤ |6uvSO0 b#bkI!h<05 VMWf(MRع?ΏR' (q ,aHh  Z4 \!`ٽ}Opq}qvBR ZN\ڟxNƁDįfJg堯 ʐ 鴿%ǙHc |iÒO;X,?ūk0gH_W3h2qARrdB][ J'<~E49wUl#l;c~D_|`vMHEBQ+FL@^Vc.VT d6D)4K Fu*&0:l3XczshB OaY Lҡ7,_7X]O}8 íH#${">RO¸Cl!Ѧ&"MqJD|f[WSfH:5u4AԹ!q)XvTOCD-fLH|2l:IX@Fj8rSU1uIgKdw:3&^u5ԓ4-% ~jZOykp=~afSK:UE]X'Jbc ~eؒ ~@ҋg\S-ŔmCm\[4@Cƕx*>݈lbEC_|Q6wjɏh|Ъ@cwB,m^+4{mi;<, ;+Q<+f0"V=[3Gj[v6>{C2mO,[jMt sO!Gg?{Ϣ! RāO_̃BAs- ^t#u{)?~!&~bʂ8jȟG]wGӀ#?w:l q{N|PH`Уx̣nOaH]PKx̜0%`‡"HC'<(bHm$"S| pq,j`j6 Q]/!|3(aUи~% OΣ-'E5}^P }{M'2-8ɂ1Õ(ҥސFWvMp-('sَSRMaӦqVC])#ݎ?s؂~A @D@ȃ &} sM4 (h\(<.b7 a12c5?X70}3O ۮS=Bajsy䫤3HVߓ.9XRo uf^?/!BKݏ:mOhV􅉞(Sz i@6B5ø*52;w9"}.nVoDھGJP:I]) =(!;lG ^YJ0gLkj   < ̪e/k7ymZƶFрq%SVaekȳxq9F2)LD7X(ď0jK]c;.~Z`~Z*34Z{kyrFܤ-ѥ/* +E5h!WvBuf䠎qkUHryDzDr(&ũPO앺S25`aǽs^X`pE~W>}FKS݋6M>ǧg|5F[ih+`[~yK1l[ _*kJ˗JZ]:a\Č5G_k:Eг͒ޓ*u Sa.tW\Qbe{{0ڮ7s?~i5l`Ƚ BE?17QVWA5q"Oƻ ie1(/l@QPo,>3%o@9[ ޔ[{{V*K eBԱo=Q֝(N`|]lkS_m-VN:tT{Җ Iz_S U QG}$2PUoYT]M V!/pjКSUng2f)>L0T rA}҄.nPVB:LXD q,}=#Sgƛi34E!$kA4D3V/(?"QP҉% \-UIii 9Jd̐3 _"^lb D+=s|ؤ@Tx6 >W@y讍Y&7?DY{$lX0\V/ h_Z&lNTCczah0TpkHOXZ!qp%=srn%l5T$fqm( G̒o`>ɥoa ((.xoqۢn4 ƣ%Im*KloSY|Az`:(ҝ@Ip3z4"DxӌAFA9 Ě+TRʘLH* ך9>Xn2K(_C/G2 ܳL+\h׸k2tL7X$ψwا.־Q:?#m{_B 9OW7bVfNUA gμȹ]CT#7mllFqqiɿc1#ɤsv@o:58ۦHo9D`B9_g&h};N'm4 `a 0/$E &}J2mrbC]R =sJJHz{ W0?PlFԛZyY0I2_UnYpmm&uߖOʶvV]le*M/ Ҟ O|RnFR;[UŮAƂԩL([|RWu^UM.sG,Ac=cT蘘SKM8~qL>ł^Thֶ7Q'|Rhv N 7E 2Ae!O?ڷFȘڠ)Pz K#o=\YCbbR5/ Y87p&QgBb)8M IJv)ZrNzemgA@=4p7TyYLh^aWG0vytYlv4#Jc\q8gm1)[PgEq۲''h6 a ~)U쩼4^l*srI9rcM>6$I<ҵdBvtlGINi wLyhzXXx;wVXڋ&^^~f#CsUb~jx]4=S2[}Gse 1%CWD\< = !brWVY8";ܢIbJ͓4Cx f[ISˎ4huղ0LFz0:"Ȇj@N3 ^Kĭ& uDz90٨#;rjji:݈4?ɹx2(𞂥\*zY/3/:g~wi&9mugG8,/yÁ)n"Y㱑tF$VlUo"Zd* [1皡=ʻ/#*nY^nG{2]#">ɖk0(Bp4IP>ե(88{`-/ւkm}iai ,YA<Ò"Z|xCb$Ƅa*4s2 8F7sR`FU ܌WOǶL{T 4+2bKDž޶pfϣv0Jy5 $<'"&%xQ6e~INQ 2lꤍ5q$$qTs9H FjFNaA1asOO53uQ/sj7+~l#t?_>YXAc}9 /5B )[6 d- oyL~P|Z^z#MYUBKq%,uw U2ҌvT6P`YeTwl ;/nC §R?rXz[rUJo >2fB*B^ ĥ,ے#TN)j'(F\%Y)#x.vW]5\L$Nʐ7; '.m[LTRE z~'ˉVX/#GH:۶O慛9 KƚVAp߷ G 6eo'ZVJ:u`j+{xeVTfAw.5=5 r>iљ;4~N9 |1~m*ҵoN&Gk VF"WߟD|%9T%Y„-JF\i,'. #(V cGzGr|f0vTI }=%C04~EKjkعg]# 2hXԭQϑQ R)^Cw{G$)am|@E E-hc|Bӊf3*Ly+]AjRa)+ladyGYq]]8˴/4*JQo(F,:Y%V2aGceaMSo nƼ`/%7A&%N㚵=i+Vbj ڐ7t, ܊Y`ͿǏ1Sₛ?aaS}7L0 㲴E.yY% :l~!wZ| "LyN,k5ꛎDYXs7'ڢORA?9#} r 's"1pHUpNpFF+Cs?\&_ydp:)ט3d4fi,mhP&+2Dbl_VX1DjN 7$jLFXԉD ]5#Y0$M:wQo,1Bޮ>}u>!볯E͒׮y7P2K.FPS$B*N<ZUHCXa 6AӠr[&P^{lj"`|_rGS]b>>,3I4s邞>ٓkjuWqE7F 08)P&)_S4rꤣsnځrC",|'ؓ -7ށG>ڹ go.? 1Pw:k O/Zh&sê@$$4( K6w> HaH@izV d궄8sﺯM)5bbhlHdlW2O\pZmOQjI/ϸ7, ^;WPxxaf{%G c5V,:%`T#)?|r@עQ;BY~+9dI5iV2q65.yAHW@U; ɀmIC tRdސ(Bb;f׹+͉n͝W!aB:R˞ 2~ &Xg` 1oC2Cu2A}5{`@fV;t*-%PVryLB`cjv]z, S?|ya{tOjK={'STm(+m@†z7vD91-7B]\_HhmB"e^";HFYzM =ڝ31HaN?<\ pZ8qH֒SȴfVB%:Q"|w}e'jMe`G*贈D)%vrrC'9qnܔ֪y5D:JBwq59fle&2X%Dml| |^#ed U vU i;F`Ii*esJ$%U0j7!rcm8hT\n7a+b'h Uшën7~';FsM#j+Lĵ*5P8+MuWWH2;FmMcI3 <'T۪χ1b׸֛3̾ćzѢ6ɬ|t̞/2QMR{y3vVvQ'[y ^Vŵ({J\fMU`O?,t;J9c%@Ԗ 3y@cmϚ^L15;-: s`O {DŽ=J I 4U21G)`U Y U5Qp%l:&~0+r@(D'l Ds}ytn̲!F5SOZʔOYX-@J.n^`=^l, -^4],yF(=Cx}:7Sx<0)PcĴ)uQU3O;ָ۟%yֲ\{k$~Mq*:R߿ů֬`U\&,zȆ<=W'qXOBaFKtor)`"\[ D$9g%ſNtq}s-k?)`lTBYsШ14`Aߙ QztJS{_ o?py8W :2,%n~?jɭA)yWɞOb am4LU-Dt2) 2If-qz׀-n^ñ>MUP:CɨbJ;<A;亚Yũ?!FJ15{VjXb`0YN n"oVo,Eb|Eq5:U ѡs( HWE_Eht .O'䫬29CS\cVQ݃khZOGXk5k߰+$f^ YmIy& [tn 7p."]ӇD)Oq}ѵ{_JA@f0&/31r؅| h_S8ᮩ>%UA5Wn ]X"8[I'T{`NLY3^-jGWH(Qa :dÿhm> ‹%R `;O'OdDV&r7ez ̑XTq2IH2g\vB;H9:౯aweGCH/ [[MAٲ9ɘPiBvE7P%{a{…~5=iV @BǫGaZ`>*tJ>% u.F+ʥדܫud@꺩LWӃN!\\_QQ/()~aj >%%^vTDΖR>-Q\]ns Ju'qˮC+y ZI L>MjkE-̛9ϢG/eY<mw8bZpe4ԆSZk%pޣ" !!'뀸?`Hmk;z}Dq;c:(?^DU&{ mx>5\Zԣsg,l4zU^gHܾatz[P!|8ힷe[U@-`!T-Z֤/O;'|}j%4KkOĝ?AB|4W}1ϗ_(x`m,U5~{N} ƻX_"!ϖj݇_,Et_=0wQD -N^z(>3"MZ5QNL.'[B`[Vruc#ng6P3>#m)m 08rg1>TχxjQ?}M %Y{B\D8N;2-{× a6L֍[ܙo a#CHX&&\`Inig'~hCq]qP"f > @qtqV <٦*mK.6q\,nga yFDLNx P5XyØ`?5N~#QRDArOݿ^ vC IYFBCL1wPkdhMv,`Aj2KI%|#lڙĈJcZz?eb`s*,9n~O 񧘸E7. !^g5H(BpیIJ}"[ qѣry Ѻ"A3x|oҁfom3^R^gY&f jCA}giթ˅&HUZaĆ#cýq-rP4yWgw FwR1gOMЎ7G~ `}ۗU˜XB\*q0v!bۨd4JˑTIr>!G4PaOM\sӀ茕E4JۭtSuc 1OW~4yUQF\o @yۼx m/OfyXP"]Q}dW d2[!wtpo6[iD̢Nu'08H4OQ .cHqsM0 ~ӇИNesRw2^6fќgJ֥"33P IQ1q0B-l5A\I,JsvrSɵ/FM*3x- è;L/?QbQ_U+<QnTytektSf}^Wss; PJiQkfnhP5U1Ne ]>D9>kָכ)`moWZ6ţhdl߿sp>i*.̓Oh0wSN獰J/Ke>\D`yi3氘Nku^5thd8ʨ-”Yz)Aµ[iL7 L~xٺpoCfܟ״qUig lJh IawH[ LC٘=A&S s'jDeْv .Y;$-/lj#D]m-]VLdzLv 4W$9'n1:ᴉGqgbPfGϕIМ]p2r*LDjя#1XͯLObhtOA/|K;8;dhrdl^y%Bõ:קF㇑N]ߎGc y䑔# .˯ Vk%,&ylxrڸ:>\~EZ+j\|s1ćo)T=ߟ]k޷+]gSz,ŏOÓ"0.) ?, $ùkrd2 '|IvӲ S_`"Y@ HG)&"KqZyz.Rm(bf4lJ`2A4Cɉ{C Awa| lmgmJp#*: ZΤls+"2>݅PL3 rBꭖmO#V6?A'@_Bi8Y4wj~cS3>\nY?il\5t]tMcW?p;N!#U9")Am6IU-xGA ex=1ac^!i:au8FkrJ/{{ "x%к+=Q^seDo& ^MuMD Zb`57\lP>`Qô+[tsiC~nQ];k"_k(&2m:qUsĆ@yr y)ZM`oRv$45.9GvNc9CPwg.5KOUR9'd7P!0_NQ&X6?K ӧGfu gin1p 9bwV0e\86~0EiSلDTkL)H` ǘǨA^yApY(p xD{R,MQVwKfǡq&pGP@^Ao TN(;.j9(`yVwy}H<8 $O|{"N$z'`q9y8XKT2^<'((HZӖݣpF[Ԅ`Х81`_s$?%Fѯ̉}J ozKOFt7@DGdhVOǤ z􁅉ť=+aS@ݏaK ҭf/1^@gf,zEPSjN4 g KI#`lB`L'>hqIRZ|zj.$ca]SiL۶Ys^xwOAB&Xмn f<N_Ae귦dΕu-c47!3sAB~;"x WqibzL( &Դx5ƑW\"V^I]Ķ 5i@HfZ4٢2eؤ%KYv]\#FDl@͓D ΀G`.N)D-@9ZŪ`u@N) έ2K5opsVgS.ptnELq\oteNA 1!`WR=8՚P8_ea(-ޣ, (JaQM#lKPfr f8c%/`A5!єOui[3&7Fzh8oiۤzFY y۔c$e|ߋN_*1 7\qg t]%{R-@oQŋVS<>z7(-)$a:Iv<sJКIZ}WRR4QʑbvtCb+?=b-jz'SJu(>:wKWl]+@&[{й\)}ؙ'!f䄴bJsۤJ2Aƹ%H8B30l|\]3HTaZnz[8<~Zh!fQbCh疿J4S)b<ӐAr-,[h } $k`ʑ.2)J؜F90,?Eϐo *dK%ٓ1fi(?~ [A/"yYm < /xu$VۍL{zY |grxA|k2o+ 8K@evM~s lE5Co\n;Uʈm8*\ PL'@񬇔Q\t-%#5_b=ゖ?0}ƯYMh>Oeyr}?)}է0WP̎W$j "CV3_ xcw#CvKm!αF5#}hZ^wּ ɬ:v{e/o:֛w!IHdP*yt,_Akn;R r ymªE粨~y~71K#w/Ԃ47LoBEhbl$l('C#Ӏ,E@ɮle5@ Lx/V 凴Y#@`f6 Ć91 c}L(0=i^[ᣆֲ?kY‡v>ص:|e`u9bG~3PWb"gO T$Pv)vw~5v֍{g]Ed 7ԛ灋X5! Y. F\8q{ w N|fohe'ygWХËXbEсՈs%]Nut5H{]"o I+0=.MT9gD u*!z.뇞C ݍƇ(k+$Rtf-$kGSO/)' 9\9K`RSQ!c}Ѵ@yƸbIWDTn*]JOfx^{om C6 35]žX \wLwΨn)=e?,ji)Dh>am'|2Îg,}-Xb58,+*(ּպs{N~q!kY; EF*ˊxt/efi-U2_"o$j(>&;%<yN5}qK{pCo`a8Ad+Ա g,3;/o7)kA6WLZ Z]F*XZdN2u|׭l&cdEwq6ۜߨ s*Zw&X4G?owcak `䏌COõ)# Q$黨ÙW'\b)$ZV(E֨[5 kd%}SV'*d\ϋSovnXyP-F1L+p4& χDf5N* 3J+V3BSnO/Q>߀&Mb4ia! wq%DW6&3KeEky7yǒraQԁyTzdWpjD~e@ Jgx^M0vW_QAhw.ι$PLB2Vuotm!S rQ'SaKR@a0y i5{mg&em6,{`!oZq=izmIRßVMTҮ.t.*aWB$t T9d5[.JsM $+[(Lk1)Fܛ$+(;"RAf08:Gpb) 2B=Me {MoT˚'uRZ `[$ն(MC@`8?Z+Dqw(SSxD={y& I̋=^<8RKuV;@Nʥh_e+rsrةT,H+\T? ,֍kuCŇ6;^vd⼠54c*JXCxc>BAU4QYy5N/.Vy/5 MY&3hWޘ=B=ٺL}9xvmd$w>g}?Ӑ; \`Sod Z@b ,u.x^9xm1n <;[%lV;hm4drciʌl BeQ/{;i87~󧙠%qHHU0+QNI1^4 |Gq^{v͐0XdgiC: !zM9HVF*>Pܺ4аv! ^_j0uup=}|&)r8sP%h[tR{e΃v#M|bq"?.= M8N`>鰝}G׀]]Ғ0 [Z@{j?Yn+1JoyGFv=p/z!@Die %2*VWB.^F~?%ݷ5ᓝBf_h0 ע@f߳f,,t!#T1.gV[wځT FȺ0ϣݧZKa.FK_z W.zS٪Qd,;f""&hZtf uaS?H0߶[ [Iرkۊ'TJO zԬZ/6D퍸"ȠNU>:9ZU0/6H3 mTV,M5c`$u>M=`lohxâ:]9Jou3;'] hTakBZoPN%k-ïu*˵geQ"eo5}3KT~/graUUacSr`)EY=(MR2tr_P]yEHEEo>HC=i<0OITgo57.JmJ̚`5"Ro50ƮcoHgk r}Mx闒2~$)H1o\@B '*>r)Ce2o"MĨ[~_ReYO@-62t{Q\Ba}_m||=V*>Lg\\r7)wO,~@%?jH:oƴcXɣjow7n Q Ҋ< Cw;|ROoKxvlxk,(x5ScKk)R˔'}CZR BN5 "\+d+9CTv704U0P?A fc^$-|u|Ox#һћl=DdIuTJ+wfv9;"hy{7tmt%0_gٲ[껓wޏkt$e`$*"os,c#LcOz/fL <w^pB,Y[, 8yuef X\*'a @>#/< tBLEHTՁA-]34#Xjɾ򵗦`\i(yl$]̅$}%Gn)?o*ml['HfYD3X~FSK&FG#9@w7pK;fT32A-Eq%4~n+KteLa7p&Mީљ% אSb$Jű]HؑOzbޖP Vs<I}!E-JuMg茓0MGmUmG]LJ5/}3jg.1[)қhdxLD:Vn>@P3_etCvݣK-k.aЈ,GiOpM1 wTڧ,7Fd{!4Ƶ84QjzܕlgҔ)$U]xBKJ0--p}GƄD*N#0^OUӥ9ʆh1esk),Lr|cnVl ʀ+YY jw;w9ImPnx GY4 ܐ *(;O]f`|*(BBZXUdW L5{e)]2ɟҕ a.Tuu8s)FpA4RY:XlsZ G< &hْADOl.}P-&$I |)ljG, ȓ(Ĝ'_6FMVy7vM?6i:@Rgh*ڃ*Yu6?c d#".cʷG,rPN.mdDb~hZZ*oprҹ>Wr'brj] RCDr}qD+7ϖω]b&pYH^~Za>׿C ^Y'>% J'. E] ̄ _3Em\pڏI(6Q+!Ѹ!t 2Pv2]?ޤ۸~K&agy_xf Ӭ}oPqܹsf7 &{v[$;פ:6Uls Ss a#u0 uhV>Zi*#I`PNC$tUV1̜-HǷQIT/]%߻先!DeO Ax|?Z_ YFOmhs`2S2?x` uGo(cQulg]_9lo6J((fd9]9`\ $3gr) bETv{ҾA OO% st2H`uW+l>JfJq ;uUc5RsZ ;IأdSIdGZ)qOҮn3 EشU8=߻d432?{a7 #]A+A*o r9ᡤoWN: #hcK/*w96JQcKDp !fWz6t81BҲWS*(k&g~b̈́oVkĊ Ť I$!%OSUdd^\=ϵ N$N51x#lÑ]38ʴ0jZ0vg׏B@ؐ{mr"Ɇ5bW]_c˕QY{l5Qyy)s+:=ѣ`Hve (k3P:!o@l|\?.kpR~kE^řo#0Ȕz\boOEH*4 egD݇Q#xzU2Ӽ8g`D/"*1WpH|VdKI+90<}5`&FU?:$gJq ,>Tskfx 1wx2z7PkH7p8)cF/NOKBr u _gL)56BVp^9%z{;aɊ`Ό_O*d_S J1$y{Ze^JH!#=ê+Yɗ]hGu9TaCPD:6IYCh)wp0r&^{n9hT[". LA՞+P$]2{)(w['C̈a_ަ%Yీh\AVg/7Mj)LIӏWy>f]`)bM*u1F~0hUK&:mݢٟ\;\9잵*%qw.[>ݩE |_I9qpQ1ZCvE!1NŠ惠Ҽ3ZSw8 lM0#{Jq)opL=SV2pEmr`DI9gA#Swoƅ mPLb5@ׇ~0"y]D+  ߵ \E$_6ʸptiGW/HJP!hz*wG2>oː٤^e{ %fda%$}哈t 9a7][\ɾ" M:ΒKnPEPg@pj0C=$XGv' O|GJa&C.B\ .|pI ڄ,ѴC9Z;!ڷMnf5Wu1e]/+ljɫu4y $)?gsNey*N1c(s"UÒG~fln=(a:8)"F,;M8Q zG8_OeCk:mђm˙52Ӵp+ ?x=wJ\@W nnxxS 0GDrg} @h<#|waFBr1"Ok [ۓ+[* 8!؍~|,O2&Ў2rIaIs9gMSVJ SX4N9U#a f[ƴ}b`(z2aD؏b]]@NP鞐Q9X^8ف%o>4I a6;"6$~< *i_W ⢙(-̨J7x'RqRZUplAI>|sA^5-LWp*}rbx,"i@_.DYXJ .VU8IY*zѨ{4u4cT.bL`AT" fhfqn5-ָ0 kѕkr,r%k TL-C;B1I\[𣬄.7ni[M|v07OV3qIFZ93#Pxu5y)߷^w7TEDWJ%P <{7!('\HOoU'ۺô%n缃 e>/?܌m~IqeaWG!q^Ťg`2NcC@ ~ȆyCWI=r[x$w?ڼr8f~ {77=*CPm^>ŋ_`5UUr RבQ)Qj>-.[= : >)6)t )2#+Bz,A\D (0Ƥ͐뿱r#{܍aOvZv: "#|k% ^e樇BHPtdggv5 \~8v9.#XdȚQz1"Os%5^Ja-4&/L\-(Ѽ,77 2D53߉ʞeE7red]낆Sh03+uɌぉMrPIQ ػzY20.Eb7q䦲:D.gl2'X|/I'@<̀ #/I6*vE{4 :*Rv|WpJSFAN!]`@y."@#QEӒYGE;OjaY^i?)ł)c%B-Lp^ eC),?j ]9tgif!)*; ` V„g=hNV'#Hۿ;rRFPF b`"?4m^G&n)!C!b3jovL]4z~7Qٜy]= }kF'8sa;R(x9%ۍ#q'y3L}ʱO(MXljD6'E6w|vHl Q$E!SGf}IqBHNY-.`ڏ^Hk0lF)pR5e2w5%PTx4#>DZff\Dkdt-9}Qmte9ՙghNG'IN@ {>FDגr(3aߺM3jona@𤒥:1Ϧ|:Y.Zfb& WnߘJ;FA9@M_zAc  !N(T4Pwn|ҕlxnS}w|F0qPp1ԗɮ~[Ob$F " {Sw"EWO]ezU6+}uCI#<$J qc&1,mR}T%[SqĔy|l2$ V~)ƶ+a<Y`y@X9X r.RuL4AOs $=3 .~YRӂHsO.49.L/~Ds'XՋ̀k!0T]^Pl7oXV$h_#<7>رAO!H8w4q20ǃa؅d҂c\|{z||]'um!a*' ;jE qlR?v` ~U ~lFT#%V4 m=FĆTth\ yLjHěx$EB&q$h.;JF˸ ~8yFJY輢` o|TN''?_O`0?'Ū>=TYe 5nYl p/Rhex jjsFNAn+ˏc7 2.8ۈ|DbYʄGR5O5毹ty㞭B8^@7SaȏiczN^&NDovPq>'|LuzywmڨX|>`X-j:È:<8ĖlR ȩ'1[T m5ڨMq*є\',(w"P?9鹜"Ж旀8QB#? >vQ+Wvh GNxOKU'yW}1`vPg6 S/%vf}Q0.|H߇]?;TN+VF>oF`@M' sx $y2Va:Tm|2D֡!1qɹ<-@Y8lbq8POGgۤ%עnS9]PZreBb贡(jpU U?] ZtDM+n>@)849O|ww)$XŁy ږutfW͌G.?W_*2>Mƻ!@1BRrݩ%#\<NC? @*-~[(%{5ӲW'x 5[$NDPyV!KR:զ$mb媛 rL`0ܮ=!4v4`P|pCfk4:i!l[arZ3ت2 cD^7OWF, `響'64_]-iK55V atw4߀P#nG;|>}>rAh10";?y$s0Io: f3i8 rmuٷCk|&[2z{kPftalj ֕6ZD,Ny &LQ· g#>\,y=Y(42wG~tV$u8<`>`cP^-gGi"jSኋ sExDXAZ{M'ņVEv v:!`dy+)/aځ1vI|=~wr'uwU6j ¼ibv"mp'L3 dC->:1vdOhAi=g*hYWW;FQUiPrC94*X>Sb.880- Kqi\-R@*S|ԃQ(NÀDֻǹ뱉H+$xjyMJϏGXWޘDa,|pQ2!g:O@6z$T{>$A6[xT-Ay׺+@ BC6\׮In꽡~QVvGͦMf4kqÜߏQ[Sӂ}4M1r-9J .o7YհW&jJ#ֵUM,kKnm=o,9UvzȲvxXZ9D鴸H6yA 8^-3L :7XFs`XB2J[H.7pc.åP$f\@Y`9яNB}Bpw$!N[0`c3,$L.64h;5㶦˻04Kc}}<0j0N-53wrZ̥M08+hpQi^V;;'R' N.Ewc篺msoe{{:\K Wo"+]sUFT>yE\6O/x5cBԀ1Wn~}On$6ww}}HQAAhVax*.NEM\u2/f BkӬXmNUOO9rlfr񷫾.AJ$>7ԽjSBzɚ%&mIJGUNV7a ;JE~8v#;zn!h\oE5&UPL%Whgwm]@0KZ㪻F+IUyȣDK ㉊D_ؗ{6 %2EUR/lB jM`XEMx[Ƙ211k:JQOqśz@V*|0uPYi};4'RTd#l-1fxoDcs.3ɣD))~1B1f}ZPW@,qގ[MJy[_il%[8=_ci>2ŀ͆Es '5XMɵ;jhX9{Ŕp:T#u&ONcDQ4(Q8OMr&D;1CGU ͸A׭ki+q>I뀯8ɿ+aAg{~=ۛ^8222z~T|:Nغ:Ghx$.z{wh{RS}^۱ߢ@ Ev"fBX@er L5 \<<:*|Vvgz. ֞Bs"ś`]nutIӈ ͦn/ m7<?1 X3SlGI|,ETje p }"(.E}Tw Z+cQ;6_!Uy µL>'nfg{jMR7tݿB|*U\l:=2zh d8yi!xF͞BfS j7I';g&p9`54s1A:ZdmIrUm'58{5F&'=ILRwA3y?fc.!Z6TSmit m+IQo{l@/DD<; bjf ;"V? Yf7 _;ɫlIBoYn83{C8MS<5EFW1;p䮗~,ëBҜ莤rD'ץ HD-%07 qp;Cx`:Šk ;ËuZ0(&pZFCn8"86T4lX[zgy+5'EnNZ\#f F`M}mEM4pC-F lO)J :s ;fѵmlFE47@}Ӌ{Q 8P1@[TLYfl w}G!zf|{`SZw|v )eH4;f K >ɋQaѲ$+ԑ$6ؤ({c>V IQ 6y3/o ]z}Ac514;ϏYQSttovg~ؤ-l4^;\X㪃鏥n.#?bPcq (|I醼ɸ֥-~ft8x-36,\ZO7M/q`$#Nk1s-ÐIw8m*ZH~15KkU}[g%Рo- '!Ka*: UI).׊ ÜRϞfsB%PVtwEFԘJ:)R/\j]vc;4Z=B@KA%ucեޡ9˖2L4=l6P \PcY?JRxG)UbA|&E"e}ϥ{3PYI"7D#ӨGZ"8<Q7ZAΡ"i'9brܴ4E>m{"E{E$?Unܨ1 [ϣPwDIjX%1r$>Jʬ ? ~:ˆdtBlm~ >Y%3Ž q) rz=o*JcFA%uPD_'l|*'<c"@¯ eFV߂ ! %ø3d  ;*|ȥyS٢|-֯PMn^PKìWvQFw?E9ҕ=afY33Gs%v9ޖIB?hy;G4Jc 8s<1:an=7Vʱn_ l(]FGc$tDB_mff5 ujXRat9^(曠L~d;VGU7t_* +>.]w@X wkXJ"B9z˛ܐ $ 3.ݲm_"33HYm<)H䎸=-CT;75ps;cnuG9H*LAJ8?%FnoTiqjDu"ZxHnBI1BM4zs&7hjIP BRѸ۳Ec?[{_lf;ymK $f<M5WRtc6"ҥq|]14aEATp1k ]&%+.Sc%%AFnrD?|cg*ׅY`O31 {͇)nQ} >.A#Ycas4^g4:T6InJ!^j]@sd39:߼m; شȜAÒKGayTH濈JFAbb&!hstdͿD6W٫YUQ5 jMQ,8sAKm KIu%ƻ-= ڄ?sXoŜ _7 eTvR{Cfor!IT{긜-)ǎih7,=g"mx0ZZeSm$;/my6Co?00ڄ$%i5_Ca\u@ e/{otPWmSHȍUM8?T}N6mV& }rwG-rC/ %TW(쫜Y? >{cmM )h~ߧٟ_&dF\-GrM^]R8ZQB>ig[:?_GŸsĐ4ipBgȮ5i~S5gf;M]>A)/]=_ đT;%{KD0u"DX) mcd)*S0g :f:4 i׍=&֚.\DVdO~kY,Kv;NGUbl ~n3*v,#BwxV}hSCIwDY4`PkZ`ΑKzNd+5K9t6Grמ@(RL g Qo^+;Ǝ+ƂӮJ Dav0 8UĵYa]=GG{Ա72 Mtknń  ԓ1³HۻHo1MCkF r  . cb]!?"2T,.MY;e}Bp&HzA4G!?әŦP`}W}y?Y o#oֆGN 5Eϻj&k4xaP@ʍ'ƇS}?p➴qܽdH Rv V-bŊP˝^NÓKo-;Y%GXR2ʅWηgoμ {cԙ} igJ1l5>]ʗ%PR::6'-l@f6*x+b2uyr톅 ҠDl'!**Y [#SJӀ8uihiD7_ +Fs24yQ9t}U%nƮ/f!ٿ߱QH=Fַ3Ճ&%u}!WG9jm}ӲpExhX~[%$LGd o|AZ"_dgnPؐXRX]?k^ٯf ٥ ^8K=(ˣ!ohW-KO,Yvt->t`7Ljt1ׇ7Gz:k7?JK֤SoӸw]8+$*%ꖇpyԐK\ |S5qFk+|e(ZH nN(5nXsF7>n~lUQ m)׀*S!˳T.[^,R8t`s%G^:n nܬ 3p#{YqXxIeC5&] $yS _.q8xùhC3J `d଱c%$ wv Fj :ԁ J ɴ S7}t\ "Iʡ/.wkT9:$C*S8w2umgy`"@-xQ@Eɱ1=aHNG ЛᇷƐ/[YT2|PXeL1VXj?¿LpQ~ @1E0pF=P;@_D l^'ݍLw>1 OYiȿKX/]~*:hO繒$w_a&{[~0\\M{%b>ʰjum9&\(Ga9Q /b[( l\+^ { _&!pZz+rrxB>WrڷGTd>+s媊ycAJHoፄg4@ͼ>7Mm Úw.>ر鍯Y4rh#\w`i"ph먢oطF{y|ݍ4hޮv60 gCtz7Aiܓ[d3["di048's64c Ei2J;BKDjPc1ݎNBfiR3k5ϣ$5(T%Դ1eNF9-| _ف%1+4G/- JP݉!9n>֊"11q(*u}UTm b7uEi3~Jw*m|&UYDO cD ]1]ixA`b(5PᯡѮc2Wg#iY7m̺OX~j 1:3!~s WA M}vI ~~uN–dOY]_m>vUcΊtZc5M3I٩hy7AP(%FMz~ jms0Qۉ_/cocA79Mfc HWVT (^^} uGF0NRf ta_N9`85lqW@ZPeE>)MOf+l8;2%yWDC/:l\=U'7CKBΡD$fKc?"ʈSiˈ? .=M"V8T{!-+ AlGzBK&5i@YM4"Tʫԧ=/zN/!8~td,@ xz"@'Box/z~QƑ(vn&FLI!s,I=D3}M.EU)VuKc\I̊ʔn;jAݧ<Պ˝k*!.fsȟT8qƞx*Zp;/CJ4 2v$ifa?6%ik֮z.]%vEEqĜ 7!a1&[ۉt0cM@HTAz媬mTIknd@+JQ[5Iб!P۹sfI~f/W8?ZKd mk`TWRP4)L|"e. Gf\ZA|t^Se(!.U؃'4t} ׮$|E(1U.L^e<8P"Rw_ 'f$7Q8) ^)HSHЪpE{&8<@jd* Xd)Zx|5VHz :S(olػ1Lo)7gatJ~/M.?5%5jϷibDg5z/rKksr &(89ؐCCX6j V}ߔGNM~wa/"Df߫t O 宖w%"ؠ{(w ]umȣs),мF Sigy{ho>14қX7%r++ug8b2ߕv0 [UjN(Į!St%` Ӝ_iZΠvlhrn!dV=:v|)jFD)UOƏGLGW;a;'pd~f](RsFۨ51{")i* ʱ$pi/߫K ?o.QpS[a({Sty;fPnL2Sj,{Xky\QΘL԰;1gW$(k5_6N|K_y62QlnCp+L܎Pvfbqˮb4l8%z(6GGZq_C@N+mcPg%I=QNՏQdzK kyUZ[:C{A8*_6"wDjjޒ.~nӇ8-y[+ē1 44Tnp[Erۋ=ڏ ?ADUY͂IWtT Vӟ' ;;N(=t7̔..̫ 7j fV+ WOx`ӽ*M;Mh\ܳ](@cl}Ob2$RIp->F ?%#@܂0Ғɀ@R}%q M؛AĂs9y>"}drda ,bR6϶˨{gcDJݦXzրu i>OU:g&ppg#V>l@up+>bQK1UGilX,pi^m=j4gŵdqkqUED(y#͐8|: X4!!Mؓ2p2w zM<1 ]"ve/2Vå~ReFqGfe$)D:Q@+k9Ý p_ 8K%/ŤQ RLdvuQ23t0|O'[ێd,$G )TE?97TyAN"M6? n9myeRl0(GS!Mh֡ lۜ" Vm;(lDkEצ#+u5V6ui4Z%K1mG~S'D8dPC3^]o;}]чQ6\-u-W%mǦLRy51"R7T #!ub&IaTSۆim.Dy5zJE 0¯a~CYc ygT5U m)#wߙ܅V/-{NgJ!kz"\^[KhETϠd6 WB&™(mlz^Y,l"ei+d|U}I R,;<٭zP'pt@΂R\'WXk{vpI( *\+=&"D U[QY k;uxU/N흕dz*Np3Oj蘯6\"Nh Fg:->P kĈdl8 #Q8TXaS-C "2b{Y ~Y?9ZVRv8o^Rz9&{0^K4^[׋>Ie$!3tp}pw r7}Yc/jze\ұbwgѺY_\"I _l\̕pSNb x cKۢ!Yw\to7x:7X:<=a"1‚CB_k߄Ģ(`~hy2'dDxƴ J8ap W}a,څ9>p~*Q4.rDQ oA}Nz)xLmC"#L}[INe]X^xMounL-Px2ݸ:Ea0U}}$v.5BԯWlrzfA(VHlR-s jG$2oA]aYXǵ`-N]"1oW4G&4CIUXYW?Bd}(:tHNqyJSnavJ[)G(WJ7c滗F ɒ&Rn9My)pA'_(4959W)vHt%HŠQn`m|!2R|keuA0kRav;#}#wi94c1LȜX{3 qo< dxL&h@Ϗ0>]'W&<7"|ڦpW5h[m"_pX[WdEwgzr/\͑.(MC =@Ƀ%87LZ [Iy$ r0jz$p$B+#HTMo%F-JH3¶XGMJ^Jc{3AF12h*2J:J DMAiף._G_)Ŷ2 ,%-mFHxjY$jl)h;Kg,/m+pTo.b◅ԕB>WGGX>t!)雳v󢇴{V{.nt. \ k@x u{եb3lIܼM#` S28SIİj4͔wM;ȼws"gCywMS/wGz(Ρ 2 _ `F3Qc'X?m_!q8&0iG^xVk;KN3O41%DY(7U ď׾.gk̀M(%ɳSc>E?__@/ڣefӨQM;N]1[{0]xi\": {y#h U菕X?e5vh"MyFx;=W?θ&*w${-+ҹ?]b*Qg0k4p[uܦ+yKr?I<Z bX1 ~u?:'v +Sf)hq4Yf6 eWNQ40 ZG(>מ67ɳbDe³.Wٕb'K{Ðn.&19hέ+ln@%}e:(%t{`nw?ytN_"Z 4(ר1gRYݎprC93`*PcH`wK )(_qDEIZ]X@[v9K{ڑw%?OSsyK~O1U4HNc.#,KnX1̛ 0x˟[#&L Nb}ºιb1钸d6Pv3E51Qx3)h*NdV 4s45eOEf}HdqL\""8(iP+BYS-Љq}gvO&PVtrYކIJ^nўs)}:\o0FDu1nB2BҜ)NŧnQ=P0O~t?w4&q$*.MLuW#goLީ-g$-IYFub}'^eg3U9 /Fmi#KK U;5UK*x!}*SVEO[ݗ6 W_SP)`7,vN#CGE~3WTeK w=R>b$AHQBkg{Řl-%H&я:ZQqZ%2 &#Zn=Fh矓i$&fNf2 *ma% prh)jkRPotWudzpĸ{s7W7 v1s0|?'iYތOrB\hk[s6QOYm!LT#!T K+TL=Dk!-v䥏CviH/wBCkBCC1]l1 Ggn[RRR@WfuƑ]Oe}QPH~{??`1URPGO6d={hT-yfቦҚatK⿉aG-p1]0ڇ53ԕ֊!B70eN{*;Z;jM3 \`xy__~.$ʩ 4nKo!#Lc+Va%VED[HQ.~SRl^d'LzA%ߏF6@ua3_W".4=}QUf .>Lٚ+VI%>~oNu7é%qv34TdnI8XDy9$[ΝQa/zby,S³%I%v=kjȴqM:"HHlv!w< xW*NTԀ ܮ9A߲S6 < `C!?fias$4~Q {b[,WSzLE1'S k@kW_{&b;zy-Gϗ0հ{嫆I/=~ip L?1AG= A1^[ ׯ`pWzup4*v7Ć\f1jƐ7&hXG4[Pļh8G1{FGv,ҢxB`b(ʌy֡=ZeLt29jWd8NJvugd 2nٶfjE|5;ThHN[Tm:D~ "z޷(&!gcXm5q'8ehE x^ژ;8U5:%dL2i3$s_{YҾ2L8j2uV)=c_vrX8蠕,[P(-mѮXǗ͌vY?ɟ[N=;pCB莀2xE[Ƞb\|䲅`$t,e? +2: /0)v:mCw5%mqPuim?Yߝ[4bnb5il;qP5Fy3]c-6LU5DTR(õ 4w3K:P1~e+[aJrܖ4ld;"5BoY$#mXoWB'0KpCZ& @h")4( يeHe#nC# -D/_?i%gE{~Eߒ5[RiI#P`cXm*DJcXZK:t51G|9~;&_R _oKfH?Կ 1] ?N]7' WaC5R`qz hOD~H?FEtXWݮt!zz4gf-]bz\L?6+U{M$la;Ӱ{L2e$h CUnѼ VNlb(-6[qA{PoxFus߫'kwk#3W\_ӫȬBKۺgw/ imn15eӆ|zt0 )7F7cɔ_]3ߓg~m:+{7$ !feCuY-L^E ,7L9z-T>kpmDVBsYmnou&x!؟A{Aslj̑~ ؎vsNӔ/^,BZztF k{{m=Pծ7^taM1<(S5ǡVu+R{ tQ?Ux׶U!_ọ"\ھ2kͧLRy̆r3Ԩ=0Hȟo ԕԠEeٙ2Wf/ :uE1N'8(f IG0%uܼPϲx|1",%r,k,+lLJJwBSԆP ~ZIz1*x o-K*J Jo%t7@՚*Ro+gPZժeaݾG;N7 W#?\˯Rʍ?]pyN4#ċ"6,Lz Ox?~AvVZ#`|:NFJr$O̒6m(TFe&p2`tMi%(6._YLtkiKy LN+ O1^e˩ߍ}{s/s!ce?NWS|ʏ `[ԽOc"=.ri,,'Z 5rFUٞCS3)1񾃋V`zx-F!VMJx\B˃Ql,[Aw- T`$W ۀ>UѲ /7&:1qz5`~]7l]6Hj }i>ܚ%;D_oouzMj@a{- A nm@K*]LlKRKkH|%!uHM}3)Jetb/B޸bՄv=*ڮ J79! ֦acv ^T x op*Q4O< ԢR!ɨt[ʏY:E<%f2\ؖc[,i"4MH. !гܧ9N1`$! ||Sdy"\rqtZ=%u׍ؐjVnU֭J',7qțvJV,2AIX ȍ!G *YZVvuq}Q D眥,Vd'f.L9̔-IrQCotfrvZۦ1Cq ъ"a]V0j4T8Ĥp(lr-z3I}Hvs&|Z`ê! t3<ǜל=UK'DK qϱb75S枋)Cruti,TB7$dkXy~_{-GwSA |I}ۼ%[O**=Oe!l*{~͌Yζ-g7Y7NfඟN׌AkѸ4 '-1QҴ68Fde_94dXvfJ/R pbpy6[3yIX6350xR[rkXum.]Ỻؽ1S *#b\9P^sѯNq爝L TL pH8^WQ @i .!Q7o sNG+Փ`3ў ):b=vgb=EH+ʾS_̕pX+*Y(NE?g]hܣlB#T/ͦ9v:pC0' dʤ<"Z;)d Sץ2sZvteu+#MI憝py="F֠jXw3},SQͳVNYQ{N Iw2"m0#[^B?\ZkGKh2x2Aq1x';Ed8*=a% V~%|d4jH9 )ӊhB,v>%Uo,,Z.Mkqa`V6LO_hSvĿBRSOДGz :qiq!VPδ ޷ܫ#um vp:7Në,L[(G>tlpG}|;PmZնm,+pKH2L oHXV(.,aYg A\w*(Kr˛)} *oƨ'?>/^ \)0s/&p%a_ c TE::,r 1N j\<@FV5obƵyC (i]9o>$#SM͖z4)3▝Tĥ@(2_SF,ATw#ߘ?s)I@12'pWvk]x1P=XW:﨩o]ӛ˲ ˱|l%lL0^s 0RE/5et;Q C\&xAŦ3ϲٍL ;+Ioz_ø@Dn =5/#wHb 68o.#OR@* ;\eMI(KHm/ꋝtQ0~VB+6tBV7x 2_am]ݚ%t;R,@=N-ꥦvbuʱZbDA65NdĹhdӬiT*UtئsMoQ'wǮ0g]fV]"&Op7gyHC[ʝ%5& b<4w}kt_KYhǒF7VD6S N@MaV&~_*sKRӳNDŽbScZ3qCR'&KJtPAB $HScMN rOx6u&7x*qwNq ߨKX g*9 _j;jk4BK[]S$oG8rm/Bj\M[ܧV~zsBJtW@T¶[YF=~ _$?'(2&V5DJ5Yp.S!K { F)3{jb! PŨ6̧ w6a M {;XKV߇I<H wc-W ]b[N=g4/Rh+;]&z9f ^gSjE$SVܘK[]i11T-dZ?._dA.nITѝv"t JW-G &6lihEpVV-wquF054;!{埜_+}aPCO'VO{Bjcey˰dl GwZk<ɺ>Q < <zhHW^pM+Xٟ ),܍gI8$R7 [b.<;%'^[-|F%5$9!}/EGC/vCnr5Q=t.'6#yM.-<ܷTՙ\G-~AP68dٔȱJI%[`ͫyIkF5sCZF{r1jlBBDz 2rJjѩ F:a[ 9 kJDp at/)Ns?Ьt Vŀ)\Je>r: SbA;A^ܠ:ǂ_AnS;{b˺.W[>C^/~{SA\jviWZ!ԏa@j &-$t}D E$ۂ~~Y[jU8SDɡy4'X>jey|SR W[W2z.ɵ7QRbv18T="ke/o͗p>H4&]gWۈ9T:KV'8.ɒ=[쏯Sr!o%y4ma. &ݠ|coCK6 9us+c !=Ω("eN6(KgAkcPs`8~tw8%C.[3LpDѾ;JC(mHRVmsBG:^TE(eMIoUK0c$ˮ6 I`_sa\f UU[{\&X / XPvߓ7'.P]~f".L4y]+%w;J6s?y -sgJ}d@ y3A'#W> X71\R"s)U<#x \=YGG9ƶeo4c_o@O",YU`Q5!78(+̜F2L7CW3#0KwI-rːb=Gnq$<qZbơcuLblx9?RcrZGD!2ғ<()VF#;;~j pkA l2جDx "~jl3UeN=u?̀(yq ٴ0V)G |>nʔj7b[1˺!aJyGLs @"H~*F7!#^*i|PR0]).q^3 Ze cw uOclf5߅A&o{Ѧڏ$>;(DP*HJHaAd֎\_މe&!JXJ>& ҙe%cArVIlEy[ͪ )彷;J(E|61㚭ݯ*:ά8GҦ'>/3Qǻ~$/*P7y4c? -W=X4`4N`'n.N2IۀjM2ndTإ}\ LQn*"S퉋Ʌ"~0EM)3z@N"靉כY2wwR8id" ?5Emzz]%+Z3G;]nqb:4K%B]k 2z)C#>]pvۿ6MJ@ހ5"bʫm=V! jy't$U[VsƟ]]i3Ւۮ^:lWoM.l. M탫>1S}}.e=`yaD7%aB8Ƒ|%eGbSӁɠj@kd_\:mJ.K+VkY[2\8;0e/ٕD @;$*J:-8Ļ'\6Kʓ&L_x0?TqO3_a?oTd=6t,<6O'j+6i7) /Q$QKÏsT@NG"̈́TlrWN54ۺYj]'LWL?hºCڅ8q?o p|R.]f~{w.) |d'e#ti_M$ZEwBGWzy Gɹ9Ǘ[~9?gk ?s:TlXVZ;+wi#[ }fpׁ/G 2 pZD)ve*"<)3t?#L$ޠWVcdǝ e$FFJIH֥pv3:VGe03T@.֠Oi&r (yzVW'4ҁկd 542l( kh3%Eu^(VN'c\F V17M[ 1hx82 ˫ϳ&ΗmB&Q-C؍+~7'!:HL@>inHPslKL"N/ō:/ ެj%h :]*FJ;-a#a/cҝ}I k brVA!]hBB%v!̣ۭ}*omN.wcwCY&+sMQlS Tx~ۺWyZIj+w9kQJ|J!x!Iþm[xrO oZ_0~nBgI><xH/3=7bA{⋭0miz/ =%s ݛڣU֍;MRHag!ĚUiMːuB~~?#<hV_r/N|6&?Fm%Oqu% N&5^h+4*(l6yz J`5n Uk )x{?lO> a%V`ZZGWnWt,HXc$@A;  O4;tKc'sfb^.뼈O#8 Ehhv1c!(kL:]qIq<$=")ٵRUsB}cཞehLUؽ{u5MniQb.wF1qo|%^@Qc3X/88bA-]Ui3yW2iS诲@& @z~@WeD|Dz}w}t9u_K|p`S^aCۭ@v+Y .WW `xodVpUc3aóSBEQ5ٯkY.i&#}bY+ Նea_Lc1=Sr;ڌ>E7yrr׻12j <ڣ ZbdqZ|V#p9 h$b aǏM>k%Ba7#v6hI$USzN)~%SfܨM,*sguRиK^c^5R\cWer]pqˉģŮ&5~kUƧ^c"Z=C]])paσQwыZO\Ur~% ҷA!yk<*:XU 9랹1|0oBWuW夼&Y/kvniA9)H]v F{O>:s*kݠ(՜֌@r/ '^4, 2cDs;s Rv=.cEr(pMmZp%yrįMO@A(u5ՍB :SL ՛>m+Fْ"cǔt5uz赵~״ e(ÓLE0J0:E#Z>2RD2Bw𫗖?f}5!lbIRrg{~$7FΔ$= DZ%,ÕU5l;5񉯵w)ðKCcUٛVɡ"av(Vl =r}rA][\^X/t\~oB:~'i.pK3ش2ސ+gӦ 2YuF4<0F6T]F\hD܀`! J(l.x5/-Zz-jhCwe \Bh]~%4U\Javj+(tXY5'cU ^=fiVHcMYpv a8;R$C//:d휘i|?a2{xP/v zUKL I\g`4Xb.nIELZBbdz*0Y^>(,n!U6m4̫-^ARC6DvVK1'@#gJ}h!>W mf`9iF((-1$;Aᮆ{SwD;=uU[[F)Ǯa d!R} eQu]F:-/Gcy?`a<ξ-s+4M`p!PJ7?A ()?%rkQi. *!y#P_b{2iUF->DHJ@ʍl'Xd&s /sp"6߽7Dk{ddE.:u%{H6;RS>r3:FJ )c7 D%}K5J@LG"-ϨI,c.;xąѶ=ޗqgTJ}lqґ IxLZۚsE|0u97XR[n0.TZ e@,SvP;ol+C{߽멏-ϭ9YsF1ޡ 7)k+i$ r8pmPgHz h8 ׍,~B) 1 =\4HKrNjh= J=m̟^5GA*z|s,()8 -ڻJF$-GJ.DdO'i.M@H2vFDX&D ^2I(Abi 7E̦u,f';!: 1Jz#eE C4if:^>>j5/)8alM1D/pS|X/JaMFdu܀dSB̋4i7Aϼ嬞K fƽq0VF>ea폐y!:AsO¸_q8RU;|^[hHCQQ^jx\eX<1PY"$2%/y_/}ۉ^ yXq s]弢 I'kQ%fFa©o(E:hg yobTzyv (&sbc8,\آ Yc>` hp-bRW66EȾSrE ӕ}d`=Jyg-=_&>lfICˇK/=XZRn:i,u ʾUjxm_{_s$y[ Sz99=)n?JA[lyH@x'BA uvVlQgWXBP\xI, m1E"" vذ:p9~^RYxM " "2O; 2مg>=-y)U󫺻 JXx zƻeG1 Z@3LDw$p_Ŋ vF֏Ͻ fiH Y1#2"*߿:Ĕ -,R?Ŵ&Ȋ-V֭[c4WڏaC3ײ1< [1?0c#\9O}p/=1x Hyr>/G$1 ;nTSdk4[>1YM,E;fa1|mR r)ޫOJcRޠлƤ >@omVV}XDzf,] eK ݆ETOL Cf'2 @f}uQqc3 3^%ZuHouOlޱuTz*@3_%q8vʟNtOue(& K/KV)=9ttopŮn#{Я;`޵/}ͫ=\!IU?Ҋ8 ruУH.Kn"-,QZ.>dUFfp&R-f.yIs,lI sGj'#38VuʧҰBpo ixϩik(jr^k28aZ ]eX<4gC*Z ;$h))}TN\w [+w֪d;эedֶ-d.Ix 8 C8Npܔk#n@Z6:henΕċz8(*C*_1O\KO~͹M3mjxP&D莔l9fK:Ҙ&_Z&E*#5e-C.T unJ.lbAq xG4m@JЀLd*x ڍ'|nl.]Xɑ/tIԐu)YON|MYmmqqdLRxp".7s/dG(+^H>!P뿱\$sS,Fωtń?7LS"z{ߖHB|j|ծP&G (|Eb6ɏK=a` i]1ڨp}k \j ȵtA'R'l6# j]ovJ]fĵ1>eFc{Rbp9~2u[5:Yqe҅=Xhs8Lg$L{B?1 a!j8^2$|r1vxQ< A\˾_5g]a.@W-p0iK2c"ֵ Le|8܍m;cڢ!ƶ[qbXJ}`SK/x~ޱ1)PԸ|c\EL>?p ,Unjqa8ފ}/~beѿQ nGGه.m q/[oF9T}G@݄E(3`6/%x y װUR C jk͎͝p֫b1}$5 X #8(@ݵ$- dS: /eKimڤdɣGR8I7! +p̢kB>T#ujssjrCT?o#\ҲYyUC?ƍwqb̈́W1,$࢏%+2d|JBbj1|*ػᎹ'ѝkhf8Bn}r&O4qve)ySb۝?$q0u:#` WW`Ahש,Ҍq͊5`nc.+M{?dooczqn ioSow\IE=}?"EDe>Lk"VP .J)<1&BHX(*&QB|.[eeBd{Y_ڿ*:t amJy*y#sl*1{nT8(qo.B{H6l/4c"Wb ==#є0jlDU ~XU|>gtff0P]ǂvs-izקJiNVߚ{]ۭse'I:yV4E.LX-(;Ñ9L[*f{W?4egUh>bxN ^4L A?6 vweeJ!G m0ƨ2K/d ^zX*!ڍnm8{c(9SD!HtЍsD'E0ODXf3kNċGƹ \_|JQDQEKQpw*і4O^[pO&u" ϒd_EWyx dS-i=fҊGLFA`u]qw벢d̷1?+פ33.ғ%9 )v'uĎfsoް9MvZ/~Dy#SLS舺Rץm(%nl (M=$9qkEYyQPô{6iiAz^rLɢ' #-ՙ05/|$iϲ^h֑,Ѥc2q1?v}ᶙ #F|qh+U_`qr /q?)Vi[ 9b%tS+]V <XZVx&/G@X}mP*t'p|v~~Up,VR4P%0R9Ey2 oA*t!k){$0o-épErfO!p4OEPbwRL5_T Qe:1+-U]<Snu5wvqcȟx,Ԓ- ݪ)Ρ){"+eZp4s66Kz,bA 9! ijG]<*6߭ЫT^kivǔ2h+Z jX-.m7,3ԗo 6P|L1̳S6Sۦ/CR3{:OS/BmڈKѳ"H:gknIhNx񍁚{cy6GDx ulKɡ2')dZa!]833 -#LyJ㇌8}^_3.?a+D(W_w=7H~do:TCE6;~W Æv/L׼yX1/T3A,yC:v8/3hr^%aԢzO4ٲVވbP@υn.(=wu.4hJYlTD2m6'Ғ9e|W=+eRbxvgEcIŬ6 P*Ox0P7^V1v3̖tOYڼj08׳E.` ;ΑnEH4g? 0g4͋$1fu%(XwW<#'3fq-8lj$* {8bgqH8cn$ӎiF6گZPͿ``#D:b]߼\RJpΧĩ9^7{j̦)NӶ~i\$P8jUo:$jCO eJKJǔL0f[ so Ah]$/H礌=O9;$LΣdxCJSog9,W,w-#jM\a-f߼OR8ǘ{MТIeWΣst;҃br\w3R8RSUVT23ِv(x(L?`ޕzi|6^.6"Bby&\7eGbKOcS{̨hiua@Y O_J\&P9e{C\m lv3gT@"fr7R zR Xʍc#'|oPw[#b/;aAu M~|c׷GId.hpT}bfiΟ9؎wP5 GM[ᦺJo+*дZ4dZ}qlT~bQRjn=G\qtǩH*i'R3H o{>hmV6i,I?3ўk;H0({3w!}pPvĎuQX VG]r]6rcapNha`)Z@"YjK?ںٸ֠2=I9Ux \dr)JT)fLm5>R낐V8:0;v˜i zCǓS)eU1Kj'2+#Yjqـ DKР B. 8mQSq^#fÿ0[|3aWmL&W:i#6s/BYLPe;2]F̅g> 8{-Ѻ5%B`o`fsؓUWB= fjhE-Qۤ@]ShcWBϒx/3s1U[ka!^|WJ'.QS%n"m @i\!̷!c5kDoj>B Ρ]*61ki^%)@JRLw.$G. )KwŽ3I7?W_$&쑌 5^ Ru') DIeboߣ'y3o3FExb*ky'%6@OKpTk߸V\b+!ZX#pkuzK+?k(3N?m_؋, Xx C#ᐐ /smt1fK NJ Zڍן)SG1G`z L>|!%`T9Xh6xK e@|Q|֌") W$B&'=ٴطtԭr!LXP'Y%(|t(J,Tp Kx۷+h`=*>j $ T!jZ\D EY h-GiAq0.Mn܏>Nq|A˞[o3-lcؿRw54M35Ut$ސ}r; Rl s/vv.+{"hlA4`pb ;2bq[!BN&#:4( 3HoTJcHWZqi`?<Dt,ԍ榍=aW`Y/tAԦ\Z3u8!\:9 TTp|xRD\)%}彂v:=Zhb~p${GsĦ -Ld,?ZLku0l3=q:-B!ױ"aMۦHB qn\CI*k*}^_:;4@4Wez J:q*: \{xU5,>Ԍ\5;>OY;mS0QV5"jj#SsCZ,y[ ɫԪE}kpZ:}@{i*bЙm}\[;XA7 Q~'R 5,|$wN!;DxFi&>IT[}*QJ1,)w&-+75jחĔ⚹hG咼/w>2 }e%Lڙ)/TX/OgF:aCe-R{ ٗtO;Dž_9V݀݀ >r@BvcN6@vG䈁H+誝f3> Z>N SE\4@ CXdTR/䆭uʨ(kK#].qI~s>l}Yn֪ڨF+SmjN@YOzeskJA;_7b a gkw*쑇,w=KX$ϹOt+3&HpMȏgse5',Xj)Ճ]YEM۸sU&а$<#[CQq|1iW~!c[D~u{ [*uzr(^].w_|+LpK9p?4^p rt=۳*뜘u*d6dTA_ӛS9޷2?@5˝泸5co>1VTy4yY p)#~.r; j#q>r\uL0DToXL |2PB66&f.I5@V02P*@CfݽYoX<igQ0/1lh1U$3Nm(fU=B' Ǜe5VTH2\Ja/H?76Rѩo6gus}Q h/̭O/ֱxM _Zp9xD_LȖ\p㏦[#q||A[|K[zA+1vzrt,\ Q18g]`p0ժ./ږdfSsx-2ߑp&E 3 f8V$wkp0լ3VzEX+ ǪNmKÐwUo6QjBkߖN:%i.pO3gV|{~[&1s7Dһ!fZCA8^yFro&p4z[B_+΋G;'&_Tb6giLQ ~[״oشCrWs;/L`M҆ζ'Qߣe,!PbS­HYA)exu>Yy'~i}ȨʄBU nC+K8)}2/3z 6)m|_ x,mN~C$>1OR42u5&C] 3y$hN5T=6h(mрBfEđ ,*@Uabs?e; ]ybSYRsMx&E1nWya\h^6fLjH¾?ya[hҸHw̿.%0ڝq c <)jH)l7,'Bh-4RVĜ j{)bptޮ)|W]NL<^4\m.ڐEQx+kQCt OYK4X»?ɀiEY ?w` WZa{O$ߖ&Ec'Kp@?hWGnBnJFGt{ҵ x'@VlXHcYbՠx";T rtJEr ,' ld8CoW'?@J,)_}r^|3wlQ kzcX>Þ-D9HS۬ڂLU, i^hsȈH7TVԺ!Mؿ:R _lΫI&˨|>G1͐FZ*k;aNQb }+;_Z.gLfhQJ p%[ 2F%ѾX߭ 8cth+cTw/K&w=;^3^ǛItt`u(_a>jԺbZ ^y!(U1CNgt]*iڀ <*YÌK by-ej֠{.RDEeEm1Ss݂/Ck0S&¨M fX'9}`G{eiPHUn3a^K>+-`|{NQZ*}<@_rh ;C͆GbO|ԒR;nf9EnLN06(Em?b+w 6dPc uD]kȒ&7}Mվ9QI풪b=GcHq^`!δ@\2ju}Y|m,SG BTЁ^Gj[9E1 ~ 2:}B8M|@hH$i`ȹBw[^2ڵpwl@\A((OCa.B}IN:iq/j:K4qOq-o3ypv^ƐLJO7r|55i%YXZ K< ˭]6.#? zN#>w#ԁ-o 4AEQfj"aë;de.Hqhwc`8&gyyovI~ ! <zD((j௏6خdp![d#:QK6Kuzx!K u&T $ 4_eڳ"7ݦ9]0,ŀx< p DW<˲c;I&8Tt\ MSaV+c0p90D?r=4ҡi:lW;AA`U:g ΀gV.@ FW4tnQ *v]h͗ )RJG/FDi ]OL|Ign,d\Xq:mw11+ѭOb?X>1=>fnBư}ʑc λ\ V_qZD&|G̐Ś`ȿz;8;Dh5N^/CRmՠFq:Rj*l6q-WKz!׃}x֥RV͎Ơb/]4]7S(u/~72?Qk7uX^ɩL44EvqnB6lA!߰Cc7fwf6]\r#˵&ˇ"|h=w@|W8b ex6UHu>j|k:3i&7_U^E5U<^4of/c"ª.)8z.dN8h#HDERm_o˂Mfס.&5n6@$Adk" DbW苭fN H9`[+6v+J[@>rg$+Ʀ~?7elGRA A^`mT-Pn OG6мdszjaR4O-N"ƒx/NТ|y*$}}ݿ i+T_FAo+i71F@Y<(5@d 4(H !{… bAV&a8hDù003[vu-O̖J^Bx$OԪH3+&S.Db̆zaD E:0d % $im-ݞQ= < Մ~+K8n7hjUd)Y8pHk+%h˧-?3H~fAՁɒ(Uy0PM>pFi{m]X[ ABb[%ǜ*\sm FE {-TZOҩrH)gzcHBSma G5Z [ޅJz6cuYLZ]98aEvKH3B`E/=P}]N6SꓬN AJ1Β 'OW XCig jM3[Jc;_E u径 3pMh4p'L[N\QPIwY4oUU<& %A0@U=0hg|7Yn%?Kܴ Cd]E\+t4ʏ8 Pd .n[e il QkF=۫a< Qv/!vbH|'X:B#Yד1(^W){A<Sϴ>VCP2ޮ.1{;(86&_bʏlĞZ콿Ql ܵG ¥5fOQtM!zUH@52 ˛N@F$)gJE=3SjUs-vTQ~ `Њ#P tPGtZ\۟EЋz4}BQ)9ڢ7>sײnsDԜa7^,u6aS ƱcC۔GQnXD%-XPrtyTFvkv/fF@[f<}ll"5>!z\,*Y\5ƖYQ '8"yxLf[]A֡d8wV)N;.r]Dky ͑gK  K9 >/C:܋ Zkn!0x!_2'WP_."(&/FͷZGDӦKqⅤ+=й(#dg7e D!P ]7 ۉEB.!}d!FɤOaݾzL&uĕy\0-wsYLH)}sɜ >O:Q/`"@ BJ|;kbj?`8'醿y#L9Rht+HX n/+3E3 8Hp@ߟq݁9 &ՠ9? ߜ S텻Q&u籒aN(;bV(*3ɍVk֝j 1_=ɯ3aE#ӥ8j?g;i/mn]uK8o*Tk~)?C0D&f*t&gsg/L_65wD#˗KM&J1U2Fh:TV$inyF2@S"xSC}oRLDp$֗mZ 7||Q^@uҖ[/s< OVMKԹAca[A+E*}+dw7r`tC9̴6֙k W9uG[Jlϱk"4̕$wnsʟME7GsYV2d~1=E9Z7brQdDy=w>VJLh{ؖ3&T2>d C<&c>t-bΓ92[!ݧTW#rظzx#'tO )^o0c,-b3=sp"2̰^GT;WSq. lF=OL['$=ЫYi7`E!c> ́(ktZq"|*OrMZe&Ćpը&CbIԒ&(K'rH M˼P!pLiJe =;ЁJ %L^Z~* B>rkY|`X, 1pkI7NFb$Yb;u7|Kw30n=33&UEF ñIJ×yъ !*`1E\iFTWhgAZ3? K(OYģ,ߧs> 0s4ZkX䮯,*#`xjL$-$fs:$[`b̆W-xZSϰ 6b̆w6BWO-?*{(|ӥP?KR3ޝ;=oA] Ha|(8VXu35 ; i[%k-aZ1bMmWH:]DžXH @ G)e -vZB?N#i(adǶuh_?%^8*=uxƮ$%9WaYpcSPL}u"cL[F""/bMT,)̈eԓ|iC@ڒU*p,K믅;SP+B( ʦfsy=8Xuu˜tC/+ζc\C 6y(R!AZZd'/`08qT4=mv*.51*=L4`~+gɓ*ֲ4a}q$G.$uPP;XFBAOв` LZ%f5ԥSN |ՙNy.g.RSi]јg3ZXA}FaH9=L.n#e!2d֠IQ!W2Q.HL1\8yު,@5˟rC`ƴ~ŧ ƹw1.3%,*;;?;"bo3vϻhw_60K #ZIQrFP[]LCܷYPeMFA0Jkײ1Uۼ,>`(<[ރO^u8X!#+ucQH?Se ([3Tͽ_Fd4ɟ",^l ;C $A0`]/q\.8pd+ wQgrc6"k̻n~-!T-bC_«*1]3Y)/*3hV5COh$ލwbhVyiy{̠pnVc*]o|f69NIlk] /DS]ba>+5i0RE+qpW/hdk1f_E[XL@m3ћHz;-OꉀTXeXc.I|+56#KItu[-7mھ!Aœyl/Sd_ї{׮$mސ< w?}?~k\2q;~sAPd/iRR.D= &w$+:}Ԙ,F=I_ $Um E[&Mq6ׄ$I&Ӏ:Ak 1A.s`e{$XlIx<хl2'==L"qMhׂ:FZ~:?D޶VӺ>hը*.&G\ū#CQh2D{"9nP鼲W"y(l"${xmK,Kn _bl/4똾A*ldkas?4c>Ce@9/y/l6ϼ>MoټVGjG,P [^X@XJn?dH'R@GV Ew6ztaȗڢMqg"UXaL;7˜ {$tE?6L+0fɷompo򐿜$MOld?e)ByU<8rY 4LMޔp{P\ۈ<@p5A=L@~eM[yJ:y"@M Y]R}~" '@fӍS(;$sQ8-Hؘ4o˒@>1|x9)''U^J07D!V Y2Uk wȋJҟR^v" ܈rey7䣋q6@^!WӿK"KFצ9)"WrMoVφNތ&ǾVQ7x $E1" CSSA_PCۢP}Jàc.0Jgy=3R4=y}RvdlV`T$]cἎHHVrnhgn _)oOl(.Z, ~ |nah^҈0w4?Xc #ƥSQd_Q%d%2M/\_}$ -JG sW3Uf]@|颞+IZ45-ۨŰ=u:n bq-Bk3C&@ol̔Y;!!ck/e;gi$Qb!$K4es"M BN#PsDf.DaGa.:9Gj-R  CeMݑ PK( 9)US٫lPm8MRvڨaH2"a^Gry:D4{(l7{2dۍqwl6Oc^%hOYvs[j&o;|quka(45FԏW\~/>M'"лN<2>mhFRݦ}iM~ ߛ]p5P@0=6t%+K"SS,>fZҪO s k,xy?uzѭ`8@a@G&(e, 3x;̀D%HEnLp4bu*M8t 68zw(`@G>LvWe&}GCI>(_2#8[vaB&E0t4;IɕTɗ z N/֫H\^oO׬4J ē].SV d97 er80o6Q֌&3֩f1sӴLG,ajU էS^(Vu&S7K <9dUOa#73tVhq"n`Y*Ma`UO7I er }/z/c pYg+@szogeĠwc$nt#@ibMvya]*sv+Ƿ+pN SQ\`OeQM /D[ىp%oHs=>'Q$SoSnEs/(rH^6e& `ȡB: y 27ޏ0,8_Vfykj"7!5žm$cwkz+-(rF.SO+D WSBWk[[K3ȭ0AupcJ[u'ur0*bs3wϊKkWEX8XsP 4QIRGjY)S]L}yoݢF{aI/oWTR@X|ƒv%Q\yn8+=JO^ա0zG m vmdHےm=n@~ H^c1r!8Iʪub"jg7't[yۣ-\xKwɯ"!CX&0곋3=wѧJ -ņhe1RSUMl(s ǯI.BSyok1lb"g \nQ3ċ{pX3Nޥ>l U`]K>{и.qoGy<6[ïՖ1tHGTPlyT5c%-J_53)o6aۜۅKErXS/cJ1t2ćykr7S1£ʮLo ō#E0 Lk~*YSbmg^+ŕ;`1HH#tV!bҘPdv>F|3zתx! ufg»Ksp!|Cs^S+,@a \~Vm,}+F(= @tf'+G#)`%Bs k~~_+gq,R(5z|m$ȈfE?Q(i5\ٶZ!4 euu#?(6er+r' O /+ {$oz y? +Օ.=*Ŋvk-L{-e ́#3_6tn^NўWXmU#OX]] p'bw5oOhpq3 31wsg;gzfcG$), Y]Jpun4_/[hȶ'7о5e*$C0Mu 3tٖ$ :ɏyd ז(YPv˷2̫;DApHuZLy6KTz8OZU3n-D_ K4.H#bX^AqWSmPH$6[0)2R0Ag֚CK\U!xre ͵ |g^d d!#poF5=7& ?',-X1nGD`7кD[8Em ?Ho>/!!J?cW銘EQW2?: b>ϻGt>yh^L^"6YqEqa06.6F;&!z/^ok2ŃXEk dz|ab<cxM5>ʟg£A {c쉓zf_3WI$\]@M}M,-;~KGyXhyۃ>n+m7(%gi.ɑD,m I[Ѷwg5bZ[Zgu!ɱAL7|P[l%!;p>,xH- 9+&%/- oCv35N *$=4 "̺v^/FGfnN m}@? u󱂽k0ĊK/O+哂vCM'xI;RHOKg )(zעO]c;e*]eKܣ6D=#vЋtE~>;5+*ajcfvhњR132ljgevs lWGCL6s0S 7xe|=!~%iB';q!^J:A$B`Qx^Q5x1]1s*gLBundw \T،(~lluMf^JIqsk& [x vͣX(f[OFp` tu09$u>Wm~~bFӤ dM2$dr${#$wWmooߵv 7tS:R2d0XG5XTs.[} p z_O"Sk: UM0ە6hc0;` gǍ.! N-rcs7[1ge8_wJ[9`;aMwء"fIj+h:$r(%M+c8Kr,) Y)Uw ~tMtdd8cvtvq~Bly7̣8@IV Pq]w0gʱZ*>"K=O3CPK$`osIźCgEL >R:} `p9Ihv 2m{@ϔ?o*bۍ#FA(*:]]ex t=E#}!xZ~ F@{3 SvBB>^t&>Yy&ʅeX* N8g^=>uHu:Z%g;oۿ$c *fOaSW0PQh7HA+Y qJf3]jJJYPb?zqr "ozwfg,y* s{vrP)t~Mf07(v@OڔЛQL 1HRHP A3z~X1 v]/ל8jY {t7P ,%LO:@msZ9uȍ %~7m 7 @qqeh%zƑnRL87ma<:gpI3b$ {C)pclxJ &?l[Ubo!aJℙ^ J5 ܁a>윸lK,^:?85,#,:u&idBI: X^E'z8Uh5 bɑ֫J [ VFialy˛TSVCŠ3ݼ]Z,kFؓX5 c͸cb;>yrne'yFu8,|R 5xf'm99?QHݬ Ck, }c6y +C-Ϋm >q E9 dG׀R$BlC"Wh}n:C:TE3^SL^NEnk42{R?GKa(p OoN7`b?TፖNa+mf\#r"2ȇ9Eeɤ>`wev<_"gR[ N"A!5SDbw*CO}n&8FciQEFZT!j0A;ÙIG.mH<#R xyVyyH VmX+7Uw$2?^ś0&nnz";3*D ^)0ktat ̬㈮LjUO=h+iP hFdƽDi@g3B}TOUVIL0+b2qZ{oC1ߌ$+ $蘡J^]e~nF՝TwWZDC#¤T>H"!fu㸾~O%:*@n:>%ӸJkV!O9VK?K;.S*Ӷө2H\*ʼ }X6VDJ4 '_Lfr.yFH4\~sA:ðF=+%88:Q?u[@iU sgnJT,P]bhIbhU{b׫JTr2;pM~N,+ʼnWJUGN uY^^݌1&TVmsRט0LjՅ#03HLE<( T`('-qcOgf9%jخw ]- ^,#'<6՝kW ̩#=(J+[L,Anmܷ}TXOK:FR`9^LJaUoR_4uk*ݡE^-r&1MRceƤ4u)lL( +LO廙 ΃9SNbt1)oZ3]\Ґ҉b >T"Nc?H^.,[B-ҩ;Zʼ͟HX`[%G#Æ M8"ztg"̸ץ~d3CzB|(&>&xl5dϼNl^_IŃX;+CL'q`0r_e-$'t<4v- HSRÁ3;֋`|5:ΐDq?Z5x4q¤v $ P2zHt(W@*ʐB` S9G$2ɐG2wvdmٛFHb[He|JPER&YYBum]0sE,[%{xZ ɒva\TGǍ"lyk"`RWȼbhPqk58OPq;lX]2[FyFW. mmaR| ng EQ=Swl6`1RY2Dz8y, %w [wO"QGWgAX{mSm~A@@Ȫozٿ0م+G@R}6}XL.C[&\ʸ4*vqk ͹j%#k΁! OAU(P AN7Rnp?L~VGvX<嫪g^lj=UT} )a0~~YxkgX*dS^ D|SZXWW?wgZlQr#K^~b&͟ NwP/=_@rOp]i>}c4Ǖ%| VS:=p;KJpz"b%L .;SdIw|wݔZ!bh ?x o"My$4nX8n |H4!ďۓ=Ev;8lV4zh Lbj$GT&.Z^ YDɎ,#&>X=t-ZR:̐@rRě = QwJ1fG=C.?mf3?iC'2Wqmb;fߵGd;<7 SFEe"J4VYmT)DMbkL 0z<05ۊZRJ#R'Ohz={rDE fup07@8R6qC]v )HO]&S|rioϥ$a@^54 Mˠ ٶ(^,q@*>/Xpą9bmǪW'J:`#d\uC+<`پJ*L@6p Y/Sf,$ТXpX/(^$m8#5ΐN`qR 2\FC~9i?F!4O9)>s( kiќaƌRn6` 3`@#( (.!@telabV´'[AHU!7w߅)ruvG&Mq0M8lcĥ^`U!G+?U&Hrȭ^qgEܷ]f Y5<AZ|:.4B>ԃhЈ¾8Y?ȿ5`WczJ%!t5"6sIQj V ˝ Ohh+<+hb#aeD'JN[[q{FE ~,c1!X>O HD@A]~|!m<taeۚ- Fv jyDΚfvif=!^ӾY<4FXJ^[sq@2`(@9-ʼn'[u P7=h ÿp5XuLHyї5e 6GEPa]<7lmŋ l^0-D5($i-Jsk8̷ӶS܃d_p YCO<LBO;ǵ )bwK⏏9ΗHq+IHIO 1ϋg[gQ}g7 Ȋ:8Mh'g%M,SlIV =`PKckyàN蹣TI4M}Izs ҍ:aLe"<6U+ 7Qkl&Dݔ@#,iyEm{3}VxL,/o7 *Z FNf;(#(X*[uR±l3B;&Dh+m;ȲcxeTs, I!L5G|Gz(K3W)0>LsX 1Q`X]ǽ_Vrjmk?۳ۇDǩ9cgwNذ[~p]sؙLPtVMt3aoj%D@0W yq=~f',yXK)ȥr_X_b| ҐAL* Zv,ɒ5;e!VxZփpRo~u{‹;AATþca}7`p_Y)BLa +DKsu(vPϡ(׶v4WvmR8i݇k޳}l@s$ھ׫ +X0e*n- ,3ܰ'9Yg%$ȝ6De 6 ɾcw vxZZոVA4A0@oJg$u" \+kD9P!I:D 3 z!I'߀p#iѲQLZ =Vٌ,rOp 4Rևi|C݇TlzE˫)ymtVxQˣC3m :-]ϊ"n%F]3W8TEuo" Lw3V/8kMRm2'4DOU{@ŃfmcwN`P :BjUHVzqҲ.UUvli6_ٹ3dD@81GRrdMf7S^XtSɓaݺ4nI >A^ צ{~CFpY^  ŠVXSY'͇Id'~6Ù2܋v<}Cd͊TGaW@`n q*dX]nҰ,co NJ N QEH`;D;L/NReںRҚ({oNS}ʝsqn`%{qCw9 (؈H@A% h]N}-imB Bi_X3c<԰YR;I< 2R$!*[N yX'8'M"`EPݖ QBw|M:h<%*W#/Z2=-T{&[voLQн 20Пa1ׂ~BW#bCj>Se 9G5 z7`;z!zꃃ(rshD4pOb7hR2@@=ǻw;mڄyl^UDݏ F8Av\UK0&4FЧ³LUhP F%8dMURсg}-+MB`2 l扨Wt;ҟac-xPzeE?LW9P-6Fʲ^?䭘xW#kgG0+Zׯڬ]@44|$"S4yaÎ؋0eE¦jAM I-(SdF 3.B /wkzj tySQ@ڮ{n{K Ɗ{(Ih7Da, x?E>p`-3Tӛ0S/.N:?m_}ZLG8 v ?>}% Eu[JnÛC%l{ Tm/#jʕHHΤa$',@VJL]\*o-a6ˏsvIgvX nC~ro2eӳrܱ,[Yj"!nH4и^3ys<b!NnjK`Cj?|=u+ԁ|ߍq^s-tPHed,NBQ?)qZAg?8o:-iISe#0 پ`;(HBY&T-1{dt^hb{n6x]JU 5 N4y~UN 65#^7MUD=<3TO΁8f)<.]gCG* )݆R`zԊ*)cE)/rYE)nw򗏖\G)]{$gnt-j;軝W/ݽ\ ]Rflĸ!hu~Iٯ}s\&ᐾ! kI(څHݯ\9O?[7 nSBJϔ(|(ê#27tW(zf+bNa'M$ȄqML킑)o$Hsxun,E&2PRmLX/ O?yͿ~ `uŻK@+bR_~L EA>h44B9̓ O7MV"8%tՉ6v<^9;$ ˽o]LH3QxsC#sM6l7O\jϔ>2Ny q9yίDXl.4ә6~Npp%y H]o Hazդl&[<)]42[T)خMJR府yv ߙg5uvR Ҵ]媠hmxr\5_ei8(xЛξ6AK^nq԰ܬOctFӛ$](=X-;s ++j G7>aJD&/SOʼnR^"> "A+eN/C%BQҕupе.4*jSR]ZltPxז- ~%*?fU@cr`tmףH{gS Pp& *u؂{Ta0ͪe@l)!1#G Rj g'( Q-2vbF&RyL(/t[RoV;)T6M8H@e(x^><>vͼlDӓjH0 ;ѢN H/4$d2LdPǥwYrCvg H=("Dhӭ9 qo_tG& JCcf f$ 6 %ybjW.Hfb>|Q-w wLxk3OL}P HMw]ynSF8(Dd*#U  7teX(s OtS o*&̦GBDC&[͐h7F 0 5Px6*Fݢ5mRAX|˓`N C ZX~TɖԭS؃dVx1|wJ&Yib|=C0ffWjQ7JaEh@:lMlrlz"jt1^%:RlSh Qri&(&<=臁j{vӬws2Dt+i+oY J,Ç 0߉fl  %@w@hD-=ݓ2~fg5qu*J;X#N}~Y~1m1r@ν\';4%A.kAnLyva#A=#,j f^ن@2V_'5#>NHzc#΢~^.3uxgUL9cg6bd;` Mكj8Q]dĀR{mwy>ݶw}枟il@?ˏ[ 7[} 9iG(OX=ٟLIuTz4iw|*-[7D5VP2bu)QhQr~[o~80tI͐x[kG%v]Ke-T9{ L\jj  0%B lj{ _kDn|Ϭ2ZʂDy:ganf6r vZ g:ֹ@(zZ8$NC V_MW[u"ܹ+´ۣ#Ct[wGiV<ˑp1 vY*Kt`o*ZAZΡIZB5}YKʏ؜gnHk34'wւٳb&w,ͫ*l1 CL|zr*E45%[5!#/>, l_Kh)) $ qh7l{zcٵ B8@OjŤ8ڭ2Gwv(xHJ $J7r=V'wJf۩`{lOEÂ0mAV,Q/߭78-r)N۰fqV@83Sj: ~U1G\c[3E◴{Ʋ 9H${NaR ZV}Q9Ӑ!ݕE@2l W=2N+ tGNHKPƴ ŢliQ%j,``Ac@q14*4*k%2:W4ys{HEJg(+}(FS-T"P)fLEßA\-C?TXe22 -=2k53BR~ys$CiG{V|ǭdZqmQw)]9p_mmMpK%|4M{savEn]ޓnw1"_ANμU=Ϸ,fuG}ҷBGShN/|#ō,*k9 1d-T<=ӵ֧ĊڎSL%s {ubỎ߯[$AQN/%En󛴘BoOΫ&ۻVF`'y P5CacCM9>Tj鍺n@ ̨'- J9ڊ½II>Nxĩ3_)8Mt_I 7ݩxLk]{@T?+6sֵv=[IT!1fub@)YAӏId@ a3Ԛ /5ف4=Y&z"4{\'y8M^,saW\s+hR̓;`i^zJ[eBɆD՜2LC'Ck)dJ# .PoZ"\VT94kڏV<g{/kKDԒ `->$TR#‹z ^MBcQygeܿJ0:Nj/ H߬–Qu`X5Ns`E <_5< ݜúLN1'6͠GlEBtˌt4NkX>;1XlsX!uF̝1dj$ rmÖh_H*=BݜQNe!cm l69>Įuȉ3"2d$n*+ʟ6O^~'%Y,I8єEj"Vfk]ziȸq-EUK֭w%SvS W. OgOrG1ZXV/d9zm)痧(M x|ä!/̈́,oVe],y/1q Rʂ]{GbOS d:lV \a 6UQ܄=w7Q-|8L Y &aړ;@qRwW%Z;bx' ֏/U`d˭#3d+RJ Cښv.PPB0oxtYS?,fwe?4;xY~SkF794 $v;vyqgǪ6Bɽ=Pu-it5uAu.Jp.Ҁ"q#-K•1eD3{&Q%fUx4)ٝoRUي+NcQYꊹduUuS :F= *7類L2N&/sf6?uΌZ 3; ɶWMa2dԋryhJ{$'CAVhl~jI+_ƿ.;/ ʋkOlKGDx:O*sxVt"je}+1+r2mijZaXMD TZ^q]=gnCnH؇Zi{Drc W}TM"ٛ7(m6(A]wt !#ڲ^̾/И"As3Z&ve,Kl$ cI'r3rн 'qt`gm[\A#Ҙ>:d*zZw^o[b9iG@aOx$us,kJTgɊi`t%՚Dh]toOl4rmA ܯ R6`O_H_+E{#[M7[zKfV[Ӯsſ̞lŠJl܇xam&:ᗈ>y{,1ls>}Ox\kU[R.y ,9-/L4K!ąa)d}A>lbL:f;_ G%)܊ڷ1 拔݀7n-bc DKNc |C[j\dd c<DcghXi$ y*';kXcXR᳞D)$hy>3C Nlaj3r)  ܅ b$UUfy;5Y%b'-tzzG`rt2}]m1f0\'()G(FW&;Y@Dm- / fddZMkI=<㒞-!񇛷]D"M1ʘKd^Ӣn'C߇YٛkIWUr gxBj}FGW&]b>gtt`$]vG=+B$4ZzUkXCG ;gBVhQ$ if27ZunKG<9m!smJ! scPHsJ?1 JaTuJ q R> (gɎI]!g.TV S#d@t=gJjN@XP;ZzݎWxFbUtI^΀( )haIU"Ʊj~~tݢ&F~`r |Ep~զ[Q3"%Rr ހОʂ-,pDf \> pky0 ۱t#Ibj_gNO ]PF7`/gcuQ0iwC9'_쮲ffj n$* M nwVmX7A[bx 4F 3ƾrLfJ K}*B-kKV9`1!\<ӂ}i>Υ*X f@ l!ӎsJŗE0MHeWo|8`䭔&V,S,lЫG{6#V$i[[}F*E/#K]'n׆lGn!jr.{e#4 :Ky Q];ěQb&t0O5As܍Èy.'ͬ+&'NMӾA~Pnh9z^. xJJPTl*fIBSVJwgᰑD©TF:IsmȽdsYqk"5v|yB2oRK_B#wǗct j[)9ajQVR2Q)= /ɛQkŬiP&T#) 72m,j#7ٟm;;"{Jy%X>APn/K,c'B/[j"Vx~<FCʔgƤ9x%𣯒= Z>zd^r秬9n*M@ЍHBepъ!B]Έ }2D>Y0}C+Q;a^c|Ml#q pU .ӽ+Dz=X֩Oz5~(6%KQכb"+r+F`dgzj -D=Nh yr%n2.}kO "&h z=N]uS6LڕNc': 8]#/ LB4__FaZ]u˦h"Yq㧐 "e4\tacs-9ڥVp"c_ (aS7cRCXT糴'$ƾT"]y a)A'֩;xZZ$bΙ~]aG |}&A(¹>8._Qī*r{\tv^c𯓇&*hq3-RCudm mZ E A߄{u{iɼ.q1,nTB ^Q6#\fi7GnMA ӸeRf*ahL̑Ww&w7ϸ8s\%|:Jm6qw p$ ,:~iIµ,"f4dNNPҀlZ<`kqeC+e1axyLīZ pq;\br/T(><rA4GiIlQ{\JmYNZ.Rv4a*OŒpd?ŕdk|#Tz+w=ּ~k}^TW 22Z!qѿ~XmcT3J:諟r7DQB{o@<ȅ#G*ǎA\оi㘈ՁJiVѿ . '|mo8pTPpëo ^p<7 MDx uMoNXq_5'0.=h&/ez|?B:=~ʦ;&CnDY*/G@O /w9Th;nJ!T 6H%Uu2@zcA9'8- n~(@_Nɜp+E:$d?Tt37;Ьft+b]5|џ#K.Z@[R T'7N|xsA1"mľ%1k$~P/Ҷ1:6X=I \(O~E @Am8G :2 xKَɾ+m& QQu󙐺CT} ֬s# ~Q C)>=p?]d*^1[Nh,֎Hqh,V_]&1{ j󫀱ma-&dUdK)p&j~p}|qU^)MmmeѸO_[#R ٹ)BI֥8Gpe$;|t x\na63*AXP>ʖE}UMY^Qii#aY҆\F~j7KL7M.nX='VXذ!le.;̕)UKMl6'Fg, 8tj,~FX٠9T׽aء)}ܢ8HxZ;F+#tICCIm&Uv11hc1yl(6 3m>﷡6l.Mkuͪx6WRWnO%v|0R )GUY*kq%g(T UAx9xn۽3 xo8M8pr3iH o|Q4z0p~i7ҳWb%ꋶA_M@W i-i EmUMU.Iⵙ%Qa,l8UZQo]0hyA Ώ? )|եv2W& ɰ&< xk qf +bG^,S7VW4{%:ZBx?9 .L?Y[4W?F²2ƣ[ܛv>Td< hESc4ÞU.+Q) nb6u%Vp3(jkҥcS (~dUPnineHQoiT H>BcƝV͹[axMUY֐vHE_ '.3+QWq]u]ʻQ|$qi z3F2.ʅ*h%WUi!tαrM,%q t0ڝ*N=4:#ISX#.ѱXZTvz!f Ahﶆ7>r `J!zP+æ k1޳^-`"'}0wzP!rp}Cܠ /h_lԚ^5o-<1 /1W=S 08 @Dnƒ& v햭!)y<`{vP{T?@#xV8袹HdweܿE,fM-b*Ǣy:@|Хghi0`ںui)4d|AV6F5yF+dИlavt" +Cr Bwwztf\h!6uuk2eOns7=%=v/^zABX4ƣcŹfIָ@ ?ȨNlH݈ gd\.B6{&Lqۈ4 <8s<3|K%DEmxSgcl? % 't%Ij,L~5iL0cc*R˯KSڔZ&L9Rՠ2貹><-6b%$@Ut`}e q'ƨ_ux֠ohW@^1C" Wjq=pP%Gro+:_^j4HscP1RBL#~qMq<vt U2,4_󫦗(/n\A^lTwEd- *I햼% |GҾ¯AF~-+K BsUCK<:yרC0؏@Ҳi >C9'`49\J&LUvIBuetf޷CAcj31*{$"U-U_ܣA5޵ W0ah ,pΡDnn=N^0ñlq,zt`G+"}AST$vٿ= @-~*O癠,Ye5 sPf eıd^x?%$`M>8Q'aLlZy$p; &C.0:lW=)}lVqmw1/-W>q̓V{Ra~ n1N$/{k Χ ݢOmX닿$ߖ2禼b v{͚т *3 ~hdI2Jq"0W_3[蟮!0ᄾ6daUXhU5V)qš- kĥeɇz$i^c)dXPӫbV nuhX !J6W7;F:m=@*.Pz֫!r0Uڥ[2slwvn#Wbg4 ˣH͋DL ?h tP;o.ĉ*GJبöMÃ̓.^N(vƺ-xP}%o{arh:$$鴴zScͰث{d\Qp gjn 3T,h~q?z x(L2<(',I{μYqu|!wCk -zs=ghבC(%UUYeН5 юT$k |YRnJ~CʐbT1F~RVnu(-:'2-P$Y9RGHwsm0;ηHԕ+P`ȈmA}Wu^M,X\Vi׍Z2..֒i_5wPoh'uK:@ȫ;*aȒ.g:79;Xδ܎N(M7S1j}t ~B[.ʁ.B ]Eo1Q=M9:Dl$ɍqz1VgZc/BpXZrq8c}(ǂn>kؕA@>̠Ƚխ; ?jI%ֶ}ZYZC;$7]DqT '/'J ?F7,2<UI%po;=jI%j=QB@a[V:,~H9 D-BӴ5f$"%oe[sط"Y%*''w7uU?^wmV2to=kd.wR;"Ŗ硑xOޠs9Ma-APc }Be <]t4uvcb*Vyܝ4ks1QJU TM"<?g:("X4Zz&^qUht7O=v2lcz?8! \Ӯ??сHyB[k 4t/EƩo/G9L{ >$_I}ڀɘwz]= i2Y'InFޚY_8,4N9 En|R}I5OǺXX9yVNS];<+d7aGQ}m^ըF3+~Gu2X{{Y敳oyiѣJG?Z8qShmwUB]a29$0?әU:unE9 3ßX'F7~dbEcCcQ|L>,4Kݧ) HTiιPVZ[ʢnmgug7KB뽤\W>]rWwf,"-$ m۴ոyҫ(e{}X^W= .>DTli͈?gPP"/k~L Oo { z< l{|ttR{ZűT(5haiU];e~ ۤZ'K+;Md;)W2F"qev`m=ӶoA15IC?OY\]]~ 9'Dt&~zrh>T~0,ER$RPVML[S4Z1[rLߤbK}T;/D-Y^6pG;l%^Ck–nH.aOAi Δj%: ֕[3v \D%=K6mSŽrj9'RA 2ngmU9AG[\uV芩#d}P&#7-~bt佉2U.mg5v'ێɦd= t]*f ~rnF 2\<'/ҙO,uʚ) Un1记j9ީj4ST'6N `HYb_קKSE-5z(@ @iK&|%VEB0Dնd_]L=]Eq=E&E2f`[kMt򏊚ɴ<W !+%LPzVr|IFLdtCP,YVJ uzSM襊Pc| JA@O!=Bgi7(e%jZPOZR;~ &*ߧ]k@7[Q~`~uWy7b-_&ЖټiNJnnvnj}tRV3 )bZd(B4DzֳO5CR4љ\7 kų; ] 7=mA&!KaM{V/d Ig( /oxa>2U4!+m ZUGsC%Y+c}/t=-Tʆ9TfԦ?o7hK)eD#28 yihm47Sc ԩƒa?T{. X\Η$eyE%iЫڷ$^rҼE!K_V:j9 `Wb( ř1McOWT57SQC˴FMǻ/ 'ɰ /k̗Q.:q_b:X=,s )786sq$KSX, 2l C8JiTӠQ*&*2֊Ũ_-3RJ\E=@I=:*w$vJ hˤlPMu>Tʜ_mQJWϸ#)m}c*v+ZU+b=~dM.~b.YSf=vnTQ&{ɺ"@`ED}#YR㗗`,A#៤ Z=LvyYVŻԣ7YĘ]k!3GO_vEj`U|94t`.Q(F Lr,0j5r1=Z \W n) N8Mlϟ_q떿ԙЯ<$ZpUJ^wdF>jr]$ FPKhy0>cW8mdC2|j"Gi-+R-_%%e/g>$d0/Et嚡jd𿧂G _BDҪ8EhI k"b(3Zz=qZ$9nx?U,\5ؿrE8"1+@}!3vf Q68U,$y8Wfe:aAϞ] ^ ##m'f_>k DK@^&GJg ߡqd8`Ybn!pQgk{:Zڠh1NF?U@NR? gͿ ݰgFt^S}()IC:Dor$\yR3)VzE O9v2T6~+i8Ib-+pzKG:xMYx{2oxYZ\?gOHF)> U%Ea -.i+a]v6j:V~qS~O(*J-b~/¹{7j3U ` 6 u!sIx5XhM[bWq 7EA+}]mmf7>E^Mz쮒:"e}{LBT,Q2)Eգn"*|i J3CJk hS(Q@7UwUO4odE%Cۊ~Kתx SLyKF^l#D4w<3opbD '@k# p'& uq _͊ FJbU̱zP6YLsBXJUC+Q~is6L߭rV/ЌYǯ<4H@eN J„zGY{P|1# љ`ԉ|(c&B) 1̓q:ɛ"7(^T*fL#Qx~ACIo Kk/m"H60 2XTgRm޳(Ãj=Ŧʕ'y1! |2AC⟜D^~:@Ynj*{"ZB֕z-ѪE6m~[p1m?HhЎt]u" }HY}P(w9-jUU\q* <ۖ4f2Ţ؁)OPR#ɏOIW^?hw֦זcZAVqK]9#WOI۟ $M2q @MV6AT;dqr Izfd kwN(c|$}3i08ڋ># -a"i]w|f$A:t^1]̓y\n?|زbJ2 S Kaӿ^AVA;",91`xJ@Q|H-JSllJ822;M=O[.^p~L!׋KTfl J@h#DWw1v`O]do㩮! `0_4NMez1z0hi dr?,:ȰmS!-di)h "Nijz%LxqlP*y]/"G7iûwE~mQ5]j7ywƥLFM#~|kfԂ̶WZlR1M@!mjw$Ǎ\F!jcpu ԱAaIx,2b3;[m=ƗrX63-^Ѹ#Al¤9 Q@m72]lg N5"Sۿ:A8kuN %MY!bq k A#J ~':bZh#kf횃 u泩\p̐I (h/IX8d2B’c;r9 FwBU7ZSαv4T 5zKXXS[J%~#{"D+㡇}iحibgSضzO`aUdP/";tL兤2 e!Ok5X5]IP7؍kq*I,9Oݿ(TjJIq.؁2JSlkB-smu8|y< =$\P[^T>%$۸ {D4÷a'c_qqA-'2Tv5=hd<EY龕 A %u(#@ L|j_.ɕX:d\{n9F {|Qx)z;;?üxOyg˩/:>xV!ϱ˱OS__ &z7v4[#( l<%1kّCcsyN&CP`=Kp44VL/DiYX9o_wyfvMs,uCXQ(9{ $>L&H0M@5F8>Ľ֠RyD;½#9FMR,*GY[<ٵ!aʦ,x1~J=dz-ZOtUQ0 2fujoP\B:l .:.JxOD7%dl' 6S[.\/g,vbKσF;0Rū\&?:8U 2B u::+n]+jT;= HxFڐkXg|q[ڼk%C}a`@mOf[I 쭌^Q=ou<̄~`~Bn>N!\O%k Z&^"?Uɫ-(֭`zO净l,fW}wyM#ϔ%%~#bNt Riz4c.ʜd:ҋ|//W1l;,fG`?ө.'Trp>U4{V{K#㾈aCqL`_fm:m/RA(#S9ֽqхB%C"3nd}KA3ɓ"ndgwzT`>#;jłL 3nz*9m}QsT^ST?eIѓDcmvv.pAouk35?tn#²"p)gB 49EEwKc8NVa~_Wf-2unzNy{ \!,V3]nΫ8tǃ)^d6Il*E¾S٨ N(~c+R[ $u:1fECl2f?Mո}eFi}Q#\8MP7E)"ʱuT|9RpqWH"')6#4x```5rw\ J+}6_m+lw o :x. Sެ8Q##n7[b%\6R"X  | rPXޛ֢>4"̩ė>^97ubyZI1qIި$# G_h:VJ!.]_P2]\I>~Im?- F_A>KAW*U.p-R,[մtDxj沪T$XD3|%v`Dc_ @q(Iޟ#E39>=Caw:o퇒Gz[ﺣ)TWhhi]̥Nۜ<0yB,*(/Xc,Z%Mt#>АMKaQxjӣz Lde:g.~aW%suԹ}з.#~dFTJ;-7Ρ:M+*޼n E72{\?gF-]BVnlZZcwySn|Jxv.u1da#I]"ΓBs&#O?޻ӂK_U}@Ym+}tKՅoyq=fjpFUұ3/T_~z^%B}9Ks9h8TuNG̸`7]k5F5j^{DWK@}Éf71zt)[#.!>#a8M3Fx[`ּ%@=m!(h>x)AolNTv\|#n./{}8+rDF2.Ed$lK (t4Juzf nabۊ y`'pbcdЁʙ92]Z#H*ѫ@jld1$' rcQC\< &(6Ph;3^Hu6R='.Ep!N9]L%/}x,e&(gwlZO߻x3qE&5^{G9.J{MvJaX&f9pxu}| j}qOz!_-+{!:nC: %vAd܍s"A e7W$B7 lP}y47Px_)i.H;w3tto{"MvB|Hdz˓eʽ_+5t:0x Skod$Mk^H:'qJ|; K5U fI,qʧ>R,ZB#(>^r7nsAb*PzӨM"d}>R=\Liʽ@,g:MF?6M"&z%,דRNV#{DI!MJC:OALNqlV_AH7En^d|I"4+X;9,$y]JСұtj"@VN ӸQJoe 1׸XZE-.~Xm@ۖ8PRi! qOdebl!r,p5^=6B̈I#uYZ3_!PHO:|u |HVQ+w>I lz}/͓G,NP.|?5F, G@9&4?߈~Te+80MIkTak,7qG#wȕ jR/ֽw C%W0 Df ZܑOۍϕ:D+t3PQxv2;VU^ޭoT٭:/Gꀂzhc<,n%vuSmMmD^jq+bD%A -ZI"#$]@~y/%l&鸘|j/nw*z01K,d(ĀJ3#R.u_fM1'|tK8ζ;\7PmS6'*%dQ]gg|CGײOqgԇCa8ڦN+1ZS;/MYF 2 22o<䏜aŝ,mt>xtEH LQjw}F?/lNmQ}1(P\I tʏƾaPmL[cFy+sC#?.A+r R;zb]/|WGU{ , LJnk;!T{p'-Pg;W-hGiqvܨч@ ´  39/CD iǼg-rgtc}sCE7(p8gCZo_di7P`S*1>bO6jJ1V{&7p1 oSz /.F=C2V}RFBTDkQM>4J% 춯0`uyH>L{95IX,)NSQ! hEt^v1gnڍK|JꐶB|9J-9m ]j*)X@{k4Bhm*W[F[aAjG2 ם0wXouY׉/*h qtg8z7dac8T ~<0ⓢ~+Y ٞdҐo©ZaЙd:fol0f +N)߁طB:4Paz߫3[51vp=0鈫NT>Q^qO조y7g2&GA-$S\P,+z- uS['K-<)yo/eVD{ҳ0Wbr4=܁2?;eY)І|HG؄:xt}ΪO8k!/!d/Zl/Dr[ F>1]opr yÁ: }{$B$(JKsܣVso`(,4Ũ8'6V\ϭ+=N vaFԄ1%*7AO 2s'TAXخѧk썛v& ?Y ܨz-.HH^20C=<ۨP.ᆵG)%*Ll6ɰX8ƺ) ^}ٙdYa24*A@,}?S_HJ`ݺRqԄyY|g%^(F]cQ<M8QqU=`>VΒ7kV W)Zf޺7lPye>-l])O|oSAq N _)MkеÓ 850/ \" \q,x;ýn(~uM?Sp~DlXHe8Jq˯9;q?}@>zjXKst|l\#Rc_1aWǫkC_6nӊ).a zK<ق&i+G"D`?}LdȬhWE TFJ1y,?PDyINT3hh!Anp(:{J+˜MMuqHu& Oq̔18lj1>HcIa?b0K90a['`*,0TǙ3]w oMð6!'x-xw.KfݟWMgȉ4.bܰ2|v/sL9F] Ecj]l.|c|9dץ턐B{M:Xl5b#6# rv|lģTJ|%@>|!J[d¨p4s~cŗn${#Xu[A|Easߪ1˩h u0820?Zyu$ Xl+Ȗ7L˥.cqU'3ړ{޶~?E4gRuU;2)Aqq߻-%2,`Z4)Atw1Y eҧQc{fJ2(CW #Ka;|RFJ:𒴦/Zi%7OPvhkĎd\˨'`x@9M<|CbAyG^wp]pރt>W+Oި`OB~ԵsߴJj8'KɊ 1[x1~fZlof9tɧC 2aѯcL:>"'tȠtT EA*< )IQZiTT2*naO $D9XZL4F?#/^ 9 &.Jt$nm(&Wwi=wg"Z]c =o Mӷo1Vr\)gY]e1E/&຋^=֠!]`.Mp6P[i]닿ؙ'!^@@{OåsȾ)N$T%lJ@ڠ)eUnddo>Q>ͬS,/=IWkP?_RGbL&fUs@}%(.TOɚJf-1g(PljYaC?VI 1.y66~<;WNlo {$ѩ:`i}/EO1o *8m@zW֭9G{V0Kp^8o8гVk$cHbpD`_ӻwR|@.Y:Q"|; Y z{-h{Kxm+RKHVނ?'S9ea$ L6F5blެ >W 6%hqL/Ĭ˩u$emxֹ'JnK7oc (0wn}}5W,X<"(B̃c=K1c*ME%8r#H&TSi@ :# Ӭ$pNGdI5nMF=YO8Qv$hbH[]u\]JҶVbH;ep]_Z8Pmr6?uu,# >)+zEv`d@|n59©9W 𻾾09ظzN5C_ !@7Bp^N &, [-]O VXgk`滚F~ @n@lQsRo@pVb[0WTaKHJ*F)t8Y7Cr룥9x5:U &P`_>!~|9h"oRzf_y&bz=zH^10KD/"8sT5 T=9&gm_5ωW`|r@g]Fn7A,#Pn%Lk%SeEJh v;6d'nVdGhU I$:`䫐S}Vc Rǿ]|y-ÀҬyo1w㴎9Rn5WE JziTȆFXZ5[!voy=GɁD3}{dpC7eQ& .b6!ֹ߸ʰ'/.6H9Wv*GGxV𞔐Z?ҼIiQ>S7 qUd>*˯u3): \>wqwvᶧu8W2F ɈCwxND> lF2h7.*GAa2{jUHr4%c[a_c-} n\CrZSw6vϷ AYxOy ~D9м1F$_Cdp9mD#Z QJ9 oшC^.ɂH.ٷ\ hͿj2qucO3/#MFtSL>ua f2P"أԫ֫G;!qJ ?QL Ie~<`w uoCkxڌb*6xGI}V.Gۓ;L}RCpW%zQ)!)wA:6B**{-%_rxBj?I9m{` y % A*HP`m(f9$ŎZ'|KHE_!iGoByeT% !m5QМ]v- M8Jwؓ&(7{؄_D)<0EC@p _Yl YC/g01A@>n`,7 UP2Fl(C1ʛl!ƀN3C?xYc 8LU~yD}[9l4U0[Avpת*y;E|w%mŕHIg99gNxʶbp$qC6!o84HJ{J$w@TK`9႐m_ [zoGPu$"L_f6w(:>/bO fHUD-o  ?'ЎB.pv_UքhnjcЯ&f7G͵줒2H\/|:[ [ۙzh5{ a&b0VxoT h,E$gPoGo-Ȩx ;Rlh qZh |@( Yل,/e@7O6i?KГlٻlOakPO]GNJb*4!!~n8Aum;`4 e/A5#Nّpy2N}\NjD76sFՒ(|e9J.u/|OqHg'j2WHT~,~XLx0 ѼDŽ r&xt)HO=-@l-“!iu- Mb#Z"# @lІoҒ^x ;%B~Qķ9\HuHa+n8Q O١Z{7Y[JaQItmdw4Nm^᭛TDexEh dEe = -S%L+ 2W%6ÒPѫp#9c汛\cyFJZ #@ bgMI3O)޸ SrVwsIxQ%HTJ/"k9@ />U7dR dy6ΡPͩ,+*?ZهwC P.hޢu-K(9j[A*p6KGFm33cpo}‚ۈGHэ(5ܺBǦ*z:k fsݤ&2;]!=]7ҍy3tci]SP7/A{StZ"^62keʚ}bC?5YW1In%-6P }2%BciL(s[#Acˣl<D/bI$A[ nSWY,`orQJjPDQbjNuxi?~kQWKMVbZԴɺzJ_C>|Ћ2њ+mKtN Fi8<#}K :,l7ҿ#e=^/(ATN6/vL/@D. ϳ*RD/jFdae f.1ݙw Lp薇T@}"- /7Y:8+!Fz% '1*b9vYfWb58Fo>I|ZzT|.=S˪5`/2jO牣|VHTlrRŤ70/r_ęEk $Qi%JD3-e޵_z6xJM!BPc5Ҍ|pY&! 9c};!Vn / @_*d`ýC'?TD Y϶nΓ3I)E0~Ēwez("s -Ujh_As~ٶ&Cاg"%̻$*G'ŸYfrlMVt!g  SڭKbpr@!(z:jA6Z~r(7M6SH\¹N;~|(7rmde hO(`+Gm|KBMTx u||Û_$#f W/Ҁ8۩|?t"iHovTZuTqcVn'?{Pا?4aCݓM!AC\67ӊj‰.:xŻkɐfkR23RLqEV\5'ItMSn{ ;0 q0gU#d~ͩǍV.cNWJ]eHF-v*Yz!NM`1sݫS*nC|m|sռ}Jj?γ3}zz6H olw8aɰ}ֶCx^0f*B f#X2zaI0_wBW`22 vM<kܧ?&ឳ{Rf۞U '{bL!8Ù;{ ? Q)]n e\dtP0?;:FrSY"6y1Z2 KH!'ю,NJ$+sM̨# EdF2yLNxNs> 9E+̝ETo  Zr׃bI[w-u 8wjCK._&[Q9,&!l~VMv>]KrWbъ{j({eL`ˌQt+NkM>= 0ca yiҢz8(veIÚ]P2ʻ (aj 4D}ai!;4bv̏8`N-؛(u^)^Ab݋&給K |f GHYVVT&rDK?bd/p\b/DC[CްW >>I"Š.$ly$wF&5R[|9>))[)PSFXiK\QjMzd [UaGv^t@wB ę-x Թ1wK<|N}׻">Z?);B jm*Ūۯ;ҁ2{qӕl\c^u+N?|,Ȼo,(Ehp _|*sySts<@FwM9Z<"mbyv%C/C,̯3A>S]¬lyMnuFH<Sş\0/0CI =cYei i+l ]k-3w=DsѵTgrB*w I 3X3 ߠ\5M8?졾CNh-zV(p82+IS C\< CaIBUh@__$"F$x7>F!(( U_/} cz8gROzO|Gͅ^Ll4oΦނoE9=i%BxnG.·Ak]CMĿJ:"G[+="=E)${kÅ8>g;C $bI}LwG{ln9Y"^rX9Eˣ JY1f4KBVra@EΕUpz|o'_.۫ʃ][n{LӸ$Ҫ=NTB&0|lc@CHU vMG&2u 'RFP0ޭh{L P@Nd[`䨶XqBφr($hF{:&Lh{6ޣ6'M)G"sydѿN`9o(FMp#uqٙܣKbZAL*3RvҜ]a8 mxp8~k3[BXMU^ m"+yoɜkWh%HSd 0S!N;~qQZ2w AvjR%45ڝyth@'>JDu;vhLFm0='C] 2zUEoArU';# ]Y˹x &֙}kf$dfCzx Kj 8d!E x 1=T:m}`1ޝ?-^)WbfKs( ~ {ih0ʴza R`-Rſ]hIKB ݼyY2A (JB&mVc#xAE|+6Rz#3XW=U'HH-/Bcӑ[^ѓohl܊3 gRzut=vl-bNшďI b8VfJW<%9J@2[&.wnRLudUxJt!ykǨ~`_^kJPu~e30C/na--H (4J)I}-m9?T?PgFŀc٧?T}ޞ{VD/?)u)Dr)ժY5?gJ o!ZgD-å hMI&|ۑjT.~WCƁy̿š4Hf{ʃֈT/>ӽ)+?!B,s]v t x~ X r }7CY\H@7BqN ZHxeABRg*=VyWPb́ljDe~.2/Vn4nܔRKi2]uˆ^!SN5鵎o:ATCfDrAK B}y 1|!%i%#Wܿc<KW`Xۭm^_v+PG^[B*j!OU)iҜ/~p}DDzYȀ[iP{&4y? 6c9jiQ*vg)/T$D(AIS{|9txij͸E~9yeJ R+٨X,9-x47~ya+A]$ d|aj<1*LU8vlf/1ƻT? ʙXUA Nm.;_.i&)4BDKy,xk] &֩?,K\>M,)xINtrQ+ y9\dsԨ:<<&C*1&g#dِ^b[2kvA r;'d_\Bmo  ~JRqgmY%7tWG"e0qY>ޣx!)jW."35F*/L$0u~O"ݹ Mc~_O*kE<|-i.fR02T Mx|"sDMK[Tq)"av@)!Smښl3@j}b4E;J\tơ];K&~ޫbI>0w1xo 3N i!X"禡R~. 7Og@M`2D%q/}"c?pK)= 0 ).}d>x""yR }6 zHA`Y%Bכ'(H+vŅHfO@zݡ"C6]6醨C+xA|YJ s$k][3U8<9 3{Naijk`PY ٷB,%śKY:A&Slf~N`"b72݅XJ(;ؤY`FAVfs>5@jjt7Y y0Q ')ǍwI ! ,7HvFܕ+ Z{]'1(;)cR|~bz/b<^pN\쉆BiOZ^.[@?t:IK0ōoIi+ga t<ׇY]wxt)@ST wE?6P4ȠC_Q~kB~ne5WL[_HZYpyVIB ߸ϗjW* 7pfMcl;i|[Fp>-qVVݹ 0z Z4VH%}x&)N> I3j7´JhOL{wxKYUXe5Y[m$18mъ[{z h}@{Xo4Yq(S?wxEji Y1kVijV~DsH{otf6Vd]hhuI^N4 Zh̗WB+aМߊm<^@ja.axVB^v?. .%<} XJcR^(5[f@de~Ϭa^ gFZ`fL0_;2kyFb8|26p7@2*qaaeB9C{׈(ͶC4?_:,1~I$L]$ޯ&\)D4IC-\7gD{B㬷Uv;1. \Wo-juj#nzF2YW.5ް#w;XD5pT8YZ+i{EH#]7DNcU"YJvH+sKS0gGT3hk7]D_5Ai%ԔХoWXVyp F{BE <8/|{Cw'7״>/b5f ?بM@MԲgIc_gq*Aj *ořt0Kܨ+ӯ?6Yxv!Q_PP)]^}tKH^kunk$k3BJ"V^i>e h/W.|);l7Ua=BmI`O.VH !f;Hg 6#gh5Nej,W_2Ƣ>7u3 XiAAmFc)r;!ՍJR˃G^32jPoV,CoIquYH敜ƘZ3psKLIT9 i)m5u<[#Qn`W'c#Ls֟F۪kc%c5jXnxk0 >#Xј\>hsF|'^/dA !VEE5#w]C{ou[;R.S@FWVW_>(gI'YDcBq>;$oXA\߶ίQI1ώ StN3{摤D} iآژ 8տޘ/FV@q̛kİo^.Vk:lm՚3`LwҠȬW9ĉ+1%us+=AGsŘ$*e:Uk%H+]dJ]Jb7qGWiտ[Ri~9󰨤`zm72qo@Ro N}ХO( A8*miA浢ccXw KhJ4|כFܖ1O.a~aJAM~'!Yh#Uv92@IP5FKs)+S^mbg Ҕ .|ͺѹ+2;%H~tNH OQ,[:ؿ\$6wioVui+|yy-n ,e닰,0H Y]rN-d"_4T"Rk!H NAUI]q#% ÚQ[G1&[ K.+8"8mpdwg#9dNb|S#r=Zh/"P ̱g|\&]@mB25YʣAIӟIs^#dn,lU$W+B1Vd:!X^7b9 E'!x ?;&Ȼ({'.xh ޗ܊; ̕ib0hkWRy}ҠL j0*C-םi%[UџlX~bY{rץ,z2 "q-~5P@4Ô7IV,%pKܭQP^C THF,??~ԭ=əMDk6|$RN } 9Swumc#Li[MyN5ZjIJ-$ʟA@dcݔ$A嬻?6"z.9?_ß}8|Fv9`2GP%A0#HE4pV Ѯ潵jqR`dyć M::<A3i>^d8vR1_W8/հgȁoR4cڳ(z OO*AWH":$V__Ӽn  7;@C䁳+P廮e 8lnȜ\aֱ#ϒw$i/-H qs~QZ';Й189U`U MId$ʼM3uqAdڪb][8Rh aSRxSRZ&}.k,RJ3Cdx_"4.͒HQ+d{jt=er.s:A_7.ߕ03V u?r(\-f`8i*)eqщr~K;v-K 7h'&.M?3[+N#i\G (Z*?b 3]3Aͦpg,mo_X'%٠W$~ _n6q,Q+rmP>ś;Htb^,f 3U {Y9DSoз k>G!K]/ w?P"OXysf N5/]B91iDvMBVɋm$8 =ߴ;XL_@ig7IsRw)h\YbNP㍊m.eLP=Q|'\; RݶPК 6ަ .Lr]+ ɠ7;MV;XTqWLPAC [ѼY.|vڴH /8>C935ftZi2y1Vr ` tY2/t 4tD(nu'{_7e|NBViCyS&!zV!fc*mؼ.\f:s(|9vec}9p#%KP7a6%C%#LqcU2P3\=+5cFw[sGKG6N 0,J$b!ڶ!cLneݳ΄0u*Cɦ Y%ny[ vWϻMN8U9(nF1.РjBkw߄eK Rpۤ01Y.]! (0]drJQ)E+l<8g3GM`2LNs Ny׆'r7OyÔSVC^~{|,< eqxsKG^pL6'gkoub OPܱ-yS uT~&eEQ MemF]*ԯoKʻ|SefVF5KVY4;нٿT#DGS~@ 1sI̭NAPEI;̉kEbrn%8%ME4O7r#sozQ;Rs&="?S'6|o9~*EjP?;xF'htMRZɥUHR1t& @!|@_詬C--!0¯s_U.wx忩.BTEbc*Ys*ѢŽNjjP,tal x;i1ӛj ۈT!ͨ0JҾL'f杔9=Z9b^xT $wXU$ dl`OY׆Sse0qn.ܵ1q ~*DD^K;YE 0puhDc#Hv,pM c!tIw)V U+lXh ̒1$G? ?K WG@)zr09|pPteS>&=I6T$`\ D FiT*I~9Sxky۽ 1{g|rmWX_X@Ku$B{FMsu Al(da/v ? <̇ig-չ %?h>U:ZUWLWXelfU?9ibJ`>5Aw;L yŶEF*wa&ZX4yl\%Gz'~yqݭNNw La#kg, l}Zɔ_!|LqZ9e?JFa;R!~}Dxra`cM.*AEy%cKWg <4e1^#' T62VTFzӥ-k 9z|Wˬܳ+zh`9Yi[~9:*]h;>۝,/ ir=5{-=E8s\c~,B-F$s_|}nO#3xٔă:] /0rU7iO8o6i{mNTgځTO=GKL P,pȴf8SBq"*۔#L5Y[x>eGƮ]*fȬRT'3H8~!bnj|0Z~oԮ*P4OdwtGcDw@`lqҏoa-N<-== PSFs x[- Vg3/nEM)iCےZ3Hb n*yw@1: /EU=2:K^ a9}1`bs_k/Ut-{ػH@ |a{|gE$\lnXD(RlWxD4e^ :4 kzAlM+FG0 ݬ 8#jH7+ x9G<;h$VA ǤQf˪Ir&{A tg8Yoom*' Il1)Go`o;𵸭YY0SJQMgM-)/ :t6u`?Fo C}#*O>98k܏Y_y&8jR(JCy`@<ҍhV!G_FBfZۚ.iw(0!׊]9by[^$}qp4xذ;3}??ZWIN4[C8Mbw*3b@q⡀ti#.MM\ (<s,oZ$XZh@U~ΚL՛AƼ7~k꩕$%xڜ "/IDe^pUg3$Yb`x=+Ԅ_{t rvDC:8El7eAG#cCO##<6wLA%c؍F9度DH@6}[c98]1|B&It9(eCTr 9B5`x]읣GK?{~"ҮF*Z2ewulc:^Dhx@oO`=pDLR " OU^*12u򠨢R*h%&nޭ" z;m?sJ?69UxN{Dž,p^ΏtXT|T3fZn"dmJzmo9zlOBԃ"6}"?^|=גY7L$e$Kr[ù7feD_)tgKP `!)pp׿l08(/r0m0.i64ngkBHO`2'bA;Maoś#'PKm 5I?|IoDzaCbɁ^h;m] ު%ڄ'6٦xJ~b(6G%;4 Kl^ UMޝB/2;Äd{EGdh$ FbJ=On8^1 ܣ܈(9_9D[8Y?qL~$'jUmOmp.:"›ׯŏ(OC9^3 f"zl0RsXզdLhuQqkJ.i W%)iD@~ӑo&Ng%b@ >w))~G8]6 JOK da'CIgHYN[wbږ'xֶeQ+ WJ#,T顕YPr^;Ub XHj F_ Mf3DL8ңoӮ˻@^dg0SZ?}e*Gr BwrRp1=pfb0ŗ/ Zgʷ`3bFfa2Ŏ಻ N*ϨN.1i70RzK/|F_qu=0PS_>)&5ژȬMiGG3>Tװ3 GB]zN^X'C ޙz߂F#J6.:zmz$WوG ǨE3O,uҩB~˩SrV#Fr&~ bu܃:w29:?r@-'Q;A[:ׁ;DAm` $M'ȭ尾de3^5 w󙉖$xdUL^zq%6,rzK%6}Kn45W fKJ#keYpȁᨅrEx޽UMs:qn$F?N?)%e5}^:@{~ndEC.S7BϗHdaj ߘXv.qpNy"<u)Fyp i s2M CB Il~{zWyvĩRGcnU\hN __i-F0gFZ`us:+j+eƲ9e]x`Fu8cik껤ӀKZA3 *풴MքGs{(\wz!x#Wz4 LosV֋K ޓmZ%[zD3v?E*i~s |tN*rW-32!Mf {5)2YR2[kY͕i02|r񦭷VjxӘ9=cV7Cx+՝zvs:D;gxQ,!w`ZpBvXiuqE^r8Ȱ+JK$~~>nK\IXpRsT|\S@΅a[CUl3ߤ It2j4Tt2f`H&hڇ0Mng %0l ]9s-s#%V6{*-5ESZkmCR)@AHŔ6:X݀~ABYa9 C'N*Q^2 ]'2叶IѻÅ A}?4u`O-[ԟX$rȩ1(OgH$2 *N'ϵ7- ?c:jBmj8K"cR^XٗbTbHT\@~%׿9% $dF֌tg s2 #+W~mh{eb~1u.g:{:žP7w6fsZ2<|$jܔE|r\^皍 T٤L\"=sOh)~r,h!k WQ# (H;ڥJnҞWOq N/l!7zUZYs+!oe󠤎aquNU 嫐acX\:w<r߳MʲjW(jf-UOIe)lFv"Kc/P`>7tfή(9]Sɛܚ lz{%H{^i[W #^He{)/:h9Šhcl[?:mZa>A"Z(Wq G-: e||hv^I \-uAL~9dHM,ͦǀ g'V*zzj@rN1Vitx-Е|F}7&;V?j]B9P+/'5pN;Sj+DgE垘pb*<gheVp!aD,lsC,W2\fRytVa}]a?vp3Uxms⿺>1>`y=[׸!Aie `ʅ\UAE:cP%qUkt2HIeRii4r M 8Nq>IP8U5 "^焻iGrPm"5@֢=)<(}.S Z+߁QPQE偪$2@u6Ɗ, Dkԗ׏|LԲb ^gXA;~Vb`7QC+HgUacʌi9qJ|o.)]rYӎ .jXtQd/ɑ|}VOEZ1+`rr<1{xz|- 8sh!?,ayʐvNqqS,[} .*d&o.i;̄oh!s f11ofК]uz52@&$,fa |ԏ9SKwRR?WaQW-n8de/&Ey-kd}y^Slȕѩ^WjVv:$֒;TVۏf;pI?Z& }h&{/axp`9@\ƍ{$Ɖp 3k3]=3VѱbNZ`<eU'5tg}RKYڥhzݬ"zW1a%V퀍e)xm"G gnX|%u$-ӮKhE4$Ѧ޸9GAVtLDcʏj{Cq< j"53BjP'0a5]?#ykj0JϽ]ùO qa☎cQ^;P'mx+֘QitC2 }0~o@: QV vTd7>~)mbB"z)dN}> …qM |.;cټr;^ XgR{^/Q!)yޱ3:)- %>=j_yl\z6}s::Fߖ^d'~-RӍKʴ&ZO&t+ 3D|ƹ{hf,u6[3Mh!mD2uxart&&m\=]1Dy!M'NnbQڙ hL]Ví+1qes|KDd ? \(au\@ Ir.LW F'NXbo|%핗%j~.w(41UԂ^q)|K61첑ͷkzXJ?]!1OF?KZ ـAMOּO}gṫѪ3 j9_ tKs&Qry*D'|9YRi޶(O#I;V|\d"6w,Ex۾.C Ԙ,%44̕!Ww{sGn7[pW da4wTz36$ =-LRRM \~&]YV*4`9]xߤ;qn{ևQkY1vjCp!v5R^ LF$]'F#ޙX2_L*tu{oZj҇Rq*K!XC1>Hnj)'Ve ^CzqՇHTA*= a 2,RPU9?^`;$Ԟ3@R%Aw,GخR0x(Ab&c.=Kjp!YkćJ֒X-.|?]s&lo^2pw"IP?LXցwa0K g.Z I YBʼnx㥤zQxwQ N c:[ww_nt}D č ,JQ^#*6 /0FFGy[L V 00u! Fı%XX"Pe1J $I'q$eUާ}pu"M2l8at>kW$Ԃ_$Hqه{bL_Րd (3  9VX|q@{Hl{!C}OX c5OJ13K jR/cBT6 QFݢy n]duLT^.vʚp{@0rDX *P鸸J0q^ `O-5ܟɻ,<m<8" ̀\.1eJ."3[SS sLG顫CDo|҅QU`R0Ory8wFw ,Ӻcxbw_1 GQ+wBQh<K1_6"~c~l5 ;kr!m[658V!%r` 3ٛ_rk{+sN}XS>ΩuA%O1'ӻCf{l,MKf@=TW[#h[ƪ\ }7')yD}B4[=82oT`>}iŻ%wq`imC/>ډ9.TA" x =2CJE7ULQ,#2u)vތu'hMx԰7˼wႈ-{P?/\.aBڞFJ-ӊqVӶ/>NTbB5J#kG F|'A9$QBLZCklEI`]Y !Qƒ[z;ט>}J~Q &W®(h4=dK69@[\n;"nJ݃69YM6W FC>[+p+-kg@T'q/xGehX5[1uvGQK-Dx#e@~VK1J,>`Fh'zZ!~Fj=`(*r-I]5]2 ["3-N]k2)7~ܠgGN2# u5Z*iZ s9f55 ?8Cb谆y~ m2!N\ە|20-^ft2&WH~?p=PD-Ċ>&CIC- ʱVJČy& u!ovp0Z'cķ?\P{IP aUȔ9ZpCO;T'j*>uA<$9)4> ȁʀ&"(my?dd5H^Cmxgٻs1wmͩR3%aM6y-q8 ]WQ1h@Bm*:aF|$N;jUc Tx p%N̲Ѕm^,mrQ!!jĤsgH[l3dB[n욝c&0aF` cˀRC YsFK BMa_, ~< )o4ҏ—3~BFf5`dH]P-T $O`:d~:;H~2$kȒafsFm%QĠ*&~lPH\$8QTy!ۤTo+4 =_qQ=w:mQ8qiAI36HQvR!(j*ő_F:v1 ."Mxkbj6!%`Nuck?h:r&W:erhk?٩;wêgnfRav`E;OE镾~ZyJ5f*^0 W tJ+$R_톈_;r7t]HaúE-<q,?ɀeK|ƭF견%T&rN`Tז!Qw滎G +Acg?z;92L^u-y1ON9KUzi}l@\ٳ*8(; djcHa; LeۧIi6&8B58YfDW(Y\Em6Jm/Y&\rmm٥d&(7zG*@2jb߃F &ۤ&6?a~yQQ,L&N!fʙn+%jE[eUtPYB᱗vkP!nh_`@oa/*H,&fD О& QBҟ jŇl5~PIMiq%O*)_ /cRg= ?/!o8ؐ+t0S7Mلv7gЙ0f+Y3Gz Bkd]\T!<#+Od%8 A&ynjJ]@jr p{]mu`.h$E*:D;ޗBIĨj$@gM8$I,pXC3 m@Y s{h8iHGb+=u6ɂj[4YVHktu@YYB6o-*!k%QY^鸥pY\?=`6=/-Xm|1BWriSS#BaD>J]…r=bN3CB+T=mvy -e[ssT!nfQ/S5W)r߿=_78ÏI㿰x\P ۱.ZS Tg i}|P9dw]/ `Y9SN2]TYh5F;ϲVvI-$󤸬zMې܅s\*{݂4DXTe^ =+啮sb*^߰h=:]ȅ  35Q<`,Wa b7S鵷t]l'@i -ZE2', QzR·`Ő~c{:_/QmH4dA,b?^;oд*d"B_%ER6캑ϱsC"əD"B>j2?;aj5Xk,\nA%L(a'3L8ÚbhT-5$id(7|:zmZT*~O&g{%h<RZ tuBH\%o[\ZOœ)"d6AeBXOE鰻~Ίx:Ҩ(P2Fuuc]6"Vs)aU I:h18@hɅ :E~J0;D*i\ ~hZ֢U2(.hgJHJXp*OB =cz80j`ǾVhG^s낆 BnI] GZK'a].2Q#2A[sh|l~5f7.<'NnD$/Z$p7;ez9 0Q~2uiO&9+JFz9l'%۶^#Y{UvÉ~[-gw/.M?cM2qSy;&Z k$0g`իv)ְAk),(#xN$5oD)#ۼٴzx(X#,0L^GgD54ݯq]4%=z+FVuAe^a:uO#dB2)j;6ϝ=xYŲ{i޷DQ#b _--\h>H ѕC* Jux')V?@Y*Uߎ*x'lN@q58,{iyT[<̊Xgf~ )\CQ¼}n "3V fDSX(Y4˓3츶tuC|tq \e(߼dѼxKL*ɜѻ7דP܈DO;576L=s9jI* c9^" E]6&WK ,&y3:HO%"E.=1y V;[?H&Bfxfl!ʾR )uO)h~µOYnR§b(&@𼋐٪Fz yEKe|F7`35!V.r8U@]eM̎N E{m\\_L+jc9]FK˼EpJ4\L4 ZZ {)JŋB˾qͯ A9rN}r4Ng u-l}B#+` lޯa>Djۣެ2na\m™O|_zB Ka)j'(S]Kav1;# _;9˗>HszQj?azə-.$+8e-roD8bȑ>y3ΟiSv3~9thߦBo䎥rq~7] m ~윤f(3I$nM 2AZ4hl'У=ӿ12Ezv޶}s KK*c4+SibՐRI6xDa(8WK>)ζnuD7ڹ὚((5)a='7Upg4Á~M\9d Q'>,Ԍ[.i+K=ѵ)H/Muq\)cEB:V2驅en,Jyeg,76R)]B]T_?zx+5%Fm(t]9[C|Zvq0:@[A9!9|˹C$GS,ѻ>|v!sYB$΢2srr԰ '' C_鴦ij!d9ly, f«X^}b&:ՕYmP0UZ[a ^/Dr_t %ugo]"(=B&J7KWѩss nŌY!8J>ޏ1VG,*;#6E'F2fP*T8n*0}R,!=+Юw( 4iY'.=#xݗ}S8֌{C0IX0pN[iv`}H.(WtwGwqy?LPd*N$نH txN§ 7 xg;1W}\H4Wk/9 W#wSMFH&7򇨞*/hA#˅RQXC,r Y-CSlǚ>!qTmACw:@kBx\f:|mź9Ǣ:G8_q O`I,;|">k?!W13ܥA E}RGE8ueK64e);J?K0tr\6rS+CxG/ uCFi&y-\!baBMYn5 <%Yĩu {z-ڕn(h*lυدo1(Zo+&O'<%5Sf 0.{Γ_Ff)m ucҚ1X ]PGT mT/< &6Y\5qu{{W2HOqsZ{f| 9)kBu0~>hqLTN4#OEa@n#)u#'+9//Ι7hMQ1xx%y_h0@qlrw\-X/\ ̇ kJ5A ?bH&'n ?|Rea.¡,@`gZM=େVdlްY c3O4tA瀞\islЃA S_6Xg[6]1׵բS7TU8v,Cq9EZܜVAΛb7sWZWh] J!]݇ӗSA-ӫ{bjI󁵜xL:C¥V}%Dأ~1'r!K闫B&f}tbhYl W#cPOhE/hj 5k![qxŴƦqt f9EZ[H,Lw5߻pf>)}d2VmI)q&$C"wɆWÜ.\_7AQ&߬>D}d ]Gu/HzY!*G[>1n$Hoqr1bbKS30imHtt*"XE6TI_@"NV:.sN%6.&6Fx?kOZ6QqHtGZ@_UeWk?o =Y-עpTs"vgXpqt|s{e9eר_/.-j|l8ҝIHp;\ C6;::8/=ۂI\$S4VDvk€o˧C}c`,[ MrQwOrS2?+ ʽ\iO m}UE?s9oH)|N'h8o)cPN"ޒBP!݌[*?s㴑 lk'|ys51KAªdy9CڳϳxJ7Я]GOE̎AI)P7(KMN#U I?RD3<'ϔ0<CZc&ݨ_jr} &UB؍6{K޵1[.ɯFOQGXz^찫fͅ${F9혟\c}3cBA8r8;nSy1e>A~M? LZLd@M?|C"a=l\1ZZ\ME|1oČf)_8%ȫۊI0VNOHl !9}YYe)15P-/U7)=*34H?-xD@M8|%V2di n0R8:ѕ7:;٣ΫSJ'8&0/@%er}| /;6[U&B)yQ2vEƗ*JVHrCx`m\[|^]R* +(Y$A`gDWQ94?%j*'o]]R0MMWVc{F`N30b9¯_*U#ԽQ_Bmʦb ,ʹ2JI/-RW.`'N3,ڼny(GM$vy  4/<͢NpUyD?YmZRjrYI` T޸?S⒍[$v|bq,DCmoJ5+|VLRsե pCqo%˕򥖌ʹӏnIh;KALBJO*\!ld(XӅ텒R~371[m.YQg[DSVHvsD,sIpPv"g L-n;䌃\$i㪒R7Y0v2"'k?S7*|[hYD φAb]!7wHX^a<σqGA3Q7bpFFSfeZg>UW 0 O^zާ>F47f"QxJȆۂt5+wVG$r!-ȹⰘbA rY.kܻ @3ěb≛?9|\o ֚_]8_9ɟR2qx9_?Þzr;XEC 4kPrI-HnM$sEaAAL^P>LdY{ LWqsˣ*+Qm_Dw]e |iuCK]5*Gi\-5p75Re:X$_=vAܴ-=s~pG+/gE#5/~{R7H$ :V5=Yx h榺yM2 YV~ϩb4KG_.g17!9zy2`Ll%EXQx$}lLif8kk !2hA$e:U׍qH͌t \ ۧb)Vƃ^c"-X={cUvytC&L׊j'g< βP8 hC ۮFpw0Ge6 ͢G]8 :AvDlҿ&F}+BD`;;`vVtì:Ņ$ˢ- #, Å,T"_m}2z,gs+BaFh+{_ї*8HT@]ͅi2 ]y-QBZ7zb0G8a{o%jDΚ`EF9U^&;ic$o `2d}vH Klr3C-:'Pҭʀ ډl?ghJ[j_:Y MJ?zrkY8{9APɡ=ջtԙk]^=dR敕m/E2x33CC OyV`?38[vPeIg\EsEy6LwC!YHj)g-M-t?b-6p݃\C ]&bFM;I֡ϓQGC.=Wwcʵ๪#~=$hOEշ[jFډP|D93lZ*vKDս|=+vlgY>o`/e.Mn̚Ҧt첅\-.Ldc!)}.ؕA>WgBK[ICE;M4MZҐ;gL : jAUg E{,VC wAbE/S@'Q\ہYLئ&)N]?$44T#V>ɇgSϻ,\v CEĸO:RQyGBLڧD<@+flF 0}Sj99(?j|[c+"`EE<.A;1YKPq 3)e}7qcy:%3_׷)$$u`' SMH?dJۈ!A2õ*TBK f*hPpeEBr16 >BP9 /@L&ImQ\u e]]pL@ +`]/UFo>PkIHB!eǻ+ IY"H.0QBGiP =;rcH+0bN~eQɺ `X#0z(F'LEqT9m$d"%bلnNJRh1qw եgMT%x]D zoh=NiN}@^lV &9 O)g x WvJ& 9I!))]c; 7> _+<2" Cr9/ L$r%WftgfQ~Ӟٕܒ9 GNEc>JiX{ )* "E mߦ@߫ NC5;3N zWlFlk5j߭nե8*7>4Q ̿ n@|SH%WwK=By}7Ťj.Bq-jo_4_N Ӟ!XG/ʵװ{EHA7]V׳K" ?t}W}[hXn\?)x)7ye(T+M0bH[_=U  O(L<)!Kx7XIؑ?ZxIp)ͅHC}vl3^dr>]Rmq“5*}&/ <:ܽ%#xz5{Pï6_ "C9_kȼ"qN Z_5)XςVIfVNIP}Om}^ŽA{Lwc{#C[۟`"C}Hm:1Qyo:!If,I%K Z6* {)go!;Kmښ4uj8Y$ dHI:" scZ9"(袠.>TJ*d$ŃDPuq 7=:k$RFV-o6nw X&olsU>ՀD]XCNbn*-)0][1~4Rd~Ț` Kݫp2LYdKfLƅ[4XU9Ū}>j_ޛ&斶d=.vtz*>{ N[=Q*I$)b8LHom5fjsURmy4 aޡJ U zNO)%הZKh믨h^jIXl*9 $Yi{zb!;WWF(j)=A?^횩Mr =-Ǟ|Q_="sc,4~"tNo smS4} &byD0cSݞe=J߯$rt٧zEfptE]Ʀf C؋c͂j O.%gmVO#PERS4fBug(}״?'/ŕlyvR[0a= GgѪm?{֚ ݮe@&33GN-޾iU<_p] P0Vj¢Qn iēIP^wS4}P w蟐Q v Ӿ8lk|p/dU?\>D]K {omC^E@vR\f{SVa,u5 j.U={b/Q B<9yAtl6B2eP /fQ=a$ 4_ׄGl\U6nTZD^|ZC{`"a+WYdj`.k(:=A*`^c.IM)~c'ŕn4A>hoB9$`]6܆B6yꀀ@Y鹸k+]imVU ma$1єkVnȤZ iN~lwrloX<[^=ew;$jrm#*|^bI{ƅq k;١tMLJgޓ dA88AW>$,/A(=e1ǝ1}%uzt ^71=;G r.u`CQ BȰ&n'< 6w*xl@ideKdK! 􈆼ÛjWC|<0_tnE 6`2W,ʼ:c~9]Lf/kHىoVsUu3|ߊEaw)+7rrXVLS 0Fc&o;zhkk\u8,=( OJxq5]K*Ӵ$yJ."AY^ loCbb\Yz"1I0\*tDCD#1ԡ,AS9Z)i.JMs&KRXK"8LKXY\_]D}؃vhPđew-\䏴 T*)ldRaQjr@s!/'b{ңS[Ӄ!ċOmZTGKǫ/rXV3V>QKX5Ua -/K|(> {p՝vImHi/ 9 {4_pYq? i{u.Q;[Fw^xof[ C<"xh:DGDPї ͽ/,:r-~0~y;(H [$6p>x/3!]Jlhoecu?ߤ]MPd'j!cM& <2ӎn>6}~O?i`R&u"6\xN| uU.en2tX !a˄Tw¿" =|C f~Ъl<_k]p*N1x2S czlosm U<>łݶq]ifev`7 =6=NH` o6Aw:h 4n~RXqE#DP{?U|*o%ndZjewv@L>҇)떦E`)+![ъ;`1ωBN~ |kQBl泺_ *?)r@NLlJI_L@Q{%ape#CRoP+ZTC6iW"ZaQ: ިIPɼvrQ2ed Glf>]sb 9\rKh1h=s'AW q.BmAe$`Đ -Ў4j {ش scU39P:Sks1̉SeZaA:hgWȃv!xҗO/yb1@}+\5#8nH'۽Ft[6s'Fym9_ֽ{<(5h33\RV)pX$/` <H[/H !nDz  B(u|D~nh3}Bځ 8҈NPx˧AQ1_0d2$ t. ;<7`H2mB^NˌV GzvrD߯LHT b -UT2Ь I6_ݻE^+a駛S&R?R@mOHFE9OŢ ?}*ɝxVFөRsIfڝdUK;5!Fe|qjLSFd(AǡUCFvAZ& ª<(`aHQ_i V.PIPAd%]ܦf FjBZH[M}Bh؝uT-֘BUe{p-l<'~YftGp\zi*-g] ]a) ŋ>{<_ W /77D0]p~H^=4kv;PwΒt 1lM2V*g?As}X63l]3e|_9 [7鬻)0;{̽>^! XeMT9XDw*09ά^{ra~08pIy W5avLh,C,h%k^h2TCK km=+,\(ȀQ;H֓&lk"+nq'!r{t}:w!οuٹ`rp~Ճ_:Cþ.7lZ]L=KCN8kIE]7']ebqyG\5Se?uwАz7~v|Sv$;MesN:n?\uMSVqumi:jU%TŽ{[٨?3`4%ce|C/1%B6y^k!@j,{rԴLno3*X0fR V(#bK*w&<aFMZOo\ͼ&}_= J:zaU<^[pi0 N]yySaI!Bd`DO1-Eo_yU IґMBj Lfr26UܵstL(]S[H:˘d">Ɏ6 s݄;j&SSk!HGkߊ,H*lF0-ÚAýi.(hn=BҮF*k%Ďx]N[t5?VipxQ^f^n[ewI+J 3ک9/D?r&_6rZ1ٰY,W,3ly$-h0IWo%|e p=H*f1SHS7G5p@&h%~DgMiot#Y4[UIW އ?A+$(ކߓ ;P!ʼN-)7<[ FBi*j0a ,l5<)ze`.Ot9RYČe3;mpS@~ ;ﮂ:[4W0:Tz_|aǒ/:I,6oo,i ˰uRx'vmmYtLlRŻqKaShۦE,1?p٩UHAgɻ'8qɸ;M72dy2> ʟFoJxFK@VT0OS~fθa xѩItETsv,F5B(/acMrX`@fkȏS"Dw©U*ݙ<i?%%_BYW>g ^atn?{h ..BԀ ~5}oh z#?X]ŭ\N:O *^@S4*L@k|ݮ+& x8:;c. fA+#ZT8a,$ہYbL!y%kܻT2Z'=e T>k:zڷ*ev}iAhoZp݅]b=֋ʗ??=r"8]YdWG@uũ GtmkOpf(5`r i#S] 9Tblc'kt@gᄏa8_=JBtqK|׼ Q#NjGEq)RIZW!RэP%E6:vh~S!&b !_`!NvH-(tcC8nξsO!L#˴~TQ&nh2J̀ykԉ0\MzlB*∎Q'JG O)0IZ{/Ο0ܧ]AЊ^Cڑ{j[Ixq,6)+\L3IS|R B,{pe@ E$3PuvP^WdsfS^ի+L|,YCyc9@of-3ޗua_,}yS:Q9 >E*vԗkb5)dz?G/*  .O|Zmӱ)$Dou 8nJ 5Rή Qw`k6<`Τ=g<) 8Pbv}mirbӲ$z4&?&C2nta?۩s&NtӀkf=NL:-oşEOFw h9kh ;[da"!-j)]E =͗ x 1,Bp%8C_ouՄCtÈ$H"ZtZa5ފ>fa~7EU{(euy WȈ.RnIp#]fT`EP鑍AïdF0lN>?A8XM9FeumF=A^ 4s_tigk(2/31g3\&Mo#]#/VƫUq;4WEBj3"UgWbO~]ZlFŠ^U5MѱD*Ȋ";C{sUmikC.~y)"zqஇ"QYqMuRڣұGUJmOWHtuDeViγyelZ,_4[H ^^%uĆɴb e~VVFY ])SBְ`ﮙ >[T/ǧ1!GH.KwkNL[i_r@dh\C/Q4/"Mz=jWYfQ5k3nۅ5ĺ(++rƗi$^-o(ppjl_վmP`+Zֹk*o=>)sXEAV *2c}n,`b/"*h[GzRD1W,yѮ-GƊa@3.#,LFXXM1$IyMY?kR9 ya'6 ir9ABAd搑?)6UpnXJ DQ$}eX<~6 n J Rn I5&A1d*KaL?쬁$4)D^lKEw hײA]4XMK&0mJ%}LC(oWC]Iٿ(ncYWRrɚg4?Fz;`Tգ5%-jг)-)JHڰYze8!Ϛ4,ƨAڞ$W)<*|qW|Z'+&5u+^sGpiu;ü .Poe\% 5_nF0 хk{IIpmH /}I )d)Ӹ?XO2>?W.Pec<E2pZS.'fϱٝ0gg2MOlkB֞ ??UL=odUy~!J_"F!G6@,1>+Ioޟ]lD@oTH,vG&I皅rK.{&t,\5KnM3bsPpnq P00D&{ _.IDrX ZxD-J({j!:+p_` 1SskMq!D@'oj0q'議ږn E']f|vx<m B8I\F)/+ "/C} |:wh nf3f8lX ltZz|pR'}`1~!}4W3U t;'g@oɦ9^H =Mn*h΢FvIOtŃC~$;7V[0XG̺7K̨P @c1v]yʦ%V"TW@%D -(¾OÁ60Jb"%ı0ZYwri ت1 ٟRM WOPķRh)vLM@#LÞo<֮o/͇v*ZRɂp),)L 7$ŶV ؃cu"z%I^A3 a -cu/r0 Ad ID)B1 Tקuљ_z~φuO YtZ`e8 nx#ċ)i4K#3Tp& b}$;n!-a}n%(3mVQ;QXo0($$˸~h`鯈pa4DJtaNf- )POLjH~PUe>@b*&eY),&Ib`;K VS bGo8U,p\h85EM386\" e۪Ļ?ڊh$O(EF:G˖F€4>ʦu e2/*yi6`.S0~?gWL0x"Iu;<-D~Cv+FoJ)|n_R$!(ԔGR7D<|zo Wᦰ Kw]e&5J36Ne } 0Hv7}q'Aħ$i (&zbsRԎ7}ۄ# ^>g:!?xpQ)VVՅsQ7`m]2 Cևbr4~qW;us LeRxzPNČ& W;*hV'Xy@!"ӨٹHé6[֒',3C!KEuW ^J, ;ED~"'f9 ȯjH񇥶l ל$E*oַj keh֥5%unhj= p ]@Im (^wPvq}-&pԄjr.c4.уMVq]E#MIF$tr%>lu68LQbR(2F͝40L3)'2-odqQ)rw:˫j29ᵇr-H}ww7Z@Ⱥ~7ݵk qϖ3D OUu|1*e *P`CqLۦ5޵U%FG)xB<)1=5ڜ܀Q} xmfTSu9RLV' ]S[aj_E˞A_\&`e/$odrÎ~dXd˟,/ +hy*T4n"7ߡhGB™QLh;THi^`$56fD"[%xuZ~>Ktj/"C1P|%sCƴGkO*CMIeopSA؞OI,>S\Y"@-&%4SZݸ'4_ĠTf- [ .b/V5/>?a*,}@I)i.<16Lb/$m]pkN(+*VZ(QjHZ܎Bm؁PϮK-fSc/ׄžN:^OMpq/^`5ɚo&&u }7^D`g&F,)0򫬳ku|bQf2{Bn8]C~y(Ϳ2\@5ojEA!+1w2W5֖9(Pq+*kU͢CD| mnȐB.+|8-YD)qqZlABGT6?Ee с5n7ߺrj'KZeyJkcWUgnŹϡ̓v}  m?F u`R6_oȟGT%`mW;0dR!89`櫚 BpĞ ;m?LPpLA<%Plm:a:6)8PH4b/J]$MfZd5 4o$(cB/7P2*8xPVX`4Mzu&H)瑜z7c K%8}AJBP_^: jVkS+G>q)/& X=_y۲/ ѵ}ʯ ,Mqa %)tQ({Y}ZrJ :EYtReNfּ/ʠt,@Qh1 R(53m#܏#P, n@Mpߞ4D c9=#_.0woa|doT #QJh8L\oiR!CTuծ O2E$K9 ,=-oS& v,~ y9Z'@G<0]qE&'Š!+LOa.?T3o:;\+zt_6C&p$U3Qj ZBJ h ==jc̻|DdjA1Wt> \B`RPXgsk!kJ2'~ELLcHB6;IWn$\׬Z5?Pȇ *u8A*^KJI" j$ wmܜ%>8e\#D{_kqѭMvrvPKqh|hf'WbVVFF=*?Mފ,ᩃaWt r>/&.HN+gK5|2-@\-C9mRt>Hg q' s.U,w'6yP 4cHQz%N MDyʏ@R %d-'bM1X R-TI&Q:L|BǪxng_':Pt!1BM!$sV?2j|h%=o|ӽD9+CJu]0[{58!-U26= _go>OlѰ>0}޶($ג8+ ÑyϱyVK<_Ђ%\eLgsɻbHb.<<\ ]>p&&e6սa{׌KhSkm{=^F闰 2#&M(HoSqYbz㈎n1ϿmC:%L?PL/O}ڿo luu9'8C_|)'h]ǦE!0˥K!~Z{0i+݆BT^V`_VPe7nPDJ^SݝX<(3s I(/ `8gM޸; Jn~oѻ3C(lPmWvY9 @Y!ez`ڝh ݦ&TKZא6S?͉F%NjE\صmEVMuqx|J)q@wKAoD \W!_ֺREf,ø;@K$ӉPAe|`=~1rtڇtБ "VTC!RqbŝΣGL<d&R1P!Lr?=LXR6~!uVpӴ1^BQRc#ƕQ [jMf`BB6DTHX&YwqiITLلwM)[(-&5v ;wNa-A/hTg"vr NQbEBkY5t$,thoqV38dr%!w{>(D$qaR33Nj-W?\#L~ ~uHgX?HS Y,2/65eKՉ#rZwa@jdRu~3 fbcҴ%S(Ƨng[#@iKG@/ՋDյd!/«ݢ qqTp4,xʁ``E5Qޠnr8zE#ACz Ҫ. UK΋Dj78#D%儷t}DQwtQSv&cߛ4S{]6x !(U^ ܺFNNdil>A'rN _>ɚi)_p_łwWPt5WHV80U{qX~GiF(8FQ.T]__3|UB+ R *4 TX'JtG"듪ցm4Dcn WOh? MǃOvK!=IJ檡\Z^Q#l$Fhrw\,t}na/P`$ysQYDՒ{&oK2Պpū$Mp|>5^ԇ#nc/,A q*}Y7-4I%,㌋D~ c@4˥{kJ (,~%yv6ZX'KL€2ր$j0\9tHU`rm:Y6mKkL=f\jº,#-]!y-jOQ xqFQthXWaz8NdP%+N;B1 ߙ4og"dXNRC?Ν;P$o.ou7f1v@[c DnjH*.yR>rX(n^t`]]=6?GUI\Bݖ38Oo;t{־([CZM]&gA}62qsQ%[ ?ߗ= ;,?TII=A= UmUj( V{l*M3s/IC) լ/n]aG"=QӼv~" !1 uN/ ۍU%#$"͞Ğ5iPP?3m1oGLD#kfsm [ w<)G+A[9 zv~ 0:s4{:^rOmKXgg|J' 0$Tt! 옍Au̩Y=k : K1>i!2dj.Mydc=wń\И˂3(#\ZuG"&;8fIad#ψ0E]b޲"3 `rUJaÕǙnqS{2E0qKxB!QfU}q!iZ6wuQ/_s^-";i].'cոOƸ*N"|x"ks6WFO7E@\\j,@ԅ솊BJmEP)Kr{eFxkKc7adW a`2[ Zʙ^IM5G" \c=CZ^/Fw?Kɋ&b#,N%~@JqnP7WRE{jV3d$M#2!Eƒg\I7+`╚f'h;g3 Pڮ;bs[1WȀlUJ%Y:ͮs~f?:ACFԝd uV#6=dǜ+! 52><o*Ɛ2̮9mM?"!K[EYJ#}:8%8vGdS,YPld܌\[kvP96J"QwT@1R1ŗ]1 E0sO%W%=SM1ʥ$*И +IZQT2:RXbTKH:IHlW[,2skB [Ÿ@cb>T'7u 9*A)-T^HP/c`%s#+U7N ~ʷH/靌msNJ|s`ksII bj#ESMVX{#LOΘɍg)f$̭A yj/즖SS/ƵoP^(v=Al3VTJoe)&3;wVH[~TT ;̌^>!%WR6pd"9>ɾéኑ\USk&ڀ2BzYx$&4G1@U٘R4G\{<2߅d'z kOK^ @n{2j|AMkN7HD`,vUqF[l$ ă _PhO=d av aEGe&,IoMmM[IX)7ٯ֎hB}ba{/B ^SOF6-m1#Hh\4baB?tOuyNv{,{6SpWl Ҟ^. )=;UW\ >w/C; #2Esny$|k' U2>Bgׅiqd6O/2[r-郞]V# ,N׬iNp.ns "JximAsw\.jT~jWeIq?[ !b~S tBw|'&,Ѐc5)%p8OdY;kdѝ&gTә ۣeMͨfzS|~ji-̺[ m]DZkcA uqnwXsz&w7ªNdH_B;}6&c ӑn#_]RσS' !bHT+cG_ww$+{7.W-؏úh#+F7gqT]99YKFo\":z X+ۇ=;v ~+W..j?Q`igJlRqu[|^AzBUB3bkmJp"THTS/Ib:y)wcCVvQj3Sh!RE#jF^ XV!s^"'nHsp?SV=s>`r;n^I;(@cx#=L'vWh4H}#d W|EĤspDvmmo Sy{y r4=c&̝dkl< vܲX^㐇]Fe`cxry.(`g#No֢w;I E+)8k^]|7[-?OH7C IǖD.;GMXmimu=y˸ so8ZΈK6C. <阫c0w,j 8.]xjgIV0pvkxz${~8e]JQr5%U$įVbE=&n}3硶xU=4MV" #[A (oK' =r͸ Q>#4=c*"3" vuH "@vz QofQVì]&ǟ U{YV~pvW`Gm1NY)ZRE)dy@[%sB=rd䆃Yx7W\BK,=ᩭ94jjJ0#~5Qn'NjIVZP.ITêiIVmEʠxPOS)40 2Rft,^oo?1?d@I*M}|d3\h8Ʃc1, f5  Ȏ_y fܿ(8'15Wq5K`RhvE iTu8XeŒįiφw1vs,> HL/yʯ/^xlwsڿ\}J!r5<žQ828Ae̅kϯ QXqF˸,[L.T4>G6¨{D5K]ކ{8[B@7cQ <4 *r-}k|iE@ kk2p!0繒4_M(5~air`rkAMJ'^i:vkmخhx1^ZA';ޟIP[pT3FimM] O `2 y/lja*5ooG뼷zZEek˖ǁpۉc ͢(L_Emv9)ۏRCtb[ϒnƖ c0w&ICAMFë ߕhҐ[1S,.Zwm;*7PfbJI&7o[qD V>`*+s+t:ء9ZϢИfNE@ ɠJiZFDi# b'A5ew<,z UЭZgX3*evDF9;V(+gB4|{o`KVGKetnRQHyYRop0:{Z$8V(rp KQ\u1VkFq^KxڝI Zz d"v=)re`K7!;ٯrI,9gN&JV?(NoxQy!z9+ei3R\LKk#>\2ϤUu3^zOwwX"]e5vh^b\}o@g;W+?(~wHsBS#H!B iill nu'47[*^U>%AJ(zgW9!2GJbI prN&Zv!"Haڅ+&D=Foݪ'BB~ƫ=,?b^xdk Fr(5(ŭ^$+`; Smlz qbMH_}k軘G<{HE 1;B=al q\xL5/kmD h 't/PuPJJ񥢻^\b mtɜ?Ęk҃Tjn@.Ҷ.aRL$pDjR5g@ " CLM[Z4L_ jW&$i!f%xmݞ8F- lͥ+sI]4t&b7 uff 邶,I}T~ N9`l\$n{q&/ "RVl U)YOA\rr pS4p;!ZjBvM5c Cl":6j!t$AoHF|p F|m_BC`wxViMƖЬlCΛcó@a$L,W|Gȣ4v--8чIғ?O #vم )DCYQ\#RX,Y^3E1f k@| Kzظ@O1NhV1W$n|?rb3v[\yb^ߨ;i:MY̦A 0^c\~WgFnFY{m(h:8zգ8p?{a93pwg"002Oa {0ZK#Mƫ%_1GS[.]qک`ctgVG_ jP8qQ00f!:3 )*4꒱iHqիq_ϸ;s` hw{slQtߎctJem7)b } !wQ框xxC;W-fʯn03RZZL(\T+D=C wn:>3^i2aBk?ԎrN\YM5?9͋Q^4sїǰYQM0SѯZp6]aI+BկFĉ}&fWFY`J:=\z3?'Ř~47*y46#I?WIӅIz4a?9cj5ߙo ƘЄW:GR׸n /FƋiB+C{&h@iɮ w=:vz#*1pÕV㢆bzK~d 7j^Z^$-tB9ZkvOf_n{ex(ӏiHO:n&҄۸ %稓ypGRzS>Jh]W|V(3EwƬ!XMT*i wxsI",)[Z'=Sl _\*qf_eNv@X8eePpV]yWj>fá Maa|;IՍ4"Or/w ;(-0pNF(nZ uJtB iiVi0Q;Fiha]+1bJao{ XRgj FbIA5:byVx͕j4J\3*Den .I"Z%\A 梆cd+[!uSt[!0Js}DD yð˹n]$1Ae;~(lOb3s>hvP(Fjߚ F}ꪢfGm)֝A%tW>Myh #_%uj!a_=@˫ǵXJ7لGRY Ȣj󐚸%qr'fx׽ Q 4*咒5 m:6b_+) c }zo*Sny9P&pL۸'ϭ1 Ra.T,MXϯHTi.FM=̱ &cT}iǀ7".- Ɗ++@Cӂ0E|a4׉ pxЌ"+beMތŕ׬:l/ IH, o!FSՖ춁l`Sy|WX0=Ү/(8>,! &ܡKmbqtJBr͋i!5 b.F\*Bth0Qv$b44&rϤUd!N KW]fh{Djΰ!uf*Op-G}x"W!dXAꝇg883wgȷlҖr_NumSbp|Vpn1gY,w~k F*+7a `fER2~MJVDZJU//vhh'k^Q萦9J 8WS?I(RzιdVqvXP SxoࣞY͞ocnd1WN7'򠥪BVTSϾGBB:DUX no*ȭ@6%qV-Q3z %.s_x%% ~ui:D1ϐy+VQ̞zȝh/{sRLvW5idR,:)e3YJS)ŠPqO/7FP-rZ1 {bqQTvP[<*]Go Rx90#=ޏ("m}7#A өQxӴ_߶?,EU{7jcף:œBٺ02#_';#6ڛ;Q]n^MV1SOdm4GِȊf=*M:bWmBbKփƴej:^Ys%my3y]?T=_wi}(Цp |h;%-dZ֖[}Srq ؘ6' *ܴ+ 45{Hjy5'i[u 3n5/J#_׺x%гv/jrFU˔w%CڻikMF iU1A#G4%H s}[?N J^9v+ŧ  Rcز%”} _hD:rCk_yOo:󽫫})~zlV:^cvξ^'QV?e抗_:BYV0MN|B3H\p )9bNPy$*> ֈϙ sT`v'pp^~|=yȊ[-ؠe=vFq6=hIG'Ȕ 1]wNse8HKlwqgGQ!,sV%4(ZG"mL>ߠLĻT@Cn)xNdXmԘgD,}ΐ{[8NO (Z"a$ 9 \N-JĤhak`ȅk/x 1D]/̜+/Hբrmx$3ǣ-y^*4$9dxgϬN(20g"LqkvW1G%{x DQ) cXNylPgC*| ,rF; `:1T"[o5缅t?xVK]Oqwy67y1-XPJc9Gǿc­Q9Fke![M=6kV?ƸjC3*bܓ=X@ؕ\Aڿ6.0iGr^R-d]3{1Ⱦ|꾀8 ډWZxɝz=++ /5s``gz*_j:lJTHW13vnbL(;;_Rv\/+Pa RP fu-H'؋QcltPacZ"I!a 31Hb-9q0ԡCIwE@1{|-ӑB)BU ޿o[Go>'1KGV3#כ&̧8Y6`obʿ,hi6ᵖ1QI0@p2`_/@*?ʆk6} o٢9C9H)vA!0cV#䯕ŀj3 ]=4iSu d\5X+@L֨BÏ6#Eڙz+ ?1:dn/%(a-\ZLRuu'֐#e9X}ZoGUD\3+uK&pY?ƷGjPme>S\^J M\di ET.(sUjH6"I bawloGg.^6% N<'|F6KްϐOvLOI?ұ!q=?DةoMq~IZ2e7PQYQNxo]Yj(y1dYU >1˼Od%Aj 5$q(*ۨ']g}YGVJVpdJ=)[J+9Mu6S&l1.+hC0T1_\7&<7ޔ =pxZ/\ ҄ژ3غF^H+gh,NYo qaDe7,F]~i ?{H,#%g(b9,#F w . N􉻈hGJ]tQAoy[BF^ FrȆrͩKN bOF#1;jP!@ 3Y7?v"I.V깾VXkMJ9\4/>Z3ԯ_b({_WӏzU7~<R'TZs TvL$|wMTg:?羄ǩa-း1$9a,c7N9鰋O*H$+}|ꠜ;;]P0]5F}RHQ6i ۖ|!QW\du ]Iן*U89gYG Y;9lWl7 ʇ-BH,™188A0/KT嚋NIRˁ"4g8 mgYA<5{nq!ߖ^W4ۤB\-__OJ]\"}3Qȉќn:>Pe,A|oˡSMNZ^y(LH_Y*I-gesB3j4w,#~A0;bQ;T`HQZJx7p8E_=f-6'lQ|4&sehە DG }FgT߷J@x'w8 d% ;@Dde&V~ioOLZrW'+фr>:8EH/=E X  uth$u<wdwoVt<= P b9hLvt=VgY!g1Q{0-'R}H.ahWCXC8,wn? otu DaG0c=Z[BXJg>`CbL<&i{k Ȓ9 (TWs ףNK#uvy&B;E'cV7W/;5l[{[٪.WcJ0ˠc<X$9fayCcv,ozt[XLBzqҾuΨmMzp*ag](ieAlrOv' &ϭ6ojW2{6#'|}]d,h;'IXmw|ӺdO slZ)i\&YpaaS gXBF7(IS>SS+3)»)fzT(4~i3G"Q6عuA]As 4c8?#lVO/9[d+RR]G5M-%I$}KH,$aoyfΥu`;/mɝu6'cj 3bԔr 8e UILeC}VTT>pXԇjGK`.a5+#7/9z|pG7aK۟k<jPe5BYLڊYv0T1X``(d[j_i}̽18ioZ|)~xA;xq )qE+b~C0fr8/@m)N« ;3oslZf\Q2%y%@ĊGå|vS-דty="1̓<|f؝z:AhXBx A}r̞ oۮ'8Teg*o*pyiTJOd¥1<&4`'"~Dt}:q2|jkz!@:NzQV ]⹺/BOV̉X|GKɓqe`̙ H~:1iҡ4tvo8R }TFySCȽ}ۼ%?ZCm= SsH}\Ũ0LwxUX>hcD&몦={GG⎘o(-ic+CS32ޓC\X{] 3vv`K^v"YO`&\vY/8 0LwWA\ߚ8Kj2gp>R3\,K\sGZƼT@;JzxE17h @ď+B06ŷA'M^p7:~|S)e!y; D iz8 <'A(9`S]F•_ m;G _ Z2PPˀhPOiƋ1QfC3-G1;@$hJS52dI ׵Z?5d Uo.!/sɑ ymTXSƩEa]o\!U ê;_ ' A"8ڎ7P $*YMeL[}KH\!A**: z4`nZ8Ox[ ,pg\gϼ/ɝ̷n0~憛ԡc{¬L4OCۯ XmQ+EP4ouٔ(IMQ_o6.-nR|u*W}||]:j9>ސBh f`d\F7caAxv#E|>0Țy{֏  ?Y6lgr-Q. L-}\".~o <5@Mömm QbvFfŵTwiO[d"4m1k`$b os}7wIX0I[٤K73Rq%Ccdԙ/g/ 78E!͙bVlwT xc &W^̘Y]tpFxtv&'3a&帣B xp9KxQll>oǼ\ek@;ór^òPJ1Ujr=[ sBh 02K#SdPNSqY JPkEY"I6SauiO&]&N}/ _Xnal0DZ?w];B&h=a :nɞxCUOM}j5j=%n5ǀ")d4a;LplDV|#^["ͩQ$iΚ(Wpǜ?0i6Re%Ń5.ۣtGil0 PB oSbdiHW#[G.oMȻK@z"Vҳd[Wʡ~@bHfq9 naV2:*67S(uKՒ]?~A,'\217q߅) ?;fP>3jR<^|o͊f&y &cuZ-WłQ5N)Ό6V)o 9YT|&SnXD K0`.;\Oa5[)> 5<ؘsׯ+ rCqU5~m/LILw?`YQ$Heү,ieJc-Wg{R el6*^nR檬}[΃WÑcsKE˞ 5E6)t+q: Zc(}֪nN7%tZH4&坂&lD6t?1 #O΀I 7i]ɿV1}20_IALk5GT:Qg _Nb\60Ġk.Ok9x2Ei 2\Qzr(]A[Hʐc'ck QbB~n7?o`6uyQr5Qr uKǘ99W=# W,8 8.jJfFxDB7EU/u0B^/͜tSa rik]g!Flq\h`Υ4mm (-hے"Q[7jUwFMzl54&Tn#°26 UIcj8Uvʮ%)sm.{$gHm>Po*\V$:+!G~@@P%ILNѨ`~lFUHOv7~a!/T~g4W΢ȯ0FTșj6VFCizވq+؋9ECSvQ;ߑTy 9Hˋ?< x=8&.n΄Q$F.JZ#CaL!YP;!'/ -uȺt H{ȷZ+>ڹm>5s_y}KPo)"tS|]V&5CH\NC~xh Tx]:6K5 M_sy'znjaw#]U4O}YC>vlX^Fr~IFg]Ϗ"Q Q7!=WsK? ?bn?NϨ?+L!pxlJ1Ck[P}ȫ p Ķѩ (l*aCs|,Lo?9pjb$lՉ"ϲЕ_PQǦt:Y tJsL1xHPoeP/JC W8Y/ˠ\mӕ[,[{)sLl\ǾOz#,0}h,@ls}(4\nzuư1ZcT͒e٘`3m=LpaD[9= ؓ ebxCa;z]}At}a].ZH2J a`4T 3 7l4h2#+#-FVl ZH mg' ^S;-Ѕt V]yqY`Tf9\5Xhri;Xw?,:r:}*=fϏ#8A@k6o'EO-;;@Sm2PCwXJ8\'i~4"b<|"BGUl1[`}DZw Λy o9X:I8`HeX-c>:i[&k4x&J5!1 +u&Bd_(|V7"BN4F+t)lW{,Ej |i1MLj7qnyg?朎kjDPY$h\uuxRvPx[?F2~PWҾgL)m5VvƏϥQ+A66ŝ{@+7 OFWxwu+pR5lpȒqAeLagey WɹNY]ZU$}%-Zحprp81Z$Qu^N2kKqM X#I^JqѮk>FfxCߏ;< \74.q'ӿO?Ek9*3-ngy"HW Ξнw3#3Ȗ9E8I.&oP_ *ƨa;aK)̅Q: EZn3{ H (9rWxT򓙦R'aN.T4Ʒz f "9<%4w͎(^BE@o`$W`'@&% T7Ϻwt[5loōm^hȋL[#gV ="sJ̙-.v؊_{*ѓ3*äC#vϞXwvڭ^>eL<^)YiʳR2 D: z/ak7 hl/MuAJل^;qyִ7n^6=_-(=rsN򵾜,-/Vcv|4'gWMAB#uaͼvЃoeav?BɦjSKt &ix:NA7x+VvN?.kbx1.Lrà *e)H_+XYd-_c^͠!j md#P1Z C>Q}p>Z|oY~<:DSBߌ]Mk=xW{m୆*ݕ|.$Kg Q[ԥ)9}&!D(hw tTK gYy9=&\axO@{:kgZp}9Z~: Qz6dٜ޳fS%K|0_:ϲaiu64=`(tki:KiF")*"bcI,Y p[=5DbPIAu6\Ӏ 9pњ RXטs6\#o$A"^d! _{'g.bo ͯxFLdsor^ȑ1jy ŷ҇ek-XS o hup8F yd!||t&듪e|r&."A)֙Ru&#򤛦}W\^?=CaҰsPaz_3X|'>UBzj*ӌnV ||흐оT*eePWݚ O9ĉg 1C`vBnƨeZhf|7\/J"Y,a^e'^ otlxG{}^:s:sgur!׾-AZp?5u0c_3v֦M&'sv]xT!N?\{M^!k\X7_47#_8I|6Xc"jCH \=-qW^2鴂s'~@ھ$BRDWKt=*EK)x(g\V/ZkވqBEMފfCH|#;גN d &02hVl >瓾Ӓ!q,݉ n T45g d<+94 V B.kG9mmB&*е'A5G)=Glɓ]hDl\S8Jwf]/B3X#t>7h HP59ƙ΅C2dVUўV;G`JU4EA&(|W}'D;PkDli΀rx4;Ξ'o!MSqFAcyyt*cߣ@!¼,yL:y<_uygpe*"V6~z-7 ZFݎ\cRb|qOF4Z=U أJb,%qsʮʽ13p\]47f2bsZ˘k ,%¯)QYb[ V"|hh6Y\'ro4; ]ӏ‘q>eod⟫f>d 68w6no12᷎.R8sZI+a?pbJݫysd"$+pO.~_a9[ 1~N KJ˻\Sb&[7!M4@侺hSz92}i!i]#zTK(J}3a;+˕=N;p*6xX{[Lnly2Ic(dH'v-Y+[ dFxx@~HXR: A zTc gC9 )o"Arsw9o=>0mQE&US`Av]Ը& j<}q\XmCX R{ƭ :4eAY:z$I+p?MALMXN`T'n݊#cq] ]eU @Ipg1ݶRjHSf@=ߣ}[ଫ| s`v+yIdHQ{JqWzp4+2h]RCgv>W$0ؿl6x97#峴mF Zo o(7BpE_E-P;M#&bw8s$`,Q9\.(>L s ax1OioklZ6ioh,XWF*xel\8$/sK4{G"4Zqsjhƺf(QS ĔDv6rIH>eZC!/%$aZL5>͝x/JT]ԊXD}g]t4iPzqIiԥe )\eWZGtcw ^}MV^ FYkp;UT[h:~ ?BjnNΖozB 6:}&.Z$'lcX(EevT*G-j>-x[NLy|I=0r2]"ĢLe43MGK(dw1r_u6읙>6LWKpWC"h:m&Զ :91/=.E)\ [ybe #@7/HE R)@l&~^:ah&uCߞ]M}M e#(X6 I4VE\o1l\f .ܹs=,39J{LmF>q69YicONxNTHG0cB =|`F7!;SYھsis~ho}aO^7ΞJSʂ&;ΚXLt(̒Om^Gb0&{i'|#ٯHBf5/C^sFa֯5a;4s;4JpS1U[-jEHYv[zyw!iԔ\V)ʉ{x"PQ[ F Ry$ChI_7~=I yD+ \>MZ QVz6AAg*ڥt֤+Qc@~g;Q|2*@oԕnAUM͒B_5xʀ1/̳\ᄧ7zB|= l^^Up:[BmV/Qz~bȍ.vk7D)@;Bz ^kԌ:BE`*,@I>J7!bWـ#]f^iÁ(aBիYfEvy5 Ps1n]Y\ٯ$ 2[ 39 Rv gqj3ȁ d>|xHlqi!ܓBY/kBcub?ݯ،3̧bZ57bhׇ/Lse%jspY9p$cĀPOO;%s߳>J+7C~opOkjgvPWRe׻0`-"׏<8}9E}ySp"^}vH(I]kEsz}]K+^nhy{8l@IH }Ϙ0]yd ]=Fil?fWRH+NHV*4nM#~Z//l`/4֑`K5VZ%xGJ+ެ@;ֆ-1&YT" /x۔˩*T.TP7oar_^4<t,7:3"1f%?$ Q"[v~!r K rāhR>=ʪԆaĝc׭ ꒀ4JP϶s'ҩ`3{̉B>t[k-zk`pdfu0.r_їbҚ- t5k &SȺ;UOJmfu1*niA1z*B!+GF|'m_U'O@?*trR@c$:V_UŸe- M?%E^ض#} zigz)zX' QfaJ93ZgY}&?<k\?}6ѫypIFSK)-*◹ɽWItgTUnVP=ȚO>7;tze>ΉPK%aE] 4Joϱ/Z6g1o`4TXO sk7S3+sߋ- C삠4~+ <i}QVXa ~^(|oa޴[i~ױPt~Qqm~g@ jR 8{`&cծK5 @ڀCLM%|\ĀYD&`f"jܦCv!c,`<>塢Iz.O*BtBV /|~G/RڧMKp]~q[2B{}d\թ8knرBeEsՒe#\Jrf9rY@J֤᱈{;6~ !MMλ%aj6Pw-"qɠ̒/(JS) -2{ڼOV$f[wό!Py,4EXES7,Θ0ǧK!`27R3%7@??jJDz(;rb0#Y*Otząm Ņ9S=>b`3cct2{2@e3^ۥ<'3sKPѳ`3~3y]"r_! \:DjH8F1>V.ʜ vؚa{˿9 GK2:p+c:_G%W9hl4Fy]^fcBdV(~}V` 8xԱO[s/;JH_ "nB/50˕`q0 Oo\1 em>TוOeBj=XdRfgOH/?-6\Οd#Ξ0˦QLcwW^pHܐ{gV* _ZQAOJL/ia2uV,/֥،RA#2`##0:qK w2Y! ?R9 /~QnsC/=+c.Ps}-`i>-AXZﯮYbh7} I$`'NCc̿/Byi^C䁌֩W٣)Ƞua6U1=-%0Z~eo2 hLL IÆLC +Y-Nq9RY:| /z:8iD&]NI#:˜䫏6QgP d|qʿ=z@>;Q5`;} q+vHa6`f^nl~: h0W-J́'d<{ 9Z"Le ~7RE*cn|U4,]-}lF0 7<,#l%sJTe*@oue{=EO7IFL\8 ZOk{_w=}x.hHv|7%Hc"tqh=6AHF_Ơ ! \\ 2P' WHA="TxcJa$ .`dʳEFl*j^]oJ1@˓ 5a?A>tB?]?mwAͩ9L=EJC?tnOƎgPZ@uu} &{+;jƔtP=C [5 kVem J ̚o{9N# gy'>9]0_`> k,(pdbo !)3}N1n{YDBH"{lw&3C6[oyn/Rx{;(PDz 4H>.K`άA:j+=Ond^-]zk3 %[FRZ)JvBB{obE3B_saZmh*Z!Dg9~9!6 DaAHVcn*#"] hm#<py#9-Y ZGͳoXf$ġ!d _@w6| j~b`I mܡ=>7_Zl9.P ] ;4GbjL<|[&Y s=J5ԽC h dໆߟ 0ڍŸk01yBƌ7J,2& +TE˫h/8uKJ /Z vf3kpxD/"^kFQm|- 3dGyFp?Z-Qni[r# 'wQ9ۊe93ZzJs"W&C:>* T9s|I3oȍ*T3|ParmuHuiGj3=9+Ȃ0 <ޅץ'K_L PA2\)*9=8O45;TG;҆͛4D\pL餼zCd@;;(w0 2Lw}KlRD)`o @' T֔tmkrDzo9줓ԖB9ʪn$t%T:#̬3FIx_aTɣt?1CpI>PgZl  B(u%x*xCUdvL`fZ>h;}$pO]>ʳ}$T nlH#[~ (QнVKT}*MJv͂݌`BqܮT Qfeb  ~[H2҇\j\/iv*fש|}vzru)T kӂyJhmZpR̮LM^>7@XvxV[z>Խn䖝vWK%SuM25<;!߆WZ%驫e[\`ǘۜ PRJR$L*,N'uCh 6`.W PoY(lzJBrJYpPGS_05f?2cPP ?brE3_}1 VA㍈ 1t|Y#-~)Gm|RF&6#oW *]qLlo8$WKzBӳ G[Pj,˘u)]?"P382QI\4IBb< rz?()c`SܛЃUS,ħ%o:\s^0)袸&?gj!X-8Oj2'όA~H3/oKIѓgQOK9E ZK }j: u<;Aoz4R}.I [VXe[}PD*s’p=@s-*P5D٥.^S)=^"l~4#8˳rQ%D^.j# ⟤D鲵gL)sA12fT"2U{Jn[߮ w]o~egOەWPMTADdf},_)]#;,3T =nt,b o=!rCt3N#H/Ÿ( P-|i,{'_B08pƴbe k\rpgI߭Ѐ8WQQ椟[‚`ne#z/,IwܸZ9uoTv*IqWd* wITJ?keȦ Ϙ*C˓==bI4>TxiAdY邢C,hrw)ﭯ7G5 8rb LȟU;)Ekg1Fƣ;oj3('C1^,yno_ySG8GJb:YO(<*L?M :I#"cӕ?q[:Pb,W|H'\>d9O:@u<8,&X]ak 7%Xtvob\SwK^ J9ڛ A'>!$eISG )%dOZ-bdž)Mf>֨;2וF;u'\mmF'=S*ۨiNk*A){T;՗>ԫھ!RILWx}=(f6}9x?YZ!\63Ed|ZAAtI4FJB< oI0,=nphhj !m+ʶYUx:%?l[@#lD Xb|R?MokZ\_H/ʣ<`e#~mp pTLC^éߺc ϜQBے&Kq`@Bƅ1X!Veq?/ x@ LqQwe[|>.QRّ}B[a`G LyN܋^xP* _HRz\xTe +HP\þH*L4:._vS2"* إpulEo ' j6) (@Yr$a({7ay}{,;_۸UE{!3 m Ǒ*]5mNp `Б?óG1vAİ}OϢ?^CQagsMwkx4 "{壴^ ad*UO"uύz[2]Xu@շjJ5Ԗ ekiܚ*9`7qKvdPh/uPd](HLb^mO_Y 1nŭTKeyݾ} ֟|7]J2LF%^ N=o(kԺP<"zewt<e.oH"ibềw1/#l_T< uggz1j0n k޶啇%}؆t1 J9q Qu*?9B d鏁Xm&Tx8p5|rx,S%j/vč3^QR3JB{&HrŬz1[e,^z D9f}Y31 v T.t{C0@,(~@Դ'.՟w]7Eq(<*A-\o,YH*ud##ApP{*58c]e 0j 6Sy\ƅ;D۟<ӭ*|v b?|u_5ͽ~{{XXTmeIi@9z2[ˆF8)8̉et0k$4 !%FDi3.[)wޯ.@ϧůdlk2fөnO+PqA\vֆ*1t+SM. 6$10H*;Њ]iգp-U ڰUl1/E)Z~329lU%6D3(Fe [ɯygh.l֫5Mz~&XPR>}1g8 (\O^,ў"3&O)R~mת) 'iǹ)0ȳǴNT9%?@*ZG= XWll:7^Tk|By{c5K5nZFoD"\RU|&IkX& .&>Qt,Q8!s6|П`~7u^\r.oR3[cv8T` ,'ð;:Cd~U|#Ee TfqZS}$\%Vo#=UFd K NBS0b5L#_ʘqY ZUO%^(jus>C?{ Fr\$k47IX.C؉Jٚ!"vWJQb= NfzV%57Ϙ4(g&,4ŷhH) 3.!XRODnygPXR ,\plrKa4{(mnիW8“M7,;'YX:{R PJbˍ=Np]Qs V, Tg_xBraV6wevǨYab?ImbnȪZa-TAsݶɉIcc/Gx{}&/|@@ =J| - )DZ <8Xvyba.LxgZ>LߣETPN . xmvH|gbYk;1cgvqۉj\ +l jX>N^Ȇ~f8h?U^lb~>Y9֮+9/@JK znU{i^ie PR6Ii]|o ڲ`EvL|<ԥhcXҕt%6-8PEB:L-H@BÏKH%Mb)se0S$OӸ@>,}z32A[x 4~(41?ۻ 9|"9],\M d-Oq/e{K^EwB+Vil`i]M!j,xL jA~S?-OY+'^U?VD5@wHUBR\)h9AL"넵9n3 3SSz|KUnTڄjX/)dw)o hX{ {+KQ)!_tTp{dBwpxSLV%E ~SB#Ef5M(6blO3D|\ rf?:]9E26f PFSy犯zAOHF}R<3Lag;C(DQ5{gd DHr^Avqll%QpB"XC0WW;`Rf _|1{! #^mӿ Sw9by^^tH\gB[5hy⊝41W?$65FFXOtFN44m 'JL!~A7JcO\oe]N9NjdӑX}u_4!:tY8SJb*Z;wh+hg7iPU ?ГDcZyOqvm޸wkRWC& 5WI0bESs&ex/r%dP/|[}g|F@9IQ>67I:iY<=~lWh7Q&k)5XX^z 5>1Vwgc i=lp5;h`dĎDa g3>0Ydrk젠xlL ϒAA@:Δh$4I*d,Jdc*f7'3[guD`E>,S0N\8CIS"'!٧Q0*(3UE"-k/7ncJ2S͜|$pW1&va1 @ ?sj(]D1 ]!XZ*tET׍rAF}J`gC^_$#)YrD4 Gh*%,h7F)#U YHB<ܐ-Ok5Ow!!ÙG+E[/Q2:OXqlwSN ,Pd|/:c:oK6L"%nZŖx)Y1kc׃3ED>`%EE #8,_/sHc[QO57tH[V-f}z e(v]*ۦ!QF? NJy"K$e}2e0ޭ:ayua~$K-<푾]Q.AuE|ڊhbHd`}zlBen7 _v{!v4'UA|1Qan\ I!u^V$ڍ^ Z۽d]v79''꿠*}/J nL܊uiڠXG 64 m-ٹ` {NI]o땅/^W% R+7io =7Hg@+[%D-?{SҀ}eAK,#UT @;!3F:pǸ1LeZHR0@ZO+aZ; ~OC*^!|G#sDm{:؇axwҪSa$bM&#O`⟓քϽ,G^l%c|ΧȊ3j@mju>:| LJ a]| K K_fhP VH:%P 9!s ;Ya #/@phRS4M >nlgTu֩ %lx v7ܲrNcOM+G֗;oZFևɗ`ӱ] x&u ˰)<8$4i V)k%\2i9&݋hF5q>waIJ:BhvXMWζ9PxU UϚ~ʑN.bd͸J[! / f1%ZMQŒ (R\ա ?P7zfJ{v)N $ bwAr0d,.{u$Ak)n uśOtB7La HG/h! Uu/"9L1fo2+i`?g`[d&ʳG!YC%`E?AU18 ND /?<Y:1M`;z] FOWV01^M`eͫ3]e]Ǡ?۪)f(f16Kc&laDke%OC-.4#ggDb.$H2 VndgE˘>@:aH5Уk?b8"GQ_Kbrhetk`vWGi΍ދ~@UD=^ ʞJ#ꑧ|ˇ,԰Rn&/䩚4ml+84`f$׃[f7xJUي7G0[e@=IG Ύ"wdk@CRMQp|iϳA}|Nq/sjw)IQWd_/P9r7݅ktm8LD%eٳ깟]<.YBs8bwߠ~\]Tt,H(vq/⿕Bp[Wv>˞.n;{ܶ0!<^zL'9\$U7LcTM(%ܽFd|{4"= ~H{~S;RCPs^Goib5?ÊUWq02B':0A-~6p;>BhkvU+-g8嬡H* -lM Z<{깤 H|RVHK|U.y2Y($L^]te!cL݅4 FcH?_dey}/g'=@Mz jVU?d{X^F@y89J(vMj@ i.TQJneۜ5V;EU/ԝ|1&3SiCNRws{?,:-]첡c USA%L}Ma&-wZYx_#]^eϨy~C_yS ZqD2kW/[4?vB4šwg|.풘6x6pÖlcyLiѽpY[/זڮTC!lLi>k*d!47$\on_}oـI 00'H?&U8ݹlֳy\;xAmݸaW@qضM7t֫go` = _.L{yH>a$81:M|㍹m2L uyԙu*!P@-\'Ch<{zbə)mEH|쒸e3?D8E?:4Cn=Ҁ0+2qۣfw L,KɻP)iu-Cdn :iڊϣdB:6;_B# Ժ3JY=B?-TھIdȈȎ}HϤ,CNkkfֶt}ǹG}R@P0WD%KjydQnkqf~a]!eV֐FYT0;g-a((]LQ_;Q&Lm|ӅM2NN5 =a'iExpcI.ry< IX@w[s+X;g(ODHڜ<NW$L-Dۤ0Wu3 is 4J3,9!#AU*&׭~i)Un-zjLfhGOe%ZF,vL 2wΨq/HZe[RbS]Lh=)!/c,Cu=gMijLmcC) ,<j*S8<72J}?/"$!ܾLHM,?`Kzy| 4ip1 kOX _JAf(o 1*}ך[TA3%yoo<3k_lvZS}*E]5}RLs-R ks@ud2`/dYE&`L͢K&^ !jCzrdL|סg ,0.%7XtfOs M'm]_E@}'hf[4ʒfv@\%x= xy!,Wd/!S .],b"ƦuANq z3uKfwr%ɦYu*֍0Bs)+a-mUW]bV(^)R㯓$| fG!92eӤ+.qR w$mhUc":5cآC1mH}EL(y. LAbfӨWP~˙/vl-p~#;_G@ Egwԇo x?8l.Q9rVt`5d:APS &_n3F6l7->{߽,&-=PsuZ~ͪRS9qR+ QQX< ܳۖb`5rw s{(7\ǍcL,r[ո !_`RRot試Iu:,B@tI[d/xemuHvxŗM2ko]>9jZhT)y_S}g8˥<׌FU04גYچny%l zYի]w:;=)1⣝ݭM0; NA ^G[Bh<©Osvz$κ)Cwvvl4qR55pxq@I-E<܊hcg-ø}wlv(Os:`B] $6Wi1x=Ä7sNʷ4Gn=8)0 E:j`^jJ%Hܮ7=D@ie:߅S=&e4Tɴ]Z ,LqOH 64Q&X0hB=|KN"VY'[!$VhR|GFTuM Yg5U[?Ne2NC@e'P1V<+dCOiŰ3X<\0`tXѬ0u??) kY/A !|ONQ`&ձӤls* 5#MCm#6_a.ҏqPά+h&fܸd%W7{8SNc(Fr'?1J-_ւ@t0[)t1VTNS{tEhn܀Ծv d@ Ok^")U/uuYDK"Xjݜ@Gpk,F{L>*=c?KnuJ 8<hH׺]eg,nvr I,)pˍKAQ۞%mHr~_l{r6Sf]L$<MGR!Z*5M[jY>dMT6AJB[P8-W'GMz S]8/םTF"\C~ :`cu+\colV{t'ur;.~ j-!m(H!_ ?fLq@\-򊣚O9Qv~Gn*5Bot&yA@*Vƥs9[,R' 4V=-ڼ`Dmya8:qUpsѪ/>P yvdK'\e/S>iDzꫬ-Q`^r9?izwƿr94nhp^6iDKȫ'z6Q**:Ziv&$%beҖ.Zp K0 EH|9-",r?$Nm(q$!O|Cّ.o<иh9vހ!߰WS 6U,;~J/@UHB_#.p*]9<Ȍ-9R 킓ǵͅ&'!NgH$b \uyt~SSѲ,J cWf)_L=ܟeb!`&SsT -JZ~=/0&1 -k„7~rwKK2Yq\ 47^x :W\NiEqԥeHO/1ߐqX~U/hRH.!2ŋGEЀ;eh[Ke]g@݀JÐU\͔Y5!$[ƭtBu?; keٺvB+4QAӡX0d[i!}UKZ}2u^l¸dYjW~-B>7XlŦF`zEQ `F5ǀ#} \#&2~C '3/%y}]R79^[0 +iLMwbt u.p):"}TKQ t7DVwW< eGYXKMo(fV@cIZR4" <L8 d5gte2/tr}xS@Lx>^']kV_ZHp<p 7Լْx&u'W#1TohV}QASכPaɣXLD_$rF$VŹ bz P< yn~]z*}gUݏ]H}EoDf頝@f~S f]ŏPHTF+ISۮL3?#xUb d㥻S܎m˙X?va`m, |bewT!7T[(7 i +5$z%W{ĒR'"/@w_ѿ=IފY}=2Sl?g8c#\\ 5l:>!`baҺ(7;,IY0I9 U"&MR <9cчG r6c+b-"jy=X譕'#Jl#r 2f&R#ģt(h-d|i:L[X̣Կ!\>eO[R䄙2 i*i ]Ug~:Lи1|¿iiT`x[hQ+{2 H䢴D6hAςMH[ PS TtĮ!REhT#}u+0Ynf}nkgbD %U6/']r"j9Ğ֜ir*T≢0{.Zs3 !VD gFKDyi醛ܺ%(/HP2g!ʾ[{b 8~(nFVH! M](F}T8O612uHd2J0NJFUNWhkv^=TH^ &Z=`2$A G#;#yRG͜3k)Q$S4L?FA& [(3h[P~d9dDղ3QoE@.Ʋ-N$tin ~ӷ|ŸJݭ?Dhl4``y}c'Wixg:Vj{.+DDĒf黗j%f򣕖N@/Q\.kv ]E Eҋ+#]]&*U`Q@)^|fO #xeƿV̬0eM-趐4>AGCl+VC'F~uLZu,3{ջżoSA h9}L@Ls՗L.kWxḇҪ>HjxcH7&bTI;]_WP*߫ҘK]zѓ}Hn8iaǺIۼҙTΤLTn#L_}WticdhO wUjE.LwzM}gWmݥ.'b0o7Am(u%.2~zq/=N-okU昛֝[e @U\;O-D뷒'])ڣ 77& hC! ?0YJG4G(A]Kr&C>q:kdYaSxq;h)cr,:@= 3ۉ-V tD"s i bR4xJ%_ 6/-;PӫI0VLmov^?\.T\l;UzPI~%$ҹ7[yPYQ"ev~'yw1;xSt9Њy5!#e g:Npal6J@)p2;Dr%;Zj7$'YB5Y>jTt6Q7!`eF  GR89J`ۿ7ݴM؏( H99 d)di6{FS*e@|_-pt/҂or('R# RyR TqBFn+O1lv]SɞdcD-@&l]FFD`eۮvLˣ=fw|(7͡t\#g0VB@>r褳~KeP8;; ڇ] ޅhe=8}Dh qM6;l~8mN0wʲgivm@BdN|73_6 ʮp|<]a U]]rlD™&2<&ƍȚ=Y|yVH݁+LI {>~ȭ TJ۝rNP].Y@DAEqQBj\ L?G"E+_kJ ϼZYVt)&'}<`x R)oAObٛ[6 &C1$]Ֆ0gli( Odl/a,&v sl$"3HF%|Ət4R-ޏge˃-m`k^.:n)I$JWʝU=W&.=|]fu$xsk2,AZyh0?*COOiG+A3:$*erӅ6_'+kW7ׅ̝8%x/\v^Ocif BU(`yst/H+etd FvXyW6'h`!-9EZFU"Z( W?2CV9X_M)N''$Nk]XN.@u/?}<ӯBˡq0ꮹ[C)5ঊC41lkmkC5t$ZJ9 I?>җBhS$?)it[үd!7l_cʲ+(KlZ@'.0 Nd#~>r*ȋ Xה]@oⶴp`)٣gFgz EWd׌Rl]Y{@.:.X؎dP̅oB^p F:SA?-* P~~% \~%y-% KwC" Wt/ @Ǜ%c 3z\vR"@.ī}@0*`8t!+=޾gDk H$Oi A <. `tרy -+J:õϙItXuǓ}L N3L A\M6|r/]4Ӛ,+9=GA| uDZ[JC,8rW3^a|?Tm,I53ɢH3Tsρɦ>.̣hJuׅ5Z7[*r1%e;0̂$))841p.5s 9F7&ԸpBڍw:I/IAޣtv歌gM³MlQJBY&Y" 3^EMEgg^a+EءFVf]-mX ̇U)I/"BlF$'RFY/,?YH=QGnQX1)D&ƿ>G P@d{TW] ! u x͎wh  oўn'1k+loK5{m q$*o^EЮdou Yvxh8 ~ [Mwn3_0N, >n]w#Z/P-KP9~ '$A ;%OMTyq2=1yX꒘Nw`3!3ZY[x`Eo;ښY:pGeG:0qwiO-}X6S?]W%v|v "9s#YA:i,n!Q"cԸeCdZ/(E,#LE9+xUqhlVuΨ H R.7h9ڣ(@O>rLj`U1aE ~?GO'-2RJ~sO XXg;עwCAyx6S~xg~ƄelR4q48S88;/q[;ZY\ut$7IF?u c߉@7Kgf8`s9!Rz}_ %#tDAԝ\#6jYF^Ϡ< *b3@g6ZaM)B01WLI(P^oQrk탑?U6/WK/+?7ʇ8A ,)ǡDhs]IlzGEe4{kTyo^rL`Y}+ \3\ >ܚcٰu{_v ȧ M;PZDhr%.2lLjrKז?$-Y frCw-cĩʋjA8v\<Kպ-{'h.0} $I" K@~e>J3V(@/>mn5#XK E"pKxwP&r VI74rZ1JD7;=p!*Tn´ 6qB~񟿢N– `[*xZleV;!껌nY,Ι=ص`":{qTIW1N^BĴg Lk0Əܝ2y9~qW%®o) MJwJu||l}?ւ]2ڷ^[9}",bk $M#1wq,˚JU\Ww`crƀ1z`{ O^w^1/hof61F Cۚԫ^^Ԗ0Zu7h{:1>?"|)rt > [岭#RH=TJ"HJB\zҦR=4 (Ǥ C:?oy+2w@5'Qaw #VD(,.T `"1e\q@┵c}k^Skcox[:: =#-\C Nkz;Ȝ309 v3(̜;IxVNNaR 3:1ʨS6}ӊ-=]=q  \i3Fc`DA:Ze,#z/ <_}vMcOqڨ4P1XI- *{R@vF2I因PwZhJzc~WPG8dVA5Z9oio'8L y28N,ڴC-,eרb4Wd "D=q=£}]'TM3 (*D'E=ئp`R|FORcZN[Zjv"Ӑ85U hvKX9 46>p=>1E3T3TtY櫙;D܉<Uے"Đ=09"^L^c/A/Lp(ze=ΛL˶gN<ްNȃp)M̰qw[gt5N쵼QBl=P`9> Mڸn"y4) O i {037&w{tG<4ă2X C&'j$5=JfpfMR8Ν'} !p\(?%ڃg7Y@$&xѝbk>F4!7MȐFqBR2g7i4F%ɇMA^㕑mu"JBa xd "L|#9uW9Hn!AQ_r .B`~uiMP=>`]+wR)٬w?<]Pf4)ݵԆ$qaI#:3wSN|Dʌb\pL[Z; LsAo}tiFwo>th?4 ʑLdÝbmTe Hnk<tj9y"pʦ*iR(+]{Ȱ:2C_N2Xo̙F$!Md=3y r F b8v~'xy=G`=T[ANSur.LJ4ӄG82v+u3?а iHU۬1֖5h@حHQzMuvx춘6"VX!#5q%ء{޿Q{~ =S8as.t@$=|\ZSa"7`]Kʊ(D=y k4iARǐ =٠0H -MI,R-J ׹Nd( YQʊZq</;k~W֕D۽wuFDAo3 NVFgAA͞5{ ㇆g-blf hjmlŊecg2A((m|MN5fcrj#{Y{;UU!̡&Ƃ&TbՆA@DJ" gY&)xU9AZnb qMktQ4ChA9QLrQ nE޹θTA "WW򙿔utyq׊+uqk\xHDlS{$s%[?̀rNY$*p("晙6M2Ive tU"ޒHC|`e5O[Δ/*V[Z0ۿ\Kڽ>;T5jZ-Rh)-^b8_ֽQ?.`Ҵs<Y+ -$r)$}~*Dmݗ ʣxl.tL"׭9NCs S65@KOjL)Jn4?6}P2Vߌ@来ŏ,f7#naA'+&DG*gB+Ix赳uIAa?plKP䫪ߘWܗ1&y\,̺IBlpq+i4XE?V.HD ѷQZ9h tP~nw6EHG[@MQ$1 _Ij=SRlǒXR2p2Pmؽ @pU[G`To\{}um"ZʿqJI)߸WFW+Z$ѣՄ#Vd٨d;9"ۈ^~8 cJʦ WqDH/X_n<+?/=rgYA~,YӊYZybw4KtA+yyV Rq= H}H~=׭KOUazOH'9Y8e3сSj$AݲHvK\d S |2>YoITHIR`J/T ;JkzkV3RBpAuHdMDn89[ g 2ʈޕEg2B ( UVdke> pC}ߩ~w5;}*~=eRDԷpmN%ױ{{;o4z^Uvh!6MUMHD>\f8t&\CĿ)9˽ouU4?gY(VYwx*_hKa4-[ r=2v֕ur!p9~ {% =/:]wi;tk+IN~"bew-t8d2BydV>6,[ŜrniF&5PԫvV 3UqY݀kQ>zB W`ݗG{DŽa{32wFNGhL)GZfDt vFMiVp"6職;2IKK8CP Y-X嘕p9f єRNA{1f34=ﶊ {QcjV1ƏtTsg|w" uc9?&4XuBUcٱq<Je".ցkBD loLC!+yW*o|Eu[lRDmUHiOOGiSw/FΒnUiZ?'k+mi.L: Tj{{&t]Ŧ$j0,nϠmM8tv*(_~.Cǝgo>1 (RHek3ofP<,ٮ 哻X%Njd)iaH)Z|w_Gӑ^#{ÈU,6F-JlpQUz[N?6}4dz[<SqÚ1#!=귋oQAZ;۽>DYiyi:9Q/B4@in }@,Wn.e6`w+cɩr3Rp#X9+d,!q'ޓDהH#Cp"Et eh[^: E6!MX%gḸ" .x^ nGta ^T Q !Ɠ"RK;͍u,)MِXRJ" $?t9asG9-,3PDU.e= bw/0? U@3K4d︺-tQ>tq'"n HwOEH&  V9+SI qv(%\}X ;qlV #T|륯},j2W TJ#![+##4=KHW"{J&GZ_Eލ5qX3;ki1aM4}=`;7f-*) $IQX9Ll!2uڏL޺ Da(+jM^׷| e\JS F|c.-ᖊ K^"V;-u9L(퓳I}Nl2&d =TtˁFYCVf&׽r^#XhVӣq7'Ol-cC uأF>c&&NoA4/.{ x^IE[TK=?6 Z2𰞆HUrk$yj n5T`f1eQc~2yRb<ވM5+k~=ŗ@[8OTR*1˷M\v Pz,hp#ܩ5[[9|?nUNhNP0`]i쉡6gVڌ/c1XRr`@&eJ"#)kVe)6Kco^֘[?ԠooHҫ8tcjd)ˈLN71acƷ#US[P&eARW x7TSҕ{]S{yphkj rporuVn+M,}K8o \YvmMw!Dn #-(Z p#nM.ڠylS))SI]Os{n;#N3c\l#L?pM:+D/R_KQ8x\bJ$icEtSĸZFs*NC¶Ӌ>' 兰{:h轘֬b4I]1Y逖Yldf)(bUMHxI5kof~aЙy@< Ŗ)8"Ս6bx,}9@ؾ[8:e*\R>-ة1mgpoH%5&6pjXg>Duz &=oaoԩ}h*my?sct))WzEAȦA_-ޚ^ JȈ/zT L7{{я_ۄ;]Py!LwT!r=q+"4dѠCwyyQL; 1Β%uZ8LAe-|凯uk>n -AGTqJ]Go"8ocjdpg#2[|[ᣃ'mPH(]x"s+3f0qO;4%>8]@E %WWa'9QwcroH4V\ќ o}M\GxS01:E N ~>cH_"w31"b_Cb*X!ʥ"AT-{KUYlFA B{ Ld#і:?m=AKSp.o)v͏P@GOg tSٜZAz=)\QemHiVڧ$u IeE|B9"*a҂$ZbxήOsfqz:#;% ڐJ gmea'1*ȧ=`)SZMW\+2WEXp;'qf9\( *o4T ry@'g jЧZo\7D)T-Z{Xs!A/ZgV2/2(rO-Ȱ# w0Hkq|ITg)6\; =l) C"23WF6뮳Z&,Ou s AYfVS=ً3rIsЙL.&N\2Lkެc1C[\>х7տW' |6/Ihj;ƇT4 +!N{1iGMspYGlyȴ<f;S[^x—ݖCzvu*ܳB?SVoZ]paX{f]u5tN2s4T jwQ,lPT|@X&JTG[=¢yͮ̇:B#X4ҦN[]8sHSVz!i*^hg*ԏ[M-v\1dw85_EտKᜒcu) Tyx{FC2HMHLtPl#,Ҷ9MO 7@$^j"Fx勐Fbs%@dKYߒ Ht92#+uJn@$dLԑ΁_v /j*qȁh% p' 8@QC5Ijz駚DCegL-+o mrI[xmMIӣl,f _dW.OqY԰ n_)՜ZJZdc^Ÿ1t )ˋucn(v sItiҼCSsxF+}ćPܽݪvhl6':Lql1^mtea? S)KPW[SBegmϨ8/y0$nb7݆pW2U]An,* Z$X.Bיc. A 3'-E$S"U< kl=)(w4IccHVG~Pf?[ k j]HgZ?o#`:x߷{xP3?{3[j;< )]QFru7߼BK*%T!pjeafe "yoɳ&n۪E<~ K!BZc ^:uE*ގtBS^&Z.6V[abpI2Zla *2P0r1^Y2FhL]x W:36jdq-+i%ޱn W)|V=FdϒƸӜq>i\E^V,% 쟀GjT3>KcoKowsNV<|$.6G>~ƤNUw0bMI_,@4rBx=8ğ{ɼ l>`Se_+ ;䡳;l(7+)55?&-^ KI?0[:q)ӠsDEBS~2w,lPxJ`rbCQGpi~ŦPe@fBtZAPOASQsM%0F.V5O1QA^~W3p"TcC#{s=z<75{]|z7Fמn`q2Y{ч$J wpYz tM+kmd̰|3-oAacKݱgt ~gxs%ţ'yK*FL7QA5Hm` +";$ْ2\+&j Qc?Mrp{ȜNnJw?P&y(OK ֖ %fx ]:p؜8vfKNGNqh#JDYMa3s3ҽ %/lzs`Njʝ{z2[ۑ|R@LQ8g,CUݼX]G&sX ۔N!'#!fHB5>vǬҺL[Ǫqoxe=s>VWAT-Ժ2W⋃Wx1}6G1|v UQ'c1Y%_98/[&MT2wA&:|ꣀg?,GY5wLIٜ'%fԸBјگcf[oG):xdi71%_ZEFDX GBw[5g<ߘ)"(9A # Kk g$fWs+O84W|KWş)»&Eg5p&R Xwx mK/rx@sNE|jUlzP?}0YbEN>FФ܌W}Db 9֖ Z̤ B쿨ofPNʆT{,qf_>NHOѨLP& ݿ[YAJ#pYPshV~e~`>ǜ9>8TF fLēwv/4VIJ6^cvV+0g=*UvHNjdK2PԻ[*ڶ1|۱:~yZ!B'Ok kTS.z+?^_^nc͢,Ȅg AWc`~W> ", 6-jd}{ppRjP*z<`!9?ܝLle$dMihGXb,%3xX[\{9BD2ߌ9 wk=ػzb-ZrvRqrIXwwJQruXy &خSjL)Ƙx}թ4+;E:#__R8l|w<:zǛa&ܱ䧋\" 10ו<.C;\E.}~g~P# ̲(Q.4i8Fj\\L*ki|ΤbwC6ٓKϲq(RWdBOG0JWۏqںOq2hJp )IG 3ߡ @q'&gR*+CS;R;,u?"$ZRp=t-)~{4rb4*z6^Je%Дy+Ϲ7rI(2i٦x=SIݤp%.%ńyL' ؽQQqz㓕e- 4%'C.Ң}_;Sky41ߠ 1;}l฀ B2w/<ak*-:kn +Hv!r;PuMbQB޽| Iq2UǾl[$'ʜq0P_YiRPU['E{-agK,Hۆs!W ESp)t14H~8$k6NowmZ$>-9==Z0&L+ᭃՋjLy0fSS׉d^YYu[/O۪0/JMxYsgS> q[?f?-&Ħ$7ӿǘܫVsxg:0E ;>HuL::ݯ@hj,aA/Hɮ޵8l.KXYnC&vNXsjp@aۃD];TW4[xޛ8/4:2]M0G!Y%#%ېUr$FOMI/ 1~W@\w)/ka$WH1xpF>Ӯn$_يr'bWӟ_Aϗ!ȋ=iowӡ1w''(-D_3ѐ1#A %@j 6Aqxҁ2#-Z)zϚZ1{I\ Qa ~dwMn"|n ' ja#BW.S5c4SF⇤JO%Jb3Qu,i!*vHC8b(@55pWd+iقeC<_vTNӰ1!<[wF]o9(?7g۠A6 а-^1҇†Ln+AP]w_ 5Z:79M5߫!"X1hd@>Nc}=JƐ])[X)%[')(͈"Jyj^8/. 4]hvMzoᅪp{|o1+ڄW~9pq{O0QJDD9S~qi217X$ a Srf13EB72t(n}u[UQSkb >WB ]{p0Bq?zqv@ e dq@No"z Nqm*as~'WiR9A팖ys kc> 9:;zh7S-W\,SW1(1Э J􉌠滃rwtlOX0y$_e$30n'=ˈs3~g;8U)~ZZ#:, 2h Mvh 6 ("e!&=x{|׼`i !L#@8l+QpF ÞxH|7z( y0WU &$ x˜;cl^d'y}Itw^(t|w: dz& wT%#;~Jo,e"vl (ʯPf ?\'&xL۫?9Lbm3nO,ήWV3d B+J3߰?x%!A|CəyǁuQvB3⭰ F2".ao}P VhALeh)Ng Ef2-8 ?ׇJKΥ!gtTPW~1geABx[8>D'׵S(3z%A Crdt!2e1E؀kNιoD>1+2Z6? ,:nA#7T;BϜ)^:}%h/ܾow6n)t&.XOeP$Jޯ$.OA[aK:`ȁ,s]eޣi pSW!tz0RZ33YGL ;ya֨8Os+|w] Ň))[%KNR/+v#'CH){0/ʺyPܤ&:bPc#ǚs ۃ6Mwd*uY# a+ |gAP~=AeH-m7ax2 kXFI/VfLU>DRI!8d`I.r*@ p#+:E!ši,/r7JMZend;Xw#C K`Qxbz_҃Ϙ JCѦ! #A/ݞ+G~ozs5vC~;F:8KV4tҪƌJTFNj]c޽--ެƻ:ͯY]eԢ[W^$q G+󮆠4,nf_ ;#x/o2.4zNrKtfL- g7XVE䍳+GD3۲K\o{8C$;'* W4^wL]cJcwOvr6Ipz%ÜUA@Jſ,xhheI%1MʅcT~ROt*~϶v:sʠݭ.'z@74H4~QN{83Q7К2mci` bj6vb™Cؓ2]g='Ѓ#&3(ޞ<Y EJV3dΏY5r]lǞeH´TPVqdly@FYIJەD7w'GӂsL*+-%g;j.6sƥΔ.*+, ^£~U::;I~-d_a>|0Y@ S׿c Uiԑm HK/퓪/'%Y@y䕚ɜZeҮ hqעtVIpւ*\V&cwT+g$0TdB-qG; hTnÂ"f1[h_ZB#8(X[3L]7`ĩ[A-8Pak- #a*+Kz4H^A{W inG[V;ų\Q`L"WZʵy4(S^0O:301x( K gqH!C Β3N Wop>卋0kRq$nƪe񀛙G:"#Es=" 7xi%x- &|zЬz>^M1-l8hIPN:}<_)u`[_o`X8u!-qėlVlwHi&e*.k`Ոccxop u~yy&Sor L?->4Nmr0orP<']|r;g qqO{*y 2sS@ XF?A+X诀>hHM0D xnO('w_O"}_HVIh ,i~>y?cmxӵYJ:{? jlF*8@`ѕɷpAW͔$Q!qm130>Ju_i8&` 8v۱dyO" qz7ɢB }V=\|VT!@#{p]ЂL(CV,L? $ _q8/c~?ozat%SbY2HCrGs8"65|3U:u 螥|GLZKH=H,! 1ᘧl5I#JZ=uw]U[konql}vûW6YSC?ŭ>"yS[ރp7O GAO"eT'vK!&A@XhB(R9 B+SXC/&&")M|50+Zez[J_ߌߺr-Jqp&7m׈IQZCAvFx pkY` rOCUݦ~HHQ,frQ$<%(4N9F3x9L'2n{ts@dV8;M(lh,- %zh ߂!nh1߸($LǂyNhE\: [S[J)ZWUbG>u2H% 8l]omgTBWH:{sGR+=Βs3LJMI0Mꗒ*h3L))wDaٔYi耶R%0g2ayZgܦ0 ůuފT0:g.lQXf݂g²&A@u¿rl +*0,TshK_.,}zk p)'kBgՙ#(|iAGu7Mi8=j=)I[*Oz^Bze\اvtWצK*}AXC$`L'O>㟏J/nv53uȘvC¾8աsƯ1B%XAu,l7=e`PcY'FX'Xi;)ȅ( -3ûnHF psmGhJ) "'L:">n]iũ3'3VQo&Lr=-b8($ЌWO(. Wg\D)`_;yZ!*Ɛ3s\|ISLKxXN?uIgG0ZA~yZcu"|vo]FZU=k!:#3VZf9_U?FC@^6}Sgϩhׄ.TMli oPbS5E/SOkg28Slo$=Ѥcre}7^XnIDIqڣ3!󤛖Sæ?"`8cx&cCUؐۯ?=\[~Nنx Ïҧ3P07/_9! 29Knc6Zh6`;קn8j}BgCbbi E:ڜp|ALFlr5;LJYéy1@6%ktBWs؋ϔ߹}< cv%XUr+{(e.{K8͊O/8S 10uـuׇg8aktvΘ"C/xqgg@ enEǂFp'VZR- }d&xE$%(_$Iwzdw$NXKEj Gu_b&/=sgyߚVA>cD0ܵvHUږcP_5Zb:#g0$A.|6w-6[e0O'pR6"ᐈH$VgT}Hg=aɣW AЍz7͗QHΉCE^7='`jişgwхVFөcxZ蹋(- ~<4-:Q F!>f ^-v&{-u_(~;zU2λ C Yex߅@oQ-o#! )<hcc"wD΁E>Zfhxbr[ 6o^0۞ޝ bMkWEt~߸zXl(L7L/!9װ|`|2vd,`sFZv@7=nZy]%*Xx%`>ǼKyUP 40gtat  U,1%*c"*kz28rZv@ǹ F1qŋro+4"t(m^iJZ3B_|?e^2 m˰$ȴƏE8G(W8\/993o=I N6 ُ.W3okdkSV?t\flК#}۶w #K\;peJ h巁/[$D +fM1/.*1t0ܨfo^c@SCךMt@`;UU)N+ |?Ǎѳ`T-,¡EIvRzx펵? A\|oG]%f#>i`2rqn",vɶI4&"t,j6Q!\jUcދg"(S疀FU-VzkJd jk{46 4;i mͶi&vPY)~: w?^|5b*4N'| R[X jbG$0fKً1]eZ^T-c*tJiL(RuN e:KP׭6^" K>G"YRŝ9h8obMDQSLsctw$~[VZ^)[-8;#:Ϋv9dHSfFz9F…Yɐc" / |,kO kL5Qغ^_o, X\[b tC6^7O{}r {UǼn)A|S@$QF_N~1$W[K9ISs\w]oV~ZoL*Ԍס 6 P|k0te%=xs;+fM9j_=VkWQoSf-9uo5I!rzGo˞do p9',V'έ&)Q؞_̲=i̼Qa!$[5gAޥՃ9 ;inhBT_&aIxLv31ĒU*zN5&2~윸L+!"c~rDKUV~:<Š5@fbYd|}B\S3^ݓ^xQ@YO딲l:'a#*{+ln{e+ _zӃ#b CpYǘ&$3Gv<΄w @ʛtE{/q"v0ѶzE֪0e2j\5=:r̚C7! 㻄[unGE6^&-5|ei_ (xX9k䝐R~0U8d27ί˥gҵ`}E ]+x]> gϏhW"F(kvo7BfHѕ.a_B~aJoކ "M: +oD g^P'.­`r΢.G"Y)dc;}𞶾 P3/1Ur+ui&n UQhu·w}$oFg6+{FC_nl 6&$2!W<ڡͯPp y5An #'M @Do`OYْ]C+8f~@m͖uP?wON0y[iuMR'0qĵ=»C%DQK0cWV>([x x ʽ(kv+OYKuj?Uj;fFn bL#ډȈѓs&(ˣ2.졓Ÿ)rWK2To%cLś@V (9~!FFB?_kqI * J#+unTxjde.CbegՀNQV~RwnrPհNbv#E8$!w8p˲_jhX(5)rDa9J!f0cJg?NX|&^.sػSv&w0%z!+.A,{}Ҙ^0Ȭ\!D!܃mdmY}`?-_-Խ 9Y3S*jgDNNiFAPeh_֡΢[Ƽ_rEyhĐ j?+S|qlo]J퓳נ{Jiw >4 S_/8/N;;\!3YwgR&!CIlY,OpQ_K<&r_Rϙ\_a>7öOI^L㑒 zAe,i҉9.lݏ򃼓B90h|FQ'wG]i^DG 5lLX@K~>`LPx}2k6g(1ףC 4| ҩeg@䥏vACF=,RnubeŠfU.x*ޗ5RԦ,weUs7lg!96 RVD'ͭ9 [񎐣{elCB{X~ԽfU1_"7e-[I=8q8DWL]VcQ#(Qhmy $Ss?cA&iK WLj$%]$Gw U}S]Z#Q~^!J(V!B箯(c}2OwڬzWÕæ,my)>)S)؅yCIq:?싢(_ޮzBcXnEЗ`ØbZwP!I+DkH_ K?<=cϳ@%w{xiG'PS&;J(R@_?@au Ser: d0/HA±صHa^ c*7ae R?!|bRo{^bD8V!yiyovt>Tc3s?NkQg=pFɋٳy6ƽt{ȘlG juWRjs0| 3H@3K5.:J2F3#2kl uHw"0=3-V|R^xa N0 f_Ӱ,!VD9&R/g%EJ2c=r]3.0-fG_0 '5 TV{պVŶ11) iPeNA ⛦;)4,QE6cdpdv7B.Dh0Vl79.Gq6;BYsѶs;)zd: PuFd 4lK焞 n;:W 3>Xw:wTb:WWfmxLޝ-pi$ϼ"7Mbn̩?ZIr36|!e'ςYR'`],xW攛n2iFBFsQ/jeE2j f2W+HD.:ّauVq,#JO\Ԑ6$ufm85,2+)qFףKClFd@/r;D Bw^J2,KA+0HdMRmeJ)f 貟= 8njs^,Q! y)ov'V̔*ϑ `Xmb-6Ҽ["X0h\f h%>ѓ-g(YUߝm+39Pax7 S+xT]`^1f'/:4- ]C1mY!=W)3> }.]+A`v@bk"b4buoO( o;)!c]]-n;{~\1. WނrN¸jA"FA1y4&$=,r1נ󑝾!О#tOq0+߫5PΤ&GJ؇m`#0Bɨ r[mԐl㣙Rld\<Ie$iZ4ZZF(,jujEmU#޾VDmB-*Y{Ufq R^s LKN)U~+ADZx.( ()[zhz]kEb `kyOvR7}o2E;99dIIZ UGЗ%ԮEBu.UpCQP:Ӯݡm1]7HVsӠ؜ ZyC[Hge7[n#nŗELɦqjOxq \P s.@YO26鹺ZcA^Cq|;K٬*P,$uطi? TU7JAŪ;meѓHLK =8CbHq:t k(ߡqU#j .}xB@ BuLr>Wizh[CԳX}?x6t#"ָZT=cn4Y@D`mߢP2f\g`iPA$m:Lr$meJ'|}P+ c'2!0YOX7?N\op^ecV+ |FPgvE2{#e1C( @R_a1tv^OǝyIZD -ŜPEOr-⯊n, (HW ļ|}qȴ֖j~8D O' Lf-̩\ &ڰës#R3GΚ V&bpJ$r7 e29d Ȳs!(]޵XfYD]P 9yvihIN3đ:_& &8\֧uNr(`'r. ϔ8J+A'TvKBZ?>#ݶLWVy(7[7b)Fb~䤑-0ܞU Pt0e)p7۴LwTY*mf q?< gL܊gR.wK]Hjֿ0vO+ ni't- |$?rmr]i#K9 כȊ]dcW*lT2zIئ6{巡kz "]NPYqTGG_Q&1.L{1tx<%kmv4=W rYyi~,zp%V#18M֣YYoatX+\00A6 1$ұs|J4 6r]<Gr%kiQzBk][K#ČxM4m(4n\S,$Vh fb5c隫0edL'@>п/8kWkȘTf3J ̂wl]0E"R2f%'юm;HHTfcK\pC#zOPq@&:a2Sp]0An%6쀖 T mPIA0lab4,RLRi .3mL1"ݭo+r6á2Q[x(zHzHX_qVow$jcN ~-3A 2f?۵1*]#KUvØRQyJ* #~` E59rܠ8^3v )%Eq"D$Ao[tr;]ՔŴ!?<ƥ q݆8Fnh\\ -3sq0X eS~RF:ܕ=Na+ uطzHёœ@4uh.+߀/d2-;IeME.}f N'ˢ.@Yy( $jGCc/ ]KQ1'_6Rn@l>g/'~3îA53JdL՞ ǟS2'k)ؗu^ҰeJŞK{IʲDqZ6[aWi "4)k-ZM4sv˟"O|DՔC8e elFM!$ׯXVDgϡzuN%QiXC1SbptrZ:#[H aB2&:[t V[`Q#"E:xQj^^b0nu vN(ӘB0&V77E=*Mg?c00P|KR:8wySyڋ|S-E=:aRwjTvd \MRկ\{p3J#u\A~,Nn]oq],*` S;J511;ɢ ZPDI'_QT*+ZS+}CJdd<߽s+2**&]n3oO_(HJ|55R[,;B(<3rY:O1↳ڇ Plha`YD*m [4UXcӜ= '_)D,x =eڳ-LMM"grPuj&t5/zR*]e= 0)҇Vjxr#cOyz˕Iqy cX@L<D޴>* 0&h16{rsWZ2uf zdM ͫ`|k3Z#v'`=Zb&]@Jc_RkfNb|/\ 艵3K!!ŝuǨi<>hVM+2uhDr@ I1a}P\.tLȖ|>Z l8ٙF@/F/ke Th`292H}:)FCt $\C>\W.*6Aebj IYZ4Ч`;*m@n4C#ئ-a YZ#P2i4lsP to޵٣yAkEO~fiY}\σ S%Ef8<9&8d12>4EAsӢEtv(|֪T*c@I~T~G~"㨁<Ee:OߙH: =Xk_ODd*[Y%I6Dm1 &I,; zƦײU(ѕyty7;#~L~CXsɽXj:j_8"z)bPm55t_5 #_Z:l D7t>@dMX٠SwO$8k0fvׁTv%:nCV}f6n_ɟX("8|hٓ3b ȳ"jhMegߘo;cD:Vh^w67Oh±UTP/?F=O=;wd JIc]lpFcMj'}H}~.)OpƁ+~Ez&cXדG`vQu\cYP..:Վo%[kߚ'W=+ԣ6|M Ht9L+Sʹ T&'4H+Jpn-85|;'xFCK+ # Qu<~AKUx9`#rV;=t̮ןHA&Qn1W|5BRBLTp~(]:˨H (sZ\&yBZg]ԑy YL>Jl UWap[]kQke;0[c?-B4 ;Ey:a]A1A~,!ǜ4l}V&˾j{/o{0_4~̔%rC BՠRKJ +ĵ@I4WfsLdƵZP;=W\[yj 4~#;+m3>* zD) ++m/[{I\\6&4.RD[/(<f ȀEz͟hl<;s5qWNhP,o#*.Ctxb> <'P^ ) ;~:uXė'M)q2<^UlNt]pcguCa<،4 z8o)&Mxh_Fi1R/k,Рp`"!nA|8oTA1q36VNi/5GY t HFZ76!kBսf<$D좣sas-oI-RDyqL܄켊Ij2n^keUБeN,DBE2خN]vʷơ0i':BKIYLխ=g:[6KM_+);b ,%x42/ICGLG*S,\z"P9xnaՕ \,t')JAD!Iɩ |%&k|heJ=)k~L^u kIhj0\3(2CszͣSn9ؗH\-1gy`Ғ7.?WFk6# @>>%X&?\t:p4c%2{h=",ݣBF!Af`>>p7^7^9|dЅY ~%QH7(@S/;qK#~n$[4uyFG%p ag*&ф.yʃvz'GKxzG1/f.qthnV+ShC$`f |ewAxP?Rn#F11C ŌJˡ0Et9'Gg{FBϽu܇i˔|g|*Q]4G)1_,vVI% _^|Jv{K`m[&tȽS'\%n:+gAJ[w+\}ސ~*غyB߁svN6L)!1NI;3l%&#Vd}F @x))WԀ0nA-J]+ Crpl`4?ѡ\E$>"9fO#fQ_;LgkQuHKЮg}p܍hwSY&Ԃj\LS5ͼ@W, 2LzD4VXuށ>0܅8۵4+[v3Vj7VľcV ,,ʈq1wZgV{WMX3pBU[{L&Y:l}G >Jz kWy]VXk W?ƕv11eh8_u:"E1uiӵLmxa9wv@岨AqTнΠpS;XGWT&|Tx`[HAv jW+Y#8Iq(p}s֤ |ׇ8>џ&MS4ޠc2v T?jhiڐ Ƒ ˴|6 !cBV^skFIn D^~{Sv8LCv` B]{/ AlǕT&&& p ˄h aܥ~Є@R==LL>&4@M=)4*}DkgR ࡹ-ת/_:hk` yHIQR+ 6w*.ċPfc')qa8ןRWslye{ar}de>K>+ߍ'Ӭ8}gf0qyXOqFS}4Jۧ;ZJS]qkgW"l _[}e(oI胚ܜ=*5C4[U($j]r+öl3-k2+z sT/V(zーCdͺe%/iao?<)u vPpx+C2hNd_) aGh+ uU糗Лcؒ?7D3a*2/?eotPO H}!łܚRbYHz[*gE7L{C;*rSQ]i=˘j_hwIf0FUsF$T/02@*O[Nt VUwUŋzmS`; 9ztU {|.=x@O{-3 Q BiTO]\-0CZa&MgTo=}l)veYT;Ha7Empf$pVZ=3ġ(qί!nJ;6 {ڿ1 X-+ȅG ϿcZ@ /{-jc~T Eq ((V0)wo+2#>`#t'0 ]pM,]9Ar qc (gm8[v-S4"Yy%gGDsZXG qaN^{娣wI){Oq[ 4d (Ω?iaF M_HIe)zlZɄjIv".d*xDX2HH5ANTm%z|]8,_5۝A(W7G,N*cX@DLMD|o618q2KPpĨmw멞 Q PH6ɄEX^F*Fo2:;$C 'Ѕ`p;qgy$x6+$jT+z&8HGh >8Nw~@zXU{PSި~iNia> BvRpVye?B_Ōj7|`cq;Vg0NX2coU# O1rIO{ aA㟨.8|N\/BEzC|/M6B+}鯾I/^,xOTyUS%uVI)!D+cuU^x.L\M]xƨ/"8)aWzcG|[;q. _*MpG.+ OpEy>쏭t]-yy)3buψvl1>u걓?{q;W(p ء@_ytO#cQ TFTКݓdAǵ1 [FM*,K~(F7*PWѐikmڬ k_տR/X[ a F3}$j%{[w {}ϣڤ8-po_ ::ʴ1Xmw#F4t;}@ҳGiJ; AVĊ={s.DuD`aΔ$PX}VT>:H>msWNX؝ sKWoKlL T×NψPj5y@7-w+EK|T3kK"ڧWGiZOF;d8W"NDYL4*J ᖔrNjڂ8`gm|nFƩ6ٖhY,E]eky`wD?r c zh .jRw!$#{P]p  &^sC+a˂oayɡjYg"F,`u$Cڇ)t--.NecNVNW:~##2<$80Ƀ# BYK^#Ee]QH‐z{!M|p[mҖ_KBEr"FUр͏̟NSaas]ˡ߸eRTE ֿRP(1?P%/aXQO\>np dK ^ ]*0"1]zg.U~lf\9enŚw7YF[:/sJM3oj 9 掎B!dWL;=k vcC"/5q-!Gs'#M6TA=׮9hhOdҦ9 ˬ{#W+mc2NPpY;EJ*|dzڶӧQgr,tSIUx[_05> Kc_A*^c HI@ZWi$9Eewg"[-6c;lc~g"pT ?K5} ls+Ei|UʲK'B" 앺pK7bFuc70!:-HkXelsE_D ,WѺu,StOʢHW`>}"kT Sm[jE"cN?Kc>K>p$f(v{XAoj5MljOP/a?¼K!IB$wpheB;-=Q#ڈ F F3_\{[@~6j Lw7ζ^{#'P|lv-I{x#H ^Ꞓ4{xI1^Lp&^&M5yehYf L٪bҶR|(K`wH/:uƆ"p~  P" 0$-F޷T8[45ʀS Z]9.;bg,+#^7xzeCctf?+Zcoh8`zãoOw ŚAuZYc옄;,6`hEDi pkpqCrWGb&PҞԥJX:<9x碹LY=;lρHdP>]jrjYgp7VC{;Te>^̆c샾 M)@ڍGE>!rDh; @ B\hR'jf[IW 2fdV$͍ z 0a]7䥳DHLA D6@79JS$'vоO,EדkݘZ?}z&cōH{~/ʧ'K16ٽO+{eۥAAי#EFor1}~.hӫbq\;)`GQ!]nڋo+"iMo>XWߪ: kUt+R2t};8,MJU_}kl=r8ςqXN6Ҟ,f?W>wT~S^̄]x6G4F)u,q%Q9DČe`9%XfN@" koa#6@|W*{%lH([׎Me1V8jZpV1Tㅕx rphQ[,R~I$kY $s6Y  q ZQ;= 7dMDBI]#e/y0!LP^ 9XSD̀c|,=*Y~So"d& By 5EeEH\ۛ.''=)=vn,x0 Ts_\5V5^q8u. =~8K KXy_7Kbv3Km9㧱 *3WZ~K9$zDxW{'Ͳ|&`bY`Pjp,™[=莫C ϸW.R25'-ğq$M']Nt)vefmi` رwm g6֕~]H@ BEͧs/B\vO)AAE>P &lc 2G@&* yLĒk\y}`7'=\*Soq7y WklR9șܝ^9_'(~/7IWJC*4Z)R0^9+ox$J Oմ 4$A h5)X~CW]$ÇNl@i\0I~* b{ e~2>yV}kmYXAJA_"πwn%:fiL;T]bv+B~by(BN(ǒK-!@̙h2)-J "iGQ: Q»2N]KEzQ^>xlQYsM-ԗP筫o[kS& 3xȝ+d}V6`POL5I=:y&x ? `&\L;/1 ֚RggMqJT_YCvXXf堰e}Y}x%/ZF1緯9$-trb̺!{FLvY UZIO!x4.g&nӽfl_~zçdE Xib<q7 "IaG]GKsZe xKMgLMRX~ܬ /wJQj$p3^r}huGJ]/D?.=S|Sq&~'M vcu Wu4b/E^] 2$$Ft2ƵW3\v8ύ^qr<ű;?SbdV>m!ZFx#î2vNԙeG֢ {,/5UcQ0ED(FB!4$,RԉP6 Ou/̎/ps${F A.{GO=SNUwZGG*Gt-H i꽆T/03ع)z\[g=H pL"Ēßҽ%c'ư;Y  ~rG4%oVr5*AUTt|_R+?L]d֮?=m;9_Nso#V\ Ng Sw~9f Gw猊gzJ:٬e˱:&S#P8 Bb~Wihb&R;dT`.t 땠#$bݒKX!lR>kM7bU(;p!gv0kM'%;ϧOz! mEtM_m%,vIcxHNԝDhj occ{Ó(cCgGrW-_zmN4*";)'Բ#D\{CVGuvj..h?XwJ3ݰV;[)* I^j~.臯Q}}xWIxy+=Wo!r󀾉,P r ?Z1T̩Ӆ)')~k#zPq_;-9\gg 8ܒ ÊkQQ|#;Úl'{90`:2Ҵxܵ…n{j]ok" L>ףc b^^ 9(1c>DKoavW[^ȣ Ggċ^\a4U)˜+gr; +6`yC^0&#Gq\2 ՛ފd;:Xb)N;'r3pn)`$Te.Z΂D8>և\IQ$y̰C=qކVWS`6[<}'= O;Y.٢LuR`mE_c+:=i\&a߸% t`K-ϱ*O9ǭeY\YQMyԋbhcopKPѢz{=ꤍ#w`{b3%zx._m@Dd$d_L"x3}iԘW."B`pMX=L =#hWpBaf.]D> b< AjMt .LRgfg039U;>k/dDk8HsRspHy%l~T&IoEޜ2T/Yz 4XOY6vQx^EtmbG[nQӗ'ChdL_:~X ; -\;e-ibEjopy%R:3}ëj_(}*MCKߺcľmFmʹzM&ej,j3E9 Zn^X6O˳ޗ-Gpl{)'YR'sn+l!,Ilui2-cw]nNFZS}%ќ^:%ҷU JRmenmOM#Jj:!:.c8P\ɒ8 v36ImfWvGp_@]6FX6ݳ_Rj PV7w5HL&[#w:+"$ޡ`A\c>ܖ8ՙ$bKJ=`tyȀn,˖}h*C2,IM.% %xcԽzCp+e.Ap\ZKX6_T pUT-`'v#Q @6PHUOJG~sK4 hV.1X%Y J]b`iߏҘkw-;QRTQ,xY#O z.p؜1,@"HE%>gj^AD9fǿZ ezF]I(g OM KcF}TNdDwCv m({]guƛHT.L;2^KH$&x=3A~N[;)!$$lrLowI^] UX;B4#?sM F7n@3BS='+MJlWVsTH5S.Rؽ$z.F.E!I[x*! c1ᷩ9t N$XVWeR.!1v#mؒWkaT= Ú頠淪T4D:U l.$KqW6Q 6>%SYs^Wr$ID@2&[{ÎR?1ch.4}>lT.j)1ÖSz"gdI2A+Xaj=3:3Pھ:#s\^*3WD@bF˲_γ鱾_\I¿ ~ M8+~˦9??<)O1 8@ˆ!U k`<A5d(*)&1|}PKr>~zuB8^&:iů.@Q'dyƐ]̐z`jG2< -"c*t\n Tu/э5歛~ t͝@w J:ilfwۢPNz/<@J9^GI2uZ3(hS Yo>Ka$"M W|ՃZ?o0g!WMN3h)nh5ʘB\kJ&خ:נyvQw9yu%0Q C lJucV>M8:LjSf b(>N:f+1Due8ԹѲi61GV͊'H=JOP?OVu$McT Bx>%X?cPT,ZF!'`qzzd@ bC_B^F|/d,ytAu|!䤕E_ jP_d Kvhy˕PM+[{Ad+h2ld`վ%4<` _~)&}Й2PVgAJgmrce9vK'liMxcN_[W.b]̡znQJ6fx؜Ҧ?C(Sӵsf.xjuFgo~VhSY-}x&V\=<'ÝᣚɲQQg^sO K  ˗e^%Rm|ܺ RuƧxQKE+#Oofw[NV<#IwL DCCUNn86tqRk~v G:+<!b^&ll2T 5qG@ee&y5JOwu?JrMHni bNk݂@R','>:2|-˛O$! Us5|v6*SQ/2\3ڛ(V}ROk\q9ǁN0ލ}*gVК׬&tIք} 6&A,ڗ 7#Tzexc i'DNًj$jr\Z4A O`:TT4J0] -cʔʭ=41*Elxy@zTyFwÝ6"XK|Y˖}}~}~^,ALlW_=#UZ8 GJݻk_4AkU5AM;Sf UP7(zA9ض?#Fsl u9[ώ rK_' t&Rys7Od0#W2_Mm4/\;Nٟ9V+aWB̛6 D+iwpF n f2,DJ".O$C)M}֘XkOHإVGyMD\Ok=~MS4Y0\̜WS7o/LLn4C*JW;z42gx9c'Vz/+bt/  ǁ@W?:^`5WeyA׳>Z_Or%mԖMO(MpOmx0nBMɶ]Rzv~CV 2H Qjƥ,,\JRX̤+%? QyHd:RH6?ѽ%J1 LY\I}NkzFIgs7vH0Vf]`oiSMOk2 (oϬTU$7[s~ oGl_)Jkd [$~Y!U:=v↉T@pEmmg=F=v"ty"6evC!@)W[,mf&P+B'R-osT] S@jѭk Ӂ׫)6ʨi'h[_ڙv@H&<ĉ!w-D.Jî0SVW  m81QbӲO8ȣb'8zB.5SRqt I#*º,{N okSfVv~5ar_-F3KYĜ~r41 >(#vjw+ O x㬴ӵD;_.s?s|VŅKV--Knq4W!%!fƶXyTٜZb|ʮ4և40 FVVfYԹ:@eKNu}^ƄczOA- v I\chiOk=;mb@^ Bݢ.?reh601PGP8_ؠ!nRCRɵs㳭IAX8}T#>lᮗf.\nCaQ>ӈWO^[9w8#NeFfrb:zT{.&A}1Wڱ2p&Wտ̡>>"/`.W@*t4cJ(.U<qX>f=n:޼*Ct֪sm)W:NX 8~T~V2p ʙu| C$iN,SwHMMu`nk-+oh;N ˰J\VA ;J(j,9WorG֚ʓ;VezLJߚ|8+2|KڏL`(4gk/"AфsM4Njr_p;*lpC0ǚaALFˡ1n|;A ]؀aBI^=}CNy5I&;W^l'ئGuL\m@YQ Z 逞FR)fA$BiB v0RRu?}I( VɰD2nEA`'cK^,߳`D'*O n׵2Ք k?I:}V1M2M$fK&aZB!h! 4h@*NѠ$ ÔQ)33(`HHȆלwk-G3 ӖAsûfe:^֯U> 7Ӝ4gXjX O?&9콼t$$B1BqpIn\3TS΢a R>֌) _%ỷi2Mʼcze|=ꏟ:8r.LOOdʘǏ*qDž|t̋HE~ƽ/w*$玘 cSo}{Fɏ [EQ"N"h>e_~]m*4KĪׇt~Z+>!D$e~?nĘ#v\ Bv~D'MMI]8tXxC-Kč-_gchinv8YN?&m#tcFUUKWa7Bgimt*:9 딳Ѿ fۿC^}=7#U]٣C.4~iF$nH0 Z{ 44A;6;yAPUѿԝW^k,|d?jkŸ,] WMH '[bئCB^ O>>q%tVBZ'Wgiu(An{q~;4DdE\e%rq8+Ȓq YS?llm8t݋l)=RuXfEh޲G?6- l\pyrKb>UKcW&dkH%R,NJRB*A `/C>J~o~#z} L?غS;ݵ!ԝO)Ro#GW2`U71F,6Ivt&~7xթZHq؊ڪ_CWޥZCϟ"4b <r^QA;oãJQ;#x7 ;2-mT!V\0Q[@94Gi'dc;-qCqG%} eIl ',r'F`!; w|A*|h쒒Z#̂Atq>i`)͗/,S1-A ras[>H98.z;dʌ\ko\ߧp=^9uwtJ :T ځVbƷ=OMO_&V &9kc0ŰߜD @sQ(JIo/@jƁ((u[F&;픀1g|u{#V6A0>s BJ"&ʊsJΕ,:,kJ C׫ꅞ™f#,J k<9|H6FPPM(dїՙ߬ |Bėi}U"qjN[GZL8dB&Fi= j~Y Zhfv'c7Xln]`W vH`dh~$nZ=Nz;$ 5C%k^H I-L*ԫ osL@ OAt'uHy2˳cucD#tNԝmCDx܈b Q+E'5s̠5>K$ Sjmj*Cr|m]i*5‡=tt^Bn!~Qqcrv@# wvZu\-n>+'}Ni)pv/df`D6dDr~,nttPB.WtA |$< A^Ƶp>'vtOIPVtrUlv+eӓ?hBT@LVel "q;Z@EmL@g P՜SiZ ƯLVk3bia Asqާ&DRa|c;x\hz3.1XӠ`ɳiEё$\y1MB7|x@-T.*;.}ػ1Ac|90UlBbӠQШ$.ʖu? .rr4&Fgv솣;v':`X(67Qڰbh)@,B /|!Pc'E>RnD8aa`5Yr.08,THS;1`o1<8k{ Jٵ&={/6Q@<>YH$ז(۶#У^kFq#zgqmiE֦j]fJvS_f]ŷ:z4@u~Jq:y[*·Zdq>=5 vEy#ևi7<<{B^ͪ*F=r^8HE/؃j~t$s;pԣsU6*;Egп]nM+{Uob>v';Y-*J2;4+!*l٩07!<|L1|k3U?>NV2~22h5tNUw;LaL,HqW˄tgV} \w٢"ґ^1Ʒpqrr>dIjUFhU^L" 1h)'Wj }cw8+iʧ<˱N>)i/u3% ~ʩ17܁U\\}eqzPb #l"(е@#^#4Rw?K2dz2fkѠE{bL{;鰏Y]i4]JbIhU'7lfNW_/zC0\da(P b~*Q#+N`a(R҉L}2*JQ0GAF3x[U>pvK'Xǐ0 |N(ҍ} %gs;׾8ߦEWS4Cx?lrir7 X M-qQ=#AS!n؏ݍeUubzKd06!BT7RlM܌R$eϩi'Юs*HyS? ~T@a/bCfUj) ݠt:9|4mhKqAn ???^6XZyғ9W^{e!cpUϕ=s%k~6Iא>W[ʜH9Kwj9L?WhAi_XB GH"FC&;Mݰ nÁ(JC+_wu6(e2h;ߌ̒|74]LUrU!<`"0*in*دk ;ї[*b` AJ>g (T@Ԝ*_E? o;jڽp4R,A˼'L*%gPLxyU&ܯIJtSsz H aqvP68bV#S6΂Wۘ S2p4+HJP>[ŧjUD*[qᬃ-C< x .F*n|S^Z:v2ѼX290bUUٙ}whc.ZbH/>=ڢBsaYL^+%c p8ll cZ)3!E[;:"E60^wJ58߁7owCQ,,e51"|9BB~ 1::Je㖴⻄q~ *|doI3.mӸvj^J9?Ҷ/̱HYM)B>L;kF!:I!q GY jk{mUg5-uG1'nWW84!BS0qEAC.(텻䮙 6*> r+<S4b| jB^2'0eNj pN{z 0bLHI:B)C\/Uث-L%ͦk(f A[埆UDw{wX=,;Y>n:oX/ȯ/18/$\XRL^tK?{9]{;vnMc5.R+?OԞP=ĕ8߳׊ý &?}"EȰY m n _zNp3Tͥf_[{b/ȂlX~3ʥY6k@QgI*eSyDd\srd{ ׽OX:T/3_Qjv6UFw0>NǠ y9A[CYdbNM>x_tЦ+pLnϙ\lZѣ?o\Er4ջ[v;@ܼҸv NCS nzW-v/)U_|~=arQE|rOkh0ܲ@8={7Elg CL"_54!ēyk ?~ #3q\6[KyS7k~ #!5Ѥ@SHpF hcvaChan4қ* tC{5>aHEfʤH 4׾YؚfO?[PբT12c *B1>kcz8C^Gۂ/rܛ-+gbB!Wb4hQߩ2i\Voڡnrʀ0d&-NەRߛrMc3&a'8ZR3V\O с0:5dh<||ll!sMU8 ߝCaG$'-N`01_Mڵ%1:X"/I͡˹x), p7Oi1TR'ui.`ͦbis:!p_!T]4 jxE0"6i K8łQt]o''+CuGLi;`yA^??48[#aƄ!7cxnBDQ]{>uka}pSxM4.$+Lv<xԛ=c#0H{֎zK"+Sm8d\:fa&3&ƮTxUtǶsվ6J[e+B^BVA- 8H@ad1v8] +ze$\:HGKSsY8s@|kaO'{DacRЉ!ed(U M]K1JV1 k(Ib|kZRAj4 w£PY"NN.j"=\j_a2BQ!|k>s/*E_!dDg* )GXGHpOcNC~s7a3˕u6l.hIkMh{aY`4 kA5ŴYo!'9qXҋ."_ /"@٤4sEO(+䔖RfX1*a!}2A:ɛJn#_)ꋥmT@y1Ǚ7ĖWVq!DGYR3:n/Fk.?|Ð/Oܕ\qQ+Ejs`Nδ@_}-I{ VhE6emr}Uc'EXJgUu*b: $ 9Fͯwb<{HiJ=6]M4V:+QEl4becf&VлRW:& jN ɹq}^Mޙ2':Dʃ/j0:|qLo/eF3u$8 ߫%(;Dz i;EІ7& 8NT[\=L;oWIYYT̨>x??Uy9DT);ў>̀|u+9? .cޕ=E}1b,kPz[a>`W?1Hs[W #;2%zF#|r[>oO n0BvF˼:P<~39,Nz$?=^jaX+UD!_2qr\5so4ϊU8q?kF?E8{3Nt5{IP KQsDSw57.Rѐ㽇u-4FuF(ۧ^-l`\ 6}ުʲۨ~ͤ Nʋ@% GA#c&[Ib՘НD8n7}W`;eхrx1c7LwbN[`1_Np=[muw惯a+S$շz8l/EHs:\A*#IS7Ozmdo/|~LW:oVG|̫'\}Dzf Щ;by8+u?(_2K(YwtthF:~k(]XwJJ1E}SS i0xSxҽuEj{+~㱭 f{e%c_:gL6[ƺGx9ys=S&r3o4UY਱z0`ӵ*9`B \*0bhT!4˧tRm!֩yךY VOGb7VRFM`J2JX@ŧBooBkDjVT׿&+u%.]ٵpv@24EOV)My~:ߎ`]%%ɓąf\4{)_"Tg'Lg`_,3ǧKh,_T[v>Xk+ZKvi2e$U$򊞀~3lYxTұH4i+\ & >P)K FB&`^aᝠ߷C;S5DwkM?_̳O"=3]q+O5ʁw wX$T`nDGVar<@MEgW/ `muE i.,+ Iֲ8Iŷc57d=B0Y-Hd7T}:@OP~5s2oŌ~ZMFŧH0e7[cxz4%lQ7Ev.ēv} #%hp"~cS*ax2^Ȯ yqEHM'kC+ԨNA7jX36WP۾>h\y[,vl&}LL4νx<@M"i`>s:l,Ne(7 Acq]7.d}ydx  a_+mM#N[DsYBd@&+ӿח߈θ +sX)d䎢A_!+%*nc\QbKtC,/S`,E.w"EEd:&Gi-hc.{)c<>4(Y@'HP0ônhP1ڷ+φ+wlhtqNfh*j4jslVD/du]Yvy֧) DCNݮhjq`M '谎?W %% Z[;i~&jXiсU{Tve45}.`\i.5 dX%=Fke 2F,o>́|N|i963Ժ0b"i'\~t}֫,,eH$.1Ӑ\̅B(}_jĥuݓu_CP?GnYU$5GΗ],"DR}e y"N[QZ]r[5Y.j-ujd-cYA0jp@-e|Jj>s$>r S{ ? )ans"g A5 !N"BPJ.[y?{zb^ʫOE OXi7R"B\Qc=jȒ$iK@5 0Pƛ +kuQENj馥\;#/c'.BvZHOXUDIkyԷ%4K7@.pE?f,YRT͌ WGHKNLR+"Bs g|0Lum=jKe몁aؾ,s*'VqWݵo ;sYã`M6>mQĂ $];ABf-/L%jwXkwөgvr9_kKfv3aHJ1bEzg IdC_(TpA哢Z|#)'guPN(2_an6V0}hh9[ckN1mB.7AK6nCiԻn <4oCs`O̟{ ~չ&2"PbOk:i>٪K-hV4J3OVp' PbF;kJE&U6)k_mJ:y< .j{hՅw ܧ>{G<]Hq'yh IK#dNj.S|xzCvnC+5ݴsbT꽴G;5m $'1$|*Mk+@nNщxxlz;o8PVxz0oQ׉Z5K N7)>F!cqJ\"ILl7|&7iVJAbQ. ٗ4Zqtt_aKU';[L̘y%~&LF}Ws_I~3s u+Z,H/ޞ.G'!! P(JmR!&=N9%f/D$9faYEHfV%/KmM{M|2PRzIN+d{RX=+(ݮ=¹TR; <܅rw`ѡXf0yr #[/dꚭ=3# Ӿ#w[pİgwQ<3!`:?kaMVaN(ى޳뒄H%pO1Jdh;,h3#?+Q) !ie%)Wjĭ݇څC}M$OSڙ;/̑ߍXm2{g]WdZâA' UA=<;LTc#b29uIB:&?\̠`#99e`b+eJYe vJTyO2& 5='QU5nӆ&KwJ }x 6TW\#LkΰԷy\bu#]~?ʾLCJqƟ=@|4䤾UΟh\8F> /92Ǯ3c.H#l\^kQjU-SG[8_:+d 1EĘ=<5й" 6|tgt6(~CnHC\GѨlDJe>Miqi'&UTj%I3Y>\oS[vMWfγ$kG6, %~{`W q90*=nAE@EwuUԺ(1BS3f-sK\ ׊uSU@:^')KCg"}}Wǘ dn0 #WyB1gsO;^\.s r>Ww͡ ./M%PS:,hQa`aZ܂4{-Hw(!Ql"_Q)ȱǖg3BQ]*?va}֗#RtEf׻O |5sxVsL8KǧP4sF&.P{)ƁGcgJ [V9gC?1T]cL#3;~ɼ ;4Ґ *q9WerELvmk[%a9n\nWduΌ]47ݮtMpo&;p}m95 V;PTDk!hE X94/hYu!WA/rre;C1Ko0?h3],@% ?7q*W/x |HG#+feʽEIsV1ڲxFlɤn]Tݮ >[ne_El`2ٌ^yyw _E#4m86+z;΢`Ҁb# _v>s"lG`~AQava0jt%toL;iUNv#qzL# Y+s<ys|ŧY%xL)*7'M$URC{@l c)[@?ZZc hysW7k|ȑ( (L,bڼ+Q9e0\ ^[QB elX~qڌ㬭87%Dt>i޹iIu)>Yd"j5E_Zeu#AB+( ž7Yk٧wD `{ΐ'~tיpET6A鐇 :yD>1sH4+MS@w<;NVJJ.8>l!FF-dqq)v>4| 9OFÊ>%^E0HQ!W`_!FcmOQgXǴ&,eW7)1 C7*A%聏E׾r*[ r՟Z2?`!>Nn#]&[L^vLDF3BqDܷΡ1y ?ySDxcot1a &M|e"q8GjSo0ר2G3N7yrʏl W|_:$mPv9⬚Rɴrk2!خ :cޝ:inW|3 3&%B:҈Td1OG ZV0;9jmUְ\C5Ҙok + b Hr}\|Oe*bZ9):=KuY΁7zVV}h|oRȆJqGFhG*f<&`!II4213SHѩ?8ۗßఄ^Nz,.6[vX*'tx)6NT.){ptܩ6Qӊ]*בVGɷ ,w+"\L a@U/˒di~ :q}(~mL@W1 Ra%g3pJ,PȨ26<Kb0H6]Z\+?oGAe^Rq,h^JJ~b4uU.a{k<(00P ]Ȱ3M NHF=wDi)s%ˠS tg\[3ʤN`D!Qd]`^ ӞR7MPǗ M9Ghvp1~uKM&5ۊ-<( -?XQjQbZĜf|nهs{Loͽ݇q^`OA1r)&?>OMS%%z#w(ȫ#i/RHCX\'jSjbU1`ka9 ywGgC͇Hfv.Q?Lдg )Պ^q֥jgĎ (f*XBP.13!& 7sUPFs8,Po|P]|zc4TƜbdb4 YA{Fc\vBMÈEA]i]vpiH'g;Qq G+D kӓ Qܟ"BƉ2 M} Pܤ1@HCH{iyMLqv4q/m|.-hee&ifqmT5Jk¬2Y\DRG?0>#k$DXrxS6f1σpiM4̦n`h'* mٴ[5^2o! v4.]u4hZ SwE beXF&:曵tHTՕsF2칠ÏZV:iC|hGi&ŽdG>AȎ\.kFr*R<_4 H5d5A#38l\ S~2#VψIw||M;pȝ?&1#zdc( ?G7 (ӹH54RK Z2IOC95'(GQHM6he>c]) m_ !Ȃ1u\gWkl{ǘLW087qT Oflovj[ܢ3}ev-dXOm]Ua҈a%!U}{?9h>+53ɓؠB0{ϡgT׍tW D;=&1~IuA:זWX Qb-& &Pm'+Խz(R⎾U׃E_P(wO>fp nsS~uMܥгw+ TUG#O8YZ!$;}i ªES@%]-TiΊCBiv<ilm>>d5"~ uEX:B_>^}y>4]m5jNDžB$ -PV82t5G-6D/bMWۡ|PH,͋5${SHI%9w{.]3 As wg2N-OwZ6ѿ7o!cW.i|ivHk춎 ,޿k[Pī39@y}D}!$1Ű]O͹",Bz4}J; Ğ!lV xI鈷%xc05tz: 0N}iaeϾl*v"ޚ^~Ae(Fs ˮu+ u#9.gOMKYceM5=ҝK/+JҶ8X]3A+LHW}Hx0Y]-*]R_@E# Yfse9@7I0~uG8g1I-n_<15qt5[@^r9UQEND"&E9#8#IoIkKy~\Y@8Q7_txg<ʹ,IIe 㗯X8bؚ~O,++FG)?^JUG|4FuJE8i}tzF1tsFvFA +CBdf$=QX(}yQjG_Jl3A +B%hO' ?H(vxz`>`BТʗnI" 82~V-~߿oic45-sUYG C=/sľ^&='Jϴ E[Aa%r7C#$3%[y2ףv!)L;h%Ғk?d|o+*vZ4VN]xCwb)(t0z:B NVQ9PiÒ 6o 9.Lن&nv)Յ- oNGlHGTAX&j=^MHҤ߭`D|(wNДd!kVvN lFV\ +xWI(,5TT@s T0?+8Je X# +G[/R<ut.LV>0Zq $lavYͪ5mqyjaK:Np$Kahۓ|o6K@@[KBt)8 >k86ٗ;n- 1D|d獮,CvZk!&J{l#ɩgQ)! 8:}Bʹ#Il5sXYoh1yiᕪצF 15wkS|p-+6I xw)K-<-7| I7˿і+jhcLQ[O l$R?u͇,z,6v|ȦdOH79H>$.X@AuVcöK+Lb^|JKIc.:MxD|'b$> p`x`PЪ<9C5_:Zg vELzo:2]g8=Wn; Kr$p:YU3毱=X:6xӥ*KqtC̰26K"l8Z*X,dȹgq4yvJ8Sq! uJ8<= czy$dFsF)-_4NA.juOK!>(33xo|UY O8^K]jMD.Բ sj my/9Vҕr:u3CFMPOQo3ѝ/9MhVUq!p_Iܥ+|c?Rհ(*Ccz{<33`j 9#)̕wr*ɃMv aR w">T=µW/Ħ`BEt HwP1Rļ6B9 թcd lPlWG{WDDv NoB+mh*N;%|DρTUK(>tD*4~=;d٠/6Y 6hdipVrhW !۝{B"u̚[Kpl(<D8nxtс>n3{ CӢ8&xIb^ mB9,2曈D8w(ƥYV88[ 5| o۹Rrb=YzV_p5SGNpq]ĭ6ӇndűMoWXIWdMsԄ\4l.;(.Z-qW;2RJFwBkY9]K ѣ siw?`ƫG8:M.bXN>+GFaX+ډ4+dCA32@XTٱ?swHwyۭYHc5CpȂ[`(פ~hR;%j( %v8bH38TDE ՝UDɟ3>z_kO426@Jyjc c-eUL} 3\™y zfuG>V?:Htv6jğ6 eUd Z0nN`ߢ>&]46>]Q^3RMӳe_$J1XGۯ"r)I);w+GG).ے*KeW51/gυ;v_g/)] Tx2i(>Ȫ羺tM}EZ{r/\&G7S֏5 dZ✬+EȘ? {̲^@8 ?NMEDsrBA޼$CQ'f^ӣXBώ#{d gb^MpBNe݌AǝDLϹcNٛXCБx0B댸?0/H7%7*xBƊ8 PWͷ gNVȣ,u%(P-A-ָhW"Dp?850, _+x)~%,+2x#l ̷QN}{hLh$+懆X=D$*wɥL&]U{1%!ƍ06l걯WT415T*(_,2mѲq}lwuvU^}_*syߠ >%];O3kCs\mf_$')pU9vg'km+dΟ#̙ W9ONӹPdEnz3>xXT\MN~`">j50_XÀ!VؙDQۻG>pR^u@ʌ ̔8FV9sLMic]2 +"RgoeH"c{aiJ 6o"y{Lw=QLϲhϞFxKex?|AД):W Ꮡ;xwuq!Mԛe1_0f]HY[1[;,dB;{|tK2 0.:@ȍ'JUG6P'$|/e*`#f54Nv{% Jw1'$ɑX;s ˄,%ECbrTd׊xE@Qh)Wz*JUe,f˜H??nXIbt"K2G \@iP?dSYbΎ^^KXa 1>iNiwxw޹m MCQ1z(Hյǫt m>X6ANV{ $@ > =m`RڙE[ i )KyҲ7;ϪGE+^鍿 W:N1X;IG[wmyrV,v xys>׈/t%42= Uj.׶O?~cotBCSw3^4|\3=I6>V}RUdC3Ɲ(f*QocXT9=}-ˆ +,>ihѻQ+`a629[9ppP _RR~Ƨ0B 䲌>B( 5AEI]ٍA7\KsttY;d>nwʇs#PfZ<3j(Zi|iFڀn{޿C3nxF.=jܣ>rö,9{Z X;PHȒƧǫaB҄A qA6@,`l=ٲV@H}Dxͽ|B#x9v:O't \6 {"4I]֎o|3LRvzcşX iI8'{` :E3vG 3M~x-1 {&r ra{g,;/2N+}%dh۱ 2S)¦tpC^CEPWMP12 |ҫM3c AKc(,9KRb_V0>G0{ny%bAᑔfM+sd~R*~ܒM63*;ݺr].X]RӒxb$2EQ"8/w2J")> Йup,k}f%\DrGNvcD7QTf憠 f 0P60Y@[pu 3y˚_ʫDJ8Ŭ4ώ`O^ј_eq)dDZNJ&^`瘼 uu)GXZv;Y5b^C:5 ro|Si~@5wC 1Nr_f2ll"H6j `:'g)GϙhW9Lo4rR;0 BDȖpk"$ Q.3$~iaC5llfKBXAZOiFKhCov$/t/WE)1ESGٌwig:FPuef&(5\O`G!s<~u s"np(<"]dP3ݐ ]g1[QmevV\_R`X˯n 5FrVerj_=sw[)w t9@ c=$[͕vra amj Q\kћ 'a js =$QI穕Y\5ɭF[fJ'!B1]5'pNc.9 q_3c%^޵P"P+ں,{l_ðdOsJ ?'s1*.8QX~xog2J 96ǰi_sG##Or` 1*'!2Ʊ>OۤVoL!WFSi }w.n4/_8WrzsAt0,5$I 6yAɂMھ΢n($gRF xusbp,ۊ|1{-` 7M iNߘFl3 (uxc%/pE"7@h!bmTd"C" ; G*Jlm1_rŨEo&Yyeq'KxRM?ZKoM}$8:,BCRg/L"Σ~,JcK 6½||#r fEmR[H y_M^$q\}=A&3;!X8i(~= pG^Nf;S^ /LyF\f۹T}( H9>L}iIPX-wT"rh1JLu#}WZ8QzdXy&B!NG$d{w}/}*5=kͿ95p+!2EfӔ*-V˶=?g:hsS52#&b3XoI UB2C&T-²Lt$8}^RNZ3?2[=ój aG;:>36Q"FB]+qeVXݒr^MۏDfn/|B14ǮNG 5rQ v\ݠX-౰.?#V5Ul^^cuKh;xDB5'虇MSդpwՁ ݇ W&w紗^>=Uf0m@껗 [[+8,(\]bٖQz|,!-߹;D٨b*yw-ˊe3u =$*3[ "> ;HmI; 97ڄ)/"d>RWeZ@WW D*@kC@˅'8P=G#\2,"ʙGSX`Bn6E{k 0G~@y-D Ǵpݦ $V霁ːj3'^3 Z-6Aӳc|P';kx%?+>m4bvT fVd*)h9ȢDGڵ{{Lм3azeE9X׽oM{ܔYbuwД >qUU¶8`E7 ju|KmXB;w05̍a1g(a܀K *AI'u\O aI&n|qtǨLRaɪtyqrH#]}P`Wm3y bg_+ J*_(102pά3͢e nZW3Gh8vvLܮ-{l% 4jRgf͓q,kVIxi$xht)zK-d&HEˌf.kKk9堕\Z{=JC >No4`'A[y("9<#gyydD὆GJfv'$&&%c>Wr_C>Fݹσv LiH3Wi]q qB?V4K(EG:-"a?9Obj!v%x9pxR Pj<,zɝw5$?]Cb8\yYl<C{@(Ԓ=nSh<0,q66MrEҦp ;L0@^FW&?e)} ̹ GAJ;,1=k -v X6䒥O-t"ק91 Z}Fa໰z9a~_lm>̹w:JȟdTMSY U13b!I`"lS~ܹBgJ/_EOXv˭ ϧ~ m dޕȹ ]ZdpS±qmu}ñԥ9[:Ŵ͜/|LXvԶ#> IjFlfA8j1T 1Y7U+a(#biڤ9Q̙[~..AUgP3!O; aw4&Կmޑ0j"*bv} Uq]m}GA0Y'ٲn}%A(MvnEޯ0Xkx{kH6ҙ5YS!=ζYn`ӝxdzh0KjuVXF 73U`nn/f yW(ߣ0W9V~Y&,zEs A.C5=9 z7Ikضma裕CڈˮNn1 G)[܃Oqmh/믲,Z`~7%Ô#/GV#-Xz߱LZ&lN'V27n_@sҟv7z;e@@|ON *ڝ-ؒ.kh!l!|5D/Qt-~|&酆e(Q^8M{hc!(boCV)onZb CS)(UD]bp"YRus=bA~Am\1P@u-o#y{󸰡iʯͺZseWw7RIkTTOOb*_VLTMNe*4CiIQ$7oDDdP6JcwD=+U6Ri;0-殟)SSe=ļ獼ؘ׏)ݵ}Kc)nZ7 ҍU,y||& ?JM\A>⦍3U#)fw2Z)Z*,1CY>8 ` o$#dW[Ɣ%a#W6l/IXLᵵ&]8|wN4RA6@gI/ȘSq)\*h&:}%غ-Bxv[1vn-(VcAgt @>Տ];%{A[oj>l; "Up/ܺh9?&$;S@v<m7F/ kjLm,`S\ܓ6 hN{XhFpNp6p 閅"^)|Tl řFP>)Rے~ 4# ̏:;"楯Gs[х@>(dI<%z `UB'j|\%O Tե-i 8X*ZkZQ]k=]EsfȌ150g1hᇼһ ) xNˁ( 4=;*{d ikd.l 4I˕ pWf>Hw޽ρ5LE&82+ A̹2?!2ѓRW0ާ n2q"'3짞;'Z\H*)SQxTl?u36?4hgEE!A$٥+-|1FT%;>^vʤ0ܮCNt QgsHRkNNg+q -eg0?ͧ4on-HSVteA:mgX}vc  T 9z|8!=Qr \uv3g}˜I"@P3pDSEY*Q%50AtA-$WIH/csuI<\hNjUZL m7YMU" Q q;Jq%2d"rL>SiJrڬMeU s.0D$?]Z̚5 KT Nn_PT |4yIԇ@ot}] `Z]Uޕ* I2pʻR&H0i4QIչ$4K-EN5D+GM$D}4V^mxP&JҸ {{2ef'`> sc#V)uL|LO(azpA*[baְV,i.ӛ byQT/iNi\<RYlG<0H] ZfmQX ka}֝*]^GC$z= NQDO2(̡ ۠A# u U(JI]Ks<nߐ[:lP[tnM_Y8%Z|;K\7C"%͌T2E%._WCR8:n>{0m!{|oWi'veݘrٜ A$e:AiRSbRm_pW#i;jy5s!+gS^zT)σUuR[+P׮n_))yvhb|dF5FoPyz4(  .G-.[&)7r/Wt {ǑJ_m{1jJ^>JW[,.#dI(ס`]*?-]e_tDnmGT6[f(Ie$1Z _<ޅd qK0hH$K$34uzSrk:2Gbtrk}K {w1nbX3Zv!^ K#?B*72%)1wvg5~DM\>Y^o~t-p{k# :r9hYr]㑨3y5JL+RLc̳>uW]s.򘞳 +@qBFDjX*Kf]a}_zR E <Ї|SuzmbHfYBm i)­BRlQ?%]xn=QhXb2W=7> 1wq9]$Tۥ)GG {XMu~K.STWL0{ ᒂ0/TDt6H[Pe[Hy>{'w''ɥyz%ƏSA]c ̋! /ΧU{ iD3:NJү5Ȳ6BƁG$ZxT|@ȁQTBjy"AEo./ 5偀I]\wEaVq_Zr$t'ԑdidi6#|vָ}3Vef]ָN:鞫$`35r7GVEXmsVPݒaTQ26]_ [#QXE_:tWAf kVp* |@ I>#(~G=4s 1`ȯ9Iw3t+qüF)3ҟu }_Dd&M- : X,_>bnȃ8MրΕP2Y߇Fc GP79}m(ibX|=Fɡ4f-ͩN6uo;'݇+[\p wVH0ey(Weͣt.3׶*"^,Z!p5 /@:u(l+ʌ vÖൎ%14x]m_ L"S2^?c>ehNKgN]hP4)~]8mչyȌ\q^rYa6T-SBd[nؼVrw>%^ qDDPG?KF{^" "'IHrd1ЎП-G&mqqWvpr:b=,u]wGt%l81(E#4?~67{뼬W4_mpV:r7KDC;6bst,YHV+V%~CW'4%4;i1`x5V'@5ZIR$^FdZx0#U7iV3O\pf-eޫ+n m1?8q=nIn~.(5͘%D΢ N #'cX{.[\jULґl·&B|g~Oc&/Gй٧)^r^vf9OhkƖEU ]Uc*.~>Ro)vClP3L-AdrKmN~'GҘ).{4UB9$[٠:2EyMd{^W.|~O@\" p7=#Z+iۘ..DZqd@R{sm?sfAi`q>ˍ%luh4bLs(M QLC`!_N-ijqY(kſh\6~md߳zSr=e[r? |W ΣkͮVI5}Gܐ$;4VЏ5^W𥄁 Ye :etisW bZx0.jv_,ڨB#=`'>XfXAh{J=U_ {c^F&0N=~*n8ИhxCp"@arkq˅Y ס"vʶO_LyϤ& öV@p";bz̵^9!D֥Za<L35q?hKz[i敡n}qkG#yW9 }2h[ ʛ^8$qhFtm`}x*JVINGFxcY$( tԃnGiB dhq*L2@x tM'ۉ&|70lZXG}l)yTWuQ +.[PRA6c?t6l n %F-&gf/VEX yv{}dzj}.UxABpqe˪k&j9?zm{c_{Y5pq %I @<0B~ bKإt 8_%+qbޔ-*WHqSKZIZJEC= @ɎsUy@xv'-GUXէ6Ԑ0AϯT9 xT;|۳$Af)V09na>&|V<%]"^ld#!2gB;^4Շ.9Ysо'޾|%8 z/bylp ]-Pr^@[k0B U9.=(͖Ej* &~$Q]a"bz2jkw ctyrZ}6^ &k_BpAJ-}l$<_Z("[QMׁ6, o1bU=٣vz~eXd :%5x)/Wo9!Y0~fpQus{/| 0*׬Nc[`A6{Ligg0^5B*|I_j{&Iĝ5L騷ĥJe@ an­/}ō$qv2Rx"<9ɓnΨ74,&0"{U}S;GxO!3wK5#Ԋ0}& /y>mTO= vVh\?Eu~.GLM{Roq5va`,Vl/W⇜SrZ5VJ8ZBG¨Tb8~()l'Pv/̢,e>hȉg|vMJ郰@'n*6zR12N3\c?A  L qI>{/C.[G ?2TrIaKo5uOmy9ZdTu{`^n գ4~K6Ak%2WኸĂ3I~0鸙ݜor5+>"i*ЙNt4Ң_HM㫷ymaQүj֖ ÝsrbHMdF9ӫ.ϳ؝iM-ˎS7 *HqG)I gxŅGv `ݶ Lc|&x$LtF\jhT>{*fZ\]OOnD"mcWMzWDe!:>b53pf/!ν\ YH`VG&:'Wu;j VB4cwāoY-(j#;&D8N4()ۂDK^sJX}ڍOmp}|L`O1;G{ 8(t@m`Glv {ݙ4F!!Cv0Q$>2mG-{s9oǦz!;B=IJHEGylB*e ^s~N>P0Êp4pU 6} 9"%)[@=CLcYd髰l@ր`$F]ݗ8nl7p Ol#&xN=< mkW/4žl. oPϺ>#oˑk3a0uꝟaLET7b1kt3A $A3bJ@Ld^Yc{~i@#30жiKhV0)EnPnY)t mfc}Ȋ%(3daл|xZTN[9់Y3ˆ?]Sd]ˊ;HYКZC}g/bϖb|l<$IE筃yKЊ 3!||y[t|@HQ)@.+kMVrxlcJi̻K7gJDCŀDa~ S_eDh@lgoCCD/;g«qx8gw*lXJZ랞,hMEQa _ fjvx6}t8ׁ+ɌSg ]`n{H 'uOr4 [-Y(ŒX9;ґ~ cx ypưj[Rf U[*6=7&wF-BuyF>G{|KJֽ]Mː- ׈'I=RYMZ7$biy?:| !%ڊŽDWLb7Bpb) ǵ&tIL)4oEVF#;Bm|PnFTGa: KIwTs{a: e}oU߬CGE15+p:ˬE/n7GgW8q\'N3Mך4쟌)cJ9φ3G}vXNm2J! TǪ/{7tt|]mEv$/ۇqMd۷!cF}8{AVOTIQQk-u]'1ҟn 2\{oΏEIÂ(mC.z녻b3d̷T_qO|%ox:[JL-\N@C )#%q |Z> -ֽOVA"qu~\cvq) }nkv T|- DtHdJվ Δzᩄ>^8ј4Mspr#R֊8~V)w%9УlԷ<]n|2>¨ʩGn2wOGpO2UР}o#sy TNROr~neN^r./>"Y *Əj0䉣eS7ƥ=)'1H!7;bT7PizmS uSxU,po9<:)U QحR;``Ȩ"ȒE!^@މ~Gf+*P_%˞ 6'RtWcO[@oA9M@C$.C~goWQ2 Hhs-l{ms'KsazHH#CRd.cV,BSO`T:҈}%/0Lf'XRzЙweB㲈mX}9Dq K9P>Z YuD~qWJsa.yŽ6ljJփq_tx@v )fud l#.xiqJ]Z>"tR>-~A$m:[_Ewg ^{2AbKAI?F%p<`C)(T2jgf0end?!FӁyi'zj36 hYql0&Z_\*^ݘܯq.$= jOT}soy-1#Nr]'ůzj^,cQ3#QlZ;w٭<`Dyw?yY9l %ӱtAMCx 2=if;HʲY :qR)ݤA'\G@ Sb:9:2= KLꛬAqtAA7l Ś8 %pHZ ]>Y%| :fٛ9i` [9 y/AGv#fF7KOtju6rd]{n33hcyyC#mv;1c#|n8Uܓ/{CeG7NԦ6Tn eovo Б6fKQZ2k,Sbݓ`?Jgt`uJӱB7Q-f?gcȝvV%H+aXF DIG_c jq $y7h:{4s~I *φ1 $hS(S[ g`,2Dc*~d8M3hUn5uuô7[괨Nc3*#jWK`HQIww]VH@REӠ^?ɘmމ(>,Z;wmV+|l#;acy"ZfYӤbN Y1Cc'iz&OH5 p.91|nPq2w '|n{x;\O a1?F?,Q86 D؞pjQԝK.-fx/-C(׊AW9Aɟo(Z D>11l .+0(ÿ@8{g/̲Yy@)V,kD 9?X{Y %*fNlg:TMg42jͥZDdmJ)# p|$Zgn&ojerIpˬ׊m z@ZNܒNf$rPyc0yq*"PT|lb >Yv S2< PQlԈ[a,j*%`حK;cXYQ167Njcev+>+E^l0zK$(eJzT7C+F[ =t eQfc$r}("pO&cub G8.KA8&YO#\;A4-S-GVg+f)f CYJM m#?^ ߩKv;RH~ |%w2be,! ZI;6V:G'@WGV@^TMJ`s8w4>Ls@^l&|HT ysyWp+`iNPCo5R5)lZKL$\լH^=UnH6jWV#&~ˮ!q|BEI\qKJ=Wy.9g3Mi4?JZi R$8 zK d؈=i>T ŘaVE|~2aVbNyvGQ$-$6 B:aMhj{fAuMt qUaL[DD}j@xe)0!?od.&\C^{0[2$r˶&?;"~ 0{XY\ܚtO#3(<éK2EO t㚐iS2.Nd*gR=+ vK>kOmZ,p#t0".;X' 3z;1 '}WcUOܜˬ.-5ɒ٭> 8<>S;Py$ ްT >&aX%3א{Hتg6ک ;c<uOԔw &`ѯq&~jGGۮ'@6xXIr0qB" am!ow{ DNMvK4WI }ҳX wWW + . IxeZ\َc+g[_Fzv+tX0ݡթ^^R9^/\(\F/γ!GpWZU_œM 0Ka`W4ܣm4m9pޗp,*x>|YWnZ.)6]d5=L&-YzYH?+ޤ.jyrn1޻p|:o<VF~BA  zրliΆ~2즣Cp4 /Z`y]*^KwH[[. p]6!ȧۮUGVw uTi~ (d,lZJ ^sQ"\[%$|Ӧ4p-5PR|6Ge4@ 3J̖{jzF`m&Ia) ̿67!qzHFa Yʬ<j!#849->Nwވј+W>Oӹ#cfS/'4{$Iqh&zd[;RF%֯( fop}g){rP8cqQD 4@7oI>#8e{ޚJMV9)Jv&2npg${r5=-|8Y\nிCQh؃TqP 3' Iɩ r4Q"#_v՝&wBѴަ29UqE&Bx(Z24M KD8n[[a2(kٲC~]{"yG8 \^*|ic97;QYn#"l@l&Lajxht{p/Ǥ0:&>m8FGn@ʌh[TƽKQ=k}128V9"R$qu--\NA^R5 ̄AcnHP۸ؠ3WUKán}Ó@aUؚ?/Ǭ\c/N}:iyzl3CA"&rwn&۬,ѿrȥdfOgGT+<2UHcK;$Cqv @rm[Цv7 H ozlP'v_JlCփH|ÿltAN 6(~Ŋ/CP _M}1},.7^U|ܨ\ O+Nqu@BǓ1BFUh_x]ԒDy;jO2_QݼSC(3jEexHpW|)B =ɥic~xi٨j)4Cn0!dd6@{l=ʉZd$´"[Pyx~AC0zM  T0V(!5{T6R2xJrITU*3"L$d˄i~{,ϛ+3NտPHLe&2ю0!D'ͽ2?a_4GY$̭~4%S_lj#!`L {'lƶ^~0TZ} 2ιa31ԭ5bT,W\ϲgELiaKq|.# ۝wgQ]{^} 6M#O50~FdžZaTJ uRke窟fyzsB[~^|NP5ڧ|#D:cC$dSBXܛ#PYe]mGF2ixjwAL:y)^#ԖɤwT# K]y!m9FtAU m4BY -bZn데aL4|5{q[\y6 1_(jێ[4>f0 D;#T!tKuC\pS@2ߨfl#uV_<5̕z[1Y([UxfΈ&\*43uucA5k`rE֓qYjW^Vh 5kX^|?![6@hK׾^qb'6-gf؋{th?ĞR֓Pn`>h]q# =0aWs 'ןP_WpBaՁ_+'ۅ§M3B0)vۙDp%W[@ԋUr)7\[.4 {g z׸Ø?^*a|'8ʶ W]zḢD]2W9m?иeQ]` qhZM-Gנȧ 4!@B! ߱=U qE8#:'r #2nmn"0JJ|C8ta:Fq`SL젲oY86ψ-S۠+[Ѳ)F2$klPģ7r\dQ/oQ)Vm"u~'.'-$u4On`sp[#O~>*8̊YN֪:` LMq~.^]'r`6,8xX]{賏_N D LpX94{2.K9{L"8Ԩ1t꧛vܐA}p;7Ud اa,YNj+w̳̍Ɛ+G1x8ӖKZ !; S?D0iL KMSBF6p s?쓂ݝnǭd *rzO@@k莹6Q_<~Cuhb5"t 5a4X8ۧEX)3-79&fx+]"qJdvWې<3.@p2ɄےFGvB@q*rOX6.Dd' *$+13#٤Y蓯zX x€"$PI l l\(t즩yxG퉀21gQ@LD 3HE&/\ml|T<<@ӱ\;{5cp8 g_F3+NSP>]8R-ޚ4cRuvplkP.p'EOy%ɽ9"%MIY.a(so:|_ e haz0Gi)c!4ve bP|٧ k&yvClK "; jv]3QͥYC֡tz1T}6 1-8Φ9'ٳO 6LnM꫕&>yE T.|= ,a K!ЛÞ'm"i\PXvAM!B%oGQN$.j/JQ}q^Ybdg'uYA%xy5*g:I(]^Ǣp:7םk}|cntՉE;eLmʊ[sBIOQ6=3RC`vLz1 u#5eQe_ ӱx P+?.b16}]E?i{=]-C|olPcVB_+7`Ye{0A # 80TuEVU0E$WNdk:H %v"HuIu FaWGiElKCHg2 v#XǕFX9>wplB'~2"O[;}}Mb,'bERӕ5 08bdEtD|g{:m0 Z. Oh$#Pbv7Aۛ@Ž2a6תʪk"q ZED4L]#>jNjUigY%׶s;|7Wj)q[lfgMywM tm5|Q󱕖/.~[8^LX!LR*Q,58[`kVY#o$wb~tpu3'[Ihu9"N6iCdE% /Nw~:U/&NуL΅$ pPo<߽V7Zu4'Ф${qsI@xhȰ;_m n=X]DIu&+z了ȂVR>{]ii8ElqFr#WU̍Aei FBXG#.:|njv$y}9nMַK:)Mg٨8@qcvs'n}t^MyX1 hrEE N0=U<5pGՇ| 7jO~cPqL ̷h58R %4J̛}+*}+‡\hqsck㊕Ǚ)_"sQ <&D#O6W[~R L9ٲH 帊|+?&{Ca6px\ZZHWհ;) "Í wmSd|QX׾7 Xbxh3e]j ]C3,Ϫ}7dJ@vVgJ"wWZ6RM <}!UeAF]xe(D;ۓ+emP$\u}^]dgxpKm߆)NbgwYi^5l9ț1*A԰®;bxԱނ!PQ-={x`C(&B],A+= r:/eGvfBJeVj~qO3hG4 K ɡjowR=pROq~gf"#T“CM ':&OkE 1z/O4Q4ZV}0yuϩNL_[M|}x‹xz,2i# 0+hQ"z}o;[BzYC2y['PhKOut) 捿c`ZCv.XRNa/ $@}Y'Ym_w0f?HLVDHIh%( Sven@ +ܟ^,L%Ca#Dxe Y}Iv Q P;9a@bTQ;[-i _46*,ذ >ڋ[TGᷔ# |̯NĐ!h`жﷺ;,9ŃPϪl.c LਡDn=AO9.~tDS K>?W#e)պ1L7 ӥ0"3PyvB}'&\6ZJ1/ @ΪiP;Fe7?[P껞[1Ɓ} sw ٌ9;ۧuvԊ|qiD#β>'/yXԑ!w0) "xY x䑻$Cprj}! }hŒUxSXMe^"u`< (<졠DZ.ASI]aj ѧ"ٖz('fZ6Z+cLzLIJ%Zg~񩉧KӿRm(@k4/ U[/|VXZ saɲ +_ [9z׮EO$f`0ܣWw \$9+;3j^D^3/"9XHP̶F P, j]@f24[|& Gc'9{1>py(AbNh1S-)SmA320(㪻3 yIs1I,H T' d*ULke YV){ɽoKZq7ǔV .ըv6WqU/!Xs"ӯE( Z1&*Nc6 Wƻݿ椵Ȃ~^C&k 'q1cF4|8X 'Ij \PV,٫8$\V>?S #,huz%"1s6{ ǥѓGT/gDdVN-ʔ}#O:6iQW7^8C& 7'm[*L~xRQ dN js&P*FDHRnbP`?(}T` ׽EԼw\"ۅ?ړKjIY2yU2,Rb|K΄hI>UR**2*Yz= MfW4Юދ0=wڇ58j|8$S &["N!ـS2ҜK*7$vIՇ"=XCݽdC߂A*b͜wEg't/A/hiIS6R.6|1p/_(oLt<0_g/B̧3cDp{VThB#ק?x?{ I@ى I^ 3Ŝ=?yڐª@Ē;D2ɱ7%mo%jV;fu@iS` z /:P l\/S`C&( B8MdZóư~]B VDcJэf tkߦ@ͻ_ IC9' ];O`jϕs@+8v١kWoDo#f OxCϳə |C}@|)]`;4C_bTS|gaP%_+?|mAy!8\'o?j5FI N?^rxG7^*l,韺(&6:HdrD 5]Az{y{o'0]id aߗgx OU'|iaWƇ72spEJscLgvlm5US Άb1VUدEDXӫ-w=Vs-׷ 5lU/JE.nG>=bּ vH 9 ]hU{3/NtjƢ 4"xw,m:+g ^u,V T+]ijXu6 [vf::xwF8]jFB6|v{̺2=F2Z)cZJ+/ ]O1,1N5GN w7(m p&6vHBbL(lW7:26ɖ_LsҐd ]MgëN>b\ո+XlIh)_z'Q'3n yzz,r~F}M2Dj!vfwE.I!2i1W/KNkμ7Zf .AWL!XZ6lnG% 쉺A!8-Օ]፫x0ҋ>i@Y=UYv`zL" RM jDh^7F?^-YL,B4( 0.t6J؁ :1oa(@>>}C`47 qF}7~u˾f^,{.^+o<#!C.$HڬLcaCdIbJPDGTzk p1䪧UX*Sd#!~i)oka5zA9yu-\Sw7Q2W B7ACsQZC` {\xo'}QQhx0,P OH|\1 IjLJ\ kiFA@Dzb0% ([b%=ڢnGp"2 P=~&@@CS^*ºmGy?MLLT&,,6]Z aKy_%YΖԱZ,k̔"F#h,(H;FO:7w ި%Cj.yqE5)1 4(S?Px7Ϥe27tƿ%@95z=쫕xl>DUPH. (b gPHYjw/EϐyV-n\vR]YIEb13uJuz2n# ˆ{70 ~k%Adܑ+!Ga7h<ļeϤši=Banֹlw$K|i''l4 "ƞ qp[}moI70GlhYG۳DIn Dfe!˛q |?6Uhv傍0]+d/c4xh_n)1ƟS<挿R; sץ(|`emn{Пtp LYfed|`:½<F+!KXp#4[n._AO/pd Ek:4cx &T869gʆuF--W j?x h} E~ Ryc6ק2/ӤY&/ `8%jBe54N@u 2R@ l>ZthdSo~C?aby )nWh öֻ<Ά18@UWl- gcYbr,6UO >Cύ@>-︓.h|J=qC0&_5ݟQ]= 9Ղδ :|_8Sc;ƣdU†ND>ܑhSC.<&)򄉛6ER-.Xqq~9JS&q%6X#aޢ v6\J.NGI߬[}v# 82d+.t5%bq^P4 P|ߓ;$vQ=%q+9 ( D{=}_/WE kb<{'yل* +TƨXQ>jҵ!{ҤttАToFR- ^"X`= o#Åez,!㶫[?^-ղ=&)ҝTZbh |þ(\@yJ*<1 yҩ+4"GF)V|O/7qWvL+R[[6T`.@#jQT$hZ~lI ˢ_q:MKi|gyrڿXF-yvͩiHn0z*+0xjB|qca62{;[H zer 7;:S`ߨ{SG2~d̘P6mQ})zVnn]Ӷ0>wvׁZ}Όk"L岔),-:?*{u;[ej~ZOPB2EM[7`-Պ[\$tq[r%FzO!|;VR5{CM<Ҽ,ۏ?ȑ[&ұiE#vH~ O1yr- ttED%VVV:{܎؝,>h᠎2E[n]+u!xė?6~c.)9"+DOI/ɓ8 zƧp}hVd}U"G㥈CAfSBp@˚ㇺ 7S+ 7H(|BcDv `shr/(ہţJKfb%%h46Es4*+$2@Z/]($W&P>^XM!E1YX܄ĬJȅlK=cT5y!6VAw͉+3wV01k(ED鹆3H6Mdq#0MvSBՐ=uWFIjH҈?cpAqAߥ(c)!jLC8\Gt뉨s$ݨ y+֤_T?7Li^}櫹ӾmAMÉwWslTU.Yb*}O-Ȍ+b=pcHFcK6',"6@nqKP?,Pi\OVpbJ vNw%׋L_f6,|#Gg|ɲC2kCLy3H8 S#~bQ9tS]y8@E|z^V Y?^SZ qtWA%pt:蘖*LpA2EtA+pyt,s>j{-u. k=OGXi YKzY8.وWlqAqѕeOȩv<0/*11B^'2@]RHca3-a9u4Etӑ&Vm7Pgqf9gy)aݟi3=^ W̻5R-_Ų w?_(51f5;:PPZti S2_w:f>:l @q"CSF:%ua(MA.V'#vb5'ǫfBK}۶f9=sF-2JXcdW-AF gl"@q"TP(SOmt:Y!, ަ֡8UMӨ})Hp K\wIE<#I@14eӾ&nָ2Dx LdUC 6l@t+ ,zZƊkRFDRŜ&V1&^A{V,X{`r/vGYj}a$c´UU%mk-tC):95N厒,ľqcSIhљjxd:h[cbNmIXq7n%MVB"w.ܤhzFm$K b7Tg^mgJR}(@x9]/vV(Ig,30}܃'@4`Yc1>ŻcCk%rJ-/yTHz] DO0&Z-"1~%?Ǽֳ=LCƭG v-DT ]U!% $BSA!ݔq!5 r(eEhEVKZs0#}Ta,N)rWG%`o3;IsṽR^*pkG*D*ea'#ƮEDiB_ =2TKm÷d%87|:[ioNTϝzWbѼ?ԏΫ-Hdril#ޚ`ݞ$kES^ [5Hݵr8A]QqGh֨֌E4coj_:dMH5() Ҳ]TGA} sЀY*Qo {sCx@dE'otm$GoV)WwBKLol2I(E7!s6Wr1P.ڴYFk/].F]&Fa,.GiM0HR/L3~#姎 [\)-F|n7=IXIl'f2@GLy?;܍\v_] cV|& _qs۟hFLÅ%^HJp"jBA0($C' YWI!FCPPtmm-OPmyυcyʐ ȉ歊U!Vf@P&Shܣ"^ydt\ku71g3 J ITA J$iC!: y"ٙHl%-xzDYAZH0`Eu;]f#ć, 򏘙w~UYȯ({Kjx\$VQ/yW)n;p Hdrh1ߦM5$LC~JpU9 $}} !c&4cPuYM!-ⳕJE %3)gr^S!v?:N D;hiw\ãU\Itv"ld픭}&2X!`kIl6 hXvOX$Ӿ]G0E.ܸՅ,oh78Z5ڳr1P~BpqVQȏi'Cӷ0A&%+z@^V4 Oz'*&o&zq,NUD,q_f6|WZL3RWs݉|F%t;ppS$KdM`TPZ dVZuvۦa۽ߓ7^))>Cݲ cu+ߠ +8%6[@ &wwG8_܊~7YH&e.|a:8)4@١÷*EeŮa&;*Z%q4^n[CT}8Up{gằ TXk9W^:M!߶b8bйWz/&H<'v2[57kwn`ߜ4dy]}ԋ0f6]:uHζ%u6M7x}mhM%<)4ܽtKt8*HZ9WF)+o#Ĕe.W3ABAޡM`zǎDðtw`Cg\p sҰ,`wJ2%{S]vK~w䥍q{30w7jP_qlII޵_ B~lCo|2].$>{'J]릀1@6z`WHƠTUēz]mhK*a::/ 1/JSx.EԠm#~,WPty!& WKZ7bPr܌Ti @61V;/Xr!\j=`H ;|IŨl1(r oSS!}aP*[:+}g NKR3bNÜe< OymµuןPQ% F$@6Q~W74273]pk >$vFqCa}!-}CTxMBwPJd2Z*mZ@᝔H*+?4^rdY}C0O/%`aR E O@VO0젣f+d*!mD57-_j-miZ@a/lk}$g`qPj0-'K BcPvȱα9^#TyRO(soQ;QG??<8\CP=~)i3lPPE8nwT>lv]2u@V5mvﰸ3$/`q7ݐn)Wsy!QN#,CFj V[^? ޠ{c v.,^'EFD14!7Y,$&F? l".$Wst -A8bJAc wC5 u9b/4U ejG]u<(|{f$cC5crp"J>="^{|ƽR0m܊\SF#,&4R_ad?n6\/ʢ-ME쐍P>F(/M/roEXutH^j^i\{.0?x}(^H%]PI~iH?esh W:}3Ns& 8;}/8m{X% Σzc'Hp4P= %t+;5@e.88V `sN bL[X8,uuN 6D?՞ V? Rֽ'c` K>P+ ˕_zLllyR"q+<_mm;Z.omE.>Yј_=;)^X_골x{ I,REcRYņ\= zۉ~AIg \Bq2#xwy߁Wz(lE~@&^#`/ӣ8yGb<çL\b70o!dh[L&1G[8tWv-VF+d0,v Su =w#H#^ߍ]T|G34<ِ#kcKUhH+u"d ?Ȍ]W$P8#yAue `CjJKCiB%˵t))cgCs9 !;q_}-.Vl\bIgCUvDI]䢚H,֞8K03={af' ^8?ѦUwzR*%8BuLAU!ɛolV_< nx5zo|3Lv:5 ꆱsӍKZ"[g/Qo [qhc͚4H]:Kv6B Wdݴh'5O%r@~3R~@z$;ԸOmKzE_㋝ÌYҗF44J( kLKtPm6]J1@F3uk,rda+ZʲPv $Pڌ`[lT [\|R# j=?70^ފEԚH*}/.>a gP S&BH<!11J"NaJ:DA}Is[c3mVJWL3%1%D YA26+vQX> ~hJW4&(yw_~2m3q'f~)*){S؆tۏm\DE+2Èr4kqgLn8Tj%)b~ iuPZ@c_k_WV|(3)ԞIYe#:Ab+|VL] H`bi6v^^Wj2ol"k=q+8jׯu1mdl U/V($(.fJk#f-p{NggalfYѶ>$XL3|56P\HbrEFS ƣ. tWh;bO7$؝wbd #҉o ⢨/G]aL^塠3$gV/v:#vN_^d1)k/,>ch(7YWv2e,te6Wnd.a d*Q%/@/bydc=(/ $ӥ%RȜ|.'1Ӛxߞ0_FܝA(]nEK '  %;of7}t6:кa/%^RJ,k:q??CQqb#cjoH6@>2Z-&F=2n] gInvRP:,Wi fTnF :|*}6a<kMjJ?NЧ{r"sjd.qp>6s->t~-wP"vKpl3H$,hb7o DXr^(\ x@A,4Dmjqĕ6V輘g^$2<@*9RS{ #we9zmQ3I]AGR:e:4vBA ;?9i{k\_B%6Aeȹ-Lӧ*ch)zxZv+PWAD=BCUP @Q4OmײRaaan v]:#8'^EgBܜ uYvi,2o";ydimӡhkNۻ\ D<{$}JDu%xFjV0$X}~%{WVDi' JSYΜkH\ 'ᜠ뱦!В>)Ni/Զ,0a+ -]Slw,xy؅EG`NSL8vfl d &rq&\Ȫ}psI݉e<t@Y a-˾F3.VƠVq?ʹo[AjEkpp\~Jb]hEd&{ 򼢛`^O-!v^f\6HxS"[!'[;oV}\޸V*+I֭>pQ8_/%D1g}[U\߻]|x|80Qks.q4maQ@mcm T%@"=#K̛OŃB9s5TFio*~v2eܯOZ^=y'\zwC!UՍiJzpq:g$?ׄ@SoQW 5AUql`qdDS9C> <&xܳ5m0rzY48`0(8S9-N)DuN֮I 7渐.s6<XlӑDc;8'OJ˒B3B y0'vcpNő?P\cxvO~}Qct)wL(wolW^Vr>Ho9頻Mx/'q 8#qѮo׎ y//E'y7:V1<3cў: kb$4Z}ҽD{yd[ng9{pak 1׊v/4!uLx6mevyp R]6rʧbdX!/+@Y ݽhwb?: )?Lӥ+hB4ka" 3J$2ߥB>{r +4Nk}{R@ny3\ͦ%H¨kA O fXY,Mx)Y1ejt+L=,?+m-uH[_W<W8ɹ NO)Jr94 Fd낸/o.GhԗbLV`sʹ+YLՕqOu7vR{Ѻ,$H@Rh]=M7c DzbQMȴePgE':gmPp1^YnV5f[gC/ggmt<ه p=gTc=+qD\t,GιVoW\6vI9rHXX1O~QxEC# N~1mvGk\\c>KոqcPV}l-8Qo)NM/ፔ_^zU㞍 }CuGgR*Sp-SE]{~+ĝ`T~?4~[zKY)kl׆AF?}Le24k6|jkUܨD󋈉ŗ' d=ה洆ĎB{:\o!a7v*n â )p\#Y2}7adDڪݓꍨ8'A1s@ijeobހ*x{V }݃h?Jv|Q7X.FdxHZXsY}`rElp-nO=)eW2O҆۟F[{FҴgPDx{p%*"N}XHjU?H-vObTY{Dq%Lx3!J4~l2S1Qd[L>RZn|MͲɼF|5O;t6T8UU#lm|;P/Q9a^WxDv˰{ZUf߃b"h=c}fXftdF@6aB[rR̙&q.P&q ˵?]bZϗo݉;Ok`]ysְqG5J#8eI(Y_u`"J%ά7K0@O՜ )xZC.,]a>b^bhI~j 9yOD.A <=ZS?IJڣy7?÷d!;pL;_){q5RVBǹ,fuWz࿚9#xPuuqήyPKI-<⃲,ۂnعUy6)ar>|nbk"~.]^Ex M[(9d|qwyE4;] 'oVqMH˥)=ݯy_1.]OyWBOJqib#ey -w%N0 RpQdוu- F*e R{ɉFo9s+N0ϗ\Opm-ש_`]/*zFN4-@ 9/#({V+ɿugN81Up(wjC6wOPρL 7EXڅBU.]jYo4MdD"G&$Ua&VWY俪"'q]?ؒt^EZrNk _K˃&= exEVIYjՈ|L.x9g.t GuGN͌«6$[ }@B3&{edld$Z1lTG<Ɨln /"oIXH~,uwU%_`l0Q,^h]ZaU {$Z2];|uXy_Sҽ]DNX@${ܻxGu6 ՛.:?5vy x.V^BZ{>Ԛgj H߫"O`la%.?x%.k\ eEkev;TRtVPaq,8vC|9K@JI<j7실vlu1}3Q,JۿHoN9=}}P}j)rtrM}s;M6\*bڠ\a،_3m"_7,Ƭ6;E˰F~ ROSzqJ͘1B籾Bq4;}xwGA?X+%fM3~ R#Bl2;-!dp 9#mC?FP/-oGs(-1U,4 *<^E-sz;)V#adٍ49;lnVccڢR靁{rmCAY.0V7 e&,MCyA8A:\-~@_ JPZӳPiőӵƣX5(H]=N&~n-4'WٓȾtj{|bUw lBъ\0[ d N2nXA*cmhP.'iQ+7=N^^*庙3$$N ##E7ddK Lw)ϗ|#}`Dt,cFdq[(xʱi18S*nP,e41zۥe]>IC#7..`>fZ88}<ɪVn3&$GaJ|8|I<<<[+IiM/d\̅4UoXW|sl)K1~]Huu@H\e3%Hey[^˺KOGU[2Gk%)SթNMJ^c٤o/1:h|LY]Tz0,;sMv%3dpCX-J~>j=R|Vqȥ~j?7>Kܗ$`74lkGRSׂ<ch)`S,N3.%Yl~3 fOdZ%+^`xK E!ݺ!Xh' ~AѸvӼq&gjlwUP91O $ܕZ S,͖$3uUՙN! 1)j|^_=s _e4̛,~s}KDrx{smuQSK3JrQcxJE>oJ؅C1(E\RFX""CuDE>mQFcDכc-A517*VgKnu{.wrx{7:Ḫȣ&×u6Imz1̶1IFg &ڤAt5.؄ m9cEaw< "?,EmTuґ<}<3H`mm8g c}y4wʱ!vӤG@H1+@!궀:*}y@A g+=m6u[}ƮOr܎E?CwcB[(3k'U1]{Vr)bEH[Mk03t̆Qgڥ',_|x(4a)9[dOFU%Y!HÃ(58`b!8aꉖ9.Zn*ff9aIr*?* |;e"#K1(C dgSTA t3>{=9ǼmfTe:vI|yf LP{-G:#pQGoqe׫'NJ{hJ/+:ƷGIưKO&7HǪlv߷4r"WDmqlA|C& )%HDKN[‰y !FB~7wSîu,!툳}Mvgsim;AJds[qbZh9\ޠH2ԍb _2ӲN,k\Qt3շ] Ę3y@OyJ/rg\Ӏ,/?K\kdShG>,l?i%aҨUhܐw[ӤI)Arv?f֩oxaE20Wu= <_T4I2A -vNL24Q_;CuS L,/ ++dJXDțTQ}B̺t3<5ߪ;?3F)|ۋzTM6qL3r6~>AZcLٽkrz${<{ Mgb 7T|F"0bƘYжGWf!n-#6-*{1y8MiMVp&󩤎 U`ž^Ф3֡2{,x5<¨NeCI@_ݫL3yw=Bp~Om!=&Q>W9)7P}|$ό,1՟]Ӏ.&JՊ;׍pvaŬ/2$M6d#.sw8Vb/L|y džb*5DfbY3Ng*d]o?  @XgSsVg/@3jgcߌVUO>g* ʌ=TͰ}7C sYybF> %JR;cRtp2ZځP M1o Dp]?#L'Mo\%r܏L/WHb(hu+[~ۢ ۦ7q;{̍]m.֮z.mI\Ժ\@cUQ;C~?HjqKl#AKB#ZN@zf3ٖ:(U"'uLd90|$|-6&wy A&@~_%9+5ll`k*?nS'k7D!a)|#CP9o6 ԉP_R Mi.}`@" DYQ *=5sO#4^a"vIQ]j m_xPVdqo-]1-qu= Z|1p+02RՓbI@+RK $캼 /Xx72^@򾺧.kAy"z_ʤ0.6Rd~1.*+ҡͳ-EEH$&CERؓz3ת"Y&2a?"7׍(^ľcf@B50]JVP(OBK$_]gA 1w0Uv>jY$ %s&0 !j)Y%)Wh YR/Ϫ% LGqk^&VrRN&͒eذ\\^`ۗ (4C1ݣ 6$zJ<5v  #:fK#JVלO5=NP+lyy|j-Tt(*@J9]x@/G+[dn˷p~ NJ7N̘I8}NS˜`? j}HdS) !Kv#FD;P3{=wFsB@qSG0bSVb/~@(-Os>`uJXXq`uϐ +\,f}}yFO)c B간Д|ƅ ?&oD}dD=~=&*>za!vP1+7XGϽD^-0s#jP{!t S5f3KQAuJ`g5|gse\ښLW%`wy\D((:!Vڦ:!Q?s|W^ұW̝\= Bmzb<-FrRޯfh)Tb_$gڴN9پٔ$m._@(aK՞yc58AyO÷jHa"&X{i60%|^A>l?I]SRM{p x<.}iJw~K>|/8U/,H-jezB{95(7V 'VÙuy{J?mFN`~{{@luFѓkDzrD;(R"*1㪆c\62&єq dk>߇qsbZ`6/0ck9x +[#n0 }RWQ G W35D߽F:Vb"ns pZٻ)^'ɋC0B V끻]' #.WUN_2j i4̄a?r3@a]3un(7 o粣Uґ-RVYr yx F%2P֫G<ٗo52#DfJFh2X7zVJ,U}r$R54oƭ}ex|kqjf!<CR4Eܦȉ&?iאq&Lrm4QR,kg602CyR\B$V^,}iPhh쟠 8>Czh{b2乌MG8j-xU] ,^d1$"DQ?Y@t,`TxMX:? $oBM`s`-nUrT;⧍_9:!_4 ٱ6:QΎ ᭊHV0@M íue 7} &5N)GƊ+,zGK`~y\b.?@Q _*!|| $Jg$W3,U_߰ZV|BJ kXԏy٩Sd4==_->`8< ВroB[M"Ũ75P`-]JDi,6"wYYrFT#!õ!fQ93'5 q1zU~=l>ENb&)ryx/&`avwd`[^"HK!$=ۀc)#bEln1+_'șt 8FD|0uEA[UZ Mij b`{I12 ju4e.{RXUqhios :l: z-/Ū/ךK"OZu녒nVS/;gft ՅN+5Bš\]=QPsz86d.KH:p?ְj#2Q<0X &Dg}ߴ~xDGL ,k]I!@^K:ް:e6G1 qȭL2\"`d"/1y:lhArbb6`Z]PR{?+"~ʠd%S'R[gæۖ0Z)9rX0O 3#ŔK~X& :7NV;*r55FCxꚨ=br&cbvT@o7*%iEr~%ȬWde'=ʂ}R{R /|x]#x99t}3 O)$Bޞաi_DycZh?ozEڲ]KbbN׺Ȏ=TClbgw7 W 9b{V 8\\(5^:+kM$*.("%ce=&ڦ ƃ0h>t:Q8Cmm؈ vuV`KPᇻm6NBj wCFfTtPJ_L .xmeymFI|Eԁjs±gc^yxT Oi-Gg\a0 )['$O1>ޫfI ^]]dfq8kK 3ZX`YTĀE| (՞a.u]7/#wA֧ Z?t)⟚=;JHn6c ͪ=,D[PK ǰ/ W/4M$Ν ܫ2>^1G6Δ8wmO{\ )NVfq[09|R(Q 5._{Dt߰,4\ia.{Ķ8 !DA-ـV17@kA&jDI{alKXPJotnlJmU޳eqAߛa+N^G.#Z{!~XBu^ey BÎߧ̌UE0llH0Dv_K#K7Cm. 8L3*htPW edZQH;fdp%G5doi_n~/@ֲUUIXn8$hB>ei9 -exsNY:&Od#DFy(6<&_^֠Z?S/fg=/eM찀mehr3%2B\tdI);C礢\<^;b4L?G42QRxR tϻ0Y׊:5vS:v>O7fN9@--VlqXo;e.z5#R⑫ZjYsWՁ}O-b &I`-=_ YޢvB=-t^Qi|T;T؋%A;" }=l:ѠBd@q*YÛo|;1C9GuJCkl{C81szg,D$1uU'W,kR Ƚn~0QߥT#K.c=bHwԪGfXz 6"no"Qq7=QvyvPsD;w(uK,+\B)= "KAQ61 8=9svٖ b cgxMT\+}NWcv$cv' T >'OvDi (VƲOr&r"c0Gvddn! ~z>gGq~ǀoG˭,hC79/nPv0o$F]wG9[LO8br mmiPi,"]G2&1Z9/PaOp A_&7k2 M5.k腯2%Xw^jK|h\Rb5IX%!=5Po+וz4_y.Lɡ xfMu[w$sx &>xACE䵔RmG2_> UWoն FRKI` 0dQRq.y #lcsDrVqHV%Ù2(hdK#-ϫtqq`wp Ikҟ55œGp[1]tBn3ts7~*59/d~i @^-ŽmDV2 VӄY3i%AiE{u6 ɥ3[Ұd(nv恘BZ yݣi{.i cB0+!x\03w^zTN8eꯥ6B2?vo ߒ4YpRNUC^Ѓ{=l_\$1rCtݱyXKkѭ&֍IVZd4x><ެqIg1o& Mqےixk ^Ֆsr3uY="Csa=޳}18qfhT MMFg)>U)GVAU['/a.ur& Һ^ӵ`m7^fG5gKj h?G?QyacP iD:XU_ϫz%*])OjkEPܡ\W6{;emEnSxQo E #xÉ"Uwu|a`!XQ2_&뭛 ͋6T}|$>ǴpAW?"@ c)]qP;:FΤ²:vm8"^[LYH nҕj GB.Ԉ O>ʿIOe!&&9W%QzYnl 4&j=gNZ jbeO*X54ZbL,.Ldy}-ms☕kvbl 2: НT T9,%enx]"U&_ 2e!XbڣCR{K3LFXɹ 3|mZۀUD-Y AO%O He}Xϰl_ֶ%h"o'x,M[]ce\E\>G@!KX;*ܹUOغLsV4FsI[䁃0R"y!ĀvTğvW 9<#/Vs#[RQu$b|q/4H; uD5lJz=;,nmG?yxWxAhϮ ձ5`_[޾2"H7>Soޡ/@x٥V~ ;aaf 7uӊVl[hヨ@`LFc㏅͆ K(O3B`h!ʲS<+,x@:m$ϋ*>),!Z[Kjђ(̷jrw FBv"Mp'1rZ/7ʰ C# ">S0DZjܨ Q9Mc6%und~_c8T Rķ"s]fHPJ* 7[r$+EpΣ`ys}F0Y?Y2|L+[J{Z{nt3Ff7|hj:42 3h@+á.N @4 MZB$EbTH-5إrAyV ӬtǩãB% NZ|1~e2֒Uj)CtHCj_YeԈOB?-(C﬿5~60 6z#`m,3{u&\~n<.&2~B8˾ > (x ngX9<;_7֒>C ~=B_$@aRn..r?AQF8Ȩ `f}9.v;Z'|P: hN,i47W*w?慎9)a Z wsUz C=}O Atm(xc۠lhD.+.lkwh\nAH0N?`!38pGv%n= >dD/ۂfP]f0И@@bI:] wCU둖BlP^fJH4-C-d p _;koYCrt@K7c`fK/;P>6U,|sQ)Td+!f);&OlCwBObc ;z&`sDh<-٨Zk E2vJ#k7Uk<7/ ۅa!m$15aD3Aƨwh*0 LEXgjcM~~'ۧ;ch=X0%iIEC*xO;lr>͸-}ث|S@Lz~kW|:L% Cld z`0k,-kbi cl-vɈ ޒSQ669$UzznupC'V'_^ݒ>ud`vIfKɇDRT-xIwѳ,#?F4mZxp'5!!wkIp~ E=rzm^W-& c!jGRG a+9Fwb?[wvdۡK":g"¿ՉsӟR +#I+ pœKSkwlw:*8"tWC=}UZ鵐?V_xsN;˶ݤ_zj!t&/P{ӝ?oQ951W -ڳ{Q7:*q> F)6{dz,Z`r?{^*>R#P5V5&#ӿMYVk{ )Uf|ka$}{I҅5(q=njؓ=&M!.üwI*JRT𧱭:yt CD_o^%/F=b>D!w/ ڡvXk p[)'㭽pꓒoSgH[-:W`(!`%MNʻkÕPa~C"O;*bIN?_j{3xM+0hYɝW(r,a;BW8DCeql.ů+}}]}9oT{٫m_10Vw+MȸcrBx*8@ T)o!+fO0@F犓1 ÐD?E6WkNR.D`ME,b 5DobfCcl,#hTLӨXe^9Ql5pDywo_EUFL.ŭگoH]vԒi6t+i[6'QW \e?fގKwUvVP9 "FWE)HJ.]`zKv}U,GkmC2w-=GN.χEH*]s+!;WQAbrzӹXl4Ό6By au|{Jk[>_a-@'Úbm_b0 sJhj~,a E@w|J!'A`uY,'|h{FQ5_}BdžxfF@akTZ{gHDaM _Ny{Aj?FYc.[ |ZnK2Zbu+/U;:Bd84ێ/넋/2ErGHI% ;8I~斀-7lrD*c8w `s9<]N>Y!o]S 8ZSS46 ^M3wH[/QΎ*F0^DZl[gUD ~ENy08CRԆc(ktFfdNJǶC3By7?DIcJ" tvU}Vy@_|,{ӷ^Eυĸ! ;]H-k躠M=?LΨ_`چZƗzFI 5 7,Z2E8cEVj~cqQm/Bh!t IO7 eSӡKc+294`(hk:_伄FNGcH"/&ndCTVgH.AzJ+h^cqm9" Li'Z;upϼLs!}2Eg9tP@Պv*5*_eG٫ 5,-!kןt{Ctni DK9#VmwT>q+u&PrG('5U([똫 zK*5D ZJF<D&s}*Ƕ,$`iDJze~`C[ G(ŠEV4Lv||1<%{wDa 5hċ*tI& TŚddwMrCR;1a5m 3k|-7QF ,ޔ'Uqtئ lMrc2pG2r-+?MU̱COIZ}kˇ!᥺detLtk.aQuq{>I^ZZ/FR59zЂa!u~XV(SDLq?~xgl[TZGLx!-ʹ0wl>Jj.4ˣN!SN΁)I6.[A WݴT?PX.Mocr2g.wH}125NAWbE;ҐQy:OȮŭ莴igK'iTdyphxt_aIPG% jC2ѿspۦY.0>75*wtb-n_j|W29AɌ tߛҌum|.dG+>S (dH5q$|{3Qi{j fg٥ECX ^mo228}Le [)9$yY.:]=AC6*EJC!hd̞a;^v=Vj9\irZ&5wnFGd"LVI|e63 &B9Yg|<_:ir\Wn8*;Q͋32oeoEC~Hs?V$޷y5MԢض1m4G'bV9 ?%+-/>!ЩʼRxv;_b@@kjJW`6'ܥ@ez8HAW _?}m76'3uSL!k=W欚7}(EIb ]mIRT&ZpT4G]pqk1oaFFiQHGt3 lٻs*QX&}eʬxls7*6vwF2],,` n"Wr*P ĖO*'&I#(~V\kEhIN)=BxI ji>8a+uOϭHsHSP0ʲȥe#ueDzy?mE&]R;<))c%`aXc 3Tδ(TU i >DW~Cu0xlhv &5ܽ!I\YDo)z3Aw⨣ɪrdJPNqSI՘h&KGZR#s1ite{KU~j%[rP0eL*oD(鍬9*4Fސʡ(&U9n=#W2aCB4-Zw:m*MFRl-i>vRG 7Dx]8PԎ+}N95r.d$!<0otcЏyL<09j~[#+g\9h_!Y9Z>=$cJ?VVZ^_ġ-Mܨ湀TLQ#Y/j$>"EH2YXcJj@yapްz"5"#x,v`, Cx.rGoRy:ΉE3;e̓Ғ NkXDYko]ۀ}\FH` Z%ʕP{yC \+'k*h25K~\&Α?䮕[CD5v%a84oDvKPv A,1fNގNg/jA,rIFݞױ@d '.<@^h]2l~&` B]C];2 aT,)g)Jўo1xXMpeV[T۪+ʫF-(5oO/|a%'z|kY1*"yZiG2nONG@ik㻵\&XDo,ºqNhA ݎ`4_g-%s8 q~NlcYeVaeRYR<ɷj-vWV Qqˣl@KYD4=3o+=:WEUI۱)dIt_g&c (^6ȇa5brcNLF#,Pp(fzeS2*s7;Aǁء|9wnzqI>f\pwMޓ!| B?FgrU(ˌ;6@(iJda\d{ԙsSKCl_ 0̊:\~5@%6*LPe>²>0qwy{(bӥMhθBO+:/ ZgRmdf~dMtnE2'6 WJp[q ÑC=BL[MJ3\!2Hy/]"i8MԃUlJ>WEZƼ( o-8A^'yҕ Cc5X&NtZKU9| r Q;e2q4/Qz:Eh7yɢe(w<e`T#oveq``idCٳGz ]T#:bGSqzܟRABoPkcxL|WYbn[ 5u%c8_{AA)[/-ZsDrY.arﵻlexr)B6\W*IV?5bItآh{ vGVIq3_;Hɘ4fz)/FTR4 ?^ /yt';&?'$GDEt8610lw6c%n Œ_Ì8(EsQC‘¶F{e-߼HQ-2_-8YVEM[4P*S~B%Ve40o<@Y&~X!8ލFZ*o/){}!߫kHP*?AGFy\qƒ`؊}.hOIRv.lo;o_lD_tg=]Sk45PP|_bM@":ź/Wmq:v8TMox0ʽp Lm)ϟŭ3T}xI rP4n@Egf,RLł &vF|(|lE)?3V&5%ٓ]4yjXO` _`ȁ@/lwq'rg :((uƌQu48d Ix砎vj*BP8 ڌ鰃3~%xڳ%k76."h^.]OstO>GloJekk -0-ﮡroWbb`ܖog 6*d+poh$oeWYA){cӣҼ:甊Սoיtn,xǔ "!#~}ѣ6o)b/Skᦽ=¢8{,OR{5]T{aTG;07fm2`RuS%K؁]whߢȍp^'`^WX) YX͝6_(f6ߣ<47o^rE[Ԍ@e{S"ṄY,#D˧ƙkνV/0\oMM}y&NewHtT|h2mf8 %2݉hgs/%slpK]){ +Z?wǘooYT EJF#%6L 7_,UGmF1cQl,QB0MXL9 `{I ~pu6 Ï܋R{B b{xE0%?[E !+DŠ(l.;1RZ kϒFhb高yf4Y{M6^Ǹ9F+5QHǸEȴEslƒyɤۯVV5n:ΐۃ)Da / CJ7z婯́9#MaK/ i۩@w$(UF:1{^3'ʂure+t#|E{K5aMrN/IDCU̓7htb=(0O=;ˮXB=TЇF:2O ol?%)*凩w)e}fɕa2E۬ꀳ~Ϡ_QLzuºhیa%2!lmp!|cb\m0+"t~5=AlHE^:-fNDjIk =6$j+s;mڑn]*EAD,,ޅSeuQI~zZ o!?]-CϷstAC\(Xx0JVt{!)DfDt ͏ײ"2vEyRƘe~b$.ŋ؈MݘܒQA[闂!vț'p#5p L%QՊ;>;z^pEA'{Er5ĬߐhuV#OI&d)ި13?fucf]9KS4BcWd x (P×Mt:m(ʈuG6x'2cMR<)< mM2|C(?V` AP|Т^DH@TWO00B8Q( יcռu* 0,U.W v MiGhEZ3 1.sm`³T9@QN2VV݀JRQ~/e6'%yvB !dsbI:ı+Z>(@g͐g&֝m3A0Qõ怣%rȿTjcVAYzyv- iFR13JZXܟh ~: 1y Vz P-Ʌ{?r>VL^ύGI\OB>;p6LEaw4~p;TDZabBrZgOE-ٲ`׏w-cHަI9MwQBC`S : F] oQm\ҧTLA>E9u]KmؐչɶWܴSW:x}ՖbOg(pH.̙1'&*٤ mI ۏ_aLჇ5r ]߶玙LTe&'Ӽ6pfH,bʝYphPpٌa]l@P#?u΃pl\^%aptY/3lO #1 tr,ӰHe&#`+\[y4ƅG~30[cK3?XiB66ؘUquf K_ ;!r;ѫ1WK.=j`E_kv(́jriΠ8sv?Ol'hpD荭C2etMt[A>+oXűyvY,dcJB u)eXtRvuBIsm)$ԫ~&fu'F"1Ac::k q8|,: 5L Ug~nCs}J׊'y샸cbI՜RFپfM:gK[)9G@6#2z_c؃UO?E Df>YxUefugeR;Z3H3TfۨJuAz:Aot;UehK#'=^U:.  DzJa2ylGv_A5NYXvRv;~q+C Mg˦[1!ƸQHIp B=`Z3Cq#鑊U~&=Z0/?YfՊ}b 8Y: b(pI_Dj: ͕pHO[ VJs1 eZ\ل Vo`{~0&z-/1j=Þ:oʜ󤄫>|_y1an2v~ iym _A2/|w4"u]TvPhl`Vj؝Mȇ܋c)mK|JpdwXoE.%ڼ*VɷaQƩ-r1|iԒ:J0_ө+lcU³A,^8 ၿ0Hg|~M-E["zu![gaOx)f&oX~E3wFBԯlk20|ΙI?:ɲU~1[ w01o2!oX|Zrot/um.ֹr{i d.[+YR<]7y X{}͖5ӗ~ PReAp{c9gl&K&DzЛ(ZWK&rd3@Y8aQqLSB3Pm8w25~ZK"Y=6W5k f>+zm6jkTmXnm- }iݜ̘>&Qkc0[C1F )Y(ӌdwǤY>A5"࿶OF j4Dž{#ZNH`e `V+;y^ÖDQKۉ,y{hSt֊Q 8;JW߻:e1;TԊpO96Dj :Wꉧ{cS!cz x2J @'i4bxn :G5͢h_Z H1k";T8Zp-^}2=JWYK+qCT`3)߆2-™,oU4Dc+zzvcW`uJweދ6a KTuCI6U)BUKK5gJQ)!ޕ[9dU@ x Ye ˄^n V5$ }-’/j֗/6 U]eI$Xۂ"*X➬8dk %'5e$Ol?VI%(_(ClMmkd5tI"ٵ~bU`HXC3hw>h= Q1dg_2`1,31:жe(%f\"񧝬1xc9L#!H,gUq$MW9\2 V,mJNA^WZr`5#IYo̊7F=@'ԵgfK~l_pnmq ɐ<,/lsDIԬ۱e va4W /AE[ȱ.OUs}ac4Aiiz_68%@Uf!U_8'_1KOSs_=o,3V lG,÷~ ԏ`{ӧ~lb$_qAx= N; R [!ZKj;\]bƌk,(4pL,qRa<WŪ{Bä?9nYIr=3'x^Ʌ0@LkP1!ï%Z!WQeiGB=\4`m@<ǿUgT%09JdxmW<|_sǫxp T`"hU|s&3E޾G `H? 3C^Jl M sPI*U5I׹0D/FTx3{9JD`tU=q#K E ,d7 ;x:rOsPeM$;fT&HHbλEߞE=NX࠮trFAZI'+m AQ W;Na#Od'OwHM*p$ JE9szλ%}a6RP}w"_a$\W>H!/ T*(sO*UmYE,&"HGy."i).ۏZ_{XwgfNs)T14V:X!F{f)@&FhG|3:6 zq(bOsWxgp+^B)..N6т`Z|?y# a~if%BMՐ_Pֺ&Q9iԃT 09yWOL秙2|})X ?zVns[nY]fѓ}p F_*13LC61AWJmިw& qPȐ< ? #;*C'p;^Lck66Ơe4Qw"լ=s0Ha 9C"=W6w g\dF_&@ iC!Yڭ U ~`ݸvCE5M4 ]fANI>p;kxiu3{든&ە9N)IrpP[yĭH"09Ǿ r Z E4aHiL|pAWIжVTnH'<_3z uO2WH H=U ~eUIߞG$nޓG ֢KIAJL~\yU M42荋J /TL:1XAN>c5+HrGQ^s6@tdvtB%>.}:b9ZfP%n0jQ@P<\]panb&JnMMqҖmv˪E2BOwSk0 h62"FrO VdE~F֤*v(7g7Թg3`OH 0fֻ  Ao=nnL@M4id] ]rZ/%+>4lW9$Q_!U+ _I@6,}DMa^ qi+L$qH-S0gXF1R|z0;`B ;Is)ɧ.˴dER?4OpBТM@PcpPP[e Jj#+q%2yUͩH"2tDX Tr,+]7FŹ 'c% 6R4&@\ŏ鸢 ݙ=_٤`vح '{X,)(`-쫱sNzϿ`~1{/$ kC5$ms Q7l>%5;q<`^ޢ)V ٔ-e/ *-/s֝c[l*b:9<+1(-M;c@rWG)gc=;bEmm۸CÛSVpHM8G'C."Hwfːy6dnxErXAE&"c. $%6 Y#nm]6rw$֗߾(PHLQjCo4HD$k~jWw 8~a-fDqwxgm99vڒ4` C;[ӄQ¤m$8X3o. n1#گFwsB,u< xpQst߰C':Lצ9ɩD̬p t$SE}`ǩ,r%#<ltBYIW9RsD;g`Ҹha'@sZԼae'rJnM:ys!2*ZO]>n.N塟! 1XA*vxX;c@;@)qa?Sʳ(0af! ĞMoIQn*oxJTrdokoڬw~|<.3~'DdtFXBx /EDg.#[u%㸙J"dv;;qoc*)+Nmۖ9 p|h$/A=99ᝓ7nߊ. r1}4gm0/UyoSn wˇ KI(6Ia!|*uy"+ͮN~9: _ĺBg ZɊ=CqxZwErA6 ۧ) VvPN:e%"65H ( w_BUmp HnֽM_ ىJ:گkV!D߮VP:(.L,TC/Ox}G*WQ;k8ξ77XFܩ.}%J=CsRA56b^'\Dqv73mCRXJ";*LL{=X|(a e!c"۾#g]Td[7>= _^Gt=\ץ1!jN^qK2U#tr8 PaB:.1E?2T|wz} ʭ k-7/$yC^;یKCE[91oT™qo(,GpU'\ "W| ~@$@x]oίN UWQxh+W/r5s"~P`\Zn'!w-#ÃJ/|m>HɤUqsR؇{@2jq@ˮ&aW~pX Y e"[4!DJF%f1?3u\"qr'?GPo2 6'YoW)H#$U|p7ж m3;؋XoI((a:v#[d_NBŽz 6݊PyP"5^];"L0)|(-c6Xp$ ;VR< 4WrsCL a}\"WGw"ABr]>gYk@+?D 0aX^Tȓp1I^yM~懡-Mրp&~7x ;bz| ;-FujV͛^!{7G#\@yke98+ep3@YU^PLqЂH!$ rQ^Ch.`~lsre ַf}ܟ9FL(WEu>#AZg}ɵ,6ɦ-rN։o8_rn0cah_iC2Pl.nou92d=]GZZ{@fH1"]cH-`B$E?}i~t!!`=Jhq&LȭwXB>p^? ]䛠YSd7NW+d2M+-S uw/QpmjMJGY} 7DJ}6+$zh~r;VdE$LHe ؽK3{zށu ~ :"BCg5wW&p=0@TzQF9YMP*PP{/iͪmI ;=r֋9ퟋ1]'[c M+PɕHzj tN)I1_)"{51-vk1| =iIsH㥦TÌ-i%\HOUry).?OÕ9.X՜U0Z53 ~ZΗ3DH">m68z%Qzj 0 !xן n"ؘ92Kx ݫ~AE}l`=)kQ/gA9.7!lv}>]Z.s߄ms@¹~C wLqbmdFt;lIgB!~]H2v:nh3ug$VzM9O_3a!yРVCXNl_6h Z: *lfg', g>riOҊJYZ!N"Jkb2)B.5A|#43_eb_WGV%%dž:zQLĤ9b06> :57d#ںIqzxЛB/h\Y 4 6ܫKɜ1f_l V*.Q{q.px0L(}\p%W/T{ܴ{pF{Xz:Ɖg~?)&HUͨf]JLeszD;Oh,3h ^6q\5Z*-d [`KtT,ى7_*v"5q =9j+xq\;$&8~4:sq7 $-bUu8U;q3[}0.˩ԕ4.xIH\@n>u^t`1;-9[pl;(誉P+' 쐏wt_6Xstpy7q>הx,$}37ٿik6s)fZҞsLܩ*(o2A`su!Eg%Kb|]mwOS\RIv:`cz>>sqwa4(#m5T" Nʳ*/:DHES ߍodMr8qqqYMMiTX)m<9Xy݆8i+4d%޸bRQA1ϗ?cEVܢ`r[6wOvi/շL9yCS7h>y,@,#QX~~*_Pa+&vshUN[pg y]]QZT6ĵz~=AY/ 7KT=b9T6.}V\YE悏Q>js:;诱NXit N63g ɲ<’'Hڵ+Jm\K]1À>|p)5EN=v>EgDzZh˓JŭZn8DPr'iQ$v/FΠF(Y:o+}&4:Z؀5 /0">W[XǛ_$ؔBnO)W)mMH(اr[hiCcZ!DjK = aPA\b$р!0W$N*"(xiFyՁK7rӞ.6D哷D1 ;+QD`hQn]+SvǶ`O*npNx06EhjK 5FL $~K%z8Y콧lLU5:#dol1~btX/ˋD;-`DHuJ~nNͼB\O7#ʉzep -Qa(avOGKJ'L -gcZX!^\dBl>=W4-L  `@ Q>N2s(:1S q\$(D{&7Ѱͩ?YkZ&BV1LeDCE#=LGXIm bD˗ o'!gz=?ES8x5Sb25lL/{n1m1z3^jʐr !n(%3˙,d`L0\| V-=U6,Yzpo!U)[2WnozZ/?^Np=:NJfGnq%1?cN Uϫ謩,}< SK*hsJTnboK@wU(h18K*$^gƏ,3mgsO-< S3eԸS2 Z=\X1~Ab(Y#5LbGd0 a4RyKmWr3KKxw=K7 qu.j5"4sIsԈ\ q̻R;c5OӓAzԨgĸ]ǻtѨr7{ ߆Cٯ^kYs{7˖hވdgE0Wh(-mwfmd̛Z־zݜSZz[oKTS`_ |-%s $;x7 H! FI`uy.Оc\Fܓ$K49 xKq9" U ǂϭ X Qi.9aR1jV;/N~3xnBz<݋q\_lv?[(-yRUh(IoH>3駖ǿ Flp5-ڈ|]zfvl":U1L<7z4)+ -t%#3268,m n*Mq-'#;`\ %[ RJ3hl;$i Q+7_ ϯlaJW҇p+v[:Y=u./P(*XWdٗ9@MP]gC{"Gm"4V۟DaX 5+%`s-F8U "Y_p6W1;)C(]_O4e_L;=c :&b.Z?KdeorE Nfb`p7=NL%ytBC{Hl"DjV k_afiH-`MO.ad#Dq&hQ;wa%po I{rQRےH36Yu ] ^_OňUVPsB{&87mҵHC")ux74gbNPo o/o7 KoLgk?n;lO',$epv<'ޭKˇ $?O(PR@Fnƃbݜy;F,%MidI0 x]T ƶ5Y- |/~3ӝP_pZZ_yTe@X)2('L4-0ǡnz G5spY Əy.Yz]*V8m<ߘnp]LK"a0!ϗΟɶR_A>}/>#˟rEҭw(nw'4B%7 6qN:+F ~ <Ѓr^t }pى*Z u?%y S~̋Jx)"NM13]槕1+n8[# Fě)?eBHd50˸6IzJ7b2=|V&r\68oOU;9[bUȨM?!BFJ^v_{uӉ0hpqa_4a 8.Pqa].ޫ$tb*_uP/#9{ԧ K[p62Yf΍/QL OHq['~mq8:Ue֝ձdvvSp,w *OD'yWU" 䶙hsWvgfGůʭ&~R㸢2GO.jT]S;viF=-:4ޯSSn·SJJ6@C@HOll8Aiwl M\JwEM sIKX9nj>ʙ8.$YImA3l^12l }a̋whlg. :/%q!W$$O9SםN.u~IXA*Ie">2ݦNaM*U >xAGYNpid5|mJ5_n.erI"20w/Y?y2Gpbٺl)"2CuYOaji`}TH߸bTEβ-1oO!tSVCx{.TۉRx&H+ɦ)(xMgY PqP`A_0EbpvԾH-[yı9^j1s` Bbߪ}Y ݋)d`WM0K}L61v" k݀|KzaT.tOȢ.V?(ٴ)vxb fS=L \˽NU2(kp6wjUYy+i_M#PVUN5SBf25'`㞪@q4TcB‘Dĵ f|2~A}q{ӡ$Na}xg+oyv jvt6 |Pl>.7oV^oL/}"N"y'r㓐= d{V!*:_Q kNi#=7:$mcq "k ea=(HQL_FLFZAM4s\;ek#duI7-Ӓ,rhpι R" _|~v?&"_\l1#ygv 3w/ۃt$]5-eY~їAQ= N*sRYir 0. jB#l he!ڐ2O%я5B1a+ o@ST4@nn㳬wKk}z Mr[r hiKʰ;3͠5Hxݫ%=.2]ơ2=WD)oRɏSv<,o~bTJASE,?"O+]1ӳG*WYP>BOeR|_E+6lmHB PR (3NG{|q %aI&W]Uqﴁd|o܏g8gEӣ8 oJ툾`e@DCǒQ t*rںO$WM/˖'o!+6? 9dvJAqԽeD nQ6}f91X ?b&,S,5NJ[Oi˄LޓylP/n/# 4 xLgD&s -P]Di|?i,@ˤ @709TkeBEuGYd ;5ŚhUxF Hm FcT_g"莪Bscw/Ľ4 /ami(',x` D`C'Ek` HlFRQOA"N:0/kSW_{Ufw:M99>s#۰~{=L3J (zzpV^{SWoɢ d4\P\x避qXM6(鴘*ad76?R)s 0ȳT'Ġ<%Ekd5{)<^9`Cr\7N'fخS7 SJ3jaZ>h73O+M^;t✆wxlj4?F]1\ o̥TP +WSmt3X=b4T)q%8n/^kef gM]||>59:fnPMqc_ꁍ_RkĸfK S̈́ sD f^N!FHPyr2119WH"ExlHH AYV2Q?G [[}^!uR\uc*7 #ۯᒮ.dI<Ȏ\(K}I_(.q0 $y>[K4ǐgaH1XdF<7ܕzA{;9f$GPDJ2R2tԓ!@& =0L$2_X7 @F=v9;ؿcClܻ.Qh4gϾr>FA4cG/ wi6fxduMuB= Y"y)3PG 2̙od,m|fx:8,u @E1,``r 0Q!U.6͇;H`|Ozݚye*IyD҈ˢg=ix_-AC4Dw?ՎOAM+v0qSFcAiwO薕.~umrn0u Sf[Z)`Q>=I!M];\q@⚻G!TkCU"v\*5=H`Sozc"ֆXT;2|xL D W!)c逨lLVj1jVhCpu/wtFZ^U~GjΩK%5MC\7`/.^Ǔ@o^=8#TCS݂{PguYfWwN։./hz] ?ҠF{Z1 e{Ԍ+#"mVܑ/W N)+ߙY\$ċ]4YB_F.xS=d)= (-Yx_/{BS "Ƿ'szަO'7 as_^js+ x'*/xN X+XH*u3 Yx]F%~E7HYUV~uN{`Dz[}gD F?OɰeHVq ojAXo-f4=g5k? aɛݻHoX62pJLxqD/evA R0 /rQӭ{ N9W(k22YF|ǸdV +tlS@͵&6j׌sSg#ՙ:7s3CkD]n[h|6+=I@IoyXktf9 ;ou!褧 c}ߜ]n徺GoE@pGߠ~5(c=d"VgS;U!!M~ "k8zਬCO1Li Qށx/ž'yiO_߹HL폅;R`@]QcLf'd(!~3cm kp]>ꢞJ>,Iz8vVhحAWBPP"&VTSkpJ\1^f?ב!V;"XŮ-ꥊsgتoVe'\]MsL6ɯ3X8,W.żX{O]y\gyiq?$DtKI*> oF9MbCBK9Gj#VdvU-NV/J=:580JReg%j(q$%e/F~3\*3סJ|n'h?&pӿ:}IrXIёe`>N+ }xQlptKEWknrж#F[U,1t<+b, zTV?Wƅ(/8_л 2`9k." [v`x%z 5cXuNĢUT%p:ĵ^Ȓ΢ѥϥTPA]-pRz%xωw;DaS P;'U [z1sKPߘw1rO}Y,L04IO{#?c n0ƣm|2 fcDZ:@y8t'w/30>*>f dw~qJ ^ceDPSEcf]8XUۣ1DfF;…$|k)[jo ƀ,`z2w/lެdf45qQ3[?HgI+ h oahJ W\DAvvx鮒l*!*9VE sv{1Ts:%ؓ 9 :&=e0SH }ɰ:AԒNֳ̰{zV\'i/R-M2 @}@Y{h* s?,tdv^{u"++.ѭwȉQ…z#J_x\Wxo xpZ{[<Le6.w LdGmEWţ919 fc-C IV7FZPU4WZ]r`gQh\,R%]^g򢬾JYk|b;F扇_&QWf1`"-zwlzE-Ƽ,duqaZ mFܡWrgvb Bqw{צFX$Q _z,ky#Ԯ捘NLZcBmCy| 5u0%JvˍBDbRDQK ֶ+Y՚g$30o.1| rVZ7>ȧ\Oՠk~@]zFaα ll ȵܗ>a" \~N > DLoz͜V^#%ܟu|!kicLeĊpm=M;mKtŌZV6 -XvAVp[!q`hvV_YeUxJٸHmDb3Rk] TUIZ+<9FHma˃ Ԗd~#Pixb`C7io'z/0^Q Қ։xv$ 66y] ̢/Fé77Fk+Ѡ 痴d6-9?(b-rPciR/xi_U~v~%!t= @;a+4$y%b.Hy*'D3dNH t[-m,TWʈԫ聱55u5'*7gGr*GG1P+f;kKv'J~|]˧3en'.fO)pO' 9ߜQ7YeJe۝{e\*6J'B0%/K|]mיuG ? &/x5M&-0s9v$LŸjޡ^{ #ᯩrJ̫ y2}Wɡ?0kgz3xJS aC0Ie)iGhcH]EYwORZ/NE~7LH>Am!^)mz<~Jl5ܑdS {Trp{O@&bL\mڏ~_Kȅt:3"Cư}ޅe@QlLKZ~3tեM71yfWo29Y$r&#o١,EZUk^Lj!w)KES@C@EçAS[jfd]^{x;lO m{-њ+Ǐ0(&зOgOЎ`IOjk:a̮xJk/&"mF4CEOxZgTfxQAF>v^:0|dx7FZ Ee k RH֢p6`҃8oЦcU=SYgw5cs:VdX2Ŗ9)m||Py/TsjYBKWz"|$,ُeUs_ߒN݆[> ,5,Brp{'h)Bd91@h65p%rlR;RYUN8x 38=$f:)W^A>vKULOɹ 'W4 N/AX2#fCj~j2=H몄OzZ QJ;u H|%)# 5~U(c Lu]k+_OuBUdrxǂ.j!+9Ңr(QsPd#*!joZ{ #GyoRl=e^ 1RsG?LAڂ(Vk9_?D Np4PWoEB+nsi \ J!^Kxhz kDu͏d&3l70u->lL@KǮc?d;эsc|'mDvb)ӉSBܝ&-]UɖN '2Ki@ TQPS,9֨q٢ɯ ~]Au|c%sN8_h^8~@-")z^9 uAcMբLB V },QEVVMI7l+-Ŏ5m}Tg.yg{RB"CNUW۾Cͣc%+y#^(޶3 u3cOE"aՄb|sZ~d5Z%,D;i3}d=m#C,ͬʘZTʊZOYNq^iP)р ad}zvi{c@[P}zy0`-ԏs'}Qʡ˄ + &ԕg$$5+ZJ fZ0h9/!P~Q6  {m(a"1hL@{(úRّM8F<  ?N#w}E&ѳms*^3y$ݝ#1RH‰5 g=S̤y:j2R4:Ķ>YW ~!'g'$&@V&^h;>$PP#yyFjd>4L8wnDe醎 )L9Ђ$?]nπN$%ϧ/XNA0R+?,XL#G~c⃗eP7]薩ZcrX*<βI.(߭Z`%[>"tbHK^ `_WñCfK}#CuZfpP*Mq \O!P/P04Φ ψ HVOEpɖa܎#SXd}۹;ۏXm V%81g%ly-Wz0tb{-4D~Z3 1pUt V45:Kr ?ղ^ޫۡvuV"^WHz7ҳ=i\-4GV/`M pi7١vyTgkt~THaJ4x u;8|ʍ_}z"dpU$v|d 9n=AʈwMLG+ɷ)ukS0QGZ7w'ŰEjX-gqcl 6* ؎be*WtT1_*hc\ro-€ۢ@(K9[pM^|3qz̥ȽN~ ~ %)غDcb4ƒ12g  EixL ءKz tPwBۣŜ7' Rҟl|o4IO(><CI)ԫ=]Yx=u\:(r}SQf>KEF: Fdn/huy kuZQݑrHD%н)9O_ Jti!l_&As@ˈvQcΉvkgD y X|`7k#8s /ݽpCHyؤ7A?b<ƏfT.yRmp8=2N ^ӻorR1V0vT 6*WS6#i.romGZOػ<^4ّK)Ų!hT=\62w[ч',0O1sRB7q|`H$4m#SELŌMorѳ;NK6txTmiFur퀁qѴڏLJ=rE<7$`Sys99l5(`eޜsC\=Mbg^dYl6ؿ_ o!Kӏ|Y bk{tǯ[)F6P l9Sj`{l) V DDaUBiD-]9dHl}#XL<9*=?_ǒ{\K81쉣R *%8 +^E֢0i1W'SבYҞqRY`1'[plb+/^NUW,F $d2NIJ7q ÚhW> jDX鎖ϧ8ĎpLm5Zþ]\4ȆB]+YoDKdh@؄M7͟r#/?}-zHmK1&2\[B#w$PP\lX[3;/oZɘ^e Br>]{1>:D](%;¬f˺˓\$~DB(&7=3j.T-3-fX?O8-[e3 U)F:MڻP9?LCKE<.YM.m\!%&_ w?KAx!tuY愨=HSX#Qa%Ąz_ž?˖wnYe . C=mUԀ L(-aC ڸ3~-VʵH P9h};| ТK]Fg\zoE8_'u#])BQ%ݩ@,up0kU۽w:DZ(U-H[hykp5Y%ӯ`dȞkQ.)e!GWxAy`\͹\[<2P͟]Blo_%bμKJsD"Bʸ`m$#ܕeI;b읃] wrx~}w仰>O|xΞ65'"-F7{bǍxY+a>Ԟhg~q6L3hk'NFZf|s*Q .'VDh$3r}y&?5ʭa_J5/*:,)<|IA WI.'r=vf 'b{Ɏ<Fl"RCbEH$ԮHi3j/UH7i|FWn+ 8hqj^dM,qiXD w`0Fhu7l7hh}_W0j`Vv7X0V2  ^M~"ͫ^