From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id BE67546D53; Mon, 18 Aug 2025 04:59:11 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 49FEE4013F; Mon, 18 Aug 2025 04:59:11 +0200 (CEST) Received: from out28-217.mail.aliyun.com (out28-217.mail.aliyun.com [115.124.28.217]) by mails.dpdk.org (Postfix) with ESMTP id DD2CA4003C for ; Mon, 18 Aug 2025 04:59:08 +0200 (CEST) X-Alimail-AntiSpam: AC=CONTINUE; BC=0.07386655|-1; CH=green; DM=|CONTINUE|false|; DS=CONTINUE|ham_regular_dialog|0.0437454-0.00829096-0.947964; FP=17327560110989968613|0|0|0|0|-1|-1|-1; HT=maildocker-contentspam033045056082; MF=dimon.zhao@nebula-matrix.com; NM=1; PH=DW; RN=4; RT=4; SR=0; TI=W4_0.2.3_2116AE2E_1755485005130_o7001c1788; Received: from WS-web (dimon.zhao@nebula-matrix.com[W4_0.2.3_2116AE2E_1755485005130_o7001c1788] cluster:ay29) at Mon, 18 Aug 2025 10:59:04 +0800 Date: Mon, 18 Aug 2025 10:59:04 +0800 From: "Dimon" To: "Ivan Malov" Cc: "dev" , "Leon" , "Sam" Message-ID: Subject: =?UTF-8?B?5Zue5aSN77ya5Zue5aSN77yaW1BBVENIIHY0IDEyLzE2XSBuZXQvbmJsOiBhZGQgbmJsIGRl?= =?UTF-8?B?dmljZSByeHR4IHF1ZXVlIHNldHVwIGFuZCByZWxlYXNlIG9wcw==?= X-Mailer: [Alimail-Mailagent][W4_0.2.3][null][Chrome] MIME-Version: 1.0 x-aliyun-im-through: {"version":"v1.0"} References: <20250627014022.4019625-1-dimon.zhao@nebula-matrix.com> <20250813064410.3894506-1-dimon.zhao@nebula-matrix.com> <20250813064410.3894506-13-dimon.zhao@nebula-matrix.com>, <4f3c8fcf-099b-d148-310e-4ced78d0e846@arknetworks.am> <16c66eef-9ea0-4324-b6c2-2cd13f5b26a5.dimon.zhao@nebula-matrix.com>, <2625daf2-858e-1c12-3b91-4472a036ed77@arknetworks.am> x-aliyun-mail-creator: W4_0.2.3_null_d2lTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEwOC4wLjUzNTkuMTI1IFNhZmFyaS81MzcuMzYgZGluZ3RhbGstd2luLzEuMC4wIG53KDAuMTQuNykgRGluZ1RhbGsoNy43LjAtUmVsZWFzZS4yNTA1MjIwMDIpIE1vam8vMS4wLjAgTmF0aXZlIEFwcFR5cGUocmVsZWFzZSkgQ2hhbm5lbC8yMDEyMDAgQXJjaGl0ZWN0dXJlL3g4Nl82NA==Gs In-Reply-To: <2625daf2-858e-1c12-3b91-4472a036ed77@arknetworks.am> Content-Type: multipart/alternative; boundary="----=ALIBOUNDARY_1991_7f16c251c700_68a296f8_dc705" X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Dimon Errors-To: dev-bounces@dpdk.org ------=ALIBOUNDARY_1991_7f16c251c700_68a296f8_dc705 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 SGkgSXZhbiwKVGhhbmsgeW91IGZvciB5b3VyIHJldmlldy4KPiBUaGF0IHJ1bGVzIG91dCAnUlRF X0VUSF9SWF9PRkZMT0FEX1JTU19IQVNIJywgYnV0IHRoaXMgb2ZmbG9hZCBmbGFnIGRvZXMgbm90 Cj4gY29udHJvbCBSU1MgYXMgYSB3aG9sZS4gSXQgb25seSB0ZWxscyB0aGUgZHJpdmVyIHdoZXRo ZXIgdGhlIGFwcGxpY2F0aW9uIHdhbnRzCj4gdG8gc2VlIFJTUyBoYXNoIHZhbHVlIHNldCBpbiB0 aGUgc3BlY2lhbCBmaWVsZCBpbiByZWNlaXZlZCBtYnVmcyBvciBub3QuCj4gUlNTL0RDQi9WTURx IGlzIGNvbnRyb2xsZWQgdmlhICdkZXZfY29uZi0+cnhtb2RlLm1xX21vZGUnIFsxXSBhbmQgdGhp cyBpcyBsaWtlbHkKPiBub3QgY2hlY2tlZCBieSAncnRlX2V0aF9kZXZfY29uZmlndXJlJy4gU2F5 LCB0aGUgdXNlciBydW5zICd0ZXN0cG1kJyBhbmQgYXNrcyB0bwo+IGVuYWJsZSBEQ0IgWzJdLiBX aWxsIHRoZSBjb21tYW5kIGJlIGFjY2VwdGVkIHNpbGVudGx5IG9yIHJlamVjdGVkPwpUaGFuayB5 b3UgZm9yIHRoZSByZW1pbmRlci4gSeKAmWxsIG1ha2Ugc3VyZSB0byBjaGVjayBkZXZfY29uZi0+ cnhtb2RlLm1xX21vZGUgaW4gdGhlIGRyaXZlciBhbmQgYWRkcmVzcyB0aGlzIGluIHRoZSBuZXh0 IHBhdGNoIHY1Lgo+IEFuZCB5ZXQsIHBhdGNoIFszXSBhbm5vdW5jZXMgc3VwcG9ydCBmb3IgUlNT LiBJIGRvbid0IG1lYW4gdG8gYmUgbWVhbiBvciBwaWNreSwKPiBidXQgcGVyaGFwcyBpdCBtYWtl cyBzZW5zZSB0byBleHBsYWluIHRoYXQgdGhpcyBpcyBsaW1pdGVkIHN1cHBvcnQgZm9yIG5vdywg dGhhdAo+IGp1c3Qgc3ByYXlzIHBhY2tldHMgYnV0IGlzIG5vdCB5ZXQgY29uZmlndXJhYmxlIGJ5 IHVzZXIuIFdoYXQgZG8geW91IHRoaW5rCknigJlsbCBhZGQgYSBub3RlIGluIG5ibC5yc3QgY2xh cmlmeWluZyB0aGF0IHRoZSBkcml2ZXIgY3VycmVudGx5IGRvZXMgbm90IHN1cHBvcnQgdXNlci1j b25maWd1cmVkIFJTUyBhbmQgb25seSBzdXBwb3J0cyBwYWNrZXQgc3ByYXlpbmcgdmlhIFJTUy4g CkZ1bGwgUlNTIGNvbmZpZ3VyYXRpb24gc3VwcG9ydCB3aWxsIGJlIGltcGxlbWVudGVkIGluIHRo ZSBuZXh0IHBhdGNoIHNlcmllcy4KVGhhbmsgeW91LgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K5Y+R5Lu25Lq677yaSXZh biBNYWxvdiA8aXZhbi5tYWxvdkBhcmtuZXR3b3Jrcy5hbT4K5Y+R6YCB5pe26Ze077yaMjAyNeW5 tDjmnIgxNeaXpSjlkajkupQpIDE2OjAwCuaUtuS7tuS6uu+8mkRpbW9uPGRpbW9uLnpoYW9AbmVi dWxhLW1hdHJpeC5jb20+CuaKhOOAgOmAge+8mmRldjxkZXZAZHBkay5vcmc+OyBMZW9uPGxlb24u eXVAbmVidWxhLW1hdHJpeC5jb20+OyBTYW08c2FtLmNoZW5AbmVidWxhLW1hdHJpeC5jb20+CuS4 u+OAgOmimO+8mlJlOiDlm57lpI3vvJpbUEFUQ0ggdjQgMTIvMTZdIG5ldC9uYmw6IGFkZCBuYmwg ZGV2aWNlIHJ4dHggcXVldWUgc2V0dXAgYW5kIHJlbGVhc2Ugb3BzCkhpIERpbW9uLApPbiBGcmks IDE1IEF1ZyAyMDI1LCBEaW1vbiB3cm90ZToKPiBIaSBJdmFuLAo+IAo+IFRoYW5rIHlvdSBmb3Ig eW91ciByZXZpZXcuCj4gCj4gUmVnYXJkaW5nIHlvdXIgZm9sbG93aW5nIHJldmlldyBjb21tZW50 cy4KPiA+ICtpbnQgbmJsX3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2Rl diwgdTE2IHF1ZXVlX2lkeCwKPiA+ICsgdTE2IG5iX2Rlc2MsIHVuc2lnbmVkIGludCBzb2NrZXRf aWQsCj4gPiArIGNvbnN0IHN0cnVjdCBydGVfZXRoX3J4Y29uZiAqY29uZiwgc3RydWN0IHJ0ZV9t ZW1wb29sICptZW1wb29sKQo+ID4gK3sKPiA+ICsgc3RydWN0IG5ibF9hZGFwdGVyICphZGFwdGVy ID0gRVRIX0RFVl9UT19OQkxfREVWX1BGX1BSSVYoZXRoX2Rldik7Cj4gPiArIHN0cnVjdCBuYmxf ZGV2X21ndCAqZGV2X21ndCA9IE5CTF9BREFQVEVSX1RPX0RFVl9NR1QoYWRhcHRlcik7Cj4gPiAr IHN0cnVjdCBuYmxfZGlzcGF0Y2hfb3BzICpkaXNwX29wcyA9IE5CTF9ERVZfTUdUX1RPX0RJU1Bf T1BTKGRldl9tZ3QpOwo+ID4gKyBzdHJ1Y3QgbmJsX2Rldl9yaW5nX21ndCAqcmluZ19tZ3QgPSAm ZGV2X21ndC0+bmV0X2Rldi0+cmluZ19tZ3Q7Cj4gPiArIHN0cnVjdCBuYmxfZGV2X3JpbmcgKnJ4 X3JpbmcgPSAmcmluZ19tZ3QtPnJ4X3JpbmdzW3F1ZXVlX2lkeF07Cj4gPiArIHN0cnVjdCBuYmxf c3RhcnRfcnhfcmluZ19wYXJhbSBwYXJhbSA9IHsgMCB9Owo+ID4gKyBpbnQgcmV0Owo+ID4gKwo+ ID4gKyBwYXJhbS5xdWV1ZV9pZHggPSBxdWV1ZV9pZHg7Cj4gPiArIHBhcmFtLm5iX2Rlc2MgPSBu Yl9kZXNjOwo+ID4gKyBwYXJhbS5zb2NrZXRfaWQgPSBzb2NrZXRfaWQ7Cj4gPiArIHBhcmFtLmNv bmYgPSBjb25mOwo+IAo+IEkgZG9uJ3Qgc2VlIHdoZXJlIHRoaXMgJ2NvbmYnIGlzIHBhcnNlZC4g SWYgdGhlIHVzZXIgaGFzIHJlcXVlc3RlZCB1bnN1cHBvcnRlZAo+IG9mZmxvYWRzLCBzYXksIHVu c3VwcG9ydGVkIFJTUyBmbG93IHR5cGVzLCB0aGVuIHRoZSBkcml2ZXIgc2hvdWxkIGdpdmUgYW4g ZXJyb3IuCj4gCj4gRG9lcyB0aGUgZHJpdmVyIGFjdHVhbGx5IHBhcnNlIHVzZXIgUlNTIGNvbmZp Z3VyYXRpb24/IFVzZXIgUlNTIGtleT8gUlNTIHR5cGVzPwo+IERvZXMgdGhlIHBhdGNoIHNlcmll cyBhbGxvdyB1c2VyIHRvIHNldCB0aGVpciBvd24gUkVUQSB0YWJsZSBmb3IgUlNTPwo+IAo+IFRv IGFkZHJlc3MgeW91ciBjb25jZXJuczoKPiAKPiBUaGlzIHBhdGNoIHNlcmllcyBkb2VzIG5vdCBz dXBwb3J0IGFueSBSU1MgY29uZmlndXJhdGlvbiwgaW5jbHVkaW5nOgo+IDEuIEN1c3RvbSBSU1Mg a2V5IGNvbmZpZ3VyYXRpb24KPiAyLiBSU1MgZmxvdyB0eXBlIGNvbmZpZ3VyYXRpb24KPiAzLiBV c2VyLWRlZmluZWQgUkVUQSB0YWJsZSBjb25maWd1cmF0aW9uCj4gVGhlcmVmb3JlOgo+IDEuV2Ug ZG8gbm90IHNldCBmbG93X3R5cGVfcnNzX29mZmxvYWRzIGluIHJ0ZV9ldGhfZGV2X2luZm8KPiAy LldlIGRvIG5vdCBpbXBsZW1lbnQgdGhlIHJzc19oYXNoX3VwZGF0ZSBhbmQgcmV0YV91cGRhdGUg aW50ZXJmYWNlcyBpbiBldGhfZGV2X29wcwo+IAo+IEluIHRoZSBydGVfZXRoX3J4X3F1ZXVlX3Nl dHVwIGZ1bmN0aW9uLCBpdCBjaGVja3Mgd2hldGhlciB1c2VyLWNvbmZpZ3VyZWQgb2ZmbG9hZHMg ZmFsbCB3aXRoaW4gZGV2X2luZm8ucnhfcXVldWVfb2ZmbG9hZF9jYXBhLiAKVGhhdCBydWxlcyBv dXQgJ1JURV9FVEhfUlhfT0ZGTE9BRF9SU1NfSEFTSCcsIGJ1dCB0aGlzIG9mZmxvYWQgZmxhZyBk b2VzIG5vdApjb250cm9sIFJTUyBhcyBhIHdob2xlLiBJdCBvbmx5IHRlbGxzIHRoZSBkcml2ZXIg d2hldGhlciB0aGUgYXBwbGljYXRpb24gd2FudHMKdG8gc2VlIFJTUyBoYXNoIHZhbHVlIHNldCBp biB0aGUgc3BlY2lhbCBmaWVsZCBpbiByZWNlaXZlZCBtYnVmcyBvciBub3QuClJTUy9EQ0IvVk1E cSBpcyBjb250cm9sbGVkIHZpYSAnZGV2X2NvbmYtPnJ4bW9kZS5tcV9tb2RlJyBbMV0gYW5kIHRo aXMgaXMgbGlrZWx5Cm5vdCBjaGVja2VkIGJ5ICdydGVfZXRoX2Rldl9jb25maWd1cmUnLiBTYXks IHRoZSB1c2VyIHJ1bnMgJ3Rlc3RwbWQnIGFuZCBhc2tzIHRvCmVuYWJsZSBEQ0IgWzJdLiBXaWxs IHRoZSBjb21tYW5kIGJlIGFjY2VwdGVkIHNpbGVudGx5IG9yIHJlamVjdGVkPwpbMV0gaHR0cHM6 Ly9kb2MuZHBkay5vcmcvYXBpLTI1LjA3L3J0ZV9fZXRoZGV2XzhoLmh0bWwjYTU4NmI4ZTg2MTMx YjRlYzBjY2FmNDY0ZTg0N2NjZjNlIDxodHRwczovL2RvYy5kcGRrLm9yZy9hcGktMjUuMDcvcnRl X19ldGhkZXZfOGguaHRtbCNhNTg2YjhlODYxMzFiNGVjMGNjYWY0NjRlODQ3Y2NmM2UgPgpbMl0g aHR0cHM6Ly9kb2MuZHBkay5vcmcvZ3VpZGVzLTI1LjA3L3Rlc3RwbWRfYXBwX3VnL3Rlc3RwbWRf ZnVuY3MuaHRtbCNwb3J0LWNvbmZpZy1kY2IgPGh0dHBzOi8vZG9jLmRwZGsub3JnL2d1aWRlcy0y NS4wNy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLmh0bWwjcG9ydC1jb25maWctZGNiID4K PiBTaW5jZSB3ZSBoYXZlbid0IHNldCBkZXZfaW5mby5yeF9xdWV1ZV9vZmZsb2FkX2NhcGEsIHRo ZSBmdW5jdGlvbiB3aWxsIHJldHVybiBhbiBlcnJvciBpZiB1c2VycyBjb25maWd1cmUgYW55IG9m ZmxvYWRzLiBDb25zZXF1ZW50bHksIHdlIGN1cnJlbnRseSBkb24ndCBuZWVkIHRvIHBhcnNlIHRo ZSAnY29uZicKPiBwYXJhbWV0ZXIuCj4gCj4gVGhlIHBhdGNoIHNlcmllcyBjdXJyZW50bHkgZm9j dXNlcyBvbiBiYXNpYyBmdW5jdGlvbmFsaXR5LCB3aXRoIFJTUyBzdXBwb3J0IHBsYW5uZWQgZm9y IGZ1dHVyZSBpbXBsZW1lbnRhdGlvbi4KQW5kIHlldCwgcGF0Y2ggWzNdIGFubm91bmNlcyBzdXBw b3J0IGZvciBSU1MuIEkgZG9uJ3QgbWVhbiB0byBiZSBtZWFuIG9yIHBpY2t5LApidXQgcGVyaGFw cyBpdCBtYWtlcyBzZW5zZSB0byBleHBsYWluIHRoYXQgdGhpcyBpcyBsaW1pdGVkIHN1cHBvcnQg Zm9yIG5vdywgdGhhdApqdXN0IHNwcmF5cyBwYWNrZXRzIGJ1dCBpcyBub3QgeWV0IGNvbmZpZ3Vy YWJsZSBieSB1c2VyLiBXaGF0IGRvIHlvdSB0aGluaz8KWzNdIGh0dHBzOi8vbWFpbHMuZHBkay5v cmcvYXJjaGl2ZXMvZGV2LzIwMjUtQXVndXN0LzMyMjcyNi5odG1sIDxodHRwczovL21haWxzLmRw ZGsub3JnL2FyY2hpdmVzL2Rldi8yMDI1LUF1Z3VzdC8zMjI3MjYuaHRtbCA+ClRoYW5rIHlvdS4K Pgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQo+IOWPkeS7tuS6uu+8mkl2YW4gTWFsb3YgPGl2YW4ubWFsb3ZAYXJrbmV0 d29ya3MuYW0+Cj4g5Y+R6YCB5pe26Ze077yaMjAyNeW5tDjmnIgxM+aXpSjlkajkuIkpIDIwOjAw Cj4g5pS25Lu25Lq677yaRGltb248ZGltb24uemhhb0BuZWJ1bGEtbWF0cml4LmNvbT4KPiDmioQg 6YCB77yaZGV2PGRldkBkcGRrLm9yZz47IEt5byBMaXU8a3lvLmxpdUBuZWJ1bGEtbWF0cml4LmNv bT47IExlb248bGVvbi55dUBuZWJ1bGEtbWF0cml4LmNvbT47IFNhbTxzYW0uY2hlbkBuZWJ1bGEt bWF0cml4LmNvbT4KPiDkuLsg6aKY77yaUmU6IFtQQVRDSCB2NCAxMi8xNl0gbmV0L25ibDogYWRk IG5ibCBkZXZpY2Ugcnh0eCBxdWV1ZSBzZXR1cCBhbmQgcmVsZWFzZSBvcHMKPiAKPiBIaSBEaW1v biwKPiAKPiAocGxlYXNlIHNlZSBiZWxvdykKPiAKPiBPbiBUdWUsIDEyIEF1ZyAyMDI1LCBEaW1v biBaaGFvIHdyb3RlOgo+IAo+ID4gSW1wbGVtZW50IE5CTCBkZXZpY2UgUnggYW5kIFR4IHF1ZXVl IHNldHVwICYgcmVsZWFzZSBmdW5jdGlvbnMKPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBEaW1vbiBa aGFvIDxkaW1vbi56aGFvQG5lYnVsYS1tYXRyaXguY29tPgo+ID4gLS0tCj4gPiBkcml2ZXJzL25l dC9uYmwvbmJsX2Rldi9uYmxfZGV2LmMgfCA3NSArKysrKwo+ID4gZHJpdmVycy9uZXQvbmJsL25i bF9kZXYvbmJsX2Rldi5oIHwgNyArCj4gPiBkcml2ZXJzL25ldC9uYmwvbmJsX2V0aGRldi5jIHwg NCArCj4gPiAuLi4vbmJsL25ibF9ody9uYmxfaHdfbGVvbmlzL25ibF9yZXNfbGVvbmlzLmMgfCAy ICsKPiA+IGRyaXZlcnMvbmV0L25ibC9uYmxfaHcvbmJsX3Jlc291cmNlLmggfCA5OSArKysrKysK PiA+IGRyaXZlcnMvbmV0L25ibC9uYmxfaHcvbmJsX3R4cnguYyB8IDI4NSArKysrKysrKysrKysr KysrLS0KPiA+IGRyaXZlcnMvbmV0L25ibC9uYmxfaHcvbmJsX3R4cnguaCB8IDk5ICsrKysrKwo+ ID4gZHJpdmVycy9uZXQvbmJsL25ibF9pbmNsdWRlL25ibF9kZWZfY29tbW9uLmggfCA1ICsKPiA+ IGRyaXZlcnMvbmV0L25ibC9uYmxfaW5jbHVkZS9uYmxfaW5jbHVkZS5oIHwgMSArCj4gPiA5IGZp bGVzIGNoYW5nZWQsIDU1NSBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKPiA+Cj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmJsL25ibF9kZXYvbmJsX2Rldi5jIGIvZHJpdmVycy9u ZXQvbmJsL25ibF9kZXYvbmJsX2Rldi5jCj4gPiBpbmRleCA4NmRlZmQ2MjFkLi4xN2I5YmQyYzc3 IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9uZXQvbmJsL25ibF9kZXYvbmJsX2Rldi5jCj4gPiAr KysgYi9kcml2ZXJzL25ldC9uYmwvbmJsX2Rldi9uYmxfZGV2LmMKPiA+IEBAIC01Nyw2ICs1Nyw4 MSBAQCBpbnQgbmJsX2Rldl9wb3J0X2Nsb3NlKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldikK PiA+IHJldHVybiAwOwo+ID4gfQo+ID4KPiA+ICtpbnQgbmJsX3R4X3F1ZXVlX3NldHVwKHN0cnVj dCBydGVfZXRoX2RldiAqZXRoX2RldiwgdTE2IHF1ZXVlX2lkeCwKPiA+ICsgdTE2IG5iX2Rlc2Ms IHVuc2lnbmVkIGludCBzb2NrZXRfaWQsIGNvbnN0IHN0cnVjdCBydGVfZXRoX3R4Y29uZiAqY29u ZikKPiA+ICt7Cj4gPiArIHN0cnVjdCBuYmxfYWRhcHRlciAqYWRhcHRlciA9IEVUSF9ERVZfVE9f TkJMX0RFVl9QRl9QUklWKGV0aF9kZXYpOwo+ID4gKyBzdHJ1Y3QgbmJsX2Rldl9tZ3QgKmRldl9t Z3QgPSBOQkxfQURBUFRFUl9UT19ERVZfTUdUKGFkYXB0ZXIpOwo+ID4gKyBzdHJ1Y3QgbmJsX2Rp c3BhdGNoX29wcyAqZGlzcF9vcHMgPSBOQkxfREVWX01HVF9UT19ESVNQX09QUyhkZXZfbWd0KTsK PiA+ICsgc3RydWN0IG5ibF9kZXZfcmluZ19tZ3QgKnJpbmdfbWd0ID0gJmRldl9tZ3QtPm5ldF9k ZXYtPnJpbmdfbWd0Owo+ID4gKyBzdHJ1Y3QgbmJsX2Rldl9yaW5nICp0eF9yaW5nID0gJnJpbmdf bWd0LT50eF9yaW5nc1txdWV1ZV9pZHhdOwo+ID4gKyBzdHJ1Y3QgbmJsX3N0YXJ0X3R4X3Jpbmdf cGFyYW0gcGFyYW0gPSB7IDAgfTsKPiA+ICsgaW50IHJldDsKPiA+ICsKPiA+ICsgcGFyYW0ucXVl dWVfaWR4ID0gcXVldWVfaWR4Owo+ID4gKyBwYXJhbS5uYl9kZXNjID0gbmJfZGVzYzsKPiA+ICsg cGFyYW0uc29ja2V0X2lkID0gc29ja2V0X2lkOwo+ID4gKyBwYXJhbS5jb25mID0gY29uZjsKPiA+ ICsgcGFyYW0ucHJvZHVjdCA9IGFkYXB0ZXItPmNhcHMucHJvZHVjdF90eXBlOwo+ID4gKyBwYXJh bS5ib25kX2Jyb2FkY2FzdF9jaGVjayA9IE5VTEw7Cj4gPiArIHJldCA9IGRpc3Bfb3BzLT5zdGFy dF90eF9yaW5nKE5CTF9ERVZfTUdUX1RPX0RJU1BfUFJJVihkZXZfbWd0KSwgJnBhcmFtLCAmdHhf cmluZy0+ZG1hKTsKPiA+ICsgaWYgKHJldCkgewo+ID4gKyBOQkxfTE9HKEVSUiwgInN0YXJ0X3R4 X3JpbmcgZmFpbGVkICVkIiwgcmV0KTsKPiA+ICsgcmV0dXJuIHJldDsKPiA+ICsgfQo+ID4gKwo+ ID4gKyB0eF9yaW5nLT5kZXNjX251bSA9IG5iX2Rlc2M7Cj4gPiArCj4gPiArIHJldHVybiByZXQ7 Cj4gPiArfQo+ID4gKwo+ID4gK2ludCBuYmxfcnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpldGhfZGV2LCB1MTYgcXVldWVfaWR4LAo+ID4gKyB1MTYgbmJfZGVzYywgdW5zaWduZWQg aW50IHNvY2tldF9pZCwKPiA+ICsgY29uc3Qgc3RydWN0IHJ0ZV9ldGhfcnhjb25mICpjb25mLCBz dHJ1Y3QgcnRlX21lbXBvb2wgKm1lbXBvb2wpCj4gPiArewo+ID4gKyBzdHJ1Y3QgbmJsX2FkYXB0 ZXIgKmFkYXB0ZXIgPSBFVEhfREVWX1RPX05CTF9ERVZfUEZfUFJJVihldGhfZGV2KTsKPiA+ICsg c3RydWN0IG5ibF9kZXZfbWd0ICpkZXZfbWd0ID0gTkJMX0FEQVBURVJfVE9fREVWX01HVChhZGFw dGVyKTsKPiA+ICsgc3RydWN0IG5ibF9kaXNwYXRjaF9vcHMgKmRpc3Bfb3BzID0gTkJMX0RFVl9N R1RfVE9fRElTUF9PUFMoZGV2X21ndCk7Cj4gPiArIHN0cnVjdCBuYmxfZGV2X3JpbmdfbWd0ICpy aW5nX21ndCA9ICZkZXZfbWd0LT5uZXRfZGV2LT5yaW5nX21ndDsKPiA+ICsgc3RydWN0IG5ibF9k ZXZfcmluZyAqcnhfcmluZyA9ICZyaW5nX21ndC0+cnhfcmluZ3NbcXVldWVfaWR4XTsKPiA+ICsg c3RydWN0IG5ibF9zdGFydF9yeF9yaW5nX3BhcmFtIHBhcmFtID0geyAwIH07Cj4gPiArIGludCBy ZXQ7Cj4gPiArCj4gPiArIHBhcmFtLnF1ZXVlX2lkeCA9IHF1ZXVlX2lkeDsKPiA+ICsgcGFyYW0u bmJfZGVzYyA9IG5iX2Rlc2M7Cj4gPiArIHBhcmFtLnNvY2tldF9pZCA9IHNvY2tldF9pZDsKPiA+ ICsgcGFyYW0uY29uZiA9IGNvbmY7Cj4gCj4gSSBkb24ndCBzZWUgd2hlcmUgdGhpcyAnY29uZicg aXMgcGFyc2VkLiBJZiB0aGUgdXNlciBoYXMgcmVxdWVzdGVkIHVuc3VwcG9ydGVkCj4gb2ZmbG9h ZHMsIHNheSwgdW5zdXBwb3J0ZWQgUlNTIGZsb3cgdHlwZXMsIHRoZW4gdGhlIGRyaXZlciBzaG91 bGQgZ2l2ZSBhbiBlcnJvci4KPiAKPiBEb2VzIHRoZSBkcml2ZXIgYWN0dWFsbHkgcGFyc2UgdXNl ciBSU1MgY29uZmlndXJhdGlvbj8gVXNlciBSU1Mga2V5PyBSU1MgdHlwZXM/Cj4gRG9lcyB0aGUg cGF0Y2ggc2VyaWVzIGFsbG93IHVzZXIgdG8gc2V0IHRoZWlyIG93biBSRVRBIHRhYmxlIGZvciBS U1M/Cj4gCj4gPiArIHBhcmFtLm1lbXBvb2wgPSBtZW1wb29sOwo+ID4gKyBwYXJhbS5wcm9kdWN0 ID0gYWRhcHRlci0+Y2Fwcy5wcm9kdWN0X3R5cGU7Cj4gPiArIHJldCA9IGRpc3Bfb3BzLT5zdGFy dF9yeF9yaW5nKE5CTF9ERVZfTUdUX1RPX0RJU1BfUFJJVihkZXZfbWd0KSwgJnBhcmFtLCAmcnhf cmluZy0+ZG1hKTsKPiA+ICsgaWYgKHJldCkgewo+ID4gKyBOQkxfTE9HKEVSUiwgInN0YXJ0X3J4 X3JpbmcgZmFpbGVkICVkIiwgcmV0KTsKPiA+ICsgcmV0dXJuIHJldDsKPiA+ICsgfQo+ID4gKwo+ ID4gKyByeF9yaW5nLT5kZXNjX251bSA9IG5iX2Rlc2M7Cj4gPiArCj4gPiArIHJldHVybiByZXQ7 Cj4gPiArfQo+ID4gKwo+ID4gK3ZvaWQgbmJsX3R4X3F1ZXVlc19yZWxlYXNlKHN0cnVjdCBydGVf ZXRoX2RldiAqZXRoX2RldiwgdWludDE2X3QgcXVldWVfaWQpCj4gPiArewo+ID4gKyBzdHJ1Y3Qg bmJsX2FkYXB0ZXIgKmFkYXB0ZXIgPSBFVEhfREVWX1RPX05CTF9ERVZfUEZfUFJJVihldGhfZGV2 KTsKPiA+ICsgc3RydWN0IG5ibF9kZXZfbWd0ICpkZXZfbWd0ID0gTkJMX0FEQVBURVJfVE9fREVW X01HVChhZGFwdGVyKTsKPiA+ICsgc3RydWN0IG5ibF9kaXNwYXRjaF9vcHMgKmRpc3Bfb3BzID0g TkJMX0RFVl9NR1RfVE9fRElTUF9PUFMoZGV2X21ndCk7Cj4gPiArCj4gPiArIGRpc3Bfb3BzLT5y ZWxlYXNlX3R4X3JpbmcoTkJMX0RFVl9NR1RfVE9fRElTUF9QUklWKGRldl9tZ3QpLCBxdWV1ZV9p ZCk7Cj4gPiArfQo+ID4gKwo+ID4gK3ZvaWQgbmJsX3J4X3F1ZXVlc19yZWxlYXNlKHN0cnVjdCBy dGVfZXRoX2RldiAqZXRoX2RldiwgdWludDE2X3QgcXVldWVfaWQpCj4gPiArewo+ID4gKyBzdHJ1 Y3QgbmJsX2FkYXB0ZXIgKmFkYXB0ZXIgPSBFVEhfREVWX1RPX05CTF9ERVZfUEZfUFJJVihldGhf ZGV2KTsKPiA+ICsgc3RydWN0IG5ibF9kZXZfbWd0ICpkZXZfbWd0ID0gTkJMX0FEQVBURVJfVE9f REVWX01HVChhZGFwdGVyKTsKPiA+ICsgc3RydWN0IG5ibF9kaXNwYXRjaF9vcHMgKmRpc3Bfb3Bz ID0gTkJMX0RFVl9NR1RfVE9fRElTUF9PUFMoZGV2X21ndCk7Cj4gPiArCj4gPiArIGRpc3Bfb3Bz LT5yZWxlYXNlX3J4X3JpbmcoTkJMX0RFVl9NR1RfVE9fRElTUF9QUklWKGRldl9tZ3QpLCBxdWV1 ZV9pZCk7Cj4gPiArfQo+ID4gKwo+ID4gc3RydWN0IG5ibF9kZXZfb3BzIGRldl9vcHMgPSB7Cj4g PiB9Owo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uYmwvbmJsX2Rldi9uYmxfZGV2 LmggYi9kcml2ZXJzL25ldC9uYmwvbmJsX2Rldi9uYmxfZGV2LmgKPiA+IGluZGV4IGVjZmI2ZjZh ZTAuLmRjYTIyMzM3NDkgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL25ldC9uYmwvbmJsX2Rldi9u YmxfZGV2LmgKPiA+ICsrKyBiL2RyaXZlcnMvbmV0L25ibC9uYmxfZGV2L25ibF9kZXYuaAo+ID4g QEAgLTU2LDUgKzU2LDEyIEBAIGludCBuYmxfZGV2X2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmV0aF9kZXYpOwo+ID4gaW50IG5ibF9kZXZfcG9ydF9zdGFydChzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmV0aF9kZXYpOwo+ID4gaW50IG5ibF9kZXZfcG9ydF9zdG9wKHN0cnVjdCBydGVfZXRoX2Rl diAqZXRoX2Rldik7Cj4gPiBpbnQgbmJsX2Rldl9wb3J0X2Nsb3NlKHN0cnVjdCBydGVfZXRoX2Rl diAqZXRoX2Rldik7Cj4gPiAraW50IG5ibF90eF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmV0aF9kZXYsIHUxNiBxdWV1ZV9pZHgsCj4gPiArIHUxNiBuYl9kZXNjLCB1bnNpZ25lZCBp bnQgc29ja2V0X2lkLCBjb25zdCBzdHJ1Y3QgcnRlX2V0aF90eGNvbmYgKmNvbmYpOwo+ID4gK2lu dCBuYmxfcnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LCB1MTYgcXVl dWVfaWR4LAo+ID4gKyB1MTYgbmJfZGVzYywgdW5zaWduZWQgaW50IHNvY2tldF9pZCwKPiA+ICsg Y29uc3Qgc3RydWN0IHJ0ZV9ldGhfcnhjb25mICpjb25mLCBzdHJ1Y3QgcnRlX21lbXBvb2wgKm1l bXBvb2wpOwo+ID4gK3ZvaWQgbmJsX3R4X3F1ZXVlc19yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2Rl diAqZXRoX2RldiwgdWludDE2X3QgcXVldWVfaWQpOwo+ID4gK3ZvaWQgbmJsX3J4X3F1ZXVlc19y ZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwgdWludDE2X3QgcXVldWVfaWQpOwo+ ID4KPiA+ICNlbmRpZgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ibC9uYmxfZXRoZGV2 LmMgYi9kcml2ZXJzL25ldC9uYmwvbmJsX2V0aGRldi5jCj4gPiBpbmRleCBiNzczMDU5MzA2Li41 MTQxNmViYTkxIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9uZXQvbmJsL25ibF9ldGhkZXYuYwo+ ID4gKysrIGIvZHJpdmVycy9uZXQvbmJsL25ibF9ldGhkZXYuYwo+ID4gQEAgLTMzLDYgKzMzLDEw IEBAIGNvbnN0IHN0cnVjdCBldGhfZGV2X29wcyBuYmxfZXRoX2Rldl9vcHMgPSB7Cj4gPiAuZGV2 X3N0YXJ0ID0gbmJsX2Rldl9wb3J0X3N0YXJ0LAo+ID4gLmRldl9zdG9wID0gbmJsX2Rldl9wb3J0 X3N0b3AsCj4gPiAuZGV2X2Nsb3NlID0gbmJsX2Rldl9jbG9zZSwKPiA+ICsgLnR4X3F1ZXVlX3Nl dHVwID0gbmJsX3R4X3F1ZXVlX3NldHVwLAo+ID4gKyAucnhfcXVldWVfc2V0dXAgPSBuYmxfcnhf cXVldWVfc2V0dXAsCj4gPiArIC50eF9xdWV1ZV9yZWxlYXNlID0gbmJsX3R4X3F1ZXVlc19yZWxl YXNlLAo+ID4gKyAucnhfcXVldWVfcmVsZWFzZSA9IG5ibF9yeF9xdWV1ZXNfcmVsZWFzZSwKPiA+ IH07Cj4gPgo+ID4gc3RhdGljIGludCBuYmxfZXRoX2Rldl9pbml0KHN0cnVjdCBydGVfZXRoX2Rl diAqZXRoX2RldikKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uYmwvbmJsX2h3L25ibF9o d19sZW9uaXMvbmJsX3Jlc19sZW9uaXMuYyBiL2RyaXZlcnMvbmV0L25ibC9uYmxfaHcvbmJsX2h3 X2xlb25pcy9uYmxfcmVzX2xlb25pcy5jCj4gPiBpbmRleCA2MzI3YWE1NWI0Li5iNzg1Nzc0ZjY3 IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9uZXQvbmJsL25ibF9ody9uYmxfaHdfbGVvbmlzL25i bF9yZXNfbGVvbmlzLmMKPiA+ICsrKyBiL2RyaXZlcnMvbmV0L25ibC9uYmxfaHcvbmJsX2h3X2xl b25pcy9uYmxfcmVzX2xlb25pcy5jCj4gPiBAQCAtNTMsNiArNTMsOCBAQCBzdGF0aWMgaW50IG5i bF9yZXNfc3RhcnQoc3RydWN0IG5ibF9yZXNvdXJjZV9tZ3RfbGVvbmlzICpyZXNfbWd0X2xlb25p cykKPiA+IHN0cnVjdCBuYmxfcmVzb3VyY2VfbWd0ICpyZXNfbWd0ID0gJnJlc19tZ3RfbGVvbmlz LT5yZXNfbWd0Owo+ID4gaW50IHJldDsKPiA+Cj4gPiArIHJlc19tZ3QtPnJlc19pbmZvLmJhc2Vf cWlkID0gMDsKPiA+ICsKPiA+IHJldCA9IG5ibF90eHJ4X21ndF9zdGFydChyZXNfbWd0KTsKPiA+ IGlmIChyZXQpCj4gPiBnb3RvIHR4cnhfZmFpbGVkOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L25ibC9uYmxfaHcvbmJsX3Jlc291cmNlLmggYi9kcml2ZXJzL25ldC9uYmwvbmJsX2h3L25i bF9yZXNvdXJjZS5oCj4gPiBpbmRleCAwN2U2MzI3MjU5Li41NDMwNTRhMmNiIDEwMDY0NAo+ID4g LS0tIGEvZHJpdmVycy9uZXQvbmJsL25ibF9ody9uYmxfcmVzb3VyY2UuaAo+ID4gKysrIGIvZHJp dmVycy9uZXQvbmJsL25ibF9ody9uYmxfcmVzb3VyY2UuaAo+ID4gQEAgLTE2LDEyICsxNiwxMDIg QEAKPiA+ICNkZWZpbmUgTkJMX1JFU19NR1RfVE9fQ0hBTl9PUFMocmVzX21ndCkgKE5CTF9SRVNf TUdUX1RPX0NIQU5fT1BTX1RCTChyZXNfbWd0KS0+b3BzKQo+ID4gI2RlZmluZSBOQkxfUkVTX01H VF9UT19DSEFOX1BSSVYocmVzX21ndCkgKE5CTF9SRVNfTUdUX1RPX0NIQU5fT1BTX1RCTChyZXNf bWd0KS0+cHJpdikKPiA+ICNkZWZpbmUgTkJMX1JFU19NR1RfVE9fRVRIX0RFVihyZXNfbWd0KSAo KHJlc19tZ3QpLT5ldGhfZGV2KQo+ID4gKyNkZWZpbmUgTkJMX1JFU19NR1RfVE9fQ09NTU9OKHJl c19tZ3QpICgocmVzX21ndCktPmNvbW1vbikKPiA+ICNkZWZpbmUgTkJMX1JFU19NR1RfVE9fVFhS WF9NR1QocmVzX21ndCkgKChyZXNfbWd0KS0+dHhyeF9tZ3QpCj4gPiArI2RlZmluZSBOQkxfUkVT X01HVF9UT19UWF9SSU5HKHJlc19tZ3QsIGluZGV4KSBcCj4gPiArIChOQkxfUkVTX01HVF9UT19U WFJYX01HVChyZXNfbWd0KS0+dHhfcmluZ3NbKGluZGV4KV0pCj4gPiArI2RlZmluZSBOQkxfUkVT X01HVF9UT19SWF9SSU5HKHJlc19tZ3QsIGluZGV4KSBcCj4gPiArIChOQkxfUkVTX01HVF9UT19U WFJYX01HVChyZXNfbWd0KS0+cnhfcmluZ3NbKGluZGV4KV0pCj4gPiArCj4gPiArc3RydWN0IG5i bF9wYWNrZWRfZGVzYyB7Cj4gPiArIHJ0ZV9sZTY0X3QgYWRkcjsKPiA+ICsgcnRlX2xlMzJfdCBs ZW47Cj4gPiArIHJ0ZV9sZTE2X3QgaWQ7Cj4gPiArIHJ0ZV9sZTE2X3QgZmxhZ3M7Cj4gPiArfTsK PiA+ICsKPiA+ICtzdHJ1Y3QgbmJsX3R4X2VudHJ5IHsKPiA+ICsgc3RydWN0IHJ0ZV9tYnVmICpt YnVmOwo+ID4gKyB1aW50MTZfdCBmaXJzdF9pZDsKPiA+ICt9Owo+ID4gKwo+ID4gK3N0cnVjdCBu YmxfcnhfZW50cnkgewo+ID4gKyBzdHJ1Y3QgcnRlX21idWYgKm1idWY7Cj4gPiArfTsKPiA+Cj4g PiBzdHJ1Y3QgbmJsX3Jlc190eF9yaW5nIHsKPiA+ICsgdm9sYXRpbGUgc3RydWN0IG5ibF9wYWNr ZWRfZGVzYyAqZGVzYzsKPiA+ICsgc3RydWN0IG5ibF90eF9lbnRyeSAqdHhfZW50cnk7Cj4gPiAr IGNvbnN0IHN0cnVjdCBydGVfbWVtem9uZSAqbmV0X2hkcl9tejsKPiA+ICsgdm9sYXRpbGUgdWlu dDhfdCAqbm90aWZ5Owo+ID4gKyBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXY7Cj4gPiArIHN0 cnVjdCBuYmxfY29tbW9uX2luZm8gKmNvbW1vbjsKPiA+ICsgdTY0IGRlZmF1bHRfaGRyWzJdOwo+ ID4gKwo+ID4gKyBlbnVtIG5ibF9wcm9kdWN0X3R5cGUgcHJvZHVjdDsKPiA+ICsgaW50IGRtYV9s aW1pdF9tc2I7Cj4gPiArIGJvb2wgZG1hX3NldF9tc2I7Cj4gPiArIHUxNiBuYl9kZXNjOwo+ID4g KyB1MTYgbmV4dF90b19jbGVhbjsKPiA+ICsgdTE2IG5leHRfdG9fdXNlOwo+ID4gKwo+ID4gKyB1 MTYgYXZhaWxfdXNlZF9mbGFnczsKPiA+ICsgYm9vbCB1c2VkX3dyYXBfY291bnRlcjsKPiA+ICsg dTE2IG5vdGlmeV9xaWQ7Cj4gPiArIHUxNiBleHRoZHJfbGVuOwo+ID4gKwo+ID4gKyB1MTYgdmxh bl9wcm90bzsKPiA+ICsgdTE2IHZsYW5fdGNpOwo+ID4gKyB1MTYgbGFnX2lkOwo+ID4gKyB1MTYg dnFfZnJlZV9jbnQ7Cj4gPiArIC8qIFN0YXJ0IGZyZWVpbmcgVFggYnVmZmVycyBpZiB0aGVyZSBh cmUgbGVzcyBmcmVlIGRlc2NyaXB0b3JzIHRoYW4gdGhpcyB2YWx1ZSAqLwo+ID4gKyB1MTYgdHhf ZnJlZV90aHJlc2g7Cj4gPiArIC8qIE51bWJlciBvZiBUeCBkZXNjcmlwdG9ycyB0byB1c2UgYmVm b3JlIFJTIGJpdCBpcyBzZXQgKi8KPiA+ICsgdTE2IHR4X3JzX3RocmVzaDsKPiA+ICsKPiA+ICsg dW5zaWduZWQgaW50IHNpemU7Cj4gPiArCj4gPiArIHUxNiBxdWV1ZV9pZDsKPiA+ICsKPiA+ICsg dTY0IG9mZmxvYWRzOwo+ID4gKyB1NjQgcmluZ19waHlzX2FkZHI7Cj4gPiArCj4gPiArIHUxNiAo KnByZXBfdHhfZWhkcikodm9pZCAqcHJpdiwgc3RydWN0IHJ0ZV9tYnVmICptYnVmKTsKPiA+IH07 Cj4gPgo+ID4gc3RydWN0IG5ibF9yZXNfcnhfcmluZyB7Cj4gPiArIHZvbGF0aWxlIHN0cnVjdCBu YmxfcGFja2VkX2Rlc2MgKmRlc2M7Cj4gPiArIHN0cnVjdCBuYmxfcnhfZW50cnkgKnJ4X2VudHJ5 Owo+ID4gKyBzdHJ1Y3QgcnRlX21lbXBvb2wgKm1lbXBvb2w7Cj4gPiArIHZvbGF0aWxlIHVpbnQ4 X3QgKm5vdGlmeTsKPiA+ICsgc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2Owo+ID4gKyBzdHJ1 Y3QgbmJsX2NvbW1vbl9pbmZvICpjb21tb247Cj4gPiArIHVpbnQ2NF90IG1idWZfaW5pdGlhbGl6 ZXI7IC8qKjwgdmFsdWUgdG8gaW5pdCBtYnVmcyAqLwo+ID4gKyBzdHJ1Y3QgcnRlX21idWYgZmFr ZV9tYnVmOwo+ID4gKwo+ID4gKyBlbnVtIG5ibF9wcm9kdWN0X3R5cGUgcHJvZHVjdDsKPiA+ICsg aW50IGRtYV9saW1pdF9tc2I7Cj4gPiArIHVuc2lnbmVkIGludCBzaXplOwo+ID4gKyBib29sIGRt YV9zZXRfbXNiOwo+ID4gKyB1MTYgbmJfZGVzYzsKPiA+ICsgdTE2IG5leHRfdG9fY2xlYW47Cj4g PiArIHUxNiBuZXh0X3RvX3VzZTsKPiA+ICsKPiA+ICsgdTE2IGF2YWlsX3VzZWRfZmxhZ3M7Cj4g PiArIGJvb2wgdXNlZF93cmFwX2NvdW50ZXI7Cj4gPiArIHUxNiBub3RpZnlfcWlkOwo+ID4gKyB1 MTYgZXh0aGRyX2xlbjsKPiA+ICsKPiA+ICsgdTE2IHZsYW5fcHJvdG87Cj4gPiArIHUxNiB2bGFu X3RjaTsKPiA+ICsgdTE2IHZxX2ZyZWVfY250Owo+ID4gKyB1MTYgcG9ydF9pZDsKPiA+ICsKPiA+ ICsgdTE2IHF1ZXVlX2lkOwo+ID4gKyB1MTYgYnVmX2xlbmd0aDsKPiA+ICsKPiA+ICsgdTY0IG9m ZmxvYWRzOwo+ID4gKyB1NjQgcmluZ19waHlzX2FkZHI7Cj4gPiB9Owo+ID4KPiA+IHN0cnVjdCBu YmxfdHhyeF9tZ3Qgewo+ID4gQEAgLTMzLDExICsxMjMsMjAgQEAgc3RydWN0IG5ibF90eHJ4X21n dCB7Cj4gPiB1OCByeF9yaW5nX251bTsKPiA+IH07Cj4gPgo+ID4gK3N0cnVjdCBuYmxfcmVzX2lu Zm8gewo+ID4gKyB1MTYgYmFzZV9xaWQ7Cj4gPiArIHUxNiBsY29yZV9tYXg7Cj4gPiArIHUxNiAq cGZfcWlkX3RvX2xjb3JlX2lkOwo+ID4gKyBydGVfYXRvbWljMTZfdCB0eF9jdXJyZW50X3F1ZXVl Owo+ID4gK307Cj4gPiArCj4gPiBzdHJ1Y3QgbmJsX3Jlc291cmNlX21ndCB7Cj4gPiBzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmV0aF9kZXY7Cj4gPiBzdHJ1Y3QgbmJsX2NoYW5uZWxfb3BzX3RibCAqY2hh bl9vcHNfdGJsOwo+ID4gc3RydWN0IG5ibF9waHlfb3BzX3RibCAqcGh5X29wc190Ymw7Cj4gPiBz dHJ1Y3QgbmJsX3R4cnhfbWd0ICp0eHJ4X21ndDsKPiA+ICsgc3RydWN0IG5ibF9jb21tb25faW5m byAqY29tbW9uOwo+ID4gKyBzdHJ1Y3QgbmJsX3Jlc19pbmZvIHJlc19pbmZvOwo+ID4gfTsKPiA+ Cj4gPiBzdHJ1Y3QgbmJsX3Jlc291cmNlX21ndF9sZW9uaXMgewo+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L25ibC9uYmxfaHcvbmJsX3R4cnguYyBiL2RyaXZlcnMvbmV0L25ibC9uYmxfaHcv bmJsX3R4cnguYwo+ID4gaW5kZXggZWFhN2U0YzY5ZC4uYzUxYTM4NDQ0NSAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvbmV0L25ibC9uYmxfaHcvbmJsX3R4cnguYwo+ID4gKysrIGIvZHJpdmVycy9u ZXQvbmJsL25ibF9ody9uYmxfdHhyeC5jCj4gPiBAQCAtMzksNTUgKzM5LDI5NiBAQCBzdGF0aWMg dm9pZCBuYmxfcmVzX3R4cnhfcmVtb3ZlX3JpbmdzKHZvaWQgKnByaXYpCj4gPiBydGVfZnJlZSh0 eHJ4X21ndC0+cnhfcmluZ3MpOwo+ID4gfQo+ID4KPiA+IC1zdGF0aWMgaW50IG5ibF9yZXNfdHhy eF9zdGFydF90eF9yaW5nKHZvaWQgKnByaXYsCj4gPiAtIHN0cnVjdCBuYmxfc3RhcnRfdHhfcmlu Z19wYXJhbSAqcGFyYW0sCj4gPiAtIHU2NCAqZG1hX2FkZHIpCj4gPiArc3RhdGljIGlubGluZSB1 MTYgbmJsX3ByZXBfdHhfZWhkcl9sZW9uaXModm9pZCAqcHJpdiwgc3RydWN0IHJ0ZV9tYnVmICpt YnVmKQo+ID4gewo+ID4gUlRFX1NFVF9VU0VEKHByaXYpOwo+ID4gLSBSVEVfU0VUX1VTRUQocGFy YW0pOwo+ID4gLSBSVEVfU0VUX1VTRUQoZG1hX2FkZHIpOwo+ID4gKyBSVEVfU0VUX1VTRUQobWJ1 Zik7Cj4gPiByZXR1cm4gMDsKPiA+IH0KPiA+Cj4gPiBzdGF0aWMgdm9pZCBuYmxfcmVzX3R4cnhf c3RvcF90eF9yaW5nKHZvaWQgKnByaXYsIHUxNiBxdWV1ZV9pZHgpCj4gPiB7Cj4gPiAtIFJURV9T RVRfVVNFRChwcml2KTsKPiA+IC0gUlRFX1NFVF9VU0VEKHF1ZXVlX2lkeCk7Cj4gPiArIHN0cnVj dCBuYmxfcmVzb3VyY2VfbWd0ICpyZXNfbWd0ID0gKHN0cnVjdCBuYmxfcmVzb3VyY2VfbWd0ICop cHJpdjsKPiA+ICsgc3RydWN0IG5ibF9yZXNfdHhfcmluZyAqdHhfcmluZyA9IE5CTF9SRVNfTUdU X1RPX1RYX1JJTkcocmVzX21ndCwgcXVldWVfaWR4KTsKPiA+ICsgaW50IGk7Cj4gPiArCj4gPiAr IGlmICghdHhfcmluZykKPiA+ICsgcmV0dXJuOwo+ID4gKwo+ID4gKyBmb3IgKGkgPSAwOyBpIDwg dHhfcmluZy0+bmJfZGVzYzsgaSsrKSB7Cj4gPiArIGlmICh0eF9yaW5nLT50eF9lbnRyeVtpXS5t YnVmICE9IE5VTEwpIHsKPiA+ICsgcnRlX3BrdG1idWZfZnJlZV9zZWcodHhfcmluZy0+dHhfZW50 cnlbaV0ubWJ1Zik7Cj4gPiArIG1lbXNldCgmdHhfcmluZy0+dHhfZW50cnlbaV0sIDAsIHNpemVv ZigqdHhfcmluZy0+dHhfZW50cnkpKTsKPiA+ICsgfQo+ID4gKyB0eF9yaW5nLT5kZXNjW2ldLmZs YWdzID0gMDsKPiA+ICsgfQo+ID4gKwo+ID4gKyB0eF9yaW5nLT5hdmFpbF91c2VkX2ZsYWdzID0g QklUKE5CTF9QQUNLRURfREVTQ19GX0FWQUlMKTsKPiA+ICsgdHhfcmluZy0+dXNlZF93cmFwX2Nv dW50ZXIgPSAxOwo+ID4gKyB0eF9yaW5nLT5uZXh0X3RvX2NsZWFuID0gTkJMX1RYX1JTX1RIUkVT SCAtIDE7Cj4gPiArIHR4X3JpbmctPm5leHRfdG9fdXNlID0gMDsKPiA+ICsgdHhfcmluZy0+dnFf ZnJlZV9jbnQgPSB0eF9yaW5nLT5uYl9kZXNjOwo+ID4gfQo+ID4KPiA+IC1zdGF0aWMgdm9pZCBu YmxfcmVzX3R4cnhfcmVsZWFzZV90eHJpbmcodm9pZCAqcHJpdiwgdTE2IHF1ZXVlX2lkeCkKPiA+ ICtzdGF0aWMgdm9pZCBuYmxfcmVzX3R4cnhfcmVsZWFzZV90eF9yaW5nKHZvaWQgKnByaXYsIHUx NiBxdWV1ZV9pZHgpCj4gPiB7Cj4gPiAtIFJURV9TRVRfVVNFRChwcml2KTsKPiA+IC0gUlRFX1NF VF9VU0VEKHF1ZXVlX2lkeCk7Cj4gPiArIHN0cnVjdCBuYmxfcmVzb3VyY2VfbWd0ICpyZXNfbWd0 ID0gKHN0cnVjdCBuYmxfcmVzb3VyY2VfbWd0ICopcHJpdjsKPiA+ICsgc3RydWN0IG5ibF90eHJ4 X21ndCAqdHhyeF9tZ3QgPSBOQkxfUkVTX01HVF9UT19UWFJYX01HVChyZXNfbWd0KTsKPiA+ICsg c3RydWN0IG5ibF9yZXNfdHhfcmluZyAqdHhfcmluZyA9IE5CTF9SRVNfTUdUX1RPX1RYX1JJTkco cmVzX21ndCwgcXVldWVfaWR4KTsKPiA+ICsgaWYgKCF0eF9yaW5nKQo+ID4gKyByZXR1cm47Cj4g PiArIHJ0ZV9mcmVlKHR4X3JpbmctPnR4X2VudHJ5KTsKPiA+ICsgcnRlX2ZyZWUodHhfcmluZyk7 Cj4gPiArIHR4cnhfbWd0LT50eF9yaW5nc1txdWV1ZV9pZHhdID0gTlVMTDsKPiA+IH0KPiA+Cj4g PiAtc3RhdGljIGludCBuYmxfcmVzX3R4cnhfc3RhcnRfcnhfcmluZyh2b2lkICpwcml2LAo+ID4g LSBzdHJ1Y3QgbmJsX3N0YXJ0X3J4X3JpbmdfcGFyYW0gKnBhcmFtLAo+ID4gK3N0YXRpYyBpbnQg bmJsX3Jlc190eHJ4X3N0YXJ0X3R4X3Jpbmcodm9pZCAqcHJpdiwKPiA+ICsgc3RydWN0IG5ibF9z dGFydF90eF9yaW5nX3BhcmFtICpwYXJhbSwKPiA+IHU2NCAqZG1hX2FkZHIpCj4gPiB7Cj4gPiAt IFJURV9TRVRfVVNFRChwcml2KTsKPiA+IC0gUlRFX1NFVF9VU0VEKHBhcmFtKTsKPiA+IC0gUlRF X1NFVF9VU0VEKGRtYV9hZGRyKTsKPiA+ICsgc3RydWN0IG5ibF9yZXNvdXJjZV9tZ3QgKnJlc19t Z3QgPSAoc3RydWN0IG5ibF9yZXNvdXJjZV9tZ3QgKilwcml2Owo+ID4gKyBzdHJ1Y3QgbmJsX3R4 cnhfbWd0ICp0eHJ4X21ndCA9IE5CTF9SRVNfTUdUX1RPX1RYUlhfTUdUKHJlc19tZ3QpOwo+ID4g KyBzdHJ1Y3QgbmJsX3Jlc190eF9yaW5nICp0eF9yaW5nID0gTkJMX1JFU19NR1RfVE9fVFhfUklO RyhyZXNfbWd0LCBwYXJhbS0+cXVldWVfaWR4KTsKPiA+ICsgc3RydWN0IHJ0ZV9ldGhfZGV2ICpl dGhfZGV2ID0gTkJMX1JFU19NR1RfVE9fRVRIX0RFVihyZXNfbWd0KTsKPiA+ICsgc3RydWN0IG5i bF9jb21tb25faW5mbyAqY29tbW9uID0gTkJMX1JFU19NR1RfVE9fQ09NTU9OKHJlc19tZ3QpOwo+ ID4gKyBzdHJ1Y3QgbmJsX3BoeV9vcHMgKnBoeV9vcHMgPSBOQkxfUkVTX01HVF9UT19QSFlfT1BT KHJlc19tZ3QpOwo+ID4gKyBjb25zdCBzdHJ1Y3QgcnRlX21lbXpvbmUgKm1lbXpvbmU7Cj4gPiAr IGNvbnN0IHN0cnVjdCBydGVfbWVtem9uZSAqbmV0X2hkcl9tejsKPiA+ICsgY2hhciB2cV9oZHJf bmFtZVtOQkxfVlFfSERSX05BTUVfTUFYU0laRV07Cj4gPiArIHN0cnVjdCBuYmxfdHhfZWhkcl9s ZW9uaXMgZXh0X2hkciA9IHswfTsKPiA+ICsgdWludDY0X3Qgb2ZmbG9hZHM7Cj4gPiArIHUzMiBz aXplOwo+ID4gKwo+ID4gKyBvZmZsb2FkcyA9IHBhcmFtLT5jb25mLT5vZmZsb2FkcyB8IGV0aF9k ZXYtPmRhdGEtPmRldl9jb25mLnR4bW9kZS5vZmZsb2FkczsKPiA+ICsKPiA+ICsgaWYgKGV0aF9k ZXYtPmRhdGEtPnR4X3F1ZXVlc1twYXJhbS0+cXVldWVfaWR4XSAhPSBOVUxMKSB7Cj4gPiArIE5C TF9MT0coV0FSTklORywgInJlLXNldHVwIGFuIGFscmVhZHkgYWxsb2NhdGVkIHR4IHF1ZXVlIik7 Cj4gPiArIG5ibF9yZXNfdHhyeF9zdG9wX3R4X3JpbmcocHJpdiwgcGFyYW0tPnF1ZXVlX2lkeCk7 Cj4gPiArIGV0aF9kZXYtPmRhdGEtPnR4X3F1ZXVlc1twYXJhbS0+cXVldWVfaWR4XSA9IE5VTEw7 Cj4gPiArIH0KPiA+ICsKPiA+ICsgdHhfcmluZyA9IHJ0ZV96bWFsbG9jKCJuYmxfdHhyaW5nIiwg c2l6ZW9mKCp0eF9yaW5nKSwgUlRFX0NBQ0hFX0xJTkVfU0laRSk7Cj4gPiArIGlmICghdHhfcmlu Zykgewo+ID4gKyBOQkxfTE9HKEVSUiwgImFsbG9jYXRlIHR4IHF1ZXVlIGRhdGEgc3RydWN0dXJl IGZhaWxlZCIpOwo+ID4gKyByZXR1cm4gLUVOT01FTTsKPiA+ICsgfQo+ID4gKyBtZW1zZXQoJnR4 X3JpbmctPmRlZmF1bHRfaGRyLCAwLCBzaXplb2YodHhfcmluZy0+ZGVmYXVsdF9oZHIpKTsKPiA+ ICsgc3dpdGNoIChwYXJhbS0+cHJvZHVjdCkgewo+ID4gKyBjYXNlIE5CTF9MRU9OSVNfVFlQRToK PiA+ICsgdHhfcmluZy0+ZXh0aGRyX2xlbiA9IHNpemVvZihzdHJ1Y3QgbmJsX3R4X2VoZHJfbGVv bmlzKTsKPiA+ICsgdHhfcmluZy0+cHJlcF90eF9laGRyID0gbmJsX3ByZXBfdHhfZWhkcl9sZW9u aXM7Cj4gPiArIGV4dF9oZHIuZndkID0gTkJMX1RYX0ZXRF9UWVBFX05PUk1BTDsKPiA+ICsgbWVt Y3B5KCZ0eF9yaW5nLT5kZWZhdWx0X2hkciwgJmV4dF9oZHIsIHNpemVvZihzdHJ1Y3QgbmJsX3R4 X2VoZHJfbGVvbmlzKSk7Cj4gPiArIGJyZWFrOwo+ID4gKyBkZWZhdWx0Ogo+ID4gKyB0eF9yaW5n LT5leHRoZHJfbGVuID0gc2l6ZW9mKHVuaW9uIG5ibF90eF9leHRlbmRfaGVhZCk7Cj4gPiArIGJy ZWFrOwo+ID4gKyB9Owo+ID4gKwo+ID4gKyB0eF9yaW5nLT50eF9lbnRyeSA9IHJ0ZV9jYWxsb2Mo Im5ibF90eF9lbnRyeSIsCj4gPiArIHBhcmFtLT5uYl9kZXNjLCBzaXplb2YoKnR4X3JpbmctPnR4 X2VudHJ5KSwgMCk7Cj4gPiArIGlmICghdHhfcmluZy0+dHhfZW50cnkpIHsKPiA+ICsgTkJMX0xP RyhFUlIsICJhbGxvY2F0ZSB0eCBxdWV1ZSAlZCBzb2Z0d2FyZSByaW5nIGZhaWxlZCIsIHBhcmFt LT5xdWV1ZV9pZHgpOwo+ID4gKyBnb3RvIGFsbG9jX3R4X2VudHJ5X2ZhaWxlZDsKPiA+ICsgfQo+ ID4gKwo+ID4gKyAvKiBBbGxvYyB0d2ljZSBtZW1vcnksIGFuZCBzZWNvbmQgaGFsZiBpcyB1c2Vk IHRvIGJhY2sgdXAgdGhlIGRlc2MgZm9yIGRlc2MgY2hlY2tpbmcgKi8KPiA+ICsgc2l6ZSA9IFJU RV9BTElHTl9DRUlMKHNpemVvZih0eF9yaW5nLT5kZXNjWzBdKSAqIHBhcmFtLT5uYl9kZXNjLCA0 MDk2KTsKPiA+ICsgbWVtem9uZSA9IHJ0ZV9ldGhfZG1hX3pvbmVfcmVzZXJ2ZShldGhfZGV2LCAi dHhfcmluZyIsIHBhcmFtLT5xdWV1ZV9pZHgsCj4gPiArIHNpemUsIFJURV9DQUNIRV9MSU5FX1NJ WkUsCj4gPiArIHBhcmFtLT5zb2NrZXRfaWQpOwo+ID4gKyBpZiAobWVtem9uZSA9PSBOVUxMKSB7 Cj4gPiArIE5CTF9MT0coRVJSLCAicmVzZXJ2ZSBkbWEgem9uZSBmb3IgdHggcmluZyBmYWlsZWQi KTsKPiA+ICsgZ290byBhbGxvY19kbWFfem9uZV9mYWlsZWQ7Cj4gPiArIH0KPiA+ICsKPiA+ICsg LyogaWYgaGFzIG5vIG1lbW9yeSB0byBwdXQgZXh0ZW5kIGhlYWRlciwgYXBwbHkgZm9yIG5ldyBt ZW1vcnkgKi8KPiA+ICsgc2l6ZSA9IHBhcmFtLT5uYl9kZXNjICogTkJMX1RYX0hFQURFUl9MRU47 Cj4gPiArIHNucHJpbnRmKHZxX2hkcl9uYW1lLCBzaXplb2YodnFfaGRyX25hbWUpLCAicG9ydCVk X3ZxJWRfaGRyIiwKPiA+ICsgZXRoX2Rldi0+ZGF0YS0+cG9ydF9pZCwgcGFyYW0tPnF1ZXVlX2lk eCk7Cj4gPiArIG5ldF9oZHJfbXogPSBydGVfbWVtem9uZV9yZXNlcnZlX2FsaWduZWQodnFfaGRy X25hbWUsIHNpemUsCj4gPiArIHBhcmFtLT5zb2NrZXRfaWQsCj4gPiArIFJURV9NRU1aT05FX0lP VkFfQ09OVElHLAo+ID4gKyBSVEVfQ0FDSEVfTElORV9TSVpFKTsKPiA+ICsgaWYgKG5ldF9oZHJf bXogPT0gTlVMTCkgewo+ID4gKyBpZiAocnRlX2Vycm5vID09IEVFWElTVCkKPiA+ICsgbmV0X2hk cl9teiA9IHJ0ZV9tZW16b25lX2xvb2t1cCh2cV9oZHJfbmFtZSk7Cj4gPiArIGlmIChuZXRfaGRy X216ID09IE5VTEwpIHsKPiA+ICsgTkJMX0xPRyhFUlIsICJyZXNlcnZlIG5ldF9oZHJfbXogZG1h IHpvbmUgZm9yIHR4IHJpbmcgZmFpbGVkIik7Cj4gPiArIGdvdG8gcmVzZXJ2ZV9uZXRfaGRyX216 X2ZhaWxlZDsKPiA+ICsgfQo+ID4gKyB9Cj4gPiArCj4gPiArIHR4X3JpbmctPnByb2R1Y3QgPSBw YXJhbS0+cHJvZHVjdDsKPiA+ICsgdHhfcmluZy0+bmJfZGVzYyA9IHBhcmFtLT5uYl9kZXNjOwo+ ID4gKyB0eF9yaW5nLT52cV9mcmVlX2NudCA9IHBhcmFtLT5uYl9kZXNjOwo+ID4gKyB0eF9yaW5n LT5xdWV1ZV9pZCA9IHBhcmFtLT5xdWV1ZV9pZHg7Cj4gPiArIHR4X3JpbmctPm5vdGlmeV9xaWQg PQo+ID4gKyAocmVzX21ndC0+cmVzX2luZm8uYmFzZV9xaWQgKyB0eHJ4X21ndC0+cXVldWVfb2Zm c2V0ICsgcGFyYW0tPnF1ZXVlX2lkeCkgKiAyICsgMTsKPiA+ICsgdHhfcmluZy0+cmluZ19waHlz X2FkZHIgPSAodTY0KU5CTF9ETUFfQURERVJTU19GVUxMX1RSQU5TTEFURShjb21tb24sIG1lbXpv bmUtPmlvdmEpOwo+ID4gKyB0eF9yaW5nLT5hdmFpbF91c2VkX2ZsYWdzID0gQklUKE5CTF9QQUNL RURfREVTQ19GX0FWQUlMKTsKPiA+ICsgdHhfcmluZy0+dXNlZF93cmFwX2NvdW50ZXIgPSAxOwo+ ID4gKyB0eF9yaW5nLT5uZXh0X3RvX2NsZWFuID0gTkJMX1RYX1JTX1RIUkVTSCAtIDE7Cj4gPiAr IHR4X3JpbmctPm5leHRfdG9fdXNlID0gMDsKPiA+ICsgdHhfcmluZy0+ZGVzYyA9IChzdHJ1Y3Qg bmJsX3BhY2tlZF9kZXNjICopbWVtem9uZS0+YWRkcjsKPiA+ICsgdHhfcmluZy0+bmV0X2hkcl9t eiA9IG5ldF9oZHJfbXo7Cj4gPiArIHR4X3JpbmctPmV0aF9kZXYgPSBldGhfZGV2Owo+ID4gKyB0 eF9yaW5nLT5kbWFfc2V0X21zYiA9IGNvbW1vbi0+ZG1hX3NldF9tc2I7Cj4gPiArIHR4X3Jpbmct PmRtYV9saW1pdF9tc2IgPSBjb21tb24tPmRtYV9saW1pdF9tc2I7Cj4gPiArIHR4X3JpbmctPm5v dGlmeSA9IHBoeV9vcHMtPmdldF90YWlsX3B0cihOQkxfUkVTX01HVF9UT19QSFlfUFJJVihyZXNf bWd0KSk7Cj4gPiArIHR4X3JpbmctPm9mZmxvYWRzID0gb2ZmbG9hZHM7Cj4gPiArIHR4X3Jpbmct PmNvbW1vbiA9IGNvbW1vbjsKPiA+ICsKPiA+ICsgZXRoX2Rldi0+ZGF0YS0+dHhfcXVldWVzW3Bh cmFtLT5xdWV1ZV9pZHhdID0gdHhfcmluZzsKPiA+ICsKPiA+ICsgdHhyeF9tZ3QtPnR4X3Jpbmdz W3BhcmFtLT5xdWV1ZV9pZHhdID0gdHhfcmluZzsKPiA+ICsgdHhyeF9tZ3QtPnR4X3JpbmdfbnVt Kys7Cj4gPiArCj4gPiArICpkbWFfYWRkciA9IHR4X3JpbmctPnJpbmdfcGh5c19hZGRyOwo+ID4g Kwo+ID4gcmV0dXJuIDA7Cj4gPiArCj4gPiArcmVzZXJ2ZV9uZXRfaGRyX216X2ZhaWxlZDoKPiA+ ICsgcnRlX21lbXpvbmVfZnJlZShtZW16b25lKTsKPiA+ICthbGxvY19kbWFfem9uZV9mYWlsZWQ6 Cj4gPiArIHJ0ZV9mcmVlKHR4X3JpbmctPnR4X2VudHJ5KTsKPiA+ICsgdHhfcmluZy0+dHhfZW50 cnkgPSBOVUxMOwo+ID4gKyB0eF9yaW5nLT5zaXplID0gMDsKPiA+ICthbGxvY190eF9lbnRyeV9m YWlsZWQ6Cj4gPiArIHJ0ZV9mcmVlKHR4X3JpbmcpOwo+ID4gKyByZXR1cm4gLUVOT01FTTsKPiA+ IH0KPiA+Cj4gPiAtc3RhdGljIGludCBuYmxfcmVzX2FsbG9jX3J4X2J1ZnModm9pZCAqcHJpdiwg dTE2IHF1ZXVlX2lkeCkKPiA+ICtzdGF0aWMgdm9pZCBuYmxfcmVzX3R4cnhfc3RvcF9yeF9yaW5n KHZvaWQgKnByaXYsIHUxNiBxdWV1ZV9pZHgpCj4gPiB7Cj4gPiAtIFJURV9TRVRfVVNFRChwcml2 KTsKPiA+IC0gUlRFX1NFVF9VU0VEKHF1ZXVlX2lkeCk7Cj4gPiArIHN0cnVjdCBuYmxfcmVzb3Vy Y2VfbWd0ICpyZXNfbWd0ID0gKHN0cnVjdCBuYmxfcmVzb3VyY2VfbWd0ICopcHJpdjsKPiA+ICsg c3RydWN0IG5ibF9yZXNfcnhfcmluZyAqcnhfcmluZyA9Cj4gPiArIE5CTF9SRVNfTUdUX1RPX1JY X1JJTkcocmVzX21ndCwgcXVldWVfaWR4KTsKPiA+ICsgdTE2IGk7Cj4gPiArCj4gPiArIGlmICgh cnhfcmluZykKPiA+ICsgcmV0dXJuOwo+ID4gKyBpZiAocnhfcmluZy0+cnhfZW50cnkgIT0gTlVM TCkgewo+ID4gKyBmb3IgKGkgPSAwOyBpIDwgcnhfcmluZy0+bmJfZGVzYzsgaSsrKSB7Cj4gPiAr IGlmIChyeF9yaW5nLT5yeF9lbnRyeVtpXS5tYnVmICE9IE5VTEwpIHsKPiA+ICsgcnRlX3BrdG1i dWZfZnJlZV9zZWcocnhfcmluZy0+cnhfZW50cnlbaV0ubWJ1Zik7Cj4gPiArIHJ4X3JpbmctPnJ4 X2VudHJ5W2ldLm1idWYgPSBOVUxMOwo+ID4gKyB9Cj4gPiArIHJ4X3JpbmctPmRlc2NbaV0uZmxh Z3MgPSAwOwo+ID4gKyB9Cj4gPiArCj4gPiArIGZvciAoaSA9IHJ4X3JpbmctPm5iX2Rlc2M7IGkg PCByeF9yaW5nLT5uYl9kZXNjICsgTkJMX0RFU0NfUEVSX0xPT1BfVkVDX01BWDsgaSsrKQo+ID4g KyByeF9yaW5nLT5kZXNjW2ldLmZsYWdzID0gMDsKPiA+ICsgfQo+ID4gKwo+ID4gKyByeF9yaW5n LT5uZXh0X3RvX2NsZWFuID0gMDsKPiA+ICsgcnhfcmluZy0+bmV4dF90b191c2UgPSAwOwo+ID4g K30KPiA+ICsKPiA+ICtzdGF0aWMgaW50IG5ibF9yZXNfdHhyeF9zdGFydF9yeF9yaW5nKHZvaWQg KnByaXYsCj4gPiArIHN0cnVjdCBuYmxfc3RhcnRfcnhfcmluZ19wYXJhbSAqcGFyYW0sCj4gPiAr IHU2NCAqZG1hX2FkZHIpCj4gPiArewo+ID4gKyBzdHJ1Y3QgbmJsX3Jlc291cmNlX21ndCAqcmVz X21ndCA9IChzdHJ1Y3QgbmJsX3Jlc291cmNlX21ndCAqKXByaXY7Cj4gPiArIHN0cnVjdCBuYmxf dHhyeF9tZ3QgKnR4cnhfbWd0ID0gTkJMX1JFU19NR1RfVE9fVFhSWF9NR1QocmVzX21ndCk7Cj4g PiArIHN0cnVjdCBuYmxfcmVzX3J4X3JpbmcgKnJ4X3JpbmcgPSBOQkxfUkVTX01HVF9UT19SWF9S SU5HKHJlc19tZ3QsIHBhcmFtLT5xdWV1ZV9pZHgpOwo+ID4gKyBzdHJ1Y3QgcnRlX2V0aF9kZXYg KmV0aF9kZXYgPSBOQkxfUkVTX01HVF9UT19FVEhfREVWKHJlc19tZ3QpOwo+ID4gKyBzdHJ1Y3Qg bmJsX3BoeV9vcHMgKnBoeV9vcHMgPSBOQkxfUkVTX01HVF9UT19QSFlfT1BTKHJlc19tZ3QpOwo+ ID4gKyBzdHJ1Y3QgbmJsX2NvbW1vbl9pbmZvICpjb21tb24gPSBOQkxfUkVTX01HVF9UT19DT01N T04ocmVzX21ndCk7Cj4gPiArIGNvbnN0IHN0cnVjdCBydGVfbWVtem9uZSAqbWVtem9uZTsKPiA+ ICsgdTMyIHNpemU7Cj4gPiArCj4gPiArIGlmIChldGhfZGV2LT5kYXRhLT5yeF9xdWV1ZXNbcGFy YW0tPnF1ZXVlX2lkeF0gIT0gTlVMTCkgewo+ID4gKyBOQkxfTE9HKFdBUk5JTkcsICJyZS1zZXR1 cCBhbiBhbHJlYWR5IGFsbG9jYXRlZCByeCBxdWV1ZSIpOwo+ID4gKyBuYmxfcmVzX3R4cnhfc3Rv cF9yeF9yaW5nKHByaXYsIHBhcmFtLT5xdWV1ZV9pZHgpOwo+ID4gKyBldGhfZGV2LT5kYXRhLT5y eF9xdWV1ZXNbcGFyYW0tPnF1ZXVlX2lkeF0gPSBOVUxMOwo+ID4gKyB9Cj4gPiArCj4gPiArIHJ4 X3JpbmcgPSBydGVfem1hbGxvY19zb2NrZXQoIm5ibF9yeHJpbmciLCBzaXplb2YoKnJ4X3Jpbmcp LAo+ID4gKyBSVEVfQ0FDSEVfTElORV9TSVpFLCBwYXJhbS0+c29ja2V0X2lkKTsKPiA+ICsgaWYg KHJ4X3JpbmcgPT0gTlVMTCkgewo+ID4gKyBOQkxfTE9HKEVSUiwgImFsbG9jYXRlIHJ4IHF1ZXVl IGRhdGEgc3RydWN0dXJlIGZhaWxlZCIpOwo+ID4gKyByZXR1cm4gLUVOT01FTTsKPiA+ICsgfQo+ ID4gKwo+ID4gKyBzaXplID0gc2l6ZW9mKHJ4X3JpbmctPnJ4X2VudHJ5WzBdKSAqIChwYXJhbS0+ bmJfZGVzYyArIE5CTF9ERVNDX1BFUl9MT09QX1ZFQ19NQVgpOwo+ID4gKyByeF9yaW5nLT5yeF9l bnRyeSA9IHJ0ZV96bWFsbG9jX3NvY2tldCgicnhxIHJ4X2VudHJ5Iiwgc2l6ZSwKPiA+ICsgUlRF X0NBQ0hFX0xJTkVfU0laRSwKPiA+ICsgcGFyYW0tPnNvY2tldF9pZCk7Cj4gPiArIGlmIChyeF9y aW5nLT5yeF9lbnRyeSA9PSBOVUxMKSB7Cj4gPiArIE5CTF9MT0coRVJSLCAiYWxsb2NhdGUgcngg cXVldWUgJWQgc29mdHdhcmUgcmluZyBmYWlsZWQiLCBwYXJhbS0+cXVldWVfaWR4KTsKPiA+ICsg Z290byBhbGxvY19yeF9lbnRyeV9mYWlsZWQ7Cj4gPiArIH0KPiA+ICsKPiA+ICsgc2l6ZSA9IHNp emVvZihyeF9yaW5nLT5kZXNjWzBdKSAqIChwYXJhbS0+bmJfZGVzYyArIE5CTF9ERVNDX1BFUl9M T09QX1ZFQ19NQVgpOwo+ID4gKyBtZW16b25lID0gcnRlX2V0aF9kbWFfem9uZV9yZXNlcnZlKGV0 aF9kZXYsICJyeF9yaW5nIiwgcGFyYW0tPnF1ZXVlX2lkeCwKPiA+ICsgc2l6ZSwgUlRFX0NBQ0hF X0xJTkVfU0laRSwKPiA+ICsgcGFyYW0tPnNvY2tldF9pZCk7Cj4gPiArIGlmIChtZW16b25lID09 IE5VTEwpIHsKPiA+ICsgTkJMX0xPRyhFUlIsICJyZXNlcnZlIGRtYSB6b25lIGZvciByeCByaW5n IGZhaWxlZCIpOwo+ID4gKyBnb3RvIGFsbG9jX2RtYV96b25lX2ZhaWxlZDsKPiA+ICsgfQo+ID4g Kwo+ID4gKyByeF9yaW5nLT5wcm9kdWN0ID0gcGFyYW0tPnByb2R1Y3Q7Cj4gPiArIHJ4X3Jpbmct Pm1lbXBvb2wgPSBwYXJhbS0+bWVtcG9vbDsKPiA+ICsgcnhfcmluZy0+bmJfZGVzYyA9IHBhcmFt LT5uYl9kZXNjOwo+ID4gKyByeF9yaW5nLT5xdWV1ZV9pZCA9IHBhcmFtLT5xdWV1ZV9pZHg7Cj4g PiArIHJ4X3JpbmctPm5vdGlmeV9xaWQgPQo+ID4gKyAocmVzX21ndC0+cmVzX2luZm8uYmFzZV9x aWQgKyB0eHJ4X21ndC0+cXVldWVfb2Zmc2V0ICsgcGFyYW0tPnF1ZXVlX2lkeCkgKiAyOwo+ID4g KyByeF9yaW5nLT5yaW5nX3BoeXNfYWRkciA9IE5CTF9ETUFfQURERVJTU19GVUxMX1RSQU5TTEFU RShjb21tb24sIG1lbXpvbmUtPmlvdmEpOwo+ID4gKyByeF9yaW5nLT5kZXNjID0gKHN0cnVjdCBu YmxfcGFja2VkX2Rlc2MgKiltZW16b25lLT5hZGRyOwo+ID4gKyByeF9yaW5nLT5wb3J0X2lkID0g ZXRoX2Rldi0+ZGF0YS0+cG9ydF9pZDsKPiA+ICsgcnhfcmluZy0+ZXRoX2RldiA9IGV0aF9kZXY7 Cj4gPiArIHJ4X3JpbmctPmRtYV9zZXRfbXNiID0gY29tbW9uLT5kbWFfc2V0X21zYjsKPiA+ICsg cnhfcmluZy0+ZG1hX2xpbWl0X21zYiA9IGNvbW1vbi0+ZG1hX2xpbWl0X21zYjsKPiA+ICsgcnhf cmluZy0+Y29tbW9uID0gY29tbW9uOwo+ID4gKyByeF9yaW5nLT5ub3RpZnkgPSBwaHlfb3BzLT5n ZXRfdGFpbF9wdHIoTkJMX1JFU19NR1RfVE9fUEhZX1BSSVYocmVzX21ndCkpOwo+ID4gKwo+ID4g KyBzd2l0Y2ggKHBhcmFtLT5wcm9kdWN0KSB7Cj4gPiArIGNhc2UgTkJMX0xFT05JU19UWVBFOgo+ ID4gKyByeF9yaW5nLT5leHRoZHJfbGVuID0gc2l6ZW9mKHN0cnVjdCBuYmxfcnhfZWhkcl9sZW9u aXMpOwo+ID4gKyBicmVhazsKPiA+ICsgZGVmYXVsdDoKPiA+ICsgcnhfcmluZy0+ZXh0aGRyX2xl biA9IHNpemVvZih1bmlvbiBuYmxfcnhfZXh0ZW5kX2hlYWQpOwo+ID4gKyB9Owo+ID4gKwo+ID4g KyBldGhfZGV2LT5kYXRhLT5yeF9xdWV1ZXNbcGFyYW0tPnF1ZXVlX2lkeF0gPSByeF9yaW5nOwo+ ID4gKwo+ID4gKyB0eHJ4X21ndC0+cnhfcmluZ3NbcGFyYW0tPnF1ZXVlX2lkeF0gPSByeF9yaW5n Owo+ID4gKyB0eHJ4X21ndC0+cnhfcmluZ19udW0rKzsKPiA+ICsKPiA+ICsgKmRtYV9hZGRyID0g cnhfcmluZy0+cmluZ19waHlzX2FkZHI7Cj4gPiArCj4gPiByZXR1cm4gMDsKPiA+ICsKPiA+ICth bGxvY19kbWFfem9uZV9mYWlsZWQ6Cj4gPiArIHJ0ZV9mcmVlKHJ4X3JpbmctPnJ4X2VudHJ5KTsK PiA+ICsgcnhfcmluZy0+cnhfZW50cnkgPSBOVUxMOwo+ID4gKyByeF9yaW5nLT5zaXplID0gMDsK PiA+ICthbGxvY19yeF9lbnRyeV9mYWlsZWQ6Cj4gPiArIHJ0ZV9mcmVlKHJ4X3JpbmcpOwo+ID4g KyByZXR1cm4gLUVOT01FTTsKPiA+IH0KPiA+Cj4gPiAtc3RhdGljIHZvaWQgbmJsX3Jlc190eHJ4 X3N0b3BfcnhfcmluZyh2b2lkICpwcml2LCB1MTYgcXVldWVfaWR4KQo+ID4gK3N0YXRpYyBpbnQg bmJsX3Jlc19hbGxvY19yeF9idWZzKHZvaWQgKnByaXYsIHUxNiBxdWV1ZV9pZHgpCj4gPiB7Cj4g PiBSVEVfU0VUX1VTRUQocHJpdik7Cj4gPiBSVEVfU0VUX1VTRUQocXVldWVfaWR4KTsKPiA+ICsg cmV0dXJuIDA7Cj4gPiB9Cj4gPgo+ID4gc3RhdGljIHZvaWQgbmJsX3Jlc190eHJ4X3JlbGVhc2Vf cnhfcmluZyh2b2lkICpwcml2LCB1MTYgcXVldWVfaWR4KQo+ID4gewo+ID4gLSBSVEVfU0VUX1VT RUQocHJpdik7Cj4gPiAtIFJURV9TRVRfVVNFRChxdWV1ZV9pZHgpOwo+ID4gKyBzdHJ1Y3QgbmJs X3Jlc291cmNlX21ndCAqcmVzX21ndCA9IChzdHJ1Y3QgbmJsX3Jlc291cmNlX21ndCAqKXByaXY7 Cj4gPiArIHN0cnVjdCBuYmxfdHhyeF9tZ3QgKnR4cnhfbWd0ID0gTkJMX1JFU19NR1RfVE9fVFhS WF9NR1QocmVzX21ndCk7Cj4gPiArIHN0cnVjdCBuYmxfcmVzX3J4X3JpbmcgKnJ4X3JpbmcgPQo+ ID4gKyBOQkxfUkVTX01HVF9UT19SWF9SSU5HKHJlc19tZ3QsIHF1ZXVlX2lkeCk7Cj4gPiArIGlm ICghcnhfcmluZykKPiA+ICsgcmV0dXJuOwo+ID4gKwo+ID4gKyBydGVfZnJlZShyeF9yaW5nLT5y eF9lbnRyeSk7Cj4gPiArIHJ0ZV9mcmVlKHJ4X3JpbmcpOwo+ID4gKyB0eHJ4X21ndC0+cnhfcmlu Z3NbcXVldWVfaWR4XSA9IE5VTEw7Cj4gPiB9Cj4gPgo+ID4gc3RhdGljIHZvaWQgbmJsX3Jlc190 eHJ4X3VwZGF0ZV9yeF9yaW5nKHZvaWQgKnByaXYsIHUxNiBpbmRleCkKPiA+IEBAIC0xMDYsNyAr MzQ3LDcgQEAgZG8geyBcCj4gPiBOQkxfVFhSWF9TRVRfT1BTKHJlbW92ZV9yaW5ncywgbmJsX3Jl c190eHJ4X3JlbW92ZV9yaW5ncyk7IFwKPiA+IE5CTF9UWFJYX1NFVF9PUFMoc3RhcnRfdHhfcmlu ZywgbmJsX3Jlc190eHJ4X3N0YXJ0X3R4X3JpbmcpOyBcCj4gPiBOQkxfVFhSWF9TRVRfT1BTKHN0 b3BfdHhfcmluZywgbmJsX3Jlc190eHJ4X3N0b3BfdHhfcmluZyk7IFwKPiA+IC0gTkJMX1RYUlhf U0VUX09QUyhyZWxlYXNlX3R4X3JpbmcsIG5ibF9yZXNfdHhyeF9yZWxlYXNlX3R4cmluZyk7IFwK PiA+ICsgTkJMX1RYUlhfU0VUX09QUyhyZWxlYXNlX3R4X3JpbmcsIG5ibF9yZXNfdHhyeF9yZWxl YXNlX3R4X3JpbmcpOyBcCj4gPiBOQkxfVFhSWF9TRVRfT1BTKHN0YXJ0X3J4X3JpbmcsIG5ibF9y ZXNfdHhyeF9zdGFydF9yeF9yaW5nKTsgXAo+ID4gTkJMX1RYUlhfU0VUX09QUyhhbGxvY19yeF9i dWZzLCBuYmxfcmVzX2FsbG9jX3J4X2J1ZnMpOyBcCj4gPiBOQkxfVFhSWF9TRVRfT1BTKHN0b3Bf cnhfcmluZywgbmJsX3Jlc190eHJ4X3N0b3BfcnhfcmluZyk7IFwKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9uYmwvbmJsX2h3L25ibF90eHJ4LmggYi9kcml2ZXJzL25ldC9uYmwvbmJsX2h3 L25ibF90eHJ4LmgKPiA+IGluZGV4IDU2ZGJkM2M1ODcuLjgzNjk2ZGJjNzIgMTAwNjQ0Cj4gPiAt LS0gYS9kcml2ZXJzL25ldC9uYmwvbmJsX2h3L25ibF90eHJ4LmgKPiA+ICsrKyBiL2RyaXZlcnMv bmV0L25ibC9uYmxfaHcvbmJsX3R4cnguaAo+ID4gQEAgLTcsNCArNywxMDMgQEAKPiA+Cj4gPiAj aW5jbHVkZSAibmJsX3Jlc291cmNlLmgiCj4gPgo+ID4gKyNkZWZpbmUgTkJMX1BBQ0tFRF9ERVND X0ZfQVZBSUwgKDcpCj4gPiArI2RlZmluZSBOQkxfUEFDS0VEX0RFU0NfRl9VU0VEICgxNSkKPiA+ ICsjZGVmaW5lIE5CTF9WUklOR19ERVNDX0ZfTkVYVCAoMSA8PCAwKQo+ID4gKyNkZWZpbmUgTkJM X1ZSSU5HX0RFU0NfRl9XUklURSAoMSA8PCAxKQo+ID4gKwo+ID4gKyNkZWZpbmUgTkJMX1RYX1JT X1RIUkVTSCAoMzIpCj4gPiArI2RlZmluZSBOQkxfVFhfSEVBREVSX0xFTiAoMzIpCj4gPiArI2Rl ZmluZSBOQkxfVlFfSERSX05BTUVfTUFYU0laRSAoMzIpCj4gPiArCj4gPiArI2RlZmluZSBOQkxf REVTQ19QRVJfTE9PUF9WRUNfTUFYICg4KQo+ID4gKwo+ID4gK3VuaW9uIG5ibF90eF9leHRlbmRf aGVhZCB7Cj4gPiArIHN0cnVjdCBuYmxfdHhfZWhkcl9sZW9uaXMgewo+ID4gKyAvKiBEVzAgKi8K PiA+ICsgdTMyIG1hY19sZW4gOjU7Cj4gPiArIHUzMiBpcF9sZW4gOjU7Cj4gPiArIHUzMiBsNF9s ZW4gOjQ7Cj4gPiArIHUzMiBsNF90eXBlIDoyOwo+ID4gKyB1MzIgaW5uZXJfaXBfdHlwZSA6MjsK PiA+ICsgdTMyIGV4dGVybmFsX2lwX3R5cGUgOjI7Cj4gPiArIHUzMiBleHRlcm5hbF9pcF9sZW4g OjU7Cj4gPiArIHUzMiBsNF90dW5uZWxfdHlwZSA6MjsKPiA+ICsgdTMyIGw0X3R1bm5lbF9sZW4g OjU7Cj4gPiArIC8qIERXMSAqLwo+ID4gKyB1MzIgbDRzX3NpZCA6MTA7Cj4gPiArIHUzMiBsNHNf c3luY19pbmQgOjE7Cj4gPiArIHUzMiBsNHNfcmVkdW5faW5kIDoxOwo+ID4gKyB1MzIgbDRzX3Jl ZHVuX2hlYWRfaW5kIDoxOwo+ID4gKyB1MzIgbDRzX2hkbF9pbmQgOjE7Cj4gPiArIHUzMiBsNHNf cGJyYWNfbW9kZSA6MTsKPiA+ICsgdTMyIHJzdjAgOjI7Cj4gPiArIHUzMiBtc3MgOjE0Owo+ID4g KyB1MzIgdHNvIDoxOwo+ID4gKyAvKiBEVzIgKi8KPiA+ICsgLyogaWYgZHBvcnQgPSBOQkxfVFhf RFBPUlRfRVRIOyBkcG9ydF9pbmZvID0gMAo+ID4gKyAqIGlmIGRwb3J0ID0gTkJMX1RYX0RQT1JU X0hPU1Q7IGRwb3J0X2luZm8gPSBob3N0IHF1ZXVlIGlkCj4gPiArICogaWYgZHBvcnQgPSBOQkxf VFhfRFBPUlRfRUNQVTsgZHBvcnRfaW5mbyA9IGVjcHUgcXVldWVfaWQKPiA+ICsgKi8KPiA+ICsg dTMyIGRwb3J0X2luZm8gOjExOwo+ID4gKyAvKiBpZiBkcG9ydCA9IE5CTF9UWF9EUE9SVF9FVEg7 IGRwb3J0X2lkWzM6MF0gPSBldGggcG9ydCBpZCwgZHBvcnRfaWRbOTo0XSA9IGxhZyBpZAo+ID4g KyAqIGlmIGRwb3J0ID0gTkJMX1RYX0RQT1JUX0hPU1Q7IGRwb3J0X2lkWzk6MF0gPSBob3N0IHZz aV9pZAo+ID4gKyAqIGlmIGRwb3J0ID0gTkJMX1RYX0RQT1JUX0VDUFU7IGRwb3J0X2lkWzk6MF0g PSBlY3B1IHZzaV9pZAo+ID4gKyAqLwo+ID4gKyB1MzIgZHBvcnRfaWQgOjEwOwo+ID4gKyNkZWZp bmUgTkJMX1RYX0RQT1JUX0lEX0xBR19PRlRfTEVPTklTICg0KQo+ID4gKyB1MzIgZHBvcnQgOjM7 Cj4gPiArI2RlZmluZSBOQkxfVFhfRFBPUlRfRVRIICgwKQo+ID4gKyNkZWZpbmUgTkJMX1RYX0RQ T1JUX0hPU1QgKDEpCj4gPiArI2RlZmluZSBOQkxfVFhfRFBPUlRfRUNQVSAoMikKPiA+ICsjZGVm aW5lIE5CTF9UWF9EUE9SVF9FTVAgKDMpCj4gPiArI2RlZmluZSBOQkxfVFhfRFBPUlRfQk1DICg0 KQo+ID4gKyNkZWZpbmUgTkJMX1RYX0RQT1JUX0VNUF9EUkFDTyAoMikKPiA+ICsjZGVmaW5lIE5C TF9UWF9EUE9SVF9CTUNfRFJBQ08gKDMpCj4gPiArIHUzMiBmd2QgOjI7Cj4gPiArI2RlZmluZSBO QkxfVFhfRldEX1RZUEVfRFJPUCAoMCkKPiA+ICsjZGVmaW5lIE5CTF9UWF9GV0RfVFlQRV9OT1JN QUwgKDEpCj4gPiArI2RlZmluZSBOQkxfVFhfRldEX1RZUEVfUlNWICgyKQo+ID4gKyNkZWZpbmUg TkJMX1RYX0ZXRF9UWVBFX0NQVV9BU1NJR05FRCAoMykKPiA+ICsgdTMyIHJzc19sYWdfZW4gOjE7 Cj4gPiArIHUzMiBsNF9jc3VtX2VuIDoxOwo+ID4gKyB1MzIgbDNfY3N1bV9lbiA6MTsKPiA+ICsg dTMyIHJzdjEgOjM7Cj4gPiArIH0gbGVvbmlzOwo+ID4gK307Cj4gPiArCj4gPiArdW5pb24gbmJs X3J4X2V4dGVuZF9oZWFkIHsKPiA+ICsgc3RydWN0IG5ibF9yeF9laGRyX2xlb25pcyB7Cj4gPiAr IC8qIERXMCAqLwo+ID4gKyAvKiAweDA6ZXRoLCAweDE6aG9zdCwgMHgyOmVjcHUsIDB4MzplbXAs IDB4NDpiY20gKi8KPiA+ICsgdTMyIHNwb3J0IDozOwo+ID4gKyB1MzIgZHBvcnRfaW5mbyA6MTE7 Cj4gPiArIC8qIHNwb3J0ID0gMCwgc3BvcnRfaWRbMzowXSA9IGV0aCBpZCwKPiA+ICsgKiBzcG9y dCA9IDEsIHNwb3J0X2lkWzk6MF0gPSBob3N0IHZzaV9pZCwKPiA+ICsgKiBzcG9ydCA9IDIsIHNw b3J0X2lkWzk6MF0gPSBlY3B1IHZzaV9pZCwKPiA+ICsgKi8KPiA+ICsgdTMyIHNwb3J0X2lkIDox MDsKPiA+ICsgLyogMHgwOmRyb3AsIDB4MTpub3JtYWwsIDB4MjpjcHUgdXBjYWxsICovCj4gPiAr IHUzMiBmd2QgOjI7Cj4gPiArIHUzMiByc3YwIDo2Owo+ID4gKyAvKiBEVzEgKi8KPiA+ICsgdTMy IGVycm9yX2NvZGUgOjY7Cj4gPiArIHUzMiBwdHlwZSA6MTA7Cj4gPiArIHUzMiBwcm9maWxlX2lk IDo0Owo+ID4gKyB1MzIgY2hlY2tzdW1fc3RhdHVzIDoxOwo+ID4gKyB1MzIgcnN2MSA6MTsKPiA+ ICsgdTMyIGw0c19zaWQgOjEwOwo+ID4gKyAvKiBEVzIgKi8KPiA+ICsgdTMyIHJzdjMgOjI7Cj4g PiArIHUzMiBsNHNfaGRsX2luZCA6MTsKPiA+ICsgdTMyIGw0c190Y3Bfb2Zmc2V0IDoxNDsKPiA+ ICsgdTMyIGw0c19yZXN5bmNfaW5kIDoxOwo+ID4gKyB1MzIgbDRzX2NoZWNrX2luZCA6MTsKPiA+ ICsgdTMyIGw0c19kZWNfaW5kIDoxOwo+ID4gKyB1MzIgcnN2MiA6NDsKPiA+ICsgdTMyIG51bV9i dWZmZXJzIDo4Owo+ID4gKyB1MzIgaGFzaF92YWx1ZTsKPiA+ICsgfSBsZW9uaXM7Cj4gPiArfTsK PiA+ICsKPiA+ICNlbmRpZgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ibC9uYmxfaW5j bHVkZS9uYmxfZGVmX2NvbW1vbi5oIGIvZHJpdmVycy9uZXQvbmJsL25ibF9pbmNsdWRlL25ibF9k ZWZfY29tbW9uLmgKPiA+IGluZGV4IGY3NzRhZmJhMDAuLjI1OTE5MzMwZGYgMTAwNjQ0Cj4gPiAt LS0gYS9kcml2ZXJzL25ldC9uYmwvbmJsX2luY2x1ZGUvbmJsX2RlZl9jb21tb24uaAo+ID4gKysr IGIvZHJpdmVycy9uZXQvbmJsL25ibF9pbmNsdWRlL25ibF9kZWZfY29tbW9uLmgKPiA+IEBAIC03 OSw2ICs3OSwxMSBAQCBzdHJ1Y3QgbmJsX2Rldl91c2VyX2xpbmtfc3RhdCB7Cj4gPiAjZGVmaW5l IE5CTF9ERVZfVVNFUl9TRVRfUFJPTUlTQ19NT0RFIF9JTyhOQkxfREVWX1VTRVJfVFlQRSwgMTAp Cj4gPiAjZGVmaW5lIE5CTF9ERVZfVVNFUl9TRVRfTUNBU1RfTU9ERSBfSU8oTkJMX0RFVl9VU0VS X1RZUEUsIDExKQo+ID4KPiA+ICsjZGVmaW5lIE5CTF9ETUFfQURERVJTU19GVUxMX1RSQU5TTEFU RShodywgYWRkcmVzcykgXAo+IAo+IFR5cG86IEFEREVSU1MgLT4gQUREUkVTUz8KPiAKPiBUaGFu ayB5b3UuCj4gCj4gPiArICh7IHR5cGVvZihodykgX2h3ID0gKGh3KTsgXAo+ID4gKyAoKCgodTY0 KSgoX2h3KS0+ZG1hX3NldF9tc2IpKSA8PCAoKHU2NCkoKF9odyktPmRtYV9saW1pdF9tc2IpKSkg fCAoYWRkcmVzcykpOyBcCj4gPiArIH0pCj4gPiArCj4gPiBzdHJ1Y3QgbmJsX2RtYV9tZW0gewo+ ID4gdm9pZCAqdmE7Cj4gPiB1aW50NjRfdCBwYTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9uYmwvbmJsX2luY2x1ZGUvbmJsX2luY2x1ZGUuaCBiL2RyaXZlcnMvbmV0L25ibC9uYmxfaW5j bHVkZS9uYmxfaW5jbHVkZS5oCj4gPiBpbmRleCBlMTBmY2M5MjU0Li45NzRhNzk4MzVhIDEwMDY0 NAo+ID4gLS0tIGEvZHJpdmVycy9uZXQvbmJsL25ibF9pbmNsdWRlL25ibF9pbmNsdWRlLmgKPiA+ ICsrKyBiL2RyaXZlcnMvbmV0L25ibC9uYmxfaW5jbHVkZS9uYmxfaW5jbHVkZS5oCj4gPiBAQCAt OTEsNiArOTEsNyBAQCBzdHJ1Y3QgbmJsX3N0YXJ0X3R4X3JpbmdfcGFyYW0gewo+ID4gdTMyIHNv Y2tldF9pZDsKPiA+IGVudW0gbmJsX3Byb2R1Y3RfdHlwZSBwcm9kdWN0Owo+ID4gY29uc3Qgc3Ry dWN0IHJ0ZV9ldGhfdHhjb25mICpjb25mOwo+ID4gKyBib29sICgqYm9uZF9icm9hZGNhc3RfY2hl Y2spKHN0cnVjdCBydGVfbWJ1ZiAqbWJ1Zik7Cj4gPiB9Owo+ID4KPiA+IHN0cnVjdCBuYmxfdHhy eF9xdWV1ZV9wYXJhbSB7Cj4gPiAtLQo+ID4gMi4zNC4xCj4gPgo+ID4KPiAKPiAKPiDmnKzpgq7k u7bmiYDlkKvkv6Hmga/lj4rlhbbku7vkvZXpmYTku7bkuLrkv53lr4bkv6Hmga/kuJTlj6/og73l sZ7kuo7kuJPmnInkv6Hmga/jgILku7vkvZXpnZ7mjIflrprmjqXmlLbkurrlnYfml6DmnYPorr/p l67mnKzpgq7ku7bjgILlpoLmnpzmgqjkuI3mmK/or6Xpgq7ku7bnmoTmjIflrprmjqXmlLbkurrv vIzpgqPkuYjku7vkvZXlr7nmnKzpgq7ku7blhoXlrrnov5vooYzmiqvpnLLvvIzlpI3liLbmiJbk vb/nlKjnmoTooYzkuLrlnYfmmK/npoHmraLnmoTjgILlpoLmnpzmgqjkuI0KPiDmmK/or6Xpgq7k u7bnmoTmjIflrprmjqXmlLbkurrvvIzor7fmgqjnq4vljbPpgJrov4fpgq7ku7bpgJrnn6UgY29t cGxpYW5jZUBuZWJ1bGEtbWF0cml4LmNvbeW5tueri+WNs+WIoOmZpOaCqOmUmeivr+aOpeWPl+ea hOmCruS7tuOAggo+IFRoZSBpbmZvcm1hdGlvbiBpbiB0aGlzIG1lc3NhZ2UgYW5kIGFueSBhdHRh Y2htZW50cyBpcyBjb25maWRlbnRpYWwgYW5kIG1heSBiZSBwcml2aWxlZ2VkLiBBY2Nlc3MgdG8g dGhpcyBlbWFpbCBieSBhbnlvbmUgb3RoZXIgdGhhbiB0aGUgaW50ZW5kZWQgcmVjaXBpZW50IGlz IG5vdCBhdXRob3JpemVkLiBJZiB5b3UgYQo+IHJlIG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50 LCBkaXNjbG9zdXJlLCBjb3B5aW5nIG9yIHVzZSBvZiB0aGUgY29udGVudHMgb2YgdGhpcyBlbWFp bCBpcyBwcm9oaWJpdGVkLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50LCBw bGVhc2Ugbm90aWZ5IGNvbXBsaWFuY2VAbmVidWxhLW1hdHJpeC5jCj4gb20gaW1tZWRpYXRlbHkg YnkgZW1haWwsIGFuZCBwbGVhc2UgZGVzdHJveSB0aGUgZW1haWwgeW91IHJlY2VpdmVkIGluIGVy cm9yLgo+IAo+Cg== ------=ALIBOUNDARY_1991_7f16c251c700_68a296f8_dc705 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBjbGFzcz0iX19hbGl5dW5fZW1haWxfYm9keV9ibG9jayI+PGRpdiAgc3R5bGU9ImZvbnQt ZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpU0MtTGlnaHQsIFNpbVN1biI+PGRpdiAgc3R5 bGU9ImNsZWFyOiBib3RoOyI+PHNwYW4gIHN0eWxlPSJjb2xvcjogcmdiKDIzLCAyNiwgMjkpOyBm b250LWZhbWlseTogSGVsdmV0aWNhLCBUYWhvbWEsIEFyaWFsLCAnUGluZ0ZhbmcgU0MnLCAnSGly YWdpbm8gU2FucyBHQicsICdXZW5RdWFuWWkgTWljcm8gSGVpJywgJ01pY3Jvc29mdCBZYUhlaScs IOWui+S9kywgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyBmb250LXN0eWxlOiBub3JtYWw7 IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1h bDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGlnbjog c3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFj ZTogcHJlLXdyYXA7IHdvcmQtc3BhY2luZzogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1 LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVj b3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyBm bG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7Ij5IaSA8c3BhbiAgc3R5bGU9 ImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRp LCBTaW1TdW47IGZvbnQtc2l6ZTogMTRweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlh bnQtbGlnYXR1cmVzOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2Vp Z2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0 LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsg d29yZC1zcGFjaW5nOiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsg dGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLXN0eWxl OiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGluaXRpYWw7IGZsb2F0OiBub25lOyBk aXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsiPkl2YW48L3NwYW4+LDxiciAgc3R5bGU9ImJveC1z aXppbmc6IGJvcmRlci1ib3g7IGNvbG9yOiByZ2IoMjMsIDI2LCAyOSk7IGZvbnQtZmFtaWx5OiBI ZWx2ZXRpY2EsIFRhaG9tYSwgQXJpYWwsICdQaW5nRmFuZyBTQycsICdIaXJhZ2lubyBTYW5zIEdC JywgJ1dlblF1YW5ZaSBNaWNybyBIZWknLCAnTWljcm9zb2Z0IFlhSGVpJywg5a6L5L2TLCBzYW5z LXNlcmlmOyBmb250LXNpemU6IDE0cHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50 LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdo dDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBz dGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNl OiBwcmUtd3JhcDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0 cm9rZS13aWR0aDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRl eHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTog aW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyI+PC9zcGFuPjwvZGl2Pjxk aXYgIHN0eWxlPSJjbGVhcjogYm90aDsiPjxzcGFuICBzdHlsZT0iY29sb3I6IHJnYigyMywgMjYs IDI5KTsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgVGFob21hLCBBcmlhbCwgJ1BpbmdGYW5nIFND JywgJ0hpcmFnaW5vIFNhbnMgR0InLCAnV2VuUXVhbllpIE1pY3JvIEhlaScsICdNaWNyb3NvZnQg WWFIZWknLCDlrovkvZMsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsgZm9udC1zdHlsZTog bm9ybWFsOyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBz OiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IHRleHQt YWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hp dGUtc3BhY2U6IHByZS13cmFwOyB3b3JkLXNwYWNpbmc6IDBweDsgYmFja2dyb3VuZC1jb2xvcjog cmdiKDI1NSwgMjU1LCAyNTUpOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBpbml0aWFsOyB0 ZXh0LWRlY29yYXRpb24tc3R5bGU6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1jb2xvcjogaW5p dGlhbDsgZmxvYXQ6IG5vbmU7IGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyI+PGJyID48L3Nw YW4+PC9kaXY+PGRpdiAgc3R5bGU9ImNsZWFyOiBib3RoOyI+PHNwYW4gIHN0eWxlPSJjb2xvcjog cmdiKDIzLCAyNiwgMjkpOyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBUYWhvbWEsIEFyaWFsLCAn UGluZ0ZhbmcgU0MnLCAnSGlyYWdpbm8gU2FucyBHQicsICdXZW5RdWFuWWkgTWljcm8gSGVpJywg J01pY3Jvc29mdCBZYUhlaScsIOWui+S9kywgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyBm b250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12 YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5v cm1hbDsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3Jt OiBub25lOyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IHdvcmQtc3BhY2luZzogMHB4OyBiYWNrZ3Jv dW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6 IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9u LWNvbG9yOiBpbml0aWFsOyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7 Ij48c3BhbiAgc3R5bGU9Im1hcmdpbjogMHB4OyBwYWRkaW5nOiAwcHg7IGJvcmRlcjogMHB4OyBv dXRsaW5lOiAwcHg7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpU0MtTGlnaHQs IFNpbVN1bjsiPlRoYW5rIHlvdSBmb3IgeW91ciByZXZpZXcuPC9zcGFuPjwvc3Bhbj48L2Rpdj48 ZGl2ICBzdHlsZT0iY2xlYXI6IGJvdGg7Ij48c3BhbiAgc3R5bGU9ImZvbnQtZmFtaWx5OiBIZWx2 ZXRpY2EsIFRhaG9tYSwgQXJpYWwsICdQaW5nRmFuZyBTQycsICdIaXJhZ2lubyBTYW5zIEdCJywg J1dlblF1YW5ZaSBNaWNybyBIZWknLCAnTWljcm9zb2Z0IFlhSGVpJywg5a6L5L2TLCBzYW5zLXNl cmlmOyBjb2xvcjogcmdiKDIzLCAyNiwgMjkpOyBmb250LXNpemU6IDE0cHg7IGZvbnQtc3R5bGU6 IG5vcm1hbDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fw czogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0 LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdo aXRlLXNwYWNlOiBwcmUtd3JhcDsgd29yZC1zcGFjaW5nOiAwcHg7IGJhY2tncm91bmQtY29sb3I6 IHJnYigyNTUsIDI1NSwgMjU1KTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogaW5pdGlhbDsg dGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGlu aXRpYWw7IGZsb2F0OiBub25lOyBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsiPjxiciA+PC9z cGFuPjwvZGl2PjxkaXYgIHN0eWxlPSJjbGVhcjogYm90aDsiPjxzcGFuICBzdHlsZT0iZm9udC1m YW1pbHk6IEhlbHZldGljYSwgVGFob21hLCBBcmlhbCwgJ1BpbmdGYW5nIFNDJywgJ0hpcmFnaW5v IFNhbnMgR0InLCAnV2VuUXVhbllpIE1pY3JvIEhlaScsICdNaWNyb3NvZnQgWWFIZWknLCDlrovk vZMsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczog bm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0 ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsg dGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsgd29yZC1zcGFjaW5n OiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgdGV4dC1kZWNvcmF0 aW9uLXRoaWNrbmVzczogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBpbml0aWFsOyB0 ZXh0LWRlY29yYXRpb24tY29sb3I6IGluaXRpYWw7IGZsb2F0OiBub25lOyBjb2xvcjogcmdiKDAs IDE3NiwgODApOyBmb250LXN0eWxlOiBub3JtYWw7IGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50 OyI+PHNwYW4gIHN0eWxlPSJmb250LXN0eWxlOiBub3JtYWw7IGNvbG9yOiByZ2IoMCwgMTc2LCA4 MCk7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6 ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fw czogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0 LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdo aXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBy Z2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRl eHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0 aWFsOyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7Ij4mZ3Q7IFRoYXQg cnVsZXMgb3V0ICdSVEVfRVRIX1JYX09GRkxPQURfUlNTX0hBU0gnLCBidXQgdGhpcyBvZmZsb2Fk IGZsYWcgZG9lcyBub3Q8L3NwYW4+PGJyICBzdHlsZT0iZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJp YWwsIFNUSGVpdGksIFNpbVN1bjsgZm9udC1zaXplOiAxNHB4OyBmb250LXZhcmlhbnQtbGlnYXR1 cmVzOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7 IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0YXJ0OyB0 ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1h bDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0 aDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3Jh dGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsg dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyI+PHNwYW4gIHN0eWxlPSJmb250LXN0eWxl OiBub3JtYWw7IGNvbG9yOiByZ2IoMCwgMTc2LCA4MCk7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFy aWFsLCBTVEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0 dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAw OyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6 IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3Bh Y2luZzogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVj b3JhdGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlh bDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyBmbG9hdDogbm9uZTsgZGlzcGxheTog aW5saW5lICFpbXBvcnRhbnQ7Ij4mZ3Q7IGNvbnRyb2wgUlNTIGFzIGEgd2hvbGUuIEl0IG9ubHkg dGVsbHMgdGhlIGRyaXZlciB3aGV0aGVyIHRoZSBhcHBsaWNhdGlvbiB3YW50czwvc3Bhbj48YnIg IHN0eWxlPSJmb250LWZhbWlseTogVGFob21hLCBBcmlhbCwgU1RIZWl0aSwgU2ltU3VuOyBmb250 LXNpemU6IDE0cHg7IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50 LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsg b3JwaGFuczogMjsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJh bnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2lu ZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IGJhY2tncm91bmQtY29sb3I6 IHJnYigyNTUsIDI1NSwgMjU1KTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogaW5pdGlhbDsg dGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGlu aXRpYWw7Ij48c3BhbiAgc3R5bGU9ImZvbnQtc3R5bGU6IG5vcm1hbDsgY29sb3I6IHJnYigwLCAx NzYsIDgwKTsgZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJpYWwsIFNUSGVpdGksIFNpbVN1bjsgZm9u dC1zaXplOiAxNHB4OyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBub3JtYWw7IGZvbnQtdmFyaWFu dC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7 IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9u ZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd29yZC1zcGFjaW5nOiAwcHg7IGJhY2tncm91bmQtY29s b3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogaW5pdGlh bDsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tY29sb3I6 IGluaXRpYWw7IGZsb2F0OiBub25lOyBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsiPiZndDsg dG8gc2VlIFJTUyBoYXNoIHZhbHVlIHNldCBpbiB0aGUgc3BlY2lhbCBmaWVsZCBpbiByZWNlaXZl ZCBtYnVmcyBvciBub3QuPC9zcGFuPjxiciAgc3R5bGU9ImZvbnQtZmFtaWx5OiBUYWhvbWEsIEFy aWFsLCBTVEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0 dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAw OyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFydDsg dGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3Jt YWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lk dGg6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyB0ZXh0LWRlY29y YXRpb24tdGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IGluaXRpYWw7 IHRleHQtZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsiPjxiciAgc3R5bGU9ImZvbnQtZmFtaWx5 OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6ZTogMTRweDsgZm9udC12 YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250 LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFs aWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRl LXNwYWNlOiBub3JtYWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4 dC1zdHJva2Utd2lkdGg6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUp OyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tc3R5 bGU6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsiPjxzcGFuICBzdHls ZT0iZm9udC1zdHlsZTogbm9ybWFsOyBjb2xvcjogcmdiKDAsIDE3NiwgODApOyBmb250LWZhbWls eTogVGFob21hLCBBcmlhbCwgU1RIZWl0aSwgU2ltU3VuOyBmb250LXNpemU6IDE0cHg7IGZvbnQt dmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9u dC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGlnbjogc3RhcnQ7 IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9y bWFsOyB3b3JkLXNwYWNpbmc6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAy NTUpOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24t c3R5bGU6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsgZmxvYXQ6IG5v bmU7IGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyI+PHNwYW4gIHN0eWxlPSJmb250LXN0eWxl OiBub3JtYWw7IGNvbG9yOiByZ2IoMCwgMTc2LCA4MCk7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFy aWFsLCBTVEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0 dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAw OyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6 IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3Bh Y2luZzogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVj b3JhdGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlh bDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyBmbG9hdDogbm9uZTsgZGlzcGxheTog aW5saW5lICFpbXBvcnRhbnQ7Ij4mZ3Q7Jm5ic3A7PC9zcGFuPlJTUy9EQ0IvVk1EcSBpcyBjb250 cm9sbGVkIHZpYSAnZGV2X2NvbmYtJmd0O3J4bW9kZS5tcV9tb2RlJyBbMV0gYW5kIHRoaXMgaXMg bGlrZWx5PC9zcGFuPjxiciAgc3R5bGU9ImZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhl aXRpLCBTaW1TdW47IGZvbnQtc2l6ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9y bWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXIt c3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRl bnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93 czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsg YmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyB0ZXh0LWRlY29yYXRpb24tdGhp Y2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IGluaXRpYWw7IHRleHQtZGVj b3JhdGlvbi1jb2xvcjogaW5pdGlhbDsiPjxzcGFuICBzdHlsZT0iZm9udC1zdHlsZTogbm9ybWFs OyBjb2xvcjogcmdiKDAsIDE3NiwgODApOyBmb250LWZhbWlseTogVGFob21hLCBBcmlhbCwgU1RI ZWl0aSwgU2ltU3VuOyBmb250LXNpemU6IDE0cHg7IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5v cm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVy LXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRl eHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3b3JkLXNwYWNpbmc6IDBw eDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyB0ZXh0LWRlY29yYXRpb24t dGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IGluaXRpYWw7IHRleHQt ZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsgZmxvYXQ6IG5vbmU7IGRpc3BsYXk6IGlubGluZSAh aW1wb3J0YW50OyI+PHNwYW4gIHN0eWxlPSJmb250LXN0eWxlOiBub3JtYWw7IGNvbG9yOiByZ2Io MCwgMTc2LCA4MCk7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpLCBTaW1TdW47 IGZvbnQtc2l6ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZh cmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9y bWFsOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06 IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyBiYWNrZ3JvdW5k LWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGlu aXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNv bG9yOiBpbml0aWFsOyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7Ij4m Z3Q7Jm5ic3A7PC9zcGFuPm5vdCBjaGVja2VkIGJ5ICdydGVfZXRoX2Rldl9jb25maWd1cmUnLiBT YXksIHRoZSB1c2VyIHJ1bnMgJ3Rlc3RwbWQnIGFuZCBhc2tzIHRvPC9zcGFuPjxiciAgc3R5bGU9 ImZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6ZTog MTRweDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczog bm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5z OiAyOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06 IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7 IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1 NSwgMjU1LCAyNTUpOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRl Y29yYXRpb24tc3R5bGU6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsi PjxzcGFuICBzdHlsZT0iZm9udC1zdHlsZTogbm9ybWFsOyBjb2xvcjogcmdiKDAsIDE3NiwgODAp OyBmb250LWZhbWlseTogVGFob21hLCBBcmlhbCwgU1RIZWl0aSwgU2ltU3VuOyBmb250LXNpemU6 IDE0cHg7IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6 IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1h bGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0 ZS1zcGFjZTogbm9ybWFsOyB3b3JkLXNwYWNpbmc6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdi KDI1NSwgMjU1LCAyNTUpOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0 LWRlY29yYXRpb24tc3R5bGU6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlh bDsgZmxvYXQ6IG5vbmU7IGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyI+PHNwYW4gIHN0eWxl PSJmb250LXN0eWxlOiBub3JtYWw7IGNvbG9yOiByZ2IoMCwgMTc2LCA4MCk7IGZvbnQtZmFtaWx5 OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6ZTogMTRweDsgZm9udC12 YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250 LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0LWFsaWduOiBzdGFydDsg dGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3Jt YWw7IHdvcmQtc3BhY2luZzogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1 NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1z dHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyBmbG9hdDogbm9u ZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7Ij4mZ3Q7Jm5ic3A7PC9zcGFuPmVuYWJsZSBE Q0IgWzJdLiBXaWxsIHRoZSBjb21tYW5kIGJlIGFjY2VwdGVkIHNpbGVudGx5IG9yIHJlamVjdGVk Pzwvc3Bhbj48L3NwYW4+PHNwYW4gIHN0eWxlPSJmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtZmFt aWx5OiBIZWx2ZXRpY2EsIFRhaG9tYSwgQXJpYWwsICdQaW5nRmFuZyBTQycsICdIaXJhZ2lubyBT YW5zIEdCJywgJ1dlblF1YW5ZaSBNaWNybyBIZWknLCAnTWljcm9zb2Z0IFlhSGVpJywg5a6L5L2T LCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5v cm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVy LXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRl eHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7IHdvcmQtc3BhY2luZzog MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlv bi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4 dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyBmbG9hdDogbm9uZTsgY29sb3I6IHJnYigwLCAw LCAwKTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7Ij48YnIgIHN0eWxlPSJmb250LWZhbWls eTogVGFob21hLCBBcmlhbCwgU1RIZWl0aSwgU2ltU3VuOyBmb250LXNpemU6IDE0cHg7IGZvbnQt dmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9u dC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogMjsgdGV4dC1h bGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0 ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRl eHQtc3Ryb2tlLXdpZHRoOiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1 KTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLXN0 eWxlOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGluaXRpYWw7Ij48YnIgIHN0eWxl PSJmb250LWZhbWlseTogVGFob21hLCBBcmlhbCwgU1RIZWl0aSwgU2ltU3VuOyBmb250LXNpemU6 IDE0cHg7IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6 IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFu czogMjsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3Jt OiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4 OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigy NTUsIDI1NSwgMjU1KTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogaW5pdGlhbDsgdGV4dC1k ZWNvcmF0aW9uLXN0eWxlOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGluaXRpYWw7 Ij48c3BhbiAgc3R5bGU9ImZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIFRhaG9tYSwgQXJpYWwsICdQ aW5nRmFuZyBTQycsICdIaXJhZ2lubyBTYW5zIEdCJywgJ1dlblF1YW5ZaSBNaWNybyBIZWknLCAn TWljcm9zb2Z0IFlhSGVpJywg5a6L5L2TLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7IGZv bnQtdmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsg Zm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGlnbjogc3Rh cnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTog cHJlLXdyYXA7IHdvcmQtc3BhY2luZzogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAy NTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3Jh dGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyBmbG9h dDogbm9uZTsgY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1zdHlsZTogbm9ybWFsOyBkaXNwbGF5 OiBpbmxpbmUgIWltcG9ydGFudDsiPlRoYW5rIHlvdSBmb3IgdGhlIHJlbWluZGVyLiBJ4oCZbGwg bWFrZSBzdXJlIHRvIGNoZWNrIGRldl9jb25mLSZndDtyeG1vZGUubXFfbW9kZSBpbiB0aGUgZHJp dmVyIGFuZCBhZGRyZXNzIHRoaXMgaW4gdGhlIG5leHQgcGF0Y2ggdjUuPGJyID48L3NwYW4+PC9z cGFuPjwvZGl2PjxkaXYgIHN0eWxlPSJjbGVhcjogYm90aDsiPjxiciA+PC9kaXY+PGRpdiAgc3R5 bGU9ImNsZWFyOiBib3RoOyI+PHNwYW4gIHN0eWxlPSJjb2xvcjogcmdiKDAsIDE3NiwgODApOyBm b250LXN0eWxlOiBub3JtYWw7Ij48c3BhbiAgc3R5bGU9ImZvbnQtc3R5bGU6IG5vcm1hbDsgY29s b3I6IHJnYigwLCAxNzYsIDgwKTsgZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJpYWwsIFNUSGVpdGks IFNpbVN1bjsgZm9udC1zaXplOiAxNHB4OyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBub3JtYWw7 IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFj aW5nOiBub3JtYWw7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRy YW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd29yZC1zcGFjaW5nOiAwcHg7IGJh Y2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNr bmVzczogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBpbml0aWFsOyB0ZXh0LWRlY29y YXRpb24tY29sb3I6IGluaXRpYWw7IGZsb2F0OiBub25lOyBkaXNwbGF5OiBpbmxpbmUgIWltcG9y dGFudDsiPjxzcGFuICBzdHlsZT0iZm9udC1zdHlsZTogbm9ybWFsOyBjb2xvcjogcmdiKDAsIDE3 NiwgODApOyBmb250LWZhbWlseTogVGFob21hLCBBcmlhbCwgU1RIZWl0aSwgU2ltU3VuOyBmb250 LXNpemU6IDE0cHg7IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50 LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsg dGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25l OyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3b3JkLXNwYWNpbmc6IDBweDsgYmFja2dyb3VuZC1jb2xv cjogcmdiKDI1NSwgMjU1LCAyNTUpOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBpbml0aWFs OyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1jb2xvcjog aW5pdGlhbDsgZmxvYXQ6IG5vbmU7IGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyI+Jmd0OyZu YnNwOzwvc3Bhbj5BbmQgeWV0LCBwYXRjaCBbM10gYW5ub3VuY2VzIHN1cHBvcnQgZm9yIFJTUy4g SSBkb24ndCBtZWFuIHRvIGJlIG1lYW4gb3IgcGlja3ksPC9zcGFuPjxiciAgc3R5bGU9ImZvbnQt ZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6ZTogMTRweDsg Zm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFs OyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0 ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7 IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJr aXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1 LCAyNTUpOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRp b24tc3R5bGU6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsiPjxzcGFu ICBzdHlsZT0iZm9udC1zdHlsZTogbm9ybWFsOyBjb2xvcjogcmdiKDAsIDE3NiwgODApOyBmb250 LWZhbWlseTogVGFob21hLCBBcmlhbCwgU1RIZWl0aSwgU2ltU3VuOyBmb250LXNpemU6IDE0cHg7 IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1h bDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGlnbjog c3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFj ZTogbm9ybWFsOyB3b3JkLXNwYWNpbmc6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwg MjU1LCAyNTUpOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29y YXRpb24tc3R5bGU6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsgZmxv YXQ6IG5vbmU7IGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyI+PHNwYW4gIHN0eWxlPSJmb250 LXN0eWxlOiBub3JtYWw7IGNvbG9yOiByZ2IoMCwgMTc2LCA4MCk7IGZvbnQtZmFtaWx5OiBUYWhv bWEsIEFyaWFsLCBTVEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6ZTogMTRweDsgZm9udC12YXJpYW50 LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdo dDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1p bmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdv cmQtc3BhY2luZzogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRl eHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTog aW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyBmbG9hdDogbm9uZTsgZGlz cGxheTogaW5saW5lICFpbXBvcnRhbnQ7Ij4mZ3Q7Jm5ic3A7PC9zcGFuPmJ1dCBwZXJoYXBzIGl0 IG1ha2VzIHNlbnNlIHRvIGV4cGxhaW4gdGhhdCB0aGlzIGlzIGxpbWl0ZWQgc3VwcG9ydCBmb3Ig bm93LCB0aGF0PC9zcGFuPjxiciAgc3R5bGU9ImZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBT VEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczog bm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0 ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1p bmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdp ZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBw eDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyB0ZXh0LWRlY29yYXRpb24t dGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IGluaXRpYWw7IHRleHQt ZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsiPjxzcGFuICBzdHlsZT0iZm9udC1zdHlsZTogbm9y bWFsOyBjb2xvcjogcmdiKDAsIDE3NiwgODApOyBmb250LWZhbWlseTogVGFob21hLCBBcmlhbCwg U1RIZWl0aSwgU2ltU3VuOyBmb250LXNpemU6IDE0cHg7IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6 IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0 dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7 IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3b3JkLXNwYWNpbmc6 IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyB0ZXh0LWRlY29yYXRp b24tdGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IGluaXRpYWw7IHRl eHQtZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsgZmxvYXQ6IG5vbmU7IGRpc3BsYXk6IGlubGlu ZSAhaW1wb3J0YW50OyI+PHNwYW4gIHN0eWxlPSJmb250LXN0eWxlOiBub3JtYWw7IGNvbG9yOiBy Z2IoMCwgMTc2LCA4MCk7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpLCBTaW1T dW47IGZvbnQtc2l6ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250 LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzog bm9ybWFsOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zv cm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyBiYWNrZ3Jv dW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6 IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9u LWNvbG9yOiBpbml0aWFsOyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7 Ij4mZ3Q7Jm5ic3A7PC9zcGFuPmp1c3Qgc3ByYXlzIHBhY2tldHMgYnV0IGlzIG5vdCB5ZXQgY29u ZmlndXJhYmxlIGJ5IHVzZXIuIFdoYXQgZG8geW91IHRoaW5rPC9zcGFuPjwvc3Bhbj48L2Rpdj48 ZGl2ICBzdHlsZT0iY2xlYXI6IGJvdGg7Ij48YnIgPjwvZGl2PjxkaXYgIHN0eWxlPSJjbGVhcjog Ym90aDsiPknigJlsbCBhZGQgYSBub3RlIGluIG5ibC5yc3QgY2xhcmlmeWluZyB0aGF0IHRoZSBk cml2ZXIgY3VycmVudGx5IGRvZXMgbm90IHN1cHBvcnQgdXNlci1jb25maWd1cmVkIFJTUyBhbmQg b25seSBzdXBwb3J0cyBwYWNrZXQgc3ByYXlpbmcgdmlhIFJTUy4mbmJzcDs8L2Rpdj48ZGl2ICBz dHlsZT0iY2xlYXI6IGJvdGg7Ij5GdWxsIFJTUyBjb25maWd1cmF0aW9uIHN1cHBvcnQgd2lsbCBi ZSBpbXBsZW1lbnRlZCBpbiB0aGUgbmV4dCBwYXRjaCBzZXJpZXMuPC9kaXY+PGRpdiAgc3R5bGU9 ImNsZWFyOiBib3RoOyI+PHNwYW4gIHN0eWxlPSJmb250LWZhbWlseTogVGFob21hLCBBcmlhbCwg U1RIZWl0aVNDLUxpZ2h0LCBTaW1TdW47Ij48c3BhbiA+PGJyID48L3NwYW4+PC9zcGFuPjwvZGl2 PjxkaXYgIHN0eWxlPSJjbGVhcjogYm90aDsiPjxzcGFuICBzdHlsZT0iZm9udC1mYW1pbHk6IFRh aG9tYSwgQXJpYWwsIFNUSGVpdGlTQy1MaWdodCwgU2ltU3VuOyI+PHNwYW4gPjxzcGFuICBzdHls ZT0iY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJpYWwsIFNUSGVp dGksIFNpbVN1bjsgZm9udC1zaXplOiAxNHB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFy aWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13 ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGlnbjogc3RhcnQ7IHRl eHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFs OyB3b3JkLXNwYWNpbmc6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUp OyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tc3R5 bGU6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsgZmxvYXQ6IG5vbmU7 IGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyI+VGhhbmsgeW91Ljwvc3Bhbj48YnIgIHN0eWxl PSJjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogVGFob21hLCBBcmlhbCwgU1RIZWl0 aSwgU2ltU3VuOyBmb250LXNpemU6IDE0cHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJp YW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdl aWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWdu OiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNw YWNlOiBub3JtYWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1z dHJva2Utd2lkdGg6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyB0 ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6 IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsiPjwvc3Bhbj48L3NwYW4+ PC9kaXY+PGRpdiAgc3R5bGU9ImNsZWFyOiBib3RoOyI+PHNwYW4gIHN0eWxlPSJmb250LWZhbWls eTogVGFob21hLCBBcmlhbCwgU1RIZWl0aVNDLUxpZ2h0LCBTaW1TdW47Ij48c3BhbiA+PGJyID48 L3NwYW4+PC9zcGFuPjwvZGl2PjxkaXYgIHN0eWxlPSJjbGVhcjogYm90aDsiPjxiciA+PC9kaXY+ PGJsb2NrcXVvdGUgIF9xdW90ZT0iMSIgc3R5bGU9Im1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4t dG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJpYWws IFNUSGVpdGksIFNpbVN1bjsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjogcmdiKDAsIDAsIDApOyI+ PGRpdiAgY2xhc3M9ImFsaW1haWwtcXVvdGUiPjxkaXYgIHN0eWxlPSJjbGVhcjogYm90aDsiPi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLTwvZGl2PjxkaXYgIHN0eWxlPSJjbGVhcjogYm90aDsiPuWPkeS7tuS6uu+8mkl2YW4g TWFsb3YgJmx0O2l2YW4ubWFsb3ZAYXJrbmV0d29ya3MuYW0mZ3Q7PC9kaXY+PGRpdiAgc3R5bGU9 ImNsZWFyOiBib3RoOyI+5Y+R6YCB5pe26Ze077yaMjAyNeW5tDjmnIgxNeaXpSjlkajkupQpIDE2 OjAwPC9kaXY+PGRpdiAgc3R5bGU9ImNsZWFyOiBib3RoOyI+5pS25Lu25Lq677yaRGltb24mbHQ7 ZGltb24uemhhb0BuZWJ1bGEtbWF0cml4LmNvbSZndDs8L2Rpdj48ZGl2ICBzdHlsZT0iY2xlYXI6 IGJvdGg7Ij7mioTjgIDpgIHvvJpkZXYmbHQ7ZGV2QGRwZGsub3JnJmd0OzsgTGVvbiZsdDtsZW9u Lnl1QG5lYnVsYS1tYXRyaXguY29tJmd0OzsgU2FtJmx0O3NhbS5jaGVuQG5lYnVsYS1tYXRyaXgu Y29tJmd0OzwvZGl2PjxkaXYgIHN0eWxlPSJjbGVhcjogYm90aDsiPuS4u+OAgOmimO+8mlJlOiDl m57lpI3vvJpbUEFUQ0ggdjQgMTIvMTZdIG5ldC9uYmw6IGFkZCBuYmwgZGV2aWNlIHJ4dHggcXVl dWUgc2V0dXAgYW5kIHJlbGVhc2Ugb3BzPC9kaXY+PGRpdiAgc3R5bGU9ImNsZWFyOiBib3RoOyI+ PGJyID48L2Rpdj5IaSBEaW1vbiw8YnIgPjxiciA+T24gRnJpLCAxNSBBdWcgMjAyNSwgRGltb24g d3JvdGU6PGJyID48YnIgPiZndDsgSGkgSXZhbiw8YnIgPiZndDsgPGJyID4mZ3Q7IFRoYW5rIHlv dSBmb3IgeW91ciByZXZpZXcuPGJyID4mZ3Q7IDxiciA+Jmd0OyBSZWdhcmRpbmcgeW91ciBmb2xs b3dpbmcgcmV2aWV3IGNvbW1lbnRzLjxiciA+Jmd0OyAmZ3Q7ICtpbnQgbmJsX3J4X3F1ZXVlX3Nl dHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwgdTE2IHF1ZXVlX2lkeCw8YnIgPiZndDsg Jmd0OyArICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB1MTYgbmJfZGVzYywgdW5zaWduZWQg aW50IHNvY2tldF9pZCw8YnIgPiZndDsgJmd0OyArICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyBjb25zdCBzdHJ1Y3QgcnRlX2V0aF9yeGNvbmYgKmNvbmYsIHN0cnVjdCBydGVfbWVtcG9vbCAq bWVtcG9vbCk8YnIgPiZndDsgJmd0OyArezxiciA+Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF9hZGFw dGVyICphZGFwdGVyID0gRVRIX0RFVl9UT19OQkxfREVWX1BGX1BSSVYoZXRoX2Rldik7PGJyID4m Z3Q7ICZndDsgKyBzdHJ1Y3QgbmJsX2Rldl9tZ3QgKmRldl9tZ3QgPSBOQkxfQURBUFRFUl9UT19E RVZfTUdUKGFkYXB0ZXIpOzxiciA+Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF9kaXNwYXRjaF9vcHMg KmRpc3Bfb3BzID0gTkJMX0RFVl9NR1RfVE9fRElTUF9PUFMoZGV2X21ndCk7PGJyID4mZ3Q7ICZn dDsgKyBzdHJ1Y3QgbmJsX2Rldl9yaW5nX21ndCAqcmluZ19tZ3QgPSAmYW1wO2Rldl9tZ3QtJmd0 O25ldF9kZXYtJmd0O3JpbmdfbWd0OzxiciA+Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF9kZXZfcmlu ZyAqcnhfcmluZyA9ICZhbXA7cmluZ19tZ3QtJmd0O3J4X3JpbmdzW3F1ZXVlX2lkeF07PGJyID4m Z3Q7ICZndDsgKyBzdHJ1Y3QgbmJsX3N0YXJ0X3J4X3JpbmdfcGFyYW0gcGFyYW0gPSB7IDAgfTs8 YnIgPiZndDsgJmd0OyArIGludCByZXQ7PGJyID4mZ3Q7ICZndDsgKzxiciA+Jmd0OyAmZ3Q7ICsg cGFyYW0ucXVldWVfaWR4ID0gcXVldWVfaWR4OzxiciA+Jmd0OyAmZ3Q7ICsgcGFyYW0ubmJfZGVz YyA9IG5iX2Rlc2M7PGJyID4mZ3Q7ICZndDsgKyBwYXJhbS5zb2NrZXRfaWQgPSBzb2NrZXRfaWQ7 PGJyID4mZ3Q7ICZndDsgKyBwYXJhbS5jb25mID0gY29uZjs8YnIgPiZndDsgPGJyID4mZ3Q7IEkg ZG9uJ3Qgc2VlIHdoZXJlIHRoaXMgJ2NvbmYnIGlzIHBhcnNlZC4gSWYgdGhlIHVzZXIgaGFzIHJl cXVlc3RlZCB1bnN1cHBvcnRlZDxiciA+Jmd0OyBvZmZsb2Fkcywgc2F5LCB1bnN1cHBvcnRlZCBS U1MgZmxvdyB0eXBlcywgdGhlbiB0aGUgZHJpdmVyIHNob3VsZCBnaXZlIGFuIGVycm9yLjxiciA+ Jmd0OyA8YnIgPiZndDsgRG9lcyB0aGUgZHJpdmVyIGFjdHVhbGx5IHBhcnNlIHVzZXIgUlNTIGNv bmZpZ3VyYXRpb24/IFVzZXIgUlNTIGtleT8gUlNTIHR5cGVzPzxiciA+Jmd0OyBEb2VzIHRoZSBw YXRjaCBzZXJpZXMgYWxsb3cgdXNlciB0byBzZXQgdGhlaXIgb3duIFJFVEEgdGFibGUgZm9yIFJT Uz88YnIgPiZndDsgPGJyID4mZ3Q7IFRvIGFkZHJlc3MgeW91ciBjb25jZXJuczo8YnIgPiZndDsg PGJyID4mZ3Q7IFRoaXMgcGF0Y2ggc2VyaWVzIGRvZXMgbm90IHN1cHBvcnQgYW55IFJTUyBjb25m aWd1cmF0aW9uLCBpbmNsdWRpbmc6PGJyID4mZ3Q7IDEuIEN1c3RvbSBSU1Mga2V5IGNvbmZpZ3Vy YXRpb248YnIgPiZndDsgMi4gUlNTIGZsb3cgdHlwZSBjb25maWd1cmF0aW9uPGJyID4mZ3Q7IDMu IFVzZXItZGVmaW5lZCBSRVRBIHRhYmxlIGNvbmZpZ3VyYXRpb248YnIgPiZndDsgVGhlcmVmb3Jl OjxiciA+Jmd0OyAxLldlIGRvIG5vdCBzZXQgZmxvd190eXBlX3Jzc19vZmZsb2FkcyBpbiBydGVf ZXRoX2Rldl9pbmZvPGJyID4mZ3Q7IDIuV2UgZG8gbm90IGltcGxlbWVudCB0aGUgcnNzX2hhc2hf dXBkYXRlIGFuZCByZXRhX3VwZGF0ZSBpbnRlcmZhY2VzIGluIGV0aF9kZXZfb3BzPGJyID4mZ3Q7 IDxiciA+Jmd0OyBJbiB0aGUgcnRlX2V0aF9yeF9xdWV1ZV9zZXR1cCBmdW5jdGlvbiwgaXQgY2hl Y2tzIHdoZXRoZXIgdXNlci1jb25maWd1cmVkIG9mZmxvYWRzIGZhbGwgd2l0aGluIGRldl9pbmZv LnJ4X3F1ZXVlX29mZmxvYWRfY2FwYS4gPGJyID48YnIgPlRoYXQgcnVsZXMgb3V0ICdSVEVfRVRI X1JYX09GRkxPQURfUlNTX0hBU0gnLCBidXQgdGhpcyBvZmZsb2FkIGZsYWcgZG9lcyBub3Q8YnIg PmNvbnRyb2wgUlNTIGFzIGEgd2hvbGUuIEl0IG9ubHkgdGVsbHMgdGhlIGRyaXZlciB3aGV0aGVy IHRoZSBhcHBsaWNhdGlvbiB3YW50czxiciA+dG8gc2VlIFJTUyBoYXNoIHZhbHVlIHNldCBpbiB0 aGUgc3BlY2lhbCBmaWVsZCBpbiByZWNlaXZlZCBtYnVmcyBvciBub3QuPGJyID48YnIgPlJTUy9E Q0IvVk1EcSBpcyBjb250cm9sbGVkIHZpYSAnZGV2X2NvbmYtJmd0O3J4bW9kZS5tcV9tb2RlJyBb MV0gYW5kIHRoaXMgaXMgbGlrZWx5PGJyID5ub3QgY2hlY2tlZCBieSAncnRlX2V0aF9kZXZfY29u ZmlndXJlJy4gU2F5LCB0aGUgdXNlciBydW5zICd0ZXN0cG1kJyBhbmQgYXNrcyB0bzxiciA+ZW5h YmxlIERDQiBbMl0uIFdpbGwgdGhlIGNvbW1hbmQgYmUgYWNjZXB0ZWQgc2lsZW50bHkgb3IgcmVq ZWN0ZWQ/PGJyID48YnIgPlsxXSA8YSAgaHJlZj0iaHR0cHM6Ly9kb2MuZHBkay5vcmcvYXBpLTI1 LjA3L3J0ZV9fZXRoZGV2XzhoLmh0bWwjYTU4NmI4ZTg2MTMxYjRlYzBjY2FmNDY0ZTg0N2NjZjNl IiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9kb2MuZHBkay5vcmcvYXBpLTI1LjA3L3J0ZV9fZXRo ZGV2XzhoLmh0bWwjYTU4NmI4ZTg2MTMxYjRlYzBjY2FmNDY0ZTg0N2NjZjNlPC9hPjxiciA+WzJd IDxhICBocmVmPSJodHRwczovL2RvYy5kcGRrLm9yZy9ndWlkZXMtMjUuMDcvdGVzdHBtZF9hcHBf dWcvdGVzdHBtZF9mdW5jcy5odG1sI3BvcnQtY29uZmlnLWRjYiIgdGFyZ2V0PSJfYmxhbmsiPmh0 dHBzOi8vZG9jLmRwZGsub3JnL2d1aWRlcy0yNS4wNy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1 bmNzLmh0bWwjcG9ydC1jb25maWctZGNiPC9hPjxiciA+PGJyID4mZ3Q7IFNpbmNlIHdlIGhhdmVu J3Qgc2V0IGRldl9pbmZvLnJ4X3F1ZXVlX29mZmxvYWRfY2FwYSwgdGhlIGZ1bmN0aW9uIHdpbGwg cmV0dXJuIGFuIGVycm9yIGlmIHVzZXJzIGNvbmZpZ3VyZSBhbnkgb2ZmbG9hZHMuIENvbnNlcXVl bnRseSwgd2UgY3VycmVudGx5IGRvbid0IG5lZWQgdG8gcGFyc2UgdGhlICdjb25mJzxiciA+Jmd0 OyBwYXJhbWV0ZXIuPGJyID4mZ3Q7IDxiciA+Jmd0OyBUaGUgcGF0Y2ggc2VyaWVzIGN1cnJlbnRs eSBmb2N1c2VzIG9uIGJhc2ljIGZ1bmN0aW9uYWxpdHksIHdpdGggUlNTIHN1cHBvcnQgcGxhbm5l ZCBmb3IgZnV0dXJlIGltcGxlbWVudGF0aW9uLjxiciA+PGJyID5BbmQgeWV0LCBwYXRjaCBbM10g YW5ub3VuY2VzIHN1cHBvcnQgZm9yIFJTUy4gSSBkb24ndCBtZWFuIHRvIGJlIG1lYW4gb3IgcGlj a3ksPGJyID5idXQgcGVyaGFwcyBpdCBtYWtlcyBzZW5zZSB0byBleHBsYWluIHRoYXQgdGhpcyBp cyBsaW1pdGVkIHN1cHBvcnQgZm9yIG5vdywgdGhhdDxiciA+anVzdCBzcHJheXMgcGFja2V0cyBi dXQgaXMgbm90IHlldCBjb25maWd1cmFibGUgYnkgdXNlci4gV2hhdCBkbyB5b3UgdGhpbms/PGJy ID48YnIgPlszXSA8YSAgaHJlZj0iaHR0cHM6Ly9tYWlscy5kcGRrLm9yZy9hcmNoaXZlcy9kZXYv MjAyNS1BdWd1c3QvMzIyNzI2Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL21haWxzLmRw ZGsub3JnL2FyY2hpdmVzL2Rldi8yMDI1LUF1Z3VzdC8zMjI3MjYuaHRtbDwvYT48YnIgPjxiciA+ VGhhbmsgeW91LjxiciA+PGJyID4mZ3Q7PGJyID4mZ3Q7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLTxiciA+Jmd0OyDlj5Hku7bkurrvvJpJdmFuIE1hbG92ICZsdDtpdmFuLm1hbG92QGFy a25ldHdvcmtzLmFtJmd0OzxiciA+Jmd0OyDlj5HpgIHml7bpl7TvvJoyMDI15bm0OOaciDEz5pel KOWRqOS4iSkgMjA6MDA8YnIgPiZndDsg5pS25Lu25Lq677yaRGltb24mbHQ7ZGltb24uemhhb0Bu ZWJ1bGEtbWF0cml4LmNvbSZndDs8YnIgPiZndDsg5oqEIOmAge+8mmRldiZsdDtkZXZAZHBkay5v cmcmZ3Q7OyBLeW8gTGl1Jmx0O2t5by5saXVAbmVidWxhLW1hdHJpeC5jb20mZ3Q7OyBMZW9uJmx0 O2xlb24ueXVAbmVidWxhLW1hdHJpeC5jb20mZ3Q7OyBTYW0mbHQ7c2FtLmNoZW5AbmVidWxhLW1h dHJpeC5jb20mZ3Q7PGJyID4mZ3Q7IOS4uyDpopjvvJpSZTogW1BBVENIIHY0IDEyLzE2XSBuZXQv bmJsOiBhZGQgbmJsIGRldmljZSByeHR4IHF1ZXVlIHNldHVwIGFuZCByZWxlYXNlIG9wczxiciA+ Jmd0OyA8YnIgPiZndDsgSGkgRGltb24sPGJyID4mZ3Q7IDxiciA+Jmd0OyAocGxlYXNlIHNlZSBi ZWxvdyk8YnIgPiZndDsgPGJyID4mZ3Q7IE9uIFR1ZSwgMTIgQXVnIDIwMjUsIERpbW9uIFpoYW8g d3JvdGU6PGJyID4mZ3Q7IDxiciA+Jmd0OyAmZ3Q7IEltcGxlbWVudCBOQkwgZGV2aWNlIFJ4IGFu ZCBUeCBxdWV1ZSBzZXR1cCAmYW1wOyByZWxlYXNlIGZ1bmN0aW9uczxiciA+Jmd0OyAmZ3Q7PGJy ID4mZ3Q7ICZndDsgU2lnbmVkLW9mZi1ieTogRGltb24gWmhhbyAmbHQ7ZGltb24uemhhb0BuZWJ1 bGEtbWF0cml4LmNvbSZndDs8YnIgPiZndDsgJmd0OyAtLS08YnIgPiZndDsgJmd0OyBkcml2ZXJz L25ldC9uYmwvbmJsX2Rldi9uYmxfZGV2LmMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgfCZuYnNwOyA3NSArKysrKzxiciA+Jmd0OyAmZ3Q7IGRyaXZlcnMvbmV0L25i bC9uYmxfZGV2L25ibF9kZXYuaCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyB8ICZuYnNwOyA3ICs8YnIgPiZndDsgJmd0OyBkcml2ZXJzL25ldC9uYmwvbmJsX2V0aGRl di5jJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgfCAmbmJzcDsgNCArPGJyID4mZ3Q7ICZndDsgLi4uL25ibC9uYmxfaHcvbmJsX2h3 X2xlb25pcy9uYmxfcmVzX2xlb25pcy5jIHwgJm5ic3A7IDIgKzxiciA+Jmd0OyAmZ3Q7IGRyaXZl cnMvbmV0L25ibC9uYmxfaHcvbmJsX3Jlc291cmNlLmggJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7IHwmbmJzcDsgOTkgKysrKysrPGJyID4mZ3Q7ICZndDsgZHJpdmVycy9uZXQvbmJsL25ibF9o dy9uYmxfdHhyeC5jICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHwg Mjg1ICsrKysrKysrKysrKysrKystLTxiciA+Jmd0OyAmZ3Q7IGRyaXZlcnMvbmV0L25ibC9uYmxf aHcvbmJsX3R4cnguaCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB8 Jm5ic3A7IDk5ICsrKysrKzxiciA+Jmd0OyAmZ3Q7IGRyaXZlcnMvbmV0L25ibC9uYmxfaW5jbHVk ZS9uYmxfZGVmX2NvbW1vbi5oJm5ic3A7IHwgJm5ic3A7IDUgKzxiciA+Jmd0OyAmZ3Q7IGRyaXZl cnMvbmV0L25ibC9uYmxfaW5jbHVkZS9uYmxfaW5jbHVkZS5oICZuYnNwOyAmbmJzcDsgfCAmbmJz cDsgMSArPGJyID4mZ3Q7ICZndDsgOSBmaWxlcyBjaGFuZ2VkLCA1NTUgaW5zZXJ0aW9ucygrKSwg MjIgZGVsZXRpb25zKC0pPGJyID4mZ3Q7ICZndDs8YnIgPiZndDsgJmd0OyBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvbmJsL25ibF9kZXYvbmJsX2Rldi5jIGIvZHJpdmVycy9uZXQvbmJsL25ibF9k ZXYvbmJsX2Rldi5jPGJyID4mZ3Q7ICZndDsgaW5kZXggODZkZWZkNjIxZC4uMTdiOWJkMmM3NyAx MDA2NDQ8YnIgPiZndDsgJmd0OyAtLS0gYS9kcml2ZXJzL25ldC9uYmwvbmJsX2Rldi9uYmxfZGV2 LmM8YnIgPiZndDsgJmd0OyArKysgYi9kcml2ZXJzL25ldC9uYmwvbmJsX2Rldi9uYmxfZGV2LmM8 YnIgPiZndDsgJmd0OyBAQCAtNTcsNiArNTcsODEgQEAgaW50IG5ibF9kZXZfcG9ydF9jbG9zZShz dHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYpPGJyID4mZ3Q7ICZndDsmbmJzcDsgcmV0dXJuIDA7 PGJyID4mZ3Q7ICZndDsgfTxiciA+Jmd0OyAmZ3Q7PGJyID4mZ3Q7ICZndDsgK2ludCBuYmxfdHhf cXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LCB1MTYgcXVldWVfaWR4LDxi ciA+Jmd0OyAmZ3Q7ICsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHUxNiBuYl9kZXNjLCB1 bnNpZ25lZCBpbnQgc29ja2V0X2lkLCBjb25zdCBzdHJ1Y3QgcnRlX2V0aF90eGNvbmYgKmNvbmYp PGJyID4mZ3Q7ICZndDsgK3s8YnIgPiZndDsgJmd0OyArIHN0cnVjdCBuYmxfYWRhcHRlciAqYWRh cHRlciA9IEVUSF9ERVZfVE9fTkJMX0RFVl9QRl9QUklWKGV0aF9kZXYpOzxiciA+Jmd0OyAmZ3Q7 ICsgc3RydWN0IG5ibF9kZXZfbWd0ICpkZXZfbWd0ID0gTkJMX0FEQVBURVJfVE9fREVWX01HVChh ZGFwdGVyKTs8YnIgPiZndDsgJmd0OyArIHN0cnVjdCBuYmxfZGlzcGF0Y2hfb3BzICpkaXNwX29w cyA9IE5CTF9ERVZfTUdUX1RPX0RJU1BfT1BTKGRldl9tZ3QpOzxiciA+Jmd0OyAmZ3Q7ICsgc3Ry dWN0IG5ibF9kZXZfcmluZ19tZ3QgKnJpbmdfbWd0ID0gJmFtcDtkZXZfbWd0LSZndDtuZXRfZGV2 LSZndDtyaW5nX21ndDs8YnIgPiZndDsgJmd0OyArIHN0cnVjdCBuYmxfZGV2X3JpbmcgKnR4X3Jp bmcgPSAmYW1wO3JpbmdfbWd0LSZndDt0eF9yaW5nc1txdWV1ZV9pZHhdOzxiciA+Jmd0OyAmZ3Q7 ICsgc3RydWN0IG5ibF9zdGFydF90eF9yaW5nX3BhcmFtIHBhcmFtID0geyAwIH07PGJyID4mZ3Q7 ICZndDsgKyBpbnQgcmV0OzxiciA+Jmd0OyAmZ3Q7ICs8YnIgPiZndDsgJmd0OyArIHBhcmFtLnF1 ZXVlX2lkeCA9IHF1ZXVlX2lkeDs8YnIgPiZndDsgJmd0OyArIHBhcmFtLm5iX2Rlc2MgPSBuYl9k ZXNjOzxiciA+Jmd0OyAmZ3Q7ICsgcGFyYW0uc29ja2V0X2lkID0gc29ja2V0X2lkOzxiciA+Jmd0 OyAmZ3Q7ICsgcGFyYW0uY29uZiA9IGNvbmY7PGJyID4mZ3Q7ICZndDsgKyBwYXJhbS5wcm9kdWN0 ID0gYWRhcHRlci0mZ3Q7Y2Fwcy5wcm9kdWN0X3R5cGU7PGJyID4mZ3Q7ICZndDsgKyBwYXJhbS5i b25kX2Jyb2FkY2FzdF9jaGVjayA9IE5VTEw7PGJyID4mZ3Q7ICZndDsgKyByZXQgPSZuYnNwOyBk aXNwX29wcy0mZ3Q7c3RhcnRfdHhfcmluZyhOQkxfREVWX01HVF9UT19ESVNQX1BSSVYoZGV2X21n dCksICZhbXA7cGFyYW0sICZhbXA7dHhfcmluZy0mZ3Q7ZG1hKTs8YnIgPiZndDsgJmd0OyArIGlm IChyZXQpIHs8YnIgPiZndDsgJmd0OyArJm5ic3A7IE5CTF9MT0coRVJSLCAic3RhcnRfdHhfcmlu ZyBmYWlsZWQgJWQiLCByZXQpOzxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgcmV0dXJuIHJldDs8YnIg PiZndDsgJmd0OyArIH08YnIgPiZndDsgJmd0OyArPGJyID4mZ3Q7ICZndDsgKyB0eF9yaW5nLSZn dDtkZXNjX251bSA9IG5iX2Rlc2M7PGJyID4mZ3Q7ICZndDsgKzxiciA+Jmd0OyAmZ3Q7ICsgcmV0 dXJuIHJldDs8YnIgPiZndDsgJmd0OyArfTxiciA+Jmd0OyAmZ3Q7ICs8YnIgPiZndDsgJmd0OyAr aW50IG5ibF9yeF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsIHUxNiBx dWV1ZV9pZHgsPGJyID4mZ3Q7ICZndDsgKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgdTE2 IG5iX2Rlc2MsIHVuc2lnbmVkIGludCBzb2NrZXRfaWQsPGJyID4mZ3Q7ICZndDsgKyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyAmbmJzcDsgY29uc3Qgc3RydWN0IHJ0ZV9ldGhfcnhjb25mICpjb25mLCBz dHJ1Y3QgcnRlX21lbXBvb2wgKm1lbXBvb2wpPGJyID4mZ3Q7ICZndDsgK3s8YnIgPiZndDsgJmd0 OyArIHN0cnVjdCBuYmxfYWRhcHRlciAqYWRhcHRlciA9IEVUSF9ERVZfVE9fTkJMX0RFVl9QRl9Q UklWKGV0aF9kZXYpOzxiciA+Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF9kZXZfbWd0ICpkZXZfbWd0 ID0gTkJMX0FEQVBURVJfVE9fREVWX01HVChhZGFwdGVyKTs8YnIgPiZndDsgJmd0OyArIHN0cnVj dCBuYmxfZGlzcGF0Y2hfb3BzICpkaXNwX29wcyA9IE5CTF9ERVZfTUdUX1RPX0RJU1BfT1BTKGRl dl9tZ3QpOzxiciA+Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF9kZXZfcmluZ19tZ3QgKnJpbmdfbWd0 ID0gJmFtcDtkZXZfbWd0LSZndDtuZXRfZGV2LSZndDtyaW5nX21ndDs8YnIgPiZndDsgJmd0OyAr IHN0cnVjdCBuYmxfZGV2X3JpbmcgKnJ4X3JpbmcgPSAmYW1wO3JpbmdfbWd0LSZndDtyeF9yaW5n c1txdWV1ZV9pZHhdOzxiciA+Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF9zdGFydF9yeF9yaW5nX3Bh cmFtIHBhcmFtID0geyAwIH07PGJyID4mZ3Q7ICZndDsgKyBpbnQgcmV0OzxiciA+Jmd0OyAmZ3Q7 ICs8YnIgPiZndDsgJmd0OyArIHBhcmFtLnF1ZXVlX2lkeCA9IHF1ZXVlX2lkeDs8YnIgPiZndDsg Jmd0OyArIHBhcmFtLm5iX2Rlc2MgPSBuYl9kZXNjOzxiciA+Jmd0OyAmZ3Q7ICsgcGFyYW0uc29j a2V0X2lkID0gc29ja2V0X2lkOzxiciA+Jmd0OyAmZ3Q7ICsgcGFyYW0uY29uZiA9IGNvbmY7PGJy ID4mZ3Q7IDxiciA+Jmd0OyBJIGRvbid0IHNlZSB3aGVyZSB0aGlzICdjb25mJyBpcyBwYXJzZWQu IElmIHRoZSB1c2VyIGhhcyByZXF1ZXN0ZWQgdW5zdXBwb3J0ZWQ8YnIgPiZndDsgb2ZmbG9hZHMs IHNheSwgdW5zdXBwb3J0ZWQgUlNTIGZsb3cgdHlwZXMsIHRoZW4gdGhlIGRyaXZlciBzaG91bGQg Z2l2ZSBhbiBlcnJvci48YnIgPiZndDsgPGJyID4mZ3Q7IERvZXMgdGhlIGRyaXZlciBhY3R1YWxs eSBwYXJzZSB1c2VyIFJTUyBjb25maWd1cmF0aW9uPyBVc2VyIFJTUyBrZXk/IFJTUyB0eXBlcz88 YnIgPiZndDsgRG9lcyB0aGUgcGF0Y2ggc2VyaWVzIGFsbG93IHVzZXIgdG8gc2V0IHRoZWlyIG93 biBSRVRBIHRhYmxlIGZvciBSU1M/PGJyID4mZ3Q7IDxiciA+Jmd0OyAmZ3Q7ICsgcGFyYW0ubWVt cG9vbCA9IG1lbXBvb2w7PGJyID4mZ3Q7ICZndDsgKyBwYXJhbS5wcm9kdWN0ID0gYWRhcHRlci0m Z3Q7Y2Fwcy5wcm9kdWN0X3R5cGU7PGJyID4mZ3Q7ICZndDsgKyByZXQgPSZuYnNwOyBkaXNwX29w cy0mZ3Q7c3RhcnRfcnhfcmluZyhOQkxfREVWX01HVF9UT19ESVNQX1BSSVYoZGV2X21ndCksICZh bXA7cGFyYW0sICZhbXA7cnhfcmluZy0mZ3Q7ZG1hKTs8YnIgPiZndDsgJmd0OyArIGlmIChyZXQp IHs8YnIgPiZndDsgJmd0OyArJm5ic3A7IE5CTF9MT0coRVJSLCAic3RhcnRfcnhfcmluZyBmYWls ZWQgJWQiLCByZXQpOzxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgcmV0dXJuIHJldDs8YnIgPiZndDsg Jmd0OyArIH08YnIgPiZndDsgJmd0OyArPGJyID4mZ3Q7ICZndDsgKyByeF9yaW5nLSZndDtkZXNj X251bSA9IG5iX2Rlc2M7PGJyID4mZ3Q7ICZndDsgKzxiciA+Jmd0OyAmZ3Q7ICsgcmV0dXJuIHJl dDs8YnIgPiZndDsgJmd0OyArfTxiciA+Jmd0OyAmZ3Q7ICs8YnIgPiZndDsgJmd0OyArdm9pZCBu YmxfdHhfcXVldWVzX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LCB1aW50MTZf dCBxdWV1ZV9pZCk8YnIgPiZndDsgJmd0OyArezxiciA+Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF9h ZGFwdGVyICphZGFwdGVyID0gRVRIX0RFVl9UT19OQkxfREVWX1BGX1BSSVYoZXRoX2Rldik7PGJy ID4mZ3Q7ICZndDsgKyBzdHJ1Y3QgbmJsX2Rldl9tZ3QgKmRldl9tZ3QgPSBOQkxfQURBUFRFUl9U T19ERVZfTUdUKGFkYXB0ZXIpOzxiciA+Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF9kaXNwYXRjaF9v cHMgKmRpc3Bfb3BzID0gTkJMX0RFVl9NR1RfVE9fRElTUF9PUFMoZGV2X21ndCk7PGJyID4mZ3Q7 ICZndDsgKzxiciA+Jmd0OyAmZ3Q7ICsgZGlzcF9vcHMtJmd0O3JlbGVhc2VfdHhfcmluZyhOQkxf REVWX01HVF9UT19ESVNQX1BSSVYoZGV2X21ndCksIHF1ZXVlX2lkKTs8YnIgPiZndDsgJmd0OyAr fTxiciA+Jmd0OyAmZ3Q7ICs8YnIgPiZndDsgJmd0OyArdm9pZCBuYmxfcnhfcXVldWVzX3JlbGVh c2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LCB1aW50MTZfdCBxdWV1ZV9pZCk8YnIgPiZn dDsgJmd0OyArezxiciA+Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF9hZGFwdGVyICphZGFwdGVyID0g RVRIX0RFVl9UT19OQkxfREVWX1BGX1BSSVYoZXRoX2Rldik7PGJyID4mZ3Q7ICZndDsgKyBzdHJ1 Y3QgbmJsX2Rldl9tZ3QgKmRldl9tZ3QgPSBOQkxfQURBUFRFUl9UT19ERVZfTUdUKGFkYXB0ZXIp OzxiciA+Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF9kaXNwYXRjaF9vcHMgKmRpc3Bfb3BzID0gTkJM X0RFVl9NR1RfVE9fRElTUF9PUFMoZGV2X21ndCk7PGJyID4mZ3Q7ICZndDsgKzxiciA+Jmd0OyAm Z3Q7ICsgZGlzcF9vcHMtJmd0O3JlbGVhc2VfcnhfcmluZyhOQkxfREVWX01HVF9UT19ESVNQX1BS SVYoZGV2X21ndCksIHF1ZXVlX2lkKTs8YnIgPiZndDsgJmd0OyArfTxiciA+Jmd0OyAmZ3Q7ICs8 YnIgPiZndDsgJmd0OyBzdHJ1Y3QgbmJsX2Rldl9vcHMgZGV2X29wcyA9IHs8YnIgPiZndDsgJmd0 OyB9OzxiciA+Jmd0OyAmZ3Q7PGJyID4mZ3Q7ICZndDsgZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L25ibC9uYmxfZGV2L25ibF9kZXYuaCBiL2RyaXZlcnMvbmV0L25ibC9uYmxfZGV2L25ibF9kZXYu aDxiciA+Jmd0OyAmZ3Q7IGluZGV4IGVjZmI2ZjZhZTAuLmRjYTIyMzM3NDkgMTAwNjQ0PGJyID4m Z3Q7ICZndDsgLS0tIGEvZHJpdmVycy9uZXQvbmJsL25ibF9kZXYvbmJsX2Rldi5oPGJyID4mZ3Q7 ICZndDsgKysrIGIvZHJpdmVycy9uZXQvbmJsL25ibF9kZXYvbmJsX2Rldi5oPGJyID4mZ3Q7ICZn dDsgQEAgLTU2LDUgKzU2LDEyIEBAIGludCBuYmxfZGV2X2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmV0aF9kZXYpOzxiciA+Jmd0OyAmZ3Q7IGludCBuYmxfZGV2X3BvcnRfc3RhcnQoc3Ry dWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KTs8YnIgPiZndDsgJmd0OyBpbnQgbmJsX2Rldl9wb3J0 X3N0b3Aoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KTs8YnIgPiZndDsgJmd0OyBpbnQgbmJs X2Rldl9wb3J0X2Nsb3NlKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2Rldik7PGJyID4mZ3Q7ICZn dDsgK2ludCBuYmxfdHhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LCB1 MTYgcXVldWVfaWR4LDxiciA+Jmd0OyAmZ3Q7ICsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 IHUxNiBuYl9kZXNjLCB1bnNpZ25lZCBpbnQgc29ja2V0X2lkLCBjb25zdCBzdHJ1Y3QgcnRlX2V0 aF90eGNvbmYgKmNvbmYpOzxiciA+Jmd0OyAmZ3Q7ICtpbnQgbmJsX3J4X3F1ZXVlX3NldHVwKHN0 cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwgdTE2IHF1ZXVlX2lkeCw8YnIgPiZndDsgJmd0OyAr ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB1MTYgbmJfZGVzYywgdW5zaWduZWQgaW50IHNv Y2tldF9pZCw8YnIgPiZndDsgJmd0OyArICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBjb25z dCBzdHJ1Y3QgcnRlX2V0aF9yeGNvbmYgKmNvbmYsIHN0cnVjdCBydGVfbWVtcG9vbCAqbWVtcG9v bCk7PGJyID4mZ3Q7ICZndDsgK3ZvaWQgbmJsX3R4X3F1ZXVlc19yZWxlYXNlKHN0cnVjdCBydGVf ZXRoX2RldiAqZXRoX2RldiwgdWludDE2X3QgcXVldWVfaWQpOzxiciA+Jmd0OyAmZ3Q7ICt2b2lk IG5ibF9yeF9xdWV1ZXNfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsIHVpbnQx Nl90IHF1ZXVlX2lkKTs8YnIgPiZndDsgJmd0OzxiciA+Jmd0OyAmZ3Q7ICNlbmRpZjxiciA+Jmd0 OyAmZ3Q7IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uYmwvbmJsX2V0aGRldi5jIGIvZHJpdmVy cy9uZXQvbmJsL25ibF9ldGhkZXYuYzxiciA+Jmd0OyAmZ3Q7IGluZGV4IGI3NzMwNTkzMDYuLjUx NDE2ZWJhOTEgMTAwNjQ0PGJyID4mZ3Q7ICZndDsgLS0tIGEvZHJpdmVycy9uZXQvbmJsL25ibF9l dGhkZXYuYzxiciA+Jmd0OyAmZ3Q7ICsrKyBiL2RyaXZlcnMvbmV0L25ibC9uYmxfZXRoZGV2LmM8 YnIgPiZndDsgJmd0OyBAQCAtMzMsNiArMzMsMTAgQEAgY29uc3Qgc3RydWN0IGV0aF9kZXZfb3Bz IG5ibF9ldGhfZGV2X29wcyA9IHs8YnIgPiZndDsgJmd0OyZuYnNwOyAuZGV2X3N0YXJ0ID0gbmJs X2Rldl9wb3J0X3N0YXJ0LDxiciA+Jmd0OyAmZ3Q7Jm5ic3A7IC5kZXZfc3RvcCA9IG5ibF9kZXZf cG9ydF9zdG9wLDxiciA+Jmd0OyAmZ3Q7Jm5ic3A7IC5kZXZfY2xvc2UgPSBuYmxfZGV2X2Nsb3Nl LDxiciA+Jmd0OyAmZ3Q7ICsgLnR4X3F1ZXVlX3NldHVwID0gbmJsX3R4X3F1ZXVlX3NldHVwLDxi ciA+Jmd0OyAmZ3Q7ICsgLnJ4X3F1ZXVlX3NldHVwID0gbmJsX3J4X3F1ZXVlX3NldHVwLDxiciA+ Jmd0OyAmZ3Q7ICsgLnR4X3F1ZXVlX3JlbGVhc2UgPSBuYmxfdHhfcXVldWVzX3JlbGVhc2UsPGJy ID4mZ3Q7ICZndDsgKyAucnhfcXVldWVfcmVsZWFzZSA9IG5ibF9yeF9xdWV1ZXNfcmVsZWFzZSw8 YnIgPiZndDsgJmd0OyB9OzxiciA+Jmd0OyAmZ3Q7PGJyID4mZ3Q7ICZndDsgc3RhdGljIGludCBu YmxfZXRoX2Rldl9pbml0KHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2Rldik8YnIgPiZndDsgJmd0 OyBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmJsL25ibF9ody9uYmxfaHdfbGVvbmlzL25ibF9y ZXNfbGVvbmlzLmMgYi9kcml2ZXJzL25ldC9uYmwvbmJsX2h3L25ibF9od19sZW9uaXMvbmJsX3Jl c19sZW9uaXMuYzxiciA+Jmd0OyAmZ3Q7IGluZGV4IDYzMjdhYTU1YjQuLmI3ODU3NzRmNjcgMTAw NjQ0PGJyID4mZ3Q7ICZndDsgLS0tIGEvZHJpdmVycy9uZXQvbmJsL25ibF9ody9uYmxfaHdfbGVv bmlzL25ibF9yZXNfbGVvbmlzLmM8YnIgPiZndDsgJmd0OyArKysgYi9kcml2ZXJzL25ldC9uYmwv bmJsX2h3L25ibF9od19sZW9uaXMvbmJsX3Jlc19sZW9uaXMuYzxiciA+Jmd0OyAmZ3Q7IEBAIC01 Myw2ICs1Myw4IEBAIHN0YXRpYyBpbnQgbmJsX3Jlc19zdGFydChzdHJ1Y3QgbmJsX3Jlc291cmNl X21ndF9sZW9uaXMgKnJlc19tZ3RfbGVvbmlzKTxiciA+Jmd0OyAmZ3Q7Jm5ic3A7IHN0cnVjdCBu YmxfcmVzb3VyY2VfbWd0ICpyZXNfbWd0ID0gJmFtcDtyZXNfbWd0X2xlb25pcy0mZ3Q7cmVzX21n dDs8YnIgPiZndDsgJmd0OyZuYnNwOyBpbnQgcmV0OzxiciA+Jmd0OyAmZ3Q7PGJyID4mZ3Q7ICZn dDsgKyByZXNfbWd0LSZndDtyZXNfaW5mby5iYXNlX3FpZCA9IDA7PGJyID4mZ3Q7ICZndDsgKzxi ciA+Jmd0OyAmZ3Q7Jm5ic3A7IHJldCA9IG5ibF90eHJ4X21ndF9zdGFydChyZXNfbWd0KTs8YnIg PiZndDsgJmd0OyZuYnNwOyBpZiAocmV0KTxiciA+Jmd0OyAmZ3Q7ICZuYnNwOyBnb3RvIHR4cnhf ZmFpbGVkOzxiciA+Jmd0OyAmZ3Q7IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uYmwvbmJsX2h3 L25ibF9yZXNvdXJjZS5oIGIvZHJpdmVycy9uZXQvbmJsL25ibF9ody9uYmxfcmVzb3VyY2UuaDxi ciA+Jmd0OyAmZ3Q7IGluZGV4IDA3ZTYzMjcyNTkuLjU0MzA1NGEyY2IgMTAwNjQ0PGJyID4mZ3Q7 ICZndDsgLS0tIGEvZHJpdmVycy9uZXQvbmJsL25ibF9ody9uYmxfcmVzb3VyY2UuaDxiciA+Jmd0 OyAmZ3Q7ICsrKyBiL2RyaXZlcnMvbmV0L25ibC9uYmxfaHcvbmJsX3Jlc291cmNlLmg8YnIgPiZn dDsgJmd0OyBAQCAtMTYsMTIgKzE2LDEwMiBAQDxiciA+Jmd0OyAmZ3Q7ICNkZWZpbmUgTkJMX1JF U19NR1RfVE9fQ0hBTl9PUFMocmVzX21ndCkgKE5CTF9SRVNfTUdUX1RPX0NIQU5fT1BTX1RCTChy ZXNfbWd0KS0mZ3Q7b3BzKTxiciA+Jmd0OyAmZ3Q7ICNkZWZpbmUgTkJMX1JFU19NR1RfVE9fQ0hB Tl9QUklWKHJlc19tZ3QpIChOQkxfUkVTX01HVF9UT19DSEFOX09QU19UQkwocmVzX21ndCktJmd0 O3ByaXYpPGJyID4mZ3Q7ICZndDsgI2RlZmluZSBOQkxfUkVTX01HVF9UT19FVEhfREVWKHJlc19t Z3QpJm5ic3A7ICgocmVzX21ndCktJmd0O2V0aF9kZXYpPGJyID4mZ3Q7ICZndDsgKyNkZWZpbmUg TkJMX1JFU19NR1RfVE9fQ09NTU9OKHJlc19tZ3QpJm5ic3A7ICgocmVzX21ndCktJmd0O2NvbW1v bik8YnIgPiZndDsgJmd0OyAjZGVmaW5lIE5CTF9SRVNfTUdUX1RPX1RYUlhfTUdUKHJlc19tZ3Qp ICgocmVzX21ndCktJmd0O3R4cnhfbWd0KTxiciA+Jmd0OyAmZ3Q7ICsjZGVmaW5lIE5CTF9SRVNf TUdUX1RPX1RYX1JJTkcocmVzX21ndCwgaW5kZXgpIFw8YnIgPiZndDsgJmd0OyArIChOQkxfUkVT X01HVF9UT19UWFJYX01HVChyZXNfbWd0KS0mZ3Q7dHhfcmluZ3NbKGluZGV4KV0pPGJyID4mZ3Q7 ICZndDsgKyNkZWZpbmUgTkJMX1JFU19NR1RfVE9fUlhfUklORyhyZXNfbWd0LCBpbmRleCkgXDxi ciA+Jmd0OyAmZ3Q7ICsgKE5CTF9SRVNfTUdUX1RPX1RYUlhfTUdUKHJlc19tZ3QpLSZndDtyeF9y aW5nc1soaW5kZXgpXSk8YnIgPiZndDsgJmd0OyArPGJyID4mZ3Q7ICZndDsgK3N0cnVjdCBuYmxf cGFja2VkX2Rlc2MgezxiciA+Jmd0OyAmZ3Q7ICsgcnRlX2xlNjRfdCBhZGRyOzxiciA+Jmd0OyAm Z3Q7ICsgcnRlX2xlMzJfdCBsZW47PGJyID4mZ3Q7ICZndDsgKyBydGVfbGUxNl90IGlkOzxiciA+ Jmd0OyAmZ3Q7ICsgcnRlX2xlMTZfdCBmbGFnczs8YnIgPiZndDsgJmd0OyArfTs8YnIgPiZndDsg Jmd0OyArPGJyID4mZ3Q7ICZndDsgK3N0cnVjdCBuYmxfdHhfZW50cnkgezxiciA+Jmd0OyAmZ3Q7 ICsgc3RydWN0IHJ0ZV9tYnVmICptYnVmOzxiciA+Jmd0OyAmZ3Q7ICsgdWludDE2X3QgZmlyc3Rf aWQ7PGJyID4mZ3Q7ICZndDsgK307PGJyID4mZ3Q7ICZndDsgKzxiciA+Jmd0OyAmZ3Q7ICtzdHJ1 Y3QgbmJsX3J4X2VudHJ5IHs8YnIgPiZndDsgJmd0OyArIHN0cnVjdCBydGVfbWJ1ZiAqbWJ1Zjs8 YnIgPiZndDsgJmd0OyArfTs8YnIgPiZndDsgJmd0OzxiciA+Jmd0OyAmZ3Q7IHN0cnVjdCBuYmxf cmVzX3R4X3JpbmcgezxiciA+Jmd0OyAmZ3Q7ICsgdm9sYXRpbGUgc3RydWN0IG5ibF9wYWNrZWRf ZGVzYyAqZGVzYzs8YnIgPiZndDsgJmd0OyArIHN0cnVjdCBuYmxfdHhfZW50cnkgKnR4X2VudHJ5 OzxiciA+Jmd0OyAmZ3Q7ICsgY29uc3Qgc3RydWN0IHJ0ZV9tZW16b25lICpuZXRfaGRyX216Ozxi ciA+Jmd0OyAmZ3Q7ICsgdm9sYXRpbGUgdWludDhfdCAqbm90aWZ5OzxiciA+Jmd0OyAmZ3Q7ICsg c3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2OzxiciA+Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF9j b21tb25faW5mbyAqY29tbW9uOzxiciA+Jmd0OyAmZ3Q7ICsgdTY0IGRlZmF1bHRfaGRyWzJdOzxi ciA+Jmd0OyAmZ3Q7ICs8YnIgPiZndDsgJmd0OyArIGVudW0gbmJsX3Byb2R1Y3RfdHlwZSBwcm9k dWN0OzxiciA+Jmd0OyAmZ3Q7ICsgaW50IGRtYV9saW1pdF9tc2I7PGJyID4mZ3Q7ICZndDsgKyBi b29sIGRtYV9zZXRfbXNiOzxiciA+Jmd0OyAmZ3Q7ICsgdTE2IG5iX2Rlc2M7PGJyID4mZ3Q7ICZn dDsgKyB1MTYgbmV4dF90b19jbGVhbjs8YnIgPiZndDsgJmd0OyArIHUxNiBuZXh0X3RvX3VzZTs8 YnIgPiZndDsgJmd0OyArPGJyID4mZ3Q7ICZndDsgKyB1MTYgYXZhaWxfdXNlZF9mbGFnczs8YnIg PiZndDsgJmd0OyArIGJvb2wgdXNlZF93cmFwX2NvdW50ZXI7PGJyID4mZ3Q7ICZndDsgKyB1MTYg bm90aWZ5X3FpZDs8YnIgPiZndDsgJmd0OyArIHUxNiBleHRoZHJfbGVuOzxiciA+Jmd0OyAmZ3Q7 ICs8YnIgPiZndDsgJmd0OyArIHUxNiB2bGFuX3Byb3RvOzxiciA+Jmd0OyAmZ3Q7ICsgdTE2IHZs YW5fdGNpOzxiciA+Jmd0OyAmZ3Q7ICsgdTE2IGxhZ19pZDs8YnIgPiZndDsgJmd0OyArIHUxNiB2 cV9mcmVlX2NudDs8YnIgPiZndDsgJmd0OyArIC8qIFN0YXJ0IGZyZWVpbmcgVFggYnVmZmVycyBp ZiB0aGVyZSBhcmUgbGVzcyBmcmVlIGRlc2NyaXB0b3JzIHRoYW4gdGhpcyB2YWx1ZSAqLzxiciA+ Jmd0OyAmZ3Q7ICsgdTE2IHR4X2ZyZWVfdGhyZXNoOzxiciA+Jmd0OyAmZ3Q7ICsgLyogTnVtYmVy IG9mIFR4IGRlc2NyaXB0b3JzIHRvIHVzZSBiZWZvcmUgUlMgYml0IGlzIHNldCAqLzxiciA+Jmd0 OyAmZ3Q7ICsgdTE2IHR4X3JzX3RocmVzaDs8YnIgPiZndDsgJmd0OyArPGJyID4mZ3Q7ICZndDsg KyB1bnNpZ25lZCBpbnQgc2l6ZTs8YnIgPiZndDsgJmd0OyArPGJyID4mZ3Q7ICZndDsgKyB1MTYg cXVldWVfaWQ7PGJyID4mZ3Q7ICZndDsgKzxiciA+Jmd0OyAmZ3Q7ICsgdTY0IG9mZmxvYWRzOzxi ciA+Jmd0OyAmZ3Q7ICsgdTY0IHJpbmdfcGh5c19hZGRyOzxiciA+Jmd0OyAmZ3Q7ICs8YnIgPiZn dDsgJmd0OyArIHUxNiAoKnByZXBfdHhfZWhkcikodm9pZCAqcHJpdiwgc3RydWN0IHJ0ZV9tYnVm ICptYnVmKTs8YnIgPiZndDsgJmd0OyB9OzxiciA+Jmd0OyAmZ3Q7PGJyID4mZ3Q7ICZndDsgc3Ry dWN0IG5ibF9yZXNfcnhfcmluZyB7PGJyID4mZ3Q7ICZndDsgKyB2b2xhdGlsZSBzdHJ1Y3QgbmJs X3BhY2tlZF9kZXNjICpkZXNjOzxiciA+Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF9yeF9lbnRyeSAq cnhfZW50cnk7PGJyID4mZ3Q7ICZndDsgKyBzdHJ1Y3QgcnRlX21lbXBvb2wgKm1lbXBvb2w7PGJy ID4mZ3Q7ICZndDsgKyB2b2xhdGlsZSB1aW50OF90ICpub3RpZnk7PGJyID4mZ3Q7ICZndDsgKyBz dHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXY7PGJyID4mZ3Q7ICZndDsgKyBzdHJ1Y3QgbmJsX2Nv bW1vbl9pbmZvICpjb21tb247PGJyID4mZ3Q7ICZndDsgKyB1aW50NjRfdCBtYnVmX2luaXRpYWxp emVyOyAvKiombHQ7IHZhbHVlIHRvIGluaXQgbWJ1ZnMgKi88YnIgPiZndDsgJmd0OyArIHN0cnVj dCBydGVfbWJ1ZiBmYWtlX21idWY7PGJyID4mZ3Q7ICZndDsgKzxiciA+Jmd0OyAmZ3Q7ICsgZW51 bSBuYmxfcHJvZHVjdF90eXBlIHByb2R1Y3Q7PGJyID4mZ3Q7ICZndDsgKyBpbnQgZG1hX2xpbWl0 X21zYjs8YnIgPiZndDsgJmd0OyArIHVuc2lnbmVkIGludCBzaXplOzxiciA+Jmd0OyAmZ3Q7ICsg Ym9vbCBkbWFfc2V0X21zYjs8YnIgPiZndDsgJmd0OyArIHUxNiBuYl9kZXNjOzxiciA+Jmd0OyAm Z3Q7ICsgdTE2IG5leHRfdG9fY2xlYW47PGJyID4mZ3Q7ICZndDsgKyB1MTYgbmV4dF90b191c2U7 PGJyID4mZ3Q7ICZndDsgKzxiciA+Jmd0OyAmZ3Q7ICsgdTE2IGF2YWlsX3VzZWRfZmxhZ3M7PGJy ID4mZ3Q7ICZndDsgKyBib29sIHVzZWRfd3JhcF9jb3VudGVyOzxiciA+Jmd0OyAmZ3Q7ICsgdTE2 IG5vdGlmeV9xaWQ7PGJyID4mZ3Q7ICZndDsgKyB1MTYgZXh0aGRyX2xlbjs8YnIgPiZndDsgJmd0 OyArPGJyID4mZ3Q7ICZndDsgKyB1MTYgdmxhbl9wcm90bzs8YnIgPiZndDsgJmd0OyArIHUxNiB2 bGFuX3RjaTs8YnIgPiZndDsgJmd0OyArIHUxNiB2cV9mcmVlX2NudDs8YnIgPiZndDsgJmd0OyAr IHUxNiBwb3J0X2lkOzxiciA+Jmd0OyAmZ3Q7ICs8YnIgPiZndDsgJmd0OyArIHUxNiBxdWV1ZV9p ZDs8YnIgPiZndDsgJmd0OyArIHUxNiBidWZfbGVuZ3RoOzxiciA+Jmd0OyAmZ3Q7ICs8YnIgPiZn dDsgJmd0OyArIHU2NCBvZmZsb2Fkczs8YnIgPiZndDsgJmd0OyArIHU2NCByaW5nX3BoeXNfYWRk cjs8YnIgPiZndDsgJmd0OyB9OzxiciA+Jmd0OyAmZ3Q7PGJyID4mZ3Q7ICZndDsgc3RydWN0IG5i bF90eHJ4X21ndCB7PGJyID4mZ3Q7ICZndDsgQEAgLTMzLDExICsxMjMsMjAgQEAgc3RydWN0IG5i bF90eHJ4X21ndCB7PGJyID4mZ3Q7ICZndDsmbmJzcDsgdTggcnhfcmluZ19udW07PGJyID4mZ3Q7 ICZndDsgfTs8YnIgPiZndDsgJmd0OzxiciA+Jmd0OyAmZ3Q7ICtzdHJ1Y3QgbmJsX3Jlc19pbmZv IHs8YnIgPiZndDsgJmd0OyArIHUxNiBiYXNlX3FpZDs8YnIgPiZndDsgJmd0OyArIHUxNiBsY29y ZV9tYXg7PGJyID4mZ3Q7ICZndDsgKyB1MTYgKnBmX3FpZF90b19sY29yZV9pZDs8YnIgPiZndDsg Jmd0OyArIHJ0ZV9hdG9taWMxNl90IHR4X2N1cnJlbnRfcXVldWU7PGJyID4mZ3Q7ICZndDsgK307 PGJyID4mZ3Q7ICZndDsgKzxiciA+Jmd0OyAmZ3Q7IHN0cnVjdCBuYmxfcmVzb3VyY2VfbWd0IHs8 YnIgPiZndDsgJmd0OyZuYnNwOyBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXY7PGJyID4mZ3Q7 ICZndDsmbmJzcDsgc3RydWN0IG5ibF9jaGFubmVsX29wc190YmwgKmNoYW5fb3BzX3RibDs8YnIg PiZndDsgJmd0OyZuYnNwOyBzdHJ1Y3QgbmJsX3BoeV9vcHNfdGJsICpwaHlfb3BzX3RibDs8YnIg PiZndDsgJmd0OyZuYnNwOyBzdHJ1Y3QgbmJsX3R4cnhfbWd0ICp0eHJ4X21ndDs8YnIgPiZndDsg Jmd0OyArIHN0cnVjdCBuYmxfY29tbW9uX2luZm8gKmNvbW1vbjs8YnIgPiZndDsgJmd0OyArIHN0 cnVjdCBuYmxfcmVzX2luZm8gcmVzX2luZm87PGJyID4mZ3Q7ICZndDsgfTs8YnIgPiZndDsgJmd0 OzxiciA+Jmd0OyAmZ3Q7IHN0cnVjdCBuYmxfcmVzb3VyY2VfbWd0X2xlb25pcyB7PGJyID4mZ3Q7 ICZndDsgZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ibC9uYmxfaHcvbmJsX3R4cnguYyBiL2Ry aXZlcnMvbmV0L25ibC9uYmxfaHcvbmJsX3R4cnguYzxiciA+Jmd0OyAmZ3Q7IGluZGV4IGVhYTdl NGM2OWQuLmM1MWEzODQ0NDUgMTAwNjQ0PGJyID4mZ3Q7ICZndDsgLS0tIGEvZHJpdmVycy9uZXQv bmJsL25ibF9ody9uYmxfdHhyeC5jPGJyID4mZ3Q7ICZndDsgKysrIGIvZHJpdmVycy9uZXQvbmJs L25ibF9ody9uYmxfdHhyeC5jPGJyID4mZ3Q7ICZndDsgQEAgLTM5LDU1ICszOSwyOTYgQEAgc3Rh dGljIHZvaWQgbmJsX3Jlc190eHJ4X3JlbW92ZV9yaW5ncyh2b2lkICpwcml2KTxiciA+Jmd0OyAm Z3Q7Jm5ic3A7IHJ0ZV9mcmVlKHR4cnhfbWd0LSZndDtyeF9yaW5ncyk7PGJyID4mZ3Q7ICZndDsg fTxiciA+Jmd0OyAmZ3Q7PGJyID4mZ3Q7ICZndDsgLXN0YXRpYyBpbnQgbmJsX3Jlc190eHJ4X3N0 YXJ0X3R4X3Jpbmcodm9pZCAqcHJpdiw8YnIgPiZndDsgJmd0OyAtJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyBzdHJ1Y3QgbmJsX3N0YXJ0X3R4X3JpbmdfcGFyYW0gKnBhcmFtLDxi ciA+Jmd0OyAmZ3Q7IC0mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHU2NCAqZG1h X2FkZHIpPGJyID4mZ3Q7ICZndDsgK3N0YXRpYyBpbmxpbmUgdTE2IG5ibF9wcmVwX3R4X2VoZHJf bGVvbmlzKHZvaWQgKnByaXYsIHN0cnVjdCBydGVfbWJ1ZiAqbWJ1Zik8YnIgPiZndDsgJmd0OyB7 PGJyID4mZ3Q7ICZndDsmbmJzcDsgUlRFX1NFVF9VU0VEKHByaXYpOzxiciA+Jmd0OyAmZ3Q7IC0g UlRFX1NFVF9VU0VEKHBhcmFtKTs8YnIgPiZndDsgJmd0OyAtIFJURV9TRVRfVVNFRChkbWFfYWRk cik7PGJyID4mZ3Q7ICZndDsgKyBSVEVfU0VUX1VTRUQobWJ1Zik7PGJyID4mZ3Q7ICZndDsmbmJz cDsgcmV0dXJuIDA7PGJyID4mZ3Q7ICZndDsgfTxiciA+Jmd0OyAmZ3Q7PGJyID4mZ3Q7ICZndDsg c3RhdGljIHZvaWQgbmJsX3Jlc190eHJ4X3N0b3BfdHhfcmluZyh2b2lkICpwcml2LCB1MTYgcXVl dWVfaWR4KTxiciA+Jmd0OyAmZ3Q7IHs8YnIgPiZndDsgJmd0OyAtIFJURV9TRVRfVVNFRChwcml2 KTs8YnIgPiZndDsgJmd0OyAtIFJURV9TRVRfVVNFRChxdWV1ZV9pZHgpOzxiciA+Jmd0OyAmZ3Q7 ICsgc3RydWN0IG5ibF9yZXNvdXJjZV9tZ3QgKnJlc19tZ3QgPSAoc3RydWN0IG5ibF9yZXNvdXJj ZV9tZ3QgKilwcml2OzxiciA+Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF9yZXNfdHhfcmluZyAqdHhf cmluZyA9IE5CTF9SRVNfTUdUX1RPX1RYX1JJTkcocmVzX21ndCwgcXVldWVfaWR4KTs8YnIgPiZn dDsgJmd0OyArIGludCBpOzxiciA+Jmd0OyAmZ3Q7ICs8YnIgPiZndDsgJmd0OyArIGlmICghdHhf cmluZyk8YnIgPiZndDsgJmd0OyArJm5ic3A7IHJldHVybjs8YnIgPiZndDsgJmd0OyArPGJyID4m Z3Q7ICZndDsgKyBmb3IgKGkgPSAwOyBpICZsdDsgdHhfcmluZy0mZ3Q7bmJfZGVzYzsgaSsrKSB7 PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyBpZiAodHhfcmluZy0mZ3Q7dHhfZW50cnlbaV0ubWJ1ZiAh PSBOVUxMKSB7PGJyID4mZ3Q7ICZndDsgKyAmbmJzcDsgcnRlX3BrdG1idWZfZnJlZV9zZWcodHhf cmluZy0mZ3Q7dHhfZW50cnlbaV0ubWJ1Zik7PGJyID4mZ3Q7ICZndDsgKyAmbmJzcDsgbWVtc2V0 KCZhbXA7dHhfcmluZy0mZ3Q7dHhfZW50cnlbaV0sIDAsIHNpemVvZigqdHhfcmluZy0mZ3Q7dHhf ZW50cnkpKTs8YnIgPiZndDsgJmd0OyArJm5ic3A7IH08YnIgPiZndDsgJmd0OyArJm5ic3A7IHR4 X3JpbmctJmd0O2Rlc2NbaV0uZmxhZ3MgPSAwOzxiciA+Jmd0OyAmZ3Q7ICsgfTxiciA+Jmd0OyAm Z3Q7ICs8YnIgPiZndDsgJmd0OyArIHR4X3JpbmctJmd0O2F2YWlsX3VzZWRfZmxhZ3MgPSBCSVQo TkJMX1BBQ0tFRF9ERVNDX0ZfQVZBSUwpOzxiciA+Jmd0OyAmZ3Q7ICsgdHhfcmluZy0mZ3Q7dXNl ZF93cmFwX2NvdW50ZXIgPSAxOzxiciA+Jmd0OyAmZ3Q7ICsgdHhfcmluZy0mZ3Q7bmV4dF90b19j bGVhbiA9IE5CTF9UWF9SU19USFJFU0ggLSAxOzxiciA+Jmd0OyAmZ3Q7ICsgdHhfcmluZy0mZ3Q7 bmV4dF90b191c2UgPSAwOzxiciA+Jmd0OyAmZ3Q7ICsgdHhfcmluZy0mZ3Q7dnFfZnJlZV9jbnQg PSB0eF9yaW5nLSZndDtuYl9kZXNjOzxiciA+Jmd0OyAmZ3Q7IH08YnIgPiZndDsgJmd0OzxiciA+ Jmd0OyAmZ3Q7IC1zdGF0aWMgdm9pZCBuYmxfcmVzX3R4cnhfcmVsZWFzZV90eHJpbmcodm9pZCAq cHJpdiwgdTE2IHF1ZXVlX2lkeCk8YnIgPiZndDsgJmd0OyArc3RhdGljIHZvaWQgbmJsX3Jlc190 eHJ4X3JlbGVhc2VfdHhfcmluZyh2b2lkICpwcml2LCB1MTYgcXVldWVfaWR4KTxiciA+Jmd0OyAm Z3Q7IHs8YnIgPiZndDsgJmd0OyAtIFJURV9TRVRfVVNFRChwcml2KTs8YnIgPiZndDsgJmd0OyAt IFJURV9TRVRfVVNFRChxdWV1ZV9pZHgpOzxiciA+Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF9yZXNv dXJjZV9tZ3QgKnJlc19tZ3QgPSAoc3RydWN0IG5ibF9yZXNvdXJjZV9tZ3QgKilwcml2OzxiciA+ Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF90eHJ4X21ndCAqdHhyeF9tZ3QgPSBOQkxfUkVTX01HVF9U T19UWFJYX01HVChyZXNfbWd0KTs8YnIgPiZndDsgJmd0OyArIHN0cnVjdCBuYmxfcmVzX3R4X3Jp bmcgKnR4X3JpbmcgPSBOQkxfUkVTX01HVF9UT19UWF9SSU5HKHJlc19tZ3QsIHF1ZXVlX2lkeCk7 PGJyID4mZ3Q7ICZndDsgKyBpZiAoIXR4X3JpbmcpPGJyID4mZ3Q7ICZndDsgKyZuYnNwOyByZXR1 cm47PGJyID4mZ3Q7ICZndDsgKyBydGVfZnJlZSh0eF9yaW5nLSZndDt0eF9lbnRyeSk7PGJyID4m Z3Q7ICZndDsgKyBydGVfZnJlZSh0eF9yaW5nKTs8YnIgPiZndDsgJmd0OyArIHR4cnhfbWd0LSZn dDt0eF9yaW5nc1txdWV1ZV9pZHhdID0gTlVMTDs8YnIgPiZndDsgJmd0OyB9PGJyID4mZ3Q7ICZn dDs8YnIgPiZndDsgJmd0OyAtc3RhdGljIGludCBuYmxfcmVzX3R4cnhfc3RhcnRfcnhfcmluZyh2 b2lkICpwcml2LDxiciA+Jmd0OyAmZ3Q7IC0mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7IHN0cnVjdCBuYmxfc3RhcnRfcnhfcmluZ19wYXJhbSAqcGFyYW0sPGJyID4mZ3Q7ICZndDsg K3N0YXRpYyBpbnQgbmJsX3Jlc190eHJ4X3N0YXJ0X3R4X3Jpbmcodm9pZCAqcHJpdiw8YnIgPiZn dDsgJmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBzdHJ1Y3QgbmJsX3N0 YXJ0X3R4X3JpbmdfcGFyYW0gKnBhcmFtLDxiciA+Jmd0OyAmZ3Q7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgdTY0ICpkbWFfYWRkcik8YnIgPiZndDsgJmd0OyB7PGJyID4mZ3Q7 ICZndDsgLSBSVEVfU0VUX1VTRUQocHJpdik7PGJyID4mZ3Q7ICZndDsgLSBSVEVfU0VUX1VTRUQo cGFyYW0pOzxiciA+Jmd0OyAmZ3Q7IC0gUlRFX1NFVF9VU0VEKGRtYV9hZGRyKTs8YnIgPiZndDsg Jmd0OyArIHN0cnVjdCBuYmxfcmVzb3VyY2VfbWd0ICpyZXNfbWd0ID0gKHN0cnVjdCBuYmxfcmVz b3VyY2VfbWd0ICopcHJpdjs8YnIgPiZndDsgJmd0OyArIHN0cnVjdCBuYmxfdHhyeF9tZ3QgKnR4 cnhfbWd0ID0gTkJMX1JFU19NR1RfVE9fVFhSWF9NR1QocmVzX21ndCk7PGJyID4mZ3Q7ICZndDsg KyBzdHJ1Y3QgbmJsX3Jlc190eF9yaW5nICp0eF9yaW5nID0gTkJMX1JFU19NR1RfVE9fVFhfUklO RyhyZXNfbWd0LCBwYXJhbS0mZ3Q7cXVldWVfaWR4KTs8YnIgPiZndDsgJmd0OyArIHN0cnVjdCBy dGVfZXRoX2RldiAqZXRoX2RldiA9IE5CTF9SRVNfTUdUX1RPX0VUSF9ERVYocmVzX21ndCk7PGJy ID4mZ3Q7ICZndDsgKyBzdHJ1Y3QgbmJsX2NvbW1vbl9pbmZvICpjb21tb24gPSBOQkxfUkVTX01H VF9UT19DT01NT04ocmVzX21ndCk7PGJyID4mZ3Q7ICZndDsgKyBzdHJ1Y3QgbmJsX3BoeV9vcHMg KnBoeV9vcHMgPSBOQkxfUkVTX01HVF9UT19QSFlfT1BTKHJlc19tZ3QpOzxiciA+Jmd0OyAmZ3Q7 ICsgY29uc3Qgc3RydWN0IHJ0ZV9tZW16b25lICptZW16b25lOzxiciA+Jmd0OyAmZ3Q7ICsgY29u c3Qgc3RydWN0IHJ0ZV9tZW16b25lICpuZXRfaGRyX216OzxiciA+Jmd0OyAmZ3Q7ICsgY2hhciB2 cV9oZHJfbmFtZVtOQkxfVlFfSERSX05BTUVfTUFYU0laRV07PGJyID4mZ3Q7ICZndDsgKyBzdHJ1 Y3QgbmJsX3R4X2VoZHJfbGVvbmlzIGV4dF9oZHIgPSB7MH07PGJyID4mZ3Q7ICZndDsgKyB1aW50 NjRfdCBvZmZsb2Fkczs8YnIgPiZndDsgJmd0OyArIHUzMiBzaXplOzxiciA+Jmd0OyAmZ3Q7ICs8 YnIgPiZndDsgJmd0OyArIG9mZmxvYWRzID0gcGFyYW0tJmd0O2NvbmYtJmd0O29mZmxvYWRzIHwg ZXRoX2Rldi0mZ3Q7ZGF0YS0mZ3Q7ZGV2X2NvbmYudHhtb2RlLm9mZmxvYWRzOzxiciA+Jmd0OyAm Z3Q7ICs8YnIgPiZndDsgJmd0OyArIGlmIChldGhfZGV2LSZndDtkYXRhLSZndDt0eF9xdWV1ZXNb cGFyYW0tJmd0O3F1ZXVlX2lkeF0gIT0gTlVMTCkgezxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgTkJM X0xPRyhXQVJOSU5HLCAicmUtc2V0dXAgYW4gYWxyZWFkeSBhbGxvY2F0ZWQgdHggcXVldWUiKTs8 YnIgPiZndDsgJmd0OyArJm5ic3A7IG5ibF9yZXNfdHhyeF9zdG9wX3R4X3JpbmcocHJpdiwgcGFy YW0tJmd0O3F1ZXVlX2lkeCk7PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyBldGhfZGV2LSZndDtkYXRh LSZndDt0eF9xdWV1ZXNbcGFyYW0tJmd0O3F1ZXVlX2lkeF0gPSBOVUxMOzxiciA+Jmd0OyAmZ3Q7 ICsgfTxiciA+Jmd0OyAmZ3Q7ICs8YnIgPiZndDsgJmd0OyArIHR4X3JpbmcgPSBydGVfem1hbGxv YygibmJsX3R4cmluZyIsIHNpemVvZigqdHhfcmluZyksIFJURV9DQUNIRV9MSU5FX1NJWkUpOzxi ciA+Jmd0OyAmZ3Q7ICsgaWYgKCF0eF9yaW5nKSB7PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyBOQkxf TE9HKEVSUiwgImFsbG9jYXRlIHR4IHF1ZXVlIGRhdGEgc3RydWN0dXJlIGZhaWxlZCIpOzxiciA+ Jmd0OyAmZ3Q7ICsmbmJzcDsgcmV0dXJuIC1FTk9NRU07PGJyID4mZ3Q7ICZndDsgKyB9PGJyID4m Z3Q7ICZndDsgKyBtZW1zZXQoJmFtcDt0eF9yaW5nLSZndDtkZWZhdWx0X2hkciwgMCwgc2l6ZW9m KHR4X3JpbmctJmd0O2RlZmF1bHRfaGRyKSk7PGJyID4mZ3Q7ICZndDsgKyBzd2l0Y2ggKHBhcmFt LSZndDtwcm9kdWN0KSB7PGJyID4mZ3Q7ICZndDsgKyBjYXNlIE5CTF9MRU9OSVNfVFlQRTo8YnIg PiZndDsgJmd0OyArJm5ic3A7IHR4X3JpbmctJmd0O2V4dGhkcl9sZW4gPSBzaXplb2Yoc3RydWN0 IG5ibF90eF9laGRyX2xlb25pcyk7PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyB0eF9yaW5nLSZndDtw cmVwX3R4X2VoZHIgPSBuYmxfcHJlcF90eF9laGRyX2xlb25pczs8YnIgPiZndDsgJmd0OyArJm5i c3A7IGV4dF9oZHIuZndkID0gTkJMX1RYX0ZXRF9UWVBFX05PUk1BTDs8YnIgPiZndDsgJmd0OyAr Jm5ic3A7IG1lbWNweSgmYW1wO3R4X3JpbmctJmd0O2RlZmF1bHRfaGRyLCAmYW1wO2V4dF9oZHIs IHNpemVvZihzdHJ1Y3QgbmJsX3R4X2VoZHJfbGVvbmlzKSk7PGJyID4mZ3Q7ICZndDsgKyZuYnNw OyBicmVhazs8YnIgPiZndDsgJmd0OyArIGRlZmF1bHQ6PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyB0 eF9yaW5nLSZndDtleHRoZHJfbGVuID0gc2l6ZW9mKHVuaW9uIG5ibF90eF9leHRlbmRfaGVhZCk7 PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyBicmVhazs8YnIgPiZndDsgJmd0OyArIH07PGJyID4mZ3Q7 ICZndDsgKzxiciA+Jmd0OyAmZ3Q7ICsgdHhfcmluZy0mZ3Q7dHhfZW50cnkgPSBydGVfY2FsbG9j KCJuYmxfdHhfZW50cnkiLDxiciA+Jmd0OyAmZ3Q7ICsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyBwYXJhbS0mZ3Q7bmJfZGVzYywgc2l6ZW9mKCp0eF9yaW5nLSZndDt0eF9lbnRy eSksIDApOzxiciA+Jmd0OyAmZ3Q7ICsgaWYgKCF0eF9yaW5nLSZndDt0eF9lbnRyeSkgezxiciA+ Jmd0OyAmZ3Q7ICsmbmJzcDsgTkJMX0xPRyhFUlIsICJhbGxvY2F0ZSB0eCBxdWV1ZSAlZCBzb2Z0 d2FyZSByaW5nIGZhaWxlZCIsIHBhcmFtLSZndDtxdWV1ZV9pZHgpOzxiciA+Jmd0OyAmZ3Q7ICsm bmJzcDsgZ290byBhbGxvY190eF9lbnRyeV9mYWlsZWQ7PGJyID4mZ3Q7ICZndDsgKyB9PGJyID4m Z3Q7ICZndDsgKzxiciA+Jmd0OyAmZ3Q7ICsgLyogQWxsb2MgdHdpY2UgbWVtb3J5LCBhbmQgc2Vj b25kIGhhbGYgaXMgdXNlZCB0byBiYWNrIHVwIHRoZSBkZXNjIGZvciBkZXNjIGNoZWNraW5nICov PGJyID4mZ3Q7ICZndDsgKyBzaXplID0gUlRFX0FMSUdOX0NFSUwoc2l6ZW9mKHR4X3JpbmctJmd0 O2Rlc2NbMF0pICogcGFyYW0tJmd0O25iX2Rlc2MsIDQwOTYpOzxiciA+Jmd0OyAmZ3Q7ICsgbWVt em9uZSA9IHJ0ZV9ldGhfZG1hX3pvbmVfcmVzZXJ2ZShldGhfZGV2LCAidHhfcmluZyIsIHBhcmFt LSZndDtxdWV1ZV9pZHgsPGJyID4mZ3Q7ICZndDsgKyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyBzaXplLCBSVEVfQ0FDSEVfTElORV9TSVpFLDxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgcGFyYW0tJmd0O3NvY2tldF9pZCk7PGJyID4mZ3Q7ICZndDsgKyBpZiAo bWVtem9uZSA9PSBOVUxMKSB7PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyBOQkxfTE9HKEVSUiwgInJl c2VydmUgZG1hIHpvbmUgZm9yIHR4IHJpbmcgZmFpbGVkIik7PGJyID4mZ3Q7ICZndDsgKyZuYnNw OyBnb3RvIGFsbG9jX2RtYV96b25lX2ZhaWxlZDs8YnIgPiZndDsgJmd0OyArIH08YnIgPiZndDsg Jmd0OyArPGJyID4mZ3Q7ICZndDsgKyAvKiBpZiBoYXMgbm8gbWVtb3J5IHRvIHB1dCBleHRlbmQg aGVhZGVyLCBhcHBseSBmb3IgbmV3IG1lbW9yeSAqLzxiciA+Jmd0OyAmZ3Q7ICsgc2l6ZSA9IHBh cmFtLSZndDtuYl9kZXNjICogTkJMX1RYX0hFQURFUl9MRU47PGJyID4mZ3Q7ICZndDsgKyBzbnBy aW50Zih2cV9oZHJfbmFtZSwgc2l6ZW9mKHZxX2hkcl9uYW1lKSwgInBvcnQlZF92cSVkX2hkciIs PGJyID4mZ3Q7ICZndDsgKyAmbmJzcDsgZXRoX2Rldi0mZ3Q7ZGF0YS0mZ3Q7cG9ydF9pZCwgcGFy YW0tJmd0O3F1ZXVlX2lkeCk7PGJyID4mZ3Q7ICZndDsgKyBuZXRfaGRyX216ID0gcnRlX21lbXpv bmVfcmVzZXJ2ZV9hbGlnbmVkKHZxX2hkcl9uYW1lLCBzaXplLDxiciA+Jmd0OyAmZ3Q7ICsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgcGFyYW0tJmd0O3NvY2tldF9pZCw8YnIgPiZndDsgJmd0OyArICZu YnNwOyAmbmJzcDsgJm5ic3A7IFJURV9NRU1aT05FX0lPVkFfQ09OVElHLDxiciA+Jmd0OyAmZ3Q7 ICsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgUlRFX0NBQ0hFX0xJTkVfU0laRSk7PGJyID4mZ3Q7ICZn dDsgKyBpZiAobmV0X2hkcl9teiA9PSBOVUxMKSB7PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyBpZiAo cnRlX2Vycm5vID09IEVFWElTVCk8YnIgPiZndDsgJmd0OyArICZuYnNwOyBuZXRfaGRyX216ID0g cnRlX21lbXpvbmVfbG9va3VwKHZxX2hkcl9uYW1lKTs8YnIgPiZndDsgJmd0OyArJm5ic3A7IGlm IChuZXRfaGRyX216ID09IE5VTEwpIHs8YnIgPiZndDsgJmd0OyArICZuYnNwOyBOQkxfTE9HKEVS UiwgInJlc2VydmUgbmV0X2hkcl9teiBkbWEgem9uZSBmb3IgdHggcmluZyBmYWlsZWQiKTs8YnIg PiZndDsgJmd0OyArICZuYnNwOyBnb3RvIHJlc2VydmVfbmV0X2hkcl9tel9mYWlsZWQ7PGJyID4m Z3Q7ICZndDsgKyZuYnNwOyB9PGJyID4mZ3Q7ICZndDsgKyB9PGJyID4mZ3Q7ICZndDsgKzxiciA+ Jmd0OyAmZ3Q7ICsgdHhfcmluZy0mZ3Q7cHJvZHVjdCA9IHBhcmFtLSZndDtwcm9kdWN0OzxiciA+ Jmd0OyAmZ3Q7ICsgdHhfcmluZy0mZ3Q7bmJfZGVzYyA9IHBhcmFtLSZndDtuYl9kZXNjOzxiciA+ Jmd0OyAmZ3Q7ICsgdHhfcmluZy0mZ3Q7dnFfZnJlZV9jbnQgPSBwYXJhbS0mZ3Q7bmJfZGVzYzs8 YnIgPiZndDsgJmd0OyArIHR4X3JpbmctJmd0O3F1ZXVlX2lkID0gcGFyYW0tJmd0O3F1ZXVlX2lk eDs8YnIgPiZndDsgJmd0OyArIHR4X3JpbmctJmd0O25vdGlmeV9xaWQgPTxiciA+Jmd0OyAmZ3Q7 ICsmbmJzcDsgKHJlc19tZ3QtJmd0O3Jlc19pbmZvLmJhc2VfcWlkICsgdHhyeF9tZ3QtJmd0O3F1 ZXVlX29mZnNldCArIHBhcmFtLSZndDtxdWV1ZV9pZHgpICogMiArIDE7PGJyID4mZ3Q7ICZndDsg KyB0eF9yaW5nLSZndDtyaW5nX3BoeXNfYWRkciA9ICh1NjQpTkJMX0RNQV9BRERFUlNTX0ZVTExf VFJBTlNMQVRFKGNvbW1vbiwgbWVtem9uZS0mZ3Q7aW92YSk7PGJyID4mZ3Q7ICZndDsgKyB0eF9y aW5nLSZndDthdmFpbF91c2VkX2ZsYWdzID0gQklUKE5CTF9QQUNLRURfREVTQ19GX0FWQUlMKTs8 YnIgPiZndDsgJmd0OyArIHR4X3JpbmctJmd0O3VzZWRfd3JhcF9jb3VudGVyID0gMTs8YnIgPiZn dDsgJmd0OyArIHR4X3JpbmctJmd0O25leHRfdG9fY2xlYW4gPSBOQkxfVFhfUlNfVEhSRVNIIC0g MTs8YnIgPiZndDsgJmd0OyArIHR4X3JpbmctJmd0O25leHRfdG9fdXNlID0gMDs8YnIgPiZndDsg Jmd0OyArIHR4X3JpbmctJmd0O2Rlc2MgPSAoc3RydWN0IG5ibF9wYWNrZWRfZGVzYyAqKW1lbXpv bmUtJmd0O2FkZHI7PGJyID4mZ3Q7ICZndDsgKyB0eF9yaW5nLSZndDtuZXRfaGRyX216ID0gbmV0 X2hkcl9tejs8YnIgPiZndDsgJmd0OyArIHR4X3JpbmctJmd0O2V0aF9kZXYgPSBldGhfZGV2Ozxi ciA+Jmd0OyAmZ3Q7ICsgdHhfcmluZy0mZ3Q7ZG1hX3NldF9tc2IgPSBjb21tb24tJmd0O2RtYV9z ZXRfbXNiOzxiciA+Jmd0OyAmZ3Q7ICsgdHhfcmluZy0mZ3Q7ZG1hX2xpbWl0X21zYiA9IGNvbW1v bi0mZ3Q7ZG1hX2xpbWl0X21zYjs8YnIgPiZndDsgJmd0OyArIHR4X3JpbmctJmd0O25vdGlmeSA9 IHBoeV9vcHMtJmd0O2dldF90YWlsX3B0cihOQkxfUkVTX01HVF9UT19QSFlfUFJJVihyZXNfbWd0 KSk7PGJyID4mZ3Q7ICZndDsgKyB0eF9yaW5nLSZndDtvZmZsb2FkcyA9IG9mZmxvYWRzOzxiciA+ Jmd0OyAmZ3Q7ICsgdHhfcmluZy0mZ3Q7Y29tbW9uID0gY29tbW9uOzxiciA+Jmd0OyAmZ3Q7ICs8 YnIgPiZndDsgJmd0OyArIGV0aF9kZXYtJmd0O2RhdGEtJmd0O3R4X3F1ZXVlc1twYXJhbS0mZ3Q7 cXVldWVfaWR4XSA9IHR4X3Jpbmc7PGJyID4mZ3Q7ICZndDsgKzxiciA+Jmd0OyAmZ3Q7ICsgdHhy eF9tZ3QtJmd0O3R4X3JpbmdzW3BhcmFtLSZndDtxdWV1ZV9pZHhdID0gdHhfcmluZzs8YnIgPiZn dDsgJmd0OyArIHR4cnhfbWd0LSZndDt0eF9yaW5nX251bSsrOzxiciA+Jmd0OyAmZ3Q7ICs8YnIg PiZndDsgJmd0OyArICpkbWFfYWRkciA9IHR4X3JpbmctJmd0O3JpbmdfcGh5c19hZGRyOzxiciA+ Jmd0OyAmZ3Q7ICs8YnIgPiZndDsgJmd0OyZuYnNwOyByZXR1cm4gMDs8YnIgPiZndDsgJmd0OyAr PGJyID4mZ3Q7ICZndDsgK3Jlc2VydmVfbmV0X2hkcl9tel9mYWlsZWQ6PGJyID4mZ3Q7ICZndDsg KyBydGVfbWVtem9uZV9mcmVlKG1lbXpvbmUpOzxiciA+Jmd0OyAmZ3Q7ICthbGxvY19kbWFfem9u ZV9mYWlsZWQ6PGJyID4mZ3Q7ICZndDsgKyBydGVfZnJlZSh0eF9yaW5nLSZndDt0eF9lbnRyeSk7 PGJyID4mZ3Q7ICZndDsgKyB0eF9yaW5nLSZndDt0eF9lbnRyeSA9IE5VTEw7PGJyID4mZ3Q7ICZn dDsgKyB0eF9yaW5nLSZndDtzaXplID0gMDs8YnIgPiZndDsgJmd0OyArYWxsb2NfdHhfZW50cnlf ZmFpbGVkOjxiciA+Jmd0OyAmZ3Q7ICsgcnRlX2ZyZWUodHhfcmluZyk7PGJyID4mZ3Q7ICZndDsg KyByZXR1cm4gLUVOT01FTTs8YnIgPiZndDsgJmd0OyB9PGJyID4mZ3Q7ICZndDs8YnIgPiZndDsg Jmd0OyAtc3RhdGljIGludCBuYmxfcmVzX2FsbG9jX3J4X2J1ZnModm9pZCAqcHJpdiwgdTE2IHF1 ZXVlX2lkeCk8YnIgPiZndDsgJmd0OyArc3RhdGljIHZvaWQgbmJsX3Jlc190eHJ4X3N0b3Bfcnhf cmluZyh2b2lkICpwcml2LCB1MTYgcXVldWVfaWR4KTxiciA+Jmd0OyAmZ3Q7IHs8YnIgPiZndDsg Jmd0OyAtIFJURV9TRVRfVVNFRChwcml2KTs8YnIgPiZndDsgJmd0OyAtIFJURV9TRVRfVVNFRChx dWV1ZV9pZHgpOzxiciA+Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF9yZXNvdXJjZV9tZ3QgKnJlc19t Z3QgPSAoc3RydWN0IG5ibF9yZXNvdXJjZV9tZ3QgKilwcml2OzxiciA+Jmd0OyAmZ3Q7ICsgc3Ry dWN0IG5ibF9yZXNfcnhfcmluZyAqcnhfcmluZyA9PGJyID4mZ3Q7ICZndDsgKyAmbmJzcDsgTkJM X1JFU19NR1RfVE9fUlhfUklORyhyZXNfbWd0LCBxdWV1ZV9pZHgpOzxiciA+Jmd0OyAmZ3Q7ICsg dTE2IGk7PGJyID4mZ3Q7ICZndDsgKzxiciA+Jmd0OyAmZ3Q7ICsgaWYgKCFyeF9yaW5nKTxiciA+ Jmd0OyAmZ3Q7ICsmbmJzcDsgcmV0dXJuOzxiciA+Jmd0OyAmZ3Q7ICsgaWYgKHJ4X3JpbmctJmd0 O3J4X2VudHJ5ICE9IE5VTEwpIHs8YnIgPiZndDsgJmd0OyArJm5ic3A7IGZvciAoaSA9IDA7IGkg Jmx0OyByeF9yaW5nLSZndDtuYl9kZXNjOyBpKyspIHs8YnIgPiZndDsgJmd0OyArICZuYnNwOyBp ZiAocnhfcmluZy0mZ3Q7cnhfZW50cnlbaV0ubWJ1ZiAhPSBOVUxMKSB7PGJyID4mZ3Q7ICZndDsg KyZuYnNwOyAmbmJzcDsgcnRlX3BrdG1idWZfZnJlZV9zZWcocnhfcmluZy0mZ3Q7cnhfZW50cnlb aV0ubWJ1Zik7PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyAmbmJzcDsgcnhfcmluZy0mZ3Q7cnhfZW50 cnlbaV0ubWJ1ZiA9IE5VTEw7PGJyID4mZ3Q7ICZndDsgKyAmbmJzcDsgfTxiciA+Jmd0OyAmZ3Q7 ICsgJm5ic3A7IHJ4X3JpbmctJmd0O2Rlc2NbaV0uZmxhZ3MgPSAwOzxiciA+Jmd0OyAmZ3Q7ICsm bmJzcDsgfTxiciA+Jmd0OyAmZ3Q7ICs8YnIgPiZndDsgJmd0OyArJm5ic3A7IGZvciAoaSA9IHJ4 X3JpbmctJmd0O25iX2Rlc2M7IGkgJmx0OyByeF9yaW5nLSZndDtuYl9kZXNjICsgTkJMX0RFU0Nf UEVSX0xPT1BfVkVDX01BWDsgaSsrKTxiciA+Jmd0OyAmZ3Q7ICsgJm5ic3A7IHJ4X3JpbmctJmd0 O2Rlc2NbaV0uZmxhZ3MgPSAwOzxiciA+Jmd0OyAmZ3Q7ICsgfTxiciA+Jmd0OyAmZ3Q7ICs8YnIg PiZndDsgJmd0OyArIHJ4X3JpbmctJmd0O25leHRfdG9fY2xlYW4gPSAwOzxiciA+Jmd0OyAmZ3Q7 ICsgcnhfcmluZy0mZ3Q7bmV4dF90b191c2UgPSAwOzxiciA+Jmd0OyAmZ3Q7ICt9PGJyID4mZ3Q7 ICZndDsgKzxiciA+Jmd0OyAmZ3Q7ICtzdGF0aWMgaW50IG5ibF9yZXNfdHhyeF9zdGFydF9yeF9y aW5nKHZvaWQgKnByaXYsPGJyID4mZ3Q7ICZndDsgKyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgc3RydWN0IG5ibF9zdGFydF9yeF9yaW5nX3BhcmFtICpwYXJhbSw8YnIgPiZndDsg Jmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB1NjQgKmRtYV9hZGRyKTxi ciA+Jmd0OyAmZ3Q7ICt7PGJyID4mZ3Q7ICZndDsgKyBzdHJ1Y3QgbmJsX3Jlc291cmNlX21ndCAq cmVzX21ndCA9IChzdHJ1Y3QgbmJsX3Jlc291cmNlX21ndCAqKXByaXY7PGJyID4mZ3Q7ICZndDsg KyBzdHJ1Y3QgbmJsX3R4cnhfbWd0ICp0eHJ4X21ndCA9IE5CTF9SRVNfTUdUX1RPX1RYUlhfTUdU KHJlc19tZ3QpOzxiciA+Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF9yZXNfcnhfcmluZyAqcnhfcmlu ZyA9IE5CTF9SRVNfTUdUX1RPX1JYX1JJTkcocmVzX21ndCwgcGFyYW0tJmd0O3F1ZXVlX2lkeCk7 PGJyID4mZ3Q7ICZndDsgKyBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYgPSBOQkxfUkVTX01H VF9UT19FVEhfREVWKHJlc19tZ3QpOzxiciA+Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF9waHlfb3Bz ICpwaHlfb3BzID0gTkJMX1JFU19NR1RfVE9fUEhZX09QUyhyZXNfbWd0KTs8YnIgPiZndDsgJmd0 OyArIHN0cnVjdCBuYmxfY29tbW9uX2luZm8gKmNvbW1vbiA9IE5CTF9SRVNfTUdUX1RPX0NPTU1P TihyZXNfbWd0KTs8YnIgPiZndDsgJmd0OyArIGNvbnN0IHN0cnVjdCBydGVfbWVtem9uZSAqbWVt em9uZTs8YnIgPiZndDsgJmd0OyArIHUzMiBzaXplOzxiciA+Jmd0OyAmZ3Q7ICs8YnIgPiZndDsg Jmd0OyArIGlmIChldGhfZGV2LSZndDtkYXRhLSZndDtyeF9xdWV1ZXNbcGFyYW0tJmd0O3F1ZXVl X2lkeF0gIT0gTlVMTCkgezxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgTkJMX0xPRyhXQVJOSU5HLCAi cmUtc2V0dXAgYW4gYWxyZWFkeSBhbGxvY2F0ZWQgcnggcXVldWUiKTs8YnIgPiZndDsgJmd0OyAr Jm5ic3A7IG5ibF9yZXNfdHhyeF9zdG9wX3J4X3JpbmcocHJpdiwgcGFyYW0tJmd0O3F1ZXVlX2lk eCk7PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyBldGhfZGV2LSZndDtkYXRhLSZndDtyeF9xdWV1ZXNb cGFyYW0tJmd0O3F1ZXVlX2lkeF0gPSBOVUxMOzxiciA+Jmd0OyAmZ3Q7ICsgfTxiciA+Jmd0OyAm Z3Q7ICs8YnIgPiZndDsgJmd0OyArIHJ4X3JpbmcgPSBydGVfem1hbGxvY19zb2NrZXQoIm5ibF9y eHJpbmciLCBzaXplb2YoKnJ4X3JpbmcpLDxiciA+Jmd0OyAmZ3Q7ICsgJm5ic3A7ICZuYnNwOyBS VEVfQ0FDSEVfTElORV9TSVpFLCBwYXJhbS0mZ3Q7c29ja2V0X2lkKTs8YnIgPiZndDsgJmd0OyAr IGlmIChyeF9yaW5nID09IE5VTEwpIHs8YnIgPiZndDsgJmd0OyArJm5ic3A7IE5CTF9MT0coRVJS LCAiYWxsb2NhdGUgcnggcXVldWUgZGF0YSBzdHJ1Y3R1cmUgZmFpbGVkIik7PGJyID4mZ3Q7ICZn dDsgKyZuYnNwOyByZXR1cm4gLUVOT01FTTs8YnIgPiZndDsgJmd0OyArIH08YnIgPiZndDsgJmd0 OyArPGJyID4mZ3Q7ICZndDsgKyBzaXplID0gc2l6ZW9mKHJ4X3JpbmctJmd0O3J4X2VudHJ5WzBd KSAqIChwYXJhbS0mZ3Q7bmJfZGVzYyArIE5CTF9ERVNDX1BFUl9MT09QX1ZFQ19NQVgpOzxiciA+ Jmd0OyAmZ3Q7ICsgcnhfcmluZy0mZ3Q7cnhfZW50cnkgPSBydGVfem1hbGxvY19zb2NrZXQoInJ4 cSByeF9lbnRyeSIsIHNpemUsPGJyID4mZ3Q7ICZndDsgKyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7IFJURV9DQUNIRV9MSU5FX1NJWkUsPGJyID4mZ3Q7ICZndDsgKyZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHBhcmFtLSZndDtzb2NrZXRf aWQpOzxiciA+Jmd0OyAmZ3Q7ICsgaWYgKHJ4X3JpbmctJmd0O3J4X2VudHJ5ID09IE5VTEwpIHs8 YnIgPiZndDsgJmd0OyArJm5ic3A7IE5CTF9MT0coRVJSLCAiYWxsb2NhdGUgcnggcXVldWUgJWQg c29mdHdhcmUgcmluZyBmYWlsZWQiLCBwYXJhbS0mZ3Q7cXVldWVfaWR4KTs8YnIgPiZndDsgJmd0 OyArJm5ic3A7IGdvdG8gYWxsb2NfcnhfZW50cnlfZmFpbGVkOzxiciA+Jmd0OyAmZ3Q7ICsgfTxi ciA+Jmd0OyAmZ3Q7ICs8YnIgPiZndDsgJmd0OyArIHNpemUgPSBzaXplb2YocnhfcmluZy0mZ3Q7 ZGVzY1swXSkgKiAocGFyYW0tJmd0O25iX2Rlc2MgKyBOQkxfREVTQ19QRVJfTE9PUF9WRUNfTUFY KTs8YnIgPiZndDsgJmd0OyArIG1lbXpvbmUgPSBydGVfZXRoX2RtYV96b25lX3Jlc2VydmUoZXRo X2RldiwgInJ4X3JpbmciLCBwYXJhbS0mZ3Q7cXVldWVfaWR4LDxiciA+Jmd0OyAmZ3Q7ICsmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgc2l6ZSwgUlRFX0NBQ0hFX0xJTkVfU0laRSw8YnIgPiZn dDsgJmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHBhcmFtLSZndDtzb2NrZXRfaWQp OzxiciA+Jmd0OyAmZ3Q7ICsgaWYgKG1lbXpvbmUgPT0gTlVMTCkgezxiciA+Jmd0OyAmZ3Q7ICsm bmJzcDsgTkJMX0xPRyhFUlIsICJyZXNlcnZlIGRtYSB6b25lIGZvciByeCByaW5nIGZhaWxlZCIp OzxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgZ290byBhbGxvY19kbWFfem9uZV9mYWlsZWQ7PGJyID4m Z3Q7ICZndDsgKyB9PGJyID4mZ3Q7ICZndDsgKzxiciA+Jmd0OyAmZ3Q7ICsgcnhfcmluZy0mZ3Q7 cHJvZHVjdCA9IHBhcmFtLSZndDtwcm9kdWN0OzxiciA+Jmd0OyAmZ3Q7ICsgcnhfcmluZy0mZ3Q7 bWVtcG9vbCA9IHBhcmFtLSZndDttZW1wb29sOzxiciA+Jmd0OyAmZ3Q7ICsgcnhfcmluZy0mZ3Q7 bmJfZGVzYyA9IHBhcmFtLSZndDtuYl9kZXNjOzxiciA+Jmd0OyAmZ3Q7ICsgcnhfcmluZy0mZ3Q7 cXVldWVfaWQgPSBwYXJhbS0mZ3Q7cXVldWVfaWR4OzxiciA+Jmd0OyAmZ3Q7ICsgcnhfcmluZy0m Z3Q7bm90aWZ5X3FpZCA9PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyAocmVzX21ndC0mZ3Q7cmVzX2lu Zm8uYmFzZV9xaWQgKyB0eHJ4X21ndC0mZ3Q7cXVldWVfb2Zmc2V0ICsgcGFyYW0tJmd0O3F1ZXVl X2lkeCkgKiAyOzxiciA+Jmd0OyAmZ3Q7ICsgcnhfcmluZy0mZ3Q7cmluZ19waHlzX2FkZHIgPSBO QkxfRE1BX0FEREVSU1NfRlVMTF9UUkFOU0xBVEUoY29tbW9uLCBtZW16b25lLSZndDtpb3ZhKTs8 YnIgPiZndDsgJmd0OyArIHJ4X3JpbmctJmd0O2Rlc2MgPSAoc3RydWN0IG5ibF9wYWNrZWRfZGVz YyAqKW1lbXpvbmUtJmd0O2FkZHI7PGJyID4mZ3Q7ICZndDsgKyByeF9yaW5nLSZndDtwb3J0X2lk ID0gZXRoX2Rldi0mZ3Q7ZGF0YS0mZ3Q7cG9ydF9pZDs8YnIgPiZndDsgJmd0OyArIHJ4X3Jpbmct Jmd0O2V0aF9kZXYgPSBldGhfZGV2OzxiciA+Jmd0OyAmZ3Q7ICsgcnhfcmluZy0mZ3Q7ZG1hX3Nl dF9tc2IgPSBjb21tb24tJmd0O2RtYV9zZXRfbXNiOzxiciA+Jmd0OyAmZ3Q7ICsgcnhfcmluZy0m Z3Q7ZG1hX2xpbWl0X21zYiA9IGNvbW1vbi0mZ3Q7ZG1hX2xpbWl0X21zYjs8YnIgPiZndDsgJmd0 OyArIHJ4X3JpbmctJmd0O2NvbW1vbiA9IGNvbW1vbjs8YnIgPiZndDsgJmd0OyArIHJ4X3Jpbmct Jmd0O25vdGlmeSA9IHBoeV9vcHMtJmd0O2dldF90YWlsX3B0cihOQkxfUkVTX01HVF9UT19QSFlf UFJJVihyZXNfbWd0KSk7PGJyID4mZ3Q7ICZndDsgKzxiciA+Jmd0OyAmZ3Q7ICsgc3dpdGNoIChw YXJhbS0mZ3Q7cHJvZHVjdCkgezxiciA+Jmd0OyAmZ3Q7ICsgY2FzZSBOQkxfTEVPTklTX1RZUEU6 PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyByeF9yaW5nLSZndDtleHRoZHJfbGVuID0gc2l6ZW9mKHN0 cnVjdCBuYmxfcnhfZWhkcl9sZW9uaXMpOzxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgYnJlYWs7PGJy ID4mZ3Q7ICZndDsgKyBkZWZhdWx0OjxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgcnhfcmluZy0mZ3Q7 ZXh0aGRyX2xlbiA9IHNpemVvZih1bmlvbiBuYmxfcnhfZXh0ZW5kX2hlYWQpOzxiciA+Jmd0OyAm Z3Q7ICsgfTs8YnIgPiZndDsgJmd0OyArPGJyID4mZ3Q7ICZndDsgKyBldGhfZGV2LSZndDtkYXRh LSZndDtyeF9xdWV1ZXNbcGFyYW0tJmd0O3F1ZXVlX2lkeF0gPSByeF9yaW5nOzxiciA+Jmd0OyAm Z3Q7ICs8YnIgPiZndDsgJmd0OyArIHR4cnhfbWd0LSZndDtyeF9yaW5nc1twYXJhbS0mZ3Q7cXVl dWVfaWR4XSA9IHJ4X3Jpbmc7PGJyID4mZ3Q7ICZndDsgKyB0eHJ4X21ndC0mZ3Q7cnhfcmluZ19u dW0rKzs8YnIgPiZndDsgJmd0OyArPGJyID4mZ3Q7ICZndDsgKyAqZG1hX2FkZHIgPSByeF9yaW5n LSZndDtyaW5nX3BoeXNfYWRkcjs8YnIgPiZndDsgJmd0OyArPGJyID4mZ3Q7ICZndDsmbmJzcDsg cmV0dXJuIDA7PGJyID4mZ3Q7ICZndDsgKzxiciA+Jmd0OyAmZ3Q7ICthbGxvY19kbWFfem9uZV9m YWlsZWQ6PGJyID4mZ3Q7ICZndDsgKyBydGVfZnJlZShyeF9yaW5nLSZndDtyeF9lbnRyeSk7PGJy ID4mZ3Q7ICZndDsgKyByeF9yaW5nLSZndDtyeF9lbnRyeSA9IE5VTEw7PGJyID4mZ3Q7ICZndDsg KyByeF9yaW5nLSZndDtzaXplID0gMDs8YnIgPiZndDsgJmd0OyArYWxsb2NfcnhfZW50cnlfZmFp bGVkOjxiciA+Jmd0OyAmZ3Q7ICsgcnRlX2ZyZWUocnhfcmluZyk7PGJyID4mZ3Q7ICZndDsgKyBy ZXR1cm4gLUVOT01FTTs8YnIgPiZndDsgJmd0OyB9PGJyID4mZ3Q7ICZndDs8YnIgPiZndDsgJmd0 OyAtc3RhdGljIHZvaWQgbmJsX3Jlc190eHJ4X3N0b3BfcnhfcmluZyh2b2lkICpwcml2LCB1MTYg cXVldWVfaWR4KTxiciA+Jmd0OyAmZ3Q7ICtzdGF0aWMgaW50IG5ibF9yZXNfYWxsb2NfcnhfYnVm cyh2b2lkICpwcml2LCB1MTYgcXVldWVfaWR4KTxiciA+Jmd0OyAmZ3Q7IHs8YnIgPiZndDsgJmd0 OyZuYnNwOyBSVEVfU0VUX1VTRUQocHJpdik7PGJyID4mZ3Q7ICZndDsmbmJzcDsgUlRFX1NFVF9V U0VEKHF1ZXVlX2lkeCk7PGJyID4mZ3Q7ICZndDsgKyByZXR1cm4gMDs8YnIgPiZndDsgJmd0OyB9 PGJyID4mZ3Q7ICZndDs8YnIgPiZndDsgJmd0OyBzdGF0aWMgdm9pZCBuYmxfcmVzX3R4cnhfcmVs ZWFzZV9yeF9yaW5nKHZvaWQgKnByaXYsIHUxNiBxdWV1ZV9pZHgpPGJyID4mZ3Q7ICZndDsgezxi ciA+Jmd0OyAmZ3Q7IC0gUlRFX1NFVF9VU0VEKHByaXYpOzxiciA+Jmd0OyAmZ3Q7IC0gUlRFX1NF VF9VU0VEKHF1ZXVlX2lkeCk7PGJyID4mZ3Q7ICZndDsgKyBzdHJ1Y3QgbmJsX3Jlc291cmNlX21n dCAqcmVzX21ndCA9IChzdHJ1Y3QgbmJsX3Jlc291cmNlX21ndCAqKXByaXY7PGJyID4mZ3Q7ICZn dDsgKyBzdHJ1Y3QgbmJsX3R4cnhfbWd0ICp0eHJ4X21ndCA9IE5CTF9SRVNfTUdUX1RPX1RYUlhf TUdUKHJlc19tZ3QpOzxiciA+Jmd0OyAmZ3Q7ICsgc3RydWN0IG5ibF9yZXNfcnhfcmluZyAqcnhf cmluZyA9PGJyID4mZ3Q7ICZndDsgKyAmbmJzcDsgTkJMX1JFU19NR1RfVE9fUlhfUklORyhyZXNf bWd0LCBxdWV1ZV9pZHgpOzxiciA+Jmd0OyAmZ3Q7ICsgaWYgKCFyeF9yaW5nKTxiciA+Jmd0OyAm Z3Q7ICsmbmJzcDsgcmV0dXJuOzxiciA+Jmd0OyAmZ3Q7ICs8YnIgPiZndDsgJmd0OyArIHJ0ZV9m cmVlKHJ4X3JpbmctJmd0O3J4X2VudHJ5KTs8YnIgPiZndDsgJmd0OyArIHJ0ZV9mcmVlKHJ4X3Jp bmcpOzxiciA+Jmd0OyAmZ3Q7ICsgdHhyeF9tZ3QtJmd0O3J4X3JpbmdzW3F1ZXVlX2lkeF0gPSBO VUxMOzxiciA+Jmd0OyAmZ3Q7IH08YnIgPiZndDsgJmd0OzxiciA+Jmd0OyAmZ3Q7IHN0YXRpYyB2 b2lkIG5ibF9yZXNfdHhyeF91cGRhdGVfcnhfcmluZyh2b2lkICpwcml2LCB1MTYgaW5kZXgpPGJy ID4mZ3Q7ICZndDsgQEAgLTEwNiw3ICszNDcsNyBAQCBkbyB7Jm5ic3A7ICZuYnNwOyAmbmJzcDsg Jm5ic3A7ICZuYnNwOyBcPGJyID4mZ3Q7ICZndDsmbmJzcDsgTkJMX1RYUlhfU0VUX09QUyhyZW1v dmVfcmluZ3MsIG5ibF9yZXNfdHhyeF9yZW1vdmVfcmluZ3MpOyZuYnNwOyBcPGJyID4mZ3Q7ICZn dDsmbmJzcDsgTkJMX1RYUlhfU0VUX09QUyhzdGFydF90eF9yaW5nLCBuYmxfcmVzX3R4cnhfc3Rh cnRfdHhfcmluZyk7Jm5ic3A7IFw8YnIgPiZndDsgJmd0OyZuYnNwOyBOQkxfVFhSWF9TRVRfT1BT KHN0b3BfdHhfcmluZywgbmJsX3Jlc190eHJ4X3N0b3BfdHhfcmluZyk7Jm5ic3A7IFw8YnIgPiZn dDsgJmd0OyAtIE5CTF9UWFJYX1NFVF9PUFMocmVsZWFzZV90eF9yaW5nLCBuYmxfcmVzX3R4cnhf cmVsZWFzZV90eHJpbmcpOyZuYnNwOyBcPGJyID4mZ3Q7ICZndDsgKyBOQkxfVFhSWF9TRVRfT1BT KHJlbGVhc2VfdHhfcmluZywgbmJsX3Jlc190eHJ4X3JlbGVhc2VfdHhfcmluZyk7IFw8YnIgPiZn dDsgJmd0OyZuYnNwOyBOQkxfVFhSWF9TRVRfT1BTKHN0YXJ0X3J4X3JpbmcsIG5ibF9yZXNfdHhy eF9zdGFydF9yeF9yaW5nKTsmbmJzcDsgXDxiciA+Jmd0OyAmZ3Q7Jm5ic3A7IE5CTF9UWFJYX1NF VF9PUFMoYWxsb2NfcnhfYnVmcywgbmJsX3Jlc19hbGxvY19yeF9idWZzKTsgJm5ic3A7IFw8YnIg PiZndDsgJmd0OyZuYnNwOyBOQkxfVFhSWF9TRVRfT1BTKHN0b3BfcnhfcmluZywgbmJsX3Jlc190 eHJ4X3N0b3BfcnhfcmluZyk7Jm5ic3A7IFw8YnIgPiZndDsgJmd0OyBkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvbmJsL25ibF9ody9uYmxfdHhyeC5oIGIvZHJpdmVycy9uZXQvbmJsL25ibF9ody9u YmxfdHhyeC5oPGJyID4mZ3Q7ICZndDsgaW5kZXggNTZkYmQzYzU4Ny4uODM2OTZkYmM3MiAxMDA2 NDQ8YnIgPiZndDsgJmd0OyAtLS0gYS9kcml2ZXJzL25ldC9uYmwvbmJsX2h3L25ibF90eHJ4Lmg8 YnIgPiZndDsgJmd0OyArKysgYi9kcml2ZXJzL25ldC9uYmwvbmJsX2h3L25ibF90eHJ4Lmg8YnIg PiZndDsgJmd0OyBAQCAtNyw0ICs3LDEwMyBAQDxiciA+Jmd0OyAmZ3Q7PGJyID4mZ3Q7ICZndDsg I2luY2x1ZGUgIm5ibF9yZXNvdXJjZS5oIjxiciA+Jmd0OyAmZ3Q7PGJyID4mZ3Q7ICZndDsgKyNk ZWZpbmUgTkJMX1BBQ0tFRF9ERVNDX0ZfQVZBSUwgJm5ic3A7ICg3KTxiciA+Jmd0OyAmZ3Q7ICsj ZGVmaW5lIE5CTF9QQUNLRURfREVTQ19GX1VTRUQgJm5ic3A7ICgxNSk8YnIgPiZndDsgJmd0OyAr I2RlZmluZSBOQkxfVlJJTkdfREVTQ19GX05FWFQgJm5ic3A7ICgxICZsdDsmbHQ7IDApPGJyID4m Z3Q7ICZndDsgKyNkZWZpbmUgTkJMX1ZSSU5HX0RFU0NfRl9XUklURSAmbmJzcDsgKDEgJmx0OyZs dDsgMSk8YnIgPiZndDsgJmd0OyArPGJyID4mZ3Q7ICZndDsgKyNkZWZpbmUgTkJMX1RYX1JTX1RI UkVTSCAmbmJzcDsgKDMyKTxiciA+Jmd0OyAmZ3Q7ICsjZGVmaW5lIE5CTF9UWF9IRUFERVJfTEVO ICZuYnNwOyAoMzIpPGJyID4mZ3Q7ICZndDsgKyNkZWZpbmUgTkJMX1ZRX0hEUl9OQU1FX01BWFNJ WkUgJm5ic3A7ICgzMik8YnIgPiZndDsgJmd0OyArPGJyID4mZ3Q7ICZndDsgKyNkZWZpbmUgTkJM X0RFU0NfUEVSX0xPT1BfVkVDX01BWCZuYnNwOyAoOCk8YnIgPiZndDsgJmd0OyArPGJyID4mZ3Q7 ICZndDsgK3VuaW9uIG5ibF90eF9leHRlbmRfaGVhZCB7PGJyID4mZ3Q7ICZndDsgKyBzdHJ1Y3Qg bmJsX3R4X2VoZHJfbGVvbmlzIHs8YnIgPiZndDsgJmd0OyArJm5ic3A7IC8qIERXMCAqLzxiciA+ Jmd0OyAmZ3Q7ICsmbmJzcDsgdTMyIG1hY19sZW4gOjU7PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyB1 MzIgaXBfbGVuIDo1OzxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgdTMyIGw0X2xlbiA6NDs8YnIgPiZn dDsgJmd0OyArJm5ic3A7IHUzMiBsNF90eXBlIDoyOzxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgdTMy IGlubmVyX2lwX3R5cGUgOjI7PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyB1MzIgZXh0ZXJuYWxfaXBf dHlwZSA6Mjs8YnIgPiZndDsgJmd0OyArJm5ic3A7IHUzMiBleHRlcm5hbF9pcF9sZW4gOjU7PGJy ID4mZ3Q7ICZndDsgKyZuYnNwOyB1MzIgbDRfdHVubmVsX3R5cGUgOjI7PGJyID4mZ3Q7ICZndDsg KyZuYnNwOyB1MzIgbDRfdHVubmVsX2xlbiA6NTs8YnIgPiZndDsgJmd0OyArJm5ic3A7IC8qIERX MSAqLzxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgdTMyIGw0c19zaWQgOjEwOzxiciA+Jmd0OyAmZ3Q7 ICsmbmJzcDsgdTMyIGw0c19zeW5jX2luZCA6MTs8YnIgPiZndDsgJmd0OyArJm5ic3A7IHUzMiBs NHNfcmVkdW5faW5kIDoxOzxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgdTMyIGw0c19yZWR1bl9oZWFk X2luZCA6MTs8YnIgPiZndDsgJmd0OyArJm5ic3A7IHUzMiBsNHNfaGRsX2luZCA6MTs8YnIgPiZn dDsgJmd0OyArJm5ic3A7IHUzMiBsNHNfcGJyYWNfbW9kZSA6MTs8YnIgPiZndDsgJmd0OyArJm5i c3A7IHUzMiByc3YwIDoyOzxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgdTMyIG1zcyA6MTQ7PGJyID4m Z3Q7ICZndDsgKyZuYnNwOyB1MzIgdHNvIDoxOzxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgLyogRFcy ICovPGJyID4mZ3Q7ICZndDsgKyZuYnNwOyAvKiBpZiBkcG9ydCA9IE5CTF9UWF9EUE9SVF9FVEg7 IGRwb3J0X2luZm8gPSAwPGJyID4mZ3Q7ICZndDsgKyAmbmJzcDsgKiBpZiBkcG9ydCA9IE5CTF9U WF9EUE9SVF9IT1NUOyBkcG9ydF9pbmZvID0gaG9zdCBxdWV1ZSBpZDxiciA+Jmd0OyAmZ3Q7ICsg Jm5ic3A7ICogaWYgZHBvcnQgPSBOQkxfVFhfRFBPUlRfRUNQVTsgZHBvcnRfaW5mbyA9IGVjcHUg cXVldWVfaWQ8YnIgPiZndDsgJmd0OyArICZuYnNwOyAqLzxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsg dTMyIGRwb3J0X2luZm8gOjExOzxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgLyogaWYgZHBvcnQgPSBO QkxfVFhfRFBPUlRfRVRIOyBkcG9ydF9pZFszOjBdID0gZXRoIHBvcnQgaWQsIGRwb3J0X2lkWzk6 NF0gPSBsYWcgaWQ8YnIgPiZndDsgJmd0OyArICZuYnNwOyAqIGlmIGRwb3J0ID0gTkJMX1RYX0RQ T1JUX0hPU1Q7IGRwb3J0X2lkWzk6MF0gPSBob3N0IHZzaV9pZDxiciA+Jmd0OyAmZ3Q7ICsgJm5i c3A7ICogaWYgZHBvcnQgPSBOQkxfVFhfRFBPUlRfRUNQVTsgZHBvcnRfaWRbOTowXSA9IGVjcHUg dnNpX2lkPGJyID4mZ3Q7ICZndDsgKyAmbmJzcDsgKi88YnIgPiZndDsgJmd0OyArJm5ic3A7IHUz MiBkcG9ydF9pZCA6MTA7PGJyID4mZ3Q7ICZndDsgKyNkZWZpbmUgTkJMX1RYX0RQT1JUX0lEX0xB R19PRlRfTEVPTklTICg0KTxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgdTMyIGRwb3J0IDozOzxiciA+ Jmd0OyAmZ3Q7ICsjZGVmaW5lIE5CTF9UWF9EUE9SVF9FVEgmbmJzcDsgKDApPGJyID4mZ3Q7ICZn dDsgKyNkZWZpbmUgTkJMX1RYX0RQT1JUX0hPU1QmbmJzcDsgKDEpPGJyID4mZ3Q7ICZndDsgKyNk ZWZpbmUgTkJMX1RYX0RQT1JUX0VDUFUmbmJzcDsgKDIpPGJyID4mZ3Q7ICZndDsgKyNkZWZpbmUg TkJMX1RYX0RQT1JUX0VNUCZuYnNwOyAoMyk8YnIgPiZndDsgJmd0OyArI2RlZmluZSBOQkxfVFhf RFBPUlRfQk1DJm5ic3A7ICg0KTxiciA+Jmd0OyAmZ3Q7ICsjZGVmaW5lIE5CTF9UWF9EUE9SVF9F TVBfRFJBQ08mbmJzcDsgKDIpPGJyID4mZ3Q7ICZndDsgKyNkZWZpbmUgTkJMX1RYX0RQT1JUX0JN Q19EUkFDTyZuYnNwOyAoMyk8YnIgPiZndDsgJmd0OyArJm5ic3A7IHUzMiBmd2QgOjI7PGJyID4m Z3Q7ICZndDsgKyNkZWZpbmUgTkJMX1RYX0ZXRF9UWVBFX0RST1AmbmJzcDsgKDApPGJyID4mZ3Q7 ICZndDsgKyNkZWZpbmUgTkJMX1RYX0ZXRF9UWVBFX05PUk1BTCZuYnNwOyAoMSk8YnIgPiZndDsg Jmd0OyArI2RlZmluZSBOQkxfVFhfRldEX1RZUEVfUlNWJm5ic3A7ICgyKTxiciA+Jmd0OyAmZ3Q7 ICsjZGVmaW5lIE5CTF9UWF9GV0RfVFlQRV9DUFVfQVNTSUdORUQgKDMpPGJyID4mZ3Q7ICZndDsg KyZuYnNwOyB1MzIgcnNzX2xhZ19lbiA6MTs8YnIgPiZndDsgJmd0OyArJm5ic3A7IHUzMiBsNF9j c3VtX2VuIDoxOzxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgdTMyIGwzX2NzdW1fZW4gOjE7PGJyID4m Z3Q7ICZndDsgKyZuYnNwOyB1MzIgcnN2MSA6Mzs8YnIgPiZndDsgJmd0OyArIH0gbGVvbmlzOzxi ciA+Jmd0OyAmZ3Q7ICt9OzxiciA+Jmd0OyAmZ3Q7ICs8YnIgPiZndDsgJmd0OyArdW5pb24gbmJs X3J4X2V4dGVuZF9oZWFkIHs8YnIgPiZndDsgJmd0OyArIHN0cnVjdCBuYmxfcnhfZWhkcl9sZW9u aXMgezxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgLyogRFcwICovPGJyID4mZ3Q7ICZndDsgKyZuYnNw OyAvKiAweDA6ZXRoLCAweDE6aG9zdCwgMHgyOmVjcHUsIDB4MzplbXAsIDB4NDpiY20gKi88YnIg PiZndDsgJmd0OyArJm5ic3A7IHUzMiBzcG9ydCA6Mzs8YnIgPiZndDsgJmd0OyArJm5ic3A7IHUz MiBkcG9ydF9pbmZvIDoxMTs8YnIgPiZndDsgJmd0OyArJm5ic3A7IC8qIHNwb3J0ID0gMCwgc3Bv cnRfaWRbMzowXSA9IGV0aCBpZCw8YnIgPiZndDsgJmd0OyArICZuYnNwOyAqIHNwb3J0ID0gMSwg c3BvcnRfaWRbOTowXSA9IGhvc3QgdnNpX2lkLDxiciA+Jmd0OyAmZ3Q7ICsgJm5ic3A7ICogc3Bv cnQgPSAyLCBzcG9ydF9pZFs5OjBdID0gZWNwdSB2c2lfaWQsPGJyID4mZ3Q7ICZndDsgKyAmbmJz cDsgKi88YnIgPiZndDsgJmd0OyArJm5ic3A7IHUzMiBzcG9ydF9pZCA6MTA7PGJyID4mZ3Q7ICZn dDsgKyZuYnNwOyAvKiAweDA6ZHJvcCwgMHgxOm5vcm1hbCwgMHgyOmNwdSB1cGNhbGwgKi88YnIg PiZndDsgJmd0OyArJm5ic3A7IHUzMiBmd2QgOjI7PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyB1MzIg cnN2MCA6Njs8YnIgPiZndDsgJmd0OyArJm5ic3A7IC8qIERXMSAqLzxiciA+Jmd0OyAmZ3Q7ICsm bmJzcDsgdTMyIGVycm9yX2NvZGUgOjY7PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyB1MzIgcHR5cGUg OjEwOzxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgdTMyIHByb2ZpbGVfaWQgOjQ7PGJyID4mZ3Q7ICZn dDsgKyZuYnNwOyB1MzIgY2hlY2tzdW1fc3RhdHVzIDoxOzxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsg dTMyIHJzdjEgOjE7PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyB1MzIgbDRzX3NpZCA6MTA7PGJyID4m Z3Q7ICZndDsgKyZuYnNwOyAvKiBEVzIgKi88YnIgPiZndDsgJmd0OyArJm5ic3A7IHUzMiByc3Yz IDoyOzxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgdTMyIGw0c19oZGxfaW5kIDoxOzxiciA+Jmd0OyAm Z3Q7ICsmbmJzcDsgdTMyIGw0c190Y3Bfb2Zmc2V0IDoxNDs8YnIgPiZndDsgJmd0OyArJm5ic3A7 IHUzMiBsNHNfcmVzeW5jX2luZCA6MTs8YnIgPiZndDsgJmd0OyArJm5ic3A7IHUzMiBsNHNfY2hl Y2tfaW5kIDoxOzxiciA+Jmd0OyAmZ3Q7ICsmbmJzcDsgdTMyIGw0c19kZWNfaW5kIDoxOzxiciA+ Jmd0OyAmZ3Q7ICsmbmJzcDsgdTMyIHJzdjIgOjQ7PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyB1MzIg bnVtX2J1ZmZlcnMgOjg7PGJyID4mZ3Q7ICZndDsgKyZuYnNwOyB1MzIgaGFzaF92YWx1ZTs8YnIg PiZndDsgJmd0OyArIH0gbGVvbmlzOzxiciA+Jmd0OyAmZ3Q7ICt9OzxiciA+Jmd0OyAmZ3Q7ICs8 YnIgPiZndDsgJmd0OyAjZW5kaWY8YnIgPiZndDsgJmd0OyBkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvbmJsL25ibF9pbmNsdWRlL25ibF9kZWZfY29tbW9uLmggYi9kcml2ZXJzL25ldC9uYmwvbmJs X2luY2x1ZGUvbmJsX2RlZl9jb21tb24uaDxiciA+Jmd0OyAmZ3Q7IGluZGV4IGY3NzRhZmJhMDAu LjI1OTE5MzMwZGYgMTAwNjQ0PGJyID4mZ3Q7ICZndDsgLS0tIGEvZHJpdmVycy9uZXQvbmJsL25i bF9pbmNsdWRlL25ibF9kZWZfY29tbW9uLmg8YnIgPiZndDsgJmd0OyArKysgYi9kcml2ZXJzL25l dC9uYmwvbmJsX2luY2x1ZGUvbmJsX2RlZl9jb21tb24uaDxiciA+Jmd0OyAmZ3Q7IEBAIC03OSw2 ICs3OSwxMSBAQCBzdHJ1Y3QgbmJsX2Rldl91c2VyX2xpbmtfc3RhdCB7PGJyID4mZ3Q7ICZndDsg I2RlZmluZSBOQkxfREVWX1VTRVJfU0VUX1BST01JU0NfTU9ERSBfSU8oTkJMX0RFVl9VU0VSX1RZ UEUsIDEwKTxiciA+Jmd0OyAmZ3Q7ICNkZWZpbmUgTkJMX0RFVl9VU0VSX1NFVF9NQ0FTVF9NT0RF IF9JTyhOQkxfREVWX1VTRVJfVFlQRSwgMTEpPGJyID4mZ3Q7ICZndDs8YnIgPiZndDsgJmd0OyAr I2RlZmluZSBOQkxfRE1BX0FEREVSU1NfRlVMTF9UUkFOU0xBVEUoaHcsIGFkZHJlc3MpICZuYnNw OyAmbmJzcDsgXDxiciA+Jmd0OyA8YnIgPiZndDsgVHlwbzogQURERVJTUyAtJmd0OyBBRERSRVNT PzxiciA+Jmd0OyA8YnIgPiZndDsgVGhhbmsgeW91LjxiciA+Jmd0OyA8YnIgPiZndDsgJmd0OyAr ICh7IHR5cGVvZihodykgX2h3ID0gKGh3KTsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgXDxiciA+Jmd0 OyAmZ3Q7ICsgKCgoKHU2NCkoKF9odyktJmd0O2RtYV9zZXRfbXNiKSkgJmx0OyZsdDsgKCh1NjQp KChfaHcpLSZndDtkbWFfbGltaXRfbXNiKSkpIHwgKGFkZHJlc3MpKTsgXDxiciA+Jmd0OyAmZ3Q7 ICsgfSk8YnIgPiZndDsgJmd0OyArPGJyID4mZ3Q7ICZndDsgc3RydWN0IG5ibF9kbWFfbWVtIHs8 YnIgPiZndDsgJmd0OyZuYnNwOyB2b2lkICp2YTs8YnIgPiZndDsgJmd0OyZuYnNwOyB1aW50NjRf dCBwYTs8YnIgPiZndDsgJmd0OyBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmJsL25ibF9pbmNs dWRlL25ibF9pbmNsdWRlLmggYi9kcml2ZXJzL25ldC9uYmwvbmJsX2luY2x1ZGUvbmJsX2luY2x1 ZGUuaDxiciA+Jmd0OyAmZ3Q7IGluZGV4IGUxMGZjYzkyNTQuLjk3NGE3OTgzNWEgMTAwNjQ0PGJy ID4mZ3Q7ICZndDsgLS0tIGEvZHJpdmVycy9uZXQvbmJsL25ibF9pbmNsdWRlL25ibF9pbmNsdWRl Lmg8YnIgPiZndDsgJmd0OyArKysgYi9kcml2ZXJzL25ldC9uYmwvbmJsX2luY2x1ZGUvbmJsX2lu Y2x1ZGUuaDxiciA+Jmd0OyAmZ3Q7IEBAIC05MSw2ICs5MSw3IEBAIHN0cnVjdCBuYmxfc3RhcnRf dHhfcmluZ19wYXJhbSB7PGJyID4mZ3Q7ICZndDsmbmJzcDsgdTMyIHNvY2tldF9pZDs8YnIgPiZn dDsgJmd0OyZuYnNwOyBlbnVtIG5ibF9wcm9kdWN0X3R5cGUgcHJvZHVjdDs8YnIgPiZndDsgJmd0 OyZuYnNwOyBjb25zdCBzdHJ1Y3QgcnRlX2V0aF90eGNvbmYgKmNvbmY7PGJyID4mZ3Q7ICZndDsg KyBib29sICgqYm9uZF9icm9hZGNhc3RfY2hlY2spKHN0cnVjdCBydGVfbWJ1ZiAqbWJ1Zik7PGJy ID4mZ3Q7ICZndDsgfTs8YnIgPiZndDsgJmd0OzxiciA+Jmd0OyAmZ3Q7IHN0cnVjdCBuYmxfdHhy eF9xdWV1ZV9wYXJhbSB7PGJyID4mZ3Q7ICZndDsgLS08YnIgPiZndDsgJmd0OyAyLjM0LjE8YnIg PiZndDsgJmd0OzxiciA+Jmd0OyAmZ3Q7PGJyID4mZ3Q7IDxiciA+Jmd0OyA8YnIgPiZndDsg5pys 6YKu5Lu25omA5ZCr5L+h5oGv5Y+K5YW25Lu75L2V6ZmE5Lu25Li65L+d5a+G5L+h5oGv5LiU5Y+v 6IO95bGe5LqO5LiT5pyJ5L+h5oGv44CC5Lu75L2V6Z2e5oyH5a6a5o6l5pS25Lq65Z2H5peg5p2D 6K6/6Zeu5pys6YKu5Lu244CC5aaC5p6c5oKo5LiN5piv6K+l6YKu5Lu255qE5oyH5a6a5o6l5pS2 5Lq677yM6YKj5LmI5Lu75L2V5a+55pys6YKu5Lu25YaF5a656L+b6KGM5oqr6Zyy77yM5aSN5Yi2 5oiW5L2/55So55qE6KGM5Li65Z2H5piv56aB5q2i55qE44CC5aaC5p6c5oKo5LiNPGJyID4mZ3Q7 IOaYr+ivpemCruS7tueahOaMh+WumuaOpeaUtuS6uu+8jOivt+aCqOeri+WNs+mAmui/h+mCruS7 tumAmuefpSBjb21wbGlhbmNlQG5lYnVsYS1tYXRyaXguY29t5bm256uL5Y2z5Yig6Zmk5oKo6ZSZ 6K+v5o6l5Y+X55qE6YKu5Lu244CCPGJyID4mZ3Q7IFRoZSBpbmZvcm1hdGlvbiBpbiB0aGlzIG1l c3NhZ2UgYW5kIGFueSBhdHRhY2htZW50cyBpcyBjb25maWRlbnRpYWwgYW5kIG1heSBiZSBwcml2 aWxlZ2VkLiZuYnNwOyBBY2Nlc3MgdG8gdGhpcyBlbWFpbCBieSBhbnlvbmUgb3RoZXIgdGhhbiB0 aGUgaW50ZW5kZWQgcmVjaXBpZW50IGlzIG5vdCBhdXRob3JpemVkLiZuYnNwOyBJZiB5b3UgYTxi ciA+Jmd0OyByZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgZGlzY2xvc3VyZSwgY29weWlu ZyBvciB1c2Ugb2YgdGhlIGNvbnRlbnRzIG9mIHRoaXMgZW1haWwgaXMgcHJvaGliaXRlZC4mbmJz cDsgSWYgeW91IGFyZSBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgcGxlYXNlIG5vdGlmeSZu YnNwOyBjb21wbGlhbmNlQG5lYnVsYS1tYXRyaXguYzxiciA+Jmd0OyBvbSBpbW1lZGlhdGVseSBi eSBlbWFpbCwgYW5kIHBsZWFzZSBkZXN0cm95IHRoZSBlbWFpbCB5b3UgcmVjZWl2ZWQgaW4gZXJy b3IuPGJyID4mZ3Q7IDxiciA+Jmd0OzwvZGl2PjwvYmxvY2txdW90ZT48ZGl2ICBzdHlsZT0ibGlu ZS1oZWlnaHQ6IDIwcHg7IGNsZWFyOiBib3RoOyI+PGJyID48L2Rpdj48L2Rpdj48L2Rpdj4NCjxk aXYgc3R5bGU9ImNsZWFyOiBib3RoOyI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogMTBweDsgY29s b3I6IHJnYigyMTYsIDIxNiwgMjE2KTsiPuacrOmCruS7tuaJgOWQq+S/oeaBr+WPiuWFtuS7u+S9 lemZhOS7tuS4uuS/neWvhuS/oeaBr+S4lOWPr+iDveWxnuS6juS4k+acieS/oeaBr+OAguS7u+S9 lemdnuaMh+WumuaOpeaUtuS6uuWdh+aXoOadg+iuv+mXruacrOmCruS7tuOAguWmguaenOaCqOS4 jeaYr+ivpemCruS7tueahOaMh+WumuaOpeaUtuS6uu+8jOmCo+S5iOS7u+S9leWvueacrOmCruS7 tuWGheWuuei/m+ihjOaKq+mcsu+8jOWkjeWItuaIluS9v+eUqOeahOihjOS4uuWdh+aYr+emgeat oueahOOAguWmguaenOaCqOS4jeaYr+ivpemCruS7tueahOaMh+WumuaOpeaUtuS6uu+8jOivt+aC qOeri+WNs+mAmui/h+mCruS7tumAmuefpSZuYnNwO2NvbXBsaWFuY2VAbmVidWxhLW1hdHJpeC5j b23lubbnq4vljbPliKDpmaTmgqjplJnor6/mjqXlj5fnmoTpgq7ku7bjgII8L3NwYW4+PC9kaXY+ PGRpdiBzdHlsZT0iY2xlYXI6IGJvdGg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB4OyBj b2xvcjogcmdiKDIxNiwgMjE2LCAyMTYpOyI+VGhlJm5ic3A7aW5mb3JtYXRpb24mbmJzcDtpbiZu YnNwO3RoaXMmbmJzcDttZXNzYWdlJm5ic3A7YW5kJm5ic3A7YW55Jm5ic3A7YXR0YWNobWVudHMm bmJzcDtpcyZuYnNwO2NvbmZpZGVudGlhbCZuYnNwO2FuZCZuYnNwO21heSZuYnNwO2JlJm5ic3A7 cHJpdmlsZWdlZC4mbmJzcDsmbmJzcDtBY2Nlc3MmbmJzcDt0byZuYnNwO3RoaXMmbmJzcDtlbWFp bCZuYnNwO2J5Jm5ic3A7YW55b25lJm5ic3A7b3RoZXImbmJzcDt0aGFuJm5ic3A7dGhlJm5ic3A7 aW50ZW5kZWQmbmJzcDtyZWNpcGllbnQmbmJzcDtpcyZuYnNwO25vdCZuYnNwO2F1dGhvcml6ZWQu Jm5ic3A7Jm5ic3A7SWYmbmJzcDt5b3UmbmJzcDthcmUmbmJzcDtub3QmbmJzcDt0aGUmbmJzcDtp bnRlbmRlZCZuYnNwO3JlY2lwaWVudCwmbmJzcDtkaXNjbG9zdXJlLCZuYnNwO2NvcHlpbmcmbmJz cDtvciZuYnNwO3VzZSZuYnNwO29mJm5ic3A7dGhlJm5ic3A7Y29udGVudHMmbmJzcDtvZiZuYnNw O3RoaXMmbmJzcDtlbWFpbCZuYnNwO2lzJm5ic3A7cHJvaGliaXRlZC4mbmJzcDsmbmJzcDtJZiZu YnNwO3lvdSZuYnNwO2FyZSZuYnNwO25vdCZuYnNwO3RoZSZuYnNwO2ludGVuZGVkJm5ic3A7cmVj aXBpZW50LCZuYnNwO3BsZWFzZSZuYnNwO25vdGlmeSZuYnNwOyZuYnNwO2NvbXBsaWFuY2VAbmVi dWxhLW1hdHJpeC5jb20mbmJzcDtpbW1lZGlhdGVseSZuYnNwO2J5Jm5ic3A7ZW1haWwsJm5ic3A7 YW5kJm5ic3A7cGxlYXNlJm5ic3A7ZGVzdHJveSZuYnNwO3RoZSZuYnNwO2VtYWlsJm5ic3A7eW91 Jm5ic3A7cmVjZWl2ZWQmbmJzcDtpbiZuYnNwO2Vycm9yLjwvc3Bhbj48L2Rpdj4= ------=ALIBOUNDARY_1991_7f16c251c700_68a296f8_dc705--