Date: Tue, 6 Jan 2009 21:10:02 GMT From: gm@ipfw.ru To: freebsd-ports-bugs@FreeBSD.org Subject: Re: ports/130174: New port: net/igmpproxy multicast proxy Message-ID: <200901062110.n06LA2VX071398@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/130174; it has been noted by GNATS. From: gm@ipfw.ru To: bug-followup@FreeBSD.org, melifaro@ipfw.ru Cc: Subject: Re: ports/130174: New port: net/igmpproxy multicast proxy Date: Tue, 6 Jan 2009 23:43:43 +0300 ------------DD1D5D193AB3E2 Content-Type: text/plain; charset=windows-1251 Content-Transfer-Encoding: quoted-printable Fixed build in 6.X and portlint -t warning ------------DD1D5D193AB3E2 Content-Type: text/plain; name="newport.txt" Content-transfer-encoding: base64 Content-Disposition: attachment; filename="newport.txt" IyBUaGlzIGlzIGEgc2hlbGwgYXJjaGl2ZS4gIFNhdmUgaXQgaW4gYSBmaWxlLCByZW1vdmUg YW55dGhpbmcgYmVmb3JlCiMgdGhpcyBsaW5lLCBhbmQgdGhlbiB1bnBhY2sgaXQgYnkgZW50 ZXJpbmcgInNoIGZpbGUiLiAgTm90ZSwgaXQgbWF5CiMgY3JlYXRlIGRpcmVjdG9yaWVzOyBm aWxlcyBhbmQgZGlyZWN0b3JpZXMgd2lsbCBiZSBvd25lZCBieSB5b3UgYW5kCiMgaGF2ZSBk ZWZhdWx0IHBlcm1pc3Npb25zLgojCiMgVGhpcyBhcmNoaXZlIGNvbnRhaW5zOgojCiMJaWdt cHByb3h5CiMJaWdtcHByb3h5L01ha2VmaWxlCiMJaWdtcHByb3h5L3BrZy1kZXNjcgojCWln bXBwcm94eS9kaXN0aW5mbwojCWlnbXBwcm94eS9maWxlcwojCWlnbXBwcm94eS9maWxlcy9w YXRjaC1mYnNkCiMJaWdtcHByb3h5L2ZpbGVzL2lnbXBwcm94eQojCmVjaG8gYyAtIGlnbXBw cm94eQpta2RpciAtcCBpZ21wcHJveHkgPiAvZGV2L251bGwgMj4mMQplY2hvIHggLSBpZ21w cHJveHkvTWFrZWZpbGUKc2VkICdzL15YLy8nID5pZ21wcHJveHkvTWFrZWZpbGUgPDwgJ0VO RC1vZi1pZ21wcHJveHkvTWFrZWZpbGUnClgjIE5ldyBwb3J0cyBjb2xsZWN0aW9uIG1ha2Vm aWxlIGZvcjogIGlnbXBwcm94eQpYIyBEYXRlIGNyZWF0ZWQ6ICAgICAgICA1IEphbnVhcnkg MjAwOQpYIyBXaG9tOiAgICAgICAgICAgICAgICBhc2FtaQpYIwpYIyAkRnJlZUJTRCQKWCMK WApYUE9SVE5BTUU9CWlnbXBwcm94eQpYUE9SVFZFUlNJT049CTAuMQpYI1BPUlRSRVZJU0lP Tj0JMgpYQ0FURUdPUklFUz0JbmV0ClhNQVNURVJfU0lURVM9CSR7TUFTVEVSX1NJVEVfU09V UkNFRk9SR0V9ClhNQVNURVJfU0lURV9TVUJESVI9CSR7UE9SVE5BTUV9ClhESVNUTkFNRT0J JHtQT1JUTkFNRX0tc3JjLSR7UE9SVFZFUlNJT059LWJldGEyClgKWE1BSU5UQUlORVI9CW1l bGlmYXJvQGlwZncucnUKWENPTU1FTlQ9CU11bHRpY2FzdCByb3V0ZXIgdXRpbGl6aW5nIElH TVAgZm9yd2FyZGluZwpYClhIT01FUEFHRT0JaHR0cDovL2lnbXBwcm94eS5zb3VyY2Vmb3Jn ZS5uZXQvClhXUktTUkM9CQkke1dSS0RJUn0vaWdtcHByb3h5L3NyYwpYClhNQU41PQkJaWdt cHByb3h5LmNvbmYuNQpYTUFOOD0JCWlnbXBwcm94eS44ClgKWFBMSVNUX0ZJTEVTPQlzYmlu L2lnbXBwcm94eSBcClgJCWV0Yy9pZ21wcHJveHkuY29uZi5zYW1wbGUgXApYCQlldGMvcmMu ZC9pZ21wcHJveHkKWApYZG8taW5zdGFsbDoKWAkke0lOU1RBTExfUFJPR1JBTX0gJHtXUktT UkN9L2lnbXBwcm94eSAke1BSRUZJWH0vc2JpbgpYCSR7SU5TVEFMTF9NQU59ICR7V1JLU1JD fS8uLi9kb2MvaWdtcHByb3h5LjggJHtQUkVGSVh9L21hbi9tYW44ClgJJHtJTlNUQUxMX01B Tn0gJHtXUktTUkN9Ly4uL2RvYy9pZ21wcHJveHkuY29uZi41ICR7UFJFRklYfS9tYW4vbWFu NQpYCSR7SU5TVEFMTF9EQVRBfSAke1dSS1NSQ30vaWdtcHByb3h5LmNvbmYgJHtQUkVGSVh9 L2V0Yy9pZ21wcHJveHkuY29uZi5zYW1wbGUKWAkke0lOU1RBTExfU0NSSVBUfSAke0ZJTEVT RElSfS9pZ21wcHJveHkgJHtQUkVGSVh9L2V0Yy9yYy5kClgKWC5pbmNsdWRlIDxic2QucG9y dC5taz4KRU5ELW9mLWlnbXBwcm94eS9NYWtlZmlsZQplY2hvIHggLSBpZ21wcHJveHkvcGtn LWRlc2NyCnNlZCAncy9eWC8vJyA+aWdtcHByb3h5L3BrZy1kZXNjciA8PCAnRU5ELW9mLWln bXBwcm94eS9wa2ctZGVzY3InClhpZ21wcHJveHkgaXMgYSBzaW1wbGUgbXVsdGljYXN0IHJv dXRpbmcgZGFlbW9uIGJhc2VkIG9uIG1yb3V0ZWQuIEl0IHVzZXMgSUdNUApYZm9yd2FyZGlu ZyB0byBkeW5hbWljYWxseSByb3V0ZSBtdWx0aWNhc3QgdHJhZmZpYy4gClhSZXFpdXJlcyBt dWx0aWNhc3QgZm9yd2FyZGluZyBlbmFibGVkClgKWFdXVzogaHR0cDovL2lnbXBwcm94eS5z b3VyY2Vmb3JnZS5uZXQvCkVORC1vZi1pZ21wcHJveHkvcGtnLWRlc2NyCmVjaG8geCAtIGln bXBwcm94eS9kaXN0aW5mbwpzZWQgJ3MvXlgvLycgPmlnbXBwcm94eS9kaXN0aW5mbyA8PCAn RU5ELW9mLWlnbXBwcm94eS9kaXN0aW5mbycKWE1ENSAoaWdtcHByb3h5LXNyYy0wLjEtYmV0 YTIudGFyLmd6KSA9IDJhNWE1OTQ4MGY0NGQ0YjE0MDc3YTZiNTMxOWU5OTQwClhTSEEyNTYg KGlnbXBwcm94eS1zcmMtMC4xLWJldGEyLnRhci5neikgPSA3ZjZlNTQ4NmU4NDgyNzE1MGM4 Y2E0MDI5NjdjOTYzMzRiYmQ2MmI5Zjc4NTE5NWM0ZWU4NGRhMTIxOGFiYjQwClhTSVpFIChp Z21wcHJveHktc3JjLTAuMS1iZXRhMi50YXIuZ3opID0gMzUxMDMKRU5ELW9mLWlnbXBwcm94 eS9kaXN0aW5mbwplY2hvIGMgLSBpZ21wcHJveHkvZmlsZXMKbWtkaXIgLXAgaWdtcHByb3h5 L2ZpbGVzID4gL2Rldi9udWxsIDI+JjEKZWNobyB4IC0gaWdtcHByb3h5L2ZpbGVzL3BhdGNo LWZic2QKc2VkICdzL15YLy8nID5pZ21wcHJveHkvZmlsZXMvcGF0Y2gtZmJzZCA8PCAnRU5E LW9mLWlnbXBwcm94eS9maWxlcy9wYXRjaC1mYnNkJwpYZGlmZiAtdXJOIE1ha2VmaWxlIGln bXBwcm94eS5uZXcvc3JjL01ha2VmaWxlClgtLS0gTWFrZWZpbGUJMjAwNS0wOC0yMCAxNjoz NDoxOC4wMDAwMDAwMDAgKzA0MDAKWCsrKyBpZ21wcHJveHkubmV3L3NyYy9NYWtlZmlsZQky MDA5LTAxLTA1IDAyOjM1OjU2LjAwMDAwMDAwMCArMDMwMApYQEAgLTEsMTIgKzEsMTIgQEAK WCAKWCAjQklORElSPS4uL2JpbgpYIEJJTkRJUj0vdXNyL2xvY2FsL2JpbgpYLUVUQ0RJUj0v ZXRjClgtTUFORElSPS91c3Ivc2hhcmUvbWFuClgrRVRDRElSPS91c3IvbG9jYWwvZXRjClgr TUFORElSPS91c3IvbG9jYWwvbWFuClggClggClggIyBDRkxBR1M9LWcKWC1DRkxBR1M9LU8K WCtDRkxBR1MrPS1PMiAtV2FsbCAtV2V4dHJhIC1mbm8tYnVpbHRpbi1sb2cKWCAKWCBkZWZh dWx0IDogYnVpbGQuaCBpZ21wcHJveHkKWCAKWEBAIC0yMSw4ICsyMSwxMSBAQApYIAljcCAu Li9kb2MvaWdtcHByb3h5LmNvbmYuNSAke01BTkRJUn0vbWFuNQpYIAlpZiBbICEgLWUgJHtF VENESVJ9L2lnbXBwcm94eS5jb25mIF07IHRoZW4gY3AgaWdtcHByb3h5LmNvbmYgJHtFVENE SVJ9OyBmaQpYIApYLWlnbXBwcm94eSA6IGlnbXBwcm94eS5vIGNvbmZpZy5vIGNvbmZyZWFk Lm8gcmVxdWVzdC5vIHVkcHNvY2subyBtY2dyb3VwLm8gcnR0YWJsZS5vIFwKWC0JCQlpZ21w Lm8gaWZ2Yy5vIGNhbGxvdXQubyBrZXJuLm8gc3lzbG9nLm8gbGliLm8gbXJvdXRlLWFwaS5v ClgrU1JDID0gaWdtcHByb3h5LmMgY29uZmlnLmMgY29uZnJlYWQuYyByZXF1ZXN0LmMgbWNn cm91cC5jIHJ0dGFibGUuYyBcClgrCQkJaWdtcC5jIGlmdmMuYyBjYWxsb3V0LmMga2Vybi5j IHN5c2xvZy5jIGxpYi5jIG1yb3V0ZS1hcGkuYwpYK09CSlMgPSAke1NSQzouYz0ub30KWCtp Z21wcHJveHk6IGJ1aWxkLmggJHtPQkpTfQpYKwljYyAke0NGTEFHU30gJHtPQkpTfSAtbyBp Z21wcHJveHkKWCAKWCBidWlsZC5oCTogIApYIAllY2hvICcjZGVmaW5lIEJVSUxEICInIGBk YXRlICsleSVtJWRgICciJyA+YnVpbGQuaApYZGlmZiAtdXJOIGNvbmZpZy5jIGlnbXBwcm94 eS5uZXcvc3JjL2NvbmZpZy5jClgtLS0gY29uZmlnLmMJMjAwNS0wNS0yNCAxOTo0OToyOS4w MDAwMDAwMDAgKzA0MDAKWCsrKyBpZ21wcHJveHkubmV3L3NyYy9jb25maWcuYwkyMDA5LTAx LTA1IDAxOjU4OjI3LjAwMDAwMDAwMCArMDMwMApYQEAgLTE3Nyw3ICsxNzcsNyBAQApYICAg ICB9ClggClggICAgIC8vIExvb3AgdGhyb3VnaCBhbGwgVklGcy4uLgpYLSAgICBmb3IgKCBJ eCA9IDA7IERwID0gZ2V0SWZCeUl4KCBJeCApOyBJeCsrICkgewpYKyAgICBmb3IgKCBJeCA9 IDA7IChEcCA9IGdldElmQnlJeCggSXggKSk7IEl4KysgKSB7ClggICAgICAgICBpZiAoIERw LT5JbkFkci5zX2FkZHIgJiYgISAoRHAtPkZsYWdzICYgSUZGX0xPT1BCQUNLKSApIHsKWCAK WCAgICAgICAgICAgICAvLyBOb3cgdHJ5IHRvIGZpbmQgYSBtYXRjaGluZyBjb25maWcuLi4K WEBAIC0yNTUsNyArMjU1LDcgQEAKWCAgICAgd2hpbGUodG9rZW4gIT0gTlVMTCkgewpYICAg ICAgICAgaWYoc3RyY21wKCJhbHRuZXQiLCB0b2tlbik9PTApIHsKWCAgICAgICAgICAgICAv LyBBbHRuZXQuLi4KWC0gICAgICAgICAgICBzdHJ1Y3QgaW5fYWRkciAgbmV0d29ya0FkZHI7 ClgrICAgICAgICAgICAgLy9zdHJ1Y3QgaW5fYWRkciAgbmV0d29ya0FkZHI7ClggClggICAg ICAgICAgICAgdG9rZW4gPSBuZXh0Q29uZmlnVG9rZW4oKTsKWCAgICAgICAgICAgICBJRl9E RUJVRyBsb2coTE9HX0RFQlVHLCAwLCAiQ29uZmlnOiBJRjogR290IGFsdG5ldCB0b2tlbiAl cy4iLHRva2VuKTsKWEBAIC0zNDcsNyArMzQ3LDcgQEAKWCAgICAgICAgIG1hc2sgPDw9ICgz MiAtIGJpdGNudCk7ClggICAgIH0KWCAKWC0gICAgaWYoYWRkciA9PSAtMSB8fCBhZGRyID09 IDApIHsKWCsgICAgaWYoYWRkciA9PSAodWludDMyKSAtMSB8fCBhZGRyID09IDApIHsKWCAg ICAgICAgIGxvZyhMT0dfV0FSTklORywgMCwgIlVuYWJsZSB0byBwYXJzZSBhZGRyZXNzIHRv a2VuICclcycuIiwgYWRkcnN0cik7ClggICAgICAgICByZXR1cm4gTlVMTDsKWCAgICAgfQpY ZGlmZiAtdXJOIGRlZnMuaCBpZ21wcHJveHkubmV3L3NyYy9kZWZzLmgKWC0tLSBkZWZzLmgJ MjAwNS0wOC0yMCAxNjo0NDo0Ny4wMDAwMDAwMDAgKzA0MDAKWCsrKyBpZ21wcHJveHkubmV3 L3NyYy9kZWZzLmgJMjAwOS0wMS0wNSAwMjoxMDoxMS4wMDAwMDAwMDAgKzAzMDAKWEBAIC00 MCwxMCArNDAsMTggQEAKWCAjaW5jbHVkZSA8c3RkbGliLmg+ClggI2luY2x1ZGUgPHN5c2xv Zy5oPgpYICNpbmNsdWRlIDxzaWduYWwuaD4KWC0KWCAjaW5jbHVkZSA8c3lzL3NvY2tldC5o PgpYKwpYKyNpZmRlZiBfX0ZyZWVCU0RfXwpYKyNpbmNsdWRlIDxzdHJpbmcuaD4KWCsjaW5j bHVkZSA8dW5pc3RkLmg+ClgrI2luY2x1ZGUgPGZjbnRsLmg+ClgrI2luY2x1ZGUgPHN5cy9p b2N0bC5oPgpYKwpYKyNlbHNlClggI2luY2x1ZGUgPHN5cy91bi5oPgpYICNpbmNsdWRlIDxz eXMvdGltZS5oPgpYKyNlbmRpZgpYIApYICNpbmNsdWRlIDxuZXQvaWYuaD4KWCAKWEBAIC01 MiwxNSArNjAsMjUgQEAKWCAgICAgI2luY2x1ZGUgPGxpbnV4L2luLmg+ClggICAgICNpbmNs dWRlIDxsaW51eC9tcm91dGUuaD4KWCAjZWxzZQpYKyNpZmRlZiBfX0ZyZWVCU0RfXwpYKyAg ICAjaW5jbHVkZSA8YWxpYXMuaD4KWCsgICAgI2luY2x1ZGUgPG5ldC9yb3V0ZS5oPgpYICAg ICAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgpYKyAgICAjaW5jbHVkZSA8bmV0aW5ldC9pcF9t cm91dGUuaD4KWCsjZW5kaWYKWCsgICAgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KWCsgICAg I2luY2x1ZGUgPG5ldGluZXQvaW5fc3lzdG0uaD4KWCAgICAgI2luY2x1ZGUgPG5ldGluZXQv aXAuaD4KWCAgICAgI2luY2x1ZGUgPG5ldGluZXQvaWdtcC5oPgpYICAgICAjaW5jbHVkZSA8 YXJwYS9pbmV0Lmg+ClggI2VuZGlmClggClgtClggLy8gVGhlIGRlZmF1bHQgcGF0aCBmb3Ig dGhlIGNvbmZpZyBmaWxlLi4uClgrI2lmZGVmIF9fRnJlZUJTRF9fClgrI2RlZmluZSAgICAg SUdNUFBST1hZX0NPTkZJR19GSUxFUEFUSCAgICAgIi91c3IvbG9jYWwvZXRjL2lnbXBwcm94 eS5jb25mIgpYKyNlbHNlClggI2RlZmluZSAgICAgSUdNUFBST1hZX0NPTkZJR19GSUxFUEFU SCAgICAgIi9ldGMvaWdtcHByb3h5LmNvbmYiClgrI2VuZGlmClggI2RlZmluZSAgICAgRU5B QkxFX0RFQlVHICAgIDEKWCAKWCAvKgpYQEAgLTcyLDkgKzkwLDMxIEBAClggClggI2RlZmlu ZSBNQVhfTUNfVklGUyAgICAzMiAgICAgLy8gISEhIGNoZWNrIHRoaXMgY29uc3QgaW4gdGhl IHNwZWNpZmljIGluY2x1ZGVzClggClgrI2lmbmRlZiBJR01QX01FTUJFUlNISVBfUVVFUlkK WCsjZGVmaW5lIElHTVBfTUVNQkVSU0hJUF9RVUVSWSBJR01QX0hPU1RfTUVNQkVSU0hJUF9R VUVSWQpYKyNlbmRpZgpYKyNpZm5kZWYgSUdNUF9WMV9NRU1CRVJTSElQX1JFUE9SVApYKyNk ZWZpbmUgSUdNUF9WMV9NRU1CRVJTSElQX1JFUE9SVCBJR01QX3YxX0hPU1RfTUVNQkVSU0hJ UF9SRVBPUlQKWCsjZW5kaWYKWCsjaWZuZGVmIElHTVBfVjJfTUVNQkVSU0hJUF9SRVBPUlQK WCsjZGVmaW5lIElHTVBfVjJfTUVNQkVSU0hJUF9SRVBPUlQgSUdNUF92Ml9IT1NUX01FTUJF UlNISVBfUkVQT1JUClgrI2VuZGlmClgrI2lmbmRlZiBJR01QX1YyX0xFQVZFX0dST1VQClgr I2RlZmluZSBJR01QX1YyX0xFQVZFX0dST1VQIElHTVBfSE9TVF9MRUFWRV9NRVNTQUdFClgr I2VuZGlmClgrClgrI2lmbmRlZiBJTkFERFJfQUxMUlRSU19HUk9VUApYKy8qIGFkZHJlc3Mg Zm9yIG11bHRpY2FzdCBtdHJhY2UgbXNnICovClgrI2RlZmluZSBJTkFERFJfQUxMUlRSU19H Uk9VUCAgICAodV9pbnQzMl90KTB4ZTAwMDAwMDIgICAvKiAyMjQuMC4wLjIgKi8KWCsjZW5k aWYKWCsKWCAvLyBVc2VmdWwgbWFjcm9zLi4gICAgICAgICAgClgrI2lmbmRlZiBNSU4KWCAj ZGVmaW5lIE1JTiggYSwgYiApICgoYSkgPCAoYikgPyAoYSkgOiAoYikpClgrI2VuZGlmClgr I2lmbmRlZiBNQVgKWCAjZGVmaW5lIE1BWCggYSwgYiApICgoYSkgPCAoYikgPyAoYikgOiAo YSkpClgrI2VuZGlmClggI2RlZmluZSBWQ01DKCBWYyApICAoc2l6ZW9mKCBWYyApIC8gc2l6 ZW9mKCAoVmMpWyAwIF0gKSkKWCAjZGVmaW5lIFZDRVAoIFZjICkgICgmKFZjKVsgVkNNQygg VmMgKSBdKQpYIApYQEAgLTEyNiw3ICsxNjYsMTIgQEAKWCAKWCAjZGVmaW5lCSAgICBJRl9E RUJVRwlpZihMb2cyU3RkZXJyICYgTE9HX0RFQlVHKQpYIApYLXZvaWQgbG9nKCBpbnQgU2Vy dmVyaXR5LCBpbnQgRXJybm8sIGNvbnN0IGNoYXIgKkZtdFN0LCAuLi4gKTsKWCsjaWZkZWYg REVWRUxfTE9HR0lORwpYKyNkZWZpbmUgbG9nKFNldmVyaXR5LCBFcnJubywgRm10LCBhcmdz Li4uKQlfbG9nKChTZXZlcml0eSksIChFcnJubyksIF9fRlVOQ1RJT05fXywgX19MSU5FX18s IChGbXQpLCAjI2FyZ3MpClgrdm9pZCBfbG9nKCBpbnQgU2VydmVyaXR5LCBpbnQgRXJybm8s IGNvbnN0IGNoYXIgKmZ1bmMsIGludCBsaW5lLCBjb25zdCBjaGFyICpGbXRTdCwgLi4uKTsK WCsjZWxzZQpYK3ZvaWQgbG9nKCBpbnQgU2VydmVyaXR5LCBpbnQgRXJybm8sIGNvbnN0IGNo YXIgKkZtdFN0LCAuLi4pOwpYKyNlbmRpZgpYIApYIC8qIGlmdmMuYwpYICAqLwpYQEAgLTE5 Niw2ICsyNDEsNyBAQApYIHN0cnVjdCBJZkRlc2MgKmdldElmQnlOYW1lKCBjb25zdCBjaGFy ICpJZk5hbWUgKTsKWCBzdHJ1Y3QgSWZEZXNjICpnZXRJZkJ5SXgoIHVuc2lnbmVkIEl4ICk7 Clggc3RydWN0IElmRGVzYyAqZ2V0SWZCeUFkZHJlc3MoIHVpbnQzMiBJeCApOwpYK2ludCBp c0FkcmVzc1ZhbGlkRm9ySWYoIHN0cnVjdCBJZkRlc2MqIGludHJmYWNlLCB1aW50MzIgaXBh ZGRyICk7ClggClggLyogbXJvdXRlLWFwaS5jClggICovClhAQCAtMjM1LDcgKzI4MSw3IEBA ClggY2hhciAgICpmbXRJbkFkciggY2hhciAqU3QsIHN0cnVjdCBpbl9hZGRyIEluQWRyICk7 ClggY2hhciAgICppbmV0Rm10KHVpbnQzMiBhZGRyLCBjaGFyICpzKTsKWCBjaGFyICAgKmlu ZXRGbXRzKHVpbnQzMiBhZGRyLCB1aW50MzIgbWFzaywgY2hhciAqcyk7ClgtaW50ICAgICBp bmV0Q2tzdW0odV9zaG9ydCAqYWRkciwgdV9pbnQgbGVuKTsKWCtpbnQgICAgIGluZXRDaGtz dW0odV9zaG9ydCAqYWRkciwgdV9pbnQgbGVuKTsKWCAKWCAvKiBrZXJuLmMKWCAgKi8KWEBA IC0yNjQsNyArMzEwLDcgQEAKWCB2b2lkIGluaXRSb3V0ZVRhYmxlKCk7Clggdm9pZCBjbGVh ckFsbFJvdXRlcygpOwpYIGludCBpbnNlcnRSb3V0ZSh1aW50MzIgZ3JvdXAsIGludCBpZngp OwpYLWludCBhY3RpdmF0ZVJvdXRlKHVpbnQzMiBncm91cCwgdWludDMyIG9yaWdpbkFkZHIp OwpYK2ludCBhY3RpdmF0ZVJvdXRlKHVpbnQzMiBncm91cCwgdWludDMyIG9yaWdpbkFkZHIs IGludCBkb3duSWYpOwpYIHZvaWQgYWdlQWN0aXZlUm91dGVzKCk7Clggdm9pZCBzZXRSb3V0 ZUxhc3RNZW1iZXJNb2RlKHVpbnQzMiBncm91cCk7ClggaW50IGxhc3RNZW1iZXJHcm91cEFn ZSh1aW50MzIgZ3JvdXApOwpYZGlmZiAtdXJOIGlmdmMuYyBpZ21wcHJveHkubmV3L3NyYy9p ZnZjLmMKWC0tLSBpZnZjLmMJMjAwNS0wNS0yNCAxOTo0OToxOC4wMDAwMDAwMDAgKzA0MDAK WCsrKyBpZ21wcHJveHkubmV3L3NyYy9pZnZjLmMJMjAwOS0wMS0wNSAwMjoyNDowMi4wMDAw MDAwMDAgKzAzMDAKWEBAIC0zMiw3ICszMiwxMSBAQApYICovClggClggI2luY2x1ZGUgImRl ZnMuaCIKWCsjaWZkZWYgX19GcmVlQlNEX18KWCsjaW5jbHVkZSA8aWZhZGRycy5oPgpYKyNl bHNlClggI2luY2x1ZGUgPGxpbnV4L3NvY2tpb3MuaD4KWCsjZW5kaWYKWCAKWCBzdHJ1Y3Qg SWZEZXNjIElmRGVzY1ZjWyBNQVhfSUYgXSwgKklmRGVzY0VwID0gSWZEZXNjVmM7ClggClhA QCAtNDIsMTE5ICs0Niw5MSBAQApYICoqICAgICAgICAgIApYICovClggdm9pZCBidWlsZElm VmMoKSB7ClgtICAgIHN0cnVjdCBpZnJlcSBJZlZjWyBzaXplb2YoIElmRGVzY1ZjICkgLyBz aXplb2YoIElmRGVzY1ZjWyAwIF0gKSAgXTsKWC0gICAgc3RydWN0IGlmcmVxICpJZkVwOwpY KyAgICBzdHJ1Y3QgaWZhZGRycyAqaWZhcCwgKmlmYTsKWCsgICAgc3RydWN0IElmRGVzYyAq aWZwOwpYKyAgICBzdHJ1Y3QgU3VibmV0TGlzdCAqbmV0OwpYIApYLSAgICBpbnQgU29jazsK WC0KWC0gICAgaWYgKCAoU29jayA9IHNvY2tldCggQUZfSU5FVCwgU09DS19ER1JBTSwgMCAp KSA8IDAgKQpYLSAgICAgICAgbG9nKCBMT0dfRVJSLCBlcnJubywgIlJBVyBzb2NrZXQgb3Bl biIgKTsKWC0KWC0gICAgLyogZ2V0IElmIHZlY3RvcgpYLSAgICAgKi8KWC0gICAgewpYLSAg ICAgICAgc3RydWN0IGlmY29uZiBJb0N0bFJlcTsKWC0KWC0gICAgICAgIElvQ3RsUmVxLmlm Y19idWYgPSAodm9pZCAqKUlmVmM7ClgtICAgICAgICBJb0N0bFJlcS5pZmNfbGVuID0gc2l6 ZW9mKCBJZlZjICk7ClgtClgtICAgICAgICBpZiAoIGlvY3RsKCBTb2NrLCBTSU9DR0lGQ09O RiwgJklvQ3RsUmVxICkgPCAwICkKWC0gICAgICAgICAgICBsb2coIExPR19FUlIsIGVycm5v LCAiaW9jdGwgU0lPQ0dJRkNPTkYiICk7ClgtClgtICAgICAgICBJZkVwID0gKHZvaWQgKiko KGNoYXIgKilJZlZjICsgSW9DdGxSZXEuaWZjX2xlbik7ClgtICAgIH0KWCsgICAgaWYgKGdl dGlmYWRkcnMoJmlmYXApIDwgMCkKWCsJbG9nKCBMT0dfRVJSLCBlcnJubywgImdldGlmYWRk cnMiICk7ClggClggICAgIC8qIGxvb3Agb3ZlciBpbnRlcmZhY2VzIGFuZCBjb3B5IGludGVy ZmFjZSBpbmZvIHRvIElmRGVzY1ZjClggICAgICAqLwpYICAgICB7ClgtICAgICAgICBzdHJ1 Y3QgaWZyZXEgICpJZlB0OwpYLSAgICAgICAgc3RydWN0IElmRGVzYyAqSWZEcDsKWC0KWCAg ICAgICAgIC8vIFRlbXAga2VlcGVycyBvZiBpbnRlcmZhY2UgcGFyYW1zLi4uClggICAgICAg ICB1aW50MzIgYWRkciwgc3VibmV0LCBtYXNrOwpYIApYLSAgICAgICAgZm9yICggSWZQdCA9 IElmVmM7IElmUHQgPCBJZkVwOyBJZlB0KysgKSB7ClgtICAgICAgICAgICAgc3RydWN0IGlm cmVxIElmUmVxOwpYKyAgICAgICAgZm9yIChpZmEgPSBpZmFwOyBpZmE7IGlmYSA9IGlmYS0+ aWZhX25leHQpIHsKWCAgICAgICAgICAgICBjaGFyIEZtdEJ1WyAzMiBdOwpYIApYLSAgICAg ICAgICAgIHN0cm5jcHkoIElmRGVzY0VwLT5OYW1lLCBJZlB0LT5pZnJfbmFtZSwgc2l6ZW9m KCBJZkRlc2NFcC0+TmFtZSApICk7ClgtClgtICAgICAgICAgICAgLy8gQ3VycmVudGx5IGRv bid0IHNldCBhbnkgYWxsb3dlZCBuZXRzLi4uClgtICAgICAgICAgICAgLy9JZkRlc2NFcC0+ YWxsb3dlZG5ldHMgPSBOVUxMOwpYLQpYLSAgICAgICAgICAgIC8vIFNldCB0aGUgaW5kZXgg dG8gLTEgYnkgZGVmYXVsdC4KWC0gICAgICAgICAgICBJZkRlc2NFcC0+aW5kZXggPSAtMTsK WCsJICAgIGlmIChJZkRlc2NFcCA+PSAmSWZEZXNjVmNbIE1BWF9JRiBdKSB7ClgrCQlsb2co TE9HX1dBUk5JTkcsIDAsICJUb28gbWFueSBpbnRlcmZhY2VzLCBza2lwcGluZyAlZCIsIGlm YS0+aWZhX25hbWUpOwpYKyAgICAgICAgICAgICAgICBjb250aW51ZTsKWCsJICAgIH0KWCAK WC0gICAgICAgICAgICAvKiBkb24ndCByZXRyaWV2ZSBtb3JlIGluZm8gZm9yIG5vbi1JUCBp bnRlcmZhY2VzClgrICAgICAgICAgICAgLyogaWdub3JlIG5vbi1JUCBpbnRlcmZhY2VzClgg ICAgICAgICAgICAgICovClgtICAgICAgICAgICAgaWYgKCBJZlB0LT5pZnJfYWRkci5zYV9m YW1pbHkgIT0gQUZfSU5FVCApIHsKWC0gICAgICAgICAgICAgICAgSWZEZXNjRXAtPkluQWRy LnNfYWRkciA9IDA7ICAvKiBtYXJrIGFzIG5vbi1JUCBpbnRlcmZhY2UgKi8KWC0gICAgICAg ICAgICAgICAgSWZEZXNjRXArKzsKWCsgICAgICAgICAgICBpZiAoIGlmYS0+aWZhX2FkZHIt PnNhX2ZhbWlseSAhPSBBRl9JTkVUICkKWCAgICAgICAgICAgICAgICAgY29udGludWU7Clgt ICAgICAgICAgICAgfQpYLQpYLSAgICAgICAgICAgIC8vIEdldCB0aGUgaW50ZXJmYWNlIGFk cmVzcy4uLgpYLSAgICAgICAgICAgIElmRGVzY0VwLT5JbkFkciA9ICgoc3RydWN0IHNvY2th ZGRyX2luICopJklmUHQtPmlmcl9hZGRyKS0+c2luX2FkZHI7ClgtICAgICAgICAgICAgYWRk ciA9IElmRGVzY0VwLT5JbkFkci5zX2FkZHI7ClgtClgtICAgICAgICAgICAgbWVtY3B5KCBJ ZlJlcS5pZnJfbmFtZSwgSWZEZXNjRXAtPk5hbWUsIHNpemVvZiggSWZSZXEuaWZyX25hbWUg KSApOwpYLQpYLSAgICAgICAgICAgIC8vIEdldCB0aGUgc3VibmV0IG1hc2suLi4KWC0gICAg ICAgICAgICBpZiAoaW9jdGwoU29jaywgU0lPQ0dJRk5FVE1BU0ssICZJZlJlcSApIDwgMCkK WC0gICAgICAgICAgICAgICAgbG9nKExPR19FUlIsIGVycm5vLCAiaW9jdGwgU0lPQ0dJRk5F VE1BU0sgZm9yICVzIiwgSWZSZXEuaWZyX25hbWUpOwpYLSAgICAgICAgICAgIG1hc2sgPSAo KHN0cnVjdCBzb2NrYWRkcl9pbiAqKSZJZlJlcS5pZnJfYWRkciktPnNpbl9hZGRyLnNfYWRk cjsKWC0gICAgICAgICAgICBzdWJuZXQgPSBhZGRyICYgbWFzazsKWCAKWC0gICAgICAgICAg ICAvLyBHZXQgdGhlIHBoeXNpY2FsIGluZGV4IG9mIHRoZSBJbnRlcmZhY2UKWC0gICAgICAg ICAgICBpZiAoaW9jdGwoU29jaywgU0lPQ0dJRklOREVYLCAmSWZSZXEgKSA8IDApClgtICAg ICAgICAgICAgICAgIGxvZyhMT0dfRVJSLCBlcnJubywgImlvY3RsIFNJT0NHSUZJTkRFWCBm b3IgJXMiLCBJZlJlcS5pZnJfbmFtZSk7ClgtICAgICAgICAgICAgClgtICAgICAgICAgICAg bG9nKExPR19ERUJVRywgMCwgIlBoeXNpY2FsIEluZGV4IHZhbHVlIG9mIElGICclcycgaXMg JWQiLApYLSAgICAgICAgICAgICAgICBJZkRlc2NFcC0+TmFtZSwgSWZSZXEuaWZyX2lmaW5k ZXgpOwpYKwkgICAgaWYgKChpZnAgPSBnZXRJZkJ5TmFtZShpZmEtPmlmYV9uYW1lKSkgPT0g TlVMTCkgewpYIApYKwkJc3RybGNweSggSWZEZXNjRXAtPk5hbWUsIGlmYS0+aWZhX25hbWUs IHNpemVvZiggSWZEZXNjRXAtPk5hbWUgKSApOwpYIApYLSAgICAgICAgICAgIC8qIGdldCBp ZiBmbGFncwpYLSAgICAgICAgICAgICoqClgtICAgICAgICAgICAgKiogdHlwaWNhbCBmbGFn czoKWC0gICAgICAgICAgICAqKiBsbyAgICAweDAwNDkgLT4gUnVubmluZywgTG9vcGJhY2ss IFVwClgtICAgICAgICAgICAgKiogZXRoeCAgMHgxMDQzIC0+IE11bHRpY2FzdCwgUnVubmlu ZywgQnJvYWRjYXN0LCBVcApYLSAgICAgICAgICAgICoqIGlwcHB4IDB4MDA5MSAtPiBOb0Fy cCwgUG9pbnRUb1BvaW50LCBVcCAKWC0gICAgICAgICAgICAqKiBncmV4ICAweDAwQzEgLT4g Tm9BcnAsIFJ1bm5pbmcsIFVwClgtICAgICAgICAgICAgKiogaXBpcHggMHgwMEMxIC0+IE5v QXJwLCBSdW5uaW5nLCBVcApYLSAgICAgICAgICAgICovClgtICAgICAgICAgICAgaWYgKCBp b2N0bCggU29jaywgU0lPQ0dJRkZMQUdTLCAmSWZSZXEgKSA8IDAgKQpYLSAgICAgICAgICAg ICAgICBsb2coIExPR19FUlIsIGVycm5vLCAiaW9jdGwgU0lPQ0dJRkZMQUdTIiApOwpYKwkJ bG9nKExPR19ERUJVRywgMCwgIkFkZGluZyBQaHlzaWNhbCBJbmRleCB2YWx1ZSBvZiBJRiAn JXMnIGlzICVkIiwKWCsJCSAgICBJZkRlc2NFcC0+TmFtZSwgaWZfbmFtZXRvaW5kZXgoSWZE ZXNjRXAtPk5hbWUpKTsKWCAKWC0gICAgICAgICAgICBJZkRlc2NFcC0+RmxhZ3MgPSBJZlJl cS5pZnJfZmxhZ3M7ClgrCQkvLyBTZXQgdGhlIGluZGV4IHRvIC0xIGJ5IGRlZmF1bHQuClgr CQlJZkRlc2NFcC0+aW5kZXggPSAtMTsKWCsKWCsJCS8vIEdldCB0aGUgaW50ZXJmYWNlIGFk cmVzcy4uLgpYKwkJSWZEZXNjRXAtPkluQWRyID0gKChzdHJ1Y3Qgc29ja2FkZHJfaW4gKilp ZmEtPmlmYV9hZGRyKS0+c2luX2FkZHI7ClgrClgrCQkvKiBnZXQgaWYgZmxhZ3MKWCsJCSoq ClgrCQkqKiB0eXBpY2FsIGZsYWdzOgpYKwkJKiogbG8gICAgMHgwMDQ5IC0+IFJ1bm5pbmcs IExvb3BiYWNrLCBVcApYKwkJKiogZXRoeCAgMHgxMDQzIC0+IE11bHRpY2FzdCwgUnVubmlu ZywgQnJvYWRjYXN0LCBVcApYKwkJKiogaXBwcHggMHgwMDkxIC0+IE5vQXJwLCBQb2ludFRv UG9pbnQsIFVwIApYKwkJKiogZ3JleCAgMHgwMEMxIC0+IE5vQXJwLCBSdW5uaW5nLCBVcApY KwkJKiogaXBpcHggMHgwMEMxIC0+IE5vQXJwLCBSdW5uaW5nLCBVcApYKwkJKi8KWCsKWCsJ CUlmRGVzY0VwLT5GbGFncyA9IGlmYS0+aWZhX2ZsYWdzOwpYKwpYKwkJLy8gU2V0IHRoZSBk ZWZhdWx0IHBhcmFtcyBmb3IgdGhlIElGLi4uClgrCQlJZkRlc2NFcC0+c3RhdGUgICAgICAg ICA9IElGX1NUQVRFX0RPV05TVFJFQU07ClgrCQlJZkRlc2NFcC0+cm9idXN0bmVzcyAgICA9 IERFRkFVTFRfUk9CVVNUTkVTUzsKWCsJCUlmRGVzY0VwLT50aHJlc2hvbGQgICAgID0gREVG QVVMVF9USFJFU0hPTEQ7ICAgLyogdHRsIGxpbWl0ICovClgrCQlJZkRlc2NFcC0+cmF0ZWxp bWl0ICAgICA9IERFRkFVTFRfUkFURUxJTUlUOyAKWCsJCUlmRGVzY0VwLT5hbGxvd2VkbmV0 cyAgID0gTlVMTDsKWCsJCWlmcCA9IElmRGVzY0VwKys7ClgrCSAgICB9ClggClggICAgICAg ICAgICAgLy8gSW5zZXJ0IHRoZSB2ZXJpZmllZCBzdWJuZXQgYXMgYW4gYWxsb3dlZCBuZXQu Li4KWC0gICAgICAgICAgICBJZkRlc2NFcC0+YWxsb3dlZG5ldHMgPSAoc3RydWN0IFN1Ym5l dExpc3QgKiltYWxsb2Moc2l6ZW9mKHN0cnVjdCBTdWJuZXRMaXN0KSk7ClgtICAgICAgICAg ICAgaWYoSWZEZXNjRXAtPmFsbG93ZWRuZXRzID09IE5VTEwpIGxvZyhMT0dfRVJSLCAwLCAi T3V0IG9mIG1lbW9yeSAhIik7ClgrICAgICAgICAgICAgYWRkciA9ICgoc3RydWN0IHNvY2th ZGRyX2luICopaWZhLT5pZmFfYWRkciktPnNpbl9hZGRyLnNfYWRkcjsKWCsgICAgICAgICAg ICBtYXNrID0gKChzdHJ1Y3Qgc29ja2FkZHJfaW4gKilpZmEtPmlmYV9uZXRtYXNrKS0+c2lu X2FkZHIuc19hZGRyOwpYKyAgICAgICAgICAgIHN1Ym5ldCA9IGFkZHIgJiBtYXNrOwpYKwpY KyAgICAgICAgICAgIG5ldCA9IChzdHJ1Y3QgU3VibmV0TGlzdCAqKW1hbGxvYyhzaXplb2Yo c3RydWN0IFN1Ym5ldExpc3QpKTsKWCsgICAgICAgICAgICBpZihuZXQgPT0gTlVMTCkgbG9n KExPR19FUlIsIDAsICJPdXQgb2YgbWVtb3J5ICEiKTsKWCAgICAgICAgICAgICAKWCAgICAg ICAgICAgICAvLyBDcmVhdGUgdGhlIG5ldHdvcmsgYWRkcmVzcyBmb3IgdGhlIElGLi4KWC0g ICAgICAgICAgICBJZkRlc2NFcC0+YWxsb3dlZG5ldHMtPm5leHQgPSBOVUxMOwpYLSAgICAg ICAgICAgIElmRGVzY0VwLT5hbGxvd2VkbmV0cy0+c3VibmV0X21hc2sgPSBtYXNrOwpYLSAg ICAgICAgICAgIElmRGVzY0VwLT5hbGxvd2VkbmV0cy0+c3VibmV0X2FkZHIgPSBzdWJuZXQ7 ClgtClgtICAgICAgICAgICAgLy8gU2V0IHRoZSBkZWZhdWx0IHBhcmFtcyBmb3IgdGhlIElG Li4uClgtICAgICAgICAgICAgSWZEZXNjRXAtPnN0YXRlICAgICAgICAgPSBJRl9TVEFURV9E T1dOU1RSRUFNOwpYLSAgICAgICAgICAgIElmRGVzY0VwLT5yb2J1c3RuZXNzICAgID0gREVG QVVMVF9ST0JVU1RORVNTOwpYLSAgICAgICAgICAgIElmRGVzY0VwLT50aHJlc2hvbGQgICAg ID0gREVGQVVMVF9USFJFU0hPTEQ7ICAgLyogdHRsIGxpbWl0ICovClgtICAgICAgICAgICAg SWZEZXNjRXAtPnJhdGVsaW1pdCAgICAgPSBERUZBVUxUX1JBVEVMSU1JVDsgClgrICAgICAg ICAgICAgbmV0LT5uZXh0ID0gaWZwLT5hbGxvd2VkbmV0czsKWCsgICAgICAgICAgICBuZXQt PnN1Ym5ldF9tYXNrID0gbWFzazsKWCsgICAgICAgICAgICBuZXQtPnN1Ym5ldF9hZGRyID0g c3VibmV0OwpYKyAgICAgICAgICAgIGlmcC0+YWxsb3dlZG5ldHMgPSBuZXQ7ClggICAgICAg ICAgICAgClgtClggICAgICAgICAgICAgLy8gRGVidWcgbG9nIHRoZSByZXN1bHQuLi4KWCAg ICAgICAgICAgICBJRl9ERUJVRyBsb2coIExPR19ERUJVRywgMCwgImJ1aWxkSWZWYzogSW50 ZXJmYWNlICVzIEFkZHI6ICVzLCBGbGFnczogMHglMDR4LCBOZXR3b3JrOiAlcyIsClgtICAg ICAgICAgICAgICAgICBJZkRlc2NFcC0+TmFtZSwKWC0gICAgICAgICAgICAgICAgIGZtdElu QWRyKCBGbXRCdSwgSWZEZXNjRXAtPkluQWRyICksClgtICAgICAgICAgICAgICAgICBJZkRl c2NFcC0+RmxhZ3MsClgrICAgICAgICAgICAgICAgICBpZnAtPk5hbWUsClgrICAgICAgICAg ICAgICAgICBmbXRJbkFkciggRm10QnUsIGlmcC0+SW5BZHIgKSwKWCsgICAgICAgICAgICAg ICAgIGlmcC0+RmxhZ3MsClggICAgICAgICAgICAgICAgICBpbmV0Rm10cyhzdWJuZXQsbWFz aywgczEpKTsKWCAKWC0gICAgICAgICAgICBJZkRlc2NFcCsrOwpYICAgICAgICAgfSAKWC0g ICAgfQpYIApYLSAgICBjbG9zZSggU29jayApOwpYKyAgICB9ClgrICAgIGZyZWVpZmFkZHJz KGlmYXApOwpYIH0KWCAKWCAvKgpYZGlmZiAtdXJOIGlnbXAuYyBpZ21wcHJveHkubmV3L3Ny Yy9pZ21wLmMKWC0tLSBpZ21wLmMJMjAwNS0wNS0yNCAxOTo0OToxNi4wMDAwMDAwMDAgKzA0 MDAKWCsrKyBpZ21wcHJveHkubmV3L3NyYy9pZ21wLmMJMjAwOS0wMS0wNSAwMjowODoxOS4w MDAwMDAwMDAgKzAzMDAKWEBAIC0xMDUsNyArMTA1LDcgQEAKWCAgICAgc3RydWN0IGlnbXAg KmlnbXA7ClggICAgIGludCBpcGRhdGFsZW4sIGlwaGRybGVuLCBpZ21wZGF0YWxlbjsKWCAK WC0gICAgaWYgKHJlY3ZsZW4gPCBzaXplb2Yoc3RydWN0IGlwKSkgewpYKyAgICBpZiAocmVj dmxlbiA8IChpbnQpIHNpemVvZihzdHJ1Y3QgaXApKSB7ClggICAgICAgICBsb2coTE9HX1dB Uk5JTkcsIDAsClggICAgICAgICAgICAgInJlY2VpdmVkIHBhY2tldCB0b28gc2hvcnQgKCV1 IGJ5dGVzKSBmb3IgSVAgaGVhZGVyIiwgcmVjdmxlbik7ClggICAgICAgICByZXR1cm47ClhA QCAtMTI4LDYgKzEyOCw3IEBAClggICAgICAgICB9ClggICAgICAgICBlbHNlIHsKWCAgICAg ICAgICAgICBzdHJ1Y3QgSWZEZXNjICpjaGVja1ZJRjsKWCsJICAgIGludCBkb3duSWYgPSAt MTsKWCAgICAgICAgICAgICAKWCAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgc291cmNl IGFkZHJlc3MgbWF0Y2hlcyBhIHZhbGlkIGFkZHJlc3Mgb24gdXBzdHJlYW0gdmlmLgpYICAg ICAgICAgICAgIGNoZWNrVklGID0gZ2V0SWZCeUl4KCB1cFN0cmVhbVZpZiApOwpYQEAgLTE0 MSwyMyArMTQyLDQ0IEBAClggICAgICAgICAgICAgICAgIHJldHVybjsKWCAgICAgICAgICAg ICB9ClggICAgICAgICAgICAgZWxzZSBpZighaXNBZHJlc3NWYWxpZEZvcklmKGNoZWNrVklG LCBzcmMpKSB7ClgtICAgICAgICAgICAgICAgIGxvZyhMT0dfV0FSTklORywgMCwgIlRoZSBz b3VyY2UgYWRkcmVzcyAlcyBmb3IgZ3JvdXAgJXMsIGlzIG5vdCBpbiBhbnkgdmFsaWQgbmV0 IGZvciB1cHN0cmVhbSBWSUYuIiwKWC0gICAgICAgICAgICAgICAgICAgIGluZXRGbXQoc3Jj LCBzMSksIGluZXRGbXQoZHN0LCBzMikpOwpYLSAgICAgICAgICAgICAgICByZXR1cm47Clgr CQl1bnNpZ25lZCBJeDsKWCsJCXN0cnVjdCBJZkRlc2MgKkRwOwpYKwkJZm9yICggSXggPSAw OyAoRHAgPSBnZXRJZkJ5SXgoIEl4ICkpOyBJeCsrICkgewpYKwkJICAgIGlmICgoRHAtPnN0 YXRlID09IElGX1NUQVRFX0RPV05TVFJFQU0pICYmaXNBZHJlc3NWYWxpZEZvcklmKERwLCBz cmMpKSB7ClgrCQkJZG93bklmID0gSXg7ClgrCQkJYnJlYWs7ClgrCQkgICAgfQpYKwkJfQpY KwkJClgrCQlpZiAoZG93bklmID09IC0xKSB7ClgrICAgICAgICAgICAgICAgICAgICBsb2co TE9HX1dBUk5JTkcsIDAsICJUaGUgc291cmNlIGFkZHJlc3MgJXMgZm9yIGdyb3VwICVzLCBp cyBub3QgaW4gYW55IHZhbGlkIG5ldCBmb3IgdXBzdHJlYW0gVklGLiIsClgrICAgICAgICAg ICAgICAgICAgICAgICAgaW5ldEZtdChzcmMsIHMxKSwgaW5ldEZtdChkc3QsIHMyKSk7Clgr ICAgICAgICAgICAgICAgICAgICByZXR1cm47ClgrCQl9IGVsc2UgewpYKwkJICAgIGxvZyhM T0dfTk9USUNFLCAwLCAiVGhlIHNvdXJjZSBhZGRyZXNzICVzIGZvciBncm91cCAlcywgaXMg dmFsaWQgRE9XTlNUUkVBTSBWSUYgIyVkLiIsClgrCQkgICAgICAgIGluZXRGbXQoc3JjLCBz MSksIGluZXRGbXQoZHN0LCBzMiksIGRvd25JZik7ClgrCQl9ClggICAgICAgICAgICAgfQpY ICAgICAgICAgICAgIApYICAgICAgICAgICAgIC8vIEFjdGl2YXRlIHRoZSByb3V0ZS4KWC0g ICAgICAgICAgICBJRl9ERUJVRyBsb2coTE9HX0RFQlVHLCAwLCAiUm91dGUgYWN0aXZhdGUg cmVxdWVzdCBmcm9tICVzIHRvICVzIiwKWC0gICAgICAgICAgICAgICAgICAgICAgICAgaW5l dEZtdChzcmMsczEpLCBpbmV0Rm10KGRzdCxzMikpOwpYLSAgICAgICAgICAgIGFjdGl2YXRl Um91dGUoZHN0LCBzcmMpOwpYKyAgICAgICAgICAgIElGX0RFQlVHIGxvZyhMT0dfREVCVUcs IDAsICJSb3V0ZSBhY3RpdmF0ZSByZXF1ZXN0IGZyb20gJXMgdG8gJXMsIGRvd25JZiAlZCIs ClgrICAgICAgICAgICAgICAgICAgICAgICAgIGluZXRGbXQoc3JjLHMxKSwgaW5ldEZtdChk c3QsczIpLCBkb3duSWYpOwpYKyAgICAgICAgICAgIGFjdGl2YXRlUm91dGUoZHN0LCBzcmMs IGRvd25JZik7ClggICAgICAgICAgICAgClggClggICAgICAgICB9ClggICAgICAgICByZXR1 cm47ClggICAgIH0KWCAKWCsgICAgbG9nKExPR19ERUJVRywgMCwgIlBhY2tldCBmcm9tICVz OiBwcm90bzogJWQgaGRybGVuOiAlZCBpcGxlbjogJWQgb3IgJWQiLCAKWCsJCSAgICBpbmV0 Rm10KHNyYywgczEpLCBpcC0+aXBfcCwgaXAtPmlwX2hsIDw8IDIsIGlwLT5pcF9sZW4sIG50 b2hzKGlwLT5pcF9sZW4pKTsKWCsKWCAgICAgaXBoZHJsZW4gID0gaXAtPmlwX2hsIDw8IDI7 ClgrI2lmZGVmIFJBV19JTlBVVF9JU19SQVcKWCAgICAgaXBkYXRhbGVuID0gbnRvaHMoaXAt PmlwX2xlbikgLSBpcGhkcmxlbjsKWCsjZWxzZQpYKyAgICBpcGRhdGFsZW4gPSBpcC0+aXBf bGVuOwpYKyNlbmRpZiAgICAKWCAKWCAgICAgaWYgKGlwaGRybGVuICsgaXBkYXRhbGVuICE9 IHJlY3ZsZW4pIHsKWCAgICAgICAgIGxvZyhMT0dfV0FSTklORywgMCwKWEBAIC0xNzYsOSAr MTk4LDkgQEAKWCAgICAgICAgIHJldHVybjsKWCAgICAgfQpYIApYLSAgICBsb2coTE9HX05P VElDRSwgMCwgIlJFQ1YgJXMgZnJvbSAlLTE1cyB0byAlcyIsClgrICAgIGxvZyhMT0dfTk9U SUNFLCAwLCAiUkVDViAlcyBmcm9tICUtMTVzIHRvICVzIChpcF9obCAlZCwgZGF0YSAlZCki LApYICAgICAgICAgaWdtcFBhY2tldEtpbmQoaWdtcC0+aWdtcF90eXBlLCBpZ21wLT5pZ21w X2NvZGUpLApYLSAgICAgICAgaW5ldEZtdChzcmMsIHMxKSwgaW5ldEZtdChkc3QsIHMyKSAp OwpYKyAgICAgICAgaW5ldEZtdChzcmMsIHMxKSwgaW5ldEZtdChkc3QsIHMyKSwgaXBoZHJs ZW4sIGlwZGF0YWxlbik7ClggClggICAgIHN3aXRjaCAoaWdtcC0+aWdtcF90eXBlKSB7Clgg ICAgIGNhc2UgSUdNUF9WMV9NRU1CRVJTSElQX1JFUE9SVDoKWEBAIC0xOTAsMTMgKzIxMiwx MCBAQApYICAgICAgICAgYWNjZXB0TGVhdmVNZXNzYWdlKHNyYywgZ3JvdXApOwpYICAgICAg ICAgcmV0dXJuOwpYICAgICAKWC0gICAgICAgIC8qClggICAgIGNhc2UgSUdNUF9NRU1CRVJT SElQX1FVRVJZOgpYICAgICAgICAgLy9hY2NlcHRfbWVtYmVyc2hpcF9xdWVyeShzcmMsIGRz dCwgZ3JvdXAsIGlnbXAtPmlnbXBfY29kZSk7ClggICAgICAgICByZXR1cm47ClggClgtICAg ICovClgtClggICAgIGRlZmF1bHQ6ClggICAgICAgICBsb2coTE9HX0lORk8sIDAsClggICAg ICAgICAgICAgImlnbm9yaW5nIHVua25vd24gSUdNUCBtZXNzYWdlIHR5cGUgJXggZnJvbSAl cyB0byAlcyIsClhAQCAtMjIwLDggKzIzOSw5IEBAClggICAgIGlwLT5pcF9zcmMuc19hZGRy ICAgICAgID0gc3JjOwpYICAgICBpcC0+aXBfZHN0LnNfYWRkciAgICAgICA9IGRzdDsKWCAg ICAgaXAtPmlwX2xlbiAgICAgICAgICAgICAgPSBNSU5fSVBfSEVBREVSX0xFTiArIElHTVBf TUlOTEVOICsgZGF0YWxlbjsKWCsjaWZkZWYgUkFXX09VVFBVVF9JU19SQVcKWCAgICAgaXAt PmlwX2xlbiAgICAgICAgICAgICAgPSBodG9ucyhpcC0+aXBfbGVuKTsKWC0KWCsjZW5kaWYK WCAgICAgaWYgKElOX01VTFRJQ0FTVChudG9obChkc3QpKSkgewpYICAgICAgICAgaXAtPmlw X3R0bCA9IGN1cnR0bDsKWCAgICAgfSBlbHNlIHsKWGRpZmYgLXVyTiBpZ21wcHJveHkuYyBp Z21wcHJveHkubmV3L3NyYy9pZ21wcHJveHkuYwpYLS0tIGlnbXBwcm94eS5jCTIwMDUtMDgt MjAgMTY6NTY6MzIuMDAwMDAwMDAwICswNDAwClgrKysgaWdtcHByb3h5Lm5ldy9zcmMvaWdt cHByb3h5LmMJMjAwOS0wMS0wNSAwMjo0MDoxMS4wMDAwMDAwMDAgKzAzMDAKWEBAIC04MCw3 ICs4MCw3IEBAClggKiAgIG9uIGNvbW1hbmRsaW5lLiBUaGUgbnVtYmVyIG9mIGNvbW1hbmRs aW5lIGFyZ3VtZW50cywgYW5kIGEKWCAqICAgcG9pbnRlciB0byB0aGUgYXJndW1lbnRzIGFy ZSByZWNpZXZlZCBvbiB0aGUgbGluZS4uLgpYICovICAgIApYLWludCBtYWluKCBpbnQgQXJn Q24sIGNvbnN0IGNoYXIgKkFyZ1ZjW10gKSB7ClgraW50IG1haW4oIGludCBBcmdDbiwgY2hh ciAqQXJnVmNbXSApIHsKWCAKWCAgICAgaW50IGRlYnVnTW9kZSA9IDA7ClggClhAQCAtMTU1 LDE3ICsxNTUsOCBAQApYICAgICAgICAgaWYgKCAhIGRlYnVnTW9kZSApIHsKWCAgICAgClgg ICAgICAgICAgICAgSUZfREVCVUcgbG9nKCBMT0dfREVCVUcsIDAsICJTdGFydGluZyBkYWVt b24gbW9kZS4iKTsKWC0gICAgClgtICAgICAgICAgICAgLy8gT25seSBkYWVtb24gZ29lcyBw YXN0IHRoaXMgbGluZS4uLgpYLSAgICAgICAgICAgIGlmIChmb3JrKCkpIGV4aXQoMCk7Clgt ICAgIApYLSAgICAgICAgICAgIC8vIERldGFjaCBkZWFtb24gZnJvbSB0ZXJtaW5hbApYLSAg ICAgICAgICAgIGlmICggY2xvc2UoIDAgKSA8IDAgfHwgY2xvc2UoIDEgKSA8IDAgfHwgY2xv c2UoIDIgKSA8IDAgClgtICAgICAgICAgICAgICAgICB8fCBvcGVuKCAiL2Rldi9udWxsIiwg MCApICE9IDAgfHwgZHVwMiggMCwgMSApIDwgMCB8fCBkdXAyKCAwLCAyICkgPCAwClgtICAg ICAgICAgICAgICAgICB8fCBzZXRwZ3JwKCkgPCAwClgtICAgICAgICAgICAgICAgKSB7Clgr CSAgICBpZiAoZGFlbW9uKDEsIDApICE9IDApClggICAgICAgICAgICAgICAgIGxvZyggTE9H X0VSUiwgZXJybm8sICJmYWlsZWQgdG8gZGV0YWNoIGRlYW1vbiIgKTsKWC0gICAgICAgICAg ICB9ClggICAgICAgICB9ClggICAgICAgICAKWCAgICAgICAgIC8vIEdvIHRvIHRoZSBtYWlu IGxvb3AuClhAQCAtMjE4LDcgKzIwOSw3IEBAClggICAgICAgICBpbnQgICAgIHZpZmNvdW50 ID0gMDsKWCAgICAgICAgIHVwU3RyZWFtVmlmID0gLTE7ClggClgtICAgICAgICBmb3IgKCBJ eCA9IDA7IERwID0gZ2V0SWZCeUl4KCBJeCApOyBJeCsrICkgewpYKyAgICAgICAgZm9yICgg SXggPSAwOyAoRHAgPSBnZXRJZkJ5SXgoIEl4ICkpOyBJeCsrICkgewpYIApYICAgICAgICAg ICAgIGlmICggRHAtPkluQWRyLnNfYWRkciAmJiAhIChEcC0+RmxhZ3MgJiBJRkZfTE9PUEJB Q0spICkgewpYICAgICAgICAgICAgICAgICBpZihEcC0+c3RhdGUgPT0gSUZfU1RBVEVfVVBT VFJFQU0pIHsKWEBAIC0yMzcsNyArMjI4LDcgQEAKWCAKWCAgICAgICAgIC8vIElmIHRoZXJl IGlzIG9ubHkgb25lIFZJRiwgb3Igbm8gZGVmaW5lZCB1cHN0cmVhbSBWSUYsIHdlIHNlbmQg YW4gZXJyb3IuClggICAgICAgICBpZih2aWZjb3VudCA8IDIgfHwgdXBTdHJlYW1WaWYgPCAw KSB7ClgtICAgICAgICAgICAgbG9nKExPR19FUlIsIDAsICJUaGVyZSBtdXN0IGJlIGF0IGxl YXN0IDIgVmlmJ3Mgd2hlcmUgb25lIGlzIHVwc3RyZWFtLiIpOwpYKyAgICAgICAgICAgIGxv ZyhMT0dfRVJSLCAwLCAiVGhlcmUgbXVzdCBiZSBhdCBsZWFzdCAyIFZpZidzIHdoZXJlIG9u ZSBpcyB1cHN0cmVhbS4gKHZpZmNvdW50ICVkLCB1cFN0cmVhbVZpZiAlZCkiLCB2aWZjb3Vu dCwgdXBTdHJlYW1WaWYpOwpYICAgICAgICAgfQpYICAgICB9ICAKWCAgICAgClhAQCAtMjc1 LDcgKzI2Niw3IEBAClggICAgIHJlZ2lzdGVyIGludCByZWN2bGVuOwpYICAgICBpbnQgICAg IE1heEZELCBSdCwgc2VjczsKWCAgICAgZmRfc2V0ICBSZWFkRkRTOwpYLSAgICBpbnQgICAg IGR1bW15ID0gMDsKWCsgICAgc29ja2xlbl90CWR1bW15ID0gMDsKWCAgICAgc3RydWN0ICB0 aW1ldmFsICBjdXJ0aW1lLCBsYXN0dGltZSwgZGlmZnRpbWUsIHR2OyAKWCAgICAgLy8gVGhl IHRpbWVvdXQgaXMgYSBwb2ludGVyIGluIG9yZGVyIHRvIHNldCBpdCB0byBOVUxMIGlmIG5l c3NlY2FyeS4KWCAgICAgc3RydWN0ICB0aW1ldmFsICAqdGltZW91dCA9ICZ0djsKWGRpZmYg LXVyTiBpZ21wcHJveHkuY29uZiBpZ21wcHJveHkubmV3L3NyYy9pZ21wcHJveHkuY29uZgpY LS0tIGlnbXBwcm94eS5jb25mCTIwMDUtMDQtMjkgMjM6Mjc6NTAuMDAwMDAwMDAwICswNDAw ClgrKysgaWdtcHByb3h5Lm5ldy9zcmMvaWdtcHByb3h5LmNvbmYJMjAwOS0wMS0wNSAwMjox MTowOC4wMDAwMDAwMDAgKzAzMDAKWEBAIC0yNSwyMiArMjUsMjIgQEAKWCAKWCAKWCAjIy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpY LSMjIENvbmZpZ3VyYXRpb24gZm9yIGV0aDAgKFVwc3RyZWFtIEludGVyZmFjZSkKWCsjIyBD b25maWd1cmF0aW9uIGZvciBlbTAgKFVwc3RyZWFtIEludGVyZmFjZSkKWCAjIy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpYLXBoeWlu dCBldGgwIHVwc3RyZWFtICByYXRlbGltaXQgMCAgdGhyZXNob2xkIDEKWCtwaHlpbnQgZW0w IHVwc3RyZWFtICByYXRlbGltaXQgMCAgdGhyZXNob2xkIDEKWCAgICAgICAgIGFsdG5ldCAx MC4wLjAuMC84IApYICAgICAgICAgYWx0bmV0IDE5Mi4xNjguMC4wLzI0ClggClggClggIyMt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K WC0jIyBDb25maWd1cmF0aW9uIGZvciBldGgxIChEb3duc3RyZWFtIEludGVyZmFjZSkKWCsj IyBDb25maWd1cmF0aW9uIGZvciBlbTEgKERvd25zdHJlYW0gSW50ZXJmYWNlKQpYICMjLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClgt cGh5aW50IGV0aDEgZG93bnN0cmVhbSAgcmF0ZWxpbWl0IDAgIHRocmVzaG9sZCAxClgrcGh5 aW50IGVtMSBkb3duc3RyZWFtICByYXRlbGltaXQgMCAgdGhyZXNob2xkIDEKWCAKWCAKWCAj Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpYLSMjIENvbmZpZ3VyYXRpb24gZm9yIGV0aDIgKERpc2FibGVkIEludGVyZmFjZSkKWCsj IyBDb25maWd1cmF0aW9uIGZvciB4bDAgKERpc2FibGVkIEludGVyZmFjZSkKWCAjIy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpYLXBo eWludCBldGgyIGRpc2FibGVkClgrcGh5aW50IHhsMCBkaXNhYmxlZApYIApYIApYZGlmZiAt dXJOIG1jZ3JvdXAuYyBpZ21wcHJveHkubmV3L3NyYy9tY2dyb3VwLmMKWC0tLSBtY2dyb3Vw LmMJMjAwNS0wOC0yMCAxNjo1NDozNy4wMDAwMDAwMDAgKzA0MDAKWCsrKyBpZ21wcHJveHku bmV3L3NyYy9tY2dyb3VwLmMJMjAwOS0wMS0wNSAwMTo1ODoyNy4wMDAwMDAwMDAgKzAzMDAK WEBAIC00OSw3ICs0OSw2IEBAClggICAgIEN0bFJlcS5pbXJfaW50ZXJmYWNlLnNfYWRkciA9 IElmRHAtPkluQWRyLnNfYWRkcjsKWCAgICAgClggICAgIHsKWC0gICAgICAgIGNoYXIgRm10 QnVbIDMyIF07ClggICAgICAgICBsb2coIExPR19OT1RJQ0UsIDAsICIlc01jR3JvdXA6ICVz IG9uICVzIiwgQ21kU3QsIApYICAgICAgICAgICAgIGluZXRGbXQoIG1jYXN0YWRkciwgczEg KSwgSWZEcCA/IElmRHAtPk5hbWUgOiAiPGFueT4iICk7ClggICAgIH0KWGRpZmYgLXVyTiBt cm91dGUtYXBpLmMgaWdtcHByb3h5Lm5ldy9zcmMvbXJvdXRlLWFwaS5jClgtLS0gbXJvdXRl LWFwaS5jCTIwMDUtMDUtMjQgMTk6NDg6MzMuMDAwMDAwMDAwICswNDAwClgrKysgaWdtcHBy b3h5Lm5ldy9zcmMvbXJvdXRlLWFwaS5jCTIwMDktMDEtMDUgMDE6NTg6MjcuMDAwMDAwMDAw ICswMzAwClhAQCAtMzcsNyArMzcsOSBAQApYICovClggClggClgrI2lmbmRlZiBfX0ZyZWVC U0RfXwpYICNkZWZpbmUgVVNFX0xJTlVYX0lOX0gKWCsjZW5kaWYKWCAjaW5jbHVkZSAiZGVm cy5oIgpYIApYIC8vIE1BWF9NQ19WSUZTIGZyb20gbWNsYWIuaCBtdXN0IGhhdmUgc2FtZSB2 YWx1ZSBhcyBNQVhWSUZTIGZyb20gbXJvdXRlLmgKWEBAIC00Nyw3ICs0OSw3IEBAClggICAg ICAKWCAvLyBuZWVkIGFuIElHTVAgc29ja2V0IGFzIGludGVyZmFjZSBmb3IgdGhlIG1yb3V0 ZWQgQVBJClggLy8gLSByZWNlaXZlcyB0aGUgSUdNUCBtZXNzYWdlcwpYLWludCAgICAgICAg IE1Sb3V0ZXJGRDsgICAgICAgIC8qIHNvY2tldCBmb3IgYWxsIG5ldHdvcmsgSS9PICAqLwpY K2ludCAgICAgICAgIE1Sb3V0ZXJGRCA9IC0xOyAgICAgICAgLyogc29ja2V0IGZvciBhbGwg bmV0d29yayBJL08gICovClggY2hhciAgICAgICAgKnJlY3ZfYnVmOyAgICAgICAgICAgLyog aW5wdXQgcGFja2V0IGJ1ZmZlciAgICAgICAgICovClggY2hhciAgICAgICAgKnNlbmRfYnVm OyAgICAgICAgICAgLyogb3V0cHV0IHBhY2tldCBidWZmZXIgICAgICAgICovClggClhAQCAt MTc3LDEzICsxNzksMTUgQEAKWCAgICAgICAgIGxvZyggTE9HX05PVElDRSwgMCwgIkFkZGlu ZyBNRkM6ICVzIC0+ICVzLCBJbnBWSWY6ICVkIiwgClggICAgICAgICAgICAgIGZtdEluQWRy KCBGbXRCdU8sIEN0bFJlcS5tZmNjX29yaWdpbiApLCAKWCAgICAgICAgICAgICAgZm10SW5B ZHIoIEZtdEJ1TSwgQ3RsUmVxLm1mY2NfbWNhc3RncnAgKSwKWC0gICAgICAgICAgICAgQ3Rs UmVxLm1mY2NfcGFyZW50ID09IEFMTF9WSUZTID8gLTEgOiBDdGxSZXEubWZjY19wYXJlbnQK WCsgICAgICAgICAgICAgQ3RsUmVxLm1mY2NfcGFyZW50ClggICAgICAgICAgICApOwpYICAg ICB9ClggClggICAgIGlmICggc2V0c29ja29wdCggTVJvdXRlckZELCBJUFBST1RPX0lQLCBN UlRfQUREX01GQywKWCAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKSZDdGxSZXEsIHNp emVvZiggQ3RsUmVxICkgKSApClggICAgICAgICBsb2coIExPR19XQVJOSU5HLCBlcnJubywg Ik1SVF9BRERfTUZDIiApOwpYKwpYKyAgICByZXR1cm4gMDsKWCB9ClggClggLyoKWEBAIC0y MTAsMTMgKzIxNCwxNSBAQApYICAgICAgICAgbG9nKCBMT0dfTk9USUNFLCAwLCAiUmVtb3Zp bmcgTUZDOiAlcyAtPiAlcywgSW5wVklmOiAlZCIsIApYICAgICAgICAgICAgICBmbXRJbkFk ciggRm10QnVPLCBDdGxSZXEubWZjY19vcmlnaW4gKSwgClggICAgICAgICAgICAgIGZtdElu QWRyKCBGbXRCdU0sIEN0bFJlcS5tZmNjX21jYXN0Z3JwICksClgtICAgICAgICAgICAgIEN0 bFJlcS5tZmNjX3BhcmVudCA9PSBBTExfVklGUyA/IC0xIDogQ3RsUmVxLm1mY2NfcGFyZW50 ClgrICAgICAgICAgICAgIEN0bFJlcS5tZmNjX3BhcmVudApYICAgICAgICAgICAgKTsKWCAg ICAgfQpYIApYICAgICBpZiAoIHNldHNvY2tvcHQoIE1Sb3V0ZXJGRCwgSVBQUk9UT19JUCwg TVJUX0RFTF9NRkMsClggICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikmQ3RsUmVxLCBz aXplb2YoIEN0bFJlcSApICkgKQpYICAgICAgICAgbG9nKCBMT0dfV0FSTklORywgZXJybm8s ICJNUlRfREVMX01GQyIgKTsKWCsKWCsgICAgcmV0dXJuIDA7ClggfQpYIApYIC8qClhkaWZm IC11ck4gcmVxdWVzdC5jIGlnbXBwcm94eS5uZXcvc3JjL3JlcXVlc3QuYwpYLS0tIHJlcXVl c3QuYwkyMDA1LTA1LTI0IDE5OjQ4OjI5LjAwMDAwMDAwMCArMDQwMApYKysrIGlnbXBwcm94 eS5uZXcvc3JjL3JlcXVlc3QuYwkyMDA5LTAxLTA1IDAyOjI2OjU0LjAwMDAwMDAwMCArMDMw MApYQEAgLTg4LDEwICs4OCwxMSBAQApYIApYICAgICB9IGVsc2UgewpYICAgICAgICAgLy8g TG9nIHRoZSBzdGF0ZSBvZiB0aGUgaW50ZXJmYWNlIHRoZSByZXBvcnQgd2FzIHJlY2lldmVk IG9uLgpYLSAgICAgICAgbG9nKExPR19JTkZPLCAwLCAiTWViZXJzaGlwIHJlcG9ydCB3YXMg cmVjaWV2ZWQgb24gJXMuIElnbm9yaW5nLiIsClgrICAgICAgICBsb2coTE9HX0lORk8sIDAs ICJNZW1iZXJzaGlwIHJlcG9ydCB3YXMgcmVjZWl2ZWQgb24gJXMuIElnbm9yaW5nLiIsClgg ICAgICAgICAgICAgc291cmNlVmlmLT5zdGF0ZT09SUZfU1RBVEVfVVBTVFJFQU0/InRoZSB1 cHN0cmVhbSBpbnRlcmZhY2UiOiJhIGRpc2FibGVkIGludGVyZmFjZSIpOwpYICAgICB9Clgg ClgrICAgIGxvZyhMT0dfREVCVUcsIDAsICJFbGltaW5hdGUgY29tcGlsZXIgd2FybmluZyBm b3IgZmllbGQgdHlwZSA9ICV1IiwgdHlwZSk7ClggfQpYIApYIC8qKgpYQEAgLTEzNiw3ICsx MzcsNyBAQApYIApYICAgICB9IGVsc2UgewpYICAgICAgICAgLy8ganVzdCBpZ25vcmUgdGhl IGxlYXZlIHJlcXVlc3QuLi4KWC0gICAgICAgIElGX0RFQlVHIGxvZyhMT0dfREVCVUcsIDAs ICJUaGUgZm91bmQgaWYgZm9yICVzIHdhcyBub3QgZG93bnN0cmVhbS4gSWdub3JpbmcgbGVh dmUgcmVxdWVzdC4iKTsKWCsgICAgICAgIElGX0RFQlVHIGxvZyhMT0dfREVCVUcsIDAsICJU aGUgZm91bmQgaWYgZm9yICVzIHdhcyBub3QgZG93bnN0cmVhbS4gSWdub3JpbmcgbGVhdmUg cmVxdWVzdC4iLCAgaW5ldEZtdChzcmMsIHMxKSk7ClggICAgIH0KWCB9ClggClhAQCAtMTg0 LDcgKzE4NSw3IEBAClggICAgIGludCAgICAgICAgICAgICBJeDsKWCAKWCAgICAgLy8gTG9v cCB0aHJvdWdoIGFsbCBkb3duc3RyZWFtIHZpZnMuLi4KWC0gICAgZm9yICggSXggPSAwOyBE cCA9IGdldElmQnlJeCggSXggKTsgSXgrKyApIHsKWCsgICAgZm9yICggSXggPSAwOyAoRHAg PSBnZXRJZkJ5SXgoIEl4ICkpOyBJeCsrICkgewpYICAgICAgICAgaWYgKCBEcC0+SW5BZHIu c19hZGRyICYmICEgKERwLT5GbGFncyAmIElGRl9MT09QQkFDSykgKSB7ClggICAgICAgICAg ICAgaWYoRHAtPnN0YXRlID09IElGX1NUQVRFX0RPV05TVFJFQU0pIHsKWCAgICAgICAgICAg ICAgICAgLy8gU2VuZCB0aGUgbWVtYmVyc2hpcCBxdWVyeS4uLgpYZGlmZiAtdXJOIHJ0dGFi bGUuYyBpZ21wcHJveHkubmV3L3NyYy9ydHRhYmxlLmMKWC0tLSBydHRhYmxlLmMJMjAwNS0w OC0yMCAxNjo0NjoyMC4wMDAwMDAwMDAgKzA0MDAKWCsrKyBpZ21wcHJveHkubmV3L3NyYy9y dHRhYmxlLmMJMjAwOS0wMS0wNSAwMTo1ODoyNy4wMDAwMDAwMDAgKzAzMDAKWEBAIC0zOCwx NSArMzgsMjIgQEAKWCAqLwpYIApYICNpbmNsdWRlICJkZWZzLmgiClgrI2luY2x1ZGUgPHN5 cy9xdWV1ZS5oPgpYICAgICAKWCAvKioKWCAqICAgUm91dGluZyB0YWJsZSBzdHJ1Y3R1cmUg ZGVmaW5pdGlvbi4gRG91YmxlIGxpbmtlZCBsaXN0Li4uClggKi8KWCtzdHJ1Y3QgT3JpZ2lu IHsKWCsgICAgVEFJTFFfRU5UUlkoT3JpZ2luKSBuZXh0OwpYKyAgICB1aW50MzIJCW9yaWdp bkFkZHI7ClgrICAgIGludAkJCWZsb29kOwpYKyAgICB1aW50MzIJCXBrdGNudDsKWCt9OwpY KwpYIHN0cnVjdCBSb3V0ZVRhYmxlIHsKWCAgICAgc3RydWN0IFJvdXRlVGFibGUgICAqbmV4 dHJvdXRlOyAgICAgLy8gUG9pbnRlciB0byB0aGUgbmV4dCBncm91cCBpbiBsaW5lLgpYICAg ICBzdHJ1Y3QgUm91dGVUYWJsZSAgICpwcmV2cm91dGU7ICAgICAvLyBQb2ludGVyIHRvIHRo ZSBwcmV2aW91cyBncm91cCBpbiBsaW5lLgpYICAgICB1aW50MzIgICAgICAgICAgICAgIGdy b3VwOyAgICAgICAgICAvLyBUaGUgZ3JvdXAgdG8gcm91dGUKWC0gICAgdWludDMyICAgICAg ICAgICAgICBvcmlnaW5BZGRyOyAgICAgLy8gVGhlIG9yaWdpbiBhZHJlc3MgKG9ubHkgc2V0 IG9uIGFjdGl2YXRlZCByb3V0ZXMpClggICAgIHVpbnQzMiAgICAgICAgICAgICAgdmlmQml0 czsgICAgICAgIC8vIEJpdHMgcmVwcmVzZW50aW5nIHJlY2lldmluZyBWSUZzLgpYIApYICAg ICAvLyBLZWVwcyB0aGUgdXBzdHJlYW0gbWVtYmVyc2hpcCBzdGF0ZS4uLgpYQEAgLTU2LDYg KzYzLDcgQEAKWCAgICAgdWludDMyICAgICAgICAgICAgICBhZ2VWaWZCaXRzOyAgICAgLy8g Qml0cyByZXByZXNlbnRpbmcgYWdpbmcgVklGcy4KWCAgICAgaW50ICAgICAgICAgICAgICAg ICBhZ2VWYWx1ZTsgICAgICAgLy8gRG93bmNvdW50ZXIgZm9yIGRlYXRoLiAgICAgICAgICAK WCAgICAgaW50ICAgICAgICAgICAgICAgICBhZ2VBY3Rpdml0eTsgICAgLy8gUmVjb3JkcyBh bnkgYWNpdGl2aXR5IHRoYXQgbm90ZXMgdGhlcmUgYXJlIHN0aWxsIGxpc3RlbmVycy4KWCsg ICAgVEFJTFFfSEVBRChvcmlnaW5oZWFkLCBPcmlnaW4pIG9yaWdpbkxpc3Q7IC8vIFRoZSBv cmlnaW4gYWRyZXNzZXMgKG5vbi1lbXB0eSBvbiBhY3RpdmF0ZWQgcm91dGVzKQpYIH07Clgg ClggICAgICAgICAgICAgICAgICAKWEBAIC02NSwxOSArNzMsMTcgQEAKWCAvLyBQcm90b3R5 cGVzClggdm9pZCBsb2dSb3V0ZVRhYmxlKGNoYXIgKmhlYWRlcik7ClggaW50ICBpbnRlcm5B Z2VSb3V0ZShzdHJ1Y3QgUm91dGVUYWJsZSogIGNyb3V0ZSk7ClgtClgtLy8gU29ja2V0IGZv ciBzZW5kaW5nIGpvaW4gb3IgbGVhdmUgcmVxdWVzdHMuClgtaW50IG1jR3JvdXBTb2NrID0g MDsKWCtpbnQgaW50ZXJuVXBkYXRlS2VybmVsUm91dGUoc3RydWN0IFJvdXRlVGFibGUgKnJv dXRlLCBpbnQgYWN0aXZhdGUsIHN0cnVjdCBPcmlnaW4gKm8pOwpYIApYIApYIC8qKgpYICog ICBGdW5jdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgTXVsdGljYXN0IEdyb3VwIHNvY2tldC4K WCAqLwpYIGludCBnZXRNY0dyb3VwU29jaygpIHsKWC0gICAgaWYoICEgbWNHcm91cFNvY2sg KSB7ClgtICAgICAgICBtY0dyb3VwU29jayA9IG9wZW5VZHBTb2NrZXQoIElOQUREUl9BTlks IDAgKTs7ClgrICAgIGlmIChNUm91dGVyRkQgPCAwKSB7ClgrCSAgICBsb2coTE9HX0VSUiwg ZXJybm8sICJubyBNUm91dGVyRkQuIik7ClggICAgIH0KWC0gICAgcmV0dXJuIG1jR3JvdXBT b2NrOwpYKyAgICByZXR1cm4gTVJvdXRlckZEOwpYIH0KWCAgClggLyoqClhAQCAtOTEsNyAr OTcsNyBAQApYICAgICByb3V0aW5nX3RhYmxlID0gTlVMTDsKWCAKWCAgICAgLy8gSm9pbiB0 aGUgYWxsIHJvdXRlcnMgZ3JvdXAgb24gZG93bnN0cmVhbSB2aWZzLi4uClgtICAgIGZvciAo IEl4ID0gMDsgRHAgPSBnZXRJZkJ5SXgoIEl4ICk7IEl4KysgKSB7ClgrICAgIGZvciAoIEl4 ID0gMDsgKERwID0gZ2V0SWZCeUl4KCBJeCApKTsgSXgrKyApIHsKWCAgICAgICAgIC8vIElm IHRoaXMgaXMgYSBkb3duc3RyZWFtIHZpZiwgd2Ugc2hvdWxkIGpvaW4gdGhlIEFsbCByb3V0 ZXJzIGdyb3VwLi4uClggICAgICAgICBpZiggRHAtPkluQWRyLnNfYWRkciAmJiAhIChEcC0+ RmxhZ3MgJiBJRkZfTE9PUEJBQ0spICYmIERwLT5zdGF0ZSA9PSBJRl9TVEFURV9ET1dOU1RS RUFNKSB7ClggICAgICAgICAgICAgSUZfREVCVUcgbG9nKExPR19ERUJVRywgMCwgIkpvaW5p bmcgYWxsLXJvdXRlcnMgZ3JvdXAgJXMgb24gdmlmICVzIiwKWEBAIC0xNjAsNiArMTY2LDcg QEAKWCAqLwpYIHZvaWQgY2xlYXJBbGxSb3V0ZXMoKSB7ClggICAgIHN0cnVjdCBSb3V0ZVRh YmxlICAgKmNyb3V0ZSwgKnJlbWFpbnJvdXRlOwpYKyAgICBzdHJ1Y3QgT3JpZ2luICpvOwpY IApYICAgICAvLyBMb29wIHRocm91Z2ggYWxsIHJvdXRlcy4uLgpYICAgICBmb3IoY3JvdXRl ID0gcm91dGluZ190YWJsZTsgY3JvdXRlOyBjcm91dGUgPSByZW1haW5yb3V0ZSkgewpYQEAg LTE3MSw3ICsxNzgsNyBAQApYICAgICAgICAgICAgICAgICAgICAgIGluZXRGbXQoY3JvdXRl LT5ncm91cCwgczEpKTsKWCAKWCAgICAgICAgIC8vIFVuaW5zdGFsbCBjdXJyZW50IHJvdXRl ClgtICAgICAgICBpZighaW50ZXJuVXBkYXRlS2VybmVsUm91dGUoY3JvdXRlLCAwKSkgewpY KyAgICAgICAgaWYoIWludGVyblVwZGF0ZUtlcm5lbFJvdXRlKGNyb3V0ZSwgMCwgTlVMTCkp IHsKWCAgICAgICAgICAgICBsb2coTE9HX1dBUk5JTkcsIDAsICJUaGUgcmVtb3ZhbCBmcm9t IEtlcm5lbCBmYWlsZWQuIik7ClggICAgICAgICB9ClggClhAQCAtMTc5LDYgKzE4NiwxMCBA QApYICAgICAgICAgc2VuZEpvaW5MZWF2ZVVwc3RyZWFtKGNyb3V0ZSwgMCk7ClggClggICAg ICAgICAvLyBDbGVhciBtZW1vcnksIGFuZCBzZXQgcG9pbnRlciB0byBuZXh0IHJvdXRlLi4u ClgrICAgICAgICB3aGlsZSAoKG8gPSBUQUlMUV9GSVJTVCgmY3JvdXRlLT5vcmlnaW5MaXN0 KSkpIHsKWCsgICAgICAgICAgICBUQUlMUV9SRU1PVkUoJmNyb3V0ZS0+b3JpZ2luTGlzdCwg bywgbmV4dCk7ClgrICAgICAgICAgICAgZnJlZShvKTsKWCsgICAgICAgIH0KWCAgICAgICAg IGZyZWUoY3JvdXRlKTsKWCAgICAgfQpYICAgICByb3V0aW5nX3RhYmxlID0gTlVMTDsKWEBA IC0yMTIsNyArMjIzLDYgQEAKWCAgICAgClggICAgIHN0cnVjdCBDb25maWcgKmNvbmYgPSBn ZXRDb21tb25Db25maWcoKTsKWCAgICAgc3RydWN0IFJvdXRlVGFibGUqICBjcm91dGU7Clgt ICAgIGludCByZXN1bHQgPSAxOwpYIApYICAgICAvLyBTYW5pdHljaGVjayB0aGUgZ3JvdXAg YWRyZXNzLi4uClggICAgIGlmKCAhIElOX01VTFRJQ0FTVCggbnRvaGwoZ3JvdXApICkpIHsK WEBAIC0yNDEsNyArMjUxLDggQEAKWCAgICAgICAgIG5ld3JvdXRlID0gKHN0cnVjdCBSb3V0 ZVRhYmxlKiltYWxsb2Moc2l6ZW9mKHN0cnVjdCBSb3V0ZVRhYmxlKSk7ClggICAgICAgICAv LyBJbnNlcnQgdGhlIHJvdXRlIGRlc2MgYW5kIGNsZWFyIGFsbCBwb2ludGVycy4uLgpYICAg ICAgICAgbmV3cm91dGUtPmdyb3VwICAgICAgPSBncm91cDsKWC0gICAgICAgIG5ld3JvdXRl LT5vcmlnaW5BZGRyID0gMDsKWCsgICAgICAgIFRBSUxRX0lOSVQoJm5ld3JvdXRlLT5vcmln aW5MaXN0KTsKWCsKWCAgICAgICAgIG5ld3JvdXRlLT5uZXh0cm91dGUgID0gTlVMTDsKWCAg ICAgICAgIG5ld3JvdXRlLT5wcmV2cm91dGUgID0gTlVMTDsKWCAKWEBAIC0zMjUsMTAgKzMz NiwxMCBAQApYICAgICAgICAgICAgIGluZXRGbXQoY3JvdXRlLT5ncm91cCwgczEpLCBpZngp OwpYIApYICAgICAgICAgLy8gSWYgdGhlIHJvdXRlIGlzIGFjdGl2ZSwgaXQgbXVzdCBiZSBy ZWxvYWRlZCBpbnRvIHRoZSBLZXJuZWwuLgpYLSAgICAgICAgaWYoY3JvdXRlLT5vcmlnaW5B ZGRyICE9IDApIHsKWCsgICAgICAgIGlmKCFUQUlMUV9FTVBUWSgmY3JvdXRlLT5vcmlnaW5M aXN0KSkgewpYIApYICAgICAgICAgICAgIC8vIFVwZGF0ZSByb3V0ZSBpbiBrZXJuZWwuLi4K WC0gICAgICAgICAgICBpZighaW50ZXJuVXBkYXRlS2VybmVsUm91dGUoY3JvdXRlLCAxKSkg ewpYKyAgICAgICAgICAgIGlmKCFpbnRlcm5VcGRhdGVLZXJuZWxSb3V0ZShjcm91dGUsIDEs IE5VTEwpKSB7ClggICAgICAgICAgICAgICAgIGxvZyhMT0dfV0FSTklORywgMCwgIlRoZSBp bnNlcnRpb24gaW50byBLZXJuZWwgZmFpbGVkLiIpOwpYICAgICAgICAgICAgICAgICByZXR1 cm4gMDsKWCAgICAgICAgICAgICB9ClhAQCAtMzUxLDcgKzM2Miw3IEBAClggKiAgIGFjdGl2 YXRlZCwgaXQncyByZWluc3RhbGxlZCBpbiB0aGUga2VybmVsLiBJZgpYICogICB0aGUgcm91 dGUgaXMgYWN0aXZhdGVkLCBubyBvcmlnaW5BZGRyIGlzIG5lZWRlZC4KWCAqLwpYLWludCBh Y3RpdmF0ZVJvdXRlKHVpbnQzMiBncm91cCwgdWludDMyIG9yaWdpbkFkZHIpIHsKWCtpbnQg YWN0aXZhdGVSb3V0ZSh1aW50MzIgZ3JvdXAsIHVpbnQzMiBvcmlnaW5BZGRyLCBpbnQgZG93 bklmKSB7ClggICAgIHN0cnVjdCBSb3V0ZVRhYmxlKiAgY3JvdXRlOwpYICAgICBpbnQgcmVz dWx0ID0gMDsKWCAKWEBAIC0zNjksMjEgKzM4MCw0MiBAQApYICAgICB9ClggClggICAgIGlm KGNyb3V0ZSAhPSBOVUxMKSB7ClgrCXN0cnVjdCBPcmlnaW4gKm8gPSBOVUxMOwpYKwlpbnQg Zm91bmQgPSAwOwpYKwpYICAgICAgICAgLy8gSWYgdGhlIG9yaWdpbiBhZGRyZXNzIGlzIHNl dCwgdXBkYXRlIHRoZSByb3V0ZSBkYXRhLgpYLSAgICAgICAgaWYob3JpZ2luQWRkciA+IDAp IHsKWC0gICAgICAgICAgICBpZihjcm91dGUtPm9yaWdpbkFkZHIgPiAwICYmIGNyb3V0ZS0+ b3JpZ2luQWRkciE9b3JpZ2luQWRkcikgewpYLSAgICAgICAgICAgICAgICBsb2coTE9HX1dB Uk5JTkcsIDAsICJUaGUgb3JpZ2luIGZvciByb3V0ZSAlcyBjaGFuZ2VkIGZyb20gJXMgdG8g JXMiLApYLSAgICAgICAgICAgICAgICAgICAgaW5ldEZtdChjcm91dGUtPmdyb3VwLCBzMSks ClgtICAgICAgICAgICAgICAgICAgICBpbmV0Rm10KGNyb3V0ZS0+b3JpZ2luQWRkciwgczIp LApYLSAgICAgICAgICAgICAgICAgICAgaW5ldEZtdChvcmlnaW5BZGRyLCBzMykpOwpYLSAg ICAgICAgICAgIH0KWC0gICAgICAgICAgICBjcm91dGUtPm9yaWdpbkFkZHIgPSBvcmlnaW5B ZGRyOwpYLSAgICAgICAgfQpYKwlpZihvcmlnaW5BZGRyID4gMCkgewpYIApYLSAgICAgICAg Ly8gT25seSB1cGRhdGUga2VybmVsIHRhYmxlIGlmIHRoZXJlIGFyZSBsaXN0ZW5lcnMgIQpY LSAgICAgICAgaWYoY3JvdXRlLT52aWZCaXRzID4gMCkgewpYLSAgICAgICAgICAgIHJlc3Vs dCA9IGludGVyblVwZGF0ZUtlcm5lbFJvdXRlKGNyb3V0ZSwgMSk7ClgtICAgICAgICB9Clgr CSAgICBUQUlMUV9GT1JFQUNIKG8sICZjcm91dGUtPm9yaWdpbkxpc3QsIG5leHQpIHsKWCsJ CWxvZyhMT0dfSU5GTywgMCwgIk9yaWdpbiBmb3Igcm91dGUgJXMgaGF2ZSAlcywgbmV3ICVz IiwKWCsJCSAgICBpbmV0Rm10KGNyb3V0ZS0+Z3JvdXAsIHMxKSwKWCsJCSAgICBpbmV0Rm10 KG8tPm9yaWdpbkFkZHIsIHMyKSwKWCsJCSAgICBpbmV0Rm10KG9yaWdpbkFkZHIsIHMzKSk7 ClgrCQlpZiAoby0+b3JpZ2luQWRkcj09b3JpZ2luQWRkcikgewpYKwkJICAgIGZvdW5kKys7 ClgrCQkgICAgYnJlYWs7ClgrCQl9ClgrCSAgICB9ClgrCSAgICBpZiAoIWZvdW5kKSB7Clgr CQlsb2coTE9HX05PVElDRSwgMCwgIk5ldyBvcmlnaW4gZm9yIHJvdXRlICVzIGlzICVzLCBm bG9vZCAlZCIsClgrCQkgICAgaW5ldEZtdChjcm91dGUtPmdyb3VwLCBzMSksClgrCQkgICAg aW5ldEZtdChvcmlnaW5BZGRyLCBzMyksIGRvd25JZik7ClgrCQlvID0gbWFsbG9jKHNpemVv ZigqbykpOwpYKwkJby0+b3JpZ2luQWRkciA9IG9yaWdpbkFkZHI7ClgrCQlvLT5mbG9vZCA9 IGRvd25JZjsKWCsJCW8tPnBrdGNudCA9IDA7ClgrCQlUQUlMUV9JTlNFUlRfVEFJTCgmY3Jv dXRlLT5vcmlnaW5MaXN0LCBvLCBuZXh0KTsKWCsJICAgIH0gZWxzZSB7ClgrCQlsb2coTE9H X0lORk8sIDAsICJIYXZlIG9yaWdpbiBmb3Igcm91dGUgJXMgYXQgJXMsIHBrdGNudCAlZCIs ClgrCQkgICAgaW5ldEZtdChjcm91dGUtPmdyb3VwLCBzMSksClgrCQkgICAgaW5ldEZtdChv LT5vcmlnaW5BZGRyLCBzMyksClgrCQkgICAgby0+cGt0Y250KTsKWCsJICAgIH0KWCsJfQpY KwpYKyAgICAgICAgLy8gT25seSB1cGRhdGUga2VybmVsIHRhYmxlIGlmIHRoZXJlIGFyZSBs aXN0ZW5lcnMsIGJ1dCBmbG9vZCB1cHN0cmVhbSEKWCsgICAgICAgIGlmKGNyb3V0ZS0+dmlm Qml0cyA+IDAgfHwgZG93bklmID49IDApClgrICAgICAgICAgICAgcmVzdWx0ID0gaW50ZXJu VXBkYXRlS2VybmVsUm91dGUoY3JvdXRlLCAxLCBvKTsKWCAgICAgfQpYICAgICBJRl9ERUJV RyBsb2dSb3V0ZVRhYmxlKCJBY3RpdmF0ZSBSb3V0ZSIpOwpYIApYQEAgLTQ0Myw3ICs0NzUs NiBAQApYICogICByb3V0ZSBpcyBub3QgZm91bmQsIG9yIG5vdCBpbiB0aGlzIHN0YXRlLCAw IGlzIHJldHVybmVkLgpYICovClggaW50IGxhc3RNZW1iZXJHcm91cEFnZSh1aW50MzIgZ3Jv dXApIHsKWC0gICAgc3RydWN0IENvbmZpZyAgICAgICAqY29uZiA9IGdldENvbW1vbkNvbmZp ZygpOwpYICAgICBzdHJ1Y3QgUm91dGVUYWJsZSAgICpjcm91dGU7ClggClggICAgIGNyb3V0 ZSA9IGZpbmRSb3V0ZShncm91cCk7ClhAQCAtNDYzLDYgKzQ5NCw3IEBAClggKi8KWCBpbnQg cmVtb3ZlUm91dGUoc3RydWN0IFJvdXRlVGFibGUqICBjcm91dGUpIHsKWCAgICAgc3RydWN0 IENvbmZpZyAgICAgICAqY29uZiA9IGdldENvbW1vbkNvbmZpZygpOwpYKyAgICBzdHJ1Y3Qg T3JpZ2luICpvOwpYICAgICBpbnQgcmVzdWx0ID0gMTsKWCAgICAgClggICAgIC8vIElmIGNy b3V0ZSBpcyBudWxsLCBubyByb3V0ZXMgd2FzIGZvdW5kLgpYQEAgLTQ3Nyw3ICs1MDksNyBA QApYICAgICAvL0JJVF9aRVJPKGNyb3V0ZS0+dmlmQml0cyk7ClggClggICAgIC8vIFVuaW5z dGFsbCBjdXJyZW50IHJvdXRlIGZyb20ga2VybmVsClgtICAgIGlmKCFpbnRlcm5VcGRhdGVL ZXJuZWxSb3V0ZShjcm91dGUsIDApKSB7ClgrICAgIGlmKCFpbnRlcm5VcGRhdGVLZXJuZWxS b3V0ZShjcm91dGUsIDAsIE5VTEwpKSB7ClggICAgICAgICBsb2coTE9HX1dBUk5JTkcsIDAs ICJUaGUgcmVtb3ZhbCBmcm9tIEtlcm5lbCBmYWlsZWQuIik7ClggICAgICAgICByZXN1bHQg PSAwOwpYICAgICB9ClhAQCAtNTAzLDcgKzUzNSwxMiBAQApYICAgICAgICAgICAgIGNyb3V0 ZS0+bmV4dHJvdXRlLT5wcmV2cm91dGUgPSBjcm91dGUtPnByZXZyb3V0ZTsKWCAgICAgICAg IH0KWCAgICAgfQpYKwpYICAgICAvLyBGcmVlIHRoZSBtZW1vcnksIGFuZCBzZXQgdGhlIHJv dXRlIHRvIE5VTEwuLi4KWCsgICAgd2hpbGUgKChvID0gVEFJTFFfRklSU1QoJmNyb3V0ZS0+ b3JpZ2luTGlzdCkpKSB7ClgrCVRBSUxRX1JFTU9WRSgmY3JvdXRlLT5vcmlnaW5MaXN0LCBv LCBuZXh0KTsKWCsJZnJlZShvKTsKWCsgICAgfQpYICAgICBmcmVlKGNyb3V0ZSk7ClggICAg IGNyb3V0ZSA9IE5VTEw7ClggClhAQCAtNTUxLDYgKzU4OCwzNiBAQApYICAgICAgICAgfQpY ICAgICB9ClggClgrICAgIHsKWCsJc3RydWN0IE9yaWdpbiAqbywgKm54dDsKWCsJc3RydWN0 IHNpb2Nfc2dfcmVxIHNnX3JlcTsKWCsKWCsJc2dfcmVxLmdycC5zX2FkZHIgPSBjcm91dGUt Pmdyb3VwOwpYKwlmb3IgKG8gPSBUQUlMUV9GSVJTVCgmY3JvdXRlLT5vcmlnaW5MaXN0KTsg bzsgbyA9IG54dCkgewpYKwkgICAgbnh0ID0gVEFJTFFfTkVYVChvLCBuZXh0KTsKWCsJICAg IHNnX3JlcS5zcmMuc19hZGRyID0gby0+b3JpZ2luQWRkcjsKWCsJICAgIGlmIChpb2N0bChN Um91dGVyRkQsIFNJT0NHRVRTR0NOVCwgKGNoYXIgKikmc2dfcmVxKSA8IDApIHsKWCsJCWxv ZyhMT0dfV0FSTklORywgZXJybm8sICIlcyAoJXMgJXMpIiwKWCsJCSAgICAiYWdlX3RhYmxl X2VudHJ5OiBTSU9DR0VUU0dDTlQgZmFpbGluZyBmb3IiLApYKwkJICAgIGluZXRGbXQoby0+ b3JpZ2luQWRkciwgczEpLApYKwkJICAgIGluZXRGbXQoY3JvdXRlLT5ncm91cCwgczIpKTsK WCsJCS8qIE1ha2Ugc3VyZSBpdCBnZXRzIGRlbGV0ZWQgYmVsb3cgKi8KWCsJCXNnX3JlcS5w a3RjbnQgPSBvLT5wa3RjbnQ7ClgrCSAgICB9ClgrCSAgICBsb2coTE9HX0RFQlVHLCAwLCAi QWdpbmcgT3JpZ2luICVzIERzdCAlcyBQa3RDbnQgJWQgLT4gJWQiLApYKwkJaW5ldEZtdChv LT5vcmlnaW5BZGRyLCBzMSksIGluZXRGbXQoY3JvdXRlLT5ncm91cCwgczIpLApYKwkJby0+ cGt0Y250LCBzZ19yZXEucGt0Y250KTsKWCsJICAgIGlmIChzZ19yZXEucGt0Y250ID09IG8t PnBrdGNudCkgewpYKwkJLyogbm8gdHJhZmZpYywgcmVtb3ZlIGZyb20ga2VybmVsIGNhY2hl ICovClgrCQlpbnRlcm5VcGRhdGVLZXJuZWxSb3V0ZShjcm91dGUsIDAsIG8pOwpYKwkJVEFJ TFFfUkVNT1ZFKCZjcm91dGUtPm9yaWdpbkxpc3QsIG8sIG5leHQpOwpYKwkJZnJlZShvKTsK WCsJICAgIH0gZWxzZSB7ClgrCQlvLT5wa3RjbnQgPSBzZ19yZXEucGt0Y250OwpYKwkgICAg fQpYKwl9ClgrICAgIH0KWCsKWCAgICAgLy8gSWYgdGhlIGFnaW5nIGNvdW50ZXIgaGFzIHJl YWNoZWQgemVybywgaXRzIHRpbWUgZm9yIHVwZGF0aW5nLi4uClggICAgIGlmKGNyb3V0ZS0+ YWdlVmFsdWUgPT0gMCkgewpYICAgICAgICAgLy8gQ2hlY2sgZm9yIGFjdGl2aXR5IGluIHRo ZSBhZ2luZyBwcm9jZXNzLApYQEAgLTU2MCw3ICs2MjcsNyBAQApYICAgICAgICAgICAgICAg ICAgICAgICAgICBpbmV0Rm10KGNyb3V0ZS0+Z3JvdXAsczEpKTsKWCAgICAgICAgICAgICAK WCAgICAgICAgICAgICAvLyBKdXN0IHVwZGF0ZSB0aGUgcm91dGluZyBzZXR0aW5ncyBpbiBr ZXJuZWwuLi4KWC0gICAgICAgICAgICBpbnRlcm5VcGRhdGVLZXJuZWxSb3V0ZShjcm91dGUs IDEpOwpYKyAgICAgICAgICAgIGludGVyblVwZGF0ZUtlcm5lbFJvdXRlKGNyb3V0ZSwgMSwg TlVMTCk7ClggICAgIApYICAgICAgICAgICAgIC8vIFdlIGFwcGVuZCB0aGUgYWN0aXZpdHkg Y291bnRlciB0byB0aGUgYWdlLCBhbmQgY29udGludWUuLi4KWCAgICAgICAgICAgICBjcm91 dGUtPmFnZVZhbHVlID0gY3JvdXRlLT5hZ2VBY3Rpdml0eTsKWEBAIC01ODYsMzQgKzY1Myw1 NyBAQApYIC8qKgpYICogICBVcGRhdGVzIHRoZSBLZXJuZWwgcm91dGluZyB0YWJsZS4gSWYg YWN0aXZhdGUgaXMgMSwgdGhlIHJvdXRlClggKiAgIGlzIChyZS0pYWN0aXZhdGVkLiBJZiBh Y3RpdmF0ZSBpcyBmYWxzZSwgdGhlIHJvdXRlIGlzIHJlbW92ZWQuClgrKiAgIGlmICdvcmln aW4nIGlzIGdpdmVuLCBvbmx5IHRoZSByb3V0ZSB3aXRoICdvcmlnaW4nIHdpbGwgYmUKWCsq ICAgdXBkYXRlZCwgb3RoZXJ3aXNlIGFsbCBNRkMgcm91dGVzIGZvciB0aGUgZ3JvdXAgd2ls bCB1cGRhdGVkLgpYICovClgtaW50IGludGVyblVwZGF0ZUtlcm5lbFJvdXRlKHN0cnVjdCBS b3V0ZVRhYmxlICpyb3V0ZSwgaW50IGFjdGl2YXRlKSB7ClgraW50IGludGVyblVwZGF0ZUtl cm5lbFJvdXRlKHN0cnVjdCBSb3V0ZVRhYmxlICpyb3V0ZSwgaW50IGFjdGl2YXRlLCBzdHJ1 Y3QgT3JpZ2luICpvcmlnaW4pIHsKWCAgICAgc3RydWN0ICAgTVJvdXRlRGVzYyAgICAgbXJE ZXNjOwpYICAgICBzdHJ1Y3QgICBJZkRlc2MgICAgICAgICAqRHA7ClggICAgIHVuc2lnbmVk ICAgICAgICAgICAgICAgIEl4OwpYLSAgICAKWC0gICAgaWYocm91dGUtPm9yaWdpbkFkZHI+ MCkgewpYKyAgICBzdHJ1Y3QgT3JpZ2luICpvOwpYKwpYKyAgICBpZiAoVEFJTFFfRU1QVFko JnJvdXRlLT5vcmlnaW5MaXN0KSkgewpYKyAgICAgICAgbG9nKExPR19OT1RJQ0UsIDAsICJS b3V0ZSBpcyBub3QgYWN0aXZlLiBObyBrZXJuZWwgdXBkYXRlcyBkb25lLiIpOwpYKyAgICAg ICAgcmV0dXJuIDE7ClgrICAgIH0KWCsgICAgVEFJTFFfRk9SRUFDSChvLCAmcm91dGUtPm9y aWdpbkxpc3QsIG5leHQpIHsKWCsJaWYgKG9yaWdpbiAmJiBvcmlnaW4gIT0gbykKWCsgCWNv bnRpbnVlOwpYIApYICAgICAgICAgLy8gQnVpbGQgcm91dGUgZGVzY3JpcHRvciBmcm9tIHRh YmxlIGVudHJ5Li4uClggICAgICAgICAvLyBTZXQgdGhlIHNvdXJjZSBhZGRyZXNzIGFuZCBn cm91cCBhZGRyZXNzLi4uClggICAgICAgICBtckRlc2MuTWNBZHIuc19hZGRyICAgICA9IHJv dXRlLT5ncm91cDsKWC0gICAgICAgIG1yRGVzYy5PcmlnaW5BZHIuc19hZGRyID0gcm91dGUt Pm9yaWdpbkFkZHI7ClgrICAgICAgICBtckRlc2MuT3JpZ2luQWRyLnNfYWRkciA9IG8tPm9y aWdpbkFkZHI7ClggICAgIApYICAgICAgICAgLy8gY2xlYXIgb3V0cHV0IGludGVyZmFjZXMg ClggICAgICAgICBtZW1zZXQoIG1yRGVzYy5UdGxWYywgMCwgc2l6ZW9mKCBtckRlc2MuVHRs VmMgKSApOwpYICAgICAKWC0gICAgICAgIElGX0RFQlVHIGxvZyhMT0dfREVCVUcsIDAsICJW aWYgYml0cyA6IDB4JTA4eCIsIHJvdXRlLT52aWZCaXRzKTsKWC0KWCsgICAgICAgIElGX0RF QlVHIGxvZyhMT0dfREVCVUcsIDAsICJPcmlnaW4gJXMgVmlmIGJpdHMgOiAweCUwOHgiLCBp bmV0Rm10KG8tPm9yaWdpbkFkZHIsIHMxKSwgcm91dGUtPnZpZkJpdHMpOwpYICAgICAgICAg Ly8gU2V0IHRoZSBUVEwncyBmb3IgdGhlIHJvdXRlIGRlc2NyaXB0b3IuLi4KWC0gICAgICAg IGZvciAoIEl4ID0gMDsgRHAgPSBnZXRJZkJ5SXgoIEl4ICk7IEl4KysgKSB7ClgtICAgICAg ICAgICAgaWYoRHAtPnN0YXRlID09IElGX1NUQVRFX1VQU1RSRUFNKSB7ClgtICAgICAgICAg ICAgICAgIC8vSUZfREVCVUcgbG9nKExPR19ERUJVRywgMCwgIklkZW50aWZpZWQgVklGICMl ZCBhcyB1cHN0cmVhbS4iLCBEcC0+aW5kZXgpOwpYLSAgICAgICAgICAgICAgICBtckRlc2Mu SW5WaWYgPSBEcC0+aW5kZXg7ClgtICAgICAgICAgICAgfQpYLSAgICAgICAgICAgIGVsc2Ug aWYoQklUX1RTVChyb3V0ZS0+dmlmQml0cywgRHAtPmluZGV4KSkgewpYLSAgICAgICAgICAg ICAgICBJRl9ERUJVRyBsb2coTE9HX0RFQlVHLCAwLCAiU2V0dGluZyBUVEwgZm9yIFZpZiAl ZCB0byAlZCIsIERwLT5pbmRleCwgRHAtPnRocmVzaG9sZCk7ClgtICAgICAgICAgICAgICAg IG1yRGVzYy5UdGxWY1sgRHAtPmluZGV4IF0gPSBEcC0+dGhyZXNob2xkOwpYLSAgICAgICAg ICAgIH0KWCsgICAgICAgIGZvciAoIEl4ID0gMDsgKERwID0gZ2V0SWZCeUl4KCBJeCApKTsg SXgrKyApIHsKWCsJICAgIGlmIChvLT5mbG9vZCA+PSAwKSB7ClgrCQlpZihJeCA9PSAodW5z aWduZWQpIG8tPmZsb29kKSB7ClgrCQkgICAgSUZfREVCVUcgbG9nKExPR19ERUJVRywgMCwg IklkZW50aWZpZWQgSW5wdXQgVklGICMlZCBhcyBET1dOU1RSRUFNLiIsIERwLT5pbmRleCk7 ClgrCQkgICAgbXJEZXNjLkluVmlmID0gRHAtPmluZGV4OwpYKwkJfQpYKwkJZWxzZSBpZihE cC0+c3RhdGUgPT0gSUZfU1RBVEVfVVBTVFJFQU0pIHsKWCsJCSAgICBJRl9ERUJVRyBsb2co TE9HX0RFQlVHLCAwLCAiU2V0dGluZyBUVEwgZm9yIFVQU1RSRUFNIFZpZiAlZCB0byAlZCIs IERwLT5pbmRleCwgRHAtPnRocmVzaG9sZCk7ClgrCQkgICAgbXJEZXNjLlR0bFZjWyBEcC0+ aW5kZXggXSA9IERwLT50aHJlc2hvbGQ7ClgrCQl9ClgrCQllbHNlIGlmKEJJVF9UU1Qocm91 dGUtPnZpZkJpdHMsIERwLT5pbmRleCkpIHsKWCsJCSAgICBJRl9ERUJVRyBsb2coTE9HX0RF QlVHLCAwLCAiU2V0dGluZyBUVEwgZm9yIERPV05TVFJFQU0gVmlmICVkIHRvICVkIiwgRHAt PmluZGV4LCBEcC0+dGhyZXNob2xkKTsKWCsJCSAgICBtckRlc2MuVHRsVmNbIERwLT5pbmRl eCBdID0gRHAtPnRocmVzaG9sZDsKWCsJCX0KWCsJICAgIH0gZWxzZSB7ClgrCQlpZihEcC0+ c3RhdGUgPT0gSUZfU1RBVEVfVVBTVFJFQU0pIHsKWCsJCSAgICBJRl9ERUJVRyBsb2coTE9H X0RFQlVHLCAwLCAiSWRlbnRpZmllZCBWSUYgIyVkIGFzIHVwc3RyZWFtLiIsIERwLT5pbmRl eCk7ClgrCQkgICAgbXJEZXNjLkluVmlmID0gRHAtPmluZGV4OwpYKwkJfQpYKwkJZWxzZSBp ZihCSVRfVFNUKHJvdXRlLT52aWZCaXRzLCBEcC0+aW5kZXgpKSB7ClgrCQkgICAgSUZfREVC VUcgbG9nKExPR19ERUJVRywgMCwgIlNldHRpbmcgVFRMIGZvciBWaWYgJWQgdG8gJWQiLCBE cC0+aW5kZXgsIERwLT50aHJlc2hvbGQpOwpYKwkJICAgIG1yRGVzYy5UdGxWY1sgRHAtPmlu ZGV4IF0gPSBEcC0+dGhyZXNob2xkOwpYKwkJfQpYKwkgICAgfQpYICAgICAgICAgfQpYICAg ICAKWCAgICAgICAgIC8vIERvIHRoZSBhY3R1YWwgS2VybmVsIHJvdXRlIHVwZGF0ZS4uLgpY QEAgLTYyNSw5ICs3MTUsNiBAQApYICAgICAgICAgICAgIC8vIERlbGV0ZSB0aGUgcm91dGUg ZnJvbSBLZXJuZWwuLi4KWCAgICAgICAgICAgICBkZWxNUm91dGUoICZtckRlc2MgKTsKWCAg ICAgICAgIH0KWC0KWC0gICAgfSBlbHNlIHsKWC0gICAgICAgIGxvZyhMT0dfTk9USUNFLCAw LCAiUm91dGUgaXMgbm90IGFjdGl2ZS4gTm8ga2VybmVsIHVwZGF0ZXMgZG9uZS4iKTsKWCAg ICAgfQpYIApYICAgICByZXR1cm4gMTsKWEBAIC02NDcsMTYgKzczNCwxNyBAQApYICAgICAg ICAgICAgIGxvZyhMT0dfREVCVUcsIDAsICJObyByb3V0ZXMgaW4gdGFibGUuLi4iKTsKWCAg ICAgICAgIH0gZWxzZSB7ClggICAgICAgICAgICAgZG8gewpYLSAgICAgICAgICAgICAgICAv KgpYLSAgICAgICAgICAgICAgICBsb2coTE9HX0RFQlVHLCAwLCAiIyVkOiBTcmM6ICVzLCBE c3Q6ICVzLCBBZ2U6JWQsIFN0OiAlcywgUHJldjogMHglMDh4LCBUOiAweCUwOHgsIE5leHQ6 IDB4JTA4eCIsClgtICAgICAgICAgICAgICAgICAgICByY291bnQsIGluZXRGbXQoY3JvdXRl LT5vcmlnaW5BZGRyLCBzMSksIGluZXRGbXQoY3JvdXRlLT5ncm91cCwgczIpLApYLSAgICAg ICAgICAgICAgICAgICAgY3JvdXRlLT5hZ2VWYWx1ZSwoY3JvdXRlLT5vcmlnaW5BZGRyPjA/ IkEiOiJJIiksClgtICAgICAgICAgICAgICAgICAgICBjcm91dGUtPnByZXZyb3V0ZSwgY3Jv dXRlLCBjcm91dGUtPm5leHRyb3V0ZSk7ClgtICAgICAgICAgICAgICAgICovClgtICAgICAg ICAgICAgICAgIGxvZyhMT0dfREVCVUcsIDAsICIjJWQ6IFNyYzogJXMsIERzdDogJXMsIEFn ZTolZCwgU3Q6ICVzLCBPdXRWaWZzOiAweCUwOHgiLApYLSAgICAgICAgICAgICAgICAgICAg cmNvdW50LCBpbmV0Rm10KGNyb3V0ZS0+b3JpZ2luQWRkciwgczEpLCBpbmV0Rm10KGNyb3V0 ZS0+Z3JvdXAsIHMyKSwKWC0gICAgICAgICAgICAgICAgICAgIGNyb3V0ZS0+YWdlVmFsdWUs KGNyb3V0ZS0+b3JpZ2luQWRkcj4wPyJBIjoiSSIpLApYLSAgICAgICAgICAgICAgICAgICAg Y3JvdXRlLT52aWZCaXRzKTsKWCsJCWxvZyhMT0dfREVCVUcsIDAsICIjJWQ6IERzdDogJXMs IEFnZTolZCwgU3Q6ICVzLCBPdXRWaWZzOiAweCUwOHgiLApYKwkJICAgIHJjb3VudCwgaW5l dEZtdChjcm91dGUtPmdyb3VwLCBzMiksClgrCQkgICAgY3JvdXRlLT5hZ2VWYWx1ZSwoVEFJ TFFfRU1QVFkoJmNyb3V0ZS0+b3JpZ2luTGlzdCk/IkkiOiJBIiksClgrCQkgICAgY3JvdXRl LT52aWZCaXRzKTsKWCsJCXsKWCsJCSAgICBzdHJ1Y3QgT3JpZ2luICpvOwpYKwkJICAgIFRB SUxRX0ZPUkVBQ0gobywgJmNyb3V0ZS0+b3JpZ2luTGlzdCwgbmV4dCkgewpYKwkJCWxvZyhM T0dfREVCVUcsIDAsICIjJWQ6IE9yaWdpbjogJXMgZmxvb2RJZiAlZCBwa3RjbnQgJWQiLApY KwkJCSAgICByY291bnQsIGluZXRGbXQoby0+b3JpZ2luQWRkciwgczEpLCBvLT5mbG9vZCwg by0+cGt0Y250KTsKWCsJCSAgICB9ClgrCQl9ClggICAgICAgICAgICAgICAgICAgClggICAg ICAgICAgICAgICAgIGNyb3V0ZSA9IGNyb3V0ZS0+bmV4dHJvdXRlOyAKWCAgICAgICAgIApY ZGlmZiAtdXJOIHN5c2xvZy5jIGlnbXBwcm94eS5uZXcvc3JjL3N5c2xvZy5jClgtLS0gc3lz bG9nLmMJMjAwNS0wNS0yNCAxOTo0ODoxOS4wMDAwMDAwMDAgKzA0MDAKWCsrKyBpZ21wcHJv eHkubmV3L3NyYy9zeXNsb2cuYwkyMDA5LTAxLTA1IDAyOjA3OjUwLjAwMDAwMDAwMCArMDMw MApYQEAgLTUzLDEyICs1MywxNiBAQApYICoqIGlzIGxvZ2dlZCB0byAnc3RkZXJyJy4KWCAq KiAgICAgICAgICAKWCAqLwpYKyNpZmRlZiBERVZFTF9MT0dHSU5HClgrdm9pZCBfbG9nKCBp bnQgU2VydmVyaXR5LCBpbnQgRXJybm8sIGNvbnN0IGNoYXIgKmZ1bmMsIGludCBsaW5lLCBj b25zdCBjaGFyICpGbXRTdCwgLi4uICkKWCsjZWxzZQkKWCB2b2lkIGxvZyggaW50IFNlcnZl cml0eSwgaW50IEVycm5vLCBjb25zdCBjaGFyICpGbXRTdCwgLi4uICkKWCsjZW5kaWYKWCB7 ClggICBjb25zdCBjaGFyIFNlcnZWY1tdWyA1IF0gPSB7ICJFTUVSIiwgIkFMRVIiLCAiQ1JJ VCIsICJFUlJPIiwgClggCQkJICAgICAgICJXYXJuIiwgIk5vdGUiLCAiSW5mbyIsICJEZWJ1 IiB9OwpYIApYLSAgY29uc3QgY2hhciAqU2VydlB0ID0gU2VydmVyaXR5IDwgMCB8fCBTZXJ2 ZXJpdHkgPj0gVkNNQyggU2VydlZjICkgPyAKWCsgIGNvbnN0IGNoYXIgKlNlcnZQdCA9IFNl cnZlcml0eSA8IDAgfHwgU2VydmVyaXR5ID49IChpbnQpIFZDTUMoIFNlcnZWYyApID8gClgg ICAgICAgICAgICAgICAgICAgICAgICAiIXVua25vd24gc2VydmVyaXR5ISIgOiBTZXJ2VmNb IFNlcnZlcml0eSBdOwpYICAKWCAgIGNvbnN0IGNoYXIgKkVyclN0ID0gKEVycm5vIDw9IDAp ID8gTlVMTCA6IChjb25zdCBjaGFyICopc3RyZXJyb3IoIEVycm5vICk7IApYQEAgLTY5LDYg KzczLDkgQEAKWCAKWCAgICAgdmFfc3RhcnQoIEFyZ1B0LCBGbXRTdCApOwpYICAgICBMbiAg PSBzbnByaW50ZiggTG9nTGFzdE1zZywgc2l6ZW9mKCBMb2dMYXN0TXNnICksICIlczogIiwg U2VydlB0ICk7ClgrI2lmZGVmIERFVkVMX0xPR0dJTkcKWCsgICAgTG4gKz0gc25wcmludGYo IExvZ0xhc3RNc2cgKyBMbiwgc2l6ZW9mKCBMb2dMYXN0TXNnICkgLSBMbiwgIiVzKCk6JWQ6 ICIsIGZ1bmMsIGxpbmUpOwpYKyNlbmRpZiAgICAKWCAgICAgTG4gKz0gdnNucHJpbnRmKCBM b2dMYXN0TXNnICsgTG4sIHNpemVvZiggTG9nTGFzdE1zZyApIC0gTG4sIEZtdFN0LCBBcmdQ dCApOwpYICAgICBpZiggRXJyU3QgKQpYICAgICAgIHNucHJpbnRmKCBMb2dMYXN0TXNnICsg TG4sIHNpemVvZiggTG9nTGFzdE1zZyApIC0gTG4sICI7IEVycm5vKCVkKTogJXMiLCBFcnJu bywgRXJyU3QgKTsKRU5ELW9mLWlnbXBwcm94eS9maWxlcy9wYXRjaC1mYnNkCmVjaG8geCAt IGlnbXBwcm94eS9maWxlcy9pZ21wcHJveHkKc2VkICdzL15YLy8nID5pZ21wcHJveHkvZmls ZXMvaWdtcHByb3h5IDw8ICdFTkQtb2YtaWdtcHByb3h5L2ZpbGVzL2lnbXBwcm94eScKWCMh L2Jpbi9zaApYIwpYIyAkRnJlZUJTRDogc3JjL2V0Yy9yYy5kL2xwZCx2IDEuOC40LjEgMjAw OC8wMS8yOCAwNzo1ODozMSBkb3VnYiBFeHAgJApYIwpYClgjIFBST1ZJREU6IGlnbXBwcm94 eQpYIyBSRVFVSVJFOiBORVRXT1JLSU5HClgKWC4gL2V0Yy9yYy5zdWJyClgKWG5hbWU9Imln bXBwcm94eSIKWHJjdmFyPWBzZXRfcmN2YXJgClhjb21tYW5kPSIvdXNyL2xvY2FsL3NiaW4v JHtuYW1lfSIKWHJlcXVpcmVkX2ZpbGVzPSIvdXNyL2xvY2FsL2V0Yy9pZ21wcHJveHkuY29u ZiIKWGlnbXBwcm94eV9lbmFibGU9JHtpZ21wcHJveHlfZW5hYmxlLSJOTyJ9ClgKWGxvYWRf cmNfY29uZmlnICRuYW1lClhydW5fcmNfY29tbWFuZCAiJDEiCkVORC1vZi1pZ21wcHJveHkv ZmlsZXMvaWdtcHByb3h5CmV4aXQKCg== ------------DD1D5D193AB3E2--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200901062110.n06LA2VX071398>