From: Date: August 14 2008 9:32am Subject: bzr commit into mysql-6.0 branch (hezx:2684) Bug#10143 Bug#21226 Bug#22165 Bug#29211 Bug#29738 Bug#31605 Bug#33002 Bug#33053 Bug#33362 Bug#33637 Bug#34159 Bug#34286 Bug#34705 Bug#34706 Bug#35072 Bug#35220 Bug#35352 Bug#35808 Bug#35939 Bug#36522 Bug#36600 Bug#36679 Bug#36990 Bug#37003 Bug#37201 Bug#37622 Bug#37662 Bug#37708 Bug#37733 Bug#37781 Bug#37830 Bug#37884 Bug#38002 Bug#38039 Bug#38186 Bug#38191 Bug#38296 Bug#38383 Bug#38486 Bug#38519 List-Archive: http://lists.mysql.com/commits/51602 X-Bug: 10143, 21226, 22165, 29211, 29738, 31605, 33002, 33053, 33362, 33637, 34159, 34286, 34705, 34706, 35072, 35220, 35352, 35808, 35939, 36522, 36600, 36679, 36990, 37003, 37201, 37622, 37662, 37708, 37733, 37781, 37830, 37884, 38002, 38039, 38186, 38191, 38296, 38383, 38486, 38519 Message-Id: <200808140732.m7E7WKCQ000956@mail.hezx.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 I0F0IGZpbGU6Ly8vbWVkaWEvc2RhMy93b3JrL215c3FsL2J6cndvcmsvbWVyZ2UvNi4wLXJwbC10 ZXN0Zml4ZXMvCgogMjY4NCBIZSBaaGVueGluZwkyMDA4LTA4LTE0IFttZXJnZV0KICAgICAgTWVy Z2UgNi4wIC0+IDYuMC1ycGwtdGVzdGZpeGVzCnJlbW92ZWQ6CiAgbXlzcWwtdGVzdC9pbmNsdWRl L3dhaXRfdGltZW91dF9iYXNpYy5pbmMKYWRkZWQ6CiAgbXlzcWwtdGVzdC9pbmNsdWRlL2hhdmVf bm9kZWJ1Zy5pbmMKICBteXNxbC10ZXN0L3IvaGF2ZV9ub2RlYnVnLnJlcXVpcmUKICBteXNxbC10 ZXN0L3IvaW5ub2RiLWF1dG9pbmMtb3B0aW1pemUucmVzdWx0CiAgbXlzcWwtdGVzdC9yL3NwLW5v LWNvZGUucmVzdWx0CiAgbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vci9mYWxjb25fYnVnXzM1OTM5 LnJlc3VsdAogIG15c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX2J1Z18zODAzOS5yZXN1 bHQKICBteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi90L2ZhbGNvbl9idWdfMzU5MzkudGVzdAogIG15 c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX2J1Z18zODAzOS50ZXN0CiAgbXlzcWwtdGVz dC9zdWl0ZS9zeXNfdmFycy9pbmMvbXVsdGlfcmFuZ2VfY291bnRfYmFzaWMuaW5jCiAgbXlzcWwt dGVzdC9zdWl0ZS9zeXNfdmFycy9yL211bHRpX3JhbmdlX2NvdW50X2Jhc2ljXzMyLnJlc3VsdAog IG15c3FsLXRlc3Qvc3VpdGUvc3lzX3ZhcnMvci9tdWx0aV9yYW5nZV9jb3VudF9iYXNpY182NC5y ZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL3N5c192YXJzL3QvbXVsdGlfcmFuZ2VfY291bnRfYmFz aWNfMzIudGVzdAogIG15c3FsLXRlc3Qvc3VpdGUvc3lzX3ZhcnMvdC9tdWx0aV9yYW5nZV9jb3Vu dF9iYXNpY182NC50ZXN0CiAgbXlzcWwtdGVzdC90L2lubm9kYi1hdXRvaW5jLW9wdGltaXplLnRl c3QKICBteXNxbC10ZXN0L3Qvc3Atbm8tY29kZS50ZXN0CnJlbmFtZWQ6CiAgbXlzcWwtdGVzdC9z dWl0ZS9mYWxjb25fdGVhbS9yL2ZhbGNvbl9idWdfMjM5NjIucmVzdWx0ID0+IG15c3FsLXRlc3Qv c3VpdGUvZmFsY29uL3IvZmFsY29uX2J1Z18yMzk2Mi5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRl L2ZhbGNvbl90ZWFtL3IvZmFsY29uX2J1Z18yNzk5Ny5yZXN1bHQgPT4gbXlzcWwtdGVzdC9zdWl0 ZS9mYWxjb24vci9mYWxjb25fYnVnXzI3OTk3LnJlc3VsdAogIG15c3FsLXRlc3Qvc3VpdGUvZmFs Y29uX3RlYW0vci9mYWxjb25fYnVnXzM3MDgwLnJlc3VsdCA9PiBteXNxbC10ZXN0L3N1aXRlL2Zh bGNvbi9yL2ZhbGNvbl9idWdfMzcwODAucmVzdWx0CiAgbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb25f dGVhbS90L2ZhbGNvbl9idWdfMjM5NjIudGVzdCA9PiBteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi90 L2ZhbGNvbl9idWdfMjM5NjIudGVzdAogIG15c3FsLXRlc3Qvc3VpdGUvZmFsY29uX3RlYW0vdC9m YWxjb25fYnVnXzI3OTk3LnRlc3QgPT4gbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxjb25f YnVnXzI3OTk3LnRlc3QKICBteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbl90ZWFtL3QvZmFsY29uX2J1 Z18zNzA4MC50ZXN0ID0+IG15c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX2J1Z18zNzA4 MC50ZXN0Cm1vZGlmaWVkOgogIC5ienItbXlzcWwvZGVmYXVsdC5jb25mCiAgY2xpZW50L01ha2Vm aWxlLmFtCiAgY2xpZW50L215c3FsX3VwZ3JhZGUuYwogIGNsaWVudC9teXNxbHRlc3QuYwogIGNv bmZpZy9hYy1tYWNyb3MvY2hhcmFjdGVyX3NldHMubTQKICBjb25maWd1cmUuaW4KICBleHRyYS9j b21wX2Vyci5jCiAgZXh0cmEvcGVycm9yLmMKICBteXNxbC10ZXN0L215c3FsLXRlc3QtcnVuLnBs CiAgbXlzcWwtdGVzdC9yL2Z1bmNfaWYucmVzdWx0CiAgbXlzcWwtdGVzdC9yL3BlcnJvci5yZXN1 bHQKICBteXNxbC10ZXN0L3Ivc3Vic2VsZWN0LnJlc3VsdAogIG15c3FsLXRlc3Qvci9zdWJzZWxl Y3Rfbm9fbWF0LnJlc3VsdAogIG15c3FsLXRlc3Qvci9zdWJzZWxlY3Rfbm9fb3B0cy5yZXN1bHQK ICBteXNxbC10ZXN0L3Ivc3Vic2VsZWN0X25vX3NlbWlqb2luLnJlc3VsdAogIG15c3FsLXRlc3Qv c3VpdGUvZmFsY29uL3IvZmFsY29uX2J1Z18yMjE2MS5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRl L2ZhbGNvbi9yL2ZhbGNvbl9idWdfMzEyOTUucmVzdWx0CiAgbXlzcWwtdGVzdC9zdWl0ZS9mYWxj b24vci9mYWxjb25fYnVnXzMzNDA0LnJlc3VsdAogIG15c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3Iv ZmFsY29uX29wdGlvbnMucmVzdWx0CiAgbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vci9mYWxjb25f b3B0aW9uczIucmVzdWx0CiAgbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxjb25fYnVnXzIy MTYxLnRlc3QKICBteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi90L2ZhbGNvbl9idWdfMzEyOTUudGVz dAogIG15c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX2J1Z18zMzQwNC50ZXN0CiAgbXlz cWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxjb25fb3B0aW9uczIudGVzdAogIG15c3FsLXRlc3Qv c3VpdGUvZnVuY3NfMS9yL2ZhbGNvbl9zdG9yZWRwcm9jLnJlc3VsdAogIG15c3FsLXRlc3Qvc3Vp dGUvZnVuY3NfMS9yL2ZhbGNvbl90cmlnXzAzLnJlc3VsdAogIG15c3FsLXRlc3Qvc3VpdGUvZnVu Y3NfMS9yL2ZhbGNvbl90cmlnXzAzZS5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEv ci9pbm5vZGJfc3RvcmVkcHJvYy5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9p bm5vZGJfdHJpZ18wMy5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9pbm5vZGJf dHJpZ18wM2UucmVzdWx0CiAgbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvaXNfY29sdW1uc19p c19mYWxjb24ucmVzdWx0CiAgbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvaXNfY29sdW1uc19t eXNxbC5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9pc190YWJsZXNfaXNfZmFs Y29uLnJlc3VsdAogIG15c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2lzX3VzZXJfcHJpdmlsZWdl cy5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9tZW1vcnlfc3RvcmVkcHJvYy5y ZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9tZW1vcnlfdHJpZ18wMy5yZXN1bHQK ICBteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9tZW1vcnlfdHJpZ18wM2UucmVzdWx0CiAgbXlz cWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvbXlpc2FtX3N0b3JlZHByb2MucmVzdWx0CiAgbXlzcWwt dGVzdC9zdWl0ZS9mdW5jc18xL3IvbXlpc2FtX3RyaWdfMDMucmVzdWx0CiAgbXlzcWwtdGVzdC9z dWl0ZS9mdW5jc18xL3IvbXlpc2FtX3RyaWdfMDNlLnJlc3VsdAogIG15c3FsLXRlc3Qvc3VpdGUv ZnVuY3NfMS9yL25kYl9zdG9yZWRwcm9jLnJlc3VsdAogIG15c3FsLXRlc3Qvc3VpdGUvZnVuY3Nf MS9yL25kYl90cmlnXzAzLnJlc3VsdAogIG15c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL25kYl90 cmlnXzAzZS5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvdHJpZ2dlcnMvdHJpZ2dl cnNfMDMuaW5jCiAgbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3RyaWdnZXJzL3RyaWdnZXJzXzA4 LmluYwogIG15c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS90cmlnZ2Vycy90cmlnZ2Vyc18xMDExZXh0 LmluYwogIG15c3FsLXRlc3Qvc3VpdGUvbmRiL3IvbmRiX2Jhc2ljLnJlc3VsdAogIG15c3FsLXRl c3Qvc3VpdGUvbmRiL3QvZGlzYWJsZWQuZGVmCiAgbXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9kaXNh YmxlZC5kZWYKICBteXNxbC10ZXN0L3QvZnVuY19pZi50ZXN0CiAgbXlzcWwtdGVzdC90L2luZm9y bWF0aW9uX3NjaGVtYS1tYXN0ZXIub3B0CiAgbXlzcWwtdGVzdC90L2luZm9ybWF0aW9uX3NjaGVt YV9kYi1tYXN0ZXIub3B0CiAgbXlzcWwtdGVzdC90L215c3Fsc2hvdy1tYXN0ZXIub3B0CiAgbXlz cWwtdGVzdC90L3BlcnJvci50ZXN0CiAgbXlzcWwtdGVzdC90L3N1YnNlbGVjdC50ZXN0CiAgbXlz cWwtdGVzdC90L3ZhcmlhYmxlcy1tYXN0ZXIub3B0CiAgc2NyaXB0cy9teXNxbF9zeXN0ZW1fdGFi bGVzX2ZpeC5zcWwKICBzcWwvZmllbGQuaAogIHNxbC9pdGVtLmNjCiAgc3FsL2l0ZW0uaAogIHNx bC9pdGVtX2NtcGZ1bmMuY2MKICBzcWwvaXRlbV9mdW5jLmNjCiAgc3FsL215c3FsX3ByaXYuaAog IHNxbC9wcm9iZXMuaAogIHNxbC9zaGFyZS9lcnJtc2cudHh0CiAgc3FsL3NwX2hlYWQuY2MKICBz cWwvc3FsX2FjbC5jYwogIHNxbC9zcWxfYmFzZS5jYwogIHNxbC9zcWxfZXJyb3IuY2MKICBzcWwv c3FsX2Vycm9yLmgKICBzcWwvc3FsX2xleC5oCiAgc3FsL3NxbF9saXN0LmgKICBzcWwvc3FsX3Bh cnNlLmNjCiAgc3FsL3NxbF9zZWxlY3QuY2MKICBzcWwvc3FsX3N0cmluZy5oCiAgc3FsL3NxbF95 YWNjLnl5CiAgc3FsL3RhYmxlLmNjCiAgc3FsL3RhYmxlLmgKICBzcWwvdGhyX21hbGxvYy5jYwog IHN0b3JhZ2UvZmFsY29uL0JEQi5jcHAKICBzdG9yYWdlL2ZhbGNvbi9CREIuaAogIHN0b3JhZ2Uv ZmFsY29uL0JhY2tMb2cuY3BwCiAgc3RvcmFnZS9mYWxjb24vQ2FjaGUuY3BwCiAgc3RvcmFnZS9m YWxjb24vQ29sbGF0aW9uTWFuYWdlci5jcHAKICBzdG9yYWdlL2ZhbGNvbi9Db21waWxlZFN0YXRl bWVudC5jcHAKICBzdG9yYWdlL2ZhbGNvbi9Db25maWd1cmF0aW9uLmNwcAogIHN0b3JhZ2UvZmFs Y29uL0NvbmZpZ3VyYXRpb24uaAogIHN0b3JhZ2UvZmFsY29uL0Nvbm5lY3Rpb24uY3BwCiAgc3Rv cmFnZS9mYWxjb24vRGF0YWJhc2UuY3BwCiAgc3RvcmFnZS9mYWxjb24vRGF0YWJhc2VDbG9uZS5j cHAKICBzdG9yYWdlL2ZhbGNvbi9EYXRhYmFzZUNvcHkuY3BwCiAgc3RvcmFnZS9mYWxjb24vRGJi LmNwcAogIHN0b3JhZ2UvZmFsY29uL0RiYi5oCiAgc3RvcmFnZS9mYWxjb24vRGVmZXJyZWRJbmRl eC5jcHAKICBzdG9yYWdlL2ZhbGNvbi9EZWZlcnJlZEluZGV4LmgKICBzdG9yYWdlL2ZhbGNvbi9H b3BoZXIuY3BwCiAgc3RvcmFnZS9mYWxjb24vSU8uY3BwCiAgc3RvcmFnZS9mYWxjb24vSU94LmgK ICBzdG9yYWdlL2ZhbGNvbi9JbmRleC5jcHAKICBzdG9yYWdlL2ZhbGNvbi9JbmRleFdhbGtlci5j cHAKICBzdG9yYWdlL2ZhbGNvbi9JbmRleFdhbGtlci5oCiAgc3RvcmFnZS9mYWxjb24vSW52ZXJz aW9uLmNwcAogIHN0b3JhZ2UvZmFsY29uL0xpY2Vuc2VNYW5hZ2VyLmNwcAogIHN0b3JhZ2UvZmFs Y29uL01ha2VmaWxlLmFtCiAgc3RvcmFnZS9mYWxjb24vTWVtTWdyLmNwcAogIHN0b3JhZ2UvZmFs Y29uL1JlY29yZExlYWYuY3BwCiAgc3RvcmFnZS9mYWxjb24vUmVjb3JkVmVyc2lvbi5jcHAKICBz dG9yYWdlL2ZhbGNvbi9SZWNvdmVyeU9iamVjdHMuY3BwCiAgc3RvcmFnZS9mYWxjb24vUmVjb3Zl cnlPYmplY3RzLmgKICBzdG9yYWdlL2ZhbGNvbi9SZXBvc2l0b3J5LmNwcAogIHN0b3JhZ2UvZmFs Y29uL1JlcG9zaXRvcnlNYW5hZ2VyLmNwcAogIHN0b3JhZ2UvZmFsY29uL1JlcG9zaXRvcnlWb2x1 bWUuY3BwCiAgc3RvcmFnZS9mYWxjb24vUmVzdWx0U2V0LmNwcAogIHN0b3JhZ2UvZmFsY29uL1Jv bGUuY3BwCiAgc3RvcmFnZS9mYWxjb24vU1FMUGFyc2UuY3BwCiAgc3RvcmFnZS9mYWxjb24vU1JM Q3JlYXRlVGFibGVTcGFjZS5jcHAKICBzdG9yYWdlL2ZhbGNvbi9TUkxDcmVhdGVUYWJsZVNwYWNl LmgKICBzdG9yYWdlL2ZhbGNvbi9TUkxEZWxldGVJbmRleC5jcHAKICBzdG9yYWdlL2ZhbGNvbi9T UkxQcmVwYXJlLmNwcAogIHN0b3JhZ2UvZmFsY29uL1NSTFJvbGxiYWNrLmNwcAogIHN0b3JhZ2Uv ZmFsY29uL1NSTFVwZGF0ZUluZGV4LmNwcAogIHN0b3JhZ2UvZmFsY29uL1NjaGVkdWxlci5jcHAK ICBzdG9yYWdlL2ZhbGNvbi9TZWN0b3JCdWZmZXIuY3BwCiAgc3RvcmFnZS9mYWxjb24vU2VjdG9y Q2FjaGUuY3BwCiAgc3RvcmFnZS9mYWxjb24vU2VxdWVuY2VNYW5hZ2VyLmNwcAogIHN0b3JhZ2Uv ZmFsY29uL1NlcmlhbExvZy5jcHAKICBzdG9yYWdlL2ZhbGNvbi9TZXJpYWxMb2cuaAogIHN0b3Jh Z2UvZmFsY29uL1NlcmlhbExvZ0ZpbGUuY3BwCiAgc3RvcmFnZS9mYWxjb24vU2VydmVyLmNwcAog IHN0b3JhZ2UvZmFsY29uL1Nlc3Npb25NYW5hZ2VyLmNwcAogIHN0b3JhZ2UvZmFsY29uL1N0YXRl bWVudC5jcHAKICBzdG9yYWdlL2ZhbGNvbi9TdG9yYWdlRGF0YWJhc2UuY3BwCiAgc3RvcmFnZS9m YWxjb24vU3RvcmFnZURhdGFiYXNlLmgKICBzdG9yYWdlL2ZhbGNvbi9TdG9yYWdlSGFuZGxlci5j cHAKICBzdG9yYWdlL2ZhbGNvbi9TdG9yYWdlSGFuZGxlci5oCiAgc3RvcmFnZS9mYWxjb24vU3Rv cmFnZVRhYmxlU2hhcmUuY3BwCiAgc3RvcmFnZS9mYWxjb24vU3ltYm9sTWFuYWdlci5jcHAKICBz dG9yYWdlL2ZhbGNvbi9TeW5jLmNwcAogIHN0b3JhZ2UvZmFsY29uL1N5bmMuaAogIHN0b3JhZ2Uv ZmFsY29uL1N5bmNPYmplY3QuY3BwCiAgc3RvcmFnZS9mYWxjb24vU3luY09iamVjdC5oCiAgc3Rv cmFnZS9mYWxjb24vU3luY1Rlc3QuY3BwCiAgc3RvcmFnZS9mYWxjb24vVGFibGUuY3BwCiAgc3Rv cmFnZS9mYWxjb24vVGFibGVTcGFjZS5jcHAKICBzdG9yYWdlL2ZhbGNvbi9UYWJsZVNwYWNlLmgK ICBzdG9yYWdlL2ZhbGNvbi9UYWJsZVNwYWNlTWFuYWdlci5jcHAKICBzdG9yYWdlL2ZhbGNvbi9U YWJsZVNwYWNlTWFuYWdlci5oCiAgc3RvcmFnZS9mYWxjb24vVGhyZWFkLmNwcAogIHN0b3JhZ2Uv ZmFsY29uL1RocmVhZHMuY3BwCiAgc3RvcmFnZS9mYWxjb24vVHJhbnNhY3Rpb24uY3BwCiAgc3Rv cmFnZS9mYWxjb24vVHJhbnNhY3Rpb24uaAogIHN0b3JhZ2UvZmFsY29uL1RyYW5zYWN0aW9uTWFu YWdlci5jcHAKICBzdG9yYWdlL2ZhbGNvbi9XYWxrRGVmZXJyZWQuY3BwCiAgc3RvcmFnZS9mYWxj b24vV2Fsa0RlZmVycmVkLmgKICBzdG9yYWdlL2ZhbGNvbi9XYWxrSW5kZXguY3BwCiAgc3RvcmFn ZS9mYWxjb24vaGFfZmFsY29uLmNwcAogIHN0b3JhZ2UvZmFsY29uL2hhX2ZhbGNvbi5oCiAgc3Vw cG9ydC1maWxlcy9idWlsZC10YWdzCiAgbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vci9mYWxjb25f YnVnXzIzOTYyLnJlc3VsdAogIG15c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX2J1Z18z NzA4MC5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi90L2ZhbGNvbl9idWdfMjM5NjIu dGVzdAogIG15c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX2J1Z18zNzA4MC50ZXN0Cgo9 PT0gbW9kaWZpZWQgZmlsZSAnLmJ6ci1teXNxbC9kZWZhdWx0LmNvbmYnCi0tLSBhLy5ienItbXlz cWwvZGVmYXVsdC5jb25mCTIwMDgtMDctMjggMTc6NDQ6MTQgKzAwMDAKKysrIGIvLmJ6ci1teXNx bC9kZWZhdWx0LmNvbmYJMjAwOC0wOC0xMiAxNDoxODo1MiArMDAwMApAQCAtMSw1ICsxLDUgQEAK LVtNWVNRTF0NCi10cmVlX2xvY2F0aW9uID0gYnpyK3NzaDovL2JrLWludGVybmFsLm15c3FsLmNv bS9ienJyb290L3NlcnZlci9teXNxbC02LjANCi1wb3N0X2NvbW1pdF90byA9IGNvbW1pdHNAbGlz dHMubXlzcWwuY29tDQotcG9zdF9wdXNoX3RvID0gY29tbWl0c0BsaXN0cy5teXNxbC5jb20NCi10 cmVlX25hbWUgPSBteXNxbC02LjANCitbTVlTUUxdCit0cmVlX2xvY2F0aW9uID0gYnpyK3NzaDov L2JrLWludGVybmFsLm15c3FsLmNvbS9ienJyb290L3NlcnZlci9teXNxbC02LjAKK3Bvc3RfY29t bWl0X3RvID0gY29tbWl0c0BsaXN0cy5teXNxbC5jb20KK3Bvc3RfcHVzaF90byA9IGNvbW1pdHNA bGlzdHMubXlzcWwuY29tCit0cmVlX25hbWUgPSBteXNxbC02LjAKCj09PSBtb2RpZmllZCBmaWxl ICdjbGllbnQvTWFrZWZpbGUuYW0nCi0tLSBhL2NsaWVudC9NYWtlZmlsZS5hbQkyMDA4LTA2LTIw IDExOjQwOjAxICswMDAwCisrKyBiL2NsaWVudC9NYWtlZmlsZS5hbQkyMDA4LTA4LTA2IDE0OjM5 OjAzICswMDAwCkBAIC04OCwxMSArODgsMTIgQEAgbXlzcWxzbGFwX0xEQUREID0JCSQoQ1hYTERG TEFHUykgJChDTElFTgogCiBteXNxbHRlc3RfU09VUkNFUz0JCW15c3FsdGVzdC5jCiBteXNxbHRl c3RfQ0ZMQUdTPQkJLURUSFJFQUQgLVVVTkRFRl9USFJFQURTX0hBQ0sKLW15c3FsdGVzdF9MREFE RCA9CQkkKENYWExERkxBR1MpICQoQ0xJRU5UX1RIUkVBRF9MSUJTKSBcCitteXNxbHRlc3RfTERB REQgPQkJJChDWFhMREZMQUdTKSBcCiAJCQkJQENMSUVOVF9FWFRSQV9MREZMQUdTQCBcCiAJCQkJ JChMSUJNWVNRTENMSUVOVF9MQSkgXAogCQkJCSQodG9wX2J1aWxkZGlyKS9teXN5cy9saWJteXN5 cy5hIFwKLQkJCQkkKHRvcF9idWlsZGRpcikvcmVnZXgvbGlicmVnZXguYQorCQkJCSQodG9wX2J1 aWxkZGlyKS9yZWdleC9saWJyZWdleC5hIFwKKwkJCQkkKENMSUVOVF9USFJFQURfTElCUykKIAog bXlzcWxfdXBncmFkZV9TT1VSQ0VTPSAgICAgICAgICBteXNxbF91cGdyYWRlLmMgXAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRvcF9zcmNkaXIpL215c3lzL215X2dldHBhZ2Vz aXplLmMKCj09PSBtb2RpZmllZCBmaWxlICdjbGllbnQvbXlzcWxfdXBncmFkZS5jJwotLS0gYS9j bGllbnQvbXlzcWxfdXBncmFkZS5jCTIwMDgtMDUtMDIgMTc6NDI6MzQgKzAwMDAKKysrIGIvY2xp ZW50L215c3FsX3VwZ3JhZGUuYwkyMDA4LTA4LTExIDE1OjMwOjI5ICswMDAwCkBAIC0yNjksNiAr MjY5LDEwIEBAIGdldF9vbmVfb3B0aW9uKGludCBvcHRpZCwgY29uc3Qgc3RydWN0IG0KIH0KIAog CisvKioKKyAgUnVuIGEgY29tbWFuZCB1c2luZyB0aGUgc2hlbGwsIHN0b3JpbmcgaXRzIG91dHB1 dCBpbiB0aGUgc3VwcGxpZWQgZHluYW1pYworICBzdHJpbmcuCisqLwogc3RhdGljIGludCBydW5f Y29tbWFuZChjaGFyKiBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgIERZTkFNSUNfU1RSSU5H ICpkc19yZXMpCiB7CkBAIC0zNDEsMzcgKzM0NSwxNSBAQCBzdGF0aWMgaW50IHJ1bl90b29sKGNo YXIgKnRvb2xfcGF0aCwgRFlOCiB9CiAKIAotLyoKLSAgVHJ5IHRvIGdldCB0aGUgZnVsbCBwYXRo IHRvIHRoaXMgZXhjZXV0YWJsZQotCi0gIFJldHVybiAwIGlmIHBhdGggZm91bmQKLQorLyoqCisg IExvb2sgZm9yIHRoZSBmaWxlbmFtZSBvZiBnaXZlbiB0b29sLCB3aXRoIHRoZSBwcmVzdW1wdGlv biB0aGF0IGl0IGlzIGluIHRoZQorICBzYW1lIGRpcmVjdG9yeSBhcyBteXNxbF91cGdyYWRlIGFu ZCB0aGF0IHRoZSBzYW1lIGV4ZWN1dGFibGUtc2VhcmNoaW5nIAorICBtZWNoYW5pc20gd2lsbCBi ZSB1c2VkIHdoZW4gd2UgcnVuIG91ciBzdWItc2hlbGxzIHdpdGggcG9wZW4oKSBsYXRlci4KICov Ci0KLXN0YXRpYyBteV9ib29sIGdldF9mdWxsX3BhdGhfdG9fZXhlY3V0YWJsZShjaGFyKiBwYXRo KQorc3RhdGljIHZvaWQgZmluZF90b29sKGNoYXIgKnRvb2xfZXhlY3V0YWJsZV9uYW1lLCBjb25z dCBjaGFyICp0b29sX25hbWUsIAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNl bGZfbmFtZSkKIHsKLSAgbXlfYm9vbCByZXQ7Ci0gIERCVUdfRU5URVIoImdldF9mdWxsX3BhdGhf dG9fZXhlY3V0YWJsZSIpOwotI2lmZGVmIF9fV0lOX18KLSAgcmV0PSAoR2V0TW9kdWxlRmlsZU5h bWUoTlVMTCwgcGF0aCwgRk5fUkVGTEVOKSA9PSAwKTsKLSNlbHNlCi0gIC8qIG15X3JlYWRsaW5r IHJldHVybnMgMCBpZiBhIHN5bWxpbmsgd2FzIHJlYWQgKi8KLSAgcmV0PSAobXlfcmVhZGxpbmso cGF0aCwgIi9wcm9jL3NlbGYvZXhlIiwgTVlGKDApKSAhPSAwKTsKLSAgLyogTWlnaHQgYWxzbyB3 YW50IHRvIHRyeSB3aXRoIC9wcm9jLyQkL2V4ZSBpZiB0aGUgYWJvdmUgZmFpbHMgKi8KLSNlbmRp ZgotICBEQlVHX1BSSU5UKCJleGl0IiwgKCJwYXRoOiAlcyIsIHBhdGgpKTsKLSAgREJVR19SRVRV Uk4ocmV0KTsKLX0KLQotCi0vKgotICBMb29rIGZvciB0aGUgdG9vbCBpbiB0aGUgc2FtZSBkaXJl Y3RvcnkgYXMgbXlzcWxfdXBncmFkZS4KLSovCi0KLXN0YXRpYyB2b2lkIGZpbmRfdG9vbChjaGFy ICp0b29sX3BhdGgsIGNvbnN0IGNoYXIgKnRvb2xfbmFtZSkKLXsKLSAgc2l6ZV90IHBhdGhfbGVu OwotICBjaGFyIHBhdGhbRk5fUkVGTEVOXTsKKyAgY2hhciAqbGFzdF9mbl9saWJjaGFyOwogICBE WU5BTUlDX1NUUklORyBkc190bXA7CiAgIERCVUdfRU5URVIoImZpbmRfdG9vbCIpOwogICBEQlVH X1BSSU5UKCJlbnRlciIsICgicHJvZ25hbWU6ICVzIiwgbXlfcHJvZ25hbWUpKTsKQEAgLTM3OSw3 NyArMzYxLDU5IEBAIHN0YXRpYyB2b2lkIGZpbmRfdG9vbChjaGFyICp0b29sX3BhdGgsIGMKICAg aWYgKGluaXRfZHluYW1pY19zdHJpbmcoJmRzX3RtcCwgIiIsIDMyLCAzMikpCiAgICAgZGllKCJP dXQgb2YgbWVtb3J5Iik7CiAKLSAgLyogSW5pdGlhbGl6ZSBwYXRoIHdpdGggdGhlIGZ1bGwgcGF0 aCB0byB0aGlzIHByb2dyYW0gKi8KLSAgaWYgKGdldF9mdWxsX3BhdGhfdG9fZXhlY3V0YWJsZShw YXRoKSkKKyAgbGFzdF9mbl9saWJjaGFyPSBzdHJyY2hyKHNlbGZfbmFtZSwgRk5fTElCQ0hBUik7 CisKKyAgaWYgKGxhc3RfZm5fbGliY2hhciA9PSBOVUxMKQogICB7CiAgICAgLyoKLSAgICAgIEVh c3kgd2F5IHRvIGdldCBmdWxsIGV4ZWN1dGFibGUgcGF0aCBmYWlsZWQsIHRyeQotICAgICAgb3Ro ZXIgbWV0aG9kcworICAgICAgbXlzcWxfdXBncmFkZSB3YXMgZm91bmQgYnkgdGhlIHNoZWxsIHNl YXJjaGluZyB0aGUgcGF0aC4gIEEgc2libGluZworICAgICAgbmV4dCB0byB1cyBzaG91bGQgYmUg Zm91bmQgdGhlIHNhbWUgd2F5LgogICAgICovCi0gICAgaWYgKG15X3Byb2duYW1lWzBdID09IEZO X0xJQkNIQVIpCi0gICAgewotICAgICAgLyogMS4gbXlfcHJvZ25hbWUgY29udGFpbnMgZnVsbCBw YXRoICovCi0gICAgICBzdHJtYWtlKHBhdGgsIG15X3Byb2duYW1lLCBGTl9SRUZMRU4pOwotICAg IH0KLSAgICBlbHNlIGlmIChteV9wcm9nbmFtZVswXSA9PSAnLicpCi0gICAgewotICAgICAgLyog Mi4gbXlfcHJvZ25hbWUgY29udGFpbnMgcmVsYXRpdmUgcGF0aCwgcHJlcGVuZCB3ZCAqLwotICAg ICAgY2hhciBidWZbRk5fUkVGTEVOXTsKLSAgICAgIG15X2dldHdkKGJ1ZiwgRk5fUkVGTEVOLCBN WUYoMCkpOwotICAgICAgbXlfc25wcmludGYocGF0aCwgRk5fUkVGTEVOLCAiJXMlcyIsIGJ1Ziwg bXlfcHJvZ25hbWUpOwotICAgIH0KLSAgICBlbHNlCi0gICAgewotICAgICAgLyogMy4gSnVzdCBn byBmb3IgaXQgYW5kIGhvcGUgdG9vbCBpcyBpbiBwYXRoICovCi0gICAgICBwYXRoWzBdPSAwOwot ICAgIH0KKyAgICBzdHJuY3B5KHRvb2xfZXhlY3V0YWJsZV9uYW1lLCB0b29sX25hbWUsIEZOX1JF RkxFTik7CiAgIH0KLQotICBEQlVHX1BSSU5UKCJpbmZvIiwgKCJwYXRoOiAnJXMnIiwgcGF0aCkp OwotCi0gIC8qIENob3Agb2ZmIGJpbmFyeSBuYW1lIChpLmUgbXlzcWwtdXBncmFkZSkgZnJvbSBw YXRoICovCi0gIGRpcm5hbWVfcGFydChwYXRoLCBwYXRoLCAmcGF0aF9sZW4pOwotCi0gIC8qCi0g ICAgV2hlbiBydW5uaW5nIGluIGEgbm90IHlldCBpbnN0YWxsZWQgYnVpbGQgYW5kIHVzaW5nIGxp YnRvb2wsCi0gICAgdGhlIHByb2dyYW0obXlzcWxfdXBncmFkZSkgd2lsbCBiZSBpbiAubGlicy8g YW5kIGV4ZWN1dGVkCi0gICAgdGhyb3VnaCBhIGxpYnRvb2wgd3JhcHBlciBpbiBvcmRlciB0byB1 c2UgdGhlIGR5bmFtaWMgbGlicmFyaWVzCi0gICAgZnJvbSB0aGlzIGJ1aWxkLiBUaGUgc2FtZSBt dXN0IGJlIGRvbmUgZm9yIHRoZSB0b29scyhteXNxbCBhbmQKLSAgICBteXNxbGNoZWNrKS4gVGh1 cyBpZiBwYXRoIGVuZHMgaW4gLmxpYnMvLCBzdGVwIHVwIG9uZSBkaXJlY3RvcnkKLSAgICBhbmQg ZXhlY3V0ZSB0aGUgdG9vbHMgZnJvbSB0aGVyZQotICAqLwotICBwYXRoW21heChwYXRoX2xlbi0x LCAwKV09IDA7ICAgLyogQ2hvcCBvZmYgbGFzdCAvICovCi0gIGlmIChzdHJuY21wKHBhdGggKyBk aXJuYW1lX2xlbmd0aChwYXRoKSwgIi5saWJzIiwgNSkgPT0gMCkKKyAgZWxzZQogICB7Ci0gICAg REJVR19QUklOVCgiaW5mbyIsICgiQ2hvcHBpbmcgb2ZmIC5saWJzIGZyb20gJyVzJyIsIHBhdGgp KTsKLQotICAgIC8qIENob3Agb2ZmIC5saWJzICovCi0gICAgZGlybmFtZV9wYXJ0KHBhdGgsIHBh dGgsICZwYXRoX2xlbik7Ci0gIH0KKyAgICBpbnQgbGVuOwogCisgICAgLyoKKyAgICAgIG15c3Fs X3VwZ3JhZGUgd2FzIHJ1biBhYnNvbHV0ZWx5IG9yIHJlbGF0aXZlbHkuICBXZSBjYW4gZmluZCBh IHNpYmxpbmcKKyAgICAgIGJ5IHJlcGxhY2luZyBvdXIgbmFtZSBhZnRlciB0aGUgTElCQ0hBUiB3 aXRoIHRoZSBuZXcgdG9vbCBuYW1lLgorICAgICovCiAKLSAgREJVR19QUklOVCgiaW5mbyIsICgi cGF0aDogJyVzJyIsIHBhdGgpKTsKKyAgICAvKgorICAgICAgV2hlbiBydW5uaW5nIGluIGEgbm90 IHlldCBpbnN0YWxsZWQgYnVpbGQgYW5kIHVzaW5nIGxpYnRvb2wsCisgICAgICB0aGUgcHJvZ3Jh bShteXNxbF91cGdyYWRlKSB3aWxsIGJlIGluIC5saWJzLyBhbmQgZXhlY3V0ZWQKKyAgICAgIHRo cm91Z2ggYSBsaWJ0b29sIHdyYXBwZXIgaW4gb3JkZXIgdG8gdXNlIHRoZSBkeW5hbWljIGxpYnJh cmllcworICAgICAgZnJvbSB0aGlzIGJ1aWxkLiBUaGUgc2FtZSBtdXN0IGJlIGRvbmUgZm9yIHRo ZSB0b29scyhteXNxbCBhbmQKKyAgICAgIG15c3FsY2hlY2spLiBUaHVzIGlmIHBhdGggZW5kcyBp biAubGlicy8sIHN0ZXAgdXAgb25lIGRpcmVjdG9yeQorICAgICAgYW5kIGV4ZWN1dGUgdGhlIHRv b2xzIGZyb20gdGhlcmUKKyAgICAqLworICAgIGlmICgoKGxhc3RfZm5fbGliY2hhciAtIDYpID49 IHNlbGZfbmFtZSkgJiYKKyAgICAgICAgKHN0cm5jbXAobGFzdF9mbl9saWJjaGFyIC0gNSwgIi5s aWJzIiwgNSkgPT0gMCkgJiYKKyAgICAgICAgKCoobGFzdF9mbl9saWJjaGFyIC0gNikgPT0gRk5f TElCQ0hBUikpCisgICAgeworICAgICAgREJVR19QUklOVCgiaW5mbyIsICgiQ2hvcHBpbmcgb2Zm IFwiLmxpYnNcIiBmcm9tIGVuZCBvZiBwYXRoIikpOworICAgICAgbGFzdF9mbl9saWJjaGFyIC09 IDY7CisgICAgfQogCi0gIC8qIEZvcm1hdCBuYW1lIG9mIHRoZSB0b29sIHRvIHNlYXJjaCBmb3Ig Ki8KLSAgZm5fZm9ybWF0KHRvb2xfcGF0aCwgdG9vbF9uYW1lLAotICAgICAgICAgICAgcGF0aCwg IiIsIE1ZRihNWV9SRVBMQUNFX0RJUikpOworICAgIGxlbj0gbGFzdF9mbl9saWJjaGFyIC0gc2Vs Zl9uYW1lOwogCi0gIHZlcmJvc2UoIkxvb2tpbmcgZm9yICclcycgaW46ICVzIiwgdG9vbF9uYW1l LCB0b29sX3BhdGgpOworICAgIG15X3NucHJpbnRmKHRvb2xfZXhlY3V0YWJsZV9uYW1lLCBGTl9S RUZMRU4sICIlLipzJWMlcyIsCisgICAgICAgICAgICAgICAgbGVuLCBzZWxmX25hbWUsIEZOX0xJ QkNIQVIsIHRvb2xfbmFtZSk7CisgIH0KIAotICAvKiBNYWtlIHN1cmUgdGhlIHRvb2wgZXhpc3Rz ICovCi0gIGlmIChteV9hY2Nlc3ModG9vbF9wYXRoLCBGX09LKSAhPSAwKQotICAgIGRpZSgiQ2Fu J3QgZmluZCAnJXMnIiwgdG9vbF9wYXRoKTsKKyAgdmVyYm9zZSgiTG9va2luZyBmb3IgJyVzJyBh czogJXMiLCB0b29sX25hbWUsIHRvb2xfZXhlY3V0YWJsZV9uYW1lKTsKIAogICAvKgogICAgIE1h a2Ugc3VyZSBpdCBjYW4gYmUgZXhlY3V0ZWQKICAgKi8KLSAgaWYgKHJ1bl90b29sKHRvb2xfcGF0 aCwKKyAgaWYgKHJ1bl90b29sKHRvb2xfZXhlY3V0YWJsZV9uYW1lLAogICAgICAgICAgICAgICAg JmRzX3RtcCwgLyogR2V0IG91dHB1dCBmcm9tIGNvbW1hbmQsIGRpc2NhcmQqLwogICAgICAgICAg ICAgICAgIi0taGVscCIsCiAgICAgICAgICAgICAgICAiMj4mMSIsCiAgICAgICAgICAgICAgICBJ Rl9XSU4oIj4gTlVMIiwgIj4gL2Rldi9udWxsIiksCiAgICAgICAgICAgICAgICBOVUxMKSkKLSAg ICBkaWUoIkNhbid0IGV4ZWN1dGUgJyVzJyIsIHRvb2xfcGF0aCk7CisgICAgZGllKCJDYW4ndCBl eGVjdXRlICclcyciLCB0b29sX2V4ZWN1dGFibGVfbmFtZSk7CiAKICAgZHluc3RyX2ZyZWUoJmRz X3RtcCk7CiAKQEAgLTc1OSwxMSArNzIzLDIwIEBAIHN0YXRpYyBjb25zdCBjaGFyICpsb2FkX2Rl ZmF1bHRfZ3JvdXBzW10KIAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogeworICBj aGFyIHNlbGZfbmFtZVtGTl9SRUZMRU5dOworCiAgIE1ZX0lOSVQoYXJndlswXSk7CiAjaWZkZWYg X19ORVRXQVJFX18KICAgc2V0c2NyZWVubW9kZShTQ1JfQVVUT0NMT1NFX09OX0VYSVQpOwogI2Vu ZGlmCiAKKyNpZiBfX1dJTl9fCisgIGlmIChHZXRNb2R1bGVGaWxlTmFtZShOVUxMLCBzZWxmX25h bWUsIEZOX1JFRkxFTikgPT0gMCkKKyNlbmRpZgorICB7CisgICAgc3RybmNweShzZWxmX25hbWUs IGFyZ3ZbMF0sIEZOX1JFRkxFTik7CisgIH0KKwogICBpZiAoaW5pdF9keW5hbWljX3N0cmluZygm ZHNfYXJncywgIiIsIDUxMiwgMjU2KSkKICAgICBkaWUoIk91dCBvZiBtZW1vcnkiKTsKIApAQCAt Nzg5LDEwICs3NjIsMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICBkeW5z dHJfYXBwZW5kKCZkc19hcmdzLCAiICIpOwogCiAgIC8qIEZpbmQgbXlzcWwgKi8KLSAgZmluZF90 b29sKG15c3FsX3BhdGgsIElGX1dJTigibXlzcWwuZXhlIiwgIm15c3FsIikpOworICBmaW5kX3Rv b2wobXlzcWxfcGF0aCwgSUZfV0lOKCJteXNxbC5leGUiLCAibXlzcWwiKSwgc2VsZl9uYW1lKTsK IAogICAvKiBGaW5kIG15c3FsY2hlY2sgKi8KLSAgZmluZF90b29sKG15c3FsY2hlY2tfcGF0aCwg SUZfV0lOKCJteXNxbGNoZWNrLmV4ZSIsICJteXNxbGNoZWNrIikpOworICBmaW5kX3Rvb2wobXlz cWxjaGVja19wYXRoLCBJRl9XSU4oIm15c3FsY2hlY2suZXhlIiwgIm15c3FsY2hlY2siKSwgc2Vs Zl9uYW1lKTsKIAogICAvKgogICAgIFJlYWQgdGhlIG15c3FsX3VwZ3JhZGVfaW5mbyBmaWxlIHRv IGNoZWNrIGlmIG15c3FsX3VwZ3JhZGUKCj09PSBtb2RpZmllZCBmaWxlICdjbGllbnQvbXlzcWx0 ZXN0LmMnCi0tLSBhL2NsaWVudC9teXNxbHRlc3QuYwkyMDA4LTA3LTI0IDA4OjI2OjI0ICswMDAw CisrKyBiL2NsaWVudC9teXNxbHRlc3QuYwkyMDA4LTA4LTA1IDIzOjI2OjE4ICswMDAwCkBAIC0z ODYxLDEyICszODYxLDEzIEBAIHR5cGVkZWYgc3RydWN0CiB7CiAgIGNvbnN0IGNoYXIgKm5hbWU7 CiAgIHVpbnQgICAgICAgIGNvZGU7CisgIGNvbnN0IGNoYXIgKnRleHQ7CiB9IHN0X2Vycm9yOwog CiBzdGF0aWMgc3RfZXJyb3IgZ2xvYmFsX2Vycm9yX25hbWVzW10gPQogewogI2luY2x1ZGUgPG15 c3FsZF9lcm5hbWUuaD4KLSAgeyAwLCAwIH0KKyAgeyAwLCAwLCAwIH0KIH07CiAKIHVpbnQgZ2V0 X2VycmNvZGVfZnJvbV9uYW1lKGNoYXIgKmVycm9yX25hbWUsIGNoYXIgKmVycm9yX2VuZCkKCj09 PSBtb2RpZmllZCBmaWxlICdjb25maWcvYWMtbWFjcm9zL2NoYXJhY3Rlcl9zZXRzLm00JwotLS0g YS9jb25maWcvYWMtbWFjcm9zL2NoYXJhY3Rlcl9zZXRzLm00CTIwMDgtMDItMjYgMTk6NTQ6MTkg KzAwMDAKKysrIGIvY29uZmlnL2FjLW1hY3Jvcy9jaGFyYWN0ZXJfc2V0cy5tNAkyMDA4LTA3LTI5 IDAzOjQyOjA3ICswMDAwCkBAIC0zNTgsOCArMzU4LDggQEAgY2FzZSAkZGVmYXVsdF9jaGFyc2V0 IGluIAogICAgICAgZGVmYXVsdF9jaGFyc2V0X2RlZmF1bHRfY29sbGF0aW9uPSJ1Y3MyX2dlbmVy YWxfY2kiCiAgICAgICBkZWZpbmUoVUNTQzEsIHVjczJfZ2VuZXJhbF9jaSB1Y3MyX2JpbikKICAg ICAgIGRlZmluZShVQ1NDMiwgdWNzMl9jemVjaF9jaSB1Y3MyX2RhbmlzaF9jaSkKLSAgICAgIGRl ZmluZShVQ1NDMywgdWNzMl9lc3BlcmFudG9fY2kgdWNzMl9lc3Rvbmlhbl9jaSB1Y3MyX2ljZWxh bmRpY19jaSkKLSAgICAgIGRlZmluZShVQ1NDNCwgdWNzMl9sYXR2aWFuX2NpIHVjczJfbGl0aHVh bmlhbl9jaSkKKyAgICAgIGRlZmluZShVQ1NDMywgdWNzMl9lc3BlcmFudG9fY2kgdWNzMl9lc3Rv bmlhbl9jaSB1Y3MyX2h1bmdhcmlhbl9jaSkKKyAgICAgIGRlZmluZShVQ1NDNCwgdWNzMl9pY2Vs YW5kaWNfY2kgdWNzMl9sYXR2aWFuX2NpIHVjczJfbGl0aHVhbmlhbl9jaSkKICAgICAgIGRlZmlu ZShVQ1NDNSwgdWNzMl9wZXJzaWFuX2NpIHVjczJfcG9saXNoX2NpIHVjczJfcm9tYW5pYW5fY2kp CiAgICAgICBkZWZpbmUoVUNTQzYsIHVjczJfc2luaGFsYV9jaSB1Y3MyX3Nsb3Zha19jaSB1Y3My X3Nsb3Zlbmlhbl9jaSkKICAgICAgIGRlZmluZShVQ1NDNywgdWNzMl9zcGFuaXNoMl9jaSB1Y3My X3NwYW5pc2hfY2kpCkBAIC0zNzYsOCArMzc2LDggQEAgY2FzZSAkZGVmYXVsdF9jaGFyc2V0IGlu IAogICAgICAgZGVmYXVsdF9jaGFyc2V0X2RlZmF1bHRfY29sbGF0aW9uPSJ1dGY4X2dlbmVyYWxf Y2kiCiAgICAgICBkZWZpbmUoVVRGQzEsIHV0ZjhfZ2VuZXJhbF9jaSB1dGY4X2JpbikKICAgICAg IGRlZmluZShVVEZDMiwgdXRmOF9jemVjaF9jaSB1dGY4X2RhbmlzaF9jaSkKLSAgICAgIGRlZmlu ZShVVEZDMywgdXRmOF9lc3BlcmFudG9fY2kgdXRmOF9lc3Rvbmlhbl9jaSB1dGY4X2ljZWxhbmRp Y19jaSkKLSAgICAgIGRlZmluZShVVEZDNCwgdXRmOF9sYXR2aWFuX2NpIHV0ZjhfbGl0aHVhbmlh bl9jaSkKKyAgICAgIGRlZmluZShVVEZDMywgdXRmOF9lc3BlcmFudG9fY2kgdXRmOF9lc3Rvbmlh bl9jaSB1dGY4X2h1bmdhcmlhbl9jaSkKKyAgICAgIGRlZmluZShVVEZDNCwgdXRmOF9pY2VsYW5k aWNfY2kgdXRmOF9sYXR2aWFuX2NpIHV0ZjhfbGl0aHVhbmlhbl9jaSkKICAgICAgIGRlZmluZShV VEZDNSwgdXRmOF9wZXJzaWFuX2NpIHV0ZjhfcG9saXNoX2NpIHV0Zjhfcm9tYW5pYW5fY2kpCiAg ICAgICBkZWZpbmUoVVRGQzYsIHV0Zjhfc2luaGFsYV9jaSB1dGY4X3Nsb3Zha19jaSB1dGY4X3Ns b3Zlbmlhbl9jaSkKICAgICAgIGRlZmluZShVVEZDNywgdXRmOF9zcGFuaXNoMl9jaSB1dGY4X3Nw YW5pc2hfY2kpCkBAIC0zOTYsOCArMzk2LDggQEAgY2FzZSAkZGVmYXVsdF9jaGFyc2V0IGluIAog ICAgICAgZWxzZQogICAgICAgICBkZWZpbmUoVVRGQzEsIHV0ZjhtYjNfZ2VuZXJhbF9jaSB1dGY4 bWIzX2JpbikKICAgICAgICAgZGVmaW5lKFVURkMyLCB1dGY4bWIzX2N6ZWNoX2NpIHV0ZjhtYjNf ZGFuaXNoX2NpKQotICAgICAgICBkZWZpbmUoVVRGQzMsIHV0ZjhtYjNfZXNwZXJhbnRvX2NpIHV0 ZjhtYjNfZXN0b25pYW5fY2kgdXRmOG1iM19pY2VsYW5kaWNfY2kpCi0gICAgICAgIGRlZmluZShV VEZDNCwgdXRmOG1iM19sYXR2aWFuX2NpIHV0ZjhtYjNfbGl0aHVhbmlhbl9jaSkKKyAgICAgICAg ZGVmaW5lKFVURkMzLCB1dGY4bWIzX2VzcGVyYW50b19jaSB1dGY4bWIzX2VzdG9uaWFuX2NpIHV0 ZjhtYjNfaHVuZ2FyaWFuX2NpKQorICAgICAgICBkZWZpbmUoVVRGQzQsIHV0ZjhtYjNfaWNlbGFu ZGljX2NpIHV0ZjhtYjNfbGF0dmlhbl9jaSB1dGY4bWIzX2xpdGh1YW5pYW5fY2kpCiAgICAgICAg IGRlZmluZShVVEZDNSwgdXRmOG1iM19wZXJzaWFuX2NpIHV0ZjhtYjNfcG9saXNoX2NpIHV0Zjht YjNfcm9tYW5pYW5fY2kpCiAgICAgICAgIGRlZmluZShVVEZDNiwgdXRmOG1iM19zaW5oYWxhX2Np IHV0ZjhtYjNfc2xvdmFrX2NpIHV0ZjhtYjNfc2xvdmVuaWFuX2NpKQogICAgICAgICBkZWZpbmUo VVRGQzcsIHV0ZjhtYjNfc3BhbmlzaDJfY2kgdXRmOG1iM19zcGFuaXNoX2NpKQpAQCAtNDExLDgg KzQxMSw4IEBAIGNhc2UgJGRlZmF1bHRfY2hhcnNldCBpbiAKICAgICAgIGRlZmF1bHRfY2hhcnNl dF9kZWZhdWx0X2NvbGxhdGlvbj0idXRmMTZfZ2VuZXJhbF9jaSIKICAgICAgIGRlZmluZShVVEZD MSwgdXRmMTZfZ2VuZXJhbF9jaSB1dGYxNl9iaW4pCiAgICAgICBkZWZpbmUoVVRGQzIsIHV0ZjE2 X2N6ZWNoX2NpIHV0ZjE2X2RhbmlzaF9jaSkKLSAgICAgIGRlZmluZShVVEZDMywgdXRmMTZfZXNw ZXJhbnRvX2NpIHV0ZjE2X2VzdG9uaWFuX2NpIHV0ZjE2X2ljZWxhbmRpY19jaSkKLSAgICAgIGRl ZmluZShVVEZDNCwgdXRmMTZfbGF0dmlhbl9jaSB1dGYxNl9saXRodWFuaWFuX2NpKQorICAgICAg ZGVmaW5lKFVURkMzLCB1dGYxNl9lc3BlcmFudG9fY2kgdXRmMTZfZXN0b25pYW5fY2kgdXRmMTZf aHVuZ2FyaWFuX2NpKQorICAgICAgZGVmaW5lKFVURkM0LCB1dGYxNl9pY2VsYW5kaWNfY2kgdXRm MTZfbGF0dmlhbl9jaSB1dGYxNl9saXRodWFuaWFuX2NpKQogICAgICAgZGVmaW5lKFVURkM1LCB1 dGYxNl9wZXJzaWFuX2NpIHV0ZjE2X3BvbGlzaF9jaSB1dGYxNl9yb21hbmlhbl9jaSkKICAgICAg IGRlZmluZShVVEZDNiwgdXRmMTZfc2luaGFsYV9jaSB1dGYxNl9zbG92YWtfY2kgdXRmMTZfc2xv dmVuaWFuX2NpKQogICAgICAgZGVmaW5lKFVURkM3LCB1dGYxNl9zcGFuaXNoMl9jaSB1dGYxNl9z cGFuaXNoX2NpKQpAQCAtNDI1LDggKzQyNSw4IEBAIGNhc2UgJGRlZmF1bHRfY2hhcnNldCBpbiAK ICAgICAgIGRlZmF1bHRfY2hhcnNldF9kZWZhdWx0X2NvbGxhdGlvbj0idXRmMzJfZ2VuZXJhbF9j aSIKICAgICAgIGRlZmluZShVVEZDMSwgdXRmMzJfZ2VuZXJhbF9jaSB1dGYzMl9iaW4pCiAgICAg ICBkZWZpbmUoVVRGQzIsIHV0ZjMyX2N6ZWNoX2NpIHV0ZjMyX2RhbmlzaF9jaSkKLSAgICAgIGRl ZmluZShVVEZDMywgdXRmMzJfZXNwZXJhbnRvX2NpIHV0ZjMyX2VzdG9uaWFuX2NpIHV0ZjMyX2lj ZWxhbmRpY19jaSkKLSAgICAgIGRlZmluZShVVEZDNCwgdXRmMzJfbGF0dmlhbl9jaSB1dGYzMl9s aXRodWFuaWFuX2NpKQorICAgICAgZGVmaW5lKFVURkMzLCB1dGYzMl9lc3BlcmFudG9fY2kgdXRm MzJfZXN0b25pYW5fY2kgdXRmMzJfaHVuZ2FyaWFuX2NpKQorICAgICAgZGVmaW5lKFVURkM0LCB1 dGYzMl9pY2VsYW5kaWNfY2kgdXRmMzJfbGF0dmlhbl9jaSB1dGYzMl9saXRodWFuaWFuX2NpKQog ICAgICAgZGVmaW5lKFVURkM1LCB1dGYzMl9wZXJzaWFuX2NpIHV0ZjMyX3BvbGlzaF9jaSB1dGYz Ml9yb21hbmlhbl9jaSkKICAgICAgIGRlZmluZShVVEZDNiwgdXRmMzJfc2luaGFsYV9jaSB1dGYz Ml9zbG92YWtfY2kgdXRmMzJfc2xvdmVuaWFuX2NpKQogICAgICAgZGVmaW5lKFVURkM3LCB1dGYz Ml9zcGFuaXNoMl9jaSB1dGYzMl9zcGFuaXNoX2NpKQoKPT09IG1vZGlmaWVkIGZpbGUgJ2NvbmZp Z3VyZS5pbicKLS0tIGEvY29uZmlndXJlLmluCTIwMDgtMDctMjMgMTE6Mjg6MjAgKzAwMDAKKysr IGIvY29uZmlndXJlLmluCTIwMDgtMDgtMTIgMDQ6Mzg6NTAgKzAwMDAKQEAgLTY0MywxOSArNjQz LDE5IEBAIGZpCiBBQ19NU0dfQ0hFQ0tJTkcod2hldGhlciBmZWF0dXJlcyBwcm92aWRlZCBieSB0 aGUgdXNlciBjb21tdW5pdHkgc2hvdWxkIGJlIGluY2x1ZGVkLikKIEFDX0FSR19FTkFCTEUoY29t bXVuaXR5LWZlYXR1cmVzLAogICAgIEFDX0hFTFBfU1RSSU5HKAotICAgICAgICBbLS1lbmFibGUt Y29tbXVuaXR5LWZlYXR1cmVzXSwgCi0gICAgICAgIFtFbmFibGUgYWRkaXRpb25hbCBmZWF0dXJl cyBwcm92aWRlZCBieSB0aGUgdXNlciBjb21tdW5pdHkuXSksCisgICAgICAgIFstLWRpc2FibGUt Y29tbXVuaXR5LWZlYXR1cmVzXSwgCisgICAgICAgIFtEaXNhYmxlIGFkZGl0aW9uYWwgZmVhdHVy ZXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIgY29tbXVuaXR5Ll0pLAogICAgIFsgRU5BQkxFX0NPTU1V TklUWV9GRUFUVVJFUz0kZW5hYmxldmFsIF0sCi0gICAgWyBFTkFCTEVfQ09NTVVOSVRZX0ZFQVRV UkVTPW5vIF0KKyAgICBbIEVOQUJMRV9DT01NVU5JVFlfRkVBVFVSRVM9eWVzIF0KICAgICApCiAK IGlmIHRlc3QgIiRFTkFCTEVfQ09NTVVOSVRZX0ZFQVRVUkVTIiA9ICJ5ZXMiCiB0aGVuCiAgIEFD X0RFRklORShbQ09NTVVOSVRZX1NFUlZFUl0sIFsxXSwKICAgICAgICAgICAgIFtXaGV0aGVyIGZl YXR1cmVzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyIGNvbW11bml0eSBzaG91bGQgYmUgaW5jbHVkZWRd KQotICBBQ19NU0dfUkVTVUxUKFt5ZXMsIGNvbW11bml0eSBzZXJ2ZXJdKQorICBBQ19NU0dfUkVT VUxUKFt5ZXNdKQogZWxzZQotICBBQ19NU0dfUkVTVUxUKFtubywgZW50ZXJwcmlzZSBzZXJ2ZXJd KQorICBBQ19NU0dfUkVTVUxUKFtub10pCiBmaQogCiBBQ19BUkdfV0lUSChzZXJ2ZXItc3VmZml4 LAoKPT09IG1vZGlmaWVkIGZpbGUgJ2V4dHJhL2NvbXBfZXJyLmMnCi0tLSBhL2V4dHJhL2NvbXBf ZXJyLmMJMjAwOC0wNC0wOSAwMDo1Njo0OSArMDAwMAorKysgYi9leHRyYS9jb21wX2Vyci5jCTIw MDgtMDgtMDYgMTk6MjA6NTcgKzAwMDAKQEAgLTE5OSwxMSArMTk5LDMzIEBAIGludCBtYWluKGlu dCBhcmdjLCBjaGFyICphcmd2W10pCiB9CiAKIAorc3RhdGljIHZvaWQgcHJpbnRfZXNjYXBlZF9z dHJpbmcoRklMRSAqZiwgY29uc3QgY2hhciAqc3RyKQoreworICBjb25zdCBjaGFyICp0bXAgPSBz dHI7CisKKyAgd2hpbGUgKHRtcFswXSAhPSAwKQorICB7CisgICAgc3dpdGNoICh0bXBbMF0pCisg ICAgeworICAgICAgY2FzZSAnXFwnOiBmcHJpbnRmKGYsICJcXFxcIik7IGJyZWFrOworICAgICAg Y2FzZSAnXCcnOiBmcHJpbnRmKGYsICJcXFwnIik7IGJyZWFrOworICAgICAgY2FzZSAnXCInOiBm cHJpbnRmKGYsICJcXFwiIik7IGJyZWFrOworICAgICAgY2FzZSAnXG4nOiBmcHJpbnRmKGYsICJc XG4iKTsgYnJlYWs7CisgICAgICBjYXNlICdccic6IGZwcmludGYoZiwgIlxcciIpOyBicmVhazsK KyAgICAgIGRlZmF1bHQ6IGZwcmludGYoZiwgIiVjIiwgdG1wWzBdKTsKKyAgICB9CisgICAgdG1w Kys7CisgIH0KK30KKworCiBzdGF0aWMgaW50IGNyZWF0ZV9oZWFkZXJfZmlsZXMoc3RydWN0IGVy cm9ycyAqZXJyb3JfaGVhZCkKIHsKICAgdWludCBlcl9sYXN0OwogICBGSUxFICplcl9kZWZpbmVm LCAqc3FsX3N0YXRlZiwgKmVyX25hbWVmOwogICBzdHJ1Y3QgZXJyb3JzICp0bXBfZXJyb3I7Cisg IHN0cnVjdCBtZXNzYWdlICplcl9tc2c7CisgIGNvbnN0IGNoYXIgKmVyX3RleHQ7CiAgIERCVUdf RU5URVIoImNyZWF0ZV9oZWFkZXJfZmlsZXMiKTsKICAgTElOVF9JTklUKGVyX2xhc3QpOwogCkBA IC0yNDUsOCArMjY3LDEyIEBAIHN0YXRpYyBpbnQgY3JlYXRlX2hlYWRlcl9maWxlcyhzdHJ1Y3Qg ZXIKIAkgICAgICAieyAlLTQwcyxcIiVzXCIsIFwiJXNcIiB9LFxuIiwgdG1wX2Vycm9yLT5lcl9u YW1lLAogCSAgICAgIHRtcF9lcnJvci0+c3FsX2NvZGUxLCB0bXBfZXJyb3ItPnNxbF9jb2RlMik7 CiAgICAgLypnZW5lcmF0aW5nIGVyX25hbWUgZmlsZSAqLwotICAgIGZwcmludGYoZXJfbmFtZWYs ICJ7IFwiJXNcIiwgJWQgfSxcbiIsIHRtcF9lcnJvci0+ZXJfbmFtZSwKKyAgICBlcl9tc2c9IGZp bmRfbWVzc2FnZSh0bXBfZXJyb3IsIGRlZmF1bHRfbGFuZ3VhZ2UsIEZBTFNFKTsKKyAgICBlcl90 ZXh0ID0gKGVyX21zZyA/IGVyX21zZy0+dGV4dCA6ICIiKTsKKyAgICBmcHJpbnRmKGVyX25hbWVm LCAieyBcIiVzXCIsICVkLCBcIiIsIHRtcF9lcnJvci0+ZXJfbmFtZSwKIAkgICAgdG1wX2Vycm9y LT5kX2NvZGUpOworICAgIHByaW50X2VzY2FwZWRfc3RyaW5nKGVyX25hbWVmLCBlcl90ZXh0KTsK KyAgICBmcHJpbnRmKGVyX25hbWVmLCAiXCIgfSxcbiIpOwogCiAgIH0KICAgLyogZmluaXNoaW5n IG9mZiB3aXRoIG15c3FsZF9lcnJvci5oICovCgo9PT0gbW9kaWZpZWQgZmlsZSAnZXh0cmEvcGVy cm9yLmMnCi0tLSBhL2V4dHJhL3BlcnJvci5jCTIwMDgtMDMtMjggMTk6NTk6MjAgKzAwMDAKKysr IGIvZXh0cmEvcGVycm9yLmMJMjAwOC0wOC0wNSAyMzoyNjoxOCArMDAwMApAQCAtMTg0LDExICsx ODQsNTEgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmdldF9oYV9lcnJvcl9tc2coaW50IAogICByZXR1 cm4gTnVsbFM7CiB9CiAKK3R5cGVkZWYgc3RydWN0Cit7CisgIGNvbnN0IGNoYXIgKm5hbWU7Cisg IHVpbnQgICAgICAgIGNvZGU7CisgIGNvbnN0IGNoYXIgKnRleHQ7Cit9IHN0X2Vycm9yOworCitz dGF0aWMgc3RfZXJyb3IgZ2xvYmFsX2Vycm9yX25hbWVzW10gPQoreworI2luY2x1ZGUgPG15c3Fs ZF9lcm5hbWUuaD4KKyAgeyAwLCAwLCAwIH0KK307CisKKy8qKgorICBMb29rdXAgYW4gZXJyb3Ig YnkgY29kZSBpbiB0aGUgZ2xvYmFsX2Vycm9yX25hbWVzIGFycmF5LgorICBAcGFyYW0gY29kZSB0 aGUgY29kZSB0byBsb29rdXAKKyAgQHBhcmFtIFtvdXRdIG5hbWVfcHRyIHRoZSBlcnJvciBuYW1l LCB3aGVuIGZvdW5kCisgIEBwYXJhbSBbb3V0XSBtc2dfcHRyIHRoZSBlcnJvciB0ZXh0LCB3aGVu IGZvdW5kCisgIEByZXR1cm4gMSB3aGVuIGZvdW5kLCBvdGhlcndpc2UgMAorKi8KK2ludCBnZXRf RVJfZXJyb3JfbXNnKHVpbnQgY29kZSwgY29uc3QgY2hhciAqKm5hbWVfcHRyLCBjb25zdCBjaGFy ICoqbXNnX3B0cikKK3sKKyAgc3RfZXJyb3IgKnRtcF9lcnJvcjsKKworICB0bXBfZXJyb3I9ICYg Z2xvYmFsX2Vycm9yX25hbWVzWzBdOworCisgIHdoaWxlICh0bXBfZXJyb3ItPm5hbWUgIT0gTlVM TCkKKyAgeworICAgIGlmICh0bXBfZXJyb3ItPmNvZGUgPT0gY29kZSkKKyAgICB7CisgICAgICAq bmFtZV9wdHI9IHRtcF9lcnJvci0+bmFtZTsKKyAgICAgICptc2dfcHRyPSB0bXBfZXJyb3ItPnRl eHQ7CisgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgdG1wX2Vycm9yKys7CisgIH0KKworICBy ZXR1cm4gMDsKK30KIAogaW50IG1haW4oaW50IGFyZ2MsY2hhciAqYXJndltdKQogewogICBpbnQg ZXJyb3IsY29kZSxmb3VuZDsKICAgY29uc3QgY2hhciAqbXNnOworICBjb25zdCBjaGFyICpuYW1l OwogICBjaGFyICp1bmtub3duX2Vycm9yID0gMDsKICAgTVlfSU5JVChhcmd2WzBdKTsKIApAQCAt MjkxLDYgKzMzMSwxNCBAQCBpbnQgbWFpbihpbnQgYXJnYyxjaGFyICphcmd2W10pCiAgICAgICAg IGVsc2UKICAgICAgICAgICBwdXRzKG1zZyk7CiAgICAgICB9CisgICAgICBpZiAoZ2V0X0VSX2Vy cm9yX21zZyhjb2RlLCAmIG5hbWUsICYgbXNnKSkKKyAgICAgIHsKKyAgICAgICAgZm91bmQ9IDE7 CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgIHByaW50ZigiTXlTUUwgZXJyb3IgY29k ZSAlM2QgKCVzKTogJXNcbiIsIGNvZGUsIG5hbWUsIG1zZyk7CisgICAgICAgIGVsc2UKKyAgICAg ICAgICBwdXRzKG1zZyk7CisgICAgICB9CiAgICAgICBpZiAoIWZvdW5kKQogICAgICAgewogICAg ICAgICBmcHJpbnRmKHN0ZGVyciwiSWxsZWdhbCBlcnJvciBjb2RlOiAlZFxuIiwgY29kZSk7Cgo9 PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9pbmNsdWRlL2hhdmVfbm9kZWJ1Zy5pbmMnCi0tLSBh L215c3FsLXRlc3QvaW5jbHVkZS9oYXZlX25vZGVidWcuaW5jCTE5NzAtMDEtMDEgMDA6MDA6MDAg KzAwMDAKKysrIGIvbXlzcWwtdGVzdC9pbmNsdWRlL2hhdmVfbm9kZWJ1Zy5pbmMJMjAwOC0wNy0y NCAxNjo1MDoxOCArMDAwMApAQCAtMCwwICsxLDQgQEAKKy0tIHJlcXVpcmUgci9oYXZlX25vZGVi dWcucmVxdWlyZQorZGlzYWJsZV9xdWVyeV9sb2c7CitzZWxlY3QgKHZlcnNpb24oKSBsaWtlICcl ZGVidWclJykgYXMgZGVidWc7CitlbmFibGVfcXVlcnlfbG9nOwoKPT09IHJlbW92ZWQgZmlsZSAn bXlzcWwtdGVzdC9pbmNsdWRlL3dhaXRfdGltZW91dF9iYXNpYy5pbmMnCi0tLSBhL215c3FsLXRl c3QvaW5jbHVkZS93YWl0X3RpbWVvdXRfYmFzaWMuaW5jCTIwMDgtMDUtMDggMTg6MTM6MzkgKzAw MDAKKysrIGIvbXlzcWwtdGVzdC9pbmNsdWRlL3dhaXRfdGltZW91dF9iYXNpYy5pbmMJMTk3MC0w MS0wMSAwMDowMDowMCArMDAwMApAQCAtMSwyMTggKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMgbXlz cWwtdGVzdFx0XHdhaXRfdGltZW91dF9iYXNpYy50ZXN0ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBWYXJpYWJsZSBOYW1lOiB3YWl0X3RpbWVv dXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBT Y29wZTogR0xPQkFMIHwgU0VTU0lPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIwotIyBBY2Nlc3MgVHlwZTogRHluYW1pYyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBEYXRhIFR5cGU6 IG51bWVyaWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIwotIyBEZWZhdWx0IFZhbHVlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBSYW5nZTogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBDcmVh dGlvbiBEYXRlOiAyMDA4LTAyLTA3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIwotIyBBdXRob3I6ICBTaGFyaXF1ZSBBYmR1bGxhaCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICMKLSMgRGVzY3JpcHRpb246IFRlc3QgQ2FzZXMgb2YgRHluYW1pYyBTeXN0ZW0g VmFyaWFibGUgd2FpdF90aW1lb3V0ICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgIHRoYXQg Y2hlY2tzIHRoZSBiZWhhdmlvciBvZiB0aGlzIHZhcmlhYmxlIGluIHRoZSBmb2xsb3dpbmcgd2F5 cyMKLSMgICAgICAgICAgICAgICogRGVmYXVsdCBWYWx1ZSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgICogVmFsaWQgJiBJbnZh bGlkIHZhbHVlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAg ICAgICAgICAgICogU2NvcGUgJiBBY2Nlc3MgbWV0aG9kICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgICogRGF0YSBJbnRlZ3JpdHkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICMKLSMgUmVmZXJlbmNlOiBodHRwOi8vZGV2Lm15c3FsLmNvbS9kb2MvcmVmbWFuLzUu MS9lbi8gICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgIHNlcnZlci1zeXN0ZW0tdmFyaWFi bGVzLmh0bWwjb3B0aW9uX215c3FsZF93YWl0X3RpbWVvdXRzICAgICAgICAgICAgICAgICAgICMK LSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRHVlIHRv IGRpZmZlcm5jZXMgYmV0d2VlbiBsaW51eCBhbmQgd2luZG93cyBpbiB0aGUgcmVzdWx0cwotCi0t LXNvdXJjZSBpbmNsdWRlL25vdF93aW5kb3dzLmluYwotLS1zb3VyY2UgaW5jbHVkZS9sb2FkX3N5 c3ZhcnMuaW5jCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgU1RBUlQgT0Ygd2FpdF90aW1lb3V0IFRFU1RT ICAgICAgICAgICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgU2F2 ZSBpbml0aWFsIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1TRVQgQHN0 YXJ0X2dsb2JhbF92YWx1ZSA9IEBAZ2xvYmFsLndhaXRfdGltZW91dDsKLVNFVCBAc3RhcnRfc2Vz c2lvbl92YWx1ZSA9IEBAc2Vzc2lvbi53YWl0X3RpbWVvdXQ7Ci0KLS0tZWNobyAnIy0tLS0tLS0t LS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wMDVfMDEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycK LSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwotIyAgICAgRGlzcGxheSB0aGUgREVGQVVMVCB2YWx1ZSBvZiB3YWl0X3RpbWVvdXQgICAg ICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKLQotU0VUIEBAZ2xvYmFsLndhaXRfdGltZW91dCA9IDEwMDsKLVNFVCBA QGdsb2JhbC53YWl0X3RpbWVvdXQgPSBERUZBVUxUOwotU0VMRUNUIEBAZ2xvYmFsLndhaXRfdGlt ZW91dDsKLQotU0VUIEBAc2Vzc2lvbi53YWl0X3RpbWVvdXQgPSAyMDA7Ci1TRVQgQEBzZXNzaW9u LndhaXRfdGltZW91dCA9IERFRkFVTFQ7Ci1TRUxFQ1QgQEBzZXNzaW9uLndhaXRfdGltZW91dDsK LQotCi0tLWVjaG8gJyMtLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDA1XzAyLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSMnCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgIENoZWNrIHRoZSBERUZBVUxUIHZhbHVl IG9mIHdhaXRfdGltZW91dCAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLVNFVCBAQGdsb2JhbC53YWl0 X3RpbWVvdXQgPSBERUZBVUxUOwotU0VMRUNUIEBAZ2xvYmFsLndhaXRfdGltZW91dCA9IEBkZWZh dWx0X3dhaXRfdGltZW91dDsKLQotU0VUIEBAc2Vzc2lvbi53YWl0X3RpbWVvdXQgPSBERUZBVUxU OwotU0VMRUNUIEBAc2Vzc2lvbi53YWl0X3RpbWVvdXQgPSBAZGVmYXVsdF93YWl0X3RpbWVvdXQ7 Ci0KLQotCi0tLWVjaG8gJyMtLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDA1XzAzLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIENoYW5nZSB0aGUgdmFs dWUgb2Ygd2FpdF90aW1lb3V0IHRvIGEgdmFsaWQgdmFsdWUgZm9yIEdMT0JBTCBTY29wZSAjCi0j IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCi0KLSNTRVQgQEBnbG9iYWwud2FpdF90aW1lb3V0PSBAbWluX3dhaXRfdGlt ZW91dDsKLVNFVCBAQGdsb2JhbC53YWl0X3RpbWVvdXQ9IDE7Ci1TRUxFQ1QgQEBnbG9iYWwud2Fp dF90aW1lb3V0OwotCi1TRVQgQEBnbG9iYWwud2FpdF90aW1lb3V0ID0gNjAwMjA7Ci1TRUxFQ1Qg QEBnbG9iYWwud2FpdF90aW1lb3V0OwotCi0jU0VUIEBAZ2xvYmFsLndhaXRfdGltZW91dCA9IEBt YXhfd2FpdF90aW1lb3V0OwotU0VUIEBAZ2xvYmFsLndhaXRfdGltZW91dCA9IDMxNTM2MDAwOwot U0VMRUNUIEBAZ2xvYmFsLndhaXRfdGltZW91dCA9IEBtYXhfd2FpdF90aW1lb3V0OwotCi0KLS0t ZWNobyAnIy0tLS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wMDVfMDQtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tIycKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIENoYW5nZSB0aGUgdmFsdWUgb2Ygd2Fp dF90aW1lb3V0IHRvIGEgdmFsaWQgdmFsdWUgZm9yIFNFU1NJT04gU2NvcGUgIwotIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKLSNTRVQgQEBzZXNzaW9uLndhaXRfdGltZW91dCA9IEBtaW5fd2FpdF90aW1lb3V0Owot I1NFTEVDVCBAQHNlc3Npb24ud2FpdF90aW1lb3V0OwotCi1TRVQgQEBzZXNzaW9uLndhaXRfdGlt ZW91dCA9NjAwMDsKLVNFTEVDVCBAQHNlc3Npb24ud2FpdF90aW1lb3V0OwotCi0jU0VUIEBAc2Vz c2lvbi53YWl0X3RpbWVvdXQgPSBAbWF4X3dhaXRfdGltZW91dDsKLSNTRUxFQ1QgQEBzZXNzaW9u LndhaXRfdGltZW91dCA9IEBtYXhfd2FpdF90aW1lb3V0OwotCi0KLS0tZWNobyAnIy0tLS0tLS0t LS0tLS0tLS0tLUZOX0RZTlZBUlNfMDA1XzA1LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJwotIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMg Q2hhbmdlIHRoZSB2YWx1ZSBvZiB3YWl0X3RpbWVvdXQgdG8gYW4gaW52YWxpZCB2YWx1ZSAjCi0j IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwot Ci1TRVQgQEBnbG9iYWwud2FpdF90aW1lb3V0ID0gMDsKLVNFVCBAQGdsb2JhbC53YWl0X3RpbWVv dXQgPSAtMTAyNDsKLQotLS1lY2hvICdCdWcgIyAzNDgzNzogRXJyb3JzIGFyZSBub3QgY29taW5n IG9uIGFzc2lnbmluZyBpbnZhbGlkIHZhbHVlcyB0byB2YXJpYWJsZSc7Ci0KLS0tRXJyb3IgRVJf V1JPTkdfVFlQRV9GT1JfVkFSCi1TRVQgQEBnbG9iYWwud2FpdF90aW1lb3V0ID0gT047Ci0KLS0t RXJyb3IgRVJfV1JPTkdfVFlQRV9GT1JfVkFSCi1TRVQgQEBnbG9iYWwud2FpdF90aW1lb3V0ID0g T0ZGOwotCi1TRVQgQEBnbG9iYWwud2FpdF90aW1lb3V0ID0gVHJ1ZTsKLVNFTEVDVCBAQGdsb2Jh bC53YWl0X3RpbWVvdXQ7Ci0KLVNFVCBAQGdsb2JhbC53YWl0X3RpbWVvdXQgPSBGYWxzZTsKLVNF TEVDVCBAQGdsb2JhbC53YWl0X3RpbWVvdXQ7Ci0KLS0tRXJyb3IgRVJfV1JPTkdfVFlQRV9GT1Jf VkFSCi1TRVQgQEBnbG9iYWwud2FpdF90aW1lb3V0ID0gNjU1MzAuMzQ7Ci0KLS0tRXJyb3IgRVJf V1JPTkdfVFlQRV9GT1JfVkFSCi1TRVQgQEBnbG9iYWwud2FpdF90aW1lb3V0ID0iVGVzdCI7Ci0K LQotLS1FcnJvciBFUl9XUk9OR19UWVBFX0ZPUl9WQVIKLVNFVCBAQHNlc3Npb24ud2FpdF90aW1l b3V0ID0gT047Ci0KLQotLS1FcnJvciBFUl9XUk9OR19UWVBFX0ZPUl9WQVIKLVNFVCBAQHNlc3Np b24ud2FpdF90aW1lb3V0ID0gT0ZGOwotCi1TRVQgQEBzZXNzaW9uLndhaXRfdGltZW91dCA9IFRy dWU7Ci1TRUxFQ1QgQEBzZXNzaW9uLndhaXRfdGltZW91dDsKLQotU0VUIEBAc2Vzc2lvbi53YWl0 X3RpbWVvdXQgPSBGYWxzZTsKLVNFTEVDVCBAQHNlc3Npb24ud2FpdF90aW1lb3V0OwotCi0KLS0t RXJyb3IgRVJfV1JPTkdfVFlQRV9GT1JfVkFSCi1TRVQgQEBzZXNzaW9uLndhaXRfdGltZW91dCA9 ICJUZXN0IjsKLQotCi0tLUVycm9yIEVSX1dST05HX1RZUEVfRk9SX1ZBUgotU0VUIEBAc2Vzc2lv bi53YWl0X3RpbWVvdXQgPSAndGVzdCc7Ci0KLVNFVCBAQHNlc3Npb24ud2FpdF90aW1lb3V0ID0g MTIzNDU2Nzg5MDMxOwotU0VMRUNUIEBAc2Vzc2lvbi53YWl0X3RpbWVvdXQgPSBAbWF4X3dhaXRf dGltZW91dDsKLQotCi0tLWVjaG8gJyMtLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJTXzAwNV8w Ni0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgQ2hlY2sgaWYgdGhl IHZhbHVlIGluIEdMT0JBTCBUYWJsZSBtYXRjaGVzIHZhbHVlIGluIHZhcmlhYmxlICAgIwotIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKLQotU0VMRUNUIEBAZ2xvYmFsLndhaXRfdGltZW91dCA9IFZBUklBQkxFX1ZBTFVF IAotRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuR0xPQkFMX1ZBUklBQkxFUyAKLVdIRVJFIFZBUklB QkxFX05BTUU9J3dhaXRfdGltZW91dCc7Ci0KLS0tZWNobyAnIy0tLS0tLS0tLS0tLS0tLS0tLUZO X0RZTlZBUlNfMDA1XzA3LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJwotIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMg IENoZWNrIGlmIHRoZSB2YWx1ZSBpbiBTRVNTSU9OIFRhYmxlIG1hdGNoZXMgdmFsdWUgaW4gdmFy aWFibGUgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1TRUxFQ1QgQEBzZXNzaW9uLndhaXRfdGltZW91dCA9 IFZBUklBQkxFX1ZBTFVFIAotRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuU0VTU0lPTl9WQVJJQUJM RVMKLVdIRVJFIFZBUklBQkxFX05BTUU9J3dhaXRfdGltZW91dCc7Ci0KLS0tZWNobyAnIy0tLS0t LS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDAxXzA5LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMn Ci0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIENoZWNrIGlmIGdsb2JhbCBhbmQgc2Vzc2lvbiB2YXJp YWJsZSBhcmUgaW5kZXBlbmRlbnQgb2YgZWFjaCBvdGhlciAgICAgIwotIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCi0KLVNFVCBAQGdsb2JhbC53YWl0X3RpbWVvdXQgPSAzMDAwMDsKLVNFVCBAQGdsb2JhbC53 YWl0X3RpbWVvdXQgPSA0MDAwMDsKLVNFTEVDVCBAQHdhaXRfdGltZW91dCA9IEBAZ2xvYmFsLndh aXRfdGltZW91dDsKLQotLS1lY2hvICcjLS0tLS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18w MDFfMTAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICBDaGVj ayBpZiBhY2Nlc3NpbmcgdmFyaWFibGUgd2l0aCBTRVNTSU9OLExPQ0FMIGFuZCB3aXRob3V0IFND T1BFICAjCi0jICAgIHBvaW50cyB0byBzYW1lIHNlc3Npb24gdmFyaWFibGUgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1TRVQgQEB3YWl0X3Rp bWVvdXQgPSAxMDA7Ci1TRUxFQ1QgQEB3YWl0X3RpbWVvdXQgPSBAQGxvY2FsLndhaXRfdGltZW91 dDsKLVNFTEVDVCBAQGxvY2FsLndhaXRfdGltZW91dCA9IEBAc2Vzc2lvbi53YWl0X3RpbWVvdXQ7 Ci0KLS0tZWNobyAnIy0tLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDAxXzExLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSMnCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgIENoZWNrIGlmIHdhaXRfdGlt ZW91dCBjYW4gYmUgYWNjZXNzZWQgd2l0aCBhbmQgd2l0aG91dCBAQCBzaWduICAgICMKLSMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCi0KLVNFVCB3YWl0X3RpbWVvdXQgPSAxMDI3OwotU0VMRUNUIEBAd2FpdF90aW1l b3V0OwotCi0KLS0tRXJyb3IgRVJfVU5LTk9XTl9UQUJMRQotU0VMRUNUIGxvY2FsLndhaXRfdGlt ZW91dDsKLQotLS1FcnJvciBFUl9VTktOT1dOX1RBQkxFCi1TRUxFQ1Qgc2Vzc2lvbi53YWl0X3Rp bWVvdXQ7Ci0KLS0tRXJyb3IgRVJfQkFEX0ZJRUxEX0VSUk9SCi1TRUxFQ1Qgd2FpdF90aW1lb3V0 ID0gQEBzZXNzaW9uLndhaXRfdGltZW91dDsKLQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKLSMgICAgIFJlc3RvcmUgaW5pdGlhbCB2YWx1ZSAgICAgICAgIwotIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLVNFVCBAQGdsb2JhbC53YWl0X3RpbWVv dXQgPSBAc3RhcnRfZ2xvYmFsX3ZhbHVlOwotU0VUIEBAc2Vzc2lvbi53YWl0X3RpbWVvdXQgPSBA c3RhcnRfc2Vzc2lvbl92YWx1ZTsKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgRU5EIE9GIHdhaXRfdGltZW91dCBU RVNUUyAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvbXlzcWwtdGVzdC1ydW4ucGwnCi0t LSBhL215c3FsLXRlc3QvbXlzcWwtdGVzdC1ydW4ucGwJMjAwOC0wNy0yNCAxNDozMzoxMCArMDAw MAorKysgYi9teXNxbC10ZXN0L215c3FsLXRlc3QtcnVuLnBsCTIwMDgtMDgtMDcgMTQ6MTk6NTQg KzAwMDAKQEAgLTE0NzQsMTMgKzE0NzQsMTUgQEAgc3ViIGV4ZWN1dGFibGVfc2V0dXBfbmRiICgp IHsKIAogICAkZXhlX25kYmQ9CiAgICAgbXRyX2V4ZV9tYXliZV9leGlzdHMoIiRuZGJfcGF0aC9z cmMva2VybmVsL25kYmQiLAotCQkJICIkbmRiX3BhdGgvbmRiZCIpOworCQkJICIkbmRiX3BhdGgv bmRiZCIsCisJCQkgIiRnbG9iX2Jhc2VkaXIvbGliZXhlYy9uZGJkIik7CiAgICRleGVfbmRiX21n bT0KICAgICBtdHJfZXhlX21heWJlX2V4aXN0cygiJG5kYl9wYXRoL3NyYy9tZ21jbGllbnQvbmRi X21nbSIsCiAJCQkgIiRuZGJfcGF0aC9uZGJfbWdtIik7CiAgICRleGVfbmRiX21nbWQ9CiAgICAg bXRyX2V4ZV9tYXliZV9leGlzdHMoIiRuZGJfcGF0aC9zcmMvbWdtc3J2L25kYl9tZ21kIiwKLQkJ CSAiJG5kYl9wYXRoL25kYl9tZ21kIik7CisJCQkgIiRuZGJfcGF0aC9uZGJfbWdtZCIsCisJCQkg IiRnbG9iX2Jhc2VkaXIvbGliZXhlYy9uZGJfbWdtZCIpOwogICAkZXhlX25kYl93YWl0ZXI9CiAg ICAgbXRyX2V4ZV9tYXliZV9leGlzdHMoIiRuZGJfcGF0aC90b29scy9uZGJfd2FpdGVyIiwKIAkJ CSAiJG5kYl9wYXRoL25kYl93YWl0ZXIiKTsKQEAgLTQ3MDMsMTEgKzQ3MDUsMTUgQEAgc3ViIHJ1 bl9teXNxbHRlc3QgKCQpIHsKIAogICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIyBJZiBlbWJlZGRlZCBz ZXJ2ZXIsIHdlIGNyZWF0ZSBzZXJ2ZXIgYXJncyB0byBnaXZlIG15c3FsdGVzdCB0byBwYXNzIG9u CisgICMgYW5kIHJlbW92ZSBleGlzdGluZyBmYWxjb24gdGFibGVzCiAgICMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotCisgIAogICBpZiAoICRnbG9iX3VzZV9lbWJlZGRlZF9zZXJ2ZXIgKQogICB7CiAgICAgbXlz cWxkX2FyZ3VtZW50cygkYXJncywkbWFzdGVyLT5bMF0sJHRpbmZvLT57J21hc3Rlcl9vcHQnfSxb XSk7CisgICAgI1JlbW92ZSAgZmFsY29uIHRhYmxlcyBiZWZvcmUgZWFjaCB0ZXN0LCBvdGhlcndp c2UgZXZlcnkgc3RhcnQgbWlnaHQgZmFpbAorICAgICNpZiB0aGVyZSBpcyBhbiBlcnJvciBpbiBm YWxjb24gcmVjb3ZlcnkNCisgICAgcm1fZmFsY29uX3RhYmxlcygkbWFzdGVyLT5bMF0tPnsncGF0 aF9teWRkaXInfSk7CiAgIH0KIAogICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCj09PSBtb2RpZmllZCBmaWxl ICdteXNxbC10ZXN0L3IvZnVuY19pZi5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci9mdW5jX2lm LnJlc3VsdAkyMDA4LTAyLTEyIDE5OjA5OjE2ICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9mdW5j X2lmLnJlc3VsdAkyMDA4LTA3LTMxIDA5OjUwOjI0ICswMDAwCkBAIC0xMzEsMyArMTMxLDQ5IEBA IGRyb3AgdGFibGUgdDE7CiBzZWxlY3QgaWYoMCwgMTg0NDY3NDQwNzM3MDk1NTE2MTAsIDE4NDQ2 NzQ0MDczNzA5NTUxNjEwKTsKIGlmKDAsIDE4NDQ2NzQ0MDczNzA5NTUxNjEwLCAxODQ0Njc0NDA3 MzcwOTU1MTYxMCkKIDE4NDQ2NzQ0MDczNzA5NTUxNjEwCitDUkVBVEUgVEFCTEUgdDEoYSBERUNJ TUFMKDEwLDMpKTsKK1NFTEVDVCB0MS5hLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigo Uk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5E KHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5h LDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0x KSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIs CitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYo KFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VO RCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEu YSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9 MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAy LAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lG KChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9V TkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQx LmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIp PTEpLCAyLDApKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkgKyAxCitGUk9NIHQxOworYQlJ RigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJP VU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0 MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwy KT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSks IDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChSCitEUk9QIFRBQkxFIHQxOworRW5k IG9mIDUuMCB0ZXN0cwoKPT09IGFkZGVkIGZpbGUgJ215c3FsLXRlc3Qvci9oYXZlX25vZGVidWcu cmVxdWlyZScKLS0tIGEvbXlzcWwtdGVzdC9yL2hhdmVfbm9kZWJ1Zy5yZXF1aXJlCTE5NzAtMDEt MDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9yL2hhdmVfbm9kZWJ1Zy5yZXF1aXJl CTIwMDgtMDctMjQgMTY6NTA6MTggKzAwMDAKQEAgLTAsMCArMSwyIEBACitkZWJ1ZworMAoKPT09 IGFkZGVkIGZpbGUgJ215c3FsLXRlc3Qvci9pbm5vZGItYXV0b2luYy1vcHRpbWl6ZS5yZXN1bHQn Ci0tLSBhL215c3FsLXRlc3Qvci9pbm5vZGItYXV0b2luYy1vcHRpbWl6ZS5yZXN1bHQJMTk3MC0w MS0wMSAwMDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3IvaW5ub2RiLWF1dG9pbmMtb3B0 aW1pemUucmVzdWx0CTIwMDgtMDgtMTMgMDg6MTY6MzQgKzAwMDAKQEAgLTAsMCArMSw2IEBACitk cm9wIHRhYmxlIGlmIGV4aXN0cyB0MTsKK2NyZWF0ZSB0YWJsZSB0MShhIGludCBub3QgbnVsbCBh dXRvX2luY3JlbWVudCBwcmltYXJ5IGtleSkgZW5naW5lPWlubm9kYjsKK2luc2VydCBpbnRvIHQx IHNldCBhID0gLTE7CitvcHRpbWl6ZSB0YWJsZSB0MTsKK1RhYmxlCU9wCU1zZ190eXBlCU1zZ190 ZXh0Cit0ZXN0LnQxCW9wdGltaXplCXN0YXR1cwlPSwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3Fs LXRlc3Qvci9wZXJyb3IucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3IvcGVycm9yLnJlc3VsdAky MDA2LTA4LTAxIDA5OjI5OjEwICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9wZXJyb3IucmVzdWx0 CTIwMDgtMDgtMDUgMjM6MjY6MTggKzAwMDAKQEAgLTEgKzEsNiBAQAogSWxsZWdhbCBlcnJvciBj b2RlOiAxMDAwMAorTXlTUUwgZXJyb3IgY29kZSAxMDYyIChFUl9EVVBfRU5UUlkpOiBEdXBsaWNh dGUgZW50cnkgJyUtLjE5MnMnIGZvciBrZXkgJWQKK015U1FMIGVycm9yIGNvZGUgMTA3NiAoRVJf UkVBRFkpOiAlczogcmVhZHkgZm9yIGNvbm5lY3Rpb25zLgorVmVyc2lvbjogJyVzJyAgc29ja2V0 OiAnJXMnICBwb3J0OiAlZAorTXlTUUwgZXJyb3IgY29kZSAxNDU5IChFUl9UQUJMRV9ORUVEU19V UEdSQURFKTogVGFibGUgdXBncmFkZSByZXF1aXJlZC4gUGxlYXNlIGRvICJSRVBBSVIgVEFCTEUg YCUtLjMyc2AiIHRvIGZpeCBpdCEKK015U1FMIGVycm9yIGNvZGUgMTQ2MSAoRVJfTUFYX1BSRVBB UkVEX1NUTVRfQ09VTlRfUkVBQ0hFRCk6IENhbid0IGNyZWF0ZSBtb3JlIHRoYW4gbWF4X3ByZXBh cmVkX3N0bXRfY291bnQgc3RhdGVtZW50cyAoY3VycmVudCB2YWx1ZTogJWx1KQoKPT09IGFkZGVk IGZpbGUgJ215c3FsLXRlc3Qvci9zcC1uby1jb2RlLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9y L3NwLW5vLWNvZGUucmVzdWx0CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwt dGVzdC9yL3NwLW5vLWNvZGUucmVzdWx0CTIwMDgtMDctMjQgMTY6NTA6MTggKzAwMDAKQEAgLTAs MCArMSw0IEBACitzaG93IHByb2NlZHVyZSBjb2RlIGZvbzsKK0VSUk9SIEhZMDAwOiBUaGUgJ1NI T1cgUFJPQ0VEVVJFfEZVTkNUSU9OIENPREUnIGZlYXR1cmUgaXMgZGlzYWJsZWQ7IHlvdSBuZWVk IE15U1FMIGJ1aWx0IHdpdGggJy0td2l0aC1kZWJ1ZycgdG8gaGF2ZSBpdCB3b3JraW5nCitzaG93 IGZ1bmN0aW9uIGNvZGUgZm9vOworRVJST1IgSFkwMDA6IFRoZSAnU0hPVyBQUk9DRURVUkV8RlVO Q1RJT04gQ09ERScgZmVhdHVyZSBpcyBkaXNhYmxlZDsgeW91IG5lZWQgTXlTUUwgYnVpbHQgd2l0 aCAnLS13aXRoLWRlYnVnJyB0byBoYXZlIGl0IHdvcmtpbmcKCj09PSBtb2RpZmllZCBmaWxlICdt eXNxbC10ZXN0L3Ivc3Vic2VsZWN0LnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL3N1YnNlbGVj dC5yZXN1bHQJMjAwOC0wNy0xMCAyMzoyOToyNyArMDAwMAorKysgYi9teXNxbC10ZXN0L3Ivc3Vi c2VsZWN0LnJlc3VsdAkyMDA4LTA3LTMxIDExOjM3OjA3ICswMDAwCkBAIC00NjAwLDcgKzQ2MDAs MTggQEAgSU5TRVJUIElOVE8gdDEgVkFMVUVTICgxKSwgKDMpOwogU0VMRUNUICogRlJPTSB0MiBX SEVSRSBiIE5PVCBJTiAoU0VMRUNUIG1heCh0LmMpIEZST00gdDEsIHQxIHQgV0hFUkUgdC5jPjEw KTsKIGEJYgogRFJPUCBUQUJMRSB0MSx0MjsKLUVuZCBvZiA1LjAgdGVzdHMuCitDUkVBVEUgVEFC TEUgdDEocGsgaW50IFBSSU1BUlkgS0VZLCBhIGludCwgSU5ERVggaWR4KGEpKTsKK0lOU0VSVCBJ TlRPIHQxIFZBTFVFUyAoMSwgMTApLCAoMywgMzApLCAoMiwgMjApOworQ1JFQVRFIFRBQkxFIHQy KHBrIGludCBQUklNQVJZIEtFWSwgYSBpbnQsIGIgaW50LCBJTkRFWCBpZHhhKGEpKTsKK0lOU0VS VCBJTlRPIHQyIFZBTFVFUyAoMiwgMjAsIDcwMCksICgxLCAxMCwgMjAwKSwgKDQsIDEwLCAxMDAp OworU0VMRUNUICogRlJPTSB0MQorV0hFUkUgRVhJU1RTIChTRUxFQ1QgRElTVElOQ1QgYSBGUk9N IHQyIFdIRVJFIHQxLmEgPCB0Mi5hIE9SREVSIEJZIGIpOworcGsJYQorMQkxMAorMwkzMAorMgky MAorRFJPUCBUQUJMRSB0MSx0MjsKK0VuZCBvZiA1LjEgdGVzdHMuCiBDUkVBVEUgVEFCTEUgdDEo IGEgSU5UICk7CiBJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKDEpLCgyKTsKIENSRUFURSBUQUJMRSB0 MiggYSBJTlQsIGIgSU5UICk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9yL3N1YnNl bGVjdF9ub19tYXQucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3Ivc3Vic2VsZWN0X25vX21hdC5y ZXN1bHQJMjAwOC0wNy0xMCAyMzoyOToyNyArMDAwMAorKysgYi9teXNxbC10ZXN0L3Ivc3Vic2Vs ZWN0X25vX21hdC5yZXN1bHQJMjAwOC0wNy0zMSAxMTozNzowNyArMDAwMApAQCAtNDYwNCw3ICs0 NjA0LDE4IEBAIElOU0VSVCBJTlRPIHQxIFZBTFVFUyAoMSksICgzKTsKIFNFTEVDVCAqIEZST00g dDIgV0hFUkUgYiBOT1QgSU4gKFNFTEVDVCBtYXgodC5jKSBGUk9NIHQxLCB0MSB0IFdIRVJFIHQu Yz4xMCk7CiBhCWIKIERST1AgVEFCTEUgdDEsdDI7Ci1FbmQgb2YgNS4wIHRlc3RzLgorQ1JFQVRF IFRBQkxFIHQxKHBrIGludCBQUklNQVJZIEtFWSwgYSBpbnQsIElOREVYIGlkeChhKSk7CitJTlNF UlQgSU5UTyB0MSBWQUxVRVMgKDEsIDEwKSwgKDMsIDMwKSwgKDIsIDIwKTsKK0NSRUFURSBUQUJM RSB0MihwayBpbnQgUFJJTUFSWSBLRVksIGEgaW50LCBiIGludCwgSU5ERVggaWR4YShhKSk7CitJ TlNFUlQgSU5UTyB0MiBWQUxVRVMgKDIsIDIwLCA3MDApLCAoMSwgMTAsIDIwMCksICg0LCAxMCwg MTAwKTsKK1NFTEVDVCAqIEZST00gdDEKK1dIRVJFIEVYSVNUUyAoU0VMRUNUIERJU1RJTkNUIGEg RlJPTSB0MiBXSEVSRSB0MS5hIDwgdDIuYSBPUkRFUiBCWSBiKTsKK3BrCWEKKzEJMTAKKzMJMzAK KzIJMjAKK0RST1AgVEFCTEUgdDEsdDI7CitFbmQgb2YgNS4xIHRlc3RzLgogQ1JFQVRFIFRBQkxF IHQxKCBhIElOVCApOwogSU5TRVJUIElOVE8gdDEgVkFMVUVTICgxKSwoMik7CiBDUkVBVEUgVEFC TEUgdDIoIGEgSU5ULCBiIElOVCApOwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci9z dWJzZWxlY3Rfbm9fb3B0cy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci9zdWJzZWxlY3Rfbm9f b3B0cy5yZXN1bHQJMjAwOC0wNy0xMCAyMzoyOToyNyArMDAwMAorKysgYi9teXNxbC10ZXN0L3Iv c3Vic2VsZWN0X25vX29wdHMucmVzdWx0CTIwMDgtMDctMzEgMTE6Mzc6MDcgKzAwMDAKQEAgLTQ2 MDQsNyArNDYwNCwxOCBAQCBJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKDEpLCAoMyk7CiBTRUxFQ1Qg KiBGUk9NIHQyIFdIRVJFIGIgTk9UIElOIChTRUxFQ1QgbWF4KHQuYykgRlJPTSB0MSwgdDEgdCBX SEVSRSB0LmM+MTApOwogYQliCiBEUk9QIFRBQkxFIHQxLHQyOwotRW5kIG9mIDUuMCB0ZXN0cy4K K0NSRUFURSBUQUJMRSB0MShwayBpbnQgUFJJTUFSWSBLRVksIGEgaW50LCBJTkRFWCBpZHgoYSkp OworSU5TRVJUIElOVE8gdDEgVkFMVUVTICgxLCAxMCksICgzLCAzMCksICgyLCAyMCk7CitDUkVB VEUgVEFCTEUgdDIocGsgaW50IFBSSU1BUlkgS0VZLCBhIGludCwgYiBpbnQsIElOREVYIGlkeGEo YSkpOworSU5TRVJUIElOVE8gdDIgVkFMVUVTICgyLCAyMCwgNzAwKSwgKDEsIDEwLCAyMDApLCAo NCwgMTAsIDEwMCk7CitTRUxFQ1QgKiBGUk9NIHQxCitXSEVSRSBFWElTVFMgKFNFTEVDVCBESVNU SU5DVCBhIEZST00gdDIgV0hFUkUgdDEuYSA8IHQyLmEgT1JERVIgQlkgYik7CitwawlhCisxCTEw CiszCTMwCisyCTIwCitEUk9QIFRBQkxFIHQxLHQyOworRW5kIG9mIDUuMSB0ZXN0cy4KIENSRUFU RSBUQUJMRSB0MSggYSBJTlQgKTsKIElOU0VSVCBJTlRPIHQxIFZBTFVFUyAoMSksKDIpOwogQ1JF QVRFIFRBQkxFIHQyKCBhIElOVCwgYiBJTlQgKTsKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10 ZXN0L3Ivc3Vic2VsZWN0X25vX3NlbWlqb2luLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL3N1 YnNlbGVjdF9ub19zZW1pam9pbi5yZXN1bHQJMjAwOC0wNy0xMCAyMzoyOToyNyArMDAwMAorKysg Yi9teXNxbC10ZXN0L3Ivc3Vic2VsZWN0X25vX3NlbWlqb2luLnJlc3VsdAkyMDA4LTA3LTMxIDEx OjM3OjA3ICswMDAwCkBAIC00NjA0LDcgKzQ2MDQsMTggQEAgSU5TRVJUIElOVE8gdDEgVkFMVUVT ICgxKSwgKDMpOwogU0VMRUNUICogRlJPTSB0MiBXSEVSRSBiIE5PVCBJTiAoU0VMRUNUIG1heCh0 LmMpIEZST00gdDEsIHQxIHQgV0hFUkUgdC5jPjEwKTsKIGEJYgogRFJPUCBUQUJMRSB0MSx0MjsK LUVuZCBvZiA1LjAgdGVzdHMuCitDUkVBVEUgVEFCTEUgdDEocGsgaW50IFBSSU1BUlkgS0VZLCBh IGludCwgSU5ERVggaWR4KGEpKTsKK0lOU0VSVCBJTlRPIHQxIFZBTFVFUyAoMSwgMTApLCAoMywg MzApLCAoMiwgMjApOworQ1JFQVRFIFRBQkxFIHQyKHBrIGludCBQUklNQVJZIEtFWSwgYSBpbnQs IGIgaW50LCBJTkRFWCBpZHhhKGEpKTsKK0lOU0VSVCBJTlRPIHQyIFZBTFVFUyAoMiwgMjAsIDcw MCksICgxLCAxMCwgMjAwKSwgKDQsIDEwLCAxMDApOworU0VMRUNUICogRlJPTSB0MQorV0hFUkUg RVhJU1RTIChTRUxFQ1QgRElTVElOQ1QgYSBGUk9NIHQyIFdIRVJFIHQxLmEgPCB0Mi5hIE9SREVS IEJZIGIpOworcGsJYQorMQkxMAorMwkzMAorMgkyMAorRFJPUCBUQUJMRSB0MSx0MjsKK0VuZCBv ZiA1LjEgdGVzdHMuCiBDUkVBVEUgVEFCTEUgdDEoIGEgSU5UICk7CiBJTlNFUlQgSU5UTyB0MSBW QUxVRVMgKDEpLCgyKTsKIENSRUFURSBUQUJMRSB0MiggYSBJTlQsIGIgSU5UICk7Cgo9PT0gbW9k aWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vci9mYWxjb25fYnVnXzIyMTYxLnJl c3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vci9mYWxjb25fYnVnXzIyMTYxLnJl c3VsdAkyMDA4LTA3LTE0IDA1OjMyOjAzICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvZmFs Y29uL3IvZmFsY29uX2J1Z18yMjE2MS5yZXN1bHQJMjAwOC0wNy0zMSAxMDozNzo0MyArMDAwMApA QCAtOSwxMCArOSw2IEBAIENSRUFURSBJTkRFWCBpMSBPTiB0MSAoYSk7CiBFUlJPUiA0MjAwMDog QkxPQiBjb2x1bW4gJ2EnIGNhbid0IGJlIHVzZWQgaW4ga2V5IHNwZWNpZmljYXRpb24gd2l0aCB0 aGUgdXNlZCB0YWJsZSB0eXBlCiBBTFRFUiBUQUJMRSB0MSBNT0RJRlkgQ09MVU1OIGEgdmFyY2hh cigzMDAwMCk7CiBDUkVBVEUgSU5ERVggaTEgT04gdDEgKGEpOwotV2FybmluZ3M6Ci1XYXJuaW5n CTEwNzEJU3BlY2lmaWVkIGtleSB3YXMgdG9vIGxvbmc7IG1heCBrZXkgbGVuZ3RoIGlzIDExMDAg Ynl0ZXMKLVdhcm5pbmcJMTA3MQlTcGVjaWZpZWQga2V5IHdhcyB0b28gbG9uZzsgbWF4IGtleSBs ZW5ndGggaXMgMTEwMCBieXRlcwotV2FybmluZwkxMDcxCVNwZWNpZmllZCBrZXkgd2FzIHRvbyBs b25nOyBtYXgga2V5IGxlbmd0aCBpcyAxMTAwIGJ5dGVzCiBTRUxFQ1QgY291bnQoKikgRlJPTSB0 MTsKIGNvdW50KCopCiAxCgo9PT0gcmVuYW1lZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2ZhbGNv bl90ZWFtL3IvZmFsY29uX2J1Z18yMzk2Mi5yZXN1bHQnID0+ICdteXNxbC10ZXN0L3N1aXRlL2Zh bGNvbi9yL2ZhbGNvbl9idWdfMjM5NjIucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Zh bGNvbl90ZWFtL3IvZmFsY29uX2J1Z18yMzk2Mi5yZXN1bHQJMjAwOC0wNC0yMCAwMDowNToxNyAr MDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi9yL2ZhbGNvbl9idWdfMjM5NjIucmVz dWx0CTIwMDgtMDctMTYgMTY6MDA6MzQgKzAwMDAKQEAgLTEsNSArMSw1IEBACi1TRVQgU1RPUkFH RV9FTkdJTkUgPSBGYWxjb247CiAqKiogQnVnICMyMzk2MiAqKioKK1NFVCBAQHN0b3JhZ2VfZW5n aW5lID0gJ0ZhbGNvbic7CiBEUk9QIFRBQkxFIElGIEVYSVNUUyB0MTsKIENSRUFURSBUQUJMRSB0 MSAoYSBjaGFyKDUpLCBLRVkgKGEpKTsKIElOU0VSVCBJTlRPIHQxIFZBTFVFUyAoJ2EnKSwgKCdh YScpLCAoJ2FhYScpLCAoJ2FiYycpLCAoJ2JiYicpOwpAQCAtMTQsNCArMTQsNyBAQCBhCiBhYWEK IGFiYwogYmJiCitTRUxFQ1QgY291bnQoKikgRlJPTSB0MTsKK2NvdW50KCopCis1CiBEUk9QIFRB QkxFIHQxOwoKPT09IHJlbmFtZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb25fdGVhbS9y L2ZhbGNvbl9idWdfMjc5OTcucmVzdWx0JyA9PiAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vci9m YWxjb25fYnVnXzI3OTk3LnJlc3VsdCcKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3Vp dGUvZmFsY29uL3IvZmFsY29uX2J1Z18zMTI5NS5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3Vp dGUvZmFsY29uL3IvZmFsY29uX2J1Z18zMTI5NS5yZXN1bHQJMjAwOC0wNC0xNSAxNzoyOTozNiAr MDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi9yL2ZhbGNvbl9idWdfMzEyOTUucmVz dWx0CTIwMDgtMDctMjkgMTA6NDU6MzkgKzAwMDAKQEAgLTEsMjIgKzEsMjggQEAKICoqKiBCdWcg IzMxMjk1ICoqKgotU0VUIEBAc3RvcmFnZV9lbmdpbmUgPSAnRmFsY29uJzsKK1NFVCBAQHN0b3Jh Z2VfZW5naW5lID0gRmFsY29uOwogRFJPUCBUQUJMRSBJRiBFWElTVFMgdDE7Ci1EUk9QIFRBQkxF U1BBQ0UgdHMxIEVOR0lORSAnRmFsY29uJzsKLUNSRUFURSBUQUJMRVNQQUNFIHRzMSBBREQgREFU QUZJTEUgJ3RzMS5mdHMnIEVOR0lORSAnRmFsY29uJzsKK0RST1AgVEFCTEVTUEFDRSB0czEgRU5H SU5FIEZhbGNvbjsKK0NSRUFURSBUQUJMRVNQQUNFIHRzMSBBREQgREFUQUZJTEUgJ3RzMS5mdHMn IEVOR0lORSBGYWxjb247CiBDUkVBVEUgVEFCTEUgdDEoYSBpbnQpOwotU0VMRUNUICogRlJPTSBJ TkZPUk1BVElPTl9TQ0hFTUEuRkFMQ09OX1RBQkxFUyBXSEVSRSBUQUJMRV9OQU1FPSd0MSc7Ci1T Q0hFTUFfTkFNRQlUQUJMRV9OQU1FCVBBUlRJVElPTglUQUJMRVNQQUNFCUlOVEVSTkFMX05BTUUK LVRFU1QJVDEJCUZBTENPTl9VU0VSCVQxCi1BTFRFUiBUQUJMRSB0MSBUQUJMRVNQQUNFIHRzMSBF TkdJTkUgJ0ZhbGNvbic7Ci1TRUxFQ1QgKiBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5GQUxDT05f VEFCTEVTIFdIRVJFIFRBQkxFX05BTUU9J3QxJzsKLVNDSEVNQV9OQU1FCVRBQkxFX05BTUUJUEFS VElUSU9OCVRBQkxFU1BBQ0UJSU5URVJOQUxfTkFNRQotVEVTVAlUMQkJdHMxCVQxCi1BTFRFUiBU QUJMRSB0MSBFTkdJTkUgJ0ZhbGNvbic7Ci1TRUxFQ1QgKiBGUk9NIElORk9STUFUSU9OX1NDSEVN QS5GQUxDT05fVEFCTEVTIFdIRVJFIFRBQkxFX05BTUU9J3QxJzsKLVNDSEVNQV9OQU1FCVRBQkxF X05BTUUJUEFSVElUSU9OCVRBQkxFU1BBQ0UJSU5URVJOQUxfTkFNRQotVEVTVAlUMQkJdHMxCVQx CitTSE9XIENSRUFURSBUQUJMRSB0MTsKK1RhYmxlCUNyZWF0ZSBUYWJsZQordDEJQ1JFQVRFIFRB QkxFIGB0MWAgKAorICBgYWAgaW50KDExKSBERUZBVUxUIE5VTEwKKykgRU5HSU5FPUVOR0lORSBE RUZBVUxUIENIQVJTRVQ9bGF0aW4xCitBTFRFUiBUQUJMRSB0MSBUQUJMRVNQQUNFIHRzMSBFTkdJ TkUgRmFsY29uOworU0hPVyBDUkVBVEUgVEFCTEUgdDE7CitUYWJsZQlDcmVhdGUgVGFibGUKK3Qx CUNSRUFURSBUQUJMRSBgdDFgICgKKyAgYGFgIGludCgxMSkgREVGQVVMVCBOVUxMCispIC8qITUw MTAwIFRBQkxFU1BBQ0UgYHRzMWAgKi8gRU5HSU5FPUVOR0lORSBERUZBVUxUIENIQVJTRVQ9bGF0 aW4xCitBTFRFUiBUQUJMRSB0MSBFTkdJTkUgRmFsY29uOworU0hPVyBDUkVBVEUgVEFCTEUgdDE7 CitUYWJsZQlDcmVhdGUgVGFibGUKK3QxCUNSRUFURSBUQUJMRSBgdDFgICgKKyAgYGFgIGludCgx MSkgREVGQVVMVCBOVUxMCispIC8qITUwMTAwIFRBQkxFU1BBQ0UgYHRzMWAgKi8gRU5HSU5FPUVO R0lORSBERUZBVUxUIENIQVJTRVQ9bGF0aW4xCiBTRUxFQ1QgY291bnQoKikgRlJPTSB0MTsKIGNv dW50KCopCiAwCiBEUk9QIFRBQkxFIHQxOwotRFJPUCBUQUJMRVNQQUNFIHRzMSBFTkdJTkUgJ0Zh bGNvbic7CitEUk9QIFRBQkxFU1BBQ0UgdHMxIEVOR0lORSBGYWxjb247Cgo9PT0gbW9kaWZpZWQg ZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vci9mYWxjb25fYnVnXzMzNDA0LnJlc3VsdCcK LS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vci9mYWxjb25fYnVnXzMzNDA0LnJlc3VsdAky MDA4LTA0LTIzIDA2OjU0OjEzICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3Iv ZmFsY29uX2J1Z18zMzQwNC5yZXN1bHQJMjAwOC0wNy0yOSAxMDo0NTozOSArMDAwMApAQCAtMTIs MjMgKzEyLDE3IEBAIFNVQlBBUlRJVElPTiBwMnMxLAogU1VCUEFSVElUSU9OIHAyczIKICkKICk7 Ci1TRUxFQ1QgKiBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5GQUxDT05fVEFCTEVTIFdIRVJFCi1U QUJMRV9OQU1FID0gJ3QxJyBBTkQgU0NIRU1BX05BTUU9J3Rlc3QnOwotU0NIRU1BX05BTUUJVEFC TEVfTkFNRQlQQVJUSVRJT04JVEFCTEVTUEFDRQlJTlRFUk5BTF9OQU1FCi1URVNUCVQxCVAxUzEJ dHMzCVQxI1AjUDEjU1AjUDFTMQotVEVTVAlUMQlQMVMyCXRzMglUMSNQI1AxI1NQI1AxUzIKLVRF U1QJVDEJUDJTMQl0czEJVDEjUCNQMiNTUCNQMlMxCi1URVNUCVQxCVAyUzIJdHMxCVQxI1AjUDIj U1AjUDJTMgogU0hPVyBDUkVBVEUgVEFCTEUgdDE7CiBUYWJsZQlDcmVhdGUgVGFibGUKIHQxCUNS RUFURSBUQUJMRSBgdDFgICgKICAgYGFgIGludCgxMSkgREVGQVVMVCBOVUxMCiApIC8qITUwMTAw IFRBQkxFU1BBQ0UgYHRzMWAgKi8gRU5HSU5FPUZhbGNvbiBERUZBVUxUIENIQVJTRVQ9bGF0aW4x IC8qITUwMTAwIFBBUlRJVElPTiBCWSBSQU5HRSAoYSkgU1VCUEFSVElUSU9OIEJZIEhBU0ggKGEp IChQQVJUSVRJT04gcDEgVkFMVUVTIExFU1MgVEhBTiAoMTAwKSAoU1VCUEFSVElUSU9OIHAxczEg VEFCTEVTUEFDRSA9IHRzMyBFTkdJTkUgPSBGYWxjb24sIFNVQlBBUlRJVElPTiBwMXMyIFRBQkxF U1BBQ0UgPSB0czIgRU5HSU5FID0gRmFsY29uKSwgUEFSVElUSU9OIHAyIFZBTFVFUyBMRVNTIFRI QU4gTUFYVkFMVUUgKFNVQlBBUlRJVElPTiBwMnMxIFRBQkxFU1BBQ0UgPSB0czEgRU5HSU5FID0g RmFsY29uLCBTVUJQQVJUSVRJT04gcDJzMiBUQUJMRVNQQUNFID0gdHMxIEVOR0lORSA9IEZhbGNv bikpICovCiBBTFRFUiBUQUJMRSB0MSBSRU1PVkUgUEFSVElUSU9OSU5HOwotU0VMRUNUICogRlJP TSBJTkZPUk1BVElPTl9TQ0hFTUEuRkFMQ09OX1RBQkxFUyBXSEVSRQotVEFCTEVfTkFNRSA9ICd0 MScgQU5EIFNDSEVNQV9OQU1FPSd0ZXN0JzsKLVNDSEVNQV9OQU1FCVRBQkxFX05BTUUJUEFSVElU SU9OCVRBQkxFU1BBQ0UJSU5URVJOQUxfTkFNRQotVEVTVAlUMQkJdHMxCVQxCitTSE9XIENSRUFU RSBUQUJMRSB0MTsKK1RhYmxlCUNyZWF0ZSBUYWJsZQordDEJQ1JFQVRFIFRBQkxFIGB0MWAgKAor ICBgYWAgaW50KDExKSBERUZBVUxUIE5VTEwKKykgLyohNTAxMDAgVEFCTEVTUEFDRSBgdHMxYCAq LyBFTkdJTkU9RmFsY29uIERFRkFVTFQgQ0hBUlNFVD1sYXRpbjEKIEFMVEVSIFRBQkxFIHQxIFRB QkxFU1BBQ0UgdHMxCiBQQVJUSVRJT04gQlkgUkFOR0UoYSkgU1VCUEFSVElUSU9OIEJZIEhBU0go YSkgKAogUEFSVElUSU9OIHAxIFZBTFVFUyBMRVNTIFRIQU4gKDEwMCkgVEFCTEVTUEFDRSB0czIg KApAQCAtNDAsNTYgKzM0LDM4IEBAIFNVQlBBUlRJVElPTiBwMnMxLAogU1VCUEFSVElUSU9OIHAy czIKICkKICk7Ci1TRUxFQ1QgKiBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5GQUxDT05fVEFCTEVT IFdIRVJFCi1UQUJMRV9OQU1FID0gJ3QxJyBBTkQgU0NIRU1BX05BTUU9J3Rlc3QnOwotU0NIRU1B X05BTUUJVEFCTEVfTkFNRQlQQVJUSVRJT04JVEFCTEVTUEFDRQlJTlRFUk5BTF9OQU1FCi1URVNU CVQxCVAxUzEJdHMzCVQxI1AjUDEjU1AjUDFTMQotVEVTVAlUMQlQMVMyCXRzMglUMSNQI1AxI1NQ I1AxUzIKLVRFU1QJVDEJUDJTMQl0czEJVDEjUCNQMiNTUCNQMlMxCi1URVNUCVQxCVAyUzIJdHMx CVQxI1AjUDIjU1AjUDJTMgorU0hPVyBDUkVBVEUgVEFCTEUgdDE7CitUYWJsZQlDcmVhdGUgVGFi bGUKK3QxCUNSRUFURSBUQUJMRSBgdDFgICgKKyAgYGFgIGludCgxMSkgREVGQVVMVCBOVUxMCisp IC8qITUwMTAwIFRBQkxFU1BBQ0UgYHRzMWAgKi8gRU5HSU5FPUZhbGNvbiBERUZBVUxUIENIQVJT RVQ9bGF0aW4xIC8qITUwMTAwIFBBUlRJVElPTiBCWSBSQU5HRSAoYSkgU1VCUEFSVElUSU9OIEJZ IEhBU0ggKGEpIChQQVJUSVRJT04gcDEgVkFMVUVTIExFU1MgVEhBTiAoMTAwKSAoU1VCUEFSVElU SU9OIHAxczEgVEFCTEVTUEFDRSA9IHRzMyBFTkdJTkUgPSBGYWxjb24sIFNVQlBBUlRJVElPTiBw MXMyIFRBQkxFU1BBQ0UgPSB0czIgRU5HSU5FID0gRmFsY29uKSwgUEFSVElUSU9OIHAyIFZBTFVF UyBMRVNTIFRIQU4gKDIwMCkgKFNVQlBBUlRJVElPTiBwMnMxIFRBQkxFU1BBQ0UgPSB0czEgRU5H SU5FID0gRmFsY29uLCBTVUJQQVJUSVRJT04gcDJzMiBUQUJMRVNQQUNFID0gdHMxIEVOR0lORSA9 IEZhbGNvbikpICovCiBBTFRFUiBUQUJMRSB0MSBBREQgUEFSVElUSU9OIChQQVJUSVRJT04gcDMg VkFMVUVTIExFU1MgVEhBTiBNQVhWQUxVRSk7Ci1TRUxFQ1QgKiBGUk9NIElORk9STUFUSU9OX1ND SEVNQS5GQUxDT05fVEFCTEVTIFdIRVJFCi1UQUJMRV9OQU1FID0gJ3QxJyBBTkQgU0NIRU1BX05B TUU9J3Rlc3QnOwotU0NIRU1BX05BTUUJVEFCTEVfTkFNRQlQQVJUSVRJT04JVEFCTEVTUEFDRQlJ TlRFUk5BTF9OQU1FCi1URVNUCVQxCVAxUzEJdHMzCVQxI1AjUDEjU1AjUDFTMQotVEVTVAlUMQlQ MVMyCXRzMglUMSNQI1AxI1NQI1AxUzIKLVRFU1QJVDEJUDJTMQl0czEJVDEjUCNQMiNTUCNQMlMx Ci1URVNUCVQxCVAyUzIJdHMxCVQxI1AjUDIjU1AjUDJTMgotVEVTVAlUMQlQM1NQMAl0czEJVDEj UCNQMyNTUCNQM1NQMAotVEVTVAlUMQlQM1NQMQl0czEJVDEjUCNQMyNTUCNQM1NQMQorU0hPVyBD UkVBVEUgVEFCTEUgdDE7CitUYWJsZQlDcmVhdGUgVGFibGUKK3QxCUNSRUFURSBUQUJMRSBgdDFg ICgKKyAgYGFgIGludCgxMSkgREVGQVVMVCBOVUxMCispIC8qITUwMTAwIFRBQkxFU1BBQ0UgYHRz MWAgKi8gRU5HSU5FPUZhbGNvbiBERUZBVUxUIENIQVJTRVQ9bGF0aW4xIC8qITUwMTAwIFBBUlRJ VElPTiBCWSBSQU5HRSAoYSkgU1VCUEFSVElUSU9OIEJZIEhBU0ggKGEpIChQQVJUSVRJT04gcDEg VkFMVUVTIExFU1MgVEhBTiAoMTAwKSAoU1VCUEFSVElUSU9OIHAxczEgVEFCTEVTUEFDRSA9IHRz MyBFTkdJTkUgPSBGYWxjb24sIFNVQlBBUlRJVElPTiBwMXMyIFRBQkxFU1BBQ0UgPSB0czIgRU5H SU5FID0gRmFsY29uKSwgUEFSVElUSU9OIHAyIFZBTFVFUyBMRVNTIFRIQU4gKDIwMCkgKFNVQlBB UlRJVElPTiBwMnMxIFRBQkxFU1BBQ0UgPSB0czEgRU5HSU5FID0gRmFsY29uLCBTVUJQQVJUSVRJ T04gcDJzMiBUQUJMRVNQQUNFID0gdHMxIEVOR0lORSA9IEZhbGNvbiksIFBBUlRJVElPTiBwMyBW QUxVRVMgTEVTUyBUSEFOIE1BWFZBTFVFIChTVUJQQVJUSVRJT04gcDNzcDAgVEFCTEVTUEFDRSA9 IHRzMSBFTkdJTkUgPSBGYWxjb24sIFNVQlBBUlRJVElPTiBwM3NwMSBUQUJMRVNQQUNFID0gdHMx IEVOR0lORSA9IEZhbGNvbikpICovCiBBTFRFUiBUQUJMRSB0MSBSRU9SR0FOSVpFIFBBUlRJVElP TiBwMyBJTlRPIChQQVJUSVRJT04gcDMgVkFMVUVTIExFU1MgVEhBTgogTUFYVkFMVUUgVEFCTEVT UEFDRSB0czEpOwotU0VMRUNUICogRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuRkFMQ09OX1RBQkxF UyBXSEVSRQotVEFCTEVfTkFNRSA9ICd0MScgQU5EIFNDSEVNQV9OQU1FPSd0ZXN0JzsKLVNDSEVN QV9OQU1FCVRBQkxFX05BTUUJUEFSVElUSU9OCVRBQkxFU1BBQ0UJSU5URVJOQUxfTkFNRQotVEVT VAlUMQlQMVMxCXRzMwlUMSNQI1AxI1NQI1AxUzEKLVRFU1QJVDEJUDFTMgl0czIJVDEjUCNQMSNT UCNQMVMyCi1URVNUCVQxCVAyUzEJdHMxCVQxI1AjUDIjU1AjUDJTMQotVEVTVAlUMQlQMlMyCXRz MQlUMSNQI1AyI1NQI1AyUzIKLVRFU1QJVDEJUDNTUDAJdHMxCVQxI1AjUDMjU1AjUDNTUDAKLVRF U1QJVDEJUDNTUDEJdHMxCVQxI1AjUDMjU1AjUDNTUDEKK1NIT1cgQ1JFQVRFIFRBQkxFIHQxOwor VGFibGUJQ3JlYXRlIFRhYmxlCit0MQlDUkVBVEUgVEFCTEUgYHQxYCAoCisgIGBhYCBpbnQoMTEp IERFRkFVTFQgTlVMTAorKSAvKiE1MDEwMCBUQUJMRVNQQUNFIGB0czFgICovIEVOR0lORT1GYWxj b24gREVGQVVMVCBDSEFSU0VUPWxhdGluMSAvKiE1MDEwMCBQQVJUSVRJT04gQlkgUkFOR0UgKGEp IFNVQlBBUlRJVElPTiBCWSBIQVNIIChhKSAoUEFSVElUSU9OIHAxIFZBTFVFUyBMRVNTIFRIQU4g KDEwMCkgKFNVQlBBUlRJVElPTiBwMXMxIFRBQkxFU1BBQ0UgPSB0czMgRU5HSU5FID0gRmFsY29u LCBTVUJQQVJUSVRJT04gcDFzMiBUQUJMRVNQQUNFID0gdHMyIEVOR0lORSA9IEZhbGNvbiksIFBB UlRJVElPTiBwMiBWQUxVRVMgTEVTUyBUSEFOICgyMDApIChTVUJQQVJUSVRJT04gcDJzMSBUQUJM RVNQQUNFID0gdHMxIEVOR0lORSA9IEZhbGNvbiwgU1VCUEFSVElUSU9OIHAyczIgVEFCTEVTUEFD RSA9IHRzMSBFTkdJTkUgPSBGYWxjb24pLCBQQVJUSVRJT04gcDMgVkFMVUVTIExFU1MgVEhBTiBN QVhWQUxVRSAoU1VCUEFSVElUSU9OIHAzc3AwIFRBQkxFU1BBQ0UgPSB0czEgRU5HSU5FID0gRmFs Y29uLCBTVUJQQVJUSVRJT04gcDNzcDEgVEFCTEVTUEFDRSA9IHRzMSBFTkdJTkUgPSBGYWxjb24p KSAqLwogQUxURVIgVEFCTEUgdDEgUkVPUkdBTklaRSBQQVJUSVRJT04gcDMgSU5UTyAoUEFSVElU SU9OIHAzIFZBTFVFUyBMRVNTIFRIQU4KIE1BWFZBTFVFIFRBQkxFU1BBQ0UgdHMyKTsKLVNFTEVD VCAqIEZST00gSU5GT1JNQVRJT05fU0NIRU1BLkZBTENPTl9UQUJMRVMgV0hFUkUKLVRBQkxFX05B TUUgPSAndDEnIEFORCBTQ0hFTUFfTkFNRT0ndGVzdCc7Ci1TQ0hFTUFfTkFNRQlUQUJMRV9OQU1F CVBBUlRJVElPTglUQUJMRVNQQUNFCUlOVEVSTkFMX05BTUUKLVRFU1QJVDEJUDFTMQl0czMJVDEj UCNQMSNTUCNQMVMxCi1URVNUCVQxCVAxUzIJdHMyCVQxI1AjUDEjU1AjUDFTMgotVEVTVAlUMQlQ MlMxCXRzMQlUMSNQI1AyI1NQI1AyUzEKLVRFU1QJVDEJUDJTMgl0czEJVDEjUCNQMiNTUCNQMlMy Ci1URVNUCVQxCVAzU1AwCXRzMglUMSNQI1AzI1NQI1AzU1AwCi1URVNUCVQxCVAzU1AxCXRzMglU MSNQI1AzI1NQI1AzU1AxCitTSE9XIENSRUFURSBUQUJMRSB0MTsKK1RhYmxlCUNyZWF0ZSBUYWJs ZQordDEJQ1JFQVRFIFRBQkxFIGB0MWAgKAorICBgYWAgaW50KDExKSBERUZBVUxUIE5VTEwKKykg LyohNTAxMDAgVEFCTEVTUEFDRSBgdHMxYCAqLyBFTkdJTkU9RmFsY29uIERFRkFVTFQgQ0hBUlNF VD1sYXRpbjEgLyohNTAxMDAgUEFSVElUSU9OIEJZIFJBTkdFIChhKSBTVUJQQVJUSVRJT04gQlkg SEFTSCAoYSkgKFBBUlRJVElPTiBwMSBWQUxVRVMgTEVTUyBUSEFOICgxMDApIChTVUJQQVJUSVRJ T04gcDFzMSBUQUJMRVNQQUNFID0gdHMzIEVOR0lORSA9IEZhbGNvbiwgU1VCUEFSVElUSU9OIHAx czIgVEFCTEVTUEFDRSA9IHRzMiBFTkdJTkUgPSBGYWxjb24pLCBQQVJUSVRJT04gcDIgVkFMVUVT IExFU1MgVEhBTiAoMjAwKSAoU1VCUEFSVElUSU9OIHAyczEgVEFCTEVTUEFDRSA9IHRzMSBFTkdJ TkUgPSBGYWxjb24sIFNVQlBBUlRJVElPTiBwMnMyIFRBQkxFU1BBQ0UgPSB0czEgRU5HSU5FID0g RmFsY29uKSwgUEFSVElUSU9OIHAzIFZBTFVFUyBMRVNTIFRIQU4gTUFYVkFMVUUgKFNVQlBBUlRJ VElPTiBwM3NwMCBUQUJMRVNQQUNFID0gdHMyIEVOR0lORSA9IEZhbGNvbiwgU1VCUEFSVElUSU9O IHAzc3AxIFRBQkxFU1BBQ0UgPSB0czIgRU5HSU5FID0gRmFsY29uKSkgKi8KIEFMVEVSIFRBQkxF IHQxIFJFT1JHQU5JWkUgUEFSVElUSU9OIHAxIElOVE8gKFBBUlRJVElPTiBwMSBWQUxVRVMgTEVT UyBUSEFOCiAoMTAwKSBUQUJMRVNQQUNFIHRzMik7Ci1TRUxFQ1QgKiBGUk9NIElORk9STUFUSU9O X1NDSEVNQS5GQUxDT05fVEFCTEVTIFdIRVJFCi1UQUJMRV9OQU1FID0gJ3QxJyBBTkQgU0NIRU1B X05BTUU9J3Rlc3QnOwotU0NIRU1BX05BTUUJVEFCTEVfTkFNRQlQQVJUSVRJT04JVEFCTEVTUEFD RQlJTlRFUk5BTF9OQU1FCi1URVNUCVQxCVAyUzEJdHMxCVQxI1AjUDIjU1AjUDJTMQotVEVTVAlU MQlQMlMyCXRzMQlUMSNQI1AyI1NQI1AyUzIKLVRFU1QJVDEJUDNTUDAJdHMyCVQxI1AjUDMjU1Aj UDNTUDAKLVRFU1QJVDEJUDNTUDEJdHMyCVQxI1AjUDMjU1AjUDNTUDEKLVRFU1QJVDEJUDFTUDAJ dHMyCVQxI1AjUDEjU1AjUDFTUDAKLVRFU1QJVDEJUDFTUDEJdHMyCVQxI1AjUDEjU1AjUDFTUDEK K1NIT1cgQ1JFQVRFIFRBQkxFIHQxOworVGFibGUJQ3JlYXRlIFRhYmxlCit0MQlDUkVBVEUgVEFC TEUgYHQxYCAoCisgIGBhYCBpbnQoMTEpIERFRkFVTFQgTlVMTAorKSAvKiE1MDEwMCBUQUJMRVNQ QUNFIGB0czFgICovIEVOR0lORT1GYWxjb24gREVGQVVMVCBDSEFSU0VUPWxhdGluMSAvKiE1MDEw MCBQQVJUSVRJT04gQlkgUkFOR0UgKGEpIFNVQlBBUlRJVElPTiBCWSBIQVNIIChhKSAoUEFSVElU SU9OIHAxIFZBTFVFUyBMRVNTIFRIQU4gKDEwMCkgKFNVQlBBUlRJVElPTiBwMXNwMCBUQUJMRVNQ QUNFID0gdHMyIEVOR0lORSA9IEZhbGNvbiwgU1VCUEFSVElUSU9OIHAxc3AxIFRBQkxFU1BBQ0Ug PSB0czIgRU5HSU5FID0gRmFsY29uKSwgUEFSVElUSU9OIHAyIFZBTFVFUyBMRVNTIFRIQU4gKDIw MCkgKFNVQlBBUlRJVElPTiBwMnMxIFRBQkxFU1BBQ0UgPSB0czEgRU5HSU5FID0gRmFsY29uLCBT VUJQQVJUSVRJT04gcDJzMiBUQUJMRVNQQUNFID0gdHMxIEVOR0lORSA9IEZhbGNvbiksIFBBUlRJ VElPTiBwMyBWQUxVRVMgTEVTUyBUSEFOIE1BWFZBTFVFIChTVUJQQVJUSVRJT04gcDNzcDAgVEFC TEVTUEFDRSA9IHRzMiBFTkdJTkUgPSBGYWxjb24sIFNVQlBBUlRJVElPTiBwM3NwMSBUQUJMRVNQ QUNFID0gdHMyIEVOR0lORSA9IEZhbGNvbikpICovCiBEUk9QIFRBQkxFIHQxOwogRFJPUCBUQUJM RVNQQUNFIHRzMSBFTkdJTkU9RmFsY29uOwogRFJPUCBUQUJMRVNQQUNFIHRzMiBFTkdJTkU9RmFs Y29uOwoKPT09IGFkZGVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX2J1 Z18zNTkzOS5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX2J1 Z18zNTkzOS5yZXN1bHQJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0 L3N1aXRlL2ZhbGNvbi9yL2ZhbGNvbl9idWdfMzU5MzkucmVzdWx0CTIwMDgtMDctMzEgMTA6MDQ6 MzAgKzAwMDAKQEAgLTAsMCArMSw2MSBAQAorKioqIEJ1ZyAjMzU5MzkgKioqCitTRVQgQEBzdG9y YWdlX2VuZ2luZSA9ICdGYWxjb24nOworRFJPUCBUQUJMRSBJRiBFWElTVFMgdDE7CitDUkVBVEUg VEFCTEUgdDEoaSBpbnQpOworSU5TRVJUIElOVE8gdDEoaSkgVkFMVUVTICgxKSwoMiksKDMpLCg0 KTsKK1NFTEVDVCBUQUJMRV9ST1dTICBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5UQUJMRVMgV0hF UkUgVEFCTEVfTkFNRSA9ICd0MSc7CitUQUJMRV9ST1dTCis0CitVUERBVEUgdDEgc2V0IGk9aSsx OworU0VMRUNUIFRBQkxFX1JPV1MgIEZST00gSU5GT1JNQVRJT05fU0NIRU1BLlRBQkxFUyBXSEVS RSBUQUJMRV9OQU1FID0gJ3QxJzsKK1RBQkxFX1JPV1MKKzQKK0RFTEVURSBGUk9NIHQxIFdIRVJF IGk9MjsKK1NFTEVDVCBUQUJMRV9ST1dTICBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5UQUJMRVMg V0hFUkUgVEFCTEVfTkFNRSA9ICd0MSc7CitUQUJMRV9ST1dTCiszCitTRVQgQVVUT0NPTU1JVD1P RkY7CitCRUdJTjsKK0lOU0VSVCBJTlRPIHQxKGkpIFZBTFVFUyg0Mik7CitERUxFVEUgRlJPTSB0 MSBXSEVSRSBpPTQyOworQ09NTUlUOworU0VMRUNUIFRBQkxFX1JPV1MgIEZST00gSU5GT1JNQVRJ T05fU0NIRU1BLlRBQkxFUyBXSEVSRSBUQUJMRV9OQU1FID0gJ3QxJzsKK1RBQkxFX1JPV1MKKzMK K0JFR0lOOworREVMRVRFIEZST00gdDEgV0hFUkUgaT00OworSU5TRVJUIElOVE8gdDEoaSkgVkFM VUVTKDQpOworQ09NTUlUOworU0VMRUNUIFRBQkxFX1JPV1MgIEZST00gSU5GT1JNQVRJT05fU0NI RU1BLlRBQkxFUyBXSEVSRSBUQUJMRV9OQU1FID0gJ3QxJzsKK1RBQkxFX1JPV1MKKzMKK0JFR0lO OworSU5TRVJUIElOVE8gdDEoaSkgVkFMVUVTKDQyKTsKK1VQREFURSB0MSBTRVQgaT00MyBXSEVS RSBpPTQyOworREVMRVRFIEZST00gdDEgV0hFUkUgaT00MzsKK0NPTU1JVDsKK1NFTEVDVCBUQUJM RV9ST1dTICBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5UQUJMRVMgV0hFUkUgVEFCTEVfTkFNRSA9 ICd0MSc7CitUQUJMRV9ST1dTCiszCitCRUdJTjsKK0RFTEVURSBGUk9NIHQxIFdIRVJFIGk9NDsK K0lOU0VSVCBJTlRPIHQxKGkpIFZBTFVFUyg0KTsKK1VQREFURSB0MSBTRVQgaT00MiBXSEVSRSBp PTQ7CitVUERBVEUgdDEgU0VUIGk9NCBXSEVSRSBpPTQyOworQ09NTUlUOworU0VMRUNUIFRBQkxF X1JPV1MgIEZST00gSU5GT1JNQVRJT05fU0NIRU1BLlRBQkxFUyBXSEVSRSBUQUJMRV9OQU1FID0g J3QxJzsKK1RBQkxFX1JPV1MKKzMKK0JFR0lOOworSU5TRVJUIElOVE8gdDEoaSkgVkFMVUVTKDQy KTsKK1VQREFURSB0MSBTRVQgaT00MyBXSEVSRSBpPTQyOworREVMRVRFIEZST00gdDEgV0hFUkUg aT00MzsKK1JPTExCQUNLOworU0VMRUNUIFRBQkxFX1JPV1MgIEZST00gSU5GT1JNQVRJT05fU0NI RU1BLlRBQkxFUyBXSEVSRSBUQUJMRV9OQU1FID0gJ3QxJzsKK1RBQkxFX1JPV1MKKzMKK1NFVCBB VVRPQ09NTUlUPU9OOworU0VMRUNUIGNvdW50KCopIEZST00gdDE7Citjb3VudCgqKQorMworRFJP UCBUQUJMRSB0MTsKCj09PSByZW5hbWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29uX3Rl YW0vci9mYWxjb25fYnVnXzM3MDgwLnJlc3VsdCcgPT4gJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29u L3IvZmFsY29uX2J1Z18zNzA4MC5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZmFsY29u X3RlYW0vci9mYWxjb25fYnVnXzM3MDgwLnJlc3VsdAkyMDA4LTA3LTAzIDA4OjQ2OjM3ICswMDAw CisrKyBiL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX2J1Z18zNzA4MC5yZXN1bHQJ MjAwOC0wNy0xNiAxNzo1MjoxOSArMDAwMApAQCAtMSw1ICsxLDUgQEAKICoqKiBCdWcgIzM3MDgw ICoqKgogU0VUIEBAc3RvcmFnZV9lbmdpbmUgPSAnRmFsY29uJzsKLURST1AgVEFCTEUgSUYgRVhJ U1RTIHQ7Ci1DUkVBVEUgVEFCTEUgdChpIGludCk7Ci1EUk9QIFRBQkxFIHQ7CitEUk9QIFRBQkxF IElGIEVYSVNUUyB0MTsKK0NSRUFURSBUQUJMRSB0MShhIGludCk7CitEUk9QIFRBQkxFIHQxOwoK PT09IGFkZGVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX2J1Z18zODAz OS5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX2J1Z18zODAz OS5yZXN1bHQJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRl L2ZhbGNvbi9yL2ZhbGNvbl9idWdfMzgwMzkucmVzdWx0CTIwMDgtMDctMTYgMTI6NDA6NDcgKzAw MDAKQEAgLTAsMCArMSwxOCBAQAorKioqIEJ1ZyAjMzgwMzkgKioqCitTRVQgQEBzdG9yYWdlX2Vu Z2luZSA9ICdGYWxjb24nOworRFJPUCBUQUJMRSBJRiBFWElTVFMgdDE7CitDUkVBVEUgVEFCTEUg dDEgKGFfaW50IElOVCkgRW5naW5lID0gRmFsY29uOworQUxURVIgVEFCTEUgdDEgQUREIEtFWSAo YV9pbnQpOworU0hPVyBJTkRFWEVTIEZST00gdDE7CitUYWJsZQlOb25fdW5pcXVlCUtleV9uYW1l CVNlcV9pbl9pbmRleAlDb2x1bW5fbmFtZQlDb2xsYXRpb24JQ2FyZGluYWxpdHkJU3ViX3BhcnQJ UGFja2VkCU51bGwJSW5kZXhfdHlwZQlDb21tZW50CUluZGV4X0NvbW1lbnQKK3QxCTEJYV9pbnQJ MQlhX2ludAlOVUxMCTEJTlVMTAlOVUxMCVlFUwlCVFJFRQkJCitBTFRFUiBUQUJMRSB0MSBBREQg S0VZIChhX2ludCk7CitTSE9XIElOREVYRVMgRlJPTSB0MTsKK1RhYmxlCU5vbl91bmlxdWUJS2V5 X25hbWUJU2VxX2luX2luZGV4CUNvbHVtbl9uYW1lCUNvbGxhdGlvbglDYXJkaW5hbGl0eQlTdWJf cGFydAlQYWNrZWQJTnVsbAlJbmRleF90eXBlCUNvbW1lbnQJSW5kZXhfQ29tbWVudAordDEJMQlh X2ludAkxCWFfaW50CU5VTEwJMQlOVUxMCU5VTEwJWUVTCUJUUkVFCQkKK3QxCTEJYV9pbnRfMgkx CWFfaW50CU5VTEwJMQlOVUxMCU5VTEwJWUVTCUJUUkVFCQkKK0FMVEVSIFRBQkxFIHQxIERST1Ag S0VZIGFfaW50OworU0hPVyBJTkRFWEVTIEZST00gdDE7CitUYWJsZQlOb25fdW5pcXVlCUtleV9u YW1lCVNlcV9pbl9pbmRleAlDb2x1bW5fbmFtZQlDb2xsYXRpb24JQ2FyZGluYWxpdHkJU3ViX3Bh cnQJUGFja2VkCU51bGwJSW5kZXhfdHlwZQlDb21tZW50CUluZGV4X0NvbW1lbnQKK3QxCTEJYV9p bnRfMgkxCWFfaW50CU5VTEwJMQlOVUxMCU5VTEwJWUVTCUJUUkVFCQkKK0RST1AgVEFCTEUgdDE7 Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vci9mYWxjb25fb3B0 aW9ucy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX29wdGlv bnMucmVzdWx0CTIwMDgtMDctMTAgMTk6MDA6MTQgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0 ZS9mYWxjb24vci9mYWxjb25fb3B0aW9ucy5yZXN1bHQJMjAwOC0wNy0xNyAxMzo1MjoxNyArMDAw MApAQCAtOSw3ICs5LDYgQEAgZmFsY29uX2RlYnVnX3RyYWNlCTAKIGZhbGNvbl9kaXJlY3RfaW8J MQogZmFsY29uX2dvcGhlcl90aHJlYWRzCTUKIGZhbGNvbl9pbmRleF9jaGlsbF90aHJlc2hvbGQJ NDE5NDMwNAotZmFsY29uX2luaXRpYWxfYWxsb2NhdGlvbgkwCiBmYWxjb25faW9fdGhyZWFkcwky CiBmYWxjb25fbGFyZ2VfYmxvYl90aHJlc2hvbGQJMTYwMDAwCiBmYWxjb25fbG9ja193YWl0X3Rp bWVvdXQJNTAKQEAgLTkyLDcgKzkxLDYgQEAgRkFMQ09OX0RFQlVHX1RSQUNFCTAKIEZBTENPTl9E SVJFQ1RfSU8JMQogRkFMQ09OX0dPUEhFUl9USFJFQURTCTUKIEZBTENPTl9JTkRFWF9DSElMTF9U SFJFU0hPTEQJMTA3Mzc0MTgyNAotRkFMQ09OX0lOSVRJQUxfQUxMT0NBVElPTgkwCiBGQUxDT05f SU9fVEhSRUFEUwkyCiBGQUxDT05fTEFSR0VfQkxPQl9USFJFU0hPTEQJMTYwMDAwCiBGQUxDT05f TE9DS19XQUlUX1RJTUVPVVQJNTAKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRl L2ZhbGNvbi9yL2ZhbGNvbl9vcHRpb25zMi5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUv ZmFsY29uL3IvZmFsY29uX29wdGlvbnMyLnJlc3VsdAkyMDA4LTA3LTEwIDE5OjAwOjE0ICswMDAw CisrKyBiL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX29wdGlvbnMyLnJlc3VsdAky MDA4LTA3LTE3IDEzOjUyOjE3ICswMDAwCkBAIC0xMCw3ICsxMCw2IEBAIEZBTENPTl9ERUJVR19U UkFDRQkwCiBGQUxDT05fRElSRUNUX0lPCTEKIEZBTENPTl9HT1BIRVJfVEhSRUFEUwk1CiBGQUxD T05fSU5ERVhfQ0hJTExfVEhSRVNIT0xECTQxOTQzMDQKLUZBTENPTl9JTklUSUFMX0FMTE9DQVRJ T04JMAogRkFMQ09OX0lPX1RIUkVBRFMJMgogRkFMQ09OX0xBUkdFX0JMT0JfVEhSRVNIT0xECTE2 MDAwMAogRkFMQ09OX0xPQ0tfV0FJVF9USU1FT1VUCTUwCkBAIC01NCw5ICs1Myw2IEBAIFNFTEVD VCBAQGZhbGNvbl9nb3BoZXJfdGhyZWFkczsKIFNFTEVDVCBAQGZhbGNvbl9pbmRleF9jaGlsbF90 aHJlc2hvbGQ7CiBAQGZhbGNvbl9pbmRleF9jaGlsbF90aHJlc2hvbGQKIDQxOTQzMDQKLVNFTEVD VCBAQGZhbGNvbl9pbml0aWFsX2FsbG9jYXRpb247Ci1AQGZhbGNvbl9pbml0aWFsX2FsbG9jYXRp b24KLTAKIFNFTEVDVCBAQGZhbGNvbl9pb190aHJlYWRzOwogQEBmYWxjb25faW9fdGhyZWFkcwog MgoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX2J1 Z18yMjE2MS50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi90L2ZhbGNvbl9idWdf MjIxNjEudGVzdAkyMDA4LTAyLTA2IDE1OjIxOjEzICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3Vp dGUvZmFsY29uL3QvZmFsY29uX2J1Z18yMjE2MS50ZXN0CTIwMDgtMDctMzEgMTA6Mzc6NDMgKzAw MDAKQEAgLTI1LDcgKzI1LDkgQEAgQUxURVIgVEFCTEUgdDEgTU9ESUZZIENPTFVNTiBhIHRleHQ7 CiAtLWVycm9yIEVSX0JMT0JfVVNFRF9BU19LRVkKIENSRUFURSBJTkRFWCBpMSBPTiB0MSAoYSk7 CiBBTFRFUiBUQUJMRSB0MSBNT0RJRlkgQ09MVU1OIGEgdmFyY2hhcigzMDAwMCk7CistLWRpc2Fi bGVfd2FybmluZ3MKIENSRUFURSBJTkRFWCBpMSBPTiB0MSAoYSk7CistLWVuYWJsZV93YXJuaW5n cwogCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tICMKICMgLS0tIENoZWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtLS0gIwoKPT09IHJlbmFtZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb25fdGVhbS90 L2ZhbGNvbl9idWdfMjM5NjIudGVzdCcgPT4gJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFs Y29uX2J1Z18yMzk2Mi50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2ZhbGNvbl90ZWFtL3Qv ZmFsY29uX2J1Z18yMzk2Mi50ZXN0CTIwMDgtMDQtMjAgMDA6MDU6MTcgKzAwMDAKKysrIGIvbXlz cWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxjb25fYnVnXzIzOTYyLnRlc3QJMjAwOC0wNy0xNiAx NjowMDozNCArMDAwMApAQCAtMSw5ICsxLDE2IEBACiAtLXNvdXJjZSBpbmNsdWRlL2hhdmVfZmFs Y29uLmluYwotU0VUIFNUT1JBR0VfRU5HSU5FID0gRmFsY29uOworCiAjCiAjIEJ1ZyAjMjM5NjI6 IFdyb25nIHJlc3VsdHMgd2l0aCA+IHNlYXJjaAogIwogLS1lY2hvICoqKiBCdWcgIzIzOTYyICoq KgorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tICMKKyMgLS0tIEluaXRpYWxpc2F0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtLS0gIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSAjCitsZXQgJGVuZ2luZSA9ICdGYWxjb24nOworZXZhbCBTRVQgQEBzdG9yYWdlX2Vu Z2luZSA9ICRlbmdpbmU7CisKIC0tZGlzYWJsZV93YXJuaW5ncwogRFJPUCBUQUJMRSBJRiBFWElT VFMgdDE7CiAtLWVuYWJsZV93YXJuaW5ncwpAQCAtMTEsOCArMTgsMTggQEAgRFJPUCBUQUJMRSBJ RiBFWElTVFMgdDE7CiBDUkVBVEUgVEFCTEUgdDEgKGEgY2hhcig1KSwgS0VZIChhKSk7CiBJTlNF UlQgSU5UTyB0MSBWQUxVRVMgKCdhJyksICgnYWEnKSwgKCdhYWEnKSwgKCdhYmMnKSwgKCdiYmIn KTsKIAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSAjCisjIC0tLSBUZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLS0tICMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gIwogU0VMRUNUICogRlJPTSB0MSBXSEVSRSBhID4gJ2EnICBPUkRFUiBCWSBhOwog U0VMRUNUICogRlJPTSB0MSBXSEVSRSBhID4gJ2FhJyBPUkRFUiBCWSBhOwogCi0jIEZpbmFsIGNs ZWFudXAuCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tICMKKyMgLS0tIENoZWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAtLS0gIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSAjCitTRUxFQ1QgY291bnQoKikgRlJPTSB0MTsKKworIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCisjIC0tLSBGaW5hbCBj bGVhbnVwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tICMKKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogRFJPUCBUQUJM RSB0MTsKCj09PSByZW5hbWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29uX3RlYW0vdC9m YWxjb25fYnVnXzI3OTk3LnRlc3QnID0+ICdteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi90L2ZhbGNv bl9idWdfMjc5OTcudGVzdCcKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZmFs Y29uL3QvZmFsY29uX2J1Z18zMTI5NS50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2ZhbGNv bi90L2ZhbGNvbl9idWdfMzEyOTUudGVzdAkyMDA4LTA0LTE1IDE3OjI5OjM2ICswMDAwCisrKyBi L215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX2J1Z18zMTI5NS50ZXN0CTIwMDgtMDct MjkgMTA6NDU6MzkgKzAwMDAKQEAgLTgsNyArOCw3IEBACiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICMgLS0tIEluaXRpYWxpc2F0aW9u ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0gIwogIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCi1sZXQgJGVuZ2luZSA9ICdG YWxjb24nOworbGV0ICRlbmdpbmUgPSBGYWxjb247CiBldmFsIFNFVCBAQHN0b3JhZ2VfZW5naW5l ID0gJGVuZ2luZTsKIAogLS1kaXNhYmxlX3dhcm5pbmdzCkBAIC0yMywxMiArMjMsMTQgQEAgQ1JF QVRFIFRBQkxFIHQxKGEgaW50KTsKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogIyAtLS0gVGVzdCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC0tLSAjCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKLVNFTEVDVCAqIEZST00gSU5GT1JNQVRJT05fU0NI RU1BLkZBTENPTl9UQUJMRVMgV0hFUkUgVEFCTEVfTkFNRT0ndDEnOworLS1yZXBsYWNlX3Jlc3Vs dCAkZW5naW5lIEVOR0lORQorU0hPVyBDUkVBVEUgVEFCTEUgdDE7CiBldmFsIEFMVEVSIFRBQkxF IHQxIFRBQkxFU1BBQ0UgdHMxIEVOR0lORSAkZW5naW5lOwotU0VMRUNUICogRlJPTSBJTkZPUk1B VElPTl9TQ0hFTUEuRkFMQ09OX1RBQkxFUyBXSEVSRSBUQUJMRV9OQU1FPSd0MSc7CistLXJlcGxh Y2VfcmVzdWx0ICRlbmdpbmUgRU5HSU5FCitTSE9XIENSRUFURSBUQUJMRSB0MTsKIGV2YWwgQUxU RVIgVEFCTEUgdDEgRU5HSU5FICRlbmdpbmU7Ci1TRUxFQ1QgKiBGUk9NIElORk9STUFUSU9OX1ND SEVNQS5GQUxDT05fVEFCTEVTIFdIRVJFIFRBQkxFX05BTUU9J3QxJzsKLQorLS1yZXBsYWNlX3Jl c3VsdCAkZW5naW5lIEVOR0lORQorU0hPVyBDUkVBVEUgVEFCTEUgdDE7CiAKICMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogIyAtLS0gQ2hl Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSAjCgo9PT0gbW9k aWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxjb25fYnVnXzMzNDA0LnRl c3QnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX2J1Z18zMzQwNC50ZXN0 CTIwMDgtMDQtMjMgMDY6NTQ6MTMgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24v dC9mYWxjb25fYnVnXzMzNDA0LnRlc3QJMjAwOC0wNy0yOSAxMDo0NTozOSArMDAwMApAQCAtMTks MTMgKzE5LDEwIEBAIFBBUlRJVElPTiBCWSBSQU5HRShhKSBTVUJQQVJUSVRJT04gQlkgSEEKICAg ICBTVUJQQVJUSVRJT04gcDJzMgogICApCiApOwotU0VMRUNUICogRlJPTSBJTkZPUk1BVElPTl9T Q0hFTUEuRkFMQ09OX1RBQkxFUyBXSEVSRQotICBUQUJMRV9OQU1FID0gJ3QxJyBBTkQgU0NIRU1B X05BTUU9J3Rlc3QnOwogU0hPVyBDUkVBVEUgVEFCTEUgdDE7CiAKIEFMVEVSIFRBQkxFIHQxIFJF TU9WRSBQQVJUSVRJT05JTkc7Ci1TRUxFQ1QgKiBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5GQUxD T05fVEFCTEVTIFdIRVJFCi0gIFRBQkxFX05BTUUgPSAndDEnIEFORCBTQ0hFTUFfTkFNRT0ndGVz dCc7CitTSE9XIENSRUFURSBUQUJMRSB0MTsKIAogQUxURVIgVEFCTEUgdDEgVEFCTEVTUEFDRSB0 czEKIFBBUlRJVElPTiBCWSBSQU5HRShhKSBTVUJQQVJUSVRJT04gQlkgSEFTSChhKSAoCkBAIC0z OCwyNyArMzUsMjIgQEAgUEFSVElUSU9OIEJZIFJBTkdFKGEpIFNVQlBBUlRJVElPTiBCWSBIQQog ICAgIFNVQlBBUlRJVElPTiBwMnMyCiAgICkKICk7Ci1TRUxFQ1QgKiBGUk9NIElORk9STUFUSU9O X1NDSEVNQS5GQUxDT05fVEFCTEVTIFdIRVJFCi0gIFRBQkxFX05BTUUgPSAndDEnIEFORCBTQ0hF TUFfTkFNRT0ndGVzdCc7CitTSE9XIENSRUFURSBUQUJMRSB0MTsKIAogQUxURVIgVEFCTEUgdDEg QUREIFBBUlRJVElPTiAoUEFSVElUSU9OIHAzIFZBTFVFUyBMRVNTIFRIQU4gTUFYVkFMVUUpOwot U0VMRUNUICogRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuRkFMQ09OX1RBQkxFUyBXSEVSRQotICBU QUJMRV9OQU1FID0gJ3QxJyBBTkQgU0NIRU1BX05BTUU9J3Rlc3QnOworU0hPVyBDUkVBVEUgVEFC TEUgdDE7CiAKIEFMVEVSIFRBQkxFIHQxIFJFT1JHQU5JWkUgUEFSVElUSU9OIHAzIElOVE8gKFBB UlRJVElPTiBwMyBWQUxVRVMgTEVTUyBUSEFOCiBNQVhWQUxVRSBUQUJMRVNQQUNFIHRzMSk7Ci1T RUxFQ1QgKiBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5GQUxDT05fVEFCTEVTIFdIRVJFCi0gIFRB QkxFX05BTUUgPSAndDEnIEFORCBTQ0hFTUFfTkFNRT0ndGVzdCc7CitTSE9XIENSRUFURSBUQUJM RSB0MTsKIAogQUxURVIgVEFCTEUgdDEgUkVPUkdBTklaRSBQQVJUSVRJT04gcDMgSU5UTyAoUEFS VElUSU9OIHAzIFZBTFVFUyBMRVNTIFRIQU4KIE1BWFZBTFVFIFRBQkxFU1BBQ0UgdHMyKTsKLVNF TEVDVCAqIEZST00gSU5GT1JNQVRJT05fU0NIRU1BLkZBTENPTl9UQUJMRVMgV0hFUkUKLSAgVEFC TEVfTkFNRSA9ICd0MScgQU5EIFNDSEVNQV9OQU1FPSd0ZXN0JzsKK1NIT1cgQ1JFQVRFIFRBQkxF IHQxOwogCiBBTFRFUiBUQUJMRSB0MSBSRU9SR0FOSVpFIFBBUlRJVElPTiBwMSBJTlRPIChQQVJU SVRJT04gcDEgVkFMVUVTIExFU1MgVEhBTgogKDEwMCkgVEFCTEVTUEFDRSB0czIpOwotU0VMRUNU ICogRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuRkFMQ09OX1RBQkxFUyBXSEVSRQotICBUQUJMRV9O QU1FID0gJ3QxJyBBTkQgU0NIRU1BX05BTUU9J3Rlc3QnOworU0hPVyBDUkVBVEUgVEFCTEUgdDE7 CiAKIERST1AgVEFCTEUgdDE7CiBEUk9QIFRBQkxFU1BBQ0UgdHMxIEVOR0lORT1GYWxjb247Cgo9 PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxjb25fYnVnXzM1OTM5 LnRlc3QnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX2J1Z18zNTkzOS50 ZXN0CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9mYWxj b24vdC9mYWxjb25fYnVnXzM1OTM5LnRlc3QJMjAwOC0wNy0zMSAxMDowNDozMCArMDAwMApAQCAt MCwwICsxLDg2IEBACistLXNvdXJjZSBpbmNsdWRlL2hhdmVfZmFsY29uLmluYworCisjCisjIEJ1 ZyAjMzU5Mzk6IERyaWZ0IGluIEZhbGNvbiByb3cgY291bnQgcmVwb3J0ZWQgYnkgU0hPVyBUQUJM RSBTVEFUVVMKKyMKKy0tZWNobyAqKiogQnVnICMzNTkzOSAqKioKKworIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCisjIC0tLSBJbml0aWFs aXNhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tICMKKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIworbGV0ICRlbmdp bmUgPSAnRmFsY29uJzsKK2V2YWwgU0VUIEBAc3RvcmFnZV9lbmdpbmUgPSAkZW5naW5lOworCist LWRpc2FibGVfd2FybmluZ3MKK0RST1AgVEFCTEUgSUYgRVhJU1RTIHQxOworLS1lbmFibGVfd2Fy bmluZ3MKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSAjCisjIC0tLSBUZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLS0tICMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gIworQ1JFQVRFIFRBQkxFIHQxKGkgaW50KTsKK0lOU0VSVCBJTlRPIHQxKGkp IFZBTFVFUyAoMSksKDIpLCgzKSwoNCk7CitTRUxFQ1QgVEFCTEVfUk9XUyAgRlJPTSBJTkZPUk1B VElPTl9TQ0hFTUEuVEFCTEVTIFdIRVJFIFRBQkxFX05BTUUgPSAndDEnOworIyBFeHBlY3QgNCBy b3dzCitVUERBVEUgdDEgc2V0IGk9aSsxOworU0VMRUNUIFRBQkxFX1JPV1MgIEZST00gSU5GT1JN QVRJT05fU0NIRU1BLlRBQkxFUyBXSEVSRSBUQUJMRV9OQU1FID0gJ3QxJzsKKyMgRXhwZWN0IDQg cm93cywgbm90aGluZyBhZGRlZCBvciBkZWxldGVkCitERUxFVEUgRlJPTSB0MSBXSEVSRSBpPTI7 CisjIE9uZSByb3cgZGVsZXRlZCwgZXhwZWN0IGNvdW50PTMKK1NFTEVDVCBUQUJMRV9ST1dTICBG Uk9NIElORk9STUFUSU9OX1NDSEVNQS5UQUJMRVMgV0hFUkUgVEFCTEVfTkFNRSA9ICd0MSc7CisK KyMgaW5zZXJ0L2RlbGV0ZSBvbiB0aGUgc2FtZSByb3csIGNvdW50IGRvZXMgbm90IGNoYW5nZQor U0VUIEFVVE9DT01NSVQ9T0ZGOworIyBOZXh0IHRlc3RzIGFyZSB0cmFuc2FjdGlvbmFsCitCRUdJ TjsKK0lOU0VSVCBJTlRPIHQxKGkpIFZBTFVFUyg0Mik7CitERUxFVEUgRlJPTSB0MSBXSEVSRSBp PTQyOworQ09NTUlUOworU0VMRUNUIFRBQkxFX1JPV1MgIEZST00gSU5GT1JNQVRJT05fU0NIRU1B LlRBQkxFUyBXSEVSRSBUQUJMRV9OQU1FID0gJ3QxJzsKKyMgQ291bnQgc2hvdWxkIG5vdCBiZSBj aGFuZ2VkLGNvdW50PTMKKworI2RlbGV0ZS9pbnNlcnQsIGNvdW50IGRvZXMgbm90IGNoYW5nZQor QkVHSU47CitERUxFVEUgRlJPTSB0MSBXSEVSRSBpPTQ7CitJTlNFUlQgSU5UTyB0MShpKSBWQUxV RVMoNCk7CitDT01NSVQ7CitTRUxFQ1QgVEFCTEVfUk9XUyAgRlJPTSBJTkZPUk1BVElPTl9TQ0hF TUEuVEFCTEVTIFdIRVJFIFRBQkxFX05BTUUgPSAndDEnOworIyBDb3VudCBzaG91bGQgbm90IGJl IGNoYW5nZWQsY291bnQ9MworCisjIGluc2VydC91cGRhdGUvZGVsZXRlIG9uIHRoZSBzYW1lIHJv dywgY291bnQgZG9lcyBub3QgY2hhbmdlCitCRUdJTjsKK0lOU0VSVCBJTlRPIHQxKGkpIFZBTFVF Uyg0Mik7CitVUERBVEUgdDEgU0VUIGk9NDMgV0hFUkUgaT00MjsKK0RFTEVURSBGUk9NIHQxIFdI RVJFIGk9NDM7CitDT01NSVQ7CitTRUxFQ1QgVEFCTEVfUk9XUyAgRlJPTSBJTkZPUk1BVElPTl9T Q0hFTUEuVEFCTEVTIFdIRVJFIFRBQkxFX05BTUUgPSAndDEnOworIyBDb3VudCBzaG91bGQgbm90 IGJlIGNoYW5nZWQsY291bnQ9MworCisjZGVsZXRlL2luc2VydC91cGRhdGUvdXBkYXRlLCBjb3Vu dCBkb2VzIG5vdCBjaGFuZ2UKK0JFR0lOOworREVMRVRFIEZST00gdDEgV0hFUkUgaT00OworSU5T RVJUIElOVE8gdDEoaSkgVkFMVUVTKDQpOworVVBEQVRFIHQxIFNFVCBpPTQyIFdIRVJFIGk9NDsK K1VQREFURSB0MSBTRVQgaT00IFdIRVJFIGk9NDI7CitDT01NSVQ7CitTRUxFQ1QgVEFCTEVfUk9X UyAgRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuVEFCTEVTIFdIRVJFIFRBQkxFX05BTUUgPSAndDEn OworIyBDb3VudCBzaG91bGQgbm90IGJlIGNoYW5nZWQsY291bnQ9MworCisjIHNhbWUgYXMgYmVm b3JlLCBidXQgd2l0aCByb2xsYmFjaworQkVHSU47CitJTlNFUlQgSU5UTyB0MShpKSBWQUxVRVMo NDIpOworVVBEQVRFIHQxIFNFVCBpPTQzIFdIRVJFIGk9NDI7CitERUxFVEUgRlJPTSB0MSBXSEVS RSBpPTQzOworUk9MTEJBQ0s7CitTRUxFQ1QgVEFCTEVfUk9XUyAgRlJPTSBJTkZPUk1BVElPTl9T Q0hFTUEuVEFCTEVTIFdIRVJFIFRBQkxFX05BTUUgPSAndDEnOworU0VUIEFVVE9DT01NSVQ9T047 CisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gIworIyAtLS0gQ2hlY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC0tLSAjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tICMKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHQxOworCisjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKKyMgLS0tIEZpbmFsIGNsZWFu dXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0gIworIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCitEUk9QIFRBQkxFIHQx OwoKPT09IHJlbmFtZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb25fdGVhbS90L2ZhbGNv bl9idWdfMzcwODAudGVzdCcgPT4gJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX2J1 Z18zNzA4MC50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2ZhbGNvbl90ZWFtL3QvZmFsY29u X2J1Z18zNzA4MC50ZXN0CTIwMDgtMDctMDMgMDg6NDY6MzcgKzAwMDAKKysrIGIvbXlzcWwtdGVz dC9zdWl0ZS9mYWxjb24vdC9mYWxjb25fYnVnXzM3MDgwLnRlc3QJMjAwOC0wNy0xNiAxNzo1Mjox OSArMDAwMApAQCAtMSw3ICsxLDggQEAKIC0tc291cmNlIGluY2x1ZGUvaGF2ZV9mYWxjb24uaW5j DQorDQogIw0KICMgQnVnIzM3MDgwOiBGYWxjb24gZGVhZGxvY2sgb24gcGFyYWxsZWwgVFJVTkNB VEUgIGFuZCBJTlNFUlQNCi0jIA0KKyMNCiAtLWVjaG8gKioqIEJ1ZyAjMzcwODAgKioqDQogDQog IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAj DQpAQCAtMTEsMjUgKzEyLDI0IEBAIGxldCAkZW5naW5lID0gJ0ZhbGNvbic7DQogZXZhbCBTRVQg QEBzdG9yYWdlX2VuZ2luZSA9ICRlbmdpbmU7DQogDQogLS1kaXNhYmxlX3dhcm5pbmdzDQotRFJP UCBUQUJMRSBJRiBFWElTVFMgdDsNCitEUk9QIFRBQkxFIElGIEVYSVNUUyB0MTsNCiAtLWVuYWJs ZV93YXJuaW5ncw0KIA0KLQ0KLUNSRUFURSBUQUJMRSB0KGkgaW50KTsNCitDUkVBVEUgVEFCTEUg dDEoYSBpbnQpOw0KIGNvbm5lY3QgKGNvbm4xLGxvY2FsaG9zdCxyb290LCwpOw0KKw0KICMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIw0KICMg LS0tIFRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0gIw0K ICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g Iw0KIA0KLQ0KIGxldCAkbnVtPTEwMDAwOw0KIC0tZGlzYWJsZV9xdWVyeV9sb2cNCiB3aGlsZSAo JG51bSkNCiB7DQogICAgY29ubmVjdGlvbiBjb25uMTsNCi0gICAtLXNlbmQgaW5zZXJ0IGludG8g dCB2YWx1ZXMoMSk7DQorICAgLS1zZW5kIGluc2VydCBpbnRvIHQxIHZhbHVlcygxKSwgKDMpLCAo NSksICg3KSAsICgxMSk7DQogICAgY29ubmVjdGlvbiBkZWZhdWx0Ow0KLSAgIC0tc2VuZCB0cnVu Y2F0ZSB0YWJsZSB0Ow0KKyAgIC0tc2VuZCB0cnVuY2F0ZSB0YWJsZSB0MTsNCiAgICBjb25uZWN0 aW9uIGNvbm4xOw0KICAgIC0tcmVhcA0KICAgIGNvbm5lY3Rpb24gZGVmYXVsdDsNCkBAIC00NSw0 ICs0NSw0IEBAIHdoaWxlICgkbnVtKQ0KICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIw0KICMgLS0tIEZpbmFsIGNsZWFudXAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAtLS0gIw0KICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIw0KLURST1AgVEFCTEUgdDsNCitEUk9QIFRB QkxFIHQxOw0KCj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi90L2ZhbGNv bl9idWdfMzgwMzkudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxjb25f YnVnXzM4MDM5LnRlc3QJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0 L3N1aXRlL2ZhbGNvbi90L2ZhbGNvbl9idWdfMzgwMzkudGVzdAkyMDA4LTA3LTE2IDEyOjQwOjQ3 ICswMDAwCkBAIC0wLDAgKzEsNDMgQEAKKy0tc291cmNlIGluY2x1ZGUvaGF2ZV9mYWxjb24uaW5j CisKKyMKKyMgQnVnICMzODAzOTogQXNzZXJ0aW9uIGxvY2tTdGF0ZSA9PSAwIGZhaWxlZCBpbiBT dG9yYWdlVGFibGVTaGFyZTo6ZGVsZXRlVGFibGUgU3luY09iamVjdAorIworCistLWVjaG8gKioq IEJ1ZyAjMzgwMzkgKioqCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gIworIyAtLS0gSW5pdGlhbGlzYXRpb24gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC0tLSAjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKK2xldCAkZW5naW5lID0gJ0ZhbGNvbic7CitldmFsIFNF VCBAQHN0b3JhZ2VfZW5naW5lID0gJGVuZ2luZTsKKworLS1kaXNhYmxlX3dhcm5pbmdzCitEUk9Q IFRBQkxFIElGIEVYSVNUUyB0MTsKKy0tZW5hYmxlX3dhcm5pbmdzCisKK0NSRUFURSBUQUJMRSB0 MSAoYV9pbnQgSU5UKSBFbmdpbmUgPSBGYWxjb247CisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIworIyAtLS0gVGVzdCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSAjCisjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKKworIyMgU0hPVyBJTkRFWEVT IGlzIG5vdCByZXF1aXJlZCB0byByZXByb2R1Y2UgdGhlIGJ1ZywgYnV0CisjIyBpcyBpbmNsdWRl ZCBoZXJlIHRvIHZlcmlmeSBjb3JyZWN0IGJlaGF2aW9yLgorCitBTFRFUiBUQUJMRSB0MSBBREQg S0VZIChhX2ludCk7CitTSE9XIElOREVYRVMgRlJPTSB0MTsKKworQUxURVIgVEFCTEUgdDEgQURE IEtFWSAoYV9pbnQpOworU0hPVyBJTkRFWEVTIEZST00gdDE7CisKK0FMVEVSIFRBQkxFIHQxIERS T1AgS0VZIGFfaW50OworU0hPVyBJTkRFWEVTIEZST00gdDE7CisKK0RST1AgVEFCTEUgdDE7CisK KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g IworIyAtLS0gRmluYWwgY2xlYW51cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0t LSAjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tICMKKworIyMgTm9uZSwgRFJPUCBUQUJMRSBpcyBwYXJ0IG9mIHRoZSB0ZXN0LgoKPT09IG1v ZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX29wdGlvbnMyLnRl c3QnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX29wdGlvbnMyLnRlc3QJ MjAwOC0wNy0xMCAxOTowMDoxNCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi90 L2ZhbGNvbl9vcHRpb25zMi50ZXN0CTIwMDgtMDctMTcgMTM6NTI6MTcgKzAwMDAKQEAgLTE0LDcg KzE0LDYgQEAgU0VMRUNUIEBAZmFsY29uX2RlYnVnX3RyYWNlOwogU0VMRUNUIEBAZmFsY29uX2Rp cmVjdF9pbzsKIFNFTEVDVCBAQGZhbGNvbl9nb3BoZXJfdGhyZWFkczsKIFNFTEVDVCBAQGZhbGNv bl9pbmRleF9jaGlsbF90aHJlc2hvbGQ7Ci1TRUxFQ1QgQEBmYWxjb25faW5pdGlhbF9hbGxvY2F0 aW9uOwogU0VMRUNUIEBAZmFsY29uX2lvX3RocmVhZHM7CiBTRUxFQ1QgQEBmYWxjb25fbGFyZ2Vf YmxvYl90aHJlc2hvbGQ7CiBTRUxFQ1QgQEBmYWxjb25fbG9ja193YWl0X3RpbWVvdXQ7Cgo9PT0g bW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvZmFsY29uX3N0b3JlZHBy b2MucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9mYWxjb25fc3RvcmVk cHJvYy5yZXN1bHQJMjAwOC0wNy0wOCAxODo0MDozMiArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1 aXRlL2Z1bmNzXzEvci9mYWxjb25fc3RvcmVkcHJvYy5yZXN1bHQJMjAwOC0wOC0wNyAxMzozODoy OSArMDAwMApAQCAtMjE5NDIsOSArMjE5NDIsOSBAQCBFTkQJbGF0aW4xCWxhdGluMV9zd2VkaXNo X2NpCWxhdGluMV9zd2VkCiBzZXQgQEBzcWxfbW9kZT0nJzsKIENBTEwgc3A0KCk7CiBMZXZlbAlD b2RlCU1lc3NhZ2UKLUVycm9yCTEzNjUJRGl2aXNpb24gYnkgMAorV2FybmluZwkxMzY1CURpdmlz aW9uIGJ5IDAKIFdhcm5pbmdzOgotRXJyb3IJMTM2NQlEaXZpc2lvbiBieSAwCitXYXJuaW5nCTEz NjUJRGl2aXNpb24gYnkgMAogRFJPUCBQUk9DRURVUkUgc3A0Owogc2V0IEBAc3FsX21vZGU9Jyc7 CiAKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9mYWxjb25f dHJpZ18wMy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2ZhbGNvbl90 cmlnXzAzLnJlc3VsdAkyMDA4LTA2LTAzIDEyOjEwOjMzICswMDAwCisrKyBiL215c3FsLXRlc3Qv c3VpdGUvZnVuY3NfMS9yL2ZhbGNvbl90cmlnXzAzLnJlc3VsdAkyMDA4LTA4LTA3IDEzOjM4OjI5 ICswMDAwCkBAIC03Nyw3ICs3Nyw3IEBAIGdyYW50IEFMTCAgb24gKi4qIHRvIHRlc3Rfbm9wcml2 c0Bsb2NhbGgKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9tIHRlc3Rfbm9wcml2c0Bsb2NhbGhv c3Q7CiBzaG93IGdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBmb3Ig dGVzdF9ub3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQREFURSwgREVM RVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVS RU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9S QVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBM SUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBB TFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQgT04gKi4qIFRPICd0ZXN0X25vcHJpdnMn QCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5OUMwQ0Yx MDRFRjkxODNGMzc0QTU0Q0EyNTc2JworR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQREFURSwgREVM RVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVS RU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9S QVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBM SUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBB TFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQsIENSRUFURSBUQUJMRVNQQUNFIE9OICou KiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcq QzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIHJldm9rZSBBTEwgUFJJ VklMRUdFUywgR1JBTlQgT1BUSU9OIEZST00gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBncmFu dCBUUklHR0VSIG9uICouKiB0byB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIGdyYW50IFNFTEVD VCBvbiBwcml2X2RiLnQxIHRvIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0OwpAQCAtMTU1LDcgKzE1 NSw3IEBAIGdyYW50IEFMTCAgb24gKi4qIHRvIHRlc3Rfbm9wcml2c0Bsb2NhbGgKIHJldm9rZSBV UERBVEUgIG9uICouKiBmcm9tIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3Q7CiBzaG93IGdyYW50cyBm b3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2Fs aG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQs IFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cg REFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBF WEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklF VywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIs IEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVO VElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENB MjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FE LCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9X IERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywg RVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJ RVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VS LCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0ZXN0X25vcHJp dnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5OUMw Q0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JwogcmV2b2tlIEFMTCBQUklWSUxFR0VTLCBHUkFOVCBP UFRJT04gRlJPTSB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIGdyYW50IFRSSUdHRVIsIFVQREFU RSBvbiAqLiogdG8gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBzaG93IGdyYW50cyBmb3IgdGVz dF95ZXNwcml2c0Bsb2NhbGhvc3Q7CkBAIC0xNjksNyArMTY5LDcgQEAgdGVzdF9ub3ByaXZzQGxv Y2FsaG9zdAogdXNlIHByaXZfZGI7CiBzaG93IGdyYW50czsKIEdyYW50cyBmb3IgdGVzdF9ub3By aXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwgQ1JFQVRFLCBEUk9Q LCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxU RVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sg VEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBD UkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JF QVRFIFVTRVIsIEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxo b3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgz RjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUsIENSRUFURSwgRFJP UCwgUkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFM VEVSLCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NL IFRBQkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwg Q1JFQVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENS RUFURSBVU0VSLCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0 ZXN0X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVE MDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2Jwogc2VsZWN0IGYxIGZyb20gdDEgb3Jk ZXIgYnkgZjE7CiBmMQogaW5zZXJ0IDMuNS4zLjItbm8KQEAgLTQwMSw3ICs0MDEsNyBAQCBncmFu dCBBTEwgIG9uICouKiB0byB0ZXN0X25vcHJpdnNAbG9jYWxoCiByZXZva2UgU0VMRUNUICBvbiAq LiogZnJvbSB0ZXN0X25vcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3Rfbm9w cml2c0Bsb2NhbGhvc3Q7CiBHcmFudHMgZm9yIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3QKLUdSQU5U IElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FELCBTSFVURE9XTiwg UFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9XIERBVEFCQVNFUywg U1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywgRVhFQ1VURSwgUkVQ TElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcsIFNIT1cgVklF VywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VSLCBFVkVOVCwgVFJJ R0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJRklFRCBCWSBQ QVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1NzYnCitHUkFO VCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04s IFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMs IFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJF UExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJ RVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQsIFRS SUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxo b3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgz RjM3NEE1NENBMjU3NicKIHJldm9rZSBBTEwgUFJJVklMRUdFUywgR1JBTlQgT1BUSU9OIEZST00g dGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBncmFudCBUUklHR0VSLCBTRUxFQ1Qgb24gKi4qIHRv IHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3RfeWVzcHJpdnNA bG9jYWxob3N0OwpAQCAtNDE1LDcgKzQxNSw3IEBAIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3QKIHVz ZSBwcml2X2RiOwogc2hvdyBncmFudHM7CiBHcmFudHMgZm9yIHRlc3Rfbm9wcml2c0Bsb2NhbGhv c3QKLUdSQU5UIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FELCBT SFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9XIERB VEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywgRVhF Q1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcs IFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VSLCBF VkVOVCwgVFJJR0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJ RklFRCBCWSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1 NzYnCitHUkFOVCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwg U0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBE QVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVY RUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVX LCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwg RVZFTlQsIFRSSUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVzdF9ub3ByaXZz J0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENG MTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIGNyZWF0ZSB0cmlnZ2VyIHRyZzVhXzEgYmVmb3JlIElO U0VSVCBvbiB0MSBmb3IgZWFjaCByb3cKIHNldCBAdGVzdF92YXIgPSBuZXcuZjE7CiBzZXQgQHRl c3RfdmFyID0gJ2JlZm9yZSB0cmlnIDMuNS4zLjgtMWEnOwoKPT09IG1vZGlmaWVkIGZpbGUgJ215 c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2ZhbGNvbl90cmlnXzAzZS5yZXN1bHQnCi0tLSBhL215 c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2ZhbGNvbl90cmlnXzAzZS5yZXN1bHQJMjAwOC0wNC0w MSAyMTowMTowMiArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9mYWxjb25f dHJpZ18wM2UucmVzdWx0CTIwMDgtMDgtMDcgMTM6Mzg6MjkgKzAwMDAKQEAgLTU2Miw3ICs1NjIs NyBAQCB0cmlnIDFfMS15ZXMKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9tIHRlc3RfeWVzcHJp dnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0Owog R3JhbnRzIGZvciB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQs IFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1Ms IEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBD UkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9O IFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFU RSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQgT04gKi4qIFRPICd0 ZXN0X3llc3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1 RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJU LCBVUERBVEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNT LCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwg Q1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElP TiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVB VEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIsIEVWRU5ULCBDUkVBVEUgVEFC TEVTUEFDRSBPTiAqLiogVE8gJ3Rlc3RfeWVzcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQg QlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2Jwog Y29ubmVjdChsb2NhbGhvc3QsdGVzdF95ZXNwcml2cyxQV0QsdGVzdCxNQVNURVJfTVlQT1JULE1B U1RFUl9NWVNPQ0spOwogc2VsZWN0IGN1cnJlbnRfdXNlcjsKIGN1cnJlbnRfdXNlcgpAQCAtNjA5 LDcgKzYwOSw3IEBAIHJvb3RAbG9jYWxob3N0CiBncmFudCBUUklHR0VSIG9uIHByaXZfZGIuKiB0 byB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIHNob3cgZ3JhbnRzIGZvciB0ZXN0X3llc3ByaXZz QGxvY2FsaG9zdDsKIEdyYW50cyBmb3IgdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3QKLUdSQU5UIFNF TEVDVCwgSU5TRVJULCBVUERBVEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRE T1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cgREFUQUJB U0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRF LCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklFVywgU0hP VyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIsIEVWRU5U IE9OICouKiBUTyAndGVzdF95ZXNwcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJRklFRCBCWSBQQVNT V09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1NzYnCitHUkFOVCBT RUxFQ1QsIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FELCBTSFVU RE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9XIERBVEFC QVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywgRVhFQ1VU RSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcsIFNI T1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VSLCBFVkVO VCwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0ZXN0X3llc3ByaXZzJ0AnbG9jYWxob3N0 JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3 NEE1NENBMjU3NicKIEdSQU5UIFRSSUdHRVIgT04gYHByaXZfZGJgLiogVE8gJ3Rlc3RfeWVzcHJp dnMnQCdsb2NhbGhvc3QnCiAKIHRyaWdnZXIgcHJpdmlsZWdlIG9uIGRiIGxldmVsIGZvciBjcmVh dGU6Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvaW5ub2Ri X3N0b3JlZHByb2MucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9pbm5v ZGJfc3RvcmVkcHJvYy5yZXN1bHQJMjAwOC0wNy0wOCAxODo0MDozMiArMDAwMAorKysgYi9teXNx bC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9pbm5vZGJfc3RvcmVkcHJvYy5yZXN1bHQJMjAwOC0wOC0w NyAxMzozODoyOSArMDAwMApAQCAtMjE5NDIsOSArMjE5NDIsOSBAQCBFTkQJbGF0aW4xCWxhdGlu MV9zd2VkaXNoX2NpCWxhdGluMV9zd2VkCiBzZXQgQEBzcWxfbW9kZT0nJzsKIENBTEwgc3A0KCk7 CiBMZXZlbAlDb2RlCU1lc3NhZ2UKLUVycm9yCTEzNjUJRGl2aXNpb24gYnkgMAorV2FybmluZwkx MzY1CURpdmlzaW9uIGJ5IDAKIFdhcm5pbmdzOgotRXJyb3IJMTM2NQlEaXZpc2lvbiBieSAwCitX YXJuaW5nCTEzNjUJRGl2aXNpb24gYnkgMAogRFJPUCBQUk9DRURVUkUgc3A0Owogc2V0IEBAc3Fs X21vZGU9Jyc7CiAKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEv ci9pbm5vZGJfdHJpZ18wMy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9y L2lubm9kYl90cmlnXzAzLnJlc3VsdAkyMDA4LTA2LTAzIDEwOjIxOjQ4ICswMDAwCisrKyBiL215 c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2lubm9kYl90cmlnXzAzLnJlc3VsdAkyMDA4LTA4LTA3 IDEzOjM4OjI5ICswMDAwCkBAIC03Nyw3ICs3Nyw3IEBAIGdyYW50IEFMTCAgb24gKi4qIHRvIHRl c3Rfbm9wcml2c0Bsb2NhbGgKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9tIHRlc3Rfbm9wcml2 c0Bsb2NhbGhvc3Q7CiBzaG93IGdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdDsKIEdy YW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQ REFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJ TEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVB VEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNM QVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBS T1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQgT04gKi4qIFRPICd0ZXN0 X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2 QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JworR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQ REFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJ TEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVB VEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNM QVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBS T1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQsIENSRUFURSBUQUJMRVNQ QUNFIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBB U1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIHJldm9r ZSBBTEwgUFJJVklMRUdFUywgR1JBTlQgT1BUSU9OIEZST00gdGVzdF95ZXNwcml2c0Bsb2NhbGhv c3Q7CiBncmFudCBUUklHR0VSIG9uICouKiB0byB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIGdy YW50IFNFTEVDVCBvbiBwcml2X2RiLnQxIHRvIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0OwpAQCAt MTU1LDcgKzE1NSw3IEBAIGdyYW50IEFMTCAgb24gKi4qIHRvIHRlc3Rfbm9wcml2c0Bsb2NhbGgK IHJldm9rZSBVUERBVEUgIG9uICouKiBmcm9tIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3Q7CiBzaG93 IGdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBmb3IgdGVzdF9ub3By aXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwgQ1JFQVRFLCBEUk9Q LCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxU RVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sg VEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBD UkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JF QVRFIFVTRVIsIEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxo b3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgz RjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUsIENSRUFURSwgRFJP UCwgUkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFM VEVSLCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NL IFRBQkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwg Q1JFQVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENS RUFURSBVU0VSLCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0 ZXN0X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVE MDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JwogcmV2b2tlIEFMTCBQUklWSUxFR0VT LCBHUkFOVCBPUFRJT04gRlJPTSB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIGdyYW50IFRSSUdH RVIsIFVQREFURSBvbiAqLiogdG8gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBzaG93IGdyYW50 cyBmb3IgdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CkBAIC0xNjksNyArMTY5LDcgQEAgdGVzdF9u b3ByaXZzQGxvY2FsaG9zdAogdXNlIHByaXZfZGI7CiBzaG93IGdyYW50czsKIEdyYW50cyBmb3Ig dGVzdF9ub3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwgQ1JF QVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJ TkRFWCwgQUxURVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJM RVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04g Q0xJRU5ULCBDUkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9V VElORSwgQ1JFQVRFIFVTRVIsIEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3ByaXZz J0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENG MTA0RUY5MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUsIENS RUFURSwgRFJPUCwgUkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywg SU5ERVgsIEFMVEVSLCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFC TEVTLCBMT0NLIFRBQkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9O IENMSUVOVCwgQ1JFQVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJP VVRJTkUsIENSRUFURSBVU0VSLCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04g Ki4qIFRPICd0ZXN0X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQg JypDNDk3MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2Jwogc2VsZWN0IGYxIGZy b20gdDEgb3JkZXIgYnkgZjE7CiBmMQogaW5zZXJ0IDMuNS4zLjItbm8KQEAgLTQwMSw3ICs0MDEs NyBAQCBncmFudCBBTEwgIG9uICouKiB0byB0ZXN0X25vcHJpdnNAbG9jYWxoCiByZXZva2UgU0VM RUNUICBvbiAqLiogZnJvbSB0ZXN0X25vcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9y IHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3Q7CiBHcmFudHMgZm9yIHRlc3Rfbm9wcml2c0Bsb2NhbGhv c3QKLUdSQU5UIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FELCBT SFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9XIERB VEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywgRVhF Q1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcs IFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VSLCBF VkVOVCwgVFJJR0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJ RklFRCBCWSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1 NzYnCitHUkFOVCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwg U0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBE QVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVY RUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVX LCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwg RVZFTlQsIFRSSUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVzdF9ub3ByaXZz J0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENG MTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIHJldm9rZSBBTEwgUFJJVklMRUdFUywgR1JBTlQgT1BU SU9OIEZST00gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBncmFudCBUUklHR0VSLCBTRUxFQ1Qg b24gKi4qIHRvIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3Rf eWVzcHJpdnNAbG9jYWxob3N0OwpAQCAtNDE1LDcgKzQxNSw3IEBAIHRlc3Rfbm9wcml2c0Bsb2Nh bGhvc3QKIHVzZSBwcml2X2RiOwogc2hvdyBncmFudHM7CiBHcmFudHMgZm9yIHRlc3Rfbm9wcml2 c0Bsb2NhbGhvc3QKLUdSQU5UIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwg UkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVS LCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRB QkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JF QVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFU RSBVU0VSLCBFVkVOVCwgVFJJR0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2FsaG9z dCcgSURFTlRJRklFRCBCWSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0Yz NzRBNTRDQTI1NzYnCitHUkFOVCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1As IFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRF UiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBU QUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENS RUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVB VEUgVVNFUiwgRVZFTlQsIFRSSUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVz dF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAx NkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIGNyZWF0ZSB0cmlnZ2VyIHRyZzVhXzEg YmVmb3JlIElOU0VSVCBvbiB0MSBmb3IgZWFjaCByb3cKIHNldCBAdGVzdF92YXIgPSBuZXcuZjE7 CiBzZXQgQHRlc3RfdmFyID0gJ2JlZm9yZSB0cmlnIDMuNS4zLjgtMWEnOwoKPT09IG1vZGlmaWVk IGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2lubm9kYl90cmlnXzAzZS5yZXN1bHQn Ci0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2lubm9kYl90cmlnXzAzZS5yZXN1bHQJ MjAwOC0wNC0zMCAxNjoxNjo0NSArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEv ci9pbm5vZGJfdHJpZ18wM2UucmVzdWx0CTIwMDgtMDgtMDcgMTM6Mzg6MjkgKzAwMDAKQEAgLTU2 Miw3ICs1NjIsNyBAQCB0cmlnIDFfMS15ZXMKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9tIHRl c3RfeWVzcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3RfeWVzcHJpdnNAbG9j YWxob3N0OwogR3JhbnRzIGZvciB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNU LCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04s IFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMs IFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJF UExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJ RVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQgT04g Ki4qIFRPICd0ZXN0X3llc3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JE ICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVD VCwgSU5TRVJULCBVUERBVEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRET1dO LCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cgREFUQUJBU0VT LCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRFLCBS RVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklFVywgU0hPVyBW SUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIsIEVWRU5ULCBD UkVBVEUgVEFCTEVTUEFDRSBPTiAqLiogVE8gJ3Rlc3RfeWVzcHJpdnMnQCdsb2NhbGhvc3QnIElE RU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0 Q0EyNTc2JwogY29ubmVjdChsb2NhbGhvc3QsdGVzdF95ZXNwcml2cyxQV0QsdGVzdCxNQVNURVJf TVlQT1JULE1BU1RFUl9NWVNPQ0spOwogc2VsZWN0IGN1cnJlbnRfdXNlcjsKIGN1cnJlbnRfdXNl cgpAQCAtNjA5LDcgKzYwOSw3IEBAIHJvb3RAbG9jYWxob3N0CiBncmFudCBUUklHR0VSIG9uIHBy aXZfZGIuKiB0byB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIHNob3cgZ3JhbnRzIGZvciB0ZXN0 X3llc3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBmb3IgdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3QK LUdSQU5UIFNFTEVDVCwgSU5TRVJULCBVUERBVEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxP QUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNI T1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVT LCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUg VklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVT RVIsIEVWRU5UIE9OICouKiBUTyAndGVzdF95ZXNwcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJRklF RCBCWSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1NzYn CitHUkFOVCBTRUxFQ1QsIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVM T0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBT SE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxF UywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRF IFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBV U0VSLCBFVkVOVCwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0ZXN0X3llc3ByaXZzJ0An bG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0 RUY5MTgzRjM3NEE1NENBMjU3NicKIEdSQU5UIFRSSUdHRVIgT04gYHByaXZfZGJgLiogVE8gJ3Rl c3RfeWVzcHJpdnMnQCdsb2NhbGhvc3QnCiAKIHRyaWdnZXIgcHJpdmlsZWdlIG9uIGRiIGxldmVs IGZvciBjcmVhdGU6Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18x L3IvaXNfY29sdW1uc19pc19mYWxjb24ucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Z1 bmNzXzEvci9pc19jb2x1bW5zX2lzX2ZhbGNvbi5yZXN1bHQJMjAwOC0wNC0yOCAyMDowOTo1MSAr MDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9pc19jb2x1bW5zX2lzX2ZhbGNv bi5yZXN1bHQJMjAwOC0wNy0yOSAxMDo0NTozOSArMDAwMApAQCAtMzYsMTEgKzM2LDYgQEAgTlVM TAlpbmZvcm1hdGlvbl9zY2hlbWEJRkFMQ09OX1NZU1RFTV9NRQogTlVMTAlpbmZvcm1hdGlvbl9z Y2hlbWEJRkFMQ09OX1NZU1RFTV9NRU1PUllfU1VNTUFSWQlTTUFMTF9IVU5LUwk1CTAJTk8JaW50 CU5VTEwJTlVMTAkxMAkwCU5VTEwJTlVMTAlpbnQoNCkJCQlzZWxlY3QJCURlZmF1bHQJRGVmYXVs dAogTlVMTAlpbmZvcm1hdGlvbl9zY2hlbWEJRkFMQ09OX1NZU1RFTV9NRU1PUllfU1VNTUFSWQlU T1RBTF9TUEFDRQkxCTAJTk8JYmlnaW50CU5VTEwJTlVMTAkxOQkwCU5VTEwJTlVMTAliaWdpbnQo NCkJCQlzZWxlY3QJCURlZmF1bHQJRGVmYXVsdAogTlVMTAlpbmZvcm1hdGlvbl9zY2hlbWEJRkFM Q09OX1NZU1RFTV9NRU1PUllfU1VNTUFSWQlVTklRVUVfU0laRVMJNgkwCU5PCWludAlOVUxMCU5V TEwJMTAJMAlOVUxMCU5VTEwJaW50KDQpCQkJc2VsZWN0CQlEZWZhdWx0CURlZmF1bHQKLU5VTEwJ aW5mb3JtYXRpb25fc2NoZW1hCUZBTENPTl9UQUJMRVMJSU5URVJOQUxfTkFNRQk1CQlOTwl2YXJj aGFyCTEyNwk1MDgJTlVMTAlOVUxMCXV0ZjgJdXRmOF9nZW5lcmFsX2NpCXZhcmNoYXIoMTI3KQkJ CXNlbGVjdAkJRGVmYXVsdAlEZWZhdWx0Ci1OVUxMCWluZm9ybWF0aW9uX3NjaGVtYQlGQUxDT05f VEFCTEVTCVBBUlRJVElPTgkzCQlOTwl2YXJjaGFyCTEyNwk1MDgJTlVMTAlOVUxMCXV0ZjgJdXRm OF9nZW5lcmFsX2NpCXZhcmNoYXIoMTI3KQkJCXNlbGVjdAkJRGVmYXVsdAlEZWZhdWx0Ci1OVUxM CWluZm9ybWF0aW9uX3NjaGVtYQlGQUxDT05fVEFCTEVTCVNDSEVNQV9OQU1FCTEJCU5PCXZhcmNo YXIJMTI3CTUwOAlOVUxMCU5VTEwJdXRmOAl1dGY4X2dlbmVyYWxfY2kJdmFyY2hhcigxMjcpCQkJ c2VsZWN0CQlEZWZhdWx0CURlZmF1bHQKLU5VTEwJaW5mb3JtYXRpb25fc2NoZW1hCUZBTENPTl9U QUJMRVMJVEFCTEVTUEFDRQk0CQlOTwl2YXJjaGFyCTEyNwk1MDgJTlVMTAlOVUxMCXV0ZjgJdXRm OF9nZW5lcmFsX2NpCXZhcmNoYXIoMTI3KQkJCXNlbGVjdAkJRGVmYXVsdAlEZWZhdWx0Ci1OVUxM CWluZm9ybWF0aW9uX3NjaGVtYQlGQUxDT05fVEFCTEVTCVRBQkxFX05BTUUJMgkJTk8JdmFyY2hh cgkxMjcJNTA4CU5VTEwJTlVMTAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQl2YXJjaGFyKDEyNykJCQlz ZWxlY3QJCURlZmF1bHQJRGVmYXVsdAogTlVMTAlpbmZvcm1hdGlvbl9zY2hlbWEJRkFMQ09OX1RB QkxFU1BBQ0VTCUNPTU1FTlQJMwkJTk8JdmFyY2hhcgkxMjcJNTA4CU5VTEwJTlVMTAl1dGY4CXV0 ZjhfZ2VuZXJhbF9jaQl2YXJjaGFyKDEyNykJCQlzZWxlY3QJCURlZmF1bHQJRGVmYXVsdAogTlVM TAlpbmZvcm1hdGlvbl9zY2hlbWEJRkFMQ09OX1RBQkxFU1BBQ0VTCVRBQkxFU1BBQ0VfTkFNRQkx CQlOTwl2YXJjaGFyCTEyNwk1MDgJTlVMTAlOVUxMCXV0ZjgJdXRmOF9nZW5lcmFsX2NpCXZhcmNo YXIoMTI3KQkJCXNlbGVjdAkJRGVmYXVsdAlEZWZhdWx0CiBOVUxMCWluZm9ybWF0aW9uX3NjaGVt YQlGQUxDT05fVEFCTEVTUEFDRVMJVFlQRQkyCQlOTwl2YXJjaGFyCTEyNwk1MDgJTlVMTAlOVUxM CXV0ZjgJdXRmOF9nZW5lcmFsX2NpCXZhcmNoYXIoMTI3KQkJCXNlbGVjdAkJRGVmYXVsdAlEZWZh dWx0CkBAIC0xNjEsMTEgKzE1Niw2IEBAIE5VTEwJaW5mb3JtYXRpb25fc2NoZW1hCUZBTENPTl9T WVNURU1fTUUKIE5VTEwJaW5mb3JtYXRpb25fc2NoZW1hCUZBTENPTl9TWVNURU1fTUVNT1JZX1NV TU1BUlkJQklHX0hVTktTCWludAlOVUxMCU5VTEwJTlVMTAlOVUxMCWludCg0KQogTlVMTAlpbmZv cm1hdGlvbl9zY2hlbWEJRkFMQ09OX1NZU1RFTV9NRU1PUllfU1VNTUFSWQlTTUFMTF9IVU5LUwlp bnQJTlVMTAlOVUxMCU5VTEwJTlVMTAlpbnQoNCkKIE5VTEwJaW5mb3JtYXRpb25fc2NoZW1hCUZB TENPTl9TWVNURU1fTUVNT1JZX1NVTU1BUlkJVU5JUVVFX1NJWkVTCWludAlOVUxMCU5VTEwJTlVM TAlOVUxMCWludCg0KQotNC4wMDAwCWluZm9ybWF0aW9uX3NjaGVtYQlGQUxDT05fVEFCTEVTCVND SEVNQV9OQU1FCXZhcmNoYXIJMTI3CTUwOAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQl2YXJjaGFyKDEy NykKLTQuMDAwMAlpbmZvcm1hdGlvbl9zY2hlbWEJRkFMQ09OX1RBQkxFUwlUQUJMRV9OQU1FCXZh cmNoYXIJMTI3CTUwOAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQl2YXJjaGFyKDEyNykKLTQuMDAwMAlp bmZvcm1hdGlvbl9zY2hlbWEJRkFMQ09OX1RBQkxFUwlQQVJUSVRJT04JdmFyY2hhcgkxMjcJNTA4 CXV0ZjgJdXRmOF9nZW5lcmFsX2NpCXZhcmNoYXIoMTI3KQotNC4wMDAwCWluZm9ybWF0aW9uX3Nj aGVtYQlGQUxDT05fVEFCTEVTCVRBQkxFU1BBQ0UJdmFyY2hhcgkxMjcJNTA4CXV0ZjgJdXRmOF9n ZW5lcmFsX2NpCXZhcmNoYXIoMTI3KQotNC4wMDAwCWluZm9ybWF0aW9uX3NjaGVtYQlGQUxDT05f VEFCTEVTCUlOVEVSTkFMX05BTUUJdmFyY2hhcgkxMjcJNTA4CXV0ZjgJdXRmOF9nZW5lcmFsX2Np CXZhcmNoYXIoMTI3KQogNC4wMDAwCWluZm9ybWF0aW9uX3NjaGVtYQlGQUxDT05fVEFCTEVTUEFD RVMJVEFCTEVTUEFDRV9OQU1FCXZhcmNoYXIJMTI3CTUwOAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQl2 YXJjaGFyKDEyNykKIDQuMDAwMAlpbmZvcm1hdGlvbl9zY2hlbWEJRkFMQ09OX1RBQkxFU1BBQ0VT CVRZUEUJdmFyY2hhcgkxMjcJNTA4CXV0ZjgJdXRmOF9nZW5lcmFsX2NpCXZhcmNoYXIoMTI3KQog NC4wMDAwCWluZm9ybWF0aW9uX3NjaGVtYQlGQUxDT05fVEFCTEVTUEFDRVMJQ09NTUVOVAl2YXJj aGFyCTEyNwk1MDgJdXRmOAl1dGY4X2dlbmVyYWxfY2kJdmFyY2hhcigxMjcpCgo9PT0gbW9kaWZp ZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvaXNfY29sdW1uc19teXNxbC5yZXN1 bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2lzX2NvbHVtbnNfbXlzcWwucmVz dWx0CTIwMDgtMDctMTAgMDk6NDk6NTMgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9mdW5j c18xL3IvaXNfY29sdW1uc19teXNxbC5yZXN1bHQJMjAwOC0wOC0wNyAxMzozODoyOSArMDAwMApA QCAtMjA5LDYgKzIwOSw3IEBAIE5VTEwJbXlzcWwJdXNlcglBbHRlcl9wcml2CTE3CU4JTk8JZW51 bQkKIE5VTEwJbXlzcWwJdXNlcglBbHRlcl9yb3V0aW5lX3ByaXYJMjgJTglOTwllbnVtCTEJNAlO VUxMCU5VTEwJdXRmOAl1dGY4X2dlbmVyYWxfY2kJZW51bSgnTicsJ1knKQkJCXNlbGVjdCxpbnNl cnQsdXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdAogTlVMTAlteXNxbAl1c2VyCUNy ZWF0ZV9wcml2CTgJTglOTwllbnVtCTEJNAlOVUxMCU5VTEwJdXRmOAl1dGY4X2dlbmVyYWxfY2kJ ZW51bSgnTicsJ1knKQkJCXNlbGVjdCxpbnNlcnQsdXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1bHQJ RGVmYXVsdAogTlVMTAlteXNxbAl1c2VyCUNyZWF0ZV9yb3V0aW5lX3ByaXYJMjcJTglOTwllbnVt CTEJNAlOVUxMCU5VTEwJdXRmOAl1dGY4X2dlbmVyYWxfY2kJZW51bSgnTicsJ1knKQkJCXNlbGVj dCxpbnNlcnQsdXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdAorTlVMTAlteXNxbAl1 c2VyCUNyZWF0ZV90YWJsZXNwYWNlX3ByaXYJMzIJTglOTwllbnVtCTEJNAlOVUxMCU5VTEwJdXRm OAl1dGY4X2dlbmVyYWxfY2kJZW51bSgnTicsJ1knKQkJCXNlbGVjdCxpbnNlcnQsdXBkYXRlLHJl ZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdAogTlVMTAlteXNxbAl1c2VyCUNyZWF0ZV90bXBfdGFi bGVfcHJpdgkyMAlOCU5PCWVudW0JMQk0CU5VTEwJTlVMTAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQll bnVtKCdOJywnWScpCQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVmYXVsdAlE ZWZhdWx0CiBOVUxMCW15c3FsCXVzZXIJQ3JlYXRlX3VzZXJfcHJpdgkyOQlOCU5PCWVudW0JMQk0 CU5VTEwJTlVMTAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQllbnVtKCdOJywnWScpCQkJc2VsZWN0LGlu c2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVmYXVsdAlEZWZhdWx0CiBOVUxMCW15c3FsCXVzZXIJ Q3JlYXRlX3ZpZXdfcHJpdgkyNQlOCU5PCWVudW0JMQk0CU5VTEwJTlVMTAl1dGY4CXV0ZjhfZ2Vu ZXJhbF9jaQllbnVtKCdOJywnWScpCQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJ RGVmYXVsdAlEZWZhdWx0CkBAIC0yMjIsMTAgKzIyMywxMCBAQCBOVUxMCW15c3FsCXVzZXIJSG9z dAkxCQlOTwljaGFyCTYwCTI0MAlOCiBOVUxMCW15c3FsCXVzZXIJSW5kZXhfcHJpdgkxNglOCU5P CWVudW0JMQk0CU5VTEwJTlVMTAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQllbnVtKCdOJywnWScpCQkJ c2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVmYXVsdAlEZWZhdWx0CiBOVUxMCW15 c3FsCXVzZXIJSW5zZXJ0X3ByaXYJNQlOCU5PCWVudW0JMQk0CU5VTEwJTlVMTAl1dGY4CXV0Zjhf Z2VuZXJhbF9jaQllbnVtKCdOJywnWScpCQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNl cwkJRGVmYXVsdAlEZWZhdWx0CiBOVUxMCW15c3FsCXVzZXIJTG9ja190YWJsZXNfcHJpdgkyMQlO CU5PCWVudW0JMQk0CU5VTEwJTlVMTAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQllbnVtKCdOJywnWScp CQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVmYXVsdAlEZWZhdWx0Ci1OVUxM CW15c3FsCXVzZXIJbWF4X2Nvbm5lY3Rpb25zCTM4CTAJTk8JaW50CU5VTEwJTlVMTAkxMAkwCU5V TEwJTlVMTAlpbnQoMTEpIHVuc2lnbmVkCQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNl cwkJRGVmYXVsdAlEZWZhdWx0Ci1OVUxMCW15c3FsCXVzZXIJbWF4X3F1ZXN0aW9ucwkzNgkwCU5P CWludAlOVUxMCU5VTEwJMTAJMAlOVUxMCU5VTEwJaW50KDExKSB1bnNpZ25lZAkJCXNlbGVjdCxp bnNlcnQsdXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdAotTlVMTAlteXNxbAl1c2Vy CW1heF91cGRhdGVzCTM3CTAJTk8JaW50CU5VTEwJTlVMTAkxMAkwCU5VTEwJTlVMTAlpbnQoMTEp IHVuc2lnbmVkCQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVmYXVsdAlEZWZh dWx0Ci1OVUxMCW15c3FsCXVzZXIJbWF4X3VzZXJfY29ubmVjdGlvbnMJMzkJMAlOTwlpbnQJTlVM TAlOVUxMCTEwCTAJTlVMTAlOVUxMCWludCgxMSkgdW5zaWduZWQJCQlzZWxlY3QsaW5zZXJ0LHVw ZGF0ZSxyZWZlcmVuY2VzCQlEZWZhdWx0CURlZmF1bHQKK05VTEwJbXlzcWwJdXNlcgltYXhfY29u bmVjdGlvbnMJMzkJMAlOTwlpbnQJTlVMTAlOVUxMCTEwCTAJTlVMTAlOVUxMCWludCgxMSkgdW5z aWduZWQJCQlzZWxlY3QsaW5zZXJ0LHVwZGF0ZSxyZWZlcmVuY2VzCQlEZWZhdWx0CURlZmF1bHQK K05VTEwJbXlzcWwJdXNlcgltYXhfcXVlc3Rpb25zCTM3CTAJTk8JaW50CU5VTEwJTlVMTAkxMAkw CU5VTEwJTlVMTAlpbnQoMTEpIHVuc2lnbmVkCQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJl bmNlcwkJRGVmYXVsdAlEZWZhdWx0CitOVUxMCW15c3FsCXVzZXIJbWF4X3VwZGF0ZXMJMzgJMAlO TwlpbnQJTlVMTAlOVUxMCTEwCTAJTlVMTAlOVUxMCWludCgxMSkgdW5zaWduZWQJCQlzZWxlY3Qs aW5zZXJ0LHVwZGF0ZSxyZWZlcmVuY2VzCQlEZWZhdWx0CURlZmF1bHQKK05VTEwJbXlzcWwJdXNl cgltYXhfdXNlcl9jb25uZWN0aW9ucwk0MAkwCU5PCWludAlOVUxMCU5VTEwJMTAJMAlOVUxMCU5V TEwJaW50KDExKSB1bnNpZ25lZAkJCXNlbGVjdCxpbnNlcnQsdXBkYXRlLHJlZmVyZW5jZXMJCURl ZmF1bHQJRGVmYXVsdAogTlVMTAlteXNxbAl1c2VyCVBhc3N3b3JkCTMJCU5PCWNoYXIJNDEJNDEJ TlVMTAlOVUxMCWxhdGluMQlsYXRpbjFfYmluCWNoYXIoNDEpCQkJc2VsZWN0LGluc2VydCx1cGRh dGUscmVmZXJlbmNlcwkJRGVmYXVsdAlEZWZhdWx0CiBOVUxMCW15c3FsCXVzZXIJUHJvY2Vzc19w cml2CTEyCU4JTk8JZW51bQkxCTQJTlVMTAlOVUxMCXV0ZjgJdXRmOF9nZW5lcmFsX2NpCWVudW0o J04nLCdZJykJCQlzZWxlY3QsaW5zZXJ0LHVwZGF0ZSxyZWZlcmVuY2VzCQlEZWZhdWx0CURlZmF1 bHQKIE5VTEwJbXlzcWwJdXNlcglSZWZlcmVuY2VzX3ByaXYJMTUJTglOTwllbnVtCTEJNAlOVUxM CU5VTEwJdXRmOAl1dGY4X2dlbmVyYWxfY2kJZW51bSgnTicsJ1knKQkJCXNlbGVjdCxpbnNlcnQs dXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdApAQCAtMjM2LDE0ICsyMzcsMTQgQEAg TlVMTAlteXNxbAl1c2VyCVNlbGVjdF9wcml2CTQJTglOTwllbnVtCQogTlVMTAlteXNxbAl1c2Vy CVNob3dfZGJfcHJpdgkxOAlOCU5PCWVudW0JMQk0CU5VTEwJTlVMTAl1dGY4CXV0ZjhfZ2VuZXJh bF9jaQllbnVtKCdOJywnWScpCQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVm YXVsdAlEZWZhdWx0CiBOVUxMCW15c3FsCXVzZXIJU2hvd192aWV3X3ByaXYJMjYJTglOTwllbnVt CTEJNAlOVUxMCU5VTEwJdXRmOAl1dGY4X2dlbmVyYWxfY2kJZW51bSgnTicsJ1knKQkJCXNlbGVj dCxpbnNlcnQsdXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdAogTlVMTAlteXNxbAl1 c2VyCVNodXRkb3duX3ByaXYJMTEJTglOTwllbnVtCTEJNAlOVUxMCU5VTEwJdXRmOAl1dGY4X2dl bmVyYWxfY2kJZW51bSgnTicsJ1knKQkJCXNlbGVjdCxpbnNlcnQsdXBkYXRlLHJlZmVyZW5jZXMJ CURlZmF1bHQJRGVmYXVsdAotTlVMTAlteXNxbAl1c2VyCXNzbF9jaXBoZXIJMzMJTlVMTAlOTwli bG9iCTY1NTM1CTY1NTM1CU5VTEwJTlVMTAlOVUxMCU5VTEwJYmxvYgkJCXNlbGVjdCxpbnNlcnQs dXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdAotTlVMTAlteXNxbAl1c2VyCXNzbF90 eXBlCTMyCQlOTwllbnVtCTkJMzYJTlVMTAlOVUxMCXV0ZjgJdXRmOF9nZW5lcmFsX2NpCWVudW0o JycsJ0FOWScsJ1g1MDknLCdTUEVDSUZJRUQnKQkJCXNlbGVjdCxpbnNlcnQsdXBkYXRlLHJlZmVy ZW5jZXMJCURlZmF1bHQJRGVmYXVsdAorTlVMTAlteXNxbAl1c2VyCXNzbF9jaXBoZXIJMzQJTlVM TAlOTwlibG9iCTY1NTM1CTY1NTM1CU5VTEwJTlVMTAlOVUxMCU5VTEwJYmxvYgkJCXNlbGVjdCxp bnNlcnQsdXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdAorTlVMTAlteXNxbAl1c2Vy CXNzbF90eXBlCTMzCQlOTwllbnVtCTkJMzYJTlVMTAlOVUxMCXV0ZjgJdXRmOF9nZW5lcmFsX2Np CWVudW0oJycsJ0FOWScsJ1g1MDknLCdTUEVDSUZJRUQnKQkJCXNlbGVjdCxpbnNlcnQsdXBkYXRl LHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdAogTlVMTAlteXNxbAl1c2VyCVN1cGVyX3ByaXYJ MTkJTglOTwllbnVtCTEJNAlOVUxMCU5VTEwJdXRmOAl1dGY4X2dlbmVyYWxfY2kJZW51bSgnTics J1knKQkJCXNlbGVjdCxpbnNlcnQsdXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdAog TlVMTAlteXNxbAl1c2VyCVRyaWdnZXJfcHJpdgkzMQlOCU5PCWVudW0JMQk0CU5VTEwJTlVMTAl1 dGY4CXV0ZjhfZ2VuZXJhbF9jaQllbnVtKCdOJywnWScpCQkJc2VsZWN0LGluc2VydCx1cGRhdGUs cmVmZXJlbmNlcwkJRGVmYXVsdAlEZWZhdWx0CiBOVUxMCW15c3FsCXVzZXIJVXBkYXRlX3ByaXYJ NglOCU5PCWVudW0JMQk0CU5VTEwJTlVMTAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQllbnVtKCdOJywn WScpCQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVmYXVsdAlEZWZhdWx0CiBO VUxMCW15c3FsCXVzZXIJVXNlcgkyCQlOTwljaGFyCTE2CTY0CU5VTEwJTlVMTAl1dGY4CXV0Zjhf YmluCWNoYXIoMTYpCVBSSQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVmYXVs dAlEZWZhdWx0Ci1OVUxMCW15c3FsCXVzZXIJeDUwOV9pc3N1ZXIJMzQJTlVMTAlOTwlibG9iCTY1 NTM1CTY1NTM1CU5VTEwJTlVMTAlOVUxMCU5VTEwJYmxvYgkJCXNlbGVjdCxpbnNlcnQsdXBkYXRl LHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdAotTlVMTAlteXNxbAl1c2VyCXg1MDlfc3ViamVj dAkzNQlOVUxMCU5PCWJsb2IJNjU1MzUJNjU1MzUJTlVMTAlOVUxMCU5VTEwJTlVMTAlibG9iCQkJ c2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVmYXVsdAlEZWZhdWx0CitOVUxMCW15 c3FsCXVzZXIJeDUwOV9pc3N1ZXIJMzUJTlVMTAlOTwlibG9iCTY1NTM1CTY1NTM1CU5VTEwJTlVM TAlOVUxMCU5VTEwJYmxvYgkJCXNlbGVjdCxpbnNlcnQsdXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1 bHQJRGVmYXVsdAorTlVMTAlteXNxbAl1c2VyCXg1MDlfc3ViamVjdAkzNglOVUxMCU5PCWJsb2IJ NjU1MzUJNjU1MzUJTlVMTAlOVUxMCU5VTEwJTlVMTAlibG9iCQkJc2VsZWN0LGluc2VydCx1cGRh dGUscmVmZXJlbmNlcwkJRGVmYXVsdAlEZWZhdWx0CiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBTaG93 IHRoZSBxdW90aWVudCBvZiBDSEFSQUNURVJfT0NURVRfTEVOR1RIIGFuZCBDSEFSQUNURVJfTUFY SU1VTV9MRU5HVEgKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCkBAIC01NDgsNiArNTQ5LDcgQEAgTlVMTAlt eXNxbAl0aW1lX3pvbmVfdHJhbnNpdGlvbl90eXBlCUlzXwogNC4wMDAwCW15c3FsCXVzZXIJQ3Jl YXRlX3VzZXJfcHJpdgllbnVtCTEJNAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQllbnVtKCdOJywnWScp CiA0LjAwMDAJbXlzcWwJdXNlcglFdmVudF9wcml2CWVudW0JMQk0CXV0ZjgJdXRmOF9nZW5lcmFs X2NpCWVudW0oJ04nLCdZJykKIDQuMDAwMAlteXNxbAl1c2VyCVRyaWdnZXJfcHJpdgllbnVtCTEJ NAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQllbnVtKCdOJywnWScpCis0LjAwMDAJbXlzcWwJdXNlcglD cmVhdGVfdGFibGVzcGFjZV9wcml2CWVudW0JMQk0CXV0ZjgJdXRmOF9nZW5lcmFsX2NpCWVudW0o J04nLCdZJykKIDQuMDAwMAlteXNxbAl1c2VyCXNzbF90eXBlCWVudW0JOQkzNgl1dGY4CXV0Zjhf Z2VuZXJhbF9jaQllbnVtKCcnLCdBTlknLCdYNTA5JywnU1BFQ0lGSUVEJykKIDEuMDAwMAlteXNx bAl1c2VyCXNzbF9jaXBoZXIJYmxvYgk2NTUzNQk2NTUzNQlOVUxMCU5VTEwJYmxvYgogMS4wMDAw CW15c3FsCXVzZXIJeDUwOV9pc3N1ZXIJYmxvYgk2NTUzNQk2NTUzNQlOVUxMCU5VTEwJYmxvYgoK PT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2lzX3RhYmxlc19p c19mYWxjb24ucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9pc190YWJs ZXNfaXNfZmFsY29uLnJlc3VsdAkyMDA4LTA2LTE5IDE4OjU2OjQ4ICswMDAwCisrKyBiL215c3Fs LXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2lzX3RhYmxlc19pc19mYWxjb24ucmVzdWx0CTIwMDgtMDct MjkgMTA6NDU6MzkgKzAwMDAKQEAgLTE1MywyOSArMTUzLDYgQEAgdXNlcl9jb21tZW50CQogU2Vw YXJhdG9yCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiBUQUJMRV9DQVRBTE9HCU5VTEwKIFRBQkxFX1NDSEVNQQlpbmZvcm1hdGlvbl9zY2hlbWEK LVRBQkxFX05BTUUJRkFMQ09OX1RBQkxFUwotVEFCTEVfVFlQRQlTWVNURU0gVklFVwotRU5HSU5F CU1FTU9SWQotVkVSU0lPTgkxMAotUk9XX0ZPUk1BVAlGaXhlZAotVEFCTEVfUk9XUwkjVEJMUiMK LUFWR19ST1dfTEVOR1RICSNBUkwjCi1EQVRBX0xFTkdUSAkjREwjCi1NQVhfREFUQV9MRU5HVEgJ I01ETCMKLUlOREVYX0xFTkdUSAkjSUwjCi1EQVRBX0ZSRUUJI0RGIwotQVVUT19JTkNSRU1FTlQJ TlVMTAotQ1JFQVRFX1RJTUUJI0NSVCMKLVVQREFURV9USU1FCSNVVCMKLUNIRUNLX1RJTUUJI0NU IwotVEFCTEVfQ09MTEFUSU9OCXV0ZjhfZ2VuZXJhbF9jaQotQ0hFQ0tTVU0JTlVMTAotQ1JFQVRF X09QVElPTlMJI0NPIwotVEFCTEVfQ09NTUVOVAkjVEMjCi11c2VyX2NvbW1lbnQJCi1TZXBhcmF0 b3IJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LVRBQkxFX0NBVEFMT0cJTlVMTAotVEFCTEVfU0NIRU1BCWluZm9ybWF0aW9uX3NjaGVtYQogVEFC TEVfTkFNRQlGQUxDT05fVEFCTEVTUEFDRVMKIFRBQkxFX1RZUEUJU1lTVEVNIFZJRVcKIEVOR0lO RQlNRU1PUlkKQEAgLTQ2OSwyOSArNDQ2LDYgQEAgdXNlcl9jb21tZW50CQogU2VwYXJhdG9yCS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBUQUJM RV9DQVRBTE9HCU5VTEwKIFRBQkxFX1NDSEVNQQlpbmZvcm1hdGlvbl9zY2hlbWEKLVRBQkxFX05B TUUJRkFMQ09OX1RBQkxFUwotVEFCTEVfVFlQRQlTWVNURU0gVklFVwotRU5HSU5FCU1FTU9SWQot VkVSU0lPTgkxMAotUk9XX0ZPUk1BVAlGaXhlZAotVEFCTEVfUk9XUwkjVEJMUiMKLUFWR19ST1df TEVOR1RICSNBUkwjCi1EQVRBX0xFTkdUSAkjREwjCi1NQVhfREFUQV9MRU5HVEgJI01ETCMKLUlO REVYX0xFTkdUSAkjSUwjCi1EQVRBX0ZSRUUJI0RGIwotQVVUT19JTkNSRU1FTlQJTlVMTAotQ1JF QVRFX1RJTUUJI0NSVCMKLVVQREFURV9USU1FCSNVVCMKLUNIRUNLX1RJTUUJI0NUIwotVEFCTEVf Q09MTEFUSU9OCXV0ZjhfZ2VuZXJhbF9jaQotQ0hFQ0tTVU0JTlVMTAotQ1JFQVRFX09QVElPTlMJ I0NPIwotVEFCTEVfQ09NTUVOVAkjVEMjCi11c2VyX2NvbW1lbnQJCi1TZXBhcmF0b3IJLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVRBQkxFX0NB VEFMT0cJTlVMTAotVEFCTEVfU0NIRU1BCWluZm9ybWF0aW9uX3NjaGVtYQogVEFCTEVfTkFNRQlG QUxDT05fVEFCTEVTUEFDRVMKIFRBQkxFX1RZUEUJU1lTVEVNIFZJRVcKIEVOR0lORQlNRU1PUlkK Cj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9pc191c2VyX3By aXZpbGVnZXMucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9pc191c2Vy X3ByaXZpbGVnZXMucmVzdWx0CTIwMDgtMDMtMDcgMTk6MTg6MTQgKzAwMDAKKysrIGIvbXlzcWwt dGVzdC9zdWl0ZS9mdW5jc18xL3IvaXNfdXNlcl9wcml2aWxlZ2VzLnJlc3VsdAkyMDA4LTA4LTA3 IDEzOjM4OjI5ICswMDAwCkBAIC03NiwxMCArNzYsMTAgQEAgR1JBTlRFRQlUQUJMRV9DQVRBTE9H CVBSSVZJTEVHRV9UWVBFCUlTXwogJ3Rlc3R1c2VyMydAJ2xvY2FsaG9zdCcJTlVMTAlVU0FHRQlO TwogU0VMRUNUICogRlJPTSBteXNxbC51c2VyCiBXSEVSRSB1c2VyIExJS0UgJ3Rlc3R1c2VyJScg T1JERVIgQlkgaG9zdCwgdXNlcjsKLUhvc3QJVXNlcglQYXNzd29yZAlTZWxlY3RfcHJpdglJbnNl cnRfcHJpdglVcGRhdGVfcHJpdglEZWxldGVfcHJpdglDcmVhdGVfcHJpdglEcm9wX3ByaXYJUmVs b2FkX3ByaXYJU2h1dGRvd25fcHJpdglQcm9jZXNzX3ByaXYJRmlsZV9wcml2CUdyYW50X3ByaXYJ UmVmZXJlbmNlc19wcml2CUluZGV4X3ByaXYJQWx0ZXJfcHJpdglTaG93X2RiX3ByaXYJU3VwZXJf cHJpdglDcmVhdGVfdG1wX3RhYmxlX3ByaXYJTG9ja190YWJsZXNfcHJpdglFeGVjdXRlX3ByaXYJ UmVwbF9zbGF2ZV9wcml2CVJlcGxfY2xpZW50X3ByaXYJQ3JlYXRlX3ZpZXdfcHJpdglTaG93X3Zp ZXdfcHJpdglDcmVhdGVfcm91dGluZV9wcml2CUFsdGVyX3JvdXRpbmVfcHJpdglDcmVhdGVfdXNl cl9wcml2CUV2ZW50X3ByaXYJVHJpZ2dlcl9wcml2CXNzbF90eXBlCXNzbF9jaXBoZXIJeDUwOV9p c3N1ZXIJeDUwOV9zdWJqZWN0CW1heF9xdWVzdGlvbnMJbWF4X3VwZGF0ZXMJbWF4X2Nvbm5lY3Rp b25zCW1heF91c2VyX2Nvbm5lY3Rpb25zCi1sb2NhbGhvc3QJdGVzdHVzZXIxCQlOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkw Ci1sb2NhbGhvc3QJdGVzdHVzZXIyCQlOCVkJWQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCi1sb2NhbGhvc3QJdGVzdHVzZXIzCQlO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJ CQkwCTAJMAkwCitIb3N0CVVzZXIJUGFzc3dvcmQJU2VsZWN0X3ByaXYJSW5zZXJ0X3ByaXYJVXBk YXRlX3ByaXYJRGVsZXRlX3ByaXYJQ3JlYXRlX3ByaXYJRHJvcF9wcml2CVJlbG9hZF9wcml2CVNo dXRkb3duX3ByaXYJUHJvY2Vzc19wcml2CUZpbGVfcHJpdglHcmFudF9wcml2CVJlZmVyZW5jZXNf cHJpdglJbmRleF9wcml2CUFsdGVyX3ByaXYJU2hvd19kYl9wcml2CVN1cGVyX3ByaXYJQ3JlYXRl X3RtcF90YWJsZV9wcml2CUxvY2tfdGFibGVzX3ByaXYJRXhlY3V0ZV9wcml2CVJlcGxfc2xhdmVf cHJpdglSZXBsX2NsaWVudF9wcml2CUNyZWF0ZV92aWV3X3ByaXYJU2hvd192aWV3X3ByaXYJQ3Jl YXRlX3JvdXRpbmVfcHJpdglBbHRlcl9yb3V0aW5lX3ByaXYJQ3JlYXRlX3VzZXJfcHJpdglFdmVu dF9wcml2CVRyaWdnZXJfcHJpdglDcmVhdGVfdGFibGVzcGFjZV9wcml2CXNzbF90eXBlCXNzbF9j aXBoZXIJeDUwOV9pc3N1ZXIJeDUwOV9zdWJqZWN0CW1heF9xdWVzdGlvbnMJbWF4X3VwZGF0ZXMJ bWF4X2Nvbm5lY3Rpb25zCW1heF91c2VyX2Nvbm5lY3Rpb25zCitsb2NhbGhvc3QJdGVzdHVzZXIx CQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JCQkJCTAJMAkwCTAKK2xvY2FsaG9zdAl0ZXN0dXNlcjIJCU4JWQlZCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAorbG9jYWxo b3N0CXRlc3R1c2VyMwkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCiAjCiAjIEFkZCBHUkFOVCBPUFRJT04gZGJfZGF0 YWRpY3QuKiB0byB0ZXN0dXNlcjE7CiBHUkFOVCBVUERBVEUgT04gZGJfZGF0YWRpY3QuKiBUTyAn dGVzdHVzZXIxJ0AnbG9jYWxob3N0JyBXSVRIIEdSQU5UIE9QVElPTjsKQEAgLTkzLDEwICs5Mywx MCBAQCBHUkFOVEVFCVRBQkxFX0NBVEFMT0cJUFJJVklMRUdFX1RZUEUJSVNfCiAndGVzdHVzZXIz J0AnbG9jYWxob3N0JwlOVUxMCVVTQUdFCU5PCiBTRUxFQ1QgKiBGUk9NIG15c3FsLnVzZXIKIFdI RVJFIHVzZXIgTElLRSAndGVzdHVzZXIlJyBPUkRFUiBCWSBob3N0LCB1c2VyOwotSG9zdAlVc2Vy CVBhc3N3b3JkCVNlbGVjdF9wcml2CUluc2VydF9wcml2CVVwZGF0ZV9wcml2CURlbGV0ZV9wcml2 CUNyZWF0ZV9wcml2CURyb3BfcHJpdglSZWxvYWRfcHJpdglTaHV0ZG93bl9wcml2CVByb2Nlc3Nf cHJpdglGaWxlX3ByaXYJR3JhbnRfcHJpdglSZWZlcmVuY2VzX3ByaXYJSW5kZXhfcHJpdglBbHRl cl9wcml2CVNob3dfZGJfcHJpdglTdXBlcl9wcml2CUNyZWF0ZV90bXBfdGFibGVfcHJpdglMb2Nr X3RhYmxlc19wcml2CUV4ZWN1dGVfcHJpdglSZXBsX3NsYXZlX3ByaXYJUmVwbF9jbGllbnRfcHJp dglDcmVhdGVfdmlld19wcml2CVNob3dfdmlld19wcml2CUNyZWF0ZV9yb3V0aW5lX3ByaXYJQWx0 ZXJfcm91dGluZV9wcml2CUNyZWF0ZV91c2VyX3ByaXYJRXZlbnRfcHJpdglUcmlnZ2VyX3ByaXYJ c3NsX3R5cGUJc3NsX2NpcGhlcgl4NTA5X2lzc3Vlcgl4NTA5X3N1YmplY3QJbWF4X3F1ZXN0aW9u cwltYXhfdXBkYXRlcwltYXhfY29ubmVjdGlvbnMJbWF4X3VzZXJfY29ubmVjdGlvbnMKLWxvY2Fs aG9zdAl0ZXN0dXNlcjEJCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKLWxvY2FsaG9zdAl0ZXN0dXNlcjIJCU4JWQlZCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkw CTAKLWxvY2FsaG9zdAl0ZXN0dXNlcjMJCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKK0hvc3QJVXNlcglQYXNzd29yZAlT ZWxlY3RfcHJpdglJbnNlcnRfcHJpdglVcGRhdGVfcHJpdglEZWxldGVfcHJpdglDcmVhdGVfcHJp dglEcm9wX3ByaXYJUmVsb2FkX3ByaXYJU2h1dGRvd25fcHJpdglQcm9jZXNzX3ByaXYJRmlsZV9w cml2CUdyYW50X3ByaXYJUmVmZXJlbmNlc19wcml2CUluZGV4X3ByaXYJQWx0ZXJfcHJpdglTaG93 X2RiX3ByaXYJU3VwZXJfcHJpdglDcmVhdGVfdG1wX3RhYmxlX3ByaXYJTG9ja190YWJsZXNfcHJp dglFeGVjdXRlX3ByaXYJUmVwbF9zbGF2ZV9wcml2CVJlcGxfY2xpZW50X3ByaXYJQ3JlYXRlX3Zp ZXdfcHJpdglTaG93X3ZpZXdfcHJpdglDcmVhdGVfcm91dGluZV9wcml2CUFsdGVyX3JvdXRpbmVf cHJpdglDcmVhdGVfdXNlcl9wcml2CUV2ZW50X3ByaXYJVHJpZ2dlcl9wcml2CUNyZWF0ZV90YWJs ZXNwYWNlX3ByaXYJc3NsX3R5cGUJc3NsX2NpcGhlcgl4NTA5X2lzc3Vlcgl4NTA5X3N1YmplY3QJ bWF4X3F1ZXN0aW9ucwltYXhfdXBkYXRlcwltYXhfY29ubmVjdGlvbnMJbWF4X3VzZXJfY29ubmVj dGlvbnMKK2xvY2FsaG9zdAl0ZXN0dXNlcjEJCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAorbG9jYWxob3N0CXRlc3R1 c2VyMgkJTglZCVkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCQkJCQkwCTAJMAkwCitsb2NhbGhvc3QJdGVzdHVzZXIzCQlOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKICMg RXN0YWJsaXNoIGNvbm5lY3Rpb24gdGVzdHVzZXIxICh1c2VyPXRlc3R1c2VyMSkKIFNFTEVDVCAq IEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnVzZXJfcHJpdmlsZWdlcwogV0hFUkUgZ3JhbnRlZSBM SUtFICcnJ3Rlc3R1c2VyJScnJwpAQCAtMTA1LDEwICsxMDUsMTAgQEAgR1JBTlRFRQlUQUJMRV9D QVRBTE9HCVBSSVZJTEVHRV9UWVBFCUlTXwogJ3Rlc3R1c2VyMSdAJ2xvY2FsaG9zdCcJTlVMTAlV U0FHRQlOTwogU0VMRUNUICogRlJPTSBteXNxbC51c2VyCiBXSEVSRSB1c2VyIExJS0UgJ3Rlc3R1 c2VyJScgT1JERVIgQlkgaG9zdCwgdXNlcjsKLUhvc3QJVXNlcglQYXNzd29yZAlTZWxlY3RfcHJp dglJbnNlcnRfcHJpdglVcGRhdGVfcHJpdglEZWxldGVfcHJpdglDcmVhdGVfcHJpdglEcm9wX3By aXYJUmVsb2FkX3ByaXYJU2h1dGRvd25fcHJpdglQcm9jZXNzX3ByaXYJRmlsZV9wcml2CUdyYW50 X3ByaXYJUmVmZXJlbmNlc19wcml2CUluZGV4X3ByaXYJQWx0ZXJfcHJpdglTaG93X2RiX3ByaXYJ U3VwZXJfcHJpdglDcmVhdGVfdG1wX3RhYmxlX3ByaXYJTG9ja190YWJsZXNfcHJpdglFeGVjdXRl X3ByaXYJUmVwbF9zbGF2ZV9wcml2CVJlcGxfY2xpZW50X3ByaXYJQ3JlYXRlX3ZpZXdfcHJpdglT aG93X3ZpZXdfcHJpdglDcmVhdGVfcm91dGluZV9wcml2CUFsdGVyX3JvdXRpbmVfcHJpdglDcmVh dGVfdXNlcl9wcml2CUV2ZW50X3ByaXYJVHJpZ2dlcl9wcml2CXNzbF90eXBlCXNzbF9jaXBoZXIJ eDUwOV9pc3N1ZXIJeDUwOV9zdWJqZWN0CW1heF9xdWVzdGlvbnMJbWF4X3VwZGF0ZXMJbWF4X2Nv bm5lY3Rpb25zCW1heF91c2VyX2Nvbm5lY3Rpb25zCi1sb2NhbGhvc3QJdGVzdHVzZXIxCQlOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkw CTAJMAkwCi1sb2NhbGhvc3QJdGVzdHVzZXIyCQlOCVkJWQlOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCi1sb2NhbGhvc3QJdGVzdHVz ZXIzCQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCQkJCQkwCTAJMAkwCitIb3N0CVVzZXIJUGFzc3dvcmQJU2VsZWN0X3ByaXYJSW5zZXJ0X3By aXYJVXBkYXRlX3ByaXYJRGVsZXRlX3ByaXYJQ3JlYXRlX3ByaXYJRHJvcF9wcml2CVJlbG9hZF9w cml2CVNodXRkb3duX3ByaXYJUHJvY2Vzc19wcml2CUZpbGVfcHJpdglHcmFudF9wcml2CVJlZmVy ZW5jZXNfcHJpdglJbmRleF9wcml2CUFsdGVyX3ByaXYJU2hvd19kYl9wcml2CVN1cGVyX3ByaXYJ Q3JlYXRlX3RtcF90YWJsZV9wcml2CUxvY2tfdGFibGVzX3ByaXYJRXhlY3V0ZV9wcml2CVJlcGxf c2xhdmVfcHJpdglSZXBsX2NsaWVudF9wcml2CUNyZWF0ZV92aWV3X3ByaXYJU2hvd192aWV3X3By aXYJQ3JlYXRlX3JvdXRpbmVfcHJpdglBbHRlcl9yb3V0aW5lX3ByaXYJQ3JlYXRlX3VzZXJfcHJp dglFdmVudF9wcml2CVRyaWdnZXJfcHJpdglDcmVhdGVfdGFibGVzcGFjZV9wcml2CXNzbF90eXBl CXNzbF9jaXBoZXIJeDUwOV9pc3N1ZXIJeDUwOV9zdWJqZWN0CW1heF9xdWVzdGlvbnMJbWF4X3Vw ZGF0ZXMJbWF4X2Nvbm5lY3Rpb25zCW1heF91c2VyX2Nvbm5lY3Rpb25zCitsb2NhbGhvc3QJdGVz dHVzZXIxCQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JCQkJCTAJMAkwCTAKK2xvY2FsaG9zdAl0ZXN0dXNlcjIJCU4JWQlZCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAor bG9jYWxob3N0CXRlc3R1c2VyMwkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCiBTSE9XIEdSQU5UUzsKIEdyYW50cyBm b3IgdGVzdHVzZXIxQGxvY2FsaG9zdAogR1JBTlQgVVNBR0UgT04gKi4qIFRPICd0ZXN0dXNlcjEn QCdsb2NhbGhvc3QnCkBAIC0xMzAsMTAgKzEzMCwxMCBAQCBHUkFOVEVFCVRBQkxFX0NBVEFMT0cJ UFJJVklMRUdFX1RZUEUJSVNfCiAndGVzdHVzZXIzJ0AnbG9jYWxob3N0JwlOVUxMCVVTQUdFCU5P CiBTRUxFQ1QgKiBGUk9NIG15c3FsLnVzZXIKIFdIRVJFIHVzZXIgTElLRSAndGVzdHVzZXIlJyBP UkRFUiBCWSBob3N0LCB1c2VyOwotSG9zdAlVc2VyCVBhc3N3b3JkCVNlbGVjdF9wcml2CUluc2Vy dF9wcml2CVVwZGF0ZV9wcml2CURlbGV0ZV9wcml2CUNyZWF0ZV9wcml2CURyb3BfcHJpdglSZWxv YWRfcHJpdglTaHV0ZG93bl9wcml2CVByb2Nlc3NfcHJpdglGaWxlX3ByaXYJR3JhbnRfcHJpdglS ZWZlcmVuY2VzX3ByaXYJSW5kZXhfcHJpdglBbHRlcl9wcml2CVNob3dfZGJfcHJpdglTdXBlcl9w cml2CUNyZWF0ZV90bXBfdGFibGVfcHJpdglMb2NrX3RhYmxlc19wcml2CUV4ZWN1dGVfcHJpdglS ZXBsX3NsYXZlX3ByaXYJUmVwbF9jbGllbnRfcHJpdglDcmVhdGVfdmlld19wcml2CVNob3dfdmll d19wcml2CUNyZWF0ZV9yb3V0aW5lX3ByaXYJQWx0ZXJfcm91dGluZV9wcml2CUNyZWF0ZV91c2Vy X3ByaXYJRXZlbnRfcHJpdglUcmlnZ2VyX3ByaXYJc3NsX3R5cGUJc3NsX2NpcGhlcgl4NTA5X2lz c3Vlcgl4NTA5X3N1YmplY3QJbWF4X3F1ZXN0aW9ucwltYXhfdXBkYXRlcwltYXhfY29ubmVjdGlv bnMJbWF4X3VzZXJfY29ubmVjdGlvbnMKLWxvY2FsaG9zdAl0ZXN0dXNlcjEJCVkJTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAK LWxvY2FsaG9zdAl0ZXN0dXNlcjIJCU4JWQlZCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKLWxvY2FsaG9zdAl0ZXN0dXNlcjMJCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJ CTAJMAkwCTAKK0hvc3QJVXNlcglQYXNzd29yZAlTZWxlY3RfcHJpdglJbnNlcnRfcHJpdglVcGRh dGVfcHJpdglEZWxldGVfcHJpdglDcmVhdGVfcHJpdglEcm9wX3ByaXYJUmVsb2FkX3ByaXYJU2h1 dGRvd25fcHJpdglQcm9jZXNzX3ByaXYJRmlsZV9wcml2CUdyYW50X3ByaXYJUmVmZXJlbmNlc19w cml2CUluZGV4X3ByaXYJQWx0ZXJfcHJpdglTaG93X2RiX3ByaXYJU3VwZXJfcHJpdglDcmVhdGVf dG1wX3RhYmxlX3ByaXYJTG9ja190YWJsZXNfcHJpdglFeGVjdXRlX3ByaXYJUmVwbF9zbGF2ZV9w cml2CVJlcGxfY2xpZW50X3ByaXYJQ3JlYXRlX3ZpZXdfcHJpdglTaG93X3ZpZXdfcHJpdglDcmVh dGVfcm91dGluZV9wcml2CUFsdGVyX3JvdXRpbmVfcHJpdglDcmVhdGVfdXNlcl9wcml2CUV2ZW50 X3ByaXYJVHJpZ2dlcl9wcml2CUNyZWF0ZV90YWJsZXNwYWNlX3ByaXYJc3NsX3R5cGUJc3NsX2Np cGhlcgl4NTA5X2lzc3Vlcgl4NTA5X3N1YmplY3QJbWF4X3F1ZXN0aW9ucwltYXhfdXBkYXRlcwlt YXhfY29ubmVjdGlvbnMJbWF4X3VzZXJfY29ubmVjdGlvbnMKK2xvY2FsaG9zdAl0ZXN0dXNlcjEJ CVkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TgkJCQkJMAkwCTAJMAorbG9jYWxob3N0CXRlc3R1c2VyMgkJTglZCVkJTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCitsb2NhbGhv c3QJdGVzdHVzZXIzCQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKIEdSQU5UIFNFTEVDVCBPTiAqLiogVE8gJ3Rlc3R1 c2VyMSdAJ2xvY2FsaG9zdCcgV0lUSCBHUkFOVCBPUFRJT047CiAjCiAjIEhlcmUgPFNFTEVDVCBZ RVM+IGlzIHNob3duIGNvcnJlY3RseSBmb3IgdGVzdHVzZXIxOwpAQCAtMTQ3LDEwICsxNDcsMTAg QEAgR1JBTlRFRQlUQUJMRV9DQVRBTE9HCVBSSVZJTEVHRV9UWVBFCUlTXwogJ3Rlc3R1c2VyMydA J2xvY2FsaG9zdCcJTlVMTAlVU0FHRQlOTwogU0VMRUNUICogRlJPTSBteXNxbC51c2VyCiBXSEVS RSB1c2VyIExJS0UgJ3Rlc3R1c2VyJScgT1JERVIgQlkgaG9zdCwgdXNlcjsKLUhvc3QJVXNlcglQ YXNzd29yZAlTZWxlY3RfcHJpdglJbnNlcnRfcHJpdglVcGRhdGVfcHJpdglEZWxldGVfcHJpdglD cmVhdGVfcHJpdglEcm9wX3ByaXYJUmVsb2FkX3ByaXYJU2h1dGRvd25fcHJpdglQcm9jZXNzX3By aXYJRmlsZV9wcml2CUdyYW50X3ByaXYJUmVmZXJlbmNlc19wcml2CUluZGV4X3ByaXYJQWx0ZXJf cHJpdglTaG93X2RiX3ByaXYJU3VwZXJfcHJpdglDcmVhdGVfdG1wX3RhYmxlX3ByaXYJTG9ja190 YWJsZXNfcHJpdglFeGVjdXRlX3ByaXYJUmVwbF9zbGF2ZV9wcml2CVJlcGxfY2xpZW50X3ByaXYJ Q3JlYXRlX3ZpZXdfcHJpdglTaG93X3ZpZXdfcHJpdglDcmVhdGVfcm91dGluZV9wcml2CUFsdGVy X3JvdXRpbmVfcHJpdglDcmVhdGVfdXNlcl9wcml2CUV2ZW50X3ByaXYJVHJpZ2dlcl9wcml2CXNz bF90eXBlCXNzbF9jaXBoZXIJeDUwOV9pc3N1ZXIJeDUwOV9zdWJqZWN0CW1heF9xdWVzdGlvbnMJ bWF4X3VwZGF0ZXMJbWF4X2Nvbm5lY3Rpb25zCW1heF91c2VyX2Nvbm5lY3Rpb25zCi1sb2NhbGhv c3QJdGVzdHVzZXIxCQlZCU4JTglOCU4JTglOCU4JTglOCVkJTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCi1sb2NhbGhvc3QJdGVzdHVzZXIyCQlOCVkJWQlOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkw Ci1sb2NhbGhvc3QJdGVzdHVzZXIzCQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCitIb3N0CVVzZXIJUGFzc3dvcmQJU2Vs ZWN0X3ByaXYJSW5zZXJ0X3ByaXYJVXBkYXRlX3ByaXYJRGVsZXRlX3ByaXYJQ3JlYXRlX3ByaXYJ RHJvcF9wcml2CVJlbG9hZF9wcml2CVNodXRkb3duX3ByaXYJUHJvY2Vzc19wcml2CUZpbGVfcHJp dglHcmFudF9wcml2CVJlZmVyZW5jZXNfcHJpdglJbmRleF9wcml2CUFsdGVyX3ByaXYJU2hvd19k Yl9wcml2CVN1cGVyX3ByaXYJQ3JlYXRlX3RtcF90YWJsZV9wcml2CUxvY2tfdGFibGVzX3ByaXYJ RXhlY3V0ZV9wcml2CVJlcGxfc2xhdmVfcHJpdglSZXBsX2NsaWVudF9wcml2CUNyZWF0ZV92aWV3 X3ByaXYJU2hvd192aWV3X3ByaXYJQ3JlYXRlX3JvdXRpbmVfcHJpdglBbHRlcl9yb3V0aW5lX3By aXYJQ3JlYXRlX3VzZXJfcHJpdglFdmVudF9wcml2CVRyaWdnZXJfcHJpdglDcmVhdGVfdGFibGVz cGFjZV9wcml2CXNzbF90eXBlCXNzbF9jaXBoZXIJeDUwOV9pc3N1ZXIJeDUwOV9zdWJqZWN0CW1h eF9xdWVzdGlvbnMJbWF4X3VwZGF0ZXMJbWF4X2Nvbm5lY3Rpb25zCW1heF91c2VyX2Nvbm5lY3Rp b25zCitsb2NhbGhvc3QJdGVzdHVzZXIxCQlZCU4JTglOCU4JTglOCU4JTglOCVkJTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKK2xvY2FsaG9zdAl0ZXN0dXNl cjIJCU4JWQlZCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTgkJCQkJMAkwCTAJMAorbG9jYWxob3N0CXRlc3R1c2VyMwkJTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCiAjIFN3 aXRjaCB0byBjb25uZWN0aW9uIHRlc3R1c2VyMQogU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9z Y2hlbWEudXNlcl9wcml2aWxlZ2VzCiBXSEVSRSBncmFudGVlIExJS0UgJycndGVzdHVzZXIlJycn CkBAIC0xNTksMTAgKzE1OSwxMCBAQCBHUkFOVEVFCVRBQkxFX0NBVEFMT0cJUFJJVklMRUdFX1RZ UEUJSVNfCiAndGVzdHVzZXIxJ0AnbG9jYWxob3N0JwlOVUxMCVNFTEVDVAlZRVMKIFNFTEVDVCAq IEZST00gbXlzcWwudXNlcgogV0hFUkUgdXNlciBMSUtFICd0ZXN0dXNlciUnIE9SREVSIEJZIGhv c3QsIHVzZXI7Ci1Ib3N0CVVzZXIJUGFzc3dvcmQJU2VsZWN0X3ByaXYJSW5zZXJ0X3ByaXYJVXBk YXRlX3ByaXYJRGVsZXRlX3ByaXYJQ3JlYXRlX3ByaXYJRHJvcF9wcml2CVJlbG9hZF9wcml2CVNo dXRkb3duX3ByaXYJUHJvY2Vzc19wcml2CUZpbGVfcHJpdglHcmFudF9wcml2CVJlZmVyZW5jZXNf cHJpdglJbmRleF9wcml2CUFsdGVyX3ByaXYJU2hvd19kYl9wcml2CVN1cGVyX3ByaXYJQ3JlYXRl X3RtcF90YWJsZV9wcml2CUxvY2tfdGFibGVzX3ByaXYJRXhlY3V0ZV9wcml2CVJlcGxfc2xhdmVf cHJpdglSZXBsX2NsaWVudF9wcml2CUNyZWF0ZV92aWV3X3ByaXYJU2hvd192aWV3X3ByaXYJQ3Jl YXRlX3JvdXRpbmVfcHJpdglBbHRlcl9yb3V0aW5lX3ByaXYJQ3JlYXRlX3VzZXJfcHJpdglFdmVu dF9wcml2CVRyaWdnZXJfcHJpdglzc2xfdHlwZQlzc2xfY2lwaGVyCXg1MDlfaXNzdWVyCXg1MDlf c3ViamVjdAltYXhfcXVlc3Rpb25zCW1heF91cGRhdGVzCW1heF9jb25uZWN0aW9ucwltYXhfdXNl cl9jb25uZWN0aW9ucwotbG9jYWxob3N0CXRlc3R1c2VyMQkJWQlOCU4JTglOCU4JTglOCU4JTglZ CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAotbG9jYWxob3N0 CXRlc3R1c2VyMgkJTglZCVkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTgkJCQkJMAkwCTAJMAotbG9jYWxob3N0CXRlc3R1c2VyMwkJTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAor SG9zdAlVc2VyCVBhc3N3b3JkCVNlbGVjdF9wcml2CUluc2VydF9wcml2CVVwZGF0ZV9wcml2CURl bGV0ZV9wcml2CUNyZWF0ZV9wcml2CURyb3BfcHJpdglSZWxvYWRfcHJpdglTaHV0ZG93bl9wcml2 CVByb2Nlc3NfcHJpdglGaWxlX3ByaXYJR3JhbnRfcHJpdglSZWZlcmVuY2VzX3ByaXYJSW5kZXhf cHJpdglBbHRlcl9wcml2CVNob3dfZGJfcHJpdglTdXBlcl9wcml2CUNyZWF0ZV90bXBfdGFibGVf cHJpdglMb2NrX3RhYmxlc19wcml2CUV4ZWN1dGVfcHJpdglSZXBsX3NsYXZlX3ByaXYJUmVwbF9j bGllbnRfcHJpdglDcmVhdGVfdmlld19wcml2CVNob3dfdmlld19wcml2CUNyZWF0ZV9yb3V0aW5l X3ByaXYJQWx0ZXJfcm91dGluZV9wcml2CUNyZWF0ZV91c2VyX3ByaXYJRXZlbnRfcHJpdglUcmln Z2VyX3ByaXYJQ3JlYXRlX3RhYmxlc3BhY2VfcHJpdglzc2xfdHlwZQlzc2xfY2lwaGVyCXg1MDlf aXNzdWVyCXg1MDlfc3ViamVjdAltYXhfcXVlc3Rpb25zCW1heF91cGRhdGVzCW1heF9jb25uZWN0 aW9ucwltYXhfdXNlcl9jb25uZWN0aW9ucworbG9jYWxob3N0CXRlc3R1c2VyMQkJWQlOCU4JTglO CU4JTglOCU4JTglZCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJ MAkwCitsb2NhbGhvc3QJdGVzdHVzZXIyCQlOCVkJWQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKK2xvY2FsaG9zdAl0ZXN0dXNl cjMJCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTgkJCQkJMAkwCTAJMAogU0hPVyBHUkFOVFM7CiBHcmFudHMgZm9yIHRlc3R1c2VyMUBsb2Nh bGhvc3QKIEdSQU5UIFNFTEVDVCBPTiAqLiogVE8gJ3Rlc3R1c2VyMSdAJ2xvY2FsaG9zdCcgV0lU SCBHUkFOVCBPUFRJT04KQEAgLTIwNywxMCArMjA3LDEwIEBAIEdSQU5URUUJVEFCTEVfQ0FUQUxP RwlQUklWSUxFR0VfVFlQRQlJU18KICd0ZXN0dXNlcjMnQCdsb2NhbGhvc3QnCU5VTEwJVVNBR0UJ Tk8KIFNFTEVDVCAqIEZST00gbXlzcWwudXNlcgogV0hFUkUgdXNlciBMSUtFICd0ZXN0dXNlciUn IE9SREVSIEJZIGhvc3QsIHVzZXI7Ci1Ib3N0CVVzZXIJUGFzc3dvcmQJU2VsZWN0X3ByaXYJSW5z ZXJ0X3ByaXYJVXBkYXRlX3ByaXYJRGVsZXRlX3ByaXYJQ3JlYXRlX3ByaXYJRHJvcF9wcml2CVJl bG9hZF9wcml2CVNodXRkb3duX3ByaXYJUHJvY2Vzc19wcml2CUZpbGVfcHJpdglHcmFudF9wcml2 CVJlZmVyZW5jZXNfcHJpdglJbmRleF9wcml2CUFsdGVyX3ByaXYJU2hvd19kYl9wcml2CVN1cGVy X3ByaXYJQ3JlYXRlX3RtcF90YWJsZV9wcml2CUxvY2tfdGFibGVzX3ByaXYJRXhlY3V0ZV9wcml2 CVJlcGxfc2xhdmVfcHJpdglSZXBsX2NsaWVudF9wcml2CUNyZWF0ZV92aWV3X3ByaXYJU2hvd192 aWV3X3ByaXYJQ3JlYXRlX3JvdXRpbmVfcHJpdglBbHRlcl9yb3V0aW5lX3ByaXYJQ3JlYXRlX3Vz ZXJfcHJpdglFdmVudF9wcml2CVRyaWdnZXJfcHJpdglzc2xfdHlwZQlzc2xfY2lwaGVyCXg1MDlf aXNzdWVyCXg1MDlfc3ViamVjdAltYXhfcXVlc3Rpb25zCW1heF91cGRhdGVzCW1heF9jb25uZWN0 aW9ucwltYXhfdXNlcl9jb25uZWN0aW9ucwotbG9jYWxob3N0CXRlc3R1c2VyMQkJTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJ MAotbG9jYWxob3N0CXRlc3R1c2VyMgkJTglZCVkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAotbG9jYWxob3N0CXRlc3R1c2VyMwkJ TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJ CQkJMAkwCTAJMAorSG9zdAlVc2VyCVBhc3N3b3JkCVNlbGVjdF9wcml2CUluc2VydF9wcml2CVVw ZGF0ZV9wcml2CURlbGV0ZV9wcml2CUNyZWF0ZV9wcml2CURyb3BfcHJpdglSZWxvYWRfcHJpdglT aHV0ZG93bl9wcml2CVByb2Nlc3NfcHJpdglGaWxlX3ByaXYJR3JhbnRfcHJpdglSZWZlcmVuY2Vz X3ByaXYJSW5kZXhfcHJpdglBbHRlcl9wcml2CVNob3dfZGJfcHJpdglTdXBlcl9wcml2CUNyZWF0 ZV90bXBfdGFibGVfcHJpdglMb2NrX3RhYmxlc19wcml2CUV4ZWN1dGVfcHJpdglSZXBsX3NsYXZl X3ByaXYJUmVwbF9jbGllbnRfcHJpdglDcmVhdGVfdmlld19wcml2CVNob3dfdmlld19wcml2CUNy ZWF0ZV9yb3V0aW5lX3ByaXYJQWx0ZXJfcm91dGluZV9wcml2CUNyZWF0ZV91c2VyX3ByaXYJRXZl bnRfcHJpdglUcmlnZ2VyX3ByaXYJQ3JlYXRlX3RhYmxlc3BhY2VfcHJpdglzc2xfdHlwZQlzc2xf Y2lwaGVyCXg1MDlfaXNzdWVyCXg1MDlfc3ViamVjdAltYXhfcXVlc3Rpb25zCW1heF91cGRhdGVz CW1heF9jb25uZWN0aW9ucwltYXhfdXNlcl9jb25uZWN0aW9ucworbG9jYWxob3N0CXRlc3R1c2Vy MQkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCQkJCQkwCTAJMAkwCitsb2NhbGhvc3QJdGVzdHVzZXIyCQlOCVkJWQlOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKK2xvY2Fs aG9zdAl0ZXN0dXNlcjMJCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAogIyBTd2l0Y2ggdG8gY29ubmVjdGlvbiB0ZXN0 dXNlcjEKIFNFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnVzZXJfcHJpdmlsZWdlcwog V0hFUkUgZ3JhbnRlZSBMSUtFICcnJ3Rlc3R1c2VyJScnJwpAQCAtMjUzLDEwICsyNTMsMTAgQEAg R1JBTlRFRQlUQUJMRV9DQVRBTE9HCVBSSVZJTEVHRV9UWVBFCUlTXwogJ3Rlc3R1c2VyMydAJ2xv Y2FsaG9zdCcJTlVMTAlVU0FHRQlOTwogU0VMRUNUICogRlJPTSBteXNxbC51c2VyCiBXSEVSRSB1 c2VyIExJS0UgJ3Rlc3R1c2VyJScgT1JERVIgQlkgaG9zdCwgdXNlcjsKLUhvc3QJVXNlcglQYXNz d29yZAlTZWxlY3RfcHJpdglJbnNlcnRfcHJpdglVcGRhdGVfcHJpdglEZWxldGVfcHJpdglDcmVh dGVfcHJpdglEcm9wX3ByaXYJUmVsb2FkX3ByaXYJU2h1dGRvd25fcHJpdglQcm9jZXNzX3ByaXYJ RmlsZV9wcml2CUdyYW50X3ByaXYJUmVmZXJlbmNlc19wcml2CUluZGV4X3ByaXYJQWx0ZXJfcHJp dglTaG93X2RiX3ByaXYJU3VwZXJfcHJpdglDcmVhdGVfdG1wX3RhYmxlX3ByaXYJTG9ja190YWJs ZXNfcHJpdglFeGVjdXRlX3ByaXYJUmVwbF9zbGF2ZV9wcml2CVJlcGxfY2xpZW50X3ByaXYJQ3Jl YXRlX3ZpZXdfcHJpdglTaG93X3ZpZXdfcHJpdglDcmVhdGVfcm91dGluZV9wcml2CUFsdGVyX3Jv dXRpbmVfcHJpdglDcmVhdGVfdXNlcl9wcml2CUV2ZW50X3ByaXYJVHJpZ2dlcl9wcml2CXNzbF90 eXBlCXNzbF9jaXBoZXIJeDUwOV9pc3N1ZXIJeDUwOV9zdWJqZWN0CW1heF9xdWVzdGlvbnMJbWF4 X3VwZGF0ZXMJbWF4X2Nvbm5lY3Rpb25zCW1heF91c2VyX2Nvbm5lY3Rpb25zCi1sb2NhbGhvc3QJ dGVzdHVzZXIxCQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCQkJCQkwCTAJMAkwCi1sb2NhbGhvc3QJdGVzdHVzZXIyCQlOCVkJWQlOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCi1s b2NhbGhvc3QJdGVzdHVzZXIzCQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCitIb3N0CVVzZXIJUGFzc3dvcmQJU2VsZWN0 X3ByaXYJSW5zZXJ0X3ByaXYJVXBkYXRlX3ByaXYJRGVsZXRlX3ByaXYJQ3JlYXRlX3ByaXYJRHJv cF9wcml2CVJlbG9hZF9wcml2CVNodXRkb3duX3ByaXYJUHJvY2Vzc19wcml2CUZpbGVfcHJpdglH cmFudF9wcml2CVJlZmVyZW5jZXNfcHJpdglJbmRleF9wcml2CUFsdGVyX3ByaXYJU2hvd19kYl9w cml2CVN1cGVyX3ByaXYJQ3JlYXRlX3RtcF90YWJsZV9wcml2CUxvY2tfdGFibGVzX3ByaXYJRXhl Y3V0ZV9wcml2CVJlcGxfc2xhdmVfcHJpdglSZXBsX2NsaWVudF9wcml2CUNyZWF0ZV92aWV3X3By aXYJU2hvd192aWV3X3ByaXYJQ3JlYXRlX3JvdXRpbmVfcHJpdglBbHRlcl9yb3V0aW5lX3ByaXYJ Q3JlYXRlX3VzZXJfcHJpdglFdmVudF9wcml2CVRyaWdnZXJfcHJpdglDcmVhdGVfdGFibGVzcGFj ZV9wcml2CXNzbF90eXBlCXNzbF9jaXBoZXIJeDUwOV9pc3N1ZXIJeDUwOV9zdWJqZWN0CW1heF9x dWVzdGlvbnMJbWF4X3VwZGF0ZXMJbWF4X2Nvbm5lY3Rpb25zCW1heF91c2VyX2Nvbm5lY3Rpb25z Citsb2NhbGhvc3QJdGVzdHVzZXIxCQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKK2xvY2FsaG9zdAl0ZXN0dXNlcjIJ CU4JWQlZCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TgkJCQkJMAkwCTAJMAorbG9jYWxob3N0CXRlc3R1c2VyMwkJTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCiAjIFN3aXRj aCB0byBjb25uZWN0aW9uIHRlc3R1c2VyMQogU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hl bWEudXNlcl9wcml2aWxlZ2VzCiBXSEVSRSBncmFudGVlIExJS0UgJycndGVzdHVzZXIlJycnCkBA IC0yNjUsMTAgKzI2NSwxMCBAQCBHUkFOVEVFCVRBQkxFX0NBVEFMT0cJUFJJVklMRUdFX1RZUEUJ SVNfCiAndGVzdHVzZXIxJ0AnbG9jYWxob3N0JwlOVUxMCVVTQUdFCU5PCiBTRUxFQ1QgKiBGUk9N IG15c3FsLnVzZXIKIFdIRVJFIHVzZXIgTElLRSAndGVzdHVzZXIlJyBPUkRFUiBCWSBob3N0LCB1 c2VyOwotSG9zdAlVc2VyCVBhc3N3b3JkCVNlbGVjdF9wcml2CUluc2VydF9wcml2CVVwZGF0ZV9w cml2CURlbGV0ZV9wcml2CUNyZWF0ZV9wcml2CURyb3BfcHJpdglSZWxvYWRfcHJpdglTaHV0ZG93 bl9wcml2CVByb2Nlc3NfcHJpdglGaWxlX3ByaXYJR3JhbnRfcHJpdglSZWZlcmVuY2VzX3ByaXYJ SW5kZXhfcHJpdglBbHRlcl9wcml2CVNob3dfZGJfcHJpdglTdXBlcl9wcml2CUNyZWF0ZV90bXBf dGFibGVfcHJpdglMb2NrX3RhYmxlc19wcml2CUV4ZWN1dGVfcHJpdglSZXBsX3NsYXZlX3ByaXYJ UmVwbF9jbGllbnRfcHJpdglDcmVhdGVfdmlld19wcml2CVNob3dfdmlld19wcml2CUNyZWF0ZV9y b3V0aW5lX3ByaXYJQWx0ZXJfcm91dGluZV9wcml2CUNyZWF0ZV91c2VyX3ByaXYJRXZlbnRfcHJp dglUcmlnZ2VyX3ByaXYJc3NsX3R5cGUJc3NsX2NpcGhlcgl4NTA5X2lzc3Vlcgl4NTA5X3N1Ympl Y3QJbWF4X3F1ZXN0aW9ucwltYXhfdXBkYXRlcwltYXhfY29ubmVjdGlvbnMJbWF4X3VzZXJfY29u bmVjdGlvbnMKLWxvY2FsaG9zdAl0ZXN0dXNlcjEJCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKLWxvY2FsaG9zdAl0ZXN0 dXNlcjIJCU4JWQlZCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JCQkJCTAJMAkwCTAKLWxvY2FsaG9zdAl0ZXN0dXNlcjMJCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKK0hvc3QJ VXNlcglQYXNzd29yZAlTZWxlY3RfcHJpdglJbnNlcnRfcHJpdglVcGRhdGVfcHJpdglEZWxldGVf cHJpdglDcmVhdGVfcHJpdglEcm9wX3ByaXYJUmVsb2FkX3ByaXYJU2h1dGRvd25fcHJpdglQcm9j ZXNzX3ByaXYJRmlsZV9wcml2CUdyYW50X3ByaXYJUmVmZXJlbmNlc19wcml2CUluZGV4X3ByaXYJ QWx0ZXJfcHJpdglTaG93X2RiX3ByaXYJU3VwZXJfcHJpdglDcmVhdGVfdG1wX3RhYmxlX3ByaXYJ TG9ja190YWJsZXNfcHJpdglFeGVjdXRlX3ByaXYJUmVwbF9zbGF2ZV9wcml2CVJlcGxfY2xpZW50 X3ByaXYJQ3JlYXRlX3ZpZXdfcHJpdglTaG93X3ZpZXdfcHJpdglDcmVhdGVfcm91dGluZV9wcml2 CUFsdGVyX3JvdXRpbmVfcHJpdglDcmVhdGVfdXNlcl9wcml2CUV2ZW50X3ByaXYJVHJpZ2dlcl9w cml2CUNyZWF0ZV90YWJsZXNwYWNlX3ByaXYJc3NsX3R5cGUJc3NsX2NpcGhlcgl4NTA5X2lzc3Vl cgl4NTA5X3N1YmplY3QJbWF4X3F1ZXN0aW9ucwltYXhfdXBkYXRlcwltYXhfY29ubmVjdGlvbnMJ bWF4X3VzZXJfY29ubmVjdGlvbnMKK2xvY2FsaG9zdAl0ZXN0dXNlcjEJCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAor bG9jYWxob3N0CXRlc3R1c2VyMgkJTglZCVkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCitsb2NhbGhvc3QJdGVzdHVzZXIzCQlO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J CQkJCTAJMAkwCTAKIFNIT1cgR1JBTlRTOwogR3JhbnRzIGZvciB0ZXN0dXNlcjFAbG9jYWxob3N0 CiBHUkFOVCBVU0FHRSBPTiAqLiogVE8gJ3Rlc3R1c2VyMSdAJ2xvY2FsaG9zdCcKQEAgLTI4NCwx MCArMjg0LDEwIEBAIEdSQU5URUUJVEFCTEVfQ0FUQUxPRwlQUklWSUxFR0VfVFlQRQlJU18KICd0 ZXN0dXNlcjEnQCdsb2NhbGhvc3QnCU5VTEwJVVNBR0UJTk8KIFNFTEVDVCAqIEZST00gbXlzcWwu dXNlcgogV0hFUkUgdXNlciBMSUtFICd0ZXN0dXNlciUnIE9SREVSIEJZIGhvc3QsIHVzZXI7Ci1I b3N0CVVzZXIJUGFzc3dvcmQJU2VsZWN0X3ByaXYJSW5zZXJ0X3ByaXYJVXBkYXRlX3ByaXYJRGVs ZXRlX3ByaXYJQ3JlYXRlX3ByaXYJRHJvcF9wcml2CVJlbG9hZF9wcml2CVNodXRkb3duX3ByaXYJ UHJvY2Vzc19wcml2CUZpbGVfcHJpdglHcmFudF9wcml2CVJlZmVyZW5jZXNfcHJpdglJbmRleF9w cml2CUFsdGVyX3ByaXYJU2hvd19kYl9wcml2CVN1cGVyX3ByaXYJQ3JlYXRlX3RtcF90YWJsZV9w cml2CUxvY2tfdGFibGVzX3ByaXYJRXhlY3V0ZV9wcml2CVJlcGxfc2xhdmVfcHJpdglSZXBsX2Ns aWVudF9wcml2CUNyZWF0ZV92aWV3X3ByaXYJU2hvd192aWV3X3ByaXYJQ3JlYXRlX3JvdXRpbmVf cHJpdglBbHRlcl9yb3V0aW5lX3ByaXYJQ3JlYXRlX3VzZXJfcHJpdglFdmVudF9wcml2CVRyaWdn ZXJfcHJpdglzc2xfdHlwZQlzc2xfY2lwaGVyCXg1MDlfaXNzdWVyCXg1MDlfc3ViamVjdAltYXhf cXVlc3Rpb25zCW1heF91cGRhdGVzCW1heF9jb25uZWN0aW9ucwltYXhfdXNlcl9jb25uZWN0aW9u cwotbG9jYWxob3N0CXRlc3R1c2VyMQkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAotbG9jYWxob3N0CXRlc3R1c2VyMgkJ TglZCVkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJ CQkJMAkwCTAJMAotbG9jYWxob3N0CXRlc3R1c2VyMwkJTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAorSG9zdAlVc2VyCVBh c3N3b3JkCVNlbGVjdF9wcml2CUluc2VydF9wcml2CVVwZGF0ZV9wcml2CURlbGV0ZV9wcml2CUNy ZWF0ZV9wcml2CURyb3BfcHJpdglSZWxvYWRfcHJpdglTaHV0ZG93bl9wcml2CVByb2Nlc3NfcHJp dglGaWxlX3ByaXYJR3JhbnRfcHJpdglSZWZlcmVuY2VzX3ByaXYJSW5kZXhfcHJpdglBbHRlcl9w cml2CVNob3dfZGJfcHJpdglTdXBlcl9wcml2CUNyZWF0ZV90bXBfdGFibGVfcHJpdglMb2NrX3Rh Ymxlc19wcml2CUV4ZWN1dGVfcHJpdglSZXBsX3NsYXZlX3ByaXYJUmVwbF9jbGllbnRfcHJpdglD cmVhdGVfdmlld19wcml2CVNob3dfdmlld19wcml2CUNyZWF0ZV9yb3V0aW5lX3ByaXYJQWx0ZXJf cm91dGluZV9wcml2CUNyZWF0ZV91c2VyX3ByaXYJRXZlbnRfcHJpdglUcmlnZ2VyX3ByaXYJQ3Jl YXRlX3RhYmxlc3BhY2VfcHJpdglzc2xfdHlwZQlzc2xfY2lwaGVyCXg1MDlfaXNzdWVyCXg1MDlf c3ViamVjdAltYXhfcXVlc3Rpb25zCW1heF91cGRhdGVzCW1heF9jb25uZWN0aW9ucwltYXhfdXNl cl9jb25uZWN0aW9ucworbG9jYWxob3N0CXRlc3R1c2VyMQkJTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCitsb2NhbGhv c3QJdGVzdHVzZXIyCQlOCVkJWQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKK2xvY2FsaG9zdAl0ZXN0dXNlcjMJCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkw CTAJMAogU0hPVyBHUkFOVFM7CiBHcmFudHMgZm9yIHRlc3R1c2VyMUBsb2NhbGhvc3QKIEdSQU5U IFVTQUdFIE9OICouKiBUTyAndGVzdHVzZXIxJ0AnbG9jYWxob3N0JwpAQCAtMzA5LDEwICszMDks MTAgQEAgR1JBTlRFRQlUQUJMRV9DQVRBTE9HCVBSSVZJTEVHRV9UWVBFCUlTXwogJ3Rlc3R1c2Vy MydAJ2xvY2FsaG9zdCcJTlVMTAlVU0FHRQlOTwogU0VMRUNUICogRlJPTSBteXNxbC51c2VyCiBX SEVSRSB1c2VyIExJS0UgJ3Rlc3R1c2VyJScgT1JERVIgQlkgaG9zdCwgdXNlcjsKLUhvc3QJVXNl cglQYXNzd29yZAlTZWxlY3RfcHJpdglJbnNlcnRfcHJpdglVcGRhdGVfcHJpdglEZWxldGVfcHJp dglDcmVhdGVfcHJpdglEcm9wX3ByaXYJUmVsb2FkX3ByaXYJU2h1dGRvd25fcHJpdglQcm9jZXNz X3ByaXYJRmlsZV9wcml2CUdyYW50X3ByaXYJUmVmZXJlbmNlc19wcml2CUluZGV4X3ByaXYJQWx0 ZXJfcHJpdglTaG93X2RiX3ByaXYJU3VwZXJfcHJpdglDcmVhdGVfdG1wX3RhYmxlX3ByaXYJTG9j a190YWJsZXNfcHJpdglFeGVjdXRlX3ByaXYJUmVwbF9zbGF2ZV9wcml2CVJlcGxfY2xpZW50X3By aXYJQ3JlYXRlX3ZpZXdfcHJpdglTaG93X3ZpZXdfcHJpdglDcmVhdGVfcm91dGluZV9wcml2CUFs dGVyX3JvdXRpbmVfcHJpdglDcmVhdGVfdXNlcl9wcml2CUV2ZW50X3ByaXYJVHJpZ2dlcl9wcml2 CXNzbF90eXBlCXNzbF9jaXBoZXIJeDUwOV9pc3N1ZXIJeDUwOV9zdWJqZWN0CW1heF9xdWVzdGlv bnMJbWF4X3VwZGF0ZXMJbWF4X2Nvbm5lY3Rpb25zCW1heF91c2VyX2Nvbm5lY3Rpb25zCi1sb2Nh bGhvc3QJdGVzdHVzZXIxCQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCi1sb2NhbGhvc3QJdGVzdHVzZXIyCQlOCVkJWQlO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJ MAkwCi1sb2NhbGhvc3QJdGVzdHVzZXIzCQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCitIb3N0CVVzZXIJUGFzc3dvcmQJ U2VsZWN0X3ByaXYJSW5zZXJ0X3ByaXYJVXBkYXRlX3ByaXYJRGVsZXRlX3ByaXYJQ3JlYXRlX3By aXYJRHJvcF9wcml2CVJlbG9hZF9wcml2CVNodXRkb3duX3ByaXYJUHJvY2Vzc19wcml2CUZpbGVf cHJpdglHcmFudF9wcml2CVJlZmVyZW5jZXNfcHJpdglJbmRleF9wcml2CUFsdGVyX3ByaXYJU2hv d19kYl9wcml2CVN1cGVyX3ByaXYJQ3JlYXRlX3RtcF90YWJsZV9wcml2CUxvY2tfdGFibGVzX3By aXYJRXhlY3V0ZV9wcml2CVJlcGxfc2xhdmVfcHJpdglSZXBsX2NsaWVudF9wcml2CUNyZWF0ZV92 aWV3X3ByaXYJU2hvd192aWV3X3ByaXYJQ3JlYXRlX3JvdXRpbmVfcHJpdglBbHRlcl9yb3V0aW5l X3ByaXYJQ3JlYXRlX3VzZXJfcHJpdglFdmVudF9wcml2CVRyaWdnZXJfcHJpdglDcmVhdGVfdGFi bGVzcGFjZV9wcml2CXNzbF90eXBlCXNzbF9jaXBoZXIJeDUwOV9pc3N1ZXIJeDUwOV9zdWJqZWN0 CW1heF9xdWVzdGlvbnMJbWF4X3VwZGF0ZXMJbWF4X2Nvbm5lY3Rpb25zCW1heF91c2VyX2Nvbm5l Y3Rpb25zCitsb2NhbGhvc3QJdGVzdHVzZXIxCQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKK2xvY2FsaG9zdAl0ZXN0 dXNlcjIJCU4JWQlZCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTgkJCQkJMAkwCTAJMAorbG9jYWxob3N0CXRlc3R1c2VyMwkJTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCiAj IFN3aXRjaCB0byBjb25uZWN0aW9uIHRlc3R1c2VyMQogU0VMRUNUICogRlJPTSBpbmZvcm1hdGlv bl9zY2hlbWEudXNlcl9wcml2aWxlZ2VzCiBXSEVSRSBncmFudGVlIExJS0UgJycndGVzdHVzZXIl JycnCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvbWVtb3J5 X3N0b3JlZHByb2MucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9tZW1v cnlfc3RvcmVkcHJvYy5yZXN1bHQJMjAwOC0wNy0wOCAxODo0MDozMiArMDAwMAorKysgYi9teXNx bC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9tZW1vcnlfc3RvcmVkcHJvYy5yZXN1bHQJMjAwOC0wOC0w NyAxMzozODoyOSArMDAwMApAQCAtMjE5NDMsOSArMjE5NDMsOSBAQCBFTkQJbGF0aW4xCWxhdGlu MV9zd2VkaXNoX2NpCWxhdGluMV9zd2VkCiBzZXQgQEBzcWxfbW9kZT0nJzsKIENBTEwgc3A0KCk7 CiBMZXZlbAlDb2RlCU1lc3NhZ2UKLUVycm9yCTEzNjUJRGl2aXNpb24gYnkgMAorV2FybmluZwkx MzY1CURpdmlzaW9uIGJ5IDAKIFdhcm5pbmdzOgotRXJyb3IJMTM2NQlEaXZpc2lvbiBieSAwCitX YXJuaW5nCTEzNjUJRGl2aXNpb24gYnkgMAogRFJPUCBQUk9DRURVUkUgc3A0Owogc2V0IEBAc3Fs X21vZGU9Jyc7CiAKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEv ci9tZW1vcnlfdHJpZ18wMy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9y L21lbW9yeV90cmlnXzAzLnJlc3VsdAkyMDA4LTA2LTE4IDE3OjIzOjU1ICswMDAwCisrKyBiL215 c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL21lbW9yeV90cmlnXzAzLnJlc3VsdAkyMDA4LTA4LTA3 IDEzOjM4OjI5ICswMDAwCkBAIC03OCw3ICs3OCw3IEBAIGdyYW50IEFMTCAgb24gKi4qIHRvIHRl c3Rfbm9wcml2c0Bsb2NhbGgKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9tIHRlc3Rfbm9wcml2 c0Bsb2NhbGhvc3Q7CiBzaG93IGdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdDsKIEdy YW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQ REFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJ TEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVB VEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNM QVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBS T1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQgT04gKi4qIFRPICd0ZXN0 X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2 QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JworR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQ REFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJ TEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVB VEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNM QVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBS T1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQsIENSRUFURSBUQUJMRVNQ QUNFIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBB U1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIHJldm9r ZSBBTEwgUFJJVklMRUdFUywgR1JBTlQgT1BUSU9OIEZST00gdGVzdF95ZXNwcml2c0Bsb2NhbGhv c3Q7CiBncmFudCBUUklHR0VSIG9uICouKiB0byB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIGdy YW50IFNFTEVDVCBvbiBwcml2X2RiLnQxIHRvIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0OwpAQCAt MTU2LDcgKzE1Niw3IEBAIGdyYW50IEFMTCAgb24gKi4qIHRvIHRlc3Rfbm9wcml2c0Bsb2NhbGgK IHJldm9rZSBVUERBVEUgIG9uICouKiBmcm9tIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3Q7CiBzaG93 IGdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBmb3IgdGVzdF9ub3By aXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwgQ1JFQVRFLCBEUk9Q LCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxU RVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sg VEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBD UkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JF QVRFIFVTRVIsIEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxo b3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgz RjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUsIENSRUFURSwgRFJP UCwgUkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFM VEVSLCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NL IFRBQkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwg Q1JFQVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENS RUFURSBVU0VSLCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0 ZXN0X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVE MDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JwogcmV2b2tlIEFMTCBQUklWSUxFR0VT LCBHUkFOVCBPUFRJT04gRlJPTSB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIGdyYW50IFRSSUdH RVIsIFVQREFURSBvbiAqLiogdG8gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBzaG93IGdyYW50 cyBmb3IgdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CkBAIC0xNzAsNyArMTcwLDcgQEAgdGVzdF9u b3ByaXZzQGxvY2FsaG9zdAogdXNlIHByaXZfZGI7CiBzaG93IGdyYW50czsKIEdyYW50cyBmb3Ig dGVzdF9ub3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwgQ1JF QVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJ TkRFWCwgQUxURVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJM RVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04g Q0xJRU5ULCBDUkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9V VElORSwgQ1JFQVRFIFVTRVIsIEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3ByaXZz J0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENG MTA0RUY5MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUsIENS RUFURSwgRFJPUCwgUkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywg SU5ERVgsIEFMVEVSLCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFC TEVTLCBMT0NLIFRBQkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9O IENMSUVOVCwgQ1JFQVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJP VVRJTkUsIENSRUFURSBVU0VSLCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04g Ki4qIFRPICd0ZXN0X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQg JypDNDk3MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2Jwogc2VsZWN0IGYxIGZy b20gdDEgb3JkZXIgYnkgZjE7CiBmMQogaW5zZXJ0IDMuNS4zLjItbm8KQEAgLTQwMiw3ICs0MDIs NyBAQCBncmFudCBBTEwgIG9uICouKiB0byB0ZXN0X25vcHJpdnNAbG9jYWxoCiByZXZva2UgU0VM RUNUICBvbiAqLiogZnJvbSB0ZXN0X25vcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9y IHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3Q7CiBHcmFudHMgZm9yIHRlc3Rfbm9wcml2c0Bsb2NhbGhv c3QKLUdSQU5UIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FELCBT SFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9XIERB VEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywgRVhF Q1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcs IFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VSLCBF VkVOVCwgVFJJR0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJ RklFRCBCWSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1 NzYnCitHUkFOVCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwg U0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBE QVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVY RUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVX LCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwg RVZFTlQsIFRSSUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVzdF9ub3ByaXZz J0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENG MTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIHJldm9rZSBBTEwgUFJJVklMRUdFUywgR1JBTlQgT1BU SU9OIEZST00gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBncmFudCBUUklHR0VSLCBTRUxFQ1Qg b24gKi4qIHRvIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3Rf eWVzcHJpdnNAbG9jYWxob3N0OwpAQCAtNDE2LDcgKzQxNiw3IEBAIHRlc3Rfbm9wcml2c0Bsb2Nh bGhvc3QKIHVzZSBwcml2X2RiOwogc2hvdyBncmFudHM7CiBHcmFudHMgZm9yIHRlc3Rfbm9wcml2 c0Bsb2NhbGhvc3QKLUdSQU5UIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwg UkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVS LCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRB QkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JF QVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFU RSBVU0VSLCBFVkVOVCwgVFJJR0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2FsaG9z dCcgSURFTlRJRklFRCBCWSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0Yz NzRBNTRDQTI1NzYnCitHUkFOVCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1As IFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRF UiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBU QUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENS RUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVB VEUgVVNFUiwgRVZFTlQsIFRSSUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVz dF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAx NkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIGNyZWF0ZSB0cmlnZ2VyIHRyZzVhXzEg YmVmb3JlIElOU0VSVCBvbiB0MSBmb3IgZWFjaCByb3cKIHNldCBAdGVzdF92YXIgPSBuZXcuZjE7 CiBzZXQgQHRlc3RfdmFyID0gJ2JlZm9yZSB0cmlnIDMuNS4zLjgtMWEnOwoKPT09IG1vZGlmaWVk IGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL21lbW9yeV90cmlnXzAzZS5yZXN1bHQn Ci0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL21lbW9yeV90cmlnXzAzZS5yZXN1bHQJ MjAwOC0wNi0xOSAxODo1Njo0OCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEv ci9tZW1vcnlfdHJpZ18wM2UucmVzdWx0CTIwMDgtMDgtMDcgMTM6Mzg6MjkgKzAwMDAKQEAgLTU2 Myw3ICs1NjMsNyBAQCB0cmlnIDFfMS15ZXMKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9tIHRl c3RfeWVzcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3RfeWVzcHJpdnNAbG9j YWxob3N0OwogR3JhbnRzIGZvciB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNU LCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04s IFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMs IFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJF UExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJ RVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQgT04g Ki4qIFRPICd0ZXN0X3llc3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JE ICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVD VCwgSU5TRVJULCBVUERBVEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRET1dO LCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cgREFUQUJBU0VT LCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRFLCBS RVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklFVywgU0hPVyBW SUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIsIEVWRU5ULCBD UkVBVEUgVEFCTEVTUEFDRSBPTiAqLiogVE8gJ3Rlc3RfeWVzcHJpdnMnQCdsb2NhbGhvc3QnIElE RU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0 Q0EyNTc2JwogY29ubmVjdChsb2NhbGhvc3QsdGVzdF95ZXNwcml2cyxQV0QsdGVzdCxNQVNURVJf TVlQT1JULE1BU1RFUl9NWVNPQ0spOwogc2VsZWN0IGN1cnJlbnRfdXNlcjsKIGN1cnJlbnRfdXNl cgpAQCAtNjEwLDcgKzYxMCw3IEBAIHJvb3RAbG9jYWxob3N0CiBncmFudCBUUklHR0VSIG9uIHBy aXZfZGIuKiB0byB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIHNob3cgZ3JhbnRzIGZvciB0ZXN0 X3llc3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBmb3IgdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3QK LUdSQU5UIFNFTEVDVCwgSU5TRVJULCBVUERBVEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxP QUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNI T1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVT LCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUg VklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVT RVIsIEVWRU5UIE9OICouKiBUTyAndGVzdF95ZXNwcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJRklF RCBCWSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1NzYn CitHUkFOVCBTRUxFQ1QsIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVM T0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBT SE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxF UywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRF IFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBV U0VSLCBFVkVOVCwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0ZXN0X3llc3ByaXZzJ0An bG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0 RUY5MTgzRjM3NEE1NENBMjU3NicKIEdSQU5UIFRSSUdHRVIgT04gYHByaXZfZGJgLiogVE8gJ3Rl c3RfeWVzcHJpdnMnQCdsb2NhbGhvc3QnCiAKIHRyaWdnZXIgcHJpdmlsZWdlIG9uIGRiIGxldmVs IGZvciBjcmVhdGU6Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18x L3IvbXlpc2FtX3N0b3JlZHByb2MucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Z1bmNz XzEvci9teWlzYW1fc3RvcmVkcHJvYy5yZXN1bHQJMjAwOC0wNy0wOCAxODo0MDozMiArMDAwMAor KysgYi9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9teWlzYW1fc3RvcmVkcHJvYy5yZXN1bHQJ MjAwOC0wOC0wNyAxMzozODoyOSArMDAwMApAQCAtMjE5NDMsOSArMjE5NDMsOSBAQCBFTkQJbGF0 aW4xCWxhdGluMV9zd2VkaXNoX2NpCWxhdGluMV9zd2VkCiBzZXQgQEBzcWxfbW9kZT0nJzsKIENB TEwgc3A0KCk7CiBMZXZlbAlDb2RlCU1lc3NhZ2UKLUVycm9yCTEzNjUJRGl2aXNpb24gYnkgMAor V2FybmluZwkxMzY1CURpdmlzaW9uIGJ5IDAKIFdhcm5pbmdzOgotRXJyb3IJMTM2NQlEaXZpc2lv biBieSAwCitXYXJuaW5nCTEzNjUJRGl2aXNpb24gYnkgMAogRFJPUCBQUk9DRURVUkUgc3A0Owog c2V0IEBAc3FsX21vZGU9Jyc7CiAKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRl L2Z1bmNzXzEvci9teWlzYW1fdHJpZ18wMy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUv ZnVuY3NfMS9yL215aXNhbV90cmlnXzAzLnJlc3VsdAkyMDA4LTA2LTE4IDE3OjIzOjU1ICswMDAw CisrKyBiL215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL215aXNhbV90cmlnXzAzLnJlc3VsdAky MDA4LTA4LTA3IDEzOjM4OjI5ICswMDAwCkBAIC03OCw3ICs3OCw3IEBAIGdyYW50IEFMTCAgb24g Ki4qIHRvIHRlc3Rfbm9wcml2c0Bsb2NhbGgKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9tIHRl c3Rfbm9wcml2c0Bsb2NhbGhvc3Q7CiBzaG93IGdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2Fs aG9zdDsKIEdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJ TlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBS T0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNV UEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJ Q0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcs IENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQgT04gKi4q IFRPICd0ZXN0X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypD NDk3MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JworR1JBTlQgU0VMRUNULCBJ TlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBS T0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNV UEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJ Q0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcs IENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQsIENSRUFU RSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElG SUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3 NicKIHJldm9rZSBBTEwgUFJJVklMRUdFUywgR1JBTlQgT1BUSU9OIEZST00gdGVzdF95ZXNwcml2 c0Bsb2NhbGhvc3Q7CiBncmFudCBUUklHR0VSIG9uICouKiB0byB0ZXN0X3llc3ByaXZzQGxvY2Fs aG9zdDsKIGdyYW50IFNFTEVDVCBvbiBwcml2X2RiLnQxIHRvIHRlc3RfeWVzcHJpdnNAbG9jYWxo b3N0OwpAQCAtMTU2LDcgKzE1Niw3IEBAIGdyYW50IEFMTCAgb24gKi4qIHRvIHRlc3Rfbm9wcml2 c0Bsb2NhbGgKIHJldm9rZSBVUERBVEUgIG9uICouKiBmcm9tIHRlc3Rfbm9wcml2c0Bsb2NhbGhv c3Q7CiBzaG93IGdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBmb3Ig dGVzdF9ub3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwgQ1JF QVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJ TkRFWCwgQUxURVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJM RVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04g Q0xJRU5ULCBDUkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9V VElORSwgQ1JFQVRFIFVTRVIsIEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3ByaXZz J0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENG MTA0RUY5MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUsIENS RUFURSwgRFJPUCwgUkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywg SU5ERVgsIEFMVEVSLCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFC TEVTLCBMT0NLIFRBQkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9O IENMSUVOVCwgQ1JFQVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJP VVRJTkUsIENSRUFURSBVU0VSLCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04g Ki4qIFRPICd0ZXN0X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQg JypDNDk3MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JwogcmV2b2tlIEFMTCBQ UklWSUxFR0VTLCBHUkFOVCBPUFRJT04gRlJPTSB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIGdy YW50IFRSSUdHRVIsIFVQREFURSBvbiAqLiogdG8gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBz aG93IGdyYW50cyBmb3IgdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CkBAIC0xNzAsNyArMTcwLDcg QEAgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdAogdXNlIHByaXZfZGI7CiBzaG93IGdyYW50czsKIEdy YW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERF TEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZF UkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBP UkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQ TElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwg QUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIsIEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVz dF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAx NkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBE RUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVG RVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1Q T1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJF UExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUs IEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VSLCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxF U1BBQ0UgT04gKi4qIFRPICd0ZXN0X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkg UEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2Jwogc2Vs ZWN0IGYxIGZyb20gdDEgb3JkZXIgYnkgZjE7CiBmMQogaW5zZXJ0IDMuNS4zLjItbm8KQEAgLTQw Miw3ICs0MDIsNyBAQCBncmFudCBBTEwgIG9uICouKiB0byB0ZXN0X25vcHJpdnNAbG9jYWxoCiBy ZXZva2UgU0VMRUNUICBvbiAqLiogZnJvbSB0ZXN0X25vcHJpdnNAbG9jYWxob3N0Owogc2hvdyBn cmFudHMgZm9yIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3Q7CiBHcmFudHMgZm9yIHRlc3Rfbm9wcml2 c0Bsb2NhbGhvc3QKLUdSQU5UIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwg UkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVS LCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRB QkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JF QVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFU RSBVU0VSLCBFVkVOVCwgVFJJR0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2FsaG9z dCcgSURFTlRJRklFRCBCWSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0Yz NzRBNTRDQTI1NzYnCitHUkFOVCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1As IFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRF UiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBU QUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENS RUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVB VEUgVVNFUiwgRVZFTlQsIFRSSUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVz dF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAx NkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIHJldm9rZSBBTEwgUFJJVklMRUdFUywg R1JBTlQgT1BUSU9OIEZST00gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBncmFudCBUUklHR0VS LCBTRUxFQ1Qgb24gKi4qIHRvIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMg Zm9yIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0OwpAQCAtNDE2LDcgKzQxNiw3IEBAIHRlc3Rfbm9w cml2c0Bsb2NhbGhvc3QKIHVzZSBwcml2X2RiOwogc2hvdyBncmFudHM7CiBHcmFudHMgZm9yIHRl c3Rfbm9wcml2c0Bsb2NhbGhvc3QKLUdSQU5UIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFU RSwgRFJPUCwgUkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5E RVgsIEFMVEVSLCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVT LCBMT0NLIFRBQkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENM SUVOVCwgQ1JFQVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJ TkUsIENSRUFURSBVU0VSLCBFVkVOVCwgVFJJR0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydA J2xvY2FsaG9zdCcgSURFTlRJRklFRCBCWSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEw NEVGOTE4M0YzNzRBNTRDQTI1NzYnCitHUkFOVCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVB VEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElO REVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxF UywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBD TElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VU SU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQsIFRSSUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICou KiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcq QzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIGNyZWF0ZSB0cmlnZ2Vy IHRyZzVhXzEgYmVmb3JlIElOU0VSVCBvbiB0MSBmb3IgZWFjaCByb3cKIHNldCBAdGVzdF92YXIg PSBuZXcuZjE7CiBzZXQgQHRlc3RfdmFyID0gJ2JlZm9yZSB0cmlnIDMuNS4zLjgtMWEnOwoKPT09 IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL215aXNhbV90cmlnXzAz ZS5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL215aXNhbV90cmlnXzAz ZS5yZXN1bHQJMjAwOC0wNi0xOSAxODo1Njo0OCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRl L2Z1bmNzXzEvci9teWlzYW1fdHJpZ18wM2UucmVzdWx0CTIwMDgtMDgtMDcgMTM6Mzg6MjkgKzAw MDAKQEAgLTU2Myw3ICs1NjMsNyBAQCB0cmlnIDFfMS15ZXMKIHJldm9rZSBUUklHR0VSIG9uICou KiBmcm9tIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3RfeWVz cHJpdnNAbG9jYWxob3N0OwogR3JhbnRzIGZvciB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdAotR1JB TlQgU0VMRUNULCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwg U0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBE QVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVY RUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVX LCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwg RVZFTlQgT04gKi4qIFRPICd0ZXN0X3llc3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZ IFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKK0dS QU5UIFNFTEVDVCwgSU5TRVJULCBVUERBVEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQs IFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cg REFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBF WEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklF VywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIs IEVWRU5ULCBDUkVBVEUgVEFCTEVTUEFDRSBPTiAqLiogVE8gJ3Rlc3RfeWVzcHJpdnMnQCdsb2Nh bGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5OUMwQ0YxMDRFRjkx ODNGMzc0QTU0Q0EyNTc2JwogY29ubmVjdChsb2NhbGhvc3QsdGVzdF95ZXNwcml2cyxQV0QsdGVz dCxNQVNURVJfTVlQT1JULE1BU1RFUl9NWVNPQ0spOwogc2VsZWN0IGN1cnJlbnRfdXNlcjsKIGN1 cnJlbnRfdXNlcgpAQCAtNjEwLDcgKzYxMCw3IEBAIHJvb3RAbG9jYWxob3N0CiBncmFudCBUUklH R0VSIG9uIHByaXZfZGIuKiB0byB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIHNob3cgZ3JhbnRz IGZvciB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBmb3IgdGVzdF95ZXNwcml2c0Bs b2NhbGhvc3QKLUdSQU5UIFNFTEVDVCwgSU5TRVJULCBVUERBVEUsIERFTEVURSwgQ1JFQVRFLCBE Uk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwg QUxURVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExP Q0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5U LCBDUkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwg Q1JFQVRFIFVTRVIsIEVWRU5UIE9OICouKiBUTyAndGVzdF95ZXNwcml2cydAJ2xvY2FsaG9zdCcg SURFTlRJRklFRCBCWSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRB NTRDQTI1NzYnCitHUkFOVCBTRUxFQ1QsIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwg RFJPUCwgUkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgs IEFMVEVSLCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBM T0NLIFRBQkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVO VCwgQ1JFQVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUs IENSRUFURSBVU0VSLCBFVkVOVCwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0ZXN0X3ll c3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEw OTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIEdSQU5UIFRSSUdHRVIgT04gYHByaXZfZGJg LiogVE8gJ3Rlc3RfeWVzcHJpdnMnQCdsb2NhbGhvc3QnCiAKIHRyaWdnZXIgcHJpdmlsZWdlIG9u IGRiIGxldmVsIGZvciBjcmVhdGU6Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0 ZS9mdW5jc18xL3IvbmRiX3N0b3JlZHByb2MucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRl L2Z1bmNzXzEvci9uZGJfc3RvcmVkcHJvYy5yZXN1bHQJMjAwOC0wNy0wOCAyMToxMDoyNiArMDAw MAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9uZGJfc3RvcmVkcHJvYy5yZXN1bHQJ MjAwOC0wOC0xMSAxMzo0NTo0NSArMDAwMApAQCAtMjE5NDIsOSArMjE5NDIsOSBAQCBFTkQJbGF0 aW4xCWxhdGluMV9zd2VkaXNoX2NpCWxhdGluMV9zd2VkCiBzZXQgQEBzcWxfbW9kZT0nJzsKIENB TEwgc3A0KCk7CiBMZXZlbAlDb2RlCU1lc3NhZ2UKLUVycm9yCTEzNjUJRGl2aXNpb24gYnkgMAor V2FybmluZwkxMzY1CURpdmlzaW9uIGJ5IDAKIFdhcm5pbmdzOgotRXJyb3IJMTM2NQlEaXZpc2lv biBieSAwCitXYXJuaW5nCTEzNjUJRGl2aXNpb24gYnkgMAogRFJPUCBQUk9DRURVUkUgc3A0Owog c2V0IEBAc3FsX21vZGU9Jyc7CiAKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRl L2Z1bmNzXzEvci9uZGJfdHJpZ18wMy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZnVu Y3NfMS9yL25kYl90cmlnXzAzLnJlc3VsdAkyMDA4LTA2LTAzIDEwOjIxOjQ4ICswMDAwCisrKyBi L215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL25kYl90cmlnXzAzLnJlc3VsdAkyMDA4LTA4LTEx IDEzOjQ1OjQ1ICswMDAwCkBAIC03Nyw3ICs3Nyw3IEBAIGdyYW50IEFMTCAgb24gKi4qIHRvIHRl c3Rfbm9wcml2c0Bsb2NhbGgKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9tIHRlc3Rfbm9wcml2 c0Bsb2NhbGhvc3Q7CiBzaG93IGdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdDsKIEdy YW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQ REFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJ TEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVB VEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNM QVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBS T1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQgT04gKi4qIFRPICd0ZXN0 X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2 QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JworR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQ REFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJ TEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVB VEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNM QVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBS T1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQsIENSRUFURSBUQUJMRVNQ QUNFIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBB U1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIHJldm9r ZSBBTEwgUFJJVklMRUdFUywgR1JBTlQgT1BUSU9OIEZST00gdGVzdF95ZXNwcml2c0Bsb2NhbGhv c3Q7CiBncmFudCBUUklHR0VSIG9uICouKiB0byB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIGdy YW50IFNFTEVDVCBvbiBwcml2X2RiLnQxIHRvIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0OwpAQCAt MTU1LDcgKzE1NSw3IEBAIGdyYW50IEFMTCAgb24gKi4qIHRvIHRlc3Rfbm9wcml2c0Bsb2NhbGgK IHJldm9rZSBVUERBVEUgIG9uICouKiBmcm9tIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3Q7CiBzaG93 IGdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBmb3IgdGVzdF9ub3By aXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwgQ1JFQVRFLCBEUk9Q LCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxU RVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sg VEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBD UkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JF QVRFIFVTRVIsIEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxo b3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgz RjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUsIENSRUFURSwgRFJP UCwgUkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFM VEVSLCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NL IFRBQkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwg Q1JFQVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENS RUFURSBVU0VSLCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0 ZXN0X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVE MDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JwogcmV2b2tlIEFMTCBQUklWSUxFR0VT LCBHUkFOVCBPUFRJT04gRlJPTSB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIGdyYW50IFRSSUdH RVIsIFVQREFURSBvbiAqLiogdG8gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBzaG93IGdyYW50 cyBmb3IgdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CkBAIC0xNjksNyArMTY5LDcgQEAgdGVzdF9u b3ByaXZzQGxvY2FsaG9zdAogdXNlIHByaXZfZGI7CiBzaG93IGdyYW50czsKIEdyYW50cyBmb3Ig dGVzdF9ub3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwgQ1JF QVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJ TkRFWCwgQUxURVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJM RVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04g Q0xJRU5ULCBDUkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9V VElORSwgQ1JFQVRFIFVTRVIsIEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3ByaXZz J0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENG MTA0RUY5MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUsIENS RUFURSwgRFJPUCwgUkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywg SU5ERVgsIEFMVEVSLCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFC TEVTLCBMT0NLIFRBQkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9O IENMSUVOVCwgQ1JFQVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJP VVRJTkUsIENSRUFURSBVU0VSLCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04g Ki4qIFRPICd0ZXN0X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQg JypDNDk3MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2Jwogc2VsZWN0IGYxIGZy b20gdDEgb3JkZXIgYnkgZjE7CiBmMQogaW5zZXJ0IDMuNS4zLjItbm8KQEAgLTQwMSw3ICs0MDEs NyBAQCBncmFudCBBTEwgIG9uICouKiB0byB0ZXN0X25vcHJpdnNAbG9jYWxoCiByZXZva2UgU0VM RUNUICBvbiAqLiogZnJvbSB0ZXN0X25vcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9y IHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3Q7CiBHcmFudHMgZm9yIHRlc3Rfbm9wcml2c0Bsb2NhbGhv c3QKLUdSQU5UIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FELCBT SFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9XIERB VEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywgRVhF Q1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcs IFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VSLCBF VkVOVCwgVFJJR0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJ RklFRCBCWSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1 NzYnCitHUkFOVCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwg U0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBE QVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVY RUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVX LCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwg RVZFTlQsIFRSSUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVzdF9ub3ByaXZz J0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENG MTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIHJldm9rZSBBTEwgUFJJVklMRUdFUywgR1JBTlQgT1BU SU9OIEZST00gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBncmFudCBUUklHR0VSLCBTRUxFQ1Qg b24gKi4qIHRvIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3Rf eWVzcHJpdnNAbG9jYWxob3N0OwpAQCAtNDE1LDcgKzQxNSw3IEBAIHRlc3Rfbm9wcml2c0Bsb2Nh bGhvc3QKIHVzZSBwcml2X2RiOwogc2hvdyBncmFudHM7CiBHcmFudHMgZm9yIHRlc3Rfbm9wcml2 c0Bsb2NhbGhvc3QKLUdSQU5UIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwg UkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVS LCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRB QkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JF QVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFU RSBVU0VSLCBFVkVOVCwgVFJJR0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2FsaG9z dCcgSURFTlRJRklFRCBCWSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0Yz NzRBNTRDQTI1NzYnCitHUkFOVCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1As IFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRF UiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBU QUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENS RUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVB VEUgVVNFUiwgRVZFTlQsIFRSSUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVz dF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAx NkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIGNyZWF0ZSB0cmlnZ2VyIHRyZzVhXzEg YmVmb3JlIElOU0VSVCBvbiB0MSBmb3IgZWFjaCByb3cKIHNldCBAdGVzdF92YXIgPSBuZXcuZjE7 CiBzZXQgQHRlc3RfdmFyID0gJ2JlZm9yZSB0cmlnIDMuNS4zLjgtMWEnOwoKPT09IG1vZGlmaWVk IGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL25kYl90cmlnXzAzZS5yZXN1bHQnCi0t LSBhL215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL25kYl90cmlnXzAzZS5yZXN1bHQJMjAwOC0w NC0zMCAxNjoxNjo0NSArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9uZGJf dHJpZ18wM2UucmVzdWx0CTIwMDgtMDgtMTEgMTM6NDU6NDUgKzAwMDAKQEAgLTU2Miw3ICs1NjIs NyBAQCB0cmlnIDFfMS15ZXMKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9tIHRlc3RfeWVzcHJp dnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0Owog R3JhbnRzIGZvciB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQs IFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1Ms IEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBD UkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9O IFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFU RSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQgT04gKi4qIFRPICd0 ZXN0X3llc3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1 RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJU LCBVUERBVEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNT LCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwg Q1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElP TiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVB VEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIsIEVWRU5ULCBDUkVBVEUgVEFC TEVTUEFDRSBPTiAqLiogVE8gJ3Rlc3RfeWVzcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQg QlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2Jwog Y29ubmVjdChsb2NhbGhvc3QsdGVzdF95ZXNwcml2cyxQV0QsdGVzdCxNQVNURVJfTVlQT1JULE1B U1RFUl9NWVNPQ0spOwogc2VsZWN0IGN1cnJlbnRfdXNlcjsKIGN1cnJlbnRfdXNlcgpAQCAtNjA5 LDcgKzYwOSw3IEBAIHJvb3RAbG9jYWxob3N0CiBncmFudCBUUklHR0VSIG9uIHByaXZfZGIuKiB0 byB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIHNob3cgZ3JhbnRzIGZvciB0ZXN0X3llc3ByaXZz QGxvY2FsaG9zdDsKIEdyYW50cyBmb3IgdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3QKLUdSQU5UIFNF TEVDVCwgSU5TRVJULCBVUERBVEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRE T1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cgREFUQUJB U0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRF LCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklFVywgU0hP VyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIsIEVWRU5U IE9OICouKiBUTyAndGVzdF95ZXNwcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJRklFRCBCWSBQQVNT V09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1NzYnCitHUkFOVCBT RUxFQ1QsIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FELCBTSFVU RE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9XIERBVEFC QVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywgRVhFQ1VU RSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcsIFNI T1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VSLCBFVkVO VCwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0ZXN0X3llc3ByaXZzJ0AnbG9jYWxob3N0 JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3 NEE1NENBMjU3NicKIEdSQU5UIFRSSUdHRVIgT04gYHByaXZfZGJgLiogVE8gJ3Rlc3RfeWVzcHJp dnMnQCdsb2NhbGhvc3QnCiAKIHRyaWdnZXIgcHJpdmlsZWdlIG9uIGRiIGxldmVsIGZvciBjcmVh dGU6Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3RyaWdnZXJz L3RyaWdnZXJzXzAzLmluYycKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3RyaWdnZXJz L3RyaWdnZXJzXzAzLmluYwkyMDA4LTA3LTE5IDA4OjMxOjMzICswMDAwCisrKyBiL215c3FsLXRl c3Qvc3VpdGUvZnVuY3NfMS90cmlnZ2Vycy90cmlnZ2Vyc18wMy5pbmMJMjAwOC0wNy0yNSAxNzox NDo1MiArMDAwMApAQCAtMTMsMTIgKzEzLDcgQEAKIFVTRSB0ZXN0OwogLS1zb3VyY2Ugc3VpdGUv ZnVuY3NfMS9pbmNsdWRlL3RiMy5pbmMKIAotIyBUaGlzIHRlc3QgY2Fubm90IGJlIHVzZWQgZm9y IHRoZSBlbWJlZGRlZCBzZXJ2ZXIgYmVjYXVzZSB3ZSBjaGVjayBoZXJlCi0jIHByaXZpbGdlZ2Vz LgotLS1zb3VyY2UgaW5jbHVkZS9ub3RfZW1iZWRkZWQuaW5jCiAKLVVTRSB0ZXN0OwotLS1zb3Vy Y2Ugc3VpdGUvZnVuY3NfMS9pbmNsdWRlL3RiMy5pbmMKIAogLS1kaXNhYmxlX2Fib3J0X29uX2Vy cm9yCiAKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvdHJpZ2dl cnMvdHJpZ2dlcnNfMDguaW5jJwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvdHJpZ2dl cnMvdHJpZ2dlcnNfMDguaW5jCTIwMDgtMDctMTkgMDg6MzE6MzMgKzAwMDAKKysrIGIvbXlzcWwt dGVzdC9zdWl0ZS9mdW5jc18xL3RyaWdnZXJzL3RyaWdnZXJzXzA4LmluYwkyMDA4LTA3LTI1IDE3 OjE0OjUyICswMDAwCkBAIC04LDggKzgsNyBAQAogVVNFIHRlc3Q7CiAtLXNvdXJjZSBzdWl0ZS9m dW5jc18xL2luY2x1ZGUvdGIzLmluYwogCi1VU0UgdGVzdDsKLS0tc291cmNlIHN1aXRlL2Z1bmNz XzEvaW5jbHVkZS90YjMuaW5jCisKIAogIyBHZW5lcmFsIHNldHVwIGZvciBUcmlnZ2VyIHRlc3Rz CiBsZXQgJG1lc3NhZ2U9IFRlc3RjYXNlOiAzLjU6OwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3Fs LXRlc3Qvc3VpdGUvZnVuY3NfMS90cmlnZ2Vycy90cmlnZ2Vyc18xMDExZXh0LmluYycKLS0tIGEv bXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3RyaWdnZXJzL3RyaWdnZXJzXzEwMTFleHQuaW5jCTIw MDgtMDctMTkgMDg6MzE6MzMgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3Ry aWdnZXJzL3RyaWdnZXJzXzEwMTFleHQuaW5jCTIwMDgtMDctMjUgMTc6MTQ6NTIgKzAwMDAKQEAg LTEzLDEzICsxMyw2IEBAIGV2YWwKIGxvYWQgZGF0YSBpbmZpbGUgJyRNWVNRTFRFU1RfVkFSRElS L3N0ZF9kYXRhX2xuL2Z1bmNzXzEvbWVtb3J5X3RiMy50eHQnCiBpbnRvIHRhYmxlIHRiMzsKIAot VVNFIHRlc3Q7Ci0tLXNvdXJjZSBzdWl0ZS9mdW5jc18xL2luY2x1ZGUvdGIzLmluYwotCi0tLXJl cGxhY2VfcmVzdWx0ICRNWVNRTFRFU1RfVkFSRElSIDxNWVNRTFRFU1RfVkFSRElSPgotZXZhbAot bG9hZCBkYXRhIGluZmlsZSAnJE1ZU1FMVEVTVF9WQVJESVIvc3RkX2RhdGFfbG4vZnVuY3NfMS9t ZW1vcnlfdGIzLnR4dCcKLWludG8gdGFibGUgdGIzOwogCiAtLWRpc2FibGVfYWJvcnRfb25fZXJy b3IKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvbmRiL3IvbmRiX2Jhc2lj LnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9uZGIvci9uZGJfYmFzaWMucmVzdWx0CTIw MDctMTEtMTIgMTI6MjU6MzQgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9uZGIvci9uZGJf YmFzaWMucmVzdWx0CTIwMDgtMDgtMDYgMjI6MTY6MDcgKzAwMDAKQEAgLTc4Myw2ICs3ODMsNyBA QCBmMQlmMglmMwogMjIyMjIyCWJiYmJiYgkyCiBkcm9wIHRhYmxlIHQxOwogSWxsZWdhbCBuZGIg ZXJyb3IgY29kZTogMTE4NgorTXlTUUwgZXJyb3IgY29kZSAxMTg2IChFUl9GTFVTSF9NQVNURVJf QklOTE9HX0NMT1NFRCk6IEJpbmxvZyBjbG9zZWQsIGNhbm5vdCBSRVNFVCBNQVNURVIKIENSRUFU RSBUQUJMRSB0MSAoCiBhIFZBUkJJTkFSWSg0MCkgTk9UIE5VTEwsCiBiIFZBUkNIQVIgKDI1Nikg Q0hBUkFDVEVSIFNFVCBVVEY4IE5PVCBOVUxMLAoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRl c3Qvc3VpdGUvbmRiL3QvZGlzYWJsZWQuZGVmJwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL25kYi90 L2Rpc2FibGVkLmRlZgkyMDA4LTA0LTI3IDAxOjAyOjA5ICswMDAwCisrKyBiL215c3FsLXRlc3Qv c3VpdGUvbmRiL3QvZGlzYWJsZWQuZGVmCTIwMDgtMDctMjUgMTU6MTA6MTQgKzAwMDAKQEAgLTEx LDYgKzExLDcgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCiBuZGJfcGFydGl0aW9uX2Vycm9y MgkgOiBIRiBpcyBub3Qgc3VyZSBpZiB0aGUgdGVzdCBjYW4gd29yayBhcyBpbnRlcm5kZWQgb24g YWxsIHRoZSBwbGF0Zm9ybXMKK25kYl9pbmRleF9vcmRlcmVkICAgICAgICA6IEJ1ZyMzODM3MCBU aGUgdGVzdCBuZGIubmRiX2luZGV4X29yZGVyZWQgZmFpbHMgd2l0aCB0aGUgY29tbXVuaXR5IGZl YXR1cmVzIG9uCiAKICMgdGhlIGJlbG93IHRlc3RjYXNlIGhhdmUgYmVlbiByZXdvcmtlZCB0byBh dm9pZCB0aGUgYnVnLCB0ZXN0IGNvbnRhaW5zIGNvbW1lbnQsIGtlZXAgYnVnIG9wZW4KICNuZGJf YmlubG9nX2RkbF9tdWx0aSAgICAgOiBCVUcjMTg5NzYgMjAwNi0wNC0xMCBrZW50ICAgIENSQlI6 IG11bHRpcGxlIGJpbmxvZywgc2Vjb25kIGJpbmxvZyBtYXkgbWlzcyBzY2hlbWEgbG9nIGV2ZW50 cwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvcnBsL3QvZGlzYWJsZWQuZGVm JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL3JwbC90L2Rpc2FibGVkLmRlZgkyMDA4LTA3LTIyIDEw OjUxOjEzICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvcnBsL3QvZGlzYWJsZWQuZGVmCTIw MDgtMDctMjUgMTU6MTA6MTQgKzAwMDAKQEAgLTM4LDMgKzM4LDQgQEAgcnBsX2ZsdXNobG9nX2xv b3AgICAgICAgICAgOiBCdWcjMzc3MzMgMgogcnBsX2xvY2t0cmFuc19pbm5vZGIgICAgICAgOiBC dWcjMzc3MTIgMjAwOC0wNy0xNyBhbGlrIERpc2FibGVkIHRvIG1ha2UgNi4wIGdyZWFuZXIgKHRo ZSB0ZXN0IGZhaWxzIHRvbyBvZnRlbikKIHJwbF90ZW1wb3JhcnlfZXJyb3JzICAgICAgIDogQnVn IzM2OTY4IDIwMDgtMDctMTcgYWxpayBEaXNhYmxlZCB0byBtYWtlIDYuMCBncmVhbmVyICh0aGUg dGVzdCBmYWlscyB0b28gb2Z0ZW4pCiBycGxfdGVtcG9yYXJ5ICAgICAgICAgICAgICA6IEJVRyMz ODI2OSAyMDA4LTA3LTIxIFN2ZW4gdmFsZ3JpbmQgZXJyb3IgaW4gcHVzaGJ1aWxkCitycGxfZmx1 c2hsb2dfbG9vcCAgICAgICAgICA6IEJVRyMzNzczMyAyMDA4LTA3LTIzIFN2ZW4gZGlzYWJsZWQg aW4gNS4xLWJ1Z3RlYW0uIHRoZSBidWcgaGFzIGJlZW4gZml4ZWQgaW4gNS4xLXJwbDogcGxlYXNl IHJlLWVuYWJsZSB3aGVuIHRoYXQgZ2V0cyBwdXNoZWQgdG8gbWFpbgoKPT09IGFkZGVkIGZpbGUg J215c3FsLXRlc3Qvc3VpdGUvc3lzX3ZhcnMvaW5jL211bHRpX3JhbmdlX2NvdW50X2Jhc2ljLmlu YycKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy9pbmMvbXVsdGlfcmFuZ2VfY291bnRf YmFzaWMuaW5jCTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0 ZS9zeXNfdmFycy9pbmMvbXVsdGlfcmFuZ2VfY291bnRfYmFzaWMuaW5jCTIwMDgtMDctMjMgMTQ6 MDY6NDQgKzAwMDAKQEAgLTAsMCArMSwyMTkgQEAKKyMjIyMjIyMjIyMjIyMjIG15c3FsLXRlc3Rc dFxtdWx0aV9yYW5nZV9jb3VudF9iYXNpYy50ZXN0ICMjIyMjIyMjIyMjIyMjIworIyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIworIyBWYXJpYWJsZSBOYW1lOiBtdWx0aV9yYW5nZV9jb3VudCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyBTY29wZTogR0xPQkFMIHwg U0VTU0lPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIworIyBBY2Nlc3MgVHlwZTogRHluYW1pYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyBEYXRhIFR5cGU6IG51bWVyaWMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyBE ZWZhdWx0IFZhbHVlOiAgMjU2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIworIyBSYW5nZToxLTQyOTQ5NjcyOTUgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIworIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyBDcmVhdGlvbiBEYXRlOiAyMDA4 LTAyLTA3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IworIyBBdXRob3I6ICBTYWxtYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIworIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyBEZXNj cmlwdGlvbjogVGVzdCBDYXNlcyBvZiBEeW5hbWljIFN5c3RlbSBWYXJpYWJsZSBtdWx0aV9yYW5n ZV9jb3VudCAgICAgICAgIworIyAgICAgICAgICAgICAgdGhhdCBjaGVja3MgdGhlIGJlaGF2aW9y IG9mIHRoaXMgdmFyaWFibGUgaW4gdGhlIGZvbGxvd2luZyB3YXlzIworIyAgICAgICAgICAgICAg KiBEZWZhdWx0IFZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIworIyAgICAgICAgICAgICAgKiBWYWxpZCAmIEludmFsaWQgdmFsdWVzICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyAgICAgICAgICAgICAgKiBTY29wZSAm IEFjY2VzcyBtZXRob2QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwor IyAgICAgICAgICAgICAgKiBEYXRhIEludGVncml0eSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIworIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyBSZWZlcmVu Y2U6IGh0dHA6Ly9kZXYubXlzcWwuY29tL2RvYy9yZWZtYW4vNS4xL2VuLyAgICAgICAgICAgICAg ICAgICAgICAgICAgIworIyAgc2VydmVyLXN5c3RlbS12YXJpYWJsZXMuaHRtbCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCistLXNvdXJjZSBpbmNsdWRlL2xvYWRfc3lz dmFycy5pbmMKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgICAgICAgICAgIFNUQVJUIE9GIG11bHRpX3JhbmdlX2Nv dW50IFRFU1RTICAgICAgICAgICAgICAgICAgICAjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgICAg ICAgICAgICAgICAgIFNhdmUgaW5pdGlhbCB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICMK KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKworU0VUIEBzdGFydF9nbG9iYWxfdmFsdWUgPSBAQGdsb2JhbC5tdWx0aV9yYW5nZV9j b3VudDsKK1NFTEVDVCBAc3RhcnRfZ2xvYmFsX3ZhbHVlOworU0VUIEBzdGFydF9zZXNzaW9uX3Zh bHVlID0gQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworU0VMRUNUIEBzdGFydF9zZXNzaW9u X3ZhbHVlOworCisKKy0tZWNobyAnIy0tLS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wOTBf MDEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjICAgICBEaXNwbGF5IHRo ZSBERUZBVUxUIHZhbHVlIG9mIG11bHRpX3JhbmdlX2NvdW50ICAgICAgICAgICAgIworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKworU0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gMTAwOworU0VUIEBAZ2xvYmFs Lm11bHRpX3JhbmdlX2NvdW50ID0gREVGQVVMVDsKK1NFTEVDVCBAQGdsb2JhbC5tdWx0aV9yYW5n ZV9jb3VudDsKKworU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IDIwMDsKK1NFVCBA QHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSBERUZBVUxUOworU0VMRUNUIEBAc2Vzc2lvbi5t dWx0aV9yYW5nZV9jb3VudDsKKworCistLWVjaG8gJyMtLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZ TlZBUlNfMDkwXzAyLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyAgICAg Q2hlY2sgdGhlIERFRkFVTFQgdmFsdWUgb2YgbXVsdGlfcmFuZ2VfY291bnQgICAgICAgICAgICAg ICMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisKK1NFVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IERFRkFVTFQ7 CitTRUxFQ1QgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSAyNTY7CisKK1NFVCBAQHNlc3Np b24ubXVsdGlfcmFuZ2VfY291bnQgPSBERUZBVUxUOworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9y YW5nZV9jb3VudCA9IDI1NjsKKworCistLWVjaG8gJyMtLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZ TlZBUlNfMDkwXzAzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMgQ2hhbmdlIHRoZSB2YWx1ZSBvZiBtdWx0aV9yYW5nZV9jb3VudCB0byBhIHZhbGlkIHZh bHVlIGZvciBHTE9CQUwgU2NvcGUgIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK1NFVCBAQGdsb2Jh bC5tdWx0aV9yYW5nZV9jb3VudCA9IDE7CitTRUxFQ1QgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291 bnQ7CitTRVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSA2MDAyMDsKK1NFTEVDVCBAQGds b2JhbC5tdWx0aV9yYW5nZV9jb3VudDsKK1NFVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9 IDY1NTM1OworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50OworU0VUIEBAZ2xvYmFs Lm11bHRpX3JhbmdlX2NvdW50ID0gNDI5NDk2NzI5NTsKK1NFTEVDVCBAQGdsb2JhbC5tdWx0aV9y YW5nZV9jb3VudDsKK1NFVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IDQyOTQ5NjcyOTQ7 CitTRUxFQ1QgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQ7CisKKworCistLWVjaG8gJyMtLS0t LS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDkwXzA0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSMnCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIENoYW5nZSB0aGUgdmFsdWUgb2YgbXVsdGlfcmFu Z2VfY291bnQgdG8gYSB2YWxpZCB2YWx1ZSBmb3IgU0VTU0lPTiBTY29wZSAjCisjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisgCitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gMTsKK1NFTEVD VCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitTRVQgQEBzZXNzaW9uLm11bHRpX3Jhbmdl X2NvdW50ID0gNTAwNTA7CitTRUxFQ1QgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworU0VU IEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IDY1NTM1OworU0VMRUNUIEBAc2Vzc2lvbi5t dWx0aV9yYW5nZV9jb3VudDsKK1NFVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSA0Mjk0 OTY3Mjk1OworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK1NFVCBAQHNlc3Np b24ubXVsdGlfcmFuZ2VfY291bnQgPSA0Mjk0OTY3Mjk0OworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0 aV9yYW5nZV9jb3VudDsKKworCistLWVjaG8gJyMtLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJT XzA5MF8wNS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ2hhbmdlIHRoZSB2YWx1 ZSBvZiBtdWx0aV9yYW5nZV9jb3VudCB0byBhbiBpbnZhbGlkIHZhbHVlICMKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworU0VU IEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gMDsKK1NFTEVDVCBAQGdsb2JhbC5tdWx0aV9y YW5nZV9jb3VudDsKK1NFVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IDQyOTQ5NjcyOTY7 CitTRUxFQ1QgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQ7CitTRVQgQEBnbG9iYWwubXVsdGlf cmFuZ2VfY291bnQgPSAtMTAyNDsKK1NFTEVDVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudDsK K1NFVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IDQyOTQ5NjcyOTUwMDsKK1NFTEVDVCBA QGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudDsKKy0tRXJyb3IgRVJfV1JPTkdfVFlQRV9GT1JfVkFS CitTRVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSA2NTUzMC4zNDsKK1NFTEVDVCBAQGds b2JhbC5tdWx0aV9yYW5nZV9jb3VudDsKKy0tRXJyb3IgRVJfV1JPTkdfVFlQRV9GT1JfVkFSCitT RVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSB0ZXN0OworU0VMRUNUIEBAZ2xvYmFsLm11 bHRpX3JhbmdlX2NvdW50OworCitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gMDsK K1NFTEVDVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitTRVQgQEBzZXNzaW9uLm11bHRp X3JhbmdlX2NvdW50ID0gNDI5NDk2NzI5NjsKK1NFTEVDVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2Vf Y291bnQ7CitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gLTE7CitTRUxFQ1QgQEBz ZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworLS1FcnJvciBFUl9QQVJTRV9FUlJPUgorU0VUIEBA c2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IDY1NTMwLjM0LjsKK1NFVCBAQHNlc3Npb24ubXVs dGlfcmFuZ2VfY291bnQgPSA0Mjk0OTY3Mjk1MDIxOworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9y YW5nZV9jb3VudDsKKy0tZWNobyAnQnVnICMgMzQ4Mzc6IEVycm9ycyBhcmUgbm90IGNvbWluZyBv biBhc3NpZ25pbmcgaW52YWxpZCB2YWx1ZXMgdG8gdmFyaWFibGUnOworCistLUVycm9yIEVSX1dS T05HX1RZUEVfRk9SX1ZBUgorU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IHRlc3Q7 CitTRUxFQ1QgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworCisKKy0tZWNobyAnIy0tLS0t LS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDkwXzA2LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJwor IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKyMgICBDaGVjayBpZiB0aGUgdmFsdWUgaW4gR0xPQkFMIFRhYmxlIG1hdGNo ZXMgdmFsdWUgaW4gdmFyaWFibGUgICAjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisKK1NFTEVDVCBAQGdsb2Jh bC5tdWx0aV9yYW5nZV9jb3VudCA9IFZBUklBQkxFX1ZBTFVFIAorRlJPTSBJTkZPUk1BVElPTl9T Q0hFTUEuR0xPQkFMX1ZBUklBQkxFUyAKK1dIRVJFIFZBUklBQkxFX05BTUU9J211bHRpX3Jhbmdl X2NvdW50JzsKKworLS1lY2hvICcjLS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wOTBfMDct LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyAgQ2hlY2sgaWYgdGhlIHZh bHVlIGluIFNFU1NJT04gVGFibGUgbWF0Y2hlcyB2YWx1ZSBpbiB2YXJpYWJsZSAgICMKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisKK1NFTEVDVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSBWQVJJQUJMRV9W QUxVRSAKK0ZST00gSU5GT1JNQVRJT05fU0NIRU1BLlNFU1NJT05fVkFSSUFCTEVTIAorV0hFUkUg VkFSSUFCTEVfTkFNRT0nbXVsdGlfcmFuZ2VfY291bnQnOworCisKKy0tZWNobyAnIy0tLS0tLS0t LS0tLS0tLS0tLUZOX0RZTlZBUlNfMDkwXzA4LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJworIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMgICAgIENoZWNrIGlmIFRSVUUgYW5kIEZBTFNFIHZhbHVlcyBjYW4gYmUgdXNl ZCBvbiB2YXJpYWJsZSAgICAgICAjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitTRVQgQEBnbG9iYWwubXVsdGlf cmFuZ2VfY291bnQgPSBUUlVFOworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50Owor U0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gRkFMU0U7CitTRUxFQ1QgQEBnbG9iYWwu bXVsdGlfcmFuZ2VfY291bnQ7CisKKworLS1lY2hvICcjLS0tLS0tLS0tLS0tLS0tLS0tLS0tRk5f RFlOVkFSU18wOTBfMDktLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyAKKyMgIENoZWNrIGlmIGFjY2Vzc2luZyB2YXJpYWJsZSB3aXRoIGFuZCB3aXRob3V0 IEdMT0JBTCBwb2ludCB0byBzYW1lIHZhcmlhYmxlICAgIworIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIAorCitTRVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSAxMDsKK1NFTEVDVCBAQG11 bHRpX3JhbmdlX2NvdW50ID0gQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQ7CisKKworLS1lY2hv ICcjLS0tLS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wOTBfMTAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tIycKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjICAgIENoZWNrIGlmIGFjY2Vzc2luZyB2YXJpYWJsZSB3aXRoIFNFU1NJT04sTE9DQUwgYW5k IHdpdGhvdXQgU0NPUEUgcG9pbnRzIHRvIHNhbWUgc2Vzc2lvbiB2YXJpYWJsZSAgIworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworU0VUIEBAbXVsdGlf cmFuZ2VfY291bnQgPSAxMDA7CitTRUxFQ1QgQEBtdWx0aV9yYW5nZV9jb3VudCA9IEBAbG9jYWwu bXVsdGlfcmFuZ2VfY291bnQ7CitTRUxFQ1QgQEBsb2NhbC5tdWx0aV9yYW5nZV9jb3VudCA9IEBA c2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKKworCistLWVjaG8gJyMtLS0tLS0tLS0tLS0tLS0t LS0tLS1GTl9EWU5WQVJTXzA5MF8xMS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJworIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyAgCisjICAgQ2hlY2sgaWYgbXVsdGlfcmFuZ2VfY291bnQgY2FuIGJlIGFjY2Vz c2VkIHdpdGggYW5kIHdpdGhvdXQgQEAgc2lnbiAgICAjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisK K1NFVCBtdWx0aV9yYW5nZV9jb3VudCA9IDE7CitTRUxFQ1QgQEBtdWx0aV9yYW5nZV9jb3VudDsK Ky0tRXJyb3IgRVJfVU5LTk9XTl9UQUJMRQorU0VMRUNUIGxvY2FsLm11bHRpX3JhbmdlX2NvdW50 OworLS1FcnJvciBFUl9VTktOT1dOX1RBQkxFCitTRUxFQ1Qgc2Vzc2lvbi5tdWx0aV9yYW5nZV9j b3VudDsKKy0tRXJyb3IgRVJfQkFEX0ZJRUxEX0VSUk9SCitTRUxFQ1QgbXVsdGlfcmFuZ2VfY291 bnQgPSBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CisKKworIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisjICAgICBSZXN0b3JlIGluaXRpYWwgdmFsdWUgICAgICAgICMK KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitTRVQgQEBnbG9iYWwubXVs dGlfcmFuZ2VfY291bnQgPSBAc3RhcnRfZ2xvYmFsX3ZhbHVlOworU0VMRUNUIEBAZ2xvYmFsLm11 bHRpX3JhbmdlX2NvdW50OworU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IEBzdGFy dF9zZXNzaW9uX3ZhbHVlOworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKKwor CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyMgICAgICAgICAgICAgICAgIEVORCBPRiBtdWx0aV9yYW5nZV9jb3VudCBURVNUUyAgICAgIwor IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisK Cj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL3N5c192YXJzL3IvbXVsdGlfcmFuZ2Vf Y291bnRfYmFzaWNfMzIucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL3N5c192YXJzL3Iv bXVsdGlfcmFuZ2VfY291bnRfYmFzaWNfMzIucmVzdWx0CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAw MDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy9yL211bHRpX3JhbmdlX2NvdW50X2Jh c2ljXzMyLnJlc3VsdAkyMDA4LTA3LTIzIDE0OjA2OjQ0ICswMDAwCkBAIC0wLDAgKzEsMTkyIEBA CitTRVQgQHN0YXJ0X2dsb2JhbF92YWx1ZSA9IEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50Owor U0VMRUNUIEBzdGFydF9nbG9iYWxfdmFsdWU7CitAc3RhcnRfZ2xvYmFsX3ZhbHVlCisyNTYKK1NF VCBAc3RhcnRfc2Vzc2lvbl92YWx1ZSA9IEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK1NF TEVDVCBAc3RhcnRfc2Vzc2lvbl92YWx1ZTsKK0BzdGFydF9zZXNzaW9uX3ZhbHVlCisyNTYKKycj LS0tLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJTXzA5MF8wMS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0jJworU0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gMTAwOworU0VUIEBAZ2xv YmFsLm11bHRpX3JhbmdlX2NvdW50ID0gREVGQVVMVDsKK1NFTEVDVCBAQGdsb2JhbC5tdWx0aV9y YW5nZV9jb3VudDsKK0BAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50CisyNTYKK1NFVCBAQHNlc3Np b24ubXVsdGlfcmFuZ2VfY291bnQgPSAyMDA7CitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2Nv dW50ID0gREVGQVVMVDsKK1NFTEVDVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitAQHNl c3Npb24ubXVsdGlfcmFuZ2VfY291bnQKKzI1NgorJyMtLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZ TlZBUlNfMDkwXzAyLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCitTRVQgQEBnbG9iYWwubXVs dGlfcmFuZ2VfY291bnQgPSBERUZBVUxUOworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2Nv dW50ID0gMjU2OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSAyNTYKKzEKK1NFVCBAQHNl c3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSBERUZBVUxUOworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0 aV9yYW5nZV9jb3VudCA9IDI1NjsKK0BAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IDI1Ngor MQorJyMtLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDkwXzAzLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSMnCitTRVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSAxOworU0VMRUNU IEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQK KzEKK1NFVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IDYwMDIwOworU0VMRUNUIEBAZ2xv YmFsLm11bHRpX3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzYwMDIw CitTRVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSA2NTUzNTsKK1NFTEVDVCBAQGdsb2Jh bC5tdWx0aV9yYW5nZV9jb3VudDsKK0BAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50Cis2NTUzNQor U0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gNDI5NDk2NzI5NTsKK1NFTEVDVCBAQGds b2JhbC5tdWx0aV9yYW5nZV9jb3VudDsKK0BAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50Cis0Mjk0 OTY3Mjk1CitTRVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSA0Mjk0OTY3Mjk0OworU0VM RUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291 bnQKKzQyOTQ5NjcyOTQKKycjLS0tLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJTXzA5MF8wNC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJworU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3Vu dCA9IDE7CitTRUxFQ1QgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworQEBzZXNzaW9uLm11 bHRpX3JhbmdlX2NvdW50CisxCitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gNTAw NTA7CitTRUxFQ1QgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworQEBzZXNzaW9uLm11bHRp X3JhbmdlX2NvdW50Cis1MDA1MAorU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IDY1 NTM1OworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK0BAc2Vzc2lvbi5tdWx0 aV9yYW5nZV9jb3VudAorNjU1MzUKK1NFVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSA0 Mjk0OTY3Mjk1OworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK0BAc2Vzc2lv bi5tdWx0aV9yYW5nZV9jb3VudAorNDI5NDk2NzI5NQorU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5n ZV9jb3VudCA9IDQyOTQ5NjcyOTQ7CitTRUxFQ1QgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50 OworQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50Cis0Mjk0OTY3Mjk0CisnIy0tLS0tLS0tLS0t LS0tLS0tLUZOX0RZTlZBUlNfMDkwXzA1LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJworU0VUIEBA Z2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gMDsKK1dhcm5pbmdzOgorV2FybmluZwkxMjkyCVRy dW5jYXRlZCBpbmNvcnJlY3QgbXVsdGlfcmFuZ2VfY291bnQgdmFsdWU6ICcwJworU0VMRUNUIEBA Z2xvYmFsLm11bHRpX3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzEK K1NFVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IDQyOTQ5NjcyOTY7CitXYXJuaW5nczoK K1dhcm5pbmcJMTI5MglUcnVuY2F0ZWQgaW5jb3JyZWN0IG11bHRpX3JhbmdlX2NvdW50IHZhbHVl OiAnNDI5NDk2NzI5NicKK1NFTEVDVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudDsKK0BAZ2xv YmFsLm11bHRpX3JhbmdlX2NvdW50Cis0Mjk0OTY3Mjk1CitTRVQgQEBnbG9iYWwubXVsdGlfcmFu Z2VfY291bnQgPSAtMTAyNDsKK1dhcm5pbmdzOgorV2FybmluZwkxMjkyCVRydW5jYXRlZCBpbmNv cnJlY3QgbXVsdGlfcmFuZ2VfY291bnQgdmFsdWU6ICcwJworU0VMRUNUIEBAZ2xvYmFsLm11bHRp X3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzEKK1NFVCBAQGdsb2Jh bC5tdWx0aV9yYW5nZV9jb3VudCA9IDQyOTQ5NjcyOTUwMDsKK1dhcm5pbmdzOgorV2FybmluZwkx MjkyCVRydW5jYXRlZCBpbmNvcnJlY3QgbXVsdGlfcmFuZ2VfY291bnQgdmFsdWU6ICc0Mjk0OTY3 Mjk1MDAnCitTRUxFQ1QgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQ7CitAQGdsb2JhbC5tdWx0 aV9yYW5nZV9jb3VudAorNDI5NDk2NzI5NQorU0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50 ID0gNjU1MzAuMzQ7CitFUlJPUiA0MjAwMDogSW5jb3JyZWN0IGFyZ3VtZW50IHR5cGUgdG8gdmFy aWFibGUgJ211bHRpX3JhbmdlX2NvdW50JworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2Nv dW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzQyOTQ5NjcyOTUKK1NFVCBAQGdsb2Jh bC5tdWx0aV9yYW5nZV9jb3VudCA9IHRlc3Q7CitFUlJPUiA0MjAwMDogSW5jb3JyZWN0IGFyZ3Vt ZW50IHR5cGUgdG8gdmFyaWFibGUgJ211bHRpX3JhbmdlX2NvdW50JworU0VMRUNUIEBAZ2xvYmFs Lm11bHRpX3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzQyOTQ5Njcy OTUKK1NFVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSAwOworV2FybmluZ3M6CitXYXJu aW5nCTEyOTIJVHJ1bmNhdGVkIGluY29ycmVjdCBtdWx0aV9yYW5nZV9jb3VudCB2YWx1ZTogJzAn CitTRUxFQ1QgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworQEBzZXNzaW9uLm11bHRpX3Jh bmdlX2NvdW50CisxCitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gNDI5NDk2NzI5 NjsKK1dhcm5pbmdzOgorV2FybmluZwkxMjkyCVRydW5jYXRlZCBpbmNvcnJlY3QgbXVsdGlfcmFu Z2VfY291bnQgdmFsdWU6ICc0Mjk0OTY3Mjk2JworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5n ZV9jb3VudDsKK0BAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudAorNDI5NDk2NzI5NQorU0VUIEBA c2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IC0xOworV2FybmluZ3M6CitXYXJuaW5nCTEyOTIJ VHJ1bmNhdGVkIGluY29ycmVjdCBtdWx0aV9yYW5nZV9jb3VudCB2YWx1ZTogJzAnCitTRUxFQ1Qg QEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50 CisxCitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gNjU1MzAuMzQuOworRVJST1Ig NDIwMDA6IFlvdSBoYXZlIGFuIGVycm9yIGluIHlvdXIgU1FMIHN5bnRheDsgY2hlY2sgdGhlIG1h bnVhbCB0aGF0IGNvcnJlc3BvbmRzIHRvIHlvdXIgTXlTUUwgc2VydmVyIHZlcnNpb24gZm9yIHRo ZSByaWdodCBzeW50YXggdG8gdXNlIG5lYXIgJy4nIGF0IGxpbmUgMQorU0VUIEBAc2Vzc2lvbi5t dWx0aV9yYW5nZV9jb3VudCA9IDQyOTQ5NjcyOTUwMjE7CitXYXJuaW5nczoKK1dhcm5pbmcJMTI5 MglUcnVuY2F0ZWQgaW5jb3JyZWN0IG11bHRpX3JhbmdlX2NvdW50IHZhbHVlOiAnNDI5NDk2NzI5 NTAyMScKK1NFTEVDVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitAQHNlc3Npb24ubXVs dGlfcmFuZ2VfY291bnQKKzQyOTQ5NjcyOTUKKydCdWcgIyAzNDgzNzogRXJyb3JzIGFyZSBub3Qg Y29taW5nIG9uIGFzc2lnbmluZyBpbnZhbGlkIHZhbHVlcyB0byB2YXJpYWJsZSc7CitTRVQgQEBz ZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gdGVzdDsKK0VSUk9SIDQyMDAwOiBJbmNvcnJlY3Qg YXJndW1lbnQgdHlwZSB0byB2YXJpYWJsZSAnbXVsdGlfcmFuZ2VfY291bnQnCitTRUxFQ1QgQEBz ZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50Cis0 Mjk0OTY3Mjk1CisnIy0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDkwXzA2LS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0jJworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gVkFS SUFCTEVfVkFMVUUgCitGUk9NIElORk9STUFUSU9OX1NDSEVNQS5HTE9CQUxfVkFSSUFCTEVTIAor V0hFUkUgVkFSSUFCTEVfTkFNRT0nbXVsdGlfcmFuZ2VfY291bnQnOworQEBnbG9iYWwubXVsdGlf cmFuZ2VfY291bnQgPSBWQVJJQUJMRV9WQUxVRQorMQorJyMtLS0tLS0tLS0tLS0tLS0tLS1GTl9E WU5WQVJTXzA5MF8wNy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKK1NFTEVDVCBAQHNlc3Npb24u bXVsdGlfcmFuZ2VfY291bnQgPSBWQVJJQUJMRV9WQUxVRSAKK0ZST00gSU5GT1JNQVRJT05fU0NI RU1BLlNFU1NJT05fVkFSSUFCTEVTIAorV0hFUkUgVkFSSUFCTEVfTkFNRT0nbXVsdGlfcmFuZ2Vf Y291bnQnOworQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gVkFSSUFCTEVfVkFMVUUKKzEK KycjLS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wOTBfMDgtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSMnCitTRVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSBUUlVFOworU0VMRUNUIEBA Z2xvYmFsLm11bHRpX3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzEK K1NFVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IEZBTFNFOworV2FybmluZ3M6CitXYXJu aW5nCTEyOTIJVHJ1bmNhdGVkIGluY29ycmVjdCBtdWx0aV9yYW5nZV9jb3VudCB2YWx1ZTogJzAn CitTRUxFQ1QgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQ7CitAQGdsb2JhbC5tdWx0aV9yYW5n ZV9jb3VudAorMQorJyMtLS0tLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJTXzA5MF8wOS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0jJworU0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gMTA7 CitTRUxFQ1QgQEBtdWx0aV9yYW5nZV9jb3VudCA9IEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50 OworQEBtdWx0aV9yYW5nZV9jb3VudCA9IEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50CiswCisn Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDkwXzEwLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSMnCitTRVQgQEBtdWx0aV9yYW5nZV9jb3VudCA9IDEwMDsKK1NFTEVDVCBAQG11bHRpX3Jh bmdlX2NvdW50ID0gQEBsb2NhbC5tdWx0aV9yYW5nZV9jb3VudDsKK0BAbXVsdGlfcmFuZ2VfY291 bnQgPSBAQGxvY2FsLm11bHRpX3JhbmdlX2NvdW50CisxCitTRUxFQ1QgQEBsb2NhbC5tdWx0aV9y YW5nZV9jb3VudCA9IEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK0BAbG9jYWwubXVsdGlf cmFuZ2VfY291bnQgPSBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQKKzEKKycjLS0tLS0tLS0t LS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wOTBfMTEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKK1NF VCBtdWx0aV9yYW5nZV9jb3VudCA9IDE7CitTRUxFQ1QgQEBtdWx0aV9yYW5nZV9jb3VudDsKK0BA bXVsdGlfcmFuZ2VfY291bnQKKzEKK1NFTEVDVCBsb2NhbC5tdWx0aV9yYW5nZV9jb3VudDsKK0VS Uk9SIDQyUzAyOiBVbmtub3duIHRhYmxlICdsb2NhbCcgaW4gZmllbGQgbGlzdAorU0VMRUNUIHNl c3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitFUlJPUiA0MlMwMjogVW5rbm93biB0YWJsZSAnc2Vz c2lvbicgaW4gZmllbGQgbGlzdAorU0VMRUNUIG11bHRpX3JhbmdlX2NvdW50ID0gQEBzZXNzaW9u Lm11bHRpX3JhbmdlX2NvdW50OworRVJST1IgNDJTMjI6IFVua25vd24gY29sdW1uICdtdWx0aV9y YW5nZV9jb3VudCcgaW4gJ2ZpZWxkIGxpc3QnCitTRVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291 bnQgPSBAc3RhcnRfZ2xvYmFsX3ZhbHVlOworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2Nv dW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzI1NgorU0VUIEBAc2Vzc2lvbi5tdWx0 aV9yYW5nZV9jb3VudCA9IEBzdGFydF9zZXNzaW9uX3ZhbHVlOworU0VMRUNUIEBAc2Vzc2lvbi5t dWx0aV9yYW5nZV9jb3VudDsKK0BAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudAorMjU2Cgo9PT0g YWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy9yL211bHRpX3JhbmdlX2NvdW50 X2Jhc2ljXzY0LnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy9yL211bHRp X3JhbmdlX2NvdW50X2Jhc2ljXzY0LnJlc3VsdAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisr KyBiL215c3FsLXRlc3Qvc3VpdGUvc3lzX3ZhcnMvci9tdWx0aV9yYW5nZV9jb3VudF9iYXNpY182 NC5yZXN1bHQJMjAwOC0wNy0yMyAxNDowNjo0NCArMDAwMApAQCAtMCwwICsxLDE4NCBAQAorU0VU IEBzdGFydF9nbG9iYWxfdmFsdWUgPSBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudDsKK1NFTEVD VCBAc3RhcnRfZ2xvYmFsX3ZhbHVlOworQHN0YXJ0X2dsb2JhbF92YWx1ZQorMjU2CitTRVQgQHN0 YXJ0X3Nlc3Npb25fdmFsdWUgPSBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitTRUxFQ1Qg QHN0YXJ0X3Nlc3Npb25fdmFsdWU7CitAc3RhcnRfc2Vzc2lvbl92YWx1ZQorMjU2CisnIy0tLS0t LS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wOTBfMDEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t IycKK1NFVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IDEwMDsKK1NFVCBAQGdsb2JhbC5t dWx0aV9yYW5nZV9jb3VudCA9IERFRkFVTFQ7CitTRUxFQ1QgQEBnbG9iYWwubXVsdGlfcmFuZ2Vf Y291bnQ7CitAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudAorMjU2CitTRVQgQEBzZXNzaW9uLm11 bHRpX3JhbmdlX2NvdW50ID0gMjAwOworU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9 IERFRkFVTFQ7CitTRUxFQ1QgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworQEBzZXNzaW9u Lm11bHRpX3JhbmdlX2NvdW50CisyNTYKKycjLS0tLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJT XzA5MF8wMi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJworU0VUIEBAZ2xvYmFsLm11bHRpX3Jh bmdlX2NvdW50ID0gREVGQVVMVDsKK1NFTEVDVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9 IDI1NjsKK0BAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gMjU2CisxCitTRVQgQEBzZXNzaW9u Lm11bHRpX3JhbmdlX2NvdW50ID0gREVGQVVMVDsKK1NFTEVDVCBAQHNlc3Npb24ubXVsdGlfcmFu Z2VfY291bnQgPSAyNTY7CitAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSAyNTYKKzEKKycj LS0tLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJTXzA5MF8wMy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0jJworU0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gMTsKK1NFTEVDVCBAQGds b2JhbC5tdWx0aV9yYW5nZV9jb3VudDsKK0BAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50CisxCitT RVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSA2MDAyMDsKK1NFTEVDVCBAQGdsb2JhbC5t dWx0aV9yYW5nZV9jb3VudDsKK0BAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50Cis2MDAyMAorU0VU IEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gNjU1MzU7CitTRUxFQ1QgQEBnbG9iYWwubXVs dGlfcmFuZ2VfY291bnQ7CitAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudAorNjU1MzUKK1NFVCBA QGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IDQyOTQ5NjcyOTU7CitTRUxFQ1QgQEBnbG9iYWwu bXVsdGlfcmFuZ2VfY291bnQ7CitAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudAorNDI5NDk2NzI5 NQorU0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gNDI5NDk2NzI5NDsKK1NFTEVDVCBA QGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudDsKK0BAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50Cis0 Mjk0OTY3Mjk0CisnIy0tLS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wOTBfMDQtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tIycKK1NFVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSAx OworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK0BAc2Vzc2lvbi5tdWx0aV9y YW5nZV9jb3VudAorMQorU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IDUwMDUwOwor U0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK0BAc2Vzc2lvbi5tdWx0aV9yYW5n ZV9jb3VudAorNTAwNTAKK1NFVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSA2NTUzNTsK K1NFTEVDVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitAQHNlc3Npb24ubXVsdGlfcmFu Z2VfY291bnQKKzY1NTM1CitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gNDI5NDk2 NzI5NTsKK1NFTEVDVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitAQHNlc3Npb24ubXVs dGlfcmFuZ2VfY291bnQKKzQyOTQ5NjcyOTUKK1NFVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291 bnQgPSA0Mjk0OTY3Mjk0OworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK0BA c2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudAorNDI5NDk2NzI5NAorJyMtLS0tLS0tLS0tLS0tLS0t LS1GTl9EWU5WQVJTXzA5MF8wNS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKK1NFVCBAQGdsb2Jh bC5tdWx0aV9yYW5nZV9jb3VudCA9IDA7CitXYXJuaW5nczoKK1dhcm5pbmcJMTI5MglUcnVuY2F0 ZWQgaW5jb3JyZWN0IG11bHRpX3JhbmdlX2NvdW50IHZhbHVlOiAnMCcKK1NFTEVDVCBAQGdsb2Jh bC5tdWx0aV9yYW5nZV9jb3VudDsKK0BAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50CisxCitTRVQg QEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSA0Mjk0OTY3Mjk2OworU0VMRUNUIEBAZ2xvYmFs Lm11bHRpX3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzQyOTQ5Njcy OTYKK1NFVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IC0xMDI0OworV2FybmluZ3M6CitX YXJuaW5nCTEyOTIJVHJ1bmNhdGVkIGluY29ycmVjdCBtdWx0aV9yYW5nZV9jb3VudCB2YWx1ZTog JzAnCitTRUxFQ1QgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQ7CitAQGdsb2JhbC5tdWx0aV9y YW5nZV9jb3VudAorMQorU0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gNDI5NDk2NzI5 NTAwOworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlf cmFuZ2VfY291bnQKKzQyOTQ5NjcyOTUwMAorU0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50 ID0gNjU1MzAuMzQ7CitFUlJPUiA0MjAwMDogSW5jb3JyZWN0IGFyZ3VtZW50IHR5cGUgdG8gdmFy aWFibGUgJ211bHRpX3JhbmdlX2NvdW50JworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2Nv dW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzQyOTQ5NjcyOTUwMAorU0VUIEBAZ2xv YmFsLm11bHRpX3JhbmdlX2NvdW50ID0gdGVzdDsKK0VSUk9SIDQyMDAwOiBJbmNvcnJlY3QgYXJn dW1lbnQgdHlwZSB0byB2YXJpYWJsZSAnbXVsdGlfcmFuZ2VfY291bnQnCitTRUxFQ1QgQEBnbG9i YWwubXVsdGlfcmFuZ2VfY291bnQ7CitAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudAorNDI5NDk2 NzI5NTAwCitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gMDsKK1dhcm5pbmdzOgor V2FybmluZwkxMjkyCVRydW5jYXRlZCBpbmNvcnJlY3QgbXVsdGlfcmFuZ2VfY291bnQgdmFsdWU6 ICcwJworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK0BAc2Vzc2lvbi5tdWx0 aV9yYW5nZV9jb3VudAorMQorU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IDQyOTQ5 NjcyOTY7CitTRUxFQ1QgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworQEBzZXNzaW9uLm11 bHRpX3JhbmdlX2NvdW50Cis0Mjk0OTY3Mjk2CitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2Nv dW50ID0gLTE7CitXYXJuaW5nczoKK1dhcm5pbmcJMTI5MglUcnVuY2F0ZWQgaW5jb3JyZWN0IG11 bHRpX3JhbmdlX2NvdW50IHZhbHVlOiAnMCcKK1NFTEVDVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2Vf Y291bnQ7CitAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQKKzEKK1NFVCBAQHNlc3Npb24ubXVs dGlfcmFuZ2VfY291bnQgPSA2NTUzMC4zNC47CitFUlJPUiA0MjAwMDogWW91IGhhdmUgYW4gZXJy b3IgaW4geW91ciBTUUwgc3ludGF4OyBjaGVjayB0aGUgbWFudWFsIHRoYXQgY29ycmVzcG9uZHMg dG8geW91ciBNeVNRTCBzZXJ2ZXIgdmVyc2lvbiBmb3IgdGhlIHJpZ2h0IHN5bnRheCB0byB1c2Ug bmVhciAnLicgYXQgbGluZSAxCitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gNDI5 NDk2NzI5NTAyMTsKK1NFTEVDVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitAQHNlc3Np b24ubXVsdGlfcmFuZ2VfY291bnQKKzQyOTQ5NjcyOTUwMjEKKydCdWcgIyAzNDgzNzogRXJyb3Jz IGFyZSBub3QgY29taW5nIG9uIGFzc2lnbmluZyBpbnZhbGlkIHZhbHVlcyB0byB2YXJpYWJsZSc7 CitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gdGVzdDsKK0VSUk9SIDQyMDAwOiBJ bmNvcnJlY3QgYXJndW1lbnQgdHlwZSB0byB2YXJpYWJsZSAnbXVsdGlfcmFuZ2VfY291bnQnCitT RUxFQ1QgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworQEBzZXNzaW9uLm11bHRpX3Jhbmdl X2NvdW50Cis0Mjk0OTY3Mjk1MDIxCisnIy0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDkw XzA2LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3Jhbmdl X2NvdW50ID0gVkFSSUFCTEVfVkFMVUUgCitGUk9NIElORk9STUFUSU9OX1NDSEVNQS5HTE9CQUxf VkFSSUFCTEVTIAorV0hFUkUgVkFSSUFCTEVfTkFNRT0nbXVsdGlfcmFuZ2VfY291bnQnOworQEBn bG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSBWQVJJQUJMRV9WQUxVRQorMQorJyMtLS0tLS0tLS0t LS0tLS0tLS1GTl9EWU5WQVJTXzA5MF8wNy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKK1NFTEVD VCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSBWQVJJQUJMRV9WQUxVRSAKK0ZST00gSU5G T1JNQVRJT05fU0NIRU1BLlNFU1NJT05fVkFSSUFCTEVTIAorV0hFUkUgVkFSSUFCTEVfTkFNRT0n bXVsdGlfcmFuZ2VfY291bnQnOworQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gVkFSSUFC TEVfVkFMVUUKKzEKKycjLS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wOTBfMDgtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSMnCitTRVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSBUUlVF OworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFu Z2VfY291bnQKKzEKK1NFVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IEZBTFNFOworV2Fy bmluZ3M6CitXYXJuaW5nCTEyOTIJVHJ1bmNhdGVkIGluY29ycmVjdCBtdWx0aV9yYW5nZV9jb3Vu dCB2YWx1ZTogJzAnCitTRUxFQ1QgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQ7CitAQGdsb2Jh bC5tdWx0aV9yYW5nZV9jb3VudAorMQorJyMtLS0tLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJT XzA5MF8wOS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJworU0VUIEBAZ2xvYmFsLm11bHRpX3Jhbmdl X2NvdW50ID0gMTA7CitTRUxFQ1QgQEBtdWx0aV9yYW5nZV9jb3VudCA9IEBAZ2xvYmFsLm11bHRp X3JhbmdlX2NvdW50OworQEBtdWx0aV9yYW5nZV9jb3VudCA9IEBAZ2xvYmFsLm11bHRpX3Jhbmdl X2NvdW50CiswCisnIy0tLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDkwXzEwLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSMnCitTRVQgQEBtdWx0aV9yYW5nZV9jb3VudCA9IDEwMDsKK1NFTEVD VCBAQG11bHRpX3JhbmdlX2NvdW50ID0gQEBsb2NhbC5tdWx0aV9yYW5nZV9jb3VudDsKK0BAbXVs dGlfcmFuZ2VfY291bnQgPSBAQGxvY2FsLm11bHRpX3JhbmdlX2NvdW50CisxCitTRUxFQ1QgQEBs b2NhbC5tdWx0aV9yYW5nZV9jb3VudCA9IEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK0BA bG9jYWwubXVsdGlfcmFuZ2VfY291bnQgPSBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQKKzEK KycjLS0tLS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wOTBfMTEtLS0tLS0tLS0tLS0tLS0t LS0tLS0tIycKK1NFVCBtdWx0aV9yYW5nZV9jb3VudCA9IDE7CitTRUxFQ1QgQEBtdWx0aV9yYW5n ZV9jb3VudDsKK0BAbXVsdGlfcmFuZ2VfY291bnQKKzEKK1NFTEVDVCBsb2NhbC5tdWx0aV9yYW5n ZV9jb3VudDsKK0VSUk9SIDQyUzAyOiBVbmtub3duIHRhYmxlICdsb2NhbCcgaW4gZmllbGQgbGlz dAorU0VMRUNUIHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitFUlJPUiA0MlMwMjogVW5rbm93 biB0YWJsZSAnc2Vzc2lvbicgaW4gZmllbGQgbGlzdAorU0VMRUNUIG11bHRpX3JhbmdlX2NvdW50 ID0gQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworRVJST1IgNDJTMjI6IFVua25vd24gY29s dW1uICdtdWx0aV9yYW5nZV9jb3VudCcgaW4gJ2ZpZWxkIGxpc3QnCitTRVQgQEBnbG9iYWwubXVs dGlfcmFuZ2VfY291bnQgPSBAc3RhcnRfZ2xvYmFsX3ZhbHVlOworU0VMRUNUIEBAZ2xvYmFsLm11 bHRpX3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzI1NgorU0VUIEBA c2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IEBzdGFydF9zZXNzaW9uX3ZhbHVlOworU0VMRUNU IEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK0BAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3Vu dAorMjU2Cgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy90L211bHRp X3JhbmdlX2NvdW50X2Jhc2ljXzMyLnRlc3QnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvc3lzX3Zh cnMvdC9tdWx0aV9yYW5nZV9jb3VudF9iYXNpY18zMi50ZXN0CTE5NzAtMDEtMDEgMDA6MDA6MDAg KzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy90L211bHRpX3JhbmdlX2NvdW50 X2Jhc2ljXzMyLnRlc3QJMjAwOC0wNy0yMyAxNDowNjo0NCArMDAwMApAQCAtMCwwICsxLDkgQEAK KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIENyZWF0ZWQgYnkgSG9yc3QgSHVuZ2VyICAgICAg MjAwOC0wNS0wNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMKKyMgV3JhcHBlciBmb3IgMzIgYml0IG1hY2hpbmVzICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCistLXNvdXJjZSBpbmNsdWRlL2hhdmVfMzJiaXQuaW5jCistLXNvdXJjZSBz dWl0ZS9zeXNfdmFycy9pbmMvbXVsdGlfcmFuZ2VfY291bnRfYmFzaWMuaW5jCisKCj09PSBhZGRl ZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL3N5c192YXJzL3QvbXVsdGlfcmFuZ2VfY291bnRfYmFz aWNfNjQudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy90L211bHRpX3Jhbmdl X2NvdW50X2Jhc2ljXzY0LnRlc3QJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9teXNx bC10ZXN0L3N1aXRlL3N5c192YXJzL3QvbXVsdGlfcmFuZ2VfY291bnRfYmFzaWNfNjQudGVzdAky MDA4LTA3LTIzIDE0OjA2OjQ0ICswMDAwCkBAIC0wLDAgKzEsOSBAQAorIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMgQ3JlYXRlZCBieSBIb3JzdCBIdW5nZXIgICAgICAyMDA4LTA1LTA3ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCisjICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IworIyBXcmFwcGVyIGZvciA2NCBiaXQgbWFjaGluZXMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKy0t c291cmNlIGluY2x1ZGUvaGF2ZV82NGJpdC5pbmMKKy0tc291cmNlIHN1aXRlL3N5c192YXJzL2lu Yy9tdWx0aV9yYW5nZV9jb3VudF9iYXNpYy5pbmMKKwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3Fs LXRlc3QvdC9mdW5jX2lmLnRlc3QnCi0tLSBhL215c3FsLXRlc3QvdC9mdW5jX2lmLnRlc3QJMjAw Ny0wMi0xMiAyMDo1OToyOSArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvZnVuY19pZi50ZXN0CTIw MDgtMDctMzAgMTE6MDc6MzcgKzAwMDAKQEAgLTEwOCwzICsxMDgsNDYgQEAgZHJvcCB0YWJsZSB0 MTsKIHNlbGVjdCBpZigwLCAxODQ0Njc0NDA3MzcwOTU1MTYxMCwgMTg0NDY3NDQwNzM3MDk1NTE2 MTApOwogCiAKKyMKKyMgQnVnICMzNzY2MjogbmVzdGVkIGlmKCkgaW5zaWRlIHN1bSgpIGlzIHBh cnNlZCBpbiBleHBvbmVudGlhbCB0aW1lCisjCisKK0NSRUFURSBUQUJMRSB0MShhIERFQ0lNQUwo MTAsMykpOworCisjIGNoZWNrIDogc2hvdWxkIGJlIGZhc3QuIG1vcmUgdGhhbiBmZXcgc2VjcyBt ZWFucyBmYWlsdXJlLgorU0VMRUNUIHQxLmEsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisg SUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYo KFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJP VU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5E KHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQx LmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEs Mik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9 MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSks IDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIs CisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisg SUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYo KFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJP VU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5E KHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQx LmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsMCkpKSkpKSkpKSkpKSkpKSkp KSkpKSkpKSkpKSkpKSArIDEKK0ZST00gdDE7CisKK0RST1AgVEFCTEUgdDE7CisKKy0tZWNobyBF bmQgb2YgNS4wIHRlc3RzCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC90L2luZm9ybWF0 aW9uX3NjaGVtYS1tYXN0ZXIub3B0JwotLS0gYS9teXNxbC10ZXN0L3QvaW5mb3JtYXRpb25fc2No ZW1hLW1hc3Rlci5vcHQJMjAwNy0xMS0zMCAwMzoyNjo1NyArMDAwMAorKysgYi9teXNxbC10ZXN0 L3QvaW5mb3JtYXRpb25fc2NoZW1hLW1hc3Rlci5vcHQJMjAwOC0wNy0yOSAxMDo0NTozOSArMDAw MApAQCAtNiw3ICs2LDYgQEAKIC0tbG9vc2Utc2tpcC1wbHVnaW4tZmFsY29uX3N5bmNvYmplY3Rz CiAtLWxvb3NlLXNraXAtcGx1Z2luLWZhbGNvbl9zeXN0ZW1fbWVtb3J5X2RldGFpbAogLS1sb29z ZS1za2lwLXBsdWdpbi1mYWxjb25fc3lzdGVtX21lbW9yeV9zdW1tYXJ5Ci0tLWxvb3NlLXNraXAt cGx1Z2luLWZhbGNvbl90YWJsZXMKIC0tbG9vc2Utc2tpcC1wbHVnaW4tZmFsY29uX3RyYW5zYWN0 aW9uX3N1bW1hcnkKIC0tbG9vc2Utc2tpcC1wbHVnaW4tZmFsY29uX3RyYW5zYWN0aW9ucwogLS1s b29zZS1za2lwLXBsdWdpbi1mYWxjb25fdmVyc2lvbgoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3Fs LXRlc3QvdC9pbmZvcm1hdGlvbl9zY2hlbWFfZGItbWFzdGVyLm9wdCcKLS0tIGEvbXlzcWwtdGVz dC90L2luZm9ybWF0aW9uX3NjaGVtYV9kYi1tYXN0ZXIub3B0CTIwMDctMTEtMzAgMDM6MjY6NTcg KzAwMDAKKysrIGIvbXlzcWwtdGVzdC90L2luZm9ybWF0aW9uX3NjaGVtYV9kYi1tYXN0ZXIub3B0 CTIwMDgtMDctMjkgMTA6NDU6MzkgKzAwMDAKQEAgLTYsNyArNiw2IEBACiAtLWxvb3NlLXNraXAt cGx1Z2luLWZhbGNvbl9zeW5jb2JqZWN0cwogLS1sb29zZS1za2lwLXBsdWdpbi1mYWxjb25fc3lz dGVtX21lbW9yeV9kZXRhaWwKIC0tbG9vc2Utc2tpcC1wbHVnaW4tZmFsY29uX3N5c3RlbV9tZW1v cnlfc3VtbWFyeQotLS1sb29zZS1za2lwLXBsdWdpbi1mYWxjb25fdGFibGVzCiAtLWxvb3NlLXNr aXAtcGx1Z2luLWZhbGNvbl90cmFuc2FjdGlvbl9zdW1tYXJ5CiAtLWxvb3NlLXNraXAtcGx1Z2lu LWZhbGNvbl90cmFuc2FjdGlvbnMKIC0tbG9vc2Utc2tpcC1wbHVnaW4tZmFsY29uX3ZlcnNpb24K Cj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0L3QvaW5ub2RiLWF1dG9pbmMtb3B0aW1pemUudGVz dCcKLS0tIGEvbXlzcWwtdGVzdC90L2lubm9kYi1hdXRvaW5jLW9wdGltaXplLnRlc3QJMTk3MC0w MS0wMSAwMDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvaW5ub2RiLWF1dG9pbmMtb3B0 aW1pemUudGVzdAkyMDA4LTA4LTEzIDA4OjE2OjM0ICswMDAwCkBAIC0wLDAgKzEsMTYgQEAKKy0t IHNvdXJjZSBpbmNsdWRlL2hhdmVfaW5ub2RiLmluYworIyBlbWJlZGRlZCBzZXJ2ZXIgaWdub3Jl cyAnZGVsYXllZCcsIHNvIHNraXAgdGhpcworLS0gc291cmNlIGluY2x1ZGUvbm90X2VtYmVkZGVk LmluYworCistLWRpc2FibGVfd2FybmluZ3MKK2Ryb3AgdGFibGUgaWYgZXhpc3RzIHQxOworLS1l bmFibGVfd2FybmluZ3MKKworIworIyBCdWcgMzQyODYKKyMKK2NyZWF0ZSB0YWJsZSB0MShhIGlu dCBub3QgbnVsbCBhdXRvX2luY3JlbWVudCBwcmltYXJ5IGtleSkgZW5naW5lPWlubm9kYjsKK2lu c2VydCBpbnRvIHQxIHNldCBhID0gLTE7CisjIE5PVEU6IFRoZSBkYXRhYmFzZSBuZWVkcyB0byBi ZSBzaHV0ZG93biBhbmQgcmVzdGFydGVkIChoZXJlKSBmb3IKKyMgdGhlIHRlc3QgdG8gd29yay4g SXQncyBpbmNsdWRlZCBmb3IgcmVmZXJlbmNlIG9ubHkuCitvcHRpbWl6ZSB0YWJsZSB0MTsKCj09 PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3QvbXlzcWxzaG93LW1hc3Rlci5vcHQnCi0tLSBh L215c3FsLXRlc3QvdC9teXNxbHNob3ctbWFzdGVyLm9wdAkyMDA3LTExLTMwIDAzOjI2OjU3ICsw MDAwCisrKyBiL215c3FsLXRlc3QvdC9teXNxbHNob3ctbWFzdGVyLm9wdAkyMDA4LTA3LTI5IDEw OjQ1OjM5ICswMDAwCkBAIC02LDcgKzYsNiBAQAogLS1sb29zZS1za2lwLXBsdWdpbi1mYWxjb25f c3luY29iamVjdHMKIC0tbG9vc2Utc2tpcC1wbHVnaW4tZmFsY29uX3N5c3RlbV9tZW1vcnlfZGV0 YWlsCiAtLWxvb3NlLXNraXAtcGx1Z2luLWZhbGNvbl9zeXN0ZW1fbWVtb3J5X3N1bW1hcnkKLS0t bG9vc2Utc2tpcC1wbHVnaW4tZmFsY29uX3RhYmxlcwogLS1sb29zZS1za2lwLXBsdWdpbi1mYWxj b25fdHJhbnNhY3Rpb25fc3VtbWFyeQogLS1sb29zZS1za2lwLXBsdWdpbi1mYWxjb25fdHJhbnNh Y3Rpb25zCiAtLWxvb3NlLXNraXAtcGx1Z2luLWZhbGNvbl92ZXJzaW9uCgo9PT0gbW9kaWZpZWQg ZmlsZSAnbXlzcWwtdGVzdC90L3BlcnJvci50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3QvcGVycm9y LnRlc3QJMjAwNi0wOC0wMSAwOToyOToxMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvcGVycm9y LnRlc3QJMjAwOC0wOC0wNSAyMzoyNjoxOCArMDAwMApAQCAtMTcsMyArMTcsMTcgQEAgZW5hYmxl X3F1ZXJ5X2xvZzsKICMgQXMgdGhlcmUgaXMgbm8gZXJyb3IgY29kZSBkZWZpbmVkIGZvciAxMDAw MCwgZXhwZWN0IGVycm9yCiAtLWVycm9yIDEKIC0tZXhlYyAkTVlfUEVSUk9SIDEwMDAwIDI+JjEK KworIworIyBCdWcjMTAxNDMgKFBlcnJvciBub3Qgc2hvd2luZyBlcnJvciBkZXNjcmlwdGlvbikK KyMKKworIyB0ZXN0IHJlcG9ydGVkIGNhc2UKKy0tZXhlYyAkTVlfUEVSUk9SIDEwNjIgMj4mMQor CisjIHRlc3QgZXJyb3JzIHRoYXQgY29udGFpbiBjaGFyYWN0ZXJzIHRvIGVzY2FwZSBpbiB0aGUg dGV4dC4KKy0tZXhlYyAkTVlfUEVSUk9SIDEwNzYgMj4mMQorLS1leGVjICRNWV9QRVJST1IgMTQ1 OSAyPiYxCistLWV4ZWMgJE1ZX1BFUlJPUiAxNDYxIDI+JjEKKworCgo9PT0gYWRkZWQgZmlsZSAn bXlzcWwtdGVzdC90L3NwLW5vLWNvZGUudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC90L3NwLW5vLWNv ZGUudGVzdAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215c3FsLXRlc3QvdC9zcC1u by1jb2RlLnRlc3QJMjAwOC0wNy0yNCAxNjo1MDoxOCArMDAwMApAQCAtMCwwICsxLDEyIEBACisj CisjIFRlc3QgdGhlIGRlYnVnZ2luZyBmZWF0dXJlICJzaG93IHByb2NlZHVyZS9mdW5jdGlvbiBj b2RlIDxuYW1lPiIgCisjCisKKy0tIHNvdXJjZSBpbmNsdWRlL2hhdmVfbm9kZWJ1Zy5pbmMKKwor LS1lcnJvciBFUl9GRUFUVVJFX0RJU0FCTEVECitzaG93IHByb2NlZHVyZSBjb2RlIGZvbzsKKwor LS1lcnJvciBFUl9GRUFUVVJFX0RJU0FCTEVECitzaG93IGZ1bmN0aW9uIGNvZGUgZm9vOworCgo9 PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC90L3N1YnNlbGVjdC50ZXN0JwotLS0gYS9teXNx bC10ZXN0L3Qvc3Vic2VsZWN0LnRlc3QJMjAwOC0wNy0xMCAyMzoyOToyNyArMDAwMAorKysgYi9t eXNxbC10ZXN0L3Qvc3Vic2VsZWN0LnRlc3QJMjAwOC0wNy0zMSAxMTozNzowNyArMDAwMApAQCAt MzQ0Myw3ICszNDQzLDIxIEBAIFNFTEVDVCAqIEZST00gdDIgV0hFUkUgYiBOT1QgSU4gKFNFTEVD VCAKIAogRFJPUCBUQUJMRSB0MSx0MjsKIAotLS1lY2hvIEVuZCBvZiA1LjAgdGVzdHMuCisKKyMK KyMgQnVnICMzODE5MTogU2VydmVyIGNyYXNoIHdpdGggc3VicXVlcnkgY29udGFpbmluZyBESVNU SU5DVCBhbmQgT1JERVIgQlkKKyMKKworQ1JFQVRFIFRBQkxFIHQxKHBrIGludCBQUklNQVJZIEtF WSwgYSBpbnQsIElOREVYIGlkeChhKSk7CitJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKDEsIDEwKSwg KDMsIDMwKSwgKDIsIDIwKTsKK0NSRUFURSBUQUJMRSB0MihwayBpbnQgUFJJTUFSWSBLRVksIGEg aW50LCBiIGludCwgSU5ERVggaWR4YShhKSk7CitJTlNFUlQgSU5UTyB0MiBWQUxVRVMgKDIsIDIw LCA3MDApLCAoMSwgMTAsIDIwMCksICg0LCAxMCwgMTAwKTsKK1NFTEVDVCAqIEZST00gdDEKKyAg IFdIRVJFIEVYSVNUUyAoU0VMRUNUIERJU1RJTkNUIGEgRlJPTSB0MiBXSEVSRSB0MS5hIDwgdDIu YSBPUkRFUiBCWSBiKTsKK0RST1AgVEFCTEUgdDEsdDI7CisKKy0tZWNobyBFbmQgb2YgNS4xIHRl c3RzLgorCiAKICMKICMgQnVnIzMzMjA0OiBJTlRPIGlzIGFsbG93ZWQgaW4gc3Vic2VsZWN0LCBj YXVzaW5nIGluY29uc2lzdGVudCByZXN1bHRzCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVz dC90L3ZhcmlhYmxlcy1tYXN0ZXIub3B0JwotLS0gYS9teXNxbC10ZXN0L3QvdmFyaWFibGVzLW1h c3Rlci5vcHQJMjAwNy0wOS0yOCAxOTo1MToyMyArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvdmFy aWFibGVzLW1hc3Rlci5vcHQJMjAwOC0wNy0yOSAxMDo0NTozOSArMDAwMApAQCAtNiw2ICs2LDUg QEAKIC0tbG9vc2Utc2tpcC1wbHVnaW4tZmFsY29uX3N5bmNvYmplY3RzCiAtLWxvb3NlLXNraXAt cGx1Z2luLWZhbGNvbl9zeXN0ZW1fbWVtb3J5X2RldGFpbAogLS1sb29zZS1za2lwLXBsdWdpbi1m YWxjb25fc3lzdGVtX21lbW9yeV9zdW1tYXJ5Ci0tLWxvb3NlLXNraXAtcGx1Z2luLWZhbGNvbl90 YWJsZXMKIC0tbG9vc2Utc2tpcC1wbHVnaW4tZmFsY29uX3RyYW5zYWN0aW9uX3N1bW1hcnkKIC0t bG9vc2Utc2tpcC1wbHVnaW4tZmFsY29uX3RyYW5zYWN0aW9ucwoKPT09IG1vZGlmaWVkIGZpbGUg J3NjcmlwdHMvbXlzcWxfc3lzdGVtX3RhYmxlc19maXguc3FsJwotLS0gYS9zY3JpcHRzL215c3Fs X3N5c3RlbV90YWJsZXNfZml4LnNxbAkyMDA4LTA3LTI0IDA3OjQ0OjIxICswMDAwCisrKyBiL3Nj cmlwdHMvbXlzcWxfc3lzdGVtX3RhYmxlc19maXguc3FsCTIwMDgtMDgtMDcgMDM6MDU6MzMgKzAw MDAKQEAgLTIxNiw2ICsyMTYsNTIgQEAgQUxURVIgVEFCTEUgZnVuYwogICBNT0RJRlkgdHlwZSBl bnVtICgnZnVuY3Rpb24nLCdhZ2dyZWdhdGUnKSBDT0xMQVRFIHV0ZjhfZ2VuZXJhbF9jaSBOT1Qg TlVMTDsKIAogIworIyBDb252ZXJ0IG1pc2NlbGxhbmVvdXMgdGFibGVzIHRvIFVURi04LgorIwor IyBUYWJsZXMgY29taW5nIGZyb20gYSBvbGQgdmVyc2lvbiBtaWdodCBoYXZlIHRoZSAzLWJ5dGUg VW5pY29kZQorIyBjaGFyYWN0ZXIgc2V0IGZvcm1lcmx5IGtub3duIGFzIHV0ZjguCisjCisKK0FM VEVSIFRBQkxFIGhlbHBfY2F0ZWdvcnkgQ09OVkVSVCBUTyBDSEFSQUNURVIgU0VUIHV0Zjg7CitB TFRFUiBUQUJMRSBoZWxwX2tleXdvcmQgQ09OVkVSVCBUTyBDSEFSQUNURVIgU0VUIHV0Zjg7CitB TFRFUiBUQUJMRSBoZWxwX3JlbGF0aW9uIENPTlZFUlQgVE8gQ0hBUkFDVEVSIFNFVCB1dGY4Owor QUxURVIgVEFCTEUgc2VydmVycyBDT05WRVJUIFRPIENIQVJBQ1RFUiBTRVQgdXRmODsKK0FMVEVS IFRBQkxFIHRpbWVfem9uZSBDT05WRVJUIFRPIENIQVJBQ1RFUiBTRVQgdXRmODsKK0FMVEVSIFRB QkxFIHRpbWVfem9uZV9sZWFwX3NlY29uZCBDT05WRVJUIFRPIENIQVJBQ1RFUiBTRVQgdXRmODsK K0FMVEVSIFRBQkxFIHRpbWVfem9uZV9uYW1lIENPTlZFUlQgVE8gQ0hBUkFDVEVSIFNFVCB1dGY4 OworQUxURVIgVEFCTEUgdGltZV96b25lX3RyYW5zaXRpb24gQ09OVkVSVCBUTyBDSEFSQUNURVIg U0VUIHV0Zjg7CitBTFRFUiBUQUJMRSB0aW1lX3pvbmVfdHJhbnNpdGlvbl90eXBlIENPTlZFUlQg VE8gQ0hBUkFDVEVSIFNFVCB1dGY4OworCisjIEJ1ZyMzMTI5MTogQXZvaWQgY29udmVyc2lvbiBm cm9tIHRleHQgdG8gbWVkaXVtdGV4dAorQUxURVIgVEFCTEUgaGVscF90b3BpYworICBNT0RJRlkg ZGVzY3JpcHRpb24gdGV4dCBOT1QgTlVMTCwKKyAgTU9ESUZZIGV4YW1wbGUgdGV4dCBOT1QgTlVM TCwKK0NPTlZFUlQgVE8gQ0hBUkFDVEVSIFNFVCB1dGY4OworCisjCisjIENvbnZlcnQgbG9nIHRh YmxlcyB0byBVVEYtOC4KKyMKKworU0VUIEBvbGRfbG9nX3N0YXRlID0gQEBnbG9iYWwuZ2VuZXJh bF9sb2c7CitTRVQgR0xPQkFMIGdlbmVyYWxfbG9nID0gJ09GRic7CitBTFRFUiBUQUJMRSBnZW5l cmFsX2xvZyBDT05WRVJUIFRPIENIQVJBQ1RFUiBTRVQgdXRmODsKK1NFVCBHTE9CQUwgZ2VuZXJh bF9sb2cgPSBAb2xkX2xvZ19zdGF0ZTsKKworU0VUIEBvbGRfbG9nX3N0YXRlID0gQEBnbG9iYWwu c2xvd19xdWVyeV9sb2c7CitTRVQgR0xPQkFMIHNsb3dfcXVlcnlfbG9nID0gJ09GRic7CitBTFRF UiBUQUJMRSBzbG93X2xvZyBDT05WRVJUIFRPIENIQVJBQ1RFUiBTRVQgdXRmODsKK1NFVCBHTE9C QUwgc2xvd19xdWVyeV9sb2cgPSBAb2xkX2xvZ19zdGF0ZTsKKworIworIyBDb252ZXJ0IHBsdWdp biB0YWJsZSB0byBVVEYtOCB3aXRoIGJpbmFyeSBjb2xsYXRpb24uCisjCisKK0FMVEVSIFRBQkxF IHBsdWdpbgorICBNT0RJRlkgbmFtZSBjaGFyKDY0KSBDT0xMQVRFIHV0ZjhfYmluIE5PVCBOVUxM IERFRkFVTFQgJycsCisgIE1PRElGWSBkbCBjaGFyKDEyOCkgQ09MTEFURSB1dGY4X2JpbiBOT1Qg TlVMTCBERUZBVUxUICcnLAorICBDT05WRVJUIFRPIENIQVJBQ1RFUiBTRVQgdXRmOCBDT0xMQVRF IHV0ZjhfYmluOworCisjCiAjIERldGVjdCB3aGV0aGVyIHdlIGhhZCBDcmVhdGVfdmlld19wcml2 CiAjCiBTRVQgQGhhZENyZWF0ZVZpZXdQcml2Oj0wOwpAQCAtNDMxLDYgKzQ3NywxMyBAQCBBTFRF UiBUQUJMRSBkYiBNT0RJRlkgRXZlbnRfcHJpdiBlbnVtKCdOCiAjCiAjIEVWRU5UIHRhYmxlCiAj CisKKyMKKyMgV0FSTklORzogQmV3YXJlIHRoYXQgc29tZSBjb2x1bW5zIGFyZSBhZGRlZCBhbmQg bW9kaWZpZWQgbXVsdGlwbGUKKyMgdGltZXMuIFdoZXRoZXIgYWRkaW5nIG9yIG1vZGlmeWluZyB0 aGUgY29sdW1uLCBpdCdzIHNwZWNpZmljYXRpb24KKyMgc2hvdWxkIGFsd2F5cyBiZSB0aGUgc2Ft ZS4KKyMKKwogQUxURVIgVEFCTEUgZXZlbnQgRFJPUCBQUklNQVJZIEtFWTsKIEFMVEVSIFRBQkxF IGV2ZW50IEFERCBQUklNQVJZIEtFWShkYiwgbmFtZSk7CiAjIEFkZCBzcWxfbW9kZSBjb2x1bW4g anVzdCBpbiBjYXNlLgpAQCAtNDk5LDYgKzU1MiwyMCBAQCBBTFRFUiBUQUJMRSBldmVudCBBREQg Ym9keV91dGY4IGxvbmdibG9iCiAgICAgICAgICAgICAgICAgICAgICAgQUZURVIgZGJfY29sbGF0 aW9uOwogQUxURVIgVEFCTEUgZXZlbnQgTU9ESUZZIGJvZHlfdXRmOCBsb25nYmxvYiBERUZBVUxU IE5VTEw7CiAKKyMKKyMgQ29udmVydCBldmVudCB0YWJsZSB0byBVVEYtOCB3aXRoIGJpbmFyeSBj b2xsYXRpb24uCisjCisKK0FMVEVSIFRBQkxFIGV2ZW50CisgIENPTlZFUlQgVE8gQ0hBUkFDVEVS IFNFVCB1dGY4OworQUxURVIgVEFCTEUgZXZlbnQKKyAgTU9ESUZZIHRpbWVfem9uZSBjaGFyKDY0 KSBDSEFSQUNURVIgU0VUIGxhdGluMSBOT1QgTlVMTCBERUZBVUxUICdTWVNURU0nLAorICBNT0RJ RlkgZGIgY2hhcig2NCkgQ0hBUkFDVEVSIFNFVCB1dGY4IENPTExBVEUgdXRmOF9iaW4gTk9UIE5V TEwgREVGQVVMVCAnJywKKyAgTU9ESUZZIGRlZmluZXIgY2hhcig3NykgQ0hBUkFDVEVSIFNFVCB1 dGY4IENPTExBVEUgdXRmOF9iaW4gTk9UIE5VTEwgREVGQVVMVCAnJywKKyAgTU9ESUZZIGNvbW1l bnQgY2hhcig2NCkgQ0hBUkFDVEVSIFNFVCB1dGY4IENPTExBVEUgdXRmOF9iaW4gTk9UIE5VTEwg REVGQVVMVCAnJywKKyAgTU9ESUZZIGNoYXJhY3Rlcl9zZXRfY2xpZW50IGNoYXIoMzIpIENIQVJB Q1RFUiBTRVQgdXRmOCBDT0xMQVRFIHV0ZjhfYmluIERFRkFVTFQgTlVMTCwKKyAgTU9ESUZZIGNv bGxhdGlvbl9jb25uZWN0aW9uIGNoYXIoMzIpIENIQVJBQ1RFUiBTRVQgdXRmOCBDT0xMQVRFIHV0 ZjhfYmluIERFRkFVTFQgTlVMTCwKKyAgTU9ESUZZIGRiX2NvbGxhdGlvbiBjaGFyKDMyKSBDSEFS QUNURVIgU0VUIHV0ZjggQ09MTEFURSB1dGY4X2JpbiBERUZBVUxUIE5VTEw7CiAKICMKICMgVFJJ R0dFUiBwcml2aWxlZ2UKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvZmllbGQuaCcKLS0tIGEvc3Fs L2ZpZWxkLmgJMjAwOC0wNy0yMSAwMzo1NTowOSArMDAwMAorKysgYi9zcWwvZmllbGQuaAkyMDA4 LTA4LTAxIDE1OjM4OjA1ICswMDAwCkBAIC0xMyw3ICsxMyw2IEBACiAgICBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogICAgRm91bmRh dGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTEx LTEzMDcgIFVTQSAqLwogCi0KIC8qCiAgIEJlY2F1c2Ugb2YgdGhlIGZ1bmN0aW9uIG5ld19maWVs ZCgpIGFsbCBmaWVsZCBjbGFzc2VzIHRoYXQgaGF2ZSBzdGF0aWMKICAgdmFyaWFibGVzIG11c3Qg ZGVjbGFyZSB0aGUgc2l6ZV9vZigpIG1lbWJlciBmdW5jdGlvbi4KQEAgLTUwLDcgKzQ5LDggQEAg Y2xhc3MgRmllbGQKICAgRmllbGQoY29uc3QgSXRlbSAmKTsJCQkJLyogUHJldmVudCB1c2Ugb2Yg dGhlc2UgKi8KICAgdm9pZCBvcGVyYXRvcj0oRmllbGQgJik7CiBwdWJsaWM6Ci0gIHN0YXRpYyB2 b2lkICpvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUpIHtyZXR1cm4gc3FsX2FsbG9jKHNpemUpOyB9 CisgIHN0YXRpYyB2b2lkICpvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUpIHRocm93ICgpCisgIHsg cmV0dXJuIHNxbF9hbGxvYyhzaXplKTsgfQogICBzdGF0aWMgdm9pZCBvcGVyYXRvciBkZWxldGUo dm9pZCAqcHRyX2FyZywgc2l6ZV90IHNpemUpIHsgVFJBU0gocHRyX2FyZywgc2l6ZSk7IH0KIAog ICB1Y2hhcgkJKnB0cjsJCQkvLyBQb3NpdGlvbiB0byBmaWVsZCBpbiByZWNvcmQKQEAgLTE3MjAs NiArMTcyMCw3IEBAIHB1YmxpYzoKICAgfQogICBpbnQgcmVzZXQodm9pZCkgeyBiemVybyhwdHIs IHBhY2tsZW5ndGgrc2l6ZW9mKHVjaGFyKikpOyByZXR1cm4gMDsgfQogICB2b2lkIHJlc2V0X2Zp ZWxkcygpIHsgYnplcm8oKHVjaGFyKikgJnZhbHVlLHNpemVvZih2YWx1ZSkpOyB9CisgIHVpbnQz MiBnZXRfZmllbGRfYnVmZmVyX3NpemUodm9pZCkgeyByZXR1cm4gdmFsdWUuYWxsb2NlZF9sZW5n dGgoKTsgfQogI2lmbmRlZiBXT1JEU19CSUdFTkRJQU4KICAgc3RhdGljCiAjZW5kaWYKCj09PSBt b2RpZmllZCBmaWxlICdzcWwvaXRlbS5jYycKLS0tIGEvc3FsL2l0ZW0uY2MJMjAwOC0wNy0yNCAx MDowMDo1NiArMDAwMAorKysgYi9zcWwvaXRlbS5jYwkyMDA4LTA4LTA3IDAzOjA1OjMzICswMDAw CkBAIC00MzYsOCArNDM2LDExIEBAIHVpbnQgSXRlbTo6ZGVjaW1hbF9wcmVjaXNpb24oKSBjb25z dAogICBJdGVtX3Jlc3VsdCByZXN0eXBlPSByZXN1bHRfdHlwZSgpOwogCiAgIGlmICgocmVzdHlw ZSA9PSBERUNJTUFMX1JFU1VMVCkgfHwgKHJlc3R5cGUgPT0gSU5UX1JFU1VMVCkpCi0gICAgcmV0 dXJuIG1pbihteV9kZWNpbWFsX2xlbmd0aF90b19wcmVjaXNpb24obWF4X2xlbmd0aCwgZGVjaW1h bHMsIHVuc2lnbmVkX2ZsYWcpLAotICAgICAgICAgICAgICAgREVDSU1BTF9NQVhfUFJFQ0lTSU9O KTsKKyAgeworICAgIHVpbnQgcHJlYz0gCisgICAgICBteV9kZWNpbWFsX2xlbmd0aF90b19wcmVj aXNpb24obWF4X2xlbmd0aCwgZGVjaW1hbHMsIHVuc2lnbmVkX2ZsYWcpOworICAgIHJldHVybiBt aW4ocHJlYywgREVDSU1BTF9NQVhfUFJFQ0lTSU9OKTsKKyAgfQogICByZXR1cm4gbWluKG1heF9s ZW5ndGgsIERFQ0lNQUxfTUFYX1BSRUNJU0lPTik7CiB9CiAKQEAgLTcwMjgsOCArNzAzMSw5IEBA IGJvb2wgSXRlbV90eXBlX2hvbGRlcjo6am9pbl90eXBlcyhUSEQgKnQKICAgaWYgKEZpZWxkOjpy ZXN1bHRfbWVyZ2VfdHlwZShmbGRfdHlwZSkgPT0gREVDSU1BTF9SRVNVTFQpCiAgIHsKICAgICBk ZWNpbWFscz0gbWluKG1heChkZWNpbWFscywgaXRlbS0+ZGVjaW1hbHMpLCBERUNJTUFMX01BWF9T Q0FMRSk7Ci0gICAgaW50IHByZWNpc2lvbj0gbWluKG1heChwcmV2X2RlY2ltYWxfaW50X3BhcnQs IGl0ZW0tPmRlY2ltYWxfaW50X3BhcnQoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgKyBkZWNp bWFscywgREVDSU1BTF9NQVhfUFJFQ0lTSU9OKTsKKyAgICBpbnQgaXRlbV9pbnRfcGFydD0gaXRl bS0+ZGVjaW1hbF9pbnRfcGFydCgpOworICAgIGludCBpdGVtX3ByZWMgPSBtYXgocHJldl9kZWNp bWFsX2ludF9wYXJ0LCBpdGVtX2ludF9wYXJ0KSArIGRlY2ltYWxzOworICAgIGludCBwcmVjaXNp b249IG1pbihpdGVtX3ByZWMsIERFQ0lNQUxfTUFYX1BSRUNJU0lPTik7CiAgICAgdW5zaWduZWRf ZmxhZyY9IGl0ZW0tPnVuc2lnbmVkX2ZsYWc7CiAgICAgbWF4X2xlbmd0aD0gbXlfZGVjaW1hbF9w cmVjaXNpb25fdG9fbGVuZ3RoKHByZWNpc2lvbiwgZGVjaW1hbHMsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkX2ZsYWcpOwoKPT09IG1vZGlm aWVkIGZpbGUgJ3NxbC9pdGVtLmgnCi0tLSBhL3NxbC9pdGVtLmgJMjAwOC0wNi0xNyAyMDowNDox OSArMDAwMAorKysgYi9zcWwvaXRlbS5oCTIwMDgtMDgtMDEgMTU6Mzg6MDUgKzAwMDAKQEAgLTQ3 Miw5ICs0NzIsOSBAQCBjbGFzcyBJdGVtCiAgIHZpcnR1YWwgYm9vbCBpc19leHBlbnNpdmVfcHJv Y2Vzc29yKHVjaGFyICphcmcpIHsgcmV0dXJuIDA7IH0KIAogcHVibGljOgotICBzdGF0aWMgdm9p ZCAqb3BlcmF0b3IgbmV3KHNpemVfdCBzaXplKQorICBzdGF0aWMgdm9pZCAqb3BlcmF0b3IgbmV3 KHNpemVfdCBzaXplKSB0aHJvdyAoKQogICB7IHJldHVybiBzcWxfYWxsb2Moc2l6ZSk7IH0KLSAg c3RhdGljIHZvaWQgKm9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSwgTUVNX1JPT1QgKm1lbV9yb290 KQorICBzdGF0aWMgdm9pZCAqb3BlcmF0b3IgbmV3KHNpemVfdCBzaXplLCBNRU1fUk9PVCAqbWVt X3Jvb3QpIHRocm93ICgpCiAgIHsgcmV0dXJuIGFsbG9jX3Jvb3QobWVtX3Jvb3QsIHNpemUpOyB9 CiAgIHN0YXRpYyB2b2lkIG9wZXJhdG9yIGRlbGV0ZSh2b2lkICpwdHIsc2l6ZV90IHNpemUpIHsg VFJBU0gocHRyLCBzaXplKTsgfQogICBzdGF0aWMgdm9pZCBvcGVyYXRvciBkZWxldGUodm9pZCAq cHRyLCBNRU1fUk9PVCAqbWVtX3Jvb3QpIHt9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL2l0ZW1f Y21wZnVuYy5jYycKLS0tIGEvc3FsL2l0ZW1fY21wZnVuYy5jYwkyMDA4LTA3LTE1IDEyOjE3OjAx ICswMDAwCisrKyBiL3NxbC9pdGVtX2NtcGZ1bmMuY2MJMjAwOC0wNy0zMSAxMTozNzowNyArMDAw MApAQCAtMjIyNyw4ICsyMjI3LDExIEBAIEl0ZW1fZnVuY19pZm51bGw6OmZpeF9sZW5ndGhfYW5k X2RlYygpCiAKIHVpbnQgSXRlbV9mdW5jX2lmbnVsbDo6ZGVjaW1hbF9wcmVjaXNpb24oKSBjb25z dAogewotICBpbnQgbWF4X2ludF9wYXJ0PW1heChhcmdzWzBdLT5kZWNpbWFsX2ludF9wYXJ0KCks YXJnc1sxXS0+ZGVjaW1hbF9pbnRfcGFydCgpKTsKLSAgcmV0dXJuIG1pbihtYXhfaW50X3BhcnQg KyBkZWNpbWFscywgREVDSU1BTF9NQVhfUFJFQ0lTSU9OKTsKKyAgaW50IGFyZzBfaW50X3BhcnQ9 IGFyZ3NbMF0tPmRlY2ltYWxfaW50X3BhcnQoKTsKKyAgaW50IGFyZzFfaW50X3BhcnQ9IGFyZ3Nb MV0tPmRlY2ltYWxfaW50X3BhcnQoKTsKKyAgaW50IG1heF9pbnRfcGFydD0gbWF4KGFyZzBfaW50 X3BhcnQsIGFyZzFfaW50X3BhcnQpOworICBpbnQgcHJlY2lzaW9uPSBtYXhfaW50X3BhcnQgKyBk ZWNpbWFsczsKKyAgcmV0dXJuIG1pbihwcmVjaXNpb24sIERFQ0lNQUxfTUFYX1BSRUNJU0lPTik7 CiB9CiAKIApAQCAtMjQwOSw4ICsyNDEyLDkgQEAgSXRlbV9mdW5jX2lmOjpmaXhfbGVuZ3RoX2Fu ZF9kZWMoKQogCiB1aW50IEl0ZW1fZnVuY19pZjo6ZGVjaW1hbF9wcmVjaXNpb24oKSBjb25zdAog ewotICBpbnQgcHJlY2lzaW9uPShtYXgoYXJnc1sxXS0+ZGVjaW1hbF9pbnRfcGFydCgpLGFyZ3Nb Ml0tPmRlY2ltYWxfaW50X3BhcnQoKSkrCi0gICAgICAgICAgICAgICAgIGRlY2ltYWxzKTsKKyAg aW50IGFyZzFfcHJlYz0gYXJnc1sxXS0+ZGVjaW1hbF9pbnRfcGFydCgpOworICBpbnQgYXJnMl9w cmVjPSBhcmdzWzJdLT5kZWNpbWFsX2ludF9wYXJ0KCk7CisgIGludCBwcmVjaXNpb249bWF4KGFy ZzFfcHJlYyxhcmcyX3ByZWMpICsgZGVjaW1hbHM7CiAgIHJldHVybiBtaW4ocHJlY2lzaW9uLCBE RUNJTUFMX01BWF9QUkVDSVNJT04pOwogfQogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL2l0ZW1f ZnVuYy5jYycKLS0tIGEvc3FsL2l0ZW1fZnVuYy5jYwkyMDA4LTA3LTI0IDEwOjAwOjU2ICswMDAw CisrKyBiL3NxbC9pdGVtX2Z1bmMuY2MJMjAwOC0wOC0wNyAwMzowNTozMyArMDAwMApAQCAtMTE1 Niw5ICsxMTU2LDEwIEBAIG15X2RlY2ltYWwgKkl0ZW1fZnVuY19wbHVzOjpkZWNpbWFsX29wKG0K IHZvaWQgSXRlbV9mdW5jX2FkZGl0aXZlX29wOjpyZXN1bHRfcHJlY2lzaW9uKCkKIHsKICAgZGVj aW1hbHM9IG1heChhcmdzWzBdLT5kZWNpbWFscywgYXJnc1sxXS0+ZGVjaW1hbHMpOwotICBpbnQg bWF4X2ludF9wYXJ0PSBtYXgoYXJnc1swXS0+ZGVjaW1hbF9wcmVjaXNpb24oKSAtIGFyZ3NbMF0t PmRlY2ltYWxzLAotICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1sxXS0+ZGVjaW1hbF9wcmVj aXNpb24oKSAtIGFyZ3NbMV0tPmRlY2ltYWxzKTsKLSAgaW50IHByZWNpc2lvbj0gbWluKG1heF9p bnRfcGFydCArIDEgKyBkZWNpbWFscywgREVDSU1BTF9NQVhfUFJFQ0lTSU9OKTsKKyAgaW50IGFy ZzFfaW50PSBhcmdzWzBdLT5kZWNpbWFsX3ByZWNpc2lvbigpIC0gYXJnc1swXS0+ZGVjaW1hbHM7 CisgIGludCBhcmcyX2ludD0gYXJnc1sxXS0+ZGVjaW1hbF9wcmVjaXNpb24oKSAtIGFyZ3NbMV0t PmRlY2ltYWxzOworICBpbnQgZXN0X3ByZWM9IG1heChhcmcxX2ludCwgYXJnMl9pbnQpICsgMSAr IGRlY2ltYWxzOworICBpbnQgcHJlY2lzaW9uPSBtaW4oZXN0X3ByZWMsIERFQ0lNQUxfTUFYX1BS RUNJU0lPTik7CiAKICAgLyogSW50ZWdlciBvcGVyYXRpb25zIGtlZXAgdW5zaWduZWRfZmxhZyBp ZiBvbmUgb2YgYXJndW1lbnRzIGlzIHVuc2lnbmVkICovCiAgIGlmIChyZXN1bHRfdHlwZSgpID09 IElOVF9SRVNVTFQpCkBAIC0xMjY5LDggKzEyNzAsOCBAQCB2b2lkIEl0ZW1fZnVuY19tdWw6OnJl c3VsdF9wcmVjaXNpb24oKQogICBlbHNlCiAgICAgdW5zaWduZWRfZmxhZz0gYXJnc1swXS0+dW5z aWduZWRfZmxhZyAmIGFyZ3NbMV0tPnVuc2lnbmVkX2ZsYWc7CiAgIGRlY2ltYWxzPSBtaW4oYXJn c1swXS0+ZGVjaW1hbHMgKyBhcmdzWzFdLT5kZWNpbWFscywgREVDSU1BTF9NQVhfU0NBTEUpOwot ICBpbnQgcHJlY2lzaW9uPSBtaW4oYXJnc1swXS0+ZGVjaW1hbF9wcmVjaXNpb24oKSArIGFyZ3Nb MV0tPmRlY2ltYWxfcHJlY2lzaW9uKCksCi0gICAgICAgICAgICAgICAgICAgICBERUNJTUFMX01B WF9QUkVDSVNJT04pOworICB1aW50IGVzdF9wcmVjID0gYXJnc1swXS0+ZGVjaW1hbF9wcmVjaXNp b24oKSArIGFyZ3NbMV0tPmRlY2ltYWxfcHJlY2lzaW9uKCk7CisgIHVpbnQgcHJlY2lzaW9uPSBt aW4oZXN0X3ByZWMsIERFQ0lNQUxfTUFYX1BSRUNJU0lPTik7CiAgIG1heF9sZW5ndGg9IG15X2Rl Y2ltYWxfcHJlY2lzaW9uX3RvX2xlbmd0aChwcmVjaXNpb24sIGRlY2ltYWxzLHVuc2lnbmVkX2Zs YWcpOwogfQogCkBAIC0xMzE3LDggKzEzMTgsOCBAQCBteV9kZWNpbWFsICpJdGVtX2Z1bmNfZGl2 OjpkZWNpbWFsX29wKG15CiAKIHZvaWQgSXRlbV9mdW5jX2Rpdjo6cmVzdWx0X3ByZWNpc2lvbigp CiB7Ci0gIHVpbnQgcHJlY2lzaW9uPW1pbihhcmdzWzBdLT5kZWNpbWFsX3ByZWNpc2lvbigpICsg cHJlY19pbmNyZW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICBERUNJTUFMX01BWF9QUkVDSVNJ T04pOworICB1aW50IGFyZ19wcmVjPSBhcmdzWzBdLT5kZWNpbWFsX3ByZWNpc2lvbigpICsgcHJl Y19pbmNyZW1lbnQ7CisgIHVpbnQgcHJlY2lzaW9uPW1pbihhcmdfcHJlYywgREVDSU1BTF9NQVhf UFJFQ0lTSU9OKTsKICAgLyogSW50ZWdlciBvcGVyYXRpb25zIGtlZXAgdW5zaWduZWRfZmxhZyBp ZiBvbmUgb2YgYXJndW1lbnRzIGlzIHVuc2lnbmVkICovCiAgIGlmIChyZXN1bHRfdHlwZSgpID09 IElOVF9SRVNVTFQpCiAgICAgdW5zaWduZWRfZmxhZz0gYXJnc1swXS0+dW5zaWduZWRfZmxhZyB8 IGFyZ3NbMV0tPnVuc2lnbmVkX2ZsYWc7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL215c3FsX3By aXYuaCcKLS0tIGEvc3FsL215c3FsX3ByaXYuaAkyMDA4LTA3LTI2IDE2OjM4OjIwICswMDAwCisr KyBiL3NxbC9teXNxbF9wcml2LmgJMjAwOC0wOC0wNyAwMzowNTozMyArMDAwMApAQCAtMjIzMyw2 ICsyMjMzLDcgQEAgaW50IHdyaXRlZnJtKGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IHVjaAogaW50 IGNsb3NlZnJtKFRBQkxFICp0YWJsZSwgYm9vbCBmcmVlX3NoYXJlKTsKIGludCByZWFkX3N0cmlu ZyhGaWxlIGZpbGUsIHVjaGFyKiAqdG8sIHNpemVfdCBsZW5ndGgpOwogdm9pZCBmcmVlX2Jsb2Jz KFRBQkxFICp0YWJsZSk7Cit2b2lkIGZyZWVfZmllbGRfYnVmZmVyc19sYXJnZXJfdGhhbihUQUJM RSAqdGFibGUsIHVpbnQzMiBzaXplKTsKIGludCBzZXRfem9uZShpbnQgbnIsaW50IG1pbl96b25l LGludCBtYXhfem9uZSk7CiB1bG9uZyBjb252ZXJ0X3BlcmlvZF90b19tb250aCh1bG9uZyBwZXJp b2QpOwogdWxvbmcgY29udmVydF9tb250aF90b19wZXJpb2QodWxvbmcgbW9udGgpOwoKPT09IG1v ZGlmaWVkIGZpbGUgJ3NxbC9wcm9iZXMuaCcKLS0tIGEvc3FsL3Byb2Jlcy5oCTIwMDctMDktMjEg MDc6MDk6MzEgKzAwMDAKKysrIGIvc3FsL3Byb2Jlcy5oCTIwMDgtMDctMDggMTM6NDk6NTcgKzAw MDAKQEAgLTExLDcgKzExLDcgQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKLSNpZiBfRFRSQUNF X1ZFUlNJT04KKyNpZiBfRFRSQUNFX1ZFUlNJT04gJiYgZGVmaW5lZChIQVZFX0RUUkFDRSkKIAog I2RlZmluZQlNWVNRTF9ERUxFVEVfRU5EKCkgXAogCV9fZHRyYWNlX215c3FsX19fZGVsZXRlX2Vu ZCgpCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NoYXJlL2Vycm1zZy50eHQnCi0tLSBhL3NxbC9z aGFyZS9lcnJtc2cudHh0CTIwMDgtMDctMTggMTM6MzA6NTMgKzAwMDAKKysrIGIvc3FsL3NoYXJl L2Vycm1zZy50eHQJMjAwOC0wOC0wNiAxNDozOTowMyArMDAwMApAQCAtNDcxOCw3ICs0NzE4LDcg QEAgRVJfU0xBVkVfSUdOT1JFRF9UQUJMRSAgCiAgICAgICAgIHN3ZSAiU2xhdiBTUUwgdHLvv71k ZW4gaWdub3JlcmFkZSBmcu+/vWdhbiBwZ2EgZW4gcmVwbGljYXRlLSotdGFibGUgcmVnZWwiCiBF Ul9JTkNPUlJFQ1RfR0xPQkFMX0xPQ0FMX1ZBUiAgCiAgICAgICAgIGVuZyAiVmFyaWFibGUgJyUt LjE5MnMnIGlzIGEgJXMgdmFyaWFibGUiCi0gICAgICAgIHNlcmJpYW4gIkluY29ycmVjdCBmb3Jl aWduIGtleSBkZWZpbml0aW9uIGZvciAnJS0uMTkycyc6ICVzIgorICAgICAgICBzZXJiaWFuICJQ cm9tZW5saml2YSAnJS0uMTkycycgamUgJXMgcHJvbWVubGppdmEiCiAgICAgICAgIGdlciAiVmFy aWFibGUgJyUtLjE5MnMnIGlzdCBlaW5lICVzLVZhcmlhYmxlIgogICAgICAgICBubGEgIlZhcmlh YmVsZSAnJS0uMTkycycgaXMgZ2VlbiAlcyB2YXJpYWJlbGUiCiAgICAgICAgIHNwYSAiVmFyaWFi bGUgJyUtLjE5MnMnIGVzIHVuYSAlcyB2YXJpYWJsZSIKCj09PSBtb2RpZmllZCBmaWxlICdzcWwv c3BfaGVhZC5jYycKLS0tIGEvc3FsL3NwX2hlYWQuY2MJMjAwOC0wNy0yNSAxNzoyMTo1NSArMDAw MAorKysgYi9zcWwvc3BfaGVhZC5jYwkyMDA4LTA4LTA3IDE4OjM3OjU1ICswMDAwCkBAIC00Njgs NyArNDY4LDcgQEAgc3BfaGVhZDo6b3BlcmF0b3IgbmV3KHNpemVfdCBzaXplKSB0aHJvdwogICBp bml0X3NxbF9hbGxvYygmb3duX3Jvb3QsIE1FTV9ST09UX0JMT0NLX1NJWkUsIE1FTV9ST09UX1BS RUFMTE9DKTsKICAgc3A9IChzcF9oZWFkICopIGFsbG9jX3Jvb3QoJm93bl9yb290LCBzaXplKTsK ICAgaWYgKHNwID09IE5VTEwpCi0gICAgcmV0dXJuIE5VTEw7CisgICAgREJVR19SRVRVUk4oTlVM TCk7CiAgIHNwLT5tYWluX21lbV9yb290PSBvd25fcm9vdDsKICAgREJVR19QUklOVCgiaW5mbyIs ICgibWVtX3Jvb3QgJXAiLCAmc3AtPm1lbV9yb290KSk7CiAgIERCVUdfUkVUVVJOKHNwKTsKCj09 PSBtb2RpZmllZCBmaWxlICdzcWwvc3FsX2FjbC5jYycKLS0tIGEvc3FsL3NxbF9hY2wuY2MJMjAw OC0wNy0yNSAxNzoyMTo1NSArMDAwMAorKysgYi9zcWwvc3FsX2FjbC5jYwkyMDA4LTA4LTA3IDAz OjA1OjMzICswMDAwCkBAIC01ODExLDcgKzU4MTEsNiBAQCBib29sIG15c3FsX2Ryb3BfdXNlcihU SEQgKnRoZCwgTGlzdCA8TEVYCiAKICAgd2hpbGUgKCh0bXBfdXNlcl9uYW1lPSB1c2VyX2xpc3Qr KykpCiAgIHsKLSAgICB1c2VyX25hbWU9IGdldF9jdXJyZW50X3VzZXIodGhkLCB0bXBfdXNlcl9u YW1lKTsKICAgICBpZiAoISh1c2VyX25hbWU9IGdldF9jdXJyZW50X3VzZXIodGhkLCB0bXBfdXNl cl9uYW1lKSkpCiAgICAgewogICAgICAgcmVzdWx0PSBUUlVFOwoKPT09IG1vZGlmaWVkIGZpbGUg J3NxbC9zcWxfYmFzZS5jYycKLS0tIGEvc3FsL3NxbF9iYXNlLmNjCTIwMDgtMDctMDkgMTQ6Mjc6 MTggKzAwMDAKKysrIGIvc3FsL3NxbF9iYXNlLmNjCTIwMDgtMDctMjUgMTU6MTA6MTQgKzAwMDAK QEAgLTE0NjYsNiArMTQ2Niw4IEBAIGJvb2wgY2xvc2VfdGhyZWFkX3RhYmxlKFRIRCAqdGhkLCBU QUJMRSAKICAgICB0YWJsZS0+ZmlsZS0+ZXh0cmEoSEFfRVhUUkFfREVUQUNIX0NISUxEUkVOKTsK IAogICAgIC8qIEZyZWUgbWVtb3J5IGFuZCByZXNldCBmb3IgbmV4dCBsb29wICovCisgICAgZnJl ZV9maWVsZF9idWZmZXJzX2xhcmdlcl90aGFuKHRhYmxlLE1BWF9URENfQkxPQl9TSVpFKTsKKyAg ICAKICAgICB0YWJsZS0+ZmlsZS0+aGFfcmVzZXQoKTsKICAgICB0YWJsZV9kZWZfdW51c2VfdGFi bGUodGFibGUpOwogICB9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NxbF9lcnJvci5jYycKLS0t IGEvc3FsL3NxbF9lcnJvci5jYwkyMDA4LTAyLTE5IDEyOjU5OjE5ICswMDAwCisrKyBiL3NxbC9z cWxfZXJyb3IuY2MJMjAwOC0wNy0yOSAyMjowMzo1NyArMDAwMApAQCAtOTcsMTIgKzk3LDkgQEAg dm9pZCBteXNxbF9yZXNldF9lcnJvcnMoVEhEICp0aGQsIGJvb2wgZgogICAgIGxldmVsCQlTZXZl cml0eSBvZiB3YXJuaW5nIChub3RlLCB3YXJuaW5nLCBlcnJvciAuLi4pCiAgICAgY29kZQkJRXJy b3IgbnVtYmVyCiAgICAgbXNnCQkJQ2xlYXIgZXJyb3IgbWVzc2FnZQotICAgIAotICBSRVRVUk4K LSAgICBwb2ludGVyIG9uIE1ZU1FMX0VSUk9SIG9iamVjdAogKi8KIAotTVlTUUxfRVJST1IgKnB1 c2hfd2FybmluZyhUSEQgKnRoZCwgTVlTUUxfRVJST1I6OmVudW1fd2FybmluZ19sZXZlbCBsZXZl bCwgCit2b2lkIHB1c2hfd2FybmluZyhUSEQgKnRoZCwgTVlTUUxfRVJST1I6OmVudW1fd2Fybmlu Z19sZXZlbCBsZXZlbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQgY29kZSwgY29u c3QgY2hhciAqbXNnKQogewogICBNWVNRTF9FUlJPUiAqZXJyPSAwOwpAQCAtMTExLDcgKzEwOCw3 IEBAIE1ZU1FMX0VSUk9SICpwdXNoX3dhcm5pbmcoVEhEICp0aGQsIE1ZU1EKIAogICBpZiAobGV2 ZWwgPT0gTVlTUUxfRVJST1I6OldBUk5fTEVWRUxfTk9URSAmJgogICAgICAgISh0aGQtPm9wdGlv bnMgJiBPUFRJT05fU1FMX05PVEVTKSkKLSAgICBEQlVHX1JFVFVSTigwKTsKKyAgICBEQlVHX1ZP SURfUkVUVVJOOwogCiAgIGlmICh0aGQtPnF1ZXJ5X2lkICE9IHRoZC0+d2Fybl9pZCAmJiAhdGhk LT5zcGNvbnQpCiAgICAgbXlzcWxfcmVzZXRfZXJyb3JzKHRoZCwgMCk7CkBAIC0xMzgsMTIgKzEz NSwxMiBAQCBNWVNRTF9FUlJPUiAqcHVzaF93YXJuaW5nKFRIRCAqdGhkLCBNWVNRCiAgIH0KIAog ICBpZiAodGhkLT5oYW5kbGVfZXJyb3IoY29kZSwgbXNnLCBsZXZlbCkpCi0gICAgREJVR19SRVRV Uk4oTlVMTCk7CisgICAgREJVR19WT0lEX1JFVFVSTjsKIAogICBpZiAodGhkLT5zcGNvbnQgJiYK ICAgICAgIHRoZC0+c3Bjb250LT5oYW5kbGVfZXJyb3IoY29kZSwgbGV2ZWwsIHRoZCkpCiAgIHsK LSAgICBEQlVHX1JFVFVSTihOVUxMKTsKKyAgICBEQlVHX1ZPSURfUkVUVVJOOwogICB9CiAgIHF1 ZXJ5X2NhY2hlX2Fib3J0KCZ0aGQtPnF1ZXJ5X2NhY2hlX3Rscyk7CiAKQEAgLTE1Niw3ICsxNTMs NyBAQCBNWVNRTF9FUlJPUiAqcHVzaF93YXJuaW5nKFRIRCAqdGhkLCBNWVNRCiAgIH0KICAgdGhk LT53YXJuX2NvdW50Wyh1aW50KSBsZXZlbF0rKzsKICAgdGhkLT50b3RhbF93YXJuX2NvdW50Kys7 Ci0gIERCVUdfUkVUVVJOKGVycik7CisgIERCVUdfVk9JRF9SRVRVUk47CiB9CiAKIC8qCgo9PT0g bW9kaWZpZWQgZmlsZSAnc3FsL3NxbF9lcnJvci5oJwotLS0gYS9zcWwvc3FsX2Vycm9yLmgJMjAw OC0wNi0xMiAxOTowNDo1MiArMDAwMAorKysgYi9zcWwvc3FsX2Vycm9yLmgJMjAwOC0wNy0yOSAy MjowMzo1NyArMDAwMApAQCAtMzUsOCArMzUsOCBAQCBwcml2YXRlOgogICB2b2lkIHNldF9tc2co VEhEICp0aGQsIGNvbnN0IGNoYXIgKm1zZ19hcmcpOwogfTsKIAotTVlTUUxfRVJST1IgKnB1c2hf d2FybmluZyhUSEQgKnRoZCwgTVlTUUxfRVJST1I6OmVudW1fd2FybmluZ19sZXZlbCBsZXZlbCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBjb2RlLCBjb25zdCBjaGFyICptc2cpOwor dm9pZCBwdXNoX3dhcm5pbmcoVEhEICp0aGQsIE1ZU1FMX0VSUk9SOjplbnVtX3dhcm5pbmdfbGV2 ZWwgbGV2ZWwsCisgICAgICAgICAgICAgICAgICB1aW50IGNvZGUsIGNvbnN0IGNoYXIgKm1zZyk7 CiB2b2lkIHB1c2hfd2FybmluZ19wcmludGYoVEhEICp0aGQsIE1ZU1FMX0VSUk9SOjplbnVtX3dh cm5pbmdfbGV2ZWwgbGV2ZWwsCiAJCQkgdWludCBjb2RlLCBjb25zdCBjaGFyICpmb3JtYXQsIC4u Lik7CiB2b2lkIG15c3FsX3Jlc2V0X2Vycm9ycyhUSEQgKnRoZCwgYm9vbCBmb3JjZSk7Cgo9PT0g bW9kaWZpZWQgZmlsZSAnc3FsL3NxbF9sZXguaCcKLS0tIGEvc3FsL3NxbF9sZXguaAkyMDA4LTA3 LTE4IDEzOjMwOjUzICswMDAwCisrKyBiL3NxbC9zcWxfbGV4LmgJMjAwOC0wOC0wMSAxNTozODow NSArMDAwMApAQCAtNDIyLDExICs0MjIsMTEgQEAgcHVibGljOgogICBib29sIG5vX3RhYmxlX25h bWVzX2FsbG93ZWQ7IC8qIHVzZWQgZm9yIGdsb2JhbCBvcmRlciBieSAqLwogICBib29sIG5vX2Vy cm9yOyAvKiBzdXBwcmVzcyBlcnJvciBtZXNzYWdlIChjb252ZXJ0IGl0IHRvIHdhcm5pbmdzKSAq LwogCi0gIHN0YXRpYyB2b2lkICpvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUpCisgIHN0YXRpYyB2 b2lkICpvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUpIHRocm93ICgpCiAgIHsKICAgICByZXR1cm4g c3FsX2FsbG9jKHNpemUpOwogICB9Ci0gIHN0YXRpYyB2b2lkICpvcGVyYXRvciBuZXcoc2l6ZV90 IHNpemUsIE1FTV9ST09UICptZW1fcm9vdCkKKyAgc3RhdGljIHZvaWQgKm9wZXJhdG9yIG5ldyhz aXplX3Qgc2l6ZSwgTUVNX1JPT1QgKm1lbV9yb290KSB0aHJvdyAoKQogICB7IHJldHVybiAodm9p ZCopIGFsbG9jX3Jvb3QobWVtX3Jvb3QsICh1aW50KSBzaXplKTsgfQogICBzdGF0aWMgdm9pZCBv cGVyYXRvciBkZWxldGUodm9pZCAqcHRyLHNpemVfdCBzaXplKSB7IFRSQVNIKHB0ciwgc2l6ZSk7 IH0KICAgc3RhdGljIHZvaWQgb3BlcmF0b3IgZGVsZXRlKHZvaWQgKnB0ciwgTUVNX1JPT1QgKm1l bV9yb290KSB7fQoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9zcWxfbGlzdC5oJwotLS0gYS9zcWwv c3FsX2xpc3QuaAkyMDA4LTAzLTI4IDE3OjQ3OjUzICswMDAwCisrKyBiL3NxbC9zcWxfbGlzdC5o CTIwMDgtMDgtMDEgMTU6Mzg6MDUgKzAwMDAKQEAgLTI5LDcgKzI5LDcgQEAgcHVibGljOgogICB7 CiAgICAgcmV0dXJuIHNxbF9hbGxvYyhzaXplKTsKICAgfQotICBzdGF0aWMgdm9pZCAqb3BlcmF0 b3IgbmV3W10oc2l6ZV90IHNpemUpCisgIHN0YXRpYyB2b2lkICpvcGVyYXRvciBuZXdbXShzaXpl X3Qgc2l6ZSkgdGhyb3cgKCkKICAgewogICAgIHJldHVybiBzcWxfYWxsb2Moc2l6ZSk7CiAgIH0K QEAgLTQ1MCw3ICs0NTAsNyBAQCBwdWJsaWM6CiBzdHJ1Y3QgaWxpbmsKIHsKICAgc3RydWN0IGls aW5rICoqcHJldiwqbmV4dDsKLSAgc3RhdGljIHZvaWQgKm9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6 ZSkKKyAgc3RhdGljIHZvaWQgKm9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSkgdGhyb3cgKCkKICAg ewogICAgIHJldHVybiAodm9pZCopbXlfbWFsbG9jKCh1aW50KXNpemUsIE1ZRihNWV9XTUUgfCBN WV9GQUUgfCBNRV9GQVRBTEVSUk9SKSk7CiAgIH0KCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3Fs X3BhcnNlLmNjJwotLS0gYS9zcWwvc3FsX3BhcnNlLmNjCTIwMDgtMDctMjYgMTY6Mzg6MjAgKzAw MDAKKysrIGIvc3FsL3NxbF9wYXJzZS5jYwkyMDA4LTA4LTA4IDEzOjM0OjM1ICswMDAwCkBAIC00 NDQwLDEwICs0NDQwLDEwIEBAIGNyZWF0ZV9zcF9lcnJvcjoKICAgICAgIH0KICAgICAgIGJyZWFr OwogICAgIH0KLSNpZm5kZWYgREJVR19PRkYKICAgY2FzZSBTUUxDT01fU0hPV19QUk9DX0NPREU6 CiAgIGNhc2UgU1FMQ09NX1NIT1dfRlVOQ19DT0RFOgogICAgIHsKKyNpZm5kZWYgREJVR19PRkYK ICAgICAgIHNwX2hlYWQgKnNwOwogCiAgICAgICBpZiAobGV4LT5zcWxfY29tbWFuZCA9PSBTUUxD T01fU0hPV19QUk9DX0NPREUpCkBAIC00NDYwLDggKzQ0NjAsMTIgQEAgY3JlYXRlX3NwX2Vycm9y OgogICAgICAgICBnb3RvIGVycm9yOwogICAgICAgfQogICAgICAgYnJlYWs7Ci0gICAgfQorI2Vs c2UKKyAgICAgIG15X2Vycm9yKEVSX0ZFQVRVUkVfRElTQUJMRUQsIE1ZRigwKSwKKyAgICAgICAg ICAgICAgICJTSE9XIFBST0NFRFVSRXxGVU5DVElPTiBDT0RFIiwgIi0td2l0aC1kZWJ1ZyIpOwor ICAgICAgZ290byBlcnJvcjsKICNlbmRpZiAvLyBpZm5kZWYgREJVR19PRkYKKyAgICB9CiAgIGNh c2UgU1FMQ09NX1NIT1dfQ1JFQVRFX1RSSUdHRVI6CiAgICAgewogICAgICAgaWYgKGxleC0+c3Bu YW1lLT5tX25hbWUubGVuZ3RoID4gTkFNRV9MRU4pCkBAIC02NjY3LDE1ICs2NjcxLDI0IEBAIGJv b2wgcmVsb2FkX2FjbF9hbmRfY2FjaGUoVEhEICp0aGQsIHVsb24KICAgICAgIHRoZC0+c3RvcmVf Z2xvYmFscygpOwogICAgICAgbGV4X3N0YXJ0KHRoZCk7CiAgICAgfQorICAgIAogICAgIGlmICh0 aGQpCiAgICAgewotICAgICAgaWYgKGFjbF9yZWxvYWQodGhkKSkKLSAgICAgICAgcmVzdWx0PSAx OwotICAgICAgaWYgKGdyYW50X3JlbG9hZCh0aGQpKQorICAgICAgYm9vbCByZWxvYWRfYWNsX2Zh aWxlZD0gYWNsX3JlbG9hZCh0aGQpOworICAgICAgYm9vbCByZWxvYWRfZ3JhbnRzX2ZhaWxlZD0g Z3JhbnRfcmVsb2FkKHRoZCk7CisgICAgICBib29sIHJlbG9hZF9zZXJ2ZXJzX2ZhaWxlZD0gc2Vy dmVyc19yZWxvYWQodGhkKTsKKyAgICAgIAorICAgICAgaWYgKHJlbG9hZF9hY2xfZmFpbGVkIHx8 IHJlbG9hZF9ncmFudHNfZmFpbGVkIHx8IHJlbG9hZF9zZXJ2ZXJzX2ZhaWxlZCkKKyAgICAgIHsK ICAgICAgICAgcmVzdWx0PSAxOwotICAgICAgaWYgKHNlcnZlcnNfcmVsb2FkKHRoZCkpCi0gICAg ICAgIHJlc3VsdD0gMTsgLyogcHVyZWNvdjogaW5zcGVjdGVkICovCisgICAgICAgIC8qCisgICAg ICAgICAgV2hlbiBhbiBlcnJvciBpcyByZXR1cm5lZCwgbXlfbWVzc2FnZSBtYXkgaGF2ZSBub3Qg YmVlbiBjYWxsZWQgYW5kCisgICAgICAgICAgdGhlIGNsaWVudCB3aWxsIGhhbmcgd2FpdGluZyBm b3IgYSByZXNwb25zZS4KKyAgICAgICAgKi8KKyAgICAgICAgbXlfZXJyb3IoRVJfVU5LTk9XTl9F UlJPUiwgTVlGKDApLCAiRkxVU0ggUFJJVklMRUdFUyBmYWlsZWQiKTsKKyAgICAgIH0KICAgICB9 CisKICAgICBpZiAodG1wX3RoZCkKICAgICB7CiAgICAgICBkZWxldGUgdG1wX3RoZDsKQEAgLTY3 NTYsOCArNjc2OSwxMCBAQCBib29sIHJlbG9hZF9hY2xfYW5kX2NhY2hlKFRIRCAqdGhkLCB1bG9u CiAgICAgICB0bXBfd3JpdGVfdG9fYmlubG9nPSAwOwogICAgICAgaWYgKGxvY2tfZ2xvYmFsX3Jl YWRfbG9jayh0aGQpKQogCXJldHVybiAxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBLaWxsZWQKLSAgICAgIHJlc3VsdD0gY2xvc2VfY2FjaGVkX3RhYmxlcyh0aGQsIHRhYmxlcywg RkFMU0UsIChvcHRpb25zICYgUkVGUkVTSF9GQVNUKSA/Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgRkFMU0UgOiBUUlVFKTsKKyAgICAgIGlmIChjbG9zZV9jYWNoZWRfdGFibGVz KHRoZCwgdGFibGVzLCBGQUxTRSwgKG9wdGlvbnMgJiBSRUZSRVNIX0ZBU1QpID8KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSA6IFRSVUUpKQorICAgICAgICAgIHJlc3Vs dD0gMTsKKyAgICAgIAogICAgICAgaWYgKG1ha2VfZ2xvYmFsX3JlYWRfbG9ja19ibG9ja19jb21t aXQodGhkKSkgLy8gS2lsbGVkCiAgICAgICB7CiAgICAgICAgIC8qIERvbid0IGxlYXZlIHRoaW5n cyBpbiBhIGhhbGYtbG9ja2VkIHN0YXRlICovCkBAIC02ODE5LDggKzY4MzQsOCBAQCBib29sIHJl bG9hZF9hY2xfYW5kX2NhY2hlKFRIRCAqdGhkLCB1bG9uCiAjaWZkZWYgT1BFTlNTTAogICAgaWYg KG9wdGlvbnMgJiBSRUZSRVNIX0RFU19LRVlfRklMRSkKICAgIHsKLSAgICAgaWYgKGRlc19rZXlf ZmlsZSkKLSAgICAgICByZXN1bHQ9bG9hZF9kZXNfa2V5X2ZpbGUoZGVzX2tleV9maWxlKTsKKyAg ICAgaWYgKGRlc19rZXlfZmlsZSAmJiBsb2FkX2Rlc19rZXlfZmlsZShkZXNfa2V5X2ZpbGUpKQor ICAgICAgICAgcmVzdWx0PSAxOwogICAgfQogI2VuZGlmCiAjaWZkZWYgSEFWRV9SRVBMSUNBVElP TgoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9zcWxfc2VsZWN0LmNjJwotLS0gYS9zcWwvc3FsX3Nl bGVjdC5jYwkyMDA4LTA3LTI1IDE3OjIxOjU1ICswMDAwCisrKyBiL3NxbC9zcWxfc2VsZWN0LmNj CTIwMDgtMDgtMDcgMDM6MDU6MzMgKzAwMDAKQEAgLTg2ODcsNiArODY4NywxMiBAQCB2b2lkIEpP SU46OmNsZWFudXAoYm9vbCBmdWxsKQogICAgIGlmICh0bXBfam9pbikKICAgICAgIHRtcF90YWJs ZV9wYXJhbS5jb3B5X2ZpZWxkPSAwOwogICAgIGdyb3VwX2ZpZWxkcy5kZWxldGVfZWxlbWVudHMo KTsKKyAgICAvKiAKKyAgICAgIEVuc3VyZSB0aGF0IHRoZSBhYm92ZSBkZWxldGVfZWxlbWVudHMo KSB3b3VsZCBub3QgYmUgY2FsbGVkCisgICAgICB0d2ljZSBmb3IgdGhlIHNhbWUgbGlzdC4KKyAg ICAqLworICAgIGlmICh0bXBfam9pbiAmJiB0bXBfam9pbiAhPSB0aGlzKQorICAgICAgdG1wX2pv aW4tPmdyb3VwX2ZpZWxkcz0gZ3JvdXBfZmllbGRzOwogICAgIC8qCiAgICAgICBXZSBjYW4ndCBj YWxsIGRlbGV0ZV9lbGVtZW50cygpIG9uIGNvcHlfZnVuY3MgYXMgdGhpcyB3aWxsIGNhdXNlCiAg ICAgICBwcm9ibGVtcyBpbiBmcmVlX2VsZW1lbnRzKCkgYXMgc29tZSBvZiB0aGUgZWxlbWVudHMg YXJlIHRoZW4gZGVsZXRlZC4KCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3FsX3N0cmluZy5oJwot LS0gYS9zcWwvc3FsX3N0cmluZy5oCTIwMDgtMDQtMjEgMDc6MzA6MzkgKzAwMDAKKysrIGIvc3Fs L3NxbF9zdHJpbmcuaAkyMDA4LTA4LTAxIDE1OjM4OjA1ICswMDAwCkBAIC03NSw3ICs3NSw3IEBA IHB1YmxpYzoKICAgICBBbGxvY2VkX2xlbmd0aD1zdHIuQWxsb2NlZF9sZW5ndGg7IGFsbG9jZWQ9 MDsgCiAgICAgc3RyX2NoYXJzZXQ9c3RyLnN0cl9jaGFyc2V0OwogICB9Ci0gIHN0YXRpYyB2b2lk ICpvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUsIE1FTV9ST09UICptZW1fcm9vdCkKKyAgc3RhdGlj IHZvaWQgKm9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSwgTUVNX1JPT1QgKm1lbV9yb290KSB0aHJv dyAoKQogICB7IHJldHVybiAodm9pZCopIGFsbG9jX3Jvb3QobWVtX3Jvb3QsICh1aW50KSBzaXpl KTsgfQogICBzdGF0aWMgdm9pZCBvcGVyYXRvciBkZWxldGUodm9pZCAqcHRyX2FyZyxzaXplX3Qg c2l6ZSkKICAgeyBUUkFTSChwdHJfYXJnLCBzaXplKTsgfQoKPT09IG1vZGlmaWVkIGZpbGUgJ3Nx bC9zcWxfeWFjYy55eScKLS0tIGEvc3FsL3NxbF95YWNjLnl5CTIwMDgtMDctMjUgMTc6MjE6NTUg KzAwMDAKKysrIGIvc3FsL3NxbF95YWNjLnl5CTIwMDgtMDgtMDcgMTg6Mzc6NTUgKzAwMDAKQEAg LTIwMjQsNyArMjAyNCwxMCBAQCBvcHRfZXZfc3RhdHVzOgogZXZfc3RhcnRzOgogICAgICAgICAg IC8qIGVtcHR5ICovCiAgICAgICAgICAgewotICAgICAgICAgICAgTGV4LT5ldmVudF9wYXJzZV9k YXRhLT5pdGVtX3N0YXJ0cz0gbmV3IEl0ZW1fZnVuY19ub3dfbG9jYWwoKTsKKyAgICAgICAgICAg IEl0ZW0gKml0ZW09IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfbm93X2xvY2FsKCk7 CisgICAgICAgICAgICBpZiAoaXRlbSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOworICAgICAgICAgICAgTGV4LT5ldmVudF9wYXJzZV9kYXRhLT5pdGVtX3N0YXJ0cz0gaXRl bTsKICAgICAgICAgICB9CiAgICAgICAgIHwgU1RBUlRTX1NZTSBleHByCiAgICAgICAgICAgewpA QCAtMjE3MSw2ICsyMTc0LDggQEAgc3BfbmFtZToKICAgICAgICAgICAgICAgTVlTUUxfWVlBQk9S VDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgICQkPSBuZXcgc3BfbmFtZSgkMSwgJDMsIHRy dWUpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZ QUJPUlQ7CiAgICAgICAgICAgICAkJC0+aW5pdF9xbmFtZShZWVRIRCk7CiAgICAgICAgICAgfQog ICAgICAgICB8IGlkZW50CkBAIC0yMTg1LDggKzIxOTAsOSBAQCBzcF9uYW1lOgogICAgICAgICAg ICAgaWYgKGxleC0+Y29weV9kYl90bygmZGIuc3RyLCAmZGIubGVuZ3RoKSkKICAgICAgICAgICAg ICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICAgICQkPSBuZXcgc3BfbmFtZShkYiwgJDEsIGZh bHNlKTsKLSAgICAgICAgICAgIGlmICgkJCkKLSAgICAgICAgICAgICAgJCQtPmluaXRfcW5hbWUo dGhkKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOworICAgICAgICAgICAgJCQtPmluaXRfcW5hbWUodGhkKTsKICAgICAgICAgICB9CiAg ICAgICAgIDsKIApAQCAtMjQyMyw2ICsyNDI5LDcgQEAgc3BfZGVjbDoKICAgICAgICAgICB0eXBl CiAgICAgICAgICAgc3Bfb3B0X2RlZmF1bHQKICAgICAgICAgICB7CisgICAgICAgICAgICBUSEQg KnRoZD0gWVlUSEQ7CiAgICAgICAgICAgICBMRVggKmxleD0gTGV4OwogICAgICAgICAgICAgc3Bf cGNvbnRleHQgKnBjdHg9IGxleC0+c3Bjb250OwogICAgICAgICAgICAgdWludCBudW1fdmFycz0g cGN0eC0+Y29udGV4dF92YXJfY291bnQoKTsKQEAgLTI0MzEsNyArMjQzOCw5IEBAIHNwX2RlY2w6 CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmICghZGZsdF92YWx1ZV9pdGVtKQogICAgICAg ICAgICAgewotICAgICAgICAgICAgICBkZmx0X3ZhbHVlX2l0ZW09IG5ldyBJdGVtX251bGwoKTsK KyAgICAgICAgICAgICAgZGZsdF92YWx1ZV9pdGVtPSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1f bnVsbCgpOworICAgICAgICAgICAgICBpZiAoZGZsdF92YWx1ZV9pdGVtID09IE5VTEwpCisgICAg ICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICAgICAgLyogUVEgU2V0IHRvIHRo ZSB2YXJfdHlwZSB3aXRoIG51bGxfdmFsdWU/ICovCiAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAKQEAgLTI0NTcsMTAgKzI0NjYsMTcgQEAgc3BfZGVjbDoKICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAvKiBUaGUgbGFzdCBpbnN0cnVjdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgZnJlZWlu ZyBMRVguICovCiAKLSAgICAgICAgICAgICAgbGV4LT5zcGhlYWQtPmFkZF9pbnN0cigKLSAgICAg ICAgICAgICAgICBuZXcgc3BfaW5zdHJfc2V0KGxleC0+c3BoZWFkLT5pbnN0cnVjdGlvbnMoKSwg cGN0eCwgdmFyX2lkeCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRmbHRfdmFs dWVfaXRlbSwgdmFyX3R5cGUsIGxleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChpID09IG51bV92YXJzIC0gMSkpKTsKKyAgICAgICAgICAgICAgc3BfaW5zdHJfc2V0ICppcz0g bmV3IHNwX2luc3RyX3NldChsZXgtPnNwaGVhZC0+aW5zdHJ1Y3Rpb25zKCksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGN0eCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJfaWR4LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRmbHRfdmFsdWVfaXRlbSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJfdHlw ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXgs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGkgPT0g bnVtX3ZhcnMgLSAxKSk7CisgICAgICAgICAgICAgIGlmIChpcyA9PSBOVUxMKQorICAgICAgICAg ICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisKKyAgICAgICAgICAgICAgbGV4LT5zcGhlYWQtPmFkZF9p bnN0cihpcyk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHBjdHgtPmRlY2xhcmVfdmFy X2JvdW5kYXJ5KDApOwpAQCAtMjYxMiw2ICsyNjI4LDggQEAgc3BfY29uZDoKICAgICAgICAgICB1 bG9uZ19udW0KICAgICAgICAgICB7IC8qIG15c3FsIGVycm5vICovCiAgICAgICAgICAgICAkJD0g KHNwX2NvbmRfdHlwZV90ICopWVlUSEQtPmFsbG9jKHNpemVvZihzcF9jb25kX3R5cGVfdCkpOwor ICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CiAgICAgICAgICAgICAkJC0+dHlwZT0gc3BfY29uZF90eXBlX3Q6Om51bWJlcjsKICAgICAgICAg ICAgICQkLT5teXNxbGVycj0gJDE7CiAgICAgICAgICAgfQpAQCAtMjYyMyw2ICsyNjQxLDggQEAg c3BfY29uZDoKICAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICQkPSAoc3BfY29uZF90eXBlX3QgKilZWVRIRC0+YWxsb2Moc2l6ZW9mKHNwX2Nv bmRfdHlwZV90KSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKICAgICAgICAgICAgICQkLT50eXBlPSBzcF9jb25kX3R5cGVfdDo6c3Rh dGU7CiAgICAgICAgICAgICBtZW1jcHkoJCQtPnNxbHN0YXRlLCAkMy5zdHIsIDUpOwogICAgICAg ICAgICAgJCQtPnNxbHN0YXRlWzVdPSAnXDAnOwpAQCAtMjY1MSwxNiArMjY3MSwyMiBAQCBzcF9o Y29uZDoKICAgICAgICAgfCBTUUxXQVJOSU5HX1NZTSAvKiBTUUxTVEFURXMgMDE/Pz8gKi8KICAg ICAgICAgICB7CiAgICAgICAgICAgICAkJD0gKHNwX2NvbmRfdHlwZV90ICopWVlUSEQtPmFsbG9j KHNpemVvZihzcF9jb25kX3R5cGVfdCkpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisg ICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICAkJC0+dHlwZT0gc3BfY29u ZF90eXBlX3Q6Ondhcm5pbmc7CiAgICAgICAgICAgfQogICAgICAgICB8IG5vdCBGT1VORF9TWU0g LyogU1FMU1RBVEVzIDAyPz8/ICovCiAgICAgICAgICAgewogICAgICAgICAgICAgJCQ9IChzcF9j b25kX3R5cGVfdCAqKVlZVEhELT5hbGxvYyhzaXplb2Yoc3BfY29uZF90eXBlX3QpKTsKKyAgICAg ICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAg ICAgICAgICAgJCQtPnR5cGU9IHNwX2NvbmRfdHlwZV90Ojpub3Rmb3VuZDsKICAgICAgICAgICB9 CiAgICAgICAgIHwgU1FMRVhDRVBUSU9OX1NZTSAvKiBBbGwgb3RoZXIgU1FMU1RBVEVzICovCiAg ICAgICAgICAgewogICAgICAgICAgICAgJCQ9IChzcF9jb25kX3R5cGVfdCAqKVlZVEhELT5hbGxv YyhzaXplb2Yoc3BfY29uZF90eXBlX3QpKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgJCQtPnR5cGU9IHNwX2Nv bmRfdHlwZV90OjpleGNlcHRpb247CiAgICAgICAgICAgfQogICAgICAgICA7CkBAIC01MTMzLDcg KzUxNTksMTIgQEAgYXR0cmlidXRlOgogICAgICAgICAgICAgTGV4LT5hbHRlcl9pbmZvLmZsYWdz fD0gQUxURVJfQ09MVU1OX0RFRkFVTFQ7CiAgICAgICAgICAgfQogICAgICAgICB8IE9OIFVQREFU RV9TWU0gTk9XX1NZTSBvcHRpb25hbF9icmFjZXMgCi0gICAgICAgICAgeyBMZXgtPm9uX3VwZGF0 ZV92YWx1ZT0gbmV3IEl0ZW1fZnVuY19ub3dfbG9jYWwoKTsgfQorICAgICAgICAgIHsKKyAgICAg ICAgICAgIEl0ZW0gKml0ZW09IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfbm93X2xv Y2FsKCk7CisgICAgICAgICAgICBpZiAoaXRlbSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOworICAgICAgICAgICAgTGV4LT5vbl91cGRhdGVfdmFsdWU9IGl0ZW07CisgICAg ICAgICAgfQogICAgICAgICB8IEFVVE9fSU5DIHsgTGV4LT50eXBlfD0gQVVUT19JTkNSRU1FTlRf RkxBRyB8IE5PVF9OVUxMX0ZMQUc7IH0KICAgICAgICAgfCBTRVJJQUxfU1lNIERFRkFVTFQgVkFM VUVfU1lNCiAgICAgICAgICAgeyAKQEAgLTUxNzcsNyArNTIwOCwxMSBAQCBhdHRyaWJ1dGU6CiAK IG5vd19vcl9zaWduZWRfbGl0ZXJhbDoKICAgICAgICAgICBOT1dfU1lNIG9wdGlvbmFsX2JyYWNl cwotICAgICAgICAgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfbm93X2xvY2FsKCk7IH0KKyAgICAgICAg ICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19ub3df bG9jYWwoKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBzaWduZWRfbGl0ZXJhbAogICAgICAg ICAgIHsgJCQ9JDE7IH0KICAgICAgICAgOwpAQCAtNTU1OSw3ICs1NTk0LDEyIEBAIGtleV9saXN0 OgogICAgICAgICA7CiAKIGtleV9wYXJ0OgotICAgICAgICAgIGlkZW50IHsgJCQ9bmV3IEtleV9w YXJ0X3NwZWMoJDEsIDApOyB9CisgICAgICAgICAgaWRlbnQKKyAgICAgICAgICB7CisgICAgICAg ICAgICAkJD0gbmV3IEtleV9wYXJ0X3NwZWMoJDEsIDApOworICAgICAgICAgICAgaWYgKCQkID09 IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAg ICB8IGlkZW50ICcoJyBOVU0gJyknCiAgICAgICAgICAgewogICAgICAgICAgICAgaW50IGtleV9w YXJ0X2xlbj0gYXRvaSgkMy5zdHIpOwpAQCAtNTU2Nyw3ICs1NjA3LDkgQEAga2V5X3BhcnQ6CiAg ICAgICAgICAgICB7CiAgICAgICAgICAgICAgIG15X2Vycm9yKEVSX0tFWV9QQVJUXzAsIE1ZRigw KSwgJDEuc3RyKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICQkPW5ldyBLZXlfcGFydF9z cGVjKCQxLCAodWludCkga2V5X3BhcnRfbGVuKTsKKyAgICAgICAgICAgICQkPSBuZXcgS2V5X3Bh cnRfc3BlYygkMSwgKHVpbnQpIGtleV9wYXJ0X2xlbik7CisgICAgICAgICAgICBpZiAoJCQgPT0g TlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAg IDsKIApAQCAtNTk0Niw3ICs1OTg4LDcgQEAgcmVvcmdfcGFydGl0aW9uX3J1bGU6CiAgICAgICAg ICAgICBsZXgtPnBhcnRfaW5mbz0gbmV3IHBhcnRpdGlvbl9pbmZvKCk7CiAgICAgICAgICAgICBp ZiAoIWxleC0+cGFydF9pbmZvKQogICAgICAgICAgICAgewotICAgICAgICAgICAgbWVtX2FsbG9j X2Vycm9yKHNpemVvZihwYXJ0aXRpb25faW5mbykpOworICAgICAgICAgICAgICBtZW1fYWxsb2Nf ZXJyb3Ioc2l6ZW9mKHBhcnRpdGlvbl9pbmZvKSk7CiAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJP UlQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBsZXgtPm5vX3dyaXRlX3RvX2JpbmxvZz0g JDM7CkBAIC02MDQ5LDggKzYwOTEsMTAgQEAgYWx0ZXJfbGlzdF9pdGVtOgogICAgICAgICB8IERS T1Agb3B0X2NvbHVtbiBmaWVsZF9pZGVudCBvcHRfcmVzdHJpY3QKICAgICAgICAgICB7CiAgICAg ICAgICAgICBMRVggKmxleD1MZXg7Ci0gICAgICAgICAgICBsZXgtPmFsdGVyX2luZm8uZHJvcF9s aXN0LnB1c2hfYmFjayhuZXcgQWx0ZXJfZHJvcChBbHRlcl9kcm9wOjpDT0xVTU4sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk My5zdHIpKTsKKyAgICAgICAgICAgIEFsdGVyX2Ryb3AgKmFkPSBuZXcgQWx0ZXJfZHJvcChBbHRl cl9kcm9wOjpDT0xVTU4sICQzLnN0cik7CisgICAgICAgICAgICBpZiAoYWQgPT0gTlVMTCkKKyAg ICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICAgIGxleC0+YWx0ZXJfaW5mby5k cm9wX2xpc3QucHVzaF9iYWNrKGFkKTsKICAgICAgICAgICAgIGxleC0+YWx0ZXJfaW5mby5mbGFn c3w9IEFMVEVSX0RST1BfQ09MVU1OOwogICAgICAgICAgIH0KICAgICAgICAgfCBEUk9QIEZPUkVJ R04gS0VZX1NZTSBvcHRfaWRlbnQKQEAgLTYwNjAsMTUgKzYxMDQsMTkgQEAgYWx0ZXJfbGlzdF9p dGVtOgogICAgICAgICB8IERST1AgUFJJTUFSWV9TWU0gS0VZX1NZTQogICAgICAgICAgIHsKICAg ICAgICAgICAgIExFWCAqbGV4PUxleDsKLSAgICAgICAgICAgIGxleC0+YWx0ZXJfaW5mby5kcm9w X2xpc3QucHVzaF9iYWNrKG5ldyBBbHRlcl9kcm9wKEFsdGVyX2Ryb3A6OktFWSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBy aW1hcnlfa2V5X25hbWUpKTsKKyAgICAgICAgICAgIEFsdGVyX2Ryb3AgKmFkPSBuZXcgQWx0ZXJf ZHJvcChBbHRlcl9kcm9wOjpLRVksIHByaW1hcnlfa2V5X25hbWUpOworICAgICAgICAgICAgaWYg KGFkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgICBs ZXgtPmFsdGVyX2luZm8uZHJvcF9saXN0LnB1c2hfYmFjayhhZCk7CiAgICAgICAgICAgICBsZXgt PmFsdGVyX2luZm8uZmxhZ3N8PSBBTFRFUl9EUk9QX0lOREVYOwogICAgICAgICAgIH0KICAgICAg ICAgfCBEUk9QIGtleV9vcl9pbmRleCBmaWVsZF9pZGVudAogICAgICAgICAgIHsKICAgICAgICAg ICAgIExFWCAqbGV4PUxleDsKLSAgICAgICAgICAgIGxleC0+YWx0ZXJfaW5mby5kcm9wX2xpc3Qu cHVzaF9iYWNrKG5ldyBBbHRlcl9kcm9wKEFsdGVyX2Ryb3A6OktFWSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQzLnN0cikp OworICAgICAgICAgICAgQWx0ZXJfZHJvcCAqYWQ9IG5ldyBBbHRlcl9kcm9wKEFsdGVyX2Ryb3A6 OktFWSwgJDMuc3RyKTsKKyAgICAgICAgICAgIGlmIChhZCA9PSBOVUxMKQorICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgbGV4LT5hbHRlcl9pbmZvLmRyb3BfbGlzdC5w dXNoX2JhY2soYWQpOwogICAgICAgICAgICAgbGV4LT5hbHRlcl9pbmZvLmZsYWdzfD0gQUxURVJf RFJPUF9JTkRFWDsKICAgICAgICAgICB9CiAgICAgICAgIHwgRElTQUJMRV9TWU0gS0VZUwpAQCAt NjA4NiwxNCArNjEzNCwxOSBAQCBhbHRlcl9saXN0X2l0ZW06CiAgICAgICAgIHwgQUxURVIgb3B0 X2NvbHVtbiBmaWVsZF9pZGVudCBTRVQgREVGQVVMVCBzaWduZWRfbGl0ZXJhbAogICAgICAgICAg IHsKICAgICAgICAgICAgIExFWCAqbGV4PUxleDsKLSAgICAgICAgICAgIGxleC0+YWx0ZXJfaW5m by5hbHRlcl9saXN0LnB1c2hfYmFjayhuZXcgQWx0ZXJfY29sdW1uKCQzLnN0ciwkNikpOworICAg ICAgICAgICAgQWx0ZXJfY29sdW1uICphYz0gbmV3IEFsdGVyX2NvbHVtbigkMy5zdHIsJDYpOwor ICAgICAgICAgICAgaWYgKGFjID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CisgICAgICAgICAgICBsZXgtPmFsdGVyX2luZm8uYWx0ZXJfbGlzdC5wdXNoX2JhY2soYWMpOwog ICAgICAgICAgICAgbGV4LT5hbHRlcl9pbmZvLmZsYWdzfD0gQUxURVJfQ09MVU1OX0RFRkFVTFQ7 CiAgICAgICAgICAgfQogICAgICAgICB8IEFMVEVSIG9wdF9jb2x1bW4gZmllbGRfaWRlbnQgRFJP UCBERUZBVUxUCiAgICAgICAgICAgewogICAgICAgICAgICAgTEVYICpsZXg9TGV4OwotICAgICAg ICAgICAgbGV4LT5hbHRlcl9pbmZvLmFsdGVyX2xpc3QucHVzaF9iYWNrKG5ldyBBbHRlcl9jb2x1 bW4oJDMuc3RyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKEl0ZW0qKSAwKSk7CisgICAgICAgICAgICBBbHRlcl9jb2x1 bW4gKmFjPSBuZXcgQWx0ZXJfY29sdW1uKCQzLnN0ciwgKEl0ZW0qKSAwKTsKKyAgICAgICAgICAg IGlmIChhYyA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAg ICAgbGV4LT5hbHRlcl9pbmZvLmFsdGVyX2xpc3QucHVzaF9iYWNrKGFjKTsKICAgICAgICAgICAg IGxleC0+YWx0ZXJfaW5mby5mbGFnc3w9IEFMVEVSX0NPTFVNTl9ERUZBVUxUOwogICAgICAgICAg IH0KICAgICAgICAgfCBSRU5BTUUgb3B0X3RvIHRhYmxlX2lkZW50CkBAIC02MzYxLDE1ICs2NDE0 LDE5IEBAIGRhdGFiYXNlX2lkZW50X2xpc3Q6CiAgICAgICAgICAgaWRlbnQKICAgICAgICAgICB7 CiAgICAgICAgICAgICBMRVggKmxleD0gTGV4OworICAgICAgICAgICAgTEVYX1NUUklORyogbHM9 IChMRVhfU1RSSU5HKikgc3FsX21lbWR1cCgmJDEsIHNpemVvZihMRVhfU1RSSU5HKSk7CisgICAg ICAgICAgICBpZiAobHMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAg ICAgICAgICAgIGxleC0+ZGJfbGlzdC5lbXB0eSgpOwotICAgICAgICAgICAgaWYgKGxleC0+ZGJf bGlzdC5wdXNoX2JhY2soKExFWF9TVFJJTkcqKQotICAgICAgICAgICAgICAgIHNxbF9tZW1kdXAo JiQxLCBzaXplb2YoTEVYX1NUUklORykpKSkKKyAgICAgICAgICAgIGlmIChsZXgtPmRiX2xpc3Qu cHVzaF9iYWNrKGxzKSkKICAgICAgICAgICAgICAgWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAg ICAgIHwgZGF0YWJhc2VfaWRlbnRfbGlzdCAnLCcgaWRlbnQKICAgICAgICAgICB7Ci0gICAgICAg ICAgICBpZiAoTGV4LT5kYl9saXN0LnB1c2hfYmFjaygoTEVYX1NUUklORyopCi0gICAgICAgICAg ICAgICAgc3FsX21lbWR1cCgmJDMsIHNpemVvZihMRVhfU1RSSU5HKSkpKQorICAgICAgICAgICAg TEVYX1NUUklORyAqbHM9IChMRVhfU1RSSU5HKikgc3FsX21lbWR1cCgmJDMsIHNpemVvZihMRVhf U1RSSU5HKSk7CisgICAgICAgICAgICBpZiAobHMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKKyAgICAgICAgICAgIGlmIChMZXgtPmRiX2xpc3QucHVzaF9iYWNrKGxzKSkK ICAgICAgICAgICAgICAgWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIDsKQEAgLTY4MDYs MTAgKzY4NjMsMTIgQEAgc2VsZWN0X2l0ZW1fbGlzdDoKICAgICAgICAgfCAnKicKICAgICAgICAg ICB7CiAgICAgICAgICAgICBUSEQgKnRoZD0gWVlUSEQ7Ci0gICAgICAgICAgICBpZiAoYWRkX2l0 ZW1fdG9fbGlzdCh0aGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSXRl bV9maWVsZCgmdGhkLT5sZXgtPmN1cnJlbnRfc2VsZWN0LT4KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCAiKiIpKSkKKyAgICAgICAg ICAgIEl0ZW0gKml0ZW09IG5ldyAodGhkLT5tZW1fcm9vdCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgSXRlbV9maWVsZCgmdGhkLT5sZXgtPmN1cnJlbnRfc2VsZWN0LT5jb250ZXh0LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwsICIqIik7CisgICAg ICAgICAgICBpZiAoaXRlbSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwor ICAgICAgICAgICAgaWYgKGFkZF9pdGVtX3RvX2xpc3QodGhkLCBpdGVtKSkKICAgICAgICAgICAg ICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICAgICh0aGQtPmxleC0+Y3VycmVudF9zZWxlY3Qt PndpdGhfd2lsZCkrKzsKICAgICAgICAgICB9CkBAIC02OTIyLDYgKzY5ODEsOCBAQCBleHByOgog ICAgICAgICAgICAgewogICAgICAgICAgICAgICAvKiBYIE9SIFkgKi8KICAgICAgICAgICAgICAg JCQgPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9jb25kX29yKCQxLCAkMyk7CisgICAgICAg ICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAg ICAgICAgICAgICB9CiAgICAgICAgICAgfQogICAgICAgICB8IGV4cHIgWE9SIGV4cHIgJXByZWMg WE9SCkBAIC02OTY4LDM2ICs3MDI5LDg2IEBAIGV4cHI6CiAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgIC8qIFggQU5EIFkgKi8KICAgICAgICAgICAgICAgJCQgPSBuZXcgKFlZVEhELT5tZW1f cm9vdCkgSXRlbV9jb25kX2FuZCgkMSwgJDMpOworICAgICAgICAgICAgICBpZiAoJCQgPT0gTlVM TCkKKyAgICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgfQogICAgICAg ICAgIH0KICAgICAgICAgfCBOT1RfU1lNIGV4cHIgJXByZWMgTk9UX1NZTQotICAgICAgICAgIHsg JCQ9IG5lZ2F0ZV9leHByZXNzaW9uKFlZVEhELCAkMik7IH0KKyAgICAgICAgICB7CisgICAgICAg ICAgICAkJD0gbmVnYXRlX2V4cHJlc3Npb24oWVlUSEQsICQyKTsKKyAgICAgICAgICAgIGlmICgk JCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAg ICAgICAgfCBib29sX3ByaSBJUyBUUlVFX1NZTSAlcHJlYyBJUwotICAgICAgICAgIHsgJCQ9IG5l dyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfaXN0cnVlKCQxKTsgfQorICAgICAgICAgIHsK KyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2lzdHJ1ZSgk MSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgYm9vbF9wcmkgSVMgbm90IFRSVUVfU1lNICVw cmVjIElTCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19p c25vdHRydWUoJDEpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQt Pm1lbV9yb290KSBJdGVtX2Z1bmNfaXNub3R0cnVlKCQxKTsKKyAgICAgICAgICAgIGlmICgkJCA9 PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAg ICAgfCBib29sX3ByaSBJUyBGQUxTRV9TWU0gJXByZWMgSVMKLSAgICAgICAgICB7ICQkPSBuZXcg KFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2lzZmFsc2UoJDEpOyB9CisgICAgICAgICAgewor ICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfaXNmYWxzZSgk MSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgYm9vbF9wcmkgSVMgbm90IEZBTFNFX1NZTSAl cHJlYyBJUwotICAgICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNf aXNub3RmYWxzZSgkMSk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRI RC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19pc25vdGZhbHNlKCQxKTsKKyAgICAgICAgICAgIGlmICgk JCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAg ICAgICAgfCBib29sX3ByaSBJUyBVTktOT1dOX1NZTSAlcHJlYyBJUwotICAgICAgICAgIHsgJCQ9 IG5ldyBJdGVtX2Z1bmNfaXNudWxsKCQxKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQk PSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2lzbnVsbCgkMSk7CisgICAgICAgICAg ICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAg ICB9CiAgICAgICAgIHwgYm9vbF9wcmkgSVMgbm90IFVOS05PV05fU1lNICVwcmVjIElTCi0gICAg ICAgICAgeyAkJD0gbmV3IEl0ZW1fZnVuY19pc25vdG51bGwoJDEpOyB9CisgICAgICAgICAgewor ICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfaXNub3RudWxs KCQxKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBib29sX3ByaQogICAgICAgICA7CiAKIGJv b2xfcHJpOgogICAgICAgICAgIGJvb2xfcHJpIElTIE5VTExfU1lNICVwcmVjIElTCi0gICAgICAg ICAgeyAkJD0gbmV3IEl0ZW1fZnVuY19pc251bGwoJDEpOyB9CisgICAgICAgICAgeworICAgICAg ICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfaXNudWxsKCQxKTsKKyAg ICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwor ICAgICAgICAgIH0KICAgICAgICAgfCBib29sX3ByaSBJUyBub3QgTlVMTF9TWU0gJXByZWMgSVMK LSAgICAgICAgICB7ICQkPSBuZXcgSXRlbV9mdW5jX2lzbm90bnVsbCgkMSk7IH0KKyAgICAgICAg ICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19pc25v dG51bGwoJDEpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1Z U1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IGJvb2xfcHJpIEVRVUFMX1NZTSBw cmVkaWNhdGUgJXByZWMgRVFVQUxfU1lNCi0gICAgICAgICAgeyAkJD0gbmV3IEl0ZW1fZnVuY19l cXVhbCgkMSwkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+ bWVtX3Jvb3QpIEl0ZW1fZnVuY19lcXVhbCgkMSwkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0g TlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAg IHwgYm9vbF9wcmkgY29tcF9vcCBwcmVkaWNhdGUgJXByZWMgRVEKLSAgICAgICAgICB7ICQkPSAo KiQyKSgwKS0+Y3JlYXRlKCQxLCQzKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSAo KiQyKSgwKS0+Y3JlYXRlKCQxLCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAg ICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBib29sX3By aSBjb21wX29wIGFsbF9vcl9hbnkgJygnIHN1YnNlbGVjdCAnKScgJXByZWMgRVEKLSAgICAgICAg ICB7ICQkPSBhbGxfYW55X3N1YnF1ZXJ5X2NyZWF0b3IoJDEsICQyLCAkMywgJDUpOyB9CisgICAg ICAgICAgeworICAgICAgICAgICAgJCQ9IGFsbF9hbnlfc3VicXVlcnlfY3JlYXRvcigkMSwgJDIs ICQzLCAkNSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgcHJlZGljYXRlCiAgICAgICAgIDsK IApAQCAtNzAwNSw4NyArNzExNiwxOTMgQEAgcHJlZGljYXRlOgogICAgICAgICAgIGJpdF9leHBy IElOX1NZTSAnKCcgc3Vic2VsZWN0ICcpJwogICAgICAgICAgIHsKICAgICAgICAgICAgICQkPSBu ZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9pbl9zdWJzZWxlY3QoJDEsICQ0KTsKKyAgICAgICAg ICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAg ICAgIH0KICAgICAgICAgfCBiaXRfZXhwciBub3QgSU5fU1lNICcoJyBzdWJzZWxlY3QgJyknCiAg ICAgICAgICAgewogICAgICAgICAgICAgVEhEICp0aGQ9IFlZVEhEOwogICAgICAgICAgICAgSXRl bSAqaXRlbT0gbmV3ICh0aGQtPm1lbV9yb290KSBJdGVtX2luX3N1YnNlbGVjdCgkMSwgJDUpOwor ICAgICAgICAgICAgaWYgKGl0ZW0gPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9S VDsKICAgICAgICAgICAgICQkPSBuZWdhdGVfZXhwcmVzc2lvbih0aGQsIGl0ZW0pOworICAgICAg ICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAg ICAgICAgfQogICAgICAgICB8IGJpdF9leHByIElOX1NZTSAnKCcgZXhwciAnKScKICAgICAgICAg ICB7CiAgICAgICAgICAgICAkJD0gaGFuZGxlX3NxbDIwMDNfbm90ZTE4NF9leGNlcHRpb24oWVlU SEQsICQxLCB0cnVlLCAkNCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIHwgYml0X2V4cHIgSU5f U1lNICcoJyBleHByICcsJyBleHByX2xpc3QgJyknCiAgICAgICAgICAgeyAKICAgICAgICAgICAg ICQ2LT5wdXNoX2Zyb250KCQ0KTsKICAgICAgICAgICAgICQ2LT5wdXNoX2Zyb250KCQxKTsKICAg ICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2luKCokNik7Cisg ICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsK ICAgICAgICAgICB9CiAgICAgICAgIHwgYml0X2V4cHIgbm90IElOX1NZTSAnKCcgZXhwciAnKScK ICAgICAgICAgICB7CiAgICAgICAgICAgICAkJD0gaGFuZGxlX3NxbDIwMDNfbm90ZTE4NF9leGNl cHRpb24oWVlUSEQsICQxLCBmYWxzZSwgJDUpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwp CisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgfQogICAgICAgICB8IGJp dF9leHByIG5vdCBJTl9TWU0gJygnIGV4cHIgJywnIGV4cHJfbGlzdCAnKScKICAgICAgICAgICB7 CiAgICAgICAgICAgICAkNy0+cHVzaF9mcm9udCgkNSk7CiAgICAgICAgICAgICAkNy0+cHVzaF9m cm9udCgkMSk7CiAgICAgICAgICAgICBJdGVtX2Z1bmNfaW4gKml0ZW0gPSBuZXcgKFlZVEhELT5t ZW1fcm9vdCkgSXRlbV9mdW5jX2luKCokNyk7CisgICAgICAgICAgICBpZiAoaXRlbSA9PSBOVUxM KQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgaXRlbS0+bmVnYXRl KCk7CiAgICAgICAgICAgICAkJD0gaXRlbTsKICAgICAgICAgICB9CiAgICAgICAgIHwgYml0X2V4 cHIgQkVUV0VFTl9TWU0gYml0X2V4cHIgQU5EX1NZTSBwcmVkaWNhdGUKLSAgICAgICAgICB7ICQk PSBuZXcgSXRlbV9mdW5jX2JldHdlZW4oJDEsJDMsJDUpOyB9CisgICAgICAgICAgeworICAgICAg ICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfYmV0d2VlbigkMSwkMywk NSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgYml0X2V4cHIgbm90IEJFVFdFRU5fU1lNIGJp dF9leHByIEFORF9TWU0gcHJlZGljYXRlCiAgICAgICAgICAgewotICAgICAgICAgICAgSXRlbV9m dW5jX2JldHdlZW4gKml0ZW09IG5ldyBJdGVtX2Z1bmNfYmV0d2VlbigkMSwkNCwkNik7CisgICAg ICAgICAgICBJdGVtX2Z1bmNfYmV0d2VlbiAqaXRlbTsKKyAgICAgICAgICAgIGl0ZW09IG5ldyAo WVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfYmV0d2VlbigkMSwkNCwkNik7CisgICAgICAgICAg ICBpZiAoaXRlbSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAg ICAgICAgaXRlbS0+bmVnYXRlKCk7CiAgICAgICAgICAgICAkJD0gaXRlbTsKICAgICAgICAgICB9 CiAgICAgICAgIHwgYml0X2V4cHIgU09VTkRTX1NZTSBMSUtFIGJpdF9leHByCiAgICAgICAgICAg ewotICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfZXEobmV3IEl0ZW1fZnVuY19zb3VuZGV4 KCQxKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJdGVtX2Z1bmNfc291 bmRleCgkNCkpOworICAgICAgICAgICAgSXRlbSAqaXRlbTE9IG5ldyAoWVlUSEQtPm1lbV9yb290 KSBJdGVtX2Z1bmNfc291bmRleCgkMSk7CisgICAgICAgICAgICBJdGVtICppdGVtND0gbmV3IChZ WVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19zb3VuZGV4KCQ0KTsKKyAgICAgICAgICAgIGlmICgo aXRlbTEgPT0gTlVMTCkgfHwgKGl0ZW00ID09IE5VTEwpKQorICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNf ZXEoaXRlbTEsIGl0ZW00KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgIH0KICAgICAgICAgfCBiaXRfZXhwciBMSUtF IHNpbXBsZV9leHByIG9wdF9lc2NhcGUKLSAgICAgICAgICB7ICQkPSBuZXcgSXRlbV9mdW5jX2xp a2UoJDEsJDMsJDQsTGV4LT5lc2NhcGVfdXNlZCk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAg ICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19saWtlKCQxLCQzLCQ0LExleC0+ ZXNjYXBlX3VzZWQpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IGJpdF9leHByIG5vdCBMSUtF IHNpbXBsZV9leHByIG9wdF9lc2NhcGUKLSAgICAgICAgICB7ICQkPSBuZXcgSXRlbV9mdW5jX25v dChuZXcgSXRlbV9mdW5jX2xpa2UoJDEsJDQsJDUsIExleC0+ZXNjYXBlX3VzZWQpKTsgfQotICAg ICAgICB8IGJpdF9leHByIFJFR0VYUCBiaXRfZXhwciB7ICQkPSBuZXcgSXRlbV9mdW5jX3JlZ2V4 KCQxLCQzKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgIEl0ZW0gKml0ZW09IG5ldyAoWVlU SEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfbGlrZSgkMSwkNCwkNSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZXgtPmVzY2FwZV91 c2VkKTsKKyAgICAgICAgICAgIGlmIChpdGVtID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FM X1lZQUJPUlQ7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVu Y19ub3QoaXRlbSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CisgICAgICAgIHwgYml0X2V4cHIgUkVHRVhQIGJp dF9leHByCisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290 KSBJdGVtX2Z1bmNfcmVnZXgoJDEsJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisg ICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IGJpdF9l eHByIG5vdCBSRUdFWFAgYml0X2V4cHIKLSAgICAgICAgICB7ICQkPSBuZWdhdGVfZXhwcmVzc2lv bihZWVRIRCwgbmV3IEl0ZW1fZnVuY19yZWdleCgkMSwkNCkpOyB9CisgICAgICAgICAgeworICAg ICAgICAgICAgSXRlbSAqaXRlbT0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19yZWdl eCgkMSwkNCk7CisgICAgICAgICAgICBpZiAoaXRlbSA9PSBOVUxMKQorICAgICAgICAgICAgICBN WVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgJCQ9IG5lZ2F0ZV9leHByZXNzaW9uKFlZVEhELCBp dGVtKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBiaXRfZXhwcgogICAgICAgICA7CiAKIGJp dF9leHByOgogICAgICAgICAgIGJpdF9leHByICd8JyBiaXRfZXhwciAlcHJlYyAnfCcKLSAgICAg ICAgICB7ICQkPSBuZXcgSXRlbV9mdW5jX2JpdF9vcigkMSwkMyk7IH0KKyAgICAgICAgICB7Cisg ICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19iaXRfb3IoJDEs JDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZ QUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IGJpdF9leHByICcmJyBiaXRfZXhwciAlcHJl YyAnJicKLSAgICAgICAgICB7ICQkPSBuZXcgSXRlbV9mdW5jX2JpdF9hbmQoJDEsJDMpOyB9Cisg ICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1 bmNfYml0X2FuZCgkMSwkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgYml0X2V4cHIgU0hJ RlRfTEVGVCBiaXRfZXhwciAlcHJlYyBTSElGVF9MRUZUCi0gICAgICAgICAgeyAkJD0gbmV3IEl0 ZW1fZnVuY19zaGlmdF9sZWZ0KCQxLCQzKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQk PSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3NoaWZ0X2xlZnQoJDEsJDMpOworICAg ICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7Cisg ICAgICAgICAgfQogICAgICAgICB8IGJpdF9leHByIFNISUZUX1JJR0hUIGJpdF9leHByICVwcmVj IFNISUZUX1JJR0hUCi0gICAgICAgICAgeyAkJD0gbmV3IEl0ZW1fZnVuY19zaGlmdF9yaWdodCgk MSwkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jv b3QpIEl0ZW1fZnVuY19zaGlmdF9yaWdodCgkMSwkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0g TlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAg IHwgYml0X2V4cHIgJysnIGJpdF9leHByICVwcmVjICcrJwotICAgICAgICAgIHsgJCQ9IG5ldyBJ dGVtX2Z1bmNfcGx1cygkMSwkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3 IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19wbHVzKCQxLCQzKTsKKyAgICAgICAgICAgIGlm ICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0K ICAgICAgICAgfCBiaXRfZXhwciAnLScgYml0X2V4cHIgJXByZWMgJy0nCi0gICAgICAgICAgeyAk JD0gbmV3IEl0ZW1fZnVuY19taW51cygkMSwkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAg ICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19taW51cygkMSwkMyk7CisgICAg ICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAg ICAgICAgICB9CiAgICAgICAgIHwgYml0X2V4cHIgJysnIElOVEVSVkFMX1NZTSBleHByIGludGVy dmFsICVwcmVjICcrJwotICAgICAgICAgIHsgJCQ9IG5ldyBJdGVtX2RhdGVfYWRkX2ludGVydmFs KCQxLCQ0LCQ1LDApOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQt Pm1lbV9yb290KSBJdGVtX2RhdGVfYWRkX2ludGVydmFsKCQxLCQ0LCQ1LDApOworICAgICAgICAg ICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAg ICAgfQogICAgICAgICB8IGJpdF9leHByICctJyBJTlRFUlZBTF9TWU0gZXhwciBpbnRlcnZhbCAl cHJlYyAnLScKLSAgICAgICAgICB7ICQkPSBuZXcgSXRlbV9kYXRlX2FkZF9pbnRlcnZhbCgkMSwk NCwkNSwxKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1f cm9vdCkgSXRlbV9kYXRlX2FkZF9pbnRlcnZhbCgkMSwkNCwkNSwxKTsKKyAgICAgICAgICAgIGlm ICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0K ICAgICAgICAgfCBiaXRfZXhwciAnKicgYml0X2V4cHIgJXByZWMgJyonCi0gICAgICAgICAgeyAk JD0gbmV3IEl0ZW1fZnVuY19tdWwoJDEsJDMpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAg JCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfbXVsKCQxLCQzKTsKKyAgICAgICAg ICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAg ICAgIH0KICAgICAgICAgfCBiaXRfZXhwciAnLycgYml0X2V4cHIgJXByZWMgJy8nCi0gICAgICAg ICAgeyAkJD0gbmV3IEl0ZW1fZnVuY19kaXYoJDEsJDMpOyB9CisgICAgICAgICAgeworICAgICAg ICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfZGl2KCQxLCQzKTsKKyAg ICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwor ICAgICAgICAgIH0KICAgICAgICAgfCBiaXRfZXhwciAnJScgYml0X2V4cHIgJXByZWMgJyUnCi0g ICAgICAgICAgeyAkJD0gbmV3IEl0ZW1fZnVuY19tb2QoJDEsJDMpOyB9CisgICAgICAgICAgewor ICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfbW9kKCQxLCQz KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBiaXRfZXhwciBESVZfU1lNIGJpdF9leHByICVw cmVjIERJVl9TWU0KLSAgICAgICAgICB7ICQkPSBuZXcgSXRlbV9mdW5jX2ludF9kaXYoJDEsJDMp OyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJ dGVtX2Z1bmNfaW50X2RpdigkMSwkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAg ICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgYml0X2V4 cHIgTU9EX1NZTSBiaXRfZXhwciAlcHJlYyBNT0RfU1lNCi0gICAgICAgICAgeyAkJD0gbmV3IEl0 ZW1fZnVuY19tb2QoJDEsJDMpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAo WVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfbW9kKCQxLCQzKTsKKyAgICAgICAgICAgIGlmICgk JCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAg ICAgICAgfCBiaXRfZXhwciAnXicgYml0X2V4cHIKLSAgICAgICAgICB7ICQkPSBuZXcgSXRlbV9m dW5jX2JpdF94b3IoJDEsJDMpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAo WVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfYml0X3hvcigkMSwkMyk7CisgICAgICAgICAgICBp ZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9 CiAgICAgICAgIHwgc2ltcGxlX2V4cHIKICAgICAgICAgOwogCkBAIC03MTM1LDQ1ICs3MzUyLDgw IEBAIHNpbXBsZV9leHByOgogICAgICAgICAgICAgSXRlbSAqaTE9IG5ldyAodGhkLT5tZW1fcm9v dCkgSXRlbV9zdHJpbmcoJDMuc3RyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJDMubGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhkLT5jaGFyc2V0KCkpOworICAgICAgICAg ICAgaWYgKGkxID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAg ICAgICAkJD0gbmV3ICh0aGQtPm1lbV9yb290KSBJdGVtX2Z1bmNfc2V0X2NvbGxhdGlvbigkMSwg aTEpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZ QUJPUlQ7CiAgICAgICAgICAgfQogICAgICAgICB8IGxpdGVyYWwKICAgICAgICAgfCBwYXJhbV9t YXJrZXIKICAgICAgICAgfCB2YXJpYWJsZQogICAgICAgICB8IHN1bV9leHByCiAgICAgICAgIHwg c2ltcGxlX2V4cHIgT1JfT1JfU1lNIHNpbXBsZV9leHByCi0gICAgICAgICAgeyAkJD0gbmV3IChZ WVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19jb25jYXQoJDEsICQzKTsgfQotICAgICAgICB8ICcr JyBzaW1wbGVfZXhwciAlcHJlYyBORUcgeyAkJD0gJDI7IH0KKyAgICAgICAgICB7CisgICAgICAg ICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19jb25jYXQoJDEsICQzKTsK KyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OworICAgICAgICAgIH0KKyAgICAgICAgfCAnKycgc2ltcGxlX2V4cHIgJXByZWMgTkVHCisgICAg ICAgICAgeworICAgICAgICAgICAgJCQ9ICQyOworICAgICAgICAgIH0KICAgICAgICAgfCAnLScg c2ltcGxlX2V4cHIgJXByZWMgTkVHCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jv b3QpIEl0ZW1fZnVuY19uZWcoJDIpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5l dyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfbmVnKCQyKTsKKyAgICAgICAgICAgIGlmICgk JCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAg ICAgICAgfCAnficgc2ltcGxlX2V4cHIgJXByZWMgTkVHCi0gICAgICAgICAgeyAkJD0gbmV3IChZ WVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19iaXRfbmVnKCQyKTsgfQorICAgICAgICAgIHsKKyAg ICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2JpdF9uZWcoJDIp OworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJP UlQ7CisgICAgICAgICAgfQogICAgICAgICB8IG5vdDIgc2ltcGxlX2V4cHIgJXByZWMgTkVHCi0g ICAgICAgICAgeyAkJD0gbmVnYXRlX2V4cHJlc3Npb24oWVlUSEQsICQyKTsgfQorICAgICAgICAg IHsKKyAgICAgICAgICAgICQkPSBuZWdhdGVfZXhwcmVzc2lvbihZWVRIRCwgJDIpOworICAgICAg ICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAg ICAgICAgfQogICAgICAgICB8ICcoJyBzdWJzZWxlY3QgJyknCiAgICAgICAgICAgeyAKICAgICAg ICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9zaW5nbGVyb3dfc3Vic2VsZWN0 KCQyKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOwogICAgICAgICAgIH0KLSAgICAgICAgfCAnKCcgZXhwciAnKScgeyAkJD0gJDI7IH0K KyAgICAgICAgfCAnKCcgZXhwciAnKScKKyAgICAgICAgICB7ICQkPSAkMjsgfQogICAgICAgICB8 ICcoJyBleHByICcsJyBleHByX2xpc3QgJyknCiAgICAgICAgICAgewogICAgICAgICAgICAgJDQt PnB1c2hfZnJvbnQoJDIpOwogICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJ dGVtX3JvdygqJDQpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgfQogICAgICAgICB8IFJPV19TWU0gJygnIGV4cHIg JywnIGV4cHJfbGlzdCAnKScKICAgICAgICAgICB7CiAgICAgICAgICAgICAkNS0+cHVzaF9mcm9u dCgkMyk7CiAgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fcm93KCok NSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIHwgRVhJU1RTICcoJyBzdWJzZWxlY3QgJyknCiAg ICAgICAgICAgewogICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2V4 aXN0c19zdWJzZWxlY3QoJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAg ICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgfQotICAgICAgICB8ICd7JyBpZGVudCBl eHByICd9JyB7ICQkPSAkMzsgfQorICAgICAgICB8ICd7JyBpZGVudCBleHByICd9JworICAgICAg ICAgIHsgJCQ9ICQzOyB9CiAgICAgICAgIHwgTUFUQ0ggaWRlbnRfbGlzdF9hcmcgQUdBSU5TVCAn KCcgYml0X2V4cHIgZnVsbHRleHRfb3B0aW9ucyAnKScKICAgICAgICAgICB7CiAgICAgICAgICAg ICAkMi0+cHVzaF9mcm9udCgkNSk7CiAgICAgICAgICAgICBJdGVtX2Z1bmNfbWF0Y2ggKmkxPSBu ZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX21hdGNoKCokMiwgJDYpOworICAgICAgICAg ICAgaWYgKGkxID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAg ICAgICBTZWxlY3QtPmFkZF9mdGZ1bmNfdG9fbGlzdChpMSk7CiAgICAgICAgICAgICAkJD0gaTE7 CiAgICAgICAgICAgfQpAQCAtNzE4MSwyNiArNzQzMywzNiBAQCBzaW1wbGVfZXhwcjoKICAgICAg ICAgICB7CiAgICAgICAgICAgICAkJD0gY3JlYXRlX2Z1bmNfY2FzdChZWVRIRCwgJDIsIElURU1f Q0FTVF9DSEFSLCBOVUxMLCBOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Jm15X2NoYXJzZXRfYmluKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgIH0KICAgICAgICAgfCBDQVNUX1NZTSAnKCcg ZXhwciBBUyBjYXN0X3R5cGUgJyknCiAgICAgICAgICAgewogICAgICAgICAgICAgTEVYICpsZXg9 IExleDsKICAgICAgICAgICAgICQkPSBjcmVhdGVfZnVuY19jYXN0KFlZVEhELCAkMywgJDUsIGxl eC0+bGVuZ3RoLCBsZXgtPmRlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl eC0+Y2hhcnNldCk7Ci0gICAgICAgICAgICBpZiAoISQkKQorICAgICAgICAgICAgaWYgKCQkID09 IE5VTEwpCiAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgfQogICAgICAg ICB8IENBU0VfU1lNIG9wdF9leHByIHdoZW5fbGlzdCBvcHRfZWxzZSBFTkQKLSAgICAgICAgICB7 ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2Nhc2UoKiAkMywgJDIsICQ0ICk7 IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0 ZW1fZnVuY19jYXNlKCogJDMsICQyLCAkNCApOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwp CisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IENP TlZFUlRfU1lNICcoJyBleHByICcsJyBjYXN0X3R5cGUgJyknCiAgICAgICAgICAgewogICAgICAg ICAgICAgJCQ9IGNyZWF0ZV9mdW5jX2Nhc3QoWVlUSEQsICQzLCAkNSwgTGV4LT5sZW5ndGgsIExl eC0+ZGVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGV4LT5jaGFyc2V0KTsK LSAgICAgICAgICAgIGlmICghJCQpCisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKICAgICAg ICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIHwgQ09OVkVSVF9T WU0gJygnIGV4cHIgVVNJTkcgY2hhcnNldF9uYW1lICcpJwotICAgICAgICAgIHsgJCQ9IG5ldyAo WVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfY29udl9jaGFyc2V0KCQzLCQ1KTsgfQorICAgICAg ICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2Nv bnZfY2hhcnNldCgkMywkNSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgREVGQVVMVCAnKCcg c2ltcGxlX2lkZW50ICcpJwogICAgICAgICAgIHsKICAgICAgICAgICAgIGlmICgkMy0+aXNfc3Bs b2NhbCgpKQpAQCAtNzIxMiwxNSArNzQ3NCwyMyBAQCBzaW1wbGVfZXhwcjoKICAgICAgICAgICAg IH0KICAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9kZWZhdWx0X3Zh bHVlKExleC0+Y3VycmVudF9jb250ZXh0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0g TlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAg IHwgVkFMVUVTICcoJyBzaW1wbGVfaWRlbnRfbm9zcHZhciAnKScKICAgICAgICAgICB7CiAgICAg ICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1faW5zZXJ0X3ZhbHVlKExleC0+ Y3VycmVudF9jb250ZXh0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAg ICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgIH0KICAgICAgICAgfCBJTlRFUlZB TF9TWU0gZXhwciBpbnRlcnZhbCAnKycgZXhwciAlcHJlYyBJTlRFUlZBTF9TWU0KICAgICAgICAg ICAvKiB3ZSBjYW5ub3QgcHV0IGludGVydmFsIGJlZm9yZSAtICovCi0gICAgICAgICAgeyAkJD0g bmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZGF0ZV9hZGRfaW50ZXJ2YWwoJDUsJDIsJDMsMCk7 IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0 ZW1fZGF0ZV9hZGRfaW50ZXJ2YWwoJDUsJDIsJDMsMCk7CisgICAgICAgICAgICBpZiAoJCQgPT0g TlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAg IDsKIAogLyoKQEAgLTcyMzEsMzEgKzc1MDEsNjMgQEAgc2ltcGxlX2V4cHI6CiAqLwogZnVuY3Rp b25fY2FsbF9rZXl3b3JkOgogICAgICAgICAgIENIQVJfU1lNICcoJyBleHByX2xpc3QgJyknCi0g ICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19jaGFyKCokMyk7 IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0 ZW1fZnVuY19jaGFyKCokMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgQ0hBUl9TWU0gJygn IGV4cHJfbGlzdCBVU0lORyBjaGFyc2V0X25hbWUgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZ WVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19jaGFyKCokMywgJDUpOyB9CisgICAgICAgICAgewor ICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfY2hhcigqJDMs ICQ1KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBDVVJSRU5UX1VTRVIgb3B0aW9uYWxfYnJh Y2VzCiAgICAgICAgICAgewogICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJ dGVtX2Z1bmNfY3VycmVudF91c2VyKExleC0+Y3VycmVudF9jb250ZXh0KCkpOworICAgICAgICAg ICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAg ICAgICBMZXgtPnNldF9zdG10X3Vuc2FmZSgpOwogICAgICAgICAgICAgTGV4LT5zYWZlX3RvX2Nh Y2hlX3F1ZXJ5PSAwOwogICAgICAgICAgIH0KICAgICAgICAgfCBEQVRFX1NZTSAnKCcgZXhwciAn KScKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9kYXRlX3R5cGVj YXN0KCQzKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1f cm9vdCkgSXRlbV9kYXRlX3R5cGVjYXN0KCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxM KQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBE QVlfU1lNICcoJyBleHByICcpJwotICAgICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290 KSBJdGVtX2Z1bmNfZGF5b2Ztb250aCgkMyk7IH0KLSAgICAgICAgfCBIT1VSX1NZTSAnKCcgZXhw ciAnKScKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2hv dXIoJDMpOyB9Ci0gICAgICAgIHwgSU5TRVJUICcoJyBleHByICcsJyBleHByICcsJyBleHByICcs JyBleHByICcpJwotICAgICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1 bmNfaW5zZXJ0KCQzLCQ1LCQ3LCQ5KTsgfQotICAgICAgICB8IElOVEVSVkFMX1NZTSAnKCcgZXhw ciAnLCcgZXhwciAnKScgJXByZWMgSU5URVJWQUxfU1lNCiAgICAgICAgICAgewotICAgICAgICAg ICAgVEhEICp0aGQ9IFlZVEhEOworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290 KSBJdGVtX2Z1bmNfZGF5b2Ztb250aCgkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkK KyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CisgICAgICAgIHwgSE9V Ul9TWU0gJygnIGV4cHIgJyknCisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlU SEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfaG91cigkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0g TlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CisgICAgICAg IHwgSU5TRVJUICcoJyBleHByICcsJyBleHByICcsJyBleHByICcsJyBleHByICcpJworICAgICAg ICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2lu c2VydCgkMywkNSwkNywkOSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CisgICAgICAgIHwgSU5URVJWQUxfU1lN ICcoJyBleHByICcsJyBleHByICcpJyAlcHJlYyBJTlRFUlZBTF9TWU0KKyAgICAgICAgICB7Cisg ICAgICAgICAgICBUSEQgKnRoZD0gWVlUSEQ7CiAgICAgICAgICAgICBMaXN0PEl0ZW0+ICpsaXN0 PSBuZXcgKHRoZC0+bWVtX3Jvb3QpIExpc3Q8SXRlbT47CisgICAgICAgICAgICBpZiAobGlzdCA9 PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgbGlzdC0+ cHVzaF9mcm9udCgkNSk7CiAgICAgICAgICAgICBsaXN0LT5wdXNoX2Zyb250KCQzKTsKICAgICAg ICAgICAgIEl0ZW1fcm93ICppdGVtPSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1fcm93KCpsaXN0 KTsKKyAgICAgICAgICAgIGlmIChpdGVtID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZ QUJPUlQ7CiAgICAgICAgICAgICAkJD0gbmV3ICh0aGQtPm1lbV9yb290KSBJdGVtX2Z1bmNfaW50 ZXJ2YWwoaXRlbSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIHwgSU5URVJWQUxfU1lNICcoJyBl eHByICcsJyBleHByICcsJyBleHByX2xpc3QgJyknICVwcmVjIElOVEVSVkFMX1NZTQogICAgICAg ICAgIHsKQEAgLTcyNjMsNDggKzc1NjUsMTIwIEBAIGZ1bmN0aW9uX2NhbGxfa2V5d29yZDoKICAg ICAgICAgICAgICQ3LT5wdXNoX2Zyb250KCQ1KTsKICAgICAgICAgICAgICQ3LT5wdXNoX2Zyb250 KCQzKTsKICAgICAgICAgICAgIEl0ZW1fcm93ICppdGVtPSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0 ZW1fcm93KCokNyk7CisgICAgICAgICAgICBpZiAoaXRlbSA9PSBOVUxMKQorICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgJCQ9IG5ldyAodGhkLT5tZW1fcm9vdCkgSXRl bV9mdW5jX2ludGVydmFsKGl0ZW0pOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAg ICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgfQogICAgICAgICB8IExFRlQgJygn IGV4cHIgJywnIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3Qp IEl0ZW1fZnVuY19sZWZ0KCQzLCQ1KTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBu ZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2xlZnQoJDMsJDUpOworICAgICAgICAgICAg aWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAg fQogICAgICAgICB8IE1JTlVURV9TWU0gJygnIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3 IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19taW51dGUoJDMpOyB9CisgICAgICAgICAgewor ICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfbWludXRlKCQz KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBNT05USF9TWU0gJygnIGV4cHIgJyknCi0gICAg ICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19tb250aCgkMyk7IH0K KyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1f ZnVuY19tb250aCgkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAg ICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgUklHSFQgJygnIGV4cHIg JywnIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1f ZnVuY19yaWdodCgkMywkNSk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZ WVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19yaWdodCgkMywkNSk7CisgICAgICAgICAgICBpZiAo JCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAg ICAgICAgIHwgU0VDT05EX1NZTSAnKCcgZXhwciAnKScKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZ VEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3NlY29uZCgkMyk7IH0KKyAgICAgICAgICB7CisgICAg ICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19zZWNvbmQoJDMpOwor ICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CisgICAgICAgICAgfQogICAgICAgICB8IFRJTUVfU1lNICcoJyBleHByICcpJwotICAgICAgICAg IHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX3RpbWVfdHlwZWNhc3QoJDMpOyB9Cisg ICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX3Rp bWVfdHlwZWNhc3QoJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IFRJTUVTVEFNUCAnKCcg ZXhwciAnKScKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9kYXRl dGltZV90eXBlY2FzdCgkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZ WVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZGF0ZXRpbWVfdHlwZWNhc3QoJDMpOworICAgICAgICAgICAg aWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAg fQogICAgICAgICB8IFRJTUVTVEFNUCAnKCcgZXhwciAnLCcgZXhwciAnKScKLSAgICAgICAgICB7 ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2FkZF90aW1lKCQzLCAkNSwgMSwg MCk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3Qp IEl0ZW1fZnVuY19hZGRfdGltZSgkMywgJDUsIDEsIDApOworICAgICAgICAgICAgaWYgKCQkID09 IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAg ICB8IFRSSU0gJygnIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jv b3QpIEl0ZW1fZnVuY190cmltKCQzKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBu ZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3RyaW0oJDMpOworICAgICAgICAgICAgaWYg KCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQog ICAgICAgICB8IFRSSU0gJygnIExFQURJTkcgZXhwciBGUk9NIGV4cHIgJyknCi0gICAgICAgICAg eyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19sdHJpbSgkNiwkNCk7IH0KKyAg ICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVu Y19sdHJpbSgkNiwkNCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAg ICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgVFJJTSAnKCcgVFJBSUxJ TkcgZXhwciBGUk9NIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jv b3QpIEl0ZW1fZnVuY19ydHJpbSgkNiwkNCk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAk JD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19ydHJpbSgkNiwkNCk7CisgICAgICAg ICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAg ICAgICB9CiAgICAgICAgIHwgVFJJTSAnKCcgQk9USCBleHByIEZST00gZXhwciAnKScKLSAgICAg ICAgICB7ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3RyaW0oJDYsJDQpOyB9 CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVt X2Z1bmNfdHJpbSgkNiwkNCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgVFJJTSAnKCcgTEVB RElORyBGUk9NIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3Qp IEl0ZW1fZnVuY19sdHJpbSgkNSk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3 IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19sdHJpbSgkNSk7CisgICAgICAgICAgICBpZiAo JCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAg ICAgICAgIHwgVFJJTSAnKCcgVFJBSUxJTkcgRlJPTSBleHByICcpJwotICAgICAgICAgIHsgJCQ9 IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfcnRyaW0oJDUpOyB9CisgICAgICAgICAg eworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfcnRyaW0o JDUpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZ QUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IFRSSU0gJygnIEJPVEggRlJPTSBleHByICcp JwotICAgICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfdHJpbSgk NSk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3Qp IEl0ZW1fZnVuY190cmltKCQ1KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBUUklNICcoJyBl eHByIEZST00gZXhwciAnKScKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkg SXRlbV9mdW5jX3RyaW0oJDUsJDMpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5l dyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfdHJpbSgkNSwkMyk7CisgICAgICAgICAgfQog ICAgICAgICB8IFVTRVIgJygnICcpJwogICAgICAgICAgIHsKICAgICAgICAgICAgICQkPSBuZXcg KFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3VzZXIoKTsKKyAgICAgICAgICAgIGlmICgkJCA9 PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgTGV4LT5z ZXRfc3RtdF91bnNhZmUoKTsKICAgICAgICAgICAgIExleC0+c2FmZV90b19jYWNoZV9xdWVyeT0w OwogICAgICAgICAgIH0KICAgICAgICAgfCBZRUFSX1NZTSAnKCcgZXhwciAnKScKLSAgICAgICAg ICB7ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3llYXIoJDMpOyB9CisgICAg ICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNf eWVhcigkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIDsKIAogLyoKQEAgLTczMjQsNjUgKzc2 OTgsMTI3IEBAIGZ1bmN0aW9uX2NhbGxfbm9ua2V5d29yZDoKICAgICAgICAgICB7CiAgICAgICAg ICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZGF0ZV9hZGRfaW50ZXJ2YWwoJDMs ICQ1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElOVEVSVkFMX0RBWSwgMCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkK KyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIHwgQURE REFURV9TWU0gJygnIGV4cHIgJywnIElOVEVSVkFMX1NZTSBleHByIGludGVydmFsICcpJwotICAg ICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2RhdGVfYWRkX2ludGVydmFs KCQzLCAkNiwgJDcsIDApOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlU SEQtPm1lbV9yb290KSBJdGVtX2RhdGVfYWRkX2ludGVydmFsKCQzLCAkNiwgJDcsIDApOworICAg ICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7Cisg ICAgICAgICAgfQogICAgICAgICB8IENVUkRBVEUgb3B0aW9uYWxfYnJhY2VzCiAgICAgICAgICAg ewogICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfY3VyZGF0 ZV9sb2NhbCgpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1Z U1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICBMZXgtPnNhZmVfdG9fY2FjaGVfcXVlcnk9MDsKICAg ICAgICAgICB9CiAgICAgICAgIHwgQ1VSVElNRSBvcHRpb25hbF9icmFjZXMKICAgICAgICAgICB7 CiAgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19jdXJ0aW1l X2xvY2FsKCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKICAgICAgICAgICAgIExleC0+c2FmZV90b19jYWNoZV9xdWVyeT0wOwogICAg ICAgICAgIH0KICAgICAgICAgfCBDVVJUSU1FICcoJyBleHByICcpJwogICAgICAgICAgIHsKICAg ICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2N1cnRpbWVfbG9j YWwoJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FM X1lZQUJPUlQ7CiAgICAgICAgICAgICBMZXgtPnNhZmVfdG9fY2FjaGVfcXVlcnk9MDsKICAgICAg ICAgICB9Ci0gICAgICAgIHwgREFURV9BRERfSU5URVJWQUwgJygnIGV4cHIgJywnIElOVEVSVkFM X1NZTSBleHByIGludGVydmFsICcpJyAlcHJlYyBJTlRFUlZBTF9TWU0KLSAgICAgICAgICB7ICQk PSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9kYXRlX2FkZF9pbnRlcnZhbCgkMywkNiwkNyww KTsgfQotICAgICAgICB8IERBVEVfU1VCX0lOVEVSVkFMICcoJyBleHByICcsJyBJTlRFUlZBTF9T WU0gZXhwciBpbnRlcnZhbCAnKScgJXByZWMgSU5URVJWQUxfU1lNCi0gICAgICAgICAgeyAkJD0g bmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZGF0ZV9hZGRfaW50ZXJ2YWwoJDMsJDYsJDcsMSk7 IH0KKyAgICAgICAgfCBEQVRFX0FERF9JTlRFUlZBTCAnKCcgZXhwciAnLCcgSU5URVJWQUxfU1lN IGV4cHIgaW50ZXJ2YWwgJyknCisgICAgICAgICAgJXByZWMgSU5URVJWQUxfU1lNCisgICAgICAg ICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2RhdGVfYWRk X2ludGVydmFsKCQzLCQ2LCQ3LDApOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAg ICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQorICAgICAgICB8IERBVEVfU1VC X0lOVEVSVkFMICcoJyBleHByICcsJyBJTlRFUlZBTF9TWU0gZXhwciBpbnRlcnZhbCAnKScKKyAg ICAgICAgICAlcHJlYyBJTlRFUlZBTF9TWU0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0g bmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZGF0ZV9hZGRfaW50ZXJ2YWwoJDMsJDYsJDcsMSk7 CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9S VDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgRVhUUkFDVF9TWU0gJygnIGludGVydmFsIEZST00g ZXhwciAnKScKLSAgICAgICAgICB7ICQkPW5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2V4dHJh Y3QoICQzLCAkNSk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD1uZXcgKFlZVEhELT5t ZW1fcm9vdCkgSXRlbV9leHRyYWN0KCAkMywgJDUpOworICAgICAgICAgICAgaWYgKCQkID09IE5V TEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8 IEdFVF9GT1JNQVQgJygnIGRhdGVfdGltZV90eXBlICAnLCcgZXhwciAnKScKLSAgICAgICAgICB7 ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2dldF9mb3JtYXQoJDMsICQ1KTsg fQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRl bV9mdW5jX2dldF9mb3JtYXQoJDMsICQ1KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBOT1df U1lNIG9wdGlvbmFsX2JyYWNlcwogICAgICAgICAgIHsKICAgICAgICAgICAgICQkPSBuZXcgKFlZ VEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX25vd19sb2NhbCgpOworICAgICAgICAgICAgaWYgKCQk ID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICBMZXgt PnNhZmVfdG9fY2FjaGVfcXVlcnk9MDsKICAgICAgICAgICB9CiAgICAgICAgIHwgTk9XX1NZTSAn KCcgZXhwciAnKScKICAgICAgICAgICB7CiAgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVt X3Jvb3QpIEl0ZW1fZnVuY19ub3dfbG9jYWwoJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5V TEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICBMZXgtPnNhZmVf dG9fY2FjaGVfcXVlcnk9MDsKICAgICAgICAgICB9CiAgICAgICAgIHwgUE9TSVRJT05fU1lNICco JyBiaXRfZXhwciBJTl9TWU0gZXhwciAnKScKLSAgICAgICAgICB7ICQkID0gbmV3IChZWVRIRC0+ bWVtX3Jvb3QpIEl0ZW1fZnVuY19sb2NhdGUoJDUsJDMpOyB9CisgICAgICAgICAgeworICAgICAg ICAgICAgJCQgPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2xvY2F0ZSgkNSwkMyk7 CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9S VDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgU1VCREFURV9TWU0gJygnIGV4cHIgJywnIGV4cHIg JyknCiAgICAgICAgICAgewogICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJ dGVtX2RhdGVfYWRkX2ludGVydmFsKCQzLCAkNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTlRFUlZBTF9EQVksIDEpOworICAg ICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAg ICAgICAgICAgfQogICAgICAgICB8IFNVQkRBVEVfU1lNICcoJyBleHByICcsJyBJTlRFUlZBTF9T WU0gZXhwciBpbnRlcnZhbCAnKScKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9v dCkgSXRlbV9kYXRlX2FkZF9pbnRlcnZhbCgkMywgJDYsICQ3LCAxKTsgfQorICAgICAgICAgIHsK KyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9kYXRlX2FkZF9pbnRl cnZhbCgkMywgJDYsICQ3LCAxKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBTVUJTVFJJTkcg JygnIGV4cHIgJywnIGV4cHIgJywnIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRI RC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19zdWJzdHIoJDMsJDUsJDcpOyB9CisgICAgICAgICAgewor ICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfc3Vic3RyKCQz LCQ1LCQ3KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBTVUJTVFJJTkcgJygnIGV4cHIgJywn IGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVu Y19zdWJzdHIoJDMsJDUpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlU SEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfc3Vic3RyKCQzLCQ1KTsKKyAgICAgICAgICAgIGlmICgk JCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAg ICAgICAgfCBTVUJTVFJJTkcgJygnIGV4cHIgRlJPTSBleHByIEZPUl9TWU0gZXhwciAnKScKLSAg ICAgICAgICB7ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3N1YnN0cigkMywk NSwkNyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jv b3QpIEl0ZW1fZnVuY19zdWJzdHIoJDMsJDUsJDcpOworICAgICAgICAgICAgaWYgKCQkID09IE5V TEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8 IFNVQlNUUklORyAnKCcgZXhwciBGUk9NIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZ WVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19zdWJzdHIoJDMsJDUpOyB9CisgICAgICAgICAgewor ICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfc3Vic3RyKCQz LCQ1KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBTWVNEQVRFIG9wdGlvbmFsX2JyYWNlcwog ICAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChnbG9iYWxfc3lzdGVtX3ZhcmlhYmxlcy5zeXNk YXRlX2lzX25vdyA9PSAwKQogICAgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3Qp IEl0ZW1fZnVuY19zeXNkYXRlX2xvY2FsKCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg ICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX25vd19sb2NhbCgpOworICAg ICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAg ICAgICAgICAgICBMZXgtPnNhZmVfdG9fY2FjaGVfcXVlcnk9MDsKICAgICAgICAgICB9CiAgICAg ICAgIHwgU1lTREFURSAnKCcgZXhwciAnKScKQEAgLTczOTEsMjUgKzc4MjcsNDEgQEAgZnVuY3Rp b25fY2FsbF9ub25rZXl3b3JkOgogICAgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jv b3QpIEl0ZW1fZnVuY19zeXNkYXRlX2xvY2FsKCQzKTsKICAgICAgICAgICAgIGVsc2UKICAgICAg ICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfbm93X2xvY2FsKCQz KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOwogICAgICAgICAgICAgTGV4LT5zYWZlX3RvX2NhY2hlX3F1ZXJ5PTA7CiAgICAgICAgICAg fQogICAgICAgICB8IFRJTUVTVEFNUF9BREQgJygnIGludGVydmFsX3RpbWVfc3RhbXAgJywnIGV4 cHIgJywnIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0 ZW1fZGF0ZV9hZGRfaW50ZXJ2YWwoJDcsJDUsJDMsMCk7IH0KKyAgICAgICAgICB7CisgICAgICAg ICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZGF0ZV9hZGRfaW50ZXJ2YWwoJDcs JDUsJDMsMCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgVElNRVNUQU1QX0RJRkYgJygnIGlu dGVydmFsX3RpbWVfc3RhbXAgJywnIGV4cHIgJywnIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0g bmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY190aW1lc3RhbXBfZGlmZigkNSwkNywkMyk7 IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0 ZW1fZnVuY190aW1lc3RhbXBfZGlmZigkNSwkNywkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0g TlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAg IHwgVVRDX0RBVEVfU1lNIG9wdGlvbmFsX2JyYWNlcwogICAgICAgICAgIHsKICAgICAgICAgICAg ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2N1cmRhdGVfdXRjKCk7CisgICAg ICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAg ICAgICAgICAgIExleC0+c2FmZV90b19jYWNoZV9xdWVyeT0wOwogICAgICAgICAgIH0KICAgICAg ICAgfCBVVENfVElNRV9TWU0gb3B0aW9uYWxfYnJhY2VzCiAgICAgICAgICAgewogICAgICAgICAg ICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfY3VydGltZV91dGMoKTsKKyAg ICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwog ICAgICAgICAgICAgTGV4LT5zYWZlX3RvX2NhY2hlX3F1ZXJ5PTA7CiAgICAgICAgICAgfQogICAg ICAgICB8IFVUQ19USU1FU1RBTVBfU1lNIG9wdGlvbmFsX2JyYWNlcwogICAgICAgICAgIHsKICAg ICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX25vd191dGMoKTsK KyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OwogICAgICAgICAgICAgTGV4LT5zYWZlX3RvX2NhY2hlX3F1ZXJ5PTA7CiAgICAgICAgICAgfQog ICAgICAgICA7CkBAIC03NDIxLDI2ICs3ODczLDYwIEBAIGZ1bmN0aW9uX2NhbGxfbm9ua2V5d29y ZDoKICovCiBmdW5jdGlvbl9jYWxsX2NvbmZsaWN0OgogICAgICAgICAgIEFTQ0lJX1NZTSAnKCcg ZXhwciAnKScKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5j X2FzY2lpKCQzKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5t ZW1fcm9vdCkgSXRlbV9mdW5jX2FzY2lpKCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxM KQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBD SEFSU0VUICcoJyBleHByICcpJwotICAgICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290 KSBJdGVtX2Z1bmNfY2hhcnNldCgkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0g bmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19jaGFyc2V0KCQzKTsKKyAgICAgICAgICAg IGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAg IH0KICAgICAgICAgfCBDT0FMRVNDRSAnKCcgZXhwcl9saXN0ICcpJwotICAgICAgICAgIHsgJCQ9 IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfY29hbGVzY2UoKiAkMyk7IH0KKyAgICAg ICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19j b2FsZXNjZSgqICQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBDT0xMQVRJT05fU1lNICco JyBleHByICcpJwotICAgICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1 bmNfY29sbGF0aW9uKCQzKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZ VEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2NvbGxhdGlvbigkMyk7CisgICAgICAgICAgICBpZiAo JCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAg ICAgICAgIHwgREFUQUJBU0UgJygnICcpJwogICAgICAgICAgIHsKICAgICAgICAgICAgICQkPSBu ZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2RhdGFiYXNlKCk7CisgICAgICAgICAgICBp ZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICAg IExleC0+c2FmZV90b19jYWNoZV9xdWVyeT0wOwogICAgICAgICAgIH0KICAgICAgICAgfCBJRiAn KCcgZXhwciAnLCcgZXhwciAnLCcgZXhwciAnKScKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZVEhE LT5tZW1fcm9vdCkgSXRlbV9mdW5jX2lmKCQzLCQ1LCQ3KTsgfQorICAgICAgICAgIHsKKyAgICAg ICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2lmKCQzLCQ1LCQ3KTsK KyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OworICAgICAgICAgIH0KICAgICAgICAgfCBNSUNST1NFQ09ORF9TWU0gJygnIGV4cHIgJyknCi0g ICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19taWNyb3NlY29u ZCgkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jv b3QpIEl0ZW1fZnVuY19taWNyb3NlY29uZCgkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVM TCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwg TU9EX1NZTSAnKCcgZXhwciAnLCcgZXhwciAnKScKLSAgICAgICAgICB7ICQkID0gbmV3IChZWVRI RC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19tb2QoICQzLCAkNSk7IH0KKyAgICAgICAgICB7CisgICAg ICAgICAgICAkJCA9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfbW9kKCQzLCAkNSk7 CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9S VDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgT0xEX1BBU1NXT1JEICcoJyBleHByICcpJwotICAg ICAgICAgIHsgJCQ9ICBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX29sZF9wYXNzd29y ZCgkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gIG5ldyAoWVlUSEQtPm1lbV9y b290KSBJdGVtX2Z1bmNfb2xkX3Bhc3N3b3JkKCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBO VUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAg fCBQQVNTV09SRCAnKCcgZXhwciAnKScKICAgICAgICAgICB7CiAgICAgICAgICAgICBUSEQgKnRo ZD0gWVlUSEQ7CkBAIC03NDQ5LDUxICs3OTM1LDk1IEBAIGZ1bmN0aW9uX2NhbGxfY29uZmxpY3Q6 CiAgICAgICAgICAgICAgIGkxPSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19vbGRfcGFz c3dvcmQoJDMpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICBpMT0gbmV3ICh0aGQt Pm1lbV9yb290KSBJdGVtX2Z1bmNfcGFzc3dvcmQoJDMpOworICAgICAgICAgICAgaWYgKGkxID09 IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICAkJD0gaTE7 CiAgICAgICAgICAgfQogICAgICAgICB8IFFVQVJURVJfU1lNICcoJyBleHByICcpJwotICAgICAg ICAgIHsgJCQgPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3F1YXJ0ZXIoJDMpOyB9 CisgICAgICAgICAgeworICAgICAgICAgICAgJCQgPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRl bV9mdW5jX3F1YXJ0ZXIoJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAg ICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IFJFUEVBVF9TWU0g JygnIGV4cHIgJywnIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jv b3QpIEl0ZW1fZnVuY19yZXBlYXQoJDMsJDUpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAg JCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfcmVwZWF0KCQzLCQ1KTsKKyAgICAg ICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAg ICAgICAgIH0KICAgICAgICAgfCBSRVBMQUNFICcoJyBleHByICcsJyBleHByICcsJyBleHByICcp JwotICAgICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfcmVwbGFj ZSgkMywkNSwkNyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+ bWVtX3Jvb3QpIEl0ZW1fZnVuY19yZXBsYWNlKCQzLCQ1LCQ3KTsKKyAgICAgICAgICAgIGlmICgk JCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAg ICAgICAgfCBSRVZFUlNFX1NZTSAnKCcgZXhwciAnKScKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZ VEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3JldmVyc2UoJDMpOyB9CisgICAgICAgICAgeworICAg ICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfcmV2ZXJzZSgkMyk7 CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9S VDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgVFJVTkNBVEVfU1lNICcoJyBleHByICcsJyBleHBy ICcpJwotICAgICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfcm91 bmQoJDMsJDUsMSk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+ bWVtX3Jvb3QpIEl0ZW1fZnVuY19yb3VuZCgkMywkNSwxKTsKKyAgICAgICAgICAgIGlmICgkJCA9 PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAg ICAgfCBXRUVLX1NZTSAnKCcgZXhwciAnKScKICAgICAgICAgICB7CiAgICAgICAgICAgICBUSEQg KnRoZD0gWVlUSEQ7CiAgICAgICAgICAgICBJdGVtICppMT0gbmV3ICh0aGQtPm1lbV9yb290KSBJ dGVtX2ludCgoY2hhciopICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0aGQtPnZhcmlhYmxlcy5kZWZhdWx0X3dlZWtfZm9ybWF0LAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSk7Ci0KKyAgICAgICAgICAg IGlmIChpMSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAg ICAgJCQ9IG5ldyAodGhkLT5tZW1fcm9vdCkgSXRlbV9mdW5jX3dlZWsoJDMsIGkxKTsKKyAgICAg ICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAg ICAgICAgIH0KICAgICAgICAgfCBXRUVLX1NZTSAnKCcgZXhwciAnLCcgZXhwciAnKScKLSAgICAg ICAgICB7ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3dlZWsoJDMsJDUpOyB9 CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVt X2Z1bmNfd2VlaygkMywkNSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgV0VJR0hUX1NUUklO R19TWU0gJygnIGV4cHIgb3B0X3dzX2xldmVscyAnKScKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZ VEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3dlaWdodF9zdHJpbmcoJDMsIDAsIDAsICQ0KTsgfQor ICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9m dW5jX3dlaWdodF9zdHJpbmcoJDMsIDAsIDAsICQ0KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBO VUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAg fCBXRUlHSFRfU1RSSU5HX1NZTSAnKCcgZXhwciBBUyBDSEFSX1NZTSB3c19ud2VpZ2h0cyBvcHRf d3NfbGV2ZWxzICcpJwogICAgICAgICAgIHsKICAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5t ZW1fcm9vdCkKICAgICAgICAgICAgICAgICBJdGVtX2Z1bmNfd2VpZ2h0X3N0cmluZygkMywgMCwg JDYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDcgfCBNWV9TVFJY RlJNX1BBRF9XSVRIX1NQQUNFKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgIH0KICAgICAgICAgfCBXRUlHSFRfU1RS SU5HX1NZTSAnKCcgZXhwciBBUyBCSU5BUlkgd3NfbndlaWdodHMgJyknCiAgICAgICAgICAgewot ICAgICAgICAgICAgJDM9IGNyZWF0ZV9mdW5jX2NoYXJfY2FzdChZWVRIRCwgJDMsICQ2LCAmbXlf Y2hhcnNldF9iaW4pOworICAgICAgICAgICAgSXRlbSAqaXRlbT0gY3JlYXRlX2Z1bmNfY2hhcl9j YXN0KFlZVEhELCAkMywgJDYsICZteV9jaGFyc2V0X2Jpbik7CisgICAgICAgICAgICBpZiAoaXRl bSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgJCQ9 IG5ldyAoWVlUSEQtPm1lbV9yb290KQotICAgICAgICAgICAgICAgIEl0ZW1fZnVuY193ZWlnaHRf c3RyaW5nKCQzLCAwLCAkNiwgTVlfU1RSWEZSTV9QQURfV0lUSF9TUEFDRSk7CisgICAgICAgICAg ICAgICAgSXRlbV9mdW5jX3dlaWdodF9zdHJpbmcoaXRlbSwgMCwgJDYsIE1ZX1NUUlhGUk1fUEFE X1dJVEhfU1BBQ0UpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgfQogICAgICAgICB8IFdFSUdIVF9TVFJJTkdfU1lN ICcoJyBleHByICcsJyB1bG9uZ19udW0gJywnIHVsb25nX251bSAnLCcgdWxvbmdfbnVtICcpJwog ICAgICAgICAgIHsKICAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9m dW5jX3dlaWdodF9zdHJpbmcoJDMsICQ1LCAkNywgJDkpOworICAgICAgICAgICAgaWYgKCQkID09 IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgfQogICAgICAg ICB8IGdlb21ldHJ5X2Z1bmN0aW9uCiAgICAgICAgICAgewogI2lmZGVmIEhBVkVfU1BBVElBTAog ICAgICAgICAgICAgJCQ9ICQxOworICAgICAgICAgICAgLyogJDEgbWF5IGJlIE5VTEwsIEdFT01f TkVXIG5vdCB0ZXN0ZWQgZm9yIG91dCBvZiBtZW1vcnkgKi8KKyAgICAgICAgICAgIGlmICgkJCA9 PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogI2Vsc2UKICAgICAgICAgICAg IG15X2Vycm9yKEVSX0ZFQVRVUkVfRElTQUJMRUQsIE1ZRigwKSwKICAgICAgICAgICAgICAgICAg ICAgIHN5bV9ncm91cF9nZW9tLm5hbWUsIHN5bV9ncm91cF9nZW9tLm5lZWRlZF9kZWZpbmUpOwpA QCAtNzUwMiw2ICs4MDMyLDcgQEAgZnVuY3Rpb25fY2FsbF9jb25mbGljdDoKICAgICAgICAgICB9 CiAgICAgICAgIDsKIAorLyogbWF5IHJldHVybiBOVUxMICovCiBnZW9tZXRyeV9mdW5jdGlvbjoK ICAgICAgICAgICBDT05UQUlOU19TWU0gJygnIGV4cHIgJywnIGV4cHIgJyknCiAgICAgICAgICAg ewpAQCAtNzU0NSw3ICs4MDc2LDkgQEAgZ2VvbWV0cnlfZnVuY3Rpb246CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHZW9tZXRyeTo6d2tiX3BvbHlnb24pKTsKICAgICAgICAgICB9CiAgICAg ICAgIHwgUE9JTlRfU1lNICcoJyBleHByICcsJyBleHByICcpJwotICAgICAgICAgIHsgJCQ9IEdF T01fTkVXKFlZVEhELCBJdGVtX2Z1bmNfcG9pbnQoJDMsJDUpKTsgfQorICAgICAgICAgIHsKKyAg ICAgICAgICAgICQkPSBHRU9NX05FVyhZWVRIRCwgSXRlbV9mdW5jX3BvaW50KCQzLCQ1KSk7Cisg ICAgICAgICAgfQogICAgICAgICB8IFBPTFlHT04gJygnIGV4cHJfbGlzdCAnKScKICAgICAgICAg ICB7CiAgICAgICAgICAgICAkJD0gR0VPTV9ORVcoWVlUSEQsCkBAIC03NjkwLDYgKzgyMjMsOCBA QCB1ZGZfZXhwcl9saXN0OgogICAgICAgICAgIHVkZl9leHByCiAgICAgICAgICAgewogICAgICAg ICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBMaXN0PEl0ZW0+OworICAgICAgICAgICAg aWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAg ICAkJC0+cHVzaF9iYWNrKCQxKTsKICAgICAgICAgICB9CiAgICAgICAgIHwgdWRmX2V4cHJfbGlz dCAnLCcgdWRmX2V4cHIKQEAgLTc3MjEsNTAgKzgyNTYsMTI1IEBAIHVkZl9leHByOgogCiBzdW1f ZXhwcjoKICAgICAgICAgICBBVkdfU1lNICcoJyBpbl9zdW1fZXhwciAnKScKLSAgICAgICAgICB7 ICQkPW5ldyBJdGVtX3N1bV9hdmcoJDMpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9 IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX3N1bV9hdmcoJDMpOworICAgICAgICAgICAgaWYg KCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQog ICAgICAgICB8IEFWR19TWU0gJygnIERJU1RJTkNUIGluX3N1bV9leHByICcpJwotICAgICAgICAg IHsgJCQ9bmV3IEl0ZW1fc3VtX2F2Z19kaXN0aW5jdCgkNCk7IH0KKyAgICAgICAgICB7CisgICAg ICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fc3VtX2F2Z19kaXN0aW5jdCgk NCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgQklUX0FORCAgJygnIGluX3N1bV9leHByICcp JwotICAgICAgICAgIHsgJCQ9bmV3IEl0ZW1fc3VtX2FuZCgkMyk7IH0KKyAgICAgICAgICB7Cisg ICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fc3VtX2FuZCgkMyk7Cisg ICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsK KyAgICAgICAgICB9CiAgICAgICAgIHwgQklUX09SICAnKCcgaW5fc3VtX2V4cHIgJyknCi0gICAg ICAgICAgeyAkJD1uZXcgSXRlbV9zdW1fb3IoJDMpOyB9CisgICAgICAgICAgeworICAgICAgICAg ICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX3N1bV9vcigkMyk7CisgICAgICAgICAg ICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAg ICB9CiAgICAgICAgIHwgQklUX1hPUiAgJygnIGluX3N1bV9leHByICcpJwotICAgICAgICAgIHsg JCQ9bmV3IEl0ZW1fc3VtX3hvcigkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0g bmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fc3VtX3hvcigkMyk7CisgICAgICAgICAgICBpZiAo JCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAg ICAgICAgIHwgQ09VTlRfU1lNICcoJyBvcHRfYWxsICcqJyAnKScKLSAgICAgICAgICB7ICQkPW5l dyBJdGVtX3N1bV9jb3VudChuZXcgSXRlbV9pbnQoKGludDMyKSAwTCwxKSk7IH0KKyAgICAgICAg ICB7CisgICAgICAgICAgICBJdGVtICppdGVtPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9p bnQoKGludDMyKSAwTCwxKTsKKyAgICAgICAgICAgIGlmIChpdGVtID09IE5VTEwpCisgICAgICAg ICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jv b3QpIEl0ZW1fc3VtX2NvdW50KGl0ZW0pOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisg ICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IENPVU5U X1NZTSAnKCcgaW5fc3VtX2V4cHIgJyknCi0gICAgICAgICAgeyAkJD1uZXcgSXRlbV9zdW1fY291 bnQoJDMpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9y b290KSBJdGVtX3N1bV9jb3VudCgkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAg ICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgQ09VTlRf U1lNICcoJyBESVNUSU5DVAogICAgICAgICAgIHsgU2VsZWN0LT5pbl9zdW1fZXhwcisrOyB9CiAg ICAgICAgICAgZXhwcl9saXN0CiAgICAgICAgICAgeyBTZWxlY3QtPmluX3N1bV9leHByLS07IH0K ICAgICAgICAgICAnKScKLSAgICAgICAgICB7ICQkPW5ldyBJdGVtX3N1bV9jb3VudF9kaXN0aW5j dCgqICQ1KTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1f cm9vdCkgSXRlbV9zdW1fY291bnRfZGlzdGluY3QoKiAkNSk7CisgICAgICAgICAgICBpZiAoJCQg PT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAg ICAgIHwgTUlOX1NZTSAnKCcgaW5fc3VtX2V4cHIgJyknCi0gICAgICAgICAgeyAkJD1uZXcgSXRl bV9zdW1fbWluKCQzKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhE LT5tZW1fcm9vdCkgSXRlbV9zdW1fbWluKCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxM KQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgLyoK ICAgICAgICAgICBBY2NvcmRpbmcgdG8gQU5TSSBTUUwsIERJU1RJTkNUIGlzIGFsbG93ZWQgYW5k IGhhcwogICAgICAgICAgIG5vIHNlbnNlIGluc2lkZSBNSU4gYW5kIE1BWCBncm91cGluZyBmdW5j dGlvbnM7IHNvIE1JTnxNQVgoRElTVElOQ1QgLi4uKQogICAgICAgICAgIGlzIHByb2Nlc3NlZCBs aWtlIGFuIG9yZGluYXJ5IE1JTiB8IE1BWCgpCiAgICAgICAgICovCiAgICAgICAgIHwgTUlOX1NZ TSAnKCcgRElTVElOQ1QgaW5fc3VtX2V4cHIgJyknCi0gICAgICAgICAgeyAkJD1uZXcgSXRlbV9z dW1fbWluKCQ0KTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5t ZW1fcm9vdCkgSXRlbV9zdW1fbWluKCQ0KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBNQVhf U1lNICcoJyBpbl9zdW1fZXhwciAnKScKLSAgICAgICAgICB7ICQkPW5ldyBJdGVtX3N1bV9tYXgo JDMpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290 KSBJdGVtX3N1bV9tYXgoJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAg ICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IE1BWF9TWU0gJygn IERJU1RJTkNUIGluX3N1bV9leHByICcpJwotICAgICAgICAgIHsgJCQ9bmV3IEl0ZW1fc3VtX21h eCgkNCk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jv b3QpIEl0ZW1fc3VtX21heCgkNCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAg ICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgU1REX1NZTSAn KCcgaW5fc3VtX2V4cHIgJyknCi0gICAgICAgICAgeyAkJD1uZXcgSXRlbV9zdW1fc3RkKCQzLCAw KTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkg SXRlbV9zdW1fc3RkKCQzLCAwKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBWQVJJQU5DRV9T WU0gJygnIGluX3N1bV9leHByICcpJwotICAgICAgICAgIHsgJCQ9bmV3IEl0ZW1fc3VtX3Zhcmlh bmNlKCQzLCAwKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5t ZW1fcm9vdCkgSXRlbV9zdW1fdmFyaWFuY2UoJDMsIDApOworICAgICAgICAgICAgaWYgKCQkID09 IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAg ICB8IFNURERFVl9TQU1QX1NZTSAnKCcgaW5fc3VtX2V4cHIgJyknCi0gICAgICAgICAgeyAkJD1u ZXcgSXRlbV9zdW1fc3RkKCQzLCAxKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBu ZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9zdW1fc3RkKCQzLCAxKTsKKyAgICAgICAgICAgIGlm ICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0K ICAgICAgICAgfCBWQVJfU0FNUF9TWU0gJygnIGluX3N1bV9leHByICcpJwotICAgICAgICAgIHsg JCQ9bmV3IEl0ZW1fc3VtX3ZhcmlhbmNlKCQzLCAxKTsgfQorICAgICAgICAgIHsKKyAgICAgICAg ICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9zdW1fdmFyaWFuY2UoJDMsIDEpOwor ICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CisgICAgICAgICAgfQogICAgICAgICB8IFNVTV9TWU0gJygnIGluX3N1bV9leHByICcpJwotICAg ICAgICAgIHsgJCQ9bmV3IEl0ZW1fc3VtX3N1bSgkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAg ICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fc3VtX3N1bSgkMyk7CisgICAgICAg ICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAg ICAgICB9CiAgICAgICAgIHwgU1VNX1NZTSAnKCcgRElTVElOQ1QgaW5fc3VtX2V4cHIgJyknCi0g ICAgICAgICAgeyAkJD1uZXcgSXRlbV9zdW1fc3VtX2Rpc3RpbmN0KCQ0KTsgfQorICAgICAgICAg IHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9zdW1fc3VtX2Rp c3RpbmN0KCQ0KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBN WVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBHUk9VUF9DT05DQVRfU1lNICco JyBvcHRfZGlzdGluY3QKICAgICAgICAgICB7IFNlbGVjdC0+aW5fc3VtX2V4cHIrKzsgfQogICAg ICAgICAgIGV4cHJfbGlzdCBvcHRfZ29yZGVyX2NsYXVzZQpAQCAtNzc3Myw4ICs4MzgzLDExIEBA IHN1bV9leHByOgogICAgICAgICAgIHsKICAgICAgICAgICAgIFNFTEVDVF9MRVggKnNlbD0gU2Vs ZWN0OwogICAgICAgICAgICAgc2VsLT5pbl9zdW1fZXhwci0tOwotICAgICAgICAgICAgJCQ9bmV3 IEl0ZW1fZnVuY19ncm91cF9jb25jYXQoTGV4LT5jdXJyZW50X2NvbnRleHQoKSwgJDMsICQ1LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsLT5nb3JkZXJfbGlz dCwgJDcpOworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KQorICAgICAgICAg ICAgICAgICAgSXRlbV9mdW5jX2dyb3VwX2NvbmNhdChMZXgtPmN1cnJlbnRfY29udGV4dCgpLCAk MywgJDUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbC0+Z29y ZGVyX2xpc3QsICQ3KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgJDUtPmVtcHR5KCk7CiAgICAgICAgICAgfQog ICAgICAgICA7CkBAIC03Nzk3LDEzICs4NDEwLDE3IEBAIHZhcmlhYmxlOgogdmFyaWFibGVfYXV4 OgogICAgICAgICAgIGlkZW50X29yX3RleHQgU0VUX1ZBUiBleHByCiAgICAgICAgICAgewotICAg ICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfc2V0X3VzZXJfdmFyKCQxLCAkMyk7CisgICAgICAg ICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19zZXRfdXNlcl92YXIoJDEs ICQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOwogICAgICAgICAgICAgTEVYICpsZXg9IExleDsKICAgICAgICAgICAgIGxleC0+dW5j YWNoZWFibGUoVU5DQUNIRUFCTEVfUkFORCk7CiAgICAgICAgICAgfQogICAgICAgICB8IGlkZW50 X29yX3RleHQKICAgICAgICAgICB7Ci0gICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19nZXRf dXNlcl92YXIoJDEpOworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVt X2Z1bmNfZ2V0X3VzZXJfdmFyKCQxKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAg ICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgTEVYICpsZXg9IExleDsKICAg ICAgICAgICAgIGxleC0+dW5jYWNoZWFibGUoVU5DQUNIRUFCTEVfUkFORCk7CiAgICAgICAgICAg fQpAQCAtNzgyOSw5ICs4NDQ2LDExIEBAIG9wdF9kaXN0aW5jdDoKIAogb3B0X2djb25jYXRfc2Vw YXJhdG9yOgogICAgICAgICAgIC8qIGVtcHR5ICovCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgU3RyaW5nKCIsIiwgMSwgJm15X2NoYXJzZXRf bGF0aW4xKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3 IChZWVRIRC0+bWVtX3Jvb3QpIFN0cmluZygiLCIsIDEsICZteV9jaGFyc2V0X2xhdGluMSk7Cisg ICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsK KyAgICAgICAgICB9CiAgICAgICAgIHwgU0VQQVJBVE9SX1NZTSB0ZXh0X3N0cmluZyB7ICQkID0g JDI7IH0KICAgICAgICAgOwogCkBAIC03ODQ2LDYgKzg0NjUsOCBAQCBvcHRfZ29yZGVyX2NsYXVz ZToKICAgICAgICAgICAgIHNlbGVjdC0+Z29yZGVyX2xpc3Q9CiAgICAgICAgICAgICAgIChTUUxf TElTVCopIHNxbF9tZW1kdXAoKGNoYXIqKSAmc2VsZWN0LT5vcmRlcl9saXN0LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdF9zcWxfbGlzdCkpOworICAgICAg ICAgICAgaWYgKHNlbGVjdC0+Z29yZGVyX2xpc3QgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKICAgICAgICAgICAgIHNlbGVjdC0+b3JkZXJfbGlzdC5lbXB0eSgpOwogICAg ICAgICAgIH0KICAgICAgICAgOwpAQCAtNzkwMSw2ICs4NTIyLDggQEAgZXhwcl9saXN0OgogICAg ICAgICAgIGV4cHIKICAgICAgICAgICB7CiAgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVt X3Jvb3QpIExpc3Q8SXRlbT47CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICAgICQkLT5wdXNoX2JhY2soJDEpOwogICAg ICAgICAgIH0KICAgICAgICAgfCBleHByX2xpc3QgJywnIGV4cHIKQEAgLTc5MTksNiArODU0Miw4 IEBAIGlkZW50X2xpc3Q6CiAgICAgICAgICAgc2ltcGxlX2lkZW50CiAgICAgICAgICAgewogICAg ICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBMaXN0PEl0ZW0+OworICAgICAgICAg ICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAg ICAgICAkJC0+cHVzaF9iYWNrKCQxKTsKICAgICAgICAgICB9CiAgICAgICAgIHwgaWRlbnRfbGlz dCAnLCcgc2ltcGxlX2lkZW50CkBAIC03OTQyLDYgKzg1NjcsOCBAQCB3aGVuX2xpc3Q6CiAgICAg ICAgICAgV0hFTl9TWU0gZXhwciBUSEVOX1NZTSBleHByCiAgICAgICAgICAgewogICAgICAgICAg ICAgJCQ9IG5ldyBMaXN0PEl0ZW0+OworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAg ICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICAkJC0+cHVzaF9iYWNrKCQyKTsK ICAgICAgICAgICAgICQkLT5wdXNoX2JhY2soJDQpOwogICAgICAgICAgIH0KQEAgLTg0NDQsMTUg KzkwNzEsMjEgQEAgdXNpbmdfbGlzdDoKICAgICAgICAgICB7CiAgICAgICAgICAgICBpZiAoISgk JD0gbmV3IExpc3Q8U3RyaW5nPikpCiAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7Ci0gICAg ICAgICAgICAkJC0+cHVzaF9iYWNrKG5ldyAoWVlUSEQtPm1lbV9yb290KQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3RyaW5nKChjb25zdCBjaGFyICopICQxLnN0ciwgJDEubGVuZ3Ro LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW1fY2hhcnNldF9p bmZvKSk7CisgICAgICAgICAgICBTdHJpbmcgKnM9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBTdHJp bmcoKGNvbnN0IGNoYXIgKikgJDEuc3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICQxLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW1fY2hhcnNldF9pbmZvKTsKKyAgICAg ICAgICAgIGlmIChzID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAg ICAgICAgICAkJC0+cHVzaF9iYWNrKHMpOwogICAgICAgICAgIH0KICAgICAgICAgfCB1c2luZ19s aXN0ICcsJyBpZGVudAogICAgICAgICAgIHsKLSAgICAgICAgICAgICQxLT5wdXNoX2JhY2sobmV3 IChZWVRIRC0+bWVtX3Jvb3QpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmco KGNvbnN0IGNoYXIgKikgJDMuc3RyLCAkMy5sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN5c3RlbV9jaGFyc2V0X2luZm8pKTsKKyAgICAgICAgICAgIFN0cmlu ZyAqcz0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIFN0cmluZygoY29uc3QgY2hhciAqKSAkMy5zdHIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDMu bGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN5c3RlbV9jaGFyc2V0X2luZm8pOworICAgICAgICAgICAgaWYgKHMgPT0gTlVMTCkKKyAg ICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICAgICQxLT5wdXNoX2JhY2socyk7 CiAgICAgICAgICAgICAkJD0gJDE7CiAgICAgICAgICAgfQogICAgICAgICA7CkBAIC04NTIwLDcg KzkxNTMsMTEgQEAgdGFibGVfYWxpYXM6CiBvcHRfdGFibGVfYWxpYXM6CiAgICAgICAgICAgLyog ZW1wdHkgKi8geyAkJD0wOyB9CiAgICAgICAgIHwgdGFibGVfYWxpYXMgaWRlbnQKLSAgICAgICAg ICB7ICQkPSAoTEVYX1NUUklORyopIHNxbF9tZW1kdXAoJiQyLHNpemVvZihMRVhfU1RSSU5HKSk7 IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gKExFWF9TVFJJTkcqKSBzcWxfbWVtZHVw KCYkMixzaXplb2YoTEVYX1NUUklORykpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisg ICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICA7CiAKIG9w dF9hbGw6CkBAIC04NTY4LDEwICs5MjA1LDEzIEBAIG9wdF9lc2NhcGU6CiAgICAgICAgICAgfQog ICAgICAgICB8IC8qIGVtcHR5ICovCiAgICAgICAgICAgeworICAgICAgICAgICAgVEhEICp0aGQ9 IFlZVEhEOwogICAgICAgICAgICAgTGV4LT5lc2NhcGVfdXNlZD0gRkFMU0U7Ci0gICAgICAgICAg ICAkJD0gKChZWVRIRC0+dmFyaWFibGVzLnNxbF9tb2RlICYgTU9ERV9OT19CQUNLU0xBU0hfRVND QVBFUykgPwotICAgICAgICAgICAgICAgICBuZXcgSXRlbV9zdHJpbmcoIiIsIDAsICZteV9jaGFy c2V0X2xhdGluMSkgOgotICAgICAgICAgICAgICAgICBuZXcgSXRlbV9zdHJpbmcoIlxcIiwgMSwg Jm15X2NoYXJzZXRfbGF0aW4xKSk7CisgICAgICAgICAgICAkJD0gKCh0aGQtPnZhcmlhYmxlcy5z cWxfbW9kZSAmIE1PREVfTk9fQkFDS1NMQVNIX0VTQ0FQRVMpID8KKyAgICAgICAgICAgICAgICAg bmV3ICh0aGQtPm1lbV9yb290KSBJdGVtX3N0cmluZygiIiwgMCwgJm15X2NoYXJzZXRfbGF0aW4x KSA6CisgICAgICAgICAgICAgICAgIG5ldyAodGhkLT5tZW1fcm9vdCkgSXRlbV9zdHJpbmcoIlxc IiwgMSwgJm15X2NoYXJzZXRfbGF0aW4xKSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkK KyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIDsKIApA QCAtODc1OCwxMyArOTM5OCwyOCBAQCBsaW1pdF9vcHRpb25zOgogICAgICAgICA7CiAKIGxpbWl0 X29wdGlvbjoKLSAgICAgICAgcGFyYW1fbWFya2VyCi0gICAgICAgIHsKLSAgICAgICAgICAoKEl0 ZW1fcGFyYW0gKikgJDEpLT5saW1pdF9jbGF1c2VfcGFyYW09IFRSVUU7Ci0gICAgICAgIH0KLSAg ICAgICAgfCBVTE9OR0xPTkdfTlVNIHsgJCQ9IG5ldyBJdGVtX3VpbnQoJDEuc3RyLCAkMS5sZW5n dGgpOyB9Ci0gICAgICAgIHwgTE9OR19OVU0gICAgICB7ICQkPSBuZXcgSXRlbV91aW50KCQxLnN0 ciwgJDEubGVuZ3RoKTsgfQotICAgICAgICB8IE5VTSAgICAgICAgICAgeyAkJD0gbmV3IEl0ZW1f dWludCgkMS5zdHIsICQxLmxlbmd0aCk7IH0KKyAgICAgICAgICBwYXJhbV9tYXJrZXIKKyAgICAg ICAgICB7CisgICAgICAgICAgICAoKEl0ZW1fcGFyYW0gKikgJDEpLT5saW1pdF9jbGF1c2VfcGFy YW09IFRSVUU7CisgICAgICAgICAgfQorICAgICAgICB8IFVMT05HTE9OR19OVU0KKyAgICAgICAg ICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fdWludCgkMS5z dHIsICQxLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAg ICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CisgICAgICAgIHwgTE9OR19OVU0KKyAgICAg ICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fdWludCgk MS5zdHIsICQxLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CisgICAgICAgIHwgTlVNCisgICAgICAg ICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX3VpbnQoJDEu c3RyLCAkMS5sZW5ndGgpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICA7CiAKIGRlbGV0ZV9saW1p dF9jbGF1c2U6CkBAIC04ODQ4LDEwICs5NTAzLDEyIEBAIHByb2NlZHVyZV9jbGF1c2U6CiAgICAg ICAgICAgICBsZXgtPnByb2NfbGlzdC5lbGVtZW50cz0wOwogICAgICAgICAgICAgbGV4LT5wcm9j X2xpc3QuZmlyc3Q9MDsKICAgICAgICAgICAgIGxleC0+cHJvY19saXN0Lm5leHQ9ICh1Y2hhcioq KSAmbGV4LT5wcm9jX2xpc3QuZmlyc3Q7Ci0gICAgICAgICAgICBpZiAoYWRkX3Byb2NfdG9fbGlz dChsZXgtPnRoZCwgbmV3IEl0ZW1fZmllbGQoJmxleC0+Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9zZWxlY3QtPgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTlVMTCxOVUxMLCQyLnN0cikpKQorICAgICAgICAgICAgSXRlbV9maWVsZCAqaXRl bT0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEl0ZW1fZmllbGQoJmxleC0+Y3VycmVudF9zZWxlY3QtPmNvbnRleHQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCwgJDIuc3RyKTsKKyAgICAg ICAgICAgIGlmIChpdGVtID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7Cisg ICAgICAgICAgICBpZiAoYWRkX3Byb2NfdG9fbGlzdChsZXgtPnRoZCwgaXRlbSkpCiAgICAgICAg ICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICBMZXgtPnVuY2FjaGVhYmxlKFVOQ0FD SEVBQkxFX1NJREVFRkZFQ1QpOwogICAgICAgICAgIH0KQEAgLTg5MDAsMTMgKzk1NTcsMjAgQEAg c2VsZWN0X3Zhcl9pZGVudDogIAogICAgICAgICAgIHsKICAgICAgICAgICAgIExFWCAqbGV4PUxl eDsKICAgICAgICAgICAgIGlmIChsZXgtPnJlc3VsdCkgCi0gICAgICAgICAgICAgICgoc2VsZWN0 X2R1bXB2YXIgKilsZXgtPnJlc3VsdCktPnZhcl9saXN0LnB1c2hfYmFjayggbmV3IG15X3Zhcigk MiwwLDAsKGVudW1fZmllbGRfdHlwZXMpMCkpOworICAgICAgICAgICAgeworICAgICAgICAgICAg ICBteV92YXIgKnZhcj0gbmV3IG15X3ZhcigkMiwwLDAsKGVudW1fZmllbGRfdHlwZXMpMCk7Cisg ICAgICAgICAgICAgIGlmICh2YXIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOworICAgICAgICAgICAgICAoKHNlbGVjdF9kdW1wdmFyICopbGV4LT5yZXN1bHQpLT52YXJf bGlzdC5wdXNoX2JhY2sodmFyKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKKyAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAgICBUaGUgcGFyc2Vy IHdvbid0IGNyZWF0ZSBzZWxlY3RfcmVzdWx0IGluc3RhbmNlIG9ubHkKICAgICAgICAgICAgICAg ICBpZiBpdCdzIGFuIEVYUExBSU4uCiAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgIERC VUdfQVNTRVJUKGxleC0+ZGVzY3JpYmUpOworICAgICAgICAgICAgfQogICAgICAgICAgIH0KICAg ICAgICAgfCBpZGVudF9vcl90ZXh0CiAgICAgICAgICAgewpAQCAtODkyMCwxMiArOTU4NCwxMiBA QCBzZWxlY3RfdmFyX2lkZW50OiAgCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAobGV4 LT5yZXN1bHQpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIG15X3ZhciAqdmFyOwotICAg ICAgICAgICAgICAoKHNlbGVjdF9kdW1wdmFyICopbGV4LT5yZXN1bHQpLT4KLSAgICAgICAgICAg ICAgICB2YXJfbGlzdC5wdXNoX2JhY2sodmFyPSBuZXcgbXlfdmFyKCQxLDEsdC0+b2Zmc2V0LHQt PnR5cGUpKTsKKyAgICAgICAgICAgICAgbXlfdmFyICp2YXI9IG5ldyBteV92YXIoJDEsMSx0LT5v ZmZzZXQsdC0+dHlwZSk7CisgICAgICAgICAgICAgIGlmICh2YXIgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgICAoKHNlbGVjdF9kdW1wdmFyICop bGV4LT5yZXN1bHQpLT52YXJfbGlzdC5wdXNoX2JhY2sodmFyKTsKICNpZm5kZWYgREJVR19PRkYK LSAgICAgICAgICAgICAgaWYgKHZhcikKLSAgICAgICAgICAgICAgICB2YXItPnNwPSBsZXgtPnNw aGVhZDsKKyAgICAgICAgICAgICAgdmFyLT5zcD0gbGV4LT5zcGhlYWQ7CiAjZW5kaWYKICAgICAg ICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKQEAgLTkwMTEsMTIgKzk2NzUsMTQgQEAgZHJvcDoK ICAgICAgICAgfCBEUk9QIGJ1aWxkX21ldGhvZCBJTkRFWF9TWU0gaWRlbnQgT04gdGFibGVfaWRl bnQge30KICAgICAgICAgICB7CiAgICAgICAgICAgICBMRVggKmxleD1MZXg7CisgICAgICAgICAg ICBBbHRlcl9kcm9wICphZD0gbmV3IEFsdGVyX2Ryb3AoQWx0ZXJfZHJvcDo6S0VZLCAkNC5zdHIp OworICAgICAgICAgICAgaWYgKGFkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJP UlQ7CiAgICAgICAgICAgICBsZXgtPnNxbF9jb21tYW5kPSBTUUxDT01fRFJPUF9JTkRFWDsKICAg ICAgICAgICAgIGxleC0+YWx0ZXJfaW5mby5yZXNldCgpOwogICAgICAgICAgICAgbGV4LT5hbHRl cl9pbmZvLmZsYWdzPSBBTFRFUl9EUk9QX0lOREVYOwogICAgICAgICAgICAgbGV4LT5hbHRlcl9p bmZvLmJ1aWxkX21ldGhvZD0gJDI7Ci0gICAgICAgICAgICBsZXgtPmFsdGVyX2luZm8uZHJvcF9s aXN0LnB1c2hfYmFjayhuZXcgQWx0ZXJfZHJvcChBbHRlcl9kcm9wOjpLRVksCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkNC5z dHIpKTsKKyAgICAgICAgICAgIGxleC0+YWx0ZXJfaW5mby5kcm9wX2xpc3QucHVzaF9iYWNrKGFk KTsKICAgICAgICAgICAgIGlmICghbGV4LT5jdXJyZW50X3NlbGVjdC0+YWRkX3RhYmxlX3RvX2xp c3QobGV4LT50aGQsICQ2LCBOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUTF9PUFRJT05fVVBEQVRJTkcpKQogICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOwpAQCAtOTA0MSw2ICs5NzA3LDggQEAgZHJvcDoKICAgICAgICAgICAg IGxleC0+c3FsX2NvbW1hbmQgPSBTUUxDT01fRFJPUF9GVU5DVElPTjsKICAgICAgICAgICAgIGxl eC0+ZHJvcF9pZl9leGlzdHM9ICQzOwogICAgICAgICAgICAgc3BuYW1lPSBuZXcgc3BfbmFtZSgk NCwgJDYsIHRydWUpOworICAgICAgICAgICAgaWYgKHNwbmFtZSA9PSBOVUxMKQorICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgc3BuYW1lLT5pbml0X3FuYW1lKHRoZCk7 CiAgICAgICAgICAgICBsZXgtPnNwbmFtZT0gc3BuYW1lOwogICAgICAgICAgIH0KQEAgLTkwNjAs NiArOTcyOCw4IEBAIGRyb3A6CiAgICAgICAgICAgICBsZXgtPnNxbF9jb21tYW5kID0gU1FMQ09N X0RST1BfRlVOQ1RJT047CiAgICAgICAgICAgICBsZXgtPmRyb3BfaWZfZXhpc3RzPSAkMzsKICAg ICAgICAgICAgIHNwbmFtZT0gbmV3IHNwX25hbWUoZGIsICQ0LCBmYWxzZSk7CisgICAgICAgICAg ICBpZiAoc3BuYW1lID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAg ICAgICAgICBzcG5hbWUtPmluaXRfcW5hbWUodGhkKTsKICAgICAgICAgICAgIGxleC0+c3BuYW1l PSBzcG5hbWU7CiAgICAgICAgICAgfQpAQCAtOTMyNyw3ICs5OTk3LDEyIEBAIHZhbHVlczoKIAog ZXhwcl9vcl9kZWZhdWx0OgogICAgICAgICAgIGV4cHIgeyAkJD0gJDE7fQotICAgICAgICB8IERF RkFVTFQgeyQkPSBuZXcgSXRlbV9kZWZhdWx0X3ZhbHVlKExleC0+Y3VycmVudF9jb250ZXh0KCkp OyB9CisgICAgICAgIHwgREVGQVVMVAorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcg KFlZVEhELT5tZW1fcm9vdCkgSXRlbV9kZWZhdWx0X3ZhbHVlKExleC0+Y3VycmVudF9jb250ZXh0 KCkpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZ QUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICA7CiAKIG9wdF9pbnNlcnRfdXBkYXRlOgpAQCAt OTQ1MSw3ICsxMDEyNiwxMSBAQCB0YWJsZV93aWxkX2xpc3Q6CiB0YWJsZV93aWxkX29uZToKICAg ICAgICAgICBpZGVudCBvcHRfd2lsZAogICAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICghU2Vs ZWN0LT5hZGRfdGFibGVfdG9fbGlzdChZWVRIRCwgbmV3IFRhYmxlX2lkZW50KCQxKSwKKyAgICAg ICAgICAgIFRhYmxlX2lkZW50ICp0aT0gbmV3IFRhYmxlX2lkZW50KCQxKTsKKyAgICAgICAgICAg IGlmICh0aSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAg ICAgaWYgKCFTZWxlY3QtPmFkZF90YWJsZV90b19saXN0KFlZVEhELAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5VTEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVExfT1BUSU9OX1VQREFUSU5HIHwgVExfT1BUSU9OX0FMSUFTLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExleC0+bG9ja19vcHRpb24pKQpA QCAtOTQ1OSw4ICsxMDEzOCwxMSBAQCB0YWJsZV93aWxkX29uZToKICAgICAgICAgICB9CiAgICAg ICAgIHwgaWRlbnQgJy4nIGlkZW50IG9wdF93aWxkCiAgICAgICAgICAgeworICAgICAgICAgICAg VGFibGVfaWRlbnQgKnRpPSBuZXcgVGFibGVfaWRlbnQoWVlUSEQsICQxLCAkMywgMCk7CisgICAg ICAgICAgICBpZiAodGkgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAg ICAgICAgICAgIGlmICghU2VsZWN0LT5hZGRfdGFibGVfdG9fbGlzdChZWVRIRCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVGFibGVfaWRlbnQoWVlUSEQs ICQxLCAkMywgMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUTF9PUFRJT05fVVBEQVRJ TkcgfCBUTF9PUFRJT05fQUxJQVMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGV4LT5sb2NrX29wdGlvbikpCkBAIC05ODMyLDIzICsxMDUxNCwxMyBAQCBzaG93 X3BhcmFtOgogICAgICAgICAgIH0KICAgICAgICAgfCBQUk9DRURVUkUgQ09ERV9TWU0gc3BfbmFt ZQogICAgICAgICAgIHsKLSNpZmRlZiBEQlVHX09GRgotICAgICAgICAgICAgbXlfcGFyc2VfZXJy b3IoRVIoRVJfU1lOVEFYX0VSUk9SKSk7Ci0gICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwotI2Vs c2UKICAgICAgICAgICAgIExleC0+c3FsX2NvbW1hbmQ9IFNRTENPTV9TSE9XX1BST0NfQ09ERTsK ICAgICAgICAgICAgIExleC0+c3BuYW1lPSAkMzsKLSNlbmRpZgogICAgICAgICAgIH0KICAgICAg ICAgfCBGVU5DVElPTl9TWU0gQ09ERV9TWU0gc3BfbmFtZQogICAgICAgICAgIHsKLSNpZmRlZiBE QlVHX09GRgotICAgICAgICAgICAgbXlfcGFyc2VfZXJyb3IoRVIoRVJfU1lOVEFYX0VSUk9SKSk7 Ci0gICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwotI2Vsc2UKICAgICAgICAgICAgIExleC0+c3Fs X2NvbW1hbmQ9IFNRTENPTV9TSE9XX0ZVTkNfQ09ERTsKICAgICAgICAgICAgIExleC0+c3BuYW1l PSAkMzsKLSNlbmRpZgogICAgICAgICAgIH0KICAgICAgICAgfCBDUkVBVEUgRVZFTlRfU1lNIHNw X25hbWUKICAgICAgICAgICB7CkBAIC05OTA3LDYgKzEwNTc5LDggQEAgd2lsZF9hbmRfd2hlcmU6 CiAgICAgICAgICAgewogICAgICAgICAgICAgTGV4LT53aWxkPSBuZXcgKFlZVEhELT5tZW1fcm9v dCkgU3RyaW5nKCQyLnN0ciwgJDIubGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN5c3RlbV9jaGFyc2V0X2luZm8pOworICAgICAgICAg ICAgaWYgKExleC0+d2lsZCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwog ICAgICAgICAgIH0KICAgICAgICAgfCBXSEVSRSBleHByCiAgICAgICAgICAgewpAQCAtOTk1OSw2 ICsxMDYzMyw4IEBAIG9wdF9kZXNjcmliZV9jb2x1bW46CiAgICAgICAgICAgICBMZXgtPndpbGQ9 IG5ldyAoWVlUSEQtPm1lbV9yb290KSBTdHJpbmcoKGNvbnN0IGNoYXIqKSAkMS5zdHIsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDEubGVuZ3Ro LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5 c3RlbV9jaGFyc2V0X2luZm8pOworICAgICAgICAgICAgaWYgKExleC0+d2lsZCA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgIH0KICAgICAgICAgOwogCkBA IC0xMDI2OCw3ICsxMDk0NCwxMSBAQCBmaWVsZHNfb3JfdmFyczoKIGZpZWxkX29yX3ZhcjoKICAg ICAgICAgICBzaW1wbGVfaWRlbnRfbm9zcHZhciB7JCQ9ICQxO30KICAgICAgICAgfCAnQCcgaWRl bnRfb3JfdGV4dAotICAgICAgICAgIHsgJCQ9IG5ldyBJdGVtX3VzZXJfdmFyX2FzX291dF9wYXJh bSgkMik7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jv b3QpIEl0ZW1fdXNlcl92YXJfYXNfb3V0X3BhcmFtKCQyKTsKKyAgICAgICAgICAgIGlmICgkJCA9 PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAg ICAgOwogCiBvcHRfbG9hZF9kYXRhX3NldF9zcGVjOgpAQCAtMTAyOTQsMjAgKzEwOTc0LDMwIEBA IHRleHRfbGl0ZXJhbDoKICAgICAgICAgICAgICAgdG1wPSAkMTsKICAgICAgICAgICAgIGVsc2UK ICAgICAgICAgICAgICAgdGhkLT5jb252ZXJ0X3N0cmluZygmdG1wLCBjc19jb24sICQxLnN0ciwg JDEubGVuZ3RoLCBjc19jbGkpOwotICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX3N0cmluZyh0bXAu c3RyLCB0bXAubGVuZ3RoLCBjc19jb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IERFUklWQVRJT05fQ09FUkNJQkxFLCByZXBlcnRvaXJlKTsKKyAgICAgICAgICAgICQkPSBuZXcg KHRoZC0+bWVtX3Jvb3QpIEl0ZW1fc3RyaW5nKHRtcC5zdHIsIHRtcC5sZW5ndGgsIGNzX2NvbiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFUklWQVRJ T05fQ09FUkNJQkxFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmVwZXJ0b2lyZSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIHwgTkNIQVJfU1RSSU5H CiAgICAgICAgICAgewogICAgICAgICAgICAgdWludCByZXBlcnRvaXJlPSBMZXgtPnRleHRfc3Ry aW5nX2lzXzdiaXQgPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNWV9SRVBFUlRPSVJF X0FTQ0lJIDogTVlfUkVQRVJUT0lSRV9VTklDT0RFMzA7CiAgICAgICAgICAgICBEQlVHX0FTU0VS VChteV9jaGFyc2V0X2lzX2FzY2lpX2Jhc2VkKG5hdGlvbmFsX2NoYXJzZXRfaW5mbykpOwotICAg ICAgICAgICAgJCQ9IG5ldyBJdGVtX3N0cmluZygkMS5zdHIsICQxLmxlbmd0aCwgbmF0aW9uYWxf Y2hhcnNldF9pbmZvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVJJVkFUSU9O X0NPRVJDSUJMRSwgcmVwZXJ0b2lyZSk7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVt X3Jvb3QpIEl0ZW1fc3RyaW5nKCQxLnN0ciwgJDEubGVuZ3RoLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9jaGFyc2V0X2luZm8sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFUklWQVRJ T05fQ09FUkNJQkxFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZXBlcnRvaXJlKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgIH0KICAgICAgICAgfCBVTkRFUlNDT1JF X0NIQVJTRVQgVEVYVF9TVFJJTkcKICAgICAgICAgICB7Ci0gICAgICAgICAgICBJdGVtX3N0cmlu ZyAqc3RyPSBuZXcgSXRlbV9zdHJpbmcoJDIuc3RyLCAkMi5sZW5ndGgsICQxKTsKKyAgICAgICAg ICAgIEl0ZW1fc3RyaW5nICpzdHI9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX3N0cmluZygk Mi5zdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJDIubGVuZ3RoLCAkMSk7CisgICAgICAgICAgICBpZiAoc3RyID09IE5V TEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICBzdHItPnNldF9y ZXBlcnRvaXJlX2Zyb21fdmFsdWUoKTsKICAgICAgICAgICAgIHN0ci0+c2V0X2NzX3NwZWNpZmll ZChUUlVFKTsKIApAQCAtMTAzMzcsMjcgKzExMDI3LDMwIEBAIHRleHRfc3RyaW5nOgogICAgICAg ICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBTdHJpbmcoJDEuc3RyLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDEubGVuZ3RoLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWVlUSEQtPnZhcmlhYmxlcy5jb2xs YXRpb25fY29ubmVjdGlvbik7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIHwgSEVYX05VTQogICAg ICAgICAgIHsKLSAgICAgICAgICAgIEl0ZW0gKnRtcD0gbmV3IEl0ZW1faGV4X3N0cmluZygkMS5z dHIsICQxLmxlbmd0aCk7CisgICAgICAgICAgICBJdGVtICp0bXA9IG5ldyAoWVlUSEQtPm1lbV9y b290KSBJdGVtX2hleF9zdHJpbmcoJDEuc3RyLCAkMS5sZW5ndGgpOworICAgICAgICAgICAgaWYg KHRtcCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAg LyoKICAgICAgICAgICAgICAgaXQgaXMgT0sgb25seSBlbXVsYXRlIGZpeF9maWVsZHMsIGJlY2F1 c2Ugd2UgbmVlZCBvbmx5CiAgICAgICAgICAgICAgIHZhbHVlIG9mIGNvbnN0YW50CiAgICAgICAg ICAgICAqLwotICAgICAgICAgICAgJCQ9IHRtcCA/Ci0gICAgICAgICAgICAgIHRtcC0+cXVpY2tf Zml4X2ZpZWxkKCksIHRtcC0+dmFsX3N0cigoU3RyaW5nKikgMCkgOgotICAgICAgICAgICAgICAo U3RyaW5nKikgMDsKKyAgICAgICAgICAgIHRtcC0+cXVpY2tfZml4X2ZpZWxkKCk7CisgICAgICAg ICAgICAkJD0gdG1wLT52YWxfc3RyKChTdHJpbmcqKSAwKTsKICAgICAgICAgICB9CiAgICAgICAg IHwgQklOX05VTQogICAgICAgICAgIHsKLSAgICAgICAgICAgIEl0ZW0gKnRtcD0gbmV3IEl0ZW1f YmluX3N0cmluZygkMS5zdHIsICQxLmxlbmd0aCk7CisgICAgICAgICAgICBJdGVtICp0bXA9IG5l dyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Jpbl9zdHJpbmcoJDEuc3RyLCAkMS5sZW5ndGgpOwog ICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAgaXQgaXMgT0sgb25seSBlbXVsYXRlIGZpeF9m aWVsZHMsIGJlY2F1c2Ugd2UgbmVlZCBvbmx5CiAgICAgICAgICAgICAgIHZhbHVlIG9mIGNvbnN0 YW50CiAgICAgICAgICAgICAqLwotICAgICAgICAgICAgJCQ9IHRtcCA/IHRtcC0+cXVpY2tfZml4 X2ZpZWxkKCksIHRtcC0+dmFsX3N0cigoU3RyaW5nKikgMCkgOgotICAgICAgICAgICAgICAoU3Ry aW5nKikgMDsKKyAgICAgICAgICAgIHRtcC0+cXVpY2tfZml4X2ZpZWxkKCk7CisgICAgICAgICAg ICAkJD0gdG1wLT52YWxfc3RyKChTdHJpbmcqKSAwKTsKICAgICAgICAgICB9CiAgICAgICAgIDsK IApAQCAtMTAzNzMsNyArMTEwNjYsNyBAQCBwYXJhbV9tYXJrZXI6CiAgICAgICAgICAgICAgIG15 X2Vycm9yKEVSX1ZJRVdfU0VMRUNUX1ZBUklBQkxFLCBNWUYoMCkpOwogICAgICAgICAgICAgICBN WVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaXRlbT0gbmV3IEl0ZW1f cGFyYW0oKHVpbnQpIChsaXAtPmdldF90b2tfc3RhcnQoKSAtIHRoZC0+cXVlcnkpKTsKKyAgICAg ICAgICAgIGl0ZW09IG5ldyAodGhkLT5tZW1fcm9vdCkgSXRlbV9wYXJhbSgodWludCkgKGxpcC0+ Z2V0X3Rva19zdGFydCgpIC0gdGhkLT5xdWVyeSkpOwogICAgICAgICAgICAgaWYgKCEoJCQ9IGl0 ZW0pIHx8IGxleC0+cGFyYW1fbGlzdC5wdXNoX2JhY2soaXRlbSkpCiAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgIG15X21lc3NhZ2UoRVJfT1VUX09GX1JFU09VUkNFUywgRVIoRVJfT1VUX09G X1JFU09VUkNFUyksIE1ZRigwKSk7CkBAIC0xMDM5NywyOSArMTEwOTAsNTMgQEAgbGl0ZXJhbDoK ICAgICAgICAgfCBOVU1fbGl0ZXJhbCB7ICQkID0gJDE7IH0KICAgICAgICAgfCBOVUxMX1NZTQog ICAgICAgICAgIHsKLSAgICAgICAgICAgICQkID0gbmV3IEl0ZW1fbnVsbCgpOworICAgICAgICAg ICAgJCQgPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9udWxsKCk7CisgICAgICAgICAgICBp ZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICAg IFlZTElQLT5uZXh0X3N0YXRlPSBNWV9MRVhfT1BFUkFUT1JfT1JfSURFTlQ7CiAgICAgICAgICAg fQotICAgICAgICB8IEZBTFNFX1NZTSB7ICQkPSBuZXcgSXRlbV9pbnQoKGNoYXIqKSAiRkFMU0Ui LDAsMSk7IH0KLSAgICAgICAgfCBUUlVFX1NZTSB7ICQkPSBuZXcgSXRlbV9pbnQoKGNoYXIqKSAi VFJVRSIsMSwxKTsgfQotICAgICAgICB8IEhFWF9OVU0geyAkJCA9IG5ldyBJdGVtX2hleF9zdHJp bmcoJDEuc3RyLCAkMS5sZW5ndGgpO30KLSAgICAgICAgfCBCSU5fTlVNIHsgJCQ9IG5ldyBJdGVt X2Jpbl9zdHJpbmcoJDEuc3RyLCAkMS5sZW5ndGgpOyB9CisgICAgICAgIHwgRkFMU0VfU1lNCisg ICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2lu dCgoY2hhciopICJGQUxTRSIsMCwxKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAg ICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KKyAgICAgICAgfCBUUlVFX1NZ TQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRl bV9pbnQoKGNoYXIqKSAiVFJVRSIsMSwxKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KKyAgICAgICAgfCBIRVhf TlVNCisgICAgICAgICAgeworICAgICAgICAgICAgJCQgPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkg SXRlbV9oZXhfc3RyaW5nKCQxLnN0ciwgJDEubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmICgkJCA9 PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KKyAgICAg ICAgfCBCSU5fTlVNCisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1l bV9yb290KSBJdGVtX2Jpbl9zdHJpbmcoJDEuc3RyLCAkMS5sZW5ndGgpOworICAgICAgICAgICAg aWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAg fQogICAgICAgICB8IFVOREVSU0NPUkVfQ0hBUlNFVCBIRVhfTlVNCiAgICAgICAgICAgewotICAg ICAgICAgICAgSXRlbSAqdG1wPSBuZXcgSXRlbV9oZXhfc3RyaW5nKCQyLnN0ciwgJDIubGVuZ3Ro KTsKKyAgICAgICAgICAgIEl0ZW0gKnRtcD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1faGV4 X3N0cmluZygkMi5zdHIsICQyLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAodG1wID09IE5VTEwp CisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICAvKgogICAgICAgICAg ICAgICBpdCBpcyBPSyBvbmx5IGVtdWxhdGUgZml4X2ZpZWRzLCBiZWNhdXNlIHdlIG5lZWQgb25s eQogICAgICAgICAgICAgICB2YWx1ZSBvZiBjb25zdGFudAogICAgICAgICAgICAgKi8KLSAgICAg ICAgICAgIFN0cmluZyAqc3RyPSB0bXAgPwotICAgICAgICAgICAgICB0bXAtPnF1aWNrX2ZpeF9m aWVsZCgpLCB0bXAtPnZhbF9zdHIoKFN0cmluZyopIDApIDoKLSAgICAgICAgICAgICAgKFN0cmlu ZyopIDA7Ci0KLSAgICAgICAgICAgIEl0ZW1fc3RyaW5nICppdGVtX3N0cj0KLSAgICAgICAgICAg ICAgbmV3IEl0ZW1fc3RyaW5nKE5VTEwsIC8qIG5hbWUgd2lsbCBiZSBzZXQgaW4gc2VsZWN0X2l0 ZW0gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA/IHN0ci0+cHRyKCkgOiAi IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA/IHN0ci0+bGVuZ3RoKCkgOiAw LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDEpOworICAgICAgICAgICAgdG1wLT5x dWlja19maXhfZmllbGQoKTsKKyAgICAgICAgICAgIFN0cmluZyAqc3RyPSB0bXAtPnZhbF9zdHIo KFN0cmluZyopIDApOworCisgICAgICAgICAgICBJdGVtX3N0cmluZyAqaXRlbV9zdHI7CisgICAg ICAgICAgICBpdGVtX3N0cj0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpCisgICAgICAgICAgICAgICAg ICAgICAgICBJdGVtX3N0cmluZyhOVUxMLCAvKiBuYW1lIHdpbGwgYmUgc2V0IGluIHNlbGVjdF9p dGVtICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPyBzdHItPnB0 cigpIDogIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPyBzdHIt Pmxlbmd0aCgpIDogMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQxKTsK ICAgICAgICAgICAgIGlmICghaXRlbV9zdHIgfHwKICAgICAgICAgICAgICAgICAhaXRlbV9zdHIt PmNoZWNrX3dlbGxfZm9ybWVkX3Jlc3VsdCgmaXRlbV9zdHItPnN0cl92YWx1ZSwgVFJVRSkpCiAg ICAgICAgICAgICB7CkBAIC0xMDQzMywyMCArMTExNTAsMjIgQEAgbGl0ZXJhbDoKICAgICAgICAg ICB9CiAgICAgICAgIHwgVU5ERVJTQ09SRV9DSEFSU0VUIEJJTl9OVU0KICAgICAgICAgICB7Ci0g ICAgICAgICAgICBJdGVtICp0bXA9IG5ldyBJdGVtX2Jpbl9zdHJpbmcoJDIuc3RyLCAkMi5sZW5n dGgpOworICAgICAgICAgICAgSXRlbSAqdG1wPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9i aW5fc3RyaW5nKCQyLnN0ciwgJDIubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmICh0bXAgPT0gTlVM TCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICAgIC8qCiAgICAgICAg ICAgICAgIGl0IGlzIE9LIG9ubHkgZW11bGF0ZSBmaXhfZmllZHMsIGJlY2F1c2Ugd2UgbmVlZCBv bmx5CiAgICAgICAgICAgICAgIHZhbHVlIG9mIGNvbnN0YW50CiAgICAgICAgICAgICAqLwotICAg ICAgICAgICAgU3RyaW5nICpzdHI9IHRtcCA/Ci0gICAgICAgICAgICAgIHRtcC0+cXVpY2tfZml4 X2ZpZWxkKCksIHRtcC0+dmFsX3N0cigoU3RyaW5nKikgMCkgOgotICAgICAgICAgICAgICAoU3Ry aW5nKikgMDsKLQotICAgICAgICAgICAgSXRlbV9zdHJpbmcgKml0ZW1fc3RyPQotICAgICAgICAg ICAgICBuZXcgSXRlbV9zdHJpbmcoTlVMTCwgLyogbmFtZSB3aWxsIGJlIHNldCBpbiBzZWxlY3Rf aXRlbSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyID8gc3RyLT5wdHIoKSA6 ICIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyID8gc3RyLT5sZW5ndGgoKSA6 IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMSk7CisgICAgICAgICAgICB0bXAt PnF1aWNrX2ZpeF9maWVsZCgpOworICAgICAgICAgICAgU3RyaW5nICpzdHI9IHRtcC0+dmFsX3N0 cigoU3RyaW5nKikgMCk7CisKKyAgICAgICAgICAgIEl0ZW1fc3RyaW5nICppdGVtX3N0cjsKKyAg ICAgICAgICAgIGl0ZW1fc3RyPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkKKyAgICAgICAgICAgICAg ICAgICAgICAgIEl0ZW1fc3RyaW5nKE5VTEwsIC8qIG5hbWUgd2lsbCBiZSBzZXQgaW4gc2VsZWN0 X2l0ZW0gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA/IHN0ci0+ cHRyKCkgOiAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA/IHN0 ci0+bGVuZ3RoKCkgOiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDEp OwogICAgICAgICAgICAgaWYgKCFpdGVtX3N0ciB8fAogICAgICAgICAgICAgICAgICFpdGVtX3N0 ci0+Y2hlY2tfd2VsbF9mb3JtZWRfcmVzdWx0KCZpdGVtX3N0ci0+c3RyX3ZhbHVlLCBUUlVFKSkK ICAgICAgICAgICAgIHsKQEAgLTEwNDY2LDI3ICsxMTE4NSw0MiBAQCBOVU1fbGl0ZXJhbDoKICAg ICAgICAgICBOVU0KICAgICAgICAgICB7CiAgICAgICAgICAgICBpbnQgZXJyb3I7Ci0gICAgICAg ICAgICAkJCA9IG5ldyBJdGVtX2ludCgkMS5zdHIsIChsb25nbG9uZykgbXlfc3RydG9sbDEwKCQx LnN0ciwgTlVMTCwgJmVycm9yKSwgJDEubGVuZ3RoKTsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZ VEhELT5tZW1fcm9vdCkKKyAgICAgICAgICAgICAgICAgIEl0ZW1faW50KCQxLnN0ciwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsb25nbG9uZykgbXlfc3RydG9sbDEwKCQxLnN0ciwgTlVM TCwgJmVycm9yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICQxLmxlbmd0aCk7CisgICAg ICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAg ICAgICAgICB9CiAgICAgICAgIHwgTE9OR19OVU0KICAgICAgICAgICB7CiAgICAgICAgICAgICBp bnQgZXJyb3I7Ci0gICAgICAgICAgICAkJCA9IG5ldyBJdGVtX2ludCgkMS5zdHIsIChsb25nbG9u ZykgbXlfc3RydG9sbDEwKCQxLnN0ciwgTlVMTCwgJmVycm9yKSwgJDEubGVuZ3RoKTsKKyAgICAg ICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkKKyAgICAgICAgICAgICAgICAgIEl0ZW1f aW50KCQxLnN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nbG9uZykgbXlfc3Ry dG9sbDEwKCQxLnN0ciwgTlVMTCwgJmVycm9yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICQxLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIHwgVUxPTkdMT05HX05VTQotICAg ICAgICAgIHsgJCQgPSBuZXcgSXRlbV91aW50KCQxLnN0ciwgJDEubGVuZ3RoKTsgfQorICAgICAg ICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV91aW50KCQx LnN0ciwgJDEubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBERUNJTUFMX05VTQog ICAgICAgICAgIHsKLSAgICAgICAgICAgICQkPSBuZXcgSXRlbV9kZWNpbWFsKCQxLnN0ciwgJDEu bGVuZ3RoLCBZWVRIRC0+Y2hhcnNldCgpKTsKLSAgICAgICAgICAgIGlmIChZWVRIRC0+aXNfZXJy b3IoKSkKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9kZWNpbWFs KCQxLnN0ciwgJDEubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgWVlUSEQtPmNoYXJzZXQoKSk7CisgICAgICAgICAgICBpZiAoKCQkID09 IE5VTEwpIHx8IChZWVRIRC0+aXNfZXJyb3IoKSkpCiAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgfQogICAgICAgICB8 IEZMT0FUX05VTQogICAgICAgICAgIHsKLSAgICAgICAgICAgICQkID0gbmV3IEl0ZW1fZmxvYXQo JDEuc3RyLCAkMS5sZW5ndGgpOwotICAgICAgICAgICAgaWYgKFlZVEhELT5pc19lcnJvcigpKQor ICAgICAgICAgICAgJCQgPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mbG9hdCgkMS5zdHIs ICQxLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAoKCQkID09IE5VTEwpIHx8IChZWVRIRC0+aXNf ZXJyb3IoKSkpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAg ICAgICAgICAgICB9CkBAIC0xMDUwNiwxNSArMTEyNDAsMjMgQEAgdGFibGVfd2lsZDoKICAgICAg ICAgICBpZGVudCAnLicgJyonCiAgICAgICAgICAgewogICAgICAgICAgICAgU0VMRUNUX0xFWCAq c2VsPSBTZWxlY3Q7Ci0gICAgICAgICAgICAkJCA9IG5ldyBJdGVtX2ZpZWxkKExleC0+Y3VycmVu dF9jb250ZXh0KCksIE51bGxTLCAkMS5zdHIsICIqIik7CisgICAgICAgICAgICAkJCA9IG5ldyAo WVlUSEQtPm1lbV9yb290KSBJdGVtX2ZpZWxkKExleC0+Y3VycmVudF9jb250ZXh0KCksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bGxTLCAkMS5z dHIsICIqIik7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKICAgICAgICAgICAgIHNlbC0+d2l0aF93aWxkKys7CiAgICAgICAgICAgfQog ICAgICAgICB8IGlkZW50ICcuJyBpZGVudCAnLicgJyonCiAgICAgICAgICAgeworICAgICAgICAg ICAgVEhEICp0aGQ9IFlZVEhEOwogICAgICAgICAgICAgU0VMRUNUX0xFWCAqc2VsPSBTZWxlY3Q7 Ci0gICAgICAgICAgICAkJCA9IG5ldyBJdGVtX2ZpZWxkKExleC0+Y3VycmVudF9jb250ZXh0KCks IChZWVRIRC0+Y2xpZW50X2NhcGFiaWxpdGllcyAmCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENMSUVOVF9OT19TQ0hFTUEgPyBOdWxsUyA6ICQxLnN0ciksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICQzLnN0ciwiKiIpOworICAgICAgICAgICAgY29uc3QgY2hhciog c2NoZW1hPSB0aGQtPmNsaWVudF9jYXBhYmlsaXRpZXMgJiBDTElFTlRfTk9fU0NIRU1BID8KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdWxsUyA6ICQxLnN0cjsKKyAgICAgICAg ICAgICQkID0gbmV3ICh0aGQtPm1lbV9yb290KSBJdGVtX2ZpZWxkKExleC0+Y3VycmVudF9jb250 ZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz Y2hlbWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk My5zdHIsIioiKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBN WVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgc2VsLT53aXRoX3dpbGQrKzsKICAgICAgICAgICB9 CiAgICAgICAgIDsKQEAgLTEwNTQxLDI0ICsxMTI4MywzNSBAQCBzaW1wbGVfaWRlbnQ6CiAgICAg ICAgICAgICAgIH0KIAogICAgICAgICAgICAgICBJdGVtX3NwbG9jYWwgKnNwbG9jYWw7Ci0gICAg ICAgICAgICAgIHNwbG9jYWw9IG5ldyBJdGVtX3NwbG9jYWwoJDEsIHNwdi0+b2Zmc2V0LCBzcHYt PnR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlwLT5nZXRf dG9rX3N0YXJ0X3ByZXYoKSAtCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV4LT5zcGhlYWQtPm1fdG1wX3F1ZXJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxpcC0+Z2V0X3Rva19lbmQoKSAtIGxpcC0+Z2V0X3Rva19zdGFydF9wcmV2 KCkpOworICAgICAgICAgICAgICBzcGxvY2FsPSBuZXcgKHRoZC0+bWVtX3Jvb3QpCisgICAgICAg ICAgICAgICAgICAgICAgICAgSXRlbV9zcGxvY2FsKCQxLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzcHYtPm9mZnNldCwgc3B2LT50eXBlLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsaXAtPmdldF90b2tfc3RhcnRfcHJldigpIC0gbGV4LT5z cGhlYWQtPm1fdG1wX3F1ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaXAtPmdldF90b2tfZW5kKCkgLSBsaXAtPmdldF90b2tfc3RhcnRfcHJldigpKTsKKyAgICAg ICAgICAgICAgaWYgKHNwbG9jYWwgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOwogI2lmbmRlZiBEQlVHX09GRgotICAgICAgICAgICAgICBpZiAoc3Bsb2NhbCkKLSAgICAg ICAgICAgICAgICBzcGxvY2FsLT5tX3NwPSBsZXgtPnNwaGVhZDsKKyAgICAgICAgICAgICAgc3Bs b2NhbC0+bV9zcD0gbGV4LT5zcGhlYWQ7CiAjZW5kaWYKLSAgICAgICAgICAgICAgJCQgPSAoSXRl bSopIHNwbG9jYWw7CisgICAgICAgICAgICAgICQkPSBzcGxvY2FsOwogICAgICAgICAgICAgICBs ZXgtPnNhZmVfdG9fY2FjaGVfcXVlcnk9MDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVs c2UKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgU0VMRUNUX0xFWCAqc2VsPVNlbGVjdDsK LSAgICAgICAgICAgICAgJCQ9IChzZWwtPnBhcnNpbmdfcGxhY2UgIT0gSU5fSEFWSU5HIHx8Ci0g ICAgICAgICAgICAgICAgICBzZWwtPmdldF9pbl9zdW1fZXhwcigpID4gMCkgPwotICAgICAgICAg ICAgICAgICAgKEl0ZW0qKSBuZXcgSXRlbV9maWVsZChMZXgtPmN1cnJlbnRfY29udGV4dCgpLCBO dWxsUywgTnVsbFMsICQxLnN0cikgOgotICAgICAgICAgICAgICAgICAgKEl0ZW0qKSBuZXcgSXRl bV9yZWYoTGV4LT5jdXJyZW50X2NvbnRleHQoKSwgTnVsbFMsIE51bGxTLCAkMS5zdHIpOworICAg ICAgICAgICAgICBTRUxFQ1RfTEVYICpzZWw9IFNlbGVjdDsKKyAgICAgICAgICAgICAgaWYgKChz ZWwtPnBhcnNpbmdfcGxhY2UgIT0gSU5fSEFWSU5HKSB8fAorICAgICAgICAgICAgICAgICAgKHNl bC0+Z2V0X2luX3N1bV9leHByKCkgPiAwKSkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgICQkPSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1fZmllbGQoTGV4LT5jdXJyZW50X2NvbnRl eHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE51bGxTLCBOdWxsUywgJDEuc3RyKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBl bHNlCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAkJD0gbmV3ICh0aGQtPm1lbV9y b290KSBJdGVtX3JlZihMZXgtPmN1cnJlbnRfY29udGV4dCgpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bGxTLCBOdWxsUywgJDEuc3RyKTsKKyAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgfQogICAgICAgICAgIH0KICAgICAgICAg fCBzaW1wbGVfaWRlbnRfcSB7ICQkPSAkMTsgfQpAQCAtMTA1NjcsMTEgKzExMzIwLDIxIEBAIHNp bXBsZV9pZGVudDoKIHNpbXBsZV9pZGVudF9ub3NwdmFyOgogICAgICAgICAgIGlkZW50CiAgICAg ICAgICAgewotICAgICAgICAgICAgU0VMRUNUX0xFWCAqc2VsPVNlbGVjdDsKLSAgICAgICAgICAg ICQkPSAoc2VsLT5wYXJzaW5nX3BsYWNlICE9IElOX0hBVklORyB8fAotICAgICAgICAgICAgICAg IHNlbC0+Z2V0X2luX3N1bV9leHByKCkgPiAwKSA/Ci0gICAgICAgICAgICAgICAgKEl0ZW0qKSBu ZXcgSXRlbV9maWVsZChMZXgtPmN1cnJlbnRfY29udGV4dCgpLCBOdWxsUywgTnVsbFMsICQxLnN0 cikgOgotICAgICAgICAgICAgICAgIChJdGVtKikgbmV3IEl0ZW1fcmVmKExleC0+Y3VycmVudF9j b250ZXh0KCksIE51bGxTLCBOdWxsUywgJDEuc3RyKTsKKyAgICAgICAgICAgIFRIRCAqdGhkPSBZ WVRIRDsKKyAgICAgICAgICAgIFNFTEVDVF9MRVggKnNlbD0gU2VsZWN0OworICAgICAgICAgICAg aWYgKChzZWwtPnBhcnNpbmdfcGxhY2UgIT0gSU5fSEFWSU5HKSB8fAorICAgICAgICAgICAgICAg IChzZWwtPmdldF9pbl9zdW1fZXhwcigpID4gMCkpCisgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICQkPSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1fZmllbGQoTGV4LT5jdXJyZW50X2NvbnRl eHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO dWxsUywgTnVsbFMsICQxLnN0cik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisg ICAgICAgICAgICB7CisgICAgICAgICAgICAgICQkPSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1f cmVmKExleC0+Y3VycmVudF9jb250ZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE51bGxTLCBOdWxsUywgJDEuc3RyKTsKKyAgICAgICAgICAgIH0K KyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OwogICAgICAgICAgIH0KICAgICAgICAgfCBzaW1wbGVfaWRlbnRfcSB7ICQkPSAkMTsgfQogICAg ICAgICA7CkBAIC0xMDYxMywxMyArMTEzNzYsMTYgQEAgc2ltcGxlX2lkZW50X3E6CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsZXgtPnRyZ19jaGlzdGljcy5ldmVudCA9PSBUUkdfRVZFTlRf VVBEQVRFKSk7CiAgICAgICAgICAgICAgIGNvbnN0IGJvb2wgcmVhZF9vbmx5PQogICAgICAgICAg ICAgICAgICEobmV3X3JvdyAmJiBsZXgtPnRyZ19jaGlzdGljcy5hY3Rpb25fdGltZSA9PSBUUkdf QUNUSU9OX0JFRk9SRSk7Ci0gICAgICAgICAgICAgIGlmICghKHRyZ19mbGQ9IG5ldyBJdGVtX3Ry aWdnZXJfZmllbGQoTGV4LT5jdXJyZW50X2NvbnRleHQoKSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfcm93ID8KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJdGVtX3RyaWdnZXJfZmllbGQ6 Ok5FV19ST1c6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSXRlbV90cmlnZ2VyX2ZpZWxkOjpPTERfUk9XLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQzLnN0ciwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUxFQ1RfQUNMLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfb25seSkpKQor CisgICAgICAgICAgICAgIHRyZ19mbGQ9IG5ldyAodGhkLT5tZW1fcm9vdCkKKyAgICAgICAgICAg ICAgICAgICAgICAgICBJdGVtX3RyaWdnZXJfZmllbGQoTGV4LT5jdXJyZW50X2NvbnRleHQoKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3JvdyA/Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXRlbV90cmlnZ2Vy X2ZpZWxkOjpORVdfUk9XOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEl0ZW1fdHJpZ2dlcl9maWVsZDo6T0xEX1JPVywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJDMuc3RyLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTRUxFQ1RfQUNMLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZWFkX29ubHkpOworICAgICAgICAgICAgICBpZiAodHJnX2Zs ZCA9PSBOVUxMKQogICAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAKICAgICAgICAgICAg ICAgLyoKQEAgLTEwNjI5LDcgKzExMzk1LDcgQEAgc2ltcGxlX2lkZW50X3E6CiAgICAgICAgICAg ICAgIGxleC0+dHJnX3RhYmxlX2ZpZWxkcy5saW5rX2luX2xpc3QoKHVjaGFyKikgdHJnX2ZsZCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodWNoYXIq KikgJnRyZ19mbGQtPm5leHRfdHJnX2ZpZWxkKTsKIAotICAgICAgICAgICAgICAkJD0gKEl0ZW0g Kil0cmdfZmxkOworICAgICAgICAgICAgICAkJD0gdHJnX2ZsZDsKICAgICAgICAgICAgIH0KICAg ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHsKQEAgLTEwNjM5LDEwICsxMTQwNSwxOSBAQCBz aW1wbGVfaWRlbnRfcToKICAgICAgICAgICAgICAgICBteV9lcnJvcihFUl9UQUJMRU5BTUVfTk9U X0FMTE9XRURfSEVSRSwKICAgICAgICAgICAgICAgICAgICAgICAgICBNWUYoMCksICQxLnN0ciwg dGhkLT53aGVyZSk7CiAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgJCQ9IChzZWwtPnBh cnNpbmdfcGxhY2UgIT0gSU5fSEFWSU5HIHx8Ci0gICAgICAgICAgICAgICAgICBzZWwtPmdldF9p bl9zdW1fZXhwcigpID4gMCkgPwotICAgICAgICAgICAgICAgICAgKEl0ZW0qKSBuZXcgSXRlbV9m aWVsZChMZXgtPmN1cnJlbnRfY29udGV4dCgpLCBOdWxsUywgJDEuc3RyLCAkMy5zdHIpIDoKLSAg ICAgICAgICAgICAgICAgIChJdGVtKikgbmV3IEl0ZW1fcmVmKExleC0+Y3VycmVudF9jb250ZXh0 KCksIE51bGxTLCAkMS5zdHIsICQzLnN0cik7CisgICAgICAgICAgICAgIGlmICgoc2VsLT5wYXJz aW5nX3BsYWNlICE9IElOX0hBVklORykgfHwKKyAgICAgICAgICAgICAgICAgIChzZWwtPmdldF9p bl9zdW1fZXhwcigpID4gMCkpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAkJD0g bmV3ICh0aGQtPm1lbV9yb290KSBJdGVtX2ZpZWxkKExleC0+Y3VycmVudF9jb250ZXh0KCksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdWxsUywg JDEuc3RyLCAkMy5zdHIpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UKKyAg ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICQkPSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0 ZW1fcmVmKExleC0+Y3VycmVudF9jb250ZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTnVsbFMsICQxLnN0ciwgJDMuc3RyKTsKKyAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBN WVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgfQogICAgICAgICAgIH0KICAgICAgICAgfCAnLicg aWRlbnQgJy4nIGlkZW50CkBAIC0xMDY1NSwzMSArMTE0MzAsNDUgQEAgc2ltcGxlX2lkZW50X3E6 CiAgICAgICAgICAgICAgIG15X2Vycm9yKEVSX1RBQkxFTkFNRV9OT1RfQUxMT1dFRF9IRVJFLAog ICAgICAgICAgICAgICAgICAgICAgICBNWUYoMCksICQyLnN0ciwgdGhkLT53aGVyZSk7CiAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICAkJD0gKHNlbC0+cGFyc2luZ19wbGFjZSAhPSBJTl9IQVZJ TkcgfHwKLSAgICAgICAgICAgICAgICBzZWwtPmdldF9pbl9zdW1fZXhwcigpID4gMCkgPwotICAg ICAgICAgICAgICAgIChJdGVtKikgbmV3IEl0ZW1fZmllbGQoTGV4LT5jdXJyZW50X2NvbnRleHQo KSwgTnVsbFMsICQyLnN0ciwgJDQuc3RyKSA6Ci0gICAgICAgICAgICAgICAgKEl0ZW0qKSBuZXcg SXRlbV9yZWYoTGV4LT5jdXJyZW50X2NvbnRleHQoKSwgTnVsbFMsICQyLnN0ciwgJDQuc3RyKTsK KyAgICAgICAgICAgIGlmICgoc2VsLT5wYXJzaW5nX3BsYWNlICE9IElOX0hBVklORykgfHwKKyAg ICAgICAgICAgICAgICAoc2VsLT5nZXRfaW5fc3VtX2V4cHIoKSA+IDApKQorICAgICAgICAgICAg eworICAgICAgICAgICAgICAkJD0gbmV3ICh0aGQtPm1lbV9yb290KSBJdGVtX2ZpZWxkKExleC0+ Y3VycmVudF9jb250ZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTnVsbFMsICQyLnN0ciwgJDQuc3RyKTsKKyAgICAgICAgICAgIH0KKyAgICAg ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgJCQ9IG5ldyAodGhkLT5t ZW1fcm9vdCkgSXRlbV9yZWYoTGV4LT5jdXJyZW50X2NvbnRleHQoKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTnVsbFMsICQyLnN0ciwgJDQuc3RyKTsK KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgIH0KICAgICAgICAgfCBpZGVudCAnLicgaWRlbnQg Jy4nIGlkZW50CiAgICAgICAgICAgewogICAgICAgICAgICAgVEhEICp0aGQ9IFlZVEhEOwogICAg ICAgICAgICAgTEVYICpsZXg9IHRoZC0+bGV4OwogICAgICAgICAgICAgU0VMRUNUX0xFWCAqc2Vs PSBsZXgtPmN1cnJlbnRfc2VsZWN0OworICAgICAgICAgICAgY29uc3QgY2hhciogc2NoZW1hPSAo dGhkLT5jbGllbnRfY2FwYWJpbGl0aWVzICYgQ0xJRU5UX05PX1NDSEVNQSA/CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBOdWxsUyA6ICQxLnN0cik7CiAgICAgICAgICAgICBpZiAo c2VsLT5ub190YWJsZV9uYW1lc19hbGxvd2VkKQogICAgICAgICAgICAgewogICAgICAgICAgICAg ICBteV9lcnJvcihFUl9UQUJMRU5BTUVfTk9UX0FMTE9XRURfSEVSRSwKICAgICAgICAgICAgICAg ICAgICAgICAgTVlGKDApLCAkMy5zdHIsIHRoZC0+d2hlcmUpOwogICAgICAgICAgICAgfQotICAg ICAgICAgICAgJCQ9IChzZWwtPnBhcnNpbmdfcGxhY2UgIT0gSU5fSEFWSU5HIHx8Ci0gICAgICAg ICAgICAgICAgc2VsLT5nZXRfaW5fc3VtX2V4cHIoKSA+IDApID8KLSAgICAgICAgICAgICAgICAo SXRlbSopIG5ldyBJdGVtX2ZpZWxkKExleC0+Y3VycmVudF9jb250ZXh0KCksCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWVlUSEQtPmNsaWVudF9jYXBhYmlsaXRpZXMg JgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xJRU5UX05PX1NDSEVN QSA/IE51bGxTIDogJDEuc3RyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICQzLnN0ciwgJDUuc3RyKSA6Ci0gICAgICAgICAgICAgICAgKEl0ZW0qKSBuZXcgSXRlbV9y ZWYoTGV4LT5jdXJyZW50X2NvbnRleHQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoWVlUSEQtPmNsaWVudF9jYXBhYmlsaXRpZXMgJgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENMSUVOVF9OT19TQ0hFTUEgPyBOdWxsUyA6ICQxLnN0ciksCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDMuc3RyLCAkNS5zdHIpOworICAg ICAgICAgICAgaWYgKChzZWwtPnBhcnNpbmdfcGxhY2UgIT0gSU5fSEFWSU5HKSB8fAorICAgICAg ICAgICAgICAgIChzZWwtPmdldF9pbl9zdW1fZXhwcigpID4gMCkpCisgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICQkPSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1fZmllbGQoTGV4LT5jdXJy ZW50X2NvbnRleHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzY2hlbWEsICQzLnN0ciwgJDUuc3RyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg ICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgJCQ9IG5ldyAodGhkLT5tZW1f cm9vdCkgSXRlbV9yZWYoTGV4LT5jdXJyZW50X2NvbnRleHQoKSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hLCAkMy5zdHIsICQ1LnN0cik7Cisg ICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIDsKIApAQCAtMTA3MTUsMTYgKzEx NTA0LDM0IEBAIGZpZWxkX2lkZW50OgogICAgICAgICA7CiAKIHRhYmxlX2lkZW50OgotICAgICAg ICAgIGlkZW50IHsgJCQ9bmV3IFRhYmxlX2lkZW50KCQxKTsgfQotICAgICAgICB8IGlkZW50ICcu JyBpZGVudCB7ICQkPW5ldyBUYWJsZV9pZGVudChZWVRIRCwgJDEsJDMsMCk7fQotICAgICAgICB8 ICcuJyBpZGVudCB7ICQkPW5ldyBUYWJsZV9pZGVudCgkMik7fSAvKiBGb3IgRGVscGhpICovCisg ICAgICAgICAgaWRlbnQKKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IFRhYmxlX2lk ZW50KCQxKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOworICAgICAgICAgIH0KKyAgICAgICAgfCBpZGVudCAnLicgaWRlbnQKKyAgICAg ICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IFRhYmxlX2lkZW50KFlZVEhELCAkMSwkMywwKTsK KyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OworICAgICAgICAgIH0KKyAgICAgICAgfCAnLicgaWRlbnQKKyAgICAgICAgICB7CisgICAgICAg ICAgICAvKiBGb3IgRGVscGhpICovCisgICAgICAgICAgICAkJD0gbmV3IFRhYmxlX2lkZW50KCQy KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOworICAgICAgICAgIH0KICAgICAgICAgOwogCiB0YWJsZV9pZGVudF9ub2RiOgogICAgICAg ICAgIGlkZW50CiAgICAgICAgICAgewogICAgICAgICAgICAgTEVYX1NUUklORyBkYj17KGNoYXIq KSBhbnlfZGIsM307Ci0gICAgICAgICAgICAkJD1uZXcgVGFibGVfaWRlbnQoWVlUSEQsIGRiLCQx LDApOworICAgICAgICAgICAgJCQ9IG5ldyBUYWJsZV9pZGVudChZWVRIRCwgZGIsJDEsMCk7Cisg ICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsK ICAgICAgICAgICB9CiAgICAgICAgIDsKIApAQCAtMTA3NTAsOCArMTE1NTcsMTEgQEAgSURFTlRf c3lzOgogICAgICAgICAgICAgICAkJD0gJDE7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBl bHNlCi0gICAgICAgICAgICAgIHRoZC0+Y29udmVydF9zdHJpbmcoJiQkLCBzeXN0ZW1fY2hhcnNl dF9pbmZvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQxLnN0ciwgJDEubGVu Z3RoLCB0aGQtPmNoYXJzZXQoKSk7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGlmICh0 aGQtPmNvbnZlcnRfc3RyaW5nKCYkJCwgc3lzdGVtX2NoYXJzZXRfaW5mbywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJDEuc3RyLCAkMS5sZW5ndGgsIHRoZC0+Y2hhcnNl dCgpKSkKKyAgICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgfQogICAg ICAgICAgIH0KICAgICAgICAgOwogCkBAIC0xMDc2Myw4ICsxMTU3MywxMSBAQCBURVhUX1NUUklO R19zeXM6CiAgICAgICAgICAgICBpZiAodGhkLT5jaGFyc2V0X2lzX3N5c3RlbV9jaGFyc2V0KQog ICAgICAgICAgICAgICAkJD0gJDE7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgIHRo ZC0+Y29udmVydF9zdHJpbmcoJiQkLCBzeXN0ZW1fY2hhcnNldF9pbmZvLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICQxLnN0ciwgJDEubGVuZ3RoLCB0aGQtPmNoYXJzZXQoKSk7 CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGlmICh0aGQtPmNvbnZlcnRfc3RyaW5nKCYk JCwgc3lzdGVtX2NoYXJzZXRfaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJDEuc3RyLCAkMS5sZW5ndGgsIHRoZC0+Y2hhcnNldCgpKSkKKyAgICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgfQogICAgICAgICAgIH0KICAgICAgICAgOwog CkBAIC0xMDc3Niw4ICsxMTU4OSwxMSBAQCBURVhUX1NUUklOR19saXRlcmFsOgogICAgICAgICAg ICAgaWYgKHRoZC0+Y2hhcnNldF9pc19jb2xsYXRpb25fY29ubmVjdGlvbikKICAgICAgICAgICAg ICAgJCQ9ICQxOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICB0aGQtPmNvbnZlcnRf c3RyaW5nKCYkJCwgdGhkLT52YXJpYWJsZXMuY29sbGF0aW9uX2Nvbm5lY3Rpb24sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJDEuc3RyLCAkMS5sZW5ndGgsIHRoZC0+Y2hhcnNl dCgpKTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKHRoZC0+Y29udmVydF9zdHJp bmcoJiQkLCB0aGQtPnZhcmlhYmxlcy5jb2xsYXRpb25fY29ubmVjdGlvbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJDEuc3RyLCAkMS5sZW5ndGgsIHRoZC0+Y2hhcnNl dCgpKSkKKyAgICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgfQogICAg ICAgICAgIH0KICAgICAgICAgOwogCkBAIC0xMDc4OSw4ICsxMTYwNSwxMiBAQCBURVhUX1NUUklO R19maWxlc3lzdGVtOgogICAgICAgICAgICAgaWYgKHRoZC0+Y2hhcnNldF9pc19jaGFyYWN0ZXJf c2V0X2ZpbGVzeXN0ZW0pCiAgICAgICAgICAgICAgICQkPSAkMTsKICAgICAgICAgICAgIGVsc2UK LSAgICAgICAgICAgICAgdGhkLT5jb252ZXJ0X3N0cmluZygmJCQsIHRoZC0+dmFyaWFibGVzLmNo YXJhY3Rlcl9zZXRfZmlsZXN5c3RlbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkMS5zdHIsICQxLmxlbmd0aCwgdGhkLT5jaGFyc2V0KCkpOworICAgICAgICAgICAgeworICAg ICAgICAgICAgICBpZiAodGhkLT5jb252ZXJ0X3N0cmluZygmJCQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRoZC0+dmFyaWFibGVzLmNoYXJhY3Rlcl9zZXRfZmlsZXN5 c3RlbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDEuc3RyLCAkMS5s ZW5ndGgsIHRoZC0+Y2hhcnNldCgpKSkKKyAgICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwor ICAgICAgICAgICAgfQogICAgICAgICAgIH0KICAgICAgICAgOwogCkBAIC0xMDgwMCw2ICsxMTYy MCw4IEBAIGlkZW50OgogICAgICAgICAgIHsKICAgICAgICAgICAgIFRIRCAqdGhkPSBZWVRIRDsK ICAgICAgICAgICAgICQkLnN0cj0gdGhkLT5zdHJtYWtlKCQxLnN0ciwgJDEubGVuZ3RoKTsKKyAg ICAgICAgICAgIGlmICgkJC5zdHIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9S VDsKICAgICAgICAgICAgICQkLmxlbmd0aD0gJDEubGVuZ3RoOwogICAgICAgICAgIH0KICAgICAg ICAgOwpAQCAtMTA4MTAsNiArMTE2MzIsOCBAQCBsYWJlbF9pZGVudDoKICAgICAgICAgICB7CiAg ICAgICAgICAgICBUSEQgKnRoZD0gWVlUSEQ7CiAgICAgICAgICAgICAkJC5zdHI9IHRoZC0+c3Ry bWFrZSgkMS5zdHIsICQxLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAoJCQuc3RyID09IE5VTEwp CisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICAkJC5sZW5ndGg9ICQx Lmxlbmd0aDsKICAgICAgICAgICB9CiAgICAgICAgIDsKQEAgLTExMzM3LDYgKzEyMTYxLDcgQEAg ZXh0X29wdGlvbl92YWx1ZToKIHN5c19vcHRpb25fdmFsdWU6CiAgICAgICAgICAgb3B0aW9uX3R5 cGUgaW50ZXJuYWxfdmFyaWFibGVfbmFtZSBlcXVhbCBzZXRfZXhwcl9vcl9kZWZhdWx0CiAgICAg ICAgICAgeworICAgICAgICAgICAgVEhEICp0aGQ9IFlZVEhEOwogICAgICAgICAgICAgTEVYICps ZXg9TGV4OwogCiAgICAgICAgICAgICBpZiAoJDIudmFyID09IHRyZ19uZXdfcm93X2Zha2VfdmFy KQpAQCAtMTEzNTYsMjEgKzEyMTgxLDI5IEBAIHN5c19vcHRpb25fdmFsdWU6CiAgICAgICAgICAg ICAgIGVsc2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIC8qIFFROiBTaG91bGRu J3QgdGhpcyBiZSBmaWVsZCdzIGRlZmF1bHQgdmFsdWUgPyAqLwotICAgICAgICAgICAgICAgIGl0 PSBuZXcgSXRlbV9udWxsKCk7CisgICAgICAgICAgICAgICAgaXQ9IG5ldyAodGhkLT5tZW1fcm9v dCkgSXRlbV9udWxsKCk7CisgICAgICAgICAgICAgICAgaWYgKGl0ID09IE5VTEwpCisgICAgICAg ICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg ICAgREJVR19BU1NFUlQobGV4LT50cmdfY2hpc3RpY3MuYWN0aW9uX3RpbWUgPT0gVFJHX0FDVElP Tl9CRUZPUkUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxleC0+dHJnX2NoaXN0aWNz LmV2ZW50ID09IFRSR19FVkVOVF9JTlNFUlQgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxleC0+dHJnX2NoaXN0aWNzLmV2ZW50ID09IFRSR19FVkVOVF9VUERBVEUpKTsKLSAgICAgICAg ICAgICAgaWYgKCEodHJnX2ZsZD0gbmV3IEl0ZW1fdHJpZ2dlcl9maWVsZChMZXgtPmN1cnJlbnRf Y29udGV4dCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEl0ZW1fdHJpZ2dlcl9maWVsZDo6TkVXX1JPVywKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMi5iYXNlX25hbWUuc3RyLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQREFURV9BQ0ws IEZBTFNFKSkgfHwKLSAgICAgICAgICAgICAgICAgICEoc3BfZmxkPSBuZXcgc3BfaW5zdHJfc2V0 X3RyaWdnZXJfZmllbGQobGV4LT5zcGhlYWQtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbnMoKSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV4LT5z cGNvbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRyZ19mbGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGl0LCBsZXgpKSkKKworICAgICAgICAgICAgICB0cmdfZmxk PSBuZXcgKHRoZC0+bWVtX3Jvb3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgSXRlbV90cmln Z2VyX2ZpZWxkKExleC0+Y3VycmVudF9jb250ZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEl0ZW1fdHJpZ2dlcl9maWVsZDo6TkVXX1JPVywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDIuYmFzZV9uYW1lLnN0ciwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVBEQVRFX0FDTCwg RkFMU0UpOworICAgICAgICAgICAgICBpZiAodHJnX2ZsZCA9PSBOVUxMKQorICAgICAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgICBzcF9mbGQ9 IG5ldyBzcF9pbnN0cl9zZXRfdHJpZ2dlcl9maWVsZChsZXgtPnNwaGVhZC0+CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RydWN0aW9ucygp LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs ZXgtPnNwY29udCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdHJnX2ZsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaXQsIGxleCk7CisgICAgICAgICAgICAgIGlmIChzcF9mbGQgPT0gTlVM TCkKICAgICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogCiAgICAgICAgICAgICAgIC8qCkBA IC0xMTM4Nyw4ICsxMjIyMCwxMSBAQCBzeXNfb3B0aW9uX3ZhbHVlOgogICAgICAgICAgICAgeyAv KiBTeXN0ZW0gdmFyaWFibGUgKi8KICAgICAgICAgICAgICAgaWYgKCQxKQogICAgICAgICAgICAg ICAgIGxleC0+b3B0aW9uX3R5cGU9ICQxOwotICAgICAgICAgICAgICBsZXgtPnZhcl9saXN0LnB1 c2hfYmFjayhuZXcgc2V0X3ZhcihsZXgtPm9wdGlvbl90eXBlLCAkMi52YXIsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICYkMi5iYXNlX25hbWUsICQ0KSk7CisgICAgICAg ICAgICAgIHNldF92YXIgKnZhcj0gbmV3IHNldF92YXIobGV4LT5vcHRpb25fdHlwZSwgJDIudmFy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYkMi5iYXNlX25hbWUs ICQ0KTsKKyAgICAgICAgICAgICAgaWYgKHZhciA9PSBOVUxMKQorICAgICAgICAgICAgICAgIE1Z U1FMX1lZQUJPUlQ7CisgICAgICAgICAgICAgIGxleC0+dmFyX2xpc3QucHVzaF9iYWNrKHZhcik7 CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICB7CkBAIC0xMTQx MCwzOSArMTIyNDYsNjkgQEAgc3lzX29wdGlvbl92YWx1ZToKICAgICAgICAgICAgICAgZWxzZSBp ZiAoc3B2LT5kZmx0KQogICAgICAgICAgICAgICAgIGl0PSBzcHYtPmRmbHQ7CiAgICAgICAgICAg ICAgIGVsc2UKLSAgICAgICAgICAgICAgICBpdD0gbmV3IEl0ZW1fbnVsbCgpOworICAgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgaXQ9IG5ldyAodGhkLT5tZW1fcm9vdCkgSXRlbV9udWxs KCk7CisgICAgICAgICAgICAgICAgaWYgKGl0ID09IE5VTEwpCisgICAgICAgICAgICAgICAgICBN WVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIHNwX3NldD0gbmV3 IHNwX2luc3RyX3NldChsZXgtPnNwaGVhZC0+aW5zdHJ1Y3Rpb25zKCksIGN0eCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwdi0+b2Zmc2V0LCBpdCwgc3B2LT50eXBl LCBsZXgsIFRSVUUpOworICAgICAgICAgICAgICBpZiAoc3Bfc2V0ID09IE5VTEwpCisgICAgICAg ICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICAgICAgbGV4LT5zcGhlYWQtPmFkZF9p bnN0cihzcF9zZXQpOwogICAgICAgICAgICAgfQogICAgICAgICAgIH0KICAgICAgICAgfCBvcHRp b25fdHlwZSBUUkFOU0FDVElPTl9TWU0gSVNPTEFUSU9OIExFVkVMX1NZTSBpc29sYXRpb25fdHlw ZXMKICAgICAgICAgICB7CisgICAgICAgICAgICBUSEQgKnRoZD0gWVlUSEQ7CiAgICAgICAgICAg ICBMRVggKmxleD1MZXg7CiAgICAgICAgICAgICBsZXgtPm9wdGlvbl90eXBlPSAkMTsKLSAgICAg ICAgICAgIGxleC0+dmFyX2xpc3QucHVzaF9iYWNrKG5ldyBzZXRfdmFyKGxleC0+b3B0aW9uX3R5 cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5k X3N5c192YXIoWVlUSEQsICJ0eF9pc29sYXRpb24iKSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZudWxsX2xleF9zdHIsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSXRlbV9pbnQoKGludDMyKSAkNSkp KTsKKyAgICAgICAgICAgIEl0ZW0gKml0ZW09IG5ldyAodGhkLT5tZW1fcm9vdCkgSXRlbV9pbnQo KGludDMyKSAkNSk7CisgICAgICAgICAgICBpZiAoaXRlbSA9PSBOVUxMKQorICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgc2V0X3ZhciAqdmFyPSBuZXcgc2V0X3Zhcihs ZXgtPm9wdGlvbl90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm aW5kX3N5c192YXIodGhkLCAidHhfaXNvbGF0aW9uIiksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZudWxsX2xleF9zdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGl0ZW0pOworICAgICAgICAgICAgaWYgKHZhciA9PSBOVUxMKQorICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgbGV4LT52YXJfbGlzdC5wdXNoX2Jh Y2sodmFyKTsKICAgICAgICAgICB9CiAgICAgICAgIDsKIAogb3B0aW9uX3ZhbHVlOgogICAgICAg ICAgICdAJyBpZGVudF9vcl90ZXh0IGVxdWFsIGV4cHIKICAgICAgICAgICB7Ci0gICAgICAgICAg ICBMZXgtPnZhcl9saXN0LnB1c2hfYmFjayhuZXcgc2V0X3Zhcl91c2VyKG5ldyBJdGVtX2Z1bmNf c2V0X3VzZXJfdmFyKCQyLCQ0KSkpOworICAgICAgICAgICAgSXRlbV9mdW5jX3NldF91c2VyX3Zh ciAqaXRlbTsKKyAgICAgICAgICAgIGl0ZW09IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1 bmNfc2V0X3VzZXJfdmFyKCQyLCAkNCk7CisgICAgICAgICAgICBpZiAoaXRlbSA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgc2V0X3Zhcl91c2VyICp2 YXI9IG5ldyBzZXRfdmFyX3VzZXIoaXRlbSk7CisgICAgICAgICAgICBpZiAodmFyID09IE5VTEwp CisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgICBMZXgtPnZhcl9saXN0 LnB1c2hfYmFjayh2YXIpOwogICAgICAgICAgIH0KICAgICAgICAgfCAnQCcgJ0AnIG9wdF92YXJf aWRlbnRfdHlwZSBpbnRlcm5hbF92YXJpYWJsZV9uYW1lIGVxdWFsIHNldF9leHByX29yX2RlZmF1 bHQKICAgICAgICAgICB7CiAgICAgICAgICAgICBMRVggKmxleD1MZXg7Ci0gICAgICAgICAgICBs ZXgtPnZhcl9saXN0LnB1c2hfYmFjayhuZXcgc2V0X3ZhcigkMywgJDQudmFyLCAmJDQuYmFzZV9u YW1lLCAkNikpOworICAgICAgICAgICAgc2V0X3ZhciAqdmFyPSBuZXcgc2V0X3ZhcigkMywgJDQu dmFyLCAmJDQuYmFzZV9uYW1lLCAkNik7CisgICAgICAgICAgICBpZiAodmFyID09IE5VTEwpCisg ICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgICBsZXgtPnZhcl9saXN0LnB1 c2hfYmFjayh2YXIpOwogICAgICAgICAgIH0KICAgICAgICAgfCBjaGFyc2V0IG9sZF9vcl9uZXdf Y2hhcnNldF9uYW1lX29yX2RlZmF1bHQKICAgICAgICAgICB7CiAgICAgICAgICAgICBUSEQgKnRo ZD0gWVlUSEQ7CiAgICAgICAgICAgICBMRVggKmxleD0gdGhkLT5sZXg7Ci0gICAgICAgICAgICAk Mj0gJDIgPyAkMjogZ2xvYmFsX3N5c3RlbV92YXJpYWJsZXMuY2hhcmFjdGVyX3NldF9jbGllbnQ7 Ci0gICAgICAgICAgICBsZXgtPnZhcl9saXN0LnB1c2hfYmFjayhuZXcgc2V0X3Zhcl9jb2xsYXRp b25fY2xpZW50KCQyLHRoZC0+dmFyaWFibGVzLmNvbGxhdGlvbl9kYXRhYmFzZSwkMikpOworICAg ICAgICAgICAgQ0hBUlNFVF9JTkZPICpjczI7CisgICAgICAgICAgICBjczI9ICQyID8gJDI6IGds b2JhbF9zeXN0ZW1fdmFyaWFibGVzLmNoYXJhY3Rlcl9zZXRfY2xpZW50OworICAgICAgICAgICAg c2V0X3Zhcl9jb2xsYXRpb25fY2xpZW50ICp2YXI7CisgICAgICAgICAgICB2YXI9IG5ldyBzZXRf dmFyX2NvbGxhdGlvbl9jbGllbnQoY3MyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRoZC0+dmFyaWFibGVzLmNvbGxhdGlvbl9kYXRhYmFzZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjczIpOworICAgICAgICAg ICAgaWYgKHZhciA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAg ICAgICAgbGV4LT52YXJfbGlzdC5wdXNoX2JhY2sodmFyKTsKICAgICAgICAgICB9CiAgICAgICAg IHwgTkFNRVNfU1lNIGVxdWFsIGV4cHIKICAgICAgICAgICB7CkBAIC0xMTQ2MiwxNSArMTIzMjgs MjEgQEAgb3B0aW9uX3ZhbHVlOgogICAgICAgICB8IE5BTUVTX1NZTSBjaGFyc2V0X25hbWVfb3Jf ZGVmYXVsdCBvcHRfY29sbGF0ZQogICAgICAgICAgIHsKICAgICAgICAgICAgIExFWCAqbGV4PSBM ZXg7Ci0gICAgICAgICAgICAkMj0gJDIgPyAkMiA6IGdsb2JhbF9zeXN0ZW1fdmFyaWFibGVzLmNo YXJhY3Rlcl9zZXRfY2xpZW50OwotICAgICAgICAgICAgJDM9ICQzID8gJDMgOiAkMjsKLSAgICAg ICAgICAgIGlmICghbXlfY2hhcnNldF9zYW1lKCQyLCQzKSkKKyAgICAgICAgICAgIENIQVJTRVRf SU5GTyAqY3MyOworICAgICAgICAgICAgQ0hBUlNFVF9JTkZPICpjczM7CisgICAgICAgICAgICBj czI9ICQyID8gJDIgOiBnbG9iYWxfc3lzdGVtX3ZhcmlhYmxlcy5jaGFyYWN0ZXJfc2V0X2NsaWVu dDsKKyAgICAgICAgICAgIGNzMz0gJDMgPyAkMyA6IGNzMjsKKyAgICAgICAgICAgIGlmICghbXlf Y2hhcnNldF9zYW1lKGNzMiwgY3MzKSkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgbXlf ZXJyb3IoRVJfQ09MTEFUSU9OX0NIQVJTRVRfTUlTTUFUQ0gsIE1ZRigwKSwKLSAgICAgICAgICAg ICAgICAgICAgICAgJDMtPm5hbWUsICQyLT5jc25hbWUpOworICAgICAgICAgICAgICAgICAgICAg ICBjczMtPm5hbWUsIGNzMi0+Y3NuYW1lKTsKICAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsK ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGxleC0+dmFyX2xpc3QucHVzaF9iYWNrKG5ldyBz ZXRfdmFyX2NvbGxhdGlvbl9jbGllbnQoJDMsJDMsJDMpKTsKKyAgICAgICAgICAgIHNldF92YXJf Y29sbGF0aW9uX2NsaWVudCAqdmFyOworICAgICAgICAgICAgdmFyPSBuZXcgc2V0X3Zhcl9jb2xs YXRpb25fY2xpZW50KGNzMywgY3MzLCBjczMpOworICAgICAgICAgICAgaWYgKHZhciA9PSBOVUxM KQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgbGV4LT52YXJfbGlz dC5wdXNoX2JhY2sodmFyKTsKICAgICAgICAgICB9CiAgICAgICAgIHwgUEFTU1dPUkQgZXF1YWwg dGV4dF9vcl9wYXNzd29yZAogICAgICAgICAgIHsKQEAgLTExNDkxLDE0ICsxMjM2MywyMCBAQCBv cHRpb25fdmFsdWU6CiAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICB1 c2VyLT5ob3N0PW51bGxfbGV4X3N0cjsKICAgICAgICAgICAgIHVzZXItPnVzZXIuc3RyPXRoZC0+ c2VjdXJpdHlfY3R4LT5wcml2X3VzZXI7Ci0gICAgICAgICAgICB0aGQtPmxleC0+dmFyX2xpc3Qu cHVzaF9iYWNrKG5ldyBzZXRfdmFyX3Bhc3N3b3JkKHVzZXIsICQzKSk7CisgICAgICAgICAgICBz ZXRfdmFyX3Bhc3N3b3JkICp2YXI9IG5ldyBzZXRfdmFyX3Bhc3N3b3JkKHVzZXIsICQzKTsKKyAg ICAgICAgICAgIGlmICh2YXIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsK KyAgICAgICAgICAgIHRoZC0+bGV4LT52YXJfbGlzdC5wdXNoX2JhY2sodmFyKTsKICAgICAgICAg ICAgIHRoZC0+bGV4LT5hdXRvY29tbWl0PSBUUlVFOwogICAgICAgICAgICAgaWYgKGxleC0+c3Bo ZWFkKQogICAgICAgICAgICAgICBsZXgtPnNwaGVhZC0+bV9mbGFnc3w9IHNwX2hlYWQ6OkhBU19T RVRfQVVUT0NPTU1JVF9TVE1UOwogICAgICAgICAgIH0KICAgICAgICAgfCBQQVNTV09SRCBGT1Jf U1lNIHVzZXIgZXF1YWwgdGV4dF9vcl9wYXNzd29yZAogICAgICAgICAgIHsKLSAgICAgICAgICAg IExleC0+dmFyX2xpc3QucHVzaF9iYWNrKG5ldyBzZXRfdmFyX3Bhc3N3b3JkKCQzLCQ1KSk7Cisg ICAgICAgICAgICBzZXRfdmFyX3Bhc3N3b3JkICp2YXI9IG5ldyBzZXRfdmFyX3Bhc3N3b3JkKCQz LCQ1KTsKKyAgICAgICAgICAgIGlmICh2YXIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxf WVlBQk9SVDsKKyAgICAgICAgICAgIExleC0+dmFyX2xpc3QucHVzaF9iYWNrKHZhcik7CiAgICAg ICAgICAgICBMZXgtPmF1dG9jb21taXQ9IFRSVUU7CiAgICAgICAgICAgICBpZiAoTGV4LT5zcGhl YWQpCiAgICAgICAgICAgICAgIExleC0+c3BoZWFkLT5tX2ZsYWdzfD0gc3BfaGVhZDo6SEFTX1NF VF9BVVRPQ09NTUlUX1NUTVQ7CkBAIC0xMTYwOSwxMSArMTI0ODcsMTUgQEAgdGV4dF9vcl9wYXNz d29yZDoKICAgICAgICAgICAgICAgSXRlbV9mdW5jX29sZF9wYXNzd29yZDo6YWxsb2MoWVlUSEQs ICQzLnN0cikgOgogICAgICAgICAgICAgICBJdGVtX2Z1bmNfcGFzc3dvcmQ6OmFsbG9jKFlZVEhE LCAkMy5zdHIpIDoKICAgICAgICAgICAgICAgJDMuc3RyOworICAgICAgICAgICAgaWYgKCQkID09 IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgfQogICAgICAg ICB8IE9MRF9QQVNTV09SRCAnKCcgVEVYVF9TVFJJTkcgJyknCiAgICAgICAgICAgewogICAgICAg ICAgICAgJCQ9ICQzLmxlbmd0aCA/IEl0ZW1fZnVuY19vbGRfcGFzc3dvcmQ6OmFsbG9jKFlZVEhE LCAkMy5zdHIpIDoKICAgICAgICAgICAgICAgJDMuc3RyOworICAgICAgICAgICAgaWYgKCQkID09 IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgfQogICAgICAg ICA7CiAKQEAgLTExNjIxLDkgKzEyNTAzLDI3IEBAIHRleHRfb3JfcGFzc3dvcmQ6CiBzZXRfZXhw cl9vcl9kZWZhdWx0OgogICAgICAgICAgIGV4cHIgeyAkJD0kMTsgfQogICAgICAgICB8IERFRkFV TFQgeyAkJD0wOyB9Ci0gICAgICAgIHwgT04gICAgIHsgJCQ9bmV3IEl0ZW1fc3RyaW5nKCJPTiIs ICAyLCBzeXN0ZW1fY2hhcnNldF9pbmZvKTsgfQotICAgICAgICB8IEFMTCAgICB7ICQkPW5ldyBJ dGVtX3N0cmluZygiQUxMIiwgMywgc3lzdGVtX2NoYXJzZXRfaW5mbyk7IH0KLSAgICAgICAgfCBC SU5BUlkgeyAkJD1uZXcgSXRlbV9zdHJpbmcoImJpbmFyeSIsIDYsIHN5c3RlbV9jaGFyc2V0X2lu Zm8pOyB9CisgICAgICAgIHwgT04KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZ WVRIRC0+bWVtX3Jvb3QpIEl0ZW1fc3RyaW5nKCJPTiIsICAyLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW1fY2hhcnNldF9pbmZvKTsKKyAg ICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwor ICAgICAgICAgIH0KKyAgICAgICAgfCBBTEwKKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0g bmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fc3RyaW5nKCJBTEwiLCAzLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW1fY2hhcnNldF9pbmZv KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOworICAgICAgICAgIH0KKyAgICAgICAgfCBCSU5BUlkKKyAgICAgICAgICB7CisgICAgICAg ICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fc3RyaW5nKCJiaW5hcnkiLCA2LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW1f Y2hhcnNldF9pbmZvKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgOwogCiAvKiBMb2NrIGZ1bmN0 aW9uICovCkBAIC0xMTgwMiw3ICsxMjcwMiwxMCBAQCBoYW5kbGVyOgogICAgICAgICAgICAgbGV4 LT5leHByX2FsbG93c19zdWJzZWxlY3Q9IEZBTFNFOwogICAgICAgICAgICAgbGV4LT5zcWxfY29t bWFuZCA9IFNRTENPTV9IQV9SRUFEOwogICAgICAgICAgICAgbGV4LT5oYV9ya2V5X21vZGU9IEhB X1JFQURfS0VZX0VYQUNUOyAvKiBBdm9pZCBwdXJpZnkgd2FybmluZ3MgKi8KLSAgICAgICAgICAg IGxleC0+Y3VycmVudF9zZWxlY3QtPnNlbGVjdF9saW1pdD0gbmV3IEl0ZW1faW50KChpbnQzMikg MSk7CisgICAgICAgICAgICBJdGVtICpvbmU9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2lu dCgoaW50MzIpIDEpOworICAgICAgICAgICAgaWYgKG9uZSA9PSBOVUxMKQorICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgbGV4LT5jdXJyZW50X3NlbGVjdC0+c2VsZWN0 X2xpbWl0PSBvbmU7CiAgICAgICAgICAgICBsZXgtPmN1cnJlbnRfc2VsZWN0LT5vZmZzZXRfbGlt aXQ9IDA7CiAgICAgICAgICAgICBpZiAoIWxleC0+Y3VycmVudF9zZWxlY3QtPmFkZF90YWJsZV90 b19saXN0KGxleC0+dGhkLCAkMiwgMCwgMCkpCiAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CkBAIC0xMjEyNiw4ICsxMzAyOSw5IEBAIGdyYW50X3VzZXI6CiAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICBjaGFyICpidWZmPSAKICAgICAgICAgICAgICAgICAgIChjaGFyICopIFlZ VEhELT5hbGxvYyhTQ1JBTUJMRURfUEFTU1dPUkRfQ0hBUl9MRU5HVEhfMzIzKzEpOwotICAgICAg ICAgICAgICAgIGlmIChidWZmKQotICAgICAgICAgICAgICAgICAgbWFrZV9zY3JhbWJsZWRfcGFz c3dvcmRfMzIzKGJ1ZmYsICQ0LnN0cik7CisgICAgICAgICAgICAgICAgaWYgKGJ1ZmYgPT0gTlVM TCkKKyAgICAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgICAgICAgbWFr ZV9zY3JhbWJsZWRfcGFzc3dvcmRfMzIzKGJ1ZmYsICQ0LnN0cik7CiAgICAgICAgICAgICAgICAg JDEtPnBhc3N3b3JkLnN0cj0gYnVmZjsKICAgICAgICAgICAgICAgICAkMS0+cGFzc3dvcmQubGVu Z3RoPSBTQ1JBTUJMRURfUEFTU1dPUkRfQ0hBUl9MRU5HVEhfMzIzOwogICAgICAgICAgICAgICB9 CkBAIC0xMjEzNSw4ICsxMzAzOSw5IEBAIGdyYW50X3VzZXI6CiAgICAgICAgICAgICAgIHsKICAg ICAgICAgICAgICAgICBjaGFyICpidWZmPSAKICAgICAgICAgICAgICAgICAgIChjaGFyICopIFlZ VEhELT5hbGxvYyhTQ1JBTUJMRURfUEFTU1dPUkRfQ0hBUl9MRU5HVEgrMSk7Ci0gICAgICAgICAg ICAgICAgaWYgKGJ1ZmYpCi0gICAgICAgICAgICAgICAgICBtYWtlX3NjcmFtYmxlZF9wYXNzd29y ZChidWZmLCAkNC5zdHIpOworICAgICAgICAgICAgICAgIGlmIChidWZmID09IE5VTEwpCisgICAg ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgICAgIG1ha2Vfc2NyYW1i bGVkX3Bhc3N3b3JkKGJ1ZmYsICQ0LnN0cik7CiAgICAgICAgICAgICAgICAgJDEtPnBhc3N3b3Jk LnN0cj0gYnVmZjsKICAgICAgICAgICAgICAgICAkMS0+cGFzc3dvcmQubGVuZ3RoPSBTQ1JBTUJM RURfUEFTU1dPUkRfQ0hBUl9MRU5HVEg7CiAgICAgICAgICAgICAgIH0KQEAgLTEyMTY2LDYgKzEz MDcxLDggQEAgY29sdW1uX2xpc3RfaWQ6CiAgICAgICAgICAgaWRlbnQKICAgICAgICAgICB7CiAg ICAgICAgICAgICBTdHJpbmcgKm5ld19zdHIgPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgU3RyaW5n KChjb25zdCBjaGFyKikgJDEuc3RyLCQxLmxlbmd0aCxzeXN0ZW1fY2hhcnNldF9pbmZvKTsKKyAg ICAgICAgICAgIGlmIChuZXdfc3RyID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJP UlQ7CiAgICAgICAgICAgICBMaXN0X2l0ZXJhdG9yIDxMRVhfQ09MVU1OPiBpdGVyKExleC0+Y29s dW1ucyk7CiAgICAgICAgICAgICBjbGFzcyBMRVhfQ09MVU1OICpwb2ludDsKICAgICAgICAgICAg IExFWCAqbGV4PUxleDsKQEAgLTEyMTc5LDcgKzEzMDg2LDEyIEBAIGNvbHVtbl9saXN0X2lkOgog ICAgICAgICAgICAgaWYgKHBvaW50KQogICAgICAgICAgICAgICBwb2ludC0+cmlnaHRzIHw9IGxl eC0+d2hpY2hfY29sdW1uczsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgbGV4LT5j b2x1bW5zLnB1c2hfYmFjayhuZXcgTEVYX0NPTFVNTiAoKm5ld19zdHIsbGV4LT53aGljaF9jb2x1 bW5zKSk7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIExFWF9DT0xVTU4gKmNvbD0gbmV3 IExFWF9DT0xVTU4gKCpuZXdfc3RyLGxleC0+d2hpY2hfY29sdW1ucyk7CisgICAgICAgICAgICAg IGlmIChjb2wgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAg ICAgICAgICBsZXgtPmNvbHVtbnMucHVzaF9iYWNrKGNvbCk7CisgICAgICAgICAgICB9CiAgICAg ICAgICAgfQogICAgICAgICA7CiAKQEAgLTEyNjE3LDIxICsxMzUyOSwyNCBAQCB2aWV3X2xpc3Rf b3B0OgogICAgICAgICA7CiAKIHZpZXdfbGlzdDoKLSAgICAgICAgICBpZGVudCAKLSAgICAgICAg ICAgIHsKLSAgICAgICAgICAgICAgTGV4LT52aWV3X2xpc3QucHVzaF9iYWNrKChMRVhfU1RSSU5H KikKLSAgICAgICAgICAgICAgc3FsX21lbWR1cCgmJDEsIHNpemVvZihMRVhfU1RSSU5HKSkpOwot ICAgICAgICAgICAgfQorICAgICAgICAgIGlkZW50CisgICAgICAgICAgeworICAgICAgICAgICAg TEVYX1NUUklORyAqbHM9IChMRVhfU1RSSU5HKikgc3FsX21lbWR1cCgmJDEsIHNpemVvZihMRVhf U1RSSU5HKSk7CisgICAgICAgICAgICBpZiAobHMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKKyAgICAgICAgICAgIExleC0+dmlld19saXN0LnB1c2hfYmFjayhscyk7Cisg ICAgICAgICAgfQogICAgICAgICB8IHZpZXdfbGlzdCAnLCcgaWRlbnQKLSAgICAgICAgICAgIHsK LSAgICAgICAgICAgICAgTGV4LT52aWV3X2xpc3QucHVzaF9iYWNrKChMRVhfU1RSSU5HKikKLSAg ICAgICAgICAgICAgc3FsX21lbWR1cCgmJDMsIHNpemVvZihMRVhfU1RSSU5HKSkpOwotICAgICAg ICAgICAgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgIExFWF9TVFJJTkcgKmxzPSAoTEVYX1NU UklORyopIHNxbF9tZW1kdXAoJiQzLCBzaXplb2YoTEVYX1NUUklORykpOworICAgICAgICAgICAg aWYgKGxzID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAg ICBMZXgtPnZpZXdfbGlzdC5wdXNoX2JhY2sobHMpOworICAgICAgICAgIH0KICAgICAgICAgOwog CiB2aWV3X3NlbGVjdDoKICAgICAgICAgICB7Ci0gICAgICAgICAgICBUSEQgKnRoZD0gWVlUSEQ7 CiAgICAgICAgICAgICBMRVggKmxleD0gTGV4OwogICAgICAgICAgICAgbGV4LT5wYXJzaW5nX29w dGlvbnMuYWxsb3dzX3ZhcmlhYmxlPSBGQUxTRTsKICAgICAgICAgICAgIGxleC0+cGFyc2luZ19v cHRpb25zLmFsbG93c19zZWxlY3RfaW50bz0gRkFMU0U7CkBAIC0xMjgxNyw2ICsxMzczMiw4IEBA IHNmX3RhaWw6CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvKiBPcmRlciBpcyBpbXBvcnRh bnQgaGVyZTogbmV3IC0gcmVzZXQgLSBpbml0ICovCiAgICAgICAgICAgICBzcD0gbmV3IHNwX2hl YWQoKTsKKyAgICAgICAgICAgIGlmIChzcCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOwogICAgICAgICAgICAgc3AtPnJlc2V0X3RoZF9tZW1fcm9vdCh0aGQpOwogICAgICAg ICAgICAgc3AtPmluaXQobGV4KTsKICAgICAgICAgICAgIHNwLT5pbml0X3NwX25hbWUodGhkLCBs ZXgtPnNwbmFtZSk7CkBAIC0xMjk0NCw2ICsxMzg2MSw4IEBAIHNwX3RhaWw6CiAKICAgICAgICAg ICAgIC8qIE9yZGVyIGlzIGltcG9ydGFudCBoZXJlOiBuZXcgLSByZXNldCAtIGluaXQgKi8KICAg ICAgICAgICAgIHNwPSBuZXcgc3BfaGVhZCgpOworICAgICAgICAgICAgaWYgKHNwID09IE5VTEwp CisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICBzcC0+cmVzZXRfdGhk X21lbV9yb290KFlZVEhEKTsKICAgICAgICAgICAgIHNwLT5pbml0KGxleCk7CiAgICAgICAgICAg ICBzcC0+bV90eXBlPSBUWVBFX0VOVU1fUFJPQ0VEVVJFOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3Nx bC90YWJsZS5jYycKLS0tIGEvc3FsL3RhYmxlLmNjCTIwMDgtMDctMjkgMTI6MDg6MDEgKzAwMDAK KysrIGIvc3FsL3RhYmxlLmNjCTIwMDgtMDgtMDcgMDM6MDU6MzMgKzAwMDAKQEAgLTIxMjUsNiAr MjEyNSwyOCBAQCB2b2lkIGZyZWVfYmxvYnMocmVnaXN0ZXIgVEFCTEUgKnRhYmxlKQogfQogCiAK Ky8qKgorICBSZWNsYWltIHRlbXBvcmFyeSBibG9iIHN0b3JhZ2Ugd2hpY2ggaXMgYmlnZ2VyIHRo YW4gCisgIGEgdGhyZXNob2xkLgorIAorICBAcGFyYW0gdGFibGUgQSBoYW5kbGUgdG8gdGhlIFRB QkxFIG9iamVjdCBjb250YWluaW5nIGJsb2IgZmllbGRzCisgIEBwYXJhbSBzaXplIFRoZSB0aHJl c2hvbGQgdmFsdWUuCisgCisqLworCit2b2lkIGZyZWVfZmllbGRfYnVmZmVyc19sYXJnZXJfdGhh bihUQUJMRSAqdGFibGUsIHVpbnQzMiBzaXplKQoreworICB1aW50ICpwdHIsICplbmQ7CisgIGZv ciAocHRyPSB0YWJsZS0+cy0+YmxvYl9maWVsZCwgZW5kPXB0ciArIHRhYmxlLT5zLT5ibG9iX2Zp ZWxkcyA7CisgICAgICAgcHRyICE9IGVuZCA7CisgICAgICAgcHRyKyspCisgIHsKKyAgICBGaWVs ZF9ibG9iICpibG9iPSAoRmllbGRfYmxvYiopIHRhYmxlLT5maWVsZFsqcHRyXTsKKyAgICBpZiAo YmxvYi0+Z2V0X2ZpZWxkX2J1ZmZlcl9zaXplKCkgPiBzaXplKQorICAgICAgICBibG9iLT5mcmVl KCk7CisgIH0KK30KKwogCS8qIEZpbmQgd2hlcmUgYSBmb3JtIHN0YXJ0cyAqLwogCS8qIGlmIGZv cm1uYW1lIGlzIE51bGxTIHRoZW4gb25seSBmb3JtbmFtZXMgaXMgcmVhZCAqLwogCgo9PT0gbW9k aWZpZWQgZmlsZSAnc3FsL3RhYmxlLmgnCi0tLSBhL3NxbC90YWJsZS5oCTIwMDgtMDYtMjggMTE6 MDA6NTkgKzAwMDAKKysrIGIvc3FsL3RhYmxlLmgJMjAwOC0wNy0yNSAxNToxMDoxNCArMDAwMApA QCAtOTUyLDYgKzk1Miw5IEBAIHR5cGVkZWYgc3RydWN0IHN0X3NjaGVtYV90YWJsZQogI2RlZmlu ZSBWSUVXX0NIRUNLX0VSUk9SICAgICAgMQogI2RlZmluZSBWSUVXX0NIRUNLX1NLSVAgICAgICAg MgogCisvKiogVGhlIHRocmVzaG9sZCBzaXplIGEgYmxvYiBmaWVsZCBidWZmZXIgYmVmb3JlIGl0 IGlzIGZyZWVkICovCisjZGVmaW5lIE1BWF9URENfQkxPQl9TSVpFIDY1NTM2CisKIHN0cnVjdCBz dF9sZXg7CiBjbGFzcyBzZWxlY3RfdW5pb247CiBjbGFzcyBUTVBfVEFCTEVfUEFSQU07Cgo9PT0g bW9kaWZpZWQgZmlsZSAnc3FsL3Rocl9tYWxsb2MuY2MnCi0tLSBhL3NxbC90aHJfbWFsbG9jLmNj CTIwMDgtMDMtMjggMTc6NDc6NTMgKzAwMDAKKysrIGIvc3FsL3Rocl9tYWxsb2MuY2MJMjAwOC0w OC0wMSAxNTozODowNSArMDAwMApAQCAtMjIsNiArMjIsMzMgQEAgZXh0ZXJuICJDIiB7CiAgIHZv aWQgc3FsX2FsbG9jX2Vycm9yX2hhbmRsZXIodm9pZCkKICAgewogICAgIHNxbF9wcmludF9lcnJv cihFUihFUl9PVVRfT0ZfUkVTT1VSQ0VTKSk7CisKKyAgICBUSEQgKnRoZD0gY3VycmVudF90aGQ7 CisgICAgaWYgKHRoZCkKKyAgICB7CisgICAgICBpZiAoISB0aGQtPmlzX2Vycm9yKCkpCisgICAg ICB7CisgICAgICAgIC8qCisgICAgICAgICAgVGhpcyB0aHJlYWQgaXMgT3V0IE9mIE1lbW9yeS4K KyAgICAgICAgICBBbiBPT00gY29uZGl0aW9uIGlzIGEgZmF0YWwgZXJyb3IuCisgICAgICAgICAg SXQgc2hvdWxkIG5vdCBiZSBjYXVnaHQgYnkgZXJyb3IgaGFuZGxlcnMgaW4gc3RvcmVkIHByb2Nl ZHVyZXMuCisgICAgICAgICAgQWxzbywgcmVjb3JkaW5nIHRoYXQgU1FMIGNvbmRpdGlvbiBpbiB0 aGUgY29uZGl0aW9uIGFyZWEgY291bGQKKyAgICAgICAgICBjYXVzZSBtb3JlIG1lbW9yeSBhbGxv Y2F0aW9ucywgd2hpY2ggaW4gdHVybiBjb3VsZCByYWlzZSBtb3JlCisgICAgICAgICAgT09NIGNv bmRpdGlvbnMsIGNhdXNpbmcgcmVjdXJzaW9uIGluIHRoZSBlcnJvciBoYW5kbGluZyBjb2RlIGl0 c2VsZi4KKyAgICAgICAgICBBcyBhIHJlc3VsdCwgbXlfZXJyb3IoKSBzaG91bGQgbm90IGJlIGlu dm9rZWQsIGFuZCB0aGUKKyAgICAgICAgICB0aHJlYWQgZGlhZ25vc3RpY3MgYXJlYSBpcyBzZXQg dG8gYW4gZXJyb3Igc3RhdHVzIGRpcmVjdGx5LgorICAgICAgICAgIE5vdGUgdGhhdCBEaWFnbm9z dGljc19hcmVhOjpzZXRfZXJyb3Jfc3RhdHVzKCkgaXMgc2FmZSwKKyAgICAgICAgICBzaW5jZSBp dCBkb2VzIG5vdCBjYWxsIGFueSBtZW1vcnkgYWxsb2NhdGlvbiByb3V0aW5lcy4KKyAgICAgICAg ICBUaGUgdmlzaWJsZSByZXN1bHQgZm9yIGEgY2xpZW50IGFwcGxpY2F0aW9uIHdpbGwgYmU6Cisg ICAgICAgICAgLSBhIHF1ZXJ5IGZhaWxzIHdpdGggYW4gRVJfT1VUX09GX1JFU09VUkNFUyBlcnJv ciwKKyAgICAgICAgICByZXR1cm5lZCBpbiB0aGUgZXJyb3IgcGFja2V0LgorICAgICAgICAgIC0g U0hPVyBFUlJPUi9TSE9XIFdBUk5JTkdTIG1heSBiZSBlbXB0eS4KKyAgICAgICAgKi8KKyAgICAg ICAgdGhkLT5tYWluX2RhLnNldF9lcnJvcl9zdGF0dXModGhkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFUl9PVVRfT0ZfUkVTT1VSQ0VTLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFUihFUl9PVVRfT0ZfUkVTT1VSQ0VTKSk7CisgICAgICB9 CisgICAgfQogICB9CiB9CiAKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9CREIu Y3BwJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9CREIuY3BwCTIwMDgtMDUtMDggMjA6Mzc6MjggKzAw MDAKKysrIGIvc3RvcmFnZS9mYWxjb24vQkRCLmNwcAkyMDA4LTA3LTI0IDA4OjQ1OjAzICswMDAw CkBAIC01Nyw4ICs1NywxMSBAQCBCZGI6OkJkYigpCiAJcHJpb3JEaXJ0eSA9IG5leHREaXJ0eSA9 IE5VTEw7CiAJZmx1c2hJdCA9IGZhbHNlOwogCWRiYiA9IE5VTEw7CisJc3luY09iamVjdC5zZXRO YW1lKCJCZGI6OnN5bmNPYmplY3QiKTsKKwlzeW5jV3JpdGUuc2V0TmFtZSgiQmRiOjpzeW5jV3Jp dGUiKTsKIAogI2lmZGVmIENPTExFQ1RfQkRCX0hJU1RPUlkKKwlzeW5jSGlzdG9yeS5zZXROYW1l KCJCZGI6OnN5bmNIaXN0b3J5Iik7CiAJbG9ja1R5cGUgPSBOb25lOwogCWluaXRDb3VudCA9IDA7 CiAJaGlzdG9yeUNvdW50ID0gMDsKQEAgLTIwMyw3ICsyMDYsNyBAQCB2b2lkIEJkYjo6aW5pdEhp c3RvcnkoKQogCiB2b2lkIEJkYjo6YWRkSGlzdG9yeShpbnQgZGVsdGEsIGNvbnN0IGNoYXIgKmZp bGUsIGludCBsaW5lKQogewotCVN5bmMgc3luYyAoJmhpc3RvcnlTeW5jT2JqZWN0LCAiQmRiOjph ZGRIaXN0b3J5Iik7CisJU3luYyBzeW5jICgmc3luY0hpc3RvcnksICJCZGI6OmFkZEhpc3Rvcnki KTsKIAlzeW5jLmxvY2sgKEV4Y2x1c2l2ZSk7CiAJdW5zaWduZWQgaW50IGhpc3RvcnlPZmZzZXQg PSBoaXN0b3J5Q291bnQrKyAlIE1BWF9CREJfSElTVE9SWTsKIAoKPT09IG1vZGlmaWVkIGZpbGUg J3N0b3JhZ2UvZmFsY29uL0JEQi5oJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9CREIuaAkyMDA4LTA1 LTEwIDA0OjE4OjQxICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL0JEQi5oCTIwMDgtMDctMjQg MDg6NDU6MDMgKzAwMDAKQEAgLTEwMyw3ICsxMDMsNyBAQCBwdWJsaWM6CiAJdm9sYXRpbGUgSU5U RVJMT0NLX1RZUEUJdXNlQ291bnQ7CiAKICNpZmRlZiBDT0xMRUNUX0JEQl9ISVNUT1JZCi0JU3lu Y09iamVjdAloaXN0b3J5U3luY09iamVjdDsKKwlTeW5jT2JqZWN0CXN5bmNIaXN0b3J5OwogCXVp bnQgaW5pdENvdW50OwogCXVpbnQgaGlzdG9yeUNvdW50OwogCXN0cnVjdCBiZGJfaGlzdG9yeQkJ aGlzdG9yeVtNQVhfQkRCX0hJU1RPUlldOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFs Y29uL0JhY2tMb2cuY3BwJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9CYWNrTG9nLmNwcAkyMDA4LTA0 LTEyIDAyOjIyOjUwICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL0JhY2tMb2cuY3BwCTIwMDgt MDctMTcgMTM6NTI6MTcgKzAwMDAKQEAgLTM4LDcgKzM4LDcgQEAgQmFja0xvZzo6QmFja0xvZyhE YXRhYmFzZSAqZGIsIGNvbnN0IGNoYQogCWRhdGFiYXNlID0gZGI7CiAJZGJiID0gbmV3IERiYihk YXRhYmFzZS0+ZGJiLCAwKTsKIAlkYmItPmNyZWF0ZVBhdGgoZmlsZU5hbWUpOwotCWRiYi0+Y3Jl YXRlKGZpbGVOYW1lLCBkYmItPnBhZ2VTaXplLCAwLCBIZHJUYWJsZVNwYWNlLCAwLCBOVUxMLCAw KTsKKwlkYmItPmNyZWF0ZShmaWxlTmFtZSwgZGJiLT5wYWdlU2l6ZSwgMCwgSGRyVGFibGVTcGFj ZSwgMCwgTlVMTCk7CiAJZGJiLT5ub0xvZyA9IHRydWU7CiAJZGJiLT50YWJsZVNwYWNlSWQgPSAt MTsKIAlpbnQzMiBzZWN0aW9uSWQgPSBTZWN0aW9uOjpjcmVhdGVTZWN0aW9uIChkYmIsIE5PX1RS QU5TQUNUSU9OKTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9DYWNoZS5jcHAn Ci0tLSBhL3N0b3JhZ2UvZmFsY29uL0NhY2hlLmNwcAkyMDA4LTA3LTA5IDEyOjM1OjQ4ICswMDAw CisrKyBiL3N0b3JhZ2UvZmFsY29uL0NhY2hlLmNwcAkyMDA4LTA3LTI0IDA4OjQ1OjAzICswMDAw CkBAIC04OSw5ICs4OSwxMiBAQCBDYWNoZTo6Q2FjaGUoRGF0YWJhc2UgKmRiLCBpbnQgcGFnZVN6 LCBpCiAJYnVmZmVySHVua3MgPSBuZXcgY2hhciogW251bWJlckh1bmtzXTsKIAltZW1zZXQoYnVm ZmVySHVua3MsIDAsIG51bWJlckh1bmtzICogc2l6ZW9mKGNoYXIqKSk7CiAJc3luY09iamVjdC5z ZXROYW1lKCJDYWNoZTo6c3luY09iamVjdCIpOwotCXN5bmNEaXJ0eS5zZXROYW1lKCJDYWNoZTo6 c3luY0RpcnR5Iik7CiAJc3luY0ZsdXNoLnNldE5hbWUoIkNhY2hlOjpzeW5jRmx1c2giKTsKKwlz eW5jRGlydHkuc2V0TmFtZSgiQ2FjaGU6OnN5bmNEaXJ0eSIpOworCXN5bmNUaHJlYWRzLnNldE5h bWUoIkNhY2hlOjpzeW5jVGhyZWFkcyIpOwogCXN5bmNXYWl0LnNldE5hbWUoIkNhY2hlOjpzeW5j V2FpdCIpOworCWJ1ZmZlclF1ZXVlLnN5bmNPYmplY3Quc2V0TmFtZSgiQ2FjaGU6OmJ1ZmZlclF1 ZXVlLnN5bmNPYmplY3QiKTsKKwogCWZsdXNoQml0bWFwID0gbmV3IEJpdG1hcDsKIAludW1iZXJJ b1RocmVhZHMgPSBmYWxjb25faW9fdGhyZWFkczsKIAlpb1RocmVhZHMgPSBuZXcgVGhyZWFkKltu dW1iZXJJb1RocmVhZHNdOwpAQCAtMzU5LDggKzM2Miw4IEBAIEJkYiogQ2FjaGU6OmZha2VQYWdl KERiYiAqZGJiLCBpbnQzMiBwYWcKIAogdm9pZCBDYWNoZTo6Zmx1c2goaW50NjQgYXJnKQogewot CVN5bmMgZmx1c2hMb2NrKCZzeW5jRmx1c2gsICJDYWNoZTo6Zmx1c2giKTsKLQlTeW5jIHN5bmMo JnN5bmNEaXJ0eSwgIkNhY2hlOjppb1RocmVhZCIpOworCVN5bmMgZmx1c2hMb2NrKCZzeW5jRmx1 c2gsICJDYWNoZTo6Zmx1c2goMSkiKTsKKwlTeW5jIHN5bmMoJnN5bmNEaXJ0eSwgIkNhY2hlOjpm bHVzaCgyKSIpOwogCWZsdXNoTG9jay5sb2NrKEV4Y2x1c2l2ZSk7CiAJCiAJaWYgKGZsdXNoaW5n KQpAQCAtNTEzLDcgKzUxNiw3IEBAIHZvaWQgQ2FjaGU6Om1hcmtDbGVhbihCZGIgKmJkYikKIAog dm9pZCBDYWNoZTo6d3JpdGVQYWdlKEJkYiAqYmRiLCBpbnQgdHlwZSkKIHsKLQlTeW5jIHdyaXRl cigmYmRiLT5zeW5jV3JpdGUsICJDYWNoZTo6d3JpdGVQYWdlIik7CisJU3luYyB3cml0ZXIoJmJk Yi0+c3luY1dyaXRlLCAiQ2FjaGU6OndyaXRlUGFnZSgxKSIpOwogCXdyaXRlci5sb2NrKEV4Y2x1 c2l2ZSk7CiAKIAlpZiAoIWJkYi0+aXNEaXJ0eSkKQEAgLTU5Nyw3ICs2MDAsNyBAQCB2b2lkIENh Y2hlOjp3cml0ZVBhZ2UoQmRiICpiZGIsIGludCB0eXBlCiAKIAlpZiAoZGJiLT5zaGFkb3dzKQog CQl7Ci0JCVN5bmMgc3luYyAoJmRiYi0+Y2xvbmVTeW5jT2JqZWN0LCAiQ2FjaGU6OndyaXRlUGFn ZSIpOworCQlTeW5jIHN5bmMgKCZkYmItPnN5bmNDbG9uZSwgIkNhY2hlOjp3cml0ZVBhZ2UoMiki KTsKIAkJc3luYy5sb2NrIChTaGFyZWQpOwogCiAJCWZvciAoRGF0YWJhc2VDb3B5ICpzaGFkb3cg PSBkYmItPnNoYWRvd3M7IHNoYWRvdzsgc2hhZG93ID0gc2hhZG93LT5uZXh0KQpAQCAtNjY1LDkg KzY2OCw5IEBAIHZvaWQgQ2FjaGU6OmZyZWVQYWdlKERiYiAqZGJiLCBpbnQzMiBwYWcKIAogdm9p ZCBDYWNoZTo6Zmx1c2goRGJiICpkYmIpCiB7Ci0JLy9TeW5jIHN5bmMgKCZzeW5jRGlydHksICJD YWNoZTo6Zmx1c2goRGJiKSIpOworCS8vU3luYyBzeW5jICgmc3luY0RpcnR5LCAiQ2FjaGU6OmZs dXNoKDEpIik7CiAJLy9zeW5jLmxvY2sgKEV4Y2x1c2l2ZSk7Ci0JU3luYyBzeW5jICgmc3luY09i amVjdCwgIkNhY2hlOjpmcmVlUGFnZSIpOworCVN5bmMgc3luYyAoJnN5bmNPYmplY3QsICJDYWNo ZTo6Zmx1c2goMykiKTsKIAlzeW5jLmxvY2sgKFNoYXJlZCk7CiAKIAlmb3IgKEJkYiAqYmRiID0g YmRiczsgYmRiIDwgZW5kQmRiczsgKytiZGIpCkBAIC03NjEsMTAgKzc2NCwxMCBAQCB2b2lkIENh Y2hlOjppb1RocmVhZCh2b2lkKiBhcmcpCiAKIHZvaWQgQ2FjaGU6OmlvVGhyZWFkKHZvaWQpCiB7 Ci0JU3luYyBzeW5jVGhyZWFkKCZzeW5jVGhyZWFkcywgIkNhY2hlOjppb1RocmVhZCIpOworCVN5 bmMgc3luY1RocmVhZCgmc3luY1RocmVhZHMsICJDYWNoZTo6aW9UaHJlYWQoMSkiKTsKIAlzeW5j VGhyZWFkLmxvY2soU2hhcmVkKTsKLQlTeW5jIGZsdXNoTG9jaygmc3luY0ZsdXNoLCAiQ2FjaGU6 OmlvVGhyZWFkIik7Ci0JU3luYyBzeW5jKCZzeW5jT2JqZWN0LCAiQ2FjaGU6OmlvVGhyZWFkIik7 CisJU3luYyBmbHVzaExvY2soJnN5bmNGbHVzaCwgIkNhY2hlOjppb1RocmVhZCgyKSIpOworCVN5 bmMgc3luYygmc3luY09iamVjdCwgIkNhY2hlOjppb1RocmVhZCgzKSIpOwogCVByaW9yaXR5IHBy aW9yaXR5KGRhdGFiYXNlLT5pb1NjaGVkdWxlcik7CiAJVGhyZWFkICp0aHJlYWQgPSBUaHJlYWQ6 OmdldFRocmVhZCgiQ2FjaGU6OmlvVGhyZWFkIik7CiAJVUNIQVIgKnJhd0J1ZmZlciA9IG5ldyBV Q0hBUltBU1lOQ19CVUZGRVJfU0laRV07Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxj b24vQ29sbGF0aW9uTWFuYWdlci5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL0NvbGxhdGlvbk1h bmFnZXIuY3BwCTIwMDctMDktMjAgMTU6NDQ6MjUgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24v Q29sbGF0aW9uTWFuYWdlci5jcHAJMjAwOC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtNDIsNiAr NDIsNyBAQCBDb2xsYXRpb25NYW5hZ2VyOjpDb2xsYXRpb25NYW5hZ2VyKCkKIHsKIAltZW1zZXQo aGFzaFRhYmxlLCAwLCBzaXplb2YoaGFzaFRhYmxlKSk7CiAJYWRkKCZjb2xsYXRpb25DYXNlbGVz cyk7CisJc3luY09iamVjdC5zZXROYW1lKCJDb2xsYXRpb25NYW5hZ2VyOjpzeW5jT2JqZWN0Iik7 CiB9CiAKIENvbGxhdGlvbk1hbmFnZXI6On5Db2xsYXRpb25NYW5hZ2VyKCkKQEAgLTg3LDcgKzg4 LDcgQEAgdm9pZCBDb2xsYXRpb25NYW5hZ2VyOjphZGQoQ29sbGF0aW9uKiBjbwogCiBDb2xsYXRp b24qIENvbGxhdGlvbk1hbmFnZXI6OmZpbmQoY29uc3QgY2hhciogY29sbGF0aW9uTmFtZSkKIHsK LQlTeW5jIHN5bmMoJnN5bmNPYmplY3QsICJDb2xsYXRpb25NYW5hZ2VyOjphZGRDb2xsYXRpb24i KTsKKwlTeW5jIHN5bmMoJnN5bmNPYmplY3QsICJDb2xsYXRpb25NYW5hZ2VyOjpmaW5kIik7CiAJ c3luYy5sb2NrKFNoYXJlZCk7CiAJaW50IHNsb3QgPSBKU3RyaW5nOjpoYXNoKGNvbGxhdGlvbk5h bWUsIENPTExBVElPTl9IQVNIX1NJWkUpOwogCQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2Uv ZmFsY29uL0NvbXBpbGVkU3RhdGVtZW50LmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vQ29tcGls ZWRTdGF0ZW1lbnQuY3BwCTIwMDctMDktMjAgMTU6NDQ6MjUgKzAwMDAKKysrIGIvc3RvcmFnZS9m YWxjb24vQ29tcGlsZWRTdGF0ZW1lbnQuY3BwCTIwMDgtMDctMjQgMDg6NDU6MDMgKzAwMDAKQEAg LTk2LDYgKzk2LDcgQEAgQ29tcGlsZWRTdGF0ZW1lbnQ6OkNvbXBpbGVkU3RhdGVtZW50KENvbgog CWZpcnN0SW5zdGFuY2UgPSBsYXN0SW5zdGFuY2UgPSBOVUxMOwogCXNlbGVjdCA9IE5VTEw7CiAJ cGFyc2UgPSBOVUxMOworCXN5bmNPYmplY3Quc2V0TmFtZSgiQ29tcGlsZWRTdGF0ZW1lbnQ6OnN5 bmNPYmplY3QiKTsKIH0KIAogQ29tcGlsZWRTdGF0ZW1lbnQ6On5Db21waWxlZFN0YXRlbWVudCgp CkBAIC0xMDkzLDcgKzEwOTQsNyBAQCBib29sIENvbXBpbGVkU3RhdGVtZW50OjphZGRGaWx0ZXIo VGFibGVGCiAKIGludCBDb21waWxlZFN0YXRlbWVudDo6Y291bnRJbnN0YW5jZXMoKQogewotCVN5 bmMgc3luYyAoJnN5bmNPYmplY3QsICJDb21waWxlZFN0YXRlbWVudDo6YWRkSW5zdGFuY2UiKTsK KwlTeW5jIHN5bmMgKCZzeW5jT2JqZWN0LCAiQ29tcGlsZWRTdGF0ZW1lbnQ6OmNvdW50SW5zdGFu Y2VzIik7CiAJc3luYy5sb2NrIChTaGFyZWQpOwogCWludCBjb3VudCA9IDA7CiAKQEAgLTExNjMs NyArMTE2NCw3IEBAIFR5cGUgQ29tcGlsZWRTdGF0ZW1lbnQ6OmdldFR5cGUoU3ludGF4ICoKIAog dm9pZCBDb21waWxlZFN0YXRlbWVudDo6aW52YWxpZGF0ZSgpCiB7Ci0JU3luYyBzeW5jICgmc3lu Y09iamVjdCwgIkNvbXBpbGVkU3RhdGVtZW50OjphZGRJbnN0YW5jZSIpOworCVN5bmMgc3luYyAo JnN5bmNPYmplY3QsICJDb21waWxlZFN0YXRlbWVudDo6aW52YWxpZGF0ZSIpOwogCXN5bmMubG9j ayAoU2hhcmVkKTsKIAogCWZvciAoU3RhdGVtZW50ICppbnN0YW5jZSA9IGZpcnN0SW5zdGFuY2U7 IGluc3RhbmNlOyBpbnN0YW5jZSA9IGluc3RhbmNlLT5uZXh0KQoKPT09IG1vZGlmaWVkIGZpbGUg J3N0b3JhZ2UvZmFsY29uL0NvbmZpZ3VyYXRpb24uY3BwJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9D b25maWd1cmF0aW9uLmNwcAkyMDA4LTA3LTEwIDA5OjAxOjMyICswMDAwCisrKyBiL3N0b3JhZ2Uv ZmFsY29uL0NvbmZpZ3VyYXRpb24uY3BwCTIwMDgtMDctMTcgMTM6NTI6MTcgKzAwMDAKQEAgLTYy LDcgKzYyLDYgQEAKIGV4dGVybiB1aW50NjQJCW1heF9tZW1vcnlfYWRkcmVzczsKIAogZXh0ZXJu IHVpbnQ2NAkJZmFsY29uX3JlY29yZF9tZW1vcnlfbWF4OwotZXh0ZXJuIHVpbnQ2NAkJZmFsY29u X2luaXRpYWxfYWxsb2NhdGlvbjsKIGV4dGVybiB1aW50CQkJZmFsY29uX2FsbG9jYXRpb25fZXh0 ZW50OwogZXh0ZXJuIHVpbnQ2NAkJZmFsY29uX3BhZ2VfY2FjaGVfc2l6ZTsKIC8vZXh0ZXJuIHVp bnQJCWZhbGNvbl9kZWJ1Z19tYXNrOwpAQCAtMTE2LDcgKzExNSw2IEBAIENvbmZpZ3VyYXRpb246 OkNvbmZpZ3VyYXRpb24oY29uc3QgY2hhciAKIAlyZWNvcmRNZW1vcnlNYXgJCQkJPSBmYWxjb25f cmVjb3JkX21lbW9yeV9tYXg7CiAJcmVjb3JkU2NhdmVuZ2VUaHJlc2hvbGRQY3QJPSBmYWxjb25f cmVjb3JkX3NjYXZlbmdlX3RocmVzaG9sZDsKIAlyZWNvcmRTY2F2ZW5nZUZsb29yUGN0CQk9IGZh bGNvbl9yZWNvcmRfc2NhdmVuZ2VfZmxvb3I7Ci0JaW5pdGlhbEFsbG9jYXRpb24JCQk9IGZhbGNv bl9pbml0aWFsX2FsbG9jYXRpb247CiAJYWxsb2NhdGlvbkV4dGVudAkJCT0gZmFsY29uX2FsbG9j YXRpb25fZXh0ZW50OwogCXNlcmlhbExvZ1dpbmRvd3MJCQk9IGZhbGNvbl9zZXJpYWxfbG9nX2J1 ZmZlcnM7CiAJcGFnZUNhY2hlU2l6ZQkJCQk9IGZhbGNvbl9wYWdlX2NhY2hlX3NpemU7CkBAIC0x NjQsNyArMTYyLDYgQEAgQ29uZmlndXJhdGlvbjo6Q29uZmlndXJhdGlvbihjb25zdCBjaGFyIAog CXJlY29yZFNjYXZlbmdlVGhyZXNob2xkCQk9IChyZWNvcmRNZW1vcnlNYXggKiAxMDApIC8gcmVj b3JkU2NhdmVuZ2VUaHJlc2hvbGRQY3Q7CiAJcmVjb3JkU2NhdmVuZ2VGbG9vcgkJCT0gKHJlY29y ZE1lbW9yeU1heCAqIDEwMCkgLyByZWNvcmRTY2F2ZW5nZUZsb29yUGN0OwogCXNlcmlhbExvZ1dp bmRvd3MJCQk9IDEwOwotCWluaXRpYWxBbGxvY2F0aW9uCQkJPSAwOwogCWFsbG9jYXRpb25FeHRl bnQJCQk9IDEwOwogCXBhZ2VDYWNoZVNpemUJCQkJPSBnZXRNZW1vcnlTaXplKFBBR0VfQ0FDSEVf TUVNT1JZKTsKIAlpbmRleENoaWxsVGhyZXNob2xkCQkJPSA0ICogT05FX01COwoKPT09IG1vZGlm aWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL0NvbmZpZ3VyYXRpb24uaCcKLS0tIGEvc3RvcmFnZS9m YWxjb24vQ29uZmlndXJhdGlvbi5oCTIwMDgtMDMtMTEgMTY6MTU6NDcgKzAwMDAKKysrIGIvc3Rv cmFnZS9mYWxjb24vQ29uZmlndXJhdGlvbi5oCTIwMDgtMDctMTcgMTM6NTI6MTcgKzAwMDAKQEAg LTQ5LDcgKzQ5LDYgQEAgcHVibGljOgogCXVpbnQ2NAkJcmVjb3JkU2NhdmVuZ2VGbG9vcjsKIAlp bnQJCQlyZWNvcmRTY2F2ZW5nZVRocmVzaG9sZFBjdDsKIAlpbnQJCQlyZWNvcmRTY2F2ZW5nZUZs b29yUGN0OwotCXVpbnQ2NAkJaW5pdGlhbEFsbG9jYXRpb247CiAJdWludDY0CQlhbGxvY2F0aW9u RXh0ZW50OwogCXVpbnQ2NAkJcGFnZUNhY2hlU2l6ZTsKIAlpbnQ2NAkJamF2YUluaXRpYWxBbGxv Y2F0aW9uOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL0Nvbm5lY3Rpb24uY3Bw JwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9Db25uZWN0aW9uLmNwcAkyMDA4LTA3LTEwIDA5OjAxOjMy ICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL0Nvbm5lY3Rpb24uY3BwCTIwMDgtMDctMjQgMDg6 NDU6MDMgKzAwMDAKQEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIFNlcnZlcgkJKnNlcnZlcjsKIHN0 YXRpYyBib29sCQkJcGFuaWNTaHV0ZG93bjsKIAogc3RhdGljIFJlZ2lzdHJ5CQlyZWdpc3RyeTsK LXN0YXRpYyBTeW5jT2JqZWN0CWRhdGFiYXNlTGlzdDsKK3N0YXRpYyBTeW5jT2JqZWN0CXN5bmNE YXRhYmFzZUxpc3Q7CiAKIHN0YXRpYyBjb25zdCBjaGFyICpkZGwgW10gPSB7CiAJImdyYW50IGFs bCBvbiBzeXN0ZW0uc2VxdWVuY2VzIHRvICVzIiwKQEAgLTE2OSw2ICsxNjksOSBAQCB2b2lkIENv bm5lY3Rpb246OmluaXQoQ29uZmlndXJhdGlvbiAqY29uCiAJaXNvbGF0aW9uTGV2ZWwgPSBUUkFO U0FDVElPTl9DT05TSVNURU5UX1JFQUQ7CiAJbXlTcWxUaHJlYWRJZCA9IDA7CiAJY3VycmVudFN0 YXRlbWVudCA9IE5VTEw7CisJc3luY09iamVjdC5zZXROYW1lKCJDb25uZWN0aW9uOjpzeW5jT2Jq ZWN0Iik7CisJc3luY1Jlc3VsdFNldHMuc2V0TmFtZSgiQ29ubmVjdGlvbjo6c3luY1Jlc3VsdFNl dHMiKTsKKwlzeW5jRGF0YWJhc2VMaXN0LnNldE5hbWUoIkNvbm5lY3Rpb246OnN5bmNEYXRhYmFz ZUxpc3QiKTsKIH0KIAogQ29ubmVjdGlvbjo6fkNvbm5lY3Rpb24oKQpAQCAtOTIzLDcgKzkyNiw3 IEBAIHZvaWQgQ29ubmVjdGlvbjo6b3BlbkRhdGFiYXNlKGNvbnN0IGNoYXIKIAlpZiAoZmlsZW5h bWUpCiAJCUlPOjpleHBhbmRGaWxlTmFtZShmaWxlbmFtZSwgc2l6ZW9mKGRiRmlsZU5hbWUpLCBk YkZpbGVOYW1lKTsKIAllbHNlCi0JCXsgCisJCXsKIAkJaWYgKCFyZWdpc3RyeS5maW5kRGF0YWJh c2UgKGRiTmFtZSwgc2l6ZW9mIChkYkZpbGVOYW1lKSwgZGJGaWxlTmFtZSkpCiAJCQl0aHJvdyBT UUxFWENFUFRJT04gKENPTk5FQ1RJT05fRVJST1IsICJjYW4ndCBmaW5kIGRhdGFiYXNlIFwiJXNc IiIsIGRiTmFtZSk7CiAJCX0KQEAgLTk2OCw3ICs5NzEsNyBAQCB2b2lkIENvbm5lY3Rpb246OmNy ZWF0ZURhdGFiYXNlKGNvbnN0IGNoCiAJY29uc3QgY2hhciAqcGFzc3dvcmQgPSBwYXJhbWV0ZXJz LT5maW5kVmFsdWUgKCJwYXNzd29yZCIsICIiKTsKIAljaGFyIGRiRmlsZU5hbWUgWzEwMjRdOwog CWNvbnN0IGNoYXIgKmRiRmlsZSA9IHJlZ2lzdHJ5LmZpbmREYXRhYmFzZSAoZGJOYW1lLCBzaXpl b2YgKGRiRmlsZU5hbWUpLCBkYkZpbGVOYW1lKTsKLQlTeW5jIHN5bmMgKCZkYXRhYmFzZUxpc3Qs ICJDb25uZWN0aW9uOjpjcmVhdGVEYXRhYmFzZSIpOworCVN5bmMgc3luYyAoJnN5bmNEYXRhYmFz ZUxpc3QsICJDb25uZWN0aW9uOjpjcmVhdGVEYXRhYmFzZSgxKSIpOwogCXN5bmMubG9jayAoRXhj bHVzaXZlKTsKIAkKIAlpZiAoZGJGaWxlKQpAQCAtMTAyNyw3ICsxMDMwLDEwIEBAIERhdGFiYXNl KiBDb25uZWN0aW9uOjpjcmVhdGVEYXRhYmFzZShjb24KIAlpZiAoZGF0YWJhc2UpCiAJCXRocm93 IFNRTEVYQ0VQVElPTiAoQ09OTkVDVElPTl9FUlJPUiwgImRhdGFiYXNlIGlzIGFscmVhZHkgb3Bl biIpOwogCi0JU3luYyBzeW5jICgmZGF0YWJhc2VMaXN0LCAiQ29ubmVjdGlvbjo6Y3JlYXRlRGF0 YWJhc2UiKTsKKwlpZiAoIWZpcnN0RGF0YWJhc2UpCisJCXN5bmNEYXRhYmFzZUxpc3Quc2V0TmFt ZSgiQ29ubmVjdGlvbjo6c3luY0RhdGFiYXNlTGlzdCIpOworCisJU3luYyBzeW5jICgmc3luY0Rh dGFiYXNlTGlzdCwgIkNvbm5lY3Rpb246OmNyZWF0ZURhdGFiYXNlKDIpIik7CiAJc3luYy5sb2Nr IChFeGNsdXNpdmUpOwogCiAjaWZuZGVmIFNUT1JBR0VfRU5HSU5FCkBAIC0xMDQyLDcgKzEwNDgs NyBAQCBEYXRhYmFzZSogQ29ubmVjdGlvbjo6Y3JlYXRlRGF0YWJhc2UoY29uCiAJCQkJfQogCiAj aWZkZWYgU1RPUkFHRV9FTkdJTkUKLSAgICAgICAgc3RyY3B5KGRiRmlsZU5hbWUsIGZpbGVOYW1l KTsKKwlzdHJjcHkoZGJGaWxlTmFtZSwgZmlsZU5hbWUpOwogI2Vsc2UKIAlyZWdpc3RyeS5kZWZp bmVEYXRhYmFzZSAoZGJOYW1lLCBmaWxlTmFtZSk7CiAJCkBAIC0xNjE3LDcgKzE2MjMsNyBAQCBS ZXN1bHRMaXN0KiBDb25uZWN0aW9uOjpmaW5kUmVzdWx0TGlzdChpCiAKIERhdGFiYXNlKiBDb25u ZWN0aW9uOjpnZXREYXRhYmFzZShjb25zdCBjaGFyKiBkYk5hbWUsIGNvbnN0IGNoYXIqIGRiRmls ZU5hbWUsIFRocmVhZHMqIHRocmVhZHMpCiB7Ci0JU3luYyBzeW5jICgmZGF0YWJhc2VMaXN0LCAi Q29ubmVjdGlvbjo6Z2V0RGF0YWJhc2UiKTsKKwlTeW5jIHN5bmMgKCZzeW5jRGF0YWJhc2VMaXN0 LCAiQ29ubmVjdGlvbjo6Z2V0RGF0YWJhc2UiKTsKIAlzeW5jLmxvY2sgKFNoYXJlZCk7CiAJRGF0 YWJhc2UgKmRiOwogCkBAIC0xNjY1LDcgKzE2NzEsNyBAQCB2b2lkIENvbm5lY3Rpb246OmRyb3BE YXRhYmFzZSgpCiAJaWYgKCFkYXRhYmFzZSkKIAkJdGhyb3cgU1FMRVhDRVBUSU9OIChDT05ORUNU SU9OX0VSUk9SLCAiZGF0YWJhc2UgaXNuJ3Qgb3BlbiIpOwogCQkKLQlTeW5jIHN5bmMgKCZkYXRh YmFzZUxpc3QsICJDb25uZWN0aW9uOjpkcm9wRGF0YWJhc2UiKTsKKwlTeW5jIHN5bmMgKCZzeW5j RGF0YWJhc2VMaXN0LCAiQ29ubmVjdGlvbjo6ZHJvcERhdGFiYXNlIik7CiAJc3luYy5sb2NrIChF eGNsdXNpdmUpOwogCXVubGluayhkYXRhYmFzZSk7CiAJZGV0YWNoRGF0YWJhc2UoKTsKCj09PSBt b2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9EYXRhYmFzZS5jcHAnCi0tLSBhL3N0b3JhZ2Uv ZmFsY29uL0RhdGFiYXNlLmNwcAkyMDA4LTA2LTE3IDE3OjQxOjU0ICswMDAwCisrKyBiL3N0b3Jh Z2UvZmFsY29uL0RhdGFiYXNlLmNwcAkyMDA4LTA3LTE3IDEzOjUyOjE3ICswMDAwCkBAIC0zMjMs MTQgKzMyMyw2IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjcmVhdGVUYWJsZVNwYWNlcyA9CiAJCSJ0 YWJsZXNwYWNlX2lkIGludCBub3QgbnVsbCwiCiAJCSJmaWxlbmFtZSB2YXJjaGFyKDUxMikgbm90 IG51bGwsIgogCQkidHlwZSBpbnQsIgotCQkvKioqCi0JCSJpbml0aWFsX3NpemUgYmlnaW50LCIK LQkJImV4dGVudF9zaXplIGJpZ2ludCwiCi0JCSJhdXRvZXh0ZW5kX3NpemUgYmlnaW50LCIKLQkJ Im1heF9zaXplIGJpZ2ludCwiCi0JCSJub2RlZ3JvdXAgaW50LCIKLQkJIndhaXQgaW50LCIKLQkJ KioqLwogCQkiY29tbWVudCB0ZXh0KSI7CiAKIHN0YXRpYyBjb25zdCBjaGFyICpjcmVhdGVUYWJs ZVNwYWNlU2VxdWVuY2UgPSAKQEAgLTYzNCw3ICs2MjYsNyBAQCB2b2lkIERhdGFiYXNlOjpjcmVh dGVEYXRhYmFzZShjb25zdCBjaGFyCiAJaW50IHBhZ2Vfc2l6ZSA9IFBBR0VfU0laRTsKICNlbmRp ZgogCi0JY2FjaGUgPSBkYmItPmNyZWF0ZShmaWxlbmFtZSwgcGFnZV9zaXplLCBjb25maWd1cmF0 aW9uLT5wYWdlQ2FjaGVTaXplLCBIZHJEYXRhYmFzZUZpbGUsIDAsICIiLCAwKTsKKwljYWNoZSA9 IGRiYi0+Y3JlYXRlKGZpbGVuYW1lLCBwYWdlX3NpemUsIGNvbmZpZ3VyYXRpb24tPnBhZ2VDYWNo ZVNpemUsIEhkckRhdGFiYXNlRmlsZSwgMCwgIiIpOwogCQogCXRyeQogCQl7CkBAIC05OTUsNyAr OTg3LDcgQEAgVGFibGUqIERhdGFiYXNlOjpmaW5kVGFibGUgKGNvbnN0IGNoYXIgKgogCXNjaGVt YSA9IHN5bWJvbE1hbmFnZXItPmdldFN5bWJvbCAoc2NoZW1hKTsKIAluYW1lID0gc3ltYm9sTWFu YWdlci0+Z2V0U3ltYm9sIChuYW1lKTsKIAotCVN5bmMgc3luY1RibCAoJnN5bmNUYWJsZXMsICJE YXRhYmFzZTo6ZmluZFRhYmxlIik7CisJU3luYyBzeW5jVGJsICgmc3luY1RhYmxlcywgIkRhdGFi YXNlOjpmaW5kVGFibGUoMSkiKTsKIAlzeW5jVGJsLmxvY2sgKFNoYXJlZCk7CiAJCiAJaW50IHNs b3QgPSBIQVNIIChuYW1lLCBUQUJMRV9IQVNIX1NJWkUpOwpAQCAtMTAxMiw3ICsxMDA0LDcgQEAg VGFibGUqIERhdGFiYXNlOjpmaW5kVGFibGUgKGNvbnN0IGNoYXIgKgogCQlpZiAodW50YWJsZS0+ bmFtZSA9PSBuYW1lICYmIHVudGFibGUtPnNjaGVtYU5hbWUgPT0gc2NoZW1hKQogCQkJcmV0dXJu IE5VTEw7CiAKLQlTeW5jIHN5bmNEREwoJnN5bmNTeXNEREwsICJEYXRhYmFzZTo6ZmluZFRhYmxl Iik7CisJU3luYyBzeW5jRERMKCZzeW5jU3lzRERMLCAiRGF0YWJhc2U6OmZpbmRUYWJsZSgyKSIp OwogCXN5bmNEREwubG9jayhTaGFyZWQpOwogCQogCVBTdGF0ZW1lbnQgc3RhdGVtZW50ID0gcHJl cGFyZVN0YXRlbWVudCAoCkBAIC0xMTQ1LDcgKzExMzcsNyBAQCBDb21waWxlZFN0YXRlbWVudCog RGF0YWJhc2U6OmdldENvbXBpbGVkCiAJU3luYyBzeW5jRERMKCZzeW5jU3lzRERMLCAiRGF0YWJh c2U6OmdldENvbXBpbGVkU3RhdGVtZW50KDEpIik7CiAJc3luY0RETC5sb2NrKFNoYXJlZCk7CiAK LQlTeW5jIHN5bmNTdG10KCZzeW5jU3RhdGVtZW50cywgIkRhdGFiYXNlOjpnZXRDb21waWxlZFN0 YXRlbWVudCgxKSIpOworCVN5bmMgc3luY1N0bXQoJnN5bmNTdGF0ZW1lbnRzLCAiRGF0YWJhc2U6 OmdldENvbXBpbGVkU3RhdGVtZW50KDIpIik7CiAJc3luY1N0bXQubG9jayhTaGFyZWQpOwogCQog CS8vcHJpbnRmKCIlc1xuIiwgKGNvbnN0IGNoYXIqKSBzcWxTdHJpbmcpOwpAQCAtMTE3NCwxMCAr MTE2NiwxMCBAQCBDb21waWxlZFN0YXRlbWVudCogRGF0YWJhc2U6OmdldENvbXBpbGVkCiAKIENv bXBpbGVkU3RhdGVtZW50KiBEYXRhYmFzZTo6Z2V0Q29tcGlsZWRTdGF0ZW1lbnQoQ29ubmVjdGlv biAqY29ubmVjdGlvbiwgY29uc3QgV0NTdHJpbmcgKnNxbFN0cmluZykKIHsKLQlTeW5jIHN5bmNE REwoJnN5bmNTeXNEREwsICJEYXRhYmFzZTo6Z2V0Q29tcGlsZWRTdGF0ZW1lbnQoV0MpIik7CisJ U3luYyBzeW5jRERMKCZzeW5jU3lzRERMLCAiRGF0YWJhc2U6OmdldENvbXBpbGVkU3RhdGVtZW50 KDMpIik7CiAJc3luY0RETC5sb2NrKFNoYXJlZCk7CiAJCi0JU3luYyBzeW5jU3RtdCgmc3luY1N0 YXRlbWVudHMsICJEYXRhYmFzZTo6Z2V0Q29tcGlsZWRTdGF0ZW1lbnQoV0MpIik7CisJU3luYyBz eW5jU3RtdCgmc3luY1N0YXRlbWVudHMsICJEYXRhYmFzZTo6Z2V0Q29tcGlsZWRTdGF0ZW1lbnQo NCkiKTsKIAlzeW5jU3RtdC5sb2NrKFNoYXJlZCk7CiAJCiAJLy9KU3RyaW5nIHN0cihzcWxTdHJp bmcpOwpAQCAtMTIwOCw3ICsxMjAwLDcgQEAgQ29tcGlsZWRTdGF0ZW1lbnQqIERhdGFiYXNlOjpn ZXRDb21waWxlZAogCiBDb21waWxlZFN0YXRlbWVudCogRGF0YWJhc2U6OmNvbXBpbGVTdGF0ZW1l bnQoQ29ubmVjdGlvbiAqY29ubmVjdGlvbiwgSlN0cmluZyBzcWxTdHJpbmcpCiB7Ci0JU3luYyBz eW5jRERMKCZzeW5jU3lzRERMLCAiRGF0YWJhc2U6OmdldENvbXBpbGVkU3RhdGVtZW50KFdDKSIp OworCVN5bmMgc3luY0RETCgmc3luY1N5c0RETCwgIkRhdGFiYXNlOjpjb21waWxlU3RhdGVtZW50 KDEpIik7CiAJc3luY0RETC5sb2NrKFNoYXJlZCk7CiAJCiAJQ29tcGlsZWRTdGF0ZW1lbnQgKnN0 YXRlbWVudCA9IG5ldyBDb21waWxlZFN0YXRlbWVudCAoY29ubmVjdGlvbik7CkBAIC0xMjI3LDkg KzEyMTksOSBAQCBDb21waWxlZFN0YXRlbWVudCogRGF0YWJhc2U6OmNvbXBpbGVTdGF0CiAJaWYg KHN0YXRlbWVudC0+dXNlYWJsZSAmJiAKIAkJKHN0YXRlbWVudC0+bnVtYmVyUGFyYW1ldGVycyA+ IDAgfHwgIXN0YXRlbWVudC0+ZmlsdGVycy5pc0VtcHR5KCkpKQogCQl7Ci0JCVN5bmMgc3luY1N0 bXQgKCZzeW5jU3RhdGVtZW50cywgIkRhdGFiYXNlOjpjb21waWxlU3RhdGVtZW50KDEpIik7CisJ CVN5bmMgc3luY1N0bXQgKCZzeW5jU3RhdGVtZW50cywgIkRhdGFiYXNlOjpjb21waWxlU3RhdGVt ZW50KDIpIik7CiAJCXN5bmNTdG10LmxvY2sgKFNoYXJlZCk7Ci0JCVN5bmMgc3luY0FkZFN0bXQg KCZzeW5jQWRkU3RhdGVtZW50LCAiRGF0YWJhc2U6OmNvbXBpbGVTdGF0ZW1lbnQoMikiKTsKKwkJ U3luYyBzeW5jQWRkU3RtdCAoJnN5bmNBZGRTdGF0ZW1lbnQsICJEYXRhYmFzZTo6Y29tcGlsZVN0 YXRlbWVudCgzKSIpOwogCQlzeW5jQWRkU3RtdC5sb2NrIChFeGNsdXNpdmUpOwogCQlzdGF0ZW1l bnQtPmFkZFJlZigpOwogCQlzdGF0ZW1lbnQtPm5leHQgPSBjb21waWxlZFN0YXRlbWVudHM7CkBA IC0xMjY1LDcgKzEyNTcsNyBAQCB2b2lkIERhdGFiYXNlOjpjb21taXRTeXN0ZW1UcmFuc2FjdGlv bigpCiAKIHZvaWQgRGF0YWJhc2U6OnJvbGxiYWNrU3lzdGVtVHJhbnNhY3Rpb24odm9pZCkKIHsK LQlTeW5jIHN5bmMgKCZzeW5jU3lzRERMLCAiRGF0YWJhc2U6OmNvbW1pdFN5c3RlbVRyYW5zYWN0 aW9uIik7CisJU3luYyBzeW5jICgmc3luY1N5c0RETCwgIkRhdGFiYXNlOjpyb2xsYmFja1N5c3Rl bVRyYW5zYWN0aW9uIik7CiAJc3luYy5sb2NrIChFeGNsdXNpdmUpOwogCXN5c3RlbUNvbm5lY3Rp b24tPnJvbGxiYWNrKCk7CiB9CkBAIC0xMzMxLDEwICsxMzIzLDEwIEBAIFRhYmxlKiBEYXRhYmFz ZTo6Z2V0VGFibGUoaW50IHRhYmxlSWQpCiAKIFRhYmxlKiBEYXRhYmFzZTo6bG9hZFRhYmxlKFJl c3VsdFNldCAqIHJlc3VsdFNldCkKIHsKLQlTeW5jIHN5bmNEREwoJnN5bmNTeXNEREwsICJEYXRh YmFzZTo6bG9hZFRhYmxlIik7CisJU3luYyBzeW5jRERMKCZzeW5jU3lzRERMLCAiRGF0YWJhc2U6 OmxvYWRUYWJsZSgxKSIpOwogCXN5bmNEREwubG9jayhTaGFyZWQpOwogCi0JU3luYyBzeW5jT2Jq KCZzeW5jVGFibGVzLCAiRGF0YWJhc2U6OmxvYWRUYWJsZSIpOworCVN5bmMgc3luY09iaigmc3lu Y1RhYmxlcywgIkRhdGFiYXNlOjpsb2FkVGFibGUoMikiKTsKIAkKIAlpZiAoIXJlc3VsdFNldC0+ bmV4dCgpKQogCQlyZXR1cm4gTlVMTDsKQEAgLTEzOTksNyArMTM5MSw3IEBAIHZvaWQgRGF0YWJh c2U6OmZsdXNoSW52ZXJzaW9uKFRyYW5zYWN0aW8KIAogdm9pZCBEYXRhYmFzZTo6ZHJvcFRhYmxl KFRhYmxlICp0YWJsZSwgVHJhbnNhY3Rpb24gKnRyYW5zYWN0aW9uKQogewotCVN5bmMgc3luY0RE TCgmc3luY1N5c0RETCwgIkRhdGFiYXNlOjpkcm9wVGFibGUiKTsKKwlTeW5jIHN5bmNEREwoJnN5 bmNTeXNEREwsICJEYXRhYmFzZTo6ZHJvcFRhYmxlKDEpIik7CiAJc3luY0RETC5sb2NrKEV4Y2x1 c2l2ZSk7CiAJCiAJdGFibGUtPmNoZWNrRHJvcCgpOwpAQCAtMTQxNCw3ICsxNDA2LDcgQEAgdm9p ZCBEYXRhYmFzZTo6ZHJvcFRhYmxlKFRhYmxlICp0YWJsZSwgVAogCQogCXRyYW5zYWN0aW9uTWFu YWdlci0+ZHJvcFRhYmxlKHRhYmxlLCB0cmFuc2FjdGlvbik7CiAKLQlTeW5jIHN5bmNUYmwoJnN5 bmNUYWJsZXMsICJEYXRhYmFzZTo6ZHJvcFRhYmxlIik7CisJU3luYyBzeW5jVGJsKCZzeW5jVGFi bGVzLCAiRGF0YWJhc2U6OmRyb3BUYWJsZSgyKSIpOwogCXN5bmNUYmwubG9jayhFeGNsdXNpdmUp OwogCiAJLy8gUmVtb3ZlIHRhYmxlIGZyb20gbGluZWFyIHRhYmxlIGxpc3QKQEAgLTE0NTUsNyAr MTQ0Nyw3IEBAIHZvaWQgRGF0YWJhc2U6OmRyb3BUYWJsZShUYWJsZSAqdGFibGUsIFQKIAogCS8v IExvY2sgc2VjdGlvbnMgKGZhY3RvcmVkIG91dCBvZiBTUkxEcm9wVGFibGUgdG8gYXZvaWQgYSBk ZWFkbG9jaykKIAotCVN5bmMgc3luY1NlY3Rpb25zKCZzZXJpYWxMb2ctPnN5bmNTZWN0aW9ucywg IkRhdGFiYXNlOjpkcm9wVGFibGUiKTsKKwlTeW5jIHN5bmNTZWN0aW9ucygmc2VyaWFsTG9nLT5z eW5jU2VjdGlvbnMsICJEYXRhYmFzZTo6ZHJvcFRhYmxlKDMpIik7CiAJc3luY1NlY3Rpb25zLmxv Y2soRXhjbHVzaXZlKTsKIAl0YWJsZS0+ZXhwdW5nZShnZXRTeXN0ZW1UcmFuc2FjdGlvbigpKTsK IAlkZWxldGUgdGFibGU7CkBAIC0xNDYzLDcgKzE0NTUsNyBAQCB2b2lkIERhdGFiYXNlOjpkcm9w VGFibGUoVGFibGUgKnRhYmxlLCBUCiAKIHZvaWQgRGF0YWJhc2U6OnRydW5jYXRlVGFibGUoVGFi bGUgKnRhYmxlLCBTZXF1ZW5jZSAqc2VxdWVuY2UsIFRyYW5zYWN0aW9uICp0cmFuc2FjdGlvbikK IHsKLQlTeW5jIHN5bmNEREwoJnN5bmNTeXNEREwsICJEYXRhYmFzZTo6dHJ1bmNhdGVUYWJsZSIp OworCVN5bmMgc3luY0RETCgmc3luY1N5c0RETCwgIkRhdGFiYXNlOjp0cnVuY2F0ZVRhYmxlKDEp Iik7CiAJc3luY0RETC5sb2NrKEV4Y2x1c2l2ZSk7CiAJCiAJdGFibGUtPmNoZWNrRHJvcCgpOwpA QCAtMTQ3NiwxOSArMTQ2OCwxOSBAQCB2b2lkIERhdGFiYXNlOjp0cnVuY2F0ZVRhYmxlKFRhYmxl ICp0YWJsCiAJCQkJCQkgICAKIAkvLyBCbG9jayB0YWJsZSBkcm9wL2FkZCwgdGFibGUgbGlzdCBz Y2FucyBvawogCQotCVN5bmMgc3luY1RibCgmc3luY1RhYmxlcywgIkRhdGFiYXNlOjp0cnVuY2F0 ZVRhYmxlIik7CisJU3luYyBzeW5jVGJsKCZzeW5jVGFibGVzLCAiRGF0YWJhc2U6OnRydW5jYXRl VGFibGUoMikiKTsKIAlzeW5jVGJsLmxvY2soU2hhcmVkKTsKIAkKIAkvL0xvY2sgc2VjdGlvbnMg KGZhY3RvcmVkIG91dCBvZiBTUkxEcm9wVGFibGUgdG8gYXZvaWQgYSBkZWFkbG9jaykKIAkvL1Ro ZSBsb2NrIG9yZGVyIChzZXJpYWxMb2ctPnN5bmNTZWN0aW9ucyBiZWZvcmUgdGFibGUtPnN5bmNP YmplY3QpIGlzIAogCS8vaW1wb3J0YW50CiAKLQlTeW5jIHN5bmNTZWN0aW9ucygmc2VyaWFsTG9n LT5zeW5jU2VjdGlvbnMsICJEYXRhYmFzZTo6dHJ1bmNhdGVUYWJsZSIpOworCVN5bmMgc3luY1Nl Y3Rpb25zKCZzZXJpYWxMb2ctPnN5bmNTZWN0aW9ucywgIkRhdGFiYXNlOjp0cnVuY2F0ZVRhYmxl KDMpIik7CiAJc3luY1NlY3Rpb25zLmxvY2soRXhjbHVzaXZlKTsKIAkKIAkvLyBObyB0YWJsZSBh Y2Nlc3MgdW50aWwgdHJ1bmNhdGUgY29tcGxldGVzCiAJCi0JU3luYyBzeW5jT2JqKCZ0YWJsZS0+ c3luY09iamVjdCwgIkRhdGFiYXNlOjp0cnVuY2F0ZVRhYmxlIik7CisJU3luYyBzeW5jT2JqKCZ0 YWJsZS0+c3luY09iamVjdCwgIkRhdGFiYXNlOjp0cnVuY2F0ZVRhYmxlKDQpIik7CiAJc3luY09i ai5sb2NrKEV4Y2x1c2l2ZSk7CiAJCiAJdGFibGUtPmRlbGV0aW5nID0gdHJ1ZTsKQEAgLTE2NzUs MTAgKzE2NjcsMTAgQEAgUm9sZSogRGF0YWJhc2U6OmZpbmRSb2xlKGNvbnN0IFdDU3RyaW5nIAog CiB2b2lkIERhdGFiYXNlOjp2YWxpZGF0ZShpbnQgb3B0aW9uTWFzaykKIHsKLQlTeW5jIHN5bmNE REwoJnN5bmNTeXNEREwsICJEYXRhYmFzZTo6dmFsaWRhdGUiKTsKKwlTeW5jIHN5bmNEREwoJnN5 bmNTeXNEREwsICJEYXRhYmFzZTo6dmFsaWRhdGUoMSkiKTsKIAlzeW5jRERMLmxvY2soU2hhcmVk KTsKIAkKLQlTeW5jIHN5bmNPYmooJnN5bmNPYmplY3QsICJEYXRhYmFzZTo6dmFsaWRhdGUiKTsK KwlTeW5jIHN5bmNPYmooJnN5bmNPYmplY3QsICJEYXRhYmFzZTo6dmFsaWRhdGUoMikiKTsKIAlz eW5jT2JqLmxvY2sgKEV4Y2x1c2l2ZSk7CiAJCiAJTG9nOjpkZWJ1ZyAoIlZhbGlkYXRpb246XG4i KTsKQEAgLTE3NjQsNyArMTc1Niw3IEBAIHZvaWQgRGF0YWJhc2U6OnJldGlyZVJlY29yZHMoYm9v bCBmb3JjZWQKIHsKIAlpbnQgY3ljbGUgPSBzY2F2ZW5nZUN5Y2xlOwogCQotCVN5bmMgc3luY1Nj YXZlbmdlcigmc3luY1NjYXZlbmdlLCAiRGF0YWJhc2U6OnJldGlyZVJlY29yZHMiKTsKKwlTeW5j IHN5bmNTY2F2ZW5nZXIoJnN5bmNTY2F2ZW5nZSwgIkRhdGFiYXNlOjpyZXRpcmVSZWNvcmRzKDEp Iik7CiAJc3luY1NjYXZlbmdlci5sb2NrKEV4Y2x1c2l2ZSk7CiAKIAlpZiAoZm9yY2VkICYmIHNj YXZlbmdlQ3ljbGUgPiBjeWNsZSkKQEAgLTE3OTIsNyArMTc4NCw3IEBAIHZvaWQgRGF0YWJhc2U6 OnJldGlyZVJlY29yZHMoYm9vbCBmb3JjZWQKIAkJLy9Mb2dTdHJlYW0gc3RyZWFtOwogCQkvL3Jl Y29yZERhdGFQb29sLT5hbmFseXplKDAsICZzdHJlYW0sIE5VTEwsIE5VTEwpOwogCQkKLQkJU3lu YyBzeW5jVGJsKCZzeW5jVGFibGVzLCAiRGF0YWJhc2U6OnJldGlyZVJlY29yZHMiKTsKKwkJU3lu YyBzeW5jVGJsKCZzeW5jVGFibGVzLCAiRGF0YWJhc2U6OnJldGlyZVJlY29yZHMoMikiKTsKIAkJ c3luY1RibC5sb2NrKFNoYXJlZCk7CiAJCQogCQlUYWJsZSAqdGFibGU7CkBAIC0yMDA2LDcgKzE5 OTgsNyBAQCBKU3RyaW5nIERhdGFiYXNlOjphbmFseXplKGludCBtYXNrKQogewogCVN0cmVhbSBz dHJlYW07CiAJc3RyZWFtLnNldE1hbGxvYyAodHJ1ZSk7Ci0JU3luYyBzeW5jRERMKCZzeW5jU3lz RERMLCAiRGF0YWJhc2U6OmFuYWx5emUiKTsKKwlTeW5jIHN5bmNEREwoJnN5bmNTeXNEREwsICJE YXRhYmFzZTo6YW5hbHl6ZSgxKSIpOwogCiAJaWYgKG1hc2sgJiBhbmFseXplTWVtb3J5KQogCQlN ZW1NZ3JBbmFseXplIChtYXNrLCAmc3RyZWFtKTsKQEAgLTIwNDgsNyArMjA0MCw3IEBAIEpTdHJp bmcgRGF0YWJhc2U6OmFuYWx5emUoaW50IG1hc2spCiAJaWYgKG1hc2sgJiBhbmFseXplU3RhdGVt ZW50cykKIAkJewogCQlzdHJlYW0ucHV0U2VnbWVudCAoIlxuU3RhdGVtZW50c1xuIik7Ci0JCVN5 bmMgc3luY1N0bXQoJnN5bmNTdGF0ZW1lbnRzLCAiRGF0YWJhc2U6OmFuYWx5emUiKTsKKwkJU3lu YyBzeW5jU3RtdCgmc3luY1N0YXRlbWVudHMsICJEYXRhYmFzZTo6YW5hbHl6ZSgyKSIpOwogCQlz eW5jU3RtdC5sb2NrKFNoYXJlZCk7CiAKIAkJZm9yIChDb21waWxlZFN0YXRlbWVudCAqc3RhdGVt ZW50ID0gY29tcGlsZWRTdGF0ZW1lbnRzOyBzdGF0ZW1lbnQ7CkBAIC0yMzU5LDEwICsyMzUxLDEw IEBAIHZvaWQgRGF0YWJhc2U6OmdldFRhYmxlU3BhY2VGaWxlc0luZm8oSW4KIAogdm9pZCBEYXRh YmFzZTo6dXBkYXRlQ2FyZGluYWxpdGllcyh2b2lkKQogewotCVN5bmMgc3luY0RETCgmc3luY1N5 c0RETCwgIkRhdGFiYXNlOjp1cGRhdGVDYXJkaW5hbGl0aWVzIik7CisJU3luYyBzeW5jRERMKCZz eW5jU3lzRERMLCAiRGF0YWJhc2U6OnVwZGF0ZUNhcmRpbmFsaXRpZXMoMSkiKTsKIAlzeW5jRERM LmxvY2soU2hhcmVkKTsKIAkKLQlTeW5jIHN5bmNUYmwoJnN5bmNUYWJsZXMsICJEYXRhYmFzZTo6 dXBkYXRlQ2FyZGluYWxpdGllcyIpOworCVN5bmMgc3luY1RibCgmc3luY1RhYmxlcywgIkRhdGFi YXNlOjp1cGRhdGVDYXJkaW5hbGl0aWVzKDIpIik7CiAJc3luY1RibC5sb2NrKFNoYXJlZCk7CiAJ CiAJYm9vbCBoaXQgPSBmYWxzZTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9E YXRhYmFzZUNsb25lLmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vRGF0YWJhc2VDbG9uZS5jcHAJ MjAwNy0xMC0wOCAxNzoyMDoyNiArMDAwMAorKysgYi9zdG9yYWdlL2ZhbGNvbi9EYXRhYmFzZUNs b25lLmNwcAkyMDA4LTA3LTE3IDEzOjUyOjE3ICswMDAwCkBAIC01MCw3ICs1MCw3IEBAIHZvaWQg RGF0YWJhc2VDbG9uZTo6Y3JlYXRlRmlsZShjb25zdCBjaGEKIAlzaGFkb3cgPSBuZXcgSU87CiAJ c2hhZG93LT5wYWdlU2l6ZSA9IGRiYi0+cGFnZVNpemU7CiAJc2hhZG93LT5kYmIgPSBkYmI7Ci0J c2hhZG93LT5jcmVhdGVGaWxlKGZpbGVOYW1lLCAwKTsKKwlzaGFkb3ctPmNyZWF0ZUZpbGUoZmls ZU5hbWUpOwogfQogCiBjb25zdCBjaGFyKiBEYXRhYmFzZUNsb25lOjpnZXRGaWxlTmFtZSh2b2lk KQpAQCAtNzgsNyArNzgsNyBAQCB2b2lkIERhdGFiYXNlQ2xvbmU6OndyaXRlUGFnZShCZGIqIGJk YikKIAogdm9pZCBEYXRhYmFzZUNsb25lOjpjbG9uZSh2b2lkKQogewotCVN5bmMgc3luYygmc3lu Y09iamVjdCwgIkRhdGFiYXNlQ2xvbmU6OmNsb25lIik7CisJU3luYyBzeW5jKCZzeW5jT2JqZWN0 LCAiRGF0YWJhc2VDbG9uZTo6Y2xvbmUoMSkiKTsKIAlpbnQgbiA9IDA7CiAKIAlmb3IgKDs7KQpA QCAtMTExLDcgKzExMSw3IEBAIHZvaWQgRGF0YWJhc2VDbG9uZTo6Y2xvbmUodm9pZCkKIAkJCQog CQkJLy8gIEluIHRoZW9yeSwgd2UncmUgZG9uZS4gIExvY2sgdGhlIGNhY2hlIGFnYWluc3QgY2hh bmdlcywgYW5kIGNoZWNrIGFnYWluCiAJCQkKLQkJCVN5bmMgc3luY0NhY2hlKCZkYmItPmNhY2hl LT5zeW5jT2JqZWN0LCAiRGJiOjpjbG9uZUZpbGUiKTsKKwkJCVN5bmMgc3luY0NhY2hlKCZkYmIt PmNhY2hlLT5zeW5jT2JqZWN0LCAiRGF0YWJhc2VDbG9uZTo6Y2xvbmUoMikiKTsKIAkJCXN5bmND YWNoZS5sb2NrKEV4Y2x1c2l2ZSk7CiAJCQlsYXN0UGFnZSA9IFBhZ2VJbnZlbnRvcnlQYWdlOjpn ZXRMYXN0UGFnZShkYmIpOwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vRGF0 YWJhc2VDb3B5LmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vRGF0YWJhc2VDb3B5LmNwcAkyMDA3 LTA5LTIwIDE1OjQ0OjI1ICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL0RhdGFiYXNlQ29weS5j cHAJMjAwOC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtMzEsNiArMzEsNyBAQCBEYXRhYmFzZUNv cHk6OkRhdGFiYXNlQ29weShEYmIgKmRiKQogCXJld3JpdHRlblBhZ2VzID0gTlVMTDsKIAloaWdo V2F0ZXIgPSAwOwogCWF0RW5kID0gZmFsc2U7CisJc3luY09iamVjdC5zZXROYW1lKCJEYXRhYmFz ZUNvcHk6OnN5bmNPYmplY3QiKTsKIH0KIAogRGF0YWJhc2VDb3B5Ojp+RGF0YWJhc2VDb3B5KHZv aWQpCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vRGJiLmNwcCcKLS0tIGEvc3Rv cmFnZS9mYWxjb24vRGJiLmNwcAkyMDA4LTA0LTEyIDAyOjIyOjUwICswMDAwCisrKyBiL3N0b3Jh Z2UvZmFsY29uL0RiYi5jcHAJMjAwOC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtODksNiArODks OCBAQCBEYmI6OkRiYihEYXRhYmFzZSAqZGJhc2UpCiAJdGFibGVTcGFjZVNlY3Rpb25JZCA9IDA7 CiAJdGFibGVTcGFjZUlkID0gMDsKIAlub0xvZyA9IGZhbHNlOworCXN5bmNDbG9uZS5zZXROYW1l KCJEYmI6OnN5bmNDbG9uZSIpOworCXN5bmNTZXF1ZW5jZXMuc2V0TmFtZSgiRGJiOjpzeW5jU2Vx dWVuY2VzIik7CiB9CiAKIApAQCAtMTQ3LDcgKzE0OSw3IEBAIERiYjo6fkRiYigpCiAJCWRiYi0+ Y2xvc2UoKTsKIH0KIAotQ2FjaGUqIERiYjo6Y3JlYXRlKGNvbnN0IGNoYXIgKiBmaWxlTmFtZSwg aW50IHBhZ2VTeiwgaW50NjQgY2FjaGVTaXplLCBGaWxlVHlwZSBmaWxlVHlwZSwgVHJhbnNJZCB0 cmFuc0lkLCBjb25zdCBjaGFyICpsb2dSb290LCB1aW50NjQgaW5pdGlhbEFsbG9jYXRpb24pCitD YWNoZSogRGJiOjpjcmVhdGUoY29uc3QgY2hhciAqIGZpbGVOYW1lLCBpbnQgcGFnZVN6LCBpbnQ2 NCBjYWNoZVNpemUsIEZpbGVUeXBlIGZpbGVUeXBlLCBUcmFuc0lkIHRyYW5zSWQsIGNvbnN0IGNo YXIgKmxvZ1Jvb3QpCiB7CiAJc2VyaWFsTG9nID0gZGF0YWJhc2UtPnNlcmlhbExvZzsKIAlvZHNW ZXJzaW9uID0gT0RTX1ZFUlNJT047CkBAIC0xNTUsNyArMTU3LDcgQEAgQ2FjaGUqIERiYjo6Y3Jl YXRlKGNvbnN0IGNoYXIgKiBmaWxlTmFtZQogCXNlcXVlbmNlID0gMTsKIAogCWluaXQocGFnZVN6 LCAoaW50KSAoKGNhY2hlU2l6ZSArIHBhZ2VTeiAtIDEpIC8gcGFnZVN6KSk7Ci0JY3JlYXRlRmls ZShmaWxlTmFtZSwgaW5pdGlhbEFsbG9jYXRpb24pOworCWNyZWF0ZUZpbGUoZmlsZU5hbWUpOwog CXRyeQogCQl7CiAJCUhkcjo6Y3JlYXRlKHRoaXMsIGZpbGVUeXBlLCB0cmFuc0lkLCBsb2dSb290 KTsKQEAgLTc0OSw3ICs3NTEsNyBAQCBCZGIqIERiYjo6Z2V0U2VxdWVuY2VQYWdlKGludCBzZXF1 ZW5jZUlkCiAJZWxzZQogCSoqKi8KIAkJewotCQlTeW5jIHN5bmMoJnNlcXVlbmNlc1N5bmNPYmpl Y3QsICJEYmI6OnVwZGF0ZVNlcXVlbmNlIik7CisJCVN5bmMgc3luYygmc3luY1NlcXVlbmNlcywg IkRiYjo6Z2V0U2VxdWVuY2VQYWdlIik7CiAJCXN5bmMubG9jayhTaGFyZWQpOwogCQlpbnQgc2Vx dWVuY2VQYWdlU2VxdWVuY2UgPSBzZXF1ZW5jZUlkIC8gc2VxdWVuY2VzUGVyUGFnZTsKIAkJaW50 MzIgc2VxdWVuY2VQYWdlTnVtYmVyID0gc2VxdWVuY2VQYWdlcy5nZXQoc2VxdWVuY2VQYWdlU2Vx dWVuY2UpOwpAQCAtOTcwLDcgKzk3Miw3IEBAIHZvaWQgRGJiOjpjbG9uZUZpbGUoRGF0YWJhc2Ug KmRhdGFiYXNlLCAKIC8qKioKIHZvaWQgRGJiOjpjbG9uZUZpbGUoRGF0YWJhc2VDbG9uZSAqc2hh ZG93LCBib29sIGlzU2hhZG93KQogewotCVN5bmMgc3luYyAoJmNsb25lU3luY09iamVjdCwgIkRi Yjo6Y2xvbmVGaWxlKDIpIik7CisJU3luYyBzeW5jICgmc3luY0Nsb25lLCAiRGJiOjpjbG9uZUZp bGUoMikiKTsKIAlzeW5jLmxvY2sgKEV4Y2x1c2l2ZSk7CiAJc2hhZG93LT5uZXh0ID0gc2hhZG93 czsKIAlzaGFkb3dzID0gc2hhZG93OwpAQCAtMTAyMyw3ICsxMDI1LDcgQEAgdm9pZCBEYmI6OmNs b25lRmlsZShEYXRhYmFzZUNsb25lICpzaGFkbwogCiBib29sIERiYjo6ZGVsZXRlU2hhZG93KERh dGFiYXNlQ29weSAqc2hhZG93KQogewotCVN5bmMgc3luYyAoJmNsb25lU3luY09iamVjdCwgIkRi Yjo6ZGVsZXRlU2hhZG93Iik7CisJU3luYyBzeW5jICgmc3luY0Nsb25lLCAiRGJiOjpkZWxldGVT aGFkb3ciKTsKIAlzeW5jLmxvY2sgKEV4Y2x1c2l2ZSk7CiAKIAlmb3IgKERhdGFiYXNlQ29weSAq KnB0ciA9ICZzaGFkb3dzOyAqcHRyOyBwdHIgPSAmKCpwdHIpLT5uZXh0KQpAQCAtMTM1Miw3ICsx MzU0LDcgQEAgdm9pZCBEYmI6OnVwZ3JhZGVTZXF1ZW5jZVNlY3Rpb24odm9pZCkKIAogdm9pZCBE YmI6OmFkZFNoYWRvdyhEYXRhYmFzZUNvcHkqIHNoYWRvdykKIHsKLQlTeW5jIHN5bmMgKCZjbG9u ZVN5bmNPYmplY3QsICJEYmI6OmFkZFNoYWRvdyIpOworCVN5bmMgc3luYyAoJnN5bmNDbG9uZSwg IkRiYjo6YWRkU2hhZG93Iik7CiAJc3luYy5sb2NrIChFeGNsdXNpdmUpOwogCXNoYWRvdy0+bmV4 dCA9IHNoYWRvd3M7CiAJc2hhZG93cyA9IHNoYWRvdzsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9y YWdlL2ZhbGNvbi9EYmIuaCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vRGJiLmgJMjAwOC0wMy0yNyAw NjowOToyOSArMDAwMAorKysgYi9zdG9yYWdlL2ZhbGNvbi9EYmIuaAkyMDA4LTA3LTI0IDA4OjQ1 OjAzICswMDAwCkBAIC02MSwxMSArNjEsMTEgQEAgc3RhdGljIGNvbnN0IGludCBGaWxsTGV2ZWxz ID0gNTsKIAogc3RydWN0IFNlY3Rpb25BbmFseXNpcyAKIHsKLSAgIGludDMyCQlyZWNvcmRMb2Nh dG9yUGFnZXM7Ci0gICBpbnQzMgkJZGF0YVBhZ2VzOwotICAgaW50MzIJCW92ZXJmbG93UGFnZXM7 Ci0gICBpbnQzMgkJc3BhY2VBdmFpbGFibGU7Ci0gICBpbnQzMgkJcmVjb3JkczsKKwlpbnQzMgkJ cmVjb3JkTG9jYXRvclBhZ2VzOworCWludDMyCQlkYXRhUGFnZXM7CisJaW50MzIJCW92ZXJmbG93 UGFnZXM7CisJaW50MzIJCXNwYWNlQXZhaWxhYmxlOworCWludDMyCQlyZWNvcmRzOwogfTsKIAog c3RydWN0IEluZGV4QW5hbHlzaXMKQEAgLTE2OCw3ICsxNjgsNyBAQCBwdWJsaWM6CiAJQmRiKglm YWtlUGFnZSAoaW50MzIgcGFnZU51bWJlciwgUGFnZVR5cGUgcGFnZVR5cGUsIFRyYW5zSWQgdHJh bnNJZCk7CiAJQmRiKgl0cmlhbEZldGNoKGludDMyIHBhZ2VOdW1iZXIsIFBhZ2VUeXBlIHBhZ2VU eXBlLCBMb2NrVHlwZSBsb2NrVHlwZSk7CiAJdm9pZAlpbml0KGludCBwYWdlU3osIGludCBjYWNo ZVNpemUpOwotCUNhY2hlKgljcmVhdGUgKGNvbnN0IGNoYXIgKmZpbGVOYW1lLCBpbnQgcGFnZVNp emUsIGludDY0IGNhY2hlU2l6ZSwgRmlsZVR5cGUgZmlsZVR5cGUsIFRyYW5zSWQgdHJhbnNJZCwg Y29uc3QgY2hhciAqbG9nUm9vdCwgdWludDY0IGluaXRpYWxBbGxvY2F0aW9uKTsKKwlDYWNoZSoJ Y3JlYXRlIChjb25zdCBjaGFyICpmaWxlTmFtZSwgaW50IHBhZ2VTaXplLCBpbnQ2NCBjYWNoZVNp emUsIEZpbGVUeXBlIGZpbGVUeXBlLCBUcmFuc0lkIHRyYW5zSWQsIGNvbnN0IGNoYXIgKmxvZ1Jv b3QpOwogCXZvaWQJdmFsaWRhdGVDYWNoZSh2b2lkKTsKIAl2b2lkCWxvZ1VwZGF0ZWRSZWNvcmRz KFRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgUmVjb3JkVmVyc2lvbiogcmVjb3JkcywgYm9vbCBj aGlsbCA9IGZhbHNlKTsKIAl2b2lkCWxvZ0luZGV4VXBkYXRlcyhEZWZlcnJlZEluZGV4KiBkZWZl cnJlZEluZGV4KTsKQEAgLTIxNCw4ICsyMTQsOCBAQCBwdWJsaWM6CiAJSGRyU3RhdGUJcHJpb3JT dGF0ZTsKIAlJbnZlcnNpb24JKmludmVyc2lvbjsKIAlEYXRhYmFzZUNvcHkgKnNoYWRvd3M7Ci0J U3luY09iamVjdAljbG9uZVN5bmNPYmplY3Q7Ci0JU3luY09iamVjdAlzZXF1ZW5jZXNTeW5jT2Jq ZWN0OworCVN5bmNPYmplY3QJc3luY0Nsb25lOworCVN5bmNPYmplY3QJc3luY1NlcXVlbmNlczsK IAlTZXJpYWxMb2cJKnNlcmlhbExvZzsKIAlKU3RyaW5nCQlsb2dSb290OwogCVNwYXJzZUFycmF5 PGludDMyLCAxMDA+CXNlcXVlbmNlUGFnZXM7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9m YWxjb24vRGVmZXJyZWRJbmRleC5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL0RlZmVycmVkSW5k ZXguY3BwCTIwMDgtMDQtMTIgMDI6MjI6NTAgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vRGVm ZXJyZWRJbmRleC5jcHAJMjAwOC0wNy0yNSAxODowNzoyNCArMDAwMApAQCAtNjAsNiArNjAsOCBA QCBEZWZlcnJlZEluZGV4OjpEZWZlcnJlZEluZGV4KEluZGV4ICppZHgsCiAJaGF2ZU1pblZhbHVl ID0gdHJ1ZTsKIAloYXZlTWF4VmFsdWUgPSB0cnVlOwogCXdpbmRvdyA9IE5VTEw7CisJc3luY09i amVjdC5zZXROYW1lKCJEZWZlcnJlZEluZGV4OjpzeW5jT2JqZWN0Iik7CisJdXNlQ291bnQgPSAx OyAgIC8vIHRoZSB0cmFuc2FjdGlvbiB0aGF0IGNyZWF0ZWQgaXQKIH0KIAogRGVmZXJyZWRJbmRl eDo6fkRlZmVycmVkSW5kZXgodm9pZCkKQEAgLTM1NywxMSArMzU5LDExIEBAIGJvb2wgRGVmZXJy ZWRJbmRleDo6ZGVsZXRlTm9kZShJbmRleEtleSoKIAlib29sIGRvaW5nRElIYXNoID0gKCAgIChp bmRleC0+ZGF0YWJhc2UtPmNvbmZpZ3VyYXRpb24tPnVzZURlZmVycmVkSW5kZXhIYXNoKQogCSAg ICAgICAgICAgICAgICAgICAgJiYgKElOREVYX0lTX1VOSVFVRShpbmRleC0+dHlwZSkpKTsKIAot CVN5bmMgc3luY0hhc2goJmluZGV4LT5zeW5jRElIYXNoLCAiRGVmZXJyZWRJbmRleDo6ZGVsZXRl Tm9kZSIpOworCVN5bmMgc3luY0hhc2goJmluZGV4LT5zeW5jRElIYXNoLCAiRGVmZXJyZWRJbmRl eDo6ZGVsZXRlTm9kZSgxKSIpOwogCWlmIChkb2luZ0RJSGFzaCkKIAkJc3luY0hhc2gubG9jayhF eGNsdXNpdmUpOwogCi0JU3luYyBzeW5jKCZzeW5jT2JqZWN0LCAiRGVmZXJyZWRJbmRleDo6ZGVs ZXRlTm9kZSIpOworCVN5bmMgc3luYygmc3luY09iamVjdCwgIkRlZmVycmVkSW5kZXg6OmRlbGV0 ZU5vZGUoMikiKTsKIAlzeW5jLmxvY2soRXhjbHVzaXZlKTsKIAogCURJQnVja2V0ICpidWNrZXRz W0RFRkVSUkVEX0lOREVYX01BWF9MRVZFTFNdOwpAQCAtODIzLDcgKzgyNSw3IEBAIHZvaWQgRGVm ZXJyZWRJbmRleDo6ZGV0YWNoSW5kZXgodm9pZCkKIAogdm9pZCBEZWZlcnJlZEluZGV4OjpkZXRh Y2hUcmFuc2FjdGlvbih2b2lkKQogewotCVN5bmMgc3luYygmc3luY09iamVjdCwgIkRlZmVycmVk SW5kZXg6OmRldGFjaEluZGV4Iik7CisJU3luYyBzeW5jKCZzeW5jT2JqZWN0LCAiRGVmZXJyZWRJ bmRleDo6ZGV0YWNoVHJhbnNhY3Rpb24iKTsKIAlzeW5jLmxvY2soRXhjbHVzaXZlKTsKIAl0cmFu c2FjdGlvbiA9IE5VTEw7CiAKQEAgLTgzOCw3ICs4NDAsNyBAQCB2b2lkIERlZmVycmVkSW5kZXg6 OmRldGFjaFRyYW5zYWN0aW9uKHZvCiAJZWxzZQogCQlzeW5jLnVubG9jaygpOwogCi0JZGVsZXRl IHRoaXM7CisJcmVsZWFzZVJlZigpOwogfQogCiB2b2lkIERlZmVycmVkSW5kZXg6OmNoaWxsKERi YiAqZGJiKQpAQCAtODc0LDMgKzg3NiwxNiBAQCBESU5vZGUqIERlZmVycmVkSW5kZXg6OmZpbmRN aW5WYWx1ZSh2b2lkCiB7CiAJcmV0dXJuIE5VTEw7CiB9CisKK3ZvaWQgRGVmZXJyZWRJbmRleDo6 YWRkUmVmKCkKK3sKKwlJTlRFUkxPQ0tFRF9JTkNSRU1FTlQgKHVzZUNvdW50KTsKK30KKwordm9p ZCBEZWZlcnJlZEluZGV4OjpyZWxlYXNlUmVmKCkKK3sKKwlJTlRFUkxPQ0tFRF9ERUNSRU1FTlQo dXNlQ291bnQpOworCisJaWYgKHVzZUNvdW50ID09IDApCisJCWRlbGV0ZSB0aGlzOworfQpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNv bi9EZWZlcnJlZEluZGV4LmgnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL0RlZmVycmVkSW5kZXguaAky MDA4LTA2LTA4IDA2OjUyOjUxICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL0RlZmVycmVkSW5k ZXguaAkyMDA4LTA3LTI1IDE4OjA3OjI0ICswMDAwCkBAIC0xMDIsNiArMTAyLDcgQEAgcHVibGlj OgogCURJTm9kZSoJCQlmaW5kTWluVmFsdWUodm9pZCk7CiAKIAlTeW5jT2JqZWN0CQlzeW5jT2Jq ZWN0OwkKKwl2b2xhdGlsZSBJTlRFUkxPQ0tfVFlQRSB1c2VDb3VudDsKIAlEZWZlcnJlZEluZGV4 CSpuZXh0OwogCURlZmVycmVkSW5kZXgJKnByaW9yOwogCURlZmVycmVkSW5kZXgJKm5leHRJblRy YW5zYWN0aW9uOwpAQCAtMTIzLDYgKzEyNCw4IEBAIHB1YmxpYzoKIAl1aW50NjQJCQl2aXJ0dWFs T2Zmc2V0OwkJLy8gdmlydHVhbCBvZmZzZXQgaW50byB0aGUgc2VyaWFsIGxvZyB3aGVyZSB0aGlz IERJIHdhcyBmbHVzaGVkLgogCXVpbnQ2NAkJCXZpcnR1YWxPZmZzZXRBdEVuZDsKIAlTZXJpYWxM b2dXaW5kb3cJKndpbmRvdzsKKwl2b2lkCQkJYWRkUmVmKCk7CisJdm9pZAkJCXJlbGVhc2VSZWYo KTsKIH07CiAKICNlbmRpZgoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL0dvcGhl ci5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL0dvcGhlci5jcHAJMjAwOC0wNy0wOSAxOToyMzoy MyArMDAwMAorKysgYi9zdG9yYWdlL2ZhbGNvbi9Hb3BoZXIuY3BwCTIwMDgtMDctMTUgMTg6NTc6 MjcgKzAwMDAKQEAgLTM5LDExICszOSwxMSBAQCB2b2lkIEdvcGhlcjo6Z29waGVyVGhyZWFkKHZv aWQqIGFyZykKIAogdm9pZCBHb3BoZXI6OmdvcGhlclRocmVhZCh2b2lkKQogewotCVN5bmMgZGVh ZE1hbigmbG9nLT5zeW5jR29waGVyLCAiR29waGVyOjpnb3BoZXJUaHJlYWQiKTsKKwlTeW5jIGRl YWRNYW4oJmxvZy0+c3luY0dvcGhlciwgIkdvcGhlcjo6Z29waGVyVGhyZWFkKDEpIik7CiAJZGVh ZE1hbi5sb2NrKFNoYXJlZCk7CiAJd29ya2VyVGhyZWFkID0gVGhyZWFkOjpnZXRUaHJlYWQoIkdv cGhlcjo6Z29waGVyVGhyZWFkIik7CiAJYWN0aXZlID0gdHJ1ZTsKLQlTeW5jIHN5bmNQZW5kaW5n ICgmbG9nLT5wZW5kaW5nLnN5bmNPYmplY3QsICJHb3BoZXI6OmdvcGhlclRocmVhZCBwZW5kaW5n Iik7CisJU3luYyBzeW5jUGVuZGluZyAoJmxvZy0+cGVuZGluZy5zeW5jT2JqZWN0LCAiR29waGVy Ojpnb3BoZXJUaHJlYWQoMikiKTsKIAlzeW5jUGVuZGluZy5sb2NrKEV4Y2x1c2l2ZSk7CiAJCiAJ d2hpbGUgKCF3b3JrZXJUaHJlYWQtPnNodXRkb3duSW5Qcm9ncmVzcyAmJiAhbG9nLT5maW5pc2hp bmcpCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vSU8uY3BwJwotLS0gYS9zdG9y YWdlL2ZhbGNvbi9JTy5jcHAJMjAwOC0wNy0wOCAyMTozNjozNCArMDAwMAorKysgYi9zdG9yYWdl L2ZhbGNvbi9JTy5jcHAJMjAwOC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtMTMzLDYgKzEzMyw3 IEBAIElPOjpJTygpCiAJZm9yY2VGc3luYyA9IHRydWU7CiAJZmF0YWxFcnJvciA9IGZhbHNlOwog CW1lbXNldCh3cml0ZVR5cGVzLCAwLCBzaXplb2Yod3JpdGVUeXBlcykpOworCXN5bmNPYmplY3Qu c2V0TmFtZSgiSU86OnN5bmNPYmplY3QiKTsKIH0KIAogSU86On5JTygpCkBAIC0xODQsNyArMTg1 LDcgQEAgYm9vbCBJTzo6b3BlbkZpbGUoY29uc3QgY2hhciAqIG5hbWUsIGJvbwogCXJldHVybiBm aWxlSWQgIT0gLTE7CiB9CiAKLWJvb2wgSU86OmNyZWF0ZUZpbGUoY29uc3QgY2hhciAqbmFtZSwg dWludDY0IGluaXRpYWxBbGxvY2F0aW9uKQorYm9vbCBJTzo6Y3JlYXRlRmlsZShjb25zdCBjaGFy ICpuYW1lKQogewogCUxvZzo6ZGVidWcoIklPOjpjcmVhdGVGaWxlOiBjcmVhdGluZyBmaWxlIFwi JXNcIlxuIiwgbmFtZSk7CiAKQEAgLTIxOCwyNiArMjE5LDYgQEAgYm9vbCBJTzo6Y3JlYXRlRmls ZShjb25zdCBjaGFyICpuYW1lLCB1aQogI2VuZGlmCiAjZW5kaWYKIAotCWlmIChpbml0aWFsQWxs b2NhdGlvbikKLQkJewotCQlVQ0hBUiAqcmF3ID0gbmV3IFVDSEFSWzgxOTIgKiAyNTddOwotCQlV Q0hBUiAqYWxpZ25lZCA9IChVQ0hBUiopICgoKFVJUFRSKSByYXcgKyA4MTkxKSAvIDgxOTIgKiA4 MTkyKTsKLQkJdWludCBzaXplID0gODE5MiAqIDI1NjsKLQkJbWVtc2V0KGFsaWduZWQsIDAsIHNp emUpOwotCQl1aW50NjQgb2Zmc2V0ID0gMDsKLQkJCi0JCWZvciAodWludDY0IHJlbWFpbmluZyA9 IGluaXRpYWxBbGxvY2F0aW9uOyByZW1haW5pbmc7KQotCQkJewotCQkJdWludCBuID0gKGludCkg TUlOKHJlbWFpbmluZywgc2l6ZSk7Ci0JCQl3cml0ZShvZmZzZXQsIG4sIGFsaWduZWQpOwotCQkJ b2Zmc2V0ICs9IG47Ci0JCQlyZW1haW5pbmcgLT0gbjsKLQkJCX0KLQkJCi0JCWRlbGV0ZSBbXSBy YXc7Ci0JCXN5bmMoKTsKLQkJfQotCiAJcmV0dXJuIGZpbGVJZCAhPSAtMTsKIH0KIAoKPT09IG1v ZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL0lPeC5oJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9J T3guaAkyMDA4LTA3LTA3IDE0OjAwOjQ1ICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL0lPeC5o CTIwMDgtMDctMTggMDg6MTU6NTQgKzAwMDAKQEAgLTU0LDggKzU0LDggQEAgcHVibGljOgogCXZv aWQJd3JpdGVIZWFkZXIgKEhkciAqaGVhZGVyKTsKIAlpbnQJCXJlYWQoaW50IGxlbmd0aCwgVUNI QVIgKmJ1ZmZlcik7CiAJdm9pZAl3cml0ZSh1aW50MzIgbGVuZ3RoLCBjb25zdCBVQ0hBUiAqZGF0 YSk7Ci0JYm9vbAlkb2VzRmlsZUV4aXN0KGNvbnN0IGNoYXIgKmZpbGVOYW1lKTsKLQlpbnQJCWZp bGVTdGF0KGNvbnN0IGNoYXIgKmZpbGVOYW1lLCBzdHJ1Y3Qgc3RhdCAqc3RhdHMgPSBOVUxMLCBp bnQgKmVycm51bSA9IE5VTEwpOworCXN0YXRpYyBib29sCWRvZXNGaWxlRXhpc3QoY29uc3QgY2hh ciAqZmlsZU5hbWUpOworCXN0YXRpYyBpbnQJZmlsZVN0YXQoY29uc3QgY2hhciAqZmlsZU5hbWUs IHN0cnVjdCBzdGF0ICpzdGF0cyA9IE5VTEwsIGludCAqZXJybnVtID0gTlVMTCk7CiAJdm9pZAlk ZWNsYXJlRmF0YWxFcnJvcigpOwogCXZvaWQJc2VlayAoaW50IHBhZ2VOdW1iZXIpOwogCXZvaWQJ Y2xvc2VGaWxlKCk7CkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKIAl2b2lkCXdyaXRlUGFnZSAo QmRiICpidWZmZXIsIGludCB0eXBlKTsKIAl2b2lkCXdyaXRlUGFnZXMoaW50MzIgcGFnZU51bWJl ciwgaW50IGxlbmd0aCwgY29uc3QgVUNIQVIqIGRhdGEsIGludCB0eXBlKTsKIAl2b2lkCXJlYWRQ YWdlIChCZGIgKnBhZ2UpOwotCWJvb2wJY3JlYXRlRmlsZSAoY29uc3QgY2hhciAqbmFtZSwgdWlu dDY0IGluaXRpYWxBbGxvY2F0aW9uKTsKKwlib29sCWNyZWF0ZUZpbGUgKGNvbnN0IGNoYXIgKm5h bWUpOwogCWJvb2wJb3BlbkZpbGUgKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgcmVhZE9ubHkpOwog CXZvaWQJbG9uZ1NlZWsoaW50NjQgb2Zmc2V0KTsKIAl2b2lkCXJlYWQoaW50NjQgb2Zmc2V0LCBp bnQgbGVuZ3RoLCBVQ0hBUiogYnVmZmVyKTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2Zh bGNvbi9JbmRleC5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL0luZGV4LmNwcAkyMDA4LTA1LTA3 IDIyOjM3OjE4ICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL0luZGV4LmNwcAkyMDA4LTA3LTI1 IDE4OjA3OjI0ICswMDAwCkBAIC0xMDcsNiArMTA3LDEwIEBAIHZvaWQgSW5kZXg6OmluaXQoVGFi bGUgKnRibCwgY29uc3QgY2hhciAKIAlESUhhc2hUYWJsZSA9IE5VTEw7CiAJRElIYXNoVGFibGVD b3VudHMgPSAgMDsKIAlESUhhc2hUYWJsZVNsb3RzVXNlZCA9ICAwOworCisJc3luY0RJSGFzaC5z ZXROYW1lKCJJbmRleDo6c3luY0RJSGFzaCIpOworCXN5bmNVbmlxdWUuc2V0TmFtZSgiSW5kZXg6 OnN5bmNVbmlxdWUiKTsKKwlkZWZlcnJlZEluZGV4ZXMuc3luY09iamVjdC5zZXROYW1lKCJJbmRl eDo6ZGVmZXJyZWRJbmRleGVzLnN5bmNPYmplY3QiKTsKIH0KIAogSW5kZXg6On5JbmRleCgpCkBA IC0yMjcsNyArMjMxLDcgQEAgRGVmZXJyZWRJbmRleCAqSW5kZXg6OmdldERlZmVycmVkSW5kZXgo VAogCiAJaWYgKGRlZmVycmVkSW5kZXhlcy5jb3VudCA8IHRyYW5zYWN0aW9uLT5kZWZlcnJlZElu ZGV4Q291bnQpCiAJCXsKLQkJU3luYyBzeW5jKCZkZWZlcnJlZEluZGV4ZXMuc3luY09iamVjdCwg IkluZGV4OjppbnNlcnQiKTsKKwkJU3luYyBzeW5jKCZkZWZlcnJlZEluZGV4ZXMuc3luY09iamVj dCwgIkluZGV4OjpnZXREZWZlcnJlZEluZGV4KDEpIik7CiAJCXN5bmMubG9jayhTaGFyZWQpOwog CQlmb3IgKGRlZmVycmVkSW5kZXggPSBkZWZlcnJlZEluZGV4ZXMuZmlyc3Q7IAogCQkJIGRlZmVy cmVkSW5kZXg7IApAQCAtMjcwLDcgKzI3NCw3IEBAIERlZmVycmVkSW5kZXggKkluZGV4OjpnZXRE ZWZlcnJlZEluZGV4KFQKIAogCS8vIE1ha2UgYSBuZXcgb25lIGFuZCBhdHRhY2ggdG8gSW5kZXgg YW5kIFRyYW5zYWN0aW9uLgogCi0JU3luYyBzeW5jKCZkZWZlcnJlZEluZGV4ZXMuc3luY09iamVj dCwgIkluZGV4OjppbnNlcnQiKTsKKwlTeW5jIHN5bmMoJmRlZmVycmVkSW5kZXhlcy5zeW5jT2Jq ZWN0LCAiSW5kZXg6OmdldERlZmVycmVkSW5kZXgoMikiKTsKIAlkZWZlcnJlZEluZGV4ID0gbmV3 IERlZmVycmVkSW5kZXgodGhpcywgdHJhbnNhY3Rpb24pOwogCXN5bmMubG9jayhFeGNsdXNpdmUp OwogCWRlZmVycmVkSW5kZXhlcy5hcHBlbmQoZGVmZXJyZWRJbmRleCk7CkBAIC01MTAsMTIgKzUx NCwxNCBAQCBJbmRleFdhbGtlciogSW5kZXg6OnBvc2l0aW9uSW5kZXgoSW5kZXhLCiAJCWZvciAo RGVmZXJyZWRJbmRleCAqZGVmZXJyZWRJbmRleCA9IGRlZmVycmVkSW5kZXhlcy5maXJzdDsgZGVm ZXJyZWRJbmRleDsgZGVmZXJyZWRJbmRleCA9IGRlZmVycmVkSW5kZXgtPm5leHQpCiAJCQlpZiAo dHJhbnNhY3Rpb24tPnZpc2libGUoZGVmZXJyZWRJbmRleC0+dHJhbnNhY3Rpb24sIGRlZmVycmVk SW5kZXgtPnRyYW5zYWN0aW9uSWQsIEZPUl9XUklUSU5HKSkKIAkJCQl7CisJCQkJZGVmZXJyZWRJ bmRleC0+YWRkUmVmKCk7CisKIAkJCQlpZiAoIWluZGV4V2Fsa2VyKQogCQkJCQl7CiAJCQkJCWlu ZGV4V2Fsa2VyID0gbmV3IEluZGV4V2Fsa2VyKHRoaXMsIHRyYW5zYWN0aW9uLCBzZWFyY2hGbGFn cyk7CiAJCQkJCWluZGV4V2Fsa2VyLT5hZGRXYWxrZXIod2Fsa0luZGV4KTsKIAkJCQkJfQotCQkJ CQorCiAJCQkJV2Fsa0RlZmVycmVkICp3YWxrRGVmZXJyZWQgPSBuZXcgV2Fsa0RlZmVycmVkKGRl ZmVycmVkSW5kZXgsIHRyYW5zYWN0aW9uLCBzZWFyY2hGbGFncywgJndhbGtJbmRleC0+bG93ZXJC b3VuZCwgJndhbGtJbmRleC0+dXBwZXJCb3VuZCk7CiAJCQkJaW5kZXhXYWxrZXItPmFkZFdhbGtl cih3YWxrRGVmZXJyZWQpOwogCQkJCX0KQEAgLTgzNSw3ICs4NDEsNyBAQCBVQ0hBUiBJbmRleDo6 Z2V0UGFkQnl0ZSh2b2lkKQogCiB2b2lkIEluZGV4OjpkZXRhY2hEZWZlcnJlZEluZGV4KERlZmVy cmVkSW5kZXggKmRlZmVycmVkSW5kZXgpCiB7Ci0JU3luYyBzeW5jKCZkZWZlcnJlZEluZGV4ZXMu c3luY09iamVjdCwgIkluZGV4OjpkZXRhY2hEZWZlcnJlZEluZGV4Iik7CisJU3luYyBzeW5jKCZk ZWZlcnJlZEluZGV4ZXMuc3luY09iamVjdCwgIkluZGV4OjpkZXRhY2hEZWZlcnJlZEluZGV4KDEp Iik7CiAJc3luYy5sb2NrKEV4Y2x1c2l2ZSk7CiAJZGVmZXJyZWRJbmRleGVzLnJlbW92ZShkZWZl cnJlZEluZGV4KTsKIAlzeW5jLnVubG9jaygpOwpAQCAtODQzLDkgKzg0OSw5IEBAIHZvaWQgSW5k ZXg6OmRldGFjaERlZmVycmVkSW5kZXgoRGVmZXJyZWQKIAlpZiAoICAgKGRhdGFiYXNlLT5jb25m aWd1cmF0aW9uLT51c2VEZWZlcnJlZEluZGV4SGFzaCkKIAkJJiYgKElOREVYX0lTX1VOSVFVRSh0 eXBlKSkpCiAJCXsKLQkJU3luYyBzeW5jSGFzaCgmc3luY0RJSGFzaCwgIkluZGV4OjpkZXRhY2hE ZWZlcnJlZEluZGV4Iik7CisJCVN5bmMgc3luY0hhc2goJnN5bmNESUhhc2gsICJJbmRleDo6ZGV0 YWNoRGVmZXJyZWRJbmRleCgyKSIpOwogCQlzeW5jSGFzaC5sb2NrKEV4Y2x1c2l2ZSk7Ci0JCVN5 bmMgc3luY0RJKCZkZWZlcnJlZEluZGV4LT5zeW5jT2JqZWN0LCAiSW5kZXg6OmRldGFjaERlZmVy cmVkSW5kZXgiKTsKKwkJU3luYyBzeW5jREkoJmRlZmVycmVkSW5kZXgtPnN5bmNPYmplY3QsICJJ bmRleDo6ZGV0YWNoRGVmZXJyZWRJbmRleCgzKSIpOwogCQlzeW5jREkubG9jayhFeGNsdXNpdmUp OwogCiAJCURlZmVycmVkSW5kZXhXYWxrZXIgd2Fsa2VyKGRlZmVycmVkSW5kZXgsIE5VTEwpOwoK PT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL0luZGV4V2Fsa2VyLmNwcCcKLS0tIGEv c3RvcmFnZS9mYWxjb24vSW5kZXhXYWxrZXIuY3BwCTIwMDgtMDctMTQgMTY6NTM6NTEgKzAwMDAK KysrIGIvc3RvcmFnZS9mYWxjb24vSW5kZXhXYWxrZXIuY3BwCTIwMDgtMDctMjkgMTE6MTI6MzQg KzAwMDAKQEAgLTM5LDYgKzM5LDggQEAgSW5kZXhXYWxrZXI6OkluZGV4V2Fsa2VyKEluZGV4ICpp ZHgsIFRyYQogCWJhbGFuY2UgPSAwOwogCWhpZ2hlciA9IE5VTEw7CiAJbG93ZXIgPSBOVUxMOwor CWxhc3RSZWNvcmROdW1iZXIgPSAwOworCWZpcnN0UmVjb3JkID0gdHJ1ZTsKIH0KIAogSW5kZXhX YWxrZXI6On5JbmRleFdhbGtlcih2b2lkKQpAQCAtMTI0LDYgKzEyNiwxOCBAQCBSZWNvcmQqIElu ZGV4V2Fsa2VyOjpnZXROZXh0KGJvb2wgbG9ja0ZvCiAKIFJlY29yZCogSW5kZXhXYWxrZXI6Omdl dFZhbGlkYXRlZFJlY29yZChpbnQzMiByZWNvcmRJZCwgYm9vbCBsb2NrRm9yVXBkYXRlKQogewor CS8vIElmIHRoaXMgaXMgdGhlIHNhbWUgcmVjb3JkSWQgYXMgdGhlIGxhc3QgcmVjb3JkIHdlIHJl dHVybmVkLAorCS8vIHRoZW4gZWl0aGVyIHdlJ3ZlIGdvdCBhIGR1cGxpY2F0ZSBjb3B5IGJlY2F1 c2UgYSBkZWZlcnJlZAorCS8vIGluZGV4IGhhcyBiZWVuIG1lcmdlZCB3aXRoIHRoZSBtYWluIGlu ZGV4IGFuZCB3ZSByZWFkIGJvdGgKKwkvLyBvciB3ZSdyZSBsb29raW5nIGF0IGEgdmVyc2lvbiB3 ZSBkb24ndCBjYXJlIGFib3V0LgorCisJaWYgKGZpcnN0UmVjb3JkKQorCQlmaXJzdFJlY29yZCA9 IGZhbHNlOworCWVsc2UgaWYgKHJlY29yZElkID09IGxhc3RSZWNvcmROdW1iZXIpCisJCXJldHVy biBOVUxMOworCisKKwogCS8vIEZldGNoIHJlY29yZC4gIElmIGl0IGRvZXNuJ3QgZXhpc3QsIHRo YXQncyBvay4KIAkKIAlSZWNvcmQgKmNhbmRpZGF0ZSA9IHRhYmxlLT5mZXRjaChyZWNvcmRJZCk7 CkBAIC0xNjUsNyArMTc5LDExIEBAIFJlY29yZCogSW5kZXhXYWxrZXI6OmdldFZhbGlkYXRlZFJl Y29yZCgKIAkJCiAJCXJldHVybiBOVUxMOwogCQl9Ci0JCisKKwkvLyByZW1lbWJlciB0aGlzIHJl Y29yZAorCisJbGFzdFJlY29yZE51bWJlciA9IHJlY29yZElkOworCiAJcmV0dXJuIHJlY29yZDsK IH0KIApAQCAtMzM0LDcgKzM1Miw3IEBAIHZvaWQgSW5kZXhXYWxrZXI6OnJvdGF0ZUxlZnQodm9p ZCkKIAogCXJvb3QtPmxvd2VyID0gdGhpczsKIAliYWxhbmNlIC09ICgxICsgTUFYKHJvb3QtPmJh bGFuY2UsIDApKTsKLQl2YWxpZGF0ZSAoKTsKKy8vCXZhbGlkYXRlICgpOwogCXJvb3QtPmJhbGFu Y2UgLT0gKDEgLSBNSU4oYmFsYW5jZSwgMCkpOwogCVJFU0VUX1BBUkVOVChyb290KTsKIAlyb290 LT5wYXJlbnQgPSBwYXJlbnQ7CkBAIC0zNjMsNyArMzgxLDcgQEAgdm9pZCBJbmRleFdhbGtlcjo6 cm90YXRlUmlnaHQodm9pZCkKIAlyb290LT5oaWdoZXIgPSB0aGlzOwogCWJhbGFuY2UgKz0gKDEg LSBNSU4ocm9vdC0+YmFsYW5jZSwgMCkpOwogCi0JdmFsaWRhdGUgKCk7CisvLwl2YWxpZGF0ZSAo KTsKIAlyb290LT5iYWxhbmNlICs9ICgxICsgTUFYKGJhbGFuY2UsIDApKTsKIAlSRVNFVF9QQVJF TlQocm9vdCk7CiAJcm9vdC0+cGFyZW50ID0gcGFyZW50OwpAQCAtNDU0LDcgKzQ3Miw3IEBAIHZv aWQgSW5kZXhXYWxrZXI6OnJlbW92ZSh2b2lkKQogCQkJewogCQkJcGFyZW50LT5oaWdoZXIgPSBu ZXh0OwogCQkJcGFyZW50LT5yZWJhbGFuY2VVcHdhcmQoLTEpOwotICAgICAgICAgICAgfQkKKwkJ CX0JCiAJCQogCQlyZXR1cm47CQogCQl9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxj b24vSW5kZXhXYWxrZXIuaCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vSW5kZXhXYWxrZXIuaAkyMDA4 LTA3LTEyIDIxOjAxOjA0ICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL0luZGV4V2Fsa2VyLmgJ MjAwOC0wNy0yOCAxNDozMToyMCArMDAwMApAQCAtNTcsOSArNTcsMTEgQEAgcHVibGljOgogCVVD SEFSCQkJKmtleTsKIAl1aW50CQkJa2V5TGVuZ3RoOwogCWludDMyCQkJcmVjb3JkTnVtYmVyOwor CWludDMyCQkJbGFzdFJlY29yZE51bWJlcjsKIAlpbnQJCQkJYmFsYW5jZTsKIAlpbnQJCQkJc2Vh cmNoRmxhZ3M7CiAJYm9vbAkJCWZpcnN0OworCWJvb2wJCQlmaXJzdFJlY29yZDsKIH07CiAKICNl bmRpZgoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL0ludmVyc2lvbi5jcHAnCi0t LSBhL3N0b3JhZ2UvZmFsY29uL0ludmVyc2lvbi5jcHAJMjAwOC0wMi0yNiAyMDoxODozMyArMDAw MAorKysgYi9zdG9yYWdlL2ZhbGNvbi9JbnZlcnNpb24uY3BwCTIwMDgtMDctMjQgMDg6NDU6MDMg KzAwMDAKQEAgLTYxLDYgKzYxLDcgQEAgSW52ZXJzaW9uOjpJbnZlcnNpb24oRGJiICpkYikKIAly dW5zID0gMDsKIAlpbnNlcnRpbmcgPSB0cnVlOwogCXN0YXRlID0gMDsKKwlzeW5jT2JqZWN0LnNl dE5hbWUoIkludmVyc2lvbjo6c3luY09iamVjdCIpOwogfQogCiBJbnZlcnNpb246On5JbnZlcnNp b24oKQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL0xpY2Vuc2VNYW5hZ2VyLmNw cCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vTGljZW5zZU1hbmFnZXIuY3BwCTIwMDgtMDMtMDMgMTg6 NDA6MTcgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vTGljZW5zZU1hbmFnZXIuY3BwCTIwMDgt MDctMTUgMTg6NTc6MjcgKzAwMDAKQEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lkIExpY2Vuc2VNYW5h Z2VyOjppbml0aWFsaXplKCkKIExpY2Vuc2VQcm9kdWN0KiBMaWNlbnNlTWFuYWdlcjo6Z2V0UHJv ZHVjdChjb25zdCBjaGFyICpuYW1lKQogewogCWludCBzbG90ID0gSlN0cmluZzo6aGFzaCAobmFt ZSwgSEFTSF9TSVpFKTsKLSAgICBMaWNlbnNlUHJvZHVjdCAqcHJvZHVjdDsKKwlMaWNlbnNlUHJv ZHVjdCAqcHJvZHVjdDsKIAogCWZvciAocHJvZHVjdCA9IGhhc2hUYWJsZSBbc2xvdF07IHByb2R1 Y3Q7IHByb2R1Y3QtPmNvbGxpc2lvbikKIAkJaWYgKHByb2R1Y3QtPnByb2R1Y3QuZXF1YWxzTm9D YXNlIChuYW1lKSkKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9NYWtlZmlsZS5h bScKLS0tIGEvc3RvcmFnZS9mYWxjb24vTWFrZWZpbGUuYW0JMjAwOC0wNy0xOSAwMzowMzozOSAr MDAwMAorKysgYi9zdG9yYWdlL2ZhbGNvbi9NYWtlZmlsZS5hbQkyMDA4LTA4LTA3IDE0OjE5OjU0 ICswMDAwCkBAIC0yMiw5ICsyMiw4IEBAIERFRlM9IEBERUZTQCBcCiAgICAgICAtRF9SRUVOVFJB TlQgLURfUFRIUkVBRFMgLURGQUxDT05EQiAtRFNUT1JBR0VfRU5HSU5FIC1ETkFNRVNQQUNFPU5m cwogCiBJTkNMVURFUz0gLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgLUkkKHRvcF9idWlsZGRpcikv aW5jbHVkZSBcCi0JICAtSSQodG9wX3NyY2RpcikvcmVnZXggLUkkKHRvcF9zcmNkaXIpL3NxbCBc Ci0JICAtSSQoc3JjZGlyKSAtSSQoc3JjZGlyKS9UcmFuc2Zvcm1MaWIgQFpMSUJfSU5DTFVERVNA IFwKLQkgIEBGQUxDT05fU1BBUkNfQVNTRU1CTFlACisJICAtSSQodG9wX3NyY2RpcikvcmVnZXgg LUkkKHRvcF9zcmNkaXIpL3NxbCAtSSQoc3JjZGlyKSBcCisJICAtSSQoc3JjZGlyKS9UcmFuc2Zv cm1MaWIgQFpMSUJfSU5DTFVERVNAIEBGQUxDT05fU1BBUkNfQVNTRU1CTFlACiAKIGZhbGNvbl9o ZWFkZXJzPSBBZ2VudC5oIEFsaWFzLmggQXBwbGljYXRpb24uaCBcCiAJCUFzY2lpQmxvYi5oIFwK QEAgLTM4MSw3ICszODAsNyBAQCBub2luc3RfSEVBREVSUz0JJChmYWxjb25faGVhZGVycykgXAog CiBFWFRSQV9MVExJQlJBUklFUz0JaGFfZmFsY29uLmxhCiBwa2dsaWJfTFRMSUJSQVJJRVM9CUBw bHVnaW5fZmFsY29uX3NoYXJlZF90YXJnZXRACi1oYV9mYWxjb25fbGFfTERGTEFHUz0JLW1vZHVs ZSAtcnBhdGggJChwa2dsaWJkaXIpIC1sc3RkYysrCitoYV9mYWxjb25fbGFfTERGTEFHUz0JLW1v ZHVsZSAtcnBhdGggJChwa2dsaWJkaXIpCiBoYV9mYWxjb25fbGFfQ1hYRkxBR1M9CSQoQU1fQ1hY RkxBR1MpIC1ETVlTUUxfRFlOQU1JQ19QTFVHSU4KIGhhX2ZhbGNvbl9sYV9DRkxBR1M9CSQoQU1f Q0ZMQUdTKSAtRE1ZU1FMX0RZTkFNSUNfUExVR0lOCiBoYV9mYWxjb25fbGFfTElCQUREPQlUcmFu c2Zvcm1MaWIvbGlidHJhbnNmb3JtLmxhCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxj b24vTWVtTWdyLmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vTWVtTWdyLmNwcAkyMDA4LTA2LTE5 IDE1OjA5OjQ1ICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL01lbU1nci5jcHAJMjAwOC0wOC0w NyAxNDoxOTo1NCArMDAwMApAQCAtNTQzLDcgKzU0Myw5IEBAIHZvaWQqIE1lbU1ncjo6YWxsb2Nh dGVEZWJ1ZyhpbnQgc2l6ZSwgY28KIAkJewogCQlsZW5ndGggPSBST1VORFVQKHNpemUsIGRlZmF1 bHRSb3VuZGluZykgKyBPRkZTRVQoTWVtQmxvY2sqLCBib2R5KSArIHNpemVvZihsb25nKTsKIAkJ bWVtb3J5ID0gKE1lbUJsb2NrKikgYWxsb2NSYXcobGVuZ3RoKTsKKwkJbWVtb3J5LT5sZW5ndGgg PSBsZW5ndGg7CiAJCW1lbW9yeS0+cG9vbCA9IE5VTEw7CisJCW1lbW9yeS0+bGVuZ3RoID0gbGVu Z3RoOwogCQl9CiAKICNpZmRlZiBNRU1fREVCVUcKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdl L2ZhbGNvbi9SZWNvcmRMZWFmLmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vUmVjb3JkTGVhZi5j cHAJMjAwOC0wNS0wOSAxOTo1ODo1MCArMDAwMAorKysgYi9zdG9yYWdlL2ZhbGNvbi9SZWNvcmRM ZWFmLmNwcAkyMDA4LTA3LTE1IDE4OjU3OjI3ICswMDAwCkBAIC0xMTgsNyArMTE4LDcgQEAgaW50 IFJlY29yZExlYWY6OnJldGlyZVJlY29yZHMgKFRhYmxlICp0YQogewogCWludCBjb3VudCA9IDA7 CiAJUmVjb3JkICoqcHRyLCAqKmVuZDsKLQlTeW5jIHN5bmMoJnN5bmNPYmplY3QsICJSZWNvcmRM ZWFmOjpyZXRpcmVSZWNvcmRzIik7CisJU3luYyBzeW5jKCZzeW5jT2JqZWN0LCAiUmVjb3JkTGVh Zjo6cmV0aXJlUmVjb3JkcygxKSIpOwogCXN5bmMubG9jayhTaGFyZWQpOwogCQogCS8vIEdldCBh IHNoYXJlZCBsb2NrIHRvIGZpbmQgYXQgbGVhc3Qgb25lIHJlY29yZCB0byBzY2F2ZW5nZQpAQCAt MTM0LDcgKzEzNCw3IEBAIGludCBSZWNvcmRMZWFmOjpyZXRpcmVSZWNvcmRzIChUYWJsZSAqdGEK IAkJCQkrK2NvdW50OwogCQkJZWxzZSBpZiAocmVjb3JkLT5pc1ZlcnNpb24oKSkKIAkJCQl7Ci0J CQkJU3luYyBzeW5jUHJpb3IocmVjb3JkLT5nZXRTeW5jUHJpb3IoKSwgIlJlY29yZExlYWY6OnJl dGlyZVJlY29yZHMxIik7CisJCQkJU3luYyBzeW5jUHJpb3IocmVjb3JkLT5nZXRTeW5jUHJpb3Io KSwgIlJlY29yZExlYWY6OnJldGlyZVJlY29yZHMoMikiKTsKIAkJCQlzeW5jUHJpb3IubG9jayhT aGFyZWQpOwogCQogCQkJCWlmIChyZWNvcmQtPnNjYXZlbmdlKHJlY29yZFNjYXZlbmdlLCBTaGFy ZWQpKQpAQCAtMTY3LDcgKzE2Nyw3IEBAIGludCBSZWNvcmRMZWFmOjpyZXRpcmVSZWNvcmRzIChU YWJsZSAqdGEKIAkJCXsKIAkJCWlmIChyZWNvcmQtPmlzVmVyc2lvbigpKQogCQkJCXsKLQkJCQlT eW5jIHN5bmNQcmlvcihyZWNvcmQtPmdldFN5bmNQcmlvcigpLCAiUmVjb3JkTGVhZjo6cmV0aXJl UmVjb3JkczIiKTsKKwkJCQlTeW5jIHN5bmNQcmlvcihyZWNvcmQtPmdldFN5bmNQcmlvcigpLCAi UmVjb3JkTGVhZjo6cmV0aXJlUmVjb3JkcygzKSIpOwogCQkJCXN5bmNQcmlvci5sb2NrKEV4Y2x1 c2l2ZSk7CiAJCQkJCiAJCQkJaWYgKHJlY29yZC0+c2NhdmVuZ2UocmVjb3JkU2NhdmVuZ2UsIEV4 Y2x1c2l2ZSkpCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vUmVjb3JkVmVyc2lv bi5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL1JlY29yZFZlcnNpb24uY3BwCTIwMDgtMDQtMjcg MDM6MTM6MjMgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vUmVjb3JkVmVyc2lvbi5jcHAJMjAw OC0wNy0xNSAxODo1NzoyNyArMDAwMApAQCAtMjQ3LDcgKzI0Nyw3IEBAIHZvaWQgUmVjb3JkVmVy c2lvbjo6c2NhdmVuZ2UoVHJhbnNJZCB0YXIKIAlpZiAoIXByaW9yVmVyc2lvbikKIAkJcmV0dXJu OwogCi0JU3luYyBzeW5jUHJpb3IoZ2V0U3luY1ByaW9yKCksICJSZWNvcmRWZXJzaW9uOjpzY2F2 ZW5nZSgpLXNhdmVwb2ludCIpOworCVN5bmMgc3luY1ByaW9yKGdldFN5bmNQcmlvcigpLCAiUmVj b3JkVmVyc2lvbjo6c2NhdmVuZ2UiKTsKIAlzeW5jUHJpb3IubG9jayhTaGFyZWQpOwogCQogCVJl Y29yZCAqcmVjID0gcHJpb3JWZXJzaW9uOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFs Y29uL1JlY292ZXJ5T2JqZWN0cy5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL1JlY292ZXJ5T2Jq ZWN0cy5jcHAJMjAwNy0wOS0yMCAxNTo0NDoyNSArMDAwMAorKysgYi9zdG9yYWdlL2ZhbGNvbi9S ZWNvdmVyeU9iamVjdHMuY3BwCTIwMDgtMDctMjQgMDg6NDU6MDMgKzAwMDAKQEAgLTIzLDYgKzIz LDggQEAKICNpbmNsdWRlICJSZWNvdmVyeU9iamVjdHMuaCIKICNpbmNsdWRlICJSZWNvdmVyeVBh Z2UuaCIKICNpbmNsdWRlICJTZXJpYWxMb2cuaCIKKyNpbmNsdWRlICJTeW5jT2JqZWN0LmgiCisj aW5jbHVkZSAiU3luYy5oIgogCiAjaWZkZWYgX0RFQlVHCiAjdW5kZWYgVEhJU19GSUxFCkBAIC0z OCw2ICs0MCw4IEBAIFJlY292ZXJ5T2JqZWN0czo6UmVjb3ZlcnlPYmplY3RzKFNlcmlhbEwKIHsK IAlzZXJpYWxMb2cgPSBsb2c7CiAJbWVtc2V0KHJlY292ZXJ5T2JqZWN0cywgMCwgc2l6ZW9mKHJl Y292ZXJ5T2JqZWN0cykpOworCWZvciAoaW50IG4gPSAwOyBuIDwgUlBHX0hBU0hfU0laRTsgbisr KQorCQlzeW5jQXJyYXlbbl0uc2V0TmFtZSgiUmVjb3ZlcnlPYmplY3RzOjpzeW5jQXJyYXkiKTsK IH0KIAogUmVjb3ZlcnlPYmplY3RzOjp+UmVjb3ZlcnlPYmplY3RzKCkKQEAgLTk1LDE3ICs5OSwy NCBAQCBib29sIFJlY292ZXJ5T2JqZWN0czo6aXNPYmplY3RBY3RpdmUoaW50CiAJcmV0dXJuIG9i amVjdC0+cGFzczFDb3VudCA9PSBvYmplY3QtPmN1cnJlbnRDb3VudDsKIH0KIAotUmVjb3ZlcnlQ YWdlKiBSZWNvdmVyeU9iamVjdHM6OmZpbmRSZWNvdmVyeU9iamVjdChpbnQgb2JqZWN0TnVtYmVy LCBpbnQgdGFibGVTcGFjZUlkKQotewotCWludCBzbG90ID0gb2JqZWN0TnVtYmVyICUgUlBHX0hB U0hfU0laRTsKIAotCWZvciAoUmVjb3ZlcnlQYWdlICpvYmplY3QgPSByZWNvdmVyeU9iamVjdHNb c2xvdF07IG9iamVjdDsgb2JqZWN0ID0gb2JqZWN0LT5jb2xsaXNpb24pCitzdGF0aWMgaW5saW5l IFJlY292ZXJ5UGFnZSAqIGZpbmRJbkhhc2hCdWNrZXQoUmVjb3ZlcnlQYWdlICpoZWFkLCBpbnQg b2JqZWN0TnVtYmVyLCBpbnQgdGFibGVTcGFjZUlkKQoreworCWZvciAoUmVjb3ZlcnlQYWdlICpv YmplY3QgPSBoZWFkIDsgb2JqZWN0OyBvYmplY3QgPSBvYmplY3QtPmNvbGxpc2lvbikKIAkJaWYg KG9iamVjdC0+b2JqZWN0TnVtYmVyID09IG9iamVjdE51bWJlciAmJiBvYmplY3QtPnRhYmxlU3Bh Y2VJZCA9PSB0YWJsZVNwYWNlSWQpCiAJCQlyZXR1cm4gb2JqZWN0OwogCiAJcmV0dXJuIE5VTEw7 CiB9CiAKK1JlY292ZXJ5UGFnZSogUmVjb3ZlcnlPYmplY3RzOjpmaW5kUmVjb3ZlcnlPYmplY3Qo aW50IG9iamVjdE51bWJlciwgaW50IHRhYmxlU3BhY2VJZCkKK3sKKwlpbnQgc2xvdCA9IG9iamVj dE51bWJlciAlIFJQR19IQVNIX1NJWkU7CisJU3luYyBzeW5jKCZzeW5jQXJyYXlbc2xvdF0sICJS ZWNvdmVyeU9iamVjdHM6OmZpbmRSZWNvdmVyeU9iamVjdCIpOworCXN5bmMubG9jayhTaGFyZWQp OworCXJldHVybiBmaW5kSW5IYXNoQnVja2V0KHJlY292ZXJ5T2JqZWN0c1tzbG90XSwgb2JqZWN0 TnVtYmVyLCB0YWJsZVNwYWNlSWQpOworfQorCiB2b2lkIFJlY292ZXJ5T2JqZWN0czo6c2V0QWN0 aXZlKGludCBvYmplY3ROdW1iZXIsIGludCB0YWJsZVNwYWNlSWQpCiB7CiAJUmVjb3ZlcnlQYWdl ICpvYmplY3QgPSBmaW5kUmVjb3ZlcnlPYmplY3Qob2JqZWN0TnVtYmVyLCB0YWJsZVNwYWNlSWQp OwpAQCAtMTI5LDEwICsxNDAsMjUgQEAgUmVjb3ZlcnlQYWdlKiBSZWNvdmVyeU9iamVjdHM6Omdl dFJlY292ZQogCWludCBzbG90ID0gb2JqZWN0TnVtYmVyICUgUlBHX0hBU0hfU0laRTsKIAlSZWNv dmVyeVBhZ2UgKm9iamVjdDsKIAotCWZvciAob2JqZWN0ID0gcmVjb3ZlcnlPYmplY3RzW3Nsb3Rd OyBvYmplY3Q7IG9iamVjdCA9IG9iamVjdC0+Y29sbGlzaW9uKQotCQlpZiAob2JqZWN0LT5vYmpl Y3ROdW1iZXIgPT0gb2JqZWN0TnVtYmVyICYmIG9iamVjdC0+dGFibGVTcGFjZUlkID09IHRhYmxl U3BhY2VJZCkKLQkJCXJldHVybiBvYmplY3Q7CisJU3luYyBzeW5jKCZzeW5jQXJyYXlbc2xvdF0s ICJSZWNvdmVyeU9iamVjdHM6OmdldFJlY292ZXJ5T2JqZWN0Iik7CisJc3luYy5sb2NrKFNoYXJl ZCk7CisJb2JqZWN0ID0gZmluZEluSGFzaEJ1Y2tldChyZWNvdmVyeU9iamVjdHNbc2xvdF0sIG9i amVjdE51bWJlciwgdGFibGVTcGFjZUlkKTsKKworCWlmKG9iamVjdCkKKwkJcmV0dXJuIG9iamVj dDsKKworCS8vIE9iamVjdCBub3QgZm91bmQsIGluc2VydCAobmVlZCBleGx1c2l2ZSBsb2NrIGZv ciB0aGlzKQorCXN5bmMudW5sb2NrKCk7CisJc3luYy5sb2NrKEV4Y2x1c2l2ZSk7CisKKwkvLyBX ZSBuZWVkIHRvIHRyYXZlcnNlIHRoZSBjb2xsaXNpb24gbGlzdCBvbmNlIGFnYWluLiBBbm90aGVy IHRocmVhZCAKKwkvLyBtYXkgaGF2ZSBpbnNlcnRlZCB0aGUgZW50cnkgd2hpbGUgY3VycmVudCB0 aHJlYWQgd2FzIHdhaXRpbmcgCisJLy8gZm9yIGV4Y2x1c2l2ZSBsb2NrLgorCW9iamVjdCA9IGZp bmRJbkhhc2hCdWNrZXQocmVjb3ZlcnlPYmplY3RzW3Nsb3RdLCBvYmplY3ROdW1iZXIsIHRhYmxl U3BhY2VJZCk7CisJaWYgKG9iamVjdCkKKwkJcmV0dXJuIG9iamVjdDsKIAorCS8vIEFkZCBvYmpl Y3QgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjb2xsaXNpb24gbGlzdAogCW9iamVjdCA9IG5ldyBSZWNv dmVyeVBhZ2Uob2JqZWN0TnVtYmVyLCB0YWJsZVNwYWNlSWQpOwogCW9iamVjdC0+Y29sbGlzaW9u ID0gcmVjb3ZlcnlPYmplY3RzW3Nsb3RdOwogCXJlY292ZXJ5T2JqZWN0c1tzbG90XSA9IG9iamVj dDsKQEAgLTE0Myw3ICsxNjksOSBAQCBSZWNvdmVyeVBhZ2UqIFJlY292ZXJ5T2JqZWN0czo6Z2V0 UmVjb3ZlCiB2b2lkIFJlY292ZXJ5T2JqZWN0czo6ZGVsZXRlT2JqZWN0KGludCBvYmplY3ROdW1i ZXIsIGludCB0YWJsZVNwYWNlSWQpCiB7CiAJaW50IHNsb3QgPSBvYmplY3ROdW1iZXIgJSBSUEdf SEFTSF9TSVpFOwotCQorCVN5bmMgc3luYygmc3luY0FycmF5W3Nsb3RdLCAiUmVjb3ZlcnlPYmpl Y3RzOjpkZWxldGVPYmplY3QiKTsKKwlzeW5jLmxvY2soRXhjbHVzaXZlKTsKKwogCWZvciAoUmVj b3ZlcnlQYWdlICoqcHRyID0gcmVjb3ZlcnlPYmplY3RzICsgc2xvdCwgKm9iamVjdDsgKG9iamVj dCA9ICpwdHIpOyBwdHIgPSAmb2JqZWN0LT5jb2xsaXNpb24pCiAJCWlmIChvYmplY3QtPm9iamVj dE51bWJlciA9PSBvYmplY3ROdW1iZXIgJiYgb2JqZWN0LT50YWJsZVNwYWNlSWQgPT0gdGFibGVT cGFjZUlkKQogCQkJewoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL1JlY292ZXJ5 T2JqZWN0cy5oJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9SZWNvdmVyeU9iamVjdHMuaAkyMDA3LTA5 LTIwIDE1OjQ0OjI1ICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL1JlY292ZXJ5T2JqZWN0cy5o CTIwMDgtMDctMTggMjE6MjQ6NTIgKzAwMDAKQEAgLTI2LDYgKzI2LDcgQEAKIAogc3RhdGljIGNv bnN0IGludCBSUEdfSEFTSF9TSVpFCQkJPSAxMDE7CiAKKyNpbmNsdWRlICJTeW5jT2JqZWN0Lmgi CiBjbGFzcyBSZWNvdmVyeVBhZ2U7CiBjbGFzcyBTZXJpYWxMb2c7CiAKQEAgLTQ4LDYgKzQ5LDcg QEAgcHVibGljOgogCiAJU2VyaWFsTG9nCQkJKnNlcmlhbExvZzsKIAlSZWNvdmVyeVBhZ2UJCSpy ZWNvdmVyeU9iamVjdHNbUlBHX0hBU0hfU0laRV07CisJU3luY09iamVjdAkJCXN5bmNBcnJheVtS UEdfSEFTSF9TSVpFXTsKIH07CiAKICNlbmRpZiAvLyAhZGVmaW5lZChBRlhfUkVDT1ZFUllPQkpF Q1RTX0hfXzAwQzdDRTVGXzNDMzNfNDM1Q185NTIxXzlDMjc0Q0FCMDU4MV9fSU5DTFVERURfKQoK PT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL1JlcG9zaXRvcnkuY3BwJwotLS0gYS9z dG9yYWdlL2ZhbGNvbi9SZXBvc2l0b3J5LmNwcAkyMDA4LTAzLTAzIDE4OjQwOjE3ICswMDAwCisr KyBiL3N0b3JhZ2UvZmFsY29uL1JlcG9zaXRvcnkuY3BwCTIwMDgtMDctMjQgMDg6NDU6MDMgKzAw MDAKQEAgLTYxLDYgKzYxLDcgQEAgUmVwb3NpdG9yeTo6UmVwb3NpdG9yeShjb25zdCBjaGFyICpy ZXBvcwogCQlzZXRSb2xsb3ZlciAocm9sbG92ZXJzKTsKIAogCW1lbXNldCAodm9sdW1lcywgMCwg c2l6ZW9mICh2b2x1bWVzKSk7CisJc3luY09iamVjdC5zZXROYW1lKCJSZXBvc2l0b3J5OjpzeW5j T2JqZWN0Iik7CiB9CiAKIFJlcG9zaXRvcnk6On5SZXBvc2l0b3J5KCkKQEAgLTMzOSw3ICszNDAs NyBAQCB2b2lkIFJlcG9zaXRvcnk6OnNldFZvbHVtZShpbnQgdm9sdW1lKQogCiB2b2lkIFJlcG9z aXRvcnk6OnNhdmUoKQogewotCVN5bmMgc3luY0RETCgmZGF0YWJhc2UtPnN5bmNTeXNEREwsICJS ZXBvc2l0b3J5Ojp1cGRhdGUiKTsKKwlTeW5jIHN5bmNEREwoJmRhdGFiYXNlLT5zeW5jU3lzRERM LCAiUmVwb3NpdG9yeTo6c2F2ZSIpOwogCXN5bmNEREwubG9jayAoU2hhcmVkKTsKIAlQcmVwYXJl ZFN0YXRlbWVudCAqc3RhdGVtZW50ID0gZGF0YWJhc2UtPnByZXBhcmVTdGF0ZW1lbnQgKAogCQki cmVwbGFjZSBpbnRvIHN5c3RlbS5yZXBvc2l0b3JpZXMgKHJlcG9zaXRvcnlOYW1lLHNjaGVtYSxz ZXF1ZW5jZU5hbWUsZmlsZW5hbWUscm9sbG92ZXJzLGN1cnJlbnRWb2x1bWUpIgoKPT09IG1vZGlm aWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL1JlcG9zaXRvcnlNYW5hZ2VyLmNwcCcKLS0tIGEvc3Rv cmFnZS9mYWxjb24vUmVwb3NpdG9yeU1hbmFnZXIuY3BwCTIwMDctMDktMjAgMTU6NDQ6MjUgKzAw MDAKKysrIGIvc3RvcmFnZS9mYWxjb24vUmVwb3NpdG9yeU1hbmFnZXIuY3BwCTIwMDgtMDctMjQg MDg6NDU6MDMgKzAwMDAKQEAgLTQ2LDYgKzQ2LDcgQEAgUmVwb3NpdG9yeU1hbmFnZXI6OlJlcG9z aXRvcnlNYW5hZ2VyKERhdAogewogCWRhdGFiYXNlID0gZGI7CiAJbWVtc2V0IChyZXBvc2l0b3Jp ZXMsIDAsIHNpemVvZiAocmVwb3NpdG9yaWVzKSk7CisJc3luY09iamVjdC5zZXROYW1lKCJSZXBv c2l0b3J5TWFuYWdlcjo6c3luY09iamVjdCIpOwogfQogCiBSZXBvc2l0b3J5TWFuYWdlcjo6flJl cG9zaXRvcnlNYW5hZ2VyKCkKQEAgLTExMyw3ICsxMTQsNyBAQCBSZXBvc2l0b3J5KiBSZXBvc2l0 b3J5TWFuYWdlcjo6Z2V0UmVwb3NpCiAKIFJlcG9zaXRvcnkqIFJlcG9zaXRvcnlNYW5hZ2VyOjpj cmVhdGVSZXBvc2l0b3J5KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnNjaGVtYSwgU2Vx dWVuY2UgKnNlcXVlbmNlLCBjb25zdCBjaGFyICpmaWxlTmFtZSwgaW50IHZvbHVtZSwgY29uc3Qg Y2hhciAqcm9sbG92ZXJTdHJpbmcpCiB7Ci0JU3luYyBzeW5jICgmc3luY09iamVjdCwgIlJlcG9z aXRvcnlNYW5hZ2VyOjpnZXRSZXBvc2l0b3J5Iik7CisJU3luYyBzeW5jICgmc3luY09iamVjdCwg IlJlcG9zaXRvcnlNYW5hZ2VyOjpjcmVhdGVSZXBvc2l0b3J5Iik7CiAJc3luYy5sb2NrIChFeGNs dXNpdmUpOwogCVJlcG9zaXRvcnkgKnJlcG9zaXRvcnkgPSBmaW5kUmVwb3NpdG9yeSAoc2NoZW1h LCBkYXRhYmFzZS0+Z2V0U3ltYm9sIChuYW1lKSk7CiAKQEAgLTEzNSw3ICsxMzYsNyBAQCBSZXBv c2l0b3J5KiBSZXBvc2l0b3J5TWFuYWdlcjo6Y3JlYXRlUmVwCiB2b2lkIFJlcG9zaXRvcnlNYW5h Z2VyOjpkZWxldGVSZXBvc2l0b3J5KFJlcG9zaXRvcnkgKnJlcG9zaXRvcnkpCiB7CiAJcmVwb3Np dG9yeS0+ZHJvcCgpOwotCVN5bmMgc3luYyAoJnN5bmNPYmplY3QsICJSZXBvc2l0b3J5TWFuYWdl cjo6Z2V0UmVwb3NpdG9yeSIpOworCVN5bmMgc3luYyAoJnN5bmNPYmplY3QsICJSZXBvc2l0b3J5 TWFuYWdlcjo6ZGVsZXRlUmVwb3NpdG9yeSIpOwogCXN5bmMubG9jayAoRXhjbHVzaXZlKTsKIAlp bnQgc2xvdCA9IEhBU0ggKHJlcG9zaXRvcnktPnNjaGVtYSwgUkVQT1NJVE9SWV9IQVNIX1NJWkUp OwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vUmVwb3NpdG9yeVZvbHVtZS5j cHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL1JlcG9zaXRvcnlWb2x1bWUuY3BwCTIwMDgtMDMtMjgg MjI6NDQ6MzYgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vUmVwb3NpdG9yeVZvbHVtZS5jcHAJ MjAwOC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtNzUsNiArNzUsNyBAQCBSZXBvc2l0b3J5Vm9s dW1lOjpSZXBvc2l0b3J5Vm9sdW1lKFJlcG9zCiAJbGFzdEFjY2VzcyA9IDA7CiAJcm9vdFBhZ2Ug PSAwOwogCXNlY3Rpb24gPSBOVUxMOworCXN5bmNPYmplY3Quc2V0TmFtZSgiUmVwb3NpdG9yeVZv bHVtZTo6c3luY09iamVjdCIpOwogfQogCiBSZXBvc2l0b3J5Vm9sdW1lOjp+UmVwb3NpdG9yeVZv bHVtZSgpCkBAIC05MCw3ICs5MSw3IEBAIHZvaWQgUmVwb3NpdG9yeVZvbHVtZTo6c3RvcmVCbG9i KEJsb2JSZWYKIAogdm9pZCBSZXBvc2l0b3J5Vm9sdW1lOjpzdG9yZUJsb2IoaW50NjQgYmxvYklk LCBTdHJlYW0gKnN0cmVhbSwgVHJhbnNhY3Rpb24gKnRyYW5zYWN0aW9uKQogewotCVN5bmMgc3lu YyAoJnN5bmNPYmplY3QsICJSZXBvc2l0b3J5Vm9sdW1lOjpnZXRCbG9iIik7CisJU3luYyBzeW5j ICgmc3luY09iamVjdCwgIlJlcG9zaXRvcnlWb2x1bWU6OnN0b3JlQmxvYiIpOwogCXN5bmMubG9j ayAoU2hhcmVkKTsKIAogCXdoaWxlICghaXNXcml0YWJsZSkKQEAgLTIxNiw3ICsyMTcsNyBAQCB2 b2lkIFJlcG9zaXRvcnlWb2x1bWU6Om1ha2VXcml0YWJsZSgpCiAJaWYgKGlzV3JpdGFibGUpCiAJ CXJldHVybjsKIAotCVN5bmMgc3luYygmc3luY09iamVjdCwgIlJlcG9zaXRvcnlWb2x1bWU6Omdl dEJsb2IiKTsKKwlTeW5jIHN5bmMoJnN5bmNPYmplY3QsICJSZXBvc2l0b3J5Vm9sdW1lOjptYWtl V3JpdGFibGUiKTsKIAlzeW5jLmxvY2soRXhjbHVzaXZlKTsKIAogCWlmIChpc1dyaXRhYmxlKQpA QCAtMjMyLDcgKzIzMyw3IEBAIHZvaWQgUmVwb3NpdG9yeVZvbHVtZTo6bWFrZVdyaXRhYmxlKCkK IHZvaWQgUmVwb3NpdG9yeVZvbHVtZTo6Y3JlYXRlKCkKIHsKIAlJTzo6Y3JlYXRlUGF0aCAoZmls ZU5hbWUpOwotCWRiYi0+Y3JlYXRlKGZpbGVOYW1lLCBkYmItPnBhZ2VTaXplLCAwLCBIZHJSZXBv c2l0b3J5RmlsZSwgMCwgTlVMTCwgMCk7CisJZGJiLT5jcmVhdGUoZmlsZU5hbWUsIGRiYi0+cGFn ZVNpemUsIDAsIEhkclJlcG9zaXRvcnlGaWxlLCAwLCBOVUxMKTsKIAlTeW5jIHN5bmNEREwoJmRh dGFiYXNlLT5zeW5jU3lzRERMLCAiUmVwb3NpdG9yeVZvbHVtZTo6Y3JlYXRlIik7CiAJVHJhbnNh Y3Rpb24gKnRyYW5zYWN0aW9uID0gZGF0YWJhc2UtPmdldFN5c3RlbVRyYW5zYWN0aW9uKCk7CiAJ c3luY0RETC5sb2NrKEV4Y2x1c2l2ZSk7CkBAIC0zOTksNyArNDAwLDcgQEAgaW50NjQgUmVwb3Np dG9yeVZvbHVtZTo6Z2V0UmVwb3NpdG9yeVNpegogCiB2b2lkIFJlcG9zaXRvcnlWb2x1bWU6OmRl bGV0ZUJsb2IoaW50NjQgYmxvYklkLCBUcmFuc2FjdGlvbiAqdHJhbnNhY3Rpb24pCiB7Ci0JU3lu YyBzeW5jICgmc3luY09iamVjdCwgIlJlcG9zaXRvcnlWb2x1bWU6OmdldEJsb2IiKTsKKwlTeW5j IHN5bmMgKCZzeW5jT2JqZWN0LCAiUmVwb3NpdG9yeVZvbHVtZTo6ZGVsZXRlQmxvYiIpOwogCXN5 bmMubG9jayAoU2hhcmVkKTsKIAogCXdoaWxlICghaXNXcml0YWJsZSkKQEAgLTQ2NCw3ICs0NjUs NyBAQCB2b2lkIFJlcG9zaXRvcnlWb2x1bWU6OnNjYXZlbmdlKCkKIAlpZiAoIWlzT3BlbiB8fCBs YXN0QWNjZXNzICsgVElNRU9VVCA+IGRhdGFiYXNlLT50aW1lc3RhbXApCiAJCXJldHVybjsKIAot CVN5bmMgc3luYyAoJnN5bmNPYmplY3QsICJSZXBvc2l0b3J5Vm9sdW1lOjpnZXRCbG9iIik7CisJ U3luYyBzeW5jICgmc3luY09iamVjdCwgIlJlcG9zaXRvcnlWb2x1bWU6OnNjYXZlbmdlIik7CiAJ c3luYy5sb2NrIChFeGNsdXNpdmUpOwogCiAJaWYgKCFpc09wZW4gfHwgbGFzdEFjY2VzcyArIFRJ TUVPVVQgPiBkYXRhYmFzZS0+dGltZXN0YW1wKQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2Uv ZmFsY29uL1Jlc3VsdFNldC5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL1Jlc3VsdFNldC5jcHAJ MjAwNy0wOS0yMCAxNTo0NDoyNSArMDAwMAorKysgYi9zdG9yYWdlL2ZhbGNvbi9SZXN1bHRTZXQu Y3BwCTIwMDgtMDctMjQgMDg6NDU6MDMgKzAwMDAKQEAgLTk2LDYgKzk2LDcgQEAgdm9pZCBSZXN1 bHRTZXQ6OmluaXQoaW50IGNvdW50KQogCWphdmFTdGF0ZW1lbnRDb3VudCA9IDA7CiAJY29ubmVj dGlvbiA9IE5VTEw7CiAJZGF0YWJhc2UgPSBOVUxMOworCXN5bmNPYmplY3Quc2V0TmFtZSgiUmVz dWx0U2V0OjpzeW5jT2JqZWN0Iik7CiB9CiAKIFJlc3VsdFNldDo6flJlc3VsdFNldCgpCgo9PT0g bW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vUm9sZS5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFs Y29uL1JvbGUuY3BwCTIwMDgtMDMtMDMgMTg6NDA6MTcgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxj b24vUm9sZS5jcHAJMjAwOC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtNDQsNiArNDQsNyBAQCBS b2xlOjpSb2xlKERhdGFiYXNlICpkYiwgY29uc3QgY2hhciogcm9sCiAJc2V0TmFtZSAocm9sZVNj aGVtYSwgcm9sZU5hbWUpOwogCXVzZUNvdW50ID0gMTsKIAltZW1zZXQgKHByaXZpbGVnZXMsIDAs IHNpemVvZiAocHJpdmlsZWdlcykpOworCXN5bmNPYmplY3Quc2V0TmFtZSgiUm9sZTo6c3luY09i amVjdCIpOwogfQogCiBSb2xlOjp+Um9sZSgpCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9m YWxjb24vU1FMUGFyc2UuY3BwJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9TUUxQYXJzZS5jcHAJMjAw OC0wNC0wNSAyMjowOToxNyArMDAwMAorKysgYi9zdG9yYWdlL2ZhbGNvbi9TUUxQYXJzZS5jcHAJ MjAwOC0wNy0xNyAxMzo1MjoxNyArMDAwMApAQCAtMzI5OCwyMSArMzI5OCw2IEBAIFN5bnRheCog U1FMUGFyc2U6OnBhcnNlQ3JlYXRlVGFibGVTcGFjZSgKIAogCWZvciAoOzspCiAJCXsKLQkJLyoq KgotCQlpZiAobWF0Y2goIklOSVRJQUxfU0laRSIpKQotCQkJb3B0aW9ucy5hcHBlbmQgKG1ha2VO b2RlKG5vZF9pbml0aWFsX3NpemUsIHBhcnNlTnVtYmVyKCkpKTsKLQkJZWxzZSBpZiAobWF0Y2gg KCJFWFRFTlRfU0laRSIpKQotCQkJb3B0aW9ucy5hcHBlbmQgKG1ha2VOb2RlKG5vZF9leHRlbnRf c2l6ZSwgcGFyc2VOdW1iZXIoKSkpOwotCQllbHNlIGlmIChtYXRjaCAoIkFVVE9FWFRFTkRfU0la RSIpKQotCQkJb3B0aW9ucy5hcHBlbmQgKG1ha2VOb2RlKG5vZF9hdXRvZXh0ZW5kX3NpemUsIHBh cnNlTnVtYmVyKCkpKTsKLQkJZWxzZSBpZiAobWF0Y2ggKCJNQVhfU0laRSIpKQotCQkJb3B0aW9u cy5hcHBlbmQgKG1ha2VOb2RlKG5vZF9tYXhfc2l6ZSwgcGFyc2VOdW1iZXIoKSkpOwotCQllbHNl IGlmIChtYXRjaCAoIk5PREVHUk9VUCIpKQotCQkJb3B0aW9ucy5hcHBlbmQgKG1ha2VOb2RlKG5v ZF9ub2RlZ3JvdXAsIHBhcnNlTnVtYmVyKCkpKTsKLQkJZWxzZSBpZiAobWF0Y2ggKCJXQUlUIikp Ci0JCQlvcHRpb25zLmFwcGVuZCAobWFrZU5vZGUobm9kX3dhaXQsIHBhcnNlTnVtYmVyKCkpKTsK LQkJZWxzZQotCQkqKiovIAogCQlpZiAobWF0Y2ggKCJDT01NRU5UIikpCiAJCQlvcHRpb25zLmFw cGVuZCAobWFrZU5vZGUobm9kX2NvbW1lbnQsIHBhcnNlUXVvdGVkU3RyaW5nKCkpKTsKIAkJZWxz ZSBpZiAobWF0Y2ggKCIsIikpCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vU1JM Q3JlYXRlVGFibGVTcGFjZS5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL1NSTENyZWF0ZVRhYmxl U3BhY2UuY3BwCTIwMDgtMDQtMDUgMjI6MDk6MTcgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24v U1JMQ3JlYXRlVGFibGVTcGFjZS5jcHAJMjAwOC0wNy0xNyAxMzo1MjoxNyArMDAwMApAQCAtNTIs MTQgKzUyLDYgQEAgdm9pZCBTUkxDcmVhdGVUYWJsZVNwYWNlOjphcHBlbmQoVGFibGVTcAogCXB1 dEludChsZW4pOwogCXB1dERhdGEobGVuLCAoY29uc3QgVUNIQVIqKSBwKTsKIAlwdXRJbnQodGFi bGVTcGFjZS0+dHlwZSk7Ci0JLyoqKgotCXB1dEludDY0KHRhYmxlU3BhY2UtPmluaXRpYWxTaXpl KTsKLQlwdXRJbnQ2NCh0YWJsZVNwYWNlLT5leHRlbnRTaXplKTsKLQlwdXRJbnQ2NCh0YWJsZVNw YWNlLT5hdXRvZXh0ZW5kU2l6ZSk7Ci0JcHV0SW50NjQodGFibGVTcGFjZS0+bWF4U2l6ZSk7Ci0J cHV0SW50KHRhYmxlU3BhY2UtPm5vZGVncm91cCk7Ci0JcHV0SW50KHRhYmxlU3BhY2UtPndhaXQp OwotCSoqKi8KIAlwID0gdGFibGVTcGFjZS0+Y29tbWVudDsKIAlsZW4gPSAoaW50KXN0cmxlbihw KTsKIAlwdXRJbnQobGVuKTsKQEAgLTgxLDI3ICs3MywxMSBAQCB2b2lkIFNSTENyZWF0ZVRhYmxl U3BhY2U6OnJlYWQoKQogCQkKIAlpZiAoY29udHJvbC0+dmVyc2lvbiA+PSBzcmxWZXJzaW9uMTUp CiAJCXsKLQkJLyoqKgotCQlpbml0aWFsU2l6ZQk9IGdldEludDY0KCk7Ci0JCWV4dGVudFNpemUJ PSBnZXRJbnQ2NCgpOwotCQlhdXRvZXh0ZW5kU2l6ZT0gZ2V0SW50NjQoKTsKLQkJbWF4U2l6ZQkJ PSBnZXRJbnQ2NCgpOwotCQlub2RlZ3JvdXAJPSBnZXRJbnQoKTsKLQkJd2FpdAkJPSBnZXRJbnQo KTsKLQkJKioqLwogCQljb21tZW50TGVuZ3RoID0gZ2V0SW50KCk7CiAJCWNvbW1lbnQgPSAoY29u c3QgY2hhciopIGdldERhdGEoY29tbWVudExlbmd0aCk7CiAJCX0KIAllbHNlCiAJCXsKLQkJLyoq KgotCQlpbml0aWFsU2l6ZQk9IDA7Ci0JCWV4dGVudFNpemUJPSAwOwotCQlhdXRvZXh0ZW5kU2l6 ZT0gMDsKLQkJbWF4U2l6ZQkJPSAwOwotCQlub2RlZ3JvdXAJPSAwOwotCQl3YWl0CQk9IDA7Ci0J CSoqKi8KIAkJY29tbWVudExlbmd0aCA9IDA7CiAJCWNvbW1lbnQgPSBOVUxMOwogCQl9CkBAIC0x MTAsMTcgKzg2LDcgQEAgdm9pZCBTUkxDcmVhdGVUYWJsZVNwYWNlOjpyZWFkKCkKIHZvaWQgU1JM Q3JlYXRlVGFibGVTcGFjZTo6cGFzczEoKQogewogCVRhYmxlU3BhY2VJbml0IHRzSW5pdDsKLQkK LQkvKioqCi0JdHNJbml0LmluaXRpYWxTaXplCT0gaW5pdGlhbFNpemU7Ci0JdHNJbml0LmV4dGVu dFNpemUJPSBleHRlbnRTaXplOwotCXRzSW5pdC5hdXRvZXh0ZW5kU2l6ZSA9IGF1dG9leHRlbmRT aXplOwotCXRzSW5pdC5tYXhTaXplCQk9IG1heFNpemU7Ci0JdHNJbml0Lm5vZGVncm91cAk9IG5v ZGVncm91cDsKLQl0c0luaXQud2FpdAkJCT0gd2FpdDsKLQkqKiovCiAJdHNJbml0LmNvbW1lbnQJ CT0gY29tbWVudDsKLQkJCiAJbG9nLT5kYXRhYmFzZS0+dGFibGVTcGFjZU1hbmFnZXItPnJlZG9D cmVhdGVUYWJsZVNwYWNlKHRhYmxlU3BhY2VJZCwgbmFtZUxlbmd0aCwgbmFtZSwgZmlsZW5hbWVM ZW5ndGgsIGZpbGVuYW1lLCB0eXBlLCAmdHNJbml0KTsKIH0KIAoKPT09IG1vZGlmaWVkIGZpbGUg J3N0b3JhZ2UvZmFsY29uL1NSTENyZWF0ZVRhYmxlU3BhY2UuaCcKLS0tIGEvc3RvcmFnZS9mYWxj b24vU1JMQ3JlYXRlVGFibGVTcGFjZS5oCTIwMDgtMDQtMDUgMjI6MDk6MTcgKzAwMDAKKysrIGIv c3RvcmFnZS9mYWxjb24vU1JMQ3JlYXRlVGFibGVTcGFjZS5oCTIwMDgtMDctMTcgMTM6NTI6MTcg KzAwMDAKQEAgLTQ4LDE0ICs0OCw2IEBAIHB1YmxpYzoKIAlpbnQJCQluYW1lTGVuZ3RoOwogCWlu dAkJCWZpbGVuYW1lTGVuZ3RoOwogCWludAkJCXR5cGU7Ci0JLyoqKgotCWludDY0CQlpbml0aWFs U2l6ZTsKLQlpbnQ2NAkJZXh0ZW50U2l6ZTsKLQlpbnQ2NAkJYXV0b0V4dGVuZFNpemU7Ci0JaW50 NjQJCW1heFNpemU7Ci0JaW50CQkJbm9kZWdyb3VwOwotCWludAkJCXdhaXQ7Ci0JKioqLwogCWNv bnN0IGNoYXIJKmNvbW1lbnQ7CiAJaW50CQkJY29tbWVudExlbmd0aDsKIH07Cgo9PT0gbW9kaWZp ZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vU1JMRGVsZXRlSW5kZXguY3BwJwotLS0gYS9zdG9yYWdl L2ZhbGNvbi9TUkxEZWxldGVJbmRleC5jcHAJMjAwNy0xMC0xMSAxMjoxMjoxNiArMDAwMAorKysg Yi9zdG9yYWdlL2ZhbGNvbi9TUkxEZWxldGVJbmRleC5jcHAJMjAwOC0wNy0xNSAxODo1NzoyNyAr MDAwMApAQCAtNDQsMTAgKzQ0LDEwIEBAIFNSTERlbGV0ZUluZGV4Ojp+U1JMRGVsZXRlSW5kZXgo KQogCiB2b2lkIFNSTERlbGV0ZUluZGV4OjphcHBlbmQoRGJiICpkYmIsIFRyYW5zSWQgdHJhbnNJ ZCwgaW50IGlkLCBpbnQgaWR4VmVyc2lvbikKIHsKLQlTeW5jIHN5bmNJbmRleGVzKCZsb2ctPnN5 bmNJbmRleGVzLCAiU1JMRGVsZXRlSW5kZXg6OmFwcGVuZCIpOworCVN5bmMgc3luY0luZGV4ZXMo JmxvZy0+c3luY0luZGV4ZXMsICJTUkxEZWxldGVJbmRleDo6YXBwZW5kKDEpIik7CiAJc3luY0lu ZGV4ZXMubG9jayhFeGNsdXNpdmUpOwogCi0JU1RBUlRfUkVDT1JEKHNybERlbGV0ZUluZGV4LCAi U1JMRGVsZXRlSW5kZXg6OmFwcGVuZCIpOworCVNUQVJUX1JFQ09SRChzcmxEZWxldGVJbmRleCwg IlNSTERlbGV0ZUluZGV4OjphcHBlbmQoMikiKTsKIAlwdXRJbnQoZGJiLT50YWJsZVNwYWNlSWQp OwogCWxvZy0+Z2V0VHJhbnNhY3Rpb24odHJhbnNJZCk7CiAJbG9nLT5zZXRJbmRleEluYWN0aXZl KGlkLCBkYmItPnRhYmxlU3BhY2VJZCk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxj b24vU1JMUHJlcGFyZS5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL1NSTFByZXBhcmUuY3BwCTIw MDctMTItMDIgMjA6MTc6MjkgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vU1JMUHJlcGFyZS5j cHAJMjAwOC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtNDMsNyArNDMsNyBAQCBTUkxQcmVwYXJl Ojp+U1JMUHJlcGFyZSgpCiAKIHZvaWQgU1JMUHJlcGFyZTo6YXBwZW5kKFRyYW5zSWQgdHJhbnNJ ZCwgaW50IHhpZExlbmd0aCwgY29uc3QgVUNIQVIgKnhpZCkKIHsKLQlTVEFSVF9SRUNPUkQoc3Js UHJlcGFyZSwgIiIpOworCVNUQVJUX1JFQ09SRChzcmxQcmVwYXJlLCAiU1JMUHJlcGFyZTo6YXBw ZW5kIik7CiAJcHV0SW50KHRyYW5zSWQpOwogCXB1dEludCh4aWRMZW5ndGgpOwogCXB1dERhdGEo eGlkTGVuZ3RoLCB4aWQpOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL1NSTFJv bGxiYWNrLmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vU1JMUm9sbGJhY2suY3BwCTIwMDctMDkt MjAgMTU6NDQ6MjUgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vU1JMUm9sbGJhY2suY3BwCTIw MDgtMDctMjQgMDg6NDU6MDMgKzAwMDAKQEAgLTQwLDcgKzQwLDcgQEAgU1JMUm9sbGJhY2s6On5T UkxSb2xsYmFjaygpCiAKIHZvaWQgU1JMUm9sbGJhY2s6OmFwcGVuZChUcmFuc0lkIHRyYW5zSWQs IGJvb2wgdXBkYXRlVHJhbnNhY3Rpb24pCiB7Ci0JU1RBUlRfUkVDT1JEKHNybFJvbGxiYWNrLCAi Iik7CisJU1RBUlRfUkVDT1JEKHNybFJvbGxiYWNrLCAiU1JMUm9sbGJhY2s6OmFwcGVuZCIpOwog CXB1dEludCh0cmFuc0lkKTsKIAl1aW50NjQgY29tbWl0QmxvY2tOdW1iZXIgPSBsb2ctPm5leHRC bG9ja051bWJlcjsKIAlTZXJpYWxMb2dUcmFuc2FjdGlvbiAqdHJhbnNhY3Rpb24gPSBsb2ctPmZp bmRUcmFuc2FjdGlvbih0cmFuc0lkKTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNv bi9TUkxVcGRhdGVJbmRleC5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL1NSTFVwZGF0ZUluZGV4 LmNwcAkyMDA4LTA0LTEyIDAyOjIyOjUwICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL1NSTFVw ZGF0ZUluZGV4LmNwcAkyMDA4LTA3LTE1IDE4OjU3OjI3ICswMDAwCkBAIC00MCw3ICs0MCw3IEBA IFNSTFVwZGF0ZUluZGV4Ojp+U1JMVXBkYXRlSW5kZXgodm9pZCkKIAogdm9pZCBTUkxVcGRhdGVJ bmRleDo6YXBwZW5kKERlZmVycmVkSW5kZXgqIGRlZmVycmVkSW5kZXgpCiB7Ci0JU3luYyBzeW5j SW5kZXhlcygmbG9nLT5zeW5jSW5kZXhlcywgIlNSTFVwZGF0ZUluZGV4OjphcHBlbmQiKTsKKwlT eW5jIHN5bmNJbmRleGVzKCZsb2ctPnN5bmNJbmRleGVzLCAiU1JMVXBkYXRlSW5kZXg6OmFwcGVu ZCgxKSIpOwogCXN5bmNJbmRleGVzLmxvY2soU2hhcmVkKTsKIAogCVRyYW5zYWN0aW9uICp0cmFu c2FjdGlvbiA9IGRlZmVycmVkSW5kZXgtPnRyYW5zYWN0aW9uOwpAQCAtNTcsNyArNTcsNyBAQCB2 b2lkIFNSTFVwZGF0ZUluZGV4OjphcHBlbmQoRGVmZXJyZWRJbmRlCiAKIAlmb3IgKERJTm9kZSAq bm9kZSA9IHdhbGtlci5uZXh0KCk7IG5vZGU7KQogCQl7Ci0JCVNUQVJUX1JFQ09SRChzcmxVcGRh dGVJbmRleCwgIlNSTFVwZGF0ZUluZGV4OjphcHBlbmQiKTsKKwkJU1RBUlRfUkVDT1JEKHNybFVw ZGF0ZUluZGV4LCAiU1JMVXBkYXRlSW5kZXg6OmFwcGVuZCgyKSIpOwogCQlsb2ctPnVwZGF0ZUlu ZGV4VXNlVmVjdG9yKGluZGV4SWQsIHRhYmxlU3BhY2VJZCwgMSk7CiAJCVNlcmlhbExvZ1RyYW5z YWN0aW9uICpzcmxUcmFucyA9IGxvZy0+Z2V0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb24tPnRyYW5z YWN0aW9uSWQpOwogCQlzcmxUcmFucy0+c2V0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pOwoKPT09 IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL1NjaGVkdWxlci5jcHAnCi0tLSBhL3N0b3Jh Z2UvZmFsY29uL1NjaGVkdWxlci5jcHAJMjAwOC0wMy0wNSAyMDoyODo1MyArMDAwMAorKysgYi9z dG9yYWdlL2ZhbGNvbi9TY2hlZHVsZXIuY3BwCTIwMDgtMDctMjQgMDg6NDU6MDMgKzAwMDAKQEAg LTY2LDYgKzY2LDcgQEAgU2NoZWR1bGVyOjpTY2hlZHVsZXIoRGF0YWJhc2UgKmRiKQogCWV2ZW50 cyA9IE5VTEw7CiAJdXNlQ291bnQgPSAxOwogCXRocmVhZCA9IE5VTEw7CisJc3luY09iamVjdC5z ZXROYW1lKCJTY2hlZHVsZXI6OnN5bmNPYmplY3QiKTsKIH0KIAogU2NoZWR1bGVyOjp+U2NoZWR1 bGVyKCkKQEAgLTIxMCwxMCArMjExLDEwIEBAIHZvaWQgU2NoZWR1bGVyOjpzdGFydCgpCiAKIHZv aWQgU2NoZWR1bGVyOjp1cGRhdGVTY2hlZHVsZShjb25zdCBjaGFyICphcHBOYW1lLCBjb25zdCBj aGFyICpldmVudE5hbWUsIFVzZXIgKnVzZXIsIGNvbnN0IGNoYXIgKnNjaGVkdWxlKQogewotCVN5 bmMgc3luY0RETCAoJmRhdGFiYXNlLT5zeW5jU3lzRERMLCAiU2NoZWR1bGVyOjp1cGRhdGVTY2hl ZHVsZSgyKSIpOworCVN5bmMgc3luY0RETCAoJmRhdGFiYXNlLT5zeW5jU3lzRERMLCAiU2NoZWR1 bGVyOjp1cGRhdGVTY2hlZHVsZSgxKSIpOwogCXN5bmNEREwubG9jayAoRXhjbHVzaXZlKTsKIAot CVN5bmMgc3luY09iaigmc3luY09iamVjdCwgIlNjaGVkdWxlcjo6dXBkYXRlU2NoZWR1bGUiKTsK KwlTeW5jIHN5bmNPYmooJnN5bmNPYmplY3QsICJTY2hlZHVsZXI6OnVwZGF0ZVNjaGVkdWxlKDIp Iik7CiAJc3luY09iai5sb2NrKEV4Y2x1c2l2ZSk7CiAKIAkvLyBEaXRjaCBvbGQgZXZlbnQKCj09 PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9TZWN0b3JCdWZmZXIuY3BwJwotLS0gYS9z dG9yYWdlL2ZhbGNvbi9TZWN0b3JCdWZmZXIuY3BwCTIwMDgtMDctMTAgMTk6MDA6MTQgKzAwMDAK KysrIGIvc3RvcmFnZS9mYWxjb24vU2VjdG9yQnVmZmVyLmNwcAkyMDA4LTA3LTI0IDA4OjQ1OjAz ICswMDAwCkBAIC0yNSw2ICsyNSw3IEBAIFNlY3RvckJ1ZmZlcjo6U2VjdG9yQnVmZmVyKCkKIHsK IAlhY3RpdmVMZW5ndGggPSAwOwogCXNlY3Rvck51bWJlciA9IC0xOworCXN5bmNPYmplY3Quc2V0 TmFtZSgiU2VjdG9yQnVmZmVyOjpzeW5jT2JqZWN0Iik7CiB9CiAKIFNlY3RvckJ1ZmZlcjo6flNl Y3RvckJ1ZmZlcih2b2lkKQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL1NlY3Rv ckNhY2hlLmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vU2VjdG9yQ2FjaGUuY3BwCTIwMDgtMDYt MTcgMjE6MDA6NDUgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vU2VjdG9yQ2FjaGUuY3BwCTIw MDgtMDctMjQgMDg6NDU6MDMgKzAwMDAKQEAgLTQ2LDYgKzQ2LDggQEAgU2VjdG9yQ2FjaGU6OlNl Y3RvckNhY2hlKGludCBudW1CdWZmZXJzLAogCQlidWZmZXItPmNhY2hlID0gdGhpczsKIAkJYnVm ZmVyLT5idWZmZXIgPSBwOwogCQl9CisKKwlzeW5jT2JqZWN0LnNldE5hbWUoIlNlY3RvckNhY2hl OjpzeW5jT2JqZWN0Iik7CiB9CiAKIFNlY3RvckNhY2hlOjp+U2VjdG9yQ2FjaGUodm9pZCkKQEAg LTU2LDcgKzU4LDcgQEAgU2VjdG9yQ2FjaGU6On5TZWN0b3JDYWNoZSh2b2lkKQogCiB2b2lkIFNl Y3RvckNhY2hlOjpyZWFkUGFnZShCZGIqIGJkYikKIHsKLQlTeW5jIHN5bmMoJnN5bmNPYmplY3Qs ICJTZWN0b3JDYWNoZTo6cmVhZFBhZ2UiKTsKKwlTeW5jIHN5bmMoJnN5bmNPYmplY3QsICJTZWN0 b3JDYWNoZTo6cmVhZFBhZ2UoMSkiKTsKIAlzeW5jLmxvY2soU2hhcmVkKTsKIAlpbnQgc2VjdG9y TnVtYmVyID0gYmRiLT5wYWdlTnVtYmVyIC8gcGFnZXNQZXJTZWN0b3I7CiAJaW50IHNsb3QgPSBz ZWN0b3JOdW1iZXIgJSBTRUNUT1JfSEFTSF9TSVpFOwpAQCAtODksNyArOTEsNyBAQCB2b2lkIFNl Y3RvckNhY2hlOjpyZWFkUGFnZShCZGIqIGJkYikKIAkKIAlidWZmZXIgPSBuZXh0QnVmZmVyOwog CW5leHRCdWZmZXIgPSBidWZmZXItPm5leHQ7Ci0JU3luYyBzeW5jQnVmZmVyKCZidWZmZXItPnN5 bmNPYmplY3QsICJTZWN0b3JDYWNoZTo6cmVhZFBhZ2UoMykiKTsKKwlTeW5jIHN5bmNCdWZmZXIo JmJ1ZmZlci0+c3luY09iamVjdCwgIlNlY3RvckNhY2hlOjpyZWFkUGFnZSg0KSIpOwogCXN5bmNC dWZmZXIubG9jayhFeGNsdXNpdmUpOwogCQogCWlmIChidWZmZXItPnNlY3Rvck51bWJlciA+PSAw KQpAQCAtMTExLDcgKzExMyw3IEBAIHZvaWQgU2VjdG9yQ2FjaGU6OnJlYWRQYWdlKEJkYiogYmRi KQogCiB2b2lkIFNlY3RvckNhY2hlOjp3cml0ZVBhZ2UoQmRiKiBiZGIpCiB7Ci0JU3luYyBzeW5j KCZzeW5jT2JqZWN0LCAiU2VjdG9yQ2FjaGU6OndyaXRlUGFnZSIpOworCVN5bmMgc3luYygmc3lu Y09iamVjdCwgIlNlY3RvckNhY2hlOjp3cml0ZVBhZ2UoMSkiKTsKIAlzeW5jLmxvY2soU2hhcmVk KTsKIAlpbnQgc2VjdG9yTnVtYmVyID0gYmRiLT5wYWdlTnVtYmVyIC8gcGFnZXNQZXJTZWN0b3I7 CiAJaW50IHNsb3QgPSBzZWN0b3JOdW1iZXIgJSBTRUNUT1JfSEFTSF9TSVpFOwoKPT09IG1vZGlm aWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL1NlcXVlbmNlTWFuYWdlci5jcHAnCi0tLSBhL3N0b3Jh Z2UvZmFsY29uL1NlcXVlbmNlTWFuYWdlci5jcHAJMjAwOC0wMy0wMyAxODo0MDoxNyArMDAwMAor KysgYi9zdG9yYWdlL2ZhbGNvbi9TZXF1ZW5jZU1hbmFnZXIuY3BwCTIwMDgtMDctMjQgMDg6NDU6 MDMgKzAwMDAKQEAgLTU0LDYgKzU0LDcgQEAgU2VxdWVuY2VNYW5hZ2VyOjpTZXF1ZW5jZU1hbmFn ZXIoRGF0YWJhcwogewogCWRhdGFiYXNlID0gZGI7CiAJbWVtc2V0IChzZXF1ZW5jZXMsIDAsIHNp emVvZiAoc2VxdWVuY2VzKSk7CisJc3luY09iamVjdC5zZXROYW1lKCJTZXF1ZW5jZU1hbmFnZXI6 OnN5bmNPYmplY3QiKTsKIH0KIAogU2VxdWVuY2VNYW5hZ2VyOjp+U2VxdWVuY2VNYW5hZ2VyKCkK Cj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9TZXJpYWxMb2cuY3BwJwotLS0gYS9z dG9yYWdlL2ZhbGNvbi9TZXJpYWxMb2cuY3BwCTIwMDgtMDctMDkgMTk6MjM6MjMgKzAwMDAKKysr IGIvc3RvcmFnZS9mYWxjb24vU2VyaWFsTG9nLmNwcAkyMDA4LTA3LTI0IDA4OjQ1OjAzICswMDAw CkBAIC0xMjUsNyArMTI1LDkgQEAgU2VyaWFsTG9nOjpTZXJpYWxMb2coRGF0YWJhc2UgKmRiLCBK U3RyaQogCXN5bmNJbmRleGVzLnNldE5hbWUoIlNlcmlhbExvZzo6c3luY0luZGV4ZXMiKTsKIAlz eW5jR29waGVyLnNldE5hbWUoIlNlcmlhbExvZzo6c3luY0dvcGhlciIpOwogCXN5bmNVcGRhdGVT dGFsbC5zZXROYW1lKCJTZXJpYWxMb2c6OnN5bmNVcGRhdGVTdGFsbCIpOwotCXBlbmRpbmcuc3lu Y09iamVjdC5zZXROYW1lKCJTZXJpYWxMb2c6OnBlbmRpbmcgdHJhbnNhY3Rpb25zIik7CisJcGVu ZGluZy5zeW5jT2JqZWN0LnNldE5hbWUoIlNlcmlhbExvZzo6cGVuZGluZy5zeW5jT2JqZWN0Iik7 CisJaW5hY3Rpb25zLnN5bmNPYmplY3Quc2V0TmFtZSgiU2VyaWFsTG9nOjppbmFjdGlvbnMuc3lu Y09iamVjdCIpOworCXJ1bm5pbmcuc3luY09iamVjdC5zZXROYW1lKCJTZXJpYWxMb2c6OnJ1bm5p bmcuc3luY09iamVjdCIpOwogCWdvcGhlcnMgPSBOVUxMOwogCXdhbnRUb1NlcmlhbGl6ZUdvcGhl cnMgPSAwOwogCXNlcmlhbGl6ZUdvcGhlcnMgPSAwOwpAQCAtMTI5MiwxMSArMTI5NCwxMiBAQCBi b29sIFNlcmlhbExvZzo6aW5kZXhJblVzZShpbnQgaW5kZXhJZCwgCiAJVGFibGVTcGFjZUluZm8g KmluZm8gPSBnZXRUYWJsZVNwYWNlSW5mbyh0YWJsZVNwYWNlSWQpOwogCXJldHVybiBpbmZvLT5p bmRleFVzZVZlY3Rvci5nZXQoaW5kZXhJZCkgPiAwOwogfQotCisvKgogaW50IFNlcmlhbExvZzo6 Z2V0UGFnZVN0YXRlKGludDMyIHBhZ2VOdW1iZXIsIGludCB0YWJsZVNwYWNlSWQpCiB7CiAJcmV0 dXJuIHJlY292ZXJ5UGFnZXMtPmdldEN1cnJlbnRTdGF0ZShwYWdlTnVtYmVyLCB0YWJsZVNwYWNl SWQpOwogfQorKi8KIAogdm9pZCBTZXJpYWxMb2c6OnJlZG9GcmVlUGFnZShpbnQzMiBwYWdlTnVt YmVyLCBpbnQgdGFibGVTcGFjZUlkKQogewpAQCAtMTM2Niw3ICsxMzY5LDcgQEAgdm9pZCBTZXJp YWxMb2c6OnJlcG9ydFN0YXRpc3RpY3Modm9pZCkKIAogdm9pZCBTZXJpYWxMb2c6OmdldFNlcmlh bExvZ0luZm8oSW5mb1RhYmxlKiB0YWJsZUluZm8pCiB7Ci0JU3luYyBzeW5jKCZwZW5kaW5nLnN5 bmNPYmplY3QsICJTZXJpYWxMb2c6OmdldFNlcmlhbExvZ0luZm8iKTsKKwlTeW5jIHN5bmMoJnBl bmRpbmcuc3luY09iamVjdCwgIlNlcmlhbExvZzo6Z2V0U2VyaWFsTG9nSW5mbygxKSIpOwogCXN5 bmMubG9jayhTaGFyZWQpOwogCWludCBudW1iZXJUcmFuc2FjdGlvbnMgPSAwOwogCXVpbnQ2NCBt aW5CbG9ja051bWJlciA9IHdyaXRlQmxvY2stPmJsb2NrTnVtYmVyOwpAQCAtMTM4Miw3ICsxMzg1 LDcgQEAgdm9pZCBTZXJpYWxMb2c6OmdldFNlcmlhbExvZ0luZm8oSW5mb1RhYgogCWludDY0IGRl bHRhID0gd3JpdGVCbG9jay0+YmxvY2tOdW1iZXIgLSBtaW5CbG9ja051bWJlcjsKIAlzeW5jLnVu bG9jaygpOwogCQotCVN5bmMgc3luY1dpbmRvd3MoJnN5bmNXcml0ZSwgIlNlcmlhbExvZzo6Z2V0 U2VyaWFsTG9nSW5mbyIpOworCVN5bmMgc3luY1dpbmRvd3MoJnN5bmNXcml0ZSwgIlNlcmlhbExv Zzo6Z2V0U2VyaWFsTG9nSW5mbygxKSIpOwogCXN5bmNXaW5kb3dzLmxvY2soU2hhcmVkKTsKIAlp bnQgd2luZG93cyA9IDA7CiAJaW50IGJ1ZmZlcnMgPSAwOwpAQCAtMTQzOSwxMyArMTQ0MiwxMyBA QCB2b2lkIFNlcmlhbExvZzo6cHJlQ29tbWl0KFRyYW5zYWN0aW9uKiB0CiAJCiAJaWYgKCFzZXJp YWxMb2dUcmFuc2FjdGlvbikKIAkJewotCQlTeW5jIHdyaXRlU3luYygmc3luY1dyaXRlLCAiU2Vy aWFsTG9nOjpwcmVDb21taXQiKTsKKwkJU3luYyB3cml0ZVN5bmMoJnN5bmNXcml0ZSwgIlNlcmlh bExvZzo6cHJlQ29tbWl0KDEpIik7CiAJCXdyaXRlU3luYy5sb2NrKEV4Y2x1c2l2ZSk7CiAJCXN0 YXJ0UmVjb3JkKCk7CiAJCXNlcmlhbExvZ1RyYW5zYWN0aW9uID0gZ2V0VHJhbnNhY3Rpb24odHJh bnNhY3Rpb24tPnRyYW5zYWN0aW9uSWQpOwogCQl9CiAJCQotCVN5bmMgc3luYyAoJnBlbmRpbmcu c3luY09iamVjdCwgIlNlcmlhbExvZzo6YWN0aXZhdGUiKTsKKwlTeW5jIHN5bmMgKCZwZW5kaW5n LnN5bmNPYmplY3QsICJTZXJpYWxMb2c6OnByZUNvbW1pdCgyKSIpOwogCXN5bmMubG9jayhFeGNs dXNpdmUpOwogCXJ1bm5pbmcucmVtb3ZlKHNlcmlhbExvZ1RyYW5zYWN0aW9uKTsKIAlwZW5kaW5n LmFwcGVuZChzZXJpYWxMb2dUcmFuc2FjdGlvbik7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFn ZS9mYWxjb24vU2VyaWFsTG9nLmgnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL1NlcmlhbExvZy5oCTIw MDgtMDctMDkgMTk6MjM6MjMgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vU2VyaWFsTG9nLmgJ MjAwOC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtMTMyLDcgKzEzMiw3IEBAIHB1YmxpYzoKIAli b29sCQkJYnVtcFNlY3Rpb25JbmNhcm5hdGlvbiAoaW50IHNlY3Rpb25JZCwgaW50IHRhYmxlU3Bh Y2VJZCwgaW50IHN0YXRlKTsKIAlib29sCQkJYnVtcFBhZ2VJbmNhcm5hdGlvbiAoaW50MzIgcGFn ZU51bWJlciwgaW50IHRhYmxlU3BhY2VJZCwgaW50IHN0YXRlKTsKIAotCWludAkJCQlnZXRQYWdl U3RhdGUoaW50MzIgcGFnZU51bWJlciwgaW50IHRhYmxlU3BhY2VJZCk7CisvLwlpbnQJCQkJZ2V0 UGFnZVN0YXRlKGludDMyIHBhZ2VOdW1iZXIsIGludCB0YWJsZVNwYWNlSWQpOwogCXZvaWQJCQly ZWRvRnJlZVBhZ2UoaW50MzIgcGFnZU51bWJlciwgaW50IHRhYmxlU3BhY2VJZCk7CiAJCiAJYm9v bAkJCWluZGV4SW5Vc2UoaW50IGluZGV4SWQsIGludCB0YWJsZVNwYWNlSWQpOwoKPT09IG1vZGlm aWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL1NlcmlhbExvZ0ZpbGUuY3BwJwotLS0gYS9zdG9yYWdl L2ZhbGNvbi9TZXJpYWxMb2dGaWxlLmNwcAkyMDA4LTA3LTA4IDIxOjM2OjM0ICswMDAwCisrKyBi L3N0b3JhZ2UvZmFsY29uL1NlcmlhbExvZ0ZpbGUuY3BwCTIwMDgtMDctMTUgMTg6NTc6MjcgKzAw MDAKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIFNlcmlhbExvZ0ZpbGU6OmNsb3NlKCkKIHZvaWQg U2VyaWFsTG9nRmlsZTo6d3JpdGUoaW50NjQgcG9zaXRpb24sIHVpbnQzMiBsZW5ndGgsIGNvbnN0 IFNlcmlhbExvZ0Jsb2NrICpkYXRhKQogewogCXVpbnQzMiBlZmZlY3RpdmVMZW5ndGggPSBST1VO RFVQKGxlbmd0aCwgc2VjdG9yU2l6ZSk7Ci0gICAgdGltZV90IHN0YXJ0ID0gZGF0YWJhc2UtPnRp bWVzdGFtcDsKKwl0aW1lX3Qgc3RhcnQgPSBkYXRhYmFzZS0+dGltZXN0YW1wOwogCVByaW9yaXR5 IHByaW9yaXR5KGRhdGFiYXNlLT5pb1NjaGVkdWxlcik7CiAJCiAJaWYgKCEocG9zaXRpb24gPT0g d3JpdGVQb2ludCB8fCBwb3NpdGlvbiA9PSAwIHx8IHdyaXRlUG9pbnQgPT0gMCkpCkBAIC0yMDIs NyArMjAyLDcgQEAgdm9pZCBTZXJpYWxMb2dGaWxlOjp3cml0ZShpbnQ2NCBwb3NpdGlvbgogI2lm IGRlZmluZWQoSEFWRV9QUkVBRCkgJiYgIWRlZmluZWQoSEFWRV9CUk9LRU5fUFJFQUQpCiAJdWlu dDMyIG4gPSA6OnB3cml0ZSAoaGFuZGxlLCBkYXRhLCBlZmZlY3RpdmVMZW5ndGgsIHBvc2l0aW9u KTsKICNlbHNlCi0JU3luYyBzeW5jICgmc3luY09iamVjdCwgIklPOjpwd3JpdGUiKTsKKwlTeW5j IHN5bmMgKCZzeW5jT2JqZWN0LCAiU2VyaWFsTG9nRmlsZTo6d3JpdGUiKTsKIAlzeW5jLmxvY2sg KEV4Y2x1c2l2ZSk7CiAKIAlpZiAocG9zaXRpb24gIT0gb2Zmc2V0KQpAQCAtMjQ0LDcgKzI0NCw3 IEBAIHZvaWQgU2VyaWFsTG9nRmlsZTo6d3JpdGUoaW50NjQgcG9zaXRpb24KIHVpbnQzMiBTZXJp YWxMb2dGaWxlOjpyZWFkKGludDY0IHBvc2l0aW9uLCB1aW50MzIgbGVuZ3RoLCBVQ0hBUiAqZGF0 YSkKIHsKIAl1aW50MzIgZWZmZWN0aXZlTGVuZ3RoID0gUk9VTkRVUChsZW5ndGgsIHNlY3RvclNp emUpOwotCS8vU3luYyBzeW5jSU8oJmRhdGFiYXNlLT5zeW5jU2VyaWFsTG9nSU8sICJTZXJpYWxM b2dGaWxlOjpyZWFkIik7CisJLy9TeW5jIHN5bmNJTygmZGF0YWJhc2UtPnN5bmNTZXJpYWxMb2dJ TywgIlNlcmlhbExvZ0ZpbGU6OnJlYWQoMSkiKTsKIAlQcmlvcml0eSBwcmlvcml0eShkYXRhYmFz ZS0+aW9TY2hlZHVsZXIpOwogCiAJaWYgKGZhbGNvbl9zZXJpYWxfbG9nX3ByaW9yaXR5KQpAQCAt Mjc0LDcgKzI3NCw3IEBAIHVpbnQzMiBTZXJpYWxMb2dGaWxlOjpyZWFkKGludDY0IHBvc2l0aW8K ICNpZiBkZWZpbmVkKEhBVkVfUFJFQUQpICYmICFkZWZpbmVkKEhBVkVfQlJPS0VOX1BSRUFEKQog CWludCBuID0gOjpwcmVhZCAoaGFuZGxlLCBkYXRhLCBlZmZlY3RpdmVMZW5ndGgsIHBvc2l0aW9u KTsKICNlbHNlCi0JU3luYyBzeW5jKCZzeW5jT2JqZWN0LCAiU2VyaWFsTG9nRmlsZTo6cmVhZCIp OworCVN5bmMgc3luYygmc3luY09iamVjdCwgIlNlcmlhbExvZ0ZpbGU6OnJlYWQoMikiKTsKIAlz eW5jLmxvY2soRXhjbHVzaXZlKTsKIAlBU1NFUlQocG9zaXRpb24gPCB3cml0ZVBvaW50IHx8IHdy aXRlUG9pbnQgPT0gMCk7CiAJb2ZmX3QgbG9jID0gbHNlZWsoaGFuZGxlLCBwb3NpdGlvbiwgU0VF S19TRVQpOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL1NlcnZlci5jcHAnCi0t LSBhL3N0b3JhZ2UvZmFsY29uL1NlcnZlci5jcHAJMjAwNy0wOS0yMCAxNTo0NDoyNSArMDAwMAor KysgYi9zdG9yYWdlL2ZhbGNvbi9TZXJ2ZXIuY3BwCTIwMDgtMDctMjQgMDg6NDU6MDMgKzAwMDAK QEAgLTcyLDYgKzcyLDcgQEAgU2VydmVyOjpTZXJ2ZXIoU2VydmVyICpzZXJ2ZXIsIFByb3RvY29s IAogCiAJcHJvdG9jb2wgPSBwcm90bzsKIAl0aHJlYWRzID0gTlVMTDsKKwlzeW5jT2JqZWN0LnNl dE5hbWUoIlNlcnZlcjo6c3luY09iamVjdCIpOwogfQogCiBTZXJ2ZXI6OlNlcnZlcihpbnQgcmVx dWVzdGVkUG9ydCwgY29uc3QgY2hhciAqY29uZmlnRmlsZU5hbWUpCgo9PT0gbW9kaWZpZWQgZmls ZSAnc3RvcmFnZS9mYWxjb24vU2Vzc2lvbk1hbmFnZXIuY3BwJwotLS0gYS9zdG9yYWdlL2ZhbGNv bi9TZXNzaW9uTWFuYWdlci5jcHAJMjAwNy0wOS0yMCAxNTo0NDoyNSArMDAwMAorKysgYi9zdG9y YWdlL2ZhbGNvbi9TZXNzaW9uTWFuYWdlci5jcHAJMjAwOC0wNy0xNSAxODo1NzoyNyArMDAwMApA QCAtNDU0LDcgKzQ1NCw3IEBAIHZvaWQgU2Vzc2lvbk1hbmFnZXI6OnB1cmdlZChTZXNzaW9uICpz ZXMKIAogdm9pZCBTZXNzaW9uTWFuYWdlcjo6cmVtb3ZlU2Vzc2lvbihTZXNzaW9uICpzZXNzaW9u KQogewotCVN5bmMgc3luYyAoJnN5bmNPYmplY3QsICJTZXNzaW9uTWFuYWdlcjo6Y2xvc2UiKTsK KwlTeW5jIHN5bmMgKCZzeW5jT2JqZWN0LCAiU2Vzc2lvbk1hbmFnZXI6OnJlbW92ZVNlc3Npb24i KTsKIAlzeW5jLmxvY2sgKEV4Y2x1c2l2ZSk7CiAKIAkvLyBJZiBpdCdzIGluIGEgcXVldWUsIHRh a2UgaXQgb3V0IG5vdwpAQCAtNDg1LDcgKzQ4NSw3IEBAIExpY2Vuc2VUb2tlbiogU2Vzc2lvbk1h bmFnZXI6OndhaXRGb3JMaWMKIAkvLyBJZiBzb21lYm9keSBlbHNlIGlmIHdhaXRpbmcsIGFuZCB3 ZSdyZSB1bndpbGxpbmcgdG8KIAkvLyB3YWl0LCBqdXN0IHNheSBuby4KIAotCVN5bmMgc3luYyAo JnN5bmNPYmplY3QsICJTZXNzaW9uTWFuYWdlcjo6Z2V0TGljZW5zZVRva2VuIik7CisJU3luYyBz eW5jICgmc3luY09iamVjdCwgIlNlc3Npb25NYW5hZ2VyOjp3YWl0Rm9yTGljZW5zZSIpOwogCXN5 bmMubG9jayAoRXhjbHVzaXZlKTsKIAogCWlmICh3YWl0aW5nLmZpcnN0ICYmICF0YXJnZXQpCkBA IC00OTUsNyArNDk1LDcgQEAgTGljZW5zZVRva2VuKiBTZXNzaW9uTWFuYWdlcjo6d2FpdEZvckxp YwogCiAJaWYgKHRhcmdldCkKIAkJewotCQl0YXJnZXQtPnRocmVhZCA9IFRocmVhZDo6Z2V0VGhy ZWFkKCJTZXNzaW9uTWFuYWdlcjo6Z2V0TGljZW5zZVRva2VuIik7CisJCXRhcmdldC0+dGhyZWFk ID0gVGhyZWFkOjpnZXRUaHJlYWQoIlNlc3Npb25NYW5hZ2VyOjp3YWl0Rm9yTGljZW5zZSIpOwog CQl3YWl0aW5nLmluc2VydCAodGFyZ2V0KTsKIAkJfQogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3Rv cmFnZS9mYWxjb24vU3RhdGVtZW50LmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vU3RhdGVtZW50 LmNwcAkyMDA4LTA3LTA5IDA0OjM4OjAyICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL1N0YXRl bWVudC5jcHAJMjAwOC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtMTQ0LDYgKzE0NCw3IEBAIFN0 YXRlbWVudDo6U3RhdGVtZW50KENvbm5lY3Rpb24gKnBDb25uZWMKIAlzcGVjaWFsID0gZmFsc2U7 CiAJYWN0aXZlID0gZmFsc2U7CiAJbWVtc2V0ICgmc3RhdHMsIDAsIHNpemVvZiAoc3RhdHMpKTsK KwlzeW5jT2JqZWN0LnNldE5hbWUoIlN0YXRlbWVudDo6c3luY09iamVjdCIpOwogfQogCiBTdGF0 ZW1lbnQ6On5TdGF0ZW1lbnQoKQpAQCAtMTk1OSw3ICsxOTYwLDcgQEAgY29uc3QgY2hhciogU3Rh dGVtZW50OjpnZXROYW1lKFN5bnRheCAqIAogdm9pZCBTdGF0ZW1lbnQ6OmNvbm5lY3Rpb25DbG9z ZWQoKQogewogCWFkZFJlZigpOwotCVN5bmMgc3luYyAoJnN5bmNPYmplY3QsICJTdGF0ZW1lbnQ6 OmNsb3NlIik7CisJU3luYyBzeW5jICgmc3luY09iamVjdCwgIlN0YXRlbWVudDo6Y29ubmVjdGlv bkNsb3NlZCIpOwogCXN5bmMubG9jayAoRXhjbHVzaXZlKTsKIAogCS8qKioKQEAgLTI5NjUsMjYg KzI5NjYsNiBAQCB2b2lkIFN0YXRlbWVudDo6Y3JlYXRlVGFibGVTcGFjZShTeW50YXggCiAKIAkJ c3dpdGNoIChjaGlsZC0+dHlwZSkKIAkJCXsKLQkJCS8qKioKLQkJCWNhc2Ugbm9kX2luaXRpYWxf c2l6ZToKLQkJCQl0c0luaXQuaW5pdGlhbF9zaXplID0gY2hpbGQtPmdldENoaWxkKDApLT5nZXRR dWFkKCk7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIG5vZF9leHRlbnRfc2l6ZToKLQkJCQl0c0luaXQu ZXh0ZW50X3NpemUgPSBjaGlsZC0+Z2V0Q2hpbGQoMCktPmdldFF1YWQoKTsKLQkJCQlicmVhazsK LQkJCWNhc2Ugbm9kX2F1dG9leHRlbmRfc2l6ZToKLQkJCQl0c0luaXQuYXV0b2V4dGVuZF9zaXpl ID0gY2hpbGQtPmdldENoaWxkKDApLT5nZXRRdWFkKCk7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIG5v ZF9tYXhfc2l6ZToKLQkJCQl0c0luaXQubWF4U2l6ZSA9IGNoaWxkLT5nZXRDaGlsZCgwKS0+Z2V0 UXVhZCgpOwotCQkJCWJyZWFrOwotCQkJY2FzZSBub2Rfbm9kZWdyb3VwOgotCQkJCXRzSW5pdC5u b2RlZ3JvdXAgPSBjaGlsZC0+Z2V0Q2hpbGQoMCktPmdldE51bWJlcigpOwotCQkJCWJyZWFrOwot CQkJY2FzZSBub2Rfd2FpdDoKLQkJCQl0c0luaXQud2FpdCA9IGNoaWxkLT5nZXRDaGlsZCgwKS0+ Z2V0TnVtYmVyKCk7Ci0JCQkJYnJlYWs7Ci0JCQkqKiovCiAJCQljYXNlIG5vZF9jb21tZW50Ogog CQkJCXRzSW5pdC5jb21tZW50ID0gY2hpbGQtPmdldENoaWxkKDApLT5nZXRTdHJpbmcoKTsKIAkJ CQlicmVhazsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9TdG9yYWdlRGF0YWJh c2UuY3BwJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9TdG9yYWdlRGF0YWJhc2UuY3BwCTIwMDgtMDct MDkgMDQ6Mzg6MDIgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vU3RvcmFnZURhdGFiYXNlLmNw cAkyMDA4LTA3LTI0IDA4OjQ1OjAzICswMDAwCkBAIC0xMDAsNiArMTAwLDggQEAgU3RvcmFnZURh dGFiYXNlOjpTdG9yYWdlRGF0YWJhc2UoU3RvcmFnZQogCQkvL1N5bmNUZXN0IHN5bmNUZXN0Owog CQkvL3N5bmNUZXN0LnRlc3QoKTsKIAkJfQorCXN5bmNPYmplY3Quc2V0TmFtZSgiU3RvcmFnZURh dGFiYXNlOjpzeW5jT2JqZWN0Iik7CisJc3luY1RyYWNlLnNldE5hbWUoIlN0b3JhZ2VEYXRhYmFz ZTo6c3luY1RyYWNlIik7CiB9CiAKIFN0b3JhZ2VEYXRhYmFzZTo6flN0b3JhZ2VEYXRhYmFzZSh2 b2lkKQpAQCAtNzU2LDEwICs3NTgsMTAgQEAgaW50IFN0b3JhZ2VEYXRhYmFzZTo6cmVuYW1lVGFi bGUoU3RvcmFnZQogCQkJKytudW1iZXJJbmRleGVzOwogCQkJfQogCi0JCVN5bmMgc3luY0RETCgm ZGF0YWJhc2UtPnN5bmNTeXNEREwsICJTdG9yYWdlRGF0YWJhc2U6OnJlbmFtZVRhYmxlIik7CisJ CVN5bmMgc3luY0RETCgmZGF0YWJhc2UtPnN5bmNTeXNEREwsICJTdG9yYWdlRGF0YWJhc2U6OnJl bmFtZVRhYmxlKDEpIik7CiAJCXN5bmNEREwubG9jayhFeGNsdXNpdmUpOwogCQkKLQkJU3luYyBz eW5jVGFibGVzKCZkYXRhYmFzZS0+c3luY1RhYmxlcywgIlN0b3JhZ2VEYXRhYmFzZTo6cmVuYW1l VGFibGUiKTsKKwkJU3luYyBzeW5jVGFibGVzKCZkYXRhYmFzZS0+c3luY1RhYmxlcywgIlN0b3Jh Z2VEYXRhYmFzZTo6cmVuYW1lVGFibGUoMikiKTsKIAkJc3luY1RhYmxlcy5sb2NrKEV4Y2x1c2l2 ZSk7CiAJCQogCQlmb3IgKGludCBuID0gZmlyc3RJbmRleDsgbiA8IG51bWJlckluZGV4ZXM7ICsr bikKQEAgLTEyMDYsNyArMTIwOCw3IEBAIHZvaWQgU3RvcmFnZURhdGFiYXNlOjpjbGVhclRyYW5z YWN0aW9ucygKIHsKICNpZmRlZiBUUkFDRV9UUkFOU0FDVElPTlMKIAotCVN5bmMgc3luYygmdHJh Y2VTeW5jT2JqZWN0LCAiU3RvcmFnZURhdGFiYXNlOjpjbGVhclRyYW5zYWN0aW9ucyIpOworCVN5 bmMgc3luYygmc3luY1RyYWNlLCAiU3RvcmFnZURhdGFiYXNlOjpjbGVhclRyYW5zYWN0aW9ucyIp OwogCXN5bmMubG9jayhFeGNsdXNpdmUpOwogCVN0YXRlbWVudCAqc3RhdGVtZW50ID0gbWFzdGVy Q29ubmVjdGlvbi0+Y3JlYXRlU3RhdGVtZW50KCk7CiAJc3RhdGVtZW50LT5leGVjdXRlKHRyYWNl VGFibGUpOwpAQCAtMTIyNCw3ICsxMjI2LDcgQEAgdm9pZCBTdG9yYWdlRGF0YWJhc2U6OnRyYWNl VHJhbnNhY3Rpb24oaQogewogCXRyeQogCQl7Ci0JCVN5bmMgc3luYygmdHJhY2VTeW5jT2JqZWN0 LCAiU3RvcmFnZURhdGFiYXNlOjp0cmFjZVRyYW5zYWN0aW9uIik7CisJCVN5bmMgc3luYygmc3lu Y1RyYWNlLCAiU3RvcmFnZURhdGFiYXNlOjp0cmFjZVRyYW5zYWN0aW9uIik7CiAJCXN5bmMubG9j ayhFeGNsdXNpdmUpOwogCQljaGFyIGJ1ZmZlciBbMTAwMDBdOwogCQlpbnQgbGVuZ3RoID0gc3Ry ZWFtLT5nZXRTZWdtZW50KDAsIHNpemVvZihidWZmZXIpIC0gMSwgYnVmZmVyKTsKCj09PSBtb2Rp ZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9TdG9yYWdlRGF0YWJhc2UuaCcKLS0tIGEvc3RvcmFn ZS9mYWxjb24vU3RvcmFnZURhdGFiYXNlLmgJMjAwOC0wNy0wOSAwNDozODowMiArMDAwMAorKysg Yi9zdG9yYWdlL2ZhbGNvbi9TdG9yYWdlRGF0YWJhc2UuaAkyMDA4LTA3LTI0IDA4OjQ1OjAzICsw MDAwCkBAIC0xMTEsNyArMTExLDcgQEAgcHVibGljOgogCVN0b3JhZ2VEYXRhYmFzZQkJKm5leHQ7 CiAJU3RvcmFnZUhhbmRsZXIJCSpzdG9yYWdlSGFuZGxlcjsKIAlTeW5jT2JqZWN0CQkJc3luY09i amVjdDsKLQlTeW5jT2JqZWN0CQkJdHJhY2VTeW5jT2JqZWN0OworCVN5bmNPYmplY3QJCQlzeW5j VHJhY2U7CiAJVXNlcgkJCQkqdXNlcjsKIAlQcmVwYXJlZFN0YXRlbWVudAkqbG9va3VwSW5kZXhB bGlhczsKIAlQcmVwYXJlZFN0YXRlbWVudAkqaW5zZXJ0VHJhY2U7Cgo9PT0gbW9kaWZpZWQgZmls ZSAnc3RvcmFnZS9mYWxjb24vU3RvcmFnZUhhbmRsZXIuY3BwJwotLS0gYS9zdG9yYWdlL2ZhbGNv bi9TdG9yYWdlSGFuZGxlci5jcHAJMjAwOC0wNy0xMCAxOTowMDoxNCArMDAwMAorKysgYi9zdG9y YWdlL2ZhbGNvbi9TdG9yYWdlSGFuZGxlci5jcHAJMjAwOC0wNy0zMSAwODo1MjozMiArMDAwMApA QCAtMzUsNiArMzUsOCBAQAogI2luY2x1ZGUgIkluZm9UYWJsZS5oIgogI2luY2x1ZGUgIkNtZEdl bi5oIgogI2luY2x1ZGUgIkRiYi5oIgorI2luY2x1ZGUgIkRhdGFiYXNlLmgiCisjaW5jbHVkZSAi VGFibGVTcGFjZU1hbmFnZXIuaCIKIAogI2RlZmluZSBESUNUSU9OQVJZX0FDQ09VTlQJCSJteXNx bCIKICNkZWZpbmUgRElDVElPTkFSWV9QVwkJCSJteXNxbCIKQEAgLTUxLDcgKzUzLDYgQEAgc3Ry dWN0IFN0b3JhZ2VTYXZlcG9pbnQgewogCWludAkJCQkJc2F2ZXBvaW50OwogCX07CiAKLWV4dGVy biB1aW50NjQJCWZhbGNvbl9pbml0aWFsX2FsbG9jYXRpb247CiAKIHN0YXRpYyBjb25zdCBjaGFy ICpjcmVhdGVUZW1wU3BhY2UgPSAidXBncmFkZSB0YWJsZXNwYWNlICIgVEVNUE9SQVJZX1RBQkxF U1BBQ0UgIiBmaWxlbmFtZSAnIiBGQUxDT05fVEVNUE9SQVJZICInIjsKIC8vc3RhdGljIGNvbnN0 IGNoYXIgKmRyb3BUZW1wU3BhY2UgPSAiZHJvcCB0YWJsZXNwYWNlICIgVEVNUE9SQVJZX1RBQkxF U1BBQ0U7CkBAIC0xMjIsNiArMTIzLDkgQEAgU3RvcmFnZUhhbmRsZXI6OlN0b3JhZ2VIYW5kbGVy KGludCBsb2NrUwogCWRhdGFiYXNlTGlzdCA9IE5VTEw7CiAJZGVmYXVsdERhdGFiYXNlID0gTlVM TDsKIAlpbml0aWFsaXplZCA9IGZhbHNlOworCXN5bmNPYmplY3Quc2V0TmFtZSgiU3RvcmFnZUhh bmRsZXI6OnN5bmNPYmplY3QiKTsKKwloYXNoU3luY09iamVjdC5zZXROYW1lKCJTdG9yYWdlSGFu ZGxlcjo6aGFzaFN5bmNPYmplY3QiKTsKKwlkaWN0aW9uYXJ5U3luY09iamVjdC5zZXROYW1lKCJT dG9yYWdlSGFuZGxlcjo6ZGljdGlvbmFyeVN5bmNPYmplY3QiKTsKIH0KIAogU3RvcmFnZUhhbmRs ZXI6On5TdG9yYWdlSGFuZGxlcih2b2lkKQpAQCAtMTkxLDcgKzE5NSw3IEBAIHZvaWQgU3RvcmFn ZUhhbmRsZXI6OmRhdGFiYXNlRHJvcHBlZChTdG8KIAkJCiAJaWYgKHN0b3JhZ2VEYXRhYmFzZSkK IAkJewotCQlTeW5jIHN5bmNIYXNoKCZoYXNoU3luY09iamVjdCwgIlN0b3JhZ2VIYW5kbGVyOjpk cm9wRGF0YWJhc2UiKTsKKwkJU3luYyBzeW5jSGFzaCgmaGFzaFN5bmNPYmplY3QsICJTdG9yYWdl SGFuZGxlcjo6ZGF0YWJhc2VEcm9wcGVkKDEpIik7CiAJCWludCBzbG90ID0gSlN0cmluZzo6aGFz aChzdG9yYWdlRGF0YWJhc2UtPm5hbWUsIGRhdGFiYXNlSGFzaFNpemUpOwogCQlzeW5jSGFzaC5s b2NrKEV4Y2x1c2l2ZSk7CiAJCVN0b3JhZ2VEYXRhYmFzZSAqKnB0cjsKQEAgLTIxNCw3ICsyMTgs NyBAQCB2b2lkIFN0b3JhZ2VIYW5kbGVyOjpkYXRhYmFzZURyb3BwZWQoU3RvCiAJCXN0b3JhZ2VE YXRhYmFzZS0+cmVsZWFzZSgpOwogCQl9CiAKLQlTeW5jIHN5bmMoJnN5bmNPYmplY3QsICJTdG9y YWdlSGFuZGxlcjo6fmRyb3BEYXRhYmFzZSIpOworCVN5bmMgc3luYygmc3luY09iamVjdCwgIlN0 b3JhZ2VIYW5kbGVyOjpkYXRhYmFzZURyb3BwZWQoMikiKTsKIAlzeW5jLmxvY2soRXhjbHVzaXZl KTsKIAogCWZvciAoaW50IG4gPSAwOyBuIDwgY29ubmVjdGlvbkhhc2hTaXplOyArK24pCkBAIC00 MjQsNyArNDI4LDcgQEAgU3RvcmFnZURhdGFiYXNlKiBTdG9yYWdlSGFuZGxlcjo6Z2V0U3Rvcgog CiB2b2lkIFN0b3JhZ2VIYW5kbGVyOjpjbG9zZURhdGFiYXNlKGNvbnN0IGNoYXIqIHBhdGgpCiB7 Ci0JU3luYyBzeW5jKCZoYXNoU3luY09iamVjdCwgIlN0b3JhZ2VIYW5kbGVyOjpnZXRTdG9yYWdl RGF0YWJhc2UiKTsKKwlTeW5jIHN5bmMoJmhhc2hTeW5jT2JqZWN0LCAiU3RvcmFnZUhhbmRsZXI6 OmNsb3NlRGF0YWJhc2UiKTsKIAlpbnQgc2xvdCA9IEpTdHJpbmc6Omhhc2gocGF0aCwgZGF0YWJh c2VIYXNoU2l6ZSk7CiAJc3luYy5sb2NrKEV4Y2x1c2l2ZSk7CiAJCkBAIC00NjQsNDMgKzQ2OCwz MyBAQCBDb25uZWN0aW9uKiBTdG9yYWdlSGFuZGxlcjo6Z2V0RGljdGlvbmFyCiAJcmV0dXJuIGRp Y3Rpb25hcnlDb25uZWN0aW9uOwogfQogCi1KU3RyaW5nIFN0b3JhZ2VIYW5kbGVyOjpnZW5DcmVh dGVUYWJsZVNwYWNlKGNvbnN0IGNoYXIqIHRhYmxlU3BhY2VOYW1lLCBjb25zdCBjaGFyKiBmaWxl bmFtZSwKLQkJCQkJCQkJCQkJCXVuc2lnbmVkIGxvbmcgbG9uZyBpbml0aWFsU2l6ZSwKLQkJCQkJ CQkJCQkJCXVuc2lnbmVkIGxvbmcgbG9uZyBleHRlbnRTaXplLAotCQkJCQkJCQkJCQkJdW5zaWdu ZWQgbG9uZyBsb25nIGF1dG9leHRlbmRTaXplLAotCQkJCQkJCQkJCQkJdW5zaWduZWQgbG9uZyBs b25nIG1heFNpemUsCi0JCQkJCQkJCQkJCQlpbnQgbm9kZWdyb3VwLCBib29sIHdhaXQsIGNvbnN0 IGNoYXIqIGNvbW1lbnQpCitKU3RyaW5nIFN0b3JhZ2VIYW5kbGVyOjpnZW5DcmVhdGVUYWJsZVNw YWNlKGNvbnN0IGNoYXIqIHRhYmxlU3BhY2VOYW1lLCBjb25zdCBjaGFyKiBmaWxlbmFtZSwgY29u c3QgY2hhciogY29tbWVudCkKIHsKIAlDbWRHZW4gZ2VuOwotCS8qKioKLQlnZW4uZ2VuKCJjcmVh dGUgdGFibGVzcGFjZSBcIiVzXCIgZmlsZW5hbWUgJyVzJyBpbml0aWFsX3NpemUgIiBJNjRGT1JN QVQgIiBleHRlbnRfc2l6ZSAiIEk2NEZPUk1BVCAKLQkJCQkiIGF1dG9leHRlbmRfc2l6ZSAiIEk2 NEZPUk1BVCAiIG1heF9zaXplICIgSTY0Rk9STUFUICIgbm9kZWdyb3VwICVkIHdhaXQgJWQgY29t bWVudCAnJXMnIiwKLQkJCQl0YWJsZVNwYWNlTmFtZSwgZmlsZW5hbWUsIGluaXRpYWxTaXplLCBl eHRlbnRTaXplLCBhdXRvZXh0ZW5kU2l6ZSwgbWF4U2l6ZSwgbm9kZWdyb3VwLCAoaW50KXdhaXQs IGNvbW1lbnQgPyBjb21tZW50IDogIiIpOwotCSoqKi8KIAlnZW4uZ2VuKCJjcmVhdGUgdGFibGVz cGFjZSBcIiVzXCIgZmlsZW5hbWUgJyVzJyBjb21tZW50ICclcyciLCB0YWJsZVNwYWNlTmFtZSwg ZmlsZW5hbWUsIGNvbW1lbnQgPyBjb21tZW50IDogIiIpOwogCXJldHVybiAoZ2VuLmdldFN0cmlu ZygpKTsKIH0KIAotaW50IFN0b3JhZ2VIYW5kbGVyOjpjcmVhdGVUYWJsZXNwYWNlKGNvbnN0IGNo YXIqIHRhYmxlU3BhY2VOYW1lLCBjb25zdCBjaGFyKiBmaWxlbmFtZSwKLQkJCQkJCQkJCQl1bnNp Z25lZCBsb25nIGxvbmcgaW5pdGlhbFNpemUsCi0JCQkJCQkJCQkJdW5zaWduZWQgbG9uZyBsb25n IGV4dGVudFNpemUsCi0JCQkJCQkJCQkJdW5zaWduZWQgbG9uZyBsb25nIGF1dG9leHRlbmRTaXpl LAotCQkJCQkJCQkJCXVuc2lnbmVkIGxvbmcgbG9uZyBtYXhTaXplLAotCQkJCQkJCQkJCWludCBu b2RlZ3JvdXAsIGJvb2wgd2FpdCwgY29uc3QgY2hhciogY29tbWVudCkKK2ludCBTdG9yYWdlSGFu ZGxlcjo6Y3JlYXRlVGFibGVzcGFjZShjb25zdCBjaGFyKiB0YWJsZVNwYWNlTmFtZSwgY29uc3Qg Y2hhciogZmlsZW5hbWUsIGNvbnN0IGNoYXIqIGNvbW1lbnQpCiB7CiAJaWYgKCFkZWZhdWx0RGF0 YWJhc2UpCiAJCWluaXRpYWxpemUoKTsKIAogCWlmICghZGljdGlvbmFyeUNvbm5lY3Rpb24pCiAJ CXJldHVybiBTdG9yYWdlRXJyb3JUYWJsZXNTcGFjZU9wZXJhdGlvbkZhaWxlZDsKLQkJCi0JLy9T dG9yYWdlRGF0YWJhc2UgKnN0b3JhZ2VEYXRhYmFzZSA9IE5VTEw7CisKIAlKU3RyaW5nIHRhYmxl U3BhY2UgPSBKU3RyaW5nOjp1cGNhc2UodGFibGVTcGFjZU5hbWUpOwotCQorCisJVGFibGVTcGFj ZU1hbmFnZXIgKnRhYmxlU3BhY2VNYW5hZ2VyID0gCisJCWRpY3Rpb25hcnlDb25uZWN0aW9uLT5k YXRhYmFzZS0+dGFibGVTcGFjZU1hbmFnZXI7CisKKwlpZiAoIXRhYmxlU3BhY2VNYW5hZ2VyLT53 YWl0Rm9yUGVuZGluZ0Ryb3AodGFibGVTcGFjZU5hbWUsIDEwKSkKKwkJLy8gZmlsZSBzdGlsbCBl eGlzdHMgYWZ0ZXIgd2FpdGluZyBmb3IgMTAgc2Vjb25kcworCQlyZXR1cm4gIFN0b3JhZ2VFcnJv clRhYmxlU3BhY2VFeGlzdDsKKwogCXRyeQogCQl7Ci0JCUpTdHJpbmcgY21kID0gZ2VuQ3JlYXRl VGFibGVTcGFjZSh0YWJsZVNwYWNlTmFtZSwgZmlsZW5hbWUsIGluaXRpYWxTaXplLCBleHRlbnRT aXplLAotCQkJCQkJCQkJCQlhdXRvZXh0ZW5kU2l6ZSwgbWF4U2l6ZSwgbm9kZWdyb3VwLCB3YWl0 LCBjb21tZW50KTsKKwkJSlN0cmluZyBjbWQgPSBnZW5DcmVhdGVUYWJsZVNwYWNlKHRhYmxlU3Bh Y2VOYW1lLCBmaWxlbmFtZSwgY29tbWVudCk7CiAJCVN5bmMgc3luYygmZGljdGlvbmFyeVN5bmNP YmplY3QsICJTdG9yYWdlSGFuZGxlcjo6Y3JlYXRlVGFibGVzcGFjZSIpOwogCQlzeW5jLmxvY2so RXhjbHVzaXZlKTsKIAkJU3RhdGVtZW50ICpzdGF0ZW1lbnQgPSBkaWN0aW9uYXJ5Q29ubmVjdGlv bi0+Y3JlYXRlU3RhdGVtZW50KCk7CkBAIC01NDMsNyArNTM3LDcgQEAgaW50IFN0b3JhZ2VIYW5k bGVyOjpkZWxldGVUYWJsZXNwYWNlKGNvbgogCQl7CiAJCUNtZEdlbiBnZW47CiAJCWdlbi5nZW4o ImRyb3AgdGFibGVzcGFjZSBcIiVzXCIiLCB0YWJsZVNwYWNlTmFtZSk7Ci0JCVN5bmMgc3luYygm ZGljdGlvbmFyeVN5bmNPYmplY3QsICJTdG9yYWdlSGFuZGxlcjo6Y3JlYXRlVGFibGVzcGFjZSIp OworCQlTeW5jIHN5bmMoJmRpY3Rpb25hcnlTeW5jT2JqZWN0LCAiU3RvcmFnZUhhbmRsZXI6OmRl bGV0ZVRhYmxlc3BhY2UiKTsKIAkJc3luYy5sb2NrKEV4Y2x1c2l2ZSk7CiAJCVN0YXRlbWVudCAq c3RhdGVtZW50ID0gZGljdGlvbmFyeUNvbm5lY3Rpb24tPmNyZWF0ZVN0YXRlbWVudCgpOwogCQlz dGF0ZW1lbnQtPmV4ZWN1dGVVcGRhdGUoZ2VuLmdldFN0cmluZygpKTsKQEAgLTY2NCw3ICs2NTgs NyBAQCBTdG9yYWdlVGFibGVTaGFyZSogU3RvcmFnZUhhbmRsZXI6OmNyZWF0CiB2b2lkIFN0b3Jh Z2VIYW5kbGVyOjphZGRUYWJsZShTdG9yYWdlVGFibGVTaGFyZSogdGFibGUpCiB7CiAJaW50IHNs b3QgPSBKU3RyaW5nOjpoYXNoKHRhYmxlLT5wYXRoTmFtZSwgdGFibGVIYXNoU2l6ZSk7Ci0JU3lu YyBzeW5jKCZoYXNoU3luY09iamVjdCwgIlN0b3JhZ2VIYW5kbGVyOjphZGQiKTsKKwlTeW5jIHN5 bmMoJmhhc2hTeW5jT2JqZWN0LCAiU3RvcmFnZUhhbmRsZXI6OmFkZFRhYmxlIik7CiAJc3luYy5s b2NrKEV4Y2x1c2l2ZSk7CiAJdGFibGUtPmNvbGxpc2lvbiA9IHRhYmxlc1tzbG90XTsKIAl0YWJs ZXNbc2xvdF0gPSB0YWJsZTsKQEAgLTY3NCw3ICs2NjgsNyBAQCB2b2lkIFN0b3JhZ2VIYW5kbGVy OjphZGRUYWJsZShTdG9yYWdlVGFiCiAKIHZvaWQgU3RvcmFnZUhhbmRsZXI6OnJlbW92ZVRhYmxl KFN0b3JhZ2VUYWJsZVNoYXJlKiB0YWJsZSkKIHsKLQlTeW5jIHN5bmMoJmhhc2hTeW5jT2JqZWN0 LCAiU3RvcmFnZUhhbmRsZXI6OmRlbGV0ZVRhYmxlIik7CisJU3luYyBzeW5jKCZoYXNoU3luY09i amVjdCwgIlN0b3JhZ2VIYW5kbGVyOjpyZW1vdmVUYWJsZSIpOwogCXN5bmMubG9jayhFeGNsdXNp dmUpOwogCWludCBzbG90ID0gSlN0cmluZzo6aGFzaCh0YWJsZS0+cGF0aE5hbWUsIHRhYmxlSGFz aFNpemUpOwogCQpAQCAtNjg4LDcgKzY4Miw3IEBAIHZvaWQgU3RvcmFnZUhhbmRsZXI6OnJlbW92 ZVRhYmxlKFN0b3JhZ2UKIAogU3RvcmFnZUNvbm5lY3Rpb24qIFN0b3JhZ2VIYW5kbGVyOjpnZXRT dG9yYWdlQ29ubmVjdGlvbihTdG9yYWdlVGFibGVTaGFyZSogdGFibGVTaGFyZSwgVEhEKiBteVNx bFRocmVhZCwgaW50IG15U3FsVGhkSWQsIE9wZW5PcHRpb24gY3JlYXRlRmxhZykKIHsKLQlTeW5j IHN5bmMoJnN5bmNPYmplY3QsICJTdG9yYWdlQ29ubmVjdGlvbjo6Z2V0U3RvcmFnZUNvbm5lY3Rp b24iKTsKKwlTeW5jIHN5bmMoJnN5bmNPYmplY3QsICJTdG9yYWdlSGFuZGxlcjo6Z2V0U3RvcmFn ZUNvbm5lY3Rpb24iKTsKIAkKIAlpZiAoIWRlZmF1bHREYXRhYmFzZSkKIAkJaW5pdGlhbGl6ZSgp OwpAQCAtOTIxLDcgKzkxNSw3IEBAIHZvaWQgU3RvcmFnZUhhbmRsZXI6OmdldFRyYW5zYWN0aW9u SW5mbygKIAogdm9pZCBTdG9yYWdlSGFuZGxlcjo6Z2V0U2VyaWFsTG9nSW5mbyhJbmZvVGFibGUq IGluZm9UYWJsZSkKIHsKLQlTeW5jIHN5bmMoJmhhc2hTeW5jT2JqZWN0LCAiU3RvcmFnZUhhbmRs ZXI6OmdldFRyYW5zYWN0aW9uSW5mbyIpOworCVN5bmMgc3luYygmaGFzaFN5bmNPYmplY3QsICJT dG9yYWdlSGFuZGxlcjo6Z2V0U2VyaWFsTG9nSW5mbyIpOwogCXN5bmMubG9jayhTaGFyZWQpOwog CQogCWZvciAoU3RvcmFnZURhdGFiYXNlICpzdG9yYWdlRGF0YWJhc2UgPSBkYXRhYmFzZUxpc3Q7 IHN0b3JhZ2VEYXRhYmFzZTsgc3RvcmFnZURhdGFiYXNlID0gc3RvcmFnZURhdGFiYXNlLT5uZXh0 KQpAQCAtOTY1LDcgKzk1OSw3IEBAIHZvaWQgU3RvcmFnZUhhbmRsZXI6OmluaXRpYWxpemUodm9p ZCkKIAlpZiAoaW5pdGlhbGl6ZWQpCiAJCXJldHVybjsKIAkKLQlTeW5jIHN5bmMoJnN5bmNPYmpl Y3QsICJTdG9yYWdlQ29ubmVjdGlvbjo6aW5pdGlhbGl6ZSIpOworCVN5bmMgc3luYygmc3luY09i amVjdCwgIlN0b3JhZ2VIYW5kbGVyOjppbml0aWFsaXplIik7CiAJc3luYy5sb2NrKEV4Y2x1c2l2 ZSk7CiAJCiAJaWYgKGluaXRpYWxpemVkKQpAQCAtOTk4LDcgKzk5Miw3IEBAIHZvaWQgU3RvcmFn ZUhhbmRsZXI6OmluaXRpYWxpemUodm9pZCkKIAkJSU86OmRlbGV0ZUZpbGUoRkFMQ09OX1RFTVBP UkFSWSk7CiAJCWRpY3Rpb25hcnlDb25uZWN0aW9uID0gZGVmYXVsdERhdGFiYXNlLT5nZXRPcGVu Q29ubmVjdGlvbigpOwogCQlTdGF0ZW1lbnQgKnN0YXRlbWVudCA9IGRpY3Rpb25hcnlDb25uZWN0 aW9uLT5jcmVhdGVTdGF0ZW1lbnQoKTsKLQkJSlN0cmluZyBjcmVhdGVUYWJsZVNwYWNlID0gZ2Vu Q3JlYXRlVGFibGVTcGFjZShERUZBVUxUX1RBQkxFU1BBQ0UsIEZBTENPTl9VU0VSLCBmYWxjb25f aW5pdGlhbF9hbGxvY2F0aW9uKTsKKwkJSlN0cmluZyBjcmVhdGVUYWJsZVNwYWNlID0gZ2VuQ3Jl YXRlVGFibGVTcGFjZShERUZBVUxUX1RBQkxFU1BBQ0UsIEZBTENPTl9VU0VSKTsKIAkJc3RhdGVt ZW50LT5leGVjdXRlVXBkYXRlKGNyZWF0ZVRhYmxlU3BhY2UpOwogCQkJCiAJCWZvciAoY29uc3Qg Y2hhciAqKmRkbCA9IGZhbGNvblNjaGVtYTsgKmRkbDsgKytkZGwpCkBAIC0xMDQ3LDY3ICsxMDQx LDYgQEAgdm9pZCBTdG9yYWdlSGFuZGxlcjo6ZHJvcFRlbXBUYWJsZXModm9pZAogCXN0YXRlbWVu dC0+Y2xvc2UoKTsKIH0KIAotdm9pZCBTdG9yYWdlSGFuZGxlcjo6Z2V0VGFibGVzSW5mbyhJbmZv VGFibGUqIGluZm9UYWJsZSkKLXsKLQlpZiAoIWRlZmF1bHREYXRhYmFzZSkKLQkJaW5pdGlhbGl6 ZSgpOwotCQotCWlmICghZGljdGlvbmFyeUNvbm5lY3Rpb24pCi0JCXJldHVybjsKLQkJCi0JdHJ5 Ci0JCXsKLQkJUFN0YXRlbWVudCBzdGF0ZW1lbnQgPSBkaWN0aW9uYXJ5Q29ubmVjdGlvbi0+cHJl cGFyZVN0YXRlbWVudCgKLQkJCSJzZWxlY3Qgc2NoZW1hLHRhYmxlbmFtZSx0YWJsZXNwYWNlIGZy b20gc3lzdGVtLnRhYmxlcyB3aGVyZSB0YWJsZXNwYWNlIDw+ICcnIik7Ci0JCVJTZXQgcmVzdWx0 U2V0ID0gc3RhdGVtZW50LT5leGVjdXRlUXVlcnkoKTsKLQkJCi0JCXdoaWxlIChyZXN1bHRTZXQt Pm5leHQoKSkKLQkJCXsKLQotCQkJLy8gUGFyc2UgdGFibGUgYW5kIHBhcnRpdGlvbiBuYW1lCi0J CQkKLQkJCWNvbnN0IGNoYXIgKnBTdHIgPSByZXN1bHRTZXQtPmdldFN0cmluZygyKTsKLQkJCWNo YXIgKnBUYWJsZSA9IE5VTEw7Ci0JCQljaGFyICpwUGFydCA9IE5VTEw7Ci0JCQkKLQkJCWlmIChw U3RyKQotCQkJCXsKLQkJCQljb25zdCBpbnQgbWF4X2J1ZiA9IDEwMjQ7Ci0JCQkJY2hhciBidWZm ZXJbbWF4X2J1ZisxXTsKLQkJCQkKLQkJCQlwVGFibGUgPSBidWZmZXI7Ci0JCQkJKnBUYWJsZSA9 IDA7Ci0JCQkJc3RybmNweShidWZmZXIsIHBTdHIsIChzaXplX3QpbWF4X2J1Zik7Ci0JCQkJCi0J CQkJY2hhciAqcEJ1ZiA9IHN0cmNocihidWZmZXIsICcjJyk7Ci0JCQkJCi0JCQkJaWYgKHBCdWYp Ci0JCQkJCXsKLQkJCQkJKnBCdWYgPSAwOwotCQkJCQlpZiAoKHBQYXJ0ID0gc3RycmNocigrK3BC dWYsICcjJykpICE9IE5VTEwpCi0JCQkJCQlwUGFydCsrOwotCQkJCQl9Ci0JCQkJfQotCQkJCQkK LQkJCWluZm9UYWJsZS0+cHV0U3RyaW5nKDAsIHJlc3VsdFNldC0+Z2V0U3RyaW5nKDEpKTsJLy8g ZGF0YWJhc2UKLQkJCWluZm9UYWJsZS0+cHV0U3RyaW5nKDEsIChwVGFibGUgPyBwVGFibGUgOiBw U3RyKSk7CS8vIHRhYmxlCi0JCQlpbmZvVGFibGUtPnB1dFN0cmluZygyLCAocFBhcnQgPyBwUGFy dCA6ICIiKSk7CQkvLyBwYXJ0aXRpb24KLQkJCWluZm9UYWJsZS0+cHV0U3RyaW5nKDMsIHJlc3Vs dFNldC0+Z2V0U3RyaW5nKDMpKTsJLy8gdGFibGVzcGFjZQotCQkJaW5mb1RhYmxlLT5wdXRTdHJp bmcoNCwgcmVzdWx0U2V0LT5nZXRTdHJpbmcoMikpOwkvLyBpbnRlcm5hbCBuYW1lCi0JCQotCQkJ Ly9mb3IgKGludCBuID0gMDsgbiA8IDM7ICsrbikKLQkJCS8vCWluZm9UYWJsZS0+cHV0U3RyaW5n KG4sIHJlc3VsdFNldC0+Z2V0U3RyaW5nKG4gKyAxKSk7Ci0JCQkKLQkJCWluZm9UYWJsZS0+cHV0 UmVjb3JkKCk7Ci0JCQl9Ci0JCQotCQlkaWN0aW9uYXJ5Q29ubmVjdGlvbi0+Y29tbWl0KCk7Ci0J CX0KLQljYXRjaCguLi4pCi0JCXsKLQkJfQotfQotCiB2b2lkIFN0b3JhZ2VIYW5kbGVyOjpzZXRS ZWNvcmRNZW1vcnlNYXgodWludDY0IHZhbHVlKQogewogCWlmIChkaWN0aW9uYXJ5Q29ubmVjdGlv bikKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9TdG9yYWdlSGFuZGxlci5oJwot LS0gYS9zdG9yYWdlL2ZhbGNvbi9TdG9yYWdlSGFuZGxlci5oCTIwMDgtMDQtMDUgMjI6MDk6MTcg KzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vU3RvcmFnZUhhbmRsZXIuaAkyMDA4LTA3LTI5IDEw OjQ1OjM5ICswMDAwCkBAIC04NSwxMiArODUsNyBAQCBwdWJsaWM6CiAJdmlydHVhbCBpbnQJCQly b2xsYmFja0J5WGlkKGludCB4aWRMZW5ndGgsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIHhpcyk7CiAK IAl2aXJ0dWFsIENvbm5lY3Rpb24qCWdldERpY3Rpb25hcnlDb25uZWN0aW9uKHZvaWQpOwotCXZp cnR1YWwgaW50CQkJY3JlYXRlVGFibGVzcGFjZShjb25zdCBjaGFyKiB0YWJsZVNwYWNlTmFtZSwg Y29uc3QgY2hhciogZmlsZW5hbWUsCi0JCQkJCQkJCQkJCXVuc2lnbmVkIGxvbmcgbG9uZyBpbml0 aWFsU2l6ZSA9IDAsCi0JCQkJCQkJCQkJCXVuc2lnbmVkIGxvbmcgbG9uZyBleHRlbnRTaXplID0g MCwKLQkJCQkJCQkJCQkJdW5zaWduZWQgbG9uZyBsb25nIGF1dG9leHRlbmRTaXplID0gMCwKLQkJ CQkJCQkJCQkJdW5zaWduZWQgbG9uZyBsb25nIG1heFNpemUgPSAwLAotCQkJCQkJCQkJCQlpbnQg bm9kZWdyb3VwID0gMCwgYm9vbCB3YWl0ID0gZmFsc2UsIGNvbnN0IGNoYXIqIGNvbW1lbnQgPSBO VUxMKTsKKwl2aXJ0dWFsIGludAkJCWNyZWF0ZVRhYmxlc3BhY2UoY29uc3QgY2hhciogdGFibGVT cGFjZU5hbWUsIGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBjb25zdCBjaGFyKiBjb21tZW50ID0gTlVM TCk7CiAJdmlydHVhbCBpbnQJCQlkZWxldGVUYWJsZXNwYWNlKGNvbnN0IGNoYXIqIHRhYmxlU3Bh Y2VOYW1lKTsKIAogCXZpcnR1YWwgU3RvcmFnZVRhYmxlU2hhcmUqIGZpbmRUYWJsZShjb25zdCBj aGFyKiBwYXRobmFtZSk7CkBAIC0xMDgsNyArMTAzLDYgQEAgcHVibGljOgogCXZpcnR1YWwgdm9p ZAkJZ2V0VHJhbnNhY3Rpb25TdW1tYXJ5SW5mbyhJbmZvVGFibGUqIGluZm9UYWJsZSk7CiAJdmly dHVhbCB2b2lkCQlnZXRUYWJsZVNwYWNlSW5mbyhJbmZvVGFibGUqIGluZm9UYWJsZSk7CiAJdmly dHVhbCB2b2lkCQlnZXRUYWJsZVNwYWNlRmlsZXNJbmZvKEluZm9UYWJsZSogaW5mb1RhYmxlKTsK LQl2aXJ0dWFsIHZvaWQJCWdldFRhYmxlc0luZm8oSW5mb1RhYmxlKiBpbmZvVGFibGUpOwogCiAJ dmlydHVhbCB2b2lkCQlzZXRJbmRleENoaWxsVGhyZXNob2xkKHVpbnQgdmFsdWUpOwogCXZpcnR1 YWwgdm9pZAkJc2V0UmVjb3JkQ2hpbGxUaHJlc2hvbGQodWludCB2YWx1ZSk7CkBAIC0xMzQsMTIg KzEyOCw3IEBAIHB1YmxpYzoKIAl2b2lkCQkJCWluaXRpYWxpemUodm9pZCk7CiAJdm9pZAkJCQlk cm9wVGVtcFRhYmxlcyh2b2lkKTsKIAl2b2lkCQkJCWNsZWFuRmlsZU5hbWUoY29uc3QgY2hhciog cGF0aG5hbWUsIGNoYXIqIGZpbGVuYW1lLCBpbnQgZmlsZW5hbWVMZW5ndGgpOwotCUpTdHJpbmcJ CQkJZ2VuQ3JlYXRlVGFibGVTcGFjZShjb25zdCBjaGFyKiB0YWJsZVNwYWNlTmFtZSwgY29uc3Qg Y2hhciogZmlsZW5hbWUsCi0JCQkJCQkJCQkJCXVuc2lnbmVkIGxvbmcgbG9uZyBpbml0aWFsU2l6 ZSA9IDAsCi0JCQkJCQkJCQkJCXVuc2lnbmVkIGxvbmcgbG9uZyBleHRlbnRTaXplID0gMCwKLQkJ CQkJCQkJCQkJdW5zaWduZWQgbG9uZyBsb25nIGF1dG9leHRlbmRTaXplID0gMCwKLQkJCQkJCQkJ CQkJdW5zaWduZWQgbG9uZyBsb25nIG1heFNpemUgPSAwLAotCQkJCQkJCQkJCQlpbnQgbm9kZWdy b3VwID0gMCwgYm9vbCB3YWl0ID0gZmFsc2UsIGNvbnN0IGNoYXIqIGNvbW1lbnQgPSBOVUxMKTsK KwlKU3RyaW5nCQkJCWdlbkNyZWF0ZVRhYmxlU3BhY2UoY29uc3QgY2hhciogdGFibGVTcGFjZU5h bWUsIGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBjb25zdCBjaGFyKiBjb21tZW50ID0gTlVMTCk7CiAJ CiAJU3RvcmFnZUNvbm5lY3Rpb24JKmNvbm5lY3Rpb25zW2Nvbm5lY3Rpb25IYXNoU2l6ZV07CiAJ U3RvcmFnZURhdGFiYXNlCQkqZGVmYXVsdERhdGFiYXNlOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0 b3JhZ2UvZmFsY29uL1N0b3JhZ2VUYWJsZVNoYXJlLmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxjb24v U3RvcmFnZVRhYmxlU2hhcmUuY3BwCTIwMDgtMDctMTQgMDU6Mjc6NTcgKzAwMDAKKysrIGIvc3Rv cmFnZS9mYWxjb24vU3RvcmFnZVRhYmxlU2hhcmUuY3BwCTIwMDgtMDctMTUgMTg6NTc6MjcgKzAw MDAKQEAgLTQ2Myw3ICs0NjMsNyBAQCB2b2lkIFN0b3JhZ2VUYWJsZVNoYXJlOjpyZWdpc3RlclRh YmxlKHZvCiAJCiAJdHJ5CiAJCXsKLQkJU3luYyBzeW5jKCZzdG9yYWdlSGFuZGxlci0+ZGljdGlv bmFyeVN5bmNPYmplY3QsICJTdG9yYWdlVGFibGVTaGFyZTo6c2F2ZSIpOworCQlTeW5jIHN5bmMo JnN0b3JhZ2VIYW5kbGVyLT5kaWN0aW9uYXJ5U3luY09iamVjdCwgIlN0b3JhZ2VUYWJsZVNoYXJl OjpyZWdpc3RlclRhYmxlIik7CiAJCXN5bmMubG9jayhFeGNsdXNpdmUpOwogCQljb25uZWN0aW9u ID0gc3RvcmFnZUhhbmRsZXItPmdldERpY3Rpb25hcnlDb25uZWN0aW9uKCk7CiAJCXN0YXRlbWVu dCA9IGNvbm5lY3Rpb24tPnByZXBhcmVTdGF0ZW1lbnQoCkBAIC00OTQsNyArNDk0LDcgQEAgdm9p ZCBTdG9yYWdlVGFibGVTaGFyZTo6cmVnaXN0ZXJUYWJsZSh2bwogCiB2b2lkIFN0b3JhZ2VUYWJs ZVNoYXJlOjp1blJlZ2lzdGVyVGFibGUodm9pZCkKIHsKLQlTeW5jIHN5bmMoJnN0b3JhZ2VIYW5k bGVyLT5kaWN0aW9uYXJ5U3luY09iamVjdCwgIlN0b3JhZ2VUYWJsZVNoYXJlOjp1bnNhdmUiKTsK KwlTeW5jIHN5bmMoJnN0b3JhZ2VIYW5kbGVyLT5kaWN0aW9uYXJ5U3luY09iamVjdCwgIlN0b3Jh Z2VUYWJsZVNoYXJlOjp1blJlZ2lzdGVyVGFibGUiKTsKIAlzeW5jLmxvY2soRXhjbHVzaXZlKTsK IAlDb25uZWN0aW9uICpjb25uZWN0aW9uID0gc3RvcmFnZUhhbmRsZXItPmdldERpY3Rpb25hcnlD b25uZWN0aW9uKCk7CiAJUHJlcGFyZWRTdGF0ZW1lbnQgKnN0YXRlbWVudCA9IGNvbm5lY3Rpb24t PnByZXBhcmVTdGF0ZW1lbnQoCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vU3lt Ym9sTWFuYWdlci5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL1N5bWJvbE1hbmFnZXIuY3BwCTIw MDgtMDYtMDYgMTI6MzQ6MTkgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vU3ltYm9sTWFuYWdl ci5jcHAJMjAwOC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtNTUsNiArNTUsNyBAQCBTeW1ib2xN YW5hZ2VyOjpTeW1ib2xNYW5hZ2VyKCkKIAlzZWN0aW9ucy0+bmV4dCA9IE5VTEw7CiAJbmV4dCA9 IHNlY3Rpb25zLT5zcGFjZTsKIAltZW1zZXQgKGhhc2hUYWJsZSwgMCwgc2l6ZW9mIChoYXNoVGFi bGUpKTsKKwlzeW5jT2JqZWN0LnNldE5hbWUoIlN5bWJvbE1hbmFnZXI6OnN5bmNPYmplY3QiKTsK IH0KIAogU3ltYm9sTWFuYWdlcjo6flN5bWJvbE1hbmFnZXIoKQpAQCAtOTgsNyArOTksNyBAQCBj b25zdCBjaGFyKiBTeW1ib2xNYW5hZ2VyOjpnZXRTeW1ib2woY29uCiAJCWlmIChzZWN0aW9uLT5z cGFjZSA8PSBzdHJpbmcgJiYgc3RyaW5nIDwgc2VjdGlvbi0+c3BhY2UgKyBzaXplb2YgKHNlY3Rp b24tPnNwYWNlKSkKIAkJCXJldHVybiBzdHJpbmc7CiAKLQlTeW5jIHN5bmMgKCZzeW5jT2JqZWN0 LCAiU3ltYm9sTWFuYWdlcjo6Z2V0U3ltYm9sIik7CisJU3luYyBzeW5jICgmc3luY09iamVjdCwg IlN5bWJvbE1hbmFnZXI6OmdldFN5bWJvbCgxKSIpOwogCXN5bmMubG9jayAoU2hhcmVkKTsKIAlp bnQJdmFsdWUgPSAwLCBjOwogCWNvbnN0IGNoYXIgKnA7CkBAIC0xNTYsNyArMTU3LDcgQEAgY29u c3QgY2hhciogU3ltYm9sTWFuYWdlcjo6Z2V0U3RyaW5nKGNvbgogCQlpZiAoc2VjdGlvbi0+c3Bh Y2UgPD0gc3RyaW5nICYmIHN0cmluZyA8IHNlY3Rpb24tPnNwYWNlICsgc2l6ZW9mIChzZWN0aW9u LT5zcGFjZSkpCiAJCQlyZXR1cm4gc3RyaW5nOwogCi0JU3luYyBzeW5jICgmc3luY09iamVjdCwg IlN5bWJvbE1hbmFnZXI6OmdldFN5bWJvbCIpOworCVN5bmMgc3luYyAoJnN5bmNPYmplY3QsICJT eW1ib2xNYW5hZ2VyOjpnZXRTdHJpbmciKTsKIAlzeW5jLmxvY2sgKFNoYXJlZCk7CiAJaW50CXZh bHVlID0gMCwgYzsKIAljb25zdCBjaGFyICpwOwpAQCAtMjE4LDcgKzIxOSw3IEBAIGJvb2wgU3lt Ym9sTWFuYWdlcjo6aXNTeW1ib2woY29uc3QgY2hhciAKIAogY29uc3QgY2hhciogU3ltYm9sTWFu YWdlcjo6Z2V0U3ltYm9sKGNvbnN0IFdDU3RyaW5nICpzdHJpbmcpCiB7Ci0JU3luYyBzeW5jICgm c3luY09iamVjdCwgIlN5bWJvbE1hbmFnZXI6OmdldFN5bWJvbChXQykiKTsKKwlTeW5jIHN5bmMg KCZzeW5jT2JqZWN0LCAiU3ltYm9sTWFuYWdlcjo6Z2V0U3ltYm9sKDIpIik7CiAJc3luYy5sb2Nr IChTaGFyZWQpOwogCWludAl2YWx1ZSA9IDAsIGM7CiAJLy9pbnQgbGVuZ3RoID0gVW5pY29kZTo6 Z2V0VXRmOExlbmd0aChzdHJpbmctPmNvdW50LCAoVUNIQVIqKSBzdHJpbmctPnN0cmluZyk7Cgo9 PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vU3luYy5jcHAnCi0tLSBhL3N0b3JhZ2Uv ZmFsY29uL1N5bmMuY3BwCTIwMDctMTAtMzEgMjA6MDY6MDcgKzAwMDAKKysrIGIvc3RvcmFnZS9m YWxjb24vU3luYy5jcHAJMjAwOC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtMzcsNyArMzcsNyBA QCBTeW5jOjpTeW5jKFN5bmNocm9uaXphdGlvbk9iamVjdCAqb2JqLCBjCiAJQVNTRVJUIChvYmop OwogCXN0YXRlID0gTm9uZTsKIAlzeW5jT2JqZWN0ID0gb2JqOwotCXdoZXJlID0gZnJvbVdoZXJl OworCWxvY2F0aW9uID0gZnJvbVdoZXJlOwogCXByaW9yID0gTlVMTDsKIAltYXJrZWQgPSBOVUxM OwogfQpAQCAtNzAsNyArNzAsNyBAQCB2b2lkIFN5bmM6OmxvY2soTG9ja1R5cGUgdHlwZSwgaW50 IHRpbWVvCiAvKioqCiB2b2lkIFN5bmM6OmxvY2soTG9ja1R5cGUgdHlwZSwgY29uc3QgY2hhciAq ZnJvbVdoZXJlKQogewotCXdoZXJlID0gZnJvbVdoZXJlOworCWxvY2F0aW9uID0gZnJvbVdoZXJl OwogCWxvY2sodHlwZSk7CiB9CiAqKiovCkBAIC0xMTAsNyArMTEwLDcgQEAgdm9pZCBTeW5jOjpm aW5kTG9ja3MoTGlua2VkTGlzdCAmdGhyZWFkcwogdm9pZCBTeW5jOjpwcmludChjb25zdCBjaGFy ICpsYWJlbCkKIHsKIAlMT0dfREVCVUcgKCIlcyAlcyBzdGF0ZSAlZCAoJWQpIHN5bmNPYmplY3Qg JXBcbiIsIAotCQkJICAgbGFiZWwsIHdoZXJlLCBzdGF0ZSwgcmVxdWVzdCwgc3luY09iamVjdCk7 CisJCQkgICBsYWJlbCwgbG9jYXRpb24sIHN0YXRlLCByZXF1ZXN0LCBzeW5jT2JqZWN0KTsKIH0K IAogdm9pZCBTeW5jOjptYXJrKGNvbnN0IGNoYXIqIHRleHQpCgo9PT0gbW9kaWZpZWQgZmlsZSAn c3RvcmFnZS9mYWxjb24vU3luYy5oJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9TeW5jLmgJMjAwNy0x MC0zMSAyMDowNjowNyArMDAwMAorKysgYi9zdG9yYWdlL2ZhbGNvbi9TeW5jLmgJMjAwOC0wNy0y NCAwODo0NTowMyArMDAwMApAQCAtMjgsMTAgKzI4LDEwIEBACiAKIGNsYXNzIExpbmtlZExpc3Q7 CiAKLWNsYXNzIFN5bmMgIAorY2xhc3MgU3luYwogewogcHVibGljOgotCVN5bmMoU3luY2hyb25p emF0aW9uT2JqZWN0ICpvYmosIGNvbnN0IGNoYXIgKndoZXJlKTsKKwlTeW5jKFN5bmNocm9uaXph dGlvbk9iamVjdCAqb2JqLCBjb25zdCBjaGFyICpsb2NhdGlvbik7CiAJdmlydHVhbCB+U3luYygp OwogCiAJdm9pZAlwcmludCAoY29uc3QgY2hhciogbGFiZWwpOwpAQCAtNDAsMTQgKzQwLDE0IEBA IHB1YmxpYzoKIAkvL3ZvaWQJcHJpbnQoaW50IGxldmVsKTsKIAl2b2lkCXNldE9iamVjdCAoU3lu Y2hyb25pemF0aW9uT2JqZWN0ICpvYmopOwogCXZvaWQJdW5sb2NrKCk7Ci0Jdm9pZAlsb2NrIChM b2NrVHlwZSB0eXBlKTsKKwl2b2lkCWxvY2soTG9ja1R5cGUgdHlwZSk7CiAJdm9pZAlsb2NrKExv Y2tUeXBlIHR5cGUsIGludCB0aW1lb3V0KTsKIAogCVN5bmNocm9uaXphdGlvbk9iamVjdAkqc3lu Y09iamVjdDsKIAlMb2NrVHlwZQlzdGF0ZTsKIAlMb2NrVHlwZQlyZXF1ZXN0OwogCVN5bmMJCSpw cmlvcjsKLQljb25zdCBjaGFyCSp3aGVyZTsKKwljb25zdCBjaGFyCSpsb2NhdGlvbjsKIAljb25z dCBjaGFyCSptYXJrZWQ7CiAJdm9pZCBtYXJrKGNvbnN0IGNoYXIqIHRleHQpOwogfTsKCj09PSBt b2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9TeW5jT2JqZWN0LmNwcCcKLS0tIGEvc3RvcmFn ZS9mYWxjb24vU3luY09iamVjdC5jcHAJMjAwOC0wNy0wOCAxNjowMTo0MSArMDAwMAorKysgYi9z dG9yYWdlL2ZhbGNvbi9TeW5jT2JqZWN0LmNwcAkyMDA4LTA4LTAxIDE3OjU2OjI4ICswMDAwCkBA IC0xMTcsNyArMTE3LDcgQEAgU3luY09iamVjdDo6U3luY09iamVjdCgpCiAJZXhjbHVzaXZlQ291 bnQgPSAwOwogCXdhaXRDb3VudCA9IDA7CiAJcXVldWVMZW5ndGggPSAwOwotCXdoZXJlID0gTlVM TDsKKwlsb2NhdGlvbiA9IE5VTEw7CiAJbmFtZSA9IE5VTEw7CiAJb2JqZWN0SWQgPSBJTlRFUkxP Q0tFRF9JTkNSRU1FTlQobmV4dFN5bmNPYmplY3RJZCk7CiAJCkBAIC0xMzMsOSArMTMzLDYgQEAg U3luY09iamVjdDo6flN5bmNPYmplY3QoKQogI2lmZGVmIFRSQUNFX1NZTkNfT0JKRUNUUwogCWlm IChvYmplY3RJZCA8IE1BWF9TWU5DX09CSkVDVFMpCiAJCXN5bmNPYmplY3RzW29iamVjdElkXSA9 IE5VTEw7Ci0JCQotCWlmIChuYW1lKQotCQlkZWxldGUgW10gbmFtZTsKICNlbmRpZgogfQogCkBA IC0xNDYsNyArMTQzLDcgQEAgdm9pZCBTeW5jT2JqZWN0Ojpsb2NrKFN5bmMgKnN5bmMsIExvY2tU eQogCiAjaWZkZWYgVFJBQ0VfU1lOQ19PQkpFQ1RTCiAJaWYgKHN5bmMpCi0JCXdoZXJlID0gc3lu Yy0+d2hlcmU7CisJCWxvY2F0aW9uID0gc3luYy0+bG9jYXRpb247CiAjZW5kaWYKIAkKIAkvLyBT aGFyZWQgY2FzZQpAQCAtMzEzLDcgKzMxMCw3IEBAIHZvaWQgU3luY09iamVjdDo6bG9jayhTeW5j ICpzeW5jLCBMb2NrVHkKIAogI2lmZGVmIFRSQUNFX1NZTkNfT0JKRUNUUwogCWlmIChzeW5jKQot CQl3aGVyZSA9IHN5bmMtPndoZXJlOworCQlsb2NhdGlvbiA9IHN5bmMtPmxvY2F0aW9uOwogI2Vu ZGlmCiAJCiAJaWYgKHR5cGUgPT0gU2hhcmVkKQpAQCAtOTc5LDcgKzk3Niw3IEBAIHZvaWQgU3lu Y09iamVjdDo6ZnJlcXVlbnRTdGFsbGVyKFRocmVhZCAKIAlTeW5jICpsb2NrUGVuZGluZyA9IHRo cmVhZC0+bG9ja1BlbmRpbmc7CiAKIAlpZiAoc3luYykKLQkJTE9HX0RFQlVHKCJGcmVxdWVudCBz dGFsbCBmcm9tICVzXG4iLCBzeW5jLT53aGVyZSk7CisJCUxPR19ERUJVRygiRnJlcXVlbnQgc3Rh bGwgZnJvbSAlc1xuIiwgc3luYy0+bG9jYXRpb24pOwogCWVsc2UKIAkJTE9HX0RFQlVHKCJGcmVx dWVudCBzdGFsbCBmcm9tIHVua25vd25cbiIpOwogCQkKQEAgLTk5NSw5ICs5OTIsOSBAQCB2b2lk IFN5bmNPYmplY3Q6OmFuYWx5emUoU3RyZWFtKiBzdHJlYW0pCiAJc3RyZWFtLT5mb3JtYXQoIldo ZXJlXHRTaGFyZXNcdEV4Y2x1c2l2ZXNcdFdhaXRzXHRBdmVyYWdlIFF1ZXVlXG4iKTsKIAkKIAlm b3IgKGludCBuID0gMTsgbiA8IE1BWF9TWU5DX09CSkVDVFM7ICsrbikKLQkJaWYgKCAoc3luY09i amVjdCA9IHN5bmNPYmplY3RzW25dKSAmJiBzeW5jT2JqZWN0LT53aGVyZSkKKwkJaWYgKCAoc3lu Y09iamVjdCA9IHN5bmNPYmplY3RzW25dKSAmJiBzeW5jT2JqZWN0LT5sb2NhdGlvbikKIAkJCXN0 cmVhbS0+Zm9ybWF0KCIlc1x0JWRcdCVkXHQlZFx0JWRcdFxuIiwKLQkJCQkJc3luY09iamVjdC0+ d2hlcmUsCisJCQkJCXN5bmNPYmplY3QtPmxvY2F0aW9uLAogCQkJCQlzeW5jT2JqZWN0LT5zaGFy ZWRDb3VudCwKIAkJCQkJc3luY09iamVjdC0+ZXhjbHVzaXZlQ291bnQsCiAJCQkJCXN5bmNPYmpl Y3QtPndhaXRDb3VudCwKQEAgLTEwMTksNyArMTAxNiw3IEBAIHZvaWQgU3luY09iamVjdDo6ZHVt cCh2b2lkKQogCWZvciAoaW50IG4gPSAxOyBuIDwgTUFYX1NZTkNfT0JKRUNUUzsgKytuKQogCQlp ZiAoIChzeW5jT2JqZWN0ID0gc3luY09iamVjdHNbbl0pICkKIAkJCXsKLQkJCWNvbnN0IGNoYXIg Km5hbWUgPSAoc3luY09iamVjdC0+bmFtZSkgPyBzeW5jT2JqZWN0LT5uYW1lIDogc3luY09iamVj dC0+d2hlcmU7CisJCQljb25zdCBjaGFyICpuYW1lID0gKHN5bmNPYmplY3QtPm5hbWUpID8gc3lu Y09iamVjdC0+bmFtZSA6IHN5bmNPYmplY3QtPmxvY2F0aW9uOwogCQkJCiAJCQlpZiAobmFtZSkK IAkJCQlmcHJpbnRmKG91dCwgIiVzXHQlZFx0JWRcdCVkXHQlZFx0XG4iLApAQCAtMTA0NCwxMCAr MTA0MSwxMCBAQCB2b2lkIFN5bmNPYmplY3Q6OmdldFN5bmNJbmZvKEluZm9UYWJsZSogCiAJU3lu Y09iamVjdCAqc3luY09iamVjdDsKIAkKIAlmb3IgKGludCBpbmRleCA9IDE7IGluZGV4IDwgTUFY X1NZTkNfT0JKRUNUUzsgKytpbmRleCkKLQkJaWYgKCAoc3luY09iamVjdCA9IHN5bmNPYmplY3Rz W2luZGV4XSkgJiYgc3luY09iamVjdC0+d2hlcmUpCisJCWlmICggKHN5bmNPYmplY3QgPSBzeW5j T2JqZWN0c1tpbmRleF0pICYmIHN5bmNPYmplY3QtPmxvY2F0aW9uKQogCQkJewogCQkJaW50IG4g PSAwOwotCQkJaW5mb1RhYmxlLT5wdXRTdHJpbmcobisrLCBzeW5jT2JqZWN0LT53aGVyZSk7CisJ CQlpbmZvVGFibGUtPnB1dFN0cmluZyhuKyssIHN5bmNPYmplY3QtPmxvY2F0aW9uKTsKIAkJCWlu Zm9UYWJsZS0+cHV0SW50KG4rKywgc3luY09iamVjdC0+c2hhcmVkQ291bnQpOwogCQkJaW5mb1Rh YmxlLT5wdXRJbnQobisrLCBzeW5jT2JqZWN0LT5leGNsdXNpdmVDb3VudCk7CiAJCQlpbmZvVGFi bGUtPnB1dEludChuKyssIHN5bmNPYmplY3QtPndhaXRDb3VudCk7CkBAIC0xMDYwLDE5ICsxMDU3 LDcgQEAgdm9pZCBTeW5jT2JqZWN0OjpnZXRTeW5jSW5mbyhJbmZvVGFibGUqIAogdm9pZCBTeW5j T2JqZWN0OjpzZXROYW1lKGNvbnN0IGNoYXIqIHN0cmluZykKIHsKICNpZmRlZiBUUkFDRV9TWU5D X09CSkVDVFMKLQlpZiAobmFtZSkKLQkJewotCQlkZWxldGUgW10gbmFtZTsKLQkJbmFtZSA9IE5V TEw7Ci0JCX0KLQkKLQlpZiAoc3RyaW5nKQotCQl7Ci0JCW5hbWUgPSBuZXcgY2hhcltzdHJsZW4o c3RyaW5nKSsxXTsKLQkJc3RyY3B5KG5hbWUsIHN0cmluZyk7Ci0JCX0KLQkJCi0JLy9uYW1lID0g c3RyaW5nOworCW5hbWUgPSBzdHJpbmc7CiAjZW5kaWYKIH0KIAoKPT09IG1vZGlmaWVkIGZpbGUg J3N0b3JhZ2UvZmFsY29uL1N5bmNPYmplY3QuaCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vU3luY09i amVjdC5oCTIwMDgtMDYtMTkgMTU6MDk6NDUgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vU3lu Y09iamVjdC5oCTIwMDgtMDgtMDEgMTc6NTY6MjggKzAwMDAKQEAgLTEwOCw4ICsxMDgsOCBAQCBw cm90ZWN0ZWQ6CiAJaW50CQkJCQlleGNsdXNpdmVDb3VudDsKIAlpbnQJCQkJCXdhaXRDb3VudDsK IAlpbnQJCQkJCXF1ZXVlTGVuZ3RoOwotCWNvbnN0IGNoYXIqCQkJd2hlcmU7Ci0JY2hhcioJCQkJ bmFtZTsKKwljb25zdCBjaGFyKgkJCWxvY2F0aW9uOworCWNvbnN0IGNoYXIqCQkJbmFtZTsKICNl bmRpZgogfTsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL1N5bmNUZXN0LmNw cCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vU3luY1Rlc3QuY3BwCTIw