From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgsg2.qq.com (smtpbgsg2.qq.com [54.254.200.128]) by sourceware.org (Postfix) with ESMTPS id BD5313857C5A for ; Wed, 9 Aug 2023 12:34:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BD5313857C5A 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: bizesmtp65t1691584450tnxeqvd0 Received: from LAPTOP-EPITNQBU ( [113.104.212.2]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 09 Aug 2023 20:34:09 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: IcCSTr/hHjMabPJlMnDmH+Mcb/Z/nMcB41qlWCHPiOCBY1saeaYtQXOmU/Oj0 gtEC402nZUEfcg1aSxBvuIqPZ6hlE+Wl9/jLyh6dNcvFyMZFza5/3QX2gw0TTsAQHLi4rzV mF9AY9ToQDv6mgTbOlO6sg7GXVBFVMTt9Ac5QtBGK0f9Bu1tME8nm00vUIgFzp39/xdux0A yhjWmTVAgYotTNqNJA8L/f8ncc84btwx5GI8IIWLwSFo8x8D6U3Dz2vgL6nKiOPoRiziDuF m/nWBblfFdGqk6qzzcDGIMwohnEdP0xMkxQriQW9nQG39fSaTtVhfrBQMn5jaXhJ+d5RZaU GqPVzOsNyOceKywUohv1juJJRCtZ9HUBb6D1+mQKmlaEalyXGB1EqnGqwjRpcRVGq+9Kk90 Nnig4HReoHuuowsD74iooknwcUHQ5HYC X-QQ-GoodBg: 2 X-BIZMAIL-ID: 7288550625436653337 Date: Wed, 9 Aug 2023 20:34:10 +0800 From: "juzhe.zhong@rivai.ai" To: rguenther Cc: gcc-patches , richard.sandiford 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: A81FA214-6C29-416D-B3DF-5E86DF2D3467 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <03432EAB79C013FF+2023080920340943903628@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart556023111740_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-10.3 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID autolearn=ham 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_NextPart556023111740_=---- Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: base64 SGksIFJpY2hpLg0KPj4gTm90ZSB0aGUgZXhwYW5kZXJzIGFyZSBkb2N1bWVu dGVkCj4+IGFzIHRvIHJlY2VpdmUgJ21hc2snIG9wZXJhbmRzLCBub3QgJ2xl bicgb25lcyAoYW5kIHdlJ2QgbWlzcyBCSUFTKS4NCk9oLiBZZXMuIFRoaXMg cGF0Y2ggaXMgcmV1c2luZyBjdXJyZW50IEVYVFJBQ1RfTEFTVCBhbmQgZ2Vu ZXJhdGUgbG9vcCBsZW4gaW5zdGVhZCBvZiBsb29wIG1hc2suDQpJdCBzZWVt cyB0aGlzIHBhdGNoIG1pc3NlZCAnQklBUycuIElmIHdlIG5lZWQgJ0JJQVMn LCB3ZSBtYXkgbmVlZCBMRU5fRVhUUkFDVF9MQVNUIHBhdHRlcm4uDQoNCiAN Cj4+IFJpY2hhcmQgUy4gc2hvdWxkIGtub3cgYmVzdCwNCj4+IEFzIGZvciBT TFAgc3VwcG9ydCB0aGUgbG9vcCBtYXNrIHNob3VsZCBoYXZlIGFsbCBTTFAg bGFuZXMKPj4gY29uc2lzdGVudGx5IG1hc2tlZC91bm1hc2tlZCAoc2FtZSBm b3IgJ2xlbicgSSBzdXBwb3NlKSwgYnV0IHdlCj4+IHdhbnQgdG8gZXh0cmFj dCBhIHNwZWNpZmljIFNMUCBsYW5lIG9ubHkuICBGb3IgbWFza3MgSSB0aGlu awo+PiBwcm9kdWNpbmcgYSBtYXNrIHRoYXQgaGFzIGFsbCAnaScgU0xQIGxh bmVzIGVuYWJsZWQgYW5kIEFORAo+PiB0aGF0IHRvIHRoZSBtYXNrIHdvdWxk IHNlbGVjdCB0aGUgcHJvcGVyIGxhbmUgZm9yIEVYVFJBQ1RfTEFTVC4KPj4g Tm90IHN1cmUgaG93IHRvIGhhbmRsZSB0aGlzIGZvciAnbGVuJyAtIEkgZ3Vl c3Mgc2luY2UgJ2xlbicKPj4gY292ZXJzIGFsbCBTTFAgbGFuZXMgYXMgd2Vs bCB3ZSBjb3VsZCBqdXN0IHN1YnRyYWN0Cj4+IFNMUF9UUkVFX0xBTkVTIChu b2RlKSAtIHNscF9pbmRleCBmcm9tIGl0PyAgSSdsbCBub3RlIHdlIGRvbid0 CmhhbmRsZSBuY29waWVzID4gMSB3aGljaCBJIHRoaW5rIHdlIGNvdWxkIHdp dGggdXNpbmcgRk9MRF9FWFRSQUNUX0xBU1Q/DQoNCkZvciBTTFAgc3R1ZmYs IEkgYW0gbm90IHN1cmUuDQpBbmQgSSBhZ3JlZSB0aGF0IHdlIG5lZWQgdG8g d2FpdCBmb3IgUmljaGFyZCBTIHJldmlldy4NCg0KVGhhbmtzLg0KDQoNCmp1 emhlLnpob25nQHJpdmFpLmFpDQogDQpGcm9tOiBSaWNoYXJkIEJpZW5lcg0K RGF0ZTogMjAyMy0wOC0wOSAyMDoyMQ0KVG86IGp1emhlLnpob25nQHJpdmFp LmFpDQpDQzogZ2NjLXBhdGNoZXM7IHJpY2hhcmQuc2FuZGlmb3JkDQpTdWJq ZWN0OiBSZTogUmU6IFtQQVRDSF0gVkVDVDogU3VwcG9ydCBsb29wIGxlbiBj b250cm9sIG9uIEVYVFJBQ1RfTEFTVCB2ZWN0b3JpemF0aW9uDQpPbiBXZWQs IDkgQXVnIDIwMjMsIGp1emhlLnpob25nQHJpdmFpLmFpIHdyb3RlOg0KIA0K PiBIaSwgUmljaGkuDQo+IA0KPiA+PiB0aGF0IHNob3VsZCBiZQ0KPiANCj4g Pj4gICB8fCAoIUxPT1BfVklORk9fRlVMTFlfTUFTS0VEX1AgKGxvb3Bfdmlu Zm8pDQo+ID4+ICAgICAgICYmICFMT09QX1ZJTkZPX0ZVTExZX1dJVEhfTEVO R1RIX1AgKGxvb3BfdmluZm8pKQ0KPiANCj4gPj4gSSB0aGluay4gIEl0IHNl ZW1zIHRvIGltcGx5IHRoYXQgU0xQIGlzbid0IHN1cHBvcnRlZCB3aXRoDQo+ ID4+IG1hc2tpbmcvbGVuZ3RoaW5nLg0KPiANCj4gT2gsIHllcy4gIEF0IGZp cnN0IGdsYW5jZSwgdGhlIG9yaWdpbmFsIGNvZGUgaXMgcXVpdGUgc3VzcGlj aW91cyBhbmQgeW91ciBjb21tZW50cyBtYWtlIHNlbnNlIHRvIG1lLg0KPiAN Cj4gPj4gSHVtLCBob3cgZG9lcyBDRk5fRVhUUkFDVF9MQVNUIGhhbmRsZSBi b3RoIG1hc2sgYW5kIGxlbmd0aCB0cmFuc3BhcmVudGx5Pw0KPiA+PiBEb24n dCB5b3UgbmVlZCBzb21lIENGTl9MRU5fRVhUUkFDVF9MQVNUIGluc3RlYWQ/ DQo+IA0KPiBJIHRoaW5rIENGTl9FWFRSQUNUX0xBU1QgYWx3YXlzIGhhcyBl aXRoZXIgbG9vcCBtYXNrIG9yIGxvb3AgbGVuLg0KPiANCj4gV2hlbiBib3Ro IG1hc2sgYW5kIGxlbmd0aCBhcmUgbm90IG5lZWRlZCwgSU1ITywgSSB0aGlu ayBjdXJyZW50IEJJVF9GSUVMRF9SRUYgZmxvdyBpcyBnb29kIGVub3VnaDoN Cj4gaHR0cHM6Ly9nb2Rib2x0Lm9yZy96L1lyNU05aGNjNg0KPiANCj4gU28g SSB0aGluayB3ZSBkb24ndCBuZWVkIENGTl9MRU5fRVhUUkFDVF9MQVNULiAN Cj4gDQo+IEluc3RlYWQsIEkgdGhpbmsgd2Ugd2lsbCBuZWVkIENGTl9MRU5f Rk9MRF9FWFRSQUNUX0xBU1QgaW4gdGhlIG5leHQgcGF0Y2guDQo+IA0KPiBG ZWVsIGZyZWUgdG8gY29ycmVjdCBtZSBpdCBJIGFtIHdyb25nLg0KIA0KUmlj aGFyZCBTLiBzaG91bGQga25vdyBiZXN0LCBidXQgSSBkb24ndCB0aGluayBG T0xEX0VYVFJBQ1RfTEFTVCBpcw0KYW55IGRpZmZlcmVudCBmcm9tIEVYVFJB Q1RfTEFTVCAodGhlIHZhbHVlIGZvciBFWFRSQUNUX0xBU1Qgd2l0aA0KYWxs IHplcm9zIG1hc2sgc2VlbXMgdW5zcGVjaWZpZWQ/KS4NCk5vdGUgdGhlIGV4 cGFuZGVycyBhcmUgZG9jdW1lbnRlZA0KYXMgdG8gcmVjZWl2ZSAnbWFzaycg b3BlcmFuZHMsIG5vdCAnbGVuJyBvbmVzIChhbmQgd2UnZCBtaXNzIEJJQVMp Lg0KIA0KQXMgZm9yIFNMUCBzdXBwb3J0IHRoZSBsb29wIG1hc2sgc2hvdWxk IGhhdmUgYWxsIFNMUCBsYW5lcw0KY29uc2lzdGVudGx5IG1hc2tlZC91bm1h c2tlZCAoc2FtZSBmb3IgJ2xlbicgSSBzdXBwb3NlKSwgYnV0IHdlDQp3YW50 IHRvIGV4dHJhY3QgYSBzcGVjaWZpYyBTTFAgbGFuZSBvbmx5LiAgRm9yIG1h c2tzIEkgdGhpbmsNCnByb2R1Y2luZyBhIG1hc2sgdGhhdCBoYXMgYWxsICdp JyBTTFAgbGFuZXMgZW5hYmxlZCBhbmQgQU5EDQp0aGF0IHRvIHRoZSBtYXNr IHdvdWxkIHNlbGVjdCB0aGUgcHJvcGVyIGxhbmUgZm9yIEVYVFJBQ1RfTEFT VC4NCk5vdCBzdXJlIGhvdyB0byBoYW5kbGUgdGhpcyBmb3IgJ2xlbicgLSBJ IGd1ZXNzIHNpbmNlICdsZW4nDQpjb3ZlcnMgYWxsIFNMUCBsYW5lcyBhcyB3 ZWxsIHdlIGNvdWxkIGp1c3Qgc3VidHJhY3QNClNMUF9UUkVFX0xBTkVTIChu b2RlKSAtIHNscF9pbmRleCBmcm9tIGl0PyAgSSdsbCBub3RlIHdlIGRvbid0 DQpoYW5kbGUgbmNvcGllcyA+IDEgd2hpY2ggSSB0aGluayB3ZSBjb3VsZCB3 aXRoIHVzaW5nIEZPTERfRVhUUkFDVF9MQVNUPw0KIA0KUmljaGFyZC4NCiAN Cj4gVGhhbmtzLg0KPiANCj4gDQo+IGp1emhlLnpob25nQHJpdmFpLmFpDQo+ ICANCj4gRnJvbTogUmljaGFyZCBCaWVuZXINCj4gRGF0ZTogMjAyMy0wOC0w OSAxOTowMA0KPiBUbzogSnUtWmhlIFpob25nDQo+IENDOiBnY2MtcGF0Y2hl czsgcmljaGFyZC5zYW5kaWZvcmQNCj4gU3ViamVjdDogUmU6IFtQQVRDSF0g VkVDVDogU3VwcG9ydCBsb29wIGxlbiBjb250cm9sIG9uIEVYVFJBQ1RfTEFT VCB2ZWN0b3JpemF0aW9uDQo+IE9uIFdlZCwgOSBBdWcgMjAyMywganV6aGUu emhvbmdAcml2YWkuYWkgd3JvdGU6DQo+ICANCj4gPiBGcm9tOiBKdS1aaGUg WmhvbmcgPGp1emhlLnpob25nQHJpdmFpLmFpPg0KPiA+IA0KPiA+IEhpLCB0 aGlzIHBhdGNoIGlzIGFkZGluZyBsb29wIGxlbiBjb250cm9sIG9uIGV4dHJh Y3RfbGFzdCBhdXRvdmVjdG9yaXphdGlvbi4NCj4gPiANCj4gPiBDb25zaWRl ciB0aGlzIGZvbGxvd2luZyBjYXNlOg0KPiA+IA0KPiA+ICNpbmNsdWRlIDxz dGRpbnQuaD4NCj4gPiANCj4gPiAjZGVmaW5lIEVYVFJBQ1RfTEFTVChUWVBF KSBcDQo+ID4gICBUWVBFIF9fYXR0cmlidXRlX18gKChub2lubGluZSwgbm9j bG9uZSkpIFwNCj4gPiAgIHRlc3RfIyNUWVBFIChUWVBFICp4LCBpbnQgbiwg VFlQRSB2YWx1ZSkgXA0KPiA+ICAgeyBcDQo+ID4gICAgIFRZUEUgbGFzdDsg XA0KPiA+ICAgICBmb3IgKGludCBqID0gMDsgaiA8IG47ICsraikgXA0KPiA+ ICAgICAgIHsgXA0KPiA+IGxhc3QgPSB4W2pdOyBcDQo+ID4geFtqXSA9IGxh c3QgKiB2YWx1ZTsgXA0KPiA+ICAgICAgIH0gXA0KPiA+ICAgICByZXR1cm4g bGFzdDsgXA0KPiA+ICAgfQ0KPiA+IA0KPiA+ICNkZWZpbmUgVEVTVF9BTEwo VCkgXA0KPiA+ICAgVCAodWludDhfdCkgXA0KPiA+IA0KPiA+IFRFU1RfQUxM IChFWFRSQUNUX0xBU1QpDQo+ID4gDQo+ID4gQVJNIFNWRSBJUjoNCj4gPiAN Cj4gPiBQcmVoZWFkZXI6DQo+ID4gICBtYXhfbWFza18zNCA9IC5XSElMRV9V TFQgKDAsIGJuZC41XzYsIHsgMCwgLi4uIH0pOw0KPiA+IA0KPiA+IExvb3A6 DQo+ID4gICAuLi4NCj4gPiAgICMgbG9vcF9tYXNrXzIyID0gUEhJIDxuZXh0 X21hc2tfMzUoNCksIG1heF9tYXNrXzM0KDMpPg0KPiA+ICAgLi4uDQo+ID4g ICB2ZWN0X2xhc3RfMTIuOF8yMyA9IC5NQVNLX0xPQUQgKF83LCA4QiwgbG9v cF9tYXNrXzIyKTsNCj4gPiAgIHZlY3RfXzQuOV8yNyA9IHZlY3RfbGFzdF8x Mi44XzIzICogdmVjdF9jc3RfXzI2Ow0KPiA+ICAgLk1BU0tfU1RPUkUgKF83 LCA4QiwgbG9vcF9tYXNrXzIyLCB2ZWN0X180LjlfMjcpOw0KPiA+ICAgLi4u DQo+ID4gICBuZXh0X21hc2tfMzUgPSAuV0hJTEVfVUxUIChfMSwgYm5kLjVf NiwgeyAwLCAuLi4gfSk7DQo+ID4gICAuLi4NCj4gPiANCj4gPiBFcGlsb2d1 ZToNCj4gPiAgIF8yNSA9IC5FWFRSQUNUX0xBU1QgKGxvb3BfbWFza18yMiwg dmVjdF9sYXN0XzEyLjhfMjMpOw0KPiA+IA0KPiA+IEZvciBSVlYgc2luY2Ug d2UgcHJlZmVyIGxlbiBpbiBsb29wIGNvbnRyb2wsIGFmdGVyIHRoaXMgcGF0 Y2ggZm9yIFJWVjoNCj4gPiANCj4gPiBMb29wOg0KPiA+ICAgLi4uDQo+ID4g ICBsb29wX2xlbl8yMiA9IFNFTEVDVF9WTDsNCj4gPiAgIHZlY3RfbGFzdF8x Mi44XzIzID0gLk1BU0tfTE9BRCAoXzcsIDhCLCBsb29wX2xlbl8yMik7DQo+ ID4gICB2ZWN0X180LjlfMjcgPSB2ZWN0X2xhc3RfMTIuOF8yMyAqIHZlY3Rf Y3N0X18yNjsNCj4gPiAgIC5NQVNLX1NUT1JFIChfNywgOEIsIGxvb3BfbGVu XzIyLCB2ZWN0X180LjlfMjcpOw0KPiA+ICAgLi4uDQo+ID4gDQo+ID4gRXBp bG9ndWU6DQo+ID4gICBfMjUgPSAuRVhUUkFDVF9MQVNUIChsb29wX2xlbl8y MiwgdmVjdF9sYXN0XzEyLjhfMjMpOw0KPiA+IA0KPiA+IFRoaXMgcGF0Y2gg ZGlkbid0IGFkZCBhIG5ldyBwYXR0ZXJuIGZvciBsZW5ndGggbG9vcCBjb250 cm9sIG9mIGV4dHJhY3RfbGFzdC4NCj4gPiBJbnN0ZWFkIHdlIHJldXNlIGN1 cnJlbnQgZXh0cmFjdF9sYXN0Lg0KPiA+IA0KPiA+IEhlcmUgaXMgdGhlIGNv ZGU6DQo+ID4gDQo+ID4gU3RlcCAxIC0gRW5hYmxlIGxlbmd0aCBhbmQgcmVj b3JkIGxlbmd0aCBmb3IgZXh0cmFjdF9sYXN0Og0KPiA+IA0KPiA+ICsgICAg ICAgbWFjaGluZV9tb2RlIHZlY19tb2RlID0gVFlQRV9NT0RFICh2ZWN0eXBl KTsNCj4gPiArICAgICAgIGlmIChnZXRfbGVuX2xvYWRfc3RvcmVfbW9kZSAo dmVjX21vZGUsIHRydWUpLmV4aXN0cyAoJnZlY19tb2RlKSkNCj4gPiArIHZl Y3RfcmVjb3JkX2xvb3BfbGVuIChsb29wX3ZpbmZvLA0KPiA+ICsgICAgICAg JkxPT1BfVklORk9fTEVOUyAobG9vcF92aW5mbyksIDEsDQo+ID4gKyAgICAg ICB2ZWN0eXBlLCAxKTsNCj4gPiArICAgICAgIGVsc2UNCj4gPiArIHZlY3Rf cmVjb3JkX2xvb3BfbWFzayAobG9vcF92aW5mbywNCj4gPiArICAgICAgICAm TE9PUF9WSU5GT19NQVNLUyAobG9vcF92aW5mbyksIDEsDQo+ID4gKyAgICAg ICAgdmVjdHlwZSwgTlVMTCk7DQo+ID4gDQo+ID4gV2UgdXNlICdnZXRfbGVu X2xvYWRfc3RvcmVfbW9kZScgdG8gY2hlY2sgd2hldGhlciB0YXJnZXRzIHN1 cHBvcnQgbG9vcCBsZW4gY29udHJvbCBvciBub3QuDQo+ID4gSWYgeWVzLCBy ZWNvcmQgYSBsb29wIGxlbi4NCj4gPiANCj4gPiBTdGVwIDIgLSBCdWlsZCBF WFRSQUNUX0xBU1Qgd2l0aCBsZW46DQo+ID4gDQo+ID4gLSAgIHRyZWUgbWFz ayA9IHZlY3RfZ2V0X2xvb3BfbWFzayAobG9vcF92aW5mbywgZ3NpLA0KPiA+ IC0gICAmTE9PUF9WSU5GT19NQVNLUyAobG9vcF92aW5mbyksDQo+ID4gLSAg IDEsIHZlY3R5cGUsIDApOw0KPiA+ICsgICB0cmVlIGNvbnRyb2w7DQo+ID4g KyAgIGlmIChMT09QX1ZJTkZPX0ZVTExZX1dJVEhfTEVOR1RIX1AgKGxvb3Bf dmluZm8pKQ0KPiA+ICsgICAgIGNvbnRyb2wgPSB2ZWN0X2dldF9sb29wX2xl biAobG9vcF92aW5mbywgZ3NpLA0KPiA+ICsgJkxPT1BfVklORk9fTEVOUyAo bG9vcF92aW5mbyksIDEsDQo+ID4gKyB2ZWN0eXBlLCAwLCAwKTsNCj4gPiAr ICAgZWxzZQ0KPiA+ICsgICAgIGNvbnRyb2wgPSB2ZWN0X2dldF9sb29wX21h c2sgKGxvb3BfdmluZm8sIGdzaSwNCj4gPiArICAgJkxPT1BfVklORk9fTUFT S1MgKGxvb3BfdmluZm8pLCAxLA0KPiA+ICsgICB2ZWN0eXBlLCAwKTsNCj4g PiAgICB0cmVlIHNjYWxhcl9yZXMgPSBnaW1wbGVfYnVpbGQgKCZzdG10cywg Q0ZOX0VYVFJBQ1RfTEFTVCwgc2NhbGFyX3R5cGUsDQo+ID4gLSAgIG1hc2ss IHZlY19saHNfcGhpKTsNCj4gPiArICAgY29udHJvbCwgdmVjX2xoc19waGkp Ow0KPiA+IA0KPiA+IFJldXNlIHRoZSBjdXJyZW50IGNvZGVzIChidWlsZCBF WFRSQUNUX0xBU1Qgd2l0aCBtYXNrKSwgYnVpbGQgbGVuZ3RoIGluc3RlYWQg aWYNCj4gPiAnTE9PUF9WSU5GT19GVUxMWV9XSVRIX0xFTkdUSF9QJyBpcyB0 cnVlLg0KPiA+IA0KPiA+IFRoaXMgcGF0Y2ggaGFzIGJlZW4gZnVsbHkgdGVz dGVkIGluIFJJU0MtViBwb3J0Lg0KPiA+IA0KPiA+IEJvb3RzdHJhcCBhbmQg UmVncmVzc2lvbiBvbiBYODYgcGFzc2VkLg0KPiA+IA0KPiA+IE9rIGZvciB0 cnVuayA/DQo+ID4gDQo+ID4gZ2NjL0NoYW5nZUxvZzoNCj4gPiANCj4gPiAg ICAgICAgICogdHJlZS12ZWN0LWxvb3AuY2MgKHZlY3Rvcml6YWJsZV9saXZl X29wZXJhdGlvbik6IEFkZCBsZW5ndGggY29udHJvbC4NCj4gPiANCj4gPiAt LS0NCj4gPiAgZ2NjL3RyZWUtdmVjdC1sb29wLmNjIHwgNDAgKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQ0KPiA+ICAxIGZpbGUg Y2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pDQo+ ID4gDQo+ID4gZGlmZiAtLWdpdCBhL2djYy90cmVlLXZlY3QtbG9vcC5jYyBi L2djYy90cmVlLXZlY3QtbG9vcC5jYw0KPiA+IGluZGV4IDAwMDU4YzNjMTNl Li5mZGUwOThjYWZkZSAxMDA2NDQNCj4gPiAtLS0gYS9nY2MvdHJlZS12ZWN0 LWxvb3AuY2MNCj4gPiArKysgYi9nY2MvdHJlZS12ZWN0LWxvb3AuY2MNCj4g PiBAQCAtMTAzMTEsOSArMTAzMTEsMTUgQEAgdmVjdG9yaXphYmxlX2xpdmVf b3BlcmF0aW9uICh2ZWNfaW5mbyAqdmluZm8sDQo+ID4gICAgZWxzZQ0KPiA+ ICAgICAgew0KPiA+ICAgICAgICBnY2NfYXNzZXJ0IChuY29waWVzID09IDEg JiYgIXNscF9ub2RlKTsNCj4gPiAtICAgICAgIHZlY3RfcmVjb3JkX2xvb3Bf bWFzayAobG9vcF92aW5mbywNCj4gPiAtICAgICAgJkxPT1BfVklORk9fTUFT S1MgKGxvb3BfdmluZm8pLA0KPiA+IC0gICAgICAxLCB2ZWN0eXBlLCBOVUxM KTsNCj4gPiArICAgICAgIG1hY2hpbmVfbW9kZSB2ZWNfbW9kZSA9IFRZUEVf TU9ERSAodmVjdHlwZSk7DQo+ID4gKyAgICAgICBpZiAoZ2V0X2xlbl9sb2Fk X3N0b3JlX21vZGUgKHZlY19tb2RlLCB0cnVlKS5leGlzdHMgKCZ2ZWNfbW9k ZSkpDQo+ID4gKyB2ZWN0X3JlY29yZF9sb29wX2xlbiAobG9vcF92aW5mbywN Cj4gPiArICAgICAgICZMT09QX1ZJTkZPX0xFTlMgKGxvb3BfdmluZm8pLCAx LA0KPiA+ICsgICAgICAgdmVjdHlwZSwgMSk7DQo+ID4gKyAgICAgICBlbHNl DQo+ID4gKyB2ZWN0X3JlY29yZF9sb29wX21hc2sgKGxvb3BfdmluZm8sDQo+ ID4gKyAgICAgICAgJkxPT1BfVklORk9fTUFTS1MgKGxvb3BfdmluZm8pLCAx LA0KPiA+ICsgICAgICAgIHZlY3R5cGUsIE5VTEwpOw0KPiA+ICAgICAgfQ0K PiA+ICB9DQo+ID4gICAgICAgIC8qID8/PyAgRW5hYmxlIGZvciBsb29wIGNv c3RpbmcgYXMgd2VsbC4gICovDQo+ID4gQEAgLTEwMzM5LDcgKzEwMzQ1LDkg QEAgdmVjdG9yaXphYmxlX2xpdmVfb3BlcmF0aW9uICh2ZWNfaW5mbyAqdmlu Zm8sDQo+ID4gICAgZ2ltcGxlICp2ZWNfc3RtdDsNCj4gPiAgICBpZiAoc2xw X25vZGUpDQo+ID4gICAgICB7DQo+ID4gLSAgICAgIGdjY19hc3NlcnQgKCFs b29wX3ZpbmZvIHx8ICFMT09QX1ZJTkZPX0ZVTExZX01BU0tFRF9QIChsb29w X3ZpbmZvKSk7DQo+ID4gKyAgICAgIGdjY19hc3NlcnQgKCFsb29wX3ZpbmZv DQo+ID4gKyAgIHx8ICFMT09QX1ZJTkZPX0ZVTExZX01BU0tFRF9QIChsb29w X3ZpbmZvKQ0KPiA+ICsgICB8fCAhTE9PUF9WSU5GT19GVUxMWV9XSVRIX0xF TkdUSF9QIChsb29wX3ZpbmZvKSk7DQo+ICANCj4gdGhhdCBzaG91bGQgYmUN Cj4gIA0KPiAgIHx8ICghTE9PUF9WSU5GT19GVUxMWV9NQVNLRURfUCAobG9v cF92aW5mbykgDQo+ICAgICAgICYmICFMT09QX1ZJTkZPX0ZVTExZX1dJVEhf TEVOR1RIX1AgKGxvb3BfdmluZm8pKQ0KPiAgDQo+IEkgdGhpbmsuICBJdCBz ZWVtcyB0byBpbXBseSB0aGF0IFNMUCBpc24ndCBzdXBwb3J0ZWQgd2l0aCAN Cj4gbWFza2luZy9sZW5ndGhpbmcuDQo+ICANCj4gPiAgDQo+ID4gICAgICAg IC8qIEdldCB0aGUgY29ycmVjdCBzbHAgdmVjdG9yaXplZCBzdG10LiAgKi8N Cj4gPiAgICAgICAgdmVjX2xocyA9IFNMUF9UUkVFX1ZFQ19ERUZTIChzbHBf bm9kZSlbdmVjX2VudHJ5XTsNCj4gPiBAQCAtMTAzODMsMjEgKzEwMzkxLDI5 IEBAIHZlY3Rvcml6YWJsZV9saXZlX29wZXJhdGlvbiAodmVjX2luZm8gKnZp bmZvLA0KPiA+ICANCj4gPiAgICAgICAgZ2ltcGxlX3NlcSBzdG10cyA9IE5V TEw7DQo+ID4gICAgICAgIHRyZWUgbmV3X3RyZWU7DQo+ID4gLSAgICAgIGlm IChMT09QX1ZJTkZPX0ZVTExZX01BU0tFRF9QIChsb29wX3ZpbmZvKSkNCj4g PiArICAgICAgaWYgKExPT1BfVklORk9fRlVMTFlfTUFTS0VEX1AgKGxvb3Bf dmluZm8pDQo+ID4gKyAgIHx8IExPT1BfVklORk9fRlVMTFlfV0lUSF9MRU5H VEhfUCAobG9vcF92aW5mbykpDQo+ID4gIHsNCj4gPiAgICAvKiBFbWl0Og0K PiA+ICANCj4gPiAtICAgICAgICBTQ0FMQVJfUkVTID0gRVhUUkFDVF9MQVNU IDxWRUNfTEhTLCBNQVNLPg0KPiA+ICsgICAgICAgIFNDQUxBUl9SRVMgPSBF WFRSQUNUX0xBU1QgPFZFQ19MSFMsIENPTlRST0w+DQo+ID4gIA0KPiA+IC0g ICAgICB3aGVyZSBWRUNfTEhTIGlzIHRoZSB2ZWN0b3JpemVkIGxpdmUtb3V0 IHJlc3VsdCBhbmQgTUFTSyBpcw0KPiA+IC0gICAgICB0aGUgbG9vcCBtYXNr IGZvciB0aGUgZmluYWwgaXRlcmF0aW9uLiAgKi8NCj4gPiArICAgICAgd2hl cmUgVkVDX0xIUyBpcyB0aGUgdmVjdG9yaXplZCBsaXZlLW91dCByZXN1bHQg YW5kIENPTlRST0wgY2FuDQo+ID4gKyAgICAgIGJlIGVpdGhlciB0aGUgbG9v cCBtYXNrIGZvciB0aGUgZmluYWwgaXRlcmF0aW9uIG9yIHRoZSBsb29wIGxl bg0KPiA+ICsgICAgICBmb3IgdGhlIGZpbmFsIGl0ZXJhdGlvbi4gICovDQo+ ID4gICAgZ2NjX2Fzc2VydCAobmNvcGllcyA9PSAxICYmICFzbHBfbm9kZSk7 DQo+ID4gICAgdHJlZSBzY2FsYXJfdHlwZSA9IFRSRUVfVFlQRSAoU1RNVF9W SU5GT19WRUNUWVBFIChzdG10X2luZm8pKTsNCj4gPiAtICAgdHJlZSBtYXNr ID0gdmVjdF9nZXRfbG9vcF9tYXNrIChsb29wX3ZpbmZvLCBnc2ksDQo+ID4g LSAgICZMT09QX1ZJTkZPX01BU0tTIChsb29wX3ZpbmZvKSwNCj4gPiAtICAg MSwgdmVjdHlwZSwgMCk7DQo+ID4gKyAgIHRyZWUgY29udHJvbDsNCj4gPiAr ICAgaWYgKExPT1BfVklORk9fRlVMTFlfV0lUSF9MRU5HVEhfUCAobG9vcF92 aW5mbykpDQo+ID4gKyAgICAgY29udHJvbCA9IHZlY3RfZ2V0X2xvb3BfbGVu IChsb29wX3ZpbmZvLCBnc2ksDQo+ID4gKyAmTE9PUF9WSU5GT19MRU5TIChs b29wX3ZpbmZvKSwgMSwNCj4gPiArIHZlY3R5cGUsIDAsIDApOw0KPiA+ICsg ICBlbHNlDQo+ID4gKyAgICAgY29udHJvbCA9IHZlY3RfZ2V0X2xvb3BfbWFz ayAobG9vcF92aW5mbywgZ3NpLA0KPiA+ICsgICAmTE9PUF9WSU5GT19NQVNL UyAobG9vcF92aW5mbyksIDEsDQo+ID4gKyAgIHZlY3R5cGUsIDApOw0KPiA+ ICAgIHRyZWUgc2NhbGFyX3JlcyA9IGdpbXBsZV9idWlsZCAoJnN0bXRzLCBD Rk5fRVhUUkFDVF9MQVNULCBzY2FsYXJfdHlwZSwNCj4gPiAtICAgbWFzaywg dmVjX2xoc19waGkpOw0KPiA+ICsgICBjb250cm9sLCB2ZWNfbGhzX3BoaSk7 DQo+ICANCj4gSHVtLCBob3cgZG9lcyBDRk5fRVhUUkFDVF9MQVNUIGhhbmRs ZSBib3RoIG1hc2sgYW5kIGxlbmd0aCB0cmFuc3BhcmVudGx5Pw0KPiBEb24n dCB5b3UgbmVlZCBzb21lIENGTl9MRU5fRVhUUkFDVF9MQVNUIGluc3RlYWQ/ DQo+ICANCj4gPiAgICAvKiBDb252ZXJ0IHRoZSBleHRyYWN0ZWQgdmVjdG9y IGVsZW1lbnQgdG8gdGhlIHNjYWxhciB0eXBlLiAgKi8NCj4gPiAgICBuZXdf dHJlZSA9IGdpbXBsZV9jb252ZXJ0ICgmc3RtdHMsIGxoc190eXBlLCBzY2Fs YXJfcmVzKTsNCj4gPiANCj4gIA0KPiBPdGhlcndpc2UgbG9va3MgT0sgdG8g bWUuDQo+ICANCj4gVGhhbmtzLA0KPiBSaWNoYXJkLg0KPiAgDQo+IA0KIA0K LS0gDQpSaWNoYXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+DQpTVVNF IFNvZnR3YXJlIFNvbHV0aW9ucyBHZXJtYW55IEdtYkgsDQpGcmFua2Vuc3Ry YXNzZSAxNDYsIDkwNDYxIE51ZXJuYmVyZywgR2VybWFueTsNCkdGOiBJdm8g VG90ZXYsIEFuZHJldyBNY0RvbmFsZCwgV2VybmVyIEtub2JsaWNoOyAoSFJC IDM2ODA5LCBBRyBOdWVybmJlcmcpDQogDQo= ------=_001_NextPart556023111740_=------