openmpi4-docs-4.1.4-150500.3.2.1<>,иfl p9|p-i>.y+mM^/kgEc!$/Ր0/D&5_w߇` m&ޗ7qJy}) !8zdIP i3s :wy'%-g9u$-M^B程r& O?}~;?d # S 'AGP<  ( $ O Nt` (( R8 \ 9 : F?G?HJIUxXX4YX<\Xd]cP^bcodefluv zgx|Copenmpi4-docs4.1.4150500.3.2.1Documentation for Open MPI/SHMEM version 4.1.4OpenMPI is an implementation of the Message Passing Interface, a standardized API typically used for parallel and/or distributed computing. OpenMPI is the merged result of four prior implementations where the team found for them to excel in one or more areas, such as latency or throughput. OpenMPI also includes an implementation of the OpenSHMEM parallel programming API, which is a Partitioned Global Address Space (PGAS) abstraction layer providing inter-process communication using one-sided communication techniques. This subpackage provides the documentation for Open MPI/OpenSHMEM.fl h04-armsrv1SUSE Linux Enterprise 15SUSE LLC BSD-3-Clausehttps://www.suse.com/Documentation/Manhttps://www.open-mpi.org/linuxaarch64  :  : [   ,$   B#il    y @O L % } \ A  L V\  8  xtx _  64lD ]y ' 9  >Z b*  l 5 W  g ] lt <  R   XBrg , C }  ?   > ^ o . [ b i D"9SN# 8 W b oO ' + {") mW >c t   J "#!""= "  < 2i Z $   T ^RD"j00 = / | #G,}<  r}|% b YH z H:t $# t JQ#$  %#M%Cp *Kf xo) ^Y V w g Zw !$  / < ee } }.bh3u G > J  wG,  < ) 2d  { Y v>E!f c E#"#"""#"""#"!H" +n""!#$"""""!#""""#"""!#""jd c#s#[f') {   @  @/AAA큤A큤flflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflflfl30ec7bc0a324e67a42d0135c8d946ecf3815a1a663e4fd4a281b68cc3db70f99da347d9d1e946c3e7051379825611caee5cb90544998c06ea08858adf0cd6caa43f0e5ac74d34ec8987d323adbaeb55836ada59b377033f59de927ae081bcbc8a9c3e88986038ec488a76d40e8b90ae7f492e39ccf2d07a2f6acba948bf21ad6986bc2ad5c29feb0a3a31539278946077523ebdd464c882a0031dc456720fb68986bc2ad5c29feb0a3a31539278946077523ebdd464c882a0031dc456720fb68a1facb76336597ba404fff950edef9201ea14dafefef8cd7d94590014ddf30eda9c3e88986038ec488a76d40e8b90ae7f492e39ccf2d07a2f6acba948bf21ad651d437f53835ff9a0bbb53ac4bb38651a85a6e5f51dbc7e14254ee65d5c555e2fcc007f09e9bce5170293bb5b5b92c6885be45b7f2d4092c291f6ff9f6940efdbe22e098d530db8207bad370fa1bbad7dbb3c1e828aafd5deed987eed8e58d8c030bfd6f1a194ec5e75a574058bb21c669e9bf93c158c0b8d0a48e325177c74b51d437f53835ff9a0bbb53ac4bb38651a85a6e5f51dbc7e14254ee65d5c555e290c907a6c9d0705ed4069b4c697c7675b4c76ae99908a0a422d1be0dd75325aafcc007f09e9bce5170293bb5b5b92c6885be45b7f2d4092c291f6ff9f6940efdaf89f2902fedfd4e379b6c9e772acca63d839782ff190b87783ab9ed75ef4d31a9c3e88986038ec488a76d40e8b90ae7f492e39ccf2d07a2f6acba948bf21ad68671ee9e1a3dc641505c48eadbeea2932b499d1af4cc1972eecca040aa466e5ff8d58a05fb0f51a524724be529bae6630d614a2c1517f521e91b72d68461961e33c91acf5528dc81f8c9c649437af792ccf75d68e7851dbb3fb0187462e6f4674a7716e36b75865dce629cf5717f752b0935b02b38d5993096c2d1e682b422ada4ab3f7b2bfba4820a22d228d1e503d040a803e8d59ab5ca5d88dcee27d53dd97745b85aa0aa042df487a12889e9fd7f142c6ab74a15dde3a274b5435d228735a9c3e88986038ec488a76d40e8b90ae7f492e39ccf2d07a2f6acba948bf21ad630a1bf0c0b31ede20899057bb85210bc5fda33ee4d3d04b5356f6c931c7b469809194d8adcaf9adfee6d522b6439d2b86977da05e1094285542668364ad4085e1dda720b51b36f7c398d3cf2355b5697ef58f9997b52ed85a30419d0667e0a01ede8fedc52bf35b5f9cd20072aa3dd125d788c9cf3312edbcb7a76688775e04814c339be2a90b1bd6513403e4188b587576ff2b644409d7a97bbcc4c5fbf1a05a9c3e88986038ec488a76d40e8b90ae7f492e39ccf2d07a2f6acba948bf21ad644e4b3cc7c99948183b1f2284837ca3cfe4050bce26b01a6636aa037ff7a5ff08eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a963273bf806d8303763f5a773cd4b5c0d9075fe642dec46d44019405a5db631a62a8eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a96385d323ca91f2e62b369eeed94c8ae4b6e75f0fd7ed950854efb9132a12b25df58eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a9638eae2b5cbf641a092849566b412531d5fa51245376fe77e619c2bf7b2ac7a963db02052d0ac1f3c7b7dfdfee94fea643ae6ac0ee89e20b643dfe59f4f262be646372bafb44f103c4402fa4b0bac68e87dda2eb3d1186b267d18dfb2e358fad3b4692b1a6f0260636789a074d844136ba0d0681af69f6c9dfd3370640ea0f05b3edadaa93439ddf4352c9ede892fe6142784f11186ea03c854ef98ddcac19db8cbf177ae1af763c47e035f967d053c874ec037a90d118fa9ce1ff825ea2bb0548e095237b8f0461a7077219e19a1f6c06d7adba3b7d7afeb15e7bbc2deb7f793da1ef8761b516ba3ff17aaf242c735aeca990703058a7d821fec7ebcf6126f643db4dcf0a4be173ceaa3d1cfc79f6944c9a918b30d9f6e54e6e9d2f415e6b78351bdbb120ddda0323e90845725e1153d2d759147feae8fcf51f35ba392964d54d0c5c92b6153f9af6fa0c9ad70ff43f9f3018f91a3cce3b4b720be3f27a6384d4f4e65ef97b37e1df1afc53ccfa990b1840c1b73c20e910c63152bc19f97be2dcc04b2fe6fb0d3ac3c4a7e510dd9e59cdccb9adadf0e9ddaa51be9b2b283fd5ec75c61908739b6296de68982b74aae05e4a9cf69c294253aa66a9a6121e894f59c973862bc8c46bbf17a42eb27a2c1d43394d1e956699d29d3629c601af71ed10a3b26c7fee016ce6aeed8cdee9a83c5c377e93f6c044b43c8c832f673b438018d8bedd97104dec06a2f02dd07779bf2a5bb1e59b24e91167de7a91ae11d3347bd9a4a718a31a3b4e2c4c167ee4df97e7415d103615179c80244b8723a87c2f80dab5d44bafb23d583f16866e40e90bc85a4c45779694dac0f49684986920c8b4b33ecbdcc03639651404f8f63ed20564ff0299a7118a3806705714fc09c7da3010c5945e11fa807702c240631ac16e5eccdbbebc7be10c9405f9e04ad296de9ea41b6c8c29df6aeca750ea52b72719b6e54b31cfc84656cb3487eda7d4472a8bd42fc1b8f073876e33530078a2092732e8de9b5974dd5baa17df47e717e34f102cbba72c5fce27e4266830acd12fd3917020ded19fc02afc2dceb5ea91aa4b6dcd36122932575b82f51a7387c5e35b83f35b0dc6031cfd88bce67dbd830f91ef006367ceb3bdfa5d1f6c4913dcd61dd63858485d5a63606e375bd030b47da571cc2ad2105a5ff981e2d6bc9a792af522cbbbcbc0a500897ed481bcf2dc01c9ed740eb8daa77323adaeeb961c8f8ffd6ea3aa8003842571c276a6e24b05eceef5335945030325fc50463bcde1794f6748eebb85d9c7679019b9b6623609acdf8436f2f2d3d8022673de84c3e845330f68d02c665aa0d8a497186b797369c8a2cf9d35b34f310c26ad0703006977cde6f83b4f8419e239088e7c6a28a8e906990944bba868612cce977c9bc0d74d8ee2cbff8fda1b062b81ac45b5608c2c3e4bb6b0c4a17f44a406631bea45ae78161c5e7fe111aa068782a5a36ad0f2bb4190bbdc17ddb5c2415bc40e5d15b23efe32f9b3e69a3842deee88844a1f7ef8c2a453035b53a41d2f432266d92e867cab7646737092cbee0a6399fe9f606c0ecf9928f2b31ecc239dffe65a9f416aa205a2416e66b8a87ce63bd350bcedca26949282bf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304aa72d3660021516ca67c0eaa28c0cdad646bf2e91f3345e576405ceb6838f8e1006ac2d1cb60d722d1f138bb0002c42bb155b6ab93db9b45fa4a748cf062475d2f1489d3a086f73f3de7b638827e737adc40c2ef1772d3458ddd304033adb7c308f01d399828a1d3f7a3504e61ae827f184875376cc7f301193973c268710b153369c677e1513314f27d643fac6dda39607ebcdab97f49b10da554eba6dfebd9de66230e58475d1666216da46e1ac87c009d6fa384eba0d28cadbed76bc979f57550d6f8f63589fb568a70ae5a19afd58ee3293d43cedc46a430f54a8fb4be014135e48b66cdb0ea43c352cd09143e50e1b03272a87492fa7676204805525c7f1e9aa988cfc515f83c708798b9c9a029935784f2986af71c73e8d81a25a6a7ead4c159eaf6b1dd37b91ab13821d14b6aee95a57ed22e2025a4e6e6249767178b326eb2802115d0a158d7cd315def757eedb9234332a8796b2993e34acd485f0270af78ed0b88cfd828f4727849536ae94b12206166e903df6dbbfeedf15d61d361ed7587e261fcc30f03daf6ade5b8fd10ef4f29bb0175fdf61c10acbf98e617b760cca85d0918243e873832089af8ee502e76e21e66ac047e318eac33725fcf4707167b5dc0fe4d2303aa9e68493ab2830d73dd0519cb56f78e2d39c28907118379d37944ed70a1acfba8f15a1ab5243f8938dc4d4a1d54e29d0f7dfff75e77c4237c4cc296cd596a2bde942d9995e826a887be2fdfff0cc596d5dccc8cfb894cbef72c3566b21234178c148e7878c660cf6a75ff994f45e1e8b6381c701d03bccd596f6af148150cff0e89ada74c58d7d7261cfd8290629a493d5d89c86a39e4c5cdc5cf20c5ff4b7e1e9f2320d27e560ca596770e5a3353202b35a11d542d98a8f42591a68130990fc84b838a09c0d4f57393bf4b63e960fcb0a2d1debc44fe70e1be3cc61a30e75c35fcefbde23f0d5dd6c3a9fb57bb8f264d7a6dffea8006c68b15ee688d0f6f574067abe9ac976282de58b2e012e453127304ccd632b692e9fc70db06f3c357308cf1c40979221f25c733779e2c93fa313e2518e9021b077017c2320e3e3c58472e82be6be9571a5ae0c327936da81097aa2392a6d8044b95cdbd22fc181e33f0588543b7e701c3bfce9405aa905f3b997eb5abfcb5e5c43c6bbc4319f6fc42ec77d84274ae2875b78621f32e2a9b6e4ca1f5ff4a6934f884efef46e5360e75cf1e928242c2dc1bb50a0a1a1d04eb4ca03b37abd59af6c81b20b60fff4f0de56bfe7753975118e6cdd99fecf973696d65c769478b604b26ab142b52d9d2481f2086e93f83c9256ec2aed4b3271eb30e5d6e72df1da2102dcbf635b54fccaca9f57a4370f3d3d7a5e15543a6ace24eeecd6c66e812c9c475e78eeee720e96a9d705566705e146add2606fad9c9d5c352fc2992e5aafde2a61852ed8939d415832117f81e4f8b8cf9e84ca33951cdfa4cfffac3d29a457124484a8d0e9f69ee538ec907ae0f8efe33a2fed119aec2452275db88c3fe6bbde47abbf78b0b4e8836a210bf10f849704434df6ca0a6b2df059b5ae8e3fa2e72fa4e3fee816397f4b2e0e7181d487fc9bff5e62c02848615996b3f5e3dc2bf90f69150dee4b3156a62528666c2b5186060074cf950b2a60e543ea4565cfe98fba17f365b090faf16a6b67c49ce2c10a345be6501abe1423ee948a733ef14b8fe112f0de695de53f98698c801dd29e235b94f5fa9d554766bd2214b6d92d32b7ed5d2f7fca5ed0f3b1a52285e4953b45b61d2d3772c442c375605290de0e89a5a9b5678f2cc49f5c92099c4ab33bbaf91d19583260e9aa5fde211a15ebb7b76740c8d176446d703725cb5b8f4facade459b0b789606f7a81c9a5aa044ad3ff75f4a2b13b72233d809854a1169ba1da37fa61fb567dd81be0e103a0ddbd2dfe027c4ad7c91aa5dd13aab73332e36985e37a32225ff75e1614cc8e39941003bfdb8ed7f27d3ab9af5a244f9c75f47e3e67c4fae50e81ff8b20aa24d80e386a2bee84c9fb2454ef673cd4cd04c5167c8553f1c787e2b5910ccf74134342366cec5090de0573105ab0ae3222184e84da6cea5009e6022d511d709bf8485a80b5aaaf66f90e23e534a9a8ea775eed557c796ddd22bd330c0ead3c88eba2a63d1144823b2baa20ef50447a7ef6102d8d22e10c6d183baea1d8d585032438399e3000c2b2bf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304aa98c7125ae85ab47fcdeae45f5ab424838bfb0c167190468de47793cf01629b448e4973300a4855e3acfd625d0749fc16d4c78e5d125385f65bb7552a7235bff5334092071e6fba11275b870a6a685fd43cc06e5cdd8f99232d958225e0219fec63854539872d813a82e3851bab1a7cfcfef4286df4497a7a53a38a0b846a829112000e8e6ccb76ea881d9c249f2887e6c789b619de59898326729b8c622f1b91d5149907e46df39a8f29fbc03d574201c0fa741e79bf11b6d35417fbe19ae1fe648b287a6cebb39634397fa2423a12bc7bdb8ae7a2446f9d495ff83b37e148bb07c2aaffe883ddd309a5e4552ac56f96dfef4da4b707dd31666db96ca8b060d04895b2b9305aa451e3cbcbf76117bc3dfe2b061275374528833c957a0556998c0d77bd52c046faa6bc0ebb9f809410bbb99d5618afa8abb8d7ff921d29fa52d05442d73f209bf5ffe5205d40e5448a29d0d760efa2ace1d386c8a9d4e0c8520d8438043604181f711e5c3929e5ddf9a146939893e0a22c4fbdf7f4436c67815e4bb26e91db4637945b89c22b3523c931b0f151b3cbf59078b93b64e51fe03a304a692fb0c99dc0023c55e71881092e6b5e4bfe254d4e640e0f733c08b6a6bc49e92b6c758f51ed3d3ce6f088728f07c3511188f3150cb16dce150875e17ab78391cf12d86605dcee4aeb60b85ac532fb612a859923ad36e766c222fdb6fd079db48ec225bc1da60f221b23b83e58fbbd60497752665be54bcfc31eabe2c85e8104b1b75b5b76fec34d802839b238bf1747f122923fd5df5ed39ff47d21d8d2099882e43f315f63c3cc736a9878c360011fc4408e269ef4c0fbec960845bdf63f872f8fa48beecbb606c3695711d847b393f05c438e3db3ee0a984e378c861560e24bf1f301d1bc4906556d5abec62bd5890988fca55085cd1a7a2c8e4c0da008ee9f47010ac63a50d8d560c4a9b0e54304834ead5a6e741fad757acd206c71617785b5ff790854c320fb8da2a4835755f69496f5bbe66f1a0ce20fa4bbce6ee5a228fe0c4507ea0b1e72f80e24a57d80431646f3086fbcaeb7bf17bbc470637ebdc7cca351cc3ce7b3a04b92915eeae22f18ca0a48d79b6a2996b3d1b2c45a6255daf7d3553ea311fba2385e6e18210d2b4d6311cb8ddc06c1fdc702042381975e03c5e48ddae08ad9fdfcdb74c25bef8a96d7ad2568cb373d512ad59840e3db42d95edb0ca403177756b974e8c9c67d06202a134aaf07b6b764b32bfb6149515f96be7d399db8f8426019ad6bfd95702a425b525df877a710cc003dbcb1cffec4392846d311c68d02f8554d8ea1796d18f59a12ec9fe54f2774c73aeb2dce659ef548eca006838fac17abded4dec8488bcf987d90c2d2173733b30dee6c749d2048e18acae721b93dc3c38649e05616f046ab63541d0afc038c94e3b721f6b06234bf39791761e80ae8d520b56675c1c0255470b93b1243247aea52a6a024d226fccd07f91c478b0c91c11676e436fe96932dfc8cdff1d273e8c071fbf48b0311f178f9772308ae15b18d9c898006728dbab724be0115780c5e6937011d6896a74cded093515954ba5aa88b4727bf74750f258b8b7293551b07a44db9b9aae18bbb52ea781e10040aa0f9ea7b7c25f41b5d9741014e626e85ddb71b892871bd7b64a883dceadb3c492d305ac47b0fa45044d9924a97369d52402058f1ee059bf4be1cf26ce88c1988405d3bbaf107dfd3cd7eebd9f567c249061195125bd84d8d21a3626e80177c6ac9f4e98c9734574232181f5d77e92f91e021d2c1239429aa33fd11e15eed82d8e6c967a620f84ebb8187a8513c3253eca1e95c7511172b1c2b7fe65cf88d6566d141b53e72330a76b56fa668e86a48aa77cc7152c660930f9ca82c7729f50bffa0c9712c925a46a38ee511c9118a01d19a796a94ac7b3323ae5095a0b50b60f01e530e0ff9d24cac0d10f6ab0cc173e0e307dfb1de97f6af3e1e1eb47d6359b24c122bfb8e079c21a35d94498c8b2af707e761ca40dc25fcbbf9d4ed141b0212820da19e6aa3aaf03905b8b4cc42703116d04e1da8edca9677ff8891b987a68a063037c628665ecce1897e59ae388c0550e36b41c5a397a66243d3f568c31aa9f45ede11857b4c7904496b177fe358b7846a9840f935be8c6933df771fcd352f61d478598fdcd876262f2e0ffbd810384dbc5665d4505a4520235a02ce9ac2bac5f0c964f5f5432a0089c3035acd75c56cf0b61f42034669c772c442a28c486d7982b86d3480f50c2583974cb4d1f85e56a4c4deaab54d9cd0e2c8bce382b8577e615ea7bd421a37d3cc9fbe655632d960e364f37d5c95d4e8b9e81a69813f69dcadce634c865086fc5eafbea135ced8a5e509c8937d667b7180ac8e7a95a5abe28408a129414096bd173b746eaa902ce3e5b3e689b0a453ad000b6d5aaa0502222dbba98e069298744486c671582444125de46dba71826335687bd99a3a224fef7594c6744f0a38c6d1bec4f42f853afd5de14930959209500a393049608e03a3ffb679ac919b7476ba9b26f0e5bf1d00c84e4be9dbe14e37cb92bdadad30630f73e6cd220ce73f5985ab7fe7c507bde574703a0a3ebfa02327ffb04e91712e74bbe7445a6352a4eb33886988556327d8a79c98e3bc5807a25ab8437ea7ebf5f116ca0c5346089fe7cab785c5e967d53213c78483b5e01a77a74c273cb821d7e7d0681f4e7ebe71e45fb5c3f511071fb537de39610857c24c1bf785e44a53fa294d6d817a90d0abd8c72faa31566490b36934f936c7ed2f311111a00e858689d862bb988129397a87c1351c7e5850e2f48ea0912677aa6ae865820b8355f0de981e2a7502ca2f54ce1052f8fae6bd8bcb3edeef2e91a7893cf8d18fb2898997159dda36b339fcd467edd8a18914265fbc8e3cfe05745205155eedb892b8a3206d84db78ddc4b21e20696a6c4a141e48898eead6d76a218b2cdad98962f0bec037c54e6c2b1fb172b9401f5da014a6e9ea053d7ec4bd81d74220db37253629d756a6305ae8126a0198827f67e128ea91eb7fe69e6f075902d78ec23e2cdb510473e10bd50049b4243577eb9fd382a3d5329328e4e87acba85870ddf18e5f4e16de5008de48a038dae8c9df515da241f51c64315ad90ef6c444918851a10f98be8d91142cba0135b54bc62b0af412f7bf5fd2c35bb5b4047e58be16e4dc22b6031ea6ecef1a78f5c9e1ebcd624526f1a0500dfa4bf48dd0ac12fef795ba588a440c13d1be06bbf228f577130655e574381892448a56ddce2b9c20354b15f476fbb2c4ab50e9eaafa47060d53df44dbc6c8006ab4933563911c8804e2fa479e832e68ff604894d034f03e988dabc33e2afd2925d77012a7daa7641ec0fbf2c434af497afe0c0a81b1ebdcf41cbac494cbac900452e4097df853510b97165cec9639d82b0a8a6d624d46afe51d75b1f7beb117c60b0e49248b85ce8e9e7ac40d5b20c101f048c4ec1ec9e00f6f745e80add7b374bd05f9136d7dd5db32005319014514ef072bbfe1e60f9fdeda35e7590ed9dbcf4e756ef38ae09b7bce659750267f7ec5f037ec39041a08287abf9ae6fdedc027239b994c1a71a6af53a439d3f1f51393f62313111d06081542efc5dbe6c8b1a1b704dec759629ef1c639365614cf7ac15127d39b1c4bbc5f45a9c23cfe7b3750811b30bbbf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304ac4b1936f0810b8593216087ccd65478e060bbef48307d680fbc7628371a23071af274206a0b10cc0e14b9aad2c30dbeae54c4719a98821311d46ccdcf75ce4f4070dd448a17367a7193164f45337467f1e0dd0b03072212b65f4406ce9fcd204bf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304a23bf7ba1ac583bba8adecee609bf94a9159540842fea27b386d7885f661690e75076f1c782d31b75133be982206f655dcd58988e253de24160cdf6708e9b2218d37640b42abe87d377b34be5482879a01eb5357f484116b783427ecbfa0004160b02d844bf2f0ae9f1c0cf02b6dad740965b1cdd72aae6b5eacaca9bad8d20b850f1f5e75595a1ce4cd24028fc7819deea6cc031065d851d53fd28b6c97e36fbe6fa2baf1e7a88639c39b43125962e189dfedd404060649d5d2e9010a2d52a3847f08073773633ae1020ff80d5ad15ebe9f73571896384f3bb0cf3a77525b3bc05dc57611572c219e7946aee1147666e2ab9150996bf27b80ec6bd707d429a1eacb9193ae88219b016a76c446e36e0b93bee1b85fd64d8dc62664a0ec8adc2d1725f5b45d9651d65c63a4a27a511882096bf3323b2bdc620cd1569f3d1893e57048d68e6be2f9d3da364c2bec9b2015a1c0ae072e085690d912b4b9520a2b66fa5f4283ab0e07d746e2c0b27ea36afefeb3362d50b901a85b24da969884b12df0662ed21fa5d69bb42ce7c62b025457afea1abdfbc15179f3c36eedbfc7bf71291bf1eea04d35d1ae9042f5bba91c6609b153ff178293b37c781dc1992542ab8a78b8e93442df355d38c39a1d099eaaa152b96006f3b57299b0dcbd665ee4219f991abf5af6c263744a6f1f75ebbd0a711b315cb0182b44448294d46b00cea375e828656b6f73790b9c4cc7c2a5348b77e35a9b821f0a375c8d21d8b430c0e0ed5db25445fb9fb8a7e7b50e2f8302a4dc503d9011c4ac2c970d44b4f62a11281d6c0edcac7db5501636ca56e50900372990ef15b777af99e8fac286300db01850bc5489ae83d5ef9151262c7c0bdb113fb390434ee9c8266ef9696473e1fbdaf97af386cf8cd3135c88b36a9c10054dceea4fbf49c3be36c5a749cd31f71b3aa0706035c80f0712ac67594ae7924bcd59a2bfc143519c64723dcd45f8b83b680ea84c14c3f40eed1411aa6749f63b7330a541568ecff711ced936fa6504f63e9ad6d89996ca5c9659a1d4409358ccc27552dab4e212c3722106d9cd47d1bc1275a945d7aadd1673bdd577c9e7118636a7164731ceb930d2433b892d45af1595a2be1ab5265403c76466388fbbc0c09bd6bc7e34cde2363bb4d25382f6d5fb9c20a9546e47f9bebaaa52ad2fd8b7f47483353c222fffcc67b0afbf5613485b1e933bef6044c873ad4bf59c4cd896eed7673a9092ebb0c1abc0bcfe250f33a5bbabf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304af7c6cfcb637c34b66390fa789123761535e61a7939cb47e762fe41def0a7e54e266d386d3a41292580f1952ca717e0b2e63f2704ff0b9a9b59bc83e658e845a6ecc0cfd1c0f18cd2b585e24acf74231e7201eac600908589c08c91598704085f26dde74106e3b0577ad098e649f4a998e23cdf698e2a7f513a7a2b6cfdd2a55bbf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304a062ddfb1cf514bfb6a26b563dc58fc7ee2b193a6a462856e01f110d90d74aee21108a1b97b49dca8f7bd6876fe6980a871bc649988ff414579f037fbdde9477541a2e74ecf715d9d5c21d90b4a72f5b9d6e3419c3665e546d0f267fc52b2d0f0284111092cb31f56a0e0120238845eaeffe4645a59f7cbd75d0764ae39b5a8cafea501127b8445bd96b76227c59149c5ff68f818da266500839808d3de5eb0d7933b90d4039339fd19fac78911203bacbaee4b9729dbaf771604b52c2933d01bf753b3eb6b025128342735a8366a6c885a612a6d12c6ac1ee9d6e4d0810c48d302ddc71929ba0ce75819cf4c5b3541f240ccf921a383a1992d565edf38990ae94441651d2c8fca2aef6e832f9104fd327971b0a728a6bcab380d5d6540a4dbf9854fbb7e6bafa8dff4153f37f7570524adcc8f878cba623774f66c13388ed5d12417328967bd0321a48f0fcffd04eb589baa185209ce7da9253f866b3810d0ec5e6a4899447ec88ad50da42c6db66f4c7d67e7c7748791c4b6e24068fc31523bc1d8c98c619d7d8b25455aaf935f6b2b5397ec234f7e5cdd0a8ca233251f69cb58cdf9939e9d8e0f834903d2dd3203d5c1c1235be94eb43dc85e218ed25ab2272780d505410e25908980fa00cb6c0214edefb616cb1b1d051f5c9d58cbf66c0babb46aaa48676a6dd765e3cad5bb829b91dba8cb214d823bb6cfe135dc2703c227e204ce0bae40c7dc441fa2aaf926b5c62d6b87709f9241548431d3a19ce0feb80f869d02bd20afa4d8698d13ca7a0b2e16c7f87e458074a3db2766377e9d2a550ac4d4db58e5dcab6ed5ad0d6f32ac567a8a4b53424f6a6a0a0e030e3ce0ad39d59b868569fdd9bc65c3cec36ba9c04d0d418693076bff520f559bafe567ac82b0ab9e5c0035c8764ad36412c7bacfecc49592bfd7422704b9c2bc654a5a5865a6543964fb7cc89772a08eb8acfb432f19adcc919619ac570668e700c8ddfa9118f7439792642250c79983937d9e1ee2ccf930269ced8730a664c24905967c03efdf66492fa3019e84d042c9183720375f7e1a2e03e678795cb0faa239c6f882e82a5d41ec9f06f0cc3ddf51c9fe8fa49e4f55e8ea527c491ee5be2c2f4840ec24cebd81271205bca9cdc1d59d738cd97c825e886f3641c8d9f538aea8f193bf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304abf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304a1d83b68d95c50011f1667a3b73e0b73f441bc6f168860ac09b647968f1a56b4da40989995590af71a75cb43a677866befa1b13546f77e7fbe9383ccb1df6412a5c9db7cb4c527cd7821aed50ac2a2a66567cd372026201f1239ac0422405266a5128005b539d69e8dcd5bbba6b01a22d3f3586a3dbf6e754851f362fc0ddfcecb8bfba214304eff999d07b5f5e946686e61865976acb2505a8a2244db9cf057cbbaa489e9c823cfc12858fbeeb98aa1efd70e058768b21e51b4975d5dae451a48fb3e925c876c3d80fcd1d12f7c0b5e4e487e7bd6e76c828ef16e0ef14f2b995bf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304a4b92a2e15a7ebad5c267572c68306fdf2060b9fb4ec3fc1346c208e1399d960eebe514fc56de2384241e98103cc78719d07ed87a976bd3c7e5b98db9a32127bbbf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304aca3cbd2550f8dc6c9c53ab59f0a55c9135d154d9dee5270859bdf7ba3b471c0d631bb54ad20316efb652f3cf87eee6d5764b2df176405042c5aa6f20859fc1cb443ff9d19e3cec49918900f0a4d168dc360d4632bf6300b58dbee10163fea8baf214bafae8ea4934b7adc3118144cb38c03fddd8009c950a11728b399c7999fe7d4c4cc389aacd89a1d7575435c4ffd8d607c8b742a8437a5023b8348496de51278ccbf8a824642883ae35ac5b8d207db422d5d3c4df04bd198c76341bb7db6f5847b9605eea71b226fd4b6a735087b0d8b9a65c4510f74dadc78a00c01d9796deeb21538e054968fde5ad93aa0fa7d8a2dd5bafb9bc0c2fcbfe9eaf365da27534679b9bfda535a29a118493d36bee95ef40b20ecadde6f538a880481de00f116fb68d29f298a6bd5dd74876bdb76c36ef5a669fd06d289407eef1cbec1c2bd3485949a854aff3c91a21ba116f424021cd993814355298e2a47eac1f1ebb0e1d55348c5b6ecfeedf96885436398060670cc72eca8d4ebbe62298d45b01c57aaa32a0929038505fdae4c5c6b349e0e0d40dec6da8d47a9466ed9a9727e4bcd3f01277e5037676dbf3292b08b753979ab3b6fbbeb2b51b5e0eb499629e22c36b0203ef5c33138d5107b8e6779fd7ddeea2290d73a7ed79023b030c1daa153afd0fa641c71186384f459a6ac18472a0e4d3daa2e75fa220ab86bdc9907fc0d2529ceab65a14aa0f78d66adf2cb795cda49577f296dc9bf773cadda91bb2f21d22150d2b906185584bce721bf0129cafb0c4a59a5161f306471211a4692637bfbaa1f912d61d5837a0c65f531b3653daf2b3cfb78badf45097c058ecdf63d32cf55abf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304abf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304a7932d4224189bc434f4c8f05ed37f2ef9b8397bfd3960ab28d2fd9ccca7f8748299f0b8c48785e182e572fd9039e8b78f0aea126c7d4349fe303f0ca82d4e95542cd6f1e0045f26561670a968a93ba9009a18435b79f93b65c22f1906ad4c95660b79df2267e140ff07924fda661ab5a894c27d492bc16295cbcc7c4d97b935b3a14bff212e22161d6f7d55baceabba3cd5cb595bfdb3d42cbc580cd69c2a442c93b88f1aa14b7e8f3fd634f29e431726139427b9b492cbea7452eea6a624625ec1d12bc18f75e2f5097c4be5ffed5dd13518b4bff681f7a24675421375313969a79259c81321874bc92c35fc1d1e0c32b58f135b4c599477497938cc5beac8a7cbb9ea3a8497833c7e3a2d53e03ffb81162db2266178d081966d682acd241c6fe2c8b296f487156ea29b34cd16554dcd435c05500075afa0fde88656a1ab65e9890d9a9049ac62d1d0ead9f3560cc7c507749ced8083ad8c3c2d50b76f5ddfa8a14dbfe85e6e0cf17d747516a80725d70b09e178d651dcd2c92a59887ef68b15a2269dda621eb0c88e331d583d8cc3282ca64f738563cad4955a0eea5ba37b3dffcace660952302aa9d6f4d50c965a98b72068b0d94404a4ecfd8f8d37aa97fe5c44e27b2720cf7335cebfd5a60fd94dea1e6b047706dec494accd9b6599642cf34459ec1f316cda8ea6d54a2071a61d263995ea9496fe3a9e417474e28ce9b24f9c892d9332401c33d8b40d852e7655613d708cbc59cbcde582c4f6ce9db996f5b459bcdde11d4bba322975f20b8ce3137f7890353e10e4a692fddd85f543c25d02088430376f8a50f9a0e6b06ce904283563520e3910c9fba45115443a059830ff0620f010db497adda93cd0c068cabafd2f89d4b2d6c0b513765a005747e91f401668751d6071f00395cc407772a54686d02bf7f87c8a6f1490b5b3d6c2e321f97241c237eb4952c4db20f28f381431114aef718a196f659633d69d2455d1ecce61aa26b5e3b38803a4484c211434f5183185933c6169447d12cce5e38c542c44e562d075623ad665fd2c1a71d12ed026f0bd0dd326d9832748c33b4adcf8cc3d0c6605dda9a812f326ea592231b8bbe4abe6864d4113861887dcfb0d6defb348d05166c957f52b4e7fed55215f98a4ed2c1a02c84d689b7ec101bef9bb8bd80547922007fb259a5de0fb1fee2c74b0beba3d5c6972bc6f014778a475bb6633cbdc7b283a0f80fe4d5f20d379cc439c992b2a7c1413fefba74d45bbbb6b0405efecc669eabaefed9f3c4ad9a1ce0976750f9ef3e820fd6b9a5d84f7bfccdb13fbea15c450bde1dded0bd200f33cafc4275303696ac62a7c43e957ac278ead7787464e938344b891a151f9d29f15378bb956e6fcf1f63b2b32e7b610124eb8570137bb56eb7390dc124fa0ca5815db723fae81cb7ca6203813b32d463b3ec58f12b8d104257e165e9475cf61d1cef37d19354498614b301d2d78612d9487fb35e81137f2973b7291f1bfcb1fea05bccbc426cdd6eb4ab2df5334c6a5b3647a20bf61129382a1c786cb88a70bac25b2c3ace13f7d63a11d16fca3ee11d99456c0c1f9c3d20c9ffb9aa0a62c090bce145c53e527b26527d9acc59f34d0c0bf74b540cc0b1439edd78b9729a0f043240074603591c18205e0a2b71143c1f58e6b18aeb391fa360fe98656b6f60dc1b4181e691104fad931557ce49d14bb275e5f941275d18778fcec86a7928fb5fcbc1fd1a84e48f0d0c20a906ebe111caf2576c273fe7c1d7b4ccc6a407d1d8a1e50a6caa2acc1b51f211637dbe4548b39006b76e701a29cbd8cd14c6906237ec8c0cf805d1433c537a1fc6722218e82fb2827bbf8c1eaad4d43c3320d46a4621d07f75e6f7a5daba7ea6a65af44a48fd409fc7cc1448f9b0c8dc37dddb3f3dd18ff21e567c7570d6d4a7aca424756619c06be354086977fedb97b9d8b0ad3314f542132c73ab0fda35b20fbc0ba1dea14dfd6301d7ca78d96396f7d9918bc8430be161d38a2e6dcf0e424aab33606a6f0d2c92f25c18b65c1ca6bb3efa77cfc14275ca6399e46d214f99d53ac77a0e93f29bbc97df8b2d0efcb92ca05cefb2d7cd84093176ebe913aea2524fd4c5dc5d5109bed27e9d8012f5ffef0016bcfc6968eb01c11b3f1e1735534072d8c945f885bd0a5952b9fc3c38cb5691a3859535993067151d913cff9e24ed667fece25d4903be057fa9a3f5ea2712a8cc2a983155d5fcfaabbc71ff1d7588a2556c563005f65569934b919d58d7fa3ca6d6df3b43d87edd3d29266d38170c149cafdbe6c403c54e40789dcac42967523adad45decdba1f3e8e5b87f2a2432aa65377a4aef5e62cc932d12a3fc2aef4a255fd64c50f79c13213e2b387439d2327d4c94f33e9d4e914728bb2082ba85aac86d5ddb7e1c723a7741584750355ea6013c5a218c4b66100a69e145f75cf06286368a1faa797904b3b9ca930f2ace53324a2712913e1aaff0d103af1a880d9376dc80fa5180eea2cd8f1a4d187d7adfc5ce69c29088a85a33e4e18764815f8b0c9e91ea20076ae4d1c07100adb1bac30c8dca1d7c0e60f54cd6fafc9d6e9f312f00feae0dfaca8c80c5b8531f25ebfa86f49c3ce6dcbf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304a1fcb37954386852584d5149182979527cf19de0326dd06df797e47e9fcf82937f123b7b7be72c5c383143fe7edb54b212563ff5ed8e2e07b353c71f97b8f167892f024f6c0699e4ef75810d06f6c8949e2b7077cf824069e5512cbfc2d56c477603d6f3b8993175b263b70d724ada035ef13360e336042062183837b6cad191e990299717277be2571317bcf8d3a41da595346b38e6184b49195c4c8e9b9cbd9f259e46064c9ef6eba872f189e4a42891387f75a80a877b45b465b0a26f38b6dee5c5baed03222b28a19588331a0bb52ada0ec313579bee395f4b5fad228cf7aa8cb7d3f5fe04a791a0d32b67205f4dec1648e7b8d81e4713f7135d9ba543c2da112a931ba142518687be3286dccc4572bbe907fc6a6e2708ef73c6f5f5553605d9e46d76d4d42873708fe0e0e2ebe7e596da94c624869020d6b5fdbb6708679b56af1a3f38cb10cdac7d3843c2998687970adc09d16814756d34c0445f1a9927f58c65ac00948d069f757145b1169bf8918c7386bd8485f884254f54d3ca18e5b3a6fc587656a72eeb848f2538ca0e111a8ec67ab7bc31379a2ec9a17725cd6854ec6e936001059cdb05aad4bbdcea951c565e788930eb2ad4ec3cd1f8e6e11f1aa142d4c82f361c464bd1ff6f67e756586f0d1005fdb65c8ecf66f005fffa26bbd0ca0c41d1ba4180dfef30d3699654f83725fca3bb6eab204a3d48aaddc51aded8a7571cb121cb613a690d011782c4e9db6bab86673a6aa9f631f06ffc1a5bf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304aa0f120b050aa8b4483feb4839bef806e62ee1b6ab9968ebccdb061d46d251e04a352359bd9b547da63709c45656e5d5d951d7ef817c52b2c5c83651a0583f5afc67c62ab9f8477c089f5bbc0903341a8f60f4e504e71cb612d88922a393d7ec2a9894527b4a6ff2e43303f90d9402ab2b7ee8e84a3e479737756d35f81ddee3b2c332c72687756926df9aa92de998cf8f60f97c8fada24e8ad93d864fd950bad95f6c72ee175fb49463585bad0deebcef08e2ce4f070d7e0815c9ff9544dafbe9a69609113155a09e9dedfea3b3910bb025d2d9fe0ba7005ecc9691d2d7341664848feaebe61efe519b564634c5128cd0c20039f57bb2b9cd8800bfd65b8966a039130dd440ef89360c815113f68c252116387e95f62568afd9ade9101814b67966ec6dea5aa6f71e3d3a45878dba2452c38b220196e79b1b6b63f2073bec74fc0bcdf7b7245c45dde145aa1d7602797cfadb615d33cea3b40d0a44fa6c22865aeee14e854eeebf0fa38c71d4c59dac1f886b42d63db5a30cc812574e0ca15b8d081339975084a9683c980dff4b0d8f2df40c4c1314dd68477d94efccbb1d074002b67864c6d7abe4be590919303d16b1c7fe898de56f942b60e9dba4786566e9768ee7e783dff0bc52885b80e1708f6ab6db38abc10538fe592454b9a6252ec1b83e9ea5965da0ac4591cebf9fbae67e9d28cda6b3fba65bf566cad6ce45508c2e15227d3a20e672e4b582195452e18f86bf0732e230f90510a2c72345972f4b737f10267ed12d2b5111640e16a8e10b9fbf1ca021fac13fb3a24776a2956a9993e07b1f514acb667aa3d27becd737f30653013877fc0f6477257b794353d9805135fa596aa473ea746079da9492c2f702f73af3b73c0f7b982fc0808c6fa1acef45c882bf12fd5e8debbbc002214e8be564d4f7b0e9c429483d3646bb86a2d33aed6d3da1a23032ededbccb7815dbe4cbef2ee4f25b56f626aec5a3f06cba1be73bbf4340e697b173bf6b1ba47593d92008c2aaaa7197389a47e7ebfb8ae34327e5e7c2a85d6da2ec07e99a6d78249513e9ddd89993517b5544bacac33d260995f263ad6101d5b08d6654b7d69d6df206421be9c56118425d40cc5131b6e608800fcaaf262ee0799dca8d3a070c6743d1b9c9aa10d9f0fcb8b8566a0d6d862dbd2fdd9a3a199b4df1f970807d34881e8d0b588b19dd36ac91a7a585f143de49232982e10bdf6cac8b16f92f8264857369006183ef4f8312b0d9d45400ef355641b8504109bcca0646e7a86799b532118b5adcd65be41d0362a3805597dac78ba0ed2a327e15dcee22f90ead6d24b9759ae3b023dd2f647425bfc5a762a6e3728e17d659b5f21f72f5ae8e407df4b5974fd5fad28227e1d0429e7c08f58779ac2e1cb89b4ed9369234d7959be4c05b8ed9d9b6021b6ecc5dfc3cc054c74d0dbbf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304a7aab906b268fd5ba1d11b4add8bb95c7d0926e10fc1b9ffc3523fb67505192591c2a3f03ccb1d98c7ca7a45f4f4d3a3851d05ef2dce868b595f3c58bc135de3c755201bbc8d3c07413c81a4e0d2dd198b4e30f18da2823233403ee0c8374cd7e61338d761f23de4f4b8b255ed532ff5581cc28ed061d2a25286c3ac125f1eb1137f8fa7cc46b3214fb19a43d68db6400f4c3ff51c12d2fc9b536acec9f360707d75577d08913cc513800ccb6a6d0856c8a172e0b320c3d3ad990a811eb0ba0f71203f319f26fd88534b0fbcdabbf4db05991c2587517e8efb10b4e57598317fd871bfac1a5e204f1b30606f41b523e74c9764226974c38bd384d8dfaedd596bbbf94917bbbe164c53e862ab338b0048280bfa67bbf66f6c97c3010d0ea37304a6f256d78fc2afd451f2e2c1abbd09d45388f2ed0da562d2eac68f786bb4e2fc61b83446d66e8b81fe361cbbc6a247ea095adfde55a06702ac01373c802c3a2aab1a381714f1aa091e8263765f859f281787e01f57dce157bce115ea638505fbf8fc3e0fe50ab5b6fe850c5f6c0a2bee23910b2f2672127474e23d06e30548f726cdc34400453cdf293aee7aaf366842be48b139e49114bbd27fc4a2e3d0801e837a11c43b58e136f347873c07dc6d7433ec4a8e564417bca25404410ec42bce5be3c3ce8a85320d2640377aa04ceb36bb9a6840abbe793770918025f9538f5d5fb402476b93d1b1e03cb94552e75dc4f0a5d1a7e052c681822084291c6820df0c9a7c0252dbd010d7c928a487ddfd95e6269fa8c0f9609bfd4343175d0f79cc7d527b2f8730ef5d6cb2146b84007c9ffdb0b62f5044365c2540671f40eedefa4e29735acc8170569860ed9783804feeaf55bf7bed8aa1aeecdbc1519991d80bf8aabb44db0201fadb17219da7648ab13237a57e3def9425986f5f57c9e9ad34f3222bdf1cc434f379f084ae4d1c54ac8d85ca28ba307a416e012b1099d12aaacb55088b8583b82469f50cbc4d78f5a8edf7c515fd55f30c25079fbea5c219b2288e153744bf5aad85439ee572f0a28b34e60456099d89248168f6df1bb2deb7dfa3f3ae35282fc7312594aa3033a647d7b87374d640569190a4f0ecc4c4e079f81dcc227c635b72a9c20da96a25d13b8ed853a538d34ae83387bed8df527cca0c3f14e4b5d2a624c1aabc27da4a221c01977110a7a65a079511f9680325f53ce94204ad4332a7160dfe77f2df7ee23194d0345aaa4699f961baec0ada8fee3590a5ad44283da860d7f6a241eb6f7b9ceb6b36ee1be76935aa51882cdbef5a164abddc57915c48a9bea58be264c27fb070f6b6dd1a5e9f889fe8940c5190d47621d871073f1176ca5e6c4dbc506c4d9a8c914d83af910fc75b9a2e22b0a2f113fadfac774e475d928183f86a3b444a6e6ad5ddbc2aff16f7c669148b70737984a4bd3336dd3b21032897d58e33c5f8018bc783f5214c33cf2dd1c58815ecda44d0e09315739108f5642732497115edc8bb24059b379dee890b9a5ab261f1ae4e7a548537e2a572226f96f72ac9cce4c2cbc6f9bf3a193637268b1a8bbcdd8fb85d52762e59ae0b40b00949a559a4748cec924e9a8cc7aeeee3ff0888a48e4203b659c3e37d284369205668b364383cb4407856fcc7c49e87b7edc714b230fce6125d08b858716918c38888a0844350518b82f8aad54053e423263fd6f3c4419be1c61689a222188addb755e181a23d3c04be4e79efb97129829aa3ca4949aa36e8c637292e51926924f8c75f55558fefaf491eb718c7fff5cfc1cfcb238025eb0086967b2eda2a03c6f5d2fe9fa805bb49ff2dcdcc9ce42cade7e4c57f2c6b07801d01162ec366571dd9e9b1d46971d745b8020adf3f6defbb48a03bc7493e5fc07aabe23ea9c3597a5e1f922dbf798b9d50bf00d676a42290d7a4780801688493cdf1611810281b0f912fb81c4fbebf1b31b76fc3fe59dba766ec37c541e1b463ea77fc3dc4c4d87e97bd4caae6a0a9051003823699e48dd4f15f95d5c095f720d2ba45218861fe0267ae2e5a282cb48ca577a2eac292389a86856cbbe333bf13cdf1611810281b0f912fb81c4fbebf1b31b76fc3fe59dba766ec37c541e1b465dd10247d44606126edcf672a3957bfde4b11796f7bcfb3204b8a194c89bbef025dbf6beb90f83efd5102b9d8df0651fb90b1a6f15031ba59728a099453e3dec25dbf6beb90f83efd5102b9d8df0651fb90b1a6f15031ba59728a099453e3dec25dbf6beb90f83efd5102b9d8df0651fb90b1a6f15031ba59728a099453e3dece278895e31ee80f266fe134fbc11b40e766634b6ff640670a3eb5ce15d0bd19a74daa36c0921f76df77e8a658bda9a3f927195602c30f5f5f1ca6b804d62e5d8b4ee6c9fe8ed02e66442d5275d5512e1ba4f6aca5f861dbd258f5d6d08bccdaf1d5f8b3716470c39ac414f069fa24f6e58399371a16df38ec6b80dd0663f5247fc5ff59410994fc85e696ac266861aad412a24fda2fc7237334a478d44e08b3cc627e495b83c8b218bd323330acee582d38e1656b200cd0f6e603316cda8421bf4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6d2e2374523c404d185662b54b404dad1d386503f2e4fe1374e0ee69e471f0c998b2b8224db1b390201a573f3f2853f56de5aa30e7235f677961537e9eef727835c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a6970095e4b606f66539364b6a638475b0237a8cf04e68ac80ac2886750eca2b450384f5e4b606f66539364b6a638475b0237a8cf04e68ac80ac2886750eca2b450384f000880302e4fa88df786388982c767bacfdcc520e246bfd8b65036e6db2009e98b706453c4e1a44bd30c606910ac32a7acef84e6dc7c0e85443120d0bb3d515a6487ba5aa868c595eded2018ff4088fc2d9bc1539d15dfb94d2606db0de619ba7eeb5d1a3a295f6156b9200b5bca3ad85a230c406842c99e4bab181242ac4e92c37dd5fb50ea93bc747a6f506cd8af492e615203b5ff6779e63c2435505731767eeb5d1a3a295f6156b9200b5bca3ad85a230c406842c99e4bab181242ac4e92c37dd5fb50ea93bc747a6f506cd8af492e615203b5ff6779e63c243550573176a648993793a8899eff496a6787712b382cb8df8b7a67266dd38798b2dd3fa7b95d17bf31f4ee9b0ec69cc5ab10f93bb740a9433633dd80647c45bd6007715776ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6e7c42fbdee10d39be44c27eba97b80d344f2f6bf893c572c55e46e5275730adfa5f66123648edef8230ccd302b65cbab9c0bf3f30b1eecd3b7d720e10c265ec3c6315aa174a388a683f81264e9680cbaeb67bbf9d1a848d08e8eaf85c3a9bcd2e7cfea298648f3fb27e975c220da7dd1c556d7193326b767957654e3ff61ab5e3a1c98b15f0953eb1d2af09051364ffe618ad8a4f34dffafe64991f81d4d1ca37eeb5d1a3a295f6156b9200b5bca3ad85a230c406842c99e4bab181242ac4e9284a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a6970092304f2b99d427e9772d541025e5259da64a9f2cbf8b9c1b7ed32e4f5f523b21ec37dd5fb50ea93bc747a6f506cd8af492e615203b5ff6779e63c243550573176095b1b05ca46f5561dc5f0039bee9055c118faf3095a0d46121b13ad7e2452156487ba5aa868c595eded2018ff4088fc2d9bc1539d15dfb94d2606db0de619ba6487ba5aa868c595eded2018ff4088fc2d9bc1539d15dfb94d2606db0de619ba114cd9f6b0154305db6b00c92061ce9828fb21450ef4e4d512b718ad90a75580471cf64f5f4eebd9f801b45074b2aa72e8429ed1e587c2d274b3bfe7ed81a09aa648993793a8899eff496a6787712b382cb8df8b7a67266dd38798b2dd3fa7b95d17bf31f4ee9b0ec69cc5ab10f93bb740a9433633dd80647c45bd6007715776ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6e7c42fbdee10d39be44c27eba97b80d344f2f6bf893c572c55e46e5275730adfa5f66123648edef8230ccd302b65cbab9c0bf3f30b1eecd3b7d720e10c265ec3c6315aa174a388a683f81264e9680cbaeb67bbf9d1a848d08e8eaf85c3a9bcd2e7cfea298648f3fb27e975c220da7dd1c556d7193326b767957654e3ff61ab5e3a1c98b15f0953eb1d2af09051364ffe618ad8a4f34dffafe64991f81d4d1ca37eeb5d1a3a295f6156b9200b5bca3ad85a230c406842c99e4bab181242ac4e9284a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a6970092304f2b99d427e9772d541025e5259da64a9f2cbf8b9c1b7ed32e4f5f523b21ec37dd5fb50ea93bc747a6f506cd8af492e615203b5ff6779e63c243550573176095b1b05ca46f5561dc5f0039bee9055c118faf3095a0d46121b13ad7e2452153cdf1611810281b0f912fb81c4fbebf1b31b76fc3fe59dba766ec37c541e1b46ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6f4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6f4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3ad1c1337f68d4b867132a4912edf16bcae83621c4b433d310fcd0c25b949339c99efc48842adb5459146df59d6524041a7604bdacd6cd718c316385fc19906fafe7c42fbdee10d39be44c27eba97b80d344f2f6bf893c572c55e46e5275730adfe7c42fbdee10d39be44c27eba97b80d344f2f6bf893c572c55e46e5275730adfe7c42fbdee10d39be44c27eba97b80d344f2f6bf893c572c55e46e5275730adfab94b7a91176da1c830c3d55badb3b72420f7030b11a17246d33c72231a0ee21a9fedeb73c117261fc2f7c0ccd08184b7bdb16652e8941646ebd561e7315593b45c08ea4cf65c5ff9f1d1e464b17d4ade3a82808c5340aa05cd9c4d7868314fe605b5220d4669b30fa845288b88dbb89830f31bea2d729f3051a7f9725193743052104b69d3bfc635531636f1b26324acc77964035aa0e35d43af23086b3de2792abc9c3b6431f4165dabe2fa763c76c75cd3dd139875e8218179efaad5acf3c318b45331c0717f62fd2bf5231eb9e4caaa90bfe55c466db62741581a096e7e8389204ba5eb6766df7fa1f2cb1cff266e3cfc7f02113bc0b5027919979b9bc939fad61c7c6c6536df4b21539a8812918ec787caf679814ac4858a9f6a5e40acc5d17bf31f4ee9b0ec69cc5ab10f93bb740a9433633dd80647c45bd6007715776ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6e7c42fbdee10d39be44c27eba97b80d344f2f6bf893c572c55e46e5275730adf4f1ecc5b9a56db8ba1edd21091e49ed8273e94854d5d2d5712b21bfb5e57db6ca5f66123648edef8230ccd302b65cbab9c0bf3f30b1eecd3b7d720e10c265ec3c6315aa174a388a683f81264e9680cbaeb67bbf9d1a848d08e8eaf85c3a9bcd2e7cfea298648f3fb27e975c220da7dd1c556d7193326b767957654e3ff61ab5eace676a2f899b95d04229e9e0f2f67ae78861176133db36fc0660b710db666603a1c98b15f0953eb1d2af09051364ffe618ad8a4f34dffafe64991f81d4d1ca37eeb5d1a3a295f6156b9200b5bca3ad85a230c406842c99e4bab181242ac4e9284a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a6970097decbf1794f0c5b8e39c65fcf1c4bfe7354d66d2339a39af56a482c2f6f6d5bac37dd5fb50ea93bc747a6f506cd8af492e615203b5ff6779e63c243550573176095b1b05ca46f5561dc5f0039bee9055c118faf3095a0d46121b13ad7e245215f617973868212e0922fe4034411b37d44fe55e3c95cb088ca7f4441b89058bcff617973868212e0922fe4034411b37d44fe55e3c95cb088ca7f4441b89058bcfa5daff91bb87d4112651e32b8b9740ce55ebe8bf336822fabcb4ba5de17cfeaea5f66123648edef8230ccd302b65cbab9c0bf3f30b1eecd3b7d720e10c265ec3a5f66123648edef8230ccd302b65cbab9c0bf3f30b1eecd3b7d720e10c265ec3a5f66123648edef8230ccd302b65cbab9c0bf3f30b1eecd3b7d720e10c265ec37c73a9cdf56a9a0b2edc3b396d39b44be34c2e38900bffd4b283944b44a39013052104b69d3bfc635531636f1b26324acc77964035aa0e35d43af23086b3de27e7d218683784f07912c232868f13268231683e231f99fcb4f1c310a145106baff877f8a60e492f66dc99ca8f83b5dd34c2b917ea43cabde4dd538e8d81d55e6ca648993793a8899eff496a6787712b382cb8df8b7a67266dd38798b2dd3fa7b99dabca4d89ad83986a828905c3be349d3e1d576eb3368fabecdfb4146c0077885d17bf31f4ee9b0ec69cc5ab10f93bb740a9433633dd80647c45bd6007715776ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6e7c42fbdee10d39be44c27eba97b80d344f2f6bf893c572c55e46e5275730adffe0f5394684361c434e4020191d94a10e285e1310343d90063cb12c07e1b182da5f66123648edef8230ccd302b65cbab9c0bf3f30b1eecd3b7d720e10c265ec3c6315aa174a388a683f81264e9680cbaeb67bbf9d1a848d08e8eaf85c3a9bcd2e7cfea298648f3fb27e975c220da7dd1c556d7193326b767957654e3ff61ab5eace676a2f899b95d04229e9e0f2f67ae78861176133db36fc0660b710db666603a1c98b15f0953eb1d2af09051364ffe618ad8a4f34dffafe64991f81d4d1ca37eeb5d1a3a295f6156b9200b5bca3ad85a230c406842c99e4bab181242ac4e9284a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a6970092304f2b99d427e9772d541025e5259da64a9f2cbf8b9c1b7ed32e4f5f523b21ec37dd5fb50ea93bc747a6f506cd8af492e615203b5ff6779e63c243550573176095b1b05ca46f5561dc5f0039bee9055c118faf3095a0d46121b13ad7e245215f617973868212e0922fe4034411b37d44fe55e3c95cb088ca7f4441b89058bcff617973868212e0922fe4034411b37d44fe55e3c95cb088ca7f4441b89058bcfa5daff91bb87d4112651e32b8b9740ce55ebe8bf336822fabcb4ba5de17cfeae5d17bf31f4ee9b0ec69cc5ab10f93bb740a9433633dd80647c45bd6007715776ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6e7c42fbdee10d39be44c27eba97b80d344f2f6bf893c572c55e46e5275730adfa5f66123648edef8230ccd302b65cbab9c0bf3f30b1eecd3b7d720e10c265ec3c6315aa174a388a683f81264e9680cbaeb67bbf9d1a848d08e8eaf85c3a9bcd2e7cfea298648f3fb27e975c220da7dd1c556d7193326b767957654e3ff61ab5e3a1c98b15f0953eb1d2af09051364ffe618ad8a4f34dffafe64991f81d4d1ca37eeb5d1a3a295f6156b9200b5bca3ad85a230c406842c99e4bab181242ac4e9284a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a6970097c73a9cdf56a9a0b2edc3b396d39b44be34c2e38900bffd4b283944b44a39013052104b69d3bfc635531636f1b26324acc77964035aa0e35d43af23086b3de27e7d218683784f07912c232868f13268231683e231f99fcb4f1c310a145106baff877f8a60e492f66dc99ca8f83b5dd34c2b917ea43cabde4dd538e8d81d55e6ca648993793a8899eff496a6787712b382cb8df8b7a67266dd38798b2dd3fa7b99dabca4d89ad83986a828905c3be349d3e1d576eb3368fabecdfb4146c0077885d17bf31f4ee9b0ec69cc5ab10f93bb740a9433633dd80647c45bd6007715776ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f6e7c42fbdee10d39be44c27eba97b80d344f2f6bf893c572c55e46e5275730adffe0f5394684361c434e4020191d94a10e285e1310343d90063cb12c07e1b182da5f66123648edef8230ccd302b65cbab9c0bf3f30b1eecd3b7d720e10c265ec3c6315aa174a388a683f81264e9680cbaeb67bbf9d1a848d08e8eaf85c3a9bcd2e7cfea298648f3fb27e975c220da7dd1c556d7193326b767957654e3ff61ab5eace676a2f899b95d04229e9e0f2f67ae78861176133db36fc0660b710db666603a1c98b15f0953eb1d2af09051364ffe618ad8a4f34dffafe64991f81d4d1ca37eeb5d1a3a295f6156b9200b5bca3ad85a230c406842c99e4bab181242ac4e9284a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a6970092304f2b99d427e9772d541025e5259da64a9f2cbf8b9c1b7ed32e4f5f523b21ec37dd5fb50ea93bc747a6f506cd8af492e615203b5ff6779e63c243550573176095b1b05ca46f5561dc5f0039bee9055c118faf3095a0d46121b13ad7e245215f617973868212e0922fe4034411b37d44fe55e3c95cb088ca7f4441b89058bcff617973868212e0922fe4034411b37d44fe55e3c95cb088ca7f4441b89058bcfa5daff91bb87d4112651e32b8b9740ce55ebe8bf336822fabcb4ba5de17cfeae7198e65768a8a2443b343abfda587a7ec289c4e0e8ea7f029939f8ad8fa372be084c2f2876d9c6b1330e87f236d0ecb7697963863f96ad392b7b5049b658006382ff927865b3e6739d989e0c905793fc1c07837d23f7f9918c2300b63473de0c695c3ab9bf1bf6c573163cb25aa239974575cea5cf351c9a78c2bbfc8ffe916e8b9da1aedbb39e51308480c9226e47aeba6a782366f425cab86a644e49ccd4ba84a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a6970095c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a69700984a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a69700984a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a6970095c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a69700984a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e87c09e04f23378aae873680e1f6b247490ad9d1bac8a4660438c52b5c190577d5d97236aa489dc55a7833d0d953a7580e753e9cd2b28d87d14a276c4cc2c5a373cdf1611810281b0f912fb81c4fbebf1b31b76fc3fe59dba766ec37c541e1b465e4b606f66539364b6a638475b0237a8cf04e68ac80ac2886750eca2b450384f5e4b606f66539364b6a638475b0237a8cf04e68ac80ac2886750eca2b450384faf46885d973ce83d58bf8c88cfa3255b4d1234c7948a36b8bb47a5adf3216344c30c8fdffb77e0b56977921ecda13399a934ae3eb07d26192bddf40464c105bc5d17bf31f4ee9b0ec69cc5ab10f93bb740a9433633dd80647c45bd6007715776ada478d73a689511de0b4c80cf8cdb8bb8a7d048a4ebf100820ef41213e4db3af4e2b413dd0a17b078e5cd6eaa4cfb65e3fb31445cfa42c0f18dfe1afe2b77f60f150830887038c369f8cbcd8d1b065eeace6917e9abb08f2bfeed7734279b81f622169d4830761d58a14f283ce0df6a88af3f68822a2c44754536ddc7a76645369f7332bce437594d7bb786b39e16851e61a31acbb79f382ed908abe88c0b19b85b4a1cf58fde5495e1e7cb249c25c301bb5c3fa9c7a481fda3c59d65c69948d8b0d9a71645a2d62ad81f936a97009430d7d7d30ac799e9b1b3a0de82df0af63a1c98b15f0953eb1d2af09051364ffe618ad8a4f34dffafe64991f81d4d1ca310c26f314a668296e69a3fc4e3c6b66f937334bce9d7fa501950c31dc1fa2cea84a6ff8c8f0f5a4ed77fc241e0f09f250b9b6b82fa182636eb8a8ebf84e7587e5c5c219e54190325a1ecf9d25cafdfd06d59b3b7d65d606cc58e267d5a69700958fcaacbc0a3d6ac221bf497656787dfd4095c328d343465b617246d6b22d1eef617973868212e0922fe4034411b37d44fe55e3c95cb088ca7f4441b89058bcff617973868212e0922fe4034411b37d44fe55e3c95cb088ca7f4441b89058bcf1af17b2b892bf07bcb786268f80f67c6b01aefb0c1f9e26d841344790dd90f3d6a384bff47e652aa5a4708d2a6a6f2218394d30482f6c05b208e630c4389476c000880302e4fa88df786388982c767bacfdcc520e246bfd8b65036e6db2009e9cd6501ad972d5ffae70d1b89a0f6389de1149913e13a721c919286017ab91f2f5e4b606f66539364b6a638475b0237a8cf04e68ac80ac2886750eca2b450384f67ab94577e81228f0ee197beae55b37b3e252c4d24710654488a53fbed16f634f617973868212e0922fe4034411b37d44fe55e3c95cb088ca7f4441b89058bcf3cdf1611810281b0f912fb81c4fbebf1b31b76fc3fe59dba766ec37c541e1b463cdf1611810281b0f912fb81c4fbebf1b31b76fc3fe59dba766ec37c541e1b462f6288a1b58376f3f46ad30b27b5a806dc065453d3a98435707352db0c80fb28196c6e627b94a422cdd4ce2b4e93693df00a8dea71d82ee4bfe65d13b7c3f12a82e51e9c74958f9ef4097fc61b5bd916e5d7930f21b82e4e00a2bacf7ccd6bac9c0b0cd778f215152dacd729190ddb481ece4b05d1343b9c400b9662453792f73b880921e4bd94aabeffa501dd026af4e8a9a83d68c4811e5ad2d91aeaa443997bc571102fbbd0c362463ed6af9808fb301b5780637e1e31077e70780f7607143c85231b1aaa935c296698a4941997001db4d806db62b240e1556c9087631a6empic++.1rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootopenmpi4-4.1.4-150500.3.2.1.src.rpmopenmpi4-docsopenmpi4-docs(aarch-64)     openmpi4rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)4.1.43.0.4-14.6.0-14.0.4-14.0-15.2-14.14.3c-c@bc@`N@`N@`[)_Wr@^^y^s^^]]@nmoreychaisemartin@suse.comnmoreychaisemartin@suse.comdmueller@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comeich@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.comnmoreychaisemartin@suse.com- Replace btl-openib-Add-VF-support-for-ConnectX-5-and-6.patch by btl-openib-Add-VF-support-for-ConnectX-4-5-and-6.patch to add ConnectX4 VF suppor- Enable libfabric on all arch - Switch to external libevent for all flavors - Switch to external hwloc and PMIx for HPC builds - Update rpmlintrc file to ignore missing libname suffix in libopenmpi packages - Add patch btl-openib-Add-VF-support-for-ConnectX-5-and-6.patch to support ConnectX 5 and 6 VF- update to 4.1.4: * Fix possible length integer overflow in numerous non-blocking collective operations. * Fix segmentation fault in UCX if MPI Tool interface is finalized before MPI_Init is called. * Remove /usr/bin/python dependency in configure. * Fix OMPIO issue with long double etypes. * Update treematch topology component to fix numerous correctness issues. * Fix memory leak in UCX MCA parameter registration. * Fix long operation closing file descriptors on non-Linux systems that can appear as a hang to users. * Fix for attribute handling on GCC 11 due to pointer aliasing. * Fix multithreaded race in UCX PML's datatype handling. * Fix a correctness issue in CUDA Reduce algorithm. * Fix compilation issue with CUDA GPUDirect RDMA support. * Fix to make shmem_calloc(..., 0) conform to the OpenSHMEM specification. * Add UCC collectives component. * Fix divide by zero issue in OMPI IO component. * Fix compile issue with libnl when not in standard search locations. * Fixed a seg fault in the smcuda BTL. Thanks to Moritz Kreutzer and @Stadik for reporting the issue. * Added support for ELEMENTAL to the MPI handle comparison functions in the mpi_f08 module. Thanks to Salvatore Filippone for raising the issue. * Minor datatype performance improvements in the CUDA-based code paths. * Fix MPI_ALLTOALLV when used with MPI_IN_PLACE. * Fix MPI_BOTTOM handling for non-blocking collectives. Thanks to Lisandro Dalcin for reporting the problem. * Enable OPAL memory hooks by default for UCX. * Many compiler warnings fixes, particularly for newer versions of GCC. * Fix intercommunicator overflow with large payload collectives. Also fixed MPI_REDUCE_SCATTER_BLOCK for similar issues with large payload collectives. * Back-port ROMIO 3.3 fix to use stat64() instead of stat() on GPFS. * Fixed several non-blocking MPI collectives to not round fractions based on float precision. * Fix compile failure for --enable-heterogeneous. Also updated the README to clarify that --enable-heterogeneous is functional, but still not recomended for most environments. * Minor fixes to OMPIO, including: - Fixing the open behavior of shared memory shared file pointers. Thanks to Axel Huebl for reporting the issue - Fixes to clean up lockfiles when closing files. Thanks to Eric Chamberland for reporting the issue. * Update LSF configure failure output to be more clear (e.g., on RHEL platforms). * Update if_[in|ex]clude behavior in btl_tcp and oob_tcp to select * all* interfaces that fall within the specified subnet range. * ROMIO portability fix for OpenBSD * Fix handling of MPI_IN_PLACE with MPI_ALLTOALLW and improve performance of MPI_ALLTOALL and MPI_ALLTOALLV for MPI_IN_PLACE. * Fix one-sided issue with empty groups in Post-Start-Wait-Complete synchronization mode. * Fix Fortran status returns in certain use cases involving Generalized Requests * Romio datatype bug fixes. * Fix oshmem_shmem_finalize() when main() returns non-zero value. * Fix wrong affinity under LSF with the membind option. * Fix count==0 cases in MPI_REDUCE and MPI_IREDUCE. * Fix ssh launching on Bourne-flavored shells when the user has "set - u" set in their shell startup files. * Correctly process 0 slots with the mpirun --host option. * Ensure to unlink and rebind socket when the Open MPI session directory already exists. * Fix a segv in mpirun --disable-dissable-map. * Fix a potential hang in the memory hook handling. * Slight performance improvement in MPI_WAITALL when running in MPI_THREAD_MULTIPLE. * Fix hcoll datatype mapping and rooted operation behavior. * Correct some operations modifying MPI_Status.MPI_ERROR when it is disallowed by the MPI standard. * UCX updates: - Fix datatype reference count issues. - Detach dynamic window memory when freeing a window. - Fix memory leak in datatype handling. * Fix various atomic operations issues. * mpirun: try to set the curses winsize to the pty of the spawned task. Thanks to Stack Overflow user @Seriously for reporting the issue. * PMIx updates: - Fix compatibility with external PMIx v4.x installations. - Fix handling of PMIx v3.x compiler/linker flags. Thanks to Erik Schnetter for reporting the issue. - Skip SLURM-provided PMIx detection when appropriate. Thanks to Alexander Grund for reporting the issue. * Fix handling by C++ compilers when they #include the STL "" header file, which ends up including Open MPI's text VERSION file (which is not C code). Thanks to @srpgilles for reporting the issue. * Fix MPI_Op support for MPI_LONG. * Make the MPI C++ bindings library (libmpi_cxx) explicitly depend on the OPAL internal library (libopen-pal). Thanks to Ye Luo for reporting the issue. * Fix configure handling of "--with-libevent=/usr". * Fix memory leak when opening Lustre files. Thanks to Bert Wesarg for submitting the fix. * Fix MPI_SENDRECV_REPLACE to correctly process datatype errors. Thanks to Lisandro Dalcin for reporting the issue. * Fix MPI_SENDRECV_REPLACE to correctly handle large data. Thanks Jakub Benda for reporting this issue and suggesting a fix. * Add workaround for TCP "dropped connection" errors to drastically reduce the possibility of this happening. * OMPIO updates: - Fix handling when AMODE is not set. Thanks to Rainer Keller for reporting the issue and supplying the fix. - Fix FBTL "posix" component linking issue. Thanks for Honggang Li for reporting the issue. - Fixed segv with MPI_FILE_GET_BYTE_OFFSET on 0-sized file view. - Thanks to GitHub user @shanedsnyder for submitting the issue. * OFI updates: - Multi-plane / Multi-Nic nic selection cleanups - Add support for exporting Open MPI memory monitors into Libfabric. - Ensure that Cisco usNIC devices are never selected by the OFI MTL. - Fix buffer overflow in OFI networking setup. Thanks to Alexander Grund for reporting the issue and supplying the fix. * Fix SSEND on tag matching networks. * Fix error handling in several MPI collectives. * Fix the ordering of MPI_COMM_SPLIT_TYPE. Thanks to Wolfgang Bangerth for raising the issue. * No longer install the orted-mpir library (it's an internal / Libtool convenience library). Thanks to Andrew Hesford for the fix. * PSM2 updates: - Allow advanced users to disable PSM2 version checking. - Fix to allow non-default installation locations of psm2.h.- openmpi4 is now the default openmpi for releases > 15.3 - Add orted-mpir-add-version-to-shared-library.patch to fix unversionned library - Change RPM macros install path to %{_rpmmacrodir}- Update to version 4.1.1 - Fix a number of datatype issues, including an issue with improper handling of partial datatypes that could lead to an unexpected application failure. - Change UCX PML to not warn about MPI_Request leaks during MPI_FINALIZE by default. The old behavior can be restored with the mca_pml_ucx_request_leak_check MCA parameter. - Reverted temporary solution that worked around launch issues in SLURM v20.11.{0,1,2}. SchedMD encourages users to avoid these versions and to upgrade to v20.11.3 or newer. - Updated PMIx to v3.2.2. - Disabled gcc built-in atomics by default on aarch64 platforms. - Disabled UCX PML when UCX v1.8.0 is detected. UCX version 1.8.0 has a bug that may cause data corruption when its TCP transport is used in conjunction with the shared memory transport. UCX versions prior to v1.8.0 are not affected by this issue. Thanks to @ksiazekm for reporting the issue. - Fixed detection of available UCX transports/devices to better inform PML prioritization. - Fixed SLURM support to mark ORTE daemons as non-MPI tasks. - Improved AVX detection to more accurately detect supported platforms. Also improved the generated AVX code, and switched to using word-based MCA params for the op/avx component (vs. numeric big flags). - Improved OFI compatibility support and fixed memory leaks in error handling paths. - Improved HAN collectives with support for Barrier and Scatter. Thanks to @EmmanuelBRELLE for these changes and the relevant bug fixes. - Fixed MPI debugger support (i.e., the MPIR_Breakpoint() symbol). Thanks to @louisespellacy-arm for reporting the issue. - Fixed ORTE bug that prevented debuggers from reading MPIR_Proctable. - Removed PML uniformity check from the UCX PML to address performance regression. - Fixed MPI_Init_thread(3) statement about C++ binding and update references about MPI_THREAD_MULTIPLE. Thanks to Andreas Lösel for bringing the outdated docs to our attention. - Added fence_nb to Flux PMIx support to address segmentation faults. - Ensured progress of AIO requests in the POSIX FBTL component to prevent exceeding maximum number of pending requests on MacOS. - Used OPAL's mutli-thread support in the orted to leverage atomic operations for object refcounting. - Fixed segv when launching with static TCP ports. - Fixed --debug-daemons mpirun CLI option. - Fixed bug where mpirun did not honor --host in a managed job allocation. - Made a managed allocation filter a hostfile/hostlist. - Fixed bug to marked a generalized request as pending once initiated. - Fixed external PMIx v4.x check. - Fixed OSHMEM build with `--enable-mem-debug`. - Fixed a performance regression observed with older versions of GCC when __ATOMIC_SEQ_CST is used. Thanks to @BiplabRaut for reporting the issue. - Fixed buffer allocation bug in the binomial tree scatter algorithm when non-contiguous datatypes are used. Thanks to @sadcat11 for reporting the issue. - Fixed bugs related to the accumulate and atomics functionality in the osc/rdma component. - Fixed race condition in MPI group operations observed with MPI_THREAD_MULTIPLE threading level. - Fixed a deadlock in the TCP BTL's connection matching logic. - Fixed pml/ob1 compilation error when CUDA support is enabled. - Fixed a build issue with Lustre caused by unnecessary header includes. - Fixed a build issue with IMB LSF workload manager. - Fixed linker error with UCX SPML.- Update to version 4.1.0 * collectives: Add HAN and ADAPT adaptive collectives components. Both components are off by default and can be enabled by specifying "mpirun --mca coll_adapt_priority 100 --mca coll_han_priority 100 ...". We intend to enable both by default in Open MPI 5.0. * OMPIO is now the default for MPI-IO on all filesystems, including Lustre (prior to this, ROMIO was the default for Lustre). Many thanks to Mark Dixon for identifying MPI I/O issues and providing access to Lustre systems for testing. * Minor MPI one-sided RDMA performance improvements. * Fix hcoll MPI_SCATTERV with MPI_IN_PLACE. * Add AVX support for MPI collectives. * Updates to mpirun(1) about "slots" and PE=x values. * Fix buffer allocation for large environment variables. Thanks to @zrss for reporting the issue. * Upgrade the embedded OpenPMIx to v3.2.2. * Fix issue with extra-long values in MCA files. Thanks to GitHub user @zrss for bringing the issue to our attention. * UCX: Fix zero-sized datatype transfers. * Fix --cpu-list for non-uniform modes. * Fix issue in PMIx callback caused by missing memory barrier on Arm platforms. * OFI MTL: Various bug fixes. * Fixed issue where MPI_TYPE_CREATE_RESIZED would create a datatype with unexpected extent on oddly-aligned datatypes. * collectives: Adjust default tuning thresholds for many collective algorithms * runtime: fix situation where rank-by argument does not work * Portals4: Clean up error handling corner cases * runtime: Remove --enable-install-libpmix option, which has not worked since it was added * UCX: Allow UCX 1.8 to be used with the btl uct * UCX: Replace usage of the deprecated NB API of UCX with NBX * OMPIO: Add support for the IME file system * OFI/libfabric: Added support for multiple NICs * OFI/libfabric: Added support for Scalable Endpoints * OFI/libfabric: Added btl for one-sided support * OFI/libfabric: Multiple small bugfixes * libnbc: Adding numerous performance-improving algorithms - Removed: reproducible.patch - replaced by spec file settings.- Update to version 4.0.5 - See NEWS for the detailled changelog- Update to version 4.0.4 - See NEWS for the detailled changelog- Update to version 4.0.3 - See NEWS for the detailled changelog - Fixes compilation with UCX 1.8 - Drop memory-patcher-fix-compiler-warning.patch which was merged upstream- Drop different package string between SLES and Leap- Add memory-patcher-fix-compiler-warning.patch to fix 64bit portability issues- Link against libnuma (bsc#1155120)- Initial version (4.0.2) - Add reproducible.patch for reproducible builds.h04-armsrv1 1718355468     "#$$$$$$*$$$$$$$$$4$$$$$$;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^^^^^     !"#^^&'()*+,^./^123456789:;<=>?@ABC^^FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^^^^  &'+,-./01238<ADDFJ/LMOT<DDFJ/LMOT<DDFDDD4.1.4-150500.3.2.14.1.4-150500.3.2.1manman1mpiCC.1mpic++.1mpicc.1mpicxx.1mpiexec.1mpif77.1mpif90.1mpifort.1mpirun.1ompi-clean.1ompi-server.1ompi_info.1opal_wrapper.1orte-clean.1orte-info.1orte-server.1orted.1orterun.1oshCC.1oshc++.1oshcc.1oshcxx.1oshfort.1oshmem_info.1oshrun.1shmemCC.1shmemc++.1shmemcc.1shmemcxx.1shmemfort.1shmemrun.1man3MPI.3MPIX_Allgather_init.3MPIX_Allgatherv_init.3MPIX_Allreduce_init.3MPIX_Alltoall_init.3MPIX_Alltoallv_init.3MPIX_Alltoallw_init.3MPIX_Barrier_init.3MPIX_Bcast_init.3MPIX_Exscan_init.3MPIX_Gather_init.3MPIX_Gatherv_init.3MPIX_Neighbor_allgather_init.3MPIX_Neighbor_allgatherv_init.3MPIX_Neighbor_alltoall_init.3MPIX_Neighbor_alltoallv_init.3MPIX_Neighbor_alltoallw_init.3MPIX_Query_cuda_support.3MPIX_Reduce_init.3MPIX_Reduce_scatter_block_init.3MPIX_Reduce_scatter_init.3MPIX_Scan_init.3MPIX_Scatter_init.3MPIX_Scatterv_init.3MPI_Abort.3MPI_Accumulate.3MPI_Add_error_class.3MPI_Add_error_code.3MPI_Add_error_string.3MPI_Address.3MPI_Aint_add.3MPI_Aint_diff.3MPI_Allgather.3MPI_Allgatherv.3MPI_Alloc_mem.3MPI_Allreduce.3MPI_Alltoall.3MPI_Alltoallv.3MPI_Alltoallw.3MPI_Attr_delete.3MPI_Attr_get.3MPI_Attr_put.3MPI_Barrier.3MPI_Bcast.3MPI_Bsend.3MPI_Bsend_init.3MPI_Buffer_attach.3MPI_Buffer_detach.3MPI_Cancel.3MPI_Cart_coords.3MPI_Cart_create.3MPI_Cart_get.3MPI_Cart_map.3MPI_Cart_rank.3MPI_Cart_shift.3MPI_Cart_sub.3MPI_Cartdim_get.3MPI_Close_port.3MPI_Comm_accept.3MPI_Comm_c2f.3MPI_Comm_call_errhandler.3MPI_Comm_compare.3MPI_Comm_connect.3MPI_Comm_create.3MPI_Comm_create_errhandler.3MPI_Comm_create_group.3MPI_Comm_create_keyval.3MPI_Comm_delete_attr.3MPI_Comm_disconnect.3MPI_Comm_dup.3MPI_Comm_dup_with_info.3MPI_Comm_f2c.3MPI_Comm_free.3MPI_Comm_free_keyval.3MPI_Comm_get_attr.3MPI_Comm_get_errhandler.3MPI_Comm_get_info.3MPI_Comm_get_name.3MPI_Comm_get_parent.3MPI_Comm_group.3MPI_Comm_idup.3MPI_Comm_join.3MPI_Comm_rank.3MPI_Comm_remote_group.3MPI_Comm_remote_size.3MPI_Comm_set_attr.3MPI_Comm_set_errhandler.3MPI_Comm_set_info.3MPI_Comm_set_name.3MPI_Comm_size.3MPI_Comm_spawn.3MPI_Comm_spawn_multiple.3MPI_Comm_split.3MPI_Comm_split_type.3MPI_Comm_test_inter.3MPI_Compare_and_swap.3MPI_Dims_create.3MPI_Dist_graph_create.3MPI_Dist_graph_create_adjacent.3MPI_Dist_graph_neighbors.3MPI_Dist_graph_neighbors_count.3MPI_Errhandler_create.3MPI_Errhandler_free.3MPI_Errhandler_get.3MPI_Errhandler_set.3MPI_Error_class.3MPI_Error_string.3MPI_Exscan.3MPI_Fetch_and_op.3MPI_File_c2f.3MPI_File_call_errhandler.3MPI_File_close.3MPI_File_create_errhandler.3MPI_File_delete.3MPI_File_f2c.3MPI_File_get_amode.3MPI_File_get_atomicity.3MPI_File_get_byte_offset.3MPI_File_get_errhandler.3MPI_File_get_group.3MPI_File_get_info.3MPI_File_get_position.3MPI_File_get_position_shared.3MPI_File_get_size.3MPI_File_get_type_extent.3MPI_File_get_view.3MPI_File_iread.3MPI_File_iread_all.3MPI_File_iread_at.3MPI_File_iread_at_all.3MPI_File_iread_shared.3MPI_File_iwrite.3MPI_File_iwrite_all.3MPI_File_iwrite_at.3MPI_File_iwrite_at_all.3MPI_File_iwrite_shared.3MPI_File_open.3MPI_File_preallocate.3MPI_File_read.3MPI_File_read_all.3MPI_File_read_all_begin.3MPI_File_read_all_end.3MPI_File_read_at.3MPI_File_read_at_all.3MPI_File_read_at_all_begin.3MPI_File_read_at_all_end.3MPI_File_read_ordered.3MPI_File_read_ordered_begin.3MPI_File_read_ordered_end.3MPI_File_read_shared.3MPI_File_seek.3MPI_File_seek_shared.3MPI_File_set_atomicity.3MPI_File_set_errhandler.3MPI_File_set_info.3MPI_File_set_size.3MPI_File_set_view.3MPI_File_sync.3MPI_File_write.3MPI_File_write_all.3MPI_File_write_all_begin.3MPI_File_write_all_end.3MPI_File_write_at.3MPI_File_write_at_all.3MPI_File_write_at_all_begin.3MPI_File_write_at_all_end.3MPI_File_write_ordered.3MPI_File_write_ordered_begin.3MPI_File_write_ordered_end.3MPI_File_write_shared.3MPI_Finalize.3MPI_Finalized.3MPI_Free_mem.3MPI_Gather.3MPI_Gatherv.3MPI_Get.3MPI_Get_accumulate.3MPI_Get_address.3MPI_Get_count.3MPI_Get_elements.3MPI_Get_elements_x.3MPI_Get_library_version.3MPI_Get_processor_name.3MPI_Get_version.3MPI_Graph_create.3MPI_Graph_get.3MPI_Graph_map.3MPI_Graph_neighbors.3MPI_Graph_neighbors_count.3MPI_Graphdims_get.3MPI_Grequest_complete.3MPI_Grequest_start.3MPI_Group_c2f.3MPI_Group_compare.3MPI_Group_difference.3MPI_Group_excl.3MPI_Group_f2c.3MPI_Group_free.3MPI_Group_incl.3MPI_Group_intersection.3MPI_Group_range_excl.3MPI_Group_range_incl.3MPI_Group_rank.3MPI_Group_size.3MPI_Group_translate_ranks.3MPI_Group_union.3MPI_Iallgather.3MPI_Iallgatherv.3MPI_Iallreduce.3MPI_Ialltoall.3MPI_Ialltoallv.3MPI_Ialltoallw.3MPI_Ibarrier.3MPI_Ibcast.3MPI_Ibsend.3MPI_Iexscan.3MPI_Igather.3MPI_Igatherv.3MPI_Improbe.3MPI_Imrecv.3MPI_Ineighbor_allgather.3MPI_Ineighbor_allgatherv.3MPI_Ineighbor_alltoall.3MPI_Ineighbor_alltoallv.3MPI_Ineighbor_alltoallw.3MPI_Info_c2f.3MPI_Info_create.3MPI_Info_delete.3MPI_Info_dup.3MPI_Info_env.3MPI_Info_f2c.3MPI_Info_free.3MPI_Info_get.3MPI_Info_get_nkeys.3MPI_Info_get_nthkey.3MPI_Info_get_valuelen.3MPI_Info_set.3MPI_Init.3MPI_Init_thread.3MPI_Initialized.3MPI_Intercomm_create.3MPI_Intercomm_merge.3MPI_Iprobe.3MPI_Irecv.3MPI_Ireduce.3MPI_Ireduce_scatter.3MPI_Ireduce_scatter_block.3MPI_Irsend.3MPI_Is_thread_main.3MPI_Iscan.3MPI_Iscatter.3MPI_Iscatterv.3MPI_Isend.3MPI_Issend.3MPI_Keyval_create.3MPI_Keyval_free.3MPI_Lookup_name.3MPI_Message_c2f.3MPI_Message_f2c.3MPI_Mprobe.3MPI_Mrecv.3MPI_Neighbor_allgather.3MPI_Neighbor_allgatherv.3MPI_Neighbor_alltoall.3MPI_Neighbor_alltoallv.3MPI_Neighbor_alltoallw.3MPI_Op_c2f.3MPI_Op_commutative.3MPI_Op_create.3MPI_Op_f2c.3MPI_Op_free.3MPI_Open_port.3MPI_Pack.3MPI_Pack_external.3MPI_Pack_external_size.3MPI_Pack_size.3MPI_Pcontrol.3MPI_Probe.3MPI_Publish_name.3MPI_Put.3MPI_Query_thread.3MPI_Raccumulate.3MPI_Recv.3MPI_Recv_init.3MPI_Reduce.3MPI_Reduce_local.3MPI_Reduce_scatter.3MPI_Reduce_scatter_block.3MPI_Register_datarep.3MPI_Request_c2f.3MPI_Request_f2c.3MPI_Request_free.3MPI_Request_get_status.3MPI_Rget.3MPI_Rget_accumulate.3MPI_Rput.3MPI_Rsend.3MPI_Rsend_init.3MPI_Scan.3MPI_Scatter.3MPI_Scatterv.3MPI_Send.3MPI_Send_init.3MPI_Sendrecv.3MPI_Sendrecv_replace.3MPI_Sizeof.3MPI_Ssend.3MPI_Ssend_init.3MPI_Start.3MPI_Startall.3MPI_Status_c2f.3MPI_Status_f2c.3MPI_Status_set_cancelled.3MPI_Status_set_elements.3MPI_Status_set_elements_x.3MPI_T_category_changed.3MPI_T_category_get_categories.3MPI_T_category_get_cvars.3MPI_T_category_get_info.3MPI_T_category_get_num.3MPI_T_category_get_pvars.3MPI_T_cvar_get_info.3MPI_T_cvar_get_num.3MPI_T_cvar_handle_alloc.3MPI_T_cvar_handle_free.3MPI_T_cvar_read.3MPI_T_cvar_write.3MPI_T_enum_get_info.3MPI_T_enum_get_item.3MPI_T_finalize.3MPI_T_init_thread.3MPI_T_pvar_get_info.3MPI_T_pvar_get_num.3MPI_T_pvar_handle_alloc.3MPI_T_pvar_handle_free.3MPI_T_pvar_read.3MPI_T_pvar_readreset.3MPI_T_pvar_reset.3MPI_T_pvar_session_create.3MPI_T_pvar_session_free.3MPI_T_pvar_start.3MPI_T_pvar_stop.3MPI_T_pvar_write.3MPI_Test.3MPI_Test_cancelled.3MPI_Testall.3MPI_Testany.3MPI_Testsome.3MPI_Topo_test.3MPI_Type_c2f.3MPI_Type_commit.3MPI_Type_contiguous.3MPI_Type_create_darray.3MPI_Type_create_f90_complex.3MPI_Type_create_f90_integer.3MPI_Type_create_f90_real.3MPI_Type_create_hindexed.3MPI_Type_create_hindexed_block.3MPI_Type_create_hvector.3MPI_Type_create_indexed_block.3MPI_Type_create_keyval.3MPI_Type_create_resized.3MPI_Type_create_struct.3MPI_Type_create_subarray.3MPI_Type_delete_attr.3MPI_Type_dup.3MPI_Type_extent.3MPI_Type_f2c.3MPI_Type_free.3MPI_Type_free_keyval.3MPI_Type_get_attr.3MPI_Type_get_contents.3MPI_Type_get_envelope.3MPI_Type_get_extent.3MPI_Type_get_extent_x.3MPI_Type_get_name.3MPI_Type_get_true_extent.3MPI_Type_get_true_extent_x.3MPI_Type_hindexed.3MPI_Type_hvector.3MPI_Type_indexed.3MPI_Type_lb.3MPI_Type_match_size.3MPI_Type_set_attr.3MPI_Type_set_name.3MPI_Type_size.3MPI_Type_size_x.3MPI_Type_struct.3MPI_Type_ub.3MPI_Type_vector.3MPI_Unpack.3MPI_Unpack_external.3MPI_Unpublish_name.3MPI_Wait.3MPI_Waitall.3MPI_Waitany.3MPI_Waitsome.3MPI_Win_allocate.3MPI_Win_allocate_shared.3MPI_Win_attach.3MPI_Win_c2f.3MPI_Win_call_errhandler.3MPI_Win_complete.3MPI_Win_create.3MPI_Win_create_dynamic.3MPI_Win_create_errhandler.3MPI_Win_create_keyval.3MPI_Win_delete_attr.3MPI_Win_detach.3MPI_Win_f2c.3MPI_Win_fence.3MPI_Win_flush.3MPI_Win_flush_all.3MPI_Win_flush_local.3MPI_Win_flush_local_all.3MPI_Win_free.3MPI_Win_free_keyval.3MPI_Win_get_attr.3MPI_Win_get_errhandler.3MPI_Win_get_group.3MPI_Win_get_info.3MPI_Win_get_name.3MPI_Win_lock.3MPI_Win_lock_all.3MPI_Win_post.3MPI_Win_set_attr.3MPI_Win_set_errhandler.3MPI_Win_set_info.3MPI_Win_set_name.3MPI_Win_shared_query.3MPI_Win_start.3MPI_Win_sync.3MPI_Win_test.3MPI_Win_unlock.3MPI_Win_unlock_all.3MPI_Win_wait.3MPI_Wtick.3MPI_Wtime.3OMPI_Affinity_str.3OpenMPI.3OpenSHMEM.3_my_pe.3_num_pes.3intro_shmem.3shfree.3shmalloc.3shmem_addr_accessible.3shmem_align.3shmem_alltoall32.3shmem_alltoall64.3shmem_alltoalls32.3shmem_alltoalls64.3shmem_barrier.3shmem_barrier_all.3shmem_broadcast32.3shmem_broadcast64.3shmem_char_g.3shmem_char_get.3shmem_char_get_nbi.3shmem_char_p.3shmem_char_put.3shmem_char_put_nbi.3shmem_clear_cache_inv.3shmem_clear_cache_line_inv.3shmem_clear_lock.3shmem_collect32.3shmem_collect64.3shmem_complexd_prod_to_all.3shmem_complexd_sum_to_all.3shmem_complexf_prod_to_all.3shmem_complexf_sum_to_all.3shmem_double_fetch.3shmem_double_g.3shmem_double_get.3shmem_double_get_nbi.3shmem_double_iget.3shmem_double_iput.3shmem_double_max_to_all.3shmem_double_min_to_all.3shmem_double_p.3shmem_double_prod_to_all.3shmem_double_put.3shmem_double_put_nbi.3shmem_double_set.3shmem_double_sum_to_all.3shmem_double_swap.3shmem_fcollect32.3shmem_fcollect64.3shmem_fence.3shmem_finalize.3shmem_float_fetch.3shmem_float_g.3shmem_float_get.3shmem_float_get_nbi.3shmem_float_iget.3shmem_float_iput.3shmem_float_max_to_all.3shmem_float_min_to_all.3shmem_float_p.3shmem_float_prod_to_all.3shmem_float_put.3shmem_float_put_nbi.3shmem_float_set.3shmem_float_sum_to_all.3shmem_float_swap.3shmem_free.3shmem_get128.3shmem_get128_nbi.3shmem_get16_nbi.3shmem_get32.3shmem_get32_nbi.3shmem_get64.3shmem_get64_nbi.3shmem_get8_nbi.3shmem_getmem.3shmem_getmem_nbi.3shmem_global_exit.3shmem_iget128.3shmem_iget32.3shmem_iget64.3shmem_info_get_name.3shmem_info_get_version.3shmem_init.3shmem_int_add.3shmem_int_and_to_all.3shmem_int_cswap.3shmem_int_fadd.3shmem_int_fetch.3shmem_int_finc.3shmem_int_g.3shmem_int_get.3shmem_int_get_nbi.3shmem_int_iget.3shmem_int_inc.3shmem_int_iput.3shmem_int_max_to_all.3shmem_int_min_to_all.3shmem_int_or_to_all.3shmem_int_p.3shmem_int_prod_to_all.3shmem_int_put.3shmem_int_put_nbi.3shmem_int_set.3shmem_int_sum_to_all.3shmem_int_swap.3shmem_int_wait.3shmem_int_wait_until.3shmem_int_xor_to_all.3shmem_iput128.3shmem_iput32.3shmem_iput64.3shmem_long_add.3shmem_long_and_to_all.3shmem_long_cswap.3shmem_long_fadd.3shmem_long_fetch.3shmem_long_finc.3shmem_long_g.3shmem_long_get.3shmem_long_get_nbi.3shmem_long_iget.3shmem_long_inc.3shmem_long_iput.3shmem_long_max_to_all.3shmem_long_min_to_all.3shmem_long_or_to_all.3shmem_long_p.3shmem_long_prod_to_all.3shmem_long_put.3shmem_long_put_nbi.3shmem_long_set.3shmem_long_sum_to_all.3shmem_long_swap.3shmem_long_wait.3shmem_long_wait_until.3shmem_long_xor_to_all.3shmem_longdouble_g.3shmem_longdouble_get.3shmem_longdouble_get_nbi.3shmem_longdouble_iget.3shmem_longdouble_iput.3shmem_longdouble_max_to_all.3shmem_longdouble_min_to_all.3shmem_longdouble_p.3shmem_longdouble_prod_to_all.3shmem_longdouble_put.3shmem_longdouble_put_nbi.3shmem_longlong_add.3shmem_longlong_and_to_all.3shmem_longlong_cswap.3shmem_longlong_fadd.3shmem_longlong_fetch.3shmem_longlong_finc.3shmem_longlong_g.3shmem_longlong_get.3shmem_longlong_get_nbi.3shmem_longlong_iget.3shmem_longlong_inc.3shmem_longlong_iput.3shmem_longlong_max_to_all.3shmem_longlong_min_to_all.3shmem_longlong_or_to_all.3shmem_longlong_p.3shmem_longlong_prod_to_all.3shmem_longlong_put.3shmem_longlong_put_nbi.3shmem_longlong_set.3shmem_longlong_sum_to_all.3shmem_longlong_swap.3shmem_longlong_wait.3shmem_longlong_wait_until.3shmem_longlong_xor_to_all.3shmem_malloc.3shmem_my_pe.3shmem_n_pes.3shmem_pe_accessible.3shmem_ptr.3shmem_put128.3shmem_put128_nbi.3shmem_put16_nbi.3shmem_put32.3shmem_put32_nbi.3shmem_put64.3shmem_put64_nbi.3shmem_put8_nbi.3shmem_putmem.3shmem_putmem_nbi.3shmem_quiet.3shmem_realloc.3shmem_set_cache_inv.3shmem_set_cache_line_inv.3shmem_set_lock.3shmem_short_and_to_all.3shmem_short_g.3shmem_short_get.3shmem_short_get_nbi.3shmem_short_iget.3shmem_short_iput.3shmem_short_max_to_all.3shmem_short_min_to_all.3shmem_short_or_to_all.3shmem_short_p.3shmem_short_prod_to_all.3shmem_short_put.3shmem_short_put_nbi.3shmem_short_sum_to_all.3shmem_short_wait.3shmem_short_wait_until.3shmem_short_xor_to_all.3shmem_swap.3shmem_test_lock.3shmem_udcflush.3shmem_udcflush_line.3shmem_wait.3shmem_wait_until.3shmemalign.3shrealloc.3start_pes.3man7ompi_crcp.7opal_crs.7orte_filem.7orte_hosts.7orte_snapc.7orte_sstore.7/usr/lib64/mpi/gcc/openmpi4/share//usr/lib64/mpi/gcc/openmpi4/share/man//usr/lib64/mpi/gcc/openmpi4/share/man/man1//usr/lib64/mpi/gcc/openmpi4/share/man/man3//usr/lib64/mpi/gcc/openmpi4/share/man/man7/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:34207/SUSE_SLE-15-SP5_Update/26eb82da626b4b2a391e604d4c41cf41-openmpi4.SUSE_SLE-15-SP5_Update:standarddrpmxz5aarch64-suse-linux  directorytroff or preprocessor input, ASCII texttroff or preprocessor input, UTF-8 Unicode textAlgol 68 source, ASCII text, with very long linesC source, ASCII text, with very long linesC source, ASCII textC source, UTF-8 Unicode text, with very long linestroff or preprocessor input, ASCII text, with very long linesC source, UTF-8 Unicode text- hutf-8711a9ad7db0f80dd3bbada1405c4b6797dff2ed8c0f66492d970efd0cf83ea77?P7zXZ !t/d%]"k%n.. 0Ǿ<dF%coo+[u0)ATڃSIbQ!@:f<8 4T.7wLyRq^uOѪYÀ0dxs\/ Hv\ZGJ\I|]qݵ>U˫b Ht;27eQ!Fi͌?]L@£jn'&7(IBѭ qv1nszZoX8y"N" JVx,yx/vhEw`H0$D>o`FKrZjm ^9"E|)Ti怲 U ܱgs~HjdJpFN"cl3dr{Sѭi6_X'Jގ]=><}v~PCѩ:OZ t `-@KɏۃU@{ظ_;0^reϋ'۰&ic#v6?-WMf-ߑEb^5 F`i~`c,/ᰅ8{Ǩrȗw!&q:<%n.zbv%9ss+ё?a 8ͅ0<=GNPN|D$镔E{Q0OJeX q`tٱ]|Y S&u s2 HP}Gǯ lr==ޑHYbU>UF)kۻDEZFy@;&AD<×4?#Et?pk\)bU`cY;T$0v ;8w@@j.˄x?_K.& kħ/ʔzUmL;6DdN(5h4E>J.DMıش]Ps- t7a\fo|^ڤ4LK$yIֆO|/ЀQBCt!;9>Jݦgm# 6[ǿzC<­Txw_9 ](c4?!^/aquRvx+9\MJnk@l)G&i>?ܥy<=׋='Ryc-'ؑ9|@!Rbf=oN CԹ"P?ԁ݂` 'Ǖt権Do%XM3W}㸥Ͷi˲n-Z#ʝN^4Y~ѴPV QR#  bJH#,J D>ŌyuN&Ix_HwTcO?xD^0MfgEAMM*KFXX~)P4~]i ecmJ?uOsӦ@hnlYRa~N*> V/{[iH48lL8mB:A$SVFᢟ"6 @t]GpIAX?տ(V,-Íe;ѿd{sz_͹axwUJO{E+iֿQX'VkMZ!VuAOfR4 }ٕRʆX H >0{sL@!2[G/1'Q6ǬqxjÃ_%"ak=_G@P@"h6VV3 - _"Y֝EnEb;>@dGAzm>_id eL\G%z^~D|3O˰XqQGn8Dݐh,z_6Kť~_U'I cn-lUe9|ά4ΔSJx~66GJԁmW(Sz }5S_qòZ8 Ѣ`pw 5<!G5:._a- ) ⅼ$ ɼ+ѡSB[G#rJ+f6<#~dj),*[Is5]pp["/uJaL* g'nrRI%FHrbÂf×#e30:6cqo)e]Y =! mI8aPWLnCԤb:UZa43Ij ?m0 "GW}m+6mTSn9תe4ۢ{H/!J.-<pȽ<͋X Af#3l.eZGN(!V =/ o!TAwv9N^ W:z@䜁Mm1z% XU !D tHL&=qux|MC@< εi⋠Au96 9K}7dpm>)~Λ@wer=L?Lk)w`.+/Dlb_n 5AxY?#Q8].r_6jB. P&y Zk#3\v^11RRJķm#N]z]gAYGGGIŜSiJjUj"pbw=6ݦlS E{b~ S_` ,hEPoLo˛ٗكVasS`r(S/,!n~D~]˟)~A?[l>{y O|/gRW;"|@D>a0΅NAFifgOSl`vbocgCϚa].sYvinz3p$Uh_\IáL\v֒ Iuy\%?(fE_GMUSۑa~M"Bse8}HWr=69kW VX9fk6JA43kPZҺd)I MA~1]N; ~|JEڻwQ`8-$j^߮tΆw»W`>msֺpFĪcx9ytBEX`4q揤 J5Oޚa̱<*Fj.F<&)[* ]NT v)ϧ9$EL;C^Q];{X08Q F4B2 P@aLօk? *TuhUz2 5ՄRl)ZJ{-rc(X`zbM(N [Eu.dGG0rH3j[s[T7F8GxY-< ʘPxb>LwcLV@ dAGoH=(26&8= ZUz=wam'): 3 ` )_}C\|We?i(s} =McqDiHble7#vlrݠN/1ssԷ'zŸ)+[_v3 ϤDH]Iuxi8 +w$!dQ÷~Fit;yY`iIkT{ayAQ -4Ӗ c(c=Ns/%aJ{&0 1# ;XÛz t6BB;WR3?v O :fpb$g\d<^6&G6>VƎ{ ˖뢬RNmXL?wo{K,>I! u y=u+N&kP5 7q#ݑXXF)Vy;zHiUUgȳEq!i`"'Ťk, ݐ$|$vw:.vzl/<\&?;0ϊskM.*֑[@,&U6hb2= yfJ]p2}<٬4txW$猬\9俴!،,LH!@j凘޻?/a{J880z|ٳkJ~Τp^Ua4:v5ٜ1C*:LgLQsQYOM\o+}wqռ4=^ : BO@WX 5DDL?|dWU 2;M ]졥H_E)B`CZ|zӚm2FsFKA.S39%zeXycۈx0 :r(SfUХ2ϼxc E#Á$hO #yhn)' GSS]7͍sJ0rHxy:p}hrϩ8["µ̋*M㫃 $5$ʩ8HU`?w8WәG v-VtVd b<5B(+Q㻖$֣1:Gi)Ec;Fҭ9x|bў} BΜZYopFVZv/7GiX9pq ]ۢ N%>}hsYw6[+d5p ݮrHƨT=x*"`&90,[vAo/=S)7){9{{Cj] {Р?6[Ӕ^3q|CֹI6Q]h}t? 6A޾T@ąᬤ-9p!Xd=/$ |}]!80prkbCc"ˉNb&MBɖ*VʈFpB84 G#ۻЭu *U^L[}v;l1mPߦ!k@i_%\ڲ'Y#l|r^Ur~~.=l%8pZ.OXK)QT{ʱ`h!5=tt?> Eo>vlt#,20%c+eB>rЛ\Z-ۺFFGiNYFg ՠ~ua? C6{# zײӡ*v6Ƽ4Aػd.QAH6M')@}y`tv;Tn{=[NJ7I. ZJR #5/=[ӻE3|Qx§Q߁1ʧ$zx2Y%nwt k~UJɴ*:TQ:v_D&$:&[gs&הDJb8~#n5M7x^mk, E@1!!ݪȣPܭ-.<v IoPړ˨RV )1O9 lzgZip 5 GdIhxN6携}xJzuVu|IM/˯K?%̇R|u94M8;VJ,N,jmcJJWB22O0[ȢYFX78tB2)9S&WlǔϺRpXb@S%m|<$O>aѥ7ԃlm1BM#.'0mX5XM(JVo([.F \e\A$<>D'QşV`Hk,&sI݆ŀ$^'ٱ◫TTFOrO?q> }ClsZ]  MփW8rQXu@`" _*xzC6ITf_@dL~$H C%=7y_7]#'!\\F6vCa|Hd2 _"PPQP7YY[F9 w