From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgsg1.qq.com (smtpbgsg1.qq.com [54.254.200.92]) by sourceware.org (Postfix) with ESMTPS id B1E6E3858D35 for ; Fri, 9 Jun 2023 11:17:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B1E6E3858D35 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: bizesmtp71t1686309408tye8yr0y Received: from LAPTOP-EPITNQBU ( [58.60.1.20]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 09 Jun 2023 19:16:47 +0800 (CST) X-QQ-SSF: 01400000000000F0S000000A0000000 X-QQ-FEAT: +oIWmpEafD+bsnYbxoUF++XULG0TWNbtMgp2H+oLRsL4fcueYIc3VEDMO4+Ck 6e36ooabscNAVdbWOB/OY9lMul3UwYLRqcUa+dKwSf6xvj+0Czvyjr/nIL8IwgEgFOPigio unISQ56q42r9ptgYOsanj9PGJXzRq5AgR9gQZtQEdJupLf7XN8Ocw3ZGZferKQLiy1LmCot /8ynzynjrwrcS1TcP9h1b4oVvLz2P9z1YF4xGfgM7eUjWoaQp6tiayF+Z++ImQsJkvri7v3 T+8zXdx9smT76zHL+wJhM/HyzeTvGtln0270qN50s5RTY6jZ9eGco9T5fyynKiH80Mo1rTM xFuIm+9jBvRhBLypaWTtRBGa82g/XebeRtfH34SOBxGAZCJRhDdK79/A0JwqTkSN4kREq8N l2tCRyej2d4ldj3zn6bZkhMxO+rEwQXx X-QQ-GoodBg: 2 X-BIZMAIL-ID: 103155712644655704 Date: Fri, 9 Jun 2023 19:16:47 +0800 From: "juzhe.zhong@rivai.ai" To: rguenther Cc: gcc-patches , richard.sandiford Subject: Re: Re: [PATCH V6] VECT: Add SELECT_VL support References: <20230609083934.556871-1-juzhe.zhong@rivai.ai>, X-Priority: 3 X-GUID: 68ACA120-6478-41F7-BD8E-FF9394C9E363 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart447527466505_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-7.5 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,MIME_BASE64_TEXT,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,RCVD_IN_SORBS_WEB,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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_NextPart447527466505_=---- Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: base64 VGhhbmtzLCBSaWNoaS4NCg0KU2hvdWxkIEkgd2FpdCBmb3IgUmljaGFyZCBB Q0sgZ2FpbiA/IA0KU2luY2UgdGhlIGxhc3QgZW1haWwgb2YgdGhpcyBwYXRj aCwgaGUganVzdCBhc2tlZCBtZSB0byBhZGp1c3QgY29tbWVudCBubyBjb2Rl cyBjaGFuZ2UuDQpJIGFtIG5vdCBzdXJlIHdoZXRoZXIgaGUgaXMgb2suDQoN ClRoYW5rcy4NCg0KDQpqdXpoZS56aG9uZ0ByaXZhaS5haQ0KIA0KRnJvbTog UmljaGFyZCBCaWVuZXINCkRhdGU6IDIwMjMtMDYtMDkgMTk6MDINClRvOiBK dS1aaGUgWmhvbmcNCkNDOiBnY2MtcGF0Y2hlczsgcmljaGFyZC5zYW5kaWZv cmQNClN1YmplY3Q6IFJlOiBbUEFUQ0ggVjZdIFZFQ1Q6IEFkZCBTRUxFQ1Rf Vkwgc3VwcG9ydA0KT24gRnJpLCA5IEp1biAyMDIzLCBqdXpoZS56aG9uZ0By aXZhaS5haSB3cm90ZToNCiANCj4gRnJvbTogSnUtWmhlIFpob25nIDxqdXpo ZS56aG9uZ0ByaXZhaS5haT4NCj4gDQo+IENvLWF1dGhvcmVkLWJ5OiBSaWNo YXJkIFNhbmRpZm9yZDxyaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29tPg0KPiBD by1hdXRob3JlZC1ieTogUmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNl LmRlPg0KPiANCj4gVGhpcyBwYXRjaCBhZGRyZXNzIGNvbW1lbnRzIGZyb20g UmljaGFyZCAmJiBSaWNoaSBhbmQgcmViYXNlIHRvIHRydW5rLg0KPiANCj4g VGhpcyBwYXRjaCBpcyBhZGRpbmcgU0VMRUNUX1ZMIG1pZGRsZS1lbmQgc3Vw cG9ydA0KPiBhbGxvdyB0YXJnZXQgaGF2ZSB0YXJnZXQgZGVwZW5kZW50IG9w dGltaXphdGlvbiBpbiBjYXNlIG9mDQo+IGxlbmd0aCBjYWxjdWxhdGlvbi4N Cj4gDQo+IFRoaXMgcGF0Y2ggaXMgaW5zcGlyZWQgYnkgUlZWIElTQSBhbmQg TExWTToNCj4gaHR0cHM6Ly9yZXZpZXdzLmxsdm0ub3JnL0Q5OTc1MA0KPiAN Cj4gVGhlIFNFTEVDVF9WTCBpcyBzYW1lIGJlaGF2aW9yIGFzIExMVk0gImdl dF92ZWN0b3JfbGVuZ3RoIiB3aXRoDQo+IHRoZXNlIGZvbGxvd2luZyBwcm9w ZXJ0aWVzOg0KPiANCj4gMS4gT25seSBhcHBseSBvbiBzaW5nbGUtcmdyb3Vw Lg0KPiAyLiBub24gU0xQLg0KPiAzLiBhZGp1c3QgbG9vcCBjb250cm9sIElW Lg0KPiA0LiBhZGp1c3QgZGF0YSByZWZlcmVuY2UgSVYuDQo+IDUuIGFsbG93 IG5vbi12ZiBlbGVtZW50cyBwcm9jZXNzaW5nIGluIG5vbi1maW5hbCBpdGVy YXRpb24NCj4gDQo+IENvZGU6DQo+ICAgICMgdm9pZCB2dmFkZGludDMyKHNp emVfdCBuLCBjb25zdCBpbnQqeCwgY29uc3QgaW50KnksIGludCp6KQ0KPiAg ICAgIyB7IGZvciAoc2l6ZV90IGk9MDsgaTxuOyBpKyspIHsgeltpXT14W2ld K3lbaV07IH0gfQ0KPiANCj4gVGFrZSBSVlYgY29kZWdlbiBmb3IgZXhhbXBs ZToNCj4gDQo+IEJlZm9yZSB0aGlzIHBhdGNoOg0KPiB2dmFkZGludDMyOg0K PiAgICAgICAgIGJsZSAgICAgYTAsemVybywuTDYNCj4gICAgICAgICBjc3Jy ICAgIGE0LHZsZW5iDQo+ICAgICAgICAgc3JsaSAgICBhNixhNCwyDQo+IC5M NDoNCj4gICAgICAgICBtdiAgICAgIGE1LGEwDQo+ICAgICAgICAgYmxldSAg ICBhMCxhNiwuTDMNCj4gICAgICAgICBtdiAgICAgIGE1LGE2DQo+IC5MMzoN Cj4gICAgICAgICB2c2V0dmxpIHplcm8sYTUsZTMyLG0xLHRhLG1hDQo+ICAg ICAgICAgdmxlMzIudiB2MiwwKGExKQ0KPiAgICAgICAgIHZsZTMyLnYgdjEs MChhMikNCj4gICAgICAgICB2c2V0dmxpIGE3LHplcm8sZTMyLG0xLHRhLG1h DQo+ICAgICAgICAgc3ViICAgICBhMCxhMCxhNQ0KPiAgICAgICAgIHZhZGQu dnYgdjEsdjEsdjINCj4gICAgICAgICB2c2V0dmxpIHplcm8sYTUsZTMyLG0x LHRhLG1hDQo+ICAgICAgICAgdnNlMzIudiB2MSwwKGEzKQ0KPiAgICAgICAg IGFkZCAgICAgYTIsYTIsYTQNCj4gICAgICAgICBhZGQgICAgIGEzLGEzLGE0 DQo+ICAgICAgICAgYWRkICAgICBhMSxhMSxhNA0KPiAgICAgICAgIGJuZSAg ICAgYTAsemVybywuTDQNCj4gLkw2Og0KPiAgICAgICAgIHJldA0KPiANCj4g QWZ0ZXIgdGhpcyBwYXRjaDoNCj4gDQo+IHZ2YWRkaW50MzI6DQo+ICAgICB2 c2V0dmxpIHQwLCBhMCwgZTMyLCB0YSwgbWEgICMgU2V0IHZlY3RvciBsZW5n dGggYmFzZWQgb24gMzItYml0IHZlY3RvcnMNCj4gICAgIHZsZTMyLnYgdjAs IChhMSkgICAgICAgICAjIEdldCBmaXJzdCB2ZWN0b3INCj4gICAgICAgc3Vi IGEwLCBhMCwgdDAgICAgICAgICAjIERlY3JlbWVudCBudW1iZXIgZG9uZQ0K PiAgICAgICBzbGxpIHQwLCB0MCwgMiAgICAgICAgICMgTXVsdGlwbHkgbnVt YmVyIGRvbmUgYnkgNCBieXRlcw0KPiAgICAgICBhZGQgYTEsIGExLCB0MCAg ICAgICAgICMgQnVtcCBwb2ludGVyDQo+ICAgICB2bGUzMi52IHYxLCAoYTIp ICAgICAgICAgIyBHZXQgc2Vjb25kIHZlY3Rvcg0KPiAgICAgICBhZGQgYTIs IGEyLCB0MCAgICAgICAgICMgQnVtcCBwb2ludGVyDQo+ICAgICB2YWRkLnZ2 IHYyLCB2MCwgdjEgICAgICAgIyBTdW0gdmVjdG9ycw0KPiAgICAgdnNlMzIu diB2MiwgKGEzKSAgICAgICAgICMgU3RvcmUgcmVzdWx0DQo+ICAgICAgIGFk ZCBhMywgYTMsIHQwICAgICAgICAgIyBCdW1wIHBvaW50ZXINCj4gICAgICAg Ym5leiBhMCwgdnZhZGRpbnQzMiAgICAjIExvb3AgYmFjaw0KPiAgICAgICBy ZXQgICAgICAgICAgICAgICAgICAgICMgRmluaXNoZWQNCiANCk9LLg0KIA0K VGhhbmtzLA0KUmljaGFyZC4NCiANCj4gZ2NjL0NoYW5nZUxvZzoNCj4gDQo+ ICAgICAgICAgKiBkb2MvbWQudGV4aTogQWRkIFNFTEVDVF9WTCBzdXBwb3J0 Lg0KPiAgICAgICAgICogaW50ZXJuYWwtZm4uZGVmIChTRUxFQ1RfVkwpOiBE aXR0by4NCj4gICAgICAgICAqIG9wdGFicy5kZWYgKE9QVEFCX0QpOiBEaXR0 by4NCj4gICAgICAgICAqIHRyZWUtdmVjdC1sb29wLW1hbmlwLmNjICh2ZWN0 X3NldF9sb29wX2NvbnRyb2xzX2RpcmVjdGx5KTogRGl0dG8uDQo+ICAgICAg ICAgKiB0cmVlLXZlY3QtbG9vcC5jYyAoX2xvb3BfdmVjX2luZm86Ol9sb29w X3ZlY19pbmZvKTogRGl0dG8uDQo+ICAgICAgICAgKiB0cmVlLXZlY3Qtc3Rt dHMuY2MgKGdldF9zZWxlY3RfdmxfZGF0YV9yZWZfcHRyKTogRGl0dG8uDQo+ ICAgICAgICAgKHZlY3Rvcml6YWJsZV9zdG9yZSk6IERpdHRvLg0KPiAgICAg ICAgICh2ZWN0b3JpemFibGVfbG9hZCk6IERpdHRvLg0KPiAgICAgICAgICog dHJlZS12ZWN0b3JpemVyLmggKExPT1BfVklORk9fVVNJTkdfU0VMRUNUX1ZM X1ApOiBEaXR0by4NCj4gDQo+IC0tLQ0KPiAgZ2NjL2RvYy9tZC50ZXhpICAg ICAgICAgICAgIHwgMjIgKysrKysrKysrKysrDQo+ICBnY2MvaW50ZXJuYWwt Zm4uZGVmICAgICAgICAgfCAgMSArDQo+ICBnY2Mvb3B0YWJzLmRlZiAgICAg ICAgICAgICAgfCAgMSArDQo+ICBnY2MvdHJlZS12ZWN0LWxvb3AtbWFuaXAu Y2MgfCAzMiArKysrKysrKysrKystLS0tLQ0KPiAgZ2NjL3RyZWUtdmVjdC1s b29wLmNjICAgICAgIHwgNzIgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKw0KPiAgZ2NjL3RyZWUtdmVjdC1zdG10cy5jYyAgICAgIHwg NjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0NCj4gIGdj Yy90cmVlLXZlY3Rvcml6ZXIuaCAgICAgICB8ICA2ICsrKysNCj4gIDcgZmls ZXMgY2hhbmdlZCwgMTg3IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygt KQ0KPiANCj4gZGlmZiAtLWdpdCBhL2djYy9kb2MvbWQudGV4aSBiL2djYy9k b2MvbWQudGV4aQ0KPiBpbmRleCA2YTQzNWViNDQ2MS4uOTVmN2ZlMWY4MDIg MTAwNjQ0DQo+IC0tLSBhL2djYy9kb2MvbWQudGV4aQ0KPiArKysgYi9nY2Mv ZG9jL21kLnRleGkNCj4gQEAgLTQ5NzQsNiArNDk3NCwyOCBAQCBmb3IgKGkg PSAxOyBpIDwgb3BlcmFuZDM7IGkrKykNCj4gICAgb3BlcmFuZDBbaV0gPSBv cGVyYW5kMFtpIC0gMV0gJiYgKG9wZXJhbmQxICsgaSA8IG9wZXJhbmQyKTsN Cj4gIEBlbmQgc21hbGxleGFtcGxlDQo+ICANCj4gK0BjaW5kZXggQGNvZGV7 c2VsZWN0X3ZsQHZhcnttfX0gaW5zdHJ1Y3Rpb24gcGF0dGVybg0KPiArQGl0 ZW0gQGNvZGV7c2VsZWN0X3ZsQHZhcnttfX0NCj4gK1NldCBvcGVyYW5kIDAg dG8gdGhlIG51bWJlciBvZiBzY2FsYXIgaXRlcmF0aW9ucyB0aGF0IHNob3Vs ZCBiZSBoYW5kbGVkDQo+ICtieSBvbmUgaXRlcmF0aW9uIG9mIGEgdmVjdG9y IGxvb3AuICBPcGVyYW5kIDEgaXMgdGhlIHRvdGFsIG51bWJlciBvZg0KPiAr c2NhbGFyIGl0ZXJhdGlvbnMgdGhhdCB0aGUgbG9vcCBuZWVkcyB0byBwcm9j ZXNzIGFuZCBvcGVyYW5kIDIgaXMgYQ0KPiArbWF4aW11bSBib3VuZCBvbiB0 aGUgcmVzdWx0IChhbHNvIGtub3duIGFzIHRoZSBtYXhpbXVtIGBgdmVjdG9y aXphdGlvbg0KPiArZmFjdG9yJycpLg0KPiArDQo+ICtUaGUgbWF4aW11bSB2 YWx1ZSBvZiBvcGVyYW5kIDAgaXMgZ2l2ZW4gYnk6DQo+ICtAc21hbGxleGFt cGxlDQo+ICtvcGVyYW5kMCA9IE1JTiAob3BlcmFuZDEsIG9wZXJhbmQyKQ0K PiArQGVuZCBzbWFsbGV4YW1wbGUNCj4gK0hvd2V2ZXIsIHRhcmdldHMgbWln aHQgY2hvb3NlIGEgbG93ZXIgdmFsdWUgdGhhbiB0aGlzLCBiYXNlZCBvbg0K PiArdGFyZ2V0LXNwZWNpZmljIGNyaXRlcmlhLiAgRWFjaCBpdGVyYXRpb24g b2YgdGhlIHZlY3RvciBsb29wIG1pZ2h0DQo+ICt0aGVyZWZvcmUgcHJvY2Vz cyBhIGRpZmZlcmVudCBudW1iZXIgb2Ygc2NhbGFyIGl0ZXJhdGlvbnMsIHdo aWNoIGluIHR1cm4NCj4gK21lYW5zIHRoYXQgaW5kdWN0aW9uIHZhcmlhYmxl cyB3aWxsIGhhdmUgYSB2YXJpYWJsZSBzdGVwLiAgQmVjYXVzZSBvZg0KPiAr dGhpcywgaXQgaXMgZ2VuZXJhbGx5IG5vdCB1c2VmdWwgdG8gZGVmaW5lIHRo aXMgaW5zdHJ1Y3Rpb24gaWYgaXQgd2lsbA0KPiArYWx3YXlzIGNhbGN1bGF0 ZSB0aGUgbWF4aW11bSB2YWx1ZS4NCj4gKw0KPiArVGhpcyBvcHRhYiBpcyBv bmx5IHVzZWZ1bCBvbiB0YXJnZXRzIHRoYXQgaW1wbGVtZW50IEBzYW1we2xl bl9sb2FkX0B2YXJ7bX19DQo+ICthbmQvb3IgQHNhbXB7bGVuX3N0b3JlX0B2 YXJ7bX19Lg0KPiArDQo+ICBAY2luZGV4IEBjb2Rle2NoZWNrX3Jhd19wdHJz QHZhcnttfX0gaW5zdHJ1Y3Rpb24gcGF0dGVybg0KPiAgQGl0ZW0gQHNhbXB7 Y2hlY2tfcmF3X3B0cnNAdmFye219fQ0KPiAgQ2hlY2sgd2hldGhlciwgZ2l2 ZW4gdHdvIHBvaW50ZXJzIEB2YXJ7YX0gYW5kIEB2YXJ7Yn0gYW5kIGEgbGVu Z3RoIEB2YXJ7bGVufSwNCj4gZGlmZiAtLWdpdCBhL2djYy9pbnRlcm5hbC1m bi5kZWYgYi9nY2MvaW50ZXJuYWwtZm4uZGVmDQo+IGluZGV4IDNhYzlkODJh YWNlLi41ZDYzOGRlNmQwNiAxMDA2NDQNCj4gLS0tIGEvZ2NjL2ludGVybmFs LWZuLmRlZg0KPiArKysgYi9nY2MvaW50ZXJuYWwtZm4uZGVmDQo+IEBAIC0x NzcsNiArMTc3LDcgQEAgREVGX0lOVEVSTkFMX09QVEFCX0ZOIChWRUNfU0VU LCAwLCB2ZWNfc2V0LCB2ZWNfc2V0KQ0KPiAgREVGX0lOVEVSTkFMX09QVEFC X0ZOIChMRU5fU1RPUkUsIDAsIGxlbl9zdG9yZSwgbGVuX3N0b3JlKQ0KPiAg DQo+ICBERUZfSU5URVJOQUxfT1BUQUJfRk4gKFdISUxFX1VMVCwgRUNGX0NP TlNUIHwgRUNGX05PVEhST1csIHdoaWxlX3VsdCwgd2hpbGUpDQo+ICtERUZf SU5URVJOQUxfT1BUQUJfRk4gKFNFTEVDVF9WTCwgRUNGX0NPTlNUIHwgRUNG X05PVEhST1csIHNlbGVjdF92bCwgYmluYXJ5KQ0KPiAgREVGX0lOVEVSTkFM X09QVEFCX0ZOIChDSEVDS19SQVdfUFRSUywgRUNGX0NPTlNUIHwgRUNGX05P VEhST1csDQo+ICAgICAgICAgY2hlY2tfcmF3X3B0cnMsIGNoZWNrX3B0cnMp DQo+ICBERUZfSU5URVJOQUxfT1BUQUJfRk4gKENIRUNLX1dBUl9QVFJTLCBF Q0ZfQ09OU1QgfCBFQ0ZfTk9USFJPVywNCj4gZGlmZiAtLWdpdCBhL2djYy9v cHRhYnMuZGVmIGIvZ2NjL29wdGFicy5kZWYNCj4gaW5kZXggNmMwNjRmZjQ5 OTMuLmYzMWI2OWM1ZDg1IDEwMDY0NA0KPiAtLS0gYS9nY2Mvb3B0YWJzLmRl Zg0KPiArKysgYi9nY2Mvb3B0YWJzLmRlZg0KPiBAQCAtNDg4LDMgKzQ4OCw0 IEBAIE9QVEFCX0RDICh2ZWNfc2VyaWVzX29wdGFiLCAidmVjX3NlcmllcyRh IiwgVkVDX1NFUklFUykNCj4gIE9QVEFCX0QgKHZlY19zaGxfaW5zZXJ0X29w dGFiLCAidmVjX3NobF9pbnNlcnRfJGEiKQ0KPiAgT1BUQUJfRCAobGVuX2xv YWRfb3B0YWIsICJsZW5fbG9hZF8kYSIpDQo+ICBPUFRBQl9EIChsZW5fc3Rv cmVfb3B0YWIsICJsZW5fc3RvcmVfJGEiKQ0KPiArT1BUQUJfRCAoc2VsZWN0 X3ZsX29wdGFiLCAic2VsZWN0X3ZsJGEiKQ0KPiBkaWZmIC0tZ2l0IGEvZ2Nj L3RyZWUtdmVjdC1sb29wLW1hbmlwLmNjIGIvZ2NjL3RyZWUtdmVjdC1sb29w LW1hbmlwLmNjDQo+IGluZGV4IDNmNzM1OTQ1ZTY3Li4xYzgxMDBjMWExYyAx MDA2NDQNCj4gLS0tIGEvZ2NjL3RyZWUtdmVjdC1sb29wLW1hbmlwLmNjDQo+ ICsrKyBiL2djYy90cmVlLXZlY3QtbG9vcC1tYW5pcC5jYw0KPiBAQCAtNTM0 LDcgKzUzNCw3IEBAIHZlY3Rfc2V0X2xvb3BfY29udHJvbHNfZGlyZWN0bHkg KGNsYXNzIGxvb3AgKmxvb3AsIGxvb3BfdmVjX2luZm8gbG9vcF92aW5mbywN Cj4gICAgIF8xMCA9ICh1bnNpZ25lZCBsb25nKSBjb3VudF8xMihEKTsNCj4g ICAgIC4uLg0KPiAgICAgIyBpdnRtcF85ID0gUEhJIDxpdnRtcF8zNSg2KSwg XzEwKDUpPg0KPiAtICAgIF8zNiA9IE1JTl9FWFBSIDxpdnRtcF85LCBQT0xZ X0lOVF9DU1QgWzQsIDRdPjsNCj4gKyAgICBfMzYgPSAoTUlOX0VYUFIgfCBT RUxFQ1RfVkwpIDxpdnRtcF85LCBQT0xZX0lOVF9DU1QgWzQsIDRdPjsNCj4g ICAgIC4uLg0KPiAgICAgdmVjdF9fNC44XzI4ID0gLkxFTl9MT0FEIChfMTcs IDMyQiwgXzM2LCAwKTsNCj4gICAgIC4uLg0KPiBAQCAtNTQ5LDE1ICs1NDks MjggQEAgdmVjdF9zZXRfbG9vcF9jb250cm9sc19kaXJlY3RseSAoY2xhc3Mg bG9vcCAqbG9vcCwgbG9vcF92ZWNfaW5mbyBsb29wX3ZpbmZvLA0KPiAgICAg ICAgdHJlZSBzdGVwID0gcmdjLT5jb250cm9scy5sZW5ndGggKCkgPT0gMSA/ IHJnYy0+Y29udHJvbHNbMF0NCj4gICAgICAgICA6IG1ha2Vfc3NhX25hbWUg KGl2X3R5cGUpOw0KPiAgICAgICAgLyogQ3JlYXRlIGRlY3JlbWVudCBJVi4g ICovDQo+IC0gICAgICBjcmVhdGVfaXYgKG5pdGVtc190b3RhbCwgTUlOVVNf RVhQUiwgbml0ZW1zX3N0ZXAsIE5VTExfVFJFRSwgbG9vcCwNCj4gLSAmaW5j cl9nc2ksIGluc2VydF9hZnRlciwgJmluZGV4X2JlZm9yZV9pbmNyLA0KPiAt ICZpbmRleF9hZnRlcl9pbmNyKTsNCj4gLSAgICAgIGdpbXBsZV9zZXFfYWRk X3N0bXQgKGhlYWRlcl9zZXEsIGdpbXBsZV9idWlsZF9hc3NpZ24gKHN0ZXAs IE1JTl9FWFBSLA0KPiAtICAgICBpbmRleF9iZWZvcmVfaW5jciwNCj4gLSAg ICAgbml0ZW1zX3N0ZXApKTsNCj4gKyAgICAgIGlmIChMT09QX1ZJTkZPX1VT SU5HX1NFTEVDVF9WTF9QIChsb29wX3ZpbmZvKSkNCj4gKyB7DQo+ICsgICBj cmVhdGVfaXYgKG5pdGVtc190b3RhbCwgTUlOVVNfRVhQUiwgc3RlcCwgTlVM TF9UUkVFLCBsb29wLCAmaW5jcl9nc2ksDQo+ICsgICAgICBpbnNlcnRfYWZ0 ZXIsICZpbmRleF9iZWZvcmVfaW5jciwgJmluZGV4X2FmdGVyX2luY3IpOw0K PiArICAgdHJlZSBsZW4gPSBnaW1wbGVfYnVpbGQgKGhlYWRlcl9zZXEsIElG Tl9TRUxFQ1RfVkwsIGl2X3R5cGUsDQo+ICsgICAgaW5kZXhfYmVmb3JlX2lu Y3IsIG5pdGVtc19zdGVwKTsNCj4gKyAgIGdpbXBsZV9zZXFfYWRkX3N0bXQg KGhlYWRlcl9zZXEsIGdpbXBsZV9idWlsZF9hc3NpZ24gKHN0ZXAsIGxlbikp Ow0KPiArIH0NCj4gKyAgICAgIGVsc2UNCj4gKyB7DQo+ICsgICBjcmVhdGVf aXYgKG5pdGVtc190b3RhbCwgTUlOVVNfRVhQUiwgbml0ZW1zX3N0ZXAsIE5V TExfVFJFRSwgbG9vcCwNCj4gKyAgICAgICZpbmNyX2dzaSwgaW5zZXJ0X2Fm dGVyLCAmaW5kZXhfYmVmb3JlX2luY3IsDQo+ICsgICAgICAmaW5kZXhfYWZ0 ZXJfaW5jcik7DQo+ICsgICBnaW1wbGVfc2VxX2FkZF9zdG10IChoZWFkZXJf c2VxLA0KPiArICAgICAgICBnaW1wbGVfYnVpbGRfYXNzaWduIChzdGVwLCBN SU5fRVhQUiwNCj4gKyAgICAgaW5kZXhfYmVmb3JlX2luY3IsDQo+ICsgICAg IG5pdGVtc19zdGVwKSk7DQo+ICsgfQ0KPiAgICAgICAgKml2X3N0ZXAgPSBz dGVwOw0KPiAgICAgICAgKmNvbXBhcmVfc3RlcCA9IG5pdGVtc19zdGVwOw0K PiAtICAgICAgcmV0dXJuIGluZGV4X2JlZm9yZV9pbmNyOw0KPiArICAgICAg cmV0dXJuIExPT1BfVklORk9fVVNJTkdfU0VMRUNUX1ZMX1AgKGxvb3Bfdmlu Zm8pID8gaW5kZXhfYWZ0ZXJfaW5jcg0KPiArICAgICAgICA6IGluZGV4X2Jl Zm9yZV9pbmNyOw0KPiAgICAgIH0NCj4gIA0KPiAgICAvKiBDcmVhdGUgaW5j cmVtZW50IElWLiAgKi8NCj4gQEAgLTg4OCw3ICs5MDEsOCBAQCB2ZWN0X3Nl dF9sb29wX2NvbmRpdGlvbl9wYXJ0aWFsX3ZlY3RvcnMgKGNsYXNzIGxvb3Ag Kmxvb3AsDQo+ICAgIC8qIEdldCBhIGJvb2xlYW4gcmVzdWx0IHRoYXQgdGVs bHMgdXMgd2hldGhlciB0byBpdGVyYXRlLiAgKi8NCj4gICAgZWRnZSBleGl0 X2VkZ2UgPSBzaW5nbGVfZXhpdCAobG9vcCk7DQo+ICAgIGdjb25kICpjb25k X3N0bXQ7DQo+IC0gIGlmIChMT09QX1ZJTkZPX1VTSU5HX0RFQ1JFTUVOVElO R19JVl9QIChsb29wX3ZpbmZvKSkNCj4gKyAgaWYgKExPT1BfVklORk9fVVNJ TkdfREVDUkVNRU5USU5HX0lWX1AgKGxvb3BfdmluZm8pDQo+ICsgICAgICAm JiAhTE9PUF9WSU5GT19VU0lOR19TRUxFQ1RfVkxfUCAobG9vcF92aW5mbykp DQo+ICAgICAgew0KPiAgICAgICAgZ2NjX2Fzc2VydCAoY29tcGFyZV9zdGVw KTsNCj4gICAgICAgIHRyZWVfY29kZSBjb2RlID0gKGV4aXRfZWRnZS0+Zmxh Z3MgJiBFREdFX1RSVUVfVkFMVUUpID8gTEVfRVhQUiA6IEdUX0VYUFI7DQo+ IGRpZmYgLS1naXQgYS9nY2MvdHJlZS12ZWN0LWxvb3AuY2MgYi9nY2MvdHJl ZS12ZWN0LWxvb3AuY2MNCj4gaW5kZXggNWI3YTBkYTAwMzQuLmFjZTllNzU5 ZjViIDEwMDY0NA0KPiAtLS0gYS9nY2MvdHJlZS12ZWN0LWxvb3AuY2MNCj4g KysrIGIvZ2NjL3RyZWUtdmVjdC1sb29wLmNjDQo+IEBAIC05NzQsNiArOTc0 LDcgQEAgX2xvb3BfdmVjX2luZm86Ol9sb29wX3ZlY19pbmZvIChjbGFzcyBs b29wICpsb29wX2luLCB2ZWNfaW5mb19zaGFyZWQgKnNoYXJlZCkNCj4gICAg ICBjYW5fdXNlX3BhcnRpYWxfdmVjdG9yc19wIChwYXJhbV92ZWN0X3BhcnRp YWxfdmVjdG9yX3VzYWdlICE9IDApLA0KPiAgICAgIHVzaW5nX3BhcnRpYWxf dmVjdG9yc19wIChmYWxzZSksDQo+ICAgICAgdXNpbmdfZGVjcmVtZW50aW5n X2l2X3AgKGZhbHNlKSwNCj4gKyAgICB1c2luZ19zZWxlY3RfdmxfcCAoZmFs c2UpLA0KPiAgICAgIGVwaWxfdXNpbmdfcGFydGlhbF92ZWN0b3JzX3AgKGZh bHNlKSwNCj4gICAgICBwYXJ0aWFsX2xvYWRfc3RvcmVfYmlhcyAoMCksDQo+ ICAgICAgcGVlbGluZ19mb3JfZ2FwcyAoZmFsc2UpLA0KPiBAQCAtMjczNyw2 ICsyNzM4LDc3IEBAIHN0YXJ0X292ZXI6DQo+ICBMT09QX1ZJTkZPX1ZFQ1Rf RkFDVE9SIChsb29wX3ZpbmZvKSkpKQ0KPiAgICAgIExPT1BfVklORk9fVVNJ TkdfREVDUkVNRU5USU5HX0lWX1AgKGxvb3BfdmluZm8pID0gdHJ1ZTsNCj4g IA0KPiArICAvKiBJZiBhIGxvb3AgdXNlcyBsZW5ndGggY29udHJvbHMgYW5k IGhhcyBhIGRlY3JlbWVudGluZyBsb29wIGNvbnRyb2wgSVYsDQo+ICsgICAg IHdlIHdpbGwgbm9ybWFsbHkgcGFzcyB0aGF0IElWIHRocm91Z2ggYSBNSU5f RVhQUiB0byBjYWxjYWx1YXRlIHRoZQ0KPiArICAgICBiYXNpcyBmb3IgdGhl IGxlbmd0aCBjb250cm9scy4gIEUuZy4gaW4gYSBsb29wIHRoYXQgcHJvY2Vz c2VzIG9uZQ0KPiArICAgICBlbGVtZW50IHBlciBzY2FsYXIgaXRlcmF0aW9u LCB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIHdvdWxkIGJlDQo+ICsgICAgIE1J Tl9FWFBSIDxOLCBWRj4sIHdoZXJlIE4gaXMgdGhlIG51bWJlciBvZiBzY2Fs YXIgaXRlcmF0aW9ucyBsZWZ0Lg0KPiArDQo+ICsgICAgIFRoaXMgTUlOX0VY UFIgYXBwcm9hY2ggYWxsb3dzIHVzIHRvIHVzZSBwb2ludGVyIElWcyB3aXRo IGFuIGludmFyaWFudA0KPiArICAgICBzdGVwLCBzaW5jZSBvbmx5IHRoZSBm aW5hbCBpdGVyYXRpb24gb2YgdGhlIHZlY3RvciBsb29wIGNhbiBoYXZlDQo+ ICsgICAgIGluYWN0aXZlIGxhbmVzLg0KPiArDQo+ICsgICAgIEhvd2V2ZXIs IHNvbWUgdGFyZ2V0cyBoYXZlIGEgZGVkaWNhdGVkIGluc3RydWN0aW9uIGZv ciBjYWxjdWxhdGluZyB0aGUNCj4gKyAgICAgcHJlZmVycmVkIGxlbmd0aCwg Z2l2ZW4gdGhlIHRvdGFsIG51bWJlciBvZiBlbGVtZW50cyB0aGF0IHN0aWxs IG5lZWQgdG8NCj4gKyAgICAgYmUgcHJvY2Vzc2VkLiAgVGhpcyBpcyBlbmNh cHN1bGF0ZWQgaW4gdGhlIFNFTEVDVF9WTCBpbnRlcm5hbCBmdW5jdGlvbi4N Cj4gKw0KPiArICAgICBJZiB0aGUgdGFyZ2V0IHN1cHBvcnRzIFNFTEVDVF9W TCwgd2UgY2FuIHVzZSBpdCBpbnN0ZWFkIG9mIE1JTl9FWFBSDQo+ICsgICAg IHRvIGRldGVybWluZSB0aGUgYmFzaXMgZm9yIHRoZSBsZW5ndGggY29udHJv bHMuICBIb3dldmVyLCB1bmxpa2UgdGhlDQo+ICsgICAgIE1JTl9FWFBSIGNh bGN1bGF0aW9uLCB0aGUgU0VMRUNUX1ZMIGNhbGN1bGF0aW9uIGNhbiBkZWNp ZGUgdG8gbWFrZQ0KPiArICAgICBsYW5lcyBpbmFjdGl2ZSBpbiBhbnkgaXRl cmF0aW9uIG9mIHRoZSB2ZWN0b3IgbG9vcCwgbm90IGp1c3QgdGhlIGxhc3QN Cj4gKyAgICAgaXRlcmF0aW9uLiAgVGhpcyBTRUxFQ1RfVkwgYXBwcm9hY2gg dGhlcmVmb3JlIHJlcXVpcmVzIHVzIHRvIHVzZSBwb2ludGVyDQo+ICsgICAg IElWcyB3aXRoIHZhcmlhYmxlIHN0ZXBzLg0KPiArDQo+ICsgICAgIE9uY2Ug d2UndmUgZGVjaWRlZCBob3cgbWFueSBlbGVtZW50cyBzaG91bGQgYmUgcHJv Y2Vzc2VkIGJ5IG9uZQ0KPiArICAgICBpdGVyYXRpb24gb2YgdGhlIHZlY3Rv ciBsb29wLCB3ZSBuZWVkIHRvIHBvcHVsYXRlIHRoZSByZ3JvdXAgY29udHJv bHMuDQo+ICsgICAgIElmIGEgbG9vcCBoYXMgbXVsdGlwbGUgcmdyb3Vwcywg d2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aG9zZSByZ3JvdXBzDQo+ICsg ICAgICJsaW5lIHVwIiAodGhhdCBpcywgdGhleSBtdXN0IGJlIGNvbnNpc3Rl bnQgYWJvdXQgd2hpY2ggZWxlbWVudHMgYXJlDQo+ICsgICAgIGFjdGl2ZSBh bmQgd2hpY2ggYXJlbid0KS4gIFRoaXMgaXMgZG9uZSBieSB2ZWN0X2FkanVz dF9sb29wX2xlbnNfY29udHJvbC4NCj4gKw0KPiArICAgICBJbiBwcmluY2lw bGUsIGl0IHdvdWxkIGJlIHBvc3NpYmxlIHRvIHVzZSB2ZWN0X2FkanVzdF9s b29wX2xlbnNfY29udHJvbA0KPiArICAgICBvbiBlaXRoZXIgdGhlIHJlc3Vs dCBvZiBhIE1JTl9FWFBSIG9yIHRoZSByZXN1bHQgb2YgYSBTRUxFQ1RfVkwu DQo+ICsgICAgIEhvd2V2ZXI6DQo+ICsNCj4gKyAgICAgKDEpIEluIHByYWN0 aWNlLCBpdCBvbmx5IG1ha2VzIHNlbnNlIHRvIHVzZSBTRUxFQ1RfVkwgd2hl biBhIHZlY3Rvcg0KPiArIG9wZXJhdGlvbiB3aWxsIGJlIGNvbnRyb2xsZWQg ZGlyZWN0bHkgYnkgdGhlIHJlc3VsdC4gIEl0IGlzIG5vdA0KPiArIHdvcnRo IHVzaW5nIFNFTEVDVF9WTCBpZiBpdCB3b3VsZCBvbmx5IGJlIHRoZSBpbnB1 dCB0byBvdGhlcg0KPiArIGNhbGN1bGF0aW9ucy4NCj4gKw0KPiArICAgICAo MikgSWYgd2UgdXNlIFNFTEVDVF9WTCBmb3IgYW4gcmdyb3VwIHRoYXQgaGFz IE4gY29udHJvbHMsIGVhY2ggYXNzb2NpYXRlZA0KPiArIHBvaW50ZXIgSVYg d2lsbCBuZWVkIE4gdXBkYXRlcyBieSBhIHZhcmlhYmxlIGFtb3VudCAoTi0x IHVwZGF0ZXMNCj4gKyB3aXRoaW4gdGhlIGl0ZXJhdGlvbiBhbmQgMSB1cGRh dGUgdG8gbW92ZSB0byB0aGUgbmV4dCBpdGVyYXRpb24pLg0KPiArDQo+ICsg ICAgIEJlY2F1c2Ugb2YgdGhpcywgd2UgcHJlZmVyIHRvIHVzZSB0aGUgTUlO X0VYUFIgYXBwcm9hY2ggd2hlbmV2ZXIgdGhlcmUNCj4gKyAgICAgaXMgbW9y ZSB0aGFuIG9uZSBsZW5ndGggY29udHJvbC4NCj4gKw0KPiArICAgICBJbiBh ZGRpdGlvbiwgU0VMRUNUX1ZMIGFsd2F5cyBvcGVyYXRlcyB0byBhIGdyYW51 bGFyaXR5IG9mIDEgdW5pdC4NCj4gKyAgICAgSWYgd2Ugd2FudGVkIHRvIHVz ZSBpdCB0byBjb250cm9sIGFuIFNMUCBvcGVyYXRpb24gb24gTiBjb25zZWN1 dGl2ZQ0KPiArICAgICBlbGVtZW50cywgd2Ugd291bGQgbmVlZCB0byBtYWtl IHRoZSBTRUxFQ1RfVkwgaW5wdXRzIG1lYXN1cmUgc2NhbGFyDQo+ICsgICAg IGl0ZXJhdGlvbnMgKHJhdGhlciB0aGFuIGVsZW1lbnRzKSBhbmQgdGhlbiBt dWx0aXBseSB0aGUgU0VMRUNUX1ZMDQo+ICsgICAgIHJlc3VsdCBieSBOLiAg QnV0IHVzaW5nIFNFTEVDVF9WTCB0aGlzIHdheSBpcyBpbmVmZmljaWVudCBi ZWNhdXNlDQo+ICsgICAgIG9mICgxKSBhYm92ZS4NCj4gKw0KPiArICAgICAy LiBXZSBkb24ndCBhcHBseSBTRUxFQ1RfVkwgb24gc2luZ2xlLXJncm91cCB3 aGVuIGJvdGggKDEpIGFuZCAoMikgYXJlDQo+ICsgc2F0aXNmaWVkOg0KPiAr DQo+ICsgICAgICgxKS4gTE9PUF9WSU5GT19OSVRFUlNfS05PV05fUCAobG9v cF92aW5mbykgaXMgdHJ1ZS4NCj4gKyAgICAgKDIpLiBMT09QX1ZJTkZPX1ZF Q1RfRkFDVE9SIChsb29wX3ZpbmZvKS5pc19jb25zdGFudCAoKSBpcyB0cnVl Lg0KPiArDQo+ICsgICAgIFNpbmNlIFNFTEVDVF9WTCAodmFyaWFibGUgc3Rl cCkgd2lsbCBtYWtlIFNDRVYgYW5hbHlzaXMgZmFpbGVkIGFuZCB0aGVuDQo+ ICsgICAgIHdlIHdpbGwgZmFpbCB0byBnYWluIGJlbmVmaXRzIG9mIGZvbGxv d2luZyB1bnJvbGwgb3B0aW1pemF0aW9ucy4gV2UgcHJlZmVyDQo+ICsgICAg IHVzaW5nIHRoZSBNSU5fRVhQUiBhcHByb2FjaCBpbiB0aGlzIHNpdHVhdGlv bi4gICovDQo+ICsgIGlmIChMT09QX1ZJTkZPX1VTSU5HX0RFQ1JFTUVOVElO R19JVl9QIChsb29wX3ZpbmZvKSkNCj4gKyAgICB7DQo+ICsgICAgICB0cmVl IGl2X3R5cGUgPSBMT09QX1ZJTkZPX1JHUk9VUF9JVl9UWVBFIChsb29wX3Zp bmZvKTsNCj4gKyAgICAgIGlmIChkaXJlY3RfaW50ZXJuYWxfZm5fc3VwcG9y dGVkX3AgKElGTl9TRUxFQ1RfVkwsIGl2X3R5cGUsDQo+ICsgICBPUFRJTUla RV9GT1JfU1BFRUQpDQo+ICsgICAmJiBMT09QX1ZJTkZPX0xFTlMgKGxvb3Bf dmluZm8pLmxlbmd0aCAoKSA9PSAxDQo+ICsgICAmJiBMT09QX1ZJTkZPX0xF TlMgKGxvb3BfdmluZm8pWzBdLmZhY3RvciA9PSAxICYmICFzbHANCj4gKyAg ICYmICghTE9PUF9WSU5GT19OSVRFUlNfS05PV05fUCAobG9vcF92aW5mbykN Cj4gKyAgICAgICB8fCAhTE9PUF9WSU5GT19WRUNUX0ZBQ1RPUiAobG9vcF92 aW5mbykuaXNfY29uc3RhbnQgKCkpKQ0KPiArIExPT1BfVklORk9fVVNJTkdf U0VMRUNUX1ZMX1AgKGxvb3BfdmluZm8pID0gdHJ1ZTsNCj4gKyAgICB9DQo+ ICsNCj4gICAgLyogSWYgd2UncmUgdmVjdG9yaXppbmcgYW4gZXBpbG9ndWUg bG9vcCwgdGhlIHZlY3Rvcml6ZWQgbG9vcCBlaXRoZXIgbmVlZHMNCj4gICAg ICAgdG8gYmUgYWJsZSB0byBoYW5kbGUgZmV3ZXIgdGhhbiBWRiBzY2FsYXJz LCBvciBuZWVkcyB0byBoYXZlIGEgbG93ZXIgVkYNCj4gICAgICAgdGhhbiB0 aGUgbWFpbiBsb29wLiAgKi8NCj4gZGlmZiAtLWdpdCBhL2djYy90cmVlLXZl Y3Qtc3RtdHMuY2MgYi9nY2MvdHJlZS12ZWN0LXN0bXRzLmNjDQo+IGluZGV4 IGM3ZTRlNzFkM2M1Li5hN2FjYzAzMmQ0NyAxMDA2NDQNCj4gLS0tIGEvZ2Nj L3RyZWUtdmVjdC1zdG10cy5jYw0KPiArKysgYi9nY2MvdHJlZS12ZWN0LXN0 bXRzLmNjDQo+IEBAIC0zMTI4LDE5ICszMTI4LDcyIEBAIHZlY3RfZ2V0X3N0 cmlkZWRfbG9hZF9zdG9yZV9vcHMgKHN0bXRfdmVjX2luZm8gc3RtdF9pbmZv LA0KPiAgICAqdmVjX29mZnNldCA9IGNzZV9hbmRfZ2ltcGxpZnlfdG9fcHJl aGVhZGVyIChsb29wX3ZpbmZvLCBvZmZzZXQpOw0KPiAgfQ0KPiAgDQo+ICsv KiBQcmVwYXJlIHRoZSBwb2ludGVyIElWcyB3aGljaCBuZWVkcyB0byBiZSB1 cGRhdGVkIGJ5IGEgdmFyaWFibGUgYW1vdW50Lg0KPiArICAgU3VjaCB2YXJp YWJsZSBhbW91bnQgaXMgdGhlIG91dGNvbWUgb2YgLlNFTEVDVF9WTC4gSW4g dGhpcyBjYXNlLCB3ZSBjYW4NCj4gKyAgIGFsbG93IGVhY2ggaXRlcmF0aW9u IHByb2Nlc3MgdGhlIGZsZXhpYmxlIG51bWJlciBvZiBlbGVtZW50cyBhcyBs b25nIGFzDQo+ICsgICB0aGUgbnVtYmVyIDw9IHZmIGVsbWVudHMuDQo+ICsN Cj4gKyAgIFJldHVybiBkYXRhIHJlZmVyZW5jZSBhY2NvcmRpbmcgdG8gU0VM RUNUX1ZMLg0KPiArICAgSWYgbmV3IHN0YXRlbWVudHMgYXJlIG5lZWRlZCwg aW5zZXJ0IHRoZW0gYmVmb3JlIEdTSS4gICovDQo+ICsNCj4gK3N0YXRpYyB0 cmVlDQo+ICt2ZWN0X2dldF9sb29wX3ZhcmlhbnRfZGF0YV9wdHJfaW5jcmVt ZW50ICgNCj4gKyAgdmVjX2luZm8gKnZpbmZvLCB0cmVlIGFnZ3JfdHlwZSwg Z2ltcGxlX3N0bXRfaXRlcmF0b3IgKmdzaSwNCj4gKyAgdmVjX2xvb3BfbGVu cyAqbG9vcF9sZW5zLCBkcl92ZWNfaW5mbyAqZHJfaW5mbywNCj4gKyAgdmVj dF9tZW1vcnlfYWNjZXNzX3R5cGUgbWVtb3J5X2FjY2Vzc190eXBlKQ0KPiAr ew0KPiArICBsb29wX3ZlY19pbmZvIGxvb3BfdmluZm8gPSBkeW5fY2FzdDxs b29wX3ZlY19pbmZvPiAodmluZm8pOw0KPiArICB0cmVlIHN0ZXAgPSB2ZWN0 X2RyX2JlaGF2aW9yICh2aW5mbywgZHJfaW5mbyktPnN0ZXA7DQo+ICsNCj4g KyAgLyogVE9ETzogV2UgZG9uJ3Qgc3VwcG9ydCBnYXRoZXIvc2NhdHRlciBv ciBsb2FkX2xhbmVzL3N0b3JlX2xhbmVzIGZvciBwb2ludGVyDQo+ICsgICAg IElWcyBhcmUgdXBkYXRlZCBieSB2YXJpYWJsZSBhbW91bnQgYnV0IHdlIHdp bGwgc3VwcG9ydCB0aGVtIGluIHRoZSBmdXR1cmUuDQo+ICsgICAqLw0KPiAr ICBnY2NfYXNzZXJ0IChtZW1vcnlfYWNjZXNzX3R5cGUgIT0gVk1BVF9HQVRI RVJfU0NBVFRFUg0KPiArICAgICAgICYmIG1lbW9yeV9hY2Nlc3NfdHlwZSAh PSBWTUFUX0xPQURfU1RPUkVfTEFORVMpOw0KPiArDQo+ICsgIC8qIFdoZW4g d2Ugc3VwcG9ydCBTRUxFQ1RfVkwgcGF0dGVybiwgd2UgZHluYW1pYyBhZGp1 c3QNCj4gKyAgICAgdGhlIG1lbW9yeSBhZGRyZXNzIGJ5IC5TRUxFQ1RfVkwg cmVzdWx0Lg0KPiArDQo+ICsgICAgIFRoZSByZXN1bHQgb2YgLlNFTEVDVF9W TCBpcyB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIHRvDQo+ICsgICAgIGJlIHBy b2Nlc3NlZCBvZiBlYWNoIGl0ZXJhdGlvbi4gU28gdGhlIG1lbW9yeSBhZGRy ZXNzDQo+ICsgICAgIGFkanVzdG1lbnQgb3BlcmF0aW9uIHNob3VsZCBiZToN Cj4gKw0KPiArICAgICBhZGRyID0gYWRkciArIC5TRUxFQ1RfVkwgKEFSRy4u KSAqIHN0ZXA7DQo+ICsgICovDQo+ICsgIHRyZWUgbG9vcF9sZW4NCj4gKyAg ICA9IHZlY3RfZ2V0X2xvb3BfbGVuIChsb29wX3ZpbmZvLCBnc2ksIGxvb3Bf bGVucywgMSwgYWdncl90eXBlLCAwLCAwKTsNCj4gKyAgdHJlZSBsZW5fdHlw ZSA9IFRSRUVfVFlQRSAobG9vcF9sZW4pOw0KPiArICAvKiBTaW5jZSB0aGUg b3V0Y29tZSBvZiAuU0VMRUNUX1ZMIGlzIGVsZW1lbnQgc2l6ZSwgd2Ugc2hv dWxkIGFkanVzdA0KPiArICAgICBpdCBpbnRvIGJ5dGVzaXplIHNvIHRoYXQg aXQgY2FuIGJlIHVzZWQgaW4gYWRkcmVzcyBwb2ludGVyIHZhcmlhYmxlDQo+ ICsgICAgIGFtb3VudCBJVnMgYWRqdXN0bWVudC4gICovDQo+ICsgIHRyZWUg dG1wID0gZm9sZF9idWlsZDIgKE1VTFRfRVhQUiwgbGVuX3R5cGUsIGxvb3Bf bGVuLA0KPiArICAgd2lkZV9pbnRfdG9fdHJlZSAobGVuX3R5cGUsIHdpOjp0 b193aWRlc3QgKHN0ZXApKSk7DQo+ICsgIHRyZWUgYnVtcCA9IG1ha2VfdGVt cF9zc2FfbmFtZSAobGVuX3R5cGUsIE5VTEwsICJpdnRtcCIpOw0KPiArICBn YXNzaWduICphc3NpZ24gPSBnaW1wbGVfYnVpbGRfYXNzaWduIChidW1wLCB0 bXApOw0KPiArICBnc2lfaW5zZXJ0X2JlZm9yZSAoZ3NpLCBhc3NpZ24sIEdT SV9TQU1FX1NUTVQpOw0KPiArICByZXR1cm4gYnVtcDsNCj4gK30NCj4gKw0K PiAgLyogUmV0dXJuIHRoZSBhbW91bnQgdGhhdCBzaG91bGQgYmUgYWRkZWQg dG8gYSB2ZWN0b3IgcG9pbnRlciB0byBtb3ZlDQo+ICAgICB0byB0aGUgbmV4 dCBvciBwcmV2aW91cyBjb3B5IG9mIEFHR1JfVFlQRS4gIERSX0lORk8gaXMg dGhlIGRhdGEgcmVmZXJlbmNlDQo+ICAgICBiZWluZyB2ZWN0b3JpemVkIGFu ZCBNRU1PUllfQUNDRVNTX1RZUEUgZGVzY3JpYmVzIHRoZSB0eXBlIG9mDQo+ ICAgICB2ZWN0b3JpemF0aW9uLiAgKi8NCj4gIA0KPiAgc3RhdGljIHRyZWUN Cj4gLXZlY3RfZ2V0X2RhdGFfcHRyX2luY3JlbWVudCAodmVjX2luZm8gKnZp bmZvLA0KPiArdmVjdF9nZXRfZGF0YV9wdHJfaW5jcmVtZW50ICh2ZWNfaW5m byAqdmluZm8sIGdpbXBsZV9zdG10X2l0ZXJhdG9yICpnc2ksDQo+ICAgICAg IGRyX3ZlY19pbmZvICpkcl9pbmZvLCB0cmVlIGFnZ3JfdHlwZSwNCj4gLSAg ICAgIHZlY3RfbWVtb3J5X2FjY2Vzc190eXBlIG1lbW9yeV9hY2Nlc3NfdHlw ZSkNCj4gKyAgICAgIHZlY3RfbWVtb3J5X2FjY2Vzc190eXBlIG1lbW9yeV9h Y2Nlc3NfdHlwZSwNCj4gKyAgICAgIHZlY19sb29wX2xlbnMgKmxvb3BfbGVu cyA9IG51bGxwdHIpDQo+ICB7DQo+ICAgIGlmIChtZW1vcnlfYWNjZXNzX3R5 cGUgPT0gVk1BVF9JTlZBUklBTlQpDQo+ICAgICAgcmV0dXJuIHNpemVfemVy b19ub2RlOw0KPiAgDQo+ICsgIGxvb3BfdmVjX2luZm8gbG9vcF92aW5mbyA9 IGR5bl9jYXN0PGxvb3BfdmVjX2luZm8+ICh2aW5mbyk7DQo+ICsgIGlmIChs b29wX3ZpbmZvICYmIExPT1BfVklORk9fVVNJTkdfU0VMRUNUX1ZMX1AgKGxv b3BfdmluZm8pKQ0KPiArICAgIHJldHVybiB2ZWN0X2dldF9sb29wX3Zhcmlh bnRfZGF0YV9wdHJfaW5jcmVtZW50ICh2aW5mbywgYWdncl90eXBlLCBnc2ks DQo+ICsgICAgICBsb29wX2xlbnMsIGRyX2luZm8sDQo+ICsgICAgICBtZW1v cnlfYWNjZXNzX3R5cGUpOw0KPiArDQo+ICAgIHRyZWUgaXZfc3RlcCA9IFRZ UEVfU0laRV9VTklUIChhZ2dyX3R5cGUpOw0KPiAgICB0cmVlIHN0ZXAgPSB2 ZWN0X2RyX2JlaGF2aW9yICh2aW5mbywgZHJfaW5mbyktPnN0ZXA7DQo+ICAg IGlmICh0cmVlX2ludF9jc3Rfc2duIChzdGVwKSA9PSAtMSkNCj4gQEAgLTc2 MjksNyArNzY4Miw3IEBAIHZlY3Rvcml6YWJsZV9zY2FuX3N0b3JlICh2ZWNf aW5mbyAqdmluZm8sDQo+ICAgIHRyZWUgdmVjX29wcm5kMyA9IE5VTExfVFJF RTsNCj4gICAgdHJlZSBkYXRhcmVmX3B0ciA9IERSX0JBU0VfQUREUkVTUyAo ZHJfaW5mby0+ZHIpOw0KPiAgICB0cmVlIGRhdGFyZWZfb2Zmc2V0ID0gYnVp bGRfaW50X2NzdCAocmVmX3R5cGUsIDApOw0KPiAtICB0cmVlIGJ1bXAgPSB2 ZWN0X2dldF9kYXRhX3B0cl9pbmNyZW1lbnQgKHZpbmZvLCBkcl9pbmZvLA0K PiArICB0cmVlIGJ1bXAgPSB2ZWN0X2dldF9kYXRhX3B0cl9pbmNyZW1lbnQg KHZpbmZvLCBnc2ksIGRyX2luZm8sDQo+ICAgICB2ZWN0eXBlLCBWTUFUX0NP TlRJR1VPVVMpOw0KPiAgICB0cmVlIGxkYXRhcmVmX3B0ciA9IE5VTExfVFJF RTsNCj4gICAgdHJlZSBvcmlnID0gTlVMTF9UUkVFOw0KPiBAQCAtODUzOSw4 ICs4NTkyLDggQEAgdmVjdG9yaXphYmxlX3N0b3JlICh2ZWNfaW5mbyAqdmlu Zm8sDQo+ICBhZ2dyX3R5cGUgPSBidWlsZF9hcnJheV90eXBlX25lbHRzIChl bGVtX3R5cGUsIHZlY19udW0gKiBudW5pdHMpOw0KPiAgICAgICAgZWxzZQ0K PiAgYWdncl90eXBlID0gdmVjdHlwZTsNCj4gLSAgICAgIGJ1bXAgPSB2ZWN0 X2dldF9kYXRhX3B0cl9pbmNyZW1lbnQgKHZpbmZvLCBkcl9pbmZvLCBhZ2dy X3R5cGUsDQo+IC0gICBtZW1vcnlfYWNjZXNzX3R5cGUpOw0KPiArICAgICAg YnVtcCA9IHZlY3RfZ2V0X2RhdGFfcHRyX2luY3JlbWVudCAodmluZm8sIGdz aSwgZHJfaW5mbywgYWdncl90eXBlLA0KPiArICAgbWVtb3J5X2FjY2Vzc190 eXBlLCBsb29wX2xlbnMpOw0KPiAgICAgIH0NCj4gIA0KPiAgICBpZiAobWFz aykNCj4gQEAgLTg2NjMsNiArODcxNiw3IEBAIHZlY3Rvcml6YWJsZV9zdG9y ZSAodmVjX2luZm8gKnZpbmZvLA0KPiAgfQ0KPiAgICAgICAgZWxzZQ0KPiAg ew0KPiArICAgZ2NjX2Fzc2VydCAoIUxPT1BfVklORk9fVVNJTkdfU0VMRUNU X1ZMX1AgKGxvb3BfdmluZm8pKTsgIA0KPiAgICAvKiBGb3IgaW50ZXJsZWF2 ZWQgc3RvcmVzIHdlIGNyZWF0ZWQgdmVjdG9yaXplZCBkZWZzIGZvciBhbGwg dGhlDQo+ICAgICAgIGRlZnMgc3RvcmVkIGluIE9QUk5EUyBpbiB0aGUgcHJl dmlvdXMgaXRlcmF0aW9uIChwcmV2aW91cyBjb3B5KS4NCj4gICAgICAgRFJf Q0hBSU4gaXMgdGhlbiB1c2VkIGFzIGFuIGlucHV0IHRvIHZlY3RfcGVybXV0 ZV9zdG9yZV9jaGFpbigpLg0KPiBAQCAtOTk3NSw4ICsxMDAyOSw4IEBAIHZl Y3Rvcml6YWJsZV9sb2FkICh2ZWNfaW5mbyAqdmluZm8sDQo+ICBhZ2dyX3R5 cGUgPSBidWlsZF9hcnJheV90eXBlX25lbHRzIChlbGVtX3R5cGUsIHZlY19u dW0gKiBudW5pdHMpOw0KPiAgICAgICAgZWxzZQ0KPiAgYWdncl90eXBlID0g dmVjdHlwZTsNCj4gLSAgICAgIGJ1bXAgPSB2ZWN0X2dldF9kYXRhX3B0cl9p bmNyZW1lbnQgKHZpbmZvLCBkcl9pbmZvLCBhZ2dyX3R5cGUsDQo+IC0gICBt ZW1vcnlfYWNjZXNzX3R5cGUpOw0KPiArICAgICAgYnVtcCA9IHZlY3RfZ2V0 X2RhdGFfcHRyX2luY3JlbWVudCAodmluZm8sIGdzaSwgZHJfaW5mbywgYWdn cl90eXBlLA0KPiArICAgbWVtb3J5X2FjY2Vzc190eXBlLCBsb29wX2xlbnMp Ow0KPiAgICAgIH0NCj4gIA0KPiAgICBhdXRvX3ZlYzx0cmVlPiB2ZWNfb2Zm c2V0czsNCj4gQEAgLTEwMDU2LDYgKzEwMTEwLDcgQEAgdmVjdG9yaXphYmxl X2xvYWQgKHZlY19pbmZvICp2aW5mbywNCj4gIH0NCj4gICAgICAgIGVsc2UN Cj4gIHsNCj4gKyAgIGdjY19hc3NlcnQgKCFMT09QX1ZJTkZPX1VTSU5HX1NF TEVDVF9WTF9QIChsb29wX3ZpbmZvKSk7DQo+ICAgIGlmIChkYXRhcmVmX29m ZnNldCkNCj4gICAgICBkYXRhcmVmX29mZnNldCA9IGludF9jb25zdF9iaW5v cCAoUExVU19FWFBSLCBkYXRhcmVmX29mZnNldCwNCj4gICAgICAgIGJ1bXAp Ow0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtdmVjdG9yaXplci5oIGIvZ2Nj L3RyZWUtdmVjdG9yaXplci5oDQo+IGluZGV4IDFlNDRmODU0MmQ3Li5hZjI1 ZDIwYmQ3ZSAxMDA2NDQNCj4gLS0tIGEvZ2NjL3RyZWUtdmVjdG9yaXplci5o DQo+ICsrKyBiL2djYy90cmVlLXZlY3Rvcml6ZXIuaA0KPiBAQCAtODI1LDYg KzgyNSwxMSBAQCBwdWJsaWM6DQo+ICAoYikgY2FuIGl0ZXJhdGUgbW9yZSB0 aGFuIG9uY2UuICAqLw0KPiAgICBib29sIHVzaW5nX2RlY3JlbWVudGluZ19p dl9wOw0KPiAgDQo+ICsgIC8qIFRydWUgaWYgd2UndmUgZGVjaWRlZCB0byB1 c2Ugb3V0cHV0IG9mIHNlbGVjdF92bCB0byBhZGp1c3QgSVYgb2YNCj4gKyAg ICAgYm90aCBsb29wIGNvbnRyb2wgYW5kIGRhdGEgcmVmZXJlbmNlIHBvaW50 ZXIuIFRoaXMgaXMgb25seSB0cnVlDQo+ICsgICAgIGZvciBzaW5nbGUtcmdy b3VwIGNvbnRyb2wuICAqLw0KPiArICBib29sIHVzaW5nX3NlbGVjdF92bF9w Ow0KPiArDQo+ICAgIC8qIFRydWUgaWYgd2UndmUgZGVjaWRlZCB0byB1c2Ug cGFydGlhbGx5LXBvcHVsYXRlZCB2ZWN0b3JzIGZvciB0aGUNCj4gICAgICAg ZXBpbG9ndWUgb2YgbG9vcC4gICovDQo+ICAgIGJvb2wgZXBpbF91c2luZ19w YXJ0aWFsX3ZlY3RvcnNfcDsNCj4gQEAgLTg5OCw2ICs5MDMsNyBAQCBwdWJs aWM6DQo+ICAjZGVmaW5lIExPT1BfVklORk9fQ0FOX1VTRV9QQVJUSUFMX1ZF Q1RPUlNfUChMKSAoTCktPmNhbl91c2VfcGFydGlhbF92ZWN0b3JzX3ANCj4g ICNkZWZpbmUgTE9PUF9WSU5GT19VU0lOR19QQVJUSUFMX1ZFQ1RPUlNfUChM KSAoTCktPnVzaW5nX3BhcnRpYWxfdmVjdG9yc19wDQo+ICAjZGVmaW5lIExP T1BfVklORk9fVVNJTkdfREVDUkVNRU5USU5HX0lWX1AoTCkgKEwpLT51c2lu Z19kZWNyZW1lbnRpbmdfaXZfcA0KPiArI2RlZmluZSBMT09QX1ZJTkZPX1VT SU5HX1NFTEVDVF9WTF9QKEwpIChMKS0+dXNpbmdfc2VsZWN0X3ZsX3ANCj4g ICNkZWZpbmUgTE9PUF9WSU5GT19FUElMX1VTSU5HX1BBUlRJQUxfVkVDVE9S U19QKEwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICAgIChM KS0+ZXBpbF91c2luZ19wYXJ0aWFsX3ZlY3RvcnNfcA0KPiAgI2RlZmluZSBM T09QX1ZJTkZPX1BBUlRJQUxfTE9BRF9TVE9SRV9CSUFTKEwpIChMKS0+cGFy dGlhbF9sb2FkX3N0b3JlX2JpYXMNCj4gDQogDQotLSANClJpY2hhcmQgQmll bmVyIDxyZ3VlbnRoZXJAc3VzZS5kZT4NClNVU0UgU29mdHdhcmUgU29sdXRp b25zIEdlcm1hbnkgR21iSCwgRnJhbmtlbnN0cmFzc2UgMTQ2LCA5MDQ2MSBO dWVybmJlcmcsDQpHZXJtYW55OyBHRjogSXZvIFRvdGV2LCBBbmRyZXcgTXll cnMsIEFuZHJldyBNY0RvbmFsZCwgQm91ZGllbiBNb2VybWFuOw0KSFJCIDM2 ODA5IChBRyBOdWVybmJlcmcpDQogDQo= ------=_001_NextPart447527466505_=------