From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11169 invoked by alias); 19 Jun 2008 11:52:35 -0000 Received: (qmail 11161 invoked by uid 22791); 19 Jun 2008 11:52:35 -0000 X-Spam-Check-By: sourceware.org Received: from atl-mxgateway.goodrich.com (HELO atl-mxgateway.goodrich.com) (12.129.98.69) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 19 Jun 2008 11:52:06 +0000 X-AuditID: ac158622-ac4b0bb000000d02-7b-485a4863e9e1 Received: from GR-GWI-EAST-A.goodrich.com (gr-gwi-east-a.goodrich.com [170.126.120.4]) by atl-mxgateway.goodrich.com (Symantec Mail Security) with ESMTP id C3C6F4DC004; Thu, 19 Jun 2008 07:52:03 -0400 (EDT) Received: from NHC1EX21.goodrich.root.local (localhost [127.0.0.1]) by GR-GWI-EAST-A.goodrich.com (8.13.5/8.13.5) with ESMTP id m5JBpSEs019516; Thu, 19 Jun 2008 07:52:03 -0400 (EDT) Received: from nhc0ex13.goodrich.root.local ([170.126.245.54]) by NHC1EX21.goodrich.root.local with Microsoft SMTPSVC(6.0.3790.3959); Thu, 19 Jun 2008 07:51:49 -0400 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C8D202.DB62F183" Subject: RE: sigaction & pthread_sigmask Date: Thu, 19 Jun 2008 11:52:00 -0000 Message-ID: <35737E0536AA3D4BA26F10F103C8ABF809F131F2@nhc0ex13.goodrich.root.local> In-Reply-To: <20080619055744.GA19869@wilbur.25thandClement.com> References: <20080619055744.GA19869@wilbur.25thandClement.com> From: "Burkhardt, Glenn" To: "William Ahern" , X-IsSubscribed: yes Mailing-List: contact pthreads-win32-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: pthreads-win32-owner@sourceware.org X-SW-Source: 2008/txt/msg00032.txt.bz2 This is a multi-part message in MIME format. ------_=_NextPart_001_01C8D202.DB62F183 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 1071 I think so. Semaphores might seem out of scope, but they're an integral part of concurrent programming. Signals need to be thread smart, so they're naturally part of a thread implementation. So are timers - attached is a pthreads compatible version of Posix timers, but it's lacking the function of sending a signal to a thread when a timer has expired.=20 > -----Original Message----- > From: pthreads-win32-owner@sourceware.org=20 > [mailto:pthreads-win32-owner@sourceware.org] On Behalf Of=20 > William Ahern > Sent: Thursday, June 19, 2008 1:58 AM > To: pthreads-win32@sourceware.org > Subject: sigaction & pthread_sigmask >=20 > Would it be worthwhile to submit a sigaction, sigwait,=20 > sigprocmask, pthread_sigmask patch? Or are signals strictly=20 > outside the scope of the project? >=20 > I'm working on sigaction and sigwait implementations--using=20 > atomic CAS operations for async-safety--intended for a=20 > portable kqueue library. But the library depends on=20 > pthreads-w32 anyhow, and it would be cleaner to simply patch upstream. >=20 >=20 >=20 ------_=_NextPart_001_01C8D202.DB62F183 Content-Type: application/octet-stream; name="pthreads-timer.tbz" Content-Transfer-Encoding: base64 Content-Description: pthreads-timer.tbz Content-Disposition: attachment; filename="pthreads-timer.tbz" Content-length: 11550 QlpoOTFBWSZTWQEJc/YAOyL/9v7yRgB5//+//+///v////4AIAgAAEAAAkAA AAhgLP88e8xY++3mtB0b558e97fe++76LvVEU6yundTO2rfF3Rd7G+b3rnr4 9b6vnt8x9DRqlr5Yd1y6afb7vXH05od68vuJvWR63d3u7rZmqtvt3V7NVdtV tmtred3WVtWA7YuG6NVvj3rzLeu713k2y2breeVSnLouhiIEZAQmIqf6NI0p +qbCnqbUafqQ9IyaHqAAAPUANDQGIEEEnqTEyZT1PVNgo0AHqAaPUaAAAGgA aABIKEiaTyo9UfiU8p5RtDT1RtT0T0jE9TQANNNADQAxDIZBCkSQ0jInpoRl P0SaTah+qe1J6majT1AGj0h6geoAAAABEkQCBGoxMIpPaU/UeITPVRo/VPKN PTFPUbSA0ABo8iA0ESIhEyaAClPybKT9Jkp5MiZNAwgaAaP1TQAeoAaDT6wP yD+U4ewCfnI/WBVEFZqIocjPv+x7z5cGXw9wGoEAmmunuzNtpnGlyq0ANy7p EiEBpQpKQWRSVDGBVkgJJ6BDmBEn2f7+XREG4ShGgGhqmqzfzad4v7X7u9xE 8oTzEuj+vNwUGoE2B8a9572eLTG1efj4+PprIwZNaLDmg36kaGDeSvf/X/TN jcNdIthgwCUO7j1GA4do1zge8pxdmHrwsyMowyUi0M0QHTosSyCXE86ADINB Ze/WZGRhBmsK1agkIigoLWZeNEkwqeggyaCzMgjMMJjIoyIYgoKMz4PFp+kY PxccuPZako9sRAQOZ0gBVJL+ywcOG8GGRBKZjTuKVLfm5pplWQyxlK0Zssgl W22lARuaI/Q6ohuh19Jy3nTwAbTcCPZuGed2Phs4aaIYtFNrG7Xz7sGHmLMa bTLHSJOhGOtrWL3p/R5T2SxvjrO+1d+YTu7aWIf0L95eS9C7YjUEolE/x67i f5rfzp/R6+MRJa4PrCYAXt4bqGKqlxR1Ndw6wdiKDfaeLCMJHEdyUq7cKUk6 xMnCmczCqPtRvRvQYDZmGOJmBgxmGZLRFJBBY41nr1TrcGdSQDBD2V9Yx4fq 4VFyIXkzqEgKszIGCGKA6h7N9M/bIfulmWVlIFBGoEe09rV5CXrzzFYQZwrl G2ZxUpszaEKPETTGUUkFJwWTyqDlw/FdFoownK5dHLCC5A6gT0x5i0EwHZcT 5ICtSuXRBe4D3ICh6wJFADoX8qFoCmYRiEaQoQpChSplpYkppSkoSqFKpKA3 IHbCI9sJeAVFpOzGDIp9Xy0ouHf8VZHwU1HPWAHQASLESwsEsS8+A4K0YEJG OSlhFg0rSJrWC6nCJSQsIynKgHAJDIAyAMkKyCikYKMUbUUCwo6OJOL5q6PC MHA5Mk9tdvpj2+OTJ4HjSekA7Szkn5Nd/zbfYgfjGBIAcHgs4e5ApKk+bqr6 8PURudUa1svEkONUMBsDuHE8NosPbEStaK+E5gPbGIaZPcCd0h6UEgoTfcSq KLctuCTmI/0jOyNotWrBnkBknSucM4kVdwI65PSIEOOphFWzjpvYVokzhZmG oJl1O0lFJAWkMLXnhWSQSFIQawhaHhwEHBhPKvmhAV0ewo9oHR0uNMi7BJLv oCV8nLWgT7G84sQueAZAd++23s+PHHlJkpQBQxh5u8NLn40gcXeWBmDDiF3h mGq2YdGxXa9dch8pNF6D22ZTmJCStyaxkTIGfGfuF48yJpwa+9mNF+8sicye ntONJ9k8UjpS+lcA54H4bdC31svIyZ+jnKMgPuWKl3foHTHgD79XAtaV3y64 YT7KxNp1GWinbRUkv8V3+XJEpCvZi5yAqfkKCCExQIMHCUZqKE1e97io3oN9 WdMmujLd03mUvArXbP6JfUD+qTO2k/KC+zw7t9SpVUBg78lphBJCb1/GtnBE +T44woWyID1IlGrCQPXt2fbMZWSBwFhUJkv/S25C3X+0Fi+UWLft3UaLdaN3 otzBMXAZaiTH5fUuZ0a1gaHYuC3w70TQdTDKBz0KLTprhYrLJZZEj/Utevbc Fv2zbRkLYmf9C7wD3y5CLVNQPbDZZy7KP81+NaNYbQoAe7b3hoAWRzeI7rtN lBCAWTANlAGTzZRZV8kc0T0erHUFPmTh2bHEQvVQZ08VCqVhp39VRidBXkkm UrqzjpWzilPTN5RuJ8tMyYNyaeDLZhd2iIAs+4DBbZ4Ueet0MQU12p7Ct2Rz BO8QTteLLACwxPjqQZIgQ+ScBMIIV9H0CaU1o0qv62yy+J8JU00hfwZpjrDC JWAUA4SFKQZwYabrE3iyp7qucaKrLZPnqJCMGxzvcmuQt3on34sL9PAmEyLh mzOgAhhN3w7oa7QM8s3lS6e3dkZkAYJpsXQbuWM51OJV0etg3faSVLQI26uq gJJejbfN8xZZT79bLAA4dtFOQ+mm0ZF47GxNnJcV7T88AjjmpydwwfBAAfce kK7CxFxLq5slsqGJSlKTLWQaFhHtEBQYgEIWgWhHQDIwkQGIodtoivYz6XjQ tF86rsJ3dicNFgzWcAP05qokAMhstszknMolUzCzADZzo4Xq2S9YVyMTzFg3 nHEhVQjtdKC8uwYRkAAMAGPTPYg4gOG4ChxnZ+yRYc1WWRS0sAKaECTdYggr ORc6be2Ltrr11hrIWuneNAiYaStOb53KAmII7qE8uEOezpkhnDKw2Ero2eLf CyPVp2EuTgmSehbVo7QfNq+g4bt8o6p2lhl2yHXQplIZJw4E95NpXbJZwjOV VJ9o1r5soi+hOIh3XSVOpo9NH3bL5sdAZwsKiBtAPGvWWfgi6nKQJPXw5WBs TGogsmVNndSL8ogkPMhgrgZZ+b6/L9Lu7xxoMnD+Im1hLsxnPET9wmHGgGyM IJaUkzChaMizEwFeA2Xw79s9TPwyaC5FkrYpI+mxVi8CsRoN2sienQhmYOPD xOIob34gmFfDEq5trKJeXgnctlwXNYrWtXMKx6ZsTXkaLbXv0kvLmSu41Fk4 T04cZV020LS4s5PhZJqCu7Th9REaieai3knqs3AHQ3ENoIbgLKFb1ew4WNbn aj8JBRYV35hSbUYxFQQBHNDC68c1luptxzizLACd861l82nGImPtmDOljSWs Fhm9ODRuaA12Hp1cuEW70kwXnYS1peevs4XV1dGA0xQWCwxW/vMTmvCbdmxv cC0YHHdrXXbpewhRuyTeYSJFMTCNJ2qw1PVWOrBN7A3dGJiJhVrKDskwAtrP CMOlCd3jtN1ToCSv3rk+g31J2RNtyEQgEoIy2rM+sM25NmSwpx3qVdK1vkog PKVxNz0+LcTHIdZPg9SXJYmujZ5+YcudG5/Tm7+k8/VS4QCHqRz4nhz6C/CP 4kFPNogEH1kvNiFqqiigiggKhKWkKSP17AsxMujn6jrDhUT+Dw8/I2d8PVD+ TAvUQJok4gDCPZAuXdOSGpAV0gBpzQpTugu6Hdc7Pu133iz1PnCzmHhohkH8 n1Z9PeA1DT7l3aG8mZdsTaAyEzzBDR/FMxx4pmW9ANQN4nJiXYoOzPd8fGC4 j1k1yU5z4kz5IPy5hNxcLWZEPnYMre3jSM+MQHAHGtTE8+fRDfF/f26u4iNN MOIvxdlEaZW8wHZqaWDOu9XQpZW6NlbiWGYtyutE7ZHJDZ4CGBHup3SV/Gw6 NqF2Usg2s43STUcLGe4cxolNt8RGwSYcWCYX4YM+/GPZ1fQe0SKUGhApGlqQ EOwJVgQ/YqUqG+Hn8aju59e62/loVv4L3rhguEmLH3tuD+ZgwjIVcMyF3iv4 4KmN5ngiF6yWPMgjhmMx0j8BOMedtKE4sO3zs45bml7GxkN40YMTipQjNoDO 9qQydwMH30cWPC6XZasoJ1j1Aj3EOXYw6CfrMSMgHT8GZUVeTEzU6ovA2Zqr RoXFl7rMYKGQB4zI4eb+JRGixBMBU0babY1mPtySSNJyJyGBbvZnuTupd7PT EvKlEr1JQjdJOOPavVKa7/AltiGiihOF0IjlESEGWKfX21HMTlb3WEoXUpeV xpFssgmZuhoeWDe8S3Q9p1JkNacThymBu0xNraciq18i++eP+a6ga47B4rS6 6lH0LyAl6JHwwbqVHh5YI57j+6IQuTQ9oYJyQaykk2D+mJIXq+ye8D7EzyNe L5ERsUsEWowVeOQG0OjcQQy5ZAgxlktCsM3u/MTgH4/s+8fOi7GZA+efatlo INziAHqS4gfS933zz/gw8gb0bBAIbgYEAgG9Jn1mMzguRHFz33oEOP3Juur1 X70+rKciwOBAJsBFNJ4YN4Eua7lznE1AhUB786JCRkhA/UMl9nRSxinamywL yB0u7XX+zv1977QLJjoSZSP8+4zW6+3xamK5TmBuM+POs/IBcCtObbqq91Ad WoHYBWyEAhpVI5ubLDeXGdqc9d0MDQE30DKXLd1ei/qt+Wx+HDMY+CZ+jx8v lFOYIqur3yw2IJT8cX61SQTATCA5Kl+C/IZBZ2aN3JytcB+rv41vT27MUch5 Of2i7aHJ5IBUHRxgLDD87+G2eSo172vb6WtsOLGiTwUnm2+AYQXxjrqtGHz6 GEelWVIEdyHj9bEbbNxhjzIjC5t6VQN+UOMhP2x3ONcXVtYY9hu9k3G9BISE OfEjiatvVr8ddRvhlblnW0khCEZCEB2cHEtikbl7Rud3QispxxhQBLL4b4Z1 l5PV6tKegATYbaLXQAflL8C/loD+/VR9YQUOH7M6IrQjp7vv6XRsDiaY0hkm SUAUJYmKZCJ9CrDcsHFUU4fnXzrdTyL6l/sYdwj+QPrD7UI/b9lzAMP8F9q7 L6V+xfxrkWOIGBsv2CUCHzr0fieW5cSymIh0gma0CbUYRklFFR/HCi8mjCWA aJzI7om/X+tpbwdmF5NwpvCDfoJTZDpT8JwTW8PuiLc2Xqaea9QBs4jhjyDt iuzFUsvSHkQbID6iCuBkhoi2ZssW5yuSiFUdKD+ZcEB1DL0rifVHqQ4dyz7l yXZSJBk3AhwUhdHR1xYphhkhETSfCvpNnWn4l25rdM8pBTVSl1UE6cJS6AZK HdCywFtQUHWtw5rZT4HPJyhoLmgNlTEGy0Pm1eSnB2mkd69K+cBt4LqP0kQ1 WJsrAhF2EOlaFclLxXoshqsXYUzDM2bhvNz0rqLcQ3m8CvKu+sV7JxWGIhxW 0CsieLitnACaL171ybQxzGV2V3GZ+mi/SuQHGBuqEMs4hxhmQdDIdFtF3rSL 6IL8pEsgOu85rZU1XBaeS+i4hjCE6UmaAKPAgptwCTlQ0OYpqvoF6l+DpXj3 Lh+D3/pvy+B0+n4XXhVVVGyp0dpvfAtLXSmJHLCeTsVqD/KwgYXWDqNXL1NH uPgk/bY+tiY54WZ92LH6zOca2hWssYkOOupjTGmrs4acsI28sj10I9pewvEr UIUsqMhEHr8Q+8BbaHo0B47GsloeVsSIiiEupX5kMMCZdOVURVHNx5hPrcFx IOfDouSRimHBCcLO2ADZlVdKByQ07dqOImNhMUTBCEAS1foo8BCm13FBGRL7 EPmLFOlihLITvL4gFzgrgkgBbZjZuDKOK1r8DbwwOBzkL2mgy3ROQYyTKh2s JEgRInzUlNsx1HVUTdSmyGiXfCEgEkmoHl1IX1gyKmurzSZw/D9enAHHym5P hn4cqOhNAFe6IonYFuIy0ZTqOanSfSuyH0IZi7qEwxYr0onbYG/p9Oa77H8e dCctuC0wBA5wJ+q9HkKZ+eA6A4AQlyY0hoE0VXceY1vpIvGJQJA910MZ43w2 OnFaAsBjvWguBi4gYGPUdpXZgDCUifXuC7Wej6Y6fnJ67j7M0XssOgDgBqvJ Abgb5jUhXJT9K5csz1mJGH+RAyDrrQGQhOC+k07A2aLVn2y8nbJgYWqXwnYm hjn31HPoSTcNrlxAWUG9YVBJwtgTAh4gms8Xn7E4kCeEaqcSxCQjIw8g3tnQ gTqzFjvCAHoJ7yeZ/f3fd37c/OjigkJAgMQD1BYlaa6UkoF7i9wugPwnetw/ Vs1iykPnAoDoQCVMH1Glnxg84wUNAFUiTCRYNleVAFsThBDNh2/HT3E4vpGj zhvTeJzYOR9ly8m1iaQZotJdgv0fFp8cZMeb362SaVXN5k7DWNFBDm0Dc8HY pBuJcCRd8FS7NOyRJt6cJKKqiiizr6qrnhUh4xuu7nbWEYHY82D6Z5gJGo0f h3AWoGaJDaFbVI5MvUWh6DOjCVkmcdj0oV1gJRAnGgUKpG1tTQ1TxrV1TtNt rbBMZkzT6SNlFGQefbicOFVJjmFmEWRgGLxrMsZb2BgEZrvg3qmjaTIJNtbQ tQ4YhaqRRj0ytuSCrd61mhMI3EUGSRMTMRuMaqscJywxtYWKtEO8PQQ8LcJU cNgYRmsTI1YpgwhphwgDIAoCYADCENJqMJJMZ08zYbRNgYQNA3oxAYqxHCC8 QMk5A5w0aw3dA/wCH9go1xAQKNcxAnIYS16GYoU2yCcmU6iJj1Z3OzFccy50 LFtuiF52XekPKdUQ5AYm9N8mDd8p4gxdJnaibjwivjptIZDzq24S24YuZQ0Y AlLlaVbzW4IYxj9C8nKGa6ImoAFLcuSEhsiUmoHs/BnpW7TUnJOsTp52+xNE 3V9NvjiR8hWqagUVBPtsyLhAiVTNErWQgAEq0DChKJNpNcAq6RGZMbQJwtKE AyopsBmBPNzBY4qjlhS+yVspjKV73ADLAnJ0hWbCuRN9gYxJFtSaTJuROtdM sRalQBWdnSZHKDIS2+BRMDls2ovyJWoIm7O+2MIDIYoIF0y2IR5SwgBQKJYY WtBgAGUoVa0WysIZEuZ9OmJYi0gXlQtVZyo5LfV4cSQkGIgw44J7zAewgAmB QoQB5iaG5D3XvBOJvYLAGLFIJystOZgUQNwh5iIfGWtw4DKeRPPRAcla8eJy BOCspTxmh2LObXbR2OBYnWL6DIePFN4LcmFUmYAajJwbLbDKyAdK0tI6r1c+ Nx4c1ShivuMDgAaLOP4uYYZGbnOJ1LzWljal3XxcYG4Ug8MzxzLvoHNPfz4m fIDfy+VdcnQ8u57AOzskXnQPwInEDnBd27Yec5SmyC3Y2cI23We3ddzu0YGJ ANDqrWDcIjvgVON7XuYwqXREonlFg/chSEJgt0adWJZnSvhhdoJRL5bhNRUQ UOZYgB04ZJKagQmAAnxImDXSGS3KhZRgwCHINxn2q+I0GaxWIbhDISOZXdHi TS2Nr1rlJe6FksNHpBhW+ooGAHaGsAChcT5WF0rbhqOx4kyvCkdoHiw5J+tB lRF1I/FMQ0DEUO7qVfIC0DKp4LD3yiQpGXxO2X7vXVE9ZdQMAFshks7kIEPZ XwwuhMQdCCfbVOs9yHqWKHdAWjzJQFBBKsjVK6xjDPpKA9eGoENTO3Mgsw40 JjBYmNPDYjLCZK5QfLRS38YIYuKNEDpsvqKuR57WsQz5KHitlXQ+LjsXnW5f bxyjkGJwNwB9QeHSC2ugaEg84JvV1iJzBCoVpTMmjCLNER1iYvYCA2iFzIgw OoOWPS9h8j7K7coLMwCiNI3FWN8DeyOZD1gUGFfopHgQtAPnFhRpKBKApApS hacbl+GOpYFniuUNm0a4FBcNFpNCJ9qUGmdxCQom1peQGwQ3UiAETsfjEeDs PynnW30ui9gaA6PC56kBwQCyJgdsFPdF41eCSEnh8+wLxSixTvfP6fvm6Ryn HTOjucTIuGDA8KPCgy2pqnht1ZUWEzZ0YaL13JhBzDoyx4xcqwQPjMO8gSJC SBGCIK9sYlFEDoX18D5zzhbw0spzKO9fpghSA93bk80e3vOiBBYyx6j1geFj 5dgdCHSqp4VCIJSJQPf+ecgfuwDWC7v1jVDh1B0nYCmMJqQTmBI2e0+cLwEk kF2kKO0C/fxaHS7CySe9R4QMx0xdPmew83lPYD11Ewdp82DvSbix7EANAmz3 HmNPmaukiCo4sl90L8tW77hOCdqHZ80cHyE7DJ2PcsEkR7WINLBGzcOkrrPy H4fjMekDzgH1WleOoCplJYCoIZBIQJw9hzPE8FOUFAKPXp5EFiZhluE9RUJz AyaCgKVwDuPMRfDGkLUucHqXsXP5fA9X93usb2R8V/FS7Kc6HIrrhb728OeH c94Gy9eA37oBQEhp7zpEDaqpqg8UDhwVgTToDIrCijFXa34V9n1aODJNrA2A tT1uAyo3AJAN8E4r0J1oQPOVOelMiQpiopzHByyPgsxAMMhCqGgMscwAs/bX y8+hOBxXp6qHrA6m69H0b2QUvNfNrS7qizHLqQzbwuM7ANTzEIW0XXygbLcZ pcV/IttyJqHSDF7usEzuoHh2gBDyPYNgWb1g+RDSPksNAmREH2r35h92Ggq5 FggUNGssjMTt8owner3D3lpwCN4YklQqFUUifVE3GQfL1yJJGJzUNbnPlRU1 NWny7SjANASpZrSmvTzXhxxeYsMFvGiLCgZzhaGNAUwquumx5ejfa56NsgqU uZqXnBqi7uEwkgjYuNQJ6bIUAIOkAffkPNvUDcxTUm8aXAsOclzW1OJIUmQc 44C6bEICp0pzSlJa6SmLtxhWsZQapAYhqJMUQ0nowA0oQY5ayOykdRb65zZb 2YGMUDeBjQEB53kiDQYfXD3C4ptgUNJ52imUb4LAuEg5AiwaYGET5LxbYcIH BgmhM+owMIaEi5seVO61RM4L8lg+BE+OqoIa/ZSjy8s3TPB+I81uFOlVNkB3 LA5FUldfXajm0QiodUkUKgCEVcTycwLOeYvkJvZTBhwORAB5EAzLKhRQTfRc eMU2gZRzH7hddaFBb17GKZQkDiQ4AugpYeXFrAAzxsMgM7yIDIyMZaSKMxwA rJdkN0wMxG8McCTXCxdVveWBhDWUByPR4XYLZjeqD6pdSdjGd3hpKeUjuyHM Kq3WQ30EhSwg2H5vBEOdtNW1RMsgfbAE96CTfQsvdH75ovTvKBX8aJsu275P EBPgJZy4ZWTinzTipiSQRgSE4c6FOC6UppEOxyi5iG6aXHgBP3N5mjirviRY 8zLdPKux18SZdKzbeYYUt12AuBb8y6ZWWmLASEkZG7RR1LabrW4HOyGt/bwZ Pj5V8hEPyrsrwLEOBaRA7wOlfav2L9XUBy4IkXTFZ3TXbJeRRf1T2ffo/B5m jqITUPqiBv9LwfPOkaom/QdrIGH4++N5uKNZvApgoen0HOOglpqh3dwIfqoQ 9dsA08jSVRE69krNE5ai5hFua4l3Cfr9Q4mU19gPEM95xGEYTr985LwNfrgG 2me/3Dh4+DPPZW0Cx43cb4EX3SiIVEwnhhsvMDv+dHkFnbqTRblZK9D7MhUM oQIk94e3GgHjBN4FndG1ojBjEEkaJwhTS01JMlRUlAeOHKAnhcwodZilxi4k 7zAXiRoCku0zKQikEMkMCKaopGIUIlQNMLhKEUtMiHuiJiWwX9QHqQHdrkQy MVNa3pNiAaGiDQjTM1KQtpC1lezIlg9IQhB4Ht2Ry4nxRaXbWQ0AsvsRPQg6 /Gw9DhJ3xOPShSah6abbjws+colFEVqE8lJUYWrvg5IGGLoh2IBSh5PUuR6Q IBlgY5oYR3/KujgDtAg6xNKaRJCSIZYESQnEUhQY7gzTXV8ieYvpAvh210au 5fphPGh2bF+iWhyDTUA/EITq4IJkEqh0fJVpGaqAG8NzZG8M81AmPzwlSY0m InHJcIPYnnEQLwGdgz3nn44HpvHFNd1dzlAFkS4YJCHJrEwhBpFYCZKcMRxj zk6U8rSHAFIQMqUcKBkZE4cWaqOAhfweJsAEihGsbOAKFQHqk+Aqyqp4DJBU ANQK2lXK2zt0nNg9ex9JnBtwB5JzoYFxdLL1Z3czhdHfjRSTBFQRUQYm7v6l pcfH41i8v2myqCfz31czx39qHEIR0avvvggeBHLAzMGLyWgOldDn6bXh7Zbp lFbU3jJgNTogfATAAgcmlKTftOhXiBrrt5UM+PvORo9F1sv2+XD1sFBEkSF8 3B27DgmUuZYHmOjIiA12gbbRo0a5K2A7YSiDIiJle4HJLHpCepFxOfkI99uJ N8N/BdwWLrnP5sn4ZIc0ffDgpBLYYlBLhiUyNwRCttuQhGfQ+7MrARjRmP5x KJtXgD0tHjrWZ+94UHcQz0bX8gGW46FVmA34HqvEHdbiKIoirXpXj75rHeuM 2UG5wqoaBnEkYYpiRplHatm4QxmWEWs5gMIJy5Ayus6ZJuJWDcMqZlaITaD0 ZjViVoAawALXNQ1k2rJbnhkaYZRZn/BQ7zfkGuQF7Z9+7jxo3Q1pQN+YFAst KFzxxdAZlm/jd20A4VLReRs2LtMjXDz6NtuVAwxrBxSyHAdw9SjkHoiDI0ZD YGDDds8NkjKNCI9DMa7FXC4XCiSWcV5bOFtWgoWCRQIwSDsGRtS0eBkLi4KF /fhziURFsOLimqXTIjZKutNclocijlSsK2hucjmUAbEVR7tbTQyi5YsyuFw2 cynFUoHO4kQkAXYsvVHQBA9UES2GSpzZA/DeRNMLXgPpKa+I7vctMPJASgOE aGhnR3+xZGjaZcGvbwBQda6VJpcK0ZWHo0oAqqFwC2GlWcUvaBMZbLpEoQIG RYQYwCgK4KdXUq9CBR7h7/bsNlLRR6LZjG/6uVljI9GCsYXJ5LnOEkGBYI2y YJXHJJM21KKRtMnQcuzdHALSkmLemoNIynRjhAphcYQbnxMIL69+TAYqPlmr wQ+fEb78iNmwGEiQoK13oV+e6/+yAV6umBA6sCmmU6M1CQYVH1w+pCAOjlyL RfcQ8/xl8XSfJ69nhXy1IUhxmOepdaEblZsweRGpM619hCBDHpNFomgGTRVw wXWyMQIEFLgQyWloSUxEAyYmOl6s1G1LVG11NARuYHUzgCe89ARETVBTElBi hfsBa2NLs2Wii3J+ReIv63i19CJmtufNQAhB8R+DMSPfZMkSTkgYVAkgRCOi rj5e3xEufAvNeCGq816w/arYYfVXIPLoB+8RNUSy+HX4e09fNTGIfDjYDZjo N8mdvpaN5mEZkHaGxPQ5CV6AIBPaDdwHy5FQWu4qupT3wNFyX4oUBlO+AasW QJByAXB1N4ruFJACIbHh1XB6C+jJYjzGQXnLqDHNNxVwa8GIFZAZOvN7DFpH JD5dkbAu0PGbBcVeEAccaGDSnJNRRhKKCJdXnxcMe87UxAN4QYvLEDckIL1P VRz+U2AiQnDILYnCBUEcYO1sCaZ4liyxYg+SciJIqRY+oirrFRMejhf0a4Nb qiJ2LkZmVFkqXFxXNcMl7QMRMU5ZZlqMbXq6zK9sJUW9LZfzry5C5Detmomo vJDga/TZXd1MBo+iFnfBKhcRTP+gJ3Tod8WKGH11aB4il2gXiPwwaZzboWNI p/+LuSKcKEgAhLn7AA== ------_=_NextPart_001_01C8D202.DB62F183--