openQA-common-4.5.1526033850.1ad9148d-lp150.2.3.1 4>$  Ap[&F/=„C=5C+mm&G]XLĭS v .<"D7N7xYZU_#. /}7LvZX,:Sحa{5 4 hմٓ 鰹@MEc a! v>/Wy}AM<I/QB} G]_iyro,ǣP7_`-0#֪ Z7bOg@er80"(%?q3WERW_1ɥp@?d( 4 i  "GMTh j   l - .047^7:@OT'O'S'(S8S9V:_!=FFNG`H IXdY\p]^.$bc3defluvwx\yzDTX^CopenQA-common4.5.1526033850.1ad9148dlp150.2.3.1The openQA common tools for web-frontend and workersThis package contain shared resources for openQA web-frontend and openQA workers.[&7lamb16 P6openSUSE Leap 15.0openSUSEGPL-2.0+http://bugs.opensuse.orgDevelopment/Tools/Otherhttp://os-autoinst.github.io/openQA/linuxnoarchif [ "$1" = 1 ]; then # upgrade from openQA -> openQA-common (before -> after package split) # old data needs to be moved to new locations else cpio fail during package deploying if [ -d "/var/lib/openqa/" -a ! -d "/var/lib/openqa/share" ]; then echo "### performing migration of openQA data" mkdir "/var/lib/openqa/share" if [ -e "/var/lib/openqa/factory" ]; then echo "### moving /var/lib/openqa/factory to /var/lib/openqa/share/" mv "/var/lib/openqa/factory" "/var/lib/openqa/share/" fi fi fi r"2 G#>)H6c<&~` \ (gjL 8S +E.sk{0{  2jQr6+ I 5@ v{j0 PJ hTH;#6 W$&cJATb>@]MSc GE* 2 N/N*r9O`"  AAAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤AAA큤A큤A큤A큤A큤A큤AAAA큤AA["R["RZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm["SZmZm["SZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm["S["S["R["R["Se15ecb9c77fcf16610b1005751bbd27b56bb9d8aa7e65d4bcc4b78a71183e196cf13c007980b300c247f89133d0b281e7e8e9cfdec5737c0b9a2c572765b65f83adff038c17957eafc248b6ce5ce7c2706ce8c41235e50e224bbfb3cb99bc2909cf0eee584ea3ae7e0e0e7ce988cb36cc9b7735ba012ddf3fa8de248005e04ce1cd2f71d253554e69dcaafff22e3c0f90a00051c216cb1a0964f255f2671858fb936f90bafcc85a68faecf8eac8b08fedecac3d0adbb04a2fab2316316314a313cc9e0155471939b04003c1d478f9d224bcbc640d8bc6ee511b58b62d1d122483d48b61eac84c9199de204fbc554f5b0184ea105f49ade9a563083cd6aeb002e1fbbe73566cc149a7fb0b15163fc911caac27e0d7acd7f36abc4eb1bd929d9e17f2967cf6e54d5b3460bafb959add7147f141a48b5eea08d01bfd0f75dafa3c63576b7f87132eb9b765cc13e57a3f25982995d3d451c65a30af2e45a9cdcd9a4b8e5b4df4a7288d2a22badaffa73843eee3c33a0c21992b1df0765b71c96f43157af0119a755ed0b48eea0f6e6a083da8caa5ec08f4786a225cf3f512fb7bc5175dbd74c9953c68f68733275dc2e94b2067be5ac57e4b03ab999ba7d28a2a09f41b7d5104076f572941a80a828a2439a85dec0b764a7dcd6f160ba1ef82dc009cc44b32981d35f91a399e3de16bde33e3eab8489126d03267e32c3a8930975594a181bb1eafac965dcdce77577cda9dc69f590fb23cfb5ea69d85e01055f61dc4d28287c52c30b8628d5bbf4ecf8cdf2b107bc8c41a75d7ac31ba8cd481141b644a8923c74538dfb48ab18988c74c1e553753f218c5e2470c0d0bd27cfcbe79fb1e8c5382cd42205ec8634ef02ad47fe6cec4c762fd629a620444de37de408ac8490502d55b53678b082b5c8ceeb7b7fc60973842c0ccc084b2d5d7dd90013fc270344af6e7582ce6f8e9e40027550ab8e83fffb34127092bb1abf3e205fcd82530aae5d49de204ad1568066601e1a2f93cc359f49bdd0961be4cd65d7eb867ba3fe25ab1257805293066019818173e2b98384c9b8bef345c708f6ae1233b2370f4071d71e51efbebf431cf9469c09a23c8a104d9f5504ee9bbb9aacb00d581d5fe2a9a7330e32d2f1da4953e706a7234178a518f1e0f999b6bbb299f1e37edf70fbc4a05ee4b46d41e6b6985f5eed9803c07fc400bd0d69c9f4942f13360cb5e2ea10067b8d897cb987a6139ed6c899641e3d24008db84429f203f49d7782ee405f0bd40645654507bba7646c1f673b2ff6f83b0197a99219f6f2281c0832ad2a97d020a04976722f8ff7deeb9848d6f80562ea38d10944938f12931d3ef9216eb8d87dc9a18f3c63fa30023f14adaa201c49f4063cb2338e2b491541189ff0836f36fa86509fa80b0728824e95a23f6614b48c401295f689cdb1871ac488ab4a5bb6323ca3846ff1394a98c4348a3b1e53def39b5f716d9b9dc84b1f4d8e361fc45deefabe9b5258ec238a5af581cc87f3b258845b6e2ac4b13bc53c0c1adda9b309921f2f9d7db5513613c6c392c3344bb8f2f1185e5c5b3a07d0295de6717b3c545f9327a9c45f3f2584bdd0438bd69bc16a16be058dc364794538364167929c4a1186612e9ea56d4d95f87766d859fc0a97e9dc6ccd2451ecadb261829df2a5d3b8a8891e3d21531ebec3074cd93149df8961584577b369870f220c222a20fed40b334065fceebde11c4780bda8da29b6625dfa5b308bc9404904223715a3ac5e60d2e8954eb75c8f09b2ffb7345eb2923245f522d75333c4a1ad3c459865fd23b11573af945b595be0b564c75dfdab04b4965e2051dd83fbdd60de51aee7bfa2741abe46b9f62d890fb1207c2ae073ee25bad3f84809da4524b7a59b74f624b390e76647a856998c4a5ae276e10ee498747c8949a89af09b74df99d451623b2319bc129dc1a878370bc73932bb398a38d219e1b2716cca4f09354f76be6f759ac35b94ff45e3dd21f8974a4ae52644ee4b1285626daeaf88614543cddc3be2ab3bdf297140185d32859dfc9227821aa0e3f892be0a10dffb90121a4b8220ba852a40878a754c13969c70377f274fd8f1057ba07f93ae8230ccd13c16a7997e5d42636b5d3721f1cc42592f6acc963b4fcbfe4802dc126b262e281f56e2b04c9f027690a1431b1c333230c7b1c89224ad4ab743aa3f34ec2e760c379ececfbc8264eb74d3813b535d3896fb6abbb114f2cf9fe6e0c94f0246f755a7f24980baddff6e18b1ffb281b70ee0517d90bab3bdc44d70ffeb14352d5dae212ee4ee53553e4dc2f61861ea39ef47c2b2ae613188e6744932e8cbedfe7f029407dbaf04a5119d6fd184e7a238145992608580946e147ac2c83338dd70d98987fffce47844b32e9bcbb62fa9c2691f4f5239ce565da4699b85e99d0a312785bc42150f51b31e812be5e58501be86d1c29c733f277cec094cf37b36b3e5c0f6d6adebeacd4494a078816250d238f6d1fd0f4568cb97f04331adad6df0afcdbb0d81e7a53db3245620bde86c55c58cb6eb499c3836cb7a5bbe0445e358003d72800768b2d9cdb8d29d474c817d4734b04ab404cf87e0b5f7a58943b2b4ab4c179cab43e5f9e919f7d7d6478a0572f59fc89d3299038bb6c7d05eabc92cb00762877d444308aa0b27397673573b0b44e74d3e7da31ae53d2030fa320b5897bdfe05d33eb0cbd5cca60451ef962f7fd1204aba5e61096bd22d3b996da12f77f35d95d2cfb82ec6663ace14794c609883d139258936502df5f98b2a6276946a1b6b520633a116616d1f03cfdb8405a0ad541110aef7f910b9314f39027b36c2b6ef10f15c4c6ebc755db9b519569caf2e486c9f2fec3f490a2389c790bdfdbfd9e9589163391807a546af1ae0d458b27ffaf07c3e255631e41a88274b3459756898424def8f94100fbc8c8e267053c2ffea088c3f2149c915b42a41ce501c89135d4eba6993c79a251ef0a5c893cc19a06d35a064cf1a7f1e63792687b28b485e9fa76401b7552b78b85160ea4ecb030201220eedc3a8d5500547f52425a4850251cd2ecaac11c6ad07f4d1e5d7f97b451dc77abc62a6f87c8364e995c5ba983e1f015a5079a0f7cf8d6ddf11a602c3ce0ec0be5b8402c7128faf976eaf8fbaecd7a029c74b3f8de7b3e91ca688ac3bd92969b89a91594486711f0c82395514fc97f17222e73b42ddd8dd7978ccf0e6a043a86b4dcac3cdab4d555bfedd872421dc5d9f82ed7998eaa7c203e181135fb0bc509801e2f023b649d120f47fccc4b580b12c73ac57bc90497837f2146332f2abeda80a6048f5c08f7447b8ab64e647fa51cc244c21ad50915024c85da0ad8034243c4546a75f3dac62d196373a872e77ebe1f1cc9c66f142125dacbf7c261461a34eb1e387d7b7851255aa48ea6f27f5c41dba294fe0da0580c2521510e81b2f221fcf1f9669cb3502fc304ebd4c36e3fd51c231a6cb6131a89c40a2e3ed3604fb57d704d46cde003d03a320a7335a75b91e87e6daf7de56994bad370e077937b6be4556b973f289aef44e65e70355b92bc61c3fdb1c77ea2f25226eb8fb7c6fa3a0b992b5e8e000913815ba5c03dc597e71765c188edfcc7929892e0b861fa92ec1b9e9745a55202fc068a753b1ce6d06142e7c49e9e83af3987e4c90734ede350a02596686016f0987f7878216bd92cee332ef0bbbd07e1d69700ce3901be13ec648db1911b97b676054de72b5c594bcfeebc6d578df4c38384ca706314f3c2ae2dec963126b2266e7ef31c8b09baa224e05be2975eb19076332b19889663ea53d658134d3f06506b2f99cfc1882d46744c973b79d67e64b6cc23570826d075f677ae8c23810c55759cee4c3f3f1e7ed80ef5092951ca3051d5fb249b8d86d3df91e820067a19264ee9a18a351e9a03e1c96d943c6456fe374df9073f8a6363de0c819407d8983fdc2b6a7eeaf065b0c06d05fd92de85dba2e3bb05a30bf720a258580bfe6abd521988903ccfd4361958b397bfa6349480e71b53343442ef23f8a835f95fd90a12f9ae77e1da2df3ef024ef58c199dba7a19bed735d4a07f4de443e802a58b41836b2146b22e4449733f1dfc9d508be758027bfd5a93ba987e320d24ca688f069acaa9f7244f619b7c422a283a33bd78ed6c37e77fb997ee6705607df1a03570b4024168699873a794800d995d437fdcbff94d65a0aa15ca21b4c1873d5cdcc00bc65b6ecde3fc92eb6b6e10e2951ebc3a0549fc199122425be4d2299a695250f062b1633e2b0c9eda78f71c8d72d77d5cc563f817a36c18a31c6113c207b5c2175b6bdd0327d45fe7d6da60e41271ab63c6d82a8f556a2149b56b83d68d4122f7b9b568d25fe8ef6ea6d75a2aa5fa63fe79f8aa8a08e4dd0a91b80fe991fb9cefd2d1bde103d99a2c1aa6b0d27a306674c3ab3ccf242ac70883a3b7be232e5b453f6898cb9fec0e2b2ba3b038f9aeec723beec21618afe63478d1834003d38f848ee1520908ce9c24476f5ac01ddc1baf3ceddc83b1669a55216235025ec4a508112c62fb357f206070a7c17ec5d27316fe74f45231a598d1419a72d7c6ef82c75be525b1a7e20549a8f125435d343acd22330b52b47f276adab1d0fcb46a113792afb555d4559bb1551b395ccb32d94fe00e335802a61d3f48694bfc3ba32f7ba149e0efb68bbd0c9f89eb943727317c2fa15ed59c53db708da420613263000e13a25ef216360cc287dbb7959264d280caef23d234cb7eb9114c5e833894d64ff2b8f9a0e8c78ee7d74d3c06d75ca0317d1262403effb8e655fc1d5bbb07811648e05bb76a6c1201c6949f81fa839acf91ea831c7c6c599a1f37d63566a17da96873208d3200ea03b397b9bd2bcf6a7645d7e8a9c38f03b5904a2376d1c1607514acb2f47b816a11200b970a67d66655400aaf2ce497bc41e6606f738802077cc61d1d0cab0d1a0923730da5d86c3d58a488c38ec4bc0dcee2fc67a1ec1d9f5a6e4974a20270dfbefab8b661fd8ef7e8ddea88e86721fc1a0b8dac0808d9068570a0ce67d7b88319623354caf16d7143896ab37b3e95b1cfa05c7e0ab10920a7acf26ca836ae8d796b16001549a7b0703929c16f19341781a07cd389c084817b8a17f8a09e5a85ed6e92efcf724eb7170dbccca3c982397d2250321d9e9b5bc32e3d636cb8361c6a1bb3620b9703132121e6d163b194d9b22aa1bac558f2a804927e90889023f54a343f76c2a7865a70bc5ac573dd5f2d0a9acdd026819a4f48bdd1182531ce25472b4e695d382bd9a93baa4e09a60bb3c7aece4e46666ac47d434744e70d30c3b37ec21f51b2ea4eca3bc717ba9cfad13bc7e0a2b44f78ca3294f3afabff20d6b9961b5e00d71203d7913939575d3f0121783092aae2344cb0383007a00ec73528a3a95584ed825cf024fa68b08119dde8bed6148ee665efcc6358eebbf4b9ecc8e9e560c7c89a8b1b274b55d7ec706232b4573762aad2d00cc22ad81a2cb3199e1980cc4d5de7a43b40c361d2fe376987e2c430537e5e913d6b0f6e9eecc6d9a5c657bcc6772f655b19f19c5102e8dfbdd5e3727bb005ecf6556ce4ebf4241eceb09000665c4b59bd826fa1e3f2009196c00b044c52c390717fafa52f7b14599d38063f2ddbfcd335d0025a3d0627510bf2cab14670832a636213ca37466bec70119fc7f4bb33d426402d0074bb6bc0d7bb809d9247bb0dbb6b17bab46425845a777d1a04e67232af14dd97aed49ed98f54674d21a8045a36530319d5eea92db734f92cbe5d74373df50b8adfcf71272f74dff28627c0c6b64d54c0131643ff8592b9b8d300857d1dbec7d968f1ebbb6ada68e61ad5e9a13ea0d65b0d09e63bd747e69431296ddd5933f3664262aaf9d6ff6b75dabfed00b2d3b1fc8d03fbfc224ac852c1013166ce5cc4e2fb7afb5240906dfe9398ff1dcfd3bb941dc50686d1e9818../../../assetsshare/factory/usr/share/openqa/scriptshare/tests@rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootopenQA-4.5.1526033850.1ad9148d-lp150.2.3.1.src.rpmopenQA-commonperl(CommentsMarkdownParser)perl(DBIx::Class::Timestamps)perl(MojoDebugHandle)perl(OpenQA)perl(OpenQA::BuildResults)perl(OpenQA::Client::Archive)perl(OpenQA::Client::Handler)perl(OpenQA::Client::Upload)perl(OpenQA::Constants)perl(OpenQA::File)perl(OpenQA::Files)perl(OpenQA::IPC)perl(OpenQA::Parser)perl(OpenQA::Parser::Format::Base)perl(OpenQA::Parser::Format::JUnit)perl(OpenQA::Parser::Format::LTP)perl(OpenQA::Parser::Format::TAP)perl(OpenQA::Parser::Format::XUnit)perl(OpenQA::Parser::Result)perl(OpenQA::Parser::Result::LTP::Environment)perl(OpenQA::Parser::Result::LTP::SubTest)perl(OpenQA::Parser::Result::LTP::Test)perl(OpenQA::Parser::Result::Node)perl(OpenQA::Parser::Result::OpenQA)perl(OpenQA::Parser::Result::OpenQA::Results)perl(OpenQA::Parser::Result::Output)perl(OpenQA::Parser::Result::Test)perl(OpenQA::Parser::Result::XUnit)perl(OpenQA::Parser::Result::XUnit::Property)perl(OpenQA::Parser::Results)perl(OpenQA::Resource::Jobs)perl(OpenQA::Resource::Locks)perl(OpenQA::ResourceAllocator)perl(OpenQA::Scheduler)perl(OpenQA::Scheduler::Scheduler)perl(OpenQA::Schema)perl(OpenQA::Schema::JobGroupDefaults)perl(OpenQA::Schema::Result::ApiKeys)perl(OpenQA::Schema::Result::Assets)perl(OpenQA::Schema::Result::AuditEvents)perl(OpenQA::Schema::Result::Bugs)perl(OpenQA::Schema::Result::Comments)perl(OpenQA::Schema::Result::GruDependencies)perl(OpenQA::Schema::Result::GruTasks)perl(OpenQA::Schema::Result::JobDependencies)perl(OpenQA::Schema::Result::JobGroupParents)perl(OpenQA::Schema::Result::JobGroups)perl(OpenQA::Schema::Result::JobLocks)perl(OpenQA::Schema::Result::JobModuleNeedles)perl(OpenQA::Schema::Result::JobModules)perl(OpenQA::Schema::Result::JobNetworks)perl(OpenQA::Schema::Result::JobSettings)perl(OpenQA::Schema::Result::JobTemplates)perl(OpenQA::Schema::Result::Jobs)perl(OpenQA::Schema::Result::JobsAssets)perl(OpenQA::Schema::Result::MachineSettings)perl(OpenQA::Schema::Result::Machines)perl(OpenQA::Schema::Result::NeedleDirs)perl(OpenQA::Schema::Result::Needles)perl(OpenQA::Schema::Result::ProductSettings)perl(OpenQA::Schema::Result::Products)perl(OpenQA::Schema::Result::ScreenshotLinks)perl(OpenQA::Schema::Result::Screenshots)perl(OpenQA::Schema::Result::Secrets)perl(OpenQA::Schema::Result::TestSuiteSettings)perl(OpenQA::Schema::Result::TestSuites)perl(OpenQA::Schema::Result::Users)perl(OpenQA::Schema::Result::WorkerProperties)perl(OpenQA::Schema::Result::Workers)perl(OpenQA::Schema::ResultSet::Assets)perl(OpenQA::Schema::ResultSet::JobSettings)perl(OpenQA::Schema::ResultSet::Jobs)perl(OpenQA::Schema::ResultSet::Needles)perl(OpenQA::ServerSideDataTable)perl(OpenQA::Setup)perl(OpenQA::Task::Asset::Download)perl(OpenQA::Task::Asset::Limit)perl(OpenQA::Task::Job::Limit)perl(OpenQA::Task::Job::Modules)perl(OpenQA::Task::Needle::Scan)perl(OpenQA::Task::Screenshot::Scan)perl(OpenQA::UserAgent)perl(OpenQA::Utils)perl(OpenQA::WebAPI)perl(OpenQA::WebAPI::AssetPipe)perl(OpenQA::WebAPI::Auth::Fake)perl(OpenQA::WebAPI::Auth::OpenID)perl(OpenQA::WebAPI::Auth::iChain)perl(OpenQA::WebAPI::Controller::API::V1)perl(OpenQA::WebAPI::Controller::API::V1::Asset)perl(OpenQA::WebAPI::Controller::API::V1::Bug)perl(OpenQA::WebAPI::Controller::API::V1::Command)perl(OpenQA::WebAPI::Controller::API::V1::Comment)perl(OpenQA::WebAPI::Controller::API::V1::Feature)perl(OpenQA::WebAPI::Controller::API::V1::Iso)perl(OpenQA::WebAPI::Controller::API::V1::Job)perl(OpenQA::WebAPI::Controller::API::V1::JobGroup)perl(OpenQA::WebAPI::Controller::API::V1::JobTemplate)perl(OpenQA::WebAPI::Controller::API::V1::Locks)perl(OpenQA::WebAPI::Controller::API::V1::Mm)perl(OpenQA::WebAPI::Controller::API::V1::Table)perl(OpenQA::WebAPI::Controller::API::V1::Worker)perl(OpenQA::WebAPI::Controller::Admin::Asset)perl(OpenQA::WebAPI::Controller::Admin::AuditLog)perl(OpenQA::WebAPI::Controller::Admin::JobGroup)perl(OpenQA::WebAPI::Controller::Admin::JobTemplate)perl(OpenQA::WebAPI::Controller::Admin::Machine)perl(OpenQA::WebAPI::Controller::Admin::Needle)perl(OpenQA::WebAPI::Controller::Admin::Product)perl(OpenQA::WebAPI::Controller::Admin::Table)perl(OpenQA::WebAPI::Controller::Admin::TestSuite)perl(OpenQA::WebAPI::Controller::Admin::User)perl(OpenQA::WebAPI::Controller::Admin::Workers)perl(OpenQA::WebAPI::Controller::ApiKey)perl(OpenQA::WebAPI::Controller::File)perl(OpenQA::WebAPI::Controller::Main)perl(OpenQA::WebAPI::Controller::Running)perl(OpenQA::WebAPI::Controller::Session)perl(OpenQA::WebAPI::Controller::Step)perl(OpenQA::WebAPI::Controller::Test)perl(OpenQA::WebAPI::Description)perl(OpenQA::WebAPI::Plugin::AMQP)perl(OpenQA::WebAPI::Plugin::AuditLog)perl(OpenQA::WebAPI::Plugin::CSRF)perl(OpenQA::WebAPI::Plugin::Fedmsg)perl(OpenQA::WebAPI::Plugin::Gru)perl(OpenQA::WebAPI::Plugin::Gru::Command::gru)perl(OpenQA::WebAPI::Plugin::HashedParams)perl(OpenQA::WebAPI::Plugin::Helpers)perl(OpenQA::WebAPI::Plugin::REST)perl(OpenQA::WebSockets)perl(OpenQA::WebSockets::Server)perl(OpenQA::Worker)perl(OpenQA::Worker::Cache)perl(OpenQA::Worker::Commands)perl(OpenQA::Worker::Common)perl(OpenQA::Worker::Engines::isotovideo)perl(OpenQA::Worker::Jobs)perl(OpenQA::Worker::Pool)perl(Perl::Critic::Policy::ConsistentQuoteLikeWords)perl(Perl::Critic::Policy::HashKeyQuotes)perl(db_helpers)perl(db_profiler)     /bin/shperl(Archive::Extract)perl(BSD::Resource)perl(CSS::Minifier::XS)perl(Config::IniFiles)perl(Config::Tiny)perl(Cpanel::JSON::XS)perl(DBD::Pg)perl(DBIx::Class)perl(DBIx::Class::DynamicDefault)perl(DBIx::Class::OptimisticLocking)perl(DBIx::Class::Schema::Config)perl(DBIx::Class::Storage::Statistics)perl(Data::Dump)perl(Date::Format)perl(DateTime::Format::Pg)perl(File::Copy::Recursive)perl(IO::Socket::SSL)perl(IPC::Run)perl(JavaScript::Minifier::XS)perl(Minion)perl(Mojo::IOLoop::ReadWriteProcess)perl(Mojo::Pg)perl(Mojo::RabbitMQ::Client)perl(Mojolicious)perl(Mojolicious::Plugin::AssetPack)perl(Mojolicious::Plugin::RenderFile)perl(Net::DBus)perl(Net::OpenID::Consumer)perl(Pod::POM)perl(SQL::Translator)perl(Sort::Versions)perl(Text::Markdown)perl(Time::ParseDate)perl(aliased)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)7.243.0.4-14.6.0-14.0-15.2-14.14.1[GZZZ@Z@Z؄ZЛZЛZJ@ZJ@ZZZ@Z Z~ZyZp^@Zg#ZYZTZ;@Z'ZOZ@Z ZfYq@Y@YYYY}@YI@Y7Y0Y-^YYYX!@X!@X@XXXwoXwoXwoX[@XZnXRXRXJXJX<@X2X!@X!@X@X@X TW$W@W0@WRW@W@W@WgWN@W @@V3V`VVVV.UUAUmU@UUa@U%@U hT@T@TT T@T@T@T-@T@T T@T@T@TT@T{Ti@Td@TR(@Tk@SSہ@SǺSS@S{CSy@SsZS`SG@SCSB@SB@S5d@S4S4S,)S,)S&S"@S L@S L@S L@Sc@S@SnSz@S 4@S 4@SRb@Rb@Ry@R߲QdQ@Q'@slindomansilla@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comedigiacinto@suse.comcoolo@suse.comcoolo@suse.comedigiacinto@suse.commarius.kittler@suse.commarius.kittler@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comrd-ops-cm@suse.derd-ops-cm@suse.deokurz@suse.comrd-ops-cm@suse.derd-ops-cm@suse.derd-ops-cm@suse.deokurz@suse.comcoolo@suse.comrd-ops-cm@suse.derd-ops-cm@suse.demlin@suse.comslindomansilla@suse.comrd-ops-cm@suse.decoolo@suse.comrd-ops-cm@suse.desantiago.zarate@suse.comrd-ops-cm@suse.decoolo@suse.comokurz@suse.comrd-ops-cm@suse.decoolo@suse.comrd-ops-cm@suse.decoolo@suse.comrd-ops-cm@suse.decoolo@suse.comrd-ops-cm@suse.deoholecek@suse.comrd-ops-cm@suse.decoolo@suse.comrd-ops-cm@suse.decoolo@suse.comrd-ops-cm@suse.derd-ops-cm@suse.deoholecek@suse.comoholecek@suse.comoholecek@suse.comoholecek@suse.comoholecek@suse.comoholecek@suse.comcoolo@suse.comrd-ops-cm@suse.derd-ops-cm@suse.deoholecek@suse.comoholecek@suse.comcoolo@suse.comlnussel@suse.deoholecek@suse.comoholecek@suse.comoholecek@suse.comoholecek@suse.comlnussel@suse.delnussel@suse.deoholecek@suse.comlnussel@suse.deoholecek@suse.comcoolo@suse.comlnussel@suse.delnussel@suse.decoolo@suse.comcoolo@suse.comoholecek@suse.comsfalken@opensuse.orgoholecek@suse.comlnussel@suse.derd-ops-cm@suse.deoholecek@suse.comlnussel@suse.delnussel@suse.decoolo@suse.comcoolo@suse.comoholecek@suse.comlnussel@suse.decoolo@suse.comoholecek@suse.comoholecek@suse.commlin@suse.comlnussel@suse.dedvlaeev@suse.comlnussel@suse.deoholecek@suse.czlnussel@suse.delnussel@suse.delnussel@suse.delnussel@suse.delnussel@suse.delnussel@suse.dealarrosa@suse.comalarrosa@suse.comalarrosa@suse.comalarrosa@suse.comlnussel@suse.delnussel@suse.delnussel@suse.demhrusecky@suse.czcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comlnussel@suse.delnussel@suse.delnussel@suse.delnussel@suse.demlin@suse.commlin@suse.comlnussel@suse.demlin@suse.commlin@suse.comlnussel@suse.decoolo@suse.comlnussel@suse.delnussel@suse.delnussel@suse.de- Fix missing share directory when worker is local to the webui (bnc#1111325) PATCH-FIX-OPENSUSE Add-tmp-dir-for-share-directory.patch bnc#1111325 https://bugzilla.opensuse.org/show_bug.cgi?id=1111325- Update to version 4.5.1526033850.1ad9148d: * Add _source field to every detail generated by parsers implementations (#1647) * Fix links to #live not starting live view (#1648)- Update to version 4.5.1525548058.3f6bb61a: * Avoid appending multiple runs with --nocleanup (#1644) * Limit number of tasks for limit_assets and limit_results_and_logs GRU tasks * Add test for GRU enqueue limit option * Update apparmor profile for worker (#1645) * GRU: Add support to limit enqueuing by task * Update unit tests for TAP parser * Mark test suite as failed if test steps have failed * Add information about openQA internal results * Update TAP format documentation * Remove dots from filename * Ensure that the details description is set * Use a single result to contain all the test steps * Update changes to TAP format * Temporary version of the parser for TAP still failing * Log a warning when step data is not found * Allow LTP parser to load files that contain special characters * Replace extra dots in the filenames (#1642) * Increase the required coverage to 88.8 * Do not fail a pull request if there are unexpected changes * Use same width for each colored dep status span * Show parent and child deps on job page in nice tbl * Enhance unit tests for GRU TTL * Set 2 days of ttl for limit_assets and limit_results_and_logs when posting isos * Add unit test for GRU task TTL * GRU: Add TTL for Minion jobs * Use a smaller font for the 'ago time' to fix rendering (#1635) * Prefetch comment counts for /tests * Update bootstrap to 4.1.1 and fontawesome to 5.0.10 * Do not load full application to generate assetpack data (#1628) * Improve the duplication tests (#1627) * Hide categories when filtering test details * Ensure needles directory exists in 18-tests-details.t * Require 'Selenium::Remote::WDKeys' in CPAN file * Add test for filtering test details * Allow filtering test details- Update to version 4.5.1524586233.92db89bc: * Add unzip-plain to AppArmor profile (#1629) * Use current SUSE Logo (#1626) * Avoid skipping dependencies when cloning jobs. (#1623) * Improve some details in t/ui/18-tests-details.t * Randomize GET /tests/99946#step/yast2_lan/1 * Use usual prove flags on Travis as well * Hide failed modules on overview table for small screens * Fix positioning tooltips with Bootstrap 4 on overview page * Add Minion Link to navbar and move under admin * GRU: delete gru and deps on failure * Fix spacing of 'Build + Bars' rows on dashboard * Adjust padding and media break points for dashboard * Use exact same colors for cards/panels as before * Add unit test for job custom_module * Display GRU failure as job test module in openQA * Fix dropdown menus in fullscreen mode * Use full width in full screen mode * Make the gru service to be restarted on-failure * OpenQA::Task::* Die on fatal errors * Catch all tasks output also in case of error * Mark the jobs associated to the gru task incomplete in case of gru task failure * Adapt to new Minion::Job API introduced in Minion 9.0 * Remove unused Data::Dumper import * Use Minion::Command::minion::job to get jobs list * Enable the Minion Admin interface under /minion * GRU/Minion: Take account of failures * Use gru enqueue in controllers and keep relation with minion jobs * Adapt test and fix leak of memory * Gru: get dsn from DBI for Minion * Move GRU tasks to Minion- Require Minion >= 9.02- Update to version 4.5.1524056562.74e334c1: * Close candidate menu after selection * Fix positioning of dropdown icon under Firefox * Fix handling multi-tag tests * Adjust UI tests to handle new candidates selection * Implement full diff * Allow to show just the screenshot again * Add shortcuts to custom combo box * Make style for result preview part of openqa.scss * Use customized bootstrap dropdown instead of combo box * Workaround issue when clicking menu item in 21-admin-needles.t * Port card in overview correctly to Bootstrap 4 * Use same link color as before * Make badges look like before * Adjust colors * Fix paging of tables for running and scheduled jobs * Remove symlinks for Glyphicon fonts * Fix UI and fullstack test after Bootstrap 4 migration * Adjust media breakpoints * Fix grammar in tour * Upgrade tour to Bootstrap 4 * Restructure stylesheets * Fix live-view and other small issues under Bootstrap 4 * Make it look more like before under Bootstrap 4 * Fix permanentely moved links on dashboard * Fix overall appearance with Boostrap 4 * Fix filter panel on the main page * Patch bootstrap theme to be a little more like it was before * Remove hidden class * Port the navbar to bootstrap 4 * Start to migrate to bootstrap 4- Update to version 4.5.1523608608.fca0aa46: * Enforce sorting the results returned by the sql query to use in is_deeply (#1621) * Remove dead code in Worker/Jobs.pm * Update current test module details when cancelling running job * Prevent failures in worker reset_state() (#1618) * Group candidate needles by tag (#1606) * Test image selection of needle editor (#1617) * Fix 'Take image from' selection in needle editor (#1616) * Refactor needle editor code * Fix showing needle editor when no tags present * isotovideo: wrap log_ calls with eval * Require latest RWP * Start isotovideo inside a container using cgroups * Checks if failure status file exists before trying to slurp it * tests: cover case when one of the cluster jobs already running * Consider running jobs in filter_jobs * Fix fullstack test in case /usr/bin/isotovideo is present * Limit showing new needles to the 5 most recent ones * Use 'new' prefix when showing new needles * Add documentation about showing new needles in editor * Improve tests for needle editor * Show errors/warnings/info in needle editor with consistent margin * Show added/updated needles in editor * Add database entry for needles when saving via editor * Simplify save_needle_ajax code * Extend needle table with tags and timestamps * Capture serial patterns documentation * Don't show configure button for untracked assets * Fix mojo not handling max_size_limit when is a transaction * Allow optional overwrite of the productlog request depth with a query parameter (#1601) * Enable JSON representation of the test overview (#1600) * Add asset size limit option * Return reference for test result file lists * Make OpenQA::Client::Archive property of OpenQA::Client * Remove chdir that caused errors when downloading test files * Add file _download_file_at method for logs and uploaded logs * Move progress monitor code to a separate fuction * Ensure that uploaded test logs can be downloaded * Add first version of OpenQA::Client::Archive * Move test_uploadlog_list and test_resultfile_list to the model- Use Minion for GRU tasks, this requires Minion and Mojo::Pg as dependency- Fix handling UTF-8 when executing make install- Fix handling UTF-8 in update-cache.sh- Update to version 4.5.1520515419.c3df6f91: * Update the chromedriver url from 2.33 to 2.36 * Allow saving needles for OS with dots in the version * docs: Clarify some serial terminal terminology and other elaboration (#1596) * Do not reset the api version just because the worker is offline * Fix scheduler comment - now default MAX_JOB_ALLOCATION is 80 (#1595) * Always retry until chunk is uploaded and retrials exhausted (#1594) * Refactor and add error test * PARALLEL_CLUSTER is no more * Adapt scheduler_full test * Avoid to re-consider the jobs that are being allocating in a round * Do not take account of spaces in PARALLEL_WITH * Exclude allocating jobs from prefer_parallel cut * Consider allocating only when we have them * Bump MAX_JOB_ALLOCATION default to 80 * Exclude allocated when blocking dependencies * Consider the jobs allocated during the round as running in prefer_parallel * Prevent cluster tests to be allocated if their group is not allocated- Update to version 4.5.1520100590.2279151e: * Fix sort order of the review comments (#1593) * Expand the serial terminal console documentation (#1586) * Emit openqa_job_create events when an ISO is posted (#1584) * Replace die for 500 code and move global constants to OpenQA::Constants * Avoid circular dependencies when running the tests. * All the available free workers need to have the same websocket interface version * Move the interface verification to the worker ack- Update to version 4.5.1519929327.f726adcc: * Enable wrapping cells in overview table (#1591) * Perltidy * Protect during collected unsubscription * Prevent to determine job status from collected event when timout expires * Remove check backend timer * Fix check_backend detection * cpanfile: require at least Mojo::IOLoop::ReadWriteProcess 0.19 * Adapt jobs tests - we are not dying anymore * Don't fear the (sub)reaper * Add AMQP doc * Lock tidy version * Make prove verbose- Update to version 4.5.1519128406.810fb68b: * Show correct port for created job (#1578) * Use rwp also to call rsync (#1585) * Force a restart when the children or grand-children processes die * OpenQA::Parser::Format::JUnit mark testsuite failed if one of testcases fails * Replace the exec call with ReadWriteProcess module * Add use Mojo::DOM in JUnit and XUnit Parser (#1580) * Use the generated Mojo::URL as Client base_url * Add get_piece() in OpenQA::File to ease writing of downloader class * Add test for OpenQA::Files's prepare() * Make integration tests of uploader with fixed chunk size * Fire events inside subprocess before and after chunk processing. * Move uri checks inside common function in OpenQA::Client::Handler and guard from not configured scheme in host * Add test to check if retrials numbers are matching * Use subprocess for potential loop blocks * Adapt workers to error handling * Add tests for OpenQA::Client::Upload retrials on failures, and events propagation * Emit errors on OpenQA::Client::Upload * Swap multi-chunk uploader in worker with OpenQA::Client * Make OpenQA::Handlers EventEmitter(s) * Split OpenQA::Client * Wipe out content of written chunk, try only weak check and back to Storable * Do not always perform total cksum * Drop Mojo force to File asset, display stats of uploaded chunks * Write as we receive in a temp file * Avoid to relay too much on the serializer * Use C backend to read whole file when computing total cksum * Enhance error detection * Allow to chunks to dynamically grow and shrink * Make total checksum verification run faster * Let specify chunk size in config file, and default to 1000000 bytes * Also add API endpoint to inform of upload status, adapt tests * Do not make split() to load the file * Pass asset option in multichunk upload * Create empty file before writing it if doesn't exist * Try to swap current uploader with multi-chunked one for assets * Add spurt to OpenQA::Files * Add write_verify_chunks() and write_chunks to OpenQA::Files * Add methods to verify against chunks, also add test when joining/verifying in-place * Add serialize/deserialize also to single result of parser * Add OpenQA::File, wraps Mojo::File and adds seek capabilities * Add worker version check on the server. (#1552) * Add basic test for OpenQA::WebAPI::Description * Add POD documentation to Controller/API/V1 packages * Test 27-errorpages.t with a predefined API desc * Replace Pod::Tree for Pod::POM in WebAPI::Description * Add POD documentation to Controller/API/V1 packages * Move API description methods to its own package * Add POD documentation to Controller/API/V1 packages * WebAPI: Add API description from Controller's POD- Update to version 4.5.1518003872.3977d2f5: * Run perltidy again (#1577) * Fix perltidy complaints (#1576) * Give 404 rather than 500 on invalid asset route (#1575)- Update to version 4.5.1517920216.2250682a: * Take latest version of Selenium::Remote::Driver (#1570) * Big rework of the GRU limit_asset task (#1569) * Fix broken links in openQA documents * Update Installing.asciidoc * Add pager for comments on group overview (#1561) * Add help box for group filter * Fix testsuite descriptions if default config not present (#1554) * Test subgroup filter and form * Allow to expand nested groups by default * Add filter for subgroups * Check qemu pid before starting job (#1565) * Require < 1.21 of Selenium::Remote::Driver * Downgrading selenium drivers during test phase- add fonts for chromium test suite - and remove currently broken tests (https://progress.opensuse.org/issues/19652)- Update to version 4.5.1516716144.98db9c99: * Improve error handling in group overview (#1562) * Do not remove forwarded-for=https headers (#1558)- Update to version 4.5.1515767133.56cd6ee5: * Support nested OpenQA::Parser objects * If no parser format is supplied, return a OpenQA::Parser::Format::Base object * Add POD documentation for OpenQA::Parser::Result::OpenQA * Add documentation for OpenQA::Parser::Results and move search() in proper class * Move search_in_details() in a new class that inherits from OpenQA::Parser::Results as it is openQA specific * Add documentation of OpenQA::Parser::Result * Move methods and attributes from Parser to Base format * Simplify spec format definition and move common displayed fields to openqa specific result classes * Drop support for creating collections with package global variable (useless now) * Make possible to upload in all the supported format and add tests for it * Add other tests, bring back coverage and fix wrong Node val() assigment * Return a OpenQA::Parser::Result::Node object when getting unstructured data from result * Make parser now really recurive, add also support for nested data structure with unit test * Make LTP parser tests output compliant to openQA tests results * Run parser test in parallel * Add possibility to store / serialize file content too within the parsed result * Add test to check DB consistency with parser extracted results * Move format specifications to separated namespace * Add XUnit tests * Add basic XUnit parser and schema * Clean LTP and include schema inside parser file * Add support for nested Results collections (required for XUnit) * Use functional interface in exposed api * Make collections serializable for unstructured data * Add accessor for unstructured data * Ask to include result only if the specific parser can * Move include_result option to specific parser that needs it * Provide also functional interface * Serialize single Results object as seen by to_hash() and add tests * Add tests when parser errors * Support hashifications of unknown objects * Add unstructured data test * Add reset method to parser, add and cleanup tests * Make serializing possible for collections with different OpenQA::Parser::Results objects * Add possibility to export/import the Parser to JSON, add also tests * Add serialization tests for junit spec * Tidy OpenQA::Parser::Result * Hide name field in JSON encoding of OpenQA result - but keep serializing it * Add example of new format specification for LTP * Simplify LTP spec definition even more * Get hash representation automatically of attributes if they can be rendered as hash * Add backword support for v2 format and add unit tests * Rename subtest to avoid Perl 5.18 complaints * Refactor write of parser result data * Add optional extra list that can be filled by type spec parser * LTP specification: Environment is optional inside result in new format * Add support to serialize/deserialized nested data structure * Add serialization capabilities to parser, and add tests * As classes are representing merely what's the json content, include them in the LTP module file * Add test data example for LTP results format * Add support for LTP specification in OpenQA::Parser * Generalize parser results, and subclass to specific implementations * Adapt parser tests, since now default value for script is 'unk' * Generate test module result from parsable extra_tests * Parser: return unk for test script if does not exist * Add search between parsed tests, link results and tests * Draft for JUnit parser * Prevent worker status selection to sort (#1555) * Unify code for scheduled/running table and fix sorting (#1556) * Remove leftovers in t/api/02-assets.t (#1557)- Update to version 4.5.1515509269.fa07a084: * Remove assets from disk when deleting database entry (#1553)- Update to version 4.5.1513750232.be133588: * Add basic setup of multi-machine worker (#1544) * Allow deleting assets via web UI (#1551) * Deal properly with environment variables that can change logging (#1537) * Fix deletion of jobs referenced as last use of asset (#1549) * Show assets by job group * selenium test: Allow configuring mojo port * Split asset tables in used and untracked assets * Refactor data size rendering in JS and reduce precision * Set App mode in WebSocket server (#1548) * Fix repos gone too early: assign REPO_10 to jobs as well (#1547) * Retidy - Perl::Tidy 20171214 has different formatting (#1546) * Update installation steps for postgresql (#1538) * branding: openSUSE: Add Kubic (#1539) * Change the logs timestamp to ISO8601 (#1542) * Add documentation for postgresql migration (#1530) * Fully fix asset caching without test caching (POO #29208) * Fix job group update issue (#1533) * Hide worker properties if no login (#1534) * Switch to fontawesome 5 (#1531) * `limit_assets`: remove asset that breaks limit, not next one (#1536) * Remove all assets from DB that are gone (#1535) * Allow to query live data from api, adapt tests * Display additional information in the worker's table * Add panel and popover to show job detail * Make searchable field and fix DataTable loading * Add openqa-setup-db service that will create postgresql database (#1528) * Retrieve worker stats data * Do not query by default websocket server to display worker informations * Fix tests to expect new columns * Show size of assets exclusively kept by a group * Accumulate size of assets exclusively kept by a group * Document fast initialization of local tests (#1527) * Add column to groups with size of exclusively used assets * Also store if the asset is fixed in the DB * limit_assets: Use DBD::Pg directly for querying job asset * Check all columns in test for asset table * Show last use of asset in assets table * Ignore chromedriver logs * Show asset size * Write info about assets kept during cleanup to db * Improve comments in limit_assets * Fix PRJDIR error * Add support for colons on worker class * Add WORKER_CLASS to job_list filter * Fix caching of assets without caching of tests (#1521) * Accept a lower coverage - we removed code * Move worker log test to 24-worker.t * Schema.pm: Remove unused functions (increase coverage) * Remove SQL files for SQlite and for 2016 * Have our services require postgresql server to be up * Adopt generate-packaged-asset to use postgresql * Import log_error in OpenQA::IPC * Test: increment unstable_worker ticks and wait for each one to be ready * Remove more traces of Sqlite support * Provide t/test_postgresql to setup a temporary postgresql * Fix more test cases * Prepare a proper DB for the scheduler full test * Fix t/ui/22-job_group_order.t by providing sort_order in fixtures * t/ui/13-admin.t: Postgresql sorts RAID at the end * Sort table settings by key to have reliable tests * t/api/02-iso.t: Do not rely on hardcoded job number * Give WebSockets server its assets * Sort the previous jobs in worker table by ids * Skip all tests requiring a database * Test fixtures: restart the postgresql sequence * Fix t/17-build_tagging.t not to depend on Sqlite specifics * ui/04-api_keys.t: Don't rely on ids in fixtures * 14-grutasks: don't rely on DB sort order * Drop sqlite3 support * branding: Update SLE staging links (#1523) * Use log_info for worker activities (#1519) * branding: openSUSE: Add caasp (different bugzilla naming variant) (#1522) * Tidy the sources * Do not cast to int worker_status timer * Propagate error on IPC dispatch call * Use WORKERS_CHECKER_THRESHOLD to detect dead workers as well * Remove printing to debug the result of safe_call * Reduce OpenQA tests verbosity * limit_assets: don't wipe assets for PENDING jobs (#1518) * Allow same group name within different parent groups (#1507) * Apply log level correctly (#1516) * Check if job is valid before starting working on it. * Upload workers log to the webUI (#1502) * Only test basic tests on perl 5.26 (#1512) * Remove IDs from fixtures if they are in sequence (#1513) * Move the $shared_dir to setup_share_dir * Print project directory upon worker's init failure * Fix documentation generation script * Avoid warnings during test runs (#1511)- Add local-db subpackage to create local postgresql database for ease of use- Update to version 4.5.1511814842.53907890: * Make barrier option to automatically destroy the barrier if jobs belonging to it fails (#1498) * Improve web editor (#1510) * Remove outdated imports of JSON module (#1509) * Use Cpanel::JSON::XS in step/edit.html (#1508)- Update to version 4.5.1511709996.0670f622: * Use OPENQA_TEST_IPC for 12-admin-workers.t (#1506) * Poll status less often not to stress the server * Adapt coverage threshold * Mark workers dead when they disconnect from WS * Make full stack test more robust by adding more assertions * /tests/overview: Change sorting to show all machine variants together (#1489) * Use Cpanel::JSON::XS directly to avoid overwrite mess * Extend apparmor permissions for /usr/share/openqa/lib/** (#1504) * Test multiple perl versions in travis CI * Ignore specific 404 errors in the javascript console * Click away the feature tour in full stack * Make 21-admin-needles more robust * Clean VHD and VHDX images in cache * Treat VHD and VHDX images as HDD assets * Replace logrotate config with what we use in production (#1500) * Fix function names in ui tests * Rename PhantomTest to SeleniumTest * Remove support/work arounds for phantomjs * Use headless chrome instead of phantomjs * Use proper name and directory for PhantomTest * Update Cache documentation (#1495) * Make path of changelog configurable via config file * Add changelog for web UI * Avoid creating useless commits (#1497) * Add _ONLY_OBSOLETE_SAME_BUILD, _NOOBSOLETEBUILD -> _NO_OBSOLETE * Multiple loggings channels * Log Uniformization * Make sure /tests/overview shows test suite descriptions for all machines * Display job name on dependencies list * Worker: use population as scale_factor * Add websocket server test to cover errors when updating worker seen status and population update * Make threshold for worker_checker a constant, and tight the bond between the status timer and the timer for checking inactive workers * Use in_range from OpenQA::Utils in scheduler-full test * Best effort to let know worker population of different WebUIs * Move worker configuration reading to Worker::Common, making it easier to test and slim down the startup script * Remove already superseded default inactivity timeout from script/openqa-websockets * Remove keepalive message and introduce dynamic slot allocation for worker_status timer- adapt build dependencies to Cpanel::JSON::XS- replace phantomjs with chromium/chromedriver- Update to version 4.5.1509097496.8b8e8e20: * Prevent use of job_module_stats when showing jobs of worker * Fix sorting in table for previous jobs of worker * Remove all remaining uses of job_module_stats * Fix accessing job module stat 'unk' * Worker: Wrap asset_lookup() query in eval/if * Add API description for worker route * docs: Prevent parsing of '#' as markup * Allow admins to fetch the worker status by json * Fix name of the SUSE company * Prevent showing duplicated bugrefs twice * Fixing the package to build with newer assetpack (#1485) * Mention repos for Leap 42.3- Update to version 4.5.1508961373.6d2e83a0: * Scheduler: Add option to deal with slow workers that could be detected as dead. * Scheduler: Handle stop/restart cleanly * Respect log level configuration even when no log file is set (#1413) * More prominent color for closed bug references, old ones for open bugs (#1412) * Scheduler: implement retrials before declaring a job not accepted by a worker * Scheduler: add option to wakeup when we receive new jobs * Adjust full-stack tests scheduler default values * API/Worker: Get updates from job that match the worker id * Revert "Permit a dropped test coverage for now" as we are covered now * Worker: send worker_id when updating setup status * Job: Return error messages when worker doesn't send id * docs: Move label and bugrefs doc from wiki * docs: Add description of closed issue visualization * Use OPENQA_TEST_IPC in more tests due to scheduler changes * Scheduler: add code comments, refactorize and simplify code * Include '.' in INC for 24-feature-tour.t (#1420) * Scheduler: Remove EXPBACKOFF option and default to binary * Scheduler: Remove shuffle option. Is new default now, if we don't shuffle free workers we might go into starvation since they can keep failing * Scheduler: schedule() now returns allocated jobs and failures * Websockets: distinct error while dispatching job over ws * Improve error if a worker cannot connect to a WebSocket (#1416) * Conflict no-cleanup worker with normal worker (#1417) * Scheduler: Add basic unit testing * Scheduler: remove retrials and workers cache * Scheduler: use another state for jobs that have been assigned but are not yet in running status * Worker/Websockets: Make worker send status messages, and websockets reaping jobs that are not matching states * Websockets: print details of messages received from unknown workers * Websockets: remove (now) misleading debug message * Worker: do not die in the loop when current_host is not set * Scheduler test: simulate unstable workers * Workers: collect error if we fail dispatching commands to websocket dbus service * Scheduler/WebSockets/Worker: update job state to running from worker responses * Scheduler: now job allocation checks are not needed anymore inside scheduler * WebSockets: use set_running when updating job status (#1426) * Add support for custom links in footer * Fix staging link for CaaSP * Worker: increase keepalive timer * Seperate footer links from footer legal part * Add 'report Bug' for OpenQA product * Scheduler: sleep when we have nothing to do * Adapt scheduler tests to new sleep mode * WebSockets: reset to schedule state if we detect stale assigned jobs * Websockets: set default appname - which is used in error templates * Websocket: wrap database transactions in try catch so we can debug dbus service errors * Create base for fullscreen mode on group overview site * Include just show latest comment feature * Add disable comments feature in group overview * Add fullscreen to group overview and rewind comments part * Fix uninitialized value error and typos * Add autorefresh for builds and comments in group overview * Make auto refresh rate adjustable * Fix sporadic problem of systemd service start (poo#21004) (#1430) * Add description part for api routes at not_found page * Add a quick tour to openQA * Enable feature tour by changing database entry * Adjust ui test * Replace old DEPENDENCIES.txt references to cpanfile (#1423) * Templates: improve error handling in running_table (#1427) * Utils: Flush log output when we don't use Mojo::Log * WebSockets: finish connection when we don't have the worker registered * Workers: print debug output when connection is closed * WebSockets: enable required plugin on setup * Add tests for WebSocket disconnection handling * Add missing figure for closed ticket labels * Prevent use of job_module_stats when showing jobs of worker * Fix sorting in table for previous jobs of worker * Remove all remaining uses of job_module_stats * Fix accessing job module stat 'unk' * Treat ASSIGNED state as in execution * Subscribe start_job/stop_job events before we call send on websocket connection * Worker: reset internal state if we fail contacting the WebUI * Worker: Do not cleanup if pooldir is not set * Add support for multiple distri/version/group on /tests/overview * Websocket: Do not kill connections due to inactivity (meant mostly for browsers) * Dereference hashrefs before using 'keys' * Check whether description available before printing it * Cover the websocket server to avoid uncovered changes with CI builds * Include all relevant distros when linking overview * Use Mojo::Log for logging worker's output * Refactor worker status messages * Cover main OpenQA.pm, which was left with low coverage * Changes the log level to debug if --debug or --verbose is applied. Default is info level. * Fix use of undefined $email by using default icon instead (#1444) * Sync needles when caching is enabled * Use cache_tests from isotovideo engine * Better reflect job execution through states * Replace tabs with spaces and fix indentation. * Ensure CSS classes are used for Datatables * Add setup state to be polled and tidy up * Test 404 error page * Ensure use of symlinked applications for clone_job/dump_templates/load_templates * Trim less text in overview tables by using CSS instead of custom code * Disable live log/terminal by default * Untie live stream from live log * Make details the default tab also for running jobs * Ensure streams for live view are only consumed when tab is active * Allow info/debug messages in javascript_console_is_empty * Switch to live view by default in full stack test * Move read_test_modules to OpenQA::Utils * Add support for getting test results as json * Fix missing openQA::Client import introduced in 7c91a962 * Improve documentation for contributors * Log IPC errors * make Makefile non-bash environment friendly (#1465) * Add log function log_fatal * Allow filtering by result on 'All tests' page * Add query param for filtering 'All tests' table by result * Adapt bugzilla link to new SLE15 installer (#1466) * Fix filtering by result on 'All tests' page for some results * Test enabling result filter on 'All Tests' page via query * Fix regression introduced in https://github.com/os-autoinst/openQA/pull/1460 * Ignore .pc directory for perltidy (#1472) * Fix missing log_warning import on IPC.pm (#1473) * Cherry pick perltidy fixes from @henrich (#1475) * docs: Add hint about performance impact of VM snapshots (#1474) * Create ResourceAllocator DBus service * Split fullstack tests in different build matrix * Create exists_worker in OpenQA::Utils * Use schema from ResourceAllocator instance, refactor to use exists_worker * Adjust scheduler full tests after the split * OpenQA::ServerStartup: set also appropriate handle when setting up logging, since now FakeApp has STDOUT as default handle * Add safe_call to OpenQA::Utils * Switching to safe_call in ResourceAllocator * Make job update take into account of ASSIGNED and SETUP state * Worker: Reset state also when we loose current_host (due to failure contacting webserver) * Return 0 by default on worker's try_lock_asset() * Worker: Wrap asset_lookup() query in eval/if * Make heartbeat timeout for rabbitmq configurable (#1479) * Add API description for worker route * docs: Prevent parsing of '#' as markup * Allow admins to fetch the worker status by json * Fix name of the SUSE company * Prevent showing duplicated bugrefs twice- Provide clone-job, dump-templates, load-templates as symlinks in bin-path- Update to version 4.5.1501694730.25c355a8: * OpenQA::WebAPI::Controller::API::V1::Job: catch errors and return no jobs when we fail to contact dbus * Schedule jobs without polling * Make workers only accept one job from one webui - also check if we dispatched the job correctly to the worker * Update worker seen status from ws keepalives if thought dead * Set to running just when we are sure the job got dispatched to the worker * Improve error handling when we fail resetting scheduling state * Do not use in the workers next_tick anymore when accepting the job * Fix the keep alive timer handling in worker * We need more timers to be host specific * Scheduler: Be more strict with job states * Apache: SetEnv proxy-nokeepalive 1 * Permit a dropped test coverage for now * Scheduler: further optimizations and refinements * Get rid of notify_workers, and from the signal that was associated to it in the dbus scheduler service * Remove job grab from the API * Fix bugzilla links for CaaSP (#1395)- Update to version 4.4.1501432550.4c72a17b: * Some more permissions required for power8 worker (#1405) * schema: Add job module statistics to jobs table * Use job module stats from jobs table in 'All Tests' * Add . to INC for tests that use local modules (perl 5.26 doesn't) (#1406) * Update job module stats when module inserted/updated * Fix typo in networking documentation (#1407) * Add the job module statistics to the migration code (#1409) * SLE 'LeanOS' corresponds to 'Server' on bugzilla.suse.com (#1393) * Dynamic feature infos for users (#1388)- Update to version 4.4.1499449966.bd9ee915: * Replace die with log_error * Avoid edge case of asset sizes being incorrect. * Cache: resolve to current host when host URL cannot be resolved (#1352) * job templates: Fix removing options when finalizing row * job templates: Fix check for test selection when finalizing * job templates: Improve coding style in post * Fix bullet points in dashboard (#1356) * Provide a default (0) to max_rss_limit so that the config actually works (#1358) * Cache: Make each log message uniquely identifiable * Allow plugins to load specific configurations * Remove auth_config from OpenQA::WebAPI::Auth::* * Add fullscreen base into project * Add form entry for fullscreen view * Fix navbar to not hide if dropdown selected * Change help popover description in filtersection * Correct main controller and index page * Add error message for missing webserver * Also recognize kde bugrefs in Utils.pm (#1366) * Add link to CaaSP staging (#1360) * Also recognize fdo bugrefs in Utils.pm (#1367) * Database change for bug status * Improve assets log messages (#1365) * Documentation for GRE (#1369) * Extend sorting by time to parent group overview (#1362) * Add workaround for PhantomJS in needle edit test * Fix typo workround -> workaround * Prevent bugref_to_href replacement at end of title (#1372) * Refactor rendering response for server-side DataTable * Refactor server-side code for audit log * Refactor server-side code for previous jobs of worker * Test takeover of exclude areas in needle editor * Fix wrong HTML, input must not contain text * Show exclude areas in needle diff * Show exclude areas in needle editor always * Document areas * correct typo (#1379) * Enable INTEGRATION_TESTS (#1384) * Retrigger download retry for incomplete downloads * Fix perl structure printed in the logs * Check when asset has been removed by hand * Changing from using pure perl to Mojo::Asset::File * Allow the cache to use a configurable sleep time * Unlock the asset before the next download retry * Add unit test for cache * Add 25-cache.t to testrules.yml * Set sleep_time to 5 again * Remove unnecesary code from cache tests * Refactor server handling to avoid race conditions * Improve handling of logs and directories * Improve cache tests * Improve server_start and port handling * Remove unnecesary calls to Mojo::Asset::File * Fix test directory to share/tests (#1383) * Sort the failed modules on their timestamp not by their name (#1378) * Add test for "Server unavailable" * Inform user when OpenID login fails with no message from OpenID provider (#1380) * Increase the grace timeout to have uploads finish (#1385) * Notify the workers only when there are no errors * Create jobs from settings within a transaction * Increase information in logs if a wrong secret is used (#1374) * Avoid OpenID login to clutter log files (#1386)- Exclude not supported and not building i586 in spec file rather than project config - Use internal macro for %setup - Cleanup description and doc section- disable tests on tumbleweed as they hang - need to debug this regression first- Update to version 4.4.1496302635.5e9b3f9: * Replace die with log_error * Avoid edge case of asset sizes being incorrect. * Cache: resolve to current host when host URL cannot be resolved (#1352) * job templates: Fix removing options when finalizing row * job templates: Fix check for test selection when finalizing * job templates: Improve coding style in post * Fix bullet points in dashboard (#1356) * Provide a default (0) to max_rss_limit so that the config actually works (#1358) * Cache: Make each log message uniquely identifiable- Update to version 4.4.1496150882.49e14ecd: * Avoid OpenQA::IPC::ipc being called premetaure (#1185) * Add $prjdir prefix for relative filenames in Needles * Add option to change $prjdir on the fly * Adapt timers helpers for multi-hosts * Make api_call not to recurse into IOLoop, add callbacks * Adapt worker registration to multihost * Adapt jobs helpers to non recursive api_call and multihost * New multihost workers.ini * Per-host working directory support * Multihost commands parsing * Adapt worker tests for non-blocking api_call * Use OpenQA::Utils log functions in worker * Use share/factory directory instead of factory link * Replace dirs parsing by one liners * Remove dead code * Use testcasedir helper instead of removed static * Add some unit tests * Fix generate/packed-assets not to require dbus session (#1186) * Avoid 404 errors on scheduled jobs * Take 4 travis jobs as success * needle editor: Validate needles/tags in JavaScript (#1189) * Reduce the number of travis jobs (#1188) * Duplicate the job if the worker is terminated * Simplify selenium using code * Do not do any jsonfile path processing * Prevent uninit ws variable warning * Pass query params as params key for duplicate * Allow api_call to be called without callback * Change the Mojolicious version requirements (#1195) * Fix needle path check (#1196) * Fix the 12-needle-edit test to leave the data in place * Import log_error before using it * Introduce project share directory variable * Adapt test to use share directory * Switch test distro from pitux to tinycore (#1203) * Fix last remnants of global url and ua usage * Add image upload to full stack test * AMQP: Declare exchange passive and durable (#1202) * Fix an error when job result is "setup failure" * Prepend sharedir when looking for needles with relpath (#1205) * Add full stack test for setup failures * Fix 24-worker.t * Fix build lookup for single groups (poo#15988) (#1204) * Allow override of the usual setting precedence order (#1200) * Fix undefined warning for _stop_job_finish (#1207) * Shared worker documentation * Document referrer configuration and label:linked * Fix job_timeout timer not being removed after stop_job (#1209) * Add get_timer getter for worker timers query * Add tests if start_job set proper timers and stop_job removes them * Improve code preparing data for test overview * Synchronize 'TODO' filter with review badges * Add help popover for 'TODO' filter * Show help popover details link in new tab * Enhance jobs list in worker page (#1212) * docs: Ensure pool dir exists when starting worker manually (#1213) * Fix UI test skipping when modules not available (#1211) * Avoid creating duplicit dependencies (#1214) * Update documentation for a more obvious flow (#1218) * branding: Add casp reporting links (#1219) * Add notice to clone_job.pl help text (#1222) * Do correct DISTRI-VERSION case dir lookup * Fix AMQP SSL wide character JSON encoding (#1224) * Refactor test for scheduler dependencies (#1225) * Fix apparmor profile to let worker read from /other (#1228) * Update GettingStarted for some Fedora repo changes (#1229) * Fix time display regression introduced by f127654 * Harmonize running/scheduled time string also in UTC * Show absolute time in tests list for finished as well * Fix typo and make vhost config more readable * Update Pitfalls.asciidoc * Add pitfall for fake authentication method * docs: Correct asciidoc syntax for pool instance table * clone_job.pl: Display description with examples on '-h', too * Update create_admin script * docs: Improve language of 'using snapshots' section * Fix synchronization of TODO with badges * Add link from test details to assigned worker * Fix bugzilla links as CASP was renamed to CaaSP * docs: Delete reference to inactive stable repo (#1230) * needle editor: Fix errors appearing in JS console * needle editor: Show new tags in own line * needle editor: Display all tags in the same way * Allow configuration of how builds are sorted in web UI * Add id to comments over API to allow referencing * Fix needle editor when taking matches is disabled * Fix openqa_web docker instance running * Update Dockerfile to host openQA on Leap 42.2 * Change deprecated "MAINTAINER" instruction * Add instruction "LABEL version" * Use the default openID provider * docker: Remove pool volume unused by webui * Fix error when running the worker container * Fix dockerfile for webui * Fix dockerfile for workers * Update README.md for docker section * Document running selenium UI tests (under Leap) (#1250) * Make needle edit test case less specific * Prevent double machine tag output in 02-iso.t * Add option for 'isos post' route to deprioritize old builds rather than obsolete * needle editor: Format new tags bold * needle editor: Prevent adding empty tag * docs: Add documentation for 'triggering tests' * Harden loading of auth modules with whitespaces (#1253) * Allow redirects for clone_job requests (eg to ssl) * Allow annonymous read access to operator tables * Fix failing admin test * Fix bugzilla reporting links for CaaSP * [docs]: added documentation about setting up ssl (#1257) * client script: Don't encode URL twice (#1260) * Allow api_call to be called without callback * Add Cache * Enable caching on the worker * Improve Cache package and tidy up the code * Fix cache.db problems * Ensure the asset has the proper name * Add TESTPOOLSERVER variable for caching * Refactor to allow CACHEDIRECTORY to replace share directory * Simplify api_call nesting * Fix the ISO expansion for local assets * Let's set reasonable goal for codecov * Work on testing cache * Do not exclude .git from syncing * Harmonize the keys used for assets * Add newlines to log output * Improve cache directory * Catch errors on cache downloads * Fix perlcritic errors * We need Mojolicious 7.24 for max_response_size * Implement download_asset so we can actually test caching it * Remove -E option from flock - we do not check the exit status * Make sure assets in pool are handled correctly * Add support for multiple group, no build on /tests/overview * docs: Add hint about multiple groups, no build * Call rsync of tests in a child process and notify webui * Move OpenQA::Cache to Worker namespace * Trying to make workers.ini more descriptive * docs: Add explanation for job priority (#1262) * Schedule worker reregistration in case of api-failure * Add more logging to job notifications * Use host_port when parsing URL * Prevent various timer loops * Do job cleanup even in case of api failure * Ensure uploaded assets have correct perms (#1263) * Change $testpoolserver only if passed as option (#1264) * Set read permissions for downloaded assets (#1267) * Ignore module flag 'important' (#1266) * product log: Don't show actions when not at least operator * Make assets, workers and API help publicly available * needle editor: Fix inserting tag via middle mouse button (#1269) * Fix restarting jobs from worker page (#1272) * Merge 'Status' and 'Connected' columns in workers overview (#1273) * Add anchor for build results on index page (#1265) * Lower down quantity of automatic carryover * Add environmental variable to skip online tests * Be specific which text element we want to test * Fix hardcoded cache.db file * Fix assets not being removed * Force read_db after a write * Add subtest for Cache * Improve log output for label carryover * Ensure that label carryover is done correctly * Fix the recursive $db_file appending (#1279) * Tidy the code after last hot fix * Relax the regex for build values in tag: comments again * Don't obsolete jobs for VERSION-BUILD tagged builds * needle editor: Distinguish tag/area selection in check * needle editor: Test verification when not copying areas * Improve little triangle sign below a screenshot (#1285) * Add ignores for db.lock and phantomjs log (#1287) * Correct 'softfailed' reference to passed (obsoleted) * Ensure consistent naming of 'failed'+'softfailed' in all occurrences * Fix overriden shared $dir worker registration (#1291) * Add a Contributing section * Add explicitly index and current.pdf * Stop distinguishing softfailures * Fix typo 'parallel' (#1290) * Adjust grid wrapping in build tables (#1286) * Use space indendation consistently in javascript files * Delete w/s at EOL in javascript files * Add 'build-results' anchor for group-overview page, too (#1281) * Replace old 'important' behaviour with 'ignore_failure' (#1297) * Give failed screenshots back the red border (#1300) * Adjust test module flags on Details page for ignore_failure (#1299) * Document the 'norollback' flag in WritingTests (#1298) * Better error msg for openqa client (#1303) * Improve 'Downloading failed' message (#1302) * Refactor 05-scheduler-dependencies.t (#1306) * Shorten build-numbers with dots to prevent overlapping (#1305) * Fix "only tagged" for tags with version (#1296) * Do not upload empty serial_terminal.txt (#1274) * Makefile: Allow to skip checkstyle (#1304) * Fix missing space in log debug message (#1307) * Register job assets even if one of the assets need to be skipped (#1310) * Test whether admin table displays needles which never matched * Show needles in admin table which never matched * Improve logging in case of upload failure (#1309) * Improve product fixtures to prevent dependency warnings * Handle wrong/missing job dependencies appropriately * clone_job.pl: Print URL of generated job for easy access (#1313) * Allow lscpu to read all of /proc - but only lscpu (#1315) * clone_job.pl: Skip downloading generated assets in all cases (#1314) * Fix invalid HTML * Don't use name attribute on div element for markdown * Fix indentation in overview.scss * Fix showing long needle name in hover popup * Prevent DB exception when adding tests in job templates (#1318) * Remove duplicate "current step" (#1319) * Refactor Cache.pm to use SQLite instead of json * Update cache full stack test * Fix minor race condition * Increase test coverage * Use cache.sqlite instead of cache.db * Detect and set current version of openQA, display it in the footer (#1316) * Add service file for workers with "no cleanup" (#1320) * Prevent tags from getting cut by long build numbers (#1321) * clone_job.pl: Fix generated job URL to be the receiving host (#1326) * Unlink existing asset symlinks on syncing (#1323) * Move OpenQA::Test::* modules to test directory (#1325) * Improve admin test (#1327) * Fix makefile syntax (#1328) * Avoid line break after h4 in midori and co (#1333) * Implement a config option to restart workers that grew too big (#1339) * Allow cache to handle 5XX errors and retry 5 times (#1337) * Inspect failed modules in /tests/overview (#1335) * Fix print() on closed filehandle $log (#1334) * Replace file_content() with Mojo::File (#1331) * Disable printing time when logging to STDERR * Add more tests to configuration parsing * Fix bugzilla reporting link for SLE-12-SP1 (#1332) * Make 'TEST' the only proper mandatory test setting (#1126) * Avoid unit test to write on source code directory (#1341) * Fix breakage introduced by https://github.com/os-autoinst/openQA/commit/659464d19b02e541f2529bd313c39681c71adfcf (#1343) * Add scheduler test to cover OpenQA::Scheduler::FakeApp (#1345) * Fix documentation publishing on gh-pages * Make sure a valid up-to-date license in all files * Fix doc generation - testapi (#1347) * Add unit test to fix codecov "uncovered changes" (#1348) * Add direct link to video position (poo#19300) (#1342) * Avoid github and use a CDN for chosen.jquery (#1350) * Correct Typo in Firewall config file (#1351)- Prerequire needed group nogroup- Also provide systemd services for workers with '--no-cleanup'- Update to version 4.4.1495052041.c6a5bc94: * Remove duplicate "current step" (#1319) * Fix minor race condition * Increase test coverage * Use cache.sqlite instead of cache.db * Detect and set current version of openQA, display it in the footer (#1316) * Add service file for workers with "no cleanup" (#1320) * Prevent tags from getting cut by long build numbers (#1321) * clone_job.pl: Fix generated job URL to be the receiving host (#1326) * Unlink existing asset symlinks on syncing (#1323) * Move OpenQA::Test::* modules to test directory (#1325)- bump mojo requirement- Update to version 4.4.1489864450.251306a: * Make sure assets in pool are handled correctly * Call rsync of tests in a child process and notify webui * Move OpenQA::Cache to Worker namespace * Trying to make workers.ini more descriptive * docs: Add explanation for job priority (#1262) * Schedule worker reregistration in case of api-failure * Add more logging to job notifications * Use host_port when parsing URL * Prevent various timer loops * Do job cleanup even in case of api failure- Add the openQA.changes file to be distributed as public/Changes on the web-ui- Update to version 4.4.1484732113.4fb90841: * Document filtering * Fix documentation generation (#1177) * Fix corner buttons (#1176) * utils: Add kernel bugzilla bugref (#1175) * Do not run tests for GH_PUBLISH=true * Mojolicious 7.19 has broken SSL support - blacklist it * Switch to CDN for fontawesome * Fix missing images in documentation (#1180) * Do not even run the coverage target if GH_PUBLISH is true (#1183)- bump requirements to Mojo and AssetPack- add Sort::Version requirement- Update to version 4.4.1484213177.5ef2a6e4: * Add css class to click on action (#1147) * client: Support sending JSON data (#1150) * Test both phantomjs and chrome on travis * Exclude AssetPack >= 1.30 - it will break fonts * Sort build versions correctly (#1136) * Add optional profiling support using Mojolicious::Plugin::NYTProf (#1153) * Add tests for client script * Don't use config file as database lock file (#1157) * Fix build of the package: we need a db directory to lock now- remove YAML and Socket::IO::INET6 dependencies- Update to version 4.4.1482329765.866bba8: * Improve buttons in interactive mode * Fix command API route * Synchronize INTERACTIVE and STOP_WAITFORNEEDLE_REQUESTED * Change the format for developing with snapshots (#1093) * Fix sorting of needle table (#1092) * Add short route to individual job results '/t:testid:' (#1089) * doc: fix typo (#1096) * Fix AMQP reconnect timeout config var (#1098) * Add AMQP connection error msg to log (#1099)- add new require on time::parsedate- Update to version 4.4.1481828911.8296cb4: * Update worker apparmor file from production worker log (#1078) * Add brc (Red Hat Bugzilla) and bgo (GNOME Bugzilla) labels (#1083) * Auditlog: display event time on hoover * Auditlog: add page and rows query options * Switch audit log to server side processing * Use system user to create system events * Add new Time modules dependencies * Add page displaying single event * Improve search query parser to support multi-word queries * Don't bother with event data shortening- add bcond_with tests to run phantomjs optionally- Update to version 4.4.1481216307.2d2b18a: * worker: Prevent use of uninitialized value (#1066) * Copy over policies from os-autoinst * Fix usage of qw(SINGLE_VALUE) in use statements * Rework websocket server (#1057) * client: Respect --json also in case of an error (#1068) * client: Set 'Accept'-header in any case (#1070) * Return 404 on status update for job without worker * worker: Abort job if considered dead by web UI * Improve misleading comment * Comment events: Drop unneeded fedmsg conditional, include id (#1065) * Improve log message when job considered dead (#1075) * Disable carry-over for job 'labels' to support new use cases (#1071)- Do not package removed files script/migrate_images and backlog- Update to version 4.4.1479741639.90bdf0f: * external_reporting: Fix differing header level in description (#1012) * Add test for parents on index page and parent group overview (#1015) * Show build tags on parent-level (#1018) * Add a 120 column limit to .perltidyrc (#1017) * Fix a few formatting mistakes and remove repetitive method calls (#1020) * docs: Update openSUSE repos to current supported (#1021) * Fix URLs in dashboard when version/distri differ (#1024) * Show submenus on click (#1025) * Update bootstrap to 3.3.7 * Wait a bit in tests if there is an ajax call- update cache for bootstrap-submenu- Update to version 4.4.1478599354.3d748dc: * Fix job group overview without description (#957) * Don't free worker before artefacts are uploaded (POO #14378) (#958) * Improve override needle test (#962) * Use textareas in test suite editor (#961) * Fix worker error reporting when asset cannot be found (#963) * Make .json easier to use and include more data (#965) * Add API routes for job group parents (#952) * Hide empty job groups from index page (#967) * Optionaly inherit command line variables in parent (#951) * Add gzip and rsync to worker's AppArmor (#968) * Only store md5_dirname if the image is in /images (#959) * Fix malformed HTML * Fix malformed HTML (#970) * Prepare CACHEDIRECTORY example in workers.ini and provide profile (#969) * Implement Drag & Drop group editor * Add support for github 'bugrefs' * t: Delete unused (disabled) 'use Test::Output' * t: Ensure proper output catching * Improve usability of job group property editor * Replace all '...' with '…' in web UI * Add assert_script_run description * Allow '@' in asset name (#979) * Fix list of needle tags in needle info popover (#977) * Allow worker profile to access fixed assets * Fix download of fixed assets from web UI * Reindent 01-jobs fixtures * Use url helpers to map the asset path to URL * Add help text using popovers, title and placeholder (#983) * Add missing argument for hmac timestamp validation * Give tests without fails a no-TODO tag (#960) * Trying to make peace with adamw over locate_asset * Add a repository as test fixture to test subpaths * Show tags on index page * Add API auth tests * Improve help popups * isotovideo: Remove redundant '|| undef' (#989) * branding: openqa.suse.de: Update staging to current SP3 (#988) * Show parent groups in navbar (#974)- have openqa_worker own /var/lib/openqa/cache- Update to version 4.4.1477579540.21d4009: * Use textareas in test suite editor (#961) * Fix worker error reporting when asset cannot be found (#963) * Make .json easier to use and include more data (#965) * Add API routes for job group parents (#952) * Hide empty job groups from index page (#967) * Optionaly inherit command line variables in parent (#951) * Add gzip and rsync to worker's AppArmor (#968) * Only store md5_dirname if the image is in /images (#959) * Fix malformed HTML (#970) * Prepare CACHEDIRECTORY example in workers.ini and provide profile (#969)- Update to version 4.4.1477110901.763fe71: * Step controller: split init into 2 functions * Fix coverage skipping files with 't/' in path * Test source view from running * Treat #details tab as all the others to fix back button * Add test for switching tabs in tests result view * Some fixes for the new results / running page * Fix SQL query to query important jobs * docs: Update OBS references * Upgrade to Leap 42.1, and fix apache2 starting problem * Live view: simplify drawImage * Be way more careful with history manipulation on results page * Treat # and '' the same for history management * Allow sha1sum for os-autoinst:2144a20c * Allow git for os-autoinst:d29266f * clone_job.pl: Add option '--skip-download' * Give the user better hints on what we expect for the expiry date * Do not create a link_post for reschedule isos * Use the proper API to get the data of the selected row not the first row * Replace the broken PNGed SVG with the real one * Talk to os-autoinst through HTTP instead of the file system * Replace document.ready with $(fn) * Fix interactive buttons * Fix upload of images during needinput * Make sure the worker stops at signals * Fix spelling of existent * Add web UI controls to select 20/50/100/400 previous results * limit_assets: when sizelimit is exceeded, remove more * Be more graceful when stopping the backend * Always set a t_finished to now if the job has a final state * Sort the finished jobs by their finished time * Change the order of the tests in the list test * Set a t_finished time in fixtures to have predefined order of finished jobs * Sort the scheduled jobs based on time * Sort the running jobs by Start time * Benefit from the hashsum calculation for our icons too * Remove pauseplay class and image - no longer used * Add more icons to assets and remove what's left in public/images * Remove dead file * Add custom whitespace squish * Use manual whitespace trimming after squish was removed from Mojo7 * Mojo7 removed Mojo::URL::authority, use host_port instead * Add SUSE internal branding with more links * Refresh running modules in #details view * Deal with race conditions when refreshing #details * Create missing results tbl on #details * Reload broken thumbnails on test #details * Correct description for use of OPENQA_CONFIG * Fix build tagging when @ is used * Clarify comment in the dashboard test * Use correct job result in openqa events * Add command_enqueue to worker model as send_command * Export log_error helper in OpenQA::Utils * Add job_set_done and job_cancel to Jobs module and result set * Adapt tests for moved job_set_done and job_cancel * Remove scheduler dbus exports and subs job_set_done and cancel * Remove command_enqueue from scheduler and dbus * Check for user when emitting event * Log iso_cancel for canceled jobs due to new iso and allow job_cancel_by_settings event * Fix typo in worker check during job duplication * Fix counting of cancelled jobs * Update Jobs::cancel to accept $obsoleted option * Use ws_call using well known format to send messages to WS server * Sync property parsing to workers format * Make softfailed a proper final result * Add tests for showing softfails in prev results * Give user_restarted an explicit colour * Remove MySQL from deployments, we never test migrations or deployments * Resort to raw SQL instead of avoiding the schema and still use dbic * Fix DB access error when skipping scheduled children * Test both children skipping and stopping * Accept softfail result as passed * Add test scenarios for job result calculating * apparmor: Add missing /usr/lib/git/git * Make softfailed tests show the right colour * Make non-important failures at least a general softfail * Calculate softfailed at the very end to fix one specific case * Add more tests for corner cases * Carry over also for incomplete and softfailed * Add V1 API for comments * Use API for comments in web UI * Add comments without reloading page * Only redirect to running tab when no # is in url * Clear url hash on test step result preview close * Test for url hash cleanup after preview close * Fix incorrect 21-admin-needles test * Fix calculate_result (again): $overall should cover all * Improve error handling of comment API * Prevent needle editor flickering (progress #12984) * Enforce build order for group overview in tests * Remove unneeded functions of old comment API * Add 'latest' query route * Remove history for step navigations * Replace job_set_done by $job->done in dead job handler * Move dead worker check to websocket server * Add test for dead worker detection * Make build in previous view a link to tests overview * Add test for 'todo=1' query param * t: Fix typo in t/ui/18-tests-details.t * Fix deadworker timer function reference * Fix complex_query and its usage in last route * Render links on 'latest' route directly instead of redirect * templates: Simplify single line statements * Make title for 'previous results' a proper heading * t: 12-needle-edit.t: Try to find overwrite warning more often (poo#12980) * previous: Move current limit where other options are * Add web UI controls to select more builds in group_overview * Add web UI controls to filter only tagged or all builds * Fix workaround label * Fix taking over tags from a workaround needle * worker: Remove tons of work arounds and quirks in upload * Allow cksum to be called in the worker * Upload assets as temporary files and only rename after chksum check * Fix typo * Prevent use of non-existing route in upload_status * templates: live: Fix url_for over 'latest' route * Disable auto-duplication of jobs (poo#13042) * Avoid shift * Test handling deleted needles in needle editor * Ignore deleted needles when showing needle editor * Show warning about deleted/bad needles (needle editor) * Fix admin layout for test suites with long keys Currently test suites slenkins-tests-ceph-control and s390_hsi-l2 * Make apache follow symlinks for assets directory * Fix '0' duration for previous jobs on running or scheduled job * Add link to latest job in each scenario * Allow pinning comments as group description * Fix jobs templates layout * Also filter 'machine' on latest * Vertically align progress bar with build number * Re-add boundary hack * Make 'latest' link more explicit * Do not quote identifiers, solves problem with uppercase column (#838) * use /var/lib/openqa/share/factory/iso path (#849) * Add 'bash' to be able to run 'CMD' (#850) * Add filter from in test overview (#852) * Draw needle match labels after match boxes (#851) * Add lock barriers (#845) * Show custom error pages (#831) * README: Update coveralls icon by .svg version (#853) * Add new job state (#848) * Remove old comment code (#856) * Run optipng on the worker while uploading images (#858) * Add filter for all states and results * Distinguish comment events * Show results and states dynamically * Test whether job still exists in reduce_result * Split Logging support out of WebAPI (#860) * Give the scheduler a home (#862) * Log status update without worker (#861) * dead worker check: use 15 secs not 10, better names, comments (#864) * Fix the stale job calculation for uploading jobs (#865) * Fix path in docs about migrating db schema * Show filter on top and display current filter * Avoid HMAC timestamp mismatch during large file upload (#871) * Give Websockets and Scheduler the home of the webapi (#870) * Label builds where all tests passed as reviewed * Dont grab twice (#874) * Prevent detecting occurrences like bsc#2436346bla as bugref * Replace URLs with the appropriate bugref pattern * Do not rely on WebAPI to find home - require and use an harmless class (#876) * Prevent multiple bug refs per comment to yield incorrect URLs * Add 'match' query parameter for index page * Add 'group' query parameter for index page * Add more faking to FakeApp - so restarting jobs works again (#880) * comment the home detection for scheduler/websockets better * Allow bugrefs being separated by any non-word chars * Fix used needle indication when needles are in folders * Merge match and group parameter * Use $FindBin::RealBin to resolve links for client script (#889) * Fix previous jobs showing up for different machine (#885) * Remove FIXMEs and disabled code in t/ui/15-comments.t (#888) * notify workers when job with chained children done (POO #13746) (#883) * Pass encoded URL filter parameter correctly (#890) * Reintegrate job duplicate (#875) * Mark worker alive for all kind of artefacts (#894) * Small schema change to add an index (#895) * Add IPC debug to websockets too to debug hangs (#896) * update apparmor profiles for ppc64le (#892) * Try harder to avoid long running pre-processing (#897) * Increase session expiration from 1 to 48 hours (#900) * Make ws_send_all WebSocket call not waiting for results (#902) * Avoid DBUS dead locks (#901) * Do not manually render anything on websocket creation (#903) * Prevent error message in log as 'scheduled' jobs are also 'inprogress' (#906) * Add scenario params to limit URLs for previous results (#893) * Handle links to bugs already formatted correctly (#905) * Improve documentation about PosgreSQL (#904) * Test time_limit_days query parameter (#907) * Fix comments test (#908) * Split the images directory even more (#739) * Add anchor links to comments (#909) * Move comments.css to sass reduce copy&paste (#910) * Readd the lost name of the thumb_nail route (#911) * Refactor computing build results (#898) * Show incomplete/skipped bugs, show tooltip on progress bars (#912) * Add link to openQA review (#899) * Fix vertical alignment of progress bars in tables (#917) * Show progress indication in admin needle table (#918) * Track image assets better (#919) * Fix deletion of multiple needles at once (#921) * fix downloading assets to different filename * Fix sorting in admin needle table (#924) * Add JSON representation of index and group overview (#922) * Add filter form for index page (#923) * Add /index.json route and test it together with overview.json (#925) * Fix /index.json route to pass the format (#926) * Fix softfailed results not showing in tests list (#930) * Fix group filter on index when param is empty (#933) * Fix group overview when no builds shown (#932) * t: Add 'Test::Warnings' where missing; Catch all warnings in tests again (#931) * Extend schema of JobGroups (#914) * Fix typos (#935) * reuse a constant boundary to make debugging failed uploads a little easier (#934) * Some code cleanup and more tests (#937) * Fix test result info spacing (#938) * fix loch ness monster bug in 14-grutasks.t (#941) * Load step and needles for failedmodules link async (#936) * Complete API for job groups (#942) * Auto reload result page on state sched -> running (#940) * Update Installing.asciidoc (#927) * Go to bugzilla.suse.com also for bnc# (#943) * Fix going to bugzilla.suse.com also for bnc# (#946) * Improve error handling when deleting needle (#939) * Fix needle deletion via Git (#948) * WebAPI: Delete comments stating the obvious + delete unused routes (#947) * Render bugref links in thumbnail text windows * Test render bugref links in thumbnail text windows * Show job group description (#950) * Add 'fixed' asset subdirectories for fixed assets (#928) (#945) * use locate_asset in register_assets_from_settings (#954) * Rejig compressed asset download, don't leave compressed files (#955) * Fix registration of downloaded assets (broken by 0905559b) (#953) * List needle tags + step icons (#944)- Add missing dependency perl(JSON) for openqa-client- Add missing dependencies perl(Data::Dump) and perl(Getopt::Long) for openqa-client- Add symlink /usr/bin/openqa-client to /usr/share/openqa/script/client- Ghost /var/lib/openqa/share in common subpackage * solves issues when updateing worker with mounted NFS- Remove perl(Perl::Critic) build requirement, added by mistake- Package /var/lib/openqa/share for common subpackage - Pakcage /var/lib/openqa/share/factory/[iso|hdd|other|..] for openQA package- Update base version to 4.4 to express new API of isotovideo- Update to version 4.3.1466434215.021a11c: * No longer export the worker_id as hash entry * Remove job_get from the scheduler * Simplify our theme - split the sass theme from the specifcs * Set an explicit colour on cancelled * Use default bootstrap table class for striping * Use the theme colour in tables * Have our bootstrap theme based on https://bootswatch.com/paper/ * Fix comments test - h2 is the new h1- Update to version 4.3.1464792258.155f49e: + t: Use helper function to wait for ajax + Extend iso post TEST parameter to support a list of tests (poo#10482) + Test for "let TEST parameter support a list of tests" + Enable brackets inside keys in client script + Add first approach for editable comments + Make comments for tests editable, too + Fix indentation of flash and wells on test page + Fix minor mistakes in editable comments + Reduce code-dublication in templates + Add first approach to test editable comments + Test comment editing in test results, too + Check for current user in commenting functions + Adjust t/17-labels_carry_over.t to reflect changes + Add css class no_hover to all /thumbs/ + Improve TEST parameter to support a list of tests + needlediff: Improve similarity text look + Use the nice audio icon (with the correct size) + Use nice icon for wait_serial + add a config setting to specify asset types not to link to + Increase left padding of status icons + Prevent error in group_overview with '-important' builds + Check database configuration with better user feedback + Fix broken string compare slipping into wait_serial icon change + Fix non-ASCII characters in comments + Allow admins to delete any comments + Fix showing editing buttons + Fix regexp for multiple parent jobs + Fix typo in 05-scheduler-restart-and-duplicate.t + Improve log message about 'setup failure' + Support tests/export to get a text format for archives + Fix re-enabling current user role + Adapt to latest AssetPack- add perl(Archive::Extract) dependency (needed by PR#627)- create openQA-client and openQA-doc subpackages - remove DB handling, it's done by openQA itself now- adapt to adam's changes- remove user migration code. no such systems should exist anymore- update base version to 4.3- add modify_needle script- add create_admin script- add perl(IPC::Run) dependency (needed by PR#414)- we don't need JSON::RPC::Legacy::Client- fix rpmlint warnings- add openqa-scheduler.service and openqa-websockets.service- fix fileliist for missing service files- package dbus system policy config - add perl(Net::DBus) to requires- add openqa-gru.service- keep /lib/openqa/share in webui and the symlink in -common. So a plain worker owns no files in share- add --from=geekotest to chown call just to be on the safe side- create a 2nd user and migrate the worker from geekotest to _openqa-worker- run preparetool from the right %post- fix missing ini files link and package new config dir (boo#919548)- Changed path for fetchneedles in post-install echo- don't move ini files in spec, Makefile does it now- include fetchneedles in file list- Update to version 4.1424166204.2ca1601: + Refactor worker scripts and add locking support + Pass worker port to os-autoinst and remove :jobid check + assets replaced /diskimages long ago - get rid of it + avoid "openQA: openQA" as title on main page - looks just silly + remove lib/OpenQA from include path - not needed + fix make test to be coverable and use it in .travis.yml + switch default auth_module to Fake + adding a test to test /admin/machines using phantomjs + skip the tests if phantomjs is not installed- we don't need MojoX::JSON::RPC- reduce mojo require to 5.60- require qemu in worker to get kvm group - add geekotest user to kvm group in worker's %post as qemu is not required by the web ui- fix requires- make it version 4 and require os-autoinst of version 4 too- add BuildRequire perl(Test::Compile)- pre-require openQA-common to make sure the user is created- we don't require png2theora any longer - and actually openQA-worker never did- fix upgrade scenario from openQA to openQA-common- split to openQA, openQA-common and openQA-worker packages- fix post script - remove buildroot macro- don't enable systemd files in %post!- Build as noarch package- require git-core as it's needed by testsuite- add perl(aliased) requirement- remove apache conf.d file- create log file in package- restart boot.apparmor on update- disable tidy test- recommend instead of require apparmor - restart apparmor on update- load_dbdata no longer needed- Load the data for the opensuse usage case into the database during %post- Added a dependency on perl(YAML) which is required by initdb and upgradedb- upgrade.pl was renamed to upgradedb- require perl(SQL::SplitStatement) - Initializes or upgrade the database as needed in %post- require perl(DBIx::Class::DeploymentHandler) - add /var/lib/openqa/cache to file list- use prove instead of make test- add GHC, Mojolicious::Plugin::CHI and Cache::Cache as dependency- rc symlinks for webui and workers- fix dependencies on JSON client- change version format in _service file- move the openqa.ini to /etc and mark it noreplace- require perl(LWP::Protocol::https) for openid support- bump version to 3 so we can differ it from v2 - require systemd and old JSON::RPC - needs porting- install apache templates and enable the systemd services- add perl(Image::Magick) requirement- add perl(Net::OpenID::Consumer) requirement- add perl(DateTime::Format::SQLite) requirement- add systemd macros- update the fileslist and the post script- require Date::Format and File::Copy::Recursive - update the filelist- require SQL::Translator- add openQA's apparmor profile usr.share.openqa.script.openqa- add perl(Config::IniFiles) as Requires - remove /etc/default/openqa- fix filelist and run testsuite- use remote services to hook- update to git head, add new requirement File::Copy::Recursive- use primary group "nogroup"- initial package/bin/shlamb16 1541875255  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~4.5.1526033850.1ad9148d-lp150.2.3.1631.120.010.040.0.10.0.1     !!"####openqalibDBIxClassTimestamps.pmOpenQAOpenQA.pmBuildResults.pmClientArchive.pmHandler.pmUpload.pmConstants.pmFile.pmIPC.pmParserParser.pmFormatBase.pmJUnit.pmLTP.pmTAP.pmXUnit.pmResultResult.pmOpenQA.pmOutput.pmTest.pmResults.pmResourceJobs.pmLocks.pmResourceAllocator.pmSchedulerScheduler.pmScheduler.pmSchemaSchema.pmJobGroupDefaults.pmResultApiKeys.pmAssets.pmAuditEvents.pmBugs.pmComments.pmGruDependencies.pmGruTasks.pmJobDependencies.pmJobGroupParents.pmJobGroups.pmJobLocks.pmJobModuleNeedles.pmJobModules.pmJobNetworks.pmJobSettings.pmJobTemplates.pmJobs.pmJobsAssets.pmMachineSettings.pmMachines.pmNeedleDirs.pmNeedles.pmProductSettings.pmProducts.pmScreenshotLinks.pmScreenshots.pmSecrets.pmTestSuiteSettings.pmTestSuites.pmUsers.pmWorkerProperties.pmWorkers.pmResultSetAssets.pmJobSettings.pmJobs.pmNeedles.pmServerSideDataTable.pmSetup.pmTaskAssetDownload.pmLimit.pmJobLimit.pmModules.pmNeedleScan.pmScreenshotScan.pmUserAgent.pmUtils.pmWebAPIWebAPI.pmAssetPipe.pmAuthFake.pmOpenID.pmiChain.pmControllerAPIV1V1.pmAsset.pmBug.pmCommand.pmComment.pmFeature.pmIso.pmJob.pmJobGroup.pmJobTemplate.pmLocks.pmMm.pmTable.pmWorker.pmAdminAsset.pmAuditLog.pmJobGroup.pmJobTemplate.pmMachine.pmNeedle.pmProduct.pmTable.pmTestSuite.pmUser.pmWorkers.pmApiKey.pmFile.pmMain.pmRunning.pmSession.pmStep.pmTest.pmDescription.pmPluginAMQP.pmAuditLog.pmCSRF.pmFedmsg.pmGru.pmHashedParams.pmHelpers.pmREST.pmWebSocketsWebSockets.pmServer.pmassetsWorkerWorker.pmCache.pmCommands.pmCommon.pmEnginesisotovideo.pmJobs.pmPool.pmdb_helpers.pmdb_profiler.pmperlcriticPerlCriticPolicyConsistentQuoteLikeWords.pmHashKeyQuotes.pmopenqafactoryscriptsharetests/usr/share//usr/share/openqa//usr/share/openqa/lib//usr/share/openqa/lib/DBIx//usr/share/openqa/lib/DBIx/Class//usr/share/openqa/lib/OpenQA//usr/share/openqa/lib/OpenQA/Client//usr/share/openqa/lib/OpenQA/Parser//usr/share/openqa/lib/OpenQA/Parser/Format//usr/share/openqa/lib/OpenQA/Parser/Result//usr/share/openqa/lib/OpenQA/Resource//usr/share/openqa/lib/OpenQA/Scheduler//usr/share/openqa/lib/OpenQA/Schema//usr/share/openqa/lib/OpenQA/Schema/Result//usr/share/openqa/lib/OpenQA/Schema/ResultSet//usr/share/openqa/lib/OpenQA/Task//usr/share/openqa/lib/OpenQA/Task/Asset//usr/share/openqa/lib/OpenQA/Task/Job//usr/share/openqa/lib/OpenQA/Task/Needle//usr/share/openqa/lib/OpenQA/Task/Screenshot//usr/share/openqa/lib/OpenQA/WebAPI//usr/share/openqa/lib/OpenQA/WebAPI/Auth//usr/share/openqa/lib/OpenQA/WebAPI/Controller//usr/share/openqa/lib/OpenQA/WebAPI/Controller/API//usr/share/openqa/lib/OpenQA/WebAPI/Controller/API/V1//usr/share/openqa/lib/OpenQA/WebAPI/Controller/Admin//usr/share/openqa/lib/OpenQA/WebAPI/Plugin//usr/share/openqa/lib/OpenQA/WebSockets//usr/share/openqa/lib/OpenQA/Worker//usr/share/openqa/lib/OpenQA/Worker/Engines//usr/share/openqa/lib/perlcritic//usr/share/openqa/lib/perlcritic/Perl//usr/share/openqa/lib/perlcritic/Perl/Critic//usr/share/openqa/lib/perlcritic/Perl/Critic/Policy//var/lib//var/lib/openqa/-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.opensuse.org/openSUSE:Maintenance:2365/openSUSE_Leap_15.0_Update/14445c3de1f4a59d1739004fe779078a-openQA.openSUSE_Leap_15.0_Updatecpioxz5noarch-suse-linuxdirectoryPerl5 module source text  !"#$%&')*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|~PPPPPPP P P P P PPPPPPPPPPPPPPPPPPP P!P"P#P$P%P&P'P(P)PP*P+P,P-P.P/P0P1P2P3P4P5P6P7P8P9P:P;PP?P@PAPBPCPDPEPFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWPXPYPZP[P\P]P^P_P`PaPbPcPdPePfPgPhPiPjPkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzP{P|P}P~PPPPPPPPPPPPPPPPPPzc-3n?*Zutf-8d6205f276ed1b261133e70be20328cfb170ab1cea103f2f7e0a4b59cf841226b?7zXZ !t/U] crt:bLL FX۷//p&raË9A.]RpN}]y@SF2`xY-;fn0:/IH'HnwJk ۜ9;gZJY'[hC(t5pFt:PRe!,LFϯ^:(=k Irr(/e u ע.<ŭ=K^h1Tt>DIRJ^gkos穦,<{5+B a0B]਻ԦM7Mى-_w:uYl}*{dp_v} k9h\tLs=  #i&+$E+_9RkGll(d:?-B8īo}&ŎM)և;{K=2Dgb(eȝ1!y "ChZ@$K ~ FDnq /$*AÙî~IWRw͒.FCG"Ekt67ӛزu;z71A|]`wPfOƁ*3SEHD_2+!PSB9 " ԀI?r5p% 5;-E[.kO`KTJvվ T,8GO,qUoe[ֵ 7إlI,-X֮[`)c<6gH=t`ͫ@쪛.vٱ|88m4XާFZྦྷif@E/.u6k`XA4&+>$F5Ahq2r%5gؾZŘlC>A{:IK/6gU#(z$x֦,`ŮyJnݝux!WWEwMG5L}8^|)L\]1PNH~kZ{Y>/>בe0n¡'CTŶ k9jWê۔I+ŻLo8uc3艸iEpV/:_r9S/CT!6#@ʷ*KQYw &,B,>Em\E3VTN|z[7 +l4 7[qF?UL4h3wU7n+mE= ,˓Hy$aT4%lKDJ!,I Jo`>RJp@KF uJCy]ktLэ'''+#cL.%G0O8%Lè%O xmMꢦCkMer’CoR,G͞P,vnWV X R1#|K܂/Bt!D{^I"'#sqB-n/i֘kO U"HK=R)cI"r>xw^XRH^(f'~X b+WckxdyDA P:4<OQCk%4>xҁ#V袴Ј#m>} EF]"!!:+/\P oz'cw*.z/_@s< :`wڪ˂p!#V;um^[' jodv+8ฌv_@F\Uj~&U BфJ^!/F!Ȍ=\ g[j6|iI_T/7™ cQpt^^c!bxfvSȶݩٔmj ΋'hvs>Ԗi7Z\2=i+[mޝ*19!+X׀o*#Fpꈝ3ӄG|F.7f20-EY| 2|{UIHA/Ua3;#,>Mh[%㩹W!'EYu\ӍLtu#,f*#=w-אƪ* LaypDm 2]yibdĜ҅9?ʟ5&\$zYg)TdXVϝd)ɢy+Keu;Jޟiϖkm];6Rrj!P6953CT>tn15P*eЁR!"u=8'an2$1K$^ L!zy] fVBd, ndS SQR!1lH#t7>\H|MS}%.R}5 sm#uHÄ <)L)&u:#>u aā ^"пݕwJbY|ʽk5W5uĆoTPxW}!7?[?΃^3Gj_ \ऩ*'xnԚ=f ?vӔG,Yㅻhɴ't Dz# ^>0&|V[S2AfB5Qa_Ls7! B:K3(M;Y]׎T1`ƶTrR6o^@ mg P_ebeᤁ&Mah,S,$+  vÂYWQt}*a=s>An̘͑ngzÁfvc`UOV.6NXnsQuqՏhf"irZA\=LB젾R$xԁTxEkpV̟F 9c{yN6ėЊOF33;aƖdOR˷lxdZ/"t4u&8<{q & Ae4/4RTU 05%F, *aMKvCҏ,Wed*u]b3 /@ ;? oAcT*WH5hO1ĤÕd_@`{:, P}fR"^* "7Uʕxm>*Gv2rL״7W,k!jY(y5b'U܂;Qp"-/.]/ *jOX/d5b:.M,^x`}Qߣ׿4-3yjk~"dDZsbVp@\)#c Ȅ|CbW"vgax~q~ vmLLu_N;= #ShP!$Nb{ӘKe.vxLV&1T#Ts18x-+cϦT C -|v6^0#Ԭ3{6Ux?G 4k|gY S{LѸR^+^pbMY3n`Tf%ϟmf}fOSB6\5Z| " ,X e.ʧB_Pb( eR>̼INe@$/ZOs҉s%3?}K35),)H~;keuLE# sĺ=BNul9r+0& Eq"\[ k].0Q8/揿B3?nڲlƐ46]R6tcV2A#vNڛ=So 97ژ=ɠM!dp@x$=f!! <7=a-c.WSGJ_Nl~!/y %K =ɻe&gt.N?A5Ї9XaU"EK͓l4.sI+6/S`m`9(rE:yp1 :2\so5;/8a sjCn-eRotf~Y.db@ɟKue=P4QN܍ HaӢ)/b2S (:/e<nף=F #RcVw`8:xm$G~9A$r]5Kp5hPTQ5`wC`:sc.8gYK;O*r(V (/cRss}5=GnTqr4`6<#!RP+/I+LG* n溸#rG xh?^'l>3sFS=;6zQ1$(ٗ')?q} >C7"5Ǚ4Ia6m8 "(lMɗ ']'耬;QTd ޯQ >߆Im(4`!p;)6"X{\0)ԛ8e7p#X֋M%A gmQpRSŲ*a{.Ld}gpFtS. ŔUu܋`>t-Ę+os[(/ߓg䭙qg#JC(#^ɢ^s~0d104J8 fE=XuSֹ8h;N+Ý0kis'K4k7'gx{<~U `(*II`|03Y>s ܭ(uP[NQ(?L|bvLNcp<$bYi2EM C-0a1ꗤN`-@ql77*|Lb,|G(qʭUak#a6}OG. d\-[ٝ jpO7sRčȚg(0Dd45 @F46ʹV Ԧ$к(h"Vt_a %q+l{͓X4U>VXcl,-y>͘xw!]l]z,f4ʚqhzKc8:Y$XVl@Yw;aF5H\z+RS0,N+j[-`:c[iw5k93K."H&R¤b)IKkq`מ=ͺhTfotD[d>)o B@<ė Wa m[mT7XvB(ULZϕ~O*Xv2W4(nq$^"\ZD泍 rt&<.*?qpGR g-H(4pDR}Dq/HJ9jvvI6(0A}[yH7RBͰX 1mQ<jc@sf]Fi<6*~r|%;֢"tBkg)?P5ʥ*)}qo0>*Jb!B5G>`gyJ)NY(5nZOHW )B)kݢNq^(]A&HuH5t}!po{82jB&mz^\MHf6W>cGJ侑B^.X؍ݞݷcoXww:iŋՑM5nۯ.`}u]gZ^{[!X&Tx1mf ++fm.+&<;BɚC`5%9a|Nbr8>FH AȹB[(4 |"ݣVWq B~C랍f/oUn SYqЭve1`9&_R С<+ޘ+Dql> BZ[tڪcS,cеwRȧ֌}`Mhpc')7`B[wF@ر Vet:݁`M YgCқ 嘘:r`\X O+,UgJo95p {b=MDTٲGxy3:1.5j?Dٚ|5,DD)i/ kՉHv V4?,V0! z}\Lȇ*#TU_.GH(ڗLjSjrCe F HUէQ1$Uda1?V_B2_3pWT<CW(ijs+'MN@\0l `'AW7ύÕgCUR&b̒6tͨ/LXY^KݙVJs)0|h__ՌBZaS)6V\)K6*9-(D-sfIxI hHavQmČ!78FNc_AcAcU{$*<\%[Aq (G[nEOt'VY]c_m3'%Wev㪉dmP)8ۙDy'|O}L`0<ҁ5[fIgRp|7,DPͫbC%HjVl[=ɢ6:j(_[g(WwdmeܸJ}] w*' ǨQ"p#>:r R'2n%vkLHZ](Eq(<Һ3vYZ4Q,d 9Ml+w&^S S)Ũپ[q8n1#C,پڎg%|,@'ă_Q>`c,N`3 `uEHwqDV9HLF[A_W=p fB{ Hqa6M^.xGa&24`? :0 Ms#ʛ+ݑkf`WER% 4X7«Ccn'/ 2AWJW hk4"p$^Rqh/@%.:ӻ&lA?&pˣu<ж̋e܊xq![x3U RgtWh*Z~|{z:tm*Dኋ-d89X״o1#DwR`tQ^IS5g0UP]|?l&$ǯDq # HDŽ ?*js!uŘ3A!O r,y52S@:o%gu Sp|cr),A<"D#U& \sqgwY%Ip%"=zs1?%UU|h(&n8ȩ.@З~R.4@e?n~a%5@\T6Tx*'SCn6%3?摥uzs6NZ!X:fsuPT_ R [m6$ @7hU/CאY;jp K9mŮ4Z4΢{G < 7bt K١yՒy;SbNe?6usr+_8?Bl" ԋqU.4S-HN- z٬?U Մx>ycbHi+sP\QBY )E`_h=Ozl=;X滄:O=&/FYb~7'0P"Xm𞯱֑:9̂ƅNQ4 o/j@@adQҰpf+)IL\QZlMΔa+vwYig٪%,KV4zzi():~.t9LF Q?Ph=i}|",ڭ^ -ΧҾ n齪3ƺz{|ugO$@e-Fweؽ*赋O$j]cCAwÄfUpB16vNiiCʙB||Η]~ ?Ew4·&ߌ:50i^:ҹX8!fHgU QOC|eC zt_\nGIזG@x=4fC-2?B*St:ݬc$3-w%GI*NY<m/r#{]REHh{<0_ÈR[ _Y{bcɗ&!$b=en@NH/Rg,`ͼvnQ671}]]׼ :siQXh9;c;Dd߄+?DYH/9B,3?d,{^жd_w݃l_=+n}Gv"3lnzj kO4C97>TR{xW%6xE `S9<>xu&qh(/x]u0BL`sT+50[EQq=x+〈mKI:s9M(F~?#!1o1Fy"PA8U"=dT/זZ/@8~v PiME`Lc3wE_x{xU9gأQcqaZPo*&H5z]{Yi13n𶾟 tR}1io+i >3]HzilpOpo*q^AH#xQ`8w|,.$5FI+akՅ{//RO(F>.9/gF䖺|qqu B%,'<<ıQӔb9B}P6F빕ᙈ3p7nǮ]0&yw٧۶ 0Kg7Zjƍ ghac9k dY%F`g%'n鳂h "Htd`f. _\m,uU^@,\xeb"SvD܅ZW'_cVO$hf{4<֍^Lyfiǀ̈́=rDQ|lp { O9SɚzqeYN5ߛhґ'̉āH(]RlOisљ2\nZRՈ %xOeT2s7X&N()JM۞ 槸|=OC>_Z6 !(؉^tAmX&$0{eSQf Až޵p6[W |u{N.@SH>$a~b$nfPiA$#.P\Ly<'++WDM{|uFMyT PRylΧu,fi$*mQse1;%?Mxsbn^ 'OV`G"*W,X*I5p>:DH5> t&oD-pdYwǮXtJE}YȈkef[BE{!lbȈK=r1|/,>)ϡӽe>J!w3D($j{0+VV'9.q(Vpu:zC`k>,1W5oP>hRBp3P誣HHipOd_ْ Gan1Q~Ua4XMbc GΣ_]&5<x@0 g%P{ºq8)qM2U9hjG*^5%dn * j壵<V|f_rnDA/=ؐ¯Sr 7Gffy}שoyײx 9L1OA׬}Hj+fACJ8׫I姍F `tU]6J j17 @_/LL!P%_[80re(1Z}ݏ X[^"P_5*Neh`uU:gt 9R36x!蘭Q&L=`'B_+g 孤iRv O"Le%-egd5$ʐ}kS> !'V׾rfD[4]0t:Inj# Q/%<\ָgiw̧q-1s -=Dr_#QU=Qtoh|I=BRШΠCX!Nỉ.-DqǻY$/oLH]O8R]tiL:Q+4y?@rVw(EVxD Pq=6d2e+ȃ݋S6KmycJs/G+Pp*kTCWojBkcnN= $S'6!yEfYM>n"{:f(,٣aZ?c'4O,yM,\'W_ ,3#Xj(da2;z,C x/ׇ L)Gȉbaayw >ҴnpLxZa1YJGѺX؏E^.> DhYAadiuoD%^xBI&BA$i;4NeZS‚ddu> clzi3YAf.|+# ҆'-@"Aa$`R6:>&(:d5QC\Z u 'נofFALV(KbއV; ۔I./{ceI֣uv #uw嶂QKјke@:SZo!͸?CW:KE3qIE;:r-B5iMp4$8cy,W;%Qvq ghl2CA;ek&Q0sv=r LQW-"m`M}ߊ4Ӣ{bOK3&b,⃺b9~Q=^"+/c2EHmYNAV?Y46Z^}ZhQhj( ?p,vP0ݜT$epNv|m< nйNy&4-*k\+V %vu1dfj _WIh۵jݧ`HZ_~XZk& +]b+oqE6ZjRbW'`)6AޚSvY xU\4 vevvMӮ1u~./yўgMv1ơY1)DAY7rޔ6ASPl`P\Vƭ|b(-[ t:bӟ;*zzwU+CǮ=r-_v̓%4Νp rgݦ~")ku(J{)`píz0@fRNvU=zmܩ>@$RD$W}>|A(G-l7Ff-DI{G?C1G?SW=npUMƍj^vR]Qެ_^@ GK=~F{dJh]Iz9cui|fشp|8-&nyeO'pdhU86"ff(һH{oΖv緹\uΘ7Q~jU름% 0yUܛ" GN~$2!=PnV Lrr$C@TN\Z-n"irģ@0fIU[:aB32DRV?Y4GyzO􎹜_?#[C:C`IW>ϩe:ᅡbu/[t y?bsql6Mgٚ탛!kAJܢÃmF ZMyF;=x0h$Ȧ(O.K QF0ЉY蠬{kwJQS4H4 $kgh_G9tS.̩w)/\{OZMŰ^#@[rntyg[>O$,f4_fHT3KيS&)kh7kIeJ#Vwe]8L`+8W\cG&wv=L5Gɯ̈. o9^-fЩOT0R2ĭ=XYN ׁoGѝ) igd)P-z>Qh{l.@oM ! ܅j˺=!&g;hQ~\zM\գ;Jr*p q#'X3{"u R[`̘aHį=\~'q΢̚|4YKS_aH-%+b5nv1;C^>ԟ'Hޑ5:f,RDm?U0s7<#|6KSML,9>j )l9 h LX{K{-&W[} NSx4+`p}5ʽC\{85*I0`У볊CP.q|SM:5y)Y"_OABZށ7[޺o )[x!kyܳy%GFHmdy x}I+j8=ЋFr:Rؔ 〵&ù?*fwGnKRy9  8dp}HSUC_f+5AA4q W=D` w?Jc {Y*cRYup/sPjK^ٛ>9ޞ,T1l}\ ȼ> 6L7J>(\5$pO 2t<GM>$X"IT&D#EŁT<{* D;n(.>M;N<5:V3t=J|.9.Dq/&C:"XBRPcU1~sPpvDgtXfSBtaұfziJHi]_0 }Ro\Zۡ10HVإR+fY[<˙![UU]I&oDB/ȭ8&܋A.3o&Zmp\#0]A™7D4I|zW8A"ᕯ4#k0ZJ;^1:),H/JusLWYO&'MzECY9EB479vt(N<] AFuq֧ uJ3ދtX)0Z׌#Fmxk8ͤ=- ;N/:2jj/]qG(!TKa&}g?OƴUKa.RV!PFxð ?ư6&Pxңt~q-!!E1Iq^ع]Ѥɝ%vrn d\UTN.?9qf 3xο_.DL%T얐m[ Ӵs֑d\JdL"7Wc3=º%4Y 8+W DZW?q9$όWCMw]&3AC6`Krx?>m}[o]>wcaj=O ^_)/30djJ^lSzcQ7\j qu(Lrm:d,{T{o:(aLPSǐ%vq`T)amA:ٹ-J A=vɾpjX6oT9dFr}~;?ett؇ 9R5kK vfo DY[ 7L NnThi\GSזUW2L M4tZuSt@5*'JG:iVILf1%|w &7#߾\BﶆbC~Os/] SUHr1&YEPԈ_A0,جl {Kóp+Q$ qq ե9D bw!#mbTa^8 qE/f&[j& UzGU5 jF[*c>-XG 8ͪ(|Pv,&`GCc yT[P"khO`-Z iv\wWiɀbѾ-}8hyw 5m+l{_mӍK%AՐr)APufwN5>#z0#*>hLvNZ&oE.ʿ$ iu ko/\L BfMas}ۧә"P)[Sr0Y:Oa>!=3ܳ%%.b TǬ3, P)=tyN!\!酔׶OsZvn=3ݦSnҟG7pN zTnIl ݡ o5f!:ąA`] s? Yҡ %3Z ~a`7 ~Vs\MmB,f+A)ܱcUŬA>*K  ^Ak&̫i#[[ $Uַy~aS#BjDɂ_629HO7r IjdKM oSR!8y"F/v=AAU0t6RvJj)K'K RPK[‘a蜄d9j3kk䭥b{lP@Z_mhNBhwxGs0? \=GpLpj&o8d8|N K c?*$U,IֹVQH 4i7r5^6vTnW7'$Љ30ʧHH5kuzc)(0rXw^ W`)zT7ǛY~I̊^NOIqydi'-na(ޘmjtt67 j HW PW=Ӫ^d܌R<ϣ.hbdz/Z>^W|%餔[? 0d4 7ÿ%yG#F~!GuU꒱s- }iĴ@HѴ~ d?B=K=Xqm I Z M~Ƚ,qM`Nh觰N"_Ts+QM6Ӄvn83#ypޞtK<խ#|v<78 Rr+hɰ<л ;"! \%i!ڽ67amGU`lFh6"bow;~Hs&^kk= VCbѮ/qhkl:޳^kVInDŽdiZtoPK1vs]F@Zd0%0KLߤ L߭o&zGZc-"5TUCF(uӛ$"^ig,Ҁʲ R!MjXWAN?`5rԲ$yWqwB.' 0J "`w'@dYƳю8V[u Y<52 }&jR/`/恸$+R%c3WxSM 0%;.a]*p +'.!+ KFFUً&1g Ѥܐ_T-6QQAm-7zY! j脡ezF!by|?nCDGQ#^OΙK>C+|4tQ-}옵;bt0y)5,:9#uZ(!7: | 6.ƦeQϾzNzŊ} Xū}[Qأ#o399xyAP|GY4`u/*7S?1_!8?6e9bT^O9Bi -Ɯ)x<8G1JӰ;%9ng*i(=p:յWolm2Vi f'GǨ6yD+ #8ۭ早gD8z)ɡֆTt;Ot=ۖZ|dOR pZm :6wDxc# fdF4ڎi6pUAhZd!P-rEYfj{Vw.Ip~diC:I4dg y^bVΔE3k=ypDG &<9 G'v`HUr}vB5PW%2?d:3^)$#cveSиSӦ3)3aWMrVH_ЏN|DJ?x n%w"㔰o1S  $j$׬Ip՟Õ!2楅v_H󎣗\&hKY+ Q?wi*Y[].Z P/1WKCmw1*+ pVͳ[^CLY KdgnFJ;=G72\FGLqӫ^[Z>g'}Q$qWhҡʷ,,ZàGLPk)W/:: %w 놷y#{dPPKٞdD/|UvZh4^ݜfF}fy,gꚾ/ -[aTgRJO#v.Y*Ayoj fdv:-i`,r7EF2Y%$ҭt#G >a6YAVQ䙷Lɕ:# zsK [C?!v7Y8[3گNaJlY~Ӓqzom Hw@vG P־SJ:b; \\j݅(>GJajoeOwxi:MRk_ ΏqXbwR2@?AqiN_3Ōrғ3֊l%l0o/|c󯝐A6j+\Y= 0wvY,ԧŲϯCDC_y9aW@yN-R& )3sNQG4P0KH,qxȯ:Mb;fW&ŀ8Xr'uf o8c%&U/>|%1/dF;ߐmaUsA|a+ri"$'qd_az6.ڠ`(bijls py"ٟpť\)|Ob=gu8PO{&j[#Bq 3'Ł8툋Wz^(,l%e$v02p_H-px?6ڵҎ(iqu}ͩq51g&&@J+v0Ao-r媥m=vd,JBuR…Fm)C{ʐvܫ>|کEdQoǦ6텈vbiq=b=A0BzԀh4y}d !xtAba^MtmVV,Eq&&NaeGA _V^fa]iln9ǐ (]J^Hf'duOl 5)b)5 HWE ƥeےOju!:Y鑽%bp ('g/kA YLwgFp8Oy#je-Z6{p2V!f-[@g!mQXajj)c6;=>Xɋt i5#9b_C>4,f#Kw _}bCs o ߐ̞,^آSydJ`S&Ǘ+f,nERT~;͵g2ZڽnX xQcv(1ᅄ(DJ :;\8ݦW Z7IS*#HͲhpEE굵>°Rhޣ2| !M22q^c,B߀DOƺ\kM9v?>gW {Lއ\ųk#ĸ8wv52ע@P"YuZ $6n8p+%Lx 71xp%v':=y|Nu+,mOgyޞ]F% 3fqQ UQ4@S(Ѭ:iQ,$Tz(n3ri78NjN1(;2u;&_/4 4.88,+ |6ٵ߅na$̛( ІxU6"Ar݁Ib4BRǭUVV%! eC3c#Bl ~)0uNdln)%߀ۇh9`sBa;ْvl)}V(Deˏ ߅i8Zඦ `+p1 *|ckoWvjiOhἏZ Zxy )a4v_斦 BBq-Sms/=A%ے4^d3*X@'ȘN' VJe@P/hc!1[F,˅V;W%9udZ1*"ݩ}w u)1Ś. zRt [Wƀ.nZ!>9y ;Isϲ~Y[B+) 4ΣsbLq)Gt?C%ka2v1ZSk6y5= (I࡫CSX~4w 9[b)g6Sohhtjxo5>M KGOpOTQb0S#@Heb \dZ̬pꜱ`,ޣ_M(e WTx p[ O||U@5T\EGC61cCU'4Pd$_ENzV !"]ٳ+sD5m}:fۏ F-v,ga{:t b۾e W Ů<Ec=yLPVyzv5pc;cJ|J Yw׉Cè1OV3(^|icIu+gy'jjS͛g KK^ӫMwV7oǝg%XQ9#X >AeamnTLsWU$&x,PO)W$6He% rȷ|fكE9+TBXd6pi"Z$N?aU>Bί[ ƥ5q7YPkTZ?Ɯ,eK3 Ę ߈¥ʜY͊$eZZ8dq+ w\zߡwƲAo9/=%T.*#0|ar0?Ȗ-}~hB_/z%j±)Y;UlwKG#"5/ot|/HVsNh (ǝ]Q?+ g˓;nkL 1fkEGo$ q-H"Ekx&?ͽxMLGݻm7* ټ/!Gq$sfL)!@Cd#8#s [讛|z!.rH)2$(yVCd q,m6|yHbS:3sY[6!FK6 Zɐ1rz:>y_;0! 935'Q[ ն+~ ٖh[7^k /ռİsLw,YˠAʪUK}V@ouJ\+xpi5eTv/ AщqZ-c+O8Hv(7ʁb>NϮwf7>mJ]&-93J{4;Icg@US\n?o&މ͸3#[R|._ʁW ?`L^*&!$ 15j(UPhC> P46*ŰCꝐ[BM'LDSFew1%GK8?P'7}fSbX\P.k'j*-)qpʠo][oޮuJ`ij| V^Cɰ:Hi6x/W ,ejєWdBv#Dg)02gk2dDjZ2T+,MU_ͫ?յM{ X5 -,C#?U} hKjs(]:lރuV!|x2DӅ3ݢ9r&ю{>G]1y{],$z lί= iIѴ_ݛÎҔBWÞNX !WrG)\lY3 5Y;b!t(!s#Ƴ?yZ\jߣgE{>=(frI ; Wbqp/wl=lux9̡ň@Z]bzM4_Lpv\>aO4HY5\22>(&ZDgT)q?)9wl"Z1e)wdr,Vc4B`3L*ڕEvaZ1xmfιn^$=>gYlk 9u<~$jZcB5 cYjwh25@4$uDLY`19a4t&l9ioTԱ( VM7$V]~ g^cZ'FEIqH4-C\oe_-^KVUi/bC1 ^5AL_źD_9yHm$Ao 5`SaAD`~{ZhdT`2>T>㦳E]2+ *MD{\h`ل2ϋ_r$_\=ht (KWZ߫#[ }JF+`T"• U<^l\_\zOʜhq9gd_n=j K zDEf_ńi'OZAVgXWjČn<â: V3-% 5ݯL(4=nc:;CŞoUPl txwT_QKL=M۟ 2HӻvDl 4'mU5>(JK-=!rm+**] ֋9Ёɓ w_#f۝Խ.mG )gnOir3fq7mZ2-t\UP8ҞVE?8[q-foŇ(rIUؙtGʸb6|6:GBA׈;# _C`GY+$ դ?hmDTZXʪUkݒL8hֺjiX(o+.U_t)ɀ`*Sps&Vs{IrIJgL|VPl\j}nYl!&61[J[*#VV)JY7?D%^AMfވ3GƼe_/+qgQgpWJ_ .Зƛ屳QG hel}K鶬q5Lʲ蕤Wq,yCѯΥQY op}%E8۾Пc}x䬐^M.7ϒZ# &i{Ńd'ī7E Ku!ޑ9jvX!ğ㛬XоTu9|Qh;ou^v[Bdi-#ޠ!zC̀5^  [nS,V*`2ِGsCG m2|xple9tb|zI[B˼6~HQ4^mݴF{dF[U.+nB+cIow$T*:&GYҮEًDy%MNM uK rr#t%x`l3GN~PUt>2%w7KR:\T3!ڴ>~-ZSW8?GNE \KQq8Gn*` v:q쮷 $6M{Obuw;"s}wzXDr Βr B Xڡ> wm}_4o 3?:ykCLZJ>O0%Ud3H$S꜏F[I:醖ad>&T4$ڐ1|k˺Ycӄ+~Qͯ$tڧnO6 …_.F\}eokGo|OmV,tn^b!گ;є% |݌ {ydHScjB!YDɭjJѨlL#'S>]2xRUlB)+?X"`[$q/!~6`VښF_ K:ھò#|EaS"0Xjٟ}ڄXF=(g08kIlejmzpDe&.L(a.Jh媂] z+})>I B1zcLy2ujM~q{x pl֙biSGb)7J*Rb6؊4OCGjfȊivk2顲KvEw&P.e^ۄIDom6og &[icћc>SI,6_rZ/=]}Rњ.2=#ɳ b.B[PdD ƫl4ܲ~. foR:|WeSPߞ *p&{1jC)@*΄$8uUxPPmk|Ӝx¶KR5h8.{O{k ^GFsݬE⤮6ˎ;dև /sFdQ|[ lJ"R|?lf wwv/폎YP 5FN%@yyU_W_+K<1'6J"5?Qqlo <#&'"15tI>uo'I̗ZJxigu2PΖ|*B&2ELeXפq.gq>̽셊QyMGkDʇUCT H߳IٳS^o9>w[۴K9u9pI³(y^I:?قBr4Y ,ٌ/(Խt'q%s98=/KYUn ZjqT-.i5#P_! AX~JFPK OVS>/Y\92bW$`#qUѹy&SL ׾|#=?߬Mkny7|=7Oݐ( enUھ.71m~-a Hce,p 93 '9})nLh|N |QR.L8YVr[65sf \AiBp|GDTe j%'CsI{ӅR9]ĖZA=s%njz{6 B-\(< LħԦ⾦rOei/N!މ'2\/AH3qmMN-$|OvsS㕮((5Ι_Iߑ,̷ ܬcWgwnF Wеgx \kSM hZd KiשdnrߦXMC1咓ʎ:\I,|Y?]* )`d&d(Yi_%(Lh^.~[87.ir J7i ӽu`TwipeqP4ˀOH|ac2 iCKMyb]~1Ý1V(sn_az;5j5$ ٗןPk|L!ϬpL2oW|?S[9t)~~ni7d^tBz쁐SAq?ZaPg *<`XTo't$Ah*=o:a=zB9lT>l+u~}%n"Z oFhW+Gԉ 5"2aUMص殩SJG1TQ=a爢E`C)a p4OvzjYah-}TT3:#;w?z|-fRt@ !/l1΢+N2w }9 ^Btq}eO(<Ԣd=E° _,tW'fTW:yMc9O)wM\b̭4 cK63dCp:%|!`]' /i 4W ɪ@/k&}Q*R_RFDS53V2NUDzYUc~ c&~[3ƃ1 &ÿpL_T..ioOdFgg:j5na.1軳zsΰ?0521z -@>H`h!јp6M-%o tuAE*Qrbvyt!J5B!/R4l{fځR<}z-fث9itڤ. Ւ<,;e/gh=QSf%sTDA\:C;v$0jZh8UOՆ56SڶPHM}񊿶 h\=y0E+n-R@ՠۨۘDCwq<Mg'hn,*VO*1Ľ."0s_Xhnp!$#nCxqp?߫fvb5>Jj3b~L, d_;]JYRIjL=N`hk>fž-åc̯[Rl$͖*H*vCúRKzwn2r^+s/z&#X}ڢG?J7z[ ^)lm*B$ryKWu{ CE2׼`ţHK{oNak}A'3;XxՈ>,"CEI~duy녧w,;_K-7Tx NCpRdL땻]ߡ bku"OqќYoCb \:!)Qp!a砚:&W=(,fqwZPE$έ - v9pT<7x(45;#t1kaܓ)Iwvn>`X?+X]v\B^$cݧ^1=ndtY׵(HxD9n{=y VM0!z 4EL^1`pPƅ[c,v {Qrb@H+C|ďaXgB&!Amf[dyYsw𩪌p5<&JRV'm\<NHrP*6PBS fU@ yKri_+QjKv )"0L]Ʒ/Cln*BUQHFMH5bj՞܉ṌM>0A;Kp$xfұh 8 xƽgdb+dcy1Įl=;|hddc%SQ (MB@>-:s]p2[0+H.N۩B| Y>P{yuƴg?S,k|-% B8BNF "Y$ GΰDh[P08PSm2,e56줞xe J.0ٙU<a ;-)x,,b@kaLGy\x&ے*%4j8y ;CmIп@ E?`sV6Y,h:i. 1ͮ#SݻB9tO9`ρS#DsA"Si 9n:Ym񸩕$3 P~0k!.cL*_,8OY~dnKPAbꚼ0 Od;04ۙ~inh,78Ą0N-]A08wW4q% aY|62πsOOR#J ^6˩NGꄔɥ`OUКaE ,!x7)Pf&A|1b"FZul%ܼأm'~'ӹ7:_bS2O\E-SᬎҺVǬ|"ܳ)/X}@oM)eŎ1F3 j:LEg'3e'yȢu]>干JccaDbHй2Ǎ [oDL< (ә &RP <HC B.*g]Çߑ +][gdU1~{mzBX"7I"V;H-<ȹ  LHw= x5_ЩK!^}b.W? zZ=3{cZ)!.Xtl"~ `,tdRk(I ^^)b=GUmYNEiRR$?'zpE-s݃2^ H75Un2]vP{6a/14L% =QVd2 !{2Dv9]O0+GǨ.e ptt5t,7~̣JBεa/~O$In!-dOHBj/BihYU+hAoIڗ,ɮ9Meg)DE64GN!LbY0x9qJ79uPHx daH#5dXH Ezu|AyZ{q9CY%ǟ |嵿6!Z9zrwÙ):4qb !Uy piҊQ[://o.]"S^<%q7A+FAfۈQ4R~LýB؄_9x=P\~ . Ԝ9#p>^fʸc50:}=Ż(b)`lSuWb_kr5g]Db Z$ܵ6WPgȕY0BRn@+'0h<-*kBldcmHjieHN- N 7apRe@|hׇCfRtuopZ¦9*' ax1W{=ʱ3V^ՁK2ބ2 ̄/? 3 ]$'m䓘 B"J\fU⫐z_ܝX3$b6nh.h' ~=B#w;8i}U%s@BTRX^?/{+W4dEl"/Ӕ:IDQ~hXSf#lz!~S9w /4G]0q(71Q.P0QqsVbC%5P Q]l[JN}NiGg 0.CU$ح - 'd1g]S%grE9WSbG9|i=Cύ KĊNЗ*^*UgS$WP/LHNPN௃+#RTʚ3C63|R aKBO-P b"׉˘MlF`V;W'$U3JuT'+ҩk:mpݶGX"x?-N Y^gaez:`g3vW[=-&!e1 TiC:T |q"Q0dkG*Czbpz[5rZ_J/L:.C><4䞦˹DHƣx }7u&NkđʂZq!`5C:ɩ]Iæf-Ư"2H@2 U:ڗk1T(9Y+N%dL5ts1?^cD#S/:-q\F:m⢎nz(P^/ 'Wp߀=Xn7ԏ;v6YfBqtwgLp'q#EplAY6TjX2 b]vZCbh֘;ZŅmH-GOB};kȐ5v)tV|%q]XR)g ZmF1NZ]d3nyP'<5=? ,}G ыZKw(XVL]byq8{1ZC`=6Rra(̥K%p?Q"+GJ#wB/ܔ}Z5w^bVJ1]QHi=QkLgW`fKMmER؏Ѝ9Jd]Rb#.܏J*./@  >v(K}O׷y,2AtSKyve6m6KOKIp;æZby|exnɜFśbyeEB='|VSW!qnN)Ӥ܆i8jDEX+-eԦ^r.9pr! ؂67}[k}P ;_CJA$ ܞ5`usWo 5BT1f"0{"zLT>p>g$vP{V12m~Iz(`\!NIoYAT+)cZE&`ABFOj8-\wSBa+"̻N5^ͤ2|hOm΂h\9DTO|9>E}%UvĻf -2Ȭ.*]eK'DvB~X!MBpsphJgإyTLKdѼ:9l3>'K3\`f쐊jA!ѷ:=Gk|ra?1"V㚷Nݐ{%&!Ӌ9৕"p-{2й*=UJH*)vp agw\,|!,8`h,tD7JF2KJ]>2JTB/,7ݴQ{!L,e;!EK?jê"9!0 tAZel #HQ ZNq/,W_W( ISV_n*Ac-p^ BJ68qj%o9lJ}OD ObFe%!{g:|$h}:& [кiM;M@'" 90_}t :zY8tˆ[gwۿ" qg)BEPbV'g$k~Wu7zG':TkI.wdP25AˑpIӟ K;6L]V6nךUa6κv)d nFJR-KTYAh D)NAlx`yv-qOBi&I^n$7B"IX<",Jz5택2k? zv + A=(YNKFڵ dE-BrOa{#S[Us!O4P#͸uHA! Pmǟ3%62mUsT f-/*] wabEAz,ÉQ~Gex=khRE5X;1x t\:>fv&_Yu]*2Z^JTU|&:N?^E6 WfKa89[qj*k>RL.%eGBZ>+"| Tj<586k%J4UxQ] Xg{ m{? s;~n"f9B,*pp( 5'_L [JmoJ!]fդmM@ƇRDv4R\]~-Y;16Z;4IM|`~&&XjT(%$|#oFe} ɇRyvmA{'ά㯜/vE |2Dd@ G7O0rihR$*i'ߧNv~?&HpJƮ(7'ߴ_2R)wFX*Se-r )i rD"o]%_ Otex@s8|K,=jxqX|Ay̯61Y<;ZDIO_m !xU|Fw9 ՏҦMt鲦ۂVӭnvߚ<95՗DY.4]j> aXhF-PNgX鬾AۊY vkGcg:v>}H<.O"W5K^|vW3[hM6>Iu=H3SNTt"0TtT%j9^E3G]kV l{EHjV{tUzU%nMb: A·N29eܹ\x9tY:yFLXh?~_3ܷc͟9gj#0&k}v5р1c`N Xt0К>Z0? #cgg {9I1H87 &,YpP"Su;[‚:7@LSHנ:FNTk?"G^QD4Gë?E󝩥2ͯ>L!eMFXߢ\WNXCkk{{).AU#y0ɯد<(R&GM&2$B3ļDrSl-A7N x8YZ8N^z#sg#{bt8ޠcAt r±Y+&j+?lC;G} mgV5TJ{l.a4|ʲ`6ɔ{b2BbTdMbZL1jV!}&[/!.j}6kUUHn#WXKn {iI>(B1 @uhH厎 +BH[XW%j6p-@`vvNoI]t1k*ž;־=.n jvA\e)!-5;'LRi#9jwQ%}O#K7SbCЖݨL^F#4p*#|6<|+B]i{9N{YW-Y5C!ufQ(S'Ke,1S7. +dBlHAi ̬~lАq\Fq 7 ƛ~%c Z|DpvA釱eX/3~&MnYqq[#V\rhIR&+AW'NYJ(stp:#)rm_{aR ] `z; QGZ)'EfѲHL0.dvnZxCIv+Ũ(/g`?øva"y ԃ{eӖ7kQv~-頬5% m߬h?D$$}o:H|O*m\%8sؽJ8Li~e3o rvn1C3uZ{C;!uYXb پ;%F߱- TsA5Vl+GbSI7󅛪']@ߩ}-eY(pOu.b=E6ViTQgL[ rnqAx2g`r~; JC)^raB$ҞL?qY\@+|OQz0~[{g\lcʒ077D$f _n8 ^j%;nEm՜[<{ľXBaA^O|̓^7_i &g4r,&d5JmC!*|cjjL CC-"d e , yA`U=t]!.3H%ЕL@|K%\Z8+תT3@=w']@0 ˝ AkԤa9ZЬ.Қ-bmf}7c@j ,4({n?u"_y*_B؉E?`_f% PǏִS >\œ5: A8{ȓăU 21kH\ C kQ랓~,+j{Oz~g}je2;ǻzi)ZʛHPv `~s4`5~]E9rz~gbϰ"7 _:+~_6v ^bx)E˖ MQ&A$惵PM^$<|&o#iE$8hQ{S |NF]ϰrg` |׫ HA8 ۖfcw/fJ)cK8CApUX3@E&@fV7rOs1{ɚ"Vu:75S4-(7ol}$I6dns.CeMg(`-ӔrڼO}HyJzwE|&MǤpTEGOA(ъ9$ UE&71 Vބ ߂ǒC<^-kV$l@fOFYsuxZj/ )q aG:(yK{ݘ_"oA5N91>٧(HlPuK<[I9S_Pzbn^תJ (nςNkW(M=-{@\JlYT`soNFҾ9j0hrW)VP;~Nf_Ł}dU㒛;!˱>W1U؉W>ڎ3$ұWQE' ߢRLͣMOxx c&kobyY;CtYY6LOIc#Pn^Fg 8Tu͊_XC.﫨7ɋ.l覲hCR- L)諒eHh^auX,ϧvOoY !$,ƳH25`ЇBOά';W۠xR Q{$CJٿQ~Nw˒[HzwyT2 O#I%ͣlJp"̢y#|Kʧ?ǤO;tY⍈aOvm%EsU*Y,4˝tTYhY]CZE]CGf=dPOdWV~Y|72%;x26%/Ըg"<+A 1/hf3 o}0@ev\rs! )"-,򪠜`36hc;uHSF8aUbdz`@ `Yq[)65J?P\._L|^N~Շ1֧Sq{l[g2#F-&Fd5oc-Oٻ^Y;|gv=vl̀Hb 5,q{X)0dqW/)S6S=Usܡ[4lFbb뇴q֭?ŶBE/OeĖ:ZcF6~&k~r樵m4 OR4yHk3|& E_lY\8IT݆!*٭q1 vkM)l}W0>0.;XjN}}3ƨn42+:#n9/qHO ;ߠ}4{%R_Jp$Jͭ=#$z ꓌O@OVw.H={~ؑ{'U~5|6&qgh-FYaDQEHKuതZEC^a1tp|)P9JZ "޸ֱ%\WpǜaToMrN(r!<,ObKzQD$ |`cGG7ZD5M%^o\Q^hU>J,hb~PtS9U25$Bmݕ`@)(WH=F+@м{zpfk0J?|MSP]، Ԙ@\ z'Jr//̍~ Kā^~3QI?,@c*)Qf#6 J ٵqD|"(W:н+B4!lH+q/(ujCP]f"#/n?#m6S@ϗ`1eR@кa bI)=QHt^B[/Q5ɓܽQ`3:2ER;ۓ }"L7`멓%FLuX*+J_999Z*+8"n,h8X7C;gI<=T5D>lC΢isTzD,xGtWAs `Ê8=ٱLAm'p QMR߉ g/[@PӛLwjC]^# 3N}Hث1rf Рc @n_4%V(+ ] °FD3Y4GecIۮ뚝5AnEBU. 8]C;9#zl*c=ۓ r]Tr!AT9^`{1!?lqG](b쎴9E-.Co2{3s[2f!2+-x/(lE^& Aa$TZ6>p|Oo*چ`~uD%ș+aD=b]XLѾ\ KJz{HY *))}s5;*ﻌr T;;O= cM:&H~ % ui'6d=N\k4P9_RRf1sL[hIU lxi _! lv I$ܸ˜Ѫ3_RC0oyVNAkqpH`ﰝ0i'TY@bGKk&/왜iJK j9CmRE#dT,u l8ܲUa0\ŘW'GB 좝h-2a@V#XJWcR)Ld;=5 ~MZNwoY4*Y٦Gw@?"uPQqzC`d:YE`u&ojXښ_Fw ӷV6a9`%Lr}M .H@t3f!K 6bHnjne(1=]nDމ^hf0nH-62oVu/n-t_\o=QuvjZ'\7Vʔjnܰz85f݁jOXL_h{)%%.%Vi}٦igWE*A%َSDqh֡VP]V*sʬ# xAMzd4s7(ХRGigwDpZp?ō9Pnh*/>" =y%ғiT)=JT K댝54Wmy\o٤ Bc@|WP״7HE22EaEԣ"d#1(z<0 lEXB ,3G{9>emTo*avE4hf؎5L#8|zt%=5G\ 47п,.|їsSۋ>x}Kw1,E bBZ$lNlڶ G/Ylzf:rKt.8O{0=w)qQ$)D놬:[\e2@2dOSu/m "s*b_#m5$$\ VHK`~fSpDD[2P_ J)~}mQYlK+de + ᬫZI?MCQԾkZ i*?lInIYB~B|&T3?[4HsPr9uDNZ8aP,5x&2Lq3GC\, gj/P#)XH n@ΪG8D(w[|lmpL j0 "e(D5sw̷oA ''ݣ7YJ(߹1{,C2Io~NBت'e szEyhssEb'sR2&iOv0D[2FTѶey?u|>\3g* Sj7qse/uO9*/%?$a1Ǯ0)8dtI[6_MhtigL,C07uD5H,StWJjK-Z`ԝEߞl~Ԙt;xC2VVKK!*Ö}]x@SecCkp{]hV~R9̈,`K!%0^ƴ!6iu H?ӶˆDq|;AoOR|}55lMO4fLCۘ!0h;jntZlē 7}YR^ g6r|?Ȯ֧h?Jx:][ٖB|KTsjPu$A!84Z܋O xɍ:Y̲ sXxu)DTxm%+`v5stt^'N"(@JGi-m_W`m?iC/}85n$Ep†!t(V]` $3"t<-|2003Qs.'hh3N)w u 8AqLYZ\ ]&1,;:bɳ8r$8/Z5=y݂km"$ϛCܨH̾\pr(R.#~)ϓ0ŋx.M=JM vFb,ތ:#:p\9Y̓}8X|FsS^FQ$p*sޝU@ĥՓm5 S-&4~T'LiĘ>ħ2K!IBvc@y3V̐XvDANP6|A规w𯏚GE5/Eh P{HFPX;cTgsE߂L'` W\Qz@J o_gUf.WZ.60SZ{܏񒎻mip.) [ ,W3s%3b y: ewBJ ;(eӾD ZISrdߘ`61,y;\7m< (968S3*X@P@v>Aʁ ALi\_*-6}Lk S'RrTG-M vI&ak _|Ћhe$o[ĠA>薿l𘪛lV*8wp5R>%ތ GackIvEB~͹u~0(?AvHTrR]GqUF+|]v.M9#o,S(\b.\QFֲ~ɪ:w-G(O]D,1 ~nEO*M/E։*M&4{YE7ld,NsꮳxC2gSExu[I Fi)8{nԗ)Q/S9#(G1T75&sl @ k:̩lQi/fIwjLOj!$9yEgG$@/{]>`BTetivK9BQ4e^4AvW\t" &EZR=>պ~~JE򕣝Qvh?"X?QHte7{DWXvq^kէWNӓҬUΟ_]z5Ќ҃bU'+pC]Wn/ ۃ0Vu6OZ(v1 /kJ)=nh\2ڑih hB_O v0Vl:!]}BW^re؃=~]|N`mC~_<\'|)=3@B,ci!՟,%}6LB࠷C4Tη.ž0X۟8Pms%Aunp:?PX -*{x96IMn0|{pk)-%NH&kNB翥|=9t_R7qr}_'X]H+Iѣ{vȮ9T!v H$i4 ;ADvfSVjXI(`rӹM~J~q!e"./TnIK1(W+x#Z'W?ɶ~ h._,]—ztM!l@eKX oJlӂ.O (u ZI੻ݳ³Z+ApD0=Ai9_B෠dDIq$Xk3zAN.{ 77BŻReo ji)|0̩Ub}w5=_f.MG٧8o@—´ Ј;rYݕH쇄jy<U:$aָ^/Ee|n΅RQjqԍ| ܭI2H&],Iq;Kxd$rW=O _UVHC+Fy"Sq'(pkqD:Qm5vACHC7! U, 7PP@As^?MVܙvZ`4:?V|Xͨ+GA!,lRs$ PvLDݜЎQéVGŒ] f mbzǛ+?0~x\͎/X);4(l\bYt?St%=aPmK֑Uc f::U'o-W Zz07|Qjbmhjw0EQPC'45}{E)Bdz%.~;~ I ] }O/=\,⨃2R.u!e[>j&X`Tl)HJUC—N½H' y1>б*)֭jO?5S@(%"8gawF*p*)*+渥%u4дk1%wʣxAA_Ll- oQ*-f`A uct“yǔ&4)\rj~ bMh2bcq?>Zޮ볚nשּׂ n^Eeg_ udx~zyk"4gE `eֱ9.Ŕ7 v-5MѯYv9|T}x;uJC$րGdW6ƻ{Ζ7×mdNG ֛yꄇEзmƆήA/TtK7$Y>n$ިmH=$T@m+a< 06:6y rw$+PӢ 0w3 DI;w ޘX,bn_:+T7\!fv`e&fKK"mVɲO$zX7j6Z]ȃHW66{t>DR^U>h z+#r;fr*_ڋ5Z$bS z1;& AOК;^C*?|; hQzc brX86*7r3('. & BU.W{Eo,;(ZA0Ԙ,7{囗OvJz" LS ,F҅fhH(&OW>~ZwH+9<;x.̩lM53lr,_x2!XM V=ZD \_f+N L„`3jH[B<қ^)›_gN8ҘuaBHW WF"W{'c?5(0ApzjaR XΖVRlP0[WV2ƅEۡ+_sĥ42v09:iXwɮnP;RyqDQsѧã(,v3b $Vuyغ0;"{jk2cu;]M(.kp_(9-v,An1eוO[bH9 \/VRz-2j wƜ Y:ᇝ89dm;rΖ-Ar8I 5NSNƓj,Jd"Gd qfPM?3K$uxט)(K(jSps?fޙ2KTTryFRs#̨65a`.6rs"ch:KR54sx MŞT N_*%Ib m LPjq]O"@ګj`e&ܠNk6b<_^Z(+#),l ȳ' *ǂ5 {3CJ@O_%r[Wkb-@e./%7 pr|YEG`(Gp2&ϗXCL%]v=SpJX jga~/#j[- _N*zSGmK~j؈>%1?vtL7#^zwK[?hAtuI]>uzpCokuNB= ˩4'-{ PqAn &UUu0kYg1LY7,TAb:U&eQ녮S*K  + 5 ϭ.;} D3ߙËT2S7jEm 8F7p[/^E|-6:R+8SG]TCn@f,BIL'kB輩z㕡+6U*8))%3:'(if2^fq2ÛTB8s5.պP6E2:zOlAE f_푡yptr_8l@I($$ħb7 aB6ynr#>!"jL*q~;kF4m#6N淂5n"Bĝ'{kJUAR{6 o+89ŋ'@p aNT:0us|R)pE-S C0~M6V'cq/>B 4}̞d(leh)mrɳ^>Uf-i~rAuŬTSS`a)mlQD~+;CmD䏖p1N:[ `{ qEr|jQli'=|5kp,'xX ~F%T`s7J Ϲ_#@2G! Dil=Oh+SEw'A,E KJX>FvLF4 eVN3sAmSs#q]b͗,!GL4&G@t-@,ze@F7b\%]8M%-orAҼ].zJS,4At[rlRwRLHXr2s1z{=1lixjD's(QoVbDϔjRDiX #33s}"C(.M,cŤܞ~wnjjGm'UR]Žݑej l]UZ4džK<o+(/=vNypzl,_s]6+Њ(%b{`Li9]l+#>JJET`{R H㔧 jEa :VlC IM\{p~_֤.վadۦZ]~5lGݲ.2ivo[S lzDN}H.P{9=BJ <2뱿G c/Ç#!>%k3o^ջ˴nn|nY$wP{XLTẺfۣ?m<50Z<|-Xy(>hQe7IzӖf\QW Nq9.a8.A%hnNmƊ31[B H =]}tY𢇜NB ̭ڴB+Ýk8y}v׾b!|XFHc{MU$ s|vؖh?U3L@ kǝ)ߖڼ,̍{Lh?Ҝ:"3LZȉ}!0[^㷥6A*baƫ*h3XnĨ2ʑ:uشSjz2SјÂ{+RP)"]? M؛_7L-Y*|Y܏e^3i:zn)1wB^'O;9EqOp=صk i%d1He1*Iɘ߇zG.p\^P3/]ՉDfUcQ0^d63]U y2zJi->WtϝsCJW\i[3R$$W9N2X a03#@ QMM61Uh ;zCX߈i3ӂK5Kr+d~i+2OtiR6'=Zl(_ik鷙mv>c[2Ŋܖy5H/ B\ Ŕf32x-@g 8\敡hr/Ep63cyrb1w$ Z-lnn" M> # K&^jְgU]Tgf '\1jq!ٰ~'kq: ufѩ!Lj]buUZdGۺZWGڧ|O&Qtda\IDgfEafVЕQWFQFWU!cأYSyM:І7ibǀG mI`tX"?;si}aO=ABKwĀAwY q{mVW>CI٠.FQկT^\/ܽ`B? ߯b /]Mc][4₻'G-wwZ/mk-dmR$A8_Ƶg r~!̭"r οwmL9c=^Jk+_>yu\B-XeP5CMAw`Y>{g'|U%Ze_.._b0=Bp À9͞{,%R"pˍ o!862;(Y^Mg 9Hm@d"ڵYRghsP84ϏP ~i̟PrȺR$| O:z烓T]`)*|X,bН/d,R.~WReBL[Qg/89ԓ69R`A,~zc;F TjT8M?,?}`NU]ٺSvӂi,hpXIcA-N;"LOf}/NDgݚ~8 k60xD2@UƆ'W>f+2D_ x?thH {)K\ 0MHLٜ/| E5 h "o]/ b}ӆS1BYVQuWhNF*Yշt!˩m},7~wq.LPtq(}͒dҪ/ѐ뻭~vKd_ꝂcM79ZhAcGxMu|Ѻ4q-8<Ѵ*uwUx:-A*tD4s[{, ] .$:zv؄[om% GTS"!hzbM8Ri~~J-۵pF"ݵ&×LC$d\p':rT3v&p(Έ>īU 1-UBZҿC`viJq#m}Fo ATj>ˑ)/=(!Uf+J[e.8VG_4Z1o=,>\Ɔ1)jPU ŊLI5]5D8wןH+ر)kMR$dyv.zd 98c4.N+J܅/5=Epw PW`&N6]JMgؚM^ Quf|@ڲQ3r0Dr'vx-2+ZmfR|;Eōae$PJ$Wϲ; ~kDkr$c/AF!9d20*OɔĪª84L)'b/)ʓ~ | 2v+OZ*μ\$. [Ƥz 2#6G -i;C1NrFrP,|9 8W)YO1g2d-K)S~4P#9fmsX%&uL} Ϣ~@T_P1BE o_ԓ:܆Xf;P: R<ć*pB v]m(s8GQZf 4y5`(AwQ^vIpښ v_oȏwD[ن<9/LNґZ8KG k]!3h-ؚ tŎ%C\z"بtU޼!m>H,aye8$[Gש܄ -2Rxj)USVjC+9DNv6tlpzS%ǜwK ~ٗmpvrX $;Q0#6Y4708Y CkM+Jf 4xg~ql #3_t嬨u Ȑ`/ZB!4Wu m iS?oR_zGxBVQ,7.>\R>('uq0VJ!IܛPnAe|2 F zEf4Tyr4Bh?ֺ bN>ۯ])L! FOaz 5MBF(g7&?njWUr mFđlO+3G!zBBoQnykH芺E8[SniY Ko3o0o <]WnC.t]~{?0cD~AHw& VOz!lwAu=Ĩ~r\3ߜX~;v_͙JK NM+_ `q#㚰ԙ_i?cC+`Z6MrP2%{O"kݦ\nP93+-]tYI|!&|ֺ-uOבGgQÍ<;p-KqIu/(gʘ8Vۜ7ybp'z|z6ouaD($Uη"n Q)*^VA|SGO!tgYE [ bGP$9͂WykcWT%q N(l2_{> ķ_ νv|9ym4l;-Z]bB"r˨lwnen]6FkUcG:@ LW^ayt߄ r+lI#}p .`MA$TJrtOLi XC_PWڲœOz&&$ҋnt^{]g{H:di-mPf.C䫎>#euYXF\'Gg.F7\74,A&P:b \qhCR̓8g0=r#B^-w/|1G#Cy9~o~b;eO螁0MR(Vr@^WDt8)U>dJ^vFPh-{Yb-qO(F݉E 7*Z&ìjAM9VpC˘Y/kA)9_/e0\BF*KvCЩ^qw |Ȳ1ecJ+z["Z98)SwVTOgTPҦ<ض !0 ^7ۜz7G/;D$lqa/kq 7U9 I/&0_K}2?2CW*O§J#rX &2c;2>\ۍKъ^2 4r\~]. :o j])m}g5XkE?9嫉mIP9 e65 jl:h(8L$T4a'>! -V$a*B 2KH,{9Cr\6q2jҘdݦ$莦Dx@o5՟h'n xϙWF`PKo7cMMb{SI9!"MAu0sToo 0) O(Qt/8S4Z4PݗMk WPVQnV'ۉ$G3r;?-0iPlaqˍdfC4w +,\'pO@bWR&+vz@ :'1x7+s_9',1 GQr&s!%"3:Ba䇧P@CB/m1:kݘ>yп͍ F~fg?3h2yujR*xm ɲLZtS#&gLkhPKNK-Yu|[kv.**VP: {Y:'mzXα/[~hYB $ZGTᮇaµޔa *0NW bWu-uM2zEA lˉz*RZz "sh(SX~^ RchjS״8u;<)h c)#Ɖ#e +~F𵛿@-}EEWABԁJĠ35; ߟs@kנ&w+Ƿ!P5[&%-h/Ԕd|>W-%LXb@vl+V`@FLA M=Zzx(pjd`eIi8vu;MIOۏ4LTM|Pq w?gbӀ#e.o؁TY5YDSfC*S=;[عGqF 2㌕&&!<])U Ɠ-ByAbxC:vq4K.(z2jƊY.u>lIMJͷ)Ghw)BzLP|[l0?Pc͆%xF3wSMho!*VHIӈxBqr}moz2"JawCb{>ը= zyoZ]h% KT.C:928lGTD?ӕ+=d?Wƞ"ٯz9Ӝ!J^{U/)>w/YԑeőǥKqUWpE4<R'CeA_PRe?JVB,yMf/}ͣ/> <;> ='OciIzjvg#E֙Nwn R'AX/?}g5 \N`Sxx)Îx6b)hV,Wˇ% AcdXT3ebzAa\CxmoaIffoG%c1U@w@R'H7):+an_7G^L2=TęC+/o@NSTeTt JXOs99~| y#ꙹ X3B-6e*Gq*5/TK='_'$Eë"eBl{)coUSN.ۗ=ڌ~lgrS[«Zص'g9{MI Za/H;pl=3/I>RTCDʘҞσ-c(G)PZ\im'~y w?&98t۹>SʄcSukMKRϠ (q0^CGי__{"]lX{d=e^( G5VVVli^ߪr<'ZApQk$}hÇe2سB158F4YԵ)KlE:^ef3 _hǙ5MKzS1$g'Xh ju^TH7y?C]/b 4_wtvJQFy83bu$1D(L 6){Q"s*YbnWCړ k~ &Qq]. U^IٳOEY``I璙ώq{)ӌY¢jGfu}ڝ8敽ʵ! wXJ4usT?7Xkl%Ld8#i0axގ#Ѱ`=51|hJ6%BFvLG[Jᙓ61 H HqSD;POb:DM>\I ,/Q|a L>{cvZů[*:!4nwq":bAR+C:Ig_Rʄ:l$4\y|9o#sט)h2RVX x^.BߜCc8h0߶"[Ԝq8 Xwl07î Lk:)(wk`>_EikFcN7hw@{ˁ[.MHgfi*#]zC\ԦhؙVnE\55L1y1o/>KizR_{BW*Xr)Q5IdyVFrJVl~c ; [p)E$}IA`:,I]KAI._wn`NER2Ԭ^LCo|vN" 6/-U.O,铙U*~m+EBVҎj|Kl zl/i0H=mƓ5^wU xzK<`Ǧ>I _m8h$c t|^.VL ĄVW\Rp-$Ff=)Ut,oLB@U^ᩦM$B"LXMB^y΅Ni ZIFBՕU$Jhw}uZ@$ZY4Ĵ@8L$$|UF!BKdglU֜ c r[ 1 6 p+ȝh,^?mC+U"QZ@&b'9!p $b `.Ok wC6sIC \>LoᦾC':)R)<„"Q2CS=n7߻njH9~$|Yd@b!(**v/6@Z9YQU 0ҷy5h2tKgβѤ P`"^SotSX~}vYwNA, fMuBeS6(5Q N, Ņm[5԰(bҎi^"gCVI6@xSQ͢*Me2Y]QqRF tKt< % F'ɫ)(Deyv!>]V W|Jtg)LF q;\+g< |wA5u0tbAeV0b,n֣F80?gݲ{SҧQؘ\ޘ<rSDJ!l<͊/cAБ${ V'J%r+9%J#܎_9h!KZ zHS\9M?6ȎGaS0Rk"\K;_ f?v1)C&tFg&sLS- uJga[j^TP'J4Kym-u$bҼyŧ@I*>C.2Ioc|@5Py`䒃~/=zڕ{Mϯ ,/QbL~ ~vvV(kڐ/Iw.ueTSݎ(|>-r-hV(zLP%/ݵd" ?v6n* @tCzu'qB/bm[ju {]S#~UcD"y͙ onf:{W胟fːio~@6]ƾ~f4,"t@NHm_K 4?$Di>œyxْE15;{2ޘ=bY.7`NY=>2/0 eݩNӑx"yHP;вuʞg O J0%vQDMF曭q35$rh,oAzY 1XiukS0&Wys4 9*39YN"ڸ^tF1O+H焪<59sqc~놗 L]+Q/~_oTy&.2mUY\'!u'4ˤ`^*W_w} 5O%pZ(xK#| mxC2V '!ɸU\ǀ? ϲlKJsD,,JmhՒC?rddSRؐ.]Du R {_onp$(TKPmx i%Y6.{8Bolj dA䢅_/ rHЃA؈e\FmnX{i0|՚\C hyns6'|ɶgGD%._TWfA@XWЯP6RAk@b/|`"$x#<𱡙pdoUTŭ~lF4pb>nXǤ]LwYK&g#@ާ!ˆ!0+7u:zNk$U&V)jdZ CO=v1uC/O& )¼7I+}ҋ/y20pA`*:(R$v:Gp~'[u4FXApn6{Rw(:ymʣ7a2}=]Co}eL0[4PiУOE:9x$:xw=_؂ rW[ZeΥ|9cr0gʸC›Gt\7Ia0&+}4P= 4BɈ~WsPѸ5A/ZF{v8I>a7/@CƯ}9S쩽D߼ 9ɓIvt)vI+/.A:6<nѵaFU;0WxA[Gd*9ωg6iBkn4Bհ\$R-eLEp!7/j掴J٪ۺTYً&J"[&zia =O[/Yd }3Fz><;l޺Bd+z՟d(|x4f#H6#%`Ћ"ȋ;8^J1v̢*}v ;PiP_7"W&{\2ۣh$ՇLrϻQQ.LF4nDgycC{sNǡ/Nc܄%p>ڄw2dPyU[6[ *e™F̽94]6Ź@M:p>Ƥ7Y88}Z%fp3AS6Zfd uUy]=c(s5ecpLC6-"D_$BЈ85`{V O$'X vΜe/e6 !<<LtPoQ]ҷmm*Hsb+FX3 w1~<≦Ci^"h6U yYw[LNHlrSBbJ;8b|(KwST|U1ܿ~f~+KؽvanՍ@XV蔢 @1nJ\s>ロU@J+v.ER8 V*Y삱=(B3J HmV#p@cɠk7L!]:&vtbc`Nl?`dVBn=u A҈ͮ |DFwPB!?w* ͕SH9B0Z=cI 7oYȐ&7zb(I!+TfTPBX "Ktp]/9;*;?᜷XC"8=̠9)pt8l7@ Sg@J/V% KOJr7r+b8jgQ;mGKN:M}y5Љ"th\"X0Ƃ8 S%9YEh{ؑ > < 28<~~J5U뻩-bpe5zT9OU[` dX[)O'WKRf e7JG0i_79nՖA0"]uv-yN W]݃$(rv2׵DA| /H+*FT,}m7q 8?_m Z,%sXƾ-7^uA8^xܠڟK U ;%aD$Ox]碱\@"3JJpE1`ٌ5rj3M[m`߮#@Za ;C?uf`&?2[1U=?TBSPF4!u<0ԒqG+Aϖ1?V7L$\A*>v@tf$АY &HUnin^}b@dѢXC(3@t3^[\pVT+CχjiiZ슙qz݅ٯ5Kd  0o|DPk79ϒTB8mِSLXw/QV88'%È€ȍTT l=EQ,mKh[} ۥ \jUm!Vd'T #|JchOB\"}gxB 3mh\]ҍi4#9o<%x&-?x셾&Z l4ePmހ(U߬5{ɓDDW[j4Vj*(ɏ0`=.[Ю{b3rꕤ"[M'SZ;.o!Ä :SDM$K&s /ƨIW}7%?>Agx\*Vgن TUҾ%xYh_>JC.oל;cCPPqj+bn#?m% ʃ*=b5 #TRe*2}nA0qp h4I_Y&A+cE 3Hf!eYB.Ł?*]49Ԯ]]hcm>)bMJ8Pr v4Npp}3 rt/vvеE< @><^ksg˔c >Q]5qlS*\%+{Jke)yk+9%.]ze%%_= )clܗ_+l.66X.Kdl|=2`AOΣm]}S/kLP?YtPgVU򑇾QV:;ކ)b`emTxu=.;|d8K5 =*=x4<z_ph|1MuSQ'ѕ8bI|cRqd|f i Lprbpձ|%-NZg8& -~fK&r,pȷVpgZQH0$C- dⳊg;] ;l0 ,mkb&ܰzEh")=awVk'ގ%1MMKV(.|{*(G;TemDT 0gׇ?4d|rHml'qNnZ?T7=-`>4IS:o_r p 4'dܛ"B/@@2ѻ,HX1B cqF-:`"!=lo jvQ3BZTOg+[ʺf}Փ5ʈBl9pߧ #Hb^|rwdWRS)lT{ㇶlئs'eYӎ `rۺy͖g(4IJNxqNa+hA3DZI-wG*<6"܇[؞ن۳^[ Ł ] Ģ|,hvMxnjV{YrGfsc"C%)1/twiGtHn*uHӷ,jQBmK腲/p"y9Ga(uuXQH71驺6JG\ }3;H25?8YL,Z&Sw& [',g@"h`bB_-Ph=Ii}(EY]:0c)s'ˮQ٠n"T:ns%[LaCR(K]QXF[:(b #>03дƲe_68[T/.^M)sG 0h7B`v42r3djJ3LךƘWC0?vxKuGCjAXMNg%d,*^5)+t+3[#ۀ=!.vɷ_Sh+=!T20*K&Ow5t\+R\VB306'wrQt!_4Blnjt&|5Tz/YSF6m^D 1 /@i apߺHAQs&GZ5-R7ĨC ۥ_% o(s2t8!wY^\\Fh Lc= U\aJ+ݲ{5Q!<Ax҉3?Op*i3!gSLemWa]TGx5%Fȓ;Bxcc{5U 5xҥʏ7,SEt^4"[ &nu 3o6lLqT \T+gt$6 d-|Skih^!r}O]|HOW(B/6a10r^)dw$ o;t2koa/VY{*A|iūE ՝ H>hnfguT EAյж7~/ z3ئ>f F^5Ж& ˕xS&5:$i_zRk=iSƙNewkz V|pAg,`'1oR1$^] !(C@>-ķ}Qj&&&YE=XfUE Y QqCGtZ.PRsƏxT' b瞕ӿ.rth8: ՕXV}ky_d ] /*,%p1Q"8.5))SsKWC2ȱXK)`ר7?2mskҢ6RL*pjG^?Q,E & xGj>I#\iGɽE&ܸ>By Tu^9xh $Xl(' OT,_MׯΒ,2*eb3!* 5Y-9/Kg[q*\sp{,+Pg2&4!{uh0ۃpz~7MhzTWlppAFD }Xײ^k?u3Fz=c!xkПީ\:pJ|]эdFy). f%W|]gݟ#̴w{wwCůa63j~lr [*Pzpc e67򍏊~`O'2);mțsevNI [:Mm<]IE2? K!Ɗ&|@,Lp6j"\!}*NJcjݮF2 QhΤMb%03iR>q h&`RE~E)~:ޘ%; #P'!S ;ث0] Gح''n+ N'T9;[eDaK;d\?߄#:_`BDFu J?ኵ*3\W6 6COݕTBƥҊpetc`9#/NMACl MHK,:JJ{3qORjC-g{{dCOD7tgs ]P9Ҩ'%T6.8#<4G|s)v2[ږ p,] G8C^o.+w)hn^gx= /=Y2,G 6^N'jozmpI4\$Ht!iڲ✶C\'1! ~ԙOyE >E?43+h,/|7uIbY8Qy婊zW2K,F.|_1_}>95ޡB%3)QG~F=,RU1IkiiƯ + U2YA>_"iz:ٔbZezbwEEw5*iu5e@+0@@*=Y/}b۠˱X%1&)q?k?MOn3$#TL{J^OyY1mF=W1ۆ 4!Lg"1wЀ[qu{.Ђ}_6su#3ʰW\*ǔF_bW Jr+? Z/x"WC  $ &##!B0=RHrw?Wy mw_̗wzmXô;[~Ҍ&}lnWۗ+2tr2Y5>zB2+LHy>5TJ -R|8&p,hԓr]Nok}%\A;a"`*|GM{S5ۺho=jV`She#W*87[e:D7ƻ#E8Kj8Պ ?c ŋб5IRG]EQ =`CZOw{Yv_U>M qjJK%2)]܆e,% UžQftjcKRb#_|Otl΁MΥ@[C!9˜ Ku09n86jX%'|M4F~/jN5niyt<Ȧݏh_AH:u¸p3gr5E1S*3uQ>d 67h O=A}΃DݳMZ᯺r%1/-WC} Y \.j1],("֞t1EO{`pTv32|!} C5}?{y䨺2/ϣ.;+g'NRRuz5k{?д]y (bAA:z [s5|!fWO_i6;,d3C~Z<|d_t (+Hƽ)L k'{9Nmj%* b]Ǝ2-&՜=)<"t@'INf+^F ccwVMuׇ׿DO9]]0.F.e5zXˀdm-l.ǐA_Hb_"Wf8ޓ amO \]\Y薝g6t,oF2B")~+R .q\N 0usU yIާif6wYh4_ ֻ>u5Wfvװݟ#Ӎ#I:&A֬a-K`LݤVh(y[øīF1G=7ά"]o$A]0lTxZ^+:pѧ+9H^he ;W g)N/w> wU5)-w3#[iH1,/NS+ G5";#8 z'SH^|gE} bUj:v#vIލ=Q#K /R3#XF#,_ 㫅X{QͯSֆ`h#`\k/Oh v܋nY~dd6Hn &P(֕8~@Qs+KttKDd^!ASQRDVJ wko,~š!~Txf;I0Xm@GC/`z;ٜsݓNB>63/œ(C&l6 BCqy8ߨUz&8\e=RA@Ǐn9_̖˥{'xT7sc*c tp1ܪYUjJ?ŭI_;߆_LO\i`U*3 ya1b _Znq.mu >q.ΖM@쁥X r|( cY k2 Y)RuBZx6~6tRۇ83C6[ݷR-?pjsZ|RG"l+EevO]|R#ݵL7)UŏCI4J3J ZB!_CgT&9葞|Inѣfx.5FqM$U^w1~۽*<u`=;GYa/<莭F;8퓤 :قՁg@&eb<7j&T7rL>Do%$H6\e6LסO>` F Fib^:$)}еgm4bTk^E<'g7'w: ΍3tV T`nQ1@J UPЖ/?k:R \ ?y-H8O؅tjS緝Y !B]l(XBGA8%J|o INH\cb_E  6QՓ /./yvEd0(b)_ƶ]2 9dM̢:-hDJ6vw.ѫӖ]m,oRIMlzR&EML(y0bEQ0_,DMikd:~߆X{y* \bfl;x+k0@cm :o,|Ř*lÞj: V׬ZIhNĹ8mig(ct\306 5] _|M"~ؼYMT<`펎UPrK;ic:^GnP+*3X?ŜjsnFuhz:4PCC8m(J @hżle;#i߷s5tgbr\{.ܫRR”ap4 ~-x7ڹ촤uOO޹N f) qߺY?5+7Z$nqp , 3bXI%Q<$&(-jChnOuD~/iS 8E(ţwt*\iWk1"\D`> jf~)ֺ|vЖ#F<@.{cS|<0m =WPB@xչeV7B9 PdXL7F6c\Ǽe;+U\LWq5kIpE0 ]gj!|XBə3S*Րڦ**x2G!7pμE^"5@={#l7xrn)LxJPtsALhsFù֌CZ1N܂/_ #rMw-_!6WGN©gt'jl둵05[P ]#$w\`v\DцiVh:/2c$qA6t!"[5Q~˖ʽA #TBlK{@\ZbVaƘ]QI|MiBYO:Weü*\}%w_ 2e<D{:l˵ZpSO=cp!lQCdAN…@"j>>u9 $ȼsP%f Gn1Xp(g"J_5.Hgd瑣&,Xۧm QM@O K]o>j,ԤEty6P?ؕ`64Q`GsnK&uieBrp^ (O+QΑ1;h>PSRϭ{z$vߠ܁>eVVGC|"lݐWn*|#MX[bB{o4anW:nLuvFi& &xxxJǃVN\̺c8f+@iAwrֶ)2\ m`e۩Pn^4#ȕm-#>W v]ʎړ#d^d孠P1u$_m>B=x$$ꩼ.4ù+1e%|_l-Н>jad"*S__8'[S6(01o2Iۥe,+C)F,"qȟz(0=H6TzqqVA"xDuBM3~alv*X'^Ԭ?.Eb9J1 ԣjo_ 5rW |0yy\ 䲮S?M#l{=txWiEz5L'vwmA3=l{S) t&hD \e^/4Vօϲy"T*Z ❀U7: m%Z H!lWЌ%;|痦&z1VE{)G]7E0]Rw_z//, "P+zޝp2wi>ճ'K*i?jJ('5G$d8}&ꭘI?R!$w˵~XZLseU-~?, E` |%qOƖӦSMhÀ<=f|XV(`leq$<%E';4 Tϵ,*]o02PAW(6!,!8d \y݋K=K?b^EHV?w6TI~C`!Q3A!mV玦8f& k > M&vЬН gb1m+X +NK˸"#.c˝%gO(fkNnZt6zvwx MO7XtPo^\I%637AqbۘJΙ̯8Se(s6$}u*\bjNH(==˰',:_ss;iaB!Ph>X}&tDyFt塯`!1xUٜ丹.6d-%M:%(W6oloxZxʶ3aIhb32i@mb_[Xzv?t w? 4'BFHߜ]=9uwEmlZThͼ Z'x}yI! 7k\Ic 2j-+5@<*h%{*%ai^k?&·7q]u 71D'5FuWJ:DЉB܆-1 ?#"V,˿<fV؏a )cdN1^@{ 2zѯtgqk.UD:,y,äU4`$ǟaL=;YeP{~D5xb`rQ|T<%TI(Kcu?[,6Yz璬)=AKpzarT3XDއ4!)ԵKN$B;(?W*)C0Fn$(z+@ ;+, Q4$B6jc5@DͨKƣ9c E)? s-Ą -pCm+G#ʶdr( &9]8TJ{N6 FU\ձUw֠Vr7vE=40N W2ܴHf&ƈF\A#jDJc{Ug0EeR@W{ o"WO{a/`}C p$Xqs6#3`6bȇ3lA~ iUuSn%N/b!tI1=3?HOw^<.>RK| uqwVu%}9سiA_ΤgǍ9Yv S&\O <7DfZ[ry7ETb\nQ -vuo.8pϡE}S"..P B$z/)w)UExG 3Nf]I xUZ6+z3:;V5YU) TyN@Ӌ,$x-Yb))2n' G@hbEyUuU4$QgQg@MCSȫ5?J$5:rEQa|ܡu~mS<.7.rk#ts!,z[:WgCԔxgUX ZVEaRTrmSSsE"£^B3&Dtɒ"k  綔&Rp2v>*[^WƗ꿺y%ҲfKM" tCvh(A'}V _O/q;g~Z%V|tЕ]f\ Zm^b^@x3gP|32hvoYX; (©!t;QT$w/4+#@&#=̘z7<򞵢zO{*uA&[yNi O>Rn}!f %{7ڜU)JӨ ⮋D}4FddqȬnAvghiaoW!EQ}@B(ýxa_XUD;gyPۖtc0fĠKW /ki>+B0l=&dm qEJwr[CYrMIc0t8A'L:tKI@72 V fe6&8b ^jTIh Rv7 w9y{@2}x^pEKөSxQ'"ybQ`2cw 6#ei3KamrmX?ޜ6V>T>/xh}@H9K8ۃN,NdoBkf ; K%5L BqK `!&פAU 6eδ[{_Cxàg=H&FsN ó~xGIU$l~W} 2rWY{dw r63f ;K0hX/̿->*QS SEejJC"Iw:jH$kcr-Zpjd/r2{ۊ.Waһ+"Q QM (P򈵟d(Ezȷd\YWXb1pu ]]ċA HdG=#CO#$.DZ,9382 v/ &JTO5+fJӤ|ȏr:4C(,pA7=?LMx}Db|!?ovbڔX*C}'*$_|_G[ds"tZ9f+xXm "Мv]dVTP&M&JQx}d˔\(Ghvl_ }80˫uĕo5;WJPHy,ZWx%&䜗*l{6שlM0 N*o/:^BKBd+] &ܟe֍%]iEm_; "c/Hu7(Zr: Q:%)bJŵ H^yaowdwGXR3  =s#DG2~w4%Fj[ E-q[uGUX^>5oۖV_MTmzm>'bs㡂&==UJDެhUTW@A)ڛhB=LWB΂il5Zl6OAIfA.JrdĤxf6ɔBՒ 2Dug[P]T\{5ÅSiA,gM9 $<2fBМFjP/l*Xb GJ>ðOe~@>ZRTfAt>3!yʫz'Ie9k08@Av2 M<5r3ЦES>nUk.cKk*5|pq}Pm4/):C)krs`OSL0oQ}y)ȃhx.' 1qz=" dҒ 6#՟S0JRO0^_Ȫ͊ 1E P/T4Ӆi2<`JQSH/@?KAH{xqN\hKvKyơpUՄKqByd|%Ozu穀zH_!'䴆pLՎjPc+lfJlh7lWrT5&S+М~N逸{#5Kӓ*GolcdvfJHSv){1Ҷ>S*w K!YH2mYϼ*_ 4 ]w@x>K[V%;^%ִؗZ.zBd^/`z(k3*4dD!|w#1Îyx^UstO#UA,?vYl6T 7j6 өSeCۿ nxK PWd aT|.0Wg4_sc ; J-J}<7|a,CRх(>Z^cWX?s}JD:k |;t<63bdq ,/`!sCS3 ]u,XB+󦂐2\\>Ψn9 yMUb `XKH_䄭\ wyp|pBa._QR6mJe=!`C/P#%ͭ6(^d[7rq#^>R~gSuwf&qDQArFdaK'oaPC7L5_t^!rwp{.d  ߺ1A" MXhC1;)ǖ5`+/Yl7k;7bn^lb.*]AH.쾶rVmY-A&Ը  A1v VN5|WygOQ!LuD[%wT͓ߠTt\~?6B1"UNU?nI\Pn:"~݅"w(QLz1,6(CK{ Gdx\Tp-4 6eev}f`e5vfjpR]+q:{cVS>p(}W3.k6ÉEt޻3]Awտ.E$zaǷK%{ȏ²] KF*aT@Y^JR3x0ok"S/P#`aӐ⡈']gݣ;z*֍tZaH1`FfWnڧVw#7Q]_H1 %aP;e\Qkuߜ{U+ upmŽŇq#d3&r~4 {C".-JK󂧬|cOXxVRihBFAj>U, 3HvH0?ܭ^~! bOjҎD c=8 SzCn_{r*T ҄% SG(iV,k0j]oT_WE' f-Em:Ŀ9x)jG401Iw?')xMl#p;7 z~?.nX%Iڔ)@\dnGDV8J&"iG=n['#RN^F?#>)}? #7#AV`[u,PHȢW>K^nfh-sJ|ة!tY舚Pvt̂'ìmbwX<`Q7`*ϓVE!F1< ;ո vデvFAFC@epJG"Ծ0Md..fXaŀ5a KdR4nWVfjȃGR \M}4(,+iࢩ"_V,i{VqH3R>ٺөuH'H~c[_[\NbgķoBfuW ,e>tY`ʾV⌱c BpܕX'Ne`h0yA]w=ih9KAN/V`'# +RAL0iH&qW",wnLl`CjrS|oNvN*¹[)0<{1Pad4cA+Dr[ 6z0'C SUq0ju-hrκF#K NLϷ̼J6 ;/AaԒ~5ynv~ne(`zوJ+58c\Q[ GG7yfLJP#5s"QѮ!5:0G|i4uǗ\UrJutGcMDž-DbZՐ.9 z!Be~y.4&y;쮐+ʤSXwR.Ƞ(GC'G  $aln'Fa)cGrkݻ5KrwY/6,+.s)Z~\Vhbk,#(ə]g]V#{S L?hśC;kPR,}r/-/(` g#TZ|ʰQ#TGiېǯŝWG'ʋ>,n r %$m,ͷ(p+L|9:y2p}8ؿs< v\nejfӹ}sf?>y2 !|{Jl|ݙ gns ER{Gn9~Z3,Zd-Vݎ//1c3+C`, Zg#NLBjυS򝵎_SC蕍(>H1)O /KŕC:MQP ]-\nc`./V 2^'W\L=;$ +]k)kIݯ6"}&axDb2<΍OlȄqgUj>OȤVs*˓o^otce}[sRF]} ܨyU ^D$M9o$_&ߘ .ciao*'|E 9oYbYN02`cP+ڰ9?}jq ^"!z6c20o1y!= 4[0ʟ W ~Px3(B@=$ 1XœBI%O@C8Fpߢv] Դ^ [\3M(saeھ-3H6Hm1ٹd+]LM[] Uas4ەA 7`qo-1i b>jF88 \wn`}Qx}#Ȉtep6䎜 Ҷ*3.֞* d |;Be?{b+]<X)+6)4 #{v@T(Ky̮v<.(˞I35m]ج^eGxRo כCL`KFz'Yhm՟6tu(&VW'uf%@0 sSC v8#Gx-`\j}I?&T(HpὮZ !;%>AW/4x}*j 5!:ΓYM8ɨQ"fl6mb,3mD# =\>ۚoZ9ߞ. lSthA/-֊ng eǸ3 Kvmai;V;7o;Bķ]zI,UF]vc*F`PSBiT$5e4 m =T߯bFZݞ`!| )YXo;xir?,&5nhW>,I PQ:2'4 U Y5w>$;:L9=X0XIXz[W봀rFdoow2Q?i:ѥc#j"wR")J9ӈ);z2((JgZȭ1w6 i D8³dU^M?Ep;d96¿ޯ,ashy jV `55(b:n*f lW(Cg ..=Dw(pXj%Hd3IfR"&KΎ! zw9ӵQ =2| x^mF ΂swBDm/1 E,:㩹Y'hVUO'TI(,p"g#0!ѿ=F h5ATT>, WӬ̵-xbJմFI؋(@;A@ -"Tedn>N6iq u6s?_9L4کz9h=`!ڼ*D&vDX LDk@)h 9RQO0fOĀS'gC!O kMf TQlyѼ.{oJ;6*5L-Dj<]dX{U=@^"z+K􏈨.myM9&7UCq7؉$ȯ͔絢{-ʮC!U/H4ڐKs6Ec1# ?Qȁ$7m\I6BHUs}Bg^m \Ȃ*YPJ!:l N׈). ORn/7izA&VҾ:E8C6 fo4ghSQ3=[a$LR^eOs(Nu#-nǜ*!  R`FutX=R/QQAv܃#J*$xn|"K8f]V߂26\Vy%JQ* G=`MN_#D20[h]DbT5!ƖTx FIL#Dr) c3 O Ij@bcY: (RpLK2pE1:ۿk/FUOK3DTpA~ aOc)cճVk n;K%YblaUl]Ne;)@mXhiz 9k1]1gf:W@|xz ר<E\}@bUpRpGBmh+!1|=M† eE8*GCXhpvӦk"u/DBa憻 YW 4n:30k%@~3ߕˀ|ӠšT^8aI\7[ ve~C1R1KG< ٬I lp|͗n{Qop`0=~"›hTJWS.'L-=4@CUEyGsvI+<>Z`jsSuQ6I@W'ا2-E0dD v'LX@@%q_ztLļУٚM#U:͞DqÆ4Kױ]tخzfE4APӭ&D1Gi";"M,yEtBKPdpgv ?wC `M8j||L~d!:z}^4+nc`Rm0+S";60>3dH|:WɈGu9]'a Vf.x[+`4`ma$ +6p /h|TOs׺Gd!Y)\g p c2W.)1\wIV|3cbOL&[;6V?mG_cܜ'*I+#F )[舥<1 0%R@xmk)NwdȌ:q ђ-bUPr2EBj{04ɐ @ɧ+TaXT΀E {G@J"oMUmLHkKէ8cc%EBRna粦BN 22%@|y X:'|f.ܟ]3SF!%&aC,8IIL$m-n$ҁY݊eQdѠIK*7ǚAUcLu!s0?׌'=" urƁjruJD}.Ѻfe9|iEmic9k;%l4Eg O LY+UYp:J.3f$rAC(yeh/`fv!M޺쳼x0|ʫcz{6p_l^pWc$1_E^a&qNf Mf r'% (NJ̈́5)<ڭyh2M*r5[j43-j,", _˙1z (6ѲC =rsDC: y0h Z_g _i @ #j WvBHz,Pfk tmkhtJ;8_r7(Q%|a g^#I ߥ!" Eie%UyfpQGs&:[>}gXLʺCf'喗]S.l@}i;~n}&%/ЋeEL=C-%wjTY~rMeɘžXb%PjbĨe؁IvD]rs_Q^s<}܉<-~H^_P(UPhnvo:#Ƴj.K?O\)\ opz3[MB_!PBE3dNѬ[XR5ʣDKR^Y1q ^[BTUgq`DBflrU7)a1VRQe@O1t'$R{*3P B.E{398oi!$Y< NM(o_'4ϗA]iopst aW=w?[)&n xEcEܹP> :){m`A>`qDN[ Үnini!ތn0մss-z3#SN|&.Jav(41D_0~:'ib].-˗OΉ嗀͢?wd&JJt0]yM1xrC]0P:ݚ156yS+q"s]H~M'5U" 5aBKbѱACfX% HSw3Ca&HF%ڄxb۞.u?V ZB[$q 񹁡(7Slb8' @_4fð$'v"ci'_kZ8qELS^?ʆOw FЪA|]f8)s>?6h C^,r^>pQh/yhUzcҥ3$recZ`9|]N`"kpOCmҬRV2rGfj8GOz9)6kd8K,n k1ӃaҶ:{Z3ڰ U* w /}neXr WJ lȅHFU.[_Ɇo?岝c%6?dDB21 (~i܀hRZq.RJ.nL2[&=aKb.i6enGåE%-TǾ) '9%?ƃ>$Ze}w 9Xz!Bnfx]OHw*y31Ƨy]!x0gk?(fVhzm)%cUՍjn,}QS&{+}ɢك0 gb܊SV PQȲdkL*D6/;D3-MԐ!ƔC u7e~#])>֘,;UWկ$Ǜ(IBεpm|O0d/JNn23$dI?vE5/õ_ohl)q?K0B ğK}3W0Poد쟮j̄E`QCW 9 H?3HU sNcGcvr>h0=ӵ 6[SZtS6ۯGE/,`Esh7.w6m.Ql5'WMlD^mka,-X[ł=@觽MJNr%Gɩ1qk90x|ڬ{ 9k6; [" ycr6m,+EOn,U̻Ӣ-Z+= iOBi??3LJJv&jxz67Vdj TQ^JU0s:#{szaCX%]jQ l\!AAcg1A[yLh#ؼe˔6 0f>Ͷ`6̍Q f`="$o-nA rPAQtڗjU+|k(٧H .pZIS5r  yVZ&#-[Qt!99JsiN-ƀjˀ8;ddl %'WOٻ,4ZswB$ϝa"vH\VvaŭѤSkFH#JʃW)v&c>H; k$h'~[~H70Z-DM3g/:ME- A٭Ld~zz d~^ GTte>./4aL›h`hN ZJZv>²]h?]Pa/d&yz"#xe.J ͑|!#)lxǡls!|vjWs!U,_d-]hȲ%|rf,%>+%`w3Tix_֞%d!u3V=m&>l|";halNo^*hv!4i-ȧj-f"ET]UR??̀J|g7+E`{Hpʁ/} *-% uD1#&},P8\+Y,_h\<'M c^ ||z9$dN\2G0)>.84$](Z5}SIdc?6h8K2eiδHq*d,TwFE>|ɷ yH%uf"9u6}b0br_@g[ W:"gĄ#[ [szfTۙH&hZw>Pי+d"~&Pq8^ B$`~pԕV8+w *je\Q@IeKLklLk`m\ Zm>wEQntnc72BPkꁓLM+5R_gXoMasOz嫑 {3^30Ik:C}K]Fh#`{{Zw·<١F9J47=cDis7u]Yv+qH&1lT + AmhqPr8 g>竄ħu'&t(A+P).iJ pߋא$kA"U_=1%&]?$C-L3"8b  ,/Sq (C48M_ͪ͟|ӱ"U !|/XoIQK ~*+xl&4U4'ǚN%RX/2+Kxo޴Kb*/2fVjȍcdӈ8UZxb 8{jEL%Mqaq|N܆􅓋$&{>Fml ;hY$1`l6q;|ګ9@/rTA1z< s?Y#[V*EQ *ސ:gt CmM͋|5_5?Hjy|U;].!j{&alJFj"3ubvޮ"7B(7\zT] U2EDq8(hd#:f{u c҄ݕ[-jzkRcW F.Ƈ 4ǽdT L^)v|]P^t9Eѭ.>]EKJ=S) 6:!ްw aF˅VhÇIړʂ5>\T!9;c`՜KnhR+@mu(22ݍ|{ܧ9;qu9 ~N'79|YQQls-2Nxe/fm/|q|@#}'{vG9X^zM7]I՟fLVL /כyzZh$f\:f訒>QrpAЎ,p_m -G !M̳{wvIʴK+t.RŽ~4!^,ȣ@p-4ɣ*9c?r#"wo!8hc8O(Q:S>.BW= Y)s A{H~ӏRcmq<66(x\釰,X/;q ;^}]erzVixBL"sG~/Q5q9!8&H3mǤZ$ϵ7ߑUM%.BὖV|lo"}/L7ӍZϋhD*xݨXވ_ܽmCzadPI 'Su~3F_Ci\&Rd )ʘޮ?3ոnW#]:AIb?䱝hX7J%&"UFe5#ڕ@)>ڽ]LxZoZO:<2EM{>-Nv%))Xh(Qwۈ 6K9AFMo坮[&](PZ3Z-ObyfơWٝɬ]2uWm=t@I%}2U!N&>X9拠L"ɳ' =Lؘs⁕]='a30S :k^%S^7+3z$!*"JMF3ܝj14َKD5ԢkoTlQ ń 7k~2gc6D f^$e#7q#BɱNc[vtd^` j,.A5b}誣'(Bڦu[Yn G-$SA?i :>T)xO0x!/W[Y"@]I`ZDJ+n/~WaV;lN}b4UzƎe޶b+!{=!SPc䙈(wܯ>DQs}W7%h+xQǵ&'b/eoTLk؈`M!*(9MQ i탰we0ó*s)W h_5ǁct_Y 1}uBE;7B[/͉#7?Ybm{|Sua2"Y8Eg:kvˊ< Ɉ[T]<_x6gA~6XE@Q:.Pͩw<ꞩ.= mW}ˬ^/a iû/3-d~h*HAx`??1 -R?vz9Y.u_!﫹nayu"e&O _f -eU+<'3iJ&oS\^vJk!t#>?t4 le>z {v(4u"r2qGo~}qy`\ا_/ujXvw@cK&ud;}d,zi(}-- %C@vn!L*HaVz޹gbTgr t̤oپP=9C7Xqo(/e`{].",؋A|Ax->`^k.`&qN6l$ʰlssR <'C-rFߚ }>)^Xmr; dn৖xMt{8ZG!NePRj:Bh]Ad4zDA$ m3 8ݤ]Q HA&;lt2o4f,dH+ThB%u ̸%DS:aO֒py.҇6C=kpUUۏ]}0{yizm*@H߹ʩ۵\;L~e8JyU)QhX?y+ x cLڊE5ѕOY ,KR'T"UveF"CRYEN.)rKŸv6wۋX"\=Y.D;NDۿaO0 Ye? nXA1ϴ޲iLsɌ E.Ydϸru~}gO a3$ *!ArT!}w2Fy<"e8^L?<3i !%n"1?O׎{jmMT%&={K|[y$օ4>, 4cxȏTgg?W ѓe!%(N|rO/o$juq>~ @jj/ A$=18;۹EIN΍)ZېoN24I\^L! r3F{dO6Jr֢4q,.ԅqI[ID =G 2kNXǎh``ª@P*sZS Cɑ*[ޒh T _U,|ɑxsJa*X6ߞ:7(l8کg ﶎ;4@L[>h=ܼ'rɀ݊"oN^6tgjet-mg+iG|R[.¬ؓREI2{U.x;Su9 ӂcx$XwJ6|W!ȝ Bc pRP9*@M֒59o_ ib}IhJs p7H1ϊ W S#W&]86']BǰMY"Ī4iUc,e5+k|Cy+e+}6Vٔ|)mOA4 i·S1v} ٦-6Ěh_\2;='8C]O"Qrc_NDqc&Xs!=)|;ҋYLFTzK;Ut%gtÛz8OlP`IK0!!P DSR[U޲!pox1'3յY97 BM$Y 5t'rD-YZ 0(k6@T̮mkezT'mS ^1ImsZ1ۂG95͋f:ARX?ה,xCU[HZSUȂDA{q(n.Puj\3ҐCޘ>S>MZ;=f*I߲]-¦>6Ѯjb47Jˢ\:~xD<#(I] Ʈg`QOBoN&&BuiR$#p>@ ?[點 dƣ$kF܃XzϑAMAWFĮau D:g6ف]T=%]9>oȥ`S;\顷L^TFL#>AE< IvfΜ}tB(I$Yڪز@qpgUINlwT"Ph3_anqS+{:;{zC9{_:zCN\iH("&4s|$ž`dN/?̟ l=6}_ӞxlvdKwjކy _!oQAX"Hi1s'Ψm?ns$k̛J"~\%*tj>|>Ҫ_9\Ӣb]JSB흷 N1b=B)OWdͮ%vRJC^$V〳魂+od 'FsNܑ[$Xt>F^jpptAU raݖ/ 4Fs|]:׳a*U Ov Rr3sIU% $kB~SC'&OX[б0[<}hKNYMa]"@)_%- ,/x *h`L3 $4TvjvM~*MulGme>>'h q).E 9ayˤr?:XC\7Xn:C3N!0NS\erf5DN6Nglw g岄$SY%z9M4ah!Xsn1..H.,H>@Ku!C=}x1߽.K~8nǸoU*f#Ȗc"% (Iwsr|tW*ZzWO:664~k+XG0_֕k$EmF\e* &CeAOf=5'Lr;"y [j<\3rl8άIP9 a<]ѵӈx8p*8=~zWɴ(Na”?m'1-ndF )Or4e곀;%Vfn~LvµSy$Dk`Cf$t)ĞP^KÒ5:^aOC,1ܿSG%{Hz\IIpkD/~x=#$ zJs^Vgro8kGC+;+4G{H6ge^4PC߅ "*LA|6xKSБ6~uZ i?wNx;i w:o^?>}vti$A1å!N#7[$zʐ8J 8*2ΐN%2nׁO)T8 meG a2s-`kB,Um!C='rauecz @ŨNj>^EsYֳ"n~ض @D E6mxVsPi&`R/J5i32'oQbxOexQT,avfSԩՠufOR!,Ҿf9yxr\Έ'2؈-u:N崍$Ƕຶ gO-:9kEB鼘sE¹ GAa޹ABEbf%{\3w䁘XۈyG* 0qbq{8}2n |Gld_p]L7,#]gWk(EZfڒ*@wǛʌS3P+h| nd[ljơ4wM>d`ȸa"ӕE~E^epfDJiWO'ј~3AYq,\ -`%gIb5Chgј $O 19^C7m&2XkK+jqN8;mQt6sHAkV-m ڀ >Xzztĺ+WI:xx,-.u6|ij#(ӎZ/_0<5G|5\Pe p. Z8s/TH|6ő-N#==*QX#Ɋ /3# z|}3ReC0NyN):++<P/5bwş&un'x۞wx~yx; p, JvA!j).?=c[at % 23_إNmUx0:?#h5fMFPt9DG3ZiN.p,_xEM],+cLz~/:pvp[bXK[~ Ίy%zF|b$~{evGn@⥕QрCN\?E\O /BrqSɢxb+'(% EV*F5>D= @i8{i)65ci!yX9)yRj +)),3p:Fb0:k~ crF2 C5BsC=Orȱ<8|џ}n ?Utڄ~d pMҴlqһw:*;(Ubu/kCp6=+jifX٘/HC\ ᴻM/5Ob<"1h̷IwiE;>Vcrh/MS.-zpI4 a+O a$gX[L(z@x5̂1'}yQ9]ɑ#-@~OQ墴*4UU"\ƑD/4**=:\``% ?"d2PAARH33v1a+mG}ڡXadv,C솢Ѫf39_זF``?څO0!\x ~0{rƅ,r{R0:kPP &BpN0^BY=iGVC_g%QiM  L1Y'snOxrImCU py6>ؑ{qGWm˳qF^ݘ|#r/Ͻ +&AE!^`'BS咖f0= 4; {L^p!n2!Wwz+3u!_dmL+Vޞp,Lc/RgC[$IYٴ = q],hX }$>{msEm׃&FƯ:)hU|OTb]i _=>]:ODB/1T }G1eG, Ilz>fZ(XUyI& UR$;_X.gBBw&k&L2 ld/Eahe=jĉlKgYv*hmM%0tB9T29RX|؛b@mV̏2X<:aϓ rij2xج^2bN>2RZ\)a_:즿^)BL?e1+.d?HeK 'CV'e\w{б7#'H LEx#‰8<^-ݔhտI~U` O@d7 >c!A@q{pT5x"KJҹ:췭)63Z?ī;( 6gb=& 6/^e| J@ZA!?(,+[ls/}"1M qA̳E_ƚ oW?! h+Y1p{vdŽM4qnN, 4CSllBoӞ̤OGt\<,7ϰ&\)2{Iޛ̀??[#+}{$RѨw4zl-^Aɝn j7Ȍe8j]teDSS/c9k9 =b ~Teү˜SME,-a+7w*GvI7H W\6J+z,xS_V78tq"0`*x( ]83,V?>D}:z\ZCTM?qDp6%TF*VwΗb37ŧgnn0~Q>7>$Bv[qz"sjjmfW@yFWm:x'sW ʖ0~'[~hMzKnjd:jUЮfcl~Ntɟu ^YWWy0Δ@ }W^FF Gul8#=dA2 ?ї]v]Y xؿ:b:ޫk;٩Ae_o5**Yͮa=Y/F]zҭN  ql g'1kA@O -'nEJH䃎K$I}d2l'緹"MhO-*g(r4x=.XhVxR{zvӟꮩ,$6ma{#|GBU;RV|JjzkƇuD &d*yˢry(!XeBg6x\P^iio`(5Fe}.5Dcp{Nf(0A҅88*i-,dM”U@>"}p1+] nJ ۑx ۮ ƻ@Im"^k\2-jDbf{IT9Enod^+1fb'IaHVBM >J`dkaKƹ9} PFRHlH@?:}} ֐Mgc v3MF~@;oŐ]S#ѕ[e;J4۟ ݒJɼ/7+>h9b'O\֪aJD 2_tpƼm\P>ozA&֋/ScPfi@.ߎvԤ-=7uAs;D9/kjb |d75s41 U>\I48-8;9KP}?G kw0[!,[ZCu5u țަ)":;!G%;&V?jK;ة^LR*V\![X_6֞"n1Z筑@asY mvl :ģ̲o~R7$\0f`+%T)ΏAX8Po=u{n?r3ȅi\U8$ {зه끩U9!?hU)21Yi4XTShN nի"`u#$Pjft,_kjY,)(;?AU2D8LlZ۩#-`KAVh:D- `LuTڟlp6#r2gMaj‹)&ݑwìӑrةboN?rvQ'lc.&QAz1wT 7t ZhK!x[PQk{r`dQc+3cV%t-Z!gw?In4gxrG#ڒR^pvf55MYG(qE9E&Qf߸q^`D¯/0Rz$q<!06Ի nΣ/TܧHkG (0WA}?(ٟK.]qpknKYlPәHnn'"@9c,Y^,TWެ>n"C|r"#*vF-sB̌5foF L736Ưet1*wU$h=ElX>H-=Q~:'.4~)] \j4@`VF- r6`*VB@&|ypo} Gg|"96Q0,nt?de22P^XeKJӀx: ! N,h烥}yt꘧\0sߜO5֓*Vhbp3㔱b_R#J *7ZdȲ-si¾k/TTT<.h촯02/]gޤHn1wB)E8Մ'߿z'LB`M;` 3MH hO&,%KP*14Toqjzee75R(@~GV#PcsC;_nĮ{u}Q`z,*y6["x\SѺ =+ex[gy3n9yI]tO O.;3l2ß.Gbv߼L2]a(uN4{f%^^琁2l' f[z#%c#x38@Bz)_eѸ:{Wi#zGp6n獓u~펂\Wy {ZHհ'FnmG)my^.84ί}"{{3G0D-)ؐv]=UZI:v&H6oFIi#Uޥt ukF̆|Ecب8D9ֶlwx3<$f,H]jG5DwPpQIN5,LPb.yi^R<ʬTSAr_r¶Fx*VGR\zа'$t i,gi2~ 1 Gk f|jf81Mr#&",zW|Gje0 6%8~71)-{wA6{L&nt8Ñt7ߤM`RLƧٖX4n1KcH[ހ3)5Q'6*@yPriYr2ݓ@ۨe%p`gz)zL=H"\N\: v aFU04ԅ!kd&bEQ`'@/5@Ȅ Xd` l;ˢ#Dt< !βC/RQ8uQ@~{B9lm@PAˑf!!ͻ5{ Id1k-]xQdWsXk] "#4=XjX7cڐ+`qT"D<j&8俄~Wp +9o/j ˆ6:bژZ?Wv;3Sww;K\;J_v Mp<7T?#|#.D^8bMjT+oHb640ߘ~C 5&cp$y:ykC [E,=bCnNu n7 <ޠasrN~B D$Jb"|@Vӝ2G{^A`8:ɾa^$TI6M JU~c86Pǰo/HZD_{crj^AZx/Q|5 "yת~կ@#@F[xqXP tIOŒ>OOd2I(QFo"%e+np?Bi^# OqlAɼ]~ZivAķł0wg{RZ̧vx=m`Tp t=,ma}Y@T?\s fBk~\1I\ޜ=B;rm% z(8aئi]f!z&g7-?u\f M< Q $ wUдv%,|^.b;HZۙj6jk`0Yo ń4v ,3_dGPRX&FW`!Xh3#.&TJ:!V˞q<^xT(X1*ԫHJ>54pޣƔa TJWY!$]h,ϦcKvv OyMx?q */63Se :)JΝ8ޣVpG]drai\Zț'-=S,5qII*9cծ'O.!C0[\d[2 <{(e ?sh u $-WU;r:)>.T["YL.hNS#JFw r)vwS0.\ͰGo(5~;US(*+cېQJˠ|a72āwdu5R٤' =BQ`®z&dmMsq:$.*%ciGT ߔ1>QEׂs&V>Prm=`d Bz*7EA_]o~8 Hm\WV8MW~]V%## 7lJ,V@ӻZ4ئ?~s-4u& EͿ e#uSc¨F: pLVnI:xSkN=ߍZ7 Wyc+ڙ$ZD`yXjOPA=U1R@jIY悏19(b`}fۣ}){B3k]7բmA\#BԨoX/q1;1Lj}Ǒp)0tEtv24[x'kT8xۛm^hC 0j#h,җn)"vfK|RZen+TaUw:gݻn>uU,{KlϪ] !]:+yE;=1&f3z‰b|#?0b$8QlhY+-XtRR0XFˏ& 1"Be E ޽ PQ0;/3տQINUwR=5PZ )BϘۘ'2ff 6J L>TDϿmώƜSU~Rl#J|BO@N]aE$CpEoϚ߀^I\d٫$ Ro]`})8Xa'Vg]mD:ik>xrw}u'?iR(Ov( ˡ$UQ/mҦPKr&F8s3T8J-aJ5j0q:YY̚Nx)($ K;4C+J`EC)'+W{Vƶ+c;p)V™;-%&^?Ȑd.v4Po-ݞgK)7*J3?d,Hpu+akb@ܖPGU%:r[~f5X St}5PX"@k ,grNCЗvrnV O_"7z']ŻL o s?G!I$86'H~0p 9t)E:)%Xl!=+w2L ֒"Q`yMil#AƉ{$̜P?%|:v;= I4;^3W }.OŻD͡&_ ^!tT 7iͲjE @aWHS:qȋ#܊TO@7 E\ޑ9gi^dAR!Y` pRg=qx랍J#҈]۞:yP x\cIW=O!!Y .MЊvy"kLcMsA-}yG2 ݽ™.-E]n T<lS3FnٓNLUYW=53|@غ.*@g,ۚ4]P4ϰ+={̹#LrZ]k } ia]M@J㖂4Ws?PB>?;J>=A߲V11tt5|jAN>wΔ3-97Q`RQ@׎}ڀ ^p 9 FVBGEC lYЏk+b0rg u2UD\t5I_8,IĜ ( g'iTSz,LbMɅ)Pa) C<6ɈzU|+CxAJ$n"vŕNG*bpʡQK&Eq0L)=K=~n~ܤ6lcd;M]ľ7qda\m ذKJYp0SFx2{%I Raccgf0QN缩t< ·R3i~ǜ V~&V(Py)CY5MhjQkjS=%|׶5]:. ]_ւo=l?.ng@N+<Z 'aMJd}zj" 1 Ol=!,Gw.uD 0qEPs0}sT󎀺퇪vZycmJrH5 Ld d(>: N$Ȃ;S Mp`#O07HiKxX4WeLac%=8=K}z&LL7Rp@V[x[4x b#i;#$kRh@F?N&I _(?GH/xnuiO`,N\# ǰ78p=כ3/*Q3Wߙ^%:}a(.&KYA6]@L', dGW䪬9uۢ[ HMFIcoq[i$ ;=؛2GB2(qG|Q\:hsBZ~Ȩ,4=@;P,ͧ$g]y ,ss=.X~uNԁ %MDkv ۄ(ښNr97U Z$laOQ,TvV{\@[rSWu(zk} o,1ݽ-C /yT6ק+|Ja|_O&[ċ[7RkyJS)N7w@9k[^0fo[ܡZ@J MsuNL jAWQAmr+Xfsvlǎ& R%Z_XePEfЖcI|^Ȝ4,Pi)kѲ~^gR)%NƜ< 'X'$'$c.N ]#1J, Y㉠u[M!L7^[J,1]YGI&N} nj\I?qSb妊xV }7K߈5'ӭI;SG;4J3@s&_~"Y :z;eF|{/;KLi(,0SI go"NѨj55\pDyRv^SHjR Tr:.AMI];SkF*URj 3IkUiGb& c^+")pC_Pq 8nemvE`e2ׇ&~h`fdKlPxiCF40ʕ[w|y1OQV3SMCf4*p b#Ij+Ms NR qB<<̥> W_!#JW|N4ѯ@LWCXt 1nL({֛Yn*OM*֨qY&H|ރ?ѿqGbf2[]JAی.}紐'k idPLhpXatԙJ[fls҇ ڇi!Xy5 ^hc3dڠ{9CHD`]*{0nF{`F3\>T P75kJ"rj[m(kyFC}*\ frwFXxyc_V+VABy7vW/dis ׄ6!k1rXOwSkP2;1{cЌ]E^Q/( h`=+SnC Nwȕq8s9}PU@O?+![eraJj+N 810O =xWBd5Zp,njhlN̯7> ^l&[ l][G·Ia|TߖE3=Vdښj O616q rFEu|6z٘IهaP:; W25DBc !|bd]ƈ$p_ީoz;ѹVɮ[T9R2'/h49v-&G5㠯V%Na[Hx|߃hRmPip.;2˨A%,ױO`W[Aɵ&}ko!6 6 ZHx vD2DBsӠA9cy*Fk H)DWȆvtm`c񬧃ʯ⟨am]7TDqQ{ǻ[c3f[<HkPb.`YmN#.t4A"H-!8'npv-sKD~puK $ fQTg}ucy[SR&"8>< k[|A=c!L߬+1*6$~NIY}I3뢣'F8-&HB) Z8g-w hg˓.'(LL}GHZ2~Vͦh+vbWT0go8'!ґ:4bgB)<ˎ<`!=S;% ivS3ߏIa_k#6(b\Թ! %=LwLA,HsƓ ⭼&!&{tO/-UAJN^ٜ2`g!>{oX|\`G34zlWV-,VukPK [;|M[7:Fի1E\km j'~0_3G 6I}v*dN hg[! Y@룢DkNy"p^x {ɃU'[jJ)8Ǥ{DС*mh5QYP6 TP#oNIAty 3!2lA)Q#`D3Pa2c񀞚l<# @&{S*PmUWVc U`D3ђĊFf>JI do䖻eX/%>`y.!XL f H+OZ0iѱWD15dj)/g^Em1=z|W@TJ c#g 9m,0E}`NYol"kӿVL=/xp* )~=pd+^eTr;g@\ꞘN_%4CfA 9{fql2 o]GotHd􌩧Vf죌.mT8\ aW.ɾVua)HnWEd` ^3'"30~諿m/]Nhq$0? z?TZcG*_f^*"RYx>nd$&|Wp>H\X9O[s ;}jy62ͣ Df*74=FX ѻ~Iv2C"T&=Y2qCqRԝ_Տ[,#mgE`iX#SqZ&|OZܼ:N;u.m^J+ ;T+W]$i i^[FưLeCu;ō"^'IhMa}qC丷)g,ی  䵜bY#ہc=(X@~ObkQp~ꑰ|ޞhۗq0fYEF'-H9_FϷSum{_P F=7U#~޷7rcKGA D`=I=: XEG͖Y{]l7YkK CjB@>svKx _ BQlV[ 6#8GP\/8ЖD4ʹLDlR|z\M&W`VmE(HIbP8KHR!62 lq:(7B Ia{p,.M8ФmxJ_$a/Xrrzhs'7ۥ/VFL@='J`7wy'ڏ^WWv[NQ% Ah2w3zoX §i_T삫kؗbEMO.ݜ<wyex?+GȰΙH7dTM*~jjC*E(S: &|<=1QύĎ 'dE&BXdZ {Aߔ qKָ~莪>\NPzҏ4^fgI#{ 'Ϋq&ɰ95]Ý5_1.jbYm(b[=y/Lq I (6ˡnE5js4+W;A:߫'ιA}(hMdf8+%pl] .UEz0V9U/("VP*^> `OnlE,ၴ]~ Q ϝ ,Z x0{vSj*B^=#!؊}ӳ)jޙ}3۶Uh<˅=\9%Z+7XǍlX,Yd̊\}aĀTH'pnxA% dxUn6Ła[ M|h$43J^5Ȃ)su8$u_ǵ w/"۹.VCLH#ӑ",aNޜ<$5[V hqQDgRX\b;tf {uaG@}$qFL`>cc1T~݌}X*D;և)"3$>KD{ >48~VPe73Q9̀YHV&E_R{UMҿV)y&uos2̶2WȪPEǴ7+eCLˆ׃E 8}+ԝCm[Lc1܎-֔([{н6 O U7r^TɮrTk;g9۔0ޗP\nBKC/I'0l/x آqR65lcXm:";2bkx!v,a~],?c-"kE$,O'tO }*eis'aFg=DE C:kWv)ډ^8p?&Mbms##7;sUUP2LT#.^@#Ӱxrwi8^A"Me"nqHamHZO+g0ܜ?6PA%3s@칟@.=:*x0 N␾v:`kjla#Jz4 ^`{Eg? z^#b^#}S}:+$#z䖬nRnFSuZ`P '*(E5?0 zߖlٶb`9ެiJsOje( XtG$m܂Jف #;@-jA*7hV1\إ?\Ef q( h[񴚋.+ VaXjri%FBVM-u^1֬SHQ$qoQ.ޭд7ɤ@LN6n\˫AvT0vϗ< I}cҩ%+0LyTiSじcb5E*ػF{&"ۄ^tOczJD8ia.Bk[.1KV:(>nXLv^W:qcC3BbHuXmnIߛL6%O#@G* Jx"엃GNpPѾ5b~c-me<\h#,>AN=W?*lRHUX4ݒ8kd_&n]%nNaY;m(6w-'( -"vO7E0M08VғoJQkk]YWEB71vJR(c8hejYSzGANk8ƽaMf5O%GgΔa6yJ$Yq yR1:tk&EqCz8|paP;^ƣK=UB.g$#&0?\oESI?J9UWV9F@<6CQWą)XMP @U/^|G`(j҂:XѬj{VAVP/?>1u^YHJ\H2Y$ExܕU)x}RXDj7fdk,-'?tbتe°nؽش-q>YfpG1yn-~5e=a/Ea/)c6:Y?vP~ge6C;AD>q2pl/*T2pϹs]JօH$Dg(ߜP~CQ#)q͜_*D@֞ѕVǘᝩk>pɠu 0oC1P;(WL$_q},#7ɌV=S_*<-@7 'H3'g'F)T4u178 [Z(cMH*T=7>w3Mb;#2tFFձtSR.;~HBίd"`ќ5(O~?/&u$̑'`ːJ&KYSؠҬk*Ҡv&3T氘Ә&d**<jd}<`up5!>= ?%Oz&CY@3bjjKߩG@Qc =򐭫r=up8g9R5R n; p1e[l?Cƒ[|# q?*xYo+h i8`|BmYƦJJVnNQ$N<'SǶ.uAT6Ml:4 z;,BO3{PwT')oǁ t ˤñW7>,72tH$D_֜#{jsc Ńc͖=Q]F/ 8#^WKU[Ll,4x`za'_{- `K7}h,[+KbR1N!``VK{r8lrIO'%샑RX̤fM@N: ^H'-iS,Mm\6+69&Q'kx$u(mVUVb_yhƉ-\I^4zcˮ7X~|,M=eZ|20\ }8s-98(f"!: ,V9dL`'P O,]n.uМj\ǯB"7?%;$D)%X)AjGX1ޔ+.!oipeڿ\cni;i٨H"ڡ:\ <ڿGvu^+ȺG41ɧN;w/RWu?ruz3˷]wp~!< dNlTNy_NNHjN;by$m0I ^XƏWynS`L`YC, ZWELHu8(fV|_P Zy:цƝU P>`6}LbSpj}]pwjaRWݩ=9oGq LXfsI@XgIt~:or֎E5 ,Dz$iýs4WSA*Ћ ⍓vF*82Wv#ei"Xds@NDفIח$Iee7ٗ$~1p s zKUE}ŋZͨGd4A#Hx€MMteWJ_P&KT7Gh>;05ݙŚѦY@N9#RU2A'ϕĂ>' ՞7F0A̖t1cԘ_V,cQe=}NBpu$D>[<8r͖V Q '/*4|ߔ+=y\ u$Z„wD`1*bso䵃5|R p7ǒũ vv?܃DvX=Ѳs8BBgGVfzM~ z7̃{~3ݗŃ!:Ћ`0V/1C 졓I$K|8qdκ nN{.⧙[[ nJ%WkpGC>l7&K$€GkxhSxd!KqĽ*؜JCYq‚ƯVuDgc,9½:K@<qaŽ<./ ŽbC#7PvOuh"3P%uIgm#p4 ɭDs-nc|=Jn*3{\tD>a%'X>'ȱܢ X*>ʢ/aűC#Kt?W̺=RQxy!vShXD= ŶkWS,si=hNCou)ٖi\d *{HH5ޏeGnaH8"Tr˪ˉrw)!z@{\$ٳ \`gI#„t]P]UVF3IKl\&Aߝcncy{vS4`9L?%8ooK:8 /$uQiYKݖ߼`B zZ0@@1/z7 9ȇ! gHx{O5:u<+IYWB3EX'~aLf W | F.>Tu E8fAIMá==KMଂdXk YCS9gߴ:Ӥ"{z=;Kpzp,ĉ>L=L˝!ƳO {1a2( b3!4V`x'D x9xܬJ-Uo|SFOTA_#Z=g_- FSeh};@X1޿)|u}j2˕|lK,4Ҝ5t1+R ާ3^Zwg.ʫ&Y!Sqa{sR`#o juiT|]v 1!AGzs׍ͺn%[X/H&|SB 7o*A{D]t驌𧗃,D6$ YE ׆h*}_r8%X=XwܕxL24/o7`'r|S F9F1.vQq>TBL̓qp|2(JVat7쵐-_8y0=n0|et0B@~"G-UK2[xݽnjmؖ է\c}UjoJ_;{ѶZ€{wH&=HktIRT#? cSн>p 2[ ,]Rг_&uaNN-1/$)!/n ~.D9R3fh5V_c^DNm{z 2JyTC4U\ 9{.{ /PU: E+5gxwK٪G}XyRzxQ:%xQ!JzC6V\[\H);v""[P]oO$ģ,NPq A(yт!WJ լŒmИEa+WUyi˧ŪNn)ɇ:"q لCRåϭ Ē7%șR~G1jLD\?Nѽ04~kvlPOѐNrx'Zmkemɩ^ /u#w,:5'}koxRX4>`_#@cʃ'HLA$@8컜x᚟+K NU[ qۢ5Y@PeK;@Xh3 *p"Tm_kExsr򑘓% B€ft1в(v&(r  MBff`d;h(%Ռ2zw_êi/RN4Ufyuwo̎7Ne$e21 Yxy@!񧛽HcROQrrXقG' . lX䢞ykyK`"([Tdzcc,>gdbA,&qFg1[~H"xi?@(sQ܋nQޡC _XkͩHA坉^,(W.$p,%x'?\3OAD3;x_KfKX0po|hp uюG0Y|(uRJ-3ܭdB̆w ṄDTqFR#St^ao59ߛ ۻVrS_=E_g*ќYjd^nű= CX7$LxwZ1$PD.+(pҥMQKi>q*u t˸m8 dv:*Nd]vKK-S*Z¯)> 3dm7&MHd(n78~Gq3ezyrx䞺Qi)[j *]Q{Y*\Ҕ^['m9CeVs&6^~hct` g~}ah&oUJSmv ,)Cn2./e SIB bCoR}拜91np,$}@R~ {lֳ){Ў$aSSJG0YJL5W"Y \̻!`h `D\PieѪi}cxB@j4tWbH4,t.s D d1vy/NB>C~UC-=k{ kc2~ꅥobB f\}:s E!YGq{9٣09bv v& ȣˈG.;6I9_~ib$3 aI-ik ;:H`" ގc@qθ k` YsItdqV4 M}%`I&UpҵDZz {LN9rNib/ )팅<+5@9b}FUP"Bs}ҧ_>]Ve2_HyènD}-@Xƈ@TGD,f@"'̦' p`F &ď$Y^S7ð ڤ[.VDAXw>&Ų!QACʤuS6,.OedЁt |oq47h9~BS5M iy5"~*sZCh ?k ˯^Jw3b[\|J qMOQj{aź8Mdoq䯀hkaL=y>ƅ}k̻m=Ta1sAs%?bIsίDzyFim\2EǡVPA?Ԥzf?"z-:I`CFA/"jxS@"RȍD$ &[AvGo*مצa_xq*_3,3GWl I-xyۜPI 'PY,9lY-J|}XCUB=Uc?1jG%M|jhDB& `T_`Z셅3rqF@z'p 3о̸7u8 2PtK\T~E0u')_9P6WD'8IQ. gdx (Wѱc:8H_P ̼z:z" 91#Pv0EWqo,H LS,z@CG9ČeTВv(NE8(o*ƼپһBڪf:B5B|^uS7%q.+^X࿕u^v]dkcݝ$&761dBƏz[,}v u3N̖Tа%nqL_,s N~&*d(oRmϑI"M /KLٌSa&b!IĩAhK?tE7Mk!YP5qing)xk: `6s` j1OFy BVe7Nk\҆-P:npWcbd9aK<^HƱh(:F( hEX5x?KlؔNpyr7z/aͮ9T9{_h&􆏧bP t)P}SW_X wCcz"!nN,t~&j_J y߁t\ B'iX[eT} ._r uhJX;>rST{S{ 2|ׄjça5UuV[K#Y0բU3,NW2 8+{W r'Dbʛ{WXyGB)éGķg1^FjƐ+YJ݃ ҅;ԑyb;@vZj ێY"45 W/sgVFx!jUs*`8=a[GK|;axOl4EfۃTғ*>Ǫ@/ve(Crd8uOf rS}TNR H8P/hz3?t[&pS#TDgɎ^[ҎjTN͆[T'<:$DC"2mz{Վ2"Rg#맵[psI#&߰,jb?t,_IL0kZ=>2NSt&a?5S$>*N`F>ˠ$N< P:!Ccuh,J:BY7a޴=,Ϋ.e[ 7,1]2A*karEgץ.aCgVgjMO]Z7 O6ƗN fž`+I?f% y>11A.zEbLA{0{] u[O^ zOZH(<#P/!AbA*P{?o,FYG: >EqF͇1EAwD^ڋ͍I#a6um}v͕yU6*Y>D7,30 2?a1:Nj2'|GhGm~ U{$ ,ȟfxYMPNfC.OyD )<"n7g*g14"('rO `sQ}p}kL̻j˸K,qD 60OMo QouXD=Y 9yIX`:/]zMEyM&21Ҷ YZ