fwupd-lang-1.8.6-150500.2.2 >  A dRp9|u^p30>۫ȣ_2HӐ2N6F JOR>mk5UL Ҁ/e@&%}ʏ)X*Y4 hWW٪i(M%,m׊=Ykh>*.hUA=C~ Q!FP-2߀cz{AφHtnФmtk`Li8:G0ͱaOWjły{U,N+&CǢfw޵8qa7d7b7de81d4a7f7e487f1fe9159a71e1e6ba467902503e9602ad2506cf3939430227759508ee458e1e47396724c85b07e26710ddRp9|LIC; $d3d}pUkBl( *«>@Pg.Wy_t/XE^Va{/-@` 1EGaF׎51 -^ezz>Ggf/%]`/_YPyrVhf:R/f'WQY8eO>.<ِkقjVί1z[G_aE6v,+Qw0po%/!5P$>p>?td   =lpx|  (## # @# #  #  # `# #  #l('80c9c:%cF&G<#H#IT#XY\#]l#^#bZcdZe_fbldux#vz"$(.pCfwupd-lang1.8.6150500.2.2Translations for package fwupdProvides translations for the "fwupd" package.dRBsheep04'SUSE Linux Enterprise 15SUSE LLC GPL-2.0-or-later AND LGPL-2.1-or-laterhttps://www.suse.com/System/Localizationhttps://fwupd.org/linuxnoarch$UG*R\R rOZqv! 98DÓ0dez9dRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdRdR56408650dab72c80c21963c6c3992568ec44c8c4d83c796e1dcc3ee9ad3027d5c6746ea5c160f7676753108e5db9181a948aacb2647d6fa589acbc811e92ef47202528769e3f00e99e6c5946b61611ccbb01c44312177ae479c231760a82feaaa95cefda6651074c69ba3b7228fc7a3a8eee1386a5d4d81585b019592018f487665db0bde3215df5bdab963626377e4815dc98f4065a05041bcb8d58e4148fef745ba2d4eed387b7e71d4adc4cfb6d7222f449e4ec0d5048d31f6ad108983b615e8e34d1b5cbb5c60266437bef0fc21c2b43f2ccf6350bd2b8fb83a051e66ec98dbb2286e5eef83d06d841e2c45b91377e0ddb0b8a1a87af1aacc14f0687ee2af1147c50e0ba6cb99f798817c2511a2fe8458d3e656ccb5b3c7e67c678bf95fdcccd8940e7ea220a314e493910d709e3b89c7e1cf863539e3aec72461665436b36875ed2905feac51b66a8a1d7f04a4fb6990d6a8353b20caf0ee754f4d9d524002f0c0386774b56983ef9c3456db61e73f9172957029c4b0ca3ec301babbdbc2a76af4180cda3bce4f8887540028053c6189be758ddb45b808cd4119fb82ac2b642118c5ba09b37ced9d03ea23776b8695b701a8840e9059a8046997cac52fad6668fe7be34980ebeae9093cc4b0666e25c8e131de45a990d016ae3e261ab54253645ed00d50c157747e7ff956148aa36dd8d31d4e0aee1a746ea4c84ece1993902b06f09fb92154826fdf6a1479a499d47fa676f8aa137078aaa62ba5c77960fdf5ca5dd2a67fb61cb9c0f799cca21d8fd6b6d70ffb2ff7e1a37756e30812e7c501318a9e427f88bf4a0e06bc1bacb9c121ea5b534f24862a507e384b603290548ba42f6adf5fed0118a448647ac64d484591219ddcac905b199d461e46f9a80c006bbafa4e71b85efcf5d9079605d32ac74c72d1cb0e6d4f97dbc0fe42c676c3d5d5e372533ebd46c7a91ac2d93f3aace9a7ec8bfa195317b0a1eacec3c31df7078abc3f96bdfa63836b05975356f459ecf0e35518ebecfd6b2b2ce2b291e16bd98e96d129c47f854006e80544ed04710a817a93b9f139ea9fb65f666075cd559a57d7bd192aa823ba209d7ef1cf9f203928ea3f4a5cb76d317e4f7851866c1ce16304f8d3f49eb4619850b6ee6056105422f13a6ed4b2243c2e3ccfd60f20c41302db296cab3a33205fcebe4f8e03724cd26c1e0ec2dcf1ce362ed877d690965cefbd14626ce7819f1bf00f8ff0abcecb91b3d7df99648ba7a2b25b795d3974c5def10eaf55113d9788f979483eeabc2a03e2f900086e722d0859349f99a09edc58fbc4dc7ee62449a17e12eb010afc34a21f0c051364b27d7f6171f70010151da9201236bdf7e89779a7f91c791beb2a71193946cc73146aee50ecfd494fb122144b3f9f37079c532f7f0c46d127c86335ea80d18a07690333aec7390facc5746c295697c6ac4da890830962c8157289ad04da1266fbefef00e10f9eeba9c9447fd991b808722012c4abf13b6a4f24142174616a51ec9b756d88ffc584f9696a7b14b29125abe59ff0456df32d296be1366f48b3220f7a031e499c51480rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootfwupd-1.8.6-150500.2.2.src.rpmfwupd-langfwupd-lang-all    fwupdrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)1.8.63.0.4-14.6.0-14.0-15.2-14.14.3d'@cc@cIO@c6@c,N@bb\@bb[@aaA@aaaaaaim@a^@`e`c`KW`6?`.V_S_м@_$_i_F@__@_O@_"@_"@_"@_@^א^א^1^@^h^)^ @]@]@]c]8H@] \\-@\@\Yz\73\\U@\ @[k@[Q@[\[h@[Xf@[GB[E@Zľ@ZlZ@Z`@Z1@Z1@Z1@Z;@Z8@Z2gYYYX @XX*X*X*X*X*X*X*X*X*Vii@Vii@Vii@Vii@Vii@Vii@Vii@Vii@Vii@Vii@UeU+U+dennis.tseng@suse.comdennis.tseng@suse.combjorn.lie@gmail.combjorn.lie@gmail.combjorn.lie@gmail.comdimstar@opensuse.orggmbr3@opensuse.orgbjorn.lie@gmail.combjorn.lie@gmail.comgmbr3@opensuse.orghpj@urpla.netbjorn.lie@gmail.combjorn.lie@gmail.comjlee@suse.comdimstar@opensuse.orgdimstar@opensuse.orgjsegitz@suse.comjlee@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.cominfo@paolostivanin.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comdimstar@opensuse.orgdimstar@opensuse.orgqkzhu@suse.comdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgyfjiang@suse.comdimstar@opensuse.orgdimstar@opensuse.orgglin@suse.comglin@suse.comhpj@urpla.netstefan.bruens@rwth-aachen.debjorn.lie@gmail.comschwab@suse.debjorn.lie@gmail.comglin@suse.comglin@suse.commpluskal@suse.commaurizio.galli@gmail.comdimstar@opensuse.orgglin@suse.commail@bernhard-voelker.debjorn.lie@gmail.comglin@suse.comschwab@suse.deglin@suse.comndas@suse.denico.kruber@gmail.comjengelh@inai.denico.kruber@gmail.comtchvatal@suse.comoliver@getspam.deoliver@getspam.dedimstar@opensuse.orgmpluskal@suse.comantoine.belvire@opensuse.orgfcrozat@suse.comdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgstefan.bruens@rwth-aachen.defcrozat@suse.comstefan.bruens@rwth-aachen.dedimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgmpluskal@suse.comzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgzaitor@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.orgdimstar@opensuse.org- Change version 1.8.6: + Fix compiling error when building s390x ppc64le - add %ifnarch conditional to spec file + Recover one changelog unexpectedly removed when first pushing fwupd-1.8.6 to 15-SP5 - Thu Feb 24 06:29:53 UTC 2022 - jlee@suse.com - Add fwupd-bsc1193921-nvme-ignore-non-PCI-NVMe-devices.patch to ignore non-PCI NVMe devices (bnc#1193921)- For pushing fwupd-1.8.6 to 15-SP5 (fwupd-1.7.3), sync change log: (jsc#PED-1232) - fwupd-bsc1193921-nvme-ignore-non-PCI-NVMe-devices.patch be merged to fwupd-1.7.3- Update to version 1.8.6: + This release adds the following features: - Reduce the installed package size by more than 30% - Translate more interactive messages + This release fixes the following bugs: - Allow disabling a DFU device when required - Fix a regression when getting the i2c bus number - Fix a small memory leak when reloading the parade-lspcon device - Fix installing the dbx update when using fwupdtool - Improve writing CoSWID and uSWID metadata - Only include the last 5 releases in the installed metainfo file - Only request the BOS descriptor for newer libgusb versions - Prevent high memory usage when loading corrupt SREC files - Try harder when trying to find the default ESP volume - Use a higher compression preset for the UEFI splash images + This release adds support for the following hardware: - Focaltech touchpads - FPC fingerprint readers - Supermicro machines using Redfish - Drop plugin_sover define, and sub-packages libfwupdplugin7 and typelib-1_0-FwupdPlugin-1_0 following upstream changes.- Update to version 1.8.5: + This release adds the following features: - Add a new android-boot plugin to update specific block devices - Add new plugin to display SMU firmware version on AMD APU/CPU - Add support for platform capability descriptors so devices can set quirks - Move the generic Intel Goshen Ridge code out to a new plugin + This release fixes the following bugs: - Allow specifying the ESP when applying the dbx update - Always check the BDP partitions when getting all the possible ESPs - Correctly update Wacom AES devices - Disable changing sleep mode on Ryzen 6000 systems - Do not show the 'may not be usable while updating' message for DBX updates - Expose Pine64 PinePhone Pro MTD as Tow-Boot - Fix a critical warning when issuing Secure Boot modem AT commands - Fix a fuzzing crash when parsing malicious FDT data - Fix aligning up addresses greater than 4GB - Fix a possible crash when dumping VBE firmware - Fix a possible critical warning when parsing cabinet archives - Fix a regression when parsing pixart-rf firmware - Fix a small memory leak when parsing UF2 files - Fix checking for invalid depth requirements - Fix parsing the coSWID firmware ID when encoded as a UUID - Fix parsing uSWID uncompressed metadata - Fix uploading to DFU-CSR devices - Limit the archive size to 25% of the RAM, or 4G - Load coSWID metadata from a uSWID MTD block device - Never save the Redfish auto-generated password to a user-readable file - Only create users using IPMI when we know it's going to work - Write all the CCGX metadata block as intended + This release adds support for the following hardware: - Corsair SABRE RGB PRO Gaming mouse - More Sonix CAM devices - More Intel Goshen Ridge USB-4 docks - Changes from version 1.8.4: + This release adds the following features: - Add a translated title and long description for HSI security attributes - Add support for loading a machine-default BIOS settings policy - Add support for reading and writing BIOS settings - Allow loading BIOS settings for host emulation - Prompt users to fix some BIOS configuration issues + This release fixes the following bugs: - Actually show provided AppStream security issues - Add Quectel secure boot status AT commands - Correctly detect CET IBT - Do not assert when running with no plugins - Do not require UEFI capsule updates for checking TPM PCR0 - Do not show HSI events where we changed the spec result value - Fix applying the latest DBX update - Include vfat in the list of possible BDP partition types - Install all devices with the same composite id in fwupdtool - Only fail the kernel HSI test for specific taint reasons - Only show changed events in fwupdmgr security - Update vulnerable CMSE versions from CSMEVDT data + This release adds support for the following hardware: - Elan non-HID touchpads - Google Prism - LabTop Mk III - ThinkPad Thunderbolt 4 Dock - ThinkPad Universal Smart Dock - Changes from version 1.8.3: + This release adds the following features: - Add resolution flags to each security attribute failures for the user - Allow loading in emulated host profiles for debugging - Check if Intel TME has been disabled by the firmware or platform - Wait for the system to acquiesce after doing each update + This release fixes the following bugs: - Do not use CoD even when advertized on non-aarch64 platforms - Fix a crash when updating the Logitech Bolt radio device - Fix a critical warning when parsing an invalid PHAT record - Fix a critical warning when parsing invalid FDT firmware - Fix fwupdmgr security when plugins are added to the blocklist - Fix parsing SMBIOS data to correct the device hardware IDs - Fix uploading signed reports by sending the correct checksum - Use the correct protocol attribute name when exporting to JSON + This release adds support for the following hardware: - Additional Startech devices - Additional Elan fingerprint readers - Changes from version 1.8.2: + This release adds the following features: - Add startup profiling which allowed us to speed up daemon startup considerably - Add support for OptionROM, CPD and FPT firmware formats for future hardware - Add the HostVendor to the D-Bus interface - Break some internal ABI and add a conversion helper for out-of-tree plugins - Optionally build the quirk files into the daemon binary to reduce installed size + This release fixes the following bugs: - Allow front-end clients to read the percentage property - Allow more quirk entries to add multiple items - Allow to force install Genesys firmware even if the public-key does not match - Allow UFS disks to define the signed status in metadata - Autoconnect the Redfish network device when rebooting the BMC - Copy the instance ID strings when incorporating devices - Do not generate a capsule header for the FMP GUID - Ensure more firmware formats can round-trip to and from XML - Fix a regression for devices using the Atmel FLIP Bootloader - Fix running fwupdtool security with a user-specified plugin allowlist - Handle ENOTTY with the correct error code for ioctl calls - Increase the self tests coverage substantially - Modernize the AMT plugin and split out common MEI functionality - Only move the logitech-bulkcontroller progressbar forwards when writing - Set the device ID on the FwupdRequest to allow better UX - Show the get-details output when the device requirements fail - Simply quirk matching for i2c devices to speed up daemon startup - Support SHA256 fastboot hashes if specified - Use force-detach to bypass the DFU streaming check for camera devices - Use the SCSI target to correctly set the physical ID - Wait for the System76 launch device to re-enumerate if already unlocked + This release adds support for the following hardware: - Corsair HARPOON RGB Wireless mouse - U-Boot devices writing simple FIT images - Genesys M27fd AIM101 - More PixArt wireless devices - More Steelseries HID, Sonic and Fizz devices - System76 launch_2 - Changes from version 1.8.1: + This release adds the following features: - Add archive writing support for devices with composite firmware - Add a way to read device composite firmware in fwupdtool - Allow clients to opt-in to showing updates with user-solvable problems - Allow the device to pause polling when writing firmware - Export the system and device battery levels on the D-Bus interface - Log errors and warnings to the win32 eventlog when required - Add X-UsbReceiver as an update category with icon usb-receiver + This release fixes the following bugs: - Accurately return the last-set status to client tools - Allow dumping flashrom firmware using fwupdtool - Allow specifying a non-file D-Bus transport - Allow to request post actions from fwupdtool - Always be arch-explicit when installing OS deps - Be more resilient when restarting the Redfish BMC - Do not mark all Redfish updates as UPDATABLE - Do not use 'dongle' to describe USB receiver hardware - Download in-process when using fwupdtool - Fix a critical warning on failed modem update - Fix regression when probing PS175 devices - Hardcode the Redfish filedata name to firmware.bin - Set the Bluetooth version if REV has been set - Switch the Windows installer from NSIS to MSI - Use StartServiceCtrlDispatcherA for the daemon on Windows - Use the native certificate store on Windows + This release adds support for the following hardware: - Corsair KATAR PRO XT, SABRE PRO and KATAR PRO Wireless - HP Thunderbolt Dock G4 - Lenovo ThinkPad Universal USB-C Dock - More PixArt wireless devices - More SunplusIT USB cameras - Some UFS devices - Steelseries Aerox 3 Wireless and Rival 3 Wireless - Changes from version 1.8.0: + This release adds the following features: - Add a new attribute for CPUs supported by HSI - Add coSWID and uSWID parsers to libfwupdplugin for initial SBoM support - Add new HSI attributes for the AMD PSP and various other system protections - Add the runtime fwupd-efi version as a firmware requirement - Allow 'fwupdmgr install' to install a specified firmware version - Allow overriding the detected machine type for debugging and development - Restart the BMC after installing BCM updates - Show the device serial number and instance IDs by default - Support dumping the MTD image to a firmware blob - Take a device inhibit when updating a device - Use the CFI manufacturer ID to set the vendor - Use the correct icon automatically for more hardware + This release fixes the following bugs: - Add signed-payload metadata for more devices - Allow Capsule-on-Disk to work in more cases - Allow quirking the detected flashrom flash size - Check for os-release on FWUPD_SYSCONFDIR - Check the alignment when parsing raw firmware - Check the update protocol exists when checking requirements - Convert the build system to use meson tristate features - Correctly probe USB-2 hubs with more than 7 ports - Do not add the Windows compatibility ID to capsule devices - Do not allow the DBX update for specific motherboards - Do not expect KernelCmdline on Windows - Do not export USB4 host controllers as updatable if they don't have unique GUIDs - Do not fallback to audio-card and use a more suitable icon for USB hubs - Do not hardcode the libexecdir to /usr/libexec - Do not leak child processes when canceling - Do not show unconnected or unreachable devices in the client tools - Do not throw away the TPM eventlog when uploading to the LVFS - Do not use /var/run for the socket - Export the version_lowest_raw value correctly - Fix build for MacOS and add to the CI matrix - Fix eventlog replay for Intel TXT machines - Fix several small memory leaks - Fix writing large mtd images than 10kb - Ignore MTD devices that report EPERM on open - Mark the ME region device locked if it is read only - Never send the DeviceChanged signal with old data - Only show the CLI time remaining for predictable status phases - Respect the NO_COLOR env variable - Return the correct error when there is no GPIO device to open - Support the new UPower PENDING device states + This release adds support for the following hardware: - CH341A SPI programmer - Corsair Sabre RGB PRO and Slipstream USB receiver - Genesys GL3521 and GL3590 hubs - Google Servo Dock - Logitech M550, M650 and K650 - More ELAN fingerprint readers - More integrated Wacom panels - More NovaCustom machines - More StaLabs StarLite machines - More Tuxedo laptops - Quectel EM05 - FlatFrog devices - System76 launch_lite_1 - Rebase patches with quilt. - Use ldconfig_scriptlets macro for post(un) handling. - Add shlib_sover define and set it to 2, ease future updates. - Add plugin_sover define and set it to 7, ease future updates, and rename libfwupdplugin5 to libfwupdplugin7 following upstream changes. - Drop gtk-doc and pkgconfig(gtk-doc) BuildRequires: No longer needed nor used. Following this, stop passing docs=gtkdoc to meson, no longer recognized. - Add pkgconfig(gi-docgen), pkgconfig(libcbor), pkgconfig(mm-glib), pkgconfig(mbim-glib), pkgconfig(qmi-glib) and pkgconfig(umockdev-1.0) BuildRequires, and conditional pkgconfig(flashrom) BuildRequires: New dependencies. - Update options passed to meson following upstream changes. - Replace false for plugin_nvme and plugin_redfish with enabled, build nvme and redfish plugins. - Split out developer/api docs in new doc sub-package, add fdupes BuildRequires and macros, remove duplicates.- Update to version 1.7.10 (CVE-2022-3287, boo#1203852): + Always check the BDP partitions when getting all the possible ESPs + Correctly detect CET IBT + Do not show HSI events where we changed the spec result value + Fix aligning up addresses greater than 4GB + Fix applying the latest DBX update on machines with 20200729.x64 installed + Fix checking for invalid depth requirements + Fix getting the new version number of the USI docking hardware + Fix HSI prefix for invalid chassis + Never save the Redfish auto-generated password to a user-readable file (CVE-2022-3287, boo#1203852). + Only create users using IPMI when we've tested the hardware + Only fail the kernel tainted HSI test for specific taint reasons + Only show changed events in the fwupdmgr security output + Recognize CSME version 16 and update vulnerable versions from CSMEVDT data + Write all the CCGX metadata block as intended- Update to version 1.7.9 (boo#1201311): + Do not generate a capsule header for the FMP GUID. + Do not use CoD even when advertized on non-aarch64 platforms. + Fix a critical warning when parsing an invalid PHAT record. + Fix a regression for devices using the Atmel FLIP Bootloader. + Fix parsing SMBIOS data. + Set the device ID on the FwupdRequest. + Use the correct protocol member when converting to JSON. + Wait for the system76-launch device to re-enumerate if unlocked and reset. - Changes from version 1.7.8: + Add the bootloader VID/PID used for the first batch of ColorHug devices. + Also check for os-release in SYSCONFDIR. + Export the version lowest raw value correctly. + Fix a Wacom timeout when parsing very corrupt firmware. + Fix Genesys device enumeration failure by not claiming the interface. + Hardcode the Redfish filedata name to firmware.bin. + Install D-Bus introspection data even if introspection is disabled. + Only set the flashrom BIOS size if not already quirked. + Read the SynapticsMST firmware size in a more safe way. + Restart the BMC after installing BCM updates.- Update to version 1.7.7: * This release adds the following features: + Add CCGX trigger code to support future hardware + Add signed and unsigned payload metadata to more devices + Allow overriding the detected machine type + Allow quirking the flashrom flash size + Do not allow the DBX update for broken firmware versions * This release fixes the following bugs: + Do not add the backup BMC device as it shares the same GUIDs + Do not hardcode the libexecdir to /usr/libexec + Do not leak child processes when canceling + Do not throw away the TPM eventlog when uploading reports to the LVFS + Don't export USB4 host controllers if they do not have unique GUIDs + Fix build for MacOS + Fix the TPM eventlog replay for Intel TXT machines + Fix writing large MTD images + Never send the DeviceChanged signal with invalid data + Return the correct error when there is no GPIO device to open + Show the update message and update image in front end tools + Support the new PENDING upower device states * This release adds support for the following hardware: + Logitech M550, M650 and K650 + More Elan fingerprint readers + More Star Labs StarLite laptops + More Wacom panels found on Lenovo laptops - Split bash and fish completions to separate subpackages - Remove un-needed BRP_PESIGN_FILES - Set GNU_SOURCE so meson detects F_OFD_SETLK in fnctl.h support- Update to version 1.7.6: * This release adds the following features: + Add a flag for UEFI devices that never want a capsule header auto-added + Add a flag to indicate the device has a signed or unsigned payload + Add a plugin to set a GPIO pin for the duration of an update + Add a simple plugin to enumerate (but not update) SCSI hardware + Add two more instance IDs to the MTD devices + Add X-BaseboardManagementController as an update category + Allow assigning issues to devices for known high priority problems + Parse the MTD firmware version using the defined GType * This release fixes the following bugs: + Check the IFD sections have non-zero data length to fix a critical warning + Modify the AT retry behavior to fix getting the firmware branch + Do not run fwupd-refresh automatically in containers + Do not show a warning if the TPM eventlog does not exist + Do not show TSS2 warning messages by default + Fix a critical warning when loading an empty TPM eventlog item + Fix a logic error when adding the community warning in fwupdmgr + Fix loading flashrom devices in coreboot mode + Fix the error handling when updating USB4 retimers + Show the user when devices are not updatable due to inhibits + Skip probing the Dell DA300 device to avoid a warning + Try harder to convert to a version into a correct semver + Use multiple checksums when there are no provided artifacts * This release adds support for the following hardware: + HP M2xfd monitors + Star Lite Mk III- Update to version 1.7.5: * This release adds the following features: + Add a flag to indicate the firmware is not provided by the vendor + Add support for showing dependency versions in JSON format + Allow fwupd to operate in socket mode without a D-Bus daemon + Allow marking a device as End-of-Life by the OEM vendor + Allow specifying the machine Best Known Configuration locally + Fall back to the ARM Device Tree 'compatible' data when required * This release fixes the following bugs: + Be more robust by retrying IPMI transactions on servers + Change the expired Redfish password when required + Fix a ModemManager segfault on startup for some MBIM-QDU devices + Fix a possible dell-dock segfault at startup + Fix compiling with new versions of efivar + Fix the Nordic bootloader type detection + Fix USB4 retimer enumeration + Get the SMBIOS table and host machine ID when running on Windows + Show results when calling get-details if failing requirements + Uninhibit the modem using ModemManager after upgrade * This release adds support for the following hardware: + Future Analogix devices + NovaCustom NV4x - Changes from version 1.7.4: * This release adds the following features: + Add firmware branch support for ModemManager devices + Allow firmware engineers to patch files at known offsets + Show why more devices are not marked as updatable * This release fixes the following bugs: + Allow fwupdtool to be run as the non-root user in more cases + Assign the Logitech bulkcontroller update interface correctly + Do not allow UEFI updates when the laptop lid is closed + Do not autoload ipmi-si to avoid warning on non-server hardware + Do not show a critical warning for a weird TPM event log + Fix waiting for USB devices when using Windows + Ignore non-PCI NVMe devices * This release adds support for the following hardware: + HP USB-C G2 Dock + Many UF2 devices, experimentally + More PixArt devices + Nordic HID devices using MCUBoot + Quectel EG25-G LTE Modem + ThinkPad Thunderbolt 4 Dock- Update to version 1.7.3: * This release adds the following features: + Add a sync-bkc subcommand to ensure a known set of firmware versions + Add FuArchiveFirmware for plugins that use archives as firmware files + Add quirkable page and sector size properties to FuCfiDevice + Make Upower and powerd support optional * This release fixes the following bugs: + Add some sanity checks to the elanfp firmware parser + Add the CFI JEDEC instance ID if using the vendor-extended version + Check the value range when parsing the quirk keys + Do not wait for a USB runtime if will-disappear is set + Enable the MOTD integration when using pam_motd + Fix DFU regression when merging the FuProgress work + Fix running the tests when fwupd is not installed + Fix the GLib error message when inotify max_user_instances is too low + Fix VLI VL820Q7 detection to fix flashing of the Lenovo TBT3 dock + Ignore a USB error for STM32 attach when the device goes away + Make the HSI tests optional for embedded targets + Make the plugin startup order deterministic + Set Thunderbolt ports offline on host controller + Use endian-safe version functions when enumerating Logitech hardware + Use lowercase flag names in intel-spi to prevent a runtime warning + Wait for the System76 Launch device to come back from DFU mode * This release adds support for the following hardware: + Most Nordic Semiconductor nRF Secure devices - Fix build when not on TW: add BR protobuf-c- Fix build issue in spec (references to libfwupdplugin2 -> libfwupdplugin5)- Update to version 1.7.2: * This release adds the following features: + Add a new HSI check that PCR registers 0-7 are not empty + Add several compile flags to reduce the install size by over 300Kb + Allow overriding HwId data from the daemon.conf config file + Allow overriding the firmware GType from a quirk file + Export the component release ID over DBus + Remove support for the SoloKey and ChaosKey devices + Show a daemon warning if quirk flags are malformed + Speed up the daemon startup by ~40% by doing less at startup * This release fixes the following bugs: + Be case insensitive when fixing the device model + Fix a critial warning in ccgx found by the fuzzer + Fix a DFU crash if the attach failed due to a hardware fault + Fix a Redfish crash when specifying a URL without a port + Fix CLI downloads when using fwupdmgr --ipfs + Fix critical warning when /etc/machine-id does not exist + Inhibit thunderbolt devices to correctly use UPDATABLE_HIDDEN + Set SSL_VERIFYHOST=0 when using Redfish to fix OpenBMC auth + Skip UEFI devices that fail coldplug * This release adds support for the following hardware: All exported MTD block devices - Changes from version 1.7.1: * This release adds the following features: + Allow specifying 'fwupdmgr device-test foo --json' for unattended testing + Allow using a filename when using set-approved-firmware + Inhibit ModemManager device in mbim-qdu + Share the Common Flash Memory Interface quirks between plugins + Show changes in HSI attributes when using 'fwupdmgr security' + Show the user a warning if updating may affect full-disk-encryption + Show translated firmware release notes when provided + Support loading remotes from /var/lib/fwupd/remotes.d * This release fixes the following bugs: + Fix a CCGX regression when loading firmware + Fix a potential crash when dumping Parade devices + Fix build error when sys/io.h is not available + Fix building the Synaptics RMI self tests on s390x + Fix the CSME CVE detection for new generations + Handle EPERM when running the self tests on systems with IPMI + Mark as SUPPORTED even if on battery power + Only save the HSI attributes to the database if different + Raise the client timeout value from 25 seconds to fix Redfish startup + Redirect the old HSI links to the correct place + Relax the ITE SuperIO signature checks for new hardware support + Set device time and timezone for logitech bulkcontroller devices + Set the verfmt of the returned device when the daemon device is unset * This release adds support for the following hardware: + Dell Atomic Dock + HP Thunderbolt Dock G4 + More PixArt devices + Steelseries Stratus + Wacom 3rd-gen Intuos BT - Changes from version 1.7.0: * This release adds the following features: + Add FuCfuPayload and FuCfuOffer for future usage + Add support for an 'unreachable' device flag + Add support for Logitech devices supporting the Unified Battery feature + Allow adding GUIDs to each HSI security attribute + Allow installing the LVFS remote, but with it disabled by default + Convert security attributes to JSON and write then to the database + Convert the device test script to a fwupdmgr subcommand + Create Redfish user accounts automatically using IPMI + Use an interactive request to restart some Logitech DFU devices * This release fixes the following bugs: + Abort on invalid SREC files early to avoid a fuzzing timeout + Allow using interrupt transfers for HID devices + Allow waiting for multiple devices to replug + Fix a critical warning on a Unifying flash failure + Fix a regression in flashing the Dell dock + Fix Thunderbolt host controller probing + Forcefully set checksums found in cabinet files to lowercase + Force UX-capsule over full size BGRT + Make the SuperIO ports and timeouts specific to the DMI model + Only probe SynapticsMST devices that have opted-in + Remove support for --ignore-power as it did not work for UEFI firmware + Reset the CMOS as required when changing system firmware branch + Restart the daemon if any of the the plugin config files are modified + Show HSiLevel=0 attributes in JSON security output + Update the child composite ID if the parent changes + Use a per-device global percentage completion + Write the BMP image upside down to avoid using a negative bitmap height * This release adds support for the following hardware: + A huge number of Synaptics CAPE devices + Elan fingerprint readers + Logitech Bolt peripherals, receivers and radio hardware + Logitech devices supporting the bulk controller protocol + More supported PixArt devices + More supported StarBook coreboot devices + Union Point SPI hardware - Add pkgconfig(libprotobuf-c) and pkgconfig(protobuf) BuildRequires: New dependencies. - Refresh patches with quilt. - Drop sub-package fwupdtpmevlog, no longer built. - Update URL in _service, new home.- Update to version 1.6.4: * Allow overriding the quirks directory at runtime * Fix a regression in flashing the Dell dock * Fix probing the Dell TPM * Show HSiLevel=0 attributes in JSON security output * Abort on invalid SREC files early to avoid a fuzzing timeout * This release adds support for the following hardware: + AVer ATLAS CAM/CAM520 Pro2 + Cayenne/Spyder Synaptics MST + VL819 USB devices - Changes from version 1.6.3: * This release adds the following features: Fall back to the parent if the child does not have a battery level set * This release fixes the following bugs: + Disable the uefi_capsule plugin if Redfish coldplug succeeded + Fix an elantp crash when starting the daemon + Fix compiling with old versions of libxmlb + Fix detection of 8Bitdo wireless usb adapter + Fix the 8bitdo N30 Pro 2 install duration + Fix the modem-manager report that failed to get device after update + Fix writing large redfish firmware files * This release adds support for the following hardware: + Poly Studio P21 + Realtek RTD2141B - Switch service to obs_scm, and recompress to buildtime. - Drop automatic changesgenerate, upstream have perfectly fine and human understandable release notes at https://github.com/fwupd/fwupd/releases that should be copied into .changes.- Add requires to udisks2 for dbxtool update. (bnc#1192344)- If the machine we install onto has shim installed, it is likely an EFI based system. Require fwupd-efi in this case (boo#1192206).- Require libfwupdplugin2 by the -devel package: the -devel package installs the .so symlink, thus we must guarantee the target library to be present.- Added hardening to systemd service(s) (bsc#1181400). Added patch(es): * harden_fwupd-offline-update.service.patch * harden_fwupd-refresh.service.patch- Update to version 1.6.2 - The fwupd efi program be separated to fwupd-efi package. - Removed pesign-obs-integration, moved needssslcertforbuild , SBAT and EFI signing stuff to fwupd-efi. - Moved libfwupdplugin1 to libfwupdplugin2 - Change log from upstream: https://github.com/fwupd/fwupd/blob/main/data/org.freedesktop.fwupd.metainfo.xml - This release adds the following features: * Add a plugin to check Lenovo firmware settings * Add initial support for the powerd daemon * Add support for CapsuleOnDisk * Add support for installing UEFI updates from GRUB * Add support for soft-requirements that can be ignored with --force * Allow devices to only accept version upgrades * Allow discovery of Redfish BMCs specified by VID-PID or MAC * Allow the daemon to request interactive action from the end user * Automatically connect the BMC network interface at startup * Show the build timestamp if set on the device * Show the user how to switch out of Wacom tablet Android-mode - This release fixes the following bugs: * Add the alternate vendor name into the 8BitDo allowlist * Allow multiple devices to set WAIT_FOR_REPLUG * Allow the client to watch for more property changes * Always ensure the SuperIO version string is NUL terminated * Automatically clear the update error as required * Disable all UX capsules for Lenovo hardware * Do not assume the metainfo file is NUL-terminated * Do not save invalid files on LVFS server error * Fix a VLI regression in enumerating the PD device * Fix a VLI regression when installing VL820Q7 firmware * Fix enumeration of the Synaptics Prometheus config child * Fix parsing Redfish USB/PCI network VID/PIDs * Fix the fwupdmgr progressbar spinner to actually work * Fix version number for legacy Wacom Bluetooth modules * Ignore virtual M.2 ATA devices * Preserve NEEDS_REBOOT on successful update * Prevent a corrupt PHAT table from allocating lots of memory * Read the Redfish SMBIOS table when required * Remove the vendor string from the device name where required * Save the update state to the database correctly all of the time * Switch from sysctl to ioctl for ESRT on FreeBSD * Try reading from /sys/class/dmi if SMBIOS direct access fails * Watch for children added or removed after setup has been completed * Work around a XCC-ism on Lenovo hardware - This release adds support for the following hardware: * ModemManager devices supporting Firehose or MBIM QDU * More models of RTS54HUB * More Poly DFU devices * Parade LSPCON * PixArt receiver and wireless hardware * Realtek MST with RTD2142 * SuperIO IT5570 * USB4 Dell dock- Remove valgrind from BuildRequires since it's not a hard requirement anymore. (bsc#1184248)- Update to version 1.5.8: New features: * Add a new internal flag to opt-in to GUID matching * Add D501 Baklava device support * Add fu_device_set_battery_level() * Add missing uint64 read and write helpers * Add Qubes wrapper source and create packages * Allow enabling plugins only matching a specific HwId * Prompt for unlock keypress if reset command is blocked * Remove obsolete dell-dock non-passive update flow support * Remove the Hughski public key * Show a warning when parsing invalid quirk files * Support for GATT characteristic signals/notifications * Support more than one protocol for a given device Fixes: * Align the CCGX DMC firmware to 64 byte chunks * Be more strict for custom quirk keys * Check pixart firmware compatibility with hardware before flashing * Correct a thunderbolt assertion if kernel failed FW read * Correctly erase STM32 devices when transfer size is less than sector size * Detect SREC overflow to avoid adding ~4GB of 0xFF padding * Do not show a critical error when flashing footer-less binary files * Don't allow device updates while needing activation * Fix a regression in the elantp defined IAP start address * Fix a regression where activate stopped working * Fix firmware update of pointing device on Lenovo ThinkPad Nano * Fix the HSI plugin 'Disabled' state * Fix the quirk key name for the Lenovo HDMI with power * Fix writing to the GD32VF103 bootloader * Only call elantp->detach() when writing a firmware blob * Updated StarLabs GUIDs * Wait a few ms for the Logitech hardware to settle after detach - Remove GPG-KEY-Hughski-Limited from the filelist - Drop upstreamed patch + fwupd-bsc1182057-fix-sbat-section-copy.patch- Add fwupd-bsc1182057-fix-sbat-section-copy.patch to set the proper section flags for .sbat section so that objcopy can copy it into fwupd*.efi (bsc#1182057)- Update to version 1.5.7: New features: * Add initial support for Bluez bluetooth devices * Add more supported pixart devices * Add support for the RTD21xx HDMI converter Fixes * Convert MBR types to GPT GUIDs to help find the ESP * Do not allow updating a synaptics-mst device with no customer ID * Drop unused heap pages after startup has completed * Ensure SBAT metadata is added correctly * Move the plugin build logic to the plugins themselves * Only allow verify-update for plugins that support CAN_VERIFY - Specify SBAT metadata for openSUSE/SLE (bsc#1182057) - Adjust the meson options + plugin_uefi => plugin_uefi_capsule and plugin_uefi_pk + plugin_synaptics => plugin_synaptics_mst and plugin_synaptics_rmi + Disable Intel AMT plugin in non-x86 systems- Update to 1.5.6: New features: * Add SBAT metadata to the fwupd EFI binary * Add support for GD32VF103 as found in the Longan Nano * Add support for RMI PS2 devices * Add support for the System76 Keyboard * Allow downloading firmware from IPFS * Install the UX data into a single .tar.xz file * Add a plugin to update PixArt RF devices * Add new hardware to use the elantp and rts54hid plugins * Allow specifying more than one VendorID for a device * Detect the AMD TSME encryption state for HSI-4 * Detect the AMI PK test key is not installed for HSI-1 * Add Maple Ridge Thunderbolt firmware parsing support * Add --no-remote-check to ignore checking for download remotes * Allow creating FMAP and Synaptics firmware using builder.xml Fixes: * Add support for the Starlabs LabTop L4 * Allow using an external ESP again * Ask the user to reboot when required if downgrading * Be more paranoid when parsing ASCII buffers and devices * Check if the fwupd BootXXXX entry exists on failure * Clear the pending flag if restarting the system * Do not allow flashing using flashrom if BLE is enabled * Do not allow Lenovo hardware to install multiple capsules * Do not parse the OptionROM image * Do not show Unknown [***] for every client connection * Fix dnload wBlockNum wraparound for ST devices * Fix OOM when using large ArchiveSizeMax values * Fix several crashes spotted by AddressSanitizer * Fix several places where the Goodix MOC plugin could crash * Include the PCR0 to the report metadata * Report the lockdown status from UEFI and SuperIO plugins * Show a console warning if the system clock is not set * Fix flashing a fingerprint reader that is in use * Fix several critical warnings when parsing invalid firmware * Fix updating DFU devices that use DNLOAD_BUSY * Ignore the legacy UEFI OVMF dummy GUID * Make libfwupd more thread safe to fix a crash in gnome-software * Never show unprintable chars from invalid firmware in the logs * Allow using fwupdtool as non-root for firmware commands * Do not trust the Block.HintSystem boolean for ESP filtering * Fix a memory leak when parsing Synaptics firmware * Fix a possible crash when reading the Goodix MOC USB request * Fix crashes when parsing invalid FMAP, DMC, Solokey and Synaptics images - Deprecate fwupd-bsc1179790-disable-hintsystem.patch- Add fwupd-bsc1179790-disable-hintsystem.patch to remove Block.HintSystem from ESP filtering (bsc#1179790)- Update to version 1.5.3: + Lower the CURL version required to fix build in RHEL + Do not use meson ternary operations to avoid bumping the required meson version + Added Lite Mk III + Allow setting the GMainContext when used for sync methods + Fall back to the misc device for serio devices + Actually implement rescan in FuUdevDevice + bcm57xx: Refactor CRC code to remove extra byteswap + bcm57xx: Fix CRC check + synaptics-rmi: Don't crash if calling ->to_string() before - >setup() + Fix a possible critical warning due to missing retval + Add the serio->firmare_id for UDev devices + Export the driver name from FuUdevDevice + Allow the client to send PKCS7 and GPG signatures + Force the remote kind to JCat server-side + Only parse the signature if the remote is JCat + fu-main: Fix sender_features insert with wrong size + make platform integrity plugin optional and disabled by default + Add quirk for Western Digital + Mark more user-visible strings as translatable + modem-manager: validate firmware update method combinations + modem-manager: remove unused byte counts in QMI/PDC update logic + modem-manager: make sure the correct interface number is used for QMI + modem-manager: udev monitoring only if device switches layout + modem-manager: plug udev client leak + Restrict loading component types of firmware - Enable supported_build to clarify that this package is supported (bsc#1179790) - Drop fwupd-platform-integrity.conf since upstream disables the platform integrity module by default now due to incompleteness. - Address fwupd-refresh.service in %preun, %pre, %post, and %postun and provide a rc link for it - Version "Obsoletes: dbxtool" and "Obsoletes: fwupdate"- Update to version 1.5.2: + ata: Add OUI quirk for Toshiba + libfwupd: Restore recognizing gpg and pkcs7 types still + Register the SoupSession gtype when required + Switch from libsoup to libcurl + Fix sync method when called from threads without a context + Move ABI check to Github actions + Enable github workflows + libfwupd: Add fwupd_client_download_file() + libfwupd: Add fwupd_client_get_user_agent() + Only download the remote metadata as required + Add breaks for fwupdate 12-7 (Closes: #960688) + Install modules-load configs in the correct directory + vli: Do not be clever replugging the MSP430 device + vli: Make some trivial debugging more specific to help debug an issue + make gcab optional + Fall back to FAT32 internal partitions for detecting ESP + Add a flag to indicate if packages are supported + uefi: a new option for uefi configuration to use UEFI removable path + Add a section to man page on scripting + synaptics-mst: Improve reliability by waiting 2 seconds after writing data + hailuck: Add an plugin for the Pinebook Pro laptop + Allow setting global flags for FuHidDevice + Set the SMBIOS chassis type to portable if a DT battery exists + colorhug: Don't set the version format to triplet at startup + Allow components to set the icon from the metadata + colorhug: Fix detection of version on older firmware versions + bcm57xx: Fix reading vendor/device ids from firmware. + Remove HSI update and attestation suffixes + trivial: make dbxtool executable to fix snap build + Ignore an invalid vendor-id when adding releases for display + Notify the service manager when idle-quitting - Refresh fwupd-bsc1130056-change-shim-path.patch - Changes in BuildRequires: + Replace pkgconfig(libsoup-2.4) with pkgconfig(libcurl) + Replace pkgconfig(systemd) with pkgconfig(libsystemd) - fwupd-msr.conf and fwupd-platform-integrity.conf are moved to %{_modulesloaddir}.- Obsoletes and Provides dbxtool since fwupd 1.5.0+ now embeds dbxtool in the dbxtool plugin- Amend the spec file (jsc#SLE-16818) + Only enable fish support for Tumbleweed + Only enable the MSR plugin for x86 + Only install dbxtool in the architectures with UEFI support- Update to version 1.5.1: + Use UDisks to find out if swap devices are encrypted. + Show a link to discover more information about a specific plugin failure. + updated fish completions to 1.5.0. + Remove the duplicate parent-child data in FwupdDevice and FuDevice. + Show a less scary fwupdate output for devices without info. + thunderbolt: recognize authorized value of '2' as well. + bcm57xx: Make hotplug more reliable. + Use a different Device ID for the OptionROM devices. + contrib/ci: switch TPM simulator from ibmswtpm to swtpm. + Delete unused EFI variables when deploying firmware. + Fix probe warning for the Logitech Unifying device. + Include the amount of NVRAM size in use in the LVFS failure report. + Add external interface messages.- Update to version 1.5.0: + Add a compatible re-implementation of the rhboot dbxtool. + Add async versions of the library for GUI tools. + Add commands for interacting with the ESP to fwupdtool. + Add firmware-extract subcommand to fwupdtool. + Add FwupdPlugin so we can convey enumerated system errors to the end user. + Add plugin for Goodix fingerprint sensors. + Add plugin that can update the BCM5719 network adapter. + Add plugin to update Elan Touchpads using HID. + Add support for a delayed activation flow for Thunderbolt. + Add support for ChromeOS Quiche and Gingerbread. + Add support for Hyper hardware. + Add support for the Host Security ID. + Add support for ThunderBolt retimers. + Add switch-branch command to fwupdtool and fwupdmgr. + Allow blocking specific firmware releases by checksum. + Allow contructing a firmware with multiple images. + Allow firmware to require specific features from front-end clients. + Allow updating the dbx using the LVFS, validating it is safe to apply. + Include the HSI results and attributes in the uploaded report. + Support loading DMI data from DT systems. + Support LVFS::UpdateImage for GUI clients.- Add fwupd-jscSLE-11766-close-efidir-leap-gap.patch: Set SLE and openSUSE esp os dir at runtime (jsc#SLE-11766) - Drop _multibuild and build option -Defi_os_dir="%{efidir}": with the above patch fwupd can detect esp os dir dynamically - Update the efidir related %post and %postun scripts in spec file- Update to version 1.4.5: * Add XB_QUERY_FLAG_FORCE_NODE_CACHE * Add support for a delayed activation flow for Thunderbolt * Allow firmware to require specific features from front-end clients * Allow multi-byte FuUdevDevice preads and writes * Be more defensive when remotes are missing required keys * Disable the SQLite lookaside cache * ccgx: Add more hybrid dock support * ccgx: Modify readme to remove customer info * ccgx: add new protocol for dmc dock * ccgx: remove verify flag in plugin * modem-manager: read the vendor ID directly from sysfs attribute Fixes: #2209 * thelio-io: Add the DFU instance ID as a counterpart only * thunderbolt: Add a new subclassed thunderbolt firmware update type * thunderbolt: Allow quirks to skip the authentication step * thunderbolt: drop support for force power * tpm-eventlog: fix PCR0 calculation * uefi: check for free space after cleaning up ESP * vli: Add dual-image feature for VL103 backup firmware * vli: Add the project ID shared SPI PD controllers * vli: Allow chained usb hub devices where the parent needs GPIOB reset * vli: Do not modify the class vfuncs depending on device type * vli: Do not use GUID matching for the MSP device * vli: Rename FuVliUsbhubI2cDevice to FuVliUsbhubMsp430Device * vli: Set FuQuirks on the shared SPI object * vli: Set the i2c instance IDs in probe() * vli: Use the GPIOB reset for the MiniDock VL103 * vli: Wait for the root device to be replugged when updating the MSP430- Update to version 1.4.4: * Release fwupd 1.4.4 * Fix regression when checking for downgraded metadata- Update to version 1.4.3: * Release fwupd 1.4.3 * ata: A OUI quirk for Kingston * ccgx: Fix a potential division by zero * Check the device requirements when returning from GetDetails * fu-engine: Allow --plugin-whitelist to use dashes instead of underscores * Always enforce the metadata signature has a valid timestamp * ccgx: modify install duration for dmc device * ccgx: Add support for HP DMC dock devices * dell-dock: prevent updates to occur via synaptics-mst plugin * dell-dock: Capture the dock SKU in metadata * synaptics-prometheus: Force the minor version from 0x02 to 0x01 to make sure the devices can be updated back to 0x01. * Generate a body for github releases (Fixes: #2034)- Build the package separately for openSUSE and SLE using _multibuild (jsc#SLE-11744).- Update to version 1.4.2: * vli: Add no-guid-matching for all VLI devices * vli: Remove a copy-and-paste mistake * Add two OUI quirks * ata: Add WD OUI quirk 000cca * synaptics-rmi: Essentially blacklist Dell K12A * dfu: Avoid communicating when bitManifestationTolerant is off * ata: Add OUI quirk for Western Digital * dfu: Support MATEKF722SE quirk * Fix various build issues with -Wdiscarded-qualifiers * thunderbolt/dell-dock: Delay activation for Thunderbolt updates * Switch the default of EnumerateAllDevices to false * Add OUI quirk for SanDisk * vli: Add two standard USB instance IDs for shared-PD devices * vli: Use GPIOB to reset the VL817 found in two Lenovo products * tpm-eventlog: Correct the display of final calculated PCRs * wacom-raw: fixup switching to bootloader mode- Update to version 1.4.1: * thunderbolt: Don't show safe mode errors for USB4 host controllers * ep963x: Various changes to make the plugin actually work on real hardware * Make tss2-esys conditional * ep963x: Remove some dead code spotted by Coverity * ccgx: Only update the FW2 partition of the ThinkPad USB-C Dock Gen2 * ccgx: Expand the FWImageType for future hardware * Allow specifying the device on the command line by GUID * Fix the DeviceID set by GetDetails * wacom-usb: Fix a theoretical buffer over-read to make GCC happy * vli: Only show the i2c devices on the USB3 hub * Allow devices to be updatable, but only when upgrading a proxy device * Reset the progressbar time estimate if the percentage is invalid * ccgx: Always report 100% when finished writing * Add a device quirk that forces an explicit device-id match * ccgx: Set the device name and summary from quirk files * vli: Only do the APP5 FW bug fix on affected hardware * vli: Show all the buffer when debugging with FWUPD_VLI_USBHUB_VERBOSE * fu-engine: Refresh device name and format before setting supported flag * Allow a device to set the logical or physical ID during ->setup() * ccgx: Split out a trivial helper to set the instance IDs * ccgx: Set the device name to be more useful * ccgx: Set the logical ID as the FwMode * ccgx: Split out a trivial function to set the version * ccgx: Do not reboot the device write after installing * ccgx: Do no show the flash parameters when unknown * Allow devices to match the proxy device by GUID * Do not skip attach() if the device is marked _WILL_DISAPPEAR * dell-dock: Port to using fu_device_get_proxy() * Allow adding a device 'proxy' device that can do actions on it * vli: Do not show the USB 2 recovery devices for USB 3 hubs * vli: Add metadata to identify which is the same physical device * uefi: correctly format firmware version of Dynabook (né Toshiba) X30, X40 and probably others * synaptics-cxaudio: Use the ->attach() device vfunc * synaptics-cxaudio: Wait for the device to reboot after writing firmware * logitech_hidpp: decrease verbosity of messages that hid++ ID is missing * Prefer to update the child first if the order is unspecified * Do not modify the device priority for child devices- Exclude fwupdate from the architectures without UEFI support.- Update to version 1.4.0: * Release fwupd 1.4.0 * Allow removing device flags from quirk files * Use black to format python source in a consistent manner * Define SOURCE_VERSION when building a package * Only set the parent when adopting children * Do not conditionalize attach() and detach() on IS_BOOTLOADER * Do not crash the daemon if a plugin does something dumb * wacom-usb: Add more sanity checks in case the daemon goes crazy * wacom-usb: Use a per-device cleanup function * Add some more device regression tests * wacom-usb: Add a lot of missing metadata about the devices * wacom-usb: Hide a lot of debugging behind FWUPD_WACOM_VERBOSE * Only auto-add counterpart GUIDs when required * ccgx: remove update message * ccgx: add parent guid for hybrid dock * ccgx: Use a smaller timeout for i2c read and write operations * ccgx: Retry the register read and write with a i2c reset * ccgx: Fix buffer overflow when reading out i2c status * ccgx: Retry the HID disconnect up to 5 times * ccgx: Show a better error message on failure * ccgx: Allow forcing firmware of the wrong app_type with fwupdtool * Modularize the hardware tests * Ignore indirect devices that replug during the composite firmware update * Export the device state as part of the D-Bus interface * Fix devices that use CounterpartGuid when more than one device is installed * Use the GUID as a fallback rather than the connection ID * ccgx: Fix critical warning on i2c write failure * logitech-hidpp: Do not add peripheral devices for receiver in BL mode * Install the installed-tests only if tests are enabled * Load the signature to get the aliased CDN-safe version of the metadata * vli: Only reboot the USB hub once * synaptics-cxaudio: Only use the PATCH2 address when the patch level is 2 * add STM32F745 stm dfuse quirk * dfu: Add a way to set the timeout from a quirk * Export the release urgency * Export the release creation time * Check the firmware requirements before adding SUPPORTED * data/motd/fwupd-refresh: Only order after network.target * ccgx: Do not add the HID device that will disconnect * ccgx: Use Silicon ID and Application type to set flash parameters * Add a new daemon configuration option to control EnumerateAllDevices * logitech_hidpp: set the bootloader protocol * Install meson from pip for LGTM * bash: add completion for fwupdtool reinstall * fu-tool: add reinstall command * fu-engine: export fu_engine_get_releases_for_device in header * vli: Wait for the VL103 to timeout to fix detach * ccgx: Show the UpdateMessage in the correct device mode * ccgx: Add extra instance IDs to match specific firmware * Use a static version number * thunderbolt: Rather than hardcoding to PCI slot numbers, use domain in GUID * Revert "thunderbolt: Create a unique GUID including Thunderbolt controller path" * dell-dock: Port to fu_device_retry() * nitrokey: Convert to use FuHidDevice * nitrokey: Port to fu_device_retry() * vli: Port to fu_device_retry() * Add fu_device_retry() helper functionality * ccgx: Implement writing firmware to flash * ccgx: Add i2c status check when reading or writing registers * ccgx: Add 5ms delay between read registers to avoid an i2c error * libfwupdplugin: Use fu_device_locker_close() * synaptics-mst: Use fu_device_locker_close() * Add fu_device_locker_close() * ccgx: Do not store the silicon ID in the image address * ccgx: Add device quirks for the Lenovo Hybrid Dock * ccgx: Switch HID mode to HPI mode at startup * ccgx: Clear the event queue when in startup * ccgx: Wait for hardware to settle when coming out of reset * ccgx: Do not mark the device as updatable when in boot mode * ccgx: Verify the firmware app type when preparing firmware * ccgx: Set the update message when running in backup firmware * ccgx: Read the FwAppType from the hardware * ccgx: Set the HPI version number for the current firmware * ccgx: Get the silicon ID to map the flash parameters * ccgx: Read the HPI device mode at startup * ccgx: Set up the HPI I²C config at startup * ccgx: Create devices when in HID and I2C modes * Add a new ChromeOS CI target to build without GPG and PKCS7 * Use Jcat files in firmware archives and for metadata - Removed fu-keyring-gpg which caused CVE-2020-10759 (boo#1172643) * csr: Allow truncated HID reads * vli: Only consider the high nibble when building the sub-version * csr: Parse the firmware as a DFU file * Add support for EP963x hardware * Add FuHidDevice abstraction * vli: Correctly attach VL103 after a firmware update * ccgx: Parse the metadata block in the firmware image * ccgx: Add a firmare parser for cyacd files * logitech: Correctly set the protocol * Add the optional device-id to the update --help output * Fix a difficult-to-trigger daemon hang when replugging devices * vli: Remove a dock device from the whitelist that is never going to be updated * vli: Add some trivial debugging to help track down a bug * vli: Never add USB hub devices that are not upgradable * uefi: Don't use shim for non-secure boot configurations * Start fwupd-activate.service after snapd.service * dfu: Actually reload the DFU device after upgrade has completed * dfu: Add one more m-stack device requiring a quirk * Apply version format to releases and devices at same time * Ensure that the DeviceID is set for child devices * Fix a daemon crash when removing children * Allow waiting for the parent device when replugging * Add fu_device_get_root() shared API * vli: Fix an error when detaching MSP430 * vli: Fix a critical warning when getting the USB speed * vli: Fix the error enum values for the MSP430 * Do not add blank lines when tokenizing Intel hex files * vli: Fix the version calculation for MSP430 * vli: Ignore one more error when attaching * vli: Always expect the VL103 header at 0x1003 or 0x4000 * vli: Do not fall back to the recovery write for usbhubs * vli: Only show the 2nd header if the device ID is valid * vli: Fix VL103 reboot from ROM mode to FW mode * vli: Add some better comments for writing GPIOs * Add a helper script to add a DFU header * Add 'firmware-convert' subcommand to fwupdtool * fu-engine: Make two passes of requirements checking * fu-engine: Copy the VersionFormat from the CAB if specified in `get-details` * Add a new plugin for CPU microcode * Don't build/install fwupdagent man page if agent build is not requested * Introduce a new VersionFormat for `hex` * Drop UEFI quirks we now inherit from metadata * ci: build Debian using libflashrom * When TPM PCR0 measurements fail, query if secure boot is available and enabled * fix fwupd.shutdown.in according to the movement of fwupdtool to bindir * ata: Add OUI quirk for Western Digital and Intel * improved fish shell completion * vli: Set the MSP430 version format to pair * Always return AppStream markup for remote agreements * ata: Add trivial OUI quirk for Micron * added completion script for fish shell * Do not fail loading in /etc/machine-id is not available * Use xb_builder_source_add_simple_adapter * Create FuCabinet and untangle a lot of legacy code * nvme: Do not try to handle integer version numbers * Allow server metadata to set the version format on some devices * fu-tool: Correctly append the release to devices in `get-details` * For the `get-details` command make sure to always show devices * fu-engine: Copy the version and format from donor device in get-details * fu-engine: Use unknown for version format by default on get-details * Inihbit all power management actions using logind when updating * Decouple the version format from the version itself * Add raw versions for bootloader and lowest * Allow server metadata to set the device name on some devices * Remove support for GCab less than v1.0 * fu-device-list: Check protocol before de-duping devices * Do not allow devices that have no vendor ID to be UPDATABLE * ata: Include a vendor ID for ATA hardware * ata: Switch off the verbose logging by default * Always check for PLAIN when doing vercmp() operations * Discard the reason upgrades aren't available (Fixes: #1678) * Improve the description of `fwupdtpmevlog` for man page * Move `fwupdtpmevlog` into `bindir` * uefi: Move `fwupdate` into `bindir` * Move `fwupdtool` and `fwupdagent` into `bindir` * Use the system provided flashrom on Fedora * Add a plugin vfunc to run after subclassed FuDevice creation * ci: use standalone script to generate build dependencies * Move the daemons from /usr/lib/fwupd to /usr/libexec/fwupd * Use the recently released flashrom v1.2 * Generate an additional UEFI quirk file using the stable LVFS metadata * uefi: Apply capsule update even with single valid capsule * Fix a critical warning when installing some firmware * ebitdo: Fix the endpoint address logged in the error message * uefi: Find the correct lds and crt name when specifying -Defi_ldsdir * upower: Move battery threshold declaration into a configuration file * upower: Decrease minimum battery requirement to 10% - Refresh fwupd-bsc1130056-change-shim-path.patch - Add new dependency: jcat- Update to version 1.3.9: * Release fwupd 1.3.9 * Always check for PLAIN when doing vercmp() operations * improved fish shell completion * vli: Set the MSP430 version format to pair * added completion script for fish shell * Always return AppStream markup for remote agreements * Do not fail loading in /etc/machine-id is not available * fu-engine: Fixup broken-ness from 0c0fada18fc9cb2a0efec351db67f0867bf045cd * Use xb_builder_source_add_simple_adapter * fu-tool: Correctly append the release to devices in `get-details` * For the `get-details` command make sure to always show devices * fu-engine: Copy the version and format from donor device in get-details * fu-engine: Use unknown for version format by default on get-details * Inihbit all power management actions using logind when updating * fu-device-list: Check protocol before de-duping devices * ata: Switch off the verbose logging by default * Discard the reason upgrades aren't available (Fixes: #1678) * Improve the description of `fwupdtpmevlog` for man page * Move `fwupdtpmevlog` into `bindir` * uefi: Move `fwupdate` into `bindir` * Move `fwupdtool` and `fwupdagent` into `bindir` * ci: use standalone script to generate build dependencies * Move the daemons from /usr/lib/fwupd to /usr/libexec/fwupd * Use the recently released flashrom v1.2 * uefi: Apply capsule update even with single valid capsule * Fix a critical warning when installing some firmware * ebitdo: Fix the endpoint address logged in the error message * fu-util: fix a logic error in report uploading introduced in e076d48afb74d1447936d353f12781755f13b047 * uefi: Find the correct lds and crt name when specifying -Defi_ldsdir * upower: Move battery threshold declaration into a configuration file * upower: Decrease minimum battery requirement to 10% - Update to version 1.3.8: * Release fwupd 1.3.8 * Do not use fu_common_vercmp() when the device verfmt is PLAIN * altos: Output raw buffer data when using FWUPD_ALTOS_VERBOSE * altos: Prefix an error to provide more context * altos: Add a trivial _to_string() implementation * synaptics-cxaudio: Make the verfmt match that of the existing Windows tools * synaptics-mst: Allow MST to fall back if no PCI device is marked as parent * Allow specifying a list of subsystems when setting a physical ID * synaptics-mst: Fix trivial thinko caused by the wrong dock connected * vli: Invert the logic to reboot the parent FuCliUsbhubDevice, not the child * vli: Switch around the hub tier values * uefi: Fix a build regression with Fedora 30 * logitech_hidpp: Ignore detach failures (Fixes: #1183) * logitech_hidpp: When detaching to bootloader use non-blocking IO and wait for timeout * vli: Show erase progress when doing a v2 recovery * uefi: Do not remove the 'Linux Firmware Updater' boot entry before update * uefi: Do not rewrite BootOrder in the EFI helper * vli: Add support for the PS186 device * Set up more parent devices for various Lenovo USB hubs * cxaudio: Set the update protocol to prevent a daemon warning * vli: Add support for Lenovo Modularized dock * Add an extra instance ID to disambiguate USB hubs * vli: Remove the unused tierX custom flags for each device * Revert "Correctly delete UEFI variables" * uefi: make debugging output more readable * vli: Fix a potential buffer-overflow when parsing firmware * tpm: Optimize the string parsing and fix the boolean logic * synaptics-rmi: Add a missing error enum value * synaptics-rmi: Correctly identify a checksum failure * synaptics-rmi: Fix Coverity issue that is impossible to hit in reality * solokeys: Parse old versions of the bootloader string * Add a plugin to update PD controllers by Fresco Logic * vli: Set the device progress correctly when erasing a PD device * vli: Use the correct command to get the device firmware version * vli: Correctly reset all VL100 devices * vli: Set all standalone PD devices to not do SPI auto-detection * vli: Mark standalone PD devices as updatable * vli: Set the protocol for FuVliUsbhubPdDevice types * Support the new gnuefi file locations * Cleanup ancient fwupdate-* EFI variables too (Fixes: #1739) * Detect kernel lockdown status * vli: Add the DEV instance ID to all devices * tpm-eventlog: Replay the TPM event log to get the PCRx values * tpm-eventlog: Store the eventlog hashes in binary form - Update to version 1.3.7: * Release fwupd 1.3.7 * Correctly delete UEFI variables * ci: allow working with podman w/o aliases * ci: fedora: force correct rpm package version * src: fu-engine: check version was updated by checking version * Correctly import PKCS-7 remote metadata * Add 'refresh' to fwupdtool * Add 'get-remotes' to fwupdtool * Generate a win32 setup binary * Fix display of UTF-8 characters on Windows * Move MOTD population into the daemon * fu-util: Discourage metadata refreshes more than once per day * Disable the battery percentage checks if UPower is unavailable * Allow getting the list of updates in JSON format from fwupdagent * Revert "trivial: Attempt to fix Debian CI" * fu-remote-list: emit a changed signal when modifying a remote * synaptics-mst: Skip self tests for systems with amdgpu * Allow applying all releases to get to a target version * Split up fu_engine_install() into two halves * logitech_hidpp: use the correct timeout for IO channel writes * Allow quirking devices that always require a version check * Shut down automatically when there is system memory pressure * Show the device parent if there is an interesting child * Allow the client to get the list of FwupdDevice children * Set the FwupdDevice parents in fwupdtool * Don't always get the vendor ID for udev devices using the parent * Add a runtime warning when adding a device without an vendor-id or protocol set * vli: Set more of the firmware max sizes automatically * vli: Add a SpiAutoDetect quirk for some of the PD devices * vli: Use a different protocol ID for i2c devices * vli: Add support for standalone Single PD devices * vli: Move generic SPI functionality into the FuVliDevice base class * vli: Remove the PD emulation code * vli: Use a more standard GUID for the child i²c and shared SPI devices * vli: Allow setting the device kind from a quirk * vli: Make more function names match the docs * vli: Move the SPI command quirking from FuVliUsbhubDevice down to FuVliDevice * vli: Rename FuVliUsbhubPdFirmware to FuVliPdFirmware * vli: Allow the device to specify the PD firmware header offset * vli: Add a FuVliDevice as a subclass to FuVliUsbhubDevice * vli: Define the device GType in the quirk file * vli: Move the CRC calculations out of usbhub scope * vli: Have one 'DeviceKind' for all objects * vli: Rename the `vli_usbhub` plugin to `vli` * Capitalize GNOME - package has grown a few new binaries: fwupdagent, fwupdate, fwupdtool and a tpm event debugging tool, that is packaged separately: fwupdtpmevlog- Drop docbook-utils-minimal build dependency, manpages are generated with gtk-doc.- Update to version 1.3.6: * plugins/coreboot: Add missing fu_hash dependency * trivial: synaptics-cxaudio: Add Google type C <-> 3.5mm adapter * fu-engine: don't expose bootloader version errors to users * trivial: dell-dock: drop unused quirk keyx * trivial: rename synapticsmst to synaptics-mst * trivial: actually set vendor ID for synaptics * fu-remote-list: Drop fallback path behavior * libfwupdplugin: Make sure systemd created environment variables exist * trivial: fu-remotes-list: drop usage of `FU_SELF_TEST_REMOTES_DIR` * trivial: synaptics-rmi: hardcode Vendor string * trivial: Set vendor ID for Dell WD19 to USB:0x413C (Fixes: #1653) * trivial: Document the use of vendor-id in each plugin * superio: Use the baseboard vendor as the vendor ID * uefi: Use the BIOS vendor as the vendor ID * coreboot: Use the BIOS vendor as the vendor ID * flashrom: Use the BIOS vendor as the vendor ID * dell: Hardcode a plausible vendor ID * emmc: Set the correct vendor ID prefix * fu-util-common: correct the default prompt for reboot/shutdown (Fixes: #1617) * Split out the remote loading from FuConfig * vli-usbhub: Fix the quirk for the legacy VIA 813 chip * Clarify error messages when no upgrades available * trivial: Don't handle a vendor-id requirement error that cannot happen * Only check the vendor ID if the device has one set * fu-install-task: Enforce that device protocol matches metadata * Add a new plugin that can parse the TPM event log * Allow other plugins to contribute report metadata * trivial: dell: hardcode the physical device ID for tpm to match the tpm plugin * Add a new plugin that exposes the system TPM device firmware version * Add fu_udev_device_set_flags() * trivial: Render large values of VersionRaw in a more portable way * trivial: wacom-raw: mark all Moffett SKUs as self recovery * Throw exit status 0 (instead of 2) if there is no firmware to be updated * Add a `dell-bios` version format * Add support for multiple LVFS::VersionFormat tags * Do not do semver conversion in fu_common_vercmp() * trivial: Deprecate fu_common_version_parse() * trivial: Support 'plain' in fu_common_version_from_uintXX() * Add the sysfs 'description' as the one-line device summary * trivial: Also print the parent keys when using FU_UDEV_DEVICE_DEBUG * trivial: Add fu_common_version_from_uint64() * trivial: Convert the VersionRaw value to a uint64_t for future use * Allow building on Windows with MinGW * synaptics-prometheus: Allow incremental version major and minor number * Replace 'scheduing' with 'scheduling' * Export the raw device version to the client --verbose output * trivial: Only dlopen the test plugin once * Export the device protocol to the client --verbose output * trivial: installed-tests: try to display journal for failed tests * trivial: ci: debian: enable verbose daemon logging for failure analysis * trivial: installed-tests: explicitly choose webcam device ID * trivial: debian: remove obj-* built files to fix back to back builds * trivial: ci: don't let bad symlinks cause debian build failures * trivial: debian: correct a dependency for libfwupdplugin-dev - Changes from version 1.3.5: * plugins: Fix potential use of NULL pointer in fu_dell_dock_mst_write_register * Fix shifting integer by more than 31 in fu_util_filter_device * synaptics-prometheus: Reload the device version after IOTA update * synaptics-prometheus: Reload the device version after update * trivial: wacom: remove coretronic config from Moffett scope * trivial: Fix a NULL/FALSE confusion * trivial: Add a BR for Fedora * trivial: Fix coreboot commit to fix CI * trivial: libfwupdplugin: clarify name of self test * plugins/coreboot: Improve version detection * plugins/coreboot: Get rid of FU_HWIDS_KEY_BIOS_VENDOR in coldplug * trivial: Move progressbar out of libfwupdplugin * trivial: Unexport fu_test_get_filename() * trivial: Unexport fu_test_compare_lines() * trivial: Unexport fu_test_loop_run_with_timeout() * trivial: Do not include non-introspectable functions in the GIR * trivial: Fix up a few introspection problems in FwupdPlugin * trivial: Include the Fwupd GIR in the FwupdPLugin GIR * trivial: Never add duplicate symbols to the map file * trivial: Properly namespace the defines in the exported header * Install development files for libfwupdplugin * Convert libfwupdprivate to a shared library libfwupdplugin * trivial: Allow building GCab from a subpackage * trivial: Fix under-include to define O_RDONLY * trivial: Allow compiling without * trivial: Do not use FuProgressbar in dfu-tool * synaptics-prometheus: Manually set the bootloader mode when attaching * trivial: Split out a new helper funtion * trivial: Add some optional debugging when hotplugging devices * trivial: Include the correct header for S_IRWXU * Always use the more portable 3-arg form for open() * trivial: Untangle FuHistory from FuPlugin * trivial: Allow compiling without * Revert "synaptics-rmi: Use the build ID as the version number to match the vendor tool" * Add missing documentation from the plugin interface * trivial: fu-udev-device: remove a prototype that was missed in b3d4d2ff * trivial: add missing gtk-doc fields for many files in src/ * trivial: fix compile failure without gudev * synaptics-prometheus: Mirror the _IS_BOOTLOADER from device to config * Allow setting the device flags using GObject properties * vli_usbhub: Set the composite parent at construction time * synaptics-prometheus: Set the composite parent at construction time * Allow plugins to set the parent during construction * vli-usbhub: Whitelist the PD and I²C devices * Set the protocol per-device not per-plugin * synaptics-rmi: Use the build ID as the version number to match the vendor tool * Create a REV_00 instance ID as this may be what the vendor needs to target * fu-util-common: Invert default behavior for reboot and shutdown prompts * trivial: fu-plugin-vfuncs: Add GTK documentation for all vfuncs * Make gudev a compile-time option * trivial: Set the offline trigger using an environment variable * trivial: ci: pull lintian from unstable for now. * trivial: stop including fu-hash.h as part of fu-plugin-vfuncs.h * Fix shebangs on scripts * trivial: Use prefixes for DATADIR in config.h for portability * Allow compiling GUsb as a subproject * trivial: fu-udev-device: add a to_string func for debugging * trivial: Don't assume that plugins end in .so * trivial: optionrom: remove unneeded includes * trivial: debian: ci: ignore library-not-linked-against-libc for more * trivial: remove version-format.md * trivial: Allow compiling without pwrite() * trivial: Allow compiling without * trivial: Allow compiling without realpath() * trivial: Allow compiling without HAVE_LC_MESSAGES * trivial: Allow compiling without getuid() * trivial: Allow compiling without * trivial: Allow compiling without * trivial: Allow compiling without * Ensure the _get_type() gets the same ABI version as the constructor * Use the correct unlocker when using GRWLock * trivial: plugins: only build coreboot when option set * fwupdtool: don't show a warning when calling `get-plugins` - Changes from version 1.3.4: * trivial: Don't force specific linker flash when cross building * dell: Use the more portable g_usleep() * trivial: Fix unused header includes * vli-usbhub: Make erasing less verbose and writing more obvious * vli-usbhub: Correctly print the 24-bit USB3 offset * vli-usbhub: Print the PD firmware offset and size for debugging * vli-usbhub: Open the parent device before attempting to read or write from the child * vli-usbhub: Set the install duration for the PD device * trivial: Fix a failed error prefix string * trivial: wacom-raw: Remove embedded from device name * wacom-raw: Correct HWID support * uefi: Just use a uint16_t for BootNext processing * uefi: Use a simpler entries set algorithm * vli-usbhub: Add support for writing using I2C passthru * vli-usbhub: Support updating PD devices that share the hub flash * vli-usbhub: Support the PD file format * trivial: uefi: correct a NULL pointer dereference * uefi: fall back to `ID_LIKE` when the path for `ID` doesn't exist (Fixes:# 1566) * uefi: Make generate_binary.sh more robust * Tokenize the Intel Hex file before parsing * trivial: Detect the USB version automatically * trivial: fu-util/fu-tool: explicitly block unsupported flags * Add support for matching requirements on device parents * Skip cleanup after device is done updating if `will-disappear` is set (Fixes: #1529) * efi: use a wildcard section copy for final EFI generation * modem-manager: explicitly use plain version format * modem-manager: add quirks for the Foxconn T77W968 modules * Allows confined snaps to activate fwupd via D-Bus * trivial: thunderbolt: clarify error message * Add a new property `Interactive` to the daemon * trivial: contrib/get-version.py: require git less hard * superio: Never read from port offset zero * superio: Fix regression when coldplugging superio devices * trivial: Fix Fedora CI build * trivial: Fix the autobuilt spec file with the new tarball version * Dynamically determine release version * trivial: synapticmst: allow missing `/proc/modules` * synapticsmst: filter invalid chip IDs * trivial: Provide some defines for common image names * Allow aborting early when using fu_archive_iterate() * Add fu_firmware_image_set_version() for future use * modem-manager: increase re-enumeration delay to 20000ms * modem-manager: add counterpart GUID for the DW5821e/eSIM * Add versions formats for the Microsoft Surface devices * usb: make loading vendor/product/serial strings non-fatal * trivial: Fix the protocol ID for VLI usbhub devices * trivial: wacom-raw: add more device IDs for Dell devices * trivial: contrib: don't require TSS for debian archs without EFI * fu-udev-device: Adjust bounds checking to be safer * fu-udev-device: Don't assume all devices have `device_file` * synaptics-rmi: correct an error cleaning up on probe * trivial: fu-udev-device: add some safety checks for fd * udev-device: fix offset of vendor id of hidraw devices * flashrom: switch to upstream source * trivial: fu-plugin: only show an error once "failed to open plugin" was being prefixed twice * trivial: debian: only use mingw-w64-tools in archs with UEFI plugin * fastboot: Fix a regression when updating modem firmware * trivial: conflict with old unifying plugin * Rename unifying plugin to logitech-hidpp (Fixes: #1329) * Add a new contrib script for installing a Dell BIOS from an EXE file * trivial: add-capsule-header: rename to make it easier to import * trivial: simple_client: make it easier to reuse code * trivial: firmware-packager: make it easier to reuse code * trivial: add-capsule-header: make it actually work * trivial: fix some gtkdoc sections * Bump the required gudev version * trivial: Fix a compile error with older versions of gudev * trivial: wacom: add vid/pid for panels in Moffett * trivial: post release version bump - Changes from version 1.3.3 * unifying: notify users to replug when using dfu control (Fixes: #1383) * trivial: 8bitdo: set a transient failure while waiting for user action * libfwupd: Add a new error type for user action needed * trivial: 8bitdo: show the same message for SN30pro and SN30pro+ * trivial: Fix up some typos from codespell * trivial: Ensure config.h is included in all source files * trivial: Fix up some NULL/FALSE confusion * trivial: Add all the _LAST enums that shouldn't be checked for ABI * trivial: Fix a typo that means that UEFI results were never cleared * Always report the update-error correctly for multiple updates * trivial: Fix fwupdmgr get-history if the firmware was not installed from the LVFS * trivial: Do not emit a warning if a child has no version number * Move the file descriptor lifecycle into FuUdevDevice * trivial: Fix some GtkDoc annotations * ebitdo: Modernize the plugin to use FuFirmware * nitrokey: Use fu_common_dump_raw() when debugging * thunderbolt: Create a unique GUID including Thunderbolt controller path * Use device safety flags to show prompts before installing updates * trivial: Use the new possible_plugin support for USB devices too * jabra: Move the Jabra-specific detach out into its own plugin * Ensure the device is open when doing the subclassed prepare() and cleanup() * vli-usbhub: Add support for updating V2 devices * Allow verifying the device image itself from fwupdtool * Use XMLb to query quirks * trivial: ci: disable pulling libxmlb from unstable * synaptics-prometheus: Don't add a config-subdevice in bootloader mode * dfu: Use the VID/PID to identify devices without download capability in runtime * trivial: debian: remove some unneeded lintian * trivial: debian: bump compat version * ebitdo: Add SN30Pro+ to recognized quirk list (Fixes: #1503) * dfu: Add several quirks for Realtek camera hardware * dfu: Always mark devices as UPDATABLE * uefi: use `genpeimg` to mark ASLR and DP/NX on EFI binary * trivial: solokey: correct a typo * trivial: fu-util: fix typo * uefi: rework ESP path detection and lifecycle * trivial: uefi: show more metadata in to_string method * trivial: fu-device: add new method to remove metadata * Add a plugin to update VIA USB hub hardware * trivial: Add fu_common_read_uint8_safe() * trivial: Fix two typos in fu_common_read_uint16_safe() * solokey: Allow parsing firmware with fwupdtool * Allow fwupdtool to dump details of common firmware formats * trivial: Do not do system coldplug when using FU_ENGINE_LOAD_FLAG_NO_ENUMERATE * trivial: fu-self-test: set polling self tests to slow * trivial: fu-tool: Allow `detach`/`attach` to prompt for device * Strip trailing whitespace from USB descriptors * trivial: Add fu_common_read_uint16_safe() * trivial: Add version to the FuFirmware->to_string() output * Add fu_firmware_set_version() * Add a systemd preset file for `fwupd-refresh.service` * trivial: dell: work around a memory leak caught by address sanitizer * ebitdo: if the device has the will disappear flag, don't wait for ack (Fixes: #994) * Add a new plugin for working with eMMC devices (Fixes: #1455) * fu-engine: Check multiple plugins if quirks match * trivial: don't try to enable LVFS from systemd * trivial: coreboot: fix a clang compiler error * fu-util: Add user friendly strings for all device flags * Add new device flags indicating update resilience * plugins: Add coreboot plugin * fu-plugin: Add fu_plugin_get_hwid_replace_value * trivial: Increase verbosity when actually updating devices * trivial: Allow plugins to use WAIT_FOR_REPLUG in prepare and cleanup * Add FuDevice->prepare() and FuDevice->cleanup() vfuncs for future use * dfu: Implement FuDevice->to_string() * trivial: colorhug: fix a crash that occurs when flashing sometimes * trivial: fu-util: break out of automatic reports if one is not automatic * thunderbolt: some more clarifications when using ICL * trivial: fwupd-refresh: activate motd if using systemd v243 or later * trivial: fwupd-refresh: allow exit code 2 for success * trivial: synaptics-cxaudio: Add Google Pixel buds * trivial: arch: ci: Wait some time for tpm_server to start up * Allow a custom FuFirmwareImage->write() in superclassed objects * dfu: Remove two completely unused helpers * dfu: Make DfuFirmware derive from FuFirmware * dfu: Make DfuImage derive from FuFirmwareImage * dfu: Remove private headers that do not need to exist * Fix device flag filtering * trivial: fu-engine: Don't compare device and content checksums * fu-engine: Read all releases and convert versions when comparing * Add new flags `can-verify` and `can-verify-image` * trivial: make verify and verify-update safer * trivial: test: add checksums for "stock" 1.2.2 * trivial: fu-udev-device: use parent udev device to indicate `internal` * trivial: fix TPM2 simulator tests for arch * trivial: uefi: don't add PCRs with all 0's * trivial: Fix a recent regression causing a double-free * synaptics-cxaudio: Support the ThinkPad USB-C Dock Gen2 * trivial: fu-util: add some extra checks around automatic reports * trivial: fu-tool: typo * fu-systemd: Use correct method for stopping units. * trivial: fu-udev-device: Use ID_PCI_CLASS_FROM_DATABASE if name not set * trivial: fu-plugin: quiet down debug output for optionrom plugin * 8bitdo: use will-disappear flag for sf30/sn30 controllers (Fixes: #783) * trivial: ebitdo: don't dump out firmware header unless plugin verbose * trivial: ebitdo: don't use local errors when writing firmware * Add a new device flag for indicating device won't come back * wacom-emr: Fix a regression for EMR devices * Add a generic DFU firmware object for plugins to use * dfu: Use FwupdInstallFlags rather than a DFU-specific version * dfu: Remove functionality for modifying DfuSe files * dfu: Remove functionality you can do now with fwupdtool * dfu: Remove the merge command as it's unused and broken * trivial: Add fu_firmware_parse_file() helper for future use * trivial: Remove the fuzzing details for DfuPatch * trivial: Add klass->to_string for superclassed FuFirmwareImage objects * dfu: Remove DfuPatch as no vendor actually uses this * dfu: Don't wrap provided VID-PID functions * dfu: Use the standard FuDevice custom flags functionality * dfu: Use klass_device->write_firmware() directly * dfu: Use the generic fu_plugin_usb_device_added() function * dfu: Use daemon flags to ignore devices rather than a special flag * dfu: Set the device state directly to avoid proxying signals * dfu: Use the built-in detach() and attach() vfuncs * Read firmware back from the device as a FuFirmware * dfu: Remove a pointless function * dfu: Remove support for the Metadata Store Proposal * dfu: Remove XTEA support * dfu: Remove the SREC and IHEX parsing out of the DFU plugin * ebitdo: Use klass_device->write_firmware like other plugins * trivial: Remove G_BEGIN_DECLS from all private headers * Remove FU_PLUGIN_RULE_REQUIRES_QUIRK as all the plugins now use it * Set all FuUdevDevice plugins to use FU_QUIRKS_PLUGIN * thunderbolt: recognize new 'generation' sysfs attribute * Rename and modernize the udev plugin * synaptics-rmi: Also add the product ID as a GUID without the minor version * synaptics-rmi: Correctly set the payload length rather than hardcoding it * synaptics-rmi: Write the core config correctly * synaptics-rmi: Decode BL7 status failures as actual errors * synaptics-rmi: Add some trivial debugging to help debug a write problem * trivial: uefi: Make efivarvs errors clearer (Fixes: 1330) * trivial: uefi: don't prefix efivar errors * trivial: Remove some now-unused vfuncs * altos: Modernize the plugin to simplify it * Create the custom plugin GType in common code * Reduce more boilerplate in plugins * synaptics-rmi: Check the correct register when querying bootloader mode * trivial: fu-engine: fix never reporting remotes * trivial: fu-util: don't show warnings for no reports to upload * trivial: debian: remove more conffiles from transitions (Closes: #932617) * trivial: debian/control*: Update for fwupdate transition * trivial: Fix a tiny memory leak when starting the daemon * modem-manager: Fix a tiny memory leak when starting the daemon * synaptics-rmi: Copy the behavior of rmi4utils for BL7 detach * synaptics-rmi: Simplify fu_synaptics_rmi_device_read() * synaptics-rmi: Set the version after ->setup has run * synaptics-rmi: Use the correct mask when getting the bootloader mode on BL7 * syanptics-rmi: The build_id is 3 bytes long, not 2 * synaptics-rmi: Read the config partition the same as rmi4utils * Provide a default implementation of common FuDevice actions * thunderbolt-power: avoid checking for bolt support * synaptics-rmi: Add some debugging for BL7 devices * Fix usage of incorrect type for return value * synaptics-rmi: Do as little as possible in device setup * synaptics-rmi: Speed up reading the PDT from 900ms to 30ms * fu-util: add support for a reinstall command * trivial: fu-util/fu-tool: update re-install help text to reinstall * trivial: fu-util: remove double printed message about succesful firmware update * trivial: fu-util: show no updatable devices error for update command * synaptics-rmi: Ignore the ATTN reports from the hardware when reading DATA * synaptics-rmi: Move the fuzzing instructions to the toplevel README * Fuzz the SREC and IHEX file parsers once more * Use parallel fuzzing for the SMBIOS checks too * synaptics-rmi: Fix the packing of the partition table * Add a plugin to update Synaptics RMI4 devices * trivial: Add a parallel fuzzing script * trivial: fu-util: output newline after prompt. * trivial: fix %u output in report upload * Add a --no-domain logging option * trivial: Fix compiler warning for impossible-to-hit condition * Add support for automatically uploading reports * trivial: motd: disable updating motd for now * trivial: fwupd-refresh: fix a clash with fwupd.service (Closes: #941360) * trivial: Fix Fedora CI * trivial: fu-udev-device: fix some assertions * Search up the tree for a vendor name rather than (ab)using the HID_NAME * Add some success messages when CLI tasks have completed * trivial: Put the boolean prompt on the same line as the text * Never show LicenseRef-proprietary to the end user * trivial: snap: correct install hook root directory * Export the instructions for detaching the device * uefi: detect unmounted ESP partitions (Fixes: #1405) * uefi: stop recording efibootmgr output after flash * trivial: post release version bump - Changes from version 1.3.2: * Add support for '' to disambiguate some firmware * thelio-io: Add a plugin to detach the Thelio IO board * trivial: uefi, dell: skip self tests with TPM if non-root (Fixes: #1396) * trivial: dell: quiet the TSS output * trivial: uefi: allow forcing to TPM2 via environment variable * Do not ask the user to upload a report if ReportURI is not set * Do not enumerate physical devices when running the internal self tests * trivial: libfwupd: skip tests if machine-id is empty too * Add a new plugin to update Conexant audio devices * Export the salted machine ID as a daemon property * Fall back to /var/lib/dbus/machine-id when required * trivial: add stalebot (Fixes: #1393) * trivial: dell-dock: correct another write_size error * Align the key values to the text *width* not the number of bytes * trivial: Move dbus directory location for snap too * trivial: Fix some NULL/FALSE confusion * synaptics-prometheus: Fix tiny memory leak when using FuSynapromConfig * trivial: Fix tiny memory leak when using FuSrecFirmware * snap: switch to core18 * trivial: Return the correct property when getting the host product * trivial: fu-util-common: fix description wrapping (Fixes: #1378) * fu-util/fu-tool: Map out changelogs from remotes * fu-util/fu-tool: Better display historical information * fu-history: Update device_modified in sql database during updates * unifying: Use the instance ID to check for supported devices * unifying: Ensure HID++ v2.0 peripheral devices get scanned by the plugin * trivial: Add some more defines to the srec parser * trivial: fix wget command in fu-tool.c * Allow parsing a raw SREC file * trivial: wacom: Add support for second vendor ID * uefi, dell-esrt: Show firmware version when capsule updates unavailable * Add some more debugging to the SREC and IHEX parsers * Print the instance IDs if the GUIDs are unconverted * Add fu_common_bytes_compare_raw() for future usage * Call the set_quirk_kv() vfunc for the superclassed object * uefi: make the TPM optional for runtime again (Fixes: #1362) * trivial: uefi: Make the TCTI output less verbose * Support in AppStream metadata * Include all GUIDs when uploading a report * Do not crash when starting tpm2-abrmd * trivial: Update DBus conf path for example Fedora package * Move D-Bus conf file to datadir/dbus-1/system.d * trivial: Add fu_io_channel_write_byte_array() for future use * trivial: post release version bump - Package new sub-packages typelib-1_0-FwupdPlugin-1_0 and libfwupdplugin1.- Fix file list- Update to version 1.3.1: (jsc#SLE-10751) * Allow disabling all plugins * trivial: Specify the tpm2-tss-devel version in the example spec file * Move to CI Fedora 30 * modem-manager: Fix two build warnings on Fedora 30 * synapticsmst: Add another name quirk for the ThinkPad USB-C Dock * Re-introduce GUID support to fwupdmgr and fwupdtool * uefi-recovery: Add a plugin to add a fake ESRT entry for device recovery * Add a DMI quirk for the Minnowboard Turbot * trivial: Make it easy to disable or enable libflashrom for distros * trivial: Don't use Recommends for RHEL 7 * unifying: fix timeout metadata * ci: arch: minor improvements * unifying: fix timeout * Allow disabling SSL strict mode for broken corporate proxies * trivial: Allow ignoring the daemon version check by using --force * Try to only show DMI product name once * trivial: fu-util-common: Show unknown devices as interesting devices * dell: Use TSS to query and build TPM vendor strings for GUIDs * trivial: dell: show reasons for lack of updates in `UpdateError` * fu-util-common: strip all trailing whitespace in XML description * trivial: fu-common: match all whitespace not just ' ' in `fu_common_strstrip` * fu-util: show release output in get-details again * unifying: use fu_firmware_strparse_uint16 to read be 16bit values * unifying: fix incomplete hex file parsing * fu-util/fu-tool: Print devices, remotes, releases using a tree * Add aliases for `get-upgrades` and `upgrade` * trivial: UEFI skip self tests if library fails to initialize * libfwupd: Add a new private function `fwupd_remote_set_remotes_dir` * trivial: add libtss2-dev into debian/control (Closes: #1324) * trivial: Fix up the GtkDoc Since lines for API only available in 1.3.x * trivial: Post branch version bump * thunderbolt: Add support for kernel safety checks (Fixes: #1312) * Include the kernel release as a runtime version * trivial: fu-util: Drop GUID support from get-devices * synapticsmst: Partially rewrite the plugin (Fixes #1105) * Remove replug flag after the device comes back from reboot * trivial: Fix running the tests on devices with the TPM in v1.2 mode * trivial: fu-util-common: more cleanup related to topology * trivial: fu-util: cleanup fwupdmgr get-details output * trivial: Don't use topology printing in --verbose mode * Make get-devices and get-topology aliases for one another * trivial: Adjust daemon device sorting * Make get-topology more useful by showing all information * trivial: Fix fu_common_string_append_kv() to align properly with idx > 0 * trivial: dell-dock: correct an error preventing write_size from being set * trivial: Do not warn about deprecated declarations * trivial: Update BRs for the example Fedora package * uefi: add test for TPM 2.0 PCR read function * uefi: use tpm2-tss library to read PCR values * fu-common: Use environment variables for systemd managed directories * Use more systemd directives for directories * trivial: fu-util: fix debug output for devices * Allow turning off the timestamp prefix for debugging * Add a ->udev_device_changed plugin vfunc * Add fu_device_rescan() and a FuDevice->rescan() vfunc * Remove the duplicate files in meson.build * Hash the source files when generating the daemon hash * Split up source files in the build script * uefi: add support for tpm2-tools 4.X * trivial: plugins: clarify stance on afuefi.efi * trivial: plugins/: Update README * trivial: disable gtkdoc by default * trivial: update references of hughsie/fwupd to fwupd/fwupd * Publish docs to fwupd.github.io using CircelCI * Add support to integrate into the motd (Fixes: #1270) * Simplify get-devices output to not show un-useful fields * fu-engine/fu-config: Reload metadata store when configuration changes * trivial: If no devices support updates, show messaging (Closes: #1295) * trivial: uefi: set vendor name for system firwmare from DMI data * unifying: update Solaar url * thunderbolt: Fix logic to work properly with ICL thunderbolt controller * Add fu_udev_device_get_device_file() helper * trivial: Fix regression when using fu_device_incorporate() * trivial: Fix a potential crash when using FuPlugin in the self tests * synapticsmst: Make FuSynapticsmstConnection an actual GObject * synapticsmst: Use the same style as other plugins * trivial: Add some helper functions for GByteArray * Do not use FuDevice metadata for the physical and logical IDs * Use fu_common_string_append_kv() in subclassed device * synapticsmst: Use G_DECLARE_FINAL_TYPE to simplify the object * synapticsmst: Add a SynapticsMSTBoardID for another Lenovo dock * trivial: remove unnecessary CUSTOMERID_DELL define * synapticsmst: Add a SynapticsMSTBoardID for a Lenovo dock * synapticsmst: Display the board ID in non-hex form in the error message * synapticsmst: Use a more suitable icon for the device * trivial: Remove unused variable * Never use memcpy() in a possibly unsafe way * Add a ->to_string() vfunc to FuFirmware * Use FuFirmware as a container for firmware images * Allow filtering devices when using the command line tools * Be more accepting when trying to recover a failed database migration * trivial: Add translation for X-ThunderboltController * trivial: fixup standalone installer * modem-manager: add counterpart GUID for the DW5821e * solokey: Release the interface and rebind the kernel driver on close * fu-tool: Port ability to update a single device from fwupdmgr * uefi: Actually write the new device path if different than before * Allow setting custom flags when using fwupdate * trivial: Do not show a critical warning if no firmware is specified * trivial: Fix overzealous search-replace action in user string * Verify we don't break the ABI * Fix a crash when stopping the fwupd service * Relax the certificate time checks in the self tests for the legacy certificate * trivial: add cache directory into systemd unit rw paths * Never show AppStream markup on the console * Do not segfault when trying to quit the downgrade selection * trivial: Update icons for Thunderbolt and MST devices * Add support for the SoloKey Secure * trivial: Allow a device to *clear* a firmware version * trivial: debian: For signed package fill out Built-Using (Closes: #932757) * Allow specifying GUID to check any version exists * trivial: post release version bump * Release fwupd 1.2.10 * Disable the flashrom plugin by default * trivial: thunderbolt: catch failure setting up device * dell-esrt: Improve the experience for the plugin (Closes: #1245) * fu-util: When unlocking prompt for reboot if applicable * remove those PIDs with Bluetooth interface, Wacom updater doesn't support updating from Bluetooth interface * flashrom: Only show DEBUG and DEBUG2 output if using --plugin-verbose=flashrom * flashrom: Only call flashrom_programmer_init() on whitelisted boards * flashrom: Fix no version format set * fu-util: Show devices with an UpdateError in get-devices output * trivial: uefi: use UEFI-dummy for device ID instead of just uefi * trivial: fix error handling for non UEFI case (#1220) * Add a specific error code for the low battery case * Fix Fedora docker build missing directory: dist * uefi: Determine whether running in legacy mode or not (Fixes: #1220) * trivial: ci: debian: Only turn on flashrom when running CI * trivial: Fix typos in error messages * Allow client code to construct objects from GVariant blobs * Export functionality to build an array of objects * flashrom: Use libflashrom * trivial: Fix the version script to pick up boxed types * trivial: Correctly order the map entries according to vercmp rules * trivial: Fix pylint issue in the version script * Add meson target to fix translations * Add support for 8bitdo USB Retro Receiver * Use the newer features of GRWLock rather than reinventing it * Revert "Allow SuperIO updates to be done live" * uefi: Try to find a duplicate using the loadopt name * uefi: Provide a quirk to disable the use of the UX capsule * trivial: uefi: use the path for efibootmgr that was detected * synaptics-prometheus: Fix installing CONFIG firmware updates * synaptics-prometheus: Set the install duration from a quirk * synaptics-prometheus: Don't emit critial warning when updating config firmware * synaptics-prometheus: Fix missing field in the IOTA reply struct * Create SECURITY.md * redfish: Never set NULL device name * modem-manager: Never set NULL device name * ata: Never set NULL device name * trivial: Add some parameter guards to FuDevice * trivial: snap: make polkit directories if they don't exist (Fixes: #1205) * trivial: fu-main: clarify missing PK file error * synapticsmst: fix GUID generation (Closes: #1207) * Lite Mk II flag for use-shim-unique * trivial: circleci: try to fix automatic snap deployment * Allow SuperIO updates to be done live * fu-util-common: Support empty proxy strings (Fixes: #1199) * trivial: uefi: clarify error message * trivial: Fix non-systemd build * trivial: Sync example spec file with downstream * trivial: post release version bump - Drop fwupd-bsc1143905-hash-the-source-files.patch: Applied upstream. - Add pkgconfig(tss2-esys) BuildRequires: New dependency. - Add gtk-doc BuildRequires and pass gtkdoc=true to meson, build api docs even when using source service.- Add fwupd-bsc1143905-hash-the-source-files.patch to hash the source files instead of libfwupdprivate.a to avoid the checksum change due to the random naming LTO profile sections (bsc#1143905)- Update to version 1.2.10: * Disable the flashrom plugin by default * dell-esrt: Improve the experience for the plugin (Closes: #1245) * fu-util: When unlocking prompt for reboot if applicable * remove those PIDs with Bluetooth interface, Wacom updater doesn't support updating from Bluetooth interface * flashrom: Only show DEBUG and DEBUG2 output if using - -plugin-verbose=flashrom * flashrom: Only call flashrom_programmer_init() on whitelisted boards * flashrom: Fix no version format set * fu-util: Show devices with an UpdateError in get-devices output * Add a specific error code for the low battery case * Fix Fedora docker build missing directory: dist * uefi: Determine whether running in legacy mode or not (Fixes: #1220) * Allow client code to construct objects from GVariant blobs * Export functionality to build an array of objects * flashrom: Use libflashrom * Add meson target to fix translations * Add support for 8bitdo USB Retro Receiver * Use the newer features of GRWLock rather than reinventing it * uefi: Try to find a duplicate using the loadopt name * uefi: Provide a quirk to disable the use of the UX capsule * synaptics-prometheus: Fix installing CONFIG firmware updates * synaptics-prometheus: Set the install duration from a quirk * synaptics-prometheus: Don't emit critial warning when updating config firmware * synaptics-prometheus: Fix missing field in the IOTA reply struct * Create SECURITY.md * redfish: Never set NULL device name * modem-manager: Never set NULL device name * ata: Never set NULL device name * synapticsmst: fix GUID generation (Closes: #1207) * Lite Mk II flag for use-shim-unique * fu-util-common: Support empty proxy strings (Fixes: #1199) - Add python3-setuptools to BuildRequires for generate-version-script.py- Update to version 1.2.9: * Release fwupd 1.2.9 * trivial: Add two new translatable strings for new category types * Check if the system is offline during install, rather than at startup * Prompt the user to shutdown if requried when installing by ID * Use the correct file extension for the offline updates cache * trivial: Allow using --force to use the wrong daemon version * trivial: Display the correct expected command * standalone-installer: Be smarter about existing installed fwupd * Add a plugin to update Synaptics Prometheus fingerprint readers * trivial: standalone-installer: rename uninstall argument to cleanup * fu-util: Check the daemon version is at least the client version * fu-util: Check that daemon is started by expected unit * fu-util-common: when stopping a daemon, check for snap too * Allow using --force to trigger a duplicate offline update * trivial: Allow using FuUsbDevice without a GUsbDevice * trivial: Copy the icons if unset for the device child * trivial: Copy the physical ID if unset for the device child * trivial: Ensure the parent ID is up to date if the device ID changes * trivial: Fix typo when setting the parent ID * trivial: Disable the flatpak CI build * Allow handling FORCE for devices that subclass FuDevice * uefi: Fix a libasan failure when reading a UEFI variable * trivial: Fix a memory leak found using libasan * trivial: Fix an libasan failure in the dell plugin * trivial: Fix some dead code spotted by coverity * trivial: Fix a typo spotted by coverity * trivial: Fix a missing config.h include in a new source file * Dynamically read path to use for /system-update * Display the remote warning on the console in an easy-to-read way * ata: Set version format to plain for devices obtained from udev * trivial: Only apply SmbiosManufacturer to release version for internal * trivial: Fix two bugs in the hardware self tests script * Never guess the version format from the version string * Only force a semver when the device opts-in * Export the version-format to clients * Add missing gtk-doc documentation * dfu: Add some trivial, but useful, debugging for AVR DFU devices * dfu: Correctly identify DFU firmware that starts at offset zero * dfu: Don't keep showing trivial debug output * dfu: Reset the forced version during attach and detach * ata/nvme: For devices running Dell firmware, set `VersionFormat` (Fixes: #1169) * fu-engine: Check if VersionFormat is ambiguous when adding devices * trivial: Fix fwupdate --apply * Only use class-based instance IDs for quirk matching * trivial: dell-dock: set minimum board to 6 * trivial: post release version bump- Update to version 1.2.8: * Don't upload reports when the user has configured their system in a broken way * Allow setting the daemon verbose domains at runtime * Allow fwupdmgr to modify the daemon config * Do not compare version formats when the release format is unknown * Do not fall back integers to a plain version format * Use the device version format when converting the release version * Set the VersionFormat using the metadata or the UEFI quirk - Changes from version 1.2.7: * l10n: Create Lithuanian translation file * l10n: Update LINGUAS * Updated: Add support for 8BitDo M30. * modem-manager: increase the timeout to wait for modem after uninhibited * modem-manager: implement qmi pdc active config selection as attach() * fu-engine: When removing activation flag match the correct version * Require --force to install a release with a different version format * Match the old or new version number when setting NEEDS_REBOOT * Make an error message clearer when there are no updates available * Add support for the not-child extension from Logitech * thunderbolt: Set require-ac for Thunderbolt devices (Fixes: gh#hughsie/fwupd#1142) * Fix some typos spotted using codespell * Add a component categories to express the firmware type * fu-tool: Port get-history command to fwupdtool * Recreate the history database if migration failed * Move the core built-in 'fwupd' remote over to the dell-esrt plugin * snap: Add a custom systemd unit to call activation on shutdown (Fixes: gh#hughsie/fwupd#1125) * ata: Flush cache before standby and activate * synapticsmst: blacklist plugin when using amdgpu (Fixes: gh#hughsie/fwupd#1121) * uefi: add a new option to specify the os name * Return the newest device when using fu_history_get_device_by_id() * uefi: More carefully check the output from tpm2_pcrlist * uefi: Don't overwrite CustomFlags if set from a quirk * Shut down the daemon if the on-disk binary is replaced * ata: Correct activation functionality * Fix version comparisons after reboot for some formats * fu-tool: save history from stuff installed with `fwupdtool` - Changes from version 1.2.6: * ata: send ATA standby immediate when activating firmware * offline: Be more graceful when dealing with Plymouth failures * Save the new version in the history database for offline updates * Show the DeviceID when showing the updates list * Allow forcing an offline-only update on a live system using --force * Do not schedule an update on battery power if it requires AC power * superio: Add InstallDuration default value * superio: Add support for writing new e-flash contents * superio: Fix reading the attestation checksum * superio: Add support for reading the device checksum * superio: Use the chipset ID in the device name * superio: Move the device flush before getting the register map * superio: Move all the IT89xx code to a subclassed device object * superio: Move all the IT85xx code to a subclassed device object * superio: Split and export fu_superio_device_ec_writeX() * superio: Remove the port from fu_superio_device_ec_read() * superio: Move the register read/write into the FuSuperioDevice object * superio: Check the IOBAD0 is usable during setup * superio: Use fu_device_set_firmware_size() * superio: Move some constants out to the common header * superio: Use GObject properties in FuSuperioDevice * superio: Convert FuSuperioDevice to be derivable * Update Plymouth when updating pending firmware * Ask to reboot after scheduling an offline firmware update * Do not fail when scheduling more than one update to be run offline * Allow running offline updates when in system-update.target * Fix the location of fwupdoffline in the service file * Add optional vfuncs to allow detaching and attaching verify() * superio: Add list of SPI commands for future usage * Add a verify-update command to fwupdtool * uefi: Actually upload the UPDATE_INFO entry for the UX capsule * superio: Get the chip size from the EC rather than hardcoding * uefi: Check the error code of QueryCapsuleCapabilities() correctly * Update the UEFI UX Capsule Header checksum when needed. * uefi: Copy the shimx64.efi binary for known broken firmware * Correctly get the check the new version for devices that replug * Add a simple script to add a capsule header * Ensure the PKCS-7 client certificate exists at startup * fix makecab directive options * fwpup.service: use display-manager.service instead of gdm.service * Allow signing the fwupd report with the client certificate * Add a D-Bus method to generate a signature using the self-signed client certificate * Allow signing and verifying data using a PKCS-7 self-signed client certificate * Fix a critical warning when loading a PKCS-7 certificate with no DN * Include all device checksums in the LVFS report * modem-manager: Fix a trivial build warning * superio: Fix a trivial build warning * Move out the offline update functionality to a new binary * Do not reboot when failing to start fwupd during offline updates * Do not write the schema version to the db when loading * Do not recreate XbSilo caches when running on a readonly filesystem * Add the fwupdagent binary for use in shell scripts * Allow restricting firmware updates for enterprise use * standalone-installer: new --allow-older and --allow-reinstall options * Show the upgrade and downgrade flags when getting releases for a device * Rename FwupdRelease:trust-flags to FwupdRelease:flags * fu-tool: Save device state to @LOCALSTATEDIR@/lib/fwupd/state.json on actions * modem-manager: implement support for qmi-pdc * Add a plugin to support ModemManager hardware * fu-tool: Don't let failing to find dbus prevent engine from starting * ata: Support delayed activation * dell-dock: Use activation when calling fwupdtool activate * Add a support for delayed activation * uefi: Fix the self tests when running on Fedora SilverBlue * Do not fail to start the daemon if tpm2_pcrlist hangs * po/make-images.sh: quote LOCALEDIR and PYTHON3 * meson: print stderr of python3 command instead of stdout * Revert "contrib/debian: Switch to debian unstable" * Add elogind support - Changes from version 1.2.5: * uefi: fix segfault in fwup_set_update_statuses * Show in Flathub correctly * debian: explicitly depend on shared-mime-info * superio: Implement detach() and attach() * superio: Correct the names of some constants and improve debugging support * dell-dock: Filter the last supported payloads of certain board 4 SKUs * circleci: Manage the lifecycle of the snap * Add support to run snap build in CircleCI * wacom-usb: Use the correct buffer format for the touch module * wacom-usb: Set the install duration for each device type * wacom-usb: Return with an error if there were too many retries * wacom-usb: Make updating less verbose * Convert all child instance IDs when converting the parent * uefi: Allow devices to create more complete fake UEFI devices * unifying: Fix regression when recovering from failed flash * Ensure libxmlb dir exists for LGTM.com * Add C build configuration for LGTM.com * Use G_BEGIN_DECLS correctly for internal headers * standalone-installer: Fix issue found by LGTM * Use '#pragma once' to avoid a lot of boilerplate * Force LGTM to see Python 3 * fwupd: Hide firmware-packager behind meson option` * fu-common-cab: Correct handling of CAB files w/ nested directories and older libgcab * Fix a regression in using the InstanceIDs for quirk matching * thunderbolt: Convert the instance IDs as we never open the device * udev: Manally call fu_device_setup() to convert the instance IDs * fu-tool: Correct a crash caused by calling fwupdtool update * fu-tool: Don't fail if dbus is unavailable * contrib/debian: Switch to debian unstable * wacom-usb: Record the block number when failing * wacom-usb: The touch address is big endian * wacom-usb: Accept a non-binary IHEX file for the touch update * wacom-usb: Only poll when the device status is 'busy' * wacom-usb: Only reboot the device when all composite devices have been updated * wacom-usb: Fix flashing failure with latest Intuos Pro tablet * dfu: Fill holes when reading SREC files * Add fwupd_guid_from_string() to drop dep on uuid * wacom-raw: Check the InstanceID rather than GUID * Defer the InstanceID->GUID hashing until after setup * ata: Check for USB enclosures as well * Do not use efivar just to print a mixed endian GUID * Add fu_device_add_instance_id() and prefer explicit conversion * Report the DeviceInstanceIDs to `fwupdmgr get-updates` * Export some of the GUID functionality * Allow a plugin to set _ANOTHER_WRITE_REQUIRED to run more than one plugin * nvme: Add an extra check for Dell plugins to avoid false positives * ata: Add support for detecting Dell GUIDs * Fix the self tests when using glib2 >=2.59.0 * Add support to call composite prepare and cleanup using fwupdtool * uefi: Disable -Wno-address-of-packed-member * uefi: Don't unconditionally enable Werror for the EFI binary * Disable -Wno-address-of-packed-member - Changes from version 1.2.4: * Remove the autogenerated headers in the gettext files * ata: Default to the non-activation 0xE subcommand * fastboot: Use a much longer timeout as the removal delay * fu-progressbar: be more quiet when running non-interactive * fu-tool: Show UpdateMessage if applicable for install command * dfu: Simplify the SREC parser to avoid a crash with an invalid file * wacom-raw: Use the correct error codes when the panel is not supported * wacom-usb: Add some more information to the README * fu-keyring-utils: Don't fail missing PKI directory when compiled with GPG/PKCS7 * dell: Check that the flash interface command is available * wacom-usb: Fix the plugin name to allow devices to be updated * fastboot: flash the partition after downloading the file * uefi: Add a quirk to use the legacy bootmgr description * ata: Mark all devices as needing a reboot * ata: Add a new plugin to upgrade firmware on ATA/ATAPI hardware * udev-device: Add a utility function for debugging * udev-device: Set the firmware revision automatically * udev-device: Set the serial number automatically * udev-device: Fall back to non-database model and vendor values * udev-device: Fix critical warning if the device has no parent * dell-dock: Add support for a passive flow * Add support for an `UpdateMessage` and display it in tools * fu-tool: Port the `get-updates` command over * When using `directory` remote type automatically generate metadata * libfwupd: Add support for new remote type "directory" * Ensure cabinet archives always have a container checksum * Add support for a per-release source and details URL * When generating a CAB Silo use the prefix "components" * uefi: Add a trivial debugging statement to debug a UX capsule failure * uefi: Use fwup_new0() to allocate the updates table array * nitrokey: Correct Nitrokey Storage invalid firmware version read * dell-dock: Add support for flashing Thunderbolt over I2C * wacom-raw: Add a plugin to update Wacom embedded EMR and AES panels * fu-util/fu-tool: sync up reboot and shutdown behavior * dfu: Ignore the SUB ASCII value * dfu: Fix the parser to support extended segment addresses * dfu: Support ihex files with leading comments don't show an error * uefi: Correct a boot order creation bug (Fixes: gh#hughsie/fwupd#956) * uefi: Remove all variable length arrays * uefi: Fix a logic bug in fwup_search_file() * uefi: Use _cleanup_free in one more place * uefi: Do not pass required attrs to fwup_delete_variable() * uefi: Delete the old Linux-Firmware-Updater boot entry * uefi: Use the GNU-EFI BOOL type * Check if plugin changed after the device attaches or detaches * uefi: Refactor and simplify the EFI loader * Show a console warning if loading an out-of-tree plugin * UEFI: Do the UX checksum calculation in fwupd * wacom-usb: Add two more Intuos tablets * nvme: Add the needs-shutdown quirk to Phison NVMe drives * Add _NEEDS_SHUTDOWN flag for devices * Use GCC __cleanup__ features in the EFI loader * nvme: Add flag to support manually aligning the firmware to the FWUG value * nvme: Support FGUID to get the SKU GUID * nvme: Support FWUG to get the write block size * nvme: Add trivial comment to clarify address bitshifting * uefi: Do not check the BGRT status before uploading a UX capsule * dfu: Fix flashing various Jabra devices * upower: Add support for checking battery percentage * nvme: Check the return code of the admin passthru ioctl * fu-tool: Add support for an 'update' command to fwupdtool * dell-dock: Set minimum board to board 4 * dell-dock: Workaround a manufacturing bug for board level 4 * dell-dock: Wait longer for re-enumeration on TBT SKU * superio: Support IT89xx devices * fu-main: remove incompatible locale error message * Add a new plugin checklist (Fixes: gh#hughsie/fwupd#899) - Dropped obsolete patch: fwupd-bsc1130056-change-esp-os-name.patch (upstream PR: gh#hughsie/fwupd#1119 - Fixed fwupd-bsc1130056-change-shim-path.patch so that it works with the new files - Cleaned up changelog- Stop shipping polkit rules, as we have the distro specific setup in polkit-default-privs (boo#1125428).- Add fwupd-bsc1130056-change-esp-os-name.patch to change the OS directory in ESP (bsc#1130056) - Add fwupd-bsc1130056-change-shim-path.patch to set the default shim binary for openSUSE/SLE (bsc#1130056) - Link fwupd*.efi.signed to fwupd*.efi as requested by fwupd (bsc#1129466)- fwupd.spec: fix shell syntax error in %postun section (boo#1120363).- Update to version 1.2.3: * Correctly migrate the history database - Changes from version 1.2.2: * Log an error if started with an incompatible locale * Fix building with -Wl,-z,defs * ebitdo: Fix the reported version number if the daemon locale is not C.UTF-8 * Add Dell TB18DC to the known devices list * Allow replacing the last byte in the image when using 'dfu-tool replace-data' * Check the device checksum as well as the content checksum during verify * Submit the device firmware checksum and update protocol in the submitted report * Include the device checksum and update protocol in the historydb * uefi: Add the PCR0 value as the device checksum for system firmware * Add new API to get the release protocol from the metadata * Allow plugins to define support for a 'well-known' protocol * uefi: When adding headers set the header size to 4k * uefi: Append the header on capsules without headers from Linux * flashrom: Ensure the quirks database is set on the new object * uefi: Do not add devices with invalid GUIDs * Do not allow a GUID of zero * Add shared functionality for reading and writing with O_NONBLOCK * Only run attach and detach if the device is in the wrong mode * Sanitize the version if the version format has been specified * wacom-usb: Remove the DTH generation hardware as it will not work with fwupd * thunderbolt: Remove a superfluous boundary condition when verifying update * Add a plugin to update hardware that supports fastboot * Fix a regression when doing GetReleases on unsupported hardware * dfu: Require a specific USB class and subclass for DFU mode * Correctly parse format the version numbers correctly using old metadata * amt: Fix a crash if AMT returns an empty response * Check plugins set error on failure * contrib: Add a simple python3 client * installed-tests: Adjust to actually use a remote for installed tests * Add more standard USB identifier GUIDs * wacomhid: Rename to wacom-usb * Provide a way for plugins to decompress a custom archive to ram - Changes from version 1.2.1: * Remove DaemonVersionFormat=quad * Shut down the daemon after 2h of inactivity * Create a silo index to speed up GUID queries * Fix flashing the 8bitdo SF30 * Speed up fwupd startup by loading less thunderbolt firmware * Query the XbSilo when calling fu_plugin_check_supported() * Guess the version format when it is not provided * Fix a use-after-free when using valgrind and --immediate-exit * Add per-release install duration values * Fix showing the custom remote agreements * Be more explicit setting the update state * Include the os-release information in the release metadata - Changes from version 1.2.0: * ebitdo: remove SF30/SN30 pro device ids * dell-dock: Drop delayed MST callback routine * synapticsmst: Adjust EVB board handling * synapticsmst: Remove the content checking of firmware * synapticsmst: Access Board ID through memory instead In firmware images HDCP 2.2 will be enabled by default,so access to flash region will fail.` * contrib: Adjust flatpak build for moving to flathub * dell-dock: Prefer to flash VMM5331 via I2C instead of DP aux * Use HTTPS_PROXY if set * firmware-packager: Make it clearer to use * Sort the firmware sack by component priority * flatpak: Update gnu-efi to latest version * amt: Set the full device version including the BuildNum * fwupdmgr/fwupdtool: Move monitor command to fwupdtool * fwupdmgr/fwupdtool: Move firmware builder from fwupdmgr to fwupdtool * Add version format quirks for several Lenovo machines * uefi: Set the quirks on created devices * dell_dock: Use correct offset for finding version of MST * dell-dock: Add missing unlock call for MST via dell_dock plugin * Support the Intel ME version format * Port from libappstream-glib to libxmlb * Bump requirement to meson 0.46.0 * fu-main: Catch SIGTERM while update is in progress * fu-tool: Stop any running daemon over dbus before loading engine * meson: Bump dependency to 0.44 and adjust sysconfdir handling * dell-dock: If marketing name is invalid don't fail initialization * Readme Updated: Added KDE Discover as one more graphical front-end available for fwupd. * dell-dock: Correct a situation that error wasn't propagating * Don't segfault if a plugin returns FALSE from UpdateFunc with no error set * dell-dock: Use different debug strings for each device type * dell-dock: Don't use the VLA feature in the new dock * Add a plugin for an upcoming Dell USB-C dock * contrib: Add information on how to use debugging scripts * Allow setting the version format from a quirk entry * Don't use AppStream-glib for string helpers * Don't use AppStream-glib for version helpers * Don't use AppStream-glib for the GUID helpers * fu-device: Ensure that parent ID is created before creating quirked children * Update all sub-devices for a composite update * Stop showing the current release during updates in fwupdmgr * uefi: Move the TPM unlocking functionality from the Dell to UEFI plugin * Run the Dell plugin initialization after the UEFI plugin * thunderbolt-power: Fix possible linker problem * Allow firmware files to depend on versions from other devices * fu-debug: Redirect all debugging output to stderr instead of stdout * synapticsmst: Adjust panamera ESM update routine for some reported issues * fu-engine: Optionally wait for replug before updating a device * fu-device-list: Use delayed device removal when removing the tree * thunderbolt: Use replugging from the daemon * Add support for devices to show an estimated flash time * Marked some CL options for translation * ci: Run clang static analysis for Ubuntu build rather than just clang compiler * nvme: Initialize the buffer before reading the contents * contrib: Add a standalone installer creation script * rts54hid: Add support for Realtek USB devices using vendor HID commands * fu-engine: Don't show devices pending a reboot in GetUpgrades * Add FuMutex helper to make various parts of the daemon thread-safe * rts54hub: Add support for Realtek USB devices using vendor HUB commands * uefi: Check the amount of free space on the ESP * fu-tool: Import debugging options from fu-debug like fu-main * superio: Set the physical and logical IDs - Add pkgconfig(xmlb) BuildRequires: New dependency.- Add pesign-obs-integration to BuildRequires and add fwupd*.efi to BRP_PESIGN_FILES to get it signed - Add LC_IMAGES and use efivar only if %{with efi_fw_update} + Also update the version requirement of efivar - Disable Redfish and NVME plugins if %{without efi_fw_update} since those two plugins require efivar - Remove fwup from BuildRequires since fwupdate is already merged into fwupd.- Use gnu-efi only if %{with efi_fw_update}, always use pkgconfig(efivar) - Fix file list- Amend %post and %postun to install/uninstall fwupd*.efi to the EFI system partition + Also add shim to Requires for fwupdx64.efi - Mark fwupdate as obsolete + fwupdate has been merged into fwupd since fwupd 1.1.0.- fwupd is require for thunderbolt firmware update in SLE15-SP1(fate#322681)- Update to version 1.1.2: + New Features: - Add a new device flag "ignore-validation" that will override checks - Add a new plugin to enumerate EC firmware - Add a new plugin to update NVMe hardware - Add a plugin for updating using the flashrom command line tool - Allow the device list to take care of waiting for the device replug - Allow updating just one specific device from the command line - Allow upgrades using a self-signed fwupd.efi binary - Download firmware if the user specifies a URI - Include serial number in daemon device output when trusted - Notify all plugins of device removals through a new vfunc - Use boltd force power API if available + Bugfixes: - Add an install hook for classic snap - Allow forcing installation even if no AC power is applied - Allow using --force to ignore version_lowest - Always use the same HardwareIDs as Windows - Check the device state before assuming a fake DFU runtime - Copy over parent GUIDs from other plugin donors - Detect location of python3 interpreter - Do not add udev devices after a small delay - Don't fail to run if compiled without GPG/PKCS7 - Fix a segfault in fwupdtool caused by cleanup of USB plugins - Implement the systemd recommendations for offline updates - Improve performance when reading keys from the quirk database - Remove children of devices when the parent is removed - Rewrite synapticsmst to use modern error handling - Rewrite the unifying plugin to use the new daemon-provided functionality - Show a time estimate on the progressbar after an update has started- Use noun phrase for summary. Trim request for comments from description.- Update to version 1.1.1: + New Features: - Add support for the Synaptics Panamera hardware - Add validation for Alpine and Titan Ridge - Improve the Redfish plugin to actually work with real hardware + Bugfixes: - Allow different plugins to add the same device - Allow flashing unifying devices in recovery mode - Allow running synapticsmst on non-Dell hardware - Check the ESP for sanity at at startup - Do not hold hidraw devices open forever - Don't override _FORTIFY_SOURCE when building the EFI binary - Don't show passwords in fwupdmgr - Fix a potential segfault in smbios data parsing - Fix encoding the GUID into the capsule EFI variable - Fix various bugs when reading the thunderbolt version number - Reboot synapticsmst devices at the end of flash cycle - Show status messages when the daemon is initializing - Show the correct title when updating devices - Show the reasons that plugins are not run on the CLI - Use localedir in po/make-images- Run %udev_rules_update in post as package install udev rules- Update to version 1.1.0: (FATE#326702) + New Features: - Add a initial Redfish support - Add a tool to mimic the original fwupdate CLI interface - Allow devices to assign a plugin from the quirk subsystem - Change the quirk file structure to be more efficient - Merge fwupdate functionality into fwupd - Run a plugin vfunc before and after all the composite devices are updated - Support more Wacom tablets + Bugfixes: - Add release information for locked devices - Allow building with older meson - Detect the EFI system partition location at runtime - Do not use 8bitdo bootloader commands after a successful flash - Enable accesing downloaded files in flatpak and snap - Fix a potential buffer overflow when applying a DFU patch - Fix downgrading older releases to devices - Fix flashing devices that require a manual replug - Fix several small memory leaks in various places - Fix the retrieval of Redfish version - Fix unifying failure to detach when using a slow host controller - Set the Wacom device status when erasing and writing firmware - Show errors in the CLI if unable to access directory - Use the parent device name for Wacom sub-modules - Removed enable_pkcs7_when_testing_only.patch- Update to version 1.0.8: + New Features (including version 1.0.7): - Add an plugin to update some future Wacom tablets - Add 'fwupdmgr get-topology' to show logical device tree - Add support for creating a flatpak - Add support for creating a snap - Add support for Motorola S-record files - Add the Linux Foundation public GPG keys for firmware and metadata - Show a translated warning when the server is limiting downloads - Add enable-remote and disable-remote commands to fwupdmgr - Add fu_plugin_add_compile_version() for libraries to use - Allow requiring specific versions of libraries for firmware updates - If no remotes are enabled try to enable the LVFS - Show a warning with interactive prompt when enabling a remote + Bugfixes (including version 1.0.7): - Add a firmware diagnostic tool called fwupdtool - Adjust all licensing to LGPL 2.1+ - Allow installing more than one firmware using 'fwupdmgr install' - Allow specifying hwids with OR relationships - Do not call fu_plugin_init() on blacklisted plugins - Do not require libcolorhug to build - Fix a crash in libfwupd where no device ID is set - Fix a potential DoS in libdfu by limiting holes to 1MiB - Fix a segfault that sometimes occurs during cleanup of USB plugins - Fix Hardware-ID{0,1,2,12} compatibility with Microsoft - Hide devices that aren't updatable by default in fwupdmgr - Search all UEFI GUIDs when matching hardware - Stop matching Nintendo Switch Pro in the 8bitdo plugin - Check that EFI system partition is mounted before update - Disable synapticsmst remote control on failure - Don't recoldplug thunderbolt to fix a flashing failure - Fix SQL error when running 'fwupdmgr clear-offline' - Improve the update report message - Only enumerate Dell Docks if the type is known - Only run certtool if a new enough gnutls is present - Prevent a client crash if the daemon somehow sends invalid data - Reboot after scheduling using logind not systemd - Use the right encoding for the label in make-images - Added/backported enable_pkcs7_when_testing_only.patch: + needed to disable pkcs7 test during build (can be removed for fwupd >= 1.0.9)- Update hasbang in installed files from /usr/bin/env python3 to /usr/bin/python3.- Update url - Small packaging cleanup with spec-cleaner- Update to version 1.0.6: + New Features: - Add bash completion for fwupdmgr. - Add support for newest Thunderbolt chips. - Allow all functions that take device arguments to be prompted. - Allow devices to use the runtime version when in bootloader mode. - Allow overriding ESP mount point via conf file. - Delete any old fwupdate capsules and efivars when launching fwupd. - Generate Vala bindings. + Bugfixes: - Allow ctrl-d out of the prompt for devices. - Allow to create package out of provided binary. - Correct handling of unknown Thunderbolt devices. - Correctly detect new remotes that are manually copied. - Fix a crash related to when passing device to downgrade in CLI. - Fix running the self tests when no fwupd is installed. - Fix Unifying signature writing and parsing for Texas bootloader. - Only send success and failure reports to the server. - Use a CNAME to redirect to the correct CDN for metadata. - Use a longer timeout when powering back the Thunderbolt device.- Ensure library package has a dependency on main package, otherwise it won't be usable.- Update to version 1.0.5: + New Features: - Offer to reboot when processing an offline update. - Report the efivar, libsmbios and fwupdate library versions. - Report Thunderbolt safe mode and SecureBoot status. - Show the user a URL when they report a known problem. - Support split cabinet archives as produced by Windows Update. + Bugfixes: - Be more careful deleting and modifying device history. - Clarify which devices don't have upgrades. - Ensure the Thunderbolt version is xx.yy. - Fix a daemon warning when using fwupdmgr get-results. - Fix crasher with MST flashing. - Fix DFU detach with newer releases of libusb. - Include the device VID and PID when generating the device-id. - Set the RemoteId when using GetDetails. - Stop matching 8bitdo DS4 controller VID/PID. - Use help2man for dfu-tool and drop docbook dependencies. - Use ngettext for any strings with plurals. - Use the default value if ArchiveSizeMax is unspecified.- Update to version 1.0.4: + New Features: - Add D-Bus methods to get and modify the history information. - Allow the user to share firmware update success or failure. - Ask the user to refresh metadata when it is very old. - Store firmware update success and failure to a local database. + Bugfixes: - Add a device name for locked UEFI devices. - Allow each plugin to opt-in to the recoldplug action. - Fix firmware downloading using gnome-software. - Fix UX capsule reference to the one specified in efivar. - Never add two devices to the daemon with the same ID. - Rescan supported flags when refreshing metadata. - Add pkgconfig(json-glib-1.0) BuildRequires: new dependency.- Update to version 1.0.3: + New Features: - Add a new plugin to add support for CSR "Driverless DFU". - Add initial SF30/SN30 Pro support. - Support AppStream metadata with relative URLs. + Bugfixes: - Add more metadata to the user-agent string. - Block owned Dell TPM updates. - Choose the correct component from provides matches using requirements. - Do not try to parse huge compressed archive files. - Fix a double-free bug in the Udev code. - Handle Thunderbolt "native" mode. - Use the new functionality in libgcab >= 1.0 to avoid writing temp files.- Unbreak compilation on non-x86, upstream renamed options to disable plugins.- Update to version 1.0.2: + Add a plugin for the Nitrokey Storage device + Add support for the original AVR DFU protocol + Allow different plugins to claim the same device + Allow quirks to set common USB properties + Move a common plugin functionality out to a new shared object + Optionally delay the device removal for better replugging + Set environment variables to allow easy per-plugin debugging + Use a SHA1 hash for the internal DeviceID + Add quirk for AT32UC3B1256 as used in the RubberDucky + Disable the dell plugin if libsmbios fails + Don't register for USB UDev events to later ignore them + Fix a possible buffer overflow when debugging ebitdo devices + Fix critical warning when more than one remote fails to load + Fix DFU attaching AVR32 devices like the XMEGA + Ignore useless Thunderbolt device types + Refactor ColorHug into a much more modern plugin + Release the Steelseries interface if getting the version failed + Remove autoconf-isms from the meson configure options + Show a nicer error message if the requirement fails + Sort the output of GetUpgrades correctly - Changes from version 1.0.1: + Add support for HWID requirements + Add support for programming various AVR32 and XMEGA parts using DFU + Add the various DFU quirks for the Jabra Speak devices + Allow specifying the output file type for 'dfu-tool read' + Move the database of supported devices out into runtime loaded files + Support the IHEX record type 0x05 + Use help2man to generate the man page at build time + Use the new quirk infrastructure for version numbers + Catch invalid Dell dock component requests + Correctly output Intel HEX files with > 16bit offset addresses + Do not try to verify the element write if upload is unsupported + Fix a double-unref when updating any 8Bitdo device + Fix crash when enumerating with Dell dock connected but with no UEFI + Fix uploading large firmware files over DFU + Format the BCD USB revision numbers correctly + Guess the DFU transfer size if it is not specified + Include the reset timeout as wValue to fix some DFU bootloaders + Make the error message clearer when sans fonts are missing + Support devices with truncated DFU interface data + Use the correct remote-specified username and passord when using fwupdmgr + Use the correct wDetachTimeOut when writing DFU firmware + Verify devices with legacy VIDs are actually 8Bitdo controllers - Add help2man as BuildRequires.- Fix dependencies and build options for non-x86 architectures. At least FW updates for USB are arch independent, and EFI FW updates can also be applied on Aarch64.- Update to version 1.0.0: * Add the plugin documentation to the main gtk-doc * Add a waiting-for-auth daemon state * Add fwupd_remote_get_checksum() to use in client programs * Generate the LD script from the GObject Introspection data * Prevent fwupd from mounting filesystems * uefi: Do not use system-specific infomation for PCI devices * uefi: Support uploading the firmware splash image * dell: only set coldplug delay when we know we need it * dell: only run SMI to toggle host MST GPIO on systems with host MST * dell: add functionality to blacklist HW with problems * dell: only run on intended chassis * thunderbolt-power: always run after thunderbolt plugin * Allow plugins to depend on each other * Add support for SMBIOSv3 * dell: prefer to use hwids to get DMI keys and DE table * debian: remove /etc/fwupd.conf on upgrade * unifying: Use fu_plugin_check_supported() * Add fu_plugin_check_supported() * unifying: Use a device whitelist to avoid breaking devices * Fix various printing issues with the progressbar * dell: Fix a trivial whitespace issue * Do not fail to load the daemon if cached metadata is invalid * Do not store the newest release as part of the FuDevice object * Add a method to return a list of upgrades for a specific device * Move the downgrade calculation to the daemon * Make FuDevice derive from FwupdDevice rather than FwupdResult * Add a command 'clear-offline' to fwupdmgr * Merge releases where multiple remotes provide the same firmware * Remove the UniqueID property * uefi: Do not set the release version * udev: Do not match USB devices, even with a GUID set * Use the intel-wmi-thunderbolt kernel module to force power * dell: drop thunderbolt force power code * unifying: Add hardcoded summaries for peripheral kinds * Create CODE_OF_CONDUCT.md * Ensure more devices set the device summary * Add an 'Summary' property to each device * Add a human-readable title for each remote * unifying: Disable if the kernel has no CONFIG_HIDRAW support * Move deprecated symbols to a new header * Introduce an s390x cross compile target to CI * Add ModifyRemote as an easy way to enable and disable remotes like the LVFS * Do not auto-open all USB devices at startup * dfu: Use FuDeviceLocker * unifying: Use FuDeviceLocker * colorhug: Use FuDeviceLocker * ebitdo: Use FuDeviceLocker * altos: Use FuDeviceLocker * steelseries: Use FuDeviceLocker * usb: Use FuDeviceLocker * Add FuDeviceLocker to simplify device open/close lifecycles * dfu: Remove DEVO support * dfu: Remove the now-unused symtab support * Remove the ELF support from libdfu and move the code to the altos plugin * Use -Werror when building in Travis CI * Do not install the libdfu helper library * Parse the SMBIOS DMI table directly * usb: Disable the fallback USB plugin * Test for missing language translations at build time * Fix the libdfu self test failure on s390 and ppc64- Update to version 0.9.8: * Add a command 'clear-offline' to fwupdmgr * Do not fail to load the daemon if cached metadata is invalid * Fix a crash when using fu_plugin_device_add_delay() * Fix the libdfu self test failure on s390 and ppc64 * Format the BCD USB revision numbers correctly * Never fallback to an offline update from client code * Prevent fwupd from mounting filesystems * dfu: Allow flashing when the target does not specify an alt-name * dfu: Do not try to verify the element write if upload is unsupported * dfu: Fix uploading large firmware files * dfu: Include the reset timeout as wValue to fix some hardware * dfu: Set the vendor ID to the runtime USB VID * dfu: Use 0x0101 as an alias for 0x0110 * thunderbolt: move test for mock environment (gh#hughsie/fwupd#280) * udev: Do not match USB devices, even with a GUID set * uefi: Do not set the release version * unifying: Disable if the kernel has no CONFIG_HIDRAW support- Update to version 0.9.7: + 10 months worth of bugfixing, integrating more vendor specific Firmware update paths.- Update to version 0.8.1: + Delete duplicate translations (gh#hughsie/fwupd#89). + Do not hardcode docbook2man path. + Fix fwupdmgr timeout with missing pending database. + Fix compiler warnings. + Fix a crash when enumerating devices on a Dell WLD15. + dell: don't initialize libsmbios on unsupported systems. + Do not fail to start on Dell hardware. + Adjust systemd confinement restrictions. + Do not dlclose modules when running under valgrind. + Really remove the NoNewPrivileges systemd confinement. + Release fwupd 0.8.1.- Update to version 0.8.0: + Show a different error when checking for updates while on + battery power (gh#hughsie/fwupd#68). + Clarify the test in --help and man page related to offline + (gh#hughsie/fwupd#69). + libdfu: Use a heuristic for the start address if the firmware + has no DfuSe footer. + dell: Don't return the address of a stack variable. + dell: Fix a possibly-impossible-to-hit buffer overrun. + close USB devices before error returns (gh#hughsie/fwupd#73). + Make libelf support optional. + Always make sure we're getting a C99 compiler. + Fix redeclaration of polkit autocleanup functions. + Uncomment SystemdService parameter in the dbus service file + (gh#hughsie/fwupd#74). + Make all providers and plugins share a GUsbContext. + Unexport libebitdo. + Move the plugins into plugin-specific directories. + Convert the providers to plugins to simplify code and for + future features. + Add support for Logitech Unifying devices. + Add a set of vfuncs that are run before and after a device + update. + Return the pending UEFI update when not on AC power. + Move the UPower functionality to a plugin. + Fix udev plugin loading. + fix dfu plugin loading. + Disable PrivateNetwork on systemd service. + Use more restrictive settings when running under systemd. + dell: add a new method for forcing a controller to flash mode. + Add VerifyUpdate to update the device checksums server-side. + Move the Option ROM parsing to the Udev plugin. + Move the device add delay to shared code. + Add initial skeleton for Intel Thunderbolt support. + unifying: Use the actual bootloader VID/PIDs when in firmware + mode. + Allow the metadata to match a version of fwupd and the existing + fw version. + Add fwupd_result_get_device_version_bootloader(). + Fix the appstream-glib version guards. + dell: Add coldplug methods to let other plugins turn on + TBT/GPIO. + libdfu: Don't read data from some DfuSe targets. + Add the ability to run a prepare->exec->cleanup on coldplug. + Allow plugins to request that all plugins re-coldplug. + thunderbolt: Detecting new devices and add an actual device to + the daemon. + Add support for flashing the ChaosKey. + thunderbolt: add some guards around empty arrays. + dell: Adjust the coldplug preparation and cleanup sequence. + dell: Fix possible linker problem. + Revert "thunderbolt: add some guards around empty arrays". + Add fu_plugin_set_coldplug_delay() to allow hardware to + initialize if required. + altos: Add error checking when using termios. + ebitdo: Subclass FuDevice like the altos plugin. + altos: Set the flags in the init_real so they work for the + cmdline tool. + unifying: Subclass FuDevice like the altos plugin. + Include all debug messages when run with --verbose. + dell: introduce a standalone (noinst) tool to force mode + flashes. + Introduce plugin for Synaptics MST hubs. + synapticsmst: Add cascade support. + Only register the D-Bus service when all devices have been + added. + synapticsmst: Refactor away the global state. + synapticsmst: fix cascade support in the plugin. + Updates for thunderbolt plugin. + thunderbolt: Add special handling for safe mode on Dell systems + (gh#hughsie/fwupd#84). + synapticsmst: Iterate all nodes rather than hardcoding to 3. + synapticsmst: build GUID using dock type. + Add a new function fu_dell_supported to fu-dell-common. + synapticsmst: add a test suite. + synapticsmst: Fix up some trivial whitespace issues. + Fix a refcounting issue in the udev plugin. - Add rpmlintrc untill security review is resolved- Update to version 0.7.5: + Clean up PO files + Verify devices support updating in mode they are called. + Fix an assert when unlocking the dummy ESRT device + Don't create the UEFI dummy device if the unlock will happen on + next boot + dell: Match on TB16 as well + Fix a -fstack-protector-strong crash when uploading firmware + Enable the stack protection in local builds + dell: If running in test suite, don't try to get product ID + from sysfs + libfdfu: Show a warning when getting the alt-name failed + dfu: Fix listing devices using the ST reference bootloader + Show the nicely formatted target name for DfuSe devices + libdfu: Fix two possible critical warnings for corrupt USB + descriptors + libdfu: Correctly offset addresses when one zone has multiple + sectors + libdfu: Do not do GetStatus on dfuse upload + libdfu: Fix uploading from DfuSe devices + libdfu: Use the device offset when writing DfuSe firmware + libdfu: Add DfuAction enumerated value to represent a device + action + libdfu: Use an animated progress bar when performing DFU + operations + libdfu: Do not do a zero-byte download when in DfuSe mode + libdfu: Fix verification of written DfuSe firmware + libdfu: Ensure the device is open before claiming the interface + libdfu: Ensure the mode is set correctly when faking a runtime + libdfu: Re-get the quirks when the DfuDevice gets a new + GUsbDevice + libdfu: Add quirks for HydraBus as it does not have a DFU + runtime + libdfu: Match the device booloader or runtime VID and PID when + checking firmware + Add a 'replace-data' command to dfu-tool + string + libdfu: Add dfu_sector_get_zone() to get the continuous memory + zone number + libdfu: Wait for DNBUSY to be cleared when checking the DfuSe + status + libdfu: Correctly erase DfuSe devices + Enable hardening flags on more binaries + libdfu: Correctly set the element address when uploading from + DfuSe devices - Add pkgconfig(gmodule-2.0) BuildRequires: Align with what + configure checks for. - Add pkgconfig(libsmbios_c) BuildRequires: Support dell bios. + Unfortunatly, until we have fwup packaged and enabled, this will + not work. - Add disabled pkgconfig(libtbtfwu): For future thunderbolt + support.- Update to version 0.7.4: + Add a fallback for older appstream-glib releases + Write the ELF files with the correct section type + Fix libfwupd self tests when a host-provided fwupd is not + available + Add dfu_firmware_add_symbol() + Add the Altos symbol table to the DfuFirmware + Use the symtab to set the VID/PID from Altos IHEX firmware + images + Show the human-readable version in the 'dfu-tool dump' output + Allow specifying the argument to 'dfu-tool set-release' in + major.minor format. + sections + Support writing the IHEX symbol table + call + Load the symbol table from ELF firmware + Load the Altos USB descriptor from ELF files + Add DFU_CIPHER_KIND_RSA + Fix a possible crash when uploading firmware files using libdfu- Update to version 0.7.3: + build: Fix gtk-doc build when srcdir != builddir + In get-details output, display the blob filename + Ensure the update ID is set when getting local firmware details + Use a private gnupg key store + Add support for installing against multiple devices from a CAB + file + Use the correct firmware blob when installing a composite + device update + in get-details output, display update_name rather than Unknown + Device + statements + Don't make failures critical while checking versions or locked + state + Show a more detailed error when installing firmware on the + wildcard + Add Dell TPM and TB15/WD15 support via new Dell provider. + file + Allow blacklisting devices by their GUID + header file + Add XPS 9250 to Dell TPM modeswitch blacklist + Only display flashes left in results output when it gets low. + Add a small library for talking with 0bitdo hardware + Add another compile warning and fix up any build failures + Embed fwupd version in generated libfwupd and libdfu + documentation + Update fwupdmgr manpage for new commands and arguments + build: Fix gtk-doc build when srcdir != builddir + online not offline + Get the firmware version correctly from 0Bitdo gamepads + Switch to the Amazon S3 CDN for firmware metadata + Fix writing 8Bitdo device firmware + be updated + Show the vendor flashing instructions when installing + Split out the DFU file formats to separate files + Add fwupd_result_remove_device_flag() + Add FU_DEVICE_FLAG_NEEDS_BOOTLOADER + get-updates output + Allow providers to export percentage completion + Add fwupd_client_get_status() + Handle the 8Bitdo bootloader in a better way + Show a progress notification when installing firmware + Add fwupd_result_get_unique_id() + Use the SHA1 hash of the local file data as the component + origin + Use the correct define prefix for FwupdDeviceFlags + libdfu: Fix hang when parsing corrupt IHEX files + Add a set-target-size command to dfu-tool + Support the 'DEVO' cipher kind in libdfu + Add a set-address command to dfu-util + Disable the Dell specific code by default + Conditionally enable all providers based upon what's installed + Add a summary of providers that are enabled from configure + Do not use the deprecated GNOME_COMPILE_WARNINGS + Ignore devices that do not add at least one GUID + Do not attempt to add DFU devices not in runtime mode + Save the unique ID in the pending database + libdfu: Add initial ELF reading and writing support + Add dfu_firmware_format_from_string() + Normalize the DfuFirmwareFormat enums- Update to version 0.7.2: + Allow devices to have multiple assigned GUIDs + Only return updatable devices from GetDevices() + Add fu_device_get_alternate() + Allow metainfo files to match only specific revisions of + devices + Re-read flags for a device after a provider's unlock routine is + done + Test for a locked device when trying to install firmware update + Enforce allowing providers to take away flash abilities + Support returning multiple GUIDs from GetDetails + Add a GetDetailsLocal() method to eventually replace + GetDetails() + break + libdfu: Add DfuVersion enumerated values + libdfu: Show the DFU protocol version in 'dfu-tool list' + Only claim the DFU interface when required- Update to version 0.7.1: + Fix libdfu CRC check for big endian architectures + Add dfu_image_get_element_default() + Fix libdfu CRC check for big endian architectures + Fix big endian issues when reading and writing DFU and DfuSe + files + Remove non-interactive pinentry setting from fu-keyring + Set the system's DMI product name as the DisplayName for UEFI + Re-order output of get-devices to be easier to read + Make the device display name nicer + update version + Return all update descriptions newer than the installed version + Add summary and name field for Rival SteelSeries + Fix a critical warning when restarting the daemon + Add a 'supported' flag to the FuDevice + Add fwupd_client_connect() + Add a 'monitor' debugging command for fwupdmgr + Add device-added, device-removed and device-changed signals + Match the AppStream metadata after a device has been adedd + Re-match devices when the AppStream metadata is updated + Show 'Unknow Device' in fwupdmgr when a device name is not set + Set the device description when parsing local firmware files + Add support for a new device field "Flashes Left". + src/Makefile.am: reshuffle so enableable bits are only + referenced when on + Add support for a --force flag to override provider warnings- Update to version 0.7.0: + Use g_usb_context_wait_for_replug() + Run vendor plugins as required + Add a plugin for SteelSeries hardware + Add fwupd_device_flag_to_string() + Return the device flags when getting firmware details + Show device flags in 'fwupdmgr get-devices' + Add fwupd_trust_flag_to_string() + Export FwupdUpdateState in libfwupd + Export FwupdUpdateFlags in libfwupd + Add FwupdResult to libfwupd + Add a self test framework for libfwupd + Add FwupdClient to libfwupd + Use FwupdClient from libfwupd in fwupdmgr + Use libfwupd inside the daemon + Emit a FwupdClient::changed when the daemon emits this signal + Rename some of the new libfwupd API to align with the D-Bus + names + libdfu: Fix up some NULL/FALSE confusion + libfwup: Fix up some NULL/FALSE confusion + FwupdClient + Allow other checksum kinds in FwupdResult + Allow SHA-256 hashes when verifying + Show the checksum kind in the fwupdmgr output + Add Alienware to the version quirk table + Do not use /tmp for downloaded files + Add fwupd_result_has_device_flag() + Do not return updates that require AC when on battery + Connect to UPower at startup + Test that GPG key import actually was successful (or didn't + change a key already in the keyring) + Use g_auto() in FuKeyring + Return errors of the correct type when using libfwupd + Allow overridding the location of the pending database for + test suite + Allow overriding the location of the provider offline files for + test suite + Validate that the dbus system bus is available before running + libfwupd tests + Update README.md for changes that have happened in the project + Add some basic explanation of how to use fwupd with various + frontends + Split out the libdfu-devel package + Revert "Allow overridding the location of the pending database + for test suite" + Revert "Allow overriding the location of the provider offline + files for test suite" + Allow the test suite to run in %check + Generate gtk-doc documentation for libfwupd- Update to version 0.6.3: + Require AC power before scheduling some types of firmware + update + Install the hardcoded firmware AppStream file + Correct the BCD version number for DFU 1.1 + Add an unlock method for devices + Add ESRT enable method into UEFI provider. + Only read PCI OptionROM firmware when devices are manually + unlocked + Do not use deprecated API from libappstream-glib + Ignore the DFU runtime on the DW1820A + Export the attribute and quirk values in libdfu + Show ignored DFU devices in dfu-util, but not in fwupd + Allow defining update vfuncs with no runtime support + Revert "Allow defining update vfuncs with no runtime support" + Add a simple plugin infrastructure- Update to version 0.6.2: + Add 'Created' and 'Modified' properties on managed devices + Fix get-results for UEFI provider. + Support vendor-specific UEFI version encodings + Move quirks directly into a single table and file.- Update to version 0.6.1: + Only dump the profiling data when run with --verbose + Always persist ColorHug devices after replug + Do not misdetect different ColorHug devices- Update to version 0.6.0: + Add support for updating USB devices with DFU + libdfu: Add support for DfuSe firmware + libdfu: Generate gtk-doc documentation + libdfu: Don't rely on specific hardware to be present + libdfu: Move the VID:PID checks from the tool to DfuDevice + libdfu: Use a custom error domain + Use the same device identification string format as Microsoft + libdfu: Fix crash when setting a target size + libdfu: Allow setting the alternate settings in DfuSe firmware + libdfu: Add a merge command to dfu-tool + libdfu: Allow choosing a different alt-setting when downloading + libdfu: Fix a crash when setting a NULL image name + libdfu: Correctly implement auto-boot in dfu_device_download() + libdfu: Check for extra args to dfu-tool convert + libdfu: Call the progress callback when doing detach + Ignore the DFU device detach:attach when verifying + libdfu: Require a --force flag to flash wildcard firmware + Use new API available in fwup 0.5 + libdfu: Make the element address 32 bits in size + libdfu: Support the ST-specific bitCanAccelerate + libdfu: Only do a Detach notification if we're actually doing to do it + libdfu: Use the progress bar for all uploads and downloads + libdfu: Improve the output of 'dfu-util list' + libdfu: Support download and upload to ST DfuSe devices + libdfu: Fix multi-interface devices like the Neo Freerunner + libdfu: Add a pkgconfig file + libdfu: Use signals to propagate device state + libdfu: Add a context object to handle device hotplug + libdfu: Add an example showing GObject Introspection + libdfu: Do not ref DfuDevice in DfuTarget so the auto-close + logic works + Close DFU devices as soon as possible after the transfer has completed + Emit the changed signal after doing an update + Rescan the DFU device after replug to get the new version + libdfu: Add dfu_context_get_device_by_platform_id() + libdfu: Add dfu_device_get_runtime_release() + libdfu: Add dfu_device_get_display_name() + libdfu: Fix self tests after recent API change + Split out the DFU provider as a new file + libdfu: Copy the platform ID and invalidate the GUsbDevice when removed + libdfu: Accept multiple spaces after the DfuSe sector name + libdfu: Verify the GUsbDevice is set before using it + libdfu: Remove the weak pointer when destroying the DfuTarget + libdfu: Fix dfu_device_wait_for_replug() so it can work with a DfuContext + Export the AppStream ID when returning device results + Rescan the DFU device after firmware has been updated + libdfu: Handle cancellation with ctrl+c in dfu-tool + libdfu: Add a quirk to support DFU runtime-less devices + libdfu: Add an explicit 'attach' method + libdfu: Add dfu_firmware_get_image_by_name() + libdfu: Make reading and writing to targets easier to + understand + Fix compile with --disable-shared + libdfu: Display all the files shown with 'dfu-tool dump' + libdfu: Fix a few crashers found using afl + libdfu: Fix another bug discovered by the fuzzer + libdfu: Add commands to encrypt and decrypt firmware images + libdfu: Show better device errors + libdfu: Add DfuCipher which is a property on a target and a + firmware file + libdfu: Add support for the draft 'DFU Metadata Table + Specification' + libdfu: Only enumerate the DfuContext when required + libdfu: Fix several reported crashes in the inhex32 import code + Release fwupd 0.6.0- Update to version 0.5.4: + Fix compile error against fwupdate git due to dropped + functions. + Use strerror() when printing errors from libfwupdate + Use new API available in fwup 0.5 + Release fwupd 0.5.4- Update to version 0.5.3: + Avoid seeking when reading the file magic during refresh + Do not assume that the compressed XML data will be NUL + terminated + debugging + Use the correct user agent string for fwupdmgr + Release fwupd 0.5.3- Update to version 0.5.2: + Ensure D-Bus remote errors are registered at fwupdmgr startup + Show the dotted-decimal representation of the UEFI version + number + require appstream-glib 0.5.1 + not found + When the version is from the 'FW' extension do not cache the + device + Support cabinet archives files with more than one firmware + Add the update description to the GetDetails results + Add profiling data to debug slow startup times + Fix verify-update to produce components with the correct + provide values + Clear the in-memory firmware store only after parsing a valid + XML file + Release fwupd 0.5.2- Update to version 0.5.1: + Fix the error message when no devices can be updated + offline update: Use glib api for for reading symlinks + Release fwupd 0.5.1- Update to version 0.5.0: + Do not merge the existing firmware metadata with the submitted + files + Raise the dep on GLib to support and use g_autoptr() + Do not reboot if racing with the PackageKit offline update + mechanism + Release fwupd 0.5.0- Update to version 0.1.6: + Install fwupd and fwsignd into /usr/lib/$(triplet)/fwupd + instead. + Use the new secure metadata URI + Update the offline update service to invoke right command + Don't apply firmware if something else is processing the + offline update + Remove fwsignd, we have the LVFS now + Depend on appstream-glib >= 0.5.0 + Add application metadata when getting the updates list + Simplify the version properties on devices to avoid complexity + and bugs + Release fwupd 0.1.6- Update to version 0.1.5: + Allow fwupd to be autostarted by systemd + Sign the test binary with the correct key + Do not pre-convert the update description from AppStream XML + Devices with option ROM are always internal + Prefer the GUID from the firmware than the device + Allow no arguments to 'fwupdmgr verify-update' and use sane + defaults + Add the ability to remove a vendor on the LVFS site + Fix validation of written firmware + Move the verification and metadata matching phase to the daemon + Add a simple config file to store the correct LVFS download URI + Make parsing the option ROM runtime optional + Add a Raspberry Pi firmware provider + Use the AppStream 0.9 firmware specification by default + Generate the ColorHug test files at runtime + Release fwupd 0.1.5- Update to version 0.1.4: + man/Makefile.am: Add --sgml to docbook2man invocation + Make statements about storing private keys stronger. + Provide a way for clients to add new firmware metadata to the + system cache + Fix fwupd-offline-update.service + Revert "man/Makefile.am: Add --sgml to docbook2man invocation" + Add a Udev firmware provider + Extract the version string from the ROM in PCI devices + Add a 'verify' command that verifies the cryptographic hash of + device firmware + Make the ROM parsing more robust and add self tests + Get the version number out from Intel VBIOS too + Provide a way to dump the option ROM using the command line + build: gusb is required even without colorhug + remove unused variables + Do not return NULL as a gboolean + Fix Intel VBIOS detection on Dell hardware + Do not use the subsystem information when constructing the fake + GUID + Actually parse the PCI option ROM + Accept multiple files at one time when using fwupdmgr dump-rom + verify run + Add a 'verify-update' command to fwupdmgr + Fix trivial bug when parsing firmware versions + Keep hitting the hardware until it gives us enough ROM + Make the version parsing more resilient to corrupt firmware + Fix the example .inf file to reflect reality + Fix ROM PPID searching to work for all ROMs + Move the LVFS website to the fwupd project + Add the ability to create detached signatures + Allow cab files to be saved + Add a simple signing server that operates on .cab files + Automatically download metadata using fwupdmgr if required + Don't call efibootmgr after fwupdate. + Associate the contact email address directly with the vendor + key + Use the actual LVFS GPG key + Allow running fwsignd as the non-root user + metadata + Do not merge existing LVFS metadata + Do not use the file hash when storing the LVFS submitted + firmwares + Move GetUpdates to the daemon + Change the DBus method for installing firmware to 'Install' + Allow installing an offline UEFI update without --offline + Add a 'fwupdmgr update' command to update all devices to latest + versions + 'update' command + Increase the size limit of firmware to 50Mb + Only sign files when the entire file has been copied + Fallback to offline install when calling the update argument. + Reload appstream data after refreshing. + Release fwupd 0.1.4- Update to version 0.1.3: + Coldplug the devices before acquiring the well known name + Add an UNKNOWN status so we can return meaningful enum values + Run the offline actions using systemd when required + Get the firmware version from the device descriptors + Added syntax highlighting + More markup + Support OpenHardware devices using the fwupd vendor extensions + Move boolean properties on the device to a set of flags + Release fwupd 0.1.3- Update to version 0.1.2: + More markup + Fixed typos and markup for executable + Add slovak translation + Add helper code to validate public key signatures + Decompress any firmware signatures in the .cab file + Verify firmware if a detached signature is present + Show the firmware trust status when doing GetDetails() + Only allow signed firmware to be upgraded without a password + Add some guidelines for vendors to README + Small grammar fix + Extract the .cat file alongside the firmware + Release fwupd 0.1.2- Update to version fwupd_0_1_1: + Do not crash when there are no devices to return + Add a 'get-updates' command to fwupdmgr + Add and document the offline-update lifecycle + Create runtime directories if they do not exist + Create a libfwupd shared library + Export the status as an enumerated value rather than a string + Release fwupd 0.1.1- Initial package.sheep04 1683144002  !"#astcacsdadeeneoeseufifrglhehihrhuiditjakkkoltnlpaplptptrusksrsvtrukzhzh1.8.6-150500.2.21.8.6  !"fwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mofwupd.mo/usr/share/locale/ast/LC_MESSAGES//usr/share/locale/ca/LC_MESSAGES//usr/share/locale/cs/LC_MESSAGES//usr/share/locale/da/LC_MESSAGES//usr/share/locale/de/LC_MESSAGES//usr/share/locale/en_GB/LC_MESSAGES//usr/share/locale/eo/LC_MESSAGES//usr/share/locale/es/LC_MESSAGES//usr/share/locale/eu/LC_MESSAGES//usr/share/locale/fi/LC_MESSAGES//usr/share/locale/fr/LC_MESSAGES//usr/share/locale/gl/LC_MESSAGES//usr/share/locale/he/LC_MESSAGES//usr/share/locale/hi/LC_MESSAGES//usr/share/locale/hr/LC_MESSAGES//usr/share/locale/hu/LC_MESSAGES//usr/share/locale/id/LC_MESSAGES//usr/share/locale/it/LC_MESSAGES//usr/share/locale/ja/LC_MESSAGES//usr/share/locale/kk/LC_MESSAGES//usr/share/locale/ko/LC_MESSAGES//usr/share/locale/lt/LC_MESSAGES//usr/share/locale/nl/LC_MESSAGES//usr/share/locale/pa/LC_MESSAGES//usr/share/locale/pl/LC_MESSAGES//usr/share/locale/pt/LC_MESSAGES//usr/share/locale/pt_BR/LC_MESSAGES//usr/share/locale/ru/LC_MESSAGES//usr/share/locale/sk/LC_MESSAGES//usr/share/locale/sr/LC_MESSAGES//usr/share/locale/sv/LC_MESSAGES//usr/share/locale/tr/LC_MESSAGES//usr/share/locale/uk/LC_MESSAGES//usr/share/locale/zh_CN/LC_MESSAGES//usr/share/locale/zh_TW/LC_MESSAGES/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:SLE-15-SP5:GA/standard/306a67461ec7e7079f3fde558ba16602-fwupdcpioxz5x86_64-suse-linux7b}\c~fwupdutf-81c202d2c755f90dd156709449cad1759df4d64d3eeafc9aa47f2b76302cdb282? 7zXZ !t/q] crv(vX0(ހ|Qõ`GĨ5l(>Xt %!GwulǁqRsF,=X>j-Ywnbe1B!YC @ޟ8}`CN?GD[QLm]?J,oそ@wNN Prhd➻C)A. =xۺ@x W!ā˟h3<6hV%wE_4zG ƃs?_K=knx7x8tz M˷]#A-=F}S T&K:72^A]^Y{UtIY 9,qDaZ&8zϟ[Nfp0?cEF`kifӐk.d~N`!l0jն,lK9^]uјZ^{AUQ95e6=4H'cE1ѷP$ rHON[_2=Λ6ҌM1ɚl (5 b^8䃓cJL"M|C2&P~-~Yy9}@蕳a{2!ѸvŒ 1M`n\HclӜz]M& NX[͡cYKF#.*oVKQɷ(]ٗho8jW=0ڵzO/QEޣ)A`ޚjEFPLO% EM*0R≜t$حKrٮ$BQtd*!y[!9=)+Y?+Ë]Pwqp(7I>w2^ִvaWxlsrMiK Nyj^$9?g vp'%nqB[Sn@~ h5aOٲ6]&1giT" cŢ (+woQR-A6Lg-(_`QJ1WQ3p(8I͑rNT>+d.ģr~@X+^ĝG'ĵuT?g)>$.9]"Z4pەz4ɵMvkuzP+v`gtjGS2oWU4fsM*w=.w7,{P 绰/&azC{̖P{7͙鑅q>japOڬ('Uêq{{uO>k nꇙUw*[/Z"l,U25ODz |;@kEi$D'PN{xq:CP Dcfwh86VT܂0dyyθFPiWcNѲJ^C)F^ǐݻgA펗} wхMcbl56灩s:|[LBl Y&-m|㼶9(Q]EaB+}dчPͧvm㣠!Jɧ#qt =´kU7:Jl>8=NɱD2EލbTzfq b̼Ƞj>.X4ڒ M8afEȵ^iݠuϯ0!%[}Iڨ(=foDh|Z_rEBmU#@L~=^ :vF&-~\Т3o~^u?2Yΰa ]DI:B%do{/d4n,! b'j^,<ח %[P^8k;T.FuH'sD&٫7M-%E.^U=|wCx`x.~ rxH ܁]WOA3KB0JzSD?NSp\ FE? xp6P[oJ5Qd" ַh7:?Cwi8 G |Bnwo'Q$##"JT^uJCw✤ш.IvC:7ֺ#̈́7Q-?]枼Z!cf!+hIi4#l:,`/kH@Jx9y`XfNe.9-ݜ\8`H'(t&:҂Ձ|pwc6# ‘}ډU4^u[fR0r3z͏BK w>+pC( oZV4tm`2`MT =vj1LrJOޱl^CZin1 Kwk)uHSt7]0l}{jd۬>uE!V.˼tM\8N 9 ]23<[*jxv"ğGX5vPQ glS\?XTjQڲv\N6W>]cbIq<Mܮe-I:@?0߶emf f#Me32L޲ee!l!klj$yp7R9:VK׋{G{ƋJRhlCR,7蔊\P"7akS|t( ݷ/ ƖsFoHN vxeG< UÙ(D"0 ,m*䇖{na#U"ʋ >݋b Z}O;lU!&`Q'@pqGW8i!.ӘGr݈V RETP݇a)g.e#5kVMb#7=DV8(p_ H&>]a^l .h`֦E]L)YwӚZ[\2j2#XH>jK GDpWp"I蓥ʉM˓@Y?fyXqlsk8% f3ig!u1( x A1boSB't" D㸱r/Z^=cFbeK)^Rѹi䅡|EKj?0Y._b48&p0jhLec'цETmz!13uv>^ՅyI(M L^Yrd$5܉/ס/9bh75B0 YmMV?`1^Ωўds؃N\X//q<У_VBVT`RV7bHNdwҳk rh^H1 (88>GIbV+AKd ,zYںPւ`HuBS-m/&7W15h# D4lj,hO.(IL`n8(~е+]"X<kI_&cՀӘʷs`Sd%=B VW $ɜ_|O(̣s UՔA\}8oR"طWSqRٶbgrt ֵ.9FSpFЅ; o ¸cۆрtUoE`޵HwM(Ҳ]g7d>7UYh5\m]mFY)r2L >ZHj[qPUUǂ{.40o tT<U"vY)bFpcgmD}BwmT*'HXA,`G3YUg\s ]40b0!?%o'6p 0L%xVFe-3Lܸe1O؎P^Qd < Vi|=)! b|JSu&0b]Es2V5ZZ >'+T _ f1HCj~,uI vJmG=ەJr N4uU >-UmXDzTNk)'5[o$";|w vN!Ev pf>):Oaz^NMTF>HDSηKܜ5vK+s/VC푢^WlxEdȣ:2sK.J ]l_?3H;AfK Hۭ3DLA3.kѮy ^Ad/`MAQd5>+#9K?Z}/9(3:+,9L[ OI?0Z N@vuō6tw(ts\7ݛ{%iMۨgL&fC><6+5>PLpR0a\=`5a?rDGwer7F̾Yv_ .ש`?yqQoGYpn̯D 3Cǭ6 ª+W42 ;_lX.* Dk ? {S-cCh G *h ewl(?̖UaDIwVk7c9W/bZ!d:btG z٢w%bxLh#":˩.18vm8-7%:!2M_K rՍ@[w~%]0805_Mcܙ:]:8wSz;P>-AGuR\y~,s{6?8v%9<^qt W4TJ"hgh\n(XWA(j8QxƓ;|E3*"/CYHn (t >bP>NxI"00wno@iBk9k]Q 'L51)~4=1cVQ \BZ3ã}R!pDx {H}R17_S~j2[i2L"A PxA?ӈXN9i6 FglA;:\\م SiJ֙H .A.+$swB3[/ ;k";B/\S>t |Z&@/T Oq倧q4 $0ۄfra`vD1K?w>J ]r~܄G5C#nPY]o6)_~Ge32|$)5"r%Y-99̠XTަ#V2pAjKW7(wma?Kzɱr 2U̔c3e$*;'^ Y8rm䖼_?) zL}ʎr1HkIb ^@Qz+{*wr'<=3JE>Ei:~)2jFձWotx[Ww6dB|2WOÔz rWT8ӫF` J,,.QM,sD jo} P\q=d.0mqzg︍]<hJ|-zһEc!/iQYODH*QT+bJ1\ އ ;X9TʏSN* !Y?&rؗT;1i!Wz$yl+V"Hur\_S:`)J ^|a&`X-Y?Eu/fKD>c"K2|Vhҟ-Nxy\B7.ܷ5wf "nW$tj>K[H.K\؋64C 7)"/h撁њ (,kSfRSi Z4m(Ů- rú M5=E2'|mY^=G1\$# O٪o+ ѼIxB9?$RCZqP/˓~GM4tꩻ* !h`cX!%Hf@ʒmvXz;TA cb=X1"i},"S*rXGqf=nC/ďjE .m_xaB6$[E$+#fsqβ;sV-#L[G+Z~0$4)sIѥ]PT˔?Kub Z]{GwPɚ)YԜ 2.uvك*#SSN;lXl. f;T:X'ό'^R#7:]_-|`=G7%z0\JeV[N*n.S~&}ZJR꒒qs))N`#p>޿F+ۙh˰7_F”a @ WJ=a)n8h@.8nr.<}E _K -e#av#~$0[+:j0GJwkTRhBb){qQOl`T;dPQb_X̠jt\D4 I{X-$$5^uHtvcaZ?wYUVB衁Q=:1a0.[Yl\!~q% *?P DkU|!8F*Β•J G9Ө4p[!;߫f'a ΜF0#µX#<xG0%t)[ud6;e: Б1+FVDL-56w g lu lv9gь H4H<5 .#´:VZ<8`@oUgG~SM i=v m掣Fm.0n2_+˻ c۟ٙ?\QRSTdiCLshDcUAi<5ítIͪ&jGG%8 64c2G[̹hOkpՉES@O(] |4t+f:xcIzЫcF<괚UfR hϟER*Ru6ez7ɯ4xCl*t(ڊ[ dvu #pȟw6>+ Ƙ-a-DQESQ>~'iI󫞰!#kG{Et>c_ozAڏ"Gf6U.r Ub™򏫨Bn8y"LbsTgiqiKpw}N*t̯o1#`go FVGE[w!I QOJi ) ,SJ!_ƛany /1ήM qO9i ?sw -ydͪ N΀Dƛ↍ʬ\@%݂G]585 Py\ΨGB![jܷZp( 9bջZPS욀rnW&u|&Jx=~Nk?V_4τOp\AѶh3KrH*XH&./+I͖M{%eT^'g .^Pb R`XgV>琰Q\Ur%n~Ebm*]y3 ;|Oxsi:HZ^@ihfk ;WD{Zj1_n={ n=} G;z9OfmӓyA< b\usdgR݋'m;QR]"ڪu%8 k ( S;"X{Ø#008N2]~E۟l( ɰ.zm䉊0v4/fz:~› NC`pKC9e QCLO!9.`0btG JsZ}XCnfF;rk-dZdZiхׯή!nΔ?<.`kn;xtH ,0ޞCO>+*h=h,,9SJu5թP/3G:Z?ѪoiaeB" MMyS j$D( D)۲zc Yqf?a/qxK*+r ȁ(kdkv3:Ѷ>T՘#H~سCT*J9i FfWkvoA*t\ 1 ;˩8(>D62^RџbȈуtѤpPϥ1.r'tZ~a6Q [0e"{Z#*Tu6쳋mG.W/P4GTrׅ3N+|=7]e e3}k]^r-G*Kxֱ¼{ OKkOjM=VViBJK;R 6H_pz׼46y-npcx};eMyetIWE GG'֢N%kjZhN̡.5) º_P!V_ 8y ƳaԄSx'eDoSg192]3R5䘨4ՀX[RbSva)i]x‘*}UɠdCc?OWk|0q,813fiZ!h>J2~܌YJ)AG$>y)o#C9^:TM2zvs+%Da3Dh` ,[d s ͸[jm~SW$H"@s_zPޕշk;&RU62@M‘xuQ[w_]vV7YO5鉛9euV')(늭sbZ{ZV@Zr T;pΐ۟bGHGP.;z]MA߳wnG͚ݠ^YxV!ΚҐO#:^[W‘vI [E!Q^4\{v+:TWz]#/izӹK{HCtoPSSuysm콥HV'K)uFSV`|]L#g;p$dz3Cw1%'wȨ=A%o>+)ּ!F6-J䈡(6XJ=fdF= Y>kʍ\bx|nPFn-CjVWYIڬ~Fqvyv#|mW z%HS\bfI"rP*(c3Y- ;ìaU*M`Afe~uN}qX;,u-Jɚ- eX(,Kqk9+Brxg A$= ՂJ\TŌทcfG4/S:X JV~<2XFTI9ct`|P("}I5:/+c7ƽ7jp}h[^Z`A!UExkTRȾ2oKf϶Kl|9!e*l8AZr/ t 'YdjR\.O^hh`xQvahES+ݺiS9q3Kʈ/y <>-7])^(`><קDa*P 1 .nW);>͢mA >9D.dj_H$$%_'%ZbZWPć[ ё{F>P Szg rrO1etN՘hNA,<t:Z$GD-''$x3j<5]#iK9ԺՎD6٨g,Xd@24RxrnJ|:)u9|,-m$RJ;ؐ51ķ:Au/o\0}㺦"@ plIOـo~#m פ8Y~r#n@{:X*=zh~w<~dLUU (dìjxs&𮌔 (h=$d;R2T@F$\)WNz")^fHKM tƣ˯3"=q̅kƧgc1lg]4AVVJB @G"֩`:~qfrXF/6⻛8Z e.^.O/ѥ$rFX@:'1]r\G:D{0 rMC럠n+ݿm!~K]OLrWKܷG5tlSHD.^ErgWdS{32~AM ^曮X1T:$nQ|=3a2%3g _䈞s /Zw} pTl5OB9˨қR %<&*$RN~X'u!v%IdK"+)Z?ɽYGFq>v`o$_V&b ;뻂d׿9$-m<3e7֡r!b[!xOGm$s VLϿ(Zv0i~#3TzB| CwTl~̡ic@w&; '/R iRC,~cxM"1z;f Y!%} g-!xŦ\nG ZDkh{t|!"*Nw&WA)A(C=OS=kB }.}G<>&ʵ)]h~p28{L~*  O)&=lp9Ⱥ9sPWb42`g S%\mT qfwͷs>1:sNeZ,UO* y*/bDɓ Q`,8 d"_şbnIz0֟eac኎kwjpFy);ft >Q6 ~By\kFBGwSلRQԇ9F4jlfq:bE\ze[m{cF,-e`HH={N)T(LDl :N U=?3%a0T6:~!?7Wig6Y9*E:)n!ZhoS$EVZIz%|^fM"\6&9O8 χTPu*O"fmgWAqZEF&c9d"t,'N"dmxsz Butxd;!gTh\p'1Px7X ߺ&a::%JRp/I 'cz9Kf'٨:Wi3~/yQ5bL1ʢݵpP]{<Ɗ=hI:Y" ħ{fqvKRUpw(OS PJ{bM%34V;Cx)&g j@*,Qpc^2)2I\*ZKjIL%1 <(EG{'#a;Z{m>N=Z6 u2.sEa*.%=%k;52݅  J8ck-Ix`0r:XU w!u)u{MʢL88wZcr~PEa7<:NZ?ϗ̴MF\5G>!;A)nBA<'g\6*VmzosQMQ(fD,bp&7"(XwF52D xՔ>|msml"\{/M؎CL]2ӵKX{j<-IfSm?"1:&ZD7@^J*w ]Qr>/sa_L+,b]}iƃACgn]hy+_hP"̟nrJϛOMj,?D-`sRrRX֪i&_tr>|5pUD6`l(u(Nϴfn@He9wZ(j\0dK>9^@ÌO;'łAB1m4u =-.`!wɉ좈'\Oɧ<;mq!ӷY VFy,pr4P v4&Z7~V,YE#EVh4Iw﭅Yr`8k ah̞e;Adi02gbOBa]7D~ ڤ#ME`zmysUVx\0#3lr$m2ULScwʵ[,9QhSQyٴn${%>\֘gnqi71x_~xw!xW)o:t.s,Q6ETP6IiwI:)4i7jGn3j,9,ҁzW0@߈K{Paq(S eŔXN.WE` Y/a&8߈ .U6.]n~)ZeC  BNrn Ш1s,u^}K1$Ï]-=nb#KU?(B饮EDY wiFM/ O  I8g0[HV:dkq wuc ,'_8e\zLHtG+\1 x#{`!d|xrrdcG6b =Caۛ{6pm{F `)GA޴v||7h귦G!-a~9$`)a&2G8@)Q/]ԝʝ0F~yinU*#$G{^7ɩ4|褾) p f~BNG dcR9ka#+VP9gecP0pj8e{ۧ{n ZPd?c17IF'n@ӔTخrtEKɒǼߊ܏oM>YHV*81d=ZAX8[2 r 4sd7*j.ʧE9Ҷ1!1&We2boyEs~TU )զD[IK9Xd$Jj,9srXF |p!j9zϺװmNC[uPl^$ TWn oj<96f[rG U\|-x XbqaM{jWlB@h!TظG۔IǮO'a CR69Qn̆)i06ҕL;z/ߪ{Z(7"^J1خ6 aϭ,0&) ~\Kd:%NۼOws Rh586A$].Ms()0 Q7^6dc\!z~7`\ 4-Cixc~1Ҡ7CqP_oHᲄ-lVag.J(3hPUFrl 3P?)Dq(GkWv;L. aG < dazNB$04 IEkP/,Ngs:G.dC β #9j_ pjҒ\SYMZHW7 Yd* uҰGx]C)Ԧhߙj$PlD\Xz|>sXXoX> 4yA #0TɲB#FZBg5]Ұy'[Q3}.5m57j q%b}6ɽa?uuOk"͢s#$ Kn74!:.r)7tc`iFr{Y&^綤w)b+8(qs{پ2I(Gx;f7pNCT`Oeie A[S*2s *S:v_-YM~#kXbxU&ICFiT r[X@Z ҨN7knk„TJqT<# "D,,G` lʃ%\!h(XoL!̎f `0-3uUؤ_4M]}Bka^M"MT܊XN kd Hwuɯ޺tjɠMZ`yYy"i2 !# Q~^tj=3f֢a2l/G HSGi{Vy¶r{n΍?/oqT#Lu[`y5{+ Dڒb}V6H9-$< /7t+q.\a7S ^G )`ƍQ<,\W/~Dyla~Et3LE'F'm48v hh7¤Yb bVd8<4Picѽgָln g4'FW_(-&Sʠة.T݄W 8?|PhvhfPYv9a<9+]$T~cu pvOSU .=B OC:DJJg8"i$/P%]sሡ"rf VXml/", ;G%!DuAg;R|K* 6td|d1PLJ&!eyj:h"\5 }+z: =]dfȵOJ?e'TR&J/0*RP} 32i~z6 se!Qr4tIc4koXQf6j_h3a˃dK7 7;H=?S):)[]JY)/R٥lgIov0g k| qS^^cd OsqB 00֟l"W&T9#5hH#"}Cpn5v@ zG*#`3\_`Ѽd.4iP8[دd${I^bP驒1t-{߳4 |n(v7ns`|Jhq xxI.V4^B(X]{B5f䔈"m_"v EJ҃ͳ341AC1?JIhZ툒#$I{ڬL< 'd5#=;W@f]T{;<=`L~赳bHO'45a$vQyNBP% N_Bj8ĵs 薲oބM;ڼ*/F9LkZ#P뾕Q_=Zaj An1f:;T)tִ5 (d"gk/0lTѸ83C Y߱f^o[P[,tk翔| xw2$8e&m+xE < XoRnDn [=agG ;[Șqr) wke*76;^Ȳ}['굕zDUҌgׂop5et͙MMAQSvJPΖ w}YVH$5։ KzY=<|$\YohC. W+D\kTlP LT > }zeb> O:!:->V4'IN4~c[.J't5;6, 4փ #2, J DJ+XU/D5+t-@a<#˟q\dfZՇoΦ,GrsmlFxm!?ixSbyǑ%[SB_/m]:!_J9WSK׊eN7(Ux{ VW9R9 ,}ZDPtf֎}& L^Y5b8P"-T\(]r;ȓ̘cj]AR]헯ƶ7ge2'W)n8(!&p``̓(JШ&BOv)} gD>l m_,U_ߧb$6X3YG}vuF(#9s+WeVB4clֆYO 0.&jX<g‰/=Ds6Fbz*֕k\'Xj~d i٧""N9\Z.Bu¾3~Hߍ⪳zF#A$8/:nz鏖 By%yȨ8~|]j Uօ+0EDeKůp 8]3/=qv?vÏ5׼cUx*F۟|ow j,{wD_‡Y*o81Lb=HثfpsO.ac%En"Fk{ @>^>Q:PX812J8@k.|k߆e93ifl%"ٵNzgHP3$h}^#r62*&+(&d!6o `;ʸuaNT&ӪkR92Wc@q,XQ"0hU/5E$D|gL(.7 ԣ?g}Ha@ T QM}Va|.7qJS_u JӍ$ A0°"8cJgf|it=p~d8?n S[^̀*\j}hlu:3!5MtA-w;7FPZ]6tkTz3:|T2YZk]SH/A#} 9$ 3]Vݩvz \bg9"KdÌ:EGrH^SPm$U-;{/bVnSNx 8-1_ôohI3SEwE-tv]697wFö|'ܓFq] *(:b_L#yH ƌ:RJH+ZwS&74ڭ-n%]c#Ր D@ -bPA!ʆȎYFӠ<K6-+dxEIyH r/\eREK̓te׉\ʍ y ` ?Cn1dXa︾3%XrڹC{oszC3^)+CN ]ʍuۡ異:02 >s"V</ě]Lj[)#&~=jIq$GI9>e\M!I[8_N b@O:p; `!f3Ǿr񒣵^͆E>CFNU&8bji>QӁ*Y.AObaUtzmt Gk)"[稘˷VU̇ l|Pg1s{+Pnwgr:7A۴z5ҵ2f "47~4t~^y*07s ɯY,a4`?",W>\O=P"1קH @1/eQ4*0$:Z!֐2̦ƪ flY"[dN%U! @Z->F;DoM:U0w"{!'hR'S70+M?X3w~c5:z]=d`Y*mK%ԃ>"f6xo!|Mmzum5vUrl=3)[ǵ"gz!&T0ɵ<+ k3$a-0BJe\ֿ"THKMtq߱zTEv;KA1aIlL˾Șv%]C%Oq]E'w`C?Ws #! &c U]zy>%KO̻C/QtZy0y%BP<<.<i= } ``垯)Ƭg7ſip$[V'/CR X Xi/{S8 R4cXIDē37 ʁoCSE!?6Z*1#ѢָgJ 1+dZ_@S[W/)thDE Vm-2jBFifg5e~lW !{C`߱~ԃPhyҏ();~y'2SemC H]>R}[L뙗Z zz'YUkwկ2o^̇F& Ie(xsW $INvAbMUe0rU@y؜Z!RVV7ïVXUx? "a0?Ö_ CI\ Eg08bHyzDm1z1*vcȔ9L;\k*{+[TRXe h@Û EyC!;m?}a2%`&KaYlQIǻaֻޗC[$}~N0=_`"@bIak HF{'>Xb9D<"bŞB^?K_t,_/$ JW%._ bvr۾1א 'rtt>6[÷KvFFV?~`\,&p o6Kxp1k{ AvIk9C✻78.b6y!1Dv;-ŊD>F.-L儽}l-ˋl/"JkL5 {ʳ$jߤgB~%DG5Dk? =HfژI8V4 Ey'v9*Tf,QE;2CI[9mekqŸ_. )=xCj_HNi+@4.~F\W-/E (d(da[>{.f5= lJf麇St3ʡq?U{V{aҾW&ڞ*S*Jo\zf$H x^3Y!0W}Ҝ弲A`+2dGC^XBú|F<G0 yW,>Qu.s$(buivnmi7p8D=U$+[:BS|x NL6:Ut0("ϧ㈁-dqV@z>z^uϗ>ad/lM ko]&I>Kq.eSXUY{@f)-o5 Ţ.&'?&,W! w2"dG(61X;O\;3Kwj&;TSeКײ$M &P#cD~3jӪ,(@D^$=k% jCEL:!̓ c:#HW>f>s-8ws(+ݦȬv858)p`8*}dko:Wڏć"ȼOb65E|?q" yC$4EapR6W;Cd%&^cU6TkOZ?qBH)OHo%{Kzͺ7Re#UDBˆ*wb5*gM3 G*md9N&M]k"rbq D=^94jtΏqLƽcYG~s8֘1#6;AW9ɧ%qbwtw&H| DvqlަdQ[pe3v)P^fǂ`7b)ztj]KmW* aʬPSY@+{o=d̊%aK,8/ FtI> ]K,r8 U΍bnRTU݊soNmY;c߷cבv#Xi;k~+vcۣBOJt=`q i>G}H18d EL4`ZӝZ.O$0~ ?XD)-bG7O@>(uwz3WmKtIs:<>/!Ha)=Y[uAxӥLo3@e  6 .`ao5RXѯJnO+dHA|N (dyb%]EKxHm\eZ.KH>F'>{!u9&o/bxp]]lBy=€@->x'{晱0'}]g},+)XjN‚,Mb}ێ*WYRӥNADùJv-3+^5_ne&nzpYsfPt5>3P&xV*J:5ʭ~&9QFg#mz#es#H rAjz\?C )2-}L]y_1`Yf)ֆRV>@EF̀_UL bD*W)uZ^LM-exm6Fd7&#24lFmeX[<9ERڄ-?dbroE]R#"yATveݍ3sx2kvunS:$hT?voEpL[0Ln>>f j'! e)S6 m v#$XDlà yHCG{ZG5Cn(!L5 Z5¤`Rgp  Eo(4Ufz׷$.0 ieR{4mС"rOiwuY L PFN#`os~^L|t5n1_c/Bl/v&4\jؤa{(47o{[p,*bO{2VBf/PfXp{2W )_ $T9p--0u ^@jo4kR?O?Xx@Đ3c}UP\iҜuwR_okYW"Q&ܽL'u7f$BತNxE*&GYzXf2#7JL՜V)K,S % F/ %7'vK*QojPFs+ЏN&?eFp͂kort*TJBDvzwfX}ot^`\߲:_5˝Ip\f#ۓ27*I-YqD0gcGgn–K2{N4q\beͦɫ䴼, &j n:d~cEtN4>a/plwgh۔ĕB v-,^#S~ef DZYbhbK\y@@-}^=舟 D?~U{=ʀS`̲Lqs,f;OJ\8Ԯ W$e9&PPr# N'soV+I;ٻ4t7S~/WNBtQƧbԡnU%QPD;% YKf3lجG#QXXFVGXJ4gJ%Iؘ=3B jѼwHuSSq9hg~ ]ڝר'pJ:@|) s:esV"WHGNIh??檈dmsNG MgŧmY(KЖ {Ǭ 1$(Ђv{=LN@Rrm{_pFYl 7LNk1SdelOW kߖcHo}m?QhT=8@v5ĥŮUw]VF98٬U ? sh DC<@ESK`5A5L4QA*[hý7{Gt0!Oбg MxrP絯f>$E:=BQUs/7ۤ9=x#Bi[Q0>f&l6%Zv5Ϡ.md:xY7-.An-7iRكY|8/鶵S۟'5[=z7/y 5p|9&+4ճ~&awA]xrC#t\zu]M rgFa@Z@Z%TjS~p]Q_p" hfь,VFsE[oCP=hrRkP?[NЎQ'[:)wW )є&T/6<k=eOlq1q;F~1G^_1! f -ŨB==3HfckYB1 3Ynp|CJ1gl (FW1*/WNVQ{0%aҥz8[<\Dq=A̬J#,Z0-tsx͕\ke0 艫|Grg/q@pv}Z;9` R)sԬ=hYP9{2ȓ.XrwO76aj/ʯn.v[.s24 oC$ bI[#=CdQGfd8{\QC_]l; c5ݓƘG6iCb$U@{kOƘ@s<7@zDV S!4[P8hLu벚w&i{ &MX}NP+=K}c86! EZ< 1_ۜųN져g>:Y?B184cD ΈͅVjAYlf^oSo9i &ݹ- ~}oa~eǤ'M^:`Ti\}͏Rݛ-Gxrř8^_SQF!cL`OXQӢu<~oo\fk-aO=eL`m:KPT2c+j{ I#>|xY|iӐ N̤ʦo"Z_3>!(2IZbSxhz)q$8سr*G^ 7CU>= LM2?2J~tK*:և)Qn9TgAs|ЉL-FRu8rojQ1`83<$\UY̡VLfyLM_n <'Eȭ.rXj9-r?ȻhEErx-6dYm6r:Bh@j-dk +JL2 I'(rr!4`(*Au*h[~z$!hTpitry \Xè :4qre a¥způ9<2TiŷQ̺/G >Ѧ!{]Rs8U%1OTJSI[Ŷ('@=֥=zXj;Z '=Pƒ`,HO1`dm_{{(<<*œni}G K|_=Pp.]3ꎠ{8|!7Z_X"X%lNz 槱ih.?Kۈ}ω/=q@/0`j\t#ʨFFdS9mxFͪiMR|i_y9HDxCú;v:q3O Ļ nC]wGO_JBbEc贏sqOOKZ/k,ڨV hItˎZhϋn Zc',/>a7DF;# ~M.` N-ovI\^5LkPEdȶ'wj??ŴGLӛyej#qbۤ\:;񶔦i&YqH_m0=;ϔ4R))+iFo  }W#Hh'")7Ҭ$`FtXQ@*hKl{ {֋rb zX&Rykܠ4g tf{F@픐#[\; հ. JoEO|;c1H@$ʙAU,`9thB &&Q$Sr?wk,#37:i211+.5/E'j }L3ݪg4uM$7Wy+ c ?eBs4`rh#qzgȚCD2p xU?ĄZ^(dn{H]p|SPz ~l~%-CV仦!QێTZ2OF&?BˆO %'n#Xjd TVpa=ǹv8 }8_IK) pFg`VI2xou-JH*21*g!eJ:e| #^ߨOr}ISnd !J`4!zfqf7Qc5/ko[A }PaS_$fG,҂)g߶[ݐIkԢMؒ9$pnbڶ;qt:ߪ'x#9C }2 heXQZfYiIKT䙼 KCŸ1bNLv0o3v#3xeo:&AtK[hT}9EH4k}j~%Qy<̐zNl(ce>QV;2 _eZQ%~@vyB X7hm6aGjS0Hod`t5sI~XJ"Kmu#3}3R,#FvYfui3ߨ 1/<hw7Ֆ rD!dR)iF~ (n~h&bw^_s6io_e,3 ld6r͖A͌Rо1=7 tc#gF MŻ 1EV7 ]Ȝrޏ(֘NN۱qح^UE㎔$Bd 6N6{0CvhY!M5mG] |ÇtZKZxi|5~ 5A z]!)+E<ߪg4hzfy%r7b$,뛮EG"9vR67*$1F%!%ydh ĨޓMgcT1->4I}|쿟M!w/= #si)ǖπ >&aр&5vDi =˧`r:\pYI@l^ >'Уw]te *cȉ[SVaf 5\+;n & Es'flʍj_wP]{ \,!6Or bMa-'RB!gŲOi4ftؕO?d4>?{-N_G>.GQ^lW7 4l+d?1umf,ZH1^Rpw-`54bαI`6~CO,4%2 r!o6Vfy;EH"qUtRAR$+Sx'4>2*έdm2<|cJ'8Eꢂ&MHPkv]5M⒕l?>ImVk9n_=G,M:&;xIUmK! M-TЄϊкk*)sg73O(2ZUp8 ШRzrYA[ Aδ6hR̮oPt  Y8,(_OO'aѪ9L!FjHFty/e4Pa4fVy 9f^oyD1_mBt!U/7361r$R}i?HUtU%#pvYKv|_%OOrGFeա}7#;X͓ %!^DjsiV'/#Z IզZyq+4jmR%c*L/ق-QtӼ {f+ƽI2Ȝ-S NeFph]2N[g:U_`jKiy˕̯E\ 6\>b#ņ~T.}}pI4o\A!Te+Lc j- fs[@mˈV >MU/H _҂*%)5VYߑ ]00<#=볺EJ&\_(ʪlȕ" %ǃ!خSGn,!ZJ1$_W؅_ dZ²,Hڪ{j[ fh}GmvXhJ!?anK Xz1PC*J[pi%c{V1]no\זySKW\:AV l7Z&livѪyl>@Oi! ϴce9 wZוl!ygd/x6Y~i 5N+'Ԍck]o7 kU[3`bO⇧XZ#V]dU՘qYy-8N،^XT)3L 2-!o ,wSS HB}*e[b|2h1{ݰ\|cf`U% C-!4itxC]9nWMU撘2a~TP]pUrtD9mމݰ=y&c^` BGmUfR7*/S&:C |ty}P-:fU\Pᤃ=jGww/63ʅ yK&b)I%_j&$b+D›JV;3"'F@eoظ㟖sSV)HC4F9_|e]f"8Zcy铺-)j}Nx6BWRjq&2Q2 DBur?]6Z3JC h3u#Z_'91TM}1+@ngyz<5.(ډxƚkUE'R>q)h" tDmnn*tM%yIx,) "Dh<9i=m'L 3o"X%:xUL?)#ت 9,k`넻a\f;` ?<3ibgKEq @a'GF7y/"ԯܓ8+=󣇭7/a%k]0^%:4|Fqwٔx9u2S7R6 4x>M$ytӚ MZB|pĤvrO })M' D 1ǰ1V?i7ߦĪvzJI[]j͆_fJЄMBL %{}rq?@.@C$t@|a g"=a0mō=`s#ByJe}魐I3NIH@H g;  R 5]-7t},֕Z8EHF!C٧r^Fq[:5cuPo"x\/)x0& a&m62t%/jK:FI9xfi}=. ].5YT''!%|^Ǝ4vl*BYt{#$~/OXL(*GX10P^B\3G-Z1~7Ꮷ1 I%D@0nA[T!xz<˵*hc/3;+ D֞hLJ`tmrlsJV]VTj<A`Sg,ŕ=Wat6qKw"c%+qŁL^_HIfjeXAŞxXev;yҤ!K%܉Ge"3%/- ⨼oDQӠ񄋃 8XߧoW{kylfKQL%|IW}tT_;aS_E!7}? $xԔ-;@^G IH0`I1W6^vMn@)$1C1 13E52_O1T~aQ{%-Y 6=?{G=횲ƑO9菤`ǟPo9hϹ `eK$ !w?g#ʯLصhWB W{*k}AEI%' yL- kQy]T5&?O8LU**ALdfmy%5M}B:{x9ۭUUdZ6̽=͕z`3+phQ*HB+qT3"ij|GǺ?kܝBYhV]%n7<[t{Φ&jHb lM`*/g>GGOjbv{?ZjWfѤUz,߄igbg7,Bfd{,4_DhyVTlKK›$C]~]AH_v\3ljSduPmE;$(,;w,#KQn\Pk.+0Ʉ`g!2Kaķ?wII_gKaUr_6d@'NhL`zL9瞔R=< ̼|<>hK-}FzT .[dUe m4ܸ ctmm|ݠ*[^Ȳo?] vqthB۹; It  }Ht3 u}&t(%E`]d<5D"٠ݾ T-FCc!b( wvʋniq[|I iRm&D9[{SAn$lwht8:8/{V&ˡ$#={5pacΉѐ FJ4Ssy;Q3跜 [3D|v}⤥a}c󆱫NLRk6rz)U)o->3M.TԤ\I \J?Lem12QܮFG%F2(Z,Xnz_k~3/kdďѾL7n D=C}h6a) FۑKLMpÇ| o(. 2|J/RAP,[CJ>Xͥ KG!YT*#-5k=.on.e=K~&-@k11P1z5o6:J'-lvE|nG`;{w2x%, )6r}s8qHȺT$hj":z0 x7ӀYe-r򾦽>sro׍Pb]|cf .^nf.eVByxdW F&4TAJZN:Z]!9L&P*p5萅:ݓCD96G0p4Wl2Cr^@ukZJ}E;Dh>gHJ2]`"ʐNslMÚ|6)7ir,u)@?5dUhU c3*uL\Xh&p!Ĭo!BhX7 gV#1oF+|9? . Y+.r@L̻ j|;99Kq {qX x n>b h&>b$e˳#p` "3Y03`H2V 1 y3NSM7k1"9*)xڞ XH0_R-}uq<2}0OMLp?:vw&M B}Wwk[NKAnx~(A.E_fb- KF=BUgK~?Ccyg٤P}M'V|qĺ';=^ }_;8lKLU'nn]zê^t[QC99eNOu1?vn)Z{:|jKg}ݗsrWh:y#BJ~B~X!yy3pRm۽oJwqa &b  Q$C66G@a#i% FY@$8UbLEwKk{ Kxܱ2"0Ъ|ɦ`۶GIWWU0ª1AHHfBI#[X`}URζ'݊.m-)ZyB-*Fc*~q$ Ϛu&n1X>e?{hoj.=?: ?YŮsIӘh|~FٿΓ,Im!W` wh> ;^/q9_\eS3qYmtQ,验`xïS ZY>Fhq}|R8l6۩K}j@y;Hؚ`#wj {z{Mr-DHTb֢j7*n6ЦFzIu I3!nR%&`綤,ZSKX_C@WhK]sҹWG"cP0G>Du wxfM\ɩѯvB)6I.N|JEsmc6V#rq;LySp¶uFOR8J7tǴZk'-v獃Fˋuۂ:k.%4G_mgڃ8lkI_tZOgyQY 3Շ.]P5\ۡh햀h-u+הOДCJ6Z029gE"*#ËVQG67PcJG!wP:`%hKy7Zx+wE WBͦ0xHR믿̥zQ]_n%ƜEi8zg*|Z{쬵-;6$gzp"0K_E]}s{Tdh5%>@P\<7SwXm?jRa[CǚA%;ZNpp@dN}G3-ֲbQy}($r*lru`fɾ*}hY@#٘̆7Q7zjg xh%uc[T$sP:8h9lj@zWw1W3fs!?k+Lݩe}G2Cv~Nk uh({ ׭dU:G*dYph)CrԒ2.Kgwcƛ=b$ĭfbsr3•0u` !*BRZҜaD,_GjzGQl:3mٗe5Lq|#ݥb;I_kAnsx~Wh##!|=Ij];Y/VT֠>FgIuA8y5M?F`=FNemNP|=oub|ZxW:a@3Cegy9(@d&GXoP^w??ze[_+QùR{l j}>xmY0JTXϊ:/btWd_oF-q̧)<9mX#quCNJFnLu~, %T]UP@aD0':DWeޙك aKd.mBaEj`!iRDl9(iUSaz2;NkQnA1VkJ3x>SS8/jwә`Gոd_-%eFie48|d-O%7 mr0Ֆ/'z m 4бZgT{r_Դ}RҞbh'$jzӛ2*T kL@Uq oݳ2RVp\3Q1; ȯH3,4)F1-ݮ_[v@ɞŜ *ZneRE7{3VP:AXɀԜ!(pgn4ㅈ׀ Ck}o a&bеE.I[Nz&S6W]EWAۋX]NB"yZ]aU;!HtFKRX;yH.Q-QHJd&X}PNpF29_#_QN' 8_S>PROL͖327Z\2nEch ?/Dzdu˖fm? ,K^IE(<() j*k6ٽ1*'u{h)>z)V{5$"4bvíӦ齗B}M% oF.|LaCJ9Cp(la.8|dR dv Z(3M*1H_'E.ù*g5ٚF;$14FBb,fGν.oЃf5|Y HUqSJCd: D|D#JB\ \X]g";/ $<7TӤ;Q߻^J{Fdq),j$js!^< 䐻n¢.A\|Ξ4 ^hX6 },omL+vۮ;P1- FDn2$gMJUM7fA9]遃_I9˱0&V|*_yH1m st|zg֚fiWzJ97زRU0apmoy=Tjcp ]"ilB&{v6$d?5=3>fZm֕Za;9k>*J 5hqGqm,pv>ﲾy:Uk&Bҍdb/#M^s)\+Aa!XY=fiz5Y{ XYT zUNi;v]O#Z0+I7Sp> f%=+cbT%A>V&}0& IOMgR/'2*Bd1UCvH/v%GZH4{b׿mDGFw\i4~(ClFhSzs, ETulx4*}3^hi gC7e18"9f4 _OS0"Z%B2Á<=1ಎ. U͚֜͐ VU 5@zǕ9.H ]'t%O=H$w] f M6|Z{BNgM7z}J$S*Ym}HU=,36hT%܈z̬ )i;w]$O %Qj,Fyz9=АJ~LZL)Kl+R4b`F+Vp n "/f<khٽUA7ldsm]|A4,e1$׏3H+ZL'k.2CW>RXGQ;t<ׯI38pF hlכuyGg.Ґ$gI}ͯ H/4`wiDd՝D s9uټSj; $0chj5U3x+Wso)L_*9,h6voZ\Yh-D|RTBVvLhGfCTN7Ξ/i0DM-|/"Ո~ٺoh$>? <='X/YvL?}>EW+.El`!7ZY4V*Ga%P\T]u&t&7aK\nj2-C~M*4_b{~h^}`OfIk9kܙs ͘XX &|^b9i'2i 0 gk  )-:/ݼ&0(qr?s*@fZ A%!@Kqf٬pͤ`Y \_:;Y 0 T3HC2plY:!KR}HaW {KoT0gyRbmI} ` Ofre-VVf²BJ%8sQ֚1ք5"Om}M5cy>)R8w/r֝+oh nZ L]0a d\x6ʢM0MxæM7oWϖ!lc^9!^Z@^':o>oaB&i;d#3jQ}]$1wj發>,, d%cx: ^o4făS_otzW%'^WC+ҀlH4n^4fl9ȓv (RL :ԓ܆,Mަu~y?<+ƍ\z;5nBsQԕ_ m)ݱw\u[ ,j_@ ,B(a -D 눛݂xEߡ Nab6kJ,]{QDr#wlaW$flT" JROF~t=)}Ϣv/Slƛ_) %>](EF7?=[:/׎fy͈ccWO0t_IeO򼄹ҽ9}>iϪD\Pv t:aw98ʙmAȿoO˪JEm>f,oO'jُ8h'·VqQhg;%p {i QRSPoV+Liͭ86G=e*-b@'>LJyC58 GG/ezϑ Q K}8:G|PiG2uWݨ;8 7 qMus.'C;A)бŕ.W84jhq}6\oُ.b0co0gz,I-Er}Eڭ80v/*b0{xtl SX_IbJbru,Ⱦ81~ d6E[;L= 9f9K)sJlpu!Upd8GJLhRr "0UAY^q4 ?-_*-d((NV/mW3_u5Yq"V"fCA&cWf X è!.=̲& w,1.ҳqf~Ў+e E? 8?EαT# (l0D8_?^܃{V΢1cc=fz,#6z oBhLh.:Ոb+d:*CŖ9`&?;w'EeY+Q"{G9l'p̃8&!Wl0El17ⱨz6άB+ 3=ܖ~wFؾ5%Dyom[wq9 =8cVȭޥUCr?ũ8Pug:̚7Y?gI{DE1@q(3a47bMK KorFySu'mGMenV@7߮4ʖ(Q1`^Wٝa0]uq2$ ;{V>d/v7+I5`9â#.oFytP#w^w|'?:,rs'3f@8\ ~tulme2߮gόq$Ot,|7_ԟpaHlJ,k(5pcM m޺Α&ߴPce5oi;bs~;b_2W`iCtĴ^[*0?zaalMG~+CИ έ# 'ڋBٕNȨ}4ӈ"*7ݜ*I>+9a?<>C ^~:!(s,N+ 986Wws xgYryak; 5kJlE[r4YH Iq4/IUB:QRǕ9M DéD" X@'q{ 6y`Lg/ 0 fBAt 95-|r`Sh\DGUL(Q/=Mn?ZhUnkB>#xa{a]f2Nvrq8t~MhV6Ci,Ϡ(LJo*|~jEK@0+l"ܱOx)nyM>4 4} &?6STg=`2KkUjuwqkWs>; E̓dw~eDfb>1.y*G>!SWoB&;Nuƍn 5nx"dYwq<#3݅$K;F k3"s:H1ٻ2m<qƄгIB_#.z<#g}; K:vcz+6tmXZޙQCpbDI`_GCI*edJNv2uj%hK.G)6j#f&$'۩M[vy) 󼆿^?>OUQAҁr:rq7XEwZЩL)"#]p#P$2B&nyV:v?ǗȶI?f97utR Cc;$d2@8]#v/HkgOmn܊MEz̖ m?oppjJ "v̉ ?nx?k!Np_[|*Q. >-zw"B->/ U&Ƭt:V x$Hg;،e^%?CNpU|a]ܮ7[NK3M[tw+pe9^xvtƨ tzt-^C~]z~Y@'8 ߽qNCR]9p@5-<ܜ0I*5J+Yiꜥ"L1'#2-)81X%4ks^U^d{<:@&*R73`Ղ/3g [­A# \iU=${BMU쀢Hl}o*D AP%]&|B,gwЖrW-C+kZ 4]y[tᠲ!Tj/xB6%*SHKiHDM)e,^}C .2H_3YrVRgz§m5`V&4iiE#p k:\Ȏ۬kIyAYa(uzʅr /ڸT_Z);NA$_ú:mb >'vᅴM28e|7g;cdp#\p0xwbA ԭИ_SY)]O4ƪ5@Tpr5]|f7ϕ~P9{>2AnOg*W!rY`liojHbTJzEק+aT@!sP9p9zY=jYDQΙzj3B`O2#n9*' 7Gmt(pma1erCtF-iZnu&$;~tʙ]9BI<-z0/kΪfSz2~9d^z}e; $:LV /Պu!z&egBwiĶz^\=Ctx2NP/X "=˟/ﮩTYuґh1$]b=s#[+!aOÐ'WE09vtЎYXe;OLIި-vn7 +3PgwAQH͝dyF۫|TAM0TBGaU,#w4`d\ _]Y꯸IMkF#V(O/ol6ĩmd#,?|Znz'G`WVκ.|5Bf׶c?Zu:NZ,]R|JoEV4]uS}F4x߷xd˂ ,&1d 3@,2O@;Ja#}]:ӭ7-nk6'3iIwAl;օFYu-z`ͷudi_'eV}P(VCy+^raE^`>]{IϽ".z2&_04{*LWkN`1s 2?CC&e?.1Pf`n6x[%y}v]7[B4diK.ig :Tו PXe pˇGoDb%#_A*nQ6*aS3)(Og$u< 僬Çg|68t.bUq1/M,ߝxѣeI%;{YZr u*/ҴpeffS J''H\ HM4OEU:4X)J? C,q 57eBÔZ _-xݵ>/[Aҩ(%Tp #n逨٭tC1MpʋOkێS!f_qތBHDǏ3 Z@ojֈcQq&\Ib-ˑeCUy'XOfPQ8M߂fؐ28^w[X_ME`^ۉn׃gcjI)Fҍ@bD]M@|`P{Vf7fbقD. 8@Gv,͇a1( kZvk *۩ƞj_p8?_|E,ZSK[?F;TbQ͍mȺWnae|(M,@Lz!PPv7^7I)h{$\7ug`tJ{# "!"TeԐΊM*EUR?Vɠ:YLM.k{Iv 1Regs5XC!ב0/'1  :zY k!5ĨTZ5E1eYq[|2&~z0a75'TF3yޖLv#)Gt!qZe;]ۨN|Pib7bJk'r[_t #d^lk+:lюfPqPg=>(0g>zuw~Y9o5uUC EU@e-/O/!?í8/uW{%CEN.g)އ֙N'h1%^DyߙVd |iuOE-݇yaY W9Mװ5XM|("IYGu sRh 04R~2Uj&풺O:A Q&#A\j9)묞BPY Y"U&XIG (з*ޏZ%Xl=s>(/b9v0l?Qelu./+m䷊RGE(&Kp =!`MF8p^JVpMd6Rs̶8bȩ{T0*GkeuV`*e8}UW=#FD> Vz{K#[W4*XBͬ'\ ?rmirl >.Nj<6HAbOF0=RIFzF3wAF(4՟ +F3iiĜR!Wz){̺$EK"M\XyPX93V !߀SՆS!6O^`Զ/vI>~U@@΍Mdd~veLgлٍ tVHZP]i$ bOߨ[AGK8c =ur,n΋T6k>t㺊 f,Μ1i'ky~Us0Bך9%W.#<#)bl%=ii) uMJlH@ 'R{kQ!B5]J]Z9= q! [cYx̮# DC=-t.@~*6zJpPF^\F.7YSIη1 =4V-&fw]${eDqbUz+fN:'[LTb,/%fB.6Ąqw y]ft6Ib'uA_5:ڶJl 2!YNtWt/C[{CIDv8j0JLo 7^H &0:# ov1<}b.yJ*bM$I \}V~=#2H̌7~fnWU`eKߙOLD7ѥ`KЈcƃ±(Ŭ)AISC#"?5?Ban ٮAsN~uMV@^j&8abYwDjœ.M%)U}FlYc*d3Mc2・l<3/7}|,'L9ͥ:Jt(&_pU^h`׍i63q-ȱ {驹xb"\H d5DknMSmBi1N4jwgNmazlY!y~}r2kk2؇/'~}ӘdO$YL71OO4gbw&oDz [$.,<\AG\6!; x iQ. U>jU [|H]S-O;;fЩ}2"A>4> *lHҿ޳. Z<9.=]3}PX+S^S}n/9{E$ثRy:j|Gw[kDI(YQOɇe@p '^_]QhYPʜQ69061oͲH3Gq0[c;jo^vd|]BRNd/k˼牑B^$b(wuFǗ_yT{P?'q!S;7-?3d߮l꘴mMW!Whc+He([)-k{(r"9 8_q5I qɆ X뛿3 #ZN^C/ϾlkF%8Iqț(nT>Lby 9IsmHjs9G3R7BSiRw4~:BO%5ZP3;{`=Ė&kNjrZ1YTN/hŠNdm[a}:?= ]6`oי9n7%> Kӡ2u`D'}[F @OsXċ˜ɱFbsIcAH> >9XnKP$q$YX>XOR 9Ax"l!,yZ,PVv}g$]R ܗ)+rNӗ#.q3%3@9QY/:,+ppS33:c*NLN>6xp]Ӵ<Ʉ< fY,4(ї Er.Z-WW?0 tr/=Whh_:--hi$ZXiӅIݟBġ-(&dW5N'LP49z#9X1u:O*- Yg/[cӒsUGo |CiN9\ߣ%xAFfQ+O;r5x{{G.Ǒ93mZ݃N *H2To,78JvP\W .B;93`*T= L`)Cm<hyH* sqgbv=:sڜ g|`!JSZu6 V_NOqgj0%GXV p{\+W P }g`b CRjZ_Up6#ޕSʥL(S]3kRE_k_1ZvM%MCh۠1%^lԦA(QOd8BLFcx&B]'\v52?v4fFu #=cw1 Dx99*/S K@H=_p%q` )!@$ԧRpiz4P.Q>d\'܈_-!勜 DҎb-ig5U.칗ksT}4)aK[T 圮&$B*-.DoȭB6Zx"-霴PdKԝ̙pO">9{"K~ix?Y%=:dyVMS6c^\\KscٞW蛐ߠzX@ !^ff9U6ϛVǧlgήp 7x0e.[puxp{ u&- 34P^o*keZ ^Q$p޻L24-toq_ԩgj62[/K/]w+$:o$|V$vCmm|ܵy @j=Hq1 G~KɁgF3~ï8<\ Cۓ;PjP|:;1e o" om#0 ؟gME߹0 qF_RH\;&zz s0bT͠:' [^ 9(9yS8'j׽)>]P7aSlŭ4(zxxKцmyj%hXo0 u :+>qh0;6`tUg4bry!m g jv# r/{Y-?;OFyNi.:/2B%`o l*nj< Şs] PDtѐ Ľ]&j^sKzLoRx=Ak /f{r;b]+3/BtuoKё3n(5Qo$yc<pƏ$Z7c _$J҅NU5~Z"U֯\FFj8L ʝj~bZS]f[ ~|`|;@oH/{|sfeMm1RQ .Z ~of({<9Iuas7d)V|)7o 4G|fa5o.JR.@ߊ(:ɍL" #zjN4mC)h5ñnQ\i!gɅ`5.BO}wMn+2pmɱZHz? /" fEp&۸F$ys^/73Xu eoU ? \TC oŽg4NQ'djn}F#& px~kVsr|:t_im4CLܧVSJ6sᲸoାtފH(褂H z#3Xc-"tf9a_J|Wʈx)Lُ#]RRTQ| C{G%W|$/,-DtxX<Yklm{SQMoA/nj\V)L]Yr )`(/8wj٪2\/c6Bū t<+9/ Gw6sgn|TΉ}H0mQ -IwO0Ҷj<2 ,~#P?D#Jz3*ϒ&|cL1 5;§V-Su sɞ! @xķ,B9^>?oՈ˺%u 9 0OGO *:܁s e,/hAC^B$wEk 4:gFs6Su<\\Il-莿DzvL2ԋBK&rՎAf>%d h1(¿M6ķ f:&x礪ZeB&j0{>f+e3 (}%k2keBkG#N^[`D0Q?G 6휗&vUI)cJYttϡ 'tj3g̒x*#lX\h ɮ]Bb_F,sN).w=2uȱ\GCd "BkgCEJi? <Ғ(V$(쒾OHT;0WMxs5Ǡ\.Kx.łhYUWG*$ue}iZU }AӠPH&'n*o_b qX< 0hqj7 EL$R?Fg̈́Mew>}k5u![1 tFbҚy_-س$cVS%12 3m4O$J]dz}'k 4/_u~A%sd} #Wv׿1r/K:S:\S&{U~K#c܍1eg67cBbtHq\J s(6ęd)"#H/04VЍhς׎Ԇdkʃ 41l?zԟ>؅CW|u0s* cjkR$qlRb1ª}HFK+aY)c-$(pWRQjx>2*ٿFXEZڌ>'։M ?Y 4ֿY88~LxņMsKH2$hWYF#~zkRCʄt:7. @&qӍ\r2xn;^%В*9 MI\?sLA߶%n<`Q0jRz`y`%Lr)pNa zq&$Vm΁M!Sckdgߪocَ3yDUBē1rǥ2y@63l\8skk;NKò铀gAgDl7>8Aa ɧ\`=Gp'(1Ŗ_&6#*.A#/f"g9}zmGb,yµG9P^AZ;MTQlU'Cf[[1hU1^̹6gXQ6Xm%h>&xUYgjG?? -p!buRsO4G=⠠ k WPR%GAc>+j/5wq<|ߦñ^M^Օӊ &.s#1? y ó'(f*j" dʙ|[9:DR%EFtIKJ 'w-Fe{ rx&P_^}32~zszJ'/nN#.1$-XW ` qR- 2fU9TK9|qP*pK0&6j,pLI4O%:2s{P˵9x!2NѴ&Dp$֠>7J"o'dyOhduIG[6=XFm *Kw53TF@$3{,Mg…Zo+2  ? { $Ow;@I.o^x. ?pT#-.ѮCÚXŝ ӃO޲k]Cl]tEv T ~룈3th-/e֕ӸB[b7.Dž40EyfZmd1Pm%0:|!M LZ::9ѥ,$8L%Ow| y&jtG2) Kp]X{.OK¯ W ﷯3;vo\)7Euτ!H A̓H6 = 7ңDz8(\Zxjq=)9WIYdzS n5uɃS,8;kg`Uq,YZ {y0D2[7ԃ #|o7?_b&2wl^ k Q8Ż* s-J vh0/zAhs2o }}4Dq<y%D(R<7V~xG̏DǀcsȾIe/yvw8amcL.RGA%`}fF5 E ~Ln gK?C#<n 6"֬0/ZeU6>bS r8jx[\5Z7:i9w#M5q.q7VI[\ɮR{+|#:˨7 T髩W8azujEGcôxBeu*b'}2-Q@[ ykd\]""Yc3kr 9r 1vc l+IϹ`F3 (FL0ÿVbRH^9/f,`daO,K^5.^A&(%0:syYXN!W&4_pLBwۋ@K0kc8I~6E:M hAh}|h}*@^=iD 2S|҉q%vu=>[?bg(@uV/m\c9mM70|zӕ+RV0N"S@.1o辸o(^ ;C hVUNOhunX LآQ](|{B  P~P7gb;E!j6&YN^ ĒYx7'uJ!Ri0v=p̥zz)W-P\v8CiuAA*}~FpDlSv1F)lS@Dp҃ȪˢKT;G`+b&O')~ 5##+% C%fI5!|x ) ,}BA.L&[s=G-*NbzW2s`XeeU[_k޵lжPR0#ngO./&` vE\|Pvr_jg·ڂ@P@$ _ܤfةނ:{mB0wR{,YiXmގKx qF D˸lN!/ *1^EA.+*%YƓE"3hul`m&cO"d~t]w(Ca|teB Xt4Pmnj_sD7$zlL-]t}bJz ^n$i qx lp>A,InWNv~Ғ!S0X^F9jVH3 ܀%isF)@^YziMw;؆UJNǹ+Y4 E޿A#V')kf7d-=ٰ2bLPr\HbFd S?E&;'>^=FErͺ'N"}'f>u}fނY週~ۣep{Oi*A|OjhH:N!£Gf|AYՍӽ֍|u5_G f^S ~\R'݋H$P$?8Qh4sCecyJCfl,<` BBYy{{Y}Vn4Jx4y\On; $,hڍn>|MQUCg:/^ZP\'1W=uQ9 }sSUs6nф[L)gGم1?aR@kQGGXL0v-sT:w 牝V@ƃЗZvo! <>?c$_;Rݾ }}L Cq"M/U'Hڔt)IDr, b.[VߎzO+5K,& |,Ouz镡^^RKkpG֗b;Л߸Hm? r7yBeW1<8""IsB1%" MIXR .C4HZ*n ^[P(XK=g+uxQ%7 xKb+wyI:S)}98rs±]T[A;Iu7IuRn bBLyOϫ3ikp1 ^! V2)1Ґj>J_+|bKKl%>9V?0ŋ.3Y@ aj<`Tb9:gdrA m14|n0{['dBE8bјcxO`C A,*7w x/PBw);y,O MI,KdAup;m`Ex1BϢ/03q!|h+r3q8Șe\*=jԲJ.IL2xM%1h=yжQW#Bt}o#U@%f(BkrCL RGXjDPдY31a轰N դbims8<Ŧ1'H4"@Rxw8s^yGŤFSƉD"$mp4^`ǚ mG{O)-!3:;T8EZ ]B̦(pL1"GI|!GXZ 蔡ͶIWBm (rp\*L@5m8U Tar?;gvyUiWQQ"uz,D4s;/PY;=ouZi"F3k˓ B q5 GR&Jw胒.İ.љ_TmQrJ)$f .l{g/Voc>U EMp'Ӷÿ4D FgP]`Eb4GddgPUFea6JvKRD4 O=w߉dW:;n>K y·_~JڢkɊgO*Kwb .~ M2{9, ڛ:dlBSݲ;T z^5*`ତ'c6AꚂ; T3֣!O30swz{L K_qVt_c#6*m>_6l^i*?ku#-0@'rGH?4O^顽+A(#`ѹMEZR;lFw?2^B'ZGVԶIQLUK5r$kهz أ<19pi_8r8F.o:u4,cʢzV`Bce~ƲZ{4OSOOVCTF9 {|ҏ-s ̷6//l=it_Ppib)¨IC;\-{2xuG=rs@/P9(x-u+r)(@{!lΦNb3eof(\}hT8 lwu=;9~y-l؃t[iUpK1 iQ2 2АhLԎ{$kOF@<'jeOJ0`SՄ҅kSUӏ؂V 0Ok6[g) &۲,nqucjf ! WsdeL"DG*m\a-)hΚCZEίrwR IJ۹AT jnn !¯MQn%rHaë?=Ǯ5?3+ y5QLbaaXC yrQ40~N#U91׹2i # l)ѱ w&Gsz]t=p^B.Lw^\j RàZ)|5T3qGKqZQ]جOq_2|oBx`Ğ{w刬UOjs.0;Pj_F P6 a"uA]UV%a)IvY+>-v/m.XZ97S03`L,r g[=*P_6iC9m(mOn[ȐS|R;0]=nnQT*+U=gxl֏T5PN:bO+TqE$yرy0_!JmьU&/}K&3X1U Yf 68a57)&}nD#$uY MErs8g B/N^ǰ>im>+;ب+թ|Dd"Rmh(FVg|XDܺ n>G Eyv*T* RSᛠm(]MxNk8{X:p _0vXS8'opxs2-"YohiZo%\V]+K̂N@Ze 숊8FjQ-vtU׏8) ɎΜFYz=BGԌQ[ C@/L'2]JŚ+Yvd;9amJ'p֏<1.`pAt+RLe5 cҎJ@Iy,T0s ZioX}Ne_qkM(#"}{l3a6@)Vf$zir6uu ᅦ-> uͫUs ,30_ 4ʅFCَgxklr wTUp;"Cg~OEk#i=AlNAw2Ȩ)g2Mݒb;u^hyQs%1s嫬՘>ιU;Rw[Bs (F{Ac~Ve9X&?Yar)*@0E!0x=z FeWS()P=x6/s& #S{KW[rAS0Xf dߺ_4hћ&_K95wS+Scԯrf[x4#]զݫMK$?/%SJ+1H,xߎnl8$u"imϫD%tòU5Ziţh`;1 PGVC\KX`>4/+Vsji>2eL~ l@juO $+~R[էnMR?pɒg'=^/tIiV]+T?>F2s(b!Di /ӚzȿYmoJ2&{D\8 _T!#0-MϮΞLe:>t2';BXw ϕy|ƢdsNV ӟ#=K$/zګ1q;2-j#?P `@`@)1eR~3ypAԓڴT5T~m9vwaszW`{-KL\t"Rm#,|VL31D nˇW ;p.*@֡-;bM} L% ep_e/0TO>L> )BҠj ڜ{k_H ڐ阐g/E=~z_nSb"Q.NC~%G4T6`v_~LЛ rhYf#^#ArUVτ^+>+j]sV *- mfEN}`;E'#)pmO :t 58qNJy$'k!uoNfJO\PcFsB>; q@8R]hlAD;YV@Χ@=WiA;"$df 1i?oACz,b2p2%)o 'F@muw 1YqmфHIqUp{ق/ʆ)G6 a,Y > _օH<{N V*>Y; |YMi-++_uߏ: %GB?!B! .cUBM/\X LI+ ià -:$.XH~׸,KK*M@ (c2{dM8κ3KD ܗAYsAbc$=|Ae3;%Pt72U r"*> nWuCZva,/LKQ-KFxFjπlAZ4nIۦ23{q=0ҝ>UnZ \+&>'Hv 5q[TMPwX:,bŌ'zdiA[,UԚ}'h_PJ^q+X~=ξqt=z[b& k󾼳=4QW@A9) ->IQdf(#Vv֜59w $E> 3bd&̳kyx+y_`)*Bj= ^CA:ָ3nBrc_w$/+^2~9zDɚAsتY$BD۷1 oT?a& PU]che7 QTv {؛u0 +R |D_cl@>(!F0yм#0Vy@SbMrkLj10$q"bV r0ip\ժӓJQ^jH(ӟ sommufD7ZE?\YXSדq7Od*z3 \ Gک8bj"I'MKKWoy:k2C_$ijfF.ӹ$nA9te2QSߚ"5uNHF efV( 9q⫃ 딷c&Pp]95*`e@RŢzfE̶f%v *=k#>=hLb-͚=r5Ce] Q7n:"M7nTla<:ۇD; v@}kxa6idbťaW}<(H:ڥ򚭎VZo߿abO'kuO97vanރ'r>p|K5];YKʽ }+nJ$_Ey!`OT랺Dxry"-U^yjZ:&K_6E?䓖Kqhj<*j˫㯎 D.2 $k ΪV;3şdg<}Kbyv昂 WMm#=Yi1hxQ4V\Y]Q):W-.nn]w|푲!Ze=^KuP=;uow|2^dL, K $H!] ZoW|XɫY XFBp`dl.2JmFm{qiߤ+Y,O.݃Y,FX> 3CXL/Y`P>_\Gp Ⱥ.'k͜,'@A`!4:,H))Z[W+xp+𔓚=k(itf}72̑Cs,!;LK: j|DςO)LRCgfm :':@)F`u|b ՛OKŁ-~y#8p(dR E+-%$=rcsGWoChUO|15i{S]kw$s{?Ir\͛/F;^hh4˔#siV=vc ?SppK(mȟZkyZC1{z*hMz5 uhe2 dnU<ӞhӤ}S9N"S9 Sfl)fD-ݪX Sf暴|wwW:-- }"O*zMCy(d#fD.ӽa?f2x&3ojYwCMߕUsH @~(),kpv'JVC׼[EVLeP$qVȃj4>AD$vM("Nb(](3rB%lJD=4ر 䤠Pڄ.xv5_4:#TFq%o#?BTOo]c_opi~,ͬv?( ֪XeeV4ϣt]Ì?TC`o3X 5rPZh$!@'gҿ^9h{pEn?v HL2#G侪wj)R8lx`Du"RxYS[KUn+ׅf?P"rI8y(n9νCmsM0~zGe?ͲS9*GӚnw0fnW!4,iL?a/Obh@&E_NHUSb'~)0s&rJ('%eJhx+nd: I0nG'ʄF^37;oWU?^>oѻށ,R(l3?ۡkBW0`N^#$ESAu>?E\>suRiIwxں%QtrqHRo߃AWl%MnbְL!VIɳTO4 |KhSH;D v-]}̿N&1jx11 G_&ݵXQyn\ك"o}#/E[1(XƭmeŽ0vz 9%yB(yCFq+'-l7 <,6dN&iQ-R7[(ŔϙpXgҪ΍Ch52ۧPXW#Įx{\=aU pɾi%B R3SUґ[)]9 ! 9(ST'-Ɗ C])*ym$NKR06]Qba>[ d(?ymMSGLsym+boy#!yL*=VV6A9KR^GiDsq(q 抾, >Xc##cRVPsw؋|Aυ]KƧNN ܿZ]U(} X,.}*r% yYoRs v;ˤEf #G1/!Am-Ci]#t㳽f]zK1y>3ܡ?hg/-wýd(PS2e-]^OGt*̡xwށ>Ӆ{a|i| H oqGE?VT:Goߒܠo &?fnX)j`XWi% d0MUtF L,q97) _C@ ZKF۟mJpU5Ӄ>8"Z@ AT(i 7>h^V]:BVw5 x` ud$r33;/]֓w˖ :Kr?xUzQ}}>L*)/Y+qjUΫKWۜ,'Fltn681IA*. !  x`!-bk`_uK#P fL>gbƼV0E)Þl_V﫾DjC(ֱ9U_ocCdLq$MaRok%>fQ[:6|KLA4JSb( /#N˚.` o7xPH_nmrg!;)jsP%Ë%W1Dك*D?ױ;{02ہ$Dm$+I &ts/` w͔5WI Vw!R!}$1seJu\2L$b5w(N{ig[+;ϔ E: }ldӓcݵ2 :a VKլ@\`zeu gFePchK|{$g~e%p(8z׮^4I?e@e?M?X J 5jpz46-I3"C 3'Ywg3ڜ7=Jˇ mWnԒ5Rj?Ⱥ0<,R;{ŇEzxpfNލ(|>/PN"ޟO8I"cSb@iUpbȻzנN 9XߛkNw*,uGvF%v$2S!x8 Ҕco`hacm[sT0 nsclWe߯DuO@򦵛~^= CCΜ$W$9&곊8}q?H>"1fEB%@RBcjUS*J~ ೾ N o o)cFa;,m!/B3J$XAvJJ#whPAi8R^Qiv}V!7##䜫pw&̫U8t:&Iu|qQOdI]0]$_jڲT ±Ʉ i$30I1*X/A{Xh i( t"b^s~˽!]qpKve'z607 .R]Ϋjh=$yƅN2ҠbN=2WPg oU%F J66AX7cEU[(7Wo|YɯS~|=('PSw`ꪑb^@WU+rFk0^>;p=-յ`O,Zk(Qo~e> 2@Mb-͖30DU"G ͭF驞ƶ@.|*^-0V#0Z,/@!%Q J7jXU΋݄\N;t $0 ߐ*-{P]/ta E靳Tw8թ0wf>( (ĺO[qt@HV"=/2h){ilԂT e$Ŏ}Opf,PJq^$%ߊaVߐMy[Ky xO;"&.׽ͭ\v;}~j&?-!'1k?Qm7Ԁ"qnH$̛݀p ObDE-GbB#a߫)D D4 > -֐D)E%>,jXZt: b/WL3E2 ΂2J YfvmV/=#evP{y>-*oQ9&pV,vC=LՈ(,4>V}2?9$ϟa‘M T&!fMUP(9ʝWO_988ZЄ9RM xQlNC:%:7Bjt? `9&Ǹ:R|ٝd0ιGF]OQ֌ob?X|n^$<_FYS9f~]E$R݀>K! 1 ײ#g3܈>>*agN*ZޖNlWV6R.$OUvL dzռhNw.627u|Vo*Ә+ Ǻ ۝#Pd-V<ރp* P3EAw{="5I'Mtoe,I32CbEr>(7й'P $Z7q cF' C n W]zîS$b; %$,e6Ω t-?kî+吝n3B`篺,qӢX-5Q03:[q`:n:Bmvˑ^Q',x m#`z"e;L( {q.V\憑xꀙDRX6FƭJI@.&J m)Gs}N,>BX/]TG oؠ.2}|j O%ү^5/[C}JSRc>;e<޿엛ai^)\\NwvMΚgz5T}7j9Hc`W~/6.xj-S>1-td(f6.tqzc=1Ԇ]"UaFv 8 ,UBL.W4N9x;Nssk0usDFs0f01t {<%: ZX("$k4CܔTCp,89]mb>Y:7[-Ҿ:|3'a+fFX\E< m/_ N.=巺u*/G:[ kوDi2"lZF 5rqM= CNB q]"fФKZd PZ1:&]D]'lIbǻ˭~gdbi90oKj=ʃO4쓑]"pm:^F5ZX <~2Au?fhiu|CX>c|%CRC25'%{6( wUZ jZ?T4#7ZL[n/?Q]*gfD)( D<{I݉ .ҵh" '}er},@íϭ9DJv"圫%.C,fF*spв6&}lVtѐND]JfΜTpfeT*ӄicU]lB6t;|[{ yr]zW]Āî*>Pk+da]Atd41KTM❌q0ߐvAw="@MUE8puVEX`#;VY] gKU!`rGu*gZL^>N7.ݑ)īHz !};23мcJ} ;`(FadDb5>kM!y,ԮW;wnJut!m{Cy^GY~U{3U( hENeAL AJ۞9-b ˠoعegͭ#Toz2a/o?kBO5۪I1=hɽι8tIVm"$Po6TtWͺQ?;uZ_kdp/tU4D [1>vVڪJa8ƙAu+=طv`F딛oP 1rJ!_sL o# ,=a*1W0A/1&x X;"?'Τa~_[rFmD. ! VTtu|z20%`-φtrbT>ckjL/n"^JحߢT*V&,+(M-̥Mt0EtkNJ2aҍ]Өb&+Yf[(n'O`k^?VòsoPۛ6Mߨ%Ս{v'{}.>@,J͡åOrn2^)NiBsXx+˸!s8D`$5: L5 ˕A>A(zlep@weYH:ŲhǠhDҨUy .=[?c }syH/ 'L\tqP8.Wtիؿcze7[6|٢ha: E_ K9wRR.3(-8m-@ʚ4ys$:Hs::I2|lJq4y]! ǩ5c 6rD|⇝Km2Pfd4 zzyMM!8àvlѠJgI[bَXKI ҧ0c> Ja<>H:"oV0f rZtiNxDˬc!nP4-ݾcm1&%i*K}=k Hk:j %} o @A}x0x.[w_U珕P!L )c__L)[|=/<#4F—H0 `JݗpZ/ RT\RRX+j V0# .0$9 䙹Z@+~3pd yY8=Ζ'[{APTa %]X$l#ӳCЛ ثhCƀC0pToǡ@~d"IتJo۷A 7i[]L ž;+˸07-NnwbA٩aEE4 :`5GQ,4C>fzڹln9B;zzb*ՃǸꨉC}:Y՚ճj١RaVĔEf{0Gwfrz 8HN2=V_2Gߋ{f]<ٮ -hY)O_"$,XuM@؟M@lKw3y̾ǘi^Ip&GAZGr'EK_-FU7D)ծ>w+jrJ.SU<EJF[*\J66$TL`@ Pj"]$ө&i`v#)0t/bpI z3'z=rb`ZeUԹ)7OkIJa*͔4%SD,^TG(_xv"ޫJ@9 D!&~^%Vx$ p<%dʒ(ZB*NŮdz Vf2@sR}z$h0>&SzZkm̠AN F7Zw[!5IeFtRMGj<X}^Yy<@H VA=Š;uiʘq|ɭre7 ޮ(ž_1:9kQcn76LU+*,t#\(XGlO]On˦(,]ڽ V_AC~s飵멸؜2LzdYԷD3im1GJ*l+@ Y! y%4|sڀaFȺ}2g>31(Vw\&@>s,G`.a3r ە[]('h:s ȃ\v$tp(h"p+t5wczF9Ln <8.=ί\Z^{h8찓ov| Hfh)3T:.lP(5a5F ёq0%R1X 1w0d}>Ɵ,Nm;MmmWJ[2#Ǒ`F UQ`wfKl-Dh]8AEsǴM '=)@wJx&i wQܔUs0_w6+$(B+k.8w^sc \oJDa~Sgj'6fx b;Kx$.(& bM"zYz:ft!{a2_>M%=\6LaSiaYӡLF* %x=\]>5Oc>tX/-BXrzJ4kڞ|_#`JH>.tR\Y3cphhq!qLL44R'KPB?>/ׄBGs5gEp$J}*pʤ6|iV 1=8&y}'5p-i@.JOh}JDDajN>L.К=j`dFa ~{eD L o&k/sh}5r. CV0B%cO!+ǖ L+:\^~Cf=εG|>m hp~ cSmbQn~k‚Hdق"&(`ߺ!zY >ruCXX{eeI]u"D4kT /5l"ifK{R-AT +V-dR=@S.LEsdbss:[ɔ{J3Qi=Ɏ7~QxWD٫o&F jNF4ĜOςspGu3 ~٘0X&XXWItj'0%<ߟ/ Y _W$]vP$3qQn,uVnN7nP~c{]7*ē Jdõȼs1Tgꩽ 94ؘ}oi"ɤvJE_ihEO>xUef8~0BsWε7u~ÁQ dx;q:F ݑmwyUd@B2 uqٮ}, U{- c^M-*3|^a#D3 k3)}.lXݹ. X`ե/^+UMDK]7-СahXޛKm/ o{s{g4Ǫ B5hbvgߟcb:(M|ylHW`hC_U7[R`0zG?['<=j՗Qa}N &EKxJlVt$:ԯ((N"o*j_uNo;wbZ1e=u4)Mv2^t? M78s'u 4KѤ#޻6X2c9ģ%(ɤ [D>i9_:#Gd :œ#|,p^ӃdQ19;SK{LΣR2Fshx_}DaiE5(ƦFv hx̬|q Zx5\EݦMh A]XjTPūU+&Ms׋īdkx&Q1;PIcͤGq}H* 7HHiA{ג⚵ބzJ-.L4 5يnn[bMyeqK}(UI % N>sq*MW19sjy,2cw  vQ[ 7[|ά ׿2ugvHq<8Y+Хy~F4-,$s(ȯW_fLT$spuSa߰bv,9 Fjdz!ONQH1el&9z˳ίܫYa̵zYAn|(U <,$YU,YwA=zp$łؔ$')xD)R:p:K[j8p%NkTdsjxExrO9HhJx4CoM z#T\akFI9-G7_25Iqy[:UOa6w4NBqVYPƷ駨2ڡOWyqĉ-_?6XT/v,F8ğXc’c3=Nۇo\^(Yڳ6$IY^%/D5ao%k>%$17k y ) v~xpfd1ۆ_<7Ho%[m/2 Y4^ <)R9/=5XDGsU&2ƫ[3woוBD-UbJ ux)~#(4Y<7~1KF*e 2k'Kw R$u0K.(,BϰL$%ϷVGᣴۧ~Eo mGg2R 8U?M6sc0mp0HUbv!|\U|&)-nn:ck1ٲe֮s#1Yrѝ &J2@XԼQhl@>.fMxlL9ć>1/F f[ )sIJn@rK 5dsGuBWi3L|f};; A'Otd5/p}ͅ>Os EB5F(5i07wae ON΀?&> Yoؑ2:&`Y&XU]׊%/E2C"q#,0 &݉ B75ȩbz 5:,ˊx&m2to3x+* EW$}=Lz( w6Ho֥SM>dm'֌7U>ؗ''%b)|N;I1-kGm8\ pX\r>),{;8pʖ3% U &.JCsWB6<`jڞ\Xߥ{ .|~[+:p _1ߔ+t}E#qU{*2𫠕3D↤nYXԐyx?q>@dcVnVnrȚW-i5:UUbrkUѹMAYgHhٖVi]۠g}ȬyXORe+1đ?ޝ_㾎h<7 JP> 1\VG%-4D lU2abY s{6'aCh,mak|Z09*ŲDEjJo3&`!lqj6yA\*4r#p9!Z\,o5LT<߾^-Pa iou_AHkny w~IfC1q+ \4Xk j^ƣ3ir`qB/,1dDhBԋ=Q[y#pjU%8e=bQJWC s,1]$I:z$G>I,/i[y0|ˈD?S+6KCf#\pHx  HԊ'JWg=q~:&;^VAز^'l%!S@_8߽TRmC:*a2@X*@D;CxЩe f['7n3Hϳ*{Ӥ4DZ[cMmwKrq𧻓3"#++Ry{--ju⦅X-S$gKh#!u0NFOqSUDhOW\ݬ38s5ɱr nˏ,`kv-|$h[Hetd| t '.-Q ylOw4,85##LB/V#.FW9[sOFnؚB ՍS&7MX:XMa(+_K6ObѓzFʓ:]N?͹Q̶݋Z1߁g$]nk[x "8kXH*Ce.о=s@ ?N ^1H[yMe˭A_Jy'12ŷ^/MD]*mtL6wd#NWY~j}OʠMF4e['2ixI 7ݭ.Au(簞wتp@oraF 91 q9 4&in)$ Z$ U"4zj_Z{`)\Qx]KH1#j9A 4 t>u.":iQ}C[gY9ѓhJ̉~ ^_tC#?Zs4*yE%9O8m$/z۩b}]]N{Ynei2ڍh9f˻h[ Ua3OT%;IK2*˞qDZ.`nOA4aAS'T!H|Ǐ'>13AgaY7 8*r\ӈ$G(Ϗn@b.T}ztR`caZޡN󬫹;U,rAz* ~) +{'Ŀ:%˘B-r_Eu1r~֞R#R =XXq$h[bg%ɖDFr˝$}M8TISmwQ?}n u h4"P e2JzИ]`"4P7Vr|SZrE虧jO;TB"g)'1G |T}RP7 9HĈ-e+݄[0ޤP«:\UU6)8rԯfZӝ8 }Gy*5ahq&LʎMyL.JOUЬo奯rg )[D2e'$'_`y*oſx7.Y*t/6'V:ȘmS$~&V:F\*`έ[W_z|MED)UvV qkL *\k9ޟc9n] [kՌ^=<X"`W-kg_? @fނjU \rCԡ )l!l8U e6bI#peNh.6pƨd< iW;\+.(|P |3Y>J:WLq$bӣ|~$if=SYȳUFT=ou}Ϥ  /v0VE]UD܏kDÕ59扎ֹ_Oh8EH`]M B]x>b@a+2 (gKFK 0O6a/e5ytFA,|zA>˱ks-Q F%!v쓜v롕|,YkOjAV<vfr!bD"RLAKg^kԶ,-P ̣>"*#[Iid6PFk8KݻȞ9GSF*CPC}ӢKVvλkEnyBV_ZAõpp1A\rwbr6Es > uܫ:%OnFGQ@eD Mi[4n**-XW/JyߗLz9GC[G?cQe?<2MM]<`Aon6,_yO૗/g/;w36k?s_<1,%̰N2GB"! )Ő !$si.!dD>xGfz۲g~~eQ7/pVsѯ Tyȑ2C2ŕ>)'8A]GM޼FzN7,e̠0!mH{:7w2zy+b~>iL`fgVF 8bevZx_1uKY6VNVe&˿ap aADTH\a&nM# ]zq*0x`PNnx#AcoeEmg >fޘL(^gώ;JMMiyNpA-{^(o0%L!lk`\_ ^R,DBycs?s P8zu"q @btDGfvHЯ5m+fdK\Lw0PЬf-v]I }?sE6.a"Z<79{&ܗ &P/}QSmji<{*XVK7lIIKl=lȇ5FD9¾6lC"λc̭#__WI(YVK&ҭ<` )}cFvP-&*W/ј] pM: $Î40cMԹo)|X#ZWD#N"ˍr5Ts3I}fH.R~6'vЇ17"|Uӏ7 R ƪH'aO,.'XR+) "d]U f=r,$FIY{F8"%'Xɬ $jnt19҃g| h?@9u$]n}wf)1Cd5/Q3uWbQ~pRf@?rU7m{̲ p`ر Y T \A[880HE 47-CV8A+zAmў.ɠ퉷oZA6@H=%Pu7l&^H]9V{ؐA4Ʋ4}JEՕ<#p4n.s?svLQO8g k6[zj fU |G8vLmXjcՕ!xPw*'R'~,̖YQ U:|x=^`_~-A<H=mD rim%c3֔xJJ 1&]-R+d&-SU,,|$n>6jU`Q\u zHCNk1ŵZȚ39Uh/I)=l0办:f Ҧ8Vkj􏠫 ìHS;|zvG׵D]U EJD u?]cQFPꙇ骕ֺ0̭?"[5AdNxd|G8(B=rU%y/nnc50/jKP_>t<#D:wΓhAdqWCJ,}8̫4{!ԓ(08U*.)F!(sYpMOph3K4`q>yjIS:ny%&!-iHXyWv@.^ Ž>5*SC|7&E(I#Ъ?d!T9nP̠A6fBK Xky654bPl> [?'Cc9jXBe`Zq]$VS-:CA䶹+6>W:o3`:0%B0zQalBz1λ'3eV_Q-iC{DlWEk4."jZ8* yOX3l>aedoXA o5~a ˳Cl[x8tϿ0tsa0%ƣm%6n_ī {l{3^$ܯr@GW:Q 1~ vpK @N-@n҆ ''>>A:Bŧp:vl0lmshnȭ4 iY1wB]*t$ai8osdNP+Lp~C#ovd{4rm ,RrydգVacA4/"HvAubKfX"yMfa5+<0J"ٴkk;QF񺑋XAGE@']H!EƼ(y|fȒM({fǙvZ.r!eђv%+֍Z&5%D%-vdMf[1}\Fi;J . u>wqQ VIr+on4N>2.H%]$ʪns:ӧK'ij1W{*3Hu/$BRA\ So9?X+~PRGcUM >:vE#6ҟBw;O%8̳@*&1X{5;䂇hOEIWsYFi) ,{w_em S֌T-a5o kȷuGn+A&r %rHU [aR5ueU\#W.# {V3*"4DnYv+!,%Hv8LeݥK=gKĨVHVk줥`Ze:+6cʴl]lIOB TK If vZĵ7MYm|#ؚm*yNZYttà)n5$Հj0ug]Q&̔݋}M^G (Rf;⼵&7(uEhpI$ؼd5!C`'78H= 9itB?>N=LXw1xY0p!t4EJa|lNW34O-(=jhw˹nה tյ~GPW4vi6Vq Z熿Im]b vx ^# s=.H- |Owrsܰmg\dy #<y$SxE`")m;JYWBk.~u/*X2alqEG]ef]WmV%$n,|dpCZ=RžYf7 9i, G"kh1S*'* V< LpVq"p uk2o)Q Nzm9&,oC! i;.NRwvUuZ!DV9\AehV+j:ue /n;9F[|c:I3[v 1֓$?NZ7ʢHv4#鮊+g%t0>:%5=rn {_9+~=DFle[:oTZUwXn,2<\)?Lozs $+g % PPp?e }&J8(Km馧.6"PPBSsn 啯~# t,ǐem5ـ瞌yW?CGO4K&UnPJ<Lc󀗏*ޚO#N)TS/'o) $]C)ݿpQCtw1(3zi}I_bbL~K?à2Y~͓zW&"XF2ˆg^5?!}ri/bDXˇzUx@MWu?D1pfn |آ;!' $wx %K"O^š`J{)Pu(]}j{ VN n/FŨY ge:j 4&9®iIƝTVlcxoߓ:e}黔.%Y!\O”rHbT{;!T p@I>.m=`$+/A rvt\+++y铽jjL;\PTm5z$Ô"Jm\8b $3x߅T`=i*_Uw͈X%9%tWdG3(3(U&iHz;`!?.<=`dߔk7t>ݮ"6@G4.1~پjE<ܖ6 y;Oaj,rܲcޤm)֊]Ç&mVuRO-hWjFȳ=+NqTS= k65"OEU,U ܴ%=5Cŗj\mwx> CmX ?9%9A~%I~i6ZVfJ4~ҵ̘vdz**-QD[Hx#8 /5Y.Wޥ10fi>:V7VU5Zc?$/1OלΎu5}䟂z||?nsn DD[@Ƶ22x[G: `7TxpȳZ٬O1_Fpk@Enr7G? oM:$ ?e[ Kɖ"#i_7 \XG~ΠP3a-y2zGҢך3LeiPWsucJb"EY=K& ;C2cAr3T,2'EHOɳԇm9|Cu}+%Z.w2p{fw%/HݛFS/$C2}#JEQWCҀbw5 QQsisp"G>{zR}Ct/eΤtLJa R.z(d{|Y@ OcP1*ǯ3cwCżzbSVCwJqD4gF`莅ckBPlc$us[m Yr _)+qFS%~宵x<2?kN?;`:,tEiCz29< {Ly4 ZȂd糽ܸY>.*߁WdYV Ҙ;)\ۚ89 +G LLi2+^R%ύG~#hsK[W+olfZ~i,`*Yxo akOC,lo]o⧍4©hZtU]a3 `\tԤ]~&rx&'g;2' P?/>0w7GZ$&&ul=}WTG&2_ \Q~+=S96eV=fJVދA2dl &oK}qҗ].in3r~r]Voղa: WC;XE$N䗊\a3Dn|E OèR~*uiLp9ס gNPc ٴ!NB( +Oʛ ʈ$)| =Svs4B mmO+7k;Ǎ`km/yz>J-k/ EѾVFiמ&} O1e'ՒK6z:&I󊺊 M^ג&9@0"4.]x?Ş'hmDXTMǞ'O_}eN3!vidؗbپY-bFԶ#eE3 hn|q7wf{qJ+|D,u0bɻ 7=rcjcx"Lb{RH])&ƃ"c6uN{`S$+cpJ*z-c7v{,=EdN-t^o7D/PH)(߽d̔G;TȊՊhϓ:KtEJ+՗>6M*.-fVzR0C_*`Lg|8k1.ZuFK4iekrhG/?~D[6a>j=b`Iì5qEnCE$iku/J !B݅ؒP+;r4wR3 WъhN\T䠚;~M$xM8*?XS~P?{tX^\B%%IԺҒCnH@><"?11UC4zA5`ԃ`vHSJ+;EYwvS]xbyk$Y$ %,93ѿbo.}~) )Tݥ~R P){X%T1*`P\"v U/E]z&r"{s4j~$ιJҲ"l zW@=1Ux"lюFpBU0}+ͬVԾ䰹Q\ WсqoSǨmbc'OMOԉ\uSfx~a/O( L(fim<<=HZɀl;k9,28{Wb?cbc7}=SƒQs 2#x5_eSf*yfȥMpC rx0lns+k xsϨ%'}I[}?gv̭i-)" 96 |bdZ5^ Q}['24K8b;j ٷtYC!?1A}[VI9};c~xk@k(D2(.Jpj3-Շ1rZ|dE?Y[haOt?S/jݔ\=@:ܳ'0`ne>P_)Nu*tO^f/GjE +0D+d] c0ΠAciFjV<!FJe>V"WUUwMX误ۃȺƗHǠnBu{?*D<ȶS;؂K6i@M_^eۏLmػ29}AΏz}¿GI@]%+:;]6;xIÜ0Hڽ#y>g@ZQ-W/Dj3$VWA2HCh)Xc!YY䁔9Mv"C<1~omĒW6I!e#cӘ_q/>nwٕ# /ڶv;8I@ߨL39僒)\%+@-O}c/.}؆Zwƶ@7LE8t, ĸ1&1J0lΨ㵿&071vQ^JO; >xi,y Vmx7q"CVOpyVc}>QUjX0eZxܥY[.L&r؞2ztAԺo 9h,X¹*nnc|[]4NmMLSuga 0{i+Vy16hVx<GfhU{]Z!?xރ12>6]ܮ_wxp__ⵙ> ݒ)'#jvWΦE;Sup0498;GT\28d pc̐_8|>}A b|pdLeVLI!7XV|r# ܼqB۹h ]>D:&1"`n.U V6Lz.w\7AU#'rnlK͹RJ{#  ETk Nۺf^ؽ̾2/lgA(W?se=+Q7F9I6 Roמ%ϾVc,f ̾ZP}9}(dtp{}}[C#U[|brΫn(ۀ-wM74}i;X:WP[B&36+.7lmFyd^<rܟ/!T%HXj*$w\.bI!lVퟲ6HolLƣ$/zWy>_~b|lԩaߺaAh%8SЃkcYcꬒv:)%c@$f/Tn|X|?CwM'2*ɇ=pw٣Yi:#g z]bAs_;LJtӕF6^,V9(Gpu8"?Z:<@caIXحQi5M0SmD{7pej @pi y G࢖ AvW0~UshzA)Pfvdl A+ZռM=|%Xn1mwt|}%x"K7>JRcѰRG$kdk 2v!G9:u0؅Yhڟřw\%7`ް܌ p9p5H7RFJLnjSBos_nƖyspw\3re| H(*|EQ ʋ 4zal%be Fruk]NTK{C(45hPpi Xc%eW%<ֆM;z3YlSS3bU01Zsq!LE˱RT3Yx3eόdByo$Hl@m|ȟ,ME V[#J5P?n,t>:$C"J6Ѹwٓk\ )SPi ;X<2yF1Wwj٥du%zZOGU%Rdۺ;)%C #vA,(G;6|muR9`SH-p6+P5e+jS`1^l r*ҭ9׶8 YAM1;0 D^w,a-6m#]ʝ֫~j r[>}NmC6]Q<<^AdJPmbm^,_PGa.s`- }1t>Ӊ7#rA2hϹRB3ms~*%V%Yc[k BJćՀ12*fB@\0mh30.T?bU^Wڳ9Q?8, 癖6-E9C&{Oo&loU9܏5N](qߚD$L`0X& /WV@HDT~,GX'H V7F6%-zZo nVyRTG~sъ#TVZՔHI7 +Zvqb$L9G'±I5'ҡHvx]C k0@֧VqO(Xtè[2,"Io7[opw ]0XKnjgCe|;˙ R2lNz'"2?kِ SjCVYkk5b͖#'1G~vږDƳQf%QęsY/?iQ\ 񮭷z`Gd."1YW@%Djs`m {߶}6o]*6l#䒵S1IH{v K^r3E;csh(o6zi$`zu4zK"]} f$88*) %mK@zmykD=@%)mDE[i<$':D^Τ{eY~}yTсP3MYrFl6lCy~ް;\~2%ӐDISYi4% rtDjᛯ`Oߌ에8#sҪx ulhO6=,Fjٯv:\Q@ aa;UL0Ŋ 0Bf!Ep×sScX]h=`sn'#NE=+ wD qE2E 9k[U7ͣ0RUR~]A*K8R,i$[4M\X2yC ABW/V@,-%yj1f$x,ron_굎 $$LR8 znk5y+U Y,EKAvzߡ⊏B\+q_mE<C*j?jZ:UAž\vT06Ktpy Cjv}à-u&\Qre]Xd((C?.@%$uDtdpl.JY<^dyϵN_n5|`Q:9B$ʇ ^YMȶ2ߏCҤ4>G8t1(E`)r6mQ&} sa㰛 sJA⓰Q~rFT~2Jm3h>hi(OnK a|'7,nC^d8-7`ãJi+ਈ.M>nN O >AoO}.]-΄ mwx1ڶɫV;M>vb+ØeVǯ1b3<  iM?q)"B:S 4tbha_…*P_,JL,m">\$Yz?NS٤dߵHވq>귢x:C ɄC(Έ"ˌ7G3rb6St) ל% Ҙg͉^uU^rGmA~R? 9s$*;R`Xh2Ե4 d@\Qz_*e\\pu=4:ک$^[+ͩhj]|ĶPfϥG|6:0[|T+==?"qfB3\"YvL;W|6)!֣l(Q;>&Ύ99~~~}EwnSH=u~Q[?|'y >w=`@#("0i=+#7.>F* ]bEɠ趂[`FFD.٬ 8*$;6GD'Q@]g .$%c %?5yU3'7at]}PL[O;ptXN[5=-vf 3W#]:}5A(>,TP]:n>}VvDžBut[ƕ3w_3˞,N[&a[ekQ[H(gضY[!' v{\k g 4!m4ϫ][Unu(\J UJJY=uaPH̩`Y \ҙQcWYbgcBgK_cvCљ7GW-#0u֎wp:tӄhEi-,lV.f]NˮԀ1M"/ kr+Khs-.zSX8Gψ$žaDimW\9];tYc7+6NR3ⴷ;N睹d .HWy!dq)[ uzwm{&+'TTo}t@N(8']/r#RqCx-Εꄒ2lֲ63gA0O+Ep!{peo* ȯ'ŵ4NoܢXZܾBO@̬d@SùC}k#m<TN6,!O|ɷ{9\É>X,\K]'U5ԤA ]u#EU"uU ѯ6 ]W^s 9cX)l\!uEEO9;F ,ċ )q"L/HT1}(eJkn7=X |NU9 VZkGb ԯ8C@!:XhQp3qrkךހew&_ ܝ*Udٽˑ>x5Q1 0&I^:[RNó֙ih` $ֿ4P7VĐ ͕(lk6Qf]Z!GtNHhڃ>{ja|:}ݣwǥ{n(4ӵI2P_⥹ڲTV 4l}1"bz҈FVڧ3}׫ YD8m;!9Wv?*HXn30.*!AqJ rEn@܊C0hPx?>v' cN'f[eFAxw갚 ְyt9hlϦ;KVJ%$;r粉'U"e*vA"Vykyb-׼Ɏ Xdf]Ci<HaEُRKAe&<+Y>grq B*T ^:뜳'bZSY^ZK' ʼn KD❸ݞ?Ǎj3ZLC4^f2C!/Ҟ]#vk,`.cRr<$Dr؍@s{t!֊6xCFr4eʵjt]bԫ"2@"\O\waj&rgŦ@AnA+gϺM)9?`&P"M"D-B@єj}j"qMϱ`Hp-j:M$D]3\@=B\1ř!>j^HLnQ"\MPg'`Ȍs3v%M[ϫA#dy-ZkcU[5!>qlħ{B- _c@`A:R?v$_s-V1b#?P)7bZa>vg}:m9 ̷i#Ҧ TЛ9UbeB.$>ZwO,x+|5>;NHdp~p3ɜ_;1+'??tؤ%0dK-:S8x)5]aJ_͵?ĺ,hql*[^PT,'_;$pxvI =oD[ņ,t kM4OD鵾ԲQP_T.HPEZ' jϚ!#t0:nuQP7D?#0z911Ry{"<d|sj^nP8t8㾭\Gk'{Ɩ]+{UľVQyhm!d*-k_ GU(aFY*6e5o"auJ,_z&{ % Ӯquz}lmY" (@0CTZZW@ Ǣѭt{(:}i4a59it/Bւbעh^OBP*vI ~ßCto*5.&u$@$\t&=ւ5\)R'h W)x261 d}}Ô!O$NB6s1t;CP$AhbR0Y:6zQjee6B\xݚײ%˟k%#Q[F!nA]7MI $fa!1ly+Vh&Rk߾+u$9b0^[0FRTo(&zz%t ^Jo\ 3xa1V//MCȸڥ= gDaZD*$/N/p@F93yr=Cy?_IjA*:Xo:|'^(Gur֞,5c}j@ޛ;0Ӡ1>ݙ*Vμ/5%ń=?ݦo %ƕ>!۫`5^:܇^F{1tB&=k0wR\mJDxYS-SH(rK^:c?_Fj9W6^mXS_D>Q(1tdr*3>}O\/dQ}qY5edDjl=" +R"Uv! ! 0m/E7'#,We KmDx&NfjH]M*o ń嵲 Zj_wr;o-K2!XPK2T`PQ_4Drx`\.Y5$rB6fjZ-{n Xљz6 ;LϛMt6ގg*h^:ߪpyyIʜ!cF qۺUo.g+ gDdu]8?Q|hQi=O{\lvabE`~zNug=2ŭcd>nמH3,p`Fyͮ[M/DEaP+kJJ֣Ү."d>ƶVeV+0%b{mQ|^`iqNFhaBdXw[~j[ L3k|-^gZpGpZw? šM,X[!%f06 j'<yi H_PTqc HEPǝ*_-SnQ̑Y !LX3l w3YZW%|Qd%b)۰%V`Β"r yhA&,o"hD3/|ro[W]iͿ"__fފlUWO~ECE뤸Za׊|n-e,c,,34ũL5Cu]Ҫ .wlgMpq^0z8}3+ %R2n6W_ !9T꒾$`Ѥ嘥(GA3$ '$BItC=*# )tyq\\Lztă`m_渌VA?v# Q\#Zt26a:@r8\dT~MZoTplt`xm'=o}ACD7~/P4C}Ϲy%ZpBBg0"V@%|vAf^s<׿} {;zk-9pJpn}$,U*?PB7DC-\xgxܞg3>őKI&x eb-#%#u8a,Ԕpl+Y u8NJѫ~܍A7|ZѸ;RPxA*`2~9q睵c0mtaO #ܒjACs7\U6+} zO(<}t 8Ssجxa.v?oF~W|S,էTu _='ț*Y.kdbŸ}== ,I~!)MY>'4$sIAKSwMX:ϱRUOuCgw<*Nl".dzTZQN۵]zu69_ن* khWvX8GMT˹6ROlpe:i0]mM!Pm'5 V+_M|j"1Q`8OW` pLb[髤c`޳g^1b2r.·yۖЅ N yyi w5)0\SW{q#חN(|,?^e<s DS(B{河 =JJOZt,#|} Q)Ð((n$c6Rl4 0(o>ҟC~MKFʷ`k'/9EH͍Eɼsltw|4!+>n3(KE*YUpXwKcSlkKLf=*a_9COfBnAy ]okf!¨ŏxPڹ .tX:illYVtt8'ec\LJ-_̸f !Z*`)LL; 0kaKuϼ`3#'Gxz5n%$"-"[L-m+yq(M87Vi?Yv#IebS<'% h9ȭa9 ͈*^2!7Zh)XT$o G|AxyPf5R\@ϴZ8-W[l@sQ>ă<6𳈪`,O]}g: $oe=%^d/y(yĦgաs1~KM(DA9nq}=M()u Fap̚Rk0q]$uIޗn,w؞`ls>ֈ&ݤyZUg@3퓸ILA?k|̑P0p<+Rk͗g SڹqLae;8Kx+u>BEZTePMj 0m$LΧ&7]XR=]32aJF]M[=݁ݦ;?bb)H5ؐ0t$8H/cv%[ %OH~NǣQR { Z`݃lJ8 Q Tv:%t}N.L''` IZ&J~NYSO¾ %ZԾ'۪`\U i@w/}h)zIց: %c{,qij3Uq͟ BǾD\C Cp`w#YK4uEbSZ%Ze.rw$$Kѷvzz]6@/$TSH9̑ NȜvYEut_"S{ia#~8\yux{:e.q*D>i;k6!pu4h!sھ2$A1BѤwء f&#]`Kuֳ8&?׍Gw2<+/bg;)F7e~ӭۿkC95/Q歔,#|u[; p*+5= EpPHJ٬#DO*ya8R^JW贂`pX'DQ>k~UR tyA2C:Q'OuTZAZ5*{s>?6~R)l xgiBL焳%:re~ly/˿R 3{iocCw-f>i"YA1aU 6(ɝ0ѷjzȧ)c5&k<*"[%厬c j߂4Wߪsv¿h=c JcQK0**mhʡnj-z\b7u&g'kMYYoޟ#D2՟3g @^Γ!<w鵲R}%Ξ+|*~{9'33ct nd]qAR}w=`l(t!\±V]p,?"L#+MJ\^37Q.h N1`p6XR#4͋dvUYhEhGM%_!XeOr>t-c=Ϊ{hY>Aw9&%X]Py:sy'I"d=>7*ňÊh zOSq_7a]ΚT ȇw 󬾇M7VYQ:>J6ScE0u^-@-{+־-@ džwv4,ڨl-7 _94Ql6/ߩc由 a5#?7{_̺R9lY0ŅI~MA2:6xV ,@|לۧ]-\ Ym2")?\t^Fɕ;P)Df{}3LepA#f\@[sj8e5 adIdN)|W,M#K)i  "$ QVeCX;}t J}"R 7GH='-2NՍQr JgtC8?; !jnaƕ ~1* +k԰rˤr3=iZ׼ g<;_D.aZvG7JO*&@oi` =,Ro]uFwCfvz͊cEyLCAb '! +`)Y* \ v{;zg˱#Հ-!?m8nV4Y s/\[Ә#o;dhѠ?S1BO+€RiQr-?hCeS;iHiMV3Wl13,5KFUK/}ᐮܣ̓=PFHxeuiFEĆY%=I2rd&!7z~?A/=5- , ' į1|g%r.V*8K%^ؑF ~ny B;6 $OVU,nga#num#U φ?ZZhdt=Ql[|lĝI)u+[ѕc^D'!DB݆u Ff[r Y#aA\lk|de"VvxI/,V%na/ `q3ח_cW2 M>gmviaQ^!MgBEf9~2Hm|[PB^ ~euiZªde/E yM,dP'k TUݗ1Y8MKջGqJP~1p6m[S'+^@c. %fF-m"C hx"jekPGIxyƏMtL:oQwVC)HN3Lfmr7EfS נܑb,巺6:Vbٕ3cc{s~MKPH0X&#%*{-je'kEz3v&iź+b۲7{~5 ZkuO$tijCU&Wwra<Fg43.U&Nm݃1fkMGmr.:1ᷱ_/&fуa>Yρ=?=|3CW2ˡ%xVGk EClo!3RgoZ,^ۊ,[XX-K[ G,f 3$0fxvi(,i""{2/, 2˽2.\ I{LAf~ѧO5Nsi  }! w[?dWp fRr7YDO7WLЗц‹Uc;x tx!U\[`>#SrA`a:Q*zGqmM++`(iy4( f ۶,TjF3\N*%P )udddmi@:j xiz( !0l^i kXڠ *jC:RkEZr0#sFȻB,ʵDۼьC/Kf,:U y<`Ef?X6iTvf?&G1|r$R]-Y \8 ~+|?1g1hFՃu7bV|Xh+J&iR|P@wœC~>P78OEch>̌a j-eu IDޮ^Ӫ'ID tmmgsSk)zG饾8;w V~NM+ԺgTsyYoT:T.no XmJ-ѧذrF{?@nnKw+`kzN&4 ʇ'')1"Lv+o_bl~An-wsBlx -"էT`Rc#RpV#$1 GDӊ즈RɜxѰ:THJ`5W;tK+"=ĵm[^fY7:3ܙHqR.x t_ 7ÏKw9IP6^T9`<%f%OUY;}) xꫥ{{? Ss:r}isažzvnW:h (gҍa0pq$NR#gǑ8Q$38qƷ#ouX2%xDL T\# P!Hb_"Qr1~jӜ7$܍Y&ݭ@.Bx9ƾJtC.Agд5KG3JeB l&^[}Otl~ )wep{g'XpL 0Id'xr_}!dX]TX4,>tUd }^5' ϰpaԼՓ'#\tewU_pL>n'Qҕ4\0ߐg4m v V4rwȽ0,[敃eSº,u)QH`*1O"Qx'!u[hhzo3mmtθvך>úR[I@d):\sQrDou }Jᒸ|ku[%'IBVJN+Odvdrć}@{X=sytV+{G%lUT4(w {L!D7H4A?0;}S1L@oHBZbܼLtHJ{0Om_Ѷ<%#֒j Q;O%Z3/&`$[T1KCXa0Ux _/XPA^ILﴒ(]Y- AeT/BT5\0hny Ôϼb[ݱ戂_LAE-3UqH~qBf*FDC[Lc'qЊa$1Y3*z9 h .WTT@BrˆH&T YU}U->BP=`:p eir.x0k ' NZ="" mK$Gc BG8w NZs-a x|:Oפti',p%גp:yK${q r:#_r UJsgRqlV~5M~dN1Kr;φjU k>VVoqTr\ e.7ޜ}IM |8Dkv/lS{>/B^ä' G2t vpeucj&jN7Pm?ԇ-? Z7IIܮRϰ"xE;.l!p{AC΍88c%:RivC|:v#" #)Q -0VRO;vt2WmSZ4HIA/R;8 }.]~Af;˓Y%vFG`<^ qt[!i"OĎ %BΐIgMq#._rC۱լ}aRp>(;C ҈M`;Wr%~>TVip> ND5oFڦOd|d ĈiM.N{){~5`q$ŏ/_TG?~pևU 1 L>[c\XWY`!b^w^|{wp$> a%x1NJe&-n6\CJ +7B=rUfȚp/K$hˬC Ä t0ӣzGhG6) eR=blH~JI[{|;,pvB @&OiMk̑-pӊQ W qvGԞc6 hvepV,tWݴySS*2|~ț2 QݴC5I( Cr/7x?yHyr:]onU9PdY= ?/1(8ƒstН#9Kd$gyavL;8JK1q>|C9NYe,FQ2OZɭ/CGQ%FUF%e-5`ώxԥ~.r3+~/ 5hqTr,O2 0L¥q]w|`A<7,>v#|۵+ٚr{1/t Tb0_sr.N6q0ďHڀu͍K ]1*}'Qܚ Gs'4)9,s02v]4Fo л9i}ٸu6YM 0?_:c&_rQ鉄֯ػY/&좹L7|l\,}E? O\ f6s$@npaGcBG8[IM ((dO,0?_1%.-P 3g7XYInfh0``] ==jP89pYW.ās1+JyHd |UJSB3qӳŴ͛uwv-ԉ( j|"SbN h&$a $6\pgS9mË\"Н.a۱=(^&NW;/{/oSWhO;~eׯSHs{.KחMQbG9չ'X\6Y!07H L\b-սNݟbl5s< 3Wv6Yx^0,H<38-۔Z6iԠ&J=%@wL.w4lYMGBQO Q<" W_ʊ5pj G.$PTc(цSHKfl/UlLb7Eݕh"aD%4Tk5HEY[ctŽ\=i^YFVNG|] O7:r.PSKv+ɻPЍ!p#-e`4C6b#Xy7Ӈ GڕL&\ÌSkNp.gx8oZUZ$|ۋ2*晭|Χ( Dg> OeUV1D`o暼=u8SR%'Z9ʡXXc%?YDjAqPc{wUvjM8yD" dnPzL'kR ە*Kv =*#tƥs/y_n=hͶIhq3>2T6B@Lߢd}&<D͘A?#w¢1ntp⦽$`*HcmbcpO :?84A46ͥmL콉y7v^G1hB/-L( Jf)|y?:M"tl.ǒК(%gkYOs}Qx,> ď%<}f;%%ypN vu5g_l6 K֔\N`NI/~ y0={b"STU (O_!),eh 9-Rf}Rblȟ\ЮlpŠ*-/ut)Թ|$v0u'>kT:+!hx^WM|I7tL `˟`FXTahUde޷^P|eƙ373<} {|a 9@\67(:7zQ|SӵuŚjq+Y$?D\tN5<+^3w61:G@fnQ< f=OQ.c-׈,x%"fG%0rny۫v6N8fp^(*;ο (Cڭ[vOb녯ceoqXF2_l"#d ^ F24_Hdbq쎽n& 4XO}g`j#kac˞7Oضae!V첬j=E5Wh?:}_'Y%$FcH_j7EduU1گ!e}LT"?ˈukA_D^._I[=0=z+D1> 2TӏYR#UI 2t k59/ nv]+=ƌAs΂Y_{fx4) #M5;D!@eVdP(f%0u{o#M$#r'~|'B0aF)}Mi-\MF`tDS7xZIlܛ5+_r o"̊.zJ'%k5cz'}! kT,Wp cb=NXCV}i&l S̛XqPG)trT]Q-i!9(ϞI 'gұp|QTq  c _X1bSHGUDՅ2j]Ø^ *PHZ$pTt'Zko"**Q[b#5 jsQ*2IЫ+/f5FGmE+ x}\>q jv:P7-٩0wnu1$֞d1-p)? 97՟{ݝ룀_ (cw֋_]xr .PIp-mȭºM<ڞe 6MГb$YU<W* j˶] =A'%,8f@,&gn8kx>݁)xde$ \?ƼU"h/7$L`:R: t_d,32 E#S\FoFsátyPOT̨7'm=f|?R $eiE#41]ߡzl%>YʶDNOlq+\<,g4uФ#PàQ8{_ 9#ia]ӳ ECumnjKN.^1$սZ MeA|є!?y D%Y m-ޗn1]aN;kd@,bp`uMqP_)ڢ;M@lg 1 EW:np,hJ3*02X\^x8pb=|Lc9=~!^d!%gh?f&hybd '#3ɤGUhQfJ![EHOI@w$c)I{KWfw(]ΖИ3]n d$))7^- ѭQX!ku/i7(Ϲo^ptam6ˌ7O9qk 5Fd6?7ˏ(t?r]B5Be8K9"LB1cs r4fj,,ot4 %B.@gn8e'v G6G6; %Z'IpLk_*;dz#nH(Ϣ"7πfn=ճ}X6FSބ:mdʍ!mܖ̴< g,3RN۶pΠ9|I4-5w;gsaJš*5W0= 51sh*$&vZ`j%ߍSwȃWe֝Oxc6aB Å|uٛ&y4|[҆ yf ED)@A7{-.歴j=iox{>y=b n^;اIo%0/`W~sd-&n|SF-|r-].;Aa XBj\]I,.aYSQs`66'^<ᡓUڂf|oJnd4{"9$p8F\M,z,DɱpOs U9X$ HPwb[vGSGvEGѲwU_K|r&m`^72 ,+T~?:Tչz~z%:-;.Ҍwu,|j҅PG[%|mZdtl5xt;p`gDeTj\bB+녧C.(^3z$3?M5G^KU:u,\Yq(@.#lnk D}*[ѓo>v!revOD%@t`xR2NDZ}ܤ"2$8ڨxP@E %3'pAH-H<`z<lZ['7NZmVB<.nؘ] Lu"&g>;xU`NM, nyw{u;y_IwLM#h] M01siY)A o߿q1޻WӺo,U .0QY$\2tV˗qr_=952o3Gĺ9ZfUNGb"y@YDAxLf6Uh_TP?bqvv tq0RO۠BidHOb,7ׇaiav(!b &lL\~ X&Jpä8~?2!+~QEө Zʬ+;`V5ƹ5+.l.P(>[Y(6qJWxhq{ tee@@MH׵%XcD6e^^;H1l E/|6A`<4Zfp> d'j>6)`n qSAL,#yV&RxveCpI9c]ie,>;eUq30FѦz/%d_0PhV^>& *yB# _ c@(p;^@~IsN,Dys7EC.PrX=92F8>%,:qW/h nahS9n[>XMFdӊv=M}(gde1ISK:en, ~ցD~;F!d4]R]W,A?=].mL> jn؁nc*e>`3֋m$t}Iɐ_ߺZúe'nkoGq(:|e?8yBkd_S&b! #)ڋwwܗVY!>?*=7wnbYB.حl>d[ v6hr6+2/-*9 d3nݎq=.Yvs˅ccgh5yxPz>YZmBӭm=R.>9&Aat,CKfUTFLJtajv[*ζcX>.-*>EsIzco8T֧10Dޜ٩OROaB'] Qg|2N酓 + "3}&\cBS|2q{8㼓A,5NX‚ዙ).uJiUO{#A{Ǟ+:= >8?FJ Vu lCfe8daZYi?%_6#:Eȳ$ɵY6JSYv:Q߯ͷ6]h)m)5J$qa9Q+t V5@i 1Wdʥ2ijS9IrnNhMEѨPNl ,;`ei^Aָ7kIw-I[]OKuj[`ɍ&)cwnp dZcӕ4.ewWm5|z<Ñ2)lļYn?:rI'\!.|A]`"eΧ\Xde{\tQsljZή$8Ep>D5 )ԌAGi⃕'`|Gtڝ8]-Ox΁JѢk5s4"P̑b@;qEQW)[aG>8jܡ\xW+qN ޤ]-ѭ7 0IѢT)6 SDxw/>G 6+ijڇL=uqY 8飄Wp]$ln2:g7#sI*'Gy-L*&Yb'mS>Џ }!Z*̽AoqM$սj"!bH'2SI)>jtJOyL:/##c]fYGf pp@GK ~n'9,LvBG_qh[ۨ tq,{F/=k#ʔ '_&[Eu#IB ]WG} wIc:AA\<_l ;>k?4d{4<]O d+ąxwT^dT%ERii+SyT{1=݃ ΐ~H=&K8!;.; U.ԭ%0fZ.[3aK//|/KozGsf4jS]j:] RPE=~{+a; $c&V]s|/Zp]~߸'QH}~oNlǽMsy݄yTG &7RrDD@aE˚vl 4ek j&;X` )&nm/68D{ U 7hsg`s!0𸦺j/rr~h1̹JMZ]CAIun{N.)F_s~c2VN|7\,X8 ]9&n\{6ϱWN^⎸0U*4]f*RzND<ۮ fX+Is=M\M:(?ysc:߱P`5c턲Jx*J[6PP(F@ks6%UOSNW {Z~Z,92Uj(tr,qВo,R"PU@BR;uD3];>٤;hw$fgDxHj΁$Ax0zadX$ \LAR3Dw[nV߁af@ u!߆t Xp{*;)y$~Zn.T%u{51PZ2z/::m!SCgIĹ,s=6%#5Ga$'D*7%m7z) e$0c &P  oucr%x"fTn}[g4.2"ΤYio$h nsϟe8+P]]h,9jo@p^VN\)G=W O},*A (*K"sQK nWc OycMR"%9yꒃ$aQr(A`` ItZ~_/?^wɴf3+FK>oF! hv8&FDvhvf88٘ǾRPX?j8ϲaS {FVD}VK#$!iSt[uԩ<+<5M Nꆙg+npVO"zSMaY,q6LKjrP}F8R ^2Y%fr !´z͡KLӓ+/nW`VS0jUa5=ϲK̇cvȞ6a~ӐO2`mV@$g:fPt2ΕW;& -iw0@aF޺:C2]J(d05D Ïn=X覭izWH,"QBU)SaZ2-7%UEٿspp,U'֡GRi,uA3ShqKC5-D$1R#OWHx2J,طm>i&z`Å#i2;e(~zpQ:%5 ۜ0-#nlũ׶|oOE |rNN(x1.Ć-IIf2֏|9i %SJ x|[)3Y!"|g:37ʜr-_<`Op&{|J;C(Mw 71sq6 JM7{$R H 4|H5mY{`# ]iWi Pt hZkvfE㰳鉦j5o P$ҽo{T.NlBq(3Y%A$* (ݶ?篲^uLrSGxPN^ Mhv>Tl4oGcʍeo &T4Ȧ:,py'~\GO]K .7 \5t)D,L./ŤnE]ZYGkNgHZq5%&9J 5 q7.] CsE[K0g [V!LfO+o4=Hˡq'6q9?. ֚x(kQ'.KSǦc +Ӛ үF|F׽fU^q,J vCeMc:uoPCN ;,2Njx;Z /ԓYo[5U@ @/W٫JKr#JT\-3tocWp 'ZEB^p ۆ,@.@$G12`:zw}Pa5s8x]_FTjr$ȷ!wjKh\ȃIՍ*G38qCv:NcCYätAo!@t<+_`@D0r Ɩwvj "WyNJ"'OK*l'`U6"&:k*: _@ *[i}!h\ VQMrn)1*"̫0" `cB<Ř>&x-8}2IV*=[ziaC/&:ݷ± JP'.O[}\x@#rDCj$=o+Tf%Qq==ZIF噔[%dI:3TLYu+ %"meu`6p y{}H *ͤY }d(RZ!p#z͑4\QS e"j_Odrc[9,|͎/?&VHDF2|,uJ{Ɔ*4U0lG o\GlBl(X/OY.]sYB> ,?Q m!k'L'wָ(+عk 2#X3oTAt*b`>_ 1A^?R&? @x*Vw-UƆ@NzD_u.n!kD\ -e̱nM#[>l~#1SCP%Q&)nnE %`VA.v~yQF]&%ObBkq B ~Ē=]z ?~OFgl^f9vM%M+癹N7'CJ^P ߙpgZ.T[ TڽFV<謒\D b (hI|.xLhō䵵 .ФA)/_ޑ;DD&N̶oBĄZ^Q H*8F -]Q5m\>#L /wn*j~$kVg ZȖ{J(& bA|CHi #ɒ (j!T uKZ5/ٞA߰jB3%.s94XTTZ{fqn7bZ _bc]S aRy޶t`Dv꺄,MmJz!1Z` BqUI6^jup+x`=>݌ ?j>sc:PT3N5w) Ep;S*ɡ&goԢY-+Eaecv7ѐO _- xtᠸƬ=M/ǫ؋Œ+|FSn#7]# !.ڕ͓2^`$C+*py3ZSҜ F1P{mvQZ,S۪5|ZL׽ y0;VVj*<80|T~nG, QwV 4/cH}fátdeITy.V&| ,'5-J% F]ТN%S&-x-m2Wf8SoΑUA`yVZ 4WN7QWrA4_=}rY;v͝Vأ=tlI'F_f}mQ^>HqY qD3ke 9 #O䵚ldUtvdqK\jN.X44+7SUCM6|3z[ bԌ74iH'oAKLmy-9꠮XOwzd`!){W jY#M#Meguvh#XȪtC)yI>ZOتhj 㽃g3z5t0!tZ@vEom|՚qD i;)7D"[M枎x#7!i`,1 /PVQEnog_ܮ\6ZU.vTJ-p> $ɚ.ڔB_m| аxO x!_MXcvB(~0)"?OKܥf1Ѷ][|ƘVzV OU UW<G%Moep,Nl|O==Zn.yDmR3-9x}`dߧ;I5Dl"c/!B79!K'f# iS4N%}W@J`XQӸ|tcAG r׿7>h M&WM[fŰ AiӃ@S(nG%PKӉ7רΙ!w6 <-ʶ;Mtny`mLXy|[73C }R$'i(gnWK|ђ}ͯMs\O)hUdUGT7i"| OyfCxh&Suf9q hynelZ-A,DOMbocp/M_d78- &Tt/)Wk&yN A*Z+]VR_&c 53=HO3wxۚ)9byہy_Em g!,XbߢM-xH[M@6/AX:4-WpZd3(lt> YF@IJ=`xܨ"k,ȊhHyڟT,R8=n)okv]c̷E--Dpw-^d^DV&@m:x|ۚиDױ2!v•S O`i 9N6w#lºBȼ1RSL4=-b0ֲJd:=?봚xYӥ.3_N,D DFl^x 1V#5,_n)B|pݫ]`kyEcua4nɐrfUv_VgJ *櫩;)U8ut96?+ދ=--Wl')Vء[cej:&fRxmFΏIK=IpP^/UeAuɿkb.K]V}}%kZ\#k2 LHݜGgw!B nv371lh)iY[3JeWC;nHMBp=޳.'ӯBLBQM(d 2ưٽ%2([<f͔;rՋ@$4% @g8LHŸݱ^:3m=FIИ+P.\R˴D!:R=Œ|UBuf|ăaOA3Uw)J$L)ZUEܿ1vCx!p E,1ܦ(cp1x>TKnTs0nct=KfI#+r|*bͅ' β, BZL/LQ5e! cJ/FC*Ơ}hă32͑Z**7eXVHcW+ٺJ0H⑻ah̟68 Kl{媩pc(^{\-j"U^3EJ\ h福MzyeCd e 3"G'yV&jby+-@ dchQ7hOJM}*@a(h_b{G/7{臭q%>1wl-=DQH=W$Rlo#uSm!f7T"]J\΁@JZðJ/B-+ /%3!m AƣfvDUQKYqx!J+k\h}si ~htA2x[u; aaK[QIJj|m>B"%`]ieFԘL} K%aX㚅?a[#ޥ!h\ 9[XYWM@_,N艻.:)V}4k~m\-q9McZуQdԱZ f͚G<(wpz4RE+; L-`ѠdCo/30nOč+,~:Z;toyjs.G}d;:di7]Z] *uvᯨb8o;qvR@w蹀Z7vfi3Z>مRT)O/|өFS)]!ِ:Xu P.^^ Y,˳Uc/[8?! <TW*rZЩ !e8@ v‹OfW,x9T/C{|%8C^-M)o 6~v1 fv=tYTW;5LBtOSMƋ!!ÄcQ6XNNL ?~RhMŤWw 锵 PDv=#޼?gT[ej*Wu&DJëg"CWoe)噬0IUxډj $q_j,$VqfO #9F{j?xר576 PaHJوy~itke֩ȁcbF:3~D[i N{mup֧1{Y&$LofEJrƞms\Ea7m :Zy4"/jN^ =DXb\U]lN͙ ths>W]Q;+ 3VQ6]-9^UYrdK0ۨ+@ƖPO7|g%` 6]*e9}F^V@nrNJVgɱA;tDG֑" .Fqe!`1+S\#UszDueh:W9- _O7 ˭?ExƀI@Dj1C NOy.Byat{@*8 ?'q>!?s,W$b8'H"hlÖJ9W*z8^(v/}F#^1ⓊE;C]oW_T:D{,`Sq F=oA9VHQgxyEצ=_͎M VF0ۃ .kT11<)wMɊЈݣ(e}uNHy05=`涴LD+Ö@&p-fj( ͋_(=`lo]rMtI[f1-dN{F>薇I ؿ]?C V[frӵUQxF U3Zl]u5]CO v8)m߶0gg6~DGj=rA[H);+&:%KLKd.̠hˠ{'I yI^#s5d7-4*mXer u4?&5j;m` frR  [+^g"dՖ )ӝB_;8g=NVoKuKriM~ eGuY5ZsAbn$QϽP1VNi]37U%U$W&IYJ,B*`>:g3%}LȨiPW^#A׷soJ1ݕɰ"[ (t .]k5HaMKhz!cxG {a•n9x4dI̅^xYEU1uUQCn.M9MC om!ׂ@leK&zQ0>зpSHW]u4$D*%Va-ǣS{qR9# >]s [6N#ԑN뱏-90MҴ|?8R?j 5֓1\1?^cCzssyW=7_rpe5wI1!CDZTz<5il[yPePt5}_Wv$#"WB3D鍹8y5;eiKkяs1PX0'<MaB6抬ܝ7!W 1C iLY kMUi{0UhRe^1'iaB&lſ8Y6'xèIrкar!IwWčr !?nPΌ,nî|C;NT.Yu ZN_Κ1u !gx>ì_;O{_UĕGc͘a 0Ug sٕ7"0Qԏ&;}CyGl[=taxOx{}H)XXU/l[6#ى:rq^ ^D,&ͺQ[E" {ɜ l< ~ "KԗSD&$v\Ԩ,Ьhӊwɒ+wRozɄRZ]sFR$)pGIa`U(@*ԁn삃eX]MUQGO$BJOW/Z0UWbP[_T">q8@-Q%'^uߑB2R8+h?Nfa% ŹVpY繫Ϭ7iU`H)`Eb2RJJoB9S,@#q9yDw4z,ehV+͸~OZ֨&9ż"))bwSpr|]g;Ls0H.{?qV|c稕fvQ+(fnmVy/[?gx|8N!(Mt^<(k@[' x2)gov'wLP*a!oNO=!LĴIZ;So Kdz yPGjdzh2Sm!r{Yhd/2EUSys'_r`A}y>~(?R "!/5=jvn:2<[:#R3yW ʍJMFH۳ OHgN)аf~7HV79p[t/3 \KPs',?߽ν,,'pSy&: xJ!BZ` SPvs= q4}|fNOھS~>-K}SQ9w'$=zK75&bS|2Mj@0B|Y07V唣,Q/G?{~))^=r8By<ۦ/"l}uEЏc/${ 3QlGb^W:O?^IqٿuM颔P#BYE&iLrKXͰA s}A e|Vra &ʈK=.ә;}Id y^f=9Kp* ]M'q[}ѩv [XS)-ѱM!'WWOOz{e_ՖvͿB<4WFB8rɱ9kFXm\2@ʦEr7׾ŲcNP |EߤiJw4v^aS|d^ӤPxMXQ7:|O8Į4+RVQ"Wn3-n{"Fi{Nd4K_eׂE46S Bgdž"AB/YuB~-׷`,~iC]#b6nx cHFUTC"rkBGylNt|3ΐ)=;~,EGM" t]=;>2tXfQNӔ!$.0B2S9_Uu&;2ˬH¶wk%t8mH1[!R)֑<-!vzOYQUW(LMK;#$˘#@&B,LO\RVG!$ܯ#=KX,xјuNfa/ ͙s cHVE31_z8@j`2< OFbOϡ ^0/jBoL>dU%kI3G[ ;eՓIHSs< q%\e[[=\ Rzjm?_L%HnW'j=/-Ms&+^9T[[8M9C;IÁa{3G;p7ID8XmQ]j ݤue=F1=P~ EՇNT g`-iRg Z Rq\ *2NKYbL}Z8X?[u-Yn\*̑N辟 C\|[ [}`CPu_m"\j&'?!T? ?l%H`blzL.mr|rtnb.W.;~]4R h25αSTu4L;Up [.0U<H-vF޾sGFp0ҩM!3a&SQq#gap 2 \W U:@$xo@$\cNdw`hqͩ2M5v֨57"dyʹ6tytu1CFvO4 QD.I;P$@RҚ+Nd g4p,Z]l '>1Br Ic2n;K@au] L_60[r/j\c(/ʁ{eÍX`i8e㚺)9+<=,塚Upd$3"ȳt/HlwKEtU5^>K3j "-#l|AzEE^uJ;r :=i'n^k >+-SA1d0+.pl9? 0:AIAI%Gw!!e;{w[<.\im}(6^0 <,M|hMnI{¾:%bHүH1>2BڸZ߹XEaTYġ~./EB8rʨ?xokr:>St݁ۄl[]%L ʗ ]tt3W .KEvd < $߶o>҅'g?nTr@t?C'3c(b-UskpMl<E1LꐣHrܮeZ},q\d^ Bߓ/waqm~x`-H29-)t2^# 54v"Il/[#HJFfnhwLTmͱ@{TN8E8"HRJ;vm nb ^yUr8:Tlr&9զ*[+Yp5{Cb7ч#Ъ[a,DQ@aԧn_FIiVMTLcXo]~@`C`)|E^09z4X H/F7tf'tN%TFd"`#ٞ p4P/Ny,<ղ*e՚ \(TS.L!-d"fD^ n鑲{ 2ZAzhnW$Y]#I.8Rr]c`c;)Z6Āi/%sT"8*hTp#y>0崑wk/TRsP+-~~IGnjVƂ1@cה2?&} c&C 5fYw)=bʫk](b䔅mJ1{J@''l{P[Y̎A{T4bW׵PNnQXix~Q[ 50/E{k|P|2BNH>Z-zh s.Ṯ\Ỏ,.~Ձ}(ˁ6_SOkѰb"Yo AA\i>h4_dl[q,wvw\L TcvEjNmB/U~*|ےx`BG1"  ӎ[/kS@vB\<E/_nӢKMo_t݁`HnuT{o?2>6_QN^}[{/y_>kam{v^\hV7#4E56}x6ZWH)ޥZj%P|"ld?Wmv/'Nsގ|F8힬*>,ݳL:VX "G5Rޝ|=38*He+IyXҘ+gGϰ$v.T,5Xc @xk&΁7i=wNnH#|g xKެW|/F;k]g!N)oAX<<~⑏o'̧r&r;cV%Zb`D G b2';)fϣNn,xcE E @9`I/N*!9wЉc&r9IBP5͡Gve)Tjd7𚡥֟>Ɗ;ҠU=em·Bp?tXU*%`J(pE qu.b+1s bK5uiD"AƢ&OFfi6M`I}4 P(nܔQAPQ`>'hY-Mc7hj6^r f#2BmR߸,֪va'jLHcϦt=)'=+͗z1P3yL TJn6Y{‚~WyzjZ=Vx6\Є*kT 6PNSۄ呚I74L#6r?U 0:1!V''7pLF`7.J-9mV<\sf^.aSV*r xڜ5$N\УFd 0*>Ox%c\$ `lXek\|u*,-Zu}n3I_/6E T>\x7'kt5Sm62 GHRP"7/)gzY5ֶW(0ܟށjq!C0( Ŗbӓ/Vn..Py|o\_pʆՎx*Ȍ^_wETanBQcvFL}gǥ'Q5Ի+ZFϘ.&1{: e Ǎ_6Fp2D`!!WR;dy0ղt"~O= >lr,S)o&--r%j*5x? z-LsLළ5<ԟ-(K1e-^)L}gw4:nadv7溎J n_18 %[.E蹢Z oC [jSf u*(ݰ ޒR\QA͖W [5%d+s^֨gچ)@tc H$ #n ϯ_`PSVFKo!zYH4n>Kc=S^9D9 rgDwwAlj:Ζbm]h(ˤ}`)yTf!;y75>c24EA-!j$jJ:x&[ F%!~6RfA=+r# ?hJ%4ƕ˾A;EG1dGωY dQaY0ٝ !.^>wxiI[ͫpV$䱆ߔ~;[%卲0AX=ևFM-7g2Ezv {"H%@K TB~OL0D-Ô>n5Nr0bsAeR.=YXѳM~m4Tۉ]F!@Nz)1lsff;Jyzs ^-jOR؜mfyA>CIݥ(!wXС\&>eGp2ŝ[ơ-p }vRo}m@ YC{Bm{gX̑0\C(p(GܷKJ$d lBbƤ{GU4T9:(Zhvq]"m3_Uz$f4nQ6Xe'fTYN79g \YNV7qNzIQGv6 ǹ(nd/6?hT$m{(AYЈhB#sE,ȶ {Rӽf:כ$Y o߯9]m8FJx}z#=ϖv4:Z'xͦǥY 2{b!t2P43zPcΖ߀ͣ}I(dGcAwK s{keNdQEx8\!_\K !mecᬨrxpeY0Req.OUZ;Cx wH,~|jVGl2`۸+G8ףJUfpyV2Ѹ~miꍂ$z4*E^3d(ǺtO#PƮn Kj~ T1+Iauۦa.&S.wgdOMR]*rz'wLՖ7z/Na[\XA+*$Yp"lb<9zl;Whyc|jqaoCPxYdL(.Lb޹X&Βߦ`xC)+uy#vc}vCߴ7l=>?N>ڙY}<I׼?c(xMů!r6e%Z>DY-Q".GDzS ^ :nRBF8YL:ԖR$e.^u6*Џ/iʯ㯖!DFok|/Ktb>Ln"UV&WԿ,5GoRp^TW,pF㷈 taCuc.\\Y{aM_ :CiW"v7;*[=%F\Gk}c$kjL>,]+l_M-)|-1-1.2Z߾bdy> jܹaic\^5x37D_m}~< H>^2C;<=,`ojX!Q7U>oۼ400¦WlGܾ-,bH]n$pTedkE:!bl FٳOJ'urvlCV]fm$+WeWf5<c`j攋U3>F*:+C.GBX;7x&)6:*'p@b\BUc@,0{{kk[ga|WduZq^ZgRSI|g=| \ ~H3}x"(H> z"Yrrm@%70E;u-v|ԡ KD́< Β/Z,DȦ HΕ"I^m+WCW^M= =`vi1K Ĝ{8pMCFę[+^QmW~NI)E<*~{Z+ 5%p;TL39"",NH7&RUhRE4l% (b䟙;~P-Ǚ,T|R2.\ѹ_ _2;]\m^G\*k5QO2fsWٗc}W}'BsÖ́wcIv[۵vW'-xx*LCu>j`tDUQPNv-[ {cPsʠ&4`]lVExFHlb^@գtWҿQc-\hND~nCkkk$|`.%0L.xElpIè @^CeX֨Lⱕ 9[y.J2Ƒ̳eL7.J*oPk p#d9!8&<k'i>(Sr.OjxPҦab Lڴ=Rwʧb*"/h;gxJXd?)0&Uu˂0PnqE~{,&2pAs1/8U|t|s6,NPKTP6#'0: ?w 5$ʿisÂ#Z n?Wz%^KLGmHBA>!$axT;DdK-J~;,H]W_>7mIT~nqT})j<;ݧu0>$nWl\{?!θpn:8@_ʇVї\3Qb<ݽ%QS9%ۣ-W3 ҁE#C=q:dbg j!_̥}Hk"Ÿae;cPӲH-1&y{uq;+eY7oND)KGK;`ncAVqk.3F)}|R0?djW%Q?\w_fdVr+6z^W*o"+gv=LTqu {}@^ ՜U(XCM a.w"tLV08[bSօX&iO|H93\yH[D258닻c;3"4_ǁٝ\ >2c0]!ݽIoU êrN5p7tu.Nc\UzzhB}.,Ӭb?.yRم0 ^EB,]d/HCM߬,A-r:?SF4d贤 }(7^:苔k(2 &I];n`hQj1[g+aȄ%ӊZ rk=},I"Q/M z‹fϲg WZ xܢfm"~PwOj?38`G@o,}ꧤ[qYTb)i 8+#nÇV&LqoΫܟJ8{5sh 9@nJrt0C} %YubU^ Q\*qQ6v"ؔuBKQ J.޾ `=ּ^-e`7=w]"HqTy$7\#k/Et & IEqOby:@ ?V#9 zE6Wu|kWO3`cX!lQ UaZv4ݍ]ĕyCt7{,RP4dsn9_U"mPtI6rɤPʤd\[rB!f>^DnU#=ƒ`b'-@,haI_gv:4JEP֐ ze=Ԝbhi¿`x=|1EVo'}3荗>`()UGÎ}QϘ0a,&Q%oЬ*bHOp]vސц"W;|j\>{Ŝk# l&c. 彵$KU.I`'H:U`pgntTfU^urE*67Nm^sg9UyZE d8鸮xdջ< ovXL<ue#02\XWLb"i vDpA&6d.-tQu2* [nͼF_}TQNkli",# hrn  7jl~7CŁ5$q/Fy5C 㫟~PȆ[ r޷t[ Ʀm~Vݷ4@sGY'H.rQۜp\C[iI"¬<. kt)S=O1 K@bS*_{?5Bsiڪ?4|=R E[7<(je+ŮO"ϠSrz:K3d+{Ve~ DVUE[9E:q1v:wxo{RAKH.!`/NDLr~*~yQ B4\[}Kuot[SPyF3KR0Tvms7zfԥ{pfR!Hdt8#jf:޿;J l(\!,b҇faY7g8UPM X3G0!0e/;P#.ksւSjO-&l]De&1S౷R&$'nx} ?˘Rӓ x$}06YpYǩg2O>RlCUWfU3"=w#N ;<obdTD<¶<j.lT7Lm a72s)rώ"[:>2)1Z;38jA'DFU EG7 {Wyf]MB1 oa!69r_#҆=u$MʛZD`vMNmg"fGdh j.:ٺ 2Β[uCU-PmmqlF4Hj#vo-7qCଜ=Kݏ;lUPq\Z!ږyu2/` LM:}m|f0@`m enŀBG|Ar6S[7JaP 8Wwܱ/TKo \Au d:Uר"]]`Q삄j"*_o1;G mtPHGm yjzNw|哄@k*/aB~J`8;p[A 'j2lKWuw}o\@ݳ)ċkH(TZi-~AX邅-!K8zM:Ai9.?qV̋V,]`|Y$L%>}Y/FЫ=[x}>2|*!v^htbg"Z./D.|L K4>U3i]Z&YJRI{Gh8I jMZeeÊyV WcMؿ ^ EnR `!gU/P!_R(zǻrB ek`.64LUun fϨgM-mw]t p‘'fqtZC{G~h.SV μ$&Tص:Oir0ޅtJIԺXXh _F3Ӥ*,xyC+tm5;.PXJKX]8m1Ē!dÅK Wӊ0zm_ ;锌^|Ynh2J'ЎQQJy spk*OƬХzsIu-WД szHTq,L[SOT<sϫu!wWə:1olпl7Q6 Y*#LFUn_6uWvʜM#+O9=iTdFƛR4ds&v[ jt=\b1Q='JWhxE1DID]q[FM7&7 l21BE@d۲D_o㼍ceW@;0,BdͶ1c뇴Qn \6'ww"ֹWc6 x60kJ>Ҷ՜d*|b'1A:N^ 5b`b˲*4Q+xt| tDƈ_ulz 2E\`C\dH -,đ郎s>h ;{o̵݅]sKlq azh/fƯ;W+J<?E*bRuet3{-h239Jޯ;t^ #&iptȪ@s:BGNdUOlAoVtA8|:- }&K;+reZD6'eA*W^/s:r ejUsJ}&M]eѼ4Vf?_ \"{AiUҒle`V;s mݫ͈b=XMگ෍/m\=Fէ,'i~B||pS1(^& ,1@bu钙7h4ZZĒ1:%Dܯ1MC`+VP$;JINؒ5GfPKDlݨlXan5~j< k.}L|{*R:ex3ZD 458ޅt+xg,̴k847k{A(KOfkzrdBc}޳ukQ95D%P1%@^KXlS{8q{vcBwJQ??4/O76 sPغ6e+ң: ֢v.bwzSfmv wiskXOQ\?dcI@-Y=#u>Ӛ'n[ Ѷq0K{9" ! *XWX)&t̍i6ZcFRi3o6q^=oxB'*}ٽ5[9pGd74>dlj#g&\3Axkr:N$M˿ OVjmy1b{'_|rzeEK2¿>6_K=`@\VgĢ*%N9clq9{ רj"muʝHsj_ǘ?j3=trBlу%t3 cM71i&HN 5= M=Aۄ%ס9]ylRYquqv:[EzPYb!Z f:fIdq0U̔ gɿ^NAa.tI0Ì*Ak):@I;oF6$ܹ-BǝĊkH h7#n̻>,^qwvrb.fcbҹd 053["2̮H͞Aen2-CB7i~Y.bW,#םKn8}:X#UVwFPg( c\v-KX6<8{g;,͂ڥsd)e\榉5u2= }?e<ǐ1QJÇfGh  i ? tWo[}Os}\^zPX&ԫ߃i_?z1T\@͒&^1+鮯ie07WɌ @0 [e]_ r!u8tlA`&{;c\g1$Ecp)}NHǬkq=Lj!^;we]U.=oczkW3(M ?Bgr0ˏ6?ZwH nzW*v#m$Q::Ċ;&qVhj>M@st<PM ;cֈ/O8BW]S1 bl`1dlڐyfÎi\hJh& Tm`ʝ?}^yQҢ*!M 䳙$Bݘ 1nFN:moeUW YojɁ:# f3 2 Ѐ\QY0]8ܿ I!=w`tC7UNmqA1. fٱU uT l[O;C-(k!ǚkY6!7@Vq-p _5-fhB\ [&Y{w+/P%TqK|LA>`3 ky5!HqdDh^i, %m#33)VtuRVY˧FZHsmX-hp%5w,Tl$[[}5W`s+)cԕFA`:m-Rgn:Y|X0\CV]\zWuJL}]np_&,p-qęnXy\HtZhfJa-Y uKk#h!zA+PAh;)^y\'1x}dHmP޳34?v).jeZjj'Zmue|ҶxcTx@2=.`^>D%SE/{OXjzәaѮ7HV2>Vd`QJ'-D_i֡"̚vǥ$e>DB[E#7|ʚG(9%9nw{0R_C[t=) `[(s|Sdm L lP5v<r ڰf.v۩ e 6S[5ם ovďn|a%,h+}/׮K5E̜n |ǒrPz)ddƘ#Jv "b)FlU j:m{+vSϗ4|O2@?03bLN]ye~E8nBl}ʬ0P$Y-\fC$NԫQ1JӤ9I2D\Ez}VRXZwי62{N]E]:%N';SA+ID,t -dR{'pqxC=w pí$zB 6OdrUwOR}_T# :K ى go,bQ/%,[wsdfPdj*x<܈qEK/uQ1ɡV! Q8Ao?mLx˜ݐO mJYU7pnUxח~/>ɻaECb}rϤVGhQ_JqX; B's%Ku80%;z&PdKGDƫ/qgӲBtD %.ws^_S|&w yu0@X-ڶO rނ#o?qwE=7Z%rZ_,J-nFwoY3NV@x'+oM']=p O~WO纾*\+7$3_Шu-Č/FR|{T m*6g|*kZ,8up=ЫX8=P'lzߎA‘>Rq|Idl}듇pzo+LsrDV/H4t@xy$?2Mfۈiy/n2jٷ"( +D'Qs 4qiC.H*=}? ֵ9M譇-W_<|v?/KK/ޅΘ b1}:AVBxs< [zFwY'ť/Q݁3j+c Vd1Vv-t߉C1Ԟ~R8>RѐLAm;t!]_4JT(&Haxm 8q]SsFsDü R`v0|([b߷fхnNvWc|KY| ?uF$7qヒX}(ݍ+X=>:5}Ϟ"U_PʳI  1JL"%pϖ6_*wUUL[*4DAkX)+5|Xׄ]wIh)w/mHrd tJ{?ț&KJl l_=dI!ʼn*ÈtM Jօc=Ӱv8jGl]Vz)"a mtSa'Ǻ32 iWXށ0|BVJD6P<}xlh7>B/FTѳ;n_iٸ5W=]n5Aw_7 S| Q|o\rorʹ{aGEtuSHzd wɐ aJBgW)#f.wzԮn@k㱪'%w*,ǒ ^AGjʵ&dYsL 2SP7PL-)^<ٜ{ JqMel>7FqEF1Yn}s]Ї[>C07}CoOڼH_!1Fp$E*4GיBԾO^ LM-$N4rc`'8l ;pAVbndU^e pO1oU=J2:ATG9,om=-VJG(zLR8kJ\&,9hU>aYJ Z8?8L"+sޒN{@KzAQq5w9}15nw}joNWVc/<>Dy;mT +!r]OKFR WǞ^ _RJޖ aiAOY?9NbM0'pr*}`-50aӣF1d 0 }o6 FGH$Rn|^ ;mDwikϭ@*Cebcx_˲9 > /]W9e{J 5YdV1D6i'NF֠/hL69%Ȓ 0HGFdhFbV38d((Mإhe. 7u|P/ApUWO)87dp S{GkG?v־Q7KpOuTS.Vt|1ꥴ\YcN ^,|u?;kxGe+yIW`A]fz( rn sh`^eakX z=s#o*hGvy Ǝd3Ԓnฤ8#%| M;O+ N]=┇DH`U?hr!pۍ148|cثTTW)u:fX ag.p,(ECzJ_\aAqxь 7ŏ6t~pxC>aO4@ Ɛ-I%t#}ƻ&u1\oۘW$BČR|DB' j~q톭8'(GYu)^$&!\% GH݋`* k4>mmYNQ#g#rg80lD%Oio*LB''w{]' tm G.JpU6i!W M4+4,l׷k%!PCySGv}#t75 nO 7㕍̗~jg\l8-w 1avx4d[y2UvfX|127Ǣ2%ZO?.}_ЅU _Am" [ID|h-͌ ra~oC8,\{@NȿvIlUZ:$[~֨yvC6.:ftAp3-!ZL9 VPf?0;ZGxF1ȖW)ާR \yR$7t' -X9w)Lhd䓄)owO(?cH):e Mk<|.! '^}Wc'Wf-ʂЉ˛BL#lPb6rtj|-VUHM C"ɾag_mP4FgjHKBmeyÄCGdSزj:T =!ˡ+Ȫ2)rE2j(Dڙ'muB?HQf_MT Cسn_e }9< RsWtb<\?I o/iB>ls/xְ[j e">2ۓlԼ"gж,}%'O0,[х;/_4y\kڐו=ekȌeќFxYo++SxIF W2 8G < :~>tKm|"b?%u-#gy Ab h|hmBɻ)z v/ȮcJ׽ǧ{ܿi¡}':RV)l]NВTɟf_MWz#BQmJ(WIVzeFW;p}%9wz:K7UE|P"z7 @Z#լg0DZQ,H{<~mϋ= dYNJ?|Y ߋlH?)Hg\m=F_˻TD^Z OJ'c̏~!8e~]RtYjjZoENbDjP}QhP= i}gl&Y]R|_yb KH,nX~iYnHc`:nV1m7k}Dz3 @8gƼ?#p%d{!T]qF_~o'XGrL ǯPID+=0t .Ɔh;ԑpUA}z9*=D rvD{ ZԚDžr}I+L鳓Z^bTi:;^,,ej֋K֭༜#6}V/b~=$dš7ܑ o\O|?A5!d. ##6˔R4h&o/v5aq2!KnB='Ei2V!n}d> Pf&jo(IbP٬vܾ s'V Jpf@xֈdLH('Ge7kl\rdnghDG@tdh^m`EO:)o0c 0of gAN5!=ֵxJ嘦EHuZjᡬ|_زyA&$%cIڏ EC*QgS@~,H5l\ չĎ$,*>NP^ŕNP=2EfҐy YSXn}]C%Tp3 :ʃD$iVZrUY\6l2Q;=/?]pβIK{D|AT2e_j]\[.w ; l"(qiPv"g]_{ V 5x7IXBbJsM;(` /4)=UfJذ,pnUPM*~߉}D~U!]"HD'h̋toLU KawwX ł-CwE}e13 #甸3X/_F@ƓFnQRpabi޽cگ!àª&ƝU$O茅HoQkASk5ݟHkM,ߙ~0@T25qb ۅ4ė I.lWfgSCT{w7o?2o7g[` ,r2AyoZ5k֑> *F3f=]^;J5[ENMVu܆fwE<=آw `5nxA2VLH6)-o:Hx Gg MJL]3UHMk@9ޔ!ټ/ ou=3|~ }6lGBb3M2 %cAVESxm _BYtJDl#M @F_SkU:raCrzL){b d*EP]&0 n!,OLF0δ>m\3$ff(&9%ϊ@yL2-ܠ Ugw^} \sV:ݰg"UT@A~Lvaj2m ˺B[+Ϟ"au!H<(ãFy@u)K>ɶ׵pCL>|; s. ֐4C1#Ctպx7QV[0æECoEugQdžhN{yf;ȞU\krZoqZAeFDJ+Y QMĎwUf'bI#mӹ6B[RR΋jٲZ#$:cBw%M}ҕryZ)4>fe7Ӭ1ʶf8}7zVğH.&H_ CvhtWBR&%ts:N~ʂΣVC7&UcauFWvY=QXBsPؓ3pf~/Ҭ2;3 פPYǢꌓ4D냸" /SA}S})Uk ~@ C2fR*ԌϝRau3[ZG]m1ɴ8!EYgxeB!Z挥M!_{{ǜB#X$hS0FX6{9Su M  .ǃf΀CpDv LcCFyby]2tP ns A-BN*<8#̮{>X#eeRUB^'t .Uq2zcY(vq2T#6_8?hpX*"> E'E c۰2~r>$XO1WbԭD8Fg_"JO&_'CsC##1Y+kgIY4\t?qjFfVJL0գC-@T"pWn*o5NYp*ű|fӌ;:mB~ILe|l`!!`@pci ڞ< r̫ %d`CyT}y%#?kP]i4a/9f9T d,z p"oE>姽b QXc1L'If@#U-lceOupu%]BlsyOW/y9V |*Ts0"ӷ в˥:]Lbpca:y)jߝA{`ƓǮ.V,RW m-^q\DƈkdC,'u|>lKK7~UZa!D7sޏqLD+钸&{U 0y4bx`þ=Rw`f۸dR0k6gP) Gҙs 'ҾWD[= TЀev/Kk=C{6 I}.g!3x!8)N}Ȕ×d$%k |Oj H]TQ36'Pc0\9EbqQ)?9HA2+E%φ$/"Ym{KХ`){JEn|+L+*Ϥ"Yv/JKJ-&hgDHD!1Hi߅,`PVS &.8#$F,'%c&9^ Dl(Defj}h}Jwh? I ۬m7ܫ\8+N ymT*/y^c1],#%Fk-]m \3rLNʳ'["v匈d_A{38eW__8eR8xpAHQ[{isTl gpDGlK19hm?6d5[јtt[ }<ԡ. 5Z\AJ!*oKe=M|3].\, ?am%X%uyo5M{yS=|5J;PgSybz5b>h xscx%{m:\DW_5 4tj>]&*B;zL(2#(AZ Y9D ,OZ7N3+\61EzΊd1RLD^&"\n؂ _d  CJ#{!(W!tɏlɀ n2F#u6k;էtp"S%jInb8'84!R{0?2-ԞФN\SW7)4„' b2Pns/ }%e"&WI.~V~0*uݢ_p; hBО e!&4|h#MTMp0RAʯyIL4lr.X ʒE=e$ۢ^olcr`)~bڕjɠW߉S5}Nz[U%m,?8oEeÎ/H?ơCpq@:x*hjTq?ila_*A#X  MMo~具i_Fht+&׏;;=Ň[D$)# ?_gPݵd[ޚɸ+IT4S<8#:՛^xjƞzzՔ'/2؝I!G\v{xm#uKZ#2g`ocbs+jX`ػGbb09nMTVUFF~Usb"M.&=%.vNfˆS뗿mه7"#bV9G?!Dʍ( 4{1NZ: {9-Dx Θ#z3sgnQ>O륺0=!ЀcxG TFCY1 l#vL6CT~G]ؽOqŵޑk۪߯~@UTD WIH\= Zy fu_f9AiMF})Ǩ3JB+P1f"ׁy|Qw q6kso M9#p.܋aS.=UY?z?k('%Q1TNn2؋ 뉖?y㓑>!y=3,KE2fGb:\h‡!M"# ~>y_cjĞ @O#NQa/bB4x?A+6իbk뫻'rjOY-z_>-C`sfqqP$SW8 R]9mVLeEDCҫ\ȮY1 $U?185Kiڻg NJ؞S ȀHSq,XZB:#TRi+ Dn'(8Ug}.|gg'6ӕsꍙ8Я.è{ج=?MAٰ`P3^V#G_ K-5'P-Gkze2<8-e<Gn/~Đ/,NmA8C1s{nseY% Ȩ / !-p-MrBh@s x|TxZoK_xgn:G:8TOyFp`{ĥQpPfչ`$W~eE_T2gڮFǑ;G,*!ߛMo1}\ '<5b1 4s,asê;|ShS56{5ݝ@lzDžCYrnCK)J=[vLiO >COaTڣ`kɉQ$":u./=DR ~|V%V_: ȱ:QS+y,GI쯣'㛐rg C^zwq |j=YpP亾HgY vOfdr{x~/b̯tWg[^+}w*1lnUHY4Vbmz8jxe&viXfg}֮\{#ƍ|:.KsY[9Sg5I~LoQp/Q8_(L_WgC]o$O^$6V7sBjb^n;7~SK Ŋa\oBˈƨ1辑{1pR"5W3n mcymSc_Ԗ(i tL,Zzg=br}]Ϙ&xs7VV3ՈT:Η3@Gmծ('vs;5+AI-f,@h>AhE g^҉~2h7Wq#s2^&_8"מ5N&n榶gRm!=*%e;}oD1qjDw4~PYGPeu~0^*R?}6s’~vF-P[hfk2`l0<'^'vX @ωt}ym˙}>_S63 n,uzKiXgb)A&{=-u ^CdҰ;_ffZֱ<9\%Mi(IdR:6+־k]kD=nNvjc~So XGvmHO>Di'OIޑ(P7,Ǹ ~="Q{X--,<|_N=g~{_)D0??U}Y-JD7*SIR5ef|ZhH XU͈ޔjrdKw~0Ja7XۃK b싋a.54_kT"5x9h2j[sDndի<7n )ai6hlp췃 lnK0sCIP>ˮVt ExJ[~>w#6?FfGmt "ϝ7GQeK!?yO %)~ֲ +ss?< PR᫅o[LGcԭW'{eyz%CWܡMcYi0aZ/&p5E/JzB;PgU_o3)Geũ^*".o/;{09>8 "fH^9fdNz)_}kLv}2^^ϸ~?EX]l Z6Q Ѯ<hǍZU`a&,onw:#k g9kI4>jn3BЉs,f; D|_ D ӚIKV5K3@3SnJҪ^. b.!؀=3/+AbyEzTK7/s8A LOEנHEO'u\ R0BJ&((-+!W+?lDHk9ڞ&Rd?W|Y7H18Hf))VZ,u[+s,&)8 _ yljڤϯ(i.BavL<^+ UeܓCy){'(N5;:}u4р|u$_tCXZj-mjk.Bw*u ?HpfĥUҋ׼hiD1su(#Ν}rnO;lz|ov1os7Uf`58ĕm9 UaKu~3kplT '#|E_N/9?@OVJセHODr`FdǧOA5#j@"@c 9C]S{Hϥ qW` 2b C;ỲUH2 L`SgBHM:f*q5Mfc[kx$HT #7\U.|"&maߺRBVgL.ՁuMɢ>(%ؚnGsu[MyPf{7&}Kmsa]t.݉եN4Axi7n&k?߱#g93d\}F%K͚G6ڵD{yT|'Lu'0V&3NӶQ'.|﹠306ڈJ`lc7G O_*$Bɞg^#n >xq@Og* 7K 6gXBWy;mW{:iXqEb%=a( 90 5T/3DA2>aP)s{&5"1VaP*ۂ 'g'5B -)p^>Ӑ  z)zoNr<* ,j} YEZ qp(MX߿ou m6_@$X $Y}u?0c)'Φww_sv~>q0 ]fP-MƨIL 7ܫSdq_ \'cj#Cҗ;92L'򥏹X9` -%hQ媮l=dL7jenv.]ڨ.)3D+E{!ZgvtbT{)Gɴ3E]g*+FJHaKRH!=5WTrDM~ٿ^=C porCߪ4~u$L;ϏKK ^\h(y2cg-*whZ Ծɼs[8/ loʅ tW-![rTѬ\"ȩ<A<30%~VK2#u qRLhh!XX]h'ޱT<۳EF@ i3;/ڼ-zȈ]ŠQs`KKŎ_2 SsYÉ?LY -ӛZ:Ś9z T>@3WqLJtJx@T_/G }巅`_u ؠۜl1L^Hm^b<H3i YL0W/JIV{raGf|myJeĝ%&(3Hn#G``{1"Ҭףh ЮSО ՂG'¸;IOv^yUl4!EP5n f!; Q'{.fbt]qe"G~J\(!.C)D/5QU- 4J%.fuW4 wH8!JO59@fq _$X— _)>(:+myInpdo\VtVN?I-& IXS1l I\UZ]$F;N-IGaLبHAygCO;Y2м3z8P/$F Upkr?L[1p@&apNpC^K0C^b s=8S3NhYWF$x2y>aC؅6Xklz16/g'(|yx!dX74C71G*nīŬ'Ӈm?>g :o-Hmkj J4$4oWt&=h{j/%-;2Jdg>A21pT#7^ŞHﰞ>W3_a.#uzoryhY2 'tmq%8aصK a~R~ܱ){: SiaR\4tOdGJq4`BQ-+9s$ִy%j*k_c9"y!PU]pyA75R\3V=q\] =jQfIMI7!89HL~܋fM|h4$'?iVHҔhH @t;E5ȤP:z֌F~͗'ӗGnQ-][#]eH7tXH_y 1|Eˁ`l>*cYzN+-C=q3u/yEy)W@4#;r:śFqw QW5~`i;Ҝ$y" d\먴Tzfo69mI@H" j4.Z5MW<?(=DRr1XYj !6G/-SX77)}1R/uzlhU#Uf73n2L`dO O [a3WHoG{> }$; {p`qƅ(dwa"U\2ë=!9^Hhu\b{{;vj,,Bgr&Z*90#`K O2ZO nE{>6}η4qz}V")z$$cֹ3)t[ö01ZÒ tEQ촥o lMQ6-N?-=S];z ѻ*,cbDF=*kфb T'4fm4 spBDy{:-\Ɛ> $霝5#@{ M2U9"m t-g|=yƫxej*1s(`xuj6AT/qG٩ZLCՓ GAʗ q5*++M\BmPL_ÝV< )`B6X4G. 8,ƪ `#2{S܃[3n,߽93dCTPx򝶟)IcOyM_'϶1qC/a.VϠDg{Tݯ_Ü4>;Q׾ H¢Qs^d3E)i\> U6͐r?#I\'֧dZWE+vtzhuEeQr$[VvxyV͊tS*zZ1YrY8w(@cdt[>}j gļ kg҅,3Iމcn,qBȲvK"HR;yZiuRoQ"1i 5ƁJ T^hcc 놇7 0CЅ|:sGo CԴ\QA {4㲐m6*s;Mf#d;pGR arY6k _3n]dQzu*c׀M)_2"$ԥ{c|Ƕ2;xfp&i m:I'r}G㣙Z-6qdio>A}@N ]WŮ:EUw~譧|\'UJZ UP2u@;7 ǨtQyw%3-O޵p8C@͊ *ҹLE+t]'0S v(&g(03C}8_pa8-Q'_ "(N3/]hW2s]`ֵEKz ΗH 忛&}w8KM?[ \w NlŲO(jx $X{-8?hyΟ+@(kv-KkN]XYv<~z"-[UL__FNlv.g@'-M3bq B1$G,dI7 VA匭rH|o*ޚd|M7=et΅FKIDXFg_nM=Iq!l yU dƷCXUU:g~7@O:nV'Xvy@{%:U;zsfX~̱veC`21W` III&MOc>CpI8ÏLLQ\ŚE?)E1z+0Q93*j!~)&e0l~R "yODQ)"3Gn9C2b1p7mK4BA)߇,_>SX}^Z!-Ĩ6D=}dGN?w!!dy>r2[,N"pP28 yƢ?9(p>!$&R/8)=؅‡0!XrW?9P8<<qAë` YqҨ $= 0;Z82'}Y<}a,Cp{[4 I9x~VkKIJ+8s huOCElWL&Z$y-4~k ǼbG+gނ1oeX7FKa0-E`x6yk*e{gsleftiܚ`G)xڟPR9˯"cNeOrC+rP';*Dd5b-]_&)瑵6TJmd.I~)ͣC/ߘrw+ѺJ0E z!H: DpaתTqU,&*\W -E1퐦=&O'Pl@il1gjt}עekF 98I:@>ZA$$An)Fs5|h' !c3Q4&JPmw{FLڂL8(t<ۓC+wh`rȩz2k'* l49E LpaI]׻U11$gYV&RϽtkqVu;I}$@%+"c҃2ra*%+?ݺpTKSS#W/=5_S0X߭ daVZwвJ<{:Zb\ rd6ܼñm 6rUi/8Z[æmFm25(=BI73yL:IU xkA/~zG _?IC6戅|KE$eXX6% fJ.)Fq*32kiץ7=oJ s^cH jGa=ŏ`յX*orQ9c9;Q z`: ,zm*Ml PY4T3̋ tG} }y4a ^3/1`pҀKk,34ٚl1]@ZQ$wة:l|Ivӏ"]|VWa1k2xgxܺS 7@0h }zy!͏~7%0&@I^!ܐnsG$Pwj\V^d–wYbdy +Nȼ" ĆYؑm׿̭_Ut w~xkv:~us#If8 2WZ>[l_n縤$} ӟ:7hţ4m'c#_C'[5PrYS獫 T1u#,4XEIÛ(z 7X˫c)lfer@'b=x) " WO>h}'m$KR6 E۽wxX́3 GfwTln&ܿ50 |JǃݻI&BT&->i,R7!zΛN3v}n8I -D7t>!5rr{T_;4N wZ?W׃[Gը<˞ "Jsj0MЍI_OtQ7ߪ҉+S]lEuPR"ÉH5MX?)#5> {-`% T!5|}+V)i# de[O,$8 %.D1puBA C70*eoߚ>v{b\"Z[Xta.Gc J̳γX" ]t]#45 `G)ɴgDkP7)harI^=vFh!'<1^);<&7 pg>GaKr 4w~~S2˟][Zb92C܈1HܯLe:$^#tpM&|Ԥu<wڑqd)M uLiE`}kEfoxo|sc-(9֡I !XHd1 t8٣C0*PGb75K'g\~G*H =N%3ŞVWW"oY q~|Hs.FZxuVm{0mڴ)3 p  Ih.4!BC_҆ç ~AB|.n/ ->22]>:MEcY {WʅHZ̶])gm*$2'r5s1䂻LǶv/x&@zkpUXgN(_Fjn8?s>:wtR8/hRנ#MJ|4v 22mhnhB";jmVEjᾛ AAZO&"wi=m[3MM1B|Q({,tK ]ېŏMBs@><>QV )PnaamA'C}8!1o_Hkg~=զe|2Y.kx uzZ {1s86Fh}f; 3v`pl{<mpHvuɜ 13LX9a"ΟPQ:Agx{ z7[vj!rI.57HV$(&; fJ쓓݁Gdz?kc@ѯpx>ӌ(޶J a:Y6-z }ptfqS;Pnd|TGo Fd@<݈ (kcMS.ʊXcg0zwS:iךּ^t,O4nkz&-7Cѳp`8e˥_E"tyۋ-ePv"6zCT̄IL3a +go,kqFfP±Ln-]QE䶲-:*~e>c'(vLL;Dʙ< w4G joWdb*@7Lw:rubRw=&~l9ޮD6HoεZ3m1V],Cz6:\C2ǻ itKxqMx=I=M>$ԽEIО譹s[@]} [9Zފrm(%] ʲ$^mh4/]XWI'O`/^ce(u:cRݬ~]2~@])_Q:Ώ–3UqrG͛L/˰`^Rb*<[k7M|\7ۄ:{^ܣ|,*n'$ ~z6"$(HaE.AXAPEWdXZn큅R,SO,q1ёKOG':%L6wgljw[7X^L?1޵4iUT,qS!z+WS=.(JL}LE9a?Q{3qE2Vyh7#= 9'P%˘ba)S"ŤTSC6*_.m\GވkĩIj" LЉ$Ej=jNoCf 񸎜zL1Hиg3wY oJL# hHge)4@r~?xqwX:fóWd&B1ސp &|-8P˕ x6UԊ^Z4u:[Б>Ӱ$gtmXWMs.V􇾈m.̵^-iDpStTaUyݒ{Iq̛qU2: ׾LQ -g-CDٻoɞ@S`+;5ѻ[RA ::tXSPjjS31n L!bWpOɁJ}c趘(l "I5Ek+ ;sd4I?gs.:Y !˕ܯۣy`2uRuVZJN4"BƩbe׈Pqy@5:?~܃f~dտ#M f^p'xt̢(>;vy\Tz1cHE` =\`vm omF)d ;Աeu#ΔʬYy O!y*bD :a[բ1&UKK T(#&/!(p;/ z=Oe4jc %ܢ$-B_ :Ÿ4(ۄ'jP?0Ђ𸘟;ziak?g^{E^,bzܠt/hho(=x{U)+jq., @]A*}¼ \`YsZg.tsqW<>O z!v ?ºꩱ^4>f'e~\DYXH&4=JQhK*`Wx|FgSб,Fkr a@B)b>i [C!Hc|)3k:h*Py#(T;+6N;u~eNTĐܼU9O@[BZI{Sk>U]dXy+zbsLaM<̥{HnQ K19H vr@WYn.[$.{%[dQKw<%bA;t '_NnZ.G ߧ|33S5tMpR0ڽھc,L|xD@)>oRmb a^?nq}0ϥ5ANIuҀsn'Z. |GθV Vs*mҝ:q;2)juXl$>.Hdn¿&@J6Id 1vRE3UR :,M{Kp h܈UHnG"I&x>dq%9yiFäEY,hK*tB/\'~ʱ1jM@+lM7P%.Zk)+k(~Gn~$:h.'HE *E}Q0MXՕ"KgՊz8.7b_^?OQVߩTP3J[#giSFK`݋SZBANo`+ ,ɺwPQ7El1g y8; ZJ"eyjU≁+/>E321dKQCua ;?nlk]~5.~Y> sMMވA%ֆ(HO#iIK|`IhNE aC_ܿ^uejt0nY]C'e^|EAӜpW䷽s]3{Ѣqik cLp{^ Bl-"UK~CjZLtUi6=)}l8`+KW;{ϪB.Nŕt~SzHu!m:aI ~D1yW=êu(FP.*& јb|.lGbX tHz2nf<g9V4 `[ WdD ilY OhΏef&ܲa#2*q0iOf=֑zܓ߉{ƑOwe(Lf F<"ׅ[pt(H;C>\NܭE2_ϗ9QNSO ׫r̅2𗜢-(${h=8Tq30f+ɤ^ʣaӍThyn[jTͿk a?H|Ye7ccMKr"_fۮ5bxMrئnԓS{"9dP]ݠ|%Q#`V%Wu\5/T{Z!FTB(/@~5-~V0hȊ|J>~ʐhn6w/6tJ b򥵩G*AϘG"8IL*ϏE3TZCfv=wu!i!pL(smA ~#aңFDZ @PV6}p@>lUPh7!;)귛}sH^Y6ORN/RYK{_Ģ쬧 cM1AE3;F2{՞g@*m(^~h4{ U[Y-` ;G(۪1DiRc4(![ضMWMim].HRlysFۗD1\44l>ҢNOހ߲䯊!o&Jy4\yqhKPZ4+n@6M%"2m=+s oyIl)R-B{G 뺀"4Yjgr]&SdtUǷA Un/j}%QL3Qhտb2l^AthB2*jH%MdbwG5o&bi?n\1WIXR c,4J3Ni!Kz>pcTͼAT.=:6(|PhŮ7iqގ>^@1{ɖ b(cfګ60RVl %BLKuGG8`P9PN_Hb 8z.c7 ZH$<ʜۥ;Ԑtk{ iC H7!~#>!l`;>Xdg>ńqI( Ǹөlˏi_D'Ir1WR[Jd+QluZsa8èȻ0_{{53[.]1~jSpv] qݏ0aGbESP}Z̾R s(cŽV[TEdaAK bĦd-uW@fM/+#~J%LUQ}1A"_\!-L E.|FK[? o;}Yq [U4IЉSjت"K%?"W8^hrR"~ wDS^?1~ hCעhבS|QVDz0I6_8q&JO[4>{u6rG]Ƚ1dqd{Y Ma\=΄{ϫP8V.jEl@ *`YyWXM0^0A`Ys:hzSQ9)[rfļX{ 9?A55%83B7^ٺC]7>:xG]dx.]4Z㮠3eΞ$3WG6>W}J ~nf"(x]*1Ӆ," Ե0 ;x:𭦅QOiӽ0bD?͢"r;.+s*F}LY=~zd3HwI4-Tl }AXa8?ݤP8wn&~>!%_D)aʨV%G(b%#Xq#rB-򯵲vEʾ&(9}cwҴb-x̒,C~4`BvhZ#Y%%Xq`h\BK pQ h=T$3F;{YgY_v$"a"C=\%x,t%-jYܐS\8dȏy̧T=g.EN( $^dE+]&7!V 79N?mCi.;*3Q:XM`v! Xa͏\}p ѽ}8kni @d)Ρ>75R!`cu]D_[ߍX ]e []UG UՆ(ׄfo_3W; E x:6< LaHGGmZ<SK:O Rېdt=dkq/WoK@J ǚy9M SQ7s%bA4ڍe!Oodٯg 5cv!D.@6ch;a'r\| &+ /)٭g@;FuCᆼT(#wmPl۶~T$hS8)($U>fb/.dqMLpUzKAW{OM+1 We؜Y/yKzFz?Mo1btEQH'ϗQ{Yw+y3r\Ʊ?5\'Vް}p2 *1߶4N0 +b)[va|$IALDݞogVߛ!ߝ<7(le7+1"g./Cf{GN+At[Jfp~@6?C\ l9!Wf[U32Tlr88oj{MFor Tb>koܷ.3Lz-F]ބ&?ke/V>i=?TOdQtu!Ww D%iYg~e9 WsƱ{_1NʵjgsaM`a:XyB6]D7C>wbL)"ZkVyϘJW"ӕoKtcSz棩H901p^0Ϫ?@/~鄹[,v=mr5\tcol !VgDu+k[NdߛTLCs w-ċ'u@7Is*/O" -<_c:wwB 1(·&5ӶkZ6CLDV>]3fTyB:8UJ&,㘀@*0>HHYO[1(`Sz@f1 H㵊czYuw*W(?j|]Ӗ WKczJ+KM2n9 ";o I^]6T(D28%4 Y7us;4R!8db2P yBZwrC3ėȧB_¢øxGcx(pA@޼ed(C4z;R.Vs[vL3B}~_:ht(WjZA'6[gbx%bLMIa·f;&7n7}*+ɰ*5k0ѭ0 Va%،35[={s йVNx S@8@ V#oc'w_HVOJuhx7<:JNeTo6F{\0ȿĎ5s_1Ym^Vy_[~NHg2TTyؖhD 8r> '|blkc PE,}:\}oUgׄa#((C?Ku]o=Nac<fnE{4q?Ȅ1QRHk"TDFL)b#΁@'sNQb1,\54K߁m˵}sK\齮<}}rhM"Ơ'tf@z]ᦨʔt4@J'] ΃c1pO)*hI2C2R6 ؒRrL3GVR<> \jRjVD@ȿG~m4r7Wut!ſmY_6=U‚}]ȟXBg)ݬ(E|@ x<ϟ?m/ϛ d5z<w,TݏGh#X ߍY.ִ0U 09$ [ s,ڗV*>h/Jg vф5؊}^$p!`z ="= oaﳻKD2%aj&S!<沲sόGo#թq-nm87hh(]tr!6A|gZ^劜LSEN;(;A+ɦ`l->X=AZvbA%ӜoӛZJDI:. GM,Ͱtpao#}[܋HE7zZ7wBTXs㭽 !`zR֎|O۳~83Pӳm6>U_z9YsZt9e +ZXi%X_Iְ6!PbE_^?iy_09p9܏TZ+`_ͣ'4'> }$O$CXl/@س<p p6Sq j%le~]j 0#\sS*ϴyqROKgPpEi'|Z&-Ep楢Tm| h:j$6t@(fUo,K8Bn}Ba _=r 0҈FKd4^&sМƧzOy65wCn)M*w%oBx[GO 7s30wۘ'"ԑ6^$ ")(l"zmSa e2JDa9uW jW"B= {Apd8saUEm:w1B9M`,W83ǹUcTr^U3ǞXXS*o=YPMz&o%#.z͠,.r9OaWnC1WTELoNCˎ_!6q(X&4̥&I;$ŏBY6ɰ` ږEp)!v[ ϓY+ܿK`09| ע2ȼɆB4(nW j ӤuW< MiPWDmsald`OSZspl2lb/`0O}]RZYconŪJ%05]d»K_\!cy" Bᰦlg N'́ <&O~[=&bZ+K&" k?22aԏ-FQ~ۏm#wnm~kq]q9r`nTSK&cώ'VkD2.M>o IO]Uh*Juc%I1g1<$?yϴvH)z:zSNGfw fJ1/c CRRai>NR)rEKƝ :.|,S0`d,[&6 xUɣ_oe]J߉ D常 QgA)k'(y;j {͎$V15Ro2ȵ؁ZJ`K_ A8|lK>j.zEƀ6-v{}2;OKC~ F'xp$L ^:SUMzb2r_轢yVSI8S)ĊfA; ff̓T?ݰkJRtzF2vm(Pt0S+ple0{?HE,ȈaUE䓬 qT2ygB3AWP'5p}S\ aF {ਐ7y4jTqj W$lzGF^&9"J %V$HzWMܩRcuN="S_E?:/xbXผlD{TS,Me_)sW%|d~x֌H~[\8?3C+ xf]ClL˄--4᮲jHC <k!ZwMz/H/-d}LPіiU Qhn.~DB} pe}CpD*Tt 4]ґkj_v2k+٘%/+ Xif.#RNqXl8 L)CȝHG^@Q^֊m7qfU/L.ruȕ s̞ں8 vZ$HXͳ8Az\@B{.7l$K5 )# Ljϧl\y;>P4 Ihm07jA6e:Z`i0៕۔pG /VL.kdOku8L)&iK/G= gCuimڷX.x@06P98s (ulZ]/nC)rͥ)AܱItq}pJe)OdH W`uo+nGbyJ˩Ir*Ľ&'aޝo,\װnb,& aު)!elRX& ؽ3q)W񝯬1;B1:0 aB.lk l`=84e *{(t-)V8s H?é٩Qk|ӱ."Ѧˉ?f.񾻯T$n}%I@wjDam`ԛGnC0Ɩ*:qN_L}S?[!\Nzaᑥ 2u> 5͑K`(-*f }n_ҳr1JRăkQ@v'D~jw==[*07OO"opD`ف&@>2u =`J*r6E&ĮAx|MDun`>MF.)QW:m%X)A&zmUϟ~Axɧ)z9u¬ˮ#\?&``d>تZ;z^#l$3pa*8ۤzakvځ 3-y?iSOl.QkY-qܐ 2U.Am!sSX U}#\\YQ[ɸM]oݽNxkxb6J;Pt^VHDMC ck~63n̩. c;dxBd~&Y?:()  6:!܍E~q[p؆tй-.2yn% pZ.>53`d."3o~y D@jЁTMkp.xMHv";h)Snԑ:79Rv3'?4 #~]Kt]1EjR]nxWaMO+@LHJG$Gʒkx_<. H)Յt.!a 7(Q?$r07O?*8Bs7]^d"_LkI:;Om.6tVKL3daLZ6餙oHũIoMWd Q:vc&aAൎ٪!ݬ? Q }RMxZGn%iud\ &naM ƞsRϠ]imVa_ l=2^4cf ys$2֌۟l)4ׄC1 $g =) (8^xsn¶A -پPS"|FB&.p^bK. ԛ_߷Tnc-NN4,킦Nn* kų3jK[m*xİCzo0$`k#X,g/UP*0bzt_a6$]1dVRK< pɴ=K9mPڻ]x`IwD n kO{;?Y{- \P+jBQMl$&BMJ xn|΋(KT+>ljѷe*@ݟ^OMa9=MI}"("b %Ji]Jbv:DJkz1P$s* jR8u+,P+>aZQC,0HB!NС0uƓ&(eޑdrVZn^,$42(?2xEPHdMڐJr ו,*l]3<%7m_p-=tTS4}FJ!z@̖NiF=D p?N5_#q ȸ }.د LW"@$Z󌼛ǟ32%B{IvD@\y8T\|SM&id(v'H}6J#kqk.K< kp;j7.i0C m8uvn Wz\u\FcGKZëy6}\RtOq AKWe$#O! yyW|_?IWJ&a7mwLBOO͉{Жgm20%}ݝ×~}Ϲ%D Ln9Hv>hlwC/+32=0sg`7;al]Pbm2S::aj̧zVH_+15U_:3ƪ8 -#aBcm[zh#kTrpul"͡?lrxaљpͳh_ۆ1 >J긩+K2PVax۽=D4gyᗟA50$Iֵf$7tZj9+K*( fQޤQ9奚_}gmsaś *jzޘE(ᐘ}]Vsp6,p]^[ >kj.8Xjbҝ/霩y.:c+!`hmuSqe Y/AԤb gz!aAGl)I]$ 6җz_<ք]IC4*T7|8~10#Ծ3>-~WH̟FI n}ނM{Mj+^Sjt{UMK&NM4ZgC)oyK KbRĎĻ0+@ ܕ7 fa)0Ҋ;i3AH*'HыJwe"מ8C Vh?Û 'o*X!ё/)}ͳ}aT02`*=|P1w0Jp[bT\|t;l' 1gS+z |cxR8`>ʄL PGd޶ YZ