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 6BEFE46D30; Fri, 15 Aug 2025 05:47:32 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id ED6644026C; Fri, 15 Aug 2025 05:47:31 +0200 (CEST) Received: from out28-2.mail.aliyun.com (out28-2.mail.aliyun.com [115.124.28.2]) by mails.dpdk.org (Postfix) with ESMTP id CF97C400EF for ; Fri, 15 Aug 2025 05:47:28 +0200 (CEST) X-Alimail-AntiSpam: AC=CONTINUE; BC=0.07386655|-1; CH=green; DM=|CONTINUE|false|; DS=CONTINUE|ham_regular_dialog|0.0244912-0.00148474-0.974024; FP=12715875189926757989|0|0|0|0|-1|-1|-1; HT=maildocker-contentspam033037007037; MF=dimon.zhao@nebula-matrix.com; NM=1; PH=DW; RN=4; RT=4; SR=0; TI=W4_0.2.3_21250BCA_1755229009398_o7001c98c; Received: from WS-web (dimon.zhao@nebula-matrix.com[W4_0.2.3_21250BCA_1755229009398_o7001c98c] cluster:ay29) at Fri, 15 Aug 2025 11:47:25 +0800 Date: Fri, 15 Aug 2025 11:47:25 +0800 From: "Dimon" To: "Ivan Malov" Cc: "dev" , "Leon" , "Sam" Message-ID: <16c66eef-9ea0-4324-b6c2-2cd13f5b26a5.dimon.zhao@nebula-matrix.com> Subject: =?UTF-8?B?5Zue5aSN77yaW1BBVENIIHY0IDEyLzE2XSBuZXQvbmJsOiBhZGQgbmJsIGRldmljZSByeHR4?= =?UTF-8?B?IHF1ZXVlIHNldHVwIGFuZCByZWxlYXNlIG9wcw==?= 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> x-aliyun-mail-creator: W4_0.2.3_null_d2lTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEwOC4wLjUzNTkuMTI1IFNhZmFyaS81MzcuMzYgZGluZ3RhbGstd2luLzEuMC4wIG53KDAuMTQuNykgRGluZ1RhbGsoNy43LjAtUmVsZWFzZS4yNTA1MjIwMDIpIE1vam8vMS4wLjAgTmF0aXZlIEFwcFR5cGUocmVsZWFzZSkgQ2hhbm5lbC8yMDEyMDAgQXJjaGl0ZWN0dXJlL3g4Nl82NA==Gs In-Reply-To: <4f3c8fcf-099b-d148-310e-4ced78d0e846@arknetworks.am> Content-Type: multipart/alternative; boundary="----=ALIBOUNDARY_1990_7fa30643e700_689eadcd_747fc" 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_1990_7fa30643e700_689eadcd_747fc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 SGkgSXZhbiwKVGhhbmsgeW91IGZvciB5b3VyIHJldmlldy4KUmVnYXJkaW5nIHlvdXIgZm9sbG93 aW5nIHJldmlldyBjb21tZW50cy4KPiAraW50IG5ibF9yeF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRl X2V0aF9kZXYgKmV0aF9kZXYsIHUxNiBxdWV1ZV9pZHgsCj4gKyB1MTYgbmJfZGVzYywgdW5zaWdu ZWQgaW50IHNvY2tldF9pZCwKPiArIGNvbnN0IHN0cnVjdCBydGVfZXRoX3J4Y29uZiAqY29uZiwg c3RydWN0IHJ0ZV9tZW1wb29sICptZW1wb29sKQo+ICt7Cj4gKyBzdHJ1Y3QgbmJsX2FkYXB0ZXIg KmFkYXB0ZXIgPSBFVEhfREVWX1RPX05CTF9ERVZfUEZfUFJJVihldGhfZGV2KTsKPiArIHN0cnVj dCBuYmxfZGV2X21ndCAqZGV2X21ndCA9IE5CTF9BREFQVEVSX1RPX0RFVl9NR1QoYWRhcHRlcik7 Cj4gKyBzdHJ1Y3QgbmJsX2Rpc3BhdGNoX29wcyAqZGlzcF9vcHMgPSBOQkxfREVWX01HVF9UT19E SVNQX09QUyhkZXZfbWd0KTsKPiArIHN0cnVjdCBuYmxfZGV2X3JpbmdfbWd0ICpyaW5nX21ndCA9 ICZkZXZfbWd0LT5uZXRfZGV2LT5yaW5nX21ndDsKPiArIHN0cnVjdCBuYmxfZGV2X3JpbmcgKnJ4 X3JpbmcgPSAmcmluZ19tZ3QtPnJ4X3JpbmdzW3F1ZXVlX2lkeF07Cj4gKyBzdHJ1Y3QgbmJsX3N0 YXJ0X3J4X3JpbmdfcGFyYW0gcGFyYW0gPSB7IDAgfTsKPiArIGludCByZXQ7Cj4gKwo+ICsgcGFy YW0ucXVldWVfaWR4ID0gcXVldWVfaWR4Owo+ICsgcGFyYW0ubmJfZGVzYyA9IG5iX2Rlc2M7Cj4g KyBwYXJhbS5zb2NrZXRfaWQgPSBzb2NrZXRfaWQ7Cj4gKyBwYXJhbS5jb25mID0gY29uZjsKSSBk b24ndCBzZWUgd2hlcmUgdGhpcyAnY29uZicgaXMgcGFyc2VkLiBJZiB0aGUgdXNlciBoYXMgcmVx dWVzdGVkIHVuc3VwcG9ydGVkCm9mZmxvYWRzLCBzYXksIHVuc3VwcG9ydGVkIFJTUyBmbG93IHR5 cGVzLCB0aGVuIHRoZSBkcml2ZXIgc2hvdWxkIGdpdmUgYW4gZXJyb3IuCkRvZXMgdGhlIGRyaXZl ciBhY3R1YWxseSBwYXJzZSB1c2VyIFJTUyBjb25maWd1cmF0aW9uPyBVc2VyIFJTUyBrZXk/IFJT UyB0eXBlcz8KRG9lcyB0aGUgcGF0Y2ggc2VyaWVzIGFsbG93IHVzZXIgdG8gc2V0IHRoZWlyIG93 biBSRVRBIHRhYmxlIGZvciBSU1M/ClRvIGFkZHJlc3MgeW91ciBjb25jZXJuczoKVGhpcyBwYXRj aCBzZXJpZXMgZG9lcyBub3Qgc3VwcG9ydCBhbnkgUlNTIGNvbmZpZ3VyYXRpb24sIGluY2x1ZGlu ZzoKMS4gQ3VzdG9tIFJTUyBrZXkgY29uZmlndXJhdGlvbgoyLiBSU1MgZmxvdyB0eXBlIGNvbmZp Z3VyYXRpb24KMy4gVXNlci1kZWZpbmVkIFJFVEEgdGFibGUgY29uZmlndXJhdGlvbgpUaGVyZWZv cmU6CjEuV2UgZG8gbm90IHNldCBmbG93X3R5cGVfcnNzX29mZmxvYWRzIGluIHJ0ZV9ldGhfZGV2 X2luZm8KMi5XZSBkbyBub3QgaW1wbGVtZW50IHRoZSByc3NfaGFzaF91cGRhdGUgYW5kIHJldGFf dXBkYXRlIGludGVyZmFjZXMgaW4gZXRoX2Rldl9vcHMKSW4gdGhlIHJ0ZV9ldGhfcnhfcXVldWVf c2V0dXAgZnVuY3Rpb24sIGl0IGNoZWNrcyB3aGV0aGVyIHVzZXItY29uZmlndXJlZCBvZmZsb2Fk cyBmYWxsIHdpdGhpbiBkZXZfaW5mby5yeF9xdWV1ZV9vZmZsb2FkX2NhcGEuIApTaW5jZSB3ZSBo YXZlbid0IHNldCBkZXZfaW5mby5yeF9xdWV1ZV9vZmZsb2FkX2NhcGEsIHRoZSBmdW5jdGlvbiB3 aWxsIHJldHVybiBhbiBlcnJvciBpZiB1c2VycyBjb25maWd1cmUgYW55IG9mZmxvYWRzLiBDb25z ZXF1ZW50bHksIHdlIGN1cnJlbnRseSBkb24ndCBuZWVkIHRvIHBhcnNlIHRoZSAnY29uZicgcGFy YW1ldGVyLgpUaGUgcGF0Y2ggc2VyaWVzIGN1cnJlbnRseSBmb2N1c2VzIG9uIGJhc2ljIGZ1bmN0 aW9uYWxpdHksIHdpdGggUlNTIHN1cHBvcnQgcGxhbm5lZCBmb3IgZnV0dXJlIGltcGxlbWVudGF0 aW9uLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0K5Y+R5Lu25Lq677yaSXZhbiBNYWxvdiA8aXZhbi5tYWxvdkBhcmtuZXR3 b3Jrcy5hbT4K5Y+R6YCB5pe26Ze077yaMjAyNeW5tDjmnIgxM+aXpSjlkajkuIkpIDIwOjAwCuaU tuS7tuS6uu+8mkRpbW9uPGRpbW9uLnpoYW9AbmVidWxhLW1hdHJpeC5jb20+CuaKhOOAgOmAge+8 mmRldjxkZXZAZHBkay5vcmc+OyBLeW8gTGl1PGt5by5saXVAbmVidWxhLW1hdHJpeC5jb20+OyBM ZW9uPGxlb24ueXVAbmVidWxhLW1hdHJpeC5jb20+OyBTYW08c2FtLmNoZW5AbmVidWxhLW1hdHJp eC5jb20+CuS4u+OAgOmimO+8mlJlOiBbUEFUQ0ggdjQgMTIvMTZdIG5ldC9uYmw6IGFkZCBuYmwg ZGV2aWNlIHJ4dHggcXVldWUgc2V0dXAgYW5kIHJlbGVhc2Ugb3BzCkhpIERpbW9uLAoocGxlYXNl IHNlZSBiZWxvdykKT24gVHVlLCAxMiBBdWcgMjAyNSwgRGltb24gWmhhbyB3cm90ZToKPiBJbXBs ZW1lbnQgTkJMIGRldmljZSBSeCBhbmQgVHggcXVldWUgc2V0dXAgJiByZWxlYXNlIGZ1bmN0aW9u cwo+Cj4gU2lnbmVkLW9mZi1ieTogRGltb24gWmhhbyA8ZGltb24uemhhb0BuZWJ1bGEtbWF0cml4 LmNvbT4KPiAtLS0KPiBkcml2ZXJzL25ldC9uYmwvbmJsX2Rldi9uYmxfZGV2LmMgfCA3NSArKysr Kwo+IGRyaXZlcnMvbmV0L25ibC9uYmxfZGV2L25ibF9kZXYuaCB8IDcgKwo+IGRyaXZlcnMvbmV0 L25ibC9uYmxfZXRoZGV2LmMgfCA0ICsKPiAuLi4vbmJsL25ibF9ody9uYmxfaHdfbGVvbmlzL25i bF9yZXNfbGVvbmlzLmMgfCAyICsKPiBkcml2ZXJzL25ldC9uYmwvbmJsX2h3L25ibF9yZXNvdXJj ZS5oIHwgOTkgKysrKysrCj4gZHJpdmVycy9uZXQvbmJsL25ibF9ody9uYmxfdHhyeC5jIHwgMjg1 ICsrKysrKysrKysrKysrKystLQo+IGRyaXZlcnMvbmV0L25ibC9uYmxfaHcvbmJsX3R4cnguaCB8 IDk5ICsrKysrKwo+IGRyaXZlcnMvbmV0L25ibC9uYmxfaW5jbHVkZS9uYmxfZGVmX2NvbW1vbi5o IHwgNSArCj4gZHJpdmVycy9uZXQvbmJsL25ibF9pbmNsdWRlL25ibF9pbmNsdWRlLmggfCAxICsK PiA5IGZpbGVzIGNoYW5nZWQsIDU1NSBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKPgo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uYmwvbmJsX2Rldi9uYmxfZGV2LmMgYi9kcml2ZXJz L25ldC9uYmwvbmJsX2Rldi9uYmxfZGV2LmMKPiBpbmRleCA4NmRlZmQ2MjFkLi4xN2I5YmQyYzc3 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbmV0L25ibC9uYmxfZGV2L25ibF9kZXYuYwo+ICsrKyBi L2RyaXZlcnMvbmV0L25ibC9uYmxfZGV2L25ibF9kZXYuYwo+IEBAIC01Nyw2ICs1Nyw4MSBAQCBp bnQgbmJsX2Rldl9wb3J0X2Nsb3NlKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldikKPiByZXR1 cm4gMDsKPiB9Cj4KPiAraW50IG5ibF90eF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYg KmV0aF9kZXYsIHUxNiBxdWV1ZV9pZHgsCj4gKyB1MTYgbmJfZGVzYywgdW5zaWduZWQgaW50IHNv Y2tldF9pZCwgY29uc3Qgc3RydWN0IHJ0ZV9ldGhfdHhjb25mICpjb25mKQo+ICt7Cj4gKyBzdHJ1 Y3QgbmJsX2FkYXB0ZXIgKmFkYXB0ZXIgPSBFVEhfREVWX1RPX05CTF9ERVZfUEZfUFJJVihldGhf ZGV2KTsKPiArIHN0cnVjdCBuYmxfZGV2X21ndCAqZGV2X21ndCA9IE5CTF9BREFQVEVSX1RPX0RF Vl9NR1QoYWRhcHRlcik7Cj4gKyBzdHJ1Y3QgbmJsX2Rpc3BhdGNoX29wcyAqZGlzcF9vcHMgPSBO QkxfREVWX01HVF9UT19ESVNQX09QUyhkZXZfbWd0KTsKPiArIHN0cnVjdCBuYmxfZGV2X3Jpbmdf bWd0ICpyaW5nX21ndCA9ICZkZXZfbWd0LT5uZXRfZGV2LT5yaW5nX21ndDsKPiArIHN0cnVjdCBu YmxfZGV2X3JpbmcgKnR4X3JpbmcgPSAmcmluZ19tZ3QtPnR4X3JpbmdzW3F1ZXVlX2lkeF07Cj4g KyBzdHJ1Y3QgbmJsX3N0YXJ0X3R4X3JpbmdfcGFyYW0gcGFyYW0gPSB7IDAgfTsKPiArIGludCBy ZXQ7Cj4gKwo+ICsgcGFyYW0ucXVldWVfaWR4ID0gcXVldWVfaWR4Owo+ICsgcGFyYW0ubmJfZGVz YyA9IG5iX2Rlc2M7Cj4gKyBwYXJhbS5zb2NrZXRfaWQgPSBzb2NrZXRfaWQ7Cj4gKyBwYXJhbS5j b25mID0gY29uZjsKPiArIHBhcmFtLnByb2R1Y3QgPSBhZGFwdGVyLT5jYXBzLnByb2R1Y3RfdHlw ZTsKPiArIHBhcmFtLmJvbmRfYnJvYWRjYXN0X2NoZWNrID0gTlVMTDsKPiArIHJldCA9IGRpc3Bf b3BzLT5zdGFydF90eF9yaW5nKE5CTF9ERVZfTUdUX1RPX0RJU1BfUFJJVihkZXZfbWd0KSwgJnBh cmFtLCAmdHhfcmluZy0+ZG1hKTsKPiArIGlmIChyZXQpIHsKPiArIE5CTF9MT0coRVJSLCAic3Rh cnRfdHhfcmluZyBmYWlsZWQgJWQiLCByZXQpOwo+ICsgcmV0dXJuIHJldDsKPiArIH0KPiArCj4g KyB0eF9yaW5nLT5kZXNjX251bSA9IG5iX2Rlc2M7Cj4gKwo+ICsgcmV0dXJuIHJldDsKPiArfQo+ ICsKPiAraW50IG5ibF9yeF9xdWV1ZV9zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYs IHUxNiBxdWV1ZV9pZHgsCj4gKyB1MTYgbmJfZGVzYywgdW5zaWduZWQgaW50IHNvY2tldF9pZCwK PiArIGNvbnN0IHN0cnVjdCBydGVfZXRoX3J4Y29uZiAqY29uZiwgc3RydWN0IHJ0ZV9tZW1wb29s ICptZW1wb29sKQo+ICt7Cj4gKyBzdHJ1Y3QgbmJsX2FkYXB0ZXIgKmFkYXB0ZXIgPSBFVEhfREVW X1RPX05CTF9ERVZfUEZfUFJJVihldGhfZGV2KTsKPiArIHN0cnVjdCBuYmxfZGV2X21ndCAqZGV2 X21ndCA9IE5CTF9BREFQVEVSX1RPX0RFVl9NR1QoYWRhcHRlcik7Cj4gKyBzdHJ1Y3QgbmJsX2Rp c3BhdGNoX29wcyAqZGlzcF9vcHMgPSBOQkxfREVWX01HVF9UT19ESVNQX09QUyhkZXZfbWd0KTsK PiArIHN0cnVjdCBuYmxfZGV2X3JpbmdfbWd0ICpyaW5nX21ndCA9ICZkZXZfbWd0LT5uZXRfZGV2 LT5yaW5nX21ndDsKPiArIHN0cnVjdCBuYmxfZGV2X3JpbmcgKnJ4X3JpbmcgPSAmcmluZ19tZ3Qt PnJ4X3JpbmdzW3F1ZXVlX2lkeF07Cj4gKyBzdHJ1Y3QgbmJsX3N0YXJ0X3J4X3JpbmdfcGFyYW0g cGFyYW0gPSB7IDAgfTsKPiArIGludCByZXQ7Cj4gKwo+ICsgcGFyYW0ucXVldWVfaWR4ID0gcXVl dWVfaWR4Owo+ICsgcGFyYW0ubmJfZGVzYyA9IG5iX2Rlc2M7Cj4gKyBwYXJhbS5zb2NrZXRfaWQg PSBzb2NrZXRfaWQ7Cj4gKyBwYXJhbS5jb25mID0gY29uZjsKSSBkb24ndCBzZWUgd2hlcmUgdGhp cyAnY29uZicgaXMgcGFyc2VkLiBJZiB0aGUgdXNlciBoYXMgcmVxdWVzdGVkIHVuc3VwcG9ydGVk Cm9mZmxvYWRzLCBzYXksIHVuc3VwcG9ydGVkIFJTUyBmbG93IHR5cGVzLCB0aGVuIHRoZSBkcml2 ZXIgc2hvdWxkIGdpdmUgYW4gZXJyb3IuCkRvZXMgdGhlIGRyaXZlciBhY3R1YWxseSBwYXJzZSB1 c2VyIFJTUyBjb25maWd1cmF0aW9uPyBVc2VyIFJTUyBrZXk/IFJTUyB0eXBlcz8KRG9lcyB0aGUg cGF0Y2ggc2VyaWVzIGFsbG93IHVzZXIgdG8gc2V0IHRoZWlyIG93biBSRVRBIHRhYmxlIGZvciBS U1M/Cj4gKyBwYXJhbS5tZW1wb29sID0gbWVtcG9vbDsKPiArIHBhcmFtLnByb2R1Y3QgPSBhZGFw dGVyLT5jYXBzLnByb2R1Y3RfdHlwZTsKPiArIHJldCA9IGRpc3Bfb3BzLT5zdGFydF9yeF9yaW5n KE5CTF9ERVZfTUdUX1RPX0RJU1BfUFJJVihkZXZfbWd0KSwgJnBhcmFtLCAmcnhfcmluZy0+ZG1h KTsKPiArIGlmIChyZXQpIHsKPiArIE5CTF9MT0coRVJSLCAic3RhcnRfcnhfcmluZyBmYWlsZWQg JWQiLCByZXQpOwo+ICsgcmV0dXJuIHJldDsKPiArIH0KPiArCj4gKyByeF9yaW5nLT5kZXNjX251 bSA9IG5iX2Rlc2M7Cj4gKwo+ICsgcmV0dXJuIHJldDsKPiArfQo+ICsKPiArdm9pZCBuYmxfdHhf cXVldWVzX3JlbGVhc2Uoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LCB1aW50MTZfdCBxdWV1 ZV9pZCkKPiArewo+ICsgc3RydWN0IG5ibF9hZGFwdGVyICphZGFwdGVyID0gRVRIX0RFVl9UT19O QkxfREVWX1BGX1BSSVYoZXRoX2Rldik7Cj4gKyBzdHJ1Y3QgbmJsX2Rldl9tZ3QgKmRldl9tZ3Qg PSBOQkxfQURBUFRFUl9UT19ERVZfTUdUKGFkYXB0ZXIpOwo+ICsgc3RydWN0IG5ibF9kaXNwYXRj aF9vcHMgKmRpc3Bfb3BzID0gTkJMX0RFVl9NR1RfVE9fRElTUF9PUFMoZGV2X21ndCk7Cj4gKwo+ ICsgZGlzcF9vcHMtPnJlbGVhc2VfdHhfcmluZyhOQkxfREVWX01HVF9UT19ESVNQX1BSSVYoZGV2 X21ndCksIHF1ZXVlX2lkKTsKPiArfQo+ICsKPiArdm9pZCBuYmxfcnhfcXVldWVzX3JlbGVhc2Uo c3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LCB1aW50MTZfdCBxdWV1ZV9pZCkKPiArewo+ICsg c3RydWN0IG5ibF9hZGFwdGVyICphZGFwdGVyID0gRVRIX0RFVl9UT19OQkxfREVWX1BGX1BSSVYo ZXRoX2Rldik7Cj4gKyBzdHJ1Y3QgbmJsX2Rldl9tZ3QgKmRldl9tZ3QgPSBOQkxfQURBUFRFUl9U T19ERVZfTUdUKGFkYXB0ZXIpOwo+ICsgc3RydWN0IG5ibF9kaXNwYXRjaF9vcHMgKmRpc3Bfb3Bz ID0gTkJMX0RFVl9NR1RfVE9fRElTUF9PUFMoZGV2X21ndCk7Cj4gKwo+ICsgZGlzcF9vcHMtPnJl bGVhc2VfcnhfcmluZyhOQkxfREVWX01HVF9UT19ESVNQX1BSSVYoZGV2X21ndCksIHF1ZXVlX2lk KTsKPiArfQo+ICsKPiBzdHJ1Y3QgbmJsX2Rldl9vcHMgZGV2X29wcyA9IHsKPiB9Owo+Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ibC9uYmxfZGV2L25ibF9kZXYuaCBiL2RyaXZlcnMvbmV0 L25ibC9uYmxfZGV2L25ibF9kZXYuaAo+IGluZGV4IGVjZmI2ZjZhZTAuLmRjYTIyMzM3NDkgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9uZXQvbmJsL25ibF9kZXYvbmJsX2Rldi5oCj4gKysrIGIvZHJp dmVycy9uZXQvbmJsL25ibF9kZXYvbmJsX2Rldi5oCj4gQEAgLTU2LDUgKzU2LDEyIEBAIGludCBu YmxfZGV2X2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYpOwo+IGludCBuYmxf ZGV2X3BvcnRfc3RhcnQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KTsKPiBpbnQgbmJsX2Rl dl9wb3J0X3N0b3Aoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KTsKPiBpbnQgbmJsX2Rldl9w b3J0X2Nsb3NlKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2Rldik7Cj4gK2ludCBuYmxfdHhfcXVl dWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LCB1MTYgcXVldWVfaWR4LAo+ICsg dTE2IG5iX2Rlc2MsIHVuc2lnbmVkIGludCBzb2NrZXRfaWQsIGNvbnN0IHN0cnVjdCBydGVfZXRo X3R4Y29uZiAqY29uZik7Cj4gK2ludCBuYmxfcnhfcXVldWVfc2V0dXAoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpldGhfZGV2LCB1MTYgcXVldWVfaWR4LAo+ICsgdTE2IG5iX2Rlc2MsIHVuc2lnbmVkIGlu dCBzb2NrZXRfaWQsCj4gKyBjb25zdCBzdHJ1Y3QgcnRlX2V0aF9yeGNvbmYgKmNvbmYsIHN0cnVj dCBydGVfbWVtcG9vbCAqbWVtcG9vbCk7Cj4gK3ZvaWQgbmJsX3R4X3F1ZXVlc19yZWxlYXNlKHN0 cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwgdWludDE2X3QgcXVldWVfaWQpOwo+ICt2b2lkIG5i bF9yeF9xdWV1ZXNfcmVsZWFzZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsIHVpbnQxNl90 IHF1ZXVlX2lkKTsKPgo+ICNlbmRpZgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uYmwvbmJs X2V0aGRldi5jIGIvZHJpdmVycy9uZXQvbmJsL25ibF9ldGhkZXYuYwo+IGluZGV4IGI3NzMwNTkz MDYuLjUxNDE2ZWJhOTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9uZXQvbmJsL25ibF9ldGhkZXYu Ywo+ICsrKyBiL2RyaXZlcnMvbmV0L25ibC9uYmxfZXRoZGV2LmMKPiBAQCAtMzMsNiArMzMsMTAg QEAgY29uc3Qgc3RydWN0IGV0aF9kZXZfb3BzIG5ibF9ldGhfZGV2X29wcyA9IHsKPiAuZGV2X3N0 YXJ0ID0gbmJsX2Rldl9wb3J0X3N0YXJ0LAo+IC5kZXZfc3RvcCA9IG5ibF9kZXZfcG9ydF9zdG9w LAo+IC5kZXZfY2xvc2UgPSBuYmxfZGV2X2Nsb3NlLAo+ICsgLnR4X3F1ZXVlX3NldHVwID0gbmJs X3R4X3F1ZXVlX3NldHVwLAo+ICsgLnJ4X3F1ZXVlX3NldHVwID0gbmJsX3J4X3F1ZXVlX3NldHVw LAo+ICsgLnR4X3F1ZXVlX3JlbGVhc2UgPSBuYmxfdHhfcXVldWVzX3JlbGVhc2UsCj4gKyAucnhf cXVldWVfcmVsZWFzZSA9IG5ibF9yeF9xdWV1ZXNfcmVsZWFzZSwKPiB9Owo+Cj4gc3RhdGljIGlu dCBuYmxfZXRoX2Rldl9pbml0KHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldikKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvbmJsL25ibF9ody9uYmxfaHdfbGVvbmlzL25ibF9yZXNfbGVvbmlz LmMgYi9kcml2ZXJzL25ldC9uYmwvbmJsX2h3L25ibF9od19sZW9uaXMvbmJsX3Jlc19sZW9uaXMu Ywo+IGluZGV4IDYzMjdhYTU1YjQuLmI3ODU3NzRmNjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9u ZXQvbmJsL25ibF9ody9uYmxfaHdfbGVvbmlzL25ibF9yZXNfbGVvbmlzLmMKPiArKysgYi9kcml2 ZXJzL25ldC9uYmwvbmJsX2h3L25ibF9od19sZW9uaXMvbmJsX3Jlc19sZW9uaXMuYwo+IEBAIC01 Myw2ICs1Myw4IEBAIHN0YXRpYyBpbnQgbmJsX3Jlc19zdGFydChzdHJ1Y3QgbmJsX3Jlc291cmNl X21ndF9sZW9uaXMgKnJlc19tZ3RfbGVvbmlzKQo+IHN0cnVjdCBuYmxfcmVzb3VyY2VfbWd0ICpy ZXNfbWd0ID0gJnJlc19tZ3RfbGVvbmlzLT5yZXNfbWd0Owo+IGludCByZXQ7Cj4KPiArIHJlc19t Z3QtPnJlc19pbmZvLmJhc2VfcWlkID0gMDsKPiArCj4gcmV0ID0gbmJsX3R4cnhfbWd0X3N0YXJ0 KHJlc19tZ3QpOwo+IGlmIChyZXQpCj4gZ290byB0eHJ4X2ZhaWxlZDsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvbmJsL25ibF9ody9uYmxfcmVzb3VyY2UuaCBiL2RyaXZlcnMvbmV0L25ibC9u YmxfaHcvbmJsX3Jlc291cmNlLmgKPiBpbmRleCAwN2U2MzI3MjU5Li41NDMwNTRhMmNiIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvbmV0L25ibC9uYmxfaHcvbmJsX3Jlc291cmNlLmgKPiArKysgYi9k cml2ZXJzL25ldC9uYmwvbmJsX2h3L25ibF9yZXNvdXJjZS5oCj4gQEAgLTE2LDEyICsxNiwxMDIg QEAKPiAjZGVmaW5lIE5CTF9SRVNfTUdUX1RPX0NIQU5fT1BTKHJlc19tZ3QpIChOQkxfUkVTX01H VF9UT19DSEFOX09QU19UQkwocmVzX21ndCktPm9wcykKPiAjZGVmaW5lIE5CTF9SRVNfTUdUX1RP X0NIQU5fUFJJVihyZXNfbWd0KSAoTkJMX1JFU19NR1RfVE9fQ0hBTl9PUFNfVEJMKHJlc19tZ3Qp LT5wcml2KQo+ICNkZWZpbmUgTkJMX1JFU19NR1RfVE9fRVRIX0RFVihyZXNfbWd0KSAoKHJlc19t Z3QpLT5ldGhfZGV2KQo+ICsjZGVmaW5lIE5CTF9SRVNfTUdUX1RPX0NPTU1PTihyZXNfbWd0KSAo KHJlc19tZ3QpLT5jb21tb24pCj4gI2RlZmluZSBOQkxfUkVTX01HVF9UT19UWFJYX01HVChyZXNf bWd0KSAoKHJlc19tZ3QpLT50eHJ4X21ndCkKPiArI2RlZmluZSBOQkxfUkVTX01HVF9UT19UWF9S SU5HKHJlc19tZ3QsIGluZGV4KSBcCj4gKyAoTkJMX1JFU19NR1RfVE9fVFhSWF9NR1QocmVzX21n dCktPnR4X3JpbmdzWyhpbmRleCldKQo+ICsjZGVmaW5lIE5CTF9SRVNfTUdUX1RPX1JYX1JJTkco cmVzX21ndCwgaW5kZXgpIFwKPiArIChOQkxfUkVTX01HVF9UT19UWFJYX01HVChyZXNfbWd0KS0+ cnhfcmluZ3NbKGluZGV4KV0pCj4gKwo+ICtzdHJ1Y3QgbmJsX3BhY2tlZF9kZXNjIHsKPiArIHJ0 ZV9sZTY0X3QgYWRkcjsKPiArIHJ0ZV9sZTMyX3QgbGVuOwo+ICsgcnRlX2xlMTZfdCBpZDsKPiAr IHJ0ZV9sZTE2X3QgZmxhZ3M7Cj4gK307Cj4gKwo+ICtzdHJ1Y3QgbmJsX3R4X2VudHJ5IHsKPiAr IHN0cnVjdCBydGVfbWJ1ZiAqbWJ1ZjsKPiArIHVpbnQxNl90IGZpcnN0X2lkOwo+ICt9Owo+ICsK PiArc3RydWN0IG5ibF9yeF9lbnRyeSB7Cj4gKyBzdHJ1Y3QgcnRlX21idWYgKm1idWY7Cj4gK307 Cj4KPiBzdHJ1Y3QgbmJsX3Jlc190eF9yaW5nIHsKPiArIHZvbGF0aWxlIHN0cnVjdCBuYmxfcGFj a2VkX2Rlc2MgKmRlc2M7Cj4gKyBzdHJ1Y3QgbmJsX3R4X2VudHJ5ICp0eF9lbnRyeTsKPiArIGNv bnN0IHN0cnVjdCBydGVfbWVtem9uZSAqbmV0X2hkcl9tejsKPiArIHZvbGF0aWxlIHVpbnQ4X3Qg Km5vdGlmeTsKPiArIHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldjsKPiArIHN0cnVjdCBuYmxf Y29tbW9uX2luZm8gKmNvbW1vbjsKPiArIHU2NCBkZWZhdWx0X2hkclsyXTsKPiArCj4gKyBlbnVt IG5ibF9wcm9kdWN0X3R5cGUgcHJvZHVjdDsKPiArIGludCBkbWFfbGltaXRfbXNiOwo+ICsgYm9v bCBkbWFfc2V0X21zYjsKPiArIHUxNiBuYl9kZXNjOwo+ICsgdTE2IG5leHRfdG9fY2xlYW47Cj4g KyB1MTYgbmV4dF90b191c2U7Cj4gKwo+ICsgdTE2IGF2YWlsX3VzZWRfZmxhZ3M7Cj4gKyBib29s IHVzZWRfd3JhcF9jb3VudGVyOwo+ICsgdTE2IG5vdGlmeV9xaWQ7Cj4gKyB1MTYgZXh0aGRyX2xl bjsKPiArCj4gKyB1MTYgdmxhbl9wcm90bzsKPiArIHUxNiB2bGFuX3RjaTsKPiArIHUxNiBsYWdf aWQ7Cj4gKyB1MTYgdnFfZnJlZV9jbnQ7Cj4gKyAvKiBTdGFydCBmcmVlaW5nIFRYIGJ1ZmZlcnMg aWYgdGhlcmUgYXJlIGxlc3MgZnJlZSBkZXNjcmlwdG9ycyB0aGFuIHRoaXMgdmFsdWUgKi8KPiAr IHUxNiB0eF9mcmVlX3RocmVzaDsKPiArIC8qIE51bWJlciBvZiBUeCBkZXNjcmlwdG9ycyB0byB1 c2UgYmVmb3JlIFJTIGJpdCBpcyBzZXQgKi8KPiArIHUxNiB0eF9yc190aHJlc2g7Cj4gKwo+ICsg dW5zaWduZWQgaW50IHNpemU7Cj4gKwo+ICsgdTE2IHF1ZXVlX2lkOwo+ICsKPiArIHU2NCBvZmZs b2FkczsKPiArIHU2NCByaW5nX3BoeXNfYWRkcjsKPiArCj4gKyB1MTYgKCpwcmVwX3R4X2VoZHIp KHZvaWQgKnByaXYsIHN0cnVjdCBydGVfbWJ1ZiAqbWJ1Zik7Cj4gfTsKPgo+IHN0cnVjdCBuYmxf cmVzX3J4X3Jpbmcgewo+ICsgdm9sYXRpbGUgc3RydWN0IG5ibF9wYWNrZWRfZGVzYyAqZGVzYzsK PiArIHN0cnVjdCBuYmxfcnhfZW50cnkgKnJ4X2VudHJ5Owo+ICsgc3RydWN0IHJ0ZV9tZW1wb29s ICptZW1wb29sOwo+ICsgdm9sYXRpbGUgdWludDhfdCAqbm90aWZ5Owo+ICsgc3RydWN0IHJ0ZV9l dGhfZGV2ICpldGhfZGV2Owo+ICsgc3RydWN0IG5ibF9jb21tb25faW5mbyAqY29tbW9uOwo+ICsg dWludDY0X3QgbWJ1Zl9pbml0aWFsaXplcjsgLyoqPCB2YWx1ZSB0byBpbml0IG1idWZzICovCj4g KyBzdHJ1Y3QgcnRlX21idWYgZmFrZV9tYnVmOwo+ICsKPiArIGVudW0gbmJsX3Byb2R1Y3RfdHlw ZSBwcm9kdWN0Owo+ICsgaW50IGRtYV9saW1pdF9tc2I7Cj4gKyB1bnNpZ25lZCBpbnQgc2l6ZTsK PiArIGJvb2wgZG1hX3NldF9tc2I7Cj4gKyB1MTYgbmJfZGVzYzsKPiArIHUxNiBuZXh0X3RvX2Ns ZWFuOwo+ICsgdTE2IG5leHRfdG9fdXNlOwo+ICsKPiArIHUxNiBhdmFpbF91c2VkX2ZsYWdzOwo+ ICsgYm9vbCB1c2VkX3dyYXBfY291bnRlcjsKPiArIHUxNiBub3RpZnlfcWlkOwo+ICsgdTE2IGV4 dGhkcl9sZW47Cj4gKwo+ICsgdTE2IHZsYW5fcHJvdG87Cj4gKyB1MTYgdmxhbl90Y2k7Cj4gKyB1 MTYgdnFfZnJlZV9jbnQ7Cj4gKyB1MTYgcG9ydF9pZDsKPiArCj4gKyB1MTYgcXVldWVfaWQ7Cj4g KyB1MTYgYnVmX2xlbmd0aDsKPiArCj4gKyB1NjQgb2ZmbG9hZHM7Cj4gKyB1NjQgcmluZ19waHlz X2FkZHI7Cj4gfTsKPgo+IHN0cnVjdCBuYmxfdHhyeF9tZ3Qgewo+IEBAIC0zMywxMSArMTIzLDIw IEBAIHN0cnVjdCBuYmxfdHhyeF9tZ3Qgewo+IHU4IHJ4X3JpbmdfbnVtOwo+IH07Cj4KPiArc3Ry dWN0IG5ibF9yZXNfaW5mbyB7Cj4gKyB1MTYgYmFzZV9xaWQ7Cj4gKyB1MTYgbGNvcmVfbWF4Owo+ ICsgdTE2ICpwZl9xaWRfdG9fbGNvcmVfaWQ7Cj4gKyBydGVfYXRvbWljMTZfdCB0eF9jdXJyZW50 X3F1ZXVlOwo+ICt9Owo+ICsKPiBzdHJ1Y3QgbmJsX3Jlc291cmNlX21ndCB7Cj4gc3RydWN0IHJ0 ZV9ldGhfZGV2ICpldGhfZGV2Owo+IHN0cnVjdCBuYmxfY2hhbm5lbF9vcHNfdGJsICpjaGFuX29w c190Ymw7Cj4gc3RydWN0IG5ibF9waHlfb3BzX3RibCAqcGh5X29wc190Ymw7Cj4gc3RydWN0IG5i bF90eHJ4X21ndCAqdHhyeF9tZ3Q7Cj4gKyBzdHJ1Y3QgbmJsX2NvbW1vbl9pbmZvICpjb21tb247 Cj4gKyBzdHJ1Y3QgbmJsX3Jlc19pbmZvIHJlc19pbmZvOwo+IH07Cj4KPiBzdHJ1Y3QgbmJsX3Jl c291cmNlX21ndF9sZW9uaXMgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uYmwvbmJsX2h3 L25ibF90eHJ4LmMgYi9kcml2ZXJzL25ldC9uYmwvbmJsX2h3L25ibF90eHJ4LmMKPiBpbmRleCBl YWE3ZTRjNjlkLi5jNTFhMzg0NDQ1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbmV0L25ibC9uYmxf aHcvbmJsX3R4cnguYwo+ICsrKyBiL2RyaXZlcnMvbmV0L25ibC9uYmxfaHcvbmJsX3R4cnguYwo+ IEBAIC0zOSw1NSArMzksMjk2IEBAIHN0YXRpYyB2b2lkIG5ibF9yZXNfdHhyeF9yZW1vdmVfcmlu Z3Modm9pZCAqcHJpdikKPiBydGVfZnJlZSh0eHJ4X21ndC0+cnhfcmluZ3MpOwo+IH0KPgo+IC1z dGF0aWMgaW50IG5ibF9yZXNfdHhyeF9zdGFydF90eF9yaW5nKHZvaWQgKnByaXYsCj4gLSBzdHJ1 Y3QgbmJsX3N0YXJ0X3R4X3JpbmdfcGFyYW0gKnBhcmFtLAo+IC0gdTY0ICpkbWFfYWRkcikKPiAr c3RhdGljIGlubGluZSB1MTYgbmJsX3ByZXBfdHhfZWhkcl9sZW9uaXModm9pZCAqcHJpdiwgc3Ry dWN0IHJ0ZV9tYnVmICptYnVmKQo+IHsKPiBSVEVfU0VUX1VTRUQocHJpdik7Cj4gLSBSVEVfU0VU X1VTRUQocGFyYW0pOwo+IC0gUlRFX1NFVF9VU0VEKGRtYV9hZGRyKTsKPiArIFJURV9TRVRfVVNF RChtYnVmKTsKPiByZXR1cm4gMDsKPiB9Cj4KPiBzdGF0aWMgdm9pZCBuYmxfcmVzX3R4cnhfc3Rv cF90eF9yaW5nKHZvaWQgKnByaXYsIHUxNiBxdWV1ZV9pZHgpCj4gewo+IC0gUlRFX1NFVF9VU0VE KHByaXYpOwo+IC0gUlRFX1NFVF9VU0VEKHF1ZXVlX2lkeCk7Cj4gKyBzdHJ1Y3QgbmJsX3Jlc291 cmNlX21ndCAqcmVzX21ndCA9IChzdHJ1Y3QgbmJsX3Jlc291cmNlX21ndCAqKXByaXY7Cj4gKyBz dHJ1Y3QgbmJsX3Jlc190eF9yaW5nICp0eF9yaW5nID0gTkJMX1JFU19NR1RfVE9fVFhfUklORyhy ZXNfbWd0LCBxdWV1ZV9pZHgpOwo+ICsgaW50IGk7Cj4gKwo+ICsgaWYgKCF0eF9yaW5nKQo+ICsg cmV0dXJuOwo+ICsKPiArIGZvciAoaSA9IDA7IGkgPCB0eF9yaW5nLT5uYl9kZXNjOyBpKyspIHsK PiArIGlmICh0eF9yaW5nLT50eF9lbnRyeVtpXS5tYnVmICE9IE5VTEwpIHsKPiArIHJ0ZV9wa3Rt YnVmX2ZyZWVfc2VnKHR4X3JpbmctPnR4X2VudHJ5W2ldLm1idWYpOwo+ICsgbWVtc2V0KCZ0eF9y aW5nLT50eF9lbnRyeVtpXSwgMCwgc2l6ZW9mKCp0eF9yaW5nLT50eF9lbnRyeSkpOwo+ICsgfQo+ ICsgdHhfcmluZy0+ZGVzY1tpXS5mbGFncyA9IDA7Cj4gKyB9Cj4gKwo+ICsgdHhfcmluZy0+YXZh aWxfdXNlZF9mbGFncyA9IEJJVChOQkxfUEFDS0VEX0RFU0NfRl9BVkFJTCk7Cj4gKyB0eF9yaW5n LT51c2VkX3dyYXBfY291bnRlciA9IDE7Cj4gKyB0eF9yaW5nLT5uZXh0X3RvX2NsZWFuID0gTkJM X1RYX1JTX1RIUkVTSCAtIDE7Cj4gKyB0eF9yaW5nLT5uZXh0X3RvX3VzZSA9IDA7Cj4gKyB0eF9y aW5nLT52cV9mcmVlX2NudCA9IHR4X3JpbmctPm5iX2Rlc2M7Cj4gfQo+Cj4gLXN0YXRpYyB2b2lk IG5ibF9yZXNfdHhyeF9yZWxlYXNlX3R4cmluZyh2b2lkICpwcml2LCB1MTYgcXVldWVfaWR4KQo+ ICtzdGF0aWMgdm9pZCBuYmxfcmVzX3R4cnhfcmVsZWFzZV90eF9yaW5nKHZvaWQgKnByaXYsIHUx NiBxdWV1ZV9pZHgpCj4gewo+IC0gUlRFX1NFVF9VU0VEKHByaXYpOwo+IC0gUlRFX1NFVF9VU0VE KHF1ZXVlX2lkeCk7Cj4gKyBzdHJ1Y3QgbmJsX3Jlc291cmNlX21ndCAqcmVzX21ndCA9IChzdHJ1 Y3QgbmJsX3Jlc291cmNlX21ndCAqKXByaXY7Cj4gKyBzdHJ1Y3QgbmJsX3R4cnhfbWd0ICp0eHJ4 X21ndCA9IE5CTF9SRVNfTUdUX1RPX1RYUlhfTUdUKHJlc19tZ3QpOwo+ICsgc3RydWN0IG5ibF9y ZXNfdHhfcmluZyAqdHhfcmluZyA9IE5CTF9SRVNfTUdUX1RPX1RYX1JJTkcocmVzX21ndCwgcXVl dWVfaWR4KTsKPiArIGlmICghdHhfcmluZykKPiArIHJldHVybjsKPiArIHJ0ZV9mcmVlKHR4X3Jp bmctPnR4X2VudHJ5KTsKPiArIHJ0ZV9mcmVlKHR4X3JpbmcpOwo+ICsgdHhyeF9tZ3QtPnR4X3Jp bmdzW3F1ZXVlX2lkeF0gPSBOVUxMOwo+IH0KPgo+IC1zdGF0aWMgaW50IG5ibF9yZXNfdHhyeF9z dGFydF9yeF9yaW5nKHZvaWQgKnByaXYsCj4gLSBzdHJ1Y3QgbmJsX3N0YXJ0X3J4X3JpbmdfcGFy YW0gKnBhcmFtLAo+ICtzdGF0aWMgaW50IG5ibF9yZXNfdHhyeF9zdGFydF90eF9yaW5nKHZvaWQg KnByaXYsCj4gKyBzdHJ1Y3QgbmJsX3N0YXJ0X3R4X3JpbmdfcGFyYW0gKnBhcmFtLAo+IHU2NCAq ZG1hX2FkZHIpCj4gewo+IC0gUlRFX1NFVF9VU0VEKHByaXYpOwo+IC0gUlRFX1NFVF9VU0VEKHBh cmFtKTsKPiAtIFJURV9TRVRfVVNFRChkbWFfYWRkcik7Cj4gKyBzdHJ1Y3QgbmJsX3Jlc291cmNl X21ndCAqcmVzX21ndCA9IChzdHJ1Y3QgbmJsX3Jlc291cmNlX21ndCAqKXByaXY7Cj4gKyBzdHJ1 Y3QgbmJsX3R4cnhfbWd0ICp0eHJ4X21ndCA9IE5CTF9SRVNfTUdUX1RPX1RYUlhfTUdUKHJlc19t Z3QpOwo+ICsgc3RydWN0IG5ibF9yZXNfdHhfcmluZyAqdHhfcmluZyA9IE5CTF9SRVNfTUdUX1RP X1RYX1JJTkcocmVzX21ndCwgcGFyYW0tPnF1ZXVlX2lkeCk7Cj4gKyBzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmV0aF9kZXYgPSBOQkxfUkVTX01HVF9UT19FVEhfREVWKHJlc19tZ3QpOwo+ICsgc3RydWN0 IG5ibF9jb21tb25faW5mbyAqY29tbW9uID0gTkJMX1JFU19NR1RfVE9fQ09NTU9OKHJlc19tZ3Qp Owo+ICsgc3RydWN0IG5ibF9waHlfb3BzICpwaHlfb3BzID0gTkJMX1JFU19NR1RfVE9fUEhZX09Q UyhyZXNfbWd0KTsKPiArIGNvbnN0IHN0cnVjdCBydGVfbWVtem9uZSAqbWVtem9uZTsKPiArIGNv bnN0IHN0cnVjdCBydGVfbWVtem9uZSAqbmV0X2hkcl9tejsKPiArIGNoYXIgdnFfaGRyX25hbWVb TkJMX1ZRX0hEUl9OQU1FX01BWFNJWkVdOwo+ICsgc3RydWN0IG5ibF90eF9laGRyX2xlb25pcyBl eHRfaGRyID0gezB9Owo+ICsgdWludDY0X3Qgb2ZmbG9hZHM7Cj4gKyB1MzIgc2l6ZTsKPiArCj4g KyBvZmZsb2FkcyA9IHBhcmFtLT5jb25mLT5vZmZsb2FkcyB8IGV0aF9kZXYtPmRhdGEtPmRldl9j b25mLnR4bW9kZS5vZmZsb2FkczsKPiArCj4gKyBpZiAoZXRoX2Rldi0+ZGF0YS0+dHhfcXVldWVz W3BhcmFtLT5xdWV1ZV9pZHhdICE9IE5VTEwpIHsKPiArIE5CTF9MT0coV0FSTklORywgInJlLXNl dHVwIGFuIGFscmVhZHkgYWxsb2NhdGVkIHR4IHF1ZXVlIik7Cj4gKyBuYmxfcmVzX3R4cnhfc3Rv cF90eF9yaW5nKHByaXYsIHBhcmFtLT5xdWV1ZV9pZHgpOwo+ICsgZXRoX2Rldi0+ZGF0YS0+dHhf cXVldWVzW3BhcmFtLT5xdWV1ZV9pZHhdID0gTlVMTDsKPiArIH0KPiArCj4gKyB0eF9yaW5nID0g cnRlX3ptYWxsb2MoIm5ibF90eHJpbmciLCBzaXplb2YoKnR4X3JpbmcpLCBSVEVfQ0FDSEVfTElO RV9TSVpFKTsKPiArIGlmICghdHhfcmluZykgewo+ICsgTkJMX0xPRyhFUlIsICJhbGxvY2F0ZSB0 eCBxdWV1ZSBkYXRhIHN0cnVjdHVyZSBmYWlsZWQiKTsKPiArIHJldHVybiAtRU5PTUVNOwo+ICsg fQo+ICsgbWVtc2V0KCZ0eF9yaW5nLT5kZWZhdWx0X2hkciwgMCwgc2l6ZW9mKHR4X3JpbmctPmRl ZmF1bHRfaGRyKSk7Cj4gKyBzd2l0Y2ggKHBhcmFtLT5wcm9kdWN0KSB7Cj4gKyBjYXNlIE5CTF9M RU9OSVNfVFlQRToKPiArIHR4X3JpbmctPmV4dGhkcl9sZW4gPSBzaXplb2Yoc3RydWN0IG5ibF90 eF9laGRyX2xlb25pcyk7Cj4gKyB0eF9yaW5nLT5wcmVwX3R4X2VoZHIgPSBuYmxfcHJlcF90eF9l aGRyX2xlb25pczsKPiArIGV4dF9oZHIuZndkID0gTkJMX1RYX0ZXRF9UWVBFX05PUk1BTDsKPiAr IG1lbWNweSgmdHhfcmluZy0+ZGVmYXVsdF9oZHIsICZleHRfaGRyLCBzaXplb2Yoc3RydWN0IG5i bF90eF9laGRyX2xlb25pcykpOwo+ICsgYnJlYWs7Cj4gKyBkZWZhdWx0Ogo+ICsgdHhfcmluZy0+ ZXh0aGRyX2xlbiA9IHNpemVvZih1bmlvbiBuYmxfdHhfZXh0ZW5kX2hlYWQpOwo+ICsgYnJlYWs7 Cj4gKyB9Owo+ICsKPiArIHR4X3JpbmctPnR4X2VudHJ5ID0gcnRlX2NhbGxvYygibmJsX3R4X2Vu dHJ5IiwKPiArIHBhcmFtLT5uYl9kZXNjLCBzaXplb2YoKnR4X3JpbmctPnR4X2VudHJ5KSwgMCk7 Cj4gKyBpZiAoIXR4X3JpbmctPnR4X2VudHJ5KSB7Cj4gKyBOQkxfTE9HKEVSUiwgImFsbG9jYXRl IHR4IHF1ZXVlICVkIHNvZnR3YXJlIHJpbmcgZmFpbGVkIiwgcGFyYW0tPnF1ZXVlX2lkeCk7Cj4g KyBnb3RvIGFsbG9jX3R4X2VudHJ5X2ZhaWxlZDsKPiArIH0KPiArCj4gKyAvKiBBbGxvYyB0d2lj ZSBtZW1vcnksIGFuZCBzZWNvbmQgaGFsZiBpcyB1c2VkIHRvIGJhY2sgdXAgdGhlIGRlc2MgZm9y IGRlc2MgY2hlY2tpbmcgKi8KPiArIHNpemUgPSBSVEVfQUxJR05fQ0VJTChzaXplb2YodHhfcmlu Zy0+ZGVzY1swXSkgKiBwYXJhbS0+bmJfZGVzYywgNDA5Nik7Cj4gKyBtZW16b25lID0gcnRlX2V0 aF9kbWFfem9uZV9yZXNlcnZlKGV0aF9kZXYsICJ0eF9yaW5nIiwgcGFyYW0tPnF1ZXVlX2lkeCwK PiArIHNpemUsIFJURV9DQUNIRV9MSU5FX1NJWkUsCj4gKyBwYXJhbS0+c29ja2V0X2lkKTsKPiAr IGlmIChtZW16b25lID09IE5VTEwpIHsKPiArIE5CTF9MT0coRVJSLCAicmVzZXJ2ZSBkbWEgem9u ZSBmb3IgdHggcmluZyBmYWlsZWQiKTsKPiArIGdvdG8gYWxsb2NfZG1hX3pvbmVfZmFpbGVkOwo+ ICsgfQo+ICsKPiArIC8qIGlmIGhhcyBubyBtZW1vcnkgdG8gcHV0IGV4dGVuZCBoZWFkZXIsIGFw cGx5IGZvciBuZXcgbWVtb3J5ICovCj4gKyBzaXplID0gcGFyYW0tPm5iX2Rlc2MgKiBOQkxfVFhf SEVBREVSX0xFTjsKPiArIHNucHJpbnRmKHZxX2hkcl9uYW1lLCBzaXplb2YodnFfaGRyX25hbWUp LCAicG9ydCVkX3ZxJWRfaGRyIiwKPiArIGV0aF9kZXYtPmRhdGEtPnBvcnRfaWQsIHBhcmFtLT5x dWV1ZV9pZHgpOwo+ICsgbmV0X2hkcl9teiA9IHJ0ZV9tZW16b25lX3Jlc2VydmVfYWxpZ25lZCh2 cV9oZHJfbmFtZSwgc2l6ZSwKPiArIHBhcmFtLT5zb2NrZXRfaWQsCj4gKyBSVEVfTUVNWk9ORV9J T1ZBX0NPTlRJRywKPiArIFJURV9DQUNIRV9MSU5FX1NJWkUpOwo+ICsgaWYgKG5ldF9oZHJfbXog PT0gTlVMTCkgewo+ICsgaWYgKHJ0ZV9lcnJubyA9PSBFRVhJU1QpCj4gKyBuZXRfaGRyX216ID0g cnRlX21lbXpvbmVfbG9va3VwKHZxX2hkcl9uYW1lKTsKPiArIGlmIChuZXRfaGRyX216ID09IE5V TEwpIHsKPiArIE5CTF9MT0coRVJSLCAicmVzZXJ2ZSBuZXRfaGRyX216IGRtYSB6b25lIGZvciB0 eCByaW5nIGZhaWxlZCIpOwo+ICsgZ290byByZXNlcnZlX25ldF9oZHJfbXpfZmFpbGVkOwo+ICsg fQo+ICsgfQo+ICsKPiArIHR4X3JpbmctPnByb2R1Y3QgPSBwYXJhbS0+cHJvZHVjdDsKPiArIHR4 X3JpbmctPm5iX2Rlc2MgPSBwYXJhbS0+bmJfZGVzYzsKPiArIHR4X3JpbmctPnZxX2ZyZWVfY250 ID0gcGFyYW0tPm5iX2Rlc2M7Cj4gKyB0eF9yaW5nLT5xdWV1ZV9pZCA9IHBhcmFtLT5xdWV1ZV9p ZHg7Cj4gKyB0eF9yaW5nLT5ub3RpZnlfcWlkID0KPiArIChyZXNfbWd0LT5yZXNfaW5mby5iYXNl X3FpZCArIHR4cnhfbWd0LT5xdWV1ZV9vZmZzZXQgKyBwYXJhbS0+cXVldWVfaWR4KSAqIDIgKyAx Owo+ICsgdHhfcmluZy0+cmluZ19waHlzX2FkZHIgPSAodTY0KU5CTF9ETUFfQURERVJTU19GVUxM X1RSQU5TTEFURShjb21tb24sIG1lbXpvbmUtPmlvdmEpOwo+ICsgdHhfcmluZy0+YXZhaWxfdXNl ZF9mbGFncyA9IEJJVChOQkxfUEFDS0VEX0RFU0NfRl9BVkFJTCk7Cj4gKyB0eF9yaW5nLT51c2Vk X3dyYXBfY291bnRlciA9IDE7Cj4gKyB0eF9yaW5nLT5uZXh0X3RvX2NsZWFuID0gTkJMX1RYX1JT X1RIUkVTSCAtIDE7Cj4gKyB0eF9yaW5nLT5uZXh0X3RvX3VzZSA9IDA7Cj4gKyB0eF9yaW5nLT5k ZXNjID0gKHN0cnVjdCBuYmxfcGFja2VkX2Rlc2MgKiltZW16b25lLT5hZGRyOwo+ICsgdHhfcmlu Zy0+bmV0X2hkcl9teiA9IG5ldF9oZHJfbXo7Cj4gKyB0eF9yaW5nLT5ldGhfZGV2ID0gZXRoX2Rl djsKPiArIHR4X3JpbmctPmRtYV9zZXRfbXNiID0gY29tbW9uLT5kbWFfc2V0X21zYjsKPiArIHR4 X3JpbmctPmRtYV9saW1pdF9tc2IgPSBjb21tb24tPmRtYV9saW1pdF9tc2I7Cj4gKyB0eF9yaW5n LT5ub3RpZnkgPSBwaHlfb3BzLT5nZXRfdGFpbF9wdHIoTkJMX1JFU19NR1RfVE9fUEhZX1BSSVYo cmVzX21ndCkpOwo+ICsgdHhfcmluZy0+b2ZmbG9hZHMgPSBvZmZsb2FkczsKPiArIHR4X3Jpbmct PmNvbW1vbiA9IGNvbW1vbjsKPiArCj4gKyBldGhfZGV2LT5kYXRhLT50eF9xdWV1ZXNbcGFyYW0t PnF1ZXVlX2lkeF0gPSB0eF9yaW5nOwo+ICsKPiArIHR4cnhfbWd0LT50eF9yaW5nc1twYXJhbS0+ cXVldWVfaWR4XSA9IHR4X3Jpbmc7Cj4gKyB0eHJ4X21ndC0+dHhfcmluZ19udW0rKzsKPiArCj4g KyAqZG1hX2FkZHIgPSB0eF9yaW5nLT5yaW5nX3BoeXNfYWRkcjsKPiArCj4gcmV0dXJuIDA7Cj4g Kwo+ICtyZXNlcnZlX25ldF9oZHJfbXpfZmFpbGVkOgo+ICsgcnRlX21lbXpvbmVfZnJlZShtZW16 b25lKTsKPiArYWxsb2NfZG1hX3pvbmVfZmFpbGVkOgo+ICsgcnRlX2ZyZWUodHhfcmluZy0+dHhf ZW50cnkpOwo+ICsgdHhfcmluZy0+dHhfZW50cnkgPSBOVUxMOwo+ICsgdHhfcmluZy0+c2l6ZSA9 IDA7Cj4gK2FsbG9jX3R4X2VudHJ5X2ZhaWxlZDoKPiArIHJ0ZV9mcmVlKHR4X3JpbmcpOwo+ICsg cmV0dXJuIC1FTk9NRU07Cj4gfQo+Cj4gLXN0YXRpYyBpbnQgbmJsX3Jlc19hbGxvY19yeF9idWZz KHZvaWQgKnByaXYsIHUxNiBxdWV1ZV9pZHgpCj4gK3N0YXRpYyB2b2lkIG5ibF9yZXNfdHhyeF9z dG9wX3J4X3Jpbmcodm9pZCAqcHJpdiwgdTE2IHF1ZXVlX2lkeCkKPiB7Cj4gLSBSVEVfU0VUX1VT RUQocHJpdik7Cj4gLSBSVEVfU0VUX1VTRUQocXVldWVfaWR4KTsKPiArIHN0cnVjdCBuYmxfcmVz b3VyY2VfbWd0ICpyZXNfbWd0ID0gKHN0cnVjdCBuYmxfcmVzb3VyY2VfbWd0ICopcHJpdjsKPiAr IHN0cnVjdCBuYmxfcmVzX3J4X3JpbmcgKnJ4X3JpbmcgPQo+ICsgTkJMX1JFU19NR1RfVE9fUlhf UklORyhyZXNfbWd0LCBxdWV1ZV9pZHgpOwo+ICsgdTE2IGk7Cj4gKwo+ICsgaWYgKCFyeF9yaW5n KQo+ICsgcmV0dXJuOwo+ICsgaWYgKHJ4X3JpbmctPnJ4X2VudHJ5ICE9IE5VTEwpIHsKPiArIGZv ciAoaSA9IDA7IGkgPCByeF9yaW5nLT5uYl9kZXNjOyBpKyspIHsKPiArIGlmIChyeF9yaW5nLT5y eF9lbnRyeVtpXS5tYnVmICE9IE5VTEwpIHsKPiArIHJ0ZV9wa3RtYnVmX2ZyZWVfc2VnKHJ4X3Jp bmctPnJ4X2VudHJ5W2ldLm1idWYpOwo+ICsgcnhfcmluZy0+cnhfZW50cnlbaV0ubWJ1ZiA9IE5V TEw7Cj4gKyB9Cj4gKyByeF9yaW5nLT5kZXNjW2ldLmZsYWdzID0gMDsKPiArIH0KPiArCj4gKyBm b3IgKGkgPSByeF9yaW5nLT5uYl9kZXNjOyBpIDwgcnhfcmluZy0+bmJfZGVzYyArIE5CTF9ERVND X1BFUl9MT09QX1ZFQ19NQVg7IGkrKykKPiArIHJ4X3JpbmctPmRlc2NbaV0uZmxhZ3MgPSAwOwo+ ICsgfQo+ICsKPiArIHJ4X3JpbmctPm5leHRfdG9fY2xlYW4gPSAwOwo+ICsgcnhfcmluZy0+bmV4 dF90b191c2UgPSAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IG5ibF9yZXNfdHhyeF9zdGFydF9y eF9yaW5nKHZvaWQgKnByaXYsCj4gKyBzdHJ1Y3QgbmJsX3N0YXJ0X3J4X3JpbmdfcGFyYW0gKnBh cmFtLAo+ICsgdTY0ICpkbWFfYWRkcikKPiArewo+ICsgc3RydWN0IG5ibF9yZXNvdXJjZV9tZ3Qg KnJlc19tZ3QgPSAoc3RydWN0IG5ibF9yZXNvdXJjZV9tZ3QgKilwcml2Owo+ICsgc3RydWN0IG5i bF90eHJ4X21ndCAqdHhyeF9tZ3QgPSBOQkxfUkVTX01HVF9UT19UWFJYX01HVChyZXNfbWd0KTsK PiArIHN0cnVjdCBuYmxfcmVzX3J4X3JpbmcgKnJ4X3JpbmcgPSBOQkxfUkVTX01HVF9UT19SWF9S SU5HKHJlc19tZ3QsIHBhcmFtLT5xdWV1ZV9pZHgpOwo+ICsgc3RydWN0IHJ0ZV9ldGhfZGV2ICpl dGhfZGV2ID0gTkJMX1JFU19NR1RfVE9fRVRIX0RFVihyZXNfbWd0KTsKPiArIHN0cnVjdCBuYmxf cGh5X29wcyAqcGh5X29wcyA9IE5CTF9SRVNfTUdUX1RPX1BIWV9PUFMocmVzX21ndCk7Cj4gKyBz dHJ1Y3QgbmJsX2NvbW1vbl9pbmZvICpjb21tb24gPSBOQkxfUkVTX01HVF9UT19DT01NT04ocmVz X21ndCk7Cj4gKyBjb25zdCBzdHJ1Y3QgcnRlX21lbXpvbmUgKm1lbXpvbmU7Cj4gKyB1MzIgc2l6 ZTsKPiArCj4gKyBpZiAoZXRoX2Rldi0+ZGF0YS0+cnhfcXVldWVzW3BhcmFtLT5xdWV1ZV9pZHhd ICE9IE5VTEwpIHsKPiArIE5CTF9MT0coV0FSTklORywgInJlLXNldHVwIGFuIGFscmVhZHkgYWxs b2NhdGVkIHJ4IHF1ZXVlIik7Cj4gKyBuYmxfcmVzX3R4cnhfc3RvcF9yeF9yaW5nKHByaXYsIHBh cmFtLT5xdWV1ZV9pZHgpOwo+ICsgZXRoX2Rldi0+ZGF0YS0+cnhfcXVldWVzW3BhcmFtLT5xdWV1 ZV9pZHhdID0gTlVMTDsKPiArIH0KPiArCj4gKyByeF9yaW5nID0gcnRlX3ptYWxsb2Nfc29ja2V0 KCJuYmxfcnhyaW5nIiwgc2l6ZW9mKCpyeF9yaW5nKSwKPiArIFJURV9DQUNIRV9MSU5FX1NJWkUs IHBhcmFtLT5zb2NrZXRfaWQpOwo+ICsgaWYgKHJ4X3JpbmcgPT0gTlVMTCkgewo+ICsgTkJMX0xP RyhFUlIsICJhbGxvY2F0ZSByeCBxdWV1ZSBkYXRhIHN0cnVjdHVyZSBmYWlsZWQiKTsKPiArIHJl dHVybiAtRU5PTUVNOwo+ICsgfQo+ICsKPiArIHNpemUgPSBzaXplb2YocnhfcmluZy0+cnhfZW50 cnlbMF0pICogKHBhcmFtLT5uYl9kZXNjICsgTkJMX0RFU0NfUEVSX0xPT1BfVkVDX01BWCk7Cj4g KyByeF9yaW5nLT5yeF9lbnRyeSA9IHJ0ZV96bWFsbG9jX3NvY2tldCgicnhxIHJ4X2VudHJ5Iiwg c2l6ZSwKPiArIFJURV9DQUNIRV9MSU5FX1NJWkUsCj4gKyBwYXJhbS0+c29ja2V0X2lkKTsKPiAr IGlmIChyeF9yaW5nLT5yeF9lbnRyeSA9PSBOVUxMKSB7Cj4gKyBOQkxfTE9HKEVSUiwgImFsbG9j YXRlIHJ4IHF1ZXVlICVkIHNvZnR3YXJlIHJpbmcgZmFpbGVkIiwgcGFyYW0tPnF1ZXVlX2lkeCk7 Cj4gKyBnb3RvIGFsbG9jX3J4X2VudHJ5X2ZhaWxlZDsKPiArIH0KPiArCj4gKyBzaXplID0gc2l6 ZW9mKHJ4X3JpbmctPmRlc2NbMF0pICogKHBhcmFtLT5uYl9kZXNjICsgTkJMX0RFU0NfUEVSX0xP T1BfVkVDX01BWCk7Cj4gKyBtZW16b25lID0gcnRlX2V0aF9kbWFfem9uZV9yZXNlcnZlKGV0aF9k ZXYsICJyeF9yaW5nIiwgcGFyYW0tPnF1ZXVlX2lkeCwKPiArIHNpemUsIFJURV9DQUNIRV9MSU5F X1NJWkUsCj4gKyBwYXJhbS0+c29ja2V0X2lkKTsKPiArIGlmIChtZW16b25lID09IE5VTEwpIHsK PiArIE5CTF9MT0coRVJSLCAicmVzZXJ2ZSBkbWEgem9uZSBmb3IgcnggcmluZyBmYWlsZWQiKTsK PiArIGdvdG8gYWxsb2NfZG1hX3pvbmVfZmFpbGVkOwo+ICsgfQo+ICsKPiArIHJ4X3JpbmctPnBy b2R1Y3QgPSBwYXJhbS0+cHJvZHVjdDsKPiArIHJ4X3JpbmctPm1lbXBvb2wgPSBwYXJhbS0+bWVt cG9vbDsKPiArIHJ4X3JpbmctPm5iX2Rlc2MgPSBwYXJhbS0+bmJfZGVzYzsKPiArIHJ4X3Jpbmct PnF1ZXVlX2lkID0gcGFyYW0tPnF1ZXVlX2lkeDsKPiArIHJ4X3JpbmctPm5vdGlmeV9xaWQgPQo+ ICsgKHJlc19tZ3QtPnJlc19pbmZvLmJhc2VfcWlkICsgdHhyeF9tZ3QtPnF1ZXVlX29mZnNldCAr IHBhcmFtLT5xdWV1ZV9pZHgpICogMjsKPiArIHJ4X3JpbmctPnJpbmdfcGh5c19hZGRyID0gTkJM X0RNQV9BRERFUlNTX0ZVTExfVFJBTlNMQVRFKGNvbW1vbiwgbWVtem9uZS0+aW92YSk7Cj4gKyBy eF9yaW5nLT5kZXNjID0gKHN0cnVjdCBuYmxfcGFja2VkX2Rlc2MgKiltZW16b25lLT5hZGRyOwo+ ICsgcnhfcmluZy0+cG9ydF9pZCA9IGV0aF9kZXYtPmRhdGEtPnBvcnRfaWQ7Cj4gKyByeF9yaW5n LT5ldGhfZGV2ID0gZXRoX2RldjsKPiArIHJ4X3JpbmctPmRtYV9zZXRfbXNiID0gY29tbW9uLT5k bWFfc2V0X21zYjsKPiArIHJ4X3JpbmctPmRtYV9saW1pdF9tc2IgPSBjb21tb24tPmRtYV9saW1p dF9tc2I7Cj4gKyByeF9yaW5nLT5jb21tb24gPSBjb21tb247Cj4gKyByeF9yaW5nLT5ub3RpZnkg PSBwaHlfb3BzLT5nZXRfdGFpbF9wdHIoTkJMX1JFU19NR1RfVE9fUEhZX1BSSVYocmVzX21ndCkp Owo+ICsKPiArIHN3aXRjaCAocGFyYW0tPnByb2R1Y3QpIHsKPiArIGNhc2UgTkJMX0xFT05JU19U WVBFOgo+ICsgcnhfcmluZy0+ZXh0aGRyX2xlbiA9IHNpemVvZihzdHJ1Y3QgbmJsX3J4X2VoZHJf bGVvbmlzKTsKPiArIGJyZWFrOwo+ICsgZGVmYXVsdDoKPiArIHJ4X3JpbmctPmV4dGhkcl9sZW4g PSBzaXplb2YodW5pb24gbmJsX3J4X2V4dGVuZF9oZWFkKTsKPiArIH07Cj4gKwo+ICsgZXRoX2Rl di0+ZGF0YS0+cnhfcXVldWVzW3BhcmFtLT5xdWV1ZV9pZHhdID0gcnhfcmluZzsKPiArCj4gKyB0 eHJ4X21ndC0+cnhfcmluZ3NbcGFyYW0tPnF1ZXVlX2lkeF0gPSByeF9yaW5nOwo+ICsgdHhyeF9t Z3QtPnJ4X3JpbmdfbnVtKys7Cj4gKwo+ICsgKmRtYV9hZGRyID0gcnhfcmluZy0+cmluZ19waHlz X2FkZHI7Cj4gKwo+IHJldHVybiAwOwo+ICsKPiArYWxsb2NfZG1hX3pvbmVfZmFpbGVkOgo+ICsg cnRlX2ZyZWUocnhfcmluZy0+cnhfZW50cnkpOwo+ICsgcnhfcmluZy0+cnhfZW50cnkgPSBOVUxM Owo+ICsgcnhfcmluZy0+c2l6ZSA9IDA7Cj4gK2FsbG9jX3J4X2VudHJ5X2ZhaWxlZDoKPiArIHJ0 ZV9mcmVlKHJ4X3JpbmcpOwo+ICsgcmV0dXJuIC1FTk9NRU07Cj4gfQo+Cj4gLXN0YXRpYyB2b2lk IG5ibF9yZXNfdHhyeF9zdG9wX3J4X3Jpbmcodm9pZCAqcHJpdiwgdTE2IHF1ZXVlX2lkeCkKPiAr c3RhdGljIGludCBuYmxfcmVzX2FsbG9jX3J4X2J1ZnModm9pZCAqcHJpdiwgdTE2IHF1ZXVlX2lk eCkKPiB7Cj4gUlRFX1NFVF9VU0VEKHByaXYpOwo+IFJURV9TRVRfVVNFRChxdWV1ZV9pZHgpOwo+ ICsgcmV0dXJuIDA7Cj4gfQo+Cj4gc3RhdGljIHZvaWQgbmJsX3Jlc190eHJ4X3JlbGVhc2Vfcnhf cmluZyh2b2lkICpwcml2LCB1MTYgcXVldWVfaWR4KQo+IHsKPiAtIFJURV9TRVRfVVNFRChwcml2 KTsKPiAtIFJURV9TRVRfVVNFRChxdWV1ZV9pZHgpOwo+ICsgc3RydWN0IG5ibF9yZXNvdXJjZV9t Z3QgKnJlc19tZ3QgPSAoc3RydWN0IG5ibF9yZXNvdXJjZV9tZ3QgKilwcml2Owo+ICsgc3RydWN0 IG5ibF90eHJ4X21ndCAqdHhyeF9tZ3QgPSBOQkxfUkVTX01HVF9UT19UWFJYX01HVChyZXNfbWd0 KTsKPiArIHN0cnVjdCBuYmxfcmVzX3J4X3JpbmcgKnJ4X3JpbmcgPQo+ICsgTkJMX1JFU19NR1Rf VE9fUlhfUklORyhyZXNfbWd0LCBxdWV1ZV9pZHgpOwo+ICsgaWYgKCFyeF9yaW5nKQo+ICsgcmV0 dXJuOwo+ICsKPiArIHJ0ZV9mcmVlKHJ4X3JpbmctPnJ4X2VudHJ5KTsKPiArIHJ0ZV9mcmVlKHJ4 X3JpbmcpOwo+ICsgdHhyeF9tZ3QtPnJ4X3JpbmdzW3F1ZXVlX2lkeF0gPSBOVUxMOwo+IH0KPgo+ IHN0YXRpYyB2b2lkIG5ibF9yZXNfdHhyeF91cGRhdGVfcnhfcmluZyh2b2lkICpwcml2LCB1MTYg aW5kZXgpCj4gQEAgLTEwNiw3ICszNDcsNyBAQCBkbyB7IFwKPiBOQkxfVFhSWF9TRVRfT1BTKHJl bW92ZV9yaW5ncywgbmJsX3Jlc190eHJ4X3JlbW92ZV9yaW5ncyk7IFwKPiBOQkxfVFhSWF9TRVRf T1BTKHN0YXJ0X3R4X3JpbmcsIG5ibF9yZXNfdHhyeF9zdGFydF90eF9yaW5nKTsgXAo+IE5CTF9U WFJYX1NFVF9PUFMoc3RvcF90eF9yaW5nLCBuYmxfcmVzX3R4cnhfc3RvcF90eF9yaW5nKTsgXAo+ IC0gTkJMX1RYUlhfU0VUX09QUyhyZWxlYXNlX3R4X3JpbmcsIG5ibF9yZXNfdHhyeF9yZWxlYXNl X3R4cmluZyk7IFwKPiArIE5CTF9UWFJYX1NFVF9PUFMocmVsZWFzZV90eF9yaW5nLCBuYmxfcmVz X3R4cnhfcmVsZWFzZV90eF9yaW5nKTsgXAo+IE5CTF9UWFJYX1NFVF9PUFMoc3RhcnRfcnhfcmlu ZywgbmJsX3Jlc190eHJ4X3N0YXJ0X3J4X3JpbmcpOyBcCj4gTkJMX1RYUlhfU0VUX09QUyhhbGxv Y19yeF9idWZzLCBuYmxfcmVzX2FsbG9jX3J4X2J1ZnMpOyBcCj4gTkJMX1RYUlhfU0VUX09QUyhz dG9wX3J4X3JpbmcsIG5ibF9yZXNfdHhyeF9zdG9wX3J4X3JpbmcpOyBcCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L25ibC9uYmxfaHcvbmJsX3R4cnguaCBiL2RyaXZlcnMvbmV0L25ibC9uYmxf aHcvbmJsX3R4cnguaAo+IGluZGV4IDU2ZGJkM2M1ODcuLjgzNjk2ZGJjNzIgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9uZXQvbmJsL25ibF9ody9uYmxfdHhyeC5oCj4gKysrIGIvZHJpdmVycy9uZXQv bmJsL25ibF9ody9uYmxfdHhyeC5oCj4gQEAgLTcsNCArNywxMDMgQEAKPgo+ICNpbmNsdWRlICJu YmxfcmVzb3VyY2UuaCIKPgo+ICsjZGVmaW5lIE5CTF9QQUNLRURfREVTQ19GX0FWQUlMICg3KQo+ ICsjZGVmaW5lIE5CTF9QQUNLRURfREVTQ19GX1VTRUQgKDE1KQo+ICsjZGVmaW5lIE5CTF9WUklO R19ERVNDX0ZfTkVYVCAoMSA8PCAwKQo+ICsjZGVmaW5lIE5CTF9WUklOR19ERVNDX0ZfV1JJVEUg KDEgPDwgMSkKPiArCj4gKyNkZWZpbmUgTkJMX1RYX1JTX1RIUkVTSCAoMzIpCj4gKyNkZWZpbmUg TkJMX1RYX0hFQURFUl9MRU4gKDMyKQo+ICsjZGVmaW5lIE5CTF9WUV9IRFJfTkFNRV9NQVhTSVpF ICgzMikKPiArCj4gKyNkZWZpbmUgTkJMX0RFU0NfUEVSX0xPT1BfVkVDX01BWCAoOCkKPiArCj4g K3VuaW9uIG5ibF90eF9leHRlbmRfaGVhZCB7Cj4gKyBzdHJ1Y3QgbmJsX3R4X2VoZHJfbGVvbmlz IHsKPiArIC8qIERXMCAqLwo+ICsgdTMyIG1hY19sZW4gOjU7Cj4gKyB1MzIgaXBfbGVuIDo1Owo+ ICsgdTMyIGw0X2xlbiA6NDsKPiArIHUzMiBsNF90eXBlIDoyOwo+ICsgdTMyIGlubmVyX2lwX3R5 cGUgOjI7Cj4gKyB1MzIgZXh0ZXJuYWxfaXBfdHlwZSA6MjsKPiArIHUzMiBleHRlcm5hbF9pcF9s ZW4gOjU7Cj4gKyB1MzIgbDRfdHVubmVsX3R5cGUgOjI7Cj4gKyB1MzIgbDRfdHVubmVsX2xlbiA6 NTsKPiArIC8qIERXMSAqLwo+ICsgdTMyIGw0c19zaWQgOjEwOwo+ICsgdTMyIGw0c19zeW5jX2lu ZCA6MTsKPiArIHUzMiBsNHNfcmVkdW5faW5kIDoxOwo+ICsgdTMyIGw0c19yZWR1bl9oZWFkX2lu ZCA6MTsKPiArIHUzMiBsNHNfaGRsX2luZCA6MTsKPiArIHUzMiBsNHNfcGJyYWNfbW9kZSA6MTsK PiArIHUzMiByc3YwIDoyOwo+ICsgdTMyIG1zcyA6MTQ7Cj4gKyB1MzIgdHNvIDoxOwo+ICsgLyog RFcyICovCj4gKyAvKiBpZiBkcG9ydCA9IE5CTF9UWF9EUE9SVF9FVEg7IGRwb3J0X2luZm8gPSAw Cj4gKyAqIGlmIGRwb3J0ID0gTkJMX1RYX0RQT1JUX0hPU1Q7IGRwb3J0X2luZm8gPSBob3N0IHF1 ZXVlIGlkCj4gKyAqIGlmIGRwb3J0ID0gTkJMX1RYX0RQT1JUX0VDUFU7IGRwb3J0X2luZm8gPSBl Y3B1IHF1ZXVlX2lkCj4gKyAqLwo+ICsgdTMyIGRwb3J0X2luZm8gOjExOwo+ICsgLyogaWYgZHBv cnQgPSBOQkxfVFhfRFBPUlRfRVRIOyBkcG9ydF9pZFszOjBdID0gZXRoIHBvcnQgaWQsIGRwb3J0 X2lkWzk6NF0gPSBsYWcgaWQKPiArICogaWYgZHBvcnQgPSBOQkxfVFhfRFBPUlRfSE9TVDsgZHBv cnRfaWRbOTowXSA9IGhvc3QgdnNpX2lkCj4gKyAqIGlmIGRwb3J0ID0gTkJMX1RYX0RQT1JUX0VD UFU7IGRwb3J0X2lkWzk6MF0gPSBlY3B1IHZzaV9pZAo+ICsgKi8KPiArIHUzMiBkcG9ydF9pZCA6 MTA7Cj4gKyNkZWZpbmUgTkJMX1RYX0RQT1JUX0lEX0xBR19PRlRfTEVPTklTICg0KQo+ICsgdTMy IGRwb3J0IDozOwo+ICsjZGVmaW5lIE5CTF9UWF9EUE9SVF9FVEggKDApCj4gKyNkZWZpbmUgTkJM X1RYX0RQT1JUX0hPU1QgKDEpCj4gKyNkZWZpbmUgTkJMX1RYX0RQT1JUX0VDUFUgKDIpCj4gKyNk ZWZpbmUgTkJMX1RYX0RQT1JUX0VNUCAoMykKPiArI2RlZmluZSBOQkxfVFhfRFBPUlRfQk1DICg0 KQo+ICsjZGVmaW5lIE5CTF9UWF9EUE9SVF9FTVBfRFJBQ08gKDIpCj4gKyNkZWZpbmUgTkJMX1RY X0RQT1JUX0JNQ19EUkFDTyAoMykKPiArIHUzMiBmd2QgOjI7Cj4gKyNkZWZpbmUgTkJMX1RYX0ZX RF9UWVBFX0RST1AgKDApCj4gKyNkZWZpbmUgTkJMX1RYX0ZXRF9UWVBFX05PUk1BTCAoMSkKPiAr I2RlZmluZSBOQkxfVFhfRldEX1RZUEVfUlNWICgyKQo+ICsjZGVmaW5lIE5CTF9UWF9GV0RfVFlQ RV9DUFVfQVNTSUdORUQgKDMpCj4gKyB1MzIgcnNzX2xhZ19lbiA6MTsKPiArIHUzMiBsNF9jc3Vt X2VuIDoxOwo+ICsgdTMyIGwzX2NzdW1fZW4gOjE7Cj4gKyB1MzIgcnN2MSA6MzsKPiArIH0gbGVv bmlzOwo+ICt9Owo+ICsKPiArdW5pb24gbmJsX3J4X2V4dGVuZF9oZWFkIHsKPiArIHN0cnVjdCBu YmxfcnhfZWhkcl9sZW9uaXMgewo+ICsgLyogRFcwICovCj4gKyAvKiAweDA6ZXRoLCAweDE6aG9z dCwgMHgyOmVjcHUsIDB4MzplbXAsIDB4NDpiY20gKi8KPiArIHUzMiBzcG9ydCA6MzsKPiArIHUz MiBkcG9ydF9pbmZvIDoxMTsKPiArIC8qIHNwb3J0ID0gMCwgc3BvcnRfaWRbMzowXSA9IGV0aCBp ZCwKPiArICogc3BvcnQgPSAxLCBzcG9ydF9pZFs5OjBdID0gaG9zdCB2c2lfaWQsCj4gKyAqIHNw b3J0ID0gMiwgc3BvcnRfaWRbOTowXSA9IGVjcHUgdnNpX2lkLAo+ICsgKi8KPiArIHUzMiBzcG9y dF9pZCA6MTA7Cj4gKyAvKiAweDA6ZHJvcCwgMHgxOm5vcm1hbCwgMHgyOmNwdSB1cGNhbGwgKi8K PiArIHUzMiBmd2QgOjI7Cj4gKyB1MzIgcnN2MCA6NjsKPiArIC8qIERXMSAqLwo+ICsgdTMyIGVy cm9yX2NvZGUgOjY7Cj4gKyB1MzIgcHR5cGUgOjEwOwo+ICsgdTMyIHByb2ZpbGVfaWQgOjQ7Cj4g KyB1MzIgY2hlY2tzdW1fc3RhdHVzIDoxOwo+ICsgdTMyIHJzdjEgOjE7Cj4gKyB1MzIgbDRzX3Np ZCA6MTA7Cj4gKyAvKiBEVzIgKi8KPiArIHUzMiByc3YzIDoyOwo+ICsgdTMyIGw0c19oZGxfaW5k IDoxOwo+ICsgdTMyIGw0c190Y3Bfb2Zmc2V0IDoxNDsKPiArIHUzMiBsNHNfcmVzeW5jX2luZCA6 MTsKPiArIHUzMiBsNHNfY2hlY2tfaW5kIDoxOwo+ICsgdTMyIGw0c19kZWNfaW5kIDoxOwo+ICsg dTMyIHJzdjIgOjQ7Cj4gKyB1MzIgbnVtX2J1ZmZlcnMgOjg7Cj4gKyB1MzIgaGFzaF92YWx1ZTsK PiArIH0gbGVvbmlzOwo+ICt9Owo+ICsKPiAjZW5kaWYKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvbmJsL25ibF9pbmNsdWRlL25ibF9kZWZfY29tbW9uLmggYi9kcml2ZXJzL25ldC9uYmwvbmJs X2luY2x1ZGUvbmJsX2RlZl9jb21tb24uaAo+IGluZGV4IGY3NzRhZmJhMDAuLjI1OTE5MzMwZGYg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9uZXQvbmJsL25ibF9pbmNsdWRlL25ibF9kZWZfY29tbW9u LmgKPiArKysgYi9kcml2ZXJzL25ldC9uYmwvbmJsX2luY2x1ZGUvbmJsX2RlZl9jb21tb24uaAo+ IEBAIC03OSw2ICs3OSwxMSBAQCBzdHJ1Y3QgbmJsX2Rldl91c2VyX2xpbmtfc3RhdCB7Cj4gI2Rl ZmluZSBOQkxfREVWX1VTRVJfU0VUX1BST01JU0NfTU9ERSBfSU8oTkJMX0RFVl9VU0VSX1RZUEUs IDEwKQo+ICNkZWZpbmUgTkJMX0RFVl9VU0VSX1NFVF9NQ0FTVF9NT0RFIF9JTyhOQkxfREVWX1VT RVJfVFlQRSwgMTEpCj4KPiArI2RlZmluZSBOQkxfRE1BX0FEREVSU1NfRlVMTF9UUkFOU0xBVEUo aHcsIGFkZHJlc3MpIFwKVHlwbzogQURERVJTUyAtPiBBRERSRVNTPwpUaGFuayB5b3UuCj4gKyAo eyB0eXBlb2YoaHcpIF9odyA9IChodyk7IFwKPiArICgoKCh1NjQpKChfaHcpLT5kbWFfc2V0X21z YikpIDw8ICgodTY0KSgoX2h3KS0+ZG1hX2xpbWl0X21zYikpKSB8IChhZGRyZXNzKSk7IFwKPiAr IH0pCj4gKwo+IHN0cnVjdCBuYmxfZG1hX21lbSB7Cj4gdm9pZCAqdmE7Cj4gdWludDY0X3QgcGE7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ibC9uYmxfaW5jbHVkZS9uYmxfaW5jbHVkZS5o IGIvZHJpdmVycy9uZXQvbmJsL25ibF9pbmNsdWRlL25ibF9pbmNsdWRlLmgKPiBpbmRleCBlMTBm Y2M5MjU0Li45NzRhNzk4MzVhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbmV0L25ibC9uYmxfaW5j bHVkZS9uYmxfaW5jbHVkZS5oCj4gKysrIGIvZHJpdmVycy9uZXQvbmJsL25ibF9pbmNsdWRlL25i bF9pbmNsdWRlLmgKPiBAQCAtOTEsNiArOTEsNyBAQCBzdHJ1Y3QgbmJsX3N0YXJ0X3R4X3Jpbmdf cGFyYW0gewo+IHUzMiBzb2NrZXRfaWQ7Cj4gZW51bSBuYmxfcHJvZHVjdF90eXBlIHByb2R1Y3Q7 Cj4gY29uc3Qgc3RydWN0IHJ0ZV9ldGhfdHhjb25mICpjb25mOwo+ICsgYm9vbCAoKmJvbmRfYnJv YWRjYXN0X2NoZWNrKShzdHJ1Y3QgcnRlX21idWYgKm1idWYpOwo+IH07Cj4KPiBzdHJ1Y3QgbmJs X3R4cnhfcXVldWVfcGFyYW0gewo+IC0tIAo+IDIuMzQuMQo+Cj4K ------=ALIBOUNDARY_1990_7fa30643e700_689eadcd_747fc Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBjbGFzcz0iX19hbGl5dW5fZW1haWxfYm9keV9ibG9jayI+PGRpdiAgc3R5bGU9ImZvbnQt ZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpU0MtTGlnaHQsIFNpbVN1biI+PGRpdiAgc3R5 bGU9ImNsZWFyOiBib3RoOyBmb250LWZhbWlseTogVGFob21hLCBBcmlhbCwgU1RIZWl0aVNDLUxp Z2h0LCBTaW1TdW47Ij48c3BhbiAgc3R5bGU9ImZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBT VEhlaXRpU0MtTGlnaHQsIFNpbVN1bjsiPjxzcGFuID48c3BhbiAgc3R5bGU9ImNvbG9yOiByZ2Io MCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpLCBTaW1TdW47IGZv bnQtc2l6ZTogMTRweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtbGlnYXR1cmVz OiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxl dHRlci1zcGFjaW5nOiBub3JtYWw7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4 OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd29yZC1zcGFjaW5n OiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgdGV4dC1kZWNvcmF0 aW9uLXRoaWNrbmVzczogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBpbml0aWFsOyB0 ZXh0LWRlY29yYXRpb24tY29sb3I6IGluaXRpYWw7IGZsb2F0OiBub25lOyBkaXNwbGF5OiBpbmxp bmUgIWltcG9ydGFudDsiPkhpIEl2YW4sPC9zcGFuPjxiciAgc3R5bGU9ImNvbG9yOiByZ2IoMCwg MCwgMCk7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpLCBTaW1TdW47IGZvbnQt c2l6ZTogMTRweDsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBu b3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRl ci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWlu ZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lk b3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4 OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10 aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1k ZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyI+PC9zcGFuPjwvc3Bhbj48L2Rpdj48ZGl2ICBzdHls ZT0iY2xlYXI6IGJvdGg7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpU0MtTGln aHQsIFNpbVN1bjsiPjxzcGFuICBzdHlsZT0iZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJpYWwsIFNU SGVpdGlTQy1MaWdodCwgU2ltU3VuOyI+PHNwYW4gPjxzcGFuICBzdHlsZT0iY29sb3I6IHJnYigw LCAwLCAwKTsgZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJpYWwsIFNUSGVpdGksIFNpbVN1bjsgZm9u dC1zaXplOiAxNHB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6 IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0 dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7 IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3b3JkLXNwYWNpbmc6 IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyB0ZXh0LWRlY29yYXRp b24tdGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IGluaXRpYWw7IHRl eHQtZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsgZmxvYXQ6IG5vbmU7IGRpc3BsYXk6IGlubGlu ZSAhaW1wb3J0YW50OyI+PGJyID48L3NwYW4+PC9zcGFuPjwvc3Bhbj48L2Rpdj48ZGl2ICBzdHls ZT0iY2xlYXI6IGJvdGg7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpU0MtTGln aHQsIFNpbVN1bjsiPjxzcGFuICBzdHlsZT0iZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJpYWwsIFNU SGVpdGlTQy1MaWdodCwgU2ltU3VuOyI+PHNwYW4gPlRoYW5rIHlvdSBmb3IgeW91ciByZXZpZXcu PGJyID48L3NwYW4+PC9zcGFuPjxkaXYgIHN0eWxlPSJjbGVhcjogYm90aDsiPjxiciA+PC9kaXY+ PGRpdiAgc3R5bGU9ImNsZWFyOiBib3RoOyI+PHNwYW4gPlJlZ2FyZGluZyB5b3VyIGZvbGxvd2lu ZyByZXZpZXcgY29tbWVudHMuPC9zcGFuPjwvZGl2PjxkaXYgIHN0eWxlPSJjbGVhcjogYm90aDsi PjxzcGFuICBzdHlsZT0iZm9udC1zdHlsZTogaXRhbGljOyBjb2xvcjogcmdiKDAsIDE3NiwgODAp OyI+PHNwYW4gIHN0eWxlPSJjb2xvcjogcmdiKDAsIDE3NiwgODApOyBmb250LXN0eWxlOiBpdGFs aWM7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6 ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fw czogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0 LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdo aXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBy Z2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRl eHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0 aWFsOyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7Ij4mZ3Q7ICtpbnQg bmJsX3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwgdTE2IHF1ZXVl X2lkeCw8L3NwYW4+PGJyICBzdHlsZT0iZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJpYWwsIFNUSGVp dGksIFNpbVN1bjsgZm9udC1zaXplOiAxNHB4OyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBub3Jt YWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1z cGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVu dDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dz OiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyBi YWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlj a25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNv cmF0aW9uLWNvbG9yOiBpbml0aWFsOyI+PHNwYW4gIHN0eWxlPSJjb2xvcjogcmdiKDAsIDE3Niwg ODApOyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhl aXRpLCBTaW1TdW47IGZvbnQtc2l6ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9y bWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXIt c3BhY2luZzogbm9ybWFsOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4 dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4 OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10 aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1k ZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lICFp bXBvcnRhbnQ7Ij4mZ3Q7ICsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHUxNiBuYl9kZXNj LCB1bnNpZ25lZCBpbnQgc29ja2V0X2lkLDwvc3Bhbj48YnIgIHN0eWxlPSJmb250LWZhbWlseTog VGFob21hLCBBcmlhbCwgU1RIZWl0aSwgU2ltU3VuOyBmb250LXNpemU6IDE0cHg7IGZvbnQtdmFy aWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13 ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogMjsgdGV4dC1hbGln bjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1z cGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQt c3Ryb2tlLXdpZHRoOiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsg dGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLXN0eWxl OiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGluaXRpYWw7Ij48c3BhbiAgc3R5bGU9 ImNvbG9yOiByZ2IoMCwgMTc2LCA4MCk7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC1mYW1pbHk6 IFRhaG9tYSwgQXJpYWwsIFNUSGVpdGksIFNpbVN1bjsgZm9udC1zaXplOiAxNHB4OyBmb250LXZh cmlhbnQtbGlnYXR1cmVzOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQt d2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IHRleHQtYWxpZ246IHN0YXJ0OyB0 ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1h bDsgd29yZC1zcGFjaW5nOiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1 KTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLXN0 eWxlOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGluaXRpYWw7IGZsb2F0OiBub25l OyBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsiPiZndDsgKyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgY29uc3Qgc3RydWN0IHJ0ZV9ldGhfcnhjb25mICpjb25mLCBzdHJ1Y3QgcnRlX21l bXBvb2wgKm1lbXBvb2wpPC9zcGFuPjxiciAgc3R5bGU9ImZvbnQtZmFtaWx5OiBUYWhvbWEsIEFy aWFsLCBTVEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0 dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAw OyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFydDsg dGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3Jt YWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lk dGg6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyB0ZXh0LWRlY29y YXRpb24tdGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IGluaXRpYWw7 IHRleHQtZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsiPjxzcGFuICBzdHlsZT0iY29sb3I6IHJn YigwLCAxNzYsIDgwKTsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LWZhbWlseTogVGFob21hLCBB cmlhbCwgU1RIZWl0aSwgU2ltU3VuOyBmb250LXNpemU6IDE0cHg7IGZvbnQtdmFyaWFudC1saWdh dHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQw MDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50 OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3b3JkLXNw YWNpbmc6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyB0ZXh0LWRl Y29yYXRpb24tdGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IGluaXRp YWw7IHRleHQtZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsgZmxvYXQ6IG5vbmU7IGRpc3BsYXk6 IGlubGluZSAhaW1wb3J0YW50OyI+Jmd0OyArezwvc3Bhbj48YnIgIHN0eWxlPSJmb250LWZhbWls eTogVGFob21hLCBBcmlhbCwgU1RIZWl0aSwgU2ltU3VuOyBmb250LXNpemU6IDE0cHg7IGZvbnQt dmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9u dC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogMjsgdGV4dC1h bGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0 ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRl eHQtc3Ryb2tlLXdpZHRoOiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1 KTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLXN0 eWxlOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGluaXRpYWw7Ij48c3BhbiAgc3R5 bGU9ImNvbG9yOiByZ2IoMCwgMTc2LCA4MCk7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC1mYW1p bHk6IFRhaG9tYSwgQXJpYWwsIFNUSGVpdGksIFNpbVN1bjsgZm9udC1zaXplOiAxNHB4OyBmb250 LXZhcmlhbnQtbGlnYXR1cmVzOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZv bnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IHRleHQtYWxpZ246IHN0YXJ0 OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5v cm1hbDsgd29yZC1zcGFjaW5nOiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwg MjU1KTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9u LXN0eWxlOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGluaXRpYWw7IGZsb2F0OiBu b25lOyBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsiPiZndDsgKyBzdHJ1Y3QgbmJsX2FkYXB0 ZXIgKmFkYXB0ZXIgPSBFVEhfREVWX1RPX05CTF9ERVZfUEZfUFJJVihldGhfZGV2KTs8L3NwYW4+ PGJyICBzdHlsZT0iZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJpYWwsIFNUSGVpdGksIFNpbVN1bjsg Zm9udC1zaXplOiAxNHB4OyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBub3JtYWw7IGZvbnQtdmFy aWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3Jt YWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0 LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNw YWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyBiYWNrZ3JvdW5kLWNv bG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGluaXRp YWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9y OiBpbml0aWFsOyI+PHNwYW4gIHN0eWxlPSJjb2xvcjogcmdiKDAsIDE3NiwgODApOyBmb250LXN0 eWxlOiBpdGFsaWM7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpLCBTaW1TdW47 IGZvbnQtc2l6ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZh cmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9y bWFsOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06 IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyBiYWNrZ3JvdW5k LWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGlu aXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNv bG9yOiBpbml0aWFsOyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7Ij4m Z3Q7ICsgc3RydWN0IG5ibF9kZXZfbWd0ICpkZXZfbWd0ID0gTkJMX0FEQVBURVJfVE9fREVWX01H VChhZGFwdGVyKTs8L3NwYW4+PGJyICBzdHlsZT0iZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJpYWws IFNUSGVpdGksIFNpbVN1bjsgZm9udC1zaXplOiAxNHB4OyBmb250LXZhcmlhbnQtbGlnYXR1cmVz OiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxl dHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0 LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsg d2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDog MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlv bi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4 dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyI+PHNwYW4gIHN0eWxlPSJjb2xvcjogcmdiKDAs IDE3NiwgODApOyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFs LCBTVEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0dXJl czogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBs ZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBw eDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3BhY2lu ZzogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3Jh dGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsg dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5s aW5lICFpbXBvcnRhbnQ7Ij4mZ3Q7ICsgc3RydWN0IG5ibF9kaXNwYXRjaF9vcHMgKmRpc3Bfb3Bz ID0gTkJMX0RFVl9NR1RfVE9fRElTUF9PUFMoZGV2X21ndCk7PC9zcGFuPjxiciAgc3R5bGU9ImZv bnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6ZTogMTRw eDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9y bWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAy OyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5v bmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdpZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13 ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwg MjU1LCAyNTUpOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29y YXRpb24tc3R5bGU6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsiPjxz cGFuICBzdHlsZT0iY29sb3I6IHJnYigwLCAxNzYsIDgwKTsgZm9udC1zdHlsZTogaXRhbGljOyBm b250LWZhbWlseTogVGFob21hLCBBcmlhbCwgU1RIZWl0aSwgU2ltU3VuOyBmb250LXNpemU6IDE0 cHg7IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5v cm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGln bjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1z cGFjZTogbm9ybWFsOyB3b3JkLXNwYWNpbmc6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1 NSwgMjU1LCAyNTUpOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRl Y29yYXRpb24tc3R5bGU6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsg ZmxvYXQ6IG5vbmU7IGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyI+Jmd0OyArIHN0cnVjdCBu YmxfZGV2X3JpbmdfbWd0ICpyaW5nX21ndCA9ICZhbXA7ZGV2X21ndC0mZ3Q7bmV0X2Rldi0mZ3Q7 cmluZ19tZ3Q7PC9zcGFuPjxiciAgc3R5bGU9ImZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBT VEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczog bm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0 ZXItc3BhY2luZzogbm9ybWFsOyBvcnBoYW5zOiAyOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1p bmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdp ZG93czogMjsgd29yZC1zcGFjaW5nOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDBw eDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyB0ZXh0LWRlY29yYXRpb24t dGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IGluaXRpYWw7IHRleHQt ZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsiPjxzcGFuICBzdHlsZT0iY29sb3I6IHJnYigwLCAx NzYsIDgwKTsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LWZhbWlseTogVGFob21hLCBBcmlhbCwg U1RIZWl0aSwgU2ltU3VuOyBmb250LXNpemU6IDE0cHg7IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6 IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0 dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7 IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3b3JkLXNwYWNpbmc6 IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyB0ZXh0LWRlY29yYXRp b24tdGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tc3R5bGU6IGluaXRpYWw7IHRl eHQtZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsgZmxvYXQ6IG5vbmU7IGRpc3BsYXk6IGlubGlu ZSAhaW1wb3J0YW50OyI+Jmd0OyArIHN0cnVjdCBuYmxfZGV2X3JpbmcgKnJ4X3JpbmcgPSAmYW1w O3JpbmdfbWd0LSZndDtyeF9yaW5nc1txdWV1ZV9pZHhdOzwvc3Bhbj48YnIgIHN0eWxlPSJmb250 LWZhbWlseTogVGFob21hLCBBcmlhbCwgU1RIZWl0aSwgU2ltU3VuOyBmb250LXNpemU6IDE0cHg7 IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1h bDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogMjsg dGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25l OyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Vi a2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1 NSwgMjU1KTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogaW5pdGlhbDsgdGV4dC1kZWNvcmF0 aW9uLXN0eWxlOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGluaXRpYWw7Ij48c3Bh biAgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMTc2LCA4MCk7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9u dC1mYW1pbHk6IFRhaG9tYSwgQXJpYWwsIFNUSGVpdGksIFNpbVN1bjsgZm9udC1zaXplOiAxNHB4 OyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3Jt YWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IHRleHQtYWxpZ246 IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3Bh Y2U6IG5vcm1hbDsgd29yZC1zcGFjaW5nOiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUs IDI1NSwgMjU1KTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogaW5pdGlhbDsgdGV4dC1kZWNv cmF0aW9uLXN0eWxlOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGluaXRpYWw7IGZs b2F0OiBub25lOyBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsiPiZndDsgKyBzdHJ1Y3QgbmJs X3N0YXJ0X3J4X3JpbmdfcGFyYW0gcGFyYW0gPSB7IDAgfTs8L3NwYW4+PGJyICBzdHlsZT0iZm9u dC1mYW1pbHk6IFRhaG9tYSwgQXJpYWwsIFNUSGVpdGksIFNpbVN1bjsgZm9udC1zaXplOiAxNHB4 OyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3Jt YWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7 IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9u ZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdl YmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAy NTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3Jh dGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyI+PHNw YW4gIHN0eWxlPSJjb2xvcjogcmdiKDAsIDE3NiwgODApOyBmb250LXN0eWxlOiBpdGFsaWM7IGZv bnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6ZTogMTRw eDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9y bWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0LWFsaWdu OiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNw YWNlOiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1 LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVj b3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyBm bG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7Ij4mZ3Q7ICsgaW50IHJldDs8 L3NwYW4+PGJyICBzdHlsZT0iZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJpYWwsIFNUSGVpdGksIFNp bVN1bjsgZm9udC1zaXplOiAxNHB4OyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBub3JtYWw7IGZv bnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5n OiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4 OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiAyOyB3 b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyBiYWNrZ3Jv dW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6 IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9u LWNvbG9yOiBpbml0aWFsOyI+PHNwYW4gIHN0eWxlPSJjb2xvcjogcmdiKDAsIDE3NiwgODApOyBm b250LXN0eWxlOiBpdGFsaWM7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpLCBT aW1TdW47IGZvbnQtc2l6ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBm b250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2lu Zzogbm9ybWFsOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFu c2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyBiYWNr Z3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25l c3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0 aW9uLWNvbG9yOiBpbml0aWFsOyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRh bnQ7Ij4mZ3Q7ICs8L3NwYW4+PGJyICBzdHlsZT0iZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJpYWws IFNUSGVpdGksIFNpbVN1bjsgZm9udC1zaXplOiAxNHB4OyBmb250LXZhcmlhbnQtbGlnYXR1cmVz OiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxl dHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0 LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsg d2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDog MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlv bi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4 dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyI+PHNwYW4gIHN0eWxlPSJjb2xvcjogcmdiKDAs IDE3NiwgODApOyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFs LCBTVEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0dXJl czogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBs ZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBw eDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3BhY2lu ZzogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3Jh dGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsg dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5s aW5lICFpbXBvcnRhbnQ7Ij4mZ3Q7ICsgcGFyYW0ucXVldWVfaWR4ID0gcXVldWVfaWR4Ozwvc3Bh bj48YnIgIHN0eWxlPSJmb250LWZhbWlseTogVGFob21hLCBBcmlhbCwgU1RIZWl0aSwgU2ltU3Vu OyBmb250LXNpemU6IDE0cHg7IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12 YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5v cm1hbDsgb3JwaGFuczogMjsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAwcHg7IHRl eHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQt c3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IGJhY2tncm91bmQt Y29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczogaW5p dGlhbDsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24tY29s b3I6IGluaXRpYWw7Ij48c3BhbiAgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMTc2LCA4MCk7IGZvbnQt c3R5bGU6IGl0YWxpYzsgZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJpYWwsIFNUSGVpdGksIFNpbVN1 bjsgZm9udC1zaXplOiAxNHB4OyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBub3JtYWw7IGZvbnQt dmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBu b3JtYWw7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9y bTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd29yZC1zcGFjaW5nOiAwcHg7IGJhY2tncm91 bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVzczog aW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRpb24t Y29sb3I6IGluaXRpYWw7IGZsb2F0OiBub25lOyBkaXNwbGF5OiBpbmxpbmUgIWltcG9ydGFudDsi PiZndDsgKyBwYXJhbS5uYl9kZXNjID0gbmJfZGVzYzs8L3NwYW4+PGJyICBzdHlsZT0iZm9udC1m YW1pbHk6IFRhaG9tYSwgQXJpYWwsIFNUSGVpdGksIFNpbVN1bjsgZm9udC1zaXplOiAxNHB4OyBm b250LXZhcmlhbnQtbGlnYXR1cmVzOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7 IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRl eHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsg d2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtp dC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUs IDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlv bi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyI+PHNwYW4g IHN0eWxlPSJjb2xvcjogcmdiKDAsIDE3NiwgODApOyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQt ZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6ZTogMTRweDsg Zm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFs OyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0LWFsaWduOiBz dGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNl OiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAy NTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3Jh dGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyBmbG9h dDogbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7Ij4mZ3Q7ICsgcGFyYW0uc29ja2V0 X2lkID0gc29ja2V0X2lkOzwvc3Bhbj48YnIgIHN0eWxlPSJmb250LWZhbWlseTogVGFob21hLCBB cmlhbCwgU1RIZWl0aSwgU2ltU3VuOyBmb250LXNpemU6IDE0cHg7IGZvbnQtdmFyaWFudC1saWdh dHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQw MDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogMjsgdGV4dC1hbGlnbjogc3RhcnQ7 IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9y bWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdp ZHRoOiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgdGV4dC1kZWNv cmF0aW9uLXRoaWNrbmVzczogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBpbml0aWFs OyB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGluaXRpYWw7Ij48c3BhbiAgc3R5bGU9ImNvbG9yOiBy Z2IoMCwgMTc2LCA4MCk7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC1mYW1pbHk6IFRhaG9tYSwg QXJpYWwsIFNUSGVpdGksIFNpbVN1bjsgZm9udC1zaXplOiAxNHB4OyBmb250LXZhcmlhbnQtbGln YXR1cmVzOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0 MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVu dDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd29yZC1z cGFjaW5nOiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgdGV4dC1k ZWNvcmF0aW9uLXRoaWNrbmVzczogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBpbml0 aWFsOyB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGluaXRpYWw7IGZsb2F0OiBub25lOyBkaXNwbGF5 OiBpbmxpbmUgIWltcG9ydGFudDsiPiZndDsgKyBwYXJhbS5jb25mID0gY29uZjs8L3NwYW4+PGJy ICBzdHlsZT0iZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJpYWwsIFNUSGVpdGksIFNpbVN1bjsgZm9u dC1zaXplOiAxNHB4OyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBub3JtYWw7IGZvbnQtdmFyaWFu dC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7 IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRy YW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNp bmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9y OiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGluaXRpYWw7 IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBp bml0aWFsOyI+PGJyICBzdHlsZT0iZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJpYWwsIFNUSGVpdGks IFNpbVN1bjsgZm9udC1zaXplOiAxNHB4OyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBub3JtYWw7 IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFj aW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDog MHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiAy OyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyBiYWNr Z3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25l c3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0 aW9uLWNvbG9yOiBpbml0aWFsOyI+PHNwYW4gIHN0eWxlPSJjb2xvcjogcmdiKDAsIDE3NiwgODAp OyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRp LCBTaW1TdW47IGZvbnQtc2l6ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFs OyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3Bh Y2luZzogbm9ybWFsOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10 cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyBi YWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlj a25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNv cmF0aW9uLWNvbG9yOiBpbml0aWFsOyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBv cnRhbnQ7Ij5JIGRvbid0IHNlZSB3aGVyZSB0aGlzICdjb25mJyBpcyBwYXJzZWQuIElmIHRoZSB1 c2VyIGhhcyByZXF1ZXN0ZWQgdW5zdXBwb3J0ZWQ8L3NwYW4+PGJyICBzdHlsZT0iZm9udC1mYW1p bHk6IFRhaG9tYSwgQXJpYWwsIFNUSGVpdGksIFNpbVN1bjsgZm9udC1zaXplOiAxNHB4OyBmb250 LXZhcmlhbnQtbGlnYXR1cmVzOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZv bnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhhbnM6IDI7IHRleHQt YWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hp dGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgLXdlYmtpdC10 ZXh0LXN0cm9rZS13aWR0aDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1 NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1z dHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyI+PHNwYW4gIHN0 eWxlPSJjb2xvcjogcmdiKDAsIDE3NiwgODApOyBmb250LXN0eWxlOiBpdGFsaWM7IGZvbnQtZmFt aWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6ZTogMTRweDsgZm9u dC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBm b250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0LWFsaWduOiBzdGFy dDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBu b3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUs IDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlv bi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFsOyBmbG9hdDog bm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7Ij5vZmZsb2Fkcywgc2F5LCB1bnN1cHBv cnRlZCBSU1MgZmxvdyB0eXBlcywgdGhlbiB0aGUgZHJpdmVyIHNob3VsZCBnaXZlIGFuIGVycm9y Ljwvc3Bhbj48YnIgIHN0eWxlPSJmb250LWZhbWlseTogVGFob21hLCBBcmlhbCwgU1RIZWl0aSwg U2ltU3VuOyBmb250LXNpemU6IDE0cHg7IGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsg Zm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNp bmc6IG5vcm1hbDsgb3JwaGFuczogMjsgdGV4dC1hbGlnbjogc3RhcnQ7IHRleHQtaW5kZW50OiAw cHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7 IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHg7IGJhY2tn cm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgdGV4dC1kZWNvcmF0aW9uLXRoaWNrbmVz czogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRp b24tY29sb3I6IGluaXRpYWw7Ij48YnIgIHN0eWxlPSJmb250LWZhbWlseTogVGFob21hLCBBcmlh bCwgU1RIZWl0aSwgU2ltU3VuOyBmb250LXNpemU6IDE0cHg7IGZvbnQtdmFyaWFudC1saWdhdHVy ZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDQwMDsg bGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgb3JwaGFuczogMjsgdGV4dC1hbGlnbjogc3RhcnQ7IHRl eHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTogbm9ybWFs OyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdpZHRo OiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgdGV4dC1kZWNvcmF0 aW9uLXRoaWNrbmVzczogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBpbml0aWFsOyB0 ZXh0LWRlY29yYXRpb24tY29sb3I6IGluaXRpYWw7Ij48c3BhbiAgc3R5bGU9ImNvbG9yOiByZ2Io MCwgMTc2LCA4MCk7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJp YWwsIFNUSGVpdGksIFNpbVN1bjsgZm9udC1zaXplOiAxNHB4OyBmb250LXZhcmlhbnQtbGlnYXR1 cmVzOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7 IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDog MHB4OyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd29yZC1zcGFj aW5nOiAwcHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgdGV4dC1kZWNv cmF0aW9uLXRoaWNrbmVzczogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBpbml0aWFs OyB0ZXh0LWRlY29yYXRpb24tY29sb3I6IGluaXRpYWw7IGZsb2F0OiBub25lOyBkaXNwbGF5OiBp bmxpbmUgIWltcG9ydGFudDsiPkRvZXMgdGhlIGRyaXZlciBhY3R1YWxseSBwYXJzZSB1c2VyIFJT UyBjb25maWd1cmF0aW9uPyBVc2VyIFJTUyBrZXk/IFJTUyB0eXBlcz88L3NwYW4+PGJyICBzdHls ZT0iZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJpYWwsIFNUSGVpdGksIFNpbVN1bjsgZm9udC1zaXpl OiAxNHB4OyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBub3JtYWw7IGZvbnQtdmFyaWFudC1jYXBz OiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IG9ycGhh bnM6IDI7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0ZXh0LXRyYW5zZm9y bTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBw eDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2Io MjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRleHQt ZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0aWFs OyI+PHNwYW4gIHN0eWxlPSJjb2xvcjogcmdiKDAsIDE3NiwgODApOyBmb250LXN0eWxlOiBpdGFs aWM7IGZvbnQtZmFtaWx5OiBUYWhvbWEsIEFyaWFsLCBTVEhlaXRpLCBTaW1TdW47IGZvbnQtc2l6 ZTogMTRweDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBmb250LXZhcmlhbnQtY2Fw czogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB0ZXh0 LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFuc2Zvcm06IG5vbmU7IHdo aXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBy Z2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IGluaXRpYWw7IHRl eHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiBpbml0 aWFsOyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRhbnQ7Ij5Eb2VzIHRoZSBw YXRjaCBzZXJpZXMgYWxsb3cgdXNlciB0byBzZXQgdGhlaXIgb3duIFJFVEEgdGFibGUgZm9yIFJT Uz88L3NwYW4+PC9zcGFuPjwvZGl2PjxkaXYgIHN0eWxlPSJjbGVhcjogYm90aDsiPjxzcGFuICBz dHlsZT0iY29sb3I6IHJnYigwLCAxNzYsIDgwKTsgZm9udC1zdHlsZTogaXRhbGljOyBmb250LWZh bWlseTogVGFob21hLCBBcmlhbCwgU1RIZWl0aSwgU2ltU3VuOyBmb250LXNpemU6IDE0cHg7IGZv bnQtdmFyaWFudC1saWdhdHVyZXM6IG5vcm1hbDsgZm9udC12YXJpYW50LWNhcHM6IG5vcm1hbDsg Zm9udC13ZWlnaHQ6IDQwMDsgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgdGV4dC1hbGlnbjogc3Rh cnQ7IHRleHQtaW5kZW50OiAwcHg7IHRleHQtdHJhbnNmb3JtOiBub25lOyB3aGl0ZS1zcGFjZTog bm9ybWFsOyB3b3JkLXNwYWNpbmc6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1 LCAyNTUpOyB0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzOiBpbml0aWFsOyB0ZXh0LWRlY29yYXRp b24tc3R5bGU6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1jb2xvcjogaW5pdGlhbDsgZmxvYXQ6 IG5vbmU7IGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50OyI+PGJyID48L3NwYW4+PC9kaXY+PGRp diAgc3R5bGU9ImNsZWFyOiBib3RoOyI+PHNwYW4gIHN0eWxlPSJmb250LXN0eWxlOiBpdGFsaWM7 IGNvbG9yOiByZ2IoMCwgMTc2LCA4MCk7Ij48c3BhbiAgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMTc2 LCA4MCk7IGZvbnQtc3R5bGU6IGl0YWxpYzsgZm9udC1mYW1pbHk6IFRhaG9tYSwgQXJpYWwsIFNU SGVpdGksIFNpbVN1bjsgZm9udC1zaXplOiAxNHB4OyBmb250LXZhcmlhbnQtbGlnYXR1cmVzOiBu b3JtYWw7IGZvbnQtdmFyaWFudC1jYXBzOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA0MDA7IGxldHRl ci1zcGFjaW5nOiBub3JtYWw7IHRleHQtYWxpZ246IHN0YXJ0OyB0ZXh0LWluZGVudDogMHB4OyB0 ZXh0LXRyYW5zZm9ybTogbm9uZTsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgd29yZC1zcGFjaW5nOiAw cHg7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1KTsgdGV4dC1kZWNvcmF0aW9u LXRoaWNrbmVzczogaW5pdGlhbDsgdGV4dC1kZWNvcmF0aW9uLXN0eWxlOiBpbml0aWFsOyB0ZXh0 LWRlY29yYXRpb24tY29sb3I6IGluaXRpYWw7IGZsb2F0OiBub25lOyBkaXNwbGF5OiBpbmxpbmUg IWltcG9ydGFudDsiPjxzcGFuICBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1p bHk6IFRhaG9tYSwgQXJpYWwsIFNUSGVpdGlTQy1MaWdodCwgU2ltU3VuOyBmb250LXNpemU6IDE0 cHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50LWxpZ2F0dXJlczogbm9ybWFsOyBm b250LXZhcmlhbnQtY2Fwczogbm9ybWFsOyBmb250LXdlaWdodDogNDAwOyBsZXR0ZXItc3BhY2lu Zzogbm9ybWFsOyB0ZXh0LWFsaWduOiBzdGFydDsgdGV4dC1pbmRlbnQ6IDBweDsgdGV4dC10cmFu c2Zvcm06IG5vbmU7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHdvcmQtc3BhY2luZzogMHB4OyBiYWNr Z3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IHRleHQtZGVjb3JhdGlvbi10aGlja25l c3M6IGluaXRpYWw7IHRleHQtZGVjb3JhdGlvbi1zdHlsZTogaW5pdGlhbDsgdGV4dC1kZWNvcmF0 aW9uLWNvbG9yOiBpbml0aWFsOyBmbG9hdDogbm9uZTsgZGlzcGxheTogaW5saW5lICFpbXBvcnRh bnQ7Ij48L3NwYW4+PC9zcGFuPjwvc3Bhbj48cCAgY2xhc3M9IiI+VG8gYWRkcmVzcyB5b3VyIGNv bmNlcm5zOjwvcD48L2Rpdj48ZGl2ICBzdHlsZT0iY2xlYXI6IGJvdGg7Ij48c3BhbiA+VGhpcyBw YXRjaCBzZXJpZXMgZG9lcyBub3Qgc3VwcG9ydCBhbnkgUlNTIGNvbmZpZ3VyYXRpb24sIGluY2x1 ZGluZzo8YnIgPjwvc3Bhbj48ZGl2ICBzdHlsZT0iY2xlYXI6IGJvdGg7Ij4xLiBDdXN0b20gUlNT IGtleSBjb25maWd1cmF0aW9uPGJyID48L2Rpdj48ZGl2ICBzdHlsZT0iY2xlYXI6IGJvdGg7Ij4y LiBSU1MgZmxvdyB0eXBlIGNvbmZpZ3VyYXRpb248YnIgPjwvZGl2PjxkaXYgIHN0eWxlPSJjbGVh cjogYm90aDsiPjMuIFVzZXItZGVmaW5lZCBSRVRBIHRhYmxlIGNvbmZpZ3VyYXRpb248YnIgPjwv ZGl2PjxkaXYgIHN0eWxlPSJjbGVhcjogYm90aDsiPlRoZXJlZm9yZTo8YnIgPjwvZGl2PjxkaXYg IHN0eWxlPSJjbGVhcjogYm90aDsiPjEuV2UgZG8gbm90IHNldCBmbG93X3R5cGVfcnNzX29mZmxv YWRzIGluIHJ0ZV9ldGhfZGV2X2luZm88YnIgPjwvZGl2PjxzcGFuID4yLldlIGRvIG5vdCBpbXBs ZW1lbnQgdGhlIHJzc19oYXNoX3VwZGF0ZSBhbmQgcmV0YV91cGRhdGUgaW50ZXJmYWNlcyBpbiBl dGhfZGV2X29wczwvc3Bhbj48L2Rpdj48ZGl2ICBzdHlsZT0iY2xlYXI6IGJvdGg7Ij48YnIgPjwv ZGl2PjxkaXYgPjxzcGFuID5JbiB0aGUgcnRlX2V0aF9yeF9xdWV1ZV9zZXR1cCBmdW5jdGlvbiwg aXQgY2hlY2tzIHdoZXRoZXIgdXNlci1jb25maWd1cmVkIG9mZmxvYWRzIGZhbGwgd2l0aGluIGRl dl9pbmZvLnJ4X3F1ZXVlX29mZmxvYWRfY2FwYS4mbmJzcDs8L3NwYW4+PC9kaXY+PGRpdiA+PHNw YW4gPlNpbmNlIHdlIGhhdmVuJ3Qgc2V0IGRldl9pbmZvLnJ4X3F1ZXVlX29mZmxvYWRfY2FwYSwg dGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGFuIGVycm9yIGlmIHVzZXJzIGNvbmZpZ3VyZSBhbnkg b2ZmbG9hZHMuIENvbnNlcXVlbnRseSwgd2UgY3VycmVudGx5IGRvbid0IG5lZWQgdG8gcGFyc2Ug dGhlICdjb25mJyBwYXJhbWV0ZXIuPC9zcGFuPjwvZGl2PjxzcGFuICBzdHlsZT0iZm9udC1mYW1p bHk6IFRhaG9tYSwgQXJpYWwsIFNUSGVpdGlTQy1MaWdodCwgU2ltU3VuOyI+PGJyID48L3NwYW4+ PC9kaXY+PGRpdiAgc3R5bGU9ImNsZWFyOiBib3RoOyBmb250LWZhbWlseTogVGFob21hLCBBcmlh bCwgU1RIZWl0aVNDLUxpZ2h0LCBTaW1TdW47Ij48c3BhbiAgc3R5bGU9ImZvbnQtZmFtaWx5OiBU YWhvbWEsIEFyaWFsLCBTVEhlaXRpU0MtTGlnaHQsIFNpbVN1bjsiPjxzcGFuID5UaGUgcGF0Y2gg c2VyaWVzIGN1cnJlbnRseSBmb2N1c2VzIG9uIGJhc2ljIGZ1bmN0aW9uYWxpdHksIHdpdGggUlNT IHN1cHBvcnQgcGxhbm5lZCBmb3IgZnV0dXJlIGltcGxlbWVudGF0aW9uLjwvc3Bhbj48L3NwYW4+ PC9kaXY+PGRpdiAgc3R5bGU9ImNsZWFyOiBib3RoOyBmb250LWZhbWlseTogVGFob21hLCBBcmlh bCwgU1RIZWl0aVNDLUxpZ2h0LCBTaW1TdW47Ij48c3BhbiAgc3R5bGU9ImZvbnQtZmFtaWx5OiBU YWhvbWEsIEFyaWFsLCBTVEhlaXRpU0MtTGlnaHQsIFNpbVN1bjsiPjxzcGFuID48YnIgPjwvc3Bh bj48L3NwYW4+PC9kaXY+PGJsb2NrcXVvdGUgIF9xdW90ZT0iMSIgc3R5bGU9Im1hcmdpbi1yaWdo dDogMHB4OyBtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgZm9udC1mYW1pbHk6 IFRhaG9tYSwgQXJpYWwsIFNUSGVpdGksIFNpbVN1bjsgZm9udC1zaXplOiAxNHB4OyBjb2xvcjog cmdiKDAsIDAsIDApOyI+PGRpdiAgY2xhc3M9ImFsaW1haWwtcXVvdGUiPjxkaXYgIHN0eWxlPSJj bGVhcjogYm90aDsiPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwvZGl2PjxkaXYgIHN0eWxlPSJjbGVhcjogYm90aDsiPuWP keS7tuS6uu+8mkl2YW4gTWFsb3YgJmx0O2l2YW4ubWFsb3ZAYXJrbmV0d29ya3MuYW0mZ3Q7PC9k aXY+PGRpdiAgc3R5bGU9ImNsZWFyOiBib3RoOyI+5Y+R6YCB5pe26Ze077yaMjAyNeW5tDjmnIgx M+aXpSjlkajkuIkpIDIwOjAwPC9kaXY+PGRpdiAgc3R5bGU9ImNsZWFyOiBib3RoOyI+5pS25Lu2 5Lq677yaRGltb24mbHQ7ZGltb24uemhhb0BuZWJ1bGEtbWF0cml4LmNvbSZndDs8L2Rpdj48ZGl2 ICBzdHlsZT0iY2xlYXI6IGJvdGg7Ij7mioTjgIDpgIHvvJpkZXYmbHQ7ZGV2QGRwZGsub3JnJmd0 OzsgS3lvIExpdSZsdDtreW8ubGl1QG5lYnVsYS1tYXRyaXguY29tJmd0OzsgTGVvbiZsdDtsZW9u Lnl1QG5lYnVsYS1tYXRyaXguY29tJmd0OzsgU2FtJmx0O3NhbS5jaGVuQG5lYnVsYS1tYXRyaXgu Y29tJmd0OzwvZGl2PjxkaXYgIHN0eWxlPSJjbGVhcjogYm90aDsiPuS4u+OAgOmimO+8mlJlOiBb UEFUQ0ggdjQgMTIvMTZdIG5ldC9uYmw6IGFkZCBuYmwgZGV2aWNlIHJ4dHggcXVldWUgc2V0dXAg YW5kIHJlbGVhc2Ugb3BzPC9kaXY+PGRpdiAgc3R5bGU9ImNsZWFyOiBib3RoOyI+PGJyID48L2Rp dj5IaSBEaW1vbiw8YnIgPjxiciA+KHBsZWFzZSBzZWUgYmVsb3cpPGJyID48YnIgPk9uIFR1ZSwg MTIgQXVnIDIwMjUsIERpbW9uIFpoYW8gd3JvdGU6PGJyID48YnIgPiZndDsgSW1wbGVtZW50IE5C TCBkZXZpY2UgUnggYW5kIFR4IHF1ZXVlIHNldHVwICZhbXA7IHJlbGVhc2UgZnVuY3Rpb25zPGJy ID4mZ3Q7PGJyID4mZ3Q7IFNpZ25lZC1vZmYtYnk6IERpbW9uIFpoYW8gJmx0O2RpbW9uLnpoYW9A bmVidWxhLW1hdHJpeC5jb20mZ3Q7PGJyID4mZ3Q7IC0tLTxiciA+Jmd0OyBkcml2ZXJzL25ldC9u YmwvbmJsX2Rldi9uYmxfZGV2LmMgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgfCZuYnNwOyA3NSArKysrKzxiciA+Jmd0OyBkcml2ZXJzL25ldC9uYmwvbmJsX2Rldi9u YmxfZGV2LmggJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgfCAmbmJz cDsgNyArPGJyID4mZ3Q7IGRyaXZlcnMvbmV0L25ibC9uYmxfZXRoZGV2LmMmbmJzcDsgJm5ic3A7 ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB8ICZuYnNw OyA0ICs8YnIgPiZndDsgLi4uL25ibC9uYmxfaHcvbmJsX2h3X2xlb25pcy9uYmxfcmVzX2xlb25p cy5jIHwgJm5ic3A7IDIgKzxiciA+Jmd0OyBkcml2ZXJzL25ldC9uYmwvbmJsX2h3L25ibF9yZXNv dXJjZS5oICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyB8Jm5ic3A7IDk5ICsrKysrKzxiciA+ Jmd0OyBkcml2ZXJzL25ldC9uYmwvbmJsX2h3L25ibF90eHJ4LmMgJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgfCAyODUgKysrKysrKysrKysrKysrKy0tPGJyID4mZ3Q7 IGRyaXZlcnMvbmV0L25ibC9uYmxfaHcvbmJsX3R4cnguaCAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyB8Jm5ic3A7IDk5ICsrKysrKzxiciA+Jmd0OyBkcml2ZXJzL25l dC9uYmwvbmJsX2luY2x1ZGUvbmJsX2RlZl9jb21tb24uaCZuYnNwOyB8ICZuYnNwOyA1ICs8YnIg PiZndDsgZHJpdmVycy9uZXQvbmJsL25ibF9pbmNsdWRlL25ibF9pbmNsdWRlLmggJm5ic3A7ICZu YnNwOyB8ICZuYnNwOyAxICs8YnIgPiZndDsgOSBmaWxlcyBjaGFuZ2VkLCA1NTUgaW5zZXJ0aW9u cygrKSwgMjIgZGVsZXRpb25zKC0pPGJyID4mZ3Q7PGJyID4mZ3Q7IGRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9uYmwvbmJsX2Rldi9uYmxfZGV2LmMgYi9kcml2ZXJzL25ldC9uYmwvbmJsX2Rldi9u YmxfZGV2LmM8YnIgPiZndDsgaW5kZXggODZkZWZkNjIxZC4uMTdiOWJkMmM3NyAxMDA2NDQ8YnIg PiZndDsgLS0tIGEvZHJpdmVycy9uZXQvbmJsL25ibF9kZXYvbmJsX2Rldi5jPGJyID4mZ3Q7ICsr KyBiL2RyaXZlcnMvbmV0L25ibC9uYmxfZGV2L25ibF9kZXYuYzxiciA+Jmd0OyBAQCAtNTcsNiAr NTcsODEgQEAgaW50IG5ibF9kZXZfcG9ydF9jbG9zZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9k ZXYpPGJyID4mZ3Q7Jm5ic3A7IHJldHVybiAwOzxiciA+Jmd0OyB9PGJyID4mZ3Q7PGJyID4mZ3Q7 ICtpbnQgbmJsX3R4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwgdTE2 IHF1ZXVlX2lkeCw8YnIgPiZndDsgKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgdTE2IG5i X2Rlc2MsIHVuc2lnbmVkIGludCBzb2NrZXRfaWQsIGNvbnN0IHN0cnVjdCBydGVfZXRoX3R4Y29u ZiAqY29uZik8YnIgPiZndDsgK3s8YnIgPiZndDsgKyBzdHJ1Y3QgbmJsX2FkYXB0ZXIgKmFkYXB0 ZXIgPSBFVEhfREVWX1RPX05CTF9ERVZfUEZfUFJJVihldGhfZGV2KTs8YnIgPiZndDsgKyBzdHJ1 Y3QgbmJsX2Rldl9tZ3QgKmRldl9tZ3QgPSBOQkxfQURBUFRFUl9UT19ERVZfTUdUKGFkYXB0ZXIp OzxiciA+Jmd0OyArIHN0cnVjdCBuYmxfZGlzcGF0Y2hfb3BzICpkaXNwX29wcyA9IE5CTF9ERVZf TUdUX1RPX0RJU1BfT1BTKGRldl9tZ3QpOzxiciA+Jmd0OyArIHN0cnVjdCBuYmxfZGV2X3Jpbmdf bWd0ICpyaW5nX21ndCA9ICZhbXA7ZGV2X21ndC0mZ3Q7bmV0X2Rldi0mZ3Q7cmluZ19tZ3Q7PGJy ID4mZ3Q7ICsgc3RydWN0IG5ibF9kZXZfcmluZyAqdHhfcmluZyA9ICZhbXA7cmluZ19tZ3QtJmd0 O3R4X3JpbmdzW3F1ZXVlX2lkeF07PGJyID4mZ3Q7ICsgc3RydWN0IG5ibF9zdGFydF90eF9yaW5n X3BhcmFtIHBhcmFtID0geyAwIH07PGJyID4mZ3Q7ICsgaW50IHJldDs8YnIgPiZndDsgKzxiciA+ Jmd0OyArIHBhcmFtLnF1ZXVlX2lkeCA9IHF1ZXVlX2lkeDs8YnIgPiZndDsgKyBwYXJhbS5uYl9k ZXNjID0gbmJfZGVzYzs8YnIgPiZndDsgKyBwYXJhbS5zb2NrZXRfaWQgPSBzb2NrZXRfaWQ7PGJy ID4mZ3Q7ICsgcGFyYW0uY29uZiA9IGNvbmY7PGJyID4mZ3Q7ICsgcGFyYW0ucHJvZHVjdCA9IGFk YXB0ZXItJmd0O2NhcHMucHJvZHVjdF90eXBlOzxiciA+Jmd0OyArIHBhcmFtLmJvbmRfYnJvYWRj YXN0X2NoZWNrID0gTlVMTDs8YnIgPiZndDsgKyByZXQgPSZuYnNwOyBkaXNwX29wcy0mZ3Q7c3Rh cnRfdHhfcmluZyhOQkxfREVWX01HVF9UT19ESVNQX1BSSVYoZGV2X21ndCksICZhbXA7cGFyYW0s ICZhbXA7dHhfcmluZy0mZ3Q7ZG1hKTs8YnIgPiZndDsgKyBpZiAocmV0KSB7PGJyID4mZ3Q7ICsm bmJzcDsgTkJMX0xPRyhFUlIsICJzdGFydF90eF9yaW5nIGZhaWxlZCAlZCIsIHJldCk7PGJyID4m Z3Q7ICsmbmJzcDsgcmV0dXJuIHJldDs8YnIgPiZndDsgKyB9PGJyID4mZ3Q7ICs8YnIgPiZndDsg KyB0eF9yaW5nLSZndDtkZXNjX251bSA9IG5iX2Rlc2M7PGJyID4mZ3Q7ICs8YnIgPiZndDsgKyBy ZXR1cm4gcmV0OzxiciA+Jmd0OyArfTxiciA+Jmd0OyArPGJyID4mZ3Q7ICtpbnQgbmJsX3J4X3F1 ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwgdTE2IHF1ZXVlX2lkeCw8YnIg PiZndDsgKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgdTE2IG5iX2Rlc2MsIHVuc2lnbmVk IGludCBzb2NrZXRfaWQsPGJyID4mZ3Q7ICsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGNv bnN0IHN0cnVjdCBydGVfZXRoX3J4Y29uZiAqY29uZiwgc3RydWN0IHJ0ZV9tZW1wb29sICptZW1w b29sKTxiciA+Jmd0OyArezxiciA+Jmd0OyArIHN0cnVjdCBuYmxfYWRhcHRlciAqYWRhcHRlciA9 IEVUSF9ERVZfVE9fTkJMX0RFVl9QRl9QUklWKGV0aF9kZXYpOzxiciA+Jmd0OyArIHN0cnVjdCBu YmxfZGV2X21ndCAqZGV2X21ndCA9IE5CTF9BREFQVEVSX1RPX0RFVl9NR1QoYWRhcHRlcik7PGJy ID4mZ3Q7ICsgc3RydWN0IG5ibF9kaXNwYXRjaF9vcHMgKmRpc3Bfb3BzID0gTkJMX0RFVl9NR1Rf VE9fRElTUF9PUFMoZGV2X21ndCk7PGJyID4mZ3Q7ICsgc3RydWN0IG5ibF9kZXZfcmluZ19tZ3Qg KnJpbmdfbWd0ID0gJmFtcDtkZXZfbWd0LSZndDtuZXRfZGV2LSZndDtyaW5nX21ndDs8YnIgPiZn dDsgKyBzdHJ1Y3QgbmJsX2Rldl9yaW5nICpyeF9yaW5nID0gJmFtcDtyaW5nX21ndC0mZ3Q7cnhf cmluZ3NbcXVldWVfaWR4XTs8YnIgPiZndDsgKyBzdHJ1Y3QgbmJsX3N0YXJ0X3J4X3JpbmdfcGFy YW0gcGFyYW0gPSB7IDAgfTs8YnIgPiZndDsgKyBpbnQgcmV0OzxiciA+Jmd0OyArPGJyID4mZ3Q7 ICsgcGFyYW0ucXVldWVfaWR4ID0gcXVldWVfaWR4OzxiciA+Jmd0OyArIHBhcmFtLm5iX2Rlc2Mg PSBuYl9kZXNjOzxiciA+Jmd0OyArIHBhcmFtLnNvY2tldF9pZCA9IHNvY2tldF9pZDs8YnIgPiZn dDsgKyBwYXJhbS5jb25mID0gY29uZjs8YnIgPjxiciA+SSBkb24ndCBzZWUgd2hlcmUgdGhpcyAn Y29uZicgaXMgcGFyc2VkLiBJZiB0aGUgdXNlciBoYXMgcmVxdWVzdGVkIHVuc3VwcG9ydGVkPGJy ID5vZmZsb2Fkcywgc2F5LCB1bnN1cHBvcnRlZCBSU1MgZmxvdyB0eXBlcywgdGhlbiB0aGUgZHJp dmVyIHNob3VsZCBnaXZlIGFuIGVycm9yLjxiciA+PGJyID5Eb2VzIHRoZSBkcml2ZXIgYWN0dWFs bHkgcGFyc2UgdXNlciBSU1MgY29uZmlndXJhdGlvbj8gVXNlciBSU1Mga2V5PyBSU1MgdHlwZXM/ PGJyID5Eb2VzIHRoZSBwYXRjaCBzZXJpZXMgYWxsb3cgdXNlciB0byBzZXQgdGhlaXIgb3duIFJF VEEgdGFibGUgZm9yIFJTUz88YnIgPjxiciA+Jmd0OyArIHBhcmFtLm1lbXBvb2wgPSBtZW1wb29s OzxiciA+Jmd0OyArIHBhcmFtLnByb2R1Y3QgPSBhZGFwdGVyLSZndDtjYXBzLnByb2R1Y3RfdHlw ZTs8YnIgPiZndDsgKyByZXQgPSZuYnNwOyBkaXNwX29wcy0mZ3Q7c3RhcnRfcnhfcmluZyhOQkxf REVWX01HVF9UT19ESVNQX1BSSVYoZGV2X21ndCksICZhbXA7cGFyYW0sICZhbXA7cnhfcmluZy0m Z3Q7ZG1hKTs8YnIgPiZndDsgKyBpZiAocmV0KSB7PGJyID4mZ3Q7ICsmbmJzcDsgTkJMX0xPRyhF UlIsICJzdGFydF9yeF9yaW5nIGZhaWxlZCAlZCIsIHJldCk7PGJyID4mZ3Q7ICsmbmJzcDsgcmV0 dXJuIHJldDs8YnIgPiZndDsgKyB9PGJyID4mZ3Q7ICs8YnIgPiZndDsgKyByeF9yaW5nLSZndDtk ZXNjX251bSA9IG5iX2Rlc2M7PGJyID4mZ3Q7ICs8YnIgPiZndDsgKyByZXR1cm4gcmV0OzxiciA+ Jmd0OyArfTxiciA+Jmd0OyArPGJyID4mZ3Q7ICt2b2lkIG5ibF90eF9xdWV1ZXNfcmVsZWFzZShz dHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsIHVpbnQxNl90IHF1ZXVlX2lkKTxiciA+Jmd0OyAr ezxiciA+Jmd0OyArIHN0cnVjdCBuYmxfYWRhcHRlciAqYWRhcHRlciA9IEVUSF9ERVZfVE9fTkJM X0RFVl9QRl9QUklWKGV0aF9kZXYpOzxiciA+Jmd0OyArIHN0cnVjdCBuYmxfZGV2X21ndCAqZGV2 X21ndCA9IE5CTF9BREFQVEVSX1RPX0RFVl9NR1QoYWRhcHRlcik7PGJyID4mZ3Q7ICsgc3RydWN0 IG5ibF9kaXNwYXRjaF9vcHMgKmRpc3Bfb3BzID0gTkJMX0RFVl9NR1RfVE9fRElTUF9PUFMoZGV2 X21ndCk7PGJyID4mZ3Q7ICs8YnIgPiZndDsgKyBkaXNwX29wcy0mZ3Q7cmVsZWFzZV90eF9yaW5n KE5CTF9ERVZfTUdUX1RPX0RJU1BfUFJJVihkZXZfbWd0KSwgcXVldWVfaWQpOzxiciA+Jmd0OyAr fTxiciA+Jmd0OyArPGJyID4mZ3Q7ICt2b2lkIG5ibF9yeF9xdWV1ZXNfcmVsZWFzZShzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmV0aF9kZXYsIHVpbnQxNl90IHF1ZXVlX2lkKTxiciA+Jmd0OyArezxiciA+ Jmd0OyArIHN0cnVjdCBuYmxfYWRhcHRlciAqYWRhcHRlciA9IEVUSF9ERVZfVE9fTkJMX0RFVl9Q Rl9QUklWKGV0aF9kZXYpOzxiciA+Jmd0OyArIHN0cnVjdCBuYmxfZGV2X21ndCAqZGV2X21ndCA9 IE5CTF9BREFQVEVSX1RPX0RFVl9NR1QoYWRhcHRlcik7PGJyID4mZ3Q7ICsgc3RydWN0IG5ibF9k aXNwYXRjaF9vcHMgKmRpc3Bfb3BzID0gTkJMX0RFVl9NR1RfVE9fRElTUF9PUFMoZGV2X21ndCk7 PGJyID4mZ3Q7ICs8YnIgPiZndDsgKyBkaXNwX29wcy0mZ3Q7cmVsZWFzZV9yeF9yaW5nKE5CTF9E RVZfTUdUX1RPX0RJU1BfUFJJVihkZXZfbWd0KSwgcXVldWVfaWQpOzxiciA+Jmd0OyArfTxiciA+ Jmd0OyArPGJyID4mZ3Q7IHN0cnVjdCBuYmxfZGV2X29wcyBkZXZfb3BzID0gezxiciA+Jmd0OyB9 OzxiciA+Jmd0OzxiciA+Jmd0OyBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmJsL25ibF9kZXYv bmJsX2Rldi5oIGIvZHJpdmVycy9uZXQvbmJsL25ibF9kZXYvbmJsX2Rldi5oPGJyID4mZ3Q7IGlu ZGV4IGVjZmI2ZjZhZTAuLmRjYTIyMzM3NDkgMTAwNjQ0PGJyID4mZ3Q7IC0tLSBhL2RyaXZlcnMv bmV0L25ibC9uYmxfZGV2L25ibF9kZXYuaDxiciA+Jmd0OyArKysgYi9kcml2ZXJzL25ldC9uYmwv bmJsX2Rldi9uYmxfZGV2Lmg8YnIgPiZndDsgQEAgLTU2LDUgKzU2LDEyIEBAIGludCBuYmxfZGV2 X2NvbmZpZ3VyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYpOzxiciA+Jmd0OyBpbnQgbmJs X2Rldl9wb3J0X3N0YXJ0KHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2Rldik7PGJyID4mZ3Q7IGlu dCBuYmxfZGV2X3BvcnRfc3RvcChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYpOzxiciA+Jmd0 OyBpbnQgbmJsX2Rldl9wb3J0X2Nsb3NlKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2Rldik7PGJy ID4mZ3Q7ICtpbnQgbmJsX3R4X3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2Rl diwgdTE2IHF1ZXVlX2lkeCw8YnIgPiZndDsgKyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg dTE2IG5iX2Rlc2MsIHVuc2lnbmVkIGludCBzb2NrZXRfaWQsIGNvbnN0IHN0cnVjdCBydGVfZXRo X3R4Y29uZiAqY29uZik7PGJyID4mZ3Q7ICtpbnQgbmJsX3J4X3F1ZXVlX3NldHVwKHN0cnVjdCBy dGVfZXRoX2RldiAqZXRoX2RldiwgdTE2IHF1ZXVlX2lkeCw8YnIgPiZndDsgKyAmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgdTE2IG5iX2Rlc2MsIHVuc2lnbmVkIGludCBzb2NrZXRfaWQsPGJy ID4mZ3Q7ICsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IGNvbnN0IHN0cnVjdCBydGVfZXRo X3J4Y29uZiAqY29uZiwgc3RydWN0IHJ0ZV9tZW1wb29sICptZW1wb29sKTs8YnIgPiZndDsgK3Zv aWQgbmJsX3R4X3F1ZXVlc19yZWxlYXNlKHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwgdWlu dDE2X3QgcXVldWVfaWQpOzxiciA+Jmd0OyArdm9pZCBuYmxfcnhfcXVldWVzX3JlbGVhc2Uoc3Ry dWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LCB1aW50MTZfdCBxdWV1ZV9pZCk7PGJyID4mZ3Q7PGJy ID4mZ3Q7ICNlbmRpZjxiciA+Jmd0OyBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbmJsL25ibF9l dGhkZXYuYyBiL2RyaXZlcnMvbmV0L25ibC9uYmxfZXRoZGV2LmM8YnIgPiZndDsgaW5kZXggYjc3 MzA1OTMwNi4uNTE0MTZlYmE5MSAxMDA2NDQ8YnIgPiZndDsgLS0tIGEvZHJpdmVycy9uZXQvbmJs L25ibF9ldGhkZXYuYzxiciA+Jmd0OyArKysgYi9kcml2ZXJzL25ldC9uYmwvbmJsX2V0aGRldi5j PGJyID4mZ3Q7IEBAIC0zMyw2ICszMywxMCBAQCBjb25zdCBzdHJ1Y3QgZXRoX2Rldl9vcHMgbmJs X2V0aF9kZXZfb3BzID0gezxiciA+Jmd0OyZuYnNwOyAuZGV2X3N0YXJ0ID0gbmJsX2Rldl9wb3J0 X3N0YXJ0LDxiciA+Jmd0OyZuYnNwOyAuZGV2X3N0b3AgPSBuYmxfZGV2X3BvcnRfc3RvcCw8YnIg PiZndDsmbmJzcDsgLmRldl9jbG9zZSA9IG5ibF9kZXZfY2xvc2UsPGJyID4mZ3Q7ICsgLnR4X3F1 ZXVlX3NldHVwID0gbmJsX3R4X3F1ZXVlX3NldHVwLDxiciA+Jmd0OyArIC5yeF9xdWV1ZV9zZXR1 cCA9IG5ibF9yeF9xdWV1ZV9zZXR1cCw8YnIgPiZndDsgKyAudHhfcXVldWVfcmVsZWFzZSA9IG5i bF90eF9xdWV1ZXNfcmVsZWFzZSw8YnIgPiZndDsgKyAucnhfcXVldWVfcmVsZWFzZSA9IG5ibF9y eF9xdWV1ZXNfcmVsZWFzZSw8YnIgPiZndDsgfTs8YnIgPiZndDs8YnIgPiZndDsgc3RhdGljIGlu dCBuYmxfZXRoX2Rldl9pbml0KHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2Rldik8YnIgPiZndDsg ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ibC9uYmxfaHcvbmJsX2h3X2xlb25pcy9uYmxfcmVz X2xlb25pcy5jIGIvZHJpdmVycy9uZXQvbmJsL25ibF9ody9uYmxfaHdfbGVvbmlzL25ibF9yZXNf bGVvbmlzLmM8YnIgPiZndDsgaW5kZXggNjMyN2FhNTViNC4uYjc4NTc3NGY2NyAxMDA2NDQ8YnIg PiZndDsgLS0tIGEvZHJpdmVycy9uZXQvbmJsL25ibF9ody9uYmxfaHdfbGVvbmlzL25ibF9yZXNf bGVvbmlzLmM8YnIgPiZndDsgKysrIGIvZHJpdmVycy9uZXQvbmJsL25ibF9ody9uYmxfaHdfbGVv bmlzL25ibF9yZXNfbGVvbmlzLmM8YnIgPiZndDsgQEAgLTUzLDYgKzUzLDggQEAgc3RhdGljIGlu dCBuYmxfcmVzX3N0YXJ0KHN0cnVjdCBuYmxfcmVzb3VyY2VfbWd0X2xlb25pcyAqcmVzX21ndF9s ZW9uaXMpPGJyID4mZ3Q7Jm5ic3A7IHN0cnVjdCBuYmxfcmVzb3VyY2VfbWd0ICpyZXNfbWd0ID0g JmFtcDtyZXNfbWd0X2xlb25pcy0mZ3Q7cmVzX21ndDs8YnIgPiZndDsmbmJzcDsgaW50IHJldDs8 YnIgPiZndDs8YnIgPiZndDsgKyByZXNfbWd0LSZndDtyZXNfaW5mby5iYXNlX3FpZCA9IDA7PGJy ID4mZ3Q7ICs8YnIgPiZndDsmbmJzcDsgcmV0ID0gbmJsX3R4cnhfbWd0X3N0YXJ0KHJlc19tZ3Qp OzxiciA+Jmd0OyZuYnNwOyBpZiAocmV0KTxiciA+Jmd0OyAmbmJzcDsgZ290byB0eHJ4X2ZhaWxl ZDs8YnIgPiZndDsgZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L25ibC9uYmxfaHcvbmJsX3Jlc291 cmNlLmggYi9kcml2ZXJzL25ldC9uYmwvbmJsX2h3L25ibF9yZXNvdXJjZS5oPGJyID4mZ3Q7IGlu ZGV4IDA3ZTYzMjcyNTkuLjU0MzA1NGEyY2IgMTAwNjQ0PGJyID4mZ3Q7IC0tLSBhL2RyaXZlcnMv bmV0L25ibC9uYmxfaHcvbmJsX3Jlc291cmNlLmg8YnIgPiZndDsgKysrIGIvZHJpdmVycy9uZXQv bmJsL25ibF9ody9uYmxfcmVzb3VyY2UuaDxiciA+Jmd0OyBAQCAtMTYsMTIgKzE2LDEwMiBAQDxi ciA+Jmd0OyAjZGVmaW5lIE5CTF9SRVNfTUdUX1RPX0NIQU5fT1BTKHJlc19tZ3QpIChOQkxfUkVT X01HVF9UT19DSEFOX09QU19UQkwocmVzX21ndCktJmd0O29wcyk8YnIgPiZndDsgI2RlZmluZSBO QkxfUkVTX01HVF9UT19DSEFOX1BSSVYocmVzX21ndCkgKE5CTF9SRVNfTUdUX1RPX0NIQU5fT1BT X1RCTChyZXNfbWd0KS0mZ3Q7cHJpdik8YnIgPiZndDsgI2RlZmluZSBOQkxfUkVTX01HVF9UT19F VEhfREVWKHJlc19tZ3QpJm5ic3A7ICgocmVzX21ndCktJmd0O2V0aF9kZXYpPGJyID4mZ3Q7ICsj ZGVmaW5lIE5CTF9SRVNfTUdUX1RPX0NPTU1PTihyZXNfbWd0KSZuYnNwOyAoKHJlc19tZ3QpLSZn dDtjb21tb24pPGJyID4mZ3Q7ICNkZWZpbmUgTkJMX1JFU19NR1RfVE9fVFhSWF9NR1QocmVzX21n dCkgKChyZXNfbWd0KS0mZ3Q7dHhyeF9tZ3QpPGJyID4mZ3Q7ICsjZGVmaW5lIE5CTF9SRVNfTUdU X1RPX1RYX1JJTkcocmVzX21ndCwgaW5kZXgpIFw8YnIgPiZndDsgKyAoTkJMX1JFU19NR1RfVE9f VFhSWF9NR1QocmVzX21ndCktJmd0O3R4X3JpbmdzWyhpbmRleCldKTxiciA+Jmd0OyArI2RlZmlu ZSBOQkxfUkVTX01HVF9UT19SWF9SSU5HKHJlc19tZ3QsIGluZGV4KSBcPGJyID4mZ3Q7ICsgKE5C TF9SRVNfTUdUX1RPX1RYUlhfTUdUKHJlc19tZ3QpLSZndDtyeF9yaW5nc1soaW5kZXgpXSk8YnIg PiZndDsgKzxiciA+Jmd0OyArc3RydWN0IG5ibF9wYWNrZWRfZGVzYyB7PGJyID4mZ3Q7ICsgcnRl X2xlNjRfdCBhZGRyOzxiciA+Jmd0OyArIHJ0ZV9sZTMyX3QgbGVuOzxiciA+Jmd0OyArIHJ0ZV9s ZTE2X3QgaWQ7PGJyID4mZ3Q7ICsgcnRlX2xlMTZfdCBmbGFnczs8YnIgPiZndDsgK307PGJyID4m Z3Q7ICs8YnIgPiZndDsgK3N0cnVjdCBuYmxfdHhfZW50cnkgezxiciA+Jmd0OyArIHN0cnVjdCBy dGVfbWJ1ZiAqbWJ1Zjs8YnIgPiZndDsgKyB1aW50MTZfdCBmaXJzdF9pZDs8YnIgPiZndDsgK307 PGJyID4mZ3Q7ICs8YnIgPiZndDsgK3N0cnVjdCBuYmxfcnhfZW50cnkgezxiciA+Jmd0OyArIHN0 cnVjdCBydGVfbWJ1ZiAqbWJ1Zjs8YnIgPiZndDsgK307PGJyID4mZ3Q7PGJyID4mZ3Q7IHN0cnVj dCBuYmxfcmVzX3R4X3JpbmcgezxiciA+Jmd0OyArIHZvbGF0aWxlIHN0cnVjdCBuYmxfcGFja2Vk X2Rlc2MgKmRlc2M7PGJyID4mZ3Q7ICsgc3RydWN0IG5ibF90eF9lbnRyeSAqdHhfZW50cnk7PGJy ID4mZ3Q7ICsgY29uc3Qgc3RydWN0IHJ0ZV9tZW16b25lICpuZXRfaGRyX216OzxiciA+Jmd0OyAr IHZvbGF0aWxlIHVpbnQ4X3QgKm5vdGlmeTs8YnIgPiZndDsgKyBzdHJ1Y3QgcnRlX2V0aF9kZXYg KmV0aF9kZXY7PGJyID4mZ3Q7ICsgc3RydWN0IG5ibF9jb21tb25faW5mbyAqY29tbW9uOzxiciA+ Jmd0OyArIHU2NCBkZWZhdWx0X2hkclsyXTs8YnIgPiZndDsgKzxiciA+Jmd0OyArIGVudW0gbmJs X3Byb2R1Y3RfdHlwZSBwcm9kdWN0OzxiciA+Jmd0OyArIGludCBkbWFfbGltaXRfbXNiOzxiciA+ Jmd0OyArIGJvb2wgZG1hX3NldF9tc2I7PGJyID4mZ3Q7ICsgdTE2IG5iX2Rlc2M7PGJyID4mZ3Q7 ICsgdTE2IG5leHRfdG9fY2xlYW47PGJyID4mZ3Q7ICsgdTE2IG5leHRfdG9fdXNlOzxiciA+Jmd0 OyArPGJyID4mZ3Q7ICsgdTE2IGF2YWlsX3VzZWRfZmxhZ3M7PGJyID4mZ3Q7ICsgYm9vbCB1c2Vk X3dyYXBfY291bnRlcjs8YnIgPiZndDsgKyB1MTYgbm90aWZ5X3FpZDs8YnIgPiZndDsgKyB1MTYg ZXh0aGRyX2xlbjs8YnIgPiZndDsgKzxiciA+Jmd0OyArIHUxNiB2bGFuX3Byb3RvOzxiciA+Jmd0 OyArIHUxNiB2bGFuX3RjaTs8YnIgPiZndDsgKyB1MTYgbGFnX2lkOzxiciA+Jmd0OyArIHUxNiB2 cV9mcmVlX2NudDs8YnIgPiZndDsgKyAvKiBTdGFydCBmcmVlaW5nIFRYIGJ1ZmZlcnMgaWYgdGhl cmUgYXJlIGxlc3MgZnJlZSBkZXNjcmlwdG9ycyB0aGFuIHRoaXMgdmFsdWUgKi88YnIgPiZndDsg KyB1MTYgdHhfZnJlZV90aHJlc2g7PGJyID4mZ3Q7ICsgLyogTnVtYmVyIG9mIFR4IGRlc2NyaXB0 b3JzIHRvIHVzZSBiZWZvcmUgUlMgYml0IGlzIHNldCAqLzxiciA+Jmd0OyArIHUxNiB0eF9yc190 aHJlc2g7PGJyID4mZ3Q7ICs8YnIgPiZndDsgKyB1bnNpZ25lZCBpbnQgc2l6ZTs8YnIgPiZndDsg KzxiciA+Jmd0OyArIHUxNiBxdWV1ZV9pZDs8YnIgPiZndDsgKzxiciA+Jmd0OyArIHU2NCBvZmZs b2Fkczs8YnIgPiZndDsgKyB1NjQgcmluZ19waHlzX2FkZHI7PGJyID4mZ3Q7ICs8YnIgPiZndDsg KyB1MTYgKCpwcmVwX3R4X2VoZHIpKHZvaWQgKnByaXYsIHN0cnVjdCBydGVfbWJ1ZiAqbWJ1Zik7 PGJyID4mZ3Q7IH07PGJyID4mZ3Q7PGJyID4mZ3Q7IHN0cnVjdCBuYmxfcmVzX3J4X3Jpbmcgezxi ciA+Jmd0OyArIHZvbGF0aWxlIHN0cnVjdCBuYmxfcGFja2VkX2Rlc2MgKmRlc2M7PGJyID4mZ3Q7 ICsgc3RydWN0IG5ibF9yeF9lbnRyeSAqcnhfZW50cnk7PGJyID4mZ3Q7ICsgc3RydWN0IHJ0ZV9t ZW1wb29sICptZW1wb29sOzxiciA+Jmd0OyArIHZvbGF0aWxlIHVpbnQ4X3QgKm5vdGlmeTs8YnIg PiZndDsgKyBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXY7PGJyID4mZ3Q7ICsgc3RydWN0IG5i bF9jb21tb25faW5mbyAqY29tbW9uOzxiciA+Jmd0OyArIHVpbnQ2NF90IG1idWZfaW5pdGlhbGl6 ZXI7IC8qKiZsdDsgdmFsdWUgdG8gaW5pdCBtYnVmcyAqLzxiciA+Jmd0OyArIHN0cnVjdCBydGVf bWJ1ZiBmYWtlX21idWY7PGJyID4mZ3Q7ICs8YnIgPiZndDsgKyBlbnVtIG5ibF9wcm9kdWN0X3R5 cGUgcHJvZHVjdDs8YnIgPiZndDsgKyBpbnQgZG1hX2xpbWl0X21zYjs8YnIgPiZndDsgKyB1bnNp Z25lZCBpbnQgc2l6ZTs8YnIgPiZndDsgKyBib29sIGRtYV9zZXRfbXNiOzxiciA+Jmd0OyArIHUx NiBuYl9kZXNjOzxiciA+Jmd0OyArIHUxNiBuZXh0X3RvX2NsZWFuOzxiciA+Jmd0OyArIHUxNiBu ZXh0X3RvX3VzZTs8YnIgPiZndDsgKzxiciA+Jmd0OyArIHUxNiBhdmFpbF91c2VkX2ZsYWdzOzxi ciA+Jmd0OyArIGJvb2wgdXNlZF93cmFwX2NvdW50ZXI7PGJyID4mZ3Q7ICsgdTE2IG5vdGlmeV9x aWQ7PGJyID4mZ3Q7ICsgdTE2IGV4dGhkcl9sZW47PGJyID4mZ3Q7ICs8YnIgPiZndDsgKyB1MTYg dmxhbl9wcm90bzs8YnIgPiZndDsgKyB1MTYgdmxhbl90Y2k7PGJyID4mZ3Q7ICsgdTE2IHZxX2Zy ZWVfY250OzxiciA+Jmd0OyArIHUxNiBwb3J0X2lkOzxiciA+Jmd0OyArPGJyID4mZ3Q7ICsgdTE2 IHF1ZXVlX2lkOzxiciA+Jmd0OyArIHUxNiBidWZfbGVuZ3RoOzxiciA+Jmd0OyArPGJyID4mZ3Q7 ICsgdTY0IG9mZmxvYWRzOzxiciA+Jmd0OyArIHU2NCByaW5nX3BoeXNfYWRkcjs8YnIgPiZndDsg fTs8YnIgPiZndDs8YnIgPiZndDsgc3RydWN0IG5ibF90eHJ4X21ndCB7PGJyID4mZ3Q7IEBAIC0z MywxMSArMTIzLDIwIEBAIHN0cnVjdCBuYmxfdHhyeF9tZ3QgezxiciA+Jmd0OyZuYnNwOyB1OCBy eF9yaW5nX251bTs8YnIgPiZndDsgfTs8YnIgPiZndDs8YnIgPiZndDsgK3N0cnVjdCBuYmxfcmVz X2luZm8gezxiciA+Jmd0OyArIHUxNiBiYXNlX3FpZDs8YnIgPiZndDsgKyB1MTYgbGNvcmVfbWF4 OzxiciA+Jmd0OyArIHUxNiAqcGZfcWlkX3RvX2xjb3JlX2lkOzxiciA+Jmd0OyArIHJ0ZV9hdG9t aWMxNl90IHR4X2N1cnJlbnRfcXVldWU7PGJyID4mZ3Q7ICt9OzxiciA+Jmd0OyArPGJyID4mZ3Q7 IHN0cnVjdCBuYmxfcmVzb3VyY2VfbWd0IHs8YnIgPiZndDsmbmJzcDsgc3RydWN0IHJ0ZV9ldGhf ZGV2ICpldGhfZGV2OzxiciA+Jmd0OyZuYnNwOyBzdHJ1Y3QgbmJsX2NoYW5uZWxfb3BzX3RibCAq Y2hhbl9vcHNfdGJsOzxiciA+Jmd0OyZuYnNwOyBzdHJ1Y3QgbmJsX3BoeV9vcHNfdGJsICpwaHlf b3BzX3RibDs8YnIgPiZndDsmbmJzcDsgc3RydWN0IG5ibF90eHJ4X21ndCAqdHhyeF9tZ3Q7PGJy ID4mZ3Q7ICsgc3RydWN0IG5ibF9jb21tb25faW5mbyAqY29tbW9uOzxiciA+Jmd0OyArIHN0cnVj dCBuYmxfcmVzX2luZm8gcmVzX2luZm87PGJyID4mZ3Q7IH07PGJyID4mZ3Q7PGJyID4mZ3Q7IHN0 cnVjdCBuYmxfcmVzb3VyY2VfbWd0X2xlb25pcyB7PGJyID4mZ3Q7IGRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9uYmwvbmJsX2h3L25ibF90eHJ4LmMgYi9kcml2ZXJzL25ldC9uYmwvbmJsX2h3L25i bF90eHJ4LmM8YnIgPiZndDsgaW5kZXggZWFhN2U0YzY5ZC4uYzUxYTM4NDQ0NSAxMDA2NDQ8YnIg PiZndDsgLS0tIGEvZHJpdmVycy9uZXQvbmJsL25ibF9ody9uYmxfdHhyeC5jPGJyID4mZ3Q7ICsr KyBiL2RyaXZlcnMvbmV0L25ibC9uYmxfaHcvbmJsX3R4cnguYzxiciA+Jmd0OyBAQCAtMzksNTUg KzM5LDI5NiBAQCBzdGF0aWMgdm9pZCBuYmxfcmVzX3R4cnhfcmVtb3ZlX3JpbmdzKHZvaWQgKnBy aXYpPGJyID4mZ3Q7Jm5ic3A7IHJ0ZV9mcmVlKHR4cnhfbWd0LSZndDtyeF9yaW5ncyk7PGJyID4m Z3Q7IH08YnIgPiZndDs8YnIgPiZndDsgLXN0YXRpYyBpbnQgbmJsX3Jlc190eHJ4X3N0YXJ0X3R4 X3Jpbmcodm9pZCAqcHJpdiw8YnIgPiZndDsgLSZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgc3RydWN0IG5ibF9zdGFydF90eF9yaW5nX3BhcmFtICpwYXJhbSw8YnIgPiZndDsgLSZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgdTY0ICpkbWFfYWRkcik8YnIgPiZndDsg K3N0YXRpYyBpbmxpbmUgdTE2IG5ibF9wcmVwX3R4X2VoZHJfbGVvbmlzKHZvaWQgKnByaXYsIHN0 cnVjdCBydGVfbWJ1ZiAqbWJ1Zik8YnIgPiZndDsgezxiciA+Jmd0OyZuYnNwOyBSVEVfU0VUX1VT RUQocHJpdik7PGJyID4mZ3Q7IC0gUlRFX1NFVF9VU0VEKHBhcmFtKTs8YnIgPiZndDsgLSBSVEVf U0VUX1VTRUQoZG1hX2FkZHIpOzxiciA+Jmd0OyArIFJURV9TRVRfVVNFRChtYnVmKTs8YnIgPiZn dDsmbmJzcDsgcmV0dXJuIDA7PGJyID4mZ3Q7IH08YnIgPiZndDs8YnIgPiZndDsgc3RhdGljIHZv aWQgbmJsX3Jlc190eHJ4X3N0b3BfdHhfcmluZyh2b2lkICpwcml2LCB1MTYgcXVldWVfaWR4KTxi ciA+Jmd0OyB7PGJyID4mZ3Q7IC0gUlRFX1NFVF9VU0VEKHByaXYpOzxiciA+Jmd0OyAtIFJURV9T RVRfVVNFRChxdWV1ZV9pZHgpOzxiciA+Jmd0OyArIHN0cnVjdCBuYmxfcmVzb3VyY2VfbWd0ICpy ZXNfbWd0ID0gKHN0cnVjdCBuYmxfcmVzb3VyY2VfbWd0ICopcHJpdjs8YnIgPiZndDsgKyBzdHJ1 Y3QgbmJsX3Jlc190eF9yaW5nICp0eF9yaW5nID0gTkJMX1JFU19NR1RfVE9fVFhfUklORyhyZXNf bWd0LCBxdWV1ZV9pZHgpOzxiciA+Jmd0OyArIGludCBpOzxiciA+Jmd0OyArPGJyID4mZ3Q7ICsg aWYgKCF0eF9yaW5nKTxiciA+Jmd0OyArJm5ic3A7IHJldHVybjs8YnIgPiZndDsgKzxiciA+Jmd0 OyArIGZvciAoaSA9IDA7IGkgJmx0OyB0eF9yaW5nLSZndDtuYl9kZXNjOyBpKyspIHs8YnIgPiZn dDsgKyZuYnNwOyBpZiAodHhfcmluZy0mZ3Q7dHhfZW50cnlbaV0ubWJ1ZiAhPSBOVUxMKSB7PGJy ID4mZ3Q7ICsgJm5ic3A7IHJ0ZV9wa3RtYnVmX2ZyZWVfc2VnKHR4X3JpbmctJmd0O3R4X2VudHJ5 W2ldLm1idWYpOzxiciA+Jmd0OyArICZuYnNwOyBtZW1zZXQoJmFtcDt0eF9yaW5nLSZndDt0eF9l bnRyeVtpXSwgMCwgc2l6ZW9mKCp0eF9yaW5nLSZndDt0eF9lbnRyeSkpOzxiciA+Jmd0OyArJm5i c3A7IH08YnIgPiZndDsgKyZuYnNwOyB0eF9yaW5nLSZndDtkZXNjW2ldLmZsYWdzID0gMDs8YnIg PiZndDsgKyB9PGJyID4mZ3Q7ICs8YnIgPiZndDsgKyB0eF9yaW5nLSZndDthdmFpbF91c2VkX2Zs YWdzID0gQklUKE5CTF9QQUNLRURfREVTQ19GX0FWQUlMKTs8YnIgPiZndDsgKyB0eF9yaW5nLSZn dDt1c2VkX3dyYXBfY291bnRlciA9IDE7PGJyID4mZ3Q7ICsgdHhfcmluZy0mZ3Q7bmV4dF90b19j bGVhbiA9IE5CTF9UWF9SU19USFJFU0ggLSAxOzxiciA+Jmd0OyArIHR4X3JpbmctJmd0O25leHRf dG9fdXNlID0gMDs8YnIgPiZndDsgKyB0eF9yaW5nLSZndDt2cV9mcmVlX2NudCA9IHR4X3Jpbmct Jmd0O25iX2Rlc2M7PGJyID4mZ3Q7IH08YnIgPiZndDs8YnIgPiZndDsgLXN0YXRpYyB2b2lkIG5i bF9yZXNfdHhyeF9yZWxlYXNlX3R4cmluZyh2b2lkICpwcml2LCB1MTYgcXVldWVfaWR4KTxiciA+ Jmd0OyArc3RhdGljIHZvaWQgbmJsX3Jlc190eHJ4X3JlbGVhc2VfdHhfcmluZyh2b2lkICpwcml2 LCB1MTYgcXVldWVfaWR4KTxiciA+Jmd0OyB7PGJyID4mZ3Q7IC0gUlRFX1NFVF9VU0VEKHByaXYp OzxiciA+Jmd0OyAtIFJURV9TRVRfVVNFRChxdWV1ZV9pZHgpOzxiciA+Jmd0OyArIHN0cnVjdCBu YmxfcmVzb3VyY2VfbWd0ICpyZXNfbWd0ID0gKHN0cnVjdCBuYmxfcmVzb3VyY2VfbWd0ICopcHJp djs8YnIgPiZndDsgKyBzdHJ1Y3QgbmJsX3R4cnhfbWd0ICp0eHJ4X21ndCA9IE5CTF9SRVNfTUdU X1RPX1RYUlhfTUdUKHJlc19tZ3QpOzxiciA+Jmd0OyArIHN0cnVjdCBuYmxfcmVzX3R4X3Jpbmcg KnR4X3JpbmcgPSBOQkxfUkVTX01HVF9UT19UWF9SSU5HKHJlc19tZ3QsIHF1ZXVlX2lkeCk7PGJy ID4mZ3Q7ICsgaWYgKCF0eF9yaW5nKTxiciA+Jmd0OyArJm5ic3A7IHJldHVybjs8YnIgPiZndDsg KyBydGVfZnJlZSh0eF9yaW5nLSZndDt0eF9lbnRyeSk7PGJyID4mZ3Q7ICsgcnRlX2ZyZWUodHhf cmluZyk7PGJyID4mZ3Q7ICsgdHhyeF9tZ3QtJmd0O3R4X3JpbmdzW3F1ZXVlX2lkeF0gPSBOVUxM OzxiciA+Jmd0OyB9PGJyID4mZ3Q7PGJyID4mZ3Q7IC1zdGF0aWMgaW50IG5ibF9yZXNfdHhyeF9z dGFydF9yeF9yaW5nKHZvaWQgKnByaXYsPGJyID4mZ3Q7IC0mbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7IHN0cnVjdCBuYmxfc3RhcnRfcnhfcmluZ19wYXJhbSAqcGFyYW0sPGJyID4m Z3Q7ICtzdGF0aWMgaW50IG5ibF9yZXNfdHhyeF9zdGFydF90eF9yaW5nKHZvaWQgKnByaXYsPGJy ID4mZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHN0cnVjdCBuYmxfc3Rh cnRfdHhfcmluZ19wYXJhbSAqcGFyYW0sPGJyID4mZ3Q7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgdTY0ICpkbWFfYWRkcik8YnIgPiZndDsgezxiciA+Jmd0OyAtIFJURV9TRVRf VVNFRChwcml2KTs8YnIgPiZndDsgLSBSVEVfU0VUX1VTRUQocGFyYW0pOzxiciA+Jmd0OyAtIFJU RV9TRVRfVVNFRChkbWFfYWRkcik7PGJyID4mZ3Q7ICsgc3RydWN0IG5ibF9yZXNvdXJjZV9tZ3Qg KnJlc19tZ3QgPSAoc3RydWN0IG5ibF9yZXNvdXJjZV9tZ3QgKilwcml2OzxiciA+Jmd0OyArIHN0 cnVjdCBuYmxfdHhyeF9tZ3QgKnR4cnhfbWd0ID0gTkJMX1JFU19NR1RfVE9fVFhSWF9NR1QocmVz X21ndCk7PGJyID4mZ3Q7ICsgc3RydWN0IG5ibF9yZXNfdHhfcmluZyAqdHhfcmluZyA9IE5CTF9S RVNfTUdUX1RPX1RYX1JJTkcocmVzX21ndCwgcGFyYW0tJmd0O3F1ZXVlX2lkeCk7PGJyID4mZ3Q7 ICsgc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2ID0gTkJMX1JFU19NR1RfVE9fRVRIX0RFVihy ZXNfbWd0KTs8YnIgPiZndDsgKyBzdHJ1Y3QgbmJsX2NvbW1vbl9pbmZvICpjb21tb24gPSBOQkxf UkVTX01HVF9UT19DT01NT04ocmVzX21ndCk7PGJyID4mZ3Q7ICsgc3RydWN0IG5ibF9waHlfb3Bz ICpwaHlfb3BzID0gTkJMX1JFU19NR1RfVE9fUEhZX09QUyhyZXNfbWd0KTs8YnIgPiZndDsgKyBj b25zdCBzdHJ1Y3QgcnRlX21lbXpvbmUgKm1lbXpvbmU7PGJyID4mZ3Q7ICsgY29uc3Qgc3RydWN0 IHJ0ZV9tZW16b25lICpuZXRfaGRyX216OzxiciA+Jmd0OyArIGNoYXIgdnFfaGRyX25hbWVbTkJM X1ZRX0hEUl9OQU1FX01BWFNJWkVdOzxiciA+Jmd0OyArIHN0cnVjdCBuYmxfdHhfZWhkcl9sZW9u aXMgZXh0X2hkciA9IHswfTs8YnIgPiZndDsgKyB1aW50NjRfdCBvZmZsb2Fkczs8YnIgPiZndDsg KyB1MzIgc2l6ZTs8YnIgPiZndDsgKzxiciA+Jmd0OyArIG9mZmxvYWRzID0gcGFyYW0tJmd0O2Nv bmYtJmd0O29mZmxvYWRzIHwgZXRoX2Rldi0mZ3Q7ZGF0YS0mZ3Q7ZGV2X2NvbmYudHhtb2RlLm9m ZmxvYWRzOzxiciA+Jmd0OyArPGJyID4mZ3Q7ICsgaWYgKGV0aF9kZXYtJmd0O2RhdGEtJmd0O3R4 X3F1ZXVlc1twYXJhbS0mZ3Q7cXVldWVfaWR4XSAhPSBOVUxMKSB7PGJyID4mZ3Q7ICsmbmJzcDsg TkJMX0xPRyhXQVJOSU5HLCAicmUtc2V0dXAgYW4gYWxyZWFkeSBhbGxvY2F0ZWQgdHggcXVldWUi KTs8YnIgPiZndDsgKyZuYnNwOyBuYmxfcmVzX3R4cnhfc3RvcF90eF9yaW5nKHByaXYsIHBhcmFt LSZndDtxdWV1ZV9pZHgpOzxiciA+Jmd0OyArJm5ic3A7IGV0aF9kZXYtJmd0O2RhdGEtJmd0O3R4 X3F1ZXVlc1twYXJhbS0mZ3Q7cXVldWVfaWR4XSA9IE5VTEw7PGJyID4mZ3Q7ICsgfTxiciA+Jmd0 OyArPGJyID4mZ3Q7ICsgdHhfcmluZyA9IHJ0ZV96bWFsbG9jKCJuYmxfdHhyaW5nIiwgc2l6ZW9m KCp0eF9yaW5nKSwgUlRFX0NBQ0hFX0xJTkVfU0laRSk7PGJyID4mZ3Q7ICsgaWYgKCF0eF9yaW5n KSB7PGJyID4mZ3Q7ICsmbmJzcDsgTkJMX0xPRyhFUlIsICJhbGxvY2F0ZSB0eCBxdWV1ZSBkYXRh IHN0cnVjdHVyZSBmYWlsZWQiKTs8YnIgPiZndDsgKyZuYnNwOyByZXR1cm4gLUVOT01FTTs8YnIg PiZndDsgKyB9PGJyID4mZ3Q7ICsgbWVtc2V0KCZhbXA7dHhfcmluZy0mZ3Q7ZGVmYXVsdF9oZHIs IDAsIHNpemVvZih0eF9yaW5nLSZndDtkZWZhdWx0X2hkcikpOzxiciA+Jmd0OyArIHN3aXRjaCAo cGFyYW0tJmd0O3Byb2R1Y3QpIHs8YnIgPiZndDsgKyBjYXNlIE5CTF9MRU9OSVNfVFlQRTo8YnIg PiZndDsgKyZuYnNwOyB0eF9yaW5nLSZndDtleHRoZHJfbGVuID0gc2l6ZW9mKHN0cnVjdCBuYmxf dHhfZWhkcl9sZW9uaXMpOzxiciA+Jmd0OyArJm5ic3A7IHR4X3JpbmctJmd0O3ByZXBfdHhfZWhk ciA9IG5ibF9wcmVwX3R4X2VoZHJfbGVvbmlzOzxiciA+Jmd0OyArJm5ic3A7IGV4dF9oZHIuZndk ID0gTkJMX1RYX0ZXRF9UWVBFX05PUk1BTDs8YnIgPiZndDsgKyZuYnNwOyBtZW1jcHkoJmFtcDt0 eF9yaW5nLSZndDtkZWZhdWx0X2hkciwgJmFtcDtleHRfaGRyLCBzaXplb2Yoc3RydWN0IG5ibF90 eF9laGRyX2xlb25pcykpOzxiciA+Jmd0OyArJm5ic3A7IGJyZWFrOzxiciA+Jmd0OyArIGRlZmF1 bHQ6PGJyID4mZ3Q7ICsmbmJzcDsgdHhfcmluZy0mZ3Q7ZXh0aGRyX2xlbiA9IHNpemVvZih1bmlv biBuYmxfdHhfZXh0ZW5kX2hlYWQpOzxiciA+Jmd0OyArJm5ic3A7IGJyZWFrOzxiciA+Jmd0OyAr IH07PGJyID4mZ3Q7ICs8YnIgPiZndDsgKyB0eF9yaW5nLSZndDt0eF9lbnRyeSA9IHJ0ZV9jYWxs b2MoIm5ibF90eF9lbnRyeSIsPGJyID4mZ3Q7ICsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7 ICZuYnNwOyBwYXJhbS0mZ3Q7bmJfZGVzYywgc2l6ZW9mKCp0eF9yaW5nLSZndDt0eF9lbnRyeSks IDApOzxiciA+Jmd0OyArIGlmICghdHhfcmluZy0mZ3Q7dHhfZW50cnkpIHs8YnIgPiZndDsgKyZu YnNwOyBOQkxfTE9HKEVSUiwgImFsbG9jYXRlIHR4IHF1ZXVlICVkIHNvZnR3YXJlIHJpbmcgZmFp bGVkIiwgcGFyYW0tJmd0O3F1ZXVlX2lkeCk7PGJyID4mZ3Q7ICsmbmJzcDsgZ290byBhbGxvY190 eF9lbnRyeV9mYWlsZWQ7PGJyID4mZ3Q7ICsgfTxiciA+Jmd0OyArPGJyID4mZ3Q7ICsgLyogQWxs b2MgdHdpY2UgbWVtb3J5LCBhbmQgc2Vjb25kIGhhbGYgaXMgdXNlZCB0byBiYWNrIHVwIHRoZSBk ZXNjIGZvciBkZXNjIGNoZWNraW5nICovPGJyID4mZ3Q7ICsgc2l6ZSA9IFJURV9BTElHTl9DRUlM KHNpemVvZih0eF9yaW5nLSZndDtkZXNjWzBdKSAqIHBhcmFtLSZndDtuYl9kZXNjLCA0MDk2KTs8 YnIgPiZndDsgKyBtZW16b25lID0gcnRlX2V0aF9kbWFfem9uZV9yZXNlcnZlKGV0aF9kZXYsICJ0 eF9yaW5nIiwgcGFyYW0tJmd0O3F1ZXVlX2lkeCw8YnIgPiZndDsgKyZuYnNwOyAmbmJzcDsgJm5i c3A7ICZuYnNwOyBzaXplLCBSVEVfQ0FDSEVfTElORV9TSVpFLDxiciA+Jmd0OyArJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7IHBhcmFtLSZndDtzb2NrZXRfaWQpOzxiciA+Jmd0OyArIGlmICht ZW16b25lID09IE5VTEwpIHs8YnIgPiZndDsgKyZuYnNwOyBOQkxfTE9HKEVSUiwgInJlc2VydmUg ZG1hIHpvbmUgZm9yIHR4IHJpbmcgZmFpbGVkIik7PGJyID4mZ3Q7ICsmbmJzcDsgZ290byBhbGxv Y19kbWFfem9uZV9mYWlsZWQ7PGJyID4mZ3Q7ICsgfTxiciA+Jmd0OyArPGJyID4mZ3Q7ICsgLyog aWYgaGFzIG5vIG1lbW9yeSB0byBwdXQgZXh0ZW5kIGhlYWRlciwgYXBwbHkgZm9yIG5ldyBtZW1v cnkgKi88YnIgPiZndDsgKyBzaXplID0gcGFyYW0tJmd0O25iX2Rlc2MgKiBOQkxfVFhfSEVBREVS X0xFTjs8YnIgPiZndDsgKyBzbnByaW50Zih2cV9oZHJfbmFtZSwgc2l6ZW9mKHZxX2hkcl9uYW1l KSwgInBvcnQlZF92cSVkX2hkciIsPGJyID4mZ3Q7ICsgJm5ic3A7IGV0aF9kZXYtJmd0O2RhdGEt Jmd0O3BvcnRfaWQsIHBhcmFtLSZndDtxdWV1ZV9pZHgpOzxiciA+Jmd0OyArIG5ldF9oZHJfbXog PSBydGVfbWVtem9uZV9yZXNlcnZlX2FsaWduZWQodnFfaGRyX25hbWUsIHNpemUsPGJyID4mZ3Q7 ICsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgcGFyYW0tJmd0O3NvY2tldF9pZCw8YnIgPiZndDsgKyAm bmJzcDsgJm5ic3A7ICZuYnNwOyBSVEVfTUVNWk9ORV9JT1ZBX0NPTlRJRyw8YnIgPiZndDsgKyAm bmJzcDsgJm5ic3A7ICZuYnNwOyBSVEVfQ0FDSEVfTElORV9TSVpFKTs8YnIgPiZndDsgKyBpZiAo bmV0X2hkcl9teiA9PSBOVUxMKSB7PGJyID4mZ3Q7ICsmbmJzcDsgaWYgKHJ0ZV9lcnJubyA9PSBF RVhJU1QpPGJyID4mZ3Q7ICsgJm5ic3A7IG5ldF9oZHJfbXogPSBydGVfbWVtem9uZV9sb29rdXAo dnFfaGRyX25hbWUpOzxiciA+Jmd0OyArJm5ic3A7IGlmIChuZXRfaGRyX216ID09IE5VTEwpIHs8 YnIgPiZndDsgKyAmbmJzcDsgTkJMX0xPRyhFUlIsICJyZXNlcnZlIG5ldF9oZHJfbXogZG1hIHpv bmUgZm9yIHR4IHJpbmcgZmFpbGVkIik7PGJyID4mZ3Q7ICsgJm5ic3A7IGdvdG8gcmVzZXJ2ZV9u ZXRfaGRyX216X2ZhaWxlZDs8YnIgPiZndDsgKyZuYnNwOyB9PGJyID4mZ3Q7ICsgfTxiciA+Jmd0 OyArPGJyID4mZ3Q7ICsgdHhfcmluZy0mZ3Q7cHJvZHVjdCA9IHBhcmFtLSZndDtwcm9kdWN0Ozxi ciA+Jmd0OyArIHR4X3JpbmctJmd0O25iX2Rlc2MgPSBwYXJhbS0mZ3Q7bmJfZGVzYzs8YnIgPiZn dDsgKyB0eF9yaW5nLSZndDt2cV9mcmVlX2NudCA9IHBhcmFtLSZndDtuYl9kZXNjOzxiciA+Jmd0 OyArIHR4X3JpbmctJmd0O3F1ZXVlX2lkID0gcGFyYW0tJmd0O3F1ZXVlX2lkeDs8YnIgPiZndDsg KyB0eF9yaW5nLSZndDtub3RpZnlfcWlkID08YnIgPiZndDsgKyZuYnNwOyAocmVzX21ndC0mZ3Q7 cmVzX2luZm8uYmFzZV9xaWQgKyB0eHJ4X21ndC0mZ3Q7cXVldWVfb2Zmc2V0ICsgcGFyYW0tJmd0 O3F1ZXVlX2lkeCkgKiAyICsgMTs8YnIgPiZndDsgKyB0eF9yaW5nLSZndDtyaW5nX3BoeXNfYWRk ciA9ICh1NjQpTkJMX0RNQV9BRERFUlNTX0ZVTExfVFJBTlNMQVRFKGNvbW1vbiwgbWVtem9uZS0m Z3Q7aW92YSk7PGJyID4mZ3Q7ICsgdHhfcmluZy0mZ3Q7YXZhaWxfdXNlZF9mbGFncyA9IEJJVChO QkxfUEFDS0VEX0RFU0NfRl9BVkFJTCk7PGJyID4mZ3Q7ICsgdHhfcmluZy0mZ3Q7dXNlZF93cmFw X2NvdW50ZXIgPSAxOzxiciA+Jmd0OyArIHR4X3JpbmctJmd0O25leHRfdG9fY2xlYW4gPSBOQkxf VFhfUlNfVEhSRVNIIC0gMTs8YnIgPiZndDsgKyB0eF9yaW5nLSZndDtuZXh0X3RvX3VzZSA9IDA7 PGJyID4mZ3Q7ICsgdHhfcmluZy0mZ3Q7ZGVzYyA9IChzdHJ1Y3QgbmJsX3BhY2tlZF9kZXNjICop bWVtem9uZS0mZ3Q7YWRkcjs8YnIgPiZndDsgKyB0eF9yaW5nLSZndDtuZXRfaGRyX216ID0gbmV0 X2hkcl9tejs8YnIgPiZndDsgKyB0eF9yaW5nLSZndDtldGhfZGV2ID0gZXRoX2Rldjs8YnIgPiZn dDsgKyB0eF9yaW5nLSZndDtkbWFfc2V0X21zYiA9IGNvbW1vbi0mZ3Q7ZG1hX3NldF9tc2I7PGJy ID4mZ3Q7ICsgdHhfcmluZy0mZ3Q7ZG1hX2xpbWl0X21zYiA9IGNvbW1vbi0mZ3Q7ZG1hX2xpbWl0 X21zYjs8YnIgPiZndDsgKyB0eF9yaW5nLSZndDtub3RpZnkgPSBwaHlfb3BzLSZndDtnZXRfdGFp bF9wdHIoTkJMX1JFU19NR1RfVE9fUEhZX1BSSVYocmVzX21ndCkpOzxiciA+Jmd0OyArIHR4X3Jp bmctJmd0O29mZmxvYWRzID0gb2ZmbG9hZHM7PGJyID4mZ3Q7ICsgdHhfcmluZy0mZ3Q7Y29tbW9u ID0gY29tbW9uOzxiciA+Jmd0OyArPGJyID4mZ3Q7ICsgZXRoX2Rldi0mZ3Q7ZGF0YS0mZ3Q7dHhf cXVldWVzW3BhcmFtLSZndDtxdWV1ZV9pZHhdID0gdHhfcmluZzs8YnIgPiZndDsgKzxiciA+Jmd0 OyArIHR4cnhfbWd0LSZndDt0eF9yaW5nc1twYXJhbS0mZ3Q7cXVldWVfaWR4XSA9IHR4X3Jpbmc7 PGJyID4mZ3Q7ICsgdHhyeF9tZ3QtJmd0O3R4X3JpbmdfbnVtKys7PGJyID4mZ3Q7ICs8YnIgPiZn dDsgKyAqZG1hX2FkZHIgPSB0eF9yaW5nLSZndDtyaW5nX3BoeXNfYWRkcjs8YnIgPiZndDsgKzxi ciA+Jmd0OyZuYnNwOyByZXR1cm4gMDs8YnIgPiZndDsgKzxiciA+Jmd0OyArcmVzZXJ2ZV9uZXRf aGRyX216X2ZhaWxlZDo8YnIgPiZndDsgKyBydGVfbWVtem9uZV9mcmVlKG1lbXpvbmUpOzxiciA+ Jmd0OyArYWxsb2NfZG1hX3pvbmVfZmFpbGVkOjxiciA+Jmd0OyArIHJ0ZV9mcmVlKHR4X3Jpbmct Jmd0O3R4X2VudHJ5KTs8YnIgPiZndDsgKyB0eF9yaW5nLSZndDt0eF9lbnRyeSA9IE5VTEw7PGJy ID4mZ3Q7ICsgdHhfcmluZy0mZ3Q7c2l6ZSA9IDA7PGJyID4mZ3Q7ICthbGxvY190eF9lbnRyeV9m YWlsZWQ6PGJyID4mZ3Q7ICsgcnRlX2ZyZWUodHhfcmluZyk7PGJyID4mZ3Q7ICsgcmV0dXJuIC1F Tk9NRU07PGJyID4mZ3Q7IH08YnIgPiZndDs8YnIgPiZndDsgLXN0YXRpYyBpbnQgbmJsX3Jlc19h bGxvY19yeF9idWZzKHZvaWQgKnByaXYsIHUxNiBxdWV1ZV9pZHgpPGJyID4mZ3Q7ICtzdGF0aWMg dm9pZCBuYmxfcmVzX3R4cnhfc3RvcF9yeF9yaW5nKHZvaWQgKnByaXYsIHUxNiBxdWV1ZV9pZHgp PGJyID4mZ3Q7IHs8YnIgPiZndDsgLSBSVEVfU0VUX1VTRUQocHJpdik7PGJyID4mZ3Q7IC0gUlRF X1NFVF9VU0VEKHF1ZXVlX2lkeCk7PGJyID4mZ3Q7ICsgc3RydWN0IG5ibF9yZXNvdXJjZV9tZ3Qg KnJlc19tZ3QgPSAoc3RydWN0IG5ibF9yZXNvdXJjZV9tZ3QgKilwcml2OzxiciA+Jmd0OyArIHN0 cnVjdCBuYmxfcmVzX3J4X3JpbmcgKnJ4X3JpbmcgPTxiciA+Jmd0OyArICZuYnNwOyBOQkxfUkVT X01HVF9UT19SWF9SSU5HKHJlc19tZ3QsIHF1ZXVlX2lkeCk7PGJyID4mZ3Q7ICsgdTE2IGk7PGJy ID4mZ3Q7ICs8YnIgPiZndDsgKyBpZiAoIXJ4X3JpbmcpPGJyID4mZ3Q7ICsmbmJzcDsgcmV0dXJu OzxiciA+Jmd0OyArIGlmIChyeF9yaW5nLSZndDtyeF9lbnRyeSAhPSBOVUxMKSB7PGJyID4mZ3Q7 ICsmbmJzcDsgZm9yIChpID0gMDsgaSAmbHQ7IHJ4X3JpbmctJmd0O25iX2Rlc2M7IGkrKykgezxi ciA+Jmd0OyArICZuYnNwOyBpZiAocnhfcmluZy0mZ3Q7cnhfZW50cnlbaV0ubWJ1ZiAhPSBOVUxM KSB7PGJyID4mZ3Q7ICsmbmJzcDsgJm5ic3A7IHJ0ZV9wa3RtYnVmX2ZyZWVfc2VnKHJ4X3Jpbmct Jmd0O3J4X2VudHJ5W2ldLm1idWYpOzxiciA+Jmd0OyArJm5ic3A7ICZuYnNwOyByeF9yaW5nLSZn dDtyeF9lbnRyeVtpXS5tYnVmID0gTlVMTDs8YnIgPiZndDsgKyAmbmJzcDsgfTxiciA+Jmd0OyAr ICZuYnNwOyByeF9yaW5nLSZndDtkZXNjW2ldLmZsYWdzID0gMDs8YnIgPiZndDsgKyZuYnNwOyB9 PGJyID4mZ3Q7ICs8YnIgPiZndDsgKyZuYnNwOyBmb3IgKGkgPSByeF9yaW5nLSZndDtuYl9kZXNj OyBpICZsdDsgcnhfcmluZy0mZ3Q7bmJfZGVzYyArIE5CTF9ERVNDX1BFUl9MT09QX1ZFQ19NQVg7 IGkrKyk8YnIgPiZndDsgKyAmbmJzcDsgcnhfcmluZy0mZ3Q7ZGVzY1tpXS5mbGFncyA9IDA7PGJy ID4mZ3Q7ICsgfTxiciA+Jmd0OyArPGJyID4mZ3Q7ICsgcnhfcmluZy0mZ3Q7bmV4dF90b19jbGVh biA9IDA7PGJyID4mZ3Q7ICsgcnhfcmluZy0mZ3Q7bmV4dF90b191c2UgPSAwOzxiciA+Jmd0OyAr fTxiciA+Jmd0OyArPGJyID4mZ3Q7ICtzdGF0aWMgaW50IG5ibF9yZXNfdHhyeF9zdGFydF9yeF9y aW5nKHZvaWQgKnByaXYsPGJyID4mZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5i c3A7IHN0cnVjdCBuYmxfc3RhcnRfcnhfcmluZ19wYXJhbSAqcGFyYW0sPGJyID4mZ3Q7ICsmbmJz cDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IHU2NCAqZG1hX2FkZHIpPGJyID4mZ3Q7ICt7 PGJyID4mZ3Q7ICsgc3RydWN0IG5ibF9yZXNvdXJjZV9tZ3QgKnJlc19tZ3QgPSAoc3RydWN0IG5i bF9yZXNvdXJjZV9tZ3QgKilwcml2OzxiciA+Jmd0OyArIHN0cnVjdCBuYmxfdHhyeF9tZ3QgKnR4 cnhfbWd0ID0gTkJMX1JFU19NR1RfVE9fVFhSWF9NR1QocmVzX21ndCk7PGJyID4mZ3Q7ICsgc3Ry dWN0IG5ibF9yZXNfcnhfcmluZyAqcnhfcmluZyA9IE5CTF9SRVNfTUdUX1RPX1JYX1JJTkcocmVz X21ndCwgcGFyYW0tJmd0O3F1ZXVlX2lkeCk7PGJyID4mZ3Q7ICsgc3RydWN0IHJ0ZV9ldGhfZGV2 ICpldGhfZGV2ID0gTkJMX1JFU19NR1RfVE9fRVRIX0RFVihyZXNfbWd0KTs8YnIgPiZndDsgKyBz dHJ1Y3QgbmJsX3BoeV9vcHMgKnBoeV9vcHMgPSBOQkxfUkVTX01HVF9UT19QSFlfT1BTKHJlc19t Z3QpOzxiciA+Jmd0OyArIHN0cnVjdCBuYmxfY29tbW9uX2luZm8gKmNvbW1vbiA9IE5CTF9SRVNf TUdUX1RPX0NPTU1PTihyZXNfbWd0KTs8YnIgPiZndDsgKyBjb25zdCBzdHJ1Y3QgcnRlX21lbXpv bmUgKm1lbXpvbmU7PGJyID4mZ3Q7ICsgdTMyIHNpemU7PGJyID4mZ3Q7ICs8YnIgPiZndDsgKyBp ZiAoZXRoX2Rldi0mZ3Q7ZGF0YS0mZ3Q7cnhfcXVldWVzW3BhcmFtLSZndDtxdWV1ZV9pZHhdICE9 IE5VTEwpIHs8YnIgPiZndDsgKyZuYnNwOyBOQkxfTE9HKFdBUk5JTkcsICJyZS1zZXR1cCBhbiBh bHJlYWR5IGFsbG9jYXRlZCByeCBxdWV1ZSIpOzxiciA+Jmd0OyArJm5ic3A7IG5ibF9yZXNfdHhy eF9zdG9wX3J4X3JpbmcocHJpdiwgcGFyYW0tJmd0O3F1ZXVlX2lkeCk7PGJyID4mZ3Q7ICsmbmJz cDsgZXRoX2Rldi0mZ3Q7ZGF0YS0mZ3Q7cnhfcXVldWVzW3BhcmFtLSZndDtxdWV1ZV9pZHhdID0g TlVMTDs8YnIgPiZndDsgKyB9PGJyID4mZ3Q7ICs8YnIgPiZndDsgKyByeF9yaW5nID0gcnRlX3pt YWxsb2Nfc29ja2V0KCJuYmxfcnhyaW5nIiwgc2l6ZW9mKCpyeF9yaW5nKSw8YnIgPiZndDsgKyAm bmJzcDsgJm5ic3A7IFJURV9DQUNIRV9MSU5FX1NJWkUsIHBhcmFtLSZndDtzb2NrZXRfaWQpOzxi ciA+Jmd0OyArIGlmIChyeF9yaW5nID09IE5VTEwpIHs8YnIgPiZndDsgKyZuYnNwOyBOQkxfTE9H KEVSUiwgImFsbG9jYXRlIHJ4IHF1ZXVlIGRhdGEgc3RydWN0dXJlIGZhaWxlZCIpOzxiciA+Jmd0 OyArJm5ic3A7IHJldHVybiAtRU5PTUVNOzxiciA+Jmd0OyArIH08YnIgPiZndDsgKzxiciA+Jmd0 OyArIHNpemUgPSBzaXplb2YocnhfcmluZy0mZ3Q7cnhfZW50cnlbMF0pICogKHBhcmFtLSZndDtu Yl9kZXNjICsgTkJMX0RFU0NfUEVSX0xPT1BfVkVDX01BWCk7PGJyID4mZ3Q7ICsgcnhfcmluZy0m Z3Q7cnhfZW50cnkgPSBydGVfem1hbGxvY19zb2NrZXQoInJ4cSByeF9lbnRyeSIsIHNpemUsPGJy ID4mZ3Q7ICsmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBSVEVfQ0FD SEVfTElORV9TSVpFLDxiciA+Jmd0OyArJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNw OyAmbmJzcDsgcGFyYW0tJmd0O3NvY2tldF9pZCk7PGJyID4mZ3Q7ICsgaWYgKHJ4X3JpbmctJmd0 O3J4X2VudHJ5ID09IE5VTEwpIHs8YnIgPiZndDsgKyZuYnNwOyBOQkxfTE9HKEVSUiwgImFsbG9j YXRlIHJ4IHF1ZXVlICVkIHNvZnR3YXJlIHJpbmcgZmFpbGVkIiwgcGFyYW0tJmd0O3F1ZXVlX2lk eCk7PGJyID4mZ3Q7ICsmbmJzcDsgZ290byBhbGxvY19yeF9lbnRyeV9mYWlsZWQ7PGJyID4mZ3Q7 ICsgfTxiciA+Jmd0OyArPGJyID4mZ3Q7ICsgc2l6ZSA9IHNpemVvZihyeF9yaW5nLSZndDtkZXNj WzBdKSAqIChwYXJhbS0mZ3Q7bmJfZGVzYyArIE5CTF9ERVNDX1BFUl9MT09QX1ZFQ19NQVgpOzxi ciA+Jmd0OyArIG1lbXpvbmUgPSBydGVfZXRoX2RtYV96b25lX3Jlc2VydmUoZXRoX2RldiwgInJ4 X3JpbmciLCBwYXJhbS0mZ3Q7cXVldWVfaWR4LDxiciA+Jmd0OyArJm5ic3A7ICZuYnNwOyAmbmJz cDsgJm5ic3A7IHNpemUsIFJURV9DQUNIRV9MSU5FX1NJWkUsPGJyID4mZ3Q7ICsmbmJzcDsgJm5i c3A7ICZuYnNwOyAmbmJzcDsgcGFyYW0tJmd0O3NvY2tldF9pZCk7PGJyID4mZ3Q7ICsgaWYgKG1l bXpvbmUgPT0gTlVMTCkgezxiciA+Jmd0OyArJm5ic3A7IE5CTF9MT0coRVJSLCAicmVzZXJ2ZSBk bWEgem9uZSBmb3IgcnggcmluZyBmYWlsZWQiKTs8YnIgPiZndDsgKyZuYnNwOyBnb3RvIGFsbG9j X2RtYV96b25lX2ZhaWxlZDs8YnIgPiZndDsgKyB9PGJyID4mZ3Q7ICs8YnIgPiZndDsgKyByeF9y aW5nLSZndDtwcm9kdWN0ID0gcGFyYW0tJmd0O3Byb2R1Y3Q7PGJyID4mZ3Q7ICsgcnhfcmluZy0m Z3Q7bWVtcG9vbCA9IHBhcmFtLSZndDttZW1wb29sOzxiciA+Jmd0OyArIHJ4X3JpbmctJmd0O25i X2Rlc2MgPSBwYXJhbS0mZ3Q7bmJfZGVzYzs8YnIgPiZndDsgKyByeF9yaW5nLSZndDtxdWV1ZV9p ZCA9IHBhcmFtLSZndDtxdWV1ZV9pZHg7PGJyID4mZ3Q7ICsgcnhfcmluZy0mZ3Q7bm90aWZ5X3Fp ZCA9PGJyID4mZ3Q7ICsmbmJzcDsgKHJlc19tZ3QtJmd0O3Jlc19pbmZvLmJhc2VfcWlkICsgdHhy eF9tZ3QtJmd0O3F1ZXVlX29mZnNldCArIHBhcmFtLSZndDtxdWV1ZV9pZHgpICogMjs8YnIgPiZn dDsgKyByeF9yaW5nLSZndDtyaW5nX3BoeXNfYWRkciA9IE5CTF9ETUFfQURERVJTU19GVUxMX1RS QU5TTEFURShjb21tb24sIG1lbXpvbmUtJmd0O2lvdmEpOzxiciA+Jmd0OyArIHJ4X3JpbmctJmd0 O2Rlc2MgPSAoc3RydWN0IG5ibF9wYWNrZWRfZGVzYyAqKW1lbXpvbmUtJmd0O2FkZHI7PGJyID4m Z3Q7ICsgcnhfcmluZy0mZ3Q7cG9ydF9pZCA9IGV0aF9kZXYtJmd0O2RhdGEtJmd0O3BvcnRfaWQ7 PGJyID4mZ3Q7ICsgcnhfcmluZy0mZ3Q7ZXRoX2RldiA9IGV0aF9kZXY7PGJyID4mZ3Q7ICsgcnhf cmluZy0mZ3Q7ZG1hX3NldF9tc2IgPSBjb21tb24tJmd0O2RtYV9zZXRfbXNiOzxiciA+Jmd0OyAr IHJ4X3JpbmctJmd0O2RtYV9saW1pdF9tc2IgPSBjb21tb24tJmd0O2RtYV9saW1pdF9tc2I7PGJy ID4mZ3Q7ICsgcnhfcmluZy0mZ3Q7Y29tbW9uID0gY29tbW9uOzxiciA+Jmd0OyArIHJ4X3Jpbmct Jmd0O25vdGlmeSA9IHBoeV9vcHMtJmd0O2dldF90YWlsX3B0cihOQkxfUkVTX01HVF9UT19QSFlf UFJJVihyZXNfbWd0KSk7PGJyID4mZ3Q7ICs8YnIgPiZndDsgKyBzd2l0Y2ggKHBhcmFtLSZndDtw cm9kdWN0KSB7PGJyID4mZ3Q7ICsgY2FzZSBOQkxfTEVPTklTX1RZUEU6PGJyID4mZ3Q7ICsmbmJz cDsgcnhfcmluZy0mZ3Q7ZXh0aGRyX2xlbiA9IHNpemVvZihzdHJ1Y3QgbmJsX3J4X2VoZHJfbGVv bmlzKTs8YnIgPiZndDsgKyZuYnNwOyBicmVhazs8YnIgPiZndDsgKyBkZWZhdWx0OjxiciA+Jmd0 OyArJm5ic3A7IHJ4X3JpbmctJmd0O2V4dGhkcl9sZW4gPSBzaXplb2YodW5pb24gbmJsX3J4X2V4 dGVuZF9oZWFkKTs8YnIgPiZndDsgKyB9OzxiciA+Jmd0OyArPGJyID4mZ3Q7ICsgZXRoX2Rldi0m Z3Q7ZGF0YS0mZ3Q7cnhfcXVldWVzW3BhcmFtLSZndDtxdWV1ZV9pZHhdID0gcnhfcmluZzs8YnIg PiZndDsgKzxiciA+Jmd0OyArIHR4cnhfbWd0LSZndDtyeF9yaW5nc1twYXJhbS0mZ3Q7cXVldWVf aWR4XSA9IHJ4X3Jpbmc7PGJyID4mZ3Q7ICsgdHhyeF9tZ3QtJmd0O3J4X3JpbmdfbnVtKys7PGJy ID4mZ3Q7ICs8YnIgPiZndDsgKyAqZG1hX2FkZHIgPSByeF9yaW5nLSZndDtyaW5nX3BoeXNfYWRk cjs8YnIgPiZndDsgKzxiciA+Jmd0OyZuYnNwOyByZXR1cm4gMDs8YnIgPiZndDsgKzxiciA+Jmd0 OyArYWxsb2NfZG1hX3pvbmVfZmFpbGVkOjxiciA+Jmd0OyArIHJ0ZV9mcmVlKHJ4X3JpbmctJmd0 O3J4X2VudHJ5KTs8YnIgPiZndDsgKyByeF9yaW5nLSZndDtyeF9lbnRyeSA9IE5VTEw7PGJyID4m Z3Q7ICsgcnhfcmluZy0mZ3Q7c2l6ZSA9IDA7PGJyID4mZ3Q7ICthbGxvY19yeF9lbnRyeV9mYWls ZWQ6PGJyID4mZ3Q7ICsgcnRlX2ZyZWUocnhfcmluZyk7PGJyID4mZ3Q7ICsgcmV0dXJuIC1FTk9N RU07PGJyID4mZ3Q7IH08YnIgPiZndDs8YnIgPiZndDsgLXN0YXRpYyB2b2lkIG5ibF9yZXNfdHhy eF9zdG9wX3J4X3Jpbmcodm9pZCAqcHJpdiwgdTE2IHF1ZXVlX2lkeCk8YnIgPiZndDsgK3N0YXRp YyBpbnQgbmJsX3Jlc19hbGxvY19yeF9idWZzKHZvaWQgKnByaXYsIHUxNiBxdWV1ZV9pZHgpPGJy ID4mZ3Q7IHs8YnIgPiZndDsmbmJzcDsgUlRFX1NFVF9VU0VEKHByaXYpOzxiciA+Jmd0OyZuYnNw OyBSVEVfU0VUX1VTRUQocXVldWVfaWR4KTs8YnIgPiZndDsgKyByZXR1cm4gMDs8YnIgPiZndDsg fTxiciA+Jmd0OzxiciA+Jmd0OyBzdGF0aWMgdm9pZCBuYmxfcmVzX3R4cnhfcmVsZWFzZV9yeF9y aW5nKHZvaWQgKnByaXYsIHUxNiBxdWV1ZV9pZHgpPGJyID4mZ3Q7IHs8YnIgPiZndDsgLSBSVEVf U0VUX1VTRUQocHJpdik7PGJyID4mZ3Q7IC0gUlRFX1NFVF9VU0VEKHF1ZXVlX2lkeCk7PGJyID4m Z3Q7ICsgc3RydWN0IG5ibF9yZXNvdXJjZV9tZ3QgKnJlc19tZ3QgPSAoc3RydWN0IG5ibF9yZXNv dXJjZV9tZ3QgKilwcml2OzxiciA+Jmd0OyArIHN0cnVjdCBuYmxfdHhyeF9tZ3QgKnR4cnhfbWd0 ID0gTkJMX1JFU19NR1RfVE9fVFhSWF9NR1QocmVzX21ndCk7PGJyID4mZ3Q7ICsgc3RydWN0IG5i bF9yZXNfcnhfcmluZyAqcnhfcmluZyA9PGJyID4mZ3Q7ICsgJm5ic3A7IE5CTF9SRVNfTUdUX1RP X1JYX1JJTkcocmVzX21ndCwgcXVldWVfaWR4KTs8YnIgPiZndDsgKyBpZiAoIXJ4X3JpbmcpPGJy ID4mZ3Q7ICsmbmJzcDsgcmV0dXJuOzxiciA+Jmd0OyArPGJyID4mZ3Q7ICsgcnRlX2ZyZWUocnhf cmluZy0mZ3Q7cnhfZW50cnkpOzxiciA+Jmd0OyArIHJ0ZV9mcmVlKHJ4X3JpbmcpOzxiciA+Jmd0 OyArIHR4cnhfbWd0LSZndDtyeF9yaW5nc1txdWV1ZV9pZHhdID0gTlVMTDs8YnIgPiZndDsgfTxi ciA+Jmd0OzxiciA+Jmd0OyBzdGF0aWMgdm9pZCBuYmxfcmVzX3R4cnhfdXBkYXRlX3J4X3Jpbmco dm9pZCAqcHJpdiwgdTE2IGluZGV4KTxiciA+Jmd0OyBAQCAtMTA2LDcgKzM0Nyw3IEBAIGRvIHsm bmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8YnIgPiZndDsmbmJzcDsgTkJMX1RY UlhfU0VUX09QUyhyZW1vdmVfcmluZ3MsIG5ibF9yZXNfdHhyeF9yZW1vdmVfcmluZ3MpOyZuYnNw OyBcPGJyID4mZ3Q7Jm5ic3A7IE5CTF9UWFJYX1NFVF9PUFMoc3RhcnRfdHhfcmluZywgbmJsX3Jl c190eHJ4X3N0YXJ0X3R4X3JpbmcpOyZuYnNwOyBcPGJyID4mZ3Q7Jm5ic3A7IE5CTF9UWFJYX1NF VF9PUFMoc3RvcF90eF9yaW5nLCBuYmxfcmVzX3R4cnhfc3RvcF90eF9yaW5nKTsmbmJzcDsgXDxi ciA+Jmd0OyAtIE5CTF9UWFJYX1NFVF9PUFMocmVsZWFzZV90eF9yaW5nLCBuYmxfcmVzX3R4cnhf cmVsZWFzZV90eHJpbmcpOyZuYnNwOyBcPGJyID4mZ3Q7ICsgTkJMX1RYUlhfU0VUX09QUyhyZWxl YXNlX3R4X3JpbmcsIG5ibF9yZXNfdHhyeF9yZWxlYXNlX3R4X3JpbmcpOyBcPGJyID4mZ3Q7Jm5i c3A7IE5CTF9UWFJYX1NFVF9PUFMoc3RhcnRfcnhfcmluZywgbmJsX3Jlc190eHJ4X3N0YXJ0X3J4 X3JpbmcpOyZuYnNwOyBcPGJyID4mZ3Q7Jm5ic3A7IE5CTF9UWFJYX1NFVF9PUFMoYWxsb2Nfcnhf YnVmcywgbmJsX3Jlc19hbGxvY19yeF9idWZzKTsgJm5ic3A7IFw8YnIgPiZndDsmbmJzcDsgTkJM X1RYUlhfU0VUX09QUyhzdG9wX3J4X3JpbmcsIG5ibF9yZXNfdHhyeF9zdG9wX3J4X3JpbmcpOyZu YnNwOyBcPGJyID4mZ3Q7IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uYmwvbmJsX2h3L25ibF90 eHJ4LmggYi9kcml2ZXJzL25ldC9uYmwvbmJsX2h3L25ibF90eHJ4Lmg8YnIgPiZndDsgaW5kZXgg NTZkYmQzYzU4Ny4uODM2OTZkYmM3MiAxMDA2NDQ8YnIgPiZndDsgLS0tIGEvZHJpdmVycy9uZXQv bmJsL25ibF9ody9uYmxfdHhyeC5oPGJyID4mZ3Q7ICsrKyBiL2RyaXZlcnMvbmV0L25ibC9uYmxf aHcvbmJsX3R4cnguaDxiciA+Jmd0OyBAQCAtNyw0ICs3LDEwMyBAQDxiciA+Jmd0OzxiciA+Jmd0 OyAjaW5jbHVkZSAibmJsX3Jlc291cmNlLmgiPGJyID4mZ3Q7PGJyID4mZ3Q7ICsjZGVmaW5lIE5C TF9QQUNLRURfREVTQ19GX0FWQUlMICZuYnNwOyAoNyk8YnIgPiZndDsgKyNkZWZpbmUgTkJMX1BB Q0tFRF9ERVNDX0ZfVVNFRCAmbmJzcDsgKDE1KTxiciA+Jmd0OyArI2RlZmluZSBOQkxfVlJJTkdf REVTQ19GX05FWFQgJm5ic3A7ICgxICZsdDsmbHQ7IDApPGJyID4mZ3Q7ICsjZGVmaW5lIE5CTF9W UklOR19ERVNDX0ZfV1JJVEUgJm5ic3A7ICgxICZsdDsmbHQ7IDEpPGJyID4mZ3Q7ICs8YnIgPiZn dDsgKyNkZWZpbmUgTkJMX1RYX1JTX1RIUkVTSCAmbmJzcDsgKDMyKTxiciA+Jmd0OyArI2RlZmlu ZSBOQkxfVFhfSEVBREVSX0xFTiAmbmJzcDsgKDMyKTxiciA+Jmd0OyArI2RlZmluZSBOQkxfVlFf SERSX05BTUVfTUFYU0laRSAmbmJzcDsgKDMyKTxiciA+Jmd0OyArPGJyID4mZ3Q7ICsjZGVmaW5l IE5CTF9ERVNDX1BFUl9MT09QX1ZFQ19NQVgmbmJzcDsgKDgpPGJyID4mZ3Q7ICs8YnIgPiZndDsg K3VuaW9uIG5ibF90eF9leHRlbmRfaGVhZCB7PGJyID4mZ3Q7ICsgc3RydWN0IG5ibF90eF9laGRy X2xlb25pcyB7PGJyID4mZ3Q7ICsmbmJzcDsgLyogRFcwICovPGJyID4mZ3Q7ICsmbmJzcDsgdTMy IG1hY19sZW4gOjU7PGJyID4mZ3Q7ICsmbmJzcDsgdTMyIGlwX2xlbiA6NTs8YnIgPiZndDsgKyZu YnNwOyB1MzIgbDRfbGVuIDo0OzxiciA+Jmd0OyArJm5ic3A7IHUzMiBsNF90eXBlIDoyOzxiciA+ Jmd0OyArJm5ic3A7IHUzMiBpbm5lcl9pcF90eXBlIDoyOzxiciA+Jmd0OyArJm5ic3A7IHUzMiBl eHRlcm5hbF9pcF90eXBlIDoyOzxiciA+Jmd0OyArJm5ic3A7IHUzMiBleHRlcm5hbF9pcF9sZW4g OjU7PGJyID4mZ3Q7ICsmbmJzcDsgdTMyIGw0X3R1bm5lbF90eXBlIDoyOzxiciA+Jmd0OyArJm5i c3A7IHUzMiBsNF90dW5uZWxfbGVuIDo1OzxiciA+Jmd0OyArJm5ic3A7IC8qIERXMSAqLzxiciA+ Jmd0OyArJm5ic3A7IHUzMiBsNHNfc2lkIDoxMDs8YnIgPiZndDsgKyZuYnNwOyB1MzIgbDRzX3N5 bmNfaW5kIDoxOzxiciA+Jmd0OyArJm5ic3A7IHUzMiBsNHNfcmVkdW5faW5kIDoxOzxiciA+Jmd0 OyArJm5ic3A7IHUzMiBsNHNfcmVkdW5faGVhZF9pbmQgOjE7PGJyID4mZ3Q7ICsmbmJzcDsgdTMy IGw0c19oZGxfaW5kIDoxOzxiciA+Jmd0OyArJm5ic3A7IHUzMiBsNHNfcGJyYWNfbW9kZSA6MTs8 YnIgPiZndDsgKyZuYnNwOyB1MzIgcnN2MCA6Mjs8YnIgPiZndDsgKyZuYnNwOyB1MzIgbXNzIDox NDs8YnIgPiZndDsgKyZuYnNwOyB1MzIgdHNvIDoxOzxiciA+Jmd0OyArJm5ic3A7IC8qIERXMiAq LzxiciA+Jmd0OyArJm5ic3A7IC8qIGlmIGRwb3J0ID0gTkJMX1RYX0RQT1JUX0VUSDsgZHBvcnRf aW5mbyA9IDA8YnIgPiZndDsgKyAmbmJzcDsgKiBpZiBkcG9ydCA9IE5CTF9UWF9EUE9SVF9IT1NU OyBkcG9ydF9pbmZvID0gaG9zdCBxdWV1ZSBpZDxiciA+Jmd0OyArICZuYnNwOyAqIGlmIGRwb3J0 ID0gTkJMX1RYX0RQT1JUX0VDUFU7IGRwb3J0X2luZm8gPSBlY3B1IHF1ZXVlX2lkPGJyID4mZ3Q7 ICsgJm5ic3A7ICovPGJyID4mZ3Q7ICsmbmJzcDsgdTMyIGRwb3J0X2luZm8gOjExOzxiciA+Jmd0 OyArJm5ic3A7IC8qIGlmIGRwb3J0ID0gTkJMX1RYX0RQT1JUX0VUSDsgZHBvcnRfaWRbMzowXSA9 IGV0aCBwb3J0IGlkLCBkcG9ydF9pZFs5OjRdID0gbGFnIGlkPGJyID4mZ3Q7ICsgJm5ic3A7ICog aWYgZHBvcnQgPSBOQkxfVFhfRFBPUlRfSE9TVDsgZHBvcnRfaWRbOTowXSA9IGhvc3QgdnNpX2lk PGJyID4mZ3Q7ICsgJm5ic3A7ICogaWYgZHBvcnQgPSBOQkxfVFhfRFBPUlRfRUNQVTsgZHBvcnRf aWRbOTowXSA9IGVjcHUgdnNpX2lkPGJyID4mZ3Q7ICsgJm5ic3A7ICovPGJyID4mZ3Q7ICsmbmJz cDsgdTMyIGRwb3J0X2lkIDoxMDs8YnIgPiZndDsgKyNkZWZpbmUgTkJMX1RYX0RQT1JUX0lEX0xB R19PRlRfTEVPTklTICg0KTxiciA+Jmd0OyArJm5ic3A7IHUzMiBkcG9ydCA6Mzs8YnIgPiZndDsg KyNkZWZpbmUgTkJMX1RYX0RQT1JUX0VUSCZuYnNwOyAoMCk8YnIgPiZndDsgKyNkZWZpbmUgTkJM X1RYX0RQT1JUX0hPU1QmbmJzcDsgKDEpPGJyID4mZ3Q7ICsjZGVmaW5lIE5CTF9UWF9EUE9SVF9F Q1BVJm5ic3A7ICgyKTxiciA+Jmd0OyArI2RlZmluZSBOQkxfVFhfRFBPUlRfRU1QJm5ic3A7ICgz KTxiciA+Jmd0OyArI2RlZmluZSBOQkxfVFhfRFBPUlRfQk1DJm5ic3A7ICg0KTxiciA+Jmd0OyAr I2RlZmluZSBOQkxfVFhfRFBPUlRfRU1QX0RSQUNPJm5ic3A7ICgyKTxiciA+Jmd0OyArI2RlZmlu ZSBOQkxfVFhfRFBPUlRfQk1DX0RSQUNPJm5ic3A7ICgzKTxiciA+Jmd0OyArJm5ic3A7IHUzMiBm d2QgOjI7PGJyID4mZ3Q7ICsjZGVmaW5lIE5CTF9UWF9GV0RfVFlQRV9EUk9QJm5ic3A7ICgwKTxi ciA+Jmd0OyArI2RlZmluZSBOQkxfVFhfRldEX1RZUEVfTk9STUFMJm5ic3A7ICgxKTxiciA+Jmd0 OyArI2RlZmluZSBOQkxfVFhfRldEX1RZUEVfUlNWJm5ic3A7ICgyKTxiciA+Jmd0OyArI2RlZmlu ZSBOQkxfVFhfRldEX1RZUEVfQ1BVX0FTU0lHTkVEICgzKTxiciA+Jmd0OyArJm5ic3A7IHUzMiBy c3NfbGFnX2VuIDoxOzxiciA+Jmd0OyArJm5ic3A7IHUzMiBsNF9jc3VtX2VuIDoxOzxiciA+Jmd0 OyArJm5ic3A7IHUzMiBsM19jc3VtX2VuIDoxOzxiciA+Jmd0OyArJm5ic3A7IHUzMiByc3YxIDoz OzxiciA+Jmd0OyArIH0gbGVvbmlzOzxiciA+Jmd0OyArfTs8YnIgPiZndDsgKzxiciA+Jmd0OyAr dW5pb24gbmJsX3J4X2V4dGVuZF9oZWFkIHs8YnIgPiZndDsgKyBzdHJ1Y3QgbmJsX3J4X2VoZHJf bGVvbmlzIHs8YnIgPiZndDsgKyZuYnNwOyAvKiBEVzAgKi88YnIgPiZndDsgKyZuYnNwOyAvKiAw eDA6ZXRoLCAweDE6aG9zdCwgMHgyOmVjcHUsIDB4MzplbXAsIDB4NDpiY20gKi88YnIgPiZndDsg KyZuYnNwOyB1MzIgc3BvcnQgOjM7PGJyID4mZ3Q7ICsmbmJzcDsgdTMyIGRwb3J0X2luZm8gOjEx OzxiciA+Jmd0OyArJm5ic3A7IC8qIHNwb3J0ID0gMCwgc3BvcnRfaWRbMzowXSA9IGV0aCBpZCw8 YnIgPiZndDsgKyAmbmJzcDsgKiBzcG9ydCA9IDEsIHNwb3J0X2lkWzk6MF0gPSBob3N0IHZzaV9p ZCw8YnIgPiZndDsgKyAmbmJzcDsgKiBzcG9ydCA9IDIsIHNwb3J0X2lkWzk6MF0gPSBlY3B1IHZz aV9pZCw8YnIgPiZndDsgKyAmbmJzcDsgKi88YnIgPiZndDsgKyZuYnNwOyB1MzIgc3BvcnRfaWQg OjEwOzxiciA+Jmd0OyArJm5ic3A7IC8qIDB4MDpkcm9wLCAweDE6bm9ybWFsLCAweDI6Y3B1IHVw Y2FsbCAqLzxiciA+Jmd0OyArJm5ic3A7IHUzMiBmd2QgOjI7PGJyID4mZ3Q7ICsmbmJzcDsgdTMy IHJzdjAgOjY7PGJyID4mZ3Q7ICsmbmJzcDsgLyogRFcxICovPGJyID4mZ3Q7ICsmbmJzcDsgdTMy IGVycm9yX2NvZGUgOjY7PGJyID4mZ3Q7ICsmbmJzcDsgdTMyIHB0eXBlIDoxMDs8YnIgPiZndDsg KyZuYnNwOyB1MzIgcHJvZmlsZV9pZCA6NDs8YnIgPiZndDsgKyZuYnNwOyB1MzIgY2hlY2tzdW1f c3RhdHVzIDoxOzxiciA+Jmd0OyArJm5ic3A7IHUzMiByc3YxIDoxOzxiciA+Jmd0OyArJm5ic3A7 IHUzMiBsNHNfc2lkIDoxMDs8YnIgPiZndDsgKyZuYnNwOyAvKiBEVzIgKi88YnIgPiZndDsgKyZu YnNwOyB1MzIgcnN2MyA6Mjs8YnIgPiZndDsgKyZuYnNwOyB1MzIgbDRzX2hkbF9pbmQgOjE7PGJy ID4mZ3Q7ICsmbmJzcDsgdTMyIGw0c190Y3Bfb2Zmc2V0IDoxNDs8YnIgPiZndDsgKyZuYnNwOyB1 MzIgbDRzX3Jlc3luY19pbmQgOjE7PGJyID4mZ3Q7ICsmbmJzcDsgdTMyIGw0c19jaGVja19pbmQg OjE7PGJyID4mZ3Q7ICsmbmJzcDsgdTMyIGw0c19kZWNfaW5kIDoxOzxiciA+Jmd0OyArJm5ic3A7 IHUzMiByc3YyIDo0OzxiciA+Jmd0OyArJm5ic3A7IHUzMiBudW1fYnVmZmVycyA6ODs8YnIgPiZn dDsgKyZuYnNwOyB1MzIgaGFzaF92YWx1ZTs8YnIgPiZndDsgKyB9IGxlb25pczs8YnIgPiZndDsg K307PGJyID4mZ3Q7ICs8YnIgPiZndDsgI2VuZGlmPGJyID4mZ3Q7IGRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9uYmwvbmJsX2luY2x1ZGUvbmJsX2RlZl9jb21tb24uaCBiL2RyaXZlcnMvbmV0L25i bC9uYmxfaW5jbHVkZS9uYmxfZGVmX2NvbW1vbi5oPGJyID4mZ3Q7IGluZGV4IGY3NzRhZmJhMDAu LjI1OTE5MzMwZGYgMTAwNjQ0PGJyID4mZ3Q7IC0tLSBhL2RyaXZlcnMvbmV0L25ibC9uYmxfaW5j bHVkZS9uYmxfZGVmX2NvbW1vbi5oPGJyID4mZ3Q7ICsrKyBiL2RyaXZlcnMvbmV0L25ibC9uYmxf aW5jbHVkZS9uYmxfZGVmX2NvbW1vbi5oPGJyID4mZ3Q7IEBAIC03OSw2ICs3OSwxMSBAQCBzdHJ1 Y3QgbmJsX2Rldl91c2VyX2xpbmtfc3RhdCB7PGJyID4mZ3Q7ICNkZWZpbmUgTkJMX0RFVl9VU0VS X1NFVF9QUk9NSVNDX01PREUgX0lPKE5CTF9ERVZfVVNFUl9UWVBFLCAxMCk8YnIgPiZndDsgI2Rl ZmluZSBOQkxfREVWX1VTRVJfU0VUX01DQVNUX01PREUgX0lPKE5CTF9ERVZfVVNFUl9UWVBFLCAx MSk8YnIgPiZndDs8YnIgPiZndDsgKyNkZWZpbmUgTkJMX0RNQV9BRERFUlNTX0ZVTExfVFJBTlNM QVRFKGh3LCBhZGRyZXNzKSAmbmJzcDsgJm5ic3A7IFw8YnIgPjxiciA+VHlwbzogQURERVJTUyAt Jmd0OyBBRERSRVNTPzxiciA+PGJyID5UaGFuayB5b3UuPGJyID48YnIgPiZndDsgKyAoeyB0eXBl b2YoaHcpIF9odyA9IChodyk7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFw8YnIgPiZndDsgKyAoKCgo dTY0KSgoX2h3KS0mZ3Q7ZG1hX3NldF9tc2IpKSAmbHQ7Jmx0OyAoKHU2NCkoKF9odyktJmd0O2Rt YV9saW1pdF9tc2IpKSkgfCAoYWRkcmVzcykpOyBcPGJyID4mZ3Q7ICsgfSk8YnIgPiZndDsgKzxi ciA+Jmd0OyBzdHJ1Y3QgbmJsX2RtYV9tZW0gezxiciA+Jmd0OyZuYnNwOyB2b2lkICp2YTs8YnIg PiZndDsmbmJzcDsgdWludDY0X3QgcGE7PGJyID4mZ3Q7IGRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9uYmwvbmJsX2luY2x1ZGUvbmJsX2luY2x1ZGUuaCBiL2RyaXZlcnMvbmV0L25ibC9uYmxfaW5j bHVkZS9uYmxfaW5jbHVkZS5oPGJyID4mZ3Q7IGluZGV4IGUxMGZjYzkyNTQuLjk3NGE3OTgzNWEg MTAwNjQ0PGJyID4mZ3Q7IC0tLSBhL2RyaXZlcnMvbmV0L25ibC9uYmxfaW5jbHVkZS9uYmxfaW5j bHVkZS5oPGJyID4mZ3Q7ICsrKyBiL2RyaXZlcnMvbmV0L25ibC9uYmxfaW5jbHVkZS9uYmxfaW5j bHVkZS5oPGJyID4mZ3Q7IEBAIC05MSw2ICs5MSw3IEBAIHN0cnVjdCBuYmxfc3RhcnRfdHhfcmlu Z19wYXJhbSB7PGJyID4mZ3Q7Jm5ic3A7IHUzMiBzb2NrZXRfaWQ7PGJyID4mZ3Q7Jm5ic3A7IGVu dW0gbmJsX3Byb2R1Y3RfdHlwZSBwcm9kdWN0OzxiciA+Jmd0OyZuYnNwOyBjb25zdCBzdHJ1Y3Qg cnRlX2V0aF90eGNvbmYgKmNvbmY7PGJyID4mZ3Q7ICsgYm9vbCAoKmJvbmRfYnJvYWRjYXN0X2No ZWNrKShzdHJ1Y3QgcnRlX21idWYgKm1idWYpOzxiciA+Jmd0OyB9OzxiciA+Jmd0OzxiciA+Jmd0 OyBzdHJ1Y3QgbmJsX3R4cnhfcXVldWVfcGFyYW0gezxiciA+Jmd0OyAtLSA8YnIgPiZndDsgMi4z NC4xPGJyID4mZ3Q7PGJyID4mZ3Q7PC9kaXY+PC9ibG9ja3F1b3RlPjxkaXYgIHN0eWxlPSJsaW5l LWhlaWdodDogMjBweDsgY2xlYXI6IGJvdGg7Ij48YnIgPjwvZGl2PjwvZGl2PjwvZGl2Pg0KPGRp diBzdHlsZT0iY2xlYXI6IGJvdGg7Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMHB4OyBjb2xv cjogcmdiKDIxNiwgMjE2LCAyMTYpOyI+5pys6YKu5Lu25omA5ZCr5L+h5oGv5Y+K5YW25Lu75L2V 6ZmE5Lu25Li65L+d5a+G5L+h5oGv5LiU5Y+v6IO95bGe5LqO5LiT5pyJ5L+h5oGv44CC5Lu75L2V 6Z2e5oyH5a6a5o6l5pS25Lq65Z2H5peg5p2D6K6/6Zeu5pys6YKu5Lu244CC5aaC5p6c5oKo5LiN 5piv6K+l6YKu5Lu255qE5oyH5a6a5o6l5pS25Lq677yM6YKj5LmI5Lu75L2V5a+55pys6YKu5Lu2 5YaF5a656L+b6KGM5oqr6Zyy77yM5aSN5Yi25oiW5L2/55So55qE6KGM5Li65Z2H5piv56aB5q2i 55qE44CC5aaC5p6c5oKo5LiN5piv6K+l6YKu5Lu255qE5oyH5a6a5o6l5pS25Lq677yM6K+35oKo 56uL5Y2z6YCa6L+H6YKu5Lu26YCa55+lJm5ic3A7Y29tcGxpYW5jZUBuZWJ1bGEtbWF0cml4LmNv beW5tueri+WNs+WIoOmZpOaCqOmUmeivr+aOpeWPl+eahOmCruS7tuOAgjwvc3Bhbj48L2Rpdj48 ZGl2IHN0eWxlPSJjbGVhcjogYm90aDsiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwcHg7IGNv bG9yOiByZ2IoMjE2LCAyMTYsIDIxNik7Ij5UaGUmbmJzcDtpbmZvcm1hdGlvbiZuYnNwO2luJm5i c3A7dGhpcyZuYnNwO21lc3NhZ2UmbmJzcDthbmQmbmJzcDthbnkmbmJzcDthdHRhY2htZW50cyZu YnNwO2lzJm5ic3A7Y29uZmlkZW50aWFsJm5ic3A7YW5kJm5ic3A7bWF5Jm5ic3A7YmUmbmJzcDtw cml2aWxlZ2VkLiZuYnNwOyZuYnNwO0FjY2VzcyZuYnNwO3RvJm5ic3A7dGhpcyZuYnNwO2VtYWls Jm5ic3A7YnkmbmJzcDthbnlvbmUmbmJzcDtvdGhlciZuYnNwO3RoYW4mbmJzcDt0aGUmbmJzcDtp bnRlbmRlZCZuYnNwO3JlY2lwaWVudCZuYnNwO2lzJm5ic3A7bm90Jm5ic3A7YXV0aG9yaXplZC4m bmJzcDsmbmJzcDtJZiZuYnNwO3lvdSZuYnNwO2FyZSZuYnNwO25vdCZuYnNwO3RoZSZuYnNwO2lu dGVuZGVkJm5ic3A7cmVjaXBpZW50LCZuYnNwO2Rpc2Nsb3N1cmUsJm5ic3A7Y29weWluZyZuYnNw O29yJm5ic3A7dXNlJm5ic3A7b2YmbmJzcDt0aGUmbmJzcDtjb250ZW50cyZuYnNwO29mJm5ic3A7 dGhpcyZuYnNwO2VtYWlsJm5ic3A7aXMmbmJzcDtwcm9oaWJpdGVkLiZuYnNwOyZuYnNwO0lmJm5i c3A7eW91Jm5ic3A7YXJlJm5ic3A7bm90Jm5ic3A7dGhlJm5ic3A7aW50ZW5kZWQmbmJzcDtyZWNp cGllbnQsJm5ic3A7cGxlYXNlJm5ic3A7bm90aWZ5Jm5ic3A7Jm5ic3A7Y29tcGxpYW5jZUBuZWJ1 bGEtbWF0cml4LmNvbSZuYnNwO2ltbWVkaWF0ZWx5Jm5ic3A7YnkmbmJzcDtlbWFpbCwmbmJzcDth bmQmbmJzcDtwbGVhc2UmbmJzcDtkZXN0cm95Jm5ic3A7dGhlJm5ic3A7ZW1haWwmbmJzcDt5b3Um bmJzcDtyZWNlaXZlZCZuYnNwO2luJm5ic3A7ZXJyb3IuPC9zcGFuPjwvZGl2Pg== ------=ALIBOUNDARY_1990_7fa30643e700_689eadcd_747fc--