From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbguseast3.qq.com (smtpbguseast3.qq.com [54.243.244.52]) by sourceware.org (Postfix) with ESMTPS id 06FC0385840D for ; Wed, 7 Jun 2023 00:38:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 06FC0385840D 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: bizesmtp84t1686098290tjdc27e8 Received: from LAPTOP-EPITNQBU ( [58.60.1.20]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 07 Jun 2023 08:38:09 +0800 (CST) X-QQ-SSF: 01400000000000F0S000000A0000000 X-QQ-FEAT: /gpUuYPpeIXwsEbfoznb2Zeh3CidUMRC7c6qdZze4/86mni6bRZcYRpQ8EX3h PvdrjHztrmwDHbAkwD021+WryUW6tewiElMsd5RjsmHvuTPNxf4iZ02t/SwvhUrxJOQ2PIQ 4NDJGbAki/g6DxXJQWV69LpbeSYreSJ8zmJFcTRRfC1irWtRKc9xILhewBSa8/MXq8AUABZ f1Wjuz7+CeQyq/rEUkQmNhDgr+9qhERP1DpeScfv9BUSnEn5WQoRuxgt4/Xuske8efYx/yF L2qnvD+vxQ91BrTbUFryJFfHZmhQDGyPaxqz5aYI63MzxgNs48vPs+T2gws0dvnBM/SFnCT JxOzyheboyXIPDhgATKSbmAaX0jq4039K0cIIyehaWulKK3R7tADQLIBm093hXMn56OKN5k YT9pJ4UDBvM= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 11028538110353375740 Date: Wed, 7 Jun 2023 08:38:09 +0800 From: "juzhe.zhong@rivai.ai" To: =?GB2312?B?1tO+09Xc?= , gcc-patches Cc: kito.cheng , Kito.cheng , palmer , palmer , jeffreyalaw , "Robin Dapp" , pan2.li Subject: Re: [PATCH] RISC-V: Support RVV VLA SLP auto-vectorization References: <20230606041635.226494-1-juzhe.zhong@rivai.ai> X-Priority: 3 X-GUID: D9ABD2FB-6D29-413D-917D-B226521A5978 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart158623805216_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-8.3 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,RCVD_IN_SORBS_WEB,SCC_10_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. ------=_001_NextPart158623805216_=---- Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: base64 UGluZyB0aGlzIHBhdGNoLiBPayBmb3IgdHJ1bmsgPw0KU2luY2UgZm9sbG93 aW5nIHBhdGNoZXMgYXJlIGJsb2NrZWQgYnkgdGhpcy4NCg0KDQoNCmp1emhl Lnpob25nQHJpdmFpLmFpDQogDQpGcm9tOiBqdXpoZS56aG9uZw0KRGF0ZTog MjAyMy0wNi0wNiAxMjoxNg0KVG86IGdjYy1wYXRjaGVzDQpDQzoga2l0by5j aGVuZzsga2l0by5jaGVuZzsgcGFsbWVyOyBwYWxtZXI7IGplZmZyZXlhbGF3 OyByZGFwcC5nY2M7IHBhbjIubGk7IEp1emhlLVpob25nDQpTdWJqZWN0OiBb UEFUQ0hdIFJJU0MtVjogU3VwcG9ydCBSVlYgVkxBIFNMUCBhdXRvLXZlY3Rv cml6YXRpb24NCkZyb206IEp1emhlLVpob25nIDxqdXpoZS56aG9uZ0ByaXZh aS5haT4NCiANClRoaXMgcGF0Y2ggZW5hYmxlcyBiYXNpYyBWTEEgU0xQIGF1 dG8tdmVjdG9yaXphdGlvbi4NCkNvbnNpZGVyIHRoaXMgZm9sbG93aW5nIGNh c2U6DQp2b2lkDQpmICh1aW50OF90ICpyZXN0cmljdCBhLCB1aW50OF90ICpy ZXN0cmljdCBiKQ0Kew0KICBmb3IgKGludCBpID0gMDsgaSA8IDEwMDsgKytp KQ0KICAgIHsNCiAgICAgIGFbaSAqIDggKyAwXSA9IGJbaSAqIDggKyA3XSAr IDE7DQogICAgICBhW2kgKiA4ICsgMV0gPSBiW2kgKiA4ICsgN10gKyAyOw0K ICAgICAgYVtpICogOCArIDJdID0gYltpICogOCArIDddICsgODsNCiAgICAg IGFbaSAqIDggKyAzXSA9IGJbaSAqIDggKyA3XSArIDQ7DQogICAgICBhW2kg KiA4ICsgNF0gPSBiW2kgKiA4ICsgN10gKyA1Ow0KICAgICAgYVtpICogOCAr IDVdID0gYltpICogOCArIDddICsgNjsNCiAgICAgIGFbaSAqIDggKyA2XSA9 IGJbaSAqIDggKyA3XSArIDc7DQogICAgICBhW2kgKiA4ICsgN10gPSBiW2kg KiA4ICsgN10gKyAzOw0KICAgIH0NCn0NCiANClRvIGVuYWJsZSBWTEEgU0xQ IGF1dG8tdmVjdG9yaXphdGlvbiwgd2Ugc2hvdWxkIGJlIGFibGUgdG8gaGFu ZGxlIHRoaXMgZm9sbG93aW5nIGNvbnN0IHZlY3RvcjoNCiANCjEuIE5QQVRU RVJOUyA9IDgsIE5FTFRTX1BFUl9QQVRURVJOID0gMy4NCnsgMCwgMCwgMCwg MCwgMCwgMCwgMCwgMCwgOCwgOCwgOCwgOCwgOCwgOCwgOCwgOCwgMTYsIDE2 LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAuLi4gfQ0KIA0KMi4gTlBBVFRF Uk5TID0gOCwgTkVMVFNfUEVSX1BBVFRFUk4gPSAxLiANCnsgMSwgMiwgOCwg NCwgNSwgNiwgNywgMywgLi4uIH0NCiANCkFuZCB0aGVzZSB2ZWN0b3IgY2Fu IGJlIGdlbmVyYXRlZCBhdCBwcm9sb2d1ZS4NCiANCkFmdGVyIHRoaXMgcGF0 Y2gsIHdlIGVuZCB1cCB3aXRoIHRoaXMgZm9sbG93aW5nIGNvZGVnZW46DQog DQpQcm9sb2d1ZToNCi4uLg0KICAgICAgICB2c2V0dmxpIGE3LHplcm8sZTE2 LG0yLHRhLG1hDQogICAgICAgIHZpZC52ICAgdjQNCiAgICAgICAgdnNybC52 aSB2NCx2NCwzDQogICAgICAgIGxpICAgICAgYTMsOA0KICAgICAgICB2bXVs LnZ4IHY0LHY0LGEzICA9PT0+IHY0ID0geyAwLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCA4LCA4LCA4LCA4LCA4LCA4LCA4LCA4LCAxNiwgMTYsIDE2LCAxNiwg MTYsIDE2LCAxNiwgMTYsIC4uLiB9DQouLi4NCiAgICAgICAgbGkgICAgICB0 MSw2NzYzMzE1Mg0KICAgICAgICBhZGRpICAgIHQxLHQxLDUxMw0KICAgICAg ICBsaSAgICAgIGEzLDUwNzkwNDAwDQogICAgICAgIGFkZGkgICAgYTMsYTMs MTU0MQ0KICAgICAgICBzbGxpICAgIGEzLGEzLDMyDQogICAgICAgIGFkZCAg ICAgYTMsYTMsdDENCiAgICAgICAgdnNldHZsaSB0MSx6ZXJvLGU2NCxtMSx0 YSxtYQ0KICAgICAgICB2bXYudi54IHYzLGEzICAgPT09PiB2MyA9IHsgMSwg MiwgOCwgNCwgNSwgNiwgNywgMywgLi4uIH0NCi4uLg0KTG9vcEJvZHk6DQou Li4NCiAgICAgICAgbWluICAgICBhMywuLi4NCiAgICAgICAgdnNldHZsaSB6 ZXJvLGEzLGU4LG0xLHRhLG1hDQogICAgICAgIHZsZTgudiAgdjIsMChhNikN CiAgICAgICAgdnNldHZsaSBhNyx6ZXJvLGU4LG0xLHRhLG1hDQogICAgICAg IHZyZ2F0aGVyZWkxNi52diB2MSx2Mix2NA0KICAgICAgICB2YWRkLnZ2IHYx LHYxLHYzDQogICAgICAgIHZzZXR2bGkgemVybyxhMyxlOCxtMSx0YSxtYQ0K ICAgICAgICB2c2U4LnYgIHYxLDAoYTIpDQogICAgICAgIGFkZCAgICAgYTYs YTYsYTQNCiAgICAgICAgYWRkICAgICBhMixhMixhNA0KICAgICAgICBtdiAg ICAgIGEzLGE1DQogICAgICAgIGFkZCAgICAgYTUsYTUsdDENCiAgICAgICAg Ymd0dSAgICBhMyxhNCwuTDMNCi4uLg0KIA0KTm90ZTogd2UgbmVlZCB0byB1 c2UgInZyZ2F0aGVyZWkxNi52diIgaW5zdGVhZCBvZiAidnJnYXRoZXIudnYi IGZvciBTRVcgPSA4IHNpbmNlICJ2cmdhdGhlcmVpMTYudnYiIGNhbiBjb3Zl ciBsYXJnZXINCiAgICAgIHJhbmdlIHRoYW4gInZyZ2F0aGVyLnZ2IiAod2hp Y2ggb25seSBjYW4gbWF4aW11bSBlbGVtZW50IGluZGV4ID0gMjU1KS4NCkVw aWxvZ3VlOg0KICAgICAgICBsYnUgICAgIGE1LDc5OShhMSkNCiAgICAgICAg YWRkaXcgICBhNCxhNSwxDQogICAgICAgIHNiICAgICAgYTQsNzkyKGEwKQ0K ICAgICAgICBhZGRpdyAgIGE0LGE1LDINCiAgICAgICAgc2IgICAgICBhNCw3 OTMoYTApDQogICAgICAgIGFkZGl3ICAgYTQsYTUsOA0KICAgICAgICBzYiAg ICAgIGE0LDc5NChhMCkNCiAgICAgICAgYWRkaXcgICBhNCxhNSw0DQogICAg ICAgIHNiICAgICAgYTQsNzk1KGEwKQ0KICAgICAgICBhZGRpdyAgIGE0LGE1 LDUNCiAgICAgICAgc2IgICAgICBhNCw3OTYoYTApDQogICAgICAgIGFkZGl3 ICAgYTQsYTUsNg0KICAgICAgICBzYiAgICAgIGE0LDc5NyhhMCkNCiAgICAg ICAgYWRkaXcgICBhNCxhNSw3DQogICAgICAgIHNiICAgICAgYTQsNzk4KGEw KQ0KICAgICAgICBhZGRpdyAgIGE1LGE1LDMNCiAgICAgICAgc2IgICAgICBh NSw3OTkoYTApDQogICAgICAgIHJldA0KIA0KVGhlcmUgaXMgb25lIG1vcmUg bGFzdCB0aGluZyB3ZSBuZWVkIHRvIGRvIGlzIHRoZSAiRXBpbG9ndWUgYXV0 by12ZWN0b3JpemF0aW9uIiB3aGljaCBuZWVkcyBWTFMgbW9kZXMgc3VwcG9y dC4NCkkgd2lsbCBzdXBwb3J0IFZMUyBtb2RlcyBmb3IgIkVwaWxvZ3VlIGF1 dG8tdmVjdG9yaXphdGlvbiIgaW4gdGhlIGZ1dHVyZS4NCiANCmdjYy9DaGFu Z2VMb2c6DQogDQogICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rv cy5oIChleHBhbmRfdmVjX3Blcm1fY29uc3QpOiBOZXcgZnVuY3Rpb24uDQog ICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2LXYuY2MgKHJ2dl9idWlsZGVy OjpjYW5fZHVwbGljYXRlX3JlcGVhdGluZ19zZXF1ZW5jZV9wKTogU3VwcG9y dCBQT0xZIGhhbmRsaW5nLg0KICAgICAgICAocnZ2X2J1aWxkZXI6OnNpbmds ZV9zdGVwX25wYXR0ZXJuc19wKTogTmV3IGZ1bmN0aW9uLg0KICAgICAgICAo cnZ2X2J1aWxkZXI6Om5wYXR0ZXJuc19hbGxfZXF1YWxfcCk6IERpdHRvLg0K ICAgICAgICAoY29uc3RfdmVjX2FsbF9pbl9yYW5nZV9wKTogU3VwcG9ydCBQ T0xZIGhhbmRsaW5nLg0KICAgICAgICAoZ2VuX2NvbnN0X3ZlY3Rvcl9kdXAp OiBEaXR0by4NCiAgICAgICAgKGVtaXRfdmxtYXhfZ2F0aGVyX2luc24pOiBB ZGQgdnJnYXRoZXJlaTE2Lg0KICAgICAgICAoZW1pdF92bG1heF9tYXNrZWRf Z2F0aGVyX211X2luc24pOiBEaXR0by4NCiAgICAgICAgKGV4cGFuZF9jb25z dF92ZWN0b3IpOiBBZGQgVkxBIFNMUCBjb25zdCB2ZWN0b3Igc3VwcG9ydC4N CiAgICAgICAgKGV4cGFuZF92ZWNfcGVybSk6IFN1cHBvcnQgUE9MWS4NCiAg ICAgICAgKHN0cnVjdCBleHBhbmRfdmVjX3Blcm1fZCk6IE5ldyBzdHJ1Y3Qu DQogICAgICAgIChzaHVmZmxlX2dlbmVyaWNfcGF0dGVybnMpOiBOZXcgZnVu Y3Rpb24uDQogICAgICAgIChleHBhbmRfdmVjX3Blcm1fY29uc3RfMSk6IERp dHRvLg0KICAgICAgICAoZXhwYW5kX3ZlY19wZXJtX2NvbnN0KTogRGl0dG8u DQogICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2LmNjIChyaXNjdl92ZWN0 b3JpemVfdmVjX3Blcm1fY29uc3QpOiBEaXR0by4NCiAgICAgICAgKFRBUkdF VF9WRUNUT1JJWkVfVkVDX1BFUk1fQ09OU1QpOiBOZXcgdGFyZ2V0aG9vay4N CiANCmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOg0KIA0KICAgICAgICAqIGdj Yy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvc2NhbGFibGUtMS5jOiBBZGFw dCB0ZXN0Y2FzZSBmb3IgVkxBIHZlY3Rvcml6ZXIuDQogICAgICAgICogZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92LTEuYzogRGl0dG8uDQogICAg ICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy96dmUzMmZfenZs MTI4Yi0xLmM6IERpdHRvLg0KICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3Yv cnZ2L2F1dG92ZWMvenZlMzJ4X3p2bDEyOGItMS5jOiBEaXR0by4NCiAgICAg ICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3p2ZTY0ZC0xLmM6 IERpdHRvLg0KICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92 ZWMvenZlNjRkX3p2bDEyOGItMS5jOiBEaXR0by4NCiAgICAgICAgKiBnY2Mu dGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3p2ZTY0Zi0xLmM6IERpdHRvLg0K ICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvenZlNjRm X3p2bDEyOGItMS5jOiBEaXR0by4NCiAgICAgICAgKiBnY2MudGFyZ2V0L3Jp c2N2L3J2di9hdXRvdmVjL3p2ZTY0eF96dmwxMjhiLTEuYzogRGl0dG8uDQog ICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9wYXJ0aWFs L3NscC0xLmM6IE5ldyB0ZXN0Lg0KICAgICAgICAqIGdjYy50YXJnZXQvcmlz Y3YvcnZ2L2F1dG92ZWMvcGFydGlhbC9zbHAtMi5jOiBOZXcgdGVzdC4NCiAg ICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRpYWwv c2xwLTMuYzogTmV3IHRlc3QuDQogICAgICAgICogZ2NjLnRhcmdldC9yaXNj di9ydnYvYXV0b3ZlYy9wYXJ0aWFsL3NscC00LmM6IE5ldyB0ZXN0Lg0KICAg ICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcGFydGlhbC9z bHAtNS5jOiBOZXcgdGVzdC4NCiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2di9hdXRvdmVjL3BhcnRpYWwvc2xwLTYuYzogTmV3IHRlc3QuDQogICAg ICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9wYXJ0aWFsL3Ns cC03LmM6IE5ldyB0ZXN0Lg0KICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3Yv cnZ2L2F1dG92ZWMvcGFydGlhbC9zbHBfcnVuLTEuYzogTmV3IHRlc3QuDQog ICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9wYXJ0aWFs L3NscF9ydW4tMi5jOiBOZXcgdGVzdC4NCiAgICAgICAgKiBnY2MudGFyZ2V0 L3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRpYWwvc2xwX3J1bi0zLmM6IE5ldyB0 ZXN0Lg0KICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMv cGFydGlhbC9zbHBfcnVuLTQuYzogTmV3IHRlc3QuDQogICAgICAgICogZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9wYXJ0aWFsL3NscF9ydW4tNS5j OiBOZXcgdGVzdC4NCiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9h dXRvdmVjL3BhcnRpYWwvc2xwX3J1bi02LmM6IE5ldyB0ZXN0Lg0KICAgICAg ICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcGFydGlhbC9zbHBf cnVuLTcuYzogTmV3IHRlc3QuDQogDQotLS0NCmdjYy9jb25maWcvcmlzY3Yv cmlzY3YtcHJvdG9zLmggICAgICAgICAgICAgICB8ICAgMiArDQpnY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXYuY2MgICAgICAgICAgICAgICAgICAgfCAzNTIg KysrKysrKysrKysrKysrKy0tDQpnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNj ICAgICAgICAgICAgICAgICAgICAgfCAgMTYgKw0KLi4uL3Jpc2N2L3J2di9h dXRvdmVjL3BhcnRpYWwvc2xwLTEuYyAgICAgICAgIHwgIDIyICsrDQouLi4v cmlzY3YvcnZ2L2F1dG92ZWMvcGFydGlhbC9zbHAtMi5jICAgICAgICAgfCAg MjIgKysNCi4uLi9yaXNjdi9ydnYvYXV0b3ZlYy9wYXJ0aWFsL3NscC0zLmMg ICAgICAgICB8ICAyMiArKw0KLi4uL3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRp YWwvc2xwLTQuYyAgICAgICAgIHwgIDIyICsrDQouLi4vcmlzY3YvcnZ2L2F1 dG92ZWMvcGFydGlhbC9zbHAtNS5jICAgICAgICAgfCAgMjIgKysNCi4uLi9y aXNjdi9ydnYvYXV0b3ZlYy9wYXJ0aWFsL3NscC02LmMgICAgICAgICB8ICAy MyArKw0KLi4uL3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRpYWwvc2xwLTcuYyAg ICAgICAgIHwgIDE1ICsNCi4uLi9yaXNjdi9ydnYvYXV0b3ZlYy9wYXJ0aWFs L3NscF9ydW4tMS5jICAgICB8ICA2NiArKysrDQouLi4vcmlzY3YvcnZ2L2F1 dG92ZWMvcGFydGlhbC9zbHBfcnVuLTIuYyAgICAgfCAgNjcgKysrKw0KLi4u L3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRpYWwvc2xwX3J1bi0zLmMgICAgIHwg IDY3ICsrKysNCi4uLi9yaXNjdi9ydnYvYXV0b3ZlYy9wYXJ0aWFsL3NscF9y dW4tNC5jICAgICB8ICA2NyArKysrDQouLi4vcmlzY3YvcnZ2L2F1dG92ZWMv cGFydGlhbC9zbHBfcnVuLTUuYyAgICAgfCAgNjcgKysrKw0KLi4uL3Jpc2N2 L3J2di9hdXRvdmVjL3BhcnRpYWwvc2xwX3J1bi02LmMgICAgIHwgIDY3ICsr KysNCi4uLi9yaXNjdi9ydnYvYXV0b3ZlYy9wYXJ0aWFsL3NscF9ydW4tNy5j ICAgICB8ICA1OCArKysNCi4uLi9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRv dmVjL3NjYWxhYmxlLTEuYyB8ICAgMiArLQ0KLi4uL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2F1dG92ZWMvdi0xLmMgICAgICAgIHwgICA3ICstDQouLi4vcmlz Y3YvcnZ2L2F1dG92ZWMvenZlMzJmX3p2bDEyOGItMS5jICAgICAgfCAgIDIg Ky0NCi4uLi9yaXNjdi9ydnYvYXV0b3ZlYy96dmUzMnhfenZsMTI4Yi0xLmMg ICAgICB8ICAgMiArLQ0KLi4uL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92 ZWMvenZlNjRkLTEuYyAgIHwgICAyICstDQouLi4vcmlzY3YvcnZ2L2F1dG92 ZWMvenZlNjRkX3p2bDEyOGItMS5jICAgICAgfCAgIDIgKy0NCi4uLi9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3p2ZTY0Zi0xLmMgICB8ICAgMiAr LQ0KLi4uL3Jpc2N2L3J2di9hdXRvdmVjL3p2ZTY0Zl96dmwxMjhiLTEuYyAg ICAgIHwgICAyICstDQouLi4vcmlzY3YvcnZ2L2F1dG92ZWMvenZlNjR4X3p2 bDEyOGItMS5jICAgICAgfCAgIDIgKy0NCjI2IGZpbGVzIGNoYW5nZWQsIDk2 MyBpbnNlcnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkNCmNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1 dG92ZWMvcGFydGlhbC9zbHAtMS5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRp YWwvc2xwLTIuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9wYXJ0aWFsL3NscC0zLmMN CmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2F1dG92ZWMvcGFydGlhbC9zbHAtNC5jDQpjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9h dXRvdmVjL3BhcnRpYWwvc2xwLTUuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9wYXJ0 aWFsL3NscC02LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcGFydGlhbC9zbHAtNy5j DQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRpYWwvc2xwX3J1bi0xLmMNCmNyZWF0 ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2F1dG92ZWMvcGFydGlhbC9zbHBfcnVuLTIuYw0KY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0 b3ZlYy9wYXJ0aWFsL3NscF9ydW4tMy5jDQpjcmVhdGUgbW9kZSAxMDA2NDQg Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Bh cnRpYWwvc2xwX3J1bi00LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcGFydGlhbC9z bHBfcnVuLTUuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9wYXJ0aWFsL3NscF9ydW4t Ni5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRpYWwvc2xwX3J1bi03LmMNCiAN CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5o IGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaA0KaW5kZXggZDc3 MGU1ZTgyNmUuLjI3ZWNkMTZlNDk2IDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi1wcm90b3MuaA0KKysrIGIvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi1wcm90b3MuaA0KQEAgLTE2OCw2ICsxNjgsOCBAQCB2b2lkIGlu aXRfYnVpbHRpbnMgKHZvaWQpOw0KY29uc3QgY2hhciAqbWFuZ2xlX2J1aWx0 aW5fdHlwZSAoY29uc3RfdHJlZSk7DQojaWZkZWYgR0NDX1RBUkdFVF9IDQpi b29sIHZlcmlmeV90eXBlX2NvbnRleHQgKGxvY2F0aW9uX3QsIHR5cGVfY29u dGV4dF9raW5kLCBjb25zdF90cmVlLCBib29sKTsNCitib29sIGV4cGFuZF92 ZWNfcGVybV9jb25zdCAobWFjaGluZV9tb2RlLCBtYWNoaW5lX21vZGUsIHJ0 eCwgcnR4LCBydHgsDQorICAgICBjb25zdCB2ZWNfcGVybV9pbmRpY2VzICYp Ow0KI2VuZGlmDQp2b2lkIGhhbmRsZV9wcmFnbWFfdmVjdG9yICh2b2lkKTsN CnRyZWUgYnVpbHRpbl9kZWNsICh1bnNpZ25lZCwgYm9vbCk7DQpkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12LmNjIGIvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi12LmNjDQppbmRleCA4MzI3N2ZjMmMwNS4uNDg2NDQy OWVkMDYgMTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXYu Y2MNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Ytdi5jYw0KQEAgLTI1 MSw5ICsyNTEsMTIgQEAgcHVibGljOg0KICAgICBtX2lubmVyX21vZGUgPSBH RVRfTU9ERV9JTk5FUiAobW9kZSk7DQogICAgIG1faW5uZXJfYml0c19zaXpl ID0gR0VUX01PREVfQklUU0laRSAobV9pbm5lcl9tb2RlKTsNCiAgICAgbV9p bm5lcl9ieXRlc19zaXplID0gR0VUX01PREVfU0laRSAobV9pbm5lcl9tb2Rl KTsNCisgICAgbV9tYXNrX21vZGUgPSBnZXRfbWFza19tb2RlIChtb2RlKS5y ZXF1aXJlICgpOw0KICAgICBnY2NfYXNzZXJ0ICgNCiAgICAgICBpbnRfbW9k ZV9mb3Jfc2l6ZSAoaW5uZXJfYml0c19zaXplICgpLCAwKS5leGlzdHMgKCZt X2lubmVyX2ludF9tb2RlKSk7DQorICAgIG1faW50X21vZGUNCisgICAgICA9 IGdldF92ZWN0b3JfbW9kZSAobV9pbm5lcl9pbnRfbW9kZSwgR0VUX01PREVf TlVOSVRTIChtb2RlKSkucmVxdWlyZSAoKTsNCiAgIH0NCiAgIGJvb2wgY2Fu X2R1cGxpY2F0ZV9yZXBlYXRpbmdfc2VxdWVuY2VfcCAoKTsNCkBAIC0yNjIs OSArMjY1LDE0IEBAIHB1YmxpYzoNCiAgIGJvb2wgcmVwZWF0aW5nX3NlcXVl bmNlX3VzZV9tZXJnZV9wcm9maXRhYmxlX3AgKCk7DQogICBydHggZ2V0X21l cmdlX3NjYWxhcl9tYXNrICh1bnNpZ25lZCBpbnQpIGNvbnN0Ow0KKyAgYm9v bCBzaW5nbGVfc3RlcF9ucGF0dGVybnNfcCAoKSBjb25zdDsNCisgIGJvb2wg bnBhdHRlcm5zX2FsbF9lcXVhbF9wICgpIGNvbnN0Ow0KKw0KICAgbWFjaGlu ZV9tb2RlIG5ld19tb2RlICgpIGNvbnN0IHsgcmV0dXJuIG1fbmV3X21vZGU7 IH0NCiAgIHNjYWxhcl9tb2RlIGlubmVyX21vZGUgKCkgY29uc3QgeyByZXR1 cm4gbV9pbm5lcl9tb2RlOyB9DQogICBzY2FsYXJfaW50X21vZGUgaW5uZXJf aW50X21vZGUgKCkgY29uc3QgeyByZXR1cm4gbV9pbm5lcl9pbnRfbW9kZTsg fQ0KKyAgbWFjaGluZV9tb2RlIG1hc2tfbW9kZSAoKSBjb25zdCB7IHJldHVy biBtX21hc2tfbW9kZTsgfQ0KKyAgbWFjaGluZV9tb2RlIGludF9tb2RlICgp IGNvbnN0IHsgcmV0dXJuIG1faW50X21vZGU7IH0NCiAgIHVuc2lnbmVkIGlu dCBpbm5lcl9iaXRzX3NpemUgKCkgY29uc3QgeyByZXR1cm4gbV9pbm5lcl9i aXRzX3NpemU7IH0NCiAgIHVuc2lnbmVkIGludCBpbm5lcl9ieXRlc19zaXpl ICgpIGNvbnN0IHsgcmV0dXJuIG1faW5uZXJfYnl0ZXNfc2l6ZTsgfQ0KQEAg LTI3Myw2ICsyODEsOCBAQCBwcml2YXRlOg0KICAgc2NhbGFyX2ludF9tb2Rl IG1faW5uZXJfaW50X21vZGU7DQogICBtYWNoaW5lX21vZGUgbV9uZXdfbW9k ZTsNCiAgIHNjYWxhcl9pbnRfbW9kZSBtX25ld19pbm5lcl9tb2RlOw0KKyAg bWFjaGluZV9tb2RlIG1fbWFza19tb2RlOw0KKyAgbWFjaGluZV9tb2RlIG1f aW50X21vZGU7DQogICB1bnNpZ25lZCBpbnQgbV9pbm5lcl9iaXRzX3NpemU7 DQogICB1bnNpZ25lZCBpbnQgbV9pbm5lcl9ieXRlc19zaXplOw0KfTsNCkBA IC0yOTAsNyArMzAwLDkgQEAgcnZ2X2J1aWxkZXI6OmNhbl9kdXBsaWNhdGVf cmVwZWF0aW5nX3NlcXVlbmNlX3AgKCkNCiAgICAgICB8fCBHRVRfTU9ERV9T SVpFIChtX25ld19pbm5lcl9tb2RlKSA+IFVOSVRTX1BFUl9XT1JEDQogICAg ICAgfHwgIWdldF92ZWN0b3JfbW9kZSAobV9uZXdfaW5uZXJfbW9kZSwgbmV3 X3NpemUpLmV4aXN0cyAoJm1fbmV3X21vZGUpKQ0KICAgICByZXR1cm4gZmFs c2U7DQotICByZXR1cm4gcmVwZWF0aW5nX3NlcXVlbmNlX3AgKDAsIGZ1bGxf bmVsdHMgKCkudG9fY29uc3RhbnQgKCksIG5wYXR0ZXJucyAoKSk7DQorICBp ZiAoZnVsbF9uZWx0cyAoKS5pc19jb25zdGFudCAoKSkNCisgICAgcmV0dXJu IHJlcGVhdGluZ19zZXF1ZW5jZV9wICgwLCBmdWxsX25lbHRzICgpLnRvX2Nv bnN0YW50ICgpLCBucGF0dGVybnMgKCkpOw0KKyAgcmV0dXJuIG5lbHRzX3Bl cl9wYXR0ZXJuICgpID09IDE7DQp9DQovKiBSZXR1cm4gdHJ1ZSBpZiBpdCBp cyBhIHJlcGVhdGluZyBzZXF1ZW5jZSB0aGF0IHVzaW5nDQpAQCAtMzk4LDYg KzQxMCw0OCBAQCBydnZfYnVpbGRlcjo6Z2V0X21lcmdlX3NjYWxhcl9tYXNr ICh1bnNpZ25lZCBpbnQgaW5kZXhfaW5fcGF0dGVybikgY29uc3QNCiAgIHJl dHVybiBnZW5faW50X21vZGUgKG1hc2ssIGlubmVyX2ludF9tb2RlICgpKTsN Cn0NCisvKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgdmFyaWFibGUtbGVuZ3RoIHZl Y3RvciBpcyBzaW5nbGUgc3RlcC4gICovDQorYm9vbA0KK3J2dl9idWlsZGVy OjpzaW5nbGVfc3RlcF9ucGF0dGVybnNfcCAoKSBjb25zdA0KK3sNCisgIGlm IChuZWx0c19wZXJfcGF0dGVybiAoKSAhPSAzKQ0KKyAgICByZXR1cm4gZmFs c2U7DQorDQorICBwb2x5X2ludDY0IHN0ZXANCisgICAgPSBydHhfdG9fcG9s eV9pbnQ2NCAoZWx0IChucGF0dGVybnMgKCkpKSAtIHJ0eF90b19wb2x5X2lu dDY0IChlbHQgKDApKTsNCisgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBp IDwgbnBhdHRlcm5zICgpOyBpKyspDQorICAgIHsNCisgICAgICBwb2x5X2lu dDY0IGVsZTAgPSBydHhfdG9fcG9seV9pbnQ2NCAoZWx0IChpKSk7DQorICAg ICAgcG9seV9pbnQ2NCBlbGUxID0gcnR4X3RvX3BvbHlfaW50NjQgKGVsdCAo bnBhdHRlcm5zICgpICsgaSkpOw0KKyAgICAgIHBvbHlfaW50NjQgZWxlMiA9 IHJ0eF90b19wb2x5X2ludDY0IChlbHQgKG5wYXR0ZXJucyAoKSAqIDIgKyBp KSk7DQorICAgICAgcG9seV9pbnQ2NCBkaWZmMSA9IGVsZTEgLSBlbGUwOw0K KyAgICAgIHBvbHlfaW50NjQgZGlmZjIgPSBlbGUyIC0gZWxlMTsNCisgICAg ICBpZiAobWF5YmVfbmUgKHN0ZXAsIGRpZmYxKSB8fCBtYXliZV9uZSAoc3Rl cCwgZGlmZjIpKQ0KKyByZXR1cm4gZmFsc2U7DQorICAgIH0NCisgIHJldHVy biB0cnVlOw0KK30NCisNCisvKiBSZXR1cm4gdHJ1ZSBpZiBhbGwgZWxlbWVu dHMgb2YgTlBBVFRFUk5TIGFyZSBlcXVhbC4NCisNCisgICBFLmcuIE5QQVRU RVJOUyA9IDQ6DQorICAgICB7IDIsIDIsIDIsIDIsIDQsIDQsIDQsIDQsIDgs IDgsIDgsIDgsIDE2LCAxNiwgMTYsIDE2LCAuLi4gfQ0KKyAgIEUuZy4gTlBB VFRFUk5TID0gODoNCisgICAgIHsgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwg OCwgOCwgOCwgOCwgOCwgOCwgOCwgOCwgLi4uIH0NCisqLw0KK2Jvb2wNCity dnZfYnVpbGRlcjo6bnBhdHRlcm5zX2FsbF9lcXVhbF9wICgpIGNvbnN0DQor ew0KKyAgcG9seV9pbnQ2NCBlbGUwID0gcnR4X3RvX3BvbHlfaW50NjQgKGVs dCAoMCkpOw0KKyAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDE7IGkgPCBucGF0 dGVybnMgKCk7IGkrKykNCisgICAgew0KKyAgICAgIHBvbHlfaW50NjQgZWxl ID0gcnR4X3RvX3BvbHlfaW50NjQgKGVsdCAoaSkpOw0KKyAgICAgIGlmICgh a25vd25fZXEgKGVsZSwgZWxlMCkpDQorIHJldHVybiBmYWxzZTsNCisgICAg fQ0KKyAgcmV0dXJuIHRydWU7DQorfQ0KKw0Kc3RhdGljIHVuc2lnbmVkDQpn ZXRfc2V3IChtYWNoaW5lX21vZGUgbW9kZSkNCnsNCkBAIC00MjUsNyArNDc5 LDcgQEAgY29uc3RfdmVjX2FsbF9zYW1lX2luX3JhbmdlX3AgKHJ0eCB4LCBI T1NUX1dJREVfSU5UIG1pbnZhbCwNCiAgICBmdXR1cmUuICAqLw0Kc3RhdGlj IGJvb2wNCi1jb25zdF92ZWNfYWxsX2luX3JhbmdlX3AgKHJ0eCB2ZWMsIEhP U1RfV0lERV9JTlQgbWludmFsLCBIT1NUX1dJREVfSU5UIG1heHZhbCkNCitj b25zdF92ZWNfYWxsX2luX3JhbmdlX3AgKHJ0eCB2ZWMsIHBvbHlfaW50NjQg bWludmFsLCBwb2x5X2ludDY0IG1heHZhbCkNCnsNCiAgIGlmICghQ09OU1Rf VkVDVE9SX1AgKHZlYykNCiAgICAgICB8fCBHRVRfTU9ERV9DTEFTUyAoR0VU X01PREUgKHZlYykpICE9IE1PREVfVkVDVE9SX0lOVCkNCkBAIC00NDAsOCAr NDk0LDEwIEBAIGNvbnN0X3ZlY19hbGxfaW5fcmFuZ2VfcCAocnR4IHZlYywg SE9TVF9XSURFX0lOVCBtaW52YWwsIEhPU1RfV0lERV9JTlQgbWF4dmFsKQ0K ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW5pdHM7IGkrKykNCiAgICAgew0K ICAgICAgIHJ0eCB2ZWNfZWxlbSA9IENPTlNUX1ZFQ1RPUl9FTFQgKHZlYywg aSk7DQotICAgICAgaWYgKCFDT05TVF9JTlRfUCAodmVjX2VsZW0pDQotICAg fHwgIUlOX1JBTkdFIChJTlRWQUwgKHZlY19lbGVtKSwgbWludmFsLCBtYXh2 YWwpKQ0KKyAgICAgIHBvbHlfaW50NjQgdmFsdWU7DQorICAgICAgaWYgKCFw b2x5X2ludF9ydHhfcCAodmVjX2VsZW0sICZ2YWx1ZSkNCisgICB8fCBtYXli ZV9sdCAodmFsdWUsIG1pbnZhbCkNCisgICB8fCBtYXliZV9ndCAodmFsdWUs IG1heHZhbCkpDQpyZXR1cm4gZmFsc2U7DQogICAgIH0NCiAgIHJldHVybiB0 cnVlOw0KQEAgLTQ1Myw3ICs1MDksNyBAQCBjb25zdF92ZWNfYWxsX2luX3Jh bmdlX3AgKHJ0eCB2ZWMsIEhPU1RfV0lERV9JTlQgbWludmFsLCBIT1NUX1dJ REVfSU5UIG1heHZhbCkNCiAgICBmdXR1cmUuICAqLw0Kc3RhdGljIHJ0eA0K LWdlbl9jb25zdF92ZWN0b3JfZHVwIChtYWNoaW5lX21vZGUgbW9kZSwgSE9T VF9XSURFX0lOVCB2YWwpDQorZ2VuX2NvbnN0X3ZlY3Rvcl9kdXAgKG1hY2hp bmVfbW9kZSBtb2RlLCBwb2x5X2ludDY0IHZhbCkNCnsNCiAgIHJ0eCBjID0g Z2VuX2ludF9tb2RlICh2YWwsIEdFVF9NT0RFX0lOTkVSIChtb2RlKSk7DQog ICByZXR1cm4gZ2VuX2NvbnN0X3ZlY19kdXBsaWNhdGUgKG1vZGUsIGMpOw0K QEAgLTcyNyw3ICs3ODMsMTAgQEAgZW1pdF92bG1heF9nYXRoZXJfaW5zbiAo cnR4IHRhcmdldCwgcnR4IG9wLCBydHggc2VsKQ0KICAgcnR4IGVsdDsNCiAg IGluc25fY29kZSBpY29kZTsNCiAgIG1hY2hpbmVfbW9kZSBkYXRhX21vZGUg PSBHRVRfTU9ERSAodGFyZ2V0KTsNCi0gIGlmIChjb25zdF92ZWNfZHVwbGlj YXRlX3AgKHNlbCwgJmVsdCkpDQorICBtYWNoaW5lX21vZGUgc2VsX21vZGUg PSBHRVRfTU9ERSAoc2VsKTsNCisgIGlmIChtYXliZV9uZSAoR0VUX01PREVf U0laRSAoZGF0YV9tb2RlKSwgR0VUX01PREVfU0laRSAoc2VsX21vZGUpKSkN CisgICAgaWNvZGUgPSBjb2RlX2Zvcl9wcmVkX2dhdGhlcmVpMTYgKGRhdGFf bW9kZSk7DQorICBlbHNlIGlmIChjb25zdF92ZWNfZHVwbGljYXRlX3AgKHNl bCwgJmVsdCkpDQogICAgIHsNCiAgICAgICBpY29kZSA9IGNvZGVfZm9yX3By ZWRfZ2F0aGVyX3NjYWxhciAoZGF0YV9tb2RlKTsNCiAgICAgICBzZWwgPSBl bHQ7DQpAQCAtNzQ0LDcgKzgwMywxMCBAQCBlbWl0X3ZsbWF4X21hc2tlZF9n YXRoZXJfbXVfaW5zbiAocnR4IHRhcmdldCwgcnR4IG9wLCBydHggc2VsLCBy dHggbWFzaykNCiAgIHJ0eCBlbHQ7DQogICBpbnNuX2NvZGUgaWNvZGU7DQog ICBtYWNoaW5lX21vZGUgZGF0YV9tb2RlID0gR0VUX01PREUgKHRhcmdldCk7 DQotICBpZiAoY29uc3RfdmVjX2R1cGxpY2F0ZV9wIChzZWwsICZlbHQpKQ0K KyAgbWFjaGluZV9tb2RlIHNlbF9tb2RlID0gR0VUX01PREUgKHNlbCk7DQor ICBpZiAobWF5YmVfbmUgKEdFVF9NT0RFX1NJWkUgKGRhdGFfbW9kZSksIEdF VF9NT0RFX1NJWkUgKHNlbF9tb2RlKSkpDQorICAgIGljb2RlID0gY29kZV9m b3JfcHJlZF9nYXRoZXJlaTE2IChkYXRhX21vZGUpOw0KKyAgZWxzZSBpZiAo Y29uc3RfdmVjX2R1cGxpY2F0ZV9wIChzZWwsICZlbHQpKQ0KICAgICB7DQog ICAgICAgaWNvZGUgPSBjb2RlX2Zvcl9wcmVkX2dhdGhlcl9zY2FsYXIgKGRh dGFfbW9kZSk7DQogICAgICAgc2VsID0gZWx0Ow0KQEAgLTg5NSwxMSArOTU3 LDEzMCBAQCBleHBhbmRfY29uc3RfdmVjdG9yIChydHggdGFyZ2V0LCBydHgg c3JjKQ0KICAgICAgIHJldHVybjsNCiAgICAgfQ0KLSAgLyogVE9ETzogV2Ug b25seSBzdXBwb3J0IGNvbnN0IGR1cGxpY2F0ZSB2ZWN0b3IgZm9yIG5vdy4g TW9yZSBjYXNlcw0KLSAgICAgd2lsbCBiZSBzdXBwb3J0ZWQgd2hlbiB3ZSBz dXBwb3J0IGF1dG8tdmVjdG9yaXphdGlvbjoNCisgIC8qIEhhbmRsZSB2YXJp YWJsZS1sZW5ndGggdmVjdG9yLiAgKi8NCisgIHVuc2lnbmVkIGludCBuZWx0 c19wZXJfcGF0dGVybiA9IENPTlNUX1ZFQ1RPUl9ORUxUU19QRVJfUEFUVEVS TiAoc3JjKTsNCisgIHVuc2lnbmVkIGludCBucGF0dGVybnMgPSBDT05TVF9W RUNUT1JfTlBBVFRFUk5TIChzcmMpOw0KKyAgcnZ2X2J1aWxkZXIgYnVpbGRl ciAobW9kZSwgbnBhdHRlcm5zLCBuZWx0c19wZXJfcGF0dGVybik7DQorICBm b3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IG5lbHRzX3Blcl9wYXR0ZXJu OyBpKyspDQorICAgIHsNCisgICAgICBmb3IgKHVuc2lnbmVkIGludCBqID0g MDsgaiA8IG5wYXR0ZXJuczsgaisrKQ0KKyBidWlsZGVyLnF1aWNrX3B1c2gg KENPTlNUX1ZFQ1RPUl9FTFQgKHNyYywgaSAqIG5wYXR0ZXJucyArIGopKTsN CisgICAgfQ0KKyAgYnVpbGRlci5maW5hbGl6ZSAoKTsNCi0gICAgICAgMS4g bXVsdGlwbGUgZWx0cyBkdXBsaWNhdGUgdmVjdG9yLg0KLSAgICAgICAyLiBt dWx0aXBsZSBwYXR0ZXJucyB3aXRoIG11bHRpcGxlIGVsdHMuICAqLw0KKyAg aWYgKENPTlNUX1ZFQ1RPUl9EVVBMSUNBVEVfUCAoc3JjKSkNCisgICAgew0K KyAgICAgIGlmIChidWlsZGVyLmNhbl9kdXBsaWNhdGVfcmVwZWF0aW5nX3Nl cXVlbmNlX3AgKCkpDQorIHsNCisgICBydHggZWxlID0gYnVpbGRlci5nZXRf bWVyZ2VkX3JlcGVhdGluZ19zZXF1ZW5jZSAoKTsNCisgICBydHggZHVwID0g ZXhwYW5kX3ZlY3Rvcl9icm9hZGNhc3QgKGJ1aWxkZXIubmV3X21vZGUgKCks IGVsZSk7DQorICAgZW1pdF9tb3ZlX2luc24gKHRhcmdldCwgZ2VuX2xvd3Bh cnQgKG1vZGUsIGR1cCkpOw0KKyB9DQorICAgICAgZWxzZQ0KKyB7DQorICAg dW5zaWduZWQgaW50IG5iaXRzID0gbnBhdHRlcm5zIC0gMTsNCisNCisgICAv KiBHZW5lcmF0ZSB2aWQgPSB7IDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIC4u LiB9LiAgKi8NCisgICBydHggdmlkID0gZ2VuX3JlZ19ydHggKGJ1aWxkZXIu aW50X21vZGUgKCkpOw0KKyAgIHJ0eCBvcFtdID0ge3ZpZH07DQorICAgZW1p dF92bG1heF9pbnNuIChjb2RlX2Zvcl9wcmVkX3NlcmllcyAoYnVpbGRlci5p bnRfbW9kZSAoKSksDQorICAgIFJWVl9NSVNDX09QLCBvcCk7DQorDQorICAg LyogR2VuZXJhdGUgdmlkX3JlcGVhdCA9IHsgMCwgMSwgLi4uIG5iaXRzLCAu Li4gfSAgKi8NCisgICBydHggdmlkX3JlcGVhdCA9IGdlbl9yZWdfcnR4IChi dWlsZGVyLmludF9tb2RlICgpKTsNCisgICBydHggYW5kX29wc1tdID0ge3Zp ZF9yZXBlYXQsIHZpZCwNCisgICAgZ2VuX2ludF9tb2RlIChuYml0cywgYnVp bGRlci5pbm5lcl9pbnRfbW9kZSAoKSl9Ow0KKyAgIGVtaXRfdmxtYXhfaW5z biAoY29kZV9mb3JfcHJlZF9zY2FsYXIgKEFORCwgYnVpbGRlci5pbnRfbW9k ZSAoKSksDQorICAgIFJWVl9CSU5PUCwgYW5kX29wcyk7DQorDQorICAgcnR4 IHRtcCA9IGdlbl9yZWdfcnR4IChidWlsZGVyLm1vZGUgKCkpOw0KKyAgIHJ0 eCBkdXBfb3BzW10gPSB7dG1wLCBidWlsZGVyLmVsdCAoMCl9Ow0KKyAgIGVt aXRfdmxtYXhfaW5zbiAoY29kZV9mb3JfcHJlZF9icm9hZGNhc3QgKGJ1aWxk ZXIubW9kZSAoKSksIFJWVl9VTk9QLA0KKyAgICBkdXBfb3BzKTsNCisgICBm b3IgKHVuc2lnbmVkIGludCBpID0gMTsgaSA8IGJ1aWxkZXIubnBhdHRlcm5z ICgpOyBpKyspDQorICAgICB7DQorICAgICAgIC8qIEdlbmVyYXRlIG1hc2sg YWNjb3JkaW5nIHRvIGkuICAqLw0KKyAgICAgICBydHggbWFzayA9IGdlbl9y ZWdfcnR4IChidWlsZGVyLm1hc2tfbW9kZSAoKSk7DQorICAgICAgIHJ0eCBj b25zdF92ZWMgPSBnZW5fY29uc3RfdmVjdG9yX2R1cCAoYnVpbGRlci5pbnRf bW9kZSAoKSwgaSk7DQorICAgICAgIGV4cGFuZF92ZWNfY21wIChtYXNrLCBF USwgdmlkX3JlcGVhdCwgY29uc3RfdmVjKTsNCisNCisgICAgICAgLyogTWVy Z2Ugc2NhbGFyIHRvIGVhY2ggaS4gICovDQorICAgICAgIHJ0eCB0bXAyID0g Z2VuX3JlZ19ydHggKGJ1aWxkZXIubW9kZSAoKSk7DQorICAgICAgIHJ0eCBt ZXJnZV9vcHNbXSA9IHt0bXAyLCB0bXAsIGJ1aWxkZXIuZWx0IChpKSwgbWFz a307DQorICAgICAgIGluc25fY29kZSBpY29kZSA9IGNvZGVfZm9yX3ByZWRf bWVyZ2Vfc2NhbGFyIChidWlsZGVyLm1vZGUgKCkpOw0KKyAgICAgICBlbWl0 X3ZsbWF4X21lcmdlX2luc24gKGljb2RlLCBSVlZfTUVSR0VfT1AsIG1lcmdl X29wcyk7DQorICAgICAgIHRtcCA9IHRtcDI7DQorICAgICB9DQorICAgZW1p dF9tb3ZlX2luc24gKHRhcmdldCwgdG1wKTsNCisgfQ0KKyAgICAgIHJldHVy bjsNCisgICAgfQ0KKyAgZWxzZSBpZiAoQ09OU1RfVkVDVE9SX1NURVBQRURf UCAoc3JjKSkNCisgICAgew0KKyAgICAgIGdjY19hc3NlcnQgKEdFVF9NT0RF X0NMQVNTIChtb2RlKSA9PSBNT0RFX1ZFQ1RPUl9JTlQpOw0KKyAgICAgIGlm IChidWlsZGVyLnNpbmdsZV9zdGVwX25wYXR0ZXJuc19wICgpKQ0KKyB7DQor ICAgLyogRGVzY3JpYmUgdGhlIGNhc2UgYnkgY2hvb3NpbmcgTlBBVFRFUk5T ID0gNCBhcyBhbiBleGFtcGxlLiAgKi8NCisgICBydHggYmFzZSwgc3RlcDsN CisgICBpZiAoYnVpbGRlci5ucGF0dGVybnNfYWxsX2VxdWFsX3AgKCkpDQor ICAgICB7DQorICAgICAgIC8qIEdlbmVyYXRlIHRoZSB2YXJpYWJsZS1sZW5n dGggdmVjdG9yIGFzIGJlbG93Og0KKyBFLmcuIHsgMCwgMCwgMCwgMCwgOCwg OCwgOCwgOCwgMTYsIDE2LCAxNiwgMTYsIC4uLiB9ICovDQorICAgICAgIC8q IFN0ZXAgMTogR2VuZXJhdGUgYmFzZSA9IHsgMCwgMCwgMCwgMCwgMCwgMCwg MCwgLi4uIH0uICAqLw0KKyAgICAgICBiYXNlID0gZXhwYW5kX3ZlY3Rvcl9i cm9hZGNhc3QgKGJ1aWxkZXIubW9kZSAoKSwgYnVpbGRlci5lbHQgKDApKTsN CisgICAgIH0NCisgICBlbHNlDQorICAgICB7DQorICAgICAgIC8qIEdlbmVy YXRlIHRoZSB2YXJpYWJsZS1sZW5ndGggdmVjdG9yIGFzIGJlbG93Og0KKyBF LmcuIHsgMCwgNiwgMCwgNiwgOCwgMTQsIDgsIDE0LCAxNiwgMjIsIDE2LCAy MiwgLi4uIH0gKi8NCisgICAgICAgLyogU3RlcCAxOiBHZW5lcmF0ZSBiYXNl ID0geyAwLCA2LCAwLCA2LCAuLi4gfS4gICovDQorICAgICAgIHJ2dl9idWls ZGVyIG5ld19idWlsZGVyIChidWlsZGVyLm1vZGUgKCksIGJ1aWxkZXIubnBh dHRlcm5zICgpLA0KKyAgICAgICAgMSk7DQorICAgICAgIGZvciAodW5zaWdu ZWQgaW50IGkgPSAwOyBpIDwgYnVpbGRlci5ucGF0dGVybnMgKCk7ICsraSkN CisgbmV3X2J1aWxkZXIucXVpY2tfcHVzaCAoYnVpbGRlci5lbHQgKGkpKTsN CisgICAgICAgcnR4IG5ld192ZWMgPSBuZXdfYnVpbGRlci5idWlsZCAoKTsN CisgICAgICAgYmFzZSA9IGdlbl9yZWdfcnR4IChidWlsZGVyLm1vZGUgKCkp Ow0KKyAgICAgICBlbWl0X21vdmVfaW5zbiAoYmFzZSwgbmV3X3ZlYyk7DQor ICAgICB9DQorDQorICAgLyogU3RlcCAyOiBHZW5lcmF0ZSBzdGVwID0gZ2Vu X2ludF9tb2RlIChkaWZmLCBtb2RlKS4gICovDQorICAgcG9seV9pbnQ2NCB2 YWx1ZTEgPSBydHhfdG9fcG9seV9pbnQ2NCAoYnVpbGRlci5lbHQgKDApKTsN CisgICBwb2x5X2ludDY0IHZhbHVlMg0KKyAgICAgPSBydHhfdG9fcG9seV9p bnQ2NCAoYnVpbGRlci5lbHQgKGJ1aWxkZXIubnBhdHRlcm5zICgpKSk7DQor ICAgcG9seV9pbnQ2NCBkaWZmID0gdmFsdWUyIC0gdmFsdWUxOw0KKyAgIHN0 ZXAgPSBnZW5faW50X21vZGUgKGRpZmYsIGJ1aWxkZXIuaW5uZXJfbW9kZSAo KSk7DQorDQorICAgLyogU3RlcCAzOiBHZW5lcmF0ZSB2aWQgPSB7IDAsIDEs IDIsIDMsIDQsIDUsIDYsIDcsIC4uLiB9LiAgKi8NCisgICBydHggdmlkID0g Z2VuX3JlZ19ydHggKGJ1aWxkZXIubW9kZSAoKSk7DQorICAgcnR4IG9wW10g PSB7dmlkfTsNCisgICBlbWl0X3ZsbWF4X2luc24gKGNvZGVfZm9yX3ByZWRf c2VyaWVzIChidWlsZGVyLm1vZGUgKCkpLCBSVlZfTUlTQ19PUCwNCisgICAg b3ApOw0KKw0KKyAgIC8qIFN0ZXAgNDogR2VuZXJhdGUgZmFjdG9yID0geyAw LCAwLCAwLCAwLCAxLCAxLCAxLCAxLCAuLi4gfS4gICovDQorICAgcnR4IGZh Y3RvciA9IGdlbl9yZWdfcnR4IChidWlsZGVyLm1vZGUgKCkpOw0KKyAgIHJ0 eCBzaGlmdF9vcHNbXQ0KKyAgICAgPSB7ZmFjdG9yLCB2aWQsDQorICAgICAg ICBnZW5faW50X21vZGUgKGV4YWN0X2xvZzIgKGJ1aWxkZXIubnBhdHRlcm5z ICgpKSwgUG1vZGUpfTsNCisgICBlbWl0X3ZsbWF4X2luc24gKGNvZGVfZm9y X3ByZWRfc2NhbGFyIChMU0hJRlRSVCwgYnVpbGRlci5tb2RlICgpKSwNCisg ICAgUlZWX0JJTk9QLCBzaGlmdF9vcHMpOw0KKw0KKyAgIC8qIFN0ZXAgNTog R2VuZXJhdGUgYWRqdXN0ZWQgc3RlcCA9IHsgMCwgMCwgMCwgMCwgZGlmZiwg ZGlmZiwgLi4uIH0gKi8NCisgICBydHggYWRqdXN0ZWRfc3RlcCA9IGdlbl9y ZWdfcnR4IChidWlsZGVyLm1vZGUgKCkpOw0KKyAgIHJ0eCBtdWxfb3BzW10g PSB7YWRqdXN0ZWRfc3RlcCwgZmFjdG9yLCBzdGVwfTsNCisgICBlbWl0X3Zs bWF4X2luc24gKGNvZGVfZm9yX3ByZWRfc2NhbGFyIChNVUxULCBidWlsZGVy Lm1vZGUgKCkpLA0KKyAgICBSVlZfQklOT1AsIG11bF9vcHMpOw0KKw0KKyAg IC8qIFN0ZXAgNjogR2VuZXJhdGUgdGhlIGZpbmFsIHJlc3VsdC4gICovDQor ICAgcnR4IGFkZF9vcHNbXSA9IHt0YXJnZXQsIGJhc2UsIGFkanVzdGVkX3N0 ZXB9Ow0KKyAgIGVtaXRfdmxtYXhfaW5zbiAoY29kZV9mb3JfcHJlZCAoUExV UywgYnVpbGRlci5tb2RlICgpKSwgUlZWX0JJTk9QLA0KKyAgICBhZGRfb3Bz KTsNCisgfQ0KKyAgICAgIGVsc2UNCisgLyogVE9ETzogV2Ugd2lsbCBlbmFi bGUgbW9yZSB2YXJpYWJsZS1sZW5ndGggdmVjdG9yIGluIHRoZSBmdXR1cmUu ICAqLw0KKyBnY2NfdW5yZWFjaGFibGUgKCk7DQorICAgIH0NCisgIGVsc2UN CisgICAgZ2NjX3VucmVhY2hhYmxlICgpOw0KfQ0KLyogRXhwYW5kIGEgcHJl LVJBIFJWViBkYXRhIG1vdmUgZnJvbSBTUkMgdG8gREVTVC4NCkBAIC0yMDI5 LDE0ICsyMjEwLDEzIEBAIGV4cGFuZF92ZWNfcGVybSAocnR4IHRhcmdldCwg cnR4IG9wMCwgcnR4IG9wMSwgcnR4IHNlbCkNCnsNCiAgIG1hY2hpbmVfbW9k ZSBkYXRhX21vZGUgPSBHRVRfTU9ERSAodGFyZ2V0KTsNCiAgIG1hY2hpbmVf bW9kZSBzZWxfbW9kZSA9IEdFVF9NT0RFIChzZWwpOw0KLQ0KLSAgLyogRW5m b3JjZWQgYnkgdGhlIHBhdHRlcm4gY29uZGl0aW9uLiAgKi8NCi0gIGludCBu dW5pdHMgPSBHRVRfTU9ERV9OVU5JVFMgKHNlbF9tb2RlKS50b19jb25zdGFu dCAoKTsNCisgIHBvbHlfdWludDY0IG51bml0cyA9IEdFVF9NT0RFX05VTklU UyAoc2VsX21vZGUpOw0KICAgLyogQ2hlY2sgaWYgdGhlIHNlbCBvbmx5IHJl ZmVyZW5jZXMgdGhlIGZpcnN0IHZhbHVlcyB2ZWN0b3IuIElmIGVhY2ggc2Vs ZWN0DQogICAgICBpbmRleCBpcyBpbiByYW5nZSBvZiBbMCwgbnVuaXRzIC0g MV0uIEEgc2luZ2xlIHZyZ2F0aGVyIGluc3RydWN0aW9ucyBpcw0KLSAgICAg ZW5vdWdoLiAgKi8NCi0gIGlmIChjb25zdF92ZWNfYWxsX2luX3JhbmdlX3Ag KHNlbCwgMCwgbnVuaXRzIC0gMSkpDQorICAgICBlbm91Z2guIFNpbmNlIHdl IHdpbGwgdXNlIHZyZ2F0aGVyZWkxNi52diBmb3IgdmFyaWFibGUtbGVuZ3Ro IHZlY3RvciwNCisgICAgIGl0IGlzIG5ldmVyIG91dCBvZiByYW5nZSBhbmQg d2UgZG9uJ3QgbmVlZCB0byBtb2R1bG8gdGhlIGluZGV4LiAgKi8NCisgIGlm ICghbnVuaXRzLmlzX2NvbnN0YW50ICgpIHx8IGNvbnN0X3ZlY19hbGxfaW5f cmFuZ2VfcCAoc2VsLCAwLCBudW5pdHMgLSAxKSkNCiAgICAgew0KICAgICAg IGVtaXRfdmxtYXhfZ2F0aGVyX2luc24gKHRhcmdldCwgb3AwLCBzZWwpOw0K ICAgICAgIHJldHVybjsNCkBAIC0yMDU3LDE0ICsyMjM3LDIwIEBAIGV4cGFu ZF92ZWNfcGVybSAocnR4IHRhcmdldCwgcnR4IG9wMCwgcnR4IG9wMSwgcnR4 IHNlbCkNCiAgICAgICByZXR1cm47DQogICAgIH0NCi0gIC8qIE5vdGU6IHZl Y19wZXJtIGluZGljZXMgYXJlIHN1cHBvc2VkIHRvIHdyYXAgd2hlbiB0aGV5 IGdvIGJleW9uZCB0aGUNCi0gICAgIHNpemUgb2YgdGhlIHR3byB2YWx1ZSB2 ZWN0b3JzLCBpLmUuIHRoZSB1cHBlciBiaXRzIG9mIHRoZSBpbmRpY2VzDQot ICAgICBhcmUgZWZmZWN0aXZlbHkgaWdub3JlZC4gIFJWViB2cmdhdGhlciBp bnN0ZWFkIHByb2R1Y2VzIDAgZm9yIGFueQ0KLSAgICAgb3V0LW9mLXJhbmdl IGluZGljZXMsIHNvIHdlIG5lZWQgdG8gbW9kdWxvIGFsbCB0aGUgdmVjX3Bl cm0gaW5kaWNlcw0KLSAgICAgdG8gZW5zdXJlIHRoZXkgYXJlIGFsbCBpbiBy YW5nZSBvZiBbMCwgMiAqIG51bml0cyAtIDFdLiAgKi8NCisgIHJ0eCBzZWxf bW9kID0gc2VsOw0KICAgcnR4IG1heF9zZWwgPSBnZW5fY29uc3RfdmVjdG9y X2R1cCAoc2VsX21vZGUsIDIgKiBudW5pdHMgLSAxKTsNCi0gIHJ0eCBzZWxf bW9kDQotICAgID0gZXhwYW5kX3NpbXBsZV9iaW5vcCAoc2VsX21vZGUsIEFO RCwgc2VsLCBtYXhfc2VsLCBOVUxMLCAwLCBPUFRBQl9ESVJFQ1QpOw0KKyAg LyogV2UgZG9uJ3QgbmVlZCB0byBtb2R1bG8gaW5kaWNlcyBmb3IgVkxBIHZl Y3Rvci4NCisgICAgIFNpbmNlIHdlIHNob3VsZCBndXJhbnRlZSB0aGV5IGFy ZW4ndCBvdXQgb2YgcmFuZ2UgYmVmb3JlLiAgKi8NCisgIGlmIChudW5pdHMu aXNfY29uc3RhbnQgKCkpDQorICAgIHsNCisgICAgICAvKiBOb3RlOiB2ZWNf cGVybSBpbmRpY2VzIGFyZSBzdXBwb3NlZCB0byB3cmFwIHdoZW4gdGhleSBn byBiZXlvbmQgdGhlDQorIHNpemUgb2YgdGhlIHR3byB2YWx1ZSB2ZWN0b3Jz LCBpLmUuIHRoZSB1cHBlciBiaXRzIG9mIHRoZSBpbmRpY2VzDQorIGFyZSBl ZmZlY3RpdmVseSBpZ25vcmVkLiAgUlZWIHZyZ2F0aGVyIGluc3RlYWQgcHJv ZHVjZXMgMCBmb3IgYW55DQorIG91dC1vZi1yYW5nZSBpbmRpY2VzLCBzbyB3 ZSBuZWVkIHRvIG1vZHVsbyBhbGwgdGhlIHZlY19wZXJtIGluZGljZXMNCisg dG8gZW5zdXJlIHRoZXkgYXJlIGFsbCBpbiByYW5nZSBvZiBbMCwgMiAqIG51 bml0cyAtIDFdLiAgKi8NCisgICAgICBzZWxfbW9kID0gZXhwYW5kX3NpbXBs ZV9iaW5vcCAoc2VsX21vZGUsIEFORCwgc2VsLCBtYXhfc2VsLCBOVUxMLCAw LA0KKyAgICAgIE9QVEFCX0RJUkVDVCk7DQorICAgIH0NCiAgIC8qIFRoaXMg Zm9sbG93aW5nIHNlcXVlbmNlIGlzIGhhbmRsaW5nIHRoZSBjYXNlIHRoYXQ6 DQogICAgICBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvciAodmVjMSwgdmVjMiwg aW5kZXguLi4pLCB0aGUgaW5kZXggY2FuIGJlIGFueQ0KQEAgLTIwOTQsNCAr MjI4MCwxMjQgQEAgZXhwYW5kX3ZlY19wZXJtIChydHggdGFyZ2V0LCBydHgg b3AwLCBydHggb3AxLCBydHggc2VsKQ0KICAgZW1pdF92bG1heF9tYXNrZWRf Z2F0aGVyX211X2luc24gKHRhcmdldCwgb3AxLCB0bXAsIG1hc2spOw0KfQ0K Ky8qIEltcGxlbWVudCBUQVJHRVRfVkVDVE9SSVpFX1ZFQ19QRVJNX0NPTlNU IGZvciBSVlYuICAqLw0KKw0KKy8qIHZlY19wZXJtIHN1cHBvcnQuICAqLw0K Kw0KK3N0cnVjdCBleHBhbmRfdmVjX3Blcm1fZA0KK3sNCisgIHJ0eCB0YXJn ZXQsIG9wMCwgb3AxOw0KKyAgdmVjX3Blcm1faW5kaWNlcyBwZXJtOw0KKyAg bWFjaGluZV9tb2RlIHZtb2RlOw0KKyAgbWFjaGluZV9tb2RlIG9wX21vZGU7 DQorICBib29sIG9uZV92ZWN0b3JfcDsNCisgIGJvb2wgdGVzdGluZ19wOw0K K307DQorDQorLyogUmVjb2duaXplIHRoZSBwYXR0ZXJuIHRoYXQgY2FuIGJl IHNodWZmbGVkIGJ5IGdlbmVyaWMgYXBwcm9hY2guICAqLw0KKw0KK3N0YXRp YyBib29sDQorc2h1ZmZsZV9nZW5lcmljX3BhdHRlcm5zIChzdHJ1Y3QgZXhw YW5kX3ZlY19wZXJtX2QgKmQpDQorew0KKyAgbWFjaGluZV9tb2RlIHNlbF9t b2RlID0gcmVsYXRlZF9pbnRfdmVjdG9yX21vZGUgKGQtPnZtb2RlKS5yZXF1 aXJlICgpOw0KKyAgcG9seV91aW50NjQgbnVuaXRzID0gR0VUX01PREVfTlVO SVRTIChkLT52bW9kZSk7DQorDQorICAvKiBGb3IgY29uc3RhbnQgc2l6ZSBp bmRpY2VzLCB3ZSBkb250J3QgbmVlZCB0byBoYW5kbGUgaXQgaGVyZS4NCisg ICAgIEp1c3QgbGVhdmUgaXQgdG8gdmVjX3Blcm08bW9kZT4uICAqLw0KKyAg aWYgKGQtPnBlcm0ubGVuZ3RoICgpLmlzX2NvbnN0YW50ICgpKQ0KKyAgICBy ZXR1cm4gZmFsc2U7DQorDQorICAvKiBQZXJtdXRpbmcgdHdvIFNFVzggdmFy aWFibGUtbGVuZ3RoIHZlY3RvcnMgbmVlZCB2cmdhdGhlcmVpMTYudnYuDQor ICAgICBPdGhlcndpc2UsIGl0IGNvdWxkIG92ZXJmbG93IHRoZSBpbmRleCBy YW5nZS4gICovDQorICBpZiAoR0VUX01PREVfSU5ORVIgKGQtPnZtb2RlKSA9 PSBRSW1vZGUNCisgICAgICAmJiAhZ2V0X3ZlY3Rvcl9tb2RlIChISW1vZGUs IG51bml0cykuZXhpc3RzICgmc2VsX21vZGUpKQ0KKyAgICByZXR1cm4gZmFs c2U7DQorDQorICAvKiBTdWNjZXNzISAqLw0KKyAgaWYgKGQtPnRlc3Rpbmdf cCkNCisgICAgcmV0dXJuIHRydWU7DQorDQorICBydHggc2VsID0gdmVjX3Bl cm1faW5kaWNlc190b19ydHggKHNlbF9tb2RlLCBkLT5wZXJtKTsNCisgIGV4 cGFuZF92ZWNfcGVybSAoZC0+dGFyZ2V0LCBkLT5vcDAsIGQtPm9wMSwgZm9y Y2VfcmVnIChzZWxfbW9kZSwgc2VsKSk7DQorICByZXR1cm4gdHJ1ZTsNCit9 DQorDQorc3RhdGljIGJvb2wNCitleHBhbmRfdmVjX3Blcm1fY29uc3RfMSAo c3RydWN0IGV4cGFuZF92ZWNfcGVybV9kICpkKQ0KK3sNCisgIGdjY19hc3Nl cnQgKGQtPm9wX21vZGUgIT0gRV9WT0lEbW9kZSk7DQorDQorICAvKiBUaGUg cGF0dGVybiBtYXRjaGluZyBmdW5jdGlvbnMgYWJvdmUgYXJlIHdyaXR0ZW4g dG8gbG9vayBmb3IgYSBzbWFsbA0KKyAgICAgbnVtYmVyIHRvIGJlZ2luIHRo ZSBzZXF1ZW5jZSAoMCwgMSwgTi8yKS4gIElmIHdlIGJlZ2luIHdpdGggYW4g aW5kZXgNCisgICAgIGZyb20gdGhlIHNlY29uZCBvcGVyYW5kLCB3ZSBjYW4g c3dhcCB0aGUgb3BlcmFuZHMuICAqLw0KKyAgcG9seV9pbnQ2NCBuZWx0ID0g ZC0+cGVybS5sZW5ndGggKCk7DQorICBpZiAoa25vd25fZ2UgKGQtPnBlcm1b MF0sIG5lbHQpKQ0KKyAgICB7DQorICAgICAgZC0+cGVybS5yb3RhdGVfaW5w dXRzICgxKTsNCisgICAgICBzdGQ6OnN3YXAgKGQtPm9wMCwgZC0+b3AxKTsN CisgICAgfQ0KKw0KKyAgaWYgKGtub3duX2d0IChuZWx0LCAxKSkNCisgICAg ew0KKyAgICAgIGlmIChkLT52bW9kZSA9PSBkLT5vcF9tb2RlKQ0KKyB7DQor ICAgaWYgKHNodWZmbGVfZ2VuZXJpY19wYXR0ZXJucyAoZCkpDQorICAgICBy ZXR1cm4gdHJ1ZTsNCisgICByZXR1cm4gZmFsc2U7DQorIH0NCisgICAgICBl bHNlDQorIHJldHVybiBmYWxzZTsNCisgICAgfQ0KKyAgcmV0dXJuIGZhbHNl Ow0KK30NCisNCitib29sDQorZXhwYW5kX3ZlY19wZXJtX2NvbnN0IChtYWNo aW5lX21vZGUgdm1vZGUsIG1hY2hpbmVfbW9kZSBvcF9tb2RlLCBydHggdGFy Z2V0LA0KKyAgICAgICAgcnR4IG9wMCwgcnR4IG9wMSwgY29uc3QgdmVjX3Bl cm1faW5kaWNlcyAmc2VsKQ0KK3sNCisgIC8qIFJWViBkb2Vzbid0IGhhdmUg TWFzayB0eXBlIHBhY2svdW5wYWNrIGluc3RydWN0aW9ucyBhbmQgd2UgZG9u J3QgdXNlDQorICAgICBtYXNrIHRvIGRvIHRoZSBpdGVyYXRpb24gbG9vcCBj b250cm9sLiBKdXN0IGRpc2FibGUgaXQgZGlyZWN0bHkuICAqLw0KKyAgaWYg KEdFVF9NT0RFX0NMQVNTICh2bW9kZSkgPT0gTU9ERV9WRUNUT1JfQk9PTCkN CisgICAgcmV0dXJuIGZhbHNlOw0KKw0KKyAgc3RydWN0IGV4cGFuZF92ZWNf cGVybV9kIGQ7DQorDQorICAvKiBDaGVjayB3aGV0aGVyIHRoZSBtYXNrIGNh biBiZSBhcHBsaWVkIHRvIGEgc2luZ2xlIHZlY3Rvci4gICovDQorICBpZiAo c2VsLm5pbnB1dHMgKCkgPT0gMSB8fCAob3AwICYmIHJ0eF9lcXVhbF9wIChv cDAsIG9wMSkpKQ0KKyAgICBkLm9uZV92ZWN0b3JfcCA9IHRydWU7DQorICBl bHNlIGlmIChzZWwuYWxsX2Zyb21faW5wdXRfcCAoMCkpDQorICAgIHsNCisg ICAgICBkLm9uZV92ZWN0b3JfcCA9IHRydWU7DQorICAgICAgb3AxID0gb3Aw Ow0KKyAgICB9DQorICBlbHNlIGlmIChzZWwuYWxsX2Zyb21faW5wdXRfcCAo MSkpDQorICAgIHsNCisgICAgICBkLm9uZV92ZWN0b3JfcCA9IHRydWU7DQor ICAgICAgb3AwID0gb3AxOw0KKyAgICB9DQorICBlbHNlDQorICAgIGQub25l X3ZlY3Rvcl9wID0gZmFsc2U7DQorDQorICBkLnBlcm0ubmV3X3ZlY3RvciAo c2VsLmVuY29kaW5nICgpLCBkLm9uZV92ZWN0b3JfcCA/IDEgOiAyLA0KKyAg ICAgIHNlbC5uZWx0c19wZXJfaW5wdXQgKCkpOw0KKyAgZC52bW9kZSA9IHZt b2RlOw0KKyAgZC5vcF9tb2RlID0gb3BfbW9kZTsNCisgIGQudGFyZ2V0ID0g dGFyZ2V0Ow0KKyAgZC5vcDAgPSBvcDA7DQorICBpZiAob3AwID09IG9wMSkN CisgICAgZC5vcDEgPSBkLm9wMDsNCisgIGVsc2UNCisgICAgZC5vcDEgPSBv cDE7DQorICBkLnRlc3RpbmdfcCA9ICF0YXJnZXQ7DQorDQorICBpZiAoIWQu dGVzdGluZ19wKQ0KKyAgICByZXR1cm4gZXhwYW5kX3ZlY19wZXJtX2NvbnN0 XzEgKCZkKTsNCisNCisgIHJ0eF9pbnNuICpsYXN0ID0gZ2V0X2xhc3RfaW5z biAoKTsNCisgIGJvb2wgcmV0ID0gZXhwYW5kX3ZlY19wZXJtX2NvbnN0XzEg KCZkKTsNCisgIGdjY19hc3NlcnQgKGxhc3QgPT0gZ2V0X2xhc3RfaW5zbiAo KSk7DQorDQorICByZXR1cm4gcmV0Ow0KK30NCisNCn0gLy8gbmFtZXNwYWNl IHJpc2N2X3ZlY3Rvcg0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3Yv cmlzY3YuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNjDQppbmRleCBj YWE3ODU4Yjg2NC4uNWQyMjAxMmI1OTEgMTAwNjQ0DQotLS0gYS9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LmNjDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LmNjDQpAQCAtNzYzMSw2ICs3NjMxLDE5IEBAIHJpc2N2X3ZlY3Rvcml6 ZV9yZWxhdGVkX21vZGUgKG1hY2hpbmVfbW9kZSB2ZWN0b3JfbW9kZSwgc2Nh bGFyX21vZGUgZWxlbWVudF9tb2RlDQogICByZXR1cm4gZGVmYXVsdF92ZWN0 b3JpemVfcmVsYXRlZF9tb2RlICh2ZWN0b3JfbW9kZSwgZWxlbWVudF9tb2Rl LCBudW5pdHMpOw0KfQ0KKy8qIEltcGxlbWVudCBUQVJHRVRfVkVDVE9SSVpF X1ZFQ19QRVJNX0NPTlNULiAgKi8NCisNCitzdGF0aWMgYm9vbA0KK3Jpc2N2 X3ZlY3Rvcml6ZV92ZWNfcGVybV9jb25zdCAobWFjaGluZV9tb2RlIHZtb2Rl LCBtYWNoaW5lX21vZGUgb3BfbW9kZSwNCisgcnR4IHRhcmdldCwgcnR4IG9w MCwgcnR4IG9wMSwNCisgY29uc3QgdmVjX3Blcm1faW5kaWNlcyAmc2VsKQ0K K3sNCisgIGlmIChUQVJHRVRfVkVDVE9SICYmIHJpc2N2X3ZfZXh0X3ZlY3Rv cl9tb2RlX3AgKHZtb2RlKSkNCisgICAgcmV0dXJuIHJpc2N2X3ZlY3Rvcjo6 ZXhwYW5kX3ZlY19wZXJtX2NvbnN0ICh2bW9kZSwgb3BfbW9kZSwgdGFyZ2V0 LCBvcDAsDQorIG9wMSwgc2VsKTsNCisNCisgIHJldHVybiBmYWxzZTsNCit9 DQovKiBJbml0aWFsaXplIHRoZSBHQ0MgdGFyZ2V0IHN0cnVjdHVyZS4gICov DQojdW5kZWYgVEFSR0VUX0FTTV9BTElHTkVEX0hJX09QDQpAQCAtNzkzMCw2 ICs3OTQzLDkgQEAgcmlzY3ZfdmVjdG9yaXplX3JlbGF0ZWRfbW9kZSAobWFj aGluZV9tb2RlIHZlY3Rvcl9tb2RlLCBzY2FsYXJfbW9kZSBlbGVtZW50X21v ZGUNCiN1bmRlZiBUQVJHRVRfVkVDVE9SSVpFX1JFTEFURURfTU9ERQ0KI2Rl ZmluZSBUQVJHRVRfVkVDVE9SSVpFX1JFTEFURURfTU9ERSByaXNjdl92ZWN0 b3JpemVfcmVsYXRlZF9tb2RlDQorI3VuZGVmIFRBUkdFVF9WRUNUT1JJWkVf VkVDX1BFUk1fQ09OU1QNCisjZGVmaW5lIFRBUkdFVF9WRUNUT1JJWkVfVkVD X1BFUk1fQ09OU1QgcmlzY3ZfdmVjdG9yaXplX3ZlY19wZXJtX2NvbnN0DQor DQpzdHJ1Y3QgZ2NjX3RhcmdldCB0YXJnZXRtID0gVEFSR0VUX0lOSVRJQUxJ WkVSOw0KI2luY2x1ZGUgImd0LXJpc2N2LmgiDQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRp YWwvc2xwLTEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYXV0b3ZlYy9wYXJ0aWFsL3NscC0xLmMNCm5ldyBmaWxlIG1vZGUgMTAw NjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYmVmYjUxOGUyZGQNCi0tLSAvZGV2 L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYXV0b3ZlYy9wYXJ0aWFsL3NscC0xLmMNCkBAIC0wLDAgKzEsMjIgQEAN CisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctYWRkaXRpb25h bC1vcHRpb25zICItbWFyY2g9cnYzMmdjdiAtbWFiaT1pbHAzMmQgLS1wYXJh bSByaXNjdi1hdXRvdmVjLXByZWZlcmVuY2U9c2NhbGFibGUgLWZkdW1wLXRy ZWUtb3B0aW1pemVkLWRldGFpbHMiIH0gKi8NCisNCisjaW5jbHVkZSA8c3Rk aW50LWdjYy5oPg0KKw0KK3ZvaWQgX19hdHRyaWJ1dGVfXyAoKG5vaXBhKSkN CitmIChpbnQ4X3QgKnJlc3RyaWN0IGEsIGludDhfdCAqcmVzdHJpY3QgYiwg aW50IG4pDQorew0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpDQor ICAgIHsNCisgICAgICBhW2kgKiA4ICsgMF0gPSBiW2kgKiA4ICsgMzddICsg MTsNCisgICAgICBhW2kgKiA4ICsgMV0gPSBiW2kgKiA4ICsgMzddICsgMjsN CisgICAgICBhW2kgKiA4ICsgMl0gPSBiW2kgKiA4ICsgMzddICsgODsNCisg ICAgICBhW2kgKiA4ICsgM10gPSBiW2kgKiA4ICsgMzddICsgNDsNCisgICAg ICBhW2kgKiA4ICsgNF0gPSBiW2kgKiA4ICsgMzddICsgNTsNCisgICAgICBh W2kgKiA4ICsgNV0gPSBiW2kgKiA4ICsgMzddICsgNjsNCisgICAgICBhW2kg KiA4ICsgNl0gPSBiW2kgKiA4ICsgMzddICsgNzsNCisgICAgICBhW2kgKiA4 ICsgN10gPSBiW2kgKiA4ICsgMzddICsgMzsNCisgICAgfQ0KK30NCisNCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIlwuVkVDX1BF Uk0iIDEgIm9wdGltaXplZCIgfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRpYWwv c2xwLTIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YXV0b3ZlYy9wYXJ0aWFsL3NscC0yLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQppbmRleCAwMDAwMDAwMDAwMC4uYWM4MTc0NTEyOTUNCi0tLSAvZGV2L251 bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YXV0b3ZlYy9wYXJ0aWFsL3NscC0yLmMNCkBAIC0wLDAgKzEsMjIgQEANCisv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctYWRkaXRpb25hbC1v cHRpb25zICItbWFyY2g9cnYzMmdjdiAtbWFiaT1pbHAzMmQgLS1wYXJhbSBy aXNjdi1hdXRvdmVjLXByZWZlcmVuY2U9c2NhbGFibGUgLWZkdW1wLXRyZWUt b3B0aW1pemVkLWRldGFpbHMiIH0gKi8NCisNCisjaW5jbHVkZSA8c3RkaW50 LWdjYy5oPg0KKw0KK3ZvaWQgX19hdHRyaWJ1dGVfXyAoKG5vaXBhKSkNCitm IChpbnQxNl90ICpyZXN0cmljdCBhLCBpbnQxNl90ICpyZXN0cmljdCBiLCBp bnQgbikNCit7DQorICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkNCisg ICAgew0KKyAgICAgIGFbaSAqIDggKyAwXSA9IGJbaSAqIDggKyAzN10gKyAx Ow0KKyAgICAgIGFbaSAqIDggKyAxXSA9IGJbaSAqIDggKyAzN10gKyAyOw0K KyAgICAgIGFbaSAqIDggKyAyXSA9IGJbaSAqIDggKyAzN10gKyA4Ow0KKyAg ICAgIGFbaSAqIDggKyAzXSA9IGJbaSAqIDggKyAzN10gKyA0Ow0KKyAgICAg IGFbaSAqIDggKyA0XSA9IGJbaSAqIDggKyAzN10gKyA1Ow0KKyAgICAgIGFb aSAqIDggKyA1XSA9IGJbaSAqIDggKyAzN10gKyA2Ow0KKyAgICAgIGFbaSAq IDggKyA2XSA9IGJbaSAqIDggKyAzN10gKyA3Ow0KKyAgICAgIGFbaSAqIDgg KyA3XSA9IGJbaSAqIDggKyAzN10gKyAzOw0KKyAgICB9DQorfQ0KKw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiXC5WRUNfUEVS TSIgMSAib3B0aW1pemVkIiB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcGFydGlhbC9z bHAtMy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9h dXRvdmVjL3BhcnRpYWwvc2xwLTMuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAwMDAwLi43Mzk2MjA1NWIwMw0KLS0tIC9kZXYvbnVs bA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9h dXRvdmVjL3BhcnRpYWwvc2xwLTMuYw0KQEAgLTAsMCArMSwyMiBAQA0KKy8q IHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1hZGRpdGlvbmFsLW9w dGlvbnMgIi1tYXJjaD1ydjMyZ2N2IC1tYWJpPWlscDMyZCAtLXBhcmFtIHJp c2N2LWF1dG92ZWMtcHJlZmVyZW5jZT1zY2FsYWJsZSAtZmR1bXAtdHJlZS1v cHRpbWl6ZWQtZGV0YWlscyIgfSAqLw0KKw0KKyNpbmNsdWRlIDxzdGRpbnQt Z2NjLmg+DQorDQordm9pZCBfX2F0dHJpYnV0ZV9fICgobm9pcGEpKQ0KK2Yg KGludDhfdCAqcmVzdHJpY3QgYSwgaW50OF90ICpyZXN0cmljdCBiLCBpbnQg bikNCit7DQorICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkNCisgICAg ew0KKyAgICAgIGFbaSAqIDhdID0gYltpICogOCArIDFdICsgMTsNCisgICAg ICBhW2kgKiA4ICsgMV0gPSBiW2kgKiA4ICsgN10gKyAyOw0KKyAgICAgIGFb aSAqIDggKyAyXSA9IGJbaSAqIDggKyAxXSArIDM7DQorICAgICAgYVtpICog OCArIDNdID0gYltpICogOCArIDddICsgNDsNCisgICAgICBhW2kgKiA4ICsg NF0gPSBiW2kgKiA4ICsgMV0gKyA1Ow0KKyAgICAgIGFbaSAqIDggKyA1XSA9 IGJbaSAqIDggKyA3XSArIDY7DQorICAgICAgYVtpICogOCArIDZdID0gYltp ICogOCArIDFdICsgNzsNCisgICAgICBhW2kgKiA4ICsgN10gPSBiW2kgKiA4 ICsgN10gKyA4Ow0KKyAgICB9DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLXRyZWUtZHVtcC10aW1lcyAiXC5WRUNfUEVSTSIgMSAib3B0aW1pemVk IiB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcGFydGlhbC9zbHAtNC5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRpYWwv c2xwLTQuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAw MDAwLi5mYTIxNmZjOGM0MA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRpYWwv c2xwLTQuYw0KQEAgLTAsMCArMSwyMiBAQA0KKy8qIHsgZGctZG8gY29tcGls ZSB9ICovDQorLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1tYXJjaD1y djMyZ2N2IC1tYWJpPWlscDMyZCAtLXBhcmFtIHJpc2N2LWF1dG92ZWMtcHJl ZmVyZW5jZT1zY2FsYWJsZSAtZmR1bXAtdHJlZS1vcHRpbWl6ZWQtZGV0YWls cyIgfSAqLw0KKw0KKyNpbmNsdWRlIDxzdGRpbnQtZ2NjLmg+DQorDQordm9p ZCBfX2F0dHJpYnV0ZV9fICgobm9pcGEpKQ0KK2YgKGludDE2X3QgKnJlc3Ry aWN0IGEsIGludDE2X3QgKnJlc3RyaWN0IGIsIGludCBuKQ0KK3sNCisgIGZv ciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKQ0KKyAgICB7DQorICAgICAgYVtp ICogOCArIDBdID0gYltpICogOCArIDFdICsgMTsNCisgICAgICBhW2kgKiA4 ICsgMV0gPSBiW2kgKiA4ICsgN10gKyAyOw0KKyAgICAgIGFbaSAqIDggKyAy XSA9IGJbaSAqIDggKyAxXSArIDM7DQorICAgICAgYVtpICogOCArIDNdID0g YltpICogOCArIDddICsgNDsNCisgICAgICBhW2kgKiA4ICsgNF0gPSBiW2kg KiA4ICsgMV0gKyA1Ow0KKyAgICAgIGFbaSAqIDggKyA1XSA9IGJbaSAqIDgg KyA3XSArIDY7DQorICAgICAgYVtpICogOCArIDZdID0gYltpICogOCArIDFd ICsgNzsNCisgICAgICBhW2kgKiA4ICsgN10gPSBiW2kgKiA4ICsgN10gKyA4 Ow0KKyAgICB9DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcC10aW1lcyAiXC5WRUNfUEVSTSIgMSAib3B0aW1pemVkIiB9IH0gKi8N CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2F1dG92ZWMvcGFydGlhbC9zbHAtNS5jIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRpYWwvc2xwLTUuYw0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi44OTll ZDllMzEwYg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRpYWwvc2xwLTUuYw0K QEAgLTAsMCArMSwyMiBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQor LyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N2IC1t YWJpPWlscDMyZCAtLXBhcmFtIHJpc2N2LWF1dG92ZWMtcHJlZmVyZW5jZT1z Y2FsYWJsZSAtZmR1bXAtdHJlZS1vcHRpbWl6ZWQtZGV0YWlscyIgfSAqLw0K Kw0KKyNpbmNsdWRlIDxzdGRpbnQtZ2NjLmg+DQorDQordm9pZCBfX2F0dHJp YnV0ZV9fICgobm9pcGEpKQ0KK2YgKGludDhfdCAqcmVzdHJpY3QgYSwgaW50 OF90ICpyZXN0cmljdCBiLCBpbnQgbikNCit7DQorICBmb3IgKGludCBpID0g MDsgaSA8IG47ICsraSkNCisgICAgew0KKyAgICAgIGFbaSAqIDggKyAwXSA9 IGJbaSAqIDggKyAxXSArIDE7DQorICAgICAgYVtpICogOCArIDFdID0gYltp ICogOCArIDddICsgMjsNCisgICAgICBhW2kgKiA4ICsgMl0gPSBiW2kgKiA4 ICsgNF0gKyAzOw0KKyAgICAgIGFbaSAqIDggKyAzXSA9IGJbaSAqIDggKyA4 XSArIDQ7DQorICAgICAgYVtpICogOCArIDRdID0gYltpICogOCArIDFdICsg NTsNCisgICAgICBhW2kgKiA4ICsgNV0gPSBiW2kgKiA4ICsgN10gKyA2Ow0K KyAgICAgIGFbaSAqIDggKyA2XSA9IGJbaSAqIDggKyA0XSArIDc7DQorICAg ICAgYVtpICogOCArIDddID0gYltpICogOCArIDhdICsgODsNCisgICAgfQ0K K30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMg IlwuVkVDX1BFUk0iIDEgIm9wdGltaXplZCIgfSB9ICovDQpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVj L3BhcnRpYWwvc2xwLTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYXV0b3ZlYy9wYXJ0aWFsL3NscC02LmMNCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uZmI4N2NjMDBjZWENCi0t LSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYXV0b3ZlYy9wYXJ0aWFsL3NscC02LmMNCkBAIC0wLDAgKzEs MjMgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctYWRk aXRpb25hbC1vcHRpb25zICItbWFyY2g9cnYzMmdjdiAtbWFiaT1pbHAzMmQg LS1wYXJhbSByaXNjdi1hdXRvdmVjLXByZWZlcmVuY2U9c2NhbGFibGUgLWZk dW1wLXRyZWUtb3B0aW1pemVkLWRldGFpbHMiIH0gKi8NCisNCisjaW5jbHVk ZSA8c3RkaW50LWdjYy5oPg0KKw0KK3ZvaWQgX19hdHRyaWJ1dGVfXyAoKG5v aXBhKSkNCitmICh1aW50OF90ICpyZXN0cmljdCBhLCB1aW50OF90ICpyZXN0 cmljdCBiLCBpbnQgbikNCit7DQorICBmb3IgKGludCBpID0gMDsgaSA8IG47 ICsraSkNCisgICAgew0KKyAgICAgIGFbaSAqIDggKyAwXSA9IGJbaSAqIDgg KyAxXSArIDE7DQorICAgICAgYVtpICogOCArIDFdID0gYltpICogOCArIDJd ICsgMjsNCisgICAgICBhW2kgKiA4ICsgMl0gPSBiW2kgKiA4ICsgNl0gKyA4 Ow0KKyAgICAgIGFbaSAqIDggKyAzXSA9IGJbaSAqIDggKyA3XSArIDQ7DQor ICAgICAgYVtpICogOCArIDRdID0gYltpICogOCArIDNdICsgNTsNCisgICAg ICBhW2kgKiA4ICsgNV0gPSBiW2kgKiA4ICsgNF0gKyA2Ow0KKyAgICAgIGFb aSAqIDggKyA2XSA9IGJbaSAqIDggKyA1XSArIDc7DQorICAgICAgYVtpICog OCArIDddID0gYltpICogOCArIDBdICsgMzsNCisgICAgfQ0KK30NCisNCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIlwuVkVDX1BF Uk0iIDEgIm9wdGltaXplZCIgfSB9ICovDQorDQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRp YWwvc2xwLTcuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYXV0b3ZlYy9wYXJ0aWFsL3NscC03LmMNCm5ldyBmaWxlIG1vZGUgMTAw NjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uM2RkNzQ0YjU4NmUNCi0tLSAvZGV2 L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYXV0b3ZlYy9wYXJ0aWFsL3NscC03LmMNCkBAIC0wLDAgKzEsMTUgQEAN CisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctYWRkaXRpb25h bC1vcHRpb25zICItbWFyY2g9cnYzMmdjdiAtbWFiaT1pbHAzMmQgLS1wYXJh bSByaXNjdi1hdXRvdmVjLXByZWZlcmVuY2U9c2NhbGFibGUgLWZkdW1wLXRy ZWUtb3B0aW1pemVkLWRldGFpbHMiIH0gKi8NCisNCisjaW5jbHVkZSA8c3Rk aW50LWdjYy5oPg0KKw0KK3ZvaWQgX19hdHRyaWJ1dGVfXyAoKG5vaXBhKSkN CitmIChmbG9hdCAqX19yZXN0cmljdCBmLCBkb3VibGUgKl9fcmVzdHJpY3Qg ZCwgaW50IG4pDQorew0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kp DQorICAgIHsNCisgICAgICBmW2kgKiAyICsgMF0gPSAxOw0KKyAgICAgIGZb aSAqIDIgKyAxXSA9IDI7DQorICAgICAgZFtpXSA9IDM7DQorICAgIH0NCit9 DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9hdXRvdmVjL3BhcnRpYWwvc2xwX3J1bi0xLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcGFydGlhbC9zbHBf cnVuLTEuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAw MDAwLi4xNmYwNzhhMDQzMw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRpYWwv c2xwX3J1bi0xLmMNCkBAIC0wLDAgKzEsNjYgQEANCisvKiB7IGRnLWRvIHJ1 biB7IHRhcmdldCB7IHJpc2N2X3ZlY3RvciB9IH0gfSAqLw0KKy8qIHsgZGct YWRkaXRpb25hbC1vcHRpb25zICItLXBhcmFtIHJpc2N2LWF1dG92ZWMtcHJl ZmVyZW5jZT1zY2FsYWJsZSIgfSAqLw0KKw0KKyNpbmNsdWRlICJzbHAtMS5j Ig0KKw0KKyNkZWZpbmUgTElNSVQgMTI4DQordm9pZCBfX2F0dHJpYnV0ZV9f ICgob3B0aW1pemUgKDApKSkNCitmX2dvbGRlbiAoaW50OF90ICpyZXN0cmlj dCBhLCBpbnQ4X3QgKnJlc3RyaWN0IGIsIGludCBuKQ0KK3sNCisgIGZvciAo aW50IGkgPSAwOyBpIDwgbjsgKytpKQ0KKyAgICB7DQorICAgICAgYVtpICog OCArIDBdID0gYltpICogOCArIDM3XSArIDE7DQorICAgICAgYVtpICogOCAr IDFdID0gYltpICogOCArIDM3XSArIDI7DQorICAgICAgYVtpICogOCArIDJd ID0gYltpICogOCArIDM3XSArIDg7DQorICAgICAgYVtpICogOCArIDNdID0g YltpICogOCArIDM3XSArIDQ7DQorICAgICAgYVtpICogOCArIDRdID0gYltp ICogOCArIDM3XSArIDU7DQorICAgICAgYVtpICogOCArIDVdID0gYltpICog OCArIDM3XSArIDY7DQorICAgICAgYVtpICogOCArIDZdID0gYltpICogOCAr IDM3XSArIDc7DQorICAgICAgYVtpICogOCArIDddID0gYltpICogOCArIDM3 XSArIDM7DQorICAgIH0NCit9DQorDQoraW50DQorbWFpbiAodm9pZCkNCit7 DQorI2RlZmluZSBSVU4oTlVNKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIGlu dDhfdCBhXyMjTlVNW05VTSAqIDggKyA4XSA9IHswfTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgaW50OF90IGFf Z29sZGVuXyMjTlVNW05VTSAqIDggKyA4XSA9IHswfTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICBpbnQ4X3QgYl8jI05VTVtO VU0gKiA4ICsgMzddID0gezB9OyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgTlVN ICogOCArIDM3OyBpKyspICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcDQorICAgICAgaWYgKGkgJSBOVU0gPT0gMCkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisg Yl8jI05VTVtpXSA9IChpICsgTlVNKSAlIExJTUlUOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgZWxzZSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCisgYl8jI05VTVtpXSA9IChpIC0gTlVN KSAlICgtTElNSVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN CisgIGYgKGFfIyNOVU0sIGJfIyNOVU0sIE5VTSk7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgZl9n b2xkZW4gKGFfZ29sZGVuXyMjTlVNLCBiXyMjTlVNLCBOVU0pOyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBmb3IgKGludCBp ID0gMDsgaSA8IE5VTSAqIDggKyA4OyBpKyspICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgeyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KKyAgICAgIGlmIChhXyMjTlVNW2ldICE9IGFf Z29sZGVuXyMjTlVNW2ldKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQorIF9fYnVpbHRpbl9hYm9ydCAoKTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAg ICB9DQorDQorICBSVU4gKDMpOw0KKyAgUlVOICg1KTsNCisgIFJVTiAoMTUp Ow0KKyAgUlVOICgxNik7DQorICBSVU4gKDE3KTsNCisgIFJVTiAoMzEpOw0K KyAgUlVOICgzMik7DQorICBSVU4gKDMzKTsNCisgIFJVTiAoNjMpOw0KKyAg UlVOICg2NCk7DQorICBSVU4gKDY1KTsNCisgIFJVTiAoMTI3KTsNCisgIFJV TiAoMTI4KTsNCisgIFJVTiAoMTI5KTsNCisgIFJVTiAoMjM5KTsNCisgIFJV TiAoMzU5KTsNCisgIFJVTiAoNDk4KTsNCisgIFJVTiAoNzk5KTsNCisgIFJV TiAoOTc3KTsNCisgIFJVTiAoNTc4OSk7DQorICByZXR1cm4gMDsNCit9DQpk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9hdXRvdmVjL3BhcnRpYWwvc2xwX3J1bi0yLmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcGFydGlhbC9zbHBfcnVu LTIuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAw Li40MWY2ODhmNjI4Yw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRpYWwvc2xw X3J1bi0yLmMNCkBAIC0wLDAgKzEsNjcgQEANCisvKiB7IGRnLWRvIHJ1biB7 IHRhcmdldCB7IHJpc2N2X3ZlY3RvciB9IH0gfSAqLw0KKy8qIHsgZGctYWRk aXRpb25hbC1vcHRpb25zICItLXBhcmFtIHJpc2N2LWF1dG92ZWMtcHJlZmVy ZW5jZT1zY2FsYWJsZSIgfSAqLw0KKw0KKyNpbmNsdWRlICJzbHAtMi5jIg0K Kw0KKyNkZWZpbmUgTElNSVQgMzI3NjcNCisNCit2b2lkIF9fYXR0cmlidXRl X18gKChvcHRpbWl6ZSAoMCkpKQ0KK2ZfZ29sZGVuIChpbnQxNl90ICpyZXN0 cmljdCBhLCBpbnQxNl90ICpyZXN0cmljdCBiLCBpbnQgbikNCit7DQorICBm b3IgKGludCBpID0gMDsgaSA8IG47ICsraSkNCisgICAgew0KKyAgICAgIGFb aSAqIDggKyAwXSA9IGJbaSAqIDggKyAzN10gKyAxOw0KKyAgICAgIGFbaSAq IDggKyAxXSA9IGJbaSAqIDggKyAzN10gKyAyOw0KKyAgICAgIGFbaSAqIDgg KyAyXSA9IGJbaSAqIDggKyAzN10gKyA4Ow0KKyAgICAgIGFbaSAqIDggKyAz XSA9IGJbaSAqIDggKyAzN10gKyA0Ow0KKyAgICAgIGFbaSAqIDggKyA0XSA9 IGJbaSAqIDggKyAzN10gKyA1Ow0KKyAgICAgIGFbaSAqIDggKyA1XSA9IGJb aSAqIDggKyAzN10gKyA2Ow0KKyAgICAgIGFbaSAqIDggKyA2XSA9IGJbaSAq IDggKyAzN10gKyA3Ow0KKyAgICAgIGFbaSAqIDggKyA3XSA9IGJbaSAqIDgg KyAzN10gKyAzOw0KKyAgICB9DQorfQ0KKw0KK2ludA0KK21haW4gKHZvaWQp DQorew0KKyNkZWZpbmUgUlVOKE5VTSkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQor ICBpbnQxNl90IGFfIyNOVU1bTlVNICogOCArIDhdID0gezB9OyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIGludDE2 X3QgYV9nb2xkZW5fIyNOVU1bTlVNICogOCArIDhdID0gezB9OyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgaW50MTZfdCBiXyMj TlVNW05VTSAqIDggKyAzN10gPSB7MH07ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQorICBmb3IgKGludCBpID0gMDsgaSA8 IE5VTSAqIDggKyAzNzsgaSsrKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KKyAgICAgIGlmIChpICUgTlVNID09IDApICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQorIGJfIyNOVU1baV0gPSAoaSArIE5VTSkgJSBMSU1JVDsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgIGVsc2Ug ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorIGJfIyNOVU1baV0gPSAoaSAt IE5VTSkgJSAoLUxJTUlUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcDQorICBmIChhXyMjTlVNLCBiXyMjTlVNLCBOVU0pOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisg IGZfZ29sZGVuIChhX2dvbGRlbl8jI05VTSwgYl8jI05VTSwgTlVNKTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgZm9yIChp bnQgaSA9IDA7IGkgPCBOVU0gKiA4ICsgODsgaSsrKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgIHsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCisgICAgICBpZiAoYV8jI05VTVtpXSAh PSBhX2dvbGRlbl8jI05VTVtpXSkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KKyBfX2J1aWx0aW5fYWJvcnQgKCk7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN CisgICAgfQ0KKw0KKyAgUlVOICgzKTsNCisgIFJVTiAoNSk7DQorICBSVU4g KDE1KTsNCisgIFJVTiAoMTYpOw0KKyAgUlVOICgxNyk7DQorICBSVU4gKDMx KTsNCisgIFJVTiAoMzIpOw0KKyAgUlVOICgzMyk7DQorICBSVU4gKDYzKTsN CisgIFJVTiAoNjQpOw0KKyAgUlVOICg2NSk7DQorICBSVU4gKDEyNyk7DQor ICBSVU4gKDEyOCk7DQorICBSVU4gKDEyOSk7DQorICBSVU4gKDIzOSk7DQor ICBSVU4gKDM1OSk7DQorICBSVU4gKDQ5OCk7DQorICBSVU4gKDc5OSk7DQor ICBSVU4gKDk3Nyk7DQorICBSVU4gKDU3ODkpOw0KKyAgcmV0dXJuIDA7DQor fQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYXV0b3ZlYy9wYXJ0aWFsL3NscF9ydW4tMy5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRpYWwvc2xw X3J1bi0zLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAw MDAwMC4uMzA5OTZjYjJjNmUNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9wYXJ0aWFs L3NscF9ydW4tMy5jDQpAQCAtMCwwICsxLDY3IEBADQorLyogeyBkZy1kbyBy dW4geyB0YXJnZXQgeyByaXNjdl92ZWN0b3IgfSB9IH0gKi8NCisvKiB7IGRn LWFkZGl0aW9uYWwtb3B0aW9ucyAiLS1wYXJhbSByaXNjdi1hdXRvdmVjLXBy ZWZlcmVuY2U9c2NhbGFibGUiIH0gKi8NCisNCisjaW5jbHVkZSAic2xwLTMu YyINCisNCisjZGVmaW5lIExJTUlUIDEyOA0KKw0KK3ZvaWQgX19hdHRyaWJ1 dGVfXyAoKG9wdGltaXplICgwKSkpDQorZl9nb2xkZW4gKGludDhfdCAqcmVz dHJpY3QgYSwgaW50OF90ICpyZXN0cmljdCBiLCBpbnQgbikNCit7DQorICBm b3IgKGludCBpID0gMDsgaSA8IG47ICsraSkNCisgICAgew0KKyAgICAgIGFb aSAqIDhdID0gYltpICogOCArIDFdICsgMTsNCisgICAgICBhW2kgKiA4ICsg MV0gPSBiW2kgKiA4ICsgN10gKyAyOw0KKyAgICAgIGFbaSAqIDggKyAyXSA9 IGJbaSAqIDggKyAxXSArIDM7DQorICAgICAgYVtpICogOCArIDNdID0gYltp ICogOCArIDddICsgNDsNCisgICAgICBhW2kgKiA4ICsgNF0gPSBiW2kgKiA4 ICsgMV0gKyA1Ow0KKyAgICAgIGFbaSAqIDggKyA1XSA9IGJbaSAqIDggKyA3 XSArIDY7DQorICAgICAgYVtpICogOCArIDZdID0gYltpICogOCArIDFdICsg NzsNCisgICAgICBhW2kgKiA4ICsgN10gPSBiW2kgKiA4ICsgN10gKyA4Ow0K KyAgICB9DQorfQ0KKw0KK2ludA0KK21haW4gKHZvaWQpDQorew0KKyNkZWZp bmUgUlVOKE5VTSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBpbnQ4X3QgYV8j I05VTVtOVU0gKiA4ICsgOF0gPSB7MH07ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCisgIGludDhfdCBhX2dvbGRlbl8j I05VTVtOVU0gKiA4ICsgOF0gPSB7MH07ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KKyAgaW50OF90IGJfIyNOVU1bTlVNICogOCAr IDhdID0gezB9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQorICBmb3IgKGludCBpID0gMDsgaSA8IE5VTSAqIDggKyA4 OyBpKyspICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAg ICAgIGlmIChpICUgTlVNID09IDApICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorIGJfIyNOVU1b aV0gPSAoaSArIE5VTSkgJSBMSU1JVDsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KKyAgICAgIGVsc2UgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQorIGJfIyNOVU1baV0gPSAoaSAtIE5VTSkgJSAoLUxJ TUlUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K KyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBmIChh XyMjTlVNLCBiXyMjTlVNLCBOVU0pOyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIGZfZ29sZGVuIChh X2dvbGRlbl8jI05VTSwgYl8jI05VTSwgTlVNKTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KKyAgZm9yIChpbnQgaSA9IDA7IGkg PCBOVU0gKiA4ICsgODsgaSsrKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQorICAgIHsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgICAgICBpZiAoYV8jI05VTVtpXSAhPSBhX2dvbGRlbl8j I05VTVtpXSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KKyBfX2J1aWx0aW5fYWJvcnQgKCk7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgfQ0KKw0K KyAgUlVOICgzKTsNCisgIFJVTiAoNSk7DQorICBSVU4gKDE1KTsNCisgIFJV TiAoMTYpOw0KKyAgUlVOICgxNyk7DQorICBSVU4gKDMxKTsNCisgIFJVTiAo MzIpOw0KKyAgUlVOICgzMyk7DQorICBSVU4gKDYzKTsNCisgIFJVTiAoNjQp Ow0KKyAgUlVOICg2NSk7DQorICBSVU4gKDEyNyk7DQorICBSVU4gKDEyOCk7 DQorICBSVU4gKDEyOSk7DQorICBSVU4gKDIzOSk7DQorICBSVU4gKDM1OSk7 DQorICBSVU4gKDQ5OCk7DQorICBSVU4gKDc5OSk7DQorICBSVU4gKDk3Nyk7 DQorICBSVU4gKDU3ODkpOw0KKyAgcmV0dXJuIDA7DQorfQ0KZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3Zl Yy9wYXJ0aWFsL3NscF9ydW4tNC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRpYWwvc2xwX3J1bi00LmMNCm5l dyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uM2Q0M2Vm MDg5MGMNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9wYXJ0aWFsL3NscF9ydW4tNC5j DQpAQCAtMCwwICsxLDY3IEBADQorLyogeyBkZy1kbyBydW4geyB0YXJnZXQg eyByaXNjdl92ZWN0b3IgfSB9IH0gKi8NCisvKiB7IGRnLWFkZGl0aW9uYWwt b3B0aW9ucyAiLS1wYXJhbSByaXNjdi1hdXRvdmVjLXByZWZlcmVuY2U9c2Nh bGFibGUiIH0gKi8NCisNCisjaW5jbHVkZSAic2xwLTQuYyINCisNCisjZGVm aW5lIExJTUlUIDMyNzY3DQorDQordm9pZCBfX2F0dHJpYnV0ZV9fICgob3B0 aW1pemUgKDApKSkNCitmX2dvbGRlbiAoaW50MTZfdCAqcmVzdHJpY3QgYSwg aW50MTZfdCAqcmVzdHJpY3QgYiwgaW50IG4pDQorew0KKyAgZm9yIChpbnQg aSA9IDA7IGkgPCBuOyArK2kpDQorICAgIHsNCisgICAgICBhW2kgKiA4XSA9 IGJbaSAqIDggKyAxXSArIDE7DQorICAgICAgYVtpICogOCArIDFdID0gYltp ICogOCArIDddICsgMjsNCisgICAgICBhW2kgKiA4ICsgMl0gPSBiW2kgKiA4 ICsgMV0gKyAzOw0KKyAgICAgIGFbaSAqIDggKyAzXSA9IGJbaSAqIDggKyA3 XSArIDQ7DQorICAgICAgYVtpICogOCArIDRdID0gYltpICogOCArIDFdICsg NTsNCisgICAgICBhW2kgKiA4ICsgNV0gPSBiW2kgKiA4ICsgN10gKyA2Ow0K KyAgICAgIGFbaSAqIDggKyA2XSA9IGJbaSAqIDggKyAxXSArIDc7DQorICAg ICAgYVtpICogOCArIDddID0gYltpICogOCArIDddICsgODsNCisgICAgfQ0K K30NCisNCitpbnQNCittYWluICh2b2lkKQ0KK3sNCisjZGVmaW5lIFJVTihO VU0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KKyAgaW50MTZfdCBhXyMjTlVNW05V TSAqIDggKyA4XSA9IHswfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQorICBpbnQxNl90IGFfZ29sZGVuXyMjTlVNW05V TSAqIDggKyA4XSA9IHswfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgIGludDE2X3QgYl8jI05VTVtOVU0gKiA4ICsgOF0gPSB7 MH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBOVU0gKiA4ICsgODsgaSsrKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAg IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICBpZiAo aSAlIE5VTSA9PSAwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyBiXyMjTlVNW2ldID0gKGkg KyBOVU0pICUgTElNSVQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwNCisgICAgICBlbHNlICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KKyBiXyMjTlVNW2ldID0gKGkgLSBOVU0pICUgKC1MSU1JVCk7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgfSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgZiAoYV8jI05VTSwg Yl8jI05VTSwgTlVNKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQorICBmX2dvbGRlbiAoYV9nb2xkZW5f IyNOVU0sIGJfIyNOVU0sIE5VTSk7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgTlVNICog OCArIDg7IGkrKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQorICAgICAgaWYgKGFfIyNOVU1baV0gIT0gYV9nb2xkZW5fIyNOVU1baV0p ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgX19i dWlsdGluX2Fib3J0ICgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgIH0NCisNCisgIFJVTiAo Myk7DQorICBSVU4gKDUpOw0KKyAgUlVOICgxNSk7DQorICBSVU4gKDE2KTsN CisgIFJVTiAoMTcpOw0KKyAgUlVOICgzMSk7DQorICBSVU4gKDMyKTsNCisg IFJVTiAoMzMpOw0KKyAgUlVOICg2Myk7DQorICBSVU4gKDY0KTsNCisgIFJV TiAoNjUpOw0KKyAgUlVOICgxMjcpOw0KKyAgUlVOICgxMjgpOw0KKyAgUlVO ICgxMjkpOw0KKyAgUlVOICgyMzkpOw0KKyAgUlVOICgzNTkpOw0KKyAgUlVO ICg0OTgpOw0KKyAgUlVOICg3OTkpOw0KKyAgUlVOICg5NzcpOw0KKyAgUlVO ICg1Nzg5KTsNCisgIHJldHVybiAwOw0KK30NCmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcGFydGlh bC9zbHBfcnVuLTUuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYXV0b3ZlYy9wYXJ0aWFsL3NscF9ydW4tNS5jDQpuZXcgZmlsZSBt b2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjgxNDMwOGJkN2FmDQot LS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2F1dG92ZWMvcGFydGlhbC9zbHBfcnVuLTUuYw0KQEAgLTAs MCArMSw2NyBAQA0KKy8qIHsgZGctZG8gcnVuIHsgdGFyZ2V0IHsgcmlzY3Zf dmVjdG9yIH0gfSB9ICovDQorLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMg Ii0tcGFyYW0gcmlzY3YtYXV0b3ZlYy1wcmVmZXJlbmNlPXNjYWxhYmxlIiB9 ICovDQorDQorI2luY2x1ZGUgInNscC01LmMiDQorDQorI2RlZmluZSBMSU1J VCAxMjgNCisNCit2b2lkIF9fYXR0cmlidXRlX18gKChvcHRpbWl6ZSAoMCkp KQ0KK2ZfZ29sZGVuIChpbnQ4X3QgKnJlc3RyaWN0IGEsIGludDhfdCAqcmVz dHJpY3QgYiwgaW50IG4pDQorew0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBu OyArK2kpDQorICAgIHsNCisgICAgICBhW2kgKiA4ICsgMF0gPSBiW2kgKiA4 ICsgMV0gKyAxOw0KKyAgICAgIGFbaSAqIDggKyAxXSA9IGJbaSAqIDggKyA3 XSArIDI7DQorICAgICAgYVtpICogOCArIDJdID0gYltpICogOCArIDRdICsg MzsNCisgICAgICBhW2kgKiA4ICsgM10gPSBiW2kgKiA4ICsgOF0gKyA0Ow0K KyAgICAgIGFbaSAqIDggKyA0XSA9IGJbaSAqIDggKyAxXSArIDU7DQorICAg ICAgYVtpICogOCArIDVdID0gYltpICogOCArIDddICsgNjsNCisgICAgICBh W2kgKiA4ICsgNl0gPSBiW2kgKiA4ICsgNF0gKyA3Ow0KKyAgICAgIGFbaSAq IDggKyA3XSA9IGJbaSAqIDggKyA4XSArIDg7DQorICAgIH0NCit9DQorDQor aW50DQorbWFpbiAodm9pZCkNCit7DQorI2RlZmluZSBSVU4oTlVNKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCisgIGludDhfdCBhXyMjTlVNW05VTSAqIDggKyA4 XSA9IHswfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KKyAgaW50OF90IGFfZ29sZGVuXyMjTlVNW05VTSAqIDggKyA4 XSA9IHswfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQorICBpbnQ4X3QgYl8jI05VTVtOVU0gKiA4ICsgOV0gPSB7MH07ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIGZv ciAoaW50IGkgPSAwOyBpIDwgTlVNICogOCArIDk7IGkrKykgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICB7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgaWYgKGkgJSBOVU0g PT0gMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwNCisgYl8jI05VTVtpXSA9IChpICsgTlVNKSAl IExJTUlUOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcDQorICAgICAgZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisg Yl8jI05VTVtpXSA9IChpIC0gTlVNKSAlICgtTElNSVQpOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgIH0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCisgIGYgKGFfIyNOVU0sIGJfIyNOVU0s IE5VTSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KKyAgZl9nb2xkZW4gKGFfZ29sZGVuXyMjTlVNLCBi XyMjTlVNLCBOVU0pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQorICBmb3IgKGludCBpID0gMDsgaSA8IE5VTSAqIDggKyA4OyBp KyspICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN CisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAg IGlmIChhXyMjTlVNW2ldICE9IGFfZ29sZGVuXyMjTlVNW2ldKSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorIF9fYnVpbHRpbl9h Ym9ydCAoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KKyAgICB9DQorDQorICBSVU4gKDMpOw0KKyAg UlVOICg1KTsNCisgIFJVTiAoMTUpOw0KKyAgUlVOICgxNik7DQorICBSVU4g KDE3KTsNCisgIFJVTiAoMzEpOw0KKyAgUlVOICgzMik7DQorICBSVU4gKDMz KTsNCisgIFJVTiAoNjMpOw0KKyAgUlVOICg2NCk7DQorICBSVU4gKDY1KTsN CisgIFJVTiAoMTI3KTsNCisgIFJVTiAoMTI4KTsNCisgIFJVTiAoMTI5KTsN CisgIFJVTiAoMjM5KTsNCisgIFJVTiAoMzU5KTsNCisgIFJVTiAoNDk4KTsN CisgIFJVTiAoNzk5KTsNCisgIFJVTiAoOTc3KTsNCisgIFJVTiAoNTc4OSk7 DQorICByZXR1cm4gMDsNCit9DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3BhcnRpYWwvc2xwX3J1 bi02LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1 dG92ZWMvcGFydGlhbC9zbHBfcnVuLTYuYw0KbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5lMzE3ZWVhYzJmMg0KLS0tIC9kZXYv bnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9hdXRvdmVjL3BhcnRpYWwvc2xwX3J1bi02LmMNCkBAIC0wLDAgKzEsNjcg QEANCisvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCB7IHJpc2N2X3ZlY3RvciB9 IH0gfSAqLw0KKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItLXBhcmFt IHJpc2N2LWF1dG92ZWMtcHJlZmVyZW5jZT1zY2FsYWJsZSIgfSAqLw0KKw0K KyNpbmNsdWRlICJzbHAtNi5jIg0KKw0KKyNkZWZpbmUgTElNSVQgMTI4DQor DQordm9pZCBfX2F0dHJpYnV0ZV9fICgob3B0aW1pemUgKDApKSkNCitmX2dv bGRlbiAoaW50OF90ICpyZXN0cmljdCBhLCBpbnQ4X3QgKnJlc3RyaWN0IGIs IGludCBuKQ0KK3sNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKQ0K KyAgICB7DQorICAgICAgYVtpICogOCArIDBdID0gYltpICogOCArIDFdICsg MTsNCisgICAgICBhW2kgKiA4ICsgMV0gPSBiW2kgKiA4ICsgMl0gKyAyOw0K KyAgICAgIGFbaSAqIDggKyAyXSA9IGJbaSAqIDggKyA2XSArIDg7DQorICAg ICAgYVtpICogOCArIDNdID0gYltpICogOCArIDddICsgNDsNCisgICAgICBh W2kgKiA4ICsgNF0gPSBiW2kgKiA4ICsgM10gKyA1Ow0KKyAgICAgIGFbaSAq IDggKyA1XSA9IGJbaSAqIDggKyA0XSArIDY7DQorICAgICAgYVtpICogOCAr IDZdID0gYltpICogOCArIDVdICsgNzsNCisgICAgICBhW2kgKiA4ICsgN10g PSBiW2kgKiA4ICsgMF0gKyAzOw0KKyAgICB9DQorfQ0KKw0KK2ludA0KK21h aW4gKHZvaWQpDQorew0KKyNkZWZpbmUgUlVOKE5VTSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQorICBpbnQ4X3QgYV8jI05VTVtOVU0gKiA4ICsgOF0gPSB7MH07 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN CisgIGludDhfdCBhX2dvbGRlbl8jI05VTVtOVU0gKiA4ICsgOF0gPSB7MH07 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgaW50 OF90IGJfIyNOVU1bTlVNICogOCArIDldID0gezB9OyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBmb3IgKGludCBp ID0gMDsgaSA8IE5VTSAqIDggKyA5OyBpKyspICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgeyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KKyAgICAgIGlmIChpICUgTlVNID09IDApICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQorIGJfIyNOVU1baV0gPSAoaSArIE5VTSkgJSBMSU1JVDsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAg ICAgIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorIGJfIyNOVU1b aV0gPSAoaSAtIE5VTSkgJSAoLUxJTUlUKTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KKyAgICB9ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQorICBmIChhXyMjTlVNLCBiXyMjTlVNLCBOVU0pOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCisgIGZfZ29sZGVuIChhX2dvbGRlbl8jI05VTSwgYl8jI05VTSwg TlVNKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K KyAgZm9yIChpbnQgaSA9IDA7IGkgPCBOVU0gKiA4ICsgODsgaSsrKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgIHsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICBpZiAoYV8j I05VTVtpXSAhPSBhX2dvbGRlbl8jI05VTVtpXSkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KKyBfX2J1aWx0aW5fYWJvcnQgKCk7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgICAgfQ0KKw0KKyAgUlVOICgzKTsNCisgIFJVTiAoNSk7 DQorICBSVU4gKDE1KTsNCisgIFJVTiAoMTYpOw0KKyAgUlVOICgxNyk7DQor ICBSVU4gKDMxKTsNCisgIFJVTiAoMzIpOw0KKyAgUlVOICgzMyk7DQorICBS VU4gKDYzKTsNCisgIFJVTiAoNjQpOw0KKyAgUlVOICg2NSk7DQorICBSVU4g KDEyNyk7DQorICBSVU4gKDEyOCk7DQorICBSVU4gKDEyOSk7DQorICBSVU4g KDIzOSk7DQorICBSVU4gKDM1OSk7DQorICBSVU4gKDQ5OCk7DQorICBSVU4g KDc5OSk7DQorICBSVU4gKDk3Nyk7DQorICBSVU4gKDU3ODkpOw0KKyAgcmV0 dXJuIDA7DQorfQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9wYXJ0aWFsL3NscF9ydW4tNy5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Bh cnRpYWwvc2xwX3J1bi03LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl eCAwMDAwMDAwMDAwMC4uYThlNDc4MTk4OGUNCi0tLSAvZGV2L251bGwNCisr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3Zl Yy9wYXJ0aWFsL3NscF9ydW4tNy5jDQpAQCAtMCwwICsxLDU4IEBADQorLyog eyBkZy1kbyBydW4geyB0YXJnZXQgeyByaXNjdl92ZWN0b3IgfSB9IH0gKi8N CisvKiB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLS1wYXJhbSByaXNjdi1h dXRvdmVjLXByZWZlcmVuY2U9c2NhbGFibGUiIH0gKi8NCisNCisjaW5jbHVk ZSAic2xwLTcuYyINCisNCit2b2lkDQorZl9nb2xkZW4gKGZsb2F0ICpfX3Jl c3RyaWN0IGYsIGRvdWJsZSAqX19yZXN0cmljdCBkLCBpbnQgbikNCit7DQor ICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkNCisgICAgew0KKyAgICAg IGZbaSAqIDIgKyAwXSA9IDE7DQorICAgICAgZltpICogMiArIDFdID0gMjsN CisgICAgICBkW2ldID0gMzsNCisgICAgfQ0KK30NCisNCitpbnQNCittYWlu ICh2b2lkKQ0KK3sNCisjZGVmaW5lIFJVTihOVU0pICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KKyAgZmxvYXQgYV8jI05VTVtOVU0gKiAyICsgMl0gPSB7MH07ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQor ICBmbG9hdCBhX2dvbGRlbl8jI05VTVtOVU0gKiAyICsgMl0gPSB7MH07ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIGRvdWJs ZSBiXyMjTlVNW05VTV0gPSB7MH07ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgZG91YmxlIGJfZ29s ZGVuXyMjTlVNW05VTV0gPSB7MH07ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQorICBmIChhXyMjTlVNLCBiXyMjTlVN LCBOVU0pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCisgIGZfZ29sZGVuIChhX2dvbGRlbl8jI05VTSwg Yl9nb2xkZW5fIyNOVU0sIE5VTSk7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBOVU07IGkrKykgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAg ICBpZiAoYV8jI05VTVtpICogMiArIDBdICE9IGFfZ29sZGVuXyMjTlVNW2kg KiAyICsgMF0pICAgICAgICAgICAgICAgICAgICAgXA0KKyBfX2J1aWx0aW5f YWJvcnQgKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwNCisgICAgICBpZiAoYV8jI05VTVtpICogMiAr IDFdICE9IGFfZ29sZGVuXyMjTlVNW2kgKiAyICsgMV0pICAgICAgICAgICAg ICAgICAgICAgXA0KKyBfX2J1aWx0aW5fYWJvcnQgKCk7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisg ICAgICBpZiAoYl8jI05VTVtpXSAhPSBiX2dvbGRlbl8jI05VTVtpXSkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyBfX2J1aWx0 aW5fYWJvcnQgKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCisgICAgfQ0KKw0KKyAgUlVOICgzKTsN CisgIFJVTiAoNSk7DQorICBSVU4gKDE1KTsNCisgIFJVTiAoMTYpOw0KKyAg UlVOICgxNyk7DQorICBSVU4gKDMxKTsNCisgIFJVTiAoMzIpOw0KKyAgUlVO ICgzMyk7DQorICBSVU4gKDYzKTsNCisgIFJVTiAoNjQpOw0KKyAgUlVOICg2 NSk7DQorICBSVU4gKDEyNyk7DQorICBSVU4gKDEyOCk7DQorICBSVU4gKDEy OSk7DQorICBSVU4gKDIzOSk7DQorICBSVU4gKDM1OSk7DQorICBSVU4gKDQ5 OCk7DQorICBSVU4gKDc5OSk7DQorICBSVU4gKDk3Nyk7DQorICBSVU4gKDU3 ODkpOw0KKyAgcmV0dXJuIDA7DQorfQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9zY2FsYWJsZS0x LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92 ZWMvc2NhbGFibGUtMS5jDQppbmRleCA1MDBiMGFkY2U2Ni4uM2MwM2E4NzM3 N2QgMTAwNjQ0DQotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2F1dG92ZWMvc2NhbGFibGUtMS5jDQorKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvc2NhbGFibGUtMS5j DQpAQCAtMTQsNCArMTQsNCBAQCBmIChpbnQzMl90ICpfX3Jlc3RyaWN0IGYs IGludDMyX3QgKl9fcmVzdHJpY3QgZCwgaW50IG4pDQogICAgIH0NCn0NCi0v KiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgInZlY3Rvcml6 ZWQgMSBsb29wcyBpbiBmdW5jdGlvbiIgMCAidmVjdCIgfSB9ICovDQorLyog eyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJ2ZWN0b3JpemVk IDEgbG9vcHMgaW4gZnVuY3Rpb24iIDEgInZlY3QiIH0gfSAqLw0KZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0 b3ZlYy92LTEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYXV0b3ZlYy92LTEuYw0KaW5kZXggMzgzYzgyYTNiN2MuLmU2OGQwNWY1 ZjQ4IDEwMDY0NA0KLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9hdXRvdmVjL3YtMS5jDQorKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdi0xLmMNCkBAIC0zLDkgKzMs NCBAQA0KI2luY2x1ZGUgInRlbXBsYXRlLTEuaCINCi0vKiBDdXJyZW50bHks IHdlIGRvbid0IHN1cHBvcnQgU0xQIGF1dG8tdmVjdG9yaXphdGlvbiBmb3Ig VkxBLiBCdXQgaXQncw0KLSAgIG5lY2Vzc2FyeSB0aGF0IHdlIGFkZCB0aGlz IHRlc3RjYXNlIGhlcmUgdG8gbWFrZSBzdXJlIHN1Y2ggdW5zdXBwb3J0ZWQg U0xQDQotICAgYXV0by12ZWN0b3JpemF0aW9uIHdpbGwgbm90IGNhdXNlIGFu IElDRS4gV2Ugd2lsbCBlbmFibGUgInZlY3QiIGNoZWNraW5nIHdoZW4NCi0g ICB3ZSBzdXBwb3J0IFNMUCBhdXRvLXZlY3Rvcml6YXRpb24gZm9yIFZMQSBp biB0aGUgZnV0dXJlLiAgKi8NCi0NCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi10 cmVlLWR1bXAtdGltZXMgInZlY3Rvcml6ZWQgMSBsb29wcyBpbiBmdW5jdGlv biIgMCAidmVjdCIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tdHJl ZS1kdW1wLXRpbWVzICJ2ZWN0b3JpemVkIDEgbG9vcHMgaW4gZnVuY3Rpb24i IDUgInZlY3QiIH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy96dmUzMmZfenZsMTI4Yi0x LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92 ZWMvenZlMzJmX3p2bDEyOGItMS5jDQppbmRleCAyM2NjMWM4NjUxZi4uZWNm ZGE3OWUxOWEgMTAwNjQ0DQotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2F1dG92ZWMvenZlMzJmX3p2bDEyOGItMS5jDQorKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMv enZlMzJmX3p2bDEyOGItMS5jDQpAQCAtMyw0ICszLDQgQEANCiNpbmNsdWRl ICJ0ZW1wbGF0ZS0xLmgiDQotLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1k dW1wLXRpbWVzICJ2ZWN0b3JpemVkIDEgbG9vcHMgaW4gZnVuY3Rpb24iIDAg InZlY3QiIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVt cC10aW1lcyAidmVjdG9yaXplZCAxIGxvb3BzIGluIGZ1bmN0aW9uIiAzICJ2 ZWN0IiB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvenZlMzJ4X3p2bDEyOGItMS5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3p2 ZTMyeF96dmwxMjhiLTEuYw0KaW5kZXggNGYxMzBmMDJmNjcuLjEzOTRmMDhm MmI5IDEwMDY0NA0KLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9hdXRvdmVjL3p2ZTMyeF96dmwxMjhiLTEuYw0KKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3p2ZTMy eF96dmwxMjhiLTEuYw0KQEAgLTMsNCArMyw0IEBADQojaW5jbHVkZSAidGVt cGxhdGUtMS5oIg0KLS8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10 aW1lcyAidmVjdG9yaXplZCAxIGxvb3BzIGluIGZ1bmN0aW9uIiAwICJ2ZWN0 IiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGlt ZXMgInZlY3Rvcml6ZWQgMSBsb29wcyBpbiBmdW5jdGlvbiIgMiAidmVjdCIg fSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9hdXRvdmVjL3p2ZTY0ZC0xLmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvenZlNjRkLTEuYw0KaW5k ZXggODIzZDUxYTAzY2IuLmM1ZTg5OTk2ZmE0IDEwMDY0NA0KLS0tIGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3p2ZTY0 ZC0xLmMNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYXV0b3ZlYy96dmU2NGQtMS5jDQpAQCAtMyw0ICszLDQgQEANCiNpbmNs dWRlICJ0ZW1wbGF0ZS0xLmgiDQotLyogeyBkZy1maW5hbCB7IHNjYW4tdHJl ZS1kdW1wLXRpbWVzICJ2ZWN0b3JpemVkIDEgbG9vcHMgaW4gZnVuY3Rpb24i IDIgInZlY3QiIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcC10aW1lcyAidmVjdG9yaXplZCAxIGxvb3BzIGluIGZ1bmN0aW9uIiAz ICJ2ZWN0IiB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvenZlNjRkX3p2bDEyOGItMS5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVj L3p2ZTY0ZF96dmwxMjhiLTEuYw0KaW5kZXggNWVhZDIyNzQ2ZDMuLjZiMzIw Y2E2ZjM4IDEwMDY0NA0KLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9hdXRvdmVjL3p2ZTY0ZF96dmwxMjhiLTEuYw0KKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3p2 ZTY0ZF96dmwxMjhiLTEuYw0KQEAgLTMsNCArMyw0IEBADQojaW5jbHVkZSAi dGVtcGxhdGUtMS5oIg0KLS8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVt cC10aW1lcyAidmVjdG9yaXplZCAxIGxvb3BzIGluIGZ1bmN0aW9uIiAwICJ2 ZWN0IiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAt dGltZXMgInZlY3Rvcml6ZWQgMSBsb29wcyBpbiBmdW5jdGlvbiIgNSAidmVj dCIgfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9hdXRvdmVjL3p2ZTY0Zi0xLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvenZlNjRmLTEuYw0K aW5kZXggZTAzZDFiNDRjYTYuLjZjMmEwMDJkZTljIDEwMDY0NA0KLS0tIGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3p2 ZTY0Zi0xLmMNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYXV0b3ZlYy96dmU2NGYtMS5jDQpAQCAtMyw0ICszLDQgQEANCiNp bmNsdWRlICJ0ZW1wbGF0ZS0xLmgiDQotLyogeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wLXRpbWVzICJ2ZWN0b3JpemVkIDEgbG9vcHMgaW4gZnVuY3Rp b24iIDIgInZlY3QiIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRy ZWUtZHVtcC10aW1lcyAidmVjdG9yaXplZCAxIGxvb3BzIGluIGZ1bmN0aW9u IiAzICJ2ZWN0IiB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvenZlNjRmX3p2bDEyOGIt MS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRv dmVjL3p2ZTY0Zl96dmwxMjhiLTEuYw0KaW5kZXggNWJiMmQ5ZDk2ZmEuLmFl M2YwNjY0NzdjIDEwMDY0NA0KLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9hdXRvdmVjL3p2ZTY0Zl96dmwxMjhiLTEuYw0KKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVj L3p2ZTY0Zl96dmwxMjhiLTEuYw0KQEAgLTMsNCArMyw0IEBADQojaW5jbHVk ZSAidGVtcGxhdGUtMS5oIg0KLS8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcC10aW1lcyAidmVjdG9yaXplZCAxIGxvb3BzIGluIGZ1bmN0aW9uIiAw ICJ2ZWN0IiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1 bXAtdGltZXMgInZlY3Rvcml6ZWQgMSBsb29wcyBpbiBmdW5jdGlvbiIgNCAi dmVjdCIgfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3p2ZTY0eF96dmwxMjhiLTEuYyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy96 dmU2NHhfenZsMTI4Yi0xLmMNCmluZGV4IDcxODIwZWNlNGIyLi5mYzY3NmEz ODY1ZSAxMDA2NDQNCi0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYXV0b3ZlYy96dmU2NHhfenZsMTI4Yi0xLmMNCisrKyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy96dmU2 NHhfenZsMTI4Yi0xLmMNCkBAIC0zLDQgKzMsNCBAQA0KI2luY2x1ZGUgInRl bXBsYXRlLTEuaCINCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAt dGltZXMgInZlY3Rvcml6ZWQgMSBsb29wcyBpbiBmdW5jdGlvbiIgMCAidmVj dCIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRp bWVzICJ2ZWN0b3JpemVkIDEgbG9vcHMgaW4gZnVuY3Rpb24iIDMgInZlY3Qi IH0gfSAqLw0KLS0gDQoyLjM2LjENCiANCg== ------=_001_NextPart158623805216_=------