From f9def65ea3a9f40b5709424a3f56a75f771034ed Mon Sep 17 00:00:00 2001 From: Jim Edwards Date: Fri, 14 Jun 2019 07:50:02 -0600 Subject: [PATCH] Squashed 'src/externals/pio2/' changes from 0f241db..6f0afaa 6f0afaa Merge pull request #1496 from NCAR/ejh_next_version 67253c0 changed versions 7f1ae08 changed versions bc7091a changed versions 539b7ea Merge pull request #1495 from NCAR/ejh_release b323420 merged changes from master 12bee91 Merge pull request #1493 from NCAR/ejh_docs_fix 7942185 changed version numbers 7f16cf0 fixed fortran decomp docs ae8b174 Merge pull request #1491 from NCAR/ejh_logging 337d32a fix error handling b6522c4 now pio_init_logging() checks are returns error codes c2d8426 now pio_init_logging() checks are returns error codes a2897a0 now pio_init_logging() checks are returns error codes 2af631f Merge pull request #1489 from NCAR/ejh_mpe 9924038 whitespace cleanup bab1c80 added MPE to test_perf2.c 513190a Merge pull request #1486 from NCAR/ejh_isolate_gptl 0cc7164 no longer delete docs directory a8412c2 isolating GPTL calls 4f814ad Merge pull request #1481 from NCAR/ejh_cleanup_2 e0b1d8a fixing CDF5 issue 7b54b3e cleanup of comments in pio_types.F90 03a2580 more cleanup for pio_types.F90 826de45 more cleanup for pio_types.F90 e4cada7 starting to clean up pio_types.F90 0bf6599 Merge pull request #1479 from NCAR/ejh_cleanup 31a3ca0 whitespace cleanup de73965 fixed problem attempting to remove docs directory 96bc111 Merge pull request #1476 from NCAR/ejh_even_more_docs_2 e5190c8 Merge branch 'master' into ejh_even_more_docs_2 cf2c4a7 Merge pull request #1475 from NCAR/ejh_even_more_docs 6a239a4 Merge branch 'master' into ejh_even_more_docs f754949 Merge pull request #1472 from jedwards4b/jedwards/strnlen_fix c77ceac Merge branch 'master' into jedwards/strnlen_fix c370336 removed unneeded prototype for removed function 4b7a1fa putting vard functions in appropriate place in docs df1218b separated put functions into category by var/vara/var1/vars/vard for documentation 030e7d4 response to review 6de0e94 separated get functions into category by var/vara/var1/vars/vard for documentation 42a43de removed unused functions 2d3528b Merge pull request #1470 from NCAR/ejh_vard_functions 5aeae4e clean up daac77e redo cmake change e69191d fix warning in intel19 strnlen implicit 4819d30 adding tests for void * versions of vard functions e49c2b9 added rest of netcdf-4 atomic types b7aad13 adding more netcdf-4 atomic types to test f213355 adding netcdf-4 UBYTE type to test d83ca72 starting to add netcdf-4 atomic type tests f85ff96 test development 6618962 test development 341d753 moving iotype for loop f5b5d56 moving iotype for loop e98dff3 more tests, fixing char type bc03efa adding more testing, fixing some type stuff 44030a2 starting to add netcdf4 types 86f8a17 adding types 9f2a33a adding types 586b09c cleanup 8114b34 cleanup b6ea1d4 working on vard test 328afad working on vard test 2ec36c71 adding vard testing aa26496 disallow type conversion in vard reads (for now) b280e4a disallow type conversion in vard writes (for now) 9f84247 trying to fix cmake build f33f309 further work on vard functions c2a24fb more work on vard functions ee5c7ed starting to add vard functions f96b039 Merge pull request #1466 from NCAR/ejh_new_free_iosystem ac9612b Merge branch 'master' into ejh_new_free_iosystem 56cd15b Merge pull request #1468 from NCAR/ejh_memcheck_removal 3a4af14 removed home-rolled memory checking code d392ff9 changed examples to PIOc_free_iosystem() 9132d9f changed tests to PIOc_free_iosystem() f3840b4 documentation changes de57f08 moving function code for PIOc_free_iosystem() 5b652fb added PIOc_free_iosystem() ba3e18d Merge pull request #1465 from NCAR/ejh_doc_diagrams 8f79b6e fixed diagram in Makefile.am 76de3e1 more diagrams 6112687 adding diagrams, fixing diagrams 9b921fe more documentation improvements 09feb0e Merge pull request #1464 from NCAR/ejh_more_docs_6 9b12c1c gettng closer! e901b40 more documentation changes 866608a more documentation changes 7ba0816 Merge pull request #1462 from NCAR/ejh_more_docs_4 ce207c5 Merge branch 'master' into ejh_more_docs_4 bb52636 more doc work fe7b080 Merge pull request #1460 from NCAR/ejh_more_docs_3 f608641 moved more defgroups to beginning of file 9bccea5 moved defgroups to top of file 9f327b3 more documentation changes fe90e61 more docs work ad98a0b more docs work d282ec2 more docs work 1a1925d more docs work 54db8b2 more documentation work f9faae9 Merge pull request #1458 from NCAR/ejh_more_docs 5167124 more fortran doc changes f1b72e1 fortran documentation changes 8cc123f fortran documentation cleanup 7cffdfd Merge pull request #1454 from NCAR/ejh_even_more_docs 3765d09 more changes 81b60cc more documentation changes 0dc2f14 adding breif descriptions to defgroups 48702cd Merge pull request #1452 from NCAR/ejh_more_docs_2 9932f6e clean up error handling page f598b73 added iosystem.txt 1465335 Merge pull request #1451 from NCAR/ejh_more_docs 8b24763 adding users_guide.txt 37144d9 more documentation changes 11f4828 more documentation work 54c4530 documentation work e48b9f9 Merge pull request #1450 from NCAR/ejh_doc_images a7a576a added image 35561dd centralized COPYRIGHT notice b03bee5 adding images directory 281cf23 Merge pull request #1449 from NCAR/ejh_no_more_docs_folder 4fa0e85 removed docs cb379e9 Merge pull request #1448 from NCAR/ejh_check_developer_docs_in_travis 7e9209f changed --enable-docs to --enable-developer-docs 167d331 Merge pull request #1447 from NCAR/ejh_try_3 5188bc5 documentation fix for --enable-developer-docs abb1339 Merge pull request #1446 from NCAR/ejh_again ad5f1f1 added graphviz, working on fortranfree format thing 9be9905 moved more deprecated tags, working on fortranfree format thing 1949bb9 moved deprecated tag 4f9327e map f90 to FortranFree for doxygen cfc738d map f90 to FortranFree for doxygen 332199d added doxygen 4ee91b5 now building doc 61667d2 trying to find netcdf.inc 025e7aa trusty does not let me install libnetcdff-dev 66fa92d switched back to trusty 893b9f0 adding libnetcdff-dev to travis 473c69a turning off cmake build of examples/f03 3491e45 switched to xenial dist f833104 change to trigger CI 08d0dbc Merge pull request #1445 from NCAR/ejh_test 09f7a51 fixed Makefile.am in doc/source 548170d change to trigger CI 74153a0 finished separating C API from Fortran API d28b7aa more C API documentation 828cc91 more C API documentation 31ec493 C file operations df2524b starting separate manual for C/Fortran e2a58a2 change to trigger CI 04234a4 Merge pull request #1441 from NCAR/ejh_docs_8 fafbaea Merge branch 'master' into ejh_docs_8 56c19ba Merge pull request #1440 from NCAR/ejh_docs_7 bb15b50 cause make check to build documentation and check for warnings 22ebc9f fixed last of dixygen warnings, now documentation build fails if there are warnings 2103f65 Merge branch 'master' into ejh_docs_7 6b4dcc2 fixed documentation error c6a2a3e merged ejh_docs_7 561eb3d preprocessing F90 files for doxygen 615e4c8 more documentation fixes b5e97d5 more documentation fixes 29cac1e Merge pull request #1439 from NCAR/ejh_docs_6 cd4b080 Merge branch 'master' into ejh_docs_6 2c20802 Merge pull request #1438 from NCAR/ejh_docs_5 596ee10 more documentation fixes 6dd156c merged ejh_docs_5 298090c Merge pull request #1435 from NCAR/ejh_docs_4 d6acd33 more documentation fixes 05e3081 more documentation improvements 26b530f added --enable-developer-docs option to configure dc60db6 last of doxygen warnings for C library 527b999 documentation fixes 52ac338 Merge pull request #1434 from NCAR/ejh_docs_3 883f2d0 removed unused prototype 361d809 removed unused prototype ad1bac6 documentation imrprovements 60417c2 more documentation improvements 5756c8e more documentation fixes cb942bb documentation improvement bf1c58c Merge pull request #1433 from NCAR/ejh_docs_2 fdfeecd Merge branch 'master' into ejh_docs_2 b0483f2 Merge pull request #1432 from NCAR/ejh_docs 977095f more documentation d80d0d6 more documentation fixes 5db51a6 fixing documentation d22a00c more documentation and warning fixes 6fe3aed documentation fixes 5551321 documentation fixes a91e4f3 Merge pull request #1430 from NCAR/ejh_genf90_2 966279a cleanup 643234f now generating F90 files from .in files with genf90.pl 62b859f now generating F90 files from .in files with genf90.pl 81aedfa Merge pull request #1429 from NCAR/ejh_genf90 74d7c47 added genf90.pl 917827d now generate pionfatt_mod.F90 from pionfatt_mod.F90.in in autotools build 5653a48 now generate pionfatt_mod.F90 from pionfatt_mod.F90.in in autotools build 4fdfef2 now generate pionfatt_mod.F90 from pionfatt_mod.F90.in in autotools build b813b60 now generate pionfatt_mod.F90 from pionfatt_mod.F90.in in autotools build e7ea53f removed genf90.pl dea5c70 added scripts directory 37be328 Merge pull request #1428 from NCAR/ejh_perf_5 70bff1d changed size of data to fit memory 514988d make writes really async? 3cb4c6b merged master 2c5ef5a Merge pull request #1426 from NCAR/ejh_more_changes_from_PR a3495e7 combined check_mpi() and check_mpi2() dd4fbbb perf program changes af3cab2 Merge pull request #1419 from NCAR/ejh_max_name b1d38e3 changes as suggested by Jayesh 9e6115f changes as suggested by Jayesh 230fadd Merge pull request #1416 from NCAR/ejh_perf_4 7c58bf2 added development to version 7b05637 perf test development a75df83 perf test development a074378 perf test development fd16161 perf test development adf2b3e perf test development e70aed5 made data smaller 0c40d0b changed comment 4a57b6c Merge pull request #1415 from NCAR/ejh_perf_3 98ee55a more perf test development 618833c adding async perf test 624ca79 adding async perf test 229d05d adding async perf test 84634cd adding async perf test 36b0e33 adding async perf test f265ff8 adding async perf test ffad703 adding async perf test 3e333c9 adding async perf test 21229d9 Merge pull request #1414 from wkliao/fix_my_proc_list c84b201 Merge pull request #1412 from NCAR/ejh_lt_init 82f1b7e bug fix: allocate my_proc_list after checking component_count cb217dc changed AC_PROG_LIBTOOL to LT_INIT bd08dcc Merge pull request #1405 from NCAR/ejh_perf_2 29ff099 turned on test_async_manyproc f7cafe7 made pioperf run faster b15f88a more changes to test_perf2.c 991f34b changes to test_perf2 1ab5839 changes to test_perf2 4045cd5 changes to test_perf2 eb49aa9 changes to test_perf2 72ce726 Merge pull request #1404 from NCAR/ejh_docs1 e680dcb modified doxyfile to include all C source 6005e85 doc fixes, performance program fixes 70518f4 Merge pull request #1403 from NCAR/ejh_docs1 59b88bc fixed warning 0f9122e fixe codacity warning 080fe0a fixed codacy warnings cbf0a48 returned docs directory f395aa9 changed example 6d7a936 more doc fixes 5030bf3 more doc fixes 3f0112f updated README 4e1897e fixed docs 7d33589 fixed docs a4be8eb Merge pull request #1400 from NCAR/ejh_test 7d4f6eb updated docs for github pages af8adf0 change to trigger CI 1ff5c4e updating version info for new release 748255b update cdash builds to use master not develop cf1764e Merge pull request #1397 from NCAR/ejh_turn_off_tests 1640c98 allow tests to be built but not run a29460e Merge pull request #1395 from NCAR/ejh_perf_doc 8976ba8 cleaned up docs 0b2d445 more work on getting pioperformance working on theia 9b8bafb bumped version and also added more doc for pioperformance e207ef0 improved pioperf documentation ca6b558 automated test for pioperformance a8905ee more work on pioperformance cd22cf4 adding some documentation 94e2405 Merge pull request #1388 from jedwards4b/box_optimization 077be41 clean up 63717b2 Merge pull request #1393 from NCAR/ejh_pioperformance cce2306 fixing HAVE_PAPI automake conditional 08de2ed now getting pioperfornace to build! b5c31df more work on pioperformance 93d0298 more progress on pioperformance ba3e0d6 adding timing to autotools build 9cab9b2 fix spelling error in comment ed840ec Adding "inline" to idx_to_dim_list() and coord_to_lindex() 1228cb7 Optimizing box_rearrange_create on index conversion deb68f1 optimizing some code 44c8819 correct expected result ee2ed3e optimizing some code a936f8f Merge pull request #1391 from jedwards4b/msg_overwrite_fix db941b1 rephrase for clarity fe72532 need unique space for each message sender 3b570ff switch cmake build to use malloc not bget by default a5b9293 Merge pull request #1387 from NCAR/ejh_version 73a20fb Merge branch 'master' into ejh_version d250ef2 Merge pull request #1385 from NCAR/ejh_autotools_docs 162d119 changed version 496d343 Merge pull request #1386 from NCAR/ejh_perf 3f28eed changes 8ba35c2 changs to performance measuring program e723238 now build docs for autotools build 2402895 more work on performance program 3598cb5 changes in test_perf2 2882bb9 Merge pull request #1383 from NCAR/ejh_more_codacy 5f5ce5d Merge pull request #1382 from NCAR/ejh_next 9b2ffde fixed more codacy warnings cf96820 more codacy fixes 04c33a0 fixed more codacy warnings 9027cff fixed more codacy warnings 5ebede5 fixed some codacy warnings e6e14df fixed some codacy warnings 93b963d more codacy warnings 55165df fix for codacy warning 5a9c0ef Merge pull request #1379 from NCAR/ejh_next_fix_3 8a095f1 Merge pull request #1381 from NCAR/ejh_perf2 8cd99d9 moved memory use from stack to heap 4c67551 moved memory use from stack to heap 65202a2 working on performance test 437541a more codacy fixes c13e689 more codacy fixes 2c58077 more codacy warning fixes 0eff1f1 fixed codacy warnings 0f52ba4 fixed codacy warnings in test_decomp_frame.c 5c1fa0e Merge pull request #1378 from NCAR/ejh_fortran_build b0b28e8 Merge pull request #1377 from NCAR/ejh_fix_codacy 00212e5 fixed run_test scripts f7921f8 trying to fix codacy warning 249246f added tests/general *.in files to EXTRA_DIST e0501c3 fixed Makefile.am typo 0c22124 fixing missing pio_tutil.F90 file 5e1eef0 readded tests/general/util/Makefile.am e334e14 readded tests/general/util/Makefile.am 1c0464b now generating F90 files in tests/general 90130cb fixes for make distcheck build with --enable-fortran 7605f58 fixing use of tests/unit/input.nl with distcheck b77dad0 fixing use of tests/unit/input.nl with distcheck 0cf92fb fixing use of tests/unit/input.nl with distcheck ce7416e added FCFLAGS to travis 58fccb6 turning on --enable-fortran in DISTCHECK_CONFIGURE_FLAGS for travis 956f28f now move pio_tutil to tests/general dir during configure 5ed762b working on fortran tests 0d53ff7 working on fortran tests 729d7fa merged master a59ab5e fixed codacy warning in pioc_support.c 6f5ecda fixing codacy warning in test_rearr.c dd0e973 fixing codacy warning in test_rearr.c 0725be7 Merge pull request #1376 from NCAR/ejh_next_fix_2 feae14a Merge pull request #1375 from NCAR/ejh_next_fix 71d46ce working on fortran autotools build 3f65d1b turning off parallel build in test/general 654da51 turning off parallel build in test/unit b26d031 fixing fortran build in autotools d497232 added tests/general/util/Makefile.am f301384 added fortran to travis autotools build 9153947 fixing fortran tests in autotools build d6b257e more fortran tests e8b3350 more fortran tests in autotools build 654bcb7 working on fortran tests in autotools build dbaa196 getting fortran tests working 00524dc more work on fortran tests in autotools 112804c working on general fortran tests f6b85f6 getting fortran tests working b5054f6 getting fortran tests working d01847e merged master eed88a7 fixed memory leak on error warning from codacy ed7a0ee fixed memory leak on error warning from codacy b9259f3 fixed use of uninitialized variable in topology.c f0f128a fixed incorrect use of file before it was set in pio_msg.c b5b0ca6 changed error code 28185db working on memory warning in test_rearr.c 3422b55 working on memory warning in test_rearr.c c2c8d29 fixed memory leak warning in test_rearr.c 92ab215 fixed memory leak warning in test 42ec250 Merge pull request #1374 from NCAR/ejh_travis_asan 0140312 Merge pull request #1373 from NCAR/ejh_bug_fix2 7b9cc47 merged ejh_bug_fix2 31c64d0 turning on asan for cmake build in travis f70ce39 fixed remap memory leak e55de31 fixed memory problem in logging statement 75da528 fixed warning in test_darray_multivar3.c f7ac2b0 fixed warning in test_darray_multi.c 938680d fixed warning in test_perf2.c 8dd4fdc more fortran flags, plus fix warning b1cbbba adding set_flags.am 3a34128 added Makefile.am in tests/general which does noting f798cd2 merged master 5596b4d Merge pull request #1370 from NCAR/ejh_bug_fix 2e44db6 getting fortran tests working 5c139b0 starting to add fortran tests a13a100 initial fortran build working 4e37d6e merged ejh_bug_fix 64496c8 fixed warnings c45425d merged ejh_bug_fix branch 0d3556e for travis, only address sanitize autotools build 26ae9db travis with address sanitizer 7e799c7 turned on address sanitizer in travis 154dc95 fixed memory leaks cd1d9cf fixing leak on error a240cab fixing codacy warnings in test 27a8638 clean up of test_perf2.c 63abea0 change to trigger CI 3289961 Merge pull request #1363 from NCAR/ejh_minor 1a541d8 Merge pull request #1365 from NCAR/ejh_require_pnetcdf 13c1bc1 Merge pull request #1367 from NCAR/ejh_warnings 38e16a2 Merge pull request #1366 from NCAR/ejh_more_codacy 48a4923 fixed fscan warnings 79a0e58 removed redundant test_perf1.c fe1019e added some timing to test_perf2.c b996ca4 add --disable-pnetcdf configure option and require it if pnetcdf is not found 0869129 removed unused var cffcd55 fixed memory leak on error b58ac3f removed unused var in test 88c4201 fixed missing initializations in pio_msg.c 8b2952f fixed shell script warnings 544f6c7 Merge pull request #1357 from NCAR/ejh_fix_codacy_3 ef653a6 rolling back to most recent working travis build for reasons of mental health bcbcaae switched back to pnetcdf 1.11.0 524c5c9 working on fortran build 84f1284 getting fortran build working 9e9ea92 progress on fortran autotools build ebaf86e more fortran build badb9e2 starting to add fortran build dcc8bd4 starting to add fortran build to autotools 37eb88a removed cmake build in travis 2739c71 dorking around with cmake build in travis and cursing cmake b4e8d5f switched to pnetcdf 1.10 5ec13ea switched to pnetcdf 1.10 9b182c5 switched to HDF5 1.10.4 fdd9b6e Merge pull request #1358 from jedwards4b/type_size_fix 6a9a3ff minor bug fix in fortran interface 67f44d9 now build netcdf-4 from source in travis 11c1e92 cleaning up travis script 0b499b9 fixing over-sensitive error string test_pioc.c 01f1cb9 fixing over-sensitive error string test_pioc.c fa5a046 fixing over-sensitive error string test_pioc.c f99b500 trying to install shared library pnetcdf 52915d4 trying to install shared library pnetcdf 02b1346 trying to install pnetcdf 2c73319 trying to limit travis to pr build only 0c8d71d more work on travis build 2cf6a29 more work on travis build 10fa1ff more work on travis build 0923e21 more work on travis build 4a6b779 more travis work 849ed55 Merge pull request #1342 from jedwards4b/hashtables c9d014e trying cmake build in travis 65c08f6 revert this change 8e5dc56 trying cmake build in travis ed8b6e4 some mpis dont allow MPI_DATATYPE_NULL in MPI_Type_size a1f439a trying cmake build in travis 30ce045 trying cmake build in travis 733a15a trying cmake build in travis c1efe46 trying cmake build in travis 051ffbf trying cmake build in travis ebdfa77 trying cmake build in travis 0be3522 trying cmake build in travis f28f46f Merge pull request #1353 from NCAR/ejh_test_ci_3 0062a18 improve sorting scheme 72a0cf5 fixed codacy warning 0f7b828 update cheyenne modules f4884a7 add uthash.h to Makefile.am f56b569 no need to initialize here 2ed2e97 more cleanup e73bb95 cleanup 0ac12de move varlist to hash 23d71d3 replace linked list with hash lookup ebd44d3 Merge pull request #1349 from NetCDF-World-Domination-Council/ejh_travis1 c0e6b25 fixed warning f4a1480 fixed warning a0e3d04 fixed warning fcc89c4 fixed warning 0802b58 fixed warning 3988a50 fixed warning 50afb52 fixed warning 70e0e45 fixed warning 793a786 fixed warning f5365ab fixed warning 649ddc9 fixed warning f971884 changing travis file 7587cf6 change to trigger travis 19773d5 Merge pull request #1345 from NCAR/ejh_travis 6f08d49 added travis file 1a5f3ed Merge pull request #1343 from NCAR/ejh_benchmark cf8fecf making some changes suggested by codacy bfd150e fixed memory leak 74d5da5 fixed memory leak d85c2b7 fixed memory leak fc2fc45 converting to malloc instead of VLAs to move from stack to heap 163da37 starting to put map array allocations on heap with alloc instead of VLAs 933f426 starting to put map array allocations on heap with alloc instead of VLAs dc20149 starting to put map array allocations on heap with alloc instead of VLAs a6025c8 starting to put map array allocations on heap with alloc instead of VLAs 8f37cda starting to put map array allocations on heap with alloc instead of VLAs d4b6831 added to cmake but commented out 91b9b3b added another performance test f87b5e6 added logging 52998c2 benchmark development 1f9f218 benchmark development f4e962b benchmark development 7cccd5e benchmark development 0727181 remove tar files from repo e5c2b61 working on time output 34331ce moving for-loops out of test_perf1() function 85b9961 working with time 2c5acc9 fixed indents 91c3ae8 took out fill mode testing 6ba8a3c working with timing cc35519 working with timing 0c390bf Merge pull request #1335 from jedwards4b/support_type_conversion ff6c885 fix issue raised in codacy 72cf15a add new error type, change a test 9427840 removed 2d decomp 4ce3704 added some delay bff9aa8 added capability for multiple vars ec228ca further test development 702ac8e more perf test development da90671 got working with one var 9b42613 test development fdbcce5 now writing with 3D decomposition 299c256 more test work d198da1 more test work 824864d more test work fb5fb05 more test work cfabb5c more test work 9db86c1 took out tests of bad parameters 55887b8 fix the fillvalue in test e41d24f add some tests bffeeb9 remove restrictions to data conversion 8bf9c52 merged master 6e3be58 added mailing list to README fd5865a regenerated f39290b added more files b89700e 2.4.0 build of docs bd60aa9 added docs directory e090614 Merge pull request #1330 from NCAR/ejh_remove_use_only_mpi_scatter ddef8e9 Merge pull request #1333 from NCAR/ejh_fix_pio_version_number_cmake 080baff changed pio version to 2.4.0 in cmake 4978d60 removed mpi_scatter from only clause of use statement, which causes gfortran to error d77683e Merge pull request #1327 from NCAR/ejh_dumb_null_bug ee30e09 changed version in autotools to 2.4.0 04c6110 finally fixed NULL stride issues 254b32e fixed test 85637da fixed bug 630d32f modifying performance test c4be8d7 modifying performance test e5b74d1 fixed warnings in pioc.c a94caac changing name, adding timing 0488aed starting to add performance tests 130c564 Merge pull request #1321 from NCAR/add_pnetcdf_types 5724414 modify to address issue 1314 e062f76 fix issue in sorting and add test to catch it bb6137e increase MPI_TYPE_DEPTH bf6a987 modify test and update pgi test for cheyenne 317963f Merge pull request #1319 from NCAR/develop 56dcee4 Merge branch 'trytosort' into develop 2196994 add a test 205567f still working on it b4be30d update pgi test 415fcc1 try fixing the right file 9ee227c fix syntax 0ba25df fix syntax 4bc9b01 clean up ctest scripts fbd27d8 update sitename 3878280 update cheyenne gnu build e77b2cf remove debug print statements 6bbc245 working now I think 87e57b5 better but still has issues 8061b90a try to sort arrays - not working yet 96e562f Merge pull request #1311 from NESII/skip-pkgcomp-overload 29196d0 Do not overload user-defined PKGCOMPs 4091da5 Merge pull request #1308 from t-brown/master 66a498e Bugfix to the MPI_HAS_MPIIO check. 2f0fb4a Merge pull request #1306 from wkliao/vard_multi_var cad03a9 concatenate filetypes of multiple variables for vard API 7080803 skip creating an MPI derived datatype if a request is contiguous cfd66c6 Merge pull request #1300 from wkliao/patch-2 e8bd1b2 free an MPI communicator a018098 Merge pull request #1299 from NCAR/ejh_back_5 cb2cffd removed redeclaration of ret 8402f42 added documentation e9854d6 fixed problem with _FillValue 6d2fda3 changing fill value handling in write_darray 85e008b Merge pull request #1296 from NCAR/ejh_back2 3e80380 now run examples from autotools build as well efd9b10 Merge pull request #1294 from NCAR/ejh_back 8405ee0 Merge pull request #1293 from NCAR/ejh_docs 1ec8fea clean up c3b9d9d added documentation 5a9074a clean up 054da32 merged master 5de746f test 8b50911 test development 5395f97 test development cfc45a6 test development 2c3aa55 test development 4f08d2d test development 2c02644 test development 661ebcd test development e0ba296 test development 53450db test development e538c25 test development 65c34cd test development 50a2005 test development c42c550 test development 60e98ee test development 1642ce2 test development 435aff2 test development 1b18922 test development 5e38842 fixed iotype problem 77f73c6 Merge pull request #1292 from NCAR/ejh_logging e38c997 changed README 77b720f working on test f82e4e3 cleaned up logging statements 188b8df added some logging statements b23f6f1 added test 3fc7ce8 change to trigger build 377413b Merge pull request #1288 from jedwards4b/get_vard 70f0c64 work toward runtime vard switch c8cff06 fixes for vard and nag d513eac cleanup 38230b3 working now 3189787 test_darray works ea0f97c bug fixes aac1aa0 add for get_vard 576a1b4 comply with MPI standard in usage of MPI_IN_PLACE 4836393 Merge pull request #1285 from jedwards4b/add_pnetcdf_vard2 04b00aa replace changed parameter 6aa16c2 all tests pass with and without PIO_USE_PNETCDF_VARD 944315f fix issue with check_netcdf f8c9adc getting better d1d754b fix test 37b0975 getting closer 73f0dcf not working d5ba0b3 fix unit test dd18710 appears to work now 3a490e6 add support for pnetcdf vard function f28f2f3 Merge pull request #1284 from jedwards4b/fix_nc_error_handling d57c957 handle pnetcdf/netcdf4p errors better 7c92c48 Merge pull request #1278 from NCAR/ejh_test_4 fda1302 now assume frame=0 for darray read if frame was not set cc6a5fd fixed fill value problems in PIO 4e42e46 Merge pull request #1274 from NCAR/ejh_test_3 73d2197 merged ejh_test_3 419efdb removed varm functions bb5f72a Merge pull request #1272 from NCAR/ejh_test_2 856f951 Merge pull request #1273 from NCAR/ejh_fix_master e6b38f2 undo broken warning fix 77273d2 Merge pull request #1253 from NCAR/gnutocheyenne 01fa50a removed dead makefile.am code c9b16c0 fixed problem with test_intercomm2.c 3e04656 got make distcheck working b5342af properly cleaned up all files during clean d9170b8 Merge pull request #1261 from NCAR/ejh_warnings 496cc3a Merge pull request #1268 from NCAR/ejh_test_1 eee0cf3 added new line at end of .gitignore file ceed2f2 turned off verbose output in test 2158338 fixed run test script to correctly detect failure 5097578 added to gitignore 77c4219 updated version to 2.3.1 c7627bf fixed compiler warnings a976e18 modify script for use on cheyenne 8891fc1 Merge pull request #1252 from NCAR/cheyenne_cdash_update 5e4a1d4 reorder modules be2d445 Merge pull request #1250 from t-brown/master 365d729 Adding Cray Fortran specific flags. fbc22da Merge pull request #1247 from NCAR/maxblocksize_fix 39e4f11 more reasonable maxblock value git-subtree-dir: src/externals/pio2 git-subtree-split: 6f0afaa48bbc6eed4adff36b7442746981d8d86c --- .travis.yml | 58 + COPYRIGHT | 16 + Makefile.am | 16 + configure.ac | 278 +++ doc/Makefile.am | 20 + doc/source/Decomp.txt | 86 + doc/source/Introduction.txt | 89 + doc/source/Makefile.am | 8 + doc/source/c_api.txt | 50 + doc/source/contributing_code.txt | 137 ++ doc/source/iosystem.txt | 24 + doc/source/users_guide.txt | 20 + examples/c/darray_no_async.c | 382 ++++ scripts/Makefile.am | 6 + scripts/genf90.pl | 387 ++++ set_flags.am | 18 + src/Makefile.am | 16 + src/clib/Makefile.am | 22 + src/externals/pio1/doc/Error.txt | 10 +- src/externals/pio1/doc/api.txt | 2 +- src/externals/pio1/doc/base.txt | 2 +- src/externals/pio1/doc/faq.txt | 9 +- src/externals/pio1/doc/images/I_O_on_Few.png | Bin 0 -> 51147 bytes .../pio1/doc/images/I_O_on_Many_Async.png | Bin 0 -> 106413 bytes .../pio1/doc/images/I_O_on_Many_Intracomm.png | Bin 0 -> 86263 bytes src/externals/pio1/doc/images/Makefile.am | 9 + src/externals/pio1/doc/images/PIO_Async.png | Bin 0 -> 59591 bytes .../pio1/doc/images/PIO_Decomposition.png | Bin 0 -> 86877 bytes .../pio1/doc/images/PIO_Intracomm1.png | Bin 0 -> 62702 bytes .../doc/images/PIO_Library_Architecture1.jpg | Bin 0 -> 53536 bytes src/externals/pio1/pio/pio_kinds.F90 | 19 - src/externals/pio2/src/clib/pio_darray.c | 123 ++ src/externals/pio2/src/clib/pio_nc.c | 2 +- src/externals/pio2/src/clib/pioc.c | 85 + src/flib/pio_types.F90 | 213 +++ src/flib/piolib_mod.F90 | 1678 +++++++++++++++++ tests/Makefile.am | 18 + 37 files changed, 3776 insertions(+), 27 deletions(-) create mode 100644 .travis.yml create mode 100644 COPYRIGHT create mode 100644 Makefile.am create mode 100644 configure.ac create mode 100644 doc/Makefile.am create mode 100644 doc/source/Decomp.txt create mode 100644 doc/source/Introduction.txt create mode 100644 doc/source/Makefile.am create mode 100644 doc/source/c_api.txt create mode 100644 doc/source/contributing_code.txt create mode 100644 doc/source/iosystem.txt create mode 100644 doc/source/users_guide.txt create mode 100644 examples/c/darray_no_async.c create mode 100644 scripts/Makefile.am create mode 100755 scripts/genf90.pl create mode 100644 set_flags.am create mode 100644 src/Makefile.am create mode 100644 src/clib/Makefile.am create mode 100644 src/externals/pio1/doc/images/I_O_on_Few.png create mode 100644 src/externals/pio1/doc/images/I_O_on_Many_Async.png create mode 100644 src/externals/pio1/doc/images/I_O_on_Many_Intracomm.png create mode 100644 src/externals/pio1/doc/images/Makefile.am create mode 100644 src/externals/pio1/doc/images/PIO_Async.png create mode 100644 src/externals/pio1/doc/images/PIO_Decomposition.png create mode 100644 src/externals/pio1/doc/images/PIO_Intracomm1.png create mode 100644 src/externals/pio1/doc/images/PIO_Library_Architecture1.jpg create mode 100644 src/flib/pio_types.F90 create mode 100644 src/flib/piolib_mod.F90 create mode 100644 tests/Makefile.am diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000000..24fd6e268e1 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,58 @@ +language: c +dist: trusty +sudo: false + +branches: + only: + - master + +addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - pkg-config netcdf-bin libnetcdf-dev openmpi-bin libopenmpi-dev gfortran doxygen graphviz + +before_install: + - test -n $CC && unset CC + - test -n $FC && unset FC + - test -n $CPPFLAGS && unset CPPFLAGS + - test -n FCFLAGS && unset FCFLAGS + +before_script: + - export CC=mpicc + - export FC=mpif90 + - export CPPFLAGS='-I/usr/include' + - wget https://parallel-netcdf.github.io/Release/pnetcdf-1.11.0.tar.gz + - tar -xzvf pnetcdf-1.11.0.tar.gz + - ls -l + - pushd pnetcdf-1.11.0 + - ./configure --prefix=/usr --enable-shared + - make + - sudo make install + - popd +env: + global: + - CC=mpicc + - FC=mpif90 + - CPPFLAGS='-I/usr/include' + - CFLAGS='-std=c99' + - LDFLAGS='-L/usr/lib' + +script: + - ls -l /usr/include + - autoreconf -i + - export CFLAGS='-std=c99 -fsanitize=address -fno-omit-frame-pointer' + - export FFLAGS='-fsanitize=address -fno-omit-frame-pointer' + - export FCFLAGS='-fsanitize=address -fno-omit-frame-pointer' + - export DISTCHECK_CONFIGURE_FLAGS='--enable-fortran' + - ./configure --enable-fortran --enable-developer-docs + - make + - make -j distcheck + - rm -rf build + - mkdir build + - cd build + - cmake -DPIO_HDF5_LOGGING=On -DPIO_USE_MALLOC=On -DPIO_ENABLE_LOGGING=On -DPIO_ENABLE_TIMING=Off .. + - make VERBOSE=1 + - make tests VERBOSE=1 + - make test VERBOSE=1 \ No newline at end of file diff --git a/COPYRIGHT b/COPYRIGHT new file mode 100644 index 00000000000..8652d01dda1 --- /dev/null +++ b/COPYRIGHT @@ -0,0 +1,16 @@ +/****************************************************************************** + * + * + * + * Copyright (C) 2009-2019 + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ \ No newline at end of file diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 00000000000..b114d46e041 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,16 @@ +# This is part of PIO. It creates the main Makefile. + +# Ed Hartnett + +# Look in the m4 directory for autotools stuff. +ACLOCAL_AMFLAGS= -I m4 + +# Does the user want to build fortran? +if BUILD_DOCS +DOC = doc +endif + +SUBDIRS = src tests examples ${DOC} scripts + +EXTRA_DIST = CMakeLists.txt set_flags.am COPYRIGHT + diff --git a/configure.ac b/configure.ac new file mode 100644 index 00000000000..d18bf60bb58 --- /dev/null +++ b/configure.ac @@ -0,0 +1,278 @@ +## This is the autoconf file for the PIO library. +## Ed Hartnett 8/16/17 + + +# Initialize autoconf and automake. +AC_INIT(pio, 2.4.4-development) +AC_CONFIG_SRCDIR(src/clib/pio_darray.c) +AM_INIT_AUTOMAKE([foreign serial-tests]) + +# The PIO version, again. +AC_DEFINE([PIO_VERSION_MAJOR], [2], [PIO major version]) +AC_DEFINE([PIO_VERSION_MINOR], [4], [PIO minor version]) +AC_DEFINE([PIO_VERSION_PATCH], [4], [PIO patch version]) + +# Once more for the documentation. +AC_SUBST([VERSION_MAJOR], [2]) +AC_SUBST([VERSION_MINOR], [4]) +AC_SUBST([VERSION_PATCH], [4]) + +# The m4 directory holds macros for autoconf. +AC_CONFIG_MACRO_DIR([m4]) + +# Libtool initialisation. +LT_INIT + +# Find and learn about the C compiler. +AC_PROG_CC + +# Find and learn about the Fortran compiler. +AC_PROG_FC + +# Always use malloc in autotools builds. +AC_DEFINE([PIO_USE_MALLOC], [1], [use malloc for memory]) + +AC_MSG_CHECKING([whether a PIO_BUFFER_SIZE was specified]) +AC_ARG_WITH([piobuffersize], + [AS_HELP_STRING([--with-piobuffersize=], + [Specify buffer size for PIO.])], + [PIO_BUFFER_SIZE=$with_piobuffersize], [PIO_BUFFER_SIZE=134217728]) +AC_MSG_RESULT([$PIO_BUFFER_SIZE]) +AC_DEFINE_UNQUOTED([PIO_BUFFER_SIZE], [$PIO_BUFFER_SIZE], [buffer size for darray data.]) + +# Does the user want to enable logging? +AC_MSG_CHECKING([whether debug logging is enabled]) +AC_ARG_ENABLE([logging], + [AS_HELP_STRING([--enable-logging], + [enable debug logging capability (will negatively impact performance). \ + This debugging feature is probably only of interest to PIO developers.])]) +test "x$enable_logging" = xyes || enable_logging=no +AC_MSG_RESULT([$enable_logging]) +if test "x$enable_logging" = xyes; then + AC_DEFINE([PIO_ENABLE_LOGGING], 1, [If true, turn on logging.]) +fi + +# Does the user want to use MPE library? +AC_MSG_CHECKING([whether use of MPE library is enabled]) +AC_ARG_ENABLE([mpe], + [AS_HELP_STRING([--enable-mpe], + [enable use of MPE library for timing and diagnostic info (may negatively impact performance).])]) +test "x$enable_mpe" = xyes || enable_mpe=no +AC_MSG_RESULT([$enable_mpe]) +if test "x$enable_mpe" = xyes; then + AC_SEARCH_LIBS([MPE_Log_get_event_number], [mpe], [HAVE_LIBMPE=yes], [HAVE_LIBMPE=no], [-lpthread -lm]) + AC_CHECK_HEADERS([mpe.h], [HAVE_MPE=yes], [HAVE_MPE=no]) + if test "x$HAVE_LIBMPE" = xno -o "x$HAVE_MPE" = xno; then + AC_MSG_ERROR([MPE not found but --enable-mpe used.]) + fi + AC_DEFINE([USE_MPE], 1, [If true, use MPE timing library.]) +fi + +# Does the user want to enable timing? +AC_MSG_CHECKING([whether GPTL timing library is used]) +AC_ARG_ENABLE([timing], + [AS_HELP_STRING([--enable-timing], + [enable use of the GPTL timing library.])]) +test "x$enable_timing" = xyes || enable_timing=no +AC_MSG_RESULT([$enable_timing]) +if test "x$enable_timing" = xyes; then + AC_DEFINE([TIMING], 1, [If true, use GPTL timing library.]) +fi +AM_CONDITIONAL(USE_GPTL, [test "x$enable_timing" = xyes]) + +# Does the user want to disable papi? +AC_MSG_CHECKING([whether PAPI should be enabled (if enable-timing is used)]) +AC_ARG_ENABLE([papi], [AS_HELP_STRING([--disable-papi], + [disable PAPI library use])]) +test "x$enable_papi" = xno || enable_papi=yes +AC_MSG_RESULT($enable_papi) + +# Does the user want to disable test runs? +AC_MSG_CHECKING([whether test runs should be enabled for make check]) +AC_ARG_ENABLE([test-runs], [AS_HELP_STRING([--disable-test-runs], + [disable running run_test.sh test scripts for make check. Tests will still be built.])]) +test "x$enable_test_runs" = xno || enable_test_runs=yes +AC_MSG_RESULT($enable_test_runs) +AM_CONDITIONAL(RUN_TESTS, [test "x$enable_test_runs" = xyes]) + +# Does the user want to enable Fortran library? +AC_MSG_CHECKING([whether Fortran library should be built]) +AC_ARG_ENABLE([fortran], + [AS_HELP_STRING([--enable-fortran], + [build the PIO Fortran library.])]) +test "x$enable_fortran" = xyes || enable_fortran=no +AC_MSG_RESULT([$enable_fortran]) +AM_CONDITIONAL(BUILD_FORTRAN, [test "x$enable_fortran" = xyes]) + +# Does the user want to disable pnetcdf? +AC_MSG_CHECKING([whether pnetcdf is to be used]) +AC_ARG_ENABLE([pnetcdf], + [AS_HELP_STRING([--disable-pnetcdf], + [Disable pnetcdf use.])]) +test "x$enable_pnetcdf" = xno || enable_pnetcdf=yes +AC_MSG_RESULT([$enable_pnetcdf]) +AM_CONDITIONAL(BUILD_PNETCDF, [test "x$enable_pnetcdf" = xyes]) + +# Does the user want to build documentation? +AC_MSG_CHECKING([whether documentation should be build (requires doxygen)]) +AC_ARG_ENABLE([docs], + [AS_HELP_STRING([--enable-docs], + [enable building of documentation with doxygen.])]) +test "x$enable_docs" = xyes || enable_docs=no +AC_MSG_RESULT([$enable_docs]) + +# Does the user want to developer documentation? +AC_MSG_CHECKING([whether PIO developer documentation should be build (only for PIO developers)]) +AC_ARG_ENABLE([developer-docs], + [AS_HELP_STRING([--enable-developer-docs], + [enable building of PIO developer documentation with doxygen.])]) +test "x$enable_developer_docs" = xyes || enable_developer_docs=no +AC_MSG_RESULT([$enable_developer_docs]) + +# Developer docs enables docs. +if test "x$enable_developer_docs" = xyes; then + enable_docs=yes +fi +AM_CONDITIONAL(BUILD_DOCS, [test "x$enable_docs" = xyes]) + +# Is doxygen installed? +AC_CHECK_PROGS([DOXYGEN], [doxygen]) +if test -z "$DOXYGEN" -a "x$enable_docs" = xyes; then + AC_MSG_ERROR([Doxygen not found but --enable-docs used.]) +fi + +# If building docs, process Doxyfile.in into Doxyfile. +if test "x$enable_docs" = xyes; then + AC_SUBST([CMAKE_CURRENT_SOURCE_DIR], ["."]) + AC_SUBST([CMAKE_BINARY_DIR], [".."]) + if test "x$enable_fortran" = xno; then + AC_MSG_ERROR([--enable-fortran is required for documentation builds.]) + fi + AC_SUBST([FORTRAN_SRC_FILES], ["../src/flib/piodarray.f90 ../src/flib/pio.F90 ../src/flib/pio_kinds.F90 ../src/flib/piolib_mod.f90 ../src/flib/pionfatt_mod_2.f90 ../src/flib/pio_nf.F90 ../src/flib/pionfget_mod_2.f90 ../src/flib/pionfput_mod.f90 ../src/flib/pio_support.F90 ../src/flib/pio_types.F90"]) + if test "x$enable_developer_docs" = xyes; then + AC_SUBST([C_SRC_FILES], ["../src/clib"]) + else + AC_SUBST([C_SRC_FILES], ["../src/clib/pio_nc.c ../src/clib/pio_nc4.c ../src/clib/pio_darray.c ../src/clib/pio_get_nc.c ../src/clib/pio_put_nc.c ../src/clib/pioc_support.c ../src/clib/pioc.c ../src/clib/pio_file.c ../src/clib/pio.h ../src/clib/pio_get_vard.c ../src/clib/pio_put_vard.c"]) + fi + AC_CONFIG_FILES([doc/Doxyfile]) +fi + +# NetCDF (at least classic) is required for PIO to build. +AC_DEFINE([_NETCDF], [1], [netCDF classic library available]) + +# ???? +AC_DEFINE([CPRGNU], [1], [defined by CMake build]) + +# We must have MPI to build PIO. +AC_DEFINE([HAVE_MPI], [1], [defined by CMake build]) + +# ??? +AC_DEFINE([INCLUDE_CMAKE_FCI], [1], [defined by CMake build]) + +# All builds are on LINUX. +AC_DEFINE([LINUX], [1], [defined by CMake build]) + +# Define to solve intel compiler warning. +AC_DEFINE([_GNU_SOURCE], [1], [solve strnlen declared implicitly warning on intel compiler]) + +# Check for netCDF library. +AC_CHECK_LIB([netcdf], [nc_create], [], [AC_MSG_ERROR([Can't find or link to the netcdf library.])]) + +# Check for pnetcdf library. +AC_CHECK_LIB([pnetcdf], [ncmpi_create], [], []) +if test "x$ac_cv_lib_pnetcdf_ncmpi_create" = xno -a $enable_pnetcdf = yes; then + AC_MSG_ERROR([Pnetcdf not found. Set CPPFLAGS/LDFLAGS or use --disable-pnetcdf.]) +fi + +# If we have parallel-netcdf, then set these as well. +if test x$ac_cv_lib_pnetcdf_ncmpi_create = xyes; then + AC_DEFINE([_PNETCDF], [1], [parallel-netcdf library available]) + AC_DEFINE([USE_PNETCDF_VARN], [1], [defined by CMake build]) + AC_DEFINE([USE_PNETCDF_VARN_ON_READ], [1], [defined by CMake build]) +fi + +# Do we have a parallel build of netCDF-4? +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include "netcdf_meta.h"], +[[#if !NC_HAS_PARALLEL +# error +#endif] +])], [have_netcdf_par=yes], [have_netcdf_par=no]) + +AC_MSG_CHECKING([whether netCDF provides parallel IO]) +AC_MSG_RESULT([${have_netcdf_par}]) +if test x$have_netcdf_par = xyes; then + AC_DEFINE([_NETCDF4],[1],[Does netCDF library provide netCDF-4 with parallel access]) +fi +AM_CONDITIONAL(BUILD_NETCDF4, [test "x$have_netcdf_par" = xyes]) + +# Not working for some reason, so I will just set it... +AC_CHECK_TYPE([MPI_Offset], [], [], [#include ]) +if test "x${ac_cv_type_MPI_Offset}" = xyes; then + AC_CHECK_SIZEOF([MPI_Offset], [], [#include ]) +else + AC_MSG_ERROR([Unable to find type MPI_Offset in mpi.h]) +fi + +#AC_CHECK_SIZEOF([MPI_Offset], [], [[#include ]]) +#AC_DEFINE([SIZEOF_MPI_OFFSET], [8], [netCDF classic library available]) + +# If we want the timing library, we must find it. +if test "x$enable_timing" = xyes; then + AC_CHECK_HEADERS([gptl.h]) + AC_CHECK_LIB([gptl], [GPTLinitialize], [], + [AC_MSG_ERROR([Can't find or link to the GPTL library.])]) + if test "x$enable_fortran" = xyes; then + AC_LANG_PUSH([Fortran]) +# AC_CHECK_HEADERS([gptl.inc]) + AC_CHECK_LIB([gptlf], [gptlstart], [], + [AC_MSG_ERROR([Can't find or link to the GPTL Fortran library.])]) + AC_LANG_POP([Fortran]) + fi + + # Check for papi library. + AC_CHECK_LIB([papi], [PAPI_library_init]) + AC_MSG_CHECKING([whether system can support PAPI]) + have_papi=no + if test $enable_papi = yes; then + if test "x$ac_cv_lib_papi_PAPI_library_init" = xyes; then + # If we have PAPI library, check /proc/sys/kernel/perf_event_paranoid + # to see if we have permissions. + if test -f /proc/sys/kernel/perf_event_paranoid; then + if test `cat /proc/sys/kernel/perf_event_paranoid` != 1; then + AC_MSG_ERROR([PAPI library found, but /proc/sys/kernel/perf_event_paranoid != 1 + try sudo sh -c 'echo 1 >/proc/sys/kernel/perf_event_paranoid']) + fi + fi + AC_DEFINE([HAVE_PAPI], [1], [PAPI library is present and usable]) + have_papi=yes + fi + fi + AC_MSG_RESULT($have_papi) +fi +AM_CONDITIONAL([HAVE_PAPI], [test "x$have_papi" = xyes]) + +AC_CONFIG_FILES([tests/general/pio_tutil.F90:tests/general/util/pio_tutil.F90]) + +AC_CONFIG_LINKS([tests/unit/input.nl:tests/unit/input.nl]) + +# Create the config.h file. +AC_CONFIG_HEADERS([config.h]) + +# Create the makefiles. +AC_OUTPUT(Makefile + src/Makefile + src/clib/Makefile + src/flib/Makefile + src/gptl/Makefile + tests/Makefile + tests/cunit/Makefile + tests/unit/Makefile + tests/general/Makefile + tests/general/util/Makefile + tests/performance/Makefile + doc/Makefile + doc/source/Makefile + doc/images/Makefile + examples/Makefile + examples/c/Makefile + scripts/Makefile) diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 00000000000..83ea41382d9 --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,20 @@ +# This is part of PIO. It creates the doc Makefile. + +# Ed Hartnett 4/1/19 + +# Run doxygen, then confirm warning log file is empty. +all: + doxygen Doxyfile + cat doxywarn.log + [ ! -s doxywarn.log ] + +check: all + +# Include these subdirs to include the documention files in the +# distribution. +SUBDIRS = source images + +CLEANFILES = *.log + +EXTRA_DIST = CMakeLists.txt customdoxygen.css Doxyfile.in \ +DoxygenLayout.xml doxygen.sty diff --git a/doc/source/Decomp.txt b/doc/source/Decomp.txt new file mode 100644 index 00000000000..f47c8bf18e2 --- /dev/null +++ b/doc/source/Decomp.txt @@ -0,0 +1,86 @@ +/** @page decomp Describing decompositions + +One of the biggest challenges to working with PIO is setting up the +decomposition of the data (Fortran users see @ref PIO_initdecomp, C +users @ref PIO_initdecomp_c). The user must properly describe how the +data within each MPI tasks memory should be placed or retrieved from +disk. + +@section The Compmap + +When initializing a new decomposition, each task calling +PIOc_init_decomp() or PIO_initdecomp(). + +@image html PIO_Decomposition.png + +@section Rearrangers + +PIO provides two methods to rearrange data from compute tasks to +IO tasks. + +@subsection BOXREARR Box rearrangement + +In this method data is rearranged from compute to IO tasks such that +the arrangement of data on the IO tasks optimizes the call from the IO +tasks to the underlying (NetCDF) IO library. In this case each compute +task will transfer data to one or more IO tasks. + +@subsection SUBSETREARR Subset rearrangement + +In this method each IO task is associated with a unique subset of +compute tasks so that each compute task will transfer data to one and +only one IO task. Since this technique does not guarantee that data on +the IO node represents a contiguous block of data on the file it may +require multiple calls to the underlying (NetCDF) IO library. + +As an example suppose we have a global two dimensional grid of size +4x5 decomposed over 5 tasks. We represent the two dimensional grid in +terms of offset from the initial element ie + +
+     0  1  2  3 
+     4  5  6  7 
+     8  9 10 11
+    12 13 14 15
+    16 17 18 19 
+
+ +Now suppose this data is distributed over the compute tasks as follows: + +
+0: {   0  4 8 12  } 
+1: {  16 1 5 9  } 
+2: {  13 17 2 6  } 
+3: {  10 14 18 3  } 
+4: {   7 11 15 19  } 
+
+ +If we have 2 io tasks the Box rearranger would give: + +
+0: { 0  1  2  3  4  5  6  7  8  9  }
+1: { 10 11 12 13 14 15 16 17 18 19 }
+
+ +While the subset rearranger would give: + +
+0: { 0  1  4  5  8  9  12 16 }
+1: { 2  3  6  7  10 11 13 14 15 17 18 19 }
+
+ +Note that while the box rearranger gives a data layout which is well +balanced and well suited for the underlying io library, it had to +communicate with every compute task to do so. On the other hand the +subset rearranger communicated with only a portion of the compute +tasks but requires more work on the part of the underlying io library +to complete the operation. + +Also note if every task is an IO task then the box rearranger will +need to do an alltoall communication, while the subset rearranger does +none. In fact using the subset rearranger with every compute task an +IO task provides a measure of what you might expect the performance of +the underlying IO library to be if it were used without PIO. + +*/ + diff --git a/doc/source/Introduction.txt b/doc/source/Introduction.txt new file mode 100644 index 00000000000..888c44a84f8 --- /dev/null +++ b/doc/source/Introduction.txt @@ -0,0 +1,89 @@ +@tableofcontents + +/** @page intro Introduction + +Performing I/O is straightforward when a small number of processors +are being used. + +@image html I_O_on_Few.png "I/O on One or a Few Processors" + +Parallel I/O does not scale to thousands of processors, because the +parallel disk systems do not support the bandwitdh to allow thousands +of processors to access the disk at the same time. As a result, most +of the processors will have to wait to do I/O. + +An obvious solution is to designate a small number of processors to do +I/O, and use the rest for computation. + +@image html I_O_on_Many_Intracomm.png "I/O on Many Processors Intracomm" + +PIO provides a netCDF-like API which provides this service. User code +is written as if parallel I/O is being used from every processor, but, +under the hood, PIO uses the I/O processors to do all data access. + +With Intracomm Mode, the I/O processors are a subset of the +computational processors, and only one computational unit is +supported. In Async Mode, the I/O processors are dedicated to I/O, and +do not perform computation. Also, more than one computational unit may +be designated. + +@image html I_O_on_Many_Async.png "I/O on Many Processors Async" + +The user initializes the PIO IO System, designating some processors +for I/O, others for computation. + +PIO decompositions and distributed arrays allow the code to be written +in terms of the local, distributed sub-array (see @ref decomp). PIO +handles the stitching of all data into the correct global space in a +netCDF variable. + +PIO also allows for the creation of multiple computational units. Each +computational unit consists of many processors. I/O for all +computational units is accomplished through one set of dedicated I/O +processors (see @ref iosystem). + +PIO uses +netcdf and pnetcdf to +read and write the netCDF files (see @ref install). + +## Basic description of how to optimize IO in a parallel environment: + +PIO calls are collective. A MPI communicator is set in a call to @ref +PIO_init and all tasks associated with that communicator must +participate in all subsequent calls to PIO. An application can make +multiple calls to @ref PIO_init in order to support multiple MPI +communicators. + +Begin by getting and unpacking the most recent release of PIO from +[gitHub](https://github.com/PARALLELIO/ParallelIO/releases) and +installing on your system as per the instructions in the +[Installation](@ref install) document. Take a look at examples of PIO +usage in both complex and simple test programs in the [Examples](@ref +examp) document. Finally, read through the [FAQ](@ref faq) to see if +any remaining questions can be answered. + +### Using PIO has three basic steps. ### + +1. Your program should call the @ref PIO_init function, and provide +the MPI communicator (and the rank within that communicator) of the +calling task. This call initializes an IO system type structure that +will be used in subsequent file and decomposition functions. + +2. You can open a file for reading or writing with a call to @ref +PIO_createfile or @ref PIO_openfile. In this call you will specify the +file type: pio_iotype_netcdf, pio_iotype_pnetcdf, pio_iotype_netcdf4c +or pio_iotype_netcdf4p; along with the file name and optionally the +netcdf mode. + +3. Finally, you can read or write decomposed data to the output +file. You must describe the mapping between the organization of data +in the file and that same data in the application space. This is done +in a call to @ref PIO_initdecomp. In the simplest call to this +function, a one dimensional integer array is passed from each task, +the values in the array represent the offset from the beginning of the +array on file. + + +*/ diff --git a/doc/source/Makefile.am b/doc/source/Makefile.am new file mode 100644 index 00000000000..97f8e16dc3f --- /dev/null +++ b/doc/source/Makefile.am @@ -0,0 +1,8 @@ +# This is part of PIO. It creates the doc/source Makefile. + +# Ed Hartnett 5/20/19 + +EXTRA_DIST = api.txt CAMexample.txt Decomp.txt faq.txt Installing.txt \ +Testing.txt base.txt c_api.txt contributing_code.txt Error.txt \ +Examples.txt Introduction.txt mach_walkthrough.txt \ +testpio_example.txt users_guide.txt iosystem.txt diff --git a/doc/source/c_api.txt b/doc/source/c_api.txt new file mode 100644 index 00000000000..e9d3ed3f62e --- /dev/null +++ b/doc/source/c_api.txt @@ -0,0 +1,50 @@ + /*! \page c_api PIO C Interface + This is a list of all user interface routines: + + \section api_system_c PIO Startup and Shutdown + - \ref PIO_init_c + - \ref PIO_finalize_c + \section api_fileops_c PIO File Operations + - \ref PIO_open_file_c + - \ref PIO_create_file_c + - \ref PIO_sync_file_c + - \ref PIO_close_file_c + \section api_decomp_c PIO Decompositions + - \ref PIO_initdecomp_c + - \ref PIO_freedecomp_c + \section readwrite_c Reading and Writing Distributed Arrays + - \ref PIO_read_darray_c + - \ref PIO_write_darray_c + - \ref PIO_setframe_c + \section utility_c Utility + - \ref PIO_set_hint_c + - \ref PIO_error_method_c + - \ref PIO_get_local_array_size_c + - \ref PIO_getnumiotasks_c + - \ref PIO_set_blocksize_c + \section netcdf_c NetCDF-Like Functions + Also see: http://www.unidata.ucar.edu/software/netcdf/docs/ + \subsection utilnc_c File Operations + - \ref PIO_enddef_c + - \ref PIO_redef_c + \subsection write_metadata_c Writing Metadata + - \ref PIO_def_dim_c + - \ref PIO_def_var_c + - \ref PIO_put_att_c + \subsection putget_c Reading/Writing Data + - \ref PIO_get_vara_c + - \ref PIO_get_var_c + - \ref PIO_get_var1_c + - \ref PIO_get_vars_c + - \ref PIO_put_vara_c + - \ref PIO_put_var_c + - \ref PIO_put_var1_c + - \ref PIO_put_vars_c + \subsection inqnc_c Learn about Files and Metadata + - \ref PIO_inq_c + - \ref PIO_get_att_c + - \ref PIO_inq_att_c + - \ref PIO_inq_var_c + - \ref PIO_inq_dim_c + +*/ diff --git a/doc/source/contributing_code.txt b/doc/source/contributing_code.txt new file mode 100644 index 00000000000..cf7df469c19 --- /dev/null +++ b/doc/source/contributing_code.txt @@ -0,0 +1,137 @@ +/*! @page contributing_code Guide for Contributors + +# Introduction # + +This document describes the code style to be used when contributing to +the PIO library. + +Consistency of style allows bugs to be spotted more quickly and +contributes to code quality. + +# C Code # + +## Warnings ## + +

The C library compiles under GNU gcc without warnings. No code will +be merged with the C library which causes warnings during compile. + +## Backward Compatibility ## + +

We cannot remove or change a function in the public C API. We can +add to it, carefully. + +## Brevity ## + +

Consider: C is a terse language. + +

    +
  • Use the fact that NULL == 0, and 0 == false, to shorten code. +
  • Assign and check return values in the same if statement. +
+ +## Indentation and Spacing## + +
    +
  • Use spaces not tabs. +
  • 4 spaces is the unit of intendation. +
  • Indentation as defined by the "linux" style in emacs (see below). +
  • Use spaces around most operators (= + - * /) not pointer or prefix/postfile (* ++ --) +
  • Spaces after most keywords (if, for, while, etc.) +
  • No spaces after function name. +
+ +## Braces ## + +

Put braces on their own line, avoiding their use if possible. + +## Documentation ## + +

    +
  • Every function must be documented using doxygen. +
  • Keep internal functions in separate code files, so that Doxygen +can easily build user and development builds of the documentation. +
  • Use the doxygen \@ingroup to put public functions in the correct +group. +
  • Code must be reasonably documented as to intention. +
  • Documentation quality and quantity are part of code review +process. +
  • Document in complete sentences. +
  • Use C (not C++) comment delimiters. +
  • Use the author tag to indicate which programmers have worked on +each function. When adding or changing a function in a non-trivial +way, programmers should add their name to the end of the list of +authors for that function. +
+ +## Emacs ## + +

Put this in your .emacs file: + +

+(setq c-default-style "linux"
+          c-basic-offset 4)
+
+ +

The tab key (used anywhere on the line) will indent a line +correctly. M-x indent-region will indent a selected region of code. + +

M-x untabify will convert all the tabs in a file to spaces. + +## Code Review ## + +

    + +
  • All code is subject to review. + +
  • Pull requests will be focused on one issue. + +
  • Pull requests may not be submitted until all tests pass. + +
  • All non-trivial pull requests are associated with a github +issue. The issue is where discussion of requirements and +implementation details can be worked out. + +
  • Pull requests will be left up on github for about a day. Request +more time if you need it and are actively reviewing the code. (Note +that pull request can also be reviewed after they are merged, if you +miss one). + +
  • Jim will identify key stakeholders in changed code and ensure they +accept code changes. + +
  • Reviewers are open-minded and ready to accept improvements to the +library. + +
  • Reviewers will make comments on the pull request. All comments +must be resolved. + +
  • If chages are dictated, they happen on the branch, so code +reviewers can see the updated code. + +
  • The pull request is only merged when all programmers agree that +all issues have been resolved. + +
+ +## Merge Proceedure + +
    + +
  • Programmers begin work on a feature or fix by branching from +master. + +
  • When a branch is ready, it is submitted to code review via pull +request. Travis CI testing is automatically run on the PR. + +
  • When code review is complete, and the changes are approved, the PR +is merged into the master branch. + +
  • The master branch is tested periodically by CDash (every ~6 +hours). Any test failures and the merge to master may be rolled back. + +
  • The branch is then deleted by whomever merged it to master. + +
+ + +*/ diff --git a/doc/source/iosystem.txt b/doc/source/iosystem.txt new file mode 100644 index 00000000000..5acce7fc928 --- /dev/null +++ b/doc/source/iosystem.txt @@ -0,0 +1,24 @@ +/** @page iosystem Initializing the IO System + +Using PIO begins with initializing the IO System. This sets up the MPI +communicators with the computational and I/O processors. + +When the IO System is created, an IOSystem ID is returned and must be +used in future PIO calls. The IOSystem ID is returned by C functions +PIOc_Init_Intracomm() and PIOc_init_async(). Fortran users see @ref +PIO_init. + +When the user program is complete, the IOSystem should be released by +calling C function PIOc_finalize() or Fortran function piolib_mod::finalize() +for each open IOSystem. + +@section intracomm_mode Intracomm Mode + +@image html PIO_Intracomm1.png "PIO Intracomm Mode" + +@section async_mode Async Mode + +@image html PIO_Async.png "PIO Async Mode" + +*/ + diff --git a/doc/source/users_guide.txt b/doc/source/users_guide.txt new file mode 100644 index 00000000000..f97123ac50a --- /dev/null +++ b/doc/source/users_guide.txt @@ -0,0 +1,20 @@ +/*! + +@page users_guide PIO User's Guide + +This user's guide provides information about the PIO library and +examples on how it can be used. Please watch the PIO GitHub site +[https://github.com/NCAR/ParallelIO] for announcements and new +releases. + + - @ref intro + - @ref iosystem + - @ref decomp + - @ref error + - @ref examp + - @ref faq + - @ref api + - @ref c_api + - @ref contributing_code + +*/ diff --git a/examples/c/darray_no_async.c b/examples/c/darray_no_async.c new file mode 100644 index 00000000000..ce50003a29a --- /dev/null +++ b/examples/c/darray_no_async.c @@ -0,0 +1,382 @@ +/* + * @file + * @brief A simple C example for the ParallelIO Library. + * + * This example creates a netCDF output file with three dimensions + * (one unlimited) and one variable. It first writes, then reads the + * sample file using distributed arrays. + * + * This example can be run in parallel for 16 processors. + */ + +#include "config.h" +#include +#include +#include +#include +#include +#include +#include +#ifdef TIMING +#include +#endif + +/* The number of possible output netCDF output flavors available to + * the ParallelIO library. */ +#define NUM_NETCDF_FLAVORS 4 + +/* The number of dimensions in the example data. */ +#define NDIM3 3 + +/* The number of timesteps of data. */ +#define NUM_TIMESTEPS 2 + +/* The length of our sample data in X dimension.*/ +#define DIM_LEN_X 8 + +/* The length of our sample data in Y dimension.*/ +#define DIM_LEN_Y 8 + +/* The name of the variable in the netCDF output file. */ +#define VAR_NAME "foo" + +/* Return code when netCDF output file does not match + * expectations. */ +#define ERR_BAD 1001 + +/* The meaning of life, the universe, and everything. */ +#define START_DATA_VAL 42 + +/* Number of tasks this example runs on. */ +#define TARGET_NTASKS 16 + +/* Logging level. */ +#define LOG_LEVEL -1 + +/* Lengths of dimensions. */ +int dim_len[NDIM3] = {NC_UNLIMITED, DIM_LEN_X, DIM_LEN_Y}; + +/* Names of dimensions. */ +char dim_name[NDIM3][PIO_MAX_NAME + 1] = {"unlimted", "x", "y"}; + +/* These are used when writing the decomposition file. */ +#define DECOMP_FILENAME "darray_no_async_decomp.nc" +#define DECOMP_TITLE "Example Decomposition from darray_no_async.c" +#define DECOMP_HISTORY "This file is created by the program darray_no_async in the PIO C library" + +/* Handle MPI errors. This should only be used with MPI library + * function calls. */ +#define MPIERR(e) do { \ + MPI_Error_string(e, err_buffer, &resultlen); \ + printf("MPI error, line %d, file %s: %s\n", __LINE__, __FILE__, err_buffer); \ + MPI_Finalize(); \ + return 2; \ + } while (0) + +/* Handle non-MPI errors by finalizing the MPI library and exiting + * with an exit code. */ +#define ERR(e) do { \ + MPI_Finalize(); \ + return e; \ + } while (0) + +/* Global err buffer for MPI. When there is an MPI error, this buffer + * is used to store the error message that is associated with the MPI + * error. */ +char err_buffer[MPI_MAX_ERROR_STRING]; + +/* This is the length of the most recent MPI error message, stored + * int the global error string. */ +int resultlen; + +/* @brief Check the output file. + * + * Use netCDF to check that the output is as expected. + * + * @param ntasks The number of processors running the example. + * @param filename The name of the example file to check. + * + * @return 0 if example file is correct, non-zero otherwise. */ +int check_file(int iosysid, int ntasks, char *filename, int iotype, + int elements_per_pe, int my_rank, int ioid) +{ + + int ncid; /* File ID from netCDF. */ + int ndims; /* Number of dimensions. */ + int nvars; /* Number of variables. */ + int ngatts; /* Number of global attributes. */ + int unlimdimid; /* ID of unlimited dimension. */ + int natts; /* Number of variable attributes. */ + nc_type xtype; /* NetCDF data type of this variable. */ + int ret; /* Return code for function calls. */ + int dimids[NDIM3]; /* Dimension ids for this variable. */ + char var_name[PIO_MAX_NAME]; /* Name of the variable. */ + /* size_t start[NDIM3]; /\* Zero-based index to start read. *\/ */ + /* size_t count[NDIM3]; /\* Number of elements to read. *\/ */ + /* int buffer[DIM_LEN_X]; /\* Buffer to read in data. *\/ */ + /* int expected[DIM_LEN_X]; /\* Data values we expect to find. *\/ */ + + /* Open the file. */ + if ((ret = PIOc_openfile_retry(iosysid, &ncid, &iotype, filename, 0, 0))) + return ret; + printf("opened file %s ncid = %d\n", filename, ncid); + + /* Check the metadata. */ + if ((ret = PIOc_inq(ncid, &ndims, &nvars, &ngatts, &unlimdimid))) + return ret; + + /* Check the dimensions. */ + if (ndims != NDIM3 || nvars != 1 || ngatts != 0 || unlimdimid != 0) + return ERR_BAD; + for (int d = 0; d < NDIM3; d++) + { + char my_dim_name[PIO_MAX_NAME]; + PIO_Offset dimlen; + + if ((ret = PIOc_inq_dim(ncid, d, my_dim_name, &dimlen))) + return ret; + if (dimlen != (d ? dim_len[d] : NUM_TIMESTEPS) || strcmp(my_dim_name, dim_name[d])) + return ERR_BAD; + } + + /* Check the variable. */ + if ((ret = PIOc_inq_var(ncid, 0, var_name, &xtype, &ndims, dimids, &natts))) + return ret; + if (xtype != NC_INT || ndims != NDIM3 || dimids[0] != 0 || dimids[1] != 1 || + dimids[2] != 2 || natts != 0) + return ERR_BAD; + + /* Allocate storage for sample data. */ + int buffer[elements_per_pe]; + int buffer_in[elements_per_pe]; + + /* Check each timestep. */ + for (int t = 0; t < NUM_TIMESTEPS; t++) + { + int varid = 0; /* There's only one var in sample file. */ + + /* This is the data we expect for this timestep. */ + for (int i = 0; i < elements_per_pe; i++) + buffer[i] = 100 * t + START_DATA_VAL + my_rank; + + /* Read one record. */ + if ((ret = PIOc_setframe(ncid, varid, t))) + ERR(ret); + if ((ret = PIOc_read_darray(ncid, varid, ioid, elements_per_pe, buffer_in))) + return ret; + + /* Check the results. */ + for (int i = 0; i < elements_per_pe; i++) + if (buffer_in[i] != buffer[i]) + return ERR_BAD; + } + + /* Close the file. */ + if ((ret = PIOc_closefile(ncid))) + return ret; + + /* Everything looks good! */ + return 0; +} + +/* Write, then read, a simple example with darrays. + + The sample file created by this program is a small netCDF file. It + has the following contents (as shown by ncdump): + +
+netcdf darray_no_async_iotype_1 {
+dimensions:
+	unlimted = UNLIMITED ; // (2 currently)
+	x = 8 ;
+	y = 8 ;
+variables:
+	int foo(unlimted, x, y) ;
+data:
+
+ foo =
+  42, 42, 42, 42, 43, 43, 43, 43,
+  44, 44, 44, 44, 45, 45, 45, 45,
+  46, 46, 46, 46, 47, 47, 47, 47,
+  48, 48, 48, 48, 49, 49, 49, 49,
+  50, 50, 50, 50, 51, 51, 51, 51,
+  52, 52, 52, 52, 53, 53, 53, 53,
+  54, 54, 54, 54, 55, 55, 55, 55,
+  56, 56, 56, 56, 57, 57, 57, 57,
+  142, 142, 142, 142, 143, 143, 143, 143,
+  144, 144, 144, 144, 145, 145, 145, 145,
+  146, 146, 146, 146, 147, 147, 147, 147,
+  148, 148, 148, 148, 149, 149, 149, 149,
+  150, 150, 150, 150, 151, 151, 151, 151,
+  152, 152, 152, 152, 153, 153, 153, 153,
+  154, 154, 154, 154, 155, 155, 155, 155,
+  156, 156, 156, 156, 157, 157, 157, 157 ;
+}
+   
+ +*/ +int main(int argc, char* argv[]) +{ + int my_rank; /* Zero-based rank of processor. */ + int ntasks; /* Number of processors involved in current execution. */ + int ioproc_stride = 1; /* Stride in the mpi rank between io tasks. */ + int ioproc_start = 0; /* Rank of first task to be used for I/O. */ + PIO_Offset elements_per_pe; /* Array elements per processing unit. */ + int iosysid; /* The ID for the parallel I/O system. */ + int ncid; /* The ncid of the netCDF file. */ + int dimid[NDIM3]; /* The dimension ID. */ + int varid; /* The ID of the netCDF varable. */ + int ioid; /* The I/O description ID. */ + char filename[PIO_MAX_NAME + 1]; /* Test filename. */ + int num_flavors = 0; /* Number of iotypes available in this build. */ + int format[NUM_NETCDF_FLAVORS]; /* Different output flavors. */ + int ret; /* Return value. */ + +#ifdef TIMING + /* Initialize the GPTL timing library. */ + if ((ret = GPTLinitialize ())) + return ret; +#endif + + /* Initialize MPI. */ + if ((ret = MPI_Init(&argc, &argv))) + MPIERR(ret); + if ((ret = MPI_Comm_set_errhandler(MPI_COMM_WORLD, MPI_ERRORS_RETURN))) + MPIERR(ret); + + /* Learn my rank and the total number of processors. */ + if ((ret = MPI_Comm_rank(MPI_COMM_WORLD, &my_rank))) + MPIERR(ret); + if ((ret = MPI_Comm_size(MPI_COMM_WORLD, &ntasks))) + MPIERR(ret); + + /* Check that a valid number of processors was specified. */ + if (ntasks != TARGET_NTASKS) + fprintf(stderr, "Number of processors must be 16!\n"); + printf("%d: ParallelIO Library darray_no_async example running on %d processors.\n", + my_rank, ntasks); + + /* Turn on logging. */ + if ((ret = PIOc_set_log_level(LOG_LEVEL))) + return ret; + + /* /\* Change error handling so we can test inval parameters. *\/ */ + /* if ((ret = PIOc_set_iosystem_error_handling(PIO_DEFAULT, PIO_RETURN_ERROR, NULL))) */ + /* return ret; */ + + /* Initialize the PIO IO system. This specifies how many and + * which processors are involved in I/O. */ + if ((ret = PIOc_Init_Intracomm(MPI_COMM_WORLD, 4, ioproc_stride, + ioproc_start, PIO_REARR_BOX, &iosysid))) + ERR(ret); + + /* Describe the decomposition. */ + elements_per_pe = DIM_LEN_X * DIM_LEN_Y / TARGET_NTASKS; + + /* Allocate and initialize array of decomposition mapping. */ + PIO_Offset compdof[elements_per_pe]; + for (int i = 0; i < elements_per_pe; i++) + compdof[i] = my_rank * elements_per_pe + i; + + /* Create the PIO decomposition for this example. Since this + * is a variable with an unlimited dimension, we want to + * create a 2-D composition which represents one record. */ + printf("rank: %d Creating decomposition, elements_per_pe %lld...\n", my_rank, + elements_per_pe); + if ((ret = PIOc_init_decomp(iosysid, PIO_INT, NDIM3 - 1, &dim_len[1], elements_per_pe, + compdof, &ioid, PIO_REARR_SUBSET, NULL, NULL))) + ERR(ret); + + /* Write the decomposition file. */ + if ((ret = PIOc_write_nc_decomp(iosysid, DECOMP_FILENAME, NC_CLOBBER, + ioid, DECOMP_TITLE, DECOMP_HISTORY, 0))) + ERR(ret); + + /* The number of favors may change with the build parameters. */ +#ifdef _PNETCDF + format[num_flavors++] = PIO_IOTYPE_PNETCDF; +#endif + format[num_flavors++] = PIO_IOTYPE_NETCDF; +#ifdef _NETCDF4 + format[num_flavors++] = PIO_IOTYPE_NETCDF4C; + format[num_flavors++] = PIO_IOTYPE_NETCDF4P; +#endif + + /* Use PIO to create the example file in each of the four + * available ways. */ + for (int fmt = 0; fmt < num_flavors; fmt++) + { + /* Create a filename. */ + sprintf(filename, "darray_no_async_iotype_%d.nc", format[fmt]); + + /* Create the netCDF output file. */ + printf("rank: %d Creating sample file %s with format %d...\n", + my_rank, filename, format[fmt]); + if ((ret = PIOc_createfile(iosysid, &ncid, &(format[fmt]), filename, PIO_CLOBBER))) + ERR(ret); + + /* Define netCDF dimension and variable. */ + printf("rank: %d Defining netCDF metadata...\n", my_rank); + for (int d = 0; d < NDIM3; d++) + if ((ret = PIOc_def_dim(ncid, dim_name[d], dim_len[d], &dimid[d]))) + ERR(ret); + if ((ret = PIOc_def_var(ncid, VAR_NAME, PIO_INT, NDIM3, dimid, &varid))) + ERR(ret); + if ((ret = PIOc_enddef(ncid))) + ERR(ret); + + /* Allocate storage for sample data. */ + int buffer[elements_per_pe]; + + /* Write each timestep. */ + for (int t = 0; t < NUM_TIMESTEPS; t++) + { + /* Create some data for this timestep. */ + for (int i = 0; i < elements_per_pe; i++) + buffer[i] = 100 * t + START_DATA_VAL + my_rank; + + /* Write data to the file. */ + printf("rank: %d Writing sample data...\n", my_rank); + if ((ret = PIOc_setframe(ncid, varid, t))) + ERR(ret); + if ((ret = PIOc_write_darray(ncid, varid, ioid, elements_per_pe, buffer, NULL))) + ERR(ret); + } + + /* THis will cause all data to be written to disk. */ + if ((ret = PIOc_sync(ncid))) + ERR(ret); + + /* Close the netCDF file. */ + printf("rank: %d Closing the sample data file...\n", my_rank); + if ((ret = PIOc_closefile(ncid))) + ERR(ret); + + /* Check the output file. */ + /* if ((ret = check_file(iosysid, ntasks, filename, format[fmt], elements_per_pe, */ + /* my_rank, ioid))) */ + /* ERR(ret); */ + } + + /* Free the PIO decomposition. */ + printf("rank: %d Freeing PIO decomposition...\n", my_rank); + if ((ret = PIOc_freedecomp(iosysid, ioid))) + ERR(ret); + + /* Finalize the IO system. */ + printf("rank: %d Freeing PIO resources...\n", my_rank); + if ((ret = PIOc_free_iosystem(iosysid))) + ERR(ret); + + /* Finalize the MPI library. */ + MPI_Finalize(); + +#ifdef TIMING + /* Finalize the GPTL timing library. */ + if ((ret = GPTLfinalize ())) + return ret; +#endif + + printf("rank: %d SUCCESS!\n", my_rank); + return 0; +} diff --git a/scripts/Makefile.am b/scripts/Makefile.am new file mode 100644 index 00000000000..9e65f382902 --- /dev/null +++ b/scripts/Makefile.am @@ -0,0 +1,6 @@ +# This is part of PIO. It handles the scripts directory which has some +# useful scripts. + +# Ed Hartnett 5/17/19 + +EXTRA_DIST = prune_decomps.pl genf90.pl diff --git a/scripts/genf90.pl b/scripts/genf90.pl new file mode 100755 index 00000000000..ec7d0dba28b --- /dev/null +++ b/scripts/genf90.pl @@ -0,0 +1,387 @@ +#!/usr/bin/env perl +use strict; +my $outfile; +# Beginning with F90, Fortran has strict typing of variables based on "TKR" +# (type, kind, and rank). In many cases we want to write subroutines that +# provide the same functionality for different variable types and ranks. In +# order to do this without cut-and-paste duplication of code, we create a +# template file with the extension ".F90.in", which can be parsed by this script +# to generate F90 code for all of the desired specific types. +# +# Keywords are delimited by curly brackets: {} +# +# {TYPE} and {DIMS} are used to generate the specific subroutine names from the +# generic template +# {TYPE} : Variable type name; implemented types are character, 4 or 8 byte real, +# and 4 or 8 byte integer. +# allowed values: text, real, double, int, long, logical +# default values: text, real, double, int +# {VTYPE} : Used to generate variable declarations to match the specific type. +# if {TYPE}=double then {VTYPE} is "real(r8)" +# {ITYPE}, {ITYPENAME} : Used to generate CPP statements for the specific type. +# {MPITYPE} : Used to generate MPI types corresponding to the specific type. +# +# {DIMS} : Rank of arrays, "0" for scalar. +# allowed values: 0-7 +# default values : 0-5 +# {DIMSTR} : Generates the parenthesis and colons used for a variable +# declaration of {DIMS} dimensions. +# if {DIMS}=3 then {DIMSTR} is (:,:,:) +# {REPEAT} : Repeats an expression for each number from 1 to {DIMS}, with each +# iteration separated by commas. +# {REPEAT: foo(#, bar)} +# expands to this: +# foo(1, bar), foo(2, bar), foo(3, bar), ... + +# defaults +my @types = qw(text real double int); +my $vtype = {'text' => 'character(len=*)', + 'real' => 'real(r4)', + 'double' => 'real(r8)', + 'int' => 'integer(i4)', + 'long' => 'integer(i8)', + 'logical' => 'logical' }; +my $itype = {'text' => 100, + 'real' => 101, + 'double' => 102, + 'int' => 103, + 'long' => 104, + 'logical' => 105}; +my $itypename = {'text' => 'TYPETEXT', + 'real' => 'TYPEREAL', + 'double' => 'TYPEDOUBLE', + 'int' => 'TYPEINT', + 'long' => 'TYPELONG', + 'logical' => 'TYPELOGICAL'}; +my $mpitype = {'text' => 'MPI_CHARACTER', + 'real' => 'MPI_REAL4', + 'double' => 'MPI_REAL8', + 'int' => 'MPI_INTEGER'}; +# Netcdf C datatypes +my $nctype = {'text' => 'text', + 'real' => 'float', + 'double' => 'double', + 'int' => 'int'}; +# C interoperability types +my $ctype = {'text' => 'character(C_CHAR)', + 'real' => 'real(C_FLOAT)', + 'double' => 'real(C_DOUBLE)', + 'int' => 'integer(C_INT)'}; + + + +my @dims =(0..5); + +my $write_dtypes = "no"; +# begin + +foreach(@ARGV){ + my $infile = $_; + usage() unless($infile =~ /(.*.F90).in/); + $outfile = $1; + open(F,"$infile") || die "$0 Could not open $infile to read"; + my @parsetext; + my $cnt=0; + foreach(){ + $cnt++; + if(/^\s*contains/i){ + push(@parsetext,"# $cnt \"$infile\"\n"); + } + if(/^\s*interface/i){ + push(@parsetext,"# $cnt \"$infile\"\n"); + } + if(/^[^!]*subroutine/i){ + push(@parsetext,"# $cnt \"$infile\"\n"); + } + if(/^[^!]*function/i){ + push(@parsetext,"# $cnt \"$infile\"\n"); + } + + push(@parsetext,$_); + } + + close(F); + + my $end; + my $contains=0; + my $in_type_block=0; + my @unit; + my $unitcnt=0; + my $date = localtime(); + my $preamble = +"!=================================================== +! DO NOT EDIT THIS FILE, it was generated using $0 +! Any changes you make to this file may be lost +!===================================================\n"; + my @output ; + push(@output,$preamble); + + my $line; + my $dimmodifier; + my $typemodifier; + my $itypeflag; + my $block; + my $block_type; + my $cppunit; + foreach $line (@parsetext){ +# skip parser comments + next if($line =~ /\s*!pl/); + + $itypeflag=1 if($line =~ /{ITYPE}/); + $itypeflag=1 if($line =~ /TYPETEXT/); + $itypeflag=1 if($line =~ /TYPEREAL/); + $itypeflag=1 if($line =~ /TYPEDOUBLE/); + $itypeflag=1 if($line =~ /TYPEINT/); + $itypeflag=1 if($line =~ /TYPELONG/); + + + if($contains==0){ + if($line=~/\s*!\s*DIMS\s+[\d,]+!*/){ + $dimmodifier=$line; + next; + } + if($line=~/\s*!\s*TYPE\s+[^!]+!*$/){ + $typemodifier=$line; + next; + } + if ((defined $typemodifier or defined $dimmodifier) + and not defined $block and $line=~/^\s*#[^{]*$/) { + push(@output, $line); + next; + } + # Figure out the bounds of a type statement. + # Type blocks start with "type," "type foo" or "type::" but not + # "type(". + $in_type_block=1 if($line=~/^\s*type\s*[,:[:alpha:]]/i); + $in_type_block=0 if($line=~/^\s*end\s*type/i); + if(not defined $block) { + if ($line=~/^\s*type[^[:alnum:]_].*(\{TYPE\}|\{DIMS\})/i or + $line=~/^[^!]*(function|subroutine).*(\{TYPE\}|\{DIMS\})/i) { + $block=$line; + next; + } + if ($line=~/^\s*interface.*(\{TYPE\}|\{DIMS\})/i) { + $block_type="interface"; + $block=$line; + next; + } + } + if(not defined $block_type and + ($line=~/^\s*end\s+type\s+.*(\{TYPE\}|\{DIMS\})/i or + $line=~/^\s*end\s+(function|subroutine)\s+.*(\{TYPE\}|\{DIMS\})/i)){ + + $line = $block.$line; + undef $block; + } + if ($line=~/^\s*end\s*interface/i and + defined $block) { + $line = $block.$line; + undef $block; + undef $block_type; + } + if(defined $block){ + $block = $block.$line; + next; + } + if(defined $dimmodifier){ + $line = $dimmodifier.$line; + undef $dimmodifier; + } + if(defined $typemodifier){ + $line = $typemodifier.$line; + undef $typemodifier; + } + + push(@output, buildout($line)); + if(($line =~ /^\s*contains\s*!*/i && ! $in_type_block) or + ($line =~ /^\s*!\s*Not a module/i)){ + $contains=1; + next; + } + } + if($line=~/^\s*end module\s*/){ + $end = $line; + last; + } + + if($contains==1){ + # first parse into functions or subroutines + if($cppunit || !(defined($unit[$unitcnt]))){ + # Make cpp lines and blanks between routines units. + if($line =~ /^\s*\#(?!\s[[:digit:]]+)/ || $line =~/^\s*$/ || $line=~/^\s*!(?!\s*(TYPE|DIMS))/){ + push(@{$unit[$unitcnt]},$line); + $cppunit=1; + next; + } else { + $cppunit=0; + $unitcnt++; + } + } + + + push(@{$unit[$unitcnt]},$line); + if ($line=~/^\s*interface/i) { + $block_type="interface"; + $block=$line; + } + if ($line=~/^\s*end\s*interface/i) { + undef $block_type; + undef $block; + } + unless(defined $block){ + if($line =~ /\s*end function/i or $line =~ /\s*end subroutine/i){ + $unitcnt++; + } + } + } + } + my $i; + + + for($i=0;$i<$unitcnt;$i++){ + if(defined($unit[$i])){ + my $func = join('',@{$unit[$i]}); + push(@output, buildout($func)); + } + } + push(@output,@{$unit[$#unit]}) if($unitcnt==$#unit); + push(@output, $end); + if($itypeflag==1){ + my $str; + $str.="#include \"dtypes.h\"\n"; + $write_dtypes = "yes"; + print $str; + } + print @output; + writedtypes() if(!(-e "dtypes.h") && $write_dtypes == "yes"); + + +} + + +sub usage{ + die("$0 Expected input filename of the form .*.F90.in"); +} + +sub build_repeatstr{ + my($dims) = @_; + # Create regex to repeat expression DIMS times. + my $repeatstr; + for(my $i=1;$i<=$dims;$i++){ + $repeatstr .="\$\{1\}$i\$\{2\},&\n"; + } + if(defined $repeatstr){ + $repeatstr="\"$repeatstr"; + chop $repeatstr; + chop $repeatstr; + chop $repeatstr; + $repeatstr.="\""; + }else{ + $repeatstr=''; + } +} + +sub writedtypes{ + open(F,">dtypes.h"); + print F +"#define TYPETEXT 100 +#define TYPEREAL 101 +#define TYPEDOUBLE 102 +#define TYPEINT 103 +#define TYPELONG 104 +#define TYPELOGICAL 105 +"; + close(F); +} + +sub buildout{ + my ($func) = @_; + + my $outstr; + my(@ldims, @ltypes); + + if($func=~/\s*!\s*DIMS\s+([\d,]+)\s*/){ + @ldims = split(/,/,$1); + }else{ + @ldims = @dims; + } + if($func=~/\s*!\s*TYPE\s+([^!\s]+)\s*/){ + @ltypes = split(/,/,$1); +# print ">$func<>@ltypes<\n"; + }else{ + @ltypes = @types; + } + + + if(($func =~ /{TYPE}/ && $func =~ /{DIMS}/) ){ + my ($type, $dims); + foreach $type (@ltypes){ + foreach $dims (@ldims){ + my $dimstr; + for(my $i=1;$i<=$dims;$i++){ + $dimstr .=':,'; + } + if(defined $dimstr){ + $dimstr="($dimstr"; + chop $dimstr; + $dimstr.=')'; + }else{ + $dimstr=''; + } + + my $repeatstr = build_repeatstr($dims); + + my $str = $func; + $str =~ s/{TYPE}/$type/g; + $str =~ s/{VTYPE}/$vtype->{$type}/g; + $str =~ s/{ITYPE}/$itype->{$type}/g; + $str =~ s/{MPITYPE}/$mpitype->{$type}/g; + $str =~ s/{NCTYPE}/$nctype->{$type}/g; + $str =~ s/{CTYPE}/$ctype->{$type}/g; + $str =~ s/{DIMS}/$dims/g; + $str =~ s/{DIMSTR}/$dimstr/g; + $str =~ s/{REPEAT:([^#}]*)#([^#}]*)}/$repeatstr/eeg; + $outstr .= $str; + } + } + }elsif($func =~ /{DIMS}/){ + my $dims; + foreach $dims (@ldims){ + my $dimstr; + for(my $i=1;$i<=$dims;$i++){ + $dimstr .=':,'; + } + if(defined $dimstr){ + $dimstr="($dimstr"; + chop $dimstr; + $dimstr.=')'; + }else{ + $dimstr=''; + } + + my $repeatstr = build_repeatstr($dims); + + my $str = $func; + $str =~ s/{DIMS}/$dims/g; + $str =~ s/{DIMSTR}/$dimstr/g; + $str =~ s/{REPEAT:([^#}]*)#([^#}]*)}/$repeatstr/eeg; + $outstr .= $str; + } + }elsif($func =~ /{TYPE}/){ + my ($type); + foreach $type (@ltypes){ + my $str = $func; + $str =~ s/{TYPE}/$type/g; + $str =~ s/{VTYPE}/$vtype->{$type}/g; + $str =~ s/{ITYPE}/$itype->{$type}/g; + $str =~ s/{MPITYPE}/$mpitype->{$type}/g; + $str =~ s/{NCTYPE}/$nctype->{$type}/g; + $str =~ s/{CTYPE}/$ctype->{$type}/g; + $outstr.=$str; + } + }else{ + $outstr=$func; + } + + return $outstr; +} diff --git a/set_flags.am b/set_flags.am new file mode 100644 index 00000000000..438deee610d --- /dev/null +++ b/set_flags.am @@ -0,0 +1,18 @@ +# This is part of the PIO package. +# +# Assemble the CPPFLAGS and for PIO Fortran tests. +# +# Ed Hartnett 3/26/19 + +# Set the CPPFLAGS. +AM_CPPFLAGS = -I$(top_srcdir)/src/flib -D_NETCDF + +# Is the user building with pnetcdf? +if BUILD_PNETCDF +AM_CPPFLAGS += -D_PETCDF +endif + +# Is the user building with netCDF-4 parallel I/O? +if BUILD_NETCDF4 +AM_CPPFLAGS += -D_NETCDF4 +endif diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100644 index 00000000000..7cd8d61f77b --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,16 @@ +# This is part of PIO. It creates the Makefile for the src directory. + +# Ed Hartnett + +# Does the user want to build fortran? +if BUILD_FORTRAN +FLIB = flib +endif + +if USE_GPTL +GPTL = gptl +endif + +SUBDIRS = clib ${GPTL} $(FLIB) + +EXTRA_DIST = CMakeLists.txt diff --git a/src/clib/Makefile.am b/src/clib/Makefile.am new file mode 100644 index 00000000000..eba8240a83e --- /dev/null +++ b/src/clib/Makefile.am @@ -0,0 +1,22 @@ +## This is the automake file to build the PIO C library. +# Ed Hartnett 8/19/17 + +# The library we are building. +lib_LTLIBRARIES = libpio.la + +# These linker flags specify libtool version info. +# See http://www.gnu.org/software/libtool/manual/libtool.html#Libtool-versioning +# for information regarding incrementing `-version-info`. +libpio_la_LDFLAGS = -version-info 2:0:1 + +# The header file. +include_HEADERS = pio.h + +# The library soure files. +libpio_la_SOURCES = bget.c pioc_sc.c pio_darray.c pio_file.c \ +pio_getput_int.c pio_msg.c pio_nc.c pio_rearrange.c pioc.c \ +pioc_support.c pio_darray_int.c pio_get_nc.c pio_lists.c pio_nc4.c \ +pio_put_nc.c pio_spmd.c pio_get_vard.c pio_put_vard.c pio_internal.h \ +bget.h uthash.h + +EXTRA_DIST = CMakeLists.txt diff --git a/src/externals/pio1/doc/Error.txt b/src/externals/pio1/doc/Error.txt index 774e11039d7..c41d45bec95 100644 --- a/src/externals/pio1/doc/Error.txt +++ b/src/externals/pio1/doc/Error.txt @@ -17,14 +17,18 @@ \page error Error Handling By default, PIO handles errors internally by printing a string -describing the error and then calling mpi_abort. Application +describing the error and then calling mpi_abort. Application developers can change this behaivior with a call to -\ref PIO_seterrorhandling +\ref PIO_seterrorhandling or PIOc_set_iosystem_error_handling(). For example, if a developer wanted to see if an input netcdf file contained the variable 'U' they might do the following: \verbinclude errorhandle -\copydoc PIO_error_method +1 - ::PIO_INTERNAL_ERROR abort on error from any task. + +2 - ::PIO_BCAST_ERROR broadcast error to all tasks on IO communicator + +3 - ::PIO_RETURN_ERROR return error and do nothing else */ diff --git a/src/externals/pio1/doc/api.txt b/src/externals/pio1/doc/api.txt index caba3bb377b..4f2eba6c2f7 100644 --- a/src/externals/pio1/doc/api.txt +++ b/src/externals/pio1/doc/api.txt @@ -1,4 +1,4 @@ - /*! \page api PIO user interface + /*! \page api PIO Fortran Interface This is a list of all user interface routines: \section api_fileops PIO file Operations diff --git a/src/externals/pio1/doc/base.txt b/src/externals/pio1/doc/base.txt index 21cfdaf7bf5..60c42fec30d 100644 --- a/src/externals/pio1/doc/base.txt +++ b/src/externals/pio1/doc/base.txt @@ -16,7 +16,7 @@ */ /*! -\mainpage Parallel I/O library (PIO) +@mainpage Parallel I/O Libraries (PIO) \author John M. Dennis \author Jim Edwards diff --git a/src/externals/pio1/doc/faq.txt b/src/externals/pio1/doc/faq.txt index 0f37956ea19..bce9faad6ba 100644 --- a/src/externals/pio1/doc/faq.txt +++ b/src/externals/pio1/doc/faq.txt @@ -15,14 +15,19 @@ * */ /*! \page faq Frequently Asked Questions - Here is a list of frequently asked questions and their answers. +Here is a list of frequently asked questions and their answers. +
How do I specify which tasks perform IO?
This is done in the call to \ref PIO_init which has two interfaces: init_intracom and init_intercom.
  • In the init_intracom interface, use the num_iotasks and stride variables to specify the total number of io tasks and the stride between them with respect to the mpi communicator, comp_comm, which is provided. You can also use the optional base argument to shift the first IO task away from the first computational task, this is often desirable because the applications first computational task often has higher memory requirements than other tasks. IO tasks are a subset of the tasks defined in comp_comm.
  • In the init_intercom interface, IO tasks are a disjoint set of tasks from those in the computational communicator. This interface is still experimental and not recommended for production use at this time.
-Note that num_iotasks is the maximum number of IO tasks to use for an IO operation. The size of the field being read or written along with the tunable blocksize parameter, \ref PIO_set_blocksize, determines the actual number of tasks used for a given IO operation. + +Note that num_iotasks is the maximum number of IO tasks to use for an +IO operation. The size of the field being read or written along with +the tunable blocksize parameter, \ref PIO_set_blocksize, determines +the actual number of tasks used for a given IO operation.
How do I test if PIO is installed and working correctly?
The PIO Library distribution contains a testpio subdirectory with a number of programs to test the PIO library. Please see the \ref examp page for details.
diff --git a/src/externals/pio1/doc/images/I_O_on_Few.png b/src/externals/pio1/doc/images/I_O_on_Few.png new file mode 100644 index 0000000000000000000000000000000000000000..8909c4e1b6a55900e93d79da445bad65de481f14 GIT binary patch literal 51147 zcmeFYRa_iV_bmtn5+s5hQDKy>g%a^B!D%-3ou-YXNfp$(N?@ZU zH3o}pI>BITh;+(ueKN&ZGHE47oaQ?t20fxURot*1sy838(6On^Ni4od@V}sY6WEG^ zicY&oii(b{6Bzge-M6M?Txi&CdEsLPss83h3q%7ENwS` z&C*crqspnaS3hbkqMiC-%`Pig2TMQZuEN~bEgt10@zmS5kn_!Z##7wa(O-(@!f&CZ z92|xsoPFPs!lA&`gN|{K_hU{s_dMV7(Y~Q5)nAiv~RTZ9>NF z@u%gKwy0in=(1BOUQ-6Rt~4X8m44Agh2~c7i_HUde?<41=5z|NAgl8;q3s*iESe3U zbtW3^7yU+8Uk_rM>n8X{DI5*6?ba}ytl;-kZm^N(QDg3o7nr9Yj#XwY; zn=R%sv(!#^guMyN!CP9lN-0X=fxd85&RwB>$1WuQ2ufyy>Y@dg+_? zhj@R7GqduwfsW2ZXSst#dvq-VJ}r*Pa+k?gJQd(yF}ITn;SlUV5fL!Buo38*Bgonu zEpE_%%}NfetqPi_I!*roRe~m7U1Tm&md2H#0TDZQ=fYS5 z{ZN+vaYJQ|6}f2c)pm7StbOHdK*)n9Wh3p=_9=N)|IwvqCVg&K@lAZ%+DvW*TB;>Y zZJk7S8PA`Mr>>f>IqLeZLMed1>SVQwlJV(s?JLDC-I=xH+;l^T0fWUO+6K*`jmpXo zs@;WH6mhsy_GsV8*wiaN#4PaGRSVPOG&T_oi?#4NUWxFL?3+;5@#ViawNy^B)Ej`v z=bT~H6E8;%?@wkwCsI)!d>+MsD4BHp#mVtH^uc+_At>qcdoX_Es+uShWA7(*`?k90 zJaSpnc?e5nM~@a~7N5$`oby!~w(WwBo1XkXh4OZz;KlqiN`222)jp?JD_mx#+BZ0$ zn{O&zl~=S^Thq^!I?}fKRQ^$6=VRPXzcSP;^p8gL*Q@xcM9ZY^iB?KcD8wO5oLmlb z6eIHXdp~=KH~bAF9NO0KcPoW#q<*xMNxv|iNk#Xp2se54L~_9IUt<`gdW%?pxy{hR z&5enzv`RCt|Di;IH$58T-=)y7fta@6h}kXS%Tge~t9+z-;v#=6duJ3?g_KXEocChs z93~QFHL#vw`D71n99vaWFmR~9+wvDKR0Ge4Cf49L%({Lj5H>VHCFb3=`N8)nh3a;o z{5brR=Td<_^4Yvz#N8!^CkkfATya!ef_@$Gq!G8yw;446yll+ z=;pkR?dvz$M=p)4c|F)unAMUNrkvkf@|m_(m;d19BFV%4>x@TzMDpM{J~pBG>IPdH zcNhh*H8|q3y*7DRE-(a7HIqNWT(|jcET%o_T=e;AS7_O=T<4l5dBdOndiKBI2EuTT zIB?mw9)qdn@L`?E<*>E7edJ9x#MJP=E?%%HT36C1StUJ$?O8u;WIn)(gh`L*lOw=ksq zg0^-qRHf8AQIB}Ei{b;HVTTl>OL7Y)#8h3Pno+BZKN%w`YG;NxK} zHNkge{{b1wf#Tz)bnB=lKl*HL}GoL=gXRbrrlJlapmdpnhT7Xc>>4DIXo4g zXxmorj?e43*qqLczdpQ{sr4FaoY&yh>_mz-Kav|{C4r>2sVm$8f#FHGdHdU6_0MED zfUMb2J+U7mfyJ4!hi+J+8C+|13ub>6L=HX56v6oT@-!zv?l6Ds%alp6s zr`Y4b7u$EwCm6ZO0vN{=s+q-)nC=E&9sSRHEAKPsa=+wOqMbiUN&78f;-0wjt`EC= z$N@j~YUKN7wiH|IYWNe?#hF~GtS`?R_eoPyW;)k}HIN4Z%-P~|5S!pl@PlJVb)J9* zuVxHnQ&g|!gjP9$sl{^b4Qw&KNsE2fC|LC)JY2j1_;*3-z%}YUTG-#+Zsaf<&3eWj zHW5c5V$Qjl2|D%Uh4+4YHf&RqSUr>SY+v<_vtEHRjYDOdPF|20Y%@QN6}0yj-I)C#} zvL+GgR$pK7YkHqXtOJv-+T8G#=vTUadI1(z1@rWG*LXnQiphzjm+(xbw+*eNdvTgM zyD2xPX}sm}L`WEd-vz32c8d&h!f??bQWEA8dYOUxC&FST1~B{E{WX3UIsA*!;_Io> zhF$YnNAolX=tb;WV^N+H`8f&gd$uowZhS<%8_T^E>0Bs&aseD#k&FB98n_%^ z`0cNujOxnWC%R#;#@uBPJmgTJofMMhbQQ7>^?5<{YY`?HbAf{W^3xf<$$pRHKEgWg z5dDvdA}JlLB2*W=W0yIF$)=aHyM#q^7c?oA=pMrV|Jbz*1smxZCT4g|r6RwAb;`g!Rdf3=ZGQ#a9GAwOQj0L zd}I2e>0g8a22cw8P_#raZ@ozOQbeNoMif1#Ut737FRqt2qE%rDvU7+XtBrCNt z-uHktOvG9W?sWfV&z=~%R@d0u)Lb`f%j-Q7BLXA!{lOo*dyQ;mUtpnLLbN?6^Y)AV z0A<^=&H$(T99Phjd6sdX3vgg;3(L*xn%-AY&a~f+)Ni!+dg)ShrRIe>VfdwS_gz1- z-Gm=iI{$Jl~~>74MjlH_V)v)?QmnfY03_~iN%1CPcG%s|RK)e;k5X2Qm8#)8#>A_bJ#mhzwDACWY0BX$=Pqw6>>i?t%p|w)D$K-OV4LZ~TN;NzA0$r>wK6VYZrq7lZDyhn>AL-dm;kz|T zw6AQex<6w-%Ziib#x+#VcVt-7q0f(Sa2Ou^h%u*9;6aO^h-1m%VpI!sKNGjRDVREwW7ROQ(+s?>xR^s15Bdn3c`G&AhZ#h3Atk?}7Y$mAgH_doX7cT9Cm z8+0Mh$-Olk9a5(@g=lRX=6I&(2Z`kmPl=;b?^NA47GL40>_X4Q_8pEd2S}DYaXcBO zS;V`&Vgg+Lj^)COc`z*zHr{1%t=oI;$G5Ky(Q;oDYGw>MS1Z`DYGZ!c&;e8DsdyA; zrG)8#Kuj;3i+mfMPsf=K(BrRN-_86ohOn9|K|-K+AH+X*$US!~J5^EsyG>DGWTWI~ zjWSgfn-T2|6(1`3vJ#4g^QA=7Dn2p#>!mkNZ2Y)Sw>Ob@qEnI(YmlN~t^7pUz&m?e zNy=4fZdP~#$poj=4XM zttYpNS^AAXvng#g5;hJtLk-lr8)M&ako>td_2cJM^Y^}Z3Qb1zKW}FAFbzSJWgsD# z#yb5OAIt5_O)FgUOoTR&%0PHu_59 z-W4CtnQK_LD?ZrH(v}AloBI)6yEYWh)P20*HyR{|J!%Kr6(mNsrmV8 zy3}m9Cf}`IQWCxC)Bh~mAtf$J%gB8_S65w&Vo7W`q>12m8s}=Te&mMf9~*;_A@5Oi z`$e?rPu$;89pK#x{`=hmhUWQh(!)L2QyC7AANIj(yN*-XS9!XB{!}&a8%`IeaARhA zRe+h1mF5l)>q(3H)k(ZXx|?4*@i+p*yue&<@-ugVRaz#jbkkvLYxB32if4f2_xu|n zCHX7v0r5wFV^cNo#p5~yinGw*jqQ&XX^~!2x+BWQo3}h|*CQd+tqPJ9uDH~D3LVKV z-Z}yT95V{H3ok)+X^>2#>AjN!|N6PDShmW>ysBrmGYX%+=5=ScRL$jug=1K+S*qAJ zoaXMXg`5+8u3qB*A?Q`+81VO6U($NTuzf)-s~+%!3w5CFDIG>xu}^5S5E@*~|DaT3*v+sY1_#%3-(DWM^6AT@_qp z#I{kfb^OIy`0S`Vauz(8SM$!k3?c4GA%4qEaK_IQ@b=C?In%j$Dn!9eo`W)07FxHP zor}Hs!dcK6;^}S{`FwP@h0B+V$?Ctb-h;!@>P8NmI2{TqGC%c&#d7h-hUpaWC%YjgHN1VA> zUlVsxU16p(oOs}O3m)tAUt8e_Wuw)m;ctM)#q`p_qDdA{hBH*2Z8JO>nkTN7NcDI> z_@2zG0nG2(_{Bt3Xuz5Ge^?9xv^v_HJ|W4%k1Vs@QC5!}^HS?SOrj5XzaA zY9QP5u4_UYcTtF7CWF92yb1b)&6S(&e|sb@oP>azR3W0ii+8EcwB^+wzv(Hm4kv5u zGDp-}At={Ryv2HJ(sMM4;L0b|txXP5(q3KLnN;QQibn`eBg1JcNkR9~1|eb2%kdRw zwh`X-!o!kX$v|^q#^Ca<(G!Z4=vdsp??UrzY0QgzliQDFHXetrrKsZgIm_8>*oakj zQU`<6&Au$=*IX#9Tke~30gmNX)-?FLZg*3|A&vqdM)FZt)d&c&TmKYV%SSCJO)Gw< zrBeg@gp`GUrDdg?hS2&~YJJCB+?1H)w|=DVk^khwtPyoK*O=k?|^qTr$ zJ)hS`o)y|q0q2*I4~&_*V9Ieb?f2{5*61P%^6!T5v#bPoW9!c|;x-Bjf2mFf+p0XD z`LQcB)mpWDK@5|V_4RrdZTu&n{4B=!D3sIg zPS)-|(!O0c^xUP;L7-B~u6m<*9x7Tl^9<^ zbo}P7DaFiS(f7D;WNV9SK&b!y*mem|VP@dDx$WoI+FImr4AX^Ia)xj~z1ebY4~Cu) z50q}q$o&!Q-W4omjIS1AZ4?)-k`bCR_V~NiLa9@DD?jnDK3Qbq7$IJi)u0~g<91Yt zj|#n-B08KVvv7dW^!rqPV4je|F$sF_!Ow|8K2mr7IZL?By;5?)J>>4p>WSKS1Uts| z)y|vI>td?v5~@s~^K|yOZs(aBuN2v)bfBeagXOnU*EYyI21!u?Vds|9?6(VNKNfbv z5T!zAyX~}@^xL`K2L3C`zvr>Jx%Feru)o6KbQz1Yuc2xTu%h`c{OKTX z=9JEi-xM81gj#lO`iH-qtzyaVb+&>4g)a*vx!z_Js(LEV%6t?Yx_okRhI=L63nX>% z(L;9=SDKn6zQT#{-Rb=d@Qm`i&EDCVLyo+i()c|XBWo)@q+(3zbZ#-qy)Ni z4qdDDD7syIcU=2+Fo7GpVo*gK62O}kBqv!gYzScj1Q+os^tuLkpvwHJxp>aZ-rft9 zg70MlWXW31!suJG{J7JyQ6sQahe4Z>wG`92-rOsz3)a6HHI2&~!U?x>L;R^q1wgj} zkS77%*0{jFq#&oT`PH|xkaxpvVT2iHMz6(Qehx9tqVc_#K`O*sH{UqK1xF zfpn?+pQ=fg&)Pa8=LZaB|7rFtk1TSgG48rc6Q1yi6AVytwfu}Z6fw3FgD1Azbc(JT zm_`ZIqf`o~*qgp`a*-t~i!uvilNcv7iVNvl-PcLPUbp)|vVereMrn=qZ_coe6{;E# zdC_oaOwHI->&f&lbm#Qi0+xZ-^3%m!*oznv3^mqIWEzMPR=C2}09A%7tlu@pS_|Et zPPvfp)s!PdI$#*1M>cItRmFY*Jw~)!`5ehNry>POa`iG5bfOnpnzGd>Y=7T8 z4Cal=yR%<>3fKR5lRy%Iq=H^Ha;FJ2gB{gi($RJCvj@02~lWe`SD#p zVek8|J{{x}VNF{56_grIwUSgZT0F^ok^VAAGq+i(crvPfknPkM`5%aGB7Kxb?RykTY#CzZxiaV6JnW|(nBD4y@`_Sfql01UlK zuf)noPyBic5r(_Dy=`ac`6sxgzy0Lz`i<;xy%%B^CUzrvN}We*18Mr_^FB`H z{XQ>54&K;Z9<7$lIJGpL-d*q4u-It)JZ{6{sA8{Mi5>qrVKn1?*h!=x3C?jF)71WH z7K*XgD2JS0Pw#*sI?TJLH_-_gxq6 z6dd8AZ=2B{yQ@Tq>5oFTOKJ$=qmbhP0ip_o&gOloVMCauJUMIke$)AU5oz3ie2?3} z<=4B!U@YqE!{~rny%v8z>Ut;@N(htK*`#^rH9B|fMLXr)4{SJNrf0U>j6)5?x?E^tg?Nm5M?5;u5}dy(giY*x)>XQS#8jGT!D~I^R+4mv z4bHLKax$zCJgY`29^-A1cBo3ZfBbSATLbm-PY5MDP3MWz`QF@<$O8Gm1@G;W@evjA zx%%Tl;qYY%-eg(s?oCGVOS$dRhCP<9K7IqXul_XcRWg(t))Dq2U>o)ScsdC?7uxHO z5!6Allm)+f$hbqk$IM5x`rThIEO0bHxoq2e$jw4FsQb{_aP;U(Sx|1e$ei$FG&|gv zyCQ=%Mi^ApQHiNxMl|hgBQHPpoWU$;%RrepI&^}4wgj@mF7W1v4_8YU7joYgB9J%p zUPQb)`*2vv(VfSehl~<&K|8P`BV4XL{YS9VT`;jcLr|-$TW6E88x2Fb3-<5K1T+HZ z+~~`);ex~1C1qAzIfHqvVEC$5_aJ#P%OS9toQze&w<>8$xg-V_17!;3oEA`2s7)ne zyR5}%R$U~y&7T}EC~cxQ*?Yu1#D=zB*kg};*pms=fMdEBqCBnoFIR#-E3oS+4Zjba zjP+NbBNQqL&l^|bPdFOMx~qbs;60O8mP>HtPkXi!RgDd@h(Wi>zjhZc$$yzW+QSKl zsg4AwrPyNqTD#Nh@D-$jf!>7>I z9mW2HiL(E!@oCbGV?#-Aai8KeXqsb42F4f0c3#LWgpW2Ap3a<~<+bjyo#U zEFy(*j%X>CFzgb^nu4Ru4c&G-PG=R!R=Jd$rRBMJq>Le*1kz3YZHg;N=b^ZGhG;>_ zHk`4c2IC2}ndQHq6Frd)SwlgN)8nFb6U#G7w2gDapMJE52JR51Xb@!RqC`u^dNR8l zp_t{fSEqQF``;#m^2nB=oCKC{+jnV|&r52YG*yrTGcvz_FYDCe9XDAJGFw&ZC&#=gqsAq@&}- za*jzs3l5M@Pc{G)Wh~N-+|4(}FajpY!DJ=&$JUwwi?1$3O+Im;8CcKo zFgh$Y*=o923dbq{>5brTFtyG_6tK09DqQiOzA|oZl>K0p!XLU<(X5ZGOqs7iXtI(z z`tIsZ<^Dt^Li@jw{Q&8B)bwHUsB!T#Os(h!8A#phd!N_;yrgTLZIOS+A>M8tM|wCU ze#iw<4UB;kBbVZJUdVoBK?cv)IL_(8RCx%86Q#mjsDIdEz86MTo+$`JQfIUsJXBS@ zyfQKxVQ_#n*5fQ5B?B{`hzP~PHGmxmX#S;47RilAeXIk5;asuMuQaVt-3+AsA-Jq= zV4X^$PZ*BO7Gm3;^P1-rg5Wq`bH`n*U;<09VR7DqXbR%uEv6-CbfeCRM)EI`^I4Fi zmgRDOTOxyfy_EV~lOgp<=ADYaVJ5CmUt>6X@0jUpGXIA1MH|rgi8x99ckyKW_DpJD zQ-UylNf8R?zDbfUPe+M-O5+T}qD}Ab@dffFKh&z!pss>|aZWODs)ilyb)VT)s%|VC zMUj--foFzy`}=*Y0=sRD3*dX$-6VxG7=TSHkkmQOWnGKE->2G@Zss~NtV+5|X?O+# zXD#wH0!b*3l$#V;z1w;ZaDH8&MWGtF?0)#t!~!Q2=1+rwy^r%(YQY{a#NSYMkVcM* zmI$ll?>^b{ecBX(Hnc8^TE~JiTadxjs(OH90?XtYI&bv<4+pfUT``-CsHBf`AyfZa zgj$=?frAX5oP0dBf&=QIefZJ#(|gl#o;dC{9l}Lrhfe&B6E0cVjZ9G=vwCM$O52Wp zdnNtZ2@wrshA|;b&Sfkfy?vDr40EX(c3UzAz=jy=7a(=x+f4f}M+$_clpI5t{zDGi zgRT3G9)M_z2WR#@Zn5LbPZ}OCoFigmxo2&7^%m~VYRE&Dls_iqy{Ykesx~Lu z3X)4{4NplaYdV{zA-Eh?;CR*bu_{)X94#3glHX1BQ{e-HnldQuO1sQxF1&V_fq8C| zPRBrlDgTWJ?&1-h&a8~m|847C7W~fnVl+_k0Y*B-)Y`bWCe*5l5^+O4*26@TIB}+~^AFnpI7RF@-K!MqQ*P7Idbe#%FDXKE{J0*gd`Y_a-5exZ=f;q?aVUOs zZWDYqpEh2#^#$ppGwf1D!>-52lqfd2-DGNI62)kL!rqh_HPu7Kcq;jJsaHXPF-w9B zXVwN8n0|DxDRM?ZKScuu>!s@jOIAw!$sD@cM$1K`H#- zS=mol74))o!Cv6SNE3!SyT_dwoTuu3jho5}Cy6}1B7@P<7Qvpz9Yx$EP-2XhmK2_X z6mm}d*M%3DyCClHWpZzAVLEb^GRc9DMWQMQ@e{J{nQaFdB$Z<*0pw;P>4z)?Z+0?&l1B0-vSr)bvlRdyRn6J>(Xy@+aDG-L-I# z_p11}iJVt7+*bE9X`A;RYLFPg?C6^ohLWW33~(4yWxsdga;4K$;;P^we#}JJ{b6Jk z1s#_nohJSkqaN8vo*X^EAH1^8pv_$x=F?v}KuIyb-Bk@&5*(KOM=7ie))<4`FM3}m zP9?f;65X1l&qnKqO`heMFU{LlTR%P2d25`05Wf1p_>ee%d6{t?VcH^4ySO)WgLz2t zPWxCq^L`z6LDStxiI#M~+(R=oe_^n2aWfq@x&Xf9k^!j+8B=8%Fs=Ijx=ZKyB4?50 ziixKL5r0LbJC*7GWv?GqUz13!=w*IKGSuGH$gF}b(Kh6eQ*3(uk&J9AL_6$$GSoXg4wxR*8NJnY|!qz>q9k$g8z z2vwSEoy*i3uUg)X6)yD&X;*vkq8XzIURFLcemoiFlUlo_q^GOckn;ef<_dQ$HM(vP zJRA_=rFb+tP58|U4MPQ#m&OrF5y#J!#$~2h^>fXC8ax)PVP(4}^1+6igm4{eOGd|> z7ry{hfdd*OfpSgB@ack{G-ZK5)^(GFg5P=hbDF<#kFm2LD6lR@7ll`a5>G@F)NJ{6 zq`Q(=D8SNODb49Rg}|Rk>>?z2w5nGP33LbWyDA zL)pb{0=Ja`d}Qe(=Q&B`0D-oFYWfS-uCIUBgozx*Xwi)BOpx)Oy*c6wX%~p%6Ehb@ zBnP1Zfr|1OfapDww@wShdyiheb*Xb$bLrywn09%;X?A(oP3g3TYrrOcbI?9ufSV?g zz5eS7rTtpAHroOK5Cc?WorqfC7?S4hUoK>zm{!NeZ|rwEw)RY5_HE-s&P;uPbsq5v ze0YD*Urv&O9d=qLGX7I)vxvoG&Q06cNXD2w-R}W!%5QFt5$CHY#%$}{vq{knPN!RA zels;r`|xf(w)OQwv-`%#Tl!I(Q|{L^JirIysiZtUCuyl%YW=1zMAILTz7c{ z=h&y*ekhM_EDQ&d`LEKZGhZks9|*P#62gbnqJ-9xyKmq`B$i(^)qd74sgRPR^cN?5 z@`?a?iE6i+)1{zGCL@6!!fv6TqP;pVQdO9z>wCu3-BrZk&-7P_opPP1R9uh_2#lw; zC_5+Vn*s~MXCEF8QkTVy$$1_I3E+tNQ|0WW zS?63v5LX03W;lX3Y0Z*J-ws$k6uBhp6){OkN8G0IGj;Un%Op9IU=<^yL4^P#t0*&J zkpIG&LJ^96IS_6k7>ds&@rj2l^AxT6BT)K5l>OdQ%(p3Rib(}XJXj2PW-)pcFTZ_z zm}&rW-YjRBgCd4nSh`qRq!IqbR%2sQl8lUMRm_5DF9Z*5(hMjqyM#ryKI*c_eE>hO zcx9Ayv9<4Pt)S>o%;RJ_wXfPGdJp9l`Ad|W%Ep^1rk@Z;Y?J9ayZDv&{@C`@p6ncU z;BS$eUS6!^tSwb6t%TtyY%aB}mAEPB;k;If=BUI44vek2);C(RjHHlpv!4x1inuqIA67_G1en6371AD z6jFTiR!$YHmIWw9rD|W*FH7)D7)Fn1}<_jD3Kjn0Q07F)i|wZLAzQ@b7Hspz|c9Z`&Am$ zB^uX`a6PK9iJzf461K$OUXM}U275h)X=SaIMgGSiI0&(8`|TK+m$qCaggpEc(t#s3 zP6VofQ;(6?P9MDx`R%<^-W|qtQ0*`Sq>Y&NM=Rw{@iR77*Lyh>uapt+Bh})pDhIU^ z#>?$&Bz-o_A3dh1!*EyM80`)|zo)}*Q3b()0#5S=Jsh^bi+v7$JpsNki7Bu6tYs%> zM7rN{@2{$pHw)>ehz#dwu033)yswS9cXE7l7f=rYh$R91d?7%5-}vxnncr>(5Nrm& z>J>PeswO!~7@4sOr+X2PB3Vmovmp;m>gZT@xsSEX-T+YQBIg=B1hh)@#xAZVTAF#v zd??^2Kw_R}o^M(Fh(!trPDYx-@nZ7L%^d9Nj&-Yv&8zUFbJ6RaO23+UZ@UHhB!f0Y zmH{9E4iK>K}$6DHzIqh&2(JUHEPdK29%;+wBiE% z{>jIYPQJ@^50cs8tSe%d(vJLmOxt+Qb2ULbjO(!8N>SlPNi*;jA)1awL~jdS)e(n4 z37_3Kc|3{|rmGNIz4FH*wXZlfTe<$$AAkT;M|SMOO4_{NrMy{uQUZ{avYwki%t-55 z0b;Ja_(YPrR(Fr@vMPOnC04sovnNjRC)E}P+((|!*xHA$_ZdHkqXww@B2Jn4$i+ZG z_7l)6%~JHuT}apylV0hM1KL(i*!iI7`K%UuI|XG^QdH=1|8TBCxXdL4C&_Y9CjFC+ zRq^&j*@Ni0!15B&-AKgd`YrL2jb)>x{y-t4?rTl+dDH&SOy8qkGv6wu1|q}vs$5zX zg*t<|HN>p&S*w%1hJCG{BPRly$kjUdCNW%}(K(s>d?glx`~lT*pU8yn3;-$HYiXEr z;N{YL!1zBO1WcV4Ko#T$uiR&)Y2KHmTwrsp1c=`sdl^uOdqvW@2=_-(2#4L@-`rcd zfL4egY{pNY;nDCHt_6DnqlO72f;%#O+q!_fw~Z^YL2E8H7>DfiFy*enGw>=baRp~{;JfT zwlzIn2%?TXr5wzmI4e#6!0=AC_FKtVf zKm!A%6`TX%z_u3pRg|V3o&V#s4R07$1(e&3epf>*2FYuk9Q;tj6hw2W+Ju~czb-5) zWtpD;VJcNF3SZ?yliPh2jnTVm#?Br7!t&OoM^W z#{ND>^#5hSSSZGXW|${#6NcKbT!;&UA6Dq9(Y$gn>!!hF6iR=BGc5T^_MRI}5BRhS zgVXGD6?IY%gE(^|f@h{qC-g@y+!Uo8Hkju;< zPZSkb0+cGJkaznKUeK=$YTnqg4zo#qF9U84Z%<+Hn-#v>Zv(acVkZd>Ulw5*fC@@S zJ9WY*HXqH!#UG_^u%^>>*tsew2B@{5rZ}KTp`~lJyV`Sl)v}g%yBfRgXnVVO#|TzZ zvx&w{a%$X;iMqD;yqFqaU1<90PI0Te(6C=HS8@-T&wVt1eJ2|I^X~2=tKNc$hqT@4 zmCxg`^-1uKN8Rt5`a4Yr1;4on^B-EdsG{)W_jKhVRX`Zj1MQed8mCI+N)nL;=pzMl_2Nmy&xP@0kYYVLjfw!0(P zaxk2{oi0Nk`6V^-UAwqwiQ7&HW3@kIOPsYYU+h*PSoY>Do#W@;>{%OB0drS%=_ufa zb-fYmm4)%P)nEf;AmMHDguZVypkeiy6Zi-CUbLcnZ@&Si|5>Ah7TK}7QlmZbW` zxauOdt;x`9?tu>yA8zDC^T+UKHyg~-0fhs3f9C-AEQ3@~qCNFpcid|G&ToSi*sJWE zMiqlkVL)pk-z+)P%NvIjF`h_rKKx-+LAH|*lH3hedAE?Im)5#j;-9bnb%>VfH ze3ul-&Y^q_W1He=ig{PEY|3DC28zf>l!&K^Il0{dN9u;Xo1XY4TQ_Cl_uq8xrYG(z zCIup|a7Ax3;{40_ZY#4`QR~vqgkD0A$F}##e>nazzNs09Ek{wtBDu~kU+hmc7Zusm zq7(yk$^}{3x&h=XH@2jJXDntmP0r}hymGJ_B8wvKH2|XY<)UJF^V-e#jsx#Yd^6kM zq6EYa8-TMn6xWs!{gT>Az9~Q#=1=Rqf5)!nu5LDpI|XB3d4^*Nws`3TqD!2*6H@sh z%Kg*;b#?Z)gYYN?f=pKUe8|P$w9Cp$GjIMOv({QZF{p%+8$pUT%Zm*we1>Ua``RB-L=TUW z>shk~j=|ecGz0p`gfXf)B9%aqZFjgztL)vzZTvi$DLkIHSp<7`RRPENsb_Qw-zDy^ zrnh|2J`er;E+~<)Z+S18(w)GuEDgH>7#aK$NBu6ug9Ri}hmF|-4E40z^%0`WGNt-^ zmg^fp`Uw+?eybv4-I28_squcSQ1e=acyvGrO@f}Z-@k{^;Sh$rwI=q5sWm-(GD_c> z*y%=B^Lvs5AOICq$ux~-IgNxZlUnLc0;+&^-?eA?vw|)tSBxfXw@uRyD^%(P zd)ggE@iph^&91o7+p15#wC$e=Oke_z;T9F8?0w;!UCqB8?aPz{H?>nA`?Y_55AD3*->X`(b3_doWY0a^S4}&7>xb5GK)5bfP6*<^z*uARKIWm2kHVt ztB%AQ)vws;^Y{R5jW9-nJNV1sP5N&r0td_@!~sGEpV-u>Z*i_aMU6RDWNGD6gR2Zm zRmq*CptG%0tZ-v;?o#~#^4513mR67j36VI?*+VZkiQgs;s}a)Q3Nb(1aqQ~wB?Z*% z%sQrD(yKR<0Kx;>{5yPg5dS=uB5#rdbTRK7jthwxj%ck2FbF}4BUF@kGMsizK%#|= zrh#o@-oTtVQ6ijWgj71;a}MplMh3&=Jfenlu9QKZOehA*AK0-tW47OCv#y93eSx|i zq&PqXu1z)h4ZA_$6 z^&!{OUR_%Kyk^{+)p;IEbN2-#RM2l5i#a!RY5Z%@`D=dcJi`D@}GRXJP6{ z2Tcr4BK?@*WRytfV-4itIFd)=>d0WL1`>7Mz=9;#m)$H%AM%uF*3-}XP-blv4~OLb z3dmQ=m?xUrhPg=5Uy*1vpu}iX^pX4-Na5dE_GwKO=?EBO!fQ1x6be=6U%pJ`5U52!GEbU5ib8bpBexXVcf#A#4c z=3ZF?0hIJGGht*fI?$0UKAw2y_<_1m&I&s=1gSCrf3c9{+ekOrVWoUvXd_Llta-eK zRZyOI55MY$Al7?B%=cr!68r7;j_JopHs`Bs)j5_|{D!-2Um#oEzeX-4RZl>2wZ9;@ zVFWrdFKLmZViUkYF@FG0eLNCx1B&<#VMJzdNl|_o+(G>TNX~&V!$&&UkS#gd?32)Q zoDp8l1~TL*+uuD*1@oFH{kQe1Z(^LUwCP(x@3&EjA<>nR>O|ckOul+gvM_M=h!3OA zMLpuiOCDBQ&U6D&K7R`sRR!ph5t_bL2I?nu&D4E2Lj@)Aa8O_K)``7pi>~7WFS+ zK_eYvNbN7zYxV^KW8j9+7L)h7DjZ2Wl9^yp5R2D#j{H7XA?Y>N2{9&TZ18VxUA#C} zYJYTxh_~a?fpP>^KI1sdmiO)`{T3=aMAmvymFzF9aM@6~ZT|N<%G@pH=(9Pty!EE)OA|AfHh7 zbqC(>tS~8UpchlEKB0xb2(*D9xNJ22qX0Xx@QUU&qifuHxu|R|X_XQz1TF~Oi;Y!m zg6WCho{TiXqAH(>7cuBr8;;@ zBB6xxa^sAfpb6%^$w!HhrTux>g7n4C4&|IEOK9HLCb{D{JxDl$5GkYi zX94Ld-hvONc_`|SAF833D&0->8ERj*=}O-b+Nfp9k*tLx^`i{f0WKO4`=ZU$?)|JsP_4#xOX`Y(IHR z-8NMrCcPqWz{m`J1BcsIikfjII0XzPsmt*#Vx+(!<%5^Uzh2Bo9QYrpXU$(e$-l`G zzJpw9?lU$1oi0h)MK?1IcT}%*N$7VP7gZ3Bi4_QJAQug`5++b{!}$de6&kb16Woje z>Cz9A)KHinZ3KkSW{GHSWr)BqMMSR- zQMEn^I!`ulE<4Zzv?u7p2_o9(%)epSJe3f|4{QEfsKi{-NTDCK2vB+0Y3mPFrFt0D zJVulR2!^z+6dBM`E!E0D27XXVjxkJC<+ZAKil<^nt7J3EqBE# zf`@}1RT7xIJo=R1n14UP*k4ic->O@bWZ=C#I+*sW6L-wrZid&kQ;$rpw;Pst!k|Zia(x^`H1wt znEI-)sJb^^K+r*n0hI3cqe1DA1}PEgZjc7)R*){~R#Li$4ymD$knW*t=z$^TZ2sq5 zoEt89c$mHS+Us5K`>TPIthANic0Ch6DeCs!B(`#}dU|yFmxLOXB#sg3x?b8)(eW&R zcT+gsUpPDckp%)O-lp>n%kt;9j|wV!v9tju0u33wL55_nYAjpxz@bOTds^`mA8P(5 zE+#&<%*O~26iSa$Og7bQ64jBH8VG#}c?cA1DG>%e}sRQROAQE>^3A zEMJp0oV4bFO090VeGmKSrRCxmO%#_d{BoTBN(A!1R|0Uoefh`?aBtjs5Em`;6oPko znLMshA6(&Vwtos}_|S>ZM%wFSxFgz9^0H&+0Q zo}w<9Vka_``wZ*VAFx?w)KG^+IP&4`o6w{rX!cA0Qdu!qc3F}sgEj53B^*rxdMJoO zm0VFt?ibhCXE5`0b7JWG?C3a{oc@x?$Ta|qMYBcvtvQ3&zJ(x~26LBwo&47YQwgfN zTR95t!V~DG!pdmzPN@Ul>c^4T^c|<;sH+~2y1bRJ+}MWw5Qvg+z&rsg!kGSPkF`yK z*){B)tD2K+sZ;(P^~U?pyd}faaVBzPTRDa@go?84womr_A1QN4#2x)a_GG~n4?%X3 zIHQDWQeS(=(oS>|uc{HBc>m~i+Q9P?rb&HCr)CZagHP07`V-~Y&}z4=jk=JM+#1(% zQUNHMkla}FPLr8346ybPuBcH;+@v?7j+3A%?D{uTr~kDXqslrRvgd=Rt&TY#Qes6crFK!LlGrJ0-3z;4pIE z!v%+HyfleLhgnd?iIgg-7vc546RU}Bfssg*)vN8*{8U4&OZeyOKu`0IJ_UJmK@g*E z+J}L;mNSL0ZMVEYKW1ChTyE|i=lxl|v915rETGyXS={jqUd3KeiA%*`e}wi21i@?n z)k(|zPyawppw65mg-M{E67i8x({hr1GscoRlipP?(rD&6H*JeDW9U+?vVU7_+|xYO z$=C!<=I>IK^C>&n@~@9B?$$sPpP8XjK@mf>(SL~|EXiIo?+^1OC|1dR@b2eQpU>dA z)M}8u7o{Pc*y={BRYfJ3rp#98Yb$W^j_HuH*^Y}E3(D0gUB*5`7uWHM6M5J>k~_4!+UuJk`J50u3T}q2fm2FS^g~eW}@I{EyF#S!JHli996cE^sLh?A6fZ z=z#cYLnzhrEa>DESj~iwv?b~!-iNc^4|Cng9keCeMfwo*vHodOTO6Rj{3!7;`Y*li z0PSs!n1A6hX=s5{F^7&$eGmV%(mlHd*QBw#a{OB)6!J0!MmnGBA;^CbAuJf6UL>UT z5&}z`H0FF>egBL_d2ZDh+1FBf>sXT7ajr{SY2an!d3U`uDc;utgVSFA<;=ytJT-jt z$|T^K&9{4@qEmly>waP`z&8&^snd1UOWxN6MspRts~fou7ltWIuq?=D>>b!F;U9V0 zKbAR}?`LYl1@BVnGJNMPQ(u`WF(z8lSIO|{%Dp5o#w5^{BjoD5JEK1%v#j|Ks|810 z-O5qU1I9ZUMN3~OdY3BZQ^zL`jiwr_86!dY% z5Bp!g}$$F!w+t(reenMeWmDTp8VB>Gx`8x~7Kl&Ac0H&F9s8sazK zRWi>XtRw~3ViEA2F3f2#8nAYlD5w$sl`7;B^P?0%cndC3el zsaQ4X8#MLOCic~30ZcCArVW^&A6EcR&1%b1j$~0~WcavEncT|Pty_)Jc>xsjOCTw! zPrCfzqOF{=_o`0bnKGZb4NB=YLP3*z5wVRrb=q+d%L;8=-jucEVOwpCJe1Ro#6pk4 zP$;M}&{p2Fq{yqRm#2GAijdy^O`>j2rQXllBjW+6eCXybf)NDeXZ~gCBc;dEvb*55 zIehw3%{pQRUwdhknen{%)!QO^24pzneeA))@{WE(?5sOR^cxS~yF43Lx^Ln&Tn8K0 zf&e^7@j(L0^qhMmOYU1q>I=N+gip4ds^DMp9Y8>U&yDDQK-{GHxLU8oRp!@EM593S z{3yy05>3xa%{F|0($bd28x1K6fyD2{MBv~*8iN?CigyYF!`&;!hub6v;A1WvZEmRL zZz!04>Y?CAmWonB6MFw}6WxW<-e)z@^xuCbTceoFNEx6q2J@U8JiG&H`|@cvd@(Bk z7eK}<7xKfh07sW?HB)JIQKeUgW{%`_`44W3tPc8YO@Aga@;#>7VV*oEm%EEH_U5~l z4^P>;_8{4@G%!h@X6JX)0#^|}@$+YbWYS4SGUDxVnF>NATm%8tW&uoBVH-!hz!80S)e{ z-@n9Ev2|;Kvs(|NV=Auh+nP8vpZ!(8Jw)Ia#urWiKqFcrLs-L5tDgc%qt8^W4ms(! zVIojCzEoyNY0GEC`3m=$NO{#dK7g>KwMq6rIkTR{i`Crjh5&bKMpMW-PE+Ll6 zII(gB?&VF-j_kRfN-~SZCJeKm+!1WnAa_@ll~5rlmI#MAW2Sj5Qb~ySuojo}*5TF; zTE~kcQfp+;i?S~~vpc4U;dNZOLeTVa234bfF=&a~lyQbPZf1rCfadtIrE~SFW#*C? z9cxqJWqfJ*e<8@`ft*opgqYGk^9NNj84>plNx>#e(3c-KL^Ah`441zcd< z@N{|tsgoy&O-vY_L>tHxsn6sfBR>B$J(}oUpRZX0WnR9F69Mm4OkU3;zS<_wD5T0B zYG2DKM@GOMlI&ivP7f5^`X7)4?U@Pd1rw^_@+ib*3RarGj@rv~L`mHp`_iYb`IHV` z)f6&;11}X+yh)1U3oC!+Q7iizwTo<6uneAj&_S%RaD>hw(ZMd!0W8F%Oaj6YXp926@8m~JvD*q3fw zf4;a`&aQV^(7}ewOI+2kJX|We!S7LHx({jN>teK=;fl&^sx05>$#rrJUaK(3eT0eq zwjJWah*>I1*wCT5t#!cb* zI6-cQYX8}ty1btbJ|PG$tYqD)IhrfJ_SJG{_cnB=;e~5bAv~b?lB&18E{eA*xjN%D zn@zni4R=bN)JX3ecTLo97P$`F+|^>&m)YhYFUbG{&-3c&zb;o%qY1iq6hB;s1|$Bq zXB;U-vOtE;D*ZJ*UUpfa-PbQ#@zeqbT zGqO5*CEF)&?A0jVI*a=C4GaKO$V&R!4Xw@(l1Sp=~m|YJT%T--5^{aAI220xuE$w`83N9i*5m) zQ-LUe{&e*6f-XLce+uFVkN^X97#-sEm559X+lseDwN8|wuJv0NE*7J^8F(+5;jdHP z?4EzC!qzt3be$-dwMPw=|LUs{-?I-Q{v$k4(LbnfaTgbdH=W~m2hdkWQGM`dIp1Yo znqbXsV5?f#N7V6onkj)tfBnTd6J%KwAe(Up!kx0xGkm=$q<>q>?`pFUTP&+2{fl@F z;N9cdH*C2#4ZZ;##XCnROQiLx`A7QWx0}>5C}TbL|NmkQ&AzyO4m)a^_4ti|Ut!&3 zzmoB3%E~@cVo<&H*rq)&F)OPubR70ziRrG9I5oaoz}`V^aG}n(!&n}cd^;~iI&Z~^ zjtk-dmgE2a-|OEbCRPj8y*R#JUKZFkqyVM;>;U9;Hhr%1b(z zdr`0d64ZLY9W+Ion3ko2q-Wxa`6w;$?Tt^>u8VyvF)$9$hU`@BDfpn{r=uZkpgA z`s-*NM!pS02W942P2_mg1tv>vuC8IYZ5B_nHRuuw;&8u+dl#7A^jY;Rqhp-Zf=X1r zDKp7&)8`M}wX&7pT@&mfR}D4ECBc2VBYrkkg{rDUHpkCaC{PWCnuBwpB1TF+ITRy8 zRmVcD*<-!?&}&YCU(#M+ZTWkTtpc5%;I3|5&e~@6ZP>);w`Y^c`SAd)qydIF(aDz0A4+_P?4~Hw@$=ivQL~%x6pl84uEDM1kxz36bRrFpN>nW@ zf0y-p#Of-FdGS$0U12$#(y-!>Se|*5X|w>irM^?!shs-k%}(wra!)OA0eS4%x!3}T zNAw;Q0tbLchaK{3w0?XGV#8t>2na$TTID(uEvSdvC|AHh)_B};dpz?EUtEWM70?{? zHR*N$QdIpoi3cwioDS4ITs!tP9JYKqS7`17C>8YCv@7im0VQ+AqvZ;gpY!nWFax0V zn$Zz8{aXNfRn`EQ!8S|Bw&**-f zT73VWZbZSDoQa8C1Zd)?kdGsP?4}n$*?9*(*EEO?ojv_^?qZC5w{Ah4UturZ8Sl1V zWLSA!dwdXh*;o-5a0u(Wy{KElyO)j^O0P2(P5}UP2PoUfBUOyo@*zI_ubG9gdHf$4aUybOKGPaY!`lnW5UW@P9qHRkekJ&#g$eP6_J zMe?Lh;9Z0ceN^}wK>94}0qjUkw2a(qzniU8eY=_R*D1z+r+qUBK#O8_GjE++@oKFU z5qObL^XkXgIEOyudGJlYXnrvL^#L!lydEe}$E;^VBvwLB zHL>RyJL+TFZL5ebwdWDAEJYEXgZ<2%N}Kz~QKjbI_60HVk9ozQ`R@VM`?l&~kH-%G{t~Jm3Qz{5I>t<6z@fdivww+r2@ix-bqcMC$l7PF zwqLldrSl zIa+8ayBy&ge@UQ+47G>)nD?eahRpNS6ol^=Tiopq9({dwfd5Vw<&7E>fwT9^eo8;( z?f_)##DMOoKn^>WU==7Mh<~L#1edY}d$6*q4n1~;iRnLBnEjDBe2#g;AU>G+5+&4C z1mIE*Mx%)<=M5-aksj_hq~|Jrwh|5~c$I(J+s z1O>m#trBtiFqe8nP{(T7Ca~88i#li8VU!VE(IVPPa3k9hn5m=L`B0GFvipR@W$}>{ zEJ<|Zfx8)Py0?M!S-Q%13@l6@C1OG1<63SB$5UX_8(Y4cWx4$FU@6hZ#3gKzbt@%rB z9)2H9g7O~aiOfxZgr-i^X&+hIi0?#Pw=QSV+WA5RZW{`PX^9{fV2a0n9n;|f2%k1> z*o?4>oco9ew+aUMFIdEaYyI1NasUG0NJcU4)e)=~h-vy?d;NFaF$)d3I*w?zKbv6eGmAHUP@)fzFzfsr;~JRBFdX1dIhPbQ7oM zf3J|C%%&17_fxQ{P+d9XKQWr*af-e6-&uS@Vf`;^_ilJ{l&;BAHB4n{rv{jIh{qz1 zFiE{*cVIf;oiu6#mM#ztNyk*w@?+7;dNCE?%4ro{f+jyv)%uDx2QCD$txprarZS5@ zT^b8bnd9mYc80QJhVaWZ0#o*aeDxIkwE>v+GbNOet5Ty094uNqZv+#=T7f@%>{+YP zibKmPvv8U)fE8sc$jaK#bbQVt9MGSrm*E&1^thC)^8yvAL^|bh4nr)LpQH{j(}-wU zKB#7a*o|d&Q6^Yvxu+q6gQ+kAjq0+zT|bu-OcwbcXhc}D;M@S@o|M_^0xC~^@H-2l zX2#ld8HHyGuU~g5&=E}hs+XqIi)tc#D@R(kupwqa^a~&dcV6rjffZwiPu=~v42%8> z(D#K4C+y9QNdwk9DPd;%4FfdVT9GUsy0HS!;*w3+ns(^mAL1*&i+l?4i(lreSr7B$ z?RSCqJDrCTSu9iUu>{+@GL5n-M2cNk6c}LY&k5wms{Ud8XwkHG2-z>ryQG+POp_8z0$i6TtM!cxwx);hiMn~KR1K>0u zJu`6GDo}TyjI1p@>R&QJ%~DxL z&2flVnnzHQ__Ox0$9kFH+1V-inbWqlfPtY)Mx^Zc1*g38!HfoeqGG~lMj^&D6%YV&qk zR6aEk4|P37gvXLk3V0I^FEGay`JNjqtH0NX*oa6cV!V|36YK6m7!yaj5ha;nMLd<( zLSRz)G_@1QnNYRrGn5Pb?bVuBoCY!tr=M_9d1@e>8~W+k%W2j|_4oQ}eDu@CWe@!) z1Wfx11xa6a!l-?IgL&xVm&zi8)WKUV-98q8;)hUWpWB_&uqBBs?)LX>UKHnlAJYg# zt-MtWg=VHor~>-GSWkv3n#;K=M&a4^`WJjkgs3d=9nmG%P#wSKl=mKHsw{42?JBTi zXo~)ZU8V&%ErX}G1SLsJ#@hhh{TxqUdXu8$&Yb${+17BBOU$`(z8P-?Hk7&*DNQ4M z)$ll-bD{RMNe;>3iMDj_3@((N`V_Hp+@8DYc&;eGX_&rJa*?M_Hf0i(_UFc zmOqh18YdZL)5^jGYFV~EL`2%vIpV##)WCHcYc-LNM6liSf?3AR#O}9BxnWVSHJ3r$ zP{wwFQa>k>%RbnXlCx{rp|B^`wB9U9VD#n=+Iz)W9VBCeybgGhxucx2k>6(m0@VhfHn8$Zd?L zKg-Ut9VW5j+4k-4o`T>j48bx9eD@AmtcVu<_jzO(|3~zZx8-3DMO4q-X+P3oa{CwK zhu;L=qz39nfD0w+dphZYPS+-hXTNBIU`0mAFa;($VmsevmW81Ook2Y_Ucoxm^yo>t zpmf2tW`18akO!ulsAmq<*Gyl_QFoeKy&A5wjbGA>S`GD(jx)$TzL(Vm7741dk!eb* zz${S8@09Bb4Ly|Ok7}Wv+pxzIk)X!Z!Sy#cgn{N<)xVTqn#Y-S*AHo#c!Ix&+aS9R zPM8Gze33mv!*AI7O(GhH?EX z_kyp<@tb1yROoFDZa#wIV0AR5S-ykw zewD0?WGYYU^Os){LAqh(xaf2L0{jiVzw*qHiuAf^J~hXoqMJy#qZjL6H3<935hkV~ zfI(oYM3b(f8bkg4hn-MP$N0hY0p<7CIBX7Q0y`&0Ef3LuULm?&7IxqR7}+!GZ^_=Z zX06&(6Rqpi#5N!9#RNDgI)$OaER?E&{Ew~hx9`0iu`fgAY5d=i#B1u`C(+%JaM>_U zno)5d0LfkYA)qRYWv;55RBp2nDZj!|6)h{q|M8I+sUAV2_rWd39KQ>Vl&YEPd-PO-J@*LY#>?d}?+AFVKz3 zy=c77UVj*&a=*j^N#gI(DyrHO*hxN!^JSe)Wo}e-`=esJDaQkuMq54paC573B+_EoFM;UF+?#DzGQk4%Y{S3V|GvA zCf-EN@L{F&w?J~KdnYk&)X6AG4QwM?46+Ylg!Vk4#Aqt> zV6{Y#enuKR%xA`Bd>qlqkjOXwpJ*3dP%Ghr3-CP*(TKE;+Cc7=^?-}y;Y3?p@;AG! z92FH@Y6}hs7Bz|6@tnJ%MwF?!F;eWHPGH9(X5a=DqG4=gC$qZmAe<{SYcMo>yJ#=#Gpp z&6R%Eq6Mr4KRXkiH`}d3A*;Nz!(K3KgR4UbQn8#fL`&Ig6OWQs7=z~ZK!ZNTy{+s)BAJ2;2yV_7CONqJ z^mMznWw`#l! z6V4iR`@KfO;>@u%ke>}7$ByD*KWW*+80zy&fqfmnS@sEwe&Xf9EEmf~x|9uX&O9hs zj+LLVtK|BK9aFeWLMlX?5O4GV6cr1$+5gNKG`!JR2i^t2n3pm-vFozgn>Kw zbSI~;N%yy$PHu_NEc;(>nESZ^qL*Ke0O%HCFr9VpJYHdpis8mrndd08u{BzKy+$2! z`#_5&PJSiQJZxyAwow<`7J4Z;$sE~&lc&MJbvNQJ;!^Nz?6$A+!}=99JbdkUt0A~k zMex=f;DqrIBaV8i3V9`Qw~n6*E9rxU3--3oYl6P)GvP{Vzru(SNEfc^eDLXYJVs~6 zBp+v{PvU1dcLDw&eDy3v(h^K{mjL)qJlvNG^)sqcF%?yuR_ zl7?PB&G>B#jC1sZB!jh0)}mboi>#Q!y-qhdLl~rVF>6JRKkRY;R#`vZlEeV!Dcmz# z_-OTE5im!sc3k31+_&@pF>~>w%|kn;ip~-AKFd997!L^KGo4Jb4r{<&_4@ke+kB!+(dnB*Jos}sJ0{yk?SGgpWew$zKCm#f*!vKIUm%&@4ZuEmf@V5YJ|&w* zUtcEmv-NWrj4sHWg0c231F1RgNnGF^OcXN%XQsaA;6L;wO?`uJXxpNg+y{UhtYIX? zm0`bG!f1*Z0X(1O5wTD-y!FwY;A(laz#}{3b5y_&WxKyWCDkmhE}OsM2^~H}i6i=q zmu^q^DC!A_q0a#1VMSOu`vH<3*fAb`-zng+)Vtb%OLI!DkCE^lRv#uX0^SQt^riH7xcJWY-()~(AE)Up*xrwCn5_VAa3x`vI=N-AYNI6mlQ**;S#*Ea`4057z;Y(RyJzHU zmB-lVS&rXA8q+-@aTXp{1NpppE6SIWu{TIO$@#8UW5u@Av^ZMt;W@jiAV=@n-~kZj zfp2T#dTtA3`eV_V>T~_l-g^&$q~?7g4^88LmH095y=R|A!JYs`ZzdyP#kQD?58rRL z7%>kI%C+kEIEodCn;#H|fCj7rdwn(j@Qtp79MTLJc^&?P8hsD3w)^nLnV0)|P%WUA zk}gt5x*D)ING!20(yq()YYcT7BPUb$l~UN}-|cc^*PIkQ#wTSuP%uiB?eWq7@Hs() zN%oyn-0#{`6pUdyw>(X=medD*K7NAFZDcH357L@>=2Ynr@0D^v6vyvNajSBa6bqCC zZ?B~gL!-~z0?84pXC3D?Relw7L=X|*wp2v+au(Co&NBIdtKISve&d8&d1;)R`2pQ= z@r3*FoAt-?*XCfe>|fO$n|683ka8?$j*_2?wdpQ+T}AhDzAEni4tW;Gq+2wv+>vEV z&a*nX035bzPgo`?S8rDkDMT|$q+DNPqK61D?xT$F=t=xF4|IkDQ?a;b{kPbR2W44J z+ft2u_ME_B^*zFdV=B@=3B30f=H!k(VVm?a&<%te_p&b1y3kCkh4WT1U}hXnj~+fT zFnSV=CU-rlCe=qU2QoR1^Nj?by}``z7>;NsU)In?BN|g#zEe8QTxdV--zMy0wEfJl zJN52WmzOn#ck%FL;e1^yL(nNB;%a0q7GI`70<;F*J&&i8o~1%Tt*e=&JN3-p1Z)%- z9BNUSi{uljW#)D=XWiZ@RSux6>U^R#$-m2hE|*}cgE8b#or5LT=?Iv;k%WK$h~L4J z{TNvNH&*D2QEwdnlTw&zT+2K^-P`XtZ+?f>p0ugC<9y(5f@XdB96*Km;ZyI_e4eue zqjI0j{qk4(c8LYi+g_;8?<_t$Q9KQ!xpZDmSsMQUl;N++KRMzK2SFctxmG@fkma2M zp6U@kA-8e^FNs(&AdlfD!8#y3!M&Em#UhwFnoNxY3U1iyzIBQAeRuI44JhXebeJMiKZSCAH`=G4 zMAJHM&#NoQq&znf9h#P0Zi5TBFM`&R@x>G56;7SzQZ>d6{?-I?c(B>yxchtk$rEk) z&j{-7!lB45Bu7=Eo$gk{$DUtWJ8Ix|%#yk}+b2}Q3N4Gw-WEMH{>-%}0f~cMh%}@o z**PMu?gyHo+aCD(#0b^gCeE?j0ioQv-kiy2_TunDNR_&O7N6PXKpV<{2qP`9W;iPs zl1j|HwWlT=G5+>tKj9Ox%=-Ur&h4*9qzX+gnp)JPZ*2Z9WcNq=?>?aszR4M1c0T_m z;j`JSjoim)s{8Fn9n%frsntL%we~m@GE*5jJ;a)iAdf{o{KUh%;?4hpe#M>?mFk*A zQynqnHS=55mypE0d76v>=aLTn_8t5;eAa2cO)4GR1OzjLt07f#!3fg#`zGLb?Q|mq z)uh9_T!?A^P`sXHJmc^>!re#dXWFJ;mZq=ot4tSe6D zK#1#-2!bRp(Ratc*X{y)@%`eSjFk1|gj41EN^`8+E=zZ+`J7=tSQA@%3T$(nI38o? zHD-!>^$3Bl+(nNKE$Q8o=hIkhZK*HDJ>0CjZLc7-b6b!9_)-V>I2hmj>W!Zk)}0Db ze=hwE9p{NEorQ2TnG_)`#c24DzrQ>IO;x&*pp}l-HtfgP8;1X;gwt+{xJc!rt%NnA zcl${vJ)=#%<9qDiRPl_A1jyHN$%w63RQ8>maq$gO;^TAkjqHu^g?9A)47=?H*{v0D z{fHR!!{xS9iK<>P*iCN4EPYPk_=OTZS~~@7(_J?IbPu4v^Z+2zb9;RpSa^2&>d%?^ zR*Tp`^O_W(!DZ(L1OOfb$M@|o6=aa$(SL`{bssE6Yn1Umu(-Q9r8^r&n8+2J3BcWq zowk4o&LUN2=7FCvb61%ymYCdMU-_mI%jhMeS)|WATbUvmb1QpxUK#nueZ| zB4X5%_vfJ^yu70nX#YTP4wS2-W^LIgwDahiVY(zTZJY~BeW1L)?9zYn!*Qgt0j};v z^404)oS;*9cdaMD^$(M_sMo9-^{E zK=F8J%cQd{FmW(}f|>0}CnB90UVH(qI;|k(USB^d8v3u@yf~{8Fm6 zvPx$)Lt$P4dwkRj0~Xm4L&;ty*gV^!-D#(ru5pybC&CY^#>Grx9RRK8XUIowu~7H` z_}j}1aF0poZh;7o&9AMkh)?3N2+BBKhbg=q)6NooIW$ieY+`=;hA_)TO`|7S3xf8~ zbF{}Ix>wbW|HH{Ne4^aht!lbRFG@}kCa8+#tS8_f?NKwo$HN=~JnFPL8PUNdkt;&q z@OQF*`PK~sVz-dL^Jik-c5QWNi76d&+^d&~CB!ctx9cwi{w zmvq>@PyZsmUc;Js;7wQK!+I{NPT*cg?ziSYo^D7tY(5=L?&o*whWTD{TN@4GRs-U$ z5UD=l&1rK=y6NfU%8Cs!(QYr#OvTdR>m7q$&N^gCP5+A#^8cdQ60t<%zO?gVae0R1 z{>vBvmj)*q-Sik#aj7+8n)$Qm$j_YrXh@f0GSio)!{t$(bVuwE z=S|A7n3mQlywJZ^qE+FOKUmx?ebhicQqkDju^u3`SdXEq`~WEkET<{QelmNRXd}nj za_s1EJ{kVDou#`Dn=H;h_DN^Sq7j-o$yE67YOGO^No7xwx|&{hth+W^SmR4L3xt42 zg_PT!_USP7njA*j!6c}t)}(KWT-}rhJLrfJQ)q^)c)X?z$sdNM%Ft<(i5Mm@e{Mpc zj^-pXSL`gQm14bhIx|DZbyzcd5jJLUvV*WTI|_A3uMc(?2DQEUg>`TGG@WcoM`Su3 zt)I4!eBn(&86{_yQEH@0uUq&)EgJLEe}*)&tKd8ryt>X3)|e9;tD-#(a=ceZ+<(_} z_A6p!m`Tm{h`JLW+|-t65VEawLG#*8^aeL7h>&;v z`pQjj{4FZ@9Joum4sstZiklUfzhvIR-XbDNGH(MmB3RA_gLwlq8r#wOw@qn!I72yX zfO-C7`iaVsIOMgA10RN9_RIe7Q~a07J^AJ(ANepyTgf~G_f>Lf_%m%vn(z;)6Lcm# zZh+2ubsOB}l{4k+f+=vX{s;m$dGfwxJFj&$)S{*q^*VtUA3~s=IUX~);@5pu_wXH% z*g}Rx8YzFYkQ^Dq%U|7l3kyI)Y!Oj_Ct5_RxL>+}M^_oeJ_G_%@kauHZu5I``Xz`U zO8on?^mJq7FdDs7ht%B0e36=gnh1{@)qSBVGU|GZ)QskjQXu$GJ=AS2EA3CLFHFZE zmz)}_`a%;FT)B`DRz3t0=yo9pWDJlB`Qi5*J;IBjo^1X5Z|OHgkSKvVbha`GW*)5t zHkF(x{m0Yi3>XCYpwIhqr1U!2?!d1s_RPOswz8GY%!>oD70o1R{Bsa&IGb+vW4cJ& z>JnSdtO91g|9Qr3*+w6U@ty5Iu?bJny^GY@dP!IIu`PG|(=a$pD`p<`XMC;}x+Un+d1y_J~)UoK& z)d6{DHuxzVo<^zaV1lF^zI5rd^}kc00PW=f4c_>Y1kvh}6OxP-Fxa9m-O|;}oHkr3 zPf5suAd$bfzG70 zouK0FU!xl^HG!Lq?>0!>)VL13y+?Ceyo@_fLb)~va};KJsXN29jok2ZmQGAkdVZ7< ziqrWtJMK*uHm6=G86!U$Nv!uW*0%smqnmmpOIpYWFKwsRBgh@4Xn*+7bM(&I{Ty&J z>}cyPivD=-Nsdtn8zSU`9N0}YeELkxa(tt?)He@4EiV>+0c6E;c5=-;cgwxV zc5i2FX#v81UDe0i&jLckQx7gPTW+wpl}t+^$2|cd*2Ih5b`LSD-j&i_eOCbq!D%g% zOXQSljSD^fCjw?M!c*>LZL2n1%fBf^2Hj;ilHI(VMJq^JU-D-oCR>{Mmn(wJy*@SL zAAa_(;PF?2qHlE$kJr>8tIzLLZbf&_&bbf`6Lr0K8WMS(pLeja02n^#7H`qgQdNs{ zWN1k8+tc=zo?R*$iO2E;tqP&(V90x-p%FV#$QJj`na})7Om=GZURtxXS&K;K`t%k@AeYVH1AVV| zjCM-3g%N67ptIz2v8jHzzErGYcqmKCtXDO5@b+5-IU;6trnzLh*J#-II#{cKw{IV`H#`kr|sW*4aEJ`Kc;WbWz=KrdW z*6T9Yw12~~O+=eQ@DfD{e2EwLZFAXy#s!#tE$OB%y33a`us3$X@EmTB7V(9zCuB(s z?r0j9FMDFhF>td6w9wEIW?HIVFWmh^*#xxOI$6DQE$KT;8k|J5t-R^7JJN&Q|Wqe`Y8Hu0ZwTuq7-6vmQRrft2oG-h`0|2<} zDfMs^oG~x9dLt)9W>vimPfTu_uqZm!%fDh-ME?q-u8)%JlBVP>Ji_1lC??*jI~V)g zgNFc=#FIWb`3?>iRf!cJYT~pe&t*wZQz! zVCe4mx4Jhv^s2+C&J#{!BX#JZ)E5D^CgZ`O{=A3c&;Jf`3Ufhg16`C=nJV#p-nLr1 zu7rbc4qVk<%xCy29mkhaF-_ibST{rd$2tu2^WE(kg)*Y%mayM(`yC#%3hlo~;BLC} zjTg1SYo4kW(1j4eg!~~h9gd#L`1`b9T0V0ewMqRJ*Yty*VxX)Yral~;Y_F(?uUqMS z0@)&wAL#(AY&lyg-@^FyQYi?!*Q0{-73kcQ8l8#!}K z5Zd=gw%)lLE7g25cmBxv7b48L6i4Is04g}Cot80DK5O?+QLZ44{DH$%xs}gkj?n#e zkZcQMl?USerg~OOmzZ{1(|=;R-r{UwDPwe-86Wl(zW>9yNUr|eRxQD~PaBQ& zEJPV6zWAd@Ts9SnSZtv?v9&fmYb&66VIrEjZn->z(Ik4hn2E_fVO}DT5zv3n7DPo8 ze(@|I3$*rDJl4VKdK|gioEh@u-1GCx@y^Z2wrWYSx>}YT{!VcRWQVuHKi_i@@evU)6VbnB)+lZ-+ZsS+MxGm?7%k2 zjudSxEJmF8v~`YahL48Tp8eUloUL{B_y;$v5F?w}U|wu#m^n6#z3ge&Kq`ICtTa{S zQ!h5qq?-|WQqw+Jr2v1~HHQ(f8kgm3@0eQ6RnxmO%|~KS_e+TbB%v> zJAFFEi6F&D^xeD{M5Tzp2UlUFh<;MqSQje(99X^5h4w$f-@_>@^%0|OpXVJe0V?(T4DbHgBFi+o7LYS+J07Eu*ngJ zFQZv~8o>@J+y#drZh)i8b3+sfIiEZArnnn5F@2oc0)rpYBlC$kY72VMK09-Ca!4#Zg5jIf=0@or&CXN{&s@zF7R6wQ3TBwRYRG| z?JyQqpF|M8Z(M~exR~y5G_IFQpeZ5|e%aGpx!C*m z#0CHPYYHZaBz466&kUR&;v(y3_QqS{t*~vH7P)F@4SN_nk5|{6={2_%>0w$)|C|4KZiWluQap#RcP4VD6C-!o zUYKB7UNB_$Rz{YVJ`au^TmhGryyId4GS=~3vV025x|6((qUownd2U8Y8SMEkPwa>7 zg6s;xHq09^QrOd2L<*)6Fe}-na1o<~5a;R_cs+40f38h!SVMwL{a%CKjr}2|e@RiH z0Wc>0WckojR?-gc`01zwxxZ&d`Oza==+gi0L&608tA^guUz7nTMXIjTLs8|M@|fFj z1Wd?gO(rAfPur7b_ApzoThA(VWA$W&zI>Q0TdnGM z+|@i`$vn>3izsW;?lL3$XXzHQ({zsJ^nx+pyN9EkdpfvnDb2`C!&G`adfiKQE8Z%6 z4IQ;KdqpsOJJ<8cq{y^`4qT&M0;P^uWI+jWlPG4eIJ`yO$vORk32xf8jAFE!a0 zVdp~6;<#2kWL(0Lm6*=Wj#$;OCkY*(C%8l=m-Ia}PhZdMn~h)>c5_47-IIgu7=w5+ z3|9a7u!)Y181bbkv^QuzB~#Z^k}A%_tE^Zk1(|2#(RwZG65Bi_9;t;cY=XN)pNNhU zKq`WXY{_TND@!if4@tO=p-S-el9&$`-9LtX;XfvB&KtI8<|m7xFC_0>PpR#Koyx)g zwk}7YBwr!AzKumQcPqWMF^9B7ZFdjm=hY;((;sAB@CZe7M1yxux(UT8b4=Q*46)bJ zF!4;&IA1?s%y3K(nJc31^#A~Ll~7V;rGLclmkGKEPXFnmGG29wrk;E{$7zmL^pt`! zlpCNQUcW2gdZ$3TqAxW$0J$M)xN>f^i;^6s>O-@zGlE-8Pfk)|-x!(s0yhDDPI;MjU%0?c6xeG=)f z_oO^e<624tR3HR)5v4f%_X>+jJ(b-G+D!K*wBLTK%}M}Usn@3k66J0XzVAxN{*>&3 z37P%0nV^@d=pu6ET&ZqYI4chPFiRhPM=Anf6CF9AA?NnnZ|KN)M!Y}P0UXXc01>-It|Ut48(r(w>nC++~L|SJ!o0*%Wk#Ap`g`a2Jmg3UdUy5_W7{6+CyTo zn#h3~4XQ4VD_}n{)u?@&PpR|lE~at0nezujvNiL$$`Wc1Rppl(Pg;4q!GXFJK%HlB zNuW}d#5<9Ps0WDv#e2BKRe>>;Pp^8M%CdPCizjJ2>;*u8SK$D|wW0n@)q0P7CHqsk zsOME(pCr1saRbZYiU`mqTp{*fG@4a)5GihcY%p_MgflM=4POTxwRap+DC`d=wA8Ac z%z16F@57m4_mmO^4s}`te1vWI#zielO+*tzuvZ-MzSE0Jmu+~FR+fK65W>-D^|wor z=GP@h_`48$a;vQGtme5L#=?OCJTAyDMDDPE?F~)LGiTyji(hQVcwTMX2jx9jb*JO{ zA4_|HMM9|F*%z7q-BKP(;A2?nfzS#!b9Vo<3vGlXp!N6DK2Lwij1dK?(XOEkKlh5m z)|=Uzj5`4pW00;#XZQ8@>FFN-`mgxu6^U=;QFKTgKs{do%mY4!DoX0wQywksNZBp? zgp#3CAsK))&MDL5wa`Sw!Sf%LR~%c9)Us~TVq|@CE8P=5Vr5Q!5KL{Ay3!U`~rsnbm?<6vs`_hee4CD zRJGZ63Vgn9flGP;WPmgEYMjCuptb4GG@n)keL>>T^8r8dI@>xq8qFRb^H=P_oDg)_ zX?x{`QTZ$r#_rZ+&3vdyg@CR=dLb8=k$i1g5`~?Us)4(?OF*hegVnBEZtb@@EKKUW zH}=H*|7B&~k31L5^&yzCT+HIU zUDw$Gi*U*Zo% zfl02*34?ky2S6>+r*yqmf7WrZ48KSADr(FeidrrCwCRPUoaHYV2YkBzv;B_;E)l3vEo`$KdB+~& zS_iRmRvJF&k&6~o?Qxpuim-Q~XTJ_|H29`qs9VY)l{{YA?mcddd2-)S*~lvOvxAMT z>Sf?mf7a&p7L#N&39?ylmTpw6S$^XGeE_EPcRc^2?N^9vSbP#&#}}n`pcGr;b^<^^ zt>$i}XMF=WY3c_8$ys=-*5U!AZieXjL!QX;tzkY3zRm4}r#e3jVVHlI|tep?7xWvqQQEoFs7FobN8V)kmwMdH4UT56-~84pxB2PTX%6&c8)Qh@9k zY@B*Ci>U&k1w57(5I-n8EbAMT60MXvJVQch9{c1y!4F*xFut# zO-A#w91ZpAsqO3&yi|}NH%AIR<(o-xuZ8&{HnO^K)*^`f2Uf(UY5VbX`dQH;0P{%K<=?43f57D>wbD8{7=jy0t2Y9cNct7% zRu}r?{L$0WP}X?Y*=N5z=-i>S?P8pgeu#xxWy@IF@)!C;r%>Z5d1K_}2Uv?=@HBm8 zYUtvgYU%!&O=E7wDtJpe-9qvHc>moCO5{r1F{OD@z2woO-xfZ)EM#3{U>aywQ}5!E z?9^r?!z2$_<`+pxMU1RJ4O4n=HS(2>I9GdD`4WvKN+=-qX;?caN-LT|EHnkRNwn|N zBo!_ju^i)7NrT9^IYVJKbzrNGB!P`8e(Rkq2bb;(887qj#bsqYAmrzs<0spMN9yv? zi_WrDI}hX$K}VY})vKc$L*HAU8w*x!S_xab22N=7whm;?b>-X*Hj5b2-;=M)bTEG1 zy8Bt|XZl&?S}8C`t{K{zV@?r$cO%*B>H1BPs^*Gu)u^N4vhRTmX>RpX_gv%)JoPA9&AC)P~Mci8wn90A{CI z;{46N`pg(bAb=oyc9~9{o4x_G&>{>bV{X2vL5r2oo`>E6C8V3!F(!Yqq-0Zl2~`j7 z!-$2l3ZFacbRSH{^rB0A8PmzV5-;xBdjTDHUltcRGJY{O@TM^}rE(WLrM{>JAx70(9Vl?ktqvFU>dK+t{U!qQE5c-b46%97*UU{Q zesQ*o7s)GuCLCzv#}Q+-^lg2btCthf5qDa6>WRZ&k{8wQ@CKK>Kcur)G$L*J`XQ1ksNVQwIycIIp*R~veyQ5^jO;NYT02ac&5Bmxm4pHX} zFdQ(L&sdPfCiy{8QP-fl;-%f?(b!PzThx|sFI9JRsn$-rTOoq%G3huRkk1f2Mt@R! z{17_d{|nT{TJElx9;Sa6@|aDwN0c(+_+t|rU+h*>gIGT&`71%F{WGe$hwCzwW%q!C zieA0)gvq00flh<0b1dbkI+4}8u{SG}5wt?YLFxy$Ti9YWP+#h~eua@2`@i z+OV%FeyPn$R_r$gD6EFH)~|N!slMy?md(V6z05e@J61sQF|ZddeDciG%*WA&kF?8Q zpDKqjK4nrKFPm7g71j5_DN2u(Z!?t!;aSCSU|1mxK1d&ICictNjjXey^V8>pv~e#uB?OT)fHXtCu`{-k)J3ubl^EW2N~?*(|1c1<1tAbeX1! z{+jg~&Kc-73;_cS>eBCgl^~w*PtD~cW~5O#Nk^;US&jChk|~AU@AIS!>325Yj(YO< zR#zVR(*Fo)qhrUqp|1u%OcEe}Kx%sIIGYmcBdf^FKtJPV1hgs$Vrn3NOfvT@`i6=b zQ&UXmO17A3X<{vh3e(Gk5fgi_{*nDp;K5gtu0Tr8=3(=F4Vn!}$=c5(AC*5hLM(Gh zm`8Xos~FQM)I|Q;91N|J9b8#AxQN6;=0E5zThdu7)ItWNclUU6u%hM+l*E2rAdEQL zgM-^sZBglc39ZMSfnZy zmcyx7OH(2=6$&0PjDctd9Swg1dD#0KKpw(w)w2xok!%uXeG;J{s&6Fx!YPfngTuDK=t>2D_LbmILQU~a2sK$&N&zz)#+BSA zR=!HUg78MFa^%2^Af5928r)wf#GE{wuRGFISQCwIQe3i$>eXp305pb4lmoEW-+keI zZ3yyK0OEupg-jbdg61b*6Hd4R0(ge~#HMk0n^V41s%@m$lJEKD1_R>b@4)NZP#OEZ z;?z>Lvw6vsomzB0ntt)|fq{AEs|;%Sd*4Kd(68B-W3@Ywm@5u9S5w=^t9XMzIZJ9D z+MC`+B){a&)1mF%!SnAQ4Es%j1t?cyNJNKTywhc{4$;w!3#-#>PS{sS{yLo^@j0_- zzcn*Yt2h>1e)aQntR>ifp3uo=HSuN+N+0$uV#1Q zAtgnlgP-J6@;}gx+~$|xj}~~wILqvRQH2)E=l!z1PnMbY^?m!}1z30F)!QJsF0Wzv zq7TQ9A(wJ!O@i}Y&ka|!W%U9u3*K5Y{IH9s;WJfQTV0Pm0%LzhY_^Q!5mP0D6=EXl z-1npJhmW)(E>+yF=L<+d>1(FS1UvX<1se|AuD=)(FKWPh#BTX+o>MK@X6vCObgy`F z^cIj@(39KkGlagjvCg7_s>#m1^t5jIt30WcJ=E-fC!+3Rl z#q6?5Qj#x4Nnpezpf5W|m~0kql-)6Ma=67UmI*Q(97$w3M@^k@kHNaNVoA>SpvgD> zsA;3Hjd?CkB_L+$Cr7aJDp5;z2Lr?mdyTGc5c!4ruNNtP{D$9BkqS#9pmQ>zM3(cT z{5$(kls_Irs7k>{-F)BZmFHXTA_Ud0&V02SYpSN!E6R;|_;^O=CoIN;Q>73Y!j0Lq z{)kWT=x}f@b?F5=UJLZl9sWLG(g_QeVW?#?5&YowPz01?795zni!#;X?fO)YoFn%x zD_?E<+PEb+eDcL($>*!VkEESng0WPx^}UcsTn=xFwN|Xtn{Z7y1Ls$GdH+PfTViaW zwN(BUGcqUDC0v=X7(GV4SI0DBUs73FzS;?mpz#Gvf9e_nz}Z(hz9xN6m9G%Ve9Dz=jZsK)AR=C<9=asQtSB|PkX61VP1v9W5S?fxu7qJnQTw1LS~Sz+{e|i`0F>r zx~mD<*wNcS+6v%+Ycz1vDtkmunZ%2bIe2Yt>pHsz)T_ktCfW$`sY&t-6yS(no4S;^>I!@u zM4=WM!oozBc%$Lb3iPh$?o&f&q3)1jljN2sQ^nsX-JBN7y?cK1w?Ug>P1x~Sf}w3B zXmTRtd`vl=m_LEb5Mg!k$;^+d90zYzSd(tI9V-bb=U4bg8WRpZc|Ubp^^Y+Pb?wge z{DEsyWXJb+`myO=)h6yvqA5)Ic$!LJ@~@TZtwjeL**#9uYPya;u_JECKX)luG0S>e zY)Is{xAR(y-fe=07YnKF*f8N3@W}Dl#!@}KA@aQ1bB^CtG?s=jGO&p>+LWqJ`Fm<8 z`h)a!Tx}t(aZ$d+T}^K%?>C=nVhYCIXqcz~@oqr3T=5%$bRWY@S=JK;9UUxR(*qNu z(}Y)ZG<#S920Qp|(PI)d;zv^G7i;g~bVXZszKpW7<k~UZozxBJlI&4oTS~RnVXa4^ysBaQ`9gev}Q4hA&Jiv+DAIH z!M`Jh9teQBTx_7?_O>M!#Ac51+!~RKCk9mEf7wh~w18pSXGCEtN9f5GYJ7I{sGPz` zUb>q%Y~3x-GyMdWtJgN=5pcOIT6UWpbF6ssEXlM^n^Zq|W}R3`G@k%YM`1bV31kcw zsMz^@yYA*KNETTklYQ;@pq0Y2vgm8)u4!aDCMWmSonnZDv#j5)84%haw?6aPyD>Ff zl8twksG$FR_>e>OQ|5!C!!4EZ*9t33eZJIl7IyR51?lN;%N^FZes)H_wqE>2QvOPo zS_x^XFWOdO7Ciki2QuTE)#1b^{kmsxV61)L6jSQCfB$+A%}Ohf!NOO@UsgPMEwr2@ zQuldo14!)Dg=e&)+;yw5h=PZXGJHWG7gIfd&943FwDsu2k64b}Dejv%hJF8~;UL0k z!i+d8RJ;M@8V+z&#^kTZyHQ}L$Mr-<)JW#8iRfK&EvD|>#s!u9H1=e!iHiFuf|gu@ z^@200ywc%#phwwAQG6*a_6oqo4(yy`S)Li$ycFv?TFmZj7JqgDYClegO@N>wKs?A+ z$aVHJH_CAqpqg)I(eaG44+T3ui`@vxGV7q5J=kIpP^_PNQLcMwF*J+Yw#id$x(m7; zki2z{G^(^Q*-Ak+rt~LOrVXo(%G*9t3dw99xHt!^L{Y0{%g?iv(?E{#QQPxrwHk7B zbCsmd?4HQ8jR#O3_q+D3O7-<38DX+;X(2V@H1VpMAAIe*LsYYYBQVt$8??8rr|31P z%S-GyRNsp`t8`t~07(t2ws5J?Y+<|**NP%bA6;Ldw;p(fi~HrnC69X0V8v~qkBIv@ z{!qa>4+KSG-%C2#j(E%eA)5l+(d zB7OBXasH@7ZA=KFqGTdHEIJm~q!{M9ew{+@p0Dt&zz3z=8?6w;9z=n~Y5OQ&rOUUH zdU{8(C~}L&Ny4pX^>xWZk}#uh9NRh>Jl;Tp>O{h~VOS8k7?n4hauWzzby&*^g{{?K zzG?~RPOb@zMUNhTh#zwzERWIo4Qb`2Z&_GaeM~S`4*pqrPo?M4OjsN@y?wt@pMEoDm|2e zCe)Udx~WE{stdU0*B+u^8f&)8WXW3>W?xeatQtVUrSW#zDa>fD;oAxyhVP7?EoEy8 zll#OT&lu8nJ=p6}28YdR$aK_=4?D4yDpEGN&%lKY*^v#)fb$ym>!VdWwGDseGj4y~ zz&X~OOnfyMO@-*D|LCGllB5itjHI{Dq$ys~RFg1_*73EU$3GKVe=EI}LwHEyQ9m!v zfXxUG2jD~yppn(lKI#B5lWc9H=b9W=WvJx~UWWQ(JFJC)|VtF50 z9|?)E)M-w>Mm;IU#k%{L5GigeaiuT`OJfr(ZaaPdxNBcnTnaIL=Uij8c(WrAwe@6Z zO630Jbcr_l9Wn1oErGCHFn%8~@wxqGto?jQf$*1#V&Xh9iyuP+gX@loi=A=R-n)2% znI;t)?Wz)&IF#frI!g~i#5JE0hlyn8S~EBHL-u*P?EI zL0^RW_p3c*%(Q}rJd+$0_Aw$cf^o|V3|_=Q1v&Y6p#2bL<1%0T%v(S&^c_N`w%)&H zOQ7Hl&M6I>-L_uH(9WO(l16*&iHU=Gkte}ANkDGTiDSG^1v)y{+7NuOF1TD@`P2o@ z(?ciNQiD9x9Ls~l+>GK=?uNQIL*FvwiOXx(eeRhLun+5x<2}}eJQg1ncZhJ4&ii`1G6 z=>xA2kI&bhh9E5T10rPZO*qWIL^LnJ-4597^!sma&_Y2Y^JQtMLG4H5)HOQc?KYar=1bNKfvzr z#+bl?jq|=4TdMKM9s4b5XQTzP1>v5w3OQuYg zR<8C404~%jOJ-v4+u3`he2!sT@ib(&0lgv(c9t{X8sW)*?YsF(?{0#l+5`HKg5MjV zin-XS;8*L|VH!}!VVQ&2BnkW~D_yvEn5`mM{H4M_VkYB;Y8DleQ%%aMll}&D=>a=S zwGh1}^sxb!mn_PmBp&gg`>aX3|59}@iWf@%=JQa6{>u(etqKuX=qkrf}~LRkHjNd)1f zV33RKyLrQvrkYY{7V@G{K-5352@yJ#^MYaNY}}jpINTcT?I@}}d1K?Ww;N12QwwTK zZ`uY)q(z~kZE8hR0xbAX$_MdxkWdNxZK&5t(IARBIS$aW1nOvelPlhAmSHcbVVN7b z{eQ5Gn$*#$y|*CS0GnGP8$F({jbvtt1dA1Xu8U_~*-JgeaHp9h#GMlxAOr3IlpaQo z^vQIT%aM8zOgKNKUgOV@OBRX zV%+B`*a>)rpjcLe0;>P!O{ljglj?Wtbe3yRUH=V_BV?pff9dzjC)+-zRXYwoo~Ei9 zr~dZtD>``zWerZZRs2Trmn`V$(SbajqQVAd>Ua^yi9yva_aaX?=^n2z z=TadlFHWV2fpaVs{l%$f~TJ&K#jwx z$WE$0E=S7_Udr>DaK|ZDCu_Xvqf&F=sNF2rk}pzyI7fQHMf@f6hG@vj=KWtvYkgG5 zA6$Th$Ra=CWt_$y2FBwz$Ev~xmd#16PdO(hZ2EVrsZyWhT!EjI4Wdqp1%rgtRjF$Q zp|X5GtA$9@X>WI*Esbc?W`JzT%%GQc5kD3MfK{zNuh0zjs+OkBktxc}g8G5Bp-DHD zTf~~){#q2^n%=bL^W0khxON$p8cNNh z)#{dNsMnTtmfyllq|&JF&;hSK&|ZX+_`xFBE)QlE4dhlhh}nSy-`xhugyjBgoIa1? zDxWM)?@NRiM0>6s2o*Q{XDhI_E1e_nj=Gm5?TV7i${ut6gT@qSeBJSCx6d!7#XWuN+?%3oH?5{=bI2IhXcHm=Q~iL zFDSwFkm4CK%<^g}Q!xk=ERh#py;;*IO>8{Nj@fMBeL7bomBPFdx<%okwBp^&&XMV~ zJP$W6PUliR3N`vB98^u$RMb!JSY+gR9jJ6rQ+x06aZS!?H1M`1?{i7UNWJ?Z$4Kc|V~}UMPtU=v(k@6~%wpi`OC5rWS8v6z{-s zh37ud?*+=S9=eP0piS8woPljUIO2X@C21&~o6ELn&SiPVKb9qR!+)T43h>1jU9Mnf zSz*(ui^`dH$fknZ3nvV?>C&sEgLNkd+VH528`c>%ws8xO5yxdD8d7t{Xa{Y1?Mu_* z3y-hR8U+1$WlFii1OdI{T-X$RT83YDa<|&bsaZyM1cp6-u7ypFPnu@T_Pm{iu^s|? z`5I`J9DM2J+-B|qDl>f6%c(i6I8E$XM=`(N2yyhuVWoB-6@_cC=v-ZEnn^c4s=;B0 zs3wT^d9h-Ut*tok6vMlkLSbN})-fP+h8F zV(I1AD({giiW@MyuwMBhPI>31?bUegO_SbQK+T^e`*z*!EpTqfsS#i!LC#GRjsk&_ zUk6T}1ftod_oK~)@5G+=;;PCEBgu-XH{tS(r>FJ;EzQ;5bBhC!r)ZhtZR=2U#S*si?p8EV-#?oN!ph%V(h@FP=P})8^%+`bc|veDJA#>Z4Pq;>otn zv`b?wL%+6@(Lwc3HD}VC@F%#ezU?@G{O6y>s#96Vt(JJi%3qyo3Mn)gHl)_qrZklp zdQDnWT*$;f!j$rEYrV|u!dTzsy=u+MT&op!HP`D0oXOWuPcH=;b|czIE^@AlM=V|y zlH%&yyjY%hZPx7|DrMiF`i|PwvGU7rK)t0F;IWPtCDgo#ZH>vPA&IHUfgfo4|IXvD z4&6J=!1Wb(BgZdjGyO9qYQ4QPBB=RpfA`|+WN&V?Q1_fx$ot2E z-o1fAxRS$|4d}nO1{G_biS-<)IC)VnH+pN6H{cm}scs-WI#_~l_CGx?LQsw)`M~V! zP)&}Io$3{r?s6Hh!iK?axssnVs^a22Of&0#ihhm2)$bfSAD5rb z0WdHJ-hGAzw`Oq~WKnKy@ce2KTd1j}wURn&(st3gbf-e%Y0tYK$5is6Uc@_5qqyH*=h zpM;j{0ju*1e;T5jJg$Y**B{3ihYbp>N>oou2eddCE6V`s_s+AmYp5YUf1N49dV#5u zV+&%g3@1HO9CP}rz^XDeoNRN~ceY;TWp-IZ#PfNS`U9THF9LnqDtpur0i|h32&ZrL zKiN$=SevqV1e}ZNGRR`#=Oy}v4yXoNNf9(3k`CCbp-K37^nClxMDh2`IUe}i(^*wh zJE$f>cSaICk6P|l4=ZluV1GLU2VXFQJ1e{X2q>}-S~azsNkEkW#YICgoHACvcx{2b zii@X923mrUC5z2I>n9XiRPKC)gQ2z8eWp%2560;-j{F=};-W`9GUkl5e*e>ZZklN; zC#T&sqj4LJq4%cvkon!j#Ka`x^YGvAxdSAEcMEnE2?<);HyX&zj>^z%vC!{pI=@G& z0W!zG#gvksr#+Di2kIq$6=1K#UJ|sz1_x%jqepx-90qTd9~=KM)_~-lalKAy%+SSE zo9i=LjRJV?`;{sPYYD+A*Odqba!(5rA?-3DiQ97%zaye~nbntBj>h@I>+g_+QtPVM z|5gB}D&Xw2yYc=sL-oI;ic0K1N!8&N?;ol1C!m#3)T>o}LmNeYUvmMQaNNt)l!#x# zi3?<;5+d*0+Nq>DO`=Ro2$ls_0}J$2bG1g zlKTB-tVoc(X@WNepUPE8$*O)MAE(z^;B-NZG(D2qVpOxBpF3DQy9=?Gsl-xmb}Bc3 zQ;b;Cj72?N?6F!=K8-i|y>9tZ$%Y55$Nu%2dHdv36g{7g!NxYk{J!@Jbo(E5u-BuC zMy?p1Qgwc>#vKb=6~l$9b8Oqur$w-p(X9J@KwLgc4nE124}R=Epa1ACkWu~PJ%i$p z8Y?gQn_r&GyQASizaD?6x*l#SJKv^ zlzfQaeenw+IM^5XpeFWvm0=EYW0B#y_Fzex~aUV5_HRk;MGOi9|vk zeM2tM@Au;Z#c*lYr>Y6rrVn|=KxwP3otenht6f}m)CLqwK(R(Lx8_k<2FUtN+0SJ= zPXA;0?%2t2DV?hxt^bLJnf?h7Sx&7Y%$$kb#!o385_f&NHP!04? zFf$)^BGhq>I2@pSAoJT+d>R}{idF4!uRr^f@)H0Z_*?!@GJ5}M*|Vu*;-lTuW*0EP zS;wjD|JNpU^(NP>(cM2{lXcb-iG=C_{_&g0iC>}z+QiD*^|32so`J&urFa&?U=@Gn zWJiEhn|15!(%~T3#Lu9f1!?xScH_hjwjQPnudDECLqGAyJN@2-pd~OF^s$Kv5#S6a z-;}$S1heu5ID_+c^-uonDdHUx4@CzUmiY5^!1>KvEcFF$Xg+ff_N%{##~%v>-3?IZ z#{sE~Pp9ZdVMVe%m-61QLjx_^+r!Y;2-ZEf!I+cO^>)eNKuYiU(E0>+5q}( zpn$Y<^0^L~@fuz%$;8kgZNh4Vb`R9&wC3pGGeorQj56WQEcjv&&r5^e;(tU3L-x(o zP-#z1)UTa3I!p@LvPueo8zme2V=l6b`t5KewVj&h>QLuoU1=F<^4baMY zfnUQ)KEMus=Vyq#Z&KNXnE)soe-%aYp(INzyOmMRgGbo^;pQDpGr&{M&pl58Zc4&~R(7bYv;`%3 zQF+)_m!v;p1-3ry%>`eQ^Bg{i6*=As&Ad|j#VHgPd}#B>b z6aI^>wTf79arqM!md!EGcns_eE4g19E|7jCA7DKuG}|X!2sRe9+5h6HWJ@ zKe{M%rsN+TrYy!U>k?bj~zbiFhQ2L)Y>il{##`NV1Jr&O>h(AZNF239R^hI2nlBW zAYAQdjLEFGAmWw1SINf{nkMT3nqlA!Bxzyow6_eB=mTURh(H3TP;c1Iz0PS5F;oV3 zW(5MnEZ$?VVoiK1YGcB`&6`Ku2yGw{S$Oi9FCl#&nhICSmwU zv4#JTa&EV7BmM`Bmoe3Gv??(05ivClWo!|!^rQN|($S~tVn`0uY;1F8g6MTgSu(i7ZgdAW+ECf9uGaCOC}9nC6i zFglOT9V{$F{z}wc5(W(gponf4s0SO^IOAe8zkV2KoOPI;U~$^Mt#mLGX7bncMUrq0 z4jR_`wkq1k=yupyJT`ZE_RM#rIPuS(Qoh(=ihVNWp7p8KfpBeu1lV;L9mz-5arrulFJ;ED_TW zcm5HbgHjUFq|-J*k>+J8b3Et4;{GIjTzS~!l=`qBwTETgU==nH=izRdkIU*@WCL6X zMqK}*DZdazWt+A`W z-@Pw#7{0R@8G3=U^4KO)xh`AaZo%_3EAE-&zs^2jTN6f9!zw4Lh!=pfm0+_-Ofhn6 zWhGU|`U8+)K85Un{HpWY+QB>Hc&45@ac*0WA>zS0S>nGw&*3sk4_;n1LOprga*wp& zA00*))!va_Al%X61q}y!zXkdMRPck8zGY>8Y?y?d!QQ?-BeqBXns)rbIHwtK7|C_4ns z2Ow1#Ee`wrxIn{&&)XUP+#Tvy$rwu8&5^6^o#suey^&(-aa`iKSNm=);4wBHjcZy( z=7XiU4WoKuEaxE!;e83gWq@hdVsGSwuRphWiJ;5LMER6OAf`Zdg~2<;)P-GXwxS@5 z9j!AwA2Q)RwGv{0dMvBe+`zW8&<#3anIpaL@W$9;=G<_!v~sQBSx z?iQPpo8Ugek~n1Yx|L>lPr4Sn`A0z;2^7bJTI?t`nOAv+G8&&#$6-Xdia*L6z zdnQn8d9VZlcatKW6*b0rwfmWgaIAzL=4WC(Ub;SHvVO@K$mw9^?RhZ3<6@XZ2hb?_SIwwI9~}ru+x| zA`o{rZ1FwWP6Vg==EWPDS+W~jLM}%KHTDUQubr|*eqXS78sn5HfKVdy#3T$kEN%T$ z3kYlmEbsY33Q(5q0JY|7=>vdwcp4M}z!AAknS_8)WSKjs`796~$>JLCD^oi3Sv##! zIVEELRhgW~){Te%8bwJxYaD(ap> ztiZ$EEFr%HcLFiCP7bKFtAfk_et5M5&{!-NthXn-c`(p%D^KRAGw{f{A#zG6Y2skO zdu(IV7XNf%e~tdPiChZo;*$Hih5|SMbqk9OI7Rq;w1tJwM!k~cEo5DN!O0J%Aw{1( zeUHFX;JUnOJRbj+{OH~v6|&>EI?){tu3ci11Rf~fP`DJbs zo1l6z$huFlyL0p-?xw!*jF9t7k`S(Oih_NNSy=iRx=IzSnMLM8k z>CSXw;_gVjgMe;onSC(~?+?e1+hobZCjagX{metVeZ@sbk|A~K0V~GJ4L82o#Q{U2O@#>*n`6` z?bYMw_q95eZ3%8phRpW!VrPo~On?;m%&)M$bKQz!r_?N;vKzSUyKexYz0{M@m!DaRo?{)jbW=@8u3YBn?5FMjifr z{d)%fJp=!qfq&1y|Mv{+*RM^0?{nN`q?!f^@fu#{r57-~tgE4Rncl>U>;>ZSi(9}~ zAP}{h8U-(z8yN`n0&(jy@Pz<9;?H*=H{RKna0XC2a#p7|C5=dKQlb6@Rs1E=Zb3&6 zJCMvhQBLyTd^LdWE1a8SDhKorFRx&B`<3jUsSsg(SO@c^;i}9bv&mOen1Nl$C;xQ9 zdt5I$3CZJv{2Exnm~p=1@+VGP;x~9`p;I%>Zi3^$+J5@bt{g_buzr~E!P&*502~1W zJpjueC@wGJ`rp*RCx_^~AZETjcDwkfQ*!}fj ziSEbAl*2l01McSfT`v%-lWi)`>u~*_zk2(k&~e5%bnpvxi&51g?oqx{A~QyN#h$V| zmzN|qqQ;v)SvRByC@Q5bld5US}SpCB9l zilmtx+2;9u4$?jBvfo`die}%U`*K5AA?p)(BmDqo?!2P$~ZoHN5S`-JPt7!u9^qzOsb=8VgEMNW)q!_~3 literal 0 HcmV?d00001 diff --git a/src/externals/pio1/doc/images/I_O_on_Many_Async.png b/src/externals/pio1/doc/images/I_O_on_Many_Async.png new file mode 100644 index 0000000000000000000000000000000000000000..aa32ad7863ea4eb7d30e9c2b59945fafe034c580 GIT binary patch literal 106413 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%0AE7vPSsg!2H&6yb4&yWd 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

)t# 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 z zZ1{fs;dAIrSURRDXW{JVZXaK2Og6FTa4mPD>0#Y{WvG{q%?50v1IILmIr0x*{dK1Z zFJ{6uHmtqs;rv1cX|4W=Ev>UiZT?BzO*VNqLiGc`yfn5)9Ti&yrOxVwjsM&UAJdjP zV(@2hVhnb@@c6=TSso`*2QQP?aN#F$pOIJ}fF;wsmA!J-q|Xe2ARw0b>d2J^*9F;i z(EXWl*|zqFXP+sK=y2fA@sPaDnTT{9sO>k^Pz}>5t7iAn#~v$Y5u}c-VrsSdpZ3WT z*zQoQko7XsA_wcSXukYVXYnV}z8|Zsp``gvxFT)YVB?d9-#PaMqNHK+ zcEqR7iqqthUw3yg!n@?-67o9c+tjRnW)gS#dZ)v<`7^5i}DBI4*%;k*!O~Wue7hEF|VX8h@>)~I8Q+M z7NzAbp1~ll-tvk4e346^#&sGEyQCteF_LmH43O;kHWD~a#YjtPLZG&jy87EKs^_M5 z5q~yFg}>K^I%ZNJ_sEdP0|B~MFbZfM8RKvIkw$K*Zq6O&ma_TqtF#X)Q0VJ`{rCwJ zbEPDy4HLCBQO7iZ!Z;%auR99aX_IQr^IuGbAAFoQRGBr&R2RY4+X_0J4P!|c;h_u{ zcBlZa*(sBi`@GTC2W&jS{EKXocD?!QXHdxfxDd9H*pSsas6-#%&L477xP$mU_v(~K zjNzdCs&je2vo=;Kjqj6)J`CkC+TzBn)|)=|9XF(x*qAHFBKE72-bmRLRf34K{&0iM zddMqvZK>Ml{wT2%{ELrcwGOhpq5C+!BylGD`mWRes%{!0K&!_+esQmrL;202mxbra ztpnURjbPdRajNra<~f*sZSB0#m+}*|JWkOthtRN~^DihmeO4jq*Cu}N#>2*ig9=ne zkvtuH@L!b$(NhPAM|qKeiF+8@`++~naN_`4MOErEul*@U-Gk<64n9$Jn`#Ug&FJ(} zrP*LpOKTd}IdtEu@9)&un+oQ-HjTtq{o+ZTzMPyQV|#5Ugw$0uNd*!Eo;dxuI9^F zUYCzo(p+cacuxIcOb3+&?aE2q+;Xft_@K*R;`TY%JZwlf*V)^BXU;+(VYcwb#PWht z10~1I!n&`pDMEGhQ9UdEOP!r_zl~qE5Z?+v76m^t^s9%Q*VA0~a!0YTE5y^|6ClmPb6ERz!ZLp|9UY()TQ?nasKw#^VYTs( z236!n9D=0lO%mEZ;PSV?^0!L#a@>FJ<-gj=&Jz~1?(a81shNrt`p-99n;5p%ckdpn z`~H)KwsTxYy7f|<3iZ*6}CUc)2LCR(Cbj^e%58<*pdNxrDX z5zwT7$|I)rcJuk>?{vh{iry&DC6))l8kbuv#^Q$M@IfWtiu7sORUeRAGiawY z^{MvR*Q`!j zL2Z;{RZ2m*{BORRu!lL2dCf5S_-kHT%XTzTXWhaDc$5BCyAqMndJ2EFmFzVEYyW~% zoVQP3BX1m7_nlGw>3&6G@n>abfuVTR+E4EN)~kKE`Eg-BR?$n{5wMH66G#agsjp=r z0_rx5a`maYp%3W71BhWgSZT8&OMfEo{81}&)PMfwLuQLO%T=q^tJ$Y(L5~*UUT=Qf`vB7_Q=qEM+njy}mE3Jr z;xvvn0xTkhdrcU%Co%J}YaPe?%f%jUrRumpx{98B|EXP$0>I?%R5nv9;LPiS*xMSdV_Cx zj0h5=W&|@LmYFjD_Oa7VuoMn%SgS=LC;t!ZS2FS`#A@2*(V{+%v)oB7!nK%pIQhgSU> z`RszhY!m8b*S`wM`3yS^L=HS6nN14Irk&=bH1kqt=tUl7E&#qYYt?4Qse7m&ZAN`r zAAYDEhIR^4xU~?w_T`YpX3ad|74tT@EoO(~Q4u}Z@M9-tL{b9?0$=`j=_2dksG0hy z!&*Vl^LpRNNQS?c^Gde++HvFXML>djrVuN9^vmu_S4z{7U%_BgFAQOAJ9jznriQ)W z4XOI#J5=#yjin#_*^tF^#z(R74ZV;jd(%{G?928?o-lGyRR%rCpMl_&g%fbMYR|4g1lIgxH{9uD&;-L(O61L}5Y zL3Ghmr-5X|6HVgETZP0)7h)aeb6g`<^t?b%mS7OE}hE2BowJ0lSLS6 zbFy%|_I1BQXi3_T$8o&Egl@mRQLh*tqkXSyP_K?{?)?pEyz9Wwb#K(s@0^@a?So@s zg$VpKl+u#~dcuG3pBpGpH1_EPj^yk_!h23Au0sUB+8vbv!wng;NetTxwmrO!7}ES$ zLKFTQ3@x{OD0XMN4n8`wlp$4~^;lae@f7U96iy*uZ25?iNVkMfwW-d0Q?35Mb>DVW zG4j`(WOU*)?_CQZ{nbV!C(+>ZvNZq1`QpmJulBjnZ$I!Q89JQmwfZZ9{pwN7l%(Zt zraj`yit6m=DyGp<)_t=|-WuE-XKc8Y8|r+!m9x+jF*+8|i&w(x-a1>%f5mA%;-|vA z(4}kg-WueftuKw>8Jd*tKXQrpWEPZ?SydRUdYuo@{oBNIKReG@$Mu_eI!UPH$r`7X zC?oCokzLWIcU(zw_!4>WyH95BQ4*n<+sZFLe>49!)6x+W*FWB81(d9R3h~oM9A$-V z{TtR$Te%1KhrNucOaQ5T-AA|hT57z5^NRwHcg$`79#(eY(+vx*4?T3~mu%*i>^Q}@ zu)=@s`=?9W=%nmFNz!h0A()}&EoA%F0}q#sKdVRbyf59ZkR36-hgD9GSVCJXtiPN| zzDoF$HA$9V>J12?k_~}`@I_mBG?jc+Er2ql(PDL=xlZrh+zD~-r^cs5jPnF4Y2sJ% zdd0=HRrhvBRBRzx71;sB($Ksnp`W%ELm1a*N!gM{x;H;Ch(6$gM75L_{R#dRonT5* zR13v8z(<(lb)4=M}TbbQ;|D z?T(-l6K7kQ7Rj)iTJ2%l-Pwo%J}oR#(;0v}o=>x|`+hs^XT^bvFEQqiZs?L?JD<*q;j2^4fDIh zfxgMK9o1qYtae-q#ee`X(ZMaYG{S!?jaK7OSjOV}{AU<%kPO7iUOvf=(Y}80*Ol4Y zZ&`P8XKE##W*nyV@!Y2sea0Y{2?E3rNoew`ex<6Fo13Cg3d_3UO05(iyE?B&FldzK zH$q2nY{8TR6q~jR-w~Z;mdFJ_ zLJiO9`3Q@(}G)sc@JLUTgAJ@3qEG-g$7=M z2ELTz?ABI1Kc;a+_~C(V8zZJi%|HYW65k?k6LdK;TJ%@DY_y#C_->`>3@)yVnNg-3 zcge;C$=YmeM6R3jqD4a(BD;^qbzbt=B8yFg4s%KtOU0%YSXvfy*PMLajJ$Qv%be+W z5QIwDzgXh-^daqx6+d6~F8!G|tHN8PxHZ=}nA*zeJaI)tl~!kOv*C zmlABHMQs8=IO-;T0>3Ul-knp<(jOl-U6Pg#_wj)7pjU~u9wQzs?vtHp(~t6w-FUCb z&7MopSqyYGn^It?_UBrktDtRT0f_p(>ftrtK{*{mkXUlo!fA^_W3`=E*e?tA=Bf)n zo}`xA`u2GuTU`1y6B(ol=If*;z}AYoR2l(tvwY*<{xBtGvupb5-{YDUY9IP^SlU-l zpVt_(zu_{U^*(&V@`rV_Ztv4+K`*h2PytAgoH3kBQE`a({31pR&0#uWPn7ae`(xoG z;l*)h0`i#ryDZAoyW!9`tgBb#yjP<0t;*69;>H=%p>v_X(0LOD?(x{B@gRkYYrsPg zmgVY&gBifW{6?~dbDP@rpE52$f|SnuR$9B(%_AwM zd#-_R^~RBhcOW7_e1YKl#z$-E?m6xU`ULLA6OZ%G(t+ywGq?r@OO0!sU=XQr@7{!F zDa(FD0tmEU*BBBc#h{_cNHe`k1Cbo*AvJDhY^gUOm+keDfi;)@70LXsSe-5bL=?yj zwi7)$kw4q?8RQ71wC8z%6v8qZ`BC-BN!E1D13grqRrNY=QbM}NdDkMrNH=lKNhy?a zKMSVKHnx#~9-=C2gqbpnk?FhOi_@@GEqp&YPJ-~q1bH1gbx&(TePA2WoiTlM>2v|OEW6XT6pYJnqlkZfO{g@1U zS|O{x`DU0Oo!7-&39+1xpvAOS{vp(MUHiMM*gWah@2Dz{2CMq5t5$AKC$r7u7@Yd= z535%HpTqoK3q+y~6(#o`V4j07r1G3M^>?x#fcVN#6UJ>iJk?RN+& z0`kks+X$;TT%*)mx6km-OVDLZTz6ya|9h0E+nvsBkIda7%eF>FVawBXhAt1{W5g=D zP#)^1HWDCTn>X(ot%xK;YGMe5I*U@Vr6qF75P{4T8G*xpux;xYccCQ z#qiC(kghQeKZeGFZ&k&B@Y9vD{QOt+ndC>crh@8EBY)*7I_&lFxDcxmHDlufz8A3D z57a~d76EtfdSvc*%TGI-hmzKh;rB>X)tiLRomMR*-wFw(;J0y|hAa~t;Pyy>H7edSoF zV@F95;!%?z_^I&xHvQr^*rtL+r_VR7Q|HUY0#;jy1w2oG`=epIL17oFq`y(qg-XRH z&wnUvvrUQFv<8&mzs?v3>UW`qFLUSy9)B&7>BPDIpp>ThqUUuR>Xy$bCBESZ#QllG z0>8&DVkS&vhi?Nn1ndF6J_SnZXyn0E1-C7IW*IFN zJL7cJ>1;HU=6*d}VEbopH5kP+s7t)ZHf^d*`$GBixbkP}U;Byx;8t{ng9#8L##9=XP2$4*l zGk^m?8B!d&Tx!B`*Dq?-ZGDT@!Z((BopD|w6E2FM2*!I8T8wDt^i4CnY^KbMJ_Fx z#SORUhL9tH8BvHc5S_8}H^LBO7z9@s%eRlWGZ;`iA}=H@vIgzT1@62a=pqJzP8K`W zdFiI?2yXs%V5l0^Ti8T8jJr(>fJb_)deF1odQ^v;lZs$3k%hBSKu#`POITqG;jjznCu_b z189|hmoW3E@XH$Q{{UEO=WCCB;Dtb^Dsq0E5PuO&52Qk>$x~yFLq(}-+nYG_`1$XX zT6tJ#&Dsx6C^3$Efo3s(yB{S3wVl}cT64DZ)8nLI;A`dBRpLNBF;VFO-8Qn7q8}Am zrF`hK@_RQ5yfn63h;OwV9*<75Kx{4Cev!^^L_=p50qy`Zsdyi2q-?QFTUpK5uLYxh zF1JR#<+uWEjk0meZh1q%Ok5_Mfb7Q^1QwT?|C(hW>6FI53HHtG+utgi;jSY63~J9dTe z`hLM9nYtdjblrz0ltJL0JYC~RSJ3GBg4;=P@Jm_IF-Z5wa>gMACW-pKvHr{`th9q7}`Z@#_3U!u-V0 z9lRZDpDSHMFjaA8^dw8+?6`X;ljqA*?;m9q{C*vkUj;nO zznL=&;&gq-bzgVi#UKPgW%pMYJON~=J7ZqDKDUxnBG8fZ;}SlLb(+Zw7?q(@5$DK< z#UZld#~XDhix}0-@c_hUjHx$=+0>iI@xh1*#~o-WU)~xN8OpZT!Cd6xsU2 zuffZ$`I0yQU}pOM7+SnH>~&nEuAN9DwEUe(U=pQ(P3+o$4`Lufk%D&scj%_)QA!}&Mz35S@fyLTycouj{}#a|Mx8IPgG2QBkPftQ+S z9zm5Chh$0}+a3`|6DqPN$?+=HhHP1-ifhgKUt+YQ=Evdzyso@AiLxaFR~7e*5FQ0o zrw*mR)aq`z;m#o@`5(>*){z6Vz@7HS@b+hfo_{$VB9U^Dm8eEXB+Oh?uw*o>ZLTJH zYw{0{=_uYWKOaO5RERxnKl$}L#pV?^qVo;6G|fUIoEqqGgy_C%B+?WKoge=iDj*W# zCT{N>zEezlS_lzrz0I_YVczhLp`UbaXcQI90*fQh854`0pjv#BUQM4idc$mVJh+(s zsg-z*5v=~fvA{TmMR)V(L6@t;^VHZQh2&KIB5-lPV)j`ORQ&qwc8vnd!nQd@*U;&V zc5@z_OH3j`!O?5Nw#gG6Ea4Xz0mexKK7;0XMSs5!`iP-e6h~F)4|1AXJY38o;b|(3 z%lv5w&7Rb$t{g}zIUaEPo0CB456@lfr&%Lra_wgivyB5dwm8R)nJu6Fn{K4h07Lt~ zd2FOUyQu%9QpzrdgS8;P9K9){HlyXG-!{(p`1Yo?{+^XtxQ{UZjTPkUj2mNDvfsiC zN9}y?T236+iHts|=id-({3+1LBcMRoC)-uq`4-0O8>dL$P?WOGN_yme@Bt~CYh=#f zk~j0o@4n2eH=1RgV=-3}m-kzn`puK?S;aze4n$iMZ!6P<&gcNFdO|!Qc34RdpEB|L zl8;|r=JriKB4cPM)I+VrsQQW7Z~(Q4JnM91SUyD~&z)Ii4CDmOCDEksAXW9VfaAuQ z=6-KM_4PW1d8Lc{Uww`>HE<&Qa$rWR&em}7`7l3u?b=5MaOEtZDJfIc6*ap zI#6NF9EY5DhK45ZVrhrM_t#~?&iGi0je*0*m&`wSqu~-%GJnSZ2IpPq{B)9xvaH0W41{p{Xm;K-Y&K=HOzUw#)kS~bJCvh9A0 zD(SmEq~iCc1e%+3($TAhj(0KvR7EZ3H1plN?8)`}o=ts1g~s-k3AAnej7#k+?5W|^ z4=UBFd$%*0q8G03IJMGY6Vw^+Hw+8kLk{xn#dbcSN~+bS4AwhkMAYnjlD;vk!X@Z& zTiKITu(tozejfDh*!C-}D$m>y`=xGGGd(M~F|%P|xz(}GFZ>;e9%*og$ikvhcf71t zR3Uj>h;Dy)sUT4_-l<_|h483zw-v=k8!IwQ-9g%=`2G4|Iz!DbeG-wBPLA;C8#>$N zAHpJLE}I{&-Ejxiq`zej0N?h1Jb7vnq;~3hAus8P+Ma3F8}WYIE@4h*^+Nu50gXE+ zbURVQHCfPqJM>V^&bqkQM07>Qd6Qci>pSi(fSBD@0?D?`%+$ zOm98LP**ce(*II+z40p?KoI0fi*Qdd=)qNNZo8F%(|Oc49l{9EPSK%QD% zz}f-7u=Gd31zHU3w)Kl}6fpEW&rSeM5EO_1e0A{#UYYH)28>bjC7_)$Vt@>%iF`;@ zru?GWWe;*a4KsTpToc}TorM(Q6Ur?=X z(^*xs+^FQ>Z0>GfL^UEEnv{&1Pw}GqYo4|X_X3GFgqJA$ z?ATt39?I0&-JmdKpw;Uy>^jUWymvs7NLo%?i#AOL)_x(*v+d|kVBDGQ`{aisFnsBw zt?)aa{o-3}eEG53-Fu1iCrTi;XX#!~Zo-=jC>uTZQ~nq@>B3$-2CjebsHDCTrYy^( z4oFomVTN@F{Y1)e4)Jn6zt)WDZd>{Ea^Jhd!Gon*a5#M6XqG}gxg9*bI+ZpE*3Ct! z>PwNFM2%>q{FA5~2k2Olb0?~gu0JWI>*I5(3n8;g{d<9HU(rER=sn!{Z=7@G3Q@qW zbk$)tAKmm_{Xv!KlLAF&0N8e-%r9LPPs!*Ue!FuF3hOOpa)} zg=xHB1y@12`e6c1{F}2VUe|RIFeaMrpN%@swIMh*O zl4-_Ly)VNVa?E-lbY_`jvfvSb{_k1jy~uIjY~xi$q2#7s&Dhq#dCp1wTSqT#XPnjN zvwqhhXXqB}#Y0a%tzUNfq)Kv9uDdd20)m2^lb;8~!#{?lmh%FN%r`Fa zPeF^}(A^D%4=^WV4mwgGTBlTBPV?cue@YO9CL2L7BA|X9>y@&fq{QJ<7VKAizDWfx zx>g^8?Ne;?(ZiRxiWjOIcwSkdiBokaAij$UN{c`ySRO=WB)ib%{@ijiEX|PrN_qsA ztQOdFRodH$1qlPvKv;Fn=Qqnc(0&S@|^N00s{|z(3Kf)CN)LvK*+U`59_?;e7 zb=<`*y9@{ADWIh$`W_rj31M55xy9_7$ z4Wewf09iC|&3VTL&|M+RyP|e@lO2d&XTuQ>3xfjvH2Q%T*cc?y1G?+I`wi%>gI10|pe5?MeALSm znh5#;K9cPrP{?ct~)#QH>8fQ0NRm!_WL z*hV&8=+g~LQ@;(jL^gEvzvt zD6N=|06H^0Md@eb5I1GFPZ)jSPd9#z8MA7$;p7%TQCNP2?}%9K-S9fhY;L*zo7rMy zqpjy_Fx>f#dAQc&?-7faYeg!&ul14XylKJtji?UGa8KA}3c{mFmQDmCz-zUiV#RS91X75F= zG(uuc*3fstIXFCt)a0Fz9!-qCrSka@EdjBZklwAIP+4dUGy3tuvUuu>b7+R5bF&a# zY4afS&O&F*4%HiAm&=KnMV3()jetJmu^NLo>TXy2KRGdb`QmwuE3LjRL{!jRhUkvw z!Mhtb)Gf~h<`}W~qKt6s5;3Rl6a_&msM`w@ODbW6t*E2 zWD+?q`oTDhOd@F>e)@#BeqH~ejUuHI5#9QW1OMC}=Np@sZ4~z3XMR=vj|8TkIl#R* ztNraFWPk9!8bUp_#ZikFPL>U`II}l8Sjg=BE8b7<&$`vwTIyygxUs`exqZqwWK$k# z(W0;H7GgP+tg`qt@H&``XdQ+`*u4^0a;E>9k|BwuG-cgb=|3Uv- zV)>^60Dl$~G%xL0EFbKRFML#HXF`O3xtaihKHAA`=jzf(Q3;G4?7eb^(;u|jwyN$s z1~zBDq@oM5_}7|kr(sw0(R3u<>qMs|11LTCn7t-O2hmO()<`K-;N#Asd@pz+1g(7vx>1F|f@}1D4k?i7?%DNTY_F3sGV7~DA&_{aoYY3~5!Kg9*S>7DvCYZd zXmYjd&DAxi!KPbp8lPAQ7g@CPPG+k4s1#j*2wW-B9UV*K$p7pR}SVKm@e2Z zRu2S_nWcAA#nzz>A z1fr+p{WVLoqIRbtJJMXK)6jvB!H@OQ7B5^ZR*@<{oE*J!`VoiHMupSNVjEYku6YZI^-S@zR` zo&umsWLo56+lP?}f0~{8s_WlP4X_MYCHTg6=A_p+^UYr*C1TBPj2sjp!=w1T{KkXI z1cQf9fxo1lI8^X4*(*3t@p6w&Y_W;A;@R&prpE*l-ybKgzG|GV7qC1P?RNt(Y zrQ>*#7*TR6pgnsqrO^J(wKBzcRGeC+qLj}OS7p{0pgNNah=D+tJcR3H0(iB^hU^@; z`=|Dt2|NS?_*KdK4NJ+WQs5yFbJB{?kT|ouK9;OFBo`|@OKd|OuC*gERN||HT~}%t zP%Q9j=zo}^WySLP`k!-J35#+TGlf;|!=6q^|46Wn1tcpS4Uc9C<^#oq?Taf_G;$cDB z7bZ*)LH?TGuvglEY-2!pE%!ibsxid*t2zndMcPN)b0)9R-PNqwUD+I~)BM3cMQv8{ zxy(OC&wYh~^L|Zx0kO@0GZeQY2#*3+F6i9-2zUl%0t`2iX%B>3Abl$kku)6a^0Ewz z%|&;)&>6c84r>u!BG7=>WNNR#fl~=thN;WEIR~{#oq$|t8FspyiZ02nQVFb=dbuC( z{V){ma|m}o$dtK(h;AqnFQNK$Zc9T-=*IgLyd{7>S-PB_2? z3Fa0?hn;z#E z78I_Da^Y-7N#qi2E_titg{F!+%Nn*(s_VV?L|EXl$h-0YB-h>FAl1WbVsSnUai(ro zQUMup-Ixz!+K zXTS9FhTb_%p@{0NHDB=Jy@((P+1T9j1*W(FqcT*H@nwe-*c&M_%JV77S0VSotFe3t zrRYQs)~iT;N`y6&HYJIBOknX+jrLCxe%izkFLMCfb#j*2ugA}9G z)YU)wzG03R6fjORZQVC-dxKl)Vix6FmUiocpv_|^-8Yfh|AB2SNxOdWpEQbrtJ;fU zOXd;P73LLwyM06V4pb8K9T?x36pv;ZlPM-+`pFRC+gpluXE3j(Rk=iU_d^3s2$Io@ zKI%(e+|Gy3y3T3gn+YN6`#=_d0}uz%8axdG(ff7dHS{D4jDHLrx&2uIIvYlqB5oEy zBqLD{Mz=mYz?(mKbtRy2#1@tveZsROTYGIiSF_!Yp8%<{giJiatZ(*nOHRTkw>jYE z&5BB$W7Ut^Y16VfMGC4POOcYCdzJdtbD1<*oL4(~sfLk#x%mHa_x^H{KvRJ+mVI&5 z!^=P6*UUs6>J?9)?kGqkOyI<{-)YcTM%N0X3+vSDzyp}CnN=uj_6E%q5-5oMu;sZT zA`dN;N6df$3@dbA%l7yK9%X~-JG6LQJInj+F*&XX%|qHxJla@o|npSgM#X^PB)J)3H3F8m~y|+`|QXNr$%?(plF%=13Zb$?V?)3SKdzOc0C*PzDF zX+MX}mm=Ad_~g`RC%;Hg-}33Nx_AC$&s)ouDK)+GOy-FV44AC{l*W5qt&df=IjEUw z;vxzRdoIs|(GK%_WE#q_Xg;^`b)F!%tptcJAD9{})243XOx8SM@m~_lf^~?ePTkts zRPy`TvNy>-Vn23kmRW3kJjyj$Pd;paSh|aN7{_h*3KqFlH^gS*a}@Gm7C-;dNq>;- z#DEq@N4%VRr7(BwjYKUj%HJiM_h)ah5nxx|P1 zLjn>-?;-%8`754Bq9`s_cr>QdV%?+p>SEhm&OL#)$Wd~8KhCqdP^qP>6Yk=M+3mqEtPku<`XhT_9u zx%=HImEV>q8U&J*HsAaI)Nlf|?H_LnS!6H1H}qZkfKC>Qrd~`XS4LC689|fA$+`=) zS*UY7X!_LP9{su6ZEHmyPLLGpaFrpDUTqZXmxPAa>qq8YHn6zYs_KINb1$Y7eR^X+ z91^Keei>W(alTyrD5zURIY#;AQZ_7FRsVbj#cIoV0H-|?>1-ojnomgr1Er|y_onXN z`e6N=OzkDiAzB+fXDb`rw_p9A$O~(3>YG}XC#G*1qJ9K7WY}_vv1kkn#spJ&0I z%CtQ}x8KgYy69ZWXN^p0iFJ&R0XC<#|F}4jL;iD{tJXC`vE351$vkFs-WCf7w@SDJp%qSg`wnklPMo&W)JLtJWA!A&XzF8`S~4|nC5)7*`~sT z7}~wbrwy?H;cjZBSO1p}YNsHpt+^BK(_x;w1BS>UFMDz^QpQTSrgg6KC+ppP%#6r| z%}PPQ^LnQWr`eI*aJ#m;>z@0e;&6+y$d!%#PL#Pri7~_=V7* zTnb$I)Dg$QQ>SW$3V8AX+G%&|yifM}mkc(@>l+K6y!?Swn=tOPee8;0g&Y~Yaf=J4 z?|+0Q=VkZqPO%&)c^iKc+7|9d*-c0fUH6OXPEO1Cp1m#Md^T*}M)w+Ur>kc=mhj}O zSle=U6}7GD%R=em&j&J#2~pIjxK z3}pM)UATp_FM|(5s|AQu4cRZQZ@!1Q+kogWu0J~{NUg3&KL-o+V}OEEkIu%@gmD|o zLS9qp8x!tXS%)72k4L1Go+ChsK`7g>ezo+61?aHS`f|wbOnBd+0+Q(q*ZhOq z%a>j`>25L3rMEJx9s>se(7r-6XWpPVmKEg2Dd9SFHj~x}oPVodfW|)$N9pb5_ZYhv zcsW@zi2U_#Aa&OP@u-NJ4o{DQtTl^gb+h<$8Y2&09?RX(*?y>jPFNqi4#% z>o6GEMdtqYxvS#A` zQf1Rp*Lja)M9_L64a@RypQwvz%DkG44@_p+x?=6Scaw<=iu30$d0uko0WHe>u+PT-hq=oj)1?cvYuVYS?_d@lK-))zi68ysUNc(c`ud1EV zWh;G;XWwKtzKUx*V-ih=Fp28Rac-Aa>~HOqy54dv@Ymgq*x-w{jFi6Lj99^K7`8s;qMbXMs}Cf)WrfS67#TvuvnI-7fMqGx{LBYu@~)){g*>M6-xEjE`l68S)74*Yv<_ z*&NmVElH~l9{LwZe9d@|CXYmW?UaD$4#jZQ{e=Q$iN>!=%FPVJ6Ft%j`UizXJ7ZQq zmqbp!c4>7P*-xg@-NhjQ%5$Y3)n=zlO(ATauY%`xrjq)e)Arp#rG}cgnVr&$S!O&AI zb$Qs?6VxWnY_To(IY+Zk;>4m~R9WJ1nA(xtlf;cL*>Olqk6gQJnvR`CC_?T@WTM9? zewW8J&G}62{rx4Bf*-jR`hZZ~ze@LrovK!wOilodvU*^|yQ@XkN4#CugJiS=mfGHU&dvYHgl0;lDgrZbNs-T@vV7WM ziC2oak$yhW=PGkXJV$+(2XoG$BzXrmx*L#fV;(+dyQc<<-pE0sjCVR2?+yIsbanHW z>x+goXZf|`?{()j!EjYm)a3!hFI;x1i?rXv#x5S>z#=CcR>VE)S-qUt-Xf=T~Gd`$?WmxX>-Lz zkJcZW(mpMtH!3ZDTQ-Jv9qsx<8@%n)qgiFBgDZ1EtR*yGtr=Q=pN{pP`+=HR5Mh!K zZ@PXb7E5Wv%>U4d&&7*&-38N?ogm_CG=~gBHQ*m}Qm-%7%c2@=yMU?Y)|yibw7`Yf zceUZfny%B*rIRQQX_TMbZSCZJ+VHnu5+z;^Y<%h+%8c!IkR1gBbEvn}Wnklii1x)( zsD?Xp1SEBw)KxW*Db*d-`%7PYt=BVbpm$j{R8n1Db4Px%a`O_n`{t1-|7t;BivOAY z_p9Y8_L)Ic1oglW%p1j@M>RldDf3I4n-ODjyW0l%eqH^nw5EG*`4>*7GMrjzO^oU4 znq6f~}ip72CjQQdXkXjg`pfuA#_ty%o8@J8#H`VhQ*WHh#N7Z<3zHv=sGISoU)2nI3bsM85|F6{%ICABti}jDPOo}y;KacgLIhRcU0x@P= z(Dzj#zCro5OkDA^F1B5v*bbvjNA$MnPJMHa8SmvTkMeDGmo&<*;eY|$leL7Hh$?-j z!!nUN$Z1J*K65Fy#v)R~2Em|dqWpO8Y^C5}6^~_a);cc9hKsP{&Kr)>U&Ol8U#KI|F-Pju=#v(N(pGOQJh!uqvk`>4sNc4WAM&a zliE;VqI!d10d8nhNZZ%I&q+ELxpvv-h__F0)n-P?`o`nh^kqXah+VjJHfZ`6`imPfZ+7e@exPja zIn1eKnIa3h4{OFRKTy>X)Ly4ixV(cs=NJR^;xr*|ESssfWbF!80_QwxLwq}uAQI^d z{Z(p6nVwRgBN+KDJ-y?si^8I=E*m=#_ZTmvv`-GSz&pt#!v*&=h1Pul= z52G1zl#4NgjM;EL=io;TNjJNef87sfNP*9j6g}!$q?#(e^_YPwDk`|)NUe;;hM@lZ zY#nt#Qa3L*bmE*`SdI6Pj`O0fx93w9D9JjL%UYWwoeM)Hvnn&fNlL$}dU)oF9SQo+ z&S`IFpf(4Q%}OcHt(6TV(sIqudDx^o_gxpcryW*pla4D`KDK{!EX8=ca^vyJ`tWMp z?8LCiXg6HfO02BgvqGfo6U}8F>=tIei139kII^}+ZxnnT$#AS{7xM>469%&jeNO*d z8lOI9Z^L0pc4Izm$)E<0IjI-D*HS0l=P*)-*Cu2ir0_HxoJ{lK=+8*lAVrOZiy0r* z4s?7t8Yu*hOu+&vX=H)a_b-V{nViSEMJ7@(~+~ zlxRy4pX)e-(V1-SI%_p^MLW}zaPnT+4=>dEln3jTw-3se%6f&Awcd=eoJ4rIIBuzr zU~=QPZw#M>S)~`HyV$)cd2&Y=)kr;B{d*Zw#52A8YQbFM_Gk(0XzY(piz_w4$VU&K zI`@G4$`XT<81w7NQOs8hA`%J6Q0(glubE5}#NyX=~g!IIH-b z^;9(MGTJrm;W<{J`kVwLmL-%yVIA-N#o8%IOP~3BD1GAdje#QYf9=iqU-%*`*xH)t z*i6cEo~KE;!XVUa%G}3a^o-#>A9i|O+n*5S)pq*uH0zV2<0&ty6}%aK=_NpnsN!3MAt89px`2|IW8rspeM9o^wh1g&9?mTBU_zun$ zxx**#%U%rCf!vwXq`W(rJkvEjFr3)Eg*xBd^=HIaJH<9nJEf=+jnYq#N^p(v9qO7c zFd7n;kdXNnl{h<*LIj&#!lB5-ok@cAW~_U_*V10#yGeoCGtxJ5H#3NygSW*c=6}zid^2OCMJp3hOYw zkoj-|gs5kbBB*rGM`&t_|akHs%12rE}g~wvggoCeQ+Ig!^b0mCG!4?=y;eq+C z>Avf2;692}wN7fMP^2Vl`w*+5W2tmS;~tV{7+XJ0_o>PgZ^5ItICBOI?h<@tYJ-xaBc-bx>^IE5#m!A8N8G z>Xj5c@Fim)tnfklE?pxOZA$A~2m^zkNGCWLZ4e|sW(X?3MJ*ZlrZAR!RUf8{75w<) zV5D7u?o-eo^d4MX99gW(6jk-TjfOI}SC1eOAr>0uqhaty^(bL~yqFFa4;trz9+d z{O_P~jyEiOWVEYdRpg08m4&i_QxL4>a$vHo|_8W=c7GKKMA-70GT3LS@ zW`)egr^%zQ=lL`rGfR^gMqTu8FH@qdG=7Jr!}6chzl_&UqfWyh5QzVg2zpuZp`m7d zLrRK$g-0GBNhBZzAHtfuHjU?;L~qT{4MZd!jQFz638%BKb*A*@u-i#VsVkE`2##)L zBvn)o=%=l%J!@v0P7u>ZJwuTio4WQQ=H7Q)uXD0FqAjBFK&qfg)uV9SWG;IjHnAk9 zplIYQiiEi-%VU!wy?GW!LKe6<5rP+Nkj^Jj>JH)CO(HIHq;EFJUr$Pk^kbHQA5~vY zQtAjD_bYPC=iG>x*OlrN9v}RY{q9MXCv$-o%}J>22KuN+zoli;pwpMlsMW@H+ON+v zq6Y2S454m!CaDa2;=RJ4kzP`;^zUKBH=-V z4ub1}EPUU%8caQ%&$$oQH9B~5xArbYl&)V}9%@7u?xnwWo$b)-!8&NGxWw^>d?|v1 zAIt;>1fdeg4>u#Y=ciIgp1*gmi5|b@8@!Nj!ntnzWE0`b%AQ7}+||p#RPjY^LMJK* z?n#uuu)ao3Nw?;OnVVGuhW^8|IR9^9Ov(pO|EJ?h3v}AINoMn~xaQnqi8d+6n%Ui5 zg55DW2~sK?3c`H1c5w^S134)@6Pmx-bgo(%cRxHaLn3gW_BRkTbeB002fq|Zeb#4v z(qfL6K1a*hbu~0b@rLOj$u@|$yzI{N7@;}c3y?Fq>|q*rw3GLW>|?(?@h13vxLBQ# zcJdk2$hkE=c8jf-sDlCGxKZw)ifPLPYJGFLhLWb z&VT>u)~*nNBugI7mwKEJ3?a@IfM>*+Mi~AbVIwX6$&92YMq=iC!*PpzsXx4?0}w~b z@2`pF^-;jv?~EnCHdzrB%wuvlPBDV*!y^P+W7L^%*Dtc3B$ZGjxS4s5r@Gd|Wf<5T zL6WpN$7MZ-x$p<^>H%WT7)D)@gi?U2F%b1(A^*pSeYHr$+;uh+o^@jh$~#q85NWPW zM)|K=cKuA8sN|ZW%T+rz*Z3$2Jle2Y!NS)fnIk^s9t|%K{(tSgcR1UB_&yq{rIXN> zQbMRvtx>f}+6t;xl}@u%QJabxRJEdrDz!sP1+Bejj9R5uW5z16S8S0OzqhuZ@A>|D z&UMb8C)b4-m*lmcao_jrc@7q5!W_vhJ4Wj=wK&6aPs6n9)1-tLOu(7+ha9pL~_-7hY8Kt zeWZ7gTt1UDvIwWtF_$a?(cdq<3SWWiCBr`J?IY4AfUNjtj&b-(=j69Dv^cIUmVNc$XGma$pOPXnM$j(1*Uxlo7XW?n9;eJ&V_1AY)^LzsOCUD*ee2h`hok7^h0_|ciWXuCcs}V)$6G{`cTS9x|E4w{GhO=v&A(L zf56S1(V@#aiP&l%>kt7<8{Cxg>)|eHjCsK!HOp^(OTC}Rd9ov{`Qr9!d3B{;^hDFM zdxu#8h2I46V8hX>eN|U(uF}zGz4tXdFHUeT*JM4RM#*K5%7}q&4IH>SknN(<$|U2? z)&l2_+&&JBC;zhBPeQ{^U^@o=;2qAI433H7D zo)AS(bF0=Di&~HEmwLXRwOZ7AV>xfTsD-k8B1!OzyPRNCuJyUG7o`} zhryFYEvY7*vDjY;c+}p4DVf?NjRQSY)PI#PWhtkR$(M2~!_J3>=WXwxGt1}J?@%xb zMCXo;iQbC`HUOMd0e}^ZfTzu#rjWk}sW(GhcaOtSoizsy4G^MT)Mn!P!A?#p2B>`d z9V0iP=q0-f^+h>11^p?5&4tqNAL$a;PPUa^&m!dMh?%DMc8)WMb zHPzH2dy%PU7MU<_8CYwRE@@3@3bLk3p1z;IP05fw7+nFoZG^20+b3D>riZOxTl_Yk zIu*JOJ6pR_1XP5F@6rxd;ktWu?P`w`bPjs4x^k0m>1280TYl@WSpFAzuFp=Zk2G{d$PCC&;E3|{K_}#%za>3)*&>r&Nj@sW{p1 zDEFfOv>{${Q{7#rRe>67;jRo+4EOVNn38S1Hyo>V!VC+MT1ErH|oZ0lX_Jy>;)<)oa&>#KVL~fD?qKKIzkoc%N%$4UoOZ= z?QeQZwgEuX8OY|281R?u5N$5M#WwB()K&lSFZ#NBW62v)eg&>=_I`?la7UR|>ezmJ zjiKB`3%@(oXFl>Ex%}hM|2oblbfMO_5WHVmZtzRWK@?L`iQpUg{5{mgNp%T5x_VZ< z0PF%&M8wL_TW&Cc2!1n=AHgF0BfLw~mtp=rwm2o~wHYwPH{3VRDK2Fpsgb)(*B3WV zJ3pkoowXRTNyd7!pnBDR=*IOX341Q^kES~Uu%_bx4G5t*y&0Uit(x3l+OL0Eomsy^ zQu={6fZSKyS?5jTp3xW!(IADA=jEF5a3-@GEihWux;uCZyQ%I`s@G>L?)h@>ZE9(< z$C`*^^3Zx%!C6_s$U_ip^7q+V#1DsxIowgG1<;Im2?iwWwmh%yE+N|U_&L8~Zwn$3 z#|Q?&RZoRZ+&-FW8_deOvoJ~?E_dbHa*oO?JPfTknlLOO+^YdtFBYSLU?XUNxw=#S zQ&zA#kwdZmgkpp$@Rgnk_&QJGLk5@$Od_)aAJ>vB;*laHZ8AAwM!Y72~x$%2KPzd5bWJyMOIP0KZkb>m(iy;I~$)YEsnvm;I3|Lp*^isr7^7Eqqq^@F+6&V1b1 z$+a`4%%;QA4zlC>04rdsgv&clZB8zV2l4th=ZdVOrI?5A$u zbwl>q6x6Zw=L^BN;*(E23Tl0;YQ&#kf_ygAM|>O-g5As-5D`KmoZ5A(e}rSHEvAcx zZx^GIef7@U-T=R|_g$P!cdT-xH5J1YEsK$T-%57oPHs_{Y5-_#F*`g@cMa^;Rg&a9 zIxM?SXe!?`(JCMZhnqXrsG~?@1C`Dl9?|6P-`nQ!bG5EP5YNfB!;KRJj`m(t;ie1v zG~m?Jt*8TEU)=twJt}OAyJku=jJcZVxg}rS{a{fm7!!7z$9$Tbd@$fZ_!5_+z0Yjq zZS0Qi%wOLj^`o9jk|Dd@F_mr|BHv6>{j&YF28Y@7lGcLXvl*u+ijM6kiRlve>qC6) zpAzPDjc;#MpQ}Z@E)N%WE>1^PxnP-g`^X0`R~5*F&TnHo_%~jYz1M-eE=Bt!Wtp7u zmWA*t1mu!q4Pu^W-<{M=?<*Sygo4-tR zdV}Pn;v`da)+QArB`vPpgY2}ZaKSwH*v}ot8U;#pi6m#a^Ee*&C;(6BcQtbzwYBZ^ z%$1jwsoXBOz{bVrj5wVDn+hGeIK}4OQPwVbJAdZNP~!GGY*>WL89Pk#cr5SYl6+pa zaxpJHOAzS>sEG$cMl9D6VPGk+uTYXtYrU$t z-%|ah7~^j3&w|W^uRA`I6>cZVw1M>V`~kylZV1Sx>F(P$c2%39W%QjKz7`E1oHklC zhaecZ`!pzbso}zY-F}09a+Ta^uN@i=hdJ1I>XOp!n|)qwmd85U^Hdr^3u|M|fxD??x=yqtPl# zWr+W`jp+WDk*LO(TTHq>1*-!jpiC^*r$}T%X0vL4?b~_UIdG_>@W~oyar+y>RzEXh zkTt9A58YwB;;6RRMsX&WeA zPq{^xCL$4|h;nes=F?+4tRvypIT40L1Q*ob)*u#-NW6DUZ^$Twnct;cc7L+6-Tl&n z@4{JYpVu{CP0`Op53_=2Kj0H!F(%=_^Cq?=A60E1h#^{}*G>(J z@DqZ9*7U7>0!?u{!dn`!`E`-QkasqzT?N1>X5OQs$&FWF(1Z87q|~&~gD$zq8jR~2 znN07|5Fa5|wj(RHX9_XSgpdJeHbBzx*s#&{o7NVxCl=X=(8pSjT&L4&$azQpHhWi1fkC_*o14*vXRR^>Ld3U}NL@$_67*gUf|n|~rt=OK=a zR%wucy2OJ7Pbe29#p6r2?>aPGb`$!=6JaR3KH<7NgTiiUJyWpH?fy-z_4oY}e*cqI z;)-N{3)k5DiB5#SZF#Y_Th$!n(x*;Dq)q1?M!je=-`{ zP`C&902$pWh*5vR?;;uj^eET2u=){x_hwHq*UP6?6;~&i>H;z{yA@LEnd+vPek+8< zqAwF{z%h18=jx(okzscqI=|z!l_gKCU#I&SWg7Sp+tL1=2|)qAdmXSLzx2J6z#zee z0%HL^4yU!r!V#u57QXiDGifJ&YhgP$?wu!t_uRB%b+DOzkqi=K&#t@am!+N$O8Wrs zw&I0+=#EhwEc-C>03Xe3sRNW^yN5Z_@N!S3I4dDR3dJ!V!28WsyKqMzxvuI1eF8L< zzU*HflOb#gzL_?R$Ol(V-n;_-jPOy_vWyfC$w?Pl z`=weSP{gu0;pOS$X01P|4~RN6N}>XA0^Oh;KRQu}EE`c~QI@@pBgxOTon%^`U_iJ| z${8+t*}W8#`7hZviuh-C!1__!t0|W)qJvHXgN|6tikvp_(UzaH9Xm65n7M%CsQmj0 zW4qJOWmGD5rW52@t)#5JFAwBftY?>wQaNZU%*s83<_8Nk`wJ#Cpu)8b5aO<%Gop<% z`wa}1ZEfcIq1KhRhY2ID{l@M~&ktK^DbU9DM#i*@9Y-qM){ihNbq!{UB28@CfVj)2 z_dQmoStliTV9sK313OnIhxU3QKWA7>;2{QKx7Nyw3FH^)2Ll?};lBIp$&Mx>W8I9@ zd(CmA@Rl*+!xun(Ns+PaEeZt99Dc^Ia!d9ws#SbI^C3QFO$pB6sXx{oAn~m~c#Cfs z?f)T{Coq4)UXkx_(eIzQ z=dOG$c(dU?%euT9RB842KIyZX;&;%&Z)T$I0o&1B)J0Aep7UKZTPDO0*b*AC!HpWd zX2Z6$u<-3qWcPd@+!_C4H7@%k=`^}xGtP%6`CO%S=kwdWu+~aL-#%Fw$=hXg ziQ+S8r&aVux}+BdqZJpXWAMAA_5>F-`_e*};&9mq#J9?*RPAhK6h~|4w1%88mqIbB z?HKR_E`@O}6C3wMX}`rUe2~pSt5v;C5!5Gfx5Q>HeK%5{?0#YBde?Ru#k}p1l!}s? zBuu1^;@hw7i`XXCY3CZQv%g=oz((%%@xQ`n4F9*IH9tC;pqY??+ z`E=j}Hoh_k{Lb`M`6q8rqX$-wuf9@NKUs{FIcFaEWdMBP;wx8zwygclL^INp4(~<` zC=)3oSC29Kd^NwY4t%H*=xIErJ^<_(qMD)FmVMDxB=y!%KB0MF&U|q)y5wi;*bJe$03S(IG1!yr)$qL==WF@<9OS%6vIm=vrt7nHVlr~^={n=m*+%Bg z%L>NC|5>_-n+;4U^bt1=!q9x(`2%3#f#6f-&2I-XkPV16ej~JnJ$U%HTwdYZikdxsfi}SJs#M1eeORX;Ld!+hKPMy?qst`GaL#1 zK0pZa5zix$@MP6aiaVGzpGpDXoZwSJem+G)B;7k-N*#CS2y|iqY_Z8Dvn!WyKJG6h zg+8^57W(k^_bngZYdk>FhO3BI&G4D>dg8%ZH@FC8-w{D%|L z$p5_Rn+4g6)z!X@|$`%x&egd1$#H1bpDvu zbZviJK)W?Ly*S~u!93ITOQvIS>ZdV=ueDoK{z$3dnzPYe?~8f~;+eTuH|<6~Z_}X8 z2KpUKQ>c!0<2w_S^w&0pR}Yxa9dcAvXg@_-?54W??ucuLGWoNYS`NKOMcKCijMN)Q z&2w!b6SkektuNZ?ZdQZ`H{aczRt_$F0dBWSLUp9v#f4fWdXJhX#RK6}$Itei2FBN* z>HQ7$zhT3qx{@vbV4#RC)Dr;szwcwoKIw-103sTfSC|uN{H_og74}Z8L=0YeRtUbJ zMXovU?F;HSSP6nJ+L1=yRUZD`Rxxofib>Jdl(v|K3d6d6vhzZ4=j*%6WY>3a{(50$ zzm$I66ThX zrJiQm^Gf$c^6DS}`kwwIoV@z(y8nQW9{1K9Dzzc$J`VNcp79aqIN0)bey^vTY&<+wY`)xJ^@!zNsa1&3(O8*;hvI$F|}-jZ(lf^-mfIn8g@dH zUz$%Tk>vOOxY?r`hdnCUc&FsRwily*3xsu^etc5gd$aLmj1f|mT@p2}T2r!;5`!JV-K>7r5IY)x|}UkKT# z)~&UwkTpLz%8vii)<&D0`b;+^p(8LVwdDN)q&9nqU}8-#xHpAocGy=#_IhS2Y$f|`{YfJOFHLh0o=i z-7a1-p-hSU4KDo(F{{I{@VNj$WqMKwt%X1QB|UR~kn+q#6YQml!=k)+sj|APRjawW z+|2#=rIxS)0y|Au3xh=B%Z7*rU(Cv*t8}5iTW4mBS0==! zr21LntJE)Eg2vx|(O|$Jk#dIbKK}=F5mO%GA()8bLh+@P!NHnqYM)q9(=faHEb4&| zZ?b=ux0lM-py#+5w`R@Gd}P*98}THD-=CDO@R7r`KmSGp+neQYuk&wM_fcb0+Lb94 z?;fT!C>g{G_|Ms*gzMzCfdu@-^`%dvMi#>!W;f41{yUq3{=r>*Z&@BQi7>Ql%Z?OX zwQ6p{dgWT4(6Qw%4aS{|<&6v5h9qmqyDP@1W}mJv zH|H(rd8_?76uSEIZQHXSWZpya5m6-oY{sz_$+?CI;!kuN%@NdJBpEwN^iesNLGCc}}bZqkuj^$3=WmYYwjDuN@as@xkW zT|ko9sXjnpYJxjfO7O&H0Wbn%y9&04oiJD2vcj0b!z2xc_%#aL|X;?n-6HC8cO*p z(mjpT7M%ch56hxrGbEv&z>$?}Vkh8kxL!SeQ%)PizYnhM?cWG%FDLGA22*+n{m~&N z`$VydP)a-JxDCCWeX17XsyPRrk~YZIPqeFC_wVkz><_3*qz{%H{k)SzaHYd8C%cI| zK&2Glvf}VSgcam6dbe~0Ib^;cG0S^ksJ_+4Vuw(0tlsSN1l;7#58Y|nA{+q9r-h>Y z25;X$TIw_I_yKuWCmiTi?8tpQc4TpT*i|=InM-H$=6*zm(NEpV!%#}>AOljlX)lmi zfq$C5lpl^TvVwdi0i_t9TuJVaC|lUAmG-%Zdgb`mN48ykG8fiLktpfWG`ExL7#Lbj zzTQzf=IgE40pZ~Uw3dYwbXBkV4$oD~U7@gbtovxWAyBWs#&4gOz1B6{uyA@wSAOXs z#OTN7M@?`o<(tFL1{8V-d0N6VPpUnp^KoYaZ9pK{rdRV^t=5lA^hUCc=3$P|&)J{& z?}WA3?R|91FS57|5`xCdcY2o*p>2tmg84dLHs@* z;VrEdztH7KcI!1sY%~&jFYZ`a%dLiM*|D=P#vJM*8Jvik)j*|>B>rv?Y(dD(S_=ML|1rg$O4yn_9o^Cj$mNal#y z_Bjr$nEI{zd9H7LRA4XB$+z5lp^QUs5Bi5#3r85r{D9UszqAYF%Vny(oCvn}(P8*F zYhE2=)1oqSywvLFJskuuJ@YFxNabgraT2%+;SR=l-nik5dl4B^0e%sz)sO58e3aw) zmMATfHmpG=JckLHYZ}C6yhy2w#8tU62SobvnX%11$0Ga0N#8=*@Mc+3mT}v2Z2Q2q zH6}CawR+E4zLWOPu1Hm1H0{O|dCuBB`(Fb%!*wVK7{f2TuA$Ao61e^^!2dhCGgcRU z8zQ#PaNoDM_LuSBN3%z~o^zbp3F5{h)fJ8VpZyaZJYVKHV05?^7ahF}W7^*r2bc;r zvgsTtLQ9Z;9H`O;g51?W+%)*}%4qbWyOKkD{5IBeONzWObbs*Qe*we`mjM#K$g zpCz!n-*5LBzjE^dP@+vw%sx;avUOeye2n{gn3zIo=%M zBl*Fg?`kF~(P(bmgo(@GIpYabtC|uxZqgUG^dZ?hlRP17G^+Y2*!tSX_}f=4rPADm zpA4NaYyEU)G#LmxU(>UUtCnj%7FW~&5g^oea1q&C?2=jsb8QJZKAJ*GLn1?f&AOF@ zF9Oy`pB*(P8t%2Sa4-Evf4;>N#al8{lE|Vr`Ki8m_6tX-xA(Q+%{qftSXYPbJU)_P z{}sYMV&)HX1#nje&yy4qZ;Q-D_WR|tB_YlPPx3v1dU&dC@Y?ZT{F;}Q5=sN#MI3d- zZbyZg-J0b4FyCXee2Fu$6YY#Jg%P6BL>qdJSJBpjo2N$D$E%|<+aeiO7;~x}R;4EP zHe*bCtJQg-KDG=#w>P>U_^A7RfMx_2mEx277+b%Sfpu`ZLJ{Ld^816SJ0^Fg`=EZC)>VB5CzSOE;p?cI!meT3m0v*)sUw>= zPgtCLn)?R}21ndKSDVd5GQs7te&jC*;{7H<@De(1wzg5sw|!R!scT|G_w)J!r#ub< zUb2UZo7<=LftZh*<$&oNP=lq*Zq_GWYA`fY>%0F?k)KNB)_qtO`($zU#t<0ghavuOGLTSo{gdwe%B$y`FPhw>C8u z_X1Le99y8xWtuK3;hy%BkV@b@x5#s;O>x40KN$n7wt;ImUU?JOJXmgy1@$rN0(Ewt zgSv@XaEGH3dSl2iNl$=%%A#3TuXKF}`T+v!T{JqY4Ae1gfCz|NyLdA+)?(fcHwHxq z_gTJJ6rj_B!t2A)yuk$`qEJU^1_?rzjcX-I3jCDV@m6Q>e!LGt&DNwf4k@$Z0=!Y5 zObC1(L>B=olG+5mpJH)K(^dNNDb&v7qg%`2@#Kca7N8}pl-))B^Yxigliu~xc>T;$ zU657S_3icwi}L?$-6IfNok}dU^~tN?PnrU;O27>|q<4;|;pf-Ft>xuzSSw7ojk{>h zl%#gaJH0jLVEr7vQI;7usw>y&H0C(gk<$GVdll0O{Ace4oQXXwP<(==yItk&=R(gp zepGVLTbOCO&U}l9Hd{$8uD_IVGMyM6_Dbx@3NG|b z=MKLf#e#iUvyOUgb%m@kFM86j=_B6d3LB|?r#9TQ5T|&}#?O=T`R|sOM=-3scvr7s zb4b2>40-!m<)Rb3N|yF{{lP(~nTd|IJadP*2-JM)Xf>a|e8|p)nWX;egUDP|p?AwF zaje4bDIhQ!8a%`=u%PGcvjcw=dw?za3b0B6ES`WiRNRO*$5kQBck7s<`D&pbwYQOp zr(4C&sI%t*^czCTb4tOg!o{&w2(nY|xE_>a9LnU<*<=xJ=+V0%W=wevr>>a?eo&g6 zQt0l8Qn`SJr!@Idn*Bxxt;Icq(a?;y&}_=9k~CekLF=b03?5u4opPfD!48=32zy1< zFyVw5QFCabP>Xg+9OXw!$TitGx1S1I!;|(PTv;)`U658yg9N+O83Uf+KRbq^`w70CcqEi1 zxMdPA)uHsQkiS)~@T1MQ+?w65Z)A;kqTdMFE7&vm7iF*j&frY#C5j^HqC3F~ z(zMH08C(X{W)p$yNIy#s?X)n=9}6%#&;<)3lY0ey=w= zmQ}TB!Wb-*e}7S;s=$0ge@~eZwG(uecA^|EQZd{qur;;VdyISDhaP!XgXZZUvFoN} z&4#+jT9*xap0)mIBJX=Y66$@si=^_O38?@%q#soW^-I?w&VTd2Ih_AiiavJNO<6QR z&^*ILMTzeh>qu70@$R?QU%S;CE>6fzv1Dfv(udIe<}T49UH6S}H3)sM9lDrPTkR2) zg$A9W@OrYfheE)};%dq#j5?NH8xB>{prn_0{yJ+tpS68$GZwk3(010E`VbXs(-x}F z;7wKch1LNs)FLQvI;qIrx3Z3X7DB{I zE%{!MNa!6PkNh?j&7eaVp|u9BWuc!hI0iQ33OxJ;s3o=5hhq?*wstY&KJ_ z+QIW%$8YrsSyfy&_pnw;FBeHLn^K5aMnv1rhj^K*^Pbs>D7Ypa*Yctd%B<=yh2jKv z6iq*7kXZ2Y9D8@5Wi_Tx_p@iSk6pz!bjaHGYK*P)oe`b6oQUWDR&Ppb1h4YR)PKDSgRhn#qMRk*2cbX+oT3$zWO?E`p<%(mmZ(xm4V=HnAVKO=YhCcrVy#s| zv>Y=Q;E7)Wr4d>AnssRtOk)2n(q(_}7lak~G712AUUS^q<#lP%?=df8mOQ=&EJ$H9cN${*dglXUCj&mm*!|fJ4KR+H39;$kBT_4@$A$hCW{+)-AU*}`4PA@n0lt*GyqIxqu3TNm2*GhP4L zcc9_xH84~Fibh9q4hsCbgLq$@IoNQb`zMMiDT|PO>+(dHu#-&LS9P9Ed!skAw+8rr zTWg*(v`=7h()y+(m=hC96B+?lvsy!s+a4`#!2yBba@O!?()$Pe&I0<%O-%6YK4(?8 zQ_nNgll1>&=Z9SUO6bJLg~XjoK;YD&J+1W{wNzSt$v-ouF!(?B`jwtS)E(;z4nNeG z37Nsyf;$&wmXHhEe#BtroNBT~ve(b3;lqSu`H9Il&~r}mVOZaxqr3@g= zZ*=RT9L9C=TkRvn{XzKN{KO1=mjoxn)LX#H)rWG)KLC1nJ0IQdkA<3n;@7iQYiXfe zB|aA8t)(^TwhQlXf5(i$4nAfZqoP#CYp4d|MApL|+Z$HbY>nT~tt|SMaE5UOUokaywM2^GVfKTK1Un zp}x;JD$-V$_>!mv)?Losu@>$A<>T8_KI2Bun%^KzRUNXH+C#^Fomc=e9sEELd-cXg z;{@P2#XLtW-`Chkndp!hx&i1p?qxc=HU={p|eN%o#ooG!~jjs z6u*U)=?Vf$3hB#uX0j_M6?jVCxxe~{!;ND=7b@|?s)2bTY#aSi;nI1!AJS{Q z=9#H#&%lqtSE3%bsSfk92LFOSXORW0j1YeXPSu|v1Fc5Ow<4mTPnZ>b?1eZ)Ag|7T z254RB1si_6wPFee|K$uZv^M2bE2itqnb!0@6n)v|Q2^%=-R?e5OtMAa4zy%&vbSww zP$YvJn1(6u9>Qi6QY4tK+~cWNzJ+D7Ut+BHw!Z8<26(PcD}+dt4}fhjS<8x|-2c1Kfar%K!XW*KIDya zrb$=U`cNhj^K;9_bD3_b@ zI4wC|_5MXEnPMHx8Ixo+FBhl(=^lXa^l64puHOg<)HOPCc!2@9!oXUK4uQRDD1OlO z?5o5?{<(YiL9VBrH3y|Hod_8im#UW_e6#}Bp&_`l1epdeT-z_fMF0q#OdWkJTNf|j zKjdP~29@sa=wpr>1<+9|s;41x*=DGylwqZ4H9OeauSqbNkr!2YgT#h61otRCYEgK} zj8}Ae8Wcplw z0VCMz^#maSWqOL(h`oI^qOQpD0o~7+&k^@W^4@K+8Jm0sFe$_{=(h&k^ z47Q^Ft51z*5(`K}s7wArVUC7k`e_T)-&)CzMe`A%OB8gUccaMBrEgptP1;Y z-v$*PV|yCZ#Yb!vs~Z%!Tz_me_>*O|sQI;9K`xZgPva(wQ6antk9%U>mTP)q{VaM> zSnk9iBpc3=DX#+0{uCzSH6-Lu@M91ppyQUq@^E87GKDq@6q%Bc=7L+=OD4x%(|Q)! za!F5{suTjkVbRKcWA~UX^wODgzkqP4p2kNyY_*Y1rB~VYLQO?t$R{j5W-b=<@O+Y-6OizV9jo*SuQCCv76Z^b!I zHoe)ppS<}|*~W*4keK@A*Yr;2*{K)G_Hp^!o3CjPpeO!0jl=w9KRUKA^!9v+z;dq5 zJ%iq&ga2`69?1gGa1}!Gx!V77t&7*`DL1qp_h*U!%TrQ7GJhdQC{XR?f1VcT0{Sw& z&86A4j!HLn>wg?Pa1$vMaC^)k*z|RG%{p&II?4Pprn!E|$^KEy2WuY9qyIPkP{u5fU_C9y zeb;0B?bWf_hB~W*jc?)Q%-~&$wC%BUM4{9*Oa2?dyi%wNlOX_!tF)bb+A57iY#-9Z zr7n5hXE18ey*dc0yfU0-W6>URdxrQ2)^ZKx_b=amXFJ-fn&TQq%RD&reqyH79~)%b z(Y?A3HIxWMac}w~%y?&O`{j0@OqcKC7q3LNoi&!vRG5By>F`#mab@QEk$#hYWozqZ zM(<4vI~~nGs@lW+HHOb0{3{0wrd-_*Ca{-l`C4|91Y1DuiiCzr89iR&LS*0z6L%wyGj z^pH(i_L?7hN!72U?PwLnD|mE@?iAoIzyWwy-Z&ZDe9;Qwi}TlKW_Z&zp4B?5s05m)gufq=k?y~3Lho^m zE^+n}8T={|$LyNz$a!5)AE)<_D}W=Py*v0erbX47^`mMR_ z_+|6|v9W0<%%JblUn{t--;y@ZGA3!hlrqo4X`K^15h7=~Bs!%A;-7?3GdtbD&*udl z`+i-s9)tXJ8`S6es6WG3Q_zXUJ$6<0CY;28Ps7QmXr$u(;Bf$(GGrMWw6+zY=P(tRHyV0<7x?)P^{52t1~+9l+{?(I+b%hh?eg@o zJ^=VtvwoMizWjt)gFL>0eUsF_<%B`9h3K2aL5$6-Gb;3LV{N z(f3;g)-=siMG=O9&}|byCa?Ia`Q;2JogkkN7~|$e22}1VmKLH2@onBynXhdI0J~ij zQS$3ypmg`xFkAy<#U|dMbSt@`=s7iRk3IaHgDyVQ&+SUOa>!$2r+!^AeV)kKxyF%PFZ2kkJ`)5ZJ+M3}hhVE7w z-zjhtdU

f31Yz4StKruzhy^b1ZV@-AbBHD<(txZ1K6-NyoN~W)Z&n!QeRj^AjF8 z!%}9J`S_=}u)^s$1KIvNjS%e92-9N|sneAh-I0u}oOZ#^S5AU|D-8j( zNG50$!gkB(=5}qvNU5Qo3Pp#63;fg3BIT;NSJ(CdSHGS zSN}hKR6UOpThb8PoHT}azzuY~J2lwWbS>IXY}mJlPT6yA?*t^-#)Q$hWiY?iz1NHt zRPe>A8}IUU`>4HaK%N6|E0uO!X>hKz9YJN_=7K}QT^&(g@!0o%tTmE%$OGSfQNF{Y zHdDse?u!&RaeqNOvTTOl0Jh0!rO4Ih;JA^2KRmcJ1&F&;^ zTF{lU0?_bm<`K(_aNiLn9Ta_4c;qxP9FJ2@z(uK_-AY$obi5eyyEtvHM%MQrORvK1 ziqVWWb%&7 zdo68WFW0?23q=-H-@!6vfW{ieKfePTH686i#hAkX%uhtMsJ|n3NLT!HQvl0&Y;ko0 zV6I9M4K?>gfmfP${Jlp$N2hf?D)alo3^IJcMB#ijS97vo?(p_U=;i*<#zosZ-ZCGN z+p7K|H1VdTM99fs+tCZMoysx=!$STwFcrKEy-)9>l|NY(y2a#dEjihHQScGiraz`i zNE?VvYd(GX7QZ{Ji`X2)G*0<|YuyU79)SER)F0(QPPT+c?;5_7OS%st$I_Zb2GcQc zN6u2Wwp!(N?c{y)w?56`LmMCSbxT7RSpSVj*k7EZY^zVLAscJBf7TjzY)tul2I93} z4Y-zFi=}p5xqj_SJ_w%$UhXsv0Qsuw`r)M=+R{k-x@;wODVvxJYmI)n7h*cEFDvc> zGL6H>B7~k&zq%>iJ_AVTb3+?n#Ez-ZopKKwIy)-49d3)v+ztf{Ab78K818^?yl#v0 z0rVVqXo(jBm(s0%ZpY(JYX$E!|E~?SYB2 za-$Xi|1aNryUhOa_evX|CGn;y*f){fH%OH26&=SUT60(tUb?HZMA`jkEcuHwtzc`% zP}SqVIsWaJG=v&)_=Wp0lTz*%J74LX=$DZg7M9)aH~xsDpuCUjvh=vU8j(1tu_JFW zPAO8m-Pf7WWbdu5-?VBmq(NE}i|^V>4$0Pa%htQTTq% zc&{z7p2!5W`?@#$fO}-2zE$WdHw<|8H}U(=kAYV=uQ};NlBY)?eLaz>f|A>U{m@A<&<1K+I#Z`bG=q#|vmVhM}b7oGxW1PP$$k%}Bl0<4G z7jfjvwBRl~?D$}UFs#g+nL4_pL6`)KIpAnm)uuJI^NOT(33J~i*oCz|bMA~pC;Kkw z3OzuYSws4jgHvhvUj7en9>d&)!G6YtKb7Tp1V(zyBS+Js>7qwpn*4cPbaa;T zcW}vM=(RAD8e!3z!3?o63(3a&XUb_-n>a!H^2`G;D=8zsItQn<4-O8%^*GYho}5}J z#4@2hKOS&`=y}@l*^%~mWPiH=d;WUAQC%_PLG=%0X6Mmy3tA!7MKONp+R9RUZcCH& z=N)%f&SK4OwcYcs1m*z3+KcK>i7jl#_APiJN9XcBk#bF${hNB3l8-XooJm_K{962K zFIVESp33^ZsJ-!VzbP+*S6eT;xh>wj|BlD$Q}ZrpPpG_}^>UR*!IipzNa^zOq`om7 z=jNAd23^$VOy+ELQ3Z{~--WQi#hHJuF5i91Fi>bX(6iXv>M&l&PlOYlQ#x2o@JaIy1Kkb}ut= zE!KQ~?m6XP>=S#P5-xaVHYxfGBgrh~=xbS>$8j+T2pkpnmB$Dg2pyI@oC%%<%LIoYIm`YA^a3<>9A`NpZbaT2->iU`ntBJeNG_EKf z03^dP9yOpj3_y!z8|6{<6k!NEC-rb+8S6QZ3vY_=rB%NKa*HkKt;*27J8(#2Mw_9! z3d6$f^A{yKUn8ZF7RwQxqZ=X&I~OI+pyTZQ6{zgOFrXWk<{St zdn$FXvZ;o>uC4XhzWu7d!+A}1tZwY*Ma90+pPh~~m$}1zF`0SOflVak9`~7AI&@K# zt}1XVXYM>N?zdTQgR>BiHC)W_7Gf>Bam@HN_1NU|g_x(?AY+1pU}rDpc~5IQ!aZqb z7u`?LSELwtBnL$?@(LVs+1lu}o4mFVC&A@LR4#gGFPCpdgtVQLpgF)GFJx#;xrq<& zzuc4>-x%Grcs+V+rG?UCjMJkfcqQJJi=;-3iGc>ft!Eugkrdgr@FPea zW7pJJb60|eMy@~irtqO3?akNqo9x+(1v6$RZCV7TR!`>%R!hVrq@lA5(k`*ojN1Z> z{%0rgp@ZxMSHEs@@eONKrzH6rc<)+~{Z_w)EP}Gd_yDX++%L?#+zXxkJG)*uvua^?KsQ-uzW0BeChKhOBthu*#KxW`p>(w7$xa+wT{I((;_=GF@P zG*7QsS|n~R`^d}cu&%_UB;JsHscbdq)!5_`l@xpm>}_W_0j-Z2cn+e zI3%q=BF86S+6z2UM#Gc@aVhNOE0zP0%y{o~OLg1cTcdk{V(H^B*Gx{dD6?5jB2#|_ z8PPFm<^0;^zO?r?&Uh=xn>5H%Cml-MEAwl z870I#qMn?WJlunSgb)x=r9w-W*i> z-SE1K%YFHDVFC{h?Wtg~pS?$$@9G{L1i*Lbmh0QcFlTI`hfhBRsHokk!S{4 zDZEMQlFq~C4n7od=5>bFRrqvt1D$jM6cLf%83V2smGMY(!q!H{LjbFWjU`Dx4!KNX z)II=)aw^FmV%MxVUS=B3Vr{&|o?i&*ou0`9AmB1+4lNV8WV=SM4k6Af*A=@ydZF)< zJW2%kO>%`U>45A%_qz7e@8$!axK;3BnFD*isjZDipn+2eeZ7)y|i<=oZ2y^n1Z*wPUMckW7`j+L1xsQk| zEy#ADy$W)0h~19Fqe5dDV9IkTuL-{vy&1k1ucH!N*FOp^SH}s=!=J)VuhxUEXd34TMTmr7MHHYHf`YJG9X^rt=QWz@ zBjk$OF93VJo8dCk!}D$g7&g>N6hzUwuMxr#sEpa9kTjwU(G-K+sAHmSmx^gKAi4~^ zUHNWqyc%W2f1AG(9ZAu&3ak&6nIw2~9I369nT^{*BlUK{{r(=ZB|?p?Z-JuLXf6n_ ziz5qB)0Hf(<0#C^5>NcgfuMF=0YX;eNaQhaUWH8I+oK-8n7IY={_=91g?a%FV6FXA z95X3S9~D8t%Xc;j=#zxg4$CrPl0VTWC)!pW92T;dXignXxzMO5z`1i_6b|JR7YteIEMoD$oJ8&>kfnK=`Bv*{*(gRyK)!FHzID5J?Bz)7Laogj8uR)aAHcLwqBYt1#4 z_M5JcSQ(_oTTMUNf?G4_Hf`Apk!9UX?De@9FoiRH>T5b*NkKM@Y$P)sPRr~W!*$of zBcN+bb{9>f6yCANllPWjD8%nu!jcx`$7cn!bgSczlAS58cNw-EOj^xs|BS{EKq%5S zHZJdD63=JELOmc_6EG0=-i~f?ls4@Kp!sj*?ab5Q>1#OO*D1CamK4H=5m@FW@ z^W;097a$d~XOav#RT_|K$#XjUVv-bBG5vm|I+>=qqGB|nGxg8zWW!F|k#Mrkv{wbO zFGES&gKmS+UHW-Wlfe-xDnGF)SPpSdIyB{bkVSK$7gg#U?iF{Yg5$N+D9*3xc4yo2 zNXr)qR(8ni*VI=D``cK?-ta@^J25#z;@6P1Q}E!9?}rfalTkUrE@6H;;dg>V7MjvN zO7DJfd9G7J`2Fpj=pm9FU_P;4qIhUw{w1{F@qhP5j5W6uzUKOyxTp{7#~^Qm?YE{x z9fy~=|9)*~g^2@Je> zYjTB6S{z@RZwc0Y&xw(cg2eDj?`hTi1`88ph`ktBfS#2la3+^*PwG+097Wf76adI8 z1N%mXHZvQz#(o#Ltrh@@X)Z&F+Y=TfUAMg}k#RLZmGlfj7;?c=zr{6lZ@0c`S9pUP z?*Lvl*}-J~g3&*%A`5)OZFPJkjZ#cUPjwAE9xs$LTuk}AGA%ihG3F|9x#^B0^uGy> z3%4TZ)Hd$1|8ZVdoFtb)D4&xgp4GP*PE1FQ6Nx)|=#d_}Ry7+@We8G-1VNGD8Pd&; z8(_8dU@6>~IpBUpIe1Yo=Z`k0JCfU37T`8F6z{@%-lQ2jox1L#Pn9`BhK!1-wRx=r zAPlqdw5WI<8GQ%GXcA>&G4_gz1=**44ebTw=5cze_N#v49CQ9E;lt#(R z8BFTGx>iuPrNERQIuE)?dd{93Dq#TU*xmw}tUqM$?|Dxz8m>~(@S6V8mxkwU+}(|g77fZd_Za9@g0 zCP&X_|Ky+{Q7c;p_B0&^1EZBQ^V1l4R|kBHuE^qI1_w?e8^jSr5W604YI1nmN-On# zkhGFK0cN(_Gm@A{yuP)j)cp3QU>RE!4)tof-;64MbGr$1kz#zSr@KciIs7>WCQ4k* zk!WYBySKv965hVXpN;q()&l&NX-gjft6i%X=`82kd@a1Zxu(oM4d1^keZ6gFs|Y~W zpT8BrKabkd?|q6rUp!K=Y*6Ic4iP?Y`XcXwdUlEw-KG<`7U2ancA^g;RLX%sPJIc& z=H^o#c>FKpvfj@RS(avok_!-t8DItm0e&oen>A=s`sMun_41SL_wwDpJD-QooCRYt zTBTD$O@Vmc6vRv@ zp%;^)Pf8{HFdtT#@x4ceu}^}$Sl%lL0tqSP2+%%gV%XePCP)Hikj1`J9-rL^x=G4h zN7gB*eY^vi1df3IurTlPx*RpMD7`9MzR%6dA&KQPCJj8IYin_tC|2Wn2(CG6ESxD{ zGN=o8QV4{qj~|%HP^WSHhFyQCtyY9Ju*33ybYC2LT3I6Y@Ms>k+CO!7a_H|4o3TN~ zBje@d7A$^tK24r+L_-_-a&c1U(0_bIRK7$2nlD6kv}uYeMW@Mk;gGZvVC;8cF~TAX zs~mCX

U=Ks0@Q6iM%o=0eX55Td(wFP+Bp#T0NSdENiW=$S>2g;>?gT#_?xCspifS^rrO0 zdR&*g^pNTw*c>21Yka~nm$~*X(VCN1z2-?k|7Nk)l`1BhxNs;YFUrF4bKS0z(9^uH zfDUr(^5%GN|G8_xbf%LW6WoKPg=tE86|Z});37Hn(?$%J9!%az zi`OV}Z93*)u7I{p!7)89+kDQZ32-KK)gid|w&b5`V1f?fC27WA;WA9Ow~MI#Q>e@1 zs42L($3g5bLAD8o{02QJ!`P?vTR*J-wzTv{VFcIDC|{23Xr(57Q|+?3Z~#rxVBcTo zkJvvIQW+52;mlW2ER(7G5t?Nk0tM6Zh#hPoZA}ngCaK~8PV4~<73b!|?y{3{$U!x1 zGf}onpPdpcu;KjT!8GStQ#ch@-ilsk%uVT~h2aIq*vJPL*pDK(h5bLt@Q69USDfSV z@`mP%>!!~RmBrB%v(*%b^+okIuCBT*8Lw+FT;x!U%d+D$kIgad0;U@F{OL>q7WmMk zvgUIm_GT!HYZ1p;OX?oR*-Frlhbz9(sT_CJFE0zQYcB`5@YSl(dB~t}hJ+kBJtZz( z9TeN^wD;0&S^U!-bOFhAul_Vvj^QE!{FCWCY@o#&peKL8`4no|8lip79WmtGyIF&& zLg34`i$`!>dZLiQqae2~q;R&Y>vmUyJO2>1`pwNI$V53h$^amIZY)p?9{Nv;=p7h? z5%R|UGvH}f8#}@30P>s@3*BuAx-yfeb9cDy?Xc@QwH^sTz-G(x>wS9%Oc!OOWeNQIZx~|>_mPA zSe*CrFVI6bm;xr=Y!sW+r#);fPp)=hIPkS1$`G6pSdlUMNM!I`6NP*fIQcm);wq44 zmVo}F3Zcz`zBALTmTk<~xjwSDqrfhCETCwCb}r1nlQ zWNdg8bN4b3>!9e}1o>b^6mqxeLo|WXtp0)@k9GB%4c~xAPwP8yz7}&Mazr}t+Y+O2;k^IA9ddgjLmVb9vFzSVEEZWC4Qfw*Un zicYD-HThufo$0-!7m9RFnmmeLrzTx3QlhV_#mY_o_*?x60S%F1&lQ{z|5JO-iP*1b z-rKtpy$CiqYnRuNp5(-FC3w??=zfYsY1Niw@zrpf0XM@`o$0=(dHoW5Rt69^_lw!R zyz$HbYqIvw#N37Ozdyx7)YW&-t(pHYKkqZ|N4e9Cf2g9o(U|)64hv@J6Ph5Re-H#4 z#|-md;uaDI(2e_-k^OHMFv{91asBsuObdNC(kNK&bY2Kijt*KQ8nKVul<**K#TBYSB?K95vYtc`rv!mcSfxeJQu+XF^xMukq3^dVSzeJ_rL~?GR1k7@M*oI zRSvgYjp5O@Lm4s^SmE_$NpRt(Z&4xX$v@$xA=# z{3`(%3?H@vXBf|kd{`HWe0>zxA2gjHmWNkB*aA7j@{Bpr_QbV1VbXJ+7c{v*Q~9SB zA7LQHrc-8m(TSqzVNC!j&*JYaevQ2?M42Fx6;dj&QeIE*pXI%|l?!y)jPP0b%Hm9S zwoI`lzQG!B7KNM`T9Bz0Jq)Z}m)_5`+ML>~pAs4WS6X1>%zrRLy`=#B!jY2CmHuR3 zHMP}&Il!{5yXwh75=kqo?G>1`;Na3QjGSM*HXcx&{aY|x!%#KdZ!9)Lzg--^ZGM2^7_0jLG@JCGZL_MqmD9g(lyPBYj7@;NSYCw4Pu?mAMnnr$^TMNoea~*<~_-)wczkB6BS(0^Dddxa6`U@SKZ_Upg+5 z#t+Q^LwFGe{r6qrB7Jg?3_yLWf1XJtAEr@OWe-}RPhyDWP{(rFEwTuqsrv0-zKb!# zgLHXF)AmxGF-UZZfPaYe{WrW3b2NvXK^|-?bONolrY|7%tAbAGbMf+lDk~P-maiXh zy2cpwS6#b027IAXt1aCdAejMPTMUMvkXrSo)`pj&1D1-HaA0?OuJLll z#lB}k*vDw`o}7<+)i%!#Qf($SW1i_ZxyJlaPWrRNmEj}8wTB;m0(q9dsr}zF!XLKc z;{F#H3O@e_KQYRJf-uVdAu;IsGBW?&gjV#K{@C%qB0?ig>xkmp36VQ#rKE854VJ`BiNc> zLH70hn@%{U{VGoG`(IYopJs}>WuH*(-MG+B++Aa%&>uA6IB ztyX3)Mx+K{36fS9W7?*$qqgHt9o_r76W^t&_aJ``j1x&H?DT=`6vt&&7ad^n4%2I0 z6WT@4Pk!)1da2jH1MZ9>ZH1;?8v*qpXNP*@2=AL|dm(XTx3NQN0L1SG@2wER-EF6O zdat*OM0OJecg>!2X%iE>zDxCgOHW3u_$SlYNyd_-2QwKx$BmdRnno2)a()lY2YpK+ z9dLNsZ|9<8$+a-!;Z$s<*_y_kz)SBEe!drvYnsVqR?~O&ATXUn2UsvJYPt1adhNKy=UM9u$ z2Ue^3i+(Iqg9ax=qn6BjGZz2Etjbek=FvK@4U?AiwcwUpJk}s>)1c8b9pm>G>3QDy zf|flJ$9gmBXgOmG{K-A!zfxsg1W=@(^1@htZemiGtNfrN?mXTpU$nKmS1J3}eud>B-BsDVbL<50yt1BGo89>mMTjiztu6@Q*2 z;m9>J%@7}Was^SB+T@;R`*d2)9fYO1D83$bHCtn6J7c+F-QA~7^CEAv&%o0aELoB4 zWCNOrDIt9PnvhALL8E>zd43ok+JHzQPv`Tw;@m)SO`Aki?7Im27?4H;@P8H+C9jgb zMms9N(*rK1sLqnlP^0x zZ15|-3jVf1`<6m){plW6pv)|UW^MbiShzA1K?$3B8tg65 zyx*A*-Fx3oJLUT1gN);tItaI zH~GL@MS!-=az_1fofdcBlYdb)c?5k@*S-55RP%W$eI~Fm`e5IPN>No>7{bGtsj|Ao zxLZ3xxS+7jpznxjxi@768!r6ug0!PED07mxle8f!h?S#EON*doa9`OTRSebeSkoikq_zhCFkXCm_39!IO= zK*7^K_>dAURno*)ud8>(H=ihe14UiDc08Q*jT-U_Ibip}^B1?0XAX1|o^V0MWLvCG zl;?U))PZd@%1ZcTuNuefu*`ZkY~=ihsH`$64>(&jU5;I4{pG(hBrgD#e2m%!WOqx4l=zmc4NaUPG z#=gBu6|i)yAfJDzXN6rE;ec+HO&SQRne|hmt;vuh(ynIH@K>_mSLSde6G1()oQ?HIv$o{q#2LMbjWn>iNiGCICD3+Zu)MLvwCZG7PQ@pd7 zETd=zMPD&$W4|b|x#o^EKFe-3&=`akJwc7-pQ-4dcGuLUmA;0UYeT z>?Dg%t7q{syHz5-SyGmn&f{pTy`Pv%%CZc#9-7)581Pll|FNHlqrLY+5rc$o4VvY? zP0dI;GAOc(lnWuwhdS+LS4q=eZVoR8n$3yW%%$Y_AA^dY++!S%T*h4aCiNU{1a5rvfp-eHH~;s=0q>_6>1(s;7*vBRmZn3MHD;cBZb@R`+?)1uQtar z9^C4-rI>OH_f1e?;AM}I$oIc*`sYcGUfA1_7br3}T)m$f<#iu|*)vU~L*OvosjKka zEj%o%WES*m5d3Jew3gIkp-W(z<2IK)Jcj%RvS<5|Jl1$$tvfkTye(@=d+J2OI_I^M>e{8J zk>J_;kmP1`N)787KUI0@*6LLC6hNLy!?8lm8gO16WNwM(aKVN;g?BAiCF0g_BtTq3 zebE}&QH7$k$$REA?*Y~=*7EKg5F(Yo2tXFi4*XzjZvowZuQ#WC3n~8PDzDW`J zKM%HP_t{WYU!pQuV|9FV(O2G30i80t?;^6+7g(Egc_FSZ$&Qy3@6&CUhp~T~gKG&e zP|#16w@`uh)f6w*NtF z@9{C`Va5%3$aMyeFNN{Ayh{WgT7$SbG2SO`>}B*DtwTm{9U?;s#8_z$`EU8Vz@5p_ z`ND>J4Vng9{`iNhl$tFWAiq5|Y%#isNCYUlF#3ta60J_AdQcrQjLfL?aIdMlr|Gkr zj214Uv2t(54F#O06Mj*cLh&JY^$&!b@r?wi+O*VJIxckFX|am^ZWsFeiF z$M$8r1Ij75JKj3(lJ@LBGb9xC=j#)Wsfk}OTYcVY+2%Dw%$vR~d4%sm*p`)BL&XFQ zAYKfInPYztYW$s^Uo$sku4&e2&Tb(PPdLivH`;?8MLi`0`3md$m9+}qy@^ds%hA!d%mKvBlxpNsuK8j2-_clgVke-0Y|Ob~ zWAgCG*e(_Y_&duLbT3sJ+KySbi)M49mDmp_@XX+Nqh%*S)v+f7k(_YB$gG&>_7G*d zk&SR&NZWe2bV3Y_W8=W-?4x5#3SI8biS|2NqsTDni<4ML?F8h-PoDM>3|@~{9@qkV z;#BaciNZfX66{*bq|F$vugYX73&d$lghCw^|sSh!F5{1aUi3kQ>j?3Jcx zUywQK1wF-4%Nfrs2TTqV>0kU7%;x zdw}AXDQv3I6$oliUw!D~n3#rqRko$5@_)j^d2qm8?%oe?K%rM&aqy_(z(X$bpH;52 zRU84u9f?RH*Q1!POmcsDD5`4@(X#IFY0_E<)s8new>ziscBnP;*?$)k{D=%&5TC7+ zK8uToQj?ObGdiE7v>2RZNmwGpXu(8~9l`ccE~wE=wKM1!M1#0~IlQIQ3Z=)s_Vw}| zCcTe^L~w97fWHu5>ncV`V(?or&->0B4w+BFWjU>|=#lXhTdMTUKfuk1C9Yg$==WLA zUtuF6t75Fhvyoz4#S*!*pZQ^t{8TA&VjGyenMQQ?cd+eH=OtN37oU(nK~ue;fxJC9 z9Hq@$U3i9`_a4x#LZxx`S@k!TAX5O?xwAbHnGo&pK7VN6DMHMCnyfW(+Uw+l)5y^s zhi57X6=^NkGH-|Bb)0^6&NK%00Y5LGb$>2jusL}9Wp#X+XU>u36+T%Meu>aMYz+<` zu#pvMEfpMc6jlN}HApjlFFebb z##fo3S`p-jFan!pvF;+ASItIB0K^-76)IX2YruyRx~Dr5`v<<1qn!oMIO z?+%m41}wo@^a03!_(a>UPa1Lcjp@)tkh;DAu-eoulF8uF;g&7_<<75EEdx|L(yA`Q zjSU;H^8W7>&SwX({+=)ixwsiZP# zl}mvWEF&)_XJozRa3Chy>T}WS1%IeGm>gGel300}1NNz|&hVW4t?+p;yD8hZe1p=5 z4OVT&0Iu5d^(!K%!mO?h6D+rll-z91V!9DL4*BD7g}K$sHC@oV*)HmG)zo}1$%}w- z`j7(R_aw6P*H|yTJ+iLacD=InKEkrme}la$^x@UfyxWLu#9xWe9AHG$y2|&34MDEm zhFu|2MTrlU3!#_T2dP})WiCN^V=n5ttLJfo5|=QJ-dl9ij}j#q%lWAiSv;KF>^;~V zDF?7hP7eh)GQHL2pwlLwrb`kyi=r2DjX1635)oEP8Q3p>_R90xf;vUNYd)9ylU|fW zKS$8`kXAlrOtn5`k8=Oe*?4Xw2JcEF@`OdQP-T&UuycBMQSTOKe9*+>0|gO0K~|A; z#=C{wbrvQS?=ZJ8^P4htcFyTEwS5 zqY)2U2O7M&w(wadV&sE0Gt~UDTcN9BDZ44ASe)v~K{KJlK zum7K4SPaFPQksN0a~rDpGu|t-r5Ma_HUz)=%b67uWt$0kIkG%0oQDXhdCMs=!$a#=rZ_DTT z;g^3Ht^w_2(0Xb~iH|8__JYu3X1xMk9 zuqoRqzr1yi1#O(XnrnE0M16|1ywwh|7PnO}t2*t*vDzRvy8eb{uVhQ0BSATzDsV_} zIwsn;Z6hvM0$L-TE0LoeRV#^V9M$e1YQrH*OWSxAFnDO<|B_BOBnl#9i zJp9SCdThCe8IusR=d&ytqm4Aa6=8ISFB;byr0OLMJ?e-@pI|8|QGFi{w)?uM>qi}v>-1F!Lfod`y zRdtSv(!+!LgP2jw-qS;R@Y+@ow#zawnURwWl@^z$|` z7VHlU{fg9q2b++?lZewNLSQCt`#U*tZQa1y5X(B}-K ztAN=o(4qognCz!qe1nZu@HtC!pi?^E4||jab{aF?=Q3X8XbK-CR_LR&G?jfbxhbiPi7_o<6*=jV*3^Hlku&`KXes(!Y6@&s<4t zQ*4&VwKGyF!N*(U*&3&Bp8|aK`PZE<8GmS?AbD+%Aok;5lC?vd-yE<7c0|C>h@IAo zX9dt4z>F=8JjJtrHeBeeYT}hGgL5nyj)2w&d1TE5qG6oov?gr)RwL#+9mb`rTB?;^hUyyy;4>W+5da4lIwAHh99 z_a`vVpj^O0V7WOhF2CpLkZ*bq5kC_q6ZR6CC5F~ZQJI}H!V@RQ@*5BrVQ{AJm@{9 z`m&@(E%KZ_+=SB+JA7T@Ex(|LE|rso(QuH^GaHjhbSc`iAl^TaOg8y8~~1Fk!?}j zq>Ep|%ijRs$fpmMx7RZI9j$k_k5N&SquF*-hEX7=#0wL>#_{HJ&RQu|(hGmQ%@+bu zdaj4#lW2@oQ$YRXeJbQW^C|mg@{&7Bn!atL?4#guU_wDxVS9VL;K{r38}Qtx)1ms> zs|vT~;CRnO!H+Qti-(cBBYf6OzP7=a?qrKO64{PD^ab>kvxF4d2DSBoO}U_S>_*qF&=h+Akh=IAzKQi5Mks*yu!A; zcMnIdH|o*WhL9Xq>~{hrBdrk#BbQ##lUIN!k!OI9U zphTZ60_0V+LdN*8BX@hIi3z_JG6p>ATi;4O|Km35)2bY;1i1CjHuv2ojE^=5ZjcSl zddL2>fgzyEAqo3?uV?}UV?UmR+fn!kqN$0!G_G8l>1U@Wjj3d*q^tZ0)r*;)(Jxuc zkoHNJTZRW|RG*UG_AiKBD!VEdjQb@7DW>4PC<}qtsE3s%=R3Hpa!WAkQMR+aq`pM5 zbhS?TccISurhDw9d(SpMT)ryNm1zAUr}XTsN@S4r^hL0z#B-8}dU_4kQ?RpPX0Oc@ zy4l^9Aw^HlbWYQ=;&6f^QKBfB*FjZvYFHGX9Up&>p}TiJG@36EyMu_2!EVEBW-@Zt zyME9}CY=%&v2Qk%7U2+eZzzRgf_#e6xg1T|JMk9}u4Sb0^VE9|9KPoYMZ7V}H3lej zWlhtvmOClBykwDxl00&;6pt?jal|JAszs&|X~Ae=fi^S*)JrLoW%8&EWbC0UgQ%Djy~z0(-GMQ^F-`-)FqROZ(aCc#fAH1vV?BS{ z(DUUiNU@(!W+O%FC5WN#VzfDdI|GCD!_U&JivFr)hUbSp;%mzhm;1Aa@^!Chs_$kF zb%c#CT>8g&+Ex40a=>cnK!4g+tt9X{Jj~X>SnvI4r3`g$Px_@>bcPC8nzvRt_|H!!#H6C!=fUL8C27g+Qm&KHD1e{_ z$S3pJJLYIH5*7#;-ozCG)RYC@sNCx6P> z1W;@ZQej?O^uJxGNVYL{8}#>`r9xcBR`@n^I)-ua+Gdq@GipojJUz1&EEE1RXWr%< zoBx-n#sQiO0*k}oe5#Z731o&5!M^NM*FX0ZrhfW#Us!!Aez1ewO}sVctqe3^70sp| z<5yGk0d`ro{8UxisDBzNT+W@6PWOuxy=y?DgA^Ss4+8InA4zx;x6z%SuG!x<`{B3! z`5L`eOq@xhyLU$yrh zn349R+J+8dAFc)hLe9Y3E|pbf@XkuV>BszI zlp*`nL29Z#;#9Bkx*6{449x0DVhNLG0uVSzHO8Fsl-5P^_T<J?DW>~z@i9AlJ~tAvkf zbTdF;z@-B8-KcMo;3*zu&KQ^LDc6)XCc<}1NklftyURnL)1IJ=|Q6p=05O(ocS zSw!_%BJ=P0PE{kc0lZ}U9fc^qK>8mGdg&dL^O))|A=wDTJN|i)otuOrRu~~x1P%{A zF~2775HJ3KaNGPmH4k`nv0^a1qnD9@GznXnN-?bWtIcc(&0JmV5hV*HiBI=*gjP`b z8^yCZ-M!|m1nSg0C4(#ETz7cZ{K^!|e&+yk#rXW)Imw767w+EsSj$Ni-lVeL zn5!lO7*)Jbmlj=JH(Tz?on8FAuSn#2foaL> zP}>8`XkVB8##l=X@u^;LHjZ5g;v<9Ayu>l1;$9~Z$4~IY;O%)aH-UB>!C-xmDjgf_ zp?bRDgYC!vPEFp(fUny}(pPeyH(5q0V??I4Dtgn3{INnuw)jZ>kutAK%s<2j9Eb5r$NJ<+01Mu^Gd(gz*@_s+$(g|HITKZxK-U%dUEU7%AOF!n9%Ff9hf;m3PMWiL5*V|Zcr@8So^A1s%w11&a zK+8_9^F~T#QG>g%i6^%-arN%oS*~apD8q3);*H_!MH`fd{pdNwUAinr0zjtJ9v%Z{ z?4g}6l4*)+P#gU@P@*dY@=0(E0$TBkI`_wW+pr7%mUB+0>rNYrevMk7#o1tn`K_x} zO*)ZiPcVPwUaxo_#%D6}N)ojFXy-khEX8IzqT3yi9$AZk>0@n#b8B~^(j^PZm(BhQ zQ>H#)S-x0MV5ff{VxFo`ZyvKMU(4(OIhs_7VYlc2&L;?xK2zco2%@peAje@)9817! zhxS*QZvTc8(3rvcE3>H$NHTSyv~tT^>q z`@tAZ=LdNsBAcOz*#u#!Uvwj+xc~C$D`rTkJAx8|I_?&w%*rBm1(#bvh z&-zw!YOjzq=}BacZMY}sb6pkK2_eWl%z^`<{dB~`?U}&rdklT)!~YWR@kYc8wH4Yo z&mQAwf=e8&PZY9Iph=O>v(aH<)ZLxAn>{25Oi_eXbi~z~i=3vL(DGR6Mu$!`4YC{2 z#vPJm33lg0Pi1#YjKtY0s^}$UL>dM^%=NtH9S zB1z_9oVS$liKHx3`#E<=J}b@R2%H>j*{HYtj*{DzNSiyS%JzN zLQJpfKw0nY8i8QG+ifZC_aqsw|6@O3D&}~Ab<(3Px^K@(K-=#eSIk;`O!2XEsi%iNpYO*VHw(7yYfyrY-tIkF$ntGfOTbYqO(y6Omy4NF zjJ>?Bj$a@0Ioc+#<)M^J6+w^QLd8`eY7}ZKzg>nsP2AU<>TwKMOYgRi%d6+w8 zs46>m;0RNvA9-)HWWs#~nTp)GH$Ob;`Y+qEiNwmFDq=1E^#yA%Fi@CHpF)%^42^LF z0MH;b{_(kANU<1;bcM6Z0hAnQk99@|!Try4Th3=ydf>9I#B&(kZnVe&;b&3WwbA;z z!f65pX%cFS`FJB}k(-O&2kr>`i%xn;MqRO|2&F$#zAk9r_nvPbJzRg(G8*mpzw`hj zFJNGo`iP)^riP_0j~ygk!4jR&jPl@&i`Um70RjzA$iYg{j#Xz?wksin< zPv4Hq{5wA#9ud3=N(^IUWD-8pqs+Q=LLNsZKeMR*w?nvV;IddaA4A)jCgn z*t8zJ3gn{hE}JO~%#Gna9?XzuX2=L)=V69`S!0YLLSvT}YQCDfUElQ#E=KTbYu@ip z!9@#3xk6rUKbbo{F)A0HQTTr=D)%KAyXVAakp>P;h#t44RBCf;5;HO}wJE&A<^EO< zwwrxwY*Iu+ojD{Q;{ekF8ZS*m^Y4@Iu%nroUSYilA!D!5x|CziBIxY7yz9`=;5qGSuKyTO8u)PSllU5<00on_ zQ~i6sR6@}+fv{|Xz?M~*j250iTtBC$6$9~@u5==}pDV02q?^g~QPM%eF$N(miz*xj z`o99^vZ`#a|3G@rxsc3NdF`wgp7K2Ry!o914dM2pS|MSdNVG-UJw!YBYU+uHJ^=up z2TS+MY*!mnjsyw;3?nPmunu0wTvb!L7I$PVS}*b4ErrUhDHa%XLu$GUyzO`zd?Kps zTq};QphqLu$bPZZ!WnQmCYkh#`?3GzFRyXW;bGt{GDqRAF%d37Bvgeb_#oSPPh=r{ z0L(0PY_%kGX5qxGHL|Xk>Eb5O{-*+-df5PrVVU~Zm7GcAF97x8&Sq-;Q;_Lf+d4wS=QtA)J?YfCFb%*1_Moh zPci5vamXuC7qC2*dAQ#85Dz(VnC+M;z7_-<@SY#&=ox4dOdCG~$bLyg5=f^|Ue#f# z@D`BxH(nvHV6p$K3Pf!8DHi&Iitgsl@6aUlT9_g%F{*LsKM*8lR-e*D*U%6gs=hwZ zBH<{Fr-`GlhSj`)3VjJm6)YZ&G;Oaiw8UB)7s4xK=K{hdP9#_i)dbR?Gq03;+AHKJ&vEFpV;c}zko;^J@!y*5{D{6g^VC4 zU-lO^=4!5{YOYV+$(X0S*#xdW&znxORtK-;EzYr47l8-noZs}n+|Jk0aHX8NdOj_$ zy1n1I?|a)Uc2gRfzkMeHDzv0z%36S3& z8m~45D?c2E9{1PR3d5nJ=I5WJo`qEe3_c07oe9)7l6jCH9DMMjD7Zz6fzmf-1&|+T zd5=3J-5%WY^I8Q%mH@M})jPY7msB%A*`76ir!r0V>@BdS-{>NTOk|;c&*QRbdBUkoyt_yIH^>mBO7t7Zoa_cHWlme=+I4 zKeH)@oty8An(jK77(yMCXxnn5X}8iZPdV~}^3{MIyx>z1m~mRn|66Q)AqMq&AO57! zb}Ar;fO_sEDt|t>P|Vv{G=zNYl_)a< z_as~5^llO^#;>5H^Uva_+1bi|EwjllFMl)IgTH4q`)(f6o`&n_uH|)II01m-R@|b z4QsaGk#SQnd6~z5+CfRSyAt_}U#9yU2PFuZM`h+o)7U$fxz_m1X6;GR>+Yg`7?Rm; z+HsCfOlE}RZ@|S)|DiX7GIe)DTJ^rI2|5vdeb!l^m4Wq|EPOD+e#IV2$fb*H@He!7 ze;Dvh{6(^Wv*R6~0AnUId(vLzO=(pjvOzRPG|Q*-5w?bb9S|wy+)S5_337WM_3X$@ zrctFjy0dyAr7xPa-ofPW^1oL(f5aNfOC$8SgJ29tibUo=Q;#{9g5wCLAC0@cAlIl)i zANrGS*K_NS*iN3`)iNbM5-9#fupe~@7}=uAoB%{4Eh{n&=6cOiMU4-ZT%-21+7Pg< z$jv$@C-OPBUweKovy+r_QEuaPZ=*f;(SMLhS8Z{0MmwJV5)9St4|~g%@|bctVnbq~{ucV;tiFLYi%&r2BfH8yo&Zr(chw$#5Y3Pu+8{RJP5tvbpD_i8g5_ zUbk_rQia4A?{DR937mlfFe)7-lYfkZkB|Bl$={n8l75(MUh~Bigpb@514U!rS3jx2 zC|aN;>X&fq?vzI1Z&>i#cA&{uK+Np#ZueaXso3!v@Wsf}FIcoQekyu%5ds%z-{4ST ze6?bU?p)Q%qimnZyU-+q@8h+iiGCWS9>x>f43Z~ynReWES39q)hJ}%INCKpHMZDPr zWP+KB#o4C;C#z*c_?-((F}^Plp*hT+CV>FH%p?oP5bJj659hwho^oOHDk12-iYiBm zBn>s|=$(elv-HZ4&M7l-P|a&>BP&AQ z(Mdz$$~S~#)0ErdiF~nFZ4twj5>)U}1VVKogEXWk#j+4`#X)gg#@h0Us{5!sTV26O zmBtzqW5d_qW{~kG-}+h<`6Z5SL>)R^yIOndcD?%DsT2YyFb|Lg7?y0AiGpg1g&unI zSH|rw^zUE1HO-FSdy{5UK+{B0Bq_tPJFI&HlBAE>@5<85lUUPJ#^R9HOjx-7p>LHf zCL~&ZNSzhN&iZW>ua-qt^?Dgs{uSvrw}J1%+PMDxfe!8*>{LUtAqhev@a?T;Y3eQp zo6Q;UNQo*l`0dFB4<_Z%>F?ai>Go9$(QbR(Y zZWv{FGRcBVNV!7z1g3%BYQs;zJHj+C4YOUlz4|9({BNl*H&cD$T7GNu;ABbnTW{u1pD@zY z`#>;Wi(roe*Gx-n#uZh72BI26G|saO)$MW)qf_-eqm}HFd$~CeBGP9h%DLTcQ(rij z!Pg9`NyM{oXt+|8FFEmgh4pn#bK$(O#+b<5NExeujE#AH5pW#DIil`BlAxX%^J(sT zCtV|J7?7vm);bEotfZUhBw!z18H<`_*`A*oF+LlV#g=jSB+u4ZZ*tStI*=kl|*0bZu z^^aSRB~>&9r?_A*QgrbI?XN_0w8m^OiXdG94d;MlzE2-H!!9%yx1|DhN_c6yZ*MlF zZ26ev5SeJ5>rTu)TqL7qy)(Wq1KPQ|?r+sUeCSN&CCb(vhv()HPe{X}j`2O|c*R7# z!v;xeW(^DML)_qd`%3#!2b+LCRr!0nl0vl694@u*%=Lg4hh6ZSK{-h@btcPwKU#jhf#P3=xka=njbUh(lh!-^1%!RT3Y1P=YDRy|4eRI46W8glRR?d=^!kPJ>Wx%u!I$+YS#~*0)q3G;9bX1sZIu%Vj%70}(EEp!4NUM6U$BUz56f}@z$x0e z0M%|70AV=$gi@qTfX*RPQsL?$MJft0#Z7h`=az=??5!-c8U`83(4#rvVx`KXSMTI? zmlie6mh1&M=Ib8YkTjK$@~t-&uENI?3&JKwA2SR)=1qOsKL6+dJ$o)O~HR^Yz`?n34F zsa%C~q?{L&k`-13V}jR~^YXdnz}uwIyZWw+0n@fELsUQj|KIED+t6}qmOPinc+epY zvh=Q?=>_;zV;QB!MhsBmJvj`hVv$cSeW3YM=4j=2W(UV`@}1F(H_<*hI?@?pyRr4| z+B!kX6|Xr;f~DQ_uiKL(k5~Lz-l;MQjPM+==0q#zXNy{4HsYU}T>QtA`)&7X^aO;J zAiN=Rn}JZE+xSV5O|Y(l=8y-o6DhwI%PU%E3$)nj)i#$J|IGnne<>H zgziD_QQ@EbYKqTU_5z~2|CC}}^+Z9Q{gsxG+xpZ`^7)2@C;WDk0qQr{Wg=FCXom*)9L%Xi?j!2!mPkdFpd00ck6{UZR`Iz1OF|f32 z66MDjPpfJFkkS>D@?oT}=cvfPEW`DnZZ$s^2K?%AX$~2mHhf-iR41&hT^fOZIufdd^vZ$ zNQMf%RfXOSm`bj6xlPQO9QG;~bZtd72d@t1xP+*3Is|eTA@`NOzn_qVa0Rjn5Zy!N zpUmAwLBSdYfkJuYMb%=2@fe|@#3tB1r{Rc%#9IL?5PK#s(LYqIHPBZ=z(Q}hlx3DN z5FOn|lDFryWzjV}J?Z2$T!)6cxceLFzg3}m3;avsU{2|wS6^3^iE&sMSZgcRn)YrN zZpPsE$m;D2qfF>R?Jqo<*%@>i`?`#j#L}|b&@0dPzL)N*Or+Ve zHb%ggWSC&o3_BmA!Y-ft`#qJ;V$;#26;^&tKb1JIkJ`3Wl9-k2izuhp%@2 z2z7`~Nn126-3uSLSvwZy73eC6!3M?)^C>@07tX6ZG_Fhf=j&I)6Q>xx1YQVGUMV~V z)Sm>sL-AG<`8|himrW?d%Y8BB$Ta7CE zHt?o}DsE~rc@4&=H&6U|3V@A!@AZlpP4=TupS_xREOpw9<%eBHMu3fcq!(q!?TeJh zG9Ol{Y9*Y`G!SBk!cN3TK2JvUbxYNsZyKniVZ@O|70TLnJkV(J&TK*GY+y~Yjfm$+ zEJp8$DZY&B> z^X%g>H_95IuaR~(P5ddF^o6t7qS!*n?vbuHZ^BI3%-a7cHmSSsKcBl&yZg*B)3)_c zlW2`Yo>1V!;*wuG6HPTpc@Zdkd(oDjcY~&26gLW7&7;`5Dq+Exglr#S97vK~BBI5z zWLA-~;4aXQ#{~v!Ssi_`L#56a<^`T-@^EJVq?vmKE#?3IkJwnKHFhV8y7NcvDqTCl zznlSumbE*E&u7tyW%0`!3_=9I3*^#g7`d+R(SsLU#McI6T%T&H{BDBpVGB=a4GYe= zZ#A3NdK~Z->f#5kF9O|lFNwZ~k`i%y#+ZBiy$=9$GxwAh%>$PIiA?{4VHZf2$7!fL zHN9zTJ+UfOT;DC`ExVqz`J+^1>S7?6kNJLs ztA2!DykW7>A$N?&2%^B$17X~Rk-s~hFq+tOg#M4+|9?G6*s9*}VYrE85w=jf&D^wf zYQEisp8Zb`zc%XULRIT$Mm6N;?|i$T+37EYrr&sE(%{m!-87Dg-PErJ8VG$L6tOB^ z7%B9B45%!xkbOkRzSJ82%Qf@;zx(QU<}-J<6i49N3Z}yVX;hp4N={|K+u^`|#$p@`A&?qrsC%F?J#$je)}0r!gOYX3PUC%!$X|TnHI#0;;k$+*gAHhq`KZ;<#b)- zzzz@HkgGirO)NLts!bh%=-JNO(;9@rqj1a_0Ia+~OK*SpShkTGM}T&&cq)k*-lnZA zDjQ}iceMa(?mVqB^17Qbz4^#*N0n8l#z)=1IiU1n{o?#+qp2q3w4zm9dD=4{TB2$| zIV@YvIt_g9PQ!9>d)0M!Wps$yF|U>RORAE@f#=FW92uHexCI0c9ylBX9|U%>VoT5V z3<=u7H`zZQonQ>A;%(=nIpkb>1U3=>Wc%H@@dejmt_3F;7a)wY(0|fgp$dAi4Q?Q^=m1A$d$M-tfCY3*-vo zr&z9630l!K$-6()Gd+5M-1KYlDc8Wzb091^^m+rP9eO$S*Yh!nSrSJsG*2p%L_vu| z;UU#U$3d`wcKnMw%pB#XE0x2{K~&>~MnJzNn15gAcFXkk36$U{_+r$w`Ubgji~Mzd zbJpCI7jG&JEs5XmbX!xn&1-B;4r*=L!#mUtIsOX%XO!Hsby=*M4EN`#iE&U8+F=8C z-Q64@c2eoqw?fvRBvTW#s1^y{nr8{qNU zpL-A#J=uw|UfX29z<51KVUV*7R}6V>!oMGrqqx&>7v(%E%8vgx+WpoUuT81=f4w+m z4q0x?w>1s*Fo8CNo(wkMX7Yq&{k4j0y1Tf$K2u``?dinCJ_z@R%AluRTGpar`%CSf zuH3y}**g5JkIIi3)`o1OZ(%8>I75`b{hX)s}h!_#zV7Rox0-0|$04Gtfv{IKP zL+)6q_8OHbe3yKm`@jF1kT> zj}(hy`=ZrFfb_}ru|_%QQCqok;MH}JK53VY4lkZ)(L!eU#~*xT_d+Sj5sHw*h~SgS zNl$eOK2OI^RNld#y|(0K3n@s-Gbt?!fsO$mnGWdvPy_uJ++<{$jG*dbC8-n!>*5Ii zvP4FyQFplLf_s3o1VlYIvxv!7d=`xvLGz@qKQYhgc06(|@d843h~VNK1DjJxcc-Rz z-XYibtBfj2TN>Q`jBcnEQeB#vyYaX0kD#e&K;6a$h8dHhw|{EynOmQlVGK1r-rkD| zET5*5S@OvZ6qohjm1CY`x+q~h$+|*l2n5U^4w6yV!NzGacSUU|Z>8($)R|{P$bh7c z!tY5>4T}*__rTk~LqdTN>CnlomgJTEu1^uqei!-6$VjR74j7txT_w}=BlMo+{W_cs z?{R%#X%G`zl6=wW``2BS|1DJ=*Ze!hM5MlhzOZ7LeKFN^kE7I>sdQoEil0u!7$UKz zCq9m_Bk00oKk_MFyX>U(XUhIr^PcW6DuTGT5=`a^03 zdbeDC*06DR~d zyG+RK?PU?dbtrz9znY_>y(Q_F)b6kMP&ru_sA*MCTC{n*BDCY^C)7(0)fReTYJ$2f z2CceL0E| zR=V6^x%2C!oW9?&%x~G>%3b`{h9ldEKCv`w_u;HiwTbp;w+=Nzc~g{4j;e+Ave1+W zyUg%FKhyqjtv4i%?Syu#Oe)KicVnT18%mmqZ=4woBk3(cK$QAw|;CBQzN6q z^8N0S^1FVAwTaBC`iWphUcaf<8-_e3G?iVk+e}E;hAVKoGdhwByqBtil)4 z%5tz=impR{YT6IJGqf!zH%5P4x?A`dxM6??WR)iB+1{yF(Y5;uA4NK}ah;ces4U=da9BtxT8KJMqk@ zbVP+xZ-G!ackyX+o)eylwba6Jl89XOIU7z-9^~9IUTb3|5!o%ZKn|E_mQU&$*vW)G z@Ki|(Ik;LzV*-d(A?=R4ZHlCugMy1t7-IIp$K^9nbC>?uit`tKp!T7x%UZVWQz+1b z%j%1B&seCRA{AUDhHJB_nv(336*bOyZXzASe@?pDgB)Fw-V3_Gd8m6#~te> zOf_eFB%fLeT|XvW-=V2S_WRAUzN6$>;|2f4t>M%TSm+%=P-edELRLM5us_X>(rG!x zQr!Q8kyC~7cK2>EY!V5}adz9+NJku>5Nqel$GBYWybzb;>TZojgIrVU7&Coo81q(7 zuyX^~3xAMd-jR{0e>h`HSmiVkkKBAR?#!(%aPv7K?z@)nb+Ey#@;-}t&(fFd%$@%TzkT%u+Ur+?^8Mb41#8!(z?RqflQ*1{CyeJegBsj{G!o*;; z#~^0ZZMWhEeB2iiqGReqnZz`5sXJrq1{-N=BM@)f0kj|ie%yfcwRts=B86Y~&-o9c z09Y@OhWdytz}@O0aWG>`M@YEy(^Ko>~GEX`a2~v2l z{qdW$x2#p3VNB*eud@irCGz>aH9%AwuP#PS+w6IMluY0>^;0v~_X+(6Txnjb#M%C3^>y`NOqndi-CG;>X&F7il>zWNy zF^CUoFU3zgf&wylB4hCSkoN6$GSgKdUC7Ch+{ptS^}vNs=mP$Wb{5)voZr@$9-ofS ztKTrMZqQKWzX(;Fe=03#WlPZuc??p{BvO61dDDoO6*KZLat)hX|Q#ye@-b~z+?%W^NL!`FhM}K6`S0gl~zo$5;m4jsToWn(TK66o- z#R!-f#PCF>iFD)154O6GQ&sRxPvyx3V7->E~FJ0Ln_&olQ4@Z*wi z&Ec!Z6H5~3h4O|}Hz#a85QB6bY;h2i1BZu1{ z72s6l*32ijwWgEqLj209R&aBw>rRzL3Mm$XI12@Da#(KWUXO*I#~;kWJ#WkC^kG$0+wE?EVxvuU-j_#IexxJ ztw?E6JaVLxioF|#WBkJqPhaQz(eanqFrOmBGIR^w=`pK*9%i^Qp%bd@kIscEUu)us z*NaX(81`YnuAUrcFoSzKhueg3&zn2=HhW(06jt&F>aVS1ny_|1JkXlzo#f-31HG0a zEClAkL&4i}-0eZ3EN;UF_XPZ=Kj!?aB5cE^2kDlksNF^Qn?+$BKe(Z|xobkiFK(z@ zieK?$R$ba~FpwZjM2Q=ZS)LD76}{qVt{!(cv@H&C;+9UvaURmt`R)nMJkon!T7Gme z;Dh-?r!>{@e8~CY(?8Z52Ms;FU*)6^R_=}jZsN6NU*G;Vl{}pryo1MWZMYgY#&~|~ zB%AyJkl?2>k_MM%1l=wuCGd1jY*qL`tF_ra|wcC_8-qOmo_9=1(~#h$2%<7eL}*%RR*5tq!Xxkb$4V4Y7a zAH~X!S7=tK6Qb|76}Uy3bljb>=C^>ujOwm;`>e>@Jtf2L&Zfmj5EpOND|CpQsulXW`uR5p;5B-)|{}Nv-G*Yp)yH!QP@j~NS zWOpm=(kgrM>Ik}mvAHp-(?A;PPU6njklJLNo)|f*(u&*$9^W|Rven-tbRFOLh}=#! z5%I0Ciub-o2QF(E*btK5WPoqs9AQ?MVNXW%BU8d8|BB?MV*h@UQVhU>)_bYr=<@5@)#DS`b?q@} z{Wd$f_FY}NG>tWK(O=M$Dg z2Kmb&Lvnqk30<9Z5w%SB(M1pP9I--@*f6+ai%UnB$-g=FHlLph=hH`jA8obG<_+Bd zLQYSBr#MQ|D%qdf!%%nrtP<^~t{gVe_qaFccdOnoCufF#Mr#(vChE7e{tvyjqu~(% zAI@0t9}+5Sa@#;*#}v>j)auu!2$3OgW$Z4cFt&Z^Lwt&YA8?oaTHQFIm@Wp48d9i?FKoza0EVR8S|MR&L`7ajJ3SEzHXGkbs8GV$A%2C z1kN|~z$<;PNNaCQJ|u>wBORPx>|DP{ ziCZ@iDE@fFf9YvdfBisK)yQ$<+4B^eqE`*hSyjKC-jkQqKI?D_hxeEoW0gJcX?O!z zzzLrDs5dY?M)_uIx8riRV&l_fvdb)?8c&)e_M#}H94#%U?k0C zY43{Pt5dOqC?bTbS{aC)TNpMS$b53dI!OelAlYKS6Lb52H*k0N z?1Nqj6Oa_<_uKrt8&6~@M}PJ4enva(%|EDP6Ma zr?v2WjQ?>CHysY|F~ORZqfow)*L#*5KhFsc#^h(q7W+LN{!m0?#mLkfX+p?9g)jCT zCgxzs^?0D5m%H}9q8lG3N;N9Q`UDzh@1YE+R%AKdT7w6ieC3Z7wWQmRkRc3EHio?Q z>_`nEI$S?_)rY&$+VcOkG4(Z4feSMhelAdt4+rcLT$Bmen#f|SVB}b{dmvvR4v4q? z%E8<3_nllRrBR8}1oCHHb3C>TTsCW1Vae$v11BV2EIJx~E+(kzD84az6O-JXy%OZ; znIEloAhBD76|t>3+_WDg4V`w@kxS^rxVO;^AB#8 z66C~1;hhOlu;0P0EWy=}@18Fn6+dZaTH%Pda*pwDj%1V3Xgc#_HZO)W0QXd`JZURcHzNx0`EnP3 zKWWBr&Fd^ksN?y2V)f0^JbvN1hM~m5OZ=j&BBQDbS5?Xj^3T2)im6=9*h>5VbV>3Q zSo=$&A&w^XG`{{Q zp5=sBM}AHyXHm)Y?r{;-Ds zQo=ue7TJCCkkM-r^T=1nl+<5_9%IK^8wydds>kd+#2GXCeP$!`Fj8C?;UPEtoZ=~4 zj@jP=ZlP|J6xBt2RY&ZCs<2929D zvVnyahV@!W{sTxGl@bQ5N?9Rb_WQ2+*Ffxzmv$x=Do-DI$Hk9ns7S1abV7lrBs`n1 zl!n%M`zar~(b|D+c-wl}UPwpLLKH}n__q?bM4V%B5U|bDyvV5sYmMQ73U>P2k&3xW zUfoCf>uV9yG28W7BtY>e+O{Mf@o2$54u*HDi6M9){_ z=MS$Eisu`z#gZn)oNx=cNGa>ofM{Bw&fGW&jMKppl`h_T^Qa>U@2@HvY_{ZYZ;WK_Tu&cnOF5~c(?s*;rx$9ZX}YYh$ICT_3QhXs$C>r%)!?($*LN*d(3_sh z#N*DHwfa;OT-h&kbj!(!(}ONf(@1ecuv6|{Cmn9RPVt~h#AC#>)0YrTSCgnfUiYJq zl^lL@!%gsGouh$0w zR5ZU8Hz&M2Qh|KQWzwXdL~cEnRWWF zwNE1~HGO9-?mu|J=pjB6yJYoefb&wDcL_PS8>Po^eP;8gSy z?WTQZX*vpPddN$Za8+VvAhYr4GROK9ceZlZ@Da1uODm4GvMx*X!Mrb;YRl?Tr}bz? zjNDN_&3m_Z^M`NV0NmcKyrsA)$<~Qudk0Oih)H{~y19&B?6lG;v;L5JnFJBs{b{6Sof zt2ZLg7u5TAp=~W1@X6f8X~}2Nx#|&*Zey=e^M+@^)n9pdefvRYyZ6oMTyrlNP%}Of zXXKkzT)cn3@16cpq-b*KIMs#!p4IERoSDU>_Cvjh#TJ%%Cf~mkZAXKE#W|ZNBYQPn z)y*672){o}@6VUK=ZrVd%Ym-_F0ES`N8Wq010NzxuV8b7s;a6Rdot+1BFtXNwv*E` zpZCvh6mI7Cs|=fEy)U*hyO`mJrQ1?Sl07vip3wUeMOBV#rv$8`WIU5}?dr@+D0d0} zztQWXB_xX6z>pn|KK2vhSh`bjP#LeWcL$LdV$lgHbPYd_#C?Zrz@}Fb!%vUz!I6tL zGx|Dg%=yBIC)ZK&Ms$J-(h;fX#j3wb`JEB?A{NWtm9W;0&@E2f2qu;)9v}Z#e!Uw* zG&1{bd?Ktk7#aU}f(ynCm|$5bg820E31uJ?G`XqFU~d-fievU`?_u)ZI%RImHuZ7C z)m`fLEYLjGT^2J|_tVrie7w~|z`}SpqSr}{xOr8{fo)T5+~n|)vn$0+mRsx^*}Nj#>4Ss`FO3T? zH70|Eo2O(inTPlNSobDG!@E@##)EaMjTq#hPbhZ>DLV+I?K4IqPE?WQVK&O z-AJP-Ie>HtC`d^wAu=?=&|T6EGJpb#A{|2w-QkeZJv0(SH)rGXyyu*Ee}MTg!*5u7 zt+ns?U)L&Y36g&jddLV%M1hCDNl)Z5(Pw2jsl++K8-wzg=%d|(T*D|}xZ~q^rCW4j zmcN%LpUko?k1H+0Bv z^HfDB1?Y~S+)QH6#=8DF4RSuoXz8><63k?k5`~KI>Il1Of&Fow)Amr!!hWDzV#Sj@ zBg4OeIwwrM`H>bRQb#X~ume{DSxE@?ns0BQ4=fXd^hG?aGsT^)CP)vTxH28Gljsb$ zHX1|$HnRF9>r0$_ANfPwlS!BL&3vDgWKH9SnD#s+dD5C5Zg`pQO~N2SaT|u87uR;3 zxXX=0a~*Fy-CYfGJsQz-8`9iKUUp?nuh?BZp&`TMY(@**in`rpO2KV%ZAqgVnIfI~ zDzXMDO2D1@(`5)ne-7N6t#c(ql5dxnm)|R;Dqy^5w{ad$3D=Hdh8{3>VOfx7Bf`te zzThHok=~xqM}ugbODJPCmuA()>_JHKw@y@=eh?5%BohVSk2b?H9rK^}d~5D@o~!sW zF&Uwjaux{@hgq5&pTj&16OcqyCA43uD%jn{f11naew+Jju*i^7jIhiPn!!SJf#4{^ zt;CEo6Hv9)lx(rpcaWUI7cB2eItBU?e%=4sg4p7Rh{(^+Ade@ns)KlthYTUJ1<&;?H0|bhl3De7Pc2M5l+-CoV$H6{ao+j@GvQlI z1>S{i5~SV6YgKwfNpO{J;Y^9W(>l}roytNuf2X;NTEqWj&SSlX>sK@WMos-u_O@$Xdj3h>ymDnsl$#xHZwx}ZXP(o!M1|KEndqhy zl88)cSWZ9V!}2loqCx$O+wMX)zVj4+&o0HNg=@wG_t=JK##9lHaET?~AU9IY80*gF zN^iGHZ^sR>A$TNNsl;j-h)kHp^~FT9sVeg?pDtJ#qr10}YY8g1(#T&K}5T z6UM^aLwbTI0Y{a-F#b_!jC@15VnF1*#_?MzAhk7KOaD9H*ih|veKFn@L-)?Ir|eNR z&_#zfbxsr;O%O&IcX;g1iW6{surgp5^gNle;aVD#mzmLww9dc+RWo|7kZyI$y;fVY z2y{RJIFkb1`mA;B-t{7a`sNH3m$q!oOP|$Nm*zB$q2wLOs_HknZ)gW}21tvYg zgEb9%%!op;V~hLtcV=po=}q$T@`|OrPZUgM;P#mzdvgsn_H5H%;lPn*b@ovX5arv@ zcWJYC^H`{f)@C|A?$E6(XTs+S2!G%|Dj7&Mt@12lZ;e@-nZRq^^R+kQ-rZRk4SX0D z-iL~v9q#K5-z1id1Wa&^9T4e?NzadUn3PxYI`>H2Q z=>`edK<^O0jYJ1EYouvx7c*3GO2D{)TAR=|L}l43RHZVDCfBcMY>6FFid><@W7&b#Ht<<5+Y>%M{TjVQ2 z&BKFo3h@u5^FTh>(QTLX>kzKJVR==k`f=-z94rq7SZ9S1{dJX=SgQoqe7@g9({WJ< z2C~g0yk7|>qo{9c7TC50c^#%d`5w`y1Po;^I-kEWR=BoWu>k1QWI1h?R{n&H^`E`V zb7-QbU9a13_8RHE9rX{sD*50*vvAbz3xEP^4KS*{@t1m`75Q=7sN3F!1s8qx)@G*z z?wky3?;e>3uXu*nu^ww|xOJ?ISoxF(KXYkFP8^X#JQ!5REJ(t?)bpYlk}L%s5$2|f z>3jS4CN`~kpLNhLIpVV$WoP&g7rVJb;<~*1eMzlYenin^F}OSJ@(?9)IrIk5(lS2aOf!Q&(kur-e_S zdD7A^i9CqyJbbFcXPWQyNPRWWOYp3W_GNi7&VyFiw#s&t%lf@#&q51W`|N?J?xT?(of&%g>adczg0Zy zsc1|;mc>c0gR6-$>aVFIs#se#STxAEGbXd63sQjhRhz;ghOnr9e5aDMw**3mBG(0b z`o_+DJd_6USPdYD~h^a7{43H zSW0^k+%k~n4%%w-RT z!R131$=h$m3nrc8W+%?2+m#H(0PKyF#4%I(?^!fx;?zQ}_)SG_u0e}DGa2DH-+)o` zx;8aeUdrn77r6yE-2%V0LK6R#+KJ|-CGQ=kqr0j1^@UA?D?jG<{e670t6_3Y#1AcB z1%GMVc!pH{6wio&mj@UqLw<5Buwm&Bd?7}2pwA*ca&Kq0PS`6TW1Bf_;1_<*_x(Y$1o-Xt-&ra1FtmC^i(P}zLg;OBwWqNsseNXFWm z5;l;&W&kNJN-kno5Nn{meOh)raBSCt%p8eXdg5;e1 zvskit9Brg;?+bJkzYf%(E5riVjlQ&UBb2E_?ZojiC-&~yyuz*Y0sxxq2)v?<2~nu+ zLgBu7-aQ$zmf=w3>t=57!aUFxd;-JDo&uIF6;NcTxcCU)Xjh7vRXXtoR_nHRa*WNd z4=|hU+x5hps{&EKl^lAR&?^Z{_Y503bKW%`B#KFrIZNlpMj=S%K+Aut`Q&R{Wp)(a zlx+m(x;u++d@s-($1kK*4;XGW?)|v9JyGhotk`)-)P=3;CbY1MV_^DPRWm?5?*8M> z{`<(OH;C~fGiWhOg|5*T`yt*AGV?6V?{ift!Y!b;;QoO@sN*ki%ZPoAp%K;#|0(TQ z6P<=|)qpsy1(Um^KCO-wN12rdg!u*fJD53;oIa9SUj#pKAB>;qgxg9;w2}W@lh7U4 zl&XgS!3O|ad!r)b?qzxO`ekfRyBshPd@kUPbU0CqI&Ijbc6hDY0fNUGn3)ud+}%JZ zL~$1RTyv@EF@9<%B~FwGH$K&=e%UYCsaWr!d(%Ih^*}`yvHn>*5RAwB6p#4swf5O_ z(UG31q4Jmwf@yCJ&r0hy^(}+5hUZz{dwxnY=Su1g|?wC~#Z*2%IQ4-x&!hi&x>&YVl3v3NC8gST|J6VP%mo zJ^}ay{Oa82@?QufLQM&cQjZH4jl?laKDd7B1j$TLy@!7sMN*qWzy3t=gS_nnkpxaD z4i~+|%=Up{IHT0lw9{e`EChEl`Srr|f4*hsH?4!q{^k>z=8K_mlN6an?mg&wgQ*HT zz(olfdafr#nH65%*6q#AbosBn<6_uK#4!W)eG9&^;mQIr>cOwc-uIE2s~`2Li4oz0s>bz?Ydq8@- z>(NYy2BLgd_rH^*kEM-j987|_$`>urKvV-j{e(anht}E69td;D?uu*?;keJ>%4bo6 zO*H5``9nUz7C3x!+o79@kE%yGZ z{TP~_yLIcFzHrxdq>>B(VBpN#!otPxs&Hl9{#4iM0)D3eb%S$oS@7E$-@vcdK7hzdXG$ALuQm78F(w@<*p>Ne%_#kUw(V{Bpa=0v!9%^GiiA zBymw2YH^75_>VWD0Hhe=S_L@{J^J=VUjyr1xyU0DAQ#+pz-J-vSKr%F9dpb0k=WgU?E{Xl@$KYs#FM*)Ymx;6~5E;rYc#|{Eyi+!0~cE z)qgU@bDkR%X-u+Jc~9b;{XL5BxLZnAa3UhAVFtqD-(!ld$Ausc&oSoEqu{Pzb>&G?l&D}3XYu(KOrda zJ;>)-erz*M0A%(1()`FNh& z%faCA`4vpR=5~n}?DpnDP}#HkxW{SI#ZGkw6uB_S_8wL5U~0siKY@rm~zp!*&1`%_=^ z4dS^u_lYBJYwiLCT(T1P^I_M9b^kM(4!XH~#enp>WH zv`3duA_d~vdd1{xOoIG4t0i`tXEvL2vMQ!1?pz+~!sq@DC?q1?X>B4({MgI*U!Z1p z&fc-b$iRgbqWaKy-AcM}?7c2`TK{AFdQ_=1m4)=|%4vj0(>9*}nZJosPh`)MAlG%J z86<}#bVcvaWe4{y!bEG*ocZOk(<)nW~Da59~{3D3dtKM?glO#wdIMBG3aF(wWcD!)2CIxG`?(31%DqexWyp$uv8H8OC+O;5 z>ZKSkH66{kOFmx5xlL}zavF$O`AlAta5W^?Ym?&rj^!Iuq`Z)O>!wA_bAD zp^{rHsKsPCw0v+RdoMH(4<-_*F2gSPhim6mL-XP|Hsq4i@taDnQwd)9QDDE)!O*@XHqABa0eBi z&E(dEqx2DGQ+s;))*<`tz+Gee-F?9_7!rw3T zIS@s88}0Ak9FF<{3Ixg9ZE?*28|U-6h1-P_JTgQ^xK2A~3#&ayW*id^Le+K9MNd%f z@f!I|!CwSC!sqIEY2?pR;L|nxGh#^fGixyTwUt1s1Gsa;ChDxs`QTv(+f4 zsNQb-=u$vUBK4DTfWm$Lj?M3N06}>2uxK`4p1jzKX6+x6hxul+$~#Lbm!$VU4KhcL zrSK=FRgb%mE5*x9Ax|C}qXx*GW4Jorpr&lEhP#2;4{oFN-x9t#s{3&D3xbC{E{xlu zp@TSdW6W^S9ZTKVMtL9cOri^s6GQbW0WAV)2FvFz1dKo z`CE}iymF%rULr?h>ixXT!Qo!oc0^H~X+shPb+CAv`}^Wm2}MuM`b<61Y>VANTE&Kp zUo42Km}*TDOO}S&xWSCQQ3;V=Z~9$f2$qk}HmcOkcge=otYe9Ng+GueF;kXEZvc-{tzGaEVnQg<4X2gGX8vJAVTPQ@%uP%-Q zasG=E?&!*YvH#SSGvg!>jX|b;AL$K-&z359RK5^pG?~`89P@~fF|}mOUOwl*r>Pe| zgn1W@URscwH?i@XP2ZKO@2>BC+yK(}J_oo-8Uf-3mnRdRfWb^OIU;YN$q2N=>gXo&imrgR^W~lWhb}7`ErJJKZ z)2g1OKi(WX3HmUtJof%?py)%aXny9FcrSOclnr3_k`_rW@bz^4FOt*?gkLuP$Kneo z;C=$3J@Lv+$KV^3%w<11Z~pYAHmmLvMp_o;&Fml1xZ8n2f3Tkeo3bQk_VwytnG280 zFvS4xcLD)Ov|W~dG0 zLXC7zacl+YDAxuV59_&2dpl`ea2nf>JTy`COO1hk%AV<&)+GIEm6y!=!~PB#2^Q9I z2a8MUirg$t2BT|GKlgA^knM>(&aEr~!sXrneO&1iRZI*3jg(-I(g@wm)n$OKz_*UL=5(0#)BLY2pH-;y! zJbMlQ`ks)Ky9O72M?5}$SP!OH$iQ+uu2YX80b}0L8~TI9UD9B?{fD@6M|YjH78awi z8ZnzBW}`M1HHAGZZ*og@u?}2g*}N8(WDtWB+>)b$(m8@u%&7T&j#C5$X)=q=6+gYU zs{bb4p8WzdbkUgCxGp%wPEX7pmHpLk;2ED}z^Kv`eo)~cb5g~tjGeMq4w9^f`ctuf zkDf#jH@a}0r)#tBV}g|oBD8B~qoo;F&8}o%QGBPS2N!myoymqMGlTN_ zR1EnU7QrpZlJF!lgg_N1 zEnHX3@}(FK9!w=MUe;+9#ewy$l@27g^r@Zz`K*tj-)4)h)&(y(>NQ~jKS1&x#lQo3 zrwe{RyYI{)$2rW)(rzVE0k0I{X-_FgI~gKbB}R4wJAZ3AHnbUKW-V!#CowY>@niDG z1bSWK=mYGo>Lh&Kyv`0iAz$>NJM#2DSVv!#fNQUDT3xWfT)mEuqwx2?zAPz1%bnDR zo(H{TBnfpzQfpP_*o5cS9Zj!%yAIFwEvcOTm~d2S(}NFJB;B_;NsCij0q9vO zTe_#&CUg}21p7fO%{|whOEMmX#YeEpYd1v(_)_*zFf!%q-xppv{G8wc^-IWt3J+*$ zJrTJV;-X4oiRcT~kl;azH9Pzj$^=key|YrayRwcrbKuJk;jDNz{QL7@M5K7EC`qX$ zGwp*ODlr@a`emy9?@oX4v`!;vj#-RAIRVuztuFLW+7~E}WM2-Elw;>Lb+QCeg>T^N zOS;1Rf({8Sa+^UKH{XlLsFBa&ixG}(A00~+@x&&!<`-v^ngVCwL1|O?Bai4(07V{w ze4G=+(w>KIm_+4cfio3SEVy42hyvD8uqNtnsD)nl6K_lVv>6II-5CE^J6P+lF0-9- zluzvqUKY-v1J;W&URKfDk)O>XtKc&7MO=BmsFgV*uk~Z?=dwo6Zz~!-|RLl6~-O~8a#SV2KGba@H zZ}s~-N%Cj>BNo`PSFnOL0oKl4%E20|e@w!&1=DkDrab+jz}`&V*Z%d&^wES?UXC4k zV5iZg4ba1|#y^=CD3KERQ%dyoWa_0fQ=h-!cco0}SuAvOhraM#ly-MbS*z@%4MPC;QDzGWsUTW{N_Zjxqj!`fp+cC(E7v zRlR~PN)I++wt+u(H99I@T&RXuaU`fm+;sZFx1X~X;{S{m*jSpju5eC)rCdBS!X>#- zZTj>NqrohRc1F9fNEQm0&&ei?rOs;c_H-olh4GeGijGn{e%w} z5)$@D>k%g#3L9}7&xN#dI%Nv>zc8&f^ZaYN1x)&sej2gM!!Vjv!i3kxU_H>pG0Vg= zAdPK}tS2hhM!o@h>Z=tT(}L`ZwJ|3|Q6i%WsAegiu2Fd zf#BHR?S-9YGT5~Ks{n28FLG_>t{${-Uc#2cGk@P4)fq*tL)CmKHG`+%$AKpiUsYo1 zr0zCz zgmkY7*($_SuRAgx~E`muQHJ$;sGEhU{b@vWr0Gp4_aApeJawSBoz-Yeo5w#Ep zV8#Hh_;ld_gCq!tx>As=u>UU=)&pm~1mjX0zJMFz#H+5K63OIviUGw!am9v}oXFV zLPFp=XEFDF#mn&5c!>#Jsg0%y(9iJ^B2xXwgFKGlb(OBSm9f(ux8C2WbLbJaf5^ZP zlTTZLq`!%A^kGXhce@2lRD5C0oBaUY1C%>Av%l^=%-($_-FUZt2T04$Emntt1p3^f z7*KtLQxZRBDgAZOLKq(X&HDxV?X)p`Jc`>mTY9^5ML7WME3&{FRs8Q4V>_9anWRk7 z@zIDNm9M7|z^WBdCpB>|IPPM?Jp+oV$>%V0mNE4h%`afy0aj76ld*o!Uw?GW-1A6B zEkx}k#;Dnc$82>iEW2M7sMIgrw6w?nyNk~{K$80nUiUB(+jx`^|ILHD2iR+VXx^#C! z^u9>7=hd`bDMOM2W09Ju9qIM=#;VK{XQ^#^SLtl0HJ^D@t98>vyWzjFyfsQYe|p#c zf1=FJr|^LPDPJO=51-{CUwl0KQlyh2?1Hb4&yTOrg7ia$lg`5OY%s3cI{!JCG&dFT z2?!XYB+|FIa>p!(arCbhl0Q!)dBF(--w~h01xi`PO8H8T(mF?%uY@qxY4N}B&=Cm$ zK>fQsh1zMcoy73OCTGDv>x_#P2?t9Do~%j5JTn$-S!_uA5B8RjiN)>+1{=Tl*D*3E zK4V|&tDRFh-x4~2eeYEo5u8~SS#{k%GTHII0@OMS%e1#s7cy^@gMi+o8w<1`0@+ZQ zK3P~7ZyCQ*qq5@B$qY0PH$?$-X(O<+Qa$i*FVO%m?jV;~&SAEFvkwwRxYS?soUMr4 z7#p4J2b{Hcle(^digGpm_`tPjN^Pzz+YJBNN9IA0s|xqTVc)`0q0{?&dk>}m{LeGzeg+QEjrp0t z5qadmUr(a+w3J}~X|G_earJ0onyJ^%PHZVeO1vneNGhx@i`A2%hcyHg$4znt#s8$q zcp!^4MO&~exPd-SR+NNbxIg&ibUzg&0VOeaZgUkAE{W?FeS!6=DJ{Gn zn&k=VU%%c8qZrlv8|7=gC^@b^&HbOpEfDi;#+w7`Zc3S+UR1qkBV&1h{bQ8_UeBU* zYvSqWUPd?}ZER}Kxp2dRisW#B;_>UiFVHU;C)oei8t3%x zfXEz&L+sn373wi;*uoI1kUBy;NI#nbmlZQkW)Bovd9oA!_j zu35hLe%NBz8vvp|L-O8UCOJ_d(#-toT1WMQ$OzUE-<`7SgAV)Zw4B_^X*OxG9-?um zVG?b1_ZSvGZT;}xUy)cuU-2EEN9#}HBd0W%DBym9hbTF*dT0fMS`^nzVLzZP(Q!e} zY3E=OhsC@v-J!ew>L~Gx9ad?)2%**ik(-`7lkJmcYtLNp?Jjk<J% z>*UmlisX_^DzvJ#lt1t)>|)BCdEC;~_NyzW`4EtIGi2Yh1D+H{Om`(GfbJCbB@L7I z6{PY1vwj1B6)JbDja|GXT`XKBds=6X-jQq(Gif20CZJnzAeeuR34SYwp?E)1wPn_@ zS|j7sw%^H{=xM$lnm8M}9GPw#Fqo0V5(oGWC}*PzciJH`)(i^TLoJhV3SpLeFD!R0 z1;SoNVMN{6ug<{YPA$;GN%wv%iU$}!)MP`6C+~eNEyDg-FMb<6k*0t1-6Y;WLQ=wJ zQBuirKk3@+_rKzHB$b7|QP2yVqMs27ZHD*T+a_LKFi<^_e%DHf^ZlR5L`8|sXMD_% ziBN(i4M<>NB460}+<~K-(~)#Qx*Hk0MgHUGeVcMkc0n@Es7j|`;P5Cvl}9+yZ6tVq z!lB$3LOZ%S_6vY|AFc3(j&PP87Am&Lb`|lcy&n=1d$*lU5t}SVs=xtK_H{z-CXq=0 zzqD?cSMqDx$;v|1QT$gIpuSh|MSmo2=T2<$Oyu)ejYBt+RI<;NZVq}vY*3NxFAlVo zXeKjqYoP8m>#%@J(hJTOY|iEiaU1ElU42<*2>%GS?08A@&4tRN6hdyU7S0E+_<-jG z^J9A!#yi+*zXQ%33^gL4P&75Qw?z_^aTMHH5R|T*cA{QrE*Lq~eGByXJf;c_nKB)y zw!#r}tmJ6HXSA3uf;BBw2iDNeA;>1xEM>S_^hEO~$jn1T4qpcFFHJ&w7E0fZdbHl| z-6fA}iO-DtI*S-eomWfN_DUysbUOml4>HAOuy)=vxNw#i4ECHO@& zSRSO-AgnF}dP_ropsA0%ozp$u43rn)#mh2o$Zi2P1RRN}7_L$?J}h=%IJ!{h-*KOHRTwWk%SdO-EB=x1r(Vdvs& zKW&iKNE>41WSv?~QTrMknzu0~LvctJ|4!(JTitEJzdYly1&j7Bn4fkm{c&Ys*c34Y&i+sdscv()xajjNQ#s+h^-{>`V2WP&d=84Hm$VbW@W9 z?fNdaPnoDPd?V8uVDy+9`N1^_MJW3;uRt<5kR52VP**Vd0*%*Bit+&xY_+3ml6Y zbr~0pJv0N#@q7c45B+);f{Q~P{oU`FR_|P{5)gf3SZA$an5!lptTVOwn08Clpz64$ zI8K1-tp(qUF-qdVM1d%soWUQ1QsTmjQbquWx8aDQaPsrn&*-d^p%Ll3RJz3&c5O_9Zyr@#50b^w<0h=aFN1TYsW#!#V*PB<2dLm3 zJD+=XO4JHsTrD4e#sPB)`C7qR#gTdI!MwaXOX;kr47PCr9o9gwdWZ;*vXH_vgyUje z=dTwmXL^43YJsJZ4v)Z)&-Z-U&ubNdYJTdAcehH7*FJ+LA7!0GT;NYZv1^l)liwC$ z=T&E4<--MLoBd_hz34W59P|EscqVu4da^S!@q)4KjL@Yt>+0MmMH@3v* z$q4t9t zNTHBqR$hbU&|J(Z48hN7>1?mKHrM?Ybx~$k4g2ztPk?w2 zcSfU-$!Y3G0on#8&otxvC4}k2u#!8h{j8>Ys?&<9KjSNyq3`2YdemAvrHkp~@@s?* zLC3RQ1q;y!rbA%-RD7q0o52)vAWER8S_?9QlZT7%VB{Mpe_);x!Kacm+v<6Slb)sO z6H6Q+a1oILnx0%_1dCZt#Kd6P-(e--QPvhHv<5OoHZvfv>2m)a_C?p@^a^GJ-Fn4< z_IesXmh_1{5XlmITLo|Zzf5p#?F&k{WGO!<>+cKq^(hXV)@h?7()&@&22h)+T=jh( z+}14$T!~W*`7h{`#EbCP&+n#-K+ob`qS#o|pUMvqMM3Xpgj=jEN4x@9+Mp@un|qCr zQim^@_J5#ub*1=1{_DdT{os~QSTS4=2L&-p@h25Qd`D!UsKqz&9|8QwZH9lyN6DL| zbu#6-fjq6Z`@0vspwD+@<^Np$nJ%v%rBMNke30L#;SfRzK9KUp#O}41#gB|?5qXc> z+IATkp2F;_i@Wy=j_)e9Zq4!)#x-AMJE{|J3n!JoFK#wq!iHSXIr$*BKZv@n!gLCQXH+;Oz zK%;edkZQE-N7w(7HkA#*(T;$$X~PT?>Af^YdNcVhE@gRx0@>&S#{KeX#&1W&B5G9h z!r?N^zNI{+v)n2+oQYQhE|V9<-$-TCUkb@DuA{L3y)*89)QohWl{YFoyn_o)-%3vF z19n{R(@}fEf&F}>xm0`jR)$NA-=_rBM+_ML^eb9q**Z&8V*TJBQj^bjEdvJbJ5XS` zSKf)DQ?Vv;iR4Q85-^SRKz!x%6JL-{V|NlCP%qSgG3iYb(4N2k(0{z91V$q5UaPmvQzj`SteRUG5hi`usU} zt+vla-@@1Eu_e9$*utx!+_Lu~eOq}sxX*BfKPh6yx){qwL$R`gSgW_g>x(~KREzDD z$(FPXn+1v5`(9Y=k2D1yc1Ylw@N`2Gj;06=vi7!Ws|ZM>Mt-X7OCWNbu!7}L~(qQX_o9MC9As)dk*Et z`bJ+e4!5vWbP47S;a3$|(DQ>;2)Bdm)8XE2Kx_E0@#{7Ip@2~oOB#fOxSkFsYHjp% zC5^w|Gk@J7#Bcc+$m6G(jzos~Q{Tg%qyFsbi<&x4D`!r9mkL31?hNzXPTwuQ0q0k{ zx^N0^sll)ZbZ_V1+^i7@mf{p+tfz1dQgKbjcN(VGFUqB_v371#KLh)5KR@NI{+8a+^0lUBeG>Fx%+jt0pOdFP*+wIf|F7WT&%LB{5!g^co1Pj zyq=PK0Wu%wbp2k#;%!a@mpAf$`M$=UY45o3l%hwlbVM{H{BIRoQwdRhhjj$%@I|5;ozw&B^w$0OkR+H(sWb%P zLaR6`P|W~C^Hx`^7Yk*izLo6A<FH5eME^kXMxF`Og}^v;Jwtywh8WI`+Efy>$3-;_Y>o>vtX-_G z`5M~|sb_kAi>b*^QZ?n_D!y7)i@@7*7GDAGwqk%5t_N-6fRCW6{Xlf{}Mg2RB4Se7hSdLFN+(`M|I?|y(HJsBHp zr|hHHMQ9!q%r$Rpy*tDS-sQ5E+%&8VXcP28@vfb{9n}~tww1B&f4_+D#+<%G=0Bpq zfQWAoFyv`hvY#DKi>ZI;zhs3f+Itl%ECNiefiEzMzV|#_b>eHGMZ~L<4m^E2c6qeI z6X@s3D!owCV+`%U^7Kj-rjB-UQPBi979V1v@BNV~E$xk&7-ea1B?P3#_j8Zl4*KjfwXqnHO(vYwuxc zETm*dUdl$>Vw0q>v?2ySk~sNj334KuyD#Yd{YrBJvalJ5RFgNi%(SUL}f(9 z;*?Ej1jBWMK#E#_b^Z+Z%kGkUyYkht-0~}y)_l8x!Ix0pY4%V>p+$bDdDKr`(1WG_ zEAU{30X!Z=MqMkqmzsY8>Y59# zv-F2*lZ-RErsjav!ayJtn(>R-75a)L8Y)S^+G!k?mg)r!LDx^u)^1kox~J0QMmVfV zfV&5Nfpid+19|c4yS=_Yx)H{?4GG&}i*jD*v4j0|;qD?C=nwJWe)>Thg)eK2`F=qN z8!z;3Q+!Q^ms(wiPmHwba5z`S@jViuZJduK^;?B1@vd{&v_`QU5PnXq(f`lS!wrr7 z*-Z)J(Nwj+gFMuwnbG=KXj#Lf&RnZt5f(3}ApWjjUS3FQKe$H@i=`AID9{@-!$U-@ zm~RWms|>!kJP>TE%`N-dbEv=ZM>|l_+`RKMNI0rdXNKV%dU+mi{TT$DdKczg@1&Jy zD@j^#00YgYs*A-|wa2Z{wA|9G?LJY;dkhB@;(DxG=;KwOY$5`hlk&`D89ZV*7-&~l zk-^C>9;9H*ui*cTmpvJUhYRjNy5f?&H&*qo>c4gT*U|hJ@=6eqW<~ye5wcDWjQbmA z6{AnB-%I7zNqvoLYSUFFTwjD8g4Sw}ZmJTuW1o?HsPA>YGI&f%QTXZwctuuI@aO5& zYZr^{GjXZucfI#xe~vKv_BGGnX*~~B-1p|^-ZcC9+M&8)io+SbejE=74_5s@A<}gD zJLL|~LObUhX}66bjzQ_mzwCDsYv*nL8O=Lkb(JY4w)M1V)8v27P;vl z*Q#F(SNoOI`<5#UKZ3s)3{=iRoIt2;>U%F@x80b0g^?z&90 zjd26Rtpg;Sza=T=`{eHVdXD4Fe`6JppO~P!CKH@={0U8|aQc@w1c`#i zG(bgQa~+0kyasI$pV7j-)?9{{zci69>JWmi`8cPIR^056Tv8_f!Kq2sc_T%TigCQ==$yr}v3)rNlZ(cy(7lX>Z zVp!_qsC9H4tI3=l+=d1{yv@9t1+RT|N4#M_yOH4q>LuO%KF-vqi?b*7a_B?&f2u>tC;snw~Vs;l*Ju_vqxS_i;y_!(y~wIJyp2_C>~kCdDU4I za}=3(#731e@t`2vvOO{eEl#+*mb|$gK-Zw9n&BdaXU1t-z7xv6{oHZNL!)Fziz7z}L2p zj6G-%irO#$Pyhwx4i&M9yd0H=c(R@_6?%3YdNORyR{}Hi`c3*yq|BrYORQZ$Lq-e- zpI*++89&|$|78nveFBDjv_gPA<08T_byoKCgJFB}cS|6XT^1KEm^oWT0>03WHshix z1dkK&>q9YC1;Sk&)!n=w-hOG`Mgy%c?{X6dHYxTE_bdMSoilGn^E6vRndMUT{Ph>2 z;p*{~@>9tXV{WSh3a?pGXXMW}8B03fc^QT|^R103@Nh#NcRbCT`foW%mn4>o_C6o= zi7d@TBY9smYHTjWQ-Y`F=%wm-j=d52Oznw^n=IoWZ=U@tG86>qlaXOK2OK513dJWS z(62i>Nv}KNFa0~nx zV*Q+irZbL2`?t6dRgSvQ+V2T7kCp(t0l*QV!&}H`VOj8MpMcjS^6w4t54Nr0b$?ONTAn zu{#Gm{pqlMp#L!vqzhe?$H8XBpeXeOu{#B^k*@UI1EgonDul5d#$)rZK4ga304IlxF~UF+KNSo7(~)o`A498+ zvWI{!S3WQYe}!U~F4)`<_qCKK_wp{sQjZJ5i{VeS`_#M6U}9WkoEow3W~B(8?fmH&Gxl8zFw}e7){dBn-vRsYZiX>W^qzNSnr>uBgnPgG z&~U5u|FZRbre(0uQtQA&2jVp1ibuX?nso8f+Qd6s2_QMmLzS-hnK;U%QEI~=wQEgJ zx6KK|$Yl9KG>+Ma8!akIM~51C#rF;RhrX&?>xmEPe^rji2aaCZ-35mKxfHD1W;)|s z4l)>*IGs1OsklZw`T~y7QpPi=>qA%zYtuTFPM%awx(ffoaXqZ-v_P6c<;I`1T*cisUIvc|<1pod0nzIN_}3suK&~3& zDk9uHQEDc5)rO5n{8Yq#dW^YVP|OD0+TGQKoVt6Uok0L2jhMLx57Cwy#|3GEg-V-2 z3LiJOr^_4DfaeOk&)$3^>FpAUKg|r=RVTGs^qG#9)Ss^5+Yxoal;umnY1;Sl=CpZX zR}hz;uJP)izr5t)ZUFIfz-zAcZ#Vp(zm^9kljHx@zWsbRID8ndhS;z$(Vwx%s|%fQ z<@@%(7i$f%F2z5Nj}_6#6`u&UzVmVcaq;5$~T?)N+{$OXR%?xPY_3x%s~$u zY4{5MLbct*+1l?+Hexhs6QJ5b-?;@e$tH&+5!(VmPy!9NjMKcRQwcTlc+t4~Is}OF zJAL0XiCus9Jt$if(Jo}R1N=d4M)?xtR8ScOpgU{DI;{fqpuLU#Yimi!YwQ2s)QsnZ z6!+J2+iD~m?rUnQgxG;_O7*pDv&jwCUG=GT1}iI3OWTUa;-?&{Of%(zstOYh{b8WJ z{u_^aRo{@kGmHWsD8 zfhvOEfJ-vx5=2;6a~4Qest?I1;uw#2jAeTVfQ5vCj>{f!Z-NnYxv+#yjbZHJY}X+a^&>}wb)Lc)RBB`_3-4R z0lN+N`oVKZfpgeKqEVVNr%YLwYdXr&KAiue+GGk4LcV%-Lsd%aPimb*U>v=;*{NPr zm_CI879dhi#eA$UPp#KYxcmaL?6 zDrGLl^BPY0B>8<_qWpj!WK$k52Pk&G%QmehzjN1m$k)yi3=nP+DylN}_q1%|rjJ_{ z12!vn=sMI^hz}mYwiS0nT+INa3As?Hb=hLYCIo5y1xcRK6lrtk5c#ko5_CT`Mi@sI zWh`3<)s1WpN zDuUUiK(A3ic>fD7$yUbbSi3xJkXqKHl}RS~*~*cx+2@D?O62`g%?|hrq#BNgPQAyj zqG{%}uTrm6(IfM50%3FSEN|1bm5IA#5|c2yZRK(Bdxb%^bEj7Fgn*|Vl__oH3DIIJ zY>OHQTM)rgJc&~fr|gqS2_g$)Akb%bT?8>lp<=MZRS5hyzJ}*=xdKUN27CwZ4F0xg zJL5p7l|5!X4WAj0I|b1v;%OSSq74$|sS~+i|A($OkB0Jp-@r?Qk&2-#*-b*Wk}Mfy zCuA$K%Pz~6d?3q^=Vhg&vD__+BXtqR8y(<(eoo`LN@GM6Is#^EZ z#EIHv|F;Q%WofM3uWCww?%I*U&E0PZVQ8zjA4u4wKA|k>ymC40y-?La91Q8h{pl~# z7lfP#k+DHd+X?iD59d*SOj=Yu(%|Jp_$l#!l5lq; zhY-WdB9qadDly-Mg+uAo1SS%S1itzXBfa~ie*J9w*-h0IFjg4r>yy{eFgj;?gD1#{ z`-e%iL`~%$dw$n6!qj(=cGnzy?6rn8;;ut)7iIjv(6Ry@fPV8Mf0uTyK`=Q^F{d0& ztQl&H?QAOxQo)4CLd{!~uapn#MpI918~UkICLUTwjvoW-$YrU{3VoxLd)#DbS2jMb{^5ppYx*^JqTz5tExl{X&`&YCju+bt?&S~hh zII94FsQIZob}&%+9biNr0EJOr5y3D3YkZ`6caxlk<*jd#z{*bIuPWA!2(dV&D+w#O zR~0+H9ge@tQc?5>G004fk@PhNdR0&ds2}qkG2mH%th2w7R4HenqZvy8wOkwr%zg zjU0@uy+kq$WIC@YNgM`DJlfoMLt@Gns?>hFsnH?0?IDJDKKBmWaod;Bh~JbP?z9g3HKPO-ZmySFY z{q`-Ve3cC}(rHQ}hJK96iVt-irle01ape<-LIyXi74sX=rH@5c3{a93COUy*gJ0Fn zE~jGsDSCB?5@=#^EMl{t{lf(K>KL(j0~UBK92nPQzz1;War|Ss6)6jZ`7AqUN;NO< zZM|sKsuVNoT;A=?lm`TT^0=~U=*I8?SooI1dOR^x$k zvyF?wN9JDlPpc^w z%-O)&O)N+*eZ@FiH|kToZxfQG!pIYsU3z zUZ|dkk*KL+yva6x+VueOhB0{;w|wz5NC8QBiu2pcVE>nNoWD@NVWmBw6dA5Qg^t=@ zq@A_n4)UHReu)AZu7?y$1t(u?S8=}W-KXC?xYLw4C9NgBRW;ZB*S^rqK=VodEywE_ zpVA z=1$>m)@INj5Y2|0-J6w}N*Pxu7S7mzmiPmO@bwh0P7>7Gmr86a%N6%H?|EXbWqs%s z>G>7PBJRwjt{b6x4(Oe7ZW1OvdzAlzya9KhAe!P6`*Xj&m0TLY`v(e;jcm+iae%SV z+lsi;S&q{eHqOp#Yw}Z}>)7hJYpjyRUWoytKW#OB(7+~ zK^sTe$99Cp56iYukx<63bvr&j^clb655(z9gjaL_MN^G^g?cWm(aIzbp09xqHPYoy z#u&W1CSWgfX?X7b)T$}3HyK0E1y2Kgyn>W}JF_O3#a=9Yby7gGh=<6+Fyi+-W)&s4 ze+jP%kB_KOF?CUuLpV4kz1FCx^;j|>YE@yYtW@2cLAP0gDStS+uXs|V9(@27pA}$v z#LL>4GV#8yvnB15yD&@8_~p#Fo%fsMKwrD_)9_B8rFZMGKtyuNu^F%f#)mw>+Mc_s zccKm(5-L-&9^tE`Oigb?Uc_IdeSf*A09L?z`*`%SRUWE-zOx1x2w=ta? zvoTjG*uV<_r#ft@U7@T3DMFGU?Y_(#|6lG8`O+H2`JXhN~T0S z#KE^O8O8_I0qzDitrh{RfR+_;S%l^Mpb0}IMHaz*ecbsO!E=twK{hd5e}arKep3>R z3oGGnu6(yE9&o%>TSD~PMlCx=%GeQC>GlY1)!sY`-s2YhxIe0FQ^v)5UlQU%xa$QKfO7xv$!ONs*K6zUX8ugS83 zN>B2$l4O{Q-9DkftY0(;XiIgrIihfXhUN;jT>2A3RmfV|NU(Zm|6Iy7Tn-re2?1_E zK^HKB0k}@*T-jb%Vz7_Xd0ZJ*87MK6!-<&UoLi^kOSffycRg%?mIg z9_pB1S$Jb*rQv@6ZI9d)TkU(Z#O9;N(NJZ#Kuqe^Wev`+N^eeknw2>3fHwxBn9%Rr z3V8~}IS74Gi9vT>NWZ&Qjw@@dl>C>9c7?U&gVVAe-K?K~c3oKe7W)G*=vL^vEe14y z(H+FLjtbe8>|mQmmWXgMav3Nsr&^R-WU|}o8;raHm%&9K30>8vL9Gg6PwJ~_s&*gA zHgMT9wBne?$HPzyRnB2%gO&5PE(?-AfJ4I41yznrHK3pk)928>CApvFVk>@bK||H! zEcR|fP0H0#V11@`65RuAYMeI5Qtr7u=zDl&`njl-xP^WQ;HXiU0Wq z;e*Uji<(LW%dvK7G&dR8^mEC)S6idc#+YiN&H|vx?)sTj3q+mT^xf%anuzqMJ6fb1 z9QAbnInw>#S3g7lN4Gs1n!z;JYm6z`?eDCte47ar`ary)A6qzqHiy|Wh4=@44|3tN zZf+W0+=-Te%6d|aQgmA3RsLxGe~ne5Mhss#Mvgh_s+L&!0k0}sQsdrY#K76~yIo%a zhUziK4SJK0eGTG{>!XrV%iB5B|Bkp)?LEMArRSOJ zXfao2)GaL9N(uZrFF9Oe7(h4N?)*@xr_G zkrt=1Yj5$m6{`1r4Q^H%AL}Te_r^zq52#Xd9v$PtR=c~ zIGV5ScE{BsRYOID{jr&1@I;1sF5nJ~1F!($``n3R1N7>DliLJ-i=1lQd;4(t{jL%8 z?O15kEygHTPrHLhuPl`}X6_H1-StrFC-6&@{>wstTwl-$Z+i5cQ>r8RBaSxzU%Tut z%SJ9>DLJhQ{4502lsi&QytJ71tc%$!3ak{qh++=CIJy{H*pb@o`Vfu=4yC9~Y<9k^G(Ydm};T zPQ-V&FViJbUVx#f7*B+7Q}|>tLTm?CJRkAk(A`~+44oPY#!*4_i)!l6I; zPQb0JVfZ#^{jaJks*?KJmiaf9&#o2;ntW7$V3WW+Qxnj2EOLi;t3xTI?+@#7`z|~D zZg4>@s_my%07$(h9a)w>{V#Y7N5cZnbdYfXn z9An3^>SgM;#4{4LAC7B{^N$)0{Q=q=9Z>@ZCC5tnQ^Nxd5 zR+~*;?6Yr28)pxXWNKcP_UO*JnEh+#dliD@IK6miw=duVCg~l4fyEH1a@PZpt8(jFfg%;BUg&tugsv z&X!9FwD)N^arb5St{89^rzQ{k%K(#f+50(z;t%&U~|29@T};$ zPH7Tu?vV+aT%IVe=pafZ ztGd!d)d&n4`KB_EyD*w$&||(V(GK;RVK%&}9WY+LH=D*tERb7)ex9k0*l(}?LMUr^ z9+yjlAlbME29Q1levCs14Xdc9e;teTD=xI7Bw@?3vhY2%!k~{r9)znUx`iaWoHsv$ z;=KzW7nT;(1zt72VoL~W8WZ-5?&1P>zi}_Q8z9J#*F&D>(A6qloN-z*n!y@mm%dAr z^HYeSdXpl}rDq^i^X4tko|CSW5W_g=_jhm^(TEl#??C-6KR>-1@Ji|!y<{8}0SC;s zlDB{s!$2N;=otIuI>68SY3772K-@c4k)KPTD_aDgN9uV>?q^T7KUhCL)iq=J~;vyb@W^dG(7+hLrxE|vp z$h(y;f18JHIgvfOLnJiT7hx!vD%Dc&vrKhQPEF$$ID`}U_EOS}IrFULJlI?+3E>pG zg38aJv-u>H^wYuVSVFnu(+5cv9cF6dPAZtlopN12*d2|W?YfXIalE&D3p5tY!D2&Z z)!pks_3y*LY*!ZuLA@hQ+|Oyl-UNGDmWIYsGBjv}*}@8vtmP-)SqgZ1A6J?%$4nLw zo=-)e664S`ikGl^I0FyJ_t95|Qv0$awa{o#O zaB~~z10?6ZJ2^S!TLhgD1?zzM!mWL+ylAAt%D{M-v(3*<7EJ>UHa)nt4rPHm``9WE^dT5;UV)-CjO5ph&x}hN7D4l3S3slitnM zHKI%AXbsx2HCB)hJE zN!k0o?2%3jeQ_I}YOl$u%W(dih5TJ;{xnl&&u)54tN7y#lXrL-R!B;owRp52$l}BP ziXpyKS5~%JrP|r}t*Lg1*$rd7WY*J)Kp0+TSk9GKaM544Ugd=>%LA{Ilg+o4*c;Wu zMh@4XB%I*_(Wg*BF!_t+5QJrzZ%RQ6LNDqw(m{Y3I*}!$En)w9no86pyZz#^`_s($ zj&a2CI7#q)0m#hQD!L^Kzd`-{{E_R~71*a%ME@#Nf&*vV71%ODO-k|MO(k+zp3lte zQs{fh&s}4+0lziyp^?xFZx^P*D+d*~KF@L4(j3BPA$+ zHB8~^l-^mQJ_B&gP8gt7YE*@|sPd9q^0HMILXVj_p(+G-bJIHEYkt!Fa_H`(&-i;R zT(Zpiz=11t88FA7O{&QJe2tr^GfrZ$a5zb$MAj0u$J;8|c0`7KM)|5w#Vg+w%3&j$#?>ci&#G*D^Z$d|_{7+S%Syd}5(kH?>El zdYGd&Z?(uGgyICBdOr$O|Khi2lqNTr_=uMO(;b|;8U0y-+t&|b3NBoFq9G^UtaBqG zyiR%N0YaQAC||(pPsOis1A9rd_5_)eiE$E9>(RK6S=iNm&N(%r^`XVA3yTP{R;ag~ zbckp|_uwbUH0m6Q)+|HmES_&lT`=lX(=Ds;;JsCrgp2@|u?N#Cjujf?ZPNysb}{o0 z@54>-=gl8|rwk53)W~iBw@xRXW5SNmGynMszC!e0vcJ7V?IZRDWBY7Q$&|LkdVjJn zFbIevDMa&^2)2_>a;5#?VqciJI8Bp?`AX&G$mzfGx8>X{gld2jrgu@t(9n?0pCyAg zAtd6e?4J0;Yek&wrI9@p^4xd(f7*7M(teKgRcKtn_5CO)@NOh4nwe{kF=G+IY=zKU z%zHPpEbl}@5Y$^riQFMK{N#&QhE(g7hyq)vZRUjAMF{5EF+FG4{%mqsC8t_!Mj$v) z+0_h#3Jkzxm&BnA`xf6AeyDC}ow7FEs%=5Oxt zmA+*J<(mgIad_HkMykV#c6$UejS--i9i$NxdlDCzfoKgc&5tSgR2^PDJYC5~-cvr- zMiUYqS4>WXG#GGf7LM^rRdNs4O+7TB{Q;1`LnijaW_2JxcZXvRl3|FZn6doQ(hNo# zZy|N`gp;r0$~2t~H(w=@)9pBpe)$jwBTIGZ#qB--;^q1GIQ?jcpV=`7GGy1`cWJM# z?#-A9me8)ytdGx+vEXt0t;$nfzdLP8!B3*6Tj!=J{{0XTY9)%-v7c=KIdnFZj0UeA z(zQWZ@u0K@a9VEl;bbxWK-=KE;>2~n@%@Tx-V60QN0kGD|KMN0|}lP$Fv%)~Oz zUiyxS<=AkCfg$chsJCJ$O&n3~f&sy|{U*p4Kws`VP$M`RioS)+|!;A5p-WKk4cW-Ou!iZOt6S*9_s!v9n5RF-&RBd&Q*#qVX< z-W9T6-SHhcB{ODB$X)vF zPP6?88d$ZYDaKB}YVB{q5e8OA`m=S~nn?rybuzW}NuZD__vG)`?`yL2ofAy^^<1`2 zs`2ce+UUSbbzh6Vou8m{#jxT?VNe8m^TrDsOv>gE6(_oK{X3Wwp+rvxj+Yf|75YRm z`$Eb|sMY0NC2M6%tBI3<<}MdTbE!W4Zis~ZCAgnuoazDa4^i1EkM!*VI;b=oy&N$J2UeKy9aAYO;x z{K$?sY{<5dT1wWc6M>}MwO{l0ax_6_5%$J$y)LnLPuCT-C3TU5_kwo(&O#|R4mt?> znGfw&94`@x=V96y^!ZoAMC7RaDCav`ef7+J^~^^9rkf*GBly`l*-7!|4G>Gsm02Ab-)~h6K*-)dHTCRl_Oy7{>S}-v45;N2-#+{t z=P@Q$(agTeIw38h&2st>Pcj!vifgoT9!&HW-j&%NsSb@I!-~%lGx99tv)L{d@l8!e zA2eL+`xs@cd3{H5f;7J;B6JdQiNsO1+;O&=g06hlVDb(2+rtboUimdb#-DgPH@OpZ zpdaw%Jf_=G9-2dS6T9~xpR32bGhxNm+ZPP$fC)WDfj}eAkooJ}S5i(;`8ki_#SYta zUK%%<)06#a-(z6d)Xzh6zmu6z8dkIbjk7Ue$FVSk&tshUMk0<_^kCz5O5CyIrhvWu z!o@=K@|Vd@mooRac1v6)#78Q-h3JA@HLsSNX=!PFUwT***ekc^^vg*naTNIHq{x@RXxQoKhe`}LX#n#GI+8v zD_5y8n=UwV_DghaxTe)Lpa!@~;F*QBycWVDnlh=&{u((mEK!j2i5^#P*5C z^FvKd?%L(w`%941nNJ!Sxn(k!r*l6PUL6}YleK#P#hmWHI2iUxUMFAL`t4n_McQ#b zwRYtdcD)T+Omvy_=kc`OhP4^)2k4^{quJtZ#m2Wetzmei?^pWR%I=_EGbaHB-*%G+ z!qH+4zrf?o753=^#Lhk0KnlsUozn0uIJm_)2&syb&ND?XQT`EG=r|VnV>7|Lz z)I0@{<+$_Ps=-Gs>gcf%Q}-u7rxDKV=d2-JY_<}mrU&V+Ar@{O8!<-kYRd4l>WNQA zshHEC5nhP7GX0E4r+szDgHc^hf$qQQJ3b5lI-1R0{UY`b#sVW3U^v z=y!jTsWleObd41@7)LK6Vy(1A$9A)CwNmKfzv=-jD49r36FqI%bTQOp8^k9ndnY+C z05EQtf};(oC6(CFl^4_)=G(_hNGRQI-MR*3{9eAtVA11r6H{K19{*{d-M0pE-72O) zK3bVkj@#Ljb-@lt{M{_F&nE7VNR8}skB}q=RjOBbT?WIvvCrzhXPg+}grG(I6B(_` zhEE(W@x?W-$CZr!y&f~oT*Abl2XZU4Qn;=g<;!$2dW1=2m7re>dGc^0A3G4O^EH*z z#ks_XFQ+x$cOB}p3@3Gs6`pk#)r>`1h3(^FECgP%)71mfNg<|QuPyOOs~-5U`q`{{ z4?Vuao8JaGrOh?JGpT(P_=@%Nva6uWHAlC8gx)k0T9XT;`jKj4~V9S27(||398Y%PJ^c_9AhNRoz%=gN6&=%FY zuF%6<`qT@hX3jaNiX562OUDnXF$*0o?L-NdL*&P}encq*C(cqnPpV9kv&YK){Cil# znY5@(YkVIe`DcT=;(lpCTHPN39HpcJJ;=?U|9@BG@o9K?*v>Pb+e?tQkZ?P826C;X zwXuyVZxV`aC z+)6gw*#={u^JBe>!A_b~jB1NbzIR`RzDyRrias_Mvpb0?`4?#>+MMmhUq%rl>|MqW z&;UoFz7sMMyHqJd?7UspPbr2{#6Q1e-%n+!EViw`n~{9s!vzN5oY=cb%MK=M;sBa& zN}b03_ukRw4*pWig`FhMDn5~)6Ib4M6!gTuoH&f{hLoq*%}XcYMYa2^fgAavf|-XO*At@;VT6+VHLD5o@5SYU#;B5&ge zZ*FqH^S#O6GT|een$KzP%>;6%HClTnq8izGfWrLg<#&KUMoHzs&Cgraq?w00k zKTm9L*H|ftK9JXn>VjSr{CA)LnV}dc5{%XQ8NNH71!${p?8!t5V=pmbGYwl8u&Mg< z1aZFCR64{XIapHMoaU}W$a9F+$1DR-C3oA6g|?i8e8vm;+0EnGv{ygwQ4K2xfi|Pb z@0!f3`#wFYyK^+w@ABp5pf|@g0V<=>hH&cqsS3MldXx!3+5QR zq!>Ca8#@p$*`OXDQQ9FZW?r+*!6H$QQ671MITY@Gdqa*~Pw}!;%!!X0Ug?OT{AR;R z_x;+qwkcV!(FPMBu$7eR=RQIEZuWUvqc2@MUOheXJ$aTm_C$`qcZ2M|2bhaYH9-2E z{+=2Ezu|EWio*Xbt*2TTsN1PYs6{SST{Zjt!F9c_6pzMj=G7*hA7+7Wx07ZxQF)); z-p~m%_KZEjYIzJ_&n!(&mw*>8-rSs(Oj2hJ<~u!(JO}a`V#H*m^Q=) z&U4U!XXJ!5iB8}JUx!(TkVyFWb4$=S z7)|I*WL;?aZ7gf`^dK}w`08fR+M$oH0n-c3z}YAZsnaB3v&V9mMSt6#rxaXlAWnrx zw9b(sYMhb~SjZp56pJ<+u3BO)-;=QWLdt=Pq~yjE)(VVpSn}xoN&s^s`seF+{Q5pA zC!6lCdIsIp4%z~9pjFrEp}@8%VTmih>~05Bh|PL#2L*lazIxHtQw7%G&OvsQT^hm} z<1-WWNb_h56fT+xZra*y7(Kps&&OG}&8IdFIdLfdQ|hj3`lX!`qM+RgHB#jJPJqZZ zpk8fc{K>ZZLA=sxc-r|r{KRAyy;$}fDG0uP&(Ogy(LaS1bId-w!1Mh;J4Cb4JUfnh zrtr&`*_s5|0WLCoAoOG1&VZD$uqYZ>?}_wEc;&1_MsJ|e?g{ewcQyn7zBMDJ{J^WEje&KG z;nYR?!}$BOU`hKYjG@NK3L*#=x>zyP0~R$|m1@8X+W>vsr5NFMFLS>|pLZ^Qwt56H9+pe9 zxg@LHQ>AYJn=v5Y`Scex$06oyBFKl|(|DL!k|^vztaqI|X|U9*Fd1pScAW z->yjp8>W}~33SJ#wWKo+^iwf!`oCsQheKQ9g|^4A_?qDxAd zZvUmpRN}r&%_-?ultH*%>;lmTk^I1DVbb)qmiMQ1~n=Mvq#8T?iasCZkv`LuZs)4ih8c4BOKxlX2LM zeiWm_QZ6S+tEjyiK05$8jNj|_i5;oT8^dBRSVM<}TwI$A>oS(#*k>fI)+L->p>i(2 z&2Wnjs^A$scn`&8FMWUFWBy!(K$6YJc;46RGM_5v-uMZx(>4@STw`Ae!>wr)`mjI6 zf`M@}e++oMsAj@ntFC#(k8vE84Pf2vQ78BQy8{5E^(3()^13Ku{(70R!yT}Wa@HL( zgMtK(?}>Nbyf%=r&8$ek^6>m-p)Zg^y8&JYoBzsz)azlkyvpp^re+lW@hvYe@0_zE04(Hs zLwa0lUH8@BqbS24&)+Vb(?BTLx~iwAwOC;H#|QBeEcaB>FIhJ+05lq~le6HLaiv7D zTAty$YUh#u)jGzr`O%H8zSsU_F1`#m;}vrnH&?9BK@=N38?E8c_whih$rY(U#9^Bu zy5(h;#(@ZB!Q0Q`$m6#?$8Ms#E@^(h+3C(wjs|dqfX++Q@V>yf zTscI{Ui!Sycqsw&guDN)LOWjQVR3i&V(ivWDd^~o(7O@>$YA@>!Ti~10=TsW+B7rZ z+%!7iY*Vr0^4?B5J@m@~5Hznl1Z4nxSqr0a&@{kAQChV52-Tbl9q_h{X;ggs`IosT z1LLJ2`@V@rZEI!jFAriUM>ma4P6-lb%7<@I1F%-~{>A{l#JuKJ(fVMur`dj{Oyz$| zHY5UYbmULx_z=Puobx&(%VZididv`))qzw$+d|kV`4( zF{vH-qLE@?9B+biWSrXm(_gD>`3ArV)u*=Whlhr2Q;M(oUbvw1Rb5H`=}x_hwYT5v zxP5&v5B|+ksT355Pab29@QI4TRw2LF?E%yYOu(_<^1%+e_`FS}9agVCF~-Wo zfh$AyRAk1P1$AD^fS>G)wIO;`h#mq*6#_mdvoU5tIFq|HcQb$QhjjViJ^CH33*wZf24TSKTmo3~`1`MqA+n+sB;nkum&G)dcr_ zw)=-o&L&FXwM)@XrgFZM`wj>7NijUH&(Wdd=T&am^vr-BfTJ;-wO}jq2JReFh{aDu z7QIou!sACOHmxwdU-TK>SwWjX3)CxOn_mfo8n|VeDeYxz_P=78$U2C{Lhh>&)!4MS z<7zHb7i^?Fj$m+;BiFzKmTA6y#ad1YO_;yoVREAzzR4By&Eu{%R5s-GVIdk`N8lZ>4VcGwKhkjY}2if zaKkXY!D|;YChfzn7J+%txwU?*ITd&O%1MjvVR+dVE8;RuW+0NiXAbDtG@W`r{^Ey5 zimZC{g8fPQa!=I#v`SFgI<|C|L#W|TiTrKKO;7ojP7T_8bQ6sRz)nzG>alUb za(htgdUQrFxw#d4s$UkyFvRWOcrkgiLf-R~Swsw;!7{Fknh$UF z(_aNJpoPU60J!zdoF3-(Vu8j69re;9Yuos1F_|S*&G}^y+t$b)9sgX{!`Fq2^S>Um>iS?+A@x7NG-E>6Y`nnVWn|;8 z_OPMyzfa*}Lr_cpi5l_!+SSL^;MWKMkbdxr2ZqgP-gYqsf7*I84UIq3GROF95GfML z!tf2x(Po{Q#SLID`COCcT}4Nf@07NC{zRdV0b`9j>nP{#W5I^FZ#`*P9*qx!(sG^E zdWga!d&TuDe3*=@3n=G~F&*E)VeDJIY3v(1!YDScu@w@SA4$=5($Wga%m)YB;39Zw zZ|sEQVSKP6kVS}gI!kcU4ArC!tRixNt{T}mOzF~$d=PMGZ53+=#kSwvMCWUr;{mnn zYisw2-9A1~hAp(E<E<3>FjN){;D>i%+PUe!ns#c%WX|V4R9c|OnVh+%w4S7#l;h&a`#6a3*8Epx6mvrFJ$9h(X#`Ix zr2~A|VtAYNWDAsi*0cL+CV+w64!N8uKFb#yR}tmb#q>kg^M#-tH0&EOE>(=>L9-8V z@&+gF;a}^xE(3Hvc&ZX`LSTjir%;y=kV{Teo1D!*WHdhGKC{_c6N-(&AlEriLm4-1 zxZ8xOMeY4Kz@iti9k%S*P_X6y2LPMe*kdn2nc(SXS-*!3!i429k=$Cv!XZ8->tl;b z*B!%(LB&8tK>6sNl-G%Abvx^?$Ve-XC2>{u=W-FkkT9VLVX`YPY+>9G_J%k0c>o)I z{x;YihErC%C!!(ne*UD|J?^3V?#!K)UUAHq>0kg%(RwN>(L&MlJdN5~jD^cosM15< zbLl2r{3q)#gocoztLMCqaM`I{&e!p4Eakf-#smElV4~x0Mz%$~Pn=?ohkIgFzbU=k z+BdK${`ZX`lO;E@(KF3EpQkYrf=Gx@{i``TqxP zwY^@psC|A(hPd|xgNcPSXm~j&!98k8-+?o;%riBYCOGt;x=uFi9UzKRQfq+5&p>V> zhH3R$j;fy#CT9zjknU`=bVEI_1oCJS+=3+%%tLx!y^53QDfZiqmFUUx^8(&;!f>JX zQziDr{S|ju5-x<{*{68%6g@R9=_5eV;7d;({ zjxYxsJDdc_R-d-uP0qw7zKpfO{%onUG+5`nDXeq(BkXhHc^t)w*xG~iE`0!`Iup?6 z1Dl|BRYV4OHgG=e@me)=EMEAjS6Oh!?y5Ktekv%X#Wt_0)qp}iByrDSk3fp5nT zMDyu#ktpoGn}UO3VXg#g)U*3B9-H3Fgv;|C8Un!l04?H$)u9 zX#wb17np^RYkUx#b^d_^92wtrj0_Gw-I%I5`lJ?%UH>HuG&H3T9qEFM?sGGUOA0Q#8D2=jT3 ze?S)!Z}0lHZNl1hYmndf#rh3UAK+4^G~;Fq0T-q$HoH)%6*FX1YS_~$}T zpj6g(X%zs@0wC#}LX%4&2^4hm4!;6<#>rJEn6*zso^NeihI-cMlesuCJnWs8-_NYs zSQ{%Hi3p9jmM^tFF+E|hBv^F5*UtffBXR|>$jsO0to+~M6XZ_5uM)>PFt^*BT^8j# zeCH@xLwfsk*^`$6cKpP2wj-U$J|i{IW@{PuDAVDih$k%-NZW;5Ib&2lFq%L zz?1XiGelr)!t8h)N6@jm%;{g>X>TMzA|6?ShU`=1#GC zrkD~i^4Iqmm!#Q`{g0T_(QE9~mfNqi z!J>Y3=c)1@7{na>8hlNO>i{AjX;+R_e|MChRR2o<#1TaNX{I;Qs#{0b|K(0GixE3>_X`x)~7x(2vkpy>Ayl@+%JG_l}-Kk=rXBz~<@@geVc<+mZ{ z!%R~5z#n&2&2do&wK3K6;&K{ZcOttwUcMW8vcE}sdOV>hc+sO?z~?ov3{5D^#g!-= zU$n7ld}r1hs)t&s`Cig~#irL^4}F8o92EVWA+O1#{gGW`NAWwW-eMyD!=Oy0bO`NR z<5oOG>_bw@^#@y@i=z%ND<$dVQ%iR%k2PZde%AZN;LV@E*0yR>Dv>sH78J*m*z7*HuMJ&S`?^N?fCCH z2u7CUlmMNN4A_$XVeN&G1oFoQ7r1n2A4M{3mwmhtqI#hry-Lv`wMwyxOA_KMn-Cc) z0ioQa&iGt)KRfBV%55)*3i8c9c`+3fr*#1kS4@HKdTIb9PH7KxE>^XwA-%WRbxZx? z6`%ys4J#CR&8&Z~qBH_jyWS7FoB7ml zva~kXy$_wRklsCz+em-^)|4uG`EGFO={m_GfC+RI@Z%ifR$x&uGcywh)0t@TgBn6A zEmhq>blhOQcNP`SY1ARt31ggUTY!$qbh-PE992uyO@Pmrv2mH&q+q2FRouJl}{ajkmgat+gOuTfM7mzEoSrU;Bid3PSxo}R4-k#d8^ zMJ?-J|J5~;u*aej0uMVa3WH{XDTif%!E>8Jrd3-t>G0Y^L*236%Ali4lOy74r8HgZ z@6+?qFQI`{dp9G02An62nq_vwAC|h6+=r_l$~)l5QvHAJFU?j+^Q8dIuEGJYeQ z_>>dQ`BBgd^lQ&-1Vr8Tsq+d8h|$Eg{YK|uzi3*?Sf50j(&%j(kwb*vH>JQS0I~wI z#QPU9SugXbeIB@N^}3Ba;;St6-CWFeWor)}Fm}aQnt?X0;!%+QxL42%cqk_MK}o91 z71~DUKMRw2+ZQCRj(R+PS{T>S$cbCvdET}5E%v=1DEoxkQjTd@$oKCinI+_qx#unf zEyaO6ESLB_qX%vqzU_rJs}?>!;mB-PDXg$Gzr7U2d2+l$lPm}5HL?prTyjywTL-lA zk$fP^5d85s0_YLW4ZFOGhxKy z!4BdH2=3GqMXdJKe&~;cs_lakvdzLpbOkUG{Zg3y8PMR|?5JP9+9%pOabNs)o&sqF zIP)@<4Y`q9m+Rt83^{gqoGe~RrSeXmge43#c08J%-%TTdCk@OKVW*&Ne^IpDu~akL z@ZdCU{fnQc*)?I+&?mC_(EDU-A0}$&n}sThx2y$6N2Bcjt{0MIrmp+2XQ*8 z4=8Uwt*+e*%KMcq%8-zRUmJp@7z2zo`U?A{(=3V_(I=wIg#i*d&c5lPKvOVP)Djq~ zCYsQGei-d!YlB$5<|$=gyk`_yc2?nS|4Dg%nrlWX3UX1IGPhTO(r6X1N2dKDB^8ea z;8aRI>%HNfU2J@8m_TA){~~B4a%Kh&05%IPmGHuD2BB@muJfnkyxMs}&>u zG;~Q5LU55e-0W$Zh*m(RWytrP2!gVv6d-hnEhr(`3JX;H(tE~?Q!AE(0M@n1V%HhFYv6SJ2Oo2Y!E}L%i8PE z&r!z3vMUo_+aFnX#)dgRR#(2MaQC8FDTR+=%69I4Dp)()PFV8V$kohQiB@P)-Et?` zEj6vlqwcy!?e}$BWIQ{L z$dzXTR|ozgWqJ1Y^$jtE`F{rZ)`ObOpBj0K*uo4dc{;AGT_EX^CRS}8BL|8s9#*+6 z1>}29L`oDLfD^?osj;Ra_ig%sO&oPM0!Ok9eFk*6c4s0pZEF`O)w=s5qUHBLvJjO# zy%QJ0i3vvqOC9piv&{itUdV!;0Zs6X-vVjNXNfYx zuSS+$5-+Nd1Ir!lx-#tZ{2AH>L`{HZpPA=Ex+ztYe7qMcJzvB&v6L5PEEw(qvV&HW z{Fgdii{n1r>DT>pS8o|Rj$M3?j5o7Fe#6*W0VrNMcUqp*^)Wn2gS$@n5brdSF?K>n zzzx^%3y22{L7M^<4@K&ohP{6HV8YO!p;&kbgN`7Jv22~(Rw*4>ni!Qyx+MMkmmfQ4 z(3RLsE~OuIr@}vWhCZYR)jnk*jyGm^Qz?rq?tTcrI>|pRACyT`p}Idb7Z}_g+vlJObP#6gFyc!){KDc@GzKxYX2w6+jRQ9Ax&tmikn4 zVd~gX=HA3~s%VQ<-g~znoJcs+GHr1DheD)Np|zbY8}EjW*_w8VWx6+3ORDA5kKu*yhS>!h3|ZW9(8HRO7u?g&n!;QZ4!QhNSMW;i{W zA~w$28gez@94sj`wC;TM6<(pJ6WFrf4GeRmg3J4;}IIVeogW359>j@K959*f48^UKMK@;NFodTGNxp^S9bvwM=w@pR0cH zy_gSEvD72yxxIgoRF~?JP|FJt1On9N>XU<{DkK$qd+t-f9^BR3zm!L)&ZOli)e<>< z#>Qnd*2XbHMRTn~pByjsmJ>SjtU+(rJ}j%Rx|1!eL9^r0(-f_$;u7xnPVLE} zG$+(Y0vTc+sI-DjEOpu9ZlQS5bqz2n3CJ+{gR@H2`r7!n`o0s1W-@lo<(;aiqXUW@ z_5~Us!ot0Rw1&%Y@nTdhOo=f%)0@Y4FMKk-4q}RQ$g;jZ(-GhVKM(!b4Jg4s!%Tc0 z5-EDHYdrG+2r2R~*P30eK%x3;-U%tq?#iZW&9Yq?J;Z;8iZ)XP1PAD`qp!)5cDgr5 zu2t)-_O0Tn)oS&Z#aPk;R|5dt3X=vp$QW4;C`q#$e4m?Q8SoM3*SNpOGlNNK02IVw zpall9#myGOb4KdT@oU`69jXzrPQt9kDnO&f@(e32D&A_XBr&qjJQBa<0AhAn^+1>1 zlLfSI!OO?KsXB09clZogb- zsf}qgKSjAt%$+$ar4PdF5fa6Kf*WU7Uz$8FGa?gv1mRc>{@BL;Jhv>`TLSpy_AdYH#8GDr|=M=9^O+5j@{GW4`#H8l1U%-E$md zU7EOwvR*753#`p5&y>@B5D>3cr@3^14xYi5vzUB%(m?!sS=XO5#9IZrzgUP2Mad4F z6S3k&6jzV%yU{lb7aSH&IgDhKxN7h9T%p-crYLuKHPCpF=za?7gp%~-spSUSYMD&v z^*i+8(HBR(J$8X2(HVc(Ka}b?HY4TN+pBoBmAoWxqy`;m3kcUUgrlLRltuZ;g9## zzu}E)yz-a&s?gc7b>d60191kIj1(Md+ZPhgPu~7T$_Mm3iO`q$7}&eDe&;h~Y4Fz+ zE#nu_%UNs_b2VJNJ)~2U=g88`1L}RUpRWvTjGSS*zN>S1@|1TKka4*J8qYF|fq1ps zxNg*l&-ceOe{l}j&O$!+7z2Yf2a~A{7-F}_%+BG`*(h3e8A7XSUbeUMM2UE4~*Q;n3 zn1b(E(xwp^wzzq$XQ$hG`1;YygX(MwP(KAI^xy2(Mk7-A`?Y>?-9ffyf$oH3VIbf` z3V#JsEoF;GucW+^T9C;y3JNAaMpY)FB(^zu!~=UVyItF9f=TP11#sXlYFm zE#lz|1l=qqWUG_$XmT>ADX|YE9}hJpV>rW%wo) zC-u|5B$8a($+Bnj_`M#7l%w2Is3}1Q4V*u9eyW55IF8Lta=ySRwHUEKDj4ZbC~#66 zR(Q6%>Ohgu%l7ZlgOUq#epR-ez9{IQ)9NvP-bsr6>jz;o+;yXg`}&U8q+S%fnbGxS z?5eU-+|BUavvKd3q;L9ZKcv7a`wW}abVgzPQ+G(@@yw0AAoAbOtN8T<>YNU>$c!hf z5g!H+{nuulILSxo04eLj^C_ezZskayTV$?21Q)F z`90WpB-d+4P@rym+KtcKquvAXC4-ylu8$YTq7SwOOXk6N0eXcbyZ5G(v0>>bTEk6j zQsFKjA~Ot&A2+N5!C#QtC7C^Hlok!sJ(LqZDC3Bc(j4Uz_pKR#M`GSnIXv3T!t({C zf$eAVCj3VL;=}rg-?vID+$fyjNR&i@Le25`Y@O6tphNNwO>F7lpSOI#?)^AhJ6Sy9 zl7iFHp|58xs?g{~6)RFY$)yj!+H8|und?fixlrfY8{fnbnY#PtSoCX>7g#vfe6tFk z_#nP^n!WX+WjW79*@6+j!TjXS=T%n5&ZQggoi&4YDRb3l*G<-UeBE2ahFA@reL99$ zyDSE&^JOP{_M?xNt66y^s{gDR1^xVJ5JAf#=XPLQcRb;eD!!#)PW}09Fy>&~ZN}B4 z%CKx%Zoc-qS?>aIo94+=oY}>d>wpFiGwX&2AjC2tVz(6xja#Nd9ZH?=RAX zA}tl=*j;lPW4YsFFK1g94<4-QSGUFuE5nN{$jJ|al4=Ix2O6vwrI$n1f}=0)$sMX` z0kt_a%IhNY8_>q1*Ej0z!AOng4)Q|@yzE8yLU^~skSCQQDnL`HIsNwKg6D7D7LH6G z^l!z8l*k3PqU} zWea0N^%+jx=P*G;and5-s#{TARxQW5xZq2&<2Ax+ng_lU8wj7$>%W#E@y<#blw-x5?A1wZ zLKt-7al>$g^X=X~nPsnDaz80x9hH6x0y@mIcI+B`Dsl96(hDPd>HccV0Y2Xu*`ozD zevWe(8PNTta7)ek8yd-?EwhwVaO|g;x-~y!HN&29#>b-rrZ&`@`+UXRtXtss8*4E% z-hJF(r882Nm*lm8JFT_Vjek+XKG`6h)`r^ygcgA>@UpA^CB;pw^tM0n< zCbRjO)H{zKJ=*TPfy?^SpAsz_ho73OqWZU^M8SBunW_G3L5GN*GQ6v=d&3KtM#|Wz z!*sAL(IKZ~cEL>QxL>Dh70uW?^|OfTpBY?Ig~Cn0)cMSY5kusP9}aXaetg^O#9bpTf?EaqSXg?2Xwj4H~fA3TacWOw| zR`BxWU)5>wSGsy$-oJ~>0c`)(2SErR`tSb>uKKUb{`apF@PGdRy#EXLC)|K20Ilq9 z@6XamI;v%yLv93k?MvekL;|!ulEhc+;h(_Vk(Gd+gC>&$Qi)C11xUZAB_M-GQ zyeaE!f5b}I@8KjEK#pgPkxWF%AGjQFcZqsm--2rXDPjy_cWE$-hEP43`)(D#f~Kl^ z#($auu*~Oo=7)Hy0UML*WsJ=6hK@>PIEsmHUdGupH*c?HNy~mFionu|YI?UO_X{Ka zwPc8yps~s6avhIXP-HpEI)KtBiw9<77umdj< zLz$Y|kG^2%;16Okd8ra3Yb6#OBdyIo;@kk}t0MBH7DCom2L`h*=Xak(Of+Y;hh2!^Gw$HT@3b}_K1ObiaJRLBRbW!uoy;j_2r(tusn-nlH}5Z z9Z&;BHD;AeDI64djb5#e`;*}ewn|zHxlm&qp*13PR+-T(0-e;y{|GWcuKJZjIhK@> zT@`18VDG?EMc(4O?59KMf5ua!Ed?5~+Jyjco{Ryrt7%BDzu74no#36G6IgIj$}_?X zjfGi+I@4E%-fL~}aW7ue?8#cGQN=s6Zj=xh>0RrP>leD*d}tPDrnMFD=$jZQKfwv{jouHEPkTKtATORS}2u5JO92=Hi4!9i~mJT;@XL zVVxm5vV(o4TTd?8*-E>aMD*L&IsFMkyIJ*ry0aw)RH`qWZlo*^Tl&l4RNts0=eb$Im==X;}RB1(=N+N_c>= zJQ#aDacz|igEHMWt=_&cw%}lzZCusmeo)-E?MN!fr-WfWL35Heo!bw#IBl4PJqV|a zd4ngtbQ$$w?khL>9^4;&?PGnbfz`fBNG}{o4>QlI8n2)veQC4tYBQ8 zg-8~6uw^HSkQj)jT|!G-^@|+_aOZ?FcKk)lO&jw`BaZt#gtq&0)CM>XyTf;ns-w4sLI@31mg1;Q!6bjqDJHDkKi_+?n0;T7mxN|QxR1#iKa!|Ttbx&O-di0Q|0 z4w#4VIEJ-1vd7^&!dHdhN)Q6>ZLR}~7w%<;-s+Jol#BByLd1i!OE^)sQ04iuMEFf9!s!MezyS$(^QMXL7ZsVol@F zMQ>6p%Pqb4!uw+e&g&%qGMSwmey}Uts;jizEqN;IT2&0)F`729*GiJBQ<1dq$uh@4)tc>fRQ_2Jm;D|-D4O!;VJO2@ zsQ=?|frGmpa^+v+{9pLrTzv?=;@+oB+nv!EaEK_Q=CddFsF&I==JFD<3Z`>~XV2}0 zee1?2ji~>#P^_~_B@^=BD!t^;;0r2XQ#rl&YX%-`=c$ zy2GAKCzX6b*X86?%-^Ok=*(q5qV<`1IB|&4k>|X|D*QR6o((OaB$*(pr$Snu_Tpmm zAFcTIolT(Mx1}!mC#0gUclU;sX$*gM;$Wm<#%adx3_T;%bny|DVZDe?8_SPJmFb7g zt6PwAvd@A4sjhMZMoNa5Jf7>Sot*#W6Zq`oXZFkXtLu=%-p?b~_Tf%8&$}MFG>M`U zVMZQ9xm&14ku&qzhUVTqR$Xo{c8+#0;DAu-lY~4KyycU|*kHit%z-1AQ+3ur6V+A% zr>loWmyP%sNnqqLU^C56cOGoya_)%e4z><|Lo6W+*F>N9f1R;uOBGyLq&BIg$G7hu zR@{q27K*VLqPhtqSNs34J$mk68zs9hsT*Vasz0wTxOb-E)Ly8|5Z^yml&;=`Txi^u zNJiKRtrwo)$r=v1V!`+9ozTsWEx`Su7q3?PgZ+`_Sz&ScRAMFfdeLc=S2T+^xBIXYK-hb9y)|g7m(N+rs6}snw{#1wp}GAB7DOzmy!^@jMHRH7~1NN zZ~~S}TW&*ygLL4eyz?fb6=#?728)v_t7Gp@OVzm`P8Vg#pA6=i{5j!Ts=x!-DZxuR zC28v|>G##))cp~aNF0#vspq!4+Bvw)$kSI~@jLSbBje$X`ia#rwJPy=KDVZ>4u4PR z)7Gfu!f+p*0y*<>dEZ0pSgHHvf>MuIXz#>%;Hp1{L$l<4M5ar;{z7j+^g&ww9-_Jk z`Wx%LW7Ot@zA8cdz(->@YW$!)WSNwwj`2JJl%|suc%@yo4%#-TU>$#uNIFe}MS6ep z`9_+%QRPYyoDWoBA(e25C@Zmm*TOQngFC6)-90k3h7&26)~qmJe5YG>dt|4PRlQ?I z8>Ab(;cBJmVwl4E!zqK>(UMXJLCl!568*W1q(J?Xa0=1== zj_4fm48Ktc^ln@8F5B^i>`XAU&7r8hYyfxqm68|bN`gL@ZCo-e@Su=r99IH^Og3lc0kzV;CbPG_Gcdd$$( zhx#PSkkVHrO7dU!i>)FlD9*iVZqZRP=Fng%TQY_YT)SIGEOsm^To<})xAlActxF)P zyMz4?aRT8CV*D+qT<1;*Cvf}4`j;~C`K@hFft?DSLkmuKD`VMrX`e#9a7DJCQfOl% z!VvY)0W&g3eYPuh^?Db0IDROo*^)cGw+?{-NgE6&tHP>5lCbiK+Gm+1r)g0I?m5&w&>@Mr!(P=;`d+u43b zShU=qbFud^6dN7%4DZHAG) z8jnsC?m2Tf{%Na>d4eRX&Kv$7<^sY!u`V70&MSe(Ou~kqtbB#v$_PXTsI9UaqQ3iP z7r&tn5e?jrTqsTYF*J)WF4<{g`;2|<7O6)|5KA5B8dCARXdiEy0t;vAlH`X1m;GR~ zXMIn@T2OBc|5*@0s?;XcdFTDHBl_Wz&EaZ>8(AF6&MHi(gD-Y2rK5N7=2qq)R;1w# z80caZWudmTz}fQe(kTrDT-j5M`NF!f?wl+RYcRNZjnjU~fOm`b1FGfS!qJ{ZGiy4X zlMTnUtA1LqOeL0^M~vQh&vqU5(r!#EXNKAY*Kha9!5ht< z&NY{;yoh}}_~bi>GV4VQttOJ`a!_98@mL?j6!fmGs7GX>Fhgsbx3{UyCuI4w*UJko z>m8zIiF@4?KA9fY{IhTRiVKB!=mQ*UBdV70_&1v>HDDZEP z|5uE(&_cFaJ8!J=Zzs$J-0)%$_kr$Fu)=SDs8&#YdVb(tJegYBd-q?-a|w(@6Z!DA8ffCE z7i3ph5p(#le-g9hLY4D7to`wwTu5n|80lLK%TX7R#_P(a%piRq?czdGuoEfN0!b5j zPCB*Qti+CIpqqfJE3r|RC&nIRNfX43$F|2IwQ1*NnRBPkwgy?NBqh{ONn_lPiQqP9 zXBK-dfO|T2*uI=TJ9&P;P`DxbfDrd2S6XwIc z*(?(mCEaIPl=}Ju+!$}RoZd)!HCY^Xv-LYZE7>iInZYc60UNNt*${ZjHc|L~>Yj;1 ze}EUGf_U>IOHp|jR;Bng_6HSi2Y)z}uVDv!SY0x(Nfp74D?dwneT?mLFJyO8;|8#> z#)yqSio0BWgtP~rYFT~$$G)dsq8c@TzxNU3=72V|cm>g!wde7J#&={zD_kW3*o_up z#7`QI2zhTBUIa(ACZs3YP}Dz6qMzZ-HcNxec$l<7lUJe+BpczcdP{_r(1A_3Ie6Zh zzJ4=&^=9vY7-+o^DIKanpII%!?e+fE*?R0xbgJet_Ya>!ZN(e+4j`7j4R5jH1Lrvy zVeQql?~x#G)?IUmzrSTCeNxX z_LJ9-W%#qr6%nZbS<`lnlYuCj2ScmqM#FVAK9^0i2X(7huAdhu9BV?MmIr&Bz)o-Ewzut-KdPbTCGU2 zb**l$WYVtj8OK7(zs-LQuU{-?NtPG0y2);L5HnqK^TvKkcQDk1Sw|S;cJ1Ous8w;` z+K{k6pdzR(j_Ygj=Yb2yE0IcGu;xpJpq5%I$O?Ro438Mad(A8UZ5~_B4q}b|W?w<$6 z74A~hl%r;-8xqP8m(;rCq_u(VjSrBnQu24X9iexXGmlLID9GK*dQdkeglA5PUoBkp zE-n35N!v{2P*Ats(NoI@wNS`BJ3=uX@JgG?q*gT4bEN;<%D-?!eh$C2%|i0?V-IdY zCLSv{k5}A0H8!PTueeQ~OdgevkbR4+zq$~MvhHbqcoWz>8pSCJgot89Sx>-iVQtik zKF-~P-;q8&LU>fl5{Dvx-^gi)^DU${GHp&~B@17>$3S8|^9GR;39CoB#yfE=FO4bP zgNSms+TBe{;1fqJEkKPDWzyqHO?+T25w92URxVRa<2bu!u|-q=a@wz(At6b&5k1u_ z=PyQj;C32m0^S^GJ0+KF=-KUo3doKQbSFN7VlbX%A{@|7y&&p=ipd`x`h* zd`TcAi-k0z&{6))_O(l|I-^0daWscf*m!Caf90rRW)iCs0yW=HhG5&l9MrA<(kui%o1gje~Paq(F_8w?|}_-(k?^ix~J)ei^T2TtY={oheJ z1YCAPTkZDAf8abNnRE4siVq%oxTos&#mgVbqaD{x|CMDE3%E;pmji8nr>Sft7uC4z zwf4*t??I`iW|kiQ1{W1Uy8GL~l2MwRJNHle`3hpcru1yAB&q(JQqXA0t*^OGUk1~M zs$W2V@FQZg?0J5pZj_?|FG|FbXN>C(w$peFJTGcQ(l46RxYic(-qIbTV4OTJ@aRd* z;MetonDLL9h@ZWFX1^ze1b_LijfVx79}Zc##n&IMW7y8sDTh2`@z0acZhwZbAeOacrZ;T@6ec5qO1q<82c)b@mzW$`9+ zMCmK{44T1;^-8$m8tCoh`_09R*r-mdHO?Vt6?nzP)~|fHPlpc_BVvV3Y3h9TXQVeQ zs@-i08CD8;#LJcjpqu0mHHuw591xvEaI``nSDi}q<;dzmH_QHLVPPY8IL&gJz*3I{ z;wP$SRUAAtm^DjE)jf|K)=0-xcsm5^b@(MFh~-4zG6R1JFed0;q3^N z`f@TPS zbkmp@dze_YcD*yvT~50MubasBZpuwfZm>LEo?2Q~F~H=Q@39!0PS?;;Q~mP{M^Z&M z52E{cj6S-{-Zx9Y`~w0w?c7UCSf7Y)R@M>bT8jP|fYT?R8|xrvzOyUf19VNlgE&&j z=Zbo}DGJR&lxLgc1O+@Y4TGqSS_KR>lJ$zcU_z${NSD0yVVa>_!<<>(XzpQ^{l=z{ zoq`qr!yV^#p*I@y_z`v=$A`gz%T|7(vViJA%E z9;{s%SG*j^~_% z$b`}jj_Dq<0>oTP_$@=*Xs=i$Dq+o`Czs8e^_;b94{7t%3pI}2gL>><6zI?oY>p`u zyce?H7a>WK%~|kDhy{7zo1_qu)932X23=3lZ|!n_39J7SQg><4?cDCji8`8NndU)G zPgvt3l?nde4=nLc&;#koC`XgXqo3aE81TR%qFu1M4B|gdo4}~=$D_N_{_rNp_ zTcgf`j^_xg@K^-<(bB2hz83CKJDK7{JZY!CxGIDIM*Dg88`+sO zBbbp1<%dp#+_r~IXaqBfJzV>3mdPAHTQ^aMtSUZpWT783F{%g1DUkWlUK?C3W8|U6 zbly+Uf#9Uz0aENw-O=tbOZQkC68IQ$!*o$!ff)QH8|sF7Ed@4}!pP+Klt{o2Wu6IB zgSTkO$BYU)_ZUoPC>qRU@!?lc^^ZE*qn8)GJReiEsu)(MlNBjJ2_%iP6oRr_n!92T zATA0^Y;HCf7BaR*SOzxG7Tc!GHBpb+eg!FvGHLCK2>0klCD%>+`>Q~J42^uL@ewvf zYEYKi!|ySDe~kRtZ0t(lKN;vP$jmh;qw)o~6HFI+n~Z!$b#0xyY-w=&0liWvk49gU zTfYG;X6>wt;1;dw(Y8K44q4AROqeLzl&o!|>3(>H^;%}Mpbu5u=ff4>JewXJ2al+lQNVw1+0lS&%4UC}n!bf&i@59Kp_eAF$mv;Qg0ZV^c< z+TV`mSsbz2+DmcjWX<{4OO*|nS;ZY9e)68?vl%x14=1TYP9p+$LF9ZPOC33$yMq;4M4t<-Nulq00 zec5m0ZK8dhgg5YrV}PF>Ow2XiaR(H|m{DT)j4`pgayePw{+6-(8W`!Lw^hr}T?NY> zwcU@+(HLM9keh-Er_p=M9dhfN9D2lVAA`4t)eHwG2Z5GG6PqzB1Xl$&$;byXR4e+5&pf>tUDb^OM zna3)>HoF@1iAO5U1F+|UiOJudyRTz+rYXq&iqiK0b%uM9=$X<=ROAMym>OeIf_npK zLju5F2TK9LFyx#>hs%l${a9xyXvQnK)~+|3SU7$NKqAgBb8(e;Vnf+R;NrAroqe{s zbgc-McD)ux|M7SYWI{%|1n)MVXlegjudXWdtnkk)6M6ZK>uW9f77Lt~?P?LuE5zd7 z)}RtCr#?|Mw)nHOBt_Q^ltnF6W`&P^y`EEZVqAkscE5}06`1rfU4!b;($bFJ&g;FE zS8~@+G3TURW&r7lKtIwzKS&@1{KM~~2vpDHj)@7Q3HU0gH}O}z;phMG+}X2d$u93i z)|scuB@A3RwzgQ3kKX(y>VmFu$rF3IJ}oLCxuWeE zo@bWcN;Y|Ym6a1eXCl;j${sd4%eT|bTvO97&~B5|$R-rLgCv{R5f0Vro;l;X(BY(x z$H@uLrxSn3v9!CB=uy@~AdV+bII>C_OF(84@CG@)!S1K(rF_36#R<>xS`BQzsXN$; zvv(SSX;Vn96rYtbl}w&;J>l3otykIR69AoVkEQdcS4m`7&LNqVB9aWlth)TE1ddwmOXF&v!`<+9DfA zUVYw$K%eI$UcUb7nR@fDa)>wD&ql_y7|QwU9^HnVgg{7kdml*SA8#jFbk7}d(=P1t z{(5gcNLTP91kZGjK?PctFG<_6?$g_QzsCACeJ&=LN`2GRaIJ|IHss^sW*g z#_xaO8pDR5VI=5T8eM&FzHdI^H~{khzy3!?p#Gkhi=p8i9CfRG|E>k*0(wB+@_=_{ zq_HO1c*9f16t}piH$tO5C{e%XjhlKz>3-nN*iOVM@EN-n)#B;jRrdN8~F=c zQK_sDNd32yqeJJ+#rf)MA|Xj#vtAl`PH9I6MNjWSjGuT(5BeZB1|B=rJTpD+d2yIa z)xbP-;DA{Ocah5*t*jfBuQL>0wtTV9ojfIjM1o;i(S{s(=UJUQRp%85Npke?^&Gw` z_tDnqvpLN?R>wu|-9p_%O!kaM_)5Qr&U|&a>oCDJH*h}%zO|?8awv)EsZ^~R)}@}_ z`8fSH^Be1#Hiy2M*8=OQPvy-a+T}xVVS#)F=32t1zaPEroD$(3FDoOAb)=Iy#jYng@r|^FAS3UPHI$F2ZI0(#?en4a7wT|*Tc+M! zI%-=RRB;4D$g)H`(}~q&@&@N((n-wFE`_0_kp$$}*R$d>p~kcBzKc)6WYXbS3QL~w zvQp<9@-SKc;|eJRGD>!0bvee|_!PUnx#uC*kH<_0Ur3);HjJDhao>rDRM)ZT+3P}T z#mRQs^J)DQ3>_6h#Nu*Xk8=VL;@y>nt>xQ0Wx5!&$TH8LW3LK1`T!<%xK0~VYiwFN z;M)YbsAH?$896s4TD3R4qf0g#G<&QiC^7O~WZ~MLHjkv?poT3OPR2G0$2|Rtt9xX3 zkGQt%AV!;~9N{N@${H7P_YZ*mZnTk3F@9j(K?l|csUuw42cZJd#`-*Ru|=;g_ZEh@ z4uv;usU~1dU-SgdO{waKXe_%Vp<~6`5SW9(Vswb%DlmzoWCy0w`*{1DWc!Xcb9?tj za+&HDrQuCh6T3RRjFv9Boy*vkG5oWn;@I^}swmb|ibcL)@NmpvMatvy77V2EDEiyb#dQr?Pfw))5nn`E2)6 z)Cwq>BA8XU-^Or+6OyL;w7v>3FfdpfNTd0j`}Odov@X$lDDz@BO>hQvaE3++U(5CX ze?X=`zkJegh?{91SE}dXYPkHX5;YI}9HF#Fl;1oB6by3W_+u-AjkO|;wUD6x?;h)F7UhY%Kue(+1 zeDaaCi9JYZ7+v)aeNoo7hx&}g58kf2hc>e-i4%jokC$JkVRU>ij#Bpd%@9e-SQ;0_ zDdZByj^7CH?<&fmOyN9UgazSq%XuNZN<*Vz+-_-8Je2}vBXu#dyswK-^>XjqPf^nw zFO-*>Ie(?ed-5x_Do%5=@VHFF9ZvKyaW9;JOQq&;`?P0yyw4v3*owYd`S!& zStal8UqV{Es~2A@EJ|lRt{gllrKuNyKNf3Hwhqf*yc|>fz-v_=?BjYtoR7@_5x>iL zjMLB_&|4X@gL5q*uIuBi8zJy)1#sZF_-b4)!+N14nT)vo!yiL4=lI`hC;P7m>U$$c zOja<+i`9S!+uyiL$Pw3Hf(RBPkC*D;MBwJ1v(olIZtQDyU>DDS*kL=PaAhu_$*vgV zt}+eHndZyMPahO+7Z!3uK??-#}^jn+>o&5sy z^Rs)yTb$tBJ&H@lKOJ7aWNGU#Q>jc#2g0aM>^;ndsNkKi5S@rUpQ8|z^bO+^ zWkSgKn^nD8^Q}jgXFIhm75;tAfwq`FTa0ng;dHZM0BHb{@cM{ZJGgt7k8$$jK+XcO zMoA@<8m$xFuC$QKA*Bq>ZDLKGVZr=!!!dlp>BkufQAtJZsVaVF2K{kk8KXxn85|BI z#$;jgEcxSsTWp$AkLz*WY$z|%MJRSw^=4AvyWmOP*>)f_uH1f-m!psv&|b9=7o8-f z^<3!)cX-;i26eu)sUV1dQL5qt^*Epy7mVl@VqsfLH1EXuLFW? z{{FSJn`)pls3zM6NT(pT@MZwK%w)LlO(PbYFc=l#1b0R@fn?@hN0hzmmrxp6qWY_0_(oi6b zLiP;bWP`B0^%rBMZPL$747yJIRFxuGKd$q#O^eZ0_r*mk&27ee@saVi)-{fgDv}td zs>YH1kmJU7V1@8HIOH97NxmD8V$ipY&9%tG8@Vkqt=sEkoL}ETl()ss4PQX@#jL$L zE`ITk#liRvhq8vv;s%az9hXb&aJTc+awB+V>|9*EPCm{xql4+CL-+mSCs2 zpky5UbkNAhg67fEloQ+P()*t^Hi-{Zj!?qwMJkQG!BJSA zM+ortn#fO%`OZp6uEj#!B3@J&;}rDbbD#om6TjPN5 z1C}u7N;NSbP zSQ{5;%Et2VU@d#t$(t=94SPfy=cd-o!*D_SAGLd8aBH;ByY9Pu2^6 zNKm9c=2%Yw^ExvBu3KW)U{HOs{fV>Sgz9aA#3L^DmoKzF zWIsO1%wPu3#r!c=4LBJK{g;Mt_i&Z1tF6k4`W~M{)!4Zu>Mc^1^3&?{6nnO--|m;n z8;d{TwXdUSvXNA8n~d|hU-1rvH3~rvjYuNN4(02%o}KY)yjS=L=fOEPeS17ZcBrZP zj?*L$q@vI5)6@F&XX_w#MOD;IuMFfY6wj}@8sN4440Pk#060&LY|*9FkusVP0bbNZ z{Vc4-P|SQZ2QQJu1@EZ+*)d5j-7cH}{v_cj`FCBg126PKLd<%vbxUOIc9?hWcSW$t z9J-`Z%7J44>7zlcH6;Sw-k+V$HeX|wk6Za?XY6Mr`e1jM_n*0+fmDCgFW7yVH#EBp zs$Hs~%s~An+2gKycBV-GnUx@Rg3Zsle0YW_y7siOG1plyd5k7ZmltVu4e)#hDnVF0f6@AVddiP=5Aokt({eXlUV2TLyqsetv}9}xzFlDW!5zXFv40cr z!*@iordPL!OoLTCMTwh&ha=;Be}?=uGE|Ni`ewnFiMDT0e4hNH31LCtJFkN>gH&z_ zAJvGSjmOh0_bZ5HgK1meoj3GamzBQ*Q3a7zIB~84@T9ddBEa$ulclPauU}=aQq*}m zjLJ*V^)_kJZ-kkcPhr^JKHglCeEs|PC)GQVy!U(rMZ!9R zM)6DjmmLafn917LN(t7hLl-gDbIaj^IG zxJ$cAdrQlXZ=b4ov=68DCg>#&Jv{tb6xTY;1wA0-_kUU1AVE){5e(V<6_-f7M!q@! zRULF+P_*Gqk+<}h{l`TA@utPQFx;ibb{knQ*yibL===nyXAGUB(%B?IiKVSKSZA0* zYM)q$I^f*VQn3YMHnE;!bbjp%7TbW&yIsoKA2Sp=4@xQL^uDVrGCAuMd~~eK5zqO! z`*_3QAWE+)39FGGWA%j=T_=$^db4E#BdNuPDqqYvny;xLFwI6dvn$Nqgex_%A&~? zulWu2dle9eO_*wXq;U3a+#!1QSt750Q~#V`)G7ykq(*!G8_)S#+q55zeyMau*yM5@ z;Wuh+E!d3G?o*NJ-TT`|le8-+%Y!Y2>EMS7^n^#lr0`wKIQ$$>D9RI1g07OSfH#{$ zC*hg9y4c-3^SJk=P?{>#(Wuv_l;?et6z<~-{OsGJB%VfZgr;n&3i=L2rnV-QoVMza z`3&lkueb|Ql`UF4=+v4)#-yGM4jCfzxnlg{D;2iMq} zI31&XPNn&MKp5^)U$0D+8w76&<&y;^nhiu6Bxebm7wCiOA|CzJfAL6L(H)z?$pS5* zLR7!M?T126+o-o4rG{EqQA*h!i1p=MS6;;N7wTfvd79o?aSyG9?$OrW7|jhqh7k2R zz>4mE7Tz^{4|Y%CE`y20i%Prn7fsImG_P*l7f$ZwD~Ng@iB2Qcn@uX&YY2RY^VA8t zb7W=lVgQ1UDKkrby`*<#0-LoZ z^FrF=p0Q^ertjThsct^vHiPP-25&8Xr})f?TMv*f(7tV2pDQyC>TbCZ4|RXIEyDV- zFi4z?$KS7Xc!ad>q%zr++7mN(|5n89>Dq3FoaI?`>x6X&>lAuxkmEZLrDjjEc!yn< zv$HbT$!Dfa&wK~ORlFRO$+QESm*aNJZ{hgX%?W`3D}=eeD4}ug_)7v>h@!^@L$@qRxpT1n9~e)ywTnm4l@BK5U!T z%oD|Vcrzs&M0wyWHqe`jA-5$LK*RCN_6Y_)6y;FB-0-TEitm{M;8EZ3<_*T31eofWG$-T}PJZ`R+P9_YzZt1k>Dhrs2 z(N#vx+Yai`p@8g8qEQO(*~zc~IV+#pIXL5c%j1Boinxd^QA?gHwb zVOws{VV6mb)2Dz0v9cb!!<{0&UH=d04FQTVDsO)X9nnCYb%*lgytJhEEN8{8!CRZE z{)G7P==c%Se$g0>Hg}xk(iZD^*yo!qQU@lm^cu{9<7~q`yujeCu>DzYnDEZt{+xY1 z<#ye?q`8O!WG8u$xPxgp12Ejl3|aY_A74TfRTUrFxwLa_Ga#d4DE&&nA?I z!NP8+t-)x9qNOZjjL1Z6?vm)?x&Dmks=U0h0G%P3s>katt441hv}PWZ$MeTUUjHf5GM-)MTHzPQIBQZo4t8&ufBdd$kqHov(ATYNYd>-EH6yix?^-Y&Xq*`hS_6F zHiM)45;AYXLD+*s-co~Y%yb+}BKT`qXy^J4?q z(HlS1+=hA1N@4h&;sfeH<4hK4H~Ek;9N+Vu}PF=vv4S9_o}2!-SBE#ei+pGHm<8ww&c68H5Pdgd*cnbm=N+A zhjipak3_Rp-RS!p1t^lZk?OZT@PHhoXF zxeo@)xth1E!3rZYc4&U~1gAmZpi@zlRj<5ON>Raowp)YILTcPD7 z`JSekW(LMFJ+2LY-g%?e70rSR-jIaU-!r$+b}$T`0L4yI*IlqgnyYi8SOUeh(e>|N zh$3!V7OIA_r%dJ%e6q)NZJ*=}cWRf^47cg1)W{jGRKIHSF^14&bQ58$!ozjhv5)x|eV ziuVyL=Fntx0?>AEGb~X8uF%{=Bx<~bM+sOA@$C-6ISQS{$=KUS4sMnT1xe{yXKnD< zi=$g}e-nG_^;lYonReCPKZhmK*xF}p^Na?Rn(71G1_O_Jx4WW(6(xejX0~S7A?J!^ z5zPHmO!1)!sG_0@#L(+Iti=V5wz-RtFF!M|kq3Q%h|z<$SGPA?B^L`Ar^JM^k`jQC?a1I`8@HXx$v*z?;_Ed#iw~nR)?<=3C$<$Z0MS>R0@`olo zUmrVHenU3CFITz4pJ({xc9NyY)_Yu;xXDBdR$P5J=dODan@V8fSTm(|iKem8(<5za zLh;_dnjt0K?}~$}QpSK2hJ?q=NzJ!Tydf~94&;%4csQHLup>9rbgQG53a5cx?#l@z zm@Dt|tH%VUA|`^K8_s3VLGS<}dD&F}m6s%wA?`aGbqM{gvvB#0yZ2EN#w-`6!v&pp zJEMr|-^5A(tzI*^P|yh2>1!A&JS{nC+1Or`&nMdRfd39~Mye9fj?fCyO*yCizR+1{ zgSGgGlw(^zk^7{QQIL%fQ|l-$P`iBGq#gR{^;I`@Ak1Mgrn{NW+EnSDJo*RL<&nqE+< z?m{)@?-m2+$Ap!*6{QnWubX##;-F4$rUg50A3P>Mmud(ojsxwy_A^f1ZYu}W9)n}!W4DY^aGEl`+LxK4gaNSvo@B#SCj79Cnc8jEuzH_;#mc(Sfa;RJ=I zg|#_agM{3ODFH0#MU(rmesq2T0q_o?*7hSjHgC3SP8@5T#BCHR@a8sF_)FH=#MeDB zQW-L}WsfPG#{(QQ0=AE`Z{f6){EnXSXWWx@W0v{;u&!zl4#QKu<((4l73VegKFnb~ z0looqVkpu8${MrA!+t4?*_u`ba9Ta&*U>Im@X7PzpxuSdYAd)^q%hmZ{tbdf517hq z^Cdm8G4`q336$~=+zCaBw*qH+^8hAoFetlNo`cPpbDR}3XM3f8WHL#2Bx@9tS_dbE zhf2{MhN-hIRgT4FtP0HHOkLn_*MF<*$A%kp`q)r98QQQ-HZ3rm55*hc_exg0ax|K2 z{B@Be2NKs=6RO&jEl=&shM@&19)THN``(!r{+yTvC=uka+57 z5i_es8lxUnq)k3PN@#0!W&R}>>5;rsiJn=hJBp+%EpeQF)eIAvYCY^S@Oe)2OH$18 ztdjXxJ@baucy?B>m}7d$9mG5vTpYt3E7ARAAg4D%^s4?xoeM%qcZ%CChob!z+GV(K z9%Xf4i#`2Dc7C~1y6!dn)EpUKsD&(lJ}R}1}<;;dhD@N4)@>B z|DXJoWi2FYXA}pMweyMd&lzXTd#l_j{P|_kYnHFCJB$J|s*793;)l~)&nb+`QiBmV7wEBmald-H zN^{*w3%yVEdf>n2BZfB9_}qw7Tznm;lH^vhOWTAGqIxu_K4br*z<<5oZ6w0X828%p z1A-~r2$h|nYWJQlzkoRHpHDy_%`fkKb7(TLzj!)RZ+U#UCSo>e@v1f-El);vYU2u; zP=m6nQR;)t339$YK|^D_*N4P}mfm%r*JR>uJg6IC1%bx$2O|SU*XzA*KEI|aOn1Jf zW&m$^uvK${o}u-&2+icWx}RKg(xwUOLN<-->5&@Z^I(v`GKc;llqQ;GaF-AGBZ7wn zVHrN6-;xec4~Wv5-b?(WB7I%~6wsg1<6DpmCLLg|PY+E~gu)*NayXl(h z%<`_4-2e-=Ch)7LgF%}&{Z?!tn4qA{>+|GCubyTIFRN#OL0Ok-YNZhCIbMHBV0&Oy zdi`JxzF}MgFsLwCI3@h`Pv9Zw%N-kKwcMW**HSc_#nVKO1W#2Ok^_HvrYH2l5s{A% z>}k62wFbxc3(5_64E59>Y?$z=XmjT|KdH<##y40rAiYG5YpI zwk=-wOQ9c01sOK{ZWw_K4Hs{PZQugje;o1?-`34e39R zIyd0}z27W^Zs_}G9|%mz0UpWps~eNTt9!U$5RVw?Y#8XJ=~prY(7t`^gfH?G1nr72 z4(ubE`}|+eiPK>m>ERm0*K*qGSzS@{tb#rg@cdmVq-KWHcV?Xk1eF{9!9nt>=nhzk zg&AOasA%1Nq^y1m`BPT3rcuS#7JnnUHT&yQcLlua z7~XbuvkR?rrT%A;dMAmZYOP-9LSi0<3fTPmG}C@l<9PCRgig?J3%5+VfW21$vkLWl zE4$mv;q;9=i}Wjeg{ujiD=)P%fJNHe~eK~g93^;3&4 zoDR|4k>DC8RJ-yhI-K-z`m8xBMfh}L7KI%;@}{h4#J)fF2>x}sL>#n{_^E^+-rP{< z5by`RyTN1Z`G>U&>D0hN^`(Xrdyd^aRjNmuT%7tuxCg_bZwc7x1K#w~@DI zV-Bhl+uVQ125J8iNyO1zs@LCobnPV0U&LoOILZpRvs8ZWbAMRJhcJwLjmwU z3gl7F@UXr6GYg&z`sb}q;t{ChOWS7EC5`f0^0?|^`_#G5CVx_pKe`od?Se(YJXKs< zrQaQVRakM3VHPMpvjqp15B?*(O4!9rDvByI2V26J_C_16je=k3cs8>-Tf~4SKYbE`UA+uU z+uYl@-xgkhh0f-5eUr9W?BL%5~G0OmgF!6E*Y zz&zlnl;6BUe3+nPc$E|%$gRmgk}HyXlN+W)b5WZUvav_;K^BOYBx;qe<5&3lRz2yzp0KQ7g7g*4GShT))uMNbx|W$^|2wd6_f2~D&@N=b?Eyyupr+x>^R z6Zm>jb;@gY##N~wN-n=1YZ;7-oR%EK)t{=LjT&afN6R*?vTf1T8FfsDJJuOk!9_cF zFVRj_WbuW-@v%>&jz$}X5A~LGyyR1)OQp1vbs&c+$GU@w+NtBtE1Xp&yDGLNw+QX) zUZGzB_i8}uvpVggWtV-hy^KMe|8~pDn0b8#W=HY}@|ngYph-j_0PT}G6eojC;GnNu zLm%vu_K%}TjA`I#*amEDrJzlo;ckhOUW+hihrd*|Q#wrA+wY`N%C-)&v^gI)+A3VZ z-_+s`^IviKg$<*v(M=fY=Yg`O9qPz;ynfps{yJO=6~oca)?bL5N`a^*ICE}nb*SKh zlgG+`LqZbj)G?UQNAi(&!Ff2kRBG&}wUX#&jY$_mX_Kc44~v8BQ(G0&#DC2lgl`QQ zq|FoKw4pa=b75yVx=vneucs7h;r?3{{7ZEv9opX}s1f8f)mmrhFS;rYZ76TO_zQ=^ zhYqbgv*qP>la|+kW4m&g6b81Ji@so=i($I=NqbxLPyX({)Ki-up_TOYnZqyb(tVtt z-fUo2c!fT>o#e(nPICr%^*kAZ-6c#t^mC+TInEli=!t||-=5u_ZLtuZ^^Tl5CGp2N zkI~r-L0PQv5Zb zgpsfJJUAm&N}(F$3Dpt`ft;emd9wMkS^OiGGI96IzSqX^*17W)E#Vn-3oGv40&W$zy6<;q7vjFSkB7Xq>E34648QcyIL)>uFcMh>m zvwGb6sc&ILEjMIlJI;muL(2yV(ax&2nJ!PHHwlAm!d+n9>A$Jo(T-W0;Pd|eI5L)U zW81)-wa@a8=YbV#aUgg*lmAztgw-R@=lbTAaiGa6a>y9TTUO=`1I0Hsjr(l82M>O6 zyKxcwG^lpyO=?XHqD3;eYdnY(;nkN-=T=XUia2^U^L{Hl2)^6lw(O5Du$wNn>2GL; zjHZoj=r#N1;p1M3S(A#NDu*X-mjfNK>&BCHX1ezXi9jNbFB5aLptZZ!z8WYxpPZbTzdj)gQZ%){EZAM*QBP(AZpHa}AGu%gCyxVVas>IOzA;{--#lN2@tS#|c%Leo^noe6kxxtQNVA2``&8BKx#sI`jEA(TUBP|R zC_L8~;!9UT@b=JbqQ>PH<)CCq`5QA_c$J%O%>$1zzAa5gDx}O^V0G zx9gNcI<*)Zwa!>5fg~s((lhgrTRW;8DoTZrd_%OD5w{;5&^;6f;;Xmz&i?)^S8)A< zka`5@{YlvBN_0w5#;s2Zp#F5E-sNbFY@FeHqY<{obFm}q3zFeP-I#lxINEFC%=!C< zxK>v+jIN5`Mu*3wrImt=Vpzn^LdwSR8|B#>Wk1O8^w@_QkiND$UTfqSkasvJrt>k@ zpY=*(l%H{_hl%@m)Mr%nBTZnOMWprxTW3NcncnknY|^(%dxBCGR<5Vjl0*+-t%Y)wJKHakCmctxo$pN5_eCWH;B6`?vI~^=B@C(6?16^;ceJSB6W=+i)HSNJ zw?(!w50*)14({JUR3fHqcU^D=!mm?eA$MAdJ^)Mwp~U04ufHp6=Qgbb+OtCEC1yIU zJ61HdzGhUf)DC5Vj2-Z{v)JDvalbXU2QfUNNHBInS>z7|yaaVVXSSi*Y1;n}P-MvI zsl4HNV}R+yz;6u2tHH2000E`DUH!b)_U61Cx7aKNt_3e%Wx)HF6n)N^D7z;V4*O9v zO19{4K%O#Q4 z5r+~K@=oP!=GCWNE^rp-65h+19>K5UZF~{J0PxBR`Vz3tG!GK6Lo6gbsv9u^S$*BQ zn(5+zc0TcDeP63xJ{dNl-=?5Xtv#Ej7IQq_RHdL_ukCr0r=gWY>u(kq_!WK%yr9 zO!`ovMzHyMlpf@*n@1Z&ri2D0 z;PHGq_N@x+MiLLs6rrI_Q9QgRteBrP7Vz?4&H+^5QvY{2x*Y~PE%M#m(t6pfG4X9- z?f|qtK#zOV*PK@Of8w|Ilm7#m^;U9sTL{81rlZ)28;!|qGrzZ-8U?S6ZX4sS>&72o zk32J^wK1_>`m>mhU+KH(h>Fmm*t&VW2_vbX7}GcD>0X8y4}MCRw-Y}$aH;9w>;fj5 zXoIQPESI`&k&m;dq{im}b&lzK*E=KBb)baG*kc88?K4j$ZSb~XHfxV(r}sK9YnAm zW9A7RlXsWdpzZV;dWa?j(xAiG{eI04um<(95@Jjn$_q{l*s*Gf0}PlDmaBI>9v_dWe@(x*}$bBO;-bV1n}J{mIE( z=FiD!GIxrUIVr#t^=V4Z`>gyj7IN8ylCC=m31-n_msW_kOya)bZQr#Snq!GANpNBVE{XGQfaY6 zUoclR^=P1F9b@)<&SGLp;QUbK2(Kqa!yTfCyi=`76GGqcz?Nrf`*@WoVd;uo>U#~( z0FyF0sn00>^~xMkL@E`4-})2v}7ymEqQDu=>;x&xbx&D(#Jxjq+ssz3u=q_ist9w(v$X0Rq4mDQ}yRFnQNsU zR(``Q&^Nd7ruW~q&Lsh3Czu?R^I*O302uHAaqkp2ZUNvXDveU+g#tHGkK(48x!fBd!t8A4=7w;2x5j(!}eM#(M zv_i&KX|;Usux2LZif(y3ACX7n6QB4GGiyi_mPekcq+3PJthB7nov;%Ax?xPwzDM`_ zi&Bp|BP#EeT`c#N2Bdh|Gh=_EN(^a~liT#(uXm~Jz$*6M0HsQ>sLxt9d>_C4FDtV7j=83C(yH`scrYG#mOjr| z{OOnmeGZ$I%3Zt3*z&GQhucRH`avPR$ zF9&?ps35yS%Ty7Q98cUG#z{V7<=&MWe1Mp_AzBMvkrnCAIE4ZF+n;#;lh2dj!Hb^? z%ZRY7#Jj-o{-;s=nuanIamX9%Iofk5B>QLY6THH$M7NnrmueQ~K=f zJ9#*y-Hk z5O1OwXhwp+7(CQWiO>(8G@M7O>WqnPZt&z=&m`QYt zK;oxpOjqq@@N~b4-{sT9hgtm-{bgPTw{cW4u3OtFahNatWrNpg%v7M7?91NIIW@f- z2EcGDX`?=Nb_=EC1KN|eks>mU|Akx0lS*wADDQ~DM1Nh3MR;|nvS?45UER|Ifcphn zugg5iQeE4az!We(DD>;8Ou|A42mK>m2(|dUwZx_)w-Fd|mDWgxAkWQg{i9gLs%?%2 z@&?y}h>&~G6~Jp0Hvs8p8A5I~^iD@xJD%C0qO_X4mH#-;Bx8vjZ5Vt;d{jVWS}*i9 zY|9hCX$_lM`wE1nXdOs;-Z6=ji)ES&kvtDm27Cn`$`Ss!pp;Fd@d?c<7inAPn)C)hi4xdoy`>utfh4+4+Qe5t z$m__*`xFz<5RtjZz3&Xx>{Dmj%vbt!g|>X1H0OrA@_ge}25~b= zOG6UwB|<%m;t;KyImo*e>%RSd^;^Jf#b5p+JB>;&Gv zS-szth>qs$4L83sOkc*e)zDgX2jGX=i99sHBP0RHoK>r2{r22?ZJ0{xX+q9aO3X-4h>ZNOhn{ zysH3^xMv&qfDXn(K?!yBTH{t%hSY(5nbO;@K26R|Yv3FMT;OJNfR`u`*X&bV}mkD$56B;)@6Zdg!8yXs%NoVh`4682v;T%*e>&gk{5wQzy z6_lw2a7#AH%ioh?4$vlcCLt;WBArBZ}QB#)^TrjoB@Qd zn_xp}dG*vzCf(}_5C}~hHIfQ98^hFCOSXyQ07e~gMTaYJ9o7-1xeGKON3Hpol|mn= zZ|2?y9cPAu*sl5ddy(UU)ia-ISWY?)r|#zE09p3RgADPX75%Lrbl}-Tjk6;6S?~Ze z{Ocn?+h0r8NGpgp2CCgSWU-={2mSY*j71%ju88Z*fZo~qwbL>|<^QA5KGQg1*OM&# zbvXs;|Lq%^C=KGo+xCbij`ZC7n=upWn^77raYX83RzKDpspU0C3oncU5v?O%ZC-pR zYCAy_TMJyKDW+zm4>|+_DL|AT7wOd9YSet_$G@0d8e97<+bl8|XigDZ2)IuUY@e2q zBb}`0`qG4csOm1u2*IvwWkE{NZVu$%?etIT znkPHY?*eJodXClT`Hp8CHu+Cpu_t5g%*B^Em!?Ey${$fQ9IY7oi2I}Xai(C!wC72Q z@xfjo8KP};;g78r%E<6B&^Q7ONBfJU{=vL^(ch=No0LXxm_ZUHPWN#|1rCW#cC4eV z>QD(i_gKKjwl4-vt$ioTh+CVH#160+uaCOlP*FL9>@>FiL`o$*9)ZKyXZ(D`SJ zh~*F7_>zq%8jD!;nv|eVf@ek@mu{2i^pRBX8FF*s^bB=*W)(eib=|-tSoBld#o~Uo z-UjOK2t+3%Pt2*dpmH z&{NaxY|`yfxj1ER@{Mc);@vZg`l9J^SRGiVYli@ml~ku}FHF1ESHfK$G-*%P^LcY-Bu_=){W z;C55uWKJNKHJ+)8C-}Y)wyZsC5kU3qjEEDb;U>6w@uw%Kaankb(u3=*6=8<5k1epK z=-wH;+^;$VZx35?wYQO{m^eR_2UKLZd*{VRGN~?__#q9PW+r1igr;k3bCUgNhnJui zpTBU!SN$roxmW2LUmX3BE(p>~Fp&!EN3?ix2N9!AWgZnT$G$%ShP?rp=Yv^Le{N|f zp8)Y*%=rC{TX+T{?!ZCD`1+|cT;5xfuX{+$krBuDPxdqGg2C^G?nwqh?7lq%#-7*W z*%||e9K$$XKxPw$y7_um%2zZ1K#b#iIbpD*2+oR1>2>Z<32YRtr{%FP*K`ml^tqF3 zV9!BT=k!VXUiIt;WjmeKlTj($y``M)hXKNfIp*l-*z@5cMKP25>@w%ID=hU6|4W<; z!p_sVzv9+oyeHr2$x`0ks-%R3X4u9N?o2@Y7#qVjl;8SRMjpZ;qAsT}InzL7 z?)4*KUU(3jUK)#KhEh`xVq5j)bjImVmDd-8Rpx)5{hH4#o+TK$I`FzGNRXWAwE|Qd z_WQj22%q~Y>rm88@XiTtHf)$7C-dN2|E9tEHqxxRlFuxGWQ)FH(aeaDwEm#Fo<+)MK*x#ogy>tZh7)RzzTIdGd@&LDB zmTz&8iFtRoA#+u5-;_yB1;RqD?H44pS2{t$+pkj|_>G}!SEN;1|9pkI?tHv5NCaS^ z_6imVOn2B{%W9v;dcH8qL8X#r)HP)vU|bx78yN8RG6VM!!w3C|nTzCrA#Mb3O3vc= zKDD6zt!<+w)!nlKp`KSm+U{I9XVjf8z9r^AFNrohu#qki`4fN|dF{3$M{PHq<7Eg$ zOw&cx7KiY+>SeqhN(Mh_GYryYPUtiR1gXE@vJYKdI65euxY;-tlNpHFLKTT`?e3m0 zOsK9L^tT}>0WIQRj^FnsWuoV;=sHK8zT}@{Skx;a*5_|Jj>()%J#IO>+_j(10X)jx z7f{8m^CA&fX&IcFJEnyBA7lpwhV_jq(K^9skzg$soQCCkVd)?lJ|B`qU@qd`v8KzS zDCpF;HRtt6&fHB8U@9{qP(37nQ~rG6v1>(wByH8v^+0>5#wLlxO@U6xoZXKc`Ob3) zmG9)^O3U8SS6fb(yDJreb;ePS%bVA4(*J!^98xObzoCG;hf{!AQlx#gC4U}t`h&ms zw8ZaRl0;j@C}j_bm)*05w;>XbD*ZS=UF`CAj)j zDmxfDpl8fdqf#~uiiM}E4KpCto7Mad+ulBrQ7AgPF|+#mmm66=rBWhO=o{X%MPV@d z>e-nbA=_y2J9(eIue=3Y9e-917EpqlnQ-@#67Cn@{1dR<&Pb^vBosM)Mi0m(!->Jq zxRKN)MY;x3EX=6Ean*_Q)|b((U8XYPF??4C@RJX70e*Gn*Zq|F&U3KaJ z>+9z=<5Y}tOGVy+E5G#`kC>a+205H*?*^ueSoTZX9smPofjv7&7$BIP;Du-k!D6Eo z+9UJmJahaL=IH7Yu`Agql-c&RAMlV{3PmD&bci{k#b(McUJfhsftON#J18rRy zK0;(M^sw!DEL^rIA=Hkv&uhusi3!?yo;EfA%gF&YONxinV9RDuYh*NpyRut1i)4nb zJrNJ`7=tqu0SBI~a=GrjN8=p#Ejd_YUr7qW6h9^TomlGl_CsoAm zjnco1|JU+IIKHn4+t*~5+KCQOF2fF-ZUfo@N;WY;gqulh3IUp@7EfhBjH-4(ZR-1L z14Yc&yk|EEPj~neFjjVS_uyp3pE-7|`oFK&ARY=T_Z(adr2*K@6obd(Rlv+96l5$^ z8XR;$yw!1WlE;6>7@hn(Q3CkvKMJKISR7=VCx~b5j~}^2SN$EG1C@EouoF3 zp@2|y%2~;xZZ#Qv(I7&Y{-vRJNTDzb)Nhi@syD{UXBYk}L6oxXh~)EKekcFS?ZHZX~|Iy9&%VbXCZONyU*BQ!UGO+s6OXo$}cQp((S@?>lf+yYUF5J+jlO zlI65Cu^@q0Ka=U{uy1#y-kmupXjQM|EeU_%&#OlT2f=?cUt3_8ruC8>aGC$(6>0^L zIdjeOmnSPuK_!n9QrE=(lq!d2@TM~+X@bvTSD4m<1RgzDrsDtH8w45fT9Qh7Y!YfEe{XGGfFOe6qHy!!p*>S#eTdLS7TgucH} zh|m#lybF+OrXT!o41))DrFI6Bu@w!_k9`qpKa&)#v}h4t0IA)+B1s5EwlDPdr(-D5p4TkF55zyOh#1TYC<= z>MbY__CAS-M=f$)AO3I1d&cOI-f-JG1%L1g04D(l3G7~~53Z!RXp`yuG0RXD$vg+57po&NJ z09ot0&KY1Lxp#QupOr|2TepLo%_rBcTF>8H9fTKdJ9$b2s1GPb@a+&;jQ{lHShedD ze04iWEY%`P6?L4qv`@+1N*$k`a|ZrDc6|qcFvwcI!ESQhpC8xh+0j4fKv&E2X3K5R zby<`oLo2X;^Yk7WqDIbwul~0Ud0x$vh2y<$sgqBXBqT?p7yxzwB^OOD*j4&xHvqwu zg^ezYkrEOH7N0F{Ulum(fBTdX*=O_uc>{!#6b7>Xf{(b6WxRpoEBp`Bo5Oz4ULkiK zuk@tamMYf0LC-+30MTd)0{r88+rH7f{??%#xO#At8+J0-eb9>|eSZ**ur_3POU--wp%(H!?uIpK}@V

OB*mQS;UgxfP3jF`66Gr3`o*gj%!;b)ir47M|Nc_C)yYa{{jE9i<>gP;l$D#+ zi_SJz#T$rk)QIb0ttFkd%k=N)n{BSIs@hzoJMR8>YZgkD-2Gyo-%WKLXfkIHCGcA9 zmlN=>|L=BJ67%{GWrd&9pKC+1IRyi46t2IsQ(hHU@&D$kTxH0sI zdh38D->_|XARr-<0xF?|AdK#ik`NFOkr<2+q(nMLjZz5-i6IgrM5Mb@B$NT8yAej$ zXa;+4f6w!N-}^7HaoyK-opBuJah~_0BJLdcbF01M2@5v1k%a{|co6QO2aQ?bE~P`8 zC}OrGs{7Ay3w%xZvsqO}i-4O7vY_%G#O2_ol(s|hip4|X{r|vNh5IV3s62dc6D1&M ze*QV`;R~AfTi*%XNGJ?IjQFj#>#YDiED*4Dvul;l zP@W~Z<|~o~WIPHG?ej(Qe%c3PWr0@!iRZOmJ*RL|vNwG%{~McuQ%cd%{TVoi4&dB$ zo83OCU|a7yKlTPJu`6cJ*QZ&#<6^F@g}+u{YxbA=o-7>q&j@B~FwC#SReQoj3^OP34ypry$Q>-Y9q(6c)DWu3AZQ)W_%_S{8L z;PthBzRsN-C9i^`AF=qa4`z1&=WlU#j)t2{1)RA;PwgMD)fvo;8760+Tw&nXc1r`Yd!OR;QXkvw zXuTbgY&-8)c5!jRotiFO7|yoBFY@8Ma%YQSn3;>gr&QW+i{y)3MtYZ|6+shGFN!xW z(LpCw%L=$(3iP>`ZN4YlQ_C%<^QO(m+%9Y=O~NV zxCZ?7W%Q5-Q}k;Ev;}UN@xTYTl3&r4Hs>Gh{0gUL7Oq;W_zcAYJ|LL^i7Ai?DUme} z5>M;)u;TO%hA}M<7($lh$#j!p0E=?>KQn)@4>GJd|K(Kg6YVF)Hr3^S)G3H`qn7NFo?&h|_UM?EK|5VP@34*LoR+Ka0aN z!C9G^!9gqc7o--(f&YcXpSa*_&jj&@f(LeyaY+()d~Z{?*95Euat0mWVw3eQ_C4EQ zT2{bg6&Uv#FqvnPifHTt{%V2IrE%l?Syk*1Hpki%xy2NSARQN710snXf0oU8Z?bOR zx3lE>*ls>+JxC1hFVF$S*e(DJ^QiReRW7!Elc7!5-r8l5V`!+KQdfoJEnr^7V6v|? zX&bVCB#|P1AQl4vU8-(jSZ5{56mvdq1##wj!v*DfJ2zuM=9+>pYdLqS7@I7M4nG=$ z9savs_!89tda@oVj3B4{oranKllkWEn0Ikgg}z)CTgs~*>FrPpz~+q5Te z{g+!I@_jZ*FaCfHPZMoTnFPnJu<6obN;*In^LvBmY61UVKE)IPG^pu zKx(Cg!$P92{N25j8eaNL@5LwSqmQ`A`pbfjiz>LZ2u+n|D6hv1SFh&wg6e!H%zV0b zu76SmQP+uk9(djea4g9f_KA}_dTMBDW-u=yUR<-2Bqiw8a!@Wfy`lPVO=~ z-}G&eUhv+YIcR09X?_!BFynJPF1>5a-JRT4jOx`7l`SYGU3{;%_aa`?RfCy<{QcxG zM>IOaXa26~b1qjddU2{3hR-9dARms57A`L?meI6<_elB5?2v)ulo9?83#<(!DLZWX4a|9aOfo z%(|%`EdC603!?4#iv8g}D&G&oO;5Bk)T!=_+eI2BFC{qXKirmWA$@V}PM1815PH#K zb~(ygqY5j`c$?chcJQ{TvtFfPOLpcFkr1J;S|%*gaL)gtNV-*%wkw$v0!Z63f#6C) z&{rk#oaC_@L;(Sj-kC#mn1+rUY^|6saZTxs7z-rN4|;R5RxgZ#It` zpr*5FIL5|z0iw^=NyHr^WhkuP8u!=K(krvqFhj6!)e2QH!~Kx2&SCW-O;Lc&&RFf> zy(>U%oxzy1bohdHly*Wuvv#(Wrak&8Xd&owr=m+8@q*I6?X+dD3jyqD;JA0-xJBMa zRzLe;y9^GBLV48iCParD(7II~8=dn#hG*>c9xG@u@#;ddjv<&o_qYytX|@~8s6H+m zInU6x3+S#cP5*_T%wXW-(zI0yxFsrXNWC%vuHPj{l%c9H|IqU)2Wwzw)QXpWhg>t( z+3EQAah^BNlIHAwoncu^n#xr4IZ9s42F-ZJI6OGB;Bc zh_rwha<{Y;@#1wx7!)Z(zEbUEn zwSr(a0>*kERZj_uvB@dDMpv&s%tlkUQ+UKbB6utbg@nJ^8MSLr(&@Q(wEv5$N1)Z+ z1tD%MFrX*h;{F&BT>Tm}g7ESawg+$<2~{&IeRUtNn-@GbGZ=FuyxQO$Mt<65I{f!Jt* zdo{tFUuyWZq%|w$G{g!sX=I9@sCw8X93gK%PJcU3YP{XZy7^Q!KK9}k!6#7Z zUD_Y+dfxg}>44693{~hZ=#=i*nkjo)*+*tMciL-uDg*=sZD{?QKaBXli8q7f=~g0~ z@OvN8s)T1KT<1UDn*_LQqFf}5*2^%fhqSEE+MKR-_<-p{3Lcb+dIR6N%h`udA= z=Y zz3Ml-K0=#UZMP3~`P4N~w1B3sopywFOGX{0V#6?d4k)^iIv}mV-ehU5v^P)2829QAQzFy4>Y3@yV z4=BSbpE;I#Fi@m~hYALdG4y}-G(7mBP26BnwBycZMEwAe0M%~38aRe%EdOL|moZ|n z@o~zLco(?p61i8IRv@xQSB!stWozp7jC*c=JE25P`wZ&tlB7Rz<)Q z_B#~Bu8*_V5v=6IiTtZ+FkOJkNH+)rl@UR#FU6(@r#4-T_!$jrg)9Lbo zGOchgya#Xs?B2KwmzLZ$EL?o`-PGZoIMs8>|992yb5{p(aONfq??n}`ln0X9AZ|z) zpz4wit|ZYY?{$&__P=!SLO}2F&n=>IlD`hX619ARC30!qaBgsQq@4fp>2;uC+N)S- zat5(6>{+oNiX!j!At0dyWRSsSCy!N~cz?*hO}Wr9+yN6xz0>Cj9uou-^&)M(`~Tyi z$BzY830a~R_fv(|ieN_<&R706Tn1Up4Q86p-)0sK=+d=k zzj$5=D!R4$*vPJC1psxw-bQZ8X%w3zgTnB-{-BgXI=;Q%6^IM18 zgH%Nm7f z3QuE1w9rnIA|H7b$pZWu12=C5u%^e*D8e0R zR!w(#f=b1j%twaBZvnrYXgPI2MQt`ii24`j$n!qCsKCI$W8Pq{x8%`__!t%FmhySY z&=X!NN|@++>X^sZHv|Jf_r4bM6Gy+3& z>Wc!N!QRWYG?&{m>2brmJTWQ`DOa%|^U3YAe(gQKZ-|u-RPgP@w)!(^bVJHRAt3#< zlcue1+bwNla4o>%#9{dyOhB79?QV^?k}^mz-48|i(z({XF8PZVFkZ1(DI1Wx6tHuk z#vq0x&;FihKIk2Otj8S!)db}yCyU)Q4s%{DxKKlWtkEVY7?mK~=Ojqa(*{1Yw+TkU zlG+f2vHa$5o1ovc$QG+Bl>ys=8{&UhjK=<$^#j7ghu)kz7!BDXi=ND#ytVUd)7(qV z)BH?2?T7os<-2v&mtxHy0WVl^`+`MpzVV}eluP9B5)Y-S107IvNI_WX$vrP6aO_LE??H}M3iLh;TH`m9(Z0-v9*+)0cmsB<(s*y zGcU=^1)o)Qc?Puj&`F8eOmy4HT3uI;Ho~Gofo~6xcDY}l>6*hm0=9w9z*o5aUEK`E z78!FZhz8Q7@i_CW9%#_({)Y9!0Xq2Z%U5h;C^GXgz_Z-`M=c&mTOazz@ODsL|rX(MJ}bB6)yLL5+TY z0Yb@qZwC7E8gfJ^Xh+?#h8Y2j_JDMUSSA`Yj=Et+b(}rhlPfWn2tovZ7WYK4-y3a` z@HVBHl|sTDJ=-?&Vluf}9t;QW<|uA;#dbO(zF~e|8Lks2?V7^)>p?y?g+r`)H;?Gv ze8-r_f=czT{C~b@l+WmT7BAj%>T``m0-XDq?T0oXa}`MBlmfs@)J)lRt}knG=W3C~ zUe>=R*V^VI zn+l#|{Q$}3z4AT1N zA(Rfg%o2!=8H}A09X&ZY{pZr3GIC9mSrW$%2g^jSKK?@pKKLQ$B>Q2tw*>93ZFrcg zSQPm0V_VdK@-jDIjJ1YivnjNeuOMK7u((!Z(#`=0I;(^w*Lrg`f}3@IH0}L{pk3oP zVSa5fmwjjHiyzJ}OgXfiEG!nzc?SLTxXL1scpT=SrPz-5@t?*m_=Lxn`6B?fB&wWN znEP_oD{@DD<8hK)aUQztn-z2b>S`=oNWj5;ZBTHWtpZd+eXlSfK!5WYQMrPPk>N`+ zMaUDbXEtOR^d<_l>9n7KybAZdLGhCC?0u0rv+38sqOE^qNhCm|y|c6N4uvjH)pcu5 z7M5xV43^EfcELh+ihF1)X$Mw`_M=VAMG6$2$E@*i1Y_)4#3RPq4d7fKxTsghc|P;d z@G&lcHNx!4B)EgcdyHV3zyB1{ll?NMj9r~BT1iiScEg3Tu?oSVRR%4{0F7rsVVcmQ z+je!rYkQ;S2=ty(B0d%Ca)tz;5=G`yoFtoQbGnLeEVO15~i5U@3sr-gkI{R3}u zMEmoTuIR?6mvP!HwsK#fKffpH-4jUE@$F%&h4JhhAI>?WrtG`T`tIKX^|=r*lN2^? zua?OPx^syvT+Pf_ITjVS0J$dsv`-rVJmcM8=Ar-(x? zrqDs&<{(rrrxNd}rRtm5-i>7HQ^107rh;Os?0(m%a-Y6`L{$JCrAnBVZ<$gLdxD5Kz* zmR{5VL1fcy&B6@sxg@gzxNxe^@DSvOAsS8S4Pg_-0|8Cwvp)g$^_K+h|QT z3e)l%TH%HxXZGZ`R1dDpM;Q&Zuz!^P+f7kd zlNvEd2;WcxwQ1EUTj#GBPT8GwtVMG07>B&^Lm0Mehlc&!Skmw0?KPolAB zh*LuG6Cf@Qm=p$x^B}x#Uv;EOK5&~yH)m$>#4 zltSAUZ2&Uj4c#h?3t$W&dkt~2p&Y*|VYE8z8?>u?m6~aA3PFFBmz4}`@g2S@L_2G6 z_J|cq8KHn;oa57f)#i64Yj|_-bG}Sy0=mtG^|a?6pVX~jnNMc| z;s&J>GyPnO(fd3@1qlBxf1Q}K)*dfd12Z%T{*})Mx+aNRhUF|G^@&pt=W^%L7lDCZ zRL-kJ<>5sXVymGpf0WZWgXhvM>Z(73TX&@v-b2pw$SnKM4HUr&GC93kcp>k^t*YFp81Dq`O3~^ZjL^>#+g)FAl2tIeOxmW9k17-6sxyqzfgo1lW zV^V&xt{&{yMX|)jo+w(5?q+L(maX_|y@Ug$Wu&>?T&33IJ2(jqBKs#+kzwB|dy{jm z|C*PGzqcXtcAgnpXaLd}mHE4AJ<2+Eg#pqpQrg6qP%LvOzYj;?&8g&>Hjfy@`^h=H zpLFi!s~K_0dDZxd^viFs4E$xz0>W=zH%4EYvPt^EG%!)yF z8p&Kn3=6KXu7{OK0NpQ2octm223|D!P)&R?S;{ z9aU>1z2YY9FA1s=h{}r_-9L|elW7BJva$*q&sCU=1oA=vW*IrEdLi}=0&%bw@;7;M z$#p6)oWDM@C$nq=6Hg?l8Y@E(`eX`})vJ}o=QY!% zSudwC6i+GJ#Z!!J{!H`oIanI7oS=pl&Bq}uMGYPI${iO=(X?owEqA2dV)e(hfO5?= zrr7MQzWq`H=meEu{6gpfOIf1~U)`Ew(ZF=+iG6ALbiQ|C46hM<3>Y6EFr<{WrVKLL zTx&A^!ydY22$KDKoPB9tdfJHgTG;CPZ2q9(H^%QAI1bi3GUlg6vv|79V-r$Kc>EL7 z|GC^~!~oTE|Ld~mRbYex7Fn57k%@$J`|3_R0VEFj$hA+P(Ku9#Jqa{X?5HUFs27XO~eXT`%ymN>Gu@ zDg$JAS4PL?LO}VVVxpojzbI@rJA<$0a5TsWm}llQ(OO;e!7Fomd2>(x<1vuS=@6v< z%_#~g4gaE&4SsS_tW>^Mtx2jGpvj}Pt+C$l>^H67G~x|qRJgs1F(Ot!)4eWfGD)^p zC6}n6Sd+FuGfw`(9$e{_UaU_$b1%TrHB;ydo6g(B;vw3mulbiiLAQH%c)$;=RQ$8; z(D0IT)1cLK=2hsZNx-iFifnOhL;D76ty$j5czLa6t^GnYXE;~Xm~)Nx&M?jn5_fFo zq-iNYAD&E%ss@H_2J?1@Jfb+V6R8 z1&}$FZ1B199TcDeCen5EYp#wjN`&j-7U8S+0Hkz(#Z5UW?rXFUUd=~Ws_+Sx+%FDk z23HrxsTA}YnsQnF`q@I)t`W!`!bgzZR(Y{mrP2Zh*sCD@%hto>vUCd*4W}_wcoNrF zTT_rx)hODE+adCY-<|fB*FZr%-!IqBJY>@k30q5@pK)nxk@Tw-cY1iuJcm3uk=<*q zl5G6Af;O2ko#7B>#vI_QPUT;C)1PLz+*GpY@zNiIGt=4_Umic23Wg~7I26V{7uILd`m9w<(V{EjVO4L;!Fx!qaG zKQoD-yBjBL`I>^-crqbg`t&$IpS;E-5Z~9=BI;u+kM!7lj&2ETYAh^j+?r{#xQde3 ziR#%7uho=kdY3@xdw3**_o);dD?(n%=nuzo%~>m{9*O9tNH=qbt(&bpaaR_knD~I9 zxbijiZOCI{&;y}kI&a*LmNRsot%sj1m>=KLw(RE z;fx?v3FpZHMs$XHs5*jk?r%BKPrq+gLmfsEGG#|6-_c^2F|Pcwz=YDIe$X4TA7`b| z$eEHgtTdNaX)WVmn6&3gjHIn#^!klGzlo+wr;Ba`ziDOQ`p3PX)26B*{gdH>Ut#My z;Iwa`Ou1iWEPiv}=8*8?3H4YDV5ZGphO;p86Y=+H7L~og>=sJjBF7o6_mqDM)+d@r zO`K~Ys+B-#wxv?tUFnuq99!4xow`)`G!6=LSiWo&@z z|E}Z(Gd+62;xTeyXnEf#s9AXOBkXcJY~p696iG%j&1!!6vmFx&4FWlhwSHO5$jm%` zNaM*$3P1jQFVlbb96uqJE^kc?J#}lDPpF^Y@tjwv`-u6hYz(aTErOIu4J1tX>8jhM z>~bJ2Kr)O&9U16Y59)SY<8cfwth`?H8|L#PrpZod4jxKrcd5Y+j91jrn_EGR8YYr zEWh4($N1lRr7ynVwG`2j^1om~r)I7{_5X|xkgc}%h^TUhfeg>Q z_@krlSb9?Bd%&eEemT$LDrO<*D_6b%i*J{xU53}VR)JKIoHp`V_xy!>ZVS5{eUq?I z7@_g>TxKk1>C_~dVR++?2|*vu4BXh~q29hcAUEGB{6#R%K&rIu2_>PFNYe9wDNf@3 zzrchEN!;)73A_zgboK;(-zRY-pUN{qDh2nY!{{M62b9^-2~DxU?|AVyT~~U$;@awU zDjb#{3*0%*$M3*{T*i{y&PU@~H!Om%IoHw1?-~8bh0B=C%uN3 zE7J?-f^hdYIq28jqF0O-m2mQbM8+B45EjF;0po`Od1DXB7w@LmFLAsvol1d;mznHO zj}RSr7B9%A(7JqsY5bHy!H@7zEKcxh6Yjelqi{mEP`{sZ{Yzp0hQj`p$3QCH{^B(A z4cKq#Rirg>d3Dp1jqBOFIrlw{jv=$DkTym}yS0nTc^_!XeYd{G$>PNR1;58ZY-X7> z!(jdo(MPpTGnK!G%wCKh2>dg7A}j`ZITbm8w*h+qbjRyRv+1P~X3g&L+`0VyjEX_E z{r$Nz1Hgs$?Mq#!KeFTIZRqY*s!J_zf1nxK&iy9_@>>sg@fVuj25`;+enUy>mMBs-qm$N ztqu>=~vV_5h|@uec2`8j&mQj zFS94wvQNHdPuR4r!h`A#;g>ZjCH33U&uq;F+F)IL78#L{R$X#Oe0NPG&0vI0EDJGT zD3h?x1Jdw2u-tR&(+9xE_-AcgzTDRJ3@ZCdPzt_+YCxIAndUm4&cA&6LM z^WEF&3Bt$CAN)n*JIdr57i-EcNwlOM#-cYj&fRsG%P7PC8m46GfwZ_uR-+aNA{I)w zsus?=B}FK90YykEBmjs+eO6ulP12I?A6vIdn?#0~iG?~&(-v^H-tWdwcRRL*-~BV# zPRKEbLhIki$kJ`0w$s@a7J8A0IesNv>A{IuQ9bXhqml8Q9MAw4(H`=;4i7U~e(+SuKj7iRU>N{PY?92rq3+w&`rR8@zJ$z`Lzp1`mZTMq4jD_n@FBX|H`^Rqr zJ#Jj}&-)8p!4eGsClF8FVB_&JDo03-Y^@%gm&llDp%TXj z#D}+@K=jQ7k{0ZrFRP(jKH9#CE#SKzdvp#HSx}l;^Me_$4h)6GnX=Q~e9Kg&+Pf4; z@K&V78reh@h@+S+_}B-2>XRDnm10p;`OmS@y}8EC3yRKv`Tdpwleuu3@$DS99T{Z- zzLxE%?K2mmrQW~260*CK15#sJK1uV@=33rE;>*$osN0QSNDCN_9FQ-r-)5mBl!%%& zBo;y}NUP-d%&X;#UBZTiKU3H7s>Ep&kUG}FYHwo4F7tIT(` zNca21Hs{0|uC;ZA(L%;G3HGb(a!K{(!hUY_set+6S{!aYPOzZ)aICDP<(g8#Z!DCU zB1rgd6-YFA>lE?8i8YBYbcQ3SN#~6Es^Mk9sQmRo+=TpbfiAGB*QRLVulU><4`2oc z94iS=Y@&!)QcI`e^7Mg-( zcwPK+TT6Z$+s$?vnL;cy{-n50#W|K?(f)}VQ-uOS-6Ug$P6N$x-(~;JpX|Pjn7AM8 zZt^M>rFEk(%|ZGD0TAug(m$k-*~9`#bD_alAZ}l|n$1^xPPv6|t6ni8vts?xPxe&s zT`6)%b9~Rp5t?-B)!=+seBjO&!}Y`jf50!ck0BF>LeJiw<*O74z}}WPM)4(Gi!3BvmPk^x>4`l+0+JWgpi5hquSII-+vrp zESrM)Oog?&VeDQ2Miv4&Pp@PL@toGR9+!Y!PJUV$=06|v-Nv0pkgqBIlgO3^0-DG_ zy*;zfX0@#$)(v}Y`0MGPVK=MX_3ONPUuBRG%odW$$ER<67Md9j(EuDVo%}x)tmqb2=LxY%Ov>*M4b>)9*6z@HBa4BYt{&7<~ib%HQ9 z1TX{)O`A15sAmr=Fwx}^he@~Serz#5)#^#(_4G8+OQ7*h*un8FbT zP;d*Qn9V+aUwZK7rtH+o41X|+y|t2=oPBpAA2|?ycZSrG5c6O*f-`zuwO;tlM(5#7 zy#hm*Cw=?*N{HaF~JBkx4Q-bXmq{!@Q~d$(D9X7!pbcblrj zpK0Zc#3GU-JucdB%D?d6^ItHP_1-o<@gL_?1z9&(-3L_gnU(CpG-vM^iCvwWOdiq7 zUrwQIx3UgTJ&>2sopDo_ey}xI_9>*G$k=%^o{=;u4Hrcy#oQ(nvr~{tnn|HF^)`{Z z&CE#sXysq6xs*jdK*~Q`1uu|xWA-_bI^f>goBu8aDJiVsp@_aRt}Hg;TenHJp2Ha} zFor4GFG2a=&^_wW)rQwIK-|+Mfvx4s(J2;+P2NH zva8M_bJ1$F@OSxk6c&#%|*3Swa-D|9)1a|i1~xv2)UMj9l)Z`n`Twmv{| zgwo`Z*6|oZbcls}PD%Uh@5FfA9C`J4EsTpn3H3GGSW8-dCPG!dNBNivzYn~8O1V{C ziv4+o$m`e3a=DhDV0m!$Xq#n^aDf~;n*Me?%HrDnk@wV^hl(OSNyTgum0r}Og4=Q@ zD)a$@Uwh0dl}C2fQiF+*P*3n3NBDXAp{3W#SyHk{!d`3Or3k@KxxNGugZzdk;)=}!i)g`E6u`Uni zS|FTAX^>z5FxRw_anJK#;(WEE^2*jwcXEXqHtqt&Nk@q+NjvdXEBFL?B8D5mwF z(8w_o@B0FI_83i0inqp0oJVjj=(`ic6RBSF1o5vo`YOUGJUPlMt@3`Ee9W`eW~%mH zX{nj7)F5B1cE0Y?y&g?mfvw@!_O6iJf~{{BuUKfGd`wIg#z1AL%wciHlsO;?F9ULy z;M6kQJBtNk-D8V@Ki67xRx5<1+BKDa6=Aa5-G{Ji+I;ltPSq{N~=K9&XGmTzgCCGSOV)uxKPgH>EmX zghp#qtDwSu@~0V;0sQV-2*7kBY8BuCpx1Ur1pFy_8`ZyjX^h``_`*d zq67CGG4d}abZ!Pv0Gg+Bn&SVWuiN%&E@m+{r{|2&edXa)2W4Lu1G>+`7f+F;Ek**7s)$2H0E<3Q&O$DiDB>+O2{Uh3TQ@TuKE^|4 z*XjgY&z2`m^Iz>R8~n7ZS6nd@4$)8B&4QGqi!RFvq*cEyrC0=bo!D5r>pfGr!`MM9 zg<$jdr}@A90C@|mR_xVM-dEruzkv)v$WSGr&#`WSDoM-ipUOX3flXA>AmJKAGEqQh zRtz8KZYNQ{-(tv3UQ#`h?t0welW`r(#jEWqbZt6ShY$cTTs#x!D{Uwkw)JAQ%lQcH zyF^y!lF}d**abTKXc1v5CO)Bap>}RwFOyi_pAD`z)T!gyhKg1iV)CEYhxf?zn5Atg zNk`~pAPS~!b{-3cVxmBqKhAa<{VAP$eH{Xp>5#vt`OWDQ1C>;oFj8)sH+J!fQe7M5 zU&S*$9{DNkCa*vwfVa9N6BmGjvd8S?e@dYDwqz4L2gX<`a%*%Csrv&{#vYJcCK4JG z1l%(gkBsO`e*%s(2F%Ac{?oc6*F)!ugl<@;n`?{#X~@?#{hu|ApCj6zG6O*)<%I(m z+u9$I`dET|*P7U6mWqtqt?G9dS281wSN(hG9mLsav7t2i!JzM8<}}=wy)TFYO_&th zA;yKi-PqN%pKrh^mf&~&qra;0;7%`-?{67v^LhTCNAy6snSF0LNceEAfs7Hfe&#Ec zXrpxNc6T%>;<;6t z`!|~(-VXlCL~#QlnEsVNe{(=SV=a%`I%!5&?ES0Ft`CQ!TTv3Mq(@q<)@kS!2_#)j zx|8|ne#Zy-`27C-CwG*p-X==b86vd5IuX_%o;Y4t=8+D9rG54AT{i>2qv)}lVk~v{ z0Lt$rh%Z?82C6?sa{ddYWd&l*3?O}-#o*#roSx3GbF zAW3!s8Uy+tYOziW&NDOzXHy+m zePV<(r!RS2NC_e*ZF`@(Y46@9U3|tJW~+UYp2nXhR&+6qJ8xNd^SHwneF2yAtp^6k zJWvw+n4g8@KlJ91X1M%BM_jG}ghlxq;rAI{&L&2C1m7pKBpEp83IVo$WohlxeW4!s z+0sWoQWcWPp+DLsN|zDEolo#h%AQ0I}pj=j&{j$ zraalr2sxs>&_ANh&Twywz)s{p17RF|28+EjJX&lLZS^hg%ben{Z6m!^*G_xBb~_1L zH+R!=g4P<#5-{XQxBtDScEJ>!3~bPdDYegh)tjwmkU$kECApxFSf-xSZo_}!(mc76#yGl} z`X{Mnte!3i)8*1vlu04hb4#g>zMXtAmTZwJfKrz-=V?{oKQQ795Ebu$cJc$-?6!x# zWN+1Fxw2S(uB}tRiVo??7oRnS+Kx>J=yd(hBb^r@AqV}XFD$b_Ap1}a6{T0U=<`iX z>%hy8Jsqg1f^|FD=DBCFMSg9*i1EcE|v5XHjG7lzg z2&E7OQ_Pmd(|>=pBiGS@8BVR`5riW5s95DD2MM8ukH&cbJNE?>T0ayT#u@>ZG2LkjTY5mPf zTI=A;$gAc*ME#qcUiUP0fZOVLF%1EjY0USnQibtt={CRqy?{1+LWq<8B>Fb2=`(ZO z+5dlCRd@+$j8^N-1W65ZVO4sd9-DYqAGIGM>hbG+8x?%@q*#THq&?IcND@Wi#zHKl z%(5l8oB9_$JL?Hjh;seLOlmxv9j#P;I6k3f(@}F5@XAV7sf=p^9?e224Vo=_x_{B$ zsT7`7%{d@jg-uztithLKvtxKF*m#0%pwBt&4Y|ukqFix+>m02)I_mSk;K1+aeL(xJ z-8{|opZ7^Di0*rS#j5?idm2249v;NE;G_Qc*lt@%syN8^6F1ru2za=G)k3Z>CfYK0 z!k(#u*u!%vJpKB}OFMA7@-W8r9FTL8Q8lOs79H`txc%Kq?-h`>#JS^)zc*8OnuF9G z-{p!t%)+7`xW$q#Gxf{#S82k2hsi~LFx3S~^3n+mp4-Hin_y?w$1}`t5SJ6y2XgBV zBR4ShGKuzK^-tC7>Uf1Rt5nhg9rq+mGRAeMJ?#qZ#d^JeR@gCf))R^mS zTuN>W_%VdN>Sk$j1S*MVC65J6`A7LDd^%?a(rxv>-sY@w*=_0b8j#LEof`b1Eh^TZ z<})CATQeWue7BRGTI1b{4#2VswA^yOUxGGuxh=H&i}WcpQ+n+NmE4OZ(ZknS{oeHL zq%LbMZ_mZh3wWTa0rrsq+9|+bvqmOK4@Dc`Fc1eKDf3C^uu0NRb3a zOeaMcPjH1Ro0Mx7m(f-Zs5{|Pxmx(X(LWTE1p4p~XPZ{Zww8BrDd>D`FS?NuV17~F z&+I!be>r$M`B5V7fdGl`*7BB~puM3})QnP4d2ViQ>SPQd6CYpC zYY^+~d-W+bo|~KH>2`o19L}W>vw28OJ%jtuOieCKF6P`vbjLC8 zIjPMWuR1}W%Q;{uX)mlG&9ZdOT@RXzBrkiRA|fEqy_rw{gOYT z=oH;aP0>2YL*HtUIM0HlV}~8=ZyqDGH#L1>bN1JJ07d&@n(IbNV9?jgyCFTK!K0WR zJ00OKpJ0YijHr%^3IUXnq_lp@>OcuKYEGG?(; zIc-f}32M!y$|Ul`c2^)rtnqnW0+pcy$%5N{tTAVf7$%C(=W7p7kL_&^o2O8Y;JZnp zQkc5q*#3r9yt=(Qg%pFxY_0VxhvNR?8=u5)DFs`ua)I=+3S@~y@pUgB75BQe3K4$s z%e`eh^CdAAp+T_S@|}b5ONxH=>x&13h!c6BCby115-%= zZ52T+`U>q#8x%8;ev_II$%SUFkkmOMA_}@-?V}vn)U<{tlJ0Fl1oC)CNL|4kbJgyz z-PE3($|(ID(ted$E1Md`#F0w(JBCrU`P1_IfmH|zzuqas zU2<=cEqcLmu_+`1{#{SZhSB9DtfUj=Ju`#F9~fDQ6lT)W9ga`$as!#FJPR;7)tOyuZ>731oY7NHVT(#ov`~o}wQc=+ov$g; zJ;mpLjI!e=p_@ZieURX8D^a|aVzkXoN$cx`GiFA!mqGU>*O*=vb<&#rQIFu-zjMQ7 zHvF9B{4?VWXKat%J1opCEuefCNZCz&^wqF7R>84c$${3=hc@g;Mo&}W-I3NACgx-V$%{-=FS zV8^aLSrqLzIWtsjf9hq2%?6)HLg*XKv^6pJrb==-6|^z@7#P}L`EEEtOP~q2A#&i4$1S_&T$Pe~)eo5t zf6C`>rk7zbr#=5fN23R-)2YTW+^i#ou5HsY-TXi7y=7RGUDrQ6^av6|Bk3UB4JutC zC8Bi05K@D5w+t=aAV`RGcSs6DBi*eaEiLe#=zTr+_544)$NTj?jz1stm^t^}v-jF- zt-bbd#kukhM(FSk-YKQTZ`MVxW*SO7_~C(nKUF&~+@F(DiD)C)pAVX53dMsItOr}l z$h^e^gtiwW#kR{NqoMXA3#1nnhfax?o?znGgJ9l`UbH3m;o+0Do^EBl~LcPX8uWE3`!}cY3m>jdy z`3YgEt}5154FVB3HsiJEtQ=LyO+U+%_yV(f;H;CdznwxdB7skiO^%#sB+L?tm}s7; z0baQSMzhe1frKM;Yax+Zu``VJdIFIAdO}kk^RzE6qk|1V6Ja-bqeUQBdxkD^iKvf4 z$Oc^q)=e0`k!Z_a9iQ;FcO&C@Kkx=u$UXush$GRd7D8DsS4EBHswT#6UQxWRS)lZH z*Kfk)QMueLJ=H*K`oQf+9%Pf=z0F1okzqm|K473C0Q@^qX{qZ?iVMm@mi;nSI$Z>jlwGo33_ zD*ZH3|8bcek7I9Z`-KwuDGK!V1U>@u=_w06GIg}@1Ze!3jK7Fz*N8bK6&9DMFLwT! zZ$4|uXV7qx6M$)HEzVEW!LDrw8w>|yR(n%WDBg2X`wH5xO2wx650k8RE@rPkj(WUPcCRCe%o5pD{)eqkn!A1I z`0}DsTK&>^ORtr*RK2#JN=gp@Rb!oYjH{!bb)9tN0 zKLGdA0%!W+SOqL@b1?1JVe@hm@J_h7L>no@;l;Ll_^v`@OH|6S%CgYr1)pmhJGRqD*!%546voewkLT`b_5Qvj z#cCOdYY{|rn6B*CtQ@y$yJWoSI}b2dmb0mIoXK6x%yj2k-@3gS49qIaSaMx)jpJdv zwb`{m%f2c9+zTtyc(kzJFRuO_my670{qm+U_nPy&*qV$CaXYlOph2$}u~>iVl8y%0 z$}y8W9FddTR7O$MdLNj0>1b4X*gLe|RiN`kyEu|FpA8@Eyn5PanyM%jLF< z@6Bg_ech1I_Ioui$-rfoYTE*QjhiioA3}B?NkqXVy28+LI?^UDO{?`Z@Q(n!9M-i_ z9UF93$~Di4BRWZU{tQ6#lI7qC*+*v@gfYmEpiSQ{e#Ov=8-d%pl~_5-$J8+byRA~3R*_wY}` z$Y~TF^PPDJwuh6mH#ztSoYb;-?Ewc@mw%g(V}+=8Zw5w8llRprJHg~#3OBnOiN?}e zZ?r{6@smt&dc8_Xdth!6{#FC927+f(80%8A?BYz zLvi@2!AM&GHc)n($#p;8y1n+S-S?QeyrK_Jq7uLTjpH-tlju+4>s@dDG26!#!@v1y zil<{pN^Ln5JTIC}y%yF+k66wY8RL|Zp^EodH1VvAYQmV05B(NV#4DB9&;(d;6OMtL zS2sn5*Kan(BA=N@?gG9x`_KK&kHD+c#vdZVU&i<$;d&+EvtJ|#)OPVwgFzI-l?p8u zXTPYf07H}a@M`OJCx5mZu&xJvG?Koozxp6lIyZWdbgQWv2m1LaTxu>NX3;v^R`yHN zSC@y-)y}cBhUv`WHLH!g+C!U-5%0ZEXDq7PHS48_zKAeFWs(5w^0dU>yXbT|5Z}CX zSSzUFQPxxUw~hVH%=epJ(GT4$sR9pm$Z7*sFb3Z^&*ZL5;k9r&`rh;ghFB-HtS0ov zRk+WdR!uJFVQ6^I&$~p*~sP)dl)SOb&3f26Onp9uRqVVIn`+QH1lG%?t z2XldTa8qtQLbmuz0^Q@NAe1K>YYco6fAK2-ZEV~WzuBV|iv;=1Jz3QD1R{v8{jP1s zeg#?go#>JoyfI2xA}f_m-)UvjOH!7Uhz_b|Z4M&Gvvp(6^;mVJs~aAhx7XZ?YT#L~ zVyNaYh@!%AzH}3=+cj>Rc(|0Zy14ttWMVh*Ohq~aFdX>Ig8d6vZ$7!=J8#<=P^1ZN z{^NRnODqYaxnuU~D}A(CmMPE8QBqsFZB;3^#s*a1gQMKi*tYY?g$}$bYHUQC#Ik+r zG6Hx3oRgGOh4#}`?LBYht!ZxuG_AMJPN?xa27M;AF9X_TzT1I2h#%_RyJxJ2doTOx zgRz(wSdn8Z^Ebb5THyn>53_J3mpN6Mm0LY@pwjT4r#x#@x4DCEuOX3 z9S!gezY;r&iGF1Vl=pf5n7ee|bH8O~>#nZX#?96Ku$b?!QF%6ev2&vh?|o0hjjWp= zS*$<&E~`z0s}tM2l7MoV{%8rhb`1!2BBmkv$UWuK5!8hN!>A>MKgKaqWKc|W3qCVFI z5Ugm})q9JKX2HY+77{{|WqVed$|KR=2b~FAK8N8zs_L$mM!&qz$x#KZTbWe>h;wLP z6!1uI_6)p~v)Ny0s&fJ0F^kdxoBjC)KB5LKA4uoV&eS$5@z2zv9@S16%M@>IF=N#o z1x2<#N)pgxzKc86X?U#0w0l1l@G=!fU$oVW-Oi@o{u+ZN;cNV~SiRPi=}KF*A!z4n zlHSDXk#Sh4gejVz7{9*)py#GU>@NeWoq}qH6{Hp32g_duFk)?srMjJE&=R~1Vz|6k zaB5z8O^O|cs(yRvuhn$eLs>=lxKLuCmf}5;QHU+(`dxh4n?i|_1^2CtndRo7KPFUR za>*aa2y@@}ddfE=VgF()t8BrcmwIL^{sfKoT;fzjv739uBJC*>^)~kvvLAS*HW2Yq z1v7@@!_ovaD?WEu_PkZM2QtLI))o%)Dn7WF#&4c-dJaO{Lnb_D2*(>d<*1u~*#zWu zS2c9}&buA8uP1BX_ufa!aGilKp_6MSw8@gF^==vExx8DXb>GOl5I6GZFg=Z{#%k(n zK1&Tf!5=qMZN{T@F0aMapPV%xwt(QV3(zTs;G^q;v*vDBC{fA@YpLn;#rOn&ahU9S zmE3kx>#w}xdGJ~#Z(gB}hO6Q2BzVbHL3jCV?dBrQS0ZG}0O`?eI}I z=@jDjMeEs%u_7HMEAdbH*LDAcv$kwydVZ!oZ^!z)bbE7FWaV47_-89Yp<|;t=dwS0)*SD%SFMN2Ca*c**=!;E1vgC6hJ`UTbfc0ee*!-6HXw7v ztartAy?5V4^vHL9vl-dn-w?x02^Hq5-o*mgg~RXI_u~iI<;p=E#`zCFblsF?cp?hW z)$dJ*kiEJKiJ8x&pSl;$b_^H7lpN603$O-k4$ajsoR(Nb0QfTedui(TGJeMQou-4S zxXC2t%B;{`DL~(toZ&40eyYt5L>W~*#oqgJXfL)Q&gL`RPQD^<;$v%Pq}PZ49umY} z)*;rtRu@Y)r=?plCU$eab|HfJc)=@ML~=~Lli|n)3*$mNFI57myT)TVgtIw+^HHk@&RmHEJCM{BYhkv_XGNC37o32|teexa6jkO$~%WFF1O7@q| z*M{Ax%>!p>GV!RBD~4pm_u`;6d}T)pUEI{*nmWOQurFMsT|NN*`H#vpam^A6)Y5aV zK$s+S9|e-LrOn-y8o!T#L`6i=ZAAgmL00h@um>BNiMvVvf1>?(~)F zzqcswA0%HC1AU^WP}ETf8mp}?3DxPomkk(ib(7Ck%Zpji&U(&oib?rKsMBt~$EYVM zPcFsjwJ3au`g#|frJN*C1KhF5Nj$AGmJ&JB%*2WI+n~@z;-;HsieEjJNC#~qJ?f8& zTz35kZ9=q#O5(Oo9ds=&3W+7(+v^!GXA>8hq z-q0db9L0sQ`gB#JKgcg%X}wp(QS=l2rY@o7SD)pUd?HlxVeloh<8VrxY7TAhZsl;; z(psoLobjA8z$0-O#jf`d(n8;t{MwBltbon~m`dt;n`0lekAb*C?(=PoGyV%(hdU|z ztBR(tw<5J7N5f|1lmOKE$s>(t#i`(?^E&o!@Q517ltW6w)W3T*%}3**CCL>bE`>Fm zxSfj3IA!>wfx$q6tRC7{D7l$sNfA$)hOE5Y+ROd1ZDJ8}fD;$sjyrxVMI=Hk@cN%Fj}3{Vnraj*3Yk_e?To_x&&s3S#!_oK(lgd&UMJ)6q!Dx{gYzk6`gcxDV#Q`Vnox&FEh4)B8z0C4AqTV12Sb`h_3K}wq#F``V)moZTMLU=HY?BA zjBAjnDkgA0x^sdPhVf(pQOoR5cpoj<_a}Sxro>amm@D<{rV0H`5<-OSJXs#7<4I}DrHZ+f*R1Zf#gNBj{0SNA`LVO&|+{ypcU|fZutAlVaDkq6gR%ck}LKO1j+eukuQ zSt{~csrfbx;imp`?6?PmP?3W(!bTp4yQ4S;#917o`v#?lfx;o2Kq*@P3r6zoOthpM z5T)@3K&m@D>hl1nR*%Qv;n-Ra(>8~Ig4 z&K)hNl+{y`YRbnoz4NVN?To?H`jXc$38c~6v1Hx3qySKa=9tey`CGOayg3JX0 z+aXv!wCHs_I1`V8T0?>XuPOu|V!Q;T_F}`$&1)V=EyG?ed?F_0Bur5Sb}Va`ipV1m z=g|P(+^qTP0e{h#R`mv(*fZV=eFTEpFD+1!Yp(;b@SRi7$=|Lv=*1{TD){T&KYjOW zLs19c%D9tR2AR^6eQzd@lsVhZ0W!$Jkhm)55t&RopaRZQyHVDGGjJgA{T9IXr?Y^; z87u3b|Fm90-RCqKNhgbJ^%7UKcZ2JzWK$;K~GrOd11as4U=D3m}v(U>D5!}k0)KBpEsI=bc9!5&i?>t$mH5PhrCFPP-w-xHF1gXoASP?M2Bf=ZhSC^OxK*8uO`t zp-U>gvdU59%Q}-F$gAhYuaSh;5%L#}BN^Sfh~|P32-JEJgzUTxMLVx0>_=7~c$xWS z1^YuxNSIB*((Cd`=sO3+p4XKzpwc8wCx0Lah|CgmQ7fauG7s>2a(06~PPvHM2aiHI zN4_akgZQ|Tc%juIOTVh#5G-h?KuRLf;VsRp7jh^{)DC(_tI1ZPEPgFh)wq}VlJnoI zc)+B#Wtlim>Ch1yJnr5VH#hlZikJvlG#cC-EX7AVizYl>ualhNnoOppO#={pZmd#u zp_)JjNrI}IgKT&P>q?`N`H&qO;C%to5dOna_WPBg zJp+e`R3&0d%mMI=O`1emf4fI=JA){4ui~&Shz1{1yIH7x07ADal~MqmoAk3%r2PaP zo`SubpJiUf--oL9d_&lqS$qRCN;x8vwXjhL&KT=O43_xP9=8GkFCmy(Hi<2eRc7CHwJX!%@kLcr}!w z!e#je3j*lw$E1FQ@y%tqSEWn0NV+b1=m1A%p#Rg}_RIK9q30sPG>O{trN?R?SeE+Y zm~>gy0axvOUo>(5t30oVFC9<4iQB!RJ)PL@R9U~I_e)iqf?iFKXPFgc^S2J=lvZWm zoQ$MF6i!TQHmSA_+sC!W2J-~ksitH0jBXy|EUCb|8#sB1w@V4PFQ0w#EbdY4aYzT0 z)wJEzzm%0qguwvevjN-)&XM~*kivRa`i@ivDDrIt;EMUq%PdD%IY?zB^YGReC}}+8 z6ZrlStzH6Tpk%%C=sBVj2r8SP%90e?3I}bvfuGOkP#}7lN3?wI;`((W00zKe`OCKeNP zGmrkcj0#~T8EpQPC9{MI@Da#$J!Ca~Utj_ye|6)_UOxKZu8_TQhbXzL8GsJAuJTfS zlvrz35<`fwkHRj9k5|2tr2$M;Dn{~2&N)!_{43B3yyil!|G^<93Wr*Rber4h)0 zxTyr0`>Bet9}?<+V4-y;1v0hJDUWIIytlXSqK)7&(3i$ zNq7AsFBGYrWA;lqGbDwyBsly1z;cs>|6E307$lZGo*VzQn_HE*IrDAmlQ?@VyS+@% zkB^egcG%7%pIWAHQUzvUam`70mj)S>d8#0`0GuL5sr!<>67>lpl_#yegjB#Z;3f-7 z-DVg_#@n^jfp$uid7HseIqvh#W(p^I=6f$mrcm;gsIrDx)T{E+Q#T?d6{MFd$& znpkgp{WQTEM|S)cjoPjC1#fMNJH8R2wCZ8G^>ott8rP*OMcfSFJZk1S;v8vC?$|-G ze{ZsS{M+?HpcB&m>-anBH2^jZRJ+tb!S#oT%|o43YlSl`)HLSnY!$eJ4>Nf6%_mCs z7H?-CO;UdAoPTM*;6MyT){gr~{6L)`Rx}-%B{w1sRdyw+z%M+v7{o!1#$+mH1 zOZ0k>Wum^2<27=`Q2ndXP$DK~z`Lwvw`N#81YQYUm+l}`5^JVgc5C2$ZJP4wN%0^L z;V&5^@zyPrUzo916`2jnoOu=a^+!}(p#~opCOR9Jb~$K#vL63n3>yj8Hfj5PTdjVn z=OroQyD3Z1yO}qBze&!a)w-!Kd{bxa+P{5P){vleD(HwBw}afjnN?)GQJ0i|$B@R{BKoQO}sfRi7sJ0^Dh5!>ahYkC@d2BMo(`)YA1&G}R^;RVJW^#PU9gIefBt!Nq z`kRQI22$YerE9t(`$jAr)HY#c-W0A^UbL*oFD*&$WhMzJ2>@9ax2~AjM#a&Tjq8h| z<2e>}Qubec)rG~;4{t_ZCi50@C+et5yCHv>1{A9;ioG z^at>s3a-_7fAPIEg#G3d!e(s$2-$EiW?E>`2&k)RiLrq>tAHR9BqXMwqGMGq zR6>@39%>3_3u2kn847ijNTyc`-?^A1YIjf|^9l5140H+tAe5y{+{FsUs#>mNdq@uY zu`wQf0Dodl)azoMQ;~pFkR;g1faV1d%8)`kAZU_#^suon`jQ?@0pq}=16KP0k3pXo zU--5Ib49UjIhgPoj|+YF(cCW~1E~%1g4?RWEr+zE$4Y$51~L2ieBWoeZ_lzt&If)7 zjt(3>r<7{tp^dt2T4{y{-*}{oW#!Aq@g*rA88H6!JeAv0o} zY9Y2@!JLOxKMBx`b3}XTUR*fa0jasN<@}EKF=r6n1o|RXkE$YH$g=ac%b}Z!z*0!i zO^Mrsy?~++l3LK!rL)$vyClOQK~&I`axF!B92O+kVKfTX{Xh@MBdct7qiE+@eXC$& z`lA~NI1WNfG#|n`^vg@BG?6S*2kM~@U}+9>EI|E^kyN9bZWS_=-4B##*BEfmK($uG z&Gp%|%YE%QY?o%gJ{dI)NSk2lr!6RKEo50J8m2uT9k|^YtEQ(4H=R$*4;lZpz%QDX z@2dpFP6BqNS5GKl80$W`uL(GnNb^ujj(|`>&6f_k4M2hjTOoOAu9U!>3RX|T9cnjc z9=W9IdpVx)>Xn9^ynNM?=^?{LR6{L$7Vs{N>R7x_RZHTh)21^ntOQl2mCB3j33%0P zXG^}m8+R#Owd&cIM~67>`kIOOOZzib1#baH&>TbYJ@xE&{W)FHf0x5&ODppB5i)w$ zOIzLHMVS&M^5}9bsr6L@keOWBRyZ1{f)5O!42uxHY<(X56A1#?X-x`Ks)MdCt1^?+f=-)B z+kc$ajY@EyXa^m7sU&S{NTZgEgR^-UXq+b5#Sa5WOm|$rNM}JE$cR4vevxj4eqs5Y z?-|G*N2!!Ao2`}R+5X0zdI!1=a28?(9EBi3O ze}!+h-G1%jNzhSL92NCt-nw{KhNPAAxBdUo=z+xVJ$$PPe(dTQIeUWEfd=!G4CAZR zzeci~`mZ}D_5yv7!?0*-eukA!T0X3A`Ym_Z>ZVDOhfZd?j@`E9`4gLe2L0pIZzP(O z(2t8~kS8i6pIV6PE38pbw#YZl&UEu{Z{D8h`zGgBTc+K12h9Ij?5={$PwUCDzo@DQ zAK6?S!dto6@b20NOu(G8mI-o|s`XF%K|LE)=&3-3Pxl{`0odly>8WBv$e&A!*18iS z*7MsNg2P4I>#)DjWnITx=F)qtyGClMcv`qnF~@&~{;8q0^Y$x}$<|0%`E`+GmqpYG z+h6i6^h;amY;ME}a>wR}P0+3K^=_C*GeeRM?LYGbo^mn5xG`n|7(#c?=*}k@MZ8Uetd*! z1pjM|77s?Tf9jNuVNc~*75wim*qkNBTeDjX35>hz5;@4`fA?PWWOdfcjBv+h zuVj_++Wcobg~yHUwp#g1&MKdy%&(=KHFbRc*TPn9jG4h1kp?>V*l}!4N?t$w*ZgOC zjCgB%b|(2x+(Nhbtz&uWwi5m|SzcZHF!avZxcr4sl;}-p^Lag^G8WO+@34Qi0P47$ zj{wic=1cb_UlmO*H+=a_=jD#VYvlYtDa`w*`PYh<_L{vYR_#dzRl;wP)T!e%y)u zTX>=8*r?fnhav7%7)TSj+Y0Or6bS@k|pww z^Z}jzq0g$a+FhsrnaW)!`F})*_^y-5e;708ZztKmav&@7FF}Gr|0Qogr~mRS(CPnW ze*ed!=qJmRf?D~hYaReo(z;t&`V6L&Ma%@92%rcdMUpaIUx4w>2U2Y5oF=t#W7op? zcWZ&hR1tSSlRnc^%D-Fw;8E{{)vS#G0wGNPXVq1a0#=XB1fJnFqbBO&0?|TpGBRdw zc*uvpO&m%UNxe+Ww*piNL_{5QrUN`4Gk!Pb)c)qXuzakCkUW#YqEBujKB#x=debYEhkyKD920W7DZbG@82gRejA_B$AJ$l(> zx+IRVBvy|pZo&}HLP4!#z>meS5VTL};HviwnX!XjX1(SqAXn-^&DOVgjX=a#i7QhU zV?rQ5xQo0Nl~}+_A!F5ppOe*pD)c0FZdb6%$n+bFCEBmc%H)o7Grf-fScqZ0?0=B1 zNib;Vw(^BIuq9N(7ZUT%244Y~N*qDF#q^uxx0i7|MMeT(lN9grpCo&GO(cMSVQ?my zJV9MX=J9Y;*K4f&xT5i2ZmWujnVxMk_GJpBq16T%#OkoeedKP+cvVX%m(|j*j8Gpn z2>u)hX{{Df?j5UM+$MlnQ71kVeglyFSqMc9c4GjB)ofA(#`EpE$L2o;%u2Z=he)-l zq0qHJj4|s_M}YphRcNR3#qUZV>fqxunL1XHbnpd!fiFY_?c~b`Bfg@4!I%|70DHlr zk^e)iD0_#_?WOF)r=~$%dqe1)`bG%|gc9B)*y#q?cc-wO*a|wO9D>BqdxofqoHfs7 zWM(@*cL^N>{Y4J=bxZ^Xm>+t*Uj6myhY6kX6#5EMZ+Al@6!FZ{n1=gU!E22T3f(n# zSbc-W_Zm#}h$w09wQ(_BMqm=Ib-;4o;^B~^M=IhO)(nYVGr;J(=u=yR8l4g7itDpx z1BySN5y05<%ntHS+Z8bkILqY(Ck=8Qmnrf;1EzQnv6KPmd_*-x;{0f^<7TJVH{8DI zqbK#x>`xk1zy>r2geb_zi3W*Srcu95isS&cT;brdcXf6kgv7X1&>OPJ6He4j^(-nErKa zU^DhE$KCG7j_#W1{!L62e4IeVq4{*k7imEXNX(vbAQ}k-VnyGqr4JJrV8QGZuvipw z)QNuA_Pfo46kDQrQHg#oHbUFQx=(AQj@hjyEF9s)Gx}N?5THteuf2r=9Vdo~5gbK9 zFmkrTK03mR_p4%&HRt_iHW_pNoW#G70bdzDP`(Sek`j5dVqfi6_Uyh91C)1dc{fjz z<8F{H27Q?@ZYHX!9|?WQ3BP8|*a?_W#@!&k{1Nh&;#yHc7$~BIgru7*?~~=95Wf^X z6nQ^qVYOFR4|dmBh#1^NJDgp;~dSYF7?sLMik;JyI)<}lr|vEyb3Oi zoMlWzAGyFvL3{7$lpq}m?+JP)-V^kHd`NvSphoR+`drr15?NFO$9mO6@cc&Tv9qkq zCVJ4ymU02-Q(y$OcL5{h<$%=5$WC2bSJmKL!X+lIU;jo<{Sx?E@Jpr+a`o zXGH=%Dy;;Rhm09x$E8biA8jr0o4NOj^BSjs?S;go+_x4MGrJQqG&ke^#?MGVCqW=7 zKbFU8XYcm^v0j2O43I4u^Lw44lE5D2rjzqKWWRn0aBWpEpvL~RLS;{>oA@){OqWqA zjp{fFaGWC0wf4_q_)oNfl|Xstv{C^(L&xSdaPqlp9Vd}}l)h_&7|VbOWX#uSq zNjI-}_oqG$-*wn&U{s#y`k)1T4Vllt&$R;1aNv7KjKrpCb6~;)EN+JiFS-W*j>1q5 zDi=HO09J1{1lK2M_W*?g^hq~mroi#51PlX6%1H!(j}Bk|ZT=eUCq)-8d-vhY16Xj( zj7l}OFgGD2#hYF6*D3G~L_`{$*2V7;l($HWXm6M84_#u$zsTaT`TJJ@^bkaEFzIUw z3|$ljW(9Qy3i#zn+bc#8vO;-@9`@hv@h>FhqZCQs?eN8NsB=IOUMA3sSlY_tk+Lq4 zp$TvlAtG?*x8%mFr-AwX@OU@w#H_qid`JJ7PzMjNSWX<)oh=@BEr4yIQjDuu z*3x8Z{1%FEB5JXkjg8=d)s1Z5J+#6Pw3>~JkR{f)bq3S~TXRH&#?o$|)=xm`15f!n z`?TV}hY;%T%E;sgzV1uzPLc>#EXD(##SB$3QdD6Qam)%Z$^vS;lFq~ZUc=a*QB!o1 zJ!>B-hs0Gl2V#`~8l<*!elep@i~U_pm)8Bem5)F7O)XU(kKwn)z70owU0=?FqLjMz z)$>qz{s7DcC{({Afd6$Y4_mjhm5yD)-J*+|*v6^_C~)94B8Pc*r};C@Dq#v;-ca{9 zqoS$KK{W;lMEX5Qy0&A6<&gY%wUDxAp4HdSck4*eHX+KA7A)ninneCUMNL?3LdLPjeMEFOSkbHXpZY(5j@03LFO&jQ(Ne+o6yCN#jSmIjd>TMK<;K&>Blcc}u=+`B5t3~-!}PrrcXzebs-?VrX& z?wDa5$QYjAEd(*(hVqm^Y{%YsM3i3za`}wc{6`7X5NXgplXavH!B9y-u(vJ=d$%c< zr5cFImK7P`0ABX^6>;2%8~KrDXJdRkzmcj8L}M3gQFXd7)p1uo?!qJa*}_Q;5c051 zG>8r_vNiuORPz(Rjn+mwt#7~S!;k=_<;qj!w(A%4xu!pJkU(h`P;TmQaY|Wy$xGh# z_{z;r9DS#TaG8GG4O(pqMn5bT_gr+Aw~yU#+&2XTT&=UXp^k?3D8r5dbP zZeJ^-!*A;8gO|wE4d!h>#VwHp?JjBl7+hAGv&SFITl)ZBw0#IIP^x58}Am4%md>g^w8+qrIv zG4Tj_Dr67ZJXcW;M{LzsC)tA2M|no}6$#(upnVWOK|Z zeM#WZnLQxiS+iZJ-n!AysGGW@>nU)Xuri;xUb^qhV7mz? z$k6Sm*~2~Y=Kpq*^WrQ-Dvb2pw!zVm^e7B^GAorO{$Ts$GrTm-k&6ZI-CEiGoO;sQ z)ehH?j`niP-AGhx zhd{^aSG>%&b)ZGPX?x|dr_8T`40$z>J$~SZNrMn$0egN4c$qgRnBCrZVbsLO!Dx{g zJQ)E0Ez01&&#YJH78y2KR}`zRG3aqW$jgOHY#+Y^CV%d$nIT9Vyc4ScUiQ)@AM&o{ z0vF`q>?H&r^*lYRnZ~1RkSHrWe*3}TVznY{5noq_*^wTlIWJgD&1SzPyOoBuL1nJP z+2DonzBTq$iL#3J_;GQ63%^#nCy%uMY zwaq56m#r0BpTrYsDpLL=Yis(9Q3035!hoyk)j^->LfT>Mc&kvZ+8#E)GVAQcqYGOO zi0dHw!7~*&v9=oEVv@`yIkV=kb9a6z?x$^!11sV$L;@nR8lL`CR5D!?$G!FeL1_$V z&;G4J_fg4E3qmI?!hR7B6bUI)wXqplTsv8O5j)lYxTA%f-_G;Axh!|c)N^`dIg=px zs8Ong)Q}(|@z+H5V^lZIj7BZZE!e<|I|~e2r2$I9y*yrJ#T%i_8^j$l_8tSGR95h? zmnZsIc3|n_ZosQXgeQ9^AH$j}gMaHl+S6h$C9_v+mc}GTCfGD%a23{;)!iq9Dyat& zcFjW24`LbHkT{<-`e#0a>|6|B?)pjTV$liKzRF|sC(S@8#}t#GfaN|t$FCD*<=Oka zUS6mtNxm$x!v%|D7Hg391k$+^MvU@1MTH9FG+B4HSFj7{crf8v)(MGdc9HKz<1{`4 z$%l{J(7lukD1RgSEgrYI?3qdfLlOqQwLqH&`oRQl(2tIFr?UwlpyUKd>=WKP&VDfz zGa@MH{0zkPykFnx_{8;tB08L~YcCa^?nPI+XhqPjDfE3unghJt$uVg-<87LPs&%)q z`RX8f6kXEy7Tn-CSu5o?`zN`-ha_4a#^ij+RoDQUvpzrq|S zvT00-4o_cdsUK2|?xrSf55ew8yTwlePcQWSIPTi1NtvDs=Rq@Z`oSihB~ChPTwzNC z<_f!Pk^$i}M7F&ABO;{O%doz}yl3UpCBwJ~*J?LThf+%?lu~p_;whAc`3|007Qc_- z2lRb~8~S0S74^malknoA&a-IZs3rC`Eltlr<|5LU>{qR^ziEaylIoIo6;-q&G^beB zK9>)Fffq+Mn3h=c9?(W}M_j;v7Ihrb;G3}0IQmXAHM-biFZCX4PoSVs89t@Lbxyah zdlGl4NF+cX))3fmnfVE1Ks*E(1(Z?L^ql*4Z)xI4+DCPoxI{<@Y++xoUbv~1KRgR~ zPS zE-TqDA<$IJdGf zk-IQhG)_bjZ`Y`aPMQjXYm)Grk9Yh3 z|NU>ssO2?)djfw8;GJ$fvN4H1ALR4X@ItWlVx<9_wHar6M8+G+8=T0X)k!{|KYtOSN#oAMzME{@Zg9ic9yl{@k6-nPjKU^}*FeJMo4zMH$%Eg*m1{O0}LAUyDRv{%|qTcai<` zvCZeRfo)s3{QzHldc)$?tC~)YeQ|H&foW?ZND2k~xG*6%BRFK(GUNIU1KLoh)nn3| z$pGe5Y{7TG6Kk!O^>Bo$<*tgW@3q{=52JUcF|Qe6JnC@sJokEZ_MXk!@CqB6KlXtG zPj$IjGsN*@s&BwU5doldfgV*|rUtjUPls`}kN>I4K`3O~%rd+Z- zaiyL(uwfC~l6O3t&3=5=y}BihyBFy$s5~lK;MO)r+21Js6i1VP+EPlBM3U^MPZ*i~)rw7}M6Vid%!ImYnu(gwkj&u=*i0 zUsoxEddWVGe&}eiP{lFrp}AWnNxQ<^ey9L99!j$yIAk^LOGdE2OAsaU-Fs41lMhey zp24J88Us&59G8;gb&0}y9~3(lufT!SWPTSc`vh1+qt@gyW)n31>N3_^V|bye?FH$n zHepm9E252Ud%oVYGjMsE&S0m3+z?WFEfFaB?Pi2@wR7VIK`p)V>||{2P1-~s_AtsN*_pdgQEv~30yAmqRw73EGvfou} z=ngzPE(~?IekTc0RO?Zf?wX;)TU(9k zg;$mqP0!Kci`2gE^+JgY1^x4a;ic<}QW-BNi#pDb9Xw2LP$D_w2luk1S2BHG_g#x; z_IAKI**d&kq=n5@_ryq$RnT>JSl==HQ*JbwzS{Bd1hdQPEzG$>IDPoFLPG-kjf=0F zUC%9WZq*8U+-#n;d>*Re?z_&c=KT3&)S)N#U_N5XO8TX*hbEPEm&I0o?)-7y%tds; zH9L5%Om6td1$#N}AqQ0f$Ura<{owV=yvN(KOHt=bWibJd+U~=-+1!RXS3XjqdJE!S z`wHCCM7?N??3<|&G8MK?o)GM_zU=wy0`Z^XIm<~i%zl~^7tN!%;gnsivBOirOTS1k zJD38wqwESaRabu>TYZXpF-vhHMvVR}CH(cF7Hnf4LW3I8VbrR_yG)Hg*GcDLFI<;H zX-l|W`aniS0GySR@K#f}U=`QOblUY3Jmd6TV{~FCHN(`U1c6gUbIA66zuHOnzL>Hp zj+Nh@oeg$)Qy+mFQ&!mzKhUD#%c*Wj6Q^D_#}e^aYiTu*W3#RCdk^0GiD9Vcjqt&w zAeZ5qX;G947sF3imVJvPN8zirLasN+v~=GVN#te6g{mB=cew25vZ$@>r#V^mM}G3s zE&EyBsBVujKRP_R7Vh;~_WHMYMBvJP#l3H5 zMsNF_pU_-AQxKmgxZJy$zxLH#c^VyT+PyXD|6;QF?D zcw7|x7;$UQ`TMl-{qUk*<`YF3b%FTX7kjtV3}?sY!%OD_5o;mxZ_j2-mS$;=!VP4Y z;zHd&zIGh$Xj$3s!{maoHCVr9a~IUm5x)I0!kAi=H&~OPGME)LW#_xHI2#6{ z$&^GD4m+8UET>W2)~!xc?%YP|r=6qzw&Zni{c--%!*DONqNaSfBX#1wa3;0H z7)I1{_{#ZQr}8I@^o;@WF2)_ymdadCx##GbRF5{$*lqE$PRQ)0H522#HTycx`UzvI z>fxftfdz{PGp&!M-dYo(JSDXI>>yG1)M^m5xsYyoj>S*+;`(-J@mi{;qS}Fq_U`)S zkC2d|BLJhLLSh_Q@BUZw|5T6aFY$_wfCTvDFG0sjfWZFqwS=A;@bPb(?{gw&?kbu0 z`Kr>CQE~Ur9EUPJDFxGJW_*w5X2gpyb|%!y=QYgq=VHE|q7swr;s3f#_Q?pwrUn^rn&`_!YO1{PIhQK<^1oY9Rj?eKV^qMJClY*xImiKndZ z1daU0i!z;{$3!-dEOJbw@8#Dt_GE7yE2b3bdqV4V+e5`?&FJ;&p7)u#4ldF6olt@{ z~0H%pQi$YSwEaZzwUwEfi2C=pN@y0cw01K&O!Xy-IgdFw;eXcMyuB4$#E6h_yzf~4^ag!^7Uk#Q)*5M1jIT!18 z5Y>~1*|x>LnCw%=tB-~&MiPtaAtbf}u#4XfqNje?r9)4De{-j?0tg=^-%x_BZ=YW2& zT&#*N*WdyNh2M3`VZ%eTpXDg^pRi82$6ib@=?$BqmK#8?y%FW7Y7bNj@=G&wl^QuX zo8F2}>)iIfWMT^4$EEbk>LK>Kp4m41qL4Fnzukl4QXchSq?+mW_K~?N7Er^9d43PkbVIK?SF@OB-F1rSq^;eOQt@pIT3j zX@8*S#naFOAt(2EcVt)Cx9gATI8{$D0(Y&NVd)C$B$f#WX)jErHkn6U` znU~Hb|0cZ%xM$CumB{Z28YWQF^5b}^0-BK+ksp?oWz;Ioa$MKZK6>Pgib-o7G_ok# zT=yA<5fg5$s&tTmeu(dL=}(&;XGcF1*nPKYjF!M)&)4s8+da%ZsLG@p6EV9hDE0<# z%&GR#@ah;^&h{&1Kz4+FI9qCzaF0-H`EA!LE_{G+E~Bux!k(Xd2(*LaWYmLnB~S6` z)*cE!TD{*#i~Ew?6t1Am&*Xmld>d`x#NH#2zpeJ^MV(!9*?pWHDWq*(L-##k80Y15 ztIloM|I^-=zeCx@|KAf?k|olHrV^4eWlPqyD3OY%WS5<6k!@y}$(pieon%PGBeE|s zW`<1fvMcV{iAn3 zrFO*>VRxKPc{@;d1&wq){PbhF-4Z4@dCC^-v=D%k@W_SPbC9tC%3HYs+O4n?v4n|8 zFN>$=f8=<+BVc1qd#@yMQ~=g5!;CPTK{#HeAh%hNqdSI0wYmb8<`4Aok&ucuzFouef?%xgeIVzxf*s&0IX?caQ>!um`?G-$dn@zbywrW|^LG&kN^ z2w?ZLweXBB>eq#$8rz(T9h(+8&LM{o)M>lH`^SJ-z@hlO_6i*D${9=zW8hn8h6TZP zI(P63o)_2h?L8Cm1>-gQwYBQyIb)pEZA8muAi!&0^T!M_!!#AEvYs?z>)4fINNw>0MioH(xNYOf{UyICAb1lJ(R(ISU-STn4vz=ea~x># zTS?Z|A<>x4qxrO=Wk@8!gaA2~FXuTRBxjnEV8Bc9x(X(@@Cgj=^7_eE{l zRj|TGQ%ZAnY)aLBQ+J+p2)P)RNfYEEu8%@-1^&xq&> zU|+&*5C6PSFYGfUulU3{lIle8!kq#V2kv;|riSR<`_OnrGH<%GL|(4ygo=ekpMk$% zcbtg;<3b(OAp}Oh=Ct=n_pQ2tXZ>%F4$(Z>r=x7vU)fd>n>X+&oWJIM)+cJhO!Y&y z9VL35GlN$5%ZpuCKtub#S{fdhx|+(q2GP9-I-9Ura~BqFIXVi`ZrkTnIigCapAI2T zQB^K%kA&A`LJt0>;+{6_6ou-jQ1z1JLmE$TYZqM#LvqJpIx<}9!%buO?(Q&mN1o48 zi)U|*XJdR&A%2BZcw#b3#vxqx`x*F1Cswt)w5P@%TCC%?#8K9rPg4V+*FRr4R|C;S z8a`F{oUq)$o`A7x58fRRTpD6-fZ5r{d!cdxYJ$@g%o_!tUz2%&)%?q*bfa6}z<(aj zP5aX!qvYe;!HdGDemx2+Nf2ohA2)mC=v#Gv87$Uj!pM(nxAsR2h9Gs#hzuE1|z$Sl{enT_9b8k(=AJqrnaZe-)5!V?6{#SJTP@1t}>j| za}4rn22P(PZY zppKimCl2pxq%kAi6_CNOs))hO_Nbt~*Q(?HR5Kg*)kBZ|Ad%wv8Kn0W(WtJj2sJy_ zg`4%LBb6+9AspCeI$9`PHZbvpF!{R*+bxA&P~<`h_a)Tnyc~&ZRq(;O1u?}b zA{Cp^q9&ffks3<#H|O9!_HE+Q$1R_4)_E*Z;6ZGgEb$MRJg@h;oBqk(?D+0yIb~_X zEk`F%3El65c!A{Xp!^0J&&(6|!(#Y4nHos{x`GP!sJZ>6F=cd7n!DUQotHVmYV3Pl ziox91uerTv;d<%Fk)ndTFZ>W?o3ZB0;h$T6^qnE$Z~Uqwm0>TMYMKAm52i|z3*%#$ zUNv7dBnw5HLi7EU<`Jjs0{T2sFJ4<|^7L%=bm#3S*!kt{;MCumy7R2nng=A(h%Yjj zk>~5w`KO`ZS|&BRRDvrlzARef+4KqCm(<elM(RI5Tlk{RtizY9J3M(ijzj7V?7KP=QT;SGNNsn z7SK!l^Y*!mAIih@C+#13jCPKQzDmm${fGi&{7fXim6=C4$4c%m4PYSNtn&J+s$NuW zAwoqbhj_x=IC21k1N7}U3r@4<3RDm&}^5uNnVvxV&fYL#b#aWER zha>Oyh8_?GT94p;-(92+GU%8OM2VNjBp1o5DibvWf8? ziWP-SmQ7xVxI*7KgzTPWYam}wGcI_unGM!6v7fegmW?O5sGz-keGHpbSe~SF?NP#Z zEA1Q1-8fZid1nD^5aHCaEaQVeUXP}I#Ut02Sr+5pGZq6#6xS-*@g$2`r(J2X+>i9i z@3ZVc#i5o|L1pJDee2TbR=mq=a|~7-w5~PiX4@U*Jqh5&G1SOB4Q^g)a^1x@6QrML zY9MYy=E;EKge2br^m$ ze?dq@I{C)7+R&I~-^53D6TLt`eO2ECXf#3Izf2o=4jD^01}%o2tk>z&_&0a-kzu9T zF9*rXwLCu(vJv(s(xHlKo6dQlO$>Kr6r|=amqvy=u(1;k05*Iv^E}^@ygUA)X9#z( zaH!X<&zX`+H6*cvN{6;giS$U!OVht4eM3y7R#U#_#JxXjgEX6eludNJ6OGquQX)2- zK0X6I+$DP`RR;1+xU&u-!0?#UKP&1HOCW0QZCkR4F1-n0GkmaLw`F&`I5tX3$5}(h zzJ854{ZM&tTMJ=qaN{nhuz9ZV>iq1T&mq=bD9gB=ySC!JjhP~ClP*1YE04R4PsIgq9dcI05WIGKo(8Iv}}fk>lFjYpB#jpuxMMMBR#tBK~eH<7rL^D zY7Ma6j$c--Jc8C{{PXILoY=A+7BAeaO8Z$k%ubOD45Zc5n0hc0XZyT{Qv`+u|9SOW zk_Fu=XT6R_ly|;;bJ578sab^`6RV`E*^8m+hmi`b2PtpIz0 z9F&eV$dslMHBJvVJW|!urGMCyuKeKsO|=yD0qV*l{qv+l?0_%~I z%Y)Jl}#sm7JCE!(PrH-k}C`%e_Rq z(xY|fAQKo+v7FkfW)0*ut&3q2Qw4v!S?7`kgnEX<;ENpCo4~JMlf1@FSwBclL1#N) zWE_R1XGP}E>_jCr^uQUC13U1<5NuD|HIy)a0157%E{}P9KqiIwibl7MDhCYw*utWW zz{6-^(b6)&A@kD97U76NG9xbc(tt|L^>N@e-0@qf%T$1(M;`1!p-_}G|N8W>N}lvq z?A5$s^MDnB0?(5hY^jen4=qxBCT&GN^IqDTdZ|ZK;Odu*R2qk%Nj{4mwe`aA3tKp+ zwbty5wk|aPE2Bfs8vWnVRAMEc-iWmEgGi4JM01ZeF*H8kE@}U9E+tfL*;YXrcobx} zLn0Y3LdMLzMPLvGs&&y0wd;b(IaL{>QU|(EkE5nTPx_uVK2;3d4TKc_j}_}1oieYR&OdzwPW%|^G5Xa!qup`U31xp@mW3&#w2pAb^W7=Ara#Q ztbwj*PJ`pXXw1OI68axBHSKI#ap@(PQqEbviOLq{M=Gx?S6AHV7;|!sIGM5$xsF#O zQ@DCJfKC2BO3A7`!8&w5wdo-z=qj~J8qGQ_NIDI9Ku_A}AgFpxFj?xpZeZQ8t$9fl zO$ep?*BPK2{&Z&pmA5wbCcx5e`+0=`t$m>e4(=B{Rim~C3?1QD(+gf{a3c*eLjy+z zR|`Fj9+fzhXH0uSufCVeu{+ekd23ja=qYC#jOV7wnFRUeXI`IC(nEkTVm_=7NJ>2T{kyu*iYYfgA+er9y+sld9l}lX0zjvgjshs?Z;htckB7 ze5NOHTbc24m8_+7`@;*Ty%`eHXy%9_2a%>8?d*FPns5rm<&Vatweh>cE@$oiL{Jo? zr~E5%(oW;;%gDzZKY>oubWCk%fA~K#kbi`_9vIR(vQou%F`k!?iXr7xS^W5Ob!qUb z;eRhR$z-i};adaoIa|oTXagVoplQas?pYN|c z6KmJW2^3_`SU8Ri*kfu(6hm#p#^csC6$GotHkKFiF_AySqKSVS`R9!=;d(X6uaeff zm%b&A#_sc*6%Uav#ccJ5dH$_5T9`_5zIe`Sv<~h$i4X6j?+VP1^ganXHEy@S^0X-_ z*|!5Ff9dg2RurRw#}FRlu!oi7jnL(q4@tl9!>9~)p8=orSwQ)luN}EYA{DC#bNZe2 zqPqg*_-$tQw$bB>28jG?sn3xjl*sP&1z0~g<1{6+)5P#t%XMgaAPWJ2a~5x-lY9Y? z&faOO~mR;I4Wz;Y$H)Q)5zupZ^k)+6O4E=Rm)A zM%xhu(zDu*tK~QU>qqe?eZhP8j0?E81kg?kf5pnDH z!r(@KPkDgR0rQi>GYHYXm6+AvF{?|`&v0w>5{pN#M)v)2WJ(?2nn$8;KGT=i0Ju(L za-s-c%aq4w1S&y5G~Vks5qlSUD2o28c>8x55*%WxU#a}c3V4sitzqa-ca&xWg@#D0 z_*x3MR}7WlK}NAd9D6GWW-bKrrMG<%{$;V%pi!;fF21I=2m!`>ZdKy2gthcMGGhDK zY`}iO=^(vQWdLRtF>+@Srec)KGtMEhi*#2w2tOPu!HY~gyTe}}Q+d;|Un} zkZIae;j7%@4xrU0*uZ&Iu8bDK<_%P&{)ybVDd2UBAiQ&jT%Io$+`L$Si%;>=!&TdZ zFYpNp2G};-hYs|x)A>{-xetAXuwW1K+T?xA6>0S79^x?Z1n{^cfgG9gf7750a0fZw zy9%6I?3DoSQD=ncYM00^h6f{`;KiPmf^6l}h?3;QAsI~C`j>FOYG$sMbJn5T3$`#} zvUz``$bmm5C0_)(e?vg`nD6m%H;kvOJAq|^Dmr9S^3__dDVLOsQr=Y!U9c?46>9^n zW)YaFl5L_>^!B~p6=+_AYf0(DC+9UJIXE!;YM}=_WR3n&x_#67>*^Eiz&i`VYh1X literal 0 HcmV?d00001 diff --git a/src/externals/pio1/doc/images/PIO_Decomposition.png b/src/externals/pio1/doc/images/PIO_Decomposition.png new file mode 100644 index 0000000000000000000000000000000000000000..cfa0de11e569739bc159243f86339ad22c7eae95 GIT binary patch literal 86877 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 literal 0 HcmV?d00001 diff --git a/src/externals/pio1/doc/images/PIO_Library_Architecture1.jpg b/src/externals/pio1/doc/images/PIO_Library_Architecture1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d8058dfb18448418277014f78d9eed3d5ae39a5a GIT binary patch literal 53536 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 literal 0 HcmV?d00001 diff --git a/src/externals/pio1/pio/pio_kinds.F90 b/src/externals/pio1/pio/pio_kinds.F90 index 1655a4fd5ec..8f1b11cc4d5 100644 --- a/src/externals/pio1/pio/pio_kinds.F90 +++ b/src/externals/pio1/pio/pio_kinds.F90 @@ -7,18 +7,6 @@ !< module pio_kinds -!BOP -! !MODULE: pio_kinds -! -! !DESCRIPTION: -! This module defines default numerical data types for all common data -! types like integer, character, logical, real4 and real8. -! -! !REVISION HISTORY: -! CVS:$Id: pio_kinds.F90,v 1.1.1.1 2006/07/31 16:15:30 dennis Exp $ -! CVS:$Name: $ - -! !USES: ! uses mpi if available #ifndef NO_MPIMOD use mpi, only : MPI_OFFSET_KIND ! _EXTERNAL @@ -43,11 +31,4 @@ module pio_kinds integer, parameter, public :: & PIO_OFFSET = MPI_OFFSET_KIND -!EOP -!BOC -!EOC -!*********************************************************************** - end module pio_kinds - -!||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| diff --git a/src/externals/pio2/src/clib/pio_darray.c b/src/externals/pio2/src/clib/pio_darray.c index e9f6c28a526..5d16d314271 100644 --- a/src/externals/pio2/src/clib/pio_darray.c +++ b/src/externals/pio2/src/clib/pio_darray.c @@ -316,6 +316,16 @@ PIOc_write_darray_multi(int ncid, const int *varids, int ioid, int nvars, { tmparray = array; } + if (iodesc->needssort) + { + if (!(tmparray = malloc(arraylen*nvars*iodesc->piotype_size))) + return pio_err(ios, NULL, PIO_ENOMEM, __FILE__, __LINE__); + pio_sorted_copy(array, tmparray, iodesc, nvars, 0); + } + else + { + tmparray = array; + } /* Move data from compute to IO tasks. */ if ((ierr = rearrange_comp2io(ios, iodesc, tmparray, file->iobuf, nvars))) @@ -644,6 +654,112 @@ pio_inq_var_fill_expected(int ncid, int varid, int pio_type, PIO_Offset type_siz return PIO_NOERR; } +/** + * Find the fill value that would be used for a variable, if fill mode + * was turned on. + * + * @param ncid File ID. + * @param varid Variable ID. + * @param pio_type Type of the variable. + * @param type_size Size of one element of this type. + * @param fillvalue Pointer that will get the fill value. + * + * @return 0 for success, error code otherwise. + * @ingroup PIO_write_darray_c + * @author Ed Hartnett + */ +static int +pio_inq_var_fill_expected(int ncid, int varid, int pio_type, PIO_Offset type_size, + void *fillvalue) +{ + signed char byte_fill_value = NC_FILL_BYTE; + char char_fill_value = NC_FILL_CHAR; + short short_fill_value = NC_FILL_SHORT; + int int_fill_value = NC_FILL_INT; + float float_fill_value = NC_FILL_FLOAT; + double double_fill_value = NC_FILL_DOUBLE; + unsigned char ubyte_fill_value = NC_FILL_UBYTE; + unsigned short ushort_fill_value = NC_FILL_USHORT; + unsigned int uint_fill_value = NC_FILL_UINT; + long long int64_fill_value = NC_FILL_INT64; + unsigned long long uint64_fill_value = NC_FILL_UINT64; + char *string_fill_value = ""; + int ret; + + /* Check inputs. */ + assert(fillvalue); + + LOG((2, "pio_inq_var_fill_expected ncid %d varid %d pio_type %d type_size %d", + ncid, varid, pio_type, type_size)); + + /* Is there a _FillValue attribute? */ + ret = PIOc_inq_att_eh(ncid, varid, "_FillValue", 0, NULL, NULL); + + LOG((3, "pio_inq_var_fill_expected ret %d", ret)); + + /* If there is a fill value, get it. */ + if (!ret) + { + if ((ret = PIOc_get_att(ncid, varid, "_FillValue", fillvalue))) + return ret; + } + else /* If no _FillValue at was found we still have work to do. */ + { + /* Did we get some other error? */ + if (ret != PIO_ENOTATT) + return ret; + + /* What is the default fill value for this type? */ + switch (pio_type) + { + case PIO_BYTE: + memcpy(fillvalue, &byte_fill_value, type_size); + break; + case PIO_CHAR: + memcpy(fillvalue, &char_fill_value, type_size); + break; + case PIO_SHORT: + memcpy(fillvalue, &short_fill_value, type_size); + break; + case PIO_INT: + memcpy(fillvalue, &int_fill_value, type_size); + break; + case PIO_FLOAT: + memcpy(fillvalue, &float_fill_value, type_size); + break; + case PIO_DOUBLE: + memcpy(fillvalue, &double_fill_value, type_size); + break; +#if defined(_NETCDF4) || defined(_PNETCDF) + case PIO_UBYTE: + memcpy(fillvalue, &ubyte_fill_value, type_size); + break; + case PIO_USHORT: + memcpy(fillvalue, &ushort_fill_value, type_size); + break; + case PIO_UINT: + memcpy(fillvalue, &uint_fill_value, type_size); + break; + case PIO_INT64: + memcpy(fillvalue, &int64_fill_value, type_size); + break; + case PIO_UINT64: + memcpy(fillvalue, &uint64_fill_value, type_size); + break; +#ifdef _NETCDF4 + case PIO_STRING: + memcpy(fillvalue, string_fill_value, type_size); + break; +#endif /* _NETCDF4 */ +#endif/* _NETCDF4 || _PNETCDF */ + default: + return PIO_EBADTYPE; + } + } + + return PIO_NOERR; +} + /** * Find the fillvalue that should be used for a variable. * @@ -704,6 +820,13 @@ find_var_fillvalue(file_desc_t *file, int varid, var_desc_t *vdesc) vdesc->fillvalue))) return pio_err(ios, NULL, ierr, __FILE__, __LINE__); + /* Get the fill value one would expect, if NOFILL were not turned + * on. */ + if (!vdesc->use_fill) + if ((ierr = pio_inq_var_fill_expected(file->pio_ncid, varid, pio_type, type_size, + vdesc->fillvalue))) + return pio_err(ios, NULL, ierr, __FILE__, __LINE__); + return PIO_NOERR; } diff --git a/src/externals/pio2/src/clib/pio_nc.c b/src/externals/pio2/src/clib/pio_nc.c index 36c086a9ef2..5af2160b986 100644 --- a/src/externals/pio2/src/clib/pio_nc.c +++ b/src/externals/pio2/src/clib/pio_nc.c @@ -2166,7 +2166,7 @@ PIOc_def_var(int ncid, const char *name, nc_type xtype, int ndims, /* Get the MPI type corresponding with the PIO type. */ if ((ierr = find_mpi_type(xtype, &mpi_type, NULL))) return pio_err(ios, NULL, ierr, __FILE__, __LINE__); - + /* Get the size of the MPI type. */ if(mpi_type == MPI_DATATYPE_NULL) mpi_type_size = 0; diff --git a/src/externals/pio2/src/clib/pioc.c b/src/externals/pio2/src/clib/pioc.c index b0e703a6a12..3c727b14f1e 100644 --- a/src/externals/pio2/src/clib/pioc.c +++ b/src/externals/pio2/src/clib/pioc.c @@ -23,6 +23,43 @@ extern int event_num[2][NUM_EVENTS]; extern int ncint_initialized; #endif /* NETCDF_INTEGRATION */ +/** + * @defgroup PIO_init_c Initialize the IO System + * Initialize the IOSystem, including specifying number of IO and + * computation tasks in C. + * + * @defgroup PIO_finalize_c Shut Down the IO System + * Shut down an IOSystem, freeing all associated resources in C. + * + * @defgroup PIO_initdecomp_c Initialize a Decomposition + * Intiailize a decomposition of data into distributed arrays in C. + * + * @defgroup PIO_freedecomp_c Free a Decomposition + * Free a decomposition, and associated resources in C. + * + * @defgroup PIO_setframe_c Set the Record Number + * Set the record number for a future call to PIOc_write_darray() or + * PIOc_read_darray() in C. + * + * @defgroup PIO_set_hint_c Set a Hint + * Set an MPI Hint in C. + * + * @defgroup PIO_error_method_c Set Error Handling + * Set the error handling method in case error is encountered in C. + * + * @defgroup PIO_get_local_array_size_c Get the Local Size + * Get the local size of a distributed array in C. + * + * @defgroup PIO_iosystem_is_active_c Check IOSystem + * Is the IO system active (in C)? + * + * @defgroup PIO_getnumiotasks_c Get Number IO Tasks + * Get the Number of IO Tasks in C. + * + * @defgroup PIO_set_blocksize_c Set Blocksize + * Set the Blocksize in C. + */ + /** * @defgroup PIO_init_c Initialize the IO System * Initialize the IOSystem, including specifying number of IO and @@ -466,6 +503,27 @@ void pio_map_sort(const PIO_Offset *map, int *remap, int maplen) } +/** + * Compare. + * + * @param a pointer to a + * @param b pointer to b + * @return -1 if a.map < b.map, 1 if a.map > b.map, 0 if equal + * @author Jim Edwards + */ +int +compare( const void* a, const void* b) +{ + struct sort_map l_a = * ( (struct sort_map *) a ); + struct sort_map l_b = * ( (struct sort_map *) b ); + + if ( l_a.map < l_b.map ) + return -1; + else if ( l_a.map > l_b.map ) + return 1; + return 0; +} + /** * Compare. * @@ -668,6 +726,33 @@ PIOc_InitDecomp(int iosysid, int pio_type, int ndims, const int *gdimlen, int ma } } + if (!(tmpsort = malloc(sizeof(struct sort_map) * maplen))) + return pio_err(ios, NULL, PIO_ENOMEM, __FILE__, __LINE__); + if (!(iodesc->remap = malloc(sizeof(int) * maplen))) + { + free(tmpsort); + return pio_err(ios, NULL, PIO_ENOMEM, __FILE__, __LINE__); + } + for (int m=0; m < maplen; m++) + { + tmpsort[m].remap = m; + tmpsort[m].map = compmap[m]; + } + qsort( tmpsort, maplen, sizeof(struct sort_map), compare ); + for (int m=0; m < maplen; m++) + { + iodesc->map[m] = compmap[tmpsort[m].remap]; + iodesc->remap[m] = tmpsort[m].remap; + } + free(tmpsort); + } + else + { + for (int m=0; m < maplen; m++) + { + iodesc->map[m] = compmap[m]; + } + } /* Remember the dim sizes. */ if (!(iodesc->dimlen = malloc(sizeof(int) * ndims))) return pio_err(ios, NULL, PIO_ENOMEM, __FILE__, __LINE__); diff --git a/src/flib/pio_types.F90 b/src/flib/pio_types.F90 new file mode 100644 index 00000000000..aeba6349b7a --- /dev/null +++ b/src/flib/pio_types.F90 @@ -0,0 +1,213 @@ +!> +!! @file +!! Derived datatypes and constants for PIO Fortran API. +!! @author Jim Edwards +!< +!> +!! @private +!! @defgroup iodesc_generate Creating Decompositions +!! Create a decomposition of data from a variable to multiple +!! computation tasks. +!! +!! @public +!! @defgroup PIO_iotype PIO_iotype +!! An integer parameter which controls the iotype. +!! - PIO_iotype_pnetcdf : parallel read/write of pNetCDF files (netcdf3) +!! - PIO_iotype_netcdf : serial read/write of NetCDF files using 'base_node' (netcdf3) +!! - PIO_iotype_netcdf4c : parallel read/serial write of NetCDF4 (HDF5) files with data compression +!! - PIO_iotype_netcdf4p : parallel read/write of NETCDF4 (HDF5) files +!! +!! @defgroup PIO_rearr_method Rearranger Methods +!! Rearranger methods. +!! - PIO_rearr_none : Do not use any form of rearrangement +!! - PIO_rearr_box : Use a PIO internal box rearrangement +!! - PIO_rearr_subset : Use a PIO internal subsetting rearrangement +!! +!! @defgroup PIO_error_method Error Handling Methods +!! The error handling setting controls what happens if errors are +!! encountered by PIO. The three types of error handling methods are: +!! - PIO_INTERNAL_ERROR : abort on error from any task +!! - PIO_BCAST_ERROR : broadcast an error from io_rank 0 to all tasks in comm +!! - PIO_RETURN_ERROR : do nothing - allow the user to handle it +!> +!! @defgroup error_return Error Return Codes +!! The error return code (see @ref PIO_seterrorhandling). +!! +!! @defgroup PIO_kinds PIO Fortran Type Kinds +!! PIO supports different kinds of Fortran types. +!! - PIO_double : 8-byte reals or double precision +!! - PIO_real : 4-byte reals +!! - PIO_int : 4-byte integers +!! - PIO_char : character + +module pio_types + use pio_kinds + use iso_c_binding + implicit none + private + type, public :: DecompMap_t !< data structure to describe decomposition. +#ifdef SEQUENCE + sequence +#endif + integer(i4) :: start !< start + integer(i4) :: length !< length + end type DecompMap_t + + !> + !! @struct iosystem_desc_t + !! A defined PIO system descriptor created by @ref PIO_init (see + !! pio_types). + type, public :: IOSystem_desc_t + integer(kind=c_int) :: iosysid = -1 !< iosysid + end type IOSystem_desc_t + + !> + !! @public + !! @struct file_desc_t + !! File descriptor returned by \ref PIO_openfile or \ref + !! PIO_createfile (see pio_types). + type, public :: File_desc_t + integer(kind=c_int) :: fh !< file handle + type(iosystem_desc_t), pointer :: iosystem => null() !< iosystem + end type File_desc_t + + !> + !! @public + !! @struct io_desc_t + !! An decomposition handle that is generated in @ref PIO_initdecomp. + !! (see pio_types) + type, public :: io_desc_t +#ifdef SEQUENCE + sequence +#endif + integer(i4) :: ioid !< decomposition id + end type io_desc_t + + !> + !! @public + !! @struct var_desc_t + !! A variable descriptor returned from @ref PIO_def_var (see + !! pio_types). + type, public :: Var_desc_t +#ifdef SEQUENCE + sequence +#endif + integer(i4) :: varID !< variable id + integer(i4) :: ncid !< file id + end type Var_desc_t + + integer(i4), public, parameter :: & + PIO_iotype_pnetcdf = 1, & !< parallel read/write of pNetCDF files + PIO_iotype_netcdf = 2, & !< serial read/write of NetCDF file using 'base_node' + PIO_iotype_netcdf4c = 3, & !< netcdf4 (hdf5 format) file opened for compression (serial write access only) + PIO_iotype_netcdf4p = 4 !< netcdf4 (hdf5 format) file opened in parallel + + + ! These are for backward compatability and should not be used or expanded upon + integer(i4), public, parameter :: & + iotype_pnetcdf = PIO_iotype_pnetcdf, & !< pnetcdf iotype + iotype_netcdf = PIO_iotype_netcdf !< netcdf iotype + + + integer(i4), public, parameter :: PIO_rearr_box = 1 !< box rearranger + integer(i4), public, parameter :: PIO_rearr_subset = 2 !< subset rearranger + + integer(i4), public, parameter :: PIO_INTERNAL_ERROR = -51 !< abort on error from any task + integer(i4), public, parameter :: PIO_BCAST_ERROR = -52 !< broadcast an error + integer(i4), public, parameter :: PIO_RETURN_ERROR = -53 !< do nothing + + integer(i4), public, parameter :: PIO_DEFAULT = -1 !< default error handler + + !> + !! @struct use_PIO_kinds + !! The type of variable(s) associated with this iodesc. + !! @copydoc PIO_kinds + +#ifdef _PNETCDF +#include + integer, public, parameter :: PIO_64BIT_DATA = nf_64bit_data !< CDF5 format +#else +#include + integer, public, parameter :: PIO_64BIT_DATA = 0 !< CDF5 format +#endif + integer, public, parameter :: PIO_num_OST = 16 !< num ost + integer, public, parameter :: PIO_global = nf_global !< global atts + integer, public, parameter :: PIO_unlimited = nf_unlimited !< unlimited dimension + integer, public, parameter :: PIO_double = nf_double !< double type + integer, public, parameter :: PIO_real = nf_real !< real type + integer, public, parameter :: PIO_int = nf_int !< int type + integer, public, parameter :: PIO_char = nf_char !< char type + integer, public, parameter :: PIO_noerr = nf_noerr !< no error + integer, public, parameter :: PIO_WRITE = nf_write !< read-write + integer, public, parameter :: PIO_nowrite = nf_nowrite !< read-only + integer, public, parameter :: PIO_CLOBBER = nf_clobber !< clobber existing file + integer, public, parameter :: PIO_NOCLOBBER = nf_NOclobber !< do not clobber existing file + integer, public, parameter :: PIO_NOFILL = nf_nofill !< do not use fill values + integer, public, parameter :: PIO_MAX_NAME = nf_max_name !< max name len + integer, public, parameter :: PIO_MAX_VAR_DIMS = min(6,nf_max_var_dims) !< max dims for a var + integer, public, parameter :: PIO_64BIT_OFFSET = nf_64bit_offset !< 64bit offset format + integer, public, parameter :: PIO_FILL_INT = nf_fill_int; !< int fill value + real, public, parameter :: PIO_FILL_FLOAT = nf_fill_float; !< float fill value + double precision, public, parameter :: PIO_FILL_DOUBLE = nf_fill_double; !< double fill value + + enum, bind(c) + enumerator :: PIO_rearr_comm_p2p = 0 + enumerator :: PIO_rearr_comm_coll + end enum + + !> + !! @defgroup PIO_rearr_comm_t Rearranger Communication + !! @public + !! There are two choices for rearranger communication. + !! - PIO_rearr_comm_p2p : Point to point + !! - PIO_rearr_comm_coll : Collective + !> + !> + !! @defgroup PIO_rearr_comm_dir PIO_rearr_comm_dir + !! @public + !! There are four choices for rearranger communication direction. + !! - PIO_rearr_comm_fc_2d_enable : COMM procs to IO procs and vice versa + !! - PIO_rearr_comm_fc_1d_comp2io: COMM procs to IO procs only + !! - PIO_rearr_comm_fc_1d_io2comp: IO procs to COMM procs only + !! - PIO_rearr_comm_fc_2d_disable: Disable flow control + !! + !! @defgroup PIO_rearr_comm_fc_options Rearranger Flow Control Options + !! Type that defines the PIO rearranger options. + !! - enable_hs : Enable handshake (true/false) + !! - enable_isend : Enable Isends (true/false) + !! - max_pend_req : Maximum pending requests (To indicated unlimited + !! number of requests use PIO_REARR_COMM_UNLIMITED_PEND_REQ) + !! + !! @defgroup PIO_rearr_options Rearranger Options + !! Type that defines the PIO rearranger options. + !! + !! - comm_type : @copydoc PIO_rearr_comm_t + !! - fcd : @copydoc PIO_rearr_comm_dir + !! - comm_fc_opts_comp2io : @copydoc PIO_rearr_comm_fc_options + !! - comm_fc_opts_io2comp : @copydoc PIO_rearr_comm_fc_options + enum, bind(c) + enumerator :: PIO_rearr_comm_fc_2d_enable = 0 !< COMM procs to IO procs and vice versa. + enumerator :: PIO_rearr_comm_fc_1d_comp2io !< COMM procs to IO procs only. + enumerator :: PIO_rearr_comm_fc_1d_io2comp !< IO procs to COMM procs only. + enumerator :: PIO_rearr_comm_fc_2d_disable !< Disable flow control. + end enum + + type, bind(c), public :: PIO_rearr_comm_fc_opt_t + logical(c_bool) :: enable_hs !< Enable handshake. + logical(c_bool) :: enable_isend !< Enable isends. + integer(c_int) :: max_pend_req !< Maximum pending requests (PIO_REARR_COMM_UNLIMITED_PEND_REQ for unlimited). + end type PIO_rearr_comm_fc_opt_t + + integer, public, parameter :: PIO_REARR_COMM_UNLIMITED_PEND_REQ = -1 !< unlimited requests + type, bind(c), public :: PIO_rearr_opt_t + integer(c_int) :: comm_type !< Rearranger communication. + integer(c_int) :: fcd !< Communication direction. + type(PIO_rearr_comm_fc_opt_t) :: comm_fc_opts_comp2io !< The comp2io options. + type(PIO_rearr_comm_fc_opt_t) :: comm_fc_opts_io2comp !< The io2comp options. + end type PIO_rearr_opt_t + + public :: PIO_rearr_comm_p2p, PIO_rearr_comm_coll,& + PIO_rearr_comm_fc_2d_enable, PIO_rearr_comm_fc_1d_comp2io,& + PIO_rearr_comm_fc_1d_io2comp, PIO_rearr_comm_fc_2d_disable + +end module pio_types diff --git a/src/flib/piolib_mod.F90 b/src/flib/piolib_mod.F90 new file mode 100644 index 00000000000..1f6900d3b08 --- /dev/null +++ b/src/flib/piolib_mod.F90 @@ -0,0 +1,1678 @@ +#define __PIO_FILE__ "piolib_mod.f90" +!> +!! @file +!! Initialization Routines for PIO. +!! +!< + +!> +!! @defgroup PIO_openfile Open a File +!! Open an existing netCDF file with PIO in Fortran. +!! +!! @defgroup PIO_syncfile Sync File +!! Sync a file to disk, flushing all buffers in Fortran. +!! +!! @defgroup PIO_createfile Create a File +!! Create a new netCDF file in Fortran. +!! +!! @defgroup PIO_setframe Set Record Number +!! Set the record number for distributed array reads/writes in +!! Fortran. +!! +!! @defgroup PIO_closefile Close a File +!! Close a netCDF file in Fortran. +!! +!! @defgroup PIO_freedecomp Free a Decomposition +!! Free a decomposition, releasing all resources in Fortran. +!! +!! @defgroup PIO_init Initialize an IOSystem +!! Create a new IO System, designating numbers of I/O and computation +!! tasks in Fortran. +!! +!! @defgroup PIO_finalize Free an IOSystem +!! Free an IO System, releasing all resources in Fortran. +!! +!! @defgroup PIO_initdecomp Define a Decomposition +!! Define a new decomposition of variables to distributed arrays in +!! Fortran. +!! +!! @defgroup PIO_getnumiotasks Get Number IO Tasks +!! Get the number of IO tasks in Fortran. +!! +!! @defgroup PIO_setdebuglevel Internal Debug Settings for Fortran +!! Set the debug level in Fortran. +!! +!! @defgroup PIO_seterrorhandling Error Handling for Fortran +!! Set the behavior if an error is encountered in Fortran. +!! +!! @defgroup PIO_get_local_array_size Get Local Array Size +!! Get the local size of the distributed array in a decomposition in +!! Fortran. +!! +!! @defgroup PIO_set_hint Set MPI Hint +!! Set the MPI hint in Fortran. + +module piolib_mod + use iso_c_binding + !-------------- + use pio_kinds + !-------------- + use pio_types, only : file_desc_t, iosystem_desc_t, var_desc_t, io_desc_t, & + pio_iotype_netcdf, pio_iotype_pnetcdf, pio_iotype_netcdf4p, pio_iotype_netcdf4c, & + pio_noerr, pio_rearr_subset, pio_rearr_opt_t + !-------------- + use pio_support, only : piodie, debug, debugio, debugasync, checkmpireturn + use pio_nf, only : pio_set_log_level + ! + +#ifdef TIMING + use perf_mod, only : t_startf, t_stopf ! _EXTERNAL +#endif +#ifndef NO_MPIMOD + use mpi ! _EXTERNAL +#endif + implicit none + private +#ifdef NO_MPIMOD + include 'mpif.h' ! _EXTERNAL +#endif + ! !public member functions: + + public :: PIO_init, & + PIO_finalize, & + PIO_initdecomp, & + PIO_openfile, & + PIO_syncfile, & + PIO_createfile, & + PIO_closefile, & + PIO_setframe, & + PIO_advanceframe, & + PIO_setdebuglevel, & + PIO_seterrorhandling, & + PIO_get_local_array_size, & + PIO_freedecomp, & + PIO_getnumiotasks, & + PIO_set_hint, & + PIO_FILE_IS_OPEN, & + PIO_deletefile, & + PIO_get_numiotasks, & + PIO_iotype_available, & + PIO_set_rearr_opts + + !----------------------------------------------------------------------- + ! + ! module variables + ! + !----------------------------------------------------------------------- + !> + !! Open an existing netCDF file. + !< + interface PIO_openfile + module procedure PIO_openfile + end interface PIO_openfile + + !> + !! Sync the file to disk, flushing all buffers. + !< + interface PIO_syncfile + module procedure syncfile + end interface PIO_syncfile + + !> + !! Create a new netCDF file with PIO. + !< + interface PIO_createfile + module procedure createfile + end interface PIO_createfile + + !> + !! Sets the record number for a future read/write of distributed + !! arrays (see @ref PIO_write_darray, @ref PIO_read_darray). + !< + interface PIO_setframe + module procedure setframe + end interface PIO_setframe + + !> + !! Increment the record number for a future read/write of distributed + !! arrays (see @ref PIO_write_darray, @ref PIO_read_darray). + !< + interface PIO_advanceframe + module procedure advanceframe + end interface PIO_advanceframe + + !> + !! Close an open file. + !< + interface PIO_closefile + module procedure closefile + end interface PIO_closefile + + !> + !! Free memory associated with a decomposition. + !< + interface PIO_freedecomp + module procedure freedecomp_ios + module procedure freedecomp_file + end interface PIO_freedecomp + + !> + !! Initializes the PIO subsystem, creating a new IOSystem. + !< + interface PIO_init + module procedure init_intracom + module procedure init_intercom + + end interface PIO_init + + !> + !! Shuts down an IOSystem and associated resources. + !< + interface PIO_finalize + module procedure finalize + end interface PIO_finalize + + !> + !! PIO_initdecomp is an overload interface the models decomposition to pio. + !! initdecomp_1dof_bin_i8, initdecomp_1dof_nf_i4, initdecomp_2dof_bin_i4, + !! and initdecomp_2dof_nf_i4 are all depreciated, but supported for backwards + !! compatibility. + !< + interface PIO_initdecomp + module procedure PIO_initdecomp_dof_i4 ! previous name: initdecomop_1dof_nf_box + module procedure PIO_initdecomp_dof_i8 ! previous name: initdecomop_1dof_nf_box + module procedure initdecomp_1dof_nf_i4 + module procedure initdecomp_1dof_nf_i8 + module procedure initdecomp_1dof_bin_i4 + module procedure initdecomp_1dof_bin_i8 + module procedure initdecomp_2dof_nf_i4 + module procedure initdecomp_2dof_nf_i8 + module procedure initdecomp_2dof_bin_i4 + module procedure initdecomp_2dof_bin_i8 + module procedure PIO_initdecomp_bc + ! module procedure PIO_initdecomp_dof_dof + end interface PIO_initdecomp + + !> + !! Return the actual number of IO-tasks used. PIO will reset the + !! total number of IO-tasks if certain conditions are meet. + !< + interface PIO_get_numiotasks + module procedure getnumiotasks + end interface PIO_get_numiotasks + interface PIO_getnumiotasks + module procedure getnumiotasks + end interface PIO_getnumiotasks + + !> + !! Set the level of debug information that PIO will generate. + !< + interface PIO_setdebuglevel + module procedure setdebuglevel + end interface PIO_setdebuglevel + + !> + !! Set the form of error handling for PIO. + !! + !! By default pio handles errors internally by printing a string + !! describing the error and calling mpi_abort. Application + !! developers can change this behavior for calls to the underlying + !! netcdf libraries with a call to PIO_seterrorhandling. For example + !! if a developer wanted to see if an input netcdf format file + !! contained the variable 'u' they might write the following + !! @verbinclude errorhandle + !< + interface PIO_seterrorhandling + module procedure seterrorhandlingfile + module procedure seterrorhandlingiosystem + module procedure seterrorhandlingiosysid + end interface PIO_seterrorhandling + + !> + !! Get the local size of a distributed array. + !< + +contains + +!!$#ifdef __GFORTRAN__ +!!$ pure function fptr ( inArr ) result ( ptr ) +!!$ integer (PIO_OFFSET_KIND), dimension(:), target, intent(in) :: inArr +!!$ integer (PIO_OFFSET_KIND), target :: ptr +!!$ ptr = inArr(1) +!!$ end function fptr +!!$#elif CPRNAG +!!$! no-op -- nothing here for nag. +!!$#else +#define fptr(arg) arg +!!$#endif + + !> + !! @ingroup PIO_file_is_open + !! This logical function indicates if a file is open. + !! @param File @copydoc file_desc_t + !! @author Jim Edwards + !< + logical function PIO_FILE_IS_OPEN(File) + type(file_desc_t), intent(in) :: file + interface + integer(C_INT) function PIOc_File_is_Open(ncid) & + bind(C,NAME="PIOc_File_is_Open") + use iso_c_binding + implicit none + integer(c_int), value :: ncid + end function PIOc_File_is_Open + end interface + PIO_FILE_IS_OPEN = .false. + if(associated(file%iosystem)) then + if(PIOc_File_is_Open(file%fh)==1) then + PIO_FILE_IS_OPEN = .true. + endif + endif + + end function PIO_FILE_IS_OPEN + + !> + !! @public + !! @ingroup PIO_get_local_array_size + !! Return the expected local size of an array associated with a + !! decomposition. + !! @param iodesc the decomposition. + !! @copydoc io_desc_t + !! @author Jim Edwards + !< + integer function PIO_get_local_array_size(iodesc) + type(io_desc_t), intent(in) :: iodesc + interface + integer(C_INT) function PIOc_get_local_array_size(ioid) & + bind(C,NAME="PIOc_get_local_array_size") + use iso_c_binding + implicit none + integer(C_INT), value :: ioid + end function PIOc_get_local_array_size + end interface + PIO_get_local_array_size = PIOc_get_local_array_size(iodesc%ioid) + end function PIO_get_local_array_size + + !> + !! @public + !! @ingroup PIO_setframe + !! Advance the record dimension of a variable in a netcdf format + !! file. + !! + !! @param File @copydoc file_desc_t + !! @param vardesc @copybrief var_desc_t + !! @author Jim Edwards + !< + subroutine advanceframe(file, vardesc) + type(file_desc_t), intent(in) :: file + type(var_desc_t), intent(inout) :: vardesc + integer ierr; + interface + integer(C_INT) function PIOc_advanceframe(fileid, varid) & + bind(C,NAME="PIOc_advanceframe") + use iso_c_binding + implicit none + integer(C_INT), value :: fileid + integer(C_INT), value :: varid + end function PIOc_advanceframe + end interface + ierr = PIOc_advanceframe(file%fh, vardesc%varid-1) + end subroutine advanceframe + + !> + !! @public + !! @ingroup PIO_setframe + !! Set the record dimension of a variable in a netcdf format file + !! or the block address in a binary file. + !! + !! @param File @copydoc file_desc_t + !! @param vardesc @copydoc var_desc_t + !! @param frame record number + !! @author Jim Edwards + !< + subroutine setframe(file, vardesc,frame) + type(file_desc_t) :: file + type(var_desc_t), intent(inout) :: vardesc + integer(PIO_OFFSET_KIND), intent(in) :: frame + integer :: ierr, iframe + interface + integer(C_INT) function PIOc_setframe(ncid, varid, frame) & + bind(C,NAME="PIOc_setframe") + use iso_c_binding + implicit none + integer(C_INT), value :: ncid + integer(C_INT), value :: varid + integer(C_INT), value :: frame + end function PIOc_setframe + end interface + iframe = frame-1 + ierr = PIOc_setframe(file%fh, vardesc%varid-1, iframe) + end subroutine setframe + + !> + !! @public + !! @public + !! @ingroup PIO_setdebuglevel + !! Set the level of debug information output to stdout by PIO. + !! + !! @param level default value is 0, allowed values 0-6 + !! @author Jim Edwards + !< + subroutine setdebuglevel(level) + integer(i4), intent(in) :: level + integer :: ierr + if(level.eq.0) then + debug=.false. + debugio=.false. + debugasync=.false. + else if(level.eq.1) then + debug=.true. + debugio=.false. + debugasync=.false. + else if(level.eq.2) then + debug=.false. + debugio=.true. + debugasync=.false. + else if(level.eq.3) then + debug=.true. + debugio=.true. + debugasync=.false. + else if(level.eq.4) then + debug=.false. + debugio=.false. + debugasync=.true. + else if(level.eq.5) then + debug=.true. + debugio=.false. + debugasync=.true. + else if(level.ge.6) then + debug=.true. + debugio=.true. + debugasync=.true. + end if + ierr = PIO_set_log_level(level) + if(ierr /= PIO_NOERR) then + ! This is not a fatal error + print *, __PIO_FILE__, __LINE__, "Setting log level failed, ierr =",ierr + end if + end subroutine setdebuglevel + + !> + !! @public + !! @ingroup PIO_seterrorhandling + !! Set the pio error handling method for a file. + !! + !! @param file @copydoc file_desc_t + !! @param method error handling method + !! @param oldmethod old error handling method + !! @copydoc PIO_error_method + !! @author Jim Edwards + !< + subroutine seterrorhandlingfile(file, method, oldmethod) + type(file_desc_t), intent(inout) :: file + integer, intent(in) :: method + integer, intent(out), optional :: oldmethod + call seterrorhandlingiosysid(file%iosystem%iosysid, method, oldmethod) + end subroutine seterrorhandlingfile + + !> + !! @public + !! @ingroup PIO_seterrorhandling + !! Set the pio error handling method for a pio system. + !! @param iosystem a defined pio system descriptor, see PIO_types + !! @param method + !! @copydoc PIO_error_method + !! @param oldmethod old error handling method + !! @author Jim Edwards + !< + subroutine seterrorhandlingiosystem(iosystem, method, oldmethod) + type(iosystem_desc_t), intent(inout) :: iosystem + integer, intent(in) :: method + integer, intent(out), optional :: oldmethod + call seterrorhandlingiosysid(iosystem%iosysid, method, oldmethod) + end subroutine seterrorhandlingiosystem + + !> + !! @public + !! @ingroup PIO_seterrorhandling + !! Set the pio error handling method for a pio system or globally. + !! + !! @param iosysid a pio system ID (pass PIO_DEFAULT to change the + !! global default error handling) + !! @param method + !! @copydoc PIO_error_method + !! @param oldmethod old error handling method + !! @author Jim Edwards + !< + subroutine seterrorhandlingiosysid(iosysid, method, oldmethod) + integer, intent(in) :: iosysid + integer, intent(in) :: method + integer, intent(out), optional :: oldmethod + + interface + integer(c_int) function PIOc_Set_IOSystem_Error_Handling(iosysid, method) & + bind(C,name="PIOc_Set_IOSystem_Error_Handling") + use iso_c_binding + integer(c_int), value :: iosysid + integer(c_int), value :: method + end function PIOc_Set_IOSystem_Error_Handling + end interface + integer(c_int) :: loldmethod + + loldmethod = PIOc_Set_IOSystem_Error_Handling(iosysid, method) + if(present(oldmethod)) oldmethod = loldmethod + + end subroutine seterrorhandlingiosysid + + !> + !! @public + !! @ingroup PIO_initdecomp + !! Implements the block-cyclic decomposition for PIO_initdecomp. + !! This provides the ability to describe a computational + !! decomposition in PIO that has a block-cyclic form. That is + !! something that can be described using start and count arrays. + !! Optional parameters for this subroutine allows for the + !! specification of io decomposition using iostart and iocount + !! arrays. If iostart and iocount arrays are not specified by the + !! user, and rearrangement is turned on then PIO will calculate a + !! suitable IO decomposition + !! + !! @param iosystem @copydoc iosystem_desc_t + !! @param basepiotype @copydoc use_PIO_kinds + !! @param dims An array of the global length of each dimesion of the + !! variable(s) + !! @param compstart The start index into the block-cyclic + !! computational decomposition + !! @param compcount The count for the block-cyclic computational + !! decomposition + !! @param iodesc @copydoc iodesc_generate + !! @author Jim Edwards + !< + subroutine PIO_initdecomp_bc(iosystem,basepiotype,dims,compstart,compcount,iodesc) + type (iosystem_desc_t), intent(inout) :: iosystem + integer(i4), intent(in) :: basepiotype + integer(i4), intent(in) :: dims(:) + integer (kind=PIO_OFFSET_KIND) :: compstart(:) + integer (kind=PIO_OFFSET_KIND) :: compcount(:) + type (IO_desc_t), intent(out) :: iodesc + + interface + integer(C_INT) function PIOc_InitDecomp_bc(iosysid, basetype, ndims, dims, compstart, compcount, ioidp) & + bind(C,name="PIOc_InitDecomp_bc") + use iso_c_binding + integer(C_INT), value :: iosysid + integer(C_INT), value :: basetype + integer(C_INT), value :: ndims + integer(C_INT) :: dims(*) + integer(C_INT) :: ioidp + integer(C_SIZE_T) :: compstart(*) + integer(C_SIZE_T) :: compcount(*) + end function PIOc_InitDecomp_bc + end interface + integer :: i, ndims + integer, allocatable :: cdims(:) + integer(PIO_Offset_kind), allocatable :: cstart(:), ccount(:) + integer :: ierr + + ndims = size(dims) + + allocate(cstart(ndims), ccount(ndims), cdims(ndims)) + + do i=1,ndims + cdims(i) = dims(ndims-i+1) + cstart(i) = compstart(ndims-i+1)-1 + cstart(i) = compcount(ndims-i+1) + end do + + ierr = PIOc_InitDecomp_bc(iosystem%iosysid, basepiotype, ndims, cdims, & + cstart, ccount, iodesc%ioid) + + + deallocate(cstart, ccount, cdims) + + + end subroutine PIO_initdecomp_bc + + !> + !! @public + !! @ingroup PIO_initdecomp + !! A deprecated interface to the PIO_initdecomp method. + !! + !! @param iosystem a defined pio system descriptor, see PIO_types + !! @param basepiotype the type of variable(s) associated with this iodesc. + !! @copydoc PIO_kinds + !! @param dims an array of the global length of each dimesion of the variable(s) + !! @param lenblocks + !! @param compdof mapping of the storage order of the variable to its memory order + !! @param iodofr + !! @param iodofw + !! @param iodesc @copydoc iodesc_generate + !! @deprecated + !! @author Jim Edwards + !< + subroutine initdecomp_2dof_bin_i4(iosystem,basepiotype,dims,lenblocks,compdof,iodofr,iodofw,iodesc) + type (iosystem_desc_t), intent(in) :: iosystem + integer(i4), intent(in) :: basepiotype + integer(i4) :: basetype + integer(i4), intent(in) :: dims(:) + integer (i4), intent(in) :: lenblocks + integer (i4), intent(in) :: compdof(:) !> global degrees of freedom for computational decomposition + integer (i4), intent(in) :: iodofr(:) !> global degrees of freedom for io decomposition + integer (i4), intent(in) :: iodofw(:) !> global degrees of freedom for io decomposition + type (io_desc_t), intent(inout) :: iodesc + + + call initdecomp_2dof_bin_i8(iosystem,basepiotype,dims,lenblocks,int(compdof,PIO_OFFSET_KIND),int(iodofr,PIO_OFFSET_KIND), & + int(iodofw,PIO_OFFSET_KIND),iodesc) + + end subroutine initdecomp_2dof_bin_i4 + + !> + !! @public + !! @ingroup PIO_initdecomp + !! A deprecated interface to the PIO_initdecomp method. + !! + !! @param iosystem a defined pio system descriptor, see PIO_types + !! @param basepiotype the type of variable(s) associated with this iodesc. + !! @copydoc PIO_kinds + !! @param dims an array of the global length of each dimesion of the variable(s) + !! @param lenblocks + !! @param compdof mapping of the storage order of the variable to its memory order + !! @param iodofr + !! @param iodofw + !! @param iodesc @copydoc iodesc_generate + !! @deprecated + !! @author Jim Edwards + !< + subroutine initdecomp_2dof_bin_i8(iosystem,basepiotype,dims,lenblocks,compdof,iodofr,iodofw,iodesc) + ! use calcdisplace_mod, only : calcdisplace + type (iosystem_desc_t), intent(in) :: iosystem + integer(i4), intent(in) :: basepiotype + integer(i4), intent(in) :: dims(:) + integer (i4), intent(in) :: lenblocks + integer (PIO_OFFSET_KIND), intent(in) :: compdof(:) !> global degrees of freedom for computational decomposition + integer (PIO_OFFSET_KIND), intent(in) :: iodofr(:) !> global degrees of freedom for io decomposition + integer (PIO_OFFSET_KIND), intent(in) :: iodofw(:) !> global degrees of freedom for io decomposition + type (io_desc_t), intent(inout) :: iodesc + + end subroutine initdecomp_2dof_bin_i8 + + !> + !! @public + !! @ingroup PIO_initdecomp + !! A deprecated interface to the PIO_initdecomp method. + !! + !! @param iosystem a defined pio system descriptor, see PIO_types + !! @param basepiotype the type of variable(s) associated with this + !! iodesc. @copydoc PIO_kinds + !! @param dims an array of the global length of each dimesion of the + !! variable(s) + !! @param lenblocks + !! @param compdof mapping of the storage order of the variable to + !! its memory order + !! @param iodofr + !! @param iodesc @copydoc iodesc_generate + !! @deprecated + !! @author Jim Edwards + !< + subroutine initdecomp_1dof_bin_i8(iosystem,basepiotype,dims,lenblocks,compdof,iodofr,iodesc) + type (iosystem_desc_t), intent(in) :: iosystem + integer(i4), intent(in) :: basepiotype + integer(i4), intent(in) :: dims(:) + integer(i4), intent(in) :: lenblocks + integer(PIO_OFFSET_KIND), intent(in) :: compdof(:) ! global degrees of freedom for computational decomposition + integer(PIO_OFFSET_KIND), intent(in) :: iodofr(:) ! global degrees of freedom for io decomposition + type (io_desc_t), intent(inout) :: iodesc + + integer(PIO_OFFSET_KIND) :: start(1), count(1) + ! these are not used in the binary interface + + start(1)=-1 + count(1)=-1 + call initdecomp_1dof_nf_i8(iosystem,basepiotype,dims,lenblocks,compdof,iodofr,start, count, iodesc) + end subroutine initdecomp_1dof_bin_i8 + + !> + !! @public + !! @ingroup PIO_initdecomp + !! A deprecated interface to the PIO_initdecomp method. + !! + !! @param iosystem a defined pio system descriptor, see PIO_types + !! @param basepiotype the type of variable(s) associated with this + !! iodesc. @copydoc PIO_kinds + !! @param dims an array of the global length of each dimesion of the + !! variable(s) + !! @param lenblocks + !! @param compdof mapping of the storage order of the variable to + !! its memory order + !! @param iodofr + !! @param iodesc @copydoc iodesc_generate + !! @deprecated + !! @author Jim Edwards + !< + subroutine initdecomp_1dof_bin_i4(iosystem,basepiotype,dims,lenblocks,compdof,iodofr,iodesc) + type (iosystem_desc_t), intent(in) :: iosystem + integer(i4), intent(in) :: basepiotype + integer(i4), intent(in) :: dims(:) + integer (i4), intent(in) :: lenblocks + integer (i4), intent(in) :: compdof(:) ! global degrees of freedom for computational decomposition + integer (i4), intent(in) :: iodofr(:) ! global degrees of freedom for io decomposition + type (io_desc_t), intent(inout) :: iodesc + + integer(PIO_OFFSET_KIND) :: start(1), count(1) + ! these are not used in the binary interface + + start(1)=-1 + count(1)=-1 + call initdecomp_1dof_nf_i8(iosystem,basepiotype,dims,lenblocks, & + int(compdof,PIO_OFFSET_KIND),int(iodofr,PIO_OFFSET_KIND),start, count, iodesc) + end subroutine initdecomp_1dof_bin_i4 + + !> + !! @public + !! @ingroup PIO_initdecomp + !! A deprecated interface to the PIO_initdecomp method. + !! + !! @param iosystem a defined pio system descriptor, see PIO_types + !! @param basepiotype the type of variable(s) associated with this + !! iodesc. @copydoc PIO_kinds + !! @param dims: an array of the global length of each dimesion of + !! the variable(s) + !! @param lenblocks + !! @param compdof mapping of the storage order of the variable to + !! its memory order + !! @param iodofr + !! @param iodofw + !! @param start used with count to give a block description of the + !! shape of the data + !! @param count + !! @param iodesc @copydoc iodesc_generate + !! @deprecated + !! @author Jim Edwards + !< + subroutine initdecomp_2dof_nf_i4(iosystem,basepiotype,dims,lenblocks,compdof,iodofr,iodofw,start, count, iodesc) + type (iosystem_desc_t), intent(in) :: iosystem + integer(i4), intent(in) :: basepiotype + integer(i4), intent(in) :: dims(:) + integer (i4), intent(in) :: lenblocks + integer (i4), intent(in) :: compdof(:) ! global degrees of freedom for computational decomposition + integer (i4), intent(in) :: iodofr(:) ! global degrees of freedom for io decomposition + integer (i4), intent(in) :: iodofw(:) ! global degrees of freedom for io decomposition + + type (io_desc_t), intent(inout) :: iodesc + + integer(PIO_OFFSET_KIND), intent(in) :: start(:), count(:) + type (io_desc_t) :: tmp + + + call pio_initdecomp(iosystem, basepiotype,dims,lenblocks,int(compdof,PIO_OFFSET_KIND),int(iodofr,PIO_OFFSET_KIND), & + int(iodofw,PIO_OFFSET_KIND),start,count,iodesc) + + end subroutine initdecomp_2dof_nf_i4 + + !> + !! @public + !! @ingroup PIO_initdecomp + !! A deprecated interface to the PIO_initdecomp method. + !! + !! @param iosystem a defined pio system descriptor, see PIO_types + !! @param basepiotype the type of variable(s) associated with this + !! iodesc. @copydoc PIO_kinds + !! @param dims: an array of the global length of each dimesion of + !! the variable(s) + !! @param lenblocks + !! @param compdof mapping of the storage order of the variable to + !! its memory order + !! @param iodofr + !! @param iodofw + !! @param start used with count to give a block description of the + !! shape of the data + !! @param count + !! @param iodesc @copydoc iodesc_generate + !! @deprecated + !! @author Jim Edwards + !< + subroutine initdecomp_2dof_nf_i8(iosystem,basepiotype,dims,lenblocks,compdof,iodofr,iodofw,start, count, iodesc) + type (iosystem_desc_t), intent(in) :: iosystem + integer(i4), intent(in) :: basepiotype + integer(i4), intent(in) :: dims(:) + integer (i4), intent(in) :: lenblocks + integer (PIO_OFFSET_KIND), intent(in) :: compdof(:) ! global degrees of freedom for computational decomposition + integer (PIO_OFFSET_KIND), intent(in) :: iodofr(:) ! global degrees of freedom for io decomposition + integer (PIO_OFFSET_KIND), intent(in) :: iodofw(:) ! global degrees of freedom for io decomposition + + type (io_desc_t), intent(inout) :: iodesc + + integer(PIO_OFFSET_KIND), intent(in) :: start(:), count(:) + type (io_desc_t) :: tmp + integer :: ierr + + call initdecomp_1dof_nf_i8(iosystem, basepiotype, dims, lenblocks, compdof, iodofr, start, count, iodesc) + + call initdecomp_1dof_nf_i8(iosystem, basepiotype, dims, lenblocks, compdof, iodofw, start, count, tmp) + call mpi_abort(mpi_comm_world, 0, ierr) + + end subroutine initdecomp_2dof_nf_i8 + + !> + !! @public + !! @ingroup PIO_initdecomp + !! A deprecated interface to the PIO_initdecomp method. + !! + !! @param iosystem a defined PIO system descriptor, see pio_types + !! @param basepiotype The type of variable(s) associated with this iodesc. + !! @copydoc PIO_kinds + !! @param dims an array of the global length of each dimesion of the variable(s) + !! @param lenblocks + !! @param compdof mapping of the storage order of the variable to its memory order + !! @param iodof + !! @param start + !! @param count + !! @param iodesc @copydoc iodesc_generate + !! @deprecated + !! @author Jim Edwards + !< + subroutine initdecomp_1dof_nf_i4(iosystem,basepiotype,dims,lenblocks,compdof,iodof,start, count, iodesc) + type (iosystem_desc_t), intent(in) :: iosystem + integer(i4), intent(in) :: basepiotype + integer(i4), intent(in) :: dims(:) + integer (i4), intent(in) :: lenblocks + integer (i4), intent(in) :: compdof(:) ! global degrees of freedom for computational decomposition + integer (i4), intent(in) :: iodof(:) ! global degrees of freedom for io decomposition + type (io_desc_t), intent(inout) :: iodesc + integer :: piotype + integer(PIO_OFFSET_KIND), intent(in) :: start(:), count(:) + + call initdecomp_1dof_nf_i8(iosystem, basepiotype,dims,lenblocks,int(compdof,PIO_OFFSET_KIND),int(iodof,PIO_OFFSET_KIND),& + start,count,iodesc) + + end subroutine initdecomp_1dof_nf_i4 + + !> + !! @public + !! @ingroup PIO_initdecomp + !! A deprecated interface to the PIO_initdecomp method. + !! + !! @param iosystem a defined PIO system descriptor, see pio_types + !! @param basepiotype The type of variable(s) associated with this iodesc. + !! @copydoc PIO_kinds + !! @param dims an array of the global length of each dimesion of the variable(s) + !! @param lenblocks + !! @param compdof mapping of the storage order of the variable to its memory order + !! @param iodof + !! @param start + !! @param count + !! @param iodesc @copydoc iodesc_generate + !! @deprecated + !! @author Jim Edwards + !< + subroutine initdecomp_1dof_nf_i8(iosystem,basepiotype,dims,lenblocks,compdof,iodof,start, count, iodesc) + type (iosystem_desc_t), intent(in) :: iosystem + integer(i4), intent(in) :: basepiotype + integer(i4), intent(in) :: dims(:) + integer (i4), intent(in) :: lenblocks + integer (PIO_OFFSET_KIND), intent(in) :: compdof(:) ! global degrees of freedom for computational decomposition + integer (PIO_OFFSET_KIND), intent(in) :: iodof(:) ! global degrees of freedom for io decomposition + type (io_desc_t), intent(inout) :: iodesc + integer :: piotype + integer(PIO_OFFSET_KIND), intent(in) :: start(:), count(:) + + if(any(iodof/=compdof)) then + call piodie( __PIO_FILE__,__LINE__, & + 'Not sure what to do here') + else + call PIO_initdecomp_dof_i8(iosystem,basepiotype,dims,compdof, iodesc,PIO_REARR_SUBSET, start,count) + endif + + end subroutine initdecomp_1dof_nf_i8 + + !> + !! @public + !! @ingroup PIO_initdecomp + !! Implements the degrees of freedom decomposition for + !! PIO_initdecomp(). This provides the ability to describe a + !! computational decomposition in PIO using degrees of freedom + !! method. This is a decomposition that can not be easily described + !! using a start and count method. + !! + !! Optional parameters for this subroutine allows for the + !! specififcation of io decomposition using iostart and iocount + !! arrays. If iostart and iocount arrays are not specified by the + !! user, and rearrangement is turned on then PIO will calculate an + !! suitable IO decomposition. + !! + !! @note This subroutine was previously called \em + !! initdecomp_1dof_nf_box. + !! + !! @param iosystem @copydoc iosystem_desc_t + !! @param basepiotype @copydoc use_PIO_kinds + !! @param dims An array of the global length of each dimesion of the + !! variable(s) + !! @param compdof Mapping of the storage order for the computational + !! decomposition to its memory order + !! @param iodesc @copydoc iodesc_generate + !! @param rearr rearranger + !! @param iostart The start index for the block-cyclic io + !! decomposition + !! @param iocount The count for the block-cyclic io decomposition + !! @author Jim Edwards + !< + subroutine PIO_initdecomp_dof_i4(iosystem, basepiotype, dims, compdof, iodesc, rearr, iostart, iocount) + type (iosystem_desc_t), intent(inout) :: iosystem + integer(i4), intent(in) :: basepiotype + integer(i4), intent(in) :: compdof(:) ! global degrees of freedom for computational decomposition + integer, optional, target :: rearr + integer (PIO_OFFSET_KIND), optional :: iostart(:), iocount(:) + type (io_desc_t), intent(inout) :: iodesc + integer(PIO_OFFSET_KIND), pointer :: internal_compdof(:) + integer(i4), intent(in) :: dims(:) + + allocate(internal_compdof(size(compdof))) + internal_compdof = int(compdof,PIO_OFFSET_KIND) + + if(present(iostart) .and. present(iocount) ) then + call pio_initdecomp_dof_i8(iosystem, basepiotype, dims, internal_compdof, iodesc, & + PIO_REARR_SUBSET, iostart, iocount) + else + call pio_initdecomp_dof_i8(iosystem, basepiotype, dims, internal_compdof, iodesc, rearr) + endif + deallocate(internal_compdof) + + end subroutine PIO_initdecomp_dof_i4 + + subroutine PIO_initdecomp_internal(iosystem,basepiotype,dims,maplen, compdof, iodesc, rearr, iostart, iocount) + type (iosystem_desc_t), intent(in) :: iosystem + integer(i4), intent(in) :: basepiotype + integer(i4), intent(in) :: dims(:) + integer, intent(in) :: maplen + integer (PIO_OFFSET_KIND), intent(in) :: compdof(maplen) ! global degrees of freedom for computational decomposition + integer, optional, target :: rearr + integer (PIO_OFFSET_KIND), optional :: iostart(:), iocount(:) + type (io_desc_t), intent(inout) :: iodesc + + integer(c_int) :: ndims + integer(c_int), dimension(:), allocatable, target :: cdims + integer(PIO_OFFSET_KIND), dimension(:), allocatable, target :: cstart, ccount + + type(C_PTR) :: crearr + interface + integer(C_INT) function PIOc_InitDecomp(iosysid,basetype,ndims,dims, & + maplen, compmap, ioidp, rearr, iostart, iocount) & + bind(C,name="PIOc_InitDecomp") + use iso_c_binding + integer(C_INT), value :: iosysid + integer(C_INT), value :: basetype + integer(C_INT), value :: ndims + integer(C_INT) :: dims(*) + integer(C_INT), value :: maplen + integer(C_SIZE_T) :: compmap(*) + integer(C_INT) :: ioidp + type(C_PTR), value :: rearr + type(C_PTR), value :: iostart + type(C_PTR), value :: iocount + end function PIOc_InitDecomp + end interface + integer :: ierr,i + + ndims = size(dims) + allocate(cdims(ndims)) + do i=1,ndims + cdims(i) = dims(ndims-i+1) + end do + + if(present(rearr)) then + crearr = C_LOC(rearr) + else + crearr = C_NULL_PTR + endif + + if(present(iostart) .and. present(iocount)) then + allocate(cstart(ndims), ccount(ndims)) + do i=1,ndims + cstart(i) = iostart(ndims-i+1)-1 + ccount(i) = iocount(ndims-i+1) + end do + + ierr = PIOc_InitDecomp(iosystem%iosysid, basepiotype, ndims, cdims, & + maplen, compdof, iodesc%ioid, crearr, C_LOC(cstart), C_LOC(ccount)) + deallocate(cstart, ccount) + else + ierr = PIOc_InitDecomp(iosystem%iosysid, basepiotype, ndims, cdims, & + maplen, compdof, iodesc%ioid, crearr, C_NULL_PTR, C_NULL_PTR) + end if + + deallocate(cdims) + + end subroutine PIO_initdecomp_internal + + !> + !! @public + !! @ingroup PIO_initdecomp + !! I8 version of PIO_initdecomp_dof_i4. + !! @author Jim Edwards + subroutine PIO_initdecomp_dof_i8(iosystem,basepiotype,dims,compdof, iodesc, rearr, iostart, iocount) + type (iosystem_desc_t), intent(in) :: iosystem + integer(i4), intent(in) :: basepiotype + integer(i4), intent(in) :: dims(:) + integer (PIO_OFFSET_KIND), intent(in) :: compdof(:) ! global degrees of freedom for computational decomposition + integer, optional, target :: rearr + integer (PIO_OFFSET_KIND), optional :: iostart(:), iocount(:) + type (io_desc_t), intent(inout) :: iodesc + integer :: maplen + +#ifdef TIMING + call t_startf("PIO:initdecomp_dof") +#endif + + maplen = size(compdof) + + call PIO_initdecomp_internal(iosystem, basepiotype, dims, maplen, compdof, iodesc, rearr, iostart,iocount) + +#ifdef TIMING + call t_stopf("PIO:initdecomp_dof") +#endif + + end subroutine PIO_initdecomp_dof_i8 + + !> + !! @public + !! @ingroup PIO_init + !! Initialize the pio subsystem. This is a collective call. Input + !! parameters are read on comp_rank=0 values on other tasks are + !! ignored. This variation of PIO_init locates the IO tasks on a + !! subset of the compute tasks. + !! + !! @param comp_rank mpi rank of each participating task, + !! @param comp_comm the mpi communicator which defines the + !! collective. + !! @param num_iotasks the number of iotasks to define. + !! @param num_aggregator the mpi aggregator count + !! @param stride the stride in the mpi rank between io tasks. + !! @param rearr @copydoc PIO_rearr_method + !! @param iosystem a derived type which can be used in subsequent + !! pio operations (defined in PIO_types). + !! @param base @em optional argument can be used to offset the first + !! io task - default base is task 1. + !! @param rearr_opts the rearranger options. + !! @author Jim Edwards + !< + subroutine init_intracom(comp_rank, comp_comm, num_iotasks, num_aggregator, stride, rearr, iosystem,base, rearr_opts) + use pio_types, only : pio_internal_error, pio_rearr_opt_t + use iso_c_binding + + integer(i4), intent(in) :: comp_rank + integer(i4), intent(in) :: comp_comm + integer(i4), intent(in) :: num_iotasks + integer(i4), intent(in) :: num_aggregator + integer(i4), intent(in) :: stride + integer(i4), intent(in) :: rearr + type (iosystem_desc_t), intent(out) :: iosystem ! io descriptor to initalize + integer(i4), intent(in),optional :: base + type (pio_rearr_opt_t), intent(in), optional :: rearr_opts + + integer :: lbase + integer :: ierr + interface + integer(c_int) function PIOc_Init_Intracomm_from_F90(f90_comp_comm, num_iotasks, stride,base,rearr,rearr_opts,iosysidp) & + bind(C,name="PIOc_Init_Intracomm_from_F90") + use iso_c_binding + use pio_types + integer(C_INT), value :: f90_comp_comm + integer(C_INT), value :: num_iotasks + integer(C_INT), value :: stride + integer(C_INT), value :: base + integer(C_INT), value :: rearr + type(pio_rearr_opt_t) :: rearr_opts + integer(C_INT) :: iosysidp + end function PIOc_Init_Intracomm_from_F90 + end interface + +#ifdef TIMING + call t_startf("PIO:init") +#endif + lbase=0 + if(present(base)) lbase=base + ierr = PIOc_Init_Intracomm_from_F90(comp_comm,num_iotasks,stride,lbase,rearr,rearr_opts,iosystem%iosysid) + + call CheckMPIReturn("Bad Initialization in PIO_Init_Intracomm: ", ierr,__FILE__,__LINE__) +#ifdef TIMING + call t_stopf("PIO:init") +#endif + end subroutine init_intracom + + !> + !! @public + !! @ingroup PIO_init + !! Initialize the pio subsystem. This is a collective call. Input + !! parameters are read on comp_rank=0 values on other tasks are + !! ignored. This variation of PIO_init sets up a distinct set of + !! tasks to handle IO, these tasks do not return from this + !! call. Instead they go to an internal loop and wait to receive + !! further instructions from the computational tasks. + !! + !! @param component_count The number of computational components to + !! associate with this IO component. + !! @param peer_comm The communicator from which all other + !! communicator arguments are derived. + !! @param comp_comms The computational communicator for each of the + !! computational components. + !! @param io_comm The io communicator. + !! @param iosystem a derived type which can be used in subsequent + !! pio operations (defined in PIO_types). + !! @author Jim Edwards + !< + subroutine init_intercom(component_count, peer_comm, comp_comms, io_comm, iosystem) + use pio_types, only : pio_internal_error, pio_rearr_box + integer, intent(in) :: component_count + integer, intent(in) :: peer_comm + integer, intent(in) :: comp_comms(component_count) ! The compute communicator + integer, intent(in) :: io_comm ! The io communicator + + type (iosystem_desc_t), intent(out) :: iosystem(component_count) ! io descriptor to initalize +#ifdef DOTHIS + integer :: ierr + logical :: is_inter + logical, parameter :: check=.true. + + integer :: i, j, iam, io_leader, comp_leader + integer(i4), pointer :: iotmp(:) + character(len=5) :: cb_nodes + integer :: itmp + +#ifdef TIMING + call t_startf("PIO:init") +#endif +#if defined(NO_MPI2) || defined(_MPISERIAL) + call piodie( __PIO_FILE__,__LINE__, & + 'The PIO async interface requires an MPI2 complient MPI library') +#else + do i=1,component_count + iosystem(i)%error_handling = PIO_internal_error + iosystem(i)%comp_comm = comp_comms(i) + iosystem(i)%io_comm = io_comm + iosystem(i)%info = mpi_info_null + iosystem(i)%comp_rank= -1 + iosystem(i)%io_rank = -1 + iosystem(i)%async_interface = .true. + iosystem(i)%comproot = MPI_PROC_NULL + iosystem(i)%ioroot = MPI_PROC_NULL + iosystem(i)%compmaster= MPI_PROC_NULL + iosystem(i)%iomaster = MPI_PROC_NULL + iosystem(i)%numOST = PIO_num_OST + + + if(io_comm/=MPI_COMM_NULL) then + ! Find the rank of the io leader in peer_comm + call mpi_comm_rank(io_comm,iosystem(i)%io_rank, ierr) + if(iosystem(i)%io_rank==0) then + call mpi_comm_rank(peer_comm, iam, ierr) + else + iam = -1 + end if + call mpi_allreduce(iam, io_leader, 1, mpi_integer, MPI_MAX, peer_comm, ierr) + call CheckMPIReturn('Call to MPI_ALLREDUCE()',ierr,__FILE__,__LINE__) + ! Find the rank of the comp leader in peer_comm + iam = -1 + call mpi_allreduce(iam, comp_leader, 1, mpi_integer, MPI_MAX, peer_comm, ierr) + call CheckMPIReturn('Call to MPI_ALLREDUCE()',ierr,__FILE__,__LINE__) + ! create the intercomm + call mpi_intercomm_create(io_comm, 0, peer_comm, comp_leader, i, iosystem(i)%intercomm, ierr) + ! create the union_comm + call mpi_intercomm_merge(iosystem(i)%intercomm, .true., iosystem(i)%union_comm, ierr) + else + ! Find the rank of the io leader in peer_comm + iam = -1 + call mpi_allreduce(iam, io_leader, 1, mpi_integer, MPI_MAX, peer_comm, ierr) + call CheckMPIReturn('Call to MPI_ALLREDUCE()',ierr,__FILE__,__LINE__) + + ! Find the rank of the comp leader in peer_comm + iosystem(i)%comp_rank = -1 + if(comp_comms(i)/=MPI_COMM_NULL) then + call mpi_comm_rank(comp_comms(i),iosystem(i)%comp_rank, ierr) + if(iosystem(i)%comp_rank==0) then + call mpi_comm_rank(peer_comm, iam, ierr) + else + iam=-1 + end if + end if + call mpi_allreduce(iam, comp_leader, 1, mpi_integer, MPI_MAX, peer_comm, ierr) + call CheckMPIReturn('Call to MPI_ALLREDUCE()',ierr,__FILE__,__LINE__) + + ! create the intercomm + call mpi_intercomm_create(comp_comms(i), 0, peer_comm, io_leader, i, iosystem(i)%intercomm, ierr) + ! create the union comm + call mpi_intercomm_merge(iosystem(i)%intercomm, .false., iosystem(i)%union_comm, ierr) + end if + if(Debugasync) print *,__PIO_FILE__,__LINE__,i, iosystem(i)%intercomm, iosystem(i)%union_comm + + if(iosystem(i)%union_comm /= MPI_COMM_NULL) then + call mpi_comm_rank(iosystem(i)%union_comm, iosystem(i)%union_rank, ierr) + if(check) call checkmpireturn('init: after call to comm_rank: ',ierr) + call mpi_comm_size(iosystem(i)%union_comm, iosystem(i)%num_tasks, ierr) + if(check) call checkmpireturn('init: after call to comm_size: ',ierr) + + + if(io_comm /= MPI_COMM_NULL) then + call mpi_comm_size(io_comm, iosystem(i)%num_iotasks, ierr) + if(check) call checkmpireturn('init: after call to comm_size: ',ierr) + + if(iosystem(i)%io_rank==0) then + iosystem(i)%iomaster = MPI_ROOT + iosystem(i)%ioroot = iosystem(i)%union_rank + end if + iosystem(i)%ioproc = .true. + iosystem(i)%compmaster = 0 + + call pio_msg_handler_init(io_comm, iosystem(i)%io_rank) + end if + + + if(comp_comms(i) /= MPI_COMM_NULL) then + call mpi_comm_size(comp_comms(i), iosystem(i)%num_comptasks, ierr) + if(check) call checkmpireturn('init: after call to comm_size: ',ierr) + + iosystem(i)%iomaster = 0 + iosystem(i)%ioproc = .false. + if(iosystem(i)%comp_rank==0) then + iosystem(i)%compmaster = MPI_ROOT + iosystem(i)%comproot = iosystem(i)%union_rank + end if + + end if + + iosystem(i)%userearranger = .true. + iosystem(i)%rearr = PIO_rearr_box + + if(Debugasync) print *,__PIO_FILE__,__LINE__ + + call MPI_allreduce(iosystem(i)%comproot, j, 1, MPI_INTEGER, MPI_MAX,iosystem(i)%union_comm,ierr) + call CheckMPIReturn('Call to MPI_ALLREDUCE()',ierr,__FILE__,__LINE__) + + iosystem%comproot=j + call MPI_allreduce(iosystem(i)%ioroot, j, 1, MPI_INTEGER, MPI_MAX,iosystem(i)%union_comm,ierr) + call CheckMPIReturn('Call to MPI_ALLREDUCE()',ierr,__FILE__,__LINE__) + + iosystem%ioroot=j + + if(Debugasync) print *,__PIO_FILE__,__LINE__, i, iosystem(i)%comproot, iosystem(i)%ioroot + + if(io_comm/=MPI_COMM_NULL) then + call mpi_bcast(iosystem(i)%num_comptasks, 1, mpi_integer, iosystem(i)%compmaster,iosystem(i)%intercomm, ierr) + + call mpi_bcast(iosystem(i)%num_iotasks, 1, mpi_integer, iosystem(i)%iomaster, iosystem(i)%intercomm, ierr) + + call alloc_check(iotmp,iosystem(i)%num_iotasks,'init:iotmp') + iotmp(:) = 0 + iotmp( iosystem(i)%io_rank+1)=iosystem(i)%union_rank + + end if + if(comp_comms(i)/=MPI_COMM_NULL) then + call mpi_bcast(iosystem(i)%num_comptasks, 1, mpi_integer, iosystem(i)%compmaster, iosystem(i)%intercomm, ierr) + + call mpi_bcast(iosystem(i)%num_iotasks, 1, mpi_integer, iosystem(i)%iomaster, iosystem(i)%intercomm, ierr) + + call alloc_check(iotmp,iosystem(i)%num_iotasks,'init:iotmp') + iotmp(:)=0 + + end if + + iosystem(i)%my_comm = iosystem(i)%intercomm + + call alloc_check(iosystem(i)%ioranks, iosystem(i)%num_iotasks,'init:n_ioranks') + if(Debugasync) print *,__PIO_FILE__,__LINE__,iotmp + call MPI_allreduce(iotmp,iosystem(i)%ioranks,iosystem(i)%num_iotasks,MPI_INTEGER,MPI_MAX,iosystem(i)%union_comm,ierr) + call CheckMPIReturn('Call to MPI_ALLREDUCE()',ierr,__FILE__,__LINE__) + + if(Debugasync) print *,__PIO_FILE__,__LINE__,iosystem(i)%ioranks + call dealloc_check(iotmp) + + !--------------------------------- + ! initialize the rearranger system + !--------------------------------- + if (iosystem(i)%userearranger) then + call rearrange_init(iosystem(i)) + endif + end if + +#if defined(USEMPIIO) || defined(_PNETCDF) || defined(_NETCDF4) + call mpi_info_create(iosystem(i)%info,ierr) + ! turn on mpi-io aggregation + !DBG print *,'PIO_init: before call to setnumagg' + ! itmp = num_aggregator + ! call mpi_bcast(itmp, 1, mpi_integer, 0, iosystem%union_comm, ierr) + ! if(itmp .gt. 0) then + ! write(cb_nodes,('(i5)')) itmp + !#ifdef BGQ + ! call PIO_set_hint(iosystem(i),"bgl_nodes_pset",trim(adjustl(cb_nodes))) + !#else + ! call PIO_set_hint(iosystem(i),"cb_nodes",trim(adjustl(cb_nodes))) + !#endif + ! endif + +#ifdef PIO_GPFS_HINTS + call PIO_set_hint(iosystem(i),"ibm_largeblock_io","true") +#endif +#ifdef PIO_LUSTRE_HINTS + call PIO_set_hint(iosystem(i), 'romio_ds_read','disable') + call PIO_set_hint(iosystem(i),'romio_ds_write','disable') +#endif +#endif + end do + + if(DebugAsync) print*,__PIO_FILE__,__LINE__, iosystem(1)%ioranks + + + iosystem%num_aiotasks = iosystem%num_iotasks + iosystem%numost = PIO_NUM_OST + + ! This routine does not return + if(io_comm /= MPI_COMM_NULL) call pio_msg_handler(component_count,iosystem) + + if(DebugAsync) print*,__PIO_FILE__,__LINE__, iosystem(1)%ioranks +#ifdef TIMING + call t_stopf("PIO:init") +#endif +#endif +#endif + end subroutine init_intercom + + !> + !! @public + !! @ingroup PIO_set_hint + !! Set file system hints using mpi_info_set. This is a collective + !! call. + !! + !! @param iosystem @copydoc io_desc_t + !! @param hint the string name of the hint to define + !! @param hintval the string value to set the hint to + !! @retval ierr @copydoc error_return + !! @author Jim Edwards + subroutine PIO_set_hint(iosystem, hint, hintval) + type (iosystem_desc_t), intent(inout) :: iosystem ! io descriptor to initalize + character(len=*), intent(in) :: hint, hintval + integer :: ierr + + interface + integer(C_INT) function PIOc_set_hint(iosysid, key, val) & + bind(C,name="PIOc_set_hint") + use iso_c_binding + integer(C_INT), intent(in), value :: iosysid + character(C_CHAR), intent(in) :: key + character(C_CHAR), intent(in) :: val + end function PIOc_set_hint + end interface + + ierr = PIOc_set_hint(iosystem%iosysid, hint, hintval) + + end subroutine PIO_set_hint + + !> + !! @public + !! @ingroup PIO_finalize + !! Finalizes an IO System. This is a collective call. + !! + !! @param iosystem @copydoc io_desc_t + !! @retval ierr @copydoc error_return + !! @author Jim Edwards + !< + subroutine finalize(iosystem,ierr) + type (iosystem_desc_t), intent(inout) :: iosystem + integer(i4), intent(out) :: ierr + interface + integer(C_INT) function PIOc_finalize(iosysid) & + bind(C,name="PIOc_finalize") + use iso_c_binding + integer(C_INT), intent(in), value :: iosysid + end function PIOc_finalize + end interface + if(iosystem%iosysid /= -1) then + ierr = PIOc_finalize(iosystem%iosysid) + endif + end subroutine finalize + + !> + !! @public + !! @ingroup PIO_getnumiotasks + !! Return the number of IO-tasks that PIO is using. + !! + !! @param iosystem a defined pio system descriptor, see PIO_types + !! @param numiotasks the number of IO-tasks + !! @author Jim Edwards + !< + subroutine getnumiotasks(iosystem,numiotasks) + type (iosystem_desc_t), intent(in) :: iosystem + integer(i4), intent(out) :: numiotasks + integer :: ierr + interface + integer(C_INT) function PIOc_get_numiotasks(iosysid,numiotasks) & + bind(C,name="PIOc_get_numiotasks") + use iso_c_binding + integer(C_INT), intent(in), value :: iosysid + integer(C_INT), intent(out) :: numiotasks + end function PIOc_get_numiotasks + end interface + ierr = PIOc_get_numiotasks(iosystem%iosysid, numiotasks) + + end subroutine getnumiotasks + + !> Is an iotype available? + logical function pio_iotype_available( iotype) result(available) + integer, intent(in) :: iotype + interface + integer(C_INT) function PIOc_iotype_available(iotype) & + bind(C,name="PIOc_iotype_available") + use iso_c_binding + integer(C_INT), intent(in), value :: iotype + end function PIOc_iotype_available + end interface + available= (PIOc_iotype_available(iotype) == 1) + + end function pio_iotype_available + + !> + !! @public + !! @ingroup PIO_createfile + !! Create a NetCDF file using PIO. Input parameters are read on + !! comp task 0 and ignored elsewhere. + !! + !! @param iosystem A defined PIO system descriptor created by a + !! call to @ref PIO_init (see PIO_init) + !! @param file The returned file descriptor + !! @param iotype @copydoc PIO_iotype + !! @param fname The name of the file to open + !! @param amode_in The NetCDF creation mode flag - NC_NOWRITE for + !! read-only access or NC_WRITE for read-write access. + !! @retval ierr @copydoc error_return + !! @author Jim Edwards + !< + integer function createfile(iosystem, file,iotype, fname, amode_in) result(ierr) + type (iosystem_desc_t), intent(inout), target :: iosystem + type (file_desc_t), intent(out) :: file + integer, intent(in) :: iotype + character(len=*), intent(in) :: fname + integer, optional, intent(in) :: amode_in + integer :: mode + interface + integer(C_INT) function PIOc_createfile(iosysid, fh, iotype, fname,mode) & + bind(C,NAME='PIOc_createfile') + use iso_c_binding + implicit none + integer(c_int), value :: iosysid + integer(c_int) :: fh + integer(c_int) :: iotype + character(kind=c_char) :: fname(*) + integer(c_int), value :: mode + end function PIOc_createfile + end interface + character, allocatable :: cfname(:) + integer :: i, nl +#ifdef TIMING + call t_startf("PIO:createfile") +#endif + mode = 0 + if(present(amode_in)) mode = amode_in + nl = len_trim(fname) + allocate(cfname(nl+1)) + do i=1,nl + cfname(i) = fname(i:i) + enddo + cfname(nl+1)=C_NULL_CHAR + ierr = PIOc_createfile(iosystem%iosysid, file%fh, iotype, cfname, mode) + deallocate(cfname) + file%iosystem => iosystem +#ifdef TIMING + call t_stopf("PIO:createfile") +#endif + end function createfile + + !> + !! @public + !! @ingroup PIO_openfile + !! Open an existing file using PIO. Input parameters are read on + !! comp task 0 and ignored elsewhere. + !! + !! @param iosystem a defined PIO system descriptor created by a call + !! to @ref PIO_init (see PIO_int) + !! @param file the returned file descriptor + !! @param iotype @copybrief PIO_iotype + !! @param fname the name of the file to open + !! @param mode PIO_nowrite or PIO_write. + !! @retval ierr @copydoc error_return + !! @author Jim Edwards + !< + integer function PIO_openfile(iosystem, file, iotype, fname,mode) result(ierr) + + ! use ifcore, only: tracebackqq + type (iosystem_desc_t), intent(inout), target :: iosystem + type (file_desc_t), intent(out) :: file + integer, intent(in) :: iotype + character(len=*), intent(in) :: fname + integer, optional, intent(in) :: mode + integer :: iorank + interface + integer(C_INT) function PIOc_openfile(iosysid, fh, iotype, fname,mode) & + bind(C,NAME='PIOc_openfile') + use iso_c_binding + implicit none + integer(c_int), value :: iosysid + integer(c_int) :: fh + integer(c_int) :: iotype + character(kind=c_char) :: fname(*) + integer(c_int), value :: mode + end function PIOc_openfile + end interface + integer :: imode=0, i, nl + character, allocatable :: cfname(:) +#ifdef TIMING + call t_startf("PIO:openfile") +#endif + if(present(mode)) imode = mode + nl = len_trim(fname) + allocate(cfname(nl+1)) + do i=1,nl + cfname(i) = fname(i:i) + enddo + cfname(nl+1)=C_NULL_CHAR + ierr = PIOc_openfile( iosystem%iosysid, file%fh, iotype, cfname, imode) + deallocate(cfname) + file%iosystem => iosystem + +#ifdef TIMING + call t_stopf("PIO:openfile") +#endif + end function PIO_openfile + + + !> + !! @public + !! @ingroup PIO_syncfile + !! Synchronizing a file, forcing all writes to complete before the + !! subroutine returns. + !! + !! @param file @copydoc file_desc_t + !! @author Jim Edwards + !< + subroutine syncfile(file) + implicit none + type (file_desc_t), target :: file + integer :: ierr + interface + integer(C_INT) function PIOc_sync(ncid) & + bind(C,name="PIOc_sync") + use iso_c_binding + integer(C_INT), intent(in), value :: ncid + end function PIOc_sync + end interface + + ierr = PIOc_sync(file%fh) + + end subroutine syncfile + + + !> + !! @public + !! @ingroup PIO_freedecomp + !! @brief free all allocated storage associated with this decomposition + !! @details + !! @param ios : a defined pio system descriptor created by call to @ref PIO_init (see PIO_types) + !! @param iodesc @copydoc io_desc_t + !! @author Jim Edwards + !< + subroutine freedecomp_ios(ios,iodesc) + implicit none + type (iosystem_desc_t) :: ios + type (io_desc_t) :: iodesc + integer :: ierr + interface + integer(C_INT) function PIOc_freedecomp(iosysid, ioid) & + bind(C,name="PIOc_freedecomp") + use iso_c_binding + integer(C_INT), intent(in), value :: iosysid, ioid + end function PIOc_freedecomp + end interface + + ierr = PIOc_freedecomp(ios%iosysid, iodesc%ioid) + + end subroutine freedecomp_ios + + + !> + !! @public + !! @ingroup PIO_freedecomp + !! Free all allocated storage associated with this decomposition. + !! + !! @param file @copydoc file_desc_t + !! @param iodesc : @copydoc io_desc_t + !! @retval ierr @copydoc error_return + !! @author Jim Edwards + !< + subroutine freedecomp_file(file,iodesc) + implicit none + type (file_desc_t) :: file + type (io_desc_t) :: iodesc + + call syncfile(file) + + call freedecomp_ios(file%iosystem, iodesc) + + end subroutine freedecomp_file + + + !> + !! @public + !! @ingroup PIO_closefile + !! Close a disk file. + !! + !! @param file @copydoc file_desc_t + !! @author Jim Edwards + !< + subroutine closefile(file) + type(file_desc_t) :: file + integer :: ierr + interface + integer(c_int) function PIOc_closefile(ncid) & + bind(C,name="PIOc_closefile") + use iso_c_binding + integer(C_INT), value :: ncid + end function PIOc_closefile + end interface +#ifdef TIMING + call t_startf("PIO:closefile") +#endif + ierr = PIOc_closefile(file%fh) + nullify(file%iosystem) +#ifdef TIMING + call t_stopf("PIO:closefile") +#endif + + end subroutine closefile + + + !> + !! @public + !! @ingroup PIO_deletefile + !! Delete a file. + !! + !! @param ios a pio system handle + !! @param fname a filename + !! @author Jim Edwards + !< + subroutine pio_deletefile(ios, fname) + type(iosystem_desc_t) :: ios + character(len=*) :: fname + integer :: ierr + interface + integer(c_int) function PIOc_deletefile(iosid, fname) & + bind(C,name="PIOc_deletefile") + use iso_c_binding + integer(C_INT), value :: iosid + character(kind=c_char) :: fname + end function PIOc_deletefile + end interface + + ierr = PIOc_deletefile(ios%iosysid, trim(fname)//C_NULL_CHAR) + + end subroutine pio_deletefile + + !> + !! @public + !! @ingroup PIO_set_rearr_opts + !! Set the rerranger options. + !! + !! @param ios handle to pio iosystem + !! @param comm_type @copydoc PIO_rearr_comm_t + !! @param fcd : @copydoc PIO_rearr_comm_dir + !! @param enable_hs_c2i Enable handshake (compute procs to io procs) + !! @param enable_isend_c2i Enable isends (compute procs to io procs) + !! @param max_pend_req_c2i Maximum pending requests (compute procs + !! to io procs) + !! @param enable_hs_i2c Enable handshake (io procs to compute procs) + !! @param enable_isend_i2c Enable isends (io procs to compute procs) + !! @param max_pend_req_i2c Maximum pending requests (io procs to + !! compute procs) + !! @copydoc PIO_rearr_comm_fc_options + !! @author Jim Edwards + !< + function pio_set_rearr_opts(ios, comm_type, fcd,& + enable_hs_c2i, enable_isend_c2i,& + max_pend_req_c2i,& + enable_hs_i2c, enable_isend_i2c,& + max_pend_req_i2c) result(ierr) + + type(iosystem_desc_t), intent(inout) :: ios + integer, intent(in) :: comm_type, fcd + logical, intent(in) :: enable_hs_c2i, enable_hs_i2c + logical, intent(in) :: enable_isend_c2i, enable_isend_i2c + integer, intent(in) :: max_pend_req_c2i, max_pend_req_i2c + integer :: ierr + interface + integer(c_int) function PIOc_set_rearr_opts(iosysid, comm_type, fcd,& + enable_hs_c2i, enable_isend_c2i,& + max_pend_req_c2i,& + enable_hs_i2c, enable_isend_i2c,& + max_pend_req_i2c)& + bind(C,name="PIOc_set_rearr_opts") + use iso_c_binding + integer(C_INT), intent(in), value :: iosysid + integer(C_INT), intent(in), value :: comm_type + integer(C_INT), intent(in), value :: fcd + logical(C_BOOL), intent(in), value :: enable_hs_c2i + logical(C_BOOL), intent(in), value :: enable_isend_c2i + integer(C_INT), intent(in), value :: max_pend_req_c2i + logical(C_BOOL), intent(in), value :: enable_hs_i2c + logical(C_BOOL), intent(in), value :: enable_isend_i2c + integer(C_INT), intent(in), value :: max_pend_req_i2c + end function PIOc_set_rearr_opts + end interface + + ierr = PIOc_set_rearr_opts(ios%iosysid, comm_type, fcd,& + logical(enable_hs_c2i, kind=c_bool),& + logical(enable_isend_c2i, kind=c_bool),& + max_pend_req_c2i,& + logical(enable_hs_i2c, kind=c_bool),& + logical(enable_isend_i2c, kind=c_bool),& + max_pend_req_i2c) + + end function pio_set_rearr_opts + +end module piolib_mod diff --git a/tests/Makefile.am b/tests/Makefile.am new file mode 100644 index 00000000000..a643bbcd976 --- /dev/null +++ b/tests/Makefile.am @@ -0,0 +1,18 @@ +# This file is part of PIO. It generates the Makefiles for the tests +# directory. + +# Ed Hartnett + +# Does the user want to build fortran? If so, there are two additional +# test directories. +if BUILD_FORTRAN +UNIT = unit +GENERAL = general +if USE_GPTL +PERFORMANCE = performance +endif +endif + +SUBDIRS = cunit ${UNIT} ${GENERAL} ${PERFORMANCE} + +EXTRA_DIST = CMakeLists.txt