From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgbr2.qq.com (smtpbgbr2.qq.com [54.207.22.56]) by sourceware.org (Postfix) with ESMTPS id 78E213858CD1 for ; Fri, 14 Jul 2023 12:47:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 78E213858CD1 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: bizesmtp72t1689338823tkmjr2ju Received: from TABLET-POE6JQHH ( [115.44.118.116]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 14 Jul 2023 20:47:02 +0800 (CST) X-QQ-SSF: 01400000000000G0T000000A0000000 X-QQ-FEAT: UJd4nZbM1CdASyDFgTGhc47VXW6bmLHMFBl86Hyqhuzvz3fwEFXzfMzIUN5Y3 m/TAi6QhFDnnLwBldvaUHDi25jHlHu/BE0PwqKYyjumuSD7rpcs3P/D0L+IYp7kggFl8JgG CgZOmGZLGPEmD9VuRK2ilTcqHct3MuUfRz+hrTzP0rq/aLadugfyiAqtIpYdTLEFHQweyFz 5Y5vEIfSn/H+6TPwTRYBBssBAe2/IaiGVYzYXaHGTCOPwkBKgzkCdHfXJk+Tq+8SOz7qqA0 TypwzTcolcfEB/+5RzEme/TuxMGgP0HhiQ+tJlIbP0gRvaoGPzpcyJ6GJ+B0E3RSyEGyki9 3nbU3b6bMKqXFEpDD3yOViSihRKFAkHzGy4x9AHRO9kfncGsJ2VgTfsEKFPTLAZwFvfiEw8 1/FNN4ddlX6j5mwDC2M/EQSDrbUizMDB X-QQ-GoodBg: 2 X-BIZMAIL-ID: 3104693448464342302 Date: Fri, 14 Jul 2023 20:47:02 +0800 From: =?UTF-8?B?6ZKf5bGF5ZOy?= To: kito.cheng Cc: gcc-patches , kito.cheng , palmer , rdapp.gcc , "Jeff Law" Subject: Re: Re: [PATCH] RISC-V: Support non-SLP unordered reduction References: <20230714123038.1017670-1-juzhe.zhong@rivai.ai>, X-Priority: 3 X-GUID: 8F569863-97C7-4839-A0FC-33D09EE17FB3 X-Has-Attach: no X-Mailer: Foxmail 7.2.23.121[cn] Mime-Version: 1.0 Message-ID: <4B1DC39CB0F27358+202307142047023326587@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart713613727838_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-9.9 required=5.0 tests=BAYES_00,BODY_8BITS,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,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_NextPart713613727838_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Pj4gSXQncyBwZXJmb3JtYW5jZSBidWcgb3IgY29ycmVjdG5lc3MgYnVnPyBE b2VzIGl0J3MgYWxzbyBhcHBlYXJlZCBpbiBnY2MgMTMgaWYgaXQncyBhIGNv cnJlY3RuZXNzIGJ1Zz8NCg0KSXQncyBjb3JyZWN0bmVzcyBidWcuIA0KDQpU aGUgYnVnIGFzIGJlbG93Og0KDQp2c2V0dmxpIHplcm8sIDEsIGUxNiwgbTEs IHRhLCBtYSAgLS0tLT4gVlNFVFZMIHBhc3MgZGV0ZWN0IGl0IGNhbiBiZSAg ZnVzZWQgYXMgInQxLHplcm8sZTE2LG0yLHRhLG1hIiBidXQgZmFpbGVkIGlu IGNoYW5nZV9pbnNuDQp2bXYucy54IHYxLGE1DQouLi4NCnZzZXR2bGkgdDEs emVybyxlMTYsbTIsdGEsbWEgIC0tLS0tPiBlbGlkZWQgDQp2bHNlMTYudiB2 Mi4uLg0KDQpTbyBmaW5hbGx5LCB3ZSBlbmQgdXAgd2l0aDoNCg0KdnNldHZs aSB6ZXJvLCAxLCBlMTYsIG0xLCB0YSwgbWEgDQp2bXYucy54IHYxLGE1DQou Li4NCnZsc2UxNi52IHYyLi4uDQoNCndoaWNoIGlzIGluY29ycmVjdC4NCkkg dHJpZWQgdG8gcmVwcm9kdWNlIHRoaXMgc2l0dWF0aW9uIGJ5IGludHJpbnNp YyBidXQgZmFpbGVkLg0KSXQgc2VlbXMgdGhhdCBpdCBjYW4gb25seSBiZSBy ZXByb2R1Y2VkIGJ5IHJlZHVjdGlvbiBhdXRvLXZlY3Rvcml6YXRpb24uDQoN Cg0KDQpqdXpoZS56aG9uZ0ByaXZhaS5haQ0KIA0KRnJvbTogS2l0byBDaGVu Zw0KRGF0ZTogMjAyMy0wNy0xNCAyMDozOA0KVG86IOmSn+WxheWTsg0KQ0M6 IEdDQyBQYXRjaGVzOyBLaXRvIENoZW5nOyBQYWxtZXIgRGFiYmVsdDsgUm9i aW4gRGFwcDsgSmVmZiBMYXcNClN1YmplY3Q6IFJlOiBbUEFUQ0hdIFJJU0Mt VjogU3VwcG9ydCBub24tU0xQIHVub3JkZXJlZCByZWR1Y3Rpb24NCg0KDQo8 anV6aGUuemhvbmdAcml2YWkuYWk+IOaWvCAyMDIz5bm0N+aciDE05pelIOmA seS6lCAyMDozMSDlr6vpgZPvvJoNCkZyb206IEp1LVpoZSBaaG9uZyA8anV6 aGUuemhvbmdAcml2YWkuYWk+DQoNClRoaXMgcGF0Y2ggYWRkIHJlZHVjXypf c2NhbCB0byBzdXBwb3J0IHJlZHVjdGlvbiBhdXRvLXZlY3Rvcml6YXRpb24u DQoNClVzZSBDT05EX0xFTl8qICsgcmVkdWNfKl9zY2FsIHRvIHN1cHBvcnQg dW5vcmRlcmVkIG5vbi1TTFAgYXV0by12ZWN0b3JpemF0aW9uLg0KDQpDb25z aWRlciB0aGlzIGZvbGxvd2luZyBjYXNlOg0KaW50IF9fYXR0cmlidXRlX18o KG5vaXBhKSkNCmFuZF9sb29wIChpbnQzMl90ICogX19yZXN0cmljdCB4LCAN CmludDMyX3QgbiwgaW50IHJlcykNCnsNCiAgZm9yIChpbnQgaSA9IDA7IGkg PCBuOyArK2kpDQogICAgcmVzICY9IHhbaV07DQogIHJldHVybiByZXM7DQp9 DQoNCkFTTToNCmFuZF9sb29wOg0KICAgICAgICBibGUgICAgIGExLHplcm8s Lkw0DQogICAgICAgIHZzZXR2bGkgYTMsemVybyxlMzIsbTEsdGEsbWENCiAg ICAgICAgdm12LnYuaSB2MSwtMQ0KLkwzOg0KICAgICAgICB2c2V0dmxpIGE1 LGExLGUzMixtMSx0dSxtYSAgICAgICAtLS0tLS0tLS0tLS0+IE1VU1QgQkUg IlRVIi4NCiAgICAgICAgc2xsaSAgICBhNCxhNSwyDQogICAgICAgIHN1YiAg ICAgYTEsYTEsYTUNCiAgICAgICAgdmxlMzIudiB2MiwwKGEwKQ0KICAgICAg ICBhZGQgICAgIGEwLGEwLGE0DQogICAgICAgIHZhbmQudnYgdjEsdjIsdjEN CiAgICAgICAgYm5lICAgICBhMSx6ZXJvLC5MMw0KICAgICAgICB2c2V0aXZs aSAgICAgICAgemVybywxLGUzMixtMSx0YSxtYQ0KICAgICAgICB2bXYudi5p IHYyLC0xDQogICAgICAgIHZzZXR2bGkgYTMsemVybyxlMzIsbTEsdGEsbWEN CiAgICAgICAgdnJlZGFuZC52cyAgICAgIHYxLHYxLHYyDQogICAgICAgIHZt di54LnMgYTUsdjENCiAgICAgICAgYW5kICAgICBhMCxhMixhNQ0KICAgICAg ICByZXQNCi5MNDoNCiAgICAgICAgbXYgICAgICBhMCxhMg0KICAgICAgICBy ZXQNCg0KRml4IGJ1ZyBvZiBWU0VUVkwgUEFTUyB3aGljaCBpcyBjYXVzZWQg YnkgcmVkdWN0aW9uIHRlc3RjYXNlLg0KDQoNCkl0J3MgcGVyZm9ybWFuY2Ug YnVnIG9yIGNvcnJlY3RuZXNzIGJ1Zz8gRG9lcyBpdCdzIGFsc28gYXBwZWFy ZWQgaW4gZ2NjIDEzIGlmIGl0J3MgYSBjb3JyZWN0bmVzcyBidWc/DQoNCg0K U0xQIHJlZHVjdGlvbiBhbmQgZmxvYXRpbmctcG9pbnQgaW4tb3JkZXIgcmVk dWN0aW9uIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4NCg0KZ2NjL0NoYW5nZUxv ZzoNCg0KICAgICAgICAqIGNvbmZpZy9yaXNjdi9hdXRvdmVjLm1kIChyZWR1 Y19wbHVzX3NjYWxfPG1vZGU+KTogTmV3IHBhdHRlcm4uDQogICAgICAgIChy ZWR1Y19zbWF4X3NjYWxfPG1vZGU+KTogRGl0dG8uDQogICAgICAgIChyZWR1 Y191bWF4X3NjYWxfPG1vZGU+KTogRGl0dG8uDQogICAgICAgIChyZWR1Y19z bWluX3NjYWxfPG1vZGU+KTogRGl0dG8uDQogICAgICAgIChyZWR1Y191bWlu X3NjYWxfPG1vZGU+KTogRGl0dG8uDQogICAgICAgIChyZWR1Y19hbmRfc2Nh bF88bW9kZT4pOiBEaXR0by4NCiAgICAgICAgKHJlZHVjX2lvcl9zY2FsXzxt b2RlPik6IERpdHRvLg0KICAgICAgICAocmVkdWNfeG9yX3NjYWxfPG1vZGU+ KTogRGl0dG8uDQogICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rv cy5oIChlbnVtIGluc25fdHlwZSk6IE5ldyBlbnVtLg0KICAgICAgICAoZW1p dF9ub252bG1heF9pbnRlZ2VyX21vdmVfaW5zbik6IEFkZCByZWR1Y3Rpb24u DQogICAgICAgIChleHBhbmRfcmVkdWN0aW9uKTogTmV3IGZ1bmN0aW9uLg0K ICAgICAgICAqIGNvbmZpZy9yaXNjdi9yaXNjdi12LmNjIChlbWl0X3ZsbWF4 X3JlZHVjdGlvbl9pbnNuKTogRGl0dG8uDQogICAgICAgIChlbWl0X3ZsbWF4 X2ZwX3JlZHVjdGlvbl9pbnNuKTogRGl0dG8uDQogICAgICAgIChnZXRfbTFf bW9kZSk6IERpdHRvLg0KICAgICAgICAoZXhwYW5kX2NvbmRfbGVuX2Jpbm9w KTogRml4IG5hbWUuDQogICAgICAgIChleHBhbmRfcmVkdWN0aW9uKTogTmV3 IGZ1bmN0aW9uLg0KICAgICAgICAqIGNvbmZpZy9yaXNjdi9yaXNjdi12c2V0 dmwuY2MgKGdlbl92c2V0dmxfcGF0KTogRml4IGJ1Zy4NCiAgICAgICAgKGNo YW5nZV9pbnNuKTogRGl0dG8uDQogICAgICAgIChjaGFuZ2VfdnNldHZsX2lu c24pOiBEaXR0by4NCiAgICAgICAgKHBhc3NfdnNldHZsOjpiYWNrd2FyZF9k ZW1hbmRfZnVzaW9uKTogRGl0dG8uDQoNCmdjYy90ZXN0c3VpdGUvQ2hhbmdl TG9nOg0KDQogICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvcnZ2LmV4 cDogQWRkIHJlZHVjdGlvbiB0ZXN0cy4NCiAgICAgICAgKiBnY2MudGFyZ2V0 L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjLTEuYzogTmV3IHRlc3Qu DQogICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1 Yy9yZWR1Yy0yLmM6IE5ldyB0ZXN0Lg0KICAgICAgICAqIGdjYy50YXJnZXQv cmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWMtMy5jOiBOZXcgdGVzdC4N CiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVj L3JlZHVjLTQuYzogTmV3IHRlc3QuDQogICAgICAgICogZ2NjLnRhcmdldC9y aXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Y19ydW4tMS5jOiBOZXcgdGVz dC4NCiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Jl ZHVjL3JlZHVjX3J1bi0yLmM6IE5ldyB0ZXN0Lg0KICAgICAgICAqIGdjYy50 YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWNfcnVuLTMuYzog TmV3IHRlc3QuDQogICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0 b3ZlYy9yZWR1Yy9yZWR1Y19ydW4tNC5jOiBOZXcgdGVzdC4NCg0KLS0tDQog Z2NjL2NvbmZpZy9yaXNjdi9hdXRvdmVjLm1kICAgICAgICAgICAgICAgICAg IHwgMTM4ICsrKysrKysrKysrKysrKysrKw0KIGdjYy9jb25maWcvcmlzY3Yv cmlzY3YtcHJvdG9zLmggICAgICAgICAgICAgICB8ICAgMyArDQogZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12LmNjICAgICAgICAgICAgICAgICAgIHwgIDg0 ICsrKysrKysrKystDQogZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12c2V0dmwu Y2MgICAgICAgICAgICAgIHwgIDI4ICsrKy0NCiAuLi4vcmlzY3YvcnZ2L2F1 dG92ZWMvcmVkdWMvcmVkdWMtMS5jICAgICAgICAgfCAxMTggKysrKysrKysr KysrKysrDQogLi4uL3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjLTIu YyAgICAgICAgIHwgMTI5ICsrKysrKysrKysrKysrKysNCiAuLi4vcmlzY3Yv cnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWMtMy5jICAgICAgICAgfCAgNjUgKysr KysrKysrDQogLi4uL3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjLTQu YyAgICAgICAgIHwgIDU5ICsrKysrKysrDQogLi4uL3Jpc2N2L3J2di9hdXRv dmVjL3JlZHVjL3JlZHVjX3J1bi0xLmMgICAgIHwgIDU2ICsrKysrKysNCiAu Li4vcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWNfcnVuLTIuYyAgICAg fCAgNzkgKysrKysrKysrKw0KIC4uLi9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1 Yy9yZWR1Y19ydW4tMy5jICAgICB8ICA0OSArKysrKysrDQogLi4uL3Jpc2N2 L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjX3J1bi00LmMgICAgIHwgIDY2ICsr KysrKysrKw0KIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv cnZ2LmV4cCAgICB8ICAgMiArDQogMTMgZmlsZXMgY2hhbmdlZCwgODY4IGlu c2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pDQogY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3Zl Yy9yZWR1Yy9yZWR1Yy0xLmMNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3Jl ZHVjLTIuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWMtMy5jDQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Yy00LmMNCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9h dXRvdmVjL3JlZHVjL3JlZHVjX3J1bi0xLmMNCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVj L3JlZHVjL3JlZHVjX3J1bi0yLmMNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVj L3JlZHVjX3J1bi0zLmMNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVj X3J1bi00LmMNCg0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvYXV0 b3ZlYy5tZCBiL2djYy9jb25maWcvcmlzY3YvYXV0b3ZlYy5tZA0KaW5kZXgg MDQ3NmIxZGVhNDUuLmE3NGY2NmY0MWFjIDEwMDY0NA0KLS0tIGEvZ2NjL2Nv bmZpZy9yaXNjdi9hdXRvdmVjLm1kDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2 L2F1dG92ZWMubWQNCkBAIC0xNTMxLDMgKzE1MzEsMTQxIEBADQogICByaXNj dl92ZWN0b3I6OmV4cGFuZF9jb25kX2xlbl9iaW5vcCAoPENPREU+LCBvcGVy YW5kcyk7DQogICBET05FOw0KIH0pDQorDQorOzsgPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KKzs7ID09IFJlZHVjdGlvbnMNCis7OyA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQorDQorOzsgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KKzs7IC0tLS0gW0lOVF0gVHJlZSByZWR1Y3Rpb25z DQorOzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKzs7IEluY2x1 ZGVzOg0KKzs7IC0gdnJlZHN1bS52cw0KKzs7IC0gdnJlZG1heHUudnMNCis7 OyAtIHZyZWRtYXgudnMNCis7OyAtIHZyZWRtaW51LnZzDQorOzsgLSB2cmVk bWluLnZzDQorOzsgLSB2cmVkYW5kLnZzDQorOzsgLSB2cmVkb3IudnMNCis7 OyAtIHZyZWR4b3IudnMNCis7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQorDQorKGRlZmluZV9leHBhbmQgInJlZHVjX3BsdXNfc2NhbF88bW9k ZT4iDQorICBbKG1hdGNoX29wZXJhbmQ6PFZFTD4gMCAicmVnaXN0ZXJfb3Bl cmFuZCIpDQorICAgKG1hdGNoX29wZXJhbmQ6VkkgMSAicmVnaXN0ZXJfb3Bl cmFuZCIpXQ0KKyAgIlRBUkdFVF9WRUNUT1IiDQorew0KKyAgcmlzY3ZfdmVj dG9yOjpleHBhbmRfcmVkdWN0aW9uIChQTFVTLCBvcGVyYW5kcywgQ09OU1Qw X1JUWCAoPFZFTD5tb2RlKSk7DQorICBET05FOw0KK30pDQorDQorKGRlZmlu ZV9leHBhbmQgInJlZHVjX3NtYXhfc2NhbF88bW9kZT4iDQorICBbKG1hdGNo X29wZXJhbmQ6PFZFTD4gMCAicmVnaXN0ZXJfb3BlcmFuZCIpDQorICAgKG1h dGNoX29wZXJhbmQ6VkkgMSAicmVnaXN0ZXJfb3BlcmFuZCIpXQ0KKyAgIlRB UkdFVF9WRUNUT1IiDQorew0KKyAgaW50IHByZWMgPSBHRVRfTU9ERV9QUkVD SVNJT04gKDxWRUw+bW9kZSk7DQorICBydHggbWluID0gaW1tZWRfd2lkZV9p bnRfY29uc3QgKHdpOjptaW5fdmFsdWUgKHByZWMsIFNJR05FRCksIDxWRUw+ bW9kZSk7DQorICByaXNjdl92ZWN0b3I6OmV4cGFuZF9yZWR1Y3Rpb24gKFNN QVgsIG9wZXJhbmRzLCBtaW4pOw0KKyAgRE9ORTsNCit9KQ0KKw0KKyhkZWZp bmVfZXhwYW5kICJyZWR1Y191bWF4X3NjYWxfPG1vZGU+Ig0KKyAgWyhtYXRj aF9vcGVyYW5kOjxWRUw+IDAgInJlZ2lzdGVyX29wZXJhbmQiKQ0KKyAgICht YXRjaF9vcGVyYW5kOlZJIDEgInJlZ2lzdGVyX29wZXJhbmQiKV0NCisgICJU QVJHRVRfVkVDVE9SIg0KK3sNCisgIHJpc2N2X3ZlY3Rvcjo6ZXhwYW5kX3Jl ZHVjdGlvbiAoVU1BWCwgb3BlcmFuZHMsIENPTlNUMF9SVFggKDxWRUw+bW9k ZSkpOw0KKyAgRE9ORTsNCit9KQ0KKw0KKyhkZWZpbmVfZXhwYW5kICJyZWR1 Y19zbWluX3NjYWxfPG1vZGU+Ig0KKyAgWyhtYXRjaF9vcGVyYW5kOjxWRUw+ IDAgInJlZ2lzdGVyX29wZXJhbmQiKQ0KKyAgIChtYXRjaF9vcGVyYW5kOlZJ IDEgInJlZ2lzdGVyX29wZXJhbmQiKV0NCisgICJUQVJHRVRfVkVDVE9SIg0K K3sNCisgIGludCBwcmVjID0gR0VUX01PREVfUFJFQ0lTSU9OICg8VkVMPm1v ZGUpOw0KKyAgcnR4IG1heCA9IGltbWVkX3dpZGVfaW50X2NvbnN0ICh3aTo6 bWF4X3ZhbHVlIChwcmVjLCBTSUdORUQpLCA8VkVMPm1vZGUpOw0KKyAgcmlz Y3ZfdmVjdG9yOjpleHBhbmRfcmVkdWN0aW9uIChTTUlOLCBvcGVyYW5kcywg bWF4KTsNCisgIERPTkU7DQorfSkNCisNCisoZGVmaW5lX2V4cGFuZCAicmVk dWNfdW1pbl9zY2FsXzxtb2RlPiINCisgIFsobWF0Y2hfb3BlcmFuZDo8VkVM PiAwICJyZWdpc3Rlcl9vcGVyYW5kIikNCisgICAobWF0Y2hfb3BlcmFuZDpW SSAxICJyZWdpc3Rlcl9vcGVyYW5kIildDQorICAiVEFSR0VUX1ZFQ1RPUiIN Cit7DQorICBpbnQgcHJlYyA9IEdFVF9NT0RFX1BSRUNJU0lPTiAoPFZFTD5t b2RlKTsNCisgIHJ0eCBtYXggPSBpbW1lZF93aWRlX2ludF9jb25zdCAod2k6 Om1heF92YWx1ZSAocHJlYywgVU5TSUdORUQpLCA8VkVMPm1vZGUpOw0KKyAg cmlzY3ZfdmVjdG9yOjpleHBhbmRfcmVkdWN0aW9uIChVTUlOLCBvcGVyYW5k cywgbWF4KTsNCisgIERPTkU7DQorfSkNCisNCisoZGVmaW5lX2V4cGFuZCAi cmVkdWNfYW5kX3NjYWxfPG1vZGU+Ig0KKyAgWyhtYXRjaF9vcGVyYW5kOjxW RUw+IDAgInJlZ2lzdGVyX29wZXJhbmQiKQ0KKyAgIChtYXRjaF9vcGVyYW5k OlZJIDEgInJlZ2lzdGVyX29wZXJhbmQiKV0NCisgICJUQVJHRVRfVkVDVE9S Ig0KK3sNCisgIHJpc2N2X3ZlY3Rvcjo6ZXhwYW5kX3JlZHVjdGlvbiAoQU5E LCBvcGVyYW5kcywgQ09OU1RNMV9SVFggKDxWRUw+bW9kZSkpOw0KKyAgRE9O RTsNCit9KQ0KKw0KKyhkZWZpbmVfZXhwYW5kICJyZWR1Y19pb3Jfc2NhbF88 bW9kZT4iDQorICBbKG1hdGNoX29wZXJhbmQ6PFZFTD4gMCAicmVnaXN0ZXJf b3BlcmFuZCIpDQorICAgKG1hdGNoX29wZXJhbmQ6VkkgMSAicmVnaXN0ZXJf b3BlcmFuZCIpXQ0KKyAgIlRBUkdFVF9WRUNUT1IiDQorew0KKyAgcmlzY3Zf dmVjdG9yOjpleHBhbmRfcmVkdWN0aW9uIChJT1IsIG9wZXJhbmRzLCBDT05T VDBfUlRYICg8VkVMPm1vZGUpKTsNCisgIERPTkU7DQorfSkNCisNCisoZGVm aW5lX2V4cGFuZCAicmVkdWNfeG9yX3NjYWxfPG1vZGU+Ig0KKyAgWyhtYXRj aF9vcGVyYW5kOjxWRUw+IDAgInJlZ2lzdGVyX29wZXJhbmQiKQ0KKyAgICht YXRjaF9vcGVyYW5kOlZJIDEgInJlZ2lzdGVyX29wZXJhbmQiKV0NCisgICJU QVJHRVRfVkVDVE9SIg0KK3sNCisgIHJpc2N2X3ZlY3Rvcjo6ZXhwYW5kX3Jl ZHVjdGlvbiAoWE9SLCBvcGVyYW5kcywgQ09OU1QwX1JUWCAoPFZFTD5tb2Rl KSk7DQorICBET05FOw0KK30pDQorDQorOzsgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQ0KKzs7IC0tLS0gW0ZQXSBUcmVlIHJlZHVjdGlvbnMNCis7 OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorOzsgSW5jbHVkZXM6 DQorOzsgLSB2ZnJlZHVzdW0udnMNCis7OyAtIHZmcmVkbWF4LnZzDQorOzsg LSB2ZnJlZG1pbi52cw0KKzs7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCisNCisoZGVmaW5lX2V4cGFuZCAicmVkdWNfcGx1c19zY2FsXzxtb2Rl PiINCisgIFsobWF0Y2hfb3BlcmFuZDo8VkVMPiAwICJyZWdpc3Rlcl9vcGVy YW5kIikNCisgICAobWF0Y2hfb3BlcmFuZDpWRiAxICJyZWdpc3Rlcl9vcGVy YW5kIildDQorICAiVEFSR0VUX1ZFQ1RPUiINCit7DQorICByaXNjdl92ZWN0 b3I6OmV4cGFuZF9yZWR1Y3Rpb24gKFBMVVMsIG9wZXJhbmRzLCBDT05TVDBf UlRYICg8VkVMPm1vZGUpKTsNCisgIERPTkU7DQorfSkNCisNCisoZGVmaW5l X2V4cGFuZCAicmVkdWNfc21heF9zY2FsXzxtb2RlPiINCisgIFsobWF0Y2hf b3BlcmFuZDo8VkVMPiAwICJyZWdpc3Rlcl9vcGVyYW5kIikNCisgICAobWF0 Y2hfb3BlcmFuZDpWRiAxICJyZWdpc3Rlcl9vcGVyYW5kIildDQorICAiVEFS R0VUX1ZFQ1RPUiINCit7DQorICBSRUFMX1ZBTFVFX1RZUEUgcnY7DQorICBy ZWFsX2luZiAoJnJ2LCB0cnVlKTsNCisgIHJ0eCBmID0gY29uc3RfZG91Ymxl X2Zyb21fcmVhbF92YWx1ZSAocnYsIDxWRUw+bW9kZSk7DQorICByaXNjdl92 ZWN0b3I6OmV4cGFuZF9yZWR1Y3Rpb24gKFNNQVgsIG9wZXJhbmRzLCBmKTsN CisgIERPTkU7DQorfSkNCisNCisoZGVmaW5lX2V4cGFuZCAicmVkdWNfc21p bl9zY2FsXzxtb2RlPiINCisgIFsobWF0Y2hfb3BlcmFuZDo8VkVMPiAwICJy ZWdpc3Rlcl9vcGVyYW5kIikNCisgICAobWF0Y2hfb3BlcmFuZDpWRiAxICJy ZWdpc3Rlcl9vcGVyYW5kIildDQorICAiVEFSR0VUX1ZFQ1RPUiINCit7DQor ICBSRUFMX1ZBTFVFX1RZUEUgcnY7DQorICByZWFsX2luZiAoJnJ2LCBmYWxz ZSk7DQorICBydHggZiA9IGNvbnN0X2RvdWJsZV9mcm9tX3JlYWxfdmFsdWUg KHJ2LCA8VkVMPm1vZGUpOw0KKyAgcmlzY3ZfdmVjdG9yOjpleHBhbmRfcmVk dWN0aW9uIChTTUlOLCBvcGVyYW5kcywgZik7DQorICBET05FOw0KK30pDQpk aWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaCBi L2djYy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmgNCmluZGV4IDFhNjIy YzU4ZjRiLi5mMTliN2ZjMmI4ZCAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcv cmlzY3YvcmlzY3YtcHJvdG9zLmgNCisrKyBiL2djYy9jb25maWcvcmlzY3Yv cmlzY3YtcHJvdG9zLmgNCkBAIC0xOTcsNiArMTk3LDcgQEAgZW51bSBpbnNu X3R5cGUNCiAgIFJWVl9DT01QUkVTU19PUCA9IDQsDQogICBSVlZfR0FUSEVS X01fT1AgPSA1LA0KICAgUlZWX1NDQVRURVJfTV9PUCA9IDQsDQorICBSVlZf UkVEVUNUSU9OX09QID0gMywNCiB9Ow0KIGVudW0gdmxtdWxfdHlwZQ0KIHsN CkBAIC0yNDcsNiArMjQ4LDcgQEAgdm9pZCBlbWl0X3ZsbWF4X2NtcF9tdV9p bnNuICh1bnNpZ25lZCwgcnR4ICopOw0KIHZvaWQgZW1pdF92bG1heF9tYXNr ZWRfbXVfaW5zbiAodW5zaWduZWQsIGludCwgcnR4ICopOw0KIHZvaWQgZW1p dF9zY2FsYXJfbW92ZV9pbnNuICh1bnNpZ25lZCwgcnR4ICopOw0KIHZvaWQg ZW1pdF9ub252bG1heF9pbnRlZ2VyX21vdmVfaW5zbiAodW5zaWduZWQsIHJ0 eCAqLCBydHgpOw0KKy8vdm9pZCBlbWl0X3ZsbWF4X3JlZHVjdGlvbl9pbnNu ICh1bnNpZ25lZCwgcnR4ICopOw0KIGVudW0gdmxtdWxfdHlwZSBnZXRfdmxt dWwgKG1hY2hpbmVfbW9kZSk7DQogdW5zaWduZWQgaW50IGdldF9yYXRpbyAo bWFjaGluZV9tb2RlKTsNCiB1bnNpZ25lZCBpbnQgZ2V0X25mIChtYWNoaW5l X21vZGUpOw0KQEAgLTI4MCw2ICsyODIsNyBAQCBib29sIGhhc192aV92YXJp YW50X3AgKHJ0eF9jb2RlLCBydHgpOw0KIHZvaWQgZXhwYW5kX3ZlY19jbXAg KHJ0eCwgcnR4X2NvZGUsIHJ0eCwgcnR4KTsNCiBib29sIGV4cGFuZF92ZWNf Y21wX2Zsb2F0IChydHgsIHJ0eF9jb2RlLCBydHgsIHJ0eCwgYm9vbCk7DQog dm9pZCBleHBhbmRfY29uZF9sZW5fYmlub3AgKHJ0eF9jb2RlLCBydHggKik7 DQordm9pZCBleHBhbmRfcmVkdWN0aW9uIChydHhfY29kZSwgcnR4ICosIHJ0 eCk7DQogI2VuZGlmDQogYm9vbCBzZXc2NF9zY2FsYXJfaGVscGVyIChydHgg KiwgcnR4ICosIHJ0eCwgbWFjaGluZV9tb2RlLA0KICAgICAgICAgICAgICAg ICAgICAgICAgICBib29sLCB2b2lkICgqKShydHggKiwgcnR4KSk7DQpkaWZm IC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12LmNjIGIvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12LmNjDQppbmRleCA5MGRhNjM4ODliZC4uY2Nm MGY2ZmY4NTIgMTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LXYuY2MNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Ytdi5jYw0KQEAg LTExMzcsNiArMTEzNyw0MyBAQCBlbWl0X3ZsbWF4X2NvbXByZXNzX2luc24g KHVuc2lnbmVkIGljb2RlLCBydHggKm9wcykNCiAgIGUuZW1pdF9pbnNuICgo ZW51bSBpbnNuX2NvZGUpIGljb2RlLCBvcHMpOw0KIH0NCg0KKy8qIEVtaXQg cmVkdWN0aW9uIGluc3RydWN0aW9uLiAgKi8NCitzdGF0aWMgdm9pZA0KK2Vt aXRfdmxtYXhfcmVkdWN0aW9uX2luc24gKHVuc2lnbmVkIGljb2RlLCBpbnQg b3BfbnVtLCBydHggKm9wcykNCit7DQorICBtYWNoaW5lX21vZGUgZGVzdF9t b2RlID0gR0VUX01PREUgKG9wc1swXSk7DQorICBtYWNoaW5lX21vZGUgbWFz a19tb2RlID0gZ2V0X21hc2tfbW9kZSAoR0VUX01PREUgKG9wc1sxXSkpLnJl cXVpcmUgKCk7DQorICBpbnNuX2V4cGFuZGVyPFJWVl9JTlNOX09QRVJBTkRT X01BWD4gZSAob3BfbnVtLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogSEFTX0RFU1RfUCAqLyB0cnVlLA0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRlVMTFlf VU5NQVNLRURfUCAqLyB0cnVlLA0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogVVNFX1JFQUxfTUVSR0VfUCAqLyBmYWxz ZSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIEhBU19BVkxfUCAqLyB0cnVlLA0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogVkxNQVhfUCAqLyB0cnVlLCBkZXN0 X21vZGUsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBtYXNrX21vZGUpOw0KKw0KKyAgZS5zZXRfcG9saWN5IChUQUlMX0FO WSk7DQorICBlLmVtaXRfaW5zbiAoKGVudW0gaW5zbl9jb2RlKSBpY29kZSwg b3BzKTsNCit9DQorDQorLyogRW1pdCByZWR1Y3Rpb24gaW5zdHJ1Y3Rpb24u ICAqLw0KK3N0YXRpYyB2b2lkDQorZW1pdF92bG1heF9mcF9yZWR1Y3Rpb25f aW5zbiAodW5zaWduZWQgaWNvZGUsIGludCBvcF9udW0sIHJ0eCAqb3BzKQ0K K3sNCisgIG1hY2hpbmVfbW9kZSBkZXN0X21vZGUgPSBHRVRfTU9ERSAob3Bz WzBdKTsNCisgIG1hY2hpbmVfbW9kZSBtYXNrX21vZGUgPSBnZXRfbWFza19t b2RlIChHRVRfTU9ERSAob3BzWzFdKSkucmVxdWlyZSAoKTsNCisgIGluc25f ZXhwYW5kZXI8UlZWX0lOU05fT1BFUkFORFNfTUFYPiBlIChvcF9udW0sDQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBI QVNfREVTVF9QICovIHRydWUsDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvKiBGVUxMWV9VTk1BU0tFRF9QICovIHRydWUs DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiBVU0VfUkVBTF9NRVJHRV9QICovIGZhbHNlLA0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSEFTX0FWTF9QICovIHRy dWUsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiBWTE1BWF9QICovIHRydWUsIGRlc3RfbW9kZSwNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hc2tfbW9kZSk7DQor DQorICBlLnNldF9wb2xpY3kgKFRBSUxfQU5ZKTsNCisgIGUuc2V0X3JvdW5k aW5nX21vZGUgKEZSTV9EWU4pOw0KKyAgZS5lbWl0X2luc24gKChlbnVtIGlu c25fY29kZSkgaWNvZGUsIG9wcyk7DQorfQ0KKw0KIC8qIEVtaXQgbWVyZ2Ug aW5zdHJ1Y3Rpb24uICAqLw0KDQogc3RhdGljIG1hY2hpbmVfbW9kZQ0KQEAg LTE2MjksNiArMTY2NiwxNyBAQCBnZXRfbWFza19tb2RlIChtYWNoaW5lX21v ZGUgbW9kZSkNCiAgIHJldHVybiBnZXRfdmVjdG9yX21vZGUgKEJJbW9kZSwg R0VUX01PREVfTlVOSVRTIChtb2RlKSk7DQogfQ0KDQorLyogUmV0dXJuIHRo ZSBhcHByb3ByaWF0ZSBNMSBtb2RlIGZvciBNT0RFLiAgKi8NCisNCitzdGF0 aWMgb3B0X21hY2hpbmVfbW9kZQ0KK2dldF9tMV9tb2RlIChtYWNoaW5lX21v ZGUgbW9kZSkNCit7DQorICBzY2FsYXJfbW9kZSBzbW9kZSA9IEdFVF9NT0RF X0lOTkVSIChtb2RlKTsNCisgIHVuc2lnbmVkIGludCBieXRlcyA9IEdFVF9N T0RFX1NJWkUgKHNtb2RlKTsNCisgIHBvbHlfdWludDY0IG0xX251bml0cyA9 IGV4YWN0X2RpdiAoQllURVNfUEVSX1JJU0NWX1ZFQ1RPUiwgYnl0ZXMpOw0K KyAgcmV0dXJuIGdldF92ZWN0b3JfbW9kZSAoc21vZGUsIG0xX251bml0cyk7 DQorfQ0KKw0KIC8qIFJldHVybiB0aGUgUlZWIHZlY3RvciBtb2RlIHRoYXQg aGFzIE5VTklUUyBlbGVtZW50cyBvZiBtb2RlIElOTkVSX01PREUuDQogICAg VGhpcyBmdW5jdGlvbiBpcyBub3Qgb25seSB1c2VkIGJ5IGJ1aWx0aW5zLCBi dXQgYWxzbyB3aWxsIGJlIHVzZWQgYnkNCiAgICBhdXRvLXZlY3Rvcml6YXRp b24gaW4gdGhlIGZ1dHVyZS4gICovDQpAQCAtMzA5OSw5ICszMTQ3LDkgQEAg ZXhwYW5kX2NvbmRfbGVuX2Jpbm9wIChydHhfY29kZSBjb2RlLCBydHggKm9w cykNCiAgICAgICBydHggb3BzW10gPSB7ZGVzdCwgbWFzaywgbWVyZ2UsIHNy YzEsIHNyYzJ9Ow0KICAgICAgIGluc25fY29kZSBpY29kZSA9IGNvZGVfZm9y X3ByZWQgKGNvZGUsIG1vZGUpOw0KICAgICAgIGlmIChuZWVkc19mcF9yb3Vu ZGluZyAoY29kZSwgbW9kZSkpDQotICAgICAgIGVtaXRfbm9udmxtYXhfZnBf dHVfaW5zbiAoaWNvZGUsIFJWVl9CSU5PUF9NVSwgb3BzLCBsZW4pOw0KKyAg ICAgICBlbWl0X25vbnZsbWF4X2ZwX3R1X2luc24gKGljb2RlLCBSVlZfQklO T1BfVFUsIG9wcywgbGVuKTsNCiAgICAgICBlbHNlDQotICAgICAgIGVtaXRf bm9udmxtYXhfdHVfaW5zbiAoaWNvZGUsIFJWVl9CSU5PUF9NVSwgb3BzLCBs ZW4pOw0KKyAgICAgICBlbWl0X25vbnZsbWF4X3R1X2luc24gKGljb2RlLCBS VlZfQklOT1BfVFUsIG9wcywgbGVuKTsNCiAgICAgfQ0KICAgZWxzZQ0KICAg ICAvKiBGSVhNRTogRW5hYmxlIHRoaXMgY2FzZSB3aGVuIHdlIHN1cHBvcnQg aXQgaW4gdGhlIG1pZGRsZS1lbmQuICAqLw0KQEAgLTMyNjcsNCArMzMxNSwz NiBAQCBleHBhbmRfZ2F0aGVyX3NjYXR0ZXIgKHJ0eCAqb3BzLCBib29sIGlz X2xvYWQpDQogICAgIH0NCiB9DQoNCisvKiBFeHBhbmQgcmVkdWN0aW9uIG9w ZXJhdGlvbnMuICAqLw0KK3ZvaWQNCitleHBhbmRfcmVkdWN0aW9uIChydHhf Y29kZSBjb2RlLCBydHggKm9wcywgcnR4IGluaXQpDQorew0KKyAgbWFjaGlu ZV9tb2RlIHZtb2RlID0gR0VUX01PREUgKG9wc1sxXSk7DQorICBtYWNoaW5l X21vZGUgbTFfbW9kZSA9IGdldF9tMV9tb2RlICh2bW9kZSkucmVxdWlyZSAo KTsNCisgIG1hY2hpbmVfbW9kZSBtMV9tbW9kZSA9IGdldF9tYXNrX21vZGUg KG0xX21vZGUpLnJlcXVpcmUgKCk7DQorDQorICBydHggbTFfdG1wID0gZ2Vu X3JlZ19ydHggKG0xX21vZGUpOw0KKyAgcnR4IG0xX21hc2sgPSBnZW5fc2Nh bGFyX21vdmVfbWFzayAobTFfbW1vZGUpOw0KKyAgcnR4IG0xX3VuZGVmID0g UlZWX1ZVTkRFRiAobTFfbW9kZSk7DQorICBydHggc2NhbGFyX21vdmVfb3Bz W10gPSB7bTFfdG1wLCBtMV9tYXNrLCBtMV91bmRlZiwgaW5pdH07DQorICBl bWl0X3NjYWxhcl9tb3ZlX2luc24gKGNvZGVfZm9yX3ByZWRfYnJvYWRjYXN0 IChtMV9tb2RlKSwgc2NhbGFyX21vdmVfb3BzKTsNCisNCisgIHJ0eCBtMV90 bXAyID0gZ2VuX3JlZ19ydHggKG0xX21vZGUpOw0KKyAgcnR4IHJlZHVjX29w c1tdID0ge20xX3RtcDIsIG9wc1sxXSwgbTFfdG1wfTsNCisNCisgIGlmIChG TE9BVF9NT0RFX1AgKHZtb2RlKSAmJiBjb2RlID09IFBMVVMpDQorICAgIHsN CisgICAgICBpbnNuX2NvZGUgaWNvZGUNCisgICAgICAgPSBjb2RlX2Zvcl9w cmVkX3JlZHVjX3BsdXMgKFVOU1BFQ19VTk9SREVSRUQsIHZtb2RlLCBtMV9t b2RlKTsNCisgICAgICBlbWl0X3ZsbWF4X2ZwX3JlZHVjdGlvbl9pbnNuIChp Y29kZSwgUlZWX1JFRFVDVElPTl9PUCwgcmVkdWNfb3BzKTsNCisgICAgfQ0K KyAgZWxzZQ0KKyAgICB7DQorICAgICAgaW5zbl9jb2RlIGljb2RlID0gY29k ZV9mb3JfcHJlZF9yZWR1YyAoY29kZSwgdm1vZGUsIG0xX21vZGUpOw0KKyAg ICAgIGVtaXRfdmxtYXhfcmVkdWN0aW9uX2luc24gKGljb2RlLCBSVlZfUkVE VUNUSU9OX09QLCByZWR1Y19vcHMpOw0KKyAgICB9DQorDQorICBlbWl0X2lu c24gKGdlbl9wcmVkX2V4dHJhY3RfZmlyc3QgKG0xX21vZGUsIG9wc1swXSwg bTFfdG1wMikpOw0KK30NCisNCiB9IC8vIG5hbWVzcGFjZSByaXNjdl92ZWN0 b3INCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZzZXR2 bC5jYyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdnNldHZsLmNjDQppbmRl eCA1ODZkYzhlNTM3OS4uOTdhOWRhZDhhNzcgMTAwNjQ0DQotLS0gYS9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZzZXR2bC5jYw0KKysrIGIvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi12c2V0dmwuY2MNCkBAIC02NDYsNyArNjQ2LDggQEAg Z2VuX3ZzZXR2bF9wYXQgKGVudW0gdnNldHZsX3R5cGUgaW5zbl90eXBlLCBj b25zdCB2bF92dHlwZV9pbmZvICZpbmZvLCBydHggdmwpDQogfQ0KDQogc3Rh dGljIHJ0eA0KLWdlbl92c2V0dmxfcGF0IChydHhfaW5zbiAqcmluc24sIGNv bnN0IHZlY3Rvcl9pbnNuX2luZm8gJmluZm8pDQorZ2VuX3ZzZXR2bF9wYXQg KHJ0eF9pbnNuICpyaW5zbiwgY29uc3QgdmVjdG9yX2luc25faW5mbyAmaW5m bywNCisgICAgICAgICAgICAgICBydHggdmwgPSBOVUxMX1JUWCkNCiB7DQog ICBydHggbmV3X3BhdDsNCiAgIHZsX3Z0eXBlX2luZm8gbmV3X2luZm8gPSBp bmZvOw0KQEAgLTY1Nyw3ICs2NTgsNyBAQCBnZW5fdnNldHZsX3BhdCAocnR4 X2luc24gKnJpbnNuLCBjb25zdCB2ZWN0b3JfaW5zbl9pbmZvICZpbmZvKQ0K ICAgaWYgKHZzZXR2bF9pbnNuX3AgKHJpbnNuKSB8fCB2bG1heF9hdmxfcCAo aW5mby5nZXRfYXZsICgpKSkNCiAgICAgew0KICAgICAgIHJ0eCBkZXN0ID0g Z2V0X3ZsIChyaW5zbik7DQotICAgICAgbmV3X3BhdCA9IGdlbl92c2V0dmxf cGF0IChWU0VUVkxfTk9STUFMLCBuZXdfaW5mbywgZGVzdCk7DQorICAgICAg bmV3X3BhdCA9IGdlbl92c2V0dmxfcGF0IChWU0VUVkxfTk9STUFMLCBuZXdf aW5mbywgdmwgPyB2bCA6IGRlc3QpOw0KICAgICB9DQogICBlbHNlIGlmIChJ TlNOX0NPREUgKHJpbnNuKSA9PSBDT0RFX0ZPUl92c2V0dmxfdnR5cGVfY2hh bmdlX29ubHkpDQogICAgIG5ld19wYXQgPSBnZW5fdnNldHZsX3BhdCAoVlNF VFZMX1ZUWVBFX0NIQU5HRV9PTkxZLCBuZXdfaW5mbywgTlVMTF9SVFgpOw0K QEAgLTgxOCw3ICs4MTksOCBAQCBjaGFuZ2VfaW5zbiAocnR4X2luc24gKnJp bnNuLCBydHggbmV3X3BhdCkNCiAgICAgICBwcmludF9ydGxfc2luZ2xlIChk dW1wX2ZpbGUsIFBBVFRFUk4gKHJpbnNuKSk7DQogICAgIH0NCg0KLSAgdmFs aWRhdGVfY2hhbmdlIChyaW5zbiwgJlBBVFRFUk4gKHJpbnNuKSwgbmV3X3Bh dCwgZmFsc2UpOw0KKyAgYm9vbCBjaGFuZ2VfcCA9IHZhbGlkYXRlX2NoYW5n ZSAocmluc24sICZQQVRURVJOIChyaW5zbiksIG5ld19wYXQsIGZhbHNlKTsN CisgIGdjY19hc3NlcnQgKGNoYW5nZV9wKTsNCg0KICAgaWYgKGR1bXBfZmls ZSkNCiAgICAgew0KQEAgLTkzMSw3ICs5MzMsOCBAQCBjaGFuZ2VfaW5zbiAo ZnVuY3Rpb25faW5mbyAqc3NhLCBpbnNuX2NoYW5nZSBjaGFuZ2UsIGluc25f aW5mbyAqaW5zbiwNCiB9DQoNCiBzdGF0aWMgdm9pZA0KLWNoYW5nZV92c2V0 dmxfaW5zbiAoY29uc3QgaW5zbl9pbmZvICppbnNuLCBjb25zdCB2ZWN0b3Jf aW5zbl9pbmZvICZpbmZvKQ0KK2NoYW5nZV92c2V0dmxfaW5zbiAoY29uc3Qg aW5zbl9pbmZvICppbnNuLCBjb25zdCB2ZWN0b3JfaW5zbl9pbmZvICZpbmZv LA0KKyAgICAgICAgICAgICAgICAgICBydHggdmwgPSBOVUxMX1JUWCkNCiB7 DQogICBydHhfaW5zbiAqcmluc247DQogICBpZiAodmVjdG9yX2NvbmZpZ19p bnNuX3AgKGluc24tPnJ0bCAoKSkpDQpAQCAtOTQ1LDcgKzk0OCw3IEBAIGNo YW5nZV92c2V0dmxfaW5zbiAoY29uc3QgaW5zbl9pbmZvICppbnNuLCBjb25z dCB2ZWN0b3JfaW5zbl9pbmZvICZpbmZvKQ0KICAgICAgIHJpbnNuID0gUFJF Vl9JTlNOIChpbnNuLT5ydGwgKCkpOw0KICAgICAgIGdjY19hc3NlcnQgKHZl Y3Rvcl9jb25maWdfaW5zbl9wIChyaW5zbikpOw0KICAgICB9DQotICBydHgg bmV3X3BhdCA9IGdlbl92c2V0dmxfcGF0IChyaW5zbiwgaW5mbyk7DQorICBy dHggbmV3X3BhdCA9IGdlbl92c2V0dmxfcGF0IChyaW5zbiwgaW5mbywgdmwp Ow0KICAgY2hhbmdlX2luc24gKHJpbnNuLCBuZXdfcGF0KTsNCiB9DQoNCkBA IC0zMzc3LDcgKzMzODAsMjAgQEAgcGFzc192c2V0dmw6OmJhY2t3YXJkX2Rl bWFuZF9mdXNpb24gKHZvaWQpDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBuZXdfaW5mbykpDQogICAgICAgICAgICAgICAgY29u dGludWU7DQoNCi0gICAgICAgICAgICAgY2hhbmdlX3ZzZXR2bF9pbnNuIChu ZXdfaW5mby5nZXRfaW5zbiAoKSwgbmV3X2luZm8pOw0KKyAgICAgICAgICAg ICBydHggdmwgPSBOVUxMX1JUWDsNCisgICAgICAgICAgICAgLyogQmFja3dh cmQgVkxNQVggVkw6DQorICAgICAgICAgICAgICAgICAgYmIgMzoNCisgICAg ICAgICAgICAgICAgICAgIHZzZXRpdmxpIHplcm8sIDEgLi4uIC0+IHZzZXR2 bGkgdDEsIHplcm8NCisgICAgICAgICAgICAgICAgICAgIHZtdi5zLngNCisg ICAgICAgICAgICAgICAgICBiYiA1Og0KKyAgICAgICAgICAgICAgICAgICAg dnNldHZsaSB0MSwgemVybyAuLi4gLT4gdG8gYmUgZWxpZGVkLg0KKyAgICAg ICAgICAgICAgICAgICAgdmxzZTE2LnYNCisNCisgICAgICAgICAgICAgICAg ICBXZSBzaG91bGQgZm9yd2FyZCAidDEiLiAgKi8NCisgICAgICAgICAgICAg aWYgKCFibG9ja19pbmZvLnJlYWNoaW5nX291dC5oYXNfYXZsX3JlZyAoKQ0K KyAgICAgICAgICAgICAgICAgJiYgdmxtYXhfYXZsX3AgKG5ld19pbmZvLmdl dF9hdmwgKCkpKQ0KKyAgICAgICAgICAgICAgIHZsID0gZ2V0X3ZsIChwcm9w LmdldF9pbnNuICgpLT5ydGwgKCkpOw0KKyAgICAgICAgICAgICBjaGFuZ2Vf dnNldHZsX2luc24gKG5ld19pbmZvLmdldF9pbnNuICgpLCBuZXdfaW5mbywg dmwpOw0KICAgICAgICAgICAgICBpZiAoYmxvY2tfaW5mby5sb2NhbF9kZW0g PT0gYmxvY2tfaW5mby5yZWFjaGluZ19vdXQpDQogICAgICAgICAgICAgICAg YmxvY2tfaW5mby5sb2NhbF9kZW0gPSBuZXdfaW5mbzsNCiAgICAgICAgICAg ICAgYmxvY2tfaW5mby5yZWFjaGluZ19vdXQgPSBuZXdfaW5mbzsNCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1 dG92ZWMvcmVkdWMvcmVkdWMtMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjLTEuYw0KbmV3IGZp bGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4wZDU0M2FmMTNj YQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjLTEuYw0KQEAgLTAs MCArMSwxMTggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsg ZGctYWRkaXRpb25hbC1vcHRpb25zICItbWFyY2g9cnYzMmdjdl96dmZoIC1t YWJpPWlscDMyZCAtLXBhcmFtPXJpc2N2LWF1dG92ZWMtcHJlZmVyZW5jZT1z Y2FsYWJsZSAtZmZhc3QtbWF0aCAtZm5vLXZlY3QtY29zdC1tb2RlbCIgfSAq Lw0KKw0KKyNpbmNsdWRlIDxzdGRpbnQtZ2NjLmg+DQorDQorI2RlZmluZSBE RUZfUkVEVUNfUExVUyhUWVBFKSAgICAgICAgICAgICAgICAgICBcDQorVFlQ RSBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUsIG5vY2xvbmUpKSAgICAgICBc DQorcmVkdWNfcGx1c18jI1RZUEUgKFRZUEUgKmEsIGludCBuKSAgICAgICAg ICAgICBcDQoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQorICBUWVBFIHIgPSAwOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcDQorICBmb3IgKGludCBpID0gMDsgaSA8IG47 ICsraSkgICAgICAgICAgICAgICAgICBcDQorICAgIHIgKz0gYVtpXTsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICByZXR1cm4gcjsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorfQ0KKw0K KyNkZWZpbmUgVEVTVF9QTFVTKFQpICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KKyAgVCAoaW50OF90KSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KKyAgVCAoaW50MTZfdCkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50MzJfdCkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50NjRfdCkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDhfdCkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWlu dDE2X3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAg VCAodWludDMyX3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KKyAgVCAodWludDY0X3QpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KKyAgVCAoX0Zsb2F0MTYpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KKyAgVCAoZmxvYXQpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoZG91YmxlKQ0KKw0KK1RFU1Rf UExVUyAoREVGX1JFRFVDX1BMVVMpDQorDQorI2RlZmluZSBERUZfUkVEVUNf TUFYTUlOKFRZUEUsIE5BTUUsIENNUF9PUCkgICBcDQorVFlQRSBfX2F0dHJp YnV0ZV9fICgobm9pbmxpbmUsIG5vY2xvbmUpKSAgICAgICBcDQorcmVkdWNf IyNOQU1FIyNfIyNUWVBFIChUWVBFICphLCBpbnQgbikgICAgICAgICBcDQor eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcDQorICBUWVBFIHIgPSAxMzsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQorICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgICAg ICAgICAgICAgICAgICBcDQorICAgIHIgPSBhW2ldIENNUF9PUCByID8gYVtp XSA6IHI7ICAgICAgICAgICAgICBcDQorICByZXR1cm4gcjsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorfQ0KKw0KKyNkZWZpbmUg VEVTVF9NQVhNSU4oVCkgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAg VCAoaW50OF90LCBtYXgsID4pICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KKyAgVCAoaW50MTZfdCwgbWF4LCA+KSAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KKyAgVCAoaW50MzJfdCwgbWF4LCA+KSAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KKyAgVCAoaW50NjRfdCwgbWF4LCA+KSAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDhfdCwgbWF4LCA+KSAg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDE2X3QsIG1h eCwgPikgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDMy X3QsIG1heCwgPikgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAo dWludDY0X3QsIG1heCwgPikgICAgICAgICAgICAgICAgICAgICAgICAgXA0K KyAgVCAoX0Zsb2F0MTYsIG1heCwgPikgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KKyAgVCAoZmxvYXQsIG1heCwgPikgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KKyAgVCAoZG91YmxlLCBtYXgsID4pICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50OF90LCBtaW4sIDwp ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50MTZfdCwg bWluLCA8KSAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50 MzJfdCwgbWluLCA8KSAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAg VCAoaW50NjRfdCwgbWluLCA8KSAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KKyAgVCAodWludDhfdCwgbWluLCA8KSAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KKyAgVCAodWludDE2X3QsIG1pbiwgPCkgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KKyAgVCAodWludDMyX3QsIG1pbiwgPCkgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDY0X3QsIG1pbiwgPCkg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoX0Zsb2F0MTYsIG1p biwgPCkgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAoZmxvYXQs IG1pbiwgPCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAo ZG91YmxlLCBtaW4sIDwpDQorDQorVEVTVF9NQVhNSU4gKERFRl9SRURVQ19N QVhNSU4pDQorDQorI2RlZmluZSBERUZfUkVEVUNfQklUV0lTRShUWVBFLCBO QU1FLCBCSVRfT1ApICBcDQorVFlQRSBfX2F0dHJpYnV0ZV9fICgobm9pbmxp bmUsIG5vY2xvbmUpKSAgICAgICBcDQorcmVkdWNfIyNOQU1FIyNfIyNUWVBF IChUWVBFICphLCBpbnQgbikgICAgICAgICBcDQoreyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUWVBFIHIg PSAxMzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBm b3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgICAgICAgICAgICAgICAgICBc DQorICAgIHIgQklUX09QIGFbaV07ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQorICByZXR1cm4gcjsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQorfQ0KKw0KKyNkZWZpbmUgVEVTVF9CSVRXSVNFKFQp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQ4 X3QsIGFuZCwgJj0pICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBU IChpbnQxNl90LCBhbmQsICY9KSAgICAgICAgICAgICAgICAgICAgICAgICBc DQorICBUIChpbnQzMl90LCBhbmQsICY9KSAgICAgICAgICAgICAgICAgICAg ICAgICBcDQorICBUIChpbnQ2NF90LCBhbmQsICY9KSAgICAgICAgICAgICAg ICAgICAgICAgICBcDQorICBUICh1aW50OF90LCBhbmQsICY9KSAgICAgICAg ICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50MTZfdCwgYW5kLCAmPSkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQz Ml90LCBhbmQsICY9KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KKyAgVCAodWludDY0X3QsIGFuZCwgJj0pICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQ4X3QsIGlvciwgfD0p ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQxNl90LCBp b3IsIHw9KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQz Ml90LCBpb3IsIHw9KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBU IChpbnQ2NF90LCBpb3IsIHw9KSAgICAgICAgICAgICAgICAgICAgICAgICBc DQorICBUICh1aW50OF90LCBpb3IsIHw9KSAgICAgICAgICAgICAgICAgICAg ICAgICBcDQorICBUICh1aW50MTZfdCwgaW9yLCB8PSkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQzMl90LCBpb3IsIHw9 KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWlu dDY0X3QsIGlvciwgfD0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQorICBUIChpbnQ4X3QsIHhvciwgXj0pICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQorICBUIChpbnQxNl90LCB4b3IsIF49KSAgICAg ICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQzMl90LCB4b3IsIF49 KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQ2NF90LCB4 b3IsIF49KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50 OF90LCB4b3IsIF49KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBU ICh1aW50MTZfdCwgeG9yLCBePSkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgIFQgKHVpbnQzMl90LCB4b3IsIF49KSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDY0X3QsIHhvciwg Xj0pDQorDQorVEVTVF9CSVRXSVNFIChERUZfUkVEVUNfQklUV0lTRSkNCisN CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZyZWRz dW1cLnZzXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDggfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 cmVkbWF4XC52c1xzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSA0 IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dnJlZG1heHVcLnZzXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05 XSt9IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2cmVkbWluXC52c1xzK3ZbMC05XSssXHMqdlswLTldKyxccyp2 WzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dnJlZG1pbnVcLnZzXHMrdlswLTldKyxccyp2WzAtOV0r LFxzKnZbMC05XSt9IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2cmVkYW5kXC52c1xzK3ZbMC05XSssXHMqdlsw LTldKyxccyp2WzAtOV0rfSA4IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dnJlZG9yXC52c1xzK3ZbMC05XSssXHMq dlswLTldKyxccyp2WzAtOV0rfSA4IH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnJlZHhvclwudnNccyt2WzAtOV0r LFxzKnZbMC05XSssXHMqdlswLTldK30gOCB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmcmVkdXN1bVwudnNccyt2 WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldK30gMyB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmcmVkbWF4XC52 c1xzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSAzIH0gfSAqLw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZyZWRt aW5cLnZzXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDMgfSB9 ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjLTIuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Yy0y LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4u MTM2YThhMzc4YmYNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Yy0y LmMNCkBAIC0wLDAgKzEsMTI5IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0g Ki8NCisvKiB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLW1hcmNoPXJ2MzJn Y3ZfenZmaCAtbWFiaT1pbHAzMmQgLS1wYXJhbT1yaXNjdi1hdXRvdmVjLXBy ZWZlcmVuY2U9c2NhbGFibGUgLWZmYXN0LW1hdGggLWZuby12ZWN0LWNvc3Qt bW9kZWwiIH0gKi8NCisNCisjaW5jbHVkZSA8c3RkaW50LWdjYy5oPg0KKw0K KyNkZWZpbmUgTlVNX0VMRU1TKFRZUEUpICgxMDI0IC8gc2l6ZW9mIChUWVBF KSkNCisNCisjZGVmaW5lIERFRl9SRURVQ19QTFVTKFRZUEUpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQordm9pZCBfX2F0dHJpYnV0 ZV9fICgobm9pbmxpbmUsIG5vY2xvbmUpKSAgICAgICAgICAgICAgICAgICAg ICAgXA0KK3JlZHVjX3BsdXNfIyNUWVBFIChUWVBFICgqcmVzdHJpY3QgYSlb TlVNX0VMRU1TIChUWVBFKV0sICAgICAgIFwNCisgICAgICAgICAgICAgICAg ICBUWVBFICpyZXN0cmljdCByLCBpbnQgbikgICAgICAgICAgICAgICAgICAg ICBcDQoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgZm9yIChpbnQgaSA9IDA7 IGkgPCBuOyBpKyspICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgcltpXSA9IDA7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQorICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBOVU1fRUxF TVMgKFRZUEUpOyBqKyspICAgICAgICAgICAgICAgXA0KKyAgICAgICAgcltp XSArPSBhW2ldW2pdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorfQ0KKw0KKyNkZWZp bmUgVEVTVF9QTFVTKFQpICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K KyAgVCAoaW50OF90KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KKyAgVCAoaW50MTZfdCkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KKyAgVCAoaW50MzJfdCkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KKyAgVCAoaW50NjRfdCkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDhfdCkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDE2X3Qp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWlu dDMyX3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAg VCAodWludDY0X3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KKyAgVCAoX0Zsb2F0MTYpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KKyAgVCAoZmxvYXQpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KKyAgVCAoZG91YmxlKQ0KKw0KK1RFU1RfUExVUyAo REVGX1JFRFVDX1BMVVMpDQorDQorI2RlZmluZSBERUZfUkVEVUNfTUFYTUlO KFRZUEUsIE5BTUUsIENNUF9PUCkgICAgICAgICAgICAgICAgICAgXA0KK3Zv aWQgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lLCBub2Nsb25lKSkgICAgICAg ICAgICAgICAgICAgICAgIFwNCityZWR1Y18jI05BTUUjI18jI1RZUEUgKFRZ UEUgKCpyZXN0cmljdCBhKVtOVU1fRUxFTVMgKFRZUEUpXSwgICBcDQorICAg ICAgICAgICAgICAgICAgICAgIFRZUEUgKnJlc3RyaWN0IHIsIGludCBuKSAg ICAgICAgICAgICAgICAgXA0KK3sgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIGZv ciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQorICAgIHsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAg IHJbaV0gPSBhW2ldWzBdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCisgICAgICBmb3IgKGludCBqID0gMDsgaiA8IE5V TV9FTEVNUyAoVFlQRSk7IGorKykgICAgICAgICAgICAgICBcDQorICAgICAg ICByW2ldID0gYVtpXVtqXSBDTVBfT1AgcltpXSA/IGFbaV1bal0gOiByW2ld OyAgICAgICAgICAgXA0KKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCit9DQorDQor I2RlZmluZSBURVNUX01BWE1JTihUKSAgICAgICAgICAgICAgICAgICAgICAg ICBcDQorICBUIChpbnQ4X3QsIG1heCwgPikgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQorICBUIChpbnQxNl90LCBtYXgsID4pICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQorICBUIChpbnQzMl90LCBtYXgsID4pICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQ2NF90LCBtYXgsID4p ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50OF90LCBt YXgsID4pICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50 MTZfdCwgbWF4LCA+KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBU ICh1aW50MzJfdCwgbWF4LCA+KSAgICAgICAgICAgICAgICAgICAgICAgICBc DQorICBUICh1aW50NjRfdCwgbWF4LCA+KSAgICAgICAgICAgICAgICAgICAg ICAgICBcDQorICBUIChfRmxvYXQxNiwgbWF4LCA+KSAgICAgICAgICAgICAg ICAgICAgICAgICBcDQorICBUIChmbG9hdCwgbWF4LCA+KSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcDQorICBUIChkb3VibGUsIG1heCwgPikgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQ4X3Qs IG1pbiwgPCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChp bnQxNl90LCBtaW4sIDwpICAgICAgICAgICAgICAgICAgICAgICAgICBcDQor ICBUIChpbnQzMl90LCBtaW4sIDwpICAgICAgICAgICAgICAgICAgICAgICAg ICBcDQorICBUIChpbnQ2NF90LCBtaW4sIDwpICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQorICBUICh1aW50OF90LCBtaW4sIDwpICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQorICBUICh1aW50MTZfdCwgbWluLCA8KSAgICAg ICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50MzJfdCwgbWluLCA8 KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50NjRfdCwg bWluLCA8KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChfRmxv YXQxNiwgbWluLCA8KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBU IChmbG9hdCwgbWluLCA8KSAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQorICBUIChkb3VibGUsIG1pbiwgPCkNCisNCitURVNUX01BWE1JTiAoREVG X1JFRFVDX01BWE1JTikNCisNCisjZGVmaW5lIERFRl9SRURVQ19CSVRXSVNF KFRZUEUsTkFNRSxCSVRfT1ApICAgICAgICAgICAgICAgICAgICBcDQordm9p ZCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUsIG5vY2xvbmUpKSAgICAgICAg ICAgICAgICAgICAgICAgXA0KK3JlZHVjXyMjTkFNRSMjVFlQRSAoVFlQRSAo KnJlc3RyaWN0IGEpW05VTV9FTEVNUyhUWVBFKV0sICAgICAgIFwNCisgICAg ICAgICAgICAgICAgICAgVFlQRSAqcmVzdHJpY3QgciwgaW50IG4pICAgICAg ICAgICAgICAgICAgICBcDQoreyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgZm9y IChpbnQgaSA9IDA7IGkgPCBuOyBpKyspICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAg cltpXSA9IGFbaV1bMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KKyAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgTlVN X0VMRU1TKFRZUEUpOyBqKyspICAgICAgICAgICAgICAgICAgICAgICAgXA0K KyAgICAgICAgcltpXSBCSVRfT1AgYVtpXVtqXTsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCisgICAgfSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQor fQ0KKw0KKyNkZWZpbmUgVEVTVF9CSVRXSVNFKFQpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQ4X3QsIGFuZCwgJj0pICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQxNl90LCBhbmQs ICY9KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQzMl90 LCBhbmQsICY9KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChp bnQ2NF90LCBhbmQsICY9KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQor ICBUICh1aW50OF90LCBhbmQsICY9KSAgICAgICAgICAgICAgICAgICAgICAg ICBcDQorICBUICh1aW50MTZfdCwgYW5kLCAmPSkgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwNCisgIFQgKHVpbnQzMl90LCBhbmQsICY9KSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDY0 X3QsIGFuZCwgJj0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcDQorICBUIChpbnQ4X3QsIGlvciwgfD0pICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQorICBUIChpbnQxNl90LCBpb3IsIHw9KSAgICAgICAg ICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQzMl90LCBpb3IsIHw9KSAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUIChpbnQ2NF90LCBpb3Is IHw9KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50OF90 LCBpb3IsIHw9KSAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1 aW50MTZfdCwgaW9yLCB8PSkgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCisgIFQgKHVpbnQzMl90LCBpb3IsIHw9KSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KKyAgVCAodWludDY0X3QsIGlvciwgfD0p ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBU IChpbnQ4X3QsIHhvciwgXj0pICAgICAgICAgICAgICAgICAgICAgICAgICBc DQorICBUIChpbnQxNl90LCB4b3IsIF49KSAgICAgICAgICAgICAgICAgICAg ICAgICBcDQorICBUIChpbnQzMl90LCB4b3IsIF49KSAgICAgICAgICAgICAg ICAgICAgICAgICBcDQorICBUIChpbnQ2NF90LCB4b3IsIF49KSAgICAgICAg ICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50OF90LCB4b3IsIF49KSAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUICh1aW50MTZfdCwgeG9y LCBePSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgIFQg KHVpbnQzMl90LCB4b3IsIF49KSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KKyAgVCAodWludDY0X3QsIHhvciwgXj0pDQorDQorVEVTVF9C SVRXSVNFIChERUZfUkVEVUNfQklUV0lTRSkNCisNCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZyZWRzdW1cLnZzXHMrdlswLTld Kyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDggfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2cmVkbWF4XC52c1xzK3Zb MC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnJlZG1heHVcLnZz XHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDQgfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2cmVkbWlu XC52c1xzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSA0IH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnJl ZG1pbnVcLnZzXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDQg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2cmVkYW5kXC52c1xzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0r fSA4IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnJlZG9yXC52c1xzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAt OV0rfSA4IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7dnJlZHhvclwudnNccyt2WzAtOV0rLFxzKnZbMC05XSssXHMq dlswLTldK30gOCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge3ZmcmVkdXN1bVwudnNccyt2WzAtOV0rLFxzKnZbMC05 XSssXHMqdlswLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZmcmVkbWF4XC52c1xzK3ZbMC05XSssXHMq dlswLTldKyxccyp2WzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZyZWRtaW5cLnZzXHMrdlswLTld Kyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDMgfSB9ICovDQpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVj L3JlZHVjL3JlZHVjLTMuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Yy0zLmMNCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYzM2MzgzNDRmODANCi0t LSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Yy0zLmMNCkBAIC0wLDAgKzEs NjUgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctYWRk aXRpb25hbC1vcHRpb25zICItbWFyY2g9cnYzMmdjdiAtbWFiaT1pbHAzMmQg LS1wYXJhbT1yaXNjdi1hdXRvdmVjLXByZWZlcmVuY2U9c2NhbGFibGUgLWZm YXN0LW1hdGggLWZuby12ZWN0LWNvc3QtbW9kZWwiIH0gKi8NCisNCisjaW5j bHVkZSA8c3RkaW50LWdjYy5oPg0KKw0KK3Vuc2lnbmVkIHNob3J0IF9fYXR0 cmlidXRlX18oKG5vaXBhKSkNCithZGRfbG9vcCAodW5zaWduZWQgc2hvcnQg KngsIGludCBuKQ0KK3sNCisgIHVuc2lnbmVkIHNob3J0IHJlcyA9IDA7DQor ICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkNCisgICAgcmVzICs9IHhb aV07DQorICByZXR1cm4gcmVzOw0KK30NCisNCit1bnNpZ25lZCBzaG9ydCBf X2F0dHJpYnV0ZV9fKChub2lwYSkpDQorbWluX2xvb3AgKHVuc2lnbmVkIHNo b3J0ICp4LCBpbnQgbikNCit7DQorICB1bnNpZ25lZCBzaG9ydCByZXMgPSB+ MDsNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKQ0KKyAgICByZXMg PSByZXMgPCB4W2ldID8gcmVzIDogeFtpXTsNCisgIHJldHVybiByZXM7DQor fQ0KKw0KK3Vuc2lnbmVkIHNob3J0IF9fYXR0cmlidXRlX18oKG5vaXBhKSkN CittYXhfbG9vcCAodW5zaWduZWQgc2hvcnQgKngsIGludCBuKQ0KK3sNCisg IHVuc2lnbmVkIHNob3J0IHJlcyA9IDA7DQorICBmb3IgKGludCBpID0gMDsg aSA8IG47ICsraSkNCisgICAgcmVzID0gcmVzID4geFtpXSA/IHJlcyA6IHhb aV07DQorICByZXR1cm4gcmVzOw0KK30NCisNCit1bnNpZ25lZCBzaG9ydCBf X2F0dHJpYnV0ZV9fKChub2lwYSkpDQorYW5kX2xvb3AgKHVuc2lnbmVkIHNo b3J0ICp4LCBpbnQgbikNCit7DQorICB1bnNpZ25lZCBzaG9ydCByZXMgPSB+ MDsNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKQ0KKyAgICByZXMg Jj0geFtpXTsNCisgIHJldHVybiByZXM7DQorfQ0KKw0KK3Vuc2lnbmVkIHNo b3J0IF9fYXR0cmlidXRlX18oKG5vaXBhKSkNCitvcl9sb29wICh1bnNpZ25l ZCBzaG9ydCAqeCwgaW50IG4pDQorew0KKyAgdW5zaWduZWQgc2hvcnQgcmVz ID0gMDsNCisgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKQ0KKyAgICBy ZXMgfD0geFtpXTsNCisgIHJldHVybiByZXM7DQorfQ0KKw0KK3Vuc2lnbmVk IHNob3J0IF9fYXR0cmlidXRlX18oKG5vaXBhKSkNCitlb3JfbG9vcCAodW5z aWduZWQgc2hvcnQgKngsIGludCBuKQ0KK3sNCisgIHVuc2lnbmVkIHNob3J0 IHJlcyA9IDA7DQorICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkNCisg ICAgcmVzIF49IHhbaV07DQorICByZXR1cm4gcmVzOw0KK30NCisNCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZyZWRzdW1cLnZz XHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDEgfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2cmVkbWF4 dVwudnNccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldK30gMSB9IH0g Ki8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zy ZWRtaW51XC52c1xzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSAx IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dnJlZGFuZFwudnNccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTld K30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge3ZyZWRvclwudnNccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlsw LTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZyZWR4b3JcLnZzXHMrdlswLTldKyxccyp2WzAtOV0rLFxz KnZbMC05XSt9IDEgfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjLTQu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3Zl Yy9yZWR1Yy9yZWR1Yy00LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl eCAwMDAwMDAwMDAwMC4uZjAwYTEyODI2YzYNCi0tLSAvZGV2L251bGwNCisr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3Zl Yy9yZWR1Yy9yZWR1Yy00LmMNCkBAIC0wLDAgKzEsNTkgQEANCisvKiB7IGRn LWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25z ICItbWFyY2g9cnYzMmdjdiAtbWFiaT1pbHAzMmQgLS1wYXJhbT1yaXNjdi1h dXRvdmVjLXByZWZlcmVuY2U9c2NhbGFibGUgLWZmYXN0LW1hdGggLWZuby12 ZWN0LWNvc3QtbW9kZWwiIH0gKi8NCisNCisjaW5jbHVkZSA8c3RkaW50LWdj Yy5oPg0KKw0KK3Vuc2lnbmVkIHNob3J0IF9fYXR0cmlidXRlX18oKG5vaXBh KSkNCithZGRfbG9vcCAodW5zaWduZWQgc2hvcnQgKngsIGludCBuLCB1bnNp Z25lZCBzaG9ydCByZXMpDQorew0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBu OyArK2kpDQorICAgIHJlcyArPSB4W2ldOw0KKyAgcmV0dXJuIHJlczsNCit9 DQorDQordW5zaWduZWQgc2hvcnQgX19hdHRyaWJ1dGVfXygobm9pcGEpKQ0K K21pbl9sb29wICh1bnNpZ25lZCBzaG9ydCAqeCwgaW50IG4sIHVuc2lnbmVk IHNob3J0IHJlcykNCit7DQorICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsr aSkNCisgICAgcmVzID0gcmVzIDwgeFtpXSA/IHJlcyA6IHhbaV07DQorICBy ZXR1cm4gcmVzOw0KK30NCisNCit1bnNpZ25lZCBzaG9ydCBfX2F0dHJpYnV0 ZV9fKChub2lwYSkpDQorbWF4X2xvb3AgKHVuc2lnbmVkIHNob3J0ICp4LCBp bnQgbiwgdW5zaWduZWQgc2hvcnQgcmVzKQ0KK3sNCisgIGZvciAoaW50IGkg PSAwOyBpIDwgbjsgKytpKQ0KKyAgICByZXMgPSByZXMgPiB4W2ldID8gcmVz IDogeFtpXTsNCisgIHJldHVybiByZXM7DQorfQ0KKw0KK3Vuc2lnbmVkIHNo b3J0IF9fYXR0cmlidXRlX18oKG5vaXBhKSkNCithbmRfbG9vcCAodW5zaWdu ZWQgc2hvcnQgKngsIGludCBuLCB1bnNpZ25lZCBzaG9ydCByZXMpDQorew0K KyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpDQorICAgIHJlcyAmPSB4 W2ldOw0KKyAgcmV0dXJuIHJlczsNCit9DQorDQordW5zaWduZWQgc2hvcnQg X19hdHRyaWJ1dGVfXygobm9pcGEpKQ0KK29yX2xvb3AgKHVuc2lnbmVkIHNo b3J0ICp4LCBpbnQgbiwgdW5zaWduZWQgc2hvcnQgcmVzKQ0KK3sNCisgIGZv ciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKQ0KKyAgICByZXMgfD0geFtpXTsN CisgIHJldHVybiByZXM7DQorfQ0KKw0KK3Vuc2lnbmVkIHNob3J0IF9fYXR0 cmlidXRlX18oKG5vaXBhKSkNCitlb3JfbG9vcCAodW5zaWduZWQgc2hvcnQg KngsIGludCBuLCB1bnNpZ25lZCBzaG9ydCByZXMpDQorew0KKyAgZm9yIChp bnQgaSA9IDA7IGkgPCBuOyArK2kpDQorICAgIHJlcyBePSB4W2ldOw0KKyAg cmV0dXJuIHJlczsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2cmVkc3VtXC52c1xzK3ZbMC05XSssXHMqdlswLTld Kyxccyp2WzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dnJlZG1heHVcLnZzXHMrdlswLTldKyxccyp2 WzAtOV0rLFxzKnZbMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2cmVkbWludVwudnNccyt2WzAtOV0r LFxzKnZbMC05XSssXHMqdlswLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZyZWRhbmRcLnZzXHMrdlsw LTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDEgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2cmVkb3JcLnZzXHMr dlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDEgfSB9ICovDQorLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2cmVkeG9yXC52 c1xzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSAxIH0gfSAqLw0K ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Y19ydW4tMS5jIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3JlZHVjL3JlZHVjX3J1 bi0xLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAw MC4uYjUwMGY4NTc1OTgNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1 Y19ydW4tMS5jDQpAQCAtMCwwICsxLDU2IEBADQorLyogeyBkZy1kbyBydW4g eyB0YXJnZXQgeyByaXNjdl92ZWN0b3IgfSB9IH0gKi8NCisvKiB7IGRnLWFk ZGl0aW9uYWwtb3B0aW9ucyAiLS1wYXJhbT1yaXNjdi1hdXRvdmVjLXByZWZl cmVuY2U9c2NhbGFibGUgLWZmYXN0LW1hdGggLWZuby12ZWN0LWNvc3QtbW9k ZWwiIH0gKi8NCisNCisjaW5jbHVkZSAicmVkdWMtMS5jIg0KKw0KKyNkZWZp bmUgTlVNX0VMRU1TKFRZUEUpICg3MyArIHNpemVvZiAoVFlQRSkpDQorDQor I2RlZmluZSBJTklUX1ZFQ1RPUihUWVBFKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwNCisgIFRZUEUgYVtOVU1fRUxFTVMgKFRZUEUpICsgMV07 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBmb3IgKGlu dCBpID0gMDsgaSA8IE5VTV9FTEVNUyAoVFlQRSkgKyAxOyBpKyspICAgICAg IFwNCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXA0KKyAgICAgIGFbaV0gPSAoKGkgKiAyKSAqIChp ICYgMSA/IDEgOiAtMSkgfCAzKTsgICAgICAgICBcDQorICAgICAgYXNtIHZv bGF0aWxlICgiIiA6OjogIm1lbW9yeSIpOyAgICAgICAgICAgICAgICAgIFwN CisgICAgfQ0KKw0KKyNkZWZpbmUgVEVTVF9SRURVQ19QTFVTKFRZUEUpICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICB7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAg SU5JVF9WRUNUT1IgKFRZUEUpOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQorICAgIFRZUEUgcjEgPSByZWR1Y19wbHVzXyMj VFlQRSAoYSwgTlVNX0VMRU1TIChUWVBFKSk7IFwNCisgICAgdm9sYXRpbGUg VFlQRSByMiA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K KyAgICBmb3IgKGludCBpID0gMDsgaSA8IE5VTV9FTEVNUyAoVFlQRSk7ICsr aSkgICAgICAgICBcDQorICAgICAgcjIgKz0gYVtpXTsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgaWYgKHIxICE9IHIy KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAg ICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQorICB9DQorDQorI2RlZmluZSBURVNUX1JFRFVDX01BWE1J TihUWVBFLCBOQU1FLCBDTVBfT1ApICAgICAgICAgICAgICAgICAgXA0KKyAg eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwNCisgICAgSU5JVF9WRUNUT1IgKFRZUEUpOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCisgICAgVFlQRSByMSA9IHJlZHVjXyMjTkFNRSMjXyMjVFlQRSAoYSwg TlVNX0VMRU1TIChUWVBFKSk7ICAgICBcDQorICAgIHZvbGF0aWxlIFRZUEUg cjIgPSAxMzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE5VTV9FTEVNUyAoVFlQRSk7 ICsraSkgICAgICAgICAgICAgICAgIFwNCisgICAgICByMiA9IGFbaV0gQ01Q X09QIHIyID8gYVtpXSA6IHIyOyAgICAgICAgICAgICAgICAgICAgICAgICBc DQorICAgIGlmIChyMSAhPSByMikgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgIF9fYnVpbHRpbl9hYm9y dCAoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN CisgIH0NCisNCisjZGVmaW5lIFRFU1RfUkVEVUNfQklUV0lTRShUWVBFLCBO QU1FLCBCSVRfT1ApICAgICAgICAgICAgICAgICBcDQorICB7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXA0KKyAgICBJTklUX1ZFQ1RPUiAoVFlQRSk7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICBU WVBFIHIxID0gcmVkdWNfIyNOQU1FIyNfIyNUWVBFIChhLCBOVU1fRUxFTVMg KFRZUEUpKTsgICAgIFwNCisgICAgdm9sYXRpbGUgVFlQRSByMiA9IDEzOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgIGZv ciAoaW50IGkgPSAwOyBpIDwgTlVNX0VMRU1TIChUWVBFKTsgKytpKSAgICAg ICAgICAgICAgICAgXA0KKyAgICAgIHIyIEJJVF9PUCBhW2ldOyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgaWYg KHIxICE9IHIyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQorICAgICAgX19idWlsdGluX2Fib3J0ICgpOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgfQ0KKw0K K2ludCBtYWluICgpDQorew0KKyAgVEVTVF9QTFVTIChURVNUX1JFRFVDX1BM VVMpDQorICBURVNUX01BWE1JTiAoVEVTVF9SRURVQ19NQVhNSU4pDQorICBU RVNUX0JJVFdJU0UgKFRFU1RfUkVEVUNfQklUV0lTRSkNCisNCisgIHJldHVy biAwOw0KK30NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcmVkdWMvcmVkdWNfcnVuLTIuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1 Yy9yZWR1Y19ydW4tMi5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMDAwMDAuLjNjMmY2MjU1N2IxDQotLS0gL2Rldi9udWxsDQorKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMv cmVkdWMvcmVkdWNfcnVuLTIuYw0KQEAgLTAsMCArMSw3OSBAQA0KKy8qIHsg ZGctZG8gcnVuIHsgdGFyZ2V0IHsgcmlzY3ZfdmVjdG9yIH0gfSB9ICovDQor LyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi0tcGFyYW09cmlzY3YtYXV0 b3ZlYy1wcmVmZXJlbmNlPXNjYWxhYmxlIiB9ICovDQorDQorI2luY2x1ZGUg InJlZHVjLTIuYyINCisNCisjZGVmaW5lIE5ST1dTIDUzDQorDQorLyogLWZm YXN0LW1hdGggZnV6eiBmb3IgUExVUy4gICovDQorI2RlZmluZSBDTVBfX0Zs b2F0MTYoWCwgWSkgKChYKSA+PSAoWSkgKiAwLjg3NSAmJiAoWCkgPD0gKFkp ICogMS4xMjUpDQorI2RlZmluZSBDTVBfZmxvYXQoWCwgWSkgKChYKSA9PSAo WSkpDQorI2RlZmluZSBDTVBfZG91YmxlKFgsIFkpICgoWCkgPT0gKFkpKQ0K KyNkZWZpbmUgQ01QX2ludDhfdChYLCBZKSAoKFgpID09IChZKSkNCisjZGVm aW5lIENNUF9pbnQxNl90KFgsIFkpICgoWCkgPT0gKFkpKQ0KKyNkZWZpbmUg Q01QX2ludDMyX3QoWCwgWSkgKChYKSA9PSAoWSkpDQorI2RlZmluZSBDTVBf aW50NjRfdChYLCBZKSAoKFgpID09IChZKSkNCisjZGVmaW5lIENNUF91aW50 OF90KFgsIFkpICgoWCkgPT0gKFkpKQ0KKyNkZWZpbmUgQ01QX3VpbnQxNl90 KFgsIFkpICgoWCkgPT0gKFkpKQ0KKyNkZWZpbmUgQ01QX3VpbnQzMl90KFgs IFkpICgoWCkgPT0gKFkpKQ0KKyNkZWZpbmUgQ01QX3VpbnQ2NF90KFgsIFkp ICgoWCkgPT0gKFkpKQ0KKw0KKyNkZWZpbmUgSU5JVF9NQVRSSVgoVFlQRSkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICBUWVBFIG1hdFtO Uk9XU11bTlVNX0VMRU1TIChUWVBFKV07ICAgICAgICAgICAgICAgICAgIFwN CisgIFRZUEUgcltOUk9XU107ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBOUk9XUzsg aSsrKSAgICAgICAgICAgICAgICAgICAgICBcDQorICAgIGZvciAoaW50IGog PSAwOyBqIDwgTlVNX0VMRU1TIChUWVBFKTsgaisrKSAgICAgICAgIFwNCisg ICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcDQorICAgICAgIG1hdFtpXVtqXSA9IGkgKyAo aiAqIDIpICogKGogJiAxID8gMSA6IC0xKTsgICAgIFwNCisgICAgICAgYXNt IHZvbGF0aWxlICgiIiA6OjogIm1lbW9yeSIpOyAgICAgICAgICAgICAgICAg XA0KKyAgICAgIH0NCisNCisjZGVmaW5lIFRFU1RfUkVEVUNfUExVUyhUWVBF KSAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgeyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQor ICAgIElOSVRfTUFUUklYIChUWVBFKTsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KKyAgICByZWR1Y19wbHVzXyMjVFlQRSAo bWF0LCByLCBOUk9XUyk7ICAgICAgICAgICAgICAgICBcDQorICAgIGZvciAo aW50IGkgPSAwOyBpIDwgTlJPV1M7IGkrKykgICAgICAgICAgICAgICAgICAg IFwNCisgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgIHZvbGF0aWxlIFRZ UEUgcjIgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAg ICAgZm9yIChpbnQgaiA9IDA7IGogPCBOVU1fRUxFTVMgKFRZUEUpOyArK2op ICAgICAgXA0KKyAgICAgICAgIHIyICs9IG1hdFtpXVtqXTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgIGlmICghQ01QXyMjVFlQ RSAocltpXSwgcjIpKSAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICAg ICBfX2J1aWx0aW5fYWJvcnQgKCk7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KKyAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgfQ0KKw0KKyNkZWZp bmUgVEVTVF9SRURVQ19NQVhNSU4oVFlQRSwgTkFNRSwgQ01QX09QKSAgICAg ICAgICBcDQorICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCisgICAgSU5JVF9NQVRSSVggKFRZUEUp OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQor ICAgIHJlZHVjXyMjTkFNRSMjXyMjVFlQRSAobWF0LCByLCBOUk9XUyk7ICAg ICAgICAgICAgIFwNCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOUk9XUzsg aSsrKSAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgIHsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCisgICAgICAgdm9sYXRpbGUgVFlQRSByMiA9IG1hdFtpXVswXTsgICAg ICAgICAgICAgICAgICAgXA0KKyAgICAgICBmb3IgKGludCBqID0gMDsgaiA8 IE5VTV9FTEVNUyAoVFlQRSk7ICsraikgICAgICBcDQorICAgICAgICAgcjIg PSBtYXRbaV1bal0gQ01QX09QIHIyID8gbWF0W2ldW2pdIDogcjI7ICAgIFwN CisgICAgICAgaWYgKHJbaV0gIT0gcjIpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KKyAgICAgICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsg ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgfSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KKyAgICB9DQorDQorI2RlZmluZSBURVNUX1JFRFVDX0JJVFdJU0Uo VFlQRSwgTkFNRSwgQklUX09QKSAgICAgICAgIFwNCisgIHsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K KyAgICBJTklUX01BVFJJWCAoVFlQRSk7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCisgICAgcmVkdWNfIyNOQU1FIyNfIyNU WVBFIChtYXQsIHIsIE5ST1dTKTsgICAgICAgICAgICAgXA0KKyAgICBmb3Ig KGludCBpID0gMDsgaSA8IE5ST1dTOyBpKyspICAgICAgICAgICAgICAgICAg ICBcDQorICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgICB2b2xhdGlsZSBU WVBFIHIyID0gbWF0W2ldWzBdOyAgICAgICAgICAgICAgICAgICBcDQorICAg ICAgIGZvciAoaW50IGogPSAwOyBqIDwgTlVNX0VMRU1TIChUWVBFKTsgKytq KSAgICAgIFwNCisgICAgICAgICByMiBCSVRfT1AgbWF0W2ldW2pdOyAgICAg ICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgICBpZiAocltpXSAhPSBy MikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAg ICAgX19idWlsdGluX2Fib3J0ICgpOyAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCisgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgIH0NCisNCitpbnQg bWFpbiAoKQ0KK3sNCisgIFRFU1RfUExVUyAoVEVTVF9SRURVQ19QTFVTKQ0K KyAgVEVTVF9NQVhNSU4gKFRFU1RfUkVEVUNfTUFYTUlOKQ0KKw0KKyAgcmV0 dXJuIDA7DQorfQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Y19ydW4tMy5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Jl ZHVjL3JlZHVjX3J1bi0zLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl eCAwMDAwMDAwMDAwMC4uZDFiMjJjMGQ2OWENCi0tLSAvZGV2L251bGwNCisr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3Zl Yy9yZWR1Yy9yZWR1Y19ydW4tMy5jDQpAQCAtMCwwICsxLDQ5IEBADQorLyog eyBkZy1kbyBydW4geyB0YXJnZXQgeyByaXNjdl92ZWN0b3IgfSB9IH0gKi8N CisvKiB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLS1wYXJhbT1yaXNjdi1h dXRvdmVjLXByZWZlcmVuY2U9c2NhbGFibGUgLWZmYXN0LW1hdGggLWZuby12 ZWN0LWNvc3QtbW9kZWwiIH0gKi8NCisNCisjaW5jbHVkZSAicmVkdWMtMy5j Ig0KKw0KKyNkZWZpbmUgTiAweDExMDANCisNCitpbnQNCittYWluICh2b2lk KQ0KK3sNCisgIHVuc2lnbmVkIHNob3J0IHhbTl07DQorICBmb3IgKGludCBp ID0gMDsgaSA8IE47ICsraSkNCisgICAgeFtpXSA9IChpICsgMSkgKiAoaSAr IDIpOw0KKw0KKyAgaWYgKGFkZF9sb29wICh4LCAwKSAhPSAwDQorICAgICAg fHwgYWRkX2xvb3AgKHgsIDExKSAhPSA1NzINCisgICAgICB8fCBhZGRfbG9v cCAoeCwgMHgxMDApICE9IDIyMDE2DQorICAgICAgfHwgYWRkX2xvb3AgKHgs IDB4ZmZmKSAhPSAyMDQ4MA0KKyAgICAgIHx8IG1heF9sb29wICh4LCAwKSAh PSAwDQorICAgICAgfHwgbWF4X2xvb3AgKHgsIDExKSAhPSAxMzINCisgICAg ICB8fCBtYXhfbG9vcCAoeCwgMHgxMDApICE9IDY1MjgwDQorICAgICAgfHwg bWF4X2xvb3AgKHgsIDB4ZmZmKSAhPSA2NTUwNA0KKyAgICAgIHx8IG9yX2xv b3AgKHgsIDApICE9IDANCisgICAgICB8fCBvcl9sb29wICh4LCAxMSkgIT0g MHhmZQ0KKyAgICAgIHx8IG9yX2xvb3AgKHgsIDB4ODApICE9IDB4N2ZmZQ0K KyAgICAgIHx8IG9yX2xvb3AgKHgsIDB4YjQpICE9IDB4N2ZmZQ0KKyAgICAg IHx8IG9yX2xvb3AgKHgsIDB4YjUpICE9IDB4ZmZmZQ0KKyAgICAgIHx8IGVv cl9sb29wICh4LCAwKSAhPSAwDQorICAgICAgfHwgZW9yX2xvb3AgKHgsIDEx KSAhPSAweGU4DQorICAgICAgfHwgZW9yX2xvb3AgKHgsIDB4MTAwKSAhPSAw eGNmMDANCisgICAgICB8fCBlb3JfbG9vcCAoeCwgMHhmZmYpICE9IDB4YTAw MCkNCisgICAgX19idWlsdGluX2Fib3J0ICgpOw0KKw0KKyAgZm9yIChpbnQg aSA9IDA7IGkgPCBOOyArK2kpDQorICAgIHhbaV0gPSB+eFtpXTsNCisNCisg IGlmIChtaW5fbG9vcCAoeCwgMCkgIT0gNjU1MzUNCisgICAgICB8fCBtaW5f bG9vcCAoeCwgMTEpICE9IDY1NDAzDQorICAgICAgfHwgbWluX2xvb3AgKHgs IDB4MTAwKSAhPSAyNTUNCisgICAgICB8fCBtaW5fbG9vcCAoeCwgMHhmZmYp ICE9IDMxDQorICAgICAgfHwgYW5kX2xvb3AgKHgsIDApICE9IDB4ZmZmZg0K KyAgICAgIHx8IGFuZF9sb29wICh4LCAxMSkgIT0gMHhmZjAxDQorICAgICAg fHwgYW5kX2xvb3AgKHgsIDB4ODApICE9IDB4ODAwMQ0KKyAgICAgIHx8IGFu ZF9sb29wICh4LCAweGI0KSAhPSAweDgwMDENCisgICAgICB8fCBhbmRfbG9v cCAoeCwgMHhiNSkgIT0gMSkNCisgICAgX19idWlsdGluX2Fib3J0ICgpOw0K Kw0KKyAgcmV0dXJuIDA7DQorfQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Y19y dW4tNC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9h dXRvdmVjL3JlZHVjL3JlZHVjX3J1bi00LmMNCm5ldyBmaWxlIG1vZGUgMTAw NjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYzE3ZTEyNWE3NjMNCi0tLSAvZGV2 L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYXV0b3ZlYy9yZWR1Yy9yZWR1Y19ydW4tNC5jDQpAQCAtMCwwICsxLDY2 IEBADQorLyogeyBkZy1kbyBydW4geyB0YXJnZXQgeyByaXNjdl92ZWN0b3Ig fSB9IH0gKi8NCisvKiB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLS1wYXJh bT1yaXNjdi1hdXRvdmVjLXByZWZlcmVuY2U9c2NhbGFibGUgLWZmYXN0LW1h dGggLWZuby12ZWN0LWNvc3QtbW9kZWwiIH0gKi8NCisNCisjaW5jbHVkZSAi cmVkdWMtNC5jIg0KKw0KKyNkZWZpbmUgTiAweDExMDANCisNCitpbnQNCitt YWluICh2b2lkKQ0KK3sNCisgIHVuc2lnbmVkIHNob3J0IHhbTl07DQorICBm b3IgKGludCBpID0gMDsgaSA8IE47ICsraSkNCisgICAgeFtpXSA9IChpICsg MSkgKiAoaSArIDIpOw0KKw0KKyAgaWYgKGFkZF9sb29wICh4LCAwLCAxMCkg IT0gMTANCisgICAgICB8fCBhZGRfbG9vcCAoeCwgMTEsIDQyKSAhPSA2MTQN CisgICAgICB8fCBhZGRfbG9vcCAoeCwgMHgxMDAsIDg0KSAhPSAyMjEwMA0K KyAgICAgIHx8IGFkZF9sb29wICh4LCAweGZmZiwgMjApICE9IDIwNTAwDQor ICAgICAgfHwgbWF4X2xvb3AgKHgsIDAsIDEwKSAhPSAxMA0KKyAgICAgIHx8 IG1heF9sb29wICh4LCAxMSwgMTMxKSAhPSAxMzINCisgICAgICB8fCBtYXhf bG9vcCAoeCwgMTEsIDEzMykgIT0gMTMzDQorICAgICAgfHwgbWF4X2xvb3Ag KHgsIDB4MTAwLCA2NTI3OSkgIT0gNjUyODANCisgICAgICB8fCBtYXhfbG9v cCAoeCwgMHgxMDAsIDY1MjgxKSAhPSA2NTI4MQ0KKyAgICAgIHx8IG1heF9s b29wICh4LCAweGZmZiwgNjU1MDMpICE9IDY1NTA0DQorICAgICAgfHwgbWF4 X2xvb3AgKHgsIDB4ZmZmLCA2NTUwNSkgIT0gNjU1MDUNCisgICAgICB8fCBv cl9sb29wICh4LCAwLCAweDcxKSAhPSAweDcxDQorICAgICAgfHwgb3JfbG9v cCAoeCwgMTEsIDApICE9IDB4ZmUNCisgICAgICB8fCBvcl9sb29wICh4LCAx MSwgMHhiM2MpICE9IDB4YmZlDQorICAgICAgfHwgb3JfbG9vcCAoeCwgMHg4 MCwgMCkgIT0gMHg3ZmZlDQorICAgICAgfHwgb3JfbG9vcCAoeCwgMHg4MCwg MSkgIT0gMHg3ZmZmDQorICAgICAgfHwgb3JfbG9vcCAoeCwgMHhiNCwgMCkg IT0gMHg3ZmZlDQorICAgICAgfHwgb3JfbG9vcCAoeCwgMHhiNCwgMSkgIT0g MHg3ZmZmDQorICAgICAgfHwgb3JfbG9vcCAoeCwgMHhiNSwgMCkgIT0gMHhm ZmZlDQorICAgICAgfHwgb3JfbG9vcCAoeCwgMHhiNSwgMSkgIT0gMHhmZmZm DQorICAgICAgfHwgZW9yX2xvb3AgKHgsIDAsIDB4M2UpICE9IDB4M2UNCisg ICAgICB8fCBlb3JfbG9vcCAoeCwgMTEsIDApICE9IDB4ZTgNCisgICAgICB8 fCBlb3JfbG9vcCAoeCwgMTEsIDB4MWZmKSAhPSAweDExNw0KKyAgICAgIHx8 IGVvcl9sb29wICh4LCAweDEwMCwgMCkgIT0gMHhjZjAwDQorICAgICAgfHwg ZW9yX2xvb3AgKHgsIDB4MTAwLCAweGVlZSkgIT0gMHhjMWVlDQorICAgICAg fHwgZW9yX2xvb3AgKHgsIDB4ZmZmLCAwKSAhPSAweGEwMDANCisgICAgICB8 fCBlb3JfbG9vcCAoeCwgMHhmZmYsIDB4ODg4OCkgIT0gMHgyODg4KQ0KKyAg ICBfX2J1aWx0aW5fYWJvcnQgKCk7DQorDQorICBmb3IgKGludCBpID0gMDsg aSA8IE47ICsraSkNCisgICAgeFtpXSA9IH54W2ldOw0KKw0KKyAgaWYgKG1p bl9sb29wICh4LCAwLCAxMDAwMCkgIT0gMTAwMDANCisgICAgICB8fCBtaW5f bG9vcCAoeCwgMTEsIDY1NDA0KSAhPSA2NTQwMw0KKyAgICAgIHx8IG1pbl9s b29wICh4LCAxMSwgNjU0MDIpICE9IDY1NDAyDQorICAgICAgfHwgbWluX2xv b3AgKHgsIDB4MTAwLCAyNTYpICE9IDI1NQ0KKyAgICAgIHx8IG1pbl9sb29w ICh4LCAweDEwMCwgMjU0KSAhPSAyNTQNCisgICAgICB8fCBtaW5fbG9vcCAo eCwgMHhmZmYsIDMyKSAhPSAzMQ0KKyAgICAgIHx8IG1pbl9sb29wICh4LCAw eGZmZiwgMzApICE9IDMwDQorICAgICAgfHwgYW5kX2xvb3AgKHgsIDAsIDB4 MTIzNCkgIT0gMHgxMjM0DQorICAgICAgfHwgYW5kX2xvb3AgKHgsIDExLCAw eGZmZmYpICE9IDB4ZmYwMQ0KKyAgICAgIHx8IGFuZF9sb29wICh4LCAxMSwg MHhjZGVmKSAhPSAweGNkMDENCisgICAgICB8fCBhbmRfbG9vcCAoeCwgMHg4 MCwgMHhmZmZmKSAhPSAweDgwMDENCisgICAgICB8fCBhbmRfbG9vcCAoeCwg MHg4MCwgMHhmZmZlKSAhPSAweDgwMDANCisgICAgICB8fCBhbmRfbG9vcCAo eCwgMHhiNCwgMHhmZmZmKSAhPSAweDgwMDENCisgICAgICB8fCBhbmRfbG9v cCAoeCwgMHhiNCwgMHhmZmZlKSAhPSAweDgwMDANCisgICAgICB8fCBhbmRf bG9vcCAoeCwgMHhiNSwgMHhmZmZmKSAhPSAxDQorICAgICAgfHwgYW5kX2xv b3AgKHgsIDB4YjUsIDB4ZmZmZSkgIT0gMCkNCisgICAgX19idWlsdGluX2Fi b3J0ICgpOw0KKw0KKyAgcmV0dXJuIDA7DQorfQ0KZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvcnZ2LmV4cCBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvcnZ2LmV4cA0KaW5k ZXggMTk1ODlmYTk2MzguLjUzMmMxN2M0MDY1IDEwMDY0NA0KLS0tIGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9ydnYuZXhwDQorKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3J2di5leHAN CkBAIC03MSw2ICs3MSw4IEBAIGZvcmVhY2ggb3AgJEFVVE9WRUNfVEVTVF9P UFRTIHsNCiAgICAgIiIgIiRvcCINCiAgIGRnLXJ1bnRlc3QgW2xzb3J0IFtn bG9iIC1ub2NvbXBsYWluICRzcmNkaXIvJHN1YmRpci9hdXRvdmVjL3Rlcm5v cC8qLlxbY1NcXV1dIFwNCiAgICAgIiIgIiRvcCINCisgIGRnLXJ1bnRlc3Qg W2xzb3J0IFtnbG9iIC1ub2NvbXBsYWluICRzcmNkaXIvJHN1YmRpci9hdXRv dmVjL3JlZHVjLyouXFtjU1xdXV0gXA0KKyAgICAiIiAiJG9wIg0KIH0NCg0K ICMgd2lkZW5pbmcgb3BlcmF0aW9uIG9ubHkgdGVzdCBvbiBMTVVMIDwgOA0K LS0gDQoyLjM2LjMNCg0K ------=_001_NextPart713613727838_=------