From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgeu1.qq.com (smtpbgeu1.qq.com [52.59.177.22]) by sourceware.org (Postfix) with ESMTPS id 901743858D20 for ; Wed, 9 Aug 2023 14:35:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 901743858D20 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai X-QQ-mid: bizesmtp89t1691591750tj1lrr35 Received: from TABLET-POE6JQHH ( [222.125.138.247]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 09 Aug 2023 22:35:49 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: 7YFKcddXaghKykJRvhmj5WtPRTgGIICWRA+dsfqNIPeUp01c3jlbosPLgCdnP HeVMDf9VFWfOs/lgynZyp0Iq5yATmksomyNwX902Z0cBIzR7k29cbKem0i4i1SuuvlXy4xd RztQwOfquoDpAeTGq+UGIVAfyNUPnCcsRF89TSpVYRxKLyn6/1jH5SBZFU1XWwEbKX1BsdM hBi6KCWP/YN6f/SYm+QiCAFdNszf8JQUZ7GQPGREWbnQ2oOmbqQXm78fDr0SxeyVt6QSFoE aeJQoXWFCHWUls2j+gMAtGV0TRdg7knEankGZzfAN4/uCjs+CsHnCQpPrp0P8d25G7P7Qlk W0dmfSPZHNtgZq1W78uSPd6KDQpPBHyAsUlTlu24Vn8wm0z1CA4shYZ+Eg/WYuJMjuTasEt jdos/fcjYDsZ653l6FKfmvf5mXH0gAlsskIoNlq7rd8= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 3854861629886257928 Date: Wed, 9 Aug 2023 22:35:50 +0800 From: =?utf-8?B?6ZKf5bGF5ZOy?= To: rguenther Cc: richard.sandiford , gcc-patches Subject: Re: Re: [PATCH] VECT: Support loop len control on EXTRACT_LAST vectorization References: <20230809063622.316743-1-juzhe.zhong@rivai.ai>, , <42D594BE5999C7CD+2023080919153159922921@rivai.ai>, , , X-Priority: 3 X-GUID: 747B2B56-4778-4C83-B4D0-AE1FB4397AD1 X-Has-Attach: no X-Mailer: Foxmail 7.2.23.121[cn] Mime-Version: 1.0 Message-ID: <076FC3BEB58FB0AA+2023080922355004708417@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart228246071144_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00,BODY_8BITS,HTML_MESSAGE,KAM_DMARC_STATUS,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SCC_10_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID,T_SPF_HELO_TEMPERROR autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. ------=_001_NextPart228246071144_=---- Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksIFJpY2hhcmQuDQoNCj4+IFllcywgSSB0aGluayBWRUNfRVhUUkFDVCBp cyBzdWl0YWJsZSBmb3IgdGhpcy4NCg0KVGhhbmtzIGZvciBzdWdnZXN0aW9u Lg0KDQpBY3R1YWxseSBJIHdhcyB0cnlpbmcgdG8gdXNlIFZFQ19FWFRSQUNU IHllc3RlcmRheSBidXQgaXQgSUNFIHNpbmNlIEdDQyBmYWlsZWQgdG8gY3Jl YXRlIExDU1NBIFBISSBmb3IgVkVDX0VYVFJBQ1QuDQoNCkZvciBleGFtcGxl LCBsaWtlIEFSTSBTVkU6DQpodHRwczovL2dvZGJvbHQub3JnL3ovcmZiYjRy Zkt2IA0KDQp2ZWN0IGR1bXAgSVI6DQo7OyBDcmVhdGVkIExDU1NBIFBISTog bG9vcF9tYXNrXzM2ID0gUEhJIDxsb29wX21hc2tfMjIoMyk+DQogIDxiYiA4 PiBbbG9jYWwgY291bnQ6IDEwNTExOTMyNF06DQogICMgdmVjdF9sYXN0XzEy LjhfMjQgPSBQSEkgPHZlY3RfbGFzdF8xMi44XzIzKDMpPg0KICAjIGxvb3Bf bWFza18zNiA9IFBISSA8bG9vcF9tYXNrXzIyKDMpPg0KICBfMjUgPSAuRVhU UkFDVF9MQVNUIChsb29wX21hc2tfMzYsIHZlY3RfbGFzdF8xMi44XzI0KTsN Cg0KVGhlbiBpdCBjYW4gd29yay4NCg0KSSB3YXMgdHJ5aW5nIHRvIGRvIHRo ZSBzaW1pbGFyIHRoaW5nIGJ1dCB3aXRoIFZFQ19FWFRSQUNUIGFzIGZvbGxv d3MgZm9yIFJWVjoNCg0KLi4uDQpsb29wX2xlbl8zNiA9IFNFTEVDVF9WTA0K Li4uLg0KIyB2ZWN0X2xhc3RfMTIuOF8yNCA9IFBISSA8dmVjdF9sYXN0XzEy LjhfMjMoMyk+DQovLyBNaXNzZWQgYSBMQ1NTQSBQSEkuDQpfMjUgPSAuVkVD X0VYVFJBQ1QgKGxvb3BfbGVuXzM2LCB2ZWN0X2xhc3RfMTIuOF8yNCk7DQoN ClRoaXMgR2ltcGxlIElSIHdpbGwgY2F1c2UgYW4gSUNFLg0KDQpXaGVuIEkg dXNlIEVYVFJBQ1RfTEFTVCBpbnN0ZWFkIG9mIFZFQ19FWFRSQUNULCB0aGVu Og0KLi4uDQpsb29wX2xlbl8zNiA9IFNFTEVDVF9WTA0KLi4uLg0KIyB2ZWN0 X2xhc3RfMTIuOF8yNCA9IFBISSA8dmVjdF9sYXN0XzEyLjhfMjMoMyk+DQoj IGxvb3BfbGVuXzIyID0gUEhJIDxsb29wX2xlbl8zNiAoMyk+DQpfMjUgPSAu VkVDX0VYVFJBQ1QgKGxvb3BfbGVuXzIyLCB2ZWN0X2xhc3RfMTIuOF8yNCk7 DQoNClRoZW4gaXQgd29ya3MuDQoNCkkgZGlkbid0IGZpZ3VyZSBvdXQgd2hl cmUgdG8gbWFrZSBHQ0MgcmVjb2duaXplIFZFQ19FWFRSQUNUIHRvIGdlbmVy YXRlIExDU1NBIFBISSBmb3IgVkVDX0VYVFJBQ1QuDQoNCkNvdWxkIHlvdSBn aXZlIG1lIHNvbWUgaGVscCBmb3IgdGhpcz8NCg0KVGhhbmtzLg0KDQoNCmp1 emhlLnpob25nQHJpdmFpLmFpDQogDQpGcm9tOiBSaWNoYXJkIEJpZW5lcg0K RGF0ZTogMjAyMy0wOC0wOSAyMjoxNw0KVG86IOmSn+WxheWTsg0KQ0M6IHJp Y2hhcmQuc2FuZGlmb3JkOyBnY2MtcGF0Y2hlcw0KU3ViamVjdDogUmU6IFJl OiBbUEFUQ0hdIFZFQ1Q6IFN1cHBvcnQgbG9vcCBsZW4gY29udHJvbCBvbiBF WFRSQUNUX0xBU1QgdmVjdG9yaXphdGlvbg0KT24gV2VkLCA5IEF1ZyAyMDIz LCA/Pz8gd3JvdGU6DQogDQo+IEhpLCBSaWNoYXJkLg0KPiANCj4gPj4gSSdt IGEgYml0IGJlaGluZCBvZiBlbWFpbCwgYnV0IHdoeSBpc24ndCBCSVRfRklF TERfUkVGIGVub3VnaCBmb3INCj4gPj4gdGhlIGNhc2UgdGhhdCB0aGUgcGF0 Y2ggaXMgaGFuZGxpbmc/ICBJdCBzZWVtcyB0aGF0Og0KPiANCj4gPj4gICAu RVhUUkFDVF9MQVNUIChsZW4sIHZlYykNCj4gDQo+ID4+IGlzIGVxdWl2YWxl bnQgdG86DQo+IA0KPiA+PiAgIHZlY1tsZW4gLSAxXQ0KPiANCj4gPj4gSSB0 aGluayBldmVudHVhbGx5IHRoZXJlJ2xsIGJlIHRoZSB0ZW1wdGF0aW9uIHRv IGxvd2VyL2ZvbGQgaXQgbGlrZSB0aGF0Lg0KPiANCj4gQ3VycmVudCBCSVRf RklFTERfUkVGIGRvZXNuJ3QgbWFrZSB1c2Ugb2YgTE9PUF9MRU4uDQogDQpZ ZXMsIEJJVF9GSUVMRF9SRUYgZG9lc24ndCBzdXBwb3J0IHZhcmlhYmxlIG9m ZnNldC4NCiANCj4gQ29uc2lkZXIgdGhpcyBmb2xsb3dpbmcgY2FzZToNCj4g DQo+ICNpbmNsdWRlIDxzdGRpbnQuaD4NCj4gI2RlZmluZSBFWFRSQUNUX0xB U1QoVFlQRSkgXA0KPiAgIFRZUEUgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5l LCBub2Nsb25lKSkgXA0KPiAgIHRlc3RfIyNUWVBFIChUWVBFICp4LCBpbnQg biwgVFlQRSB2YWx1ZSkgXA0KPiAgIHsgXA0KPiAgICAgVFlQRSBsYXN0OyBc DQo+ICAgICBmb3IgKGludCBqID0gMDsgaiA8IG47ICsraikgXA0KPiAgICAg ICB7IFwNCj4gbGFzdCA9IHhbal07IFwNCj4geFtqXSA9IGxhc3QgKiB2YWx1 ZTsgXA0KPiAgICAgICB9IFwNCj4gICAgIHJldHVybiBsYXN0OyBcDQo+ICAg fQ0KPiAjZGVmaW5lIFRFU1RfQUxMKFQpIFwNCj4gICBUICh1aW50OF90KSBc DQo+IFRFU1RfQUxMIChFWFRSQUNUX0xBU1QpDQo+IA0KPiBUaGUgYXNzZW1i bHk6DQo+IGh0dHBzOi8vZ29kYm9sdC5vcmcvei96MVBQVDk0OGINCj4gDQo+ IHRlc3RfdWludDhfdDoNCj4gICAgICAgICBtdiAgICAgIGEzLGEwDQo+ICAg ICAgICAgYmxlICAgICBhMSx6ZXJvLC5MMTANCj4gICAgICAgICBhZGRpdyAg IGE1LGExLC0xDQo+ICAgICAgICAgbGkgICAgICBhNCwxNA0KPiAgICAgICAg IHNleHQudyAgYTAsYTENCj4gICAgICAgICBibGV1ICAgIGE1LGE0LC5MMTEN Cj4gICAgICAgICBzcmxpdyAgIGE0LGEwLDQNCj4gICAgICAgICBzbGxpICAg IGE0LGE0LDQNCj4gICAgICAgICBtdiAgICAgIGE1LGEzDQo+ICAgICAgICAg YWRkICAgICBhNCxhNCxhMw0KPiAgICAgICAgIHZzZXRpdmxpICAgICAgICB6 ZXJvLDE2LGU4LG0xLHRhLG1hDQo+ICAgICAgICAgdm12LnYueCB2MyxhMg0K PiAuTDQ6DQo+ICAgICAgICAgdmwxcmU4LnYgICAgICAgIHYxLDAoYTUpDQo+ ICAgICAgICAgdm11bC52diB2Mix2MSx2Mw0KPiAgICAgICAgIHZzMXIudiAg djIsMChhNSkNCj4gICAgICAgICBhZGRpICAgIGE1LGE1LDE2DQo+ICAgICAg ICAgYm5lICAgICBhNCxhNSwuTDQNCj4gICAgICAgICBhbmRpICAgIGE0LGEx LC0xNg0KPiAgICAgICAgIG12ICAgICAgYTUsYTQNCj4gICAgICAgICB2c2V0 aXZsaSAgICAgICAgemVybyw4LGU4LG1mMix0YSxtYQ0KPiAgICAgICAgIGJl cSAgICAgYTAsYTQsLkwxNg0KPiAuTDM6DQo+ICAgICAgICAgc3VidyAgICBh MCxhMCxhNA0KPiAgICAgICAgIGFkZGl3ICAgYTcsYTAsLTENCj4gICAgICAg ICBsaSAgICAgIGE2LDYNCj4gICAgICAgICBibGV1ICAgIGE3LGE2LC5MNw0K PiAgICAgICAgIHNsbGkgICAgYTQsYTQsMzINCj4gICAgICAgICBzcmxpICAg IGE0LGE0LDMyDQo+ICAgICAgICAgYWRkICAgICBhNCxhMyxhNA0KPiAgICAg ICAgIGFuZGkgICAgYTYsYTAsLTgNCj4gICAgICAgICB2bGU4LnYgIHYyLDAo YTQpDQo+ICAgICAgICAgdm12LnYueCB2MSxhMg0KPiAgICAgICAgIGFuZGkg ICAgYTAsYTAsNw0KPiAgICAgICAgIHZtdWwudnYgdjEsdjEsdjINCj4gICAg ICAgICB2c2U4LnYgIHYxLDAoYTQpDQo+ICAgICAgICAgYWRkdyAgICBhNSxh NixhNQ0KPiAgICAgICAgIGJlcSAgICAgYTAsemVybywuTDgNCj4gLkw3Og0K PiAgICAgICAgIGFkZCAgICAgYTYsYTMsYTUNCj4gICAgICAgICBsYnUgICAg IGEwLDAoYTYpDQo+ICAgICAgICAgYWRkaXcgICBhNCxhNSwxDQo+ICAgICAg ICAgbXVsdyAgICBhNyxhMCxhMg0KPiAgICAgICAgIHNiICAgICAgYTcsMChh NikNCj4gICAgICAgICBiZ2UgICAgIGE0LGExLC5MMTQNCj4gICAgICAgICBh ZGQgICAgIGE0LGEzLGE0DQo+ICAgICAgICAgbGJ1ICAgICBhMCwwKGE0KQ0K PiAgICAgICAgIGFkZGl3ICAgYTYsYTUsMg0KPiAgICAgICAgIG11bHcgICAg YTcsYTIsYTANCj4gICAgICAgICBzYiAgICAgIGE3LDAoYTQpDQo+ICAgICAg ICAgYmxlICAgICBhMSxhNiwuTDE0DQo+ICAgICAgICAgYWRkICAgICBhNixh MyxhNg0KPiAgICAgICAgIGxidSAgICAgYTAsMChhNikNCj4gICAgICAgICBh ZGRpdyAgIGE0LGE1LDMNCj4gICAgICAgICBtdWx3ICAgIGE3LGEyLGEwDQo+ ICAgICAgICAgc2IgICAgICBhNywwKGE2KQ0KPiAgICAgICAgIGJsZSAgICAg YTEsYTQsLkwxNA0KPiAgICAgICAgIGFkZCAgICAgYTQsYTMsYTQNCj4gICAg ICAgICBsYnUgICAgIGEwLDAoYTQpDQo+ICAgICAgICAgYWRkaXcgICBhNixh NSw0DQo+ICAgICAgICAgbXVsdyAgICBhNyxhMixhMA0KPiAgICAgICAgIHNi ICAgICAgYTcsMChhNCkNCj4gICAgICAgICBibGUgICAgIGExLGE2LC5MMTQN Cj4gICAgICAgICBhZGQgICAgIGE2LGEzLGE2DQo+ICAgICAgICAgbGJ1ICAg ICBhMCwwKGE2KQ0KPiAgICAgICAgIGFkZGl3ICAgYTQsYTUsNQ0KPiAgICAg ICAgIG11bHcgICAgYTcsYTIsYTANCj4gICAgICAgICBzYiAgICAgIGE3LDAo YTYpDQo+ICAgICAgICAgYmxlICAgICBhMSxhNCwuTDE0DQo+ICAgICAgICAg YWRkICAgICBhNCxhMyxhNA0KPiAgICAgICAgIGxidSAgICAgYTAsMChhNCkN Cj4gICAgICAgICBhZGRpdyAgIGE1LGE1LDYNCj4gICAgICAgICBtdWx3ICAg IGE2LGEyLGEwDQo+ICAgICAgICAgc2IgICAgICBhNiwwKGE0KQ0KPiAgICAg ICAgIGJsZSAgICAgYTEsYTUsLkwxNA0KPiAgICAgICAgIGFkZCAgICAgYTMs YTMsYTUNCj4gICAgICAgICBsYnUgICAgIGEwLDAoYTMpDQo+ICAgICAgICAg bXVsdyAgICBhMixhMixhMA0KPiAgICAgICAgIHNiICAgICAgYTIsMChhMykN Cj4gICAgICAgICByZXQNCj4gLkwxMDoNCj4gICAgICAgICBsaSAgICAgIGEw LDANCj4gLkwxNDoNCj4gICAgICAgICByZXQNCj4gLkw4Og0KPiAgICAgICAg IHZzbGlkZWRvd24udmkgICB2Mix2Miw3DQo+ICAgICAgICAgdm12LngucyBh MCx2Mg0KPiAgICAgICAgIGFuZGkgICAgYTAsYTAsMHhmZg0KPiAgICAgICAg IHJldA0KPiAuTDExOg0KPiAgICAgICAgIGxpICAgICAgYTQsMA0KPiAgICAg ICAgIGxpICAgICAgYTUsMA0KPiAgICAgICAgIHZzZXRpdmxpICAgICAgICB6 ZXJvLDgsZTgsbWYyLHRhLG1hDQo+ICAgICAgICAgaiAgICAgICAuTDMNCj4g LkwxNjoNCj4gICAgICAgICB2c2V0aXZsaSAgICAgICAgemVybywxNixlOCxt MSx0YSxtYQ0KPiAgICAgICAgIHZzbGlkZWRvd24udmkgICB2MSx2MSwxNQ0K PiAgICAgICAgIHZtdi54LnMgYTAsdjENCj4gICAgICAgICBhbmRpICAgIGEw LGEwLDB4ZmYNCj4gICAgICAgICByZXQNCj4gDQo+IA0KPiBUaGlzIHBhdGNo IGlzIHRyeWluZyB0byBvcHRpbWl6ZSB0aGUgY29kZWdlbiBmb3IgUlZWIGZv ciBsZW5ndGggY29udHJvbCwNCj4gYWZ0ZXIgdGhpcyBwYXRjaDoNCj4gDQo+ IEdpbXBsZSBJUjoNCj4gDQo+ICAgPGJiIDQ+IFtsb2NhbCBjb3VudDogOTU1 NjMwMjI0XToNCj4gICAjIHZlY3RwX3guNl8yMiA9IFBISSA8dmVjdHBfeC42 XzIzKDQpLCB4XzExKEQpKDMpPg0KPiAgICMgdmVjdHBfeC4xMF8zMCA9IFBI SSA8dmVjdHBfeC4xMF8zMSg0KSwgeF8xMShEKSgzKT4NCj4gICAjIGl2dG1w XzM0ID0gUEhJIDxpdnRtcF8zNSg0KSwgXzMzKDMpPg0KPiAgIF8zNiA9IC5T RUxFQ1RfVkwgKGl2dG1wXzM0LCAxNik7DQo+ICAgdmVjdF9sYXN0XzEyLjhf MjQgPSAuTUFTS19MRU5fTE9BRCAodmVjdHBfeC42XzIyLCA4QiwgeyAtMSwg LTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAt MSwgLTEsIC0xLCAtMSB9LCBfMzYsIDApOw0KPiAgIHZlY3RfXzQuOV8yOCA9 IHZlY3RfbGFzdF8xMi44XzI0ICogdmVjdF9jc3RfXzI3Ow0KPiAgIC5NQVNL X0xFTl9TVE9SRSAodmVjdHBfeC4xMF8zMCwgOEIsIHsgLTEsIC0xLCAtMSwg LTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAt MSwgLTEgfSwgXzM2LCAwLCB2ZWN0X180LjlfMjgpOw0KPiAgIHZlY3RwX3gu Nl8yMyA9IHZlY3RwX3guNl8yMiArIF8zNjsNCj4gICB2ZWN0cF94LjEwXzMx ID0gdmVjdHBfeC4xMF8zMCArIF8zNjsNCj4gICBpdnRtcF8zNSA9IGl2dG1w XzM0IC0gXzM2Ow0KPiAgIGlmIChpdnRtcF8zNSAhPSAwKQ0KPiAgICAgZ290 byA8YmIgND47IFs4OS4wMCVdDQo+ICAgZWxzZQ0KPiAgICAgZ290byA8YmIg NT47IFsxMS4wMCVdDQo+IA0KPiAgIDxiYiA1PiBbbG9jYWwgY291bnQ6IDEw NTExOTMyNF06DQo+ICAgXzI2ID0gLkVYVFJBQ1RfTEFTVCAoXzM2LCB2ZWN0 X2xhc3RfMTIuOF8yNCk7IFt0YWlsIGNhbGxdDQo+IA0KPiBBU006DQo+IHRl c3RfdWludDhfdDoNCj4gYmxlIGExLHplcm8sLkw0DQo+IG12IGE0LGEwDQo+ IHZzZXRpdmxpIHplcm8sMTYsZTgsbTEsdGEsbWENCj4gdm12LnYueCB2Myxh Mg0KPiAuTDM6DQo+IHZzZXR2bGkgYTUsYTEsZTgsbTEsdGEsbWENCj4gdmxl OC52IHYxLDAoYTApDQo+IHZzZXRpdmxpIHplcm8sMTYsZTgsbTEsdGEsbWEN Cj4gc3ViIGExLGExLGE1DQo+IHZtdWwudnYgdjIsdjEsdjMNCj4gdnNldHZs aSB6ZXJvLGE1LGU4LG0xLHRhLG1hDQo+IHZzZTgudiB2MiwwKGE0KQ0KPiBh ZGQgYTAsYTAsYTUNCj4gYWRkIGE0LGE0LGE1DQo+IGJuZSBhMSx6ZXJvLC5M Mw0KPiBhZGRpIGE1LGE1LC0xDQo+IHZzZXRpdmxpIHplcm8sMTYsZTgsbTEs dGEsbWENCj4gdnNsaWRlZG93bi52eCB2MSx2MSxhNQ0KPiB2bXYueC5zIGEw LHYxDQo+IGFuZGkgYTAsYTAsMHhmZg0KPiByZXQNCj4gLkw0Og0KPiBsaSBh MCwwDQo+IHJldA0KPiANCj4gSSB0aGluayB0aGlzIGNvZGVnZW4gaXMgbXVj aCBiZXR0ZXIgd2l0aCB0aGlzIHBhdGNoLg0KPiANCj4gPj4gRldJVywgSSBh Z3JlZSBhIElGTl9MRU5fRVhUUkFDVF9MQVNUL0lGTl9FWFRSQUNUX0xBU1Rf TEVOIHdvdWxkIGJlIE9LLA0KPiA+PiB3aXRoIGEgbWFzaywgdmVjdG9yLCBs ZW5ndGggYW5kIGJpYXMuICBCdXQgZXZlbiB0aGVuLCBJIHRoaW5rIHRoZXJl J2xsDQo+ID4+IGJlIGEgdGVtcHRhdGlvbiB0byBsb3dlciBjYWxscyB3aXRo IGFsbC0xIG1hc2tzIHRvIHZhbFtsZW4gLSAxIC0gYmlhc10uDQo+ID4+IFNv IEkgdGhpbmsgdGhlIGZ1bmN0aW9uIG9ubHkgbWFrZXMgc2Vuc2UgaWYgd2Ug aGF2ZSBhIHVzZSBjYXNlIHdoZXJlDQo+ID4+IHRoZSBtYXNrIG1pZ2h0IG5v dCBiZSBhbGwtMXMuDQo+IA0KPiBJIGFtIHdvbmRlcmluZyB0aGF0LCBpbnN0 ZWFkIG9mIGFkZGluZyBJRk5fTEVOX0VYVFJBQ1RfTEFTVC9JRk5fRVhUUkFD VF9MQVNUX0xFTi4NCj4gRG9lcyBpdCBtYWtlIHNlbnNlIEkgdXNlIFZFQ19F WFRSQUNUIGFzIGZvbGxvd3MgOj8NCj4gDQo+IExvb3A6DQo+IGxvb3BfbGVu XzIyID0gU0VMRUNUX1ZMLg0KPiAuLi4uDQo+IA0KPiBFcGlsb2d1ZToNCj4g bmV3X2xvb3BfbGVuXzIyID0gUEhJIDxsb29wX2xlbl8yMj4NCj4gc2NhbGFy X3JlcyA9IFZFQ19FWFRSQUNUICh2LCBuZXdfbG9vcF9sZW5fMjIgIC0gMSAt IEJJQVMpDQogDQpZZXMsIEkgdGhpbmsgVkVDX0VYVFJBQ1QgaXMgc3VpdGFi bGUgZm9yIHRoaXMuDQogDQpSaWNoYXJkLg0KIA0KPiBGZWVsIGZyZWUgdG8g Y29ycmVjdCBtZSBpZiBJIGFtIHdyb25nLg0KPiANCj4gVGhhbmtzLg0KPiAN Cj4gDQo+IGp1emhlLnpob25nQHJpdmFpLmFpDQo+ICANCj4gRnJvbTogUmlj aGFyZCBTYW5kaWZvcmQNCj4gRGF0ZTogMjAyMy0wOC0wOSAyMTozMA0KPiBU bzoganV6aGUuemhvbmdcQHJpdmFpLmFpDQo+IENDOiByZ3VlbnRoZXI7IGdj Yy1wYXRjaGVzDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIFZFQ1Q6IFN1cHBv cnQgbG9vcCBsZW4gY29udHJvbCBvbiBFWFRSQUNUX0xBU1QgdmVjdG9yaXph dGlvbg0KPiAianV6aGUuemhvbmdAcml2YWkuYWkiIDxqdXpoZS56aG9uZ0By aXZhaS5haT4gd3JpdGVzOg0KPiA+IEhpLCBSaWNoaS4NCj4gPg0KPiA+Pj4g dGhhdCBzaG91bGQgYmUNCj4gPg0KPiA+Pj4gICB8fCAoIUxPT1BfVklORk9f RlVMTFlfTUFTS0VEX1AgKGxvb3BfdmluZm8pDQo+ID4+PiAgICAgICAmJiAh TE9PUF9WSU5GT19GVUxMWV9XSVRIX0xFTkdUSF9QIChsb29wX3ZpbmZvKSkN Cj4gPg0KPiA+Pj4gSSB0aGluay4gIEl0IHNlZW1zIHRvIGltcGx5IHRoYXQg U0xQIGlzbid0IHN1cHBvcnRlZCB3aXRoDQo+ID4+PiBtYXNraW5nL2xlbmd0 aGluZy4NCj4gPg0KPiA+IE9oLCB5ZXMuICBBdCBmaXJzdCBnbGFuY2UsIHRo ZSBvcmlnaW5hbCBjb2RlIGlzIHF1aXRlIHN1c3BpY2lvdXMgYW5kIHlvdXIg Y29tbWVudHMgbWFrZSBzZW5zZSB0byBtZS4NCj4gPg0KPiA+Pj4gSHVtLCBo b3cgZG9lcyBDRk5fRVhUUkFDVF9MQVNUIGhhbmRsZSBib3RoIG1hc2sgYW5k IGxlbmd0aCB0cmFuc3BhcmVudGx5Pw0KPiA+Pj4gRG9uJ3QgeW91IG5lZWQg c29tZSBDRk5fTEVOX0VYVFJBQ1RfTEFTVCBpbnN0ZWFkPw0KPiA+DQo+ID4g SSB0aGluayBDRk5fRVhUUkFDVF9MQVNUIGFsd2F5cyBoYXMgZWl0aGVyIGxv b3AgbWFzayBvciBsb29wIGxlbi4NCj4gPg0KPiA+IFdoZW4gYm90aCBtYXNr IGFuZCBsZW5ndGggYXJlIG5vdCBuZWVkZWQsIElNSE8sIEkgdGhpbmsgY3Vy cmVudCBCSVRfRklFTERfUkVGIGZsb3cgaXMgZ29vZCBlbm91Z2g6DQo+ID4g aHR0cHM6Ly9nb2Rib2x0Lm9yZy96L1lyNU05aGNjNg0KPiAgDQo+IEknbSBh IGJpdCBiZWhpbmQgb2YgZW1haWwsIGJ1dCB3aHkgaXNuJ3QgQklUX0ZJRUxE X1JFRiBlbm91Z2ggZm9yDQo+IHRoZSBjYXNlIHRoYXQgdGhlIHBhdGNoIGlz IGhhbmRsaW5nPyAgSXQgc2VlbXMgdGhhdDoNCj4gIA0KPiAgIC5FWFRSQUNU X0xBU1QgKGxlbiwgdmVjKQ0KPiAgDQo+IGlzIGVxdWl2YWxlbnQgdG86DQo+ ICANCj4gICB2ZWNbbGVuIC0gMV0NCj4gIA0KPiBJIHRoaW5rIGV2ZW50dWFs bHkgdGhlcmUnbGwgYmUgdGhlIHRlbXB0YXRpb24gdG8gbG93ZXIvZm9sZCBp dCBsaWtlIHRoYXQuDQo+ICANCj4gRldJVywgSSBhZ3JlZSBhIElGTl9MRU5f RVhUUkFDVF9MQVNUL0lGTl9FWFRSQUNUX0xBU1RfTEVOIHdvdWxkIGJlIE9L LA0KPiB3aXRoIGEgbWFzaywgdmVjdG9yLCBsZW5ndGggYW5kIGJpYXMuICBC dXQgZXZlbiB0aGVuLCBJIHRoaW5rIHRoZXJlJ2xsDQo+IGJlIGEgdGVtcHRh dGlvbiB0byBsb3dlciBjYWxscyB3aXRoIGFsbC0xIG1hc2tzIHRvIHZhbFts ZW4gLSAxIC0gYmlhc10uDQo+IFNvIEkgdGhpbmsgdGhlIGZ1bmN0aW9uIG9u bHkgbWFrZXMgc2Vuc2UgaWYgd2UgaGF2ZSBhIHVzZSBjYXNlIHdoZXJlDQo+ IHRoZSBtYXNrIG1pZ2h0IG5vdCBiZSBhbGwtMXMuDQo+ICANCj4gVGhhbmtz LA0KPiBSaWNoYXJkDQo+ICANCj4gDQogDQotLSANClJpY2hhcmQgQmllbmVy IDxyZ3VlbnRoZXJAc3VzZS5kZT4NClNVU0UgU29mdHdhcmUgU29sdXRpb25z IEdlcm1hbnkgR21iSCwNCkZyYW5rZW5zdHJhc3NlIDE0NiwgOTA0NjEgTnVl cm5iZXJnLCBHZXJtYW55Ow0KR0Y6IEl2byBUb3RldiwgQW5kcmV3IE1jRG9u YWxkLCBXZXJuZXIgS25vYmxpY2g7IChIUkIgMzY4MDksIEFHIE51ZXJuYmVy ZykNCiANCg== ------=_001_NextPart228246071144_=------