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 28DD33856969 for ; Fri, 21 Jul 2023 03:11:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 28DD33856969 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: bizesmtp91t1689909070tgo0fhaz Received: from LAPTOP-EPITNQBU ( [113.104.214.112]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 21 Jul 2023 11:11:08 +0800 (CST) X-QQ-SSF: 01400000000000G0U000000A0000000 X-QQ-FEAT: RrZlkntZBfmZfrSdL1ELe6RcOqJ5cKy9ThGsOSRlmLHQLO88bJPez6TSHGOJ8 TKCBk23dorEOcXI4cv/MmXK+9G2IiHrJ5GbHP3HqR1amha+wKa429Swh+j/xBmxAR8mwvJn zbUyNrI7RfOPyj6jkfLibDY+epoV8Wp7zIkEv6L5SjhCmTqgntmqL38okA248sr/JAE+ahW SjQ08obM6+AHMAPaUkj4d7APsG6k9dCFR9//jgZZUzXwBUjXIOJCMN6seYXat+yyfiNklPk w4+FUi+PlvPX5l2Aqupbkzis6XYHXGd/yNe48SsltpXH1tSgUDY4rfHhMh7CZVnMl8rZtbT qoqE5hXF61abxVs3lkt5nK+cs5vo60HwUcM2q7Z7XnBreW0itnKG34grM9dXODwjh8FCf0W c2EaZzxL9DoSe0Ra4wGehQ== X-QQ-GoodBg: 2 X-BIZMAIL-ID: 6334020886550004846 Date: Fri, 21 Jul 2023 11:11:08 +0800 From: "juzhe.zhong@rivai.ai" To: pan2.li , gcc-patches Cc: Kito.cheng , pan2.li , yanzhang.wang Subject: Re: [PATCH v4] RISC-V: Support CALL for RVV floating-point dynamic rounding References: <20230719032822.85817-1-pan2.li@intel.com>, <20230720064307.1943091-1-pan2.li@intel.com> X-Priority: 3 X-GUID: 5113DD9A-FAE9-4923-AA6D-2A415F8D2074 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart455468604285_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-8.5 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,MIME_BASE64_TEXT,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,TXREP,T_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_NextPart455468604285_=---- Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: base64 LSAgICAgIGlmIChtb2RlID09IEZSTV9NT0RFX0RZTl9FWElUICYmIHByZXZf bW9kZSAhPSBGUk1fTU9ERV9EWU4pCisgICAgICBpZiAobW9kZSA9PSBGUk1f TU9ERV9EWU5fQ0FMTCAmJiBwcmV2X21vZGUgIT0gRlJNX01PREVfRFlOKQog CS8qIE5vIG5lZWQgdG8gZW1pdCB3aGVuIHByZXYgbW9kZSBpcyBEWU4gYWxy ZWFkeS4gICovCi0JZW1pdF9pbnNuIChnZW5fZnNybXNpX3Jlc3RvcmVfZXhp dCAoYmFja3VwX3JlZykpOworCWVtaXRfaW5zbiAoZ2VuX2Zzcm1zaV9yZXN0 b3JlX3ZvbGF0aWxlIChiYWNrdXBfcmVnKSk7DQoNCk5vLCBJIGRvbid0IHRo aW5rIGZvciBEWU5fQ0FMTCwgeW91IG5lZWQgdG8gZW1pdCByZXN0b3JlX3Zv bGF0aWxlLg0KSXQgc2hvdWxkIGJlIG5vcm1hbCByZXN0b3JlLg0KDQoNCi0o ZGVmaW5lX2luc24gImZzcm1zaV9yZXN0b3JlX2V4aXQiCisoZGVmaW5lX2lu c24gImZzcm1zaV9yZXN0b3JlX3ZvbGF0aWxlIg0KTm8gbmVlZCB0byBjaGFu Z2UgaXQsIHJlY292ZXIgaXQgYmFjayB0byByZXN0b3JlX2V4aXQuDQpUaGUg dm9sYXRpbGUgcmVzdG9yZSBzaG91bGQgYWx3YXlzIGJlIG9ubHkgdXNlZCBm b3IgZXhpdC4NCg0KDQpBZGQgb25lIG1vcmUgdGVzdDoNCg0KdmZhZGQgKHN0 YXRpYykNCg0KQ0FMTA0KDQouLi4uDQouLi4uICAgICAgICAgICAgICAgICAg ICAgICAgIC0+ICAgYWRkIGEgYnVuY2ggaW50ZWdlciBSVlYgaW50cmluc2lj IChJZGVhbGx5IGl0IHNob3VsZCBiZSBvbmx5IG9uZSBiYWNrdXAgZnJtIGlu c24gYWZ0ZXIgQ0FMTCkuDQouLi4NCg0KDQp2ZmFkZCAoc3RhdGljKQ0KDQoN Cg0KDQoNCg0KanV6aGUuemhvbmdAcml2YWkuYWkNCiANCkZyb206IHBhbjIu bGkNCkRhdGU6IDIwMjMtMDctMjAgMTQ6NDMNClRvOiBnY2MtcGF0Y2hlcw0K Q0M6IGp1emhlLnpob25nOyBraXRvLmNoZW5nOyBwYW4yLmxpOyB5YW56aGFu Zy53YW5nDQpTdWJqZWN0OiBbUEFUQ0ggdjRdIFJJU0MtVjogU3VwcG9ydCBD QUxMIGZvciBSVlYgZmxvYXRpbmctcG9pbnQgZHluYW1pYyByb3VuZGluZw0K RnJvbTogUGFuIExpIDxwYW4yLmxpQGludGVsLmNvbT4NCiANCkluIGJhc2lj IGR5bmFtaWMgcm91bmRpbmcgbW9kZSwgd2Ugc2ltcGx5IGlnbm9yZSBjYWxs IGluc3RydWN0aW9ucyBhbmQNCndlIHdvdWxkIGxpa2UgdG8gdGFrZSBjYXJl IG9mIGNhbGwgaW4gdGhpcyBQQVRDSC4NCiANCkR1cmluZyB0aGUgY2FsbCwg dGhlIGZybSBtYXkgYmUgdXBkYXRlZCBvciBrZWVwIGFzIGlzLiBUaHVzLCB3 ZSBtdXN0DQptYWtlIHN1cmUgYXQgbGVhc3QgMiB0aGluZ3MuDQogDQoxLiBU aGUgc3RhdGljIGZybSBiZWZvcmUgY2FsbCBzaG91bGQgbm90IHBvbGx1dGUg dGhlIGZybSB2YWx1ZSBpbiBjYWxsLg0KMi4gVGhlIHVwZGF0ZWQgZnJtIHZh bHVlIGluIGNhbGwgc2hvdWxkIGJlIHN0aWNreSBhZnRlciBjYWxsIGNvbXBs ZXRlZC4NCiANCldlIHdpbGwgcGVyZnJvbSBzb21lIHN0ZXBzIHRvIG1ha2Ug YWJvdmUgaGFwcGVuLg0KIA0KMS4gTWFyayBjYWxsIGluc3RydWN0aW9uIHdp dGggbmV3IG1vZGUgRFlOX0NBTEwuDQoyLiBNYXJrIHRoZSBpbnN0cnVjdGlv biBhZnRlciBDQUxMIGZyb20gTk9ORSB0byBEWU4uDQozLiBXaGVuIGVtaXQg Zm9yIGEgRFlOX0NBTEwsIHdlIHdpbGwgcmVzdG9yZSB0aGUgZnJtIHZhbHVl Lg0KNC4gV2hlbiBlbWl0IGZyb20gYSBEWU5fQ0FMTCwgd2Ugd2lsbCBiYWNr dXAgdGhlIGZybSB2YWx1ZS4NCiANCkxldCdzIHRha2UgYSBmbG93IGZvciB0 aGlzLg0KIA0KICAgICAgICAgICArLS0tLS0tLS0tLS0tLSsNCiAgICAgICAg ICAgfCBFbnRyeSAoRFlOKSB8IDwtIGZycm0gYTUNCiAgICAgICAgICAgKy0t LS0tLS0tLS0tLS0rDQogICAgICAgICAgLyAgICAgICAgICAgICAgIFwNCiAg ICArLS0tLS0tLSsgICAgICAgICAgICAgKy0tLS0tLS0tLS0tKw0KICAgIHwg VkZBREQgfCAgICAgICAgICAgICB8IFZGQUREIFJUWiB8ICA8LSBmc3JtaSAx KFJUWikNCiAgICArLS0tLS0tLSsgICAgICAgICAgICAgKy0tLS0tLS0tLS0t Kw0KICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwNCiAgICArLS0t LS0tLSsgICAgICAgICAgICAgKy0tLS0tLS0tLS0tKw0KICAgIHwgQ0FMTCAg fCAgICAgICAgICAgICB8IENBTEwgICAgICB8ICA8LSBmc3JtIGE1DQogICAg Ky0tLS0tLS0rICAgICAgICAgICAgICstLS0tLS0tLS0tLSsNCiAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICB8DQorLS0tLS0tLS0tLS0rICAg ICAgICAgICAgICAgICArLS0tLS0tLSsNCnwgU0hJRlQgICAgIHwgPC0gZnJy bSBhNSAgICAgIHwgVkZBREQgfCAgPC0gZnJybSBhNQ0KKy0tLS0tLS0tLS0t KyAgICAgICAgICAgICAgICAgKy0tLS0tLS0rDQogICAgICAgICAgfCAgICAg ICAgICAgICAgICAgIC8NCistLS0tLS0tLS0tLSsgICAgICAgICAgICAgICAv DQp8IFZGQUREIFJVUCB8IDwtIGZzcm0xIDMoUlVQKQ0KKy0tLS0tLS0tLS0t KyAgICAgICAgICAgICAvDQogICAgICAgICAgIFwgICAgICAgICAgICAgLw0K ICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tKw0KICAgICAgICAgICAg fCBFeGl0IChEWU5fRVhJVCkgfCA8LSBmc3JtIGE1DQogICAgICAgICAgICAr LS0tLS0tLS0tLS0tLS0tLS0rDQogDQpQbGVhc2UgKk5PVEUqIHNvbWUgY29y biBjYXNlcyBsaWtlIG5vIGluc3RydWN0aW9uIGFmdGVyIGEgY2FsbCBpcyBu b3QNCndlbGwgaGFuZGxlZCwgYW5kIHdpbGwgYmUgY292ZXJyZWQgaW4gYW5v dGhlciBQQVRDSChzKSBzb29uLg0KIA0KU2lnbmVkLW9mZi1ieTogUGFuIExp IDxwYW4yLmxpQGludGVsLmNvbT4NCkNvLUF1dGhvcmVkLUJ5OiBKdXpoZS1a aG9uZyA8anV6aGUuemhvbmdAcml2YWkuYWk+DQogDQpnY2MvQ2hhbmdlTG9n Og0KIA0KKiBjb25maWcvcmlzY3YvcmlzY3YuY2MgKERZTkFNSUNfRlJNX1JU TCk6IE5ldyBtYWNyby4NCihTVEFUSUNfRlJNX1ApOiBEaXR0by4NCihzdHJ1 Y3QgbW9kZV9zd2l0Y2hpbmdfaW5mbyk6IE5ldyBzdHJ1Y3QgZm9yIG1vZGUg c3dpdGNoaW5nLg0KKHN0cnVjdCBtYWNoaW5lX2Z1bmN0aW9uKTogQWRkIG5l dyBmaWVsZCBtb2RlIHN3aXRjaGluZy4NCihyaXNjdl9lbWl0X2ZybV9tb2Rl X3NldCk6IEFkZCBEWU5fQ0FMTCBlbWl0Lg0KKHJpc2N2X2ZybV9tb2RlX25l ZWRlZCk6IE5ldyBmdW5jdGlvbiBmb3IgZnJtIG1vZGUgbmVlZGVkLg0KKHJp c2N2X21vZGVfbmVlZGVkKTogRXh0cmFjIGZ1bmN0aW9uIGZvciBmcm0uDQoo cmlzY3ZfZnJtX21vZGVfYWZ0ZXIpOiBBZGQgRFlOX0NBTEwgYWZ0ZXIuDQoq IGNvbmZpZy9yaXNjdi92ZWN0b3IubWQgKGZybV9tb2RlKTogQWRkIGR5bl9j YWxsLg0KKGZzcm1zaV9yZXN0b3JlX2V4aXQpOiBSZW5hbWUgdG8gX3ZvbGF0 aWxlLg0KKGZzcm1zaV9yZXN0b3JlX3ZvbGF0aWxlKTogTGlrZXdpc2UuDQog DQpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCiANCiogZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0LTcuYzogQWRq dXN0DQp0ZXN0IGNhc2VzLg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTMzLmM6IE5ldyB0ZXN0Lg0KKiBn Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTM0LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM1LmM6IE5ldyB0ZXN0Lg0K KiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTM2LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM3LmM6IE5ldyB0ZXN0 Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTM4LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM5LmM6IE5ldyB0 ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTQwLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQxLmM6IE5l dyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTQyLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQzLmM6 IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTQ0LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ1 LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ2LmM6IE5ldyB0ZXN0Lg0KKiBnY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTQ3LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ4LmM6IE5ldyB0ZXN0Lg0KKiBn Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTQ5LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTUwLmM6IE5ldyB0ZXN0Lg0K KiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTUxLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTUyLmM6IE5ldyB0ZXN0 Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTUzLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU0LmM6IE5ldyB0 ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTU1LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU2LmM6IE5l dyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTU3LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU4LmM6 IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTU5LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYw LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTYxLmM6IE5ldyB0ZXN0Lg0KKiBnY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTYyLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYzLmM6IE5ldyB0ZXN0Lg0KKiBn Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTY0LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY1LmM6IE5ldyB0ZXN0Lg0K KiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTY2LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY3LmM6IE5ldyB0ZXN0 Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTY4LmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY5LmM6IE5ldyB0 ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTcwLmM6IE5ldyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTcxLmM6IE5l dyB0ZXN0Lg0KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWZybS1ydW4tNC5jOiBOZXcgdGVzdC4NCiogZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0tcnVuLTUuYzogTmV3IHRlc3Qu DQotLS0NCmdjYy9jb25maWcvcmlzY3YvcmlzY3YuY2MgICAgICAgICAgICAg ICAgICAgICB8IDEwMCArKysrKysrKysrKysrKysrLS0NCmdjYy9jb25maWcv cmlzY3YvdmVjdG9yLm1kICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQ0K Li4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTMzLmMgICAg IHwgIDMxICsrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTM0LmMgICAgIHwgIDMyICsrKysrKw0KLi4uL3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTM1LmMgICAgIHwgIDMyICsrKysrKw0K Li4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM2LmMgICAg IHwgIDI5ICsrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tMzcuYyAgICAgfCAgMzYgKysrKysrKw0KLi4uL3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTM4LmMgICAgIHwgIDM0ICsrKysrKw0K Li4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM5LmMgICAg IHwgIDM2ICsrKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS00MC5jICAgICB8ICAzNCArKysrKysNCi4uLi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS00MS5jICAgICB8ICAzNyArKysrKysr DQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDIuYyAg ICAgfCAgMzcgKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTQzLmMgICAgIHwgIDM4ICsrKysrKysNCi4uLi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00NC5jICAgICB8ICA0MCArKysr KysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDUu YyAgICAgfCAgMzUgKysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZHluYW1pYy1mcm0tNDYuYyAgICAgfCAgMzUgKysrKysrDQouLi4vcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDcuYyAgICAgfCAgMzYgKysr KysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ4 LmMgICAgIHwgIDM2ICsrKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS00OS5jICAgICB8ICAzNiArKysrKysrDQouLi4vcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTAuYyAgICAgfCAgMzYg KysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTUxLmMgICAgIHwgIDM2ICsrKysrKysNCi4uLi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS01Mi5jICAgICB8ICAzNiArKysrKysrDQouLi4v cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTMuYyAgICAgfCAg MzggKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTU0LmMgICAgIHwgIDM4ICsrKysrKysNCi4uLi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS01NS5jICAgICB8ICAzOCArKysrKysrDQou Li4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTYuYyAgICAg fCAgMzggKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTU3LmMgICAgIHwgIDM4ICsrKysrKysNCi4uLi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS01OC5jICAgICB8ICAzOCArKysrKysr DQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTkuYyAg ICAgfCAgMzggKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTYwLmMgICAgIHwgIDM4ICsrKysrKysNCi4uLi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02MS5jICAgICB8ICAzOCArKysr KysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNjIu YyAgICAgfCAgMzggKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTYzLmMgICAgIHwgIDM4ICsrKysrKysNCi4uLi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02NC5jICAgICB8ICAzOCAr KysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NjUuYyAgICAgfCAgMzggKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTY2LmMgICAgIHwgIDM4ICsrKysrKysNCi4uLi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02Ny5jICAgICB8ICAz OCArKysrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tNjguYyAgICAgfCAgMzggKysrKysrKw0KLi4uL3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTY5LmMgICAgIHwgIDMxICsrKysrKw0KLi4u L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTcwLmMgICAgIHwg IDI4ICsrKysrDQouLi4vcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tNzEuYyAgICAgfCAgMjggKysrKysNCi4uLi9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1mcm0taW5zZXJ0LTcuYyB8ICAgNSArLQ0KLi4uL3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1ydW4tNC5jICAgIHwgIDgyICsr KysrKysrKysrKysrDQouLi4vcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZnJtLXJ1bi01LmMgICAgfCAgODMgKysrKysrKysrKysrKysrDQo0NCBmaWxl cyBjaGFuZ2VkLCAxNjU3IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygt KQ0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zMy5j DQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM0LmMN CmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzUuYw0K Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zNi5jDQpj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM3LmMNCmNy ZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzguYw0KY3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zOS5jDQpjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQwLmMNCmNyZWF0 ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDEuYw0KY3JlYXRl IG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00Mi5jDQpjcmVhdGUg bW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQzLmMNCmNyZWF0ZSBt b2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDQuYw0KY3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00NS5jDQpjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ2LmMNCmNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDcuYw0KY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00OC5jDQpjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ5LmMNCmNyZWF0ZSBtb2RlIDEw MDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTAuYw0KY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS01MS5jDQpjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTUyLmMNCmNyZWF0ZSBtb2RlIDEwMDY0 NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZHluYW1pYy1mcm0tNTMuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0 IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS01NC5jDQpjcmVhdGUgbW9kZSAxMDA2NDQg Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTU1LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBn Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tNTYuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS01Ny5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTU4LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tNTkuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS02MC5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTYxLmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQt ZHluYW1pYy1mcm0tNjIuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS02My5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTY0LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tNjUuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS02Ni5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTY3LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tNjguYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS02OS5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTcwLmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1m cm0tNzEuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0tcnVuLTQu Yw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0tcnVuLTUuYw0KIA0K ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YuY2MgYi9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LmNjDQppbmRleCAzMzJmYTcyMGYwMS4uNWZm ZDg5NDViNmIgMTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LmNjDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNjDQpAQCAtOTAs NiArOTAsMTIgQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZ SU5HMy4gIElmIG5vdCBzZWUNCi8qIFRydWUgaWYgYml0IEJJVCBpcyBzZXQg aW4gVkFMVUUuICAqLw0KI2RlZmluZSBCSVRTRVRfUChWQUxVRSwgQklUKSAo KChWQUxVRSkgJiAoMVVMTCA8PCAoQklUKSkpICE9IDApDQorLyogRXh0cmFj dCB0aGUgYmFja3VwIGR5bmFtaWMgZnJtIHJ0bC4gICovDQorI2RlZmluZSBE WU5BTUlDX0ZSTV9SVEwoYykgKChjKS0+bWFjaGluZS0+bW9kZV9zd19pbmZv LmR5bmFtaWNfZnJtKQ0KKw0KKy8qIFRydWUgdGhlIG1vZGUgc3dpdGNoaW5n IGhhcyBzdGF0aWMgZnJtLCBvciBmYWxzZS4gICovDQorI2RlZmluZSBTVEFU SUNfRlJNX1AoYykgKChjKS0+bWFjaGluZS0+bW9kZV9zd19pbmZvLnN0YXRp Y19mcm1fcCkNCisNCi8qIEluZm9ybWF0aW9uIGFib3V0IGEgZnVuY3Rpb24n cyBmcmFtZSBsYXlvdXQuICAqLw0Kc3RydWN0IEdUWSgoKSkgIHJpc2N2X2Zy YW1lX2luZm8gew0KICAgLyogVGhlIHNpemUgb2YgdGhlIGZyYW1lIGluIGJ5 dGVzLiAgKi8NCkBAIC0xMjUsNiArMTMxLDIyIEBAIGVudW0gcmlzY3ZfcHJp dmlsZWdlX2xldmVscyB7DQogICBVTktOT1dOX01PREUsIFVTRVJfTU9ERSwg U1VQRVJWSVNPUl9NT0RFLCBNQUNISU5FX01PREUNCn07DQorc3RydWN0IEdU WSgoKSkgbW9kZV9zd2l0Y2hpbmdfaW5mbyB7DQorICAvKiBUaGUgUlRMIHZh cmlhYmxlIHdoaWNoIHN0b3JlcyB0aGUgZHluYW1pYyBGUk0gdmFsdWUuICBX ZSBhbHdheXMgdXNlIHRoaXMNCisgICAgIFJUWCB0byByZXN0b3JlIGR5bmFt aWMgRlJNIHJvdW5kaW5nIG1vZGUgaW4gbW9kZSBzd2l0Y2hpbmcuICAqLw0K KyAgcnR4IGR5bmFtaWNfZnJtOw0KKw0KKyAgLyogVGhlIGJvb2xlYW4gdmFy aWFibGVzIGluZGljYXRlcyB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgc3RhdGlj IHJvdW5kaW5nDQorICAgICBtb2RlIGluc3RydWN0aW9uIGluIHRoZSBmdW5j dGlvbiBvciBub3QuICAqLw0KKyAgYm9vbCBzdGF0aWNfZnJtX3A7DQorDQor ICBtb2RlX3N3aXRjaGluZ19pbmZvICgpDQorICAgIHsNCisgICAgICBkeW5h bWljX2ZybSA9IE5VTExfUlRYOw0KKyAgICAgIHN0YXRpY19mcm1fcCA9IGZh bHNlOw0KKyAgICB9DQorfTsNCisNCnN0cnVjdCBHVFkoKCkpICBtYWNoaW5l X2Z1bmN0aW9uIHsNCiAgIC8qIFRoZSBudW1iZXIgb2YgZXh0cmEgc3RhY2sg Ynl0ZXMgdGFrZW4gdXAgYnkgcmVnaXN0ZXIgdmFyYXJncy4NCiAgICAgIFRo aXMgYXJlYSBpcyBhbGxvY2F0ZWQgYnkgdGhlIGNhbGxlZSBhdCB0aGUgdmVy eSB0b3Agb2YgdGhlIGZyYW1lLiAgKi8NCkBAIC0xNDgsOSArMTcwLDcgQEAg c3RydWN0IEdUWSgoKSkgIG1hY2hpbmVfZnVuY3Rpb24gew0KICAgICAgbm90 IGJlIGNvbnNpZGVyZWQgYnkgdGhlIHByb2xvZ3VlIGFuZCBlcGlsb2d1ZS4g ICovDQogICBib29sIHJlZ19pc193cmFwcGVkX3NlcGFyYXRlbHlbRklSU1Rf UFNFVURPX1JFR0lTVEVSXTsNCi0gIC8qIFRoZSBSVEwgdmFyaWFibGUgd2hp Y2ggc3RvcmVzIHRoZSBkeW5hbWljIEZSTSB2YWx1ZS4gIFdlIGFsd2F5cyB1 c2UgdGhpcw0KLSAgICAgUlRYIHRvIHJlc3RvcmUgZHluYW1pYyBGUk0gcm91 bmRpbmcgbW9kZSBpbiBtb2RlIHN3aXRjaGluZy4gICovDQotICBydHggZHlu YW1pY19mcm07DQorICBzdHJ1Y3QgbW9kZV9zd2l0Y2hpbmdfaW5mbyBtb2Rl X3N3X2luZm87DQp9Ow0KLyogSW5mb3JtYXRpb24gYWJvdXQgYSBzaW5nbGUg YXJndW1lbnQuICAqLw0KQEAgLTc3MDksOSArNzcyOSwxMyBAQCByaXNjdl9z dGF0aWNfZnJtX21vZGVfcCAoaW50IG1vZGUpDQpzdGF0aWMgdm9pZA0Kcmlz Y3ZfZW1pdF9mcm1fbW9kZV9zZXQgKGludCBtb2RlLCBpbnQgcHJldl9tb2Rl KQ0Kew0KKyAgcnR4IGJhY2t1cF9yZWcgPSBEWU5BTUlDX0ZSTV9SVEwgKGNm dW4pOw0KKw0KKyAgaWYgKHByZXZfbW9kZSA9PSBGUk1fTU9ERV9EWU5fQ0FM TCkNCisgICAgZW1pdF9pbnNuIChnZW5fZnJybXNpIChiYWNrdXBfcmVnKSk7 IC8qIEJhY2t1cCBmcm0gd2hlbiBEWU5fQ0FMTC4gICovDQorDQogICBpZiAo bW9kZSAhPSBwcmV2X21vZGUpDQogICAgIHsNCi0gICAgICBydHggYmFja3Vw X3JlZyA9IGNmdW4tPm1hY2hpbmUtPmR5bmFtaWNfZnJtOw0KICAgICAgIC8q IFRPRE86IEJ5IGRlc2lnbiwgRlJNX01PREVfeHh4IHVzZWQgYnkgbW9kZSBz d2l0Y2ggd2hpY2ggaXMNCmRpZmZlcmVudCBmcm9tIHRoZSBGUk0gdmFsdWUg bGlrZSBGUk1fUlRaIGRlZmluZWQgaW4NCnJpc2N2LXByb3Rvcy5oLiAgV2hl biBtb2RlIHN3aXRjaGluZyB3ZSBhY3R1YWxseSBuZWVkIGEgY29udmVyc2lv bg0KQEAgLTc3MjEsOSArNzc0NSwxMyBAQCByaXNjdl9lbWl0X2ZybV9tb2Rl X3NldCAoaW50IG1vZGUsIGludCBwcmV2X21vZGUpDQphbmQgdGhlbiB3ZSBs ZXZlcmFnZSB0aGlzIGFzc3VtcHRpb24gd2hlbiBlbWl0LiAgKi8NCiAgICAg ICBydHggZnJtID0gZ2VuX2ludF9tb2RlIChtb2RlLCBTSW1vZGUpOw0KLSAg ICAgIGlmIChtb2RlID09IEZSTV9NT0RFX0RZTl9FWElUICYmIHByZXZfbW9k ZSAhPSBGUk1fTU9ERV9EWU4pDQorICAgICAgaWYgKG1vZGUgPT0gRlJNX01P REVfRFlOX0NBTEwgJiYgcHJldl9tb2RlICE9IEZSTV9NT0RFX0RZTikNCi8q IE5vIG5lZWQgdG8gZW1pdCB3aGVuIHByZXYgbW9kZSBpcyBEWU4gYWxyZWFk eS4gICovDQotIGVtaXRfaW5zbiAoZ2VuX2Zzcm1zaV9yZXN0b3JlX2V4aXQg KGJhY2t1cF9yZWcpKTsNCisgZW1pdF9pbnNuIChnZW5fZnNybXNpX3Jlc3Rv cmVfdm9sYXRpbGUgKGJhY2t1cF9yZWcpKTsNCisgICAgICBlbHNlIGlmICht b2RlID09IEZSTV9NT0RFX0RZTl9FWElUICYmIFNUQVRJQ19GUk1fUCAoY2Z1 bikNCisgJiYgcHJldl9tb2RlICE9IEZSTV9NT0RFX0RZTiAmJiBwcmV2X21v ZGUgIT0gRlJNX01PREVfRFlOX0NBTEwpDQorIC8qIE5vIG5lZWQgdG8gZW1p dCB3aGVuIHByZXYgbW9kZSBpcyBEWU4gb3IgRFlOX0NBTEwgYWxyZWFkeS4g ICovDQorIGVtaXRfaW5zbiAoZ2VuX2Zzcm1zaV9yZXN0b3JlX3ZvbGF0aWxl IChiYWNrdXBfcmVnKSk7DQogICAgICAgZWxzZSBpZiAobW9kZSA9PSBGUk1f TU9ERV9EWU4pDQovKiBSZXN0b3JlIGZybSB2YWx1ZSBmcm9tIGJhY2t1cCB3 aGVuIHN3aXRjaCB0byBEWU4gbW9kZS4gICovDQplbWl0X2luc24gKGdlbl9m c3Jtc2lfcmVzdG9yZSAoYmFja3VwX3JlZykpOw0KQEAgLTc3NTMsNiArNzc4 MSw1MyBAQCByaXNjdl9lbWl0X21vZGVfc2V0IChpbnQgZW50aXR5LCBpbnQg bW9kZSwgaW50IHByZXZfbW9kZSwNCiAgICAgfQ0KfQ0KKy8qIFJldHVybiBt b2RlIHRoYXQgZnJtIG11c3QgYmUgc3dpdGNoZWQgaW50bw0KKyAgIHByaW9y IHRvIHRoZSBleGVjdXRpb24gb2YgaW5zbi4gICovDQorDQorc3RhdGljIGlu dA0KK3Jpc2N2X2ZybV9tb2RlX25lZWRlZCAocnR4X2luc24gKmN1cl9pbnNu LCBpbnQgY29kZSkNCit7DQorICBpZiAoQ0FMTF9QIChjdXJfaW5zbikpDQor ICAgIHJldHVybiBGUk1fTU9ERV9EWU5fQ0FMTDsNCisNCisgIGludCBtb2Rl ID0gY29kZSA+PSAwID8gZ2V0X2F0dHJfZnJtX21vZGUgKGN1cl9pbnNuKSA6 IEZSTV9NT0RFX05PTkU7DQorDQorICBpZiAobW9kZSA9PSBGUk1fTU9ERV9O T05FKQ0KKyAgICB7DQorICAgICAgLyogQWZ0ZXIgbWVldCBhIGNhbGwsIHdl IG5lZWQgdG8gYmFja3VwIHRoZSBmcm0gYmVjYXVzZSBpdCBtYXkgYmUNCisg dXBkYXRlZCBkdXJpbmcgdGhlIGNhbGwuIEhlcmUsIGZvciBlYWNoIGluc24s IHdlIHdpbGwgY2hlY2sgaWYNCisgdGhlIHByZXZpb3VzIGluc24gaXMgYSBj YWxsIG9yIG5vdC4gV2hlbiBwcmV2aW91cyBpbnNuIGlzIGNhbGwsDQorIHRo ZXJlIHdpbGwgYmUgMiBjYXNlcyBmb3IgdGhlIGVtaXQgbW9kZSBzZXQuDQor DQorIDEuIEN1cnJlbnQgaW5zbiBpcyBub3QgTU9ERV9OT05FLCB0aGVuIHRo ZSBtb2RlIHN3aXRjaCBmcmFtZXdvcmsNCisgICAgIHdpbGwgZG8gdGhlIG1v ZGUgc3dpdGNoIGZyb20gTU9ERV9DQUxMIHRvIE1PREVfTk9OX05PTkUgbmF0 aXZlbHkuDQorIDIuIEN1cnJlbnQgaW5zbiBpcyBNT0RFX05PTkUsIHdlIG5l ZWQgdG8gYWRqdXN0IHRoZSBNT0RFX05PTkUgdG8NCisgICAgIHRoZSBNT0RF X0RZTiwgYW5kIGxlYXZlIHRoZSBtb2RlIHN3aXRjaCBpdHNlbGYgdG8gcGVy Zm9ybQ0KKyAgICAgdGhlIGVtaXQgbW9kZSBzZXQuDQorDQorIFRPRE86IHRo aXMgY2Fubm90IGhhbmRsZSBvbmUgY2FzZSBpZiB0aGVyZSBpcyBubyBpbnN0 cnVjdGlvbg0KKyBhZnRlciBhIGNhbGwsIHdlIHdpbGwgdGFrZSBjYXJlIG9m IGl0IHNvb24uDQorICAgICAgICovDQorICAgICAgcnR4X2luc24gKmluc247 DQorICAgICAgYmFzaWNfYmxvY2sgYmIgPSBCTE9DS19GT1JfSU5TTiAoY3Vy X2luc24pOw0KKw0KKyAgICAgIGZvciAoaW5zbiA9IFBSRVZfSU5TTiAoY3Vy X2luc24pOyBpbnNuOyBpbnNuID0gUFJFVl9JTlNOIChpbnNuKSkNCisgew0K KyAgIGlmIChJTlNOX1AgKGluc24pKQ0KKyAgICAgew0KKyAgICAgICBpZiAo Q0FMTF9QIChpbnNuKSkNCisgbW9kZSA9IEZSTV9NT0RFX0RZTjsNCisgICAg ICAgYnJlYWs7DQorICAgICB9DQorDQorICAgaWYgKGluc24gPT0gUFJFVl9J TlNOIChCQl9IRUFEIChiYikpKQ0KKyAgICAgYnJlYWs7DQorIH0NCisgICAg fQ0KKw0KKyAgcmV0dXJuIG1vZGU7DQorfQ0KKw0KLyogUmV0dXJuIG1vZGUg dGhhdCBlbnRpdHkgbXVzdCBiZSBzd2l0Y2hlZCBpbnRvDQogICAgcHJpb3Ig dG8gdGhlIGV4ZWN1dGlvbiBvZiBpbnNuLiAgKi8NCkBAIC03NzY2LDcgKzc4 NDEsNyBAQCByaXNjdl9tb2RlX25lZWRlZCAoaW50IGVudGl0eSwgcnR4X2lu c24gKmluc24pDQogICAgIGNhc2UgUklTQ1ZfVlhSTToNCiAgICAgICByZXR1 cm4gY29kZSA+PSAwID8gZ2V0X2F0dHJfdnhybV9tb2RlIChpbnNuKSA6IFZY Uk1fTU9ERV9OT05FOw0KICAgICBjYXNlIFJJU0NWX0ZSTToNCi0gICAgICBy ZXR1cm4gY29kZSA+PSAwID8gZ2V0X2F0dHJfZnJtX21vZGUgKGluc24pIDog RlJNX01PREVfTk9ORTsNCisgICAgICByZXR1cm4gcmlzY3ZfZnJtX21vZGVf bmVlZGVkIChpbnNuLCBjb2RlKTsNCiAgICAgZGVmYXVsdDoNCiAgICAgICBn Y2NfdW5yZWFjaGFibGUgKCk7DQogICAgIH0NCkBAIC03ODQzLDYgKzc5MTgs MTEgQEAgcmlzY3ZfdnhybV9tb2RlX2FmdGVyIChydHhfaW5zbiAqaW5zbiwg aW50IG1vZGUpDQpzdGF0aWMgaW50DQpyaXNjdl9mcm1fbW9kZV9hZnRlciAo cnR4X2luc24gKmluc24sIGludCBtb2RlKQ0Kew0KKyAgU1RBVElDX0ZSTV9Q IChjZnVuKSA9IFNUQVRJQ19GUk1fUCAoY2Z1bikgfHwgcmlzY3Zfc3RhdGlj X2ZybV9tb2RlX3AgKG1vZGUpOw0KKw0KKyAgaWYgKENBTExfUCAoaW5zbikp DQorICAgIHJldHVybiBGUk1fTU9ERV9EWU5fQ0FMTDsNCisNCiAgIGlmIChm cm1fdW5rbm93bl9keW5hbWljX3AgKGluc24pKQ0KICAgICByZXR1cm4gRlJN X01PREVfRFlOOw0KQEAgLTc4ODMsMTAgKzc5NjMsMTAgQEAgcmlzY3ZfbW9k ZV9lbnRyeSAoaW50IGVudGl0eSkNCiAgICAgICByZXR1cm4gVlhSTV9NT0RF X05PTkU7DQogICAgIGNhc2UgUklTQ1ZfRlJNOg0KICAgICAgIHsNCi0gaWYg KCFjZnVuLT5tYWNoaW5lLT5keW5hbWljX2ZybSkNCisgaWYgKCFEWU5BTUlD X0ZSTV9SVEwoY2Z1bikpDQogIHsNCi0gICAgIGNmdW4tPm1hY2hpbmUtPmR5 bmFtaWNfZnJtID0gZ2VuX3JlZ19ydHggKFNJbW9kZSk7DQotICAgICBlbWl0 X2luc25fYXRfZW50cnkgKGdlbl9mcnJtc2kgKGNmdW4tPm1hY2hpbmUtPmR5 bmFtaWNfZnJtKSk7DQorICAgICBEWU5BTUlDX0ZSTV9SVEwgKGNmdW4pID0g Z2VuX3JlZ19ydHggKFNJbW9kZSk7DQorICAgICBlbWl0X2luc25fYXRfZW50 cnkgKGdlbl9mcnJtc2kgKERZTkFNSUNfRlJNX1JUTCAoY2Z1bikpKTsNCiAg fQ0KICAvKiBBY2NvcmRpbmcgdG8gUlZWIDEuMCBzcGVjLCBhbGwgdmVjdG9y IGZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnMgdXNlDQpkaWZmIC0tZ2l0IGEv Z2NjL2NvbmZpZy9yaXNjdi92ZWN0b3IubWQgYi9nY2MvY29uZmlnL3Jpc2N2 L3ZlY3Rvci5tZA0KaW5kZXggNjk2ODBkZTI2MDAuLjYzYjJkM2E5YjgyIDEw MDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi92ZWN0b3IubWQNCisrKyBi L2djYy9jb25maWcvcmlzY3YvdmVjdG9yLm1kDQpAQCAtNjk0LDcgKzY5NCw3 IEBAIChkZWZpbmVfYXR0ciAidnhybV9tb2RlIiAicm51LHJuZSxyZG4scm9k LG5vbmUiDQopDQo7OyBEZWZpbmVzIHJvdW5kaW5nIG1vZGUgb2YgYW4gZmxv YXRpbmctcG9pbnQgb3BlcmF0aW9uLg0KLShkZWZpbmVfYXR0ciAiZnJtX21v ZGUiICJybmUscnR6LHJkbixydXAscm1tLGR5bixkeW5fZXhpdCxub25lIg0K KyhkZWZpbmVfYXR0ciAiZnJtX21vZGUiICJybmUscnR6LHJkbixydXAscm1t LGR5bixkeW5fZXhpdCxkeW5fY2FsbCxub25lIg0KICAgKGNvbmQNCiAgICAg Ww0KICAgICAgIChlcV9hdHRyICJ0eXBlIiAidmZhbHUiKQ0KQEAgLTgyOSw3 ICs4MjksNyBAQCAoZGVmaW5lX2luc24gImZzcm1zaV9yZXN0b3JlIg0KOzsg VGhlIHZvbGF0aWxlIGZzcm1zaSByZXN0b3JlIGlzIHVzZWQgZm9yIHRoZSBl eGl0IHBvaW50IGZvciB0aGUNCjs7IGR5bmFtaWMgbW9kZSBzd2l0Y2hpbmcu IEl0IHdpbGwgZ2VuZXJhdGUgb25lIHZvbGF0aWxlIGZzcm0gYTUNCjs7IHdo aWNoIHdvbid0IGJlIGVsaW1pbmF0ZWQuDQotKGRlZmluZV9pbnNuICJmc3Jt c2lfcmVzdG9yZV9leGl0Ig0KKyhkZWZpbmVfaW5zbiAiZnNybXNpX3Jlc3Rv cmVfdm9sYXRpbGUiDQogICBbKHNldCAocmVnOlNJIEZSTV9SRUdOVU0pDQoo dW5zcGVjX3ZvbGF0aWxlOlNJIFsobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiciIpXQ0KICAgIFVOU1BFQ1ZfRlJNX1JFU1RPUkVf RVhJVCkpXQ0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zMy5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zs b2F0LXBvaW50LWR5bmFtaWMtZnJtLTMzLmMNCm5ldyBmaWxlIG1vZGUgMTAw NjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uNGJkNTIwZWEyYWYNCi0tLSAvZGV2 L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zMy5jDQpAQCAtMCww ICsxLDMxIEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRn LW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8t cHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQor DQorc2l6ZV90IF9fYXR0cmlidXRlX18gKChub2lubGluZSkpDQorbm9ybWFs aXplX3ZsIChzaXplX3QgdmwpDQorew0KKyAgaWYgKHZsICUgNCA9PSAwKQ0K KyAgICByZXR1cm4gdmw7DQorDQorICByZXR1cm4gKCh2bCAvIDQpICsgMSkg KiA0Ow0KK30NCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50 X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qg b3AyLCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9 IG9wMTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFf cm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7DQorICB2bCA9IG5vcm1hbGl6ZV92 bCAodmwpOw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9y bSAob3AxLCByZXN1bHQsIDIsIHZsKTsNCisNCisgIHJldHVybiByZXN1bHQ7 DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZd K1swLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMiB9IH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytb YXhzXVswLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMiB9IH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1th eHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS0zNC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM0 LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4u NmM3Y2Y3ZWY2OWMNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS0zNC5jDQpAQCAtMCwwICsxLDMyIEBADQorLyogeyBkZy1kbyBj b21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2 IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVk ZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorc2l6ZV90IF9fYXR0cmlidXRlX18g KChub2lubGluZSkpDQorbm9ybWFsaXplX3ZsIChzaXplX3QgdmwpDQorew0K KyAgaWYgKHZsICUgNCA9PSAwKQ0KKyAgICByZXR1cm4gdmw7DQorDQorICBy ZXR1cm4gKCh2bCAvIDQpICsgMSkgKiA0Ow0KK30NCisNCit2ZmxvYXQzMm0x X3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0x X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3QgdmwpDQorew0KKyAg dmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIHJlc3VsdCA9IF9f cmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7 DQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChvcDEs IHJlc3VsdCwgMiwgdmwpOw0KKw0KKyAgdmwgPSBub3JtYWxpemVfdmwgKHZs KTsNCisNCisgIHJldHVybiB2bCA+IDEyOCA/IHJlc3VsdCA6IG9wMjsNCit9 DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAt OV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEy MzRdfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11b MC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTM1LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzUuYw0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5iN2Y1 YTY5MTlmNA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTM1LmMNCkBAIC0wLDAgKzEsMzIgQEANCisvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1h Ymk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJy aXNjdl92ZWN0b3IuaCINCisNCitzaXplX3QgX19hdHRyaWJ1dGVfXyAoKG5v aW5saW5lKSkNCitub3JtYWxpemVfdmwgKHNpemVfdCB2bCkNCit7DQorICBp ZiAodmwgJSA0ID09IDApDQorICAgIHJldHVybiB2bDsNCisNCisgIHJldHVy biAoKHZsIC8gNCkgKyAxKSAqIDQ7DQorfQ0KKw0KK3ZmbG9hdDMybTFfdA0K K3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBv cDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCB2bCkNCit7DQorICB2Zmxv YXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgdmwgPSBub3JtYWxpemVf dmwgKHZsKTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMy bTFfcm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7DQorICByZXN1bHQgPSBfX3Jp c2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChvcDEsIHJlc3VsdCwgMiwgdmwpOw0K Kw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0r LFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNd WzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNd WzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9 ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM2LmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tMzYuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAwMDAwLi40NDg1Y2VhMjRkOQ0KLS0tIC9kZXYvbnVs bA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM2LmMNCkBAIC0wLDAgKzEs MjkgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0 aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2Fi aSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitz aXplX3QgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkNCitub3JtYWxpemVf dmwgKHNpemVfdCB2bCkNCit7DQorICBpZiAodmwgJSA0ID09IDApDQorICAg IHJldHVybiB2bDsNCisNCisgIHJldHVybiAoKHZsIC8gNCkgKyAxKSAqIDQ7 DQorfQ0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHlu YW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIs IHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3Ax Ow0KKw0KKyAgaWYgKHZsICUgNCAhPSAwKQ0KKyAgICB2bCA9IG5vcm1hbGl6 ZV92bCAodmwpOw0KKw0KKyAgcmV0dXJuIHZsID4gMTYgPyByZXN1bHQgOiBv cDI7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1u b3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytb MDEyMzRdfSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItbm90IHtmc3JtXHMrW2F4c11bMC05XSt9IH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zycm1ccytbYXhzXVswLTld K30gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM3 LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tMzcuYw0KbmV3IGZpbGUgbW9kZSAx MDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5hMWZjYTFhMmEzZg0KLS0tIC9k ZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM3LmMNCkBAIC0w LDAgKzEsMzYgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsg ZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVdu by1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCIN CisNCitzaXplX3QgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkNCitub3Jt YWxpemVfdmwgKHNpemVfdCB2bCkNCit7DQorICBpZiAodmwgJSA0ID09IDAp DQorICAgIHJldHVybiB2bDsNCisNCisgIHJldHVybiAoKHZsIC8gNCkgKyAx KSAqIDQ7DQorfQ0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9p bnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFf dCBvcDIsDQorICAgICAgIGludCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisg IHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKGludCBp ID0gMDsgaSA8IGNvdW50OyBpKyspDQorICAgIHsNCisgICAgICBpZiAoaSAl IDIgPT0gMCkNCisgICAgICAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZf ZjMybTFfcm0gKHJlc3VsdCwgb3AyLCA0LCB2bCk7DQorICAgICAgZWxzZQ0K KyAgICAgICAgdmwgPSBub3JtYWxpemVfdmwgKHZsKTsNCisgICAgfQ0KKw0K KyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxz KnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAt OV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEy MzRdfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICov DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM4LmMgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9p bnQtZHluYW1pYy1mcm0tMzguYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmlu ZGV4IDAwMDAwMDAwMDAwLi44ZDU5Y2FlOWE4Nw0KLS0tIC9kZXYvbnVsbA0K KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTM4LmMNCkBAIC0wLDAgKzEsMzQg QEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9u cyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIg fSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitzaXpl X3QgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkNCitub3JtYWxpemVfdmwg KHNpemVfdCB2bCkNCit7DQorICBpZiAodmwgJSA0ID09IDApDQorICAgIHJl dHVybiB2bDsNCisNCisgIHJldHVybiAoKHZsIC8gNCkgKyAxKSAqIDQ7DQor fQ0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1p Y19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQor ICAgICAgIGludCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMy bTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKGludCBpID0gMDsgaSA8 IGNvdW50OyBpKyspDQorICAgIHsNCisgICAgICByZXN1bHQgPSBfX3Jpc2N2 X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgNCwgdmwpOw0KKyAg ICAgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorICAgIH0NCisNCisgIHJl dHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAt OV0rLFxzKltmYXZdK1swLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30g MiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge2Zzcm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0g MSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90 IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS0zOS5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTM5LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAw MDAwMDAwMDAwMC4uMDRjNTQ4NzczOTMNCi0tLSAvZGV2L251bGwNCisrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS0zOS5jDQpAQCAtMCwwICsxLDM2IEBADQor LyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1t YXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8N CisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorc2l6ZV90IF9f YXR0cmlidXRlX18gKChub2lubGluZSkpDQorbm9ybWFsaXplX3ZsIChzaXpl X3QgdmwpDQorew0KKyAgaWYgKHZsICUgNCA9PSAwKQ0KKyAgICByZXR1cm4g dmw7DQorDQorICByZXR1cm4gKCh2bCAvIDQpICsgMSkgKiA0Ow0KK30NCisN Cit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJt ICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAg ICBpbnQgY291bnQsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3Qg cmVzdWx0ID0gb3AxOw0KKw0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3Vu dDsgaSsrKQ0KKyAgICB7DQorICAgICAgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDQsIHZsKTsNCisNCisgICAg ICBpZiAodmwgJSA4ICE9IDApDQorICAgICAgICB2bCA9IG5vcm1hbGl6ZV92 bCAodmwpOw0KKyAgICB9DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisN CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRk XC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9 IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11bMC05 XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDEgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTld KyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tNDAuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00MC5jDQpuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjQ5Y2Y1MmY3 MzliDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NDAuYw0KQEAgLTAsMCArMSwzNCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9 ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1s cDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2 X3ZlY3Rvci5oIg0KKw0KK3NpemVfdCBfX2F0dHJpYnV0ZV9fICgobm9pbmxp bmUpKQ0KK25vcm1hbGl6ZV92bCAoc2l6ZV90IHZsKQ0KK3sNCisgIGlmICh2 bCAlIDQgPT0gMCkNCisgICAgcmV0dXJuIHZsOw0KKw0KKyAgcmV0dXJuICgo dmwgLyA0KSArIDEpICogNDsNCit9DQorDQordmZsb2F0MzJtMV90DQordGVz dF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwg dmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMy bTFfdCByZXN1bHQgPSBvcDE7DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3Zm YWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgNCwgdmwpOw0KKw0KKyAg dmwgPSBub3JtYWxpemVfdmwgKHZsKTsNCisgIHZsID0gbm9ybWFsaXplX3Zs ICh2bCk7DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0x X3JtIChvcDEsIHJlc3VsdCwgMiwgdmwpOw0KKw0KKyAgcmV0dXJuIHJlc3Vs dDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zh dl0rWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlc cytbMDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMr W2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTQxLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NDEuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAw Li43OWVmNTViMmM5Zg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTQxLmMNCkBAIC0wLDAgKzEsMzcgQEANCisvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRn Y3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNs dWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitzaXplX3QgX19hdHRyaWJ1dGVf XyAoKG5vaW5saW5lKSkNCitub3JtYWxpemVfdmwgKHNpemVfdCB2bCkNCit7 DQorICBpZiAodmwgJSA0ID09IDApDQorICAgIHJldHVybiB2bDsNCisNCisg IHJldHVybiAoKHZsIC8gNCkgKyAxKSAqIDQ7DQorfQ0KKw0KK3ZmbG9hdDMy bTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMy bTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCB2bCkNCit7DQor ICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgcmVzdWx0ID0g X19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDQsIHZs KTsNCisNCisgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorDQorICByZXN1 bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwg NCwgdmwpOw0KKw0KKyAgdmwgPSBub3JtYWxpemVfdmwgKHZsKTsNCisNCisg IHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVz dWx0LCA0LCB2bCk7DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52 W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDMg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmcnJtXHMrW2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDMg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtmc3JtXHMrW2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxc cypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tNDIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00Mi5jDQpuZXcgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLmQyYTE3YWQ3MTVm DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDIu Yw0KQEAgLTAsMCArMSwzNyBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICov DQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0 IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3Zl Y3Rvci5oIg0KKw0KK3NpemVfdCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUp KQ0KK25vcm1hbGl6ZV92bCAoc2l6ZV90IHZsKQ0KK3sNCisgIGlmICh2bCAl IDQgPT0gMCkNCisgICAgcmV0dXJuIHZsOw0KKw0KKyAgcmV0dXJuICgodmwg LyA0KSArIDEpICogNDsNCit9DQorDQordmZsb2F0MzJtMV90DQordGVzdF9m bG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZs b2F0MzJtMV90IG9wMiwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFf dCByZXN1bHQgPSBvcDE7DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRk X3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgNCwgdmwpOw0KKw0KKyAgdmwg PSBub3JtYWxpemVfdmwgKHZsKTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3Zf dmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQorDQorICB2bCA9 IG5vcm1hbGl6ZV92bCAodmwpOw0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92 ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDIsIHZsKTsNCisNCisg IHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2 WzAtOV0rLFxzKltmYXZdK1swLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTld K30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTld K30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt bm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0K ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00My5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTQzLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl eCAwMDAwMDAwMDAwMC4uNTBlMWRhMmMzYzENCi0tLSAvZGV2L251bGwNCisr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS00My5jDQpAQCAtMCwwICsxLDM4IEBA DQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMg Ii1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0g Ki8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorc2l6ZV90 IF9fYXR0cmlidXRlX18gKChub2lubGluZSkpDQorbm9ybWFsaXplX3ZsIChz aXplX3QgdmwpDQorew0KKyAgaWYgKHZsICUgNCA9PSAwKQ0KKyAgICByZXR1 cm4gdmw7DQorDQorICByZXR1cm4gKCh2bCAvIDQpICsgMSkgKiA0Ow0KK30N CisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNf ZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXpl X3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisN CisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3Vs dCwgb3AyLCA0LCB2bCk7DQorDQorICB2bCA9IG5vcm1hbGl6ZV92bCAodmwp Ow0KKw0KKyAgaWYgKHZsICUgMTYgPT0gMCkNCisgICAgcmVzdWx0ID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDEsIHZsKTsN CisNCisgIHZsID0gbm9ybWFsaXplX3ZsICh2bCk7DQorDQorICByZXN1bHQg PSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwgdmwpOw0K Kw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0r LFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnJybVxzK1theHNd WzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNd WzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9 ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ0LmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQt cG9pbnQtZHluYW1pYy1mcm0tNDQuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAwMDAwLi5hNjZjYTg5MzA4Yg0KLS0tIC9kZXYvbnVs bA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ0LmMNCkBAIC0wLDAgKzEs NDAgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0 aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVduby1wc2Fi aSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCitz aXplX3QgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkNCitub3JtYWxpemVf dmwgKHNpemVfdCB2bCkNCit7DQorICBpZiAodmwgJSA0ID09IDApDQorICAg IHJldHVybiB2bDsNCisNCisgIHJldHVybiAoKHZsIC8gNCkgKyAxKSAqIDQ7 DQorfQ0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHlu YW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIs IHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3Ax Ow0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAo cmVzdWx0LCBvcDIsIDQsIHZsKTsNCisNCisgIHZsID0gbm9ybWFsaXplX3Zs ICh2bCk7DQorDQorICBpZiAodmwgJSAxNiA9PSAwKQ0KKyAgICByZXN1bHQg PSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgMSwg dmwpOw0KKw0KKw0KKyAgaWYgKHZsICUgNyAhPSAwKQ0KKyAgICB2bCA9IG5v cm1hbGl6ZV92bCAodmwpOw0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisNCisgIHJldHVybiBy ZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxz KltmYXZdK1swLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMyB9IH0g Ki8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zz cm1pXHMrWzAxMjM0XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gNCB9IH0g Ki8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3Jt aVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS00NS5jIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTQ1LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAw MDAwMC4uZDljMWVmMjk0NTANCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS00NS5jDQpAQCAtMCwwICsxLDM1IEBADQorLyogeyBk Zy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1y djY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisj aW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0ZXJuIHNpemVfdCBu b3JtYWxpemVfdmwgKHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90DQor dGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9w MSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3VudCwg c2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7 DQorDQorICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykN CisgICAgew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAgcmVz dWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIs IDQsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bCAodmwpOw0KKyB9DQor ICAgICAgZWxzZQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92 dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6 ZV92bCAodmwpOw0KKyB9DQorICAgIH0NCisNCisgIHJldHVybiByZXN1bHQ7 DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZd K1swLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMyB9IH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMr WzAxMjM0XX0gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMyB9IH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1th eHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS00Ni5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ2 LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4u Yjk5MGZiNDM0ZjgNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS00Ni5jDQpAQCAtMCwwICsxLDM1IEBADQorLyogeyBkZy1kbyBj b21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2 IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVk ZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0ZXJuIHNpemVfdCBub3JtYWxp emVfdmwgKHNpemVfdCB2bCk7DQorDQordmZsb2F0MzJtMV90DQordGVzdF9m bG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZs b2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90 IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQor ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAg ew0KKyAgICAgIGlmIChpICUgMyA9PSAwKQ0KKyB7DQorICAgcmVzdWx0ID0g X19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDQsIHZs KTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bCAodmwpOw0KKyB9DQorICAgICAg ZWxzZQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJt MV9ybSAob3AxLCByZXN1bHQsIDMsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6 ZV92bCAodmwpOw0KKyB9DQorICAgIH0NCisNCisgIHJldHVybiByZXN1bHQ7 DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZd K1swLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMiB9IH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMr WzAxMjM0XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1th eHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS00Ny5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ3 LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4u MmMzNDgxYjk4MGUNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS00Ny5jDQpAQCAtMCwwICsxLDM2IEBADQorLyogeyBkZy1kbyBj b21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2 IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVk ZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0ZXJuIHNpemVfdCBub3JtYWxp emVfdmxfMSAoc2l6ZV90IHZsKTsNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6 ZV92bF8yIChzaXplX3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3Rf ZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZm bG9hdDMybTFfdCBvcDIsDQorICAgICAgdW5zaWduZWQgY291bnQsIHNpemVf dCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0K KyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50OyBpKyspDQorICAg IHsNCisgICAgICBpZiAoaSAlIDMgPT0gMCkNCisgew0KKyAgIHJlc3VsdCA9 IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKHJlc3VsdCwgb3AyLCB2bCk7DQor ICAgdmwgPSBub3JtYWxpemVfdmxfMSAodmwpOw0KKyB9DQorICAgICAgZWxz ZQ0KKyB7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAo b3AxLCByZXN1bHQsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8yICh2 bCk7DQorIH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQor DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFk ZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0r fSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1theHNdWzAt OV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICov DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlc cytbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1p Yy1mcm0tNDguYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00OC5jDQpuZXcgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjRhZWFlMmVlMGNm DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNDgu Yw0KQEAgLTAsMCArMSwzNiBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICov DQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0 IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3Zl Y3Rvci5oIg0KKw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzEgKHNp emVfdCB2bCk7DQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMiAoc2l6 ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50 X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qg b3AyLA0KKyAgICAgIHVuc2lnbmVkIGNvdW50LCBzaXplX3QgdmwpDQorew0K KyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAodW5z aWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQ0KKyAgICB7DQorICAgICAg aWYgKGkgJSAzID09IDApDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3Zm YWRkX3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwgdmwpOw0KKyAgIHZsID0gbm9y bWFsaXplX3ZsXzEgKHZsKTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0KKyAg IHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKHJlc3VsdCwg b3AyLCAxLCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0K KyB9DQorICAgIH0NCisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZb dmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gMiB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e2Zycm1ccytbYXhzXVswLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMSB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e2Zzcm1ccytbYXhzXVswLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxz KlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS00OS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTQ5LmMNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uMzUwYmQ0OTI0ZWIN Ci0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS00OS5j DQpAQCAtMCwwICsxLDM2IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8N CisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQg LU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVj dG9yLmgiDQorDQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMSAoc2l6 ZV90IHZsKTsNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8yIChzaXpl X3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRf ZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBv cDIsDQorICAgICAgdW5zaWduZWQgY291bnQsIHNpemVfdCB2bCkNCit7DQor ICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgZm9yICh1bnNp Z25lZCBpID0gMDsgaSA8IGNvdW50OyBpKyspDQorICAgIHsNCisgICAgICBp ZiAoaSAlIDMgPT0gMCkNCisgew0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzEg KHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3Jt IChyZXN1bHQsIG9wMiwgNCwgdmwpOw0KKyB9DQorICAgICAgZWxzZQ0KKyB7 DQorICAgdmwgPSBub3JtYWxpemVfdmxfMiAodmwpOw0KKyAgIHJlc3VsdCA9 IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQor IH0NCisgICAgfQ0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQorLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudlt2 Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0rWzAtOV0rfSAyIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnJybVxzK1theHNdWzAtOV0rfSAzIH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAxIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 ZnNybVxzK1theHNdWzAtOV0rfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4c11bMC05XSssXHMq WzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTUwLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTAuYw0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4yM2Y3MjY2NDQyNg0K LS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTUwLmMN CkBAIC0wLDAgKzEsMzYgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0K Ky8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAt TzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0 b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXpl X3QgdmwpOw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVf dCB2bCk7DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9k eW5hbWljX2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9w MiwNCisgICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisg IHZmbG9hdDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVuc2ln bmVkIGkgPSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIGlm IChpICUgMyA9PSAwKQ0KKyB7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMSAo dmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0g KHJlc3VsdCwgb3AyLCA0LCB2bCk7DQorIH0NCisgICAgICBlbHNlDQorIHsN CisgICB2bCA9IG5vcm1hbGl6ZV92bF8yICh2bCk7DQorICAgcmVzdWx0ID0g X19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAob3AxLCByZXN1bHQsIDMsIHZs KTsNCisgfQ0KKyAgICB9DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisN CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRk XC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9 IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19 IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTld KyxccypbMDEyMzRdfSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHlu YW1pYy1mcm0tNTEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01MS5jDQpuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjg3MzdhYjkz MGFhDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0t NTEuYw0KQEAgLTAsMCArMSwzNiBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9 ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1s cDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2 X3ZlY3Rvci5oIg0KKw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzEg KHNpemVfdCB2bCk7DQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMiAo c2l6ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3Bv aW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0x X3Qgb3AyLA0KKyAgICAgIHVuc2lnbmVkIGNvdW50LCBzaXplX3QgdmwpDQor ew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAo dW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKQ0KKyAgICB7DQorICAg ICAgaWYgKGkgJSAzID09IDApDQorIHsNCisgICB2bCA9IG5vcm1hbGl6ZV92 bF8xICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJt MSAocmVzdWx0LCBvcDIsIHZsKTsNCisgfQ0KKyAgICAgIGVsc2UNCisgew0K KyAgIHZsID0gbm9ybWFsaXplX3ZsXzIgKHZsKTsNCisgICByZXN1bHQgPSBf X3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChvcDEsIHJlc3VsdCwgdmwpOw0KKyB9 DQorICAgIH0NCisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZd XHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gMiB9IH0g Ki8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zy cm1ccytbYXhzXVswLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMiB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtm c3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrWzAxMjM0 XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTUy LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv ZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTIuYw0KbmV3IGZpbGUgbW9kZSAx MDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5hNzNkNDE0ODY2Yg0KLS0tIC9k ZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTUyLmMNCkBAIC0w LDAgKzEsMzYgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8qIHsg ZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMgLVdu by1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCIN CisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8xIChzaXplX3Qgdmwp Ow0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzIgKHNpemVfdCB2bCk7 DQorDQordmZsb2F0MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWlj X2ZybSAodmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisg ICAgICB1bnNpZ25lZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9h dDMybTFfdCByZXN1bHQgPSBvcDE7DQorDQorICBmb3IgKHVuc2lnbmVkIGkg PSAwOyBpIDwgY291bnQ7IGkrKykNCisgICAgew0KKyAgICAgIGlmIChpICUg MyA9PSAwKQ0KKyB7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMSAodmwpOw0K KyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVz dWx0LCB2bCk7DQorIH0NCisgICAgICBlbHNlDQorIHsNCisgICB2bCA9IG5v cm1hbGl6ZV92bF8yICh2bCk7DQorICAgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDEsIHZsKTsNCisgfQ0KKyAg ICB9DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3Zb MC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05XSt9IDIgfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMr W2F4c11bMC05XSt9IDMgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19IDEgfSB9ICovDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMr W2F4c11bMC05XSt9IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLW5vdCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRd fSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTMu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS01My5jDQpuZXcgZmlsZSBtb2RlIDEw MDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjUxMDIxMGI0ZjVhDQotLS0gL2Rl di9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNTMuYw0KQEAgLTAs MCArMSwzOCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBk Zy1vcHRpb25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25v LXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0K Kw0KK2V4dGVybiBzaXplX3Qgbm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2bCk7 DQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMiAoc2l6ZV90IHZsKTsN CisNCit2ZmxvYXQzMm0xX3QNCit0ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNf ZnJtICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAg ICAgIHVuc2lnbmVkIGNvdW50LCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0 MzJtMV90IHJlc3VsdCA9IG9wMTsNCisNCisgIGZvciAodW5zaWduZWQgaSA9 IDA7IGkgPCBjb3VudDsgaSsrKQ0KKyAgICB7DQorICAgICAgaWYgKGkgJSAz ID09IDApDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2Yz Mm0xIChvcDEsIHJlc3VsdCwgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3Zs XzEgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0x IChvcDEsIHJlc3VsdCwgdmwpOw0KKyB9DQorICAgICAgZWxzZQ0KKyB7DQor ICAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAocmVzdWx0LCBv cDIsIHZsKTsNCisgICB2bCA9IG5vcm1hbGl6ZV92bF8yICh2bCk7DQorICAg cmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMSAocmVzdWx0LCBvcDIs IHZsKTsNCisgfQ0KKyAgICB9DQorDQorICByZXR1cm4gcmVzdWx0Ow0KK30N CisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zm YWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlswLTldKyxccypbZmF2XStbMC05 XSt9IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9IDIgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtXHMrW2F4c11b MC05XSt9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLW5vdCB7ZnNybWlccytbMDEyMzRdfSB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0r LFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS01NC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU0LmMNCm5ldyBm aWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uNTJjOTkwMzk1 NjQNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01 NC5jDQpAQCAtMCwwICsxLDM4IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0g Ki8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxw NjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3Zf dmVjdG9yLmgiDQorDQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMSAo c2l6ZV90IHZsKTsNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8yIChz aXplX3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9p bnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFf dCBvcDIsDQorICAgICAgdW5zaWduZWQgY291bnQsIHNpemVfdCB2bCkNCit7 DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgZm9yICh1 bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50OyBpKyspDQorICAgIHsNCisgICAg ICBpZiAoaSAlIDMgPT0gMCkNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3Zf dmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorICAgdmwgPSBu b3JtYWxpemVfdmxfMSAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZh ZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorIH0NCisgICAgICBl bHNlDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0x IChyZXN1bHQsIG9wMiwgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzIg KHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3Jt IChyZXN1bHQsIG9wMiwgNCwgdmwpOw0KKyB9DQorICAgIH0NCisNCisgIHJl dHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAt OV0rLFxzKltmYXZdK1swLTldK30gNCB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30g MyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge2Zzcm1ccytbYXhzXVswLTldK30gNSB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0g MSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90 IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01NS5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5 bmFtaWMtZnJtLTU1LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAw MDAwMDAwMDAwMC4uYTcwZmMxOWI1YzcNCi0tLSAvZGV2L251bGwNCisrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS01NS5jDQpAQCAtMCwwICsxLDM4IEBADQor LyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1t YXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8N CisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0ZXJuIHNp emVfdCBub3JtYWxpemVfdmxfMSAoc2l6ZV90IHZsKTsNCitleHRlcm4gc2l6 ZV90IG5vcm1hbGl6ZV92bF8yIChzaXplX3QgdmwpOw0KKw0KK3ZmbG9hdDMy bTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMy bTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAgdW5zaWduZWQg Y291bnQsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0 ID0gb3AxOw0KKw0KKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50 OyBpKyspDQorICAgIHsNCisgICAgICBpZiAoaSAlIDMgPT0gMCkNCisgew0K KyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVz dWx0LCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMSAodmwpOw0KKyAg IHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0 LCB2bCk7DQorIH0NCisgICAgICBlbHNlDQorIHsNCisgICByZXN1bHQgPSBf X3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgMSwgdmwp Ow0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzIgKHZsKTsNCisgICByZXN1bHQg PSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChyZXN1bHQsIG9wMiwgdmwpOw0K KyB9DQorICAgIH0NCisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZb dmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gNCB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e2Zycm1ccytbYXhzXVswLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30g MyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge2Zzcm1pXHMrWzAxMjM0XX0gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxz KlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS01Ni5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU2LmMNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uODAzZWM4MGI1ZGUN Ci0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01Ni5j DQpAQCAtMCwwICsxLDM4IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8N CisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQg LU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVj dG9yLmgiDQorDQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMSAoc2l6 ZV90IHZsKTsNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8yIChzaXpl X3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRf ZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBv cDIsDQorICAgICAgdW5zaWduZWQgY291bnQsIHNpemVfdCB2bCkNCit7DQor ICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgZm9yICh1bnNp Z25lZCBpID0gMDsgaSA8IGNvdW50OyBpKyspDQorICAgIHsNCisgICAgICBp ZiAoaSAlIDMgPT0gMCkNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZh ZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorICAgdmwgPSBub3Jt YWxpemVfdmxfMSAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRf dnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorIH0NCisgICAgICBlbHNl DQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3Jt IChyZXN1bHQsIG9wMiwgMSwgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3Zs XzIgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0x X3JtIChyZXN1bHQsIG9wMiwgMywgdmwpOw0KKyB9DQorICAgIH0NCisNCisg IHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2 WzAtOV0rLFxzKltmYXZdK1swLTldK30gNCB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTld K30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gNCB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0 XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt bm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0K ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01Ny5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50 LWR5bmFtaWMtZnJtLTU3LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl eCAwMDAwMDAwMDAwMC4uODQ2YWVjZTQzMDcNCi0tLSAvZGV2L251bGwNCisr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS01Ny5jDQpAQCAtMCwwICsxLDM4IEBA DQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMg Ii1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0g Ki8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0ZXJu IHNpemVfdCBub3JtYWxpemVfdmxfMSAoc2l6ZV90IHZsKTsNCitleHRlcm4g c2l6ZV90IG5vcm1hbGl6ZV92bF8yIChzaXplX3QgdmwpOw0KKw0KK3ZmbG9h dDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9h dDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAgdW5zaWdu ZWQgY291bnQsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVz dWx0ID0gb3AxOw0KKw0KKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNv dW50OyBpKyspDQorICAgIHsNCisgICAgICBpZiAoaSAlIDMgPT0gMCkNCisg ew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwg cmVzdWx0LCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMSAodmwpOw0K KyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9wMSwg cmVzdWx0LCAyLCB2bCk7DQorIH0NCisgICAgICBlbHNlDQorIHsNCisgICBy ZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChyZXN1bHQsIG9wMiwg dmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzIgKHZsKTsNCisgICByZXN1 bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChyZXN1bHQsIG9wMiwgdmwp Ow0KKyB9DQorICAgIH0NCisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRc LnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30g NCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge2Zycm1ccytbYXhzXVswLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTld K30gNSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMSB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0r LFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS01OC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTU4LmMNCm5ldyBm aWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYzVmOTZiYzQ1 YzANCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01 OC5jDQpAQCAtMCwwICsxLDM4IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0g Ki8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxw NjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3Zf dmVjdG9yLmgiDQorDQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMSAo c2l6ZV90IHZsKTsNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8yIChz aXplX3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9p bnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFf dCBvcDIsDQorICAgICAgdW5zaWduZWQgY291bnQsIHNpemVfdCB2bCkNCit7 DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgZm9yICh1 bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50OyBpKyspDQorICAgIHsNCisgICAg ICBpZiAoaSAlIDMgPT0gMCkNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3Zf dmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorICAgdmwgPSBu b3JtYWxpemVfdmxfMSAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZh ZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0LCAyLCB2bCk7DQorIH0NCisg ICAgICBlbHNlDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2 X2YzMm0xIChyZXN1bHQsIG9wMiwgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXpl X3ZsXzIgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2Yz Mm0xX3JtIChyZXN1bHQsIG9wMiwgMSwgdmwpOw0KKyB9DQorICAgIH0NCisN CisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxc cyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gNCB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVsw LTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gNCB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAx MjM0XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAq Lw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01OS5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTU5LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQpp bmRleCAwMDAwMDAwMDAwMC4uMDZjN2ZjZjFiODkNCi0tLSAvZGV2L251bGwN CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS01OS5jDQpAQCAtMCwwICsxLDM4 IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlv bnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmki IH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0 ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMSAoc2l6ZV90IHZsKTsNCitleHRl cm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8yIChzaXplX3QgdmwpOw0KKw0KK3Zm bG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZm bG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAgdW5z aWduZWQgY291bnQsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3Qg cmVzdWx0ID0gb3AxOw0KKw0KKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8 IGNvdW50OyBpKyspDQorICAgIHsNCisgICAgICBpZiAoaSAlIDMgPT0gMCkN Cisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9w MSwgcmVzdWx0LCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMSAodmwp Ow0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9w MSwgcmVzdWx0LCAyLCB2bCk7DQorIH0NCisgICAgICBlbHNlDQorIHsNCisg ICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQs IG9wMiwgMywgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzIgKHZsKTsN CisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChyZXN1bHQs IG9wMiwgdmwpOw0KKyB9DQorICAgIH0NCisNCisgIHJldHVybiByZXN1bHQ7 DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZd K1swLTldK30gNCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMyB9IH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytb YXhzXVswLTldK30gNCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMiB9IH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1th eHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS02MC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYw LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4u YWQzYTdmODFhNjkNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS02MC5jDQpAQCAtMCwwICsxLDM4IEBADQorLyogeyBkZy1kbyBj b21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2 IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVk ZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0ZXJuIHNpemVfdCBub3JtYWxp emVfdmxfMSAoc2l6ZV90IHZsKTsNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6 ZV92bF8yIChzaXplX3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3Rf ZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZm bG9hdDMybTFfdCBvcDIsDQorICAgICAgdW5zaWduZWQgY291bnQsIHNpemVf dCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0K KyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50OyBpKyspDQorICAg IHsNCisgICAgICBpZiAoaSAlIDMgPT0gMCkNCisgew0KKyAgIHJlc3VsdCA9 IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQor ICAgdmwgPSBub3JtYWxpemVfdmxfMSAodmwpOw0KKyAgIHJlc3VsdCA9IF9f cmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0LCAyLCB2bCk7 DQorIH0NCisgICAgICBlbHNlDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2 X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgMywgdmwpOw0KKyAg IHZsID0gbm9ybWFsaXplX3ZsXzIgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jp c2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgNCwgdmwpOw0K KyB9DQorICAgIH0NCisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZb dmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gNCB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e2Zycm1ccytbYXhzXVswLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30g MyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge2Zzcm1pXHMrWzAxMjM0XX0gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxz KlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS02MS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYxLmMNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uMGFlOWM2N2NlODYN Ci0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02MS5j DQpAQCAtMCwwICsxLDM4IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8N CisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQg LU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVj dG9yLmgiDQorDQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMSAoc2l6 ZV90IHZsKTsNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8yIChzaXpl X3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRf ZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBv cDIsDQorICAgICAgdW5zaWduZWQgY291bnQsIHNpemVfdCB2bCkNCit7DQor ICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgZm9yICh1bnNp Z25lZCBpID0gMDsgaSA8IGNvdW50OyBpKyspDQorICAgIHsNCisgICAgICBp ZiAoaSAlIDMgPT0gMCkNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZh ZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0LCAxLCB2bCk7DQorICAgdmwg PSBub3JtYWxpemVfdmxfMSAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3Zf dmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorIH0NCisgICAg ICBlbHNlDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2Yz Mm0xIChyZXN1bHQsIG9wMiwgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3Zs XzIgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0x IChyZXN1bHQsIG9wMiwgdmwpOw0KKyB9DQorICAgIH0NCisNCisgIHJldHVy biByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0r LFxzKltmYXZdK1swLTldK30gNCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMyB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e2Zzcm1ccytbYXhzXVswLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMSB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtm c3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02Mi5jIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTYyLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAw MDAwMDAwMC4uMWRkNWE2M2IzODENCi0tLSAvZGV2L251bGwNCisrKyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS02Mi5jDQpAQCAtMCwwICsxLDM4IEBADQorLyog eyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJj aD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisN CisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0ZXJuIHNpemVf dCBub3JtYWxpemVfdmxfMSAoc2l6ZV90IHZsKTsNCitleHRlcm4gc2l6ZV90 IG5vcm1hbGl6ZV92bF8yIChzaXplX3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFf dA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFf dCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAgdW5zaWduZWQgY291 bnQsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0g b3AxOw0KKw0KKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50OyBp KyspDQorICAgIHsNCisgICAgICBpZiAoaSAlIDMgPT0gMCkNCisgew0KKyAg IHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVz dWx0LCAxLCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMSAodmwpOw0K KyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVz dWx0LCB2bCk7DQorIH0NCisgICAgICBlbHNlDQorIHsNCisgICByZXN1bHQg PSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChyZXN1bHQsIG9wMiwgdmwpOw0K KyAgIHZsID0gbm9ybWFsaXplX3ZsXzIgKHZsKTsNCisgICByZXN1bHQgPSBf X3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgMiwgdmwp Ow0KKyB9DQorICAgIH0NCisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRc LnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30g NCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge2Zycm1ccytbYXhzXVswLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTld K30gNCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0r LFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5h bWljLWZybS02My5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTYzLmMNCm5ldyBm aWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uZjczMzgzZmMy NzkNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02 My5jDQpAQCAtMCwwICsxLDM4IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0g Ki8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxw NjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3Zf dmVjdG9yLmgiDQorDQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMSAo c2l6ZV90IHZsKTsNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8yIChz aXplX3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9p bnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFf dCBvcDIsDQorICAgICAgdW5zaWduZWQgY291bnQsIHNpemVfdCB2bCkNCit7 DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgZm9yICh1 bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50OyBpKyspDQorICAgIHsNCisgICAg ICBpZiAoaSAlIDMgPT0gMCkNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3Zf dmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0LCAxLCB2bCk7DQorICAg dmwgPSBub3JtYWxpemVfdmxfMSAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlz Y3ZfdmZhZGRfdnZfZjMybTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorIH0NCisg ICAgICBlbHNlDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2 X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgMywgdmwpOw0KKyAgIHZsID0gbm9y bWFsaXplX3ZsXzIgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRk X3Z2X2YzMm0xIChyZXN1bHQsIG9wMiwgdmwpOw0KKyB9DQorICAgIH0NCisN CisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxc cyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gNCB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVsw LTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gNCB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAx MjM0XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAq Lw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02NC5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTY0LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQpp bmRleCAwMDAwMDAwMDAwMC4uZWQ2ZjIyYzQxZDENCi0tLSAvZGV2L251bGwN CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02NC5jDQpAQCAtMCwwICsxLDM4 IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlv bnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmki IH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0 ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMSAoc2l6ZV90IHZsKTsNCitleHRl cm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8yIChzaXplX3QgdmwpOw0KKw0KK3Zm bG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZm bG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAgdW5z aWduZWQgY291bnQsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3Qg cmVzdWx0ID0gb3AxOw0KKw0KKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8 IGNvdW50OyBpKyspDQorICAgIHsNCisgICAgICBpZiAoaSAlIDMgPT0gMCkN Cisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0g KG9wMSwgcmVzdWx0LCAxLCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxf MSAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEg KG9wMSwgcmVzdWx0LCB2bCk7DQorIH0NCisgICAgICBlbHNlDQorIHsNCisg ICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQs IG9wMiwgMywgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzIgKHZsKTsN CisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1 bHQsIG9wMiwgNCwgdmwpOw0KKyB9DQorICAgIH0NCisNCisgIHJldHVybiBy ZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxz KltmYXZdK1swLTldK30gNCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMyB9IH0g Ki8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zz cm1ccytbYXhzXVswLTldK30gNCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMyB9IH0g Ki8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3Jt aVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9m bG9hdC1wb2ludC1keW5hbWljLWZybS02NS5jIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMt ZnJtLTY1LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAw MDAwMC4uM2U0M2FlY2Q5MTMNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2lu dC1keW5hbWljLWZybS02NS5jDQpAQCAtMCwwICsxLDM4IEBADQorLyogeyBk Zy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1y djY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisj aW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0ZXJuIHNpemVfdCBu b3JtYWxpemVfdmxfMSAoc2l6ZV90IHZsKTsNCitleHRlcm4gc2l6ZV90IG5v cm1hbGl6ZV92bF8yIChzaXplX3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFfdA0K K3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBv cDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAgdW5zaWduZWQgY291bnQs IHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3Ax Ow0KKw0KKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50OyBpKysp DQorICAgIHsNCisgICAgICBpZiAoaSAlIDMgPT0gMCkNCisgew0KKyAgIHJl c3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0 LCAxLCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMSAodmwpOw0KKyAg IHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVz dWx0LCAyLCB2bCk7DQorIH0NCisgICAgICBlbHNlDQorIHsNCisgICByZXN1 bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChyZXN1bHQsIG9wMiwgdmwp Ow0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzIgKHZsKTsNCisgICByZXN1bHQg PSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChyZXN1bHQsIG9wMiwgdmwpOw0K KyB9DQorICAgIH0NCisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZb dmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gNCB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e2Zycm1ccytbYXhzXVswLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30g NCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge2Zzcm1pXHMrWzAxMjM0XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxz KlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWlj LWZybS02Ni5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJtLTY2LmMNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uZWE5OTgzMWYzMWYN Ci0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02Ni5j DQpAQCAtMCwwICsxLDM4IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8N CisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQg LU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVj dG9yLmgiDQorDQorZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMSAoc2l6 ZV90IHZsKTsNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8yIChzaXpl X3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRf ZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBv cDIsDQorICAgICAgdW5zaWduZWQgY291bnQsIHNpemVfdCB2bCkNCit7DQor ICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgZm9yICh1bnNp Z25lZCBpID0gMDsgaSA8IGNvdW50OyBpKyspDQorICAgIHsNCisgICAgICBp ZiAoaSAlIDMgPT0gMCkNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZh ZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0LCAxLCB2bCk7DQorICAgdmwg PSBub3JtYWxpemVfdmxfMSAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3Zf dmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVzdWx0LCAyLCB2bCk7DQorIH0N CisgICAgICBlbHNlDQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRk X3Z2X2YzMm0xIChyZXN1bHQsIG9wMiwgdmwpOw0KKyAgIHZsID0gbm9ybWFs aXplX3ZsXzIgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2 X2YzMm0xX3JtIChyZXN1bHQsIG9wMiwgNCwgdmwpOw0KKyB9DQorICAgIH0N CisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTld Kyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30gNCB9IH0gKi8NCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhz XVswLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMyB9IH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMr WzAxMjM0XX0gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0g fSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02Ny5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0 LXBvaW50LWR5bmFtaWMtZnJtLTY3LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQppbmRleCAwMDAwMDAwMDAwMC4uMzQ0NzAxZjNjYjUNCi0tLSAvZGV2L251 bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02Ny5jDQpAQCAtMCwwICsx LDM4IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9w dGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNh YmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQor ZXh0ZXJuIHNpemVfdCBub3JtYWxpemVfdmxfMSAoc2l6ZV90IHZsKTsNCitl eHRlcm4gc2l6ZV90IG5vcm1hbGl6ZV92bF8yIChzaXplX3QgdmwpOw0KKw0K K3ZmbG9hdDMybTFfdA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0g KHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAg dW5zaWduZWQgY291bnQsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0x X3QgcmVzdWx0ID0gb3AxOw0KKw0KKyAgZm9yICh1bnNpZ25lZCBpID0gMDsg aSA8IGNvdW50OyBpKyspDQorICAgIHsNCisgICAgICBpZiAoaSAlIDMgPT0g MCkNCisgew0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFf cm0gKG9wMSwgcmVzdWx0LCAxLCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVf dmxfMSAodmwpOw0KKyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMy bTFfcm0gKG9wMSwgcmVzdWx0LCAyLCB2bCk7DQorIH0NCisgICAgICBlbHNl DQorIHsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3Jt IChyZXN1bHQsIG9wMiwgMywgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3Zs XzIgKHZsKTsNCisgICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0x IChyZXN1bHQsIG9wMiwgdmwpOw0KKyB9DQorICAgIH0NCisNCisgIHJldHVy biByZXN1bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0r LFxzKltmYXZdK1swLTldK30gNCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMyB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e2Zzcm1ccytbYXhzXVswLTldK30gNCB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMyB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtm c3JtaVxzK1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9mbG9hdC1wb2ludC1keW5hbWljLWZybS02OC5jIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTY4LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAw MDAwMDAwMC4uMWRiZjZkYmEyMDgNCi0tLSAvZGV2L251bGwNCisrKyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1w b2ludC1keW5hbWljLWZybS02OC5jDQpAQCAtMCwwICsxLDM4IEBADQorLyog eyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJj aD1ydjY0Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisN CisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0ZXJuIHNpemVf dCBub3JtYWxpemVfdmxfMSAoc2l6ZV90IHZsKTsNCitleHRlcm4gc2l6ZV90 IG5vcm1hbGl6ZV92bF8yIChzaXplX3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFf dA0KK3Rlc3RfZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFf dCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsDQorICAgICAgdW5zaWduZWQgY291 bnQsIHNpemVfdCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0g b3AxOw0KKw0KKyAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50OyBp KyspDQorICAgIHsNCisgICAgICBpZiAoaSAlIDMgPT0gMCkNCisgew0KKyAg IHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9wMSwgcmVz dWx0LCAxLCB2bCk7DQorICAgdmwgPSBub3JtYWxpemVfdmxfMSAodmwpOw0K KyAgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMybTFfcm0gKG9wMSwg cmVzdWx0LCAyLCB2bCk7DQorIH0NCisgICAgICBlbHNlDQorIHsNCisgICBy ZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQsIG9w MiwgMywgdmwpOw0KKyAgIHZsID0gbm9ybWFsaXplX3ZsXzIgKHZsKTsNCisg ICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIChyZXN1bHQs IG9wMiwgNCwgdmwpOw0KKyB9DQorICAgIH0NCisNCisgIHJldHVybiByZXN1 bHQ7DQorfQ0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltm YXZdK1swLTldK30gNCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMyB9IH0gKi8N CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1c cytbYXhzXVswLTldK30gMyB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gNCB9IH0gKi8N CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxz K1theHNdWzAtOV0rLFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9h dC1wb2ludC1keW5hbWljLWZybS02OS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFtaWMtZnJt LTY5LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAw MC4uYjA4YWIxZWY2MDUNCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS02OS5jDQpAQCAtMCwwICsxLDMxIEBADQorLyogeyBkZy1k byBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0 Z2N2IC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5j bHVkZSAicmlzY3ZfdmVjdG9yLmgiDQorDQorZXh0ZXJuIHNpemVfdCBub3Jt YWxpemVfdmxfMSAoc2l6ZV90IHZsKTsNCisNCit2ZmxvYXQzMm0xX3QNCit0 ZXN0X2Zsb2F0X3BvaW50X2R5bmFtaWNfZnJtICh2ZmxvYXQzMm0xX3Qgb3Ax LCB2ZmxvYXQzMm0xX3Qgb3AyLA0KKyAgICAgIHVuc2lnbmVkIGNvdW50LCBz aXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJlc3VsdDsNCisgIHZm bG9hdDMybTFfdCBmMzJfcmVzID0gb3AxOw0KKyAgdmludDMybTFfdCBpMzJf cmVzID0gX19yaXNjdl92cmVpbnRlcnByZXRfdl9mMzJtMV9pMzJtMSAob3Ay KTsNCisNCisgIGlmIChjb3VudCAmIHZsID09IDB4MWYpDQorICAgIGkzMl9y ZXMgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMybTEgKGkzMl9yZXMsIGkzMl9yZXMs IHZsKTsNCisgIGVsc2UNCisgICAgdmwgPSBub3JtYWxpemVfdmxfMSAodmwp Ow0KKw0KKyAgZjMyX3JlcyA9IF9fcmlzY3ZfdnJlaW50ZXJwcmV0X3ZfaTMy bTFfZjMybTEgKGkzMl9yZXMpOw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFk ZF92dl9mMzJtMV9ybSAoZjMyX3Jlcywgb3AyLCA0LCB2bCk7DQorDQorICBy ZXR1cm4gcmVzdWx0Ow0KK30NCisNCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZmYWRkXC52W3ZmXVxzK3ZbMC05XSssXHMqdlsw LTldKyxccypbZmF2XStbMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmcnJtXHMrW2F4c11bMC05XSt9 IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtmc3JtXHMrW2F4c11bMC05XSt9IDEgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtmc3JtaVxzK1swMTIzNF19 IDEgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5v dCB7ZnNybWlccytbYXhzXVswLTldKyxccypbMDEyMzRdfSB9IH0gKi8NCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNzAuYyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1k eW5hbWljLWZybS03MC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMDAwMDAuLjVhMmI4YTE2OTUyDQotLS0gL2Rldi9udWxsDQorKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxv YXQtcG9pbnQtZHluYW1pYy1mcm0tNzAuYw0KQEAgLTAsMCArMSwyOCBAQA0K Ky8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICIt bWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICov DQorDQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK2V4dGVybiBz aXplX3Qgbm9ybWFsaXplX3ZsXzEgKHNpemVfdCB2bCk7DQorDQordmZsb2F0 MzJtMV90DQordGVzdF9mbG9hdF9wb2ludF9keW5hbWljX2ZybSAodmZsb2F0 MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwNCisgICAgICB1bnNpZ25l ZCBjb3VudCwgc2l6ZV90IHZsKQ0KK3sNCisgIHZmbG9hdDMybTFfdCByZXN1 bHQgPSBvcDE7DQorDQorICBpZiAoY291bnQgJiB2bCA9PSAweDFmKQ0KKyAg ICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xIChyZXN1bHQsIG9w MiwgdmwpOw0KKyAgZWxzZQ0KKyAgICB2bCA9IG5vcm1hbGl6ZV92bF8xICh2 bCk7DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3Jt IChyZXN1bHQsIG9wMiwgMywgdmwpOw0KKw0KKyAgcmV0dXJuIHJlc3VsdDsN Cit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2ZmFkZFwudlt2Zl1ccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2Zhdl0r WzAtOV0rfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7ZnJybVxzK1theHNdWzAtOV0rfSAyIH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7ZnNybVxzK1th eHNdWzAtOV0rfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAxIH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4 c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWR5bmFtaWMtZnJtLTcxLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZHluYW1pYy1mcm0tNzEu Yw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi4x ODVhMDRjYzJiZA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWR5bmFt aWMtZnJtLTcxLmMNCkBAIC0wLDAgKzEsMjggQEANCisvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3Yg LW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRl ICJyaXNjdl92ZWN0b3IuaCINCisNCitleHRlcm4gc2l6ZV90IG5vcm1hbGl6 ZV92bF8xIChzaXplX3QgdmwpOw0KKw0KK3ZmbG9hdDMybTFfdA0KK3Rlc3Rf ZmxvYXRfcG9pbnRfZHluYW1pY19mcm0gKHZmbG9hdDMybTFfdCBvcDEsIHZm bG9hdDMybTFfdCBvcDIsDQorICAgICAgdW5zaWduZWQgY291bnQsIHNpemVf dCB2bCkNCit7DQorICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AxOw0KKw0K KyAgaWYgKGNvdW50ICYgdmwgPT0gMHgxZikNCisgICAgcmVzdWx0ID0gX19y aXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0LCBvcDIsIDEsIHZsKTsN CisgIGVsc2UNCisgICAgdmwgPSBub3JtYWxpemVfdmxfMSAodmwpOw0KKw0K KyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9mMzJtMV9ybSAocmVzdWx0 LCBvcDIsIDMsIHZsKTsNCisNCisgIHJldHVybiByZXN1bHQ7DQorfQ0KKw0K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRc LnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1swLTldK30g MiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge2Zycm1ccytbYXhzXVswLTldK30gMiB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTld K30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge2Zzcm1pXHMrWzAxMjM0XX0gMiB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtmc3JtaVxzK1theHNdWzAtOV0r LFxzKlswMTIzNF19IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0t aW5zZXJ0LTcuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9mbG9hdC1wb2ludC1mcm0taW5zZXJ0LTcuYw0KaW5kZXggMTJk YjExMmRkMGIuLjZkZTlkMDZiODc1IDEwMDY0NA0KLS0tIGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZy bS1pbnNlcnQtNy5jDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLWluc2VydC03LmMNCkBA IC0yNiw2ICsyNiw3IEBAIHRlc3RfZmxvYXRfcG9pbnRfZnJtX3N0YXRpYyAo ZmxvYXQgKm91dCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9w MiwNCn0NCi8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dmZhZGRcLnZbdmZdXHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltmYXZdK1sw LTldK30gMiB9IH0gKi8NCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge2Zzcm1ccytbYXhzXVswLTldK30gMSB9IH0gKi8NCi0vKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zycm1ccytbYXhz XVswLTldK30gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge2Zycm1ccytbYXhzXVswLTldK30gMiB9IH0gKi8NCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge2Zzcm1ccytb YXhzXVswLTldK30gMiB9IH0gKi8NCi8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7ZnNybWlccytbMDEyMzRdfSAyIH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qge2Zzcm1pXHMrW2F4 c11bMC05XSssXHMqWzAxMjM0XX0gfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2Zsb2F0LXBv aW50LWZybS1ydW4tNC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL2Zsb2F0LXBvaW50LWZybS1ydW4tNC5jDQpuZXcgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjU3OTZhYTUzYTcz DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLXJ1bi00LmMNCkBA IC0wLDAgKzEsODIgQEANCisvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCB7IHJp c2N2X3ZlY3RvciB9IH0gfSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLU8zIC1X bm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgi DQorI2luY2x1ZGUgPHN0ZGlvLmg+DQorI2luY2x1ZGUgPHN0ZGludC1nY2Mu aD4NCisNCisjZGVmaW5lIE9SSUdJTkFMX0ZSTSAxDQorDQorc3RhdGljIGlu dA0KK2dldF9mcm0gKCkNCit7DQorICBpbnQgZnJtID0gLTE7DQorDQorICBf X2FzbV9fIHZvbGF0aWxlICgNCisgICAgImZycm0gJTAiDQorICAgIDoiPXIi KGZybSkNCisgICAgOg0KKyAgICA6DQorICApOw0KKw0KKyAgcmV0dXJuIGZy bTsNCit9DQorDQorc3RhdGljIHZvaWQNCitzZXRfZnJtIChpbnQgZnJtKQ0K K3sNCisgIF9fYXNtX18gdm9sYXRpbGUgKA0KKyAgICAiZnNybSAlMCINCisg ICAgOg0KKyAgICA6InIiKGZybSkNCisgICAgOg0KKyAgKTsNCit9DQorDQor c3RhdGljIGlubGluZSB2b2lkDQorYXNzZXJ0X2VxdWFsIChpbnQgYSwgaW50 IGIsIGNoYXIgKm1lc3NhZ2UpDQorew0KKyAgaWYgKGEgIT0gYikNCisgICAg ew0KKyAgICAgIGZwcmludGYgKHN0ZG91dCwgIiVzLCBidXQgZ2V0ICVkICE9 ICVkXG4iLCBtZXNzYWdlLCBhLCBiKTsNCisgICAgICBfX2J1aWx0aW5fYWJv cnQgKCk7DQorICAgIH0NCit9DQorDQordmZsb2F0MzJtMV90IF9fYXR0cmli dXRlX18gKChub2lubGluZSkpDQorb3RoZXJfZnVuY3Rpb24gKHZmbG9hdDMy bTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCB2bCkNCit7DQor ICB2ZmxvYXQzMm0xX3QgcmVzdWx0ID0gb3AyOw0KKw0KKyAgcmVzdWx0ID0g X19yaXNjdl92ZmFkZF92dl9mMzJtMSAob3AxLCByZXN1bHQsIHZsKTsNCisN CisgIGFzc2VydF9lcXVhbCAoT1JJR0lOQUxfRlJNLCBnZXRfZnJtICgpLA0K KyAiVGhlIHZhbHVlIG9mIGZybSByZWdpc3RlciBzaG91bGQgYmUgT1JJR0lO QUxfRlJNLiIpOw0KKw0KKyAgcmV0dXJuIHJlc3VsdDsNCit9DQorDQordmZs b2F0MzJtMV90IF9fYXR0cmlidXRlX18gKChub2lubGluZSkpDQordGVzdF9m bG9hdF9wb2ludF9mcm1fcnVuICh2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQz Mm0xX3Qgb3AyLCBzaXplX3QgdmwpDQorew0KKyAgdmZsb2F0MzJtMV90IHJl c3VsdCA9IHt9Ow0KKw0KKyAgcmVzdWx0ID0gX19yaXNjdl92ZmFkZF92dl9m MzJtMV9ybSAob3AxLCByZXN1bHQsIDQsIHZsKTsNCisNCisgIGFzc2VydF9l cXVhbCAoNCwgZ2V0X2ZybSAoKSwgIlRoZSB2YWx1ZSBvZiBmcm0gcmVnaXN0 ZXIgc2hvdWxkIGJlIDQuIik7DQorDQorICByZXR1cm4gb3RoZXJfZnVuY3Rp b24gKHJlc3VsdCwgb3AyLCB2bCk7DQorfQ0KKw0KK2ludA0KK21haW4gKCkN Cit7DQorICBzaXplX3QgdmwgPSA4Ow0KKyAgdmZsb2F0MzJtMV90IG9wMSA9 IHt9Ow0KKyAgdmZsb2F0MzJtMV90IG9wMiA9IHt9Ow0KKw0KKyAgc2V0X2Zy bSAoT1JJR0lOQUxfRlJNKTsNCisgIHRlc3RfZmxvYXRfcG9pbnRfZnJtX3J1 biAob3AxLCBvcDIsIHZsKTsNCisNCisgIHJldHVybiAwOw0KK30NCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2UvZmxvYXQtcG9pbnQtZnJtLXJ1bi01LmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvZmxvYXQtcG9pbnQtZnJtLXJ1bi01 LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4u MjA4YTY1ZmNkM2ENCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9mbG9hdC1wb2ludC1mcm0t cnVuLTUuYw0KQEAgLTAsMCArMSw4MyBAQA0KKy8qIHsgZGctZG8gcnVuIHsg dGFyZ2V0IHsgcmlzY3ZfdmVjdG9yIH0gfSB9ICovDQorLyogeyBkZy1vcHRp b25zICItTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJyaXNj dl92ZWN0b3IuaCINCisjaW5jbHVkZSA8c3RkaW8uaD4NCisjaW5jbHVkZSA8 c3RkaW50LWdjYy5oPg0KKw0KKyNkZWZpbmUgT1JJR0lOQUxfRlJNIDENCisj ZGVmaW5lIE5FV19GUk0gNA0KKw0KK3N0YXRpYyBpbnQNCitnZXRfZnJtICgp DQorew0KKyAgaW50IGZybSA9IC0xOw0KKw0KKyAgX19hc21fXyB2b2xhdGls ZSAoDQorICAgICJmcnJtICUwIg0KKyAgICA6Ij1yIihmcm0pDQorICAgIDoN CisgICAgOg0KKyAgKTsNCisNCisgIHJldHVybiBmcm07DQorfQ0KKw0KK3N0 YXRpYyB2b2lkDQorc2V0X2ZybSAoaW50IGZybSkNCit7DQorICBfX2FzbV9f IHZvbGF0aWxlICgNCisgICAgImZzcm0gJTAiDQorICAgIDoNCisgICAgOiJy Iihmcm0pDQorICAgIDoNCisgICk7DQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUg dm9pZA0KK2Fzc2VydF9lcXVhbCAoaW50IGEsIGludCBiLCBjaGFyICptZXNz YWdlKQ0KK3sNCisgIGlmIChhICE9IGIpDQorICAgIHsNCisgICAgICBmcHJp bnRmIChzdGRvdXQsICIlcywgYnV0IGdldCAlZCAhPSAlZFxuIiwgbWVzc2Fn ZSwgYSwgYik7DQorICAgICAgX19idWlsdGluX2Fib3J0ICgpOw0KKyAgICB9 DQorfQ0KKw0KK3ZvaWQgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkNCitv dGhlcl9mdW5jdGlvbiAoKQ0KK3sNCisgIHNldF9mcm0gKE5FV19GUk0pOw0K K30NCisNCit2ZmxvYXQzMm0xX3QgX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5l KSkNCit0ZXN0X2Zsb2F0X3BvaW50X2ZybV9ydW4gKHZmbG9hdDMybTFfdCBv cDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCB2bCkNCit7DQorICB2Zmxv YXQzMm0xX3QgcmVzdWx0ID0ge307DQorDQorICBvdGhlcl9mdW5jdGlvbiAo KTsNCisgIGFzc2VydF9lcXVhbCAoTkVXX0ZSTSwgZ2V0X2ZybSAoKSwNCisg IlRoZSB2YWx1ZSBvZiBmcm0gcmVnaXN0ZXIgc2hvdWxkIGJlIE5FV19GUk0u Iik7DQorDQorICByZXN1bHQgPSBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3Jt IChvcDEsIHJlc3VsdCwgMiwgdmwpOw0KKyAgYXNzZXJ0X2VxdWFsICgyLCBn ZXRfZnJtICgpLCAiVGhlIHZhbHVlIG9mIGZybSByZWdpc3RlciBzaG91bGQg YmUgMi4iKTsNCisNCisgIHJlc3VsdCA9IF9fcmlzY3ZfdmZhZGRfdnZfZjMy bTEgKG9wMSwgcmVzdWx0LCB2bCk7DQorICBhc3NlcnRfZXF1YWwgKE5FV19G Uk0sIGdldF9mcm0gKCksDQorICJUaGUgdmFsdWUgb2YgZnJtIHJlZ2lzdGVy IHNob3VsZCBiZSBORVdfRlJNLiIpOw0KKw0KKyAgcmV0dXJuIHJlc3VsdDsN Cit9DQorDQoraW50DQorbWFpbiAoKQ0KK3sNCisgIHNpemVfdCB2bCA9IDg7 DQorICB2ZmxvYXQzMm0xX3Qgb3AxID0ge307DQorICB2ZmxvYXQzMm0xX3Qg b3AyID0ge307DQorDQorICBzZXRfZnJtIChPUklHSU5BTF9GUk0pOw0KKyAg dGVzdF9mbG9hdF9wb2ludF9mcm1fcnVuIChvcDEsIG9wMiwgdmwpOw0KKw0K KyAgcmV0dXJuIDA7DQorfQ0KLS0gDQoyLjM0LjENCiANCiANCg== ------=_001_NextPart455468604285_=------