From owner-freebsd-afs@FreeBSD.ORG Sat Feb 16 04:30:53 2008 Return-Path: Delivered-To: afs@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 41DBE16A419 for ; Sat, 16 Feb 2008 04:30:53 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.freebsd.org (Postfix) with ESMTP id 9E32613C442 for ; Sat, 16 Feb 2008 04:30:52 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id A6B7246B37; Fri, 15 Feb 2008 23:12:27 -0500 (EST) Date: Sat, 16 Feb 2008 04:12:27 +0000 (GMT) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: arla-drinkers@stacken.kth.se Message-ID: <20080216035658.W93919@fledge.watson.org> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="621616949-433016993-1203135147=:93919" Cc: afs@FreeBSD.org Subject: Patches to get Arla running on FreeBSD 8-CURRENT X-BeenThere: freebsd-afs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: The Andrew File System and FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Feb 2008 04:30:53 -0000 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --621616949-433016993-1203135147=:93919 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Dear Arla folk, I've spent the evening getting Arla (checked out of anoncvs) up and running on FreeBSD 8-CURRENT, and have it at least minimally running (/afs mounted, some directory access, read a few files, etc), although arlad core dumped fairly quickly during use. I've not yet attempted to debug that problem though. I've attached a patch that does a few things: First, it does a few minor Arla cleanups that appear to be necessary to build on FreeBSD 8: A few general Arla ifdef fixes, etc, such as testing defined(SunOS) before using the value, likewise on __NetBSD_Version__, OpenBSD, etc. Fix two build dependency issues I ran into regarding building arlalib before dependent tools and an include that broke (at least on FreeBSD). Second, it adds new autoconf and ifdef parts to get Arla building on FreeBSD 8, such as handling VFS changes that appeared in FreeBSD 7.x and 8.x, the priv(9) kernel privilege framework, some include problems I ran into with using /usr/src/sys before /usr/include/sys (which doesn't work for generated files such as vnode_if.h), and things along those lines. Unfortunately, I'm not set up to easily build test on other platforms, and I've also not had a chance to try this on FreeBSD 7 -- my guess is some minor tweaks may be required with respect to both of those, but hopefully these are steps in the right direction and someone with a bit more Arla experience can sort out what I've done into things with keeping and things with fixing :-). I'll investigate the arlad crash tomorrow. Patch also up at: http://www.watson.org/~robert/freebsd/20080216-arla.diff Robert N M Watson Computer Laboratory University of Cambridge --621616949-433016993-1203135147=:93919 Content-Type: TEXT/x-diff; charset=US-ASCII; name=20080216-arla.diff Content-Transfer-Encoding: BASE64 Content-ID: <20080216041227.P93919@fledge.watson.org> Content-Description: Content-Disposition: attachment; filename=20080216-arla.diff SW5kZXg6IE1ha2VmaWxlLmFtDQo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpS Q1MgZmlsZTogL3N0YWNrZW4tY3ZzL2FybGEvTWFrZWZpbGUuYW0sdg0KcmV0 cmlldmluZyByZXZpc2lvbiAxLjUNCmRpZmYgLXUgLXIxLjUgTWFrZWZpbGUu YW0NCi0tLSBNYWtlZmlsZS5hbQkyNSBKYW4gMjAwNyAxMToyMzowNSAtMDAw MAkxLjUNCisrKyBNYWtlZmlsZS5hbQkxNiBGZWIgMjAwOCAwMzo0OTo0OSAt MDAwMA0KQEAgLTE5LDYgKzE5LDcgQEANCiAJCWxpYi9idWZkaXIgXA0KIAkJ JChyeGthZCkgXA0KIAkJbm5wZnMgXA0KKwkJYXBwbC9saWIgXA0KIAkJYXJs YWQgXA0KIAkJY29uZiBcDQogCQlhcHBsIFwNCkluZGV4OiBjb25maWd1cmUu aW4NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvc3RhY2tl bi1jdnMvYXJsYS9jb25maWd1cmUuaW4sdg0KcmV0cmlldmluZyByZXZpc2lv biAxLjc1OA0KZGlmZiAtdSAtcjEuNzU4IGNvbmZpZ3VyZS5pbg0KLS0tIGNv bmZpZ3VyZS5pbgkyNSBKYW4gMjAwNyAwOToyODo0NiAtMDAwMAkxLjc1OA0K KysrIGNvbmZpZ3VyZS5pbgkxNiBGZWIgMjAwOCAwMzo0OTo1MiAtMDAwMA0K QEAgLTM5Niw3ICszOTYsNyBAQA0KICAgS0VSTkVMPWBzeXNjdGwgLW4ga2Vy bi5ib290ZmlsZWANCiAgIEFDX1dFUlJPUihCU0RfV0VSUk9SKQ0KICAgTk5Q RlNfU1VCRElSPWZyZWVic2QNCi0gIEtFUk5FTF9JTkNMVURFPS1JYChjZCAk c3JjZGlyOyBwd2QpYC9ubnBmcy9ic2QNCisgIEtFUk5FTF9JTkNMVURFPS1J L3Vzci9pbmNsdWRlIC1JYChjZCAkc3JjZGlyOyBwd2QpYC9ubnBmcy9ic2QN CiAgIEtFUk5FTF9TUkNTPSdic2Qtc3Vici5jJw0KIA0KICAgS0VSTkVMPWBz eXNjdGwgLW4ga2Vybi5ib290ZmlsZWANCkBAIC00MzMsNyArNDMzLDcgQEAN CiAJZXNhYw0KIAlzaGlmdA0KICAgZG9uZQ0KLSAgS0VSTkVMX0NQUEZMQUdT PSIke0tFUk5FTF9DUFBGTEFHU30gLUkuICRkZWZzJHtkZWZzOisgfSRmbGFn cyR7ZmxhZ3M6KyB9JGluY2wiDQorICBLRVJORUxfQ1BQRkxBR1M9IiR7S0VS TkVMX0NQUEZMQUdTfSAtSS91c3IvaW5jbHVkZSAtSS4gJGRlZnMke2RlZnM6 KyB9JGZsYWdzJHtmbGFnczorIH0kaW5jbCINCiAgIHRlc3RfS0VSTkVMX0NG TEFHUz0iJHtLRVJORUxfQ0ZMQUdTfSINCiAgIEtFUk5FTF9MRD0nbGQnDQog DQpAQCAtODY3LDYgKzg2Nyw3IEBADQogCQlzeXMvbXV0ZXguaAkJCVwNCiAJ CXN5cy9wYXJhbS5oCQkJXA0KIAkJc3lzL3ByY3RsLmgJCQlcDQorCQlzeXMv cHJpdi5oCQkJXA0KIAkJc3lzL3BvbGwuaAkJCVwNCiAJCXN5cy9wb29sLmgJ CQlcDQogCQlzeXMvcXVldWUuaAkJCVwNCkBAIC0xMzU2LDExICsxMzU3LDEz IEBADQogdWRldjJkZXYJCQkJCVwNCiBzbnByaW50ZgkJCQkJXA0KIHN1c2Vy X3VjcmVkCQkJCQlcDQorcHJpdl9jaGVjawkJCQkJXA0KIG5hbWVpX2hhc2gJ CQkJCVwNCiBub3N5cwkJCQkJCVwNCiBzeXNfbm9zeXMJCQkJCVwNCiBzeXNf bGttbm9zeXMJCQkJCVwNCiBjYWNoZV9wdXJnZXZmcwkJCQkJXA0KK2luc21u dHF1ZQkJCQkJXA0KIF0pDQogQUNfQ0hFQ0tfS0VSTkVMX0ZVTkMobWVtY3B5 LCBbMCwwLDBdKQ0KIA0KQEAgLTE0NDYsOCArMTQ0OSwxMiBAQA0KIEFDX0NI RUNLX0tFUk5FTF9WT1BfVA0KIEFDX0JTRF9GVU5DX1ZGU19PQkpFQ1RfQ1JF QVRFDQogQUNfQlNEX0ZVTkNfVk9QX0xPQ0sNCitBQ19CU0RfRlVOQ19WT1Bf VU5MT0NLDQorQUNfQlNEX0ZVTkNfVk9QX09QRU4NCiBBQ19CU0RfRlVOQ19W RlNfQlVTWQ0KK0FDX0JTRF9GVU5DX1ZGU19RVU9UQUNUTA0KIEFDX0JTRF9G VU5DX1ZHRVQNCitBQ19CU0RfRlVOQ19WTk9ERV9DUkVBVEVfVk9CSkVDVA0K IEFDX0JTRF9GVU5DX1NVU0VSDQogQUNfQlNEX0ZVTkNfVkZTX0dFVE5FV0ZT SUQNCiBBQ19CU0RfRlVOQ19MT0NLTUdSDQpJbmRleDogYXBwbC9mcy9mc19s b2NhbC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL3N0 YWNrZW4tY3ZzL2FybGEvYXBwbC9mcy9mc19sb2NhbC5oLHYNCnJldHJpZXZp bmcgcmV2aXNpb24gMS4zOA0KZGlmZiAtdSAtcjEuMzggZnNfbG9jYWwuaA0K LS0tIGFwcGwvZnMvZnNfbG9jYWwuaAkxNiBNYXIgMjAwNiAxNDozODoyOCAt MDAwMAkxLjM4DQorKysgYXBwbC9mcy9mc19sb2NhbC5oCTE2IEZlYiAyMDA4 IDAzOjQ5OjUzIC0wMDAwDQpAQCAtNDMsNyArNDMsNiBAQA0KICNlbmRpZg0K ICNpbmNsdWRlIDxwYXJzZV91bml0cy5oPg0KICNpbmNsdWRlIDxubnBmcy9u bnBmc19kZWJ1Zy5oPg0KLSNpbmNsdWRlIDxubnBmcy9ubnBmc19kZWIuaD4N CiAjaW5jbHVkZSA8YXJsYWRlYi5oPg0KIA0KICNpbmNsdWRlIDx2ZXJzLmg+ DQpJbmRleDogY2YvYnNkLXZmcy1xdW90YWN0bC5tNA0KPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQ0KUkNTIGZpbGU6IGNmL2JzZC12ZnMtcXVvdGFjdGwubTQN CmRpZmYgLU4gY2YvYnNkLXZmcy1xdW90YWN0bC5tNA0KLS0tIC9kZXYvbnVs bAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwDQorKysgY2YvYnNkLXZmcy1x dW90YWN0bC5tNAkxNiBGZWIgMjAwOCAwMzo0OTo1MyAtMDAwMA0KQEAgLTAs MCArMSwzOCBAQA0KK2RubA0KK2RubCAkSWQkDQorZG5sDQorDQorZG5sDQor ZG5sIEZpbmQgb3V0IGlmIFZGU19RVU9UQUNUTCBhY2NlcHRzIGEgdm9pZCAq IG9yIGEgY2FkZHJfdCBhcmd1bWVudC4NCitkbmwNCisNCitBQ19ERUZVTihb QUNfQlNEX0ZVTkNfVkZTX1FVT1RBQ1RMXSwgWw0KK0FDX0NBQ0hFX0NIRUNL KGlmIFZGU19RVU9UQUNUTCB0YWtlcyBjYWRkcl90IGFyZ3VtZW50LCBhY19j dl9mdW5jX3Zmc19xdW90YWN0bF9jYWRkciwNCitBQ19UUllfQ09NUElMRV9L RVJORUwoWw0KKyNpZmRlZiBIQVZFX1NZU19DREVGU19IDQorI2luY2x1ZGUg PHN5cy9jZGVmcy5oPg0KKyNlbmRpZg0KKyNpbmNsdWRlIDxzeXMvcGFyYW0u aD4NCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQorI2luY2x1ZGUgPHN5cy90 aW1lLmg+DQorI2luY2x1ZGUgPHN5cy91aW8uaD4NCisjaW5jbHVkZSA8c3lz L3Zub2RlLmg+DQorI2luY2x1ZGUgPHN5cy9tb3VudC5oPg0KKw0KK3Zmc19x dW90YWN0bF90IGZvb19xdW90YWN0bDsNCisNCitpbnQNCitmb29fcXVvdGFj dGwoc3RydWN0IG1vdW50ICptcCwgaW50IGNtZHMsIHVpZF90IHVpZCwgY2Fk ZHJfdCBhcmcsDQorICAgIHN0cnVjdCB0aHJlYWQgKnRkKQ0KK3sNCisNCisJ cmV0dXJuICgwKTsNCit9DQorXSxbXSwNCithY19jdl9mdW5jX3Zmc19xdW90 Y3RsX2NhZGRyPXllcywNCithY19jdl9mdW5jX3Zmc19xdW90YWN0bF9jYWRk cj1ubykpDQoraWYgdGVzdCAiJGFjX2N2X2Z1bmNfdmZzX3F1b3RhY3RsX2Nh ZGRyIiA9IHllczsgdGhlbg0KKwlBQ19ERUZJTkUoSEFWRV9WRlNfUVVPVEFD VExfQ0FERFIsIDEsDQorCVtkZWZpbmUgaWYgVkZTX1FVT1RBQ1RMIHRha2Vz IGEgY2FkZHJfdCBhcmd1bWVudF0pDQorZmkNCitdKQ0KSW5kZXg6IGNmL2Jz ZC12bm9kZS1jcmVhdGUtdm9iamVjdC5tNA0KPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KUkNTIGZpbGU6IGNmL2JzZC12bm9kZS1jcmVhdGUtdm9iamVjdC5t NA0KZGlmZiAtTiBjZi9ic2Qtdm5vZGUtY3JlYXRlLXZvYmplY3QubTQNCi0t LSAvZGV2L251bGwJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMA0KKysrIGNm L2JzZC12bm9kZS1jcmVhdGUtdm9iamVjdC5tNAkxNiBGZWIgMjAwOCAwMzo0 OTo1MyAtMDAwMA0KQEAgLTAsMCArMSwyOCBAQA0KK2RubA0KK2RubCAkSWQk DQorZG5sDQorDQorZG5sDQorZG5sIEZpbmQgb3V0IGlmIHZub2RlX2NyZWF0 ZV92b2JqZWN0KCkgdGFrZXMgb25lIGFyZ3VtZW50IG9yIHR3byBvbiBCU0Q7 IGlmDQorZG5sIHR3byB0aGVuIHdlIG5lZWQgdG8gdXNlIHZub2RlX2NyZWF0 ZV92b2JqZWN0X29mZigpIGluc3RlYWQuDQorZG5sDQorDQorQUNfREVGVU4o W0FDX0JTRF9GVU5DX1ZOT0RFX0NSRUFURV9WT0JKRUNUXSwgWw0KK0FDX0NB Q0hFX0NIRUNLKGlmIHZub2RlX2NyZWF0ZV92b2JqZWN0IHRha2VzIHRocmVl IGFyZ3VtZW50cywgYWNfY3ZfZnVuY192bm9kZV9jcmVhdGVfdm9iamVjdCwN CitBQ19UUllfQ09NUElMRV9LRVJORUwoWw0KKyNpZmRlZiBIQVZFX1NZU19D REVGU19IDQorI2luY2x1ZGUgPHN5cy9jZGVmcy5oPg0KKyNlbmRpZg0KKyNp bmNsdWRlIDxzeXMvcGFyYW0uaD4NCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+ DQorI2luY2x1ZGUgPHN5cy90aW1lLmg+DQorI2luY2x1ZGUgPHN5cy91aW8u aD4NCisjaW5jbHVkZSA8c3lzL3Zub2RlLmg+DQorXSxbdm5vZGVfY3JlYXRl X3ZvYmplY3QoMCwgMCwgMCldLA0KK2FjX2N2X2Z1bmNfdm5vZGVfY3JlYXRl X3ZvYmplY3RfdGhyZWVfYXJncz15ZXMsDQorYWNfY3ZfZnVuY192bm9kZV9j cmVhdGVfdm9iamVjdF90aHJlZV9hcmdzPW5vKSkNCitpZiB0ZXN0ICIkYWNf Y3ZfZnVuY192bm9kZV9jcmVhdGVfdm9iamVjdF90aHJlZV9hcmdzIiA9IHll czsgdGhlbg0KKwlBQ19ERUZJTkUoSEFWRV9USFJFRV9BUkdVTUVOVF9WTk9E RV9DUkVBVEVfVk9CSiwgMSwNCisJW2RlZmluZSBpZiB2bm9kZV9jcmVhdGVf dm9iamVjdCB0YWtlcyB0aHJlZSBhcmd1bWVudHNdKQ0KK2ZpDQorXSkNCklu ZGV4OiBjZi9ic2Qtdm9wLW9wZW4ubTQNCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NClJDUyBmaWxlOiBjZi9ic2Qtdm9wLW9wZW4ubTQNCmRpZmYgLU4gY2Yv YnNkLXZvcC1vcGVuLm00DQotLS0gL2Rldi9udWxsCTEgSmFuIDE5NzAgMDA6 MDA6MDAgLTAwMDANCisrKyBjZi9ic2Qtdm9wLW9wZW4ubTQJMTYgRmViIDIw MDggMDM6NDk6NTMgLTAwMDANCkBAIC0wLDAgKzEsMjggQEANCitkbmwNCitk bmwgJElkJA0KK2RubA0KKw0KK2RubA0KK2RubCBGaW5kIG91dCBpZiBWT1Bf T1BFTiB0YWtlcyBhIHN0cnVjdCBmaWxlIG9yIGFuIGludGVnZXIgZmluYWwg YXJndW1lbnQgb24NCitkbmwgRnJlZUJTRC4NCitkbmwNCisNCitBQ19ERUZV TihbQUNfQlNEX0ZVTkNfVk9QX09QRU5dLCBbDQorQUNfQ0FDSEVfQ0hFQ0so aWYgVk9QX09QRU4gdGFrZXMgYSBzdHJ1Y3QgZmlsZSBmaW5hbCBhcmd1bWVu dCwgYWNfY3ZfZnVuY192b3Bfb3Blbl9maWxlX2FyZywNCitBQ19UUllfQ09N UElMRV9LRVJORUwoWw0KKyNpZmRlZiBIQVZFX1NZU19DREVGU19IDQorI2lu Y2x1ZGUgPHN5cy9jZGVmcy5oPg0KKyNlbmRpZg0KKyNpbmNsdWRlIDxzeXMv cGFyYW0uaD4NCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQorI2luY2x1ZGUg PHN5cy90aW1lLmg+DQorI2luY2x1ZGUgPHN5cy91aW8uaD4NCisjaW5jbHVk ZSA8c3lzL3Zub2RlLmg+DQorXSxbVk9QX09QRU4oTlVMTCwgMCwgTlVMTCwg TlVMTCwgKHN0cnVjdCBmaWxlICopTlVMTCldLA0KK2FjX2N2X2Z1bmNfdm9w X29wZW5fZmlsZV9hcmc9eWVzLA0KK2FjX2N2X2Z1bmNfdm9wX29wZW5fZmls ZV9hcmc9bm8pKQ0KK2lmIHRlc3QgIiRhY19jdl9mdW5jX3ZvcF9vcGVuX2Zp bGVfYXJnIiA9IHllczsgdGhlbg0KKwlBQ19ERUZJTkUoSEFWRV9GSU5BTF9B UkdfRklMRV9WT1BfT1BFTiwgMSwNCisJW2RlZmluZSBpZiBWT1BfT1BFTiB0 YWtlcyBhIGZpbGUgZmluYWwgYXJndW1lbnRdKQ0KK2ZpDQorXSkNCkluZGV4 OiBjZi9ic2Qtdm9wLXVubG9jay5tNA0KPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KUkNTIGZpbGU6IGNmL2JzZC12b3AtdW5sb2NrLm00DQpkaWZmIC1OIGNm L2JzZC12b3AtdW5sb2NrLm00DQotLS0gL2Rldi9udWxsCTEgSmFuIDE5NzAg MDA6MDA6MDAgLTAwMDANCisrKyBjZi9ic2Qtdm9wLXVubG9jay5tNAkxNiBG ZWIgMjAwOCAwMzo0OTo1MyAtMDAwMA0KQEAgLTAsMCArMSw0NSBAQA0KK2Ru bA0KK2RubCAkSWQkDQorZG5sDQorDQorZG5sDQorZG5sIEZpbmQgb3V0IGlm IFZPUF9VTkxPQ0sgdGFrZXMgdHdvIG9yIHRocmVlIGFyZ3VtZW50cw0KK2Ru bA0KKw0KK0FDX0RFRlVOKFtBQ19CU0RfRlVOQ19WT1BfVU5MT0NLXSwgWw0K K0FDX0NBQ0hFX0NIRUNLKGlmIFZPUF9VTkxPQ0sgdGFrZXMgdHdvIGFyZ3Vt ZW50cywgYWNfY3ZfZnVuY192b3BfdW5sb2NrX3R3b19hcmdzLA0KK0FDX1RS WV9DT01QSUxFX0tFUk5FTChbDQorI2lmZGVmIEhBVkVfU1lTX0NERUZTX0gN CisjaW5jbHVkZSA8c3lzL2NkZWZzLmg+DQorI2VuZGlmDQorI2luY2x1ZGUg PHN5cy9wYXJhbS5oPg0KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCisjaW5j bHVkZSA8c3lzL3RpbWUuaD4NCisjaW5jbHVkZSA8c3lzL3Vpby5oPg0KKyNp bmNsdWRlIDxzeXMvdm5vZGUuaD4NCitdLFtWT1BfVU5MT0NLKDAsIDApXSwN CithY19jdl9mdW5jX3ZvcF91bmxvY2tfdHdvX2FyZ3M9eWVzLA0KK2FjX2N2 X2Z1bmNfdm9wX3VubG9ja190d29fYXJncz1ubykpDQoraWYgdGVzdCAiJGFj X2N2X2Z1bmNfdm9wX3VubG9ja190d29fYXJncyIgPSB5ZXM7IHRoZW4NCisJ QUNfREVGSU5FKEhBVkVfVFdPX0FSR1VNRU5UX1ZPUF9VTkxPQ0ssIDEsDQor CVtkZWZpbmUgaWYgVk9QX1VOTE9DSyB0YWtlcyB0d28gYXJndW1lbnRzXSkN CitmaQ0KKw0KK0FDX0NBQ0hFX0NIRUNLKGlmIFZPUF9VTkxPQ0sgdGFrZXMg dGhyZWUgYXJndW1lbnRzLCBhY19jdl9mdW5jX3ZvcF91bmxvY2tfdGhyZWVf YXJncywNCitBQ19UUllfQ09NUElMRV9LRVJORUwoWw0KKyNpZmRlZiBIQVZF X1NZU19DREVGU19IDQorI2luY2x1ZGUgPHN5cy9jZGVmcy5oPg0KKyNlbmRp Zg0KKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4NCisjaW5jbHVkZSA8c3lzL3R5 cGVzLmg+DQorI2luY2x1ZGUgPHN5cy90aW1lLmg+DQorI2luY2x1ZGUgPHN5 cy91aW8uaD4NCisjaW5jbHVkZSA8c3lzL3Zub2RlLmg+DQorXSxbVk9QX1VO TE9DSygwLCAwLCAwKV0sDQorYWNfY3ZfZnVuY192b3BfdW5sb2NrX3RocmVl X2FyZ3M9eWVzLA0KK2FjX2N2X2Z1bmNfdm9wX3VubG9ja190aHJlZV9hcmdz PW5vKSkNCitpZiB0ZXN0ICIkYWNfY3ZfZnVuY192b3BfdW5sb2NrX3RocmVl X2FyZ3MiID0geWVzOyB0aGVuDQorCUFDX0RFRklORShIQVZFX1RIUkVFX0FS R1VNRU5UX1ZPUF9VTkxPQ0ssIDEsDQorCVtkZWZpbmUgaWYgVk9QX1VOTE9D SyB0YWtlcyB0aHJlZSBhcmd1bWVudHNdKQ0KK2ZpDQorXSkNCkluZGV4OiBj Zi90cnktY29tcGlsZS1rZXJuZWwubTQNCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NClJDUyBmaWxlOiAvc3RhY2tlbi1jdnMvYXJsYS9jZi90cnktY29tcGls ZS1rZXJuZWwubTQsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjQNCmRpZmYg LXUgLXIxLjQgdHJ5LWNvbXBpbGUta2VybmVsLm00DQotLS0gY2YvdHJ5LWNv bXBpbGUta2VybmVsLm00CTEyIEZlYiAyMDA0IDE2OjI4OjE4IC0wMDAwCTEu NA0KKysrIGNmL3RyeS1jb21waWxlLWtlcm5lbC5tNAkxNiBGZWIgMjAwOCAw Mzo0OTo1MyAtMDAwMA0KQEAgLTgsNyArOCw3IEBADQogaWYgdGVzdCAiWCR7 S0VSTkVMX0NDfSIgIT0gIlgiOyB0aGVuDQogICBDQz0iJEtFUk5FTF9DQyIN CiBmaQ0KLUNGTEFHUz0iJENGTEFHUyAkdGVzdF9LRVJORUxfQ0ZMQUdTICRL RVJORUxfQ1BQRkxBR1MiDQorQ0ZMQUdTPSIkQ0ZMQUdTIC1JL3Vzci9pbmNs dWRlICR0ZXN0X0tFUk5FTF9DRkxBR1MgJEtFUk5FTF9DUFBGTEFHUyINCiBB Q19UUllfQ09NUElMRShbJDFdLCBbJDJdLCBbJDNdLCBbJDRdKQ0KIENGTEFH Uz0iJHNhdmVfQ0ZMQUdTIg0KIENDPSIkc2F2ZV9DQyINCkluZGV4OiBpbmNs dWRlL2Fmc3N5c2RlZnMuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNT IGZpbGU6IC9zdGFja2VuLWN2cy9hcmxhL2luY2x1ZGUvYWZzc3lzZGVmcy5o LHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS45DQpkaWZmIC11IC1yMS45IGFm c3N5c2RlZnMuaA0KLS0tIGluY2x1ZGUvYWZzc3lzZGVmcy5oCTkgQXVnIDIw MDQgMTM6NDI6MzIgLTAwMDAJMS45DQorKysgaW5jbHVkZS9hZnNzeXNkZWZz LmgJMTYgRmViIDIwMDggMDM6NDk6NTMgLTAwMDANCkBAIC00Miw2ICs0Miw3 IEBADQogICogZW50cnkgcG9pbnQgc3lzY2FsbHMuDQogICovDQogDQorI2lm IGRlZmluZWQoU3VuT1MpDQogI2lmIFN1bk9TID09IDQwDQogI2RlZmluZSBB RlNfU1lTQ0FMTAkzMQ0KICNlbmRpZg0KQEAgLTU2LDYgKzU3LDcgQEANCiAN CiAjaWYgU3VuT1MgPj0gNTgNCiAjZGVmaW5lIEFGU19TWVNDQUxMCTY1DQor I2VuZGlmDQogI2VuZGlmDQogDQogI2lmIGRlZmluZWQoX19ocHV4KQ0KSW5k ZXg6IG5ucGZzL2JzZC9ubnBmc19ibG9ja3MuYw0KPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KUkNTIGZpbGU6IC9zdGFja2VuLWN2cy9hcmxhL25ucGZzL2Jz ZC9ubnBmc19ibG9ja3MuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTAN CmRpZmYgLXUgLXIxLjEwIG5ucGZzX2Jsb2Nrcy5jDQotLS0gbm5wZnMvYnNk L25ucGZzX2Jsb2Nrcy5jCTI4IE1hciAyMDA3IDEyOjA1OjQ1IC0wMDAwCTEu MTANCisrKyBubnBmcy9ic2Qvbm5wZnNfYmxvY2tzLmMJMTYgRmViIDIwMDgg MDM6NDk6NTQgLTAwMDANCkBAIC0zMDYsOCArMzA2LDEzIEBADQogCQkgICAg ICBMRUFTRV9XUklURSk7DQogCSAgICANCiAJICAgIHJldCA9IG5ucGZzX2Js b2NrX2V4dGVuZF9pbnQobm9kZSwgdnAsIHApOw0KLQkgICAgDQorDQorI2lm ZGVmIEhBVkVfVFdPX0FSR1VNRU5UX1ZPUF9VTkxPQ0sNCisJICAgIFZPUF9V TkxPQ0sodnAsIDApOw0KKyNlbmRpZg0KKyNpZmRlZiBIQVZFX1RIUkVFX0FS R1VNRU5UX1ZPUF9VTkxPQ0sNCiAJICAgIFZPUF9VTkxPQ0sodnAsIDAsIHAp Ow0KKyNlbmRpZg0KIAkgICAgdm5fZmluaXNoZWRfd3JpdGUobXApOw0KIAl9 DQogI2Vsc2UNCkBAIC01MDAsNyArNTA1LDExIEBADQogI2VuZGlmDQogDQog I2lmZGVmIF9fRnJlZUJTRF9fDQorI2lmZGVmIEhBVkVfRklOQUxfQVJHX0ZJ TEVfVk9QX09QRU4NCisJZXJyb3IgPSBWT1BfT1BFTigqdnBwLCBmbW9kZSwg Y3JlZCwgcCwgTlVMTCk7DQorI2Vsc2UNCiAJZXJyb3IgPSBWT1BfT1BFTigq dnBwLCBmbW9kZSwgY3JlZCwgcCwgLTEpOw0KKyNlbmRpZg0KICNlbHNlDQog CWVycm9yID0gVk9QX09QRU4oKnZwcCwgZm1vZGUsIGNyZWQsIHApOw0KICNl bmRpZg0KSW5kZXg6IG5ucGZzL2JzZC9ubnBmc19jb21tb24tYnNkLmMNCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvc3RhY2tlbi1jdnMv YXJsYS9ubnBmcy9ic2Qvbm5wZnNfY29tbW9uLWJzZC5jLHYNCnJldHJpZXZp bmcgcmV2aXNpb24gMS4zMw0KZGlmZiAtdSAtcjEuMzMgbm5wZnNfY29tbW9u LWJzZC5jDQotLS0gbm5wZnMvYnNkL25ucGZzX2NvbW1vbi1ic2QuYwkyNCBP Y3QgMjAwNiAxNjozMzowMiAtMDAwMAkxLjMzDQorKysgbm5wZnMvYnNkL25u cGZzX2NvbW1vbi1ic2QuYwkxNiBGZWIgMjAwOCAwMzo0OTo1NCAtMDAwMA0K QEAgLTcyLDEwICs3MiwzMyBAQA0KICNlbmRpZiAvKiBOTlBGU19ERUJVRyAq Lw0KIA0KIGludA0KLW5ucGZzX3N1c2VyKGRfdGhyZWFkX3QgKnApDQorbm5w ZnNfcHJpdl9jaGVja19kZWJ1ZyhkX3RocmVhZF90ICpwKQ0KIHsNCiAjaWYg ZGVmaW5lZChfX0FQUExFX18pDQogICAgIHJldHVybiBwcm9jX3N1c2VyKHAp Ow0KKyNlbGlmIGRlZmluZWQoSEFWRV9LRVJORUxfUFJJVl9DSEVDSykNCisg ICAgcmV0dXJuIChwcml2X2NoZWNrKHAsIFBSSVZfTk5QRlNfREVCVUcpKTsN CisjZWxpZiBkZWZpbmVkKEhBVkVfS0VSTkVMX0tBVVRIX0NSRURfR0VUVUlE KQ0KKyAgICB1aWRfdCB1aWQgPSBrYXV0aF9jcmVkX2dldHVpZChwLT5sX3By b2MtPnBfY3JlZCk7DQorICAgIGlmICh1aWQgPT0gMCkNCisJcmV0dXJuIDA7 DQorICAgIHJldHVybiBFUEVSTTsNCisjZWxpZiBkZWZpbmVkKEhBVkVfS0VS TkVMX1NVU0VSX1VDUkVEKQ0KKyAgICByZXR1cm4gc3VzZXJfdWNyZWQgKG5u cGZzX3Byb2NfdG9fY3JlZChwKSk7DQorI2VsaWYgZGVmaW5lZChIQVZFX1RX T19BUkdVTUVOVF9TVVNFUikNCisgICAgcmV0dXJuIHN1c2VyIChubnBmc19w cm9jX3RvX2NyZWQocCksIE5VTEwpOw0KKyNlbHNlDQorICAgIHJldHVybiBz dXNlciAocCk7DQorI2VuZGlmDQorfQ0KKw0KK2ludA0KK25ucGZzX3ByaXZf Y2hlY2tfZmhsb29rdXAoZF90aHJlYWRfdCAqcCkNCit7DQorI2lmIGRlZmlu ZWQoX19BUFBMRV9fKQ0KKyAgICByZXR1cm4gcHJvY19zdXNlcihwKTsNCisj ZWxpZiBkZWZpbmVkKEhBVkVfS0VSTkVMX1BSSVZfQ0hFQ0spDQorICAgIHJl dHVybiAocHJpdl9jaGVjayhwLCBQUklWX1ZGU19HRVRGSCkpOw0KICNlbGlm IGRlZmluZWQoSEFWRV9LRVJORUxfS0FVVEhfQ1JFRF9HRVRVSUQpDQogICAg IHVpZF90IHVpZCA9IGthdXRoX2NyZWRfZ2V0dWlkKHAtPmxfcHJvYy0+cF9j cmVkKTsNCiAgICAgaWYgKHVpZCA9PSAwKQ0KSW5kZXg6IG5ucGZzL2JzZC9u bnBmc19tZXNzYWdlLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBm aWxlOiAvc3RhY2tlbi1jdnMvYXJsYS9ubnBmcy9ic2Qvbm5wZnNfbWVzc2Fn ZS5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMDkNCmRpZmYgLXUgLXIx LjEwOSBubnBmc19tZXNzYWdlLmMNCi0tLSBubnBmcy9ic2Qvbm5wZnNfbWVz c2FnZS5jCTI4IE1hciAyMDA3IDEyOjA1OjQ2IC0wMDAwCTEuMTA5DQorKysg bm5wZnMvYnNkL25ucGZzX21lc3NhZ2UuYwkxNiBGZWIgMjAwOCAwMzo0OTo1 NSAtMDAwMA0KQEAgLTQ4Myw3ICs0ODMsNyBAQA0KIAkNCiAJbm5wZnNfYmxv Y2tfZnJlZV9hbGwoVk5PREVfVE9fWE5PREUodnApKTsNCiAJDQotI2lmIEhB VkVfS0VSTkVMX1ZHT05FTA0KKyNpZmRlZiBIQVZFX0tFUk5FTF9WR09ORUwN CiAJdmdvbmVsICh2cCwgcCk7DQogI2Vsc2UgLyogIWhhdmUgdmdvbmVsICov DQogCW5ucGZzX2ludGVybG9ja191bmxvY2soJnZwLT52X2ludGVybG9jayk7 DQpJbmRleDogbm5wZnMvYnNkL25ucGZzX25vZGUtYnNkLmMNCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvc3RhY2tlbi1jdnMvYXJsYS9u bnBmcy9ic2Qvbm5wZnNfbm9kZS1ic2QuYyx2DQpyZXRyaWV2aW5nIHJldmlz aW9uIDEuOTkNCmRpZmYgLXUgLXIxLjk5IG5ucGZzX25vZGUtYnNkLmMNCi0t LSBubnBmcy9ic2Qvbm5wZnNfbm9kZS1ic2QuYwkxNCBNYXIgMjAwNyAxNjo0 NDozMCAtMDAwMAkxLjk5DQorKysgbm5wZnMvYnNkL25ucGZzX25vZGUtYnNk LmMJMTYgRmViIDIwMDggMDM6NDk6NTUgLTAwMDANCkBAIC0xNjksNiArMTY5 LDE1IEBADQogICAgIGdlbmZzX25vZGVfaW5pdCgqdnBwLCAmbm5wZnNfZ2Vu ZnNvcHMpOw0KICNlbmRpZg0KIA0KKyNpZmRlZiBIQVZFX0tFUk5FTF9JTlNN TlRRVUUNCisgICAgZXJyb3IgPSBpbnNtbnRxdWUoKnZwcCwgTk5QRlNfVE9f VkZTKG5ucGZzcCkpOw0KKyAgICBpZiAoZXJyb3IpIHsNCisgICAgICBubnBm c19mcmVlKHJlc3VsdCwgc2l6ZW9mKCpyZXN1bHQpLCBNX05OUEZTX05PREUp Ow0KKyAgICAgICp2cHAgPSBOVUxMOw0KKyAgICAgIHJldHVybiBlcnJvcjsN CisgICAgfQ0KKyNlbmRpZg0KKw0KICByZXRyeToNCiAgICAgZXJyb3IgPSBu bnBmc19ub2RlX2ZpbmQobm5wZnNwLCBoYW5kbGUsICZjaGVjayk7DQogICAg IGlmIChlcnJvciA9PSBFTk9FTlQpIHsNCkBAIC03NTYsNyArNzY1LDcgQEAN CiAgKiBUaGUgcmVhbCBjaGFuZ2UgaXMgc3lzL2tlcm4vdmZzX2NhY2hlOjEu MjANCiAgKi8NCiANCi0jaWYgX19OZXRCU0RfVmVyc2lvbl9fID49IDEwNDEy MDAwMCB8fCBPcGVuQlNEID4gMjAwMjExDQorI2lmIChkZWZpbmVkKF9fTmV0 QlNEX1ZlcnNpb25fXykgJiYgX19OZXRCU0RfVmVyc2lvbl9fID49IDEwNDEy MDAwMCkgfHwgKGRlZmluZWQoT3BlbkJTRCkgJiYgT3BlbkJTRCA+IDIwMDIx MSkNCiAJaWYgKGNhY2hlX2xvb2t1cChkdnAsICZkdW1teSwgY25wKSAhPSAt MSkgew0KIAkgICAgbm5wZnNfdmZzX3VubG9jayhkdW1teSwgbm5wZnNfY25w X3RvX3Byb2MoY25wKSk7DQogCSAgICBwcmludGYgKCJOTlBGUyBQQU5JQyBX QVJOSU5HISBubnBmc19kbmxjX2VudGVyOiAlcyBhbHJlYWR5IGluIGNhY2hl XG4iLA0KQEAgLTgwMSw3ICs4MTAsNyBAQA0KICAgICBjbi0+Y25fbmFtZXB0 ciA9IChjaGFyICopbmFtZTsNCiAgICAgY24tPmNuX25hbWVsZW4gPSBzdHJs ZW4obmFtZSk7DQogICAgIGNuLT5jbl9mbGFncyAgID0gMDsNCi0jaWYgX19B UFBMRV9fDQorI2lmZGVmIF9fQVBQTEVfXw0KICAgICBjbi0+Y25faGFzaCA9 IDA7IC8qIExldCB0aGUgdmZzIGNvbXB1dGUgdGhlIGhhc2ggKi8NCiAjZWxp ZiBkZWZpbmVkKEhBVkVfS0VSTkVMX05BTUVJX0hBU0gpDQogICAgIHsNCklu ZGV4OiBubnBmcy9ic2Qvbm5wZnNfc3lzY2FsbHMtY29tbW9uLmMNCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvc3RhY2tlbi1jdnMvYXJs YS9ubnBmcy9ic2Qvbm5wZnNfc3lzY2FsbHMtY29tbW9uLmMsdg0KcmV0cmll dmluZyByZXZpc2lvbiAxLjg1DQpkaWZmIC11IC1yMS44NSBubnBmc19zeXNj YWxscy1jb21tb24uYw0KLS0tIG5ucGZzL2JzZC9ubnBmc19zeXNjYWxscy1j b21tb24uYwkyOCBNYXIgMjAwNyAxMjowNTo0NiAtMDAwMAkxLjg1DQorKysg bm5wZnMvYnNkL25ucGZzX3N5c2NhbGxzLWNvbW1vbi5jCTE2IEZlYiAyMDA4 IDAzOjQ5OjU1IC0wMDAwDQpAQCAtNDg0LDcgKzQ4NCw3IEBADQogCWlmICh2 aWNlX2lvY3RsLT5pbl9zaXplIDwgc2l6ZW9mKGludDMyX3QpKQ0KIAkgICAg cmV0dXJuIEVJTlZBTDsNCiAJDQotCWVycm9yID0gbm5wZnNfc3VzZXIocCk7 DQorCWVycm9yID0gbm5wZnNfcHJpdl9jaGVja19kZWJ1ZyhwKTsNCiAJaWYg KGVycm9yKQ0KIAkgICAgcmV0dXJuIGVycm9yOw0KIA0KSW5kZXg6IG5ucGZz L2JzZC9ubnBmc192ZnNvcHMtYnNkLmMNCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NClJDUyBmaWxlOiAvc3RhY2tlbi1jdnMvYXJsYS9ubnBmcy9ic2Qvbm5w ZnNfdmZzb3BzLWJzZC5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMDMN CmRpZmYgLXUgLXIxLjEwMyBubnBmc192ZnNvcHMtYnNkLmMNCi0tLSBubnBm cy9ic2Qvbm5wZnNfdmZzb3BzLWJzZC5jCTI3IE1hciAyMDA3IDEzOjI2OjU4 IC0wMDAwCTEuMTAzDQorKysgbm5wZnMvYnNkL25ucGZzX3Zmc29wcy1ic2Qu YwkxNiBGZWIgMjAwOCAwMzo0OTo1NiAtMDAwMA0KQEAgLTg0LDcgKzg0LDEx IEBADQogfQ0KIA0KIGludA0KKyNpZmRlZiBIQVZFX1ZGU19RVU9UQUNUTF9D QUREUg0KIG5ucGZzX3F1b3RhY3RsKHN0cnVjdCBtb3VudCAqbXAsIGludCBj bWQsIHVpZF90IHVpZCwgY2FkZHJfdCBhcmcsIGRfdGhyZWFkX3QgKnApDQor I2Vsc2UNCitubnBmc19xdW90YWN0bChzdHJ1Y3QgbW91bnQgKm1wLCBpbnQg Y21kLCB1aWRfdCB1aWQsIHZvaWQgKmFyZywgZF90aHJlYWRfdCAqcCkNCisj ZW5kaWYNCiB7DQogICAgIE5OUEZTREVCKFhERUJWRk9QUywgKCJubnBmc19x dW90YWN0bDogbXAgPSAlbHgsIGNtZCA9ICVkLCB1aWQgPSAldSwgIg0KIAkJ ICAgICAgICJhcmcgPSAlbHgsIHByb2MgPSAlbHhcbiIsIA0KQEAgLTIyNSw2 ICsyMjksNyBAQA0KICAgICByZXR1cm4gMDsNCiB9DQogDQorI2lmbmRlZiBI QVZFX1ZPUF9WUFRPRkgNCiBpbnQNCiBubnBmc192cHRvZmgoc3RydWN0IHZu b2RlICogdnAsDQogCSAgICAgc3RydWN0IGZpZCAqIGZocA0KQEAgLTIzNiw2 ICsyNDEsNyBAQA0KICAgICBOTlBGU0RFQihYREVCVkZPUFMsICgibm5wZnNf dnB0b2ZoXG4iKSk7DQogICAgIHJldHVybiBFT1BOT1RTVVBQOw0KIH0NCisj ZW5kaWYNCiANCiAjZW5kaWYgLyogIV9fQVBQTEVfXyAqLw0KIA0KQEAgLTMy MSw3ICszMjcsNyBAQA0KIA0KICAgICBOTlBGU0RFQihYREVCVkZPUFMsICgi bm5wZnNfZmhsb29rdXAgKG5ucGZzKVxuIikpOw0KIA0KLSAgICBlcnJvciA9 IG5ucGZzX3N1c2VyIChwcm9jKTsNCisgICAgZXJyb3IgPSBubnBmc19wcml2 X2NoZWNrX2ZobG9va3VwKHByb2MpOw0KICAgICBpZiAoZXJyb3IpDQogCXJl dHVybiBFUEVSTTsNCiANCkBAIC00ODQsNyArNDkwLDExIEBADQogCWdvdG8g b3V0Ow0KIA0KICNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiBfX0ZyZWVC U0RfdmVyc2lvbiA+PSA1MDIwMDANCisjaWZkZWYgSEFWRV9GSU5BTF9BUkdf RklMRV9WT1BfT1BFTg0KKyAgICBlcnJvciA9IFZPUF9PUEVOKHZwLCBmbGFn cywgY3JlZCwgcHJvYywgZnApOw0KKyNlbHNlDQogICAgIGVycm9yID0gVk9Q X09QRU4odnAsIGZsYWdzLCBjcmVkLCBwcm9jLCBpbmRleCk7DQorI2VuZGlm DQogI2Vsc2UNCiAgICAgZXJyb3IgPSBWT1BfT1BFTih2cCwgZmxhZ3MsIGNy ZWQsIHByb2MpOw0KICNlbmRpZg0KSW5kZXg6IG5ucGZzL2JzZC9ubnBmc192 ZnNvcHMtZnJlZWJzZC5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1Mg ZmlsZTogL3N0YWNrZW4tY3ZzL2FybGEvbm5wZnMvYnNkL25ucGZzX3Zmc29w cy1mcmVlYnNkLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjM3DQpkaWZm IC11IC1yMS4zNyBubnBmc192ZnNvcHMtZnJlZWJzZC5jDQotLS0gbm5wZnMv YnNkL25ucGZzX3Zmc29wcy1mcmVlYnNkLmMJNiBNYXIgMjAwNyAxNjowMDo1 NyAtMDAwMAkxLjM3DQorKysgbm5wZnMvYnNkL25ucGZzX3Zmc29wcy1mcmVl YnNkLmMJMTYgRmViIDIwMDggMDM6NDk6NTYgLTAwMDANCkBAIC02MCw3ICs2 MCwxMiBAQA0KICAgICAudm9wX2RlZmF1bHQgPSAmZGVmYXVsdF92bm9kZW9w cywNCiAgICAgLnZvcF9sb29rdXAgPSBubnBmc19kZWFkX2xvb2t1cCwNCiAg ICAgLnZvcF9yZWNsYWltID0gbm5wZnNfZGVhZF9yZWNsYWltLA0KKyNpZmRl ZiBIQVZFX1ZPUF9MT0NLMQ0KKyAgICAudm9wX2xvY2sxID0gdm9wX3N0ZGxv Y2ssDQorI2VuZGlmDQorI2lmZGVmIEhBVkVfVk9QX0xPQ0sNCiAgICAgLnZv cF9sb2NrID0gdm9wX3N0ZGxvY2ssDQorI2VuZGlmDQogICAgIC52b3BfdW5s b2NrID0gdm9wX3N0ZHVubG9jaywNCiAgICAgLnZvcF9pc2xvY2tlZCA9IHZv cF9zdGRpc2xvY2tlZCwNCiB9Ow0KQEAgLTc2LDYgKzgxLDE1IEBADQogICAg IGlmIChlcnJvciA9PSAwKQ0KIAlOTlBGU19NQUtFX1ZST09UKCp2cHApOw0K IA0KKyNpZmRlZiBIQVZFX0tFUk5FTF9JTlNNTlRRVUUNCisgICAgLyogWFhY OiBQb3NzaWJseSBzaG91bGQgbG9jayB3aXRoIGxvY2ttZ3IgaGVyZS4gKi8N CisgICAgZXJyb3IgPSBpbnNtbnRxdWUoKnZwcCwgbXApOw0KKyAgICBpZiAo ZXJyb3IpIHsNCisgICAgICAqdnBwID0gTlVMTDsNCisgICAgICByZXR1cm4g ZXJyb3I7DQorICAgIH0NCisjZW5kaWYNCisNCiAgICAgbm5wZnNfdmZzX3dy aXRlbG9jaygqdnBwLCBubnBmc19jdXJwcm9jKCkpOw0KIA0KICAgICByZXR1 cm4gZXJyb3I7DQpAQCAtMTYzLDcgKzE3Nyw5IEBADQogICAgIC52ZnNfdmdl dCA9IG5ucGZzX3ZnZXRfZnJlZWJzZCwNCiAgICAgLnZmc19maHRvdnAgPSBu bnBmc19maHRvdnAsDQogICAgIC52ZnNfY2hlY2tleHAgPSBubnBmc19jaGVj a2V4cCwNCisjaWZuZGVmIEhBVkVfVk9QX1ZQVE9GSA0KICAgICAudmZzX3Zw dG9maCA9IG5ucGZzX3ZwdG9maCwNCisjZW5kaWYNCiAgICAgLnZmc19pbml0 ID0gbm5wZnNfaW5pdA0KIH07DQogLypWRlNfU0VUKG5ucGZzX3Zmc29wcywg YXJsYW5ucGZzZGV2LCAwKTsqLw0KSW5kZXg6IG5ucGZzL2JzZC9ubnBmc192 bm9kZW9wcy1ic2QuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZp bGU6IC9zdGFja2VuLWN2cy9hcmxhL25ucGZzL2JzZC9ubnBmc192bm9kZW9w cy1ic2QuYyx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTYxDQpkaWZmIC11 IC1yMS4xNjEgbm5wZnNfdm5vZGVvcHMtYnNkLmMNCi0tLSBubnBmcy9ic2Qv bm5wZnNfdm5vZGVvcHMtYnNkLmMJNiBNYXIgMjAwNyAxNjowMDo1NyAtMDAw MAkxLjE2MQ0KKysrIG5ucGZzL2JzZC9ubnBmc192bm9kZW9wcy1ic2QuYwkx NiBGZWIgMjAwOCAwMzo0OTo1NyAtMDAwMA0KQEAgLTg1LDcgKzg1LDExIEBA DQogICAgIHJldCA9IG5ucGZzX29wZW5fY29tbW9uKGFwLT5hX3ZwLCBhcC0+ YV9tb2RlLCBjdHgpOw0KICNpZmRlZiBfX0ZyZWVCU0RfXw0KICAgICBpZiAo IXJldCkNCisjaWZkZWYgSEFWRV9USFJFRV9BUkdVTUVOVF9WTk9ERV9DUkVB VEVfVk9CSg0KKwl2bm9kZV9jcmVhdGVfdm9iamVjdChhcC0+YV92cCwNCisj ZWxzZQ0KIAl2bm9kZV9jcmVhdGVfdm9iamVjdF9vZmYoYXAtPmFfdnAsDQor I2VuZGlmDQogCQkJCSBubnBmc192YXR0cl9nZXRfc2l6ZSgmVk5PREVfVE9f WE5PREUoYXAtPmFfdnApLT5hdHRyKSwNCiAJCQkJIGFwLT5hX3RkKTsNCiAj ZW5kaWYNCkBAIC03OTMsMTYgKzc5NywyNSBAQA0KICNpZmRlZiBfX0ZyZWVC U0RfXw0KIA0KIGludA0KKyNpZmRlZiBIQVZFX1ZPUF9MT0NLMQ0KK25ucGZz X2xvY2sxKHN0cnVjdCB2b3BfbG9jazFfYXJncyAqIGFwKQ0KKyNlbHNlDQog bm5wZnNfbG9jayhzdHJ1Y3Qgdm9wX2xvY2tfYXJncyAqIGFwKQ0KKyNlbmRp Zg0KIHsgICAgICAgICAgICAgICANCiAgICAgc3RydWN0IHZub2RlICp2cCA9 IGFwLT5hX3ZwOw0KICAgICBpbnQgcmV0Ow0KIA0KICAgICBubnBmc19hc3Nl cnQodnApOw0KKyNpZmRlZiBIQVZFX1ZPUF9MT0NLMQ0KKyAgICBOTlBGU0RF QihYREVCVk5PUFMsICgibm5wZnNfbG9jazE6ICVseCwgZmxhZ3MgMHgleFxu IiwNCisJCQkgKHVuc2lnbmVkIGxvbmcpdnAsIGFwLT5hX2ZsYWdzKSk7DQor I2Vsc2UNCiAgICAgbm5wZnNfYXNzZXJ0KGFwLT5hX3RkKTsNCiAgICAgTk5Q RlNERUIoWERFQlZOT1BTLCAoIm5ucGZzX2xvY2s6ICVseCwgdGQgJXAsIGZs YWdzIDB4JXgsIG5sb2NrcyAlZFxuIiwNCiAJCQkgKHVuc2lnbmVkIGxvbmcp dnAsIE5OUEZTX0FQX1BST0MoYXApLCBhcC0+YV9mbGFncywNCiAJCQkgTk5Q RlNfQVBfUFJPQyhhcCktPnRkX2xvY2tzKSk7DQorI2VuZGlmDQogDQogICAg IG5ucGZzX2xrX2luZm8oIm5ucGZzX2xvY2sgYmVmb3JlIiwgdnApOw0KICAg ICByZXQgPSB2b3Bfc3RkbG9jayhhcCk7DQpAQCAtODE3LDE2ICs4MzAsMjYg QEANCiAgICAgc3RydWN0IHZub2RlICp2cCA9IGFwLT5hX3ZwOw0KICAgICBp bnQgcmV0Ow0KIA0KKyNpZmRlZiBIQVZFX1RXT19BUkdVTUVOVF9WT1BfVU5M T0NLDQorICAgIE5OUEZTREVCKFhERUJWTk9QUywNCisJICAgICAoIm5ucGZz X3VubG9jazogJWx4LCBmbGFncyAweCV4XG4iLCAodW5zaWduZWQgbG9uZyl2 cCwNCisJICAgICAgYXAtPmFfZmxhZ3MpKTsNCisjZWxzZQ0KICAgICBOTlBG U0RFQihYREVCVk5PUFMsDQogCSAgICAgKCJubnBmc191bmxvY2s6ICVseCwg dGQgJXAsIGZsYWdzIDB4JXgsIG5sb2NrcyAlZFxuIiwNCiAJICAgICAgKHVu c2lnbmVkIGxvbmcpdnAsIGFwLT5hX3RkLCBhcC0+YV9mbGFncywNCiAJICAg ICAgTk5QRlNfQVBfUFJPQyhhcCktPnRkX2xvY2tzKSk7DQorI2VuZGlmDQog ICAgIA0KICAgICBubnBmc19sa19pbmZvKCJubnBmc191bmxvY2sgYmVmb3Jl IiwgdnApOw0KICAgICByZXQgPSB2b3Bfc3RkdW5sb2NrKGFwKTsNCiANCisj aWZkZWYgSEFWRV9UV09fQVJHVU1FTlRfVk9QX1VOTE9DSw0KKyAgICBOTlBG U0RFQihYREVCVk5PUFMsICgibm5wZnNfdW5sb2NrOiByZXR1cm4gJWRcbiIs IHJldCkpOw0KKyNlbHNlDQogICAgIE5OUEZTREVCKFhERUJWTk9QUywgKCJu bnBmc191bmxvY2s6IHJldHVybiAlZCwgdGQgJXAsIG5sb2NrcyAlZFxuIiwN CiAJCQkgcmV0LCBOTlBGU19BUF9QUk9DKGFwKSwgTk5QRlNfQVBfUFJPQyhh cCktPnRkX2xvY2tzKSk7DQorI2VuZGlmDQogICAgIHJldHVybiByZXQ7DQog fQ0KIA0KQEAgLTEzMTMsNiArMTMzNiwyMyBAQA0KIH0NCiAjZW5kaWYNCiAN CisjaWZkZWYgSEFWRV9WT1BfVlBUT0ZIDQoraW50DQorbm5wZnNfdnB0b2Zo KHN0cnVjdCB2b3BfdnB0b2ZoX2FyZ3MgKmFwKQ0KKy8qDQorc3RydWN0IHZv cF92cHRvZmhfYXJncyB7DQorCXN0cnVjdCB2bm9kZW9wX2Rlc2MgKmFfZGVz YzsNCisJc3RydWN0IHZub2RlICphX3ZwOw0KKwlzdHJ1Y3QgZmlkICphX2Zo cDsNCit9Ow0KKyovDQorew0KKyAgICBOTlBGU0RFQihYREVCVk5PUFMsICgi bm5wZnNfdnB0b2ZoXG4iKSk7DQorDQorICAgIHJldHVybiBFT1BOT1RTVVBQ Ow0KK30NCisjZW5kaWYNCisNCiANCiANCiB2b3BfdCAqKm5ucGZzX3Zub2Rl b3BfcDsNCkBAIC0xNDY2LDcgKzE1MDYsMTIgQEANCiAJLnZvcF9ibWFwID0J CW5ucGZzX2JtYXAsDQogDQogCS52b3BfcG9sbCA9CQlubnBmc19wb2xsLA0K KyNpZmRlZiBIQVZFX1ZPUF9MT0NLMQ0KKwkudm9wX2xvY2sxID0JCW5ucGZz X2xvY2sxLA0KKyNlbmRpZg0KKyNpZmRlZiBIQVZFX1ZPUF9MT0NLDQogCS52 b3BfbG9jayA9CQlubnBmc19sb2NrLCAgDQorI2VuZGlmDQogCS52b3BfdW5s b2NrID0JCW5ucGZzX3VubG9jaywNCiAJLnZvcF9pc2xvY2tlZCA9CQlubnBm c19pc2xvY2tlZCwNCiAJLnZvcF9yZXZva2UgPQkJbm5wZnNfcmV2b2tlLA0K QEAgLTE2MDUsNiArMTY1MCw5IEBADQogI2VuZGlmDQogI2lmZGVmIEhBVkVf Vk9QX1BBVEhDT05GDQogICAgIHsmdm9wX3BhdGhjb25mX2Rlc2MsICh2b3Bf dCAqKSBubnBmc19wYXRoY29uZiB9LA0KKyNlbmRpZg0KKyNpZmRlZiBIQVZF X1ZPUF9WUFRPRkgNCisgICAgeyZ2b3BfdnB0b2ZoX2Rlc2MsICh2b3BfdCAq KSBubnBmc192cHRvZmggfSwNCiAjZW5kaWYNCiAgICAgeyhzdHJ1Y3Qgdm5v ZGVvcF9kZXNjICopIE5VTEwsIChpbnQgKCopICh2b2lkICopKSBOVUxMfQ0K IH07DQpJbmRleDogbm5wZnMvYnNkL25ucGZzX3Zub2Rlb3BzLWNvbW1vbi5j DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL3N0YWNrZW4t Y3ZzL2FybGEvbm5wZnMvYnNkL25ucGZzX3Zub2Rlb3BzLWNvbW1vbi5jLHYN CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMjENCmRpZmYgLXUgLXIxLjEyMSBu bnBmc192bm9kZW9wcy1jb21tb24uYw0KLS0tIG5ucGZzL2JzZC9ubnBmc192 bm9kZW9wcy1jb21tb24uYwkyOCBNYXIgMjAwNyAxMjowNTo0NiAtMDAwMAkx LjEyMQ0KKysrIG5ucGZzL2JzZC9ubnBmc192bm9kZW9wcy1jb21tb24uYwkx NiBGZWIgMjAwOCAwMzo0OTo1NyAtMDAwMA0KQEAgLTUwLDcgKzUwLDcgQEAN CiBzdGF0aWMgdm9pZA0KIG5ucGZzX2hhbmRsZV9zdGFsZShzdHJ1Y3Qgbm5w ZnNfbm9kZSAqeG4pDQogew0KLSNpZiBfX0FQUExFX18NCisjaWZkZWYgX19B UFBMRV9fDQogICAgIHN0cnVjdCB2bm9kZSAqdnAgPSBYTk9ERV9UT19WTk9E RSh4bik7DQogI2VuZGlmDQogDQpAQCAtMTQzOCw3ICsxNDM4LDkgQEANCiAg ICAgaW50IGVycm9yID0gMDsNCiAgICAgbm5wZnNfY3JlZCBjcmVkOw0KICAg ICBzdHJ1Y3Qgbm5wZnMgKm5ucGZzcCA9IE5OUEZTX0ZST01fVk5PREUodnAp Ow0KKyNpZmRlZiBIQVZFX1RIUkVFX0FSR1VNRU5UX1ZPUF9VTkxPQ0sNCiAg ICAgZF90aHJlYWRfdCAqcHJvYyA9IG5ucGZzX3Zmc19jb250ZXh0X3Byb2Mo Y3R4KTsNCisjZW5kaWYNCiANCiAgICAgTk5QRlNERUIoWERFQlZOT1BTLCAo Im5ucGZzX3JlYWRsaW5rXG4iKSk7DQogDQpJbmRleDogbm5wZnMvYnNkL2Jp bi9tbnRvcHRzLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxl OiAvc3RhY2tlbi1jdnMvYXJsYS9ubnBmcy9ic2QvYmluL21udG9wdHMuaCx2 DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNw0KZGlmZiAtdSAtcjEuNyBtbnRv cHRzLmgNCi0tLSBubnBmcy9ic2QvYmluL21udG9wdHMuaAkyOCBEZWMgMjAw NSAxNDozMjowMyAtMDAwMAkxLjcNCisrKyBubnBmcy9ic2QvYmluL21udG9w dHMuaAkxNiBGZWIgMjAwOCAwMzo0OTo1OCAtMDAwMA0KQEAgLTQ4LDcgKzQ4 LDkgQEANCiAjZGVmaW5lIE1PUFRfTk9BQ0NFU1NUSU1FCXsgImFjY2Vzc3Rp bWUiLAkxLCBNTlRfTk9BVElNRSB9DQogI2RlZmluZSBNT1BUX05PQVRJTUUJ CXsgImF0aW1lIiwJMSwgTU5UX05PQVRJTUUgfQ0KICNlbmRpZg0KKyNpZmRl ZiBNT1BUX05PREVWDQogI2RlZmluZSBNT1BUX05PREVWCQl7ICJkZXYiLAkx LCBNTlRfTk9ERVYgfQ0KKyNlbmRpZg0KICNkZWZpbmUgTU9QVF9OT0VYRUMJ CXsgImV4ZWMiLAkxLCBNTlRfTk9FWEVDIH0NCiAjZGVmaW5lIE1PUFRfTk9T VUlECQl7ICJzdWlkIiwJMSwgTU5UX05PU1VJRCB9DQogI2RlZmluZSBNT1BU X1JET05MWQkJeyAicmRvbmx5IiwJMCwgTU5UX1JET05MWSB9DQpAQCAtNzgs NiArODAsNyBAQA0KIA0KIC8qIFN0YW5kYXJkIG9wdGlvbnMgd2hpY2ggYWxs IG1vdW50cyBjYW4gdW5kZXJzdGFuZC4gKi8NCiANCisjaWZkZWYgTU9QVF9O T0RFVg0KICNkZWZpbmUgTU9QVF9TVERPUFRTCQkJCQkJCVwNCiAJTU9QVF9V U0VSUVVPVEEsCQkJCQkJCVwNCiAJTU9QVF9HUk9VUFFVT1RBLAkJCQkJCVwN CkBAIC04Niw1ICs4OSwxNCBAQA0KIAlNT1BUX05PRVhFQywJCQkJCQkJXA0K IAlNT1BUX05PU1VJRCwJCQkJCQkJXA0KIAlNT1BUX1JET05MWQ0KKyNlbHNl DQorI2RlZmluZSBNT1BUX1NURE9QVFMJCQkJCQkJXA0KKwlNT1BUX1VTRVJR VU9UQSwJCQkJCQkJXA0KKwlNT1BUX0dST1VQUVVPVEEsCQkJCQkJXA0KKwlN T1BUX0ZTVEFCX0NPTVBBVCwJCQkJCQlcDQorCU1PUFRfTk9FWEVDLAkJCQkJ CQlcDQorCU1PUFRfTk9TVUlELAkJCQkJCQlcDQorCU1PUFRfUkRPTkxZDQor I2VuZGlmDQogDQogdm9pZCBnZXRtbnRvcHRzIChjb25zdCBjaGFyICosIGNv bnN0IHN0cnVjdCBtbnRvcHQgKiwgaW50ICopOw0KSW5kZXg6IG5ucGZzL2Jz ZC9ubnBmcy9ubnBmc19jb21tb24uaA0KPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KUkNTIGZpbGU6IC9zdGFja2VuLWN2cy9hcmxhL25ucGZzL2JzZC9ubnBm cy9ubnBmc19jb21tb24uaCx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjIN CmRpZmYgLXUgLXIxLjIyIG5ucGZzX2NvbW1vbi5oDQotLS0gbm5wZnMvYnNk L25ucGZzL25ucGZzX2NvbW1vbi5oCTI0IE9jdCAyMDA2IDE2OjMzOjE0IC0w MDAwCTEuMjINCisrKyBubnBmcy9ic2Qvbm5wZnMvbm5wZnNfY29tbW9uLmgJ MTYgRmViIDIwMDggMDM6NDk6NTggLTAwMDANCkBAIC01OSw3ICs1OSw4IEBA DQogI2RlZmluZSBubnBmc19mcmVlKGEsIHNpemUsdCkgZnJlZShhLCB0KQ0K ICNlbmRpZiAvKiBOTlBGU19ERUJVRyAqLw0KIA0KLWludCBubnBmc19zdXNl cihkX3RocmVhZF90ICpwKTsNCitpbnQgbm5wZnNfcHJpdl9jaGVja19kZWJ1 ZyhkX3RocmVhZF90ICpwKTsNCitpbnQgbm5wZnNfcHJpdl9jaGVja19maGxv b2t1cChkX3RocmVhZF90ICpwKTsNCiANCiAjaWZuZGVmIEhBVkVfS0VSTkVM X01FTUNQWQ0KIHZvaWQgKg0KSW5kZXg6IG5ucGZzL2JzZC9ubnBmcy9ubnBm c19sb2NsLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAv c3RhY2tlbi1jdnMvYXJsYS9ubnBmcy9ic2Qvbm5wZnMvbm5wZnNfbG9jbC5o LHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMTMNCmRpZmYgLXUgLXIxLjEx MyBubnBmc19sb2NsLmgNCi0tLSBubnBmcy9ic2Qvbm5wZnMvbm5wZnNfbG9j bC5oCTYgTWFyIDIwMDcgMTY6MDE6NTYgLTAwMDAJMS4xMTMNCisrKyBubnBm cy9ic2Qvbm5wZnMvbm5wZnNfbG9jbC5oCTE2IEZlYiAyMDA4IDAzOjQ5OjU4 IC0wMDAwDQpAQCAtMTIxLDYgKzEyMSw5IEBADQogI2lmZGVmIEhBVkVfU1lT X0tBVVRIX0gNCiAjaW5jbHVkZSA8c3lzL2thdXRoLmg+DQogI2VuZGlmDQor I2lmZGVmIEhBVkVfU1lTX1BSSVZfSA0KKyNpbmNsdWRlIDxzeXMvcHJpdi5o Pg0KKyNlbmRpZg0KIA0KICNpZmRlZiBIQVZFX01JU0NGU19HRU5GU19HRU5G U19IDQogI2luY2x1ZGUgPG1pc2Nmcy9nZW5mcy9nZW5mcy5oPg0KQEAgLTI5 Niw3ICsyOTksNyBAQA0KIHN0cnVjdCBnZW5mc19vcHMgbm5wZnNfZ2VuZnNv cHM7DQogI2VuZGlmDQogDQotI2lmIF9fTmV0QlNEX1ZlcnNpb25fXyA+PSAz OTkwMDE5MDAgLyogTmV0QlNEIDMuOTkuMTkgKi8NCisjaWYgZGVmaW5lZChf X05ldEJTRF9fKSAmJiBfX05ldEJTRF9WZXJzaW9uX18gPj0gMzk5MDAxOTAw IC8qIE5ldEJTRCAzLjk5LjE5ICovDQogdHlwZWRlZiBzdHJ1Y3Qga2F1dGhf Y3JlZCAqbm5wZnNfa2VybmVsX2NyZWQ7DQogI2RlZmluZSBubnBmc19jcmVk X2dldF91aWQoY3JlZCkga2F1dGhfY3JlZF9nZXR1aWQoY3JlZCkNCiAjZWxz ZQ0KSW5kZXg6IG5ucGZzL2JzZC9ubnBmcy9ubnBmc192ZnNvcHMtYnNkLmgN Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvc3RhY2tlbi1j dnMvYXJsYS9ubnBmcy9ic2Qvbm5wZnMvbm5wZnNfdmZzb3BzLWJzZC5oLHYN CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNQ0KZGlmZiAtdSAtcjEuMjUgbm5w ZnNfdmZzb3BzLWJzZC5oDQotLS0gbm5wZnMvYnNkL25ucGZzL25ucGZzX3Zm c29wcy1ic2QuaAk2IE1hciAyMDA3IDE2OjAxOjU2IC0wMDAwCTEuMjUNCisr KyBubnBmcy9ic2Qvbm5wZnMvbm5wZnNfdmZzb3BzLWJzZC5oCTE2IEZlYiAy MDA4IDAzOjQ5OjU4IC0wMDAwDQpAQCAtNzksNyArNzksMTEgQEANCiBubnBm c19yb290KHN0cnVjdCBtb3VudCAqbXAsIHN0cnVjdCB2bm9kZSAqKnZwcCk7 DQogDQogaW50DQorI2lmZGVmIEhBVkVfVkZTX1FVT1RBQ1RMX0NBRERSDQog bm5wZnNfcXVvdGFjdGwoc3RydWN0IG1vdW50ICptcCwgaW50IGNtZCwgdWlk X3QgdWlkLCBjYWRkcl90IGFyZywgZF90aHJlYWRfdCAqcCk7DQorI2Vsc2UN CitubnBmc19xdW90YWN0bChzdHJ1Y3QgbW91bnQgKm1wLCBpbnQgY21kLCB1 aWRfdCB1aWQsIHZvaWQgKmFyZywgZF90aHJlYWRfdCAqcCk7DQorI2VuZGlm DQogDQogaW50DQogbm5wZnNfc3RhdGZzKHN0cnVjdCBtb3VudCAqbXAsIG5u cGZzX3N0YXR2ZnMgKnNicCwgZF90aHJlYWRfdCAqcCk7DQpAQCAtMTE0LDYg KzExOCw3IEBADQogCSAgICAgc3RydWN0IHVjcmVkICoqIGNyZWRhbm9ucCk7 DQogI2VuZGlmDQogDQorI2lmbmRlZiBIQVZFX1ZPUF9WUFRPRkgNCiBpbnQN CiBubnBmc192cHRvZmgoc3RydWN0IHZub2RlICogdnAsDQogCSAgICAgc3Ry dWN0IGZpZCAqIGZocA0KQEAgLTEyMSw2ICsxMjYsNyBAQA0KIAkgICAgICxz aXplX3QgKiBmaWRzeg0KICNlbmRpZg0KIAkgICAgICk7DQorI2VuZGlmDQog DQogaW50DQogbm5wZnNfZGVhZF9sb29rdXAoc3RydWN0IHZvcF9sb29rdXBf YXJncyAqYXApOw0KSW5kZXg6IG5ucGZzL2ZyZWVic2QvRnJlZUJTRC1NYWtl ZmlsZQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9zdGFj a2VuLWN2cy9hcmxhL25ucGZzL2ZyZWVic2QvRnJlZUJTRC1NYWtlZmlsZSx2 DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNw0KZGlmZiAtdSAtcjEuNyBGcmVl QlNELU1ha2VmaWxlDQotLS0gbm5wZnMvZnJlZWJzZC9GcmVlQlNELU1ha2Vm aWxlCTYgTWFyIDIwMDcgMTI6NTQ6MDAgLTAwMDAJMS43DQorKysgbm5wZnMv ZnJlZWJzZC9GcmVlQlNELU1ha2VmaWxlCTE2IEZlYiAyMDA4IDAzOjQ5OjU4 IC0wMDAwDQpAQCAtMjksNiArMjksNyBAQA0KIGJzZHNyY2Rpcj0JJChzcmNk aXIpLy4uL2JzZA0KIA0KIENGTEFHUz0gLWcgXA0KKwktSS91c3IvaW5jbHVk ZSBcDQogCS1JJHsuQ1VSRElSfSBcDQogCS1JJHsuQ1VSRElSfS8uLi8uLi9p bmNsdWRlIFwNCiAJLUkkey5DVVJESVJ9Ly4uL2luY2x1ZGUgXA0KQEAgLTQ1 LDYgKzQ2LDYgQEANCiAuUEFUSDoJJChic2RzcmNkaXIpDQogDQogbm5wZnNf dm9wZGVmcy5oOiB2bm9kZV9pZi5oDQotCWF3ayAnL15zdHJ1Y3Qgdm9wX1th LXpdKl9hcmdzLyB7IHZvcD1zdWJzdHIoJCQyLDUsbGVuZ3RoKCQkMiktOSk7 IHByaW50ZigiI2RlZmluZSBIQVZFX1ZPUF8lcyAxXG4iLCB0b3VwcGVyKHZv cCkpOyBwcmludGYoIk5OUEZTX1ZPUF9ERUYoJXMpO1xuIiwgdm9wKTsgfScg dm5vZGVfaWYuaCA+ICR7LlRBUkdFVH0NCisJYXdrICcvXnN0cnVjdCB2b3Bf W2EtejAtOV0qX2FyZ3MvIHsgdm9wPXN1YnN0cigkJDIsNSxsZW5ndGgoJCQy KS05KTsgcHJpbnRmKCIjZGVmaW5lIEhBVkVfVk9QXyVzIDFcbiIsIHRvdXBw ZXIodm9wKSk7IHByaW50ZigiTk5QRlNfVk9QX0RFRiglcyk7XG4iLCB2b3Ap OyB9JyB2bm9kZV9pZi5oID4gJHsuVEFSR0VUfQ0KIAktbWtkaXIgbm5wZnMN CiAJdGVzdCAtZCBubnBmcyAmJiAoIHRlc3QgLWYgbm5wZnMvbm5wZnNfdm9w ZGVmcy5oIHx8IGxuIC1zIC4uL25ucGZzX3ZvcGRlZnMuaCBubnBmcy9ubnBm c192b3BkZWZzLmggKQ0K --621616949-433016993-1203135147=:93919--