python-copr-2.0-1.el8> 6 6_ ܉3!y덏%!E/֡f" !E/֡*ݵ%M{yt0"+MQKSarg;D8oE=8.&/GR# 7(.AY)D!QMoY#LսՏ>'u3aϳ`H+':Y ؃*Wv ż2cC.hae{l5c@Z{u1Bf=Df*F$57)Hzn.K[,p' xumj,3h?׻gӥM9)_}e|]- 2D],!pBTqbZqܦ{\|S*-<_^n!ф ʫ8z_1pБh+I$ܢ&Z>i5Q+\ ^`% &m🏝_8R%D0@jQ5-q&%6}J&-fhl!ֵa=A382b20b47c47224b93ee9e0ce611f2598b849d3ac3157056db67ccaecde3db581013e4e30aa3261074f307f3adc409d704e94cadѻ'rҷ㡫 ĭ>5H?8d  248`ds       ((8090:'A,F3GdHlItRx\|]^def4Cpython-copr2.01.el8Python interface for CoprCOPR is lightweight build system. It allows you to create new project in WebUI, and submit new builds and COPR will create yum repository from latest builds. This package contains python interface to access Copr service. Mostly useful for developers only.f3obuildvm-a64-33.iad2.fedoraproject.orgEFedora ProjectFedora ProjectGPL-2.0-or-laterFedora ProjectUnspecifiedpython-copr-2.0.tar.gzhttps://github.com/fedora-copr/coprlinuxnoarchf-&f2e2537b3e54e544d265db00459165ec03934285f781a17bfd74849266db6b4f576ef239bd390c1cba8d3e1c111b9efb7cbc2adbfb033bcdadf5c17ac45d87b7f9 mockbuildmockbuildmockmock  libxsltmakepython3-develpython3-docutilspython3-filelockpython3-munchpython3-pytestpython3-requestspython3-requests-gssapipython3-requests-toolbeltpython3-setuptoolspython3-sixpython3-sphinxrpmlib(CompressedFileNames)rpmlib(FileDigests)util-linux3.0.4-14.6.0-14.14.3f5fLe@dhdld-bd,@dc@cc)@bb@bbJbJbJb4t@ar@a@aUa&0`Ȗ@``P`@__@_/@_2@_2@_16^y^:@^]]]@]>]>\O\=@\73[@[~[h8@Z@ZZ@Z@ZZC@YB@YY@Y@Y:XQ@XX@W@WWv[@WbWL+@WF@W@VVVVT@VzVI@V@V7P@V@UU'T@TmTmTWn@TWn@T3T @T S@S@S0S@S<@S<@SR@S@S@SSFSFS)S(5@S(S @RRJ@RR@RR=R=R@RSRSRSR@R|@Rz/@Rw@RkRj]@RM\@RA~R@-@R9R6R6R6R6Q@Jiri Kyjovsky 2.0-1Jakub Kadlcik 1.132-1Pavel Raiskup 1.131-1Pavel Raiskup 1.130-1Jakub Kadlcik 1.129-1Jiri Kyjovsky 1.128-1Jiri Kyjovsky 1.127-1Jiri Kyjovsky 1.126-1Jakub Kadlcik 1.125-1Jakub Kadlcik 1.124-1Jakub Kadlcik 1.123-1Jiri Kyjovsky 1.122-1Jakub Kadlcik 1.121-1Jakub Kadlcik 1.120-1Pavel Raiskup 1.119-1Pavel Raiskup 1.118-1Pavel Raiskup 1.117-1Pavel Raiskup 1.116-1Silvie Chlupova 1.115-1Silvie Chlupova 1.114-1Silvie Chlupova 1.113-1Pavel Raiskup 1.112-1Pavel Raiskup 1.111-1Jakub Kadlcik 1.110-1Pavel Raiskup 1.109-1Pavel Raiskup 1.108-1Pavel Raiskup 1.107-1Pavel Raiskup 1.106-1Jakub Kadlcik 1.105.3.dev-1Pavel Raiskup 1.105-1Pavel Raiskup 1.104-1Pavel Raiskup 1.103-1Pavel Raiskup 1.102-1Pavel Raiskup 1.101-1Tomas Hrnciar 1.100-1Pavel Raiskup 1.99-1Pavel Raiskup 1.98-1Pavel Raiskup 1.97-1Pavel Raiskup 1.96-1Pavel Raiskup 1.95-1Jakub Kadlčík 1.94-1Miroslav Suchý 1.93-1Miroslav Suchý 1.92-1Miroslav Suchý 1.91-1clime 1.90-1clime 1.89-1Dominik Turecek 1.88-1clime 1.87-1clime 1.86-1clime 1.85-1clime 1.84-1clime 1.83-1clime 1.82-1clime 1.81-1Miroslav Suchý 1.80-1clime 1.79-1clime 1.78-1clime 1.77-1clime 1.76-1clime 1.75-1clime 1.74-1clime 1.73-1clime 1.72-1Miroslav Suchý 1.71-1clime 1.70-1clime 1.69-1Miroslav Suchý 1.68-1Jakub Kadlčík 1.67-1Jakub Kadlčík 1.66-1Miroslav Suchý 1.65-1Miroslav Suchý 1.64-1Miroslav Suchý 1.63-1Miroslav Suchý 1.62-1Miroslav Suchý 1.61-1Miroslav Suchý 1.60-1Miroslav Suchý 1.59-1Miroslav Suchý 1.58-1Miroslav Suchý 1.57-1Valentin Gologuzov 1.56-1Valentin Gologuzov 1.55-1Valentin Gologuzov 1.54-1Valentin Gologuzov 1.53-1Valentin Gologuzov 1.52-1Valentin Gologuzov 1.51-1Valentin Gologuzov 1.50-1Valentin Gologuzov 1.49-1Valentin Gologuzov 1.48-1Valentin Gologuzov 1.47-1Valentin Gologuzov 1.46-1Valentin Gologuzov 1.45-1Valentin Gologuzov 1.44-1Valentin Gologuzov 1.43-1Miroslav Suchý 1.36-1Miroslav Suchý 1.35-1Miroslav Suchý 1.34-1Miroslav Suchý 1.33-1Miroslav Suchý 1.32-1Miroslav Suchý 1.31-1Miroslav Suchý 1.30-1Miroslav Suchý 1.29-1Miroslav Suchý 1.28-1Miroslav Suchý 1.27-1Miroslav Suchý 1.26-1Miroslav Suchý 1.25-1Miroslav Suchý 1.24-1Miroslav Suchý 1.23-1Miroslav Suchý 1.22-1Miroslav Suchý 1.21-1Miroslav Suchý 1.20-1Miroslav Suchý 1.19-1Miroslav Suchý 1.18-1Miroslav Suchý 1.17-1Miroslav Suchý 1.16-1Miroslav Suchý 1.15-1Miroslav Suchý 1.14-1Miroslav Suchý 1.13-1Miroslav Suchý 1.12-1Miroslav Suchý 1.11-1Miroslav Suchý 1.10-1Miroslav Suchý 1.9-1Miroslav Suchý 1.8-1Miroslav Suchý 1.7-1Miroslav Suchý 1.6-1Miroslav Suchý 1.5-1Miroslav Suchý 1.4-1Miroslav Suchý 1.3-1Miroslav Suchý 1.2-1Miroslav Suchý 1.1-1- Allow admins to set storage for new projects- Discourage from deleting objects while paginating over them - Suggest pagination only when a GET request timeouts- don't fail project create action if the new exist_ok=False opt is used- priority=X support added for copr project repositories - several forward/backward compat fixes with libs/tooling- General check if it makes sense to upload SRPM- Rebuilding for release mess- Explicitly ask which user checks the permissions - Make sure user can build in the project before uploading- Add option for follow_fedora_branching- Drop the unneeded marshmallow dependency - Fix APIv3 additional_modules CoprChroot option - More understandable module hotfixes description - Disable appstream by default - Use SPDX license- move to GitHub home page - add external repos for custom build - don't play with sessions if using ApiToken- more generic docs for Client initialization - add runtime_dependencies param doc for project edit- add packit_forge_projects_allowed for Copr projects- Add support for pyp2spec generator - Make requests-gssapi an opt-in dep in PyPI - Return the correct message when all request attempts fail - Add API support for runtime_dependencies - The auth_username() needs to trigger authentication- Disable network on builders by default- really depend on filelock component- drop the python-mock build-requires again- support for GSSAPI added (gssapi=true config option) - better error message when authentication fails - add a connection_attempts, retries connection to Frontend upon failure- add support for resetting fields - allow setting modules in 'edit-chroot' methods- don't BuildRequires pyproject-rpm-macros directly - fix exception caused by default msg value - raise user-friendly exception when on request timeout - print human-readable validation errors in APIv3 - remove macros that reference old Fedoras and EL6 and instroduce EL9- Depend on setuptools for the pkg_resources - APIv3 /monitor route- cli: add regenerate-repos command - doc: fix typo and installation dir for python-copr - python: remove APIv1 and APIv2 from the documentation TOC - python: the package is not in alpha stage anymore - python: update example code in non-documentation README - python: remove all autodoc depending on APIv1 and APIv2 code - python: remove all APIv2 code - beaker-tests-sanity: use APIv3 to obtain project information - Add API entrypoint for regenerating repos- generate webhook secrets using APIv3- allow user to disable generating appstream metadata - new API call for providing ENVRA info for builds- python: drop the deprecated APIv1 code from client - python: add deprecation warning for APIv2 - frontend: test that we can set these options via API - cli: test list-builds, list-packages and get-package output - frontend: document missing isolation argument- support the fedora-review option per-project- allow setting isolation option per chroot- new mock --isolation option - deduplicate APIv3 build-chroot parameters- bump to non-devel version- frontend, python: we cannot order chroots by name - python: synchronize the docs for build options - frontend, cli, python, rpmbuild: better bootstrap config - beaker-tests, cli, frontend, python, rpmbuild: add option to config bootstrap - all: run pytest with -vv in package build - common, cli, python, rpmbuild, frontend, backend: DistGit source method - python: Don't apply bind_proxy in BaseProxy __init__()- drop a redundant %py3dir use- copr-cli API for get-package to support with_latest* args again- fix APIv3 build deletion - warn about deprecated APIv1 - fix v2 client is_a_group_project usage - show obsolete warning on all APIv1 and APIv2 pages - more effective query of packages with their latest builds- fix large recursion problem - enable deleting multiple builds from cli- allow to pick dist-git instance when building modules - fix traceback when wrong url to frontend is specified- add command to list all available chroots- add api support for module_hotfixes - nicer mock-config command output- enable dynamic buildrequires on F31+ - drop comments after %endif- python: fix API for marshmallow 3+ (#934) - frontend, cli, python: support multilib projects (#1)- use plain %setup to fix FTBFS- drop pylint from BR- add CLI for permissions - support temporary projects - print friendly error on http when https is enforced - print helpful hints for config parsing errors - remove unnecessary PY3 condition - re-order spec {Build,}Requires - BuildRequires python3-mock - avoid 'collections.abc' warnings - handle timeout errors - remove old_status column from package table - fix wait function for custom List - remove dependency on python3-configparser- there is no dict comprehension for python2.6 which is in epel6- add support for copr dir to copr-cli - provide a way to wait until builds finish - don't pass proxy object to the wait method - don't fail when no callback - provide a way to wait until builds finish - store a reference to the proxy object - add possibility to query all projects (RhBug: 1130166)- better errors with --config - use git_dir_archive instead of git_dir_pack - document status codes from frontend - pg#251 Make it possible for user to select pyp2rpm template- generate new webhook secret functionality in copr-cli - allow to edit devel_mode on a project - update copyright for the documentation - packaging: Python 2/3, RHEL/Fedora fixes - fix "File 'setup.py' not found" error in readthedocs.org - use readthedocs theme if it is installed- apiv3 - change %{python_sitelib} to %{python2_sitelib} - for py3 use unittest.mock, otherwise mock from python2-mock- rpkg deployment into COPR - containers + releng continuation- add missing frontend states to clientv2- remove Group tag- build python2-copr package conditionally - Remove unnecessary shebang sed in copr-cli.spec and python-copr.spec - fix deps in spec - new custom source method - use username from config if nothing is explicitly specified - remove outdated modularity code - require to specify project when building module- update clients to use https://copr.fedorainfracloud.org as default API endpoint- Remove duplicated Python packagtes, using "." in requirements.txt - Add classifiers to support Python3. - allow to set use_bootstrap_container via API- add SCM api - add deprecation warnings for tito and mockscm methods- Bug 1431035 - coprs should check credentials before uploading source rpm Remove unnecesary condition - Spelling fixes- rename python-copr to python2-copr- allow to modify copr chroots - always send name of the user- pag#67 copr edit-package-tito nulls out fields not edited- allow to submit optional params to mbs - frontend act as a gateway between user and mbs - allow to create module and it's action separately - possibility to submit yaml file to mbs - update auth for current MBS package - rename method for making module to match cli naming - add command for building modules - files can be uploaded via simple MultipartEncoder (RhBug: 1440480) - fix proxyuser when creating modules - replace fedorahosted links - fix setting username on multipart data - proxyuser feature (RhBug: 1381574)- fix python 2.6 incompatibility- edit_chroot implemented - modulemd 1.0.2 compatibility - add method for fetching /api/module/repo - add 'mock-config' command to CLI - added auto-prune project's option - stripped down impl of building from dist-git - Bug 1335168 - Delete build(s) from CLI- dummy api for submitting module builds- Bug 1361344 - RFE: Allow denial of build deletion and resubmitting at project or group level - fix creating group projects - fix search for projects within group (RhBug: 1337247)- run pylint check during build only if python3 is defined - Bug 1335237 - copr create command missing --disable_createrepo - --enable-net option added for create/modify commands of copr-cli - --unlisted-on-hp option add for create/modify commands of copr-cli- configure more packages to run pylint - send confirm only when it is True - add --background option to new build in CLI - honor standard build options for build-package cmd + use package.has_source_type_set in API - _No_ to Url & Upload package types - removing need for source_type in package post data - fix non-existent attribute access for PackageWrapper - experimental support of building packages with copr-cli - added --with-all-builds, --with-latest- build and --with-latest-succeeded-build options for list-packages and get- package cmds- [cli][python][frontend] support forking via CLI - [python-copr] added missing source_type specification for upload & url builds- package manip implemented in Client - refactored building via url and pypi; see df6ad16 - connection error message simplified - print user-friendly error for broken config - implemented rubygems CLI support- Add unicode representation for collections (RhBug: 1327597) - handlers: use list() after map() for chroots - fix download-build for dist-git era file structure (RhBug: 1324847) - implement building via mock - refactor building via tito - implement building via tito - assure python_versions type for pypi builds- allow creating group projects- support building from PyPI- convert bytes to utf-8 in Py3- fix wrong check for list instance- fixes for epel-6+ and fedora-22+ - Added MANIFEST.in for python and cli - updated docs to include project creation method - create new projects now returns newly created project on success - added method to create new projects through ClientV2 - we need six >= 1.9.0 - added support for BuildTask and update docs - W: 67, 8: Unused variable 's' (unused-variable) - W: 70,12: Unused variable 'x' (unused-variable) - Too few public methods (0/1) (too-few-public-methods) - Use % formatting in logging functions but pass the % parameters as arguments - Instance of '...Entity' has no '...' member (no-member) - add Entity tests - initial documentation for ClientV2- pylint cleaning- W: 9, 0: Unused import json (unused-import) - Added marshmallow as dep - since APIv2 we require python-marshmallow- python3 compatibility - Removed __version__ from cli and python - Added version parse from specs instead of __init__ - Fixes to allow copr lib to be installed using setup.py - Fixed invalid classifiers - put client_v2 into package - Display progress bar if python-progress is available - support APIv2- version_info is not namedtuple on epel6 interpreter - fix missing urllib.parse on el7 - use requests-toolbelt to stream SRPM files (RhBug:1261125) - add run_tests.sh script - fix unicode representation of CoprResponse (RhBug:1258915)- implement srpm upload functionality - better error handling (RhBug:1245105) - define %license macro for el6 - el6 needs field numbers- [cli] wrap requests exception (RhBug:1194522) - [python] Bug 1188874 - better unicode handling - [cli] test unicode representation of ProjectWrapper (RhBug:1188874) - [cli] fix unicode representation of ProjectWrapper (RhBug:1188874) - mark license as license in spec- control auto_createrepo property of project through API- [python] support python 2.6- fixed poor decision abou CoprClient constructor, now it accepts kwargs arguments instead of config dict- [python-copr] syntax bugfix- [python-copr] removed log config from client- [python-copr, cli] test coverage - [python-copr, cli] updating copr-cli to use python-copr - [python-copr] minor fixes, added usage examples to docs- [python-copr] fix: we need to support python 2.6 due to epel-6- [python-copr] - bugfix in cancel_build - more docsrtings - using sphinx documentation for rpm build - added instruction to build documentation - re-implemented Response handling - started transition to sphinx documentation - added optional argument `username` to most client methods - removed method `get_build_status`- [python-copr] small fix due to the old version of python-six in RHEL-7- [python-copr] Build python3 package only for fedora - [python-copr] minor description fix in .spec- [python-copr] packaging fixes to satisfy Fedora package guidelines.- change package name: python-copr-client -> python-copr- [python-client] fixed BuildRequires- [python-client] Added new package - [cli] cli now access api through python-client- use correct name of variable- [cli] stop waiting when the status is unknown- [cli] skipped state support- cancel added to the man page - exit code 4 for failed build and man pages updated - error and shell return code 1 when build fails - delete a project - shell return codes with errors - copr-cli cancel fix- be less strict in parsing fas/copr-name- We can choose chroots for new builds - copr-cli waiting fix - building pkgs separately- BR make is not needed - build -doc subpackage only for fedoras - add LICENSE to -doc - replace 'copr' with 'project'- move copr-cli in standalone package- [backend] - pass lock to Actions- [frontend] update to jquery 1.11.0 - [fronted] link username to fas - [cli] allow to build into projects of other users - [backend] do not create repo in destdir - [backend] ensure that only one createrepo is running at the same time - [cli] allow to get data from sent build - temporary workaround for BZ 1065251 - Chroot details API now uses GET instead of POST - when deleting/canceling task, go to same page - add copr modification to web api - 1063311 - admin should be able to delete task - [frontend] Stray end tag h4. - [frontend] another s/coprs/projects/ rename - [frontend] provide info about last successful build - [spec] rhel5 needs group definition even in subpackage - [frontend] move 'you agree' text to dd - [frontend] add margin to chroots-set - [frontend] add margin to field label - [frontend] put disclaimer to paragraph tags - [frontend] use black font color - [frontend] use default filter instead of *_not_filled - [frontend] use markdown template filter - [frontend] use isdigit instead of is_int - [frontend] move Serializer to helpers - [frontend] fix coding style and py3 compatibility - [cli] fix coding style and py3 compatibility - [backend] fix coding style and py3 compatibility- lower testing date - move localized_time into filters - [frontend] update user data after login - [frontend] use iso-8601 date- 1044085 - move timezone modification out of template and make it actually work - clean up temp data if any - [db] timezone can be nullable - [frontend] actually save the timezone to model - fix colision of revision id - 1044085 - frontend: display time in user timezone - [frontend] rebuild stuck task - disable test on i386 - use experimental createrepo_c to get rid of lock on temp files - [frontend] - do not throw ISE when build_id is malformed - [tests] add test for BuildLogic.add - [tests] add test for build resubmission - [frontend] permission checking is done in BuildLogic.add - [frontend] remove BuildLogic.new, use BL.add only - [api] fix validation error handling - [cli] fix initial_pkgs and repos not sent to backend - [frontend] fix BuildsLogic.new not assigning copr to build - [frontend] allow resubmitting builds from monitor - [frontend] allow GET on repeat_build - [frontend] 1050904 - monitor shows not submitted chroots - [frontend] rename active_mock_chroots to active_chroots - [frontend] rename MockChroot.chroot_name to .name - [frontend] 1054474 - drop Copr.build_count nonsense - [tests] fix https and repo generation - [tests] return exit code from manage.py test - 1054472 - Fix deleting multiple SRPMs - [spec] tighten acl on copr-be.conf - [backend] - add missing import - 1054082 - general: encode to utf8 if err in mimetext - [backend] lock log file before writing - 1055594 - mockremote: always unquote pkg url - 1054086 - change vendor tag - mockremote: rawhide instead of $releasever in repos when in rawhide chroot - 1055499 - do not replace version with $releasever on rawhide - 1055119 - do not propagate https until it is properly signed - fix spellings on chroot edit page - 1054341 - be more verbose about allowed licenses - 1054594 - temporary disable https in repo file- add BR python-markdown - [fronted] don't add description to .repo files - [spec] fix with_tests conditional - add build deletion - 1044158 - do not require fas username prior to login - replace http with https in copr-cli and in generated repo file - [cli] UX changes - explicitly state that pkgs is URL - 1053142 - only build copr-cli on el6 - [frontend] correctly handle mangled chroot - [frontend] do not traceback when user malform url - [frontend] change default description and instructions to sound more dangerously - 1052075 - do not set chroots on repeated build - 1052071 - do not throw ISE when copr does not exist- [backend] rhel7-beta do not have comps - 1052073 - correctly parse malformed chroot- [backend] if we could not spawn VM, wait a moment and try again - [backend] use createrepo_c instead of createrepo - 1050952 - check if copr_url exist in config - [frontend] replace newlines in description by space in repo file- 1049460 - correct error message - [cron] manually clean /var/tmp after createrepo- [cli] no need to set const with action=store_true - [cli] code cleanup - 1049460 - print nice error when projects does not exist - 1049392 - require python-setuptools - [backend] add --verbose to log to stderr - [backend] handle KeyboardInterrupt without tons of tracebacks - 1048508 - fix links at projects lists - [backend] in case of error the output is in e.output - [selinux] allow httpd to search - [backend] set number of worker in name of process - [logrotate] rotate every week unconditionally - [backend] do not traceback if jobfile is mangled - [backend] print error messages to stderr - [cli] do not require additional arguments for --nowait - [backend] replace procname with setproctitle - [cli] use copr.fedoraproject.org as default url - [frontend] show monitor even if last build have been canceled - [backend] call correct function - [cli] print errors to stderr - 1044136 - do not print TB if config in mangled - 1044165 - Provide login and token information in the same form as entered to ~/.config-copr - [frontend] code cleanup - [frontend] move rendering of .repo file to helpers - 1043649 - in case of Fedora use $releasever in repo file - [frontend] condition should be in reverse- [backend] log real cause if ansible crash - [frontend] try again if whoosh does not get lock - [backend] if frontend does not respond, repeat - print yum repos nicely - Bump the copr-cli release to 0.2.0 with all the changes made - Refer to the man page for more information about the configuration file for copr-cli - Rework the layout of the list command - Fix parsing the copr_url from the configuration file - [backend] run createrepo as copr user - 1040615 - wrap lines with long URL- [frontend] inicialize variable- [frontend] fix latest build variable overwrite- [backend] store jobs in id-chroot.json file - [frontend] handle unknown build/chroot status - use newstyle ansible variables- [frontend] smarter package name parsing - [frontend] extend range to allow 0 - handle default timeout on backend - initial support for SCL - [backend] create word readable files in result directory - [backend] print tracebacks - [frontend] monitor: display only pkg name w/o version - [doc] update api docs - [doc] update copr-cli manpage - [cli] list only name, description and instructions - [cli] add support for build status & build monitor - [frontend] add build status to API - [playbook] do not overwrite mockchain - [backend] add spece between options - [backend] pass mock options correctly - [frontend] support markdown in description and instructions - [backend] Add macros to mockchain define arguments - [backend] Pass copr username and project name to MockRemote - [backend] Handle additional macro specification in MockRemote - [frontend] monitor: show results per package - [frontend] add favicon - [backend] quote strings before passing to mockchain - send chroots with via callback to frontend - [cli] change cli to new api call - enhance API documentation - add yum_repos to coprs/user API call - [frontend] provide link to description of allowed content - [backend] we pass just one chroot - [backend] - variable play is not defined - if createrepo fail, run it again - [cron] fix syntax error - [man] state that --chroot for create command is required - [spec] enable tests - [howto] add note about upgrading db schema - [frontend]: add copr monitor - [tests]: replace test_allowed_one - [tests]: fix for BuildChroots & new backend view - [frontend] rewrite backend view to use Build <-> Chroot relation - [frontend] add Build <-> Chroot relation - 1030493 - [cli] check that at least one chroot is entered - [frontend] typo - fixup! [tests]: fix test_build_logic to handle BuildChroot - fixup! [frontend] add ActionsLogic - [tests]: fix test_build_logic to handle BuildChroot - [spec] enable/disable test using variable - add migration script - add table build_chroot - [frontend] skip legal-flag actions when dumping waiting actions - [frontend] rewrite backend view to use Build <-> Chroot relation - [frontend] add ActionsLogic - [frontend] create BuildChroot objects on new build - [frontend] add Build <-> Chroot relation - [frontend] add StatusEnum - [frontend] fix name -> coprname typo - [frontend] remove unused imports - [frontend] add missing json import - [backend] rework ip address extraction - ownership of /etc/copr should be just normal - [backend] - wrap up returning action in "action" blok - [backend] rename backend api url - [backend] handle "rename" action - [backend] handle "delete" action - base handling of actions - move callback to frontend to separate object - secure waiting_actions with password - pick only individual builds - make address, where we send legal flags, configurable - send email to root after legal flag have been raised- 1028235 - add disclaimer about repos - fix pagination - fix one failing test- suggest correct name of repo file - we could not use releasever macro - no need to capitalize Projects - another s/copr/project - add link to header for sign-in - fix failing tests - UX - let textarea will full widht of box - UX - make background of hovered builds darker - generate yum repo for each chroot of copr - align table header same way as ordinary rows - enable resulting repo and disable gpgchecks- do not send parameters when we neither need them nor use them - authenticate using api login, not using username - disable editing name of project - Add commented out WTF_CSRF_ENABLED = True to configs - Use new session for each test - fix test_coprs_general failures - fix test_coprs_builds failures - Add WTF_CSRF_ENABLED = False to unit test config - PEP8 fixes - Fix compatibility with wtforms 0.9 - typo s/submited/submitted/ - UX - show details of build only after click - add link to FAQ to footer - UX - add placeholders - UX - add asterisk to required fields - dynamicly generate url for home - add footer- catch IOError from libravatar if there is no network- do not normalize url - specify full prefix of http - execute playbook using /usr/bin/ansible-playbook - use ssh transport - check after connection is made - add notes about debuging mockremote - clean up instance even when worker fails - normalize paths before using - do not use exception variable - operator should be preceded and followed by space - remove trailing whitespace - convert comment to docstring - use ssh transport - do not create new ansible connection, reuse self.conn - run copr-be.py as copr - s/Copr/Project/ where we use copr in meaning of projects - number will link to those coprs, to which it refers - run log and jobgrab as copr user - log event to log file - convert comment into docstring - use unbufferred output for copr-be.py - hint how to set ec2 variables - document sleeptime - document copr_url for copr-cli - document how to set api key for copr-cli - do not create list of list - document SECRET_KEY variable - make note how to become admin - instruct people to install selinux with frontend- prune old builds - require python-decorator - remove requirements.txt - move TODO-backend to our wiki - create pid file in /var/run/copr-backend - add backend service file for systemd - remove daemonize option in config - use python logging - create pid file in /var/run by default - do not create destdir - use daemon module instead of home brew function - fix default location of copr-be.conf - 2 tests fixed, one still failing - fix failing test test_fail_on_missing_dash - fixing test_fail_on_nonexistent_copr test - run frontend unit tests when building package - Adjust URLs in the unit-tests to their new structure - Adjust the CLI to call the adjuste endpoint of the API - Adjust API endpoint to reflects the UI endpoints in their url structure - First pass at adding fedmsg hooks.- 1008532 - require python2-devel - add note about ssh keys to copr-setup.txt - set home of copr user to system default- 1008532 - backend should own _pkgdocdir - 1008532 - backend should owns /etc/copr as well - 1008532 - require logrotate - 1008532 - do not distribute empty copr.if - 1008532 - use %{?_smp_mflags} macro with make - move jobsdir to /var/lib/copr/jobs - correct playbooks path - selinux with enforce can be used for frontend- add BR python-devel - generate selinux type for /var/lib/copr and /var/log/copr - clean up backend setup instructions - initial selinux subpackage- 1008532 - use __python2 instead of __python - 1008532 - do not mark man page as doc - 1008532 - preserve timestamp- add logrotate file- be clear how we create tgz- fix typo - move frontend data into /var/lib/copr - no need to own /usr/share/copr by copr-fe - mark application as executable - coprs_frontend does not need to be owned by copr-fe - add executable attribute to copr-be.py - remove shebang from dispatcher.py - squeeze description into 80 chars - fix typo - frontend need argparse too - move results into /var/lib/copr/public_html - name of dir is just copr-%version - Remove un-necessary quote that breaks the tests - Adjust unit-tests to the new urls - Update the URL to be based upon a /user/copr/ structure - comment config copr-be.conf and add defaults - put examples of builderpb.yml and terminatepb.yml into doc dir - more detailed description of copr-be.conf - move files in config directory not directory itself - include copr-be.conf - include copr-be.py - create copr with lighttpd group - edit backend part of copr-setup.txt - remove fedora16 and add 19 and 20 - create -doc subpackage with python documentation - add generated documentation on gitignore list - add script to generate python documentation - copr-setup.txt change to for mock - rhel6 do not know _pkgdocdir macro - make instruction clear - require recent whoosh - add support for libravatar - include backend in rpm - add notes about lighttpd config files and how to deploy them - do not list file twice - move log file to /var/log - change destdir in copr-be.conf.example - lightweight is the word and buildsystem has more meaning than 'koji'. - restart apache after upgrade of frontend - own directory where backend put results - removal of hidden-file-or-dir /usr/share/copr/coprs_frontend/coprs/logic/.coprs_logic.py.swo - copr-backend.noarch: W: spelling-error %description -l en_US latests -> latest, latest's, la tests - simplify configuration - introduce /etc/copr/copr*.conf - Replace "with" statements with @TransactionDecorator decorator - add python-flexmock to deps of frontend - remove sentence which does not have meaning - change api token expiration to 120 days and make it configurable - create_chroot must be run as copr-fe user - add note that you have to add chroots to db - mark config.py as config so it is not overwritten during upgrade - own directory data/whooshee/copr_user_whoosheer - gcc is not needed - sqlite db must be owned by copr-fe user - copr does not work with selinux - create subdirs under data/openid_store - suggest to install frontend as package from copr repository - on el6 add python-argparse to BR - add python-requests to BR - add python-setuptools to BR - maintain apache configuration on one place only - apache 2.4 changed access control - require python-psycopg2 - postgresql server is not needed - document how to create db - add to HOWTO how to create db - require python-alembic - add python-flask-script and python-flask-whooshee to requirements - change user in coprs.conf.example to copr-fe - fix paths in coprs.conf.example - copr is noarch package - add note where to configure frontend - move frontend to /usr/share/copr/coprs_frontend - put production placeholders in coprs_frontend/coprs/config.py - put frontend into copr.spec - web application should be put in /usr/share/%{name}- new package built with titonoarchbuildvm-a64-33.iad2.fedoraproject.org 1727869807python-copr-2.0.tar.gzpython-copr.speccpiogzip9https://bugz.fedoraproject.org/python-coprutf-87a9e1a6f43a6db1cd534961526f087867adbe61e9a210b93d98feadbe7083355?Cx% Хc۶m6;mضm۶mgvwSֵ8 7 7 +OVS7\\ll\X#+# +/GÀoܶgha*0^ ̣Y-p tW4=Qn;D}ӊ}E_ ϖ˦|3m<hqo~ _ן6 69mt7wI 5*bbA1-&f!Qcml˶]18 ')D uK(m{%jS;J+EH_jBChվo4HpJ@4ՐQ=؁'GKK-ܬ=f\3y) k" )*vy۷;feŚ_|aׯ%VQ.N3mˬUY.j"zFS*rPıB^oQp?dAHP \CYK 9R̻{1@੟ `Wʴppڂl8>}exZz2Rc}N-i).8ku ^ܑy(=vu0| xVK ~`_hPh)4(L.cțNejP.KpdfMgx Hly-O}M (|uHW-VEmR:#*C>b8`89eւ jjiQS%E9(W'PK?z=eFO4!*U%R7tr[-Yb4jicA-QRh.5[כ*lk ạ[A%H6/+Gx֢G>yJӅIыH(i4c"(WJ&92]J +v55<:w$(RIsB2K8໊'QYKiYҹbgeB L&Y#Nё(\e4XORzb6d7̫&L*#!O(d06|KQoYdžu8z?vsR#yx86:;d`>҈^É:Jo렎ve>8qbÃې"ۻ }-0Zx' 8}7Ba" 5Q'"bsB9XSl=׽`909D)4sc$ dnG z@HFLAԓxT kQ%s_y+1^~-^739 `A+g`9ǙYԠg7]b^jH@c\6F򕉈}5jIF^ R ",3;Gq/H!{_nLI \{93E :OT yE$dl_ RYaORNNBsw驔೪hd\肹6Gw}g{Yd8Wuz&&#Ԧ1vtw0[]QHlvĔ@K^:SshG- ~$=ɆBGP%d ޫ_Ht6o;!73͒@S] ^ȏMO(?\Z`L~$a%VprF$,BPsgZ$DYeY99ȫfv8뙜 q]Ô>)s1*S5}N$/3F qTZ{#EG)tMosx!4.&ǟz EV,ʾ4 BBNt%c_SAǻ.9 N"wpɌ|\ ϭINukg%riV+FZPODfwRR7)%יj~fjL" Ə~= -XCer'!-WёɉG@X/PM}U{VR7B2>+\t35,O/*B7-^T(?xQQ%lt_q VXxPqn\+(fzoYʹkdisP0lfeJvH=^;`#I<\iJ)]K#LO]EҡqlE p_T@.uɑjxHr6B 5G'^JGc]gèJl*.UNJ.]11stuRKSW6& :tF2!Y s@Qش?w\Dܔ2IZJټGIvDeZ(Iz88ACU o{VnpY3\ I1-0Y]A/ϩ'iFXH:0V'"P yVM21 @2tlw/2ֹJ%c?h]ؿNH$Z$Xaʚ ~!H5TOC-H*_ΩE2Z.`Nqfc۵%|&鏍i,7p :JŅAlĖwov0'Kٴe/!Ƥ6Jب\CD0IJg!{Acb^.kqDpJʱ6CkH鎅[lYΠE2ұ F & 1JȡEo%` cbqt%-vz`.`N:A5iMm+GydPXSH"d5*3qDžA vk]_ښkQ 7[u^ROE$їIp9źyL0#[,LgO{('##MʄL:fKk#Hq$3WJX#{=^燚4FIE5[u1*^ɶf fߏ,㈔)gXl(qѐ#:ؙ1Bw8ڥ俨(>+izº[Wj]u ;xDovEXMre8@󝘖A:1`V&4UֳZ0iFPk?GwہGXNa!NzŽkm=aKQH9ΠqU]ߑlYRI*1ClDLy)gLRz{,v;Mc-I.ZL]z|s󪯄 #B AǺWLÝ^'( M" ׮p:o3-\ ;(Xpi- jVCy|H c盤o(>)º>vN21-,_}m^9C\>$J8=#*0.)!OQ?b,"I'8ˋ+YbwX_v@ l>wu&s[#r]o(BoiZĵT귋MI=(\̉j'NA5ydy5 @ۏ*`>8گ.k5oF{' xB.{}]~})s%&=Klyg{= !n'^uYz ÏN#FT |" Fv^S\kJBwO?M?/D #ۆ+m/y{ZPWP_wxnЌGx^C³2qvb?HQMayp_&a_{|ev 0d.S_g0UAa>־+]&8,Aw϶~(ϮUoKIaߟ zKC׮^O2|Ro|4݁M?+cO}M $dTvo~QK6 ֕Do3pdTŪ@b?i^QoNuZVw[%RP5VTN N:dN1y~sD_ -0 $I_>bW;SXh ,A߻x5[CW;؟['ɪya'1{yOS[N`;Lv[ k~g'1ss6 ]' =Տwy_^sSۛ}>‹ZQOkԿCoRwR͵@YN#|5qbUAODQp==8F,9cՔ,џ([\tTbKR㐦#APzbHnLZ7ScF"yYBgAnɡ.ΟQ)gCc`'=26'eo` f[A'qiHDo+2\YXxL0іJ+b?I5F@$g0(ICN˜W[א_/Abo nd/iؖ< 1^כ cDܰ MV54ᇦSlɆ7ssE mB9jN9FU T楒eo g΅FDb[#nA`=wĨ+R)E.$]ģtի#+.ڦ}m!. x|mnt""hlyX\[/$^6֢0"(hֲwrD { N$Yy\꣟}~D8H.mC dXU B4:5L$\pSH2"NC6cD/HiZn"$ü1cџP9,eu$f VrL Tuz:5"os _gןn`9ajY;D_?B(`OӚ7 `^(N>2500CάTC (_) 5fd#MX«f\6 E%EU.ihoއn+cW 'fTAب,$H`\oܗdG(xSq YL'lv6}$cTK~l;âtWQӫW g%(kٿd,Ul0>ypBVW=n1AAm~_tIrG)W &5~QRR jK冽t?6[LfQw9n؍\RI]&_%,lc2#j}dC_&lz”rzn4'fʦ >RZQkFqf?@|c˖Zӵ=ϩ+[.ؽIg Ж}x'JJ,nkY&Hb\:|`*ߍ;.nv ]ku 7kQUr-❉-c~ψk?p;syz_V7uL׏ ݯtC~?1*`Cc1>Gu.ʖbP/)[&F<eN?=>rvm!\oSI"Nު%U2FecOF޺]ӅĢ4 AR@7;QL)~M"R̂j$VV8 =acm6K؇ָ;EPA85 z,Qu ?Z0 X.{m XF>&x~GAߴP)ǥxܓ|C7}[R?4##:+ۓsْL޹@' QW|Ch4©NCQg;I2E7ɅGb+Z1rb7СZ)L$#}8G`([uYods76>>>?`wUw0s goi ,D[$g-xE$),Ʈpn儲,%I*%cž4Iޤh{l>zB-Р(IƳ6`$D=|\빘2rkrG VvH[#C"w(i5٨t{Z1`Ԣ<_[Z}~#&saag>4v6Q<Ȓt9}ػXpRs&@JQR5t"RȤqϏ"B0٤kh2Orm 꼹SNMIxk>6rIv%})(^-Owgx~λ ԇ;T(ȳ Q8mn2xzY'sY;u]zбrZ\<0fQ !)hL+X*I{8U\Mr=[Cxe6\L3Y3ǯ_u||u0WX:qet EjU!ΚR+L To Coj峸-LڭD CL]:Nb 4qR+li8*PgnScf8dZIvt}YN(G@?á-` 8ˊ'xBhps3W#)kERXuG\#OkpUCccԸ [G }Il}5yQBKQ"̆Fي[nBǢy|טG{E=9HuHk)$qPm,կG^ħ.wriqeDDHÄYVAQp`;/TI9G3.GCr 2f2@d1kx}c!#8Xnks3ӂ$tZI*gC<#(+GJaֆ4O([Y XTJG/r6+XX(I}:'.c#,$)~an FKؗ\v?Vx)ev4]eQ$Z\:<(OWTuWޫ!%Ί~ԿB߬:gc)P0Ǡ5)u]_Ǿ-}坾kCyog-P$Kosvo&fMK #aS^g\yh@k= NI ECs"Wr豴PH4XSi@B: j`g6":d6wzS2B:r⽗̳Ԫ\.>y8k' -'|U%6N ۳{ J wn*t8+/vcm묀Srzبx-tY#V)%d/ ݘnh~O܇KF4%>dEZT]mzJY<3T/6RQA/7o'qb8o\m16\<ܢ/3mg[Wښ%߫8ppl+N :䳌D܀lW+|C~a)(f!QiM:+A9[)ɬkH׿˞V-$~0( YA:x%|m C̬_Cs{O퉆*(xTލ/;L17\A7VY{Tơ$NJlj̮xvc~kD7 "b'Y.gA2w򿇥sQ ZB?O-JWGC"1.LWG6Aθj|c+%]`O߸l-N0b@.!ٛ}]aubR),T2 ͆ om ꛁ,-aHq={&h"ʱTX$E4 9 ^e!lz\#YUU]0qnr|Y[@H=e\ȦWc>:0u̱vT~6I6{nB~N~B_hm>kr?{wB 5D=SW5AOg"e\$㨃d.md;gkSd|,]+NP];zѭ=RCګȚ_"8 U'cO a jYgїDstZE\ȺZ@m{m`r=GЅQJ^_΀̉|PffSgƛ<;I[0;Ucsc0BCg9[( W`M=;y %|5%ooV{#@^>J,m-1n(6s;|9zkA`tV3w8/}DIi9o>jh23<˽#3ͻYd,KJAlvfv̄@ZI7u{4?ѽi/Ļv(<™q[ZG6 ף$w:;p01Fc͘ *τ{ ''1~$cqPqALIїBWSX!>VS$P9$wrNnڵvpDkP†B~v]o{mbpABdUIMFц 8bB딣gj/JC@]W[qQt7hQyoVlq Fk5BУ%g9L뼾U =JjhzᯃPT4@ʻQ>t# Ph*״Nu`tGab@?WYNry?Pu*b?\hrbv"[w) ЅzF]M WgѲy 7\=$wCHe 8"~o D๓%A5Po^[|#֜)rm;&'^ldf2@n7ʍ\pPV1d.5YZCIuˋD_~<Q˜`+IZK]h_灷:07U+[oc2⭿堃bMUK) }t/} +Oy\I3e_n`}hCI7>6Nº~]-[ܭ>jWދcy6+t ,40& hZzrT"-V*gE14x_ 1@ɱMM~[Q$8$TN)(k^gdEgwG.^߆NY/X_#:,s;q3^˩&?'i%.:g7FY~/:4o7٪7Cu->oˊ}(1rRl+rYNmު8X Ȏ$ 4;fcX[N|^9HD" tYux&S`Niۙ jjC [t0OӲ~hss!gV؎w(ܙ:d3a-~}=~8Wo;28!R};^?ftƄcVI/&T %1Hfj)R*q &>|#I}If=zy7mFp(ȕ'=ŨΝkivSkcaܵ2ȚZONF(y}==%o"]M\|A{Zc,dfN#F# I!Fw5 daFNɩ l۾Pӭӊ''wE19Bn)v )i>:yR#M ͢v'4;H/T9a?,k4ݙOl1$Ů;ʬ\) E ` 4|6/5M&;gNKޅ\Gr" ఛM6 +U}M^B酧jue(ea>ӏ`1VNډpxb\v]t}M@$Bэ EnXa#*S y\Nr f ޡ؏F/V'te7EmQuc(1h2!!b1.Z}NǷnHR:XHdn װ /Oo^:JVsSP?Ԭ dN\筯k|.I6f_rOil븬S^Ϸ@= fp e w5 WxJUB;u=q2[.Nl*bU̸0I9qo{*1>7t߳3Q/mO1SbLP]'xe*j`hep )A.ME23,Z%3t0=_ɧՈ8xFc}U1_<0g&x6Q)9.5Ƕ!,eMhQaUEG(ՆzbζQףL+۳KzF- Ou13K7p%:xD~ŵҽ=v ndciȾ ݥdvmZ; '$ͅ>pؼE.!z4Α0D4>؛MW0Ntc#kǺ Y1쓞zb*)}F`ݦ-eo3il9B)SWdk^2YLzFʭ/AE7yAtj "*Gt+r|dq_m.916eX&ZW㋄% V\Q.~Kf4gZj@μ:ZK&?Bwm e?;3"d"jz,\BnhD+7Lxvv6ō*j@y\E^kF ?$)|ޝB;z:Hxk7L"j\I[ ]~Z[.a(<5goIuӻ x"fgE] Xۛ zO]fO7Q-ȢT:N+MwCߗ,]]䪫*ȷAUfV6 ;bx yO1,Qʈ9q !.1kF F]<?g2m:2s/%@Nmrdiڇ(6@N/Ө-Tku+oqݚ [:ŭtIaZ$0JDj& Z=LZ 8oO<铕 À!OڽG"o5!f?D[lyzFGˁ9x L(`5?BFƇ9T 2P$afy$ؾ]LR$&<5ᄎѱ1*A?0vCn.`IpKw%1 i`U䬚wyMF@%ŏຕ@%.H$b4 }>Q;_8 Gcvcڨ? b7勤^4:)2X)07ֻKY:p \'3p̂`## D,I׍3}jṿT"p#_n?ʳVcQ4"؟$E@!PSƕy6ea]$_Oq¹bq/#=h8OrӲ~ JV'!I q\b2xcwqҲMYh"l_?Ug^=cY*[rT+fĈs!2rOܞ75:d&w|<djcL$׮4aLL%гr@Tf|_t"i}v NZZQ>JgWQɅR"W8Lu}3d{yͤ?V;V:k3Fh.vj^!absE%M:;{o[˚^&|蝦~v=jrԄ셻z+}9[>(8Q^EX!w >`r)E9Iq/ck#"j 2jBfp칭SY3n1MinV򳔝@@(]Yh!j@MeC1ƚ|0:PX:97JG0.]ͮO0Tdž,K&)un%1M,3O;O4G_Uy'@+l 'Ұowd1{0-F iOKgJaObe|#!׍s6e!ww Ɠ}̅Y_5I*w2)eꎶ^@TkqN_1W/TЋn[]=%RR#~}v bP|7xc8`2O sNɡVZZ)3YqkE-eL_˂TurH懫ª;qc#9YHK0fzNBgć(@9-Ǿ6l)+O> `!MCGaFe]`t~00ã-bRrpAql.ޅÌ UUWGcaXWT,ZҖYv-L8>A+Xwش(mz՝ӊAz*dbQM rԿcnYFc:y_v[x֔EF7 @TM Cx굩RnYb>%"ݘ:8fj`ؗrI5񦅃+$na5**>"&,eH[X!!,K}sSpU3q ?s.#:VpW__>`z1񗕇0C+ʚYbl ߘ[=a ,=FAm_Xi"Zӡ}uFW=pw~S:n0֓b4r;I(gg8SRʥSFW>9O2\@J~p=eCg*f/]\V0 :79%K&!Hkf%7Et#Ho ǥ6,7/1;O~]T,\a$.AFB8 g'o +[<V̛2@oɌjі?OMZrjⴛBP4AU}F)[2*GQu&ϑYoNz4NC T dET$pJ#v2lV˥M@9ﰽJ?ߛp(6"mzzWagMcmPs/ 28'`VdCո n-',>0u-lY+7(q" Lʖ]wX=z4:DajL"扣jݻfV2a3lmrg*fyodz/Ƕ&4r!䇥 "/Ͻipv YL*UΝME<]ɷhkL񝸩[=[e=no 4!_,ۓ~2w?;wDe$9=V븹s6/$㏹zxzNQZTcد>D ^~l׉ɷc yZ^fxb^'uOsInS226D7-m65mͯRR2LW\ljW8Hs$ݢԟv< ii|m^~A>Q%wdrbύ 9)f"VX%-l s{ׁ[ejqW%jJ/Jch ߅1eN"'Nkhl<]eZQ*"qdKpL|f./Ӭm`Tg4Z&Jq8նo9ӥyDY;%FM4mEe1ܸl[=rA&\al ~R^Y{)Np p20ҶWS^D {;E$B m$ipD悘@f ʦĮ ;Qew5m0eّ1tfY)AUsdUO|=i9*W}uu8MrTZKԎˑ8])xކcUBDd=ɬ^2d21WLnJⲷb(*-H]p3yuɖ|a{'a0""oi2[=km0`x;77wok%?Wu\agng{@`ch^]y)6Q[ŇO˯Cؖ;8 V7QNޖwG )ݩ+zVt4ھݰI\Qhᾮivvb]OCr*/s\}O2?}N7o;綟eQ@۹vo'_wy|򞇠0DiY? /d%dA~)@tEk"53I88?r\/2.ۻۻw!A(٘:iwp߉9fC2o^>dLe<{.{w_xK4~K*ʂ\ٙ`Fv~uh4v4DgVt+}/%m`Z'Ƴ8;}#R>X~ܳ븲{/82y4R][>s܅z_ex-ݪ?+u.Ӏfq|ٖJ~SSE>r +k1KN)߾#V{/}@,5{|baIHl:r@I8t8`x[&ja\Zq`E&Qjk0%K,e䴶#gˏʹUI<-_zӞhU}`z7 z[튷7Vcu>p{1X]x,;qRX,s؅zdYNH ;''@F0'[ xd>AOW!Լ:EyE$fusO xh2RN:uC=|$4v+UƜC fQO*[B{pFOJdS;r-3Ԥ0'?{B>mj܌5g}蒟-c ~e\pG cv|O|*Ohꍕ_;LD2Ls^&u嘟6HL1:u!BA '{̴ᯢeQArJ`1"/O>busxP2@aQ_V5i8Vrq]n=MH$΍I6p)0쒴{ϔG cFa_ -ͅEut}#0p`fh~ˮ\-s*3}@N{cg^uA]m)W~i@e~3hh- 5of5~=MM?#OB?GGQx)D9LL":#(rW1KAJkPqP'"n+΃53۴ ¢vZ[td;Rw .L-x'[CǺt'c 6\*-1Qp7͢ùw+Sx־[ًU;wGDL^<p]Ӟ+(]6BPnq8tƩ`6hAk8h-TPiM&`3{MzY0!{,t_*d\Vc>m P'0ȭ}nR$GS~S^[ȶ?6+%u4ʂV`Īu!JqԈ&Wjo&,ɪ:̚i?.q4.AπjY^NkWKkjXvb\)_S:)H;d`k=9D Ck4ȕ H8/:Ou (TnO!͍2+ 怒;pM:@4WWs6md4 RCgWz洰uQ,pVS Xx֮*(xBGJ2e|"1Q'fl~·0#@?.;R?CoOb4Ror{ݤKJM;l5}Ynp05培5wZL]2x64̯T4, usl:lo0-Y&P[N85mDtPgamqfQ.ԠogMHpNXHΛzqznq]$ t>ժ%u.Hiߺ֧\Y&zQtnڻ{w[x=}` ^<9TX+Z?HPXN:R|XioTG Ә9ǝ+,DJ4a_i22"GNsL'F\"Wp L]. EtlNu'˦O\d!Jf6o+e7HB{]/gSRbs-*(e)3IKg`6o mY9k? |>]sX=$ ^:uV8m~ ,ח` r>+JcYR3ɠBWC5Id 31[2oȓ0j3ޕCyD:R/xͰTJ]]SuJP2 me:Y6\^8\ ^\]3\x-[˻[ߝyD7+uY9% v( K1K>+ KHs.`3@a?R US1C;96#":rs6r[4d,HD%>&PқXC?ueYV `YP/Q{_<~'Z&OUOǬ <;^ m]M$,`{&''}4d$Q~jq?y?gop98Js?m5dW|[{yfd=48^ع!; ΑySxAބNt$ףD,9Р=R_ҡjo-C}*!u(DtY4f's~A6+O&N8O0XV=8 }ևqQe(fRfi qDt6A?ET0拘36VfD֬,m-zF'c6ݕrAAT|ь`'qE}Kp}s> o$  A|:bEA0q\zU{g &CdԔCi̕cVdFAf&+Wsb61A;Q8a4$hpd6͂Dk H#v2k54 D$ƊR#P`>a6K6^~ZY]7:Fq^A&-+`V-@ZHiqy鹋ÂfeekRݩ--:gnWv{*oCHdiilRχJaD  ! 4I=`d"xmdsq;#\M<,-KHٔw-FfCIxr/3[/:[& ;+!a5cٰ+ h&"9O ˑT^X8W)v!h!k9tz"NX/5 3"a#,,Ph EYulm34#!7Ks轭\+>"{ݽj;4 lҩUTrUmlhU;u7D t:9ڢ7ߌ'#1tC3&2"w}rϏ$TD?ZsPu`gKZ;[8]I..+,)K>^H8. JpՂyk (\y%es#])>bs($kk=P.ڻw{lf^MN,ܫTyf!<`{$)1LwxW/~|<͓K_ʋ/ {D_z#y2TvMM=u-xG}wz&?C'-HTOf@kfh- 럛25iXuf>+9c8lu'wp|v KWB0t.Xŏ\Sgd֓NG΁t={YA#۠yxG0}B9fCC.iŪL!=Cb'1wi xb`A܆3 R]ۿ* w";=Q *R"m@wy΢HZ9j?2%Le ޺eJ=_#, t!-mO3s5>q& ҫ ;g} ͚ʖPmI/ҋXO0:m.|v ʑH[Dx9pqӝ;p5]1L*t(Z>( X"0US:!,,ؕ }U܎H,l`lkr7R5Ij R# mSH4Ð} 37PٛXU&ڳyL<,6Amjn_<~JW@Ύ c~ne#W d@ AVKiz*$LU/[S0^6(pa 9V 7,]ȮA~rx`:4jn“O, oZV@KC=9rkY#377|$f7Ú{;;[x1%vkug{gFA588[-K!we_5׀SAZ*6YA6]hDmiwv1)kfR5q.ceGHI]qR"'D=gln=,t+>59C~좭f34mFcӤ?LW$<1Oñƌ4z|0_}&yޝlEEp; VA"'ƏNΊ p]&uA=g<5{C$ȖD{%^<|ZV= è{Ajwh 1{F Y $= 0b\ Ϻ  aޖU٫60P"(ǗvNctA3#~y0>^=/b]+cص IB|G K jZ7-p +JG %W!3>XPp $ }v#V 鋵笿c"AzzΥɔ^~m}zj"Ԋ{}zM;&Jvuuv(.hsfYkQʖ`3sZ7SWG(kyA-2NI_KD&z4DE0^Gŗ \`Aw\ٛU ԕC.QXG]Fw1.j%ֳ5ۡyJtt˶ͽvrLjrµͨ;Kҏwř`~l޻H[vbĵo>kJs³dSkL.w;wx>/|H%Qc$ @|GXvv{6==R_)!ec "gcTe `ryʃ# ' E&Vh.Nd4ޤwYsث=b Cf{ѝN#5DB'!*V qSRʟ[7=}O[w ZoO^~;2I .fb6y(')G[Hz08Of\&uoVҬ<{~ZOsL9ǰ3d) 50ɛ]\N%һUD%sB<# X@/'$YtQYӿpe5MSN/1Iih|VH[8ŰqeAs" wG9?{% ԡ%?ơ2+16ddC,Y4fa0MMuʒDrX.QB'/V(W?0Mئ!02Oϡ&ax??66RDGWF1_VqB.roa+8HH8 $u! cnT\G\]-i>!8p”WЧPk4yo^?4LE92m,jD7> Q:񴝺8;:φã \+A67Sځo`p, 2CAqS4}t;b" 1w$N@^yL3.(oC7ygCU̹)Td`SϹFL(4auC/6ߩ mO`4=IܗԳEocJf΂GVёުؙҕgũXʰvMM`Hff%9m^)l"HVh)daMPVf cH;;|si%jIi0p--ږmTVۍ)kuDxVF˖-).c$:]j|ӡ?A+]>h#n .֞IgIJd-]{XģtdLa^KhM걍ƿگh`EQr,Zt6JE.Qip.)Z^ ]UHtVѩ !;nMG-6! ~~<KۙrfpDXJ,7K_<| fۋfP pMkH01!ÞƳqRKE55|)>GkW*Y]rc&'$j!*ޜt윹k e$>%R$eW%;ȓzfxΌ} V=&P%fFC{ESd.U?I82Cl^\Hsd\8Y2mr X!$''6޼|iWdjz ?˥%dki\ݰ40 u,IF|s\G\20H9FQ`Xև+ᶋbB+IٶzhK#QY"HD t*vݿŸR.i~ǏZp7eRكie9UmKn#^vjlv묦T, 'f%0R{no4zWؙN@wfjkm W涔ީr[X33d*bi9d^ُl7e;"i)Zm lԽنApN? JLkoQO?ӿE71rn6[]ȶZwYKK;jK?;݂gg6'9iiikbE#b`-W*[MfF~OLGSZ^% u =KӰuBL9bA4J'p=ys>3!Hg*HIJRe=Y"߯4%#Fg4%Jq 7{q%чw({?{Ay{BDac~Îǂ j+&Q0$߲iR(DCM&aP .K01YͪfCR8uc,rׁpGlr"졞¼-gf}\mṰׯ@!'ST nC/.Gc o6Y9@k PXA6`Bk)[|*nM@GCi?bOGˍd{aD^6ßE;c1/zXWE8i!Di>?}Tmߦϋղ 8W$v Cq=Pf֠o.|gu! ]ts(3F O&M)utŸP7mDp*TndƤ&'nG,ޙb:Hb> كd"}ƶ >Ԙ'Z1V]7fRq\-襱?mR+6q8Tw,~4ѥx9tqL*p~^ mfMS&b3 SANM8L(#C9|cڬVIg, *J’N@{#-׸C2`Wgb DIR_ao;X?,b!3rWĮ=y_LO-)D1äZudlJ0+B)PB4^,i@:3z.sXYK3'Z%_gws^cS_ؠESxQ;Xyh'M{hKE` $k?րb$hUu/d7IH-\ ʥ&=3D}Lo"ZMe>C0Hw&*ofܧTP!xܧT! Ԋ:!;8G cgf#?>s^!ʿD=(8~OoT } !UeѳpfOAϢ1X:9|Vf6%%^蟛wr,N‸]o&Q8%8؜XZ&NLY`o.ѹHer]lE'kJ1JŌ rmY\ +U~pl| ܺ[=P]NV $%9B/ ɲY݂(aO/Ж z|s;,wBH,rCMaqbaqOYJy\Se;g6wZlƗlF͜W|@7db=t/Q8c:%X=XS= Qr8Vv'Y q bq<Tcwq`Q> uvw;;Zo*MeNT-dXm![;.Yt-7܁\G 4 w8݀ao>x{JW wH*PENRy12@,SOz7abݚjh~-rmXfLz ; +dJ%T2XjM]CzVLA4"vԦ;qt 93˲(bUsxewABI7_aoJ/X~?q ;D>mQ߇tZs@ǹ@-_" ]>PNTb,ڴA QM13?3Qb<{ImC6_wwȕw. 4ؗ3X2ɒ3<$.Y E6yfIM5Tڤ9äiG*Fs~jH,5-St@2~obe i5DX`@0΄Fљ؊bhM{TqgmPr2I*ߪaY؄ɦ J`ҷ)|&ۏHlΒ^=Crhub^sG +;@"R(qsJ|T!y5 Z9Y.M,{^5zQB26{»H* X!h"uMV82g5%T{|Mـ!m!~c8:r}Cn/30BW3Yp: `4!莢.=íc5A40:B_k /..M8Tyicj X?gfo;?E〯 gf 鈺Qh+ NI}$C 2YɇZ2E}ĨjSX)paIr`~u>ZdJya4KRP/'ʅ|HWZ tNgW(.[Esl>R9['aͅmLMHrO/[޹b,]D/`  x+Ϧ*tKdTքDl0J987&3CK^g:IĶ=t@ lLq!QƔ%,j@P%~Q.nauy̪ۖ8.G "HsE%;Gs6`lp!’&X#>$G28a}"Bs~"* (rh`ƁX30]1Br-2^Y]!~eJX,;2ZY j*3@y) O ;M$A1idT"@!a Ftd6m) kPK#t ij1vQAϴ^Aޡ^-(8?N\mѓÄ !QM.S"•|4OqLJ)D7C,i 9mXDf[)o%zbaU2ĄgYڻ= "8M#fAdm܊:εWY\xeB̒5.얕ʊù˥<-۸/2ع%3G٢u>G\o:+ a30_wL[jֱx?a}Y8sY 4*#͡or[Kp^yXHW1#يL\` }36|ҹ f3lc+hfnwϜgz,,wk{}6+I+H$f|"ԁr& b Ƶ'9Cӡ" t94gۭT^\2JAzPU-)ʫ蚛!@CbA^KF5xW]za48sI1Rs)$+}>M~ ^OoRS|$"hIr>VtC>_kfښ/;׎<ܦNgfHCxi._]:cP$o4PצqD{^HӍ%h  tY8 U`8QW4 qJ+mJu06Q/J(XSYD,¸]Y-\åI >%*^@ +:ͬ0U.9$bH] wcWR**5DՋe$N<V{\XMw%>]KCh#DaK %.ܼhast&'o T*oi#˼p}HD&0GIB(^mVb. b+愲gl08!R@9OH#M@hԇ8( 7=^1i2mriYS2gY`Z6Fu\V$p‚uI+a N;F$CyȊ2vb#W #f=#i01.,jH7޼| Ҝ[[*GEeP~r "D7/9".΢ .ݧtSi!˛c1oowZ{Vsk|`ԛMrrsF΀V}h!84wI $N3{L xϕ .SY{*" RpQ^HʟOɸߴC3fI%o8/"Y{>9QsҶю!Bx3K>ƜN`Nڎ.(ț3T{ - :p6ɩ V>]5mBX႞MZc,4Z' 95c~Co#P""/spͿN: *2H3aqv"TTbʮTIZ,!{#f=\6u@,8d I$G /dWM0gF czw%RW0DZ7W*%)!&Ms]y}h`ԟDDkJ$H<눑Nrz6rwe;Ϟ \1+=.61N`1}ާc{P- b>{nthXFT+LC$5D#wkb`MJƫ^ Sf"i&a38ox7d-3jH5Wƒ(lL+W|WQ;pqWFA:JB:|(}gWF"#iX=$А?p:W>$R6~"0IoQW>,6^r"4=4 NAi$ZGjs>}diZ4d4 Я3L_^IoW=LND 4M,=:x!o,~,4ٔI-8)N$ߦ0ݞTĪA$ pwwCLCp&/sO {ɀ)h" 6؈ʏ& &mESZ/ \XTR{vcўKZu> V+K4AL̢Pы;D'Ow%L'8iGCufݤC=rR޷Nɽ$tx* 3ϤLiVΡ~mU'z;3(O0`Ul󖘴YbRZ1Nb3Pi e P]4Q6Cʁ|Ry8tmQA e{3bOHvbfyn\C'ωxA\NC |Bx([2.ck,7`=fb5ۄPv 4Mϐ=PPo^>1e졋&00ld؊_-l5'Kn+gSj=nZ,BSY$υ6yȖOA33v𦋒\Ȉ +1:QFb@G$bmCnNw`DIXsE$8NjmO3Z/7j_2N`0&SZgK0G=&6h*3p!f,tfCiEV1ALk*(N "ׅ{m-]i5$e- K~M̮7w;m!"lMIʻ%%`qY(HB UI5cw/.j|ƐSBt.Zz&8 ?7K{0zBD-ũb`cTaAA.‭E絈UnkI$ hY9.9`kY+H5;, 2 x95}5TmBD?[˯*6rwuYywÀ⪿޳}g!G53Tz^$%JBBAi0f)!mRE) Δ] i}Y7A4K,45SNoVD ٓIX!Q#/Pp83l8ͻ4SZ+&]q"K90w;)Cr=Ybvv?oi6ֺ`L{ԅ%t`ȺJ6GgiIU(SZ#0܈tTԬT@c^Qk* ՙ4a-Ț}5IJ+/b=}cT~u 9? *[x8[]ɂG !'CN'wC$ET@<"dtvO6FQ+-=tF+j f<z~r*-=<$CQRCbi7q}0R GL(<3H!qGY'v1"{iX$ 94?%iܿ>pGٴ Lnr\p72?vxjKG* XTe5a VIxFA<'[i;7*yMڭok}G0AYT f_+> Oׇ~p!"c?z\Ds*?I8ݢF~|oUڞM'xVSF7+o^>5X&\ӣ P $ΠRL$R1='PIt/د"l贔qrS<Ƅx@9G`K0O46 WqtsB9,KsmSFk5Q^ }B\9 ί*^L?N+E4IP}DR ^|v9ћ8e[^gU7®W^E^ezMj/ܥM {`lsUY ?^yK$WJELΙ0i g.^9yR;zɬ|(X\0K[%![+% 2İ)NEﮪѱHg%+bh@&d_k4Й5i mDŽ!ĜC:+E.׋a%|mϟpYΖ% )5F#|98rg0wrgv=%'SvR;R iý؅r|P@NK"?Ĝy ap@.ݝwBY:K_gUaO PDpn 3uߴV6 W>؛pM E _.ިG-?ϳbF<5FԀ^S\57)5)*7LP,=QQjH NU.,~QWɬ&C)V7},lnm贺w /^xýDe gѱt9%T_Yv\>/?x1T^s9~[x.euѤ;:'K\e=X{n!m l:͐l| ^C"V*V-ů Mw`V<-Y- _prJ׮ѰFY{s m!GF(~1Y?zLPZK'[_$#^~A\HWy7٭!0:|Ie='@0\'g׿g@ DzVxIхF`tL %0[y= gnio٬ Ƣ6 Nz&h&- .p~XjvrɐX)68l {Zg~mx_p=xl&m N !Kvc 8,V)xO|7:;do86fN.YyK8ڇclԍM ,@M.x=`3? |8&[&鎌xnõ_4^'x^xVC˳!FǗ9fĄaW>7e'gꑆ2Ea`&AKY8r ӖF5 Lj"Km\8ֱ] ۋ}bTГ;kX#;br8, "/?x9ީ&:B C xVj0M̺,<8?G#'}F W/Oѹ۫}IJN:eωzze;*B|@ x>uӜ^iGGja_(#Dݢ *bl 8F΄LQE l3+qĀnAȆ.5/Ɍ#t0){9{ص6e/B#Oڜ]Y9)9@dEd&G|C ?!h&42 Zm70`kn}qH82˾ڥ+^q 5>p`;F 77JNćD|㘖z<myT9/ 47z0j9,bE Ƒ'+@z-F%5T0#{=SckL1L^Ls-3g MWR !8x[?=C;kcC9)֟U@[\=)FzSWG%1RPfv uH@E"SӮ,sJƅ)`\ܘ2K|ڨ#{fAMY6]vapa'2+*|"""U+6M Au5{@@S`7әMJ`¬vӧZ`  HyeI2UPrKAT$bE>XQ^bާpLyRGG PQr[-`#Y:}T4וka2G$/:өefv&^g?>O)+ٹNoDLp D\äˬzwΕA}|ҾMt< '; mV<0ZMc]j݆eW mrI*IY-{)+  ʟN1`IzN~D±@}ۤY^ ۭmf5nJ;3 |;L6/d [iujc])˗=yX eslE"`Y(Pd-Z[9xb'axfZDp h|44K-p< #.cWrp`&?mDFb^sW]]ۈMhN~!UW+2ܬx(awq"Ca8eEFebttUvԜtud u4"2ǘX~Bn_OOp-ۥ0zL$Z.GA_8W+W_ٞ q< /lr>a!`e"zeXcYkII/Y3}'@47<ˎV~KQtRgO^Wy."aK6 |aWkPP/(t ~_]y:+ܼ^B?wVjǞOe-tK#ȐF:YlBS\B(%\ eZSD$3qbaL)ݙ OoHaȀ1[EEBuW9? !hV&4Խy\?%lvMlM*0M3wlfi}E!,%#kȾ"[vs}Dq>uy =-o]uEk19ҩWT.;Cp҇Ѧ3C:;jo[d|+i*/cw;]յ͓?A+4ew{Es|g9==gҔB僨=Z jGׄddͨ>:^=sZ#=8eE ntmŠѮ.{]8=ie)u,i,>3i:=3l-.{3×\{]1{LVrT[̴vD=NʎRv}+>'?osQ/zzi)T]3Lnn>҈VZQԷ@۫MD[㮎Z!=N)ިs1&-oxb6#vvaqwMUϭ{kf\W=b)-=u0U^mҜgjY)390*r`Gƛlz:8+fmfZIYt(z澵m}Qk޻iazhm/WETo32F\zhdWu{i-;9ndhnI%RVV1cf:dW\E 3GYc|ۺm#/l1@xi3|o%WOK,J9ߤmZ7,ҹaOMeܳrQ-t[轡{ ͹K3zjM;_O/.>rML˷eg04Ӭ3ݯo7ŵi Kv筘XvfF>)pkH'46}}m̓GGCt]9cRf+:Zݰclc鼱y.( 9=B|\§s%Y67a/[|[dM;~]L֮-WvrK;{aټG?Uy <3L/gc{o/lblϖMWI|5s`ph']t`b8'׫̨nҾ< -?.o6咠8i@y;vbP߸y52 ׅ?x`MPz-eem}yRՄ%ffFhYF˾؛^s{ ]n]5ejן?\,_NQKoƦ*3vH{=Ы?mf}+ O^Iw?J̦ӗnk@X<֫[E[̿){Z+2 Rƴor}t[\#x׽E=Wwnr>MՅZtsgfXZwnV>{^nI2Aĺ1׻Κh]w;rKVyŧo̚4#)qB̂v\z~Ɖ%1ǛٮN XZ1aMQ?ߪZ7yq;[si#jI:B,6E[a^Lq0SzGو-wWeL;B%-Ya5 wL\G=7䞙9Omm.c N7m5ic^XÞ{mEE%D7Hqѧm[tNV!Mu@:aھj.njqc{*_ ]N{Oh.gvЛԬU;~v݅X[ej޼6k7 7ZwڞÆ gm-ZTw1j`-nviɂeȫ$pu i9,u wdDN\7/mN,cߜ\$~>lY<"CR<ηŵ:5Cnjք5WM%˗06'V A|Es9"yWOGvz1ٟ-Z ||?8r{Za]ʞ_^QW6D'WN|Yxуѵ]k\2!j%FS6ƽֻÃ0vUSMzI~iwV:᭻e&).S;›RtmY&䐰cO:H {<'[k@%= Cm'͙|9^9};-LGmN߉xܻTҢ҇Ot61dw}v̼x?W[zH)sFt~Cznq;3U+wھ)p/o_fRO& &_l- wvm|n'Lm +|c6OX|{܄E8 pWS$wmL3}]w5XW5Sƥz'b&;^+m181N·|1-V#+hcodި;>wQwΚ=a iݮϋ^\%Gpeւ?t^x)|}^yIyi'K08zagM'ի̋)M}ޥ /rxo$|EƕM{~IlTM:ꕾâǘ:*D/*%EoڜiFZS۷-zǰ~0zbe.w?y[ŲJNl*_NGV؁(n)e>7Vr6xjȇԹ].L}MU2}DEV8%I]Vl|+LF'e=>d2ߍZYS .OV=hzِ1L[$,{:eWBD_u!p5H_5.06Nߎ[S;q{XQ@Re.?v94봉iH'&z&x}rxͱkT\,/??xwWk&~A}}f#yV>:^'_s~kk|m/Z}6o;7RrFmN>Nध: -=m~Eljbwsya-CJ:ЙmvBҢSy`i߾A:7x\n%^{MVg[kkGƪ\"E M>ņGղ}r>hmcmǠ?/0M|7xctn1}6LvW=r3|MOf-y).]JT8:Q\II~ף}hGuX[=vVl:-_sԧUNw &p׋!aVXzN0W[fM:1Hs ?/U!<7{DV ӹ'?>֌q]XQ_Lʭcyӻzm;`S[gϹV̾y\wc'Qa 5$yVWҼtξퟶ{=݂guVvYzNnr"i-gW蟳oeHrOJӖxb% m#*G0fx8y?/d5G@8gLl=:=5,~< w<6E~jS/E'`=2sLz:5͓iW'8?fevKl /=u<;yt咫V[?LZqF>v=Y۩3hNeڝw5Gϥnݵj̞=znʮtY)ssuGmWf+N6aWیV}^lYŠt3^7wDd1Klw/[36l+'1, z v"E^.1v̥7fw=kG{^O= 4at~+Kdv(fzDlk>u>,EN4fѻv{Z\jNηW9(|qho_v5K.]={/XoV基! w{OM;\5㽌W2W/8ܳv.m^V0sj.Kլ &9Bu֊ޟ9Nek c˛b.O~X[*г|޲{SO7czƏL]e] ϗU:cUE~?Ze݅Dh;ηOd-8-viBs)'%^q%:޹ߩyA?ڰ얊V>0o{ʐYCwێ1O?'#wdVFMwapA-iu+QnxXxdf'!+L~Zة]ū7<~^kRVd\!>UgjdƼ{*n^JrNG!>/jwb䪋]wK̳5'߯b\5kם?w'rs%Y,%Mw/i92S0첷e^5?|sny#z8k OfxlT`kM V5oeVХ/vb GYlk[s`S}3w-G]ohWN :YN^,ibYlͅ޴h=(whqEw~p?9U~"CawΞaevu,ᏙAl/_33}sHNԮ}38>P\|tӧ&{vsR_ )mE1Z~c}k̃冋.|6G/ŭG^͗G+{LWgj#kzI{f8U]n=le+gw[4.-2MȚ;pqn9ao^Q}9^~n_غZowC3+iL 'm΅(*ߔyJWrپ*?iQ 1u,YxRclhMֲnw^{aPSͦ]&╹ӝ2c0W܉J2dxl$8˃lIugVou03\dM$Nͧf#K:~rA>˓1ٟ:.R̫kP5lUO-([nsrzd[eͪⶓk]ow-pm0gq}7?^~[UwbN7 aYWZ}>=J{(E??wxSpSݗ3lSOM-U>L8,6eUD+ƛ=ˍ==& /ƸF "Xc6q5RymW;6dv!ςͻvdn-'3-|L/ _c3WߍwS #^bux#zo_[}/,$;[}#K+Ur{#'hD^ u>|c׽Vd9ԡ iYM/lݜo޲cYAFMsFeT񌐳}N NqrƵQ&ҡ"z?GJhCOط5x}nYF'hn̆ǾR0j闙gt5-[gfR}㸨v8np#=..y%t=1+jLM~Ęz]fSyxxg 'QNFWW1*ZM]L:Zu@nElܼ#X>'?xc f h]l{ Wuyx\c}"z[;A7^[n7~GY\>ߝznj$Φ+{%Fyp똒-F$<ũ[YSsŧgdBG\u3׻#_owӼslˮ ZyPމ[' 8KVmXA± ]❺Ǵ_4,۱ڬ'[bşxK1݇?#˸:)}{)7NF94/pv`LW#Amʍ +~Di;\}2smWL~Kߓ`}-GU :woNkUvm:|Lܐ;io t\`0kha.| 鳾$~7/[;˂ gcXx)ܗ%&ߴi9ֳ ExN(X1vYaQmkΨ.y~yzڋ5d\zсkw,&*zN:rT/b% ׎;1oM5wZrw_v)q<4r\{,Bb7z ƍڭ}UvёW7q0z#TSi0J: SHT:EQzeu)&p}O]J_\?Sxep][nԙ=W?ܙWJϏ>7TA'Kӭ^6bq}@uiw{wzZP<6.o鱼աu.n]d/NU3kA듒|diق5Zq9K~-l=w.B?OvٗhseJ}-*<'\Uvd}Їߕ_y8>$n l!+L-Vv6},/|+梏޵?t]hMxs5BkEk͚>-kㄪ<ϫ~j':]zU/E:s '(Ջ0{q鍽N-_9W^~1+֑T⳻?''){,^1纇źϷ}>eiz!?F/{'~Aؐ+3]ƭlqA~ʮCG (v 8:[e]&ļ_p$ޤ/Ͼ\/ݔ8#pjw+i{>cK\Z`s$ka7. S Vųʇߏ:7{Q70>NHhthߨ]b%9wMi:qG_LAŻӔb^.nRvŽ nō~ݝC"o$ҷ5|ߊacD<1k]x%SO]]2,nTa7T=қ#ߚj{ B?VM4׍{rFH.wpݝ-byӊ#,=zcq~Ra61߲uNf[}͉v7gsp%E!m:9|Q9+wuXߣkPW޺s?b~w|J*4_uLx%E}&y9v,ݏUVZneOYR7lrgMbg?4%hfXu[u]}]xzHa%:NV>;LKiL^_fWFѾO~i_wį֏9}-s\KݺX>~yuCyծ8v_ʟfefhh]tǕeӛpv᳘\V0deTBIer iiY DhSy+Ka FL/E1++\ X)cX"Kz) c 0Gc>\!J+ \є ʉ*+OFOטP1\H7Z@Kȏ@4&₦C `JL(UE;b/sѤ rcR T`<9:c9 ㉤TET<>ADsL)TJhPh4`Ʌ2%@CC $Xe"K"Y% ,YIDL&<%Ol=|h|P-P_ >EC% E"d2`<KDW9ha`z$*J\DAAĸ<P $v (S)h=d "&(:T,5ifDhplrT~քaߣ/MH^c ue~/+fiEEF q=I[6w#ƙW?$%&W68` %ǁAĠ%FD2$A0# !GMOj߼YT),\}o ~G?%pM//RK!s,,WK%RHV8(3SQf'Lji\&6 1L6' 18i">p'1@ E0h  t @Ѐ2l0r1&|OHP&' ͨmM׍qUXh-!ݭ `JNNS"JvL i4i5Ŕ@i.0o9 ?djB킓Ct"o0(X40 pŔ ^Br8 a,vv>4V``䂯3 D[30(<Q w. Ӆߨd f|D󐩧'=)\BM5 *09-68a`|@BR` B.W4b?HI!I`dDCP!%ř+W 4;zn3Yb$%Rph$S܋\%WkXOX(40< 3"Fy8_}Y(I1:aQ4aD2(E`#ák] ӝX';.j&8TWYR֐E+ēFަFLZSZ4H)H'd%?yʚq\vG BuC"S!8DP;<`8M`A?`D %|%%ñ <Á%ۦS`sીߡ2W{ŒAV@p5 FAIp@5Db? )aĨC"d*BB@ƸuCI0d C"pp4IJ6 *\@o l'cLވȀhԼH-EjSi&~a E%.&Et]#i  *EF%Q6N 9 <*șu;J蠭C B5 nT rWKetEpk #1' P>8hnI77H0PA9}<\YIe,X4 BR@`3g|Y ; @а@M >\_~n,4Ehu` |ɰEiLvK2 9L77^e"dC 3Ij%NlVwc;e@Po.$ur|o6Kur(t8\x8E2B!2)ca1n opa29dD85V #D* ` X}TǬyR(=W2,jP1;xsk)mʻWPP_MC UFX_K7O@qB-k\Ds̥67`1YjԖ@"#eU"QAE04RhSULG=2x`##(] /̹[#% KFq){hJ|0trj4$=NfzaP2?J2! ze@ H0_ .fU6DY{L &l{L#U& qxȹH@]J',^S$M60QTE*`%%L(Q4toR1 ML(8J ~Ba33A`t0 P {O8q4֨(U,F5DCχHT%~qUd_avKDl0~oп*%9j$b *JZrЇj Ig*uG"heQq(PTŇqFr(KI:H`u@Ř;Ҟ rd0T所 $+4q3&pˆ$X+G,%M(B٭XKyшWqS2Bf85sXp/AXHP^0f1,'U(;RDT‡@HkF18Tj ʓ (AQLԼ+ $BյЏ֬#顎.n]r PzPϔ[ _ Q 04Q H+0wv!AIhh%*;4‰&RY?U/si>:rED4 8Z3 Ϡr11h +XlĈ ͞ɪ5eɔ MÑ}H)+|lHȁyiҋˡ UWUUo@;W ,{>DSXC9Ǩb@y( !ʮW(H,okl:ەnCj d##!8Fj<htt!h,pbH@p)+  #D Ā`ezB,W Fӣ!,?:rFVC?I(!j=Dq$rِ9dNQ4wU|ЖE# {+QPԑfɦ"k@w 4LxdrD]5XWр'd2xFJ(APJM0,lE{+lpl p7%W(HNH+iJcՠX  ;Н(աd$r\c\!odՉQԜO<30•Jh,&Ŧ{Ey%R(D(;JDf`/˨{ |L 7)ܣi42!IEPX5uT+!ԥ^ßT4cem'$3A. 2 C@hJ%|\QJM8parUHbfJ}ZqlJ6ɴWYxDP>fUpLhU0Novh=eq6,zN ͐apCU2q(r1e8,#.."[Q5">X!zh:h4:]N>"+4%AGȾ_[گn:@hH|5*ok%HnL$!c")df$ w ԰ǐ $QssHpvBILTvv#-:b@ڄ2MOCi-ˀLppb|3!nTq]=dP^"qP 5Gr! cUX0:NXmFgWuJ"De"r(ӈCk:F+J!jm+Qjy@7í$YRk8 I4i~ò]hX5UoBKhS-p5d,RP D戋'~;]I@F-- Te8QPtLT+QR{hSlKL O:$XN;:4g;$diGH<|4w`hP3 ZM>|r<'uףqLE*96`uNΙ i &O@,'A,iᰚ+'ta4(EpQy0r A= \2 k =Qm/\ f_$5ET 6,F- ֛Ȱz+RxK#ȷ6KK(L$ $H* ' df@Z'j2!ThskP >hVJ4 i2Q)X@PXJd1CL?`U:9dE.O_@Qv O J`0 M&<E,F#- 2)<Սk1S0 ɒ6m?i ۉAGK$]_Aat$Pj"hBGPx 4fx94@Ase8@Mvb2m1[puuu r^P+U~S#}aQ6^ x 2'O" "DsE0$/IQ(7A@Δ5Kz~8k0+%QxGZ'Tb0Amp”S u5)׃'D D"aKeJAeXqIeM%3th`tY }TE2$`12M 'uZf8]}D/#3RxX=Pn>!JNEd2 ae Q.HA"SR#Jwћ &]mjd 5|4ffVvkb( %(wq8x,"mtIf!TT-7AL!)(dOP f@CrUʹɩ`)J(*E$N}LNz,X'B"Kբ wFg6%bt T:(xB1쁁`m Ks(}`P(JdGaҼ+JP9T"otnb!Ex@L+T]qL8HP!c Dտ]Gy+ V~H(sٍCF@&" 丫zpAYP 3L&QkK#$Aj(ΪSysoaSN֢B)EZ(܃Hb%hlD *Ҍ)n7y9 $< 9 L6!D&lF#d bqt3=uШ R&jT˗de2X UƠ1d%'&l fTt WʌV8d8mȋJ# X)ki_ U+cwQE]¬op:Oy ]P_` cMl5nt_&Mƃ*Ԕ. Сkշ]i R'`4"Ɔnn+$oiR6$$<(^'cQHl⌆j x uU TJQ(Zhi|)u2|5tB"( 5\UQU $xS3"#FU<Q0P b!?Ih\[.BԂ#F( -"w0js {_[ |!u؎Z ?4<6C5-Rd !n]s'7m%HrÑ Q`ρA@A]EZ` %MmLgcQM9 f]0,0DXIa:7< UcU8 J cp-1 hkJ1(;ܴ6J*R#'N2BOn y8yR5&~(^b:{QB.D:"^x\Πw IsI5BQL 4-u0ρm+bd):X_0eM!hC{D(t^Z#"kv~ A6qIT{g bB=L$TXMm|ĎH744[/h"G NHl Am6qR@NqmI,lxXTR^n4|$v`)w)K-rبދf;\Y_bm[ $=I!HӜ2S ٓk7Du \9 @xUb12VyǜnàI\9cW7S̈́Ky@~~Sv 8 |V-ZC ֤gR9#HyW%],`1*{5Ie};u\yD␌z#%eJˆ*E3i'ލϚLl<2;)lWF h-(m?%zL[y7$͖l9ifO M,cZeyM['Kz] XuvlqFm 4K!#~Y3k9P~E<5ID\ݨNqⅺO4p *slH>D@GG#Kʦaq1K7x YQҰZ,&q<ta0 J{hGTS!Pި#q&JˉѬٖY;=JV\ tq@ riǑYg9K&}& G6H+2 ޳ BiчiE SMnQ@?c4nMq2#QR~ڛP<|^ܚi& [?ok@:;@r6YFъBdDK/΂g}5dKI6h[cEy?[QoKp)ݛӍ_w!|!FT~>R 7jI4ZkQ#WΑ'`{MIw4Y҃Z>[ OÅbRx߾x fсZkZ$Ǯ4>2 ٔ qP;(l wRs΃d;㹊I8=zTuП ܄.77u49H褮]}p\X,.?*Pk-e\:I9sY]`|+op.z1Pk&D*®=AT38IW 8N{17E9Zқ*ֵXZJo:d}/lmF•{Z5cco^~ / A%,,Q]t~:PujGX^C31"0+`Ґț7'fY:!J8͚Dmo&IP;r:ԇ)KtP%=_+lmq'8.-~NjVT-.6%65Rpszx8Y^ҢOV\+6Q }THj4Ňb-eYED`Cle>%1EVM { RIR`#[韬f0{LTeW73Tw4c6 ͕xYCLAXe$%FbHv S MQeq(tSԨ_%}3#z/ CEsaٗ]¸_~p^5(oS{*IexgXSbJ7v׳Z#-\:󊽯'OY7qm9Bew6撞ՔAi[Z^1[Kaar?}ŝYR\C6=}qvz> !aDs&w>E>7Wz%\ACjqW&N@>B;1)Mкy؁7_o:=0]W eUM%PiH// ϠބH-ko/f(҄Hab?Uǧ79( 5L>b@PH乍D1=h 0Zɸ^ռO%nEmY]m,Y|ۻjBAWNSz^q䫤Wƛ*4rHtg,_l$ ]Y\1{޻MaSxY5BS9垔8E/^Z뉚FÓ' #i Gh9)z`>B{,&}/N3i?|"))ل?6 n 7|sAYҬ3S{"1rڍu !e;FU>O՚$0ܬ1C`F3ESP3?nY TR}ΰazVY¢ WlM\ZŁD\us-,5%H`@gL=wWԕHp`?u\kԎNQA6&V~+CzA%c/#M2nPwk&;jMdGm]M^BdtĞq}~]>ǒQmq0*_ pfۉwJ߽S PY5>jn|({]?ٹ#D~3FJeͩ_0U%=xsңjSMsϹqaiqɾ' 0 8_VU! 6+}XK lƩCĭd܀Bj̇s) _lb_&JF9J[T@@)6才#+..!ڟםN`^b& CMx0͋뚦Z;Wb4%i3oyI-CZO7GF"]&vIKepnjpw)ݿ]-M8?R&m{V-H91eC]J&.w<sy t s*=`0vu(%w6 룃Cr^k,o>~UZI{YvٵZ>5]Z{/H}poP3Gf6{E,zl&@)&N:kb9?{ӳңtg̎