From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbg153.qq.com (smtpbg153.qq.com [13.245.218.24]) by sourceware.org (Postfix) with ESMTPS id 50A423858D1E for ; Wed, 1 Nov 2023 00:26:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 50A423858D1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 50A423858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=13.245.218.24 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698798399; cv=none; b=Tn5BCvrsyS08J45MNWecl1Sf38IWPSykd7MtumLnOVD5rYRorhIqFJNd4lyLjDterF5GIokg/G1JmjSqGs1IC5ihDzvLsk0SwGjmO99N+f7kWA8y5TesmD2OWd2WnOpy8mwRAIH5TtLOfP3oImjE+w+TrbpejsuZlZfHMm9duNE= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698798399; c=relaxed/simple; bh=I4Uku2KW3qEiyJotXvVfqFzDLEzBZ3EwEaBsEY4FEg0=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=PA+V6J8O1vS1EiWKlBzwtjzKu+vji/1FtjUSncKxnSH4OcaP+7iee1fPPjvGc83fYqA0FSkewXoF7pluvd4xBHhxA+DeN9f/MP8wWc18lZRwOXCtkMPRrr5lIEeyHcd9vSOfCDUO6JZBhvtgeViN9BaEs6IKwSqmPIB1QNUgF8k= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp62t1698798373thel1r3p Received: from LAPTOP-EPITNQBU ( [113.104.224.227]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 01 Nov 2023 08:26:12 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: HL//fcJeOHzDakUwv2pqYSi9vGQtXjW/1guaQPHwvyk97yn/sCAzHDYFNGCfI 3oOsD4TMfTT3I+JO7S9G9vLeYbjyh6PS68Dj85p3zLw6rhJwnVOQWfq/zL4LHK/UjN2Pvcv yh87hOBCSGLsLsGXMHLY7Zj0DKgwjVcUJTga30/pZzoIjyAIV5emcTfm3Me5IaJMVOnVuNx s1TfV5tI/053hCa3+eSaiyANztBylS5+s1ix/ZaRDHgTZAOXELoKeEc1fUIzL7yH591Mg4L azeKlR9hOc6LM0aG9+EsEM1hUQjUGs2cynN2r+ROP4KPWNbgsq5t2O1zV87u++T/Ho06kjI 2Uxj6xQumDHjdx8nqZRRxQMl4o3UDexVktvB31l0CktT6eMR1RklFrlLFjtOblayDrHRZob HlrT4TWXbms= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 6629364339242432749 Date: Wed, 1 Nov 2023 08:26:12 +0800 From: "juzhe.zhong@rivai.ai" To: "Li Xu" Cc: gcc-patches , kito.cheng , palmer Subject: Re: Re: [PATCH v6] RISC-V: Implement RESOLVE_OVERLOADED_BUILTIN for RVV intrinsic References: <20231031090331.4208-1-xuli1@eswincomputing.com>, <0305AEF5F112B856+202310311707113330371@rivai.ai>, <6c0b56b1.14a3.18b8585c501.Coremail.xuli1@eswincomputing.com> X-Priority: 3 X-GUID: 7AAFFB75-B1AA-402E-B5FA-6DA7AA1ED10F X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart177684503014_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-8.3 required=5.0 tests=BAYES_00,BODY_8BITS,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SCC_10_SHORT_WORD_LINES,SCC_20_SHORT_WORD_LINES,SCC_35_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. ------=_001_NextPart177684503014_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 VGhhbmtzIExpWHUuDQoNCkhpLCBraXRvLiBDb3VsZCB5b3UgcmV2aWV3IHRo aXMgcGF0Y2ggPw0KDQoNCg0KanV6aGUuemhvbmdAcml2YWkuYWkNCiANCkZy b206IExpIFh1DQpEYXRlOiAyMDIzLTEwLTMxIDE5OjM2DQpUbzoganV6aGUu emhvbmdAcml2YWkuYWkNCkNDOiBnY2MtcGF0Y2hlczsga2l0by5jaGVuZzsg cGFsbWVyDQpTdWJqZWN0OiBSZTogUmU6IFtQQVRDSCB2Nl0gUklTQy1WOiBJ bXBsZW1lbnQgUkVTT0xWRV9PVkVSTE9BREVEX0JVSUxUSU4gZm9yIFJWViBp bnRyaW5zaWMNCkFsbCBvdmVybG9hZCBhbmQgbm9uLW92ZXJsb2FkIGludHJp bnNpY3MgaGF2ZSBiZWVuIHRlc3RlZCBzdWNjZXNzZnVsbHkgb24gZ2NjIGFu ZCBnKysuDQogDQpUaGFua3MuDQogDQogDQo+IC0tLS0t5Y6f5aeL6YKu5Lu2 LS0tLS3lj5Hku7bkuro6Imp1emhlLnpob25nQHJpdmFpLmFpIiA8anV6aGUu emhvbmdAcml2YWkuYWk+5Y+R6YCB5pe26Ze0OjIwMjMtMTAtMzEgMTc6MDc6 MTEgKOaYn+acn+S6jCnmlLbku7bkuro6IkxpIFh1IiA8eHVsaTFAZXN3aW5j b21wdXRpbmcuY29tPiwgZ2NjLXBhdGNoZXMgPGdjYy1wYXRjaGVzQGdjYy5n bnUub3JnPuaKhOmAgToia2l0by5jaGVuZyIgPGtpdG8uY2hlbmdAZ21haWwu Y29tPiwgcGFsbWVyIDxwYWxtZXJAZGFiYmVsdC5jb20+LCAiTGkgWHUiIDx4 dWxpMUBlc3dpbmNvbXB1dGluZy5jb20+5Li76aKYOlJlOiBbUEFUQ0ggdjZd IFJJU0MtVjogSW1wbGVtZW50IFJFU09MVkVfT1ZFUkxPQURFRF9CVUlMVElO IGZvciBSVlYgaW50cmluc2ljDQo+IA0KPiBMR1RNIGZyb20gbXkgc2lkZS4N Cj4gDQo+IEdpdmUga2l0byBvbmUgbW9yZSBkYXkgdG8gcmV2aWV3IGl0Lg0K PiANCj4gVGhhbmtzIGZvciBzdXBwb3J0IHRoaXMgZmVhdHVyZSAhDQo+IA0K PiBqdXpoZS56aG9uZ0ByaXZhaS5haQ0KPiAgDQo+IEZyb206IExpIFh1DQo+ IERhdGU6IDIwMjMtMTAtMzEgMTc6MDMNCj4gVG86IGdjYy1wYXRjaGVzDQo+ IENDOiBraXRvLmNoZW5nOyBwYWxtZXI7IGp1emhlLnpob25nOyB4dWxpDQo+ IFN1YmplY3Q6IFtQQVRDSCB2Nl0gUklTQy1WOiBJbXBsZW1lbnQgUkVTT0xW RV9PVkVSTE9BREVEX0JVSUxUSU4gZm9yIFJWViBpbnRyaW5zaWMNCj4gRnJv bTogeHVsaSA8eHVsaTFAZXN3aW5jb21wdXRpbmcuY29tPg0KPiAgDQo+IFVw ZGF0ZSBpbiB2NjoNCj4gKiBSZW5hbWUgbWF5YmVfcmVxdWlyZV9mcm1fcCB0 byBtYXlfcmVxdWlyZV9mcm1fcC4NCj4gKiBSZW5hbWUgbWF5YmVfcmVxdWly ZV92eHJtX3AgdG8gbWF5X3JlcXVpcmVfdnhybV9wLg0KPiAqIE1vdmUgbWF5 X3JlcXVpcmVfZnJtX3AgYW5kIG1heV9yZXF1aXJlX3Z4cm1fcCB0byBmdW5j dGlvbl9iYXNlLg0KPiAgDQo+IFVwZGF0ZSBpbiB2NToNCj4gKiBTcGxpdCBo YXNfdnhybV9vcl9mcm1fcCBpbnRvIG1heWJlX3JlcXVpcmVfZnJtX3AgYW5k DQo+ICAgbWF5YmVfcmVxdWlyZV92eHJtX3AuDQo+ICogQWRqdXN0IGNvbW1l bnRzLg0KPiAgDQo+IFVwZGF0ZSBpbiB2NDoNCj4gKiBSZW1vdmUgY2xhc3Mg ZnVuY3Rpb25fcmVzb2x2ZXIuDQo+ICogUmVtb3ZlIGZ1bmN0aW9uIGdldF9u b25fb3ZlcmxvYWRlZF9pbnN0YW5jZS4NCj4gKiBBZGQgb3ZlcmxvYWRlZCBo YXNoIHRyYWl0cyBmb3Igbm9uLW92ZXJsb2FkZWQgaW50cmluc2ljLg0KPiAq IEFsbCBvdmVybG9hZGVkIGludHJpbnNpY3MgYXJlIGltcGxlbWVudGVkLCBh bmQgdGhlIHRlc3RzIHBhc3MuDQo+ICANCj4gVXBkYXRlIGluIHYzOg0KPiAg DQo+ICogUmV3cml0ZSBjb21tZW50IGZvciBvdmVybG9hZGVkIGZ1bmN0aW9u IGFkZC4NCj4gKiBNb3ZlIGdldF9ub25fb3ZlcmxvYWRlZF9pbnN0YW5jZSB0 byBmdW5jdGlvbl9iYXNlLg0KPiAgDQo+IFVwZGF0ZSBpbiB2MjoNCj4gIA0K PiAqIEFkZCBnZXRfbm9uX292ZXJsb2FkZWRfaW5zdGFuY2UgZm9yIGZ1bmN0 aW9uIGluc3RhbmNlLg0KPiAqIEZpeCBvdmVybG9hZCBjaGVjayBmb3IgcG9s aWN5IGZ1bmN0aW9uLg0KPiAqIEVucmljaCB0aGUgdGVzdCBjYXNlcyBjaGVj ay4NCj4gIA0KPiBPcmlnaW5hbCBsb2c6DQo+ICANCj4gVGhpcyBwYXRjaCB3 b3VsZCBsaWtlIGFkZCB0aGUgZnJhbWV3b3JrIHRvIHN1cHBvcnQgdGhlIFJW ViBvdmVybG9hZGVkDQo+IGludHJpbnNpYyBBUEkgaW4gcmlzY3YteHh4LXh4 eC1nY2MsIGxpa2UgcmlzY3YteHh4LXh4eC1nKysgZGlkLg0KPiAgDQo+IEhv d2V2ZXIsIGl0IGFsbW9zdCBsZXZlcmFnZSB0aGUgaG9vayBUQVJHRVRfUkVT T0xWRV9PVkVSTE9BREVEX0JVSUxUSU4NCj4gd2l0aCBiZWxvdyBzdGVwcy4N Cj4gIA0KPiAqIFJlZ2lzdGVyIG92ZXJsb2FkZWQgZnVuY3Rpb25zLg0KPiAq IEFkZCBmdW5jdGlvbl9yZXNvbHZlciBmb3Igb3ZlcmxvYWRlZCBmdW5jdGlv biByZXNvbHZpbmcuDQo+ICogQWRkIHJlc29sdmUgQVBJIGZvciBmdW5jdGlv biBzaGFwZSB3aXRoIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uDQo+ICogSW1w bGVtZW50IEhPT0sgZm9yIG5hdmlnYXRpbmcgdGhlIG92ZXJsb2FkZWQgQVBJ IHRvIG5vbi1vdmVybG9hZGVkIEFQSS4NCj4gIA0KPiBnY2MvQ2hhbmdlTG9n Og0KPiAgDQo+ICAgICAgICAgKiBjb25maWcvcmlzY3YvcmlzY3YtYy5jYyAo cmlzY3ZfcmVzb2x2ZV9vdmVybG9hZGVkX2J1aWx0aW4pOiBOZXcgZnVuY3Rp b24gZm9yIHRoZSBob29rLg0KPiAgICAgICAgIChyaXNjdl9yZWdpc3Rlcl9w cmFnbWFzKTogUmVnaXN0ZXIgdGhlIGhvb2suDQo+ICAgICAgICAgKiBjb25m aWcvcmlzY3YvcmlzY3YtcHJvdG9zLmggKHJlc29sdmVfb3ZlcmxvYWRlZF9i dWlsdGluKTogTmV3IGRlY2wuDQo+ICAgICAgICAgKiBjb25maWcvcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjOiBOZXcgZnVuY3Rpb24g aW1wbC4NCj4gICAgICAgICAqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtc2hhcGVzLmNjIChidWlsZF9vbmUpOiBSZWdpc3RlciBvdmVy bG9hZGVkIGZ1bmN0aW9uLg0KPiAgICAgICAgICogY29uZmlnL3Jpc2N2L3Jp c2N2LXZlY3Rvci1idWlsdGlucy5jYyAoc3RydWN0IG5vbl9vdmVybG9hZGVk X3JlZ2lzdGVyZWRfZnVuY3Rpb25faGFzaGVyKTogTmV3IGhhc2ggdGFibGUu DQo+ICAgICAgICAgKGZ1bmN0aW9uX2J1aWxkZXI6OmFkZF9mdW5jdGlvbik6 IEFkZCBvdmVybG9hZGVkIGFyZy4NCj4gICAgICAgICAoZnVuY3Rpb25fYnVp bGRlcjo6YWRkX3VuaXF1ZV9mdW5jdGlvbik6IE1hcCBvdmVybG9hZGVkIGZ1 bmN0aW9uIHRvIG5vbi1vdmVybG9hZGVkIGZ1bmN0aW9uLg0KPiAgICAgICAg IChmdW5jdGlvbl9idWlsZGVyOjphZGRfb3ZlcmxvYWRlZF9mdW5jdGlvbik6 IE5ldyBBUEkgaW1wbC4NCj4gICAgICAgICAocmVnaXN0ZXJlZF9mdW5jdGlv bjo6b3ZlcmxvYWRlZF9oYXNoKTogQ2FsY3VsYXRlIGhhc2ggdmFsdWUuDQo+ ICAgICAgICAgKGhhc192eHJtX29yX2ZybV9wKTogTmV3IGZ1bmN0aW9uIGlt cGwuDQo+ICAgICAgICAgKG5vbl9vdmVybG9hZGVkX3JlZ2lzdGVyZWRfZnVu Y3Rpb25faGFzaGVyOjpoYXNoKTogRGl0dG8uDQo+ICAgICAgICAgKG5vbl9v dmVybG9hZGVkX3JlZ2lzdGVyZWRfZnVuY3Rpb25faGFzaGVyOjplcXVhbCk6 IERpdHRvLg0KPiAgICAgICAgIChoYW5kbGVfcHJhZ21hX3ZlY3Rvcik6IEFs bG9jYXRlIHNwYWNlIGZvciBoYXNoIHRhYmxlLg0KPiAgICAgICAgIChyZXNv bHZlX292ZXJsb2FkZWRfYnVpbHRpbik6IE5ldyBmdW5jdGlvbiBpbXBsLg0K PiAgICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy5oIChmdW5jdGlvbl9iYXNlOjptYXlfcmVxdWlyZV9mcm1fcCk6IERpdHRv Lg0KPiAgICAgICAgIChmdW5jdGlvbl9iYXNlOjptYXlfcmVxdWlyZV92eHJt X3ApOiBEaXR0by4NCj4gIA0KPiBnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoN Cj4gIA0KPiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9v dmVybG9hZGVkX3J2MzJfdmFkZC5jOiBOZXcgdGVzdC4NCj4gICAgICAgICAq IGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3Zm YWRkLmM6IE5ldyB0ZXN0Lg0KPiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdmdldF92c2V0LmM6IE5ldyB0 ZXN0Lg0KPiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9v dmVybG9hZGVkX3J2MzJfdmxveHNlZzJlaTE2LmM6IE5ldyB0ZXN0Lg0KPiAg ICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3J2MzJfdm12LmM6IE5ldyB0ZXN0Lg0KPiAgICAgICAgICogZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdnJlaW50ZXJwcmV0 LmM6IE5ldyB0ZXN0Lg0KPiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmFkZC5jOiBOZXcgdGVzdC4NCj4g ICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRl ZF9ydjY0X3ZmYWRkLmM6IE5ldyB0ZXN0Lg0KPiAgICAgICAgICogZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmdldF92c2V0 LmM6IE5ldyB0ZXN0Lg0KPiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmxveHNlZzJlaTE2LmM6IE5ldyB0 ZXN0Lg0KPiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9v dmVybG9hZGVkX3J2NjRfdm12LmM6IE5ldyB0ZXN0Lg0KPiAgICAgICAgICog Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdnJl aW50ZXJwcmV0LmM6IE5ldyB0ZXN0Lg0KPiAgICAgICAgICogZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3ZhZGQuaDogTmV3IHRlc3Qu DQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJs b2FkZWRfdmZhZGQuaDogTmV3IHRlc3QuDQo+ICAgICAgICAgKiBnY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdmdldF92c2V0Lmg6IE5l dyB0ZXN0Lg0KPiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9vdmVybG9hZGVkX3Zsb3hzZWcyZWkxNi5oOiBOZXcgdGVzdC4NCj4gICAg ICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92 bXYuaDogTmV3IHRlc3QuDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL292ZXJsb2FkZWRfdnJlaW50ZXJwcmV0Lmg6IE5ldyB0ZXN0 Lg0KPiAgDQo+IFNpZ25lZC1vZmYtYnk6IExpIFh1IDx4dWxpMUBlc3dpbmNv bXB1dGluZy5jb20+DQo+IENvLUF1dGhvcmVkLUJ5OiBQYW4gTGkgPHBhbjIu bGlAaW50ZWwuY29tPg0KPiAtLS0NCj4gZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di1jLmNjICAgICAgICAgICAgICAgICAgIHwgIDM2ICsrLQ0KPiBnY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oICAgICAgICAgICAgICAgfCAgIDEg Kw0KPiAuLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNj ICAgICAgfCAgNjkgKysrKystDQo+IC4uLi9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtc2hhcGVzLmNjICAgICB8ICAgMSArDQo+IGdjYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjICAgICB8IDIyNiArKysr KysrKysrKysrKysrKy0NCj4gZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMuaCAgICAgIHwgIDI3ICsrLQ0KPiAuLi4vcmlzY3YvcnZ2 L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZhZGQuYyAgICAgfCAgMTIgKw0KPiAu Li4vcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZmYWRkLmMgICAg fCAgMTIgKw0KPiAuLi4vcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZnZXRf dnNldC5jICAgICAgfCAgIDcgKw0KPiAuLi4vcnZ2L2Jhc2Uvb3ZlcmxvYWRl ZF9ydjMyX3Zsb3hzZWcyZWkxNi5jICAgfCAgMTEgKw0KPiAuLi4vcmlzY3Yv cnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3Ztdi5jICAgICAgfCAgMTAgKw0K PiAuLi4vcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZyZWludGVycHJldC5j ICAgfCAgMTAgKw0KPiAuLi4vcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9y djY0X3ZhZGQuYyAgICAgfCAgMTEgKw0KPiAuLi4vcmlzY3YvcnZ2L2Jhc2Uv b3ZlcmxvYWRlZF9ydjY0X3ZmYWRkLmMgICAgfCAgMTEgKw0KPiAuLi4vcnZ2 L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZnZXRfdnNldC5jICAgICAgfCAgIDYg Kw0KPiAuLi4vcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3Zsb3hzZWcyZWkx Ni5jICAgfCAgMTAgKw0KPiAuLi4vcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRl ZF9ydjY0X3Ztdi5jICAgICAgfCAgMTAgKw0KPiAuLi4vcnZ2L2Jhc2Uvb3Zl cmxvYWRlZF9ydjY0X3ZyZWludGVycHJldC5jICAgfCAgIDkgKw0KPiAuLi4v cmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92YWRkLmggICAgICAgICAgfCAg NTkgKysrKysNCj4gLi4uL3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdmZh ZGQuaCAgICAgICAgIHwgIDY3ICsrKysrKw0KPiAuLi4vcmlzY3YvcnZ2L2Jh c2Uvb3ZlcmxvYWRlZF92Z2V0X3ZzZXQuaCAgICAgfCAgMjcgKysrDQo+IC4u Li9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3Zsb3hzZWcyZWkxNi5oICB8 ICAzOSArKysNCj4gLi4uL3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdm12 LmggICAgICAgICAgIHwgIDI2ICsrDQo+IC4uLi9yaXNjdi9ydnYvYmFzZS9v dmVybG9hZGVkX3ZyZWludGVycHJldC5oICB8ICAyOSArKysNCj4gMjQgZmls ZXMgY2hhbmdlZCwgNzA4IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygt KQ0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92YWRkLmMNCj4g Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdmZhZGQuYw0KPiBjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92Z2V0X3ZzZXQuYw0KPiBjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92bG94c2VnMmVpMTYuYw0KPiBj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92bXYuYw0KPiBjcmVhdGUg bW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL292ZXJsb2FkZWRfcnYzMl92cmVpbnRlcnByZXQuYw0KPiBjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92YWRkLmMNCj4gY3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9vdmVybG9hZGVkX3J2NjRfdmZhZGQuYw0KPiBjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L292ZXJsb2FkZWRfcnY2NF92Z2V0X3ZzZXQuYw0KPiBjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L292ZXJsb2FkZWRfcnY2NF92bG94c2VnMmVpMTYuYw0KPiBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL292ZXJsb2FkZWRfcnY2NF92bXYuYw0KPiBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292 ZXJsb2FkZWRfcnY2NF92cmVpbnRlcnByZXQuYw0KPiBjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L292ZXJsb2FkZWRfdmFkZC5oDQo+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRl ZF92ZmFkZC5oDQo+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92Z2V0X3Zz ZXQuaA0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdmxveHNlZzJlaTE2 LmgNCj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3Ztdi5oDQo+IGNyZWF0 ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92cmVpbnRlcnByZXQuaA0KPiAgDQo+IGRp ZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LWMuY2MgYi9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LWMuY2MNCj4gaW5kZXggMjgzMDUyYWUzMTMu LmJlZGY3MjE3MzkwIDEwMDY0NA0KPiAtLS0gYS9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LWMuY2MNCj4gKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1j LmNjDQo+IEBAIC0yMTUsMTYgKzIxNSw1MCBAQCByaXNjdl9jaGVja19idWls dGluX2NhbGwgKGxvY2F0aW9uX3QgbG9jLCB2ZWM8bG9jYXRpb25fdD4gYXJn X2xvYywgdHJlZSBmbmRlY2wsDQo+ICAgICAgY2FzZSBSSVNDVl9CVUlMVElO X1ZFQ1RPUjoNCj4gICAgICAgIHJldHVybiByaXNjdl92ZWN0b3I6OmNoZWNr X2J1aWx0aW5fY2FsbCAobG9jLCBhcmdfbG9jLCBzdWJjb2RlLA0KPiAtICAg ICAgICBvcmlnX2ZuZGVjbCwgbmFyZ3MsIGFyZ3MpOw0KPiArICAgICAgICBm bmRlY2wsIG5hcmdzLCBhcmdzKTsNCj4gICAgICB9DQo+ICAgIGdjY191bnJl YWNoYWJsZSAoKTsNCj4gfQ0KPiArLyogSW1wbGVtZW50IFRBUkdFVF9SRVNP TFZFX09WRVJMT0FERURfQlVJTFRJTi4gICovDQo+ICtzdGF0aWMgdHJlZQ0K PiArcmlzY3ZfcmVzb2x2ZV9vdmVybG9hZGVkX2J1aWx0aW4gKHVuc2lnbmVk IGludCB1bmNhc3RfbG9jYXRpb24sIHRyZWUgZm5kZWNsLA0KPiArICAgdm9p ZCAqdW5jYXN0X2FyZ2xpc3QpDQo+ICt7DQo+ICsgIHZlYzx0cmVlLCB2YV9n Yz4gZW1wdHkgPSB7fTsNCj4gKyAgbG9jYXRpb25fdCBsb2MgPSAobG9jYXRp b25fdCkgdW5jYXN0X2xvY2F0aW9uOw0KPiArICB2ZWM8dHJlZSwgdmFfZ2M+ ICphcmdsaXN0ID0gKHZlYzx0cmVlLCB2YV9nYz4gKikgdW5jYXN0X2FyZ2xp c3Q7DQo+ICsgIHVuc2lnbmVkIGludCBjb2RlID0gREVDTF9NRF9GVU5DVElP Tl9DT0RFIChmbmRlY2wpOw0KPiArICB1bnNpZ25lZCBpbnQgc3ViY29kZSA9 IGNvZGUgPj4gUklTQ1ZfQlVJTFRJTl9TSElGVDsNCj4gKyAgdHJlZSBuZXdf Zm5kZWNsID0gTlVMTF9UUkVFOw0KPiArDQo+ICsgIGlmICghYXJnbGlzdCkN Cj4gKyAgICBhcmdsaXN0ID0gJmVtcHR5Ow0KPiArDQo+ICsgIHN3aXRjaCAo Y29kZSAmIFJJU0NWX0JVSUxUSU5fQ0xBU1MpDQo+ICsgICAgew0KPiArICAg IGNhc2UgUklTQ1ZfQlVJTFRJTl9HRU5FUkFMOg0KPiArICAgICAgYnJlYWs7 DQo+ICsgICAgY2FzZSBSSVNDVl9CVUlMVElOX1ZFQ1RPUjoNCj4gKyAgICAg IG5ld19mbmRlY2wgPSByaXNjdl92ZWN0b3I6OnJlc29sdmVfb3ZlcmxvYWRl ZF9idWlsdGluIChzdWJjb2RlLCBhcmdsaXN0KTsNCj4gKyAgICAgIGJyZWFr Ow0KPiArICAgIGRlZmF1bHQ6DQo+ICsgICAgICBnY2NfdW5yZWFjaGFibGUg KCk7DQo+ICsgICAgfQ0KPiArDQo+ICsgIGlmIChuZXdfZm5kZWNsID09IE5V TExfVFJFRSkNCj4gKyAgICByZXR1cm4gbmV3X2ZuZGVjbDsNCj4gKw0KPiAr ICByZXR1cm4gYnVpbGRfZnVuY3Rpb25fY2FsbF92ZWMgKGxvYywgdk5VTEws IG5ld19mbmRlY2wsIGFyZ2xpc3QsIE5VTEwsDQo+ICsgICBmbmRlY2wpOw0K PiArfQ0KPiArDQo+IC8qIEltcGxlbWVudCBSRUdJU1RFUl9UQVJHRVRfUFJB R01BUy4gICovDQo+IHZvaWQNCj4gcmlzY3ZfcmVnaXN0ZXJfcHJhZ21hcyAo dm9pZCkNCj4gew0KPiArICB0YXJnZXRtLnJlc29sdmVfb3ZlcmxvYWRlZF9i dWlsdGluID0gcmlzY3ZfcmVzb2x2ZV9vdmVybG9hZGVkX2J1aWx0aW47DQo+ ICAgIHRhcmdldG0uY2hlY2tfYnVpbHRpbl9jYWxsID0gcmlzY3ZfY2hlY2tf YnVpbHRpbl9jYWxsOw0KPiAgICBjX3JlZ2lzdGVyX3ByYWdtYSAoInJpc2N2 IiwgImludHJpbnNpYyIsIHJpc2N2X3ByYWdtYV9pbnRyaW5zaWMpOw0KPiB9 DQo+IGRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rv cy5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaA0KPiBpbmRl eCAyOTI2ZDVkNTBkNS4uNTgzNjMzM2JjNWQgMTAwNjQ0DQo+IC0tLSBhL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmgNCj4gKysrIGIvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaA0KPiBAQCAtNDMwLDYgKzQzMCw3 IEBAIGdpbXBsZSAqZ2ltcGxlX2ZvbGRfYnVpbHRpbiAodW5zaWduZWQgaW50 LCBnaW1wbGVfc3RtdF9pdGVyYXRvciAqLCBnY2FsbCAqKTsNCj4gcnR4IGV4 cGFuZF9idWlsdGluICh1bnNpZ25lZCBpbnQsIHRyZWUsIHJ0eCk7DQo+IGJv b2wgY2hlY2tfYnVpbHRpbl9jYWxsIChsb2NhdGlvbl90LCB2ZWM8bG9jYXRp b25fdD4sIHVuc2lnbmVkIGludCwNCj4gICAgdHJlZSwgdW5zaWduZWQgaW50 LCB0cmVlICopOw0KPiArdHJlZSByZXNvbHZlX292ZXJsb2FkZWRfYnVpbHRp biAodW5zaWduZWQgaW50LCB2ZWM8dHJlZSwgdmFfZ2M+ICopOw0KPiBib29s IGNvbnN0X3ZlY19hbGxfc2FtZV9pbl9yYW5nZV9wIChydHgsIEhPU1RfV0lE RV9JTlQsIEhPU1RfV0lERV9JTlQpOw0KPiBib29sIGxlZ2l0aW1pemVfbW92 ZSAocnR4LCBydHggKik7DQo+IHZvaWQgZW1pdF92bG1heF92c2V0dmwgKG1h Y2hpbmVfbW9kZSwgcnR4KTsNCj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjIGIvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MNCj4g aW5kZXggMGIxNDA5YTUyZTAuLjliYzJiZTJhNmRhIDEwMDY0NA0KPiAtLS0g YS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNl cy5jYw0KPiArKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy1iYXNlcy5jYw0KPiBAQCAtMjYyLDcgKzI2Miw4IEBAIHB1Ymxp YzoNCj4gICAgIHZyZW11L3ZzYWRkL3ZzYWRkdS92c3N1Yi92c3N1YnUNCj4g ICAgIHZmYWRkL3Zmc3ViLw0KPiAqLw0KPiAtdGVtcGxhdGU8cnR4X2NvZGUg Q09ERSwgZW51bSBmcm1fb3BfdHlwZSBGUk1fT1AgPSBOT19GUk0+DQo+ICt0 ZW1wbGF0ZSA8cnR4X2NvZGUgQ09ERSwgYm9vbCBNQVlfUkVRVUlSRV9GUk0g PSBmYWxzZSwNCj4gKyAgIGVudW0gZnJtX29wX3R5cGUgRlJNX09QID0gTk9f RlJNPg0KPiBjbGFzcyBiaW5vcCA6IHB1YmxpYyBmdW5jdGlvbl9iYXNlDQo+ IHsNCj4gcHVibGljOg0KPiBAQCAtMjcxLDYgKzI3Miw4IEBAIHB1YmxpYzoN Cj4gICAgICByZXR1cm4gRlJNX09QID09IEhBU19GUk07DQo+ICAgIH0NCj4g KyAgYm9vbCBtYXlfcmVxdWlyZV9mcm1fcCAoKSBjb25zdCBvdmVycmlkZSB7 IHJldHVybiBNQVlfUkVRVUlSRV9GUk07IH0NCj4gKw0KPiAgICBydHggZXhw YW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCj4g ICAgew0KPiAgICAgIHN3aXRjaCAoZS5vcF9pbmZvLT5vcCkNCj4gQEAgLTMw OCw2ICszMTEsOCBAQCBwdWJsaWM6DQo+ICAgICAgcmV0dXJuIEZSTV9PUCA9 PSBIQVNfRlJNOw0KPiAgICB9DQo+ICsgIGJvb2wgbWF5X3JlcXVpcmVfZnJt X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQ0KPiArDQo+ ICAgIHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBv dmVycmlkZQ0KPiAgICB7DQo+ICAgICAgcmV0dXJuIGUudXNlX2V4YWN0X2lu c24gKGNvZGVfZm9yX3ByZWQgKENPREUsIGUudmVjdG9yX21vZGUgKCkpKTsN Cj4gQEAgLTM5Nyw2ICs0MDIsOCBAQCBwdWJsaWM6DQo+ICAgICAgcmV0dXJu IEZSTV9PUCA9PSBIQVNfRlJNOw0KPiAgICB9DQo+ICsgIGJvb2wgbWF5X3Jl cXVpcmVfZnJtX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg fQ0KPiArDQo+ICAgIHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZl KSBjb25zdCBvdmVycmlkZQ0KPiAgICB7DQo+ICAgICAgc3dpdGNoIChlLm9w X2luZm8tPm9wKQ0KPiBAQCAtNjMwLDYgKzYzNyw4IEBAIGNsYXNzIHNhdF9v cCA6IHB1YmxpYyBmdW5jdGlvbl9iYXNlDQo+IHB1YmxpYzoNCj4gICAgYm9v bCBoYXNfcm91bmRpbmdfbW9kZV9vcGVyYW5kX3AgKCkgY29uc3Qgb3ZlcnJp ZGUgeyByZXR1cm4gdHJ1ZTsgfQ0KPiArICBib29sIG1heV9yZXF1aXJlX3Z4 cm1fcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9DQo+ICsN Cj4gICAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0 IG92ZXJyaWRlDQo+ICAgIHsNCj4gICAgICBzd2l0Y2ggKGUub3BfaW5mby0+ b3ApDQo+IEBAIC02NTIsNiArNjYxLDggQEAgY2xhc3Mgdm5jbGlwIDogcHVi bGljIGZ1bmN0aW9uX2Jhc2UNCj4gcHVibGljOg0KPiAgICBib29sIGhhc19y b3VuZGluZ19tb2RlX29wZXJhbmRfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJl dHVybiB0cnVlOyB9DQo+ICsgIGJvb2wgbWF5X3JlcXVpcmVfdnhybV9wICgp IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0NCj4gKw0KPiAgICBy dHggZXhwYW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJp ZGUNCj4gICAgew0KPiAgICAgIHN3aXRjaCAoZS5vcF9pbmZvLT5vcCkNCj4g QEAgLTEwMjQsNiArMTAzNSw4IEBAIHB1YmxpYzoNCj4gICAgICByZXR1cm4g RlJNX09QID09IEhBU19GUk07DQo+ICAgIH0NCj4gKyAgYm9vbCBtYXlfcmVx dWlyZV9mcm1fcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9 DQo+ICsNCj4gICAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUp IGNvbnN0IG92ZXJyaWRlDQo+ICAgIHsNCj4gICAgICByZXR1cm4gZS51c2Vf ZXhhY3RfaW5zbiAoDQo+IEBAIC0xMDQwLDYgKzEwNTMsOCBAQCBwdWJsaWM6 DQo+ICAgICAgcmV0dXJuIEZSTV9PUCA9PSBIQVNfRlJNOw0KPiAgICB9DQo+ ICsgIGJvb2wgbWF5X3JlcXVpcmVfZnJtX3AgKCkgY29uc3Qgb3ZlcnJpZGUg eyByZXR1cm4gdHJ1ZTsgfQ0KPiArDQo+ICAgIGJvb2wgaGFzX21lcmdlX29w ZXJhbmRfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0K PiAgICBydHggZXhwYW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qg b3ZlcnJpZGUNCj4gQEAgLTEwNjQsNiArMTA3OSw4IEBAIHB1YmxpYzoNCj4g ICAgICByZXR1cm4gRlJNX09QID09IEhBU19GUk07DQo+ICAgIH0NCj4gKyAg Ym9vbCBtYXlfcmVxdWlyZV9mcm1fcCAoKSBjb25zdCBvdmVycmlkZSB7IHJl dHVybiB0cnVlOyB9DQo+ICsNCj4gICAgYm9vbCBoYXNfbWVyZ2Vfb3BlcmFu ZF9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQo+ICAg IHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBvdmVy cmlkZQ0KPiBAQCAtMTA4Nyw2ICsxMTA0LDggQEAgcHVibGljOg0KPiAgICAg IHJldHVybiBGUk1fT1AgPT0gSEFTX0ZSTTsNCj4gICAgfQ0KPiArICBib29s IG1heV9yZXF1aXJlX2ZybV9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu IHRydWU7IH0NCj4gKw0KPiAgICBib29sIGhhc19tZXJnZV9vcGVyYW5kX3Ag KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCj4gICAgcnR4 IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRl DQo+IEBAIC0xMTExLDYgKzExMzAsOCBAQCBwdWJsaWM6DQo+ICAgICAgcmV0 dXJuIEZSTV9PUCA9PSBIQVNfRlJNOw0KPiAgICB9DQo+ICsgIGJvb2wgbWF5 X3JlcXVpcmVfZnJtX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1 ZTsgfQ0KPiArDQo+ICAgIGJvb2wgaGFzX21lcmdlX29wZXJhbmRfcCAoKSBj b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KPiAgICBydHggZXhw YW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCj4g QEAgLTExMzQsNiArMTE1NSw4IEBAIHB1YmxpYzoNCj4gICAgICByZXR1cm4g RlJNX09QID09IEhBU19GUk07DQo+ICAgIH0NCj4gKyAgYm9vbCBtYXlfcmVx dWlyZV9mcm1fcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9 DQo+ICsNCj4gICAgYm9vbCBoYXNfbWVyZ2Vfb3BlcmFuZF9wICgpIGNvbnN0 IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQo+ICAgIHJ0eCBleHBhbmQg KGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBvdmVycmlkZQ0KPiBAQCAt MTE1Nyw2ICsxMTgwLDggQEAgcHVibGljOg0KPiAgICAgIHJldHVybiBGUk1f T1AgPT0gSEFTX0ZSTTsNCj4gICAgfQ0KPiArICBib29sIG1heV9yZXF1aXJl X2ZybV9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0NCj4g Kw0KPiAgICBib29sIGhhc19tZXJnZV9vcGVyYW5kX3AgKCkgY29uc3Qgb3Zl cnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCj4gICAgcnR4IGV4cGFuZCAoZnVu Y3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRlDQo+IEBAIC0xMTgx LDYgKzEyMDYsOCBAQCBwdWJsaWM6DQo+ICAgICAgcmV0dXJuIEZSTV9PUCA9 PSBIQVNfRlJNOw0KPiAgICB9DQo+ICsgIGJvb2wgbWF5X3JlcXVpcmVfZnJt X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQ0KPiArDQo+ ICAgIGJvb2wgaGFzX21lcmdlX29wZXJhbmRfcCAoKSBjb25zdCBvdmVycmlk ZSB7IHJldHVybiBmYWxzZTsgfQ0KPiAgICBydHggZXhwYW5kIChmdW5jdGlv bl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCj4gQEAgLTEyMDQsNiAr MTIzMSw4IEBAIHB1YmxpYzoNCj4gICAgICByZXR1cm4gRlJNX09QID09IEhB U19GUk07DQo+ICAgIH0NCj4gKyAgYm9vbCBtYXlfcmVxdWlyZV9mcm1fcCAo KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9DQo+ICsNCj4gICAg Ym9vbCBoYXNfbWVyZ2Vfb3BlcmFuZF9wICgpIGNvbnN0IG92ZXJyaWRlIHsg cmV0dXJuIGZhbHNlOyB9DQo+ICAgIHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4 cGFuZGVyICZlKSBjb25zdCBvdmVycmlkZQ0KPiBAQCAtMTIyOCw2ICsxMjU3 LDggQEAgcHVibGljOg0KPiAgICAgIHJldHVybiBGUk1fT1AgPT0gSEFTX0ZS TTsNCj4gICAgfQ0KPiArICBib29sIG1heV9yZXF1aXJlX2ZybV9wICgpIGNv bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0NCj4gKw0KPiAgICBib29s IGhhc19tZXJnZV9vcGVyYW5kX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1 cm4gZmFsc2U7IH0NCj4gICAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5k ZXIgJmUpIGNvbnN0IG92ZXJyaWRlDQo+IEBAIC0xMjUxLDYgKzEyODIsOCBA QCBwdWJsaWM6DQo+ICAgICAgcmV0dXJuIEZSTV9PUCA9PSBIQVNfRlJNOw0K PiAgICB9DQo+ICsgIGJvb2wgbWF5X3JlcXVpcmVfZnJtX3AgKCkgY29uc3Qg b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQ0KPiArDQo+ICAgIGJvb2wgaGFz X21lcmdlX29wZXJhbmRfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBm YWxzZTsgfQ0KPiAgICBydHggZXhwYW5kIChmdW5jdGlvbl9leHBhbmRlciAm ZSkgY29uc3Qgb3ZlcnJpZGUNCj4gQEAgLTEyNzQsNiArMTMwNyw4IEBAIHB1 YmxpYzoNCj4gICAgICByZXR1cm4gRlJNX09QID09IEhBU19GUk07DQo+ICAg IH0NCj4gKyAgYm9vbCBtYXlfcmVxdWlyZV9mcm1fcCAoKSBjb25zdCBvdmVy cmlkZSB7IHJldHVybiB0cnVlOyB9DQo+ICsNCj4gICAgYm9vbCBoYXNfbWVy Z2Vfb3BlcmFuZF9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl OyB9DQo+ICAgIHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBj b25zdCBvdmVycmlkZQ0KPiBAQCAtMTI5Nyw2ICsxMzMyLDggQEAgcHVibGlj Og0KPiAgICAgIHJldHVybiBGUk1fT1AgPT0gSEFTX0ZSTTsNCj4gICAgfQ0K PiArICBib29sIG1heV9yZXF1aXJlX2ZybV9wICgpIGNvbnN0IG92ZXJyaWRl IHsgcmV0dXJuIHRydWU7IH0NCj4gKw0KPiAgICBib29sIGhhc19tZXJnZV9v cGVyYW5kX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0N Cj4gICAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0 IG92ZXJyaWRlDQo+IEBAIC0xMzIxLDYgKzEzNTgsOCBAQCBwdWJsaWM6DQo+ ICAgICAgcmV0dXJuIEZSTV9PUCA9PSBIQVNfRlJNOw0KPiAgICB9DQo+ICsg IGJvb2wgbWF5X3JlcXVpcmVfZnJtX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyBy ZXR1cm4gdHJ1ZTsgfQ0KPiArDQo+ICAgIHJ0eCBleHBhbmQgKGZ1bmN0aW9u X2V4cGFuZGVyICZlKSBjb25zdCBvdmVycmlkZQ0KPiAgICB7DQo+ICAgICAg aWYgKGUub3BfaW5mby0+b3AgPT0gT1BfVFlQRV92ZikNCj4gQEAgLTEzOTIs NiArMTQzMSw4IEBAIHB1YmxpYzoNCj4gICAgICByZXR1cm4gRlJNX09QID09 IEhBU19GUk07DQo+ICAgIH0NCj4gKyAgYm9vbCBtYXlfcmVxdWlyZV9mcm1f cCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9DQo+ICsNCj4g ICAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92 ZXJyaWRlDQo+ICAgIHsNCj4gICAgICByZXR1cm4gZS51c2VfZXhhY3RfaW5z biAoY29kZV9mb3JfcHJlZF9mY3Z0X3hfZiAoVU5TUEVDLCBlLmFyZ19tb2Rl ICgwKSkpOw0KPiBAQCAtMTQxOCw2ICsxNDU5LDggQEAgcHVibGljOg0KPiAg ICAgIHJldHVybiBGUk1fT1AgPT0gSEFTX0ZSTTsNCj4gICAgfQ0KPiArICBi b29sIG1heV9yZXF1aXJlX2ZybV9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0 dXJuIHRydWU7IH0NCj4gKw0KPiAgICBydHggZXhwYW5kIChmdW5jdGlvbl9l eHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCj4gICAgew0KPiAgICAgIGlm IChlLm9wX2luZm8tPm9wID09IE9QX1RZUEVfeF92KQ0KPiBAQCAtMTQzOSw2 ICsxNDgyLDggQEAgcHVibGljOg0KPiAgICAgIHJldHVybiBGUk1fT1AgPT0g SEFTX0ZSTTsNCj4gICAgfQ0KPiArICBib29sIG1heV9yZXF1aXJlX2ZybV9w ICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0NCj4gKw0KPiAg ICBydHggZXhwYW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3Zl cnJpZGUNCj4gICAgew0KPiAgICAgIHJldHVybiBlLnVzZV9leGFjdF9pbnNu ICgNCj4gQEAgLTE0ODMsNiArMTUyOCw4IEBAIHB1YmxpYzoNCj4gICAgICBy ZXR1cm4gRlJNX09QID09IEhBU19GUk07DQo+ICAgIH0NCj4gKyAgYm9vbCBt YXlfcmVxdWlyZV9mcm1fcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0 cnVlOyB9DQo+ICsNCj4gICAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5k ZXIgJmUpIGNvbnN0IG92ZXJyaWRlDQo+ICAgIHsNCj4gICAgICByZXR1cm4g ZS51c2VfZXhhY3RfaW5zbiAoDQo+IEBAIC0xNTEwLDYgKzE1NTcsOCBAQCBw dWJsaWM6DQo+ICAgICAgcmV0dXJuIEZSTV9PUCA9PSBIQVNfRlJNOw0KPiAg ICB9DQo+ICsgIGJvb2wgbWF5X3JlcXVpcmVfZnJtX3AgKCkgY29uc3Qgb3Zl cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQ0KPiArDQo+ICAgIHJ0eCBleHBhbmQg KGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBvdmVycmlkZQ0KPiAgICB7 DQo+ICAgICAgaWYgKGUub3BfaW5mby0+b3AgPT0gT1BfVFlQRV9mX3cpDQo+ IEBAIC0xNTU1LDYgKzE2MDQsOCBAQCBwdWJsaWM6DQo+ICAgICAgcmV0dXJu IEZSTV9PUCA9PSBIQVNfRlJNOw0KPiAgICB9DQo+ICsgIGJvb2wgbWF5X3Jl cXVpcmVfZnJtX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg fQ0KPiArDQo+ICAgIGJvb2wgYXBwbHlfbWFza19wb2xpY3lfcCAoKSBjb25z dCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KPiAgICBydHggZXhwYW5k IChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCj4gQEAg LTIxNjQsMjAgKzIyMTUsMjAgQEAgc3RhdGljIENPTlNURVhQUiBjb25zdCBt YXNrX21pc2M8VU5TUEVDX1ZNU0lGPiB2bXNpZl9vYmo7DQo+IHN0YXRpYyBD T05TVEVYUFIgY29uc3QgbWFza19taXNjPFVOU1BFQ19WTVNPRj4gdm1zb2Zf b2JqOw0KPiBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHZpb3RhIHZpb3RhX29i ajsNCj4gc3RhdGljIENPTlNURVhQUiBjb25zdCB2aWQgdmlkX29iajsNCj4g LXN0YXRpYyBDT05TVEVYUFIgY29uc3QgYmlub3A8UExVUz4gdmZhZGRfb2Jq Ow0KPiAtc3RhdGljIENPTlNURVhQUiBjb25zdCBiaW5vcDxNSU5VUz4gdmZz dWJfb2JqOw0KPiAtc3RhdGljIENPTlNURVhQUiBjb25zdCBiaW5vcDxQTFVT LCBIQVNfRlJNPiB2ZmFkZF9mcm1fb2JqOw0KPiAtc3RhdGljIENPTlNURVhQ UiBjb25zdCBiaW5vcDxNSU5VUywgSEFTX0ZSTT4gdmZzdWJfZnJtX29iajsN Cj4gK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgYmlub3A8UExVUywgdHJ1ZT4g dmZhZGRfb2JqOw0KPiArc3RhdGljIENPTlNURVhQUiBjb25zdCBiaW5vcDxN SU5VUywgdHJ1ZT4gdmZzdWJfb2JqOw0KPiArc3RhdGljIENPTlNURVhQUiBj b25zdCBiaW5vcDxQTFVTLCB0cnVlLCBIQVNfRlJNPiB2ZmFkZF9mcm1fb2Jq Ow0KPiArc3RhdGljIENPTlNURVhQUiBjb25zdCBiaW5vcDxNSU5VUywgdHJ1 ZSwgSEFTX0ZSTT4gdmZzdWJfZnJtX29iajsNCj4gc3RhdGljIENPTlNURVhQ UiBjb25zdCByZXZlcnNlX2Jpbm9wPE1JTlVTPiB2ZnJzdWJfb2JqOw0KPiBz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJldmVyc2VfYmlub3A8TUlOVVMsIEhB U19GUk0+IHZmcnN1Yl9mcm1fb2JqOw0KPiBzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHdpZGVuX2Jpbm9wX2ZwPFBMVVM+IHZmd2FkZF9vYmo7DQo+IHN0YXRp YyBDT05TVEVYUFIgY29uc3Qgd2lkZW5fYmlub3BfZnA8UExVUywgSEFTX0ZS TT4gdmZ3YWRkX2ZybV9vYmo7DQo+IHN0YXRpYyBDT05TVEVYUFIgY29uc3Qg d2lkZW5fYmlub3BfZnA8TUlOVVM+IHZmd3N1Yl9vYmo7DQo+IHN0YXRpYyBD T05TVEVYUFIgY29uc3Qgd2lkZW5fYmlub3BfZnA8TUlOVVMsIEhBU19GUk0+ IHZmd3N1Yl9mcm1fb2JqOw0KPiAtc3RhdGljIENPTlNURVhQUiBjb25zdCBi aW5vcDxNVUxUPiB2Zm11bF9vYmo7DQo+IC1zdGF0aWMgQ09OU1RFWFBSIGNv bnN0IGJpbm9wPE1VTFQsIEhBU19GUk0+IHZmbXVsX2ZybV9vYmo7DQo+IC1z dGF0aWMgQ09OU1RFWFBSIGNvbnN0IGJpbm9wPERJVj4gdmZkaXZfb2JqOw0K PiAtc3RhdGljIENPTlNURVhQUiBjb25zdCBiaW5vcDxESVYsIEhBU19GUk0+ IHZmZGl2X2ZybV9vYmo7DQo+ICtzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IGJp bm9wPE1VTFQsIHRydWU+IHZmbXVsX29iajsNCj4gK3N0YXRpYyBDT05TVEVY UFIgY29uc3QgYmlub3A8TVVMVCwgIHRydWUsIEhBU19GUk0+IHZmbXVsX2Zy bV9vYmo7DQo+ICtzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IGJpbm9wPERJViwg dHJ1ZT4gdmZkaXZfb2JqOw0KPiArc3RhdGljIENPTlNURVhQUiBjb25zdCBi aW5vcDxESVYsICB0cnVlLCBIQVNfRlJNPiB2ZmRpdl9mcm1fb2JqOw0KPiBz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJldmVyc2VfYmlub3A8RElWPiB2ZnJk aXZfb2JqOw0KPiBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJldmVyc2VfYmlu b3A8RElWLCBIQVNfRlJNPiB2ZnJkaXZfZnJtX29iajsNCj4gc3RhdGljIENP TlNURVhQUiBjb25zdCB3aWRlbl9iaW5vcF9mcDxNVUxUPiB2ZndtdWxfb2Jq Ow0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMtc2hhcGVzLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjDQo+IGluZGV4IDBiZGE5MzRh ZTE2Li5lZTU3MDQ1OGNlOSAxMDA2NDQNCj4gLS0tIGEvZ2NjL2NvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjDQo+ICsrKyBi L2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBl cy5jYw0KPiBAQCAtNDksNiArNDksNyBAQCBidWlsZF9vbmUgKGZ1bmN0aW9u X2J1aWxkZXIgJmIsIGNvbnN0IGZ1bmN0aW9uX2dyb3VwX2luZm8gJmdyb3Vw LA0KPiAgICAgIGdyb3VwLm9wc19pbmZvcy50eXBlc1t2ZWNfdHlwZV9pZHhd LmluZGV4KTsNCj4gICAgYi5hbGxvY2F0ZV9hcmd1bWVudF90eXBlcyAoZnVu Y3Rpb25faW5zdGFuY2UsIGFyZ3VtZW50X3R5cGVzKTsNCj4gICAgYi5hcHBs eV9wcmVkaWNhdGlvbiAoZnVuY3Rpb25faW5zdGFuY2UsIHJldHVybl90eXBl LCBhcmd1bWVudF90eXBlcyk7DQo+ICsgIGIuYWRkX292ZXJsb2FkZWRfZnVu Y3Rpb24gKGZ1bmN0aW9uX2luc3RhbmNlLCAqZ3JvdXAuc2hhcGUpOw0KPiAg ICBiLmFkZF91bmlxdWVfZnVuY3Rpb24gKGZ1bmN0aW9uX2luc3RhbmNlLCAo Kmdyb3VwLnNoYXBlKSwgcmV0dXJuX3R5cGUsDQo+IGFyZ3VtZW50X3R5cGVz KTsNCj4gfQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy5jYw0KPiBpbmRleCA1ZDRkYzI2NGZhNi4uZTc1 NjRiOWNmN2MgMTAwNjQ0DQo+IC0tLSBhL2djYy9jb25maWcvcmlzY3Yvcmlz Y3YtdmVjdG9yLWJ1aWx0aW5zLmNjDQo+ICsrKyBiL2djYy9jb25maWcvcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjDQo+IEBAIC04MCw2ICs4MCwz MiBAQCBwdWJsaWM6DQo+ICAgIC8qIFRoZSBkZWNsIGl0c2VsZi4gICovDQo+ ICAgIHRyZWUgR1RZICgoc2tpcCkpIGRlY2w7DQo+ICsNCj4gKyAgLyogVGhl IG92ZXJsb2FkIGhhc2ggb2Ygbm9uLW92ZXJsb2FkZWQgaW50cmluc2ljIGlz IGRldGVybWluZWQgYnkNCj4gKyAgICAgdGhlIG92ZXJsb2FkIG5hbWUgYW5k IGFyZ3VtZW50IGxpc3QuIEFkZGluZyB0aGUgb3ZlcmxvYWQgbmFtZSB0bw0K PiArICAgICB0aGUgaGFzaCBpcyBhbHNvIHRvIGFkZHJlc3MgdGhlIGZvbGxv d2luZyBzaXR1YXRpb25zOg0KPiArICAgICB2aW50MTZtZjRfdCAgX19yaXNj dl92cmVpbnRlcnByZXRfaTE2bWY0ICh2ZmxvYXQxNm1mNF90IHNyYyk7DQo+ ICsgICAgIHZ1aW50MTZtZjRfdCBfX3Jpc2N2X3ZyZWludGVycHJldF91MTZt ZjQgKHZmbG9hdDE2bWY0X3Qgc3JjKTsNCj4gKyAgICAgVGhlIGJhc2UsIHNo YXBlIGFuZCBhcmd1bWVudCBsaXN0IG9mIHRoZSB2cmVpbnRlcnByZXQgaW5z dGFuY2UgYXJlDQo+ICsgICAgIHRoZSBzYW1lLCBvbmx5IHRoZSBvdmVybG9h ZCBuYW1lIGlzIGRpZmZlcmVudC4gVGhlcmVmb3JlLCBpdCBpcw0KPiArICAg ICBlbm91Z2ggdG8gYWRkIG92ZXJsb2FkX25hbWUgYW5kIGFyZ3VtZW50IGxp c3QgdG8gdGhlIGhhc2ggdmFsdWUuKi8NCj4gKyAgY29uc3QgY2hhciAqb3Zl cmxvYWRfbmFtZTsNCj4gKw0KPiArICAvKiBUaGUgYXJndW1lbnQgbGlzdCBw YXJ0IG9mIHRoZSBoYXNoIHZhbHVlLiBBZGQgdGhlIHVuc2lnbmVkL3NpZ25l ZCB0eXBlDQo+ICsgICAgIGFuZCBtYWNoaW5lIG1vZGUgb2YgZWFjaCBhcmd1 bWVudCB0byB0aGUgaGFzaCB2YWx1ZS4gKi8NCj4gKyAgdmVjPHRyZWU+IEdU WSAoKHNraXApKSBhcmd1bWVudF90eXBlczsNCj4gKw0KPiArICAvKiBUcnVl IGlmIHRoZSBkZWNsIHJlcHJlc2VudHMgYW4gb3ZlcmxvYWRlZCBmdW5jdGlv biB0aGF0IG5lZWRzIHRvIGJlDQo+ICsgICAgIHJlc29sdmVkLiAqLw0KPiAr ICBib29sIG92ZXJsb2FkZWRfcDsNCj4gKw0KPiArICAvKiBUaGUgaGFzaCB2 YWx1ZSB0byBpbmRpY2F0ZSB0aGUgbm9uLW92ZXJsb2FkZWQgZnVuY3Rpb24u IEdlbmVyYXRlIGhhc2ggdmFsdWUNCj4gKyAgICAgYmFzZWQgb24gb3Zlcmxv YWRfbmFtZSBhbmQgYXJndW1lbnRfdHlwZXMuICovDQo+ICsgIGhhc2h2YWxf dCBvdmVybG9hZGVkX2hhc2ggKCkgY29uc3Q7DQo+ICsNCj4gKyAgLyogR2Vu ZXJhdGUgaGFzaCB2YWx1ZSBiYXNlZCBvbiB0aGUgb3ZlcmxvYWRfbmFtZSBh bmQgdGhlIGFyZ3VtZW50IGxpc3QgcGFzc2VkDQo+ICsgICAgIGJ5IHRoZSB1 c2VyIHdoZW4gY2FsbGluZy4gKi8NCj4gKyAgaGFzaHZhbF90IG92ZXJsb2Fk ZWRfaGFzaCAoY29uc3QgdmVjPHRyZWUsIHZhX2djPiAmKTsNCj4gfTsNCj4g LyogSGFzaCB0cmFpdHMgZm9yIHJlZ2lzdGVyZWRfZnVuY3Rpb24uICAqLw0K PiBAQCAtOTEsNiArMTE3LDE0IEBAIHN0cnVjdCByZWdpc3RlcmVkX2Z1bmN0 aW9uX2hhc2hlciA6IG5vZnJlZV9wdHJfaGFzaDxyZWdpc3RlcmVkX2Z1bmN0 aW9uPg0KPiAgICBzdGF0aWMgYm9vbCBlcXVhbCAodmFsdWVfdHlwZSwgY29u c3QgY29tcGFyZV90eXBlICYpOw0KPiB9Ow0KPiArLyogSGFzaCB0cmFpdHMg Zm9yIG92ZXJsb2FkIHJlZ2lzdGVyZWRfZnVuY3Rpb24uICovDQo+ICtzdHJ1 Y3Qgbm9uX292ZXJsb2FkZWRfcmVnaXN0ZXJlZF9mdW5jdGlvbl9oYXNoZXIN Cj4gKyAgOiBub2ZyZWVfcHRyX2hhc2g8cmVnaXN0ZXJlZF9mdW5jdGlvbj4N Cj4gK3sNCj4gKyAgc3RhdGljIGhhc2h2YWxfdCBoYXNoICh2YWx1ZV90eXBl KTsNCj4gKyAgc3RhdGljIGJvb2wgZXF1YWwgKHZhbHVlX3R5cGUsIGNvbnN0 IGNvbXBhcmVfdHlwZSAmKTsNCj4gK307DQo+ICsNCj4gLyogU3RhdGljIGlu Zm9ybWF0aW9uIGFib3V0IGVhY2ggUlZWIHR5cGUuICAqLw0KPiBzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHZlY3Rvcl90eXBlX2luZm8gdmVjdG9yX3R5cGVz W10gPSB7DQo+ICNkZWZpbmUgREVGX1JWVl9UWVBFKE5BTUUsIE5DSEFSUywg QUJJX05BTUUsIEFSR1MuLi4pICAgICAgICAgICAgICAgICAgICAgICAgICBc DQo+IEBAIC0yNjExLDYgKzI2NDUsMTIgQEAgc3RhdGljIEdUWSAoKCkpIHZl YzxyZWdpc3RlcmVkX2Z1bmN0aW9uICosIHZhX2djPiAqcmVnaXN0ZXJlZF9m dW5jdGlvbnM7DQo+ICAgICBvdmVybG9hZGVkIGZ1bmN0aW9ucy4gICovDQo+ IHN0YXRpYyBoYXNoX3RhYmxlPHJlZ2lzdGVyZWRfZnVuY3Rpb25faGFzaGVy PiAqZnVuY3Rpb25fdGFibGU7DQo+ICsvKiBBbGwgcmVnaXN0ZXJlZCBmdW5j dGlvbiBkZWNscywgaGFzaGVkIG9uIG92ZXJsb2FkX25hbWUgYW5kIGFyZ3Vt ZW50IGxpc3QNCj4gKyAgIG9mIHRoZSByZWdpc3RlcmVkX2Z1bmN0aW9uLiAg VGhpcyBpcyB1c2VkIGZvciBsb29raW5nIHVwIGltcGxlbWVudGF0aW9ucw0K PiArICAgb2Ygbm9uLW92ZXJsb2FkZWQgZnVuY3Rpb25zLiAqLw0KPiArc3Rh dGljIGhhc2hfdGFibGU8bm9uX292ZXJsb2FkZWRfcmVnaXN0ZXJlZF9mdW5j dGlvbl9oYXNoZXI+DQo+ICsgICpub25fb3ZlcmxvYWRlZF9mdW5jdGlvbl90 YWJsZTsNCj4gKw0KPiAvKiBSQUlJIGNsYXNzIGZvciBlbmFibGluZyBlbm91 Z2ggUlZWIGZlYXR1cmVzIHRvIGRlZmluZSB0aGUgYnVpbHQtaW4NCj4gICAg IHR5cGVzIGFuZCBpbXBsZW1lbnQgdGhlIHJpc2N2X3ZlY3Rvci5oIHByYWdt YS4NCj4gQEAgLTMzNjksNyArMzQwOSw5IEBAIGZ1bmN0aW9uX2J1aWxkZXI6 OmdldF9hdHRyaWJ1dGVzIChjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5z dGFuY2UpDQo+IHJlZ2lzdGVyZWRfZnVuY3Rpb24gJg0KPiBmdW5jdGlvbl9i dWlsZGVyOjphZGRfZnVuY3Rpb24gKGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNl ICZpbnN0YW5jZSwNCj4gY29uc3QgY2hhciAqbmFtZSwgdHJlZSBmbnR5cGUs IHRyZWUgYXR0cnMsDQo+IC0gYm9vbCBwbGFjZWhvbGRlcl9wKQ0KPiArIGJv b2wgcGxhY2Vob2xkZXJfcCwgY29uc3QgY2hhciAqb3ZlcmxvYWRfbmFtZSwN Cj4gKyBjb25zdCB2ZWM8dHJlZT4gJmFyZ3VtZW50X3R5cGVzLA0KPiArIGJv b2wgb3ZlcmxvYWRlZF9wID0gZmFsc2UpDQo+IHsNCj4gICAgdW5zaWduZWQg aW50IGNvZGUgPSB2ZWNfc2FmZV9sZW5ndGggKHJlZ2lzdGVyZWRfZnVuY3Rp b25zKTsNCj4gICAgY29kZSA9IChjb2RlIDw8IFJJU0NWX0JVSUxUSU5fU0hJ RlQpICsgUklTQ1ZfQlVJTFRJTl9WRUNUT1I7DQo+IEBAIC0zMzk1LDYgKzM0 MzcsOSBAQCBmdW5jdGlvbl9idWlsZGVyOjphZGRfZnVuY3Rpb24gKGNvbnN0 IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0YW5jZSwNCj4gICAgcmVnaXN0ZXJl ZF9mdW5jdGlvbiAmcmZuID0gKmdnY19hbGxvYzxyZWdpc3RlcmVkX2Z1bmN0 aW9uPiAoKTsNCj4gICAgcmZuLmluc3RhbmNlID0gaW5zdGFuY2U7DQo+ICAg IHJmbi5kZWNsID0gZGVjbDsNCj4gKyAgcmZuLm92ZXJsb2FkX25hbWUgPSBv dmVybG9hZF9uYW1lID8geHN0cmR1cCAob3ZlcmxvYWRfbmFtZSkgOiBOVUxM Ow0KPiArICByZm4uYXJndW1lbnRfdHlwZXMgPSBhcmd1bWVudF90eXBlczsN Cj4gKyAgcmZuLm92ZXJsb2FkZWRfcCA9IG92ZXJsb2FkZWRfcDsNCj4gICAg dmVjX3NhZmVfcHVzaCAocmVnaXN0ZXJlZF9mdW5jdGlvbnMsICZyZm4pOw0K PiAgICByZXR1cm4gcmZuOw0KPiBAQCAtMzQxNSw2ICszNDYwLDEwIEBAIGZ1 bmN0aW9uX2J1aWxkZXI6OmFkZF91bmlxdWVfZnVuY3Rpb24gKGNvbnN0IGZ1 bmN0aW9uX2luc3RhbmNlICZpbnN0YW5jZSwNCj4gICAgaWYgKCFjaGVja19y ZXF1aXJlZF9leHRlbnNpb25zIChpbnN0YW5jZSkpDQo+ICAgICAgcmV0dXJu Ow0KPiArICAvKiBBbHNvIGFkZCB0aGUgZnVuY3Rpb24gdW5kZXIgaXRzIG92 ZXJsb2FkZWQgYWxpYXMsIGlmIHdlIHdhbnQNCj4gKyAgICAgYSBzZXBhcmF0 ZSBkZWNsIGZvciBlYWNoIGluc3RhbmNlIG9mIGFuIG92ZXJsb2FkZWQgZnVu Y3Rpb24uICAqLw0KPiArICBjaGFyICpvdmVybG9hZF9uYW1lID0gc2hhcGUt PmdldF9uYW1lICgqdGhpcywgaW5zdGFuY2UsIHRydWUpOw0KPiArDQo+ICAg IC8qIEFkZCB0aGUgZnVuY3Rpb24gdW5kZXIgaXRzIGZ1bGwgKHVuaXF1ZSkg bmFtZS4gICovDQo+ICAgIGNoYXIgKm5hbWUgPSBzaGFwZS0+Z2V0X25hbWUg KCp0aGlzLCBpbnN0YW5jZSwgZmFsc2UpOw0KPiAgICB0cmVlIGZudHlwZQ0K PiBAQCAtMzQyMiw3ICszNDcxLDggQEAgZnVuY3Rpb25fYnVpbGRlcjo6YWRk X3VuaXF1ZV9mdW5jdGlvbiAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmlu c3RhbmNlLA0KPiBhcmd1bWVudF90eXBlcy5hZGRyZXNzICgpKTsNCj4gICAg dHJlZSBhdHRycyA9IGdldF9hdHRyaWJ1dGVzIChpbnN0YW5jZSk7DQo+ICAg IHJlZ2lzdGVyZWRfZnVuY3Rpb24gJnJmbg0KPiAtICAgID0gYWRkX2Z1bmN0 aW9uIChpbnN0YW5jZSwgbmFtZSwgZm50eXBlLCBhdHRycywgZmFsc2UpOw0K PiArICAgID0gYWRkX2Z1bmN0aW9uIChpbnN0YW5jZSwgbmFtZSwgZm50eXBl LCBhdHRycywgZmFsc2UsIG92ZXJsb2FkX25hbWUsDQo+ICsgICAgIGFyZ3Vt ZW50X3R5cGVzLmNvcHkgKCkpOw0KPiAgICAvKiBFbnRlciB0aGUgZnVuY3Rp b24gaW50byB0aGUgaGFzaCB0YWJsZS4gICovDQo+ICAgIGhhc2h2YWxfdCBo YXNoID0gaW5zdGFuY2UuaGFzaCAoKTsNCj4gQEAgLTM0MzEsMTkgKzM0ODEs NDUgQEAgZnVuY3Rpb25fYnVpbGRlcjo6YWRkX3VuaXF1ZV9mdW5jdGlvbiAo Y29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlLA0KPiAgICBnY2Nf YXNzZXJ0ICghKnJmbl9zbG90KTsNCj4gICAgKnJmbl9zbG90ID0gJnJmbjsN Cj4gLSAgLyogQWxzbyBhZGQgdGhlIGZ1bmN0aW9uIHVuZGVyIGl0cyBvdmVy bG9hZGVkIGFsaWFzLCBpZiB3ZSB3YW50DQo+IC0gICAgIGEgc2VwYXJhdGUg ZGVjbCBmb3IgZWFjaCBpbnN0YW5jZSBvZiBhbiBvdmVybG9hZGVkIGZ1bmN0 aW9uLiAgKi8NCj4gLSAgY2hhciAqb3ZlcmxvYWRfbmFtZSA9IHNoYXBlLT5n ZXRfbmFtZSAoKnRoaXMsIGluc3RhbmNlLCB0cnVlKTsNCj4gICAgaWYgKG92 ZXJsb2FkX25hbWUpDQo+ICAgICAgew0KPiAgICAgICAgLyogQXR0cmlidXRl IGxpc3RzIHNob3VsZG4ndCBiZSBzaGFyZWQuICAqLw0KPiAgICAgICAgdHJl ZSBhdHRycyA9IGdldF9hdHRyaWJ1dGVzIChpbnN0YW5jZSk7DQo+ICAgICAg ICBib29sIHBsYWNlaG9sZGVyX3AgPSAhbV9kaXJlY3Rfb3ZlcmxvYWRzOw0K PiAtICAgICAgYWRkX2Z1bmN0aW9uIChpbnN0YW5jZSwgb3ZlcmxvYWRfbmFt ZSwgZm50eXBlLCBhdHRycywgcGxhY2Vob2xkZXJfcCk7DQo+ICsgICAgICBh ZGRfZnVuY3Rpb24gKGluc3RhbmNlLCBvdmVybG9hZF9uYW1lLCBmbnR5cGUs IGF0dHJzLCBwbGFjZWhvbGRlcl9wLCBOVUxMLA0KPiArICAgICB2TlVMTCk7 DQo+ICsNCj4gKyAgICAgIC8qIEVudGVyIHRoZSBmdW5jdGlvbiBpbnRvIHRo ZSBub24tb3ZlcmxvYWRlZCBoYXNoIHRhYmxlLiAgKi8NCj4gKyAgICAgIGhh c2ggPSByZm4ub3ZlcmxvYWRlZF9oYXNoICgpOw0KPiArICAgICAgcmZuX3Ns b3QgPSBub25fb3ZlcmxvYWRlZF9mdW5jdGlvbl90YWJsZS0+ZmluZF9zbG90 X3dpdGhfaGFzaCAoJnJmbiwgaGFzaCwNCj4gKyAgICAgIElOU0VSVCk7DQo+ ICsgICAgICBnY2NfYXNzZXJ0ICghKnJmbl9zbG90KTsNCj4gKyAgICAgICpy Zm5fc2xvdCA9ICZyZm47DQo+ICAgICAgfQ0KPiAgICBvYnN0YWNrX2ZyZWUg KCZtX3N0cmluZ19vYnN0YWNrLCBuYW1lKTsNCj4gfQ0KPiArLyogQWRkIG92 ZXJsb2FkZWQgZnVuY3Rpb24gZm9yIGdjYy4gKi8NCj4gK3ZvaWQNCj4gK2Z1 bmN0aW9uX2J1aWxkZXI6OmFkZF9vdmVybG9hZGVkX2Z1bmN0aW9uIChjb25z dCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsDQo+ICsgICAgY29uc3Qg ZnVuY3Rpb25fc2hhcGUgKnNoYXBlKQ0KPiArew0KPiArICBpZiAoIWNoZWNr X3JlcXVpcmVkX2V4dGVuc2lvbnMgKGluc3RhbmNlKSkNCj4gKyAgICByZXR1 cm47DQo+ICsNCj4gKyAgY2hhciAqbmFtZSA9IHNoYXBlLT5nZXRfbmFtZSAo KnRoaXMsIGluc3RhbmNlLCB0cnVlKTsNCj4gKw0KPiArICBpZiAobmFtZSkN Cj4gKyAgICB7DQo+ICsgICAgICAvKiBUbyBhdm9pZCBBUEkgY29uZmxpY3Rp bmcsIHRha2Ugdm9pZCByZXR1cm4gdHlwZSBhbmQgdm9pZCBhcmd1bWVudA0K PiArIGZvciB0aGUgb3ZlcmxvYWRlZCBmdW5jdGlvbi4gICovDQo+ICsgICAg ICB0cmVlIGZudHlwZSA9IGJ1aWxkX2Z1bmN0aW9uX3R5cGUgKHZvaWRfdHlw ZV9ub2RlLCB2b2lkX2xpc3Rfbm9kZSk7DQo+ICsgICAgICBhZGRfZnVuY3Rp b24gKGluc3RhbmNlLCBuYW1lLCBmbnR5cGUsIE5VTExfVFJFRSwgbV9kaXJl Y3Rfb3ZlcmxvYWRzLCBuYW1lLA0KPiArICAgICB2TlVMTCwgdHJ1ZSk7DQo+ ICsgICAgICBvYnN0YWNrX2ZyZWUgKCZtX3N0cmluZ19vYnN0YWNrLCBuYW1l KTsNCj4gKyAgICB9DQo+ICt9DQo+ICsNCj4gZnVuY3Rpb25fY2FsbF9pbmZv OjpmdW5jdGlvbl9jYWxsX2luZm8gKGxvY2F0aW9uX3QgbG9jYXRpb25faW4s DQo+IGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0YW5jZV9pbiwNCj4g dHJlZSBmbmRlY2xfaW4pDQo+IEBAIC0zOTkxLDYgKzQwNjcsMTIyIEBAIHJl Z2lzdGVyZWRfZnVuY3Rpb25faGFzaGVyOjplcXVhbCAodmFsdWVfdHlwZSB2 YWx1ZSwgY29uc3QgY29tcGFyZV90eXBlICZrZXkpDQo+ICAgIHJldHVybiB2 YWx1ZS0+aW5zdGFuY2UgPT0ga2V5Ow0KPiB9DQo+ICtoYXNodmFsX3QNCj4g K3JlZ2lzdGVyZWRfZnVuY3Rpb246Om92ZXJsb2FkZWRfaGFzaCAoKSBjb25z dA0KPiArew0KPiArICBpbmNoYXNoOjpoYXNoIGg7DQo+ICsgIHRyZWUgdHlw ZTsNCj4gKyAgdW5zaWduZWQgaW50IHVuc2lnbmVkX3AsIG1vZGVfcDsNCj4g KyAgaC5hZGQgKG92ZXJsb2FkX25hbWUsIHN0cmxlbiAob3ZlcmxvYWRfbmFt ZSkpOw0KPiArICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGFyZ3Vt ZW50X3R5cGVzLmxlbmd0aCAoKTsgaSsrKQ0KPiArICAgIHsNCj4gKyAgICAg IHR5cGUgPSBhcmd1bWVudF90eXBlc1tpXTsNCj4gKyAgICAgIHVuc2lnbmVk X3AgPSBQT0lOVEVSX1RZUEVfUCAodHlwZSkgPyBUWVBFX1VOU0lHTkVEIChU UkVFX1RZUEUgKHR5cGUpKQ0KPiArIDogVFlQRV9VTlNJR05FRCAodHlwZSk7 DQo+ICsgICAgICBtb2RlX3AgPSBQT0lOVEVSX1RZUEVfUCAodHlwZSkgPyBU WVBFX01PREUgKFRSRUVfVFlQRSAodHlwZSkpDQo+ICsgICAgICA6IFRZUEVf TU9ERSAodHlwZSk7DQo+ICsgICAgICBoLmFkZF9pbnQgKHVuc2lnbmVkX3Ap Ow0KPiArICAgICAgaC5hZGRfaW50IChtb2RlX3ApOw0KPiArICAgIH0NCj4g Kw0KPiArICByZXR1cm4gaC5lbmQgKCk7DQo+ICt9DQo+ICsNCj4gK2Jvb2wN Cj4gK2hhc192eHJtX29yX2ZybV9wIChmdW5jdGlvbl9pbnN0YW5jZSAmaW5z dGFuY2UsIGNvbnN0IHZlYzx0cmVlLCB2YV9nYz4gJmFyZ2xpc3QpDQo+ICt7 DQo+ICsgIGlmIChpbnN0YW5jZS5iYXNlLT5tYXlfcmVxdWlyZV92eHJtX3Ag KCkNCj4gKyAgICAgIHx8IChpbnN0YW5jZS5iYXNlLT5tYXlfcmVxdWlyZV9m cm1fcCAoKQ0KPiArICAgJiYgKFRSRUVfQ09ERSAoVFJFRV9UWVBFIChhcmds aXN0W2FyZ2xpc3QubGVuZ3RoICgpIC0gMl0pKQ0KPiArICAgICAgID09IElO VEVHRVJfVFlQRSkpKQ0KPiArICAgIHJldHVybiB0cnVlOw0KPiArICByZXR1 cm4gZmFsc2U7DQo+ICt9DQo+ICsNCj4gK2hhc2h2YWxfdA0KPiArcmVnaXN0 ZXJlZF9mdW5jdGlvbjo6b3ZlcmxvYWRlZF9oYXNoIChjb25zdCB2ZWM8dHJl ZSwgdmFfZ2M+ICZhcmdsaXN0KQ0KPiArew0KPiArICBhcmd1bWVudF90eXBl cyA9IHZOVUxMOw0KPiArICB1bnNpZ25lZCBpbnQgbGVuID0gYXJnbGlzdC5s ZW5ndGggKCk7DQo+ICsNCj4gKyAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7 IGkgPCBsZW47IGkrKykNCj4gKyAgICB7DQo+ICsgICAgICAvKiB2aW50OG0x X3QgX19yaXNjdl92Z2V0X2k4bTEodmludDhtMl90IHNyYywgc2l6ZV90IGlu ZGV4KTsNCj4gKyAgICAgIFdoZW4gdGhlIHVzZXIgY2FsbHMgdmdldCBpbnRy aW5zaWMsIHRoZSBfX3Jpc2N2X3ZnZXRfaThtMShzcmMsIDEpDQo+ICsgICAg ICAgZm9ybSBpcyB1c2VkLiBUaGUgY29tcGlsZXIgcmVjb2duaXplcyB0aGF0 IHRoZSBwYXJhbWV0ZXIgaW5kZXggaXMgc2lnbmVkDQo+ICsgICAgICAgaW50 LCB3aGljaCBpcyBpbmNvbnNpc3RlbnQgd2l0aCBzaXplX3QsIHNvIHRoZSBp bmRleCBpcyBjb252ZXJ0ZWQgdG8NCj4gKyAgICAgICBzaXplX3QgdHlwZSBp biBvcmRlciB0byBnZXQgY29ycmVjdCBoYXNoIHZhbHVlLiB2aW50OG0yX3QN Cj4gKyAgICAgICBfX3Jpc2N2X3ZzZXQodmludDhtMl90IGRlc3QsIHNpemVf dCBpbmRleCwgdmludDhtMV90IHZhbHVlKTsgVGhlIHJlYXNvbg0KPiArICAg ICAgIGlzIHRoZSBzYW1lIGFzIGFib3ZlLiAqLw0KPiArICAgICAgaWYgKChp bnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Z2V0ICYmIChpID09IChsZW4gLSAx KSkpDQo+ICsgICB8fCAoaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dnNldCAm JiAoaSA9PSAobGVuIC0gMikpKSkNCj4gKyBhcmd1bWVudF90eXBlcy5zYWZl X3B1c2ggKHNpemVfdHlwZV9ub2RlKTsNCj4gKyAgICAgIC8qIFZlY3RvciBm aXhlZC1wb2ludCBhcml0aG1ldGljIGluc3RydWN0aW9ucyByZXF1aXJpbmcg YXJndW1lbnQgdnhybS4NCj4gKyAgICAgIEZvciBleGFtcGxlOiB2dWludDMy bTRfdCBfX3Jpc2N2X3ZhYWRkdSh2dWludDMybTRfdCB2czIsDQo+ICsgICAg ICB2dWludDMybTRfdCB2czEsIHVuc2lnbmVkIGludCB2eHJtLCBzaXplX3Qg dmwpOyBUaGUgdXNlciBjYWxscyB2YWFkZHUNCj4gKyAgICAgIGludHJpbnNp YyBpbiB0aGUgZm9ybSBvZiBfX3Jpc2N2X3ZhYWRkdSh2czIsIHZzMSwgMiwg dmwpLiBUaGUgY29tcGlsZXINCj4gKyAgICAgIHJlY29nbml6ZXMgdGhhdCB0 aGUgcGFyYW1ldGVyIHZ4cm0gaXMgYSBzaWduZWQgaW50LCB3aGljaCBpcyBp bmNvbnNpc3RlbnQNCj4gKyAgICAgIHdpdGggdGhlIHBhcmFtZXRlciB1bnNp Z25lZCBpbnQgdnhybSBkZWNsYXJlZCBieSBpbnRyaW5zaWMsIHNvIHRoZQ0K PiArICAgICAgcGFyYW1ldGVyIHZ4cm0gaXMgY29udmVydGVkIHRvIGFuIHVu c2lnbmVkIGludCB0eXBlIGluIG9yZGVyIHRvIGdldA0KPiArICAgICAgY29y cmVjdCBoYXNoIHZhbHVlLg0KPiArDQo+ICsgICAgICBWZWN0b3IgRmxvYXRp bmctUG9pbnQgSW5zdHJ1Y3Rpb25zIHJlcXVpcmluZyBhcmd1bWVudCBmcm0u DQo+ICsgICAgICBERUZfUlZWX0ZVTkNUSU9OICh2ZmFkZCwgYWx1LCBmdWxs X3ByZWRzLCBmX3Z2dl9vcHMpDQo+ICsgICAgICBERUZfUlZWX0ZVTkNUSU9O ICh2ZmFkZF9mcm0sIGFsdV9mcm0sIGZ1bGxfcHJlZHMsIGZfdnZ2X29wcykN Cj4gKyAgICAgIFRha2luZyB2ZmFkZCBhcyBhbiBleGFtcGxlLCB0aGVvcmV0 aWNhbGx5IHdlIGNhbiBhZGQgYmFzZSBvciBzaGFwZSB0byB0aGUNCj4gKyAg ICAgIGhhc2ggdmFsdWUgdG8gZGlzdGluZ3Vpc2ggd2hldGhlciB0aGUgZnJt IHBhcmFtZXRlciBpcyByZXF1aXJlZC4NCj4gKyAgICAgIHZmbG9hdDMybTFf dCBfX3Jpc2N2X3ZmYWRkKHZmbG9hdDMybTFfdCB2czIsIGZsb2F0MzJfdCBy czEsIHNpemVfdCB2bCk7DQo+ICsgICAgICB2ZmxvYXQzMm0xX3QgX19yaXNj dl92ZmFkZCh2ZmxvYXQzMm0xX3QgdnMyLCB2ZmxvYXQzMm0xX3QgdnMxLCB1 bnNpZ25lZCBpbnQNCj4gKyAgICAgIGZybSwgc2l6ZV90IHZsKTsNCj4gKw0K PiArICAgICBIb3dldmVyLCB0aGUgY3VycmVudCByZWdpc3RyYXRpb24gbWVj aGFuaXNtIG9mIG92ZXJsb2FkZWQgaW50aW5zaWMgZm9yIGdjYw0KPiArICAg ICAgbGltaXRzIHRoZSBpbnRyaW5zaWMgb2J0YWluZWQgYnkgZW50ZXJpbmcg dGhlIGhvb2sgdG8gYWx3YXlzIGJlIHZmYWRkLCBub3QNCj4gKyAgICAgIHZm YWRkX2ZybS4gVGhlcmVmb3JlLCB0aGUgY29ycmVjdCBoYXNoIHZhbHVlIGNh bm5vdCBiZSBvYnRhaW5lZCB0aHJvdWdoIHRoZQ0KPiArICAgICAgcGFyYW1l dGVyIGxpc3QgYW5kIG92ZXJsb2FkIG5hbWUsIGJhc2Ugb3Igc2hhcGUuDQo+ ICsgICAgICArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsgICAgICB8IGluZGV4ICB8IG5h bWUgICAgICAgICAgICAgICAgICAgICAgfCBraW5kICAgICAgICAgICAgICB8 DQo+ICsgICAgICArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ICsgICAgICB8IDEyNDczMyB8 IF9fcmlzY3ZfdmZhZGQgICAgICAgICAgICAgfCBPdmVybG9hZGVkICAgICAg ICB8IDwtIEhvb2sgZnVuIGNvZGUNCj4gKyAgICAgICstLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsN Cj4gKyAgICAgIHwgMTI0NzM1IHwgIF9fcmlzY3ZfdmZhZGRfdnZfZjMybTEg ICB8IE5vbi1vdmVybG9hZGVkICAgIHwNCj4gKyAgICAgICstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSsNCj4gKyAgICAgIHwgMTI0NzM3IHwgX19yaXNjdl92ZmFkZCAgICAgICAg ICAgICB8IFBsYWNlaG9sZGVyICAgICAgIHwNCj4gKyAgICAgICstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSsNCj4gKyAgICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKyAgICAgICstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSsNCj4gKyAgICAgIHwgLi4uICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gKyAgICAgICst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSsNCj4gKyAgICAgIHwgMTI1NzM5IHwgX19yaXNjdl92ZmFk ZCAgICAgICAgICAgICB8IE92ZXJsb2FkZWQgICAgICAgIHwNCj4gKyAgICAg ICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSsNCj4gKyAgICAgIHwgMTI1NzQxIHwgX19yaXNjdl92 ZmFkZF92dl9mMzJtMV9ybSB8IE5vbi1vdmVybG9hZGVkICAgIHwNCj4gKyAg ICAgICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSsNCj4gKyAgICAgIHwgMTI1NzQzIHwgX19yaXNj dl92ZmFkZCAgICAgICAgICAgICB8IFBsYWNlaG9sZGVyICAgICAgIHwNCj4g KyAgICAgICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gKw0KPiArICAgICBUaGVyZWZvcmUs IHRoZSBoYXNoIHZhbHVlIGNhbm5vdCBiZSBhZGRlZCB3aXRoIGJhc2Ugb3Ig c2hhcGUsIGFuZCBuZWVkcw0KPiArICAgICAgdG8gYmUgZGlzdGluZ3Vpc2hl ZCBieSB3aGV0aGVyIHRoZSBwZW51bHRpbWF0ZSBwYXJhbWV0ZXIgaXMgSU5U RUdFUl9UWVBFLiAqLw0KPiArICAgICAgZWxzZSBpZiAoaGFzX3Z4cm1fb3Jf ZnJtX3AgKGluc3RhbmNlLCBhcmdsaXN0KSAmJiAoaSA9PSAobGVuIC0gMikp KQ0KPiArIGFyZ3VtZW50X3R5cGVzLnNhZmVfcHVzaCAodW5zaWduZWRfdHlw ZV9ub2RlKTsNCj4gKyAgICAgIGVsc2UNCj4gKyBhcmd1bWVudF90eXBlcy5z YWZlX3B1c2ggKFRSRUVfVFlQRSAoYXJnbGlzdFtpXSkpOw0KPiArICAgIH0N Cj4gKyAgcmV0dXJuIG92ZXJsb2FkZWRfaGFzaCAoKTsNCj4gK30NCj4gKw0K PiAraW5saW5lIGhhc2h2YWxfdA0KPiArbm9uX292ZXJsb2FkZWRfcmVnaXN0 ZXJlZF9mdW5jdGlvbl9oYXNoZXI6Omhhc2ggKHZhbHVlX3R5cGUgdmFsdWUp DQo+ICt7DQo+ICsgIHJldHVybiB2YWx1ZS0+b3ZlcmxvYWRlZF9oYXNoICgp Ow0KPiArfQ0KPiArDQo+ICtpbmxpbmUgYm9vbA0KPiArbm9uX292ZXJsb2Fk ZWRfcmVnaXN0ZXJlZF9mdW5jdGlvbl9oYXNoZXI6OmVxdWFsICh2YWx1ZV90 eXBlIHZhbHVlLA0KPiArICAgY29uc3QgY29tcGFyZV90eXBlICZrZXkpDQo+ ICt7DQo+ICsgIHJldHVybiAoKHN0cmNtcCAodmFsdWUtPm92ZXJsb2FkX25h bWUsIGtleS0+b3ZlcmxvYWRfbmFtZSkgPT0gMCkNCj4gKyAgICYmIHZhbHVl LT5vdmVybG9hZGVkX2hhc2ggKCkgPT0ga2V5LT5vdmVybG9hZGVkX2hhc2gg KCkpOw0KPiArfQ0KPiArDQo+IC8qIElmIFRZUEUgaXMgYSBidWlsdC1pbiB0 eXBlIGRlZmluZWQgYnkgdGhlIFJWViBBQkksIHJldHVybiB0aGUgbWFuZ2xl ZCBuYW1lLA0KPiAgICAgb3RoZXJ3aXNlIHJldHVybiBOVUxMLiAgKi8NCj4g Y29uc3QgY2hhciAqDQo+IEBAIC00MTM5LDcgKzQzMzEsNyBAQCByZWdpc3Rl cl9mcm0gKCkNCj4gdm9pZA0KPiBoYW5kbGVfcHJhZ21hX3ZlY3RvciAoKQ0K PiB7DQo+IC0gIGlmIChmdW5jdGlvbl90YWJsZSkNCj4gKyAgaWYgKGZ1bmN0 aW9uX3RhYmxlIHx8IG5vbl9vdmVybG9hZGVkX2Z1bmN0aW9uX3RhYmxlKQ0K PiAgICAgIHsNCj4gICAgICAgIGVycm9yICgiZHVwbGljYXRlIGRlZmluaXRp b24gb2YgJXFzIiwgInJpc2N2X3ZlY3Rvci5oIik7DQo+ICAgICAgICByZXR1 cm47DQo+IEBAIC00MTU2LDYgKzQzNDgsOCBAQCBoYW5kbGVfcHJhZ21hX3Zl Y3RvciAoKQ0KPiAgICAvKiBEZWZpbmUgdGhlIGZ1bmN0aW9ucy4gICovDQo+ ICAgIGZ1bmN0aW9uX3RhYmxlID0gbmV3IGhhc2hfdGFibGU8cmVnaXN0ZXJl ZF9mdW5jdGlvbl9oYXNoZXI+ICgxMDIzKTsNCj4gKyAgbm9uX292ZXJsb2Fk ZWRfZnVuY3Rpb25fdGFibGUNCj4gKyAgICA9IG5ldyBoYXNoX3RhYmxlPG5v bl9vdmVybG9hZGVkX3JlZ2lzdGVyZWRfZnVuY3Rpb25faGFzaGVyPiAoMTAy Myk7DQo+ICAgIGZ1bmN0aW9uX2J1aWxkZXIgYnVpbGRlcjsNCj4gICAgZm9y ICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBBUlJBWV9TSVpFIChmdW5jdGlv bl9ncm91cHMpOyArK2kpDQo+ICAgICAgYnVpbGRlci5yZWdpc3Rlcl9mdW5j dGlvbl9ncm91cCAoZnVuY3Rpb25fZ3JvdXBzW2ldKTsNCj4gQEAgLTQyMDgs NiArNDQwMiwyNCBAQCBjaGVja19idWlsdGluX2NhbGwgKGxvY2F0aW9uX3Qg bG9jYXRpb24sIHZlYzxsb2NhdGlvbl90PiwgdW5zaWduZWQgaW50IGNvZGUs DQo+ICAgIFRSRUVfVFlQRSAocmZuLmRlY2wpLCBuYXJncywgYXJncykuY2hl Y2sgKCk7DQo+IH0NCj4gK3RyZWUNCj4gK3Jlc29sdmVfb3ZlcmxvYWRlZF9i dWlsdGluICh1bnNpZ25lZCBpbnQgY29kZSwgdmVjPHRyZWUsIHZhX2djPiAq YXJnbGlzdCkNCj4gK3sNCj4gKyAgaWYgKGNvZGUgPj0gdmVjX3NhZmVfbGVu Z3RoIChyZWdpc3RlcmVkX2Z1bmN0aW9ucykpDQo+ICsgICAgcmV0dXJuIE5V TExfVFJFRTsNCj4gKw0KPiArICByZWdpc3RlcmVkX2Z1bmN0aW9uICpyZnVu ID0gKCpyZWdpc3RlcmVkX2Z1bmN0aW9ucylbY29kZV07DQo+ICsNCj4gKyAg aWYgKCFyZnVuIHx8ICFyZnVuLT5vdmVybG9hZGVkX3ApDQo+ICsgICAgcmV0 dXJuIE5VTExfVFJFRTsNCj4gKw0KPiArICBoYXNodmFsX3QgaGFzaCA9IHJm dW4tPm92ZXJsb2FkZWRfaGFzaCAoKmFyZ2xpc3QpOw0KPiArICByZWdpc3Rl cmVkX2Z1bmN0aW9uICpyZm4NCj4gKyAgICA9IG5vbl9vdmVybG9hZGVkX2Z1 bmN0aW9uX3RhYmxlLT5maW5kX3dpdGhfaGFzaCAocmZ1biwgaGFzaCk7DQo+ ICsgIGdjY19hc3NlcnQgKHJmbik7DQo+ICsgIHJldHVybiByZm4tPmRlY2w7 DQo+ICt9DQo+ICsNCj4gZnVuY3Rpb25faW5zdGFuY2UNCj4gZ2V0X3JlYWRf dmxfaW5zdGFuY2UgKHZvaWQpDQo+IHsNCj4gZGlmZiAtLWdpdCBhL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmggYi9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQo+IGluZGV4IGUz NThhOGU0ZDkxLi5jZDhjY2FiMTcyNCAxMDA2NDQNCj4gLS0tIGEvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaA0KPiArKysgYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQo+IEBA IC0yNzcsNiArMjc3LDggQEAgcHVibGljOg0KPiAgICB2b2lkIGFwcGx5X3By ZWRpY2F0aW9uIChjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmLCB0cmVlLCB2 ZWM8dHJlZT4gJikgY29uc3Q7DQo+ICAgIHZvaWQgYWRkX3VuaXF1ZV9mdW5j dGlvbiAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJiwgY29uc3QgZnVuY3Rp b25fc2hhcGUgKiwNCj4gICAgIHRyZWUsIHZlYzx0cmVlPiAmKTsNCj4gKyAg dm9pZCBhZGRfb3ZlcmxvYWRlZF9mdW5jdGlvbiAoY29uc3QgZnVuY3Rpb25f aW5zdGFuY2UgJiwNCj4gKyBjb25zdCBmdW5jdGlvbl9zaGFwZSAqKTsNCj4g ICAgdm9pZCByZWdpc3Rlcl9mdW5jdGlvbl9ncm91cCAoY29uc3QgZnVuY3Rp b25fZ3JvdXBfaW5mbyAmKTsNCj4gICAgdm9pZCBhcHBlbmRfbmFtZSAoY29u c3QgY2hhciAqKTsNCj4gICAgdm9pZCBhcHBlbmRfYmFzZV9uYW1lIChjb25z dCBjaGFyICopOw0KPiBAQCAtMjg4LDcgKzI5MCw4IEBAIHByaXZhdGU6DQo+ ICAgIHRyZWUgZ2V0X2F0dHJpYnV0ZXMgKGNvbnN0IGZ1bmN0aW9uX2luc3Rh bmNlICYpOw0KPiAgICByZWdpc3RlcmVkX2Z1bmN0aW9uICZhZGRfZnVuY3Rp b24gKGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICYsIGNvbnN0IGNoYXIgKiwN Cj4gLSAgICAgIHRyZWUsIHRyZWUsIGJvb2wpOw0KPiArICAgICAgdHJlZSwg dHJlZSwgYm9vbCwgY29uc3QgY2hhciAqLA0KPiArICAgICAgY29uc3QgdmVj PHRyZWU+ICYsIGJvb2wpOw0KPiAgICAvKiBUcnVlIGlmIHdlIHNob3VsZCBj cmVhdGUgYSBzZXBhcmF0ZSBkZWNsIGZvciBlYWNoIGluc3RhbmNlIG9mIGFu DQo+ICAgICAgIG92ZXJsb2FkZWQgZnVuY3Rpb24sIGluc3RlYWQgb2YgdXNp bmcgZnVuY3Rpb25fYnVpbGRlci4gICovDQo+IEBAIC00MTcsNiArNDIwLDEy IEBAIHB1YmxpYzoNCj4gICAgLyogUmV0dXJuIHRydWUgaWYgaW50cmluc2lj cyBoYXMgcm91bmRpbmcgbW9kZSBvcGVyYW5kLiAgKi8NCj4gICAgdmlydHVh bCBib29sIGhhc19yb3VuZGluZ19tb2RlX29wZXJhbmRfcCAoKSBjb25zdDsN Cj4gKyAgLyogUmV0dXJuIHRydWUgaWYgaW50cmluc2ljcyBtYXliZSByZXF1 aXJlIHZ4cm0gb3BlcmFuZC4gICovDQo+ICsgIHZpcnR1YWwgYm9vbCBtYXlf cmVxdWlyZV92eHJtX3AgKCkgY29uc3Q7DQo+ICsNCj4gKyAgLyogUmV0dXJu IHRydWUgaWYgaW50cmluc2ljcyBtYXliZSByZXF1aXJlIGZybSBvcGVyYW5k LiAgKi8NCj4gKyAgdmlydHVhbCBib29sIG1heV9yZXF1aXJlX2ZybV9wICgp IGNvbnN0Ow0KPiArDQo+ICAgIC8qIFRyeSB0byBmb2xkIHRoZSBnaXZlbiBn aW1wbGUgY2FsbC4gIFJldHVybiB0aGUgbmV3IGdpbXBsZSBzdGF0ZW1lbnQN Cj4gICAgICAgb24gc3VjY2Vzcywgb3RoZXJ3aXNlIHJldHVybiBudWxsLiAg Ki8NCj4gICAgdmlydHVhbCBnaW1wbGUgKmZvbGQgKGdpbXBsZV9mb2xkZXIg JikgY29uc3QgeyByZXR1cm4gTlVMTDsgfQ0KPiBAQCAtNjc0LDYgKzY4Mywy MiBAQCBmdW5jdGlvbl9iYXNlOjpoYXNfcm91bmRpbmdfbW9kZV9vcGVyYW5k X3AgKCkgY29uc3QNCj4gICAgcmV0dXJuIGZhbHNlOw0KPiB9DQo+ICsvKiBX ZSBjaG9vc2UgdG8gcmV0dXJuIGZhbHNlIGJ5IGRlZmF1bHQgc2luY2UgbW9z dCBvZiB0aGUgaW50cmluc2ljcyBkb2VzDQo+ICsgICBub3QgbmVlZCBmcm0g b3BlcmFuZC4gICovDQo+ICtpbmxpbmUgYm9vbA0KPiArZnVuY3Rpb25fYmFz ZTo6bWF5X3JlcXVpcmVfZnJtX3AgKCkgY29uc3QNCj4gK3sNCj4gKyAgcmV0 dXJuIGZhbHNlOw0KPiArfQ0KPiArDQo+ICsvKiBXZSBjaG9vc2UgdG8gcmV0 dXJuIGZhbHNlIGJ5IGRlZmF1bHQgc2luY2UgbW9zdCBvZiB0aGUgaW50cmlu c2ljcyBkb2VzDQo+ICsgICBub3QgbmVlZCB2eHJtIG9wZXJhbmQuICAqLw0K PiAraW5saW5lIGJvb2wNCj4gK2Z1bmN0aW9uX2Jhc2U6Om1heV9yZXF1aXJl X3Z4cm1fcCAoKSBjb25zdA0KPiArew0KPiArICByZXR1cm4gZmFsc2U7DQo+ ICt9DQo+ICsNCj4gLyogU2luY2UgbW9zdCBvZiBpbnRyaW5zaWNzIGNhbiBi ZSBvdmVybG9hZGVkLCB3ZSBzZXQgaXQgdHJ1ZSBieSBkZWZhdWx0LiAgKi8N Cj4gaW5saW5lIGJvb2wNCj4gZnVuY3Rpb25fYmFzZTo6Y2FuX2JlX292ZXJs b2FkZWRfcCAoZW51bSBwcmVkaWNhdGlvbl90eXBlX2luZGV4KSBjb25zdA0K PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92YWRkLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMy X3ZhZGQuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAw MDAwMDAwMC4uNWYxMGFhOWJmMzUNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zl cmxvYWRlZF9ydjMyX3ZhZGQuYw0KPiBAQCAtMCwwICsxLDEyIEBADQo+ICsv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25zICIt bWFyY2g9cnYzMmdjdl96dmZoIC1tYWJpPWlscDMyIC1PMyAtV25vLXBzYWJp IiB9ICovDQo+ICsNCj4gKyNpbmNsdWRlICJvdmVybG9hZGVkX3ZhZGQuaCIN Cj4gKw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmU4LFxzKm0xLFxz KnRhLFxzKm1hfSA0IH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2F4XVswLTldKyxccyp6ZXJv LFxzKmU4LFxzKm0xLFxzKnRhLFxzKm1hfSA4IH0gfSAqLw0KPiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVy byxccypbYXhdWzAtOV0rLFxzKmU4LFxzKm0xLFxzKnR1LFxzKm1hfSA0IH0g fSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmU4LFxzKm0xLFxz KnRhLFxzKm11fSAyIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0r LFxzKmU4LFxzKm0xLFxzKnR1LFxzKm11fSAyIH0gfSAqLw0KPiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2YWRkXC52dlxzK3Zb MC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSA2IH0gfSAqLw0KPiArLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2YWRkXC52eFxz K3ZbMC05XSssXHMqdlswLTldKyxccypbYXhdWzAtOV0rfSA2IH0gfSAqLw0K PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92ZmFkZC5jIGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYz Ml92ZmFkZC5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAw MDAwMDAwMDAwLi5iZWEzNWExM2E3Yg0KPiAtLS0gL2Rldi9udWxsDQo+ICsr KyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9v dmVybG9hZGVkX3J2MzJfdmZhZGQuYw0KPiBAQCAtMCwwICsxLDEyIEBADQo+ ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25z ICItbWFyY2g9cnYzMmdjdl96dmZoIC1tYWJpPWlscDMyIC1PMyAtV25vLXBz YWJpIiB9ICovDQo+ICsNCj4gKyNpbmNsdWRlICJvdmVybG9hZGVkX3ZmYWRk LmgiDQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnNldHZsaVxzK1theF1bMC05XSssXHMqemVybyxccyplMTYsXHMq bWY0LFxzKnRhLFxzKm1hfSAxNiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4 XVswLTldKyxccyplMTYsXHMqbWY0LFxzKnRhLFxzKm1hfSA0IH0gfSAqLw0K PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0 dmxpXHMrW2F4XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mOCxccyp0YSxc cyptYX0gOCB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccypl MTYsXHMqbWY0LFxzKnR1LFxzKm1hfSA0IH0gfSAqLw0KPiArLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxc cypbYXhdWzAtOV0rLFxzKmUxNixccyptZjQsXHMqdHUsXHMqbXV9IDIgfSB9 ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTE2LFxzKm1mNCxc cyp0YSxccyptdX0gMiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZ2XHMrdlswLTldKyxccyp2WzAt OV0rLFxzKnZbMC05XSt9IDEyIH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfcnYzMl92Z2V0X3ZzZXQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdmdldF92c2V0LmMN Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAu LjZiMGJhMTQyYjkwDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRf cnYzMl92Z2V0X3ZzZXQuYw0KPiBAQCAtMCwwICsxLDcgQEANCj4gKy8qIHsg ZGctZG8gY29tcGlsZSB9ICovDQo+ICsvKiB7IGRnLW9wdGlvbnMgIi1tYXJj aD1ydjMyZ2N2X3p2ZmggLW1hYmk9aWxwMzIgLU8zIC1Xbm8tcHNhYmkiIH0g Ki8NCj4gKw0KPiArI2luY2x1ZGUgIm92ZXJsb2FkZWRfdmdldF92c2V0Lmgi DQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dmxbMC05XStyZVswLTldK1wudlxzK3ZbMC05XSssXHMqMFwoW2F4XVsw LTldK1wpfSAxNCB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dnNbMC05XStyXC52XHMrdlswLTldKyxccyowXChb YXhdWzAtOV0rXCl9IDEzIH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRf cnYzMl92bG94c2VnMmVpMTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdmxveHNlZzJlaTE2 LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAw MDAuLmEyMGU0YTNiYjRmDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfcnYzMl92bG94c2VnMmVpMTYuYw0KPiBAQCAtMCwwICsxLDExIEBADQo+ ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25z ICItbWFyY2g9cnYzMmdjdl96dmZoIC1tYWJpPWlscDMyIC1PMyAtV25vLXBz YWJpIiB9ICovDQo+ICsNCj4gKyNpbmNsdWRlICJvdmVybG9hZGVkX3Zsb3hz ZWcyZWkxNi5oIg0KPiArDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMq ZTY0LFxzKm00LFxzKnRhLFxzKm1hfSAyIH0gfSAqLw0KPiArLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2F4XVsw LTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mMixccyp0YSxccyptYX0gNCB9IH0g Ki8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplNjQsXHMqbTQsXHMq dHUsXHMqbWF9IDIgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSss XHMqZTY0LFxzKm00LFxzKnR1LFxzKm11fSAxIH0gfSAqLw0KPiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVy byxccypbYXhdWzAtOV0rLFxzKmU2NCxccyptNCxccyp0YSxccyptdX0gMSB9 IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dmxveHNlZzJlaTE2XC52XHMrdlswLTldKyxccypcKFtheF1bMC05XStc KSxccyp2WzAtOV0rfSA2IH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRf cnYzMl92bXYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdm12LmMNCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjIzN2IzNGRiZTkxDQo+ IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92bXYuYw0KPiBA QCAtMCwwICsxLDEwIEBADQo+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0K PiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjdl96dmZoIC1tYWJp PWlscDMyIC1PMyAtV25vLXBzYWJpIiB9ICovDQo+ICsNCj4gKyNpbmNsdWRl ICJvdmVybG9hZGVkX3Ztdi5oIg0KPiArDQo+ICsvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1b MC05XSssXHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlc cyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTgsXHMqbTEsXHMqdHUsXHMqbWF9 IDIgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTE2LFxz Km0xLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhd WzAtOV0rLFxzKmUxNixccyptMSxccyp0dSxccyptYX0gMSB9IH0gKi8NCj4g Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldGl2 bGlccyt6ZXJvLFxzKjAsXHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9 ICovDQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZyZWludGVycHJldC5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292 ZXJsb2FkZWRfcnYzMl92cmVpbnRlcnByZXQuYw0KPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4uNDJkNTA1ODkyNDYNCj4g LS0tIC9kZXYvbnVsbA0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZyZWludGVycHJl dC5jDQo+IEBAIC0wLDAgKzEsMTAgQEANCj4gKy8qIHsgZGctZG8gY29tcGls ZSB9ICovDQo+ICsvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N2X3p2 ZmggLW1hYmk9aWxwMzIgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCj4gKw0KPiAr I2luY2x1ZGUgIm92ZXJsb2FkZWRfdnJlaW50ZXJwcmV0LmgiDQo+ICsNCj4g Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZs aVxzK1theF1bMC05XSssXHMqemVybyxccyplOCxccyptNCxccyp0YSxccypt YX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7dnNldHZsaVxzK1theF1bMC05XSssXHMqemVybyxccyplOCxc cyptMixccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1theF1bMC05XSss XHMqemVybyxccyplOCxccyptZjIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2 bGlccytbYXhdWzAtOV0rLFxzKnplcm8sXHMqZTE2LFxzKm1mMixccyp0YSxc cyptYX0gMiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dnNldHZsaVxzK1theF1bMC05XSssXHMqemVybyxccypl MzIsXHMqbWYyLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiBkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292 ZXJsb2FkZWRfcnY2NF92YWRkLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZhZGQuYw0KPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4uYzQ1 NTVlM2Y0NzcNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0 X3ZhZGQuYw0KPiBAQCAtMCwwICsxLDExIEBADQo+ICsvKiB7IGRnLW9wdGlv bnMgIi1tYXJjaD1ydjY0Z2N2X3p2ZmggLW1hYmk9bHA2NCAtTzMgLVduby1w c2FiaSIgfSAqLw0KPiArDQo+ICsjaW5jbHVkZSAib3ZlcmxvYWRlZF92YWRk LmgiDQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplOCxccypt MSxccyp0YSxccyptYX0gNCB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1theF1bMC05XSssXHMq emVybyxccyplOCxccyptMSxccyp0YSxccyptYX0gOCB9IH0gKi8NCj4gKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxz K3plcm8sXHMqW2F4XVswLTldKyxccyplOCxccyptMSxccyp0dSxccyptYX0g NCB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplOCxccypt MSxccyp0YSxccyptdX0gMiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVsw LTldKyxccyplOCxccyptMSxccyp0dSxccyptdX0gMiB9IH0gKi8NCj4gKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmFkZFwudnZc cyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldK30gNiB9IH0gKi8NCj4g Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmFkZFwu dnhccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2F4XVswLTldK30gNiB9IH0g Ki8NCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmZhZGQuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3J2NjRfdmZhZGQuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRl eCAwMDAwMDAwMDAwMC4uY2E5ODEzNmNlOWINCj4gLS0tIC9kZXYvbnVsbA0K PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2Uvb3ZlcmxvYWRlZF9ydjY0X3ZmYWRkLmMNCj4gQEAgLTAsMCArMSwxMSBA QA0KPiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdl96dmZoIC1t YWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCj4gKw0KPiArI2luY2x1 ZGUgIm92ZXJsb2FkZWRfdmZhZGQuaCINCj4gKw0KPiArLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2F4XVswLTld Kyxccyp6ZXJvLFxzKmUxNixccyptZjQsXHMqdGEsXHMqbWF9IDE2IH0gfSAq Lw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmUxNixccyptZjQsXHMq dGEsXHMqbWF9IDQgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYXhdWzAtOV0rLFxzKnplcm8s XHMqZTgsXHMqbWY4LFxzKnRhLFxzKm1hfSA4IH0gfSAqLw0KPiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVy byxccypbYXhdWzAtOV0rLFxzKmUxNixccyptZjQsXHMqdHUsXHMqbWF9IDQg fSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTE2LFxzKm1m NCxccyp0dSxccyptdX0gMiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVsw LTldKyxccyplMTYsXHMqbWY0LFxzKnRhLFxzKm11fSAyIH0gfSAqLw0KPiAr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwu dnZccyt2WzAtOV0rLFxzKnZbMC05XSssXHMqdlswLTldK30gMTIgfSB9ICov DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZnZXRfdnNldC5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfcnY2NF92Z2V0X3ZzZXQuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiBpbmRleCAwMDAwMDAwMDAwMC4uMWNiNDIyNTA4NGMNCj4gLS0tIC9kZXYv bnVsbA0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZnZXRfdnNldC5jDQo+IEBAIC0w LDAgKzEsNiBAQA0KPiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdj dl96dmZoIC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCj4gKw0K PiArI2luY2x1ZGUgIm92ZXJsb2FkZWRfdmdldF92c2V0LmgiDQo+ICsNCj4g Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmxbMC05 XStyZVswLTldK1wudlxzK3ZbMC05XSssXHMqMFwoW2F4XVswLTldK1wpfSAx NCB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnNbMC05XStyXC52XHMrdlswLTldKyxccyowXChbYXhdWzAtOV0r XCl9IDEzIH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92bG94 c2VnMmVpMTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmxveHNlZzJlaTE2LmMNCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLmVhNzMx NzA0NDRkDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92 bG94c2VnMmVpMTYuYw0KPiBAQCAtMCwwICsxLDEwIEBADQo+ICsvKiB7IGRn LW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2X3p2ZmggLW1hYmk9bHA2NCAtTzMg LVduby1wc2FiaSIgfSAqLw0KPiArDQo+ICsjaW5jbHVkZSAib3ZlcmxvYWRl ZF92bG94c2VnMmVpMTYuaCINCj4gKw0KPiArLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAt OV0rLFxzKmU2NCxccyptNCxccyp0YSxccyptYX0gMiB9IH0gKi8NCj4gKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxz K1theF1bMC05XSssXHMqemVybyxccyplOCxccyptZjIsXHMqdGEsXHMqbWF9 IDQgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTY0LFxz Km00LFxzKnR1LFxzKm1hfSAyIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhd WzAtOV0rLFxzKmU2NCxccyptNCxccyp0dSxccyptdX0gMSB9IH0gKi8NCj4g Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZs aVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplNjQsXHMqbTQsXHMqdGEsXHMq bXV9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3Zsb3hzZWcyZWkxNlwudlxzK3ZbMC05XSssXHMqXChbYXhd WzAtOV0rXCksXHMqdlswLTldK30gNiB9IH0gKi8NCj4gZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVy bG9hZGVkX3J2NjRfdm12LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3Ztdi5jDQo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi5jNWRhNmJi ZmNhOA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdm12 LmMNCj4gQEAgLTAsMCArMSwxMCBAQA0KPiArLyogeyBkZy1kbyBjb21waWxl IH0gKi8NCj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3ZfenZm aCAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQo+ICsNCj4gKyNp bmNsdWRlICJvdmVybG9hZGVkX3Ztdi5oIg0KPiArDQo+ICsvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxz KltheF1bMC05XSssXHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9ICov DQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTgsXHMqbTEsXHMqdHUs XHMqbWF9IDIgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMq ZTE2LFxzKm0xLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxc cypbYXhdWzAtOV0rLFxzKmUxNixccyptMSxccyp0dSxccyptYX0gMSB9IH0g Ki8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dnNldGl2bGlccyt6ZXJvLFxzKjAsXHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9 IDEgfSB9ICovDQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZyZWludGVy cHJldC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL292ZXJsb2FkZWRfcnY2NF92cmVpbnRlcnByZXQuYw0KPiBuZXcgZmls ZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4uM2I4Mzk5YzEy NmQNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZyZWlu dGVycHJldC5jDQo+IEBAIC0wLDAgKzEsOSBAQA0KPiArLyogeyBkZy1vcHRp b25zICItbWFyY2g9cnY2NGdjdl96dmZoIC1tYWJpPWxwNjQgLU8zIC1Xbm8t cHNhYmkiIH0gKi8NCj4gKw0KPiArI2luY2x1ZGUgIm92ZXJsb2FkZWRfdnJl aW50ZXJwcmV0LmgiDQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1theF1bMC05XSssXHMqemVybyxc cyplOCxccyptNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1theF1b MC05XSssXHMqemVybyxccyplOCxccyptMixccyp0YSxccyptYX0gMSB9IH0g Ki8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dnNldHZsaVxzK1theF1bMC05XSssXHMqemVybyxccyplOCxccyptZjIsXHMq dGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYXhdWzAtOV0rLFxzKnplcm8s XHMqZTE2LFxzKm1mMixccyp0YSxccyptYX0gMiB9IH0gKi8NCj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1th eF1bMC05XSssXHMqemVybyxccyplMzIsXHMqbWYyLFxzKnRhLFxzKm1hfSAx IH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdmFkZC5oIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRf dmFkZC5oDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAw MDAwMDAwLi4zYjQxY2ZmMWI2Mg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVy bG9hZGVkX3ZhZGQuaA0KPiBAQCAtMCwwICsxLDU5IEBADQo+ICsjaW5jbHVk ZSAicmlzY3ZfdmVjdG9yLmgiDQo+ICsNCj4gK3ZpbnQ4bTFfdCB0ZXN0X3Zh ZGRfdnZfaThtMSh2aW50OG0xX3QgdnMyLCB2aW50OG0xX3QgdnMxLCBzaXpl X3QgdmwpIHsNCj4gKyAgcmV0dXJuIF9fcmlzY3ZfdmFkZCh2czIsIHZzMSwg dmwpOw0KPiArfQ0KPiArDQo+ICt2aW50OG0xX3QgdGVzdF92YWRkX3Z4X2k4 bTEodmludDhtMV90IHZzMiwgaW50OF90IHJzMSwgc2l6ZV90IHZsKSB7DQo+ ICsgIHJldHVybiBfX3Jpc2N2X3ZhZGQodnMyLCByczEsIHZsKTsNCj4gK30N Cj4gKw0KPiArdmludDhtMV90IHRlc3RfdmFkZF92dl9pOG0xX20odmJvb2w4 X3Qgdm0sIHZpbnQ4bTFfdCB2czIsIHZpbnQ4bTFfdCB2czEsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdmwpIHsNCj4gKyAg cmV0dXJuIF9fcmlzY3ZfdmFkZCh2bSwgdnMyLCB2czEsIHZsKTsNCj4gK30N Cj4gKw0KPiArdmludDhtMV90IHRlc3RfdmFkZF92eF9pOG0xX20odmJvb2w4 X3Qgdm0sIHZpbnQ4bTFfdCB2czIsIGludDhfdCByczEsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdmwpIHsNCj4gKyAgcmV0 dXJuIF9fcmlzY3ZfdmFkZCh2bSwgdnMyLCByczEsIHZsKTsNCj4gK30NCj4g Kw0KPiArdmludDhtMV90IHRlc3RfdmFkZF92dl9pOG0xX3R1KHZpbnQ4bTFf dCB2ZCwgdmludDhtMV90IHZzMiwgdmludDhtMV90IHZzMSwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdmwpIHsNCj4gKyAg cmV0dXJuIF9fcmlzY3ZfdmFkZF90dSh2ZCwgdnMyLCB2czEsIHZsKTsNCj4g K30NCj4gKw0KPiArdmludDhtMV90IHRlc3RfdmFkZF92eF9pOG0xX3R1KHZp bnQ4bTFfdCB2ZCwgdmludDhtMV90IHZzMiwgaW50OF90IHJzMSwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdmwpIHsNCj4g KyAgcmV0dXJuIF9fcmlzY3ZfdmFkZF90dSh2ZCwgdnMyLCByczEsIHZsKTsN Cj4gK30NCj4gKw0KPiArdmludDhtMV90IHRlc3RfdmFkZF92dl9pOG0xX3R1 bSh2Ym9vbDhfdCB2bSwgdmludDhtMV90IHZkLCB2aW50OG0xX3QgdnMyLA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aW50OG0xX3Qg dnMxLCBzaXplX3QgdmwpIHsNCj4gKyAgcmV0dXJuIF9fcmlzY3ZfdmFkZF90 dW0odm0sIHZkLCB2czIsIHZzMSwgdmwpOw0KPiArfQ0KPiArDQo+ICt2aW50 OG0xX3QgdGVzdF92YWRkX3Z4X2k4bTFfdHVtKHZib29sOF90IHZtLCB2aW50 OG0xX3QgdmQsIHZpbnQ4bTFfdCB2czIsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludDhfdCByczEsIHNpemVfdCB2bCkgew0KPiAr ICByZXR1cm4gX19yaXNjdl92YWRkX3R1bSh2bSwgdmQsIHZzMiwgcnMxLCB2 bCk7DQo+ICt9DQo+ICsNCj4gK3ZpbnQ4bTFfdCB0ZXN0X3ZhZGRfdnZfaTht MV9tdSh2Ym9vbDhfdCB2bSwgdmludDhtMV90IHZkLCB2aW50OG0xX3QgdnMy LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpbnQ4bTFf dCB2czEsIHNpemVfdCB2bCkgew0KPiArICByZXR1cm4gX19yaXNjdl92YWRk X211KHZtLCB2ZCwgdnMyLCB2czEsIHZsKTsNCj4gK30NCj4gKw0KPiArdmlu dDhtMV90IHRlc3RfdmFkZF92eF9pOG0xX211KHZib29sOF90IHZtLCB2aW50 OG0xX3QgdmQsIHZpbnQ4bTFfdCB2czIsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50OF90IHJzMSwgc2l6ZV90IHZsKSB7DQo+ICsg IHJldHVybiBfX3Jpc2N2X3ZhZGRfbXUodm0sIHZkLCB2czIsIHJzMSwgdmwp Ow0KPiArfQ0KPiArDQo+ICt2aW50OG0xX3QgdGVzdF92YWRkX3Z2X2k4bTFf dHVtdSh2Ym9vbDhfdCB2bSwgdmludDhtMV90IHZkLCB2aW50OG0xX3QgdnMy LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmludDht MV90IHZzMSwgc2l6ZV90IHZsKSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2X3Zh ZGRfdHVtdSh2bSwgdmQsIHZzMiwgdnMxLCB2bCk7DQo+ICt9DQo+ICsNCj4g K3ZpbnQ4bTFfdCB0ZXN0X3ZhZGRfdnhfaThtMV90dW11KHZib29sOF90IHZt LCB2aW50OG0xX3QgdmQsIHZpbnQ4bTFfdCB2czIsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQ4X3QgcnMxLCBzaXplX3Qgdmwp IHsNCj4gKyAgcmV0dXJuIF9fcmlzY3ZfdmFkZF90dW11KHZtLCB2ZCwgdnMy LCByczEsIHZsKTsNCj4gK30NCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3ZmYWRk LmggYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv b3ZlcmxvYWRlZF92ZmFkZC5oDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ IGluZGV4IDAwMDAwMDAwMDAwLi43OThhZjQyMGYyZA0KPiAtLS0gL2Rldi9u dWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9vdmVybG9hZGVkX3ZmYWRkLmgNCj4gQEAgLTAsMCArMSw2NyBA QA0KPiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KPiArDQo+ICt2Zmxv YXQxNm1mNF90IHRlc3RfdmZhZGRfdnZfZjE2bWY0KHZmbG9hdDE2bWY0X3Qg dnMyLCB2ZmxvYXQxNm1mNF90IHZzMSwNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZV90IHZsKSB7DQo+ICsgIHJldHVybiBf X3Jpc2N2X3ZmYWRkKHZzMiwgdnMxLCB2bCk7DQo+ICt9DQo+ICsNCj4gK3Zm bG9hdDE2bWY0X3QgdGVzdF92ZmFkZF92dl9mMTZtZjRfbSh2Ym9vbDY0X3Qg dm0sIHZmbG9hdDE2bWY0X3QgdnMyLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZmbG9hdDE2bWY0X3QgdnMxLCBzaXplX3Qg dmwpIHsNCj4gKyAgcmV0dXJuIF9fcmlzY3ZfdmZhZGQodm0sIHZzMiwgdnMx LCB2bCk7DQo+ICt9DQo+ICsNCj4gK3ZmbG9hdDE2bWY0X3QgdGVzdF92ZmFk ZF92dl9mMTZtZjRfdHUodmZsb2F0MTZtZjRfdCB2ZCwgdmZsb2F0MTZtZjRf dCB2czIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHZmbG9hdDE2bWY0X3QgdnMxLCBzaXplX3QgdmwpIHsNCj4gKyAgcmV0 dXJuIF9fcmlzY3ZfdmZhZGRfdHUodmQsIHZzMiwgdnMxLCB2bCk7DQo+ICt9 DQo+ICsNCj4gK3ZmbG9hdDE2bWY0X3QgdGVzdF92ZmFkZF92dl9mMTZtZjRf dHVtKHZib29sNjRfdCB2bSwgdmZsb2F0MTZtZjRfdCB2ZCwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZmbG9hdDE2bWY0 X3QgdnMyLCB2ZmxvYXQxNm1mNF90IHZzMSwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB2bCkgew0KPiArICBy ZXR1cm4gX19yaXNjdl92ZmFkZF90dW0odm0sIHZkLCB2czIsIHZzMSwgdmwp Ow0KPiArfQ0KPiArDQo+ICt2ZmxvYXQxNm1mNF90IHRlc3RfdmZhZGRfdnZf ZjE2bWY0X3R1bXUodmJvb2w2NF90IHZtLCB2ZmxvYXQxNm1mNF90IHZkLA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZm bG9hdDE2bWY0X3QgdnMyLCB2ZmxvYXQxNm1mNF90IHZzMSwNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgdmwp IHsNCj4gKyAgcmV0dXJuIF9fcmlzY3ZfdmZhZGRfdHVtdSh2bSwgdmQsIHZz MiwgdnMxLCB2bCk7DQo+ICt9DQo+ICsNCj4gK3ZmbG9hdDE2bWY0X3QgdGVz dF92ZmFkZF92dl9mMTZtZjRfbXUodmJvb2w2NF90IHZtLCB2ZmxvYXQxNm1m NF90IHZkLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2ZmxvYXQxNm1mNF90IHZzMiwgdmZsb2F0MTZtZjRfdCB2czEsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVf dCB2bCkgew0KPiArICByZXR1cm4gX19yaXNjdl92ZmFkZF9tdSh2bSwgdmQs IHZzMiwgdnMxLCB2bCk7DQo+ICt9DQo+ICsNCj4gK3ZmbG9hdDE2bWY0X3Qg dGVzdF92ZmFkZF92dl9mMTZtZjRfcm0odmZsb2F0MTZtZjRfdCB2czIsIHZm bG9hdDE2bWY0X3QgdnMxLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzaXplX3QgdmwpIHsNCj4gKyAgcmV0dXJuIF9fcmlz Y3ZfdmZhZGQodnMyLCB2czEsIF9fUklTQ1ZfRlJNX1JORSwgdmwpOw0KPiAr fQ0KPiArDQo+ICt2ZmxvYXQxNm1mNF90IHRlc3RfdmZhZGRfdnZfZjE2bWY0 X3JtX20odmJvb2w2NF90IHZtLCB2ZmxvYXQxNm1mNF90IHZzMiwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZmxvYXQx Nm1mNF90IHZzMSwgc2l6ZV90IHZsKSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2 X3ZmYWRkKHZtLCB2czIsIHZzMSwgX19SSVNDVl9GUk1fUk5FLCB2bCk7DQo+ ICt9DQo+ICsNCj4gK3ZmbG9hdDE2bWY0X3QgdGVzdF92ZmFkZF92dl9mMTZt ZjRfcm1fdHUodmZsb2F0MTZtZjRfdCB2ZCwgdmZsb2F0MTZtZjRfdCB2czIs DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZmbG9hdDE2bWY0X3QgdnMxLCBzaXplX3QgdmwpIHsNCj4gKyAgcmV0dXJu IF9fcmlzY3ZfdmZhZGRfdHUodmQsIHZzMiwgdnMxLCBfX1JJU0NWX0ZSTV9S TkUsIHZsKTsNCj4gK30NCj4gKw0KPiArdmZsb2F0MTZtZjRfdCB0ZXN0X3Zm YWRkX3Z2X2YxNm1mNF9ybV90dW0odmJvb2w2NF90IHZtLCB2ZmxvYXQxNm1m NF90IHZkLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdmZsb2F0MTZtZjRfdCB2czIsIHZmbG9hdDE2bWY0X3QgdnMx LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2l6ZV90IHZsKSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2X3ZmYWRkX3R1 bSh2bSwgdmQsIHZzMiwgdnMxLCBfX1JJU0NWX0ZSTV9STkUsIHZsKTsNCj4g K30NCj4gKw0KPiArdmZsb2F0MTZtZjRfdCB0ZXN0X3ZmYWRkX3Z2X2YxNm1m NF9ybV90dW11KHZib29sNjRfdCB2bSwgdmZsb2F0MTZtZjRfdCB2ZCwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 ZmxvYXQxNm1mNF90IHZzMiwgdmZsb2F0MTZtZjRfdCB2czEsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90 IHZsKSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2X3ZmYWRkX3R1bXUodm0sIHZk LCB2czIsIHZzMSwgX19SSVNDVl9GUk1fUk5FLCB2bCk7DQo+ICt9DQo+ICsN Cj4gK3ZmbG9hdDE2bWY0X3QgdGVzdF92ZmFkZF92dl9mMTZtZjRfcm1fbXUo dmJvb2w2NF90IHZtLCB2ZmxvYXQxNm1mNF90IHZkLA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZmxvYXQxNm1mNF90 IHZzMiwgdmZsb2F0MTZtZjRfdCB2czEsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB2bCkgew0KPiArICBy ZXR1cm4gX19yaXNjdl92ZmFkZF9tdSh2bSwgdmQsIHZzMiwgdnMxLCBfX1JJ U0NWX0ZSTV9STkUsIHZsKTsNCj4gK30NCj4gZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3ZnZXRfdnNldC5oIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL292ZXJsb2FkZWRfdmdldF92c2V0LmgNCj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjAxZTA3MmViMzhm DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdmdldF92c2V0LmgN Cj4gQEAgLTAsMCArMSwyNyBAQA0KPiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rv ci5oIg0KPiArDQo+ICt2ZmxvYXQxNm0xX3QgdGVzdF92Z2V0X3ZfZjE2bTJf ZjE2bTEodmZsb2F0MTZtMl90IHNyYywgc2l6ZV90IGluZGV4KSB7DQo+ICsg IHJldHVybiBfX3Jpc2N2X3ZnZXRfZjE2bTEoc3JjLCAwKTsNCj4gK30NCj4g Kw0KPiArdmludDY0bTFfdCB0ZXN0X3ZnZXRfdl9pNjRtNF9pNjRtMSh2aW50 NjRtNF90IHNyYywgc2l6ZV90IGluZGV4KSB7DQo+ICsgIHJldHVybiBfX3Jp c2N2X3ZnZXRfaTY0bTEoc3JjLCAwKTsNCj4gK30NCj4gKw0KPiArdmZsb2F0 MTZtMV90IHRlc3RfdmdldF92X2YxNm0xeDRfZjE2bTEodmZsb2F0MTZtMXg0 X3Qgc3JjLCBzaXplX3QgaW5kZXgpIHsNCj4gKyAgcmV0dXJuIF9fcmlzY3Zf dmdldF9mMTZtMShzcmMsIDApOw0KPiArfQ0KPiArDQo+ICt2aW50OG0yX3Qg dGVzdF92Z2V0X3ZfaThtMngzX2k4bTIodmludDhtMngzX3Qgc3JjLCBzaXpl X3QgaW5kZXgpIHsNCj4gKyAgcmV0dXJuIF9fcmlzY3ZfdmdldF9pOG0yKHNy YywgMCk7DQo+ICt9DQo+ICsNCj4gK3ZmbG9hdDE2bTJfdCB0ZXN0X3ZzZXRf dl9mMTZtMV9mMTZtMih2ZmxvYXQxNm0yX3QgZGVzdCwgc2l6ZV90IGluZGV4 LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZm bG9hdDE2bTFfdCB2YWx1ZSkgew0KPiArICByZXR1cm4gX19yaXNjdl92c2V0 KGRlc3QsIDAsIHZhbHVlKTsNCj4gK30NCj4gKw0KPiArdmZsb2F0NjRtMXg3 X3QgdGVzdF92c2V0X3ZfZjY0bTFfZjY0bTF4Nyh2ZmxvYXQ2NG0xeDdfdCBk ZXN0LCBzaXplX3QgaW5kZXgsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZmbG9hdDY0bTFfdCB2YWx1ZSkgew0KPiAr ICByZXR1cm4gX19yaXNjdl92c2V0KGRlc3QsIDAsIHZhbHVlKTsNCj4gK30N Cj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9vdmVybG9hZGVkX3Zsb3hzZWcyZWkxNi5oIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRf dmxveHNlZzJlaTE2LmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5k ZXggMDAwMDAwMDAwMDAuLjJlYmNkYjQxNzk1DQo+IC0tLSAvZGV2L251bGwN Cj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL292ZXJsb2FkZWRfdmxveHNlZzJlaTE2LmgNCj4gQEAgLTAsMCArMSwz OSBAQA0KPiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KPiArDQo+ICt0 eXBlZGVmIF9GbG9hdDE2IGZsb2F0MTZfdDsNCj4gK3R5cGVkZWYgZmxvYXQg ZmxvYXQzMl90Ow0KPiArdHlwZWRlZiBkb3VibGUgZmxvYXQ2NF90Ow0KPiAr DQo+ICt2ZmxvYXQ2NG00eDJfdCB0ZXN0X3Zsb3hzZWcyZWkxNl92X2Y2NG00 eDIoY29uc3QgZmxvYXQ2NF90ICpyczEsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdnVpbnQxNm0xX3QgcnMyLCBz aXplX3QgdmwpIHsNCj4gKyAgcmV0dXJuIF9fcmlzY3ZfdmxveHNlZzJlaTE2 KHJzMSwgcnMyLCB2bCk7DQo+ICt9DQo+ICsNCj4gK3ZmbG9hdDY0bTR4Ml90 IHRlc3RfdmxveHNlZzJlaTE2X3ZfZjY0bTR4Ml9tKHZib29sMTZfdCB2bSwg Y29uc3QgZmxvYXQ2NF90ICpyczEsDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2dWludDE2bTFfdCByczIsIHNp emVfdCB2bCkgew0KPiArICByZXR1cm4gX19yaXNjdl92bG94c2VnMmVpMTYo dm0sIHJzMSwgcnMyLCB2bCk7DQo+ICt9DQo+ICsNCj4gK3ZmbG9hdDY0bTR4 Ml90IHRlc3RfdmxveHNlZzJlaTE2X3ZfZjY0bTR4Ml90dW0odmJvb2wxNl90 IHZtLCB2ZmxvYXQ2NG00eDJfdCB2ZCwNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxvYXQ2NF90 ICpyczEsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZ1aW50MTZtMV90IHJzMiwgc2l6ZV90IHZsKSB7DQo+ ICsgIHJldHVybiBfX3Jpc2N2X3Zsb3hzZWcyZWkxNl90dW0odm0sIHZkLCBy czEsIHJzMiwgdmwpOw0KPiArfQ0KPiArDQo+ICt2ZmxvYXQ2NG00eDJfdCB0 ZXN0X3Zsb3hzZWcyZWkxNl92X2Y2NG00eDJfdHVtdSh2Ym9vbDE2X3Qgdm0s IHZmbG9hdDY0bTR4Ml90IHZkLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxvYXQ2NF90ICpy czEsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2dWludDE2bTFfdCByczIsIHNpemVfdCB2bCkgew0KPiAr ICByZXR1cm4gX19yaXNjdl92bG94c2VnMmVpMTZfdHVtdSh2bSwgdmQsIHJz MSwgcnMyLCB2bCk7DQo+ICt9DQo+ICsNCj4gK3ZmbG9hdDY0bTR4Ml90IHRl c3RfdmxveHNlZzJlaTE2X3ZfZjY0bTR4Ml9tdSh2Ym9vbDE2X3Qgdm0sIHZm bG9hdDY0bTR4Ml90IHZkLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsb2F0NjRfdCAqcnMxLA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHZ1aW50MTZtMV90IHJzMiwgc2l6ZV90IHZsKSB7DQo+ICsgIHJldHVy biBfX3Jpc2N2X3Zsb3hzZWcyZWkxNl9tdSh2bSwgdmQsIHJzMSwgcnMyLCB2 bCk7DQo+ICt9DQo+ICsNCj4gK3ZmbG9hdDY0bTR4Ml90IHRlc3RfdmxveHNl ZzJlaTE2X3ZfZjY0bTR4Ml90dSh2ZmxvYXQ2NG00eDJfdCB2ZCwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBmbG9hdDY0X3QgKnJzMSwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2dWludDE2bTFfdCByczIsIHNp emVfdCB2bCkgew0KPiArICByZXR1cm4gX19yaXNjdl92bG94c2VnMmVpMTZf dHUodmQsIHJzMSwgcnMyLCB2bCk7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zlcmxv YWRlZF92bXYuaCBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9vdmVybG9hZGVkX3Ztdi5oDQo+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi5mZDNmMWQyOGMwYQ0KPiAtLS0g L2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3Ztdi5oDQo+IEBAIC0wLDAgKzEs MjYgQEANCj4gKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCj4gKw0KPiAr dmludDhtMV90IHRlc3Rfdm12X3Zfdl9pOG0xICh2aW50OG0xX3QgdnMxLCBz aXplX3QgdmwpIHsNCj4gKyAgcmV0dXJuIF9fcmlzY3Zfdm12X3YgKHZzMSwg dmwpOw0KPiArfQ0KPiArDQo+ICt2aW50OG0xX3QgdGVzdF92bXZfdl92X2k4 bTFfdHUgKHZpbnQ4bTFfdCB2ZCwgdmludDhtMV90IHZzMSwgc2l6ZV90IHZs KSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2X3Ztdl92X3R1KHZkLCB2czEsIHZs KTsNCj4gK30NCj4gKw0KPiArdmZsb2F0MTZtMV90IHRlc3Rfdm12X3Zfdl9m MTZtMSAodmZsb2F0MTZtMV90IHZzMSwgc2l6ZV90IHZsKSB7DQo+ICsgIHJl dHVybiBfX3Jpc2N2X3Ztdl92ICh2czEsIHZsKTsNCj4gK30NCj4gKw0KPiAr dmZsb2F0MTZtMV90IHRlc3Rfdm12X3Zfdl9mMTZtMV90dSAodmZsb2F0MTZt MV90IHZkLCB2ZmxvYXQxNm0xX3QgdnMxLA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzaXplX3QgdmwpIHsNCj4gKyAgcmV0dXJu IF9fcmlzY3Zfdm12X3ZfdHUgKHZkLCB2czEsIHZsKTsNCj4gK30NCj4gKw0K PiAraW50OF90IHRlc3Rfdm12X3hfc19pOG0xX2k4KHZpbnQ4bTFfdCB2czEp IHsNCj4gKyAgcmV0dXJuIF9fcmlzY3Zfdm12X3ggKHZzMSk7DQo+ICt9DQo+ ICsNCj4gK3ZpbnQ4bTFfdCB0ZXN0X3Ztdl9zX3hfaThtMV90dSh2aW50OG0x X3QgdmQsIGludDhfdCByczEsIHNpemVfdCB2bCkgew0KPiArICByZXR1cm4g X19yaXNjdl92bXZfc190dSh2ZCwgcnMxLCB2bCk7DQo+ICt9DQo+IGRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2Uvb3ZlcmxvYWRlZF92cmVpbnRlcnByZXQuaCBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3ZyZWludGVy cHJldC5oDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAw MDAwMDAwLi45MDRiMGNlZWU3Mg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVy bG9hZGVkX3ZyZWludGVycHJldC5oDQo+IEBAIC0wLDAgKzEsMjkgQEANCj4g KyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCj4gKw0KPiArdnVpbnQxNm0x X3QgdGVzdF92cmVpbnRlcnByZXRfdl9iMl91MTZtMSh2Ym9vbDJfdCBzcmMp IHsNCj4gKyAgcmV0dXJuIF9fcmlzY3ZfdnJlaW50ZXJwcmV0X3UxNm0xKHNy Yyk7DQo+ICt9DQo+ICsNCj4gK3Zib29sNF90IHRlc3RfdnJlaW50ZXJwcmV0 X3ZfaTMybTFfYjQodmludDMybTFfdCBzcmMpIHsNCj4gKyAgcmV0dXJuIF9f cmlzY3ZfdnJlaW50ZXJwcmV0X2I0KHNyYyk7DQo+ICt9DQo+ICsNCj4gK3Zp bnQ4bWYyX3QgdGVzdF92cmVpbnRlcnByZXRfdl9pMTZtZjJfaThtZjIodmlu dDE2bWYyX3Qgc3JjKSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2X3ZyZWludGVy cHJldF9pOG1mMihzcmMpOw0KPiArfQ0KPiArDQo+ICt2aW50MzJtZjJfdCB0 ZXN0X3ZyZWludGVycHJldF92X2kxNm1mMl9pMzJtZjIodmludDE2bWYyX3Qg c3JjKSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2X3ZyZWludGVycHJldF9pMzJt ZjIoc3JjKTsNCj4gK30NCj4gKw0KPiArdmludDMybTFfdCB0ZXN0X3ZyZWlu dGVycHJldF92X2kxNm0xX2kzMm0xKHZpbnQxNm0xX3Qgc3JjKSB7DQo+ICsg IHJldHVybiBfX3Jpc2N2X3ZyZWludGVycHJldF9pMzJtMShzcmMpOw0KPiAr fQ0KPiArDQo+ICt2aW50OG00X3QgdGVzdF92cmVpbnRlcnByZXRfdl9pMzJt NF9pOG00KHZpbnQzMm00X3Qgc3JjKSB7DQo+ICsgIHJldHVybiBfX3Jpc2N2 X3ZyZWludGVycHJldF9pOG00KHNyYyk7DQo+ICt9DQo+ICsNCj4gK3Z1aW50 OG04X3QgdGVzdF92cmVpbnRlcnByZXRfdl91MzJtOF91OG04KHZ1aW50MzJt OF90IHNyYykgew0KPiArICByZXR1cm4gX19yaXNjdl92cmVpbnRlcnByZXRf dThtOChzcmMpOw0KPiArfQ0KPiAtLQ0KPiAyLjE3LjENCj4gIA0KPiAgDQo= ------=_001_NextPart177684503014_=------