python-oslo.utils-doc-4.1.1-150200.8.7.1<>,$hop9|@aE ."!)ؽIQЂ>vj.'5rN[>])({|V޵"(ǿynusJҜ,0mk7]v%#t#b`u3eD9+ GO?akbB"mD3i 5g9:9Vx|n+"l#FT^ ZH,تJ4~4N%t/?7ґSbv?J,uvEm0V>>;(?d + U  -3<l    ' '),/L/|11127(2S82\(92(:5(FxGyH{0I}`X}Y}\~]4^b cdUeZf]l_utvzCpython-oslo.utils-doc4.1.1150200.8.7.1Documentation for OpenStack utils libraryDocumentation for OpenStack utils library.hoh04-ch1c4SUSE Linux Enterprise 15SUSE LLC Apache-2.0https://www.suse.com/Development/Languages/Pythonhttps://launchpad.net/oslo.utilslinuxnoarch'OV^fR[V^"RZtdRFVb )=:ZpL&y $R<*Ta,N\[FlH8$0s-KI_xTTRK R_ZZ+ci`/lc ^!^]*WhheYto ~}nx`g{e}uEijowZ^w`^A큤AAA큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤ho^Q hohoho^Q ^Q ho^Q ho^Q ^Q ^Q ^Q ^Q ^Q ^Q ^Q ^Q ^Q ^Q ^Q ^Q ^Q ^Q ^Q ^Q ho^Q ^Q ^Q ^Q ho[KMho[KM[KM[KMho^QY^QY^QY^QY^QY^QY^QYhoho[KM[KM^QY[KMho^QY^QY^QY^QY^QY^QY^QY^QY^QY^QY^QYhoho^QY^QY^QY^QY^QY^QY^QY^QY^QY^QY^QY^QY^QY^QY^QY^QY^QY^QY^QY^QY^QY^QY^QY[LPU_+ho^QY^QY^QY^QY^QY^QY[KM[KMhoho[KM[KM[KM[KM[LPUhohohohohohohohohohohohohohohohohohohohohohohohohohohohohohohohoho09e8a9bcec8067104652c168685ab0931e7868f9c8284b66f5ae6edae5f1130b9973f72e32ad2b488ef0bbfd23cd91cb230323e5ebcabdec374e96a95eaaad10ef6323a6b2ae3a60b0aaead0e1b8bf63c6b157a6419af106ff31718527ebe2d7b85007e0581098d74e802398799de2d73364afdb7ad720b1e8eb75d914559bfc26c25eb62d76a3569a1bd9db7836fcc89f9a22de5ca453134ebbca4b94469d0b362fe756bf9cb309995b400ea4977cfcbd6af5cec265acfc91a2db35c415ad93df4bb5b9286db2669075e9a3d0557973b7fb9d9c09b10f307212aeda85702defc99634aee1d0881769a1625a6be1526069cfc70d0ad61541ca5f7d6f7d4720fad2e19c6a0c90253e48eeb948d69dfaaab630928afdd241d43c604604f357355865e58512461eee4d331a7a0ba4b2591a6d9ba06de2d14527e36f92b38f8d524405afcb61f45624feab6ef1bbb12af5340479ef2ab3d770471161aef85fc1734086265abe82c5b8550f04b78adde96a98fd1b70e68e92ec52a7b425494e18bb35c41ee9a6723d789a99e3e8c8427376c9f0fb5aa623ae259800e8fc708bcdaf0abc489069f3ed42d87bd0d4ba689b3b2295986c2940f4c1e821bd515863e185efa0e2d19395e9063871d09931016e8ea43ed182100d026c41d9b27be1802594bb191a1b3c2f5acfe4e5ef820000283a940161594423fe34f11d6bff544ebd18f37a506688f1b267f95f5d3e38a7aab6163948991fde2df512103f07984d6c5f1ce10ad7f9a6348fae1e7f0a47be717cbb68765571bf036b6ae891772c8d12d0d975a6391378070268615304f35251981b2c24353f6528c1102a8ea7b48bd46ea6d3749fdc9b512e695dbca3c27312463121fb5123cc7bf00a35e424680c0ff4b950c7a6ae055e11046fe2dd64db2306d281652fc5bd62a8c7d3411ee607f463737f7bb4efcdc6a8d77ee00ac549e82939c620176d20a840427f2bde8c63c0ffb648b59ea96abb856f2370694a798315dc784c8632750ae234d57139f5001fbff62ac65bb6fdb400b28dfc5b32fa4b13ebea950f7b771c96e91398c6b571cff802ac750226446dba6891efd6b427c1a4a0f3365151d616745284eca219c6c773365d045fd991ddf2b208dd9bf39a591f50e6ec793416e2867f54e8c6c7e89b68c2b61fc4383784ca3ff8589a1bb48d19d06fddc78d6120cbc9ad31f275f62f4cce0737b92f8825f5ed0740482819f3fba7826297908bbd44ff00b64ee95d262d60866319c7cf09c3d5b2926ea9d9f068801c8ee0724dac66604b03ac50b18295775fb8b0b215a51fc05bc152a12ab32d44cda758721c5df53f2aeab1b1e3490aa57e630d90c7234b0df1729f62b8f9e4bbfaf293d91a5a0ac46df25f2a6759e39af75e846cc83bd11432f4b1e21a45f31bc85283d11d372f7b19accd1bf6a2635cadbc303536716d62af67b0e49c7cc6a52e84c52e18750b849ead6b6900e069a636e0a7e08bee65774168528938072c536437669c1b7458ac77976ec788e4439c799aeb25cc0373fdee0e1b1db7ad6c2f6a0e058dfadaa3379689f583213190bd0a6d1c1155bdefa8e75433701febc4f1290c458511f3a293d5bda9d77e7df5f869f302f727f83ae7483cabf9e7cff87b886eaa613402118064b5a5403ef67f1aba5080dd83bfbc09c8440ecc3e163b7352073f7428a92facb9dfcd04ba29188ba28e8a608ee322984d897fc7952921b91c872baca0f021cba843b99051745b45c89ca40639d0bb71502306afdbc8646f6ef362b79c54a8f9211aa290ad8b363575fc30ab04aa494f8ab239fba636663b950ccff763bd3b95a3c214ee2344ec89c3df2867edb17d990918ab4630dfc247a6b3a28a50d58d5ef7b2d9e2b712f21c5c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3eecd72f31910a8ee2726fd17bd459be26f230779f3f3ed5f69ebf829e4b12e76850bbe9192697e791e2ee4ef73917aeb1b03e727dff08a1fc8d74f00e4aa812e18e3586389bb4cd01b3f85bb3b622739bde6627f28bba63a020c223ca9cf1b9aeae19e2e4c04f2b04bf030684c4c1db8faf5c8fe3ee03d1e0c409046608b38912adbc4f95eb6d7f2738959cf0ecbc374672fce47e856050a8e9791f457623ac2c7dacf83f51179de8d7980a513e67ab3a08f2c6272bb5946df8fd77c0d1763b7313634da87d9e23f8c3ed9108ce1724d183a39ad072e73e1b3d8cbf646d2d040742f60659d265c1a3c30f9fa42abcbb56bd4a53af4d83d316d6dd7a36903c43e5e395044093757d82afcb138957d06a1ea9361bdcf0b442d06a18a8051af57456a26394f7ede100ca118eff2eda08596275a9839b959c226e15439557a5a80742fe185d11a49676890d47bb783312a0cda5a44c4039214094e7957b4c040ef11c27b8bc90586997cd048aa31c2338ce28ba2404aa76dc36fdca0a52f42c804ebfb5cc5531ba2af1de25def6e3a5e4614b81ebc1c1210b1edb6819a150dc0239474ec930460fdd3bd71bf145004e87438b843f0a7355784e490596ff733a52af8d5586c55f0f287093d0e478fcb4218aa1077a1a322586be9f66daf0b9492ee33e615bd0f054bfcb69a13297edc21b9eeda502dfb38f58ee87df07966f76a1c5027992d4c430d252c122eb2de481e87c3539cd6db958ed279c889441004ae2e0dc8f4dfd1203145669692af0c10ba34c90c768650705f92619cc5a4aa9fc7271d4cb8a3ab557f854b4a33f181ed416aec6514d213f469eced49e4cdb04c7aef8f2b16258ef909242f4068a06ae8c7d3449bf2fe62589f43aba3b9307c143b45cbc0f7f821015cb3014ed07e3cf83ae7e2195f3409e41c1700d0df603e752c8d395a589f492a0ede2180876236e5d20a5186c9815817ab019bd974e698f2c802b8ffb6e34950b0a048467ce916bcebc1960701c3643c4f248c375666563cbeb8c1a7522dd4b1aaa282598a60714a53ef37d485bddfff14a8bbb9db1d38a219d01ee0ebb277c325ee714d506500fe8373af8df033bc233ff1a3c7ce4f7add92de3dda2a82b9bb1aaeca1a66f4704fce9f6bcc1d7a4de4bf78660baa52500027ec2d6ac2c86a32d5a9b42497937e909af11ef649b9c2b774e4ed9c731828f0414c93dee2366515997f40e40774eb1fe74c3a8a4008697859b3449ee2eeb28f6fbd457da95502605f3b4ff72827565ce85da72cd0772c20d9a144a71400b8eca3f5e2ba2a82b9bb1aaeca1a66f4704fce9f6bcc1d7a4de4bf78660baa52500027ec2d6ac2c86a32d5a9b42497937e909af11ef649b9c2b774e4ed9c731828f0414c93dee2366515997f40e40774eb1fe74c3a8a4008697859b3449ee2eeb28f6fbd457da95502605f3b4ff72827565ce85da72cd0772c20d9a144a71400b8eca3f5e2b4dada75ec351baf28465a1b8bd320ad6c59046a6030470910d7c7c85f9bdcd730d9027289ffa5d9f6c8b4e0782bb31bbff2cef5ee3708ccbcb7a22df9128bb2187083882cc6015984eb0411a99d3981817f5dc5c90ba24f0940420c5548d82de0abe8deb334de1ba743b04d0399e99eba336afed9da72fc4c0a302c99f9238c853964478a7c634e8dad34ecc303dd8048d00dce4993906de1bacf67f663486ef2610c860deb3e6039480b859388a3491a1c8f990ab3b92184f0a8010f94985910d9027289ffa5d9f6c8b4e0782bb31bbff2cef5ee3708ccbcb7a22df9128bb2187083882cc6015984eb0411a99d3981817f5dc5c90ba24f0940420c5548d82deda3d940d9c5bbece67dd3ef731740786d49374aea90f33e11805ef4e759c3a4247e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc00854115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac63c67b5260b50a0f434e9b26585479ce67ab2184adc7b31c26d665642d3512835fe8d039d87d8f443d02abb76df25715de53a329a7a35cb58d4767c08a574fbe00f808f0aa32fbe90fb9c9c846917faff3fdd4e236c284b76c02dd33753dc9017742d8fad13bc28fc726775196ec9ab953febf9bde175c5845128361c953fa17f4cfe678a4446900f4081ab8d74ef3d1f8b1002edbf8cae3db292fcca0637310ed108f280badfe5ec5168738c4f70a59bc6ea9d1e9243ff2b951386fb668e935023e61ad44de4625bdd7aa3b1ac8ddad355c919de8a23bd16fb36053901ff23cb9f789abf88b7524a4e550b4e1c28b66fa6e0e55b856064410d9957faee33f04390311f87dc62998c69c986a361460a0c297180d4baaec7c79e9529d10615507dd2c7bf83fd2470cd9cc2b5cc8496ce31de25762325ae8698e05300c02e06c1259605da627ef1af02f8c82ee87905cb862e105253d5bcfe82c1e282a2c9237b8ba171b93823f1a14eebc4049fc42a7bcb71af1a95d1ddd20f6c15bc90fcbbb03f6d17605770865b3da1fddf73a226e7711ba54af4b98d2fc0ea81c8b2fa204229b9b8df0951f241fd22f59826353b74acda5f25bfa0a1e3d233bbcefd431e713f0fe95ad0728edb1ec8deba3e220c486e43aebf0e28c2b3fa850a8550898e661c0ac10493aa357864f920800ebd9f0d6471a57000ab3b68aba8f3af8ffa91945e6eb6f0789be25f5d2f562bb27a83a39631efdc3c94862ff3a61bb23881af8f8a844b64ac2c27937c4e220a1b04365292d277ce040a2bffead9cad4ce7b67affcbd96fc89198f52739bc20c76d2f20a75df8bffab1da8e088dc2da6cddf652b3c1241e09c4085e3f39b2a86dd5e347a4aa786438e2a6b66a58f0256620557fcbe8399ea6022b93d5efcba3496758338055ecf73956a4e3902dfc0853f20fa4fcb032d02bfab70b37421e51648b24188029a7c34e5a84915fde4bb491a26cbbda0b57019eadcaf0ce80197bcddf86fcc6ffee66218f2b730e6c0ecf48ce99f73338f7b53e50e1afbef0b19fc6961a346807bcf57875977fedc781758d8dfc5cc9b5d79c1e4749e169c65504d9622f474aee20df109dbe27ecb5a8ac7a384c781ab50719705074ae6c28cc300f1401cb5291682601858a89963699b2b5ec825358f9a6bcd9ef3be528fe1eab28c381ca766131d3453e5b94b49e9f99b5b9abf28b9c982a6e7e95dc405c4d1ba08cd24a1d022f47ba7f791aafa77e5d065ab4a6adbe46168333004f7dff6bd632f05e2f7b211b86679f31f7965355f14c3f926daa225593f5f1619deae1bce87f09c46f48a4085f1993a00879046c4ef2177056a7675c872e723a662ad29e23e0c221ffdc55ba7c1c841ec0ac6292f1627ae442837d7f2d99786f912358fbd2e4eb455fd9a666c93293c67930456af4fa2bcd1822a937d3e7ae196e1a40f8eb33512530c83e830bc81ab0020e390759a02a885c0b7e49bb31c75ce4f0c5cecc8f9aea96126a0ef883a2a0d4f2ee6ed4c3c99995944edfaf8f077214aac17c473d52c6d219a29908c5fc4ed6d90b243eaf66b1b89c651cd67ecb303f8a3346eca65e40ff34a68de9716293d0d1aa8f647b46744814b9rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython-oslo.utils-4.1.1-150200.8.7.1.src.rpmpython-oslo.utils-doc    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.1ho@^^r @^p^j$@]\7["@Z@Z@Zp^@Z\Z1@Z YV@X@W@WE@W@WzOWQq@V'@V`VwVqR@VO @U@U6@Uc@U@UnUU@UuUKSTTgTZ@T@T@daniel.garcia@suse.comcloud-devel@suse.decloud-devel@suse.decloud-devel@suse.dedmueller@suse.comcloud-devel@suse.decloud-devel@suse.decloud-devel@suse.detbechtold@suse.comdmueller@suse.comcloud-devel@suse.decloud-devel@suse.decloud-devel@suse.decloud-devel@suse.decloud-devel@suse.decloud-devel@suse.detbechtold@suse.comdmueller@suse.comtbechtold@suse.comtbechtold@suse.comtbechtold@suse.comtbechtold@suse.comdmueller@suse.comdmueller@suse.combwiedemann@suse.combwiedemann@suse.comtbechtold@suse.comtbechtold@suse.comtbechtold@suse.comtbechtold@suse.comtbechtold@suse.comdmueller@suse.comdmueller@suse.comtbechtold@suse.comtbechtold@suse.comtbechtold@suse.comtbechtold@suse.comdmueller@suse.comdmueller@suse.comdmueller@suse.com- Add upstream patch CVE-2022-0718.patch to fix incorrect password masking in debug output https://opendev.org/openstack/oslo.utils/commit/6e17ae1f7959c64dfd20a5f67edf422e702426aa (CVE-2022-0718, bsc#1196454)- update to version 4.1.1 - trivial: Move setup code into setUp helper - Switch to Ussuri jobs - Remove universal wheel configuration - tests: Convert remaining tests to mock - tox: Use upper-constraints for docs jobs - Make mask_password case insensitive, and add new patterns - Ignore releasenote cache within git untracked files - Ignore the .eggs directory - Support "qemu-img info" virtual size in QEMU 4.1 and later - reword releasenote for py27 support dropping - Bump the openstackdocstheme extension to 1.20 - tox: Keeping going with docs - Update master for stable/train - Add test to check scientific notation on disk virtual size - Update hacking for Python3 - Use unittest.mock instead of third party mock - remove outdated header - Fix invalid escapes in regular expression strings - tox: Trivial cleanup - imageutils: Report format specific details when using JSON output format - Verify the sanitize keys are lowered - Update the constraints url - Make mask_dict_password case insensitive and add new patterns - Fix regex to correctly recognize scientific notation with QemuImgInfo - Flatten test case - [ussuri][goal] Drop python 2.7 support and testing- update to version 3.41.5 - Fix regex to correctly recognize scientific notation with QemuImgInfo- update to version 3.41.4 - Update .gitreview for stable/train - Support "qemu-img info" virtual size in QEMU 4.1 and later - Make mask_password case insensitive, and add new patterns - Verify the sanitize keys are lowered - Make mask_dict_password case insensitive and add new patterns - Update TOX/UPPER_CONSTRAINTS_FILE for stable/train- switch to python 3.x only client- update to version 3.41.1 - Add Python 3 Train unit tests - Cap Bandit below 1.6.0 and update Sphinx requirement - Add digestmod when using hmac - Dropping the py35 testing - Replace git.openstack.org URLs with opendev.org URLs - eventletutils: Optimise EventletEvent.clear() - OpenDev Migration Patch - Update master for stable/stein - Mask encryption_key_id- update to version 3.40.3 - Update mailinglist from dev to discuss - Fix docstring formatting nit in uuidsentinel - Fix race condition in eventletutils Event - Use template for lower-constraints - Remove extra copy.deepcopy - Fix exception raise at rpdb session - Expose eventlet Event wrapper class - add lib-forward-testing-python3 test job - add python 3.7 unit test job - Remove moxstubout usage - Avoid calling eventlet.event.Event.reset() - Avoid double-setting event - Update reno for stable/rocky - Support non-dict mappings in mask_dict_password - Clean up .gitignore references to personal tools - Update hacking version - UUID sentinel - add python 3.6 unit test job - Don't use monotonic on Python >=3.3 - import zuul job settings from project-config- update to version 3.36.4 - Update reno for stable/queens - Switch to stestr - Imported Translations from Zanata - Add release notes link to README - Replace 'assertFalse(a in b)' with 'assertNotIn(a, b)' - Fix breaking unit tests due to iso8601 changes - Capitalize Oslo - Add private_key to the list of sanitized keys - Fix exception with secretutils - Clean imports in code - Remove stale pip-missing-reqs tox test - Update links in README - Add bindep.txt file to prevent fallback to generic list - Trivial: Update pypi url to new url - Add -W for document build - Handle non-string keys appropriately - eventletutils: Fix behavior discrepency when reusing Events - Clean old output before new doc builds - Document specs_matcher.py functions - set default python to python3 - fix tox python3 overrides - Fix project name in user docs - Remove sphinx settings from setup.cfg - Updated from global requirements - add lower-constraints job - remove 0001-Fix-breaking-unit-tests-due-to-iso8601-changes.patch (upstream)- Switch to stable/queens spec template- add 0001-Fix-breaking-unit-tests-due-to-iso8601-changes.patch- update to version 3.35.0 - Add a mixed mode parser to string_to_bytes- update to version 3.34.0 - Follow the new PTI for document build - Add method validate_integer - improve docstring for last_bytes() - Add method to escape ipv6 ip addresses - Add missing information in docstring of validate_integer - Add method last_bytes in fileutils - Cleanup test-requirements - Updated from global requirements- update to version 3.32.0 - Fix some reST field lists in docstrings - Remove setting of version/release from releasenotes - Updated from global requirements - Avoid tox_install.sh for constraints support- update to version 3.31.0 - Update reno for stable/pike - Imported Translations from Zanata - Prevent deprecation error messages from pkg_resources - Add method to compute a file's checksum to fileutils - Use six.binary_type to point to the right type - Updated from global requirements- update to version 3.28.0 - rearrange existing documentation to fit the new standard layout - Remove log translations - Allow scoped ipv6 addresses - Add missing documentation for secretutils - [Fix gate]Update test requirement - switch from oslosphinx to openstackdocstheme - Update reno for stable/ocata - Remove split conversion to tuple - Adding a check of string type for hmacs - Update URLs in documents according to document migration - Updated from global requirements - Use Sphinx 1.5 warning-is-error- update to version 3.22.0: - Make method import_versioned_module work - Add option to not truncate built-ins - Add method is_valid_ipv6_cidr - Add method is_valid_mac - Show team and repo badges on README - Extend specs matcher to support ">" and "<" - Added the token 'encrypted_key' to mask_password list - doc: Fix docstring of method bool_from_string - Remove discover from test-requirements - Remove references to Python 3.4 - Change assertTrue(isinstance()) by optimal assert - Add __ne__ built-in function - Restore operator - [TrivialFix] Replace 'assertEqual(None, ...)' with 'assertIsNone(...)' - Trivial fixes to the usage doc - Update homepage with developer documentation page - Add missing specs_matcher documentation - Allow 'get_all_class_names' to pass kwargs - Improve eventlet check when selecting Event backend - Add reno for release notes management - Add Constraints support - Add method is_valid_boolstr - Add threading<->eventlet compatible Event - Add utils for validating and splitting quotes - Create dictutils and add 'flatten_dict_to_keypairs' - Add toggle 'dashed' to 'generate_uuid' function - Updated from global requirements- Adjust Requires and BuildRequires- update to 3.16.0: * Fix mask_dict_password for non string/dict type key in dict * More unit tests for specs matcher * Imported Translations from Zanata * Add Python 3.5 classifier and venv * Use an actual well defined parser for spec matching * Remove unused LOG to keep code clean * Updated from global requirements- update 3.15.0: * Add basic docstrings to stopwatch has_started/stopped methods * Make mask_dict_password consistent with mask_password * Updated from global requirements * improve tests for mask_password and mask_dict_password * Simplify boolean expression in executils.py- update to 3.14.0: * Support json format output from qemu command * Fix flake8 issues * Use is_valid_ipv4 in get_ipv6_addr_by_EUI64 * Imported Translations from Zanata * Allow assigning "0" to port * Updated from global requirements * Fix method split_path's docstring 'versionadded' * Updated from global requirements * Updated from global requirements * Avoid catching generic exception * Remove method total_seconds in timeuitls * Fix is_valid_cidr raises TypeError- update to 3.11.0: * Trivial: ignore openstack/common in flake8 exclude list * Move method split_path into oslo.utils * Imported Translations from Zanata * Updated from global requirements * Imported Translations from Zanata * Provide single step check if eventlet is monkey_patched * Add method is_valid_cidr to netutils * Updated from global requirements * Updated from global requirements * Add importutils.import_any method * Add excutils.exception_filter * Explicitly exclude tests from bandit scan * Add CHAPPASSWORD to list of sanitize keys * Enable bandit in gate * Updated from global requirements * Add method check_string_length * Add missing versionchanged for configdrive - use renderspec source service - update spec from upstream- Switch to .spec from rpm-packaging upstream project- update to 3.6.0: * remove bandit.conf- update to 3.5.0: * Updated from global requirements * Narrow mock for getfilesystemencoding * Update translation setup * Add excutils.save_and_reraise_exception force_reraise + capture * Add encodeutils.to_utf8() function * Create secretutils and include 'constant_time_compare' function * Fix coverage * Add a mechanism to mask passwords in dictionaries * Add "configdrive" to the list of keys used by mask_password() * fix fnmatch.filter in non-posix system * fix fileutils ut code random failure * Add missing doc index for imageutils and fnmatch * re-implement thread safe fnmatch * Fix the bug of can't get the desired image info- Update to version 3.2.0 * Remove Babel from requirements * Remove duplicated profiles section from bandit.yaml * Allow get_class_name to accept bound method and class method * deprecate timeutils.total_seconds() * Move imageutils from oslo-incubator to oslo.utils * networkutils: drop python 2.6 support * Remove python 2.6 classifier * Fix wrong bug tracking link * Refactor Port number validation * Add useful 'time_it' decorator 2.8.0- update to 2.8.0: * Fix get_class_name() on Python 3 * Added ICMP 'type' and 'code' checking capability to 'netutils' module * Imported Translations from Zanata * comment in write_to_tempfile * Use versionadded and versionchanged in doc * Write document for each unit of oslo_utils.utils * Fix usage of "deprecated" markup in docstrings * Just use 'exception_to_unicode' to handle exception to string * Add 'secret' to sensitive keys * Fix coverage configuration and execution * Use a stopwatch in 'forever_retry_uncaught_exceptions' * No need for Oslo Incubator Sync * Make forever_retry_uncaught_exceptions handle its own failures * Ensure stopwatch __enter__, __exit__ are in docs * Add some timeutils stop watch examples * Imported Translations from Zanata * Move 'history' -> release notes section * Fix bad acting classes and 'is_bound_method' check * Change ignore-errors to ignore_errors * If 'bool_from_string' provided a boolean just return it * Imported Translations from Zanata * only capture the ImportError when importing * Add 'token' to list of fields to be santized by mask_password- update to 2.5.0: * Updated from global requirements * Imported Translations from Transifex * Updated from global requirements * Updated from global requirements- update to 2.4.0: * Updated from global requirements * Updated from global requirements * flake8 - remove unused rules * Bump monotonic to 0.3 to remove exception catching on import * Provide a common exception caused by base class * Imported Translations from Transifex * Allow access to reflection 'get_members' * Updated from global requirements * Imported Translations from Transifex * Updated from global requirements- Unify spec file #2 - Remove test requirements - Add -doc package- Unify spec file. Use fedora compatible files macros- update to 2.1.0: * Imported Translations from Transifex * Updated from global requirements * Adding checking around the monotonic import * Updated from global requirements * Updated from global requirements * Add oslo.config to test requirements * Remove oslo namespace package * Updated from global requirements - update Requires according to requirements.txt - remove 0001-Disable-deprecation-warning.patch- fix requires- update to 1.9.0: * Updated from global requirements * Imported Translations from Transifex * Add write_to_tempfile back to fileutils * Use monotonic library to avoid finding monotonic time function * Fix exception_to_unicode() for oslo_i18n Message * Add fileutils to oslo_utils * Updated from global requirements * Add tox target to find missing requirements * Updated from global requirements * Updated from global requirements * Switch badges from 'pypip.in' to 'shields.io' * timeutils: fix newer/older comparison with TZ aware datetime * Replace parse_strtime with parse_isotime in older/newer- update to 1.6.0: * Add pytz to requirements * Imported Translations from Transifex * timeutils: utcnow() can return a value with a timezone * Add 'raise_with_cause' chaining helper to excutils * timeutils: deprecate isotime() * timeutils: make marshall timezone aware * Advertise support for Python3.4 / Remove support for Python 3.3 * Updated from global requirements * Add exception_to_unicode() function * Remove run_cross_tests.sh * Imported Translations from Transifex * Move versionutils into place and remove deprecation tools * Denote monotonic import ordering + usage * Add liberty release name to versionutils * Expose opts entry point for version_utils * Switch from oslo.config to oslo_config * Remove oslo.log code and clean up versionutils API * Remove code that moved to oslo.i18n * Enhance versionutils.deprecated to work with classes * Add Kilo release name to versionutils * Allow deprecated decorator to specify no plan for removal * Uncap library requirements for liberty * Add JUNO as a target to versionutils module * Add missing reflection + uuidutils docs * timeutils: avoid passing leap second to datetime * Add pypi download + version badges * Cleanup README.rst and setup.cfg * pep8: fixed multiple violations * Use oslotest instead of common test module * Use hacking import_exceptions for gettextutils._ * fixed typos * Fix violations of H302:import only modules * Adds decorator to deprecate functions and methods * Remove vim header * Add `versionutils` for version compatibility checks * Update hacking setting * Updated from global requirements * Imported Translations from Transifex * Clean up TestIsIPv6Enabled * Fix test_netutils: stop patches * Add a new string to the list of masked patterns * Provide common `fetch_current_thread_functor` function * Imported Translations from Transifex - Adjust Requires according to requirements.txt - Add python_requires to _services- Add 0001-Disable-deprecation-warning.patch- update to 1.4.0: * Add a stopwatch + split for duration(s) * Allow providing a logger to save_and_reraise_exception * Updated from global requirements * Utility API to generate EUI-64 IPv6 address - update Requires- update to version 1.3.0: * Add a eventlet utils helper module * Add microsecond support to iso8601_from_timestamp * Updated from global requirements * Update Oslo imports to remove namespace package * Add TimeFixture * Add microsecond support to timeutils.utcnow_ts() * Make setup.cfg packages include oslo.utils - adjust Requires according to requirements.txt- fix requires- update to 1.2.1: * Return LOCALHOST if no default interface * Improve performance of strutils.mask_password * Move files out of the namespace package * Add method is_valid_port in netutils * Support non-lowercase uuids in is_uuid_like * Add 'secret_uuid' in _SANITIZE_KEYS for strutils * Imported Translations from Transifex * Workflow documentation is now in infra-manual- update to 1.1.0: * Add get_my_ip() * Updated from global requirements * Add 'auth_password' in _SANITIZE_KEYS for strutils * Updated from global requirements * Activate pep8 check that _ is imported * Add uuidutils to oslo.utils * Add pbr to installation requirements * Updated from global requirements * Add is_int_like() function * Hide auth_token and new_pass * Imported Translations from Transifex * Add history/changelog to docs * Imported Translations from Transifex * Support building wheels (PEP-427) * Imported Translations from Transifex * Improve docstrings for IP verification functions * Imported Translations from Transifex * Add ip address validation * Fix how it appears we need to use mock_anything to avoid 'self' errors * Updated from global requirements * Move over a reflection module that taskflow uses * Make safe_encode func case-insensitive * Enable mask_password to handle byte code strings * Updated from global requirementsh04-ch1c 1752141255  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~4.1.1-150200.8.7.1    python-oslo.utils-docLICENSEhtml_sourcescontributorindex.rst.txtindex.rst.txtinstallindex.rst.txtreferencedictutils.rst.txtencodeutils.rst.txteventletutils.rst.txtexcutils.rst.txtfileutils.rst.txtfixture.rst.txtimportutils.rst.txtindex.rst.txtnetutils.rst.txtreflection.rst.txtsecretutils.rst.txtspecs_matcher.rst.txtstrutils.rst.txttimeutils.rst.txtunits.rst.txtuuidutils.rst.txtversionutils.rst.txtuserhistory.rst.txtindex.rst.txttimeutils.rst.txtusage.rst.txt_staticajax-loader.gifbasic.csscomment-bright.pngcomment-close.pngcomment.pngcssbootstrap.cssbootstrap.min.csscombined.cssfont-awesome.cssfont-awesome.min.cssnative.csssearch.cssdoctools.jsdocumentation_options.jsdown-pressed.pngdown.pngfavicon.icofile.pngfontsFontAwesome.otffontawesome-webfont.eotfontawesome-webfont.svgfontawesome-webfont.ttffontawesome-webfont.wofffontawesome-webfont.woff2glyphicons-halflings-regular.eotglyphicons-halflings-regular.svgglyphicons-halflings-regular.ttfglyphicons-halflings-regular.woffglyphicons-halflings-regular.woff2imagesdocslicense.pngsuperuser1.pngsuperuser2.pngsuperuser3.pngsuperuser4.pngfooter-facebook-hover.pngfooter-facebook.pngfooter-linkedin-hover.pngfooter-linkedin.pngfooter-twitter-hover.pngfooter-twitter.pngfooter-youtube-hover.pngfooter-youtube.pngloading.giflogo-full.pnglogo-full.svglogo-vert.pnglogo-vert.svgopenstack-logo-full.pngopenstack-logo-full.svgopenstack-logo-vert.pngopenstack-logo-vert.svgsearch-icon.pngjquery-3.2.1.jsjquery.jsjsbootstrap.jsbootstrap.min.jsdocs.jsjquery-3.2.1.jsjquery-3.2.1.min.jsnavigation.jsminus.pngplus.pngpygments.csssearchtools.jsunderscore-1.3.1.jsunderscore.jsup-pressed.pngup.pngwebsupport.jscontributorindex.htmlgenindex.htmlindex.htmlinstallindex.htmlobjects.invpy-modindex.htmlreferencedictutils.htmlencodeutils.htmleventletutils.htmlexcutils.htmlfileutils.htmlfixture.htmlimportutils.htmlindex.htmlnetutils.htmlreflection.htmlsecretutils.htmlspecs_matcher.htmlstrutils.htmltimeutils.htmlunits.htmluuidutils.htmlversionutils.htmlsearch.htmlsearchindex.jsuserhistory.htmlindex.htmltimeutils.htmlusage.html/usr/share/doc/packages//usr/share/doc/packages/python-oslo.utils-doc//usr/share/doc/packages/python-oslo.utils-doc/html//usr/share/doc/packages/python-oslo.utils-doc/html/_sources//usr/share/doc/packages/python-oslo.utils-doc/html/_sources/contributor//usr/share/doc/packages/python-oslo.utils-doc/html/_sources/install//usr/share/doc/packages/python-oslo.utils-doc/html/_sources/reference//usr/share/doc/packages/python-oslo.utils-doc/html/_sources/user//usr/share/doc/packages/python-oslo.utils-doc/html/_static//usr/share/doc/packages/python-oslo.utils-doc/html/_static/css//usr/share/doc/packages/python-oslo.utils-doc/html/_static/fonts//usr/share/doc/packages/python-oslo.utils-doc/html/_static/images//usr/share/doc/packages/python-oslo.utils-doc/html/_static/images/docs//usr/share/doc/packages/python-oslo.utils-doc/html/_static/js//usr/share/doc/packages/python-oslo.utils-doc/html/contributor//usr/share/doc/packages/python-oslo.utils-doc/html/install//usr/share/doc/packages/python-oslo.utils-doc/html/reference//usr/share/doc/packages/python-oslo.utils-doc/html/user/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:39639/SUSE_SLE-15-SP2_Update/b8cb2b248e48fd0d122e6acf73bfa8b9-python-oslo.utils.SUSE_SLE-15-SP2_Updatedrpmxz5noarch-suse-linux      directoryASCII textGIF image data, version 89a, 16 x 16PNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedASCII text, with very long linestroff or preprocessor input, ASCII text, with very long linestroff or preprocessor input, ASCII textPNG image data, 16 x 16, 8-bit gray+alpha, non-interlacedPNG image data, 32 x 32, 8-bit colormap, non-interlacedOpenType font dataEmbedded OpenType (EOT), FontAwesome familySVG Scalable Vector Graphics imageTrueType Font data, 14 tables, 1st "FFTM", 17 names, Microsoft, language 0x409, Copyright Dave Gandy 2016. All rights reserved.FontAwesomeRegularFONTLAB:OTFEXPORTFontAwesome RWeb Open Font Format, TrueType, length 90412, version 1.0Web Open Font Format (Version 2), TrueType, length 71896, version 4.393TrueType Font data, 15 tables, 1st "FFTM", 16 names, Macintosh, type 19 string, www.glyphicons.comWeb Open Font Format, TrueType, length 23424, version 1.0Web Open Font Format (Version 2), TrueType, length 18028, version 1.589PNG image data, 88 x 31, 8-bit/color RGBA, non-interlacedPNG image data, 210 x 367, 8-bit/color RGBA, non-interlacedPNG image data, 40 x 40, 8-bit/color RGBA, non-interlacedPNG image data, 135 x 35, 8-bit/color RGBA, non-interlacedPNG image data, 59 x 54, 8-bit/color RGBA, non-interlacedPNG image data, 15 x 11, 8-bit/color RGBA, non-interlacedPNG image data, 11 x 11, 8-bit grayscale, non-interlacedHTML document, UTF-8 Unicode textHTML document, UTF-8 Unicode text, with very long linesASCII text, with very long lines, with no line terminatorsJ TG޸r{*utf-844b3516d59d7de860158abc6316f7d6bda2ece708b1abf149d2addaca3f70788?P7zXZ !t/ᾞL]"k%a JߴIvPUiGKԶ^ o@Y_[Ƌf7H*"|yQpZch46Bj/nVoV|(w2u5}We0[7f]xM ܞTeԯT JMw@ǧ`b9ŠxY&kud@E7@;Xd|5<*[ K_c,>cuXC-nMC.4Ix!6d7zAl7t(M{ 4J C[Ǖ^2!N΃P#TBi\޺hMΫ ױ;컬*L"R8A-d JD<ڎ]v ?Rjx%w,%^ҹ4aF>l4Zz'xyzWLXN;u\ #Y0HZKAwtr4(῿[cPg ,6Ejas_z㭤^({؉\#h &vt;8sn yZ\Xi c93]\2Ulńm. eu.!QOw[ЁAx2y<5.HKګk̨O#SR'NSΎAyUwRZY uK pn~Y35^ UM!̢Q %S.IYQR]7k"bF=4SqB}L%!}[ry#BkT?-Ѹ;g-$$?c6S_NS VD1y3$UER(~hpř U$gۭL-EX- l{O ԏ0&"Bv5ꨱqfCV x#\VCFo_5զT\ D0P58Z,.#6~pE(z5-!t+{yEh,“Z.tMd&P[&6WJZމ3΀hVb$1hNƥwdWm|c(`iI_Ke]p-?\%IgSe;|,)Td}I_'>vf6}Cړ[(L3u]R%z}v~a7,P7t!mӢbƦ燉{Knv&< ##)+a\`W\9!􁵪dGj{"7dI>W+jᘳwȒd ~GE-5K)lo2 Aah݊)mfB4u+V-=L|/I8EdUiGk@Gwqsf1Pu|C<^f&{RZFoV$eӆcxsJWOiREa^T`v[űiwi_yb9My,m$_ksX̞9v٫y~mnc./pݖڨWX13#\Z7KӦ^:Q` )$PXjOa5:Ľ$*\l_k(TljSb% xJNXslhbƩZaІ^GFt@kA٪ڑ@)V<&呲@=Ly,? Pc*v-0JKQIH yh ;nyf ZZ4?⩪1Xԇ(uu%U] ռgEvj)C6U+#Izv[h#8C-0ʘm:\:>6'c,ܛa ė;Y`:%EO! ͭٺ Dz}+ŐLq%h;oiԷlvωwJ0umV BN) Qƌ~Ն#[3)S$jM}q  h }˵xwHvdC5N6'O3s|RoOSD0zٲģq \مkȉT/?ҤG6_+~y[TO0,@ B\P~LHH|HB}}Ss ʙw!4-T)X&C{V_m>]oƛ:#SnٝQvQ,{3E}{ ^5.;W|Sz.GȎΣviDm/@h ,w΄?&_\]'UHlYD3q.)Tzǣo.Ri3=-Tf_!KL\6x5=(eƷ&鷫6p1SIzV)j̽) [G0^("L`:#:] IJ_[WhDl8r.SBu1cE_\!}e.ƥ=Lv_AKUޒA GHw4ȩ]nvX F&XR8ZNqOeU~_AMc|; sJ5[W[N4*5,`*yÝN]x~.KB;uF ԆiV+Yy#K̜rE"-B-C1O[aÖҞa*yo!kvnDq^uk$mu KZBl-vx%0̎l^к^Yl\P"@]ቨt|q,"fU]&y@2 K.H1ḧ́/3< TML>a7?IpF6JSm[M>)5f\bѮD{ruMл*kwhY39eaf+K+7JP܉Z5_ p]amгd8\k yAhLX8 \otAt+I9 P;(pfO üs$I VE'c.ht"`m0;)kyš8F9_.2 2 F2R^[rNp |ϩ{@OU~~>_KY|kzJ>ښ[9gxα}SBg wb!j3@S53>rJh_̯e|tW{058]dYK*B eh;8]"1Vi``5p斪- ŹuLZxnN, S~gՅnig6Z#`ɹ,wΗM!יzu>/Ca' 8wHr|iVpT6 {3h1z3j>8.^oPfZ:ނɐp;^e/Mb<3#πVUt+׳/}IMfj#g)(SDr4Ы$sbxY4}A$yW@Q7nj:&E;KťwJV飧 >c6灙M,0s!*? cL  dJp "dFe~ xI*BRgX((>ӨQQ|)n@[߉s7(>8S쐱 .{5\U^ʐDZ8z3|uW]#@ͣ;4J,ReAMcJѭ|kQklSIXgܮ3;*@kKD6R1sggyX1sR5X4kjMMq1z2 #'gk]@)~dY0`.t&dgV1,wH,P瞚ybS4 t,(Q"Hj:&akFiDPI y4ZPCX fY^:+AlPpa&/?9-)qL_z,2, 0@Ar4|7fo*qS+Nv|0 !Sp~o3u j ҅pћyv<@x*Wlv;ĈX 7\ExgvnHf(<5(yP} vxm7PIgMv%g]LAh>UaE"[S#!捸ȳ7r WfwDK`hJEUkZ] ฾" 1A2`jB/a5誁+%PiuίpZc[w1z`K#ʂC`͠ ܊~WqM`}'g8qtsΞNi^K ^}=,LjF^:i`C|J\rK  p!Q_zaehh ) Dj?b:9*vʿ3%{J'=5g_ue1*@b^&zvV 8S+iCgл|*f;0%BZ;tV+9uNꢶMU/$>뚽q&L .%#f>ۇvH*`a>v$AZ=1ᄰʺSb|Cwƃ|)*!0j1Nm4U8"ء9SU%"n! y_ݕ{5SΖ%b%+U[2f~; wk5G!֞&G Jtr1{K0Pex?Ѱ0C]Ә4.Jd όR9Y_u/,eQ~B`TֈZ7ȳ<1{P^.ڬ̝Ko$ b:G>KB%vy|ZT\snA_G#qG?A n˜6Хu[I@g k%&8ů'wֵL;+ί";lYT _6VPULg.')ROpFb#iRTً˼9Ő~GFc9mK{ܻ!]ejswptjAFhDT5-gMk]  4 a}Ah/]f)qhWGJ:#전_ġ ۝Iͻ槇N*ʺz8ȮXS#cI!蛫RH:tQ0-lONl5ş!/B&QaGojl]\0XGwP&=Ash=XpU⥱r>ߋ™E@ %Ξ+ycL24dF= 2>p#CjoYE*ւd,;4$.q9X>* 6|skL*Q&z"wϩ?ةD)pX` ō9f 镺Y^8jcօF.*툄|ޛO2e/Gi%\  u{SƕZ.Dӻm3njh`Z:bR?@d2H~A@F6kU= ģSꃗ jFud\Lͷqx ;RTr3:۱Le ʸBf ̘vY*ȋ*f s;KtJ%y,`ǍiSբ ֦J:'[DrBweH}1y[JZ{Yg\)Wޙ\-gz^X􈜮.@=2OMKŒ iw5K3)p>NL9 -BBhvuA:&[PZ"hn|._71-zБ 0-P$0nLTT)-{qWxy~?<_|aj;cK喕xTn;֘|׏X 4ػ~3m 2MmₗC#!嵁H$kveArkG_ŗq4P( Okr¼@]󾎪i?tŁVcBh {n[N= f&" ~t$bDv՝ߥCE0c7,"xC} A@ "{> EHuBzBT&1:\a;lr^)֛'e_[ıaTLT>1d#.9 oL;PkKgty-QkR^%"n]'R,Gv8}OdA%Nu1lҡ?b Lc> k9e{C(qjMCvfNrXce+S7ՈŵK}Fϐ h|kju lT}t'hgʃ?IO=- Crܽe\éU?^Lf~Ŋ( wXe;qWD.'ZA(SrK>Gv֍J@ oM#X"T} Tv̆rua xm2jg>|nt ً ⸀]]kpmoDmav^rPHe/!mʰ\\ƷAA=.)*Zz hM4u $Cp"s[kgX{q:ut/&W:+h[-:QN6D]1^t ϊny1sp5ݦR8** ӡH\➄R?( RWuwjTܠkwNhkP=G֨&JvPF?=YZ솱4{!1}a`3% =bL+"Xyz6i9uU=Hz}vOizޞHjlr,I~Tq:ݨ/F15eyH=6ZG^ acWqVj0j7 fuCѳx*jU_,~xQ@ZD-C+RkGⴇiSa5}19 ] SX[#5N V]Ӏ&hZB@#)JPz]0HQwVށkD{w2O趚+@y{ >aam2Sl~6md`O'^\ϯGc_aKb"tיt;(,RfClg1m!1 ~KyXmU ܪp ];ލ؅fXv 6|So G(VQ0Lԟ+kk]m#vwu`Vgs&T_m(]Js*ðJwᝋ:m  |:8 Nr r*t/W7S3  "BK! #6 Jߧk1e(RLS5$h)8?І G6s`g2ZD;wjCY0!:YsvbZxUQ8OO$vTpWA [̘CRym8_zm%TX;73^gno=mA ;zHb13qRa҂~Yj׽veZ2:K}7D`f? oqd&ہf7*KA sue2 fإ;eZ^BΣ g| 8Mv/0U#~)iNQ('&87icM~DCDh^|goӁbЌykG);l #LtNQN-0KU7'rغTQk)*XG2𡺔-_%x]ɥ@{'YYy6FӬdT9淛%3ȝZ+ПUtF=}"cگ+qw\<: [O1b l!i[ȓ~Ǽi0~7 De9c`,, @r8tEXj"2!1?FQ5!Gk1}񳬲Q ӱ/c8X؅$*((%?.m-g9ڞ3 SҔ5Ll|PsA;:o[x+Gd"RܠmjaB.ɜCtmW5߄V$kwN]x{KVؽ9srue o۽XF3y'hm_>ivREj5ō4` kS.3z'5 Ŀ7T[\-9^cqr Ʊwe /M6H7GZ#t8ѶoMEvU> Ղf`d^2{`dcӷwYvϷ4$Z ph0k8AEk\B X(9P`# ^R&k] luyHp b{,%)!߄L  KZt[ P+4WDyTvf^mWzfS^ajՕJO<|Ҍ33wc_w닄Jt#0HV{}ۄ@gk\n$o3>1E³A13Mrm!9$ [Px8B荒r! R ƽ[Vn9ls; `F^6P9>&"7zm}=w$⯮Az{nXy\ZOP)\*ڊaD$r#A_MN]@Gӎ[VyZԹu ~X9Ȇ,sq%YﺛC Ew;Y]>d| &;y`@2 r =1MnW!k>|/\0e A#3J^txâ`~%ek/Zb{/о3dI@br gB)Nj\LDEOMr9*QхY6dwwV0iYRPf"pCƿ+!G %3THBF"X]^pg7XUN-VC.!#-U2 N$k!q'>Tz(qYaE{W_ϔKJIto|͗y95IGD^w؅%0+$ )oUX p_KcLD"mT]uiQc>x8P  tg#Hn^2ĵn+щV֠j LAȸ¨+ފ 3b]7;rQMIݧO MKBjUmcMj  @Zجr `+p&=2YSy/-WH^\M gMzLj~ªZMT_ dnP6/l9r)u|x>yE51ոg{_- QpcŹo)}gtZ!<2uc5Ʌ-FѮ/_z)24=ΖQEޜcC+G|IJbuHՋ(uڲ$G_|9ewAï›ob\B+ 8^vbJmZ&<gW+>RZ؝6S31>^D$ӏ鷇TÑٿ?R֍$O MRh3+;^Ǣmfi|5fJ%hBJ<($sSh|BjiN&ǜ.{zQOVŮ嵧 gD4ko1MDH]M!wF+u4CZՎY3pz_310~}ƥՍF[;xau0xKd\g;x&qWϼZ\ #'m'o*׹/sgiI@h\4&>t G!݃9N4y<'XaQkقҐgހqwoS:sDjW3/ e6mo ׂ"73Ɣ|.;#>,ًDq_*;R%FpH%FKCvv"6^+(+<@۫aޓ`-oC2rks*ڵT$3TsT $9E]85i9pPP5yؤpi/1,+ʈ;ot6!s 2 ʋ?B2:/in*BE,;7#(+ [ܥj}"ʨĹĎ۱R ^ݪQ `'Px?ЩZPXmɜ@;ct6ޭ묉TC,U"[l-%~9ϲ.~8ԨF(VГ#vg:;SnU\H3&њoSK69FD3! <νcoۦy:\fb6:@@FÀe}a1pX0n/Qeǥ#t8?q9E8agJwAz#3K<)Ar?AϜo>9k;؉뽊> jS>SLRS,d{$>$,pnjX(X~hr}8feŒIm #dAWVema4+sQ?n!iPEэ)a0<>'`䐗nLa1}J2;^ƃ-KL$}WxgALrgR2[6IƑ{7R|B~cn'%0o7a,ukWS{6k*1<?X~z͞+l y8"w2Kpxߏۊ6 񳔡BԃH,D<ʼ9*=/3O_}BYA:"FrhlZ"E}(\%ZrzHIxZHmCu3@Mo;GP ~ҝ6Dy:yKñjY yTORęzI? @uwD.?vNυ~ G} up"=V)4puV`JK͉U$o2aDhS4RTC0 G9pmã8P]'6}TެȩDu-P .EIMY{Ee {kXZCNr3ݏ`b VQK*?έSȾ]Vz;W fThl'^aKDW(" uQb ӑ)nTM_P׆ Qri&kȋuc݌փe3Hf@K_I\trns,V :gjjkgAD^^X8M&(-r4bVp9߯+`Ado?bƨwT9A/Pg (迠0 +tC+E/i1 Lb]V;]9#{u:'})|qD$D"1kқ"9)vtw?/+\e#uTC&-&Sl FlUy[sߏ;Gl%#]][ަ\صy:7ȱ\&@sƈHZ!I"Sf2 }^Oo\ݯ+A͗vr&zzLkO]'NL؃qH6`K/*y/U2 05)@&AX=tE9}Rfp ?O5B9oS; +te>x?ZD,S4#Blofcuj-,8Ϣ@i~In/ 03`W7 wڬj;du},d)AGm]]V07 xɲ?, YHgtPo93݀P4Wy,.֓sE=#Z2 ;7HѿLۂJ[K|~o\kKO $1ߚ܇@?4S-uT`SIS#ݣEi-RˏT/zd{y bs .qas- iX/TWn J,QV߃SI‚uqٖ I)J:a_}~0ݾEXɘJ0G@ԃ %--Ǥ6`. wāЪys3,LH>- n?f"63NqU'71B2~MDh~_. l2i >:: Ju=gN+1C濢8eNc`սG8nIRԾւXU3z~Q̃9v879>݌^E}_*Bn#nU)<+ǂi,B;|l;/eB,-ܣ,C5"ju/OkE?&"W9˺Ry۶h5;ܸ^Ƶ1xz b$D|P  8 !izs[%p~1v4vֵq2=wIq"䙥<[d&9q3jhmVaij.}E%Qf~{u$1:X`'Xօy/mnJLvMou|>)fM.9xZߣ ueygJkVY0*}7 NI17apb1u 2@OM#+G'u.>JUV$&(UpՃ}E3:x8oj`:yVoZz먅)3Tp5VV\A~0j` Z!;Pz "oD":5nϖSk!6T VlRco