<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/60480>60480</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
divq x86_64 instruction is slightly slower on clang++ vs g++
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ValZapod
</td>
</tr>
</table>
<pre>
**Even though asm is the same.**
Code is here: https://gist.githubusercontent.com/sukop/1085c3e0b71f98cf6cef6a3d008650cc/raw/1a051882ba875319f7eb540b24b2b158abc273b3/divllu_benchmark.cpp
So looking into [godbolt](https://godbolt.org/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1DIApACYAQuYukl9ZATwDKjdAGFUtAK4sGIaa4AMngMmAByPgBGmMQSXKQADqgKhE4MHt6%2B/onJqQLBoREs0bFc8XaYDmlCBEzEBBk%2BftIVVQI1dQQF4VExcba19Y1ZLYNdIT3FfWUAlLaoXsTI7BzmAMwhyN5YANQma260eCyECgB0CPvYJhoAguub25h7BwoE%2BIIXVzf3ZhsMWy8u32bje%2BFQXzW1zuDwBTxeoPeR0ikOh9xhf0eQOeIOQCGIAlQ3wx/0BwIOxEM6FQLGJ6NuAHoAFQ/HZMnbKGL8YgsHZMHbMYgEgDuIWAO3wADc8ClnDsuGYABw7Bk7ABskh2AForurpHyGOg9SqdmszNrdWazqz2QAVBDPKV4LCGsAcBQ7WioYUGo0IPDABA7YUkdAeurPYB4SWMHaRACeewArG4EgKfP7fcnU%2BmWF7SDadsRMAoEpVHDHaPGzjt7Y7ozKSDsZTsozGGHHEyYU2mXTXu25iwRFh2CA6dgBHLyoRyMAikLNjzCF4ssJghLDETtFzBUGKMZbNjsDtNkZtUAUz9O0Wg1gCSF6Xk%2Bns8EwYWtCNxaneGLhZYJDPGOhjGpEpwLk2eAXi6NLNh6GgLkuHZDiOOxPmuqg7JKYheM83JxjOlx3Gyz4zngc5Zqu66GjE1rESy9G1g6Sg7FQXgAo4AjhsWO70EwShGiERBoeOCReJERzIBKNLUQuwoOjxTAJAkklMBJmAQVuS6Fm4bgaJ6eDLAwSh0bcbIMj8AD6llMAQBDEHgkReAQmDWVADCoCERyhDMMw7F4QkapZBAStGN5eJZkSUgCCAQAFghBSFDAZngC7xQQiW5vmrI7LleX5QVhVFcVJV5elmUumlgWSMFbLEH5JgAOxWMRKqqgA6s8IbEAA1kecb8c8ZhMkyVo5QyqpmelZo7AgnhhnyOwpEY9ChVGBA1lN1WzfNHoECGa2nKZuUTTsADyiy5jEtmQR6aAApgCTDmIVbJhYyUsGsC4fWY30%2BPEuYaN2AAix1tedl0wSczBEFuLbdhYLoAy6QNJqDOX3W8/nVbVkQvMDOwQFwXg3giIKmmYMz7C19InaqdazQGQZUp63qHQQHqoBeCxbmgLBiS5RpTmRc5g9NZi1ROXDUzl4uS0Daw0%2BN9Pjh5PJiHgABetlpEt/pUCFVBMA4JBg0JetQQQMswq1p0M/6gZZl6Pr4OtnPc5DjA0iEN1bhATAGzEl7q0cmtijMYOnbctAKKgInPM7Ozmq7pw7FzaeXR912w4TAcuVuatrqH4di0JZq1Uj1tmdjgjlyFKNV7lctJf9jc1wQdeA1Xys7GZCSdHgYg7muG60bLOMhau3e2yrzwlo4a6C6Rr7zlmqdoEKJZJIaYrD9Rm6E%2BxxYGEvwn2bhe%2Bj/VpcJTVIUTggtlt%2BVd9Fo/VuKz8PcAGp1IP6kei8AJNCccN7FgcPHHY89ji2UwELF85FPjj1vrVZA0tP6tRfqgsw09q6nTcA6ZAfV8KoBjMQKgicWZOl2AmHYGgzYXggB9TM3w1gExdA1ZqOVcpQUJluMAYB9gEzCHIQIgQ/JMi3EInYAA/DQJNaBt1yihYgHY5EKLbk1YGX8Z47GBpgfO0MgKqxIEXLWOsBCsWNrDGsnUdgsBJo4FSiYXTbjHDKBcscRK2WbBzT0mAmAfHFCnEKLYn66L4ljR%2BtALwoh2HeDsYFBSJncR6NghgPTaCASFBQ%2BtHBGH8QbNxqtehbnTnxIJOxNYxGSJ4uOwEra6KXMWN04Z5T9SfAAWSEBYSOHVnhiC8bky2V0ty0KfAoVgAyALsQ2kxFsogGAeRCqQrkidoiiCAc8ZheAEQSkYH0pic9VAJGLAoWUHYIBamGUU8wap1RrD8i2CZUy%2BQeggBqbUFsDZzCgaoZYT1fF8klJ5BaT45AWDTheG5%2BTgA91oRqGsDM2JLMTGBfaMpnhuipG6KBxlFglm8S3PMcdqSEuWa2Ax3yl5CTjjs881K4I93oTsLYhhxRlFmvxA0OxVCKnuWgLAwBYxOXFApdgS1MDPDEd/TpcYvDiiTBoMoiokXjiUFOA8zxoiUJBc6D0hAwYwvxjsayTk6D5MslsTWN4IAcLbq4kETq2HUrbvS51bhpEwrbrwiAxrdQaCpq1XK7rGqepdUwnwXoXjXChITT5WpqW%2BTdVGuOHqvV5NwXTHY2BVD2WsZAxOIT3aQKzpSHOLNIiEXZiWp8UMfY2Jyh9LgJq4plwlgQGYkaSUxstJTFNLB9LSLbbXDtXaPrRruXQ1QAAxOd8651eCphg6uSNW3Ny7Y6qEfbl001yijdd7bgqbtjFOjQs6F3zqXVm8GdjRS5JAaymkAtnhSxNQjBgawBTmgYNLNGJoEboBbegVG6NdHYDeDAlyk4W3co/V%2BhgOD/2qkA3%2B4GC4WZISfZvCBhqe5hBnF1f0q0H4%2BLXGioaNaFxvrCbQYUTB4wemAwGPDrVSMhWkfS1UlcV3KPfia91Zgkz7N/W3NBJr2MkQbrx1l5ppHEH4%2ByPG1hczoL3QyiA4ndTIEppOfjOoI3icTTpmNImGprBnUnHYIB5RtzfcOjd7Gb34Ofc5YxQFiAXwgP3eog9aB%2BSolfMGq4BMpRIspywqmvlvvZC6Zz/TgwyiDMJPmL7JxDpdQjVcLbVz6QYKBgDSZEbAdA4ciDC9YHpbeW9bLw8CsoaK0BkGWYwHll8WDST8nMC8m44wNTOUFM%2BK67ycwwmePqa0y6yTsXGAKwm3Jl1g2QpKb2JFj6c2cq%2Bsm9gWTflJMGYJppltxmFs7Y4S8Sz5obP9bYxlw7jn37xZ2AAJQMahQLNE4YXm/LhN4cCGF8J2AI6RIixESKkRGkLK2VPrei/pGbDBzOxp296mTKjLkjoynfGY9mDjkzNJwtw6Xu6NW0TbW41lbL2Ucm5tyTDPIMG8pgXy7cKphW8JZIxmPMo7Kqig4l2Vg2lWFyL4XWD66MD51j2qkjOHqdOnekgfUQgDRYsNUaZhDlbVHTtT8bTlrAFWiEzarPNRzT12hA6xbDkXQLj4bOt0n0PSel4F6XYisfS%2BrmX6qm/qDpBjbz2Hloa%2Bzgm9JGC4G5ozBpjEK4u4ytuJqTD1FNd06LwbPRmjsWZFpY349OPMn38zc/AkWSDMFHvvjd6uzdicrp7gzQuGttacQ7Mao2JtiBmzfKjpWuj7ZMydmzYtUKM5bnrTDJs/tA4F1Mc3kuPdo5eKfInZOeeS2F7LaH6f%2Bdg5mLDkYCOyCO4dpE9XpuleRMbYr6O2qzbn6X/W09vuA8h4fc3DfaXk9utPYZtAxecCy8iCq8LM68JAZy28lS7%2BQccUDAx8sCRoZ8nmzw0B18x%2BmUTmMm8eS2T2v8Dkak9AgCwCKW4BbWT4/%2BCBQBos6Br8aCD%2B/OsmT2BClQxCTYqy5ClChooU0oNCiY9Cm2jC7q26Lq52TU6mPCjC/CgiLqoO4idUJq6iN4SiO4w4qisi8iShMmWi6e2a%2BihiEwpac%2BocFiHYHeNiOwdiDitATir0ri4y/oCgdSRKviHoFSu8ISYe4SGe/i/EIU0SsS94iSPsxAKSDh9iASxkOwWSWMMKu89ARS9h2ypSo%2BbhBS1SBIjhS09Sj2TS4qrSi0LaKuXSPShydigyccxqZaxSzwkybAfIMynw8yd0hgFK7BFCbMGyTAWyuYLCBwImhyf%2BJyZyFyhM1yeSq29yaojyYeLydR3KHymoiaMKvymA/yj0oSIUTAeqYK44EKo%2BsRRg8KiYiKRyrE7EDAaKhA96WKHAOKHAeKCgBKe0/GE6pKqA5KV4wqOSeSgBtKPRuyvCxqMozKNYbKBSnKj84YHYfKAqGAmAwqiSCqs0%2B4NmSg0qgQsq8qiqyqXAqqpxGquED0cYmAuqoKBqG0OU/qLqZqAU1hIQVqtANqtAdqjAaerUW64a4aBMveTaYW6aLqPJrUoaXJhMrxvacaVy/qZgkxjyDU0poxEAE8MwVJyODybJ1cYp/J3Jma9e4GealIECK%2Bw%2B6%2Bo%2BT4W%2BFaXBVaY4Napp44E%2BvsYMzah6t%2Bna3ak6whO2BOA6d2h8le46qaEx06l6V66p%2B6fWzpJ%2Bx6LJx4HpqeDqs2EZdcJ6x48p56wZi66pPcd6SWj6qWbmMG76HuCGP6aGhWxWEopWPc5WUGr6sGHo8G36zWDWxWIMGGXBWGrWuGFJuiBG0G8kdAr6/G5GxJVmxa1GhR4YdGDGTG7MHW/GnGYWvWomaO85LqgmY2fWYmLa0i02V%2BYmC2BMS24Wq2kK9%2BMmW225caOme2%2Bmw6RmsmpmohFmVm12dml592fpmBfe3hHgxe0GT458zw3mr%2B/ml8n2wW3WoWLAmY0Oa2/00WLaCOT22ZD6JBf5r6PpWW3WOW3WeW9W4eJWAeVZkGABVWcGRWtWuWTZBFzWLMnZGxc5Q2i2kFS55%2Bb8TFh5kFo2Z%2BW5Emime5MmJm8m/FEWp5Pg1%2B1cF5pm15emPiB2hM95QlcaT5l21mtmMmE4PpmOSZX5Oh4Mr2qhyE3W%2B8QcvCP288/2AhgOwOMhoichkiraUOCeMO4lcOUmrJ4pKOOp6m6OhM3O2OuOnJqeewYadeSspO6elOdkDkTkLkdOHkXkEwLO8eUo4UlkJAAY/ltUXgAM8eXgCE3CouRVxVF%2BDBkoUumUsuIVE2XEceE8zlEaXAdlZMfRXpis4MRQJQquQFXA9y6KCgR%2BN%2BX%2B/kv6aU%2BWC4RVp0BGPINY1CrgOwgQQgwMrSYM%2BUkoo1WE41JV%2BUU1pis1DYsc4%2B6%2Bq1eUUs1GCE21BUp0AAigghRNboVU3AwBqGNWYLlb%2BhdcLqdMDA2C6EaB4f3L%2BOcI9exR/JCpdVdZNGBR/ptj3tTBDcVKdEIOMawAsG%2BPhIXKZFZXFJebGgTJKHLl9aqA%2BGnGQu0cKJ4lSquCdb6lISDnZX5IjaqMJCBMcEkOco5KtNhN4BpCDQ5Q5kqVclwLuuDCzL5SvnUMKm8IVb5Vla6VqMLZoqTuDOzSkOpFQeXrTCqOyGgLMj4ZUukckOZJSSajSRavSdaragTfDadBliKfWXji6lMVja1JKCam7SngoPDaVLtSHFrPWNKIdWDOte%2BVhJ5RTN7YVKdBYMWEwH1E6Idf5GmLSjlOtT6R7amResGTbczQdGaFqOijWi7TXs9ZqA5peUFQNSFUTlAPleHQsV8gNXKfcpKeHWsMLaGSNVwD6XXZ7TnTsMjSMnNVwfEd2VrexKHRPRlqqWaJHZDTsDHQEn1A5IGH4WINzFQLLPlialPYGWmemf3cPYJIIPUlbsdXpbjgTOxJ8qqCHXPTtaqL%2BWlk%2BDQMQNLa1EedItfYsQWeyHfe1adMLCvOzOOaZEwMANRFwCANjbjnjc5WGk1ETjFptdPQnuyJ/ZFhPXLoVZfQWYmmxXxhxaDSeZtQQxpp/X0ZEEGtXPlMADOHHOA5A0rWTuPYhpPaXceSphPQhSRJKP3Z0o4ngM4lmI8ZEPmg4MXblJpTvWwyaP/eDVHY/a5v%2BeqpUAIOgANquVfbI4mtI3/cuZCoA3dW%2BCEudWAxAyEGYNA61L6tI6wgTMpgg6FXoyg6ZnjOg/OZg/ltg0LnY1NvpPg8oRQ4eZ45CvI4VbTauUTlQyDXQyzRY4hsw3pbTUDtIcIgzQjfPSTagWHvRoIHAgWELvzRGuxG9Zw14wE1Vn/UjrqF7QA6qL5axtXL5cg6JWFV/BFeTg8NBLuBMOgBANZDCZZEFJZNQ1FdTrFa5JZO5AzkzslfValRzvxCwHLf8RVa/K8YUzQ5kzsylZLqbjLvVNVTQbVGco4m3JTgoCwG5OYGYFKBOKtkmAjHw2jLcyDflDZm82wkwLcxAGc9Yb8l88DBo2YGYBALLu83lJ80Vi8wTLc8QL8xwguLcz86C26agIC6CyC2Czssmmjm9mof82DR0yw%2BsK4FBJFTZNFTTnFdM/TolT5H5ClezhFDDKs7zgcwLqgFszs7y5yyJus4cz49XNZOlAqIqHfj4K2gM5ZGK0qMekIUFRqITllESFgQs9GBGYlP6T1mZvQcNSFgLfzjq483q%2BeZIak/TWDoVcU5xbSPi4ZdwSTqS3cLHqsacktP7bVG4LcEINgJZG4GdHIGELaCahXeTL1VXG60MZ69UrVHeLaNgM9gG0GyG2Gy1UTmUFXG8J5hAqIEoLVGISc8SjEP6PqzzvbsQF6OW6/FDDelWp4FhBrP035LHtVSoahFDKZkOtKVOmWr0UTnW%2B1doTCBFbqbcG8DrFJG2/m65MtmuD1K5LOwoBAMK7lGCCACACwAQFwAAJy7trCNTDOajbt%2BrvCbvbt7sHtHsaibtYBGyOKWRonoCd2zsy7LsCaYA%2BhvtWxFY%2Bt%2BspvBu2ggxtz4R%2BpeuhImpzbNh7L/v%2BuBtAfw14DWDWBrt5TUjHNC65TLsIzIfR5lrukEynud35Q4dFZ4egz9u7LSLEfKHYeDRe3kcB5ds0cECrvKFaLBjEZAUCJkcWAUdnDc3Oirud0jvNMEsdg4f16dP0hALuG/UxCFsurx7gtdrx4cvqepqCsS4MA8t8uFTx4QvjvjMxW050sJWM5JV%2BSTuOBSTx4LyuQoptAMCaa1WsqDTvsMd6f6c%2BfocKfEAVzRhofx6PEjYuoSW5RgcpBxuQfSLQfUd9FweAchtIcoeWBoelXDVAPKHYE/4yZSMvgmpSiaYMe4cB5UcLh8cCcEfcvudKCMf8fMdewsDIvSmrgkdLRSsodTYvjKGhcnnDZJMf0Sedf2vhUuu3DmwjwufmyS3ICVePxbhMiS0vNWBoxofmwCBViztQc%2BqMIrcIxobUP5Rbfxg7fSI3R4D%2BzEDACrdHdiZuc5teAQJFtC4zuLdsjMBsDKFzUBeGzsSmBaHK2/cNfNbSKvfbNFuguPxEIxBe2guR4svpUr1aLefHOgvIhShpw3e3OI%2BShpVGKo%2BFVQ9mCY%2BatRQMC4/cFpVRSGB4hE9C4k9k9u0wxU%2BLOstPyk5bPdP7I0ChD9ODP8rHvWTHd5Qk/3Ns9I/LMM%2B/BrDkub2tTaGCVuc/tsgfs0dx1LsMfsdYEG4ChTKljGw1HnsoD4iEgPfGR1UMHusmoOeWROet4lf1d49pUZXACd3mz9l4jnfhegdT5ttdHCR3JGg2Yg8ZdceGQICztpdWD5caanfne9vyle9R%2BDSWsuoJ%2BDSi%2BkeyAhC4Q5f1XRBYxeom9lqGSWRHAnAcwgji5XAXtMCqA6/iGsRT7RdzswdxdId7IJtJvJfAftXIeWCoeYfbNNx69fdbxG9LQm94gEgeR0d8jOT1Kh0OwICWRnKeDORpAMmoBEKbseTChN8g25cO0Ex28O9pBO8liR5nBOcde5SB/1IHlZ5r8b/eCt47978gAH9H9Yf8vMAeRT%2BEoRYCYStS%2BEQQG7U3nP1QD79DAyQNRoaDqbYAIABAc0Imh3YRxdaggX/qP2JLF8BSJvaGBACL6rwAByQe/uQ0JQ2UCY7rbPgVDUgkA2OHXMTvlGpDiRVoxkSoK2jYHqQZgJAk0HagWC8CkuCHFLnH1ORCQqAEAN5kJlxKMc3AVsITJIDOCSBN6KYSngjwlBnAJ%2B30JQMgFE4ydlEI3CSlog4BzBaAnAJMLwD8AcAtApAGARwE9RD9IsscRYIeHWA8BSABATQGYLmA9QQAawehGsECHBCNAoQ8IWsGkAWCOAkgawT4PsGcBeACgEAAhG8G2CzBpAOALACQCpYByZACgK535h5CUABgIwFwCVQIQsA0oZYN/HIjCgzoZYGwZ4JoDWE4elASIPEKSR1B4wnATwV0JCJnRIg2gcsL0N4B8w2AggM6Izh6HpDSAWANcCtBWB2D8A4CCsCWHiGrFKgbmUYeQHybRDPByISkCEQ8BYB4h1OFgKMLmAUJwGCgWoV%2BwaGMAdh/AQQCIDEDsApAMgQQIoBUDqBZhugeIKUOMAx99AjkZIZADmCoAnoaQZIRwC1BnQFASQkkuWDSAuBDQwwPwFwC%2BhBAJgnVPoGYEaiNQcgKQVvOiIkBfR2aeQBgN0FxGxB8RhI1oK3g6BDBN%2BWQTEbYCRHOcmR4wQoKUhAB0iBgnQUkWyMnb1BqRvIukXMFcFLB3h5gywXENmEODeU/KLUJ8jBIcokwZwehPpAgC4BCATYDwTMF4BpCtAvkUgP4LWBqgzgwQqYhaOtF2iohnAWIaQBsF2CHBSQlIV4J8FzAshiAFAM%2BjyHkBKAuQ%2BgLEGAAKBmACQXJDODmGYBqhmAO4fUMaFPCLUbQ4gZ0OCIzC%2BhGYwYcMIcA7Dxhc4KYVWHiHzD2U4gWYSsORExgYRdgzYcgG2HcBeAQkEkjsMOHdCThSwo0Q5AuGNirhBgMMQmIeFNDeAzw4QKIHEAfDRx3wtQPEN0C/RARKAYEciDBGrt7BUIriJwDhEIj2R9gVvKiPcAsiMRhI7ETyKmCxAkwRIykUKMJEUjW8Yos8SAAvEMjqgYwa8TuORHtAxg94koI%2BIFHMjMgR4v8dyMmA/ikwkonmMsAkCyiOAVg50fEMVEwkVRmoYAMgCkgoDPMDAHqH5B1H4Ac4Boo0V6L8EBC1gVo4IWRPInkT9Ajo%2BUa6MSG2APRxo3wVRI4BmAaJvAN0Z6PSGmiyEFyfwEAA) (AT&T asm, not Intel) g++ inserts
```
movq %rdx, %r8
movq %rsi, %rax
movq %rdi, %rdx
divq %r8
movq %rdx, (%rcx)
ret
```
at the very start, same for clang++, it inserts
```
movq %rdx, %r8
movq %rsi, %rax
movq %rdi, %rdx
divq %r8
movq %rdx, (%rcx)
retq
```
I cannot see anything different with Ida pro, but divq is slower.
```
┌──(root㉿ISA)-[/mnt/c/Users/ZAQU]
└─# clang++ -std=c++14 -Os divllu_benchmark.cpp && ./a.out
hackers 28.5843
libdiv org 22.4350
libdiv brn 21.3974
libdiv nat 24.6094
divq 22.5174
┌──(root㉿ISA)-[/mnt/c/Users/ZAQU]
└─# g++ -std=c++14 -Os divllu_benchmark.cpp && ./a.out
hackers 29.1550
libdiv org 26.2695
libdiv brn 26.8417
libdiv nat 25.4364
divq 22.3755
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMukeTtLq2Jvxrck8qzhtAAkkO9kB4703C5AZWeE9ifv0XVfnu7559-9x7Bh0d3RUVgKRVkpZ_lkrxslSwz_M_bwR9I9g_4m0th_lPP26jeByyP5IhO_-8YeCGAe6d919rOWyw_IqX7qtavtYy_1riLv_1obgh7A35_WSGLP8mKfM5v93BV7mu43K7gxvG3zAeVsv6C1ZruSXbks_p0K95v_5Kh-6G8cvWDOMN41GEItJ7jiQPtHhSaUGmeUHG9wxBKJJA0vSG8XO8fxPGCIFSFJbE1IO4o8_ikScEjiQYnmAJSlBxkmKPe3K_YXxWvdt2-48k79Oyi-fmVzqO_7ztf346w1c7DE3Vw6-qX4evG0HDIUuGdr0R7A2j_gtLn6Ffwwx_Ou7X7Q6MUIUl4OkpIyzmAOFuhrTGdLSd0SrgUYtJQWxyDNCunV418ADWzq-aRZ_Ahk9ltUIOnEuVINYLMAdF00AZ6N4FwAPiuAPtDfjQdVYZoqwERsCEwNrCrWmfEXB3VqkzIPDeChR8EaQ4xoHWQ60D9GlCWug0y3kpFmAnqJQcrokrecMIjL5h_NDLk6XSg80tSMKn1CsO2a5laO7iaLr5oSpWyfctCc0si8d97kiTGH2GaKSGeia5d74IPNCq8fBaXOlBXx3Q9vLUiRDoVhdjJJIzJ8dAGmHMdyiXA4DblmBE-aD3gftZQJJe_lXco3LRgpPa7lhS5z8DvPW6AvTa2J12j3wwcxupGqN8HmWB5JaRS4bFCBJorft-3DAeoXfJODiN5C1VkEl9A-IAeOuG8WKk9YkiqFQIFzHSxEQLIQfZTQqAcd8Bm1JM27PLJoSA3h908wD00pQY4Id5m0fxFAz4dKasWy59zoL4mi7MAj7NmoqPq4ywgJS2HkE1hJ4wIJLJAho8Qq_JQL7NZkjjTqCJsQ2YPN_BLOAcVArzUaS998NmF_APh42zxdbAwI2-yIqxKVz1-ggfw6U47BK5y3AJgihyZ-hh3ct9bRhR7TZfYgwgM0iL6jnYpwaqRtXri-HxZZFhqbKcu_IX7QmKFiV6vbCr3kSrB7zraSABRCHj8OTro-Z-obg9DFZGP-I-F9QyCmXWFIyyFkZu3NUGy8GrInVVL0kBqs0mRmxlGIfZbRN8yEpY5hp1l4_aaI-7cF741cOUiKaNJIWaQ2fOOZ8CCkkHPnjrBcGAg7pcAuOBcLtTChVn00NuMHYuc_Yl0Yqueta2D0Z9uEAGTdNqtNwBy98cku_wBMYymbMq2J0SSdJE0moKsGTbasCiWU6EjZ0Dq2MDH7DMwHD2WbKatj943GriMaKBswo6kctR43iQYYAFeFjSDs-CqIfM47CsKiDe3Sw91DZ_EZZf-nzqyz6Rt523dS0MHI1PVE4kZAiMI9BsZZogIBdKSjgA0CZPEyqlolJrTn8grHMau7yNhgeAfVn2p7GPXPhkSl-gAdrqaHAVujhwjBBjvRJtnusugD2rk6i5tbNsMgZghIzLdpKfyGV4eouwMHgRhHfkR3smt4WxjgFQHeiaZy2yO-lFc_ymJlkZqgM4SUuXJ9Z43QPqhvG9n_iN9dZYY7f4_QXvsJKUrgu168GgT6mPpyy-LMGKvJG8T6JlidNA58yRdFClK4ewR7ezUwI-9ahCbePFeleLbw7CxvtnQ_rTrEvClCsRAjpf25Fbbxg_egzv0xrAZRoicr5alqUt-4SOiHbDeBJGUUuaM26svZkSbA2QitPRpAQuEC6ufUxI2q1VrYVGn6QrUBQo9ab2MK5ueoz7g7_i_GU_UWzHXZBu_hav8yTiWYXI0YR6Nbp2WQ3r9uQV3X-06SoXzzpFdyvLAfo6l4cQMU4mwhA-uk0gkUQ1tDLe7jl2ztfeDnhMMqQ9P662m7KBU-RIluJwZp92R35C2XGEAvfeeywpPyGsvmG8P6ay60ueC-Harj_dfvbkh--hTbkoMwXCiEom2eQVBWSdSVP9wcPUFMWQetYV5u2cylMEb9Y1-p79CCCrSa52McFlR54T2bspICNQ-JQy0LVmKbBKg8hoMdCJoQCv8AUh_XS1-45C7sgAGk2Gn46WJ7ebBkL6CbmLESVLgt_BUtaqOyf1IfjOdqwl6zG9omdVhlAMCU5RkwYNhRcV4Q-BHmFhIBpUpkPiXmpgLDSzBPrMCkvvZXCh5QHnnSp8uUktsgqdLqmtYEFCXy7SgQ4UIs_0nKKGPUmqeFvbP8JZgboPJSbm7BLytCP3qU3qsISmGzPA4WnrQyXSgkhZiX5Ma14mvdsfkmwcengIjoxvxs7NMam8tEBH8Ihwn04BQOBwdOgYot-XFUMlzYn5yHoiSgEGH4ITqIuFNQe_DFAAuc1M1txU2VBVDPh25RxwltOEIjJW6dMHsqCCIfDEUKLjTvA8ao9H1J5ZqsKYyDt_NmnlENJT4vELG10MjIcodNGCp5pWJujYxQkQsG6ZC8QPtQvBEx3sSVhYDZNVzRXoItbGvtyqUSAV-mh52HaUcze1NJscbgtiDBz3syUYt64XikIVXHreB3dRw7I87Jbv3gdAjMNnlH4LoAp2OjyMFw_GDDqoxposl90w3h3T8M1WlUsP2lANzauuPN4A1HUMlSfTKckiJdjD_X3US3y6DckS2tIubqDjEkjVZMIbzp0w0ZuTt0OgSTly-5zMewWOObNiZpzQl_KYhSkfM2_v99fwql9MKbkuEYxT8OE984XNEKe3T-j7yxVDjPZZLFgicBiSe48t5Rod0VB1qeJeURWMlKcVISaf5VOF8oSP7d5CSwib2PGOZZVdXlfpp-qoSfJi11dszva8vSzUAuAwMook0JwZS0hujh7c9fMRkhNXJC2CoGdVZ9kjgVOy1rxRWwvJ36_p5XeUkNW2Q8ggPrsGrH3pHLpV0zDeabeDoa7qgjxwyUAnOfQFUs_EkM1Z0J4NHtzTH3f_YbWEBnvDeGxqwP2nAxcYPIgkp4jeDF1OOVHSPY8WyISI-A-B-hKqIdZj_njPTGKFnkvje96BXTDZ2Xe0MmgKB_Xa1L8rZlHFTzSCzfXQbxgf3HVanjGtsZL5QFtiHEXu96ynKaBleg3q3TorgPeZK3HjaBS1MUj3KnXdsdOlThhnuvf6bzMn7PUqUqPOHkJyx40iJcLD4ivw2qF5zwf4jOmfiZ2hLTRhwmlttKVlPPepe7fvd8SQ0fVtbnA_K1aTzU59yAc7Zlbtp2riX6QVKjRknYhLQAbwtGKZZyiOSR48E3WnmGWIFYRuhCDcxbalAtZxqV5jqA7Hd901PF77WV4hH2e6711uTjFykqe7vASg7N1dblGIWaOSYDJfkymWTj_0S_eEgVu0siaE8ji269HxyyPEHcq5iCExn0l4tPuj7u-PI8IAkC0tLi1V5_Dw9V3EqKWOp4zAUzIGJNKWqoNzlMYWGlXBfHPOq-_EJyQsfRnHiD3JzlVqtamHsy-E8NmxdXPp8r7u5Gsj9QBxkwBH20TFvLQj1tNlTUkTqBG-zkeqjGVAyZF0dKY2PJSpgniL-RBrA_5U8VfAkqTGEmiNTU1tiFNm9HkDC8-CrB0uuhdHJdsmvuiuLpW47Qz4oOKueDZ1-3JRrATkkbDNy1JrPDFWpEdMJ29xnnyF1VI4P8Kauxc5fXM9sSNdJxcmtkP8M3LB7ikLDC4Qw0WPNafgG36umzy5LMrrGUKqe2LaXb0EET-Gd_xpmFp_p67v4g40gcNqvPh-1xm5XVmVzuMDXtYmrGucWg8tHjB5rejuKpR6DLb6EWln1l3h6ikakfSzy8rLDeNXgPOolt6bzcwGIlcKqY-MPHcw_qHGIln8bDSDRKeyTcgYJ2Pg2cg9X-PW5raWhDNpYNOV9OTr23WQ53sDVIkX6Z0t4lfz3FYzjFZw5ClzUhUzUapGUjKIToxqnccn4qepx4KDWhh7iKi-u3aERqnjA_Q9t9M6KncwF3tTbBM3TwCZnVECnE4CF_8pJgmMZmiLHhaSnqmYYf-q1IylczGaaa2DccPpJJiWKYfBQwadqcIn02E185gwUp0IzPXIzmRq5obxDKzUaTDwKvPkiax03KkMfMenaqmoyim1LqjIHPsosCorbh_j9KcxpHwlhmKuV8aeVWy1AreakbnCz--qkYGZYyvvShx4Z6MkJ8xxR8hvGP9t65zkIc7iPPHKMZcDKA5bPivgHI2xB06gacpGPYHtPEvsHJ3hZ7WkpB3UoaW6dJCnU2Oug0-zUyFqrGwvx3TKM6vgmabHFMWHc-3NmYBC0s5-p84MKSGvPGieSTThdEFwbqHK0LvUledH4fIZnfxZauiZOxP2POOhPsNcPTP7rohnN1SxprzP7hvvnDUyOJLngnwKFRznlM_-FtuGlFKFlWKfM_fgWBArJXiSgSICQxFBrjCQVnLkhvECR47KBAjFx_fJcHIH0qti2tv5Zo5JGy5FDxOFdnqlpvBQDAsFTALowD5VDjMtH_CM650DkQlay0RN1XROLzBN4yFMG8ciadiBbRoUehIQw_v2RHWKJuChpWT50wr0aQXZVIM4n72AxGM8prV37sZhQMbqZMqzN8QvudTm4x2nsf-tzymCzVGfrIeMw8EBjtJ2Xz4N9kxkNA3Hb1B4l7v4meNCHrcSxyg_29x_np-zhI-cXPyTzfn4RftxiOvxOOL4Bxu_l1C74pL8IOA-vscNuZcGRhuAzLCSanOcnGLuQMiW9Ely_ExeBNcof7A1qcoHLo5Tzk4LxkVZKpMHTo0EuUcVSY5mmpFOUJNTkHSa8CDFjRFMMhbK4Ai4YQzMlAg8YSYXQRwo4U5eARscgaQJwosOhDnYBF7eKlpABKrJwEx-65IQDtnvjhgVShsPM4EVXOGhicH3WC-EwTsYutigCHWCXYgVQdipMVIh2CfRhx2D0ZqD4cGENcrzp0_rAgwj0tjocuwTFHbS7pZu7IaS7_wOxbKuJZ5YMXZ0kd9LER45Irg4QV37vZv_igZdS_XYHtyDIVBBFyJGjN0wHkECNWYMF8MilpTpgphJcwyCe2AE9yAPngGeywHI_agRAO0HqWAHa7AFbkTzV6BqfSQcKWFhFdbwDvHBpAnl8iXR8AMW_bQDguuqLie0Tu6o7zzAc8FImBD9GUVTnhg7lMg7s6KxUnsSVpvGLtFiaLd2Wsfh5tgZTvQijBLXZmwqT-7-MRnKSt-MiVHf1SkGSmjshlYOVVo21Rx7BpNrBt6mhtfNMj4qhjGSHWmU2t3AjM3o5SnP9zDOcmcZDTJvjaxhG7dRm8wQm1fD7apB5d6Ae20jAxDeML5dvRcEGpW_IMPdmWGz_cP_xF-WbgZv67xlk3wOe3FpzlFXy8UvkLWRVtivsVpwzbZka9os_gWeJ6kw8FO86D_P1196at5k_DnlCRjc9keEFkxJD1FmhsYOLQvu2uyEH9ziNcOABhyOyh_z8Tx0rBaUDZcU_ydPm9Dc8xZUYDgMpb0RAaCCsLT1ZPC9O9jpSdCDUG2TD9bMUnXKNBZgDMnFNF7c1Z9-I5We-WF_ezYzZn4W6QL93RrX-r66NJv6SsZJhhbvYBE-Jwyl9FIiPnrxcp4I0JUVUW2f8QR-RoVesDYkVWS8daaNyRKylRy2j16EVMeTJjO0lnKNkQ6EsuqljtMjw1qERTSTn7a7um0sc6mE8-49TekoyU8Iv41Jf9LUaJjcjTUupzFG3spfs8tMxilAVavxyNuatDEi2XHi2rHjt5PFcwzdgo0zuq2UInjVFdlqfh2jssLE3cPp4WCysa-ujsjPZqArUhawxvqp1v1SJmxXf4S-ktGhFnC7iHKklBWE0KlO3RqrS9qPuLPzRXCT9LIyIeYno6qD6uG-lmc0AWLMPd7SHd5zW2C2uWgtPgX1l1Kko5KLwaKpseDo_s6Sr1f0cHt30WpH63V_L7gM8-f8UETbtNtpCmJZjFh3YUWL61FASIKIB5J-8Zaqmm0Vt2YoBF3eFffUDGVJMr02WbLXmNTQNQ6ZmiZGfJnuGk8fnQft56SPtTRLV2OUyzNpLcLFCvJTLHI0zjSVeRuXYcQRt2tAt_mdAXqd1H2dEoHQoJxb8-OamVa_nfIN4yO-NF_q4EeFFYRdd7yO8ohZJ49WyzrG77zxQiKOE9aX2WqANUTRAARA5sDdzLAczfiV5s5Ymlbp2LJi3iNkwHuo4W0nURFndhDXXkkrj-472M_YvGF8zvrit_fGxPuHl3waPSAZEOjT5heJhHerdL9hfLpFzADu2Se2MNyWBeAAJyeEOiBRlVwlcoeuNkJI8q_hhGTU1wb8hlkR_AkOEFH7ENXfowmpwbbwPMIJ5i3hfuLGm-e21sm-rPOyQ7xc9vuYuB67SqkEL6suTMeNYSC-7UESAQw49X3ZwnYIz2hH8Z1D_f6G8V49T_zDAuSkEvGxvlQihaQcfNeIPM3nLqR0Wt1ozYA00COWiSKOlyPdQvnMnfmYkCODAFdzLW3hx619vQ9mF9WCsv34hvEKFXqXRTTXcraROiW1-vZ137USX0gHvLvLLhyYXSCMUAh5hTaUtelALe5YraYnW7Rs1FHY3uxqegAhfYYJ1VIUSw9YKIQ0UNWNurcyhfgVtbtqSlkqdexwU9OLIhmMjKHEkMzJYMy1LF1Xd89uKCiMtZHzgxkWBedpmXcjnXfdns-077JwaF1CJJg2v0qeZZXlccF0VyfIL9fyOInzlLcFTy_8-dIjowWTNIlFjSsY1IhIUJBJyxvJ4-1JctuWc3hoLU-BFsLWJF20i95Wqjs8VIurnnDq_in98kiKm--1A3bwU484Eses8CjbHXdy7qkqTkucNqv5SHwBV1NO0qEcCbiQiZLAqTETl6_cVVH_JZCIFpFPb_bFXI11qD2hgAingAkn6rmdx78ESiZKMEncoPqC5KSUU3MmaU7X9U4WiyeN4Btx8Cybt8GI8yU9m8idUMXVd4a45FklaoxV8Y0umBHP7T-GjWaDy9B8MiWpQLEzLwvfMKAjCW3tNhZVCNXYBxpoyqMVGAYwgNmBxe8AyOdjnRndZY24Tj6IbH4zyTtZH4u4iktcJWtIC6ehBPbQD0yGXcv5UBcmDj8Bv3yvwcGHn6O4j07HN71hEB7rhX9y4ZhvpdSNV6KXD_WG8R-X3egVFDuKswEb0PNKuF4t6gxJuOoiXVJhE-28NdzZb9mdsPCMj_AcXs_toToqVyhimLN2fm9SmsgWJOWY-a3wsUrXXAQ8Rm7SAHhZz6Z3o5q3DKnfusYtGcQLlMxMpATqJnw738HwyzYfD7hm84Gn7ykfJ2ZxcA1QK7Xx7oFb7_pda0eAEMgiBxrxOyk77mbQjnvg6rlZw7gCjYljNFgm1n0vWkYW5Kd-KoZUKTjgX3Y5FAdpcnW4DU5A2DAd6WOzCke1Ci978nsO0nKV0iEP6CFvX6wPTEUMuRvG42fkaG_YjU4Vh1qOpzThpWpJpUzKFel7yxRGK6hCy_J9YaW3082wyVTbWYbMDd-1IpRp37ORrBWIk2cF9i69bbuz3V7vW9Gdzl1i_Nw8klKrHOStB_RwDEW3M7RfXav14WPSpDmVjiHxTMJOigM-Cke62_inLr04FjBzJmZVtKXEmgNL5lcGvzY1W2qNXliFvzw6F67F6ehYVL6tM9ULPXGUd5Ho_AY38-Ckg84xuNn48h69GY3VvBAN-JZKpxz3e343pI_oy9EXfhdkvG89O-ZjfvFqWxrzXT2n_OjbjkDjJfdk8ObZPDdkPz74SzWW1TwbIjEz8yEhTMk-DdakZvEduGJGWN9h4K4vT-mG8aqm_QXg6JlttgRb3Vhg_C29Yfy6wGJBsgNVF61YspATcKZ0lbYWdlTsl4HFKw6ahWCjniZuSzcYeWAb-Yq3BZrhz9GLXoDJ7t31bPG6L8ocZi6xrpnI2HdZgFgIqShLc8GSmGsds4Al0jjuiz5_vs82f35ci3WCZRvk39_Vz7vJT1AyuEUU6MumwyMfumc7CU5gi6AH6Q7riniB16oxE_iONZWw2O7Dzq5lz45Myh6SvMpvuQDF-pLygBnysEh0_SCfRZYcwlO1uicOOZjbSEbVhosqJWLsEhPYvZKzhj0CrRtoTkmW3GVKnYIYkRoId2CU8Rxpg2orm-hpI81ywvkWLSqJbUTMVPKd15kVfzwfFATiU3yGBfXWQG67P3xxgx0yobN-DqA4yxIe3r03UYt9PFlwWro9xOyUhEACNEgRqSvvoX1kMYSv79rWxGSVp2hHfscCDRiVnHdAn1Z-w_jNQmQL85jwMScm9FkPNgAzxJfmvlthZCvbH47GGRSsDsXJiqAMGkSMYcBQTLMxIq_2ImrYjDUBDuhEI7eHoqV34C-SK0uswTi0Tiqh08N6b-kefNR1R2RLgzyHn1nLSXfGaQeI0xcdgx7ImrqzFEjBCkYgAHvnnjb7lJYltUMpFwNA0Q6ggWsJodqBp2WBeM9LYeEYkWZ0MFiUFCxCAwLGAA2Mdxc3FyGlc8BADoBSoASMuegRGEAFjMWMIX1GgIEKcSdKgvEADaWd3xnfkqwFIEMU6jeMF6WagdcQhcIe4fLABhyet8CRTE5xbJTG9x64u4_IjNzbEsRguqiIjtPUjgEINVK6SlIcWQcEQE-ZlQ5ojKUAzjALE4iVMPMKTDovzC3xTGzWpE_JaRjOouiQxkvU4KGiqR3w5F1gYDB8ovAeCxrIyhvGA8tiJJZjFzACDVqWNNAeO9FRucFcUjxDA8fzCeomkiLAdswA-iG2IsneGZTuLR44VtNsAeuAjWatfTe_2f8kOBrIsPfNQQi5uNKtFCqW_zYqqaELG4tzi4Y6wh_CQVN2KaGDcockzf6u_wLL5ZKQsUUj7Wx8twbFKwGNVDTsLa8JTq1PUHqy39LWvDQ-5VX6XhLw3F-c3nEGm3vfEE71ZKqmpXRo9mjPS3MEkMFpBrghu7sa_11DreDdeNDE1YCe4AV3awrL2Fh5rBrKHgRSbNELjzEi7Vit5OMyxV9gKSvAg0-Aq0-xoRWwff6lBlVOAEChO8BYL5k12E4I6ansgIEXnhbzJqN6iYXDCDEY6fotJiHcw1STUvBgjzLFldAPxEq8WMzDYRA6i2FzBwztDF5hCgVM_LZGq-GaetEMMWPc0tkHxCLAJujVXNJQ06xOynmdzcG145YiiRwoWPu476tlcjrC3DDeBrYCQi6tWFqY1wftSXMl72zJSTVmP6H_ViozBUul2aX04NxT6ZgDNLstnY2naDLn1QEVDgvlAPDmtHqC4R5T7mbY4goO-MSb4ZNxJF7Uag3a-JvKTu3ngLBq9mboO20BDXNWBvAhgRSc5nN749vdEAINMg0cWFNjgTiJBI2KOEhxehgQn1QpjmZQ6A-4FNim1DfuE9SfhObFpOYIGDDtY7jvvi3hdAdi-Q10JCJNR-iqk-PPYucAuGHPrxtGAfeGke5XvHQ3jPnqh_VL6te8_R6Ft-_cRX9V_ZLP6_L1twtPJPL796f59funG97T9_uGEXN2fM_4_UX990RL9RdRfPwPU_3_VNl_ocqq9_Tv1vhrI9R3Iz1u2PPvtHO-_g-sfZ7x-nN37Z3P59eyxvP6PeUSd_lXMcxfaRv3v6X13V-t_-_L7DfV_57Ypn8rN-krjftvq1ry_Cvuz7WseviVVUWRz3m_fu3VWn5JWfw1zsP3csm2fvZXLV9LO-z5_Ot_kuGNw25P_EYxf30g__mBUfMwrDfufqOeN5qXnG-T_8eN-Dn47NdvoPeN4Zd8Xm4YHwHLuxHs36Z94v802_2ftfz1j2XNbnc2_TRR_OsfxvL1r-4Kft0w8oaRX79uGB__Grb170L8-voq47TJ5-XTwKhfBIXf_07UVklWvb-GGf4mwn7hdwL5l0TJ3P8mQn_dnw_8XxL18fqbCP9FIk_8f9nTP1nJz3IE-tdM_xfk_n9c5s9fKPHfiPM_ZU7-wsgn8W9kTv6icPTxb2RO_MLv5L-X-f1BEP_a9v_I_rxnz_sz_iP_EyUfxJ1AUOr5R_knUjyTe0wSBUVgyD3JigdW5BiKpAhyT-9P5I_qTwzB7giGYCiB3BH8V16gKJmlj_iePkiieNxwJO_iqv3Vtu_u1zDDP6pl2fI_SQSnkD_aOMnb5efqL4b1-f71M3jDsBvB_jH_-f03_0g2uNxwpK2WdfnPWdZqbfM_f_g7KPI_SPw7Qq7zlq7V0H-cvYLl2p6_vf5r6P_mb-_lLzP4Y5vbP__r5eC13JLfl4G_l_z9-sc4D3Wefpvcz0a_7e2Hkf8vAAD__07vFUI">