From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgbr2.qq.com (smtpbgbr2.qq.com [54.207.22.56]) by sourceware.org (Postfix) with ESMTPS id 530183858D37 for ; Mon, 10 Oct 2022 11:14:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 530183858D37 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: bizesmtp76t1665400435t8f34ys0 Received: from LAPTOP-EPITNQBU ( [58.60.1.3]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 10 Oct 2022 19:13:54 +0800 (CST) X-QQ-SSF: 00400000000000D0J000000A0000000 X-QQ-FEAT: nJwtIv29TY626omA5+tcOrZsoFaAmrMOmOBmuGvV+ceG6vFJwJvOKXoGrVtBX +sdNSGwiJlh2hCMCSjLBnytMFW6mKsPazVQfO8sLV4HTrq5VCmjYLhQ9Q86XNBFcA9zkUP8 QbJAxmeD0MxLbMgR/+qQossiyyvTCCta0eos8AUto/LwT+5pRhiWi3i1R020LxqMOQ4fbQE 8Urh23LaFUEUQ21ep/EfrF7U9U0Op6fjReRPmNIcIgwcYclhd9ILYF5Sp82lE/d/72oGISP TQacoho8sNrbV9la85RUbhl5TjrbRQrrxQLceVFFNzIvE437a0Q7zkp2puZkKnJB+zXwOwl 4hZ5m8wyXCo2v3ycBamQnaOLJnr9DkZ1Woy7/tt999BOgIBfNSKwY5dHwNGTvOzyurJTmdd BNSntUto9l8= X-QQ-GoodBg: 2 Date: Mon, 10 Oct 2022 19:13:52 +0800 From: "juzhe.zhong@rivai.ai" To: rguenther , gcc-patches Cc: richard.sandiford , ams Subject: Re: [PATCH][RFT] Vectorization of first-order recurrences References: <20221010110339.E9E2513479@imap2.suse-dmz.suse.de> X-Priority: 3 X-GUID: 5098D70B-7EA8-4693-941C-FEA5C697060D X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <2A8DBDBA7D0C3C78+2022101019135219267133@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart474253133376_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvr:qybglogicsvr7 X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP 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_NextPart474253133376_=---- Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmsgeW91IHNvIG11Y2guIEkgd2lsbCBhcHBseSB0aGlzIHBhdGNoIGFu ZCB0ZXN0IGl0IGluIGRvd25zdHJlYW0gUlZWIEdDQyDvvIgxMi4yLjApDQoN Cg0KanV6aGUuemhvbmdAcml2YWkuYWkNCiANCkZyb206IFJpY2hhcmQgQmll bmVyDQpEYXRlOiAyMDIyLTEwLTEwIDE5OjAzDQpUbzogZ2NjLXBhdGNoZXMN CkNDOiByaWNoYXJkLnNhbmRpZm9yZDsgYW1zOyBqdXpoZS56aG9uZw0KU3Vi amVjdDogW1BBVENIXVtSRlRdIFZlY3Rvcml6YXRpb24gb2YgZmlyc3Qtb3Jk ZXIgcmVjdXJyZW5jZXMNClRoZSBmb2xsb3dpbmcgcGlja3MgdXAgdGhlIHBy b3RvdHlwZSBieSBKdS1aaGUgWmhvbmcgZm9yIHZlY3Rvcml6aW5nDQpmaXJz dCBvcmRlciByZWN1cnJlbmNlcy4gIFRoYXQgc29sdmVzIHR3byBUU1ZDIG1p c3NlZCBvcHRpbWl6YXRpb24gUFJzLg0KIA0KVGhlcmUncyBhIG5ldyBzY2Fs YXIgY3ljbGUgZGVmIGtpbmQsIHZlY3RfZmlyc3Rfb3JkZXJfcmVjdXJyZW5j ZQ0KYW5kIGl0J3MgaGFuZGxpbmcgb2YgdGhlIGJhY2tlZGdlIHZhbHVlIHZl Y3Rvcml6YXRpb24gaXMgY29tcGxpY2F0ZWQNCmJ5IHRoZSBmYWN0IHRoYXQg dGhlIHZlY3Rvcml6ZWQgdmFsdWUgaXNuJ3QgdGhlIFBISSBidXQgaW5zdGVh ZA0KYSAoc2VyaWVzIG9mKSBwZXJtdXRlKHMpIHNoaWZ0aW5nIGluIHRoZSBy ZWN1cnJpbmcgdmFsdWUgZnJvbSB0aGUNCnByZXZpb3VzIGl0ZXJhdGlvbi4g IEkndmUgaW1wbGVtZW50ZWQgdGhpcyBieSBjcmVhdGluZyBib3RoIHRoZQ0K c2luZ2xlIHZlY3Rvcml6ZWQgUEhJIGFuZCB0aGUgc2VyaWVzIG9mIHBlcm11 dGVzIHdoZW4gdmVjdG9yaXppbmcNCnRoZSBzY2FsYXIgUEhJIGJ1dCBsZWF2 ZSB0aGUgYmFja2VkZ2UgdmFsdWVzIGluIGJvdGggdW5hc3NpZ25lZC4NClRo ZSBiYWNrZWRnZSB2YWx1ZXMgYXJlIChmb3IgdGhlIHRlc3RjYXNlcykgY29t cHV0ZWQgYnkgYSBsb2FkDQp3aGljaCBpcyBhbHNvIHRoZSBwbGFjZSBhZnRl ciB3aGljaCB0aGUgcGVybXV0ZXMgYXJlIGluc2VydGVkLg0KVGhhdCBwbGFj ZW1lbnQgYWxzbyByZXN0cmljdHMgdGhlIGNhc2VzIHdlIGNhbiBoYW5kbGUg KHdpdGhvdXQNCnJlc29ydGluZyB0byBjb2RlIG1vdGlvbikuDQogDQpJIGFk ZGVkIGJvdGggY29zdGluZyBhbmQgU0xQIGhhbmRsaW5nIHRob3VnaCBTTFAg aGFuZGxpbmcgaXMNCnJlc3RyaWN0ZWQgdG8gdGhlIGNhc2Ugd2hlcmUgYSBz aW5nbGUgdmVjdG9yaXplZCBQSEkgaXMgZW5vdWdoLg0KIA0KTWlzc2luZyBp cyBlcGlsb2d1ZSBoYW5kbGluZyAtIHdoaWxlIHByb2xvZ3VlIHBlZWxpbmcg d291bGQNCmJlIGhhbmRsZWQgdHJhbnNwYXJlbnRseSBieSBhZGp1c3Rpbmcg aXZfcGhpX3AgdGhlIGVwaWxvZ3VlDQpjYXNlIGRvZXNuJ3Qgd29yayB3aXRo IGp1c3QgaW5zZXJ0aW5nIGEgc2NhbGFyIExDIFBISSBzaW5jZQ0KdGhhdCBh KSBrZWVwcyB0aGUgc2NhbGFyIGxvYWQgbGl2ZSBhbmQgYikgdGhhdCBsb2Fk cyBpcyB0aGUNCndyb25nIG9uZSwgaXQgaGFzIHRvIGJlIHRoZSBsYXN0LCBt dWNoIGxpa2Ugd2hlbiB3ZSdkIHZlY3Rvcml6ZQ0KdGhlIExDIFBISSBhcyBs aXZlIG9wZXJhdGlvbi4gIFVuZm9ydHVuYXRlbHkgTElWRQ0KY29tcHV0ZS9h bmFseXNpcyBoYXBwZW5zIHRvbyBlYXJseSBiZWZvcmUgd2UgZGVjaWRlIG9u DQpwZWVsaW5nLiAgV2hlbiB1c2luZyBmdWxseSBtYXNrZWQgbG9vcCB2ZWN0 b3JpemF0aW9uIHRoZQ0KdmVjdC1yZWN1cnItNi5jIHdvcmtzIGFzIGV4cGVj dGVkIHRob3VnaC4NCiANCkkgaGF2ZSB0ZXN0ZWQgdGhpcyBvbiB4ODZfNjQg Zm9yIG5vdywgYnV0IHNpbmNlIGVwaWxvZ3VlDQpoYW5kbGluZyBpcyBtaXNz aW5nIHRoZXJlJ3MgcHJvYmFibHkgbm8gcHJhY3RpY2FsIGNhc2VzLg0KTXkg cHJvdG90eXBlIFdISUxFX1VMVCBBVlg1MTIgcGF0Y2ggY2FuIGhhbmRsZSB2 ZWN0LXJlY3Vyci02LmMNCmp1c3QgZmluZSBidXQgSSBkaWRuJ3QgZmVlbCBs aWtlIHJ1bm5pbmcgU1BFQyB3aXRoaW4gU0RFIG5vcg0KaXMgdGhlIFdISUxF X1VMVCBwYXRjaCBjb21wbGV0ZSBlbm91Z2guICBCdWlsZHMgb2YgU1BFQyAy azcNCndpdGggZnVsbHkgbWFza2VkIGxvb3BzIHN1Y2NlZWQgKG1pbnVzIHRo cmVlIGNhc2VzIG9mDQpQUjEwNzA5NiwgY2F1c2VkIGJ5IG15IFdISUxFX1VM VCBwcm90b3R5cGUpLg0KIA0KQm9vdHN0cmFwcGVkIGFuZCB0ZXN0ZWQgb24g eDg2XzY0LXVua25vd24tbGludXgtZ251Lg0KIA0KVGVzdGluZyB3aXRoIFNW RSwgR0NOIG9yIFJWViBhcHByZWNpYXRlZCwgaWRlYXMgaG93IHRvIGNsZWFu bHkNCmhhbmRsZSBlcGlsb2d1ZXMgd2VsY29tZS4NCiANClRoYW5rcywNClJp Y2hhcmQuDQogDQpQUiB0cmVlLW9wdGltaXphdGlvbi85OTQwOQ0KUFIgdHJl ZS1vcHRpbWl6YXRpb24vOTkzOTQNCiogdHJlZS12ZWN0b3JpemVyLmggKHZl Y3RfZGVmX3R5cGU6OnZlY3RfZmlyc3Rfb3JkZXJfcmVjdXJyZW5jZSk6IEFk ZC4NCihzdG10X3ZlY19pbmZvX3R5cGU6OnJlY3Vycl9pbmZvX3R5cGUpOiBM aWtld2lzZS4NCih2ZWN0b3JpemFibGVfcmVjdXJyKTogTmV3IGZ1bmN0aW9u Lg0KKiB0cmVlLXZlY3QtbG9vcC5jYyAodmVjdF9waGlfZmlyc3Rfb3JkZXJf cmVjdXJyZW5jZV9wKTogTmV3DQpmdW5jdGlvbi4NCih2ZWN0X2FuYWx5emVf c2NhbGFyX2N5Y2xlc18xKTogTG9vayBmb3IgZmlyc3Qgb3JkZXINCnJlY3Vy cmVuY2VzLg0KKHZlY3RfYW5hbHl6ZV9sb29wX29wZXJhdGlvbnMpOiBIYW5k bGUgdGhlbS4NCih2ZWN0X3RyYW5zZm9ybV9sb29wKTogTGlrZXdpc2UuDQoo dmVjdG9yaXphYmxlX3JlY3Vycik6IE5ldyBmdW5jdGlvbi4NCihtYXliZV9z ZXRfdmVjdG9yaXplZF9iYWNrZWRnZV92YWx1ZSk6IEhhbmRsZSB0aGUgYmFj a2VkZ2UgdmFsdWUNCnNldHRpbmcgaW4gdGhlIGZpcnN0IG9yZGVyIHJlY3Vy cmVuY2UgUEhJIGFuZCB0aGUgcGVybXV0ZXMuDQoqIHRyZWUtdmVjdC1zdG10 cy5jYyAodmVjdF9hbmFseXplX3N0bXQpOiBIYW5kbGUgZmlyc3Qgb3JkZXIN CnJlY3VycmVuY2VzLg0KKHZlY3RfdHJhbnNmb3JtX3N0bXQpOiBMaWtld2lz ZS4NCih2ZWN0X2lzX3NpbXBsZV91c2UpOiBMaWtld2lzZS4NCih2ZWN0X2lz X3NpbXBsZV91c2UpOiBMaWtld2lzZS4NCiogdHJlZS12ZWN0LXNscC5jYyAo dmVjdF9nZXRfYW5kX2NoZWNrX3NscF9kZWZzKTogTGlrZXdpc2UuDQoodmVj dF9idWlsZF9zbHBfdHJlZV8yKTogTGlrZXdpc2UuDQoodmVjdF9zY2hlZHVs ZV9zY2MpOiBIYW5kbGUgdGhlIGJhY2tlZGdlIHZhbHVlIHNldHRpbmcgaW4g dGhlDQpmaXJzdCBvcmRlciByZWN1cnJlbmNlIFBISSBhbmQgdGhlIHBlcm11 dGVzLg0KIA0KKiBnY2MuZGcvdmVjdC92ZWN0LXJlY3Vyci0xLmM6IE5ldyB0 ZXN0Y2FzZS4NCiogZ2NjLmRnL3ZlY3QvdmVjdC1yZWN1cnItMi5jOiBMaWtl d2lzZS4NCiogZ2NjLmRnL3ZlY3QvdmVjdC1yZWN1cnItMy5jOiBMaWtld2lz ZS4NCiogZ2NjLmRnL3ZlY3QvdmVjdC1yZWN1cnItNC5jOiBMaWtld2lzZS4N CiogZ2NjLmRnL3ZlY3QvdmVjdC1yZWN1cnItNS5jOiBMaWtld2lzZS4NCiog Z2NjLmRnL3ZlY3QvdmVjdC1yZWN1cnItNi5jOiBMaWtld2lzZS4NCiogZ2Nj LmRnL3ZlY3QvdHN2Yy92ZWN0LXRzdmMtczI1Mi5jOiBVbi1YRkFJTC4NCiog Z2NjLmRnL3ZlY3QvdHN2Yy92ZWN0LXRzdmMtczI1NC5jOiBMaWtld2lzZS4N CiogZ2NjLmRnL3ZlY3QvdHN2Yy92ZWN0LXRzdmMtczI5MS5jOiBMaWtld2lz ZS4NCiANCkNvLWF1dGhvcmVkLWJ5OiBKdS1aaGUgWmhvbmcgPGp1emhlLnpo b25nQHJpdmFpLmFpPg0KLS0tDQouLi4vZ2NjLmRnL3ZlY3QvdHN2Yy92ZWN0 LXRzdmMtczI1Mi5jICAgICAgICAgfCAgIDIgKy0NCi4uLi9nY2MuZGcvdmVj dC90c3ZjL3ZlY3QtdHN2Yy1zMjU0LmMgICAgICAgICB8ICAgMiArLQ0KLi4u L2djYy5kZy92ZWN0L3RzdmMvdmVjdC10c3ZjLXMyOTEuYyAgICAgICAgIHwg ICAyICstDQpnY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtcmVjdXJy LTEuYyAgICAgfCAgMzggKysrDQpnY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0 L3ZlY3QtcmVjdXJyLTIuYyAgICAgfCAgMzkgKysrDQpnY2MvdGVzdHN1aXRl L2djYy5kZy92ZWN0L3ZlY3QtcmVjdXJyLTMuYyAgICAgfCAgMzkgKysrDQpn Y2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtcmVjdXJyLTQuYyAgICAg fCAgNDIgKysrDQpnY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtcmVj dXJyLTUuYyAgICAgfCAgNDMgKysrDQpnY2MvdGVzdHN1aXRlL2djYy5kZy92 ZWN0L3ZlY3QtcmVjdXJyLTYuYyAgICAgfCAgMzkgKysrDQpnY2MvdHJlZS12 ZWN0LWxvb3AuY2MgICAgICAgICAgICAgICAgICAgICAgICAgfCAyODYgKysr KysrKysrKysrKysrKy0tDQpnY2MvdHJlZS12ZWN0LXNscC5jYyAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgMzggKystDQpnY2MvdHJlZS12ZWN0LXN0 bXRzLmNjICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTcgKy0NCmdjYy90 cmVlLXZlY3Rvcml6ZXIuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg NCArDQoxMyBmaWxlcyBjaGFuZ2VkLCA1NjMgaW5zZXJ0aW9ucygrKSwgMjgg ZGVsZXRpb25zKC0pDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9nY2MuZGcvdmVjdC92ZWN0LXJlY3Vyci0xLmMNCmNyZWF0ZSBtb2RlIDEw MDY0NCBnY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtcmVjdXJyLTIu Yw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3Zl Y3QvdmVjdC1yZWN1cnItMy5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0LXJlY3Vyci00LmMNCmNyZWF0ZSBt b2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtcmVj dXJyLTUuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Nj LmRnL3ZlY3QvdmVjdC1yZWN1cnItNi5jDQogDQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC90c3ZjL3ZlY3QtdHN2Yy1zMjUyLmMg Yi9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3RzdmMvdmVjdC10c3ZjLXMy NTIuYw0KaW5kZXggZjEzMDJiNjBhZTUuLjgzZWFhN2E4ZmY1IDEwMDY0NA0K LS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC90c3ZjL3ZlY3QtdHN2 Yy1zMjUyLmMNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvdHN2 Yy92ZWN0LXRzdmMtczI1Mi5jDQpAQCAtNDAsNCArNDAsNCBAQCBpbnQgbWFp biAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KICAgcmV0dXJuIDA7DQp9DQot LyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJ2ZWN0b3JpemVkIDEg bG9vcHMiICJ2ZWN0IiB7IHhmYWlsICotKi0qIH0gfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJ2ZWN0b3JpemVkIDEgbG9vcHMi ICJ2ZWN0IiB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy5kZy92ZWN0L3RzdmMvdmVjdC10c3ZjLXMyNTQuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLmRnL3ZlY3QvdHN2Yy92ZWN0LXRzdmMtczI1NC5jDQppbmRleCBi ZGM4YTAxZTJhNS4uMDZlOWIwYTg0OWQgMTAwNjQ0DQotLS0gYS9nY2MvdGVz dHN1aXRlL2djYy5kZy92ZWN0L3RzdmMvdmVjdC10c3ZjLXMyNTQuYw0KKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC90c3ZjL3ZlY3QtdHN2Yy1z MjU0LmMNCkBAIC0zOSw0ICszOSw0IEBAIGludCBtYWluIChpbnQgYXJnYywg Y2hhciAqKmFyZ3YpDQogICByZXR1cm4gMDsNCn0NCi0vKiB7IGRnLWZpbmFs IHsgc2Nhbi10cmVlLWR1bXAgInZlY3Rvcml6ZWQgMSBsb29wcyIgInZlY3Qi IHsgeGZhaWwgKi0qLSogfSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi10cmVlLWR1bXAgInZlY3Rvcml6ZWQgMSBsb29wcyIgInZlY3QiIH0gfSAq Lw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvdHN2 Yy92ZWN0LXRzdmMtczI5MS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVj dC90c3ZjL3ZlY3QtdHN2Yy1zMjkxLmMNCmluZGV4IDBiNDc0YzJlODFhLi45 MWNkYzEyMTA5NSAxMDA2NDQNCi0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLmRn L3ZlY3QvdHN2Yy92ZWN0LXRzdmMtczI5MS5jDQorKysgYi9nY2MvdGVzdHN1 aXRlL2djYy5kZy92ZWN0L3RzdmMvdmVjdC10c3ZjLXMyOTEuYw0KQEAgLTM5 LDQgKzM5LDQgQEAgaW50IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikN CiAgIHJldHVybiAwOw0KfQ0KLS8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcCAidmVjdG9yaXplZCAxIGxvb3BzIiAidmVjdCIgeyB4ZmFpbCAqLSot KiB9IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAi dmVjdG9yaXplZCAxIGxvb3BzIiAidmVjdCIgfSB9ICovDQpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0LXJlY3Vyci0xLmMg Yi9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtcmVjdXJyLTEuYw0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi42ZWI1 OWZkZjg1NA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MuZGcvdmVjdC92ZWN0LXJlY3Vyci0xLmMNCkBAIC0wLDAgKzEsMzggQEAN CisvKiB7IGRnLWRvIHJ1biB9ICovDQorLyogeyBkZy1yZXF1aXJlLWVmZmVj dGl2ZS10YXJnZXQgdmVjdF9pbnQgfSAqLw0KKw0KKyNpbmNsdWRlICJ0cmVl LXZlY3QuaCINCisNCit2b2lkIF9fYXR0cmlidXRlX18oKG5vaXBhKSkNCitm b28gKGludCAqIF9fcmVzdHJpY3RfXyBhLCBpbnQgKiBfX3Jlc3RyaWN0X18g YiwgaW50ICogX19yZXN0cmljdF9fIGMpDQorew0KKyAgaW50IHQgPSAqYzsN CisgIGZvciAoaW50IGkgPSAwOyBpIDwgNjQ7ICsraSkNCisgICAgew0KKyAg ICAgIGJbaV0gPSBhW2ldIC0gdDsNCisgICAgICB0ID0gYVtpXTsNCisgICAg fQ0KK30NCisNCitpbnQgYVs2NF0sIGJbNjRdOw0KKw0KK2ludA0KK21haW4g KCkNCit7DQorICBjaGVja192ZWN0ICgpOw0KKyAgZm9yIChpbnQgaSA9IDA7 IGkgPCA2NDsgKytpKQ0KKyAgICB7DQorICAgICAgYVtpXSA9IGk7DQorICAg ICAgX19hc21fXyB2b2xhdGlsZSAoIiIgOjo6ICJtZW1vcnkiKTsNCisgICAg fQ0KKyAgaW50IGMgPSA3Ow0KKyAgZm9vIChhLCBiLCAmYyk7DQorICBmb3Ig KGludCBpID0gMTsgaSA8IDY0OyArK2kpDQorICAgIGlmIChiW2ldICE9IGFb aV0gLSBhW2ktMV0pDQorICAgICAgYWJvcnQgKCk7DQorICBpZiAoYlswXSAh PSAtNykNCisgICAgYWJvcnQgKCk7DQorICByZXR1cm4gMDsNCit9DQorDQor LyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJ2ZWN0b3JpemVkIDEg bG9vcHMgaW4gZnVuY3Rpb24iICJ2ZWN0IiB9IH0gKi8NCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtcmVjdXJyLTIuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvdmVjdC1yZWN1cnItMi5jDQpu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjk3ZWZh YWEzOGJjDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy5kZy92ZWN0L3ZlY3QtcmVjdXJyLTIuYw0KQEAgLTAsMCArMSwzOSBAQA0K Ky8qIHsgZGctZG8gcnVuIH0gKi8NCisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0 aXZlLXRhcmdldCB2ZWN0X2ludCB9ICovDQorDQorI2luY2x1ZGUgInRyZWUt dmVjdC5oIg0KKw0KK3ZvaWQgX19hdHRyaWJ1dGVfXygobm9pcGEpKQ0KK2Zv byAoaW50ICogX19yZXN0cmljdF9fIGEsIHNob3J0ICogX19yZXN0cmljdF9f IGIsIGludCAqIF9fcmVzdHJpY3RfXyBjKQ0KK3sNCisgIGludCB0ID0gKmM7 DQorICBmb3IgKGludCBpID0gMDsgaSA8IDY0OyArK2kpDQorICAgIHsNCisg ICAgICBiW2ldID0gYVtpXSAtIHQ7DQorICAgICAgdCA9IGFbaV07DQorICAg IH0NCit9DQorDQoraW50IGFbNjRdOw0KK3Nob3J0IGJbNjRdOw0KKw0KK2lu dA0KK21haW4gKCkNCit7DQorICBjaGVja192ZWN0ICgpOw0KKyAgZm9yIChp bnQgaSA9IDA7IGkgPCA2NDsgKytpKQ0KKyAgICB7DQorICAgICAgYVtpXSA9 IGk7DQorICAgICAgX19hc21fXyB2b2xhdGlsZSAoIiIgOjo6ICJtZW1vcnki KTsNCisgICAgfQ0KKyAgaW50IGMgPSA3Ow0KKyAgZm9vIChhLCBiLCAmYyk7 DQorICBmb3IgKGludCBpID0gMTsgaSA8IDY0OyArK2kpDQorICAgIGlmIChi W2ldICE9IGFbaV0gLSBhW2ktMV0pDQorICAgICAgYWJvcnQgKCk7DQorICBp ZiAoYlswXSAhPSAtNykNCisgICAgYWJvcnQgKCk7DQorICByZXR1cm4gMDsN Cit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJ2ZWN0 b3JpemVkIDEgbG9vcHMgaW4gZnVuY3Rpb24iICJ2ZWN0IiB9IH0gKi8NCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtcmVj dXJyLTMuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvdmVjdC1yZWN1 cnItMy5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAw MDAuLjYyMWE1ZDhhMjU3DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVz dHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtcmVjdXJyLTMuYw0KQEAgLTAsMCAr MSwzOSBAQA0KKy8qIHsgZGctZG8gcnVuIH0gKi8NCisvKiB7IGRnLXJlcXVp cmUtZWZmZWN0aXZlLXRhcmdldCB2ZWN0X2ludCB9ICovDQorDQorI2luY2x1 ZGUgInRyZWUtdmVjdC5oIg0KKw0KK3ZvaWQgX19hdHRyaWJ1dGVfXygobm9p cGEpKQ0KK2ZvbyAoaW50ICogX19yZXN0cmljdF9fIGEsIHNpZ25lZCBjaGFy ICogX19yZXN0cmljdF9fIGIsIGludCAqIF9fcmVzdHJpY3RfXyBjKQ0KK3sN CisgIGludCB0ID0gKmM7DQorICBmb3IgKGludCBpID0gMDsgaSA8IDY0OyAr K2kpDQorICAgIHsNCisgICAgICBiW2ldID0gYVtpXSAtIHQ7DQorICAgICAg dCA9IGFbaV07DQorICAgIH0NCit9DQorDQoraW50IGFbNjRdOw0KK3NpZ25l ZCBjaGFyIGJbNjRdOw0KKw0KK2ludA0KK21haW4gKCkNCit7DQorICBjaGVj a192ZWN0ICgpOw0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCA2NDsgKytpKQ0K KyAgICB7DQorICAgICAgYVtpXSA9IGk7DQorICAgICAgX19hc21fXyB2b2xh dGlsZSAoIiIgOjo6ICJtZW1vcnkiKTsNCisgICAgfQ0KKyAgaW50IGMgPSA3 Ow0KKyAgZm9vIChhLCBiLCAmYyk7DQorICBmb3IgKGludCBpID0gMTsgaSA8 IDY0OyArK2kpDQorICAgIGlmIChiW2ldICE9IGFbaV0gLSBhW2ktMV0pDQor ICAgICAgYWJvcnQgKCk7DQorICBpZiAoYlswXSAhPSAtNykNCisgICAgYWJv cnQgKCk7DQorICByZXR1cm4gMDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tdHJlZS1kdW1wICJ2ZWN0b3JpemVkIDEgbG9vcHMgaW4gZnVuY3Rp b24iICJ2ZWN0IiB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy5kZy92ZWN0L3ZlY3QtcmVjdXJyLTQuYyBiL2djYy90ZXN0c3VpdGUv Z2NjLmRnL3ZlY3QvdmVjdC1yZWN1cnItNC5jDQpuZXcgZmlsZSBtb2RlIDEw MDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLmY2ZGJjNDk0YTYyDQotLS0gL2Rl di9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3Qt cmVjdXJyLTQuYw0KQEAgLTAsMCArMSw0MiBAQA0KKy8qIHsgZGctZG8gcnVu IH0gKi8NCisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCB2ZWN0 X2ludCB9ICovDQorDQorI2luY2x1ZGUgInRyZWUtdmVjdC5oIg0KKw0KK3Zv aWQgX19hdHRyaWJ1dGVfXygobm9pcGEpKQ0KK2ZvbyAoaW50ICogX19yZXN0 cmljdF9fIGEsIGludCAqIF9fcmVzdHJpY3RfXyBiLCBpbnQgKiBfX3Jlc3Ry aWN0X18gYykNCit7DQorICBpbnQgdDEgPSAqYzsNCisgIGludCB0MiA9ICpj Ow0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCA2NDsgaSs9MikNCisgICAgew0K KyAgICAgIGJbaV0gPSBhW2ldIC0gdDE7DQorICAgICAgdDEgPSBhW2ldOw0K KyAgICAgIGJbaSsxXSA9IGFbaSsxXSAtIHQyOw0KKyAgICAgIHQyID0gYVtp KzFdOw0KKyAgICB9DQorfQ0KKw0KK2ludCBhWzY0XSwgYls2NF07DQorDQor aW50DQorbWFpbiAoKQ0KK3sNCisgIGNoZWNrX3ZlY3QgKCk7DQorICBmb3Ig KGludCBpID0gMDsgaSA8IDY0OyArK2kpDQorICAgIHsNCisgICAgICBhW2ld ID0gaTsNCisgICAgICBfX2FzbV9fIHZvbGF0aWxlICgiIiA6OjogIm1lbW9y eSIpOw0KKyAgICB9DQorICBpbnQgYyA9IDc7DQorICBmb28gKGEsIGIsICZj KTsNCisgIGZvciAoaW50IGkgPSAyOyBpIDwgNjQ7IGkrPTIpDQorICAgIGlm IChiW2ldICE9IGFbaV0gLSBhW2ktMl0NCisgfHwgYltpKzFdICE9IGFbaSsx XSAtIGFbaS0xXSkNCisgICAgICBhYm9ydCAoKTsNCisgIGlmIChiWzBdICE9 IC03IHx8IGJbMV0gIT0gLTYpDQorICAgIGFib3J0ICgpOw0KKyAgcmV0dXJu IDA7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAi dmVjdG9yaXplZCAxIGxvb3BzIGluIGZ1bmN0aW9uIiAidmVjdCIgfSB9ICov DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0 LXJlY3Vyci01LmMgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3Qt cmVjdXJyLTUuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAwLi4xOWM1NmRmOWU4Mw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0LXJlY3Vyci01LmMNCkBAIC0w LDAgKzEsNDMgQEANCisvKiB7IGRnLWRvIHJ1biB9ICovDQorLyogeyBkZy1y ZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgdmVjdF9pbnQgfSAqLw0KKw0KKyNp bmNsdWRlICJ0cmVlLXZlY3QuaCINCisNCit2b2lkIF9fYXR0cmlidXRlX18o KG5vaXBhKSkNCitmb28gKGludCAqIF9fcmVzdHJpY3RfXyBhLCBzaG9ydCAq IF9fcmVzdHJpY3RfXyBiLCBpbnQgKiBfX3Jlc3RyaWN0X18gYykNCit7DQor ICBpbnQgdDEgPSAqYzsNCisgIGludCB0MiA9ICpjOw0KKyAgZm9yIChpbnQg aSA9IDA7IGkgPCA2NDsgaSs9MikNCisgICAgew0KKyAgICAgIGJbaV0gPSBh W2ldIC0gdDE7DQorICAgICAgdDEgPSBhW2ldOw0KKyAgICAgIGJbaSsxXSA9 IGFbaSsxXSAtIHQyOw0KKyAgICAgIHQyID0gYVtpKzFdOw0KKyAgICB9DQor fQ0KKw0KK2ludCBhWzY0XTsNCitzaG9ydCBiWzY0XTsNCisNCitpbnQNCitt YWluICgpDQorew0KKyAgY2hlY2tfdmVjdCAoKTsNCisgIGZvciAoaW50IGkg PSAwOyBpIDwgNjQ7ICsraSkNCisgICAgew0KKyAgICAgIGFbaV0gPSBpOw0K KyAgICAgIF9fYXNtX18gdm9sYXRpbGUgKCIiIDo6OiAibWVtb3J5Iik7DQor ICAgIH0NCisgIGludCBjID0gNzsNCisgIGZvbyAoYSwgYiwgJmMpOw0KKyAg Zm9yIChpbnQgaSA9IDI7IGkgPCA2NDsgaSs9MikNCisgICAgaWYgKGJbaV0g IT0gYVtpXSAtIGFbaS0yXQ0KKyB8fCBiW2krMV0gIT0gYVtpKzFdIC0gYVtp LTFdKQ0KKyAgICAgIGFib3J0ICgpOw0KKyAgaWYgKGJbMF0gIT0gLTcgfHwg YlsxXSAhPSAtNikNCisgICAgYWJvcnQgKCk7DQorICByZXR1cm4gMDsNCit9 DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJ2ZWN0b3Jp emVkIDEgbG9vcHMgaW4gZnVuY3Rpb24iICJ2ZWN0IiB9IH0gKi8NCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtcmVjdXJy LTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvdmVjdC1yZWN1cnIt Ni5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAu LmU3NzEyNjgwODUzDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1 aXRlL2djYy5kZy92ZWN0L3ZlY3QtcmVjdXJyLTYuYw0KQEAgLTAsMCArMSwz OSBAQA0KKy8qIHsgZGctZG8gcnVuIH0gKi8NCisvKiB7IGRnLXJlcXVpcmUt ZWZmZWN0aXZlLXRhcmdldCB2ZWN0X2ludCB9ICovDQorDQorI2luY2x1ZGUg InRyZWUtdmVjdC5oIg0KKw0KK3ZvaWQgX19hdHRyaWJ1dGVfXygobm9pcGEp KQ0KK2ZvbyAoaW50ICogX19yZXN0cmljdF9fIGEsIGludCAqIF9fcmVzdHJp Y3RfXyBiLCBpbnQgKiBfX3Jlc3RyaWN0X18gYywgaW50IG4pDQorew0KKyAg aW50IHQgPSAqYzsNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKQ0K KyAgICB7DQorICAgICAgYltpXSA9IGFbaV0gLSB0Ow0KKyAgICAgIHQgPSBh W2ldOw0KKyAgICB9DQorfQ0KKw0KK2ludCBhWzY0XSwgYls2NF07DQorDQor aW50DQorbWFpbiAoKQ0KK3sNCisgIGNoZWNrX3ZlY3QgKCk7DQorICBmb3Ig KGludCBpID0gMDsgaSA8IDY0OyArK2kpDQorICAgIHsNCisgICAgICBhW2ld ID0gaTsNCisgICAgICBfX2FzbV9fIHZvbGF0aWxlICgiIiA6OjogIm1lbW9y eSIpOw0KKyAgICB9DQorICBpbnQgYyA9IDc7DQorICBmb28gKGEsIGIsICZj LCA2Myk7DQorICBmb3IgKGludCBpID0gMTsgaSA8IDYzOyArK2kpDQorICAg IGlmIChiW2ldICE9IGFbaV0gLSBhW2ktMV0pDQorICAgICAgYWJvcnQgKCk7 DQorICBpZiAoYlswXSAhPSAtNykNCisgICAgYWJvcnQgKCk7DQorICByZXR1 cm4gMDsNCit9DQorDQorLyogPz8/ICBXZSBtaXNzIGVwaWxvZ3VlIGhhbmRs aW5nIGZvciBmaXJzdCBvcmRlciByZWN1cnJlbmNlcy4gICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJ2ZWN0b3JpemVkIDEgbG9vcHMg aW4gZnVuY3Rpb24iICJ2ZWN0IiB7IHRhcmdldCB2ZWN0X2Z1bGx5X21hc2tl ZCB9IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90cmVlLXZlY3QtbG9vcC5j YyBiL2djYy90cmVlLXZlY3QtbG9vcC5jYw0KaW5kZXggMjUzNmNjM2NmNDku LmI1NDgyMGE5NjBiIDEwMDY0NA0KLS0tIGEvZ2NjL3RyZWUtdmVjdC1sb29w LmNjDQorKysgYi9nY2MvdHJlZS12ZWN0LWxvb3AuY2MNCkBAIC01MjksNiAr NTI5LDQ1IEBAIHZlY3RfaW5uZXJfcGhpX2luX2RvdWJsZV9yZWR1Y3Rpb25f cCAobG9vcF92ZWNfaW5mbyBsb29wX3ZpbmZvLCBncGhpICpwaGkpDQogICBy ZXR1cm4gZmFsc2U7DQp9DQorLyogUmV0dXJucyB0cnVlIGlmIFBoaSBpcyBh IGZpcnN0LW9yZGVyIHJlY3VycmVuY2UuIEEgZmlyc3Qtb3JkZXINCisgICBy ZWN1cnJlbmNlIGlzIGEgbm9uLXJlZHVjdGlvbiByZWN1cnJlbmNlIHJlbGF0 aW9uIGluIHdoaWNoIHRoZSB2YWx1ZSBvZg0KKyAgIHRoZSByZWN1cnJlbmNl IGluIHRoZSBjdXJyZW50IGxvb3AgaXRlcmF0aW9uIGVxdWFscyBhIHZhbHVl IGRlZmluZWQgaW4NCisgICB0aGUgcHJldmlvdXMgaXRlcmF0aW9uLiAgKi8N CisNCitzdGF0aWMgYm9vbA0KK3ZlY3RfcGhpX2ZpcnN0X29yZGVyX3JlY3Vy cmVuY2VfcCAobG9vcF92ZWNfaW5mbyBsb29wX3ZpbmZvLCBjbGFzcyBsb29w ICpsb29wLA0KKyAgICBncGhpICpwaGkpDQorew0KKyAgLyogRW5zdXJlIHRo ZSBsb29wIGxhdGNoIGRlZmluaXRpb24gaXMgZnJvbSB3aXRoaW4gdGhlIGxv b3AuICAqLw0KKyAgZWRnZSBsYXRjaCA9IGxvb3BfbGF0Y2hfZWRnZSAobG9v cCk7DQorICB0cmVlIGxkZWYgPSBQSElfQVJHX0RFRl9GUk9NX0VER0UgKHBo aSwgbGF0Y2gpOw0KKyAgaWYgKFRSRUVfQ09ERSAobGRlZikgIT0gU1NBX05B TUUNCisgICAgICB8fCBTU0FfTkFNRV9JU19ERUZBVUxUX0RFRiAobGRlZikN CisgICAgICB8fCAhZmxvd19iYl9pbnNpZGVfbG9vcF9wIChsb29wLCBnaW1w bGVfYmIgKFNTQV9OQU1FX0RFRl9TVE1UIChsZGVmKSkpKQ0KKyAgICByZXR1 cm4gZmFsc2U7DQorDQorICB0cmVlIGRlZiA9IGdpbXBsZV9waGlfcmVzdWx0 IChwaGkpOw0KKw0KKyAgLyogRW5zdXJlIGV2ZXJ5IHVzZV9zdG10IG9mIHRo ZSBwaGkgbm9kZSBpcyBkb21pbmF0ZWQgYnkgdGhlIGxhdGNoDQorICAgICBk ZWZpbml0aW9uLiAgKi8NCisgIGltbV91c2VfaXRlcmF0b3IgaW1tX2l0ZXI7 DQorICB1c2Vfb3BlcmFuZF9wIHVzZV9wOw0KKyAgRk9SX0VBQ0hfSU1NX1VT RV9GQVNUICh1c2VfcCwgaW1tX2l0ZXIsIGRlZikNCisgICAgaWYgKCFpc19n aW1wbGVfZGVidWcgKFVTRV9TVE1UICh1c2VfcCkpDQorICYmIChTU0FfTkFN RV9ERUZfU1RNVCAobGRlZikgPT0gVVNFX1NUTVQgKHVzZV9wKQ0KKyAgICAg fHwgIXZlY3Rfc3RtdF9kb21pbmF0ZXNfc3RtdF9wIChTU0FfTkFNRV9ERUZf U1RNVCAobGRlZiksDQorICAgICBVU0VfU1RNVCAodXNlX3ApKSkpDQorICAg ICAgcmV0dXJuIGZhbHNlOw0KKw0KKyAgLyogRmlyc3Qtb3JkZXIgcmVjdXJy ZW5jZSBhdXRvdmVjdG9yaXphdGlvbiBuZWVkcyBzaHVmZmxlIHZlY3Rvci4g ICovDQorICB0cmVlIHNjYWxhcl90eXBlID0gVFJFRV9UWVBFIChkZWYpOw0K KyAgdHJlZSB2ZWN0eXBlID0gZ2V0X3ZlY3R5cGVfZm9yX3NjYWxhcl90eXBl IChsb29wX3ZpbmZvLCBzY2FsYXJfdHlwZSk7DQorICBpZiAoIXZlY3R5cGUp DQorICAgIHJldHVybiBmYWxzZTsNCisNCisgIHJldHVybiB0cnVlOw0KK30N CisNCi8qIEZ1bmN0aW9uIHZlY3RfYW5hbHl6ZV9zY2FsYXJfY3ljbGVzXzEu DQogICAgRXhhbWluZSB0aGUgY3Jvc3MgaXRlcmF0aW9uIGRlZi11c2UgY3lj bGVzIG9mIHNjYWxhciB2YXJpYWJsZXMNCkBAIC02NjYsNiArNzA1LDggQEAg dmVjdF9hbmFseXplX3NjYWxhcl9jeWNsZXNfMSAobG9vcF92ZWNfaW5mbyBs b29wX3ZpbmZvLCBjbGFzcyBsb29wICpsb29wLA0KICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgfQ0KICAgICAgICAgfQ0KKyAgICAgIGVsc2Ug aWYgKHZlY3RfcGhpX2ZpcnN0X29yZGVyX3JlY3VycmVuY2VfcCAobG9vcF92 aW5mbywgbG9vcCwgcGhpKSkNCisgU1RNVF9WSU5GT19ERUZfVFlQRSAoc3Rt dF92aW5mbykgPSB2ZWN0X2ZpcnN0X29yZGVyX3JlY3VycmVuY2U7DQogICAg ICAgZWxzZQ0KICAgICAgICAgaWYgKGR1bXBfZW5hYmxlZF9wICgpKQ0KICAg ICAgICAgICBkdW1wX3ByaW50Zl9sb2MgKE1TR19NSVNTRURfT1BUSU1JWkFU SU9OLCB2ZWN0X2xvY2F0aW9uLA0KQEAgLTE4MTAsNyArMTg1MSw4IEBAIHZl Y3RfYW5hbHl6ZV9sb29wX29wZXJhdGlvbnMgKGxvb3BfdmVjX2luZm8gbG9v cF92aW5mbykNCiAgICAgICAgICAgaWYgKChTVE1UX1ZJTkZPX1JFTEVWQU5U IChzdG10X2luZm8pID09IHZlY3RfdXNlZF9pbl9zY29wZQ0KICAgICAgICAg ICAgICAgIHx8IFNUTVRfVklORk9fTElWRV9QIChzdG10X2luZm8pKQ0KLSAg ICAgICAgICAgICAgJiYgU1RNVF9WSU5GT19ERUZfVFlQRSAoc3RtdF9pbmZv KSAhPSB2ZWN0X2luZHVjdGlvbl9kZWYpDQorICAgICAgICYmIFNUTVRfVklO Rk9fREVGX1RZUEUgKHN0bXRfaW5mbykgIT0gdmVjdF9pbmR1Y3Rpb25fZGVm DQorICAgICAgICYmIFNUTVRfVklORk9fREVGX1RZUEUgKHN0bXRfaW5mbykg IT0gdmVjdF9maXJzdF9vcmRlcl9yZWN1cnJlbmNlKQ0KICAgIC8qIEEgc2Nh bGFyLWRlcGVuZGVuY2UgY3ljbGUgdGhhdCB3ZSBkb24ndCBzdXBwb3J0LiAg Ki8NCiAgICByZXR1cm4gb3B0X3Jlc3VsdDo6ZmFpbHVyZV9hdCAocGhpLA0K ICAgIm5vdCB2ZWN0b3JpemVkOiINCkBAIC0xODMxLDYgKzE4NzMsMTEgQEAg dmVjdF9hbmFseXplX2xvb3Bfb3BlcmF0aW9ucyAobG9vcF92ZWNfaW5mbyBs b29wX3ZpbmZvKQ0KICAgICAgICYmICEgUFVSRV9TTFBfU1RNVCAoc3RtdF9p bmZvKSkNCm9rID0gdmVjdG9yaXphYmxlX3JlZHVjdGlvbiAobG9vcF92aW5m bywNCiAgICAgc3RtdF9pbmZvLCBOVUxMLCBOVUxMLCAmY29zdF92ZWMpOw0K KyAgICAgICBlbHNlIGlmICgoU1RNVF9WSU5GT19ERUZfVFlQRSAoc3RtdF9p bmZvKQ0KKyA9PSB2ZWN0X2ZpcnN0X29yZGVyX3JlY3VycmVuY2UpDQorICAg ICAgICAmJiAhIFBVUkVfU0xQX1NUTVQgKHN0bXRfaW5mbykpDQorIG9rID0g dmVjdG9yaXphYmxlX3JlY3VyciAobG9vcF92aW5mbywgc3RtdF9pbmZvLCBO VUxMLCBOVUxMLA0KKyAgICAmY29zdF92ZWMpOw0KICAgICAgICAgICAgIH0N CiAgLyogU0xQIFBISXMgYXJlIHRlc3RlZCBieSB2ZWN0X3NscF9hbmFseXpl X25vZGVfb3BlcmF0aW9ucy4gICovDQpAQCAtODI2Nyw2ICs4MzE0LDE4MyBA QCB2ZWN0b3JpemFibGVfcGhpICh2ZWNfaW5mbyAqLA0KICAgcmV0dXJuIHRy dWU7DQp9DQorLyogVmVjdG9yaXplcyBmaXJzdCBvcmRlciByZWN1cnJlbmNl cy4gICovDQorDQorYm9vbA0KK3ZlY3Rvcml6YWJsZV9yZWN1cnIgKGxvb3Bf dmVjX2luZm8gbG9vcF92aW5mbywgc3RtdF92ZWNfaW5mbyBzdG10X2luZm8s DQorICAgICAgIGdpbXBsZSAqKnZlY19zdG10LCBzbHBfdHJlZSBzbHBfbm9k ZSwNCisgICAgICAgc3RtdF92ZWN0b3JfZm9yX2Nvc3QgKmNvc3RfdmVjKQ0K K3sNCisgIGlmICghbG9vcF92aW5mbyB8fCAhaXNfYTxncGhpICo+IChzdG10 X2luZm8tPnN0bXQpKQ0KKyAgICByZXR1cm4gZmFsc2U7DQorDQorICBncGhp ICpwaGkgPSBhc19hPGdwaGkgKj4gKHN0bXRfaW5mby0+c3RtdCk7DQorDQor ICAvKiBTbyBmYXIgd2Ugb25seSBzdXBwb3J0IGZpcnN0LW9yZGVyIHJlY3Vy cmVuY2UgYXV0by12ZWN0b3JpemF0aW9uLiAgKi8NCisgIGlmIChTVE1UX1ZJ TkZPX0RFRl9UWVBFIChzdG10X2luZm8pICE9IHZlY3RfZmlyc3Rfb3JkZXJf cmVjdXJyZW5jZSkNCisgICAgcmV0dXJuIGZhbHNlOw0KKw0KKyAgdHJlZSB2 ZWN0eXBlID0gU1RNVF9WSU5GT19WRUNUWVBFIChzdG10X2luZm8pOw0KKyAg dW5zaWduZWQgbmNvcGllczsNCisgIGlmIChzbHBfbm9kZSkNCisgICAgbmNv cGllcyA9IFNMUF9UUkVFX05VTUJFUl9PRl9WRUNfU1RNVFMgKHNscF9ub2Rl KTsNCisgIGVsc2UNCisgICAgbmNvcGllcyA9IHZlY3RfZ2V0X251bV9jb3Bp ZXMgKGxvb3BfdmluZm8sIHZlY3R5cGUpOw0KKyAgcG9seV9pbnQ2NCBudW5p dHMgPSBUWVBFX1ZFQ1RPUl9TVUJQQVJUUyAodmVjdHlwZSk7DQorICB1bnNp Z25lZCBkaXN0ID0gc2xwX25vZGUgPyBTTFBfVFJFRV9MQU5FUyAoc2xwX25v ZGUpIDogMTsNCisgIC8qIFdlIG5lZWQgdG8gYmUgYWJsZSB0byBtYWtlIHBy b2dyZXNzIHdpdGggYSBzaW5nbGUgdmVjdG9yLiAgKi8NCisgIGlmIChtYXli ZV9ndCAoZGlzdCAqIDIsIG51bml0cykpDQorICAgIHsNCisgICAgICBpZiAo ZHVtcF9lbmFibGVkX3AgKCkpDQorIGR1bXBfcHJpbnRmX2xvYyAoTVNHX01J U1NFRF9PUFRJTUlaQVRJT04sIHZlY3RfbG9jYXRpb24sDQorICJmaXJzdCBv cmRlciByZWN1cnJlbmNlIGV4Y2VlZHMgaGFsZiBvZiAiDQorICJhIHZlY3Rv clxuIik7DQorICAgICAgcmV0dXJuIGZhbHNlOw0KKyAgICB9DQorDQorICAv KiBGaXJzdC1vcmRlciByZWN1cnJlbmNlIGF1dG92ZWN0b3JpemF0aW9uIG5l ZWRzIHRvIGhhbmRsZSBwZXJtdXRhdGlvbg0KKyAgICAgd2l0aCBpbmRpY2Vz ID0gW251bml0cy0xLCBudW5pdHMsIG51bml0cysxLCAuLi5dLiAgKi8NCisg IHZlY19wZXJtX2J1aWxkZXIgc2VsIChudW5pdHMsIDEsIDMpOw0KKyAgZm9y IChpbnQgaSA9IDA7IGkgPCAzOyArK2kpDQorICAgIHNlbC5xdWlja19wdXNo IChudW5pdHMgLSBkaXN0ICsgaSk7DQorICB2ZWNfcGVybV9pbmRpY2VzIGlu ZGljZXMgKHNlbCwgMSwgbnVuaXRzICogMik7DQorDQorICBpZiAoIXZlY19z dG10KSAvKiB0cmFuc2Zvcm1hdGlvbiBub3QgcmVxdWlyZWQuICAqLw0KKyAg ICB7DQorICAgICAgaWYgKCFjYW5fdmVjX3Blcm1fY29uc3RfcCAoVFlQRV9N T0RFICh2ZWN0eXBlKSwgVFlQRV9NT0RFICh2ZWN0eXBlKSwNCisgaW5kaWNl cykpDQorIHJldHVybiBmYWxzZTsNCisNCisgICAgICBpZiAoc2xwX25vZGUp DQorIHsNCisgICAvKiBXZSBldmVudHVhbGx5IG5lZWQgdG8gc2V0IGEgdmVj dG9yIHR5cGUgb24gaW52YXJpYW50DQorICAgICAgYXJndW1lbnRzLiAgKi8N CisgICB1bnNpZ25lZCBqOw0KKyAgIHNscF90cmVlIGNoaWxkOw0KKyAgIEZP Ul9FQUNIX1ZFQ19FTFQgKFNMUF9UUkVFX0NISUxEUkVOIChzbHBfbm9kZSks IGosIGNoaWxkKQ0KKyAgICAgaWYgKCF2ZWN0X21heWJlX3VwZGF0ZV9zbHBf b3BfdmVjdHlwZQ0KKyAgIChjaGlsZCwgU0xQX1RSRUVfVkVDVFlQRSAoc2xw X25vZGUpKSkNCisgICAgICAgew0KKyBpZiAoZHVtcF9lbmFibGVkX3AgKCkp DQorICAgZHVtcF9wcmludGZfbG9jIChNU0dfTUlTU0VEX09QVElNSVpBVElP TiwgdmVjdF9sb2NhdGlvbiwNCisgICAgImluY29tcGF0aWJsZSB2ZWN0b3Ig dHlwZXMgZm9yICINCisgICAgImludmFyaWFudHNcbiIpOw0KKyByZXR1cm4g ZmFsc2U7DQorICAgICAgIH0NCisgfQ0KKyAgICAgIC8qIFRoZSByZWN1cnJl bmNlIGNvc3RzIHRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgYW5kIG9uZSBw ZXJtdXRlDQorIGZvciBlYWNoIGNvcHkuICAqLw0KKyAgICAgIHVuc2lnbmVk IHByb2xvZ3VlX2Nvc3QgPSByZWNvcmRfc3RtdF9jb3N0IChjb3N0X3ZlYywg MSwgc2NhbGFyX3RvX3ZlYywNCisgc3RtdF9pbmZvLCAwLCB2ZWN0X3Byb2xv Z3VlKTsNCisgICAgICB1bnNpZ25lZCBpbnNpZGVfY29zdCA9IHJlY29yZF9z dG10X2Nvc3QgKGNvc3RfdmVjLCBuY29waWVzLCB2ZWN0b3Jfc3RtdCwNCisg ICAgICAgIHN0bXRfaW5mbywgMCwgdmVjdF9ib2R5KTsNCisgICAgICBpZiAo ZHVtcF9lbmFibGVkX3AgKCkpDQorIGR1bXBfcHJpbnRmX2xvYyAoTVNHX05P VEUsIHZlY3RfbG9jYXRpb24sDQorICJ2ZWN0b3JpemFibGVfcmVjdXJyOiBp bnNpZGVfY29zdCA9ICVkLCAiDQorICJwcm9sb2d1ZV9jb3N0ID0gJWQgLlxu IiwgaW5zaWRlX2Nvc3QsDQorIHByb2xvZ3VlX2Nvc3QpOw0KKw0KKyAgICAg IFNUTVRfVklORk9fVFlQRSAoc3RtdF9pbmZvKSA9IHJlY3Vycl9pbmZvX3R5 cGU7DQorICAgICAgcmV0dXJuIHRydWU7DQorICAgIH0NCisNCisgIC8qIFRo aXMgaXMgdGhlIHNlY29uZCBwaGFzZSBvZiB2ZWN0b3JpemluZyBmaXJzdC1v cmRlciByZWNlY3VycmVuY2VzLiBBbg0KKyAgICAgb3ZlcnZpZXcgb2YgdGhl IHRyYW5zZm9ybWF0aW9uIGlzIGRlc2NyaWJlZCBiZWxvdy4gU3VwcG9zZSB3 ZSBoYXZlIHRoZQ0KKyAgICAgZm9sbG93aW5nIGxvb3AuDQorDQorICAgICBp bnQzMl90IHQgPSAwOw0KKyAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyAr K2kpDQorICAgICAgIHsNCisgYltpXSA9IGFbaV0gLSB0Ow0KKyB0ID0gYVtp XTsNCisgICAgICB9DQorDQorICAgIFRoZXJlIGlzIGEgZmlyc3Qtb3JkZXIg cmVjdXJyZW5jZSBvbiAiYSIuIEZvciB0aGlzIGxvb3AsIHRoZSBzaG9ydGhh bmQNCisgICAgc2NhbGFyIElSIGxvb2tzIGxpa2U6DQorDQorICAgIHNjYWxh ci5wcmVoZWFkZXI6DQorICAgICAgaW5pdCA9IGFbLTFdDQorICAgICAgYnIg bG9vcC5ib2R5DQorDQorICAgIHNjYWxhci5ib2R5Og0KKyAgICAgIGkgPSBQ SEkgPDAoc2NhbGFyLnByZWhlYWRlciksIGkrMShzY2FsYXIuYm9keSk+DQor ICAgICAgXzIgPSBQSEkgPChpbml0KHNjYWxhci5wcmVoZWFkZXIpLCA8XzEo c2NhbGFyLmJvZHkpPg0KKyAgICAgIF8xID0gYVtpXQ0KKyAgICAgIGJbaV0g PSBfMSAtIF8yDQorICAgICAgYnIgY29uZCwgc2NhbGFyLmJvZHksIC4uLg0K Kw0KKyAgICBJbiB0aGlzIGV4YW1wbGUsIF8yIGlzIGEgcmVjdXJyZW5jZSBi ZWNhdXNlIGl0J3MgdmFsdWUgZGVwZW5kcyBvbiB0aGUNCisgICAgcHJldmlv dXMgaXRlcmF0aW9uLiBJbiB0aGUgZmlyc3QgcGhhc2Ugb2YgdmVjdG9yaXph dGlvbiwgd2UgY3JlYXRlZCBhDQorICAgIHRlbXBvcmFyeSB2YWx1ZSBmb3Ig XzIuIFdlIG5vdyBjb21wbGV0ZSB0aGUgdmVjdG9yaXphdGlvbiBhbmQgcHJv ZHVjZSB0aGUNCisgICAgc2hvcnRoYW5kIHZlY3RvciBJUiBzaG93biBiZWxv dyAoVkYgPSA0KS4NCisNCisgICAgdmVjdG9yLnByZWhlYWRlcjoNCisgICAg ICB2ZWN0X2luaXQgPSB2ZWN0X2NzdCguLi4sIC4uLiwgLi4uLCBhWy0xXSkN CisgICAgICBiciB2ZWN0b3IuYm9keQ0KKw0KKyAgICB2ZWN0b3IuYm9keQ0K KyAgICAgIGkgPSBQSEkgPDAodmVjdG9yLnByZWhlYWRlciksIGkrNCh2ZWN0 b3IuYm9keSk+DQorICAgICAgdmVjdF8xID0gUEhJIDx2ZWN0X2luaXQodmVj dG9yLnByZWhlYWRlciksIHYyKHZlY3Rvci5ib2R5KT4NCisgICAgICB2ZWN0 XzIgPSBhW2ksIGkrMSwgaSsyLCBpKzNdOw0KKyAgICAgIHZlY3RfMyA9IHZl Y3Rvcih2ZWN0XzEoMyksIHZlY3RfMigwLCAxLCAyKSkNCisgICAgICBiW2ks IGkrMSwgaSsyLCBpKzNdID0gdmVjdF8yIC0gdmVjdF8zDQorICAgICAgYnIg Y29uZCwgdmVjdG9yLmJvZHksIG1pZGRsZS5ibG9jaw0KKw0KKyAgICBtaWRk bGUuYmxvY2s6DQorICAgICAgeCA9IHZlY3RfMigzKQ0KKyAgICAgIGJyIHNj YWxhci5wcmVoZWFkZXINCisNCisgICAgc2NhbGFyLnBoOg0KKyAgICAgIHNf aW5pdCA9IFBISSA8eChtaWRkbGUuYmxvY2spLCBhWy0xXSwgb3RoZXJ3aXNl Pg0KKyAgICAgIGJyIHNjYWxhci5ib2R5DQorDQorICAgIEFmdGVyIGV4ZWN1 dGlvbiBjb21wbGV0ZXMgdGhlIHZlY3RvciBsb29wLCB3ZSBleHRyYWN0IHRo ZSBuZXh0IHZhbHVlIG9mDQorICAgIHRoZSByZWN1cnJlbmNlICh4KSB0byB1 c2UgYXMgdGhlIGluaXRpYWwgdmFsdWUgaW4gdGhlIHNjYWxhciBsb29wLiAg Ki8NCisNCisgIGVkZ2UgcGUgPSBsb29wX3ByZWhlYWRlcl9lZGdlIChMT09Q X1ZJTkZPX0xPT1AgKGxvb3BfdmluZm8pKTsNCisgIGJhc2ljX2Jsb2NrIGJi ID0gZ2ltcGxlX2JiIChwaGkpOw0KKyAgdHJlZSBwcmVoZWFkZXIgPSBQSElf QVJHX0RFRl9GUk9NX0VER0UgKHBoaSwgcGUpOw0KKyAgdHJlZSB2ZWNfaW5p dCA9IGJ1aWxkX3ZlY3Rvcl9mcm9tX3ZhbCAodmVjdHlwZSwgcHJlaGVhZGVy KTsNCisgIHZlY19pbml0ID0gdmVjdF9pbml0X3ZlY3RvciAobG9vcF92aW5m bywgc3RtdF9pbmZvLCB2ZWNfaW5pdCwgdmVjdHlwZSwgTlVMTCk7DQorDQor ICAvKiBDcmVhdGUgdGhlIHZlY3Rvcml6ZWQgZmlyc3Qtb3JkZXIgUEhJIG5v ZGUuICAqLw0KKyAgdHJlZSB2ZWNfZGVzdCA9IHZlY3RfZ2V0X25ld192ZWN0 X3ZhciAodmVjdHlwZSwNCisgdmVjdF9zaW1wbGVfdmFyLCAidmVjX3JlY3Vy XyIpOw0KKyAgZ3BoaSAqbmV3X3BoaSA9IGNyZWF0ZV9waGlfbm9kZSAodmVj X2Rlc3QsIGJiKTsNCisgIGFkZF9waGlfYXJnIChuZXdfcGhpLCB2ZWNfaW5p dCwgcGUsIFVOS05PV05fTE9DQVRJT04pOw0KKw0KKyAgLyogSW5zZXJ0IHNo dWZmbGVzIHRoZSBmaXJzdC1vcmRlciByZWN1cnJlbmNlIGF1dG92ZWN0b3Jp emF0aW9uLg0KKyAgICAgICByZXN1bHQgPSBWRUNfUEVSTSA8dmVjX3JlY3Vy LCB2ZWN0XzEsIGluZGV4W251bml0cy0xLCBudW5pdHMsIC4uLl0+LiAgKi8N CisgIHRyZWUgcGVybSA9IHZlY3RfZ2VuX3Blcm1fbWFza19jaGVja2VkICh2 ZWN0eXBlLCBpbmRpY2VzKTsNCisNCisgIC8qIEluc2VydCB0aGUgcmVxdWly ZWQgcGVybXV0ZSBhZnRlciB0aGUgbGF0Y2ggZGVmaW5pdGlvbi4gIFRoZQ0K KyAgICAgc2Vjb25kIGFuZCBsYXRlciBvcGVyYW5kcyBhcmUgdGVudGF0aXZl IGFuZCB3aWxsIGJlIHVwZGF0ZWQgd2hlbiB3ZSBoYXZlDQorICAgICB2ZWN0 b3JpemVkIHRoZSBsYXRjaCBkZWZpbml0aW9uLiAgKi8NCisgIGVkZ2UgbGUg PSBsb29wX2xhdGNoX2VkZ2UgKExPT1BfVklORk9fTE9PUCAobG9vcF92aW5m bykpOw0KKyAgZ2ltcGxlX3N0bXRfaXRlcmF0b3IgZ3NpMg0KKyAgICA9IGdz aV9mb3Jfc3RtdCAoU1NBX05BTUVfREVGX1NUTVQgKFBISV9BUkdfREVGX0ZS T01fRURHRSAocGhpLCBsZSkpKTsNCisgIGdzaV9uZXh0ICgmZ3NpMik7DQor DQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbmNvcGllczsgKytpKQ0K KyAgICB7DQorICAgICAgdmVjX2Rlc3QgPSBtYWtlX3NzYV9uYW1lICh2ZWN0 eXBlKTsNCisgICAgICBnYXNzaWduICp2cGVybQ0KKyAgID0gZ2ltcGxlX2J1 aWxkX2Fzc2lnbiAodmVjX2Rlc3QsIFZFQ19QRVJNX0VYUFIsDQorIGkgPT0g MCA/IGdpbXBsZV9waGlfcmVzdWx0IChuZXdfcGhpKSA6IE5VTEwsDQorIE5V TEwsIHBlcm0pOw0KKyAgICAgIHZlY3RfZmluaXNoX3N0bXRfZ2VuZXJhdGlv biAobG9vcF92aW5mbywgc3RtdF9pbmZvLCB2cGVybSwgJmdzaTIpOw0KKw0K KyAgICAgIGlmIChzbHBfbm9kZSkNCisgU0xQX1RSRUVfVkVDX1NUTVRTIChz bHBfbm9kZSkucXVpY2tfcHVzaCAodnBlcm0pOw0KKyAgICAgIGVsc2UNCisg U1RNVF9WSU5GT19WRUNfU1RNVFMgKHN0bXRfaW5mbykuc2FmZV9wdXNoICh2 cGVybSk7DQorICAgIH0NCisNCisgIGlmICghc2xwX25vZGUpDQorICAgICp2 ZWNfc3RtdCA9IFNUTVRfVklORk9fVkVDX1NUTVRTIChzdG10X2luZm8pWzBd Ow0KKyAgcmV0dXJuIHRydWU7DQorfQ0KKw0KLyogUmV0dXJuIHRydWUgaWYg VkVDVFlQRSByZXByZXNlbnRzIGEgdmVjdG9yIHRoYXQgcmVxdWlyZXMgbG93 ZXJpbmcNCiAgICBieSB0aGUgdmVjdG9yIGxvd2VyaW5nIHBhc3MuICAqLw0K QEAgLTEwMjIzLDI3ICsxMDQ0Nyw1MyBAQCBtYXliZV9zZXRfdmVjdG9yaXpl ZF9iYWNrZWRnZV92YWx1ZSAobG9vcF92ZWNfaW5mbyBsb29wX3ZpbmZvLA0K ICAgaW1tX3VzZV9pdGVyYXRvciBpdGVyOw0KICAgdXNlX29wZXJhbmRfcCB1 c2VfcDsNCiAgIEZPUl9FQUNIX0lNTV9VU0VfRkFTVCAodXNlX3AsIGl0ZXIs IGRlZikNCi0gICAgaWYgKGdwaGkgKnBoaSA9IGR5bl9jYXN0IDxncGhpICo+ IChVU0VfU1RNVCAodXNlX3ApKSkNCi0gICAgICBpZiAoZ2ltcGxlX2JiIChw aGkpLT5sb29wX2ZhdGhlci0+aGVhZGVyID09IGdpbXBsZV9iYiAocGhpKQ0K LSAgICYmIChwaGlfaW5mbyA9IGxvb3BfdmluZm8tPmxvb2t1cF9zdG10IChw aGkpKQ0KLSAgICYmIFNUTVRfVklORk9fUkVMRVZBTlRfUCAocGhpX2luZm8p DQotICAgJiYgVkVDVE9SSVpBQkxFX0NZQ0xFX0RFRiAoU1RNVF9WSU5GT19E RUZfVFlQRSAocGhpX2luZm8pKQ0KKyAgICB7DQorICAgICAgZ3BoaSAqcGhp ID0gZHluX2Nhc3QgPGdwaGkgKj4gKFVTRV9TVE1UICh1c2VfcCkpOw0KKyAg ICAgIGlmICghcGhpKQ0KKyBjb250aW51ZTsNCisgICAgICBpZiAoIShnaW1w bGVfYmIgKHBoaSktPmxvb3BfZmF0aGVyLT5oZWFkZXIgPT0gZ2ltcGxlX2Ji IChwaGkpDQorICAgICAmJiAocGhpX2luZm8gPSBsb29wX3ZpbmZvLT5sb29r dXBfc3RtdCAocGhpKSkNCisgICAgICYmIFNUTVRfVklORk9fUkVMRVZBTlRf UCAocGhpX2luZm8pKSkNCisgY29udGludWU7DQorICAgICAgbG9vcF9wIGxv b3AgPSBnaW1wbGVfYmIgKHBoaSktPmxvb3BfZmF0aGVyOw0KKyAgICAgIGVk Z2UgZSA9IGxvb3BfbGF0Y2hfZWRnZSAobG9vcCk7DQorICAgICAgaWYgKFBI SV9BUkdfREVGX0ZST01fRURHRSAocGhpLCBlKSAhPSBkZWYpDQorIGNvbnRp bnVlOw0KKw0KKyAgICAgIGlmIChWRUNUT1JJWkFCTEVfQ1lDTEVfREVGIChT VE1UX1ZJTkZPX0RFRl9UWVBFIChwaGlfaW5mbykpDQogICYmIFNUTVRfVklO Rk9fUkVEVUNfVFlQRSAocGhpX2luZm8pICE9IEZPTERfTEVGVF9SRURVQ1RJ T04NCiAgJiYgU1RNVF9WSU5GT19SRURVQ19UWVBFIChwaGlfaW5mbykgIT0g RVhUUkFDVF9MQVNUX1JFRFVDVElPTikNCnsNCi0gICBsb29wX3AgbG9vcCA9 IGdpbXBsZV9iYiAocGhpKS0+bG9vcF9mYXRoZXI7DQotICAgZWRnZSBlID0g bG9vcF9sYXRjaF9lZGdlIChsb29wKTsNCi0gICBpZiAoUEhJX0FSR19ERUZf RlJPTV9FREdFIChwaGksIGUpID09IGRlZikNCisgICB2ZWM8Z2ltcGxlICo+ ICZwaGlfZGVmcyA9IFNUTVRfVklORk9fVkVDX1NUTVRTIChwaGlfaW5mbyk7 DQorICAgdmVjPGdpbXBsZSAqPiAmbGF0Y2hfZGVmcyA9IFNUTVRfVklORk9f VkVDX1NUTVRTIChkZWZfc3RtdF9pbmZvKTsNCisgICBnY2NfYXNzZXJ0IChw aGlfZGVmcy5sZW5ndGggKCkgPT0gbGF0Y2hfZGVmcy5sZW5ndGggKCkpOw0K KyAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaGlfZGVmcy5sZW5ndGgg KCk7ICsraSkNCisgICAgIGFkZF9waGlfYXJnIChhc19hIDxncGhpICo+IChw aGlfZGVmc1tpXSksDQorIGdpbXBsZV9nZXRfbGhzIChsYXRjaF9kZWZzW2ld KSwgZSwNCisgZ2ltcGxlX3BoaV9hcmdfbG9jYXRpb24gKHBoaSwgZS0+ZGVz dF9pZHgpKTsNCisgfQ0KKyAgICAgIGVsc2UgaWYgKFNUTVRfVklORk9fREVG X1RZUEUgKHBoaV9pbmZvKSA9PSB2ZWN0X2ZpcnN0X29yZGVyX3JlY3VycmVu Y2UpDQorIHsNCisgICAvKiBGb3IgZmlyc3Qgb3JkZXIgcmVjdXJyZW5jZXMg d2UgaGF2ZSB0byB1cGRhdGUgYm90aCB1c2VzIG9mDQorICAgICAgdGhlIGxh dGNoIGRlZmluaXRpb24sIHRoZSBvbmUgaW4gdGhlIFBISSBub2RlIGFuZCB0 aGUgb25lDQorICAgICAgaW4gdGhlIGdlbmVyYXRlZCBWRUNfUEVSTV9FWFBS LiAgKi8NCisgICB2ZWM8Z2ltcGxlICo+ICZwaGlfZGVmcyA9IFNUTVRfVklO Rk9fVkVDX1NUTVRTIChwaGlfaW5mbyk7DQorICAgdmVjPGdpbXBsZSAqPiAm bGF0Y2hfZGVmcyA9IFNUTVRfVklORk9fVkVDX1NUTVRTIChkZWZfc3RtdF9p bmZvKTsNCisgICBnY2NfYXNzZXJ0IChwaGlfZGVmcy5sZW5ndGggKCkgPT0g bGF0Y2hfZGVmcy5sZW5ndGggKCkpOw0KKyAgIHRyZWUgcGhpZGVmID0gZ2lt cGxlX2Fzc2lnbl9yaHMxIChwaGlfZGVmc1swXSk7DQorICAgZ3BoaSAqdnBo aSA9IGFzX2EgPGdwaGkgKj4gKFNTQV9OQU1FX0RFRl9TVE1UIChwaGlkZWYp KTsNCisgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGhpX2RlZnMubGVu Z3RoICgpOyArK2kpDQogICAgew0KLSAgICAgICB2ZWM8Z2ltcGxlICo+ICZw aGlfZGVmcyA9IFNUTVRfVklORk9fVkVDX1NUTVRTIChwaGlfaW5mbyk7DQot ICAgICAgIHZlYzxnaW1wbGUgKj4gJmxhdGNoX2RlZnMgPSBTVE1UX1ZJTkZP X1ZFQ19TVE1UUyAoZGVmX3N0bXRfaW5mbyk7DQotICAgICAgIGdjY19hc3Nl cnQgKHBoaV9kZWZzLmxlbmd0aCAoKSA9PSBsYXRjaF9kZWZzLmxlbmd0aCAo KSk7DQotICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaGlfZGVm cy5sZW5ndGggKCk7ICsraSkNCi0gYWRkX3BoaV9hcmcgKGFzX2EgPGdwaGkg Kj4gKHBoaV9kZWZzW2ldKSwNCi0gICAgICBnaW1wbGVfZ2V0X2xocyAobGF0 Y2hfZGVmc1tpXSksIGUsDQotICAgICAgZ2ltcGxlX3BoaV9hcmdfbG9jYXRp b24gKHBoaSwgZS0+ZGVzdF9pZHgpKTsNCisgICAgICAgZ2Fzc2lnbiAqcGVy bSA9IGFzX2EgPGdhc3NpZ24gKj4gKHBoaV9kZWZzW2ldKTsNCisgICAgICAg aWYgKGkgPiAwKQ0KKyBnaW1wbGVfYXNzaWduX3NldF9yaHMxIChwZXJtLCBn aW1wbGVfZ2V0X2xocyAobGF0Y2hfZGVmc1tpLTFdKSk7DQorICAgICAgIGdp bXBsZV9hc3NpZ25fc2V0X3JoczIgKHBlcm0sIGdpbXBsZV9nZXRfbGhzIChs YXRjaF9kZWZzW2ldKSk7DQorICAgICAgIHVwZGF0ZV9zdG10IChwZXJtKTsN CiAgICB9DQorICAgYWRkX3BoaV9hcmcgKHZwaGksIGdpbXBsZV9nZXRfbGhz IChsYXRjaF9kZWZzLmxhc3QgKCkpLCBlLA0KKyAgICAgICAgZ2ltcGxlX3Bo aV9hcmdfbG9jYXRpb24gKHBoaSwgZS0+ZGVzdF9pZHgpKTsNCn0NCisgICAg fQ0KfQ0KLyogVmVjdG9yaXplIFNUTVRfSU5GTyBpZiByZWxldmFudCwgaW5z ZXJ0aW5nIGFueSBuZXcgaW5zdHJ1Y3Rpb25zIGJlZm9yZSBHU0kuDQpAQCAt MTA2NTIsNiArMTA5MDIsNyBAQCB2ZWN0X3RyYW5zZm9ybV9sb29wIChsb29w X3ZlY19pbmZvIGxvb3BfdmluZm8sIGdpbXBsZSAqbG9vcF92ZWN0b3JpemVk X2NhbGwpDQogICAgICAgfHwgU1RNVF9WSU5GT19ERUZfVFlQRSAoc3RtdF9p bmZvKSA9PSB2ZWN0X3JlZHVjdGlvbl9kZWYNCiAgICAgICB8fCBTVE1UX1ZJ TkZPX0RFRl9UWVBFIChzdG10X2luZm8pID09IHZlY3RfZG91YmxlX3JlZHVj dGlvbl9kZWYNCiAgICAgICB8fCBTVE1UX1ZJTkZPX0RFRl9UWVBFIChzdG10 X2luZm8pID09IHZlY3RfbmVzdGVkX2N5Y2xlDQorICAgICAgICB8fCBTVE1U X1ZJTkZPX0RFRl9UWVBFIChzdG10X2luZm8pID09IHZlY3RfZmlyc3Rfb3Jk ZXJfcmVjdXJyZW5jZQ0KICAgICAgIHx8IFNUTVRfVklORk9fREVGX1RZUEUg KHN0bXRfaW5mbykgPT0gdmVjdF9pbnRlcm5hbF9kZWYpDQogICAgICAmJiAh IFBVUkVfU0xQX1NUTVQgKHN0bXRfaW5mbykpDQogICAgew0KQEAgLTEwNjc3 LDcgKzEwOTI4LDggQEAgdmVjdF90cmFuc2Zvcm1fbG9vcCAobG9vcF92ZWNf aW5mbyBsb29wX3ZpbmZvLCBnaW1wbGUgKmxvb3BfdmVjdG9yaXplZF9jYWxs KQ0KICAgICAgIHx8IFNUTVRfVklORk9fREVGX1RZUEUgKHN0bXRfaW5mbykg PT0gdmVjdF9yZWR1Y3Rpb25fZGVmDQogICAgICAgfHwgU1RNVF9WSU5GT19E RUZfVFlQRSAoc3RtdF9pbmZvKSA9PSB2ZWN0X2RvdWJsZV9yZWR1Y3Rpb25f ZGVmDQogICAgICAgfHwgU1RNVF9WSU5GT19ERUZfVFlQRSAoc3RtdF9pbmZv KSA9PSB2ZWN0X25lc3RlZF9jeWNsZQ0KLSAgICAgICAgfHwgU1RNVF9WSU5G T19ERUZfVFlQRSAoc3RtdF9pbmZvKSA9PSB2ZWN0X2ludGVybmFsX2RlZikN CisgICAgICAgIHx8IFNUTVRfVklORk9fREVGX1RZUEUgKHN0bXRfaW5mbykg PT0gdmVjdF9pbnRlcm5hbF9kZWYNCisgICAgICAgIHx8IFNUTVRfVklORk9f REVGX1RZUEUgKHN0bXRfaW5mbykgPT0gdmVjdF9maXJzdF9vcmRlcl9yZWN1 cnJlbmNlKQ0KICAgICAgJiYgISBQVVJFX1NMUF9TVE1UIChzdG10X2luZm8p KQ0KICAgIG1heWJlX3NldF92ZWN0b3JpemVkX2JhY2tlZGdlX3ZhbHVlIChs b29wX3ZpbmZvLCBzdG10X2luZm8pOw0KfQ0KZGlmZiAtLWdpdCBhL2djYy90 cmVlLXZlY3Qtc2xwLmNjIGIvZ2NjL3RyZWUtdmVjdC1zbHAuY2MNCmluZGV4 IDIyOWYyNjYzZWJjLi5jZWE1ZDUwZGE5MiAxMDA2NDQNCi0tLSBhL2djYy90 cmVlLXZlY3Qtc2xwLmNjDQorKysgYi9nY2MvdHJlZS12ZWN0LXNscC5jYw0K QEAgLTY5Myw2ICs2OTMsNyBAQCB2ZWN0X2dldF9hbmRfY2hlY2tfc2xwX2Rl ZnMgKHZlY19pbmZvICp2aW5mbywgdW5zaWduZWQgY2hhciBzd2FwLA0KICAg IGNhc2UgdmVjdF9yZWR1Y3Rpb25fZGVmOg0KICAgIGNhc2UgdmVjdF9pbmR1 Y3Rpb25fZGVmOg0KICAgIGNhc2UgdmVjdF9uZXN0ZWRfY3ljbGU6DQorICAg ICBjYXNlIHZlY3RfZmlyc3Rfb3JkZXJfcmVjdXJyZW5jZToNCiAgICAgIGJy ZWFrOw0KICAgIGRlZmF1bHQ6DQpAQCAtMTczMiw3ICsxNzMzLDggQEAgdmVj dF9idWlsZF9zbHBfdHJlZV8yICh2ZWNfaW5mbyAqdmluZm8sIHNscF90cmVl IG5vZGUsDQogIH0NCmVsc2UgaWYgKGRlZl90eXBlID09IHZlY3RfcmVkdWN0 aW9uX2RlZg0KfHwgZGVmX3R5cGUgPT0gdmVjdF9kb3VibGVfcmVkdWN0aW9u X2RlZg0KLSB8fCBkZWZfdHlwZSA9PSB2ZWN0X25lc3RlZF9jeWNsZSkNCisg fHwgZGVmX3R5cGUgPT0gdmVjdF9uZXN0ZWRfY3ljbGUNCisgfHwgZGVmX3R5 cGUgPT0gdmVjdF9maXJzdF9vcmRlcl9yZWN1cnJlbmNlKQ0KICB7DQogICAg LyogRWxzZSBkZWYgdHlwZXMgaGF2ZSB0byBtYXRjaC4gICovDQogICAgc3Rt dF92ZWNfaW5mbyBvdGhlcl9pbmZvOw0KQEAgLTE3NDYsNyArMTc0OCw4IEBA IHZlY3RfYnVpbGRfc2xwX3RyZWVfMiAodmVjX2luZm8gKnZpbmZvLCBzbHBf dHJlZSBub2RlLA0KICAgICAgfQ0KICAgIGNsYXNzIGxvb3AgKmxvb3AgPSBM T09QX1ZJTkZPX0xPT1AgKGxvb3BfdmluZm8pOw0KICAgIC8qIFJlZHVjdGlv biBpbml0aWFsIHZhbHVlcyBhcmUgbm90IGV4cGxpY2l0ZWx5IHJlcHJlc2Vu dGVkLiAgKi8NCi0gICAgIGlmICghbmVzdGVkX2luX3ZlY3RfbG9vcF9wIChs b29wLCBzdG10X2luZm8pKQ0KKyAgICAgaWYgKGRlZl90eXBlICE9IHZlY3Rf Zmlyc3Rfb3JkZXJfcmVjdXJyZW5jZQ0KKyAmJiAhbmVzdGVkX2luX3ZlY3Rf bG9vcF9wIChsb29wLCBzdG10X2luZm8pKQ0KICAgICAgc2tpcF9hcmdzW2xv b3BfcHJlaGVhZGVyX2VkZ2UgKGxvb3ApLT5kZXN0X2lkeF0gPSB0cnVlOw0K ICAgIC8qIFJlZHVjdGlvbiBjaGFpbiBiYWNrZWRnZSBkZWZzIGFyZSBmaWxs ZWQgbWFudWFsbHkuDQogICAgICAgPz8/ICBOZWVkIGEgYmV0dGVyIHdheSB0 byBpZGVudGlmeSBhIFNMUCByZWR1Y3Rpb24gY2hhaW4gUEhJLg0KQEAgLTkx ODcsMTEgKzkxOTAsMzQgQEAgdmVjdF9zY2hlZHVsZV9zY2MgKHZlY19pbmZv ICp2aW5mbywgc2xwX3RyZWUgbm9kZSwgc2xwX2luc3RhbmNlIGluc3RhbmNl LA0KICBjaGlsZCA9IFNMUF9UUkVFX0NISUxEUkVOIChwaGlfbm9kZSlbZGVz dF9pZHhdOw0KICBpZiAoIWNoaWxkIHx8IFNMUF9UUkVFX0RFRl9UWVBFIChj aGlsZCkgIT0gdmVjdF9pbnRlcm5hbF9kZWYpDQogICAgY29udGludWU7DQor ICAgdW5zaWduZWQgbiA9IFNMUF9UUkVFX1ZFQ19TVE1UUyAocGhpX25vZGUp Lmxlbmd0aCAoKTsNCiAgLyogU2ltcGx5IGZpbGwgYWxsIGFyZ3MuICAqLw0K LSAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBTTFBfVFJFRV9WRUNfU1RN VFMgKHBoaV9ub2RlKS5sZW5ndGggKCk7ICsraSkNCi0gICAgIGFkZF9waGlf YXJnIChhc19hIDxncGhpICo+IChTTFBfVFJFRV9WRUNfU1RNVFMgKHBoaV9u b2RlKVtpXSksDQotIHZlY3RfZ2V0X3NscF92ZWN0X2RlZiAoY2hpbGQsIGkp LA0KLSBlLCBnaW1wbGVfcGhpX2FyZ19sb2NhdGlvbiAocGhpLCBkZXN0X2lk eCkpOw0KKyAgIGlmIChTVE1UX1ZJTkZPX0RFRl9UWVBFIChTTFBfVFJFRV9S RVBSRVNFTlRBVElWRSAocGhpX25vZGUpKQ0KKyAgICAgICAhPSB2ZWN0X2Zp cnN0X29yZGVyX3JlY3VycmVuY2UpDQorICAgICBmb3IgKHVuc2lnbmVkIGkg PSAwOyBpIDwgbjsgKytpKQ0KKyAgICAgICBhZGRfcGhpX2FyZyAoYXNfYSA8 Z3BoaSAqPiAoU0xQX1RSRUVfVkVDX1NUTVRTIChwaGlfbm9kZSlbaV0pLA0K KyAgICB2ZWN0X2dldF9zbHBfdmVjdF9kZWYgKGNoaWxkLCBpKSwNCisgICAg ZSwgZ2ltcGxlX3BoaV9hcmdfbG9jYXRpb24gKHBoaSwgZGVzdF9pZHgpKTsN CisgICBlbHNlDQorICAgICB7DQorICAgICAgIC8qIFVubGVzcyBpdCBpcyBh IGZpcnN0IG9yZGVyIHJlY3VycmVuY2Ugd2hpY2ggbmVlZHMNCisgYXJncyBm aWxsZWQgaW4gZm9yIGJvdGggdGhlIFBISSBub2RlIGFuZCB0aGUgcGVybXV0 ZXMuICAqLw0KKyAgICAgICBnaW1wbGUgKnBlcm0gPSBTTFBfVFJFRV9WRUNf U1RNVFMgKHBoaV9ub2RlKVswXTsNCisgICAgICAgZ2ltcGxlICpycGhpID0g U1NBX05BTUVfREVGX1NUTVQgKGdpbXBsZV9hc3NpZ25fcmhzMSAocGVybSkp Ow0KKyAgICAgICBhZGRfcGhpX2FyZyAoYXNfYSA8Z3BoaSAqPiAocnBoaSks DQorICAgIHZlY3RfZ2V0X3NscF92ZWN0X2RlZiAoY2hpbGQsIG4gLSAxKSwN CisgICAgZSwgZ2ltcGxlX3BoaV9hcmdfbG9jYXRpb24gKHBoaSwgZGVzdF9p ZHgpKTsNCisgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG47ICsr aSkNCisgew0KKyAgIGdpbXBsZSAqcGVybSA9IFNMUF9UUkVFX1ZFQ19TVE1U UyAocGhpX25vZGUpW2ldOw0KKyAgIGlmIChpID4gMCkNCisgICAgIGdpbXBs ZV9hc3NpZ25fc2V0X3JoczEgKHBlcm0sDQorICAgICB2ZWN0X2dldF9zbHBf dmVjdF9kZWYgKGNoaWxkLCBpIC0gMSkpOw0KKyAgIGdpbXBsZV9hc3NpZ25f c2V0X3JoczIgKHBlcm0sDQorICAgdmVjdF9nZXRfc2xwX3ZlY3RfZGVmIChj aGlsZCwgaSkpOw0KKyAgIHVwZGF0ZV9zdG10IChwZXJtKTsNCisgfQ0KKyAg ICAgfQ0KfQ0KICAgICB9DQp9DQpkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtdmVj dC1zdG10cy5jYyBiL2djYy90cmVlLXZlY3Qtc3RtdHMuY2MNCmluZGV4IGM4 ZDFlZmM0NWU1Li40ZTBkNzVlMGQ3NSAxMDA2NDQNCi0tLSBhL2djYy90cmVl LXZlY3Qtc3RtdHMuY2MNCisrKyBiL2djYy90cmVlLXZlY3Qtc3RtdHMuY2MN CkBAIC0xMTE3Niw2ICsxMTE3Niw3IEBAIHZlY3RfYW5hbHl6ZV9zdG10ICh2 ZWNfaW5mbyAqdmluZm8sDQogICAgICAgICAgYnJlYWs7DQogICAgICAgY2Fz ZSB2ZWN0X2luZHVjdGlvbl9kZWY6DQorICAgICAgY2FzZSB2ZWN0X2ZpcnN0 X29yZGVyX3JlY3VycmVuY2U6DQpnY2NfYXNzZXJ0ICghYmJfdmluZm8pOw0K YnJlYWs7DQpAQCAtMTEyMzQsNyArMTEyMzUsOSBAQCB2ZWN0X2FuYWx5emVf c3RtdCAodmVjX2luZm8gKnZpbmZvLA0KICB8fCB2ZWN0b3JpemFibGVfY29t cGFyaXNvbiAodmluZm8sIHN0bXRfaW5mbywgTlVMTCwgTlVMTCwgbm9kZSwN CiAgICAgIGNvc3RfdmVjKQ0KICB8fCB2ZWN0b3JpemFibGVfbGNfcGhpIChh c19hIDxsb29wX3ZlY19pbmZvPiAodmluZm8pLA0KLSAgIHN0bXRfaW5mbywg TlVMTCwgbm9kZSkpOw0KKyAgIHN0bXRfaW5mbywgTlVMTCwgbm9kZSkNCisg ICB8fCB2ZWN0b3JpemFibGVfcmVjdXJyIChhc19hIDxsb29wX3ZlY19pbmZv PiAodmluZm8pLA0KKyAgICBzdG10X2luZm8sIE5VTEwsIG5vZGUsIGNvc3Rf dmVjKSk7DQogICBlbHNlDQogICAgIHsNCiAgICAgICBpZiAoYmJfdmluZm8p DQpAQCAtMTE0MDQsNiArMTE0MDcsMTIgQEAgdmVjdF90cmFuc2Zvcm1fc3Rt dCAodmVjX2luZm8gKnZpbmZvLA0KICAgICAgIGdjY19hc3NlcnQgKGRvbmUp Ow0KICAgICAgIGJyZWFrOw0KKyAgICBjYXNlIHJlY3Vycl9pbmZvX3R5cGU6 DQorICAgICAgZG9uZSA9IHZlY3Rvcml6YWJsZV9yZWN1cnIgKGFzX2EgPGxv b3BfdmVjX2luZm8+ICh2aW5mbyksDQorICAgc3RtdF9pbmZvLCAmdmVjX3N0 bXQsIHNscF9ub2RlLCBOVUxMKTsNCisgICAgICBnY2NfYXNzZXJ0IChkb25l KTsNCisgICAgICBicmVhazsNCisNCiAgICAgY2FzZSBwaGlfaW5mb190eXBl Og0KICAgICAgIGRvbmUgPSB2ZWN0b3JpemFibGVfcGhpICh2aW5mbywgc3Rt dF9pbmZvLCAmdmVjX3N0bXQsIHNscF9ub2RlLCBOVUxMKTsNCiAgICAgICBn Y2NfYXNzZXJ0IChkb25lKTsNCkBAIC0xMTgwNCw2ICsxMTgxMyw5IEBAIHZl Y3RfaXNfc2ltcGxlX3VzZSAodHJlZSBvcGVyYW5kLCB2ZWNfaW5mbyAqdmlu Zm8sIGVudW0gdmVjdF9kZWZfdHlwZSAqZHQsDQpjYXNlIHZlY3RfbmVzdGVk X2N5Y2xlOg0KICBkdW1wX3ByaW50ZiAoTVNHX05PVEUsICJuZXN0ZWQgY3lj bGVcbiIpOw0KICBicmVhazsNCisgY2FzZSB2ZWN0X2ZpcnN0X29yZGVyX3Jl Y3VycmVuY2U6DQorICAgZHVtcF9wcmludGYgKE1TR19OT1RFLCAiZmlyc3Qg b3JkZXIgcmVjdXJyZW5jZVxuIik7DQorICAgYnJlYWs7DQpjYXNlIHZlY3Rf dW5rbm93bl9kZWZfdHlwZToNCiAgZHVtcF9wcmludGYgKE1TR19OT1RFLCAi dW5rbm93blxuIik7DQogIGJyZWFrOw0KQEAgLTExODUyLDcgKzExODY0LDgg QEAgdmVjdF9pc19zaW1wbGVfdXNlICh0cmVlIG9wZXJhbmQsIHZlY19pbmZv ICp2aW5mbywgZW51bSB2ZWN0X2RlZl90eXBlICpkdCwNCiAgICAgICB8fCAq ZHQgPT0gdmVjdF9pbmR1Y3Rpb25fZGVmDQogICAgICAgfHwgKmR0ID09IHZl Y3RfcmVkdWN0aW9uX2RlZg0KICAgICAgIHx8ICpkdCA9PSB2ZWN0X2RvdWJs ZV9yZWR1Y3Rpb25fZGVmDQotICAgICAgfHwgKmR0ID09IHZlY3RfbmVzdGVk X2N5Y2xlKQ0KKyAgICAgIHx8ICpkdCA9PSB2ZWN0X25lc3RlZF9jeWNsZQ0K KyAgICAgIHx8ICpkdCA9PSB2ZWN0X2ZpcnN0X29yZGVyX3JlY3VycmVuY2Up DQogICAgIHsNCiAgICAgICAqdmVjdHlwZSA9IFNUTVRfVklORk9fVkVDVFlQ RSAoZGVmX3N0bXRfaW5mbyk7DQogICAgICAgZ2NjX2Fzc2VydCAoKnZlY3R5 cGUgIT0gTlVMTF9UUkVFKTsNCmRpZmYgLS1naXQgYS9nY2MvdHJlZS12ZWN0 b3JpemVyLmggYi9nY2MvdHJlZS12ZWN0b3JpemVyLmgNCmluZGV4IDQ4NzBj NzU0NDk5Li4wMTY5NjFkYTg1MSAxMDA2NDQNCi0tLSBhL2djYy90cmVlLXZl Y3Rvcml6ZXIuaA0KKysrIGIvZ2NjL3RyZWUtdmVjdG9yaXplci5oDQpAQCAt NjUsNiArNjUsNyBAQCBlbnVtIHZlY3RfZGVmX3R5cGUgew0KICAgdmVjdF9y ZWR1Y3Rpb25fZGVmLA0KICAgdmVjdF9kb3VibGVfcmVkdWN0aW9uX2RlZiwN CiAgIHZlY3RfbmVzdGVkX2N5Y2xlLA0KKyAgdmVjdF9maXJzdF9vcmRlcl9y ZWN1cnJlbmNlLA0KICAgdmVjdF91bmtub3duX2RlZl90eXBlDQp9Ow0KQEAg LTEwMjcsNiArMTAyOCw3IEBAIGVudW0gc3RtdF92ZWNfaW5mb190eXBlIHsN CiAgIGN5Y2xlX3BoaV9pbmZvX3R5cGUsDQogICBsY19waGlfaW5mb190eXBl LA0KICAgcGhpX2luZm9fdHlwZSwNCisgIHJlY3Vycl9pbmZvX3R5cGUsDQog ICBsb29wX2V4aXRfY3RybF92ZWNfaW5mb190eXBlDQp9Ow0KQEAgLTIzMzEs NiArMjMzMyw4IEBAIGV4dGVybiBib29sIHZlY3Rvcml6YWJsZV9sY19waGkg KGxvb3BfdmVjX2luZm8sIHN0bXRfdmVjX2luZm8sDQpnaW1wbGUgKiosIHNs cF90cmVlKTsNCmV4dGVybiBib29sIHZlY3Rvcml6YWJsZV9waGkgKHZlY19p bmZvICosIHN0bXRfdmVjX2luZm8sIGdpbXBsZSAqKiwgc2xwX3RyZWUsDQog ICAgICBzdG10X3ZlY3Rvcl9mb3JfY29zdCAqKTsNCitleHRlcm4gYm9vbCB2 ZWN0b3JpemFibGVfcmVjdXJyIChsb29wX3ZlY19pbmZvLCBzdG10X3ZlY19p bmZvLA0KKyAgIGdpbXBsZSAqKiwgc2xwX3RyZWUsIHN0bXRfdmVjdG9yX2Zv cl9jb3N0ICopOw0KZXh0ZXJuIGJvb2wgdmVjdF9lbXVsYXRlZF92ZWN0b3Jf cCAodHJlZSk7DQpleHRlcm4gYm9vbCB2ZWN0X2Nhbl92ZWN0b3JpemVfd2l0 aG91dF9zaW1kX3AgKHRyZWVfY29kZSk7DQpleHRlcm4gYm9vbCB2ZWN0X2Nh bl92ZWN0b3JpemVfd2l0aG91dF9zaW1kX3AgKGNvZGVfaGVscGVyKTsNCi0t IA0KMi4zNS4zDQogDQo= ------=_001_NextPart474253133376_=------