llvm15-doc-15.0.7-150500.4.11.1<>,}fp9|耮.#~zdX "PeXݛǵuvOY)H֞W76, w0٣lp`XgŸء7-͘<V"rEwLXO%"W fZ"#\q5so Y9BM.?!j~uB8ڗ~NǶ>r mee͝G>>.,]*ν>cT?cDd  " 9| 17@  &h 8 ca hz4f(89:FKG`HIX0Y8\T]^:b=`c> d>e>f>l>u>vQ<Qzbbbbc@Cllvm15-doc15.0.7150500.4.11.1Documentation for LLVMThis package contains documentation for the LLVM infrastructure.fh03-ch2bFSUSE Linux Enterprise 15SUSE LLC Apache-2.0 WITH LLVM-exception AND NCSAhttps://www.suse.com/Documentation/HTMLhttps://www.llvm.org/linuxnoarcha-! T0N7;6[o}!F~k@6@#v'k5D 4:0R`y}~n~^8pd\NYiEEn#~ n{ f2h)||{|gz{x2]%KW5  :>LmPZ'ajJ$\p@6P11W\Z=nrZg {zv{uRTh7hghSfgd2I$!1w6D&4-Qb2T.26=LCNUU-a!HZSOwvqcb**^)c]S<PP(OP;NOL1!1'6&4rU-toYQba2 D>TCB@RXc`XaAaVHZSOwvq5cb*5!}*^)c4]'pq<PPq(OP;23NOL1_V 6bk>PkaVEMnzoigghhfhf3 '  :%>LvZ?wzyJ$\hNXgU11atx{p nrk23hgighoffgd2dt5'  :%>LvjZ?wzyJ$\hNXR&atx{p mnrkhgghffgd2p+2':0>|_mL1~ilk<NZ fP@JYG##SfjmbPkq`d]Y{mlhmgDFZ)ZyzYZEzzXYV2eFkI+w 7D>"442t @Ig@kp-oi0/9Y4<T0r:Aal7 b~YU$$8L29444 "B?r-6V<?K)11,FQj*RiPW:!<4m 2<=kN$IXJY45UlD;hAjmT(_6>(!/ `W01=5=D)0LUf\V_-HC|R9WY4BC3Pt*JOC2=!JA,*)/f+&^[T ٻP*3sZN>A-9&KnGg-5\b1$cCDQG1V,m i!-!GcR!NaN|mn)^]tZ]EcnJYj:\1hwg:LZ[DS1ZI*' Cfl[_Wv[j5-f@J;g[fbJ&=/2g.ɉf[[m-V1m&lTvRwKzqMfo~j&rX!@gX0I+*jnEeI[GDIX,bT5 b1`V_j;kMNeU-E-$B9xgD]["&ZZG'h DLJ$1(ؘccccccccccglI[a6]-(dAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤fYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYfYb5773e70b5b775db81cb04ee62326980f21da581eddd4b238911e5e4c561ee7bace3e769694d3cb9f3dae9a4b0338dd7835a7fede7ee454a9974e5ef547c633db8176b368cafef9f5c3d84ab49123e05bf809e5b7ffd12809c425195eec46b75bc04fe8807173e4d9fe65a841c3d3c00eb29e61784149c8552a79d3fe85b77db4a7f09836ab68a8080e60d8e91b2602202bec6cd0c86b38be4851737c97c397c27883a3cec766f01fdf4ed0ff972ddc7c7af723d9ca644cd479787138e3bfce8ad7b101863fb854f8447690dcaf4ba66a867caea4ffdcd9ffd02606ed6efc55a59c754bdc0118299fe16c7fe0e517aef74772ee95b515aa84076db2cc9510bd64d8226b7bde86431854c28eca86adc80ae6b7984580004350bf5cc48813a5b2915ba2f8556c13617f00ede8f9528ae913b112a42c0df45128700ed83fe9e58395543fe1256cfdcfbfbb8b585adfe9b4109d909605da9e36b4a0f19dc37f9a4dec5302fc303c71e3357668a201579f46799ac7801a69b820e893784a379628dbce935d1757eccb3cefde9f6cdd2e3addf2beeeea5dc761c5b90596f708b675f780ceadc337dbe846e0ee11fc72b0323b3072a7b1aee7d145fecb874fc0b6a4f8b4441bdce6b3f342c442c16bc085796bdab718302c8ae12aadfc342a423b1629fe5c45631a6a2fa2e596a49dd5ee324d146214cdbde745e8e6bef03f9fa98d2f47f9c22d3e3b041320b5f2f3f7c7417568e348d7bb7159feea203086a6ddaa3e950ebcda8b3ce926002b4a00b04575e05599f47b374890e9b5f85cc302deea6853d4b59a9f5c31155a41a9a3e9b03b3c619093955c105a975406e045377c848c7e948a890d3538ba775ce883d2abae89022f71ab865f248541ec39332c7f6d4f11d273182b1020815471b11c3b0ff909e769485553ec5375e099b04575da4ecb69d30048915f19e32109fa0cd3ff65fadcd76bf5c573ea4db4609a6a6b4b45d237ee43d3c59fad6bc55d4e2c23f3b353c12d911a0e06c5f220227602705cf75a39b04875ed185572250c90427179fcfe1a6874bcc05fef2bcb98434b241bea0e34fda04b8f69c16a0e462a33713640a759ed49ef54401b2e961fb26c05c662f5d4cf35ef19c38f0d170b990eea0fe93b735b4cd6eb17f32d500391907ae82b78afd99ccda8d85c16d55086af7c4ed67806a21585201c46e8973449927acd8f6977f7c4158bdd8e4a7ad86b8b6d1bca4bd7c17e1581cfe286749ddc9ec6520d73d0f2c232faae238d385de78a7c77f74383a8e1508454f28c96fcf809465685af770ee6747ecad4555bcb3525754b6c84e227dca47f0bb757f1322a8497096421cefc5d5f6cae40d6ebebd8d2281b810da3fd3a3414e50935c7eb5f031932a1649d0122a095fea341d6837aee123a0a9841a023091b3cc430a8686574cb30db5c9d32a695e954b2e682eef29a063c65c54ab40174cecf119127c26ef3c75e9c633512c3084b5089e2ddb00687f2a61a124787d8726a3e86be0bacdb10c8ec7c79021d8a96d5666434e11e6417044672064f94b25e2be9ff10e015e446482b2229dcd6e5f05f8622b093fbc19bc3628336197f52ab3263f2d114358cc9c3f83b0cc76e5cf459736e7cab9af39efdeed152881ac1832188ff4436a21dfbdf4d08b4b6edef040f6768f55b77c28d5cb22b403595089ac4998c70c91e5c46eb68caf82906c5de969678a86f0e959fc36f61d5fd34f16c21b35fb5fbdcb94a41c061d2490241bbcd123c029964d09b2f744b083ffc9a1385b88b76b64a4e3318f9157c9f06ec73d01657e271b0b466c01d8dfc8bb30b595b24499f8bfacc9114941def8b5e6abdb15d9513332f1c353bd6938db4966b1a1bf986a6be915f9163fe80cd5b212e8a0bbf63334b88b42bfd0ac3584708f5b40810d48bf22f77c4539a3a3d0d469381b877d6ee7b9f5a6648e3d3017e31d0b0668d88e63fa9fde1d68c6decf568f899f689a61d5e2a9a23eb3438cc053125cba99082a04db62663ccb50d3de3e8d42de6927b4e122c57c13bd519d5baf99eee1efecba289547e1487868d109b2c353aba3be1a306d66fba105a94db2c01ef2d044239a4b346818072b356f404d13482c410cba73c54f7b80f762c975efe5d7603e306950fddf4dfb33861e8e2c5313a853a8567d0ad5282ba82a2d171ecef5357f519fd928cef8968284dc788b768df904c69c0d1674963477c34c8d4f7509902925885c43d723057d006b436ba43f6d1101aed204001bcab4890e55e80ddbdecc385f9bf8d5820820a489a95f230d527ca7c465c79989ec5c7026def9334a99cec41d2691f0be003cfa9d041b6234961c038f60b4136bda05167c87e5bd857adf73a7cb3c6ef88d5cf800cb5a57fedef641e2a4ab60d86d3ec744e8d5782af89cc9b6c31b0e515b445b669372f4796eb72a7debd1c2fa3b83d87fc21b65ffa84352552cc0140dfac50bfa11d0314c3d9def9f0d0e1536128ddf3f086cf40cc2bcaf595e98beef4617d8093441a1bc7cccebea8b6feaa872bb323851785362185ecd4851750c974971488f7864e1ad6195790a310904ffc15fd1255c2da0068816e39f5ad8e7c2554b2967dcd2ad34b20e3ba8a8bd4a71e05696a83f5e4717254019daf21f5ae6b92dc24c5dfa47d56f0578de0c2aba2d17757bc40e681c2f215e3d72138fb1a669a0c53595fe18619fa499e79c30a6c913359c1ff84e0fa8c0ec67d373fde7c004da5ec80ff4d45209c76a0ae8e6ba009ad651457ec4d8200b344f306305d616a8099e98aa0c7fc09c36aa514cfb7a8e480bea09149f7b4b125062289c4f5db7e7efd05130165813f6d2cd232faef875a424feeb69e60c4e4592db38cbf200964bcf227402ff89a879e137e5ac9191ea67a9a8a6ad20f745c28a61b13c39bf6320d741e6daad1014b87e13660f93f61d2357c7f4ee755c01d12e103e74d5cdc4a7ef46c9a84cbcb00fa53a4b0035c51278d48ed52f72c035ee4d94923a25065820ab7e00bc18df5c6acd55498e0cb0e16b41f46bc9319462884822fe54eb9ebbc7873f5d3e6549a25ee749d914b0408d01009a45ee094559f1dae7a7115456f153bd6f480e9edde0d94ebadb9a3d2be2dcf5d7958a975c7d6d90a3a4c8cd7fc5641184950791a55ce0018f09a27694ad2610b22dd7c9342ac80c0f40f05a886381078c1fc63c7486489e0951c84815d77f09f3209804c874b87c9fc767653393b6f00854732eb6b9d652b8d162a2070888850eef594e5d6460a734878c37ef9cd54947967264f7d9ddea49308d5b8c3455af1711a061cdc3f2c289125fc6000305d27314a4359e70e71633851536149c88f9c52988ec159801555b8db1fcfa471f5e2d40763d9663d8e36654d3bec33c230396d11f8700f5527c14e6942b9c5274642513dc0f26f122e628c3e8b721c0231f620b0c1ed82adae3ca59eae740622156b6910a26a7869854e513ee14b4312756a286177e16825e8eb15cf96a3cd66f69873352fc0d47fb76004c05836188c68534c33cfd3c15f1612141bce2e099ef53176e1e65b9544d5b8145721ad94f7c3e760cea893b16feb07594a5040737dc5e844705116e1181465b1e4141711dc91f14c330af2e155d26e0abfc1623ef1635cb7ef416626558c93023ab3f1123fcddaafd99cb5ae12ee235b57f9951aff463ececd7d65e144365553a335415cbfa6af793df83921f422384113c04d735c9c46bdbb7ffefd8d44f27bfd44a352eb5f5154ae56156488c4c4f6cb5f43001c6b9cfa5dc88c37bb4fbe1a676fe60475b0a81d23bfaa3ad9c8e82c87f8635ad358e64d947f72407329dfa317c8aef7767d8313cb8c44ed5a929f2faf2497645ae024dcd4e07e936d907735affbf2cb8cb08d1af100913cbb3c71fc8d5482764783febd142a31ffbdf8d9ff94e4cc0696790053cadb6d7ab6dc4eb1ff2362d6cabfb6b8ebfee304e57462de506b2596a74429004b01a163c5e8909ea76383e6bddfa941b08fd498aa29af25d41f5afe3a245fc3ea0633a20a5c2ca212c85b09de92870462df31304b9e148c7e6732f1f6cafcaeb28b94f9e373949e6b8ec8c0f885458a62b2883ff0034e3367f1aae2819eaff5d97b567a4dbc17a17810bb3f32cc655b484f7c832a90b5801a20e513e08dda4bc0830b7a449f2bba6e3d113c44bc67756a71501e4fb437274acaa015dae99f3de58fd39b29652f2db9418783669a86babff155928fc824e47bec5191a6f9ab39d4e7ced8aadde18ea1c2aaf5f5393474e35e497044cc2aeabe46bcc4dee6bef8c7f7aacf3777b5377313490328220d168174bf86bed53caf1a22212a8f48ef5b23f69c616e35800e745b865b3d3f34a3a8f8062b6c659e2d90b19b149f165968cb0f5bdf57992aace080e52803ca1c05915a6752f9f3e0b6d0bcec0f3164b7fd73c031ddbeaa73b247f69686cd9ade271a461bf7cf6b82cfdfcfe8fc9628ce8337ff73f4ba448be37570aeafa48bb6e3d41b496d8c1c6c464201e14b37b8c6f52f98b4ad49f7001b74bbe5b9c29f0155994d68ed43ae977f937752142495ed7483b1129d585907b3b18d0a51824dc08082c66eba82f802337d9a228740f4a4a01e411171f307a6660b6b34a14f3483417367dd3f9695f7e0a3be64cbdc251a65359d6d25078aedde6bf13aec164ad020326eab861a906374306bd63d35f201d0faa9137bdd578ebdcc846417b4bc7dc8153f0443c093326df9363af1ac2857bd2ed7308a2072eb550128383bfd09d0e93191e38c8f1ded8073ed144b3ceee4af10c3d7519275beb30eee884cb4f7d33cc100f8cbc82b8ce50189c5c8eb33de7d18bdf98f99acc6c9a0dc5ad1a3fcf858d96b332723a08a02d2a870e80889ea882fcefb90ed1a346ce05a9abb6905bb72976eb89e49bd8cc36d2be146dec9560f74468a0644d406acfae78b299ca7604d2d153ecfcb8b53f3062878c0ad1e723297150f02f350c85d42a387bc1b31ab2eabe8512349de62ab1b793e500e067ef13b6c7a3aaad0edef82e9abd7dac36a5f0bedf7397d143fa7de470da72390374617fc2d29b21958783da8bb1cae3b7bab71d2c9a75a64129fa7afa94f564bb78ee7ed5a78c630c08bcdee2d9eedf28a413c908af506e842c73c80752d114426ee468dd686b24b979de0f113fc09b453416a66b88d923d13c342a9dd97806fe8a0e80c289eb32d70510392d3a12ce60908ed935c55d758b4d8ee592ccdb7abc2927e3cb21dcf647ec2ca8fef22968857e76c190a6abe121faa21eda44d6d26d8bb20c82006a7afba9ffb91c3439c47ee5e2f5ab26dea30e7f9d54a442023c5bbc1ad5a61fc068a3ebbc660995fd725b02c39ef6890aef4bd73e02e21e42e0cbdfe4343b0cce97b3126bbaa8655f321d1b94ab1f8868c5c2bce55baa192a72b85be4cfcd9d02cf1b61dfbb868a90fa7edbee248cd06c65c1e3c9fcb45b4f10adef93c4d7854041dc438b31a6e3d6b86a54b099d514ebe82cea93db2df0e08d65956dca3e085aabd191de1e4227dfc567e72e8c190d21e752747c616d723f4265f66e5dc0a00099a88a02b5a06728450bd81bcbbf3226d4d512bf8fb97cdc2b2ace9229394a0d2c09001e520da9fe42cb94ed28f72c5aebf7469710fed24778c59711fc7db1a9bfd68afa96a06876eb6977c4b39a056b9fec4adce3c8e3c77077375c01a92641806113d9c9c1e8cba45299dcc4906263bcb9b2a38c7daf701ac0d280d8304094d6c84bc20b8ebdb824887e75b38b59f05d7e66249c4c8bcecb9b967c46aa809f9f01a7d1451fec745e49dd73480572fec39d6a4cf27b79a903324938c31287b567ec065ed2307ea21c4928c733ab2633002932f0fa0a2179d88906f5021b74c31e7fb3eb5523623bb5c9bd59ea85f06cff0182f7a03ae1036dc619a4f1781d0998b43f6cb6fd5e729a425bd47a6bf70e1f48463a987cd0f39fb3ead0fb13ab191eb3911d77ac36c20a8b079b9fc4e2e4c0252127da8eadbf8cd591375c88c2ead0c8ce28c0fe867bc89499913c236b9aaeb1319eff29a972a5589d71202ada84af167cdfa4c75c6231b61fca95a7d816da260e35784738f7b0f7fb1588575e397e06ca6b80cff1a211a66ceb91c4d0ab5b003595119c79ebc9275d9853ea4215567aba9e507836572ca62141b3aafef2e0964b977918953c414994dbf4404df865b820b588ce1b1b0398c99635b0b76df70534cdea0c84e531fea458f7809f4628f928c1649e6b412a0490d61446461fbc57ec6cbaea0a76fb843d9d8454b6f21c7aaf4bc3f1b2ab36233fff51e6369d5316c7c81ba3f5bbf2f8e805adcd0b399b7599e9cf053d667f658e2b3a35affac5c5303690f24e528a0c0dec9a655e1f9c7794f4d02c70e1667b754209e9db44c6cf35de921ba22c8e2c43b095c8d636637f04b4c44ce6956cc53b537e551d837a443ffaf4e7f34a073c66b3d598e3f536f1cc3049e8362f7c50890e5eb14d6d4883879cd6505df5f943d296268e45c520ebe3205127f7a40fefd844952feaa8a0fc20ae9eb25789973b129128208cbeb022195dfaac688f4761c1ca3caf39ac14648778eef7138d5c814ac0fa6bdd16224f8f397acda542ac6ed83c9b168def43003dc290e1d02f9512e20daf6979c6386fc9756beb65caa86ac49d1e60caaa490b3864a3e5474b1fffd368de2b3f4befe9e7225a3272b41c38773e484cab16444606e849cb0b485b9173c2b4d07b267d2f8eefe823eb185ee5314436d0fdeef1061510028daeed877a7fbf8b045a600da32ca095e112d8f0c73cb6dad3d4272170a4eae4b6b40c6486d73b41aa69a887d0dee0f0029ab12922a61d819b7e6e17ff11cde21a8ba8919cacaa2425d3e7d3aaecf73a4086f2eb678f29e18817b2ea01c068f3af1997fab17e4bea4193f426616b74210e272ffe9228e521639db73563ffa81832e51a072a4c90ac8c03cc90f27652ef0f6004831edf8be57e6e2ca4c6f156cfd96d126d556cc83c15f06227a000192caf6fd12345572590c71177c5b6006da501170721adab746bedf306e7f405bc5d3a5ba1da4c4037e668b7e67babce03768972c16d956fa68a0b08627082c36a79beb7bb6f3e43bd660557905466672102a792530b9f8c8a66473dadc3c39d42438f60e76af4bdd9aa345382061b5e120dc0717ca4578b1a29a62f053e29b2db86074ea24691bf74f9639402bfa514d63144d8fa7b2e8320a08eb2626f062a859b439ea32c40690a0f34bd5b329feefefab68bddf930f4e094131657dac66aeaa56380c32fe828ba671d1e82df656b5567504d269dceb673dad6e76580e56321a17ca03d52c767fd2cabfaf37a5e80b8a30cf98fa1bc2001c87d2d32df154df7c168996c539be95a6a784b3999e2f531404ff565246d42a80350eaffa3cfc8e03c5b2981010a1f318c013685bd4d710a952cb8dcba42f6854f3d589d3be85fdb2baeeb74b9837cc8ecb80448b37a8f9f880e3a2706b24a3b7a53d179d1c5929d097225e137f8607c374b05b1ded73116cf85d6dfb4c465625df6fa1ddc76903ba05e96dffea1e3134d073a9387fa3d79cf31ee61274d3b65f310914ed626ddc7df1d48e1293b41d2c555393a1091a86ddac38e11b304a37779c76e9e7fed0d3aeb7cd7f7a03f8a89221a67be9caea054350bb63963a040b2a6fc2a4d65fcf15b8216d91fe1a4a40c4f30c8e436eb0a387b8f7e144ba545d392a1591ce625db3811c3be26a578844a67cfec29f217c52406ad87ffed5759c16179ad8ee208b01a9ee3bb1f4cd3eaf11049624a86b6ce9e4aae735657ed22e41207eab0510ea083288308728b57e9f6f077c4c9f4450eac93f45bcfd30d511f9f49865570d40907cf41c0cb2a53e7a7a506be31df130b09293daed3f077ff818b54a42154c47a9e066bd7f66a241c0319054d1e28b21a0b490ca4e369eb51af04a10116daa2ecb77c0ef06739c1408522d587395f2bd5fbb756f0a8ee065c979fb89b425552a6885fa1e0e64d41a4514a82768e4539f33e497e1ac28bd5362c661ed682e026e46b3167a6aee348de0dbaa85fb013ed70bccf39a4aec89755d51b8215c640d5cfa60a977e8654de8a252ef05c5871cc4718ca526f77634cd96238ad3d7d61cbb0f2df17a7f6bf05bbf5bfd59fcf3aad2fb6193c420589ec6e7e88f36eee2d5dbf84ff6d0c7ba1a625b5af702b5a002033f8b60b3c21bd7efc1064799ae8422a7676a274be0d575a8fb461076a438abc0bb645838c6ed9cfe13b721765c0fb4aa26f5885f042bcd20dbc4c8493ac30f04b12dbf7299ddc2ce9cfb1670caf6ddd8ae986678041c32069d124f91e933bebe92804d6b56e04988efe2c5608675e934d261f80dfdb0b9a2e6e757fb8dde6126aeb784bdb72fd87e01213941f3f603f3e4d6ab025200175010c22e9d61f340ab94ea4816c0e1b1b11117110ba7e2fb62c5812f3e459f27b8ab0d251c4b7dcb41e7e831b9604b4aa46935049c546bfd871852100e91a7907748eece1fff0fd3a791fdff1f5049742f4bb6d1dc9edbc6e9973633e4c5dfa4bb6bcc3691c6cf23cd7ea2c5198f05454a3774f356d19b6be90ccd769ef60e0d76322d50c1a3ed6abe7b77edf515957fc0d2029c7581994a4ef7d54c7a6c6a36b79d06cb51e4748190010e6a3f557b5c8208f9a3d4697f34b14e13d9aa365991d38f72971381e5cb5e7d5b4d0856e681ff3cb7764797f9fd45586e96bfdc30b944984d5fa87ee4d3241d87f71c1c21d2a0606202a325fcc1155154608f970b811a42ec130e3cf734395f7029cf206eccb75be00636a5b1a7e9f46b7bde6d417ee6ee22d247643638bf2b333865f9ee976a20f66bd6b420c195a90597cda75ce84b155f210ef74af4c4e7221ada75153ce216521a69ffd9fcf70a99c23d053a2aa7475f4fda4a61ce1ca36be525a6a7777daf683d0a0e48c3da5e869e0fe7be256bb5379a74bd0672a5fb1ba145fdb6fbe7fb088b9df0ba76d888ae8957c5645cd68dfb1ef8f62e0ede8fed0228e7c4b6b9c5ba18f395e7fd60b6a5bb3942623c7ab3b4311b849f67ca2da25a25273071f54403682b434965211864be0b683d58357887605896e68ee5bf6115249101c56c66f0d573d64e21fe67212ed603003e62e30b4656fbd2db650c1ec4c6071043a6bbe853e29c4c44b755e9a0b22ce380f06776b472f56881ff4c3b893ec07b4f0dc65c8d9b2f73c97f934a134fc71283e1e56666e35073ab150489bca2fa2c65e534998636b0545a56bdeedf8d9095f94c94089c0de173449f8c555a4ece9f66c9bd2c2f50325b6d637bf8f991e81c43fd5cecf99652b1abd042b07939fd237f85197c55479f14caa3e1f7ae2e9d33b7eb63e81aa486b85b6ff7aeab47106d1a7185f29894ae378de67f49dd424a8259f8cbaf7d06a3a778ecbe98928fa996d91d760d2a513603b131cc6dab60b669fab9858f24ac4e3d602afab79c1d2abf9a7c3e6e845dbbf7dddbc03eaa2e0c9a42c9c050c1ac4a3ea15c7cad6600c1fe88a8cceeb50e957de30824952cc0483bae0369a7fcef8418fa48a47998796fa6564d56107b6cc43b850e008301b49812d3ad53fe4b5601adbc09393bed82a7dee103aa8b81c66e7c5418bdd79af59c2ec30efc5830e1622a9ec1f4e119cbe63514385bdc0533204db84ee586cb609ca4a0b8ead3a9ab019db7233653387f229cb9a0728d4f7810e08eecb5d633c9f6e9c76fcb92a2cb32496d2e7ad9cbe94b246dcbf96052658ae306edd08f0e631d7b8491f3c6df9598b39c63ab1b9a683af588f81173002f473fb8b03f76603541ba1e0c232135bcd7aea89f1efcb3d2d8525502fe50d7306dff05048a21cdf8e642cd89f06b7d2b4217b8a4d9c2a59f7e56ba407ba8220ae06541679a8c058090bdda53917be31cb80ad6dc123310728a7362ec6a80bea845d76a5189566208f5750fb106ff7803b1fff7ffc51103cb419fc80804c63f0904f4bd9a2cb96a0f04a374dc75cfe3a47fd1d59f27e9663df56bc98bcdbbfe253151ba0b162590890b54be52f4494231ae7ccdbabde4e9773be075ef0fe2e136fe8468c092335e5eb77e04b37f25e230e3ef0106ce5f2ae43f4d3eaa48a6e88e5f6d420943dd747a63c1afb25a32744f0d5a254c569c5486806e3bf43978a0c9ce97f20b6af8dfaef06dce1f95cd316363d36179844c8979be86b4ac2827c3bb67234bdc9e0a81f748a67db549bdb3e0206df495856f969d9873b1a1b764c27e00830832ece9da12096bfdbad5afe06733f4d812bfd1517dfe0df5b48130f99db3a9fff46e6bb380121fb8321964779a5196c34021620509f7e5bdb00da01841576c4bdaa7f80a3c2ec5c9323da7584b20f1c9c24d7ee294f19ca270c9d70ceb9152bc2da404c19abc5750ef6fb52a1ae5b89915d4cfcf9f7f306f89b34b70d424ec2d8aa8247cefba6dae0b56fc3aa1dff854aa25a790247bebf18360519870fb0943fa7bee0de40687208fbb97efae3d14300593e9a7224fcbbda3dffcc12530cd8c0e48751c0d17cbf2c5a921629db3530d8716f35c00a4f315ddd9eafb559aa3433fb96a3242225364a5b861f301d412cd16b91c6bb1d36f75d69b8b7f2939dd2433ce5929c2fd7e49f34fff5bb0f77dba23c234b1dba0b69838254e30990f6133d3b3407010fa2b755e05f05b17eef9578297e7135a298923e7d33035a57fea36875307d883c9fa102f41606ff27a40efc631c4a9da0938a22e55f880950255e9b0fd6a7163f689d4bd52d580444c8e993e91fa258a877abbeb964713a54970085a87947e6f2de125987462960a501c9338a7b81dd2ce02f85f8d133bbd4e4da67dd97597b22cfbb37f64afcd0f89c24711a91b02c19600b194e8e135867e6e00cdcefdd5f3982dffe048513352309ca7b5372ee11548ab38d81770fd2f9b6a48a5d09ed9d41ad5d498eb2ed81d0642971a98c12917e144371f436f26c0df97ef8bf294d3296e18fe258f0fd4e9893e9f261d251d990765d70cdb647063f9dd28a3e67269f4a5ad081e36f37e1c3c1c59a6f7514a5a736a4f8141511293bc560089ba830e66ef0c241e6d915e6c316f905bdd7d5212f27d8611fb56ef0b72ee96374b5a469fcd488de6475ca34608ea983673d263addb4f32390f244979a0f763a0be61289986e91ec3a56ed7ada9f237bde1b2785420d51de91af78b9961ae853013eba6125006488d5723ad5bd7550ba7630a90e22c4173c7e9e4415cf20c19adca6e5b80fbd028d84790106b1b05ad611eb4fc05361684ac1ed20670c93cf0c2e53f53f082768aeb47df60d4ac9068a355feedc2a10256fb88ea2c06ca7ef5459f56d98c3a810a6af5566a50fdcfe3bacdf1cd153af6d54ec9922dff0f70bb44d2cb7d3fffa6c1e87305dab237ef3849ade60c15f8cf61b91ba18b379208842de883fac5a8204a6a63b74f9b9da4193d107641bf2a4395bf263028e203946b2835c6d0947378e424229be6a4e526315d7c24ea5f2bb57b4e55bf0dfe2b452e52895c2dbac5107f6dedc7f15934fa1c24c4b2215570f37ec44060764e8aabfec9abd847d7476069b0226cd1ed6128d7fe595efd89bf790db99adb5d935953bd890b321ef426be859893354d52a30bfa8fab82fa41f2e9ceff1b8eaf1013965f37cba5a2cf2bad1335fac13c08e1b5a40b3066c7f76b025410c8d8ea8d24945751b9d79b9ea3efeb1c38786ba80e3f2b26aafe20c2daf3193d54c783d6d2b024e3f6b921ccb009293e1661d6348b5f8054fa2733adabc57e055c5ccaed3922421c8d7b3ce1fb732387129c470521f69849176eaaa82214dff102160fc500f3bcc7f6c4361f1693bb544263a2526735a64eaed33b0d6f44d196dca541f7312ad7586265f15058c8169c70a7c970b8d578238f5b396875c0de5ae870f06bcf4e44a64bf0993bf80ed514c141f6eaa580ce87cf9b6d902be0b0de3f406507f63b648ffa2b1a635e42145768709dbb1f969d24e03b6fc267ccce7ed3e10b6e22563c8842cd238138119978af52829667605d8db6170353a30678735922fbe283f85682f8ba6b98c6eb75ca334359fd5dc011f317c24b5618b7f941aa6b81e46414837762573bbd40ec8cf3a38bbb0e72eebfd90d2b637f86049d0e624904e333abb53dd5b4061911bb101ffe7c99160b009603eeef569caa30135bda7d789318e184a4f1389689d6ef200cf862c066d5b52023cac696b10214c4d7277ae28b978813ed07da41222fb7fe6a6894764d338ac008b4f59d1b0ececa858ab882f82a0166b2958c1593c4755eec81bc3cf78b26354a169d44787387e151c64f3f7ef943e967143110d125bc9d14e3ee720d740d8ddf37b2f89a472b4a270498676dca83c01dcd779b6ba93d619a05ff775606f672e88d1acd81ab95702e73f790503908d00304e12f35950bb270ae2630b12b3f43b0a95daeaaba0ee4265e23b24e6d0cf917ddc0ce2464940093852fff11ca0ea5dce63c6af96be01276719b8c8fa2a599a79ba9840fd3216ddac8ad5a2d33d6307237a2fd947261ecc33042b7f6d9daee70ecbf3ab97d9d34d2ecd4e0a48b0419b8d6f9c4d699f96408f823ad2171d36b7c430c45d8268fc9d9ed61b0885a57fe800daf5aac5c5bb6b99c34f6a631931d687b9c57625fdfa02b3c78e5d9ed7e85f055d183186c09071c269c3d935690e1a65c6a1424c8e29160ff83981f8a8466dcc269e41b2081e7b47aa10e551353fcb91d9c85d9e259a39b980255ccea73282e8982cf7797b48442b38c9160f6ce331e7ad33c6a065e67b5cd45d2455ddcd334f44e0cf982dfa26b6b46f83f63b59cc55eb7c35984149ba636835291c68fa606f71e93ec66839ec4547686868e4ed4782591b22a15e6db4b22f7c4b8eec0e45a96e7b211eb31380618161abb4aeea3e88e1c7cc93d2102b76f4fefcb142df0222d24ca094b9fac685b5195a00607213d1ddb205664bdaf6b8e94e8f865a379536b6d4dcedfc6fabbf411e7aea1b386ddf37be27d146ed22e8736cb7406e4608e1d6da665bd918f8dcaa62e1c482d0ee146ad98fecbcca8c168338d6fd7ca6e4baa9d802aaf0debb1485b687fa5c85f8643baa57a6da99829a9d5733f9cfd9875a6ab3548c2d7cb9e19badf68e69f688d3fc24f0cdf1ded9e98811988adb8f1d332639c6cfa8d22f5d39e4b32f860bbc931446578f37d87c3076eeeb0af427273e4c07a1680be32d125541b70f6a448d2f5a6e120add8936425b0199dd96af7734d909af9be71c263e3ddc8016b7fadb6ce957d8b0bd2f3a61a9a7c73ea3a5822f40897bb7868c3a1655301927ac88950e094acf2ddcad90ddd8443866c1d02bb8ef8d0b77e924b54456f51df4adadf5b600fdef103374a6d699e3c6a28f73922a0cdfed4a6fb2ee4e99737a73f0337bd911ab176baa3c682eb6491c2e4f53666d4cca45aaff89a57d1fdcf1c3f2a2d763e53453198989b846048f62f10103368879dadf56204ef3bca602cf239f77b0e4c999439ead0e33f2f15c39db55815a0ec2b26904f1d86a665e868607ccec8c32148c53b0c54fc11fd3b94e7294c370c663ddc7459b744b567d17aaeeb1d11fbea44a5f2a1663c635ddaea59158ee7e69d44e601cea649a359f9eda717015b6253568d6e6bdf15cd26ecf5d0840427539de19db5e045ff0fb091ec64ae0ccd17e91e41e1d679a1c616437cf7cad5cf1a5f415fae39ba81bcb6e3c1dc438261ddebcdef4c52272bf691e2802deff36e5c282b489f57795804986ff1d7559cf75e9bd8b353b6e9fd7915802dad94bb947c26d994c95396277db7c7b48afdc359a6f48175d8731f667712d7c7e7b3a347eaa8853bfc7120b057aa025f77281e6681798aa7eed394a8d896521d535939d697299b938770850d52291df950f3fec7dbe3d0de98c787f7cf97befa2239094041e8b1d68091fa8f1769c377bc2153fbc119f368e3d1223cd7a0708dd7076694a60220da5e07632326e5a0d515b97b9e43792eb9ea8587d71853e1b0e3320d1b9e58bf243c977d10212a382d92a05283ee5aa4c8b48639ae66b8592b8ec26a8c98b8d53f237d4ff4d54efaeb08d4baf12c72c50e5c76adce614fea75508bf76f3c405aab7997a0d334cd9bb8fcbc1f18aa6f3eb66785ef36e309faa3626327d0a4de072722d084df66f3081340ed8cfad22cbf533be489a7445c964e6cca4e946552e7d7a8ffad9c725fd9774f879397d094b595f754b5b171617a817a2da0fd3b2ca8eaa2599308c7ceb0475f6a00f7ff5e372e7f602ee759534c3de09b0e290c6c030625cc64c6d54b8a245c223b584c3188c01f9b175619d159298b3452f35a50b314499bcd89c5ba09a9370f36a0e18662663301fe084068370f80d20d8a02b003a4f8e05418c11f42fb09ebc9d5b37ca02f42c00941c3554ccef6c39e752898d97c5d5ce60b5c99a24f3a1f3bfc3dad47de6d2aa391bde43db4f387e25764633c62367c820abfc015bbb531ba5d39d29fd47d07be2ebc973046a5d4f68073340a4a97c9994855eca55ff3614d975cee1436689aa889aae94af3665b1bdccfbb66c0ef63831e81e3cce7fcbec892ebc19912b78beb05fcbb3c8e3ee318cf5ef695298ab663bbb2ac6e367082a02cda30a6bfaff12ee9f349a8061caef79d8b5c589eb97c493905dd9ed15ee59ac7196f48a31e1789c17005d5bc125ae06dbeb96e5b83a27728de2a181b0cd494e999090ff3a9ce3d890df175921421d0ac3d824bc96721eb72288d15a54492e5dc4b247b20ebb7341702cbcc6028bd631bba53b1408e965fb63e97b6d6066855e501c15f186645496d8d11737c5e1e7d526045adef47bae7b3faa58a31bc0df44c1da631b978eace47a33aba7a3fe5850f01ae36e722743b4f741d6f3d671e47cb3eda3d7e5170bd2b49c6ea2516d8b1ae18b6edfc8c395ab2b2cbd5a40eaa49563b9ce8935a7feb036db2905b58e92fbee271d53bf64d46cd622aa9667292aad7c14c1a6507b51f9a8bf9d061765c8301dfe452432dc5ffa33e914739a82eb5863a217ab285bf1d397a2acc1c179d6c8e9a204f6c781ddafb95e43d590985382a6c60e83a839732d7c1fe2170ce3d266ee6313bb4e809df57710fc83ced5460d22ce36ecb3f2f5ab6e7efd50b496c17c45b5fbaae33666abcab340a65f728f06527b676266e112b054572c0cb2e1c74a3358ac3f11140f2b1ef104f5d09c36b68d1296dc528f91cd7596bac53cd3ff79a481f626ced29b464525389d40e7c49eff26cd74827a86370510c9580a398106788e5367e3d28a93af484e5558cff38324018b2234ccb30bac92b26c35c7a390e957c645c81387a55be35b6ec60ee34cbbd0f44ab176c088adaf77c697b7d24b01d2de440ef5cb9a23b2b9872272e3778ce136482972ad01488ef8b3dd04eb98aaf2dfa3cac29c08c387ca866f88c9733853a530ca04a8249bc25922a329c30d9314ef5b0cbe8976128776d4fbd554a8ad13ed5c0f2b8b82cc4f414332191f38562273a98938629f57bf7599871a4ec079b697861ddb3a49513014df9b54d305c9be10fe72669203b97431305b66c746be5cf7535f6ccfdaba49ebf77564978751195e9a3340fcffa18a7c54652e6830fb0233efe19e8fee7154510cc4b0c325b9dab917b4ac99e44af598e538fe36a77c1c4fd84cfa9b07164c783d9b64dd1cf718959f772ad078b12a7f43c88c4ee20579c7daa538f9027767399182385100e79bfbd175ca9ad6302e7f161c1e022d4bb49a42f41f74c6de0834be84b9504773596b949aee90d1ea963d6731d4c714a4ca494f8aaa8e54db0336b39aa16938d2cce5b3d8425608e793c63213992e1e738ceb1b24a143a5d6fc6c7fb2744e6e99c7ac073ac72bcab9cfb60362a51752ccc8b78d1b6ffc214c2e07d981d6a5245281621c54f0cc05330cfdb6802444511ba476627cbee4e12c84751568660691f2ed52bb3f6375c64e5dbfbe3d87d82b6f5235702387934a1c5eb0b471b001a9042f4643fd50140e68d6573319e89e0e94d6e62206bdd21c867d55e4d8690389d210af87eeed9ba5861ba1a0890576b16c7d3527cdae8da4056156bcafde954d096ebbfe96c199bbd0ce53cf9976f2fa035d3b4598fe0498406a5ed9a73b0459dd9df6b835c594573e514be28a4b0435243bf6fcba11f2fb3e73f5c6a91a6b412ce7acfb81baf6479d620d6df69205e180489589dfc1ed412192dee726c68a7407f00952ffe1e15a12aaae217e76d87df90b796b485715904109c9755fa5540dbaca8d7fe7ef8f02daa4ec787949744972647760dff615c02294ce09fed43d245a841d190df2a1c9e19c9f8d3b0a1f8b9d3e924e6dd26beaa08bd668005e95d4337e2e299badfde3a7bbbde6aec4b38d06f109aa2fce6c37cf9d397d734f2cf0ac38ea5b3848ebdd21f9ce321633235989302e431529103a79d1cf7aaa9bcff432d81c1c564c5e4e3e399cf61f8eb33ec830f3f83bcd178ecfeae2a0f3fe33d1ea3427e60c59530528aa2a9e80a2743526d7a52b29c1f493a2d7e2c4994f23b0180f9fbde8ff019f58c25f6d3742892408cefa2a4b4535e4ecf91bda2c3493e5c782864b2941f4e0464d37b8958fae6f75f85339d3bd8a7da4bddc3e57058a343c7bbaadbe4184c0517baa105b10a9c5ed8c78cd9cf36e8e5f2c74828990cf010f7829fca50577bfc4e41420d2ccc89dd28561540398e5ea56d6d8970ba4e9b6da2a0222ed8fac631af7f0250296013c5dc29e7e158530b387ce69d210e5ac24c7f35178faaddfa8938aa49d6a73eb868a7824ac45020ef75b656cb4d1c132321137a072a85fda0c7caee9b5239cb11e4f75ba1810e5b44c5832ffa074d3dc87e43255f1834cf60af0e3cfad366aa3f6dc1a6ee011d01b2b3166ffb561435987f1ff58e7c722947dc0ce39cd85bea782897afd91ee61daa98fa4a9881955da5e98541b149435d5e12301519a9b872688547d652049799665e6c6c23db94329f93b376a69193988b6be23ffac0817d8a6a2fa114af278e913736713a64b0dfe6ee4fcd0fb7d344805ae1746c138f53e75dc2cf6c539c958a399bb9c39dd03aef2d85c40ee2433743ba8334f3dfc4281688a1a02a6beac32b0a444e8901c77ae31e79507c3e098d00e4cea71701d4ce1797cc338b3bd3bb7a487a78d09efa4eacc47e16e1ba195af920562b5dc70072535fdbc1b6ce5d5935936e6fddc0f16452ea9bdd31c412414429e6499de93282d018758170dd9ff33db9359863834791f1be76876c1e1e6d74f8966e31c299bff3616ea914df8a163192f8be6beee339d29b78f1782427c624cc7059563856d2b6df72764fb0675d99e16094f4fdcba8c2e1ed14dd90b3cc1d80055457a871dbb47299fffedd849d1269c3c91c0d7610dd6128cd618fc5104490726f32c62199c229e98a2ab21c789e0734390f48e3d9309c920b96b5fda58b258ab033697c59f165344e4cde5a6c79f336e09601ae78536c4049e95e2a04ca7270278fd88c3e92d57ce9f8b230373db43c06aae49de4ad1fefb98d3d518cf5020f6287ec993916991148e4f61c5ed6e1b58e084bf1a13a897247ce3a31e100682a399aac36447f07a64da535d0debb52b72dcc47ea901d99dd14224ac3c76e17521d83682157a7cde14eaa72d09c06b21ae40d1765fa7c03b4a6d2bca330d1a122c4cf24a7b6c4a62342d99a07770a03f81557153103b70362e69f08deec9d9dc11e04d2c99ce8053c14a6c82e9e5715b6e739a1776403b559d172c7ddc511f29e34a4154650d3acb215696ed9d740b7f3f802362727b8c11caecde3acbe2a87696c21603b974bfd4d0e1ee69f596bb425d234fc1696e80b1fff6e53d46b6e61161f6325a705a74943a485a9ae98df624eebb5821266ff19f7734faccedd9718da6deb5e0072f2bdb45e5e493fa1fc80f836400a4520760ef4f518650d3b237ef4107901f56fabeb1c7150f734793ccaf09b30e815d6209563f15285b722809e0ee57a28cf9ae55cad755beaab255c9b0620229ebd08165cc611eb7e57b338d64c3e5913363f9c3e3dc0328521fb1977857d410f8f26a3afc18353e526f6a4f838d1f4a4ae8e55d9936d3f0b0e19c583c06b76464d82b0a5e15518368e453d36cb76abac0a259b0c4c7e9d302d7617dd2392a3b1fae25131097fd5789223da3b4a471c362068521d9b367591ae1671ed1cb26c2bc6eb4fafe7b2ef8e6f563c2e5eb11a7d641e048fe9e4b0431804221d9232692c69fe1eb1d3796bde8fc524d2c9d2826f449940fbf1838e3aa304ca9acf7bfc0d3ddc1e0b8e6d51078daeba38cd357b490d6e7d29ee5c4a5426ddc268232ec8a2750b22c6f9d702ae67fd853da58c6d6bf3b40233c40b53453110852e0656ac92b34fa9ecda239d3846d627aaabdd74314f79ffd07cac899685c66dba3c8e7c1e308557648f6397bb7a89531985e41ff28eb21e80961826ac9fd25b1c0846f537ea68ebba368614167e423a51790b51553f2ee4790b7934b4642ec8b452d647e5a51b74b94718bc42c948d0af3e73999bcc7feeb3fcb33f7d7b8dbcc3527e429bfb7ec59e03cbf9274dd616f8204dfa70149fe8f80fb694a1f7ea5636c589c5fbbbe81cd2f3580a72c585766bc7cb6af46b89aa5d7a6b96aef0909b12cd111a03f19e135abeb5f8e65a3575e0eb958541480376a8b631646a30182f8065408d00adde9cd446ebf8c82df0a3cdb7ead0e3019edbcd2f8130c1f3efe80d26f823a260099bb01437d50b46a5cd904665ff594f8e48d7869af1ee0289eef09a929ca6a457f9ed92e066785879f4fabbc265c940e493f6a8e18a53ae4ed3d1cf3ee6ce39af2ac5196acaa3dda2e10a22b1e27d7687208f3329008220d7489d696a2bd835b715931223eb85f9bafbb12623c05bd362cfb418a182b53d90c7f04493c6920b5265d4bc3b51ff44f1b60b222170c027264b5c1d96b9d310b6e04415e21f4cd04b904109820b970c8d5224c74aa335409ef9c85fd01dee15fcdf3c617448deb3da128b5f39ce77228a5df1c44807c00ba02e601c123c364262739b4c2e27e5aa1ca97b5ea443b0be6a716812c505041b6f592ab7864b885345c9758aef6608fa104c41876f723cb37f798af8bf849554741cdd9210abd4562e4dfaf014da6459a189903861bd9a6398c888d19af1aba7a26162e266ff01de5c2fb1a07461dd52bb9a3837cd1ca00190c7aa478ec3a35247ac664c021a1c3306fd2d6949908c974ac039ffa82d6d32297e81632708c636f7676adcbc22c69aaebb890e4eba3e8c77d51ba4d39af78b100c56c069ca7559fbe7b9c3dc5d278a22056963d6ddfd8a367015eaac21dab1e5700f85ccd591acf35ff7244d821a4287c2571a90875a6dbeb42b62a2d32b883bdd03a626feb41a732a29380228b870d03fec9a08053a5c30789701f4c488f010feb2b069dc351ce604e3e755554d3db253ee8668afa8b983d2cb34c6cd0ac8dba59e1bf36fe61c4a557b80d3d954ed6d8f2985445656abe879c908fda8c37c1f6b103b2cae36e09ed89fd0e625f0442d80a6f40e5d774b90854edaa5470f132cedff6a1baa01aae1a7977cbaec9e7269c77d0c2d7922dac36405bce24c11c780a7a37019109bcf795888127e797264813d656683e01b45a719eeeb87b447ba5dfd57e3f739aec06b061958392b2be59a13432b014ca74823cdc901bf5ac4b299e8f994873fbb28503ef93939e3de59986834c8c5a98fae45e966a2b140fdeb4e493f71d25b41ff4d17a3356709a268b79f108675a178ba0fe92e8cef0fdac1fbe3cab0b36a64465cb0a1211f899ab6655ad009f3a56211f440f4281cad247bdb03ffa78d3b3e7bb2956d94de0b7d2f3f961898fe5238f28df9db0cfca4245f0dc3dbe1eb392e5fdc67553d3c25d49149031841bbc8806afe1f2943184880e971872f0a13d0b59cb364f8b910e1d12b7d90e300a973e76d1d5eafc69b42a17768c57634b402ea2c772be442388845f5d0b068a6353797d627c04662f025c89d14d7457660ec22e175036d9e7cbfc11d9bbc9be0426dea613acf8f43d383737a73d645a586b9298b523515e46ab3676baa86946ca6b3daf62507257b902e50260f040dcc9cfa390d43f038dc2817e6b8d0d785473839066090921b647776dcc48c4932f3bbbcdb9e2b8e20e933ca6d0c2f8279164cbaa95273159cac06e8bc3a0fa7cf192685df537ba57d3ab0ae0ff78a995c618ee137995e73f5f16f7e70673c45024833548eb0003ce5ae30ae647c1afb8872d622755b9513fe22fa95fa586cd4f5d5956f409a07fea50716fe8d20f29a2942d77d5e97df4dd7e80c6862bcdea1cf5b5c90935279c963279618eed6ed1d8ab8bb3f15354de04d500b83ee3c273dc2b57ee1ec8c98f3ab098cf0ba2f514bb13098678b64429560212f2dc5e584829376702ae2be0375f80e9b296bd8a88b738b7dc333ef09d5479fe322a31fcc23099f62bd78159e2f5f839ecfe28bcb80694f1f3f55fa706a13cecef1e739b8c1e6f7c6ee141b382f9430303a1a846708877401269d3b5b84cafef63d0774779630d84a2430f541a7bcd4b96505a4eb65eae6a78001e06732417c73ec0b43b20b9d0b8040c5227b7b4267306b866f8bf8f2f0e7b8591b6732834adde44b31de8b2c9e2489fe12345c9b7799393e0c4af3476677e71659d8e02aff1d587fcd6c19350ce95abf5a5abb260e452839fb4a4b0f4f841422d3900478337584ec1d085447422f3640f0f49e1819a3cd8db75620e81136a94bff14b34ef4cee8300f7883430f55b37a83c11d545dd22de03fab14509ff868c1177031d26b0e7145314948bbe275150777eb47d730e8c00004122d90237e2ca76767d11d45386c07123e8effa29dbb7b7e0b2b9dac7c9a0645b4e2e2e8129aaa361a7c3d380e7faad3c2b4fc5b24b6ecaeb79274e24411b10d8f4a9381ac5873058c7684409ea462f0400606e8afd218569c3cfd8cd9125cf2a85cbe6fddbc4901d61269b9db50edc0e950061fd46bec3d8e3c25a7ed942c81ee154e13e23bca8d4c3c2c3cc786ff3f7b920ce986ca18b2e67be0438c7354c8768c4e2eee5668d41a1d49a1cb04cab44aeb15f180b7acb66495d8744de2f16434f4ee6dc3a117d781f2d0375de98f7b7142efb8e0a446153a6d42d89b5802572b90486b3d3500f21c9e12f13cf2390df8fefe56944f9f887606c6cb856170a19bd82d8e8105aa51b64738ca840b1132e634e84801627c859a00ae18d156319cdcb870f815bedeb417f1eee6ef20ecf609a350cb2424b4ca7a987d5028ee14d10f63bf84ef1017c357dfa9bb10029df6d852837bb698094d2b5a9c2fd94876e69b8eb6a8cbc258c065c7aadad222ce49e3795ce628c137ceb29ab35b68ce5cd102b108c3b7e91462d8eacbc4e26d17f58d1334d6e20019a98491b53917514437fd99c46fe43ae15c1b5fecc3b28a6a43157668cb0dfe0bca9a0f37e1c31d861d437169768af5211f3f7f1018bac779bed5c4e5df2fc5b11ee3b8533ed7031ada8267c62daba79dc80087c268678de500be26c053619e8b196e57d0dc0479ea894a7da62f91bd3db54c4d0ad52afd601ddf4a520224339975e21195551238c48124dbd8307401d4537812044e1f8621990af2aacf56c8d59f77528a9219a5728e6d1f6ab234f8a2e6006fb7f5f8f52d8247f1829407ba1ee84b0d75830766b46583e81ba1a1066005db54cc2577a52ca0dec9eb88e2ea4b405c9f7334088a9b6a92d82679a43b4976f29ad1c9043795a70d672a20a0a45322897190c074598e70c9c58a82f352e1e95badc172af8a7f615787f642245141195319c7547b2ac29f5cc5c3f7f00683f5017373d04532619f27541711be326fe2b978ae35b57b324e0e874834ecc6ebfe32ca8b9a98b9563376e29db0f0574b57fb6a981bca68f9d312a6db1dc4733f9057d50f5ecf96d920c0d3aeee873b1ecd90cb3992885f29654fd9f72de57f57628cad3e213a88778b50ecbe3bf3d79f288f40eafef020a5bb6cfd16d121aec9200fcc834b233530e35ac169d3fda5ecb642aaa6f0aa6183cfc47dddb2266513b749a971df25b8a1993c17fa3996a3366d67a20a23000535598278e922604356d02d41a176f9495eaabf520124ace6d5b96ffff6f94e45c0b99c1d9a2d33ba3ba36773f396a4cbab24b0839f9267a792bf758cad84820b3720a85c7252e1afe8c3bdb57c6ac84009604f319b9689a52c78ac6d2a4903ab548a7e1652ec20d6dfda0a369a130f7c2efdef386cf9d9cf3e3688aa85ef375f1784d9f577aadca8d07bc7d2c1cbd5834fe37a54a7e26dc05eaf3b21b85852d131506b676d515ba494de04b216c774b56f54355bc22e877f8ffecf6574432da3c0b45655dcbfb441f8fd8a72ffcae9ec272190228b4c2e2ffc92b4e97ba89dd06dae8b9e81dbebca916bc3b641ccd6015addaae256f599101f0f4ff97c1071e7fdb2b683e9dc4fba25ee285dedb86f3ef303475370a041797d60df1f470ac1480e2aa4d9e1ac13d33bee758b7a7138f3d5e12938198cece2be3ca2dd18a838c1f54e2eaacbf3d7675bbb44048a19bfb3f679095423b7466b74b998373dd359f8b4f248fa66aaab7134ff3b82bfc9c8d9767ec6c59a3103e65b4c8eee63338daec167b4f1443954f99e1e40e0f45b5301878329d8bcc14361ca3718a19686e173837b0a1141cc773e00b8109a9498fac3cbc8b1611ddf53ec0b8e41a20d1d59fb9062bfef461f84d5737d2bca02f7cfe9642f38d4e3aeee84c99b05263b51eaa99e323214bb68fa1a112084397abcc0024adba2a96b74559e1e156b9227fde47476f82d22653fb1bbb4df0620d59cf2910159bd17f6e5b88bdf37ee62db7b488cffa502c018668b24e8385eed550c9ac0a027094068420517115f6b31e1410a9d6cc70f5f852737845e6243c57345750eed2685ca1448fa08b9f25a35224e63d4c026accc6f99caf08a4b2b7f7d4719a6ac23a43a8c5139ab44cc16fa00fc3b9033b45710dbbfd3a7e44338ddec122d84ecf79caac098651b7b6372eb3e6c8e6ef101a34e3b65c0ee7e3ad88e0b094ba766f3b32f2174de5a690ce930f88f47b264a928800641963d65696a1cf17433eae800fd75a174ef9a051289603d1baa0f1808929de6679fbc2007968166802c279666788881073245b21f84e7c208cb7064c2b0741b838b7590d16715e30ed505a1cd1351248fcc0450647eb8d796a6adc96aae33a51f4ce2de010527ad53408b96a8a55b6505a165c38f991af525c12b5f70ca46f6b9abc914bf81288baaf056f6b7fc86a480528a00c333717cb939046856e642edb7c604e3db2ee96c7fe1b1f79159486be40f3b2d5d6dd3aac7c05016422acc2e8b7b33bbeb405c885776d2e370635bc95bd50d565b4edd5541e41a73bdfe2929b030276e74113de05bce89fa0be9f5d38f3a81e5d7a8e43a48700f76c4f967f375e6295a2c4704f066bf0935d945cdfcc783c134a8d90f7e59b83a217fbe44b47a00b965bf9c0cdb07f42f25c238571e200d2c4ff74faa88897cdfc1f7126be0222558b92383cb7b9e6101a905b489e72599cad8b94eaf6feaf45ab0598722d27d7cfc2628525083118b2f1c7d2eaf6e8e38b49353873b07716ff308ab181c7138b31188cb24de968f64a3cd1a30aa91849099b4ed5748b5523002a0ff3f8c8872f8b566704993a86f59de9f44f2971cdba66068ea5285b155f28f3b4b4ceb322fb306151df4b5520232883d2cf6fd1d9fc79ac9db399592afd2fa9f75cbc4eff23ff7d28a497f23ea403f2482d503e9ae6e3dbc1017d8ccc1d36e4fa64fceb0d59cbbb87745cfaa4903af860856f41557222badb06c3104f5479bc596eeb5719f6436e6f198259c114e7398ca2484178c4307905694769cb11e5ffc4c28c1069a259aba0dda93c6e4fd144de228c7136cdb7e36d43e241f3dd9976f486599fbc1749fb004cbea638e9c589ebb284d433311ffca389642ba120bb2abc36cff04976e76eff8267dcb5f098290606e4369295d4c3d241856cc2911c2c7f8895ce995b331d3451b951b0b2b89d325f0def2e4d741652ec296e353e3a5503a1b360d8f8f3201d3a5757c5b22a89513a60438db480db4b4a01dcb77d8fcc09423989920df9fe4d7ae8e53928e303506fe02ab8b133353c3fdd573f87d7d2e54b7de404ba85e4d03469a874bd63f80d94f74c75f720aa04d9f1855a0c61cc17a8d884cba7292126800be8e8610d6965e837e7af26e0bb3ad3bd3a0b6f82b6afde1cb734eed2456e7bda0f5b85874a837b17a003885c213a59ff9b984e9f11916731c0cf3b64a2728b1c4da695db4ed54133feb88863c6d268d339ae0c965a68303d7d2f4c3cd5eda73ed182e869bc8521cfec374e5e4d8348b17f8946c105cd97ab89fbece90bc2882c8e5f52bed02c144ed9429c8579d3936dbbfdedfff713105780c769f3f6530cd72cfd2e1a412fc9b4e17eca9fd8538f102c30e73d0a7cf42593e401aa8a7a7b5e3e33dc756dca44e63765f5e22ea84b499ba32b51d07f7d7f12e7a9be367347941e30225364aa0a2ef1230b0ac93b6bf2531ef6ff96bbfab86c2f9ef0f7de219875386e64514a616a91f38ef72223dea1549e6727038c6ee0bc8d8f9cc665560a88d53415b06438f0bdb5046fb0570dada619c0fd6aba5b343e9379a946af4ada1888828855b5b922d0cb2c3e21c4c1554023e04a62ebfddb27e7bca23ead003fd327d1754c3813c2026a79e660844c4dfaa0625907d7e876a97aeae5ae5dac788942a03a48e004625d120d0fba7c799a05b3e7a3950c4eb40c4d3a626fada9e0f5ee08dddbcef1b58cb8634d148a6ad8d5a57cedd9d5487ba626640cf07c64fd33ca2d37281c3273cda9aede2408401b8ad3e33e5f1f478c9945ac81f64d212d56bf6f5543b60ace84649bc3fe32b771cc6ec75211988842c9958b601c6f6bec045c70a9d4e1668ba90b3f9b0ea5f4ed79a5d99ee0926e51ec9f88d253b54ab68ccfff636964dc845f0888b00b76a2a59b4c094501f796105023f50ac4896f5ad214aba16a3126046d05deb88e5ea55e0343596bb85859794b51c74e2de842abc798f0e09560d3481c21c9b761e5b9a5a56881b22efe3998e9388fc053a0ae686efc7eb83eceab5430b69562420cb531f99b297e37b040c9883dbefefe0b8de7f64423b599ce866f9cd4169d9373b9c378342e8aa9e9161153c336c98494b9dcdb1a12791de5555fb83e474bd474556f0be29a4f44084016454b15b8b1d2a844a0fc41de3de818a89ff3847536ff8904ba882666bc4ee6d7de085f5f99d6bcaf747c468851c439062198180c75f67a484e2dc8123956def6623628e7a323c34197dc2f13b0b1cf8abc417b1bbaa66c3b7cbf9d3314537287093c1eb8f34eee0e22d4608beb39644154f66702c9b578d4fa02d4a84c53fd22886c28d2233f3543d7099305d858d9a53a66ee919a659050c676abc52806e73a2d7eea1677fadfab5d34184e44874c4a37b965e31298415b9f7106611a9c91da1397498969924c1f5796957f322c1a79afcde00a2f96b4e43a80fd1135a025dba8250d02052e9a630dbb140a6d734a6bb7931e09e5358de2ef914430e418f7aaca8c4c22a5abf50201769121ec7c52eb2a23dac7d281198d6edd1fa9da2e7e009ca80d87a3484b1a7dbe25910d565f5a75e9bc521d6916f315cd7bf1f6e29770862a39fe21ad69f9ad5943ae10e34cba70dc11c41e6c04a62f8e1cfc72713b146833668d457df07aca578dd672e7c4b1a2d6a49fe0cb58b6f6191b4680baf1b02b504529fa44718b1e7c14b6787baabedf0a46342af80eee4f59d221eaed614e508aa89cd4ed613e1656cd46dea018d406e768d7fc4dd257528770f4b2af9523d27dc72c6f37848f5989706a466480306ed333c2db712be33eaa5263c66e86412d29e91f558fade91850e873e504faa46d344b454e6cc14991398b278caadddb82c3edb3a4689626c69e188163b0fbaebca5f7065328805cfcc9ff215625612eda26dbda07f2e8a0c92aa6e4869ee62aee963676e1274ecf488012b5968fc5ae7ecaa10da6bb1b4499db32b13ab81c70a8f6eec35b6d4d2051bc3d14879d28eb02fa9f14ca4e566011caf8a76946692f9096a2581cc5439c61121f6408c8b2ad094a243602e119d2a39e6831788f13923a6feb0c8e8ba7940f689572cec5bc8b11da29425f9e7c9d5cab261205ab52faf6466d7ebb9ee720d76502b2841cd70989b7fbfca9cf9660b0efbceb2ca8766cd17a0cec3a61c4d6c7673d708d57a72834b10dd8b3ba5e8dda49e44330dae71d15581d2cd2e58cb345c2b4862373016252d503020f2c5c8ec11e8e876c93c2912f541cd136589c65b6854378384dc96a976903de2976a3346c12cc186d93597cb27f1d2328fade6e14e8b54d266cebc2c9c2bbde9733902ef6a5e21b445e1b3e80c89f32bc9687388ec65f7d6ab3ec1309e98bf17cbeb4d5f00ff433613b0e34c56f977752578d78d4379e2b82fb11991b6ea00361d40a6fdb121797c4785eade0981a7dfd3f65e3c37461ad5fc346d48f0562f866b073f469c1bd1c6f606b463afb5cdf3b89c5f36c350d0bbd814377fa0957ccff9a0743e4c59820194f8c674d3daea09ed59a4561ca734eddc160a37fb694b39c8473fcd9af91fb65ce8010ff9fc78f55c5cc04944cd41648541749978cc1d2117632996f65e013a966baace1dda5149ca880a2926b4267e18a1b65ebe62e65f1cc936da3e5bc230a72e8ad49c77e4a4b50a6f05048ff5665f5314de8de2bf0272fe102f38d01a246ed73b7263f128d1e747ce1f66879dfba8982adf372007f7fbe398f7eecf962c4108f2cee58c86c25191516d4a33184cdfcf6f689d07cb94ae1144668598445f18f2b0b3014a31cdd5ea636cf188b37f5ebdbbacc264ae980f2778594b329eaf764a6caf57fddbac720aeaa56248ad24f754835da9cf549e34f4e8bda380402a0b59ce4d3c71bbc0a84212e93eff30b13ff99c8575cc249944675ba78cc646719e570a2eb778f73d4bd51c7026e5819951c7c313bfec51e2227a11724149e9ce180d2bb152b8297d57cb3c43f3795a2e2348b24ad08bbdba13c76d0e3048b74fc2c03df54b90913bc2c6a3ca2be78105b703926e9e2331c6458659ccab5e530d0a75e4d3c0dd40d4806034b0e461e76fa830cf26f136bd20c5233c2c24261ff9248f8fc5eb19d70aa2c05f250d6b6f28d31e5295c2430889b336e430e12796b2a5a2f6b9992080d78a8ccd1d15fe525faaeb9a38f12cc383e0eb1fa2948989125b548fc1fdb9bf9b8d633607efe04f1900c19663eaf875639938b414d641dd8cd33f6315d77879f182bfb34166159a59d45d4f6862c76d8fe53ef4f33d8d1b7858671f2962425128b180470f2ecac40eee0ca06d24f24a83686824f8927a09f377146926de22fed5fb553da719c27acbac68add2e4129d2dbc6c8960168d0cab3f789b0e4b301aa6c88fa4e69a8caa13fe0e15cf548bde4bcef574db1411d0e9505ad24c9ef27d8ab13d96d6fe2f9c955f7e47acee1a124a60ada34d92c0cc678b746afccde28f652b2ebe07d1cd85836be385891f45d0f576b3cc3533b717b3396e661d832e7c5deccf58f5e5ba34eabdd603d8ab5cd195d3bc9e449d9d5b037a8fcd1473d189aea9e02ca09e45c33250a2526d211bdbffb457122603009f6eee883adde957c6ff31993f43d0b0c2bf4e25b5af060d25585f2ba4fea55019eaf260fa6edddaf65766b35df0399fb17de27d71fde7784f2992f9daa7efc1acfa3995a7118e89be210e2616585fb581fd646a3e194da902881bb78b43a511f673b986085d8ef0607eea414cc75f5137020b4633715f29dee7f0d63c71703e9b4a0a3bef4eb696d208fd5ed7739b520f31e42e7de8d1344cbb7e276e4f1ade64f6168a0bd6118e16d142af0493718d4f771dc20aa7a1a96ebd676de9f41c6a884427b83d1481e0fb0314a6eb010284f6e733785c8b5084120c1ed2d29daa9b47294fe05ee74162ba565c81e255964ddccaaa54f5178b99e7df37441ff2e72f476b28e3469a194f3e61848229b4bd92ca1bc5b11bd4b1ab0a4a3ebab7a9f42dc03740da25799264cef7350dd6761ca65c9f48caf837ea813f7df30797cf4ef2fb916002484efceef9a202f0f851b1f4fae295359fcb8741e406f4773a1e8409549b9e58f86d9cb0293c7ea9255e132a29fd8ed5a2319dfb342be3f2ccbe7d00a346e2b7040869c5a82e36f01b23d597091a4ef09e9f99c6264a6140a4d18f19c068e203b54aaa624cf4cc3a5a862dd1942442506b622affe8576136af61b4cc239039c60cc636f3a125a816e4203766e9493cf92cc3a170794026e77cdac9ec06256150c0a9c75ea8a160ff60385306049bc7f5fbfa1ddc01c41336f1d595fba9b1a12b538de05c3183f63699266a5f6e5ad2ee9bf2bcaa7617c70414ba27d02e864304891cd97c847cd5bb9b2aaa7eea6f8c293a08a28bf6ff01a84838126cd5403fa3c9accb3a38d4daa4c01583300a10c8c423148eb3ed3389f090bdde6ac919793adeb41b380ea6c0453977556cff10c6fac65d62c0f3991f60d3b8aebed0ad04457d4832e99db0ab26a7e26d41115b10e409023eff128bdb71b2e850a2c7b82ef3fb6979514c72108cf409d722d2705f9da1d402fc49b32bd89b646b5cf7bcdb861f12f25537fc85e1abd1a12c36caecbc51980745f65829e177ba6e2d5e60fc30fbf5b60bae0ec283ab1af938650ed7199490308e3388c0f0c80b29198d8684a8a06cf55587b643baddb97c7be70f5abaa4c29b1ef62e1b4eeef89878f281647a9197184e3c19ebb9fd75aebb6e89db6982220f8d271e72bb749844984aa803655c1cd53809cc38a64466416c882c7c2518c014210b8fb28f7f6542187ccbed31b5e912fdb9c809b0ca99fed06d8932a35570355fd93b90377bae42e6693350f0b0d191cfdab3a9056f9b2275d2e46d443a6832965a5e7d0f916526d5601485a1348da013f11e7081485cf11fcff61cd418ee4db750527801cb3b12e68476aeeee5e19cff71a32d78ab38d7992a8ec8fb346a2a69e767c90ec2c972b8dd75d4e20c086c0264ae89112f8add30b18f14173f571c63f98d6e00812b16c5f4d21f3e7f20de5b4a3e93b521f176464308913cc5b43e71c3f0c6aa89db99b3ab0c8cca5cd34d2e3738e92b1a26407657d75f905cf36242d305312888fbc0de2156526b34d9bf777677a49221abfb208034d6e72e7f40e48aabd0ad729809c44df463c8dc5eecefcc3c7ffe7ba24c44cf118c10f10c4b6b221b9b83b083bdb5c0591c04ff837fa245a3a885be5c7260b57b350ec4d3f2ee98586aa236b32fe54f17c12ff97338ce8ea964934566f2fdf1089f9edf44126763e80e246eb946400342470a1d57e03eaa5d68ef654795b72c8635382d930083e69fec369d100d6bff6ee9b08cd345b471ac2ddaa058c9cf3425e5970a2a3e107ff019ea9c077e3deef016bbfe7ab960539ff8a5973cf85b1b10e82137d87841939aad188541deb59f4c5c098b0a72dc9326223fbe5ed985b5627d2c88ca648b86d52c61d4e870d13501ea78defd178d05190017e0fa566ce96bca6f331bee39be13765f8630e759b5830d20790e280e9df6c888158d9b684fab9de0ae008f061eadf2a18b3749dd1424de0889b1f315932c50aadeddb331413742861f8f955ea46936043fa758272406b333516f428451073854b9393c06e7824bff01fdc30b4f6e3c5147f00dec15cdf057cbff190a09a175b269cec15dc26926d500075c25ffdfd69de450256c23b05ef2b45bb20aef3b4dd01a47ff9d47e42a3670ae280f1e6f26787157bafdc184dc0e838feb6972098be20290e1b5ab2960b8c94dc3b9b58cb012b4e5dca932f411272ead84695674d25cf41ebe38b20d11c2d331beac3fb42430239e57082c241eaf04dc9370e11362745d88b0ca3b50e107a35e1b5e7a2b6d7c9c463d8d4f99979b1ed7204ec387f755de2ed04469c2f47b429694739432cd0b8fdc0d60d184afc18ce22cfa0ca78f12f251d80258610d635e140fef66c04e52f1b7159257d441ed6d53859beb6c45407056d6beb21c40eef37898b5c7383c99cb5190eefb527a85e25cc1ae3f5fa368e503224f136db74b2ef7b739862db1a3e861fe1bd0d2208dfae134be302ccc24f035145f62c0723f74f7dd446ca96ab84065818ff78e9ae81c37de8d15c17ee1e307b20bb09e335530d842f6477dd7834e9dcad8f7d7fa9b875925bc73fcb5c5b98b0d77c8b30dc1fed2074cb1e6370254d1abc40fc85c9bf26492a5caf884c3404bd051dd1b88c08d72391b136981e76f408704082a0ea6c66d1134b2cd12c65bc37386d6e4761032f2406bf46e5d2fe6b863258d8fa7dcec13e8c27e97cdc5ecdc46e57f8ee66cf0e08fc4ed8e99bb32c6c3574abcbbfb9c2ce35b1cbc2e7611e8114d5060a9b18e95666cfbb233f1cf0cb8d9ac484ab63f71ea6e3d0c9b2402f493bdc8f4e8683d525dfe853eb271f0ad15fbcc43e656fcd8426a4eba9a204f56e4748ca80e07c98870cf3f007825626686a11b62ec2e0800b76148d8806c26c2e20a565a88c081686e39e1048ddecb82d453b3e7307619351070a0a0775cffc03231297893bbc5e7d9cafee650c34f60ff25fb43cd8c6683c8aea63b39487c2a9601bd568184c4461624e1ab2e615ff1f0fc1dec21098e8b92eab77122e78f913d609fafdf61fa2b0d362ff3e66b17160811fdd800cef4439bb3f2c5a551ca52471a99b13de70b698511088b1219b0804c7cba74c0d8c2422e811966be930c2306e6dbe99cf33424e7822dbf64e371a17463b56f31bf3e3c3cf55721251ddcc889985d25d07e4489852c98c1d12fd740e189644b8cf7f340beb2cdeac6d9d0e5d07b904fd39ad5c835b8ef65de870e837dd8c4b2dcf13b346d88ea8bfe77d7171c9812ac29039bae141e5e2795da9b9b12aa76ab55693ef26dd7e12f0d0ae7d4f82e295bb34d6e95f7942393dc2d214bbaff84d4a665a7da898614b46e1ad3930c6eb7a1edc58b345e53aa509fb36714abe5b2919c2cfcd9ef69f61805598d7d57a9112dce52cc5859dfb346b7d686489c2346462921547886e2c1b49dba06645ac14b0a3788e91a67f1a0b08d5462fef1a40eb63357126603f5dde34f1260a243a44991da991c1fdd699721b41bd99fdacdea962e8aabeb2ff01c4af3a44c9c18f1d73e968c440af9e5afdb616af9572dc36d6f3a6ae196b16b0c6fe2528c8e0c5468ac4a689943b38f23009342a4e374772b3360d1e39072f0ada92ba6643d2862e02f46cb0fecfa745f9b66639dbd594e35cbe5f1b489d9ae7c3821f176e742b7d26e21ca245b81309f0c1ada8bbe0f2aebde4ebbf6397581794846f72f39d75323f6bf6dafeb14c4b2a5b23937cd31117d5610a1cf469db56632371e9c358751585753964b55dfeb8a2f0e2598bda2021cc8898c9e74e2001e37b6de937821ce9c7cb3974539cdf1747f214851f47ba8af747caae1efef82c89708135bbe0cc8a50aca28f571a842456a6a21df5b2af66574feb53100d3d271d8b96fbfa8cf696fc3e5a28704af2574956e5101cf6a0147a475934c184c824c4b3df446ff4eea3545726cf8c7918a9ccaa306f9d6b9d7f1cdc7e75ca907faa35ee0582fa754eb6b734ffa26fc3f9bc3366f5f21867f13c87c700e31a48d27ff1ac7bdeb51228efdb056db10783d7a9cca397f59a2b8b96e0b0debf5a50e810075782663d0bdb17f6d0c056a35b3f2ac677cb98c778221228af21d63e5a9d0ac08c28188ef5d741bc199ee6df93b2dbf73490b041e6f98c722866337a013527611ba3d198acc17518f87bc3d1d78804ed5e25992db5d942bb892c1e2de549a891992a03bdc4b44e99dc7b3b07cee7e8d490f3d3322ff25fbb053f5d32f3fe0abfe0287ee09bce6ca5eba2ecb8b3719017efde1e9925aaf9a7950449254eabac9edb93b2f0eaedd0b51e743e873d13b5bd12a8539da02fc10883cb7cf4c47345620c6ba8bfbccf40b0a9e2eaebfe283bdb48dda16b35d5a33b8b8fd42197352adcc165a7bcb0934f0b90e525c6985e4f04924601de4e40ef14470907c632c67ba209cbd5391649b78a962c0c65d9e4c7ca1541a7fde51caf5a031011038e7936ffc00cae005dd2dccb9201a3da27d0d3597c5fbdc84936dfd7576bf0b685cb604a364c006bba9cb325216f56425f5d862e152c4cee739ff01841dde6a238113575378eb279973567cbdd0a35e34c6ec59d32e877c3fa6a1ba81bdbe6ca7fa214adc01d69ad15917b561e1291d46f4900d554b9ca8e40abe99beb0b6fccb197da61c64384a08d25f5bf957c04a777df9a050dc4f23a10b7f6f1196b6779e2f9419ccab0759eeec64824f99f297f717949f28550669fda5c808afd4d8593295d64c92de4158d9d804515b421086be9263de80ade32a813ae8aa34aa73ca3181085e52cc988a6dc19130a6c445236aec0954129dc2fe3c36d7edff04184c128f65fd2d6b72bc842038626e788ca3bb699ea6af39e0601c564fa8c146f7beb2a37cb9f9799130e6170e203e95a05728b496c39d44e593f57b9d159e1b8ec8eea18fd0a5ab6d076838f66b53975d256ebc284b16253c9508c2df519d5c266195feecd4ed2a06ff0c8f72a86ed96c63e21c98826368a15f35ad18645ae864c9b4ed3bbf111a6664924a7c6f3b3274ec0856a85b7f31cf330436134ea7f01b147c7f143000d5c520294c860f44b50b98202e96a581661eb56eba88efb8f0d9d457782aa685bb16d71d937182385ccb12dc3050a6c62d382e72b5c594625a9dec456819d14dbc4975457401cdbc86fcac8fd18f9164b37bc1e3d39ece76084c08db29299025eea4522e7b2ea209c468cc105e0605370cdb55cdd6b9a3c8678be74b7ef3c48404d731d70c5f96cb1c8f06b4844dcd7b09001d8c8200907694d3dd52106523b81f992318903403a42ab4f53ed17ecd9531f27e2615257580a7ca6bc909a1c81e7709a79a095fd94b4232593f9573e7acc45a61ddd3f6a568f0900883a30a683ef8059f61b1d293573590011ffea97c7943977e835efbf1a77ee2fc56cc15aede4f5966dece6af5f0a2fd9c2746c24e78451e3f5f47727583fbe15973d51c9f94f76395bb8d903343e5c7952f21b9132bb1a31ccdee7e2cfb237f2caa8b15c58d6f052604da97a4490f24aa44fe89432d0aee94dcab7d37d408e860cec12d6c7c0a7ccf7ecc4278e54464c7b6011a6ca47cde92a9aa42a72723cf081c577be53296ab97d293c4ef44e3b5e5542892a4416650df370020410ef34153236399a1bb5e8d9c235410d3d3ff4224d575c30d4000fc31d5b9ff9e2500f3550b9f2bd73bde7c92326966c8aa3df20ce5c128fdc4a0f6ef6e118343d778ceab7f03c87082fd75079138d19332a311b1ea0a7d15c4dc53404414ee6289e5aaaad9c3c37e9d93f4a03b0337b9ac5a85895421af9c8368f9a788c4881e090a55f5a620cc7a7b05634b79939157e0c8a827b3b01f1db9b9524be5a0220458e2c43f1b74c91bf88b1f0c34ffdeab5cc80ee93a4cc28d98c5ae3f8f580305580fafb6143aae777343914d6d5d6586a03da502b0d857d91dd1c552f9914c1852c18ef280d768a12092bcc11307311fdd9ce5fea4bc28950c547ba1e40e01be8ba5816de03fbc18ff6ec3454c44cb48da6c8313355d0d2590f4c0b6a34b6ffc88d09891ef38a7b65467c4032235b5202b9b47b9cca7f8fdf902115dc6c4c59d54d3e5591556b0b5d88a18e82128d97fad92fa1d61af86289a807d82c0d4252c388e9620ec466d447ba881a3957eeec9f56f71d7f43992d76d53b86264957cf32efc3b1640b26ed58fb2567120262de5e8791af3bbcda6ab64d3794526850b1686c2bbe9af5bddd5dcb12d922a3904c685a914428c969e60c2abccae8081295e3356b4aade01dd49e77615157e62336fae01ba8b33f9cf750e956e3b648b49dcc8a1888625070cc02258de1c03e8571c8ec5f423ca96d5a03bdec05400f5a77cca3217caa42a0aee3b8288229cdd59b603dbde5d9c4822778fa5073994ae51c52d353dff7baa6a2a10a6dd50f780e4bf82da4307ef92a34ea47e990031e8525a82a01c659deda0294d8947b00dd523913be34294be2fbfe135c6b8d5c5679f78fb5ec9ec667158c03698148769efb3b027e16d4a4099d9939a69d3812408c9d01d8ef3516562de389ca35f675125db2967b770d96f4ad72beb377561e593b08fa5f2b15ab5a20bfc046a33bb1f3d96b632853a544c4fae67b1a4ada7abca91998eb1b8011698c8a147cf3b32ebc2099f47110a91dc7097a64dd68f3e4211863b51310101c5c8ff500e780b473fb37926cd9827b92b33bb1d5b4f759aac1b21817b8a959049dc09e1c181ec33599a28463636392b54287248ea5f0c0126bcf911fed3579ba018bf873d950dbefd67f90049736724444b36617065a4d0c74e46e48d137c4a3d2e9bdd8ae9207643dac4a4a1b4f6367cd37227f988609b1f45760241a433d4459b5dd7ca821ceb88b9d9f39a37a568e07585a3fe71530c72506715b7d6da428e774941c1afc8128e806fa5a43a677352300e1669102b8b9f26f42cea9f833a1c52ac88fd021d699a8b68c35d79d11a9b1500c3805707459df622fc06e104dbed5c8804996e6467fd58a448b0f776159f0c364a7d578a124358e3cfd5f0575d7abd9ece82a350a21ef03a9abbdfe2b17330a5cc4aa80741fcb4c1998d6f272b0d48da30bc0779896d50f184cc7bc983be9a4d53b7bdb4684c9f2fbbc9a21b9ca1f35f2fefabf920cea1a8d0194837e40b40f5ffd93a6a41d8ae6541feaa8820378529b857d4edad3a307a488b5640786bfde5e04a021be6b5b8e4fcd4c93c22b443052f88626827a4d260304cf852c7bd29ca25e25b3c6694f76b885aafafb7fc1ae71740d87c75cce39560c58fc7bed08bb89f5f35807eb2293676dd2c45db65b636a0599ff14e63e5550518b1ae9f33fae5a1de37dc80adf11b133ab167f0849af1c177468bb941ba8e6f972b33b19163d397f0ce8b80c27f5b1e3d42a271086e11e395d6e4f522144daf1e4c63aa9bef39a3b6e33390cfc9931c7679586f5902458f2a5515f9d571003d1ace9dfdc7b4d4eb3eed720e8aa78e703a1441a07ee711ceb8334e4df2b1b2af721d5c7253b798926c32a620d3324a7a5808cb3ec3b998608bba5175e8e1764cdf88f0f3edf963e99fd44bf9722a628f770ab0fccdce2306738c3684974f9ce512672c457da87530fb06d99c2514f915bfd31e929bd06f21a82c45e8c8722a607450f755da696de8a25adad2be297fc438e7b083ae145b8582eedd9f3e01f704dd61610e26fcd293288bceb265cc62f4f0aa0b70e874319c552fc25298cf4d99110960e437805d45fd3dd2fa720dbfc291fc1b66da4df4d9daa389661aa6cb59416afafce31e573d8ede158e058d4e9db142a310778ed5c753e171296a5acc80bb08871fb504506b5c72230cd225c52ec2e73b59cdb4565e1cd4a2a75567cc0689a98279c45a372e2f4a109af953910405100ede82b4e63e7f059dbd1cc1481f6e009635ca710bef5df95d07ea8be052c23f4891491a704d517e1d930d8b074d377b8c5f92fe2896aab80c5731d432bec443b09ebb168f8f74d859304a1b20a7e28b53730daa44337b43cac7a5ba68eff3b961bd61775536c82c54069a12cb47a4eee117f629d47da0e7e9ab1b4f5eda89b5c0c9a2fbee798ea36e4d4f392c6a1984b07c583c53ffc378574ffc6dc09cd881f0eb38c4a3cbedbca3bb8fea0357b9d2ba8143650e8bc85a6b2ffe1005544c0bd7f00df89e07acaae71c6a671ff7f4afb1dfc8b3368c78cd273e9c90cb7343ebdd820ae10af9e9c72f9113e6111275b0dc093d0c255313356667aeeeeef6e2ade1d511da3510eda87f4f47b6fc8f58e352b6097b46c52cb38cf1b1cf266b5bd2ae8d7049baf67ff77fc4835e8217743d894bd75469bcc6930316336bee74c280592f8ecf05d81ae265ccd20afd383de6e10f8a87d75cb8bf2a8337c49decf02e36c80efb8806f9a02ebe7db403b52f8517f324ca01b262067598552cd5f350d70c1fd041b311737d687226075224bcc6fbb0a61cbf5ba50149c3aae320b2ea04bc44fb6f8f5c69c14105009fcf91f63882e3502808d5c586f88e98e116259e61b19b842fe116e5a5aa25ba3feec58b02d8a9d2ea6ada547899c9a4f4ad383837930967337248e0333a2d8fdc464d31eba735c9cbae342aaef78ba87a39a62427276903712d1ba67f2be9948f3421437d3bcb14f08a1b35e953b02252414e2eef7e6754fc0b10fb5b36cbcdecaa0c7e124b2fc911e9fc3f5e96fc1e4fea0e1322463331f860607f942753d717303575489445ebaa1fde1866451dabeca2120a78906813c7ba6af6dc0e31bb23456a5e2546fe543a117027fbb6593317b88c72a353c795cd264f58f7959a0ed525887798183ed56f2f1f5d1bfefc2871f3bd3cc50f0a3d0519ffffbf90364e06e34b7e05bd19bb0e75ec210a084b254a79c9fcdf8ec0f5fd290f3ba0e0c468621faa5c5eead03103410a913ef44ec65c0cc1bebab81eaa3031b5230d7000184a5256155ffb25e4e0e2c22daf62f8ce69bef901945436d12704136506b72a63b41ab29d72f1b72bb67ceda4a1d106ad9ecb0545729c03b447eed0bc7e170903ed9678d60e61ac8a878fc2d0318d325f197f71f08e920806b0b26c96f63d2b8f2a0c9f64c9f14b3ea0982405a7535ed3a11ede7e7f8a335825210b527e47ad05f6734965ccbf8b9509e4eb168f32eefaef5bbfc82cac8a959834a6531d5b5c8185f270a8724ae890934be897b5c38ef9b60d2cc907917e3de177a1543f96473c7ef781869fafc1f2d94fc98b202a13a251232ce6f5aaef7a15d0b5c549e5fc14cc12af1385d6e8cbc67507c676881875f9c0e0c4d00f25b84aef8881a4f41b74d73449e778810a9fbc533b993b934f58a2d6d7b864d21eb9f5594a452126cf31451236b4687bdf3b57698616f4cb62421ff5b99d3dbe3efa29d48c28c735a3e45457dd770ff54a069d3476683bdc4745ccdbac803ca9cf03dc5d7b50a290ac792cd2904c0cd6810ea869b72bf785b163255c94f3fd6ae1eee25ac26efa0952cbd58745f052e72340045c72012b1eb3377d12040bcc1b40b846f52ceab306bf70b88c27884a15757e03f178d91b909fe74ec007176766dfea4540b7e57d5e862b63e5adde008e6927a4320dc772f1a1b3ca85e3b62ab999c62f420b46a86e46e64bb46c4d101620692b14c55ac8c47194ebfd691d7e2ec53f5a0722cf018ebf52e949fe9bab7e4123290bad37ef4325c0a0672ed01286dbb09aa8c18dcc2cda302d1e5a55d91dec62d33c6cb40c86c4d6d53bd438f60aa6cd1b44966607e3558363caf8dd385d4967299301b22cbcf9706544c8d9f2c190584ca68f5675148b95e6ba4e46ae789f61d0032c6df735b2189b79d0c1edea637c49d37231d02a757b96cb7719fb482c4c959f844f72aed22c1c108f2eee23608b9dd3cc2fbde8348f9bee6a0e3b13e1894175d146c3631e2f69c8d726f7aa844ad8921003a3cfe166639ae4bfa382dc9baa0a0a59a872b69fcd5baa91f98e94176676f015bd678b71c42c1d8e7d727fe15983aaef0313beac1767a4dcdff2fe419d931d29a11ba93d2432386fb49f8da88fff9dda2aea39fb815cd79401eb6d0bb42c7f91d65df881e9ccf5b0b7ef644c8ae4601c6e3c306a509dfa090c0eeb8fc16296e9b0475528ec65cdbcd002101bfb696e9f459678328e555947026d5044ac20e06747bd6239c57f879e4049e6ab127b6b17ed0abe457e1b97c96cc8461885ce5974809832aaf22738d995b529a8b7c04dbd4f3c62533eccea3efda960159e6c75b60e54a9dc131a4929cc06548239c2ee0649676bf3204534076bdadccc1cc77a5dcc862723bf002ca4f5c767099b942c530926b77f519186d665ce1f188078f0f25bfac3ff324a20ad6992627630ea27f066c9c0f520356fc13853467c8816778d582b20f2ed2b328244122c244855003d2f440e3faa402e80c85332c52de96134898528e46cf69418c93e027267a3447f399cc339f5f0da48f9c20942300b1d043bf2e040e3a70b513786646a201424b5606ae89248722aeb0c7302172dc0389d35dac1041ec0bbcafb7dc692cd2dca296ff71b89d23c84794a5768a5412b0b3d414ab841c0229eb978da9ce467e011aec92dd3015de861cc3dfde5b20a9f1c945d0793942981d23b4b8c2bff4a376a357cd18fe2d9b36ce008b8e54bd68a5b7061e61cb04fefae7d14e6f8002fcb33f48e439fc16113f07e87ad71d4905ae204dde2ee61cba8d2f0a00ffd3e537b66feba8a16e76b336a5f592fd080cf6fd91d9df7c59dcb782335381251b883c4b2664fdf968b73b0a06ce001a922e71b9f172febaf1d7a9e26f23c2cf75ac114a237abbf935fdf3d0c12845e83f543d65500a77476b7e8c60d8af548685040fa6558c2bffd74de3b2aff2b7aff1c2ef76352aac0beb1e7ce55ffa870ea0b14cba52aa3b9ad36dfb084469e8446fe3dfd2c20b72433222d97d75cccc0b1047b7b93b27085b7c93869fc9b23d2774cb0278e837693963ab8676c8a84d4f12381d1c81cb51cae5ad4887302359eb64bf579be98d35f021e636701b1d9c745f43bbe11326c5b2d87a2929a1293ce5abee2edd600adb7a08ab710c8bafe7f42d3b2c321172c01b740087db37be5f3733d4015d5e47bb5340085603d18d6b2a72342b8298f43b23487751bb328786c4b41baf107737c82d9bd2a2168e0f9487a83e69b8c50b46be49aff73277262ae3e84a4a95188f3a2bdb71f181b52f9f18c210f3fa8e17a236a107fde604ffa97d871241182cddb2bc8a627eaa187239a4db97e76c4a79fd19719d685b93f0f34a94a2a05a647ac9bfacb535732b35d4c66c8183d67037fedd378f45cd01b10b6cc86b39317ecb9d2088412f6f9d621a27e416afbd3792fa2fa7387b5a5b1e0cc9d8ae777173ec528629d5493c2cc9368c3a45b7ad95d2d19a42f12d07239aa30862b923bdb268b7be3022f34c57225412119c146138f858f4dabf2cf42ae76acb22c60438caab5076f2a9cfcc38e34f49841332653959c2fb425a145d6dfc982da7adb456d5e1729af209d36853f2a6a0cbd51f56bdfcd843c99038dcd481a3accf1c84749108e5a025db24956cd8f8efda8f2de831c8f361aa07480e51d48321e0a52ff5ff5718b7e9fbf86feb1dc184e9818680e6932acb17fb6d335f659fc7f3222eda762fcd3f0b58e5fce4a3c4bc7c225f6b69cb7b79a9544aff4eaffbb1e153fbd5da23816c1c332b4799a3d9470adfda9c92e8faabc5edd5cdf3b17379f6ec87f3ee35ee197b1d752533781cf45f31d4677012b2db658d94c68c7b52a54ae1f18a27e02daadbf1bbb537c8d9c393a063b73e50706f8235f3dd22c4318fd862a56955cf7f448f9951da3adbf88f587e03d42a5b0b8565a75bd9df174f2b9997a3fb71e8f327ef3386746445fd103ac1cd775b24c9026ce91180dd707083dc045f5ded674602e36c6be86295e4f053dd46460689fc08b883036118993854837ee8e6d562a2504ffb0402979feb3ffebff3e8c1a9c036dc2c389b0491cced574cbe387fa80e7afef2d771ae378a2267c433b355584948845044c0ac92c57e4928e50cd723d1eb8ee54f177cfc2768fa558d0117403d4c44056ef295b126d3dd85b903c5525ad6a0de4550d12fcd0fe2b64f6b2161faf4294d4b6bf1b981850d6a2b0cfa31975ae403bb2ea493d2c5af3880ede0815c293194d736d430b92e8398c6d262cb5f5b4f7ef17ce3eeac31b539363f2300927b49ff7f140d93f8a0284781257e465990d2b9b252e0f4e43af1216fd8f9dd21be101755c016fb4a1326d4b35502290cefa0aebddaffa3a3ad40e8c996a5468e11cd9141c25e568e50ed0e3afbdf5c15f3f0914956495a81be7369bd5fe0fb69114092cd0c7ad0b2dafc34dbcca123a09d0243d472440d02d55c3ca4e805f16d9e0b5c0c9f181b4496018e27038184efac2900207c36864c7fc7dd52c42ae90bba5bcdde7a760425cc3b6e1298f5cbdf57c1d69078083556add26586217a3c8829b42992412bc75695ebd55b183bd65c664ed1075975cd5d96c583f61f5196c027384542a3cbc35b55ee795d632da8456f1b80e640b1c757452e7b0380c92c9bff8b65ee8335a383cb518a7b7ecfd393097c013b8692fcda5f16938b69e0eca47b53cde7975ffc63b250c5c7a3f947badf60aa25c4eb88fafe56770d5cb630e6ecfe1373dc317a3d5a29856dd88d01254a5b9994085efeb674b2fc5ba2a0f4596c2bd4d67528e335bcdd294024ba047d479f2c5b94a4aa0fccd225eab3102a975f4aa39a672654498bcde029612aeb9991b007dc5275e879c29f5fe49a2b59e1fd8888d2acc996a8947f744f8d17e46b5629d8d4cb5e1cffbff10b41b760e96f7f2068171136c269bbe1f70917f72b92ddecbdbc06db61d159f39a9c31ace292bae52f11ed1f028dbb3266e1930ff86b76c6eca0ce5756f0590e70212b8e2697f581871f4229e65eb736c1a1d74268246a78fc0182e743b689dc837099f246e74ba50c48734666626d2e8511f3ad569cbb896501fcaa835dcadc5488ca381feb5e0ad19083bc79e3b9fa784645606188f29d486a6a1795f5abcf02433d931171fc1843b2f94afa81d3c03a00293a21007633a4c5ab66775218623c8597f0711feb5e67ddbd80cdfa485a6224ca00960727b82f1e86e052ac329307388d35bb09cd56ee5dbde7d53485225e8832da0712be30506f5b42f687fa1537aa3c7a61df85b063c097f78bc6eb9a9a9057c1034e6182a25b3f15d2e7a5a6d575418fe93d39e5d0bf259877fb93c552193aad428ba6d98f552aafee2ebc7b05af70afa437e9bcd027855df719383a8fbe8939bc0709f331487dd45920f1ff2cb004fc63442ce5003fddb32e6293a9d103300e7dbbb6da97caac7164831ee2f366fa892424df65bc82ee1f5c15b1b976a6677dafb8b9743e74d2c0dbe0ef1638f979e415617dfa61751460ddbf23080950c3a89c67ec668e12d68fb547fd1606e62b35ed4965c021b387ccbaf90a33102b18c11bff4325629ca052fe429668c7abe9a8a46bc6b66090093d10619871b65e83b74615166ff0182d2b1aef03dc214d60f3b2995f3e2398aff123bb0c55ce15441e457196ac7d2f57ee8b1efd0e67e9ba492d687a8da7a14809801bd027e40dd8efc7073de1bc3454c1b384fdecbe1959e4c6cfdb3a0ce4bb21edba84a4128742ce4cf83454f5e1ef2a1ca234bfb815d07b860d007002d3d53d1cac322d03d27bbad46e99b9ee6f915e1ad9f8bdc1433a736f0d94c9e6f2c5eb3748bcc3577202fccee24c334cf1b8e04f31eb4192cfaa7d09f4aa9391666f89267aeb22fe0b32b68e4746e942467ec9d93d3da341f1989e761278cecbd057492e9172fefb9695c64e12ead942709850d6dbe4dbd039cc8d891dba61bfd04d80f73f1ca1597af2ae325cf9b199f3ed3ed61e9740e6b7d577102b2e84d0c5b4de8c422ecf332cd8e1fb887198b1b4d423598a56c5ff37f393029dadc4bc3d1cbbae54ca117776ffd0d5dd498ac9bbf6808e1954a3c33f6a2e0bcdb3a3d652b5466a60bc318f32a9b70d25d7105be1e28aa0d085eddbd785b8c4ec323e94fdccd1919b40bc2dfa957cb3885cf1cea71e1b3719144914508d8c2dedcaebbd55325bdd70a98abaca1c24810b58cc55320c6340c9fcd5f65ae2de92211cf94e58ca27a4f9da483c93cae62595ed508af3bc6f7fd87fdf8d896f9ccce378db7e823e687235aa2095ad230fd1d79891d30ed13d3e25cb582234042412b04a3ac38bf813691e306389d421d36a17ac05606f88f786e997df56761243a8a0c3f3aea3c645eb8003b85c5275bb2e831450bc71ce6159585f29282e98ba7113a0003809a376c85ec54bc46beb24bae18f0d8e1050bb06544ca4610ba9ede48e2e1d2ef4fcd053d031ee99cd9401bff9ac1dba1ef31744e0c4276932bd28bab4761f961ea28dfbc4b3b3d3addcfcce17ae9df39e8315b02c6994213a0bd32b866c8d0a630a6f73825597656e0e1cd81f9c4a051cdbb352941d0163d2b6463bfc3aa13be8a03bf0af1bfcdda33c0cbe23c5320aeb63671006f063047d23c76ffe80e4bf7887c75b4c9d80e60281cfdffe92c7cbbe49ecc3ce72d6b7c88f8807beace7ba7f0b49cb8b9cb980f56831c8c35ea318b33d82e8ed017f4098b1f7157f42eee1f68f86ba55c4224ca35ba11bb5a99735f7d305c47cf9ca22bbfc7474f5721d6f4fea3541a14b32fbd6978e257a52332ad10adcd8d15a7dc1b77344e9e07ef7334ded89369650c901e5791bb228991ba01f77f39256de8cb994af5b569044ce9355dcf216db7041a1662d267bbd201f06174d63cbd938beaa5521690010a0d515b2cfa3582a5d840c80476d4029f6636e8fa543e395b75410c099fd9df36edae5837de3a9cd02b440f892115e69e9038742ada1ade4d2c7d0b162d2feddf18b983b74547bfc932e41986661ca9a1ad3b930961057cc875dd1262d8242dbfefd39b18f9282c1928e96f106505fded4abb74261d3f35b5be287325993aea0687eef7953ed6ebff2e525789ec49cff81d7a956de889d74785637e869d7284c2675c13bfad0db3784b93fb575fd1e3d8932d67b7a2cd89f01e3ceb642e80a055f19d9522ed82d887d0464181c08275e9b957d3e50c49c0dd40cc76acf015bf7f7a97a2bb9c19764189a691745b55ce535660ffa40203738299eaaa963b62e8ec7293fc5fdb9a4f1e771e5035c44dce0ea8458f9885f34a911a34ae13711408cea4a046adcc2852c1af654a74b8820b8b59808385e110507e3824e219a833df5ce3d74fd30580ec239ab9bb5abfb2bed7d8151292427a56b99518fe243ca03104d0eca37ef3dc8489ffc82db799a3301d416f6255846b335d4f45d8659d97b03c8e163bc650e747cd5dce86fb3b8401834b32e38323476ab1ba29668aae09e7505915c03d49ea95b4a3f17456802852fa74635bc6eaad954a91f992eed30d87d241b2b2800db1e6581adb297849e53f464bf0b6c1d1c1744fafdba455739f6e2ac31ef220d5446d342cade407b9c7aa2f8063f4a3458f8a4762ce902cf1b4e9319e6f865b319aa1442736e11bd788dc5f64b1c65491c5d4d9cdd94153b9db7b5cb0e87e8d495865f4b59d7ae2495d84fb693324ff4e6a88baf532e3430c1898794bdffe89be6d5e7ef5ad0bac33f8ffd74bb16129678800b5f606bbe3c65a1233e6fbc0fb4b7ea6cba89c00bf7bf72e02602dc4ef11d4d5b7ab323da4aefe98fe5b9ff456e044a2e7c11c40f4d3262973ec0976eb8c6ce2ad24571aabc68f5ab2584df6be7776fef5e3b98e372a7ad8c45a0e66159e21b84a790478d0c659513df4819e1586c2e843e74bdae2a5959fefc7b2dac9b205e983d07db5bf5c78034394f3ffc69a5b04b1862ff3eacebd97951c8aac5dfe3e8277b7f1cced8ad99bddafb0d08070578b84476461b4e8fc264b107e2a003be0d67f04a0d12d13c71ca0382f81599726d3f59f94114b85e2aa09bf9fe0149913d305f997c46c6a8751c5c5d189f2143e440b17db83785a656debf78b011479b09dece986a4185499c3c11dbaf62eca531ef2d4b080d5174978f6afeb99f8cdca2ef386e577d779e6162f493b8487a81b6cee090a804e016e72ffc4c1273512861ab249df5b00c0b12874c4544aa41d44b79f01aa130cd2e6d5f231deff5151404354158c84be87a67e5b444d23534bf242a63abd2586ebdc0f74c680719251833497b1dad192d22abb210bb009d48749acac9cc22f3ed3cd2ce35b476430c08cb7050f948ec715ed62736b34ab831a1bb8d285caab003ed5899f8435648bf7314767d5ca72c1916d8a5cc4c61bf8502a39ad2e0672707fc54a7607605c2b86d197be651bb957f0c929c94ace203b75d55b0719ceffcd10fdc50812e06bdf1ee342820435972fcd12d496b3d52e2e3eb42af3790378391138034d3d91f5adb43037c03c11cef0aa1a477913e7c395fe0a36f09a62421e91ff0f6bce76d87d6630d36bcfa6893173dc71f066e69f9b6465915d07b043521a39caf11a60695d13fa8e74e9224e7cc94df043d27579dba8b7bf9320899875bfb24ad6faf85ba098241e7dd1a16a82580d03f5b06b532fcb6ca02c0b757fedde7001d37216966b0692f22e1fd7eace0fbdf26e2118e23af41e1550af3e5dba6fdc089895bb592227757978efd6d9d3317119ff440a14fefdeabe6190592d8c2542a0c56d1961e931738de7c2544c09fdbc5959f2814468e031c8badb2bd1a9b18408f0feb01afbd25e5f968765e2c904faef16843420eb367f153e3aca0ff30aa31ba9a88f45aee535ee06e8baa075ccdb9334602d448e6f8946d959d21d0efbb5e1db0bebdd0c0c3f589abcb8cbc16ab2733275076cd6b57faa6f0a223f693a61e740804ae3f315224fc697fd95b16c191f3b751c6f2258a43f08405c5e61c520b0abf62a2350bb68be6158c65bf701e6586d8557eb6836d2d7aba3fe65c83f6f41808defe81ea3f7f2ebd88094f91886a625d1150f80395385bfe8624be2461e39d3d75e4477c09157ddfc32e0aa7021a1e7a242c8e2ad768cd217d8bdd51816215da76ef95d0742bb30b1c28cfc5e4efb9247c8aa0ba93406b06f913b94ad3f8b9fc766c52efd234fe3bde18545f413b4ef759e11aaecd403f794d8c98080c52473c4780fcefd5866e5a833ad3b55c4b8162857a281f8cfce4b24a10db3e76be9d9bb273a8770bbcedbe672f7ac1a291cbe0db1dfe0b8270fb69f2b40139d73bd4c719f2d2b0109f04099f75d717433291485430f618ab378cc2e575a02349580ce42e92602b05f2ca760b8b964124dd12146e34dfa6c46ff7f00f4b1fc6fb956639eef2650fcfb4ec9f1247aa98e46526e35d75d4c8e90580fc4a840eedb82ee6371a0a75122c1f7e9e790f234092d47d42f9592e182c527298eb80808461e41ec152b0c4c8b8831faef7c2b11c9424c166a607f8030d4e583ae9b18505aca335ef1ec4554d9a9c927715b68134960a0e0fb619a03613761b7a048a995fd31af6f64bf420c5921c49661583c6c818291d2c773edc6de5a0d1d889840b629a0cbd8695b477705306c9e9f078aaf7ec90822ac2e66339c4fd09be829cb2984b68f472c52c8d893354785bdb93142d81fc4740d594ff71732bafc0d7f2bc1878bd13c95e160855324b3bede45be9bcaf40bba8a5c02fc02e39b5545eedac182a4848f174a0793962a16370df3a343531acb5f89f244118be49e7bf9d4ff3b54758d5b222dcf2dbf967f4d70ec9812ae0c4565343e5bbf2948e85e8fd6163e32c00774632ac221401c21ad44af9c17eb2b90d4c75867ec5a33741b8cfb65324c77a3dd48d89c001c7a6e7e181d2cfc293d724230135c954b7be9077203a182b9e017fd0833550539e0222ea25b562838917694d6a62f5d85d3fe78f67f42051b671d96da3e981e6ba9dc083b91a0e27b20ce3b193357c88a468a45ba684e300734fc6fb2ebac04643a0cd61214206ac1441afd15102c63bc346bf38a75e6556d96cf82eb15cbe4c72237c1fc25505dc270d0ef87ea68cffff500f65892036a2b8e3fb153bce8fa4f4afe102d6ddd75afd2664f210a9ba86547b08aeccfbc3ff2375d09e2817515281369500b306010c5b20bf9bd2191183de5c432c20fa48da59f92abe095d3d900b9bdbc4ae575982e7b3c4ca8f71f0674a35b9968e6d7c843debf900a0b78bd6d13e3ec6766b970d38f679b0fcfeec2df2d4e0e4112dc6cc1649ddc44311f8314be2bebfed981b4e72de9ec3fa72125225a76a898978d05f4be76d0de98ff537147425568fb7b657f3927183006defed1704cc0f3b79bbb99ccc5195befe497b281fc467e877c107ee4d9bf3b15ec9f7070ec48ae6d1055daa2ce517761569b54f4183035acf7f776f0f59717c914183b5a809fbd57528b03fdc7352b82100e45239c0637f4ded3e0a00fe8bdb8fb58b5efce08712f87807ceba1868da40ebb43c0fadba819534aec2cb992fb5f2a299121a2acbafa07ea246c3f6776448b3a35e9d0b7daf69142190ed90744192321c3cc0995e4be3cad38497d7f4c9b0e0b1b948abf8922ce373b78b2c302c954f204a8e902bba24ab6eb58816a84c4aa2b30078f54690424f094c7b93edea04350082564efcb3b3f988c21bfe99859025063a39a2a1c9a0c6794142caf534fe87c9875190f55e0a4cde85cb4801a39fbd07647bcb97bac5f87a973479337df6c5e6da0549472bbe99c02820e720a158b0d5d4b3d2a7a485a1a1a51473cb87a9bab7bf0227245db9ede77e10bb62eaac8bb306ca916b85a5857871a6ac420de93e5c5fd3c870812abfcd4a1450322d8fe400acc2d292916a3a039325362c61bc227d62ca5f28dc0d5ecbfd7e3ee20276245594bd48f9609bbf3831decc963d096601b51513e558075a73098620d0609c9472ec4f7684ba33308a35e25e8ce8016d4d1d2576bc56e7a1af4a23ce97859be0f51d800f442fc65ffa17a3b147ea7d0a7367808ed1b55c7170a292b622b0e5f2a5ceb0746cbec6fc93d035e5f6d05abd50164924928833e19a62ab04dbac09a8e3c3fba4ab84f88eb2eeb2d44235f50ba296aad6a7888b5f2765bc13e1a78c199112dd885d86496aed6f0c0efd3c72e3eee6ead1cefb75f2ff3098aa02f9b999cb573151d3ff1d63d5d9a86891a5ff9b61089f3bdc694aec533a2a9ffe7dba4025b35f65dec7c9a6279bd3bc02f0e46056a9fa4bfa02781cd54da7c2ea6c548f9c18dbc6a010ca6c9c7a3891bf87ca06b3bdd782e64a394882cef08d30ff11fd2080290d87d33fafe149fe9d14cbeed3d71775f1c41e4927bb616e14d9ff142c7e0b7fb5bf5151a25931489a405dc15e29be2f2d16149fc5d891844fc41bfd368041f5ff31dd6219a5f40040d826157f81ab2a6b662d692d8a0bbc3d246b8aeb9565e437d22acb725e7fef54a728274df45988bb67f70ba8bee6cf79ab5c8d3823e12678e7de1c2cca0f33530211c2e2368b509159f8c3321545dd026800058172fd5bcf67ac0209ffe8e7e87b376d029ce43bffee6611f59226dfd86c1f5352064076e41ce4a39706d09ee1f2ff3b8e77472188f4132a4e4a3ad26bf26b214c2a79b89c622b566f5c2f253e3e2ccdbf5f963121ba529739076968531ac4f0575f1fbf5bf150f4a8152060ee1355048f87e98db73ba6d83a8af4c63525349cb624d409222d5afe8e35705f5cc190c7c75cbe750615e8108f0c7870b43692c081c13ce65fc2b4ef918afe9745549076bb36207bf3bce30fab303b0f8c7d2bcf84acea70159291e521af3bf1f2b94a1481b6ab8ad51df63692f23ac38bd31bc13bc0f5c4a581a7dc268f70ed728fc67a3b3d661f643bf7858881d49b275e86d9ad83c10f6264003467bcfc4c658d43fb433cf686bb6e33e66912ad121ccfac390056a3e557eddf0f0fb98df05989b4dae2e960274c5f90a1573b069dc5f5f38659bf48f0b8d7a3b123e50e1752a94e3bd84f136566f603f1be573c1909021cf5fb48b0971b0e3acfdeddd0a5543a4d88b67c2d70e5424473b15cb1706213ad54cc3ce4f797c187d8f502edfdb468e6f4650cac465f19f4b0f666e95196271ab5dfac3f580633dc5ac231a1be8556cc876597f5694e26bc6ab1cd7716e97b57cb3f588984da91a8f332d23bea310e1d0c1e7b0c2bac3242afd836595c90f7ed50c2811cab4225ecf46411e18f77997670d0dac2c2a114eb6bc87a10bd7c552584e8b8631e27b8ad629ae35f6dc18ff1f7637ae436f6ab073dc00ebe47f445d18b424b83fe9e4517f91ccd0cce36a2a4d90594b81d68cc89ba0ee8b96f4c6cebcd41d9f51a5bead4831c29508c06789c12414e953d7ac63282d6d8e1c8c65100b6449bb1b9fc65c1e825d9f907df6680a3a76a0e9782d0efa43bf21f2354c3cd29f42c23d0233ae040efe42d6fd1b9868a5fd01738149fe9ed7d9f834d5a77451aa233e5f632f445b6277160cc2532aaca7adb6acd1161e190e5e2e377e98b110553a610810c2bb307c19b7882fcf8794b5109ea959a1ae80e179004ad35d6a1f751e612dc52018f95896ed46dab99097fa55f801859d10fe3b39a9321fed0c02707f3b4f7438d0fa47e86ca3845608ea64bc06c645f490115b95d0f57c51b0d991fc1238b1d0f5fa4fa2ea99e094a4cbc76ca3fa5d7743d34b89a47cfe15b0c1e088607cf53ba7f9f3a9e9fbbb727ee14b8d4b185238f0208ca2b712f946c6c058b440b9fddd2308b4578616cf2b5afd38e3a5c7dcd8ae43c125ae89fe271bc539f52942f008301c3b2c2418c3fdc2cf9b12fdec2192e518cda6d5041c9bc80c1a84a49bb4c1fcee75bba8fb0562df0c83c72dafd56d54bc8c9ce30df5e0e5d0af1a90de19a41b53fd6412223bb3f5f7bc17e0c8f1e885a2de633a9c88318387d72db6b7def693931f4964268f5cce67d22d475377a09274586552228e1a00342b2ac8d7dff09b5d81b1b32553d92c8c3a6429e4e36e34ceddf73884a7d68ffd16bf3a28c13d88cef8c618c74b2206d5349f385de1567fb0673d3bed7f817f77ac86f50bc636bc99c32c852ad4c40f669a6771753b01d83dc52229af1e7143bb2f7fec51683b0bf6484b7b802c00ff94af966a2a79fef1d555167c91b01e3d3a0905af03759354c190d1e884b8de1d71cbc6bc90e13ad97088e894039258f7350e719eb1fe1c44a6e9ae13133346827b267a5fcec8125879369aeead094ece2d831091af6db0574685564c9abf48d58f54e5a49660bbb5a9579843311da6f86b3f7bd981cf4b962cf3c37d428dd8058ed26713f8f28065ebe70be2577bec5d1a28f108a011fab925c28fe468de2e3558853407cda01fca72412f34e4ff0a7b29c9d8f58c3cab6e8b70cb8630036879d5e6b7b4dd81a91e34a16d0aa0d9b7ab8de54d9d350e10c12337e1f462ae1aaa6191b39ab9b5049f96b39eb93ea27c74ac900a6bb52836e05d266f51dc5f7967c02b1e2011c1fec424c3394353920e15ff05b77b2d28ee724508ff06490fb5d2b9683f60d2cebdfa86c4a0f8674352f973d84066932d73babad9f6054d11afa268b02f2fe66fe5c6d6b0ac363016236e4bee752c9051258c237ee7c687a4217a3cdfc1032bfbf45ac0b036101ab7853fe19156e102983372af4f980736a14e056aa6014f63197ab05ca90abf6ce9f7304129b321fb9edc4f699f67257cd004be2e806ad3ba0118ae9d7066b0124e427f04fe6256bedb89497eba5f8c0ef8cc34bdb5fb6f8c7251b62749af591fd02a446ad7aac76de40ede6c641dfd155812df4e8f55cb69e770a524dde9fc0a6e6332a1013f6924c12f133be272571a70ad1f0eaab52e14ff43a1f45e32ab077bffa551d76108b8823e5e19475e28cb31891722b0d52bbd8b809a0518556a6b0e3f667ae586078bf6742a07edc99295d87efbc6e19b3ecbb5c41e5354b8dfd575eee180c84216c9ca9d8d455c97e3baa697cdad38cec42597426a8c0d5fe2cd1f7f1187815e017fa20a6d9dd21c28c5e26fafe3270c4a078b5e2fc88f803acc1540d0073ce8c4dbac8e83d91b3b1fd8439643ab6f70ea1ceb61aa7a17242aec56a13cd39783557fbb6a05ed9abeac93fb9a187fdde2e1ab8cbc360c57ac7fd4eccb3bcf365c0bcb1b2188d86db00de94714497f1d3b3a2430f677b6754cd638b00460817364dd3773f5beaa1cc6b44dee01cfb223d080b64f348e8426eb3b3f328542a8b741c335f822e1ac40531b738beb3af78e08b8e7ebdd9c7b0b03b3424edd354d0f204cb48697a4ae7397d5d01adc69acda12fdcf30005ab12dda61d5e9339940752bf6e6b557332b6243b5894dba8d5bf56f204746340a89817a2841c8f548eea899bed49be11c415e454297baef5a43099c13fd25d6144655a004947fff47db90490b0019a77dc9c414ab3570fa7d3b1ef355184b4e5cdd241dbb862b49f970c8fd8c41f2c8e6a0cc3044b809c197f6697eac949be7a1f468e3b9a0a227791e3d284ef8d667a93dd5dd40e4c9011a7798630286ac3a7b7e0459deb5d32af99f72dc1ba07c379a7037402cfa5c6725fcc0102af2ffbeeddaa894986284efd40fc29e09697142c229b6947f8afcad4ea91ed1a891316238f69373a7dba21b8cc576809d17edd9beaa4c2bf64768f1703f445c8eb2e4ef18acfe8b15febdfc6b7cc409b8131086bb0ad4db79d2ec80b4c6df7d7a4139cd2af88da2190b7c499582ab6ec5a57a224e6deb010076bba4ebabcb573c682aa3b44858e01c88b441cf9d3ae64219d42b0fc8e1976649abc99646bce0332f8692f1394bb3164f7d13cf6adb004e59ca9b478314ff9af27b5f5de0d0584ee0a951dd56f5175552c8be0b41c06ff3b3afc86dd9e2737d0972f1e30341b31300bdc3af29ee4a64e0f40ed15492345387bb47542d9b9b4813c4369d7f54f8ea13f13e34b8a1f50012d9dbfbe3ccdf37acafdaf007043c42009a7c2bec3ee81ba68b2b0774cca68183c38d02f893dc03f6168782e46ac73cae82e887dc9a70efc8bc29783a50d3809c294ea023f1360ef5035f5aea372614d3f0b27f739104559af22865b9f0163b0910a4b1539a16204cb53bfb6253cc4ae865c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3e1fe2bb5390a75e5d61e72c107cab528fc3c29a837d69aab7d200e1dbb5dcd239ff1523fb7389539c84c65aba19260648793bb4f5e29329d2ee8804bc37a3fe6ed35fde9e52ed4840ec7ed105ddb3302a26eb0f53aa151a9491a2dcce0f5d2534a8d56e53787d13dcd36716358b832e296eac07b2c93853afd5af19ae48b24de14860e3e6795909de87869b1a1f6543ac3281a57869ef0185f2f9f392ea74cbfa695cb6cdfd208a68a6318a952201574427d10637518ee3a1d1353cd4d2e4d70fe230e979f14ddda1cf6b43aa4997f416f9aa32d6f4bfebb80e9901d08ba3e58047e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc0082db4a1a2ac01f08c512dc0eb7fb96f15b4992d8e3810701b9ea322d005529a8b54115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac63547c0d5c0f599a639aba69a2f40b9d7c2c291c69c72be356066f86aa8eb022f19207489cedecbf47e2ec29e3595fb5401ce3c3ce31f06883e67fca78184bab480a20464b65797522de18421a7db1a0851a26aae6dd06b7109d442236313c27eecc10f799cd0f6b65f95c4012445497e5ba3cb9f51964a9468940b27bde98b487218fb1c1fc72e9af6b866f430be2a67fa376392b4db2f4dbf32772671b6ae55caa06c474b8211c3b0de27460560910b24dadb14a4b9fcd9e8431b56152c1cc4672d76d64e4a6429462110aa6fe311e18bce8e3d926accf00e440125454abc8db390a1a51b9c7a20ae4efc47ca200dc33f06fb129a94448eb56866185086d67d0520b007f9e6d7038bc53639635aa05d81b956d8b8740a0673bc22042be55a9a84fb9b01ac99b0faad19d7b5b1c5cfeb32f1ad147e3420ad230decc7488fd58b116b89483f2706fc946df47238b7c74490920b56b5accf0661ddb6c672cd0983f1ffd02b314b3d1009e5987932aea5b0a4f06865a38a13340157b235d02b757be090016ac24d8fede23c47282b9de26a957fa97243a15909e00d82a3ff1cba65786c6656337f3f846a74da7da44ec5751a71c6b7023d7cdd0a104cd836acf88cdd0acc526f75cb10f3deb11d5a4856d659e674e8cdc18f34afe9b1818c3e2ed7a6dd9ca99d3d2c50faf167e53e9086d9814b63166c0c9dfc3dd09922a826b415e4c26dca759703429d74b72f2b390a5f1514fc80dfc0225b49532cc7ad173dd5bf7a2d85e9598d0e8d688bbb33e06c12a475cf61269ffdcba1fdc78c14b3372c642e4521428d949823bd4e24e221c0ad862f010aa9a690f9890151a6aa6c1a6f97cd07ac4ade159750ba00160381d855b5d4cfef4981f6f28f42819022f2f6a86e256b4da105ed0b93cb3500f2f9094d9f93cda6207038b08c0e0e0588e842f0799759dc19e8d4581a5915bcf4657517488c16e0c5064c3aee4c224b1762fde33dd3ebceeb58ecf795659f13ef7233d6625fd55a307f395dc06d624aa9b51d34662839009f570fcd5b0b4d1eed275688c6f830547285803f514e913fad7b21ce9236ee5259030313da1a55a0b30cd722765f99e3b14ef98948e7a075dbfc03fe46100e31514aabe47c26c2864b556949b98e9dfe4cf1568275f8d9a4d23022246f978fabdb19a1e9266d40a45fdb02267951735c85327db9f2b437ec63ec204022a96c8cc49f2ccd7218bccd591994d23e4c00c00ec2b78c97edeffa54e19e3d919cd25772e77a76c60bf81ee4fccdfa5d4bc2e6639b7e40883e0bd94184714794e93424f190bed3ec1cb6b49d3d62620390cd407ee8ce3c8625a0cfa2b58717b95165c6c7d4cd30316878a0438d164c43c9214e388b5d72bedd77ad0d6112fefbbd48d2b8fd467571db25ccfa478041ebfa85fa795bf8c1f23746a473507e6990cc1f1896ac7d7d998f47270ccf30619621506661f0ecbadd74ac8885ebdfaad51f69135a81d70381cc5a44cac315bf107aec378c19d16c8d2d546d7460509282c218373db9def3212766d94c3af9246efdd8e852ff9ed63683ab83609df590de3bba3fbc6c19f7bd24cbba8062ce5efbdbcf942735ee7645fa865cfd1fe245120cc69f546b0f194803f50e99d6116af93139b2a1b285ca2a2b9ea03478f5ffcrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootllvm15-15.0.7-150500.4.11.1.src.rpmllvm-doc-providerllvm15-doc    llvm15rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)15.0.73.0.4-14.6.0-14.0-15.2-1llvm-devel-providerllvm-doc-provider9.0.015.0.74.14.3ehy@d @c™@cctcgcZrc< @c,N@c*c@c6@cAcc@b@bbL@b@b@bbm$be;bI@bI@b$@bb b D@b[@aa@aNa@aW@a(@a(@aXIaE````y|@`)__@__S_@__@__"@_*@_ @^^y@^x^h^c^=Q@^;^9\^8 @^1s^.^^^@^!@^,]]@]@]N@]]{@]]c@]K@]b@]b@]]2@]V]3@]@]]@]\ \O\\\M\@\u*@\iL\=@\ BOOL- Let new {llvm,clang}*-doc packages "Conflict" with older devel packages, which they were split from. - Let doc packages conflict with older versions of themselves.- (Build)Require only python3-base instead of full python3 package, the additional modules are not required. Helps shortening the build dependency chain. - Remove python3-* requires from lldb9 subpackage, and add it to the bindings/pretty-printer subpackage (python3-lldb9). - Add python3-base Requires to python3-clang subpackage- Add dont-install-example-analyzer-plugins.patch: Remove example analyzer plugins from install targets instead of deleting them. - Add fix-module-test.patch: fix test instead of deleting it. - Don't build static libc++ (with ThinLTO that's not useful anyway). - Don't build libc++experimental. - Don't package libc++abi.so with libc++-devel, it's already contained in the (required) libc++abi-devel. - Be more specific about files in libc++-devel.- Update to version 9.0.0. * For details, see the release notes: - https://releases.llvm.org/9.0.0/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/tools/clang/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/projects/libcxx/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/tools/lld/docs/ReleaseNotes.html - Change License to "Apache-2.0 WITH LLVM-exception OR NCSA". (https://llvm.org/foundation/relicensing/) - Allow building with ThinLTO and enable it on some architectures. - Disable LTO cache in lto-disable-cache.patch. - Unset MALLOC_CHECK_ for compilation to mitigate lock contention. - No debug info for ppc like for the other 32-bit targets. - Clean up _constraints: same constraints for 32-bit targets. - Don't use BUILD_SHARED_LIBS for Clang anymore, since the newly available libclang-cpp.so should expose the full C++ API. - Link tools with libclang-cpp.so by using CLANG_LINK_CLANG_DYLIB, similar to LLVM_BUILD_LLVM_DYLIB for libLLVM.so. - Remove obsolete n_clang_allow_BUILD_SHARED_LIBRARY.patch. - Add link-clang-shared.patch to link more clang targets with libclang-cpp.so, especially libclang.so. - Add link-clang-tools-extra-shared.patch, link-lldb-shared.patch: link targets in clang-tools-extra and lldb with libclang-cpp.so. - Simplify llvm-do-not-install-static-libraries.patch, also handle Clang, for which we now get static libraries. - Package documentation for llvm and clang separately, recommend them for the main package: they are not required for development, but actually useful for working with the non-devel packages. - Recommend editor plugins not just for llvm-devel. - Recommend libstdc++ for Clang again. - Move diagtool from llvm to clang subpackage. - Properly distinguish between %{_relver} and %{version}. - Drop aarch64-disable-memorytest.patch and reactivate test. - Rebase clang-resourcedirs.patch. - Rebase llvm-normally-versioned-libllvm.patch. - Rebase llvm-remove-clang-only-flags.patch. - Rebase llvm_build_tablegen_component_as_shared_library.patch. - Rebase set-revision.patch. - Increase disk space for build.- Make lldb recommend python3-lldb (it contains pretty printers).- Use python3 shebangs everywhere (boo#1146533). - Drop obsolete opt-viewer-Do-not-require-python-2.patch.- Remove unneccesary dependencies: * groff, bison and flex don't seem to be used. * jsoncpp is no longer used since r338461. * Move some BuildRequires to subpackages. * Don't recommend scan-{build,view} in clang (boo#1145444). * Devel packages are only required in other devel packages, when their headers are included in the installed headers. - Add versions to Provides/Conflicts except for files. - Remove unused (since r268685) CMake flags LLVM_ENABLE_TIMESTAMPS. - Fix installation of opt-viewer files when python3-clang is no longer built.- Update to version 8.0.1. * This release contains bug-fixes for the LLVM 8.0.0 release. This release is API and ABI compatible with 8.0.0. - Don't run LLVM tests on ppc at all because of sporadic hangs.- Increase RAM for armv6/7 to avoid OOM and be scheduled on fast worker- Use the documented LLVM_ENABLE_RTTI to enable RTTI instead of LLVM_REQUIRES_RTTI, which "is an internal flag that individual targets can use to force RTTI". (boo#1139584) - Drop obsolete llvm-build-tests-with-rtti.patch.- Exclude riscv64 for now since it fails to build.- Change some groups: * put libraries in System/Libraries, * devel packages in Development/Libraries, * clang in Development/Languages/C and C++, * the gold plugin in Development/Tools/Building. - Add some URLs, use https:// when possible. - Remove unneeded devel dependencies. - Only suggest a C++ standard library for clang. It's also a C compiler and needs no C++ library when only used as such. - Fix Supplements for editor plugins. - Fix some rpmlint issues: * Reword summary and description for Polly. * Fix /usr/bin/env shebangs. * Remove executable bit where not needed. * Move bash completion to /usr. * Remove hard dependency of libclang8 to libstdc++-devel. - Make rpm macros work properly. - Remove sources from documentation. - Run %fdupes on the right directories. - Enable tests for libcxx. - Reduce memory requirements for compile jobs depending on arch.- Avoid relocation overflow on ppc by not building GPU backends. - Update baselibs.conf.- Disable LTO (boo#1133254).- Fix packaging on ppc: the sanitizers aren't available there, so the directories /usr/lib/clang/*/{lib,share} are missing. - Package LLVMgold even when we don't use gold for linking. It's promised in /usr/lib/cmake/llvm/LLVMExports.cmake. - Unignore test failures on PowerPC64 architectures. The failures in ppc are unrelated to AMDGPU, so we remove that remark. - Fix dependencies: the gold plugin shouldn't depend on llvm-devel. libc++abi-devel should depend on libc++abi. - Fix typo.- Enable libc++ on ARM (Needed for tensorflow)- Update to 8.0.0 * For details, see the release notes: https://llvm.org/releases/8.0.0/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/clang/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/lld/docs/ReleaseNotes.html - Drop llvm-unittests-Don-t-install-TestPlugin.so.patch, llvm-drop-llvm-optional-clang-specific-optimization.patch, llvm-D51108.patch, llvm-Ensure-that-variant-part-discriminator-is-read-by-Me.patch, llvm-test-Fix-Assembler-debug-info.ll.patch * Already included upstream - Add 0001-CMake-Add-install-targets-for-utilities-to-LLVM-expo.patch- Remove -fno-strict-aliasing, which upstream doesn't use any more since r245304 in 2015. (http://reviews.llvm.org/D12036) It's probably also not needed for modern versions of GCC. It was enabled in r105644 because of some bugs there. - Add a clang-%{_sonum} symlink, which is referenced by /usr/lib64/cmake/clang/ClangTargets.cmake (boo#1120098) - Package clang builtin headers with libclang. The library is basically unusable without the builtin headers. Currently consumers of libclang have to require clang as well, although only the headers are needed.- llvm-Ensure-that-variant-part-discriminator-is-read-by-Me.patch, llvm-test-Fix-Assembler-debug-info.ll.patch * Fix crash in rustc (boo#1126907)- Allow use of Gold linker to be conditional - Disable Gold linker on ppc + LLVM currently doesn't build with Gold on ppc- Readd clang-7 and clang++-7 symlinks * Fixes uses of clang-devel (boo#1120098)- Update to llvm 7.0.1 * This release contains bug-fixes for the LLVM 7.0.0 release. This release is API and ABI compatible with 7.0.0.- enable gold unconditionally like with llvm6 and older - reenable openmp support again for aarch64 (like it was already in llvm6)- Use %license macro - Use upstream-recommended %{_rpmconfigdir}/macros.d directory for the rpm macros.- Remove ppc from Exclude field in spec file - Allow use of Gold linker to be conditional - Disable Gold linker on ppc - Add patch to fix SUSE GNU triplet on ppc * clang-fix-powerpc-triplet.patch - Add patch from upstream to fix ABI issue on ppc * llvm-D51108.patch - Limit list of enabled targets on ppc * PowerPC;AMDGPU;BPF;NVPTX - Ignore testsuite failures on ppc- llvm-drop-llvm-optional-clang-specific-optimization.patch * Fix ABI incompatibility when libLLVM (built with clang) is linked to a program build with gcc. (boo#1119092)- opt-viewer-Find-style-css-in-usr-share.patch * Make sure opt-viewer installed in /usr/bin can find resources from /usr/share/opt-viewer. (boo#1112730)- llvm-unittests-Don-t-install-TestPlugin.so.patch * It is only used for testing and is causing failures when processing LLVMExports.cmake.- Update to llvm 7.0.0 * For details, see the release notes: https://llvm.org/releases/7.0.0/docs/ReleaseNotes.html https://llvm.org/releases/7.0.0/tools/clang/docs/ReleaseNotes.html https://llvm.org/releases/7.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html https://llvm.org/releases/7.0.0/tools/lld/docs/ReleaseNotes.html - Remove no longer needed patches: * llvm6-fix-gdb-index-crash.patch * lldb-fix-build-with-python-3.7.patch * lldb-add-pthread-dl-libs.patch * polly-cmake-Trust-pkg-config-in-FindJsoncpp.patch - Add tests-use-python3.patch * Prevents tests from failing because of missing python 2. - Add llvm-better-detect-64bit-atomics-support.patch * Fixes build on i586.- Updated llvm-remove-clang-only-flags.patch - Exclude also "-Werror=unguarded-availability-new" (bsc#1106000)- Update to llvm 6.0.1 * This release contains bug-fixes for the LLVM 6.0.0 release. It is API and ABI compatible with 6.0.0. - Remove no longer needed llvm6-fix-InstCombine.patch - Add lldb-fix-build-with-python-3.7.patch * Fix build with python 3.7- llvm6-fix-gdb-index-crash.patch * From upstream, fix lld --gdb-index crash.- Do not requires gcc6 for older sle versions. * llvm6 is not built on <= 12 SP3 and this was preventing build on 12 SP4.- llvm_build_tablegen_component_as_shared_library.patch * Build TableGen component as its own shared library because it is not included in the libLLVM library and is needed for ldc. (bsc#1086445)- Add patch llvm6-fix-InstCombine.patch to fix InstCombine init * Will be fixed in 6.0.1 release- Do not build stage1 with debug info. It was accidentally added with the use of %optflags. This should fix out of memory errors on 32bit architectures and speed up build everywhere else. (bsc#1092697)- llvm-build-tests-with-rtti.patch * Fixes build failure with gcc 8. (bnc#1087136)- Do not export Polly static libraries which we do not distribute. * Updated llvm-do-not-install-static-libraries.patch - Use external jsoncpp instead of the bundled one. * Added polly-cmake-Trust-pkg-config-in-FindJsoncpp.patch - llvm6-devel must require llvm6-polly-devel * Files in llvm6-devel reference Polly.- Update to llvm 6.0.0 * Added polly * Notable changes: - Retpoline Spectre variant 2 mitigation - GlobalISel by default for AArch64 at -O0 - improved scheduling on several x86 micro-architectures - Clang defaults to -std=gnu++14 instead of -std=gnu++98 - support for some upcoming C++2a features - improved optimizations, new compiler warnings, many bug fixes, and more. - Use alternatives for clang's bash autocomplete to prevent conflicts with other versions.- Remove liblldb5 and lldb5-devel from baselibs.conf. They are only build for x86_64, so no point having them in baselibs.conf.- Use %optflags, except for FORTIFY_SOURCE which is not compatible with compiler-rt. - Exclude static libraries differently. * Drop llvm-split-static-library-exports-into-their-own-export-file.diff * Drop clang-split-static-library-exports-into-their-own-export-file.diff * Update llvm-do-not-install-static-libraries.patch to not use EXCLUDE_FROM_ALL which is not available in cmake 3.5. - This fixes build on SLE12. - Do not force gcc6 on OpenSUSE - fixes build. - Reduce the amount of concurent link jobs by increasing their memory requirement - to reduce stalls in OBS.- Cleanup %ifarch conditions, remove targets unintentionally added to s390/s390x. (bnc#1078436)- Limit the amount of parallel link jobs, but no longer limit compile jobs. This should prevent running out of memory during linking while not longer slowing down compilation. - Remove build dependency on procps- Reduce disk size requirement to 30GB in _constraints. We no longer need that much since we stopped building static libraries.- n_clang_allow_BUILD_SHARED_LIBRARY.patch * Allow buildling clang with BUILD_SHARED_LIBRARY while the rest is built with LLVM_LINK_LLVM_DYLIB. (bnc#1065464) - Remove clang-devel-static.- Place gold plugin to the right directory. (bnc#1073210) * It must be in /usr/lib/bfd-plugins on all architectures. * Remove llvm5-gold from baselibs.conf - nothing needs a 32bit version of it and it would now conflict with the 64bit one. - Reduce _constraints requirements on 32bit architectures. * Since we had to disable debuginfo on them, they require much less.- ignore make check error for PowerPC as bypass https://bugs.llvm.org/show_bug.cgi?id=35871- disable debuginfo build for ARM as well- Delete intermediate files during build to reduce total disk usage (bnc#1074625)- Update to llvm 5.0.1 * This release contains bug-fixes for the LLVM 5.0.0 release. * This release is API and ABI compatible with 5.0.0. - llvm-do-not-install-static-libraries.patch * Updated.- Increase minimum memory and disk sizes required for building in _constraints.- Rename python3-lldb to python3-lldb5 so it can work with llvm meta package.- Rename python packages to follow naming conventions. - Remove unnecessary dependencies on python3. - Make opt-viewer not require python2. * opt-viewer-Do-not-require-python-2.patch- Switch to python3. - Fix %check tests when used with python3. * Define LANG=C.UTF-8 when running the tests. - Add explicit Provides/Conflicts to llvm5-devel, clang5-devel-static and lldb5-devel. * These are required to be validated by obs repo-checker.- Use LLVM_OPTIMIZED_TABLEGEN to speed up build. (bnc#1064786) - Fix files of lldb4 to work correctly with update-alternatives. - Remove Conflicts clang(LLDB) from lldb4-devel - it does not exist. It would be provided automatically, but no such cmake file is installed. - llvm-do-not-install-static-libraries.patch * Do not install static libraries instead of installing them and deleting after. * Reduces disk usage during build. (bnc#1064786) - Do not build unnecessary parts during stage1. * Speeds up build a bit. (bnc#1064786)- Updated baselibs.conf to reference version 5 packages. - Deleted rogue llvm5.spec.r29 file. - Deleted arm_suse_support.diff, llvm-add_a_LLVM_USE_LINKER.patch, libsanitizer.patch. - No longer used, applied already in the source.- llvm-normally-versioned-libllvm.patch * Change libLLVM naming scheme to match our naming guidelines. * The reasons for the original naming scheme are no longer valid, more details in the patch.- Disable all thread related tests in libcxx. Many of them use timeouts to detect failure. They can fail randomly if the machine is under heavy load (happens often in OBS).- Drop llvm5-devel-static. llvm5-devel contains shared library with the same content.- Increase disk space requirement in _constraints to 45GB. Otherwise the build gets stuck in random places. - Skip build of lldb5 python on distributions with swig < 3.0.11- Copy from llvm4. - Update to llvm 5.0.0.- Use LLVM_BUILD_LLVM_DYLIB instead of BUILD_SHARED_LIBS to build single libLLVM library. This is the recommended way. The old way was causing various issues. * llvm-split-static-library-exports-into-their-own-export-file.diff * clang-split-static-library-exports-into-their-own-export-file.diff (bnc#1049703) - Add lld, linker for Clang/LLVM (sr#517692) - Include clang++-MAJOR.MINOR symbolic link (bnc#1012260) - Remove unnecessary dependency on flex and bison. - Make sure all binaries are managed by update-alternatives - Add llvm-add_a_LLVM_USE_LINKER.patch and link using gold to prevent memory exhaustion on some build machines. - Reduce debuginfo on x86 architecture. LLVM libraries are so big that they exhaust all memory on 32 bit machine if linked with full debuginfo. - Speed up build by skipping parts that are not required in stage1. - Build lldb in-tree as one of the llvm tools.- clang-ignore-stack-clash-protector.patch: ignore -fstack-clash-protection for now.- xlocale.patch: don't use obsolete - libsanitizer.patch: fix use of undocumented types- build fixes for armv6 (skip testsuite as it requires 64bit, set the list of targets to include ARM and remove triplet hack)- Include provides and conflics in baselibs.conf for llvm4-devel, clang4-devel, llvm4-LTO-devel, and llvm4-gold.- Update to version 4.0.1 * Minor bugfixes- Use gcc6 only for SLE boo#1041469- Package libLLVMFuzzer- readd arm_suse_support.diff which was accidentally removed in the 4.0.0 update- Enable AMDGPU and NVPTX targets everywhere except for S/390. The AMDGPU target is needed for Mesa Clover (sr#485802).- Use gcc6 on SLE12- Package license & credits- Update to version 4.0.0 * See + http://releases.llvm.org/4.0.0/docs/ReleaseNotes.html and + http://releases.llvm.org/4.0.0/tools/clang/docs/ReleaseNotes.html + http://releases.llvm.org/4.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html - Drop the following patches, fixed upstream: amdgpu_revert_r280589.patch arm_suse_support.diff clang-fix-substitutions-abi_tag.patch clang-incomplete-field-types.patch glibc-2.24-libcxx.patch llvm-install-CheckAtomic.patch revert-cmake-soname.patch- Enable BPF for all arches bsc#1026191- libc++ must depend on libc++abi- Stop using otherproviders() due to an rpm parser bug, use self-conflicts instead as suggested by mls.- Add amdgpu_revert_r280589.patch to fix an amdgpu regression bsc#1021577- Require LLVMgold and libLTO in llvm-devel, otherwise we get in CMake: The imported target "LLVMgold" references the file "/usr/lib64/LLVMgold.so" but this file does not exist. This happens when requiring llvm3_9-devel directly, not llvm-devel.- Update to version 3.9.1 * See: + http://llvm.org/releases/3.9.1/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.1/tools/clang/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.1/tools/clang/tools/extra/docs/ReleaseNotes.html- Update to version 3.9.0 * Clang now supports the G++ abi_tag attribute. * Clang will no longer pass --build-id by default to the linker. * Improved C++1z support in Clang. * Clang now has support for all OpenCL 2.0 features. * Added support for all non-offloading features from OpenMP 4.5, * The static analyzer now checks for incorrect usage of MPI APIs in C and C++. * LLVM no longer does inter-procedural analysis and optimization (except inlining) on functions with comdat linkage. * LLVM now supports the Intel CPUs Skylake Server with AVX512 (-march=skylake-avx512) and Knights Landing (-march=knl). * More at: + http://llvm.org/releases/3.9.0/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.0/tools/clang/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.0/tools/clang/tools/extra/docs/ReleaseNotes.html * Fix the following patches: + arm_suse_support.diff + assume-opensuse.patch + clang-resourcedirs.patch + default-to-i586.patch + glibc-2.23-libcxx.patch + glibc-2.24-libcxx.patch + lldb-add-pthread-dl-libs.patch + lldb-cmake.patch + llvm-fix-find-gcc5-install.patch + llvm-remove-clang-only-flags.patch + revert-cmake-soname.patch + set-revision.patch * Remove upstream-included patch: + llvm-nonvoid-return.patch * Remove patch for removed files: + glibc-2.23-libcxx.patch - Backport upstream patches: * clang-fix-substitutions-abi_tag.patch * clang-incomplete-field-types.patch * llvm-install-CheckAtomic.patch - Add clang%{_sonum}-include-fixer subpackage and associated libfindAllSymbols%{_sonum} and libfindAllSymbols%{_sonum}-devel subpackages. - Add sanstats to llvm binary list.- Change update-alternatives to use %postun instead of %preun, which is now what Factory maintainers are requesting. - Use the minor version to set the update-alternatives priority so the most recent version of the LLVM, Clang, and LLDB are used by default. - Add LLVM rpm macros so downstream packages can have some idea how LLVM was built.- Rename libomp to make it possible to have multiple versions available.- Split the old llvm package into this version-specific package and a wrapper package. - Implement update-alternatives to allow parallel installation of many of the subpackages. - Rename subpackages that can be parallel-installed to a version-specific name based on the associated shared library's current .so number. - Various fixes to support the above changes.- Sort a bit with spec-cleaner - Remove the latest switch for now, things should be either coinstallable or not, we don't need to bother around with compilation like this- Update to llvm 3.8.1 * See http://llvm.org/releases/3.8.1/docs/ReleaseNotes.html and http://llvm.org/releases/3.8.1/tools/docs/ReleaseNotes.html - Use versioned libLLVM (to libLLVM3_8) and libclang (to libclang3_8) - Change versioning of liblldb3_8 to liblldb-3_8 and use a variable to control the name instead of hard-coding it. - Use bcond_with and bcond_without to enable/disable build options instead of hard-coding them. - Put buildrequires as requires in -devel packages to avoid linker errors when building packages against the -devel packages. - Add ffi support (disabled by default). - Add oprofile support (disabled by default). - Add valgrind support (disabled by default). - Link cmake files to the normal cmake file directory to allow autodetection of cmake interfaces. - Remove unused lldb components from main spec file. - Split llvm python bindings into own subpackage. - Split emacs plugin into own subpackage - Move additional vim plugins into vim plugins package - Split libc++, libLTO, LLVMgold, libomp, clang-chekers into own subpackages - Make python-clang, llvm-vim-plugins, and llvm-emacs-plugins noarch since they aren't architecture-specific. - Make packages besides llvm, llvm-clang, and the shared libraries conflict with other versions. This will be important when multiple LLVM versions are supported. - Various spec file cleanups - Rebase patches: * arm_suse_support.diff * assume-opensuse.patch * clang-resourcedirs.patch * default-to-i586.patch * glibc-2.23-libcxx.patch * glibc-2.24-libcxx.patch * lldb-add-pthread-dl-libs.patch * lldb-cmake.patch * llvm-fix-find-gcc5-install.patch * llvm-nonvoid-return.patch * llvm-remove-clang-only-flags.patch * revert-cmake-soname.patch * set-revision.patch- Start conversion to use cmake macros with now introduced compatibility for ninja - Reduce number of threads if we don't have enough memory - Add patch for the nonvoid returns: * llvm-nonvoid-return.patch- for ppc64le set memory to 4GB in _constraints file (failure in Factory:PowerPC)- glibc-2.24-libcxx.patch: fix libcxx testsuite for glibc 2.24- Build LLDB separated from LLVM. - Re-enable python bindings for the LLDB API.- Disable libcxx/lldb/openmp for SLE fate#319582- Update rpmlintrc to whitelist libLTO.so- Re-enable glibc-2.23 patch for Tumbleweed- fix arm_suse_support.diff for armv6hl - adjust compile flags for llvm on armv6hl (fixes Mesa build)- Update llvm-remove-clang-only-flags.patch to remove - Wcovered-switch-default flag for gcc compatibility.- Use gcc for stage1 bootstrap - Add back libstdc++-devel dependency for clang since libc++ is only available for x86-64 atm.- Comment out glibc-2.23-libcxx.patch until glibc 2.23 actually hits the Factory.- Update to llvm 3.8.0 * See http://llvm.org/releases/3.8.0/docs/ReleaseNotes.html and http://llvm.org/releases/3.8.0/tools/clang/docs/ReleaseNotes.html - Fold lldb build into llvm and disable python support - Drop clang-disable-ada-extension.patch, libcxxabi-exceptions.patch and cmake-host-triple.patch - Add revert-cmake-soname.patch to fix soname handling- Add glibc-2.23-libcxx.patch to fix test failures with glibc 2.23- Remove FFI support because its fragile- Enable OpenMP for x86, x86_64, ppc64 and ppc64le- Enable all targets on x86, x86_64- Update to version 3.7.0 * See http://llvm.org/releases/3.7.0/docs/ReleaseNotes.html - Merge aarch64-suse-support.patch into arm_suse_support.diff - Refresh arm_suse_support.diff, llvm-fix-find-gcc5-install.patch - Remove llvm-fix-parsearmarch.patch, upstream.- fix build on s390x (one typo in ifarch and one change in filelist)- Update to version 3.6.1 * No changelog upstream- Add llvm-fix-parsearmarch.patch to fix parsing armv{6,7}hl archs.- Update to version 3.6.0 * See http://llvm.org/releases/3.6.0/docs/ReleaseNotes.html - Add python-xml dependency for regression tests - Removed the following patches, fixed upstream: * arm-remove-xfails.diff * libcxx-libdir.patch * llvm-config-lib64.patch * llvm-fix-intrusiverefcntptr.patch- Add llvm-fix-intrusiverefcntptr.patch to fix build of LLVM tools with GCC 5. - Add llvm-fix-find-gcc5-install.patch to properly find installed GCC 5.- Add a gcc dependency for clang, this is heavyweight but we need libgcc_s which comes with the gcc package (bnc#893359)- Conditionalize libcxx{abi} build on build_libcxx variable - Turn libc++.so into an ldscript so it links to libc++abi automatically.- fix constraints for armv6l/armv7l (there is no 4GB RAM on 32bit)h03-ch2b 1722621913  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~15.0.715.0.7-150500.4.11.1      llvmAMDGPUAMDGPUAsmGFX10.htmlAMDGPUAsmGFX1011.htmlAMDGPUAsmGFX1013.htmlAMDGPUAsmGFX1030.htmlAMDGPUAsmGFX7.htmlAMDGPUAsmGFX8.htmlAMDGPUAsmGFX9.htmlAMDGPUAsmGFX900.htmlAMDGPUAsmGFX904.htmlAMDGPUAsmGFX906.htmlAMDGPUAsmGFX908.htmlAMDGPUAsmGFX90a.htmlAMDGPUAsmGFX940.htmlgfx1011_src.htmlgfx1011_src_1.htmlgfx1011_src_2.htmlgfx1011_src_3.htmlgfx1011_type_deviation.htmlgfx1011_vdst.htmlgfx1011_vsrc.htmlgfx1013_srsrc_5dafbc.htmlgfx1013_srsrc_cf7132.htmlgfx1013_vaddr_49d53a.htmlgfx1013_vaddr_cdc744.htmlgfx1013_vdst_473a69.htmlgfx1013_vdst_f8490d.htmlgfx1030_attr.htmlgfx1030_dst.htmlgfx1030_fx_operand.htmlgfx1030_hwreg.htmlgfx1030_imm16_73139a.htmlgfx1030_imm16_a04fb3.htmlgfx1030_label.htmlgfx1030_m_254bcb.htmlgfx1030_m_f5d306.htmlgfx1030_msg.htmlgfx1030_opt_0d447d.htmlgfx1030_opt_847aed.htmlgfx1030_param.htmlgfx1030_saddr_9cd3cf.htmlgfx1030_saddr_beaa25.htmlgfx1030_saddr_d75725.htmlgfx1030_sbase_010ce0.htmlgfx1030_sbase_020892.htmlgfx1030_sdst_0804b1.htmlgfx1030_sdst_362c37.htmlgfx1030_sdst_386c33.htmlgfx1030_sdst_3bc700.htmlgfx1030_sdst_3cd7ad.htmlgfx1030_sdst_54e16e.htmlgfx1030_sdst_8078f5.htmlgfx1030_sdst_ea3f10.htmlgfx1030_simm32_6f0844.htmlgfx1030_simm32_a3e80c.htmlgfx1030_simm32_be0c1c.htmlgfx1030_soffset_73dae7.htmlgfx1030_soffset_d01a5c.htmlgfx1030_soffset_fef808.htmlgfx1030_src_1facfe.htmlgfx1030_src_207976.htmlgfx1030_src_364d7c.htmlgfx1030_src_516946.htmlgfx1030_src_5bb6f2.htmlgfx1030_src_ae1543.htmlgfx1030_src_b9c62f.htmlgfx1030_src_edf2a5.htmlgfx1030_srsrc_5dafbc.htmlgfx1030_srsrc_cf7132.htmlgfx1030_srsrc_e73d16.htmlgfx1030_ssamp.htmlgfx1030_ssrc_2a042f.htmlgfx1030_ssrc_361664.htmlgfx1030_ssrc_460c63.htmlgfx1030_ssrc_6fbc49.htmlgfx1030_ssrc_7a07c6.htmlgfx1030_ssrc_7da351.htmlgfx1030_ssrc_81ba27.htmlgfx1030_ssrc_8dd4e0.htmlgfx1030_ssrc_8e54e0.htmlgfx1030_tgt.htmlgfx1030_type_deviation.htmlgfx1030_vaddr_373b95.htmlgfx1030_vaddr_49d53a.htmlgfx1030_vaddr_9aeece.htmlgfx1030_vaddr_9f7133.htmlgfx1030_vaddr_b73dc0.htmlgfx1030_vaddr_cdc744.htmlgfx1030_vaddr_f20ee4.htmlgfx1030_vcc.htmlgfx1030_vdata0_6802ce.htmlgfx1030_vdata0_fd235e.htmlgfx1030_vdata1_6802ce.htmlgfx1030_vdata1_fd235e.htmlgfx1030_vdata_0aba12.htmlgfx1030_vdata_15d255.htmlgfx1030_vdata_16d321.htmlgfx1030_vdata_35851e.htmlgfx1030_vdata_56f215.htmlgfx1030_vdata_6802ce.htmlgfx1030_vdata_890652.htmlgfx1030_vdata_a9ff5a.htmlgfx1030_vdata_c08393.htmlgfx1030_vdata_e016a1.htmlgfx1030_vdata_fd235e.htmlgfx1030_vdst_2ea017.htmlgfx1030_vdst_322561.htmlgfx1030_vdst_3d7dcf.htmlgfx1030_vdst_463513.htmlgfx1030_vdst_473a69.htmlgfx1030_vdst_48e42f.htmlgfx1030_vdst_69a144.htmlgfx1030_vdst_709347.htmlgfx1030_vdst_81a6ed.htmlgfx1030_vdst_89680f.htmlgfx1030_vdst_bdb32f.htmlgfx1030_vdst_d0dc43.htmlgfx1030_vdst_d71f1c.htmlgfx1030_vdst_dd8a32.htmlgfx1030_vdst_f8490d.htmlgfx1030_vsrc_533a4e.htmlgfx1030_vsrc_6802ce.htmlgfx1030_vsrc_e016a1.htmlgfx1030_vsrc_fd235e.htmlgfx1030_waitcnt.htmlgfx1030_waitcnt_depctr.htmlgfx10_attr.htmlgfx10_dst.htmlgfx10_fx_operand.htmlgfx10_hwreg.htmlgfx10_imm16_73139a.htmlgfx10_imm16_a04fb3.htmlgfx10_label.htmlgfx10_m_254bcb.htmlgfx10_m_f5d306.htmlgfx10_msg.htmlgfx10_opt_0d447d.htmlgfx10_opt_847aed.htmlgfx10_param.htmlgfx10_probe.htmlgfx10_saddr_beaa25.htmlgfx10_saddr_da2a8a.htmlgfx10_sbase_010ce0.htmlgfx10_sbase_020892.htmlgfx10_sbase_b2d796.htmlgfx10_sdata_3d2ab7.htmlgfx10_sdata_6fbc49.htmlgfx10_sdata_7cbd60.htmlgfx10_sdata_7e874d.htmlgfx10_sdata_81ba27.htmlgfx10_sdata_c6aec1.htmlgfx10_sdst_0804b1.htmlgfx10_sdst_2e4c2a.htmlgfx10_sdst_362c37.htmlgfx10_sdst_3759f6.htmlgfx10_sdst_386c33.htmlgfx10_sdst_3bc700.htmlgfx10_sdst_54e16e.htmlgfx10_sdst_8078f5.htmlgfx10_sdst_ea3f10.htmlgfx10_simm32_6f0844.htmlgfx10_simm32_a3e80c.htmlgfx10_simm32_be0c1c.htmlgfx10_soffset_73dae7.htmlgfx10_soffset_b556e6.htmlgfx10_soffset_d01a5c.htmlgfx10_src_37d670.htmlgfx10_src_516946.htmlgfx10_src_823582.htmlgfx10_src_c27036.htmlgfx10_src_cf1cda.htmlgfx10_src_d5cd94.htmlgfx10_src_e0345d.htmlgfx10_src_e9e6db.htmlgfx10_srsrc_cf7132.htmlgfx10_srsrc_e73d16.htmlgfx10_ssamp.htmlgfx10_ssrc_054e2a.htmlgfx10_ssrc_2a042f.htmlgfx10_ssrc_3ec588.htmlgfx10_ssrc_460c63.htmlgfx10_ssrc_48e8e7.htmlgfx10_ssrc_6fbc49.htmlgfx10_ssrc_7da351.htmlgfx10_ssrc_81ba27.htmlgfx10_ssrc_9a4448.htmlgfx10_tgt.htmlgfx10_type_deviation.htmlgfx10_vaddr_76b997.htmlgfx10_vaddr_9aeece.htmlgfx10_vaddr_9f7133.htmlgfx10_vaddr_b73dc0.htmlgfx10_vaddr_cdc744.htmlgfx10_vaddr_f20ee4.htmlgfx10_vcc.htmlgfx10_vdata0_6802ce.htmlgfx10_vdata0_fd235e.htmlgfx10_vdata1_6802ce.htmlgfx10_vdata1_fd235e.htmlgfx10_vdata_0aba12.htmlgfx10_vdata_15d255.htmlgfx10_vdata_16d321.htmlgfx10_vdata_35851e.htmlgfx10_vdata_56f215.htmlgfx10_vdata_6802ce.htmlgfx10_vdata_890652.htmlgfx10_vdata_a9ff5a.htmlgfx10_vdata_c08393.htmlgfx10_vdata_e016a1.htmlgfx10_vdata_fd235e.htmlgfx10_vdst_2ea017.htmlgfx10_vdst_322561.htmlgfx10_vdst_3d7dcf.htmlgfx10_vdst_463513.htmlgfx10_vdst_473a69.htmlgfx10_vdst_48e42f.htmlgfx10_vdst_4d2300.htmlgfx10_vdst_69a144.htmlgfx10_vdst_709347.htmlgfx10_vdst_81a6ed.htmlgfx10_vdst_89680f.htmlgfx10_vdst_bdb32f.htmlgfx10_vdst_d0dc43.htmlgfx10_vdst_d71f1c.htmlgfx10_vdst_dd8a32.htmlgfx10_vsrc_533a4e.htmlgfx10_vsrc_6802ce.htmlgfx10_vsrc_e016a1.htmlgfx10_vsrc_fd235e.htmlgfx10_waitcnt.htmlgfx10_waitcnt_depctr.htmlgfx7_attr.htmlgfx7_dst.htmlgfx7_hwreg.htmlgfx7_imm16_73139a.htmlgfx7_imm16_a04fb3.htmlgfx7_label.htmlgfx7_m.htmlgfx7_msg.htmlgfx7_opt_0d447d.htmlgfx7_opt_847aed.htmlgfx7_param.htmlgfx7_sbase_010ce0.htmlgfx7_sbase_382fdf.htmlgfx7_sdst_0804b1.htmlgfx7_sdst_2a1d2e.htmlgfx7_sdst_313759.htmlgfx7_sdst_362c37.htmlgfx7_sdst_61ce79.htmlgfx7_sdst_6cc8e9.htmlgfx7_sdst_9172f3.htmlgfx7_sdst_e3bd3f.htmlgfx7_simm32_6f0844.htmlgfx7_simm32_a3e80c.htmlgfx7_soffset_1bad09.htmlgfx7_soffset_48c95e.htmlgfx7_src_1f730e.htmlgfx7_src_3865f6.htmlgfx7_src_3e3a6b.htmlgfx7_src_516946.htmlgfx7_src_5599b0.htmlgfx7_src_5c4f8d.htmlgfx7_src_8e54a0.htmlgfx7_src_935f3b.htmlgfx7_src_d48e27.htmlgfx7_src_d56c56.htmlgfx7_src_fa88a6.htmlgfx7_srsrc_cf7132.htmlgfx7_srsrc_e73d16.htmlgfx7_ssamp.htmlgfx7_ssrc_19a078.htmlgfx7_ssrc_2e8313.htmlgfx7_ssrc_6df989.htmlgfx7_ssrc_a778e3.htmlgfx7_ssrc_b0d552.htmlgfx7_ssrc_bdc010.htmlgfx7_ssrc_c5f5de.htmlgfx7_ssrc_d8712d.htmlgfx7_ssrc_dcdeb4.htmlgfx7_ssrc_e471f7.htmlgfx7_ssrc_fdbed3.htmlgfx7_tgt.htmlgfx7_type_deviation.htmlgfx7_vaddr_9f7133.htmlgfx7_vaddr_da1f09.htmlgfx7_vaddr_e9b690.htmlgfx7_vaddr_f20ee4.htmlgfx7_vcc.htmlgfx7_vdata0_6802ce.htmlgfx7_vdata0_fd235e.htmlgfx7_vdata1_6802ce.htmlgfx7_vdata1_fd235e.htmlgfx7_vdata_325b78.htmlgfx7_vdata_4d8ecf.htmlgfx7_vdata_56f215.htmlgfx7_vdata_6802ce.htmlgfx7_vdata_87fb90.htmlgfx7_vdata_b2a787.htmlgfx7_vdata_c08393.htmlgfx7_vdata_c61803.htmlgfx7_vdata_e016a1.htmlgfx7_vdata_fd235e.htmlgfx7_vdst_0c25a6.htmlgfx7_vdst_3d7dcf.htmlgfx7_vdst_463513.htmlgfx7_vdst_48e42f.htmlgfx7_vdst_5d50a1.htmlgfx7_vdst_69a144.htmlgfx7_vdst_875645.htmlgfx7_vdst_89680f.htmlgfx7_vdst_a49b76.htmlgfx7_vdst_bdb32f.htmlgfx7_vdst_d0dc43.htmlgfx7_vdst_d7c57e.htmlgfx7_vdst_f47754.htmlgfx7_vsrc_533a4e.htmlgfx7_vsrc_6802ce.htmlgfx7_vsrc_e016a1.htmlgfx7_vsrc_fd235e.htmlgfx7_waitcnt.htmlgfx8_attr.htmlgfx8_dst.htmlgfx8_hwreg.htmlgfx8_imask.htmlgfx8_imm16_73139a.htmlgfx8_imm16_a04fb3.htmlgfx8_label.htmlgfx8_m_254bcb.htmlgfx8_m_f5d306.htmlgfx8_msg.htmlgfx8_opt_0d447d.htmlgfx8_opt_847aed.htmlgfx8_param.htmlgfx8_probe.htmlgfx8_sbase_010ce0.htmlgfx8_sbase_589eed.htmlgfx8_sdata_7cbd60.htmlgfx8_sdata_c8788e.htmlgfx8_sdata_e587f5.htmlgfx8_sdst_0804b1.htmlgfx8_sdst_1cf20d.htmlgfx8_sdst_313759.htmlgfx8_sdst_362c37.htmlgfx8_sdst_61db0e.htmlgfx8_sdst_6eddac.htmlgfx8_sdst_78579b.htmlgfx8_sdst_8d900a.htmlgfx8_simm32_6f0844.htmlgfx8_simm32_a3e80c.htmlgfx8_simm32_be0c1c.htmlgfx8_soffset_499d5b.htmlgfx8_soffset_abb420.htmlgfx8_soffset_ac5750.htmlgfx8_src_021c9b.htmlgfx8_src_2dcf49.htmlgfx8_src_39a989.htmlgfx8_src_516946.htmlgfx8_src_67227c.htmlgfx8_src_87dc5c.htmlgfx8_src_8a6ea8.htmlgfx8_src_a13aeb.htmlgfx8_src_b38805.htmlgfx8_src_d9175b.htmlgfx8_src_df6b53.htmlgfx8_srsrc_cf7132.htmlgfx8_srsrc_e73d16.htmlgfx8_ssamp.htmlgfx8_ssrc_0eec95.htmlgfx8_ssrc_133cbc.htmlgfx8_ssrc_6706dc.htmlgfx8_ssrc_a2142e.htmlgfx8_ssrc_c8788e.htmlgfx8_ssrc_dcd0d4.htmlgfx8_ssrc_e587f5.htmlgfx8_ssrc_f308b1.htmlgfx8_ssrc_f48190.htmlgfx8_tgt.htmlgfx8_type_deviation.htmlgfx8_vaddr_9f7133.htmlgfx8_vaddr_b73dc0.htmlgfx8_vaddr_e9b690.htmlgfx8_vaddr_f20ee4.htmlgfx8_vcc.htmlgfx8_vdata0_6802ce.htmlgfx8_vdata0_fd235e.htmlgfx8_vdata1_6802ce.htmlgfx8_vdata1_fd235e.htmlgfx8_vdata_325b78.htmlgfx8_vdata_4d8ecf.htmlgfx8_vdata_4f639e.htmlgfx8_vdata_56f215.htmlgfx8_vdata_6802ce.htmlgfx8_vdata_87fb90.htmlgfx8_vdata_886702.htmlgfx8_vdata_a9eee3.htmlgfx8_vdata_aeb804.htmlgfx8_vdata_b2a787.htmlgfx8_vdata_c08393.htmlgfx8_vdata_c61803.htmlgfx8_vdata_e016a1.htmlgfx8_vdata_f2bf57.htmlgfx8_vdata_fd235e.htmlgfx8_vdst_0b9599.htmlgfx8_vdst_3c54c3.htmlgfx8_vdst_3c6fb6.htmlgfx8_vdst_3d7dcf.htmlgfx8_vdst_463513.htmlgfx8_vdst_48e42f.htmlgfx8_vdst_5d50a1.htmlgfx8_vdst_69a144.htmlgfx8_vdst_7eb33e.htmlgfx8_vdst_875645.htmlgfx8_vdst_89680f.htmlgfx8_vdst_a49b76.htmlgfx8_vdst_bdb32f.htmlgfx8_vdst_d0dc43.htmlgfx8_vdst_d7c57e.htmlgfx8_vdst_d85497.htmlgfx8_vdst_e0515f.htmlgfx8_vdst_f47754.htmlgfx8_vsrc_533a4e.htmlgfx8_vsrc_6802ce.htmlgfx8_vsrc_e016a1.htmlgfx8_vsrc_fd235e.htmlgfx8_waitcnt.htmlgfx900_fx_operand.htmlgfx900_m.htmlgfx900_src.htmlgfx900_src_1.htmlgfx900_vdst.htmlgfx904_fx_operand.htmlgfx904_m.htmlgfx904_src.htmlgfx904_src_1.htmlgfx904_vdst.htmlgfx906_fx_operand.htmlgfx906_m.htmlgfx906_m_1.htmlgfx906_src.htmlgfx906_src_1.htmlgfx906_src_2.htmlgfx906_src_3.htmlgfx906_src_4.htmlgfx906_type_deviation.htmlgfx906_vdst.htmlgfx906_vsrc.htmlgfx908_fx_operand.htmlgfx908_m_254bcb.htmlgfx908_m_f5d306.htmlgfx908_saddr.htmlgfx908_soffset.htmlgfx908_src_4e78e6.htmlgfx908_src_58d119.htmlgfx908_src_73ab34.htmlgfx908_src_955b45.htmlgfx908_src_d578c4.htmlgfx908_src_d95796.htmlgfx908_srsrc.htmlgfx908_type_deviation.htmlgfx908_vaddr_0212e3.htmlgfx908_vaddr_b73dc0.htmlgfx908_vdata_6802ce.htmlgfx908_vdata_fe1edf.htmlgfx908_vdst_0c4ef8.htmlgfx908_vdst_2c8d1e.htmlgfx908_vdst_78dd0a.htmlgfx908_vdst_89680f.htmlgfx908_vdst_bcee7a.htmlgfx908_vsrc_036abe.htmlgfx908_vsrc_1027ca.htmlgfx908_vsrc_2d4632.htmlgfx908_vsrc_6802ce.htmlgfx908_vsrc_9ad749.htmlgfx908_vsrc_be4895.htmlgfx908_vsrc_f3d248.htmlgfx90a_dst.htmlgfx90a_fx_operand.htmlgfx90a_hwreg.htmlgfx90a_imask.htmlgfx90a_imm16_73139a.htmlgfx90a_imm16_a04fb3.htmlgfx90a_label.htmlgfx90a_m_254bcb.htmlgfx90a_m_f5d306.htmlgfx90a_msg.htmlgfx90a_opt_0d447d.htmlgfx90a_opt_847aed.htmlgfx90a_probe.htmlgfx90a_saddr_6060e5.htmlgfx90a_saddr_a37373.htmlgfx90a_sbase_010ce0.htmlgfx90a_sbase_044055.htmlgfx90a_sbase_0cd545.htmlgfx90a_sdata_595c25.htmlgfx90a_sdata_7cbd60.htmlgfx90a_sdata_aefe00.htmlgfx90a_sdata_c6aec1.htmlgfx90a_sdata_e9f591.htmlgfx90a_sdata_eb6f2a.htmlgfx90a_sdst_06b266.htmlgfx90a_sdst_0804b1.htmlgfx90a_sdst_362c37.htmlgfx90a_sdst_3bc700.htmlgfx90a_sdst_59204c.htmlgfx90a_sdst_718cc4.htmlgfx90a_sdst_94342d.htmlgfx90a_sdst_a319e6.htmlgfx90a_simm32_6f0844.htmlgfx90a_simm32_a3e80c.htmlgfx90a_simm32_be0c1c.htmlgfx90a_soffset_4318ca.htmlgfx90a_soffset_8a17c8.htmlgfx90a_soffset_ba92ce.htmlgfx90a_src_4de5c6.htmlgfx90a_src_56ed80.htmlgfx90a_src_64ea89.htmlgfx90a_src_6cfc4e.htmlgfx90a_src_a578ba.htmlgfx90a_src_af08be.htmlgfx90a_src_d578c4.htmlgfx90a_src_d95796.htmlgfx90a_src_e1561c.htmlgfx90a_src_e5cc81.htmlgfx90a_src_f73668.htmlgfx90a_srsrc_79ffcd.htmlgfx90a_srsrc_e73d16.htmlgfx90a_ssamp.htmlgfx90a_ssrc_4db4a9.htmlgfx90a_ssrc_57838b.htmlgfx90a_ssrc_595c25.htmlgfx90a_ssrc_65f041.htmlgfx90a_ssrc_aee59c.htmlgfx90a_ssrc_c31902.htmlgfx90a_ssrc_c5d631.htmlgfx90a_ssrc_c8a322.htmlgfx90a_ssrc_e9f591.htmlgfx90a_type_deviation.htmlgfx90a_vaddr_0212e3.htmlgfx90a_vaddr_5d0b42.htmlgfx90a_vaddr_76b997.htmlgfx90a_vaddr_9f7133.htmlgfx90a_vaddr_b73dc0.htmlgfx90a_vaddr_f20ee4.htmlgfx90a_vcc.htmlgfx90a_vdata0_9ad749.htmlgfx90a_vdata0_be4895.htmlgfx90a_vdata1_9ad749.htmlgfx90a_vdata1_be4895.htmlgfx90a_vdata_2a60db.htmlgfx90a_vdata_2d0375.htmlgfx90a_vdata_848ff7.htmlgfx90a_vdata_8e9b87.htmlgfx90a_vdata_929b59.htmlgfx90a_vdata_9ad749.htmlgfx90a_vdata_a5f23e.htmlgfx90a_vdata_af2725.htmlgfx90a_vdata_be4895.htmlgfx90a_vdata_ca6e5f.htmlgfx90a_vdata_cfb402.htmlgfx90a_vdst_0f48d1.htmlgfx90a_vdst_180bef.htmlgfx90a_vdst_260aca.htmlgfx90a_vdst_5258b4.htmlgfx90a_vdst_69a144.htmlgfx90a_vdst_78dd0a.htmlgfx90a_vdst_7c9848.htmlgfx90a_vdst_89680f.htmlgfx90a_vdst_8c77d4.htmlgfx90a_vdst_92bb33.htmlgfx90a_vdst_a32035.htmlgfx90a_vdst_bdb32f.htmlgfx90a_vdst_c8d317.htmlgfx90a_vdst_c8ee02.htmlgfx90a_vdst_d0c0cb.htmlgfx90a_vdst_d6f4bd.htmlgfx90a_vdst_d8236e.htmlgfx90a_vdst_e2898f.htmlgfx90a_vdst_ef6c94.htmlgfx90a_vdst_f47b9b.htmlgfx90a_vdst_fa7dbd.htmlgfx90a_vsrc_1027ca.htmlgfx90a_vsrc_6802ce.htmlgfx90a_vsrc_9ad749.htmlgfx90a_vsrc_be4895.htmlgfx90a_vsrc_e016a1.htmlgfx90a_vsrc_fd235e.htmlgfx90a_waitcnt.htmlgfx940_dst_4f3f9a.htmlgfx940_dst_95761f.htmlgfx940_fx_operand.htmlgfx940_hwreg.htmlgfx940_imask.htmlgfx940_imm16_73139a.htmlgfx940_imm16_a04fb3.htmlgfx940_label.htmlgfx940_m_254bcb.htmlgfx940_m_f5d306.htmlgfx940_msg.htmlgfx940_opt_0d447d.htmlgfx940_opt_7c211e.htmlgfx940_probe.htmlgfx940_saddr_22dbc1.htmlgfx940_saddr_a37373.htmlgfx940_sbase_010ce0.htmlgfx940_sbase_044055.htmlgfx940_sbase_0cd545.htmlgfx940_sdata_595c25.htmlgfx940_sdata_7cbd60.htmlgfx940_sdata_aefe00.htmlgfx940_sdata_c6aec1.htmlgfx940_sdata_e9f591.htmlgfx940_sdata_eb6f2a.htmlgfx940_sdst_06b266.htmlgfx940_sdst_0804b1.htmlgfx940_sdst_362c37.htmlgfx940_sdst_3bc700.htmlgfx940_sdst_59204c.htmlgfx940_sdst_718cc4.htmlgfx940_sdst_94342d.htmlgfx940_sdst_a319e6.htmlgfx940_simm32_6f0844.htmlgfx940_simm32_a3e80c.htmlgfx940_simm32_be0c1c.htmlgfx940_soffset_4318ca.htmlgfx940_soffset_8a17c8.htmlgfx940_soffset_ba92ce.htmlgfx940_src_4de5c6.htmlgfx940_src_56ed80.htmlgfx940_src_64ea89.htmlgfx940_src_6cfc4e.htmlgfx940_src_a578ba.htmlgfx940_src_af08be.htmlgfx940_src_d578c4.htmlgfx940_src_d95796.htmlgfx940_src_e1561c.htmlgfx940_src_e5cc81.htmlgfx940_src_f73668.htmlgfx940_srsrc.htmlgfx940_ssrc_4db4a9.htmlgfx940_ssrc_57838b.htmlgfx940_ssrc_595c25.htmlgfx940_ssrc_65f041.htmlgfx940_ssrc_aee59c.htmlgfx940_ssrc_c31902.htmlgfx940_ssrc_c5d631.htmlgfx940_ssrc_c8a322.htmlgfx940_ssrc_e9f591.htmlgfx940_type_deviation.htmlgfx940_vaddr_0212e3.htmlgfx940_vaddr_6ab80d.htmlgfx940_vaddr_9f7133.htmlgfx940_vaddr_b73dc0.htmlgfx940_vaddr_f20ee4.htmlgfx940_vcc.htmlgfx940_vdata0_9ad749.htmlgfx940_vdata0_be4895.htmlgfx940_vdata1_9ad749.htmlgfx940_vdata1_be4895.htmlgfx940_vdata_24882b.htmlgfx940_vdata_5eef12.htmlgfx940_vdata_848ff7.htmlgfx940_vdata_9ad749.htmlgfx940_vdata_be4895.htmlgfx940_vdata_c8a58b.htmlgfx940_vdata_cfb402.htmlgfx940_vdst_0f48d1.htmlgfx940_vdst_180bef.htmlgfx940_vdst_260aca.htmlgfx940_vdst_5258b4.htmlgfx940_vdst_56baf6.htmlgfx940_vdst_69a144.htmlgfx940_vdst_78dd0a.htmlgfx940_vdst_89680f.htmlgfx940_vdst_8c77d4.htmlgfx940_vdst_a32035.htmlgfx940_vdst_bce42a.htmlgfx940_vdst_bdb32f.htmlgfx940_vdst_c8d317.htmlgfx940_vdst_d0c0cb.htmlgfx940_vdst_d6f4bd.htmlgfx940_vdst_d8236e.htmlgfx940_vdst_e2898f.htmlgfx940_vdst_fa7dbd.htmlgfx940_vsrc_1027ca.htmlgfx940_vsrc_6802ce.htmlgfx940_vsrc_848ff7.htmlgfx940_vsrc_9ad749.htmlgfx940_vsrc_be4895.htmlgfx940_vsrc_e016a1.htmlgfx940_vsrc_fd235e.htmlgfx940_waitcnt.htmlgfx9_attr.htmlgfx9_dst.htmlgfx9_hwreg.htmlgfx9_imask.htmlgfx9_imm16_73139a.htmlgfx9_imm16_a04fb3.htmlgfx9_label.htmlgfx9_m_254bcb.htmlgfx9_m_f5d306.htmlgfx9_msg.htmlgfx9_opt_0d447d.htmlgfx9_opt_847aed.htmlgfx9_param.htmlgfx9_probe.htmlgfx9_saddr_6060e5.htmlgfx9_saddr_a37373.htmlgfx9_sbase_010ce0.htmlgfx9_sbase_044055.htmlgfx9_sbase_0cd545.htmlgfx9_sdata_595c25.htmlgfx9_sdata_7cbd60.htmlgfx9_sdata_aefe00.htmlgfx9_sdata_c6aec1.htmlgfx9_sdata_e9f591.htmlgfx9_sdata_eb6f2a.htmlgfx9_sdst_06b266.htmlgfx9_sdst_0804b1.htmlgfx9_sdst_362c37.htmlgfx9_sdst_3bc700.htmlgfx9_sdst_59204c.htmlgfx9_sdst_718cc4.htmlgfx9_sdst_94342d.htmlgfx9_sdst_a319e6.htmlgfx9_simm32_6f0844.htmlgfx9_simm32_a3e80c.htmlgfx9_simm32_be0c1c.htmlgfx9_soffset_4318ca.htmlgfx9_soffset_8a17c8.htmlgfx9_soffset_ba92ce.htmlgfx9_src_089570.htmlgfx9_src_4de5c6.htmlgfx9_src_4e78e6.htmlgfx9_src_516946.htmlgfx9_src_56ed80.htmlgfx9_src_73ab34.htmlgfx9_src_955b45.htmlgfx9_src_d578c4.htmlgfx9_src_d95796.htmlgfx9_src_e1561c.htmlgfx9_src_f73668.htmlgfx9_srsrc_79ffcd.htmlgfx9_srsrc_e73d16.htmlgfx9_ssamp.htmlgfx9_ssrc_4db4a9.htmlgfx9_ssrc_57838b.htmlgfx9_ssrc_595c25.htmlgfx9_ssrc_65f041.htmlgfx9_ssrc_aee59c.htmlgfx9_ssrc_c31902.htmlgfx9_ssrc_c5d631.htmlgfx9_ssrc_c8a322.htmlgfx9_ssrc_e9f591.htmlgfx9_tgt.htmlgfx9_type_deviation.htmlgfx9_vaddr_0212e3.htmlgfx9_vaddr_5d0b42.htmlgfx9_vaddr_76b997.htmlgfx9_vaddr_9f7133.htmlgfx9_vaddr_b73dc0.htmlgfx9_vaddr_f20ee4.htmlgfx9_vcc.htmlgfx9_vdata0_6802ce.htmlgfx9_vdata0_fd235e.htmlgfx9_vdata1_6802ce.htmlgfx9_vdata1_fd235e.htmlgfx9_vdata_0aba12.htmlgfx9_vdata_15d255.htmlgfx9_vdata_16d321.htmlgfx9_vdata_35851e.htmlgfx9_vdata_56f215.htmlgfx9_vdata_6802ce.htmlgfx9_vdata_890652.htmlgfx9_vdata_a9ff5a.htmlgfx9_vdata_c08393.htmlgfx9_vdata_e016a1.htmlgfx9_vdata_fd235e.htmlgfx9_vdst_2ea017.htmlgfx9_vdst_322561.htmlgfx9_vdst_3d7dcf.htmlgfx9_vdst_463513.htmlgfx9_vdst_473a69.htmlgfx9_vdst_48e42f.htmlgfx9_vdst_4d2300.htmlgfx9_vdst_69a144.htmlgfx9_vdst_709347.htmlgfx9_vdst_81a6ed.htmlgfx9_vdst_89680f.htmlgfx9_vdst_bdb32f.htmlgfx9_vdst_d0dc43.htmlgfx9_vdst_d71f1c.htmlgfx9_vdst_dd8a32.htmlgfx9_vsrc_533a4e.htmlgfx9_vsrc_6802ce.htmlgfx9_vsrc_e016a1.htmlgfx9_vsrc_fd235e.htmlgfx9_waitcnt.htmlAMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStackAMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack.htmlAMDGPUDwarfExtensionsForHeterogeneousDebugging.htmlAMDGPUInstructionNotation.htmlAMDGPUInstructionSyntax.htmlAMDGPUModifierSyntax.htmlAMDGPUOperandSyntax.htmlAMDGPUUsage.htmlAddingConstrainedIntrinsics.htmlAdvancedBuilds.htmlAliasAnalysis.htmlAtomics.htmlBenchmarking.htmlBigEndianNEON.htmlBitCodeFormat.htmlBlockFrequencyTerminology.htmlBranchWeightMetadata.htmlBugLifeCycle.htmlBugpoint.htmlBugpointRedesign.htmlBuildingADistribution.htmlCFIVerify.htmlCMake.htmlCMakePrimer.htmlCodeGenerator.htmlCodeOfConduct.htmlCodeReview.htmlCodingStandards.htmlCommandGuideFileCheck.htmlbugpoint.htmlclang-tblgen.htmldsymutil.htmlindex.htmllit.htmlllc.htmllldb-tblgen.htmllli.htmlllvm-addr2line.htmlllvm-ar.htmlllvm-as.htmlllvm-bcanalyzer.htmlllvm-config.htmlllvm-cov.htmlllvm-cxxfilt.htmlllvm-cxxmap.htmlllvm-diff.htmlllvm-dis.htmlllvm-dwarfdump.htmlllvm-dwarfutil.htmlllvm-exegesis.htmlllvm-extract.htmlllvm-ifs.htmlllvm-install-name-tool.htmlllvm-lib.htmlllvm-libtool-darwin.htmlllvm-link.htmlllvm-lipo.htmlllvm-locstats.htmlllvm-mca.htmlllvm-nm.htmlllvm-objcopy.htmlllvm-objdump.htmlllvm-otool.htmlllvm-pdbutil.htmlllvm-profdata.htmlllvm-profgen.htmlllvm-ranlib.htmlllvm-readelf.htmlllvm-readobj.htmlllvm-remark-size-diff.htmlllvm-size.htmlllvm-stress.htmlllvm-strings.htmlllvm-strip.htmlllvm-symbolizer.htmlllvm-tblgen.htmlllvm-tli-checker.htmlmlir-tblgen.htmlopt.htmltblgen.htmlCommandLine.htmlCompileCudaWithLLVM.htmlCompilerWriterInfo.htmlContributing.htmlCoroutines.htmlCoverageMappingFormat.htmlCycleTerminology.htmlDebuggingJITedCode.htmlDependenceGraphsindex.htmlDeveloperPolicy.htmlDirectXUsage.htmlDiscourseMigrationGuide.htmlDocker.htmlExceptionHandling.htmlExtendingLLVM.htmlExtensions.htmlFAQ.htmlFaultMaps.htmlFrontendPerformanceTips.htmlFuzzingLLVM.htmlGarbageCollection.htmlGetElementPtr.htmlGettingInvolved.htmlGettingStarted.htmlGettingStartedTutorials.htmlGettingStartedVS.htmlGitBisecting.htmlGitHub.htmlGitRepositoryPolicy.htmlGlobalISelGMIR.htmlGenericOpcode.htmlIRTranslator.htmlInstructionSelect.htmlKnownBits.htmlLegalizer.htmlPipeline.htmlPorting.htmlRegBankSelect.htmlResources.htmlindex.htmlGoldPlugin.htmlGwpAsan.htmlHowToAddABuilder.htmlHowToBuildOnARM.htmlHowToBuildWindowsItaniumPrograms.htmlHowToBuildWithPGO.htmlHowToCrossCompileBuiltinsOnArm.htmlHowToCrossCompileLLVM.htmlHowToReleaseLLVM.htmlHowToSetUpLLVMStyleRTTI.htmlHowToSubmitABug.htmlHowToUpdateDebugInfo.htmlHowToUseAttributes.htmlHowToUseInstrMappings.htmlInAlloca.htmlInstrRefDebugInfo.htmlJITLink.htmlLangRef.htmlLexicon.htmlLibFuzzer.htmlLinkTimeOptimization.htmlLoopTerminology.htmlMCJITDesignAndImplementation.htmlMIRLangRef.htmlMarkdownQuickstartTemplate.htmlMarkedUpDisassembly.htmlMeetupGuidelines.htmlMemTagSanitizer.htmlMemorySSA.htmlMergeFunctions.htmlMisExpect.htmlMyFirstTypoFix.htmlNVPTXUsage.htmlNewPassManager.htmlORCv2.htmlOpaquePointers.htmlOptBisect.htmlPDBCodeViewSymbols.htmlCodeViewTypes.htmlDbiStream.htmlGlobalStream.htmlHashTable.htmlModiStream.htmlMsfFile.htmlPdbStream.htmlPublicStream.htmlTpiStream.htmlindex.htmlPackaging.htmlPasses.htmlPhabricator.htmlPointerAuth.htmlProgrammersManual.htmlProjects.htmlProposalsGitHubMove.htmlTestSuite.htmlVariableNames.htmlVectorPredication.htmlVectorizationPlan.htmlReference.htmlReleaseNotes.htmlReleaseProcess.htmlRemarks.htmlReportingGuide.htmlResponseGuide.htmlSPIRVUsage.htmlScudoHardenedAllocator.htmlSecurity.htmlSecurityTransparencyReports.htmlSegmentedStacks.htmlSourceLevelDebugging.htmlSpeculativeLoadHardening.htmlSphinxQuickstartTemplate.htmlStackMaps.htmlStackSafetyAnalysis.htmlStatepoints.htmlSupportLibrary.htmlSupportPolicy.htmlSymbolizerMarkupFormat.htmlSystemLibrary.htmlTableGenBackEnds.htmlBackGuide.htmlProgRef.htmlindex.htmlTableGenFundamentals.htmlTestSuiteGuide.htmlTestSuiteMakefileGuide.htmlTestingGuide.htmlTransformMetadata.htmlTypeMetadata.htmlUserGuides.htmlVectorizers.htmlWritingAnLLVMBackend.htmlWritingAnLLVMNewPMPass.htmlWritingAnLLVMPass.htmlXRay.htmlXRayExample.htmlXRayFDRFormat.htmlYamlIO.html_images01-value.example.frame.1.png01-value.example.frame.2.png01-value.example.frame.3.png01-value.example.png02-reg.example.frame.1.png02-reg.example.frame.2.png02-reg.example.png03-memory.example.frame.1.png03-memory.example.frame.2.png03-memory.example.frame.3.png03-memory.example.frame.4.png03-memory.example.png04-composite.example.frame.1.png04-composite.example.frame.2.png04-composite.example.frame.3.png04-composite.example.frame.4.png04-composite.example.frame.5.png04-composite.example.frame.6.png04-composite.example.frame.7.png04-composite.example.png05-composite-plus.example.frame.1.png05-composite-plus.example.frame.2.png06-extension-spill-sgpr-to-static-vpgr-lane.example.frame.1.png06-extension-spill-sgpr-to-static-vpgr-lane.example.frame.2.png06-extension-spill-sgpr-to-static-vpgr-lane.example.frame.3.png06-extension-spill-sgpr-to-static-vpgr-lane.example.png07-extension-multi-lane-vgpr.example.frame.1.png07-extension-multi-lane-vgpr.example.frame.10.png07-extension-multi-lane-vgpr.example.frame.11.png07-extension-multi-lane-vgpr.example.frame.12.png07-extension-multi-lane-vgpr.example.frame.13.png07-extension-multi-lane-vgpr.example.frame.14.png07-extension-multi-lane-vgpr.example.frame.2.png07-extension-multi-lane-vgpr.example.frame.3.png07-extension-multi-lane-vgpr.example.frame.4.png07-extension-multi-lane-vgpr.example.frame.5.png07-extension-multi-lane-vgpr.example.frame.6.png07-extension-multi-lane-vgpr.example.frame.7.png07-extension-multi-lane-vgpr.example.frame.8.png07-extension-multi-lane-vgpr.example.frame.9.png07-extension-multi-lane-vgpr.example.png08-extension-mixed-composite.example.frame.1.png08-extension-mixed-composite.example.frame.2.png08-extension-mixed-composite.example.frame.3.png08-extension-mixed-composite.example.frame.4.png08-extension-mixed-composite.example.frame.5.png08-extension-mixed-composite.example.frame.6.png08-extension-mixed-composite.example.frame.7.png08-extension-mixed-composite.example.png09-extension-form-aspace.example.frame.1.png09-extension-form-aspace.example.frame.2.png09-extension-form-aspace.example.frame.3.png09-extension-form-aspace.example.frame.4.png09-extension-form-aspace.example.frame.5.png09-extension-form-aspace.example.png10-extension-bit-offset.example.frame.1.png10-extension-bit-offset.example.frame.2.png10-extension-bit-offset.example.frame.3.png10-extension-bit-offset.example.frame.4.png10-extension-bit-offset.example.pngARM-BE-bitcastfail.pngARM-BE-bitcastsuccess.pngARM-BE-ld1.pngARM-BE-ldr.pngLangImpl05-cfg.pngMCJIT-creation.pngMCJIT-dyld-load.pngMCJIT-engine-builder.pngMCJIT-load-object.pngMCJIT-load.pngMCJIT-resolve-relocations.pngPhabricator_premerge_results.pngPhabricator_premerge_unit_tests.pngblock-extract.pngbuildbot_worker_contact.pngcycle-1.pngcycle-2.pngcycle-3.pngcycle.pngcycle_pi.pngepilogue-vectorization-cfg.pngexample-gpu-hardware.pnggcc-loops.pnglinpack-pc.pngllvm-exegesis-analysis.pnglocstats-compare.pnglocstats-draw-plot.pngloop-guard.svgloop-irreducible.svgloop-merge.svgloop-nested.svgloop-nonmaximal.svgloop-separate.svgloop-single.svgloop-terminology-guarded-loop.pngloop-terminology-initial-loop.pngloop-terminology-rotated-loop.pngloop-terminology.svgpipeline-overview-customized.pngpipeline-overview-with-combiners.pngpipeline-overview.pngsimt-execution-model.pngspeculative_load_hardening_microbenchmarks.pngtesting-pass-level.pngtesting-unit-level.pnguml_builder_pattern.pnguml_nodes_and_edges.png_staticLoopOptWG_invite.ics_sphinx_javascript_frameworks_compat.jsbasic.csscontents.pngdoctools.jsdocumentation_options.jsfile.pngjquery-3.6.0.jsjquery.jslanguage_data.jslines.gifllvm-theme.cssllvm.csslogo.pngminus.pngnavigation.pngplus.pngpygments.csssearchtools.jssphinx_highlight.jsunderscore-1.13.1.jsunderscore.jsgenindex.htmlindex.htmlobjects.invsearch.htmlsearchindex.jstutorialBuildingAJIT1.htmlBuildingAJIT2.htmlBuildingAJIT3.htmlBuildingAJIT4.htmlLangImpl01.htmlLangImpl02.htmlLangImpl03.htmlLangImpl04.htmlLangImpl05.htmlLangImpl06.htmlLangImpl07.htmlLangImpl08.htmlLangImpl09.htmlLangImpl10.htmlMyFirstLanguageFrontendLangImpl01.htmlLangImpl02.htmlLangImpl03.htmlLangImpl04.htmlLangImpl05.htmlLangImpl06.htmlLangImpl07.htmlLangImpl08.htmlLangImpl09.htmlLangImpl10.htmlindex.htmlindex.htmlyaml2obj.html/usr/share/doc/packages//usr/share/doc/packages/llvm//usr/share/doc/packages/llvm/AMDGPU//usr/share/doc/packages/llvm/AMDGPUDwarfExtensionAllowLocationDescriptionOnTheDwarfExpressionStack//usr/share/doc/packages/llvm/CommandGuide//usr/share/doc/packages/llvm/DependenceGraphs//usr/share/doc/packages/llvm/Frontend//usr/share/doc/packages/llvm/GlobalISel//usr/share/doc/packages/llvm/PDB//usr/share/doc/packages/llvm/Proposals//usr/share/doc/packages/llvm/TableGen//usr/share/doc/packages/llvm/_images//usr/share/doc/packages/llvm/_static//usr/share/doc/packages/llvm/tutorial//usr/share/doc/packages/llvm/tutorial/MyFirstLanguageFrontend/-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:34968/SUSE_SLE-15-SP5_Update/25e0d7b599d0996bfe3395039b209c82-llvm15.SUSE_SLE-15-SP5_Updatedrpmxz5x86_64-suse-linux    !"#$%&'()*+,-.//01234567788888889:;8<=>?@ABCDEFFGFFHFIFJFFKLMLFFNOINENPdirectoryHTML document, UTF-8 Unicode text, with very long linesHTML document, UTF-8 Unicode textPNG image data, 1213 x 160, 8-bit/color RGB, non-interlacedPNG image data, 1213 x 227, 8-bit/color RGBA, non-interlacedPNG image data, 1421 x 802, 8-bit colormap, non-interlacedPNG image data, 1673 x 148, 8-bit/color RGB, non-interlacedPNG image data, 1673 x 191, 8-bit/color RGBA, non-interlacedPNG image data, 1421 x 461, 8-bit colormap, non-interlacedPNG image data, 1673 x 160, 8-bit/color RGB, non-interlacedPNG image data, 1673 x 227, 8-bit/color RGBA, non-interlacedPNG image data, 1421 x 812, 8-bit colormap, non-interlacedPNG image data, 1673 x 253, 8-bit/color RGB, non-interlacedPNG image data, 1673 x 280, 8-bit/color RGB, non-interlacedPNG image data, 1673 x 316, 8-bit/color RGB, non-interlacedPNG image data, 1673 x 405, 8-bit/color RGB, non-interlacedPNG image data, 1673 x 368, 8-bit/color RGB, non-interlacedPNG image data, 1241 x 160, 8-bit/color RGB, non-interlacedPNG image data, 1241 x 227, 8-bit/color RGBA, non-interlacedPNG image data, 1343 x 803, 8-bit colormap, non-interlacedPNG image data, 1241 x 468, 8-bit/color RGB, non-interlacedPNG image data, 1241 x 593, 8-bit/color RGBA, non-interlacedPNG image data, 1241 x 503, 8-bit/color RGBA, non-interlacedPNG image data, 1343 x 737, 8-bit colormap, non-interlacedPNG image data, 1241 x 500, 8-bit/color RGB, non-interlacedPNG image data, 1343 x 885, 8-bit colormap, non-interlacedPNG image data, 1241 x 221, 8-bit/color RGB, non-interlacedPNG image data, 1241 x 319, 8-bit/color RGBA, non-interlacedPNG image data, 1420 x 963, 8-bit colormap, non-interlacedPNG image data, 1241 x 191, 8-bit/color RGBA, non-interlacedPNG image data, 1420 x 512, 8-bit colormap, non-interlacedPNG image data, 606 x 326, 8-bit/color RGBA, non-interlacedPNG image data, 626 x 459, 8-bit/color RGBA, non-interlacedPNG image data, 604 x 234, 8-bit/color RGBA, non-interlacedPNG image data, 560 x 234, 8-bit/color RGBA, non-interlacedPNG image data, 423 x 315, 8-bit/color RGB, non-interlacedPNG image data, 495 x 254, 8-bit/color RGBA, non-interlacedPNG image data, 543 x 399, 8-bit/color RGBA, non-interlacedPNG image data, 381 x 315, 8-bit/color RGBA, non-interlacedPNG image data, 531 x 687, 8-bit/color RGBA, non-interlacedPNG image data, 489 x 339, 8-bit/color RGBA, non-interlacedPNG image data, 555 x 495, 8-bit/color RGBA, non-interlacedPNG image data, 1103 x 176, 8-bit/color RGBA, non-interlacedPNG image data, 886 x 218, 8-bit/color RGB, non-interlacedPNG image data, 605 x 446, 8-bit/color RGBA, non-interlacedPNG image data, 668 x 369, 8-bit/color RGBA, non-interlacedPNG image data, 227 x 347, 8-bit/color RGBA, non-interlacedPNG image data, 179 x 347, 8-bit/color RGBA, non-interlacedPNG image data, 586 x 286, 8-bit/color RGBA, non-interlacedPNG image data, 570 x 461, 8-bit/color RGBA, non-interlacedPNG image data, 381 x 744, 8-bit/color RGBA, non-interlacedPNG image data, 2495 x 1255, 8-bit/color RGBA, non-interlacedPNG image data, 713 x 331, 8-bit/color RGBA, non-interlacedPNG image data, 437 x 286, 8-bit/color RGBA, non-interlacedPNG image data, 886 x 259, 8-bit/color RGBA, non-interlacedPNG image data, 1200 x 800, 8-bit/color RGBA, non-interlacedSVG Scalable Vector Graphics imagePNG image data, 764 x 855, 8-bit/color RGBA, non-interlacedPNG image data, 467 x 554, 8-bit/color RGBA, non-interlacedPNG image data, 748 x 789, 8-bit/color RGBA, non-interlacedPNG image data, 564 x 354, 8-bit/color RGBA, non-interlacedPNG image data, 1702 x 272, 8-bit/color RGBA, non-interlacedPNG image data, 1704 x 271, 8-bit/color RGBA, non-interlacedPNG image data, 1573 x 1047, 8-bit/color RGBA, non-interlacedPNG image data, 2052 x 1116, 8-bit/color RGBA, non-interlacedPNG image data, 1702 x 720, 8-bit/color RGBA, non-interlacedPNG image data, 1380 x 350, 8-bit/color RGBA, non-interlacedPNG image data, 1015 x 571, 8-bit/color RGBA, non-interlacedPNG image data, 813 x 577, 8-bit/color RGBA, non-interlacedASCII textPNG image data, 1 x 40, 8-bit/color RGBA, non-interlacedPNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedASCII text, with very long linesGIF image data, version 89a, 16 x 30PNG image data, 250 x 88, 8-bit colormap, non-interlacedPNG image data, 11 x 11, 8-bit grayscale, non-interlacedPNG image data, 1 x 60, 8-bit/color RGBA, non-interlacedHTML document, ASCII textUTF-8 Unicode textASCII text, with very long lines, with no line terminatorsYN<ɧ 0Fdutf-82746573845752e853ff3a21192b339276eff25cdc881c663b9d4a0da8ea18511? 7zXZ !t/%QE]"k%"ŽM1籽|T01uim)qcQ)ӒxKpVP\0ކtgOl|W_/xh"A0w g/ކDȠ/S &lo̤҄+r~bH."Ti'|:"pTgUƔswM;2lwaɫ ΢o4 \i+v`V-:\r*&\H% TVz4 Ne p1-ܲ8a!n@m6&`IAUo^`W+vvO5Ru.![C;6Sw%6*L9ۘK-놇~Ş|[BM*%9LY> diբI@7cGD*,;'C>fuVGasԝtRZ=t=6īL "SnU=Xc̎%% Sɾ|W陷y1@jn"Ȅ^EթfHדbFSjI<9Oq ty_gE}9핃Y0QgeLp(K#*, gS]'A4 v:*WXб끝vнG&:8;ܑ_i2=n{z`.?U՗+1"yVj$DHb~ 9=lJs#=>mJF \[$krE^@PuP@wTs`F['cl&ݨ}8C̪RMn-́wQ' Vƙp0fAI27(:[D O-SU;=\ .8#g׋DbP?_vD^I2EIF@@|ي'&H>PC)Xl6a_QGFSSr17r@Sa+>mIlbEb2NX5zgt!hD;=8Pn: hwor42mYݫGr25r)!s˅|OS<1Ab99h}w&6luv6!7ӈ;6(ڄ4BphOFF!EJrt 9@lu.O/RNG>d;Ĵ}cܾy'} ,3[gr+D(ji Sc$(NQvr} Xzpg*=6 'q :sNN85*?Z_F+q ]8迹e:Ŧ5ח }&BJzt(b & $Ma(IRPSIWw v7zY7D.F [/.1h'Or r|4:;ZozZMvnh"xbcb[7y@Enf PY^T1¬Ay^5GU:\f6=8>~=,K?M4,Pqe3F|r$-Eȶai 8gocpT[R> $\9L)WR*/1\X5t/ba<6?qÊT9u^=IFй}4H>΍h{03lb|.2_w*6zrx*@4VgLE襁]@}ulVw[g=Spئ)k#.cN#A%qv-A]y8eF4I5{&BMs jMh֗M{Bhq0xS2߈ l%ޅG r@(Efj\Q`xUaqLKBO8?P!_1Ь9R؀:TZtJefSlYEk&֚hϽ]{WzN#Gdȥoyͪ3\mߕPUb ?J)\A,_w0eVBH@4wY{ i(>6s0مbmȇpqF%NDŽZM{/E%ˈʓ:&;:Ļ=OT|;?F tÁiٯ,=%y_r&뛮0ڧذ{SH} pwT ݑS,/5~{~+ɛFozccG໔W}XabTGBJAP;TqnbyԿ=>ÙJ?vc*a#%W5O 4]2O:Xu5 C A AXAEtDr. L ~J#x\msdvQJ=+3]&o=1c34(r'qzv}XFBZ-sO&x;*K~ ~a=-q$cḅqd#Ǖkᦸ'hLv(J(bEbŖs{nG!j 0_!j}ljS:↕b~V,Ĕb%0ȹp|_N.Mv&IK\^Zjo晇PY̻D$* N?zה"{w &YNju(YOpKZa  д}П< ~5X _nLǵ4-Nj,KQT(w)w`]t_ 'VtÔErved1qfz GFH+TXxIikiX&Çi TJ;9RЊDsG`m dXQa.< ԥnn[~&4 )j# (*$9uk5Wʉ$ր]arhULVv*}<6Dӂ 2oLPd܊)T*c]l &Ӭ|,^'x#ሥ{\Hk/@|OV8W#x"݇BgVoOd~QW$,KKKYdI^GSd耯' H-j7coxIw>Ms(\`>8X<) 0?2]F.53k 梬 `9p =#A|g1eُ]8icSggq Bpk4o8749\8;l,"=no=*UH$HAQj8a HH:~k:MfAHmYM&ixoM_ l>R3-0&ut ޛ+a}a IiY7Aaan髸BVu6HP.[@S{i,j!*80ۑ>oE+&9Obꪞ4ܶbߧSYK;7LK%*!@rq=i!@~& Z_O[OCpػ+<.iYF#:49<2DAz  %6l$z^Hk#rZ9i83ou`WThk6ZT *6| ퟯIKTc)!0^8<'Seo;0O4dKrzZIFT!gmH 1ۏad^_< $3JĎ22\Lf ;>Ηq-S?e/{CQ%.BER 9P!?xWQKzm瘂bd¥%Cg,}țellC*A%lv@I3 K#v"}[$6!2]Txg9?&OC>h^=,. Ug 8n jюCX43Fv [ݾtCZ9~}rZk #[A[L U"Xe;CL*B@WU_bՠ RJu2@;Ę T/3&mST/['"=k48zႇ{D4j΃-qa#W: %e :!*"s@ (꾟4 N5C&[-}L.B"n9`DjזfÝGԺqAOgDօ:Y7.EvրsIcGa:ԈB=z}Z:'> 5XX(Վ5~ ;i #g`|H@Gewy- +Qųڔ BqINv:6@RAdl^6q.GMa2[(kr(Y(*7˺zh<27emaʟjT>t