From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbg151.qq.com (smtpbg151.qq.com [18.169.211.239]) by sourceware.org (Postfix) with ESMTPS id 18F463858031 for ; Wed, 19 Jul 2023 06:37:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 18F463858031 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: bizesmtp77t1689748667tl0bxsxx Received: from LAPTOP-EPITNQBU ( [113.104.214.112]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 19 Jul 2023 14:37:46 +0800 (CST) X-QQ-SSF: 01400000000000G0U000000A0000000 X-QQ-FEAT: +ynUkgUhZJnIK/v18Om1d5la3bAf8FoDsV5l2mDR1fwrXQyhKKuXqZHr2JtPr CX7CLSv71rfBR19P9/cYj9VmdsJ4yGXcxgQ6sR9YcvnuipXXR9W3IQQz3UR15L4du/W7/H1 aMPXxx77Wi98CWZO4Wbklc3dLG98/J9oxNe0riZ9wT17wCzhynsot+LSjhXCdh61pi/bclF 1EBTSwiNYw5oHq/l+2nI7G4OgIoRZYOQ5O5mQgI98VHXtOL4IFZHEn069kckOBPOWEw5ERn xH+IH6ENvP7y0ZHzHIc7OmgQ9M6CQvoyy/5Mk8RmJLJxBL3CxJetpTySsC1Jj9bmCdTPE8r lUCbMSfcyOUr07K652lOoXvtgzXgH4ZgYOxDqzF4CexZ/wVxt7BU0mCAn5GjkbEZ+LKeQ4C qsc8DQ6Zp9w= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 973834712967946715 Date: Wed, 19 Jul 2023 14:37:45 +0800 From: "juzhe.zhong@rivai.ai" To: pan2.li , gcc-patches Cc: pan2.li , yanzhang.wang , kito.cheng Subject: Re: [PATCH v2] RISC-V: Support CALL for RVV floating-point dynamic rounding References: , <20230719062911.521348-1-pan2.li@intel.com> X-Priority: 3 X-GUID: 10F4210A-12C7-4173-B77D-586A742E88EA X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart376263488081_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-8.6 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,MIME_BASE64_TEXT,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,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_NextPart376263488081_=---- Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: base64 UGx6IGFkZCB0aGVzZSBmb2xsb3dpbmcgdGVzdGNhc2UgYW5kIGNoZWNrOg0K DQp0ZXN0MSAoNCBjb21iaW5hdGlvbnMpOg0KDQpmb3IgKC4uLikgew0KICBp ZiAoKSB7DQogICAgIHZmYWRkMQ0KICAgICBjYWxsDQogIH0gZWxzZSB7DQog ICAgIHZmYWRkMg0KICAgICBjYWxsDQogICB9DQp9DQoNCnZmYWRkMSBhbmQg dmZhZGQyIGNhbiBiZSBlaXRoZXIgc3RhdGljIG9yIGR5bi4NCg0KDQp0ZXN0 MiAoNCBjb21iaW5hdGlvbnMpOg0KDQpmb3IgKC4uLikgew0KICBpZiAoKSB7 DQogICAgIGNhbGwNCiAgICB2ZmFkZDENCiAgfSBlbHNlIHsNCiAgICAgY2Fs bA0KdmZhZGQyDQogICB9DQp9DQoNCnZmYWRkMSBhbmQgdmZhZGQyIGNhbiBi ZSBlaXRoZXIgc3RhdGljIG9yIGR5bi4NCg0KDQp0ZXN0MyAoMTYgY29tYmlu YXRpb25zKToNCg0KZm9yICguLi4pIHsNCiAgaWYgKCkgew0KdmZhZGQxDQog ICAgIGNhbGwNCiAgICB2ZmFkZDINCiAgfSBlbHNlIHsNCnZmYWRkMw0KICAg ICBjYWxsDQp2ZmFkZDQNCiAgIH0NCn0NCg0KdmZhZGQxIGFuZCB2ZmFkZDIg YW5kIHZmYWRkMyBhbmQgdmZhZGQgNCBjYW4gYmUgZWl0aGVyIHN0YXRpYyBv ciBkeW4uDQoNCg0KDQpqdXpoZS56aG9uZ0ByaXZhaS5haQ0KIA0KRnJvbTog cGFuMi5saQ0KRGF0ZTogMjAyMy0wNy0xOSAxNDoyOQ0KVG86IGdjYy1wYXRj aGVzDQpDQzoganV6aGUuemhvbmc7IHBhbjIubGk7IHlhbnpoYW5nLndhbmc7 IGtpdG8uY2hlbmcNClN1YmplY3Q6IFtQQVRDSCB2Ml0gUklTQy1WOiBTdXBw b3J0IENBTEwgZm9yIFJWViBmbG9hdGluZy1wb2ludCBkeW5hbWljIHJvdW5k aW5nDQpGcm9tOiBQYW4gTGkgPHBhbjIubGlAaW50ZWwuY29tPg0KIA0KSW4g YmFzaWMgZHluYW1pYyByb3VuZGluZyBtb2RlLCB3ZSBzaW1wbHkgaWdub3Jl IGNhbGwgaW5zdHJ1Y3Rpb25zIGFuZA0Kd2Ugd291bGQgbGlrZSB0byB0YWtl IGNhcmUgb2YgY2FsbCBpbiB0aGlzIFBBVENILg0KIA0KRHVyaW5nIHRoZSBj YWxsLCB0aGUgZnJtIG1heSBiZSB1cGRhdGVkIG9yIGtlZXAgYXMgaXMuIFRo dXMsIHdlIG11c3QNCm1ha2Ugc3VyZSBhdCBsZWFzdCAyIHRoaW5ncy4NCiAN CjEuIFRoZSBzdGF0aWMgZnJtIGJlZm9yZSBjYWxsIHNob3VsZCBub3QgcG9s bHV0ZSB0aGUgZnJtIHZhbHVlIGluIGNhbGwuDQoyLiBUaGUgdXBkYXRlZCBm cm0gdmFsdWUgaW4gY2FsbCBzaG91bGQgYmUgc3RpY2t5IGFmdGVyIGNhbGwg Y29tcGxldGVkLg0KIA0KV2Ugd2lsbCBwZXJmcm9tIHNvbWUgc3RlcHMgdG8g bWFrZSBhYm92ZSBoYXBwZW4uDQogDQoxLiBNYXJrIGNhbGwgaW5zdHJ1Y3Rp b24gd2l0aCBuZXcgbW9kZSBEWU5fQ0FMTC4NCjIuIE1hcmsgdGhlIGluc3Ry dWN0aW9uIGFmdGVyIENBTEwgZnJvbSBOT05FIHRvIERZTi4NCjMuIFdoZW4g ZW1pdCBmb3IgYSBEWU5fQ0FMTCwgd2Ugd2lsbCByZXN0b3JlIHRoZSBmcm0g dmFsdWUuDQo0LiBXaGVuIGVtaXQgZnJvbSBhIERZTl9DQUxMLCB3ZSB3aWxs IGJhY2t1cCB0aGUgZnJtIHZhbHVlLg0KIA0KTGV0J3MgdGFrZSBhIGZsb3cg Zm9yIHRoaXMuDQogDQogICAgICAgICAgICstLS0tLS0tLS0tLS0tKw0KICAg ICAgICAgICB8IEVudHJ5IChEWU4pIHwgPC0gZnJybSBhNQ0KICAgICAgICAg ICArLS0tLS0tLS0tLS0tLSsNCiAgICAgICAgICAvICAgICAgICAgICAgICAg XA0KICAgICstLS0tLS0tKyAgICAgICAgICAgICArLS0tLS0tLS0tLS0rDQog ICAgfCBWRkFERCB8ICAgICAgICAgICAgIHwgVkZBREQgUlRaIHwgIDwtIGZz cm1pIDEoUlRaKQ0KICAgICstLS0tLS0tKyAgICAgICAgICAgICArLS0tLS0t LS0tLS0rDQogICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfA0KICAg ICstLS0tLS0tKyAgICAgICAgICAgICArLS0tLS0tLS0tLS0rDQogICAgfCBD QUxMICB8ICAgICAgICAgICAgIHwgQ0FMTCAgICAgIHwgIDwtIGZzcm0gYTUN CiAgICArLS0tLS0tLSsgICAgICAgICAgICAgKy0tLS0tLS0tLS0tKw0KICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwNCistLS0tLS0tLS0t LSsgICAgICAgICAgICAgICAgICstLS0tLS0tKw0KfCBTSElGVCAgICAgfCA8 LSBmcnJtIGE1ICAgICAgfCBWRkFERCB8ICA8LSBmcnJtIGE1DQorLS0tLS0t LS0tLS0rICAgICAgICAgICAgICAgICArLS0tLS0tLSsNCiAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgLw0KKy0tLS0tLS0tLS0tKyAgICAgICAgICAg ICAgIC8NCnwgVkZBREQgUlVQIHwgPC0gZnNybTEgMyhSVVApDQorLS0tLS0t LS0tLS0rICAgICAgICAgICAgIC8NCiAgICAgICAgICAgXCAgICAgICAgICAg ICAvDQogICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0rDQogICAgICAg ICAgICB8IEV4aXQgKERZTl9FWElUKSB8IDwtIGZzcm0gYTUNCiAgICAgICAg ICAgICstLS0tLS0tLS0tLS0tLS0tLSsNCiANClBsZWFzZSAqTk9URSogc29t ZSBjb3JuIGNhc2VzIGxpa2Ugbm8gaW5zdHJ1Y3Rpb24gYWZ0ZXIgYSBjYWxs IGlzIG5vdA0Kd2VsbCBoYW5kbGVkLCBhbmQgd2lsbCBiZSBjb3ZlcnJlZCBp biBhbm90aGVyIFBBVENIKHMpIHNvb24uDQogDQpTaWduZWQtb2ZmLWJ5OiBQ YW4gTGkgPHBhbjIubGlAaW50ZWwuY29tPg0KQ28tQXV0aG9yZWQtQnk6IEp1 emhlLVpob25nIDxqdXpoZS56aG9uZ0ByaXZhaS5haT4NCiANCmdjYy9DaGFu Z2VMb2c6DQogDQoqIGNvbmZpZy9yaXNjdi9yaXNjdi5jYyAoRFlOQU1JQ19G Uk1fUlRMKTogTmV3IG1hY3JvLg0KKFNUQVRJQ19GUk1fUCk6IERpdHRvLg0K KHN0cnVjdCBtb2RlX3N3aXRjaGluZ19pbmZvKTogTmV3IHN0cnVjdCBmb3Ig bW9kZSBzd2l0Y2hpbmcuDQooc3RydWN0IG1hY2hpbmVfZnVuY3Rpb24pOiBB ZGQgbmV3IGZpZWxkIG1vZGUgc3dpdGNoaW5nLg0KKHJpc2N2X2VtaXRfZnJt X21vZGVfc2V0KTogQWRkIERZTl9DQUxMIGVtaXQuDQoocmlzY3ZfZnJtX21v ZGVfbmVlZGVkKTogTmV3IGZ1bmN0aW9uIGZvciBmcm0gbW9kZSBuZWVkZWQu DQoocmlzY3ZfbW9kZV9uZWVkZWQpOiBFeHRyYWMgZnVuY3Rpb24gZm9yIGZy bS4NCihyaXNjdl9mcm1fbW9kZV9hZnRlcik6IEFkZCBEWU5fQ0FMTCBhZnRl ci4NCiogY29uZmlnL3Jpc2N2L3ZlY3Rvci5tZCAoZnJtX21vZGUpOiBBZGQg ZHluX2NhbGwuDQooZnNybXNpX3Jlc3RvcmVfZXhpdCk6IFJlbmFtZSB0byBf dm9sYXRpbGUuDQooZnNybXNpX3Jlc3RvcmVfdm9sYXRpbGUpOiBMaWtld2lz ZS4NCiANCmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOg0KIA0KKiBnY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1pbnNlcnQtNy5j OiBBZGp1c3QNCnRlc3QgY2FzZXMuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzMuYzogTmV3IHRlc3Qu DQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tMzQuYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzUuYzogTmV3IHRl c3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZHluYW1pYy1mcm0tMzYuYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzcuYzogTmV3 IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tMzguYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzkuYzog TmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tNDAuYzogTmV3IHRlc3QuDQoqIGdjYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDEu YzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZHluYW1pYy1mcm0tNDIuYzogTmV3IHRlc3QuDQoqIGdjYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NDMuYzogTmV3IHRlc3QuDQoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDQuYzogTmV3IHRlc3QuDQoqIGdj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLXJ1bi00 LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWZybS1ydW4tNS5jOiBOZXcgdGVzdC4NCi0tLQ0KZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi5jYyAgICAgICAgICAgICAgICAgICAgIHwgMTAw ICsrKysrKysrKysrKysrKystLQ0KZ2NjL2NvbmZpZy9yaXNjdi92ZWN0b3Iu bWQgICAgICAgICAgICAgICAgICAgIHwgICA0ICstDQouLi4vcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzMuYyAgICAgfCAgMzEgKysrKysr DQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzQuYyAg ICAgfCAgMzIgKysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tMzUuYyAgICAgfCAgMzIgKysrKysrDQouLi4vcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzYuYyAgICAgfCAgMjkgKysrKysN Ci4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zNy5jICAg ICB8ICAzNiArKysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tMzguYyAgICAgfCAgMzQgKysrKysrDQouLi4vcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzkuYyAgICAgfCAgMzYgKysrKysr Kw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQwLmMg ICAgIHwgIDM0ICsrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTQxLmMgICAgIHwgIDM3ICsrKysrKysNCi4uLi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00Mi5jICAgICB8ICAzNyArKysr KysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDMu YyAgICAgfCAgMzggKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTQ0LmMgICAgIHwgIDQwICsrKysrKysNCi4uLi9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0LTcuYyB8ICAgNSAr LQ0KLi4uL3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1ydW4tNC5j ICAgIHwgIDgyICsrKysrKysrKysrKysrDQouLi4vcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZnJtLXJ1bi01LmMgICAgfCAgODMgKysrKysrKysrKysr KysrDQoxNyBmaWxlcyBjaGFuZ2VkLCA2NzYgaW5zZXJ0aW9ucygrKSwgMTQg ZGVsZXRpb25zKC0pDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTMzLmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tMzQuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS0zNS5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTM2LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tMzcuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS0zOC5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTM5LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NDAuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00 MS5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQy LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDMu Yw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00NC5j DQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1ydW4tNC5jDQpjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1ydW4tNS5jDQogDQpkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYyBiL2djYy9jb25maWcv cmlzY3YvcmlzY3YuY2MNCmluZGV4IGE0NWM1MmEyNDM3Li44ZmY4MDViY2Ji MSAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YuY2MNCisr KyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YuY2MNCkBAIC05MCw2ICs5MCwx MiBAQCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAg SWYgbm90IHNlZQ0KLyogVHJ1ZSBpZiBiaXQgQklUIGlzIHNldCBpbiBWQUxV RS4gICovDQojZGVmaW5lIEJJVFNFVF9QKFZBTFVFLCBCSVQpICgoKFZBTFVF KSAmICgxVUxMIDw8IChCSVQpKSkgIT0gMCkNCisvKiBFeHRyYWN0IHRoZSBi YWNrdXAgZHluYW1pYyBmcm0gcnRsLiAgKi8NCisjZGVmaW5lIERZTkFNSUNf RlJNX1JUTChjKSAoKGMpLT5tYWNoaW5lLT5tb2RlX3N3X2luZm8uZHluYW1p Y19mcm0pDQorDQorLyogVHJ1ZSB0aGUgbW9kZSBzd2l0Y2hpbmcgaGFzIHN0 YXRpYyBmcm0sIG9yIGZhbHNlLiAgKi8NCisjZGVmaW5lIFNUQVRJQ19GUk1f UChjKSAoKGMpLT5tYWNoaW5lLT5tb2RlX3N3X2luZm8uc3RhdGljX2ZybV9w KQ0KKw0KLyogSW5mb3JtYXRpb24gYWJvdXQgYSBmdW5jdGlvbidzIGZyYW1l IGxheW91dC4gICovDQpzdHJ1Y3QgR1RZKCgpKSAgcmlzY3ZfZnJhbWVfaW5m byB7DQogICAvKiBUaGUgc2l6ZSBvZiB0aGUgZnJhbWUgaW4gYnl0ZXMuICAq Lw0KQEAgLTEyNSw2ICsxMzEsMjIgQEAgZW51bSByaXNjdl9wcml2aWxlZ2Vf bGV2ZWxzIHsNCiAgIFVOS05PV05fTU9ERSwgVVNFUl9NT0RFLCBTVVBFUlZJ U09SX01PREUsIE1BQ0hJTkVfTU9ERQ0KfTsNCitzdHJ1Y3QgR1RZKCgpKSBt b2RlX3N3aXRjaGluZ19pbmZvIHsNCisgIC8qIFRoZSBSVEwgdmFyaWFibGUg d2hpY2ggc3RvcmVzIHRoZSBkeW5hbWljIEZSTSB2YWx1ZS4gIFdlIGFsd2F5 cyB1c2UgdGhpcw0KKyAgICAgUlRYIHRvIHJlc3RvcmUgZHluYW1pYyBGUk0g cm91bmRpbmcgbW9kZSBpbiBtb2RlIHN3aXRjaGluZy4gICovDQorICBydHgg ZHluYW1pY19mcm07DQorDQorICAvKiBUaGUgYm9vbGVhbiB2YXJpYWJsZXMg aW5kaWNhdGVzIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBzdGF0aWMgcm91bmRp bmcNCisgICAgIG1vZGUgaW5zdHJ1Y3Rpb24gaW4gdGhlIGZ1bmN0aW9uIG9y IG5vdC4gICovDQorICBib29sIHN0YXRpY19mcm1fcDsNCisNCisgIG1vZGVf c3dpdGNoaW5nX2luZm8gKCkNCisgICAgew0KKyAgICAgIGR5bmFtaWNfZnJt ID0gTlVMTF9SVFg7DQorICAgICAgc3RhdGljX2ZybV9wID0gZmFsc2U7DQor ICAgIH0NCit9Ow0KKw0Kc3RydWN0IEdUWSgoKSkgIG1hY2hpbmVfZnVuY3Rp b24gew0KICAgLyogVGhlIG51bWJlciBvZiBleHRyYSBzdGFjayBieXRlcyB0 YWtlbiB1cCBieSByZWdpc3RlciB2YXJhcmdzLg0KICAgICAgVGhpcyBhcmVh IGlzIGFsbG9jYXRlZCBieSB0aGUgY2FsbGVlIGF0IHRoZSB2ZXJ5IHRvcCBv ZiB0aGUgZnJhbWUuICAqLw0KQEAgLTE0OCw5ICsxNzAsNyBAQCBzdHJ1Y3Qg R1RZKCgpKSAgbWFjaGluZV9mdW5jdGlvbiB7DQogICAgICBub3QgYmUgY29u c2lkZXJlZCBieSB0aGUgcHJvbG9ndWUgYW5kIGVwaWxvZ3VlLiAgKi8NCiAg IGJvb2wgcmVnX2lzX3dyYXBwZWRfc2VwYXJhdGVseVtGSVJTVF9QU0VVRE9f UkVHSVNURVJdOw0KLSAgLyogVGhlIFJUTCB2YXJpYWJsZSB3aGljaCBzdG9y ZXMgdGhlIGR5bmFtaWMgRlJNIHZhbHVlLiAgV2UgYWx3YXlzIHVzZSB0aGlz DQotICAgICBSVFggdG8gcmVzdG9yZSBkeW5hbWljIEZSTSByb3VuZGluZyBt b2RlIGluIG1vZGUgc3dpdGNoaW5nLiAgKi8NCi0gIHJ0eCBkeW5hbWljX2Zy bTsNCisgIHN0cnVjdCBtb2RlX3N3aXRjaGluZ19pbmZvIG1vZGVfc3dfaW5m bzsNCn07DQovKiBJbmZvcm1hdGlvbiBhYm91dCBhIHNpbmdsZSBhcmd1bWVu dC4gICovDQpAQCAtNzY2OSw5ICs3Njg5LDEzIEBAIHJpc2N2X3N0YXRpY19m cm1fbW9kZV9wIChpbnQgbW9kZSkNCnN0YXRpYyB2b2lkDQpyaXNjdl9lbWl0 X2ZybV9tb2RlX3NldCAoaW50IG1vZGUsIGludCBwcmV2X21vZGUpDQp7DQor ICBydHggYmFja3VwX3JlZyA9IERZTkFNSUNfRlJNX1JUTCAoY2Z1bik7DQor DQorICBpZiAocHJldl9tb2RlID09IEZSTV9NT0RFX0RZTl9DQUxMKQ0KKyAg ICBlbWl0X2luc24gKGdlbl9mcnJtc2kgKGJhY2t1cF9yZWcpKTsgLyogQmFj a3VwIGZybSB3aGVuIERZTl9DQUxMLiAgKi8NCisNCiAgIGlmIChtb2RlICE9 IHByZXZfbW9kZSkNCiAgICAgew0KLSAgICAgIHJ0eCBiYWNrdXBfcmVnID0g Y2Z1bi0+bWFjaGluZS0+ZHluYW1pY19mcm07DQogICAgICAgLyogVE9ETzog QnkgZGVzaWduLCBGUk1fTU9ERV94eHggdXNlZCBieSBtb2RlIHN3aXRjaCB3 aGljaCBpcw0KZGlmZmVyZW50IGZyb20gdGhlIEZSTSB2YWx1ZSBsaWtlIEZS TV9SVFogZGVmaW5lZCBpbg0KcmlzY3YtcHJvdG9zLmguICBXaGVuIG1vZGUg c3dpdGNoaW5nIHdlIGFjdHVhbGx5IG5lZWQgYSBjb252ZXJzaW9uDQpAQCAt NzY4MSw5ICs3NzA1LDEzIEBAIHJpc2N2X2VtaXRfZnJtX21vZGVfc2V0IChp bnQgbW9kZSwgaW50IHByZXZfbW9kZSkNCmFuZCB0aGVuIHdlIGxldmVyYWdl IHRoaXMgYXNzdW1wdGlvbiB3aGVuIGVtaXQuICAqLw0KICAgICAgIHJ0eCBm cm0gPSBnZW5faW50X21vZGUgKG1vZGUsIFNJbW9kZSk7DQotICAgICAgaWYg KG1vZGUgPT0gRlJNX01PREVfRFlOX0VYSVQgJiYgcHJldl9tb2RlICE9IEZS TV9NT0RFX0RZTikNCisgICAgICBpZiAobW9kZSA9PSBGUk1fTU9ERV9EWU5f Q0FMTCAmJiBwcmV2X21vZGUgIT0gRlJNX01PREVfRFlOKQ0KLyogTm8gbmVl ZCB0byBlbWl0IHdoZW4gcHJldiBtb2RlIGlzIERZTiBhbHJlYWR5LiAgKi8N Ci0gZW1pdF9pbnNuIChnZW5fZnNybXNpX3Jlc3RvcmVfZXhpdCAoYmFja3Vw X3JlZykpOw0KKyBlbWl0X2luc24gKGdlbl9mc3Jtc2lfcmVzdG9yZV92b2xh dGlsZSAoYmFja3VwX3JlZykpOw0KKyAgICAgIGVsc2UgaWYgKG1vZGUgPT0g RlJNX01PREVfRFlOX0VYSVQgJiYgU1RBVElDX0ZSTV9QIChjZnVuKQ0KKyAm JiBwcmV2X21vZGUgIT0gRlJNX01PREVfRFlOICYmIHByZXZfbW9kZSAhPSBG Uk1fTU9ERV9EWU5fQ0FMTCkNCisgLyogTm8gbmVlZCB0byBlbWl0IHdoZW4g cHJldiBtb2RlIGlzIERZTiBvciBEWU5fQ0FMTCBhbHJlYWR5LiAgKi8NCisg ZW1pdF9pbnNuIChnZW5fZnNybXNpX3Jlc3RvcmVfdm9sYXRpbGUgKGJhY2t1 cF9yZWcpKTsNCiAgICAgICBlbHNlIGlmIChtb2RlID09IEZSTV9NT0RFX0RZ TikNCi8qIFJlc3RvcmUgZnJtIHZhbHVlIGZyb20gYmFja3VwIHdoZW4gc3dp dGNoIHRvIERZTiBtb2RlLiAgKi8NCmVtaXRfaW5zbiAoZ2VuX2Zzcm1zaV9y ZXN0b3JlIChiYWNrdXBfcmVnKSk7DQpAQCAtNzcxMyw2ICs3NzQxLDUzIEBA IHJpc2N2X2VtaXRfbW9kZV9zZXQgKGludCBlbnRpdHksIGludCBtb2RlLCBp bnQgcHJldl9tb2RlLA0KICAgICB9DQp9DQorLyogUmV0dXJuIG1vZGUgdGhh dCBmcm0gbXVzdCBiZSBzd2l0Y2hlZCBpbnRvDQorICAgcHJpb3IgdG8gdGhl IGV4ZWN1dGlvbiBvZiBpbnNuLiAgKi8NCisNCitzdGF0aWMgaW50DQorcmlz Y3ZfZnJtX21vZGVfbmVlZGVkIChydHhfaW5zbiAqY3VyX2luc24sIGludCBj b2RlKQ0KK3sNCisgIGlmIChDQUxMX1AgKGN1cl9pbnNuKSkNCisgICAgcmV0 dXJuIEZSTV9NT0RFX0RZTl9DQUxMOw0KKw0KKyAgaW50IG1vZGUgPSBjb2Rl ID49IDAgPyBnZXRfYXR0cl9mcm1fbW9kZSAoY3VyX2luc24pIDogRlJNX01P REVfTk9ORTsNCisNCisgIGlmIChtb2RlID09IEZSTV9NT0RFX05PTkUpDQor ICAgIHsNCisgICAgICAvKiBBZnRlciBtZWV0IGEgY2FsbCwgd2UgbmVlZCB0 byBiYWNrdXAgdGhlIGZybSBiZWNhdXNlIGl0IG1heSBiZQ0KKyB1cGRhdGVk IGR1cmluZyB0aGUgY2FsbC4gSGVyZSwgZm9yIGVhY2ggaW5zbiwgd2Ugd2ls bCBjaGVjayBpZg0KKyB0aGUgcHJldmlvdXMgaW5zbiBpcyBhIGNhbGwgb3Ig bm90LiBXaGVuIHByZXZpb3VzIGluc24gaXMgY2FsbCwNCisgdGhlcmUgd2ls bCBiZSAyIGNhc2VzIGZvciB0aGUgZW1pdCBtb2RlIHNldC4NCisNCisgMS4g Q3VycmVudCBpbnNuIGlzIG5vdCBNT0RFX05PTkUsIHRoZW4gdGhlIG1vZGUg c3dpdGNoIGZyYW1ld29yaw0KKyAgICAgd2lsbCBkbyB0aGUgbW9kZSBzd2l0 Y2ggZnJvbSBNT0RFX0NBTEwgdG8gTU9ERV9OT05fTk9ORSBuYXRpdmVseS4N CisgMi4gQ3VycmVudCBpbnNuIGlzIE1PREVfTk9ORSwgd2UgbmVlZCB0byBh ZGp1c3QgdGhlIE1PREVfTk9ORSB0bw0KKyAgICAgdGhlIE1PREVfRFlOLCBh bmQgbGVhdmUgdGhlIG1vZGUgc3dpdGNoIGl0c2VsZiB0byBwZXJmb3JtDQor ICAgICB0aGUgZW1pdCBtb2RlIHNldC4NCisNCisgVE9ETzogdGhpcyBjYW5u b3QgaGFuZGxlIG9uZSBjYXNlIGlmIHRoZXJlIGlzIG5vIGluc3RydWN0aW9u DQorIGFmdGVyIGEgY2FsbCwgd2Ugd2lsbCB0YWtlIGNhcmUgb2YgaXQgc29v bi4NCisgICAgICAgKi8NCisgICAgICBydHhfaW5zbiAqaW5zbjsNCisgICAg ICBiYXNpY19ibG9jayBiYiA9IEJMT0NLX0ZPUl9JTlNOIChjdXJfaW5zbik7 DQorDQorICAgICAgZm9yIChpbnNuID0gUFJFVl9JTlNOIChjdXJfaW5zbik7 IGluc247IGluc24gPSBQUkVWX0lOU04gKGluc24pKQ0KKyB7DQorICAgaWYg KElOU05fUCAoaW5zbikpDQorICAgICB7DQorICAgICAgIGlmIChDQUxMX1Ag KGluc24pKQ0KKyBtb2RlID0gRlJNX01PREVfRFlOOw0KKyAgICAgICBicmVh azsNCisgICAgIH0NCisNCisgICBpZiAoaW5zbiA9PSBQUkVWX0lOU04gKEJC X0hFQUQgKGJiKSkpDQorICAgICBicmVhazsNCisgfQ0KKyAgICB9DQorDQor ICByZXR1cm4gbW9kZTsNCit9DQorDQovKiBSZXR1cm4gbW9kZSB0aGF0IGVu dGl0eSBtdXN0IGJlIHN3aXRjaGVkIGludG8NCiAgICBwcmlvciB0byB0aGUg ZXhlY3V0aW9uIG9mIGluc24uICAqLw0KQEAgLTc3MjYsNyArNzgwMSw3IEBA IHJpc2N2X21vZGVfbmVlZGVkIChpbnQgZW50aXR5LCBydHhfaW5zbiAqaW5z bikNCiAgICAgY2FzZSBSSVNDVl9WWFJNOg0KICAgICAgIHJldHVybiBjb2Rl ID49IDAgPyBnZXRfYXR0cl92eHJtX21vZGUgKGluc24pIDogVlhSTV9NT0RF X05PTkU7DQogICAgIGNhc2UgUklTQ1ZfRlJNOg0KLSAgICAgIHJldHVybiBj b2RlID49IDAgPyBnZXRfYXR0cl9mcm1fbW9kZSAoaW5zbikgOiBGUk1fTU9E RV9OT05FOw0KKyAgICAgIHJldHVybiByaXNjdl9mcm1fbW9kZV9uZWVkZWQg KGluc24sIGNvZGUpOw0KICAgICBkZWZhdWx0Og0KICAgICAgIGdjY191bnJl YWNoYWJsZSAoKTsNCiAgICAgfQ0KQEAgLTc4MDMsNiArNzg3OCwxMSBAQCBy aXNjdl92eHJtX21vZGVfYWZ0ZXIgKHJ0eF9pbnNuICppbnNuLCBpbnQgbW9k ZSkNCnN0YXRpYyBpbnQNCnJpc2N2X2ZybV9tb2RlX2FmdGVyIChydHhfaW5z biAqaW5zbiwgaW50IG1vZGUpDQp7DQorICBTVEFUSUNfRlJNX1AgKGNmdW4p ID0gU1RBVElDX0ZSTV9QIChjZnVuKSB8fCByaXNjdl9zdGF0aWNfZnJtX21v ZGVfcCAobW9kZSk7DQorDQorICBpZiAoQ0FMTF9QIChpbnNuKSkNCisgICAg cmV0dXJuIEZSTV9NT0RFX0RZTl9DQUxMOw0KKw0KICAgaWYgKGZybV91bmtu b3duX2R5bmFtaWNfcCAoaW5zbikpDQogICAgIHJldHVybiBGUk1fTU9ERV9E WU47DQpAQCAtNzg0MywxMCArNzkyMywxMCBAQCByaXNjdl9tb2RlX2VudHJ5 IChpbnQgZW50aXR5KQ0KICAgICAgIHJldHVybiBWWFJNX01PREVfTk9ORTsN CiAgICAgY2FzZSBSSVNDVl9GUk06DQogICAgICAgew0KLSBpZiAoIWNmdW4t Pm1hY2hpbmUtPmR5bmFtaWNfZnJtKQ0KKyBpZiAoIURZTkFNSUNfRlJNX1JU TChjZnVuKSkNCiAgew0KLSAgICAgY2Z1bi0+bWFjaGluZS0+ZHluYW1pY19m cm0gPSBnZW5fcmVnX3J0eCAoU0ltb2RlKTsNCi0gICAgIGVtaXRfaW5zbl9h dF9lbnRyeSAoZ2VuX2Zycm1zaSAoY2Z1bi0+bWFjaGluZS0+ZHluYW1pY19m cm0pKTsNCisgICAgIERZTkFNSUNfRlJNX1JUTCAoY2Z1bikgPSBnZW5fcmVn X3J0eCAoU0ltb2RlKTsNCisgICAgIGVtaXRfaW5zbl9hdF9lbnRyeSAoZ2Vu X2Zycm1zaSAoRFlOQU1JQ19GUk1fUlRMIChjZnVuKSkpOw0KICB9DQogIC8q IEFjY29yZGluZyB0byBSVlYgMS4wIHNwZWMsIGFsbCB2ZWN0b3IgZmxvYXRp bmctcG9pbnQgb3BlcmF0aW9ucyB1c2UNCmRpZmYgLS1naXQgYS9nY2MvY29u ZmlnL3Jpc2N2L3ZlY3Rvci5tZCBiL2djYy9jb25maWcvcmlzY3YvdmVjdG9y Lm1kDQppbmRleCAyMTVlY2I5Y2I1OC4uOGIzNTRlNTkzY2UgMTAwNjQ0DQot LS0gYS9nY2MvY29uZmlnL3Jpc2N2L3ZlY3Rvci5tZA0KKysrIGIvZ2NjL2Nv bmZpZy9yaXNjdi92ZWN0b3IubWQNCkBAIC00NzUsNyArNDc1LDcgQEAgKGRl ZmluZV9hdHRyICJ2eHJtX21vZGUiICJybnUscm5lLHJkbixyb2Qsbm9uZSIN CikNCjs7IERlZmluZXMgcm91bmRpbmcgbW9kZSBvZiBhbiBmbG9hdGluZy1w b2ludCBvcGVyYXRpb24uDQotKGRlZmluZV9hdHRyICJmcm1fbW9kZSIgInJu ZSxydHoscmRuLHJ1cCxybW0sZHluLGR5bl9leGl0LG5vbmUiDQorKGRlZmlu ZV9hdHRyICJmcm1fbW9kZSIgInJuZSxydHoscmRuLHJ1cCxybW0sZHluLGR5 bl9leGl0LGR5bl9jYWxsLG5vbmUiDQogICAoY29uZA0KICAgICBbDQogICAg ICAgKGVxX2F0dHIgInR5cGUiICJ2ZmFsdSIpDQpAQCAtNjEwLDcgKzYxMCw3 IEBAIChkZWZpbmVfaW5zbiAiZnNybXNpX3Jlc3RvcmUiDQo7OyBUaGUgdm9s YXRpbGUgZnNybXNpIHJlc3RvcmUgaXMgdXNlZCBmb3IgdGhlIGV4aXQgcG9p bnQgZm9yIHRoZQ0KOzsgZHluYW1pYyBtb2RlIHN3aXRjaGluZy4gSXQgd2ls bCBnZW5lcmF0ZSBvbmUgdm9sYXRpbGUgZnNybSBhNQ0KOzsgd2hpY2ggd29u J3QgYmUgZWxpbWluYXRlZC4NCi0oZGVmaW5lX2luc24gImZzcm1zaV9yZXN0 b3JlX2V4aXQiDQorKGRlZmluZV9pbnNuICJmc3Jtc2lfcmVzdG9yZV92b2xh dGlsZSINCiAgIFsoc2V0IChyZWc6U0kgRlJNX1JFR05VTSkNCih1bnNwZWNf dm9sYXRpbGU6U0kgWyhtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29w ZXJhbmQiICJyIildDQogICAgVU5TUEVDVl9GUk1fUkVTVE9SRV9FWElUKSld DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTMzLmMgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tMzMuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmlu ZGV4IDAwMDAwMDAwMDAwLi40YmQ1MjBlYTJhZg0KLS0tIC9kZXYvbnVsbA0K KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTMzLmMNCkBAIC0wLDAgKzEsMzEg QEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9u cyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIg fSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitzaXpl X3QgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkNCitub3JtYWxpemVfdmwg KHNpemVfdCB2bCkNCit7DQorICBpZiAodmwgJSA0ID09IDApDQorICAgIHJl dHVybiB2bDsNCisNCisgIHJldHVybiAoKHZsIC8gNCkgKyAxKSAqIDQ7DQor fQ0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1p Y19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNp emVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0K Kw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVz dWx0LCBvcDIsIDQsIHZsKTsNCisgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7 DQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChvcDEs IHJlc3VsdCwgMiwgdmwpOw0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQor DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFk ZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0r fSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAt OV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05 XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTM0LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzQuYw0KbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi42YzdjZjdl ZjY5Yw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTM0LmMNCkBAIC0wLDAgKzEsMzIgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUg fSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9 bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNj dl92ZWN0b3IuaCINCisNCitzaXplX3QgX19hdHRyaWJ1dGVfXyAoKG5vaW5s aW5lKSkNCitub3JtYWxpemVfdmwgKHNpemVfdCB2bCkNCit7DQorICBpZiAo dmwgJSA0ID09IDApDQorICAgIHJldHVybiB2bDsNCisNCisgIHJldHVybiAo KHZsIC8gNCkgKyAxKSAqIDQ7DQorfQ0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rl c3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEs IHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQz Mm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92 ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDQsIHZsKTsNCisgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0 LCAyLCB2bCk7DQorDQorICB2bCA9IG5vcm1hbGl6ZV92bCAodmwpOw0KKw0K KyAgcmV0dXJuIHZsID4gMTI4ID8gcmVzdWx0IDogb3AyOw0KK30NCisNCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52 W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDIg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmcnJtXHMrW2F4c11bMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDIg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmc3JtXHMrW2F4c11bMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxc cypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tMzUuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zNS5jDQpuZXcgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLmI3ZjVhNjkxOWY0 DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzUu Yw0KQEAgLTAsMCArMSwzMiBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICov DQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0 IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3Zl Y3Rvci5oIg0KKw0KK3NpemVfdCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUp KQ0KK25vcm1hbGl6ZV92bCAoc2l6ZV90IHZsKQ0KK3sNCisgIGlmICh2bCAl IDQgPT0gMCkNCisgICAgcmV0dXJuIHZsOw0KKw0KKyAgcmV0dXJuICgodmwg LyA0KSArIDEpICogNDsNCit9DQorDQordmZsb2F0MzJtMV90DQordGVzdF9m bG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZs b2F0MzJtMV90IG9wMiwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFf dCByZXN1bHQgPSBvcDE7DQorDQorICB2bCA9IG5vcm1hbGl6ZV92bCAodmwp Ow0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAo cmVzdWx0LCBvcDIsIDQsIHZsKTsNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZh ZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0LCAyLCB2bCk7DQorDQorICBy ZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlsw LTldKyxccypbZmF2XStbMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9 IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtmc3JtaVxzK1swMTIzNF19IDIgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9 IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5v dCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzYuYyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS0zNi5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMDAwMDAuLjQ0ODVjZWEyNGQ5DQotLS0gL2Rldi9udWxsDQorKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZHluYW1pYy1mcm0tMzYuYw0KQEAgLTAsMCArMSwyOSBAQA0K Ky8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICIt bWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICov DQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3NpemVfdCBf X2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQ0KK25vcm1hbGl6ZV92bCAoc2l6 ZV90IHZsKQ0KK3sNCisgIGlmICh2bCAlIDQgPT0gMCkNCisgICAgcmV0dXJu IHZsOw0KKw0KKyAgcmV0dXJuICgodmwgLyA0KSArIDEpICogNDsNCit9DQor DQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2Zy bSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90 IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQor ICBpZiAodmwgJSA0ICE9IDApDQorICAgIHZsID0gbm9ybWFsaXplX3ZsICh2 bCk7DQorDQorICByZXR1cm4gdmwgPiAxNiA/IHJlc3VsdCA6IG9wMjsNCit9 DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNy bWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1swMTIzNF19 IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qg e2Zzcm1ccytbYXhzXVswLTldK30gfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnJybVxzK1theHNdWzAtOV0rfSB9IH0g Ki8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzcuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS0zNy5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0K aW5kZXggMDAwMDAwMDAwMDAuLmExZmNhMWEyYTNmDQotLS0gL2Rldi9udWxs DQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzcuYw0KQEAgLTAsMCArMSwz NiBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRp b25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJp IiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3Np emVfdCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQ0KK25vcm1hbGl6ZV92 bCAoc2l6ZV90IHZsKQ0KK3sNCisgIGlmICh2bCAlIDQgPT0gMCkNCisgICAg cmV0dXJuIHZsOw0KKw0KKyAgcmV0dXJuICgodmwgLyA0KSArIDEpICogNDsN Cit9DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5h bWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwN CisgICAgICAgaW50IGNvdW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0 MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAoaW50IGkgPSAwOyBp IDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIGlmIChpICUgMiA9PSAw KQ0KKyAgICAgICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9y bSAocmVzdWx0LCBvcDIsIDQsIHZsKTsNCisgICAgICBlbHNlDQorICAgICAg ICB2bCA9IG5vcm1hbGl6ZV92bCAodmwpOw0KKyAgICB9DQorDQorICByZXR1 cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTld KyxccypbZmF2XStbMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDIg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmc3JtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDEg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7 ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzguYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS0zOC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMDAwMDAuLjhkNTljYWU5YTg3DQotLS0gL2Rldi9udWxsDQorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tMzguYw0KQEAgLTAsMCArMSwzNCBAQA0KKy8q IHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFy Y2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQor DQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3NpemVfdCBfX2F0 dHJpYnV0ZV9fICgobm9pbmxpbmUpKQ0KK25vcm1hbGl6ZV92bCAoc2l6ZV90 IHZsKQ0KK3sNCisgIGlmICh2bCAlIDQgPT0gMCkNCisgICAgcmV0dXJuIHZs Ow0KKw0KKyAgcmV0dXJuICgodmwgLyA0KSArIDEpICogNDsNCit9DQorDQor dmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAo dmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICAg aW50IGNvdW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJl c3VsdCA9IG9wMTsNCisNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgY291bnQ7 IGkrKykNCisgICAgew0KKyAgICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRf dnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7DQorICAgICAgdmwg PSBub3JtYWxpemVfdmwgKHZsKTsNCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJl c3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMq W2Zhdl0rWzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAyIH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNy bVxzK1theHNdWzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAxIH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1p XHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTM5LmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tMzkuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAw MDAwLi4wNGM1NDg3NzM5Mw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTM5LmMNCkBAIC0wLDAgKzEsMzYgQEANCisvKiB7IGRn LWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2 NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNp bmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitzaXplX3QgX19hdHRyaWJ1 dGVfXyAoKG5vaW5saW5lKSkNCitub3JtYWxpemVfdmwgKHNpemVfdCB2bCkN Cit7DQorICBpZiAodmwgJSA0ID09IDApDQorICAgIHJldHVybiB2bDsNCisN CisgIHJldHVybiAoKHZsIC8gNCkgKyAxKSAqIDQ7DQorfQ0KKw0KK3ZmbG9h dDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9h dDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAgIGludCBj b3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQg PSBvcDE7DQorDQorICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKysp DQorICAgIHsNCisgICAgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2Yz Mm0xX3JtIChyZXN1bHQsIG9wMiwgNCwgdmwpOw0KKw0KKyAgICAgIGlmICh2 bCAlIDggIT0gMCkNCisgICAgICAgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7 DQorICAgIH0NCisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZd XHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gMiB9IH0g Ki8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zy cm1ccytbYXhzXVswLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMiB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e2Zzcm1pXHMrWzAxMjM0XX0gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlsw MTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZy bS00MC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQwLmMNCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uNDljZjUyZjczOWINCi0t LSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00MC5jDQpA QCAtMCwwICsxLDM0IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisv KiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8z IC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9y LmgiDQorDQorc2l6ZV90IF9fYXR0cmlidXRlX18gKChub2lubGluZSkpDQor bm9ybWFsaXplX3ZsIChzaXplX3QgdmwpDQorew0KKyAgaWYgKHZsICUgNCA9 PSAwKQ0KKyAgICByZXR1cm4gdmw7DQorDQorICByZXR1cm4gKCh2bCAvIDQp ICsgMSkgKiA0Ow0KK30NCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0 X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQz Mm0xX3Qgb3AyLCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJl c3VsdCA9IG9wMTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZf ZjMybTFfcm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7DQorDQorICB2bCA9IG5v cm1hbGl6ZV92bCAodmwpOw0KKyAgdmwgPSBub3JtYWxpemVfdmwgKHZsKTsN CisNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9w MSwgcmVzdWx0LCAyLCB2bCk7DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30N CisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zm YWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05 XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIz NF19IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVsw LTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZHluYW1pYy1mcm0tNDEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00MS5jDQpu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjc5ZWY1 NWIyYzlmDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tNDEuYw0KQEAgLTAsMCArMSwzNyBAQA0KKy8qIHsgZGctZG8gY29tcGls ZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFi aT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJp c2N2X3ZlY3Rvci5oIg0KKw0KK3NpemVfdCBfX2F0dHJpYnV0ZV9fICgobm9p bmxpbmUpKQ0KK25vcm1hbGl6ZV92bCAoc2l6ZV90IHZsKQ0KK3sNCisgIGlm ICh2bCAlIDQgPT0gMCkNCisgICAgcmV0dXJuIHZsOw0KKw0KKyAgcmV0dXJu ICgodmwgLyA0KSArIDEpICogNDsNCit9DQorDQordmZsb2F0MzJtMV90DQor dGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9w MSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9h dDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICByZXN1bHQgPSBfX3Jpc2N2 X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgNCwgdmwpOw0KKw0K KyAgdmwgPSBub3JtYWxpemVfdmwgKHZsKTsNCisNCisgIHJlc3VsdCA9IF9f cmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7 DQorDQorICB2bCA9IG5vcm1hbGl6ZV92bCAodmwpOw0KKw0KKyAgcmVzdWx0 ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDQs IHZsKTsNCisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMr dlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gMyB9IH0gKi8N CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1c cytbYXhzXVswLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMyB9IH0gKi8N CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1c cytbYXhzXVswLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIz NF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00 Mi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQyLmMNCm5ldyBmaWxlIG1vZGUg MTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uZDJhMTdhZDcxNWYNCi0tLSAv ZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00Mi5jDQpAQCAt MCwwICsxLDM3IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7 IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1X bm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgi DQorDQorc2l6ZV90IF9fYXR0cmlidXRlX18gKChub2lubGluZSkpDQorbm9y bWFsaXplX3ZsIChzaXplX3QgdmwpDQorew0KKyAgaWYgKHZsICUgNCA9PSAw KQ0KKyAgICByZXR1cm4gdmw7DQorDQorICByZXR1cm4gKCh2bCAvIDQpICsg MSkgKiA0Ow0KK30NCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3Bv aW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0x X3Qgb3AyLCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3Vs dCA9IG9wMTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMy bTFfcm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7DQorDQorICB2bCA9IG5vcm1h bGl6ZV92bCAodmwpOw0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92 dl9mMzJtMSAocmVzdWx0LCBvcDIsIHZsKTsNCisNCisgIHZsID0gbm9ybWFs aXplX3ZsICh2bCk7DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2 X2YzMm0xX3JtIChvcDEsIHJlc3VsdCwgMiwgdmwpOw0KKw0KKyAgcmV0dXJu IHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSss XHMqW2Zhdl0rWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAzIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zz cm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQzLmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tNDMuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAwLi41MGUxZGEyYzNjMQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTQzLmMNCkBAIC0wLDAgKzEsMzggQEANCisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNo PXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0K KyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitzaXplX3QgX19hdHRy aWJ1dGVfXyAoKG5vaW5saW5lKSkNCitub3JtYWxpemVfdmwgKHNpemVfdCB2 bCkNCit7DQorICBpZiAodmwgJSA0ID09IDApDQorICAgIHJldHVybiB2bDsN CisNCisgIHJldHVybiAoKHZsIC8gNCkgKyAxKSAqIDQ7DQorfQ0KKw0KK3Zm bG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZm bG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCB2bCkN Cit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgcmVz dWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIs IDQsIHZsKTsNCisNCisgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorDQor ICBpZiAodmwgJSAxNiA9PSAwKQ0KKyAgICByZXN1bHQgPSBfX3Jpc2N2X3Zm YWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgMSwgdmwpOw0KKw0KKyAg dmwgPSBub3JtYWxpemVfdmwgKHZsKTsNCisNCisgIHJlc3VsdCA9IF9fcmlz Y3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorDQorICBy ZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlsw LTldKyxccypbZmF2XStbMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9 IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtmc3JtaVxzK1swMTIzNF19IDIgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05XSt9 IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5v dCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDQuYyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS00NC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMDAwMDAuLmE2NmNhODkzMDhiDQotLS0gL2Rldi9udWxsDQorKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZHluYW1pYy1mcm0tNDQuYw0KQEAgLTAsMCArMSw0MCBAQA0K Ky8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICIt bWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICov DQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3NpemVfdCBf X2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQ0KK25vcm1hbGl6ZV92bCAoc2l6 ZV90IHZsKQ0KK3sNCisgIGlmICh2bCAlIDQgPT0gMCkNCisgICAgcmV0dXJu IHZsOw0KKw0KKyAgcmV0dXJuICgodmwgLyA0KSArIDEpICogNDsNCit9DQor DQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2Zy bSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90 IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQor ICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQs IG9wMiwgNCwgdmwpOw0KKw0KKyAgdmwgPSBub3JtYWxpemVfdmwgKHZsKTsN CisNCisgIGlmICh2bCAlIDE2ID09IDApDQorICAgIHJlc3VsdCA9IF9fcmlz Y3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCAxLCB2bCk7DQor DQorDQorICBpZiAodmwgJSA3ICE9IDApDQorICAgIHZsID0gbm9ybWFsaXpl X3ZsICh2bCk7DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2Yz Mm0xIChvcDEsIHJlc3VsdCwgdmwpOw0KKw0KKyAgcmV0dXJuIHJlc3VsdDsN Cit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0r WzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytb MDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSA0IH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4 c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWZybS1pbnNlcnQtNy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1pbnNlcnQtNy5jDQpp bmRleCAxMmRiMTEyZGQwYi4uNmRlOWQwNmI4NzUgMTAwNjQ0DQotLS0gYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZnJtLWluc2VydC03LmMNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0 LTcuYw0KQEAgLTI2LDYgKzI2LDcgQEAgdGVzdF9mbG9hdF9wb2ludF9mcm1f c3RhdGljIChmbG9hdCAqb3V0LCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQz Mm0xX3Qgb3AyLA0KfQ0KLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMq W2Zhdl0rWzAtOV0rfSAyIH0gfSAqLw0KLS8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAxIH0gfSAq Lw0KLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJy bVxzK1theHNdWzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAyIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnNybVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDIgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNy bWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZnJtLXJ1bi00LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLXJ1bi00LmMN Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uNTc5 NmFhNTNhNzMNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0tcnVu LTQuYw0KQEAgLTAsMCArMSw4MiBAQA0KKy8qIHsgZGctZG8gcnVuIHsgdGFy Z2V0IHsgcmlzY3ZfdmVjdG9yIH0gfSB9ICovDQorLyogeyBkZy1vcHRpb25z ICItTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92 ZWN0b3IuaCINCisjaW5jbHVkZSA8c3RkaW8uaD4NCisjaW5jbHVkZSA8c3Rk aW50LWdjYy5oPg0KKw0KKyNkZWZpbmUgT1JJR0lOQUxfRlJNIDENCisNCitz dGF0aWMgaW50DQorZ2V0X2ZybSAoKQ0KK3sNCisgIGludCBmcm0gPSAtMTsN CisNCisgIF9fYXNtX18gdm9sYXRpbGUgKA0KKyAgICAiZnJybSAlMCINCisg ICAgOiI9ciIoZnJtKQ0KKyAgICA6DQorICAgIDoNCisgICk7DQorDQorICBy ZXR1cm4gZnJtOw0KK30NCisNCitzdGF0aWMgdm9pZA0KK3NldF9mcm0gKGlu dCBmcm0pDQorew0KKyAgX19hc21fXyB2b2xhdGlsZSAoDQorICAgICJmc3Jt ICUwIg0KKyAgICA6DQorICAgIDoiciIoZnJtKQ0KKyAgICA6DQorICApOw0K K30NCisNCitzdGF0aWMgaW5saW5lIHZvaWQNCithc3NlcnRfZXF1YWwgKGlu dCBhLCBpbnQgYiwgY2hhciAqbWVzc2FnZSkNCit7DQorICBpZiAoYSAhPSBi KQ0KKyAgICB7DQorICAgICAgZnByaW50ZiAoc3Rkb3V0LCAiJXMsIGJ1dCBn ZXQgJWQgIT0gJWRcbiIsIG1lc3NhZ2UsIGEsIGIpOw0KKyAgICAgIF9fYnVp bHRpbl9hYm9ydCAoKTsNCisgICAgfQ0KK30NCisNCit2ZmxvYXQzMm0xX3Qg X19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkNCitvdGhlcl9mdW5jdGlvbiAo dmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IHZs KQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDI7DQorDQorICBy ZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwg dmwpOw0KKw0KKyAgYXNzZXJ0X2VxdWFsIChPUklHSU5BTF9GUk0sIGdldF9m cm0gKCksDQorICJUaGUgdmFsdWUgb2YgZnJtIHJlZ2lzdGVyIHNob3VsZCBi ZSBPUklHSU5BTF9GUk0uIik7DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30N CisNCit2ZmxvYXQzMm0xX3QgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkN Cit0ZXN0X2Zsb2F0X3BvaW50X2ZybV9ydW4gKHZmbG9hdDMybTFfdCBvcDEs IHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQz Mm0xX3QgcmVzdWx0ID0ge307DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3Zm YWRkX3Z2X2YzMm0xX3JtIChvcDEsIHJlc3VsdCwgNCwgdmwpOw0KKw0KKyAg YXNzZXJ0X2VxdWFsICg0LCBnZXRfZnJtICgpLCAiVGhlIHZhbHVlIG9mIGZy bSByZWdpc3RlciBzaG91bGQgYmUgNC4iKTsNCisNCisgIHJldHVybiBvdGhl cl9mdW5jdGlvbiAocmVzdWx0LCBvcDIsIHZsKTsNCit9DQorDQoraW50DQor bWFpbiAoKQ0KK3sNCisgIHNpemVfdCB2bCA9IDg7DQorICB2ZmxvYXQzMm0x X3Qgb3AxID0ge307DQorICB2ZmxvYXQzMm0xX3Qgb3AyID0ge307DQorDQor ICBzZXRfZnJtIChPUklHSU5BTF9GUk0pOw0KKyAgdGVzdF9mbG9hdF9wb2lu dF9mcm1fcnVuIChvcDEsIG9wMiwgdmwpOw0KKw0KKyAgcmV0dXJuIDA7DQor fQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0tcnVuLTUuYyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1m cm0tcnVuLTUuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAwLi4yMDhhNjVmY2QzYQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWZybS1ydW4tNS5jDQpAQCAtMCwwICsxLDgzIEBADQorLyogeyBkZy1k byBydW4geyB0YXJnZXQgeyByaXNjdl92ZWN0b3IgfSB9IH0gKi8NCisvKiB7 IGRnLW9wdGlvbnMgIi1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1 ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKyNpbmNsdWRlIDxzdGRpby5oPg0KKyNp bmNsdWRlIDxzdGRpbnQtZ2NjLmg+DQorDQorI2RlZmluZSBPUklHSU5BTF9G Uk0gMQ0KKyNkZWZpbmUgTkVXX0ZSTSA0DQorDQorc3RhdGljIGludA0KK2dl dF9mcm0gKCkNCit7DQorICBpbnQgZnJtID0gLTE7DQorDQorICBfX2FzbV9f IHZvbGF0aWxlICgNCisgICAgImZycm0gJTAiDQorICAgIDoiPXIiKGZybSkN CisgICAgOg0KKyAgICA6DQorICApOw0KKw0KKyAgcmV0dXJuIGZybTsNCit9 DQorDQorc3RhdGljIHZvaWQNCitzZXRfZnJtIChpbnQgZnJtKQ0KK3sNCisg IF9fYXNtX18gdm9sYXRpbGUgKA0KKyAgICAiZnNybSAlMCINCisgICAgOg0K KyAgICA6InIiKGZybSkNCisgICAgOg0KKyAgKTsNCit9DQorDQorc3RhdGlj IGlubGluZSB2b2lkDQorYXNzZXJ0X2VxdWFsIChpbnQgYSwgaW50IGIsIGNo YXIgKm1lc3NhZ2UpDQorew0KKyAgaWYgKGEgIT0gYikNCisgICAgew0KKyAg ICAgIGZwcmludGYgKHN0ZG91dCwgIiVzLCBidXQgZ2V0ICVkICE9ICVkXG4i LCBtZXNzYWdlLCBhLCBiKTsNCisgICAgICBfX2J1aWx0aW5fYWJvcnQgKCk7 DQorICAgIH0NCit9DQorDQordm9pZCBfX2F0dHJpYnV0ZV9fICgobm9pbmxp bmUpKQ0KK290aGVyX2Z1bmN0aW9uICgpDQorew0KKyAgc2V0X2ZybSAoTkVX X0ZSTSk7DQorfQ0KKw0KK3ZmbG9hdDMybTFfdCBfX2F0dHJpYnV0ZV9fICgo bm9pbmxpbmUpKQ0KK3Rlc3RfZmxvYXRfcG9pbnRfZnJtX3J1biAodmZsb2F0 MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IHZsKQ0KK3sN CisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSB7fTsNCisNCisgIG90aGVyX2Z1 bmN0aW9uICgpOw0KKyAgYXNzZXJ0X2VxdWFsIChORVdfRlJNLCBnZXRfZnJt ICgpLA0KKyAiVGhlIHZhbHVlIG9mIGZybSByZWdpc3RlciBzaG91bGQgYmUg TkVXX0ZSTS4iKTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZf ZjMybTFfcm0gKG9wMSwgcmVzdWx0LCAyLCB2bCk7DQorICBhc3NlcnRfZXF1 YWwgKDIsIGdldF9mcm0gKCksICJUaGUgdmFsdWUgb2YgZnJtIHJlZ2lzdGVy IHNob3VsZCBiZSAyLiIpOw0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisgIGFzc2VydF9lcXVh bCAoTkVXX0ZSTSwgZ2V0X2ZybSAoKSwNCisgIlRoZSB2YWx1ZSBvZiBmcm0g cmVnaXN0ZXIgc2hvdWxkIGJlIE5FV19GUk0uIik7DQorDQorICByZXR1cm4g cmVzdWx0Ow0KK30NCisNCitpbnQNCittYWluICgpDQorew0KKyAgc2l6ZV90 IHZsID0gODsNCisgIHZmbG9hdDMybTFfdCBvcDEgPSB7fTsNCisgIHZmbG9h dDMybTFfdCBvcDIgPSB7fTsNCisNCisgIHNldF9mcm0gKE9SSUdJTkFMX0ZS TSk7DQorICB0ZXN0X2Zsb2F0X3BvaW50X2ZybV9ydW4gKG9wMSwgb3AyLCB2 bCk7DQorDQorICByZXR1cm4gMDsNCit9DQotLSANCjIuMzQuMQ0KIA0KIA0K ------=_001_NextPart376263488081_=------