From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17382 invoked by alias); 17 Sep 2005 18:45:21 -0000 Mailing-List: contact binutils-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sources.redhat.com Received: (qmail 17359 invoked by uid 22791); 17 Sep 2005 18:45:12 -0000 Received: from mx1.redhat.com (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Sat, 17 Sep 2005 18:45:12 +0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11/8.12.11) with ESMTP id j8HIjAlv012998 for ; Sat, 17 Sep 2005 14:45:10 -0400 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id j8HIjAV28012 for ; Sat, 17 Sep 2005 14:45:10 -0400 Received: from livre.oliva.athome.lsd.ic.unicamp.br (vpn50-67.rdu.redhat.com [172.16.50.67]) by pobox.corp.redhat.com (8.12.8/8.12.8) with ESMTP id j8HIj5O3021316 for ; Sat, 17 Sep 2005 14:45:06 -0400 Received: from livre.oliva.athome.lsd.ic.unicamp.br (livre.oliva.athome.lsd.ic.unicamp.br [127.0.0.1]) by livre.oliva.athome.lsd.ic.unicamp.br (8.13.4/8.13.4) with ESMTP id j8HIj4c4019975 for ; Sat, 17 Sep 2005 15:45:04 -0300 Received: (from aoliva@localhost) by livre.oliva.athome.lsd.ic.unicamp.br (8.13.4/8.13.4/Submit) id j8HIj2Pv019967; Sat, 17 Sep 2005 15:45:02 -0300 To: binutils@sources.redhat.com Subject: Re: RFC: TLS improvements for IA32 and AMD64/EM64T References: From: Alexandre Oliva Date: Sun, 18 Sep 2005 17:17:00 -0000 In-Reply-To: Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-SW-Source: 2005-09/txt/msg00200.txt.bz2 --=-=-= Content-length: 1972 On Sep 16, 2005, Alexandre Oliva wrote: > On Sep 16, 2005, Alexandre Oliva wrote: >> Over the past few months, I've been working on porting to IA32 and >> AMD64/EM64T the interesting bits of the TLS design I came up with for >> FR-V, achieving some impressive speedups along with slight code size >> reductions in the most common cases. >> Although the design is not set in stone yet, it's fully implemented >> and functional with patches I'm about to post for binutils, gcc and >> glibc mainline, as follow-ups to this message, except that the GCC >> patch will go to gcc-patches, as expected. > Here's the patch for binutils. > I'm not entirely happy with two aspects of the patch: > - the way I managed to emit the `call *(%[er]ax)' instruction from > `call *variable@TLSCALL(%[er]ax)', dropping the offset from the > instruction but still emitting the relocation, seems fragile to me, > but there were not additional bits available to do something > cleaner. Any suggestions on a better approach? > - local_tlsdesc_gotent is probably too wasteful, since very few of all > local symbols are going to require TLS descriptor entries. I hope > this is not too much of a problem, but I could introduce another > data structure if people feel strongly about it. > Also note the several FIXMEs with decisions yet to be made on exact > instructions to be generated in several cases. I'm yet to develop > some means to better evaluate the performance of each alternative, but > even then, I have limited hardware to test on. I'd welcome feedback > from people more familiar with performance features of various > x86-compatible processors. Anyone? Thanks in advance, > Here's the patch. Built and tested on x86_64-linux-gnu and > i686-pc-linux-gnu. Ok to install? Updated patch, using different relocation numbers, and different dynamic table numbers as well. Same tests run and passed. Ok to install? --=-=-= Content-Type: application/x-bzip2 Content-Disposition: attachment; filename=binutils-20050917.patch.bz2 Content-Transfer-Encoding: base64 Content-length: 33034 QlpoOTFBWSZTWc+XwUkAz2h/gH/8wgB////////f/r////9gjx758t93TQkm clPuO+uBqFPXbmPro8dve2F7b1pT15W3enud5EJHXfahl7avKqagtNPDX3HX sDV207u23zvXINrXuE3r55rk3bH0FvOdyLY0+l93vNWZc3z2el9u+1n3a8qP vZju8rlKqWx3qFmZe97QRNrRtV3r13Ze3ZwYySrcu487F2px73XtjeHe4ebd 1N3fO+7va+9325xArwgvt3fXdW2ujiFddA6rrrbulS9ZLXnK1Xt1dd9m4vGr PJ6vfTueNkPc52WqRNDNhpVUiuhq33PXlOjcE99n2x59hfXJE5DvY5ApXvu7 kyiYrG2xHUtrfQ1ec4bvRx553NsT1vtLaYFUvb7jFToxKpVmZPbFe7cemCgP ZuUZpSokVUoKAUIlUqVCbLK1BQo+T7s+hlpWjWl9au9T097vMBy67YOxY2DV JgFiFU29CSIIAAjQIAmgGoFPNED0kNqaPSG1AAGjQaASmgmiCCTCAmRNoKm2 k9NJHlBp6j1AyGQAAyMgAJTaSijRqSeptR6nqeUNGmmjTQA0A0AAAAADQABJ 6pSinognpU80ap7RJ6Rp+qNP1TMiYCMgYgAyBoyMQGmQIkiEaAmgAApgExTy Iwg0aInqYynkIzSbJNGhp6QKiSICAICZACYTSaZpqMIR5DSjynppPFNiE2pk A0bw9AxfFRkQTWjAIsVCFAiEYiVEGFkSZUP8KqWRBo1KyDQmTJYpFsgmmE1U qiVVYrt5ba7WstrdXngQnl2zVTTWSpspalqtus1utzRTBkoaSZpNCNRIsiah ClhIoWUUQ7hCieHQojaxGPcFlHKFwkwkzSYAP4UBIHKfxl9j99sOMXJr2Orq RKu87bMtIyuleRpds2abCxoMYXGJVlSySrIua1111F48yXd5KSNBJqZsUUjo 7XXl1tGtF552vkx6VzEmZQhM1VBgEEuRLhMMSIpJLL16ytzjpXdpOrtf9/4+ r09O07pl6y7wi4NXVN1XV2nSLdu3Sbtql1eXm6qWmDW8u664Oo5RRIA6XUkn HG4bnEGYQ4wrSSIgLAYCMIyQRIUokwpAlkkJhbSGJBK5IGyu3a5Lm6PF5ZKl Uqcusmt4rd23WsVprhLquIg4lKmWYQJJMgkIpEJgiEEIXKsJBuYNpTLRZJkJ YCZMDGYirlZmGUxUthbCZHJD/2kKgqanwEKpE+t+SG8RNhwST84AMBXREFKQ T+A/wH9P/P9gfq/XqUd0f0ysxD9Vfq5E5sAEJAf2QQziCOEVRF5YeLyrI/1t p7T04yt9/TcvI/qh+tNkIkNcPGeD0MSqnU5km/bDJybRdRGiAqMYwCMCMCN2 6XGF+qjC4GJrKUa00qtjXCS5J87JEjDkwkP4BSCaOUwm7U3ppNjnxaG2rfc7 e5ex3RS0SyiUJlLdaEoJQhS0yJoaUIUhAJSQlDQbITThslWSTUkB07LYQ5OO d2S2iLmrvPNKSQhqMknKSYJxxSyQhwsknCSYJ3nHQzIJ3WUwFIudNkIQhZjQ lJLTsQU4t8OxtoTdYIjHZpvKf9j/Zyg/QixH+BDyYT/4w/cR8vuCLBuHBxx3 UWN5KfZWls443bmwowIhUJRRwsfzLksWmlQSgUccfx42y+f3dFwcf9cNwIDk 1pmOo+8Bvs+NnG6dHCRG2X9tmjBoKIE1G1wFGWxDmwvwvYwcpsXr8HxpPjgO zOQIFEjyU+fH6PDE4TY1lCYXdxnamBxHLVlbphJhzFz4pqbWzscee5gweY5g EZcOn79lW62IMDCJBDjJkxC7RC3h35F1nxuM9w8kM8tnEiwKgP9bSxKjOoID H5kRuK6i9fubOXG0pttL2ZMFZcQEH0dnGLtw7yXy4SaOg4OyPQk1jeiNnB2O HGpFnh78Pkh6meT1bvHb9m8Q37Ax2ZhmGKdf86GZx3ZngGmn7PRbIJhuPdAs IjjphxulTpRm3BiBM/4ygXU47jlK7hmEC/6D+k+s7TL8P1/hOX8/Z6/wjmbr Ofuf3e46ouZkpxexrz8T8hkxB03XyMuXZbOmikyXImyXNi87hDCKHYX5fl4R LV7IIaLEyFKJkkhfaneSKTDWgXFJYSdk4w7Dr9x58fyWlMQ+JSQq+RYsFfMe atPFjBndnUD38fMpkTDA1vCAMEXGSjzi2xbD8XhjLtRVbFjsWPaUz0GOqo3B uOh3ESJqb95tkzjs7GZEdzjM7jjg5liQs5xk0EQq1EU5Z1Dc3kPz7+U58tIM JIfI7M4RuU9jUhWNZNSdtXZidsV1xqCRwT4fYgdLI4KQySSNQIPQ9Yslba+k s4/T2SQ2A8rwIXIhzq1JkoITCWx1dzWlN4Qg0zo+Rzu17e3POSSXfM4M8QL+ axTR5egOo/2HMUMHBoUPkRUkUNnZDTDxe9BpoVch6AbPRy8xloRJAJGEYQkZ m+T5+nOc4vFQR8e+XeWvLVdu24GMWyPsidsDZDTCEkOKVAL8KROUbzIyxJbi 88JlRosGcrwu9cuWFvATGSKb3FjuHcfkG4t8gLgHXCiiZFgJRKBtFhVBgJtI KJCKNC3Nuz+2pIBzxJDMNwcAgRsvAY48VOgyHRe18a8/aE5AULK26qLNsw0H DM0YJ7DCkw3QNZDB5XnQpMeOxAkWJHgW3XpwwdOXpMdrUKDhhHIghxySPD6e b+v66/CzxFyLGQDmgvqBZEgYxZvq9QA/OvdXWy/G8ldi+i34ry639e39Z9fm 82Pcfh7fG6eUNOjOPbk5ONVSayFfUSi9WtKkaYGwmBLofp22eVTOH3TUkf6p mneEnkkYGO27+FMTSSbfNhy1i5GL0wqlUtR3HzHcdRBnWQ81jtCywwrschD0 Gw5geG6bmp4n6k3kd/6ySVmk0hKyfeBcbz4khuPphzZbJNhiNnSTS0tpsNls Nu1bhexT77m33F7m0lVs29MPub2Vk3ohkiMEYMOw+NKqxeM1j52Qi5xHMVFZ xnHL8rOHfiMJ8oidTWrqldlBdntcl00EYE1qbdu0ovSin2HWppsp4HhU45TP avY60eQd2VS0bXSJOtqN49jNE7hmIJ2LaCzKIAdo+6IR8uUOzP02gxjXXwkK bacJPH5oczWFenTnkgmiKj69UdhbfF6oG6cIkgSDOY9z3XbvNBomvy7dXKk1 8iNYgCO5sGIXDgr55Qk1S0k6byUMg2kOfow1BskyYR5eTHi/gIF0Dew4/T8Z g/KHqE46DXMAv2XqSt9rAbpIihuFeYOffIzo4cWRMhKQpK6oWUjadWGjE248 hji5miEhG8MIbadygpWHyB7nBsIEgdNsoTBk2fDuod1IC3iIhsTLbuLhZqYp yw0aNtBUz76smk6AEyFA7ZaYRe2JaCyAF5jPUXXcUSdlBlzMiS1Pb8fiY9Y2 R8L4m7O3kicK4dHMGfPQek0EOQbwYp2ZlMlSVRVFKQHzIQyDJeAx60w4wPo1 HC8v643ZRZ+PgkLDYFuFsknN2EqmGE7Sd1ttfhdSYX1q/vTivGE+nz6SqsO8 cBpEN3AoeKwapU8I8NRoYQph3dE885LKDE8pzsR1eVbpXhqDBvC8KgvDuKcD gcDgcDc4Hcdh2nM5nM5nMdrwfS7uso/zuUHKei/rMH8BCjH54GcjGWo9dXJJ HX5x8BHtfmOgmGrGUZk2/EeDD4+ss/9nYhRRGin5/58Zvs9J+Lz0jN56Reqk gSEmEgXzYA2Xbu4l9f2dPZ3iM4rMdlWsxLueXg+JHPyQbZmvSmrbiLxqA3fW P5K/UZriX8n/gFnhY8GpvrqtuosZUYuEvzY3+964za5uyserwtPRY64u69j1 eqfZhazVf4IJR2QJAkJEkCeXYen0+mtns9dbbY/+0/3F0h0IqCHIqIH5xBFC Kn3G23ztqMIXo1c1XUpX1dtqwkhDb9YwREOJ9Q6DpB/s6XYukE1TjD75X53w ob74F4XWXJbbjMndOx3LrvHeEOSTztd5uDGeNHdLnQH5L4q+ZftXb9W93t7s 0Y45xXICPi2+GwaX1Kro/x9a3uqL/JiGxZtZchkJSzPUw0V9iXPnerS35FP3 7pha6SrEWdfpNmtmGC4ZiVcklSoyxzajSr1WOnZiTTbHCwzGEdVcV1I+veaI q1wYMLGk+NW68jtul066u6YXdXQuW6lRWdybpVL1u212beIWMaVhHFkak0YV LtmirV50gyqsXZhNGMZp7UclH9it4n50m8xVUPfiNj8P3x0ROHtUcInZt/OZ mhE06hfcMlKQastGBBBI8PD4GO0xFqGFsyHSzk81otqoaYxUwxi23H3yP6a6 yKVD7oq9RF+CAQIJgFNoiYgaCEkJ3iw8sZCGTPehumCCoPfSljbYxlbt43Ur GGLjDDJUrt+AwD2Z4SEOUJkgwlbAiwy+fvnttdDD/4tyeppznV1fTHwEblQp R7h3EPH4IrjJwpPCMlUVLD9ckQxNuUXBsmoR/OI3CbTZZu3g0rSwlJuTkTc3 2YqWPkS1MRsBrbuWNoijEKWlVKYaVCigoINUndaksxTSS95Gi7AhFq1AG0gt 4rCMCXVaLtkMXexdmmkylVW9jSyUMl5tKpptegDqxpvF1vXygtE3FDZlgYkG P8/8Q+vzncHY7xPMkTuVxnKXjP0p+RY/adiHZlK74xkxwpzx+kZ5x3JBQ9Jg YqAaWNtBApsEGMVTvOUpTBG6zYskNzg/c8ZiePCW/BHQsD3wPznv90PTYPV9 dkT7TFZI/jHScdoiYQwskuR3uO1aNSRAKGrGRaM7s5SdICcHJ9NgbnBvZ/2D ht9d/tH5T7uafunuvQnkoO54MQKs1Ker9qK3dQY6mIu5+rTcTNCkbzD6zMiR Y9lM9k345tP0W02vCnuSK8jzbYyI8qYrYOfmOdN5cYcI6yGyorPQVldckckM H/QUIe8sq+5w9W8O+8XarD4ZMh6WnscGOLi9R96HqbuxK5JU5Kek7ej6I6j5 8l6wZOMk6Q7zpVqwMOV5DiolDxLC13tIJuFYZDgr/o4H5Hp2OV482qv7PgeT 6KmK2VWIhYJF+NKCQh+c9hy/o5z9E/5mA3HSPzj1DgGNhsNhsOOQw++QcwM1 0hqBSLGQFHWxBQ2wFQOMLnBsige9Dg4HcZOjGYWN8h9JGEfWB4aT3lEM1PQv lB66pF9ckEezm+aZw9snIyJhezeqbUUwjhe2N4YWttmaYyrsHWx8VywysqWk 6+v36hOJv8xBkZG6tQUC0oKQiEjxQxAICpEkwa+gfpcDHR7/g9tvrh6VPCx3 s7rj+Zo/SqbXgmFqyrVbtXJId71p9ppHuT/dUtn0bqAPR6K/pNZ7h8u2M6aj J0yB0yPHIyJxMH70Of9/tPF3vErSvkPtbJPxH0H9z/Uuyc+OR+JxYpVImZmW 2Mskg2NHebGhQoUpSlKUppSlNKUpSlKUpSly5cuXLly5SlKUpSltttt+tw8c cW27u7ttttttttttvo+rh6xnXk2SYE7cB+XlhLYYSRtKyFhRhSFLBD1cq1VX 1h9/zEubA0jBHdOCWH4t5yWHltQ+UFyBDVB7I/H8LnTkxzSTISdIMexsJC1Q 3pNeVOQCZF4GxEI0iRtnMKkDywzjVH7pUhRKJhsmDVBRQoo6621JsP2Pskfd fjV8lhlM90xaWyU5zAyVPlT/unpCe0lCOQpEaH2BqHKgewHQVIUlhy9sCRkJ gOwbib1P6vvH5Uck/OT3Hi5SJJHesRBaAmCZBUVi9LJDG7kdevg0TYMO6oqS HtSR/Oo7gXXIyRkkjCMkCdpR3VW08LWe7C/JO/RbG+Wo+tOeBrVCysFYEAT6 fQAviEB/EgQIhQUDxqPBg8VNBJPhFinZrDvCjxDoS+MGJBD+YuQtlDU0URYE A+OYvI8/UgnPE/Ro54+B5zzhxNHxGHyGG8ceP0QbnlDjJtl2/OwyuWZYtQ6w ga25iVpvMTj3rJ98pirYfFjILVqzwR+1R9Qh+8wQ6TyGxGoEkt7w9NE/ZkGk BNGEzax8Fe9rHvbfLslxvW8XMjLGWVEUSyBMCTBaAxAOJNKakNAhmnEQOEGo hIMIsgwMZSTM3RV4YheKrHRz59D6iPlg+oco33+HTXFrT5FcGsSJo4vGypgq QVKJA7PVYC+p2BtQ4Kh9BjAfwxtjeyhIv2QsFkkyqWmJRLiglAstLaYb9aNM PhKnWndThcLSqm2+/dXY9rSuueOYaoEcDdA3ZitT0x2rEOZDJtrobM0UFEkp JJvJ1q223fx8PDkdSm/ZOujd7R8Vj1qVmT9Qrr70hOkzNjTqNpOKvfuRmYxo Bz79Hi+0iU4hgeYfAfxi7DaPP8B+DBhCg+FiLor2zMmGw+zc+x9rY03nYkVJ 10fuLK3MR0nA2n13SUm/D+BIAAAPhvhX1fe8vyrfVa9Ndt2u32/uVXx7MYig iDMzM1x18xKg6FsZHHjdVQL105/eFakGUyIRxklv7sAsjpNmzZsz1OOgLfhD VqJGOPSskj7pUJGYB6AmF8YkQiG9IXM5HMDuFdW2j6FuVAqndPs9RttjK6x3 Hoca+Xb61cqxSqecI/NL/spnO1sUePjhjMPHOnj66tSixs3UNUqQUzo4I9uZ y4CvvhLhM4GxwZuHDQpMUdR9++F+4cNKGzFiZ2hl1UQWVWK3R6oG3W8dgJsH ZOc5yCYwOK6aQpkQ90hS4IuZLyFmLOsVTuZl9YHemYgYUilsFMtTWgmxjg+v f1BuNRwLGC2GcAwFHnnT+3yKA97BRY4PfWLKFVZ3HbUEJUlIVj88vZed8IMj IyEgQi8MC4lSg7HamNiwdaMgsqyyqzIuIuXdDHJhISQwoOGImEJFxhRrsplc XGzOeysU8KNftC7kbBUZqhA6ZMIYQy9tQdQdwSwhilkiWhx6fkeHJrUOgcCi QtVctUSNU4mGZ/NsDgyKQWP0kYs+wB4SQ2NOn1GicXbJTl5H0H0Rw3S5S3OJ 0csbOD7GNj9psOhxdrgORXFydUWzMnAp26tT71JVRpZKsHYcVd7WyrYqrSrK tslLxzNzsMKXZ9x7Hq+v2afJr2X83C8fhOY7w5b6T4fCsqzFVicGiHqNFy7p 21JENDuYiM3iMJCxcNKJTKnzmSmkucS+k5WHjQZWL2KaTy3nZ6YBAIxjGMZJ KDokk8d1zeIqWSSS826bAq/qW9IYcLNwUs/EqGRA8EhyjdMxhht3Hhidpzhh 988D50fTx4144xziFuVSQiklLG1VNl1jrYxrpN3NhLYzUjXcDdjpXa/+3e/s cR4O9/KQ0SkSoFSoqQoKFChZJyjnTjZ2fDto+MxXSWKdJCGyvvOzukkupcD6 n8kkzLDn8TWJ9bkq2V608/jJ3vwUfan7EweY+h9KvRem+eWlKUEEs2Shq+AD pJJJJJcOVKtL4pe6y2fvrSrO6WyZVpFV+9X+qMaeTGj9Bs2VsVjIybjaLayi 2WyfE49IvcSSMISMhIwR5IBzCfjHnGxN4dFj0Q6UtJC2lxluCZlgBQKJgnzg aaRpoaaRpofiUk+tN7bg7/mtWygL5GVUVRA40P7B2vZ3B6VGvY9vbmZkIQhC EIawpCCpBX9SikB+RqeA7S9jyRHrVuRT5A/jT6B6EyETQ7ANIPzpyi0TgiZE c48y4oK/nLAs9k+yO9rD57/nSo1GBuyafEvpJxkC6QgQictUTvhV4mzjpLwX PsG0AhqufjWTtOIw8D6TEsQh8s7LtzoMNJyUUvEtZQI44pbeQKHfW/Qi0e4A mwxN9FQ5fXuNXaS5Icain4DMDqH5DkPwHlQTl9D2ajXklQaN4FL4FeJ67hvB Eba8PyQ23KSBHicxchdlwXDBSCtEgLyENDwRgB5kihk704p+rnCDnOVWyOIq yKgsgtpKbU1rULW2bba2SqNgNNQKzZrJqTWm91+Cq/bPaFwD5vAnmkr0ei1r ztwt0709ShzshBWEDNVT6DuIGRDv8Hv+/KYAw5aAdh0+AbCj1HaLFkRYaR8t /s6ZtshDNptMgfEt8bksAGJXL3H0v6c/G3+s+p+tA+AopZClFLJClHZ2F3fd JX387e9o4Hq0ns9ny5+H9D6k5z4S/SGCgh/fFykSXELzDtRhRE5BIqYoQTBT yKgIHgEhbj6VL/cQ6ChMWezu+0Z/j1v6P+DCMSfz+UK0dgXYgLU1DvWxwh85 7fg7u7u7u7vLouZoxQo/xIWSlaklfRkGvIODo6dPzel04h/THRIenv5IIG7j sHhNJHdVdg8nX7/f8ZCSTtsgWszAzJnHcO6OYSZNCEe80OPksmxfY6fcUI1s t7kbiS3BZdy8uCKR4KFypG4+SOsYZDIYJABICkrKDQtw38R7m8pZ8gGiX4lp 2mHtEG6ImGVso/N5pUdtk7VNt3F9hr6vS3r+Lo3X6Tl+UspF6TqKNFqzbJ3Y 4Ad8fAaNbE5QYNxYTPAnQccAMgLexwOb+QanddAPsIQPjSglGLDQUEj4zvA1 Q7lCYIFAZHch8qhiZIQsy0swQi8Ek5QMP9MIDJI8ya+8PR8x7dPLP2cukDlO h5yi0XjtH3VmwMr27n1IeX2EzsGAMwYQviXXnYyujo3eEk/bEs2jurLzhL1f TBFOeUeQUH3NnS5T8Jbc7t8HXbHwJ3adpXtW1W5aW5Slpk4r0621lrfWsmZ0 DaKSxVlQWRYLbTrsgByjo/7ecLjc5kEmBHPfaqIQknq7pepJeldvjoajFhfS d7wPUwOMmR2kg9eJNxsKBBK62ogERqWIe6V7P2+4h7KxeqgvF+UqLECJliyp o9n8PaeTmcT1n+BY/GbHtPrPB3ec3dQy9QuIsOQaoEGKNQcKC8wlcgcgIYc9 d1ljRWlsxo0mWSxWnouytq79vEyw2708j3X2HFOvRXWJhvIRjIxSESMJCKyA SEikJOzV58tZ+j3/X3nmNqOuAuo2mB83Pt/H4HXUU6nTo7u7PA3dwbjuOEyg 7AIAdbKwSOZjjcLI/O5iMUij3UEABhhI3nvnBjIcJ6Fiy/UZBgWAhDuPDRVj qIGJOwuYqs2nLzKq/TpVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFR3cd3Hdx2aH ipbFUE72nT12cSk+kMRTP1KvuR93b6L+nfZ/avhr1XzIjG5cind7LxERFBXk uQR7U4BohZbbatvxv1HBhpjHk9LbmPa6C+50T4gyKis95uKwKr5573fhQ7tM uumoDaflDs/HwmW0eTNus5nebB9CAwgCbNxxAY1kCy8IbrQdqC0y7YQYtiEC 5exbqU5SEIu0llTEhylR1EPVCk9RzCsnaxaGdPS0mSBTJFB1isPo+adBidPO rUXQnNhuW9VnMkaYmpkj5UD13e6DOQIEz6e33bznOfFHaSJCSMjISEYTPjDa Hq1gWfQWUJo/N7eknO5kFnRHYk3g+lcDn4r7CxfrHKisxJVET25nidhkFJ2j uG/0WiVQyWjHUJUd+PkRNixPTDd1nHfd3sSwvwCtFwQQTFTFQFEBRDy+tJJJ JJJJ2FN4jZAa0rq7m6FJ6sigxPPgHkXgxie8NMJg8A09PoFCm0KFKUKUhfk6 FzSIRmXBkxe/pPj/HfHPa48Z2HqMavQWZgzKwXKwVlwVlwlmYfW/g+F0bSux 4z3n9gDOy5Jjdby+O+NjGMYwMxevFmKgJHcDCuY6iOm4tEmtFkSDsYFS+/2l qr5e5zmo0sYyv7uz6eXzuDx+RsOT4FOSIdh+E6igzOQxqFIKo6LiU+Ga3MYE O70nMNzeOG9po9zOIlU1Tgjo6JknADno4WY6F9DRJgzQ6uD6SA2M+QGCGNX/ ec20zGQPU7ADcC895vO9F4fIosxyIFhgOajBMiWFIDlx9Y5JIDkCbpMsH+ko k8ROyW7WWWDusocYkRQROKONIGwqDeJvo4s3qC5VjF5Vo45TIeFR8g+JOtkH uR0ELczo3sC8QsLOg7lAU2CnjU7EmESHv+6kgTZBNiazYWbXBcddwQDkrZNe 41BpU1mF8eBlAkBZEGQVkUMFGMZK0QR6VUq3IwzJmcmK/vOFJ1lWqrN5C0sA Zkz9viZAZMGuOtVhx5ex97c21SJ6oprNg+DJiOH0kq2sCrx1D1xtR0WUsoeS kOI93tP6DUTx4zS90D6SGR+kpC/ZV5hVG4PoqSiFzr2eCYka+3VfQmiHzn+z aBAjIRUIT2OZzlVQfDyvL3O3uqpzmvCQhBGxg/KOnVctAezmYS0v95cglA7/ 64jR+p6/EJD2vW+T979nk7udxb8KK/m9q/a+36GCi2/1qOEyRkfdJzYi2rP9 5jJ7X31PsXP4n6EhG7/YwSR/WVGlCwskUqytKec7owmoxuu2102NWr+CSHbN PyKfiWBqUGQn9tlqrbZQ0xBZCEjxKDCyBCNAl2zdgSy2bDGN263AQgEBWyCW sIll0kxIY1U2mG0mSGSDBiDJEabhdqmimkhCBEtQjQsiJCyI3aWwQUgpZaGi KRUpEGzcPxyG8ilksJ3mHq314zatttG211qBxRTi8iQgfYn9Iy4pc/EJATBs L2ETnwAvt++f1WP0uDeekj6ZTf3AsSqJhFxYEIMhJhpRJfzTOZwL4qGTAhBt HKItUn1pX1/8t0R2hPaqJwTTER6FBirXpWDSoxpMWWftUtltoNEZJCrCfdZh F/Ccx6iwGJBF0RV5XzS3i3ljZMzSRkfjv0uquVZHJuyEtJN1EWULjBVTLCNN MRaRNZWTMtZJMVEVUv+RUpkhhSq1djzv6P8eePyv4+fDdWbH8PAr9qkiLM0z pkqP2GCPJN/n/iPo/tr8a3Qb/Ues73v+yaJM1Z8MSBhZ8v8X2SMeRYW4SfDH q9TO0ndyi/Rx2h+Ulkgkpxw9C/CA9g59cMclPRRKzYZPvHtVJKNqEKx0czDf ZMZN6Sn9PQ1vLh/j5CV4rI/piL7CjI3V46Eoxll/Cd2ZfhXCfV1tDAMtym5w 8zPM5P6DDI6yAusLi/aCEZNWLcWlpwPnGIBSkXA14FHiMUEwcixeL+ggRXTj KCLWDGwseMSbt9pACEe1DSytDHY33yaRXUvYTf2O56/4D3+26/L6uc4w1e/H T4YHBKh6ZUhZeWtNKSWy0tkpVjyxnvCWiJj2nwK8PF6BxOKTfGluZv8xu2xg nC5vC5M3dBiZMgTPSD2fm7L6USPAmdsOx7SB08qG+2khPvoPmUus+TDZw2GJ FRQU1nYUEIXXt1NF+zZd/l8TyMV9tY6is5REIlQI2+Rq90GcufVk7HBuZ88a 1Rtcc1sLA7VFbmaNzgvZT13j97M7jllt709LCksjZE3piyNz7NCbDacOvyP4 j8yvyoYklDEShYKgQFYoIEbWWtWpbSqESRL/ppNaFKIfiv6ItBZX8e0Wxp9F 2rw4PT5ZMgX8CGpE5GIYXTTGQER9ZsUKCKjUMxpJqPSbIcKxZJ3U/Y0xLVW1 QpNlkHHgJkolk8FH9EERH4KIj3p8WJtQTUpIjRKhlRUlkETY0aRFCoJRJYGk ERQyHYhUMhZWgpl3RsIUarLRFjYGQCU0hSuCWLJaDRTSiAOGI2Rjd0RPzENE KI2jLtEVYrYg4MQTEWmUON6FwMhAFiQqCM8ksn0qgr/HaEbPetWOCOjZMElJ RYKJbEnSoSJlbGlqKhmsKlIu1dbfLfMlQJTCHj5vK4WtYsPSRAMoMVkEYWYq WamxM00pSpZZe7VNjSbahgtFFVKqyWSrNb8M7029b111GmTKYbNaZkosZZtp JmaYzWWund3TXddXd2bVZojGMsVNNWr8HbyKEtKqVKkVlQcwUUHcDcFDSJZU lSkoIqVBFSKhSVOEoGID+ViiqULixQJJCgEQo42WOKIuKowjKVsVWxKaQuQk VVALIWATRAXOBmRRwVILr+y31z0JMzZeHZ1Hs9unhJTGfuHUio+49ZIRcr4o wSW+zukwm5xMEj5r7zqfnbTGaVtsfoOxgbPS8d7hKhfB3njR74GFMSCg5CBg i8cOhWkgwQmlt9C/Rzff3pV2am1RYN6ta5ginAdJLQpA0GThvHyNtWgd2aiM VmeaaUHAunIaNkQLJ+lOUyH8JDthNQ9bu7LJtm5PePYEEqhED3vwspOSZjLK T9QaPUx3CSinlNmZnas3FZvDf+nkdQR/jOfZj2SD4dB/hoj1xHXW47B9TH1s fAYJdxGBCzkDciN4ZRkDMaLYuIQJOQkdj9x6M2MCUgef1igs/WccuRZEEP8T 6D3n2HzHsP1nrOA4DgOA4DgOA+Ko/7YZGzh6gXHiYkdlkMA+RuLJeXjkerXy jRf1CSNMFkih3RBnXzVhJuqnDE9Ye77ZcPqA4Qd+kMUosnGXL8j6KzVnw/Rr ZszfGLbOOZb3VkrtyTEjtMGBYvJU5VzQ6JZhthr+Py3XyTCnZbYjyw9vqYhP yYnQmYSDWrt72MFJry5m7iqcpTnGqeiPJaqnoYwndXrepou7xs+MqrwXNNK0 9vN3b50oe4qc1lQ8l28lLGJxOqKm1GSFZinmdaKmkTF4c1N3dGSs3SfU1NWj D5us5zOolWn1OQ0fmXJv9PEyWlWh8571AfgfUoxFgwPrCBUAjCBCw/Sibd8G LIQlNVI04IJdBMAchikSIo+v6v9JJJJLCr9jAEyQo6ykdRqRViySRiPUgJJZ Ik2EeQsgfV5OsjyRX0vKD4jW72+p5orMRDwPU6NFguaSBYfdPnIqVAo2K1EP z02Da1JGJgYhRpRWEDMT5xsTnZyFWLZTKVY5JXIbRinGJiidbaMqslVOatYa zFaUasdTTkocBU7TthYLAnb2+pRVUspgByzdbatq4kRocIqT4lklWDpFDCLA gkYI4xXMXEFD5a+HAPQz3VXRXH3rT/rw2NsXsnMq7pdTe4i3d74FfujHxmQa EzNI2cTCUSzS9t8igcDYlmKZ8hC8mUwwq+hrOjUEygY+cmHYw1bo06j3ECpj YaJEroieCwhAvRueY6dpQbQcR0tZuT83WSZbJ57pzW/lpjjUH4n743j6j+Z0 wu7dJPjotlstJwiYIwnxv/VrDJJGpzNlqAf3KJCv8XWBUPp5uMbnvE/OLBE5 E8D4J9v5NQWHR4+jLZYta1qlS0Ja1i1rVVi3Sndb8UhJJCdo6deZpFbkQ/mf j2+/0iZBl9Nv7+9867b555hswt/Bb2+H2wCfC2+W9t7Tq7Zskt2XXc1+T7/z 3mZmZd3TzMTKifF6UVT3bJcjoWwdoIlyQAeZ1CYQceA0bIPDhJmWDKVa5dor DAq0l8ChDEV2EQxC7g8TRTRKgUyo0aUOGQZbWSSqoqQlKJzwFsRfoNwdAeXB whQfgNYhMRLJMkLkbJvssOnswNZIR4mmnmMmh+Yxs3nJZ2pwTdN5VzJVINh4 g6OCWH4CqP5/0SbKuIFjQ0EkpVtrEsqRMMP6/+uRtIV+liMNyswkqoJGCHWL 0/N5TvqB1DcLhignh4GSOQGV0yCm4KsC4do/yUaMRNIUHbprbbz3gAAAAAAA ABYAAAAAAAAAAAPS2a98fQhJCPGUeyLv4RlI9X5n8U2QOcRfH4/GqVVLkZU0 NzvzDZTA4QFBBkoDaruXfma5Az70GjPGWrPm37NLsoHMYrIG8GEUgad1wozK NZJu3DdTqRG2Ma1EREh/KzDXcGyGRuITMMgcubK1z78b10ZwNSJebi4tokbU gpV70SVf0y2WzZt33UcxclGLAQIrAPnvWL44xcbh+cKiQ2stJN18L71W7jrq nS666lx0YttQ8cEq7TQLgGSAA3sWOaKZmYYIYO/HMY2zzw3DThnmMa7NfOjv vhsNgxxdnnZYE75z8Q7K7+39up38Y8dPktsRGWrVFSr6a6q5qWdxczqc6auW dIUqNQbJblSbLddupijbJXTXRCjY06nOmuZqNdTstFJVdNwayk2XVBUV/YqE U0pAeLWSkxC5ACa+Q1XQI0OA5c5SyNWBtNYAtfzpCnvptuujCUHeGwgSTtBI 6V531WPE22wT5lk2K85EyNSRqIk21kkJisZ0uhqmmDVkEiqXpVseNux8E1Nr 4EFHhRMScjDwZC+Vttttq+jMuxzPI5HoPMKCgoKCgoM2lrnZK9C22m9eOmNV UDMybZo3zvrfNKpmBhg8j1ZvLMdUHTs7MM0algI6JCrEgRBkgt0fQytAyCgL QpCwLgxOhycQ3DjkkmFW1VWrbVJ3aMB2RA1gZ569pgEzzmm2dsFU0aaXbFCC 3HO+qDY3cSZjIkRCeqoFtgcTLbo0MzIiJlQjiUKkgwjBgRHcbdOi4ZBna08c TgwHSklIzp0zQCIOoI7qOtB0s32VyqB2FfXEBddcyLWBhyYyMw2rsYZ8qSRU lkKsnSCkGKhpCInSUlxgjC0wKKd3etzjtU7wZ6TCqrMxlC20wEwvS6Qm/i0V o5kMracd2pdIEDGUmUkQjISQU9oGATByBJ/kjMknk8u6JsdkiUmeUi3ZJmmk HB0kTZPNjwcCJ5gzkmZrNnC2t7bGpSbLJGLE4rN102y0b5z1vL3d2SO7hzei klN5510k6DIUCthMug9pr7H+up8PL9JtZa1s4QmkP6y5yc52XFq1h3BcNlmt 7GlOd3dpxjxvHT38yDbw4BxDUm1ArBNzE3FqWxGST8AQ9T9UHMkdIaq7fG2N iOp5lGjcb4Ucutc4Eqk2aqLcv4MyBfm43Wyx9Ar4JLcbaZGgQA1za9KzJ7mT HHm8qVSOqBMILz2y8TkheJ6zk7COg53PuUkRERERET4lvu18fwWtH2Q5TJ7k CApy5XS2JoMtHYHW2MpVjTZkevNSwKYek2dA9XwcTaNkslltstIMXsumiIiJ 3p7vd7et+VbV+d7hb1RyQKzGwhgXJ8hvtiGyMst4MzWOHccn17QHHcl9e6XZ ALwjxmxtdRoLQhMhCEysBB1hrQokDF1sDF0RvJGGrLZiuY4DdtGGzKbdlwuY xDTtoq1JUCtVDIVGRAtGpvZVqTHUNBucAkd0NhiBEhs6ttg2rpZwyxwHJHXT MZRKPdrrbelB4EJmy3Alz4Cxz5hvbEt/dXxydPaNIbErlc6hQSnUFdfa4UyY GIw4U2LXEKQ7weab1EzCNiG8kF5bG1xspTueT2G2xc9VtetbO9P4tO7MzUe8 PeHgEN6vT4C8umhuGZCCqFn6dh3TiN3Tv9KmIl1JMTLp5RMEEkkySSSdRvd6 vPxj1+ZjhHUQgRvlQDe8b0Qu88DxcS8Q2iBaZGku8N9TKU8NDCDu1eDR6iaF MvUwrHe8RGJiJuolY0C04Rgkw2IRDUJPESmKwWCCBoKLv3OB6z1nrkgOK6MV B6pBWsOlJAAzzCora4xtUaJNLJgFlsUSiOkbzfvBzgSQsBTQ4GASAenLKiG/ afSMc5vTJ4vOPEcEMLQFyNMAclA5t0keiG5xTUEHHXtVfQg7hIaI4TAwaCDS 9Fv2fWMk/XoOPl0vdts7RxNWtBri8K1EM+XMDYDHNbXaPGXiE7j7tpuhDgju nNtolk0349J2W+p2XJxswNY3Pu36cx93fLG85juu3Yl4B+HCRkDojo882PAN 2QFl5HSEuxqkj7tuuC8ZeN0eCctqystpRO6VIXclVMypJlPIOQcwoSOYy0x3 IMJni30OpFJnYdOmT3Ip6HV3TW7W7dg7d0TxMkzMyYYPo24OBAiDtHqT+yO/ T0ykgQbCrXKryHRLHQYVBscOBxJXBnGXKtAvRVNoxhGTjs471sPoGQXCmKvM H4xmx9/5BnmjVgtFlqyT1NcF93TNeVd3KONiN27D1Ui1xEpaDJm0MzPMIAcr 2spt4YyxGjBpb8MGNm3UTff3TqWOgZxtqwnoixl8F9GDJvv2yX70vpaAhHSP VCQE8PzlGQM/LBsS6ktENZap9wViMqVq0lGOYinZ6ZOKHrLE/EiDsfazNwc+ 3l7JyXNGyEYSatdpshf+sPkmtAujkC0Hx4YIx36YJXttkdGegjw3uKiSKpo4 y4sG1bOk9BTQYvDHpn2NDF7Zf3++mhZMwQw+4wDmL4Oqhtq7bteGvd25aZJ9 KiBu6lQAoASCRhCxbf1xmNsdKuD5B8g+oIumPrxj53JEREoIeZlq6t8x5+zw dilHa9V1N4kbLDXN2J1na7Zm1xO1rny0O8BWM5UiR88jMezWoowKQcrf7fjb chIy7Dn5IgJPQgg4PE4byb4HuIiq1qIiEDGSt6+8ROb6bb/o0S+WN0KTWt4G gEjbWGYDYOVUJoZUDvUgfWClROeHLFvfia1yi0nlIZlJAVaObmSOi0lBkw1w 7tsHIBzfXjvzrr36bNCFEoVwbfCLzjUwgA9hmxN+pjuDM90LJnO2Y8a5kuEk knDG7ssAn8sdus/AMp3M5L3P3tsBt1rOqBF29KQ3fYR2RO+hw3H3IfwcNY3w dBTxOAfa8Sa6tR1kboIO09UPTMTDsOwIYQCZDCAQhhoTBTG/TrE4YdQti4gO Di2eE0hVskQZGk1hsGwdoZFyGLBmSOuMp9sR4iZZRMyyeJlqG8tccv7z4L5H xj5ETLnWq+Frc0QIYioLWYjXJ1Q5gwZGM6I10a9ZVaG/F4epxvEIZOoPIkiU 8kQmh3hHVEWEHI3U90eXrvrXhDiySM4QjSwb1qtq2SGrgPY8SFMza2KBiVLg kZE6MPfgTsqXxdrtSZ2DkDObrY9xG2xVXPpFeL5zGM8effS9Ee6CrZ++0qWO gWVr32EsSMmZCQkJIiXOnoznw2fpz1vjtyF6q+889q5bvTd2Y75zETx16bX2 wcEcASbZfrVxSBMoIeIThbvPKHJZMm4vapvtYcYfjxDxD0DRrJBXn61ZJMSp EN3Y+AHADmFQ5iWMFyxyYhQyJi0m2YoCdK3C/GaiRJTCJaH7DxKHY5BBFTB8 cja1I4RD8s3tZJLGVGQxqa85xA0xnYV7SkpNXS9iqvLiCLNZqB50ESLtTMP2 4VeoPUBjW2LOq6zt1zHGa7XhZNYXUAIMRU6jdgFGjG/PCt53ljCBDYzJqaTY OgRE5DiISh9wx4xt19m8vxkNRVO8sJ1u/1o+2rUPorgdychrGSNpHPbGeNaL STM1697MAsmZ77CTAQfagpjLFfe/lnxth7DPsFsmaqmJrml17d2SmhWKCYCQ AmVJFKiokd2PrweCQ7OuRGen06ywaaJkYbxQFOkGmNLjtSsKhVCzimqCsKuA 9WsZWIoNyvWh4d7ZRERTTtZzdNQeb7e8PeHWHLOasbrAwComSNbRQEAkjK9Q NmysHdKZGy5YdhioEYwg6TvCmrfC8HDEIvcI3AZMgk9SIc+OLowZXnMQ2UEK PLyhmv66YGOG+YzagSrK5B4sXMAIupDIoerUNQJ2WW5wylG6U5qN/NP6deoW /rRRHizDbPG288BIXrbkIr2Y2mxsRo5uPswCL+e1CjFxHVGYxzuLOWrj0uJ1 AtmHVddyopswrqq0DQOQQEBebVXW3irwYeNA7N42J1DqHU8p7Ub0Mg+YgnJj yidK3YIjnTHa7dMMQcMgnO6NGlHGnXc/Gzpv60gLgI23Gvs+jDdA4KIIPMs7 Ns3Y6kRVa1ERHu5DY+vHRSsQnjuGKbUxvve9q2Gw8yyFyyTGnw7xAAxB5Z2e PbjeX3F1QVq8uiY0NQyTMEmE66lnjU2UAArQSCvG+/Co3PlAgWO+XnleAjbC naOs5ZNLA5g57T279cbeFuSneuLn1Z0suKvcN9BSO3xx35bFFJ3WSQmvXRt7 g06E7JMIEgwZjFfgW8/AZJkmEa67JV4zxxOrql9WHxy+wwxyd4xh5uxtpJ5a a4aKtggZkTIilt2H+IOKCOEiCOW7Xa6If6AgsFGMVCLBgQoBCRS0brEEIp91 kYGiEMFJCuTVd4d4bB6qipZHICvl4cmftZpPC/LbfDnXOi4XzMkkG5kDISYQ 3G6HJz38deRYSISEkCEhIRcRs3+QD2hcHEIVpS8CE7zOEUdbIkwzIzSu9pRS yAkyJwHpfM3A+GPMsxzcYxw6d7ePHp2Npi+046AXazwEUMakrqywSrrECEKg SqaIroOUmlpeE2RCTynYUbvDCXSt3z8n6MFtxO8eKSFRba9l5XjjdYSMLrQd cQKXrFJJACk7Okkkkdvbs7L4cDqdxzOh3Hgd5xOJxOIsLCwsLCwsLCwsLCw4 ZmZhjz6+zzqqtcFAXI3FOwPwH9337/V9Ooo+B8P6MSS5ain3OTH+b/LfoS6O cWTlPr+I/x8CZxxw0WaMOGRk7zTCY7Q+04SFOOzGjQQyl9NvnH6x/iQBh6Mx x3ZoIdyAQOTCnTXs9uNWAfAEwKpJHNWM+4ChhECD6+sw5xeUQV8wZYKMisN6 WpbFpcWt3X8unNY5Qg+keCuFpX/Wa9wAAAAABJJJJJJJL7yHFjxnRkKGF1Ni I+Ao+fzvbcRCgCor6NXrZl528Ksgmi7PmlEos1eZHm7FHmssp3O1mWvov/l+ 1tu2cXP87cjQFRpCkk+nrIJ/qbsqiNQOe1rizUsM7SYSqRKBP8Acy/ROBeaz gi8uO0nSolZMkSO08TwPtMiQHvPUe8gVgxufI5DLO4iQKVgMzXB5VmhROCdz k2nlZPW9nLQ4qqycqPZPfg8eGOjixgRpMEQOIxiILHagUBPrgaRCEN8xU2JK JHNqzjL+7czk9w7DoEf8THqOuqww/A/BB4nc9VcXO90Lq2xfsvczXYNB3Tgg lG4htyscpE3VuLOqibMVmg5ClrHFcaluZEvWr4SqORs9Ok9toncX8KqMP3JY 5ChPt7vC+cTD8e3v8f0RvRb54R3W9fZ+jOEOlfB338tTVT+X2O75/nDzrO4A BJ0CffYlUk/yY/xakfoKaKfeo0b7lLUVdEVD7H+hpiblSbSG2xio15aXr5Jo 26SW4u6ruuuu3W6TLtry9PT0r0WimUy0RYRhccciN/1sRP7VjSnBZoVHFTiq H6qOAdHBNGinF/kyCH+EI0KK/gT+Wk/BzyTzWkFDpNIcHcKodl/Yaao1nCSb oiDshGH2k/5BBkg7xAQUHJ0DCBE/MNhF+j8R7MYFmz9SS0KBhnYqbYf9mHUD 3DPGMTBhywLEN+AN4IiHiw+V9rOvcd6qqqrOvf1dIE5Obu4c88QJklotnIKL MXVVUEREEREERHBZRRVXdUhISFYqmcYiHmaxlv5xv2/d/8/aDFAzHZhj/hG7 /kTw+1o5/dCE/cRIrFIOv6ZELg/YIaBDUWRP7LKJp27gIaFVQ9Teyf0RT8o3 fmGNlD3kHcH+5xgAOtE4JXrr4gPyXXEMkgEhJr9OVJfKrkZP0vOtXkmWMb0u 6iixeKuFyOVRv/Vfq3xtFixP6iNdHWDURODZrTTuFtv+8OKhiMVkJI9ANHUQ R2jByCIuAfwASlDJRBzVqAj1BqSnmomI9iCaNSwl5wk5yIWIqQuKiH93V/nH ej06J5Dsq2eJMyLe4oGCk0UwpSj4NBMiO1TRuOsThtbbC07EDbwOciSH7EDd 3m1tq0ryWyRAgEcEpLVhERWQpUkkyV7jqZeXdZJmDzvLzyiTMEmCGRDImZCS 11bBLaNfIV2mjQjzQHNOYiQnPBqqDciQLjxtDTtEOJRIBw4igGyK7oohi2Sy OMn6k//tW9dvQ8VL7SJj3xgaaROF/+81eVaVLWZRFUqlJCaJltZSsrKuavpv /KiXnVprBSu6luhulh66ZVxNJucJlYTGqSxC0sYnYf2n/ANxVOlVUMgwAdUe ySpYtMJIe7Q3QL7GlkPX3XHgPmF7AcinzmxRMBzRRaFyM9XG3jRZV8bS1cRY jIUWToyf6c07wfH0Pmf4GKu6bsdgOnxBOktlhCwYisEgFxwIPWQIQ0lUD3qq hwAVPBRB59RgujxtcDMHAHgawoNowWDEA26+SehABhsF1JphkRgqkKOTEylV aaMmSy1ZEjIdiiOhINExLEq2O1mfXkxUifftkE0VL3da3zy1JZSyptJtTMtK qqyQ90s1DtiRt8jqT6OAHJFhxdsoxI6LPfsefufDJMs2QOXLiYqCMplRLlC4 O+jNW2V/2sRnr9h9rY7aN4qq3Xi6NpEjvfGdvcTqhhzXcIaQ9CRJA/CKkH1n SBQbVe5LliEMwb88GyAfAdye8NI9e4e6lQHuIWVWtptV4ulzRVJsaja66eMp zI8TrMRP2VZZLYtqiY7oU+yIyRwga46+Y5pwSooqrJZVWFVJKTGPi5EoEokd olFEshSHI5wkOqcPYkiRZIWQ1UAR7zNVUIo7bsDAHSp+lP3nm7OxzQ2V9smc kOTxOyJ3xH2u4c05VHxnI8k+VwA9kiRxP5JE02mkORIdm3A6kLLuILgmkMEz BH/VKC4YPLx5oPOOkeZJ8XODcnNzcSeaHEnyfJgdIlSGor/1GwPVtA7ViFAo PgGIO8sCCnOg9okOFtkLaW2HiT0JPieMiRozPgxxeGaQkRXJAiCFwRiCJgMj 64OzvTuiyPHEdSD9Cj+xhGO94JDFu7HuIMammKswe21fyfl2bkA3eU1i5FAY PbQ3BsdgsHI3ET1IJxHGc96DX7JsaoVew3kgxoVDEy1Uawdz08eItzdExiiT tIrp0hSps7bHpIRYtrd+pprWjVvtMG7WT1ZiThThWpUjckiJAWLV6AvYpkZA NCpFx4r6LlFULOYNCzLkDCzMZmWWUS3CkKQBCoXjUqBxSTJBJyie8of2w5OR 5HerQCjGPAe4FKVOZBIhiQsh2hgCraICwEQ0KKeL61E8gdx0ImkyVryG4hYI NlEtoOQgFw3ELGON/JsgsOr1MET0JzkkORzP6E+1N03lVbZVPS+kkkhIRxL3 hP/xQBQRPnTPm5+Wgtw88WrrRohuSgeciNmxdSRE3kYZJITGHsB5NlfhpxVk jMkyQw0rV3vQSAZemqwvN3ZUhLG2sY2KLZoLRhBNLFRTBRR8GMCAEMGiiiRR kVWQeiNRKgIo48qBER8yNgB7itZahrY2oiSk2qIti8sfXfDfQbW5wNg8GDmq cohrQ5zECwe+4I7AHaM68mdytWSraYWU9T5UnCdzYN0iFdT190UlfTKfC+lp pslRalHaOtXQiUoHEqqEUPeME8wOQAHFHaVstfQpNpz2+CxqoeCfx6dp/xYY mTMQ4lTEdI8RYMh8iO+dEJJ6XsSYtDfYh94tRIcEgzzEEhBSIJrx8Pt+79aT +qCrYtWD9x+2MkNQWH+QsGiyRqcf3fzzDaJG0rU0m5y3E/wLwCwqyNDEIif6 Tnk4HOUo4NJOSUrE/kCva+kOwGlFU+1qhYMikhsWtZqrqrtTZbdFDum10uu2 lZaptEiVGokm0qbJZhrJUpNjNpNVSzVazWtTVW2IoxisWA1NkaDVNpbBtJrT MaasrdF/hB4J+8gfudHwJ+o4whJjALL8JJISJ7VQ+xeP9H+U6v8zktA1p1VY s1aVGxVWxuXLSKSjYrKJaVlXcsMYdrM+BXlOYXuVjQlm5fHrtey9ZnMu/t1A tabOVWEmnRfGZYZaaNp0CwIdIvMPIHkWU1EUCwRENdFrWtRIxEgQGAz44Tvo /Wevz/ntU7kkHs+DH337SACCYEksEuHDdN6JQcZt8uBGbw6v0PWX/INBJhsZ Z4Ng2YlZMGzJQSWSOUaDMyhPof5h9j4g2x6jrPOoFBAVoq7HePqAQCDFBVCK Kp6hBFD1v7sIZHPCqYVXiez4q+wieb5TwtkpC/0UB+A8iSVjUlJNEKRLRJSU htk0ETChITQUVi2pIWwW1UPYTgpEmqSSTFAxMBPT8kVoViGKAGkv+Xv/KGxE CkjIEDzj/f7DU6BD8vmQMldRfSorpH+Tm3MU4iO1YlMYUZChYRa2H6wLip/U HIu5L96ueZmSaEOHGfmLImkMDJ2InEDu6uTaKtViUyYpisYZZbZXohbbbSFK J2d8uZCHbOmOcmZmQmYYF8W9VbUsVb/XCOjmh/InacW6c5DkPdSpgykQmTUq rqptXyVtXUaSxMppa2ltTJKSy1KFh6T5fnLn4RkbCJ2xIcahattltkJfQHKP BviefaLC7xTaaSySZiSCCSDBslSbFRSRNNMIoMRszTBNti1G29d8fvkt9NxP 4a0wzEwf835j4hPnjv7vmZmMzJsT3CVIPI+Z/RG8dSfvyX9TmdIv4jRrVtsJ SLYPxn8cgsZH8d28NZ7cgyD+8iMTiKU5QboWIBuWWBwDaEVfrlw04hvk/gx/ snVm1vM4vUKh5ia8PmTCylFmXCm3nbo1FWwioPI9km6uZ001BmrMJ0K1rCck /hJ1qcXoOXpi2yOpYFlQOHJ1SPJLTsenwiwpYcDrzdMznzpJCRDSBakSSEJI lM6ciBQqhJJIQkkshoRkJYnB372DjVSSVZ6ydbEs5UzqrBWFibu71fu7ZbcG 7UnBZOtcXXVx3FSTrJMcQzsc5vLeQqa5TqaZzxmW2XNm0xraRSW944laNQ8A hDj2COyEVdVGskkFgxOXPWJcdhFDbHXtwKGkk2CWDO62B5zsdZfzBHDg7o6N Krzh6j1JLIp3kn/M599vRmaU9wlTVtXwh6O2LliqYzGLksFMYxUHa623xTsd zJHdZJm7UaJUW1aqFiSknDWnBVZkbUqhbIN8TFilqWrWI4zid3pjW0sQdnYX i74aqVIlsg2dfo5TunncRisIQywRT/RLoXYb6BgQoHr6stX01MzM666pdqbc 4xOlLRU6rWZE0lKNZVkTGE5cBJJ0qARoPa/k/k5v2tsmbSMWEBpUiZhjbOYS ZFFYBo0GxOQMdXz8USRf/BT6IKl3XKsbD9MpZYiggPf1brKtltsrfRr9z+zJ Pd/pZMgOiFitjEDqVaQcAOtU7hCPuDuD9bEUt4LQnRBbEPLYqlizF+GbQCJu V5Vj7BEcYjuP2UejsbBLJaHNk8Xr9Dzy7V53aA0QhKRggiEsEEwmEFAGmpVK S2222BqK331hNlfZJI3IOFkDfZunam83IMUjm/Pgk/4tpPhIWEvmBYT7VTNa DjE2C/Tb+oVykRAo3PWH7AWw6y5QAdMEHmX7RMg8U13spyNEa4HyWP4Y+f1e 73MZX5hR6JxHhIhyqI7QgRe0oQtY7CJYdx7lyXMCDDBUK3ouIqkF8xED39BN JRDEHcn/xU1o8qqkQkL/qCfqIbFVOINS8Re8XmFSTI8kQ2Oh2MfMNCMZ4OFk nA3J7VQwsHWbPnnek2E5o5JTxfir5vPGySSRABSFIUhVFqQlpVrEZKiW0IzT RjGMUgAIF7pSYirSS2ikUnSezY9elSX2bX5H822utXu/U/dt+i1bXNEQYxhC EgRQtceIiFm1KgFHKJ8dz7zqPKtRduWrpu+ZtTSVaYfrcHUIY+5OJQigHxGG g7y6QKgnQLuGwbNZWycIoHnIQi+Fez1JL9zxokskdx2KVWJVoVVaGx8X+2n4 rK5jGMV+Zfa3GSORJkMVbJLVCqISMJIJ8sDl1UG2gpsxu4KXKbt2xqKmwlOP /fBvVq1eTwf9H/V5esjiqQU7/75+mtTxj7DPcQcklGO3v79NKqlq1e9cX0wh OJE5wUzShPB7EjFgEIvSHNpToibLUT1Ae08zNQOhXY5ho6qoULtKglKbxmIV RUXhdTnjgJ3ld1sCEdRRpHAuNPJk9ofjP5SBA5ngeS9C8j8RCEpVVQhCFqC1 ZAMgsq+OmaKvD022d3AcckKchJqeBBNQ64kgURL78b/Ol/OEN8WlKUo1iqK/ lHSUggORSEoDqGwwBAM7dLdMLcMUVpI6hWhaQFeJK9MAJlFUIwIxUhHpB9rn z8u+qrpxQO/EaIc+uGoaJZPkFm7MilOkcsbNh6PT3FWKsHR0Dnhbrx5Teoiz xjApQBiG4NUCUBk0waDEkx9JhirE8rPiY+2zTYiqrxggcyPtwZHSKMbLH1Bs 870EMrZJDJC8bNjXdVgaE7eJlXKjlmMLGo2gWtTaqbVWGlROuKpvAbGB3IGA egfOllLQhYUIClO4eRXQQ8efnlVzmORNaecInAjQXA5xNhrWzBMqULhjsFhQ faeSW9kjHkJI4IY6cLxgdRBXQpJHqWRbJ6VjRKxSlcFcpPjfYrTQJVgosWBk DRe4+gHUHaK7gOpRM1PgSJTVYzItN0qSSrJoULZzWrsraNbfC2VfcqZlotkl mRaW1EZaZlK+2t66vKeDxJSGQkmZIepME8nPXyW22yW3zt3dvcC7tttslt43 d29mLu222yW3jd3b3ZiYJosWAHJAspeI+pA2+nzoW7Zk6dUNOotRsL2lyXLb Kw9czPRm3jaQQ1sF1G4ikdRWm9bzeyIVGYaKMc7T1h5xyVAxFcSpApop0R4y 6XsKl6LTMuDaNyhr+JkDWrXiNsW9qW9pp6dq6WqSrdLefg0bQRslCOc0upIq mokk9z32DHk/pbqPY8GAl7LqUCtMsOPKEIQhBmhCHKMYxhiZPPy0eMyNq0cD ER1U0sKMXSurZJN0qaWqiqbpGxtpShbBVttE2k5mzYmD46pSaWQ8ymAHE8TO GIh2CJ++hikGh6BFLJSAxWAEYFlO/wcEhSMGjIuQNmPkZ3n0IjQiaw0mKpwV BscpYB5sVuUgsnjVVVVVIqkVYIiYxVVVVVFVkVURMQHAkVVVVXuu7u5IOu4A ABK6u4AADJq1ea31y2/M2t6VW+z7Wcxf84R2I7D3JzT2fXfOu3bNc3g9SzmH ubhYQDQGhbon0hFYSCSLBd5c160hUIGSYJ7gTc22MgaiHr0ZH8kTSmhPvdte 2vopJppNZrRRgiC2XoWxH7CaaakyqmJkPMn8Cp1fo95q5O0MRCyMbAMIPW2u jZS4rvXxhrUyAsliHVZoZQ8nR9ZcWrUXvZn5i5jMSNiNaApwGXxD6D0g3LMP NeyzIMFwM5DElg60mnEldeO0ybOcmm7S1WdCtBsbq0siKFSycoWWxzSuk6qq /X7+3zs+QPOqkVZdiMZcsVIEEiUiA6ZCEZRSHJxZVXWMq3HIbTylNxuo2hYs DgER1KGDRYgpT1gY4vBMwcbjxsbY/2iOx+4nANZW6bjo/9doBrNrLDwEwGUT lOL83djXeOExoO507Jp1BuTgmnaqAZ6Gi/3hsAOZYMlEnTZuMcCtM6HKOAGh mwcD568xYJsiO5wYCArADhmium/QeWzuV5r6OKd7wdHXqkttlW1bbbW45Thv TUXKVvFZERtZrXYtRSWYJIEZkcyJmPU42KMw7+HNG5DGw0otijpkdoNNMK1o 0CryPYPq7hrcN6GwRD4S3rCpCRKulPb8eM6A3C7SKPKKGs4uMkKyLFBCtCzI 8mSYWrPQ9kckj0NjDeQ9EjZYbJ6jTRJsjck6NnA2O3eJHhHSSOZP5Se01BuE tWyWyEoqT7yQOCkV68iOp+/ITZSQfek9leTaYYVWVPZK+ETyeTo/srxRw734 8uSWinBng02JJ/SlgqUkKldqJZ3xFMTxNh4G0uo07Nho6IGLgWoRKIKYlpWW PcSKm3ObuDljfdzKZySo+omjFO2FIa0VoTBXqOkPENZI4IAREnpVEdslOI7m 723SmGeZNtn4/atV+NXwNGxzc4MEeixEwSyFsfhEqXU+l+XuLDGyOhCSP3dA WQtI0nRyeO/ECnnXAii07o3d2+HXfJ6+vp6WuWsySyy9Uxjkx1WGDTGMz8sa Okh3dvPISZJJJkIGTo5JjA2Kqhj89wWMiJcyr8EKhpNKuO5FU4hIKvO+coE9 psTS1zNJZhIWjSwkhJCFFUFbLWewefxT7h6l3XPJ1hYj5dCAGiIMPWHsDAke qHc4RksfU1MmO5Hk/Buah/m6I7neOVTvhVFS+yYMOSJ2FpJRRSaSQzb7kR86 SPrTzPQe55npdDfPFsFe0vQcpGHZhxBcKDBh6CZegyFxBftCRxRxRxIngUfr 8zlo7BOLwSUXtOog4DaxuOva6zHnCypib09aGsVBIRQ40zRPas0RguyqCazU iAbFLDA6nLqba30ttEUymW/yvNs70trpSCpY1O16wsIYDgMGgQ2TFR0/Odhw FwF6PqAkgQQInW6L6Yg0KnAkTQKnpDqgGtVLH7R7UBewn2VRUPqYbwFoFhKL JJikSoR0kVJ94/m/i0I8k4sJC/5LWIhOKcjMmySZImiwhiyRqx+AlmLI47aS ObtgUCFUPx9GwHAFXTb3gUVlkFrfVnkOpBX6VFVShApICIYEQZkaNB7LtNru vXVorT+ho4RHnIkkUkdIJPZ4DeVR/tGKHBBMxClUY3EVKEF1EirAwkSxxgk/ ZJsJ9X7asWYkD1Big5kVgsFCBFhBUyDQdaQelPqDgDZRd6APctKwk5R32Vs/ hpK8EbNFcXqmNK01PbHVEOLhPwLJJ2LNawExHaL9dtsX9CQNJ70VxUQPzDxi fYf7U4zsOpHvRwjQ4+AeyWCPkSqi1rpr+3euV7aa/LGslWTbRRayVQbZlipL FY0EoFxu4GTmEARIP5LmYbwuOhUdCNhelFgiX44BmousCQDShZQD1i1E0kk0 cNllCxHcrLpXTUMTE2WCi0uHeG0kxjDE0sWrsyqKLMQQ3iCdRcVKFE2i9Sco cIEHopFTaZL7lNQlC8SWA3Bd8CxgD3XGLG9CzAwFDFpwccFbWijBkCRshMTT ow97wYbP1KYcBzgJy/U2dFfzbqCU7A5A2/2QhCJBDBV/CEC65g5PQWVA0epO /AdAYKGC/1RWEECERMyIwcAYJmWTJisQwBowS43SkA6FiOKt04FtqzhDYwyZ HRZbI0NlRg8qHEh9xoKnL6KhELMS0AKYGWCRmDCQvjtIQKS5kMpM2uzCJiUO k450P5Ru4FmD/vixITTkqIeTn7WZDJgNUpAa86SSMoASyglIH3n+Q+gkjy71 mDu+gOpZDU/UT+WVNMMcJLhWFhSzJEpsikn2H978Z/I+X7OjSJHbFbxK5iPD 0KqrZVnqZlqrNzbpLLKUGS+812aNL65eNRdmJpVtWtsMVVzMszB5SE5RxDoT 3gqUlR3T7n+5wiCpU9EaiaVV4gTpH2AdXeB/gYGz9OgO6MjIe0xBxFAt5/eB 2Ac4RO8wYSLDgqPdBEhuQ9phSsGBMCipAf3FD+riOUXyOw8A7S5iLc8gxHau vuBXYI0D1KqkBxHgU+JYpQwK5RsrrB5k0pYsAJvFgixT01AeECVUk70/nqUf EeEj4xT9w5kBgnKMIQQkFIxkJvPYaF+d2LuOcXY4IRfSvkBRxmskCdtNOiFI PgQd+s4Iq44pYA/ftDmBLpliAcyf8rBnFX4A5IrBiwGYsVTYRVD0BFgdJQME MsxV+qvYQDyBeNd3tO89g5/t8wXML2QMQFspSP1BMyhsoXad7i5AZGb4D6GP eiHIoJgEB4DTI41TRVN7UWmEjItUksi2DAksi0hZljItOON2P7U5xvNolfFT gVwZsK+GKP4iySq3u5uxinMWYTTkjUEje2i4l0RoxbBGorCLFIiy0qQQPp17 CzLrNa4QWoEtBrBqMJsJSlJdZTby1skQTY9XnGgNRxhgckYx2QuVDeWS/uCK KKKKKKKKKKKKKKKKKKKKKKKKKKKKKXUrmMbbWfj1b79954iY4OPgRK3VMgwK qkqkjMTJCrZJFRUoP0xI9wTpHzq0pZEKbQ2wsOAHIZpmGkHqy9PSmKnzDJEW CoWSWISySgT0kpHsRw85bT8xiWOj2yc0sm6PRArqwjJ4pidN/tTmU0AL0qMV eOAAWI6ggptKTp8MEeHFZ2p+RvVVqVTGMTItWIflVEMEk7FTUxU9ZWDTg06C xcuPvIWLl1+cxfkRXQRCELjDMhk02cGOLc3VXWSdQk5tH5QS8R7IHkYsAgpk h7QnilCigWVWIocCInOKAXjyRhFAuGNjwFsK35waF6U0jFyXvxL2CnFD9YsM hnmzuVYuPbDNmypyioycEn1SKTTeN03Y+dtB+ISPQj3KPxr6ijkGTDo6ScpE XsbHbSryMdu5QNeJ3joYMkTeGSgGx8+Ztf0qViO1DrdSuJtGajlDWeCipZ71 Uy9JAKRYcgfbFUO0doFiKcDcK4ljjSnZvpNNKjSYUYkjdKKVVTCC2Ub3LJdY N4UBF1U8RQrZCKFxrYrERpNW6ZOll2bN9kU0m9CylyXVKKLGI0LCJIqOJTLF hgPikKljHG77DiYZtJIo5/Y2kDRZyPQXibcmEjEm9NodEmxljFEsDQFLAMIg FMRjGIsW4t1g4JIuklFkqDzhwxJKWSLVTmx2FhFJKqGRPneQydCVPRHROUVy UVJJgJYJanSJh2ROzYbykkzbid8U4l//CCeY7CRpKIKKkkIrSaIKSWwFsJAg qvkNgR9EDYahQ2Kax1qNlSAN67lmySY7CNRuIixwJhKhsm8ukrEpSwrFYrFL iYrJJRRasxJtq6alVVZJGHdghpkk2GTRMielyPjZbFqClEfgN+SJyipD3JZI 5lElSqqL1xipVnQn2yJnVom57OvRDwPQ0aIxGtQySw+eyWp/4ynhSPz8GlNR yrFcFasasbV+xZqRyEyWEvCOBg0Zh5AiliB33SKAajAf4qvcAf1PEFzFFIPj n2lVZJzjd6BFQVZ9j6lRtBr4sgx+R9RocCnBJJG8ZEuQUwVcjJNizrI+pUmQ YYUxJlmVWT/W6U0pVkPtHqfojmh932HWHqD7kQ37jYQKg0PwME8FOU2A6wbk skLBSD4qK5RQJPD6ylvFE7wgB0jHEv40kDlLJ1oA5Bhiit0cSKofcJEL8iQ+ V+BzHpjwk6xIT1FQQj3fqkd+k2m47/X3O4dru/NnBrClD+JRlU9RosH3wbhm mI846jSc2S0BdKUL5K8A7ji5lPh8KEsSlSF9BYkj4ChkFU+RfYFBYQAwSCif A0Kj0BjO2u7wGoPSp2qI96Q9z4k9o7HX4tkYpPYttMWB4iP9sn4vxfNmcFWr ZTuiKnTGUawLIKcxzh84FNEA/ac4jj7+1Ge+SR1lSUUQtA6MD4zRNHPkN7nY QVRHCiA/iFiBRcPaKmJ0RIwwGx1FrzB6DPU4qDYwvMaFxDUWshzDZ7tbgSbr yOZUhkjXQ3ySuQvJSMTySRPOlxnagqnsx2HMasE8TjgQ1wWlq1bC184yZOgu 8emfnJ6+2GtrcIyMWrvqHVqrN3DeZFWWlVtFGMS4uNrvODGttZwnCQyO/ydZ sCTUPwPjm015yPXKO57XgN31L2lHId+wxIC7RwNguwWtpcVgPaMIRUIIQBgM UNinVpE9qh2seID2RkJCqqNHd0cuY6cx18L0vu6vf+GJefFcLbNkcpOV0TFF WSFWKsiMLJMOCWSaMTGmzTYyLDa7IU0XSWKBt3a6a7XbZXp5eV5Lzegl7hKu zePQL94oYXHeQXxHqCguFL5wDrlLAPahhkeRK54yiVRzq3aIEknk7l1dOkTm KTfPvfvhvstnlaXzBRuEBxIoXFgu0e8UOMsoNh3iaVMZGJjSEyRuNbSSnWNa SpMQLtVAsfFTR5pH4jrQN951ntIFjoV+bNYfNGz7h6Xka6BSRb7aY+dh9j1y fb8Ek2hucg3Q7yV9zZvuFjJWndojOiYbRiMkjPRbMacIp2Sbz31gU0JNML2r c5UTYfTJhhXbppWo5kdpk9hIp6FJul+qvfHYn1H3bJPqaP5xcsXAn2cTLWhe 5zpcsXSoSC8lDoLQW+dyPVCSdR65pFEfjHzDycHF88SR6Ek8yOEemC5XfMYH WPnRFQnAvbHbHSHsFiPMwxI2P50o+GSae87dh8kdT7ZInYO6xYWKUlVJ4yec Q4xbqQKGbwYLbtCwoGxyFoXCKKu6mhYalkqy22Hob/C3rT/5ergdHBPqk83H yiOawcVQxN270s/D8ji4DzFk6NNSdDSaTSiTR1JZ9xunBOxLk4iDJUV1BSEE SO05ZO5EJloqBZIdkGZUQgGeQwxA2CYE6hROYwYxU0QXQHnaRknVWkfwOLkb jicJjoxI3s412jzjY8tm3beBzeY9PdaxVjTHuwnpPlWX5czPMiId3ghgv2i2 9W0Ot6KIZULYTQMeGECD3i2wB4KnEc45Kk5Bi9CxRgMRSolSWHn1Xi7GkexP DyosfNifSaTKoqaxMaKmJRrGTUsYlhpjC5DECZlcQpMECZlcSkBJRGHuybK0 uqaVpWXFmXFVOUcR4PITw1hip6FHVHaTAj2KSG7SyYiJyCIqRObCTxI0ET5X bqR57RJzKyehZIn/BUJ3t24LEmh1wyiqPAHSQ1xMwoShS4lCPVZ8HzUq3YAw iwhqdeYbzBiwN4tW6ARLkVqUR3p6mk9WS4l/x9hjyKbb1MmXI2BNIbpiLhoX ZTJkMoJZTIQyhjEYVFKjyYcZImvTJJZYFqlrzk6pLBzminK4M6cjE6FNjfKC BoWQNIUJogaF2UJAKCWbsWjY0a0WjRTKMKZS9GFg5F0KBfMShWJ5AOJGsC46 kMGDinjImlnkTNnBJskcTceksYI9uTTWTjVwYopjMxjKqpZJMB6qtHWSO1hT ut8O8yWvApub5WxlTNIaEoSyhKELN0JoUKCECBTvYeKNPUsYmxkmLkivSSn5 EhwbPQwIEoG4aSLu0Il2xvRrWcRlNpgWkfG4hVk01JMWfng9Z2fwCylCpKZJ dzuev5SsqIjdT2vi2C4xHguWHEtkCwPKR5iBIm+XMANZkDR6TfTb6vZI33nU kjNJJaXXvu3tDNCIBmqcwtl60VYp7tgNHEaAdJZietu0x62GotKlPlSw7yaJ ubrKYd4cg11m8jCHRScoQt0fIaR6RdJleXyZjHLjBZOA9iaeDbjh1HE5FVwN gQ4KAhsIXHLmFtYxW5iF7kzcaWkqmSSTQM2TVhJI5YmHGgghwcSj4USwhDSE KJCCmdUzqnUDvznQl0WYZih2TUw0wbgFMwxJAI4ICtzb5iwgqzTAAQOF0QM5 A+R9FYZJJISIEiADJRINliVAykGDRBGDarZmMtjJMRZTaLM4KMg5RLYM0Tk3 MiEI0mdCMtpUcwNaJGJZjC0j6bkIaBsD9oEMUvng2jahZlRNVDNtrnNucDVL xYN5tZYquDJllFlmMgvO3Sbyut2RpMmO1cWrpeDikunXCuZgXOuSYsyHOmDM w9lJp25CGiJDSDIhTU0gSyJEyZhdmNO60ZNo6xKhYKJUIptIYj6lFqzYnYoa BtGSOqIcZ9irbKlTwCFQ6nEekne0mhpXVRo2uyVEdskaD6PniMQnpHD+CKny ebYjmUqWRKUn1jwUquxiVWUbxJJZGoUkvnnaVbPS8yTQkqoqpX1GK+PvPW6W d7lBxhYsFwDWtz9Z+so4Iq7N6D+MgJrRMAQdzUDYwPOUFx7+wKBJBAxDSryJ ve98KTyaJ6nBVVEcSoxKixUkti9VrrMS8O26tTqu1xEqVkmFVZMiqUc2OU9Z J1624nyPa000CEiWmVZRwgekT1JwTchM4xIMTjp3O50rtvJV5SYtKUqwrSpV MY+dRxftYhXrRioqKPwUmKivqCTEYsWosijSkx9rEY6Q7MZZasvVBkNVqryV xciZxRVRUqOTZRWpmZJiyHsQj9UYKsh6Ur8dhVbLJNKVbW4QogaxsrQodALw ExFTE82DQQ8rkQs0yUlKYIIIIINNSvsdMZSIiOqbtKxGRQu26tNdfaQR2shA ewOwHMdrsHMWGKjgaFHIWJSEb5IHuNMbKgVVHbkjRtWaKNlKqts2iST27pEe 7hA4rGz6Ea6fGliUrHuZIjPdbVZJpKkHtXdXi9UsjV1K5trqysmtKN4jZMLl FiSMIwCQHuDFOUXWbFTpF+yhfoOUp5k0ogeCicgP+4VDAPuekNYKxuF0Vf8E +kwDQo/Y9D7y1C/kBo+83KsGAEBf3nO9gcIhqQsHSHWxZAhGM60I3AHFiBX2 DFIcGwoQD5lT7laezHCR4iU4WPbEld8nFJpXsIJCUCCeIjYpScaWbqgFJ/qL SjI+aRPnDzjyK6vNVaNVdSLXJ9syBF5DI3iRmcLJTTKODEg3uFamYCWLGI3o FuIvmQM1YQUcLKu0Ww2K03pRRUpbYHEyTL5DzRtzScYnqNzg4m33UMmzA5X6 Ur8y8UTon3cttm+bmAip+DUu3TJciINA7u7u7Lt4uBjpyvCUiebzXjx2AFdt 2l1ebm68W82663bc7d03abN551uaxeQ6lbxHncEQcuGAIxzc26Ejd13Lp3dd zpNcmR111NfPK8RBpeODRdqr5Or1vXzyts8trc1FmNJ6evOda7o6n1Rpljhi GWNxT+2SCcUqyH9WBM8vWBRBnrSSRhSiF65FJakoH3xKRnUfc2QSjloELmSh qFTaWH/KBNYpgom0XANyi0lcVVVS0pCxGpISpMVbD1uEvNmBl4xvqKySYkP3 qMIHTIcJVVssEoP0vZ73NXuXtWHy0jsrTZoupUpLJU+M3Y1P8bHBxFMXqm/K o+JZvUfrYYWd/3/zOCRUQVgpEB4wV/oiqmBpN4HqIiEQKkiHgNHYlR3JHoJ6 vYwiJzmYwsedIdSzeRIymyNUBKEoPufSU2l6qqxviq2afWsNo2KrnvNpH8b9 TSzQ1IsjU4Syrcf9SywqxEo9R+z6k7z4pfvPe3jUW6ddsRdfNPKIvl4YWWDa BRmG2ijAuWtY9C2Op/2Ck6kxcW0syAyOzkGRoMjZYdssYdNh3d9nsx2I/NcN ChpKR/4JnJELow//i7kinChIZ8vgpIA= --=-=-= Content-length: 188 -- Alexandre Oliva http://www.lsd.ic.unicamp.br/~oliva/ Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org} Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org} --=-=-=--