From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 601AF45ECA; Tue, 17 Dec 2024 09:02:35 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E5143402E2; Tue, 17 Dec 2024 09:02:30 +0100 (CET) Received: from AUS01-ME3-obe.outbound.protection.outlook.com (mail-me3aus01olkn2096.outbound.protection.outlook.com [40.92.63.96]) by mails.dpdk.org (Postfix) with ESMTP id 287814025A for ; Mon, 16 Dec 2024 08:41:03 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XInr6TlL1RTVDNMcl9/HjB0GVq9wuH7ns9luNomBOoJm6EJyLho0cO+vR0lP24irT7A38XcM1q6NrTXBVHRxMXUwl4rfwnbLstILk3VJjpIApInSiUvXIZf4Jj2TtQpH7K7TXJK2RAuOQfG7ksA9R1P7UIganXyjxgJspWOWUwj+t60SNOqoKz3Tslbs8JDOtTv//A4YaHpwVA2KBVvdTvFpRftzTV1EkoKtCahJGhHDDN7bK6A0vn3LhBBTrxt2/nvwNAN/W51R+REAlkLG3pNMhYx1a9hH0YV4QhibePsTJBliFrxxm98BQKyO7j3I2p+MVmZkrlgNXMFqenE63A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=j242p1Kh4E5RvUWzmwdhO7DTcLnNx1ByM+BfDVS5xps=; b=LthpGKVne1TOoo0cVAGes64SGZc9PV3DMRoxtu+1/n2yT0c1zMwzgsxxfmK36Pmx4DbKDVGb5owsxc6AJrdNsxmX9wfBjiHdbPPoXnf/aP6cBzYkamI/HCeAPiPXySmomU37kBagjxE7aurei+lChiKIlB5g3+1XXjTiXfOr72vrOVAGfIk66mT1ltvE2CAhvmNs8o5IvPGyxj7M71JRUpsyKPPpCNESRgvs7astTYJ2DJPDI1BYxB9R3DSJcZ8I0rrtdP8bZQUEKFZOnYnziv5ZGyGF26uXffB6z55/KwKFEDo+C/PkI+1Te7D7gLFdqt/KzL7Lz/4IoGFx7T1j1Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=j242p1Kh4E5RvUWzmwdhO7DTcLnNx1ByM+BfDVS5xps=; b=XoEx/PBbHvngmCnTv/+ePxLuUCzVBTHtvUG0HHvv4L/am+GY3HfLwpEDv/K29Arvwh9ld5DkBzBdiGTr7rC0+h0LZyrCFFnZjHZBULUrCrWCqYRCYVWRfqjhbKEY7VZ9/arJd7Dt9yi5xtV/dtHRju7WFEdqN3nSNolJ2TNfAOFtE8DT3/Ww2B8g2gnX0/7ViTog8BpuM/0VvWzySSwshvMwJsJ3JBjIVP5cAHxiN7jlocEthAjaHVzKmYdsKE/+ExkcPVBo23EicQ7ebu+hdqUkBWYF0hPTOzcdwhY/2fmTTp0vxjLMYhS1LChqam8R7m/2mNMXOS2yz/ry/nJjFQ== Received: from ME0P300MB1038.AUSP300.PROD.OUTLOOK.COM (2603:10c6:220:231::16) by SY2PPF590338081.AUSP300.PROD.OUTLOOK.COM (2603:10c6:18::39b) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8251.17; Mon, 16 Dec 2024 07:40:59 +0000 Received: from ME0P300MB1038.AUSP300.PROD.OUTLOOK.COM ([fe80::1603:1df0:71e7:4505]) by ME0P300MB1038.AUSP300.PROD.OUTLOOK.COM ([fe80::1603:1df0:71e7:4505%3]) with mapi id 15.20.8251.015; Mon, 16 Dec 2024 07:40:58 +0000 From: Jiang Aengus To: "dev@dpdk.org" Subject: rte_hash socket memory usage is not balance issue Thread-Topic: rte_hash socket memory usage is not balance issue Thread-Index: AQHbT4y6uWvCraOPXkupHAnniNZanw== Date: Mon, 16 Dec 2024 07:40:58 +0000 Message-ID: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: ME0P300MB1038:EE_|SY2PPF590338081:EE_ x-ms-office365-filtering-correlation-id: c5269aaa-7846-4d6c-7267-08dd1da4fb30 x-microsoft-antispam: BCL:0; ARA:14566002|15030799003|461199028|7092599003|15080799006|19110799003|8060799006|8062599003|6092099012|13095399003|102099032|440099028|3412199025; x-microsoft-antispam-message-info: =?gb2312?B?MnQ5OG5SOXRCQUtCLzNzOFRHU2lWajA1eWhmZWRUVUZ0eUtmbDdhU3p2Q2VR?= =?gb2312?B?TmFjQXpaMit4L3NVaTVVMUlycCtqS0tCanJkU1ByWktoUHVBNDQ4ZWNSelAv?= =?gb2312?B?ei9BM2piY0lsZzVQWEJONW9zd0grWFIzK0ViNjQrU1VHV1BNV0RxaitaaURQ?= =?gb2312?B?YkNrNzI5WnM1ZUNFSG9oQ3d3OFVmZ3k1Y0dSRWlhVkQ2U2VWZ1R4ZTNoSEp0?= =?gb2312?B?Zjl1TnRqK0k0ZEdYNlRqWHdiUzJMUnpoemRTb2NCVkZsdDd4djZ3TUh3dXRG?= =?gb2312?B?RGI3V2FRUVNHMmkzMkZWQUhsRkZyUzV3SVQ2S2dZYUpPWlFXYnVjT3BjVGJI?= =?gb2312?B?UU1tcm4wWSt1VG13eHhJQjJ6N3JHZGplU2txanZ4NytnakxMbTdTKyttNzAx?= =?gb2312?B?RFdFUC9mTzRIckJKQWhVOW8rc08wOEY3TjNycVpoNU1yZmJqNExRbXFaMnZW?= =?gb2312?B?K0FxY1R4ZkxzRWhjV25aa0VQVzFWYjZnd3pRbWZwOTlzdHNhYS9sZ2QrMkF1?= =?gb2312?B?RTBEQXZ3dUFxZFdDRjBmOHRpeFB4cDFDSmU0eXBQekh1U0U3WEs5WUZQRXM5?= =?gb2312?B?T09aYlBud0NPMko1eTZZWFpjdzN4b3Fya3BveUdCL0NGWk00REt5K3BzUDhi?= =?gb2312?B?T3RSODl6WWdGTEpVbjZEVjQ0dGxFcnZlejFDTjVrY0tvMXplcWs2VU9JMXFI?= =?gb2312?B?T0J0UDVuWTRZL1NFdkc1WGJMSXZFamlGeHFobGRwQWFhWVhZV2N2QUxzSjMx?= =?gb2312?B?Qk1oc3YwR0p1ckJnd2RHMTByQSt2M3Q0ZjhzUHJ4eTdpZldwYWFoTzJWNkJB?= =?gb2312?B?UUZwcnVRbFRhZytzekdwSmwzbWNDOEh0YjdsRVFFZ1ZyVUh5YlhYVDlwRFJK?= =?gb2312?B?NDNieHgreTE4bDB3aExwVkhLd0VFVlRlT0VldUlLcmIyalg0NE5xYWZWTkJr?= =?gb2312?B?U0hsUjc3TnZ3bTM0SDY4S3d5Q1FXbzZNR1l3OWFwWWZzSmg1ZFlySDJ1aEli?= =?gb2312?B?WEp4TGhZTzVzdHFGWEFzZFJmUUZnOXlZQzE0eWI4V2VRUjB1R2dzTjBvR1Zm?= =?gb2312?B?dzdJaHRFcExSSzRsTjlYYnQ0dVNtbW9nanJvSVZqY2tlNFdZdXNvRFViV0NR?= =?gb2312?B?K0xmd3NWV0l2eW5OMnJnNlpRYVVxVHZOOVF1UDdvL1JCUEVyME13K3FmU2NX?= =?gb2312?B?MUhCOUJURzhpWUREUXVGajZEUXkyeGptaloxYXJVV05taGRyRldiTW1YWGta?= =?gb2312?B?ZnBIaCtHVnJGUWxvanAxTmNNWXZ6SEttdWtoWmJscWMvUUx1MlBKcDBac3Nj?= =?gb2312?B?dFZBdm1GVCtFYkNnRXcxVFpxcGsxZThMK1BRMkpCbGxjRHFIaGUxdVhQWDNh?= =?gb2312?B?WXZrK29wTXF0cm9FeGdyRVFuMW5KS2gxTlBLOGcrVUJCRlBjeEQwcVdhdWhT?= =?gb2312?B?R0tBK054NFFDemhEYmhudDA5ZEErdmhWeTRCN2xCRkNQTUVnbnliNWpYdmVS?= =?gb2312?Q?qmPApZRHlkVMhNgfGAhQGqNvl2d?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?gb2312?B?aUI5Tk5ydTJobmR5USt5VVl3dUE3ZzBDWTVXRkNNWFM2ODI5UzBFL3VaUHpJ?= =?gb2312?B?MndVVjZxN2pKWmFOcjl6NllHTTBVU0ZwRlA3aGtNOWsyZFpBN3FWZHVwQVRm?= =?gb2312?B?L01CZzR1cEpnR0xwNElkMC9yOXZkejRBSU9SaDNDbmZJVmI4YWVDNFQvRWc5?= =?gb2312?B?L0ZKMTJ5Qk5MWVFqWGFTeFNoTmEwK1hNbytQeFBIdkVLV2RMVHhkMnkyY1h1?= =?gb2312?B?Ky9GVWQ4QUlvVnNBWTJDbUxSc1g2N2hrZllsZUpPMlh0L3RYbEJyL0ZYcmJX?= =?gb2312?B?TzJ3Wm5yQzVGOURlaUR4dVdVL3pDTFdiUDVWMTdMSzdvT3E3M3JSeWptZDF5?= =?gb2312?B?b1crd1g4aEdwYXcxekNMMkFjTXV1S1lIR3lXejZhZXo1eXBlc3NUVWxpc2Ji?= =?gb2312?B?WjRUeHppRWtYWnZKRzZyTU5IT2dIRW9palFxWU9XdWZ5WVFIWVhiQ3hVaHp1?= =?gb2312?B?dFA1ek8xcElTZENVRXhpZjJ1a2NDSGVnQ0ZkSGdxc3U0S3JmU1RYb2JZSHFZ?= =?gb2312?B?WGRtVEZCRVNnNjdMYUFkb1JNeENXbE5zOGErcGsrL2ZtWUJqVXR0UFRoRnJw?= =?gb2312?B?WVNCci9QZE1yODNLa2t2YUhxUUtqTVAvcWx1V2RvT0VDcnhmZjFiRDdZY0Mr?= =?gb2312?B?WU5JQjNxcHRKb3lpdnhWajZSN0cvV2dqVmNNMzR2bGxQdUFFenVJN2oyMFV2?= =?gb2312?B?SEhpck52MEM0RDdjYUtMUGRCZFFyTGR3UEJxc2tKTTFTaFY4UWZLemFXRk9M?= =?gb2312?B?STJwWU5WQ2JSaUZkbGV3TEhqaU9qbUpPVkJaN0RiRGtMczJCd1RGRit2cFdy?= =?gb2312?B?bFpBazEwdmkxUmUwUlBvVkJiVWdPbDJBNlZwOExmMkpvcTRwc3NKTGRFZ0Ix?= =?gb2312?B?WHVhQlBUUHphc0lGU0Y2S001RGVRSEV5Y203bXpoV1VJRXdaUmVTWFFReWp2?= =?gb2312?B?T2Zyb0trcDRHZHM3RWZJdXI0Z0l4ODJBOUlTWmdjZ0Nmcm84dk1YZllqVDlX?= =?gb2312?B?SHpwMndwaWFTZjFJQnpOcGFFZU1WRnkxNlk2UkRuMVdGSDRodFRUQktpc2ZE?= =?gb2312?B?dVM4TkUwWUR5bnAxZkdwOWJ5Z2MyMXJrZkEwNmhOcFRIQ1F4SEpIK21LalFZ?= =?gb2312?B?RXdhNHp5TjJlbmEyM1BiTElVZ24zMldodzZQWmllQTdtUnBmc09Kc3JqY0JQ?= =?gb2312?B?djlyYmNJMmJIVWNLclZ6Q2p4dHA5KzVpWEFGNy9GbUl4Q2k4RUVzNjI0RGh2?= =?gb2312?B?OXVHUUYwV2tmZlNINy9yZmR2NkJ3TVJMU29qeWdLQ3owamR5YnNDTDhqa2pK?= =?gb2312?B?NjFDVVNOektwVytyZEVMblBoWkw3OGY2ZU1sZzRwNFJYc29TNjZoVVcvVVNV?= =?gb2312?B?TlNmMFVpMXlRWjNzeVdhSUhtTzZWbkpHZGN1VWJ2U2M0dytFUVVVZUUvK09j?= =?gb2312?B?V0lWcnJHNVRvV1NCcURtTUpPM0I5alJpTE1EVWdZMmhua1FSOGtmSWh3NFB2?= =?gb2312?B?ekFTYUN5YWpiOUM2bjJ3WjZzUTJlOGpKVjBTMnAzRkpiL1kwdnpqOHhTWGRD?= =?gb2312?B?TWhLZTFhYWlBZ3p3KzZOcmFhVTE2ODZNTWI4T2x1NXErVFcxcVJiaWlkWk1E?= =?gb2312?Q?5dp61QMZicwJuDhEijasoizRF7PvzIxLfTZCRa9NyIt4=3D?= Content-Type: multipart/related; boundary="_004_ME0P300MB103892238F653BC48B60E1F2AF3B2ME0P300MB1038AUSP_"; type="multipart/alternative" MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-7719-20-msonline-outlook-448bf.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: ME0P300MB1038.AUSP300.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: c5269aaa-7846-4d6c-7267-08dd1da4fb30 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Dec 2024 07:40:58.2114 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SY2PPF590338081 X-Mailman-Approved-At: Tue, 17 Dec 2024 09:02:28 +0100 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org --_004_ME0P300MB103892238F653BC48B60E1F2AF3B2ME0P300MB1038AUSP_ Content-Type: multipart/alternative; boundary="_000_ME0P300MB103892238F653BC48B60E1F2AF3B2ME0P300MB1038AUSP_" --_000_ME0P300MB103892238F653BC48B60E1F2AF3B2ME0P300MB1038AUSP_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 c3RlcHM6DQoxLm1hc3RlciB0aHJlYWQgY3JlYXRlIHJ0ZV9oYXNoIGZvciBldmVyeSBzb2NrZXQg d2l0aCBzYW1lIHNpemUuIGVhY2ggc29ja2V0IGhhc2ggd2l0aCB0aGUgZWFjaCBzb2NrZXRfaWQg cGFzcyBieSBydGVfaGFzaF9wYXJhbS5zb2NrZXRfaWQNCjIudXNlIG51bWFzdGEgLXAgYHBpZG9m IHlvdXJfYXBwYCBsaWtlIGJlbG93Og0KW2NpZDphMGJhOGVmYi01OGE5LTRjY2EtYjc3My03MjQ4 NzgwMjRhM2VdDQoNCnJldmlldyB0aGUgc291cmNlYyBjb2RlIGRwZGsyMy4xMSBmb3VuZCB0aGF0 Og0KaXQgd2lsbCBhbGxvY2F0ZSBtZW1vcnkgd2l0aCB0aGUgcnRlX3ptYWxsb2MgYXBpLCB0aGlz IGFwaSBpcyB1c2Ugc29ja2V0IG9mIGN1cnJlbnQgbGNvcmUsIG5vdCB1c2UgdGhlIGFyZ3MgcnRl X2hhc2hfcGFyYW0gc29ja2V0X2lkIGZpZWxkIHZhbHVlLg0KDQoNCg== --_000_ME0P300MB103892238F653BC48B60E1F2AF3B2ME0P300MB1038AUSP_ Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable
steps:
1.master thread create rte_hash for every socket with same size. each socke= t hash with the each socket_id pass by rte_hash_param.socket_id
2.use numasta -p `pidof your_app` like below:


review the sourcec code dpdk23.11 found that:
it will allocate memory with the rte_zmalloc api, this api is use socket of= current lcore, not use the args rte_hash_param socket_id field value.


--_000_ME0P300MB103892238F653BC48B60E1F2AF3B2ME0P300MB1038AUSP_-- --_004_ME0P300MB103892238F653BC48B60E1F2AF3B2ME0P300MB1038AUSP_ Content-Type: image/png; name="image.png" Content-Description: image.png Content-Disposition: inline; filename="image.png"; size=17631; creation-date="Mon, 16 Dec 2024 07:37:30 GMT"; modification-date="Mon, 16 Dec 2024 07:37:31 GMT" Content-ID: Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAxUAAADICAIAAAARN1sxAAAgAElEQVR4Ae2d/c8syVXf+UPqee7z xvoSwMZheY9xNksG2JsYTDaXKBhrI0s4ajlKWPIDFlYMUkiCxMRIIewGrDgQkRABE/OmkBgjQhwR wx2ywcQycjYYG2HW+1ztn7DJOfV2Tr1190zPPD0z30dXd6rr5dSpz6mqPl3dXf1Fr2/096u/+qsG fyAAAiAAAiAAAiBwkgS+aCP36XX4TyfZW9BoEAABEAABEAABIgD/Cf0ABEAABEAABEAABMYRgP80 jhdygwAIgAAIgAAIgAD8J/QBEAABEAABEAABEBhHAP7TOF7IDQIgAAIgAAIgAALwn9AHQAAEQAAE QAAEQGAcAfhP43ghNwiAAAiAAAiAAAjAf0IfAAEQAAEQAAEQAIFxBOA/jeOF3CAAAiAAAiAAAiAA /wl9AARAAARAAARAAATGEYD/NI4XcoMACIAACIAACIAA/Cf0ARAAARAAARAAARAYRwD+0zheyA0C IAACIAACIAAC8J/QB0AABEAABEAABEBgHAH4T+N4ITcIHASBxaKu5qJbrVddI0O96F2ltJpzVzqh 3pEEZmjEGao0Eiqy3yWBqfynbnUr/9aHNj+zDRbL9e3tqrtLe6BuENieQLe6XS/r/tFiuVqvGukj FbBjX1ToJgM7kpKZ4XajqYFG5uYDs1ut/eS0uZChUJL2ps3lOcZrY38jOVV2vV4tRzq55Bh72fkM 3EpdUGIsmxe2ze+Wq9FKOXA9fVJovqGNNpm9t+tXQ7sE8h0tgSn9p9jv7UiN88KB4NtkBB5I06Dm 6RCgs3Aci7tvtzvrh+HuvQCrQ6LNoqOLlJB3sHaJmMHljKGS4+sbUYHOqhWtzoRFrWTZhSM13JJU +tavKy6kLNKwmUqJ0V2r2Mi5OBuxTLXRzCax0Wazd49iiZ44BAFFYDf+kxuuG400pd5+DzYbgfvV EbWBQJPA/jsxn4JWYclrsVyvV7QOUvSfNp4aNj3R7ZtHpidF5DNhMTYrO0L5PKtc8Wmnmm6ZLEdm +Tnidr1eF9rS7I+UmElLSvSlJ9nLhxsKyZiXpSMWBAoEduY/5b150S3D6vJ6nSxN0+rxqjNxibm2 gpy0wU5DXVj9LdyXoLsVcVE7qVdWuORLY3W919Q5UUUcOq1CxXljetrb1NkorbIbMSo14Rybe1u4 kdJOFe1Lg9zetcW8XnlrrJfiVmhVqyFlA0h5leyUaJC0ZpD3sfKYtClBqj7pZQXbrNTtkPQWDrsQ rkvSRX9217jKqqKsjM7HnUglwe4vGQe2fd5yjFlyEzLyIJUlo1uHidwn2SabKkslLNskY8GkWEyo hJiEH/j+V4/uDftVpUIbnbW3bJFia7KyvZ5HVCUXSBV7x62dGqWEkFaFV7PWy4UUGbL2BsoEqBin eNv4X7ZRrSYVH7tOOo5se+MZJ5+Bg9Y5mpCEAAi0CezMf0p7JR3LxeVwfWr14+xr+lstu67j++xD JnAWe+tHBw9HP2WwYBfjniPgaUDc2+BUt+Jt0/xVMxfu0blO1mrlm+snH5m/1d62znat2y/Tsy8l rx1bOnOl4cRJ53jpfLVTpfJZ2FXq50O2AMWFs5XLYC1qZz2f1le2h4bFUek5JFt2h/Q4a0iISHMm x/bQP52SkjTdUjwlopvrTxo76HWsfKJoaBAHvP+U30GjYuQ12SY55kMGoFtPWnVkCLoC4ieVWIC1 MEn2tqbGJ/fvekgK/YVMEdsbrBXj+HB5kc4M7rZfpV+1Kk3aW7t/aNudEM7K2hElu3C16lwgtdAX bafmQgv5SVcpMi9Ui8mFJTlLNqJCot+4EjKnCzPDdPam0vGEU5qBgwpSZIhEAASGENiN/2RPGX7s FpfskzFl+3s+XvrawOVisXQsJLUkmiSpXDiO2SQ1KdtUjLUSzU/Vck8jxLqktHa9eergsmOLSsHt cJQcQ9RmhyBGejEiJgZjaGhZEkelSjMtVxVF+qzCKl6Z0q8umJ4E09SSBBGnzZ8U5sTYE5LUMb2O atRVCR1kUOD10VRtVGKYGFmWhiA5UEv7oLdQgyXzycz9R8tTvqj1fqX/H1LyQI4mz5PHCFVkYi4s ibF6x6lFFm6FqVwslc2EvmhSm43WZTmuor4XE3/zjNwCp0o7NUqxIVlSpZGYgSMolsvrjmk2VMpR irPj0DUpIcj5A3lugdC0LM3WnghKlcMxCFQJTOk/iUmSlpHEtRX1XtGZWRvqtXGe4f4eD6v6pglp 39fHhXrFQMpSRVr5UkvrnOoSj7UWpes2yiGaH4uWLvGEXpnOomSfzizGPiZaeG23naqqyQ5ie6N+ pVAsGEmOLsuKxq5SJ0m1RenWJ0h7YdRIh0Q5TtDHvazkHTg3LLzGkYurUbUnS3Vt8KW1lvmR1jNP 55hCJWm59LgiiaMpL+tHARsUbQqpToRe6eGM1T6paxVCdULzqFyKYpO+kGTkxgzFLjSwEMJcmMyE ISNlSxRQ3oHPmGjlo0u/TmM771rHTcwx7VQhj2ssz02lyUmUrASLTVV5i42kSEsoCohxuSpKSCzi KhIlVdVDrznSQjgGAWPMlP5TfbLhsRumlBiIJbL+rqzDQ6NUTJ4fuYSWo4+sSIqz9Wap2QiMVcZQ 1FmpqA6KktVsmeUI5UspFFfROZSjAOUr/QWd5XNVdLdGlTbtVJ1XHUWd4zQVYba16i+rwGX+RCyv VPIHQaGoj09q/aZS0+MmK64q3BpKFoUKksS9bEot/aWmqumeSS9lDExiYlouPY458xDlZf0i4hji Pplor4UP7nVCaK5ENaZcSqtgC4d28GEpR7USkaCliAQdLIovlCX10wGgJYkj7zTZW7F0p1QWbada Mdq7FaJdciIyy1CKKDZVZazbiHoOp9qWCECZVCWkmCphiPpVQRGPIAj0EdiP/0Q9tNJ5nYJZf+9T vFJOyynUKwZLlirSyms5A5XKvLr8YknrKeVmWqnzbyFVFG6nyoxuLk1ObC4HP/1cWx8TUkIwtiZq QKF4Wq1bf3TZKJjrj+WDOirgsielVJbCQSo1PQ5FCqyoKtVeVffI1FDRsICqqlYkU0Gt03GpansL Milv0pGEGu1UIa5AUqTqtUSd0DwSqoh8BQRJxjEEhOCSvyiTfbgoPmeVKOVLD/rNpclipVSK809t yrwhXMAW0qqB/jZUctgXCP0LCeslO3e+p2WqKCHUkmwMqoiobpY3JiEEAk0C+/Gf+ieVTftwWi45 Tg6TSThJ5QEYzwSU6gdrk2GeSEXl8FVDm7MnVUsReZKMkWFZyoYpdajO/ZIq8025Wps5zmqizU2t ohrVslqPWIAVSQ5z5VgRevF6MJn8hquVIW9Jy3oSFZJDd/0czJIks+ioGqWGrLKSgeFEerFUBB2S 02LpcchYCBRU5kbZZhRS68LrKeoqoqBENUqoIvPkNSUxyaEs2wxTuQEGLIrPylaUbyrgEzNhPoF/ 81SKkZOWyu4OCj2nlC2JI8l6DCcZKs3k2larNZX1u2JEOYlUlhHIp42p1EB6NJISNXEIAgmBPflP 7gI3vDVm+GJTPCOVDIZEy/phWi495sERbqWkq9Nu6BTf4PC+Vl3ntlbxSo5rjeOei6V6SlltndkX jReJ9KSNPK+z4LLO3ZLer3KPpS2WyaTWTpX65eHYGtLdNtWxtZlbWgU9ymV7aORrfZl6LKFnBs8K kcaeciagh5Uqy++bqcU8FuffdHM7b4gzboNVpmUe4YTnCTLGZlou+I8TuFLRj9JjWToNU16hPyUL LdJUu/Lph0MPSVnVGJVEOaGKiHUqVmeGfEVOFW4cpO2tZC22RpYdv38m7eIUXjTOdyltplLN+Q19 qTv3FXtLsIv9RuaohmsmCAVqGVgrN5/YsOxorlRx9g65Y6rvcqFWF6CstbQ0L45BQBHYm//Ek2r8 RED6cYJNO3FaLj121fpHSuIeu45CfCYg3UHEZqCHM/zuUanOCqQ6sFrE3WX8e+ExU0HPmEiTe2PP qp79n7hwUWd/h4Rp6Cf8iVNkMW7/H3muoTmt4D81rB9JVMs2acTyEqAOD8mjS7D3HPdoSl3gPlZC Y9oPK9zK9JXI/crSx1QarHzx5i81NnFn8vzR1tZaKaH0OJcQYwoVihMipao/vR1WH8lQTaGWkNYK CFXSbMJKYvdtl2sMASm4R09WR/EQJ2/Favh0E6oXVs2nHLm5XpJaUIpUFF5FIUdvHwtq2Qmikb9q IwbiCsqwEy3am+yjRpnXyziLJg0erprIiSAIpASm8p9Suad9bEevW+k5bRRzaP28zTG5dpMLnIEN 6QwrTucz0AgqjCGw7z45tD70qzFWRN6UAPynlMgUx0NH7xR1QUYPgerFbU+53SXL7TVZu6k9A/nl jt01Y4+SaUA11i/2qAmq2pDAfvvkwBkY/WpDa6KYJQD/aRc9YeDo3UXVkCkIkB36nusQ2fcWlNtD ZfdRp9HCP+c2jbQ7l3JkzblznneiwB6NOHQG3qNKd4Icle6WAPyn3fKFdBAAARAAARAAgeMjAP/p +GyKFoEACIAACIAACOyWAPyn3fKFdBAAARAAARAAgeMjAP/p+GyKFoEACIAACIAACOyWAPyn3fKF dBDQBOwz7eqNu83fENy8pFbKHsXtdGgrRWy/UWLUGzdj+1rdu+Vq5ffZ7G0NMowh4N5X0dt72VdY xN60YyQOzKsqxouqA6lNkA3+0wQQIQIEBhPwU52Y5Tb3gjYvmetLirn9uBf5jp95fsQUCczWvqyt 27hVue/FZiByOwJ2NG1yDbJ5SbXv/3bqo/QwAvCfhnFCLhCYhgBNj6uV2s9ocy9o85JpY1JJ28zi qeyTOp6pfckGbONb+hQk/Kdd98nNx8/mJeE/7dqqmXz4TxkSRIDADgnw+bWjU1k4iaW+S/O7IvEm W/GLQ2prqfB5t/72WLVEvixCpCFYJzBT+xr6fAt/kkV1vXo7kLIVAQe7IKM6uqlI9ieWqe0XtsSX ufJb7OlMUqgeUVMSgP80JU3IAoE+Avb8Kr+wq8L2IDg+G3zx2n/12H3vTE7Add3yk2oeUy+NlEhg nva1+vFukTBsNNbuQhX/iR2c6uhmdSoljZGfLagMbhY/bMTvrumnJBn+0ylZG229ewLu/Cq/qSpn vXz2lDEyHG7IhPkySeVvIKuvwNZbH4qGgFSqXg4pKQECyBYJAeUfB76hnIyR4UntG2qz93jC0qeI R3BKAoklneg8dkhMWa/SAC3FlUsjdhIC8J8mwQghIDCQAE2Y1uOhyY5PZGLWC3FRWitVpJVPjLG2 KLAUCtN4CCjRpSKIKxKIxIMtBcoQF8u2UkXadvaN1bE3B/9JANlJMIwjKb1tfZezWJLT5L15d6Mv XDvZwqq/yJoR3g0B+E+74QqpIFAmEM+vYV1CzHqlyTOWyFJFSbuglT0/ceu9tbI2Pjaf2fMYnxe/ LQLRWnOyr9AYhhUwdhbMhirVVIoU/cUqU8pEKTzWw60/dwz/aWcWHCQY/tMgTMgEAhMRUPOlnSvF bgGFkxvPm8mKlddFpJXXJ3zG3l+lFuXOInpFIEPGbT72jcYpdLGYiNBEBKzlk/0LCujVCOa6iyUL ozsvWfapJmoQxJQIwH8qUUEcCOyKgPZLeEZdrdZhlSifPWWMDPtLUnc3cEuXJ52Nk5p2ReP45BK4 uCowG/tG0KzSbrdzjJWdbKg8fvLYITEMMc3IA1b0NEuacsXed7L099Zw+E97Q42KQKDg5NCMR39+ 1uN5MSzTb/D+ndg6fEGbHawGnivtBM3vRGP/zM27anoGm419yd+mP1rtpP5Ff5s3EyXbBOxoygC3 RzeLdFmyotyR3GcB7AAVs4ZXhgvj2wEex85/4T/tHDEqAAFBID2/8o0yPRNWd4ghMT37PxkqLPaI GfOljiga328RFhsXnK99+dyqH5DzTvu4JiJ3P4GK/8SLxrTcbP9oC7fMUeIh7HNIC4l5Yb3qxF1/ qY7MNPDKSRZHeBQB+E+jcCEzCIAACIAACIAACBj4T+gEIAACIAACIAACIDCOAPyncbyQGwRAAARA AARAAATgP6EPgAAIgAAIgAAIgMA4AvCfxvFCbhAAARAAARAAARCA/4Q+AAIgAAIgAAIgAALjCMB/ GscLuUEABEAABEAABEAA/hP6AAiAAAiAAAiAAAiMIwD/aRwv5AYBEAABEAABEAAB+E/oAyAAAiAA AiAAAiAwjgD8p3G8kBsEQAAEQAAEQAAE4D+hD4AACIAACIAACIDAOALwn8bxQm4QAAEQAAEQAAEQ gP+EPgACIAACIAACIAAC4wjAfxrHC7k3I/DE+1569tFr4d/T71RikCpxzJOG1DAPz1NnaCUt1aYh c+bhdlmkSmLzpCE1RHgqAvCfpiIJOSAAAiAAAiAAAqdCAP7TqVga7QQBEAABEAABEJiKAPynqUhC DgiAAAiAAAiAwKkQgP90KpZGO0EABEAABEAABKYiAP9pKpKQAwIgAAIgAAIgcCoE4D+diqXRThAA ARAAARAAgakIwH+aiiTkgAAIgAAIgAAInAoB+E+nYmm0EwRAAARAAARAYCoC8J+mIgk5IAACIAAC IAACp0IA/tOpWBrtBAEQAAEQAAEQmIoA/KepSEIOCIAACIAACIDAqRCYyn/qVre36+VCYlss17e3 q05GIQwCx0FgsehW6/Wt+1uvV53q+4aSQ2qaaAynuwzrlR43W5XtoSvUylS2SvkWFXTukX1UyX32 lUYqkPQsuuVqtcrtuxRdJwPdtpGXXP5tl22nliUeZyyfm/z4tL/p2SsO4Kp9ybpLPfALgkm8Ek5m qI39HtxtC7ZTe0QjeRMC8J82oYYyJ06ALxfC3Lno6FJBzJGUfOtPjAs6UtcRPMmu/cy76JbyDLtN 2R6rsNa2Wquy0qqd2iP6yJKZRd2+ZhgrykV/GWbdN1T6MMll3O2y7dSyxGON7bu2H8DK+Vdi1Jdh WVHh6qo59ssSQmxbq3ZqEILAlATgP01JE7JOhEC3TNeMxGJrPjl3q9S7UqdUAW2bskJMKZiK1hN7 O7Uk75jjmvY1w1hRrtXKetKRlaZuElnDJEdpMtQu206Vck4hnNLQbU5TU5s5q92u12s5rrUQe8Si hI9Fompjv1RexLW1aqcKMQhOSWA//lPaAdNjY0xYLl2vlnw5r3oZXaP7+yHrcOU+JQjIAoFtCIiJ Me/dNLmFSVTkzCvcpmwuTcVk9aoIdUDlsggl7OQOJA4ZZhBZhD3DrjqmqE6YqivQjVzheBegFyTX 0GdZVYQ6IBFZRE3uMcZr6mkLMzRJBK8or5eL1JapnNS620FPlEiEtVNzzRAzCYF5+E+uO/MiJ3dO vehNfUMueeO5qklsDyHTEaAu6j0kGbY1yInWhrtwvXCrHq/Ypmy7NVKHmlbhLoM7sfsWtSWfQqq0 S5sk0whZqJzyn7zDZFH7M7FDGIoFpHlMSEoCeU4ZI8O2YB6TCDzmQ2p8/EseX8zJFGLIfnl0woyr EQsBtkBt7CeFk8O8Mhkjw7ZgHpMIxOEEBKb0n2KHjCHbeeTsQ0onx8khWV5MOklqXnwCDBABAlsQ oC4az5Lcf8Wsafu7T+e80Wmylwsh9zZl2w0IwygEZF0hMgRkalvy8acSFG8/MXvVWBE653rqko7U Ii6m366X4g2bIDAEhlshFAkBWTZEhoBMPX4LJi1cLFf+8UT/2kS8VgiIQqDCiqJjsaQKd56K3cZH VMd+LkDGBGVCQGoVIkNApko5CE9JYEr/KelKwoDBqE51fZx1Q1Gy7ORT+XDKmRIHZIHAWALcW3V3 pP6ZLJiGDuvSRC16NGxTVgjNgqGWEJDDLESGgEzNhJ1SRGbfgCgEFCt1QFnSvrFWZ1C5mB4EhoAS 1qQeioSALBsiQ0CmNgWfQqKCERCFgEqOPCg6OenFRH3VZONJYNob4rq1LJuHgzIhILUKkSEgU3Np iJmGwBz8p2By3yRlekot/cF/8rjwe3cEkuWjoIh+lZge6PMTbT7pqu7u9jZwPX696saVDQpkgXK9 ba18aibsZCJK9m2TpPkqzk08e8VDf/dO8JOzX1uyKFQItsu2UwviTiyK+HizDWaVZ5TUpGFdfF5A 1isL5+FyWT9C26m5NMRMQ2AO/lNme9WpstRpGg4pILA1AXd2lI8NFWVSvnAS1S/jZY8QpwK2Katk KUGUoiLUQZaqBJ3OAUEJ64ix2S1WPHcVrvfciY6K+nOeFagmu5bkWH851C7bTi1LPKHYjazQOjWx QG1pO+R0nKq3zbttwXZqWzJSNyawH/8p6Whp3yLbi27Fyep8Ew82bigKgsC0BKjXym5bl67nNure wZmiQkn313I2KrvoOr2tH8nkYSUq1tW2U7VOp3FEfMr2bbNayD8WsuoWC+djp0UT66fJ2kaBO+wb UEwT0Nz1UWIiUSHlE+ctkWIHW55GJcQQrImGfSXLOYf34z/xKcJfyHHv1DOT67A8x/g7H6Kb8Swi nvejLHLLwTkDhm5HScCeXEUf1a3slmJ3TL23Zlj4sWfU/AbRNmVJCze+9DzN6tmzMXtW2D9TGyw9 6rMvX/HVSAphLEd2E7ZOeOUy23nVOdMtybCv4LtZsFuSBfyysT3jKGenPVJokNGfvbVOznGQ5fTJ zB70pBR/KsvHPmWDfQOs+Qf25D+Roy22rLfd0/dfpiTT5SMfDiG9suJfOV3TFlGq8Pw5Q8NjIuCn uOQ+jZiC/VXA7W3ycrTFEJNv48PEnlBMHF+WZPDkLW4Yerk0N4dhllfblyrEHHuw3749JAOg0olU GKFg/X7JsG/Au2mA9xP055PiEBVGCt5uqK3QP6SP7JcLQn4VEJJLgxDjV9Ga+cFU/tOkzSy4V5PK hzAQOHICd3Z58SFz+XFz/WFz9YK5eL+5eLe59zZz/tXm7OLIge+5eXdm3z2381Srg30Pw/Iz8Z/o E2B+SYmde3EpfxggoSUIgIAxf9GcfdbcPM7+vWpuPmmuP2quftZc/ai5+D5z7x3m3tPm/C8YcwZu cyLwb83ld5nz8zmpBF1AYJ4EZuI/GfWBFjzbNM/OAq1AYACB58293H9qxPxfc/3Q4Hw9gOxesnzI XD42N79nrjtz73IvNaISEDhQAnPxnw4UH9QGARBICJwb8xvmquEwyaRPmOtvgfOUELzTw064v580 1+81996AJcI7tQgqny0B+E+zNQ0UA4FDJfCN5uyV7BaedJts+BfN5Zfi3DwzI3+VOUss9cfm5p+Z izfCUjOzFNS5cwLwn+7cBFAABI6QwA+bi+Q0nBy+Ym6+GytPs7T8/zLXibEem5vPm5ufMJdfCy9q liaDUndCAP7TnWBHpSBw5ASujHlUOg0nJ+Z/bS7fcOQkDq95H+RHoBJL2cNXzc3PmqtvguN7eFaF xtMTmMp/Kmw5wO/RqW0xplcfEkHg5AjQBjJiM7XB7V+Igtm+VIUtbbZ+B/avZ3eCiqfkT5jrb8f5 ODFjt1zFV5KTtMahMHGyxXDT+onEd4tHoIome2xufsVcvd2c493JBF3zsDDIaAu5wQONduyMu1b5 bTipym0lN9VGYpUA/KcqGiSAwPwI8ES59pt90Gury4F7xfAlTjgnpztfs9zpr3Ze6LuLZ0/Pt+bm A+byan6470Yjt8vp4POq07LVN9rWT5r55mGO72Nz89vm+jlz715SHodDCRTWHapFKW/P3uWi7BjJ ohiCowjAfxqFC5lB4E4J0Ky4oZfTLRNPS7lM6mC6Jt435lMD7uJZL+rj5ho3htxSwnpd/bZazTrN vtG2fi7y9wdY7VPm+sfMxTebM6xC5QCHxDiHd9gFUOoQNUfsKMlDVEWeIoE9+k9qi6dwBW21UovL +qsVttt0y/j9F7/RZrFBiASB4yXQPEWObraU1pyNR0uWBd5pzmv3gPL4V8zN+83FCa9n8DfR1ssF 2WPc+pO0puRfC7fzv9hcOPyv5urbsMdmjezQ+HFjLu0RrdKttKHaId8AAnvzn2i0ysXHtbyOltuP u+8/hYtsLhiK+ullQNOQBQSOjICdQrvmR+yGN5lGVjhF84wbvuenL2GGi6zk/HmxHdR3m/OPicPc hXpsbj5qrr7udN/z4o/RWlMPW5lg6mP7hrJ+brd3Nb3ePzM3f+V0DZTT2iiGh1w4z/WLcPltn2ie CMdK7q8bOcoEpvSfwuwrAq575IM1j4kKKvNTxjjNuyflRvS6KBYhEDhsAjwW4kdHy99vH9hElhXH 0WK5is+j2k+cBt9qoMR6tjf7j7r8gbk2hp4V78y9P2reIfpTc/295uJ0bwzRHDjKAOP6RmL93HRv NKbo2obIl8z1l+TFEDOYQK8JCpIW4TYMnRO7Qg6K2kRyRRSi2wSm9J+S4S68oNJkQEYO07e8t+e8 L59G+ZTkkrB2I5EKAkdBIJ8Ys9ExrJ08NuPwKxQSo7eQOj7qeb4f9O9N/CLIE+bsn5qLzze32fyw ufqK01znGD3Ljegb/dZn+/5e08F9bG5+0Vziszvjh4ItkdurTxItO6/9RY69xPEnSVV0vGRVHAcj COzHf2KLilUpH3Tm5/EsnohSczeVhf80wqTIerQE8pOqGioD2z1s2WoTyQ0F+KMu1//IXCR5njRn P1PfbeixuXnZXP8dc3oPROWmTsClh3mBsgWHWZ+k/0TTLnYh6ocyg6Z64bhIIDutFXOJyNyaFRGV aCEKwckI7Md/yse2bECWqrpK1h2y7FIWwiBwxAS6lb6WsC9rFa9CaxRoPIUHEWuZ/I4yoyQ3hHHS W8z52yr7PH2rOf/N5kNRP2MuT+tu0fhZblDfGGp9Mthzfheoj5vrH/ThcP/OBm7NzXdWbNrXHU45 nc9walWgl0Z2HiyP/Q0k91aNDFUC+/Gf+I5sdS5OewZ3gXBzgUe86GqcWpVVbSgSQODwCVDnV30/ HTu2iYuuK7+kmg6mOpG9D7MzY95lzj9Rv0wx3BwAACAASURBVGf0SXP9N07nVE38xaynDVW0b3/f GG59ru7L/S5Qz/I+mbU38v7Y3HzNad5j1UYZccSDq2pdY0r2zQdkaez3SR6hJLIOILAn/8k+0xZu 3hrDGxb4rf94XLsbu3ZfP75EtupzYrhibr52MKC9yAICB02AhoN4BkIMFN8snkIL8fax0rVyv3wZ 0y1pcPrXvaZ+fjxU0xu4Nub95uJzdS/qX5gLegT9mP8W9Nex/9RxWDe2al93lSrez5K+Ns+jFevr CsTR75jrlX9k7cKcfbiyRvgxc3XsRhFQtg66811FTs2+1jWKY3+5Th5swZPjFaI7jN6b/8R3BMJ3 J27X67ATMrVOvFewXnU0d4ShT51tvYzvHQgnbIdcIBoEZkrAOjf2EcLiYODpOQ4g1ww/LftnD92v vwrmNzjityGKgvcG5E3GfNBc3lYeLX9krr75eBc8CnZKXN6yfdk41b5RkEodwFu/Ztl/bi7/kljz e8Kc1fae+JC5PN2XJWv4yvFt98m9PpeNX5IlzRsfJY+19EmOORGahsBU/tM02pSkUJ/oG+alcogD gdMl4FeSDpnAN5nzX68seHzB3Pxjc5E+i37IjR2p+57s+4bMT32TMbV7rN+LZ8lHWrGefU/2rSuA lEEE4D8NwoRMIAAC+ydwZsw7zPlLldt5v22u5erI/tU7zRq/0Zx9prQ0+Iq5+VaxWHWacNDqkyIA /+mkzI3GgsDhEbg05r3monjO/jNz8w/NPexCtGejfrs5//OSC/VJc/3GbMlqz7qhOhDYG4H5+097 Q4GKQAAE5kvgy8zZvzSXXyidtn/NXH4lTtv7Nd33VHY0+HVzdQFb7NcWqO2uCMB/uivyqBcEQGA0 gbdU3gL7jLn5HnMPjzCPBrpFgfdXvjH8o3gQaguqKHpABOA/HZCxoCoIgAAR+Jvm/HdLD0X9O3P5 ZVj82FcfOTPmX1X2KH/uBLeM3xd21DMfAvCf5mMLaAICIDCUwIU5e95c/J/Mi/ojc40dsYdC3Dpf bVOoz5nrt+BZ8q3xQsDMCUzpP9HuFHEHGbW/0y4p0AYHyQ4pu6wOskHgTgmITWBG79LUKMs72sbh O1r03TC5b8zSXOTPMr9gLr74QBeiGjbqZVwvW9gAaqJdYWqbQj0y1/n2B70tOP4MdRv1t71atmDe Ift79deIHE0Ck/lPbMD4DWBr6MSt2c1WTvCfmhZG4lERsGOIv85it+pPxlirsa2ynBaueazoiU6w LZWmSfs6c/YfshtJL5nrB4e3BNKyUR+sVlmen0f0lb66VPpXmLM/zBYCH5ubn8OmmoqT2yHcnSYn Hb9pPbwZ/cEM4Ez7Q4mYyn+yQ1fv+rVYLjvFoZRJZdjogKTuamLYSCEUAoEdEUjPgmNGVLtst1ym o1d8BGBHzZlW7LeZ82R37FfNzY+Yy8tpq9mltLaN2jW3y6apbVnjU7/RnP1J6dXIH8CDUAJmaoXp xq+ohIJcEdynhMr0h7v0n6K21E2yP+nzqJsH6/zeAX9dwklY+8/mOfnaf+IP5IUvhEUVEAKBwyeg +7q7nJUDqdHEsWWz/A3Zc0k6N6Yz9z6l10I+Zq7eeiD38jLmWUSddJZVRaRn7rqcjVO+3Zy/krlQ r5qbtx/eKuDGDHoKKpNQ3iyiLiDLmkXEsnuwdqzslENT+U9sMP4kj76KVWzJ4EWfuFuGOwf+Iz/y pMDl/IcTDflS8lpZdCPrdcuiqn4cgMBBE6D+rQdQHlNrYJ4zj5Flq4NVZppn+IvN2T8xF38mzuWf NzfvPYBtNnOL5DE15HlOFUMH8a9wiVqTOyq+uCnUp801dudijMoilZga7zFl2dg4DdZQThg/lf+k PgF8m34e2Ck8dErW5u8r5f0nLqXPLhOCgigQuHMCYSiEgB4qLQVDkRBolaVMB35X/Elz9tP6oaj/ bK6+etYLUcE0IdCykbZ2KBICquxiuQpXoO47tLuZK4ubQv2WubrS6p7kUTBNCCgbNZmEIiFQLUs5 DnzwNlHMKHE6/4kbtVh0y+XKv4a3TlzgYPkMgLw/566SfFnqJc2RTlJXqxVdXjXzZZUiAgQOi0AY QCFQnUOzhoUiIVAtywlHMgF/izn/qPgI8WfNTTffbTaDaUKgaqNt7EtlhwvOampH1DaFesEc0HNo 7SZunBrMGgLDzRCKhECtLGU4ktG7Mel9FZzYf4pq2xfwtEMTLB+zcYg7Qnx3T4/tWqEgg7vL7Xq1 pBVqXWHIgwAIHAEBGii6h+cxtWbmOfMYKusfIKzJObz4M2PeZe59QjwU9fPmapafacstksfU+Oc5 8xhZllJ3dJatbQrVnfqz5LlF8hhpIxnOc+YxnL/3hCmlIrwdgZ35T6UrnIpls35AEWFoZ6lpg0mq XazicqFgmg/HIHDoBGJfdy3JIuotzLJmEe551uN8++LKmPebi895L+rT5vod8zudZybJIra0byyu JtkYPVGouCnU583NXz3tZ8kzc2YRdf5Z1iyCyrJZ9TVWXSRStiUwlf+06Ja8J43Qh8yrDZnHcPY0 OnGD0mRRRSjub/bx+wzwoFJEOD4SAulJrzI2Fl2Xjsb8eiYvSzHJkD0SbqEZbzLmp8zlrX+0/IPm clZ7PO7WvoGCP8+GaVOmTBUubgr1B+b6S2f9CNpUrS/L2bl9uQJ91i1rgthJCEzmP/HNs54nFGvG 5XnblbWbiukbuDKdbjBU378jJCdwEpjE8hBykASoe7f33+NRpgeQa2mzrB03Oz2jzgb40+b8P/mH oj5hrt82o0WRpo0Y4Eb27Za0KYx/N7r0cMUujFPcFOqXzNX5Lio7DJk7sq9rPA/i0xjD8zD3VP6T dWvi51voDbz8EtgslvycNz8iLs0s4terrpP375iTfL68vf+Tv7TCItQ8Ohi0mJpA9RsOviKeRP09 bR9pf6tl/Uk5vuLOoeO9kj0z5rvM+f/k23m35mZpLubygljVRt6Um9iXrzrj9FyenX0FU/4WN4X6 YXMxZR2HJWs39mUGcJ/23RWm85/2rTnqAwEQqBHwKw21dMQzgUtjvt9cfIZv5/0Pc/30jBai2hY6 JPsWN4X62/N7+KxNfL+ph2Tf/ZKZV23wn+ZlD2gDAiCwZwJfZs5+3Fx+wdy8Ym7eby7u7bn6E6gu 3xTqM+bm6074QagTsPlJNBH+00mYGY0EARBoE3iLOf+PvN/mb5irr8WpvQ1rZGpxU6jfMdc3I+Ug OwjMigD8p1mZA8qAAAjcJYFnzfnHzfWfmuvvwg2mSe1Q3BTqp83l2aS1QBgI7JMA/Kd90kZdIAAC cydwYc7+vrmHr95ObqfiplDfBz91ctAQuC8C8J/2RRr1gAAIgMBpE8g3hXrFXP+1g3ls/7SNh9Zn BGbmP9G7naV9DzK9EQECIAACIHBwBN5qzv7E71/6mAOfMtdvOrhmQGEQMGYq/8ntSeK3j9l0fxHa B2q1xMub6JqnQKBbrlbZtv0Luoagj2HzXzKQCts0bbBFU7Fe/vJdrBdXMbvugUUrNK3fq5HYWug2 uw6Ve+jR50LvcJZ9uzl/RbtQ/8VcHd6WUEUL2p22wvjNONMG0VsOs2K92/Wc3q6FDEUCU/pPcUNM O443mNmLOm4dSc7dbJTZujUQcBQEOruTbNovua8Gr8ruxh/zsP8Ux9kmICr1+i8f2bMqf0R4u3o2 0e10ylSs0LZ+Dx6+hvV+b2rBhfLV7/4j0e829+ziU/j/x8xlTwNnlVyxYA/n3EZjN3qu1LtVz5kV 2INSZjf+k/uMSpz375YJ9627vN662+aj9tkRsOtI6/U68+u7ZdJRlcukDjZoVbXeXHC3ynTboEIU KRCoWsG0rV8QFaNGWjDPHkXtKfSD5iI4TzbwrkN5EKpuwZSd5pyeiXRqWjY/rte7Rc/Jq0HMUAI7 85+ynkF3JVadiUvMaoGZFpfdn76jwXczkithK8qvP6uFS32/g719v5Tqf7Uwuaq9dh8WGwoP+UBg EwJ89b9eLmiM9F9jUCf2fTYbVaOqb9SbTuz2c8P9yo2qH5mJQMMKBUDS+oXkGDXSgtv1pFjtFqEz Y36SN9wKXtSfmuu3HsDOW2MsqDmnI16n9rEcU6/9EKyfN/okI31DAjvzn7LhzBFr+lstu67je7je BbJfzyP/aZ3dacu7mJ5S6GvC4Ut71jtLe02mS4BFKbdiyXsdT1UhDwIgMDkB/pRrOpsWa1GdlweD vxCofGOyKMVH1upVtXDmQcp5sfgdRaBmhVxIbpc8j43Jc9Yt6G4Lp/NkTfTu4i/M2S/7DzlbL+r3 zfX93dU3meRhFsw58wAWJ5zsdNej4bB6SUjeH3pEI3kDArvxn0rPP5E9e72T0pB3Xc43Ljn00f63 lFzrSnl8HuPl4hcEpiZQ6u1JHTxq4nmOnq5ILhY2WCMq1JsPm6TmRC8cbk2gYIVU5hgbDLEgy2P3 m5ba09ru5vgN5uxj2oX6BXN1GJtqVi3Y5EzvSPlLoM2sUK03WnBMz4mlEBpLYEr/yXeK21u6Mk4e 4/DPp7YVLPcM6gz+HJJPE/IOnFPBZ3aVUfnCaaZUmayqrSpSQWBLAqUOKEVyXw89X6b4cD4afErr t1ivm3HD8+M8xycDqSUUaSMJFK0gZPRbX2Sm4HAL5usiiaj9Hr7ZnP2huQ538R7zVwj3q8JGtfVZ kF7FoxsqYhTR09/hwZXy3ZJ+VfrqHd1z+qtEjjKBKf0n0U0KlVWcGJ2z0jOiV8NdQ1bEEeK5pSxD fSmT5xvh9PmgFK/VwxEITEig0tttDfywQ9N5onyl7t6rYaVeO53zKFivOpr6CxcdvcKRYSCBihVs 6WHWT2saY8FB83Fawc6Ok02hXjU3z85/X/KmBT0qyTkfrTLVl+j9bda7Wc/prRMZigQOw38KN3Oz Dph1pSxH3X/KyhYJIRIEdkSg0QHZt4+36qoKlLp7NbNPaNTrs+Dx00hiR6GGFYZav60ZSalfC27U c9oVbpeabAr1srn+qpk/S96wYEQhOefekkyNZXpCjXqn6Tk99SM5EDgQ/8k7ULQcqqaEtEdyf9RZ 6o/StSeYwAgBENgJgdo8yJPgoLWfyvS76LrwlFRB81q9MivGhqSxi3DNCgOs32Nfq22PBSl5UB/b RdsrMpNNof6bub6q5JxFdM2CSjnJOR+uMjUW67FvrV4SNjubxlYdY2hm/pO7H7Fc8J8Ezn2D7i0o 90nf9Le3m/M83G2LcwV333iZz1shZE9uSTUQBoEpCHD/trfIOt3X7SSY9HJXZbekZyf8W6ultzT8 Lb18EFgR9Xpp7yHndLnHNtInGKdoN2QQgboVWtZ37Hg2K9q3YUH7XazQcxZL++Lx/MyRbAr1kzPd VLNmwR7O9kzkTzjlcVa377Y9Z37WPniN5uY/ya9IaI/HOVD5iUW8z+Ae20h9LHpMJL7zkEigJP8+ BO+t4CeZg7ctGjBXAn6K9E/cxbNhIYUy+aHA70r43lrbv6A6UuzViag01kuk4tMzehe1uVI8VL0K NnZzUiFFWt81uGFftzk1v8CTrEDq12xoE5lZTnT5plB/b34PQhXsFM4qfZzjKKNx7V0p2Zcb9qX7 L/pvVM+RtSA8BYGp/KcpdIEMEACBaQjM8tw4TdMghXzdI6aQbAr1eXOzmPmDUNMb45jtOz2tu5MI /+nu2KNmEAABEACBjECyKdQfmusvPzkXKoOCiPkRgP80P5tAIxAAARA4bQLJplC/Zq7unTYQtH6G BOA/zdAoUAkEQAAETp1AsinUj5iLUyeC9s+MAPynmRkE6oAACIAACDCBZFOod5hzgAGB+RCA/zQf W0ATEAABEAABRUBuCvVZc/MNeBBK4cHBXRKA/3SX9FE3CIAACIBAm4DcFOp3zfUXw4Vq80LqvgjA f9oXadQDAiAAAiAwnsCZMT9lLsMHhn/WXJ2NF4ISIDA5AfhPkyOFQBAAARAAgSkJXBjzy+YquFDf j2fJp6QLWRsSgP+0ITgUAwEQAAEQ2BuBN5iz/+5dqC+Ym7fhWfK9oUdFFQLwnypgEA0CIAACIDAn Am82Z//bXNtVqE+bmzfjQag5WecEdYH/dIJGR5NBAARA4CAJyE2hPmquLg+yEVD6SAjAfzoSQ6IZ IAACIHAKBL7DnL9ibuwq1I8beFCnYPOZthH+00wNA7VAAARAAASKBP6uuReeJX+3wZddipAQuXMC U/pPi+X6VvytOqU9UiWOQ6Qh9R8bfuJ9Lz376LXw7+l3KgFIlTjmSUNqmIfnqTO0kpZq05A583C7 7J2k/qB3of786kv/wS/87rOPXsOsEibYnEZuU8RsT2BK/2l7bSABBEAABEAABHoJyE2hXjLXX9Jb ABlAYGoC8J+mJgp5IAACIAACuycgN4VamUt8G2/3yFGDIgD/SeHAAQiAAAiAwKEQkJtC/RA21TwU sx2LnvCfjsWSaAcIgAAInB6BsCnUrbn5TmyqeXod4A5bDP/pDuGjahAAARAAgW0JhE2h/tjcfA02 1dwWJ8oPJQD/aSgp5AMBEAABEJgngbAp1MfM1fU8VYRWR0cA/tPRmRQNAgEQAIHTIxA2hfqQuTw7 veajxfsnAP9p/8xRIwiAAAiAwPQEwqZQ34tnyaenC4kpAfhPKREcgwAIgAAIHCKBsCnUK+bmW/Es +SGa8KB0hv90UOaCsiAAAiAAAnUCYVOoT5rrN+JZ8joopGxPAP7T9gwhAQRAAARAYC4EwqZQv26u LuBCzcUsR6jHNP5TtxLfvVPB9XKxS2qq4uSDe7usF7JPnMBi0a3W4XOP6/Wq0/2ckv1AyBLNoluK wrpsS3Ly1cRQwehB1i1Xq9VKFiuI3vHYnXUPalmBFRcGzu0bmpZzNsaIordjywbJlYDolmtl35if dFom3TWmHksobAr1o6UHofp7uzBSZqNFt5SjWw4jY9o9p53aC7+lletZbtqpWb+3CmQYQ2Aa/0nU SB7NZhPv5iWN4fEA/0nYAcFdEuC+Gs5C5A6pXs9uvXeLFnQk+2aeKpJ7JKeN4ux6Ak+z5MeswK1W CiNIcuqzgsXOTog1vrRvEFTibDiy2jfaZUNqOcA2XHvfiM7yWc9wbv1mM3S51tnG/mVz9llz89jc PGfuJUr29faWfRfK/+TRPXj8stz6vJFomR62tHLnwLb1U4E43pYA/KdtCaL8CRLolsmZSU7IMmzZ dCtxTWFnwbhcpbM3JaekuejYcyEVWq1oxVie9LUWaUWndty2QsoqtailVeScFjXkT+UWLJbtMwKp IU2a5efKb9frdaHGLPNRRNhNoT5nrt+inyXPzSCbm6aW7etL6NztntNO9RLLv7oe7jjSjr3WL0tF 7FYE9ug/LfSiZ1xBJstnf3IiUIue+b0SWrikBQBZZCsoKAwCYwmI6Sufbql7hpOkOhjQd4XkRKlN ej2VWXV+FSQK3ERWLH38IWkFGeaWZxF2RipwppyhJ3DZtDu4HlEo2wO5oIQqwSsl6+WiUKHKd2QH dlOoR+bqDeJBqHZvz0hmEZJRW5b1c+qnpqZoWQ0PWSVHFVUHqhwOdkhgX/4TdzKxuJhe/prMn46N pnXo4G3ZO8CqHw04B0VhCIHADgjQ9OXPizJsq9KnLDfh2hUof1ar6pRL81n7Jm6fT/wGRUiquuBg YeEqpniRIuScXFBaIUAMFLKYEJFylnJs8ZDVSwsRaVmfofxri3XxubvssR16NsfNlb6rlkUdW+wP mYvH5ubnxKaaBCv+Jb09GCBwyGN8krt1n56PfHLrtMZ58v4giqpgroOMseG29ZU4HExCYE/+U95N hsSUW0hdRU398J/KoBC7LwL6TJd3UJ3O/VU8gLrs6npmJWPWRlLMpEJiws0K01MdyUXKaZ1kFank QNOiI2YTAonFG5yTnO78KqazRtlEqeSQdYzPo6fP5cTcooYYedSh/78X+QfN5WNz8wP+Qahmbw9m DYGK1dgDW683HL+57ZtGCMqEgNSKIm+HWL9ZBxLHEtiP/1QYstL4VunQL7I2qPcd7GVD4vDn0jIh iACBnRDgvifOgHFeDCtMfLEbuiwtEYTFgfJ6qlW0IDm2gGfMIDPGV0NqjPSWVrmrMk8hIbNCmKhC QMFSBzlnF1PuGz1lW7jLNRV8YKqjEN2SffhpF8b8irl61dy8XT8I5VqWcW/6xwJHc/2JpeqZQRbl NbDBIzh0thCQSg+2vlAAwe0J7Md/CiYXClOc6jylTJSfu0m49Vd+1kl2JVEHgiCwWwK1y3z9ojG9 n+dPWXlXLXf8mmTXnnKhRmP1eKMjPfzSormeaY5TOC5Zgch4a1oGMqafc71v9JetM5c6RK0KNs4z 1oUeU4rdFOrT5vorxYNQvoEExbPKAeUxvhz9ktV0f6DYUs+JpdqpMV8M5TrIGBm2ZSjGtyhKQWha Avvxn3LrFp74LndDzqh6Z6ljlOKmBQVpIJARoC57G297Zek+Qp4X825e6rw9krmIGhW+qtovl4iP fIRQVUhJq5rwY42vWEGak5suIkZz3qas4p69yFexIEVXra4kHt2B3RTqt8zVVdo0xUqYxObLIlRx VdalUIn6zNBOVcLjQaaEihhq/SgPoQkI7Md/KrjoZHw9ivMYbl8azb01c6xVX5qAC0SAQA8B6nJJ F66UUJ0zn23THm5fjtODQ0tmGY0Mi64LzzKFkgv5x8qvugU/URyyiECupkg8iWDdvikbbUCJ2S8z 1DlT2bgMP7Bs2b72zcpoG61WiCftG30n5DvOgN0U6gVzqZqnLaqPagtMQUDGmSLqiNupLLVqX9FV knMq6Rz7UXVVLCiNwCQE9uQ/JTfh/LSimsC9tjCwub+5i3x7u7lw68F1eftUgRKLAxCYnoCdBNWE JSvplv6NUfeAhNguyvZzv2qVpfdIplrciJAVijDLLwwRkSUX0S3piSw/fOwdpsJYVDKO+aDHCpTs HimwBqz1hIKpWn1DIS2UpfS6falA7Fd2BURJZPfM3kwm1znYW2U6+oPvMH/r1XtPvPi13+BaWujt Dft2KzVSFsuEM1tt3ewP1VRWqG3feq/rtf7RG/YOGrgv/yl950jsSBBbLXeIkh1QxK9XHW/2LJOt AJlJnK2idIRAYCICfooLd8FsQDgc8RmX5OVo1iCmypdmKKlfcu77pI3iGVyuaqQZSi4Yv6MRXuou KV2QcqxRA6wgTBjeBSjgYFskk1Us2sZcKktVNOwbRYuXsbxahVYlmvmcR//73u94z2/+m5/xw7dk BkEyta9+nWmtTmUFxlSLmxnaqZ76MPumWtlHruII9o60l4rfXRCY3H/ahZKQCQIgMIqAX0kaVQiZ D4YA7HswptpIUdh3I2x7LwT/ae/IUSEIgAAIgAAIgMCBE4D/dOAGhPogAAIgAAIgAAJ7JwD/ae/I USEIgAAIgAAIgMCBE4D/dOAGhPogAAIgAAIgAAJ7JwD/ae/IUSEIgAAIgAAIgMCBE5jSf6L3OuOf 3wDnwAEdmfraRits9HB49n3ywevPPXzx/haK33/yIw8fPL+NhC0qn1HR7UnOqDFQBQRAYN8EJvWf eGPbzv8dxCuYtM2H2DNjeqePPhbr/tRmK3J/EfFxP2v/3Wkl/afK95EWi87tpFjcBnffPRT1ZQSe eerh6w+feiaLHxpx/6mPPHzQ44Hdf+rl5577yJNDRbp8Tz54+bnnXud/ey1rqx+v87YkR+JBdhAA gWMiMLX/pHyE/YGiLcfE7oVJxTV3hLczi86LdWkmbUFNLxmfVrt7rSweqqfQWIq2KEnJQoYE7uwP Jeuxym5Tdmxdo/I//+C5l5/a5QrSeF/EmCc/8tzGWm1T1pPbRGezc5JeO/yCAAgcGYGj95/4UzHr 1dJ9q8B9AIbdgtLJcbFcdtOZmF2h3AWJLoqrSmoiw16TabVyUiv+U/gQZSXd63QwvyWgQ5XfpuzQ OuaZbwNfZIMioe3blJ1WSJCGAAiAAAg0CezPf6IbZavO2NUW3tNe7TAvPr9yq7fEJ/2rqXSCy/6i x1JyYEJc++SYpqbH9B2Faou4jlQvrxYlJotlJNwl5/U0Dbh5IqnhVWIp9utY9htai4XTctBHsqzO XbhXSf5qVCxtkT7mo7W9y0lf53Gh6MYu5PJh9qmF2J9ub5NEkpz9yRY3JPeWjc0bGXrP049ee/C+ 93z9Cy89++i1Zx+99uCF9zwxUkQlu13CefLFBw/tHbSXHzyZ3ON75smnPvLgAf97Kn/+6Zlw9+3h gxefzO7f0V0/d2/udcoQV7/oLpi/bRcCA+/f1cvef/FhcTVLxdd17qdRwYhoEAABEBhEYJ/+E53g 6G+1pEeklqt4kmV3I9xIS78u3E7lZupTcmi5jPYn9/WKztDkv7DcW/k1yFCw8P1qKcvm45hKi2wO rkGesTk6l8SqOJeqrZXUcMswVSR0I63KfyJTpUpb1n+RiVsgHMS0vfqYy1IVruHkeVGcr7Vbig9M pfc6rajOOWvkD8VO5XXV1flYsnBLss1XLSvEjAyS//Tso9eeficr/VbrTglvc6Q4kZ08htfpoSX2 bO4X7oh5/+lh4Ql0twIUy7IoL55TX37KOWTP0JPX2dNR26whlco+/+C51x9kT2DJnC5c1Lmfhm8b fkEABEBgEwL79Z/iWVHpmp+lZIwM22JDYiinyBeD4jStlrVo9UI+Ph5LtCqttMg1j+vyjoCL095B KaNcbEu1CkJqAX5AXLaDIuRqUChIyqW6UZz1fKj5aWoomgYos8idNLtNMqbGUFQjrcl6WV6xWCLL FyMGZfKf7vWSXfGhZWNtvSH2n37pA2HN6Yn3vfTsow9/RW+5/gzsMYjnynlp58HzeUFyO9I3+MhZ SctGDylJNYYeG5L5qRLp2eSVtmNKZcv6k+vmGpXoYJey/LrXYBptxZAKAiAAAhUCe/afktOTVapw thRn4Haqa1bxPBeFxBDlTzIvFt1yOknf8QAABI5JREFUufKv4dE9Rv5LcqWlnBzhNThV5I+u16eQ ZF+Li8szVrTyMsq/LMYtsPkaCrXZwpTZZ/LiNnz4qc1qaCopZJ23GOKvii/jO4x2hcyrze21t3vd 822+IeI3rT4mkWsZ3o7Ukl2metkoZWQoW3B66wcePHrp6986Ukwhe7bgVPKTqFwhXt0U83mC/5Sl GlNwbko+UEHNYlSxbNQzNo3qdX5eppUSEou4CqO0ogaIBAEQAIFxBPbrP4mbOkLN0kmK4uxZsp3q xJQyiaUKPs/6k668WSa04DO1v7WXe1kV/6ncIi9W1+tjC8oqh8Hnc7/2nlW7Ips1SnEVL+xdsdBy JZny+BTas4DuqfKdTb65uma3xO9koArmB2mL9LE+Sv3XmJqpTxVxS8KtXXfs1eZ04QIF51eqGCuQ sf2SKXetrJZUOOJVJbpPZ/89/c6QZ57+U9HbCP5TlmqMEetArm3KfQntHRYol6V6aT2JU63bRGtO 7qZeppUSUkxNV92GKYdcIAACIFAgMAf/KZ43g4J81rRnyXaqK1E8z0UhMUT5i5mtIJExzZUeN+U4 tYQ4F0M/FJu4QyRcOAUisy/QSA65lRT/vFdaVchNavg66VF4tw8WP9DFizH20a4hryOmbPSxPkq5 xdTIJXKLcU7vmBQawgF+FlzdRfTpsQIfYwukVihJrpRVgkYezNN/aq/lZKn7WX/iu4QvP3X/mace vvzUky8+fPgiP9Tl79BlWsF/GtkXkR0EQGAbAnPwnwoOjTxvybBt6pAYyinyxSCfJtmpWHTyOSEW HbOlXg4X016PyFwxQemUXHKgpKS2VpWKfHRyF6v58hwp5/0nLk8RtoWkj0ry8iu/Un/Koo+j3FCN cOpi3piPQlaBmGqr5pSabmlmW6Qcm+jolqNSyZWyVvBm/+P5pxI35frEDHy37sFHyHOiO4YvP3gg n9zC80+RFEIgAAJ7JzAL/ym5SbPB+3d8WtXeDaGUpz+/HpO8f+dfGiO3hrMEKVT41u2xYE/b4qyf Si8bLvoBOl2pm7xTZtPi3g6JVlrQNkdUkXKSNnz4KeFMKknu7rBKMuYlhSx9ZmB1U1bgG4xikalb ircnF8vyJqoWaP4IfVOyA1sruwV39p/u6P07rzat3Lz+4Kln7t9/5r7fhsB5MMV32dwdtD2/f0fa 8ot+7oEnG/YPj1NqS2e6f9d+G9HTwC8IgAAIbEJgHv5T8hyLfhGOmiVfSctT0xzRK+g5//EDxPEJ 4mT/INrgyT5VTPsZxfO855zH+BT/K/wAH+V/rVvk7pPpdbAerbyEbX9JuUjKOj18TAnBixxUS0oi PW6RjHljvYqbsD3tDxWWpkgzf9fOciy/Z6h7j2xxS7Jvt8ijaPn00b/2/t0Hnv4l92jU1Ps/xV2a 8v2forL0CTy7mVN8JKi+lxKXq+//5MRW1pBipY1QtSy7QeKBJ//wk5NV19k+/zSMRkMxJIEACIBA hcD+/KeKAjuP5nOxWKbYeYWHUgGBkd7Eoeh94Hpmzz9N1p7sienJJB+iINA4RKtBZxA4JAL/DxYf nmlbiYg/AAAAAElFTkSuQmCC --_004_ME0P300MB103892238F653BC48B60E1F2AF3B2ME0P300MB1038AUSP_--