From: Date: August 14 2008 9:35am Subject: bzr push into mysql-6.0 branch (hezx:2683 to 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/51603 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: <200808140735.m7E7ZbQk001746@mail.hezx.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDI2ODQgSGUgWmhlbnhpbmcJMjAwOC0wOC0xNCBbbWVyZ2VdCiAgICAgIE1lcmdlIDYuMCAtPiA2 LjAtcnBsLXRlc3RmaXhlcwpyZW1vdmVkOgogIG15c3FsLXRlc3QvaW5jbHVkZS93YWl0X3RpbWVv dXRfYmFzaWMuaW5jCmFkZGVkOgogIG15c3FsLXRlc3QvaW5jbHVkZS9oYXZlX25vZGVidWcuaW5j CiAgbXlzcWwtdGVzdC9yL2hhdmVfbm9kZWJ1Zy5yZXF1aXJlCiAgbXlzcWwtdGVzdC9yL2lubm9k Yi1hdXRvaW5jLW9wdGltaXplLnJlc3VsdAogIG15c3FsLXRlc3Qvci9zcC1uby1jb2RlLnJlc3Vs dAogIG15c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX2J1Z18zNTkzOS5yZXN1bHQKICBt eXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi9yL2ZhbGNvbl9idWdfMzgwMzkucmVzdWx0CiAgbXlzcWwt dGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxjb25fYnVnXzM1OTM5LnRlc3QKICBteXNxbC10ZXN0L3N1 aXRlL2ZhbGNvbi90L2ZhbGNvbl9idWdfMzgwMzkudGVzdAogIG15c3FsLXRlc3Qvc3VpdGUvc3lz X3ZhcnMvaW5jL211bHRpX3JhbmdlX2NvdW50X2Jhc2ljLmluYwogIG15c3FsLXRlc3Qvc3VpdGUv c3lzX3ZhcnMvci9tdWx0aV9yYW5nZV9jb3VudF9iYXNpY18zMi5yZXN1bHQKICBteXNxbC10ZXN0 L3N1aXRlL3N5c192YXJzL3IvbXVsdGlfcmFuZ2VfY291bnRfYmFzaWNfNjQucmVzdWx0CiAgbXlz cWwtdGVzdC9zdWl0ZS9zeXNfdmFycy90L211bHRpX3JhbmdlX2NvdW50X2Jhc2ljXzMyLnRlc3QK ICBteXNxbC10ZXN0L3N1aXRlL3N5c192YXJzL3QvbXVsdGlfcmFuZ2VfY291bnRfYmFzaWNfNjQu dGVzdAogIG15c3FsLXRlc3QvdC9pbm5vZGItYXV0b2luYy1vcHRpbWl6ZS50ZXN0CiAgbXlzcWwt dGVzdC90L3NwLW5vLWNvZGUudGVzdApyZW5hbWVkOgogIG15c3FsLXRlc3Qvc3VpdGUvZmFsY29u X3RlYW0vci9mYWxjb25fYnVnXzIzOTYyLnJlc3VsdCA9PiBteXNxbC10ZXN0L3N1aXRlL2ZhbGNv bi9yL2ZhbGNvbl9idWdfMjM5NjIucmVzdWx0CiAgbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb25fdGVh bS9yL2ZhbGNvbl9idWdfMjc5OTcucmVzdWx0ID0+IG15c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3Iv ZmFsY29uX2J1Z18yNzk5Ny5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbl90ZWFtL3Iv ZmFsY29uX2J1Z18zNzA4MC5yZXN1bHQgPT4gbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vci9mYWxj b25fYnVnXzM3MDgwLnJlc3VsdAogIG15c3FsLXRlc3Qvc3VpdGUvZmFsY29uX3RlYW0vdC9mYWxj b25fYnVnXzIzOTYyLnRlc3QgPT4gbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxjb25fYnVn XzIzOTYyLnRlc3QKICBteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbl90ZWFtL3QvZmFsY29uX2J1Z18y Nzk5Ny50ZXN0ID0+IG15c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX2J1Z18yNzk5Ny50 ZXN0CiAgbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb25fdGVhbS90L2ZhbGNvbl9idWdfMzcwODAudGVz dCA9PiBteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi90L2ZhbGNvbl9idWdfMzcwODAudGVzdAptb2Rp ZmllZDoKICAuYnpyLW15c3FsL2RlZmF1bHQuY29uZgogIGNsaWVudC9NYWtlZmlsZS5hbQogIGNs aWVudC9teXNxbF91cGdyYWRlLmMKICBjbGllbnQvbXlzcWx0ZXN0LmMKICBjb25maWcvYWMtbWFj cm9zL2NoYXJhY3Rlcl9zZXRzLm00CiAgY29uZmlndXJlLmluCiAgZXh0cmEvY29tcF9lcnIuYwog IGV4dHJhL3BlcnJvci5jCiAgbXlzcWwtdGVzdC9teXNxbC10ZXN0LXJ1bi5wbAogIG15c3FsLXRl c3Qvci9mdW5jX2lmLnJlc3VsdAogIG15c3FsLXRlc3Qvci9wZXJyb3IucmVzdWx0CiAgbXlzcWwt dGVzdC9yL3N1YnNlbGVjdC5yZXN1bHQKICBteXNxbC10ZXN0L3Ivc3Vic2VsZWN0X25vX21hdC5y ZXN1bHQKICBteXNxbC10ZXN0L3Ivc3Vic2VsZWN0X25vX29wdHMucmVzdWx0CiAgbXlzcWwtdGVz dC9yL3N1YnNlbGVjdF9ub19zZW1pam9pbi5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL2ZhbGNv bi9yL2ZhbGNvbl9idWdfMjIxNjEucmVzdWx0CiAgbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vci9m YWxjb25fYnVnXzMxMjk1LnJlc3VsdAogIG15c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29u X2J1Z18zMzQwNC5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi9yL2ZhbGNvbl9vcHRp b25zLnJlc3VsdAogIG15c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX29wdGlvbnMyLnJl c3VsdAogIG15c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX2J1Z18yMjE2MS50ZXN0CiAg bXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxjb25fYnVnXzMxMjk1LnRlc3QKICBteXNxbC10 ZXN0L3N1aXRlL2ZhbGNvbi90L2ZhbGNvbl9idWdfMzM0MDQudGVzdAogIG15c3FsLXRlc3Qvc3Vp dGUvZmFsY29uL3QvZmFsY29uX29wdGlvbnMyLnRlc3QKICBteXNxbC10ZXN0L3N1aXRlL2Z1bmNz XzEvci9mYWxjb25fc3RvcmVkcHJvYy5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEv ci9mYWxjb25fdHJpZ18wMy5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9mYWxj b25fdHJpZ18wM2UucmVzdWx0CiAgbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvaW5ub2RiX3N0 b3JlZHByb2MucmVzdWx0CiAgbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvaW5ub2RiX3RyaWdf MDMucmVzdWx0CiAgbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvaW5ub2RiX3RyaWdfMDNlLnJl c3VsdAogIG15c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2lzX2NvbHVtbnNfaXNfZmFsY29uLnJl c3VsdAogIG15c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2lzX2NvbHVtbnNfbXlzcWwucmVzdWx0 CiAgbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvaXNfdGFibGVzX2lzX2ZhbGNvbi5yZXN1bHQK ICBteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9pc191c2VyX3ByaXZpbGVnZXMucmVzdWx0CiAg bXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvbWVtb3J5X3N0b3JlZHByb2MucmVzdWx0CiAgbXlz cWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvbWVtb3J5X3RyaWdfMDMucmVzdWx0CiAgbXlzcWwtdGVz dC9zdWl0ZS9mdW5jc18xL3IvbWVtb3J5X3RyaWdfMDNlLnJlc3VsdAogIG15c3FsLXRlc3Qvc3Vp dGUvZnVuY3NfMS9yL215aXNhbV9zdG9yZWRwcm9jLnJlc3VsdAogIG15c3FsLXRlc3Qvc3VpdGUv ZnVuY3NfMS9yL215aXNhbV90cmlnXzAzLnJlc3VsdAogIG15c3FsLXRlc3Qvc3VpdGUvZnVuY3Nf MS9yL215aXNhbV90cmlnXzAzZS5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9u ZGJfc3RvcmVkcHJvYy5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9uZGJfdHJp Z18wMy5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9uZGJfdHJpZ18wM2UucmVz dWx0CiAgbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3RyaWdnZXJzL3RyaWdnZXJzXzAzLmluYwog IG15c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS90cmlnZ2Vycy90cmlnZ2Vyc18wOC5pbmMKICBteXNx bC10ZXN0L3N1aXRlL2Z1bmNzXzEvdHJpZ2dlcnMvdHJpZ2dlcnNfMTAxMWV4dC5pbmMKICBteXNx bC10ZXN0L3N1aXRlL25kYi9yL25kYl9iYXNpYy5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL25k Yi90L2Rpc2FibGVkLmRlZgogIG15c3FsLXRlc3Qvc3VpdGUvcnBsL3QvZGlzYWJsZWQuZGVmCiAg bXlzcWwtdGVzdC90L2Z1bmNfaWYudGVzdAogIG15c3FsLXRlc3QvdC9pbmZvcm1hdGlvbl9zY2hl bWEtbWFzdGVyLm9wdAogIG15c3FsLXRlc3QvdC9pbmZvcm1hdGlvbl9zY2hlbWFfZGItbWFzdGVy Lm9wdAogIG15c3FsLXRlc3QvdC9teXNxbHNob3ctbWFzdGVyLm9wdAogIG15c3FsLXRlc3QvdC9w ZXJyb3IudGVzdAogIG15c3FsLXRlc3QvdC9zdWJzZWxlY3QudGVzdAogIG15c3FsLXRlc3QvdC92 YXJpYWJsZXMtbWFzdGVyLm9wdAogIHNjcmlwdHMvbXlzcWxfc3lzdGVtX3RhYmxlc19maXguc3Fs CiAgc3FsL2ZpZWxkLmgKICBzcWwvaXRlbS5jYwogIHNxbC9pdGVtLmgKICBzcWwvaXRlbV9jbXBm dW5jLmNjCiAgc3FsL2l0ZW1fZnVuYy5jYwogIHNxbC9teXNxbF9wcml2LmgKICBzcWwvcHJvYmVz LmgKICBzcWwvc2hhcmUvZXJybXNnLnR4dAogIHNxbC9zcF9oZWFkLmNjCiAgc3FsL3NxbF9hY2wu Y2MKICBzcWwvc3FsX2Jhc2UuY2MKICBzcWwvc3FsX2Vycm9yLmNjCiAgc3FsL3NxbF9lcnJvci5o CiAgc3FsL3NxbF9sZXguaAogIHNxbC9zcWxfbGlzdC5oCiAgc3FsL3NxbF9wYXJzZS5jYwogIHNx bC9zcWxfc2VsZWN0LmNjCiAgc3FsL3NxbF9zdHJpbmcuaAogIHNxbC9zcWxfeWFjYy55eQogIHNx bC90YWJsZS5jYwogIHNxbC90YWJsZS5oCiAgc3FsL3Rocl9tYWxsb2MuY2MKICBzdG9yYWdlL2Zh bGNvbi9CREIuY3BwCiAgc3RvcmFnZS9mYWxjb24vQkRCLmgKICBzdG9yYWdlL2ZhbGNvbi9CYWNr TG9nLmNwcAogIHN0b3JhZ2UvZmFsY29uL0NhY2hlLmNwcAogIHN0b3JhZ2UvZmFsY29uL0NvbGxh dGlvbk1hbmFnZXIuY3BwCiAgc3RvcmFnZS9mYWxjb24vQ29tcGlsZWRTdGF0ZW1lbnQuY3BwCiAg c3RvcmFnZS9mYWxjb24vQ29uZmlndXJhdGlvbi5jcHAKICBzdG9yYWdlL2ZhbGNvbi9Db25maWd1 cmF0aW9uLmgKICBzdG9yYWdlL2ZhbGNvbi9Db25uZWN0aW9uLmNwcAogIHN0b3JhZ2UvZmFsY29u L0RhdGFiYXNlLmNwcAogIHN0b3JhZ2UvZmFsY29uL0RhdGFiYXNlQ2xvbmUuY3BwCiAgc3RvcmFn ZS9mYWxjb24vRGF0YWJhc2VDb3B5LmNwcAogIHN0b3JhZ2UvZmFsY29uL0RiYi5jcHAKICBzdG9y YWdlL2ZhbGNvbi9EYmIuaAogIHN0b3JhZ2UvZmFsY29uL0RlZmVycmVkSW5kZXguY3BwCiAgc3Rv cmFnZS9mYWxjb24vRGVmZXJyZWRJbmRleC5oCiAgc3RvcmFnZS9mYWxjb24vR29waGVyLmNwcAog IHN0b3JhZ2UvZmFsY29uL0lPLmNwcAogIHN0b3JhZ2UvZmFsY29uL0lPeC5oCiAgc3RvcmFnZS9m YWxjb24vSW5kZXguY3BwCiAgc3RvcmFnZS9mYWxjb24vSW5kZXhXYWxrZXIuY3BwCiAgc3RvcmFn ZS9mYWxjb24vSW5kZXhXYWxrZXIuaAogIHN0b3JhZ2UvZmFsY29uL0ludmVyc2lvbi5jcHAKICBz dG9yYWdlL2ZhbGNvbi9MaWNlbnNlTWFuYWdlci5jcHAKICBzdG9yYWdlL2ZhbGNvbi9NYWtlZmls ZS5hbQogIHN0b3JhZ2UvZmFsY29uL01lbU1nci5jcHAKICBzdG9yYWdlL2ZhbGNvbi9SZWNvcmRM ZWFmLmNwcAogIHN0b3JhZ2UvZmFsY29uL1JlY29yZFZlcnNpb24uY3BwCiAgc3RvcmFnZS9mYWxj b24vUmVjb3ZlcnlPYmplY3RzLmNwcAogIHN0b3JhZ2UvZmFsY29uL1JlY292ZXJ5T2JqZWN0cy5o CiAgc3RvcmFnZS9mYWxjb24vUmVwb3NpdG9yeS5jcHAKICBzdG9yYWdlL2ZhbGNvbi9SZXBvc2l0 b3J5TWFuYWdlci5jcHAKICBzdG9yYWdlL2ZhbGNvbi9SZXBvc2l0b3J5Vm9sdW1lLmNwcAogIHN0 b3JhZ2UvZmFsY29uL1Jlc3VsdFNldC5jcHAKICBzdG9yYWdlL2ZhbGNvbi9Sb2xlLmNwcAogIHN0 b3JhZ2UvZmFsY29uL1NRTFBhcnNlLmNwcAogIHN0b3JhZ2UvZmFsY29uL1NSTENyZWF0ZVRhYmxl U3BhY2UuY3BwCiAgc3RvcmFnZS9mYWxjb24vU1JMQ3JlYXRlVGFibGVTcGFjZS5oCiAgc3RvcmFn ZS9mYWxjb24vU1JMRGVsZXRlSW5kZXguY3BwCiAgc3RvcmFnZS9mYWxjb24vU1JMUHJlcGFyZS5j cHAKICBzdG9yYWdlL2ZhbGNvbi9TUkxSb2xsYmFjay5jcHAKICBzdG9yYWdlL2ZhbGNvbi9TUkxV cGRhdGVJbmRleC5jcHAKICBzdG9yYWdlL2ZhbGNvbi9TY2hlZHVsZXIuY3BwCiAgc3RvcmFnZS9m YWxjb24vU2VjdG9yQnVmZmVyLmNwcAogIHN0b3JhZ2UvZmFsY29uL1NlY3RvckNhY2hlLmNwcAog IHN0b3JhZ2UvZmFsY29uL1NlcXVlbmNlTWFuYWdlci5jcHAKICBzdG9yYWdlL2ZhbGNvbi9TZXJp YWxMb2cuY3BwCiAgc3RvcmFnZS9mYWxjb24vU2VyaWFsTG9nLmgKICBzdG9yYWdlL2ZhbGNvbi9T ZXJpYWxMb2dGaWxlLmNwcAogIHN0b3JhZ2UvZmFsY29uL1NlcnZlci5jcHAKICBzdG9yYWdlL2Zh bGNvbi9TZXNzaW9uTWFuYWdlci5jcHAKICBzdG9yYWdlL2ZhbGNvbi9TdGF0ZW1lbnQuY3BwCiAg c3RvcmFnZS9mYWxjb24vU3RvcmFnZURhdGFiYXNlLmNwcAogIHN0b3JhZ2UvZmFsY29uL1N0b3Jh Z2VEYXRhYmFzZS5oCiAgc3RvcmFnZS9mYWxjb24vU3RvcmFnZUhhbmRsZXIuY3BwCiAgc3RvcmFn ZS9mYWxjb24vU3RvcmFnZUhhbmRsZXIuaAogIHN0b3JhZ2UvZmFsY29uL1N0b3JhZ2VUYWJsZVNo YXJlLmNwcAogIHN0b3JhZ2UvZmFsY29uL1N5bWJvbE1hbmFnZXIuY3BwCiAgc3RvcmFnZS9mYWxj b24vU3luYy5jcHAKICBzdG9yYWdlL2ZhbGNvbi9TeW5jLmgKICBzdG9yYWdlL2ZhbGNvbi9TeW5j T2JqZWN0LmNwcAogIHN0b3JhZ2UvZmFsY29uL1N5bmNPYmplY3QuaAogIHN0b3JhZ2UvZmFsY29u L1N5bmNUZXN0LmNwcAogIHN0b3JhZ2UvZmFsY29uL1RhYmxlLmNwcAogIHN0b3JhZ2UvZmFsY29u L1RhYmxlU3BhY2UuY3BwCiAgc3RvcmFnZS9mYWxjb24vVGFibGVTcGFjZS5oCiAgc3RvcmFnZS9m YWxjb24vVGFibGVTcGFjZU1hbmFnZXIuY3BwCiAgc3RvcmFnZS9mYWxjb24vVGFibGVTcGFjZU1h bmFnZXIuaAogIHN0b3JhZ2UvZmFsY29uL1RocmVhZC5jcHAKICBzdG9yYWdlL2ZhbGNvbi9UaHJl YWRzLmNwcAogIHN0b3JhZ2UvZmFsY29uL1RyYW5zYWN0aW9uLmNwcAogIHN0b3JhZ2UvZmFsY29u L1RyYW5zYWN0aW9uLmgKICBzdG9yYWdlL2ZhbGNvbi9UcmFuc2FjdGlvbk1hbmFnZXIuY3BwCiAg c3RvcmFnZS9mYWxjb24vV2Fsa0RlZmVycmVkLmNwcAogIHN0b3JhZ2UvZmFsY29uL1dhbGtEZWZl cnJlZC5oCiAgc3RvcmFnZS9mYWxjb24vV2Fsa0luZGV4LmNwcAogIHN0b3JhZ2UvZmFsY29uL2hh X2ZhbGNvbi5jcHAKICBzdG9yYWdlL2ZhbGNvbi9oYV9mYWxjb24uaAogIHN1cHBvcnQtZmlsZXMv YnVpbGQtdGFncwogIG15c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX2J1Z18yMzk2Mi5y ZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi9yL2ZhbGNvbl9idWdfMzcwODAucmVzdWx0 CiAgbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxjb25fYnVnXzIzOTYyLnRlc3QKICBteXNx bC10ZXN0L3N1aXRlL2ZhbGNvbi90L2ZhbGNvbl9idWdfMzcwODAudGVzdAoKIDI2ODMgU3ZlbiBT YW5kYmVyZwkyMDA4LTA4LTA2IFttZXJnZV0KICAgICAgbWVyZ2VkIDYuMCBtYWluIC0+IDYuMC1y cGwtdGVzdGZpeGVzCiAgICAgIGFsbCBmaWxlcyBhdXRvbWVyZ2VkIHdpdGhvdXQgY29uZmxpY3QK bW9kaWZpZWQ6CiAgbXlzcWwtdGVzdC9leHRyYS9iaW5sb2dfdGVzdHMvYmlubG9nX2luc2VydF9k ZWxheWVkLnRlc3QKICBteXNxbC10ZXN0L2luY2x1ZGUvc2hvd19iaW5sb2dfZXZlbnRzLmluYwog IG15c3FsLXRlc3Qvc3VpdGUvYmlubG9nL3IvYmlubG9nX2tpbGxlZF9zaW11bGF0ZS5yZXN1bHQK ICBteXNxbC10ZXN0L3N1aXRlL2JpbmxvZy9yL2JpbmxvZ19yb3dfYmlubG9nLnJlc3VsdAogIG15 c3FsLXRlc3Qvc3VpdGUvYmlubG9nL3IvYmlubG9nX3Jvd19taXhfaW5ub2RiX215aXNhbS5yZXN1 bHQKICBteXNxbC10ZXN0L3N1aXRlL2JpbmxvZy9yL2JpbmxvZ19zdGF0ZW1lbnRfaW5zZXJ0X2Rl bGF5ZWQucmVzdWx0CiAgbXlzcWwtdGVzdC9zdWl0ZS9iaW5sb2cvci9iaW5sb2dfc3RtX2Jpbmxv Zy5yZXN1bHQKICBteXNxbC10ZXN0L3N1aXRlL2JpbmxvZy9yL2JpbmxvZ19zdG1fbWl4X2lubm9k Yl9teWlzYW0ucmVzdWx0CiAgbXlzcWwtdGVzdC9zdWl0ZS9ycGwvci9ycGxfbG9hZGRhdGFfbWFw LnJlc3VsdAogIG15c3FsLXRlc3Qvc3VpdGUvcnBsL3IvcnBsX3N0bV9sb2cucmVzdWx0CiAgbXlz cWwtdGVzdC9zdWl0ZS9ycGwvci9ycGxfdmFyaWFibGVzLnJlc3VsdAogIG15c3FsLXRlc3Qvc3Vp dGUvcnBsL3QvcnBsX2luY2lkZW50LnRlc3QKICBteXNxbC10ZXN0L3N1aXRlL3JwbC90L3JwbF9s b2FkZGF0YV9tYXAudGVzdAogIG15c3FsLXRlc3Qvc3VpdGUvcnBsL3QvcnBsX3RydW5jX3RlbXAu dGVzdAogIG15c3FsLXRlc3Qvc3VpdGUvcnBsL3QvcnBsX3ZhcmlhYmxlcy50ZXN0Cgo9PT0gbW9k aWZpZWQgZmlsZSAnLmJ6ci1teXNxbC9kZWZhdWx0LmNvbmYnCi0tLSBhLy5ienItbXlzcWwvZGVm YXVsdC5jb25mCTIwMDgtMDctMjggMTc6NDQ6MTQgKzAwMDAKKysrIGIvLmJ6ci1teXNxbC9kZWZh dWx0LmNvbmYJMjAwOC0wOC0xMiAxNDoxODo1MiArMDAwMApAQCAtMSw1ICsxLDUgQEAKLVtNWVNR TF0NCi10cmVlX2xvY2F0aW9uID0gYnpyK3NzaDovL2JrLWludGVybmFsLm15c3FsLmNvbS9ienJy b290L3NlcnZlci9teXNxbC02LjANCi1wb3N0X2NvbW1pdF90byA9IGNvbW1pdHNAbGlzdHMubXlz cWwuY29tDQotcG9zdF9wdXNoX3RvID0gY29tbWl0c0BsaXN0cy5teXNxbC5jb20NCi10cmVlX25h bWUgPSBteXNxbC02LjANCitbTVlTUUxdCit0cmVlX2xvY2F0aW9uID0gYnpyK3NzaDovL2JrLWlu dGVybmFsLm15c3FsLmNvbS9ienJyb290L3NlcnZlci9teXNxbC02LjAKK3Bvc3RfY29tbWl0X3Rv ID0gY29tbWl0c0BsaXN0cy5teXNxbC5jb20KK3Bvc3RfcHVzaF90byA9IGNvbW1pdHNAbGlzdHMu bXlzcWwuY29tCit0cmVlX25hbWUgPSBteXNxbC02LjAKCj09PSBtb2RpZmllZCBmaWxlICdjbGll bnQvTWFrZWZpbGUuYW0nCi0tLSBhL2NsaWVudC9NYWtlZmlsZS5hbQkyMDA4LTA2LTIwIDExOjQw OjAxICswMDAwCisrKyBiL2NsaWVudC9NYWtlZmlsZS5hbQkyMDA4LTA4LTA2IDE0OjM5OjAzICsw MDAwCkBAIC04OCwxMSArODgsMTIgQEAgbXlzcWxzbGFwX0xEQUREID0JCSQoQ1hYTERGTEFHUykg JChDTElFTgogCiBteXNxbHRlc3RfU09VUkNFUz0JCW15c3FsdGVzdC5jCiBteXNxbHRlc3RfQ0ZM QUdTPQkJLURUSFJFQUQgLVVVTkRFRl9USFJFQURTX0hBQ0sKLW15c3FsdGVzdF9MREFERCA9CQkk KENYWExERkxBR1MpICQoQ0xJRU5UX1RIUkVBRF9MSUJTKSBcCitteXNxbHRlc3RfTERBREQgPQkJ JChDWFhMREZMQUdTKSBcCiAJCQkJQENMSUVOVF9FWFRSQV9MREZMQUdTQCBcCiAJCQkJJChMSUJN WVNRTENMSUVOVF9MQSkgXAogCQkJCSQodG9wX2J1aWxkZGlyKS9teXN5cy9saWJteXN5cy5hIFwK LQkJCQkkKHRvcF9idWlsZGRpcikvcmVnZXgvbGlicmVnZXguYQorCQkJCSQodG9wX2J1aWxkZGly KS9yZWdleC9saWJyZWdleC5hIFwKKwkJCQkkKENMSUVOVF9USFJFQURfTElCUykKIAogbXlzcWxf dXBncmFkZV9TT1VSQ0VTPSAgICAgICAgICBteXNxbF91cGdyYWRlLmMgXAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkKHRvcF9zcmNkaXIpL215c3lzL215X2dldHBhZ2VzaXplLmMK Cj09PSBtb2RpZmllZCBmaWxlICdjbGllbnQvbXlzcWxfdXBncmFkZS5jJwotLS0gYS9jbGllbnQv bXlzcWxfdXBncmFkZS5jCTIwMDgtMDUtMDIgMTc6NDI6MzQgKzAwMDAKKysrIGIvY2xpZW50L215 c3FsX3VwZ3JhZGUuYwkyMDA4LTA4LTExIDE1OjMwOjI5ICswMDAwCkBAIC0yNjksNiArMjY5LDEw IEBAIGdldF9vbmVfb3B0aW9uKGludCBvcHRpZCwgY29uc3Qgc3RydWN0IG0KIH0KIAogCisvKioK KyAgUnVuIGEgY29tbWFuZCB1c2luZyB0aGUgc2hlbGwsIHN0b3JpbmcgaXRzIG91dHB1dCBpbiB0 aGUgc3VwcGxpZWQgZHluYW1pYworICBzdHJpbmcuCisqLwogc3RhdGljIGludCBydW5fY29tbWFu ZChjaGFyKiBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgIERZTkFNSUNfU1RSSU5HICpkc19y ZXMpCiB7CkBAIC0zNDEsMzcgKzM0NSwxNSBAQCBzdGF0aWMgaW50IHJ1bl90b29sKGNoYXIgKnRv b2xfcGF0aCwgRFlOCiB9CiAKIAotLyoKLSAgVHJ5IHRvIGdldCB0aGUgZnVsbCBwYXRoIHRvIHRo aXMgZXhjZXV0YWJsZQotCi0gIFJldHVybiAwIGlmIHBhdGggZm91bmQKLQorLyoqCisgIExvb2sg Zm9yIHRoZSBmaWxlbmFtZSBvZiBnaXZlbiB0b29sLCB3aXRoIHRoZSBwcmVzdW1wdGlvbiB0aGF0 IGl0IGlzIGluIHRoZQorICBzYW1lIGRpcmVjdG9yeSBhcyBteXNxbF91cGdyYWRlIGFuZCB0aGF0 IHRoZSBzYW1lIGV4ZWN1dGFibGUtc2VhcmNoaW5nIAorICBtZWNoYW5pc20gd2lsbCBiZSB1c2Vk IHdoZW4gd2UgcnVuIG91ciBzdWItc2hlbGxzIHdpdGggcG9wZW4oKSBsYXRlci4KICovCi0KLXN0 YXRpYyBteV9ib29sIGdldF9mdWxsX3BhdGhfdG9fZXhlY3V0YWJsZShjaGFyKiBwYXRoKQorc3Rh dGljIHZvaWQgZmluZF90b29sKGNoYXIgKnRvb2xfZXhlY3V0YWJsZV9uYW1lLCBjb25zdCBjaGFy ICp0b29sX25hbWUsIAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnNlbGZfbmFt ZSkKIHsKLSAgbXlfYm9vbCByZXQ7Ci0gIERCVUdfRU5URVIoImdldF9mdWxsX3BhdGhfdG9fZXhl Y3V0YWJsZSIpOwotI2lmZGVmIF9fV0lOX18KLSAgcmV0PSAoR2V0TW9kdWxlRmlsZU5hbWUoTlVM TCwgcGF0aCwgRk5fUkVGTEVOKSA9PSAwKTsKLSNlbHNlCi0gIC8qIG15X3JlYWRsaW5rIHJldHVy bnMgMCBpZiBhIHN5bWxpbmsgd2FzIHJlYWQgKi8KLSAgcmV0PSAobXlfcmVhZGxpbmsocGF0aCwg Ii9wcm9jL3NlbGYvZXhlIiwgTVlGKDApKSAhPSAwKTsKLSAgLyogTWlnaHQgYWxzbyB3YW50IHRv IHRyeSB3aXRoIC9wcm9jLyQkL2V4ZSBpZiB0aGUgYWJvdmUgZmFpbHMgKi8KLSNlbmRpZgotICBE QlVHX1BSSU5UKCJleGl0IiwgKCJwYXRoOiAlcyIsIHBhdGgpKTsKLSAgREJVR19SRVRVUk4ocmV0 KTsKLX0KLQotCi0vKgotICBMb29rIGZvciB0aGUgdG9vbCBpbiB0aGUgc2FtZSBkaXJlY3Rvcnkg YXMgbXlzcWxfdXBncmFkZS4KLSovCi0KLXN0YXRpYyB2b2lkIGZpbmRfdG9vbChjaGFyICp0b29s X3BhdGgsIGNvbnN0IGNoYXIgKnRvb2xfbmFtZSkKLXsKLSAgc2l6ZV90IHBhdGhfbGVuOwotICBj aGFyIHBhdGhbRk5fUkVGTEVOXTsKKyAgY2hhciAqbGFzdF9mbl9saWJjaGFyOwogICBEWU5BTUlD X1NUUklORyBkc190bXA7CiAgIERCVUdfRU5URVIoImZpbmRfdG9vbCIpOwogICBEQlVHX1BSSU5U KCJlbnRlciIsICgicHJvZ25hbWU6ICVzIiwgbXlfcHJvZ25hbWUpKTsKQEAgLTM3OSw3NyArMzYx LDU5IEBAIHN0YXRpYyB2b2lkIGZpbmRfdG9vbChjaGFyICp0b29sX3BhdGgsIGMKICAgaWYgKGlu aXRfZHluYW1pY19zdHJpbmcoJmRzX3RtcCwgIiIsIDMyLCAzMikpCiAgICAgZGllKCJPdXQgb2Yg bWVtb3J5Iik7CiAKLSAgLyogSW5pdGlhbGl6ZSBwYXRoIHdpdGggdGhlIGZ1bGwgcGF0aCB0byB0 aGlzIHByb2dyYW0gKi8KLSAgaWYgKGdldF9mdWxsX3BhdGhfdG9fZXhlY3V0YWJsZShwYXRoKSkK KyAgbGFzdF9mbl9saWJjaGFyPSBzdHJyY2hyKHNlbGZfbmFtZSwgRk5fTElCQ0hBUik7CisKKyAg aWYgKGxhc3RfZm5fbGliY2hhciA9PSBOVUxMKQogICB7CiAgICAgLyoKLSAgICAgIEVhc3kgd2F5 IHRvIGdldCBmdWxsIGV4ZWN1dGFibGUgcGF0aCBmYWlsZWQsIHRyeQotICAgICAgb3RoZXIgbWV0 aG9kcworICAgICAgbXlzcWxfdXBncmFkZSB3YXMgZm91bmQgYnkgdGhlIHNoZWxsIHNlYXJjaGlu ZyB0aGUgcGF0aC4gIEEgc2libGluZworICAgICAgbmV4dCB0byB1cyBzaG91bGQgYmUgZm91bmQg dGhlIHNhbWUgd2F5LgogICAgICovCi0gICAgaWYgKG15X3Byb2duYW1lWzBdID09IEZOX0xJQkNI QVIpCi0gICAgewotICAgICAgLyogMS4gbXlfcHJvZ25hbWUgY29udGFpbnMgZnVsbCBwYXRoICov Ci0gICAgICBzdHJtYWtlKHBhdGgsIG15X3Byb2duYW1lLCBGTl9SRUZMRU4pOwotICAgIH0KLSAg ICBlbHNlIGlmIChteV9wcm9nbmFtZVswXSA9PSAnLicpCi0gICAgewotICAgICAgLyogMi4gbXlf cHJvZ25hbWUgY29udGFpbnMgcmVsYXRpdmUgcGF0aCwgcHJlcGVuZCB3ZCAqLwotICAgICAgY2hh ciBidWZbRk5fUkVGTEVOXTsKLSAgICAgIG15X2dldHdkKGJ1ZiwgRk5fUkVGTEVOLCBNWUYoMCkp OwotICAgICAgbXlfc25wcmludGYocGF0aCwgRk5fUkVGTEVOLCAiJXMlcyIsIGJ1ZiwgbXlfcHJv Z25hbWUpOwotICAgIH0KLSAgICBlbHNlCi0gICAgewotICAgICAgLyogMy4gSnVzdCBnbyBmb3Ig aXQgYW5kIGhvcGUgdG9vbCBpcyBpbiBwYXRoICovCi0gICAgICBwYXRoWzBdPSAwOwotICAgIH0K KyAgICBzdHJuY3B5KHRvb2xfZXhlY3V0YWJsZV9uYW1lLCB0b29sX25hbWUsIEZOX1JFRkxFTik7 CiAgIH0KLQotICBEQlVHX1BSSU5UKCJpbmZvIiwgKCJwYXRoOiAnJXMnIiwgcGF0aCkpOwotCi0g IC8qIENob3Agb2ZmIGJpbmFyeSBuYW1lIChpLmUgbXlzcWwtdXBncmFkZSkgZnJvbSBwYXRoICov Ci0gIGRpcm5hbWVfcGFydChwYXRoLCBwYXRoLCAmcGF0aF9sZW4pOwotCi0gIC8qCi0gICAgV2hl biBydW5uaW5nIGluIGEgbm90IHlldCBpbnN0YWxsZWQgYnVpbGQgYW5kIHVzaW5nIGxpYnRvb2ws Ci0gICAgdGhlIHByb2dyYW0obXlzcWxfdXBncmFkZSkgd2lsbCBiZSBpbiAubGlicy8gYW5kIGV4 ZWN1dGVkCi0gICAgdGhyb3VnaCBhIGxpYnRvb2wgd3JhcHBlciBpbiBvcmRlciB0byB1c2UgdGhl IGR5bmFtaWMgbGlicmFyaWVzCi0gICAgZnJvbSB0aGlzIGJ1aWxkLiBUaGUgc2FtZSBtdXN0IGJl IGRvbmUgZm9yIHRoZSB0b29scyhteXNxbCBhbmQKLSAgICBteXNxbGNoZWNrKS4gVGh1cyBpZiBw YXRoIGVuZHMgaW4gLmxpYnMvLCBzdGVwIHVwIG9uZSBkaXJlY3RvcnkKLSAgICBhbmQgZXhlY3V0 ZSB0aGUgdG9vbHMgZnJvbSB0aGVyZQotICAqLwotICBwYXRoW21heChwYXRoX2xlbi0xLCAwKV09 IDA7ICAgLyogQ2hvcCBvZmYgbGFzdCAvICovCi0gIGlmIChzdHJuY21wKHBhdGggKyBkaXJuYW1l X2xlbmd0aChwYXRoKSwgIi5saWJzIiwgNSkgPT0gMCkKKyAgZWxzZQogICB7Ci0gICAgREJVR19Q UklOVCgiaW5mbyIsICgiQ2hvcHBpbmcgb2ZmIC5saWJzIGZyb20gJyVzJyIsIHBhdGgpKTsKLQot ICAgIC8qIENob3Agb2ZmIC5saWJzICovCi0gICAgZGlybmFtZV9wYXJ0KHBhdGgsIHBhdGgsICZw YXRoX2xlbik7Ci0gIH0KKyAgICBpbnQgbGVuOwogCisgICAgLyoKKyAgICAgIG15c3FsX3VwZ3Jh ZGUgd2FzIHJ1biBhYnNvbHV0ZWx5IG9yIHJlbGF0aXZlbHkuICBXZSBjYW4gZmluZCBhIHNpYmxp bmcKKyAgICAgIGJ5IHJlcGxhY2luZyBvdXIgbmFtZSBhZnRlciB0aGUgTElCQ0hBUiB3aXRoIHRo ZSBuZXcgdG9vbCBuYW1lLgorICAgICovCiAKLSAgREJVR19QUklOVCgiaW5mbyIsICgicGF0aDog JyVzJyIsIHBhdGgpKTsKKyAgICAvKgorICAgICAgV2hlbiBydW5uaW5nIGluIGEgbm90IHlldCBp bnN0YWxsZWQgYnVpbGQgYW5kIHVzaW5nIGxpYnRvb2wsCisgICAgICB0aGUgcHJvZ3JhbShteXNx bF91cGdyYWRlKSB3aWxsIGJlIGluIC5saWJzLyBhbmQgZXhlY3V0ZWQKKyAgICAgIHRocm91Z2gg YSBsaWJ0b29sIHdyYXBwZXIgaW4gb3JkZXIgdG8gdXNlIHRoZSBkeW5hbWljIGxpYnJhcmllcwor ICAgICAgZnJvbSB0aGlzIGJ1aWxkLiBUaGUgc2FtZSBtdXN0IGJlIGRvbmUgZm9yIHRoZSB0b29s cyhteXNxbCBhbmQKKyAgICAgIG15c3FsY2hlY2spLiBUaHVzIGlmIHBhdGggZW5kcyBpbiAubGli cy8sIHN0ZXAgdXAgb25lIGRpcmVjdG9yeQorICAgICAgYW5kIGV4ZWN1dGUgdGhlIHRvb2xzIGZy b20gdGhlcmUKKyAgICAqLworICAgIGlmICgoKGxhc3RfZm5fbGliY2hhciAtIDYpID49IHNlbGZf bmFtZSkgJiYKKyAgICAgICAgKHN0cm5jbXAobGFzdF9mbl9saWJjaGFyIC0gNSwgIi5saWJzIiwg NSkgPT0gMCkgJiYKKyAgICAgICAgKCoobGFzdF9mbl9saWJjaGFyIC0gNikgPT0gRk5fTElCQ0hB UikpCisgICAgeworICAgICAgREJVR19QUklOVCgiaW5mbyIsICgiQ2hvcHBpbmcgb2ZmIFwiLmxp YnNcIiBmcm9tIGVuZCBvZiBwYXRoIikpOworICAgICAgbGFzdF9mbl9saWJjaGFyIC09IDY7Cisg ICAgfQogCi0gIC8qIEZvcm1hdCBuYW1lIG9mIHRoZSB0b29sIHRvIHNlYXJjaCBmb3IgKi8KLSAg Zm5fZm9ybWF0KHRvb2xfcGF0aCwgdG9vbF9uYW1lLAotICAgICAgICAgICAgcGF0aCwgIiIsIE1Z RihNWV9SRVBMQUNFX0RJUikpOworICAgIGxlbj0gbGFzdF9mbl9saWJjaGFyIC0gc2VsZl9uYW1l OwogCi0gIHZlcmJvc2UoIkxvb2tpbmcgZm9yICclcycgaW46ICVzIiwgdG9vbF9uYW1lLCB0b29s X3BhdGgpOworICAgIG15X3NucHJpbnRmKHRvb2xfZXhlY3V0YWJsZV9uYW1lLCBGTl9SRUZMRU4s ICIlLipzJWMlcyIsCisgICAgICAgICAgICAgICAgbGVuLCBzZWxmX25hbWUsIEZOX0xJQkNIQVIs IHRvb2xfbmFtZSk7CisgIH0KIAotICAvKiBNYWtlIHN1cmUgdGhlIHRvb2wgZXhpc3RzICovCi0g IGlmIChteV9hY2Nlc3ModG9vbF9wYXRoLCBGX09LKSAhPSAwKQotICAgIGRpZSgiQ2FuJ3QgZmlu ZCAnJXMnIiwgdG9vbF9wYXRoKTsKKyAgdmVyYm9zZSgiTG9va2luZyBmb3IgJyVzJyBhczogJXMi LCB0b29sX25hbWUsIHRvb2xfZXhlY3V0YWJsZV9uYW1lKTsKIAogICAvKgogICAgIE1ha2Ugc3Vy ZSBpdCBjYW4gYmUgZXhlY3V0ZWQKICAgKi8KLSAgaWYgKHJ1bl90b29sKHRvb2xfcGF0aCwKKyAg aWYgKHJ1bl90b29sKHRvb2xfZXhlY3V0YWJsZV9uYW1lLAogICAgICAgICAgICAgICAgJmRzX3Rt cCwgLyogR2V0IG91dHB1dCBmcm9tIGNvbW1hbmQsIGRpc2NhcmQqLwogICAgICAgICAgICAgICAg Ii0taGVscCIsCiAgICAgICAgICAgICAgICAiMj4mMSIsCiAgICAgICAgICAgICAgICBJRl9XSU4o Ij4gTlVMIiwgIj4gL2Rldi9udWxsIiksCiAgICAgICAgICAgICAgICBOVUxMKSkKLSAgICBkaWUo IkNhbid0IGV4ZWN1dGUgJyVzJyIsIHRvb2xfcGF0aCk7CisgICAgZGllKCJDYW4ndCBleGVjdXRl ICclcyciLCB0b29sX2V4ZWN1dGFibGVfbmFtZSk7CiAKICAgZHluc3RyX2ZyZWUoJmRzX3RtcCk7 CiAKQEAgLTc1OSwxMSArNzIzLDIwIEBAIHN0YXRpYyBjb25zdCBjaGFyICpsb2FkX2RlZmF1bHRf Z3JvdXBzW10KIAogaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogeworICBjaGFyIHNl bGZfbmFtZVtGTl9SRUZMRU5dOworCiAgIE1ZX0lOSVQoYXJndlswXSk7CiAjaWZkZWYgX19ORVRX QVJFX18KICAgc2V0c2NyZWVubW9kZShTQ1JfQVVUT0NMT1NFX09OX0VYSVQpOwogI2VuZGlmCiAK KyNpZiBfX1dJTl9fCisgIGlmIChHZXRNb2R1bGVGaWxlTmFtZShOVUxMLCBzZWxmX25hbWUsIEZO X1JFRkxFTikgPT0gMCkKKyNlbmRpZgorICB7CisgICAgc3RybmNweShzZWxmX25hbWUsIGFyZ3Zb MF0sIEZOX1JFRkxFTik7CisgIH0KKwogICBpZiAoaW5pdF9keW5hbWljX3N0cmluZygmZHNfYXJn cywgIiIsIDUxMiwgMjU2KSkKICAgICBkaWUoIk91dCBvZiBtZW1vcnkiKTsKIApAQCAtNzg5LDEw ICs3NjIsMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICBkeW5zdHJfYXBw ZW5kKCZkc19hcmdzLCAiICIpOwogCiAgIC8qIEZpbmQgbXlzcWwgKi8KLSAgZmluZF90b29sKG15 c3FsX3BhdGgsIElGX1dJTigibXlzcWwuZXhlIiwgIm15c3FsIikpOworICBmaW5kX3Rvb2wobXlz cWxfcGF0aCwgSUZfV0lOKCJteXNxbC5leGUiLCAibXlzcWwiKSwgc2VsZl9uYW1lKTsKIAogICAv KiBGaW5kIG15c3FsY2hlY2sgKi8KLSAgZmluZF90b29sKG15c3FsY2hlY2tfcGF0aCwgSUZfV0lO KCJteXNxbGNoZWNrLmV4ZSIsICJteXNxbGNoZWNrIikpOworICBmaW5kX3Rvb2wobXlzcWxjaGVj a19wYXRoLCBJRl9XSU4oIm15c3FsY2hlY2suZXhlIiwgIm15c3FsY2hlY2siKSwgc2VsZl9uYW1l KTsKIAogICAvKgogICAgIFJlYWQgdGhlIG15c3FsX3VwZ3JhZGVfaW5mbyBmaWxlIHRvIGNoZWNr IGlmIG15c3FsX3VwZ3JhZGUKCj09PSBtb2RpZmllZCBmaWxlICdjbGllbnQvbXlzcWx0ZXN0LmMn Ci0tLSBhL2NsaWVudC9teXNxbHRlc3QuYwkyMDA4LTA3LTI0IDA4OjI2OjI0ICswMDAwCisrKyBi L2NsaWVudC9teXNxbHRlc3QuYwkyMDA4LTA4LTA1IDIzOjI2OjE4ICswMDAwCkBAIC0zODYxLDEy ICszODYxLDEzIEBAIHR5cGVkZWYgc3RydWN0CiB7CiAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgIHVp bnQgICAgICAgIGNvZGU7CisgIGNvbnN0IGNoYXIgKnRleHQ7CiB9IHN0X2Vycm9yOwogCiBzdGF0 aWMgc3RfZXJyb3IgZ2xvYmFsX2Vycm9yX25hbWVzW10gPQogewogI2luY2x1ZGUgPG15c3FsZF9l cm5hbWUuaD4KLSAgeyAwLCAwIH0KKyAgeyAwLCAwLCAwIH0KIH07CiAKIHVpbnQgZ2V0X2VycmNv ZGVfZnJvbV9uYW1lKGNoYXIgKmVycm9yX25hbWUsIGNoYXIgKmVycm9yX2VuZCkKCj09PSBtb2Rp ZmllZCBmaWxlICdjb25maWcvYWMtbWFjcm9zL2NoYXJhY3Rlcl9zZXRzLm00JwotLS0gYS9jb25m aWcvYWMtbWFjcm9zL2NoYXJhY3Rlcl9zZXRzLm00CTIwMDgtMDItMjYgMTk6NTQ6MTkgKzAwMDAK KysrIGIvY29uZmlnL2FjLW1hY3Jvcy9jaGFyYWN0ZXJfc2V0cy5tNAkyMDA4LTA3LTI5IDAzOjQy OjA3ICswMDAwCkBAIC0zNTgsOCArMzU4LDggQEAgY2FzZSAkZGVmYXVsdF9jaGFyc2V0IGluIAog ICAgICAgZGVmYXVsdF9jaGFyc2V0X2RlZmF1bHRfY29sbGF0aW9uPSJ1Y3MyX2dlbmVyYWxfY2ki CiAgICAgICBkZWZpbmUoVUNTQzEsIHVjczJfZ2VuZXJhbF9jaSB1Y3MyX2JpbikKICAgICAgIGRl ZmluZShVQ1NDMiwgdWNzMl9jemVjaF9jaSB1Y3MyX2RhbmlzaF9jaSkKLSAgICAgIGRlZmluZShV Q1NDMywgdWNzMl9lc3BlcmFudG9fY2kgdWNzMl9lc3Rvbmlhbl9jaSB1Y3MyX2ljZWxhbmRpY19j aSkKLSAgICAgIGRlZmluZShVQ1NDNCwgdWNzMl9sYXR2aWFuX2NpIHVjczJfbGl0aHVhbmlhbl9j aSkKKyAgICAgIGRlZmluZShVQ1NDMywgdWNzMl9lc3BlcmFudG9fY2kgdWNzMl9lc3Rvbmlhbl9j aSB1Y3MyX2h1bmdhcmlhbl9jaSkKKyAgICAgIGRlZmluZShVQ1NDNCwgdWNzMl9pY2VsYW5kaWNf Y2kgdWNzMl9sYXR2aWFuX2NpIHVjczJfbGl0aHVhbmlhbl9jaSkKICAgICAgIGRlZmluZShVQ1ND NSwgdWNzMl9wZXJzaWFuX2NpIHVjczJfcG9saXNoX2NpIHVjczJfcm9tYW5pYW5fY2kpCiAgICAg ICBkZWZpbmUoVUNTQzYsIHVjczJfc2luaGFsYV9jaSB1Y3MyX3Nsb3Zha19jaSB1Y3MyX3Nsb3Zl bmlhbl9jaSkKICAgICAgIGRlZmluZShVQ1NDNywgdWNzMl9zcGFuaXNoMl9jaSB1Y3MyX3NwYW5p c2hfY2kpCkBAIC0zNzYsOCArMzc2LDggQEAgY2FzZSAkZGVmYXVsdF9jaGFyc2V0IGluIAogICAg ICAgZGVmYXVsdF9jaGFyc2V0X2RlZmF1bHRfY29sbGF0aW9uPSJ1dGY4X2dlbmVyYWxfY2kiCiAg ICAgICBkZWZpbmUoVVRGQzEsIHV0ZjhfZ2VuZXJhbF9jaSB1dGY4X2JpbikKICAgICAgIGRlZmlu ZShVVEZDMiwgdXRmOF9jemVjaF9jaSB1dGY4X2RhbmlzaF9jaSkKLSAgICAgIGRlZmluZShVVEZD MywgdXRmOF9lc3BlcmFudG9fY2kgdXRmOF9lc3Rvbmlhbl9jaSB1dGY4X2ljZWxhbmRpY19jaSkK LSAgICAgIGRlZmluZShVVEZDNCwgdXRmOF9sYXR2aWFuX2NpIHV0ZjhfbGl0aHVhbmlhbl9jaSkK KyAgICAgIGRlZmluZShVVEZDMywgdXRmOF9lc3BlcmFudG9fY2kgdXRmOF9lc3Rvbmlhbl9jaSB1 dGY4X2h1bmdhcmlhbl9jaSkKKyAgICAgIGRlZmluZShVVEZDNCwgdXRmOF9pY2VsYW5kaWNfY2kg dXRmOF9sYXR2aWFuX2NpIHV0ZjhfbGl0aHVhbmlhbl9jaSkKICAgICAgIGRlZmluZShVVEZDNSwg dXRmOF9wZXJzaWFuX2NpIHV0ZjhfcG9saXNoX2NpIHV0Zjhfcm9tYW5pYW5fY2kpCiAgICAgICBk ZWZpbmUoVVRGQzYsIHV0Zjhfc2luaGFsYV9jaSB1dGY4X3Nsb3Zha19jaSB1dGY4X3Nsb3Zlbmlh bl9jaSkKICAgICAgIGRlZmluZShVVEZDNywgdXRmOF9zcGFuaXNoMl9jaSB1dGY4X3NwYW5pc2hf Y2kpCkBAIC0zOTYsOCArMzk2LDggQEAgY2FzZSAkZGVmYXVsdF9jaGFyc2V0IGluIAogICAgICAg ZWxzZQogICAgICAgICBkZWZpbmUoVVRGQzEsIHV0ZjhtYjNfZ2VuZXJhbF9jaSB1dGY4bWIzX2Jp bikKICAgICAgICAgZGVmaW5lKFVURkMyLCB1dGY4bWIzX2N6ZWNoX2NpIHV0ZjhtYjNfZGFuaXNo X2NpKQotICAgICAgICBkZWZpbmUoVVRGQzMsIHV0ZjhtYjNfZXNwZXJhbnRvX2NpIHV0ZjhtYjNf ZXN0b25pYW5fY2kgdXRmOG1iM19pY2VsYW5kaWNfY2kpCi0gICAgICAgIGRlZmluZShVVEZDNCwg dXRmOG1iM19sYXR2aWFuX2NpIHV0ZjhtYjNfbGl0aHVhbmlhbl9jaSkKKyAgICAgICAgZGVmaW5l KFVURkMzLCB1dGY4bWIzX2VzcGVyYW50b19jaSB1dGY4bWIzX2VzdG9uaWFuX2NpIHV0ZjhtYjNf aHVuZ2FyaWFuX2NpKQorICAgICAgICBkZWZpbmUoVVRGQzQsIHV0ZjhtYjNfaWNlbGFuZGljX2Np IHV0ZjhtYjNfbGF0dmlhbl9jaSB1dGY4bWIzX2xpdGh1YW5pYW5fY2kpCiAgICAgICAgIGRlZmlu ZShVVEZDNSwgdXRmOG1iM19wZXJzaWFuX2NpIHV0ZjhtYjNfcG9saXNoX2NpIHV0ZjhtYjNfcm9t YW5pYW5fY2kpCiAgICAgICAgIGRlZmluZShVVEZDNiwgdXRmOG1iM19zaW5oYWxhX2NpIHV0Zjht YjNfc2xvdmFrX2NpIHV0ZjhtYjNfc2xvdmVuaWFuX2NpKQogICAgICAgICBkZWZpbmUoVVRGQzcs IHV0ZjhtYjNfc3BhbmlzaDJfY2kgdXRmOG1iM19zcGFuaXNoX2NpKQpAQCAtNDExLDggKzQxMSw4 IEBAIGNhc2UgJGRlZmF1bHRfY2hhcnNldCBpbiAKICAgICAgIGRlZmF1bHRfY2hhcnNldF9kZWZh dWx0X2NvbGxhdGlvbj0idXRmMTZfZ2VuZXJhbF9jaSIKICAgICAgIGRlZmluZShVVEZDMSwgdXRm MTZfZ2VuZXJhbF9jaSB1dGYxNl9iaW4pCiAgICAgICBkZWZpbmUoVVRGQzIsIHV0ZjE2X2N6ZWNo X2NpIHV0ZjE2X2RhbmlzaF9jaSkKLSAgICAgIGRlZmluZShVVEZDMywgdXRmMTZfZXNwZXJhbnRv X2NpIHV0ZjE2X2VzdG9uaWFuX2NpIHV0ZjE2X2ljZWxhbmRpY19jaSkKLSAgICAgIGRlZmluZShV VEZDNCwgdXRmMTZfbGF0dmlhbl9jaSB1dGYxNl9saXRodWFuaWFuX2NpKQorICAgICAgZGVmaW5l KFVURkMzLCB1dGYxNl9lc3BlcmFudG9fY2kgdXRmMTZfZXN0b25pYW5fY2kgdXRmMTZfaHVuZ2Fy aWFuX2NpKQorICAgICAgZGVmaW5lKFVURkM0LCB1dGYxNl9pY2VsYW5kaWNfY2kgdXRmMTZfbGF0 dmlhbl9jaSB1dGYxNl9saXRodWFuaWFuX2NpKQogICAgICAgZGVmaW5lKFVURkM1LCB1dGYxNl9w ZXJzaWFuX2NpIHV0ZjE2X3BvbGlzaF9jaSB1dGYxNl9yb21hbmlhbl9jaSkKICAgICAgIGRlZmlu ZShVVEZDNiwgdXRmMTZfc2luaGFsYV9jaSB1dGYxNl9zbG92YWtfY2kgdXRmMTZfc2xvdmVuaWFu X2NpKQogICAgICAgZGVmaW5lKFVURkM3LCB1dGYxNl9zcGFuaXNoMl9jaSB1dGYxNl9zcGFuaXNo X2NpKQpAQCAtNDI1LDggKzQyNSw4IEBAIGNhc2UgJGRlZmF1bHRfY2hhcnNldCBpbiAKICAgICAg IGRlZmF1bHRfY2hhcnNldF9kZWZhdWx0X2NvbGxhdGlvbj0idXRmMzJfZ2VuZXJhbF9jaSIKICAg ICAgIGRlZmluZShVVEZDMSwgdXRmMzJfZ2VuZXJhbF9jaSB1dGYzMl9iaW4pCiAgICAgICBkZWZp bmUoVVRGQzIsIHV0ZjMyX2N6ZWNoX2NpIHV0ZjMyX2RhbmlzaF9jaSkKLSAgICAgIGRlZmluZShV VEZDMywgdXRmMzJfZXNwZXJhbnRvX2NpIHV0ZjMyX2VzdG9uaWFuX2NpIHV0ZjMyX2ljZWxhbmRp Y19jaSkKLSAgICAgIGRlZmluZShVVEZDNCwgdXRmMzJfbGF0dmlhbl9jaSB1dGYzMl9saXRodWFu aWFuX2NpKQorICAgICAgZGVmaW5lKFVURkMzLCB1dGYzMl9lc3BlcmFudG9fY2kgdXRmMzJfZXN0 b25pYW5fY2kgdXRmMzJfaHVuZ2FyaWFuX2NpKQorICAgICAgZGVmaW5lKFVURkM0LCB1dGYzMl9p Y2VsYW5kaWNfY2kgdXRmMzJfbGF0dmlhbl9jaSB1dGYzMl9saXRodWFuaWFuX2NpKQogICAgICAg ZGVmaW5lKFVURkM1LCB1dGYzMl9wZXJzaWFuX2NpIHV0ZjMyX3BvbGlzaF9jaSB1dGYzMl9yb21h bmlhbl9jaSkKICAgICAgIGRlZmluZShVVEZDNiwgdXRmMzJfc2luaGFsYV9jaSB1dGYzMl9zbG92 YWtfY2kgdXRmMzJfc2xvdmVuaWFuX2NpKQogICAgICAgZGVmaW5lKFVURkM3LCB1dGYzMl9zcGFu aXNoMl9jaSB1dGYzMl9zcGFuaXNoX2NpKQoKPT09IG1vZGlmaWVkIGZpbGUgJ2NvbmZpZ3VyZS5p bicKLS0tIGEvY29uZmlndXJlLmluCTIwMDgtMDctMjMgMTE6Mjg6MjAgKzAwMDAKKysrIGIvY29u ZmlndXJlLmluCTIwMDgtMDgtMTIgMDQ6Mzg6NTAgKzAwMDAKQEAgLTY0MywxOSArNjQzLDE5IEBA IGZpCiBBQ19NU0dfQ0hFQ0tJTkcod2hldGhlciBmZWF0dXJlcyBwcm92aWRlZCBieSB0aGUgdXNl ciBjb21tdW5pdHkgc2hvdWxkIGJlIGluY2x1ZGVkLikKIEFDX0FSR19FTkFCTEUoY29tbXVuaXR5 LWZlYXR1cmVzLAogICAgIEFDX0hFTFBfU1RSSU5HKAotICAgICAgICBbLS1lbmFibGUtY29tbXVu aXR5LWZlYXR1cmVzXSwgCi0gICAgICAgIFtFbmFibGUgYWRkaXRpb25hbCBmZWF0dXJlcyBwcm92 aWRlZCBieSB0aGUgdXNlciBjb21tdW5pdHkuXSksCisgICAgICAgIFstLWRpc2FibGUtY29tbXVu aXR5LWZlYXR1cmVzXSwgCisgICAgICAgIFtEaXNhYmxlIGFkZGl0aW9uYWwgZmVhdHVyZXMgcHJv dmlkZWQgYnkgdGhlIHVzZXIgY29tbXVuaXR5Ll0pLAogICAgIFsgRU5BQkxFX0NPTU1VTklUWV9G RUFUVVJFUz0kZW5hYmxldmFsIF0sCi0gICAgWyBFTkFCTEVfQ09NTVVOSVRZX0ZFQVRVUkVTPW5v IF0KKyAgICBbIEVOQUJMRV9DT01NVU5JVFlfRkVBVFVSRVM9eWVzIF0KICAgICApCiAKIGlmIHRl c3QgIiRFTkFCTEVfQ09NTVVOSVRZX0ZFQVRVUkVTIiA9ICJ5ZXMiCiB0aGVuCiAgIEFDX0RFRklO RShbQ09NTVVOSVRZX1NFUlZFUl0sIFsxXSwKICAgICAgICAgICAgIFtXaGV0aGVyIGZlYXR1cmVz IHByb3ZpZGVkIGJ5IHRoZSB1c2VyIGNvbW11bml0eSBzaG91bGQgYmUgaW5jbHVkZWRdKQotICBB Q19NU0dfUkVTVUxUKFt5ZXMsIGNvbW11bml0eSBzZXJ2ZXJdKQorICBBQ19NU0dfUkVTVUxUKFt5 ZXNdKQogZWxzZQotICBBQ19NU0dfUkVTVUxUKFtubywgZW50ZXJwcmlzZSBzZXJ2ZXJdKQorICBB Q19NU0dfUkVTVUxUKFtub10pCiBmaQogCiBBQ19BUkdfV0lUSChzZXJ2ZXItc3VmZml4LAoKPT09 IG1vZGlmaWVkIGZpbGUgJ2V4dHJhL2NvbXBfZXJyLmMnCi0tLSBhL2V4dHJhL2NvbXBfZXJyLmMJ MjAwOC0wNC0wOSAwMDo1Njo0OSArMDAwMAorKysgYi9leHRyYS9jb21wX2Vyci5jCTIwMDgtMDgt MDYgMTk6MjA6NTcgKzAwMDAKQEAgLTE5OSwxMSArMTk5LDMzIEBAIGludCBtYWluKGludCBhcmdj LCBjaGFyICphcmd2W10pCiB9CiAKIAorc3RhdGljIHZvaWQgcHJpbnRfZXNjYXBlZF9zdHJpbmco RklMRSAqZiwgY29uc3QgY2hhciAqc3RyKQoreworICBjb25zdCBjaGFyICp0bXAgPSBzdHI7CisK KyAgd2hpbGUgKHRtcFswXSAhPSAwKQorICB7CisgICAgc3dpdGNoICh0bXBbMF0pCisgICAgewor ICAgICAgY2FzZSAnXFwnOiBmcHJpbnRmKGYsICJcXFxcIik7IGJyZWFrOworICAgICAgY2FzZSAn XCcnOiBmcHJpbnRmKGYsICJcXFwnIik7IGJyZWFrOworICAgICAgY2FzZSAnXCInOiBmcHJpbnRm KGYsICJcXFwiIik7IGJyZWFrOworICAgICAgY2FzZSAnXG4nOiBmcHJpbnRmKGYsICJcXG4iKTsg YnJlYWs7CisgICAgICBjYXNlICdccic6IGZwcmludGYoZiwgIlxcciIpOyBicmVhazsKKyAgICAg IGRlZmF1bHQ6IGZwcmludGYoZiwgIiVjIiwgdG1wWzBdKTsKKyAgICB9CisgICAgdG1wKys7Cisg IH0KK30KKworCiBzdGF0aWMgaW50IGNyZWF0ZV9oZWFkZXJfZmlsZXMoc3RydWN0IGVycm9ycyAq ZXJyb3JfaGVhZCkKIHsKICAgdWludCBlcl9sYXN0OwogICBGSUxFICplcl9kZWZpbmVmLCAqc3Fs X3N0YXRlZiwgKmVyX25hbWVmOwogICBzdHJ1Y3QgZXJyb3JzICp0bXBfZXJyb3I7CisgIHN0cnVj dCBtZXNzYWdlICplcl9tc2c7CisgIGNvbnN0IGNoYXIgKmVyX3RleHQ7CiAgIERCVUdfRU5URVIo ImNyZWF0ZV9oZWFkZXJfZmlsZXMiKTsKICAgTElOVF9JTklUKGVyX2xhc3QpOwogCkBAIC0yNDUs OCArMjY3LDEyIEBAIHN0YXRpYyBpbnQgY3JlYXRlX2hlYWRlcl9maWxlcyhzdHJ1Y3QgZXIKIAkg ICAgICAieyAlLTQwcyxcIiVzXCIsIFwiJXNcIiB9LFxuIiwgdG1wX2Vycm9yLT5lcl9uYW1lLAog CSAgICAgIHRtcF9lcnJvci0+c3FsX2NvZGUxLCB0bXBfZXJyb3ItPnNxbF9jb2RlMik7CiAgICAg LypnZW5lcmF0aW5nIGVyX25hbWUgZmlsZSAqLwotICAgIGZwcmludGYoZXJfbmFtZWYsICJ7IFwi JXNcIiwgJWQgfSxcbiIsIHRtcF9lcnJvci0+ZXJfbmFtZSwKKyAgICBlcl9tc2c9IGZpbmRfbWVz c2FnZSh0bXBfZXJyb3IsIGRlZmF1bHRfbGFuZ3VhZ2UsIEZBTFNFKTsKKyAgICBlcl90ZXh0ID0g KGVyX21zZyA/IGVyX21zZy0+dGV4dCA6ICIiKTsKKyAgICBmcHJpbnRmKGVyX25hbWVmLCAieyBc IiVzXCIsICVkLCBcIiIsIHRtcF9lcnJvci0+ZXJfbmFtZSwKIAkgICAgdG1wX2Vycm9yLT5kX2Nv ZGUpOworICAgIHByaW50X2VzY2FwZWRfc3RyaW5nKGVyX25hbWVmLCBlcl90ZXh0KTsKKyAgICBm cHJpbnRmKGVyX25hbWVmLCAiXCIgfSxcbiIpOwogCiAgIH0KICAgLyogZmluaXNoaW5nIG9mZiB3 aXRoIG15c3FsZF9lcnJvci5oICovCgo9PT0gbW9kaWZpZWQgZmlsZSAnZXh0cmEvcGVycm9yLmMn Ci0tLSBhL2V4dHJhL3BlcnJvci5jCTIwMDgtMDMtMjggMTk6NTk6MjAgKzAwMDAKKysrIGIvZXh0 cmEvcGVycm9yLmMJMjAwOC0wOC0wNSAyMzoyNjoxOCArMDAwMApAQCAtMTg0LDExICsxODQsNTEg QEAgc3RhdGljIGNvbnN0IGNoYXIgKmdldF9oYV9lcnJvcl9tc2coaW50IAogICByZXR1cm4gTnVs bFM7CiB9CiAKK3R5cGVkZWYgc3RydWN0Cit7CisgIGNvbnN0IGNoYXIgKm5hbWU7CisgIHVpbnQg ICAgICAgIGNvZGU7CisgIGNvbnN0IGNoYXIgKnRleHQ7Cit9IHN0X2Vycm9yOworCitzdGF0aWMg c3RfZXJyb3IgZ2xvYmFsX2Vycm9yX25hbWVzW10gPQoreworI2luY2x1ZGUgPG15c3FsZF9lcm5h bWUuaD4KKyAgeyAwLCAwLCAwIH0KK307CisKKy8qKgorICBMb29rdXAgYW4gZXJyb3IgYnkgY29k ZSBpbiB0aGUgZ2xvYmFsX2Vycm9yX25hbWVzIGFycmF5LgorICBAcGFyYW0gY29kZSB0aGUgY29k ZSB0byBsb29rdXAKKyAgQHBhcmFtIFtvdXRdIG5hbWVfcHRyIHRoZSBlcnJvciBuYW1lLCB3aGVu IGZvdW5kCisgIEBwYXJhbSBbb3V0XSBtc2dfcHRyIHRoZSBlcnJvciB0ZXh0LCB3aGVuIGZvdW5k CisgIEByZXR1cm4gMSB3aGVuIGZvdW5kLCBvdGhlcndpc2UgMAorKi8KK2ludCBnZXRfRVJfZXJy b3JfbXNnKHVpbnQgY29kZSwgY29uc3QgY2hhciAqKm5hbWVfcHRyLCBjb25zdCBjaGFyICoqbXNn X3B0cikKK3sKKyAgc3RfZXJyb3IgKnRtcF9lcnJvcjsKKworICB0bXBfZXJyb3I9ICYgZ2xvYmFs X2Vycm9yX25hbWVzWzBdOworCisgIHdoaWxlICh0bXBfZXJyb3ItPm5hbWUgIT0gTlVMTCkKKyAg eworICAgIGlmICh0bXBfZXJyb3ItPmNvZGUgPT0gY29kZSkKKyAgICB7CisgICAgICAqbmFtZV9w dHI9IHRtcF9lcnJvci0+bmFtZTsKKyAgICAgICptc2dfcHRyPSB0bXBfZXJyb3ItPnRleHQ7Cisg ICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgdG1wX2Vycm9yKys7CisgIH0KKworICByZXR1cm4g MDsKK30KIAogaW50IG1haW4oaW50IGFyZ2MsY2hhciAqYXJndltdKQogewogICBpbnQgZXJyb3Is Y29kZSxmb3VuZDsKICAgY29uc3QgY2hhciAqbXNnOworICBjb25zdCBjaGFyICpuYW1lOwogICBj aGFyICp1bmtub3duX2Vycm9yID0gMDsKICAgTVlfSU5JVChhcmd2WzBdKTsKIApAQCAtMjkxLDYg KzMzMSwxNCBAQCBpbnQgbWFpbihpbnQgYXJnYyxjaGFyICphcmd2W10pCiAgICAgICAgIGVsc2UK ICAgICAgICAgICBwdXRzKG1zZyk7CiAgICAgICB9CisgICAgICBpZiAoZ2V0X0VSX2Vycm9yX21z Zyhjb2RlLCAmIG5hbWUsICYgbXNnKSkKKyAgICAgIHsKKyAgICAgICAgZm91bmQ9IDE7CisgICAg ICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgIHByaW50ZigiTXlTUUwgZXJyb3IgY29kZSAlM2Qg KCVzKTogJXNcbiIsIGNvZGUsIG5hbWUsIG1zZyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICBw dXRzKG1zZyk7CisgICAgICB9CiAgICAgICBpZiAoIWZvdW5kKQogICAgICAgewogICAgICAgICBm cHJpbnRmKHN0ZGVyciwiSWxsZWdhbCBlcnJvciBjb2RlOiAlZFxuIiwgY29kZSk7Cgo9PT0gYWRk ZWQgZmlsZSAnbXlzcWwtdGVzdC9pbmNsdWRlL2hhdmVfbm9kZWJ1Zy5pbmMnCi0tLSBhL215c3Fs LXRlc3QvaW5jbHVkZS9oYXZlX25vZGVidWcuaW5jCTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAK KysrIGIvbXlzcWwtdGVzdC9pbmNsdWRlL2hhdmVfbm9kZWJ1Zy5pbmMJMjAwOC0wNy0yNCAxNjo1 MDoxOCArMDAwMApAQCAtMCwwICsxLDQgQEAKKy0tIHJlcXVpcmUgci9oYXZlX25vZGVidWcucmVx dWlyZQorZGlzYWJsZV9xdWVyeV9sb2c7CitzZWxlY3QgKHZlcnNpb24oKSBsaWtlICclZGVidWcl JykgYXMgZGVidWc7CitlbmFibGVfcXVlcnlfbG9nOwoKPT09IHJlbW92ZWQgZmlsZSAnbXlzcWwt dGVzdC9pbmNsdWRlL3dhaXRfdGltZW91dF9iYXNpYy5pbmMnCi0tLSBhL215c3FsLXRlc3QvaW5j bHVkZS93YWl0X3RpbWVvdXRfYmFzaWMuaW5jCTIwMDgtMDUtMDggMTg6MTM6MzkgKzAwMDAKKysr IGIvbXlzcWwtdGVzdC9pbmNsdWRlL3dhaXRfdGltZW91dF9iYXNpYy5pbmMJMTk3MC0wMS0wMSAw MDowMDowMCArMDAwMApAQCAtMSwyMTggKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMgbXlzcWwtdGVz dFx0XHdhaXRfdGltZW91dF9iYXNpYy50ZXN0ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwot IyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIwotIyBWYXJpYWJsZSBOYW1lOiB3YWl0X3RpbWVvdXQgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBTY29wZTog R0xPQkFMIHwgU0VTU0lPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIwotIyBBY2Nlc3MgVHlwZTogRHluYW1pYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBEYXRhIFR5cGU6IG51bWVy aWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIwotIyBEZWZhdWx0IFZhbHVlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBSYW5nZTogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIwotIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwotIyBDcmVhdGlvbiBE YXRlOiAyMDA4LTAyLTA3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIwotIyBBdXRob3I6ICBTaGFyaXF1ZSBBYmR1bGxhaCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICMKLSMgRGVzY3JpcHRpb246IFRlc3QgQ2FzZXMgb2YgRHluYW1pYyBTeXN0ZW0gVmFyaWFi bGUgd2FpdF90aW1lb3V0ICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgIHRoYXQgY2hlY2tz IHRoZSBiZWhhdmlvciBvZiB0aGlzIHZhcmlhYmxlIGluIHRoZSBmb2xsb3dpbmcgd2F5cyMKLSMg ICAgICAgICAgICAgICogRGVmYXVsdCBWYWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgICogVmFsaWQgJiBJbnZhbGlkIHZh bHVlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAg ICAgICogU2NvcGUgJiBBY2Nlc3MgbWV0aG9kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICMKLSMgICAgICAgICAgICAgICogRGF0YSBJbnRlZ3JpdHkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMKLSMgUmVmZXJlbmNlOiBodHRwOi8vZGV2Lm15c3FsLmNvbS9kb2MvcmVmbWFuLzUuMS9lbi8g ICAgICAgICAgICAgICAgICAgICAgICAgICMKLSMgIHNlcnZlci1zeXN0ZW0tdmFyaWFibGVzLmh0 bWwjb3B0aW9uX215c3FsZF93YWl0X3RpbWVvdXRzICAgICAgICAgICAgICAgICAgICMKLSMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgRHVlIHRvIGRpZmZl cm5jZXMgYmV0d2VlbiBsaW51eCBhbmQgd2luZG93cyBpbiB0aGUgcmVzdWx0cwotCi0tLXNvdXJj ZSBpbmNsdWRlL25vdF93aW5kb3dzLmluYwotLS1zb3VyY2UgaW5jbHVkZS9sb2FkX3N5c3ZhcnMu aW5jCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwotIyAgICAgICAgICAgU1RBUlQgT0Ygd2FpdF90aW1lb3V0IFRFU1RTICAgICAg ICAgICAgICAgICAgICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgU2F2ZSBpbml0 aWFsIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1TRVQgQHN0YXJ0X2ds b2JhbF92YWx1ZSA9IEBAZ2xvYmFsLndhaXRfdGltZW91dDsKLVNFVCBAc3RhcnRfc2Vzc2lvbl92 YWx1ZSA9IEBAc2Vzc2lvbi53YWl0X3RpbWVvdXQ7Ci0KLS0tZWNobyAnIy0tLS0tLS0tLS0tLS0t LS0tLS0tRk5fRFlOVkFSU18wMDVfMDEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKLSMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwot IyAgICAgRGlzcGxheSB0aGUgREVGQVVMVCB2YWx1ZSBvZiB3YWl0X3RpbWVvdXQgICAgICAgICAg ICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKLQotU0VUIEBAZ2xvYmFsLndhaXRfdGltZW91dCA9IDEwMDsKLVNFVCBAQGdsb2Jh bC53YWl0X3RpbWVvdXQgPSBERUZBVUxUOwotU0VMRUNUIEBAZ2xvYmFsLndhaXRfdGltZW91dDsK LQotU0VUIEBAc2Vzc2lvbi53YWl0X3RpbWVvdXQgPSAyMDA7Ci1TRVQgQEBzZXNzaW9uLndhaXRf dGltZW91dCA9IERFRkFVTFQ7Ci1TRUxFQ1QgQEBzZXNzaW9uLndhaXRfdGltZW91dDsKLQotCi0t LWVjaG8gJyMtLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDA1XzAyLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSMnCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgICAgIENoZWNrIHRoZSBERUZBVUxUIHZhbHVlIG9mIHdh aXRfdGltZW91dCAgICAgICAgICAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLVNFVCBAQGdsb2JhbC53YWl0X3RpbWVv dXQgPSBERUZBVUxUOwotU0VMRUNUIEBAZ2xvYmFsLndhaXRfdGltZW91dCA9IEBkZWZhdWx0X3dh aXRfdGltZW91dDsKLQotU0VUIEBAc2Vzc2lvbi53YWl0X3RpbWVvdXQgPSBERUZBVUxUOwotU0VM RUNUIEBAc2Vzc2lvbi53YWl0X3RpbWVvdXQgPSBAZGVmYXVsdF93YWl0X3RpbWVvdXQ7Ci0KLQot Ci0tLWVjaG8gJyMtLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDA1XzAzLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSMnCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIENoYW5nZSB0aGUgdmFsdWUgb2Yg d2FpdF90aW1lb3V0IHRvIGEgdmFsaWQgdmFsdWUgZm9yIEdMT0JBTCBTY29wZSAjCi0jIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCi0KLSNTRVQgQEBnbG9iYWwud2FpdF90aW1lb3V0PSBAbWluX3dhaXRfdGltZW91dDsK LVNFVCBAQGdsb2JhbC53YWl0X3RpbWVvdXQ9IDE7Ci1TRUxFQ1QgQEBnbG9iYWwud2FpdF90aW1l b3V0OwotCi1TRVQgQEBnbG9iYWwud2FpdF90aW1lb3V0ID0gNjAwMjA7Ci1TRUxFQ1QgQEBnbG9i YWwud2FpdF90aW1lb3V0OwotCi0jU0VUIEBAZ2xvYmFsLndhaXRfdGltZW91dCA9IEBtYXhfd2Fp dF90aW1lb3V0OwotU0VUIEBAZ2xvYmFsLndhaXRfdGltZW91dCA9IDMxNTM2MDAwOwotU0VMRUNU IEBAZ2xvYmFsLndhaXRfdGltZW91dCA9IEBtYXhfd2FpdF90aW1lb3V0OwotCi0KLS0tZWNobyAn Iy0tLS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wMDVfMDQtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tIycKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIENoYW5nZSB0aGUgdmFsdWUgb2Ygd2FpdF90aW1l b3V0IHRvIGEgdmFsaWQgdmFsdWUgZm9yIFNFU1NJT04gU2NvcGUgIwotIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK LSNTRVQgQEBzZXNzaW9uLndhaXRfdGltZW91dCA9IEBtaW5fd2FpdF90aW1lb3V0OwotI1NFTEVD VCBAQHNlc3Npb24ud2FpdF90aW1lb3V0OwotCi1TRVQgQEBzZXNzaW9uLndhaXRfdGltZW91dCA9 NjAwMDsKLVNFTEVDVCBAQHNlc3Npb24ud2FpdF90aW1lb3V0OwotCi0jU0VUIEBAc2Vzc2lvbi53 YWl0X3RpbWVvdXQgPSBAbWF4X3dhaXRfdGltZW91dDsKLSNTRUxFQ1QgQEBzZXNzaW9uLndhaXRf dGltZW91dCA9IEBtYXhfd2FpdF90aW1lb3V0OwotCi0KLS0tZWNobyAnIy0tLS0tLS0tLS0tLS0t LS0tLUZOX0RZTlZBUlNfMDA1XzA1LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJwotIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgQ2hhbmdl IHRoZSB2YWx1ZSBvZiB3YWl0X3RpbWVvdXQgdG8gYW4gaW52YWxpZCB2YWx1ZSAjCi0jIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1TRVQg QEBnbG9iYWwud2FpdF90aW1lb3V0ID0gMDsKLVNFVCBAQGdsb2JhbC53YWl0X3RpbWVvdXQgPSAt MTAyNDsKLQotLS1lY2hvICdCdWcgIyAzNDgzNzogRXJyb3JzIGFyZSBub3QgY29taW5nIG9uIGFz c2lnbmluZyBpbnZhbGlkIHZhbHVlcyB0byB2YXJpYWJsZSc7Ci0KLS0tRXJyb3IgRVJfV1JPTkdf VFlQRV9GT1JfVkFSCi1TRVQgQEBnbG9iYWwud2FpdF90aW1lb3V0ID0gT047Ci0KLS0tRXJyb3Ig RVJfV1JPTkdfVFlQRV9GT1JfVkFSCi1TRVQgQEBnbG9iYWwud2FpdF90aW1lb3V0ID0gT0ZGOwot Ci1TRVQgQEBnbG9iYWwud2FpdF90aW1lb3V0ID0gVHJ1ZTsKLVNFTEVDVCBAQGdsb2JhbC53YWl0 X3RpbWVvdXQ7Ci0KLVNFVCBAQGdsb2JhbC53YWl0X3RpbWVvdXQgPSBGYWxzZTsKLVNFTEVDVCBA QGdsb2JhbC53YWl0X3RpbWVvdXQ7Ci0KLS0tRXJyb3IgRVJfV1JPTkdfVFlQRV9GT1JfVkFSCi1T RVQgQEBnbG9iYWwud2FpdF90aW1lb3V0ID0gNjU1MzAuMzQ7Ci0KLS0tRXJyb3IgRVJfV1JPTkdf VFlQRV9GT1JfVkFSCi1TRVQgQEBnbG9iYWwud2FpdF90aW1lb3V0ID0iVGVzdCI7Ci0KLQotLS1F cnJvciBFUl9XUk9OR19UWVBFX0ZPUl9WQVIKLVNFVCBAQHNlc3Npb24ud2FpdF90aW1lb3V0ID0g T047Ci0KLQotLS1FcnJvciBFUl9XUk9OR19UWVBFX0ZPUl9WQVIKLVNFVCBAQHNlc3Npb24ud2Fp dF90aW1lb3V0ID0gT0ZGOwotCi1TRVQgQEBzZXNzaW9uLndhaXRfdGltZW91dCA9IFRydWU7Ci1T RUxFQ1QgQEBzZXNzaW9uLndhaXRfdGltZW91dDsKLQotU0VUIEBAc2Vzc2lvbi53YWl0X3RpbWVv dXQgPSBGYWxzZTsKLVNFTEVDVCBAQHNlc3Npb24ud2FpdF90aW1lb3V0OwotCi0KLS0tRXJyb3Ig RVJfV1JPTkdfVFlQRV9GT1JfVkFSCi1TRVQgQEBzZXNzaW9uLndhaXRfdGltZW91dCA9ICJUZXN0 IjsKLQotCi0tLUVycm9yIEVSX1dST05HX1RZUEVfRk9SX1ZBUgotU0VUIEBAc2Vzc2lvbi53YWl0 X3RpbWVvdXQgPSAndGVzdCc7Ci0KLVNFVCBAQHNlc3Npb24ud2FpdF90aW1lb3V0ID0gMTIzNDU2 Nzg5MDMxOwotU0VMRUNUIEBAc2Vzc2lvbi53YWl0X3RpbWVvdXQgPSBAbWF4X3dhaXRfdGltZW91 dDsKLQotCi0tLWVjaG8gJyMtLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJTXzAwNV8wNi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tIycKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jICAgQ2hlY2sgaWYgdGhlIHZhbHVl IGluIEdMT0JBTCBUYWJsZSBtYXRjaGVzIHZhbHVlIGluIHZhcmlhYmxlICAgIwotIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKLQotU0VMRUNUIEBAZ2xvYmFsLndhaXRfdGltZW91dCA9IFZBUklBQkxFX1ZBTFVFIAotRlJP TSBJTkZPUk1BVElPTl9TQ0hFTUEuR0xPQkFMX1ZBUklBQkxFUyAKLVdIRVJFIFZBUklBQkxFX05B TUU9J3dhaXRfdGltZW91dCc7Ci0KLS0tZWNobyAnIy0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZB UlNfMDA1XzA3LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJwotIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgIENoZWNr IGlmIHRoZSB2YWx1ZSBpbiBTRVNTSU9OIFRhYmxlIG1hdGNoZXMgdmFsdWUgaW4gdmFyaWFibGUg ICAjCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIwotCi1TRUxFQ1QgQEBzZXNzaW9uLndhaXRfdGltZW91dCA9IFZBUklB QkxFX1ZBTFVFIAotRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuU0VTU0lPTl9WQVJJQUJMRVMKLVdI RVJFIFZBUklBQkxFX05BTUU9J3dhaXRfdGltZW91dCc7Ci0KLS0tZWNobyAnIy0tLS0tLS0tLS0t LS0tLS0tLS0tLUZOX0RZTlZBUlNfMDAxXzA5LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCi0jIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKLSMgIENoZWNrIGlmIGdsb2JhbCBhbmQgc2Vzc2lvbiB2YXJpYWJsZSBh cmUgaW5kZXBlbmRlbnQgb2YgZWFjaCBvdGhlciAgICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0K LVNFVCBAQGdsb2JhbC53YWl0X3RpbWVvdXQgPSAzMDAwMDsKLVNFVCBAQGdsb2JhbC53YWl0X3Rp bWVvdXQgPSA0MDAwMDsKLVNFTEVDVCBAQHdhaXRfdGltZW91dCA9IEBAZ2xvYmFsLndhaXRfdGlt ZW91dDsKLQotLS1lY2hvICcjLS0tLS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wMDFfMTAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgICBDaGVjayBpZiBh Y2Nlc3NpbmcgdmFyaWFibGUgd2l0aCBTRVNTSU9OLExPQ0FMIGFuZCB3aXRob3V0IFNDT1BFICAj Ci0jICAgIHBvaW50cyB0byBzYW1lIHNlc3Npb24gdmFyaWFibGUgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICMKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1TRVQgQEB3YWl0X3RpbWVvdXQg PSAxMDA7Ci1TRUxFQ1QgQEB3YWl0X3RpbWVvdXQgPSBAQGxvY2FsLndhaXRfdGltZW91dDsKLVNF TEVDVCBAQGxvY2FsLndhaXRfdGltZW91dCA9IEBAc2Vzc2lvbi53YWl0X3RpbWVvdXQ7Ci0KLS0t ZWNobyAnIy0tLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDAxXzExLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSMnCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyAgIENoZWNrIGlmIHdhaXRfdGltZW91dCBj YW4gYmUgYWNjZXNzZWQgd2l0aCBhbmQgd2l0aG91dCBAQCBzaWduICAgICMKLSMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCi0KLVNFVCB3YWl0X3RpbWVvdXQgPSAxMDI3OwotU0VMRUNUIEBAd2FpdF90aW1lb3V0Owot Ci0KLS0tRXJyb3IgRVJfVU5LTk9XTl9UQUJMRQotU0VMRUNUIGxvY2FsLndhaXRfdGltZW91dDsK LQotLS1FcnJvciBFUl9VTktOT1dOX1RBQkxFCi1TRUxFQ1Qgc2Vzc2lvbi53YWl0X3RpbWVvdXQ7 Ci0KLS0tRXJyb3IgRVJfQkFEX0ZJRUxEX0VSUk9SCi1TRUxFQ1Qgd2FpdF90aW1lb3V0ID0gQEBz ZXNzaW9uLndhaXRfdGltZW91dDsKLQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKLSMgICAgIFJlc3RvcmUgaW5pdGlhbCB2YWx1ZSAgICAgICAgIwotIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLVNFVCBAQGdsb2JhbC53YWl0X3RpbWVvdXQgPSBA c3RhcnRfZ2xvYmFsX3ZhbHVlOwotU0VUIEBAc2Vzc2lvbi53YWl0X3RpbWVvdXQgPSBAc3RhcnRf c2Vzc2lvbl92YWx1ZTsKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwotIyAgICAgICAgICAgICAgICAgRU5EIE9GIHdhaXRfdGltZW91dCBURVNUUyAg ICAgIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoK PT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3QvbXlzcWwtdGVzdC1ydW4ucGwnCi0tLSBhL215 c3FsLXRlc3QvbXlzcWwtdGVzdC1ydW4ucGwJMjAwOC0wNy0yNCAxNDozMzoxMCArMDAwMAorKysg Yi9teXNxbC10ZXN0L215c3FsLXRlc3QtcnVuLnBsCTIwMDgtMDgtMDcgMTQ6MTk6NTQgKzAwMDAK QEAgLTE0NzQsMTMgKzE0NzQsMTUgQEAgc3ViIGV4ZWN1dGFibGVfc2V0dXBfbmRiICgpIHsKIAog ICAkZXhlX25kYmQ9CiAgICAgbXRyX2V4ZV9tYXliZV9leGlzdHMoIiRuZGJfcGF0aC9zcmMva2Vy bmVsL25kYmQiLAotCQkJICIkbmRiX3BhdGgvbmRiZCIpOworCQkJICIkbmRiX3BhdGgvbmRiZCIs CisJCQkgIiRnbG9iX2Jhc2VkaXIvbGliZXhlYy9uZGJkIik7CiAgICRleGVfbmRiX21nbT0KICAg ICBtdHJfZXhlX21heWJlX2V4aXN0cygiJG5kYl9wYXRoL3NyYy9tZ21jbGllbnQvbmRiX21nbSIs CiAJCQkgIiRuZGJfcGF0aC9uZGJfbWdtIik7CiAgICRleGVfbmRiX21nbWQ9CiAgICAgbXRyX2V4 ZV9tYXliZV9leGlzdHMoIiRuZGJfcGF0aC9zcmMvbWdtc3J2L25kYl9tZ21kIiwKLQkJCSAiJG5k Yl9wYXRoL25kYl9tZ21kIik7CisJCQkgIiRuZGJfcGF0aC9uZGJfbWdtZCIsCisJCQkgIiRnbG9i X2Jhc2VkaXIvbGliZXhlYy9uZGJfbWdtZCIpOwogICAkZXhlX25kYl93YWl0ZXI9CiAgICAgbXRy X2V4ZV9tYXliZV9leGlzdHMoIiRuZGJfcGF0aC90b29scy9uZGJfd2FpdGVyIiwKIAkJCSAiJG5k Yl9wYXRoL25kYl93YWl0ZXIiKTsKQEAgLTQ3MDMsMTEgKzQ3MDUsMTUgQEAgc3ViIHJ1bl9teXNx bHRlc3QgKCQpIHsKIAogICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIyBJZiBlbWJlZGRlZCBzZXJ2ZXIs IHdlIGNyZWF0ZSBzZXJ2ZXIgYXJncyB0byBnaXZlIG15c3FsdGVzdCB0byBwYXNzIG9uCisgICMg YW5kIHJlbW92ZSBleGlzdGluZyBmYWxjb24gdGFibGVzCiAgICMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCisg IAogICBpZiAoICRnbG9iX3VzZV9lbWJlZGRlZF9zZXJ2ZXIgKQogICB7CiAgICAgbXlzcWxkX2Fy Z3VtZW50cygkYXJncywkbWFzdGVyLT5bMF0sJHRpbmZvLT57J21hc3Rlcl9vcHQnfSxbXSk7Cisg ICAgI1JlbW92ZSAgZmFsY29uIHRhYmxlcyBiZWZvcmUgZWFjaCB0ZXN0LCBvdGhlcndpc2UgZXZl cnkgc3RhcnQgbWlnaHQgZmFpbAorICAgICNpZiB0aGVyZSBpcyBhbiBlcnJvciBpbiBmYWxjb24g cmVjb3ZlcnkNCisgICAgcm1fZmFsY29uX3RhYmxlcygkbWFzdGVyLT5bMF0tPnsncGF0aF9teWRk aXInfSk7CiAgIH0KIAogICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCj09PSBtb2RpZmllZCBmaWxlICdteXNx bC10ZXN0L3IvZnVuY19pZi5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci9mdW5jX2lmLnJlc3Vs dAkyMDA4LTAyLTEyIDE5OjA5OjE2ICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9mdW5jX2lmLnJl c3VsdAkyMDA4LTA3LTMxIDA5OjUwOjI0ICswMDAwCkBAIC0xMzEsMyArMTMxLDQ5IEBAIGRyb3Ag dGFibGUgdDE7CiBzZWxlY3QgaWYoMCwgMTg0NDY3NDQwNzM3MDk1NTE2MTAsIDE4NDQ2NzQ0MDcz NzA5NTUxNjEwKTsKIGlmKDAsIDE4NDQ2NzQ0MDczNzA5NTUxNjEwLCAxODQ0Njc0NDA3MzcwOTU1 MTYxMCkKIDE4NDQ2NzQ0MDczNzA5NTUxNjEwCitDUkVBVEUgVEFCTEUgdDEoYSBERUNJTUFMKDEw LDMpKTsKK1NFTEVDVCB0MS5hLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQo dDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEs Mik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEp LCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwK K0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigo Uk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5E KHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5h LDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0x KSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIs CitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYo KFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VO RCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEu YSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9 MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAy LDApKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkgKyAxCitGUk9NIHQxOworYQlJRigoUk9V TkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQx LmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChST1VORCh0MS5hLDIp PTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJRigoUk9VTkQodDEuYSwyKT0xKSwg MiwKK0lGKChST1VORCh0MS5hLDIpPTEpLCAyLAorSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCitJ RigoUk9VTkQodDEuYSwyKT0xKSwgMiwKK0lGKChSCitEUk9QIFRBQkxFIHQxOworRW5kIG9mIDUu MCB0ZXN0cwoKPT09IGFkZGVkIGZpbGUgJ215c3FsLXRlc3Qvci9oYXZlX25vZGVidWcucmVxdWly ZScKLS0tIGEvbXlzcWwtdGVzdC9yL2hhdmVfbm9kZWJ1Zy5yZXF1aXJlCTE5NzAtMDEtMDEgMDA6 MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9yL2hhdmVfbm9kZWJ1Zy5yZXF1aXJlCTIwMDgt MDctMjQgMTY6NTA6MTggKzAwMDAKQEAgLTAsMCArMSwyIEBACitkZWJ1ZworMAoKPT09IGFkZGVk IGZpbGUgJ215c3FsLXRlc3Qvci9pbm5vZGItYXV0b2luYy1vcHRpbWl6ZS5yZXN1bHQnCi0tLSBh L215c3FsLXRlc3Qvci9pbm5vZGItYXV0b2luYy1vcHRpbWl6ZS5yZXN1bHQJMTk3MC0wMS0wMSAw MDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3IvaW5ub2RiLWF1dG9pbmMtb3B0aW1pemUu cmVzdWx0CTIwMDgtMDgtMTMgMDg6MTY6MzQgKzAwMDAKQEAgLTAsMCArMSw2IEBACitkcm9wIHRh YmxlIGlmIGV4aXN0cyB0MTsKK2NyZWF0ZSB0YWJsZSB0MShhIGludCBub3QgbnVsbCBhdXRvX2lu Y3JlbWVudCBwcmltYXJ5IGtleSkgZW5naW5lPWlubm9kYjsKK2luc2VydCBpbnRvIHQxIHNldCBh ID0gLTE7CitvcHRpbWl6ZSB0YWJsZSB0MTsKK1RhYmxlCU9wCU1zZ190eXBlCU1zZ190ZXh0Cit0 ZXN0LnQxCW9wdGltaXplCXN0YXR1cwlPSwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qv ci9wZXJyb3IucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3IvcGVycm9yLnJlc3VsdAkyMDA2LTA4 LTAxIDA5OjI5OjEwICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9wZXJyb3IucmVzdWx0CTIwMDgt MDgtMDUgMjM6MjY6MTggKzAwMDAKQEAgLTEgKzEsNiBAQAogSWxsZWdhbCBlcnJvciBjb2RlOiAx MDAwMAorTXlTUUwgZXJyb3IgY29kZSAxMDYyIChFUl9EVVBfRU5UUlkpOiBEdXBsaWNhdGUgZW50 cnkgJyUtLjE5MnMnIGZvciBrZXkgJWQKK015U1FMIGVycm9yIGNvZGUgMTA3NiAoRVJfUkVBRFkp OiAlczogcmVhZHkgZm9yIGNvbm5lY3Rpb25zLgorVmVyc2lvbjogJyVzJyAgc29ja2V0OiAnJXMn ICBwb3J0OiAlZAorTXlTUUwgZXJyb3IgY29kZSAxNDU5IChFUl9UQUJMRV9ORUVEU19VUEdSQURF KTogVGFibGUgdXBncmFkZSByZXF1aXJlZC4gUGxlYXNlIGRvICJSRVBBSVIgVEFCTEUgYCUtLjMy c2AiIHRvIGZpeCBpdCEKK015U1FMIGVycm9yIGNvZGUgMTQ2MSAoRVJfTUFYX1BSRVBBUkVEX1NU TVRfQ09VTlRfUkVBQ0hFRCk6IENhbid0IGNyZWF0ZSBtb3JlIHRoYW4gbWF4X3ByZXBhcmVkX3N0 bXRfY291bnQgc3RhdGVtZW50cyAoY3VycmVudCB2YWx1ZTogJWx1KQoKPT09IGFkZGVkIGZpbGUg J215c3FsLXRlc3Qvci9zcC1uby1jb2RlLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL3NwLW5v LWNvZGUucmVzdWx0CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9y L3NwLW5vLWNvZGUucmVzdWx0CTIwMDgtMDctMjQgMTY6NTA6MTggKzAwMDAKQEAgLTAsMCArMSw0 IEBACitzaG93IHByb2NlZHVyZSBjb2RlIGZvbzsKK0VSUk9SIEhZMDAwOiBUaGUgJ1NIT1cgUFJP Q0VEVVJFfEZVTkNUSU9OIENPREUnIGZlYXR1cmUgaXMgZGlzYWJsZWQ7IHlvdSBuZWVkIE15U1FM IGJ1aWx0IHdpdGggJy0td2l0aC1kZWJ1ZycgdG8gaGF2ZSBpdCB3b3JraW5nCitzaG93IGZ1bmN0 aW9uIGNvZGUgZm9vOworRVJST1IgSFkwMDA6IFRoZSAnU0hPVyBQUk9DRURVUkV8RlVOQ1RJT04g Q09ERScgZmVhdHVyZSBpcyBkaXNhYmxlZDsgeW91IG5lZWQgTXlTUUwgYnVpbHQgd2l0aCAnLS13 aXRoLWRlYnVnJyB0byBoYXZlIGl0IHdvcmtpbmcKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10 ZXN0L3Ivc3Vic2VsZWN0LnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL3N1YnNlbGVjdC5yZXN1 bHQJMjAwOC0wNy0xMCAyMzoyOToyNyArMDAwMAorKysgYi9teXNxbC10ZXN0L3Ivc3Vic2VsZWN0 LnJlc3VsdAkyMDA4LTA3LTMxIDExOjM3OjA3ICswMDAwCkBAIC00NjAwLDcgKzQ2MDAsMTggQEAg SU5TRVJUIElOVE8gdDEgVkFMVUVTICgxKSwgKDMpOwogU0VMRUNUICogRlJPTSB0MiBXSEVSRSBi IE5PVCBJTiAoU0VMRUNUIG1heCh0LmMpIEZST00gdDEsIHQxIHQgV0hFUkUgdC5jPjEwKTsKIGEJ YgogRFJPUCBUQUJMRSB0MSx0MjsKLUVuZCBvZiA1LjAgdGVzdHMuCitDUkVBVEUgVEFCTEUgdDEo cGsgaW50IFBSSU1BUlkgS0VZLCBhIGludCwgSU5ERVggaWR4KGEpKTsKK0lOU0VSVCBJTlRPIHQx IFZBTFVFUyAoMSwgMTApLCAoMywgMzApLCAoMiwgMjApOworQ1JFQVRFIFRBQkxFIHQyKHBrIGlu dCBQUklNQVJZIEtFWSwgYSBpbnQsIGIgaW50LCBJTkRFWCBpZHhhKGEpKTsKK0lOU0VSVCBJTlRP IHQyIFZBTFVFUyAoMiwgMjAsIDcwMCksICgxLCAxMCwgMjAwKSwgKDQsIDEwLCAxMDApOworU0VM RUNUICogRlJPTSB0MQorV0hFUkUgRVhJU1RTIChTRUxFQ1QgRElTVElOQ1QgYSBGUk9NIHQyIFdI RVJFIHQxLmEgPCB0Mi5hIE9SREVSIEJZIGIpOworcGsJYQorMQkxMAorMwkzMAorMgkyMAorRFJP UCBUQUJMRSB0MSx0MjsKK0VuZCBvZiA1LjEgdGVzdHMuCiBDUkVBVEUgVEFCTEUgdDEoIGEgSU5U ICk7CiBJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKDEpLCgyKTsKIENSRUFURSBUQUJMRSB0MiggYSBJ TlQsIGIgSU5UICk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9yL3N1YnNlbGVjdF9u b19tYXQucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3Ivc3Vic2VsZWN0X25vX21hdC5yZXN1bHQJ MjAwOC0wNy0xMCAyMzoyOToyNyArMDAwMAorKysgYi9teXNxbC10ZXN0L3Ivc3Vic2VsZWN0X25v X21hdC5yZXN1bHQJMjAwOC0wNy0zMSAxMTozNzowNyArMDAwMApAQCAtNDYwNCw3ICs0NjA0LDE4 IEBAIElOU0VSVCBJTlRPIHQxIFZBTFVFUyAoMSksICgzKTsKIFNFTEVDVCAqIEZST00gdDIgV0hF UkUgYiBOT1QgSU4gKFNFTEVDVCBtYXgodC5jKSBGUk9NIHQxLCB0MSB0IFdIRVJFIHQuYz4xMCk7 CiBhCWIKIERST1AgVEFCTEUgdDEsdDI7Ci1FbmQgb2YgNS4wIHRlc3RzLgorQ1JFQVRFIFRBQkxF IHQxKHBrIGludCBQUklNQVJZIEtFWSwgYSBpbnQsIElOREVYIGlkeChhKSk7CitJTlNFUlQgSU5U TyB0MSBWQUxVRVMgKDEsIDEwKSwgKDMsIDMwKSwgKDIsIDIwKTsKK0NSRUFURSBUQUJMRSB0Mihw ayBpbnQgUFJJTUFSWSBLRVksIGEgaW50LCBiIGludCwgSU5ERVggaWR4YShhKSk7CitJTlNFUlQg SU5UTyB0MiBWQUxVRVMgKDIsIDIwLCA3MDApLCAoMSwgMTAsIDIwMCksICg0LCAxMCwgMTAwKTsK K1NFTEVDVCAqIEZST00gdDEKK1dIRVJFIEVYSVNUUyAoU0VMRUNUIERJU1RJTkNUIGEgRlJPTSB0 MiBXSEVSRSB0MS5hIDwgdDIuYSBPUkRFUiBCWSBiKTsKK3BrCWEKKzEJMTAKKzMJMzAKKzIJMjAK K0RST1AgVEFCTEUgdDEsdDI7CitFbmQgb2YgNS4xIHRlc3RzLgogQ1JFQVRFIFRBQkxFIHQxKCBh IElOVCApOwogSU5TRVJUIElOVE8gdDEgVkFMVUVTICgxKSwoMik7CiBDUkVBVEUgVEFCTEUgdDIo IGEgSU5ULCBiIElOVCApOwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci9zdWJzZWxl Y3Rfbm9fb3B0cy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci9zdWJzZWxlY3Rfbm9fb3B0cy5y ZXN1bHQJMjAwOC0wNy0xMCAyMzoyOToyNyArMDAwMAorKysgYi9teXNxbC10ZXN0L3Ivc3Vic2Vs ZWN0X25vX29wdHMucmVzdWx0CTIwMDgtMDctMzEgMTE6Mzc6MDcgKzAwMDAKQEAgLTQ2MDQsNyAr NDYwNCwxOCBAQCBJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKDEpLCAoMyk7CiBTRUxFQ1QgKiBGUk9N IHQyIFdIRVJFIGIgTk9UIElOIChTRUxFQ1QgbWF4KHQuYykgRlJPTSB0MSwgdDEgdCBXSEVSRSB0 LmM+MTApOwogYQliCiBEUk9QIFRBQkxFIHQxLHQyOwotRW5kIG9mIDUuMCB0ZXN0cy4KK0NSRUFU RSBUQUJMRSB0MShwayBpbnQgUFJJTUFSWSBLRVksIGEgaW50LCBJTkRFWCBpZHgoYSkpOworSU5T RVJUIElOVE8gdDEgVkFMVUVTICgxLCAxMCksICgzLCAzMCksICgyLCAyMCk7CitDUkVBVEUgVEFC TEUgdDIocGsgaW50IFBSSU1BUlkgS0VZLCBhIGludCwgYiBpbnQsIElOREVYIGlkeGEoYSkpOwor SU5TRVJUIElOVE8gdDIgVkFMVUVTICgyLCAyMCwgNzAwKSwgKDEsIDEwLCAyMDApLCAoNCwgMTAs IDEwMCk7CitTRUxFQ1QgKiBGUk9NIHQxCitXSEVSRSBFWElTVFMgKFNFTEVDVCBESVNUSU5DVCBh IEZST00gdDIgV0hFUkUgdDEuYSA8IHQyLmEgT1JERVIgQlkgYik7CitwawlhCisxCTEwCiszCTMw CisyCTIwCitEUk9QIFRBQkxFIHQxLHQyOworRW5kIG9mIDUuMSB0ZXN0cy4KIENSRUFURSBUQUJM RSB0MSggYSBJTlQgKTsKIElOU0VSVCBJTlRPIHQxIFZBTFVFUyAoMSksKDIpOwogQ1JFQVRFIFRB QkxFIHQyKCBhIElOVCwgYiBJTlQgKTsKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3Iv c3Vic2VsZWN0X25vX3NlbWlqb2luLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9yL3N1YnNlbGVj dF9ub19zZW1pam9pbi5yZXN1bHQJMjAwOC0wNy0xMCAyMzoyOToyNyArMDAwMAorKysgYi9teXNx bC10ZXN0L3Ivc3Vic2VsZWN0X25vX3NlbWlqb2luLnJlc3VsdAkyMDA4LTA3LTMxIDExOjM3OjA3 ICswMDAwCkBAIC00NjA0LDcgKzQ2MDQsMTggQEAgSU5TRVJUIElOVE8gdDEgVkFMVUVTICgxKSwg KDMpOwogU0VMRUNUICogRlJPTSB0MiBXSEVSRSBiIE5PVCBJTiAoU0VMRUNUIG1heCh0LmMpIEZS T00gdDEsIHQxIHQgV0hFUkUgdC5jPjEwKTsKIGEJYgogRFJPUCBUQUJMRSB0MSx0MjsKLUVuZCBv ZiA1LjAgdGVzdHMuCitDUkVBVEUgVEFCTEUgdDEocGsgaW50IFBSSU1BUlkgS0VZLCBhIGludCwg SU5ERVggaWR4KGEpKTsKK0lOU0VSVCBJTlRPIHQxIFZBTFVFUyAoMSwgMTApLCAoMywgMzApLCAo MiwgMjApOworQ1JFQVRFIFRBQkxFIHQyKHBrIGludCBQUklNQVJZIEtFWSwgYSBpbnQsIGIgaW50 LCBJTkRFWCBpZHhhKGEpKTsKK0lOU0VSVCBJTlRPIHQyIFZBTFVFUyAoMiwgMjAsIDcwMCksICgx LCAxMCwgMjAwKSwgKDQsIDEwLCAxMDApOworU0VMRUNUICogRlJPTSB0MQorV0hFUkUgRVhJU1RT IChTRUxFQ1QgRElTVElOQ1QgYSBGUk9NIHQyIFdIRVJFIHQxLmEgPCB0Mi5hIE9SREVSIEJZIGIp OworcGsJYQorMQkxMAorMwkzMAorMgkyMAorRFJPUCBUQUJMRSB0MSx0MjsKK0VuZCBvZiA1LjEg dGVzdHMuCiBDUkVBVEUgVEFCTEUgdDEoIGEgSU5UICk7CiBJTlNFUlQgSU5UTyB0MSBWQUxVRVMg KDEpLCgyKTsKIENSRUFURSBUQUJMRSB0MiggYSBJTlQsIGIgSU5UICk7Cgo9PT0gbW9kaWZpZWQg ZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vci9mYWxjb25fYnVnXzIyMTYxLnJlc3VsdCcK LS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vci9mYWxjb25fYnVnXzIyMTYxLnJlc3VsdAky MDA4LTA3LTE0IDA1OjMyOjAzICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3Iv ZmFsY29uX2J1Z18yMjE2MS5yZXN1bHQJMjAwOC0wNy0zMSAxMDozNzo0MyArMDAwMApAQCAtOSwx MCArOSw2IEBAIENSRUFURSBJTkRFWCBpMSBPTiB0MSAoYSk7CiBFUlJPUiA0MjAwMDogQkxPQiBj b2x1bW4gJ2EnIGNhbid0IGJlIHVzZWQgaW4ga2V5IHNwZWNpZmljYXRpb24gd2l0aCB0aGUgdXNl ZCB0YWJsZSB0eXBlCiBBTFRFUiBUQUJMRSB0MSBNT0RJRlkgQ09MVU1OIGEgdmFyY2hhcigzMDAw MCk7CiBDUkVBVEUgSU5ERVggaTEgT04gdDEgKGEpOwotV2FybmluZ3M6Ci1XYXJuaW5nCTEwNzEJ U3BlY2lmaWVkIGtleSB3YXMgdG9vIGxvbmc7IG1heCBrZXkgbGVuZ3RoIGlzIDExMDAgYnl0ZXMK LVdhcm5pbmcJMTA3MQlTcGVjaWZpZWQga2V5IHdhcyB0b28gbG9uZzsgbWF4IGtleSBsZW5ndGgg aXMgMTEwMCBieXRlcwotV2FybmluZwkxMDcxCVNwZWNpZmllZCBrZXkgd2FzIHRvbyBsb25nOyBt YXgga2V5IGxlbmd0aCBpcyAxMTAwIGJ5dGVzCiBTRUxFQ1QgY291bnQoKikgRlJPTSB0MTsKIGNv dW50KCopCiAxCgo9PT0gcmVuYW1lZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbl90ZWFt L3IvZmFsY29uX2J1Z18yMzk2Mi5yZXN1bHQnID0+ICdteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi9y L2ZhbGNvbl9idWdfMjM5NjIucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2ZhbGNvbl90 ZWFtL3IvZmFsY29uX2J1Z18yMzk2Mi5yZXN1bHQJMjAwOC0wNC0yMCAwMDowNToxNyArMDAwMAor KysgYi9teXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi9yL2ZhbGNvbl9idWdfMjM5NjIucmVzdWx0CTIw MDgtMDctMTYgMTY6MDA6MzQgKzAwMDAKQEAgLTEsNSArMSw1IEBACi1TRVQgU1RPUkFHRV9FTkdJ TkUgPSBGYWxjb247CiAqKiogQnVnICMyMzk2MiAqKioKK1NFVCBAQHN0b3JhZ2VfZW5naW5lID0g J0ZhbGNvbic7CiBEUk9QIFRBQkxFIElGIEVYSVNUUyB0MTsKIENSRUFURSBUQUJMRSB0MSAoYSBj aGFyKDUpLCBLRVkgKGEpKTsKIElOU0VSVCBJTlRPIHQxIFZBTFVFUyAoJ2EnKSwgKCdhYScpLCAo J2FhYScpLCAoJ2FiYycpLCAoJ2JiYicpOwpAQCAtMTQsNCArMTQsNyBAQCBhCiBhYWEKIGFiYwog YmJiCitTRUxFQ1QgY291bnQoKikgRlJPTSB0MTsKK2NvdW50KCopCis1CiBEUk9QIFRBQkxFIHQx OwoKPT09IHJlbmFtZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb25fdGVhbS9yL2ZhbGNv bl9idWdfMjc5OTcucmVzdWx0JyA9PiAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vci9mYWxjb25f YnVnXzI3OTk3LnJlc3VsdCcKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZmFs Y29uL3IvZmFsY29uX2J1Z18zMTI5NS5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZmFs Y29uL3IvZmFsY29uX2J1Z18zMTI5NS5yZXN1bHQJMjAwOC0wNC0xNSAxNzoyOTozNiArMDAwMAor KysgYi9teXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi9yL2ZhbGNvbl9idWdfMzEyOTUucmVzdWx0CTIw MDgtMDctMjkgMTA6NDU6MzkgKzAwMDAKQEAgLTEsMjIgKzEsMjggQEAKICoqKiBCdWcgIzMxMjk1 ICoqKgotU0VUIEBAc3RvcmFnZV9lbmdpbmUgPSAnRmFsY29uJzsKK1NFVCBAQHN0b3JhZ2VfZW5n aW5lID0gRmFsY29uOwogRFJPUCBUQUJMRSBJRiBFWElTVFMgdDE7Ci1EUk9QIFRBQkxFU1BBQ0Ug dHMxIEVOR0lORSAnRmFsY29uJzsKLUNSRUFURSBUQUJMRVNQQUNFIHRzMSBBREQgREFUQUZJTEUg J3RzMS5mdHMnIEVOR0lORSAnRmFsY29uJzsKK0RST1AgVEFCTEVTUEFDRSB0czEgRU5HSU5FIEZh bGNvbjsKK0NSRUFURSBUQUJMRVNQQUNFIHRzMSBBREQgREFUQUZJTEUgJ3RzMS5mdHMnIEVOR0lO RSBGYWxjb247CiBDUkVBVEUgVEFCTEUgdDEoYSBpbnQpOwotU0VMRUNUICogRlJPTSBJTkZPUk1B VElPTl9TQ0hFTUEuRkFMQ09OX1RBQkxFUyBXSEVSRSBUQUJMRV9OQU1FPSd0MSc7Ci1TQ0hFTUFf TkFNRQlUQUJMRV9OQU1FCVBBUlRJVElPTglUQUJMRVNQQUNFCUlOVEVSTkFMX05BTUUKLVRFU1QJ VDEJCUZBTENPTl9VU0VSCVQxCi1BTFRFUiBUQUJMRSB0MSBUQUJMRVNQQUNFIHRzMSBFTkdJTkUg J0ZhbGNvbic7Ci1TRUxFQ1QgKiBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5GQUxDT05fVEFCTEVT IFdIRVJFIFRBQkxFX05BTUU9J3QxJzsKLVNDSEVNQV9OQU1FCVRBQkxFX05BTUUJUEFSVElUSU9O CVRBQkxFU1BBQ0UJSU5URVJOQUxfTkFNRQotVEVTVAlUMQkJdHMxCVQxCi1BTFRFUiBUQUJMRSB0 MSBFTkdJTkUgJ0ZhbGNvbic7Ci1TRUxFQ1QgKiBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5GQUxD T05fVEFCTEVTIFdIRVJFIFRBQkxFX05BTUU9J3QxJzsKLVNDSEVNQV9OQU1FCVRBQkxFX05BTUUJ UEFSVElUSU9OCVRBQkxFU1BBQ0UJSU5URVJOQUxfTkFNRQotVEVTVAlUMQkJdHMxCVQxCitTSE9X IENSRUFURSBUQUJMRSB0MTsKK1RhYmxlCUNyZWF0ZSBUYWJsZQordDEJQ1JFQVRFIFRBQkxFIGB0 MWAgKAorICBgYWAgaW50KDExKSBERUZBVUxUIE5VTEwKKykgRU5HSU5FPUVOR0lORSBERUZBVUxU IENIQVJTRVQ9bGF0aW4xCitBTFRFUiBUQUJMRSB0MSBUQUJMRVNQQUNFIHRzMSBFTkdJTkUgRmFs Y29uOworU0hPVyBDUkVBVEUgVEFCTEUgdDE7CitUYWJsZQlDcmVhdGUgVGFibGUKK3QxCUNSRUFU RSBUQUJMRSBgdDFgICgKKyAgYGFgIGludCgxMSkgREVGQVVMVCBOVUxMCispIC8qITUwMTAwIFRB QkxFU1BBQ0UgYHRzMWAgKi8gRU5HSU5FPUVOR0lORSBERUZBVUxUIENIQVJTRVQ9bGF0aW4xCitB TFRFUiBUQUJMRSB0MSBFTkdJTkUgRmFsY29uOworU0hPVyBDUkVBVEUgVEFCTEUgdDE7CitUYWJs ZQlDcmVhdGUgVGFibGUKK3QxCUNSRUFURSBUQUJMRSBgdDFgICgKKyAgYGFgIGludCgxMSkgREVG QVVMVCBOVUxMCispIC8qITUwMTAwIFRBQkxFU1BBQ0UgYHRzMWAgKi8gRU5HSU5FPUVOR0lORSBE RUZBVUxUIENIQVJTRVQ9bGF0aW4xCiBTRUxFQ1QgY291bnQoKikgRlJPTSB0MTsKIGNvdW50KCop CiAwCiBEUk9QIFRBQkxFIHQxOwotRFJPUCBUQUJMRVNQQUNFIHRzMSBFTkdJTkUgJ0ZhbGNvbic7 CitEUk9QIFRBQkxFU1BBQ0UgdHMxIEVOR0lORSBGYWxjb247Cgo9PT0gbW9kaWZpZWQgZmlsZSAn bXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vci9mYWxjb25fYnVnXzMzNDA0LnJlc3VsdCcKLS0tIGEv bXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vci9mYWxjb25fYnVnXzMzNDA0LnJlc3VsdAkyMDA4LTA0 LTIzIDA2OjU0OjEzICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29u X2J1Z18zMzQwNC5yZXN1bHQJMjAwOC0wNy0yOSAxMDo0NTozOSArMDAwMApAQCAtMTIsMjMgKzEy LDE3IEBAIFNVQlBBUlRJVElPTiBwMnMxLAogU1VCUEFSVElUSU9OIHAyczIKICkKICk7Ci1TRUxF Q1QgKiBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5GQUxDT05fVEFCTEVTIFdIRVJFCi1UQUJMRV9O QU1FID0gJ3QxJyBBTkQgU0NIRU1BX05BTUU9J3Rlc3QnOwotU0NIRU1BX05BTUUJVEFCTEVfTkFN RQlQQVJUSVRJT04JVEFCTEVTUEFDRQlJTlRFUk5BTF9OQU1FCi1URVNUCVQxCVAxUzEJdHMzCVQx I1AjUDEjU1AjUDFTMQotVEVTVAlUMQlQMVMyCXRzMglUMSNQI1AxI1NQI1AxUzIKLVRFU1QJVDEJ UDJTMQl0czEJVDEjUCNQMiNTUCNQMlMxCi1URVNUCVQxCVAyUzIJdHMxCVQxI1AjUDIjU1AjUDJT MgogU0hPVyBDUkVBVEUgVEFCTEUgdDE7CiBUYWJsZQlDcmVhdGUgVGFibGUKIHQxCUNSRUFURSBU QUJMRSBgdDFgICgKICAgYGFgIGludCgxMSkgREVGQVVMVCBOVUxMCiApIC8qITUwMTAwIFRBQkxF U1BBQ0UgYHRzMWAgKi8gRU5HSU5FPUZhbGNvbiBERUZBVUxUIENIQVJTRVQ9bGF0aW4xIC8qITUw MTAwIFBBUlRJVElPTiBCWSBSQU5HRSAoYSkgU1VCUEFSVElUSU9OIEJZIEhBU0ggKGEpIChQQVJU SVRJT04gcDEgVkFMVUVTIExFU1MgVEhBTiAoMTAwKSAoU1VCUEFSVElUSU9OIHAxczEgVEFCTEVT UEFDRSA9IHRzMyBFTkdJTkUgPSBGYWxjb24sIFNVQlBBUlRJVElPTiBwMXMyIFRBQkxFU1BBQ0Ug PSB0czIgRU5HSU5FID0gRmFsY29uKSwgUEFSVElUSU9OIHAyIFZBTFVFUyBMRVNTIFRIQU4gTUFY VkFMVUUgKFNVQlBBUlRJVElPTiBwMnMxIFRBQkxFU1BBQ0UgPSB0czEgRU5HSU5FID0gRmFsY29u LCBTVUJQQVJUSVRJT04gcDJzMiBUQUJMRVNQQUNFID0gdHMxIEVOR0lORSA9IEZhbGNvbikpICov CiBBTFRFUiBUQUJMRSB0MSBSRU1PVkUgUEFSVElUSU9OSU5HOwotU0VMRUNUICogRlJPTSBJTkZP Uk1BVElPTl9TQ0hFTUEuRkFMQ09OX1RBQkxFUyBXSEVSRQotVEFCTEVfTkFNRSA9ICd0MScgQU5E IFNDSEVNQV9OQU1FPSd0ZXN0JzsKLVNDSEVNQV9OQU1FCVRBQkxFX05BTUUJUEFSVElUSU9OCVRB QkxFU1BBQ0UJSU5URVJOQUxfTkFNRQotVEVTVAlUMQkJdHMxCVQxCitTSE9XIENSRUFURSBUQUJM RSB0MTsKK1RhYmxlCUNyZWF0ZSBUYWJsZQordDEJQ1JFQVRFIFRBQkxFIGB0MWAgKAorICBgYWAg aW50KDExKSBERUZBVUxUIE5VTEwKKykgLyohNTAxMDAgVEFCTEVTUEFDRSBgdHMxYCAqLyBFTkdJ TkU9RmFsY29uIERFRkFVTFQgQ0hBUlNFVD1sYXRpbjEKIEFMVEVSIFRBQkxFIHQxIFRBQkxFU1BB Q0UgdHMxCiBQQVJUSVRJT04gQlkgUkFOR0UoYSkgU1VCUEFSVElUSU9OIEJZIEhBU0goYSkgKAog UEFSVElUSU9OIHAxIFZBTFVFUyBMRVNTIFRIQU4gKDEwMCkgVEFCTEVTUEFDRSB0czIgKApAQCAt NDAsNTYgKzM0LDM4IEBAIFNVQlBBUlRJVElPTiBwMnMxLAogU1VCUEFSVElUSU9OIHAyczIKICkK ICk7Ci1TRUxFQ1QgKiBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5GQUxDT05fVEFCTEVTIFdIRVJF Ci1UQUJMRV9OQU1FID0gJ3QxJyBBTkQgU0NIRU1BX05BTUU9J3Rlc3QnOwotU0NIRU1BX05BTUUJ VEFCTEVfTkFNRQlQQVJUSVRJT04JVEFCTEVTUEFDRQlJTlRFUk5BTF9OQU1FCi1URVNUCVQxCVAx UzEJdHMzCVQxI1AjUDEjU1AjUDFTMQotVEVTVAlUMQlQMVMyCXRzMglUMSNQI1AxI1NQI1AxUzIK LVRFU1QJVDEJUDJTMQl0czEJVDEjUCNQMiNTUCNQMlMxCi1URVNUCVQxCVAyUzIJdHMxCVQxI1Aj UDIjU1AjUDJTMgorU0hPVyBDUkVBVEUgVEFCTEUgdDE7CitUYWJsZQlDcmVhdGUgVGFibGUKK3Qx CUNSRUFURSBUQUJMRSBgdDFgICgKKyAgYGFgIGludCgxMSkgREVGQVVMVCBOVUxMCispIC8qITUw MTAwIFRBQkxFU1BBQ0UgYHRzMWAgKi8gRU5HSU5FPUZhbGNvbiBERUZBVUxUIENIQVJTRVQ9bGF0 aW4xIC8qITUwMTAwIFBBUlRJVElPTiBCWSBSQU5HRSAoYSkgU1VCUEFSVElUSU9OIEJZIEhBU0gg KGEpIChQQVJUSVRJT04gcDEgVkFMVUVTIExFU1MgVEhBTiAoMTAwKSAoU1VCUEFSVElUSU9OIHAx czEgVEFCTEVTUEFDRSA9IHRzMyBFTkdJTkUgPSBGYWxjb24sIFNVQlBBUlRJVElPTiBwMXMyIFRB QkxFU1BBQ0UgPSB0czIgRU5HSU5FID0gRmFsY29uKSwgUEFSVElUSU9OIHAyIFZBTFVFUyBMRVNT IFRIQU4gKDIwMCkgKFNVQlBBUlRJVElPTiBwMnMxIFRBQkxFU1BBQ0UgPSB0czEgRU5HSU5FID0g RmFsY29uLCBTVUJQQVJUSVRJT04gcDJzMiBUQUJMRVNQQUNFID0gdHMxIEVOR0lORSA9IEZhbGNv bikpICovCiBBTFRFUiBUQUJMRSB0MSBBREQgUEFSVElUSU9OIChQQVJUSVRJT04gcDMgVkFMVUVT IExFU1MgVEhBTiBNQVhWQUxVRSk7Ci1TRUxFQ1QgKiBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5G QUxDT05fVEFCTEVTIFdIRVJFCi1UQUJMRV9OQU1FID0gJ3QxJyBBTkQgU0NIRU1BX05BTUU9J3Rl c3QnOwotU0NIRU1BX05BTUUJVEFCTEVfTkFNRQlQQVJUSVRJT04JVEFCTEVTUEFDRQlJTlRFUk5B TF9OQU1FCi1URVNUCVQxCVAxUzEJdHMzCVQxI1AjUDEjU1AjUDFTMQotVEVTVAlUMQlQMVMyCXRz MglUMSNQI1AxI1NQI1AxUzIKLVRFU1QJVDEJUDJTMQl0czEJVDEjUCNQMiNTUCNQMlMxCi1URVNU CVQxCVAyUzIJdHMxCVQxI1AjUDIjU1AjUDJTMgotVEVTVAlUMQlQM1NQMAl0czEJVDEjUCNQMyNT UCNQM1NQMAotVEVTVAlUMQlQM1NQMQl0czEJVDEjUCNQMyNTUCNQM1NQMQorU0hPVyBDUkVBVEUg VEFCTEUgdDE7CitUYWJsZQlDcmVhdGUgVGFibGUKK3QxCUNSRUFURSBUQUJMRSBgdDFgICgKKyAg YGFgIGludCgxMSkgREVGQVVMVCBOVUxMCispIC8qITUwMTAwIFRBQkxFU1BBQ0UgYHRzMWAgKi8g RU5HSU5FPUZhbGNvbiBERUZBVUxUIENIQVJTRVQ9bGF0aW4xIC8qITUwMTAwIFBBUlRJVElPTiBC WSBSQU5HRSAoYSkgU1VCUEFSVElUSU9OIEJZIEhBU0ggKGEpIChQQVJUSVRJT04gcDEgVkFMVUVT IExFU1MgVEhBTiAoMTAwKSAoU1VCUEFSVElUSU9OIHAxczEgVEFCTEVTUEFDRSA9IHRzMyBFTkdJ TkUgPSBGYWxjb24sIFNVQlBBUlRJVElPTiBwMXMyIFRBQkxFU1BBQ0UgPSB0czIgRU5HSU5FID0g RmFsY29uKSwgUEFSVElUSU9OIHAyIFZBTFVFUyBMRVNTIFRIQU4gKDIwMCkgKFNVQlBBUlRJVElP TiBwMnMxIFRBQkxFU1BBQ0UgPSB0czEgRU5HSU5FID0gRmFsY29uLCBTVUJQQVJUSVRJT04gcDJz MiBUQUJMRVNQQUNFID0gdHMxIEVOR0lORSA9IEZhbGNvbiksIFBBUlRJVElPTiBwMyBWQUxVRVMg TEVTUyBUSEFOIE1BWFZBTFVFIChTVUJQQVJUSVRJT04gcDNzcDAgVEFCTEVTUEFDRSA9IHRzMSBF TkdJTkUgPSBGYWxjb24sIFNVQlBBUlRJVElPTiBwM3NwMSBUQUJMRVNQQUNFID0gdHMxIEVOR0lO RSA9IEZhbGNvbikpICovCiBBTFRFUiBUQUJMRSB0MSBSRU9SR0FOSVpFIFBBUlRJVElPTiBwMyBJ TlRPIChQQVJUSVRJT04gcDMgVkFMVUVTIExFU1MgVEhBTgogTUFYVkFMVUUgVEFCTEVTUEFDRSB0 czEpOwotU0VMRUNUICogRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuRkFMQ09OX1RBQkxFUyBXSEVS RQotVEFCTEVfTkFNRSA9ICd0MScgQU5EIFNDSEVNQV9OQU1FPSd0ZXN0JzsKLVNDSEVNQV9OQU1F CVRBQkxFX05BTUUJUEFSVElUSU9OCVRBQkxFU1BBQ0UJSU5URVJOQUxfTkFNRQotVEVTVAlUMQlQ MVMxCXRzMwlUMSNQI1AxI1NQI1AxUzEKLVRFU1QJVDEJUDFTMgl0czIJVDEjUCNQMSNTUCNQMVMy Ci1URVNUCVQxCVAyUzEJdHMxCVQxI1AjUDIjU1AjUDJTMQotVEVTVAlUMQlQMlMyCXRzMQlUMSNQ I1AyI1NQI1AyUzIKLVRFU1QJVDEJUDNTUDAJdHMxCVQxI1AjUDMjU1AjUDNTUDAKLVRFU1QJVDEJ UDNTUDEJdHMxCVQxI1AjUDMjU1AjUDNTUDEKK1NIT1cgQ1JFQVRFIFRBQkxFIHQxOworVGFibGUJ Q3JlYXRlIFRhYmxlCit0MQlDUkVBVEUgVEFCTEUgYHQxYCAoCisgIGBhYCBpbnQoMTEpIERFRkFV TFQgTlVMTAorKSAvKiE1MDEwMCBUQUJMRVNQQUNFIGB0czFgICovIEVOR0lORT1GYWxjb24gREVG QVVMVCBDSEFSU0VUPWxhdGluMSAvKiE1MDEwMCBQQVJUSVRJT04gQlkgUkFOR0UgKGEpIFNVQlBB UlRJVElPTiBCWSBIQVNIIChhKSAoUEFSVElUSU9OIHAxIFZBTFVFUyBMRVNTIFRIQU4gKDEwMCkg KFNVQlBBUlRJVElPTiBwMXMxIFRBQkxFU1BBQ0UgPSB0czMgRU5HSU5FID0gRmFsY29uLCBTVUJQ QVJUSVRJT04gcDFzMiBUQUJMRVNQQUNFID0gdHMyIEVOR0lORSA9IEZhbGNvbiksIFBBUlRJVElP TiBwMiBWQUxVRVMgTEVTUyBUSEFOICgyMDApIChTVUJQQVJUSVRJT04gcDJzMSBUQUJMRVNQQUNF ID0gdHMxIEVOR0lORSA9IEZhbGNvbiwgU1VCUEFSVElUSU9OIHAyczIgVEFCTEVTUEFDRSA9IHRz MSBFTkdJTkUgPSBGYWxjb24pLCBQQVJUSVRJT04gcDMgVkFMVUVTIExFU1MgVEhBTiBNQVhWQUxV RSAoU1VCUEFSVElUSU9OIHAzc3AwIFRBQkxFU1BBQ0UgPSB0czEgRU5HSU5FID0gRmFsY29uLCBT VUJQQVJUSVRJT04gcDNzcDEgVEFCTEVTUEFDRSA9IHRzMSBFTkdJTkUgPSBGYWxjb24pKSAqLwog QUxURVIgVEFCTEUgdDEgUkVPUkdBTklaRSBQQVJUSVRJT04gcDMgSU5UTyAoUEFSVElUSU9OIHAz IFZBTFVFUyBMRVNTIFRIQU4KIE1BWFZBTFVFIFRBQkxFU1BBQ0UgdHMyKTsKLVNFTEVDVCAqIEZS T00gSU5GT1JNQVRJT05fU0NIRU1BLkZBTENPTl9UQUJMRVMgV0hFUkUKLVRBQkxFX05BTUUgPSAn dDEnIEFORCBTQ0hFTUFfTkFNRT0ndGVzdCc7Ci1TQ0hFTUFfTkFNRQlUQUJMRV9OQU1FCVBBUlRJ VElPTglUQUJMRVNQQUNFCUlOVEVSTkFMX05BTUUKLVRFU1QJVDEJUDFTMQl0czMJVDEjUCNQMSNT UCNQMVMxCi1URVNUCVQxCVAxUzIJdHMyCVQxI1AjUDEjU1AjUDFTMgotVEVTVAlUMQlQMlMxCXRz MQlUMSNQI1AyI1NQI1AyUzEKLVRFU1QJVDEJUDJTMgl0czEJVDEjUCNQMiNTUCNQMlMyCi1URVNU CVQxCVAzU1AwCXRzMglUMSNQI1AzI1NQI1AzU1AwCi1URVNUCVQxCVAzU1AxCXRzMglUMSNQI1Az I1NQI1AzU1AxCitTSE9XIENSRUFURSBUQUJMRSB0MTsKK1RhYmxlCUNyZWF0ZSBUYWJsZQordDEJ Q1JFQVRFIFRBQkxFIGB0MWAgKAorICBgYWAgaW50KDExKSBERUZBVUxUIE5VTEwKKykgLyohNTAx MDAgVEFCTEVTUEFDRSBgdHMxYCAqLyBFTkdJTkU9RmFsY29uIERFRkFVTFQgQ0hBUlNFVD1sYXRp bjEgLyohNTAxMDAgUEFSVElUSU9OIEJZIFJBTkdFIChhKSBTVUJQQVJUSVRJT04gQlkgSEFTSCAo YSkgKFBBUlRJVElPTiBwMSBWQUxVRVMgTEVTUyBUSEFOICgxMDApIChTVUJQQVJUSVRJT04gcDFz MSBUQUJMRVNQQUNFID0gdHMzIEVOR0lORSA9IEZhbGNvbiwgU1VCUEFSVElUSU9OIHAxczIgVEFC TEVTUEFDRSA9IHRzMiBFTkdJTkUgPSBGYWxjb24pLCBQQVJUSVRJT04gcDIgVkFMVUVTIExFU1Mg VEhBTiAoMjAwKSAoU1VCUEFSVElUSU9OIHAyczEgVEFCTEVTUEFDRSA9IHRzMSBFTkdJTkUgPSBG YWxjb24sIFNVQlBBUlRJVElPTiBwMnMyIFRBQkxFU1BBQ0UgPSB0czEgRU5HSU5FID0gRmFsY29u KSwgUEFSVElUSU9OIHAzIFZBTFVFUyBMRVNTIFRIQU4gTUFYVkFMVUUgKFNVQlBBUlRJVElPTiBw M3NwMCBUQUJMRVNQQUNFID0gdHMyIEVOR0lORSA9IEZhbGNvbiwgU1VCUEFSVElUSU9OIHAzc3Ax IFRBQkxFU1BBQ0UgPSB0czIgRU5HSU5FID0gRmFsY29uKSkgKi8KIEFMVEVSIFRBQkxFIHQxIFJF T1JHQU5JWkUgUEFSVElUSU9OIHAxIElOVE8gKFBBUlRJVElPTiBwMSBWQUxVRVMgTEVTUyBUSEFO CiAoMTAwKSBUQUJMRVNQQUNFIHRzMik7Ci1TRUxFQ1QgKiBGUk9NIElORk9STUFUSU9OX1NDSEVN QS5GQUxDT05fVEFCTEVTIFdIRVJFCi1UQUJMRV9OQU1FID0gJ3QxJyBBTkQgU0NIRU1BX05BTUU9 J3Rlc3QnOwotU0NIRU1BX05BTUUJVEFCTEVfTkFNRQlQQVJUSVRJT04JVEFCTEVTUEFDRQlJTlRF Uk5BTF9OQU1FCi1URVNUCVQxCVAyUzEJdHMxCVQxI1AjUDIjU1AjUDJTMQotVEVTVAlUMQlQMlMy CXRzMQlUMSNQI1AyI1NQI1AyUzIKLVRFU1QJVDEJUDNTUDAJdHMyCVQxI1AjUDMjU1AjUDNTUDAK LVRFU1QJVDEJUDNTUDEJdHMyCVQxI1AjUDMjU1AjUDNTUDEKLVRFU1QJVDEJUDFTUDAJdHMyCVQx I1AjUDEjU1AjUDFTUDAKLVRFU1QJVDEJUDFTUDEJdHMyCVQxI1AjUDEjU1AjUDFTUDEKK1NIT1cg Q1JFQVRFIFRBQkxFIHQxOworVGFibGUJQ3JlYXRlIFRhYmxlCit0MQlDUkVBVEUgVEFCTEUgYHQx YCAoCisgIGBhYCBpbnQoMTEpIERFRkFVTFQgTlVMTAorKSAvKiE1MDEwMCBUQUJMRVNQQUNFIGB0 czFgICovIEVOR0lORT1GYWxjb24gREVGQVVMVCBDSEFSU0VUPWxhdGluMSAvKiE1MDEwMCBQQVJU SVRJT04gQlkgUkFOR0UgKGEpIFNVQlBBUlRJVElPTiBCWSBIQVNIIChhKSAoUEFSVElUSU9OIHAx IFZBTFVFUyBMRVNTIFRIQU4gKDEwMCkgKFNVQlBBUlRJVElPTiBwMXNwMCBUQUJMRVNQQUNFID0g dHMyIEVOR0lORSA9IEZhbGNvbiwgU1VCUEFSVElUSU9OIHAxc3AxIFRBQkxFU1BBQ0UgPSB0czIg RU5HSU5FID0gRmFsY29uKSwgUEFSVElUSU9OIHAyIFZBTFVFUyBMRVNTIFRIQU4gKDIwMCkgKFNV QlBBUlRJVElPTiBwMnMxIFRBQkxFU1BBQ0UgPSB0czEgRU5HSU5FID0gRmFsY29uLCBTVUJQQVJU SVRJT04gcDJzMiBUQUJMRVNQQUNFID0gdHMxIEVOR0lORSA9IEZhbGNvbiksIFBBUlRJVElPTiBw MyBWQUxVRVMgTEVTUyBUSEFOIE1BWFZBTFVFIChTVUJQQVJUSVRJT04gcDNzcDAgVEFCTEVTUEFD RSA9IHRzMiBFTkdJTkUgPSBGYWxjb24sIFNVQlBBUlRJVElPTiBwM3NwMSBUQUJMRVNQQUNFID0g dHMyIEVOR0lORSA9IEZhbGNvbikpICovCiBEUk9QIFRBQkxFIHQxOwogRFJPUCBUQUJMRVNQQUNF IHRzMSBFTkdJTkU9RmFsY29uOwogRFJPUCBUQUJMRVNQQUNFIHRzMiBFTkdJTkU9RmFsY29uOwoK PT09IGFkZGVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX2J1Z18zNTkz OS5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX2J1Z18zNTkz OS5yZXN1bHQJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRl L2ZhbGNvbi9yL2ZhbGNvbl9idWdfMzU5MzkucmVzdWx0CTIwMDgtMDctMzEgMTA6MDQ6MzAgKzAw MDAKQEAgLTAsMCArMSw2MSBAQAorKioqIEJ1ZyAjMzU5MzkgKioqCitTRVQgQEBzdG9yYWdlX2Vu Z2luZSA9ICdGYWxjb24nOworRFJPUCBUQUJMRSBJRiBFWElTVFMgdDE7CitDUkVBVEUgVEFCTEUg dDEoaSBpbnQpOworSU5TRVJUIElOVE8gdDEoaSkgVkFMVUVTICgxKSwoMiksKDMpLCg0KTsKK1NF TEVDVCBUQUJMRV9ST1dTICBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5UQUJMRVMgV0hFUkUgVEFC TEVfTkFNRSA9ICd0MSc7CitUQUJMRV9ST1dTCis0CitVUERBVEUgdDEgc2V0IGk9aSsxOworU0VM RUNUIFRBQkxFX1JPV1MgIEZST00gSU5GT1JNQVRJT05fU0NIRU1BLlRBQkxFUyBXSEVSRSBUQUJM RV9OQU1FID0gJ3QxJzsKK1RBQkxFX1JPV1MKKzQKK0RFTEVURSBGUk9NIHQxIFdIRVJFIGk9MjsK K1NFTEVDVCBUQUJMRV9ST1dTICBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5UQUJMRVMgV0hFUkUg VEFCTEVfTkFNRSA9ICd0MSc7CitUQUJMRV9ST1dTCiszCitTRVQgQVVUT0NPTU1JVD1PRkY7CitC RUdJTjsKK0lOU0VSVCBJTlRPIHQxKGkpIFZBTFVFUyg0Mik7CitERUxFVEUgRlJPTSB0MSBXSEVS RSBpPTQyOworQ09NTUlUOworU0VMRUNUIFRBQkxFX1JPV1MgIEZST00gSU5GT1JNQVRJT05fU0NI RU1BLlRBQkxFUyBXSEVSRSBUQUJMRV9OQU1FID0gJ3QxJzsKK1RBQkxFX1JPV1MKKzMKK0JFR0lO OworREVMRVRFIEZST00gdDEgV0hFUkUgaT00OworSU5TRVJUIElOVE8gdDEoaSkgVkFMVUVTKDQp OworQ09NTUlUOworU0VMRUNUIFRBQkxFX1JPV1MgIEZST00gSU5GT1JNQVRJT05fU0NIRU1BLlRB QkxFUyBXSEVSRSBUQUJMRV9OQU1FID0gJ3QxJzsKK1RBQkxFX1JPV1MKKzMKK0JFR0lOOworSU5T RVJUIElOVE8gdDEoaSkgVkFMVUVTKDQyKTsKK1VQREFURSB0MSBTRVQgaT00MyBXSEVSRSBpPTQy OworREVMRVRFIEZST00gdDEgV0hFUkUgaT00MzsKK0NPTU1JVDsKK1NFTEVDVCBUQUJMRV9ST1dT ICBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5UQUJMRVMgV0hFUkUgVEFCTEVfTkFNRSA9ICd0MSc7 CitUQUJMRV9ST1dTCiszCitCRUdJTjsKK0RFTEVURSBGUk9NIHQxIFdIRVJFIGk9NDsKK0lOU0VS VCBJTlRPIHQxKGkpIFZBTFVFUyg0KTsKK1VQREFURSB0MSBTRVQgaT00MiBXSEVSRSBpPTQ7CitV UERBVEUgdDEgU0VUIGk9NCBXSEVSRSBpPTQyOworQ09NTUlUOworU0VMRUNUIFRBQkxFX1JPV1Mg IEZST00gSU5GT1JNQVRJT05fU0NIRU1BLlRBQkxFUyBXSEVSRSBUQUJMRV9OQU1FID0gJ3QxJzsK K1RBQkxFX1JPV1MKKzMKK0JFR0lOOworSU5TRVJUIElOVE8gdDEoaSkgVkFMVUVTKDQyKTsKK1VQ REFURSB0MSBTRVQgaT00MyBXSEVSRSBpPTQyOworREVMRVRFIEZST00gdDEgV0hFUkUgaT00MzsK K1JPTExCQUNLOworU0VMRUNUIFRBQkxFX1JPV1MgIEZST00gSU5GT1JNQVRJT05fU0NIRU1BLlRB QkxFUyBXSEVSRSBUQUJMRV9OQU1FID0gJ3QxJzsKK1RBQkxFX1JPV1MKKzMKK1NFVCBBVVRPQ09N TUlUPU9OOworU0VMRUNUIGNvdW50KCopIEZST00gdDE7Citjb3VudCgqKQorMworRFJPUCBUQUJM RSB0MTsKCj09PSByZW5hbWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29uX3RlYW0vci9m YWxjb25fYnVnXzM3MDgwLnJlc3VsdCcgPT4gJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFs Y29uX2J1Z18zNzA4MC5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uX3RlYW0v ci9mYWxjb25fYnVnXzM3MDgwLnJlc3VsdAkyMDA4LTA3LTAzIDA4OjQ2OjM3ICswMDAwCisrKyBi L215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX2J1Z18zNzA4MC5yZXN1bHQJMjAwOC0w Ny0xNiAxNzo1MjoxOSArMDAwMApAQCAtMSw1ICsxLDUgQEAKICoqKiBCdWcgIzM3MDgwICoqKgog U0VUIEBAc3RvcmFnZV9lbmdpbmUgPSAnRmFsY29uJzsKLURST1AgVEFCTEUgSUYgRVhJU1RTIHQ7 Ci1DUkVBVEUgVEFCTEUgdChpIGludCk7Ci1EUk9QIFRBQkxFIHQ7CitEUk9QIFRBQkxFIElGIEVY SVNUUyB0MTsKK0NSRUFURSBUQUJMRSB0MShhIGludCk7CitEUk9QIFRBQkxFIHQxOwoKPT09IGFk ZGVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX2J1Z18zODAzOS5yZXN1 bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX2J1Z18zODAzOS5yZXN1 bHQJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2ZhbGNv bi9yL2ZhbGNvbl9idWdfMzgwMzkucmVzdWx0CTIwMDgtMDctMTYgMTI6NDA6NDcgKzAwMDAKQEAg LTAsMCArMSwxOCBAQAorKioqIEJ1ZyAjMzgwMzkgKioqCitTRVQgQEBzdG9yYWdlX2VuZ2luZSA9 ICdGYWxjb24nOworRFJPUCBUQUJMRSBJRiBFWElTVFMgdDE7CitDUkVBVEUgVEFCTEUgdDEgKGFf aW50IElOVCkgRW5naW5lID0gRmFsY29uOworQUxURVIgVEFCTEUgdDEgQUREIEtFWSAoYV9pbnQp OworU0hPVyBJTkRFWEVTIEZST00gdDE7CitUYWJsZQlOb25fdW5pcXVlCUtleV9uYW1lCVNlcV9p bl9pbmRleAlDb2x1bW5fbmFtZQlDb2xsYXRpb24JQ2FyZGluYWxpdHkJU3ViX3BhcnQJUGFja2Vk CU51bGwJSW5kZXhfdHlwZQlDb21tZW50CUluZGV4X0NvbW1lbnQKK3QxCTEJYV9pbnQJMQlhX2lu dAlOVUxMCTEJTlVMTAlOVUxMCVlFUwlCVFJFRQkJCitBTFRFUiBUQUJMRSB0MSBBREQgS0VZIChh X2ludCk7CitTSE9XIElOREVYRVMgRlJPTSB0MTsKK1RhYmxlCU5vbl91bmlxdWUJS2V5X25hbWUJ U2VxX2luX2luZGV4CUNvbHVtbl9uYW1lCUNvbGxhdGlvbglDYXJkaW5hbGl0eQlTdWJfcGFydAlQ YWNrZWQJTnVsbAlJbmRleF90eXBlCUNvbW1lbnQJSW5kZXhfQ29tbWVudAordDEJMQlhX2ludAkx CWFfaW50CU5VTEwJMQlOVUxMCU5VTEwJWUVTCUJUUkVFCQkKK3QxCTEJYV9pbnRfMgkxCWFfaW50 CU5VTEwJMQlOVUxMCU5VTEwJWUVTCUJUUkVFCQkKK0FMVEVSIFRBQkxFIHQxIERST1AgS0VZIGFf aW50OworU0hPVyBJTkRFWEVTIEZST00gdDE7CitUYWJsZQlOb25fdW5pcXVlCUtleV9uYW1lCVNl cV9pbl9pbmRleAlDb2x1bW5fbmFtZQlDb2xsYXRpb24JQ2FyZGluYWxpdHkJU3ViX3BhcnQJUGFj a2VkCU51bGwJSW5kZXhfdHlwZQlDb21tZW50CUluZGV4X0NvbW1lbnQKK3QxCTEJYV9pbnRfMgkx CWFfaW50CU5VTEwJMQlOVUxMCU5VTEwJWUVTCUJUUkVFCQkKK0RST1AgVEFCTEUgdDE7Cgo9PT0g bW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vci9mYWxjb25fb3B0aW9ucy5y ZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX29wdGlvbnMucmVz dWx0CTIwMDgtMDctMTAgMTk6MDA6MTQgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9mYWxj b24vci9mYWxjb25fb3B0aW9ucy5yZXN1bHQJMjAwOC0wNy0xNyAxMzo1MjoxNyArMDAwMApAQCAt OSw3ICs5LDYgQEAgZmFsY29uX2RlYnVnX3RyYWNlCTAKIGZhbGNvbl9kaXJlY3RfaW8JMQogZmFs Y29uX2dvcGhlcl90aHJlYWRzCTUKIGZhbGNvbl9pbmRleF9jaGlsbF90aHJlc2hvbGQJNDE5NDMw NAotZmFsY29uX2luaXRpYWxfYWxsb2NhdGlvbgkwCiBmYWxjb25faW9fdGhyZWFkcwkyCiBmYWxj b25fbGFyZ2VfYmxvYl90aHJlc2hvbGQJMTYwMDAwCiBmYWxjb25fbG9ja193YWl0X3RpbWVvdXQJ NTAKQEAgLTkyLDcgKzkxLDYgQEAgRkFMQ09OX0RFQlVHX1RSQUNFCTAKIEZBTENPTl9ESVJFQ1Rf SU8JMQogRkFMQ09OX0dPUEhFUl9USFJFQURTCTUKIEZBTENPTl9JTkRFWF9DSElMTF9USFJFU0hP TEQJMTA3Mzc0MTgyNAotRkFMQ09OX0lOSVRJQUxfQUxMT0NBVElPTgkwCiBGQUxDT05fSU9fVEhS RUFEUwkyCiBGQUxDT05fTEFSR0VfQkxPQl9USFJFU0hPTEQJMTYwMDAwCiBGQUxDT05fTE9DS19X QUlUX1RJTUVPVVQJNTAKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2ZhbGNv bi9yL2ZhbGNvbl9vcHRpb25zMi5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZmFsY29u L3IvZmFsY29uX29wdGlvbnMyLnJlc3VsdAkyMDA4LTA3LTEwIDE5OjAwOjE0ICswMDAwCisrKyBi L215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3IvZmFsY29uX29wdGlvbnMyLnJlc3VsdAkyMDA4LTA3 LTE3IDEzOjUyOjE3ICswMDAwCkBAIC0xMCw3ICsxMCw2IEBAIEZBTENPTl9ERUJVR19UUkFDRQkw CiBGQUxDT05fRElSRUNUX0lPCTEKIEZBTENPTl9HT1BIRVJfVEhSRUFEUwk1CiBGQUxDT05fSU5E RVhfQ0hJTExfVEhSRVNIT0xECTQxOTQzMDQKLUZBTENPTl9JTklUSUFMX0FMTE9DQVRJT04JMAog RkFMQ09OX0lPX1RIUkVBRFMJMgogRkFMQ09OX0xBUkdFX0JMT0JfVEhSRVNIT0xECTE2MDAwMAog RkFMQ09OX0xPQ0tfV0FJVF9USU1FT1VUCTUwCkBAIC01NCw5ICs1Myw2IEBAIFNFTEVDVCBAQGZh bGNvbl9nb3BoZXJfdGhyZWFkczsKIFNFTEVDVCBAQGZhbGNvbl9pbmRleF9jaGlsbF90aHJlc2hv bGQ7CiBAQGZhbGNvbl9pbmRleF9jaGlsbF90aHJlc2hvbGQKIDQxOTQzMDQKLVNFTEVDVCBAQGZh bGNvbl9pbml0aWFsX2FsbG9jYXRpb247Ci1AQGZhbGNvbl9pbml0aWFsX2FsbG9jYXRpb24KLTAK IFNFTEVDVCBAQGZhbGNvbl9pb190aHJlYWRzOwogQEBmYWxjb25faW9fdGhyZWFkcwogMgoKPT09 IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX2J1Z18yMjE2 MS50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi90L2ZhbGNvbl9idWdfMjIxNjEu dGVzdAkyMDA4LTAyLTA2IDE1OjIxOjEzICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvZmFs Y29uL3QvZmFsY29uX2J1Z18yMjE2MS50ZXN0CTIwMDgtMDctMzEgMTA6Mzc6NDMgKzAwMDAKQEAg LTI1LDcgKzI1LDkgQEAgQUxURVIgVEFCTEUgdDEgTU9ESUZZIENPTFVNTiBhIHRleHQ7CiAtLWVy cm9yIEVSX0JMT0JfVVNFRF9BU19LRVkKIENSRUFURSBJTkRFWCBpMSBPTiB0MSAoYSk7CiBBTFRF UiBUQUJMRSB0MSBNT0RJRlkgQ09MVU1OIGEgdmFyY2hhcigzMDAwMCk7CistLWRpc2FibGVfd2Fy bmluZ3MKIENSRUFURSBJTkRFWCBpMSBPTiB0MSAoYSk7CistLWVuYWJsZV93YXJuaW5ncwogCiAj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMK ICMgLS0tIENoZWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0g IwoKPT09IHJlbmFtZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb25fdGVhbS90L2ZhbGNv bl9idWdfMjM5NjIudGVzdCcgPT4gJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX2J1 Z18yMzk2Mi50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2ZhbGNvbl90ZWFtL3QvZmFsY29u X2J1Z18yMzk2Mi50ZXN0CTIwMDgtMDQtMjAgMDA6MDU6MTcgKzAwMDAKKysrIGIvbXlzcWwtdGVz dC9zdWl0ZS9mYWxjb24vdC9mYWxjb25fYnVnXzIzOTYyLnRlc3QJMjAwOC0wNy0xNiAxNjowMDoz NCArMDAwMApAQCAtMSw5ICsxLDE2IEBACiAtLXNvdXJjZSBpbmNsdWRlL2hhdmVfZmFsY29uLmlu YwotU0VUIFNUT1JBR0VfRU5HSU5FID0gRmFsY29uOworCiAjCiAjIEJ1ZyAjMjM5NjI6IFdyb25n IHJlc3VsdHMgd2l0aCA+IHNlYXJjaAogIwogLS1lY2hvICoqKiBCdWcgIzIzOTYyICoqKgorCisj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMK KyMgLS0tIEluaXRpYWxpc2F0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0g IworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSAjCitsZXQgJGVuZ2luZSA9ICdGYWxjb24nOworZXZhbCBTRVQgQEBzdG9yYWdlX2VuZ2luZSA9 ICRlbmdpbmU7CisKIC0tZGlzYWJsZV93YXJuaW5ncwogRFJPUCBUQUJMRSBJRiBFWElTVFMgdDE7 CiAtLWVuYWJsZV93YXJuaW5ncwpAQCAtMTEsOCArMTgsMTggQEAgRFJPUCBUQUJMRSBJRiBFWElT VFMgdDE7CiBDUkVBVEUgVEFCTEUgdDEgKGEgY2hhcig1KSwgS0VZIChhKSk7CiBJTlNFUlQgSU5U TyB0MSBWQUxVRVMgKCdhJyksICgnYWEnKSwgKCdhYWEnKSwgKCdhYmMnKSwgKCdiYmInKTsKIAor IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAj CisjIC0tLSBUZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0t ICMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gIwogU0VMRUNUICogRlJPTSB0MSBXSEVSRSBhID4gJ2EnICBPUkRFUiBCWSBhOwogU0VMRUNU ICogRlJPTSB0MSBXSEVSRSBhID4gJ2FhJyBPUkRFUiBCWSBhOwogCi0jIEZpbmFsIGNsZWFudXAu CisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t ICMKKyMgLS0tIENoZWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt LS0gIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSAjCitTRUxFQ1QgY291bnQoKikgRlJPTSB0MTsKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCisjIC0tLSBGaW5hbCBjbGVhbnVw ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tICMKKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogRFJPUCBUQUJMRSB0MTsK Cj09PSByZW5hbWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29uX3RlYW0vdC9mYWxjb25f YnVnXzI3OTk3LnRlc3QnID0+ICdteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi90L2ZhbGNvbl9idWdf Mjc5OTcudGVzdCcKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3Qv ZmFsY29uX2J1Z18zMTI5NS50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi90L2Zh bGNvbl9idWdfMzEyOTUudGVzdAkyMDA4LTA0LTE1IDE3OjI5OjM2ICswMDAwCisrKyBiL215c3Fs LXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX2J1Z18zMTI5NS50ZXN0CTIwMDgtMDctMjkgMTA6 NDU6MzkgKzAwMDAKQEAgLTgsNyArOCw3IEBACiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICMgLS0tIEluaXRpYWxpc2F0aW9uICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0gIwogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCi1sZXQgJGVuZ2luZSA9ICdGYWxjb24n OworbGV0ICRlbmdpbmUgPSBGYWxjb247CiBldmFsIFNFVCBAQHN0b3JhZ2VfZW5naW5lID0gJGVu Z2luZTsKIAogLS1kaXNhYmxlX3dhcm5pbmdzCkBAIC0yMywxMiArMjMsMTQgQEAgQ1JFQVRFIFRB QkxFIHQxKGEgaW50KTsKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gIwogIyAtLS0gVGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC0tLSAjCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tICMKLVNFTEVDVCAqIEZST00gSU5GT1JNQVRJT05fU0NIRU1BLkZB TENPTl9UQUJMRVMgV0hFUkUgVEFCTEVfTkFNRT0ndDEnOworLS1yZXBsYWNlX3Jlc3VsdCAkZW5n aW5lIEVOR0lORQorU0hPVyBDUkVBVEUgVEFCTEUgdDE7CiBldmFsIEFMVEVSIFRBQkxFIHQxIFRB QkxFU1BBQ0UgdHMxIEVOR0lORSAkZW5naW5lOwotU0VMRUNUICogRlJPTSBJTkZPUk1BVElPTl9T Q0hFTUEuRkFMQ09OX1RBQkxFUyBXSEVSRSBUQUJMRV9OQU1FPSd0MSc7CistLXJlcGxhY2VfcmVz dWx0ICRlbmdpbmUgRU5HSU5FCitTSE9XIENSRUFURSBUQUJMRSB0MTsKIGV2YWwgQUxURVIgVEFC TEUgdDEgRU5HSU5FICRlbmdpbmU7Ci1TRUxFQ1QgKiBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5G QUxDT05fVEFCTEVTIFdIRVJFIFRBQkxFX05BTUU9J3QxJzsKLQorLS1yZXBsYWNlX3Jlc3VsdCAk ZW5naW5lIEVOR0lORQorU0hPVyBDUkVBVEUgVEFCTEUgdDE7CiAKICMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogIyAtLS0gQ2hlY2sgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSAjCgo9PT0gbW9kaWZpZWQg ZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxjb25fYnVnXzMzNDA0LnRlc3QnCi0t LSBhL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX2J1Z18zMzQwNC50ZXN0CTIwMDgt MDQtMjMgMDY6NTQ6MTMgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxj b25fYnVnXzMzNDA0LnRlc3QJMjAwOC0wNy0yOSAxMDo0NTozOSArMDAwMApAQCAtMTksMTMgKzE5 LDEwIEBAIFBBUlRJVElPTiBCWSBSQU5HRShhKSBTVUJQQVJUSVRJT04gQlkgSEEKICAgICBTVUJQ QVJUSVRJT04gcDJzMgogICApCiApOwotU0VMRUNUICogRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEu RkFMQ09OX1RBQkxFUyBXSEVSRQotICBUQUJMRV9OQU1FID0gJ3QxJyBBTkQgU0NIRU1BX05BTUU9 J3Rlc3QnOwogU0hPVyBDUkVBVEUgVEFCTEUgdDE7CiAKIEFMVEVSIFRBQkxFIHQxIFJFTU9WRSBQ QVJUSVRJT05JTkc7Ci1TRUxFQ1QgKiBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5GQUxDT05fVEFC TEVTIFdIRVJFCi0gIFRBQkxFX05BTUUgPSAndDEnIEFORCBTQ0hFTUFfTkFNRT0ndGVzdCc7CitT SE9XIENSRUFURSBUQUJMRSB0MTsKIAogQUxURVIgVEFCTEUgdDEgVEFCTEVTUEFDRSB0czEKIFBB UlRJVElPTiBCWSBSQU5HRShhKSBTVUJQQVJUSVRJT04gQlkgSEFTSChhKSAoCkBAIC0zOCwyNyAr MzUsMjIgQEAgUEFSVElUSU9OIEJZIFJBTkdFKGEpIFNVQlBBUlRJVElPTiBCWSBIQQogICAgIFNV QlBBUlRJVElPTiBwMnMyCiAgICkKICk7Ci1TRUxFQ1QgKiBGUk9NIElORk9STUFUSU9OX1NDSEVN QS5GQUxDT05fVEFCTEVTIFdIRVJFCi0gIFRBQkxFX05BTUUgPSAndDEnIEFORCBTQ0hFTUFfTkFN RT0ndGVzdCc7CitTSE9XIENSRUFURSBUQUJMRSB0MTsKIAogQUxURVIgVEFCTEUgdDEgQUREIFBB UlRJVElPTiAoUEFSVElUSU9OIHAzIFZBTFVFUyBMRVNTIFRIQU4gTUFYVkFMVUUpOwotU0VMRUNU ICogRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuRkFMQ09OX1RBQkxFUyBXSEVSRQotICBUQUJMRV9O QU1FID0gJ3QxJyBBTkQgU0NIRU1BX05BTUU9J3Rlc3QnOworU0hPVyBDUkVBVEUgVEFCTEUgdDE7 CiAKIEFMVEVSIFRBQkxFIHQxIFJFT1JHQU5JWkUgUEFSVElUSU9OIHAzIElOVE8gKFBBUlRJVElP TiBwMyBWQUxVRVMgTEVTUyBUSEFOCiBNQVhWQUxVRSBUQUJMRVNQQUNFIHRzMSk7Ci1TRUxFQ1Qg KiBGUk9NIElORk9STUFUSU9OX1NDSEVNQS5GQUxDT05fVEFCTEVTIFdIRVJFCi0gIFRBQkxFX05B TUUgPSAndDEnIEFORCBTQ0hFTUFfTkFNRT0ndGVzdCc7CitTSE9XIENSRUFURSBUQUJMRSB0MTsK IAogQUxURVIgVEFCTEUgdDEgUkVPUkdBTklaRSBQQVJUSVRJT04gcDMgSU5UTyAoUEFSVElUSU9O IHAzIFZBTFVFUyBMRVNTIFRIQU4KIE1BWFZBTFVFIFRBQkxFU1BBQ0UgdHMyKTsKLVNFTEVDVCAq IEZST00gSU5GT1JNQVRJT05fU0NIRU1BLkZBTENPTl9UQUJMRVMgV0hFUkUKLSAgVEFCTEVfTkFN RSA9ICd0MScgQU5EIFNDSEVNQV9OQU1FPSd0ZXN0JzsKK1NIT1cgQ1JFQVRFIFRBQkxFIHQxOwog CiBBTFRFUiBUQUJMRSB0MSBSRU9SR0FOSVpFIFBBUlRJVElPTiBwMSBJTlRPIChQQVJUSVRJT04g cDEgVkFMVUVTIExFU1MgVEhBTgogKDEwMCkgVEFCTEVTUEFDRSB0czIpOwotU0VMRUNUICogRlJP TSBJTkZPUk1BVElPTl9TQ0hFTUEuRkFMQ09OX1RBQkxFUyBXSEVSRQotICBUQUJMRV9OQU1FID0g J3QxJyBBTkQgU0NIRU1BX05BTUU9J3Rlc3QnOworU0hPVyBDUkVBVEUgVEFCTEUgdDE7CiAKIERS T1AgVEFCTEUgdDE7CiBEUk9QIFRBQkxFU1BBQ0UgdHMxIEVOR0lORT1GYWxjb247Cgo9PT0gYWRk ZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxjb25fYnVnXzM1OTM5LnRlc3Qn Ci0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX2J1Z18zNTkzOS50ZXN0CTE5 NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9m YWxjb25fYnVnXzM1OTM5LnRlc3QJMjAwOC0wNy0zMSAxMDowNDozMCArMDAwMApAQCAtMCwwICsx LDg2IEBACistLXNvdXJjZSBpbmNsdWRlL2hhdmVfZmFsY29uLmluYworCisjCisjIEJ1ZyAjMzU5 Mzk6IERyaWZ0IGluIEZhbGNvbiByb3cgY291bnQgcmVwb3J0ZWQgYnkgU0hPVyBUQUJMRSBTVEFU VVMKKyMKKy0tZWNobyAqKiogQnVnICMzNTkzOSAqKioKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCisjIC0tLSBJbml0aWFsaXNhdGlv biAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tICMKKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIworbGV0ICRlbmdpbmUgPSAn RmFsY29uJzsKK2V2YWwgU0VUIEBAc3RvcmFnZV9lbmdpbmUgPSAkZW5naW5lOworCistLWRpc2Fi bGVfd2FybmluZ3MKK0RST1AgVEFCTEUgSUYgRVhJU1RTIHQxOworLS1lbmFibGVfd2FybmluZ3MK KworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSAjCisjIC0tLSBUZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LS0tICMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0gIworQ1JFQVRFIFRBQkxFIHQxKGkgaW50KTsKK0lOU0VSVCBJTlRPIHQxKGkpIFZBTFVF UyAoMSksKDIpLCgzKSwoNCk7CitTRUxFQ1QgVEFCTEVfUk9XUyAgRlJPTSBJTkZPUk1BVElPTl9T Q0hFTUEuVEFCTEVTIFdIRVJFIFRBQkxFX05BTUUgPSAndDEnOworIyBFeHBlY3QgNCByb3dzCitV UERBVEUgdDEgc2V0IGk9aSsxOworU0VMRUNUIFRBQkxFX1JPV1MgIEZST00gSU5GT1JNQVRJT05f U0NIRU1BLlRBQkxFUyBXSEVSRSBUQUJMRV9OQU1FID0gJ3QxJzsKKyMgRXhwZWN0IDQgcm93cywg bm90aGluZyBhZGRlZCBvciBkZWxldGVkCitERUxFVEUgRlJPTSB0MSBXSEVSRSBpPTI7CisjIE9u ZSByb3cgZGVsZXRlZCwgZXhwZWN0IGNvdW50PTMKK1NFTEVDVCBUQUJMRV9ST1dTICBGUk9NIElO Rk9STUFUSU9OX1NDSEVNQS5UQUJMRVMgV0hFUkUgVEFCTEVfTkFNRSA9ICd0MSc7CisKKyMgaW5z ZXJ0L2RlbGV0ZSBvbiB0aGUgc2FtZSByb3csIGNvdW50IGRvZXMgbm90IGNoYW5nZQorU0VUIEFV VE9DT01NSVQ9T0ZGOworIyBOZXh0IHRlc3RzIGFyZSB0cmFuc2FjdGlvbmFsCitCRUdJTjsKK0lO U0VSVCBJTlRPIHQxKGkpIFZBTFVFUyg0Mik7CitERUxFVEUgRlJPTSB0MSBXSEVSRSBpPTQyOwor Q09NTUlUOworU0VMRUNUIFRBQkxFX1JPV1MgIEZST00gSU5GT1JNQVRJT05fU0NIRU1BLlRBQkxF UyBXSEVSRSBUQUJMRV9OQU1FID0gJ3QxJzsKKyMgQ291bnQgc2hvdWxkIG5vdCBiZSBjaGFuZ2Vk LGNvdW50PTMKKworI2RlbGV0ZS9pbnNlcnQsIGNvdW50IGRvZXMgbm90IGNoYW5nZQorQkVHSU47 CitERUxFVEUgRlJPTSB0MSBXSEVSRSBpPTQ7CitJTlNFUlQgSU5UTyB0MShpKSBWQUxVRVMoNCk7 CitDT01NSVQ7CitTRUxFQ1QgVEFCTEVfUk9XUyAgRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEuVEFC TEVTIFdIRVJFIFRBQkxFX05BTUUgPSAndDEnOworIyBDb3VudCBzaG91bGQgbm90IGJlIGNoYW5n ZWQsY291bnQ9MworCisjIGluc2VydC91cGRhdGUvZGVsZXRlIG9uIHRoZSBzYW1lIHJvdywgY291 bnQgZG9lcyBub3QgY2hhbmdlCitCRUdJTjsKK0lOU0VSVCBJTlRPIHQxKGkpIFZBTFVFUyg0Mik7 CitVUERBVEUgdDEgU0VUIGk9NDMgV0hFUkUgaT00MjsKK0RFTEVURSBGUk9NIHQxIFdIRVJFIGk9 NDM7CitDT01NSVQ7CitTRUxFQ1QgVEFCTEVfUk9XUyAgRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEu VEFCTEVTIFdIRVJFIFRBQkxFX05BTUUgPSAndDEnOworIyBDb3VudCBzaG91bGQgbm90IGJlIGNo YW5nZWQsY291bnQ9MworCisjZGVsZXRlL2luc2VydC91cGRhdGUvdXBkYXRlLCBjb3VudCBkb2Vz IG5vdCBjaGFuZ2UKK0JFR0lOOworREVMRVRFIEZST00gdDEgV0hFUkUgaT00OworSU5TRVJUIElO VE8gdDEoaSkgVkFMVUVTKDQpOworVVBEQVRFIHQxIFNFVCBpPTQyIFdIRVJFIGk9NDsKK1VQREFU RSB0MSBTRVQgaT00IFdIRVJFIGk9NDI7CitDT01NSVQ7CitTRUxFQ1QgVEFCTEVfUk9XUyAgRlJP TSBJTkZPUk1BVElPTl9TQ0hFTUEuVEFCTEVTIFdIRVJFIFRBQkxFX05BTUUgPSAndDEnOworIyBD b3VudCBzaG91bGQgbm90IGJlIGNoYW5nZWQsY291bnQ9MworCisjIHNhbWUgYXMgYmVmb3JlLCBi dXQgd2l0aCByb2xsYmFjaworQkVHSU47CitJTlNFUlQgSU5UTyB0MShpKSBWQUxVRVMoNDIpOwor VVBEQVRFIHQxIFNFVCBpPTQzIFdIRVJFIGk9NDI7CitERUxFVEUgRlJPTSB0MSBXSEVSRSBpPTQz OworUk9MTEJBQ0s7CitTRUxFQ1QgVEFCTEVfUk9XUyAgRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEu VEFCTEVTIFdIRVJFIFRBQkxFX05BTUUgPSAndDEnOworU0VUIEFVVE9DT01NSVQ9T047CisKKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwor IyAtLS0gQ2hlY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSAj CisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t ICMKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHQxOworCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKKyMgLS0tIEZpbmFsIGNsZWFudXAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0gIworIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCitEUk9QIFRBQkxFIHQxOwoKPT09 IHJlbmFtZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb25fdGVhbS90L2ZhbGNvbl9idWdf MzcwODAudGVzdCcgPT4gJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX2J1Z18zNzA4 MC50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2ZhbGNvbl90ZWFtL3QvZmFsY29uX2J1Z18z NzA4MC50ZXN0CTIwMDgtMDctMDMgMDg6NDY6MzcgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0 ZS9mYWxjb24vdC9mYWxjb25fYnVnXzM3MDgwLnRlc3QJMjAwOC0wNy0xNiAxNzo1MjoxOSArMDAw MApAQCAtMSw3ICsxLDggQEAKIC0tc291cmNlIGluY2x1ZGUvaGF2ZV9mYWxjb24uaW5jDQorDQog Iw0KICMgQnVnIzM3MDgwOiBGYWxjb24gZGVhZGxvY2sgb24gcGFyYWxsZWwgVFJVTkNBVEUgIGFu ZCBJTlNFUlQNCi0jIA0KKyMNCiAtLWVjaG8gKioqIEJ1ZyAjMzcwODAgKioqDQogDQogIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjDQpAQCAt MTEsMjUgKzEyLDI0IEBAIGxldCAkZW5naW5lID0gJ0ZhbGNvbic7DQogZXZhbCBTRVQgQEBzdG9y YWdlX2VuZ2luZSA9ICRlbmdpbmU7DQogDQogLS1kaXNhYmxlX3dhcm5pbmdzDQotRFJPUCBUQUJM RSBJRiBFWElTVFMgdDsNCitEUk9QIFRBQkxFIElGIEVYSVNUUyB0MTsNCiAtLWVuYWJsZV93YXJu aW5ncw0KIA0KLQ0KLUNSRUFURSBUQUJMRSB0KGkgaW50KTsNCitDUkVBVEUgVEFCTEUgdDEoYSBp bnQpOw0KIGNvbm5lY3QgKGNvbm4xLGxvY2FsaG9zdCxyb290LCwpOw0KKw0KICMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIw0KICMgLS0tIFRl c3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0gIw0KICMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIw0KIA0K LQ0KIGxldCAkbnVtPTEwMDAwOw0KIC0tZGlzYWJsZV9xdWVyeV9sb2cNCiB3aGlsZSAoJG51bSkN CiB7DQogICAgY29ubmVjdGlvbiBjb25uMTsNCi0gICAtLXNlbmQgaW5zZXJ0IGludG8gdCB2YWx1 ZXMoMSk7DQorICAgLS1zZW5kIGluc2VydCBpbnRvIHQxIHZhbHVlcygxKSwgKDMpLCAoNSksICg3 KSAsICgxMSk7DQogICAgY29ubmVjdGlvbiBkZWZhdWx0Ow0KLSAgIC0tc2VuZCB0cnVuY2F0ZSB0 YWJsZSB0Ow0KKyAgIC0tc2VuZCB0cnVuY2F0ZSB0YWJsZSB0MTsNCiAgICBjb25uZWN0aW9uIGNv bm4xOw0KICAgIC0tcmVhcA0KICAgIGNvbm5lY3Rpb24gZGVmYXVsdDsNCkBAIC00NSw0ICs0NSw0 IEBAIHdoaWxlICgkbnVtKQ0KICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gIw0KICMgLS0tIEZpbmFsIGNsZWFudXAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtLS0gIw0KICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIw0KLURST1AgVEFCTEUgdDsNCitEUk9QIFRBQkxFIHQx Ow0KCj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi90L2ZhbGNvbl9idWdf MzgwMzkudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9mYWxjb24vdC9mYWxjb25fYnVnXzM4 MDM5LnRlc3QJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRl L2ZhbGNvbi90L2ZhbGNvbl9idWdfMzgwMzkudGVzdAkyMDA4LTA3LTE2IDEyOjQwOjQ3ICswMDAw CkBAIC0wLDAgKzEsNDMgQEAKKy0tc291cmNlIGluY2x1ZGUvaGF2ZV9mYWxjb24uaW5jCisKKyMK KyMgQnVnICMzODAzOTogQXNzZXJ0aW9uIGxvY2tTdGF0ZSA9PSAwIGZhaWxlZCBpbiBTdG9yYWdl VGFibGVTaGFyZTo6ZGVsZXRlVGFibGUgU3luY09iamVjdAorIworCistLWVjaG8gKioqIEJ1ZyAj MzgwMzkgKioqCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gIworIyAtLS0gSW5pdGlhbGlzYXRpb24gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC0tLSAjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tICMKK2xldCAkZW5naW5lID0gJ0ZhbGNvbic7CitldmFsIFNFVCBAQHN0 b3JhZ2VfZW5naW5lID0gJGVuZ2luZTsKKworLS1kaXNhYmxlX3dhcm5pbmdzCitEUk9QIFRBQkxF IElGIEVYSVNUUyB0MTsKKy0tZW5hYmxlX3dhcm5pbmdzCisKK0NSRUFURSBUQUJMRSB0MSAoYV9p bnQgSU5UKSBFbmdpbmUgPSBGYWxjb247CisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIworIyAtLS0gVGVzdCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSAjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKKworIyMgU0hPVyBJTkRFWEVTIGlzIG5v dCByZXF1aXJlZCB0byByZXByb2R1Y2UgdGhlIGJ1ZywgYnV0CisjIyBpcyBpbmNsdWRlZCBoZXJl IHRvIHZlcmlmeSBjb3JyZWN0IGJlaGF2aW9yLgorCitBTFRFUiBUQUJMRSB0MSBBREQgS0VZIChh X2ludCk7CitTSE9XIElOREVYRVMgRlJPTSB0MTsKKworQUxURVIgVEFCTEUgdDEgQUREIEtFWSAo YV9pbnQpOworU0hPVyBJTkRFWEVTIEZST00gdDE7CisKK0FMVEVSIFRBQkxFIHQxIERST1AgS0VZ IGFfaW50OworU0hPVyBJTkRFWEVTIEZST00gdDE7CisKK0RST1AgVEFCTEUgdDE7CisKKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIworIyAt LS0gRmluYWwgY2xlYW51cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLSAjCisj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMK KworIyMgTm9uZSwgRFJPUCBUQUJMRSBpcyBwYXJ0IG9mIHRoZSB0ZXN0LgoKPT09IG1vZGlmaWVk IGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX29wdGlvbnMyLnRlc3QnCi0t LSBhL215c3FsLXRlc3Qvc3VpdGUvZmFsY29uL3QvZmFsY29uX29wdGlvbnMyLnRlc3QJMjAwOC0w Ny0xMCAxOTowMDoxNCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2ZhbGNvbi90L2ZhbGNv bl9vcHRpb25zMi50ZXN0CTIwMDgtMDctMTcgMTM6NTI6MTcgKzAwMDAKQEAgLTE0LDcgKzE0LDYg QEAgU0VMRUNUIEBAZmFsY29uX2RlYnVnX3RyYWNlOwogU0VMRUNUIEBAZmFsY29uX2RpcmVjdF9p bzsKIFNFTEVDVCBAQGZhbGNvbl9nb3BoZXJfdGhyZWFkczsKIFNFTEVDVCBAQGZhbGNvbl9pbmRl eF9jaGlsbF90aHJlc2hvbGQ7Ci1TRUxFQ1QgQEBmYWxjb25faW5pdGlhbF9hbGxvY2F0aW9uOwog U0VMRUNUIEBAZmFsY29uX2lvX3RocmVhZHM7CiBTRUxFQ1QgQEBmYWxjb25fbGFyZ2VfYmxvYl90 aHJlc2hvbGQ7CiBTRUxFQ1QgQEBmYWxjb25fbG9ja193YWl0X3RpbWVvdXQ7Cgo9PT0gbW9kaWZp ZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvZmFsY29uX3N0b3JlZHByb2MucmVz dWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9mYWxjb25fc3RvcmVkcHJvYy5y ZXN1bHQJMjAwOC0wNy0wOCAxODo0MDozMiArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2Z1 bmNzXzEvci9mYWxjb25fc3RvcmVkcHJvYy5yZXN1bHQJMjAwOC0wOC0wNyAxMzozODoyOSArMDAw MApAQCAtMjE5NDIsOSArMjE5NDIsOSBAQCBFTkQJbGF0aW4xCWxhdGluMV9zd2VkaXNoX2NpCWxh dGluMV9zd2VkCiBzZXQgQEBzcWxfbW9kZT0nJzsKIENBTEwgc3A0KCk7CiBMZXZlbAlDb2RlCU1l c3NhZ2UKLUVycm9yCTEzNjUJRGl2aXNpb24gYnkgMAorV2FybmluZwkxMzY1CURpdmlzaW9uIGJ5 IDAKIFdhcm5pbmdzOgotRXJyb3IJMTM2NQlEaXZpc2lvbiBieSAwCitXYXJuaW5nCTEzNjUJRGl2 aXNpb24gYnkgMAogRFJPUCBQUk9DRURVUkUgc3A0Owogc2V0IEBAc3FsX21vZGU9Jyc7CiAKCj09 PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9mYWxjb25fdHJpZ18w My5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2ZhbGNvbl90cmlnXzAz LnJlc3VsdAkyMDA4LTA2LTAzIDEyOjEwOjMzICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUv ZnVuY3NfMS9yL2ZhbGNvbl90cmlnXzAzLnJlc3VsdAkyMDA4LTA4LTA3IDEzOjM4OjI5ICswMDAw CkBAIC03Nyw3ICs3Nyw3IEBAIGdyYW50IEFMTCAgb24gKi4qIHRvIHRlc3Rfbm9wcml2c0Bsb2Nh bGgKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9tIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3Q7CiBz aG93IGdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBmb3IgdGVzdF9u b3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBD UkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMs IElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRB QkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElP TiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBS T1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQgT04gKi4qIFRPICd0ZXN0X25vcHJpdnMnQCdsb2Nh bGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5OUMwQ0YxMDRFRjkx ODNGMzc0QTU0Q0EyNTc2JworR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBD UkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMs IElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRB QkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElP TiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBS T1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAn dGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1 RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIHJldm9rZSBBTEwgUFJJVklMRUdF UywgR1JBTlQgT1BUSU9OIEZST00gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBncmFudCBUUklH R0VSIG9uICouKiB0byB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIGdyYW50IFNFTEVDVCBvbiBw cml2X2RiLnQxIHRvIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0OwpAQCAtMTU1LDcgKzE1NSw3IEBA IGdyYW50IEFMTCAgb24gKi4qIHRvIHRlc3Rfbm9wcml2c0Bsb2NhbGgKIHJldm9rZSBVUERBVEUg IG9uICouKiBmcm9tIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3Q7CiBzaG93IGdyYW50cyBmb3IgdGVz dF9ub3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdAot R1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRE T1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cgREFUQUJB U0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRF LCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklFVywgU0hP VyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIsIEVWRU5U LCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVE IEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicK K0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FELCBTSFVU RE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9XIERBVEFC QVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywgRVhFQ1VU RSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcsIFNI T1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VSLCBFVkVO VCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0ZXN0X25vcHJpdnMnQCds b2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5OUMwQ0YxMDRF RjkxODNGMzc0QTU0Q0EyNTc2JwogcmV2b2tlIEFMTCBQUklWSUxFR0VTLCBHUkFOVCBPUFRJT04g RlJPTSB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIGdyYW50IFRSSUdHRVIsIFVQREFURSBvbiAq LiogdG8gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBzaG93IGdyYW50cyBmb3IgdGVzdF95ZXNw cml2c0Bsb2NhbGhvc3Q7CkBAIC0xNjksNyArMTY5LDcgQEAgdGVzdF9ub3ByaXZzQGxvY2FsaG9z dAogdXNlIHByaXZfZGI7CiBzaG93IGdyYW50czsKIEdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxv Y2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxP QUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNI T1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVT LCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUg VklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVT RVIsIEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJ REVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1 NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVM T0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBT SE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxF UywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRF IFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBV U0VSLCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0ZXN0X25v cHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5 OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2Jwogc2VsZWN0IGYxIGZyb20gdDEgb3JkZXIgYnkg ZjE7CiBmMQogaW5zZXJ0IDMuNS4zLjItbm8KQEAgLTQwMSw3ICs0MDEsNyBAQCBncmFudCBBTEwg IG9uICouKiB0byB0ZXN0X25vcHJpdnNAbG9jYWxoCiByZXZva2UgU0VMRUNUICBvbiAqLiogZnJv bSB0ZXN0X25vcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3Rfbm9wcml2c0Bs b2NhbGhvc3Q7CiBHcmFudHMgZm9yIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3QKLUdSQU5UIElOU0VS VCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FELCBTSFVURE9XTiwgUFJPQ0VT UywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9XIERBVEFCQVNFUywgU1VQRVIs IENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywgRVhFQ1VURSwgUkVQTElDQVRJ T04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcsIFNIT1cgVklFVywgQ1JF QVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VSLCBFVkVOVCwgVFJJR0dFUiBP TiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJRklFRCBCWSBQQVNTV09S RCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1NzYnCitHUkFOVCBJTlNF UlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NF U1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVS LCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FU SU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENS RUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQsIFRSSUdHRVIs IENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJ REVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1 NENBMjU3NicKIHJldm9rZSBBTEwgUFJJVklMRUdFUywgR1JBTlQgT1BUSU9OIEZST00gdGVzdF95 ZXNwcml2c0Bsb2NhbGhvc3Q7CiBncmFudCBUUklHR0VSLCBTRUxFQ1Qgb24gKi4qIHRvIHRlc3Rf eWVzcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3RfeWVzcHJpdnNAbG9jYWxo b3N0OwpAQCAtNDE1LDcgKzQxNSw3IEBAIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3QKIHVzZSBwcml2 X2RiOwogc2hvdyBncmFudHM7CiBHcmFudHMgZm9yIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3QKLUdS QU5UIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FELCBTSFVURE9X TiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9XIERBVEFCQVNF UywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywgRVhFQ1VURSwg UkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcsIFNIT1cg VklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VSLCBFVkVOVCwg VFJJR0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJRklFRCBC WSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1NzYnCitH UkFOVCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERP V04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFT RVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUs IFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9X IFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQs IFRSSUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9j YWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5 MTgzRjM3NEE1NENBMjU3NicKIGNyZWF0ZSB0cmlnZ2VyIHRyZzVhXzEgYmVmb3JlIElOU0VSVCBv biB0MSBmb3IgZWFjaCByb3cKIHNldCBAdGVzdF92YXIgPSBuZXcuZjE7CiBzZXQgQHRlc3RfdmFy ID0gJ2JlZm9yZSB0cmlnIDMuNS4zLjgtMWEnOwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRl c3Qvc3VpdGUvZnVuY3NfMS9yL2ZhbGNvbl90cmlnXzAzZS5yZXN1bHQnCi0tLSBhL215c3FsLXRl c3Qvc3VpdGUvZnVuY3NfMS9yL2ZhbGNvbl90cmlnXzAzZS5yZXN1bHQJMjAwOC0wNC0wMSAyMTow MTowMiArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9mYWxjb25fdHJpZ18w M2UucmVzdWx0CTIwMDgtMDgtMDcgMTM6Mzg6MjkgKzAwMDAKQEAgLTU2Miw3ICs1NjIsNyBAQCB0 cmlnIDFfMS15ZXMKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9tIHRlc3RfeWVzcHJpdnNAbG9j YWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0OwogR3JhbnRz IGZvciB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQREFU RSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUs IFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUg VEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZF LCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VU SU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQgT04gKi4qIFRPICd0ZXN0X3ll c3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEw OTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBVUERB VEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxF LCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRF IFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFW RSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9V VElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIsIEVWRU5ULCBDUkVBVEUgVEFCTEVTUEFD RSBPTiAqLiogVE8gJ3Rlc3RfeWVzcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFT U1dPUkQgJypDNDk3MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JwogY29ubmVj dChsb2NhbGhvc3QsdGVzdF95ZXNwcml2cyxQV0QsdGVzdCxNQVNURVJfTVlQT1JULE1BU1RFUl9N WVNPQ0spOwogc2VsZWN0IGN1cnJlbnRfdXNlcjsKIGN1cnJlbnRfdXNlcgpAQCAtNjA5LDcgKzYw OSw3IEBAIHJvb3RAbG9jYWxob3N0CiBncmFudCBUUklHR0VSIG9uIHByaXZfZGIuKiB0byB0ZXN0 X3llc3ByaXZzQGxvY2FsaG9zdDsKIHNob3cgZ3JhbnRzIGZvciB0ZXN0X3llc3ByaXZzQGxvY2Fs aG9zdDsKIEdyYW50cyBmb3IgdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3QKLUdSQU5UIFNFTEVDVCwg SU5TRVJULCBVUERBVEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQ Uk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cgREFUQUJBU0VTLCBT VVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBM SUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklFVywgU0hPVyBWSUVX LCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIsIEVWRU5UIE9OICou KiBUTyAndGVzdF95ZXNwcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJRklFRCBCWSBQQVNTV09SRCAn KkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1NzYnCitHUkFOVCBTRUxFQ1Qs IElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FELCBTSFVURE9XTiwg UFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9XIERBVEFCQVNFUywg U1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywgRVhFQ1VURSwgUkVQ TElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcsIFNIT1cgVklF VywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VSLCBFVkVOVCwgQ1JF QVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0ZXN0X3llc3ByaXZzJ0AnbG9jYWxob3N0JyBJREVO VElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENB MjU3NicKIEdSQU5UIFRSSUdHRVIgT04gYHByaXZfZGJgLiogVE8gJ3Rlc3RfeWVzcHJpdnMnQCds b2NhbGhvc3QnCiAKIHRyaWdnZXIgcHJpdmlsZWdlIG9uIGRiIGxldmVsIGZvciBjcmVhdGU6Cgo9 PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvaW5ub2RiX3N0b3Jl ZHByb2MucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9pbm5vZGJfc3Rv cmVkcHJvYy5yZXN1bHQJMjAwOC0wNy0wOCAxODo0MDozMiArMDAwMAorKysgYi9teXNxbC10ZXN0 L3N1aXRlL2Z1bmNzXzEvci9pbm5vZGJfc3RvcmVkcHJvYy5yZXN1bHQJMjAwOC0wOC0wNyAxMzoz ODoyOSArMDAwMApAQCAtMjE5NDIsOSArMjE5NDIsOSBAQCBFTkQJbGF0aW4xCWxhdGluMV9zd2Vk aXNoX2NpCWxhdGluMV9zd2VkCiBzZXQgQEBzcWxfbW9kZT0nJzsKIENBTEwgc3A0KCk7CiBMZXZl bAlDb2RlCU1lc3NhZ2UKLUVycm9yCTEzNjUJRGl2aXNpb24gYnkgMAorV2FybmluZwkxMzY1CURp dmlzaW9uIGJ5IDAKIFdhcm5pbmdzOgotRXJyb3IJMTM2NQlEaXZpc2lvbiBieSAwCitXYXJuaW5n CTEzNjUJRGl2aXNpb24gYnkgMAogRFJPUCBQUk9DRURVUkUgc3A0Owogc2V0IEBAc3FsX21vZGU9 Jyc7CiAKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9pbm5v ZGJfdHJpZ18wMy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2lubm9k Yl90cmlnXzAzLnJlc3VsdAkyMDA4LTA2LTAzIDEwOjIxOjQ4ICswMDAwCisrKyBiL215c3FsLXRl c3Qvc3VpdGUvZnVuY3NfMS9yL2lubm9kYl90cmlnXzAzLnJlc3VsdAkyMDA4LTA4LTA3IDEzOjM4 OjI5ICswMDAwCkBAIC03Nyw3ICs3Nyw3IEBAIGdyYW50IEFMTCAgb24gKi4qIHRvIHRlc3Rfbm9w cml2c0Bsb2NhbGgKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9tIHRlc3Rfbm9wcml2c0Bsb2Nh bGhvc3Q7CiBzaG93IGdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBm b3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQREFURSwg REVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJF RkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVN UE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBS RVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5F LCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQgT04gKi4qIFRPICd0ZXN0X25vcHJp dnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5OUMw Q0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JworR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQREFURSwg REVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJF RkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVN UE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBS RVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5F LCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQsIENSRUFURSBUQUJMRVNQQUNFIE9O ICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JE ICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIHJldm9rZSBBTEwg UFJJVklMRUdFUywgR1JBTlQgT1BUSU9OIEZST00gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBn cmFudCBUUklHR0VSIG9uICouKiB0byB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIGdyYW50IFNF TEVDVCBvbiBwcml2X2RiLnQxIHRvIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0OwpAQCAtMTU1LDcg KzE1NSw3IEBAIGdyYW50IEFMTCAgb24gKi4qIHRvIHRlc3Rfbm9wcml2c0Bsb2NhbGgKIHJldm9r ZSBVUERBVEUgIG9uICouKiBmcm9tIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3Q7CiBzaG93IGdyYW50 cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxv Y2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxP QUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNI T1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVT LCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUg VklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVT RVIsIEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJ REVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1 NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVM T0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBT SE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxF UywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRF IFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBV U0VSLCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0ZXN0X25v cHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5 OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JwogcmV2b2tlIEFMTCBQUklWSUxFR0VTLCBHUkFO VCBPUFRJT04gRlJPTSB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIGdyYW50IFRSSUdHRVIsIFVQ REFURSBvbiAqLiogdG8gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBzaG93IGdyYW50cyBmb3Ig dGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CkBAIC0xNjksNyArMTY5LDcgQEAgdGVzdF9ub3ByaXZz QGxvY2FsaG9zdAogdXNlIHByaXZfZGI7CiBzaG93IGdyYW50czsKIEdyYW50cyBmb3IgdGVzdF9u b3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwgQ1JFQVRFLCBE Uk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwg QUxURVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExP Q0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5U LCBDUkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwg Q1JFQVRFIFVTRVIsIEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9j YWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5 MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUsIENSRUFURSwg RFJPUCwgUkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgs IEFMVEVSLCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBM T0NLIFRBQkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVO VCwgQ1JFQVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUs IENSRUFURSBVU0VSLCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRP ICd0ZXN0X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3 MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2Jwogc2VsZWN0IGYxIGZyb20gdDEg b3JkZXIgYnkgZjE7CiBmMQogaW5zZXJ0IDMuNS4zLjItbm8KQEAgLTQwMSw3ICs0MDEsNyBAQCBn cmFudCBBTEwgIG9uICouKiB0byB0ZXN0X25vcHJpdnNAbG9jYWxoCiByZXZva2UgU0VMRUNUICBv biAqLiogZnJvbSB0ZXN0X25vcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3Rf bm9wcml2c0Bsb2NhbGhvc3Q7CiBHcmFudHMgZm9yIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3QKLUdS QU5UIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FELCBTSFVURE9X TiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9XIERBVEFCQVNF UywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywgRVhFQ1VURSwg UkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcsIFNIT1cg VklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VSLCBFVkVOVCwg VFJJR0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJRklFRCBC WSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1NzYnCitH UkFOVCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERP V04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFT RVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUs IFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9X IFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQs IFRSSUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9j YWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5 MTgzRjM3NEE1NENBMjU3NicKIHJldm9rZSBBTEwgUFJJVklMRUdFUywgR1JBTlQgT1BUSU9OIEZS T00gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBncmFudCBUUklHR0VSLCBTRUxFQ1Qgb24gKi4q IHRvIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3RfeWVzcHJp dnNAbG9jYWxob3N0OwpAQCAtNDE1LDcgKzQxNSw3IEBAIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3QK IHVzZSBwcml2X2RiOwogc2hvdyBncmFudHM7CiBHcmFudHMgZm9yIHRlc3Rfbm9wcml2c0Bsb2Nh bGhvc3QKLUdSQU5UIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FE LCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9X IERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywg RVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJ RVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VS LCBFVkVOVCwgVFJJR0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2FsaG9zdCcgSURF TlRJRklFRCBCWSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRD QTI1NzYnCitHUkFOVCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9B RCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hP VyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMs IEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBW SUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNF UiwgRVZFTlQsIFRSSUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVzdF9ub3By aXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlD MENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIGNyZWF0ZSB0cmlnZ2VyIHRyZzVhXzEgYmVmb3Jl IElOU0VSVCBvbiB0MSBmb3IgZWFjaCByb3cKIHNldCBAdGVzdF92YXIgPSBuZXcuZjE7CiBzZXQg QHRlc3RfdmFyID0gJ2JlZm9yZSB0cmlnIDMuNS4zLjgtMWEnOwoKPT09IG1vZGlmaWVkIGZpbGUg J215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2lubm9kYl90cmlnXzAzZS5yZXN1bHQnCi0tLSBh L215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2lubm9kYl90cmlnXzAzZS5yZXN1bHQJMjAwOC0w NC0zMCAxNjoxNjo0NSArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9pbm5v ZGJfdHJpZ18wM2UucmVzdWx0CTIwMDgtMDgtMDcgMTM6Mzg6MjkgKzAwMDAKQEAgLTU2Miw3ICs1 NjIsNyBAQCB0cmlnIDFfMS15ZXMKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9tIHRlc3RfeWVz cHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0 OwogR3JhbnRzIGZvciB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNF UlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NF U1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVS LCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FU SU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENS RUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQgT04gKi4qIFRP ICd0ZXN0X3llc3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5 NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5T RVJULCBVUERBVEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQUk9D RVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cgREFUQUJBU0VTLCBTVVBF UiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNB VElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklFVywgU0hPVyBWSUVXLCBD UkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIsIEVWRU5ULCBDUkVBVEUg VEFCTEVTUEFDRSBPTiAqLiogVE8gJ3Rlc3RfeWVzcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJ RUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2 JwogY29ubmVjdChsb2NhbGhvc3QsdGVzdF95ZXNwcml2cyxQV0QsdGVzdCxNQVNURVJfTVlQT1JU LE1BU1RFUl9NWVNPQ0spOwogc2VsZWN0IGN1cnJlbnRfdXNlcjsKIGN1cnJlbnRfdXNlcgpAQCAt NjA5LDcgKzYwOSw3IEBAIHJvb3RAbG9jYWxob3N0CiBncmFudCBUUklHR0VSIG9uIHByaXZfZGIu KiB0byB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIHNob3cgZ3JhbnRzIGZvciB0ZXN0X3llc3By aXZzQGxvY2FsaG9zdDsKIEdyYW50cyBmb3IgdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3QKLUdSQU5U IFNFTEVDVCwgSU5TRVJULCBVUERBVEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQsIFNI VVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cgREFU QUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBFWEVD VVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklFVywg U0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIsIEVW RU5UIE9OICouKiBUTyAndGVzdF95ZXNwcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJRklFRCBCWSBQ QVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1NzYnCitHUkFO VCBTRUxFQ1QsIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FELCBT SFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9XIERB VEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywgRVhF Q1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcs IFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VSLCBF VkVOVCwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0ZXN0X3llc3ByaXZzJ0AnbG9jYWxo b3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgz RjM3NEE1NENBMjU3NicKIEdSQU5UIFRSSUdHRVIgT04gYHByaXZfZGJgLiogVE8gJ3Rlc3RfeWVz cHJpdnMnQCdsb2NhbGhvc3QnCiAKIHRyaWdnZXIgcHJpdmlsZWdlIG9uIGRiIGxldmVsIGZvciBj cmVhdGU6Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvaXNf Y29sdW1uc19pc19mYWxjb24ucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEv ci9pc19jb2x1bW5zX2lzX2ZhbGNvbi5yZXN1bHQJMjAwOC0wNC0yOCAyMDowOTo1MSArMDAwMAor KysgYi9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9pc19jb2x1bW5zX2lzX2ZhbGNvbi5yZXN1 bHQJMjAwOC0wNy0yOSAxMDo0NTozOSArMDAwMApAQCAtMzYsMTEgKzM2LDYgQEAgTlVMTAlpbmZv cm1hdGlvbl9zY2hlbWEJRkFMQ09OX1NZU1RFTV9NRQogTlVMTAlpbmZvcm1hdGlvbl9zY2hlbWEJ RkFMQ09OX1NZU1RFTV9NRU1PUllfU1VNTUFSWQlTTUFMTF9IVU5LUwk1CTAJTk8JaW50CU5VTEwJ TlVMTAkxMAkwCU5VTEwJTlVMTAlpbnQoNCkJCQlzZWxlY3QJCURlZmF1bHQJRGVmYXVsdAogTlVM TAlpbmZvcm1hdGlvbl9zY2hlbWEJRkFMQ09OX1NZU1RFTV9NRU1PUllfU1VNTUFSWQlUT1RBTF9T UEFDRQkxCTAJTk8JYmlnaW50CU5VTEwJTlVMTAkxOQkwCU5VTEwJTlVMTAliaWdpbnQoNCkJCQlz ZWxlY3QJCURlZmF1bHQJRGVmYXVsdAogTlVMTAlpbmZvcm1hdGlvbl9zY2hlbWEJRkFMQ09OX1NZ U1RFTV9NRU1PUllfU1VNTUFSWQlVTklRVUVfU0laRVMJNgkwCU5PCWludAlOVUxMCU5VTEwJMTAJ MAlOVUxMCU5VTEwJaW50KDQpCQkJc2VsZWN0CQlEZWZhdWx0CURlZmF1bHQKLU5VTEwJaW5mb3Jt YXRpb25fc2NoZW1hCUZBTENPTl9UQUJMRVMJSU5URVJOQUxfTkFNRQk1CQlOTwl2YXJjaGFyCTEy Nwk1MDgJTlVMTAlOVUxMCXV0ZjgJdXRmOF9nZW5lcmFsX2NpCXZhcmNoYXIoMTI3KQkJCXNlbGVj dAkJRGVmYXVsdAlEZWZhdWx0Ci1OVUxMCWluZm9ybWF0aW9uX3NjaGVtYQlGQUxDT05fVEFCTEVT CVBBUlRJVElPTgkzCQlOTwl2YXJjaGFyCTEyNwk1MDgJTlVMTAlOVUxMCXV0ZjgJdXRmOF9nZW5l cmFsX2NpCXZhcmNoYXIoMTI3KQkJCXNlbGVjdAkJRGVmYXVsdAlEZWZhdWx0Ci1OVUxMCWluZm9y bWF0aW9uX3NjaGVtYQlGQUxDT05fVEFCTEVTCVNDSEVNQV9OQU1FCTEJCU5PCXZhcmNoYXIJMTI3 CTUwOAlOVUxMCU5VTEwJdXRmOAl1dGY4X2dlbmVyYWxfY2kJdmFyY2hhcigxMjcpCQkJc2VsZWN0 CQlEZWZhdWx0CURlZmF1bHQKLU5VTEwJaW5mb3JtYXRpb25fc2NoZW1hCUZBTENPTl9UQUJMRVMJ VEFCTEVTUEFDRQk0CQlOTwl2YXJjaGFyCTEyNwk1MDgJTlVMTAlOVUxMCXV0ZjgJdXRmOF9nZW5l cmFsX2NpCXZhcmNoYXIoMTI3KQkJCXNlbGVjdAkJRGVmYXVsdAlEZWZhdWx0Ci1OVUxMCWluZm9y bWF0aW9uX3NjaGVtYQlGQUxDT05fVEFCTEVTCVRBQkxFX05BTUUJMgkJTk8JdmFyY2hhcgkxMjcJ NTA4CU5VTEwJTlVMTAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQl2YXJjaGFyKDEyNykJCQlzZWxlY3QJ CURlZmF1bHQJRGVmYXVsdAogTlVMTAlpbmZvcm1hdGlvbl9zY2hlbWEJRkFMQ09OX1RBQkxFU1BB Q0VTCUNPTU1FTlQJMwkJTk8JdmFyY2hhcgkxMjcJNTA4CU5VTEwJTlVMTAl1dGY4CXV0ZjhfZ2Vu ZXJhbF9jaQl2YXJjaGFyKDEyNykJCQlzZWxlY3QJCURlZmF1bHQJRGVmYXVsdAogTlVMTAlpbmZv cm1hdGlvbl9zY2hlbWEJRkFMQ09OX1RBQkxFU1BBQ0VTCVRBQkxFU1BBQ0VfTkFNRQkxCQlOTwl2 YXJjaGFyCTEyNwk1MDgJTlVMTAlOVUxMCXV0ZjgJdXRmOF9nZW5lcmFsX2NpCXZhcmNoYXIoMTI3 KQkJCXNlbGVjdAkJRGVmYXVsdAlEZWZhdWx0CiBOVUxMCWluZm9ybWF0aW9uX3NjaGVtYQlGQUxD T05fVEFCTEVTUEFDRVMJVFlQRQkyCQlOTwl2YXJjaGFyCTEyNwk1MDgJTlVMTAlOVUxMCXV0ZjgJ dXRmOF9nZW5lcmFsX2NpCXZhcmNoYXIoMTI3KQkJCXNlbGVjdAkJRGVmYXVsdAlEZWZhdWx0CkBA IC0xNjEsMTEgKzE1Niw2IEBAIE5VTEwJaW5mb3JtYXRpb25fc2NoZW1hCUZBTENPTl9TWVNURU1f TUUKIE5VTEwJaW5mb3JtYXRpb25fc2NoZW1hCUZBTENPTl9TWVNURU1fTUVNT1JZX1NVTU1BUlkJ QklHX0hVTktTCWludAlOVUxMCU5VTEwJTlVMTAlOVUxMCWludCg0KQogTlVMTAlpbmZvcm1hdGlv bl9zY2hlbWEJRkFMQ09OX1NZU1RFTV9NRU1PUllfU1VNTUFSWQlTTUFMTF9IVU5LUwlpbnQJTlVM TAlOVUxMCU5VTEwJTlVMTAlpbnQoNCkKIE5VTEwJaW5mb3JtYXRpb25fc2NoZW1hCUZBTENPTl9T WVNURU1fTUVNT1JZX1NVTU1BUlkJVU5JUVVFX1NJWkVTCWludAlOVUxMCU5VTEwJTlVMTAlOVUxM CWludCg0KQotNC4wMDAwCWluZm9ybWF0aW9uX3NjaGVtYQlGQUxDT05fVEFCTEVTCVNDSEVNQV9O QU1FCXZhcmNoYXIJMTI3CTUwOAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQl2YXJjaGFyKDEyNykKLTQu MDAwMAlpbmZvcm1hdGlvbl9zY2hlbWEJRkFMQ09OX1RBQkxFUwlUQUJMRV9OQU1FCXZhcmNoYXIJ MTI3CTUwOAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQl2YXJjaGFyKDEyNykKLTQuMDAwMAlpbmZvcm1h dGlvbl9zY2hlbWEJRkFMQ09OX1RBQkxFUwlQQVJUSVRJT04JdmFyY2hhcgkxMjcJNTA4CXV0ZjgJ dXRmOF9nZW5lcmFsX2NpCXZhcmNoYXIoMTI3KQotNC4wMDAwCWluZm9ybWF0aW9uX3NjaGVtYQlG QUxDT05fVEFCTEVTCVRBQkxFU1BBQ0UJdmFyY2hhcgkxMjcJNTA4CXV0ZjgJdXRmOF9nZW5lcmFs X2NpCXZhcmNoYXIoMTI3KQotNC4wMDAwCWluZm9ybWF0aW9uX3NjaGVtYQlGQUxDT05fVEFCTEVT CUlOVEVSTkFMX05BTUUJdmFyY2hhcgkxMjcJNTA4CXV0ZjgJdXRmOF9nZW5lcmFsX2NpCXZhcmNo YXIoMTI3KQogNC4wMDAwCWluZm9ybWF0aW9uX3NjaGVtYQlGQUxDT05fVEFCTEVTUEFDRVMJVEFC TEVTUEFDRV9OQU1FCXZhcmNoYXIJMTI3CTUwOAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQl2YXJjaGFy KDEyNykKIDQuMDAwMAlpbmZvcm1hdGlvbl9zY2hlbWEJRkFMQ09OX1RBQkxFU1BBQ0VTCVRZUEUJ dmFyY2hhcgkxMjcJNTA4CXV0ZjgJdXRmOF9nZW5lcmFsX2NpCXZhcmNoYXIoMTI3KQogNC4wMDAw CWluZm9ybWF0aW9uX3NjaGVtYQlGQUxDT05fVEFCTEVTUEFDRVMJQ09NTUVOVAl2YXJjaGFyCTEy Nwk1MDgJdXRmOAl1dGY4X2dlbmVyYWxfY2kJdmFyY2hhcigxMjcpCgo9PT0gbW9kaWZpZWQgZmls ZSAnbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvaXNfY29sdW1uc19teXNxbC5yZXN1bHQnCi0t LSBhL215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2lzX2NvbHVtbnNfbXlzcWwucmVzdWx0CTIw MDgtMDctMTAgMDk6NDk6NTMgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3Iv aXNfY29sdW1uc19teXNxbC5yZXN1bHQJMjAwOC0wOC0wNyAxMzozODoyOSArMDAwMApAQCAtMjA5 LDYgKzIwOSw3IEBAIE5VTEwJbXlzcWwJdXNlcglBbHRlcl9wcml2CTE3CU4JTk8JZW51bQkKIE5V TEwJbXlzcWwJdXNlcglBbHRlcl9yb3V0aW5lX3ByaXYJMjgJTglOTwllbnVtCTEJNAlOVUxMCU5V TEwJdXRmOAl1dGY4X2dlbmVyYWxfY2kJZW51bSgnTicsJ1knKQkJCXNlbGVjdCxpbnNlcnQsdXBk YXRlLHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdAogTlVMTAlteXNxbAl1c2VyCUNyZWF0ZV9w cml2CTgJTglOTwllbnVtCTEJNAlOVUxMCU5VTEwJdXRmOAl1dGY4X2dlbmVyYWxfY2kJZW51bSgn TicsJ1knKQkJCXNlbGVjdCxpbnNlcnQsdXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVs dAogTlVMTAlteXNxbAl1c2VyCUNyZWF0ZV9yb3V0aW5lX3ByaXYJMjcJTglOTwllbnVtCTEJNAlO VUxMCU5VTEwJdXRmOAl1dGY4X2dlbmVyYWxfY2kJZW51bSgnTicsJ1knKQkJCXNlbGVjdCxpbnNl cnQsdXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdAorTlVMTAlteXNxbAl1c2VyCUNy ZWF0ZV90YWJsZXNwYWNlX3ByaXYJMzIJTglOTwllbnVtCTEJNAlOVUxMCU5VTEwJdXRmOAl1dGY4 X2dlbmVyYWxfY2kJZW51bSgnTicsJ1knKQkJCXNlbGVjdCxpbnNlcnQsdXBkYXRlLHJlZmVyZW5j ZXMJCURlZmF1bHQJRGVmYXVsdAogTlVMTAlteXNxbAl1c2VyCUNyZWF0ZV90bXBfdGFibGVfcHJp dgkyMAlOCU5PCWVudW0JMQk0CU5VTEwJTlVMTAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQllbnVtKCdO JywnWScpCQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVmYXVsdAlEZWZhdWx0 CiBOVUxMCW15c3FsCXVzZXIJQ3JlYXRlX3VzZXJfcHJpdgkyOQlOCU5PCWVudW0JMQk0CU5VTEwJ TlVMTAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQllbnVtKCdOJywnWScpCQkJc2VsZWN0LGluc2VydCx1 cGRhdGUscmVmZXJlbmNlcwkJRGVmYXVsdAlEZWZhdWx0CiBOVUxMCW15c3FsCXVzZXIJQ3JlYXRl X3ZpZXdfcHJpdgkyNQlOCU5PCWVudW0JMQk0CU5VTEwJTlVMTAl1dGY4CXV0ZjhfZ2VuZXJhbF9j aQllbnVtKCdOJywnWScpCQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVmYXVs dAlEZWZhdWx0CkBAIC0yMjIsMTAgKzIyMywxMCBAQCBOVUxMCW15c3FsCXVzZXIJSG9zdAkxCQlO TwljaGFyCTYwCTI0MAlOCiBOVUxMCW15c3FsCXVzZXIJSW5kZXhfcHJpdgkxNglOCU5PCWVudW0J MQk0CU5VTEwJTlVMTAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQllbnVtKCdOJywnWScpCQkJc2VsZWN0 LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVmYXVsdAlEZWZhdWx0CiBOVUxMCW15c3FsCXVz ZXIJSW5zZXJ0X3ByaXYJNQlOCU5PCWVudW0JMQk0CU5VTEwJTlVMTAl1dGY4CXV0ZjhfZ2VuZXJh bF9jaQllbnVtKCdOJywnWScpCQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVm YXVsdAlEZWZhdWx0CiBOVUxMCW15c3FsCXVzZXIJTG9ja190YWJsZXNfcHJpdgkyMQlOCU5PCWVu dW0JMQk0CU5VTEwJTlVMTAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQllbnVtKCdOJywnWScpCQkJc2Vs ZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVmYXVsdAlEZWZhdWx0Ci1OVUxMCW15c3Fs CXVzZXIJbWF4X2Nvbm5lY3Rpb25zCTM4CTAJTk8JaW50CU5VTEwJTlVMTAkxMAkwCU5VTEwJTlVM TAlpbnQoMTEpIHVuc2lnbmVkCQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVm YXVsdAlEZWZhdWx0Ci1OVUxMCW15c3FsCXVzZXIJbWF4X3F1ZXN0aW9ucwkzNgkwCU5PCWludAlO VUxMCU5VTEwJMTAJMAlOVUxMCU5VTEwJaW50KDExKSB1bnNpZ25lZAkJCXNlbGVjdCxpbnNlcnQs dXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdAotTlVMTAlteXNxbAl1c2VyCW1heF91 cGRhdGVzCTM3CTAJTk8JaW50CU5VTEwJTlVMTAkxMAkwCU5VTEwJTlVMTAlpbnQoMTEpIHVuc2ln bmVkCQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVmYXVsdAlEZWZhdWx0Ci1O VUxMCW15c3FsCXVzZXIJbWF4X3VzZXJfY29ubmVjdGlvbnMJMzkJMAlOTwlpbnQJTlVMTAlOVUxM CTEwCTAJTlVMTAlOVUxMCWludCgxMSkgdW5zaWduZWQJCQlzZWxlY3QsaW5zZXJ0LHVwZGF0ZSxy ZWZlcmVuY2VzCQlEZWZhdWx0CURlZmF1bHQKK05VTEwJbXlzcWwJdXNlcgltYXhfY29ubmVjdGlv bnMJMzkJMAlOTwlpbnQJTlVMTAlOVUxMCTEwCTAJTlVMTAlOVUxMCWludCgxMSkgdW5zaWduZWQJ CQlzZWxlY3QsaW5zZXJ0LHVwZGF0ZSxyZWZlcmVuY2VzCQlEZWZhdWx0CURlZmF1bHQKK05VTEwJ bXlzcWwJdXNlcgltYXhfcXVlc3Rpb25zCTM3CTAJTk8JaW50CU5VTEwJTlVMTAkxMAkwCU5VTEwJ TlVMTAlpbnQoMTEpIHVuc2lnbmVkCQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJ RGVmYXVsdAlEZWZhdWx0CitOVUxMCW15c3FsCXVzZXIJbWF4X3VwZGF0ZXMJMzgJMAlOTwlpbnQJ TlVMTAlOVUxMCTEwCTAJTlVMTAlOVUxMCWludCgxMSkgdW5zaWduZWQJCQlzZWxlY3QsaW5zZXJ0 LHVwZGF0ZSxyZWZlcmVuY2VzCQlEZWZhdWx0CURlZmF1bHQKK05VTEwJbXlzcWwJdXNlcgltYXhf dXNlcl9jb25uZWN0aW9ucwk0MAkwCU5PCWludAlOVUxMCU5VTEwJMTAJMAlOVUxMCU5VTEwJaW50 KDExKSB1bnNpZ25lZAkJCXNlbGVjdCxpbnNlcnQsdXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1bHQJ RGVmYXVsdAogTlVMTAlteXNxbAl1c2VyCVBhc3N3b3JkCTMJCU5PCWNoYXIJNDEJNDEJTlVMTAlO VUxMCWxhdGluMQlsYXRpbjFfYmluCWNoYXIoNDEpCQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVm ZXJlbmNlcwkJRGVmYXVsdAlEZWZhdWx0CiBOVUxMCW15c3FsCXVzZXIJUHJvY2Vzc19wcml2CTEy CU4JTk8JZW51bQkxCTQJTlVMTAlOVUxMCXV0ZjgJdXRmOF9nZW5lcmFsX2NpCWVudW0oJ04nLCdZ JykJCQlzZWxlY3QsaW5zZXJ0LHVwZGF0ZSxyZWZlcmVuY2VzCQlEZWZhdWx0CURlZmF1bHQKIE5V TEwJbXlzcWwJdXNlcglSZWZlcmVuY2VzX3ByaXYJMTUJTglOTwllbnVtCTEJNAlOVUxMCU5VTEwJ dXRmOAl1dGY4X2dlbmVyYWxfY2kJZW51bSgnTicsJ1knKQkJCXNlbGVjdCxpbnNlcnQsdXBkYXRl LHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdApAQCAtMjM2LDE0ICsyMzcsMTQgQEAgTlVMTAlt eXNxbAl1c2VyCVNlbGVjdF9wcml2CTQJTglOTwllbnVtCQogTlVMTAlteXNxbAl1c2VyCVNob3df ZGJfcHJpdgkxOAlOCU5PCWVudW0JMQk0CU5VTEwJTlVMTAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQll bnVtKCdOJywnWScpCQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVmYXVsdAlE ZWZhdWx0CiBOVUxMCW15c3FsCXVzZXIJU2hvd192aWV3X3ByaXYJMjYJTglOTwllbnVtCTEJNAlO VUxMCU5VTEwJdXRmOAl1dGY4X2dlbmVyYWxfY2kJZW51bSgnTicsJ1knKQkJCXNlbGVjdCxpbnNl cnQsdXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdAogTlVMTAlteXNxbAl1c2VyCVNo dXRkb3duX3ByaXYJMTEJTglOTwllbnVtCTEJNAlOVUxMCU5VTEwJdXRmOAl1dGY4X2dlbmVyYWxf Y2kJZW51bSgnTicsJ1knKQkJCXNlbGVjdCxpbnNlcnQsdXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1 bHQJRGVmYXVsdAotTlVMTAlteXNxbAl1c2VyCXNzbF9jaXBoZXIJMzMJTlVMTAlOTwlibG9iCTY1 NTM1CTY1NTM1CU5VTEwJTlVMTAlOVUxMCU5VTEwJYmxvYgkJCXNlbGVjdCxpbnNlcnQsdXBkYXRl LHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdAotTlVMTAlteXNxbAl1c2VyCXNzbF90eXBlCTMy CQlOTwllbnVtCTkJMzYJTlVMTAlOVUxMCXV0ZjgJdXRmOF9nZW5lcmFsX2NpCWVudW0oJycsJ0FO WScsJ1g1MDknLCdTUEVDSUZJRUQnKQkJCXNlbGVjdCxpbnNlcnQsdXBkYXRlLHJlZmVyZW5jZXMJ CURlZmF1bHQJRGVmYXVsdAorTlVMTAlteXNxbAl1c2VyCXNzbF9jaXBoZXIJMzQJTlVMTAlOTwli bG9iCTY1NTM1CTY1NTM1CU5VTEwJTlVMTAlOVUxMCU5VTEwJYmxvYgkJCXNlbGVjdCxpbnNlcnQs dXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdAorTlVMTAlteXNxbAl1c2VyCXNzbF90 eXBlCTMzCQlOTwllbnVtCTkJMzYJTlVMTAlOVUxMCXV0ZjgJdXRmOF9nZW5lcmFsX2NpCWVudW0o JycsJ0FOWScsJ1g1MDknLCdTUEVDSUZJRUQnKQkJCXNlbGVjdCxpbnNlcnQsdXBkYXRlLHJlZmVy ZW5jZXMJCURlZmF1bHQJRGVmYXVsdAogTlVMTAlteXNxbAl1c2VyCVN1cGVyX3ByaXYJMTkJTglO TwllbnVtCTEJNAlOVUxMCU5VTEwJdXRmOAl1dGY4X2dlbmVyYWxfY2kJZW51bSgnTicsJ1knKQkJ CXNlbGVjdCxpbnNlcnQsdXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1bHQJRGVmYXVsdAogTlVMTAlt eXNxbAl1c2VyCVRyaWdnZXJfcHJpdgkzMQlOCU5PCWVudW0JMQk0CU5VTEwJTlVMTAl1dGY4CXV0 ZjhfZ2VuZXJhbF9jaQllbnVtKCdOJywnWScpCQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJl bmNlcwkJRGVmYXVsdAlEZWZhdWx0CiBOVUxMCW15c3FsCXVzZXIJVXBkYXRlX3ByaXYJNglOCU5P CWVudW0JMQk0CU5VTEwJTlVMTAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQllbnVtKCdOJywnWScpCQkJ c2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVmYXVsdAlEZWZhdWx0CiBOVUxMCW15 c3FsCXVzZXIJVXNlcgkyCQlOTwljaGFyCTE2CTY0CU5VTEwJTlVMTAl1dGY4CXV0ZjhfYmluCWNo YXIoMTYpCVBSSQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVmYXVsdAlEZWZh dWx0Ci1OVUxMCW15c3FsCXVzZXIJeDUwOV9pc3N1ZXIJMzQJTlVMTAlOTwlibG9iCTY1NTM1CTY1 NTM1CU5VTEwJTlVMTAlOVUxMCU5VTEwJYmxvYgkJCXNlbGVjdCxpbnNlcnQsdXBkYXRlLHJlZmVy ZW5jZXMJCURlZmF1bHQJRGVmYXVsdAotTlVMTAlteXNxbAl1c2VyCXg1MDlfc3ViamVjdAkzNQlO VUxMCU5PCWJsb2IJNjU1MzUJNjU1MzUJTlVMTAlOVUxMCU5VTEwJTlVMTAlibG9iCQkJc2VsZWN0 LGluc2VydCx1cGRhdGUscmVmZXJlbmNlcwkJRGVmYXVsdAlEZWZhdWx0CitOVUxMCW15c3FsCXVz ZXIJeDUwOV9pc3N1ZXIJMzUJTlVMTAlOTwlibG9iCTY1NTM1CTY1NTM1CU5VTEwJTlVMTAlOVUxM CU5VTEwJYmxvYgkJCXNlbGVjdCxpbnNlcnQsdXBkYXRlLHJlZmVyZW5jZXMJCURlZmF1bHQJRGVm YXVsdAorTlVMTAlteXNxbAl1c2VyCXg1MDlfc3ViamVjdAkzNglOVUxMCU5PCWJsb2IJNjU1MzUJ NjU1MzUJTlVMTAlOVUxMCU5VTEwJTlVMTAlibG9iCQkJc2VsZWN0LGluc2VydCx1cGRhdGUscmVm ZXJlbmNlcwkJRGVmYXVsdAlEZWZhdWx0CiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBTaG93IHRoZSBx dW90aWVudCBvZiBDSEFSQUNURVJfT0NURVRfTEVOR1RIIGFuZCBDSEFSQUNURVJfTUFYSU1VTV9M RU5HVEgKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCkBAIC01NDgsNiArNTQ5LDcgQEAgTlVMTAlteXNxbAl0 aW1lX3pvbmVfdHJhbnNpdGlvbl90eXBlCUlzXwogNC4wMDAwCW15c3FsCXVzZXIJQ3JlYXRlX3Vz ZXJfcHJpdgllbnVtCTEJNAl1dGY4CXV0ZjhfZ2VuZXJhbF9jaQllbnVtKCdOJywnWScpCiA0LjAw MDAJbXlzcWwJdXNlcglFdmVudF9wcml2CWVudW0JMQk0CXV0ZjgJdXRmOF9nZW5lcmFsX2NpCWVu dW0oJ04nLCdZJykKIDQuMDAwMAlteXNxbAl1c2VyCVRyaWdnZXJfcHJpdgllbnVtCTEJNAl1dGY4 CXV0ZjhfZ2VuZXJhbF9jaQllbnVtKCdOJywnWScpCis0LjAwMDAJbXlzcWwJdXNlcglDcmVhdGVf dGFibGVzcGFjZV9wcml2CWVudW0JMQk0CXV0ZjgJdXRmOF9nZW5lcmFsX2NpCWVudW0oJ04nLCdZ JykKIDQuMDAwMAlteXNxbAl1c2VyCXNzbF90eXBlCWVudW0JOQkzNgl1dGY4CXV0ZjhfZ2VuZXJh bF9jaQllbnVtKCcnLCdBTlknLCdYNTA5JywnU1BFQ0lGSUVEJykKIDEuMDAwMAlteXNxbAl1c2Vy CXNzbF9jaXBoZXIJYmxvYgk2NTUzNQk2NTUzNQlOVUxMCU5VTEwJYmxvYgogMS4wMDAwCW15c3Fs CXVzZXIJeDUwOV9pc3N1ZXIJYmxvYgk2NTUzNQk2NTUzNQlOVUxMCU5VTEwJYmxvYgoKPT09IG1v ZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL2lzX3RhYmxlc19pc19mYWxj b24ucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9pc190YWJsZXNfaXNf ZmFsY29uLnJlc3VsdAkyMDA4LTA2LTE5IDE4OjU2OjQ4ICswMDAwCisrKyBiL215c3FsLXRlc3Qv c3VpdGUvZnVuY3NfMS9yL2lzX3RhYmxlc19pc19mYWxjb24ucmVzdWx0CTIwMDgtMDctMjkgMTA6 NDU6MzkgKzAwMDAKQEAgLTE1MywyOSArMTUzLDYgQEAgdXNlcl9jb21tZW50CQogU2VwYXJhdG9y CS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBU QUJMRV9DQVRBTE9HCU5VTEwKIFRBQkxFX1NDSEVNQQlpbmZvcm1hdGlvbl9zY2hlbWEKLVRBQkxF X05BTUUJRkFMQ09OX1RBQkxFUwotVEFCTEVfVFlQRQlTWVNURU0gVklFVwotRU5HSU5FCU1FTU9S WQotVkVSU0lPTgkxMAotUk9XX0ZPUk1BVAlGaXhlZAotVEFCTEVfUk9XUwkjVEJMUiMKLUFWR19S T1dfTEVOR1RICSNBUkwjCi1EQVRBX0xFTkdUSAkjREwjCi1NQVhfREFUQV9MRU5HVEgJI01ETCMK LUlOREVYX0xFTkdUSAkjSUwjCi1EQVRBX0ZSRUUJI0RGIwotQVVUT19JTkNSRU1FTlQJTlVMTAot Q1JFQVRFX1RJTUUJI0NSVCMKLVVQREFURV9USU1FCSNVVCMKLUNIRUNLX1RJTUUJI0NUIwotVEFC TEVfQ09MTEFUSU9OCXV0ZjhfZ2VuZXJhbF9jaQotQ0hFQ0tTVU0JTlVMTAotQ1JFQVRFX09QVElP TlMJI0NPIwotVEFCTEVfQ09NTUVOVAkjVEMjCi11c2VyX2NvbW1lbnQJCi1TZXBhcmF0b3IJLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVRBQkxF X0NBVEFMT0cJTlVMTAotVEFCTEVfU0NIRU1BCWluZm9ybWF0aW9uX3NjaGVtYQogVEFCTEVfTkFN RQlGQUxDT05fVEFCTEVTUEFDRVMKIFRBQkxFX1RZUEUJU1lTVEVNIFZJRVcKIEVOR0lORQlNRU1P UlkKQEAgLTQ2OSwyOSArNDQ2LDYgQEAgdXNlcl9jb21tZW50CQogU2VwYXJhdG9yCS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBUQUJMRV9DQVRB TE9HCU5VTEwKIFRBQkxFX1NDSEVNQQlpbmZvcm1hdGlvbl9zY2hlbWEKLVRBQkxFX05BTUUJRkFM Q09OX1RBQkxFUwotVEFCTEVfVFlQRQlTWVNURU0gVklFVwotRU5HSU5FCU1FTU9SWQotVkVSU0lP TgkxMAotUk9XX0ZPUk1BVAlGaXhlZAotVEFCTEVfUk9XUwkjVEJMUiMKLUFWR19ST1dfTEVOR1RI CSNBUkwjCi1EQVRBX0xFTkdUSAkjREwjCi1NQVhfREFUQV9MRU5HVEgJI01ETCMKLUlOREVYX0xF TkdUSAkjSUwjCi1EQVRBX0ZSRUUJI0RGIwotQVVUT19JTkNSRU1FTlQJTlVMTAotQ1JFQVRFX1RJ TUUJI0NSVCMKLVVQREFURV9USU1FCSNVVCMKLUNIRUNLX1RJTUUJI0NUIwotVEFCTEVfQ09MTEFU SU9OCXV0ZjhfZ2VuZXJhbF9jaQotQ0hFQ0tTVU0JTlVMTAotQ1JFQVRFX09QVElPTlMJI0NPIwot VEFCTEVfQ09NTUVOVAkjVEMjCi11c2VyX2NvbW1lbnQJCi1TZXBhcmF0b3IJLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVRBQkxFX0NBVEFMT0cJ TlVMTAotVEFCTEVfU0NIRU1BCWluZm9ybWF0aW9uX3NjaGVtYQogVEFCTEVfTkFNRQlGQUxDT05f VEFCTEVTUEFDRVMKIFRBQkxFX1RZUEUJU1lTVEVNIFZJRVcKIEVOR0lORQlNRU1PUlkKCj09PSBt b2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9pc191c2VyX3ByaXZpbGVn ZXMucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9pc191c2VyX3ByaXZp bGVnZXMucmVzdWx0CTIwMDgtMDMtMDcgMTk6MTg6MTQgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9z dWl0ZS9mdW5jc18xL3IvaXNfdXNlcl9wcml2aWxlZ2VzLnJlc3VsdAkyMDA4LTA4LTA3IDEzOjM4 OjI5ICswMDAwCkBAIC03NiwxMCArNzYsMTAgQEAgR1JBTlRFRQlUQUJMRV9DQVRBTE9HCVBSSVZJ TEVHRV9UWVBFCUlTXwogJ3Rlc3R1c2VyMydAJ2xvY2FsaG9zdCcJTlVMTAlVU0FHRQlOTwogU0VM RUNUICogRlJPTSBteXNxbC51c2VyCiBXSEVSRSB1c2VyIExJS0UgJ3Rlc3R1c2VyJScgT1JERVIg QlkgaG9zdCwgdXNlcjsKLUhvc3QJVXNlcglQYXNzd29yZAlTZWxlY3RfcHJpdglJbnNlcnRfcHJp dglVcGRhdGVfcHJpdglEZWxldGVfcHJpdglDcmVhdGVfcHJpdglEcm9wX3ByaXYJUmVsb2FkX3By aXYJU2h1dGRvd25fcHJpdglQcm9jZXNzX3ByaXYJRmlsZV9wcml2CUdyYW50X3ByaXYJUmVmZXJl bmNlc19wcml2CUluZGV4X3ByaXYJQWx0ZXJfcHJpdglTaG93X2RiX3ByaXYJU3VwZXJfcHJpdglD cmVhdGVfdG1wX3RhYmxlX3ByaXYJTG9ja190YWJsZXNfcHJpdglFeGVjdXRlX3ByaXYJUmVwbF9z bGF2ZV9wcml2CVJlcGxfY2xpZW50X3ByaXYJQ3JlYXRlX3ZpZXdfcHJpdglTaG93X3ZpZXdfcHJp dglDcmVhdGVfcm91dGluZV9wcml2CUFsdGVyX3JvdXRpbmVfcHJpdglDcmVhdGVfdXNlcl9wcml2 CUV2ZW50X3ByaXYJVHJpZ2dlcl9wcml2CXNzbF90eXBlCXNzbF9jaXBoZXIJeDUwOV9pc3N1ZXIJ eDUwOV9zdWJqZWN0CW1heF9xdWVzdGlvbnMJbWF4X3VwZGF0ZXMJbWF4X2Nvbm5lY3Rpb25zCW1h eF91c2VyX2Nvbm5lY3Rpb25zCi1sb2NhbGhvc3QJdGVzdHVzZXIxCQlOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCi1sb2Nh bGhvc3QJdGVzdHVzZXIyCQlOCVkJWQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCi1sb2NhbGhvc3QJdGVzdHVzZXIzCQlOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJ MAkwCitIb3N0CVVzZXIJUGFzc3dvcmQJU2VsZWN0X3ByaXYJSW5zZXJ0X3ByaXYJVXBkYXRlX3By aXYJRGVsZXRlX3ByaXYJQ3JlYXRlX3ByaXYJRHJvcF9wcml2CVJlbG9hZF9wcml2CVNodXRkb3du X3ByaXYJUHJvY2Vzc19wcml2CUZpbGVfcHJpdglHcmFudF9wcml2CVJlZmVyZW5jZXNfcHJpdglJ bmRleF9wcml2CUFsdGVyX3ByaXYJU2hvd19kYl9wcml2CVN1cGVyX3ByaXYJQ3JlYXRlX3RtcF90 YWJsZV9wcml2CUxvY2tfdGFibGVzX3ByaXYJRXhlY3V0ZV9wcml2CVJlcGxfc2xhdmVfcHJpdglS ZXBsX2NsaWVudF9wcml2CUNyZWF0ZV92aWV3X3ByaXYJU2hvd192aWV3X3ByaXYJQ3JlYXRlX3Jv dXRpbmVfcHJpdglBbHRlcl9yb3V0aW5lX3ByaXYJQ3JlYXRlX3VzZXJfcHJpdglFdmVudF9wcml2 CVRyaWdnZXJfcHJpdglDcmVhdGVfdGFibGVzcGFjZV9wcml2CXNzbF90eXBlCXNzbF9jaXBoZXIJ eDUwOV9pc3N1ZXIJeDUwOV9zdWJqZWN0CW1heF9xdWVzdGlvbnMJbWF4X3VwZGF0ZXMJbWF4X2Nv bm5lY3Rpb25zCW1heF91c2VyX2Nvbm5lY3Rpb25zCitsb2NhbGhvc3QJdGVzdHVzZXIxCQlOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJ CTAJMAkwCTAKK2xvY2FsaG9zdAl0ZXN0dXNlcjIJCU4JWQlZCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAorbG9jYWxob3N0CXRl c3R1c2VyMwkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCQkJCQkwCTAJMAkwCiAjCiAjIEFkZCBHUkFOVCBPUFRJT04gZGJfZGF0YWRpY3Qu KiB0byB0ZXN0dXNlcjE7CiBHUkFOVCBVUERBVEUgT04gZGJfZGF0YWRpY3QuKiBUTyAndGVzdHVz ZXIxJ0AnbG9jYWxob3N0JyBXSVRIIEdSQU5UIE9QVElPTjsKQEAgLTkzLDEwICs5MywxMCBAQCBH UkFOVEVFCVRBQkxFX0NBVEFMT0cJUFJJVklMRUdFX1RZUEUJSVNfCiAndGVzdHVzZXIzJ0AnbG9j YWxob3N0JwlOVUxMCVVTQUdFCU5PCiBTRUxFQ1QgKiBGUk9NIG15c3FsLnVzZXIKIFdIRVJFIHVz ZXIgTElLRSAndGVzdHVzZXIlJyBPUkRFUiBCWSBob3N0LCB1c2VyOwotSG9zdAlVc2VyCVBhc3N3 b3JkCVNlbGVjdF9wcml2CUluc2VydF9wcml2CVVwZGF0ZV9wcml2CURlbGV0ZV9wcml2CUNyZWF0 ZV9wcml2CURyb3BfcHJpdglSZWxvYWRfcHJpdglTaHV0ZG93bl9wcml2CVByb2Nlc3NfcHJpdglG aWxlX3ByaXYJR3JhbnRfcHJpdglSZWZlcmVuY2VzX3ByaXYJSW5kZXhfcHJpdglBbHRlcl9wcml2 CVNob3dfZGJfcHJpdglTdXBlcl9wcml2CUNyZWF0ZV90bXBfdGFibGVfcHJpdglMb2NrX3RhYmxl c19wcml2CUV4ZWN1dGVfcHJpdglSZXBsX3NsYXZlX3ByaXYJUmVwbF9jbGllbnRfcHJpdglDcmVh dGVfdmlld19wcml2CVNob3dfdmlld19wcml2CUNyZWF0ZV9yb3V0aW5lX3ByaXYJQWx0ZXJfcm91 dGluZV9wcml2CUNyZWF0ZV91c2VyX3ByaXYJRXZlbnRfcHJpdglUcmlnZ2VyX3ByaXYJc3NsX3R5 cGUJc3NsX2NpcGhlcgl4NTA5X2lzc3Vlcgl4NTA5X3N1YmplY3QJbWF4X3F1ZXN0aW9ucwltYXhf dXBkYXRlcwltYXhfY29ubmVjdGlvbnMJbWF4X3VzZXJfY29ubmVjdGlvbnMKLWxvY2FsaG9zdAl0 ZXN0dXNlcjEJCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JCQkJCTAJMAkwCTAKLWxvY2FsaG9zdAl0ZXN0dXNlcjIJCU4JWQlZCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKLWxv Y2FsaG9zdAl0ZXN0dXNlcjMJCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKK0hvc3QJVXNlcglQYXNzd29yZAlTZWxlY3Rf cHJpdglJbnNlcnRfcHJpdglVcGRhdGVfcHJpdglEZWxldGVfcHJpdglDcmVhdGVfcHJpdglEcm9w X3ByaXYJUmVsb2FkX3ByaXYJU2h1dGRvd25fcHJpdglQcm9jZXNzX3ByaXYJRmlsZV9wcml2CUdy YW50X3ByaXYJUmVmZXJlbmNlc19wcml2CUluZGV4X3ByaXYJQWx0ZXJfcHJpdglTaG93X2RiX3By aXYJU3VwZXJfcHJpdglDcmVhdGVfdG1wX3RhYmxlX3ByaXYJTG9ja190YWJsZXNfcHJpdglFeGVj dXRlX3ByaXYJUmVwbF9zbGF2ZV9wcml2CVJlcGxfY2xpZW50X3ByaXYJQ3JlYXRlX3ZpZXdfcHJp dglTaG93X3ZpZXdfcHJpdglDcmVhdGVfcm91dGluZV9wcml2CUFsdGVyX3JvdXRpbmVfcHJpdglD cmVhdGVfdXNlcl9wcml2CUV2ZW50X3ByaXYJVHJpZ2dlcl9wcml2CUNyZWF0ZV90YWJsZXNwYWNl X3ByaXYJc3NsX3R5cGUJc3NsX2NpcGhlcgl4NTA5X2lzc3Vlcgl4NTA5X3N1YmplY3QJbWF4X3F1 ZXN0aW9ucwltYXhfdXBkYXRlcwltYXhfY29ubmVjdGlvbnMJbWF4X3VzZXJfY29ubmVjdGlvbnMK K2xvY2FsaG9zdAl0ZXN0dXNlcjEJCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAorbG9jYWxob3N0CXRlc3R1c2VyMgkJ TglZCVkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CQkJCQkwCTAJMAkwCitsb2NhbGhvc3QJdGVzdHVzZXIzCQlOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKICMgRXN0YWJs aXNoIGNvbm5lY3Rpb24gdGVzdHVzZXIxICh1c2VyPXRlc3R1c2VyMSkKIFNFTEVDVCAqIEZST00g aW5mb3JtYXRpb25fc2NoZW1hLnVzZXJfcHJpdmlsZWdlcwogV0hFUkUgZ3JhbnRlZSBMSUtFICcn J3Rlc3R1c2VyJScnJwpAQCAtMTA1LDEwICsxMDUsMTAgQEAgR1JBTlRFRQlUQUJMRV9DQVRBTE9H CVBSSVZJTEVHRV9UWVBFCUlTXwogJ3Rlc3R1c2VyMSdAJ2xvY2FsaG9zdCcJTlVMTAlVU0FHRQlO 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 TglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCiBTSE9XIEdSQU5UUzsKIEdyYW50cyBmb3IgdGVz dHVzZXIxQGxvY2FsaG9zdAogR1JBTlQgVVNBR0UgT04gKi4qIFRPICd0ZXN0dXNlcjEnQCdsb2Nh bGhvc3QnCkBAIC0xMzAsMTAgKzEzMCwxMCBAQCBHUkFOVEVFCVRBQkxFX0NBVEFMT0cJUFJJVklM RUdFX1RZUEUJSVNfCiAndGVzdHVzZXIzJ0AnbG9jYWxob3N0JwlOVUxMCVVTQUdFCU5PCiBTRUxF Q1QgKiBGUk9NIG15c3FsLnVzZXIKIFdIRVJFIHVzZXIgTElLRSAndGVzdHVzZXIlJyBPUkRFUiBC WSBob3N0LCB1c2VyOwotSG9zdAlVc2VyCVBhc3N3b3JkCVNlbGVjdF9wcml2CUluc2VydF9wcml2 CVVwZGF0ZV9wcml2CURlbGV0ZV9wcml2CUNyZWF0ZV9wcml2CURyb3BfcHJpdglSZWxvYWRfcHJp dglTaHV0ZG93bl9wcml2CVByb2Nlc3NfcHJpdglGaWxlX3ByaXYJR3JhbnRfcHJpdglSZWZlcmVu Y2VzX3ByaXYJSW5kZXhfcHJpdglBbHRlcl9wcml2CVNob3dfZGJfcHJpdglTdXBlcl9wcml2CUNy ZWF0ZV90bXBfdGFibGVfcHJpdglMb2NrX3RhYmxlc19wcml2CUV4ZWN1dGVfcHJpdglSZXBsX3Ns YXZlX3ByaXYJUmVwbF9jbGllbnRfcHJpdglDcmVhdGVfdmlld19wcml2CVNob3dfdmlld19wcml2 CUNyZWF0ZV9yb3V0aW5lX3ByaXYJQWx0ZXJfcm91dGluZV9wcml2CUNyZWF0ZV91c2VyX3ByaXYJ RXZlbnRfcHJpdglUcmlnZ2VyX3ByaXYJc3NsX3R5cGUJc3NsX2NpcGhlcgl4NTA5X2lzc3Vlcgl4 NTA5X3N1YmplY3QJbWF4X3F1ZXN0aW9ucwltYXhfdXBkYXRlcwltYXhfY29ubmVjdGlvbnMJbWF4 X3VzZXJfY29ubmVjdGlvbnMKLWxvY2FsaG9zdAl0ZXN0dXNlcjEJCVkJTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKLWxvY2Fs aG9zdAl0ZXN0dXNlcjIJCU4JWQlZCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKLWxvY2FsaG9zdAl0ZXN0dXNlcjMJCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkw CTAKK0hvc3QJVXNlcglQYXNzd29yZAlTZWxlY3RfcHJpdglJbnNlcnRfcHJpdglVcGRhdGVfcHJp dglEZWxldGVfcHJpdglDcmVhdGVfcHJpdglEcm9wX3ByaXYJUmVsb2FkX3ByaXYJU2h1dGRvd25f cHJpdglQcm9jZXNzX3ByaXYJRmlsZV9wcml2CUdyYW50X3ByaXYJUmVmZXJlbmNlc19wcml2CUlu ZGV4X3ByaXYJQWx0ZXJfcHJpdglTaG93X2RiX3ByaXYJU3VwZXJfcHJpdglDcmVhdGVfdG1wX3Rh YmxlX3ByaXYJTG9ja190YWJsZXNfcHJpdglFeGVjdXRlX3ByaXYJUmVwbF9zbGF2ZV9wcml2CVJl cGxfY2xpZW50X3ByaXYJQ3JlYXRlX3ZpZXdfcHJpdglTaG93X3ZpZXdfcHJpdglDcmVhdGVfcm91 dGluZV9wcml2CUFsdGVyX3JvdXRpbmVfcHJpdglDcmVhdGVfdXNlcl9wcml2CUV2ZW50X3ByaXYJ VHJpZ2dlcl9wcml2CUNyZWF0ZV90YWJsZXNwYWNlX3ByaXYJc3NsX3R5cGUJc3NsX2NpcGhlcgl4 NTA5X2lzc3Vlcgl4NTA5X3N1YmplY3QJbWF4X3F1ZXN0aW9ucwltYXhfdXBkYXRlcwltYXhfY29u bmVjdGlvbnMJbWF4X3VzZXJfY29ubmVjdGlvbnMKK2xvY2FsaG9zdAl0ZXN0dXNlcjEJCVkJTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJ MAkwCTAJMAorbG9jYWxob3N0CXRlc3R1c2VyMgkJTglZCVkJTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCitsb2NhbGhvc3QJdGVz dHVzZXIzCQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JCQkJCTAJMAkwCTAKIEdSQU5UIFNFTEVDVCBPTiAqLiogVE8gJ3Rlc3R1c2VyMSdA J2xvY2FsaG9zdCcgV0lUSCBHUkFOVCBPUFRJT047CiAjCiAjIEhlcmUgPFNFTEVDVCBZRVM+IGlz IHNob3duIGNvcnJlY3RseSBmb3IgdGVzdHVzZXIxOwpAQCAtMTQ3LDEwICsxNDcsMTAgQEAgR1JB TlRFRQlUQUJMRV9DQVRBTE9HCVBSSVZJTEVHRV9UWVBFCUlTXwogJ3Rlc3R1c2VyMydAJ2xvY2Fs aG9zdCcJTlVMTAlVU0FHRQlOTwogU0VMRUNUICogRlJPTSBteXNxbC51c2VyCiBXSEVSRSB1c2Vy IExJS0UgJ3Rlc3R1c2VyJScgT1JERVIgQlkgaG9zdCwgdXNlcjsKLUhvc3QJVXNlcglQYXNzd29y ZAlTZWxlY3RfcHJpdglJbnNlcnRfcHJpdglVcGRhdGVfcHJpdglEZWxldGVfcHJpdglDcmVhdGVf cHJpdglEcm9wX3ByaXYJUmVsb2FkX3ByaXYJU2h1dGRvd25fcHJpdglQcm9jZXNzX3ByaXYJRmls ZV9wcml2CUdyYW50X3ByaXYJUmVmZXJlbmNlc19wcml2CUluZGV4X3ByaXYJQWx0ZXJfcHJpdglT aG93X2RiX3ByaXYJU3VwZXJfcHJpdglDcmVhdGVfdG1wX3RhYmxlX3ByaXYJTG9ja190YWJsZXNf cHJpdglFeGVjdXRlX3ByaXYJUmVwbF9zbGF2ZV9wcml2CVJlcGxfY2xpZW50X3ByaXYJQ3JlYXRl X3ZpZXdfcHJpdglTaG93X3ZpZXdfcHJpdglDcmVhdGVfcm91dGluZV9wcml2CUFsdGVyX3JvdXRp bmVfcHJpdglDcmVhdGVfdXNlcl9wcml2CUV2ZW50X3ByaXYJVHJpZ2dlcl9wcml2CXNzbF90eXBl CXNzbF9jaXBoZXIJeDUwOV9pc3N1ZXIJeDUwOV9zdWJqZWN0CW1heF9xdWVzdGlvbnMJbWF4X3Vw ZGF0ZXMJbWF4X2Nvbm5lY3Rpb25zCW1heF91c2VyX2Nvbm5lY3Rpb25zCi1sb2NhbGhvc3QJdGVz dHVzZXIxCQlZCU4JTglOCU4JTglOCU4JTglOCVkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCQkJCQkwCTAJMAkwCi1sb2NhbGhvc3QJdGVzdHVzZXIyCQlOCVkJWQlOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCi1sb2Nh bGhvc3QJdGVzdHVzZXIzCQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCitIb3N0CVVzZXIJUGFzc3dvcmQJU2VsZWN0X3By aXYJSW5zZXJ0X3ByaXYJVXBkYXRlX3ByaXYJRGVsZXRlX3ByaXYJQ3JlYXRlX3ByaXYJRHJvcF9w cml2CVJlbG9hZF9wcml2CVNodXRkb3duX3ByaXYJUHJvY2Vzc19wcml2CUZpbGVfcHJpdglHcmFu dF9wcml2CVJlZmVyZW5jZXNfcHJpdglJbmRleF9wcml2CUFsdGVyX3ByaXYJU2hvd19kYl9wcml2 CVN1cGVyX3ByaXYJQ3JlYXRlX3RtcF90YWJsZV9wcml2CUxvY2tfdGFibGVzX3ByaXYJRXhlY3V0 ZV9wcml2CVJlcGxfc2xhdmVfcHJpdglSZXBsX2NsaWVudF9wcml2CUNyZWF0ZV92aWV3X3ByaXYJ U2hvd192aWV3X3ByaXYJQ3JlYXRlX3JvdXRpbmVfcHJpdglBbHRlcl9yb3V0aW5lX3ByaXYJQ3Jl YXRlX3VzZXJfcHJpdglFdmVudF9wcml2CVRyaWdnZXJfcHJpdglDcmVhdGVfdGFibGVzcGFjZV9w cml2CXNzbF90eXBlCXNzbF9jaXBoZXIJeDUwOV9pc3N1ZXIJeDUwOV9zdWJqZWN0CW1heF9xdWVz dGlvbnMJbWF4X3VwZGF0ZXMJbWF4X2Nvbm5lY3Rpb25zCW1heF91c2VyX2Nvbm5lY3Rpb25zCits b2NhbGhvc3QJdGVzdHVzZXIxCQlZCU4JTglOCU4JTglOCU4JTglOCVkJTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKK2xvY2FsaG9zdAl0ZXN0dXNlcjIJCU4J WQlZCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJ CQkJMAkwCTAJMAorbG9jYWxob3N0CXRlc3R1c2VyMwkJTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCiAjIFN3aXRjaCB0 byBjb25uZWN0aW9uIHRlc3R1c2VyMQogU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEu dXNlcl9wcml2aWxlZ2VzCiBXSEVSRSBncmFudGVlIExJS0UgJycndGVzdHVzZXIlJycnCkBAIC0x NTksMTAgKzE1OSwxMCBAQCBHUkFOVEVFCVRBQkxFX0NBVEFMT0cJUFJJVklMRUdFX1RZUEUJSVNf CiAndGVzdHVzZXIxJ0AnbG9jYWxob3N0JwlOVUxMCVNFTEVDVAlZRVMKIFNFTEVDVCAqIEZST00g bXlzcWwudXNlcgogV0hFUkUgdXNlciBMSUtFICd0ZXN0dXNlciUnIE9SREVSIEJZIGhvc3QsIHVz ZXI7Ci1Ib3N0CVVzZXIJUGFzc3dvcmQJU2VsZWN0X3ByaXYJSW5zZXJ0X3ByaXYJVXBkYXRlX3By aXYJRGVsZXRlX3ByaXYJQ3JlYXRlX3ByaXYJRHJvcF9wcml2CVJlbG9hZF9wcml2CVNodXRkb3du X3ByaXYJUHJvY2Vzc19wcml2CUZpbGVfcHJpdglHcmFudF9wcml2CVJlZmVyZW5jZXNfcHJpdglJ bmRleF9wcml2CUFsdGVyX3ByaXYJU2hvd19kYl9wcml2CVN1cGVyX3ByaXYJQ3JlYXRlX3RtcF90 YWJsZV9wcml2CUxvY2tfdGFibGVzX3ByaXYJRXhlY3V0ZV9wcml2CVJlcGxfc2xhdmVfcHJpdglS ZXBsX2NsaWVudF9wcml2CUNyZWF0ZV92aWV3X3ByaXYJU2hvd192aWV3X3ByaXYJQ3JlYXRlX3Jv dXRpbmVfcHJpdglBbHRlcl9yb3V0aW5lX3ByaXYJQ3JlYXRlX3VzZXJfcHJpdglFdmVudF9wcml2 CVRyaWdnZXJfcHJpdglzc2xfdHlwZQlzc2xfY2lwaGVyCXg1MDlfaXNzdWVyCXg1MDlfc3ViamVj dAltYXhfcXVlc3Rpb25zCW1heF91cGRhdGVzCW1heF9jb25uZWN0aW9ucwltYXhfdXNlcl9jb25u ZWN0aW9ucwotbG9jYWxob3N0CXRlc3R1c2VyMQkJWQlOCU4JTglOCU4JTglOCU4JTglZCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAotbG9jYWxob3N0CXRlc3R1 c2VyMgkJTglZCVkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTgkJCQkJMAkwCTAJMAotbG9jYWxob3N0CXRlc3R1c2VyMwkJTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAorSG9zdAlV c2VyCVBhc3N3b3JkCVNlbGVjdF9wcml2CUluc2VydF9wcml2CVVwZGF0ZV9wcml2CURlbGV0ZV9w cml2CUNyZWF0ZV9wcml2CURyb3BfcHJpdglSZWxvYWRfcHJpdglTaHV0ZG93bl9wcml2CVByb2Nl c3NfcHJpdglGaWxlX3ByaXYJR3JhbnRfcHJpdglSZWZlcmVuY2VzX3ByaXYJSW5kZXhfcHJpdglB bHRlcl9wcml2CVNob3dfZGJfcHJpdglTdXBlcl9wcml2CUNyZWF0ZV90bXBfdGFibGVfcHJpdglM b2NrX3RhYmxlc19wcml2CUV4ZWN1dGVfcHJpdglSZXBsX3NsYXZlX3ByaXYJUmVwbF9jbGllbnRf cHJpdglDcmVhdGVfdmlld19wcml2CVNob3dfdmlld19wcml2CUNyZWF0ZV9yb3V0aW5lX3ByaXYJ QWx0ZXJfcm91dGluZV9wcml2CUNyZWF0ZV91c2VyX3ByaXYJRXZlbnRfcHJpdglUcmlnZ2VyX3By aXYJQ3JlYXRlX3RhYmxlc3BhY2VfcHJpdglzc2xfdHlwZQlzc2xfY2lwaGVyCXg1MDlfaXNzdWVy CXg1MDlfc3ViamVjdAltYXhfcXVlc3Rpb25zCW1heF91cGRhdGVzCW1heF9jb25uZWN0aW9ucwlt YXhfdXNlcl9jb25uZWN0aW9ucworbG9jYWxob3N0CXRlc3R1c2VyMQkJWQlOCU4JTglOCU4JTglO CU4JTglZCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCits b2NhbGhvc3QJdGVzdHVzZXIyCQlOCVkJWQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKK2xvY2FsaG9zdAl0ZXN0dXNlcjMJCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJ CQkJMAkwCTAJMAogU0hPVyBHUkFOVFM7CiBHcmFudHMgZm9yIHRlc3R1c2VyMUBsb2NhbGhvc3QK IEdSQU5UIFNFTEVDVCBPTiAqLiogVE8gJ3Rlc3R1c2VyMSdAJ2xvY2FsaG9zdCcgV0lUSCBHUkFO VCBPUFRJT04KQEAgLTIwNywxMCArMjA3LDEwIEBAIEdSQU5URUUJVEFCTEVfQ0FUQUxPRwlQUklW SUxFR0VfVFlQRQlJU18KICd0ZXN0dXNlcjMnQCdsb2NhbGhvc3QnCU5VTEwJVVNBR0UJTk8KIFNF TEVDVCAqIEZST00gbXlzcWwudXNlcgogV0hFUkUgdXNlciBMSUtFICd0ZXN0dXNlciUnIE9SREVS IEJZIGhvc3QsIHVzZXI7Ci1Ib3N0CVVzZXIJUGFzc3dvcmQJU2VsZWN0X3ByaXYJSW5zZXJ0X3By aXYJVXBkYXRlX3ByaXYJRGVsZXRlX3ByaXYJQ3JlYXRlX3ByaXYJRHJvcF9wcml2CVJlbG9hZF9w cml2CVNodXRkb3duX3ByaXYJUHJvY2Vzc19wcml2CUZpbGVfcHJpdglHcmFudF9wcml2CVJlZmVy ZW5jZXNfcHJpdglJbmRleF9wcml2CUFsdGVyX3ByaXYJU2hvd19kYl9wcml2CVN1cGVyX3ByaXYJ Q3JlYXRlX3RtcF90YWJsZV9wcml2CUxvY2tfdGFibGVzX3ByaXYJRXhlY3V0ZV9wcml2CVJlcGxf c2xhdmVfcHJpdglSZXBsX2NsaWVudF9wcml2CUNyZWF0ZV92aWV3X3ByaXYJU2hvd192aWV3X3By aXYJQ3JlYXRlX3JvdXRpbmVfcHJpdglBbHRlcl9yb3V0aW5lX3ByaXYJQ3JlYXRlX3VzZXJfcHJp dglFdmVudF9wcml2CVRyaWdnZXJfcHJpdglzc2xfdHlwZQlzc2xfY2lwaGVyCXg1MDlfaXNzdWVy CXg1MDlfc3ViamVjdAltYXhfcXVlc3Rpb25zCW1heF91cGRhdGVzCW1heF9jb25uZWN0aW9ucwlt YXhfdXNlcl9jb25uZWN0aW9ucwotbG9jYWxob3N0CXRlc3R1c2VyMQkJTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAotbG9j YWxob3N0CXRlc3R1c2VyMgkJTglZCVkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAotbG9jYWxob3N0CXRlc3R1c2VyMwkJTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkw CTAJMAorSG9zdAlVc2VyCVBhc3N3b3JkCVNlbGVjdF9wcml2CUluc2VydF9wcml2CVVwZGF0ZV9w cml2CURlbGV0ZV9wcml2CUNyZWF0ZV9wcml2CURyb3BfcHJpdglSZWxvYWRfcHJpdglTaHV0ZG93 bl9wcml2CVByb2Nlc3NfcHJpdglGaWxlX3ByaXYJR3JhbnRfcHJpdglSZWZlcmVuY2VzX3ByaXYJ SW5kZXhfcHJpdglBbHRlcl9wcml2CVNob3dfZGJfcHJpdglTdXBlcl9wcml2CUNyZWF0ZV90bXBf dGFibGVfcHJpdglMb2NrX3RhYmxlc19wcml2CUV4ZWN1dGVfcHJpdglSZXBsX3NsYXZlX3ByaXYJ UmVwbF9jbGllbnRfcHJpdglDcmVhdGVfdmlld19wcml2CVNob3dfdmlld19wcml2CUNyZWF0ZV9y b3V0aW5lX3ByaXYJQWx0ZXJfcm91dGluZV9wcml2CUNyZWF0ZV91c2VyX3ByaXYJRXZlbnRfcHJp dglUcmlnZ2VyX3ByaXYJQ3JlYXRlX3RhYmxlc3BhY2VfcHJpdglzc2xfdHlwZQlzc2xfY2lwaGVy CXg1MDlfaXNzdWVyCXg1MDlfc3ViamVjdAltYXhfcXVlc3Rpb25zCW1heF91cGRhdGVzCW1heF9j b25uZWN0aW9ucwltYXhfdXNlcl9jb25uZWN0aW9ucworbG9jYWxob3N0CXRlc3R1c2VyMQkJTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJ CQkwCTAJMAkwCitsb2NhbGhvc3QJdGVzdHVzZXIyCQlOCVkJWQlOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKK2xvY2FsaG9zdAl0 ZXN0dXNlcjMJCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTgkJCQkJMAkwCTAJMAogIyBTd2l0Y2ggdG8gY29ubmVjdGlvbiB0ZXN0dXNlcjEK IFNFTEVDVCAqIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnVzZXJfcHJpdmlsZWdlcwogV0hFUkUg Z3JhbnRlZSBMSUtFICcnJ3Rlc3R1c2VyJScnJwpAQCAtMjUzLDEwICsyNTMsMTAgQEAgR1JBTlRF RQlUQUJMRV9DQVRBTE9HCVBSSVZJTEVHRV9UWVBFCUlTXwogJ3Rlc3R1c2VyMydAJ2xvY2FsaG9z dCcJTlVMTAlVU0FHRQlOTwogU0VMRUNUICogRlJPTSBteXNxbC51c2VyCiBXSEVSRSB1c2VyIExJ S0UgJ3Rlc3R1c2VyJScgT1JERVIgQlkgaG9zdCwgdXNlcjsKLUhvc3QJVXNlcglQYXNzd29yZAlT ZWxlY3RfcHJpdglJbnNlcnRfcHJpdglVcGRhdGVfcHJpdglEZWxldGVfcHJpdglDcmVhdGVfcHJp dglEcm9wX3ByaXYJUmVsb2FkX3ByaXYJU2h1dGRvd25fcHJpdglQcm9jZXNzX3ByaXYJRmlsZV9w cml2CUdyYW50X3ByaXYJUmVmZXJlbmNlc19wcml2CUluZGV4X3ByaXYJQWx0ZXJfcHJpdglTaG93 X2RiX3ByaXYJU3VwZXJfcHJpdglDcmVhdGVfdG1wX3RhYmxlX3ByaXYJTG9ja190YWJsZXNfcHJp dglFeGVjdXRlX3ByaXYJUmVwbF9zbGF2ZV9wcml2CVJlcGxfY2xpZW50X3ByaXYJQ3JlYXRlX3Zp ZXdfcHJpdglTaG93X3ZpZXdfcHJpdglDcmVhdGVfcm91dGluZV9wcml2CUFsdGVyX3JvdXRpbmVf cHJpdglDcmVhdGVfdXNlcl9wcml2CUV2ZW50X3ByaXYJVHJpZ2dlcl9wcml2CXNzbF90eXBlCXNz bF9jaXBoZXIJeDUwOV9pc3N1ZXIJeDUwOV9zdWJqZWN0CW1heF9xdWVzdGlvbnMJbWF4X3VwZGF0 ZXMJbWF4X2Nvbm5lY3Rpb25zCW1heF91c2VyX2Nvbm5lY3Rpb25zCi1sb2NhbGhvc3QJdGVzdHVz ZXIxCQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCQkJCQkwCTAJMAkwCi1sb2NhbGhvc3QJdGVzdHVzZXIyCQlOCVkJWQlOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCi1sb2NhbGhv c3QJdGVzdHVzZXIzCQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCitIb3N0CVVzZXIJUGFzc3dvcmQJU2VsZWN0X3ByaXYJ SW5zZXJ0X3ByaXYJVXBkYXRlX3ByaXYJRGVsZXRlX3ByaXYJQ3JlYXRlX3ByaXYJRHJvcF9wcml2 CVJlbG9hZF9wcml2CVNodXRkb3duX3ByaXYJUHJvY2Vzc19wcml2CUZpbGVfcHJpdglHcmFudF9w cml2CVJlZmVyZW5jZXNfcHJpdglJbmRleF9wcml2CUFsdGVyX3ByaXYJU2hvd19kYl9wcml2CVN1 cGVyX3ByaXYJQ3JlYXRlX3RtcF90YWJsZV9wcml2CUxvY2tfdGFibGVzX3ByaXYJRXhlY3V0ZV9w cml2CVJlcGxfc2xhdmVfcHJpdglSZXBsX2NsaWVudF9wcml2CUNyZWF0ZV92aWV3X3ByaXYJU2hv d192aWV3X3ByaXYJQ3JlYXRlX3JvdXRpbmVfcHJpdglBbHRlcl9yb3V0aW5lX3ByaXYJQ3JlYXRl X3VzZXJfcHJpdglFdmVudF9wcml2CVRyaWdnZXJfcHJpdglDcmVhdGVfdGFibGVzcGFjZV9wcml2 CXNzbF90eXBlCXNzbF9jaXBoZXIJeDUwOV9pc3N1ZXIJeDUwOV9zdWJqZWN0CW1heF9xdWVzdGlv bnMJbWF4X3VwZGF0ZXMJbWF4X2Nvbm5lY3Rpb25zCW1heF91c2VyX2Nvbm5lY3Rpb25zCitsb2Nh bGhvc3QJdGVzdHVzZXIxCQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKK2xvY2FsaG9zdAl0ZXN0dXNlcjIJCU4JWQlZ CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJ MAkwCTAJMAorbG9jYWxob3N0CXRlc3R1c2VyMwkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCiAjIFN3aXRjaCB0byBj b25uZWN0aW9uIHRlc3R1c2VyMQogU0VMRUNUICogRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEudXNl cl9wcml2aWxlZ2VzCiBXSEVSRSBncmFudGVlIExJS0UgJycndGVzdHVzZXIlJycnCkBAIC0yNjUs MTAgKzI2NSwxMCBAQCBHUkFOVEVFCVRBQkxFX0NBVEFMT0cJUFJJVklMRUdFX1RZUEUJSVNfCiAn dGVzdHVzZXIxJ0AnbG9jYWxob3N0JwlOVUxMCVVTQUdFCU5PCiBTRUxFQ1QgKiBGUk9NIG15c3Fs LnVzZXIKIFdIRVJFIHVzZXIgTElLRSAndGVzdHVzZXIlJyBPUkRFUiBCWSBob3N0LCB1c2VyOwot SG9zdAlVc2VyCVBhc3N3b3JkCVNlbGVjdF9wcml2CUluc2VydF9wcml2CVVwZGF0ZV9wcml2CURl bGV0ZV9wcml2CUNyZWF0ZV9wcml2CURyb3BfcHJpdglSZWxvYWRfcHJpdglTaHV0ZG93bl9wcml2 CVByb2Nlc3NfcHJpdglGaWxlX3ByaXYJR3JhbnRfcHJpdglSZWZlcmVuY2VzX3ByaXYJSW5kZXhf cHJpdglBbHRlcl9wcml2CVNob3dfZGJfcHJpdglTdXBlcl9wcml2CUNyZWF0ZV90bXBfdGFibGVf cHJpdglMb2NrX3RhYmxlc19wcml2CUV4ZWN1dGVfcHJpdglSZXBsX3NsYXZlX3ByaXYJUmVwbF9j bGllbnRfcHJpdglDcmVhdGVfdmlld19wcml2CVNob3dfdmlld19wcml2CUNyZWF0ZV9yb3V0aW5l X3ByaXYJQWx0ZXJfcm91dGluZV9wcml2CUNyZWF0ZV91c2VyX3ByaXYJRXZlbnRfcHJpdglUcmln Z2VyX3ByaXYJc3NsX3R5cGUJc3NsX2NpcGhlcgl4NTA5X2lzc3Vlcgl4NTA5X3N1YmplY3QJbWF4 X3F1ZXN0aW9ucwltYXhfdXBkYXRlcwltYXhfY29ubmVjdGlvbnMJbWF4X3VzZXJfY29ubmVjdGlv bnMKLWxvY2FsaG9zdAl0ZXN0dXNlcjEJCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKLWxvY2FsaG9zdAl0ZXN0dXNlcjIJ CU4JWQlZCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J CQkJCTAJMAkwCTAKLWxvY2FsaG9zdAl0ZXN0dXNlcjMJCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJMAkwCTAKK0hvc3QJVXNlcglQ YXNzd29yZAlTZWxlY3RfcHJpdglJbnNlcnRfcHJpdglVcGRhdGVfcHJpdglEZWxldGVfcHJpdglD cmVhdGVfcHJpdglEcm9wX3ByaXYJUmVsb2FkX3ByaXYJU2h1dGRvd25fcHJpdglQcm9jZXNzX3By aXYJRmlsZV9wcml2CUdyYW50X3ByaXYJUmVmZXJlbmNlc19wcml2CUluZGV4X3ByaXYJQWx0ZXJf cHJpdglTaG93X2RiX3ByaXYJU3VwZXJfcHJpdglDcmVhdGVfdG1wX3RhYmxlX3ByaXYJTG9ja190 YWJsZXNfcHJpdglFeGVjdXRlX3ByaXYJUmVwbF9zbGF2ZV9wcml2CVJlcGxfY2xpZW50X3ByaXYJ Q3JlYXRlX3ZpZXdfcHJpdglTaG93X3ZpZXdfcHJpdglDcmVhdGVfcm91dGluZV9wcml2CUFsdGVy X3JvdXRpbmVfcHJpdglDcmVhdGVfdXNlcl9wcml2CUV2ZW50X3ByaXYJVHJpZ2dlcl9wcml2CUNy ZWF0ZV90YWJsZXNwYWNlX3ByaXYJc3NsX3R5cGUJc3NsX2NpcGhlcgl4NTA5X2lzc3Vlcgl4NTA5 X3N1YmplY3QJbWF4X3F1ZXN0aW9ucwltYXhfdXBkYXRlcwltYXhfY29ubmVjdGlvbnMJbWF4X3Vz ZXJfY29ubmVjdGlvbnMKK2xvY2FsaG9zdAl0ZXN0dXNlcjEJCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAorbG9jYWxo b3N0CXRlc3R1c2VyMgkJTglZCVkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCitsb2NhbGhvc3QJdGVzdHVzZXIzCQlOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JCQkJCTAJ MAkwCTAKIFNIT1cgR1JBTlRTOwogR3JhbnRzIGZvciB0ZXN0dXNlcjFAbG9jYWxob3N0CiBHUkFO VCBVU0FHRSBPTiAqLiogVE8gJ3Rlc3R1c2VyMSdAJ2xvY2FsaG9zdCcKQEAgLTI4NCwxMCArMjg0 LDEwIEBAIEdSQU5URUUJVEFCTEVfQ0FUQUxPRwlQUklWSUxFR0VfVFlQRQlJU18KICd0ZXN0dXNl cjEnQCdsb2NhbGhvc3QnCU5VTEwJVVNBR0UJTk8KIFNFTEVDVCAqIEZST00gbXlzcWwudXNlcgog V0hFUkUgdXNlciBMSUtFICd0ZXN0dXNlciUnIE9SREVSIEJZIGhvc3QsIHVzZXI7Ci1Ib3N0CVVz ZXIJUGFzc3dvcmQJU2VsZWN0X3ByaXYJSW5zZXJ0X3ByaXYJVXBkYXRlX3ByaXYJRGVsZXRlX3By aXYJQ3JlYXRlX3ByaXYJRHJvcF9wcml2CVJlbG9hZF9wcml2CVNodXRkb3duX3ByaXYJUHJvY2Vz c19wcml2CUZpbGVfcHJpdglHcmFudF9wcml2CVJlZmVyZW5jZXNfcHJpdglJbmRleF9wcml2CUFs dGVyX3ByaXYJU2hvd19kYl9wcml2CVN1cGVyX3ByaXYJQ3JlYXRlX3RtcF90YWJsZV9wcml2CUxv Y2tfdGFibGVzX3ByaXYJRXhlY3V0ZV9wcml2CVJlcGxfc2xhdmVfcHJpdglSZXBsX2NsaWVudF9w cml2CUNyZWF0ZV92aWV3X3ByaXYJU2hvd192aWV3X3ByaXYJQ3JlYXRlX3JvdXRpbmVfcHJpdglB bHRlcl9yb3V0aW5lX3ByaXYJQ3JlYXRlX3VzZXJfcHJpdglFdmVudF9wcml2CVRyaWdnZXJfcHJp dglzc2xfdHlwZQlzc2xfY2lwaGVyCXg1MDlfaXNzdWVyCXg1MDlfc3ViamVjdAltYXhfcXVlc3Rp b25zCW1heF91cGRhdGVzCW1heF9jb25uZWN0aW9ucwltYXhfdXNlcl9jb25uZWN0aW9ucwotbG9j YWxob3N0CXRlc3R1c2VyMQkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAotbG9jYWxob3N0CXRlc3R1c2VyMgkJTglZCVkJ TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkw CTAJMAotbG9jYWxob3N0CXRlc3R1c2VyMwkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAorSG9zdAlVc2VyCVBhc3N3b3Jk CVNlbGVjdF9wcml2CUluc2VydF9wcml2CVVwZGF0ZV9wcml2CURlbGV0ZV9wcml2CUNyZWF0ZV9w cml2CURyb3BfcHJpdglSZWxvYWRfcHJpdglTaHV0ZG93bl9wcml2CVByb2Nlc3NfcHJpdglGaWxl X3ByaXYJR3JhbnRfcHJpdglSZWZlcmVuY2VzX3ByaXYJSW5kZXhfcHJpdglBbHRlcl9wcml2CVNo b3dfZGJfcHJpdglTdXBlcl9wcml2CUNyZWF0ZV90bXBfdGFibGVfcHJpdglMb2NrX3RhYmxlc19w cml2CUV4ZWN1dGVfcHJpdglSZXBsX3NsYXZlX3ByaXYJUmVwbF9jbGllbnRfcHJpdglDcmVhdGVf dmlld19wcml2CVNob3dfdmlld19wcml2CUNyZWF0ZV9yb3V0aW5lX3ByaXYJQWx0ZXJfcm91dGlu ZV9wcml2CUNyZWF0ZV91c2VyX3ByaXYJRXZlbnRfcHJpdglUcmlnZ2VyX3ByaXYJQ3JlYXRlX3Rh Ymxlc3BhY2VfcHJpdglzc2xfdHlwZQlzc2xfY2lwaGVyCXg1MDlfaXNzdWVyCXg1MDlfc3ViamVj dAltYXhfcXVlc3Rpb25zCW1heF91cGRhdGVzCW1heF9jb25uZWN0aW9ucwltYXhfdXNlcl9jb25u ZWN0aW9ucworbG9jYWxob3N0CXRlc3R1c2VyMQkJTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCQkJCQkwCTAJMAkwCitsb2NhbGhvc3QJdGVz dHVzZXIyCQlOCVkJWQlOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglO CU4JTglOCU4JCQkJCTAJMAkwCTAKK2xvY2FsaG9zdAl0ZXN0dXNlcjMJCU4JTglOCU4JTglOCU4J TglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTglOCU4JTgkJCQkJMAkwCTAJMAog U0hPVyBHUkFOVFM7CiBHcmFudHMgZm9yIHRlc3R1c2VyMUBsb2NhbGhvc3QKIEdSQU5UIFVTQUdF IE9OICouKiBUTyAndGVzdHVzZXIxJ0AnbG9jYWxob3N0JwpAQCAtMzA5LDEwICszMDksMTAgQEAg 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 bWEudXNlcl9wcml2aWxlZ2VzCiBXSEVSRSBncmFudGVlIExJS0UgJycndGVzdHVzZXIlJycnCgo9 PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvbWVtb3J5X3N0b3Jl ZHByb2MucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9tZW1vcnlfc3Rv cmVkcHJvYy5yZXN1bHQJMjAwOC0wNy0wOCAxODo0MDozMiArMDAwMAorKysgYi9teXNxbC10ZXN0 L3N1aXRlL2Z1bmNzXzEvci9tZW1vcnlfc3RvcmVkcHJvYy5yZXN1bHQJMjAwOC0wOC0wNyAxMzoz ODoyOSArMDAwMApAQCAtMjE5NDMsOSArMjE5NDMsOSBAQCBFTkQJbGF0aW4xCWxhdGluMV9zd2Vk aXNoX2NpCWxhdGluMV9zd2VkCiBzZXQgQEBzcWxfbW9kZT0nJzsKIENBTEwgc3A0KCk7CiBMZXZl bAlDb2RlCU1lc3NhZ2UKLUVycm9yCTEzNjUJRGl2aXNpb24gYnkgMAorV2FybmluZwkxMzY1CURp dmlzaW9uIGJ5IDAKIFdhcm5pbmdzOgotRXJyb3IJMTM2NQlEaXZpc2lvbiBieSAwCitXYXJuaW5n CTEzNjUJRGl2aXNpb24gYnkgMAogRFJPUCBQUk9DRURVUkUgc3A0Owogc2V0IEBAc3FsX21vZGU9 Jyc7CiAKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9tZW1v cnlfdHJpZ18wMy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL21lbW9y eV90cmlnXzAzLnJlc3VsdAkyMDA4LTA2LTE4IDE3OjIzOjU1ICswMDAwCisrKyBiL215c3FsLXRl c3Qvc3VpdGUvZnVuY3NfMS9yL21lbW9yeV90cmlnXzAzLnJlc3VsdAkyMDA4LTA4LTA3IDEzOjM4 OjI5ICswMDAwCkBAIC03OCw3ICs3OCw3IEBAIGdyYW50IEFMTCAgb24gKi4qIHRvIHRlc3Rfbm9w cml2c0Bsb2NhbGgKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9tIHRlc3Rfbm9wcml2c0Bsb2Nh bGhvc3Q7CiBzaG93IGdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBm b3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQREFURSwg REVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJF RkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVN UE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBS RVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5F LCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQgT04gKi4qIFRPICd0ZXN0X25vcHJp dnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5OUMw Q0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JworR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQREFURSwg REVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJF RkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVN UE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBS RVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5F LCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQsIENSRUFURSBUQUJMRVNQQUNFIE9O ICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JE ICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIHJldm9rZSBBTEwg UFJJVklMRUdFUywgR1JBTlQgT1BUSU9OIEZST00gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBn cmFudCBUUklHR0VSIG9uICouKiB0byB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIGdyYW50IFNF TEVDVCBvbiBwcml2X2RiLnQxIHRvIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0OwpAQCAtMTU2LDcg KzE1Niw3IEBAIGdyYW50IEFMTCAgb24gKi4qIHRvIHRlc3Rfbm9wcml2c0Bsb2NhbGgKIHJldm9r ZSBVUERBVEUgIG9uICouKiBmcm9tIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3Q7CiBzaG93IGdyYW50 cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxv Y2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxP QUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNI T1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVT LCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUg VklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVT RVIsIEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJ REVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1 NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVM T0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBT SE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxF UywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRF IFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBV U0VSLCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0ZXN0X25v cHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5 OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JwogcmV2b2tlIEFMTCBQUklWSUxFR0VTLCBHUkFO VCBPUFRJT04gRlJPTSB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIGdyYW50IFRSSUdHRVIsIFVQ REFURSBvbiAqLiogdG8gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBzaG93IGdyYW50cyBmb3Ig dGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CkBAIC0xNzAsNyArMTcwLDcgQEAgdGVzdF9ub3ByaXZz QGxvY2FsaG9zdAogdXNlIHByaXZfZGI7CiBzaG93IGdyYW50czsKIEdyYW50cyBmb3IgdGVzdF9u b3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwgQ1JFQVRFLCBE Uk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwg QUxURVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExP Q0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5U LCBDUkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwg Q1JFQVRFIFVTRVIsIEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9j YWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5 MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUsIENSRUFURSwg RFJPUCwgUkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgs IEFMVEVSLCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBM T0NLIFRBQkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVO VCwgQ1JFQVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUs IENSRUFURSBVU0VSLCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRP ICd0ZXN0X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3 MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2Jwogc2VsZWN0IGYxIGZyb20gdDEg b3JkZXIgYnkgZjE7CiBmMQogaW5zZXJ0IDMuNS4zLjItbm8KQEAgLTQwMiw3ICs0MDIsNyBAQCBn cmFudCBBTEwgIG9uICouKiB0byB0ZXN0X25vcHJpdnNAbG9jYWxoCiByZXZva2UgU0VMRUNUICBv biAqLiogZnJvbSB0ZXN0X25vcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3Rf bm9wcml2c0Bsb2NhbGhvc3Q7CiBHcmFudHMgZm9yIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3QKLUdS QU5UIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FELCBTSFVURE9X TiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9XIERBVEFCQVNF UywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywgRVhFQ1VURSwg UkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcsIFNIT1cg VklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VSLCBFVkVOVCwg VFJJR0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJRklFRCBC WSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1NzYnCitH UkFOVCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERP V04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFT RVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUs IFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9X IFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQs IFRSSUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9j YWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5 MTgzRjM3NEE1NENBMjU3NicKIHJldm9rZSBBTEwgUFJJVklMRUdFUywgR1JBTlQgT1BUSU9OIEZS T00gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBncmFudCBUUklHR0VSLCBTRUxFQ1Qgb24gKi4q IHRvIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3RfeWVzcHJp dnNAbG9jYWxob3N0OwpAQCAtNDE2LDcgKzQxNiw3IEBAIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3QK IHVzZSBwcml2X2RiOwogc2hvdyBncmFudHM7CiBHcmFudHMgZm9yIHRlc3Rfbm9wcml2c0Bsb2Nh bGhvc3QKLUdSQU5UIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FE LCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9X IERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywg RVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJ RVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VS LCBFVkVOVCwgVFJJR0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2FsaG9zdCcgSURF TlRJRklFRCBCWSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRD QTI1NzYnCitHUkFOVCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9B RCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hP VyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMs IEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBW SUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNF UiwgRVZFTlQsIFRSSUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVzdF9ub3By aXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlD MENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIGNyZWF0ZSB0cmlnZ2VyIHRyZzVhXzEgYmVmb3Jl IElOU0VSVCBvbiB0MSBmb3IgZWFjaCByb3cKIHNldCBAdGVzdF92YXIgPSBuZXcuZjE7CiBzZXQg QHRlc3RfdmFyID0gJ2JlZm9yZSB0cmlnIDMuNS4zLjgtMWEnOwoKPT09IG1vZGlmaWVkIGZpbGUg J215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL21lbW9yeV90cmlnXzAzZS5yZXN1bHQnCi0tLSBh L215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL21lbW9yeV90cmlnXzAzZS5yZXN1bHQJMjAwOC0w Ni0xOSAxODo1Njo0OCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9tZW1v cnlfdHJpZ18wM2UucmVzdWx0CTIwMDgtMDgtMDcgMTM6Mzg6MjkgKzAwMDAKQEAgLTU2Myw3ICs1 NjMsNyBAQCB0cmlnIDFfMS15ZXMKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9tIHRlc3RfeWVz cHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0 OwogR3JhbnRzIGZvciB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNF UlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NF U1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVS LCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FU SU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENS RUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQgT04gKi4qIFRP ICd0ZXN0X3llc3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5 NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5T RVJULCBVUERBVEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQUk9D RVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cgREFUQUJBU0VTLCBTVVBF UiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNB VElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklFVywgU0hPVyBWSUVXLCBD UkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIsIEVWRU5ULCBDUkVBVEUg VEFCTEVTUEFDRSBPTiAqLiogVE8gJ3Rlc3RfeWVzcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJ RUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2 JwogY29ubmVjdChsb2NhbGhvc3QsdGVzdF95ZXNwcml2cyxQV0QsdGVzdCxNQVNURVJfTVlQT1JU LE1BU1RFUl9NWVNPQ0spOwogc2VsZWN0IGN1cnJlbnRfdXNlcjsKIGN1cnJlbnRfdXNlcgpAQCAt NjEwLDcgKzYxMCw3IEBAIHJvb3RAbG9jYWxob3N0CiBncmFudCBUUklHR0VSIG9uIHByaXZfZGIu KiB0byB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIHNob3cgZ3JhbnRzIGZvciB0ZXN0X3llc3By aXZzQGxvY2FsaG9zdDsKIEdyYW50cyBmb3IgdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3QKLUdSQU5U IFNFTEVDVCwgSU5TRVJULCBVUERBVEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQsIFNI VVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cgREFU QUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBFWEVD VVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklFVywg U0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIsIEVW RU5UIE9OICouKiBUTyAndGVzdF95ZXNwcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJRklFRCBCWSBQ QVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1NzYnCitHUkFO VCBTRUxFQ1QsIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FELCBT SFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9XIERB VEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywgRVhF Q1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcs IFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VSLCBF VkVOVCwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0ZXN0X3llc3ByaXZzJ0AnbG9jYWxo b3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgz RjM3NEE1NENBMjU3NicKIEdSQU5UIFRSSUdHRVIgT04gYHByaXZfZGJgLiogVE8gJ3Rlc3RfeWVz cHJpdnMnQCdsb2NhbGhvc3QnCiAKIHRyaWdnZXIgcHJpdmlsZWdlIG9uIGRiIGxldmVsIGZvciBj cmVhdGU6Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3IvbXlp c2FtX3N0b3JlZHByb2MucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9t eWlzYW1fc3RvcmVkcHJvYy5yZXN1bHQJMjAwOC0wNy0wOCAxODo0MDozMiArMDAwMAorKysgYi9t eXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9teWlzYW1fc3RvcmVkcHJvYy5yZXN1bHQJMjAwOC0w OC0wNyAxMzozODoyOSArMDAwMApAQCAtMjE5NDMsOSArMjE5NDMsOSBAQCBFTkQJbGF0aW4xCWxh dGluMV9zd2VkaXNoX2NpCWxhdGluMV9zd2VkCiBzZXQgQEBzcWxfbW9kZT0nJzsKIENBTEwgc3A0 KCk7CiBMZXZlbAlDb2RlCU1lc3NhZ2UKLUVycm9yCTEzNjUJRGl2aXNpb24gYnkgMAorV2Fybmlu ZwkxMzY1CURpdmlzaW9uIGJ5IDAKIFdhcm5pbmdzOgotRXJyb3IJMTM2NQlEaXZpc2lvbiBieSAw CitXYXJuaW5nCTEzNjUJRGl2aXNpb24gYnkgMAogRFJPUCBQUk9DRURVUkUgc3A0Owogc2V0IEBA c3FsX21vZGU9Jyc7CiAKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2Z1bmNz XzEvci9teWlzYW1fdHJpZ18wMy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZnVuY3Nf MS9yL215aXNhbV90cmlnXzAzLnJlc3VsdAkyMDA4LTA2LTE4IDE3OjIzOjU1ICswMDAwCisrKyBi L215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL215aXNhbV90cmlnXzAzLnJlc3VsdAkyMDA4LTA4 LTA3IDEzOjM4OjI5ICswMDAwCkBAIC03OCw3ICs3OCw3IEBAIGdyYW50IEFMTCAgb24gKi4qIHRv IHRlc3Rfbm9wcml2c0Bsb2NhbGgKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9tIHRlc3Rfbm9w cml2c0Bsb2NhbGhvc3Q7CiBzaG93IGdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdDsK IEdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQs IFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1Ms IEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBD UkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9O IFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFU RSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQgT04gKi4qIFRPICd0 ZXN0X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVE MDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JworR1JBTlQgU0VMRUNULCBJTlNFUlQs IFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1Ms IEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBD UkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9O IFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFU RSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQsIENSRUFURSBUQUJM RVNQQUNFIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZ IFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIHJl dm9rZSBBTEwgUFJJVklMRUdFUywgR1JBTlQgT1BUSU9OIEZST00gdGVzdF95ZXNwcml2c0Bsb2Nh bGhvc3Q7CiBncmFudCBUUklHR0VSIG9uICouKiB0byB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsK IGdyYW50IFNFTEVDVCBvbiBwcml2X2RiLnQxIHRvIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0OwpA QCAtMTU2LDcgKzE1Niw3IEBAIGdyYW50IEFMTCAgb24gKi4qIHRvIHRlc3Rfbm9wcml2c0Bsb2Nh bGgKIHJldm9rZSBVUERBVEUgIG9uICouKiBmcm9tIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3Q7CiBz aG93IGdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBmb3IgdGVzdF9u b3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwgQ1JFQVRFLCBE Uk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwg QUxURVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExP Q0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5U LCBDUkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwg Q1JFQVRFIFVTRVIsIEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9j YWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5 MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUsIENSRUFURSwg RFJPUCwgUkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgs IEFMVEVSLCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBM T0NLIFRBQkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVO VCwgQ1JFQVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUs IENSRUFURSBVU0VSLCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRP ICd0ZXN0X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3 MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JwogcmV2b2tlIEFMTCBQUklWSUxF R0VTLCBHUkFOVCBPUFRJT04gRlJPTSB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIGdyYW50IFRS SUdHRVIsIFVQREFURSBvbiAqLiogdG8gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBzaG93IGdy YW50cyBmb3IgdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CkBAIC0xNzAsNyArMTcwLDcgQEAgdGVz dF9ub3ByaXZzQGxvY2FsaG9zdAogdXNlIHByaXZfZGI7CiBzaG93IGdyYW50czsKIEdyYW50cyBm b3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwg Q1JFQVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VT LCBJTkRFWCwgQUxURVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBU QUJMRVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJ T04gQ0xJRU5ULCBDUkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIg Uk9VVElORSwgQ1JFQVRFIFVTRVIsIEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3By aXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlD MENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUs IENSRUFURSwgRFJPUCwgUkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNF UywgSU5ERVgsIEFMVEVSLCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkg VEFCTEVTLCBMT0NLIFRBQkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FU SU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVS IFJPVVRJTkUsIENSRUFURSBVU0VSLCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0Ug T04gKi4qIFRPICd0ZXN0X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dP UkQgJypDNDk3MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2Jwogc2VsZWN0IGYx IGZyb20gdDEgb3JkZXIgYnkgZjE7CiBmMQogaW5zZXJ0IDMuNS4zLjItbm8KQEAgLTQwMiw3ICs0 MDIsNyBAQCBncmFudCBBTEwgIG9uICouKiB0byB0ZXN0X25vcHJpdnNAbG9jYWxoCiByZXZva2Ug U0VMRUNUICBvbiAqLiogZnJvbSB0ZXN0X25vcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMg Zm9yIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3Q7CiBHcmFudHMgZm9yIHRlc3Rfbm9wcml2c0Bsb2Nh bGhvc3QKLUdSQU5UIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FE LCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9X IERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywg RVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJ RVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VS LCBFVkVOVCwgVFJJR0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2FsaG9zdCcgSURF TlRJRklFRCBCWSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRD QTI1NzYnCitHUkFOVCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9B RCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hP VyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMs IEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBW SUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNF UiwgRVZFTlQsIFRSSUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVzdF9ub3By aXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlD MENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIHJldm9rZSBBTEwgUFJJVklMRUdFUywgR1JBTlQg T1BUSU9OIEZST00gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBncmFudCBUUklHR0VSLCBTRUxF Q1Qgb24gKi4qIHRvIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRl c3RfeWVzcHJpdnNAbG9jYWxob3N0OwpAQCAtNDE2LDcgKzQxNiw3IEBAIHRlc3Rfbm9wcml2c0Bs b2NhbGhvc3QKIHVzZSBwcml2X2RiOwogc2hvdyBncmFudHM7CiBHcmFudHMgZm9yIHRlc3Rfbm9w cml2c0Bsb2NhbGhvc3QKLUdSQU5UIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJP UCwgUkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFM VEVSLCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NL IFRBQkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwg Q1JFQVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENS RUFURSBVU0VSLCBFVkVOVCwgVFJJR0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2Fs aG9zdCcgSURFTlRJRklFRCBCWSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4 M0YzNzRBNTRDQTI1NzYnCitHUkFOVCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERS T1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBB TFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9D SyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQs IENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBD UkVBVEUgVVNFUiwgRVZFTlQsIFRSSUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAn dGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1 RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIGNyZWF0ZSB0cmlnZ2VyIHRyZzVh XzEgYmVmb3JlIElOU0VSVCBvbiB0MSBmb3IgZWFjaCByb3cKIHNldCBAdGVzdF92YXIgPSBuZXcu ZjE7CiBzZXQgQHRlc3RfdmFyID0gJ2JlZm9yZSB0cmlnIDMuNS4zLjgtMWEnOwoKPT09IG1vZGlm aWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL215aXNhbV90cmlnXzAzZS5yZXN1 bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL215aXNhbV90cmlnXzAzZS5yZXN1 bHQJMjAwOC0wNi0xOSAxODo1Njo0OCArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2Z1bmNz XzEvci9teWlzYW1fdHJpZ18wM2UucmVzdWx0CTIwMDgtMDgtMDcgMTM6Mzg6MjkgKzAwMDAKQEAg LTU2Myw3ICs1NjMsNyBAQCB0cmlnIDFfMS15ZXMKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9t IHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3RfeWVzcHJpdnNA bG9jYWxob3N0OwogR3JhbnRzIGZvciB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VM RUNULCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERP V04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFT RVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUs IFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9X IFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQg T04gKi4qIFRPICd0ZXN0X3llc3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NX T1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNF TEVDVCwgSU5TRVJULCBVUERBVEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRE T1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cgREFUQUJB U0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRF LCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklFVywgU0hP VyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIsIEVWRU5U LCBDUkVBVEUgVEFCTEVTUEFDRSBPTiAqLiogVE8gJ3Rlc3RfeWVzcHJpdnMnQCdsb2NhbGhvc3Qn IElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0 QTU0Q0EyNTc2JwogY29ubmVjdChsb2NhbGhvc3QsdGVzdF95ZXNwcml2cyxQV0QsdGVzdCxNQVNU RVJfTVlQT1JULE1BU1RFUl9NWVNPQ0spOwogc2VsZWN0IGN1cnJlbnRfdXNlcjsKIGN1cnJlbnRf dXNlcgpAQCAtNjEwLDcgKzYxMCw3IEBAIHJvb3RAbG9jYWxob3N0CiBncmFudCBUUklHR0VSIG9u IHByaXZfZGIuKiB0byB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIHNob3cgZ3JhbnRzIGZvciB0 ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBmb3IgdGVzdF95ZXNwcml2c0Bsb2NhbGhv c3QKLUdSQU5UIFNFTEVDVCwgSU5TRVJULCBVUERBVEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBS RUxPQUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIs IFNIT1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFC TEVTLCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVB VEUgVklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRF IFVTRVIsIEVWRU5UIE9OICouKiBUTyAndGVzdF95ZXNwcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJ RklFRCBCWSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1 NzYnCitHUkFOVCBTRUxFQ1QsIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwg UkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVS LCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRB QkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JF QVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFU RSBVU0VSLCBFVkVOVCwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0ZXN0X3llc3ByaXZz J0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENG MTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIEdSQU5UIFRSSUdHRVIgT04gYHByaXZfZGJgLiogVE8g J3Rlc3RfeWVzcHJpdnMnQCdsb2NhbGhvc3QnCiAKIHRyaWdnZXIgcHJpdmlsZWdlIG9uIGRiIGxl dmVsIGZvciBjcmVhdGU6Cgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mdW5j c18xL3IvbmRiX3N0b3JlZHByb2MucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Z1bmNz XzEvci9uZGJfc3RvcmVkcHJvYy5yZXN1bHQJMjAwOC0wNy0wOCAyMToxMDoyNiArMDAwMAorKysg Yi9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9uZGJfc3RvcmVkcHJvYy5yZXN1bHQJMjAwOC0w OC0xMSAxMzo0NTo0NSArMDAwMApAQCAtMjE5NDIsOSArMjE5NDIsOSBAQCBFTkQJbGF0aW4xCWxh dGluMV9zd2VkaXNoX2NpCWxhdGluMV9zd2VkCiBzZXQgQEBzcWxfbW9kZT0nJzsKIENBTEwgc3A0 KCk7CiBMZXZlbAlDb2RlCU1lc3NhZ2UKLUVycm9yCTEzNjUJRGl2aXNpb24gYnkgMAorV2Fybmlu ZwkxMzY1CURpdmlzaW9uIGJ5IDAKIFdhcm5pbmdzOgotRXJyb3IJMTM2NQlEaXZpc2lvbiBieSAw CitXYXJuaW5nCTEzNjUJRGl2aXNpb24gYnkgMAogRFJPUCBQUk9DRURVUkUgc3A0Owogc2V0IEBA c3FsX21vZGU9Jyc7CiAKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2Z1bmNz XzEvci9uZGJfdHJpZ18wMy5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9y L25kYl90cmlnXzAzLnJlc3VsdAkyMDA4LTA2LTAzIDEwOjIxOjQ4ICswMDAwCisrKyBiL215c3Fs LXRlc3Qvc3VpdGUvZnVuY3NfMS9yL25kYl90cmlnXzAzLnJlc3VsdAkyMDA4LTA4LTExIDEzOjQ1 OjQ1ICswMDAwCkBAIC03Nyw3ICs3Nyw3IEBAIGdyYW50IEFMTCAgb24gKi4qIHRvIHRlc3Rfbm9w cml2c0Bsb2NhbGgKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9tIHRlc3Rfbm9wcml2c0Bsb2Nh bGhvc3Q7CiBzaG93IGdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBm b3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQREFURSwg REVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJF RkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVN UE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBS RVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5F LCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQgT04gKi4qIFRPICd0ZXN0X25vcHJp dnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5OUMw Q0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JworR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQREFURSwg REVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJF RkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVN UE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBS RVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5F LCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQsIENSRUFURSBUQUJMRVNQQUNFIE9O ICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JE ICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIHJldm9rZSBBTEwg UFJJVklMRUdFUywgR1JBTlQgT1BUSU9OIEZST00gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBn cmFudCBUUklHR0VSIG9uICouKiB0byB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIGdyYW50IFNF TEVDVCBvbiBwcml2X2RiLnQxIHRvIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0OwpAQCAtMTU1LDcg KzE1NSw3IEBAIGdyYW50IEFMTCAgb24gKi4qIHRvIHRlc3Rfbm9wcml2c0Bsb2NhbGgKIHJldm9r ZSBVUERBVEUgIG9uICouKiBmcm9tIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3Q7CiBzaG93IGdyYW50 cyBmb3IgdGVzdF9ub3ByaXZzQGxvY2FsaG9zdDsKIEdyYW50cyBmb3IgdGVzdF9ub3ByaXZzQGxv Y2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxP QUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNI T1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVT LCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUg VklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVT RVIsIEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9jYWxob3N0JyBJ REVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1 NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVM T0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBT SE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxF UywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRF IFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBV U0VSLCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0ZXN0X25v cHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3MzVEMDE2QTA5 OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JwogcmV2b2tlIEFMTCBQUklWSUxFR0VTLCBHUkFO VCBPUFRJT04gRlJPTSB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdDsKIGdyYW50IFRSSUdHRVIsIFVQ REFURSBvbiAqLiogdG8gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBzaG93IGdyYW50cyBmb3Ig dGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CkBAIC0xNjksNyArMTY5LDcgQEAgdGVzdF9ub3ByaXZz QGxvY2FsaG9zdAogdXNlIHByaXZfZGI7CiBzaG93IGdyYW50czsKIEdyYW50cyBmb3IgdGVzdF9u b3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIERFTEVURSwgQ1JFQVRFLCBE Uk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwg QUxURVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExP Q0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5U LCBDUkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwg Q1JFQVRFIFVTRVIsIEVWRU5ULCBUUklHR0VSIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9j YWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5 MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBERUxFVEUsIENSRUFURSwg RFJPUCwgUkVMT0FELCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgs IEFMVEVSLCBTSE9XIERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBM T0NLIFRBQkxFUywgRVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVO VCwgQ1JFQVRFIFZJRVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUs IENSRUFURSBVU0VSLCBFVkVOVCwgVFJJR0dFUiwgQ1JFQVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRP ICd0ZXN0X25vcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFTU1dPUkQgJypDNDk3 MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2Jwogc2VsZWN0IGYxIGZyb20gdDEg b3JkZXIgYnkgZjE7CiBmMQogaW5zZXJ0IDMuNS4zLjItbm8KQEAgLTQwMSw3ICs0MDEsNyBAQCBn cmFudCBBTEwgIG9uICouKiB0byB0ZXN0X25vcHJpdnNAbG9jYWxoCiByZXZva2UgU0VMRUNUICBv biAqLiogZnJvbSB0ZXN0X25vcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3Rf bm9wcml2c0Bsb2NhbGhvc3Q7CiBHcmFudHMgZm9yIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3QKLUdS QU5UIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FELCBTSFVURE9X TiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9XIERBVEFCQVNF UywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywgRVhFQ1VURSwg UkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcsIFNIT1cg VklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VSLCBFVkVOVCwg VFJJR0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJRklFRCBC WSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1NzYnCitH UkFOVCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERP V04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFT RVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUs IFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9X IFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQs IFRSSUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVzdF9ub3ByaXZzJ0AnbG9j YWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5 MTgzRjM3NEE1NENBMjU3NicKIHJldm9rZSBBTEwgUFJJVklMRUdFUywgR1JBTlQgT1BUSU9OIEZS T00gdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3Q7CiBncmFudCBUUklHR0VSLCBTRUxFQ1Qgb24gKi4q IHRvIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3RfeWVzcHJp dnNAbG9jYWxob3N0OwpAQCAtNDE1LDcgKzQxNSw3IEBAIHRlc3Rfbm9wcml2c0Bsb2NhbGhvc3QK IHVzZSBwcml2X2RiOwogc2hvdyBncmFudHM7CiBHcmFudHMgZm9yIHRlc3Rfbm9wcml2c0Bsb2Nh bGhvc3QKLUdSQU5UIElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FE LCBTSFVURE9XTiwgUFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9X IERBVEFCQVNFUywgU1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywg RVhFQ1VURSwgUkVQTElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJ RVcsIFNIT1cgVklFVywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VS LCBFVkVOVCwgVFJJR0dFUiBPTiAqLiogVE8gJ3Rlc3Rfbm9wcml2cydAJ2xvY2FsaG9zdCcgSURF TlRJRklFRCBCWSBQQVNTV09SRCAnKkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRD QTI1NzYnCitHUkFOVCBJTlNFUlQsIFVQREFURSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9B RCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUsIFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hP VyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMs IEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZFLCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBW SUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VUSU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNF UiwgRVZFTlQsIFRSSUdHRVIsIENSRUFURSBUQUJMRVNQQUNFIE9OICouKiBUTyAndGVzdF9ub3By aXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlD MENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKIGNyZWF0ZSB0cmlnZ2VyIHRyZzVhXzEgYmVmb3Jl IElOU0VSVCBvbiB0MSBmb3IgZWFjaCByb3cKIHNldCBAdGVzdF92YXIgPSBuZXcuZjE7CiBzZXQg QHRlc3RfdmFyID0gJ2JlZm9yZSB0cmlnIDMuNS4zLjgtMWEnOwoKPT09IG1vZGlmaWVkIGZpbGUg J215c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL25kYl90cmlnXzAzZS5yZXN1bHQnCi0tLSBhL215 c3FsLXRlc3Qvc3VpdGUvZnVuY3NfMS9yL25kYl90cmlnXzAzZS5yZXN1bHQJMjAwOC0wNC0zMCAx NjoxNjo0NSArMDAwMAorKysgYi9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvci9uZGJfdHJpZ18w M2UucmVzdWx0CTIwMDgtMDgtMTEgMTM6NDU6NDUgKzAwMDAKQEAgLTU2Miw3ICs1NjIsNyBAQCB0 cmlnIDFfMS15ZXMKIHJldm9rZSBUUklHR0VSIG9uICouKiBmcm9tIHRlc3RfeWVzcHJpdnNAbG9j YWxob3N0Owogc2hvdyBncmFudHMgZm9yIHRlc3RfeWVzcHJpdnNAbG9jYWxob3N0OwogR3JhbnRz IGZvciB0ZXN0X3llc3ByaXZzQGxvY2FsaG9zdAotR1JBTlQgU0VMRUNULCBJTlNFUlQsIFVQREFU RSwgREVMRVRFLCBDUkVBVEUsIERST1AsIFJFTE9BRCwgU0hVVERPV04sIFBST0NFU1MsIEZJTEUs IFJFRkVSRU5DRVMsIElOREVYLCBBTFRFUiwgU0hPVyBEQVRBQkFTRVMsIFNVUEVSLCBDUkVBVEUg VEVNUE9SQVJZIFRBQkxFUywgTE9DSyBUQUJMRVMsIEVYRUNVVEUsIFJFUExJQ0FUSU9OIFNMQVZF LCBSRVBMSUNBVElPTiBDTElFTlQsIENSRUFURSBWSUVXLCBTSE9XIFZJRVcsIENSRUFURSBST1VU SU5FLCBBTFRFUiBST1VUSU5FLCBDUkVBVEUgVVNFUiwgRVZFTlQgT04gKi4qIFRPICd0ZXN0X3ll c3ByaXZzJ0AnbG9jYWxob3N0JyBJREVOVElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEw OTlDMENGMTA0RUY5MTgzRjM3NEE1NENBMjU3NicKK0dSQU5UIFNFTEVDVCwgSU5TRVJULCBVUERB VEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQUk9DRVNTLCBGSUxF LCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cgREFUQUJBU0VTLCBTVVBFUiwgQ1JFQVRF IFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBMSUNBVElPTiBTTEFW RSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklFVywgU0hPVyBWSUVXLCBDUkVBVEUgUk9V VElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIsIEVWRU5ULCBDUkVBVEUgVEFCTEVTUEFD RSBPTiAqLiogVE8gJ3Rlc3RfeWVzcHJpdnMnQCdsb2NhbGhvc3QnIElERU5USUZJRUQgQlkgUEFT U1dPUkQgJypDNDk3MzVEMDE2QTA5OUMwQ0YxMDRFRjkxODNGMzc0QTU0Q0EyNTc2JwogY29ubmVj dChsb2NhbGhvc3QsdGVzdF95ZXNwcml2cyxQV0QsdGVzdCxNQVNURVJfTVlQT1JULE1BU1RFUl9N WVNPQ0spOwogc2VsZWN0IGN1cnJlbnRfdXNlcjsKIGN1cnJlbnRfdXNlcgpAQCAtNjA5LDcgKzYw OSw3IEBAIHJvb3RAbG9jYWxob3N0CiBncmFudCBUUklHR0VSIG9uIHByaXZfZGIuKiB0byB0ZXN0 X3llc3ByaXZzQGxvY2FsaG9zdDsKIHNob3cgZ3JhbnRzIGZvciB0ZXN0X3llc3ByaXZzQGxvY2Fs aG9zdDsKIEdyYW50cyBmb3IgdGVzdF95ZXNwcml2c0Bsb2NhbGhvc3QKLUdSQU5UIFNFTEVDVCwg SU5TRVJULCBVUERBVEUsIERFTEVURSwgQ1JFQVRFLCBEUk9QLCBSRUxPQUQsIFNIVVRET1dOLCBQ Uk9DRVNTLCBGSUxFLCBSRUZFUkVOQ0VTLCBJTkRFWCwgQUxURVIsIFNIT1cgREFUQUJBU0VTLCBT VVBFUiwgQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRVMsIExPQ0sgVEFCTEVTLCBFWEVDVVRFLCBSRVBM SUNBVElPTiBTTEFWRSwgUkVQTElDQVRJT04gQ0xJRU5ULCBDUkVBVEUgVklFVywgU0hPVyBWSUVX LCBDUkVBVEUgUk9VVElORSwgQUxURVIgUk9VVElORSwgQ1JFQVRFIFVTRVIsIEVWRU5UIE9OICou KiBUTyAndGVzdF95ZXNwcml2cydAJ2xvY2FsaG9zdCcgSURFTlRJRklFRCBCWSBQQVNTV09SRCAn KkM0OTczNUQwMTZBMDk5QzBDRjEwNEVGOTE4M0YzNzRBNTRDQTI1NzYnCitHUkFOVCBTRUxFQ1Qs IElOU0VSVCwgVVBEQVRFLCBERUxFVEUsIENSRUFURSwgRFJPUCwgUkVMT0FELCBTSFVURE9XTiwg UFJPQ0VTUywgRklMRSwgUkVGRVJFTkNFUywgSU5ERVgsIEFMVEVSLCBTSE9XIERBVEFCQVNFUywg U1VQRVIsIENSRUFURSBURU1QT1JBUlkgVEFCTEVTLCBMT0NLIFRBQkxFUywgRVhFQ1VURSwgUkVQ TElDQVRJT04gU0xBVkUsIFJFUExJQ0FUSU9OIENMSUVOVCwgQ1JFQVRFIFZJRVcsIFNIT1cgVklF VywgQ1JFQVRFIFJPVVRJTkUsIEFMVEVSIFJPVVRJTkUsIENSRUFURSBVU0VSLCBFVkVOVCwgQ1JF QVRFIFRBQkxFU1BBQ0UgT04gKi4qIFRPICd0ZXN0X3llc3ByaXZzJ0AnbG9jYWxob3N0JyBJREVO VElGSUVEIEJZIFBBU1NXT1JEICcqQzQ5NzM1RDAxNkEwOTlDMENGMTA0RUY5MTgzRjM3NEE1NENB MjU3NicKIEdSQU5UIFRSSUdHRVIgT04gYHByaXZfZGJgLiogVE8gJ3Rlc3RfeWVzcHJpdnMnQCds b2NhbGhvc3QnCiAKIHRyaWdnZXIgcHJpdmlsZWdlIG9uIGRiIGxldmVsIGZvciBjcmVhdGU6Cgo9 PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3RyaWdnZXJzL3RyaWdn ZXJzXzAzLmluYycKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3RyaWdnZXJzL3RyaWdn ZXJzXzAzLmluYwkyMDA4LTA3LTE5IDA4OjMxOjMzICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3Vp dGUvZnVuY3NfMS90cmlnZ2Vycy90cmlnZ2Vyc18wMy5pbmMJMjAwOC0wNy0yNSAxNzoxNDo1MiAr MDAwMApAQCAtMTMsMTIgKzEzLDcgQEAKIFVTRSB0ZXN0OwogLS1zb3VyY2Ugc3VpdGUvZnVuY3Nf MS9pbmNsdWRlL3RiMy5pbmMKIAotIyBUaGlzIHRlc3QgY2Fubm90IGJlIHVzZWQgZm9yIHRoZSBl bWJlZGRlZCBzZXJ2ZXIgYmVjYXVzZSB3ZSBjaGVjayBoZXJlCi0jIHByaXZpbGdlZ2VzLgotLS1z b3VyY2UgaW5jbHVkZS9ub3RfZW1iZWRkZWQuaW5jCiAKLVVTRSB0ZXN0OwotLS1zb3VyY2Ugc3Vp dGUvZnVuY3NfMS9pbmNsdWRlL3RiMy5pbmMKIAogLS1kaXNhYmxlX2Fib3J0X29uX2Vycm9yCiAK Cj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvdHJpZ2dlcnMvdHJp Z2dlcnNfMDguaW5jJwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL2Z1bmNzXzEvdHJpZ2dlcnMvdHJp Z2dlcnNfMDguaW5jCTIwMDgtMDctMTkgMDg6MzE6MzMgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9z dWl0ZS9mdW5jc18xL3RyaWdnZXJzL3RyaWdnZXJzXzA4LmluYwkyMDA4LTA3LTI1IDE3OjE0OjUy ICswMDAwCkBAIC04LDggKzgsNyBAQAogVVNFIHRlc3Q7CiAtLXNvdXJjZSBzdWl0ZS9mdW5jc18x L2luY2x1ZGUvdGIzLmluYwogCi1VU0UgdGVzdDsKLS0tc291cmNlIHN1aXRlL2Z1bmNzXzEvaW5j bHVkZS90YjMuaW5jCisKIAogIyBHZW5lcmFsIHNldHVwIGZvciBUcmlnZ2VyIHRlc3RzCiBsZXQg JG1lc3NhZ2U9IFRlc3RjYXNlOiAzLjU6OwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qv c3VpdGUvZnVuY3NfMS90cmlnZ2Vycy90cmlnZ2Vyc18xMDExZXh0LmluYycKLS0tIGEvbXlzcWwt dGVzdC9zdWl0ZS9mdW5jc18xL3RyaWdnZXJzL3RyaWdnZXJzXzEwMTFleHQuaW5jCTIwMDgtMDct MTkgMDg6MzE6MzMgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9mdW5jc18xL3RyaWdnZXJz L3RyaWdnZXJzXzEwMTFleHQuaW5jCTIwMDgtMDctMjUgMTc6MTQ6NTIgKzAwMDAKQEAgLTEzLDEz ICsxMyw2IEBAIGV2YWwKIGxvYWQgZGF0YSBpbmZpbGUgJyRNWVNRTFRFU1RfVkFSRElSL3N0ZF9k YXRhX2xuL2Z1bmNzXzEvbWVtb3J5X3RiMy50eHQnCiBpbnRvIHRhYmxlIHRiMzsKIAotVVNFIHRl c3Q7Ci0tLXNvdXJjZSBzdWl0ZS9mdW5jc18xL2luY2x1ZGUvdGIzLmluYwotCi0tLXJlcGxhY2Vf cmVzdWx0ICRNWVNRTFRFU1RfVkFSRElSIDxNWVNRTFRFU1RfVkFSRElSPgotZXZhbAotbG9hZCBk YXRhIGluZmlsZSAnJE1ZU1FMVEVTVF9WQVJESVIvc3RkX2RhdGFfbG4vZnVuY3NfMS9tZW1vcnlf dGIzLnR4dCcKLWludG8gdGFibGUgdGIzOwogCiAtLWRpc2FibGVfYWJvcnRfb25fZXJyb3IKIAoK PT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvbmRiL3IvbmRiX2Jhc2ljLnJlc3Vs dCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9uZGIvci9uZGJfYmFzaWMucmVzdWx0CTIwMDctMTEt MTIgMTI6MjU6MzQgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9uZGIvci9uZGJfYmFzaWMu cmVzdWx0CTIwMDgtMDgtMDYgMjI6MTY6MDcgKzAwMDAKQEAgLTc4Myw2ICs3ODMsNyBAQCBmMQlm MglmMwogMjIyMjIyCWJiYmJiYgkyCiBkcm9wIHRhYmxlIHQxOwogSWxsZWdhbCBuZGIgZXJyb3Ig Y29kZTogMTE4NgorTXlTUUwgZXJyb3IgY29kZSAxMTg2IChFUl9GTFVTSF9NQVNURVJfQklOTE9H X0NMT1NFRCk6IEJpbmxvZyBjbG9zZWQsIGNhbm5vdCBSRVNFVCBNQVNURVIKIENSRUFURSBUQUJM RSB0MSAoCiBhIFZBUkJJTkFSWSg0MCkgTk9UIE5VTEwsCiBiIFZBUkNIQVIgKDI1NikgQ0hBUkFD VEVSIFNFVCBVVEY4IE5PVCBOVUxMLAoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3Vp dGUvbmRiL3QvZGlzYWJsZWQuZGVmJwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL25kYi90L2Rpc2Fi bGVkLmRlZgkyMDA4LTA0LTI3IDAxOjAyOjA5ICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUv bmRiL3QvZGlzYWJsZWQuZGVmCTIwMDgtMDctMjUgMTU6MTA6MTQgKzAwMDAKQEAgLTExLDYgKzEx LDcgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCiBuZGJfcGFydGl0aW9uX2Vycm9yMgkgOiBI RiBpcyBub3Qgc3VyZSBpZiB0aGUgdGVzdCBjYW4gd29yayBhcyBpbnRlcm5kZWQgb24gYWxsIHRo ZSBwbGF0Zm9ybXMKK25kYl9pbmRleF9vcmRlcmVkICAgICAgICA6IEJ1ZyMzODM3MCBUaGUgdGVz dCBuZGIubmRiX2luZGV4X29yZGVyZWQgZmFpbHMgd2l0aCB0aGUgY29tbXVuaXR5IGZlYXR1cmVz IG9uCiAKICMgdGhlIGJlbG93IHRlc3RjYXNlIGhhdmUgYmVlbiByZXdvcmtlZCB0byBhdm9pZCB0 aGUgYnVnLCB0ZXN0IGNvbnRhaW5zIGNvbW1lbnQsIGtlZXAgYnVnIG9wZW4KICNuZGJfYmlubG9n X2RkbF9tdWx0aSAgICAgOiBCVUcjMTg5NzYgMjAwNi0wNC0xMCBrZW50ICAgIENSQlI6IG11bHRp cGxlIGJpbmxvZywgc2Vjb25kIGJpbmxvZyBtYXkgbWlzcyBzY2hlbWEgbG9nIGV2ZW50cwoKPT09 IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvcnBsL3QvZGlzYWJsZWQuZGVmJwotLS0g YS9teXNxbC10ZXN0L3N1aXRlL3JwbC90L2Rpc2FibGVkLmRlZgkyMDA4LTA3LTIyIDEwOjUxOjEz ICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvcnBsL3QvZGlzYWJsZWQuZGVmCTIwMDgtMDct MjUgMTU6MTA6MTQgKzAwMDAKQEAgLTM4LDMgKzM4LDQgQEAgcnBsX2ZsdXNobG9nX2xvb3AgICAg ICAgICAgOiBCdWcjMzc3MzMgMgogcnBsX2xvY2t0cmFuc19pbm5vZGIgICAgICAgOiBCdWcjMzc3 MTIgMjAwOC0wNy0xNyBhbGlrIERpc2FibGVkIHRvIG1ha2UgNi4wIGdyZWFuZXIgKHRoZSB0ZXN0 IGZhaWxzIHRvbyBvZnRlbikKIHJwbF90ZW1wb3JhcnlfZXJyb3JzICAgICAgIDogQnVnIzM2OTY4 IDIwMDgtMDctMTcgYWxpayBEaXNhYmxlZCB0byBtYWtlIDYuMCBncmVhbmVyICh0aGUgdGVzdCBm YWlscyB0b28gb2Z0ZW4pCiBycGxfdGVtcG9yYXJ5ICAgICAgICAgICAgICA6IEJVRyMzODI2OSAy MDA4LTA3LTIxIFN2ZW4gdmFsZ3JpbmQgZXJyb3IgaW4gcHVzaGJ1aWxkCitycGxfZmx1c2hsb2df bG9vcCAgICAgICAgICA6IEJVRyMzNzczMyAyMDA4LTA3LTIzIFN2ZW4gZGlzYWJsZWQgaW4gNS4x LWJ1Z3RlYW0uIHRoZSBidWcgaGFzIGJlZW4gZml4ZWQgaW4gNS4xLXJwbDogcGxlYXNlIHJlLWVu YWJsZSB3aGVuIHRoYXQgZ2V0cyBwdXNoZWQgdG8gbWFpbgoKPT09IGFkZGVkIGZpbGUgJ215c3Fs LXRlc3Qvc3VpdGUvc3lzX3ZhcnMvaW5jL211bHRpX3JhbmdlX2NvdW50X2Jhc2ljLmluYycKLS0t IGEvbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy9pbmMvbXVsdGlfcmFuZ2VfY291bnRfYmFzaWMu aW5jCTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9zeXNf dmFycy9pbmMvbXVsdGlfcmFuZ2VfY291bnRfYmFzaWMuaW5jCTIwMDgtMDctMjMgMTQ6MDY6NDQg KzAwMDAKQEAgLTAsMCArMSwyMTkgQEAKKyMjIyMjIyMjIyMjIyMjIG15c3FsLXRlc3RcdFxtdWx0 aV9yYW5nZV9jb3VudF9iYXNpYy50ZXN0ICMjIyMjIyMjIyMjIyMjIworIyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIworIyBWYXJpYWJsZSBOYW1lOiBtdWx0aV9yYW5nZV9jb3VudCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyBTY29wZTogR0xPQkFMIHwgU0VTU0lP TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwor IyBBY2Nlc3MgVHlwZTogRHluYW1pYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIworIyBEYXRhIFR5cGU6IG51bWVyaWMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyBEZWZhdWx0 IFZhbHVlOiAgMjU2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIworIyBSYW5nZToxLTQyOTQ5NjcyOTUgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIworIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyBDcmVhdGlvbiBEYXRlOiAyMDA4LTAyLTA3 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyBB dXRob3I6ICBTYWxtYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIworIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyBEZXNjcmlwdGlv bjogVGVzdCBDYXNlcyBvZiBEeW5hbWljIFN5c3RlbSBWYXJpYWJsZSBtdWx0aV9yYW5nZV9jb3Vu dCAgICAgICAgIworIyAgICAgICAgICAgICAgdGhhdCBjaGVja3MgdGhlIGJlaGF2aW9yIG9mIHRo aXMgdmFyaWFibGUgaW4gdGhlIGZvbGxvd2luZyB3YXlzIworIyAgICAgICAgICAgICAgKiBEZWZh dWx0IFZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IworIyAgICAgICAgICAgICAgKiBWYWxpZCAmIEludmFsaWQgdmFsdWVzICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIworIyAgICAgICAgICAgICAgKiBTY29wZSAmIEFjY2Vz cyBtZXRob2QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyAgICAg ICAgICAgICAgKiBEYXRhIEludGVncml0eSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIworIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyBSZWZlcmVuY2U6IGh0 dHA6Ly9kZXYubXlzcWwuY29tL2RvYy9yZWZtYW4vNS4xL2VuLyAgICAgICAgICAgICAgICAgICAg ICAgICAgIworIyAgc2VydmVyLXN5c3RlbS12YXJpYWJsZXMuaHRtbCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIwor IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCistLXNvdXJjZSBpbmNsdWRlL2xvYWRfc3lzdmFycy5p bmMKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMgICAgICAgICAgIFNUQVJUIE9GIG11bHRpX3JhbmdlX2NvdW50IFRF U1RTICAgICAgICAgICAgICAgICAgICAjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgICAgICAgICAg ICAgICAgIFNhdmUgaW5pdGlhbCB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICMKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KworU0VUIEBzdGFydF9nbG9iYWxfdmFsdWUgPSBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudDsK K1NFTEVDVCBAc3RhcnRfZ2xvYmFsX3ZhbHVlOworU0VUIEBzdGFydF9zZXNzaW9uX3ZhbHVlID0g QEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworU0VMRUNUIEBzdGFydF9zZXNzaW9uX3ZhbHVl OworCisKKy0tZWNobyAnIy0tLS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wOTBfMDEtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjICAgICBEaXNwbGF5IHRoZSBERUZB VUxUIHZhbHVlIG9mIG11bHRpX3JhbmdlX2NvdW50ICAgICAgICAgICAgIworIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor U0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gMTAwOworU0VUIEBAZ2xvYmFsLm11bHRp X3JhbmdlX2NvdW50ID0gREVGQVVMVDsKK1NFTEVDVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3Vu dDsKKworU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IDIwMDsKK1NFVCBAQHNlc3Np b24ubXVsdGlfcmFuZ2VfY291bnQgPSBERUZBVUxUOworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9y YW5nZV9jb3VudDsKKworCistLWVjaG8gJyMtLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNf MDkwXzAyLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyAgICAgQ2hlY2sg dGhlIERFRkFVTFQgdmFsdWUgb2YgbXVsdGlfcmFuZ2VfY291bnQgICAgICAgICAgICAgICMKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisKK1NFVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IERFRkFVTFQ7CitTRUxF Q1QgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSAyNTY7CisKK1NFVCBAQHNlc3Npb24ubXVs dGlfcmFuZ2VfY291bnQgPSBERUZBVUxUOworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9j b3VudCA9IDI1NjsKKworCistLWVjaG8gJyMtLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNf MDkwXzAzLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMg Q2hhbmdlIHRoZSB2YWx1ZSBvZiBtdWx0aV9yYW5nZV9jb3VudCB0byBhIHZhbGlkIHZhbHVlIGZv ciBHTE9CQUwgU2NvcGUgIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK1NFVCBAQGdsb2JhbC5tdWx0 aV9yYW5nZV9jb3VudCA9IDE7CitTRUxFQ1QgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQ7CitT RVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSA2MDAyMDsKK1NFTEVDVCBAQGdsb2JhbC5t dWx0aV9yYW5nZV9jb3VudDsKK1NFVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IDY1NTM1 OworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50OworU0VUIEBAZ2xvYmFsLm11bHRp X3JhbmdlX2NvdW50ID0gNDI5NDk2NzI5NTsKK1NFTEVDVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9j b3VudDsKK1NFVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IDQyOTQ5NjcyOTQ7CitTRUxF Q1QgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQ7CisKKworCistLWVjaG8gJyMtLS0tLS0tLS0t LS0tLS0tLS0tLUZOX0RZTlZBUlNfMDkwXzA0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisjIENoYW5nZSB0aGUgdmFsdWUgb2YgbXVsdGlfcmFuZ2VfY291 bnQgdG8gYSB2YWxpZCB2YWx1ZSBmb3IgU0VTU0lPTiBTY29wZSAjCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCisgCitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gMTsKK1NFTEVDVCBAQHNl c3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50 ID0gNTAwNTA7CitTRUxFQ1QgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworU0VUIEBAc2Vz c2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IDY1NTM1OworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9y YW5nZV9jb3VudDsKK1NFVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSA0Mjk0OTY3Mjk1 OworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK1NFVCBAQHNlc3Npb24ubXVs dGlfcmFuZ2VfY291bnQgPSA0Mjk0OTY3Mjk0OworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5n ZV9jb3VudDsKKworCistLWVjaG8gJyMtLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJTXzA5MF8w NS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgQ2hhbmdlIHRoZSB2YWx1ZSBvZiBt dWx0aV9yYW5nZV9jb3VudCB0byBhbiBpbnZhbGlkIHZhbHVlICMKKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworU0VUIEBAZ2xv YmFsLm11bHRpX3JhbmdlX2NvdW50ID0gMDsKK1NFTEVDVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9j b3VudDsKK1NFVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IDQyOTQ5NjcyOTY7CitTRUxF Q1QgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQ7CitTRVQgQEBnbG9iYWwubXVsdGlfcmFuZ2Vf Y291bnQgPSAtMTAyNDsKK1NFTEVDVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudDsKK1NFVCBA QGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IDQyOTQ5NjcyOTUwMDsKK1NFTEVDVCBAQGdsb2Jh bC5tdWx0aV9yYW5nZV9jb3VudDsKKy0tRXJyb3IgRVJfV1JPTkdfVFlQRV9GT1JfVkFSCitTRVQg QEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSA2NTUzMC4zNDsKK1NFTEVDVCBAQGdsb2JhbC5t dWx0aV9yYW5nZV9jb3VudDsKKy0tRXJyb3IgRVJfV1JPTkdfVFlQRV9GT1JfVkFSCitTRVQgQEBn bG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSB0ZXN0OworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3Jh bmdlX2NvdW50OworCitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gMDsKK1NFTEVD VCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitTRVQgQEBzZXNzaW9uLm11bHRpX3Jhbmdl X2NvdW50ID0gNDI5NDk2NzI5NjsKK1NFTEVDVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7 CitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gLTE7CitTRUxFQ1QgQEBzZXNzaW9u Lm11bHRpX3JhbmdlX2NvdW50OworLS1FcnJvciBFUl9QQVJTRV9FUlJPUgorU0VUIEBAc2Vzc2lv bi5tdWx0aV9yYW5nZV9jb3VudCA9IDY1NTMwLjM0LjsKK1NFVCBAQHNlc3Npb24ubXVsdGlfcmFu Z2VfY291bnQgPSA0Mjk0OTY3Mjk1MDIxOworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9j b3VudDsKKy0tZWNobyAnQnVnICMgMzQ4Mzc6IEVycm9ycyBhcmUgbm90IGNvbWluZyBvbiBhc3Np Z25pbmcgaW52YWxpZCB2YWx1ZXMgdG8gdmFyaWFibGUnOworCistLUVycm9yIEVSX1dST05HX1RZ UEVfRk9SX1ZBUgorU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IHRlc3Q7CitTRUxF Q1QgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworCisKKy0tZWNobyAnIy0tLS0tLS0tLS0t LS0tLS0tLUZOX0RZTlZBUlNfMDkwXzA2LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMgICBDaGVjayBpZiB0aGUgdmFsdWUgaW4gR0xPQkFMIFRhYmxlIG1hdGNoZXMgdmFs dWUgaW4gdmFyaWFibGUgICAjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisKK1NFTEVDVCBAQGdsb2JhbC5tdWx0 aV9yYW5nZV9jb3VudCA9IFZBUklBQkxFX1ZBTFVFIAorRlJPTSBJTkZPUk1BVElPTl9TQ0hFTUEu R0xPQkFMX1ZBUklBQkxFUyAKK1dIRVJFIFZBUklBQkxFX05BTUU9J211bHRpX3JhbmdlX2NvdW50 JzsKKworLS1lY2hvICcjLS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wOTBfMDctLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSMnCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyAgQ2hlY2sgaWYgdGhlIHZhbHVlIGlu IFNFU1NJT04gVGFibGUgbWF0Y2hlcyB2YWx1ZSBpbiB2YXJpYWJsZSAgICMKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisKK1NFTEVDVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSBWQVJJQUJMRV9WQUxVRSAK K0ZST00gSU5GT1JNQVRJT05fU0NIRU1BLlNFU1NJT05fVkFSSUFCTEVTIAorV0hFUkUgVkFSSUFC TEVfTkFNRT0nbXVsdGlfcmFuZ2VfY291bnQnOworCisKKy0tZWNobyAnIy0tLS0tLS0tLS0tLS0t LS0tLUZOX0RZTlZBUlNfMDkwXzA4LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJworIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMgICAgIENoZWNrIGlmIFRSVUUgYW5kIEZBTFNFIHZhbHVlcyBjYW4gYmUgdXNlZCBvbiB2 YXJpYWJsZSAgICAgICAjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitTRVQgQEBnbG9iYWwubXVsdGlfcmFuZ2Vf Y291bnQgPSBUUlVFOworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50OworU0VUIEBA Z2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gRkFMU0U7CitTRUxFQ1QgQEBnbG9iYWwubXVsdGlf cmFuZ2VfY291bnQ7CisKKworLS1lY2hvICcjLS0tLS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFS U18wOTBfMDktLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyAKKyMgIENoZWNrIGlmIGFjY2Vzc2luZyB2YXJpYWJsZSB3aXRoIGFuZCB3aXRob3V0IEdMT0JB TCBwb2ludCB0byBzYW1lIHZhcmlhYmxlICAgIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIAor CitTRVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSAxMDsKK1NFTEVDVCBAQG11bHRpX3Jh bmdlX2NvdW50ID0gQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQ7CisKKworLS1lY2hvICcjLS0t LS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wOTBfMTAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t IycKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjICAg IENoZWNrIGlmIGFjY2Vzc2luZyB2YXJpYWJsZSB3aXRoIFNFU1NJT04sTE9DQUwgYW5kIHdpdGhv dXQgU0NPUEUgcG9pbnRzIHRvIHNhbWUgc2Vzc2lvbiB2YXJpYWJsZSAgIworIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworU0VUIEBAbXVsdGlfcmFuZ2Vf Y291bnQgPSAxMDA7CitTRUxFQ1QgQEBtdWx0aV9yYW5nZV9jb3VudCA9IEBAbG9jYWwubXVsdGlf cmFuZ2VfY291bnQ7CitTRUxFQ1QgQEBsb2NhbC5tdWx0aV9yYW5nZV9jb3VudCA9IEBAc2Vzc2lv bi5tdWx0aV9yYW5nZV9jb3VudDsKKworCistLWVjaG8gJyMtLS0tLS0tLS0tLS0tLS0tLS0tLS1G Tl9EWU5WQVJTXzA5MF8xMS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyAgCisjICAgQ2hlY2sgaWYgbXVsdGlfcmFuZ2VfY291bnQgY2FuIGJlIGFjY2Vzc2VkIHdp dGggYW5kIHdpdGhvdXQgQEAgc2lnbiAgICAjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK1NFVCBt dWx0aV9yYW5nZV9jb3VudCA9IDE7CitTRUxFQ1QgQEBtdWx0aV9yYW5nZV9jb3VudDsKKy0tRXJy b3IgRVJfVU5LTk9XTl9UQUJMRQorU0VMRUNUIGxvY2FsLm11bHRpX3JhbmdlX2NvdW50OworLS1F cnJvciBFUl9VTktOT1dOX1RBQkxFCitTRUxFQ1Qgc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsK Ky0tRXJyb3IgRVJfQkFEX0ZJRUxEX0VSUk9SCitTRUxFQ1QgbXVsdGlfcmFuZ2VfY291bnQgPSBA QHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisjICAgICBSZXN0b3JlIGluaXRpYWwgdmFsdWUgICAgICAgICMKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitTRVQgQEBnbG9iYWwubXVsdGlfcmFu Z2VfY291bnQgPSBAc3RhcnRfZ2xvYmFsX3ZhbHVlOworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3Jh bmdlX2NvdW50OworU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IEBzdGFydF9zZXNz aW9uX3ZhbHVlOworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKKworCisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgICAg ICAgICAgICAgICAgIEVORCBPRiBtdWx0aV9yYW5nZV9jb3VudCBURVNUUyAgICAgIworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKCj09PSBh ZGRlZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL3N5c192YXJzL3IvbXVsdGlfcmFuZ2VfY291bnRf YmFzaWNfMzIucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL3N5c192YXJzL3IvbXVsdGlf cmFuZ2VfY291bnRfYmFzaWNfMzIucmVzdWx0CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysr IGIvbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy9yL211bHRpX3JhbmdlX2NvdW50X2Jhc2ljXzMy LnJlc3VsdAkyMDA4LTA3LTIzIDE0OjA2OjQ0ICswMDAwCkBAIC0wLDAgKzEsMTkyIEBACitTRVQg QHN0YXJ0X2dsb2JhbF92YWx1ZSA9IEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50OworU0VMRUNU IEBzdGFydF9nbG9iYWxfdmFsdWU7CitAc3RhcnRfZ2xvYmFsX3ZhbHVlCisyNTYKK1NFVCBAc3Rh cnRfc2Vzc2lvbl92YWx1ZSA9IEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK1NFTEVDVCBA c3RhcnRfc2Vzc2lvbl92YWx1ZTsKK0BzdGFydF9zZXNzaW9uX3ZhbHVlCisyNTYKKycjLS0tLS0t LS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJTXzA5MF8wMS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0j JworU0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gMTAwOworU0VUIEBAZ2xvYmFsLm11 bHRpX3JhbmdlX2NvdW50ID0gREVGQVVMVDsKK1NFTEVDVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9j b3VudDsKK0BAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50CisyNTYKK1NFVCBAQHNlc3Npb24ubXVs dGlfcmFuZ2VfY291bnQgPSAyMDA7CitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0g REVGQVVMVDsKK1NFTEVDVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitAQHNlc3Npb24u bXVsdGlfcmFuZ2VfY291bnQKKzI1NgorJyMtLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNf MDkwXzAyLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMnCitTRVQgQEBnbG9iYWwubXVsdGlfcmFu Z2VfY291bnQgPSBERUZBVUxUOworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0g MjU2OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSAyNTYKKzEKK1NFVCBAQHNlc3Npb24u bXVsdGlfcmFuZ2VfY291bnQgPSBERUZBVUxUOworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5n ZV9jb3VudCA9IDI1NjsKK0BAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IDI1NgorMQorJyMt LS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDkwXzAzLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSMnCitTRVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSAxOworU0VMRUNUIEBAZ2xv YmFsLm11bHRpX3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzEKK1NF VCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IDYwMDIwOworU0VMRUNUIEBAZ2xvYmFsLm11 bHRpX3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzYwMDIwCitTRVQg QEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSA2NTUzNTsKK1NFTEVDVCBAQGdsb2JhbC5tdWx0 aV9yYW5nZV9jb3VudDsKK0BAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50Cis2NTUzNQorU0VUIEBA Z2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gNDI5NDk2NzI5NTsKK1NFTEVDVCBAQGdsb2JhbC5t dWx0aV9yYW5nZV9jb3VudDsKK0BAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50Cis0Mjk0OTY3Mjk1 CitTRVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSA0Mjk0OTY3Mjk0OworU0VMRUNUIEBA Z2xvYmFsLm11bHRpX3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzQy OTQ5NjcyOTQKKycjLS0tLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJTXzA5MF8wNC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0jJworU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IDE7 CitTRUxFQ1QgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworQEBzZXNzaW9uLm11bHRpX3Jh bmdlX2NvdW50CisxCitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gNTAwNTA7CitT RUxFQ1QgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworQEBzZXNzaW9uLm11bHRpX3Jhbmdl X2NvdW50Cis1MDA1MAorU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IDY1NTM1Owor U0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK0BAc2Vzc2lvbi5tdWx0aV9yYW5n ZV9jb3VudAorNjU1MzUKK1NFVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSA0Mjk0OTY3 Mjk1OworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK0BAc2Vzc2lvbi5tdWx0 aV9yYW5nZV9jb3VudAorNDI5NDk2NzI5NQorU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3Vu dCA9IDQyOTQ5NjcyOTQ7CitTRUxFQ1QgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworQEBz ZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50Cis0Mjk0OTY3Mjk0CisnIy0tLS0tLS0tLS0tLS0tLS0t LUZOX0RZTlZBUlNfMDkwXzA1LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJworU0VUIEBAZ2xvYmFs Lm11bHRpX3JhbmdlX2NvdW50ID0gMDsKK1dhcm5pbmdzOgorV2FybmluZwkxMjkyCVRydW5jYXRl ZCBpbmNvcnJlY3QgbXVsdGlfcmFuZ2VfY291bnQgdmFsdWU6ICcwJworU0VMRUNUIEBAZ2xvYmFs Lm11bHRpX3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzEKK1NFVCBA QGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IDQyOTQ5NjcyOTY7CitXYXJuaW5nczoKK1dhcm5p bmcJMTI5MglUcnVuY2F0ZWQgaW5jb3JyZWN0IG11bHRpX3JhbmdlX2NvdW50IHZhbHVlOiAnNDI5 NDk2NzI5NicKK1NFTEVDVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudDsKK0BAZ2xvYmFsLm11 bHRpX3JhbmdlX2NvdW50Cis0Mjk0OTY3Mjk1CitTRVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291 bnQgPSAtMTAyNDsKK1dhcm5pbmdzOgorV2FybmluZwkxMjkyCVRydW5jYXRlZCBpbmNvcnJlY3Qg bXVsdGlfcmFuZ2VfY291bnQgdmFsdWU6ICcwJworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3Jhbmdl X2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzEKK1NFVCBAQGdsb2JhbC5tdWx0 aV9yYW5nZV9jb3VudCA9IDQyOTQ5NjcyOTUwMDsKK1dhcm5pbmdzOgorV2FybmluZwkxMjkyCVRy dW5jYXRlZCBpbmNvcnJlY3QgbXVsdGlfcmFuZ2VfY291bnQgdmFsdWU6ICc0Mjk0OTY3Mjk1MDAn CitTRUxFQ1QgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQ7CitAQGdsb2JhbC5tdWx0aV9yYW5n ZV9jb3VudAorNDI5NDk2NzI5NQorU0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gNjU1 MzAuMzQ7CitFUlJPUiA0MjAwMDogSW5jb3JyZWN0IGFyZ3VtZW50IHR5cGUgdG8gdmFyaWFibGUg J211bHRpX3JhbmdlX2NvdW50JworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50Owor QEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzQyOTQ5NjcyOTUKK1NFVCBAQGdsb2JhbC5tdWx0 aV9yYW5nZV9jb3VudCA9IHRlc3Q7CitFUlJPUiA0MjAwMDogSW5jb3JyZWN0IGFyZ3VtZW50IHR5 cGUgdG8gdmFyaWFibGUgJ211bHRpX3JhbmdlX2NvdW50JworU0VMRUNUIEBAZ2xvYmFsLm11bHRp X3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzQyOTQ5NjcyOTUKK1NF VCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSAwOworV2FybmluZ3M6CitXYXJuaW5nCTEy OTIJVHJ1bmNhdGVkIGluY29ycmVjdCBtdWx0aV9yYW5nZV9jb3VudCB2YWx1ZTogJzAnCitTRUxF Q1QgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworQEBzZXNzaW9uLm11bHRpX3JhbmdlX2Nv dW50CisxCitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gNDI5NDk2NzI5NjsKK1dh cm5pbmdzOgorV2FybmluZwkxMjkyCVRydW5jYXRlZCBpbmNvcnJlY3QgbXVsdGlfcmFuZ2VfY291 bnQgdmFsdWU6ICc0Mjk0OTY3Mjk2JworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3Vu dDsKK0BAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudAorNDI5NDk2NzI5NQorU0VUIEBAc2Vzc2lv bi5tdWx0aV9yYW5nZV9jb3VudCA9IC0xOworV2FybmluZ3M6CitXYXJuaW5nCTEyOTIJVHJ1bmNh dGVkIGluY29ycmVjdCBtdWx0aV9yYW5nZV9jb3VudCB2YWx1ZTogJzAnCitTRUxFQ1QgQEBzZXNz aW9uLm11bHRpX3JhbmdlX2NvdW50OworQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50CisxCitT RVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gNjU1MzAuMzQuOworRVJST1IgNDIwMDA6 IFlvdSBoYXZlIGFuIGVycm9yIGluIHlvdXIgU1FMIHN5bnRheDsgY2hlY2sgdGhlIG1hbnVhbCB0 aGF0IGNvcnJlc3BvbmRzIHRvIHlvdXIgTXlTUUwgc2VydmVyIHZlcnNpb24gZm9yIHRoZSByaWdo dCBzeW50YXggdG8gdXNlIG5lYXIgJy4nIGF0IGxpbmUgMQorU0VUIEBAc2Vzc2lvbi5tdWx0aV9y YW5nZV9jb3VudCA9IDQyOTQ5NjcyOTUwMjE7CitXYXJuaW5nczoKK1dhcm5pbmcJMTI5MglUcnVu Y2F0ZWQgaW5jb3JyZWN0IG11bHRpX3JhbmdlX2NvdW50IHZhbHVlOiAnNDI5NDk2NzI5NTAyMScK K1NFTEVDVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitAQHNlc3Npb24ubXVsdGlfcmFu Z2VfY291bnQKKzQyOTQ5NjcyOTUKKydCdWcgIyAzNDgzNzogRXJyb3JzIGFyZSBub3QgY29taW5n IG9uIGFzc2lnbmluZyBpbnZhbGlkIHZhbHVlcyB0byB2YXJpYWJsZSc7CitTRVQgQEBzZXNzaW9u Lm11bHRpX3JhbmdlX2NvdW50ID0gdGVzdDsKK0VSUk9SIDQyMDAwOiBJbmNvcnJlY3QgYXJndW1l bnQgdHlwZSB0byB2YXJpYWJsZSAnbXVsdGlfcmFuZ2VfY291bnQnCitTRUxFQ1QgQEBzZXNzaW9u Lm11bHRpX3JhbmdlX2NvdW50OworQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50Cis0Mjk0OTY3 Mjk1CisnIy0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDkwXzA2LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0jJworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gVkFSSUFCTEVf VkFMVUUgCitGUk9NIElORk9STUFUSU9OX1NDSEVNQS5HTE9CQUxfVkFSSUFCTEVTIAorV0hFUkUg VkFSSUFCTEVfTkFNRT0nbXVsdGlfcmFuZ2VfY291bnQnOworQEBnbG9iYWwubXVsdGlfcmFuZ2Vf Y291bnQgPSBWQVJJQUJMRV9WQUxVRQorMQorJyMtLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJT XzA5MF8wNy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKK1NFTEVDVCBAQHNlc3Npb24ubXVsdGlf cmFuZ2VfY291bnQgPSBWQVJJQUJMRV9WQUxVRSAKK0ZST00gSU5GT1JNQVRJT05fU0NIRU1BLlNF U1NJT05fVkFSSUFCTEVTIAorV0hFUkUgVkFSSUFCTEVfTkFNRT0nbXVsdGlfcmFuZ2VfY291bnQn OworQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gVkFSSUFCTEVfVkFMVUUKKzEKKycjLS0t LS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wOTBfMDgtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMn CitTRVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSBUUlVFOworU0VMRUNUIEBAZ2xvYmFs Lm11bHRpX3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzEKK1NFVCBA QGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IEZBTFNFOworV2FybmluZ3M6CitXYXJuaW5nCTEy OTIJVHJ1bmNhdGVkIGluY29ycmVjdCBtdWx0aV9yYW5nZV9jb3VudCB2YWx1ZTogJzAnCitTRUxF Q1QgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQ7CitAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3Vu dAorMQorJyMtLS0tLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJTXzA5MF8wOS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0jJworU0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gMTA7CitTRUxF Q1QgQEBtdWx0aV9yYW5nZV9jb3VudCA9IEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50OworQEBt dWx0aV9yYW5nZV9jb3VudCA9IEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50CiswCisnIy0tLS0t LS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDkwXzEwLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMn CitTRVQgQEBtdWx0aV9yYW5nZV9jb3VudCA9IDEwMDsKK1NFTEVDVCBAQG11bHRpX3JhbmdlX2Nv dW50ID0gQEBsb2NhbC5tdWx0aV9yYW5nZV9jb3VudDsKK0BAbXVsdGlfcmFuZ2VfY291bnQgPSBA QGxvY2FsLm11bHRpX3JhbmdlX2NvdW50CisxCitTRUxFQ1QgQEBsb2NhbC5tdWx0aV9yYW5nZV9j b3VudCA9IEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK0BAbG9jYWwubXVsdGlfcmFuZ2Vf Y291bnQgPSBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQKKzEKKycjLS0tLS0tLS0tLS0tLS0t LS0tLS0tRk5fRFlOVkFSU18wOTBfMTEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKK1NFVCBtdWx0 aV9yYW5nZV9jb3VudCA9IDE7CitTRUxFQ1QgQEBtdWx0aV9yYW5nZV9jb3VudDsKK0BAbXVsdGlf cmFuZ2VfY291bnQKKzEKK1NFTEVDVCBsb2NhbC5tdWx0aV9yYW5nZV9jb3VudDsKK0VSUk9SIDQy UzAyOiBVbmtub3duIHRhYmxlICdsb2NhbCcgaW4gZmllbGQgbGlzdAorU0VMRUNUIHNlc3Npb24u bXVsdGlfcmFuZ2VfY291bnQ7CitFUlJPUiA0MlMwMjogVW5rbm93biB0YWJsZSAnc2Vzc2lvbicg aW4gZmllbGQgbGlzdAorU0VMRUNUIG11bHRpX3JhbmdlX2NvdW50ID0gQEBzZXNzaW9uLm11bHRp X3JhbmdlX2NvdW50OworRVJST1IgNDJTMjI6IFVua25vd24gY29sdW1uICdtdWx0aV9yYW5nZV9j b3VudCcgaW4gJ2ZpZWxkIGxpc3QnCitTRVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSBA c3RhcnRfZ2xvYmFsX3ZhbHVlOworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50Owor QEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzI1NgorU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5n ZV9jb3VudCA9IEBzdGFydF9zZXNzaW9uX3ZhbHVlOworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9y YW5nZV9jb3VudDsKK0BAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudAorMjU2Cgo9PT0gYWRkZWQg ZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy9yL211bHRpX3JhbmdlX2NvdW50X2Jhc2lj XzY0LnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy9yL211bHRpX3Jhbmdl X2NvdW50X2Jhc2ljXzY0LnJlc3VsdAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215 c3FsLXRlc3Qvc3VpdGUvc3lzX3ZhcnMvci9tdWx0aV9yYW5nZV9jb3VudF9iYXNpY182NC5yZXN1 bHQJMjAwOC0wNy0yMyAxNDowNjo0NCArMDAwMApAQCAtMCwwICsxLDE4NCBAQAorU0VUIEBzdGFy dF9nbG9iYWxfdmFsdWUgPSBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudDsKK1NFTEVDVCBAc3Rh cnRfZ2xvYmFsX3ZhbHVlOworQHN0YXJ0X2dsb2JhbF92YWx1ZQorMjU2CitTRVQgQHN0YXJ0X3Nl c3Npb25fdmFsdWUgPSBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitTRUxFQ1QgQHN0YXJ0 X3Nlc3Npb25fdmFsdWU7CitAc3RhcnRfc2Vzc2lvbl92YWx1ZQorMjU2CisnIy0tLS0tLS0tLS0t LS0tLS0tLS0tRk5fRFlOVkFSU18wOTBfMDEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKK1NF VCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IDEwMDsKK1NFVCBAQGdsb2JhbC5tdWx0aV9y YW5nZV9jb3VudCA9IERFRkFVTFQ7CitTRUxFQ1QgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQ7 CitAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudAorMjU2CitTRVQgQEBzZXNzaW9uLm11bHRpX3Jh bmdlX2NvdW50ID0gMjAwOworU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IERFRkFV TFQ7CitTRUxFQ1QgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworQEBzZXNzaW9uLm11bHRp X3JhbmdlX2NvdW50CisyNTYKKycjLS0tLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJTXzA5MF8w Mi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJworU0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2Nv dW50ID0gREVGQVVMVDsKK1NFTEVDVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IDI1NjsK K0BAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gMjU2CisxCitTRVQgQEBzZXNzaW9uLm11bHRp X3JhbmdlX2NvdW50ID0gREVGQVVMVDsKK1NFTEVDVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291 bnQgPSAyNTY7CitAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSAyNTYKKzEKKycjLS0tLS0t LS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJTXzA5MF8wMy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0j JworU0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gMTsKK1NFTEVDVCBAQGdsb2JhbC5t dWx0aV9yYW5nZV9jb3VudDsKK0BAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50CisxCitTRVQgQEBn bG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSA2MDAyMDsKK1NFTEVDVCBAQGdsb2JhbC5tdWx0aV9y YW5nZV9jb3VudDsKK0BAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50Cis2MDAyMAorU0VUIEBAZ2xv YmFsLm11bHRpX3JhbmdlX2NvdW50ID0gNjU1MzU7CitTRUxFQ1QgQEBnbG9iYWwubXVsdGlfcmFu Z2VfY291bnQ7CitAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudAorNjU1MzUKK1NFVCBAQGdsb2Jh bC5tdWx0aV9yYW5nZV9jb3VudCA9IDQyOTQ5NjcyOTU7CitTRUxFQ1QgQEBnbG9iYWwubXVsdGlf cmFuZ2VfY291bnQ7CitAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudAorNDI5NDk2NzI5NQorU0VU IEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gNDI5NDk2NzI5NDsKK1NFTEVDVCBAQGdsb2Jh bC5tdWx0aV9yYW5nZV9jb3VudDsKK0BAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50Cis0Mjk0OTY3 Mjk0CisnIy0tLS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wOTBfMDQtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tIycKK1NFVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSAxOworU0VM RUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK0BAc2Vzc2lvbi5tdWx0aV9yYW5nZV9j b3VudAorMQorU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IDUwMDUwOworU0VMRUNU IEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK0BAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3Vu dAorNTAwNTAKK1NFVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSA2NTUzNTsKK1NFTEVD VCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291 bnQKKzY1NTM1CitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gNDI5NDk2NzI5NTsK K1NFTEVDVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitAQHNlc3Npb24ubXVsdGlfcmFu Z2VfY291bnQKKzQyOTQ5NjcyOTUKK1NFVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSA0 Mjk0OTY3Mjk0OworU0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK0BAc2Vzc2lv bi5tdWx0aV9yYW5nZV9jb3VudAorNDI5NDk2NzI5NAorJyMtLS0tLS0tLS0tLS0tLS0tLS1GTl9E WU5WQVJTXzA5MF8wNS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKK1NFVCBAQGdsb2JhbC5tdWx0 aV9yYW5nZV9jb3VudCA9IDA7CitXYXJuaW5nczoKK1dhcm5pbmcJMTI5MglUcnVuY2F0ZWQgaW5j b3JyZWN0IG11bHRpX3JhbmdlX2NvdW50IHZhbHVlOiAnMCcKK1NFTEVDVCBAQGdsb2JhbC5tdWx0 aV9yYW5nZV9jb3VudDsKK0BAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50CisxCitTRVQgQEBnbG9i YWwubXVsdGlfcmFuZ2VfY291bnQgPSA0Mjk0OTY3Mjk2OworU0VMRUNUIEBAZ2xvYmFsLm11bHRp X3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzQyOTQ5NjcyOTYKK1NF VCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IC0xMDI0OworV2FybmluZ3M6CitXYXJuaW5n CTEyOTIJVHJ1bmNhdGVkIGluY29ycmVjdCBtdWx0aV9yYW5nZV9jb3VudCB2YWx1ZTogJzAnCitT RUxFQ1QgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQ7CitAQGdsb2JhbC5tdWx0aV9yYW5nZV9j b3VudAorMQorU0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gNDI5NDk2NzI5NTAwOwor U0VMRUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2Vf Y291bnQKKzQyOTQ5NjcyOTUwMAorU0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50ID0gNjU1 MzAuMzQ7CitFUlJPUiA0MjAwMDogSW5jb3JyZWN0IGFyZ3VtZW50IHR5cGUgdG8gdmFyaWFibGUg J211bHRpX3JhbmdlX2NvdW50JworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50Owor QEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzQyOTQ5NjcyOTUwMAorU0VUIEBAZ2xvYmFsLm11 bHRpX3JhbmdlX2NvdW50ID0gdGVzdDsKK0VSUk9SIDQyMDAwOiBJbmNvcnJlY3QgYXJndW1lbnQg dHlwZSB0byB2YXJpYWJsZSAnbXVsdGlfcmFuZ2VfY291bnQnCitTRUxFQ1QgQEBnbG9iYWwubXVs dGlfcmFuZ2VfY291bnQ7CitAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudAorNDI5NDk2NzI5NTAw CitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gMDsKK1dhcm5pbmdzOgorV2Fybmlu ZwkxMjkyCVRydW5jYXRlZCBpbmNvcnJlY3QgbXVsdGlfcmFuZ2VfY291bnQgdmFsdWU6ICcwJwor U0VMRUNUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK0BAc2Vzc2lvbi5tdWx0aV9yYW5n ZV9jb3VudAorMQorU0VUIEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudCA9IDQyOTQ5NjcyOTY7 CitTRUxFQ1QgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworQEBzZXNzaW9uLm11bHRpX3Jh bmdlX2NvdW50Cis0Mjk0OTY3Mjk2CitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0g LTE7CitXYXJuaW5nczoKK1dhcm5pbmcJMTI5MglUcnVuY2F0ZWQgaW5jb3JyZWN0IG11bHRpX3Jh bmdlX2NvdW50IHZhbHVlOiAnMCcKK1NFTEVDVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7 CitAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQKKzEKK1NFVCBAQHNlc3Npb24ubXVsdGlfcmFu Z2VfY291bnQgPSA2NTUzMC4zNC47CitFUlJPUiA0MjAwMDogWW91IGhhdmUgYW4gZXJyb3IgaW4g eW91ciBTUUwgc3ludGF4OyBjaGVjayB0aGUgbWFudWFsIHRoYXQgY29ycmVzcG9uZHMgdG8geW91 ciBNeVNRTCBzZXJ2ZXIgdmVyc2lvbiBmb3IgdGhlIHJpZ2h0IHN5bnRheCB0byB1c2UgbmVhciAn LicgYXQgbGluZSAxCitTRVQgQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gNDI5NDk2NzI5 NTAyMTsKK1NFTEVDVCBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitAQHNlc3Npb24ubXVs dGlfcmFuZ2VfY291bnQKKzQyOTQ5NjcyOTUwMjEKKydCdWcgIyAzNDgzNzogRXJyb3JzIGFyZSBu b3QgY29taW5nIG9uIGFzc2lnbmluZyBpbnZhbGlkIHZhbHVlcyB0byB2YXJpYWJsZSc7CitTRVQg QEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gdGVzdDsKK0VSUk9SIDQyMDAwOiBJbmNvcnJl Y3QgYXJndW1lbnQgdHlwZSB0byB2YXJpYWJsZSAnbXVsdGlfcmFuZ2VfY291bnQnCitTRUxFQ1Qg QEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50 Cis0Mjk0OTY3Mjk1MDIxCisnIy0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDkwXzA2LS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0jJworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50 ID0gVkFSSUFCTEVfVkFMVUUgCitGUk9NIElORk9STUFUSU9OX1NDSEVNQS5HTE9CQUxfVkFSSUFC TEVTIAorV0hFUkUgVkFSSUFCTEVfTkFNRT0nbXVsdGlfcmFuZ2VfY291bnQnOworQEBnbG9iYWwu bXVsdGlfcmFuZ2VfY291bnQgPSBWQVJJQUJMRV9WQUxVRQorMQorJyMtLS0tLS0tLS0tLS0tLS0t LS1GTl9EWU5WQVJTXzA5MF8wNy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIycKK1NFTEVDVCBAQHNl c3Npb24ubXVsdGlfcmFuZ2VfY291bnQgPSBWQVJJQUJMRV9WQUxVRSAKK0ZST00gSU5GT1JNQVRJ T05fU0NIRU1BLlNFU1NJT05fVkFSSUFCTEVTIAorV0hFUkUgVkFSSUFCTEVfTkFNRT0nbXVsdGlf cmFuZ2VfY291bnQnOworQEBzZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50ID0gVkFSSUFCTEVfVkFM VUUKKzEKKycjLS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wOTBfMDgtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSMnCitTRVQgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQgPSBUUlVFOworU0VM RUNUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291 bnQKKzEKK1NFVCBAQGdsb2JhbC5tdWx0aV9yYW5nZV9jb3VudCA9IEZBTFNFOworV2FybmluZ3M6 CitXYXJuaW5nCTEyOTIJVHJ1bmNhdGVkIGluY29ycmVjdCBtdWx0aV9yYW5nZV9jb3VudCB2YWx1 ZTogJzAnCitTRUxFQ1QgQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQ7CitAQGdsb2JhbC5tdWx0 aV9yYW5nZV9jb3VudAorMQorJyMtLS0tLS0tLS0tLS0tLS0tLS0tLS1GTl9EWU5WQVJTXzA5MF8w OS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0jJworU0VUIEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50 ID0gMTA7CitTRUxFQ1QgQEBtdWx0aV9yYW5nZV9jb3VudCA9IEBAZ2xvYmFsLm11bHRpX3Jhbmdl X2NvdW50OworQEBtdWx0aV9yYW5nZV9jb3VudCA9IEBAZ2xvYmFsLm11bHRpX3JhbmdlX2NvdW50 CiswCisnIy0tLS0tLS0tLS0tLS0tLS0tLS0tLUZOX0RZTlZBUlNfMDkwXzEwLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSMnCitTRVQgQEBtdWx0aV9yYW5nZV9jb3VudCA9IDEwMDsKK1NFTEVDVCBAQG11 bHRpX3JhbmdlX2NvdW50ID0gQEBsb2NhbC5tdWx0aV9yYW5nZV9jb3VudDsKK0BAbXVsdGlfcmFu Z2VfY291bnQgPSBAQGxvY2FsLm11bHRpX3JhbmdlX2NvdW50CisxCitTRUxFQ1QgQEBsb2NhbC5t dWx0aV9yYW5nZV9jb3VudCA9IEBAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK0BAbG9jYWwu bXVsdGlfcmFuZ2VfY291bnQgPSBAQHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQKKzEKKycjLS0t LS0tLS0tLS0tLS0tLS0tLS0tRk5fRFlOVkFSU18wOTBfMTEtLS0tLS0tLS0tLS0tLS0tLS0tLS0t IycKK1NFVCBtdWx0aV9yYW5nZV9jb3VudCA9IDE7CitTRUxFQ1QgQEBtdWx0aV9yYW5nZV9jb3Vu dDsKK0BAbXVsdGlfcmFuZ2VfY291bnQKKzEKK1NFTEVDVCBsb2NhbC5tdWx0aV9yYW5nZV9jb3Vu dDsKK0VSUk9SIDQyUzAyOiBVbmtub3duIHRhYmxlICdsb2NhbCcgaW4gZmllbGQgbGlzdAorU0VM RUNUIHNlc3Npb24ubXVsdGlfcmFuZ2VfY291bnQ7CitFUlJPUiA0MlMwMjogVW5rbm93biB0YWJs ZSAnc2Vzc2lvbicgaW4gZmllbGQgbGlzdAorU0VMRUNUIG11bHRpX3JhbmdlX2NvdW50ID0gQEBz ZXNzaW9uLm11bHRpX3JhbmdlX2NvdW50OworRVJST1IgNDJTMjI6IFVua25vd24gY29sdW1uICdt dWx0aV9yYW5nZV9jb3VudCcgaW4gJ2ZpZWxkIGxpc3QnCitTRVQgQEBnbG9iYWwubXVsdGlfcmFu Z2VfY291bnQgPSBAc3RhcnRfZ2xvYmFsX3ZhbHVlOworU0VMRUNUIEBAZ2xvYmFsLm11bHRpX3Jh bmdlX2NvdW50OworQEBnbG9iYWwubXVsdGlfcmFuZ2VfY291bnQKKzI1NgorU0VUIEBAc2Vzc2lv bi5tdWx0aV9yYW5nZV9jb3VudCA9IEBzdGFydF9zZXNzaW9uX3ZhbHVlOworU0VMRUNUIEBAc2Vz c2lvbi5tdWx0aV9yYW5nZV9jb3VudDsKK0BAc2Vzc2lvbi5tdWx0aV9yYW5nZV9jb3VudAorMjU2 Cgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy90L211bHRpX3Jhbmdl X2NvdW50X2Jhc2ljXzMyLnRlc3QnCi0tLSBhL215c3FsLXRlc3Qvc3VpdGUvc3lzX3ZhcnMvdC9t dWx0aV9yYW5nZV9jb3VudF9iYXNpY18zMi50ZXN0CTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAK KysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy90L211bHRpX3JhbmdlX2NvdW50X2Jhc2lj XzMyLnRlc3QJMjAwOC0wNy0yMyAxNDowNjo0NCArMDAwMApAQCAtMCwwICsxLDkgQEAKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisjIENyZWF0ZWQgYnkgSG9yc3QgSHVuZ2VyICAgICAgMjAwOC0w NS0wNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICMKKyMgV3JhcHBlciBmb3IgMzIgYml0IG1hY2hpbmVzICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworCistLXNvdXJjZSBpbmNsdWRlL2hhdmVfMzJiaXQuaW5jCistLXNvdXJjZSBzdWl0ZS9z eXNfdmFycy9pbmMvbXVsdGlfcmFuZ2VfY291bnRfYmFzaWMuaW5jCisKCj09PSBhZGRlZCBmaWxl ICdteXNxbC10ZXN0L3N1aXRlL3N5c192YXJzL3QvbXVsdGlfcmFuZ2VfY291bnRfYmFzaWNfNjQu dGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy90L211bHRpX3JhbmdlX2NvdW50 X2Jhc2ljXzY0LnRlc3QJMTk3MC0wMS0wMSAwMDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0 L3N1aXRlL3N5c192YXJzL3QvbXVsdGlfcmFuZ2VfY291bnRfYmFzaWNfNjQudGVzdAkyMDA4LTA3 LTIzIDE0OjA2OjQ0ICswMDAwCkBAIC0wLDAgKzEsOSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKyMgQ3JlYXRlZCBieSBIb3JzdCBIdW5nZXIgICAgICAyMDA4LTA1LTA3ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjCisjICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIworIyBX cmFwcGVyIGZvciA2NCBiaXQgbWFjaGluZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKy0tc291cmNl IGluY2x1ZGUvaGF2ZV82NGJpdC5pbmMKKy0tc291cmNlIHN1aXRlL3N5c192YXJzL2luYy9tdWx0 aV9yYW5nZV9jb3VudF9iYXNpYy5pbmMKKwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qv dC9mdW5jX2lmLnRlc3QnCi0tLSBhL215c3FsLXRlc3QvdC9mdW5jX2lmLnRlc3QJMjAwNy0wMi0x MiAyMDo1OToyOSArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvZnVuY19pZi50ZXN0CTIwMDgtMDct MzAgMTE6MDc6MzcgKzAwMDAKQEAgLTEwOCwzICsxMDgsNDYgQEAgZHJvcCB0YWJsZSB0MTsKIHNl bGVjdCBpZigwLCAxODQ0Njc0NDA3MzcwOTU1MTYxMCwgMTg0NDY3NDQwNzM3MDk1NTE2MTApOwog CiAKKyMKKyMgQnVnICMzNzY2MjogbmVzdGVkIGlmKCkgaW5zaWRlIHN1bSgpIGlzIHBhcnNlZCBp biBleHBvbmVudGlhbCB0aW1lCisjCisKK0NSRUFURSBUQUJMRSB0MShhIERFQ0lNQUwoMTAsMykp OworCisjIGNoZWNrIDogc2hvdWxkIGJlIGZhc3QuIG1vcmUgdGhhbiBmZXcgc2VjcyBtZWFucyBm YWlsdXJlLgorU0VMRUNUIHQxLmEsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJP VU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5E KHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQx LmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEs Mik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9 MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSks IDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIs CisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisg SUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYo KFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJP VU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5E KHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQx LmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEs Mik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9 MSksIDIsCisgSUYoKFJPVU5EKHQxLmEsMik9MSksIDIsMCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkp KSkpKSkpKSArIDEKK0ZST00gdDE7CisKK0RST1AgVEFCTEUgdDE7CisKKy0tZWNobyBFbmQgb2Yg NS4wIHRlc3RzCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC90L2luZm9ybWF0aW9uX3Nj aGVtYS1tYXN0ZXIub3B0JwotLS0gYS9teXNxbC10ZXN0L3QvaW5mb3JtYXRpb25fc2NoZW1hLW1h c3Rlci5vcHQJMjAwNy0xMS0zMCAwMzoyNjo1NyArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvaW5m b3JtYXRpb25fc2NoZW1hLW1hc3Rlci5vcHQJMjAwOC0wNy0yOSAxMDo0NTozOSArMDAwMApAQCAt Niw3ICs2LDYgQEAKIC0tbG9vc2Utc2tpcC1wbHVnaW4tZmFsY29uX3N5bmNvYmplY3RzCiAtLWxv b3NlLXNraXAtcGx1Z2luLWZhbGNvbl9zeXN0ZW1fbWVtb3J5X2RldGFpbAogLS1sb29zZS1za2lw LXBsdWdpbi1mYWxjb25fc3lzdGVtX21lbW9yeV9zdW1tYXJ5Ci0tLWxvb3NlLXNraXAtcGx1Z2lu LWZhbGNvbl90YWJsZXMKIC0tbG9vc2Utc2tpcC1wbHVnaW4tZmFsY29uX3RyYW5zYWN0aW9uX3N1 bW1hcnkKIC0tbG9vc2Utc2tpcC1wbHVnaW4tZmFsY29uX3RyYW5zYWN0aW9ucwogLS1sb29zZS1z a2lwLXBsdWdpbi1mYWxjb25fdmVyc2lvbgoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qv dC9pbmZvcm1hdGlvbl9zY2hlbWFfZGItbWFzdGVyLm9wdCcKLS0tIGEvbXlzcWwtdGVzdC90L2lu Zm9ybWF0aW9uX3NjaGVtYV9kYi1tYXN0ZXIub3B0CTIwMDctMTEtMzAgMDM6MjY6NTcgKzAwMDAK KysrIGIvbXlzcWwtdGVzdC90L2luZm9ybWF0aW9uX3NjaGVtYV9kYi1tYXN0ZXIub3B0CTIwMDgt MDctMjkgMTA6NDU6MzkgKzAwMDAKQEAgLTYsNyArNiw2IEBACiAtLWxvb3NlLXNraXAtcGx1Z2lu LWZhbGNvbl9zeW5jb2JqZWN0cwogLS1sb29zZS1za2lwLXBsdWdpbi1mYWxjb25fc3lzdGVtX21l bW9yeV9kZXRhaWwKIC0tbG9vc2Utc2tpcC1wbHVnaW4tZmFsY29uX3N5c3RlbV9tZW1vcnlfc3Vt bWFyeQotLS1sb29zZS1za2lwLXBsdWdpbi1mYWxjb25fdGFibGVzCiAtLWxvb3NlLXNraXAtcGx1 Z2luLWZhbGNvbl90cmFuc2FjdGlvbl9zdW1tYXJ5CiAtLWxvb3NlLXNraXAtcGx1Z2luLWZhbGNv bl90cmFuc2FjdGlvbnMKIC0tbG9vc2Utc2tpcC1wbHVnaW4tZmFsY29uX3ZlcnNpb24KCj09PSBh ZGRlZCBmaWxlICdteXNxbC10ZXN0L3QvaW5ub2RiLWF1dG9pbmMtb3B0aW1pemUudGVzdCcKLS0t IGEvbXlzcWwtdGVzdC90L2lubm9kYi1hdXRvaW5jLW9wdGltaXplLnRlc3QJMTk3MC0wMS0wMSAw MDowMDowMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvaW5ub2RiLWF1dG9pbmMtb3B0aW1pemUu dGVzdAkyMDA4LTA4LTEzIDA4OjE2OjM0ICswMDAwCkBAIC0wLDAgKzEsMTYgQEAKKy0tIHNvdXJj ZSBpbmNsdWRlL2hhdmVfaW5ub2RiLmluYworIyBlbWJlZGRlZCBzZXJ2ZXIgaWdub3JlcyAnZGVs YXllZCcsIHNvIHNraXAgdGhpcworLS0gc291cmNlIGluY2x1ZGUvbm90X2VtYmVkZGVkLmluYwor CistLWRpc2FibGVfd2FybmluZ3MKK2Ryb3AgdGFibGUgaWYgZXhpc3RzIHQxOworLS1lbmFibGVf d2FybmluZ3MKKworIworIyBCdWcgMzQyODYKKyMKK2NyZWF0ZSB0YWJsZSB0MShhIGludCBub3Qg bnVsbCBhdXRvX2luY3JlbWVudCBwcmltYXJ5IGtleSkgZW5naW5lPWlubm9kYjsKK2luc2VydCBp bnRvIHQxIHNldCBhID0gLTE7CisjIE5PVEU6IFRoZSBkYXRhYmFzZSBuZWVkcyB0byBiZSBzaHV0 ZG93biBhbmQgcmVzdGFydGVkIChoZXJlKSBmb3IKKyMgdGhlIHRlc3QgdG8gd29yay4gSXQncyBp bmNsdWRlZCBmb3IgcmVmZXJlbmNlIG9ubHkuCitvcHRpbWl6ZSB0YWJsZSB0MTsKCj09PSBtb2Rp ZmllZCBmaWxlICdteXNxbC10ZXN0L3QvbXlzcWxzaG93LW1hc3Rlci5vcHQnCi0tLSBhL215c3Fs LXRlc3QvdC9teXNxbHNob3ctbWFzdGVyLm9wdAkyMDA3LTExLTMwIDAzOjI2OjU3ICswMDAwCisr KyBiL215c3FsLXRlc3QvdC9teXNxbHNob3ctbWFzdGVyLm9wdAkyMDA4LTA3LTI5IDEwOjQ1OjM5 ICswMDAwCkBAIC02LDcgKzYsNiBAQAogLS1sb29zZS1za2lwLXBsdWdpbi1mYWxjb25fc3luY29i amVjdHMKIC0tbG9vc2Utc2tpcC1wbHVnaW4tZmFsY29uX3N5c3RlbV9tZW1vcnlfZGV0YWlsCiAt LWxvb3NlLXNraXAtcGx1Z2luLWZhbGNvbl9zeXN0ZW1fbWVtb3J5X3N1bW1hcnkKLS0tbG9vc2Ut c2tpcC1wbHVnaW4tZmFsY29uX3RhYmxlcwogLS1sb29zZS1za2lwLXBsdWdpbi1mYWxjb25fdHJh bnNhY3Rpb25fc3VtbWFyeQogLS1sb29zZS1za2lwLXBsdWdpbi1mYWxjb25fdHJhbnNhY3Rpb25z CiAtLWxvb3NlLXNraXAtcGx1Z2luLWZhbGNvbl92ZXJzaW9uCgo9PT0gbW9kaWZpZWQgZmlsZSAn bXlzcWwtdGVzdC90L3BlcnJvci50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3QvcGVycm9yLnRlc3QJ MjAwNi0wOC0wMSAwOToyOToxMCArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvcGVycm9yLnRlc3QJ MjAwOC0wOC0wNSAyMzoyNjoxOCArMDAwMApAQCAtMTcsMyArMTcsMTcgQEAgZW5hYmxlX3F1ZXJ5 X2xvZzsKICMgQXMgdGhlcmUgaXMgbm8gZXJyb3IgY29kZSBkZWZpbmVkIGZvciAxMDAwMCwgZXhw ZWN0IGVycm9yCiAtLWVycm9yIDEKIC0tZXhlYyAkTVlfUEVSUk9SIDEwMDAwIDI+JjEKKworIwor IyBCdWcjMTAxNDMgKFBlcnJvciBub3Qgc2hvd2luZyBlcnJvciBkZXNjcmlwdGlvbikKKyMKKwor IyB0ZXN0IHJlcG9ydGVkIGNhc2UKKy0tZXhlYyAkTVlfUEVSUk9SIDEwNjIgMj4mMQorCisjIHRl c3QgZXJyb3JzIHRoYXQgY29udGFpbiBjaGFyYWN0ZXJzIHRvIGVzY2FwZSBpbiB0aGUgdGV4dC4K Ky0tZXhlYyAkTVlfUEVSUk9SIDEwNzYgMj4mMQorLS1leGVjICRNWV9QRVJST1IgMTQ1OSAyPiYx CistLWV4ZWMgJE1ZX1BFUlJPUiAxNDYxIDI+JjEKKworCgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwt dGVzdC90L3NwLW5vLWNvZGUudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC90L3NwLW5vLWNvZGUudGVz dAkxOTcwLTAxLTAxIDAwOjAwOjAwICswMDAwCisrKyBiL215c3FsLXRlc3QvdC9zcC1uby1jb2Rl LnRlc3QJMjAwOC0wNy0yNCAxNjo1MDoxOCArMDAwMApAQCAtMCwwICsxLDEyIEBACisjCisjIFRl c3QgdGhlIGRlYnVnZ2luZyBmZWF0dXJlICJzaG93IHByb2NlZHVyZS9mdW5jdGlvbiBjb2RlIDxu YW1lPiIgCisjCisKKy0tIHNvdXJjZSBpbmNsdWRlL2hhdmVfbm9kZWJ1Zy5pbmMKKworLS1lcnJv ciBFUl9GRUFUVVJFX0RJU0FCTEVECitzaG93IHByb2NlZHVyZSBjb2RlIGZvbzsKKworLS1lcnJv ciBFUl9GRUFUVVJFX0RJU0FCTEVECitzaG93IGZ1bmN0aW9uIGNvZGUgZm9vOworCgo9PT0gbW9k aWZpZWQgZmlsZSAnbXlzcWwtdGVzdC90L3N1YnNlbGVjdC50ZXN0JwotLS0gYS9teXNxbC10ZXN0 L3Qvc3Vic2VsZWN0LnRlc3QJMjAwOC0wNy0xMCAyMzoyOToyNyArMDAwMAorKysgYi9teXNxbC10 ZXN0L3Qvc3Vic2VsZWN0LnRlc3QJMjAwOC0wNy0zMSAxMTozNzowNyArMDAwMApAQCAtMzQ0Myw3 ICszNDQzLDIxIEBAIFNFTEVDVCAqIEZST00gdDIgV0hFUkUgYiBOT1QgSU4gKFNFTEVDVCAKIAog RFJPUCBUQUJMRSB0MSx0MjsKIAotLS1lY2hvIEVuZCBvZiA1LjAgdGVzdHMuCisKKyMKKyMgQnVn ICMzODE5MTogU2VydmVyIGNyYXNoIHdpdGggc3VicXVlcnkgY29udGFpbmluZyBESVNUSU5DVCBh bmQgT1JERVIgQlkKKyMKKworQ1JFQVRFIFRBQkxFIHQxKHBrIGludCBQUklNQVJZIEtFWSwgYSBp bnQsIElOREVYIGlkeChhKSk7CitJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKDEsIDEwKSwgKDMsIDMw KSwgKDIsIDIwKTsKK0NSRUFURSBUQUJMRSB0MihwayBpbnQgUFJJTUFSWSBLRVksIGEgaW50LCBi IGludCwgSU5ERVggaWR4YShhKSk7CitJTlNFUlQgSU5UTyB0MiBWQUxVRVMgKDIsIDIwLCA3MDAp LCAoMSwgMTAsIDIwMCksICg0LCAxMCwgMTAwKTsKK1NFTEVDVCAqIEZST00gdDEKKyAgIFdIRVJF IEVYSVNUUyAoU0VMRUNUIERJU1RJTkNUIGEgRlJPTSB0MiBXSEVSRSB0MS5hIDwgdDIuYSBPUkRF UiBCWSBiKTsKK0RST1AgVEFCTEUgdDEsdDI7CisKKy0tZWNobyBFbmQgb2YgNS4xIHRlc3RzLgor CiAKICMKICMgQnVnIzMzMjA0OiBJTlRPIGlzIGFsbG93ZWQgaW4gc3Vic2VsZWN0LCBjYXVzaW5n IGluY29uc2lzdGVudCByZXN1bHRzCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC90L3Zh cmlhYmxlcy1tYXN0ZXIub3B0JwotLS0gYS9teXNxbC10ZXN0L3QvdmFyaWFibGVzLW1hc3Rlci5v cHQJMjAwNy0wOS0yOCAxOTo1MToyMyArMDAwMAorKysgYi9teXNxbC10ZXN0L3QvdmFyaWFibGVz LW1hc3Rlci5vcHQJMjAwOC0wNy0yOSAxMDo0NTozOSArMDAwMApAQCAtNiw2ICs2LDUgQEAKIC0t bG9vc2Utc2tpcC1wbHVnaW4tZmFsY29uX3N5bmNvYmplY3RzCiAtLWxvb3NlLXNraXAtcGx1Z2lu LWZhbGNvbl9zeXN0ZW1fbWVtb3J5X2RldGFpbAogLS1sb29zZS1za2lwLXBsdWdpbi1mYWxjb25f c3lzdGVtX21lbW9yeV9zdW1tYXJ5Ci0tLWxvb3NlLXNraXAtcGx1Z2luLWZhbGNvbl90YWJsZXMK IC0tbG9vc2Utc2tpcC1wbHVnaW4tZmFsY29uX3RyYW5zYWN0aW9uX3N1bW1hcnkKIC0tbG9vc2Ut c2tpcC1wbHVnaW4tZmFsY29uX3RyYW5zYWN0aW9ucwoKPT09IG1vZGlmaWVkIGZpbGUgJ3Njcmlw dHMvbXlzcWxfc3lzdGVtX3RhYmxlc19maXguc3FsJwotLS0gYS9zY3JpcHRzL215c3FsX3N5c3Rl bV90YWJsZXNfZml4LnNxbAkyMDA4LTA3LTI0IDA3OjQ0OjIxICswMDAwCisrKyBiL3NjcmlwdHMv bXlzcWxfc3lzdGVtX3RhYmxlc19maXguc3FsCTIwMDgtMDgtMDcgMDM6MDU6MzMgKzAwMDAKQEAg LTIxNiw2ICsyMTYsNTIgQEAgQUxURVIgVEFCTEUgZnVuYwogICBNT0RJRlkgdHlwZSBlbnVtICgn ZnVuY3Rpb24nLCdhZ2dyZWdhdGUnKSBDT0xMQVRFIHV0ZjhfZ2VuZXJhbF9jaSBOT1QgTlVMTDsK IAogIworIyBDb252ZXJ0IG1pc2NlbGxhbmVvdXMgdGFibGVzIHRvIFVURi04LgorIworIyBUYWJs ZXMgY29taW5nIGZyb20gYSBvbGQgdmVyc2lvbiBtaWdodCBoYXZlIHRoZSAzLWJ5dGUgVW5pY29k ZQorIyBjaGFyYWN0ZXIgc2V0IGZvcm1lcmx5IGtub3duIGFzIHV0ZjguCisjCisKK0FMVEVSIFRB QkxFIGhlbHBfY2F0ZWdvcnkgQ09OVkVSVCBUTyBDSEFSQUNURVIgU0VUIHV0Zjg7CitBTFRFUiBU QUJMRSBoZWxwX2tleXdvcmQgQ09OVkVSVCBUTyBDSEFSQUNURVIgU0VUIHV0Zjg7CitBTFRFUiBU QUJMRSBoZWxwX3JlbGF0aW9uIENPTlZFUlQgVE8gQ0hBUkFDVEVSIFNFVCB1dGY4OworQUxURVIg VEFCTEUgc2VydmVycyBDT05WRVJUIFRPIENIQVJBQ1RFUiBTRVQgdXRmODsKK0FMVEVSIFRBQkxF IHRpbWVfem9uZSBDT05WRVJUIFRPIENIQVJBQ1RFUiBTRVQgdXRmODsKK0FMVEVSIFRBQkxFIHRp bWVfem9uZV9sZWFwX3NlY29uZCBDT05WRVJUIFRPIENIQVJBQ1RFUiBTRVQgdXRmODsKK0FMVEVS IFRBQkxFIHRpbWVfem9uZV9uYW1lIENPTlZFUlQgVE8gQ0hBUkFDVEVSIFNFVCB1dGY4OworQUxU RVIgVEFCTEUgdGltZV96b25lX3RyYW5zaXRpb24gQ09OVkVSVCBUTyBDSEFSQUNURVIgU0VUIHV0 Zjg7CitBTFRFUiBUQUJMRSB0aW1lX3pvbmVfdHJhbnNpdGlvbl90eXBlIENPTlZFUlQgVE8gQ0hB UkFDVEVSIFNFVCB1dGY4OworCisjIEJ1ZyMzMTI5MTogQXZvaWQgY29udmVyc2lvbiBmcm9tIHRl eHQgdG8gbWVkaXVtdGV4dAorQUxURVIgVEFCTEUgaGVscF90b3BpYworICBNT0RJRlkgZGVzY3Jp cHRpb24gdGV4dCBOT1QgTlVMTCwKKyAgTU9ESUZZIGV4YW1wbGUgdGV4dCBOT1QgTlVMTCwKK0NP TlZFUlQgVE8gQ0hBUkFDVEVSIFNFVCB1dGY4OworCisjCisjIENvbnZlcnQgbG9nIHRhYmxlcyB0 byBVVEYtOC4KKyMKKworU0VUIEBvbGRfbG9nX3N0YXRlID0gQEBnbG9iYWwuZ2VuZXJhbF9sb2c7 CitTRVQgR0xPQkFMIGdlbmVyYWxfbG9nID0gJ09GRic7CitBTFRFUiBUQUJMRSBnZW5lcmFsX2xv ZyBDT05WRVJUIFRPIENIQVJBQ1RFUiBTRVQgdXRmODsKK1NFVCBHTE9CQUwgZ2VuZXJhbF9sb2cg PSBAb2xkX2xvZ19zdGF0ZTsKKworU0VUIEBvbGRfbG9nX3N0YXRlID0gQEBnbG9iYWwuc2xvd19x dWVyeV9sb2c7CitTRVQgR0xPQkFMIHNsb3dfcXVlcnlfbG9nID0gJ09GRic7CitBTFRFUiBUQUJM RSBzbG93X2xvZyBDT05WRVJUIFRPIENIQVJBQ1RFUiBTRVQgdXRmODsKK1NFVCBHTE9CQUwgc2xv d19xdWVyeV9sb2cgPSBAb2xkX2xvZ19zdGF0ZTsKKworIworIyBDb252ZXJ0IHBsdWdpbiB0YWJs ZSB0byBVVEYtOCB3aXRoIGJpbmFyeSBjb2xsYXRpb24uCisjCisKK0FMVEVSIFRBQkxFIHBsdWdp bgorICBNT0RJRlkgbmFtZSBjaGFyKDY0KSBDT0xMQVRFIHV0ZjhfYmluIE5PVCBOVUxMIERFRkFV TFQgJycsCisgIE1PRElGWSBkbCBjaGFyKDEyOCkgQ09MTEFURSB1dGY4X2JpbiBOT1QgTlVMTCBE RUZBVUxUICcnLAorICBDT05WRVJUIFRPIENIQVJBQ1RFUiBTRVQgdXRmOCBDT0xMQVRFIHV0Zjhf YmluOworCisjCiAjIERldGVjdCB3aGV0aGVyIHdlIGhhZCBDcmVhdGVfdmlld19wcml2CiAjCiBT RVQgQGhhZENyZWF0ZVZpZXdQcml2Oj0wOwpAQCAtNDMxLDYgKzQ3NywxMyBAQCBBTFRFUiBUQUJM RSBkYiBNT0RJRlkgRXZlbnRfcHJpdiBlbnVtKCdOCiAjCiAjIEVWRU5UIHRhYmxlCiAjCisKKyMK KyMgV0FSTklORzogQmV3YXJlIHRoYXQgc29tZSBjb2x1bW5zIGFyZSBhZGRlZCBhbmQgbW9kaWZp ZWQgbXVsdGlwbGUKKyMgdGltZXMuIFdoZXRoZXIgYWRkaW5nIG9yIG1vZGlmeWluZyB0aGUgY29s dW1uLCBpdCdzIHNwZWNpZmljYXRpb24KKyMgc2hvdWxkIGFsd2F5cyBiZSB0aGUgc2FtZS4KKyMK KwogQUxURVIgVEFCTEUgZXZlbnQgRFJPUCBQUklNQVJZIEtFWTsKIEFMVEVSIFRBQkxFIGV2ZW50 IEFERCBQUklNQVJZIEtFWShkYiwgbmFtZSk7CiAjIEFkZCBzcWxfbW9kZSBjb2x1bW4ganVzdCBp biBjYXNlLgpAQCAtNDk5LDYgKzU1MiwyMCBAQCBBTFRFUiBUQUJMRSBldmVudCBBREQgYm9keV91 dGY4IGxvbmdibG9iCiAgICAgICAgICAgICAgICAgICAgICAgQUZURVIgZGJfY29sbGF0aW9uOwog QUxURVIgVEFCTEUgZXZlbnQgTU9ESUZZIGJvZHlfdXRmOCBsb25nYmxvYiBERUZBVUxUIE5VTEw7 CiAKKyMKKyMgQ29udmVydCBldmVudCB0YWJsZSB0byBVVEYtOCB3aXRoIGJpbmFyeSBjb2xsYXRp b24uCisjCisKK0FMVEVSIFRBQkxFIGV2ZW50CisgIENPTlZFUlQgVE8gQ0hBUkFDVEVSIFNFVCB1 dGY4OworQUxURVIgVEFCTEUgZXZlbnQKKyAgTU9ESUZZIHRpbWVfem9uZSBjaGFyKDY0KSBDSEFS QUNURVIgU0VUIGxhdGluMSBOT1QgTlVMTCBERUZBVUxUICdTWVNURU0nLAorICBNT0RJRlkgZGIg Y2hhcig2NCkgQ0hBUkFDVEVSIFNFVCB1dGY4IENPTExBVEUgdXRmOF9iaW4gTk9UIE5VTEwgREVG QVVMVCAnJywKKyAgTU9ESUZZIGRlZmluZXIgY2hhcig3NykgQ0hBUkFDVEVSIFNFVCB1dGY4IENP TExBVEUgdXRmOF9iaW4gTk9UIE5VTEwgREVGQVVMVCAnJywKKyAgTU9ESUZZIGNvbW1lbnQgY2hh cig2NCkgQ0hBUkFDVEVSIFNFVCB1dGY4IENPTExBVEUgdXRmOF9iaW4gTk9UIE5VTEwgREVGQVVM VCAnJywKKyAgTU9ESUZZIGNoYXJhY3Rlcl9zZXRfY2xpZW50IGNoYXIoMzIpIENIQVJBQ1RFUiBT RVQgdXRmOCBDT0xMQVRFIHV0ZjhfYmluIERFRkFVTFQgTlVMTCwKKyAgTU9ESUZZIGNvbGxhdGlv bl9jb25uZWN0aW9uIGNoYXIoMzIpIENIQVJBQ1RFUiBTRVQgdXRmOCBDT0xMQVRFIHV0ZjhfYmlu IERFRkFVTFQgTlVMTCwKKyAgTU9ESUZZIGRiX2NvbGxhdGlvbiBjaGFyKDMyKSBDSEFSQUNURVIg U0VUIHV0ZjggQ09MTEFURSB1dGY4X2JpbiBERUZBVUxUIE5VTEw7CiAKICMKICMgVFJJR0dFUiBw cml2aWxlZ2UKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvZmllbGQuaCcKLS0tIGEvc3FsL2ZpZWxk LmgJMjAwOC0wNy0yMSAwMzo1NTowOSArMDAwMAorKysgYi9zcWwvZmllbGQuaAkyMDA4LTA4LTAx IDE1OjM4OjA1ICswMDAwCkBAIC0xMyw3ICsxMyw2IEBACiAgICBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogICAgRm91bmRhdGlvbiwg SW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcg IFVTQSAqLwogCi0KIC8qCiAgIEJlY2F1c2Ugb2YgdGhlIGZ1bmN0aW9uIG5ld19maWVsZCgpIGFs bCBmaWVsZCBjbGFzc2VzIHRoYXQgaGF2ZSBzdGF0aWMKICAgdmFyaWFibGVzIG11c3QgZGVjbGFy ZSB0aGUgc2l6ZV9vZigpIG1lbWJlciBmdW5jdGlvbi4KQEAgLTUwLDcgKzQ5LDggQEAgY2xhc3Mg RmllbGQKICAgRmllbGQoY29uc3QgSXRlbSAmKTsJCQkJLyogUHJldmVudCB1c2Ugb2YgdGhlc2Ug Ki8KICAgdm9pZCBvcGVyYXRvcj0oRmllbGQgJik7CiBwdWJsaWM6Ci0gIHN0YXRpYyB2b2lkICpv cGVyYXRvciBuZXcoc2l6ZV90IHNpemUpIHtyZXR1cm4gc3FsX2FsbG9jKHNpemUpOyB9CisgIHN0 YXRpYyB2b2lkICpvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUpIHRocm93ICgpCisgIHsgcmV0dXJu IHNxbF9hbGxvYyhzaXplKTsgfQogICBzdGF0aWMgdm9pZCBvcGVyYXRvciBkZWxldGUodm9pZCAq cHRyX2FyZywgc2l6ZV90IHNpemUpIHsgVFJBU0gocHRyX2FyZywgc2l6ZSk7IH0KIAogICB1Y2hh cgkJKnB0cjsJCQkvLyBQb3NpdGlvbiB0byBmaWVsZCBpbiByZWNvcmQKQEAgLTE3MjAsNiArMTcy MCw3IEBAIHB1YmxpYzoKICAgfQogICBpbnQgcmVzZXQodm9pZCkgeyBiemVybyhwdHIsIHBhY2ts ZW5ndGgrc2l6ZW9mKHVjaGFyKikpOyByZXR1cm4gMDsgfQogICB2b2lkIHJlc2V0X2ZpZWxkcygp IHsgYnplcm8oKHVjaGFyKikgJnZhbHVlLHNpemVvZih2YWx1ZSkpOyB9CisgIHVpbnQzMiBnZXRf ZmllbGRfYnVmZmVyX3NpemUodm9pZCkgeyByZXR1cm4gdmFsdWUuYWxsb2NlZF9sZW5ndGgoKTsg fQogI2lmbmRlZiBXT1JEU19CSUdFTkRJQU4KICAgc3RhdGljCiAjZW5kaWYKCj09PSBtb2RpZmll ZCBmaWxlICdzcWwvaXRlbS5jYycKLS0tIGEvc3FsL2l0ZW0uY2MJMjAwOC0wNy0yNCAxMDowMDo1 NiArMDAwMAorKysgYi9zcWwvaXRlbS5jYwkyMDA4LTA4LTA3IDAzOjA1OjMzICswMDAwCkBAIC00 MzYsOCArNDM2LDExIEBAIHVpbnQgSXRlbTo6ZGVjaW1hbF9wcmVjaXNpb24oKSBjb25zdAogICBJ dGVtX3Jlc3VsdCByZXN0eXBlPSByZXN1bHRfdHlwZSgpOwogCiAgIGlmICgocmVzdHlwZSA9PSBE RUNJTUFMX1JFU1VMVCkgfHwgKHJlc3R5cGUgPT0gSU5UX1JFU1VMVCkpCi0gICAgcmV0dXJuIG1p bihteV9kZWNpbWFsX2xlbmd0aF90b19wcmVjaXNpb24obWF4X2xlbmd0aCwgZGVjaW1hbHMsIHVu c2lnbmVkX2ZsYWcpLAotICAgICAgICAgICAgICAgREVDSU1BTF9NQVhfUFJFQ0lTSU9OKTsKKyAg eworICAgIHVpbnQgcHJlYz0gCisgICAgICBteV9kZWNpbWFsX2xlbmd0aF90b19wcmVjaXNpb24o bWF4X2xlbmd0aCwgZGVjaW1hbHMsIHVuc2lnbmVkX2ZsYWcpOworICAgIHJldHVybiBtaW4ocHJl YywgREVDSU1BTF9NQVhfUFJFQ0lTSU9OKTsKKyAgfQogICByZXR1cm4gbWluKG1heF9sZW5ndGgs IERFQ0lNQUxfTUFYX1BSRUNJU0lPTik7CiB9CiAKQEAgLTcwMjgsOCArNzAzMSw5IEBAIGJvb2wg SXRlbV90eXBlX2hvbGRlcjo6am9pbl90eXBlcyhUSEQgKnQKICAgaWYgKEZpZWxkOjpyZXN1bHRf bWVyZ2VfdHlwZShmbGRfdHlwZSkgPT0gREVDSU1BTF9SRVNVTFQpCiAgIHsKICAgICBkZWNpbWFs cz0gbWluKG1heChkZWNpbWFscywgaXRlbS0+ZGVjaW1hbHMpLCBERUNJTUFMX01BWF9TQ0FMRSk7 Ci0gICAgaW50IHByZWNpc2lvbj0gbWluKG1heChwcmV2X2RlY2ltYWxfaW50X3BhcnQsIGl0ZW0t PmRlY2ltYWxfaW50X3BhcnQoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgKyBkZWNpbWFscywg REVDSU1BTF9NQVhfUFJFQ0lTSU9OKTsKKyAgICBpbnQgaXRlbV9pbnRfcGFydD0gaXRlbS0+ZGVj aW1hbF9pbnRfcGFydCgpOworICAgIGludCBpdGVtX3ByZWMgPSBtYXgocHJldl9kZWNpbWFsX2lu dF9wYXJ0LCBpdGVtX2ludF9wYXJ0KSArIGRlY2ltYWxzOworICAgIGludCBwcmVjaXNpb249IG1p bihpdGVtX3ByZWMsIERFQ0lNQUxfTUFYX1BSRUNJU0lPTik7CiAgICAgdW5zaWduZWRfZmxhZyY9 IGl0ZW0tPnVuc2lnbmVkX2ZsYWc7CiAgICAgbWF4X2xlbmd0aD0gbXlfZGVjaW1hbF9wcmVjaXNp b25fdG9fbGVuZ3RoKHByZWNpc2lvbiwgZGVjaW1hbHMsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkX2ZsYWcpOwoKPT09IG1vZGlmaWVkIGZp bGUgJ3NxbC9pdGVtLmgnCi0tLSBhL3NxbC9pdGVtLmgJMjAwOC0wNi0xNyAyMDowNDoxOSArMDAw MAorKysgYi9zcWwvaXRlbS5oCTIwMDgtMDgtMDEgMTU6Mzg6MDUgKzAwMDAKQEAgLTQ3Miw5ICs0 NzIsOSBAQCBjbGFzcyBJdGVtCiAgIHZpcnR1YWwgYm9vbCBpc19leHBlbnNpdmVfcHJvY2Vzc29y KHVjaGFyICphcmcpIHsgcmV0dXJuIDA7IH0KIAogcHVibGljOgotICBzdGF0aWMgdm9pZCAqb3Bl cmF0b3IgbmV3KHNpemVfdCBzaXplKQorICBzdGF0aWMgdm9pZCAqb3BlcmF0b3IgbmV3KHNpemVf dCBzaXplKSB0aHJvdyAoKQogICB7IHJldHVybiBzcWxfYWxsb2Moc2l6ZSk7IH0KLSAgc3RhdGlj IHZvaWQgKm9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSwgTUVNX1JPT1QgKm1lbV9yb290KQorICBz dGF0aWMgdm9pZCAqb3BlcmF0b3IgbmV3KHNpemVfdCBzaXplLCBNRU1fUk9PVCAqbWVtX3Jvb3Qp IHRocm93ICgpCiAgIHsgcmV0dXJuIGFsbG9jX3Jvb3QobWVtX3Jvb3QsIHNpemUpOyB9CiAgIHN0 YXRpYyB2b2lkIG9wZXJhdG9yIGRlbGV0ZSh2b2lkICpwdHIsc2l6ZV90IHNpemUpIHsgVFJBU0go cHRyLCBzaXplKTsgfQogICBzdGF0aWMgdm9pZCBvcGVyYXRvciBkZWxldGUodm9pZCAqcHRyLCBN RU1fUk9PVCAqbWVtX3Jvb3QpIHt9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL2l0ZW1fY21wZnVu Yy5jYycKLS0tIGEvc3FsL2l0ZW1fY21wZnVuYy5jYwkyMDA4LTA3LTE1IDEyOjE3OjAxICswMDAw CisrKyBiL3NxbC9pdGVtX2NtcGZ1bmMuY2MJMjAwOC0wNy0zMSAxMTozNzowNyArMDAwMApAQCAt MjIyNyw4ICsyMjI3LDExIEBAIEl0ZW1fZnVuY19pZm51bGw6OmZpeF9sZW5ndGhfYW5kX2RlYygp CiAKIHVpbnQgSXRlbV9mdW5jX2lmbnVsbDo6ZGVjaW1hbF9wcmVjaXNpb24oKSBjb25zdAogewot ICBpbnQgbWF4X2ludF9wYXJ0PW1heChhcmdzWzBdLT5kZWNpbWFsX2ludF9wYXJ0KCksYXJnc1sx XS0+ZGVjaW1hbF9pbnRfcGFydCgpKTsKLSAgcmV0dXJuIG1pbihtYXhfaW50X3BhcnQgKyBkZWNp bWFscywgREVDSU1BTF9NQVhfUFJFQ0lTSU9OKTsKKyAgaW50IGFyZzBfaW50X3BhcnQ9IGFyZ3Nb MF0tPmRlY2ltYWxfaW50X3BhcnQoKTsKKyAgaW50IGFyZzFfaW50X3BhcnQ9IGFyZ3NbMV0tPmRl Y2ltYWxfaW50X3BhcnQoKTsKKyAgaW50IG1heF9pbnRfcGFydD0gbWF4KGFyZzBfaW50X3BhcnQs IGFyZzFfaW50X3BhcnQpOworICBpbnQgcHJlY2lzaW9uPSBtYXhfaW50X3BhcnQgKyBkZWNpbWFs czsKKyAgcmV0dXJuIG1pbihwcmVjaXNpb24sIERFQ0lNQUxfTUFYX1BSRUNJU0lPTik7CiB9CiAK IApAQCAtMjQwOSw4ICsyNDEyLDkgQEAgSXRlbV9mdW5jX2lmOjpmaXhfbGVuZ3RoX2FuZF9kZWMo KQogCiB1aW50IEl0ZW1fZnVuY19pZjo6ZGVjaW1hbF9wcmVjaXNpb24oKSBjb25zdAogewotICBp bnQgcHJlY2lzaW9uPShtYXgoYXJnc1sxXS0+ZGVjaW1hbF9pbnRfcGFydCgpLGFyZ3NbMl0tPmRl Y2ltYWxfaW50X3BhcnQoKSkrCi0gICAgICAgICAgICAgICAgIGRlY2ltYWxzKTsKKyAgaW50IGFy ZzFfcHJlYz0gYXJnc1sxXS0+ZGVjaW1hbF9pbnRfcGFydCgpOworICBpbnQgYXJnMl9wcmVjPSBh cmdzWzJdLT5kZWNpbWFsX2ludF9wYXJ0KCk7CisgIGludCBwcmVjaXNpb249bWF4KGFyZzFfcHJl YyxhcmcyX3ByZWMpICsgZGVjaW1hbHM7CiAgIHJldHVybiBtaW4ocHJlY2lzaW9uLCBERUNJTUFM X01BWF9QUkVDSVNJT04pOwogfQogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL2l0ZW1fZnVuYy5j YycKLS0tIGEvc3FsL2l0ZW1fZnVuYy5jYwkyMDA4LTA3LTI0IDEwOjAwOjU2ICswMDAwCisrKyBi L3NxbC9pdGVtX2Z1bmMuY2MJMjAwOC0wOC0wNyAwMzowNTozMyArMDAwMApAQCAtMTE1Niw5ICsx MTU2LDEwIEBAIG15X2RlY2ltYWwgKkl0ZW1fZnVuY19wbHVzOjpkZWNpbWFsX29wKG0KIHZvaWQg SXRlbV9mdW5jX2FkZGl0aXZlX29wOjpyZXN1bHRfcHJlY2lzaW9uKCkKIHsKICAgZGVjaW1hbHM9 IG1heChhcmdzWzBdLT5kZWNpbWFscywgYXJnc1sxXS0+ZGVjaW1hbHMpOwotICBpbnQgbWF4X2lu dF9wYXJ0PSBtYXgoYXJnc1swXS0+ZGVjaW1hbF9wcmVjaXNpb24oKSAtIGFyZ3NbMF0tPmRlY2lt YWxzLAotICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1sxXS0+ZGVjaW1hbF9wcmVjaXNpb24o KSAtIGFyZ3NbMV0tPmRlY2ltYWxzKTsKLSAgaW50IHByZWNpc2lvbj0gbWluKG1heF9pbnRfcGFy dCArIDEgKyBkZWNpbWFscywgREVDSU1BTF9NQVhfUFJFQ0lTSU9OKTsKKyAgaW50IGFyZzFfaW50 PSBhcmdzWzBdLT5kZWNpbWFsX3ByZWNpc2lvbigpIC0gYXJnc1swXS0+ZGVjaW1hbHM7CisgIGlu dCBhcmcyX2ludD0gYXJnc1sxXS0+ZGVjaW1hbF9wcmVjaXNpb24oKSAtIGFyZ3NbMV0tPmRlY2lt YWxzOworICBpbnQgZXN0X3ByZWM9IG1heChhcmcxX2ludCwgYXJnMl9pbnQpICsgMSArIGRlY2lt YWxzOworICBpbnQgcHJlY2lzaW9uPSBtaW4oZXN0X3ByZWMsIERFQ0lNQUxfTUFYX1BSRUNJU0lP Tik7CiAKICAgLyogSW50ZWdlciBvcGVyYXRpb25zIGtlZXAgdW5zaWduZWRfZmxhZyBpZiBvbmUg b2YgYXJndW1lbnRzIGlzIHVuc2lnbmVkICovCiAgIGlmIChyZXN1bHRfdHlwZSgpID09IElOVF9S RVNVTFQpCkBAIC0xMjY5LDggKzEyNzAsOCBAQCB2b2lkIEl0ZW1fZnVuY19tdWw6OnJlc3VsdF9w cmVjaXNpb24oKQogICBlbHNlCiAgICAgdW5zaWduZWRfZmxhZz0gYXJnc1swXS0+dW5zaWduZWRf ZmxhZyAmIGFyZ3NbMV0tPnVuc2lnbmVkX2ZsYWc7CiAgIGRlY2ltYWxzPSBtaW4oYXJnc1swXS0+ ZGVjaW1hbHMgKyBhcmdzWzFdLT5kZWNpbWFscywgREVDSU1BTF9NQVhfU0NBTEUpOwotICBpbnQg cHJlY2lzaW9uPSBtaW4oYXJnc1swXS0+ZGVjaW1hbF9wcmVjaXNpb24oKSArIGFyZ3NbMV0tPmRl Y2ltYWxfcHJlY2lzaW9uKCksCi0gICAgICAgICAgICAgICAgICAgICBERUNJTUFMX01BWF9QUkVD SVNJT04pOworICB1aW50IGVzdF9wcmVjID0gYXJnc1swXS0+ZGVjaW1hbF9wcmVjaXNpb24oKSAr IGFyZ3NbMV0tPmRlY2ltYWxfcHJlY2lzaW9uKCk7CisgIHVpbnQgcHJlY2lzaW9uPSBtaW4oZXN0 X3ByZWMsIERFQ0lNQUxfTUFYX1BSRUNJU0lPTik7CiAgIG1heF9sZW5ndGg9IG15X2RlY2ltYWxf cHJlY2lzaW9uX3RvX2xlbmd0aChwcmVjaXNpb24sIGRlY2ltYWxzLHVuc2lnbmVkX2ZsYWcpOwog fQogCkBAIC0xMzE3LDggKzEzMTgsOCBAQCBteV9kZWNpbWFsICpJdGVtX2Z1bmNfZGl2OjpkZWNp bWFsX29wKG15CiAKIHZvaWQgSXRlbV9mdW5jX2Rpdjo6cmVzdWx0X3ByZWNpc2lvbigpCiB7Ci0g IHVpbnQgcHJlY2lzaW9uPW1pbihhcmdzWzBdLT5kZWNpbWFsX3ByZWNpc2lvbigpICsgcHJlY19p bmNyZW1lbnQsCi0gICAgICAgICAgICAgICAgICAgICBERUNJTUFMX01BWF9QUkVDSVNJT04pOwor ICB1aW50IGFyZ19wcmVjPSBhcmdzWzBdLT5kZWNpbWFsX3ByZWNpc2lvbigpICsgcHJlY19pbmNy ZW1lbnQ7CisgIHVpbnQgcHJlY2lzaW9uPW1pbihhcmdfcHJlYywgREVDSU1BTF9NQVhfUFJFQ0lT SU9OKTsKICAgLyogSW50ZWdlciBvcGVyYXRpb25zIGtlZXAgdW5zaWduZWRfZmxhZyBpZiBvbmUg b2YgYXJndW1lbnRzIGlzIHVuc2lnbmVkICovCiAgIGlmIChyZXN1bHRfdHlwZSgpID09IElOVF9S RVNVTFQpCiAgICAgdW5zaWduZWRfZmxhZz0gYXJnc1swXS0+dW5zaWduZWRfZmxhZyB8IGFyZ3Nb MV0tPnVuc2lnbmVkX2ZsYWc7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL215c3FsX3ByaXYuaCcK LS0tIGEvc3FsL215c3FsX3ByaXYuaAkyMDA4LTA3LTI2IDE2OjM4OjIwICswMDAwCisrKyBiL3Nx bC9teXNxbF9wcml2LmgJMjAwOC0wOC0wNyAwMzowNTozMyArMDAwMApAQCAtMjIzMyw2ICsyMjMz LDcgQEAgaW50IHdyaXRlZnJtKGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IHVjaAogaW50IGNsb3Nl ZnJtKFRBQkxFICp0YWJsZSwgYm9vbCBmcmVlX3NoYXJlKTsKIGludCByZWFkX3N0cmluZyhGaWxl IGZpbGUsIHVjaGFyKiAqdG8sIHNpemVfdCBsZW5ndGgpOwogdm9pZCBmcmVlX2Jsb2JzKFRBQkxF ICp0YWJsZSk7Cit2b2lkIGZyZWVfZmllbGRfYnVmZmVyc19sYXJnZXJfdGhhbihUQUJMRSAqdGFi bGUsIHVpbnQzMiBzaXplKTsKIGludCBzZXRfem9uZShpbnQgbnIsaW50IG1pbl96b25lLGludCBt YXhfem9uZSk7CiB1bG9uZyBjb252ZXJ0X3BlcmlvZF90b19tb250aCh1bG9uZyBwZXJpb2QpOwog dWxvbmcgY29udmVydF9tb250aF90b19wZXJpb2QodWxvbmcgbW9udGgpOwoKPT09IG1vZGlmaWVk IGZpbGUgJ3NxbC9wcm9iZXMuaCcKLS0tIGEvc3FsL3Byb2Jlcy5oCTIwMDctMDktMjEgMDc6MDk6 MzEgKzAwMDAKKysrIGIvc3FsL3Byb2Jlcy5oCTIwMDgtMDctMDggMTM6NDk6NTcgKzAwMDAKQEAg LTExLDcgKzExLDcgQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKLSNpZiBfRFRSQUNFX1ZFUlNJ T04KKyNpZiBfRFRSQUNFX1ZFUlNJT04gJiYgZGVmaW5lZChIQVZFX0RUUkFDRSkKIAogI2RlZmlu ZQlNWVNRTF9ERUxFVEVfRU5EKCkgXAogCV9fZHRyYWNlX215c3FsX19fZGVsZXRlX2VuZCgpCgo9 PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NoYXJlL2Vycm1zZy50eHQnCi0tLSBhL3NxbC9zaGFyZS9l cnJtc2cudHh0CTIwMDgtMDctMTggMTM6MzA6NTMgKzAwMDAKKysrIGIvc3FsL3NoYXJlL2Vycm1z Zy50eHQJMjAwOC0wOC0wNiAxNDozOTowMyArMDAwMApAQCAtNDcxOCw3ICs0NzE4LDcgQEAgRVJf U0xBVkVfSUdOT1JFRF9UQUJMRSAgCiAgICAgICAgIHN3ZSAiU2xhdiBTUUwgdHLvv71kZW4gaWdu b3JlcmFkZSBmcu+/vWdhbiBwZ2EgZW4gcmVwbGljYXRlLSotdGFibGUgcmVnZWwiCiBFUl9JTkNP UlJFQ1RfR0xPQkFMX0xPQ0FMX1ZBUiAgCiAgICAgICAgIGVuZyAiVmFyaWFibGUgJyUtLjE5MnMn IGlzIGEgJXMgdmFyaWFibGUiCi0gICAgICAgIHNlcmJpYW4gIkluY29ycmVjdCBmb3JlaWduIGtl eSBkZWZpbml0aW9uIGZvciAnJS0uMTkycyc6ICVzIgorICAgICAgICBzZXJiaWFuICJQcm9tZW5s aml2YSAnJS0uMTkycycgamUgJXMgcHJvbWVubGppdmEiCiAgICAgICAgIGdlciAiVmFyaWFibGUg JyUtLjE5MnMnIGlzdCBlaW5lICVzLVZhcmlhYmxlIgogICAgICAgICBubGEgIlZhcmlhYmVsZSAn JS0uMTkycycgaXMgZ2VlbiAlcyB2YXJpYWJlbGUiCiAgICAgICAgIHNwYSAiVmFyaWFibGUgJyUt LjE5MnMnIGVzIHVuYSAlcyB2YXJpYWJsZSIKCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3BfaGVh ZC5jYycKLS0tIGEvc3FsL3NwX2hlYWQuY2MJMjAwOC0wNy0yNSAxNzoyMTo1NSArMDAwMAorKysg Yi9zcWwvc3BfaGVhZC5jYwkyMDA4LTA4LTA3IDE4OjM3OjU1ICswMDAwCkBAIC00NjgsNyArNDY4 LDcgQEAgc3BfaGVhZDo6b3BlcmF0b3IgbmV3KHNpemVfdCBzaXplKSB0aHJvdwogICBpbml0X3Nx bF9hbGxvYygmb3duX3Jvb3QsIE1FTV9ST09UX0JMT0NLX1NJWkUsIE1FTV9ST09UX1BSRUFMTE9D KTsKICAgc3A9IChzcF9oZWFkICopIGFsbG9jX3Jvb3QoJm93bl9yb290LCBzaXplKTsKICAgaWYg KHNwID09IE5VTEwpCi0gICAgcmV0dXJuIE5VTEw7CisgICAgREJVR19SRVRVUk4oTlVMTCk7CiAg IHNwLT5tYWluX21lbV9yb290PSBvd25fcm9vdDsKICAgREJVR19QUklOVCgiaW5mbyIsICgibWVt X3Jvb3QgJXAiLCAmc3AtPm1lbV9yb290KSk7CiAgIERCVUdfUkVUVVJOKHNwKTsKCj09PSBtb2Rp ZmllZCBmaWxlICdzcWwvc3FsX2FjbC5jYycKLS0tIGEvc3FsL3NxbF9hY2wuY2MJMjAwOC0wNy0y NSAxNzoyMTo1NSArMDAwMAorKysgYi9zcWwvc3FsX2FjbC5jYwkyMDA4LTA4LTA3IDAzOjA1OjMz ICswMDAwCkBAIC01ODExLDcgKzU4MTEsNiBAQCBib29sIG15c3FsX2Ryb3BfdXNlcihUSEQgKnRo ZCwgTGlzdCA8TEVYCiAKICAgd2hpbGUgKCh0bXBfdXNlcl9uYW1lPSB1c2VyX2xpc3QrKykpCiAg IHsKLSAgICB1c2VyX25hbWU9IGdldF9jdXJyZW50X3VzZXIodGhkLCB0bXBfdXNlcl9uYW1lKTsK ICAgICBpZiAoISh1c2VyX25hbWU9IGdldF9jdXJyZW50X3VzZXIodGhkLCB0bXBfdXNlcl9uYW1l KSkpCiAgICAgewogICAgICAgcmVzdWx0PSBUUlVFOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9z cWxfYmFzZS5jYycKLS0tIGEvc3FsL3NxbF9iYXNlLmNjCTIwMDgtMDctMDkgMTQ6Mjc6MTggKzAw MDAKKysrIGIvc3FsL3NxbF9iYXNlLmNjCTIwMDgtMDctMjUgMTU6MTA6MTQgKzAwMDAKQEAgLTE0 NjYsNiArMTQ2Niw4IEBAIGJvb2wgY2xvc2VfdGhyZWFkX3RhYmxlKFRIRCAqdGhkLCBUQUJMRSAK ICAgICB0YWJsZS0+ZmlsZS0+ZXh0cmEoSEFfRVhUUkFfREVUQUNIX0NISUxEUkVOKTsKIAogICAg IC8qIEZyZWUgbWVtb3J5IGFuZCByZXNldCBmb3IgbmV4dCBsb29wICovCisgICAgZnJlZV9maWVs ZF9idWZmZXJzX2xhcmdlcl90aGFuKHRhYmxlLE1BWF9URENfQkxPQl9TSVpFKTsKKyAgICAKICAg ICB0YWJsZS0+ZmlsZS0+aGFfcmVzZXQoKTsKICAgICB0YWJsZV9kZWZfdW51c2VfdGFibGUodGFi bGUpOwogICB9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NxbF9lcnJvci5jYycKLS0tIGEvc3Fs L3NxbF9lcnJvci5jYwkyMDA4LTAyLTE5IDEyOjU5OjE5ICswMDAwCisrKyBiL3NxbC9zcWxfZXJy b3IuY2MJMjAwOC0wNy0yOSAyMjowMzo1NyArMDAwMApAQCAtOTcsMTIgKzk3LDkgQEAgdm9pZCBt eXNxbF9yZXNldF9lcnJvcnMoVEhEICp0aGQsIGJvb2wgZgogICAgIGxldmVsCQlTZXZlcml0eSBv ZiB3YXJuaW5nIChub3RlLCB3YXJuaW5nLCBlcnJvciAuLi4pCiAgICAgY29kZQkJRXJyb3IgbnVt YmVyCiAgICAgbXNnCQkJQ2xlYXIgZXJyb3IgbWVzc2FnZQotICAgIAotICBSRVRVUk4KLSAgICBw b2ludGVyIG9uIE1ZU1FMX0VSUk9SIG9iamVjdAogKi8KIAotTVlTUUxfRVJST1IgKnB1c2hfd2Fy bmluZyhUSEQgKnRoZCwgTVlTUUxfRVJST1I6OmVudW1fd2FybmluZ19sZXZlbCBsZXZlbCwgCit2 b2lkIHB1c2hfd2FybmluZyhUSEQgKnRoZCwgTVlTUUxfRVJST1I6OmVudW1fd2FybmluZ19sZXZl bCBsZXZlbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQgY29kZSwgY29uc3QgY2hh ciAqbXNnKQogewogICBNWVNRTF9FUlJPUiAqZXJyPSAwOwpAQCAtMTExLDcgKzEwOCw3IEBAIE1Z U1FMX0VSUk9SICpwdXNoX3dhcm5pbmcoVEhEICp0aGQsIE1ZU1EKIAogICBpZiAobGV2ZWwgPT0g TVlTUUxfRVJST1I6OldBUk5fTEVWRUxfTk9URSAmJgogICAgICAgISh0aGQtPm9wdGlvbnMgJiBP UFRJT05fU1FMX05PVEVTKSkKLSAgICBEQlVHX1JFVFVSTigwKTsKKyAgICBEQlVHX1ZPSURfUkVU VVJOOwogCiAgIGlmICh0aGQtPnF1ZXJ5X2lkICE9IHRoZC0+d2Fybl9pZCAmJiAhdGhkLT5zcGNv bnQpCiAgICAgbXlzcWxfcmVzZXRfZXJyb3JzKHRoZCwgMCk7CkBAIC0xMzgsMTIgKzEzNSwxMiBA QCBNWVNRTF9FUlJPUiAqcHVzaF93YXJuaW5nKFRIRCAqdGhkLCBNWVNRCiAgIH0KIAogICBpZiAo dGhkLT5oYW5kbGVfZXJyb3IoY29kZSwgbXNnLCBsZXZlbCkpCi0gICAgREJVR19SRVRVUk4oTlVM TCk7CisgICAgREJVR19WT0lEX1JFVFVSTjsKIAogICBpZiAodGhkLT5zcGNvbnQgJiYKICAgICAg IHRoZC0+c3Bjb250LT5oYW5kbGVfZXJyb3IoY29kZSwgbGV2ZWwsIHRoZCkpCiAgIHsKLSAgICBE QlVHX1JFVFVSTihOVUxMKTsKKyAgICBEQlVHX1ZPSURfUkVUVVJOOwogICB9CiAgIHF1ZXJ5X2Nh Y2hlX2Fib3J0KCZ0aGQtPnF1ZXJ5X2NhY2hlX3Rscyk7CiAKQEAgLTE1Niw3ICsxNTMsNyBAQCBN WVNRTF9FUlJPUiAqcHVzaF93YXJuaW5nKFRIRCAqdGhkLCBNWVNRCiAgIH0KICAgdGhkLT53YXJu X2NvdW50Wyh1aW50KSBsZXZlbF0rKzsKICAgdGhkLT50b3RhbF93YXJuX2NvdW50Kys7Ci0gIERC VUdfUkVUVVJOKGVycik7CisgIERCVUdfVk9JRF9SRVRVUk47CiB9CiAKIC8qCgo9PT0gbW9kaWZp ZWQgZmlsZSAnc3FsL3NxbF9lcnJvci5oJwotLS0gYS9zcWwvc3FsX2Vycm9yLmgJMjAwOC0wNi0x MiAxOTowNDo1MiArMDAwMAorKysgYi9zcWwvc3FsX2Vycm9yLmgJMjAwOC0wNy0yOSAyMjowMzo1 NyArMDAwMApAQCAtMzUsOCArMzUsOCBAQCBwcml2YXRlOgogICB2b2lkIHNldF9tc2coVEhEICp0 aGQsIGNvbnN0IGNoYXIgKm1zZ19hcmcpOwogfTsKIAotTVlTUUxfRVJST1IgKnB1c2hfd2Fybmlu ZyhUSEQgKnRoZCwgTVlTUUxfRVJST1I6OmVudW1fd2FybmluZ19sZXZlbCBsZXZlbCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludCBjb2RlLCBjb25zdCBjaGFyICptc2cpOwordm9pZCBw dXNoX3dhcm5pbmcoVEhEICp0aGQsIE1ZU1FMX0VSUk9SOjplbnVtX3dhcm5pbmdfbGV2ZWwgbGV2 ZWwsCisgICAgICAgICAgICAgICAgICB1aW50IGNvZGUsIGNvbnN0IGNoYXIgKm1zZyk7CiB2b2lk IHB1c2hfd2FybmluZ19wcmludGYoVEhEICp0aGQsIE1ZU1FMX0VSUk9SOjplbnVtX3dhcm5pbmdf bGV2ZWwgbGV2ZWwsCiAJCQkgdWludCBjb2RlLCBjb25zdCBjaGFyICpmb3JtYXQsIC4uLik7CiB2 b2lkIG15c3FsX3Jlc2V0X2Vycm9ycyhUSEQgKnRoZCwgYm9vbCBmb3JjZSk7Cgo9PT0gbW9kaWZp ZWQgZmlsZSAnc3FsL3NxbF9sZXguaCcKLS0tIGEvc3FsL3NxbF9sZXguaAkyMDA4LTA3LTE4IDEz OjMwOjUzICswMDAwCisrKyBiL3NxbC9zcWxfbGV4LmgJMjAwOC0wOC0wMSAxNTozODowNSArMDAw MApAQCAtNDIyLDExICs0MjIsMTEgQEAgcHVibGljOgogICBib29sIG5vX3RhYmxlX25hbWVzX2Fs bG93ZWQ7IC8qIHVzZWQgZm9yIGdsb2JhbCBvcmRlciBieSAqLwogICBib29sIG5vX2Vycm9yOyAv KiBzdXBwcmVzcyBlcnJvciBtZXNzYWdlIChjb252ZXJ0IGl0IHRvIHdhcm5pbmdzKSAqLwogCi0g IHN0YXRpYyB2b2lkICpvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUpCisgIHN0YXRpYyB2b2lkICpv cGVyYXRvciBuZXcoc2l6ZV90IHNpemUpIHRocm93ICgpCiAgIHsKICAgICByZXR1cm4gc3FsX2Fs bG9jKHNpemUpOwogICB9Ci0gIHN0YXRpYyB2b2lkICpvcGVyYXRvciBuZXcoc2l6ZV90IHNpemUs IE1FTV9ST09UICptZW1fcm9vdCkKKyAgc3RhdGljIHZvaWQgKm9wZXJhdG9yIG5ldyhzaXplX3Qg c2l6ZSwgTUVNX1JPT1QgKm1lbV9yb290KSB0aHJvdyAoKQogICB7IHJldHVybiAodm9pZCopIGFs bG9jX3Jvb3QobWVtX3Jvb3QsICh1aW50KSBzaXplKTsgfQogICBzdGF0aWMgdm9pZCBvcGVyYXRv ciBkZWxldGUodm9pZCAqcHRyLHNpemVfdCBzaXplKSB7IFRSQVNIKHB0ciwgc2l6ZSk7IH0KICAg c3RhdGljIHZvaWQgb3BlcmF0b3IgZGVsZXRlKHZvaWQgKnB0ciwgTUVNX1JPT1QgKm1lbV9yb290 KSB7fQoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9zcWxfbGlzdC5oJwotLS0gYS9zcWwvc3FsX2xp c3QuaAkyMDA4LTAzLTI4IDE3OjQ3OjUzICswMDAwCisrKyBiL3NxbC9zcWxfbGlzdC5oCTIwMDgt MDgtMDEgMTU6Mzg6MDUgKzAwMDAKQEAgLTI5LDcgKzI5LDcgQEAgcHVibGljOgogICB7CiAgICAg cmV0dXJuIHNxbF9hbGxvYyhzaXplKTsKICAgfQotICBzdGF0aWMgdm9pZCAqb3BlcmF0b3IgbmV3 W10oc2l6ZV90IHNpemUpCisgIHN0YXRpYyB2b2lkICpvcGVyYXRvciBuZXdbXShzaXplX3Qgc2l6 ZSkgdGhyb3cgKCkKICAgewogICAgIHJldHVybiBzcWxfYWxsb2Moc2l6ZSk7CiAgIH0KQEAgLTQ1 MCw3ICs0NTAsNyBAQCBwdWJsaWM6CiBzdHJ1Y3QgaWxpbmsKIHsKICAgc3RydWN0IGlsaW5rICoq cHJldiwqbmV4dDsKLSAgc3RhdGljIHZvaWQgKm9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSkKKyAg c3RhdGljIHZvaWQgKm9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSkgdGhyb3cgKCkKICAgewogICAg IHJldHVybiAodm9pZCopbXlfbWFsbG9jKCh1aW50KXNpemUsIE1ZRihNWV9XTUUgfCBNWV9GQUUg fCBNRV9GQVRBTEVSUk9SKSk7CiAgIH0KCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3FsX3BhcnNl LmNjJwotLS0gYS9zcWwvc3FsX3BhcnNlLmNjCTIwMDgtMDctMjYgMTY6Mzg6MjAgKzAwMDAKKysr IGIvc3FsL3NxbF9wYXJzZS5jYwkyMDA4LTA4LTA4IDEzOjM0OjM1ICswMDAwCkBAIC00NDQwLDEw ICs0NDQwLDEwIEBAIGNyZWF0ZV9zcF9lcnJvcjoKICAgICAgIH0KICAgICAgIGJyZWFrOwogICAg IH0KLSNpZm5kZWYgREJVR19PRkYKICAgY2FzZSBTUUxDT01fU0hPV19QUk9DX0NPREU6CiAgIGNh c2UgU1FMQ09NX1NIT1dfRlVOQ19DT0RFOgogICAgIHsKKyNpZm5kZWYgREJVR19PRkYKICAgICAg IHNwX2hlYWQgKnNwOwogCiAgICAgICBpZiAobGV4LT5zcWxfY29tbWFuZCA9PSBTUUxDT01fU0hP V19QUk9DX0NPREUpCkBAIC00NDYwLDggKzQ0NjAsMTIgQEAgY3JlYXRlX3NwX2Vycm9yOgogICAg ICAgICBnb3RvIGVycm9yOwogICAgICAgfQogICAgICAgYnJlYWs7Ci0gICAgfQorI2Vsc2UKKyAg ICAgIG15X2Vycm9yKEVSX0ZFQVRVUkVfRElTQUJMRUQsIE1ZRigwKSwKKyAgICAgICAgICAgICAg ICJTSE9XIFBST0NFRFVSRXxGVU5DVElPTiBDT0RFIiwgIi0td2l0aC1kZWJ1ZyIpOworICAgICAg Z290byBlcnJvcjsKICNlbmRpZiAvLyBpZm5kZWYgREJVR19PRkYKKyAgICB9CiAgIGNhc2UgU1FM Q09NX1NIT1dfQ1JFQVRFX1RSSUdHRVI6CiAgICAgewogICAgICAgaWYgKGxleC0+c3BuYW1lLT5t X25hbWUubGVuZ3RoID4gTkFNRV9MRU4pCkBAIC02NjY3LDE1ICs2NjcxLDI0IEBAIGJvb2wgcmVs b2FkX2FjbF9hbmRfY2FjaGUoVEhEICp0aGQsIHVsb24KICAgICAgIHRoZC0+c3RvcmVfZ2xvYmFs cygpOwogICAgICAgbGV4X3N0YXJ0KHRoZCk7CiAgICAgfQorICAgIAogICAgIGlmICh0aGQpCiAg ICAgewotICAgICAgaWYgKGFjbF9yZWxvYWQodGhkKSkKLSAgICAgICAgcmVzdWx0PSAxOwotICAg ICAgaWYgKGdyYW50X3JlbG9hZCh0aGQpKQorICAgICAgYm9vbCByZWxvYWRfYWNsX2ZhaWxlZD0g YWNsX3JlbG9hZCh0aGQpOworICAgICAgYm9vbCByZWxvYWRfZ3JhbnRzX2ZhaWxlZD0gZ3JhbnRf cmVsb2FkKHRoZCk7CisgICAgICBib29sIHJlbG9hZF9zZXJ2ZXJzX2ZhaWxlZD0gc2VydmVyc19y ZWxvYWQodGhkKTsKKyAgICAgIAorICAgICAgaWYgKHJlbG9hZF9hY2xfZmFpbGVkIHx8IHJlbG9h ZF9ncmFudHNfZmFpbGVkIHx8IHJlbG9hZF9zZXJ2ZXJzX2ZhaWxlZCkKKyAgICAgIHsKICAgICAg ICAgcmVzdWx0PSAxOwotICAgICAgaWYgKHNlcnZlcnNfcmVsb2FkKHRoZCkpCi0gICAgICAgIHJl c3VsdD0gMTsgLyogcHVyZWNvdjogaW5zcGVjdGVkICovCisgICAgICAgIC8qCisgICAgICAgICAg V2hlbiBhbiBlcnJvciBpcyByZXR1cm5lZCwgbXlfbWVzc2FnZSBtYXkgaGF2ZSBub3QgYmVlbiBj YWxsZWQgYW5kCisgICAgICAgICAgdGhlIGNsaWVudCB3aWxsIGhhbmcgd2FpdGluZyBmb3IgYSBy ZXNwb25zZS4KKyAgICAgICAgKi8KKyAgICAgICAgbXlfZXJyb3IoRVJfVU5LTk9XTl9FUlJPUiwg TVlGKDApLCAiRkxVU0ggUFJJVklMRUdFUyBmYWlsZWQiKTsKKyAgICAgIH0KICAgICB9CisKICAg ICBpZiAodG1wX3RoZCkKICAgICB7CiAgICAgICBkZWxldGUgdG1wX3RoZDsKQEAgLTY3NTYsOCAr Njc2OSwxMCBAQCBib29sIHJlbG9hZF9hY2xfYW5kX2NhY2hlKFRIRCAqdGhkLCB1bG9uCiAgICAg ICB0bXBfd3JpdGVfdG9fYmlubG9nPSAwOwogICAgICAgaWYgKGxvY2tfZ2xvYmFsX3JlYWRfbG9j ayh0aGQpKQogCXJldHVybiAxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBLaWxs ZWQKLSAgICAgIHJlc3VsdD0gY2xvc2VfY2FjaGVkX3RhYmxlcyh0aGQsIHRhYmxlcywgRkFMU0Us IChvcHRpb25zICYgUkVGUkVTSF9GQVNUKSA/Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRkFMU0UgOiBUUlVFKTsKKyAgICAgIGlmIChjbG9zZV9jYWNoZWRfdGFibGVzKHRoZCwg dGFibGVzLCBGQUxTRSwgKG9wdGlvbnMgJiBSRUZSRVNIX0ZBU1QpID8KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBGQUxTRSA6IFRSVUUpKQorICAgICAgICAgIHJlc3VsdD0gMTsK KyAgICAgIAogICAgICAgaWYgKG1ha2VfZ2xvYmFsX3JlYWRfbG9ja19ibG9ja19jb21taXQodGhk KSkgLy8gS2lsbGVkCiAgICAgICB7CiAgICAgICAgIC8qIERvbid0IGxlYXZlIHRoaW5ncyBpbiBh IGhhbGYtbG9ja2VkIHN0YXRlICovCkBAIC02ODE5LDggKzY4MzQsOCBAQCBib29sIHJlbG9hZF9h Y2xfYW5kX2NhY2hlKFRIRCAqdGhkLCB1bG9uCiAjaWZkZWYgT1BFTlNTTAogICAgaWYgKG9wdGlv bnMgJiBSRUZSRVNIX0RFU19LRVlfRklMRSkKICAgIHsKLSAgICAgaWYgKGRlc19rZXlfZmlsZSkK LSAgICAgICByZXN1bHQ9bG9hZF9kZXNfa2V5X2ZpbGUoZGVzX2tleV9maWxlKTsKKyAgICAgaWYg KGRlc19rZXlfZmlsZSAmJiBsb2FkX2Rlc19rZXlfZmlsZShkZXNfa2V5X2ZpbGUpKQorICAgICAg ICAgcmVzdWx0PSAxOwogICAgfQogI2VuZGlmCiAjaWZkZWYgSEFWRV9SRVBMSUNBVElPTgoKPT09 IG1vZGlmaWVkIGZpbGUgJ3NxbC9zcWxfc2VsZWN0LmNjJwotLS0gYS9zcWwvc3FsX3NlbGVjdC5j YwkyMDA4LTA3LTI1IDE3OjIxOjU1ICswMDAwCisrKyBiL3NxbC9zcWxfc2VsZWN0LmNjCTIwMDgt MDgtMDcgMDM6MDU6MzMgKzAwMDAKQEAgLTg2ODcsNiArODY4NywxMiBAQCB2b2lkIEpPSU46OmNs ZWFudXAoYm9vbCBmdWxsKQogICAgIGlmICh0bXBfam9pbikKICAgICAgIHRtcF90YWJsZV9wYXJh bS5jb3B5X2ZpZWxkPSAwOwogICAgIGdyb3VwX2ZpZWxkcy5kZWxldGVfZWxlbWVudHMoKTsKKyAg ICAvKiAKKyAgICAgIEVuc3VyZSB0aGF0IHRoZSBhYm92ZSBkZWxldGVfZWxlbWVudHMoKSB3b3Vs ZCBub3QgYmUgY2FsbGVkCisgICAgICB0d2ljZSBmb3IgdGhlIHNhbWUgbGlzdC4KKyAgICAqLwor ICAgIGlmICh0bXBfam9pbiAmJiB0bXBfam9pbiAhPSB0aGlzKQorICAgICAgdG1wX2pvaW4tPmdy b3VwX2ZpZWxkcz0gZ3JvdXBfZmllbGRzOwogICAgIC8qCiAgICAgICBXZSBjYW4ndCBjYWxsIGRl bGV0ZV9lbGVtZW50cygpIG9uIGNvcHlfZnVuY3MgYXMgdGhpcyB3aWxsIGNhdXNlCiAgICAgICBw cm9ibGVtcyBpbiBmcmVlX2VsZW1lbnRzKCkgYXMgc29tZSBvZiB0aGUgZWxlbWVudHMgYXJlIHRo ZW4gZGVsZXRlZC4KCj09PSBtb2RpZmllZCBmaWxlICdzcWwvc3FsX3N0cmluZy5oJwotLS0gYS9z cWwvc3FsX3N0cmluZy5oCTIwMDgtMDQtMjEgMDc6MzA6MzkgKzAwMDAKKysrIGIvc3FsL3NxbF9z dHJpbmcuaAkyMDA4LTA4LTAxIDE1OjM4OjA1ICswMDAwCkBAIC03NSw3ICs3NSw3IEBAIHB1Ymxp YzoKICAgICBBbGxvY2VkX2xlbmd0aD1zdHIuQWxsb2NlZF9sZW5ndGg7IGFsbG9jZWQ9MDsgCiAg ICAgc3RyX2NoYXJzZXQ9c3RyLnN0cl9jaGFyc2V0OwogICB9Ci0gIHN0YXRpYyB2b2lkICpvcGVy YXRvciBuZXcoc2l6ZV90IHNpemUsIE1FTV9ST09UICptZW1fcm9vdCkKKyAgc3RhdGljIHZvaWQg Km9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSwgTUVNX1JPT1QgKm1lbV9yb290KSB0aHJvdyAoKQog ICB7IHJldHVybiAodm9pZCopIGFsbG9jX3Jvb3QobWVtX3Jvb3QsICh1aW50KSBzaXplKTsgfQog ICBzdGF0aWMgdm9pZCBvcGVyYXRvciBkZWxldGUodm9pZCAqcHRyX2FyZyxzaXplX3Qgc2l6ZSkK ICAgeyBUUkFTSChwdHJfYXJnLCBzaXplKTsgfQoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC9zcWxf eWFjYy55eScKLS0tIGEvc3FsL3NxbF95YWNjLnl5CTIwMDgtMDctMjUgMTc6MjE6NTUgKzAwMDAK KysrIGIvc3FsL3NxbF95YWNjLnl5CTIwMDgtMDgtMDcgMTg6Mzc6NTUgKzAwMDAKQEAgLTIwMjQs NyArMjAyNCwxMCBAQCBvcHRfZXZfc3RhdHVzOgogZXZfc3RhcnRzOgogICAgICAgICAgIC8qIGVt cHR5ICovCiAgICAgICAgICAgewotICAgICAgICAgICAgTGV4LT5ldmVudF9wYXJzZV9kYXRhLT5p dGVtX3N0YXJ0cz0gbmV3IEl0ZW1fZnVuY19ub3dfbG9jYWwoKTsKKyAgICAgICAgICAgIEl0ZW0g Kml0ZW09IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfbm93X2xvY2FsKCk7CisgICAg ICAgICAgICBpZiAoaXRlbSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwor ICAgICAgICAgICAgTGV4LT5ldmVudF9wYXJzZV9kYXRhLT5pdGVtX3N0YXJ0cz0gaXRlbTsKICAg ICAgICAgICB9CiAgICAgICAgIHwgU1RBUlRTX1NZTSBleHByCiAgICAgICAgICAgewpAQCAtMjE3 MSw2ICsyMTc0LDggQEAgc3BfbmFtZToKICAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICQkPSBuZXcgc3BfbmFtZSgkMSwgJDMsIHRydWUpOwor ICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CiAgICAgICAgICAgICAkJC0+aW5pdF9xbmFtZShZWVRIRCk7CiAgICAgICAgICAgfQogICAgICAg ICB8IGlkZW50CkBAIC0yMTg1LDggKzIxOTAsOSBAQCBzcF9uYW1lOgogICAgICAgICAgICAgaWYg KGxleC0+Y29weV9kYl90bygmZGIuc3RyLCAmZGIubGVuZ3RoKSkKICAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKICAgICAgICAgICAgICQkPSBuZXcgc3BfbmFtZShkYiwgJDEsIGZhbHNlKTsK LSAgICAgICAgICAgIGlmICgkJCkKLSAgICAgICAgICAgICAgJCQtPmluaXRfcW5hbWUodGhkKTsK KyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OworICAgICAgICAgICAgJCQtPmluaXRfcW5hbWUodGhkKTsKICAgICAgICAgICB9CiAgICAgICAg IDsKIApAQCAtMjQyMyw2ICsyNDI5LDcgQEAgc3BfZGVjbDoKICAgICAgICAgICB0eXBlCiAgICAg ICAgICAgc3Bfb3B0X2RlZmF1bHQKICAgICAgICAgICB7CisgICAgICAgICAgICBUSEQgKnRoZD0g WVlUSEQ7CiAgICAgICAgICAgICBMRVggKmxleD0gTGV4OwogICAgICAgICAgICAgc3BfcGNvbnRl eHQgKnBjdHg9IGxleC0+c3Bjb250OwogICAgICAgICAgICAgdWludCBudW1fdmFycz0gcGN0eC0+ Y29udGV4dF92YXJfY291bnQoKTsKQEAgLTI0MzEsNyArMjQzOCw5IEBAIHNwX2RlY2w6CiAgICAg ICAgICAgICAKICAgICAgICAgICAgIGlmICghZGZsdF92YWx1ZV9pdGVtKQogICAgICAgICAgICAg ewotICAgICAgICAgICAgICBkZmx0X3ZhbHVlX2l0ZW09IG5ldyBJdGVtX251bGwoKTsKKyAgICAg ICAgICAgICAgZGZsdF92YWx1ZV9pdGVtPSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1fbnVsbCgp OworICAgICAgICAgICAgICBpZiAoZGZsdF92YWx1ZV9pdGVtID09IE5VTEwpCisgICAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICAgICAgLyogUVEgU2V0IHRvIHRoZSB2YXJf dHlwZSB3aXRoIG51bGxfdmFsdWU/ICovCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKQEAg LTI0NTcsMTAgKzI0NjYsMTcgQEAgc3BfZGVjbDoKICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAvKiBUaGUgbGFzdCBpbnN0cnVjdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgZnJlZWluZyBMRVgu ICovCiAKLSAgICAgICAgICAgICAgbGV4LT5zcGhlYWQtPmFkZF9pbnN0cigKLSAgICAgICAgICAg ICAgICBuZXcgc3BfaW5zdHJfc2V0KGxleC0+c3BoZWFkLT5pbnN0cnVjdGlvbnMoKSwgcGN0eCwg dmFyX2lkeCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRmbHRfdmFsdWVfaXRl bSwgdmFyX3R5cGUsIGxleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpID09 IG51bV92YXJzIC0gMSkpKTsKKyAgICAgICAgICAgICAgc3BfaW5zdHJfc2V0ICppcz0gbmV3IHNw X2luc3RyX3NldChsZXgtPnNwaGVhZC0+aW5zdHJ1Y3Rpb25zKCksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGN0eCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJfaWR4LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRmbHRfdmFsdWVfaXRlbSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJfdHlwZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXgsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGkgPT0gbnVtX3Zh cnMgLSAxKSk7CisgICAgICAgICAgICAgIGlmIChpcyA9PSBOVUxMKQorICAgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CisKKyAgICAgICAgICAgICAgbGV4LT5zcGhlYWQtPmFkZF9pbnN0cihp cyk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHBjdHgtPmRlY2xhcmVfdmFyX2JvdW5k YXJ5KDApOwpAQCAtMjYxMiw2ICsyNjI4LDggQEAgc3BfY29uZDoKICAgICAgICAgICB1bG9uZ19u dW0KICAgICAgICAgICB7IC8qIG15c3FsIGVycm5vICovCiAgICAgICAgICAgICAkJD0gKHNwX2Nv bmRfdHlwZV90ICopWVlUSEQtPmFsbG9jKHNpemVvZihzcF9jb25kX3R5cGVfdCkpOworICAgICAg ICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAg ICAgICAgICAkJC0+dHlwZT0gc3BfY29uZF90eXBlX3Q6Om51bWJlcjsKICAgICAgICAgICAgICQk LT5teXNxbGVycj0gJDE7CiAgICAgICAgICAgfQpAQCAtMjYyMyw2ICsyNjQxLDggQEAgc3BfY29u ZDoKICAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICQkPSAoc3BfY29uZF90eXBlX3QgKilZWVRIRC0+YWxsb2Moc2l6ZW9mKHNwX2NvbmRfdHlw ZV90KSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxf WVlBQk9SVDsKICAgICAgICAgICAgICQkLT50eXBlPSBzcF9jb25kX3R5cGVfdDo6c3RhdGU7CiAg ICAgICAgICAgICBtZW1jcHkoJCQtPnNxbHN0YXRlLCAkMy5zdHIsIDUpOwogICAgICAgICAgICAg JCQtPnNxbHN0YXRlWzVdPSAnXDAnOwpAQCAtMjY1MSwxNiArMjY3MSwyMiBAQCBzcF9oY29uZDoK ICAgICAgICAgfCBTUUxXQVJOSU5HX1NZTSAvKiBTUUxTVEFURXMgMDE/Pz8gKi8KICAgICAgICAg ICB7CiAgICAgICAgICAgICAkJD0gKHNwX2NvbmRfdHlwZV90ICopWVlUSEQtPmFsbG9jKHNpemVv ZihzcF9jb25kX3R5cGVfdCkpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAg ICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICAkJC0+dHlwZT0gc3BfY29uZF90eXBl X3Q6Ondhcm5pbmc7CiAgICAgICAgICAgfQogICAgICAgICB8IG5vdCBGT1VORF9TWU0gLyogU1FM U1RBVEVzIDAyPz8/ICovCiAgICAgICAgICAgewogICAgICAgICAgICAgJCQ9IChzcF9jb25kX3R5 cGVfdCAqKVlZVEhELT5hbGxvYyhzaXplb2Yoc3BfY29uZF90eXBlX3QpKTsKKyAgICAgICAgICAg IGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAg ICAgJCQtPnR5cGU9IHNwX2NvbmRfdHlwZV90Ojpub3Rmb3VuZDsKICAgICAgICAgICB9CiAgICAg ICAgIHwgU1FMRVhDRVBUSU9OX1NZTSAvKiBBbGwgb3RoZXIgU1FMU1RBVEVzICovCiAgICAgICAg ICAgewogICAgICAgICAgICAgJCQ9IChzcF9jb25kX3R5cGVfdCAqKVlZVEhELT5hbGxvYyhzaXpl b2Yoc3BfY29uZF90eXBlX3QpKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgJCQtPnR5cGU9IHNwX2NvbmRfdHlw ZV90OjpleGNlcHRpb247CiAgICAgICAgICAgfQogICAgICAgICA7CkBAIC01MTMzLDcgKzUxNTks MTIgQEAgYXR0cmlidXRlOgogICAgICAgICAgICAgTGV4LT5hbHRlcl9pbmZvLmZsYWdzfD0gQUxU RVJfQ09MVU1OX0RFRkFVTFQ7CiAgICAgICAgICAgfQogICAgICAgICB8IE9OIFVQREFURV9TWU0g Tk9XX1NZTSBvcHRpb25hbF9icmFjZXMgCi0gICAgICAgICAgeyBMZXgtPm9uX3VwZGF0ZV92YWx1 ZT0gbmV3IEl0ZW1fZnVuY19ub3dfbG9jYWwoKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAg IEl0ZW0gKml0ZW09IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfbm93X2xvY2FsKCk7 CisgICAgICAgICAgICBpZiAoaXRlbSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOworICAgICAgICAgICAgTGV4LT5vbl91cGRhdGVfdmFsdWU9IGl0ZW07CisgICAgICAgICAg fQogICAgICAgICB8IEFVVE9fSU5DIHsgTGV4LT50eXBlfD0gQVVUT19JTkNSRU1FTlRfRkxBRyB8 IE5PVF9OVUxMX0ZMQUc7IH0KICAgICAgICAgfCBTRVJJQUxfU1lNIERFRkFVTFQgVkFMVUVfU1lN CiAgICAgICAgICAgeyAKQEAgLTUxNzcsNyArNTIwOCwxMSBAQCBhdHRyaWJ1dGU6CiAKIG5vd19v cl9zaWduZWRfbGl0ZXJhbDoKICAgICAgICAgICBOT1dfU1lNIG9wdGlvbmFsX2JyYWNlcwotICAg ICAgICAgIHsgJCQ9IG5ldyBJdGVtX2Z1bmNfbm93X2xvY2FsKCk7IH0KKyAgICAgICAgICB7Cisg ICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19ub3dfbG9jYWwo KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBzaWduZWRfbGl0ZXJhbAogICAgICAgICAgIHsg JCQ9JDE7IH0KICAgICAgICAgOwpAQCAtNTU1OSw3ICs1NTk0LDEyIEBAIGtleV9saXN0OgogICAg ICAgICA7CiAKIGtleV9wYXJ0OgotICAgICAgICAgIGlkZW50IHsgJCQ9bmV3IEtleV9wYXJ0X3Nw ZWMoJDEsIDApOyB9CisgICAgICAgICAgaWRlbnQKKyAgICAgICAgICB7CisgICAgICAgICAgICAk JD0gbmV3IEtleV9wYXJ0X3NwZWMoJDEsIDApOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwp CisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IGlk ZW50ICcoJyBOVU0gJyknCiAgICAgICAgICAgewogICAgICAgICAgICAgaW50IGtleV9wYXJ0X2xl bj0gYXRvaSgkMy5zdHIpOwpAQCAtNTU2Nyw3ICs1NjA3LDkgQEAga2V5X3BhcnQ6CiAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgIG15X2Vycm9yKEVSX0tFWV9QQVJUXzAsIE1ZRigwKSwgJDEu c3RyKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICQkPW5ldyBLZXlfcGFydF9zcGVjKCQx LCAodWludCkga2V5X3BhcnRfbGVuKTsKKyAgICAgICAgICAgICQkPSBuZXcgS2V5X3BhcnRfc3Bl YygkMSwgKHVpbnQpIGtleV9wYXJ0X2xlbik7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkK KyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIDsKIApA QCAtNTk0Niw3ICs1OTg4LDcgQEAgcmVvcmdfcGFydGl0aW9uX3J1bGU6CiAgICAgICAgICAgICBs ZXgtPnBhcnRfaW5mbz0gbmV3IHBhcnRpdGlvbl9pbmZvKCk7CiAgICAgICAgICAgICBpZiAoIWxl eC0+cGFydF9pbmZvKQogICAgICAgICAgICAgewotICAgICAgICAgICAgbWVtX2FsbG9jX2Vycm9y KHNpemVvZihwYXJ0aXRpb25faW5mbykpOworICAgICAgICAgICAgICBtZW1fYWxsb2NfZXJyb3Io c2l6ZW9mKHBhcnRpdGlvbl9pbmZvKSk7CiAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAg ICAgICAgICAgICB9CiAgICAgICAgICAgICBsZXgtPm5vX3dyaXRlX3RvX2JpbmxvZz0gJDM7CkBA IC02MDQ5LDggKzYwOTEsMTAgQEAgYWx0ZXJfbGlzdF9pdGVtOgogICAgICAgICB8IERST1Agb3B0 X2NvbHVtbiBmaWVsZF9pZGVudCBvcHRfcmVzdHJpY3QKICAgICAgICAgICB7CiAgICAgICAgICAg ICBMRVggKmxleD1MZXg7Ci0gICAgICAgICAgICBsZXgtPmFsdGVyX2luZm8uZHJvcF9saXN0LnB1 c2hfYmFjayhuZXcgQWx0ZXJfZHJvcChBbHRlcl9kcm9wOjpDT0xVTU4sCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMy5zdHIp KTsKKyAgICAgICAgICAgIEFsdGVyX2Ryb3AgKmFkPSBuZXcgQWx0ZXJfZHJvcChBbHRlcl9kcm9w OjpDT0xVTU4sICQzLnN0cik7CisgICAgICAgICAgICBpZiAoYWQgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICAgIGxleC0+YWx0ZXJfaW5mby5kcm9wX2xp c3QucHVzaF9iYWNrKGFkKTsKICAgICAgICAgICAgIGxleC0+YWx0ZXJfaW5mby5mbGFnc3w9IEFM VEVSX0RST1BfQ09MVU1OOwogICAgICAgICAgIH0KICAgICAgICAgfCBEUk9QIEZPUkVJR04gS0VZ X1NZTSBvcHRfaWRlbnQKQEAgLTYwNjAsMTUgKzYxMDQsMTkgQEAgYWx0ZXJfbGlzdF9pdGVtOgog ICAgICAgICB8IERST1AgUFJJTUFSWV9TWU0gS0VZX1NZTQogICAgICAgICAgIHsKICAgICAgICAg ICAgIExFWCAqbGV4PUxleDsKLSAgICAgICAgICAgIGxleC0+YWx0ZXJfaW5mby5kcm9wX2xpc3Qu cHVzaF9iYWNrKG5ldyBBbHRlcl9kcm9wKEFsdGVyX2Ryb3A6OktFWSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlf a2V5X25hbWUpKTsKKyAgICAgICAgICAgIEFsdGVyX2Ryb3AgKmFkPSBuZXcgQWx0ZXJfZHJvcChB bHRlcl9kcm9wOjpLRVksIHByaW1hcnlfa2V5X25hbWUpOworICAgICAgICAgICAgaWYgKGFkID09 IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgICBsZXgtPmFs dGVyX2luZm8uZHJvcF9saXN0LnB1c2hfYmFjayhhZCk7CiAgICAgICAgICAgICBsZXgtPmFsdGVy X2luZm8uZmxhZ3N8PSBBTFRFUl9EUk9QX0lOREVYOwogICAgICAgICAgIH0KICAgICAgICAgfCBE Uk9QIGtleV9vcl9pbmRleCBmaWVsZF9pZGVudAogICAgICAgICAgIHsKICAgICAgICAgICAgIExF WCAqbGV4PUxleDsKLSAgICAgICAgICAgIGxleC0+YWx0ZXJfaW5mby5kcm9wX2xpc3QucHVzaF9i YWNrKG5ldyBBbHRlcl9kcm9wKEFsdGVyX2Ryb3A6OktFWSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQzLnN0cikpOworICAg ICAgICAgICAgQWx0ZXJfZHJvcCAqYWQ9IG5ldyBBbHRlcl9kcm9wKEFsdGVyX2Ryb3A6OktFWSwg JDMuc3RyKTsKKyAgICAgICAgICAgIGlmIChhZCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOworICAgICAgICAgICAgbGV4LT5hbHRlcl9pbmZvLmRyb3BfbGlzdC5wdXNoX2Jh Y2soYWQpOwogICAgICAgICAgICAgbGV4LT5hbHRlcl9pbmZvLmZsYWdzfD0gQUxURVJfRFJPUF9J TkRFWDsKICAgICAgICAgICB9CiAgICAgICAgIHwgRElTQUJMRV9TWU0gS0VZUwpAQCAtNjA4Niwx NCArNjEzNCwxOSBAQCBhbHRlcl9saXN0X2l0ZW06CiAgICAgICAgIHwgQUxURVIgb3B0X2NvbHVt biBmaWVsZF9pZGVudCBTRVQgREVGQVVMVCBzaWduZWRfbGl0ZXJhbAogICAgICAgICAgIHsKICAg ICAgICAgICAgIExFWCAqbGV4PUxleDsKLSAgICAgICAgICAgIGxleC0+YWx0ZXJfaW5mby5hbHRl cl9saXN0LnB1c2hfYmFjayhuZXcgQWx0ZXJfY29sdW1uKCQzLnN0ciwkNikpOworICAgICAgICAg ICAgQWx0ZXJfY29sdW1uICphYz0gbmV3IEFsdGVyX2NvbHVtbigkMy5zdHIsJDYpOworICAgICAg ICAgICAgaWYgKGFjID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAg ICAgICAgICBsZXgtPmFsdGVyX2luZm8uYWx0ZXJfbGlzdC5wdXNoX2JhY2soYWMpOwogICAgICAg ICAgICAgbGV4LT5hbHRlcl9pbmZvLmZsYWdzfD0gQUxURVJfQ09MVU1OX0RFRkFVTFQ7CiAgICAg ICAgICAgfQogICAgICAgICB8IEFMVEVSIG9wdF9jb2x1bW4gZmllbGRfaWRlbnQgRFJPUCBERUZB VUxUCiAgICAgICAgICAgewogICAgICAgICAgICAgTEVYICpsZXg9TGV4OwotICAgICAgICAgICAg bGV4LT5hbHRlcl9pbmZvLmFsdGVyX2xpc3QucHVzaF9iYWNrKG5ldyBBbHRlcl9jb2x1bW4oJDMu c3RyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKEl0ZW0qKSAwKSk7CisgICAgICAgICAgICBBbHRlcl9jb2x1bW4gKmFj PSBuZXcgQWx0ZXJfY29sdW1uKCQzLnN0ciwgKEl0ZW0qKSAwKTsKKyAgICAgICAgICAgIGlmIChh YyA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgbGV4 LT5hbHRlcl9pbmZvLmFsdGVyX2xpc3QucHVzaF9iYWNrKGFjKTsKICAgICAgICAgICAgIGxleC0+ YWx0ZXJfaW5mby5mbGFnc3w9IEFMVEVSX0NPTFVNTl9ERUZBVUxUOwogICAgICAgICAgIH0KICAg ICAgICAgfCBSRU5BTUUgb3B0X3RvIHRhYmxlX2lkZW50CkBAIC02MzYxLDE1ICs2NDE0LDE5IEBA IGRhdGFiYXNlX2lkZW50X2xpc3Q6CiAgICAgICAgICAgaWRlbnQKICAgICAgICAgICB7CiAgICAg ICAgICAgICBMRVggKmxleD0gTGV4OworICAgICAgICAgICAgTEVYX1NUUklORyogbHM9IChMRVhf U1RSSU5HKikgc3FsX21lbWR1cCgmJDEsIHNpemVvZihMRVhfU1RSSU5HKSk7CisgICAgICAgICAg ICBpZiAobHMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAg ICAgIGxleC0+ZGJfbGlzdC5lbXB0eSgpOwotICAgICAgICAgICAgaWYgKGxleC0+ZGJfbGlzdC5w dXNoX2JhY2soKExFWF9TVFJJTkcqKQotICAgICAgICAgICAgICAgIHNxbF9tZW1kdXAoJiQxLCBz aXplb2YoTEVYX1NUUklORykpKSkKKyAgICAgICAgICAgIGlmIChsZXgtPmRiX2xpc3QucHVzaF9i YWNrKGxzKSkKICAgICAgICAgICAgICAgWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIHwg ZGF0YWJhc2VfaWRlbnRfbGlzdCAnLCcgaWRlbnQKICAgICAgICAgICB7Ci0gICAgICAgICAgICBp ZiAoTGV4LT5kYl9saXN0LnB1c2hfYmFjaygoTEVYX1NUUklORyopCi0gICAgICAgICAgICAgICAg c3FsX21lbWR1cCgmJDMsIHNpemVvZihMRVhfU1RSSU5HKSkpKQorICAgICAgICAgICAgTEVYX1NU UklORyAqbHM9IChMRVhfU1RSSU5HKikgc3FsX21lbWR1cCgmJDMsIHNpemVvZihMRVhfU1RSSU5H KSk7CisgICAgICAgICAgICBpZiAobHMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKKyAgICAgICAgICAgIGlmIChMZXgtPmRiX2xpc3QucHVzaF9iYWNrKGxzKSkKICAgICAg ICAgICAgICAgWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIDsKQEAgLTY4MDYsMTAgKzY4 NjMsMTIgQEAgc2VsZWN0X2l0ZW1fbGlzdDoKICAgICAgICAgfCAnKicKICAgICAgICAgICB7CiAg ICAgICAgICAgICBUSEQgKnRoZD0gWVlUSEQ7Ci0gICAgICAgICAgICBpZiAoYWRkX2l0ZW1fdG9f bGlzdCh0aGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSXRlbV9maWVs ZCgmdGhkLT5sZXgtPmN1cnJlbnRfc2VsZWN0LT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCAiKiIpKSkKKyAgICAgICAgICAgIEl0 ZW0gKml0ZW09IG5ldyAodGhkLT5tZW1fcm9vdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg SXRlbV9maWVsZCgmdGhkLT5sZXgtPmN1cnJlbnRfc2VsZWN0LT5jb250ZXh0LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwsICIqIik7CisgICAgICAgICAg ICBpZiAoaXRlbSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAg ICAgICAgaWYgKGFkZF9pdGVtX3RvX2xpc3QodGhkLCBpdGVtKSkKICAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKICAgICAgICAgICAgICh0aGQtPmxleC0+Y3VycmVudF9zZWxlY3QtPndpdGhf d2lsZCkrKzsKICAgICAgICAgICB9CkBAIC02OTIyLDYgKzY5ODEsOCBAQCBleHByOgogICAgICAg ICAgICAgewogICAgICAgICAgICAgICAvKiBYIE9SIFkgKi8KICAgICAgICAgICAgICAgJCQgPSBu ZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9jb25kX29yKCQxLCAkMyk7CisgICAgICAgICAgICAg IGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAg ICAgICB9CiAgICAgICAgICAgfQogICAgICAgICB8IGV4cHIgWE9SIGV4cHIgJXByZWMgWE9SCkBA IC02OTY4LDM2ICs3MDI5LDg2IEBAIGV4cHI6CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg IC8qIFggQU5EIFkgKi8KICAgICAgICAgICAgICAgJCQgPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkg SXRlbV9jb25kX2FuZCgkMSwgJDMpOworICAgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAg ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgfQogICAgICAgICAgIH0K ICAgICAgICAgfCBOT1RfU1lNIGV4cHIgJXByZWMgTk9UX1NZTQotICAgICAgICAgIHsgJCQ9IG5l Z2F0ZV9leHByZXNzaW9uKFlZVEhELCAkMik7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAk JD0gbmVnYXRlX2V4cHJlc3Npb24oWVlUSEQsICQyKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBO VUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAg fCBib29sX3ByaSBJUyBUUlVFX1NZTSAlcHJlYyBJUwotICAgICAgICAgIHsgJCQ9IG5ldyAoWVlU SEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfaXN0cnVlKCQxKTsgfQorICAgICAgICAgIHsKKyAgICAg ICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2lzdHJ1ZSgkMSk7Cisg ICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsK KyAgICAgICAgICB9CiAgICAgICAgIHwgYm9vbF9wcmkgSVMgbm90IFRSVUVfU1lNICVwcmVjIElT Ci0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19pc25vdHRy dWUoJDEpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9y b290KSBJdGVtX2Z1bmNfaXNub3R0cnVlKCQxKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxM KQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBi b29sX3ByaSBJUyBGQUxTRV9TWU0gJXByZWMgSVMKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZVEhE LT5tZW1fcm9vdCkgSXRlbV9mdW5jX2lzZmFsc2UoJDEpOyB9CisgICAgICAgICAgeworICAgICAg ICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfaXNmYWxzZSgkMSk7Cisg ICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsK KyAgICAgICAgICB9CiAgICAgICAgIHwgYm9vbF9wcmkgSVMgbm90IEZBTFNFX1NZTSAlcHJlYyBJ UwotICAgICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfaXNub3Rm YWxzZSgkMSk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVt X3Jvb3QpIEl0ZW1fZnVuY19pc25vdGZhbHNlKCQxKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBO VUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAg fCBib29sX3ByaSBJUyBVTktOT1dOX1NZTSAlcHJlYyBJUwotICAgICAgICAgIHsgJCQ9IG5ldyBJ dGVtX2Z1bmNfaXNudWxsKCQxKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcg KFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2lzbnVsbCgkMSk7CisgICAgICAgICAgICBpZiAo JCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAg ICAgICAgIHwgYm9vbF9wcmkgSVMgbm90IFVOS05PV05fU1lNICVwcmVjIElTCi0gICAgICAgICAg eyAkJD0gbmV3IEl0ZW1fZnVuY19pc25vdG51bGwoJDEpOyB9CisgICAgICAgICAgeworICAgICAg ICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfaXNub3RudWxsKCQxKTsK KyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OworICAgICAgICAgIH0KICAgICAgICAgfCBib29sX3ByaQogICAgICAgICA7CiAKIGJvb2xfcHJp OgogICAgICAgICAgIGJvb2xfcHJpIElTIE5VTExfU1lNICVwcmVjIElTCi0gICAgICAgICAgeyAk JD0gbmV3IEl0ZW1fZnVuY19pc251bGwoJDEpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAg JCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfaXNudWxsKCQxKTsKKyAgICAgICAg ICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAg ICAgIH0KICAgICAgICAgfCBib29sX3ByaSBJUyBub3QgTlVMTF9TWU0gJXByZWMgSVMKLSAgICAg ICAgICB7ICQkPSBuZXcgSXRlbV9mdW5jX2lzbm90bnVsbCgkMSk7IH0KKyAgICAgICAgICB7Cisg ICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19pc25vdG51bGwo JDEpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZ QUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IGJvb2xfcHJpIEVRVUFMX1NZTSBwcmVkaWNh dGUgJXByZWMgRVFVQUxfU1lNCi0gICAgICAgICAgeyAkJD0gbmV3IEl0ZW1fZnVuY19lcXVhbCgk MSwkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jv b3QpIEl0ZW1fZnVuY19lcXVhbCgkMSwkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkK KyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgYm9v bF9wcmkgY29tcF9vcCBwcmVkaWNhdGUgJXByZWMgRVEKLSAgICAgICAgICB7ICQkPSAoKiQyKSgw KS0+Y3JlYXRlKCQxLCQzKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSAoKiQyKSgw KS0+Y3JlYXRlKCQxLCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBib29sX3ByaSBjb21w X29wIGFsbF9vcl9hbnkgJygnIHN1YnNlbGVjdCAnKScgJXByZWMgRVEKLSAgICAgICAgICB7ICQk PSBhbGxfYW55X3N1YnF1ZXJ5X2NyZWF0b3IoJDEsICQyLCAkMywgJDUpOyB9CisgICAgICAgICAg eworICAgICAgICAgICAgJCQ9IGFsbF9hbnlfc3VicXVlcnlfY3JlYXRvcigkMSwgJDIsICQzLCAk NSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgcHJlZGljYXRlCiAgICAgICAgIDsKIApAQCAt NzAwNSw4NyArNzExNiwxOTMgQEAgcHJlZGljYXRlOgogICAgICAgICAgIGJpdF9leHByIElOX1NZ TSAnKCcgc3Vic2VsZWN0ICcpJwogICAgICAgICAgIHsKICAgICAgICAgICAgICQkPSBuZXcgKFlZ VEhELT5tZW1fcm9vdCkgSXRlbV9pbl9zdWJzZWxlY3QoJDEsICQ0KTsKKyAgICAgICAgICAgIGlm ICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgIH0K ICAgICAgICAgfCBiaXRfZXhwciBub3QgSU5fU1lNICcoJyBzdWJzZWxlY3QgJyknCiAgICAgICAg ICAgewogICAgICAgICAgICAgVEhEICp0aGQ9IFlZVEhEOwogICAgICAgICAgICAgSXRlbSAqaXRl bT0gbmV3ICh0aGQtPm1lbV9yb290KSBJdGVtX2luX3N1YnNlbGVjdCgkMSwgJDUpOworICAgICAg ICAgICAgaWYgKGl0ZW0gPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAg ICAgICAgICAgICQkPSBuZWdhdGVfZXhwcmVzc2lvbih0aGQsIGl0ZW0pOworICAgICAgICAgICAg aWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAg fQogICAgICAgICB8IGJpdF9leHByIElOX1NZTSAnKCcgZXhwciAnKScKICAgICAgICAgICB7CiAg ICAgICAgICAgICAkJD0gaGFuZGxlX3NxbDIwMDNfbm90ZTE4NF9leGNlcHRpb24oWVlUSEQsICQx LCB0cnVlLCAkNCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIHwgYml0X2V4cHIgSU5fU1lNICco JyBleHByICcsJyBleHByX2xpc3QgJyknCiAgICAgICAgICAgeyAKICAgICAgICAgICAgICQ2LT5w dXNoX2Zyb250KCQ0KTsKICAgICAgICAgICAgICQ2LT5wdXNoX2Zyb250KCQxKTsKICAgICAgICAg ICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2luKCokNik7CisgICAgICAg ICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAg ICAgICB9CiAgICAgICAgIHwgYml0X2V4cHIgbm90IElOX1NZTSAnKCcgZXhwciAnKScKICAgICAg ICAgICB7CiAgICAgICAgICAgICAkJD0gaGFuZGxlX3NxbDIwMDNfbm90ZTE4NF9leGNlcHRpb24o WVlUSEQsICQxLCBmYWxzZSwgJDUpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAg ICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgfQogICAgICAgICB8IGJpdF9leHBy IG5vdCBJTl9TWU0gJygnIGV4cHIgJywnIGV4cHJfbGlzdCAnKScKICAgICAgICAgICB7CiAgICAg ICAgICAgICAkNy0+cHVzaF9mcm9udCgkNSk7CiAgICAgICAgICAgICAkNy0+cHVzaF9mcm9udCgk MSk7CiAgICAgICAgICAgICBJdGVtX2Z1bmNfaW4gKml0ZW0gPSBuZXcgKFlZVEhELT5tZW1fcm9v dCkgSXRlbV9mdW5jX2luKCokNyk7CisgICAgICAgICAgICBpZiAoaXRlbSA9PSBOVUxMKQorICAg ICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgaXRlbS0+bmVnYXRlKCk7CiAg ICAgICAgICAgICAkJD0gaXRlbTsKICAgICAgICAgICB9CiAgICAgICAgIHwgYml0X2V4cHIgQkVU V0VFTl9TWU0gYml0X2V4cHIgQU5EX1NZTSBwcmVkaWNhdGUKLSAgICAgICAgICB7ICQkPSBuZXcg SXRlbV9mdW5jX2JldHdlZW4oJDEsJDMsJDUpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAg JCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfYmV0d2VlbigkMSwkMywkNSk7Cisg ICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsK KyAgICAgICAgICB9CiAgICAgICAgIHwgYml0X2V4cHIgbm90IEJFVFdFRU5fU1lNIGJpdF9leHBy IEFORF9TWU0gcHJlZGljYXRlCiAgICAgICAgICAgewotICAgICAgICAgICAgSXRlbV9mdW5jX2Jl dHdlZW4gKml0ZW09IG5ldyBJdGVtX2Z1bmNfYmV0d2VlbigkMSwkNCwkNik7CisgICAgICAgICAg ICBJdGVtX2Z1bmNfYmV0d2VlbiAqaXRlbTsKKyAgICAgICAgICAgIGl0ZW09IG5ldyAoWVlUSEQt Pm1lbV9yb290KSBJdGVtX2Z1bmNfYmV0d2VlbigkMSwkNCwkNik7CisgICAgICAgICAgICBpZiAo aXRlbSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAg aXRlbS0+bmVnYXRlKCk7CiAgICAgICAgICAgICAkJD0gaXRlbTsKICAgICAgICAgICB9CiAgICAg ICAgIHwgYml0X2V4cHIgU09VTkRTX1NZTSBMSUtFIGJpdF9leHByCiAgICAgICAgICAgewotICAg ICAgICAgICAgJCQ9IG5ldyBJdGVtX2Z1bmNfZXEobmV3IEl0ZW1fZnVuY19zb3VuZGV4KCQxKSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJdGVtX2Z1bmNfc291bmRleCgk NCkpOworICAgICAgICAgICAgSXRlbSAqaXRlbTE9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVt X2Z1bmNfc291bmRleCgkMSk7CisgICAgICAgICAgICBJdGVtICppdGVtND0gbmV3IChZWVRIRC0+ bWVtX3Jvb3QpIEl0ZW1fZnVuY19zb3VuZGV4KCQ0KTsKKyAgICAgICAgICAgIGlmICgoaXRlbTEg PT0gTlVMTCkgfHwgKGl0ZW00ID09IE5VTEwpKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfZXEoaXRl bTEsIGl0ZW00KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBN WVNRTF9ZWUFCT1JUOwogICAgICAgICAgIH0KICAgICAgICAgfCBiaXRfZXhwciBMSUtFIHNpbXBs ZV9leHByIG9wdF9lc2NhcGUKLSAgICAgICAgICB7ICQkPSBuZXcgSXRlbV9mdW5jX2xpa2UoJDEs JDMsJDQsTGV4LT5lc2NhcGVfdXNlZCk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0g bmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19saWtlKCQxLCQzLCQ0LExleC0+ZXNjYXBl X3VzZWQpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FM X1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IGJpdF9leHByIG5vdCBMSUtFIHNpbXBs ZV9leHByIG9wdF9lc2NhcGUKLSAgICAgICAgICB7ICQkPSBuZXcgSXRlbV9mdW5jX25vdChuZXcg SXRlbV9mdW5jX2xpa2UoJDEsJDQsJDUsIExleC0+ZXNjYXBlX3VzZWQpKTsgfQotICAgICAgICB8 IGJpdF9leHByIFJFR0VYUCBiaXRfZXhwciB7ICQkPSBuZXcgSXRlbV9mdW5jX3JlZ2V4KCQxLCQz KTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgIEl0ZW0gKml0ZW09IG5ldyAoWVlUSEQtPm1l bV9yb290KSBJdGVtX2Z1bmNfbGlrZSgkMSwkNCwkNSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZXgtPmVzY2FwZV91c2VkKTsK KyAgICAgICAgICAgIGlmIChpdGVtID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJP UlQ7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19ub3Qo aXRlbSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxf WVlBQk9SVDsKKyAgICAgICAgICB9CisgICAgICAgIHwgYml0X2V4cHIgUkVHRVhQIGJpdF9leHBy CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVt X2Z1bmNfcmVnZXgoJDEsJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAg ICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IGJpdF9leHByIG5v dCBSRUdFWFAgYml0X2V4cHIKLSAgICAgICAgICB7ICQkPSBuZWdhdGVfZXhwcmVzc2lvbihZWVRI RCwgbmV3IEl0ZW1fZnVuY19yZWdleCgkMSwkNCkpOyB9CisgICAgICAgICAgeworICAgICAgICAg ICAgSXRlbSAqaXRlbT0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19yZWdleCgkMSwk NCk7CisgICAgICAgICAgICBpZiAoaXRlbSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOworICAgICAgICAgICAgJCQ9IG5lZ2F0ZV9leHByZXNzaW9uKFlZVEhELCBpdGVtKTsK KyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OworICAgICAgICAgIH0KICAgICAgICAgfCBiaXRfZXhwcgogICAgICAgICA7CiAKIGJpdF9leHBy OgogICAgICAgICAgIGJpdF9leHByICd8JyBiaXRfZXhwciAlcHJlYyAnfCcKLSAgICAgICAgICB7 ICQkPSBuZXcgSXRlbV9mdW5jX2JpdF9vcigkMSwkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAg ICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19iaXRfb3IoJDEsJDMpOwor ICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CisgICAgICAgICAgfQogICAgICAgICB8IGJpdF9leHByICcmJyBiaXRfZXhwciAlcHJlYyAnJicK LSAgICAgICAgICB7ICQkPSBuZXcgSXRlbV9mdW5jX2JpdF9hbmQoJDEsJDMpOyB9CisgICAgICAg ICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfYml0 X2FuZCgkMSwkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgYml0X2V4cHIgU0hJRlRfTEVG VCBiaXRfZXhwciAlcHJlYyBTSElGVF9MRUZUCi0gICAgICAgICAgeyAkJD0gbmV3IEl0ZW1fZnVu Y19zaGlmdF9sZWZ0KCQxLCQzKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcg KFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3NoaWZ0X2xlZnQoJDEsJDMpOworICAgICAgICAg ICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAg ICAgfQogICAgICAgICB8IGJpdF9leHByIFNISUZUX1JJR0hUIGJpdF9leHByICVwcmVjIFNISUZU X1JJR0hUCi0gICAgICAgICAgeyAkJD0gbmV3IEl0ZW1fZnVuY19zaGlmdF9yaWdodCgkMSwkMyk7 IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0 ZW1fZnVuY19zaGlmdF9yaWdodCgkMSwkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkK KyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgYml0 X2V4cHIgJysnIGJpdF9leHByICVwcmVjICcrJwotICAgICAgICAgIHsgJCQ9IG5ldyBJdGVtX2Z1 bmNfcGx1cygkMSwkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRI RC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19wbHVzKCQxLCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9 PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAg ICAgfCBiaXRfZXhwciAnLScgYml0X2V4cHIgJXByZWMgJy0nCi0gICAgICAgICAgeyAkJD0gbmV3 IEl0ZW1fZnVuY19taW51cygkMSwkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0g bmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19taW51cygkMSwkMyk7CisgICAgICAgICAg ICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAg ICB9CiAgICAgICAgIHwgYml0X2V4cHIgJysnIElOVEVSVkFMX1NZTSBleHByIGludGVydmFsICVw cmVjICcrJwotICAgICAgICAgIHsgJCQ9IG5ldyBJdGVtX2RhdGVfYWRkX2ludGVydmFsKCQxLCQ0 LCQ1LDApOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9y b290KSBJdGVtX2RhdGVfYWRkX2ludGVydmFsKCQxLCQ0LCQ1LDApOworICAgICAgICAgICAgaWYg KCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQog ICAgICAgICB8IGJpdF9leHByICctJyBJTlRFUlZBTF9TWU0gZXhwciBpbnRlcnZhbCAlcHJlYyAn LScKLSAgICAgICAgICB7ICQkPSBuZXcgSXRlbV9kYXRlX2FkZF9pbnRlcnZhbCgkMSwkNCwkNSwx KTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkg SXRlbV9kYXRlX2FkZF9pbnRlcnZhbCgkMSwkNCwkNSwxKTsKKyAgICAgICAgICAgIGlmICgkJCA9 PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAg ICAgfCBiaXRfZXhwciAnKicgYml0X2V4cHIgJXByZWMgJyonCi0gICAgICAgICAgeyAkJD0gbmV3 IEl0ZW1fZnVuY19tdWwoJDEsJDMpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5l dyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfbXVsKCQxLCQzKTsKKyAgICAgICAgICAgIGlm ICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0K ICAgICAgICAgfCBiaXRfZXhwciAnLycgYml0X2V4cHIgJXByZWMgJy8nCi0gICAgICAgICAgeyAk JD0gbmV3IEl0ZW1fZnVuY19kaXYoJDEsJDMpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAg JCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfZGl2KCQxLCQzKTsKKyAgICAgICAg ICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAg ICAgIH0KICAgICAgICAgfCBiaXRfZXhwciAnJScgYml0X2V4cHIgJXByZWMgJyUnCi0gICAgICAg ICAgeyAkJD0gbmV3IEl0ZW1fZnVuY19tb2QoJDEsJDMpOyB9CisgICAgICAgICAgeworICAgICAg ICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfbW9kKCQxLCQzKTsKKyAg ICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwor ICAgICAgICAgIH0KICAgICAgICAgfCBiaXRfZXhwciBESVZfU1lNIGJpdF9leHByICVwcmVjIERJ Vl9TWU0KLSAgICAgICAgICB7ICQkPSBuZXcgSXRlbV9mdW5jX2ludF9kaXYoJDEsJDMpOyB9Cisg ICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1 bmNfaW50X2RpdigkMSwkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgYml0X2V4cHIgTU9E X1NZTSBiaXRfZXhwciAlcHJlYyBNT0RfU1lNCi0gICAgICAgICAgeyAkJD0gbmV3IEl0ZW1fZnVu Y19tb2QoJDEsJDMpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQt Pm1lbV9yb290KSBJdGVtX2Z1bmNfbW9kKCQxLCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBO VUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAg fCBiaXRfZXhwciAnXicgYml0X2V4cHIKLSAgICAgICAgICB7ICQkPSBuZXcgSXRlbV9mdW5jX2Jp dF94b3IoJDEsJDMpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQt Pm1lbV9yb290KSBJdGVtX2Z1bmNfYml0X3hvcigkMSwkMyk7CisgICAgICAgICAgICBpZiAoJCQg PT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAg ICAgIHwgc2ltcGxlX2V4cHIKICAgICAgICAgOwogCkBAIC03MTM1LDQ1ICs3MzUyLDgwIEBAIHNp bXBsZV9leHByOgogICAgICAgICAgICAgSXRlbSAqaTE9IG5ldyAodGhkLT5tZW1fcm9vdCkgSXRl bV9zdHJpbmcoJDMuc3RyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJDMubGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGhkLT5jaGFyc2V0KCkpOworICAgICAgICAgICAgaWYg KGkxID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICAk JD0gbmV3ICh0aGQtPm1lbV9yb290KSBJdGVtX2Z1bmNfc2V0X2NvbGxhdGlvbigkMSwgaTEpOwor ICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CiAgICAgICAgICAgfQogICAgICAgICB8IGxpdGVyYWwKICAgICAgICAgfCBwYXJhbV9tYXJrZXIK ICAgICAgICAgfCB2YXJpYWJsZQogICAgICAgICB8IHN1bV9leHByCiAgICAgICAgIHwgc2ltcGxl X2V4cHIgT1JfT1JfU1lNIHNpbXBsZV9leHByCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+ bWVtX3Jvb3QpIEl0ZW1fZnVuY19jb25jYXQoJDEsICQzKTsgfQotICAgICAgICB8ICcrJyBzaW1w bGVfZXhwciAlcHJlYyBORUcgeyAkJD0gJDI7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAk JD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19jb25jYXQoJDEsICQzKTsKKyAgICAg ICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAg ICAgICAgIH0KKyAgICAgICAgfCAnKycgc2ltcGxlX2V4cHIgJXByZWMgTkVHCisgICAgICAgICAg eworICAgICAgICAgICAgJCQ9ICQyOworICAgICAgICAgIH0KICAgICAgICAgfCAnLScgc2ltcGxl X2V4cHIgJXByZWMgTkVHCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0 ZW1fZnVuY19uZWcoJDIpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlU SEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfbmVnKCQyKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBO VUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAg fCAnficgc2ltcGxlX2V4cHIgJXByZWMgTkVHCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+ bWVtX3Jvb3QpIEl0ZW1fZnVuY19iaXRfbmVnKCQyKTsgfQorICAgICAgICAgIHsKKyAgICAgICAg ICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2JpdF9uZWcoJDIpOworICAg ICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7Cisg ICAgICAgICAgfQogICAgICAgICB8IG5vdDIgc2ltcGxlX2V4cHIgJXByZWMgTkVHCi0gICAgICAg ICAgeyAkJD0gbmVnYXRlX2V4cHJlc3Npb24oWVlUSEQsICQyKTsgfQorICAgICAgICAgIHsKKyAg ICAgICAgICAgICQkPSBuZWdhdGVfZXhwcmVzc2lvbihZWVRIRCwgJDIpOworICAgICAgICAgICAg aWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAg fQogICAgICAgICB8ICcoJyBzdWJzZWxlY3QgJyknCiAgICAgICAgICAgeyAKICAgICAgICAgICAg ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9zaW5nbGVyb3dfc3Vic2VsZWN0KCQyKTsK KyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OwogICAgICAgICAgIH0KLSAgICAgICAgfCAnKCcgZXhwciAnKScgeyAkJD0gJDI7IH0KKyAgICAg ICAgfCAnKCcgZXhwciAnKScKKyAgICAgICAgICB7ICQkPSAkMjsgfQogICAgICAgICB8ICcoJyBl eHByICcsJyBleHByX2xpc3QgJyknCiAgICAgICAgICAgewogICAgICAgICAgICAgJDQtPnB1c2hf ZnJvbnQoJDIpOwogICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX3Jv dygqJDQpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FM X1lZQUJPUlQ7CiAgICAgICAgICAgfQogICAgICAgICB8IFJPV19TWU0gJygnIGV4cHIgJywnIGV4 cHJfbGlzdCAnKScKICAgICAgICAgICB7CiAgICAgICAgICAgICAkNS0+cHVzaF9mcm9udCgkMyk7 CiAgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fcm93KCokNSk7Cisg ICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsK ICAgICAgICAgICB9CiAgICAgICAgIHwgRVhJU1RTICcoJyBzdWJzZWxlY3QgJyknCiAgICAgICAg ICAgewogICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2V4aXN0c19z dWJzZWxlY3QoJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgfQotICAgICAgICB8ICd7JyBpZGVudCBleHByICd9 JyB7ICQkPSAkMzsgfQorICAgICAgICB8ICd7JyBpZGVudCBleHByICd9JworICAgICAgICAgIHsg JCQ9ICQzOyB9CiAgICAgICAgIHwgTUFUQ0ggaWRlbnRfbGlzdF9hcmcgQUdBSU5TVCAnKCcgYml0 X2V4cHIgZnVsbHRleHRfb3B0aW9ucyAnKScKICAgICAgICAgICB7CiAgICAgICAgICAgICAkMi0+ cHVzaF9mcm9udCgkNSk7CiAgICAgICAgICAgICBJdGVtX2Z1bmNfbWF0Y2ggKmkxPSBuZXcgKFlZ VEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX21hdGNoKCokMiwgJDYpOworICAgICAgICAgICAgaWYg KGkxID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICBT ZWxlY3QtPmFkZF9mdGZ1bmNfdG9fbGlzdChpMSk7CiAgICAgICAgICAgICAkJD0gaTE7CiAgICAg ICAgICAgfQpAQCAtNzE4MSwyNiArNzQzMywzNiBAQCBzaW1wbGVfZXhwcjoKICAgICAgICAgICB7 CiAgICAgICAgICAgICAkJD0gY3JlYXRlX2Z1bmNfY2FzdChZWVRIRCwgJDIsIElURU1fQ0FTVF9D SEFSLCBOVUxMLCBOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm15X2No YXJzZXRfYmluKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBN WVNRTF9ZWUFCT1JUOwogICAgICAgICAgIH0KICAgICAgICAgfCBDQVNUX1NZTSAnKCcgZXhwciBB UyBjYXN0X3R5cGUgJyknCiAgICAgICAgICAgewogICAgICAgICAgICAgTEVYICpsZXg9IExleDsK ICAgICAgICAgICAgICQkPSBjcmVhdGVfZnVuY19jYXN0KFlZVEhELCAkMywgJDUsIGxleC0+bGVu Z3RoLCBsZXgtPmRlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxleC0+Y2hh cnNldCk7Ci0gICAgICAgICAgICBpZiAoISQkKQorICAgICAgICAgICAgaWYgKCQkID09IE5VTEwp CiAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgfQogICAgICAgICB8IENB U0VfU1lNIG9wdF9leHByIHdoZW5fbGlzdCBvcHRfZWxzZSBFTkQKLSAgICAgICAgICB7ICQkPSBu ZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2Nhc2UoKiAkMywgJDIsICQ0ICk7IH0KKyAg ICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVu Y19jYXNlKCogJDMsICQyLCAkNCApOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAg ICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IENPTlZFUlRf U1lNICcoJyBleHByICcsJyBjYXN0X3R5cGUgJyknCiAgICAgICAgICAgewogICAgICAgICAgICAg JCQ9IGNyZWF0ZV9mdW5jX2Nhc3QoWVlUSEQsICQzLCAkNSwgTGV4LT5sZW5ndGgsIExleC0+ZGVj LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGV4LT5jaGFyc2V0KTsKLSAgICAg ICAgICAgIGlmICghJCQpCisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKICAgICAgICAgICAg ICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIHwgQ09OVkVSVF9TWU0gJygn IGV4cHIgVVNJTkcgY2hhcnNldF9uYW1lICcpJwotICAgICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQt Pm1lbV9yb290KSBJdGVtX2Z1bmNfY29udl9jaGFyc2V0KCQzLCQ1KTsgfQorICAgICAgICAgIHsK KyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2NvbnZfY2hh cnNldCgkMywkNSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgREVGQVVMVCAnKCcgc2ltcGxl X2lkZW50ICcpJwogICAgICAgICAgIHsKICAgICAgICAgICAgIGlmICgkMy0+aXNfc3Bsb2NhbCgp KQpAQCAtNzIxMiwxNSArNzQ3NCwyMyBAQCBzaW1wbGVfZXhwcjoKICAgICAgICAgICAgIH0KICAg ICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9kZWZhdWx0X3ZhbHVlKExl eC0+Y3VycmVudF9jb250ZXh0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkK KyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIHwgVkFM VUVTICcoJyBzaW1wbGVfaWRlbnRfbm9zcHZhciAnKScKICAgICAgICAgICB7CiAgICAgICAgICAg ICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1faW5zZXJ0X3ZhbHVlKExleC0+Y3VycmVu dF9jb250ZXh0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgIH0KICAgICAgICAgfCBJTlRFUlZBTF9TWU0g ZXhwciBpbnRlcnZhbCAnKycgZXhwciAlcHJlYyBJTlRFUlZBTF9TWU0KICAgICAgICAgICAvKiB3 ZSBjYW5ub3QgcHV0IGludGVydmFsIGJlZm9yZSAtICovCi0gICAgICAgICAgeyAkJD0gbmV3IChZ WVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZGF0ZV9hZGRfaW50ZXJ2YWwoJDUsJDIsJDMsMCk7IH0KKyAg ICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZGF0 ZV9hZGRfaW50ZXJ2YWwoJDUsJDIsJDMsMCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkK KyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIDsKIAog LyoKQEAgLTcyMzEsMzEgKzc1MDEsNjMgQEAgc2ltcGxlX2V4cHI6CiAqLwogZnVuY3Rpb25fY2Fs bF9rZXl3b3JkOgogICAgICAgICAgIENIQVJfU1lNICcoJyBleHByX2xpc3QgJyknCi0gICAgICAg ICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19jaGFyKCokMyk7IH0KKyAg ICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVu Y19jaGFyKCokMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgQ0hBUl9TWU0gJygnIGV4cHJf bGlzdCBVU0lORyBjaGFyc2V0X25hbWUgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+ bWVtX3Jvb3QpIEl0ZW1fZnVuY19jaGFyKCokMywgJDUpOyB9CisgICAgICAgICAgeworICAgICAg ICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfY2hhcigqJDMsICQ1KTsK KyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OworICAgICAgICAgIH0KICAgICAgICAgfCBDVVJSRU5UX1VTRVIgb3B0aW9uYWxfYnJhY2VzCiAg ICAgICAgICAgewogICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1 bmNfY3VycmVudF91c2VyKExleC0+Y3VycmVudF9jb250ZXh0KCkpOworICAgICAgICAgICAgaWYg KCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICBM ZXgtPnNldF9zdG10X3Vuc2FmZSgpOwogICAgICAgICAgICAgTGV4LT5zYWZlX3RvX2NhY2hlX3F1 ZXJ5PSAwOwogICAgICAgICAgIH0KICAgICAgICAgfCBEQVRFX1NZTSAnKCcgZXhwciAnKScKLSAg ICAgICAgICB7ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9kYXRlX3R5cGVjYXN0KCQz KTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkg SXRlbV9kYXRlX3R5cGVjYXN0KCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAg ICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBEQVlfU1lN ICcoJyBleHByICcpJwotICAgICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVt X2Z1bmNfZGF5b2Ztb250aCgkMyk7IH0KLSAgICAgICAgfCBIT1VSX1NZTSAnKCcgZXhwciAnKScK LSAgICAgICAgICB7ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2hvdXIoJDMp OyB9Ci0gICAgICAgIHwgSU5TRVJUICcoJyBleHByICcsJyBleHByICcsJyBleHByICcsJyBleHBy ICcpJwotICAgICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfaW5z ZXJ0KCQzLCQ1LCQ3LCQ5KTsgfQotICAgICAgICB8IElOVEVSVkFMX1NZTSAnKCcgZXhwciAnLCcg ZXhwciAnKScgJXByZWMgSU5URVJWQUxfU1lNCiAgICAgICAgICAgewotICAgICAgICAgICAgVEhE ICp0aGQ9IFlZVEhEOworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVt X2Z1bmNfZGF5b2Ztb250aCgkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAg ICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CisgICAgICAgIHwgSE9VUl9TWU0g JygnIGV4cHIgJyknCisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1l bV9yb290KSBJdGVtX2Z1bmNfaG91cigkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkK KyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CisgICAgICAgIHwgSU5T RVJUICcoJyBleHByICcsJyBleHByICcsJyBleHByICcsJyBleHByICcpJworICAgICAgICAgIHsK KyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2luc2VydCgk MywkNSwkNywkOSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CisgICAgICAgIHwgSU5URVJWQUxfU1lNICcoJyBl eHByICcsJyBleHByICcpJyAlcHJlYyBJTlRFUlZBTF9TWU0KKyAgICAgICAgICB7CisgICAgICAg ICAgICBUSEQgKnRoZD0gWVlUSEQ7CiAgICAgICAgICAgICBMaXN0PEl0ZW0+ICpsaXN0PSBuZXcg KHRoZC0+bWVtX3Jvb3QpIExpc3Q8SXRlbT47CisgICAgICAgICAgICBpZiAobGlzdCA9PSBOVUxM KQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgbGlzdC0+cHVzaF9m cm9udCgkNSk7CiAgICAgICAgICAgICBsaXN0LT5wdXNoX2Zyb250KCQzKTsKICAgICAgICAgICAg IEl0ZW1fcm93ICppdGVtPSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1fcm93KCpsaXN0KTsKKyAg ICAgICAgICAgIGlmIChpdGVtID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CiAgICAgICAgICAgICAkJD0gbmV3ICh0aGQtPm1lbV9yb290KSBJdGVtX2Z1bmNfaW50ZXJ2YWwo aXRlbSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxf WVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIHwgSU5URVJWQUxfU1lNICcoJyBleHByICcs JyBleHByICcsJyBleHByX2xpc3QgJyknICVwcmVjIElOVEVSVkFMX1NZTQogICAgICAgICAgIHsK QEAgLTcyNjMsNDggKzc1NjUsMTIwIEBAIGZ1bmN0aW9uX2NhbGxfa2V5d29yZDoKICAgICAgICAg ICAgICQ3LT5wdXNoX2Zyb250KCQ1KTsKICAgICAgICAgICAgICQ3LT5wdXNoX2Zyb250KCQzKTsK ICAgICAgICAgICAgIEl0ZW1fcm93ICppdGVtPSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1fcm93 KCokNyk7CisgICAgICAgICAgICBpZiAoaXRlbSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOwogICAgICAgICAgICAgJCQ9IG5ldyAodGhkLT5tZW1fcm9vdCkgSXRlbV9mdW5j X2ludGVydmFsKGl0ZW0pOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgfQogICAgICAgICB8IExFRlQgJygnIGV4cHIg JywnIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1f ZnVuY19sZWZ0KCQzLCQ1KTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZ VEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2xlZnQoJDMsJDUpOworICAgICAgICAgICAgaWYgKCQk ID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAg ICAgICB8IE1JTlVURV9TWU0gJygnIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRI RC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19taW51dGUoJDMpOyB9CisgICAgICAgICAgeworICAgICAg ICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfbWludXRlKCQzKTsKKyAg ICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwor ICAgICAgICAgIH0KICAgICAgICAgfCBNT05USF9TWU0gJygnIGV4cHIgJyknCi0gICAgICAgICAg eyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19tb250aCgkMyk7IH0KKyAgICAg ICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19t b250aCgkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgUklHSFQgJygnIGV4cHIgJywnIGV4 cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19y aWdodCgkMywkNSk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+ bWVtX3Jvb3QpIEl0ZW1fZnVuY19yaWdodCgkMywkNSk7CisgICAgICAgICAgICBpZiAoJCQgPT0g TlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAg IHwgU0VDT05EX1NZTSAnKCcgZXhwciAnKScKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZVEhELT5t ZW1fcm9vdCkgSXRlbV9mdW5jX3NlY29uZCgkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAg ICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19zZWNvbmQoJDMpOworICAgICAg ICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAg ICAgICAgfQogICAgICAgICB8IFRJTUVfU1lNICcoJyBleHByICcpJwotICAgICAgICAgIHsgJCQ9 IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX3RpbWVfdHlwZWNhc3QoJDMpOyB9CisgICAgICAg ICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX3RpbWVfdHlw ZWNhc3QoJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1Z U1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IFRJTUVTVEFNUCAnKCcgZXhwciAn KScKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9kYXRldGltZV90 eXBlY2FzdCgkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+ bWVtX3Jvb3QpIEl0ZW1fZGF0ZXRpbWVfdHlwZWNhc3QoJDMpOworICAgICAgICAgICAgaWYgKCQk ID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAg ICAgICB8IFRJTUVTVEFNUCAnKCcgZXhwciAnLCcgZXhwciAnKScKLSAgICAgICAgICB7ICQkPSBu ZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2FkZF90aW1lKCQzLCAkNSwgMSwgMCk7IH0K KyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1f ZnVuY19hZGRfdGltZSgkMywgJDUsIDEsIDApOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwp CisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IFRS SU0gJygnIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0 ZW1fZnVuY190cmltKCQzKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZ VEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3RyaW0oJDMpOworICAgICAgICAgICAgaWYgKCQkID09 IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAg ICB8IFRSSU0gJygnIExFQURJTkcgZXhwciBGUk9NIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0g bmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19sdHJpbSgkNiwkNCk7IH0KKyAgICAgICAg ICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19sdHJp bSgkNiwkNCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgVFJJTSAnKCcgVFJBSUxJTkcgZXhw ciBGUk9NIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0 ZW1fZnVuY19ydHJpbSgkNiwkNCk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3 IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19ydHJpbSgkNiwkNCk7CisgICAgICAgICAgICBp ZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9 CiAgICAgICAgIHwgVFJJTSAnKCcgQk9USCBleHByIEZST00gZXhwciAnKScKLSAgICAgICAgICB7 ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3RyaW0oJDYsJDQpOyB9CisgICAg ICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNf dHJpbSgkNiwkNCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgVFJJTSAnKCcgTEVBRElORyBG Uk9NIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1f ZnVuY19sdHJpbSgkNSk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRI RC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19sdHJpbSgkNSk7CisgICAgICAgICAgICBpZiAoJCQgPT0g TlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAg IHwgVFJJTSAnKCcgVFJBSUxJTkcgRlJPTSBleHByICcpJwotICAgICAgICAgIHsgJCQ9IG5ldyAo WVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfcnRyaW0oJDUpOyB9CisgICAgICAgICAgeworICAg ICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfcnRyaW0oJDUpOwor ICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CisgICAgICAgICAgfQogICAgICAgICB8IFRSSU0gJygnIEJPVEggRlJPTSBleHByICcpJwotICAg ICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfdHJpbSgkNSk7IH0K KyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1f ZnVuY190cmltKCQ1KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBUUklNICcoJyBleHByIEZS T00gZXhwciAnKScKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9m dW5jX3RyaW0oJDUsJDMpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlU SEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfdHJpbSgkNSwkMyk7CisgICAgICAgICAgfQogICAgICAg ICB8IFVTRVIgJygnICcpJwogICAgICAgICAgIHsKICAgICAgICAgICAgICQkPSBuZXcgKFlZVEhE LT5tZW1fcm9vdCkgSXRlbV9mdW5jX3VzZXIoKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxM KQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgTGV4LT5zZXRfc3Rt dF91bnNhZmUoKTsKICAgICAgICAgICAgIExleC0+c2FmZV90b19jYWNoZV9xdWVyeT0wOwogICAg ICAgICAgIH0KICAgICAgICAgfCBZRUFSX1NZTSAnKCcgZXhwciAnKScKLSAgICAgICAgICB7ICQk PSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3llYXIoJDMpOyB9CisgICAgICAgICAg eworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfeWVhcigk Myk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIDsKIAogLyoKQEAgLTczMjQsNjUgKzc2OTgsMTI3 IEBAIGZ1bmN0aW9uX2NhbGxfbm9ua2V5d29yZDoKICAgICAgICAgICB7CiAgICAgICAgICAgICAk JD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZGF0ZV9hZGRfaW50ZXJ2YWwoJDMsICQ1LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElOVEVSVkFMX0RBWSwgMCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAg ICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIHwgQUREREFURV9T WU0gJygnIGV4cHIgJywnIElOVEVSVkFMX1NZTSBleHByIGludGVydmFsICcpJwotICAgICAgICAg IHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2RhdGVfYWRkX2ludGVydmFsKCQzLCAk NiwgJDcsIDApOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1l bV9yb290KSBJdGVtX2RhdGVfYWRkX2ludGVydmFsKCQzLCAkNiwgJDcsIDApOworICAgICAgICAg ICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAg ICAgfQogICAgICAgICB8IENVUkRBVEUgb3B0aW9uYWxfYnJhY2VzCiAgICAgICAgICAgewogICAg ICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfY3VyZGF0ZV9sb2Nh bCgpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZ QUJPUlQ7CiAgICAgICAgICAgICBMZXgtPnNhZmVfdG9fY2FjaGVfcXVlcnk9MDsKICAgICAgICAg ICB9CiAgICAgICAgIHwgQ1VSVElNRSBvcHRpb25hbF9icmFjZXMKICAgICAgICAgICB7CiAgICAg ICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19jdXJ0aW1lX2xvY2Fs KCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKICAgICAgICAgICAgIExleC0+c2FmZV90b19jYWNoZV9xdWVyeT0wOwogICAgICAgICAg IH0KICAgICAgICAgfCBDVVJUSU1FICcoJyBleHByICcpJwogICAgICAgICAgIHsKICAgICAgICAg ICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2N1cnRpbWVfbG9jYWwoJDMp OworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJP UlQ7CiAgICAgICAgICAgICBMZXgtPnNhZmVfdG9fY2FjaGVfcXVlcnk9MDsKICAgICAgICAgICB9 Ci0gICAgICAgIHwgREFURV9BRERfSU5URVJWQUwgJygnIGV4cHIgJywnIElOVEVSVkFMX1NZTSBl eHByIGludGVydmFsICcpJyAlcHJlYyBJTlRFUlZBTF9TWU0KLSAgICAgICAgICB7ICQkPSBuZXcg KFlZVEhELT5tZW1fcm9vdCkgSXRlbV9kYXRlX2FkZF9pbnRlcnZhbCgkMywkNiwkNywwKTsgfQot ICAgICAgICB8IERBVEVfU1VCX0lOVEVSVkFMICcoJyBleHByICcsJyBJTlRFUlZBTF9TWU0gZXhw ciBpbnRlcnZhbCAnKScgJXByZWMgSU5URVJWQUxfU1lNCi0gICAgICAgICAgeyAkJD0gbmV3IChZ WVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZGF0ZV9hZGRfaW50ZXJ2YWwoJDMsJDYsJDcsMSk7IH0KKyAg ICAgICAgfCBEQVRFX0FERF9JTlRFUlZBTCAnKCcgZXhwciAnLCcgSU5URVJWQUxfU1lNIGV4cHIg aW50ZXJ2YWwgJyknCisgICAgICAgICAgJXByZWMgSU5URVJWQUxfU1lNCisgICAgICAgICAgewor ICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2RhdGVfYWRkX2ludGVy dmFsKCQzLCQ2LCQ3LDApOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQorICAgICAgICB8IERBVEVfU1VCX0lOVEVS VkFMICcoJyBleHByICcsJyBJTlRFUlZBTF9TWU0gZXhwciBpbnRlcnZhbCAnKScKKyAgICAgICAg ICAlcHJlYyBJTlRFUlZBTF9TWU0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZ WVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZGF0ZV9hZGRfaW50ZXJ2YWwoJDMsJDYsJDcsMSk7CisgICAg ICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAg ICAgICAgICB9CiAgICAgICAgIHwgRVhUUkFDVF9TWU0gJygnIGludGVydmFsIEZST00gZXhwciAn KScKLSAgICAgICAgICB7ICQkPW5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2V4dHJhY3QoICQz LCAkNSk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD1uZXcgKFlZVEhELT5tZW1fcm9v dCkgSXRlbV9leHRyYWN0KCAkMywgJDUpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisg ICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IEdFVF9G T1JNQVQgJygnIGRhdGVfdGltZV90eXBlICAnLCcgZXhwciAnKScKLSAgICAgICAgICB7ICQkPSBu ZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2dldF9mb3JtYXQoJDMsICQ1KTsgfQorICAg ICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5j X2dldF9mb3JtYXQoJDMsICQ1KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBOT1dfU1lNIG9w dGlvbmFsX2JyYWNlcwogICAgICAgICAgIHsKICAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5t ZW1fcm9vdCkgSXRlbV9mdW5jX25vd19sb2NhbCgpOworICAgICAgICAgICAgaWYgKCQkID09IE5V TEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICBMZXgtPnNhZmVf dG9fY2FjaGVfcXVlcnk9MDsKICAgICAgICAgICB9CiAgICAgICAgIHwgTk9XX1NZTSAnKCcgZXhw ciAnKScKICAgICAgICAgICB7CiAgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3Qp IEl0ZW1fZnVuY19ub3dfbG9jYWwoJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisg ICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICBMZXgtPnNhZmVfdG9fY2Fj aGVfcXVlcnk9MDsKICAgICAgICAgICB9CiAgICAgICAgIHwgUE9TSVRJT05fU1lNICcoJyBiaXRf ZXhwciBJTl9TWU0gZXhwciAnKScKLSAgICAgICAgICB7ICQkID0gbmV3IChZWVRIRC0+bWVtX3Jv b3QpIEl0ZW1fZnVuY19sb2NhdGUoJDUsJDMpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAg JCQgPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2xvY2F0ZSgkNSwkMyk7CisgICAg ICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAg ICAgICAgICB9CiAgICAgICAgIHwgU1VCREFURV9TWU0gJygnIGV4cHIgJywnIGV4cHIgJyknCiAg ICAgICAgICAgewogICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Rh dGVfYWRkX2ludGVydmFsKCQzLCAkNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTlRFUlZBTF9EQVksIDEpOworICAgICAgICAg ICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAg ICAgfQogICAgICAgICB8IFNVQkRBVEVfU1lNICcoJyBleHByICcsJyBJTlRFUlZBTF9TWU0gZXhw ciBpbnRlcnZhbCAnKScKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRl bV9kYXRlX2FkZF9pbnRlcnZhbCgkMywgJDYsICQ3LCAxKTsgfQorICAgICAgICAgIHsKKyAgICAg ICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9kYXRlX2FkZF9pbnRlcnZhbCgk MywgJDYsICQ3LCAxKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBTVUJTVFJJTkcgJygnIGV4 cHIgJywnIGV4cHIgJywnIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVt X3Jvb3QpIEl0ZW1fZnVuY19zdWJzdHIoJDMsJDUsJDcpOyB9CisgICAgICAgICAgeworICAgICAg ICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfc3Vic3RyKCQzLCQ1LCQ3 KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBTVUJTVFJJTkcgJygnIGV4cHIgJywnIGV4cHIg JyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19zdWJz dHIoJDMsJDUpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1l bV9yb290KSBJdGVtX2Z1bmNfc3Vic3RyKCQzLCQ1KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBO VUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAg fCBTVUJTVFJJTkcgJygnIGV4cHIgRlJPTSBleHByIEZPUl9TWU0gZXhwciAnKScKLSAgICAgICAg ICB7ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3N1YnN0cigkMywkNSwkNyk7 IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0 ZW1fZnVuY19zdWJzdHIoJDMsJDUsJDcpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisg ICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IFNVQlNU UklORyAnKCcgZXhwciBGUk9NIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+ bWVtX3Jvb3QpIEl0ZW1fZnVuY19zdWJzdHIoJDMsJDUpOyB9CisgICAgICAgICAgeworICAgICAg ICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfc3Vic3RyKCQzLCQ1KTsK KyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OworICAgICAgICAgIH0KICAgICAgICAgfCBTWVNEQVRFIG9wdGlvbmFsX2JyYWNlcwogICAgICAg ICAgIHsKICAgICAgICAgICAgIGlmIChnbG9iYWxfc3lzdGVtX3ZhcmlhYmxlcy5zeXNkYXRlX2lz X25vdyA9PSAwKQogICAgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1f ZnVuY19zeXNkYXRlX2xvY2FsKCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICQk PSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX25vd19sb2NhbCgpOworICAgICAgICAg ICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAg ICAgICBMZXgtPnNhZmVfdG9fY2FjaGVfcXVlcnk9MDsKICAgICAgICAgICB9CiAgICAgICAgIHwg U1lTREFURSAnKCcgZXhwciAnKScKQEAgLTczOTEsMjUgKzc4MjcsNDEgQEAgZnVuY3Rpb25fY2Fs bF9ub25rZXl3b3JkOgogICAgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0 ZW1fZnVuY19zeXNkYXRlX2xvY2FsKCQzKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg ICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfbm93X2xvY2FsKCQzKTsKKyAg ICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwog ICAgICAgICAgICAgTGV4LT5zYWZlX3RvX2NhY2hlX3F1ZXJ5PTA7CiAgICAgICAgICAgfQogICAg ICAgICB8IFRJTUVTVEFNUF9BREQgJygnIGludGVydmFsX3RpbWVfc3RhbXAgJywnIGV4cHIgJywn IGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZGF0 ZV9hZGRfaW50ZXJ2YWwoJDcsJDUsJDMsMCk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAk JD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZGF0ZV9hZGRfaW50ZXJ2YWwoJDcsJDUsJDMs MCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgVElNRVNUQU1QX0RJRkYgJygnIGludGVydmFs X3RpbWVfc3RhbXAgJywnIGV4cHIgJywnIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZ WVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY190aW1lc3RhbXBfZGlmZigkNSwkNywkMyk7IH0KKyAg ICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVu Y190aW1lc3RhbXBfZGlmZigkNSwkNywkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkK KyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgVVRD X0RBVEVfU1lNIG9wdGlvbmFsX2JyYWNlcwogICAgICAgICAgIHsKICAgICAgICAgICAgICQkPSBu ZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2N1cmRhdGVfdXRjKCk7CisgICAgICAgICAg ICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAg ICAgIExleC0+c2FmZV90b19jYWNoZV9xdWVyeT0wOwogICAgICAgICAgIH0KICAgICAgICAgfCBV VENfVElNRV9TWU0gb3B0aW9uYWxfYnJhY2VzCiAgICAgICAgICAgewogICAgICAgICAgICAgJCQ9 IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfY3VydGltZV91dGMoKTsKKyAgICAgICAg ICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAg ICAgICAgTGV4LT5zYWZlX3RvX2NhY2hlX3F1ZXJ5PTA7CiAgICAgICAgICAgfQogICAgICAgICB8 IFVUQ19USU1FU1RBTVBfU1lNIG9wdGlvbmFsX2JyYWNlcwogICAgICAgICAgIHsKICAgICAgICAg ICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX25vd191dGMoKTsKKyAgICAg ICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAg ICAgICAgICAgTGV4LT5zYWZlX3RvX2NhY2hlX3F1ZXJ5PTA7CiAgICAgICAgICAgfQogICAgICAg ICA7CkBAIC03NDIxLDI2ICs3ODczLDYwIEBAIGZ1bmN0aW9uX2NhbGxfbm9ua2V5d29yZDoKICov CiBmdW5jdGlvbl9jYWxsX2NvbmZsaWN0OgogICAgICAgICAgIEFTQ0lJX1NZTSAnKCcgZXhwciAn KScKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2FzY2lp KCQzKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9v dCkgSXRlbV9mdW5jX2FzY2lpKCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAg ICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBDSEFSU0VU ICcoJyBleHByICcpJwotICAgICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVt X2Z1bmNfY2hhcnNldCgkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZ WVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19jaGFyc2V0KCQzKTsKKyAgICAgICAgICAgIGlmICgk JCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAg ICAgICAgfCBDT0FMRVNDRSAnKCcgZXhwcl9saXN0ICcpJwotICAgICAgICAgIHsgJCQ9IG5ldyAo WVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfY29hbGVzY2UoKiAkMyk7IH0KKyAgICAgICAgICB7 CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19jb2FsZXNj ZSgqICQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBDT0xMQVRJT05fU1lNICcoJyBleHBy ICcpJwotICAgICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfY29s bGF0aW9uKCQzKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5t ZW1fcm9vdCkgSXRlbV9mdW5jX2NvbGxhdGlvbigkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0g TlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAg IHwgREFUQUJBU0UgJygnICcpJwogICAgICAgICAgIHsKICAgICAgICAgICAgICQkPSBuZXcgKFlZ VEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2RhdGFiYXNlKCk7CisgICAgICAgICAgICBpZiAoJCQg PT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICAgIExleC0+ c2FmZV90b19jYWNoZV9xdWVyeT0wOwogICAgICAgICAgIH0KICAgICAgICAgfCBJRiAnKCcgZXhw ciAnLCcgZXhwciAnLCcgZXhwciAnKScKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZVEhELT5tZW1f cm9vdCkgSXRlbV9mdW5jX2lmKCQzLCQ1LCQ3KTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAg ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX2lmKCQzLCQ1LCQ3KTsKKyAgICAg ICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAg ICAgICAgIH0KICAgICAgICAgfCBNSUNST1NFQ09ORF9TWU0gJygnIGV4cHIgJyknCi0gICAgICAg ICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19taWNyb3NlY29uZCgkMyk7 IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0 ZW1fZnVuY19taWNyb3NlY29uZCgkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAg ICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgTU9EX1NZ TSAnKCcgZXhwciAnLCcgZXhwciAnKScKLSAgICAgICAgICB7ICQkID0gbmV3IChZWVRIRC0+bWVt X3Jvb3QpIEl0ZW1fZnVuY19tb2QoICQzLCAkNSk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAg ICAkJCA9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfbW9kKCQzLCAkNSk7CisgICAg ICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAg ICAgICAgICB9CiAgICAgICAgIHwgT0xEX1BBU1NXT1JEICcoJyBleHByICcpJwotICAgICAgICAg IHsgJCQ9ICBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX29sZF9wYXNzd29yZCgkMyk7 IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gIG5ldyAoWVlUSEQtPm1lbV9yb290KSBJ dGVtX2Z1bmNfb2xkX3Bhc3N3b3JkKCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBQQVNT V09SRCAnKCcgZXhwciAnKScKICAgICAgICAgICB7CiAgICAgICAgICAgICBUSEQgKnRoZD0gWVlU SEQ7CkBAIC03NDQ5LDUxICs3OTM1LDk1IEBAIGZ1bmN0aW9uX2NhbGxfY29uZmxpY3Q6CiAgICAg ICAgICAgICAgIGkxPSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19vbGRfcGFzc3dvcmQo JDMpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICBpMT0gbmV3ICh0aGQtPm1lbV9y b290KSBJdGVtX2Z1bmNfcGFzc3dvcmQoJDMpOworICAgICAgICAgICAgaWYgKGkxID09IE5VTEwp CisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICAkJD0gaTE7CiAgICAg ICAgICAgfQogICAgICAgICB8IFFVQVJURVJfU1lNICcoJyBleHByICcpJwotICAgICAgICAgIHsg JCQgPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3F1YXJ0ZXIoJDMpOyB9CisgICAg ICAgICAgeworICAgICAgICAgICAgJCQgPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5j X3F1YXJ0ZXIoJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IFJFUEVBVF9TWU0gJygnIGV4 cHIgJywnIGV4cHIgJyknCi0gICAgICAgICAgeyAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0 ZW1fZnVuY19yZXBlYXQoJDMsJDUpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5l dyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfcmVwZWF0KCQzLCQ1KTsKKyAgICAgICAgICAg IGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAg IH0KICAgICAgICAgfCBSRVBMQUNFICcoJyBleHByICcsJyBleHByICcsJyBleHByICcpJwotICAg ICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfcmVwbGFjZSgkMywk NSwkNyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jv b3QpIEl0ZW1fZnVuY19yZXBsYWNlKCQzLCQ1LCQ3KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBO VUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAg fCBSRVZFUlNFX1NZTSAnKCcgZXhwciAnKScKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZVEhELT5t ZW1fcm9vdCkgSXRlbV9mdW5jX3JldmVyc2UoJDMpOyB9CisgICAgICAgICAgeworICAgICAgICAg ICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfcmV2ZXJzZSgkMyk7CisgICAg ICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAg ICAgICAgICB9CiAgICAgICAgIHwgVFJVTkNBVEVfU1lNICcoJyBleHByICcsJyBleHByICcpJwot ICAgICAgICAgIHsgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfcm91bmQoJDMs JDUsMSk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jv b3QpIEl0ZW1fZnVuY19yb3VuZCgkMywkNSwxKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxM KQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBX RUVLX1NZTSAnKCcgZXhwciAnKScKICAgICAgICAgICB7CiAgICAgICAgICAgICBUSEQgKnRoZD0g WVlUSEQ7CiAgICAgICAgICAgICBJdGVtICppMT0gbmV3ICh0aGQtPm1lbV9yb290KSBJdGVtX2lu dCgoY2hhciopICIwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aGQtPnZhcmlhYmxlcy5kZWZhdWx0X3dlZWtfZm9ybWF0LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSk7Ci0KKyAgICAgICAgICAgIGlmIChp MSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgJCQ9 IG5ldyAodGhkLT5tZW1fcm9vdCkgSXRlbV9mdW5jX3dlZWsoJDMsIGkxKTsKKyAgICAgICAgICAg IGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAg IH0KICAgICAgICAgfCBXRUVLX1NZTSAnKCcgZXhwciAnLCcgZXhwciAnKScKLSAgICAgICAgICB7 ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3dlZWsoJDMsJDUpOyB9CisgICAg ICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNf d2VlaygkMywkNSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgV0VJR0hUX1NUUklOR19TWU0g JygnIGV4cHIgb3B0X3dzX2xldmVscyAnKScKLSAgICAgICAgICB7ICQkPSBuZXcgKFlZVEhELT5t ZW1fcm9vdCkgSXRlbV9mdW5jX3dlaWdodF9zdHJpbmcoJDMsIDAsIDAsICQ0KTsgfQorICAgICAg ICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3dl aWdodF9zdHJpbmcoJDMsIDAsIDAsICQ0KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQor ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBXRUlH SFRfU1RSSU5HX1NZTSAnKCcgZXhwciBBUyBDSEFSX1NZTSB3c19ud2VpZ2h0cyBvcHRfd3NfbGV2 ZWxzICcpJwogICAgICAgICAgIHsKICAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9v dCkKICAgICAgICAgICAgICAgICBJdGVtX2Z1bmNfd2VpZ2h0X3N0cmluZygkMywgMCwgJDYsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDcgfCBNWV9TVFJYRlJNX1BB RF9XSVRIX1NQQUNFKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgIH0KICAgICAgICAgfCBXRUlHSFRfU1RSSU5HX1NZ TSAnKCcgZXhwciBBUyBCSU5BUlkgd3NfbndlaWdodHMgJyknCiAgICAgICAgICAgewotICAgICAg ICAgICAgJDM9IGNyZWF0ZV9mdW5jX2NoYXJfY2FzdChZWVRIRCwgJDMsICQ2LCAmbXlfY2hhcnNl dF9iaW4pOworICAgICAgICAgICAgSXRlbSAqaXRlbT0gY3JlYXRlX2Z1bmNfY2hhcl9jYXN0KFlZ VEhELCAkMywgJDYsICZteV9jaGFyc2V0X2Jpbik7CisgICAgICAgICAgICBpZiAoaXRlbSA9PSBO VUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgJCQ9IG5ldyAo WVlUSEQtPm1lbV9yb290KQotICAgICAgICAgICAgICAgIEl0ZW1fZnVuY193ZWlnaHRfc3RyaW5n KCQzLCAwLCAkNiwgTVlfU1RSWEZSTV9QQURfV0lUSF9TUEFDRSk7CisgICAgICAgICAgICAgICAg SXRlbV9mdW5jX3dlaWdodF9zdHJpbmcoaXRlbSwgMCwgJDYsIE1ZX1NUUlhGUk1fUEFEX1dJVEhf U1BBQ0UpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FM X1lZQUJPUlQ7CiAgICAgICAgICAgfQogICAgICAgICB8IFdFSUdIVF9TVFJJTkdfU1lNICcoJyBl eHByICcsJyB1bG9uZ19udW0gJywnIHVsb25nX251bSAnLCcgdWxvbmdfbnVtICcpJwogICAgICAg ICAgIHsKICAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mdW5jX3dl aWdodF9zdHJpbmcoJDMsICQ1LCAkNywgJDkpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwp CisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgfQogICAgICAgICB8IGdl b21ldHJ5X2Z1bmN0aW9uCiAgICAgICAgICAgewogI2lmZGVmIEhBVkVfU1BBVElBTAogICAgICAg ICAgICAgJCQ9ICQxOworICAgICAgICAgICAgLyogJDEgbWF5IGJlIE5VTEwsIEdFT01fTkVXIG5v dCB0ZXN0ZWQgZm9yIG91dCBvZiBtZW1vcnkgKi8KKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxM KQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogI2Vsc2UKICAgICAgICAgICAgIG15X2Vy cm9yKEVSX0ZFQVRVUkVfRElTQUJMRUQsIE1ZRigwKSwKICAgICAgICAgICAgICAgICAgICAgIHN5 bV9ncm91cF9nZW9tLm5hbWUsIHN5bV9ncm91cF9nZW9tLm5lZWRlZF9kZWZpbmUpOwpAQCAtNzUw Miw2ICs4MDMyLDcgQEAgZnVuY3Rpb25fY2FsbF9jb25mbGljdDoKICAgICAgICAgICB9CiAgICAg ICAgIDsKIAorLyogbWF5IHJldHVybiBOVUxMICovCiBnZW9tZXRyeV9mdW5jdGlvbjoKICAgICAg ICAgICBDT05UQUlOU19TWU0gJygnIGV4cHIgJywnIGV4cHIgJyknCiAgICAgICAgICAgewpAQCAt NzU0NSw3ICs4MDc2LDkgQEAgZ2VvbWV0cnlfZnVuY3Rpb246CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBHZW9tZXRyeTo6d2tiX3BvbHlnb24pKTsKICAgICAgICAgICB9CiAgICAgICAgIHwg UE9JTlRfU1lNICcoJyBleHByICcsJyBleHByICcpJwotICAgICAgICAgIHsgJCQ9IEdFT01fTkVX KFlZVEhELCBJdGVtX2Z1bmNfcG9pbnQoJDMsJDUpKTsgfQorICAgICAgICAgIHsKKyAgICAgICAg ICAgICQkPSBHRU9NX05FVyhZWVRIRCwgSXRlbV9mdW5jX3BvaW50KCQzLCQ1KSk7CisgICAgICAg ICAgfQogICAgICAgICB8IFBPTFlHT04gJygnIGV4cHJfbGlzdCAnKScKICAgICAgICAgICB7CiAg ICAgICAgICAgICAkJD0gR0VPTV9ORVcoWVlUSEQsCkBAIC03NjkwLDYgKzgyMjMsOCBAQCB1ZGZf ZXhwcl9saXN0OgogICAgICAgICAgIHVkZl9leHByCiAgICAgICAgICAgewogICAgICAgICAgICAg JCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBMaXN0PEl0ZW0+OworICAgICAgICAgICAgaWYgKCQk ID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICAkJC0+ cHVzaF9iYWNrKCQxKTsKICAgICAgICAgICB9CiAgICAgICAgIHwgdWRmX2V4cHJfbGlzdCAnLCcg dWRmX2V4cHIKQEAgLTc3MjEsNTAgKzgyNTYsMTI1IEBAIHVkZl9leHByOgogCiBzdW1fZXhwcjoK ICAgICAgICAgICBBVkdfU1lNICcoJyBpbl9zdW1fZXhwciAnKScKLSAgICAgICAgICB7ICQkPW5l dyBJdGVtX3N1bV9hdmcoJDMpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAo WVlUSEQtPm1lbV9yb290KSBJdGVtX3N1bV9hdmcoJDMpOworICAgICAgICAgICAgaWYgKCQkID09 IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAg ICB8IEFWR19TWU0gJygnIERJU1RJTkNUIGluX3N1bV9leHByICcpJwotICAgICAgICAgIHsgJCQ9 bmV3IEl0ZW1fc3VtX2F2Z19kaXN0aW5jdCgkNCk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAg ICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fc3VtX2F2Z19kaXN0aW5jdCgkNCk7Cisg ICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsK KyAgICAgICAgICB9CiAgICAgICAgIHwgQklUX0FORCAgJygnIGluX3N1bV9leHByICcpJwotICAg ICAgICAgIHsgJCQ9bmV3IEl0ZW1fc3VtX2FuZCgkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAg ICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fc3VtX2FuZCgkMyk7CisgICAgICAg ICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAg ICAgICB9CiAgICAgICAgIHwgQklUX09SICAnKCcgaW5fc3VtX2V4cHIgJyknCi0gICAgICAgICAg eyAkJD1uZXcgSXRlbV9zdW1fb3IoJDMpOyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9 IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX3N1bV9vcigkMyk7CisgICAgICAgICAgICBpZiAo JCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAg ICAgICAgIHwgQklUX1hPUiAgJygnIGluX3N1bV9leHByICcpJwotICAgICAgICAgIHsgJCQ9bmV3 IEl0ZW1fc3VtX3hvcigkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZ WVRIRC0+bWVtX3Jvb3QpIEl0ZW1fc3VtX3hvcigkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0g TlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAg IHwgQ09VTlRfU1lNICcoJyBvcHRfYWxsICcqJyAnKScKLSAgICAgICAgICB7ICQkPW5ldyBJdGVt X3N1bV9jb3VudChuZXcgSXRlbV9pbnQoKGludDMyKSAwTCwxKSk7IH0KKyAgICAgICAgICB7Cisg ICAgICAgICAgICBJdGVtICppdGVtPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9pbnQoKGlu dDMyKSAwTCwxKTsKKyAgICAgICAgICAgIGlmIChpdGVtID09IE5VTEwpCisgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0 ZW1fc3VtX2NvdW50KGl0ZW0pOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAg ICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IENPVU5UX1NZTSAn KCcgaW5fc3VtX2V4cHIgJyknCi0gICAgICAgICAgeyAkJD1uZXcgSXRlbV9zdW1fY291bnQoJDMp OyB9CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJ dGVtX3N1bV9jb3VudCgkMyk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgQ09VTlRfU1lNICco JyBESVNUSU5DVAogICAgICAgICAgIHsgU2VsZWN0LT5pbl9zdW1fZXhwcisrOyB9CiAgICAgICAg ICAgZXhwcl9saXN0CiAgICAgICAgICAgeyBTZWxlY3QtPmluX3N1bV9leHByLS07IH0KICAgICAg ICAgICAnKScKLSAgICAgICAgICB7ICQkPW5ldyBJdGVtX3N1bV9jb3VudF9kaXN0aW5jdCgqICQ1 KTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkg SXRlbV9zdW1fY291bnRfZGlzdGluY3QoKiAkNSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVM TCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwg TUlOX1NZTSAnKCcgaW5fc3VtX2V4cHIgJyknCi0gICAgICAgICAgeyAkJD1uZXcgSXRlbV9zdW1f bWluKCQzKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1f cm9vdCkgSXRlbV9zdW1fbWluKCQzKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAg ICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgLyoKICAgICAg ICAgICBBY2NvcmRpbmcgdG8gQU5TSSBTUUwsIERJU1RJTkNUIGlzIGFsbG93ZWQgYW5kIGhhcwog ICAgICAgICAgIG5vIHNlbnNlIGluc2lkZSBNSU4gYW5kIE1BWCBncm91cGluZyBmdW5jdGlvbnM7 IHNvIE1JTnxNQVgoRElTVElOQ1QgLi4uKQogICAgICAgICAgIGlzIHByb2Nlc3NlZCBsaWtlIGFu IG9yZGluYXJ5IE1JTiB8IE1BWCgpCiAgICAgICAgICovCiAgICAgICAgIHwgTUlOX1NZTSAnKCcg RElTVElOQ1QgaW5fc3VtX2V4cHIgJyknCi0gICAgICAgICAgeyAkJD1uZXcgSXRlbV9zdW1fbWlu KCQ0KTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9v dCkgSXRlbV9zdW1fbWluKCQ0KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBNQVhfU1lNICco JyBpbl9zdW1fZXhwciAnKScKLSAgICAgICAgICB7ICQkPW5ldyBJdGVtX3N1bV9tYXgoJDMpOyB9 CisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVt X3N1bV9tYXgoJDMpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IE1BWF9TWU0gJygnIERJU1RJ TkNUIGluX3N1bV9leHByICcpJwotICAgICAgICAgIHsgJCQ9bmV3IEl0ZW1fc3VtX21heCgkNCk7 IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0 ZW1fc3VtX21heCgkNCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAg ICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CiAgICAgICAgIHwgU1REX1NZTSAnKCcgaW5f c3VtX2V4cHIgJyknCi0gICAgICAgICAgeyAkJD1uZXcgSXRlbV9zdW1fc3RkKCQzLCAwKTsgfQor ICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9z dW1fc3RkKCQzLCAwKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBWQVJJQU5DRV9TWU0gJygn IGluX3N1bV9leHByICcpJwotICAgICAgICAgIHsgJCQ9bmV3IEl0ZW1fc3VtX3ZhcmlhbmNlKCQz LCAwKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9v dCkgSXRlbV9zdW1fdmFyaWFuY2UoJDMsIDApOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwp CisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICB8IFNU RERFVl9TQU1QX1NZTSAnKCcgaW5fc3VtX2V4cHIgJyknCi0gICAgICAgICAgeyAkJD1uZXcgSXRl bV9zdW1fc3RkKCQzLCAxKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZ VEhELT5tZW1fcm9vdCkgSXRlbV9zdW1fc3RkKCQzLCAxKTsKKyAgICAgICAgICAgIGlmICgkJCA9 PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAg ICAgfCBWQVJfU0FNUF9TWU0gJygnIGluX3N1bV9leHByICcpJwotICAgICAgICAgIHsgJCQ9bmV3 IEl0ZW1fc3VtX3ZhcmlhbmNlKCQzLCAxKTsgfQorICAgICAgICAgIHsKKyAgICAgICAgICAgICQk PSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9zdW1fdmFyaWFuY2UoJDMsIDEpOworICAgICAg ICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAg ICAgICAgfQogICAgICAgICB8IFNVTV9TWU0gJygnIGluX3N1bV9leHByICcpJwotICAgICAgICAg IHsgJCQ9bmV3IEl0ZW1fc3VtX3N1bSgkMyk7IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAk JD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fc3VtX3N1bSgkMyk7CisgICAgICAgICAgICBp ZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9 CiAgICAgICAgIHwgU1VNX1NZTSAnKCcgRElTVElOQ1QgaW5fc3VtX2V4cHIgJyknCi0gICAgICAg ICAgeyAkJD1uZXcgSXRlbV9zdW1fc3VtX2Rpc3RpbmN0KCQ0KTsgfQorICAgICAgICAgIHsKKyAg ICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9zdW1fc3VtX2Rpc3RpbmN0 KCQ0KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBHUk9VUF9DT05DQVRfU1lNICcoJyBvcHRf ZGlzdGluY3QKICAgICAgICAgICB7IFNlbGVjdC0+aW5fc3VtX2V4cHIrKzsgfQogICAgICAgICAg IGV4cHJfbGlzdCBvcHRfZ29yZGVyX2NsYXVzZQpAQCAtNzc3Myw4ICs4MzgzLDExIEBAIHN1bV9l eHByOgogICAgICAgICAgIHsKICAgICAgICAgICAgIFNFTEVDVF9MRVggKnNlbD0gU2VsZWN0Owog ICAgICAgICAgICAgc2VsLT5pbl9zdW1fZXhwci0tOwotICAgICAgICAgICAgJCQ9bmV3IEl0ZW1f ZnVuY19ncm91cF9jb25jYXQoTGV4LT5jdXJyZW50X2NvbnRleHQoKSwgJDMsICQ1LAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsLT5nb3JkZXJfbGlzdCwgJDcp OworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KQorICAgICAgICAgICAgICAg ICAgSXRlbV9mdW5jX2dyb3VwX2NvbmNhdChMZXgtPmN1cnJlbnRfY29udGV4dCgpLCAkMywgJDUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbC0+Z29yZGVyX2xp c3QsICQ3KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOwogICAgICAgICAgICAgJDUtPmVtcHR5KCk7CiAgICAgICAgICAgfQogICAgICAg ICA7CkBAIC03Nzk3LDEzICs4NDEwLDE3IEBAIHZhcmlhYmxlOgogdmFyaWFibGVfYXV4OgogICAg ICAgICAgIGlkZW50X29yX3RleHQgU0VUX1ZBUiBleHByCiAgICAgICAgICAgewotICAgICAgICAg ICAgJCQ9IG5ldyBJdGVtX2Z1bmNfc2V0X3VzZXJfdmFyKCQxLCAkMyk7CisgICAgICAgICAgICAk JD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fZnVuY19zZXRfdXNlcl92YXIoJDEsICQzKTsK KyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OwogICAgICAgICAgICAgTEVYICpsZXg9IExleDsKICAgICAgICAgICAgIGxleC0+dW5jYWNoZWFi bGUoVU5DQUNIRUFCTEVfUkFORCk7CiAgICAgICAgICAgfQogICAgICAgICB8IGlkZW50X29yX3Rl eHQKICAgICAgICAgICB7Ci0gICAgICAgICAgICAkJD0gbmV3IEl0ZW1fZnVuY19nZXRfdXNlcl92 YXIoJDEpOworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNf Z2V0X3VzZXJfdmFyKCQxKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgTEVYICpsZXg9IExleDsKICAgICAgICAg ICAgIGxleC0+dW5jYWNoZWFibGUoVU5DQUNIRUFCTEVfUkFORCk7CiAgICAgICAgICAgfQpAQCAt NzgyOSw5ICs4NDQ2LDExIEBAIG9wdF9kaXN0aW5jdDoKIAogb3B0X2djb25jYXRfc2VwYXJhdG9y OgogICAgICAgICAgIC8qIGVtcHR5ICovCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICQk PSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgU3RyaW5nKCIsIiwgMSwgJm15X2NoYXJzZXRfbGF0aW4x KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRI RC0+bWVtX3Jvb3QpIFN0cmluZygiLCIsIDEsICZteV9jaGFyc2V0X2xhdGluMSk7CisgICAgICAg ICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAg ICAgICB9CiAgICAgICAgIHwgU0VQQVJBVE9SX1NZTSB0ZXh0X3N0cmluZyB7ICQkID0gJDI7IH0K ICAgICAgICAgOwogCkBAIC03ODQ2LDYgKzg0NjUsOCBAQCBvcHRfZ29yZGVyX2NsYXVzZToKICAg ICAgICAgICAgIHNlbGVjdC0+Z29yZGVyX2xpc3Q9CiAgICAgICAgICAgICAgIChTUUxfTElTVCop IHNxbF9tZW1kdXAoKGNoYXIqKSAmc2VsZWN0LT5vcmRlcl9saXN0LAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdF9zcWxfbGlzdCkpOworICAgICAgICAgICAg aWYgKHNlbGVjdC0+Z29yZGVyX2xpc3QgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKICAgICAgICAgICAgIHNlbGVjdC0+b3JkZXJfbGlzdC5lbXB0eSgpOwogICAgICAgICAg IH0KICAgICAgICAgOwpAQCAtNzkwMSw2ICs4NTIyLDggQEAgZXhwcl9saXN0OgogICAgICAgICAg IGV4cHIKICAgICAgICAgICB7CiAgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3Qp IExpc3Q8SXRlbT47CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKICAgICAgICAgICAgICQkLT5wdXNoX2JhY2soJDEpOwogICAgICAgICAg IH0KICAgICAgICAgfCBleHByX2xpc3QgJywnIGV4cHIKQEAgLTc5MTksNiArODU0Miw4IEBAIGlk ZW50X2xpc3Q6CiAgICAgICAgICAgc2ltcGxlX2lkZW50CiAgICAgICAgICAgewogICAgICAgICAg ICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBMaXN0PEl0ZW0+OworICAgICAgICAgICAgaWYg KCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICAk JC0+cHVzaF9iYWNrKCQxKTsKICAgICAgICAgICB9CiAgICAgICAgIHwgaWRlbnRfbGlzdCAnLCcg c2ltcGxlX2lkZW50CkBAIC03OTQyLDYgKzg1NjcsOCBAQCB3aGVuX2xpc3Q6CiAgICAgICAgICAg V0hFTl9TWU0gZXhwciBUSEVOX1NZTSBleHByCiAgICAgICAgICAgewogICAgICAgICAgICAgJCQ9 IG5ldyBMaXN0PEl0ZW0+OworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAg ICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICAkJC0+cHVzaF9iYWNrKCQyKTsKICAgICAg ICAgICAgICQkLT5wdXNoX2JhY2soJDQpOwogICAgICAgICAgIH0KQEAgLTg0NDQsMTUgKzkwNzEs MjEgQEAgdXNpbmdfbGlzdDoKICAgICAgICAgICB7CiAgICAgICAgICAgICBpZiAoISgkJD0gbmV3 IExpc3Q8U3RyaW5nPikpCiAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7Ci0gICAgICAgICAg ICAkJC0+cHVzaF9iYWNrKG5ldyAoWVlUSEQtPm1lbV9yb290KQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3RyaW5nKChjb25zdCBjaGFyICopICQxLnN0ciwgJDEubGVuZ3RoLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW1fY2hhcnNldF9pbmZvKSk7 CisgICAgICAgICAgICBTdHJpbmcgKnM9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBTdHJpbmcoKGNv bnN0IGNoYXIgKikgJDEuc3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICQxLmxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW1fY2hhcnNldF9pbmZvKTsKKyAgICAgICAgICAg IGlmIChzID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAg ICAkJC0+cHVzaF9iYWNrKHMpOwogICAgICAgICAgIH0KICAgICAgICAgfCB1c2luZ19saXN0ICcs JyBpZGVudAogICAgICAgICAgIHsKLSAgICAgICAgICAgICQxLT5wdXNoX2JhY2sobmV3IChZWVRI RC0+bWVtX3Jvb3QpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcoKGNvbnN0 IGNoYXIgKikgJDMuc3RyLCAkMy5sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN5c3RlbV9jaGFyc2V0X2luZm8pKTsKKyAgICAgICAgICAgIFN0cmluZyAqcz0g bmV3IChZWVRIRC0+bWVtX3Jvb3QpIFN0cmluZygoY29uc3QgY2hhciAqKSAkMy5zdHIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDMubGVuZ3Ro LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5 c3RlbV9jaGFyc2V0X2luZm8pOworICAgICAgICAgICAgaWYgKHMgPT0gTlVMTCkKKyAgICAgICAg ICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICAgICQxLT5wdXNoX2JhY2socyk7CiAgICAg ICAgICAgICAkJD0gJDE7CiAgICAgICAgICAgfQogICAgICAgICA7CkBAIC04NTIwLDcgKzkxNTMs MTEgQEAgdGFibGVfYWxpYXM6CiBvcHRfdGFibGVfYWxpYXM6CiAgICAgICAgICAgLyogZW1wdHkg Ki8geyAkJD0wOyB9CiAgICAgICAgIHwgdGFibGVfYWxpYXMgaWRlbnQKLSAgICAgICAgICB7ICQk PSAoTEVYX1NUUklORyopIHNxbF9tZW1kdXAoJiQyLHNpemVvZihMRVhfU1RSSU5HKSk7IH0KKyAg ICAgICAgICB7CisgICAgICAgICAgICAkJD0gKExFWF9TVFJJTkcqKSBzcWxfbWVtZHVwKCYkMixz aXplb2YoTEVYX1NUUklORykpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAg ICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICA7CiAKIG9wdF9hbGw6 CkBAIC04NTY4LDEwICs5MjA1LDEzIEBAIG9wdF9lc2NhcGU6CiAgICAgICAgICAgfQogICAgICAg ICB8IC8qIGVtcHR5ICovCiAgICAgICAgICAgeworICAgICAgICAgICAgVEhEICp0aGQ9IFlZVEhE OwogICAgICAgICAgICAgTGV4LT5lc2NhcGVfdXNlZD0gRkFMU0U7Ci0gICAgICAgICAgICAkJD0g KChZWVRIRC0+dmFyaWFibGVzLnNxbF9tb2RlICYgTU9ERV9OT19CQUNLU0xBU0hfRVNDQVBFUykg PwotICAgICAgICAgICAgICAgICBuZXcgSXRlbV9zdHJpbmcoIiIsIDAsICZteV9jaGFyc2V0X2xh dGluMSkgOgotICAgICAgICAgICAgICAgICBuZXcgSXRlbV9zdHJpbmcoIlxcIiwgMSwgJm15X2No YXJzZXRfbGF0aW4xKSk7CisgICAgICAgICAgICAkJD0gKCh0aGQtPnZhcmlhYmxlcy5zcWxfbW9k ZSAmIE1PREVfTk9fQkFDS1NMQVNIX0VTQ0FQRVMpID8KKyAgICAgICAgICAgICAgICAgbmV3ICh0 aGQtPm1lbV9yb290KSBJdGVtX3N0cmluZygiIiwgMCwgJm15X2NoYXJzZXRfbGF0aW4xKSA6Cisg ICAgICAgICAgICAgICAgIG5ldyAodGhkLT5tZW1fcm9vdCkgSXRlbV9zdHJpbmcoIlxcIiwgMSwg Jm15X2NoYXJzZXRfbGF0aW4xKSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAg ICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIDsKIApAQCAtODc1 OCwxMyArOTM5OCwyOCBAQCBsaW1pdF9vcHRpb25zOgogICAgICAgICA7CiAKIGxpbWl0X29wdGlv bjoKLSAgICAgICAgcGFyYW1fbWFya2VyCi0gICAgICAgIHsKLSAgICAgICAgICAoKEl0ZW1fcGFy YW0gKikgJDEpLT5saW1pdF9jbGF1c2VfcGFyYW09IFRSVUU7Ci0gICAgICAgIH0KLSAgICAgICAg fCBVTE9OR0xPTkdfTlVNIHsgJCQ9IG5ldyBJdGVtX3VpbnQoJDEuc3RyLCAkMS5sZW5ndGgpOyB9 Ci0gICAgICAgIHwgTE9OR19OVU0gICAgICB7ICQkPSBuZXcgSXRlbV91aW50KCQxLnN0ciwgJDEu bGVuZ3RoKTsgfQotICAgICAgICB8IE5VTSAgICAgICAgICAgeyAkJD0gbmV3IEl0ZW1fdWludCgk MS5zdHIsICQxLmxlbmd0aCk7IH0KKyAgICAgICAgICBwYXJhbV9tYXJrZXIKKyAgICAgICAgICB7 CisgICAgICAgICAgICAoKEl0ZW1fcGFyYW0gKikgJDEpLT5saW1pdF9jbGF1c2VfcGFyYW09IFRS VUU7CisgICAgICAgICAgfQorICAgICAgICB8IFVMT05HTE9OR19OVU0KKyAgICAgICAgICB7Cisg ICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fdWludCgkMS5zdHIsICQx Lmxlbmd0aCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlT UUxfWVlBQk9SVDsKKyAgICAgICAgICB9CisgICAgICAgIHwgTE9OR19OVU0KKyAgICAgICAgICB7 CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fdWludCgkMS5zdHIs ICQxLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKKyAgICAgICAgICB9CisgICAgICAgIHwgTlVNCisgICAgICAgICAgewor ICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX3VpbnQoJDEuc3RyLCAk MS5sZW5ndGgpOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1Z U1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAgICAgICA7CiAKIGRlbGV0ZV9saW1pdF9jbGF1 c2U6CkBAIC04ODQ4LDEwICs5NTAzLDEyIEBAIHByb2NlZHVyZV9jbGF1c2U6CiAgICAgICAgICAg ICBsZXgtPnByb2NfbGlzdC5lbGVtZW50cz0wOwogICAgICAgICAgICAgbGV4LT5wcm9jX2xpc3Qu Zmlyc3Q9MDsKICAgICAgICAgICAgIGxleC0+cHJvY19saXN0Lm5leHQ9ICh1Y2hhcioqKSAmbGV4 LT5wcm9jX2xpc3QuZmlyc3Q7Ci0gICAgICAgICAgICBpZiAoYWRkX3Byb2NfdG9fbGlzdChsZXgt PnRoZCwgbmV3IEl0ZW1fZmllbGQoJmxleC0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9zZWxlY3QtPgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTlVMTCxOVUxMLCQyLnN0cikpKQorICAgICAgICAgICAgSXRlbV9maWVsZCAqaXRlbT0gbmV3 IChZWVRIRC0+bWVtX3Jvb3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEl0ZW1f ZmllbGQoJmxleC0+Y3VycmVudF9zZWxlY3QtPmNvbnRleHQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCwgJDIuc3RyKTsKKyAgICAgICAgICAg IGlmIChpdGVtID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAg ICAgICBpZiAoYWRkX3Byb2NfdG9fbGlzdChsZXgtPnRoZCwgaXRlbSkpCiAgICAgICAgICAgICAg IE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICBMZXgtPnVuY2FjaGVhYmxlKFVOQ0FDSEVBQkxF X1NJREVFRkZFQ1QpOwogICAgICAgICAgIH0KQEAgLTg5MDAsMTMgKzk1NTcsMjAgQEAgc2VsZWN0 X3Zhcl9pZGVudDogIAogICAgICAgICAgIHsKICAgICAgICAgICAgIExFWCAqbGV4PUxleDsKICAg ICAgICAgICAgIGlmIChsZXgtPnJlc3VsdCkgCi0gICAgICAgICAgICAgICgoc2VsZWN0X2R1bXB2 YXIgKilsZXgtPnJlc3VsdCktPnZhcl9saXN0LnB1c2hfYmFjayggbmV3IG15X3ZhcigkMiwwLDAs KGVudW1fZmllbGRfdHlwZXMpMCkpOworICAgICAgICAgICAgeworICAgICAgICAgICAgICBteV92 YXIgKnZhcj0gbmV3IG15X3ZhcigkMiwwLDAsKGVudW1fZmllbGRfdHlwZXMpMCk7CisgICAgICAg ICAgICAgIGlmICh2YXIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwor ICAgICAgICAgICAgICAoKHNlbGVjdF9kdW1wdmFyICopbGV4LT5yZXN1bHQpLT52YXJfbGlzdC5w dXNoX2JhY2sodmFyKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAgICBUaGUgcGFyc2VyIHdvbid0 IGNyZWF0ZSBzZWxlY3RfcmVzdWx0IGluc3RhbmNlIG9ubHkKICAgICAgICAgICAgICAgICBpZiBp dCdzIGFuIEVYUExBSU4uCiAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgIERCVUdfQVNT RVJUKGxleC0+ZGVzY3JpYmUpOworICAgICAgICAgICAgfQogICAgICAgICAgIH0KICAgICAgICAg fCBpZGVudF9vcl90ZXh0CiAgICAgICAgICAgewpAQCAtODkyMCwxMiArOTU4NCwxMiBAQCBzZWxl Y3RfdmFyX2lkZW50OiAgCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAobGV4LT5yZXN1 bHQpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIG15X3ZhciAqdmFyOwotICAgICAgICAg ICAgICAoKHNlbGVjdF9kdW1wdmFyICopbGV4LT5yZXN1bHQpLT4KLSAgICAgICAgICAgICAgICB2 YXJfbGlzdC5wdXNoX2JhY2sodmFyPSBuZXcgbXlfdmFyKCQxLDEsdC0+b2Zmc2V0LHQtPnR5cGUp KTsKKyAgICAgICAgICAgICAgbXlfdmFyICp2YXI9IG5ldyBteV92YXIoJDEsMSx0LT5vZmZzZXQs dC0+dHlwZSk7CisgICAgICAgICAgICAgIGlmICh2YXIgPT0gTlVMTCkKKyAgICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgICAoKHNlbGVjdF9kdW1wdmFyICopbGV4LT5y ZXN1bHQpLT52YXJfbGlzdC5wdXNoX2JhY2sodmFyKTsKICNpZm5kZWYgREJVR19PRkYKLSAgICAg ICAgICAgICAgaWYgKHZhcikKLSAgICAgICAgICAgICAgICB2YXItPnNwPSBsZXgtPnNwaGVhZDsK KyAgICAgICAgICAgICAgdmFyLT5zcD0gbGV4LT5zcGhlYWQ7CiAjZW5kaWYKICAgICAgICAgICAg IH0KICAgICAgICAgICAgIGVsc2UKQEAgLTkwMTEsMTIgKzk2NzUsMTQgQEAgZHJvcDoKICAgICAg ICAgfCBEUk9QIGJ1aWxkX21ldGhvZCBJTkRFWF9TWU0gaWRlbnQgT04gdGFibGVfaWRlbnQge30K ICAgICAgICAgICB7CiAgICAgICAgICAgICBMRVggKmxleD1MZXg7CisgICAgICAgICAgICBBbHRl cl9kcm9wICphZD0gbmV3IEFsdGVyX2Ryb3AoQWx0ZXJfZHJvcDo6S0VZLCAkNC5zdHIpOworICAg ICAgICAgICAgaWYgKGFkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAg ICAgICAgICAgICBsZXgtPnNxbF9jb21tYW5kPSBTUUxDT01fRFJPUF9JTkRFWDsKICAgICAgICAg ICAgIGxleC0+YWx0ZXJfaW5mby5yZXNldCgpOwogICAgICAgICAgICAgbGV4LT5hbHRlcl9pbmZv LmZsYWdzPSBBTFRFUl9EUk9QX0lOREVYOwogICAgICAgICAgICAgbGV4LT5hbHRlcl9pbmZvLmJ1 aWxkX21ldGhvZD0gJDI7Ci0gICAgICAgICAgICBsZXgtPmFsdGVyX2luZm8uZHJvcF9saXN0LnB1 c2hfYmFjayhuZXcgQWx0ZXJfZHJvcChBbHRlcl9kcm9wOjpLRVksCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkNC5zdHIpKTsK KyAgICAgICAgICAgIGxleC0+YWx0ZXJfaW5mby5kcm9wX2xpc3QucHVzaF9iYWNrKGFkKTsKICAg ICAgICAgICAgIGlmICghbGV4LT5jdXJyZW50X3NlbGVjdC0+YWRkX3RhYmxlX3RvX2xpc3QobGV4 LT50aGQsICQ2LCBOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBUTF9PUFRJT05fVVBEQVRJTkcpKQogICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOwpAQCAtOTA0MSw2ICs5NzA3LDggQEAgZHJvcDoKICAgICAgICAgICAgIGxleC0+ c3FsX2NvbW1hbmQgPSBTUUxDT01fRFJPUF9GVU5DVElPTjsKICAgICAgICAgICAgIGxleC0+ZHJv cF9pZl9leGlzdHM9ICQzOwogICAgICAgICAgICAgc3BuYW1lPSBuZXcgc3BfbmFtZSgkNCwgJDYs IHRydWUpOworICAgICAgICAgICAgaWYgKHNwbmFtZSA9PSBOVUxMKQorICAgICAgICAgICAgICBN WVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgc3BuYW1lLT5pbml0X3FuYW1lKHRoZCk7CiAgICAg ICAgICAgICBsZXgtPnNwbmFtZT0gc3BuYW1lOwogICAgICAgICAgIH0KQEAgLTkwNjAsNiArOTcy OCw4IEBAIGRyb3A6CiAgICAgICAgICAgICBsZXgtPnNxbF9jb21tYW5kID0gU1FMQ09NX0RST1Bf RlVOQ1RJT047CiAgICAgICAgICAgICBsZXgtPmRyb3BfaWZfZXhpc3RzPSAkMzsKICAgICAgICAg ICAgIHNwbmFtZT0gbmV3IHNwX25hbWUoZGIsICQ0LCBmYWxzZSk7CisgICAgICAgICAgICBpZiAo c3BuYW1lID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAg ICBzcG5hbWUtPmluaXRfcW5hbWUodGhkKTsKICAgICAgICAgICAgIGxleC0+c3BuYW1lPSBzcG5h bWU7CiAgICAgICAgICAgfQpAQCAtOTMyNyw3ICs5OTk3LDEyIEBAIHZhbHVlczoKIAogZXhwcl9v cl9kZWZhdWx0OgogICAgICAgICAgIGV4cHIgeyAkJD0gJDE7fQotICAgICAgICB8IERFRkFVTFQg eyQkPSBuZXcgSXRlbV9kZWZhdWx0X3ZhbHVlKExleC0+Y3VycmVudF9jb250ZXh0KCkpOyB9Cisg ICAgICAgIHwgREVGQVVMVAorICAgICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhE LT5tZW1fcm9vdCkgSXRlbV9kZWZhdWx0X3ZhbHVlKExleC0+Y3VycmVudF9jb250ZXh0KCkpOwor ICAgICAgICAgICAgaWYgKCQkID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7 CisgICAgICAgICAgfQogICAgICAgICA7CiAKIG9wdF9pbnNlcnRfdXBkYXRlOgpAQCAtOTQ1MSw3 ICsxMDEyNiwxMSBAQCB0YWJsZV93aWxkX2xpc3Q6CiB0YWJsZV93aWxkX29uZToKICAgICAgICAg ICBpZGVudCBvcHRfd2lsZAogICAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICghU2VsZWN0LT5h ZGRfdGFibGVfdG9fbGlzdChZWVRIRCwgbmV3IFRhYmxlX2lkZW50KCQxKSwKKyAgICAgICAgICAg IFRhYmxlX2lkZW50ICp0aT0gbmV3IFRhYmxlX2lkZW50KCQxKTsKKyAgICAgICAgICAgIGlmICh0 aSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgaWYg KCFTZWxlY3QtPmFkZF90YWJsZV90b19saXN0KFlZVEhELAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVExfT1BUSU9OX1VQREFUSU5HIHwgVExfT1BUSU9OX0FMSUFTLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExleC0+bG9ja19vcHRpb24pKQpAQCAtOTQ1 OSw4ICsxMDEzOCwxMSBAQCB0YWJsZV93aWxkX29uZToKICAgICAgICAgICB9CiAgICAgICAgIHwg aWRlbnQgJy4nIGlkZW50IG9wdF93aWxkCiAgICAgICAgICAgeworICAgICAgICAgICAgVGFibGVf aWRlbnQgKnRpPSBuZXcgVGFibGVfaWRlbnQoWVlUSEQsICQxLCAkMywgMCk7CisgICAgICAgICAg ICBpZiAodGkgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAg ICAgIGlmICghU2VsZWN0LT5hZGRfdGFibGVfdG9fbGlzdChZWVRIRCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgVGFibGVfaWRlbnQoWVlUSEQsICQxLCAk MywgMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGksCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUTF9PUFRJT05fVVBEQVRJTkcgfCBU TF9PUFRJT05fQUxJQVMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGV4LT5sb2NrX29wdGlvbikpCkBAIC05ODMyLDIzICsxMDUxNCwxMyBAQCBzaG93X3BhcmFt OgogICAgICAgICAgIH0KICAgICAgICAgfCBQUk9DRURVUkUgQ09ERV9TWU0gc3BfbmFtZQogICAg ICAgICAgIHsKLSNpZmRlZiBEQlVHX09GRgotICAgICAgICAgICAgbXlfcGFyc2VfZXJyb3IoRVIo RVJfU1lOVEFYX0VSUk9SKSk7Ci0gICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwotI2Vsc2UKICAg ICAgICAgICAgIExleC0+c3FsX2NvbW1hbmQ9IFNRTENPTV9TSE9XX1BST0NfQ09ERTsKICAgICAg ICAgICAgIExleC0+c3BuYW1lPSAkMzsKLSNlbmRpZgogICAgICAgICAgIH0KICAgICAgICAgfCBG VU5DVElPTl9TWU0gQ09ERV9TWU0gc3BfbmFtZQogICAgICAgICAgIHsKLSNpZmRlZiBEQlVHX09G RgotICAgICAgICAgICAgbXlfcGFyc2VfZXJyb3IoRVIoRVJfU1lOVEFYX0VSUk9SKSk7Ci0gICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOwotI2Vsc2UKICAgICAgICAgICAgIExleC0+c3FsX2NvbW1h bmQ9IFNRTENPTV9TSE9XX0ZVTkNfQ09ERTsKICAgICAgICAgICAgIExleC0+c3BuYW1lPSAkMzsK LSNlbmRpZgogICAgICAgICAgIH0KICAgICAgICAgfCBDUkVBVEUgRVZFTlRfU1lNIHNwX25hbWUK ICAgICAgICAgICB7CkBAIC05OTA3LDYgKzEwNTc5LDggQEAgd2lsZF9hbmRfd2hlcmU6CiAgICAg ICAgICAgewogICAgICAgICAgICAgTGV4LT53aWxkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgU3Ry aW5nKCQyLnN0ciwgJDIubGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN5c3RlbV9jaGFyc2V0X2luZm8pOworICAgICAgICAgICAgaWYg KExleC0+d2lsZCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAg ICAgIH0KICAgICAgICAgfCBXSEVSRSBleHByCiAgICAgICAgICAgewpAQCAtOTk1OSw2ICsxMDYz Myw4IEBAIG9wdF9kZXNjcmliZV9jb2x1bW46CiAgICAgICAgICAgICBMZXgtPndpbGQ9IG5ldyAo WVlUSEQtPm1lbV9yb290KSBTdHJpbmcoKGNvbnN0IGNoYXIqKSAkMS5zdHIsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDEubGVuZ3RoLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c3RlbV9j aGFyc2V0X2luZm8pOworICAgICAgICAgICAgaWYgKExleC0+d2lsZCA9PSBOVUxMKQorICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgIH0KICAgICAgICAgOwogCkBAIC0xMDI2 OCw3ICsxMDk0NCwxMSBAQCBmaWVsZHNfb3JfdmFyczoKIGZpZWxkX29yX3ZhcjoKICAgICAgICAg ICBzaW1wbGVfaWRlbnRfbm9zcHZhciB7JCQ9ICQxO30KICAgICAgICAgfCAnQCcgaWRlbnRfb3Jf dGV4dAotICAgICAgICAgIHsgJCQ9IG5ldyBJdGVtX3VzZXJfdmFyX2FzX291dF9wYXJhbSgkMik7 IH0KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0 ZW1fdXNlcl92YXJfYXNfb3V0X3BhcmFtKCQyKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxM KQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgOwog CiBvcHRfbG9hZF9kYXRhX3NldF9zcGVjOgpAQCAtMTAyOTQsMjAgKzEwOTc0LDMwIEBAIHRleHRf bGl0ZXJhbDoKICAgICAgICAgICAgICAgdG1wPSAkMTsKICAgICAgICAgICAgIGVsc2UKICAgICAg ICAgICAgICAgdGhkLT5jb252ZXJ0X3N0cmluZygmdG1wLCBjc19jb24sICQxLnN0ciwgJDEubGVu Z3RoLCBjc19jbGkpOwotICAgICAgICAgICAgJCQ9IG5ldyBJdGVtX3N0cmluZyh0bXAuc3RyLCB0 bXAubGVuZ3RoLCBjc19jb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFUklW QVRJT05fQ09FUkNJQkxFLCByZXBlcnRvaXJlKTsKKyAgICAgICAgICAgICQkPSBuZXcgKHRoZC0+ bWVtX3Jvb3QpIEl0ZW1fc3RyaW5nKHRtcC5zdHIsIHRtcC5sZW5ndGgsIGNzX2NvbiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFUklWQVRJT05fQ09F UkNJQkxFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmVwZXJ0b2lyZSk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIHwgTkNIQVJfU1RSSU5HCiAgICAg ICAgICAgewogICAgICAgICAgICAgdWludCByZXBlcnRvaXJlPSBMZXgtPnRleHRfc3RyaW5nX2lz XzdiaXQgPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNWV9SRVBFUlRPSVJFX0FTQ0lJ IDogTVlfUkVQRVJUT0lSRV9VTklDT0RFMzA7CiAgICAgICAgICAgICBEQlVHX0FTU0VSVChteV9j aGFyc2V0X2lzX2FzY2lpX2Jhc2VkKG5hdGlvbmFsX2NoYXJzZXRfaW5mbykpOwotICAgICAgICAg ICAgJCQ9IG5ldyBJdGVtX3N0cmluZygkMS5zdHIsICQxLmxlbmd0aCwgbmF0aW9uYWxfY2hhcnNl dF9pbmZvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVJJVkFUSU9OX0NPRVJD SUJMRSwgcmVwZXJ0b2lyZSk7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+bWVtX3Jvb3Qp IEl0ZW1fc3RyaW5nKCQxLnN0ciwgJDEubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpb25hbF9jaGFyc2V0X2luZm8sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFUklWQVRJT05fQ09F UkNJQkxFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXBlcnRvaXJlKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgIH0KICAgICAgICAgfCBVTkRFUlNDT1JFX0NIQVJT RVQgVEVYVF9TVFJJTkcKICAgICAgICAgICB7Ci0gICAgICAgICAgICBJdGVtX3N0cmluZyAqc3Ry PSBuZXcgSXRlbV9zdHJpbmcoJDIuc3RyLCAkMi5sZW5ndGgsICQxKTsKKyAgICAgICAgICAgIEl0 ZW1fc3RyaW5nICpzdHI9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX3N0cmluZygkMi5zdHIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJDIubGVuZ3RoLCAkMSk7CisgICAgICAgICAgICBpZiAoc3RyID09IE5VTEwpCisg ICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICBzdHItPnNldF9yZXBlcnRv aXJlX2Zyb21fdmFsdWUoKTsKICAgICAgICAgICAgIHN0ci0+c2V0X2NzX3NwZWNpZmllZChUUlVF KTsKIApAQCAtMTAzMzcsMjcgKzExMDI3LDMwIEBAIHRleHRfc3RyaW5nOgogICAgICAgICAgICAg JCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBTdHJpbmcoJDEuc3RyLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDEubGVuZ3RoLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWVlUSEQtPnZhcmlhYmxlcy5jb2xsYXRpb25f Y29ubmVjdGlvbik7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAg TVlTUUxfWVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIHwgSEVYX05VTQogICAgICAgICAg IHsKLSAgICAgICAgICAgIEl0ZW0gKnRtcD0gbmV3IEl0ZW1faGV4X3N0cmluZygkMS5zdHIsICQx Lmxlbmd0aCk7CisgICAgICAgICAgICBJdGVtICp0bXA9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJ dGVtX2hleF9zdHJpbmcoJDEuc3RyLCAkMS5sZW5ndGgpOworICAgICAgICAgICAgaWYgKHRtcCA9 PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgLyoKICAg ICAgICAgICAgICAgaXQgaXMgT0sgb25seSBlbXVsYXRlIGZpeF9maWVsZHMsIGJlY2F1c2Ugd2Ug bmVlZCBvbmx5CiAgICAgICAgICAgICAgIHZhbHVlIG9mIGNvbnN0YW50CiAgICAgICAgICAgICAq LwotICAgICAgICAgICAgJCQ9IHRtcCA/Ci0gICAgICAgICAgICAgIHRtcC0+cXVpY2tfZml4X2Zp ZWxkKCksIHRtcC0+dmFsX3N0cigoU3RyaW5nKikgMCkgOgotICAgICAgICAgICAgICAoU3RyaW5n KikgMDsKKyAgICAgICAgICAgIHRtcC0+cXVpY2tfZml4X2ZpZWxkKCk7CisgICAgICAgICAgICAk JD0gdG1wLT52YWxfc3RyKChTdHJpbmcqKSAwKTsKICAgICAgICAgICB9CiAgICAgICAgIHwgQklO X05VTQogICAgICAgICAgIHsKLSAgICAgICAgICAgIEl0ZW0gKnRtcD0gbmV3IEl0ZW1fYmluX3N0 cmluZygkMS5zdHIsICQxLmxlbmd0aCk7CisgICAgICAgICAgICBJdGVtICp0bXA9IG5ldyAoWVlU SEQtPm1lbV9yb290KSBJdGVtX2Jpbl9zdHJpbmcoJDEuc3RyLCAkMS5sZW5ndGgpOwogICAgICAg ICAgICAgLyoKICAgICAgICAgICAgICAgaXQgaXMgT0sgb25seSBlbXVsYXRlIGZpeF9maWVsZHMs IGJlY2F1c2Ugd2UgbmVlZCBvbmx5CiAgICAgICAgICAgICAgIHZhbHVlIG9mIGNvbnN0YW50CiAg ICAgICAgICAgICAqLwotICAgICAgICAgICAgJCQ9IHRtcCA/IHRtcC0+cXVpY2tfZml4X2ZpZWxk KCksIHRtcC0+dmFsX3N0cigoU3RyaW5nKikgMCkgOgotICAgICAgICAgICAgICAoU3RyaW5nKikg MDsKKyAgICAgICAgICAgIHRtcC0+cXVpY2tfZml4X2ZpZWxkKCk7CisgICAgICAgICAgICAkJD0g dG1wLT52YWxfc3RyKChTdHJpbmcqKSAwKTsKICAgICAgICAgICB9CiAgICAgICAgIDsKIApAQCAt MTAzNzMsNyArMTEwNjYsNyBAQCBwYXJhbV9tYXJrZXI6CiAgICAgICAgICAgICAgIG15X2Vycm9y KEVSX1ZJRVdfU0VMRUNUX1ZBUklBQkxFLCBNWUYoMCkpOwogICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaXRlbT0gbmV3IEl0ZW1fcGFyYW0o KHVpbnQpIChsaXAtPmdldF90b2tfc3RhcnQoKSAtIHRoZC0+cXVlcnkpKTsKKyAgICAgICAgICAg IGl0ZW09IG5ldyAodGhkLT5tZW1fcm9vdCkgSXRlbV9wYXJhbSgodWludCkgKGxpcC0+Z2V0X3Rv a19zdGFydCgpIC0gdGhkLT5xdWVyeSkpOwogICAgICAgICAgICAgaWYgKCEoJCQ9IGl0ZW0pIHx8 IGxleC0+cGFyYW1fbGlzdC5wdXNoX2JhY2soaXRlbSkpCiAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgIG15X21lc3NhZ2UoRVJfT1VUX09GX1JFU09VUkNFUywgRVIoRVJfT1VUX09GX1JFU09V UkNFUyksIE1ZRigwKSk7CkBAIC0xMDM5NywyOSArMTEwOTAsNTMgQEAgbGl0ZXJhbDoKICAgICAg ICAgfCBOVU1fbGl0ZXJhbCB7ICQkID0gJDE7IH0KICAgICAgICAgfCBOVUxMX1NZTQogICAgICAg ICAgIHsKLSAgICAgICAgICAgICQkID0gbmV3IEl0ZW1fbnVsbCgpOworICAgICAgICAgICAgJCQg PSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9udWxsKCk7CisgICAgICAgICAgICBpZiAoJCQg PT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICAgIFlZTElQ LT5uZXh0X3N0YXRlPSBNWV9MRVhfT1BFUkFUT1JfT1JfSURFTlQ7CiAgICAgICAgICAgfQotICAg ICAgICB8IEZBTFNFX1NZTSB7ICQkPSBuZXcgSXRlbV9pbnQoKGNoYXIqKSAiRkFMU0UiLDAsMSk7 IH0KLSAgICAgICAgfCBUUlVFX1NZTSB7ICQkPSBuZXcgSXRlbV9pbnQoKGNoYXIqKSAiVFJVRSIs MSwxKTsgfQotICAgICAgICB8IEhFWF9OVU0geyAkJCA9IG5ldyBJdGVtX2hleF9zdHJpbmcoJDEu c3RyLCAkMS5sZW5ndGgpO30KLSAgICAgICAgfCBCSU5fTlVNIHsgJCQ9IG5ldyBJdGVtX2Jpbl9z dHJpbmcoJDEuc3RyLCAkMS5sZW5ndGgpOyB9CisgICAgICAgIHwgRkFMU0VfU1lNCisgICAgICAg ICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2ludCgoY2hh ciopICJGQUxTRSIsMCwxKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KKyAgICAgICAgfCBUUlVFX1NZTQorICAg ICAgICAgIHsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9pbnQo KGNoYXIqKSAiVFJVRSIsMSwxKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KKyAgICAgICAgfCBIRVhfTlVNCisg ICAgICAgICAgeworICAgICAgICAgICAgJCQgPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9o ZXhfc3RyaW5nKCQxLnN0ciwgJDEubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxM KQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KKyAgICAgICAgfCBC SU5fTlVNCisgICAgICAgICAgeworICAgICAgICAgICAgJCQ9IG5ldyAoWVlUSEQtPm1lbV9yb290 KSBJdGVtX2Jpbl9zdHJpbmcoJDEuc3RyLCAkMS5sZW5ndGgpOworICAgICAgICAgICAgaWYgKCQk ID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgfQogICAg ICAgICB8IFVOREVSU0NPUkVfQ0hBUlNFVCBIRVhfTlVNCiAgICAgICAgICAgewotICAgICAgICAg ICAgSXRlbSAqdG1wPSBuZXcgSXRlbV9oZXhfc3RyaW5nKCQyLnN0ciwgJDIubGVuZ3RoKTsKKyAg ICAgICAgICAgIEl0ZW0gKnRtcD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1faGV4X3N0cmlu ZygkMi5zdHIsICQyLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpCisgICAg ICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICBp dCBpcyBPSyBvbmx5IGVtdWxhdGUgZml4X2ZpZWRzLCBiZWNhdXNlIHdlIG5lZWQgb25seQogICAg ICAgICAgICAgICB2YWx1ZSBvZiBjb25zdGFudAogICAgICAgICAgICAgKi8KLSAgICAgICAgICAg IFN0cmluZyAqc3RyPSB0bXAgPwotICAgICAgICAgICAgICB0bXAtPnF1aWNrX2ZpeF9maWVsZCgp LCB0bXAtPnZhbF9zdHIoKFN0cmluZyopIDApIDoKLSAgICAgICAgICAgICAgKFN0cmluZyopIDA7 Ci0KLSAgICAgICAgICAgIEl0ZW1fc3RyaW5nICppdGVtX3N0cj0KLSAgICAgICAgICAgICAgbmV3 IEl0ZW1fc3RyaW5nKE5VTEwsIC8qIG5hbWUgd2lsbCBiZSBzZXQgaW4gc2VsZWN0X2l0ZW0gKi8K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA/IHN0ci0+cHRyKCkgOiAiIiwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA/IHN0ci0+bGVuZ3RoKCkgOiAwLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJDEpOworICAgICAgICAgICAgdG1wLT5xdWlja19m aXhfZmllbGQoKTsKKyAgICAgICAgICAgIFN0cmluZyAqc3RyPSB0bXAtPnZhbF9zdHIoKFN0cmlu ZyopIDApOworCisgICAgICAgICAgICBJdGVtX3N0cmluZyAqaXRlbV9zdHI7CisgICAgICAgICAg ICBpdGVtX3N0cj0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpCisgICAgICAgICAgICAgICAgICAgICAg ICBJdGVtX3N0cmluZyhOVUxMLCAvKiBuYW1lIHdpbGwgYmUgc2V0IGluIHNlbGVjdF9pdGVtICov CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPyBzdHItPnB0cigpIDog IiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIgPyBzdHItPmxlbmd0 aCgpIDogMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQxKTsKICAgICAg ICAgICAgIGlmICghaXRlbV9zdHIgfHwKICAgICAgICAgICAgICAgICAhaXRlbV9zdHItPmNoZWNr X3dlbGxfZm9ybWVkX3Jlc3VsdCgmaXRlbV9zdHItPnN0cl92YWx1ZSwgVFJVRSkpCiAgICAgICAg ICAgICB7CkBAIC0xMDQzMywyMCArMTExNTAsMjIgQEAgbGl0ZXJhbDoKICAgICAgICAgICB9CiAg ICAgICAgIHwgVU5ERVJTQ09SRV9DSEFSU0VUIEJJTl9OVU0KICAgICAgICAgICB7Ci0gICAgICAg ICAgICBJdGVtICp0bXA9IG5ldyBJdGVtX2Jpbl9zdHJpbmcoJDIuc3RyLCAkMi5sZW5ndGgpOwor ICAgICAgICAgICAgSXRlbSAqdG1wPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9iaW5fc3Ry aW5nKCQyLnN0ciwgJDIubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkKKyAg ICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAg IGl0IGlzIE9LIG9ubHkgZW11bGF0ZSBmaXhfZmllZHMsIGJlY2F1c2Ugd2UgbmVlZCBvbmx5CiAg ICAgICAgICAgICAgIHZhbHVlIG9mIGNvbnN0YW50CiAgICAgICAgICAgICAqLwotICAgICAgICAg ICAgU3RyaW5nICpzdHI9IHRtcCA/Ci0gICAgICAgICAgICAgIHRtcC0+cXVpY2tfZml4X2ZpZWxk KCksIHRtcC0+dmFsX3N0cigoU3RyaW5nKikgMCkgOgotICAgICAgICAgICAgICAoU3RyaW5nKikg MDsKLQotICAgICAgICAgICAgSXRlbV9zdHJpbmcgKml0ZW1fc3RyPQotICAgICAgICAgICAgICBu ZXcgSXRlbV9zdHJpbmcoTlVMTCwgLyogbmFtZSB3aWxsIGJlIHNldCBpbiBzZWxlY3RfaXRlbSAq LwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyID8gc3RyLT5wdHIoKSA6ICIiLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyID8gc3RyLT5sZW5ndGgoKSA6IDAsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMSk7CisgICAgICAgICAgICB0bXAtPnF1aWNr X2ZpeF9maWVsZCgpOworICAgICAgICAgICAgU3RyaW5nICpzdHI9IHRtcC0+dmFsX3N0cigoU3Ry aW5nKikgMCk7CisKKyAgICAgICAgICAgIEl0ZW1fc3RyaW5nICppdGVtX3N0cjsKKyAgICAgICAg ICAgIGl0ZW1fc3RyPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkKKyAgICAgICAgICAgICAgICAgICAg ICAgIEl0ZW1fc3RyaW5nKE5VTEwsIC8qIG5hbWUgd2lsbCBiZSBzZXQgaW4gc2VsZWN0X2l0ZW0g Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA/IHN0ci0+cHRyKCkg OiAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciA/IHN0ci0+bGVu Z3RoKCkgOiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDEpOwogICAg ICAgICAgICAgaWYgKCFpdGVtX3N0ciB8fAogICAgICAgICAgICAgICAgICFpdGVtX3N0ci0+Y2hl Y2tfd2VsbF9mb3JtZWRfcmVzdWx0KCZpdGVtX3N0ci0+c3RyX3ZhbHVlLCBUUlVFKSkKICAgICAg ICAgICAgIHsKQEAgLTEwNDY2LDI3ICsxMTE4NSw0MiBAQCBOVU1fbGl0ZXJhbDoKICAgICAgICAg ICBOVU0KICAgICAgICAgICB7CiAgICAgICAgICAgICBpbnQgZXJyb3I7Ci0gICAgICAgICAgICAk JCA9IG5ldyBJdGVtX2ludCgkMS5zdHIsIChsb25nbG9uZykgbXlfc3RydG9sbDEwKCQxLnN0ciwg TlVMTCwgJmVycm9yKSwgJDEubGVuZ3RoKTsKKyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5t ZW1fcm9vdCkKKyAgICAgICAgICAgICAgICAgIEl0ZW1faW50KCQxLnN0ciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIChsb25nbG9uZykgbXlfc3RydG9sbDEwKCQxLnN0ciwgTlVMTCwgJmVy cm9yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICQxLmxlbmd0aCk7CisgICAgICAgICAg ICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAg ICB9CiAgICAgICAgIHwgTE9OR19OVU0KICAgICAgICAgICB7CiAgICAgICAgICAgICBpbnQgZXJy b3I7Ci0gICAgICAgICAgICAkJCA9IG5ldyBJdGVtX2ludCgkMS5zdHIsIChsb25nbG9uZykgbXlf c3RydG9sbDEwKCQxLnN0ciwgTlVMTCwgJmVycm9yKSwgJDEubGVuZ3RoKTsKKyAgICAgICAgICAg ICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkKKyAgICAgICAgICAgICAgICAgIEl0ZW1faW50KCQx LnN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nbG9uZykgbXlfc3RydG9sbDEw KCQxLnN0ciwgTlVMTCwgJmVycm9yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICQxLmxl bmd0aCk7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxf WVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIHwgVUxPTkdMT05HX05VTQotICAgICAgICAg IHsgJCQgPSBuZXcgSXRlbV91aW50KCQxLnN0ciwgJDEubGVuZ3RoKTsgfQorICAgICAgICAgIHsK KyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV91aW50KCQxLnN0ciwg JDEubGVuZ3RoKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBN WVNRTF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgfCBERUNJTUFMX05VTQogICAgICAg ICAgIHsKLSAgICAgICAgICAgICQkPSBuZXcgSXRlbV9kZWNpbWFsKCQxLnN0ciwgJDEubGVuZ3Ro LCBZWVRIRC0+Y2hhcnNldCgpKTsKLSAgICAgICAgICAgIGlmIChZWVRIRC0+aXNfZXJyb3IoKSkK KyAgICAgICAgICAgICQkPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9kZWNpbWFsKCQxLnN0 ciwgJDEubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgWVlUSEQtPmNoYXJzZXQoKSk7CisgICAgICAgICAgICBpZiAoKCQkID09IE5VTEwp IHx8IChZWVRIRC0+aXNfZXJyb3IoKSkpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE1Z U1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgfQogICAgICAgICB8IEZMT0FU X05VTQogICAgICAgICAgIHsKLSAgICAgICAgICAgICQkID0gbmV3IEl0ZW1fZmxvYXQoJDEuc3Ry LCAkMS5sZW5ndGgpOwotICAgICAgICAgICAgaWYgKFlZVEhELT5pc19lcnJvcigpKQorICAgICAg ICAgICAgJCQgPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgSXRlbV9mbG9hdCgkMS5zdHIsICQxLmxl bmd0aCk7CisgICAgICAgICAgICBpZiAoKCQkID09IE5VTEwpIHx8IChZWVRIRC0+aXNfZXJyb3Io KSkpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAg ICAgICB9CkBAIC0xMDUwNiwxNSArMTEyNDAsMjMgQEAgdGFibGVfd2lsZDoKICAgICAgICAgICBp ZGVudCAnLicgJyonCiAgICAgICAgICAgewogICAgICAgICAgICAgU0VMRUNUX0xFWCAqc2VsPSBT ZWxlY3Q7Ci0gICAgICAgICAgICAkJCA9IG5ldyBJdGVtX2ZpZWxkKExleC0+Y3VycmVudF9jb250 ZXh0KCksIE51bGxTLCAkMS5zdHIsICIqIik7CisgICAgICAgICAgICAkJCA9IG5ldyAoWVlUSEQt Pm1lbV9yb290KSBJdGVtX2ZpZWxkKExleC0+Y3VycmVudF9jb250ZXh0KCksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bGxTLCAkMS5zdHIsICIq Iik7CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKICAgICAgICAgICAgIHNlbC0+d2l0aF93aWxkKys7CiAgICAgICAgICAgfQogICAgICAg ICB8IGlkZW50ICcuJyBpZGVudCAnLicgJyonCiAgICAgICAgICAgeworICAgICAgICAgICAgVEhE ICp0aGQ9IFlZVEhEOwogICAgICAgICAgICAgU0VMRUNUX0xFWCAqc2VsPSBTZWxlY3Q7Ci0gICAg ICAgICAgICAkJCA9IG5ldyBJdGVtX2ZpZWxkKExleC0+Y3VycmVudF9jb250ZXh0KCksIChZWVRI RC0+Y2xpZW50X2NhcGFiaWxpdGllcyAmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENMSUVOVF9OT19TQ0hFTUEgPyBOdWxsUyA6ICQxLnN0ciksCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICQzLnN0ciwiKiIpOworICAgICAgICAgICAgY29uc3QgY2hhciogc2NoZW1h PSB0aGQtPmNsaWVudF9jYXBhYmlsaXRpZXMgJiBDTElFTlRfTk9fU0NIRU1BID8KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBOdWxsUyA6ICQxLnN0cjsKKyAgICAgICAgICAgICQk ID0gbmV3ICh0aGQtPm1lbV9yb290KSBJdGVtX2ZpZWxkKExleC0+Y3VycmVudF9jb250ZXh0KCks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWEs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMy5zdHIs IioiKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOwogICAgICAgICAgICAgc2VsLT53aXRoX3dpbGQrKzsKICAgICAgICAgICB9CiAgICAg ICAgIDsKQEAgLTEwNTQxLDI0ICsxMTI4MywzNSBAQCBzaW1wbGVfaWRlbnQ6CiAgICAgICAgICAg ICAgIH0KIAogICAgICAgICAgICAgICBJdGVtX3NwbG9jYWwgKnNwbG9jYWw7Ci0gICAgICAgICAg ICAgIHNwbG9jYWw9IG5ldyBJdGVtX3NwbG9jYWwoJDEsIHNwdi0+b2Zmc2V0LCBzcHYtPnR5cGUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlwLT5nZXRfdG9rX3N0 YXJ0X3ByZXYoKSAtCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV4 LT5zcGhlYWQtPm1fdG1wX3F1ZXJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpcC0+Z2V0X3Rva19lbmQoKSAtIGxpcC0+Z2V0X3Rva19zdGFydF9wcmV2KCkpOwor ICAgICAgICAgICAgICBzcGxvY2FsPSBuZXcgKHRoZC0+bWVtX3Jvb3QpCisgICAgICAgICAgICAg ICAgICAgICAgICAgSXRlbV9zcGxvY2FsKCQxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzcHYtPm9mZnNldCwgc3B2LT50eXBlLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaXAtPmdldF90b2tfc3RhcnRfcHJldigpIC0gbGV4LT5zcGhlYWQt Pm1fdG1wX3F1ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXAt PmdldF90b2tfZW5kKCkgLSBsaXAtPmdldF90b2tfc3RhcnRfcHJldigpKTsKKyAgICAgICAgICAg ICAgaWYgKHNwbG9jYWwgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwog I2lmbmRlZiBEQlVHX09GRgotICAgICAgICAgICAgICBpZiAoc3Bsb2NhbCkKLSAgICAgICAgICAg ICAgICBzcGxvY2FsLT5tX3NwPSBsZXgtPnNwaGVhZDsKKyAgICAgICAgICAgICAgc3Bsb2NhbC0+ bV9zcD0gbGV4LT5zcGhlYWQ7CiAjZW5kaWYKLSAgICAgICAgICAgICAgJCQgPSAoSXRlbSopIHNw bG9jYWw7CisgICAgICAgICAgICAgICQkPSBzcGxvY2FsOwogICAgICAgICAgICAgICBsZXgtPnNh ZmVfdG9fY2FjaGVfcXVlcnk9MDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKICAg ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgU0VMRUNUX0xFWCAqc2VsPVNlbGVjdDsKLSAgICAg ICAgICAgICAgJCQ9IChzZWwtPnBhcnNpbmdfcGxhY2UgIT0gSU5fSEFWSU5HIHx8Ci0gICAgICAg ICAgICAgICAgICBzZWwtPmdldF9pbl9zdW1fZXhwcigpID4gMCkgPwotICAgICAgICAgICAgICAg ICAgKEl0ZW0qKSBuZXcgSXRlbV9maWVsZChMZXgtPmN1cnJlbnRfY29udGV4dCgpLCBOdWxsUywg TnVsbFMsICQxLnN0cikgOgotICAgICAgICAgICAgICAgICAgKEl0ZW0qKSBuZXcgSXRlbV9yZWYo TGV4LT5jdXJyZW50X2NvbnRleHQoKSwgTnVsbFMsIE51bGxTLCAkMS5zdHIpOworICAgICAgICAg ICAgICBTRUxFQ1RfTEVYICpzZWw9IFNlbGVjdDsKKyAgICAgICAgICAgICAgaWYgKChzZWwtPnBh cnNpbmdfcGxhY2UgIT0gSU5fSEFWSU5HKSB8fAorICAgICAgICAgICAgICAgICAgKHNlbC0+Z2V0 X2luX3N1bV9leHByKCkgPiAwKSkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICQk PSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1fZmllbGQoTGV4LT5jdXJyZW50X2NvbnRleHQoKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bGxT LCBOdWxsUywgJDEuc3RyKTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlCisg ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAkJD0gbmV3ICh0aGQtPm1lbV9yb290KSBJ dGVtX3JlZihMZXgtPmN1cnJlbnRfY29udGV4dCgpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE51bGxTLCBOdWxsUywgJDEuc3RyKTsKKyAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBN WVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgfQogICAgICAgICAgIH0KICAgICAgICAgfCBzaW1w bGVfaWRlbnRfcSB7ICQkPSAkMTsgfQpAQCAtMTA1NjcsMTEgKzExMzIwLDIxIEBAIHNpbXBsZV9p ZGVudDoKIHNpbXBsZV9pZGVudF9ub3NwdmFyOgogICAgICAgICAgIGlkZW50CiAgICAgICAgICAg ewotICAgICAgICAgICAgU0VMRUNUX0xFWCAqc2VsPVNlbGVjdDsKLSAgICAgICAgICAgICQkPSAo c2VsLT5wYXJzaW5nX3BsYWNlICE9IElOX0hBVklORyB8fAotICAgICAgICAgICAgICAgIHNlbC0+ Z2V0X2luX3N1bV9leHByKCkgPiAwKSA/Ci0gICAgICAgICAgICAgICAgKEl0ZW0qKSBuZXcgSXRl bV9maWVsZChMZXgtPmN1cnJlbnRfY29udGV4dCgpLCBOdWxsUywgTnVsbFMsICQxLnN0cikgOgot ICAgICAgICAgICAgICAgIChJdGVtKikgbmV3IEl0ZW1fcmVmKExleC0+Y3VycmVudF9jb250ZXh0 KCksIE51bGxTLCBOdWxsUywgJDEuc3RyKTsKKyAgICAgICAgICAgIFRIRCAqdGhkPSBZWVRIRDsK KyAgICAgICAgICAgIFNFTEVDVF9MRVggKnNlbD0gU2VsZWN0OworICAgICAgICAgICAgaWYgKChz ZWwtPnBhcnNpbmdfcGxhY2UgIT0gSU5fSEFWSU5HKSB8fAorICAgICAgICAgICAgICAgIChzZWwt PmdldF9pbl9zdW1fZXhwcigpID4gMCkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICQk PSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1fZmllbGQoTGV4LT5jdXJyZW50X2NvbnRleHQoKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdWxsUywg TnVsbFMsICQxLnN0cik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICQkPSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1fcmVmKExl eC0+Y3VycmVudF9jb250ZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE51bGxTLCBOdWxsUywgJDEuc3RyKTsKKyAgICAgICAgICAgIH0KKyAgICAg ICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogICAg ICAgICAgIH0KICAgICAgICAgfCBzaW1wbGVfaWRlbnRfcSB7ICQkPSAkMTsgfQogICAgICAgICA7 CkBAIC0xMDYxMywxMyArMTEzNzYsMTYgQEAgc2ltcGxlX2lkZW50X3E6CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsZXgtPnRyZ19jaGlzdGljcy5ldmVudCA9PSBUUkdfRVZFTlRfVVBEQVRF KSk7CiAgICAgICAgICAgICAgIGNvbnN0IGJvb2wgcmVhZF9vbmx5PQogICAgICAgICAgICAgICAg ICEobmV3X3JvdyAmJiBsZXgtPnRyZ19jaGlzdGljcy5hY3Rpb25fdGltZSA9PSBUUkdfQUNUSU9O X0JFRk9SRSk7Ci0gICAgICAgICAgICAgIGlmICghKHRyZ19mbGQ9IG5ldyBJdGVtX3RyaWdnZXJf ZmllbGQoTGV4LT5jdXJyZW50X2NvbnRleHQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfcm93ID8KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJdGVtX3RyaWdnZXJfZmllbGQ6Ok5FV19S T1c6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SXRlbV90cmlnZ2VyX2ZpZWxkOjpPTERfUk9XLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICQzLnN0ciwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUxFQ1RfQUNMLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfb25seSkpKQorCisgICAg ICAgICAgICAgIHRyZ19mbGQ9IG5ldyAodGhkLT5tZW1fcm9vdCkKKyAgICAgICAgICAgICAgICAg ICAgICAgICBJdGVtX3RyaWdnZXJfZmllbGQoTGV4LT5jdXJyZW50X2NvbnRleHQoKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3JvdyA/CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXRlbV90cmlnZ2VyX2ZpZWxk OjpORVdfUk9XOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEl0ZW1fdHJpZ2dlcl9maWVsZDo6T0xEX1JPVywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJDMuc3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTRUxFQ1RfQUNMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZWFkX29ubHkpOworICAgICAgICAgICAgICBpZiAodHJnX2ZsZCA9PSBO VUxMKQogICAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAKICAgICAgICAgICAgICAgLyoK QEAgLTEwNjI5LDcgKzExMzk1LDcgQEAgc2ltcGxlX2lkZW50X3E6CiAgICAgICAgICAgICAgIGxl eC0+dHJnX3RhYmxlX2ZpZWxkcy5saW5rX2luX2xpc3QoKHVjaGFyKikgdHJnX2ZsZCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodWNoYXIqKikgJnRy Z19mbGQtPm5leHRfdHJnX2ZpZWxkKTsKIAotICAgICAgICAgICAgICAkJD0gKEl0ZW0gKil0cmdf ZmxkOworICAgICAgICAgICAgICAkJD0gdHJnX2ZsZDsKICAgICAgICAgICAgIH0KICAgICAgICAg ICAgIGVsc2UKICAgICAgICAgICAgIHsKQEAgLTEwNjM5LDEwICsxMTQwNSwxOSBAQCBzaW1wbGVf aWRlbnRfcToKICAgICAgICAgICAgICAgICBteV9lcnJvcihFUl9UQUJMRU5BTUVfTk9UX0FMTE9X RURfSEVSRSwKICAgICAgICAgICAgICAgICAgICAgICAgICBNWUYoMCksICQxLnN0ciwgdGhkLT53 aGVyZSk7CiAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgJCQ9IChzZWwtPnBhcnNpbmdf cGxhY2UgIT0gSU5fSEFWSU5HIHx8Ci0gICAgICAgICAgICAgICAgICBzZWwtPmdldF9pbl9zdW1f ZXhwcigpID4gMCkgPwotICAgICAgICAgICAgICAgICAgKEl0ZW0qKSBuZXcgSXRlbV9maWVsZChM ZXgtPmN1cnJlbnRfY29udGV4dCgpLCBOdWxsUywgJDEuc3RyLCAkMy5zdHIpIDoKLSAgICAgICAg ICAgICAgICAgIChJdGVtKikgbmV3IEl0ZW1fcmVmKExleC0+Y3VycmVudF9jb250ZXh0KCksIE51 bGxTLCAkMS5zdHIsICQzLnN0cik7CisgICAgICAgICAgICAgIGlmICgoc2VsLT5wYXJzaW5nX3Bs YWNlICE9IElOX0hBVklORykgfHwKKyAgICAgICAgICAgICAgICAgIChzZWwtPmdldF9pbl9zdW1f ZXhwcigpID4gMCkpCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAkJD0gbmV3ICh0 aGQtPm1lbV9yb290KSBJdGVtX2ZpZWxkKExleC0+Y3VycmVudF9jb250ZXh0KCksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdWxsUywgJDEuc3Ry LCAkMy5zdHIpOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgICQkPSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1fcmVm KExleC0+Y3VycmVudF9jb250ZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTnVsbFMsICQxLnN0ciwgJDMuc3RyKTsKKyAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOwogICAgICAgICAgICAgfQogICAgICAgICAgIH0KICAgICAgICAgfCAnLicgaWRlbnQg Jy4nIGlkZW50CkBAIC0xMDY1NSwzMSArMTE0MzAsNDUgQEAgc2ltcGxlX2lkZW50X3E6CiAgICAg ICAgICAgICAgIG15X2Vycm9yKEVSX1RBQkxFTkFNRV9OT1RfQUxMT1dFRF9IRVJFLAogICAgICAg ICAgICAgICAgICAgICAgICBNWUYoMCksICQyLnN0ciwgdGhkLT53aGVyZSk7CiAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAkJD0gKHNlbC0+cGFyc2luZ19wbGFjZSAhPSBJTl9IQVZJTkcgfHwK LSAgICAgICAgICAgICAgICBzZWwtPmdldF9pbl9zdW1fZXhwcigpID4gMCkgPwotICAgICAgICAg ICAgICAgIChJdGVtKikgbmV3IEl0ZW1fZmllbGQoTGV4LT5jdXJyZW50X2NvbnRleHQoKSwgTnVs bFMsICQyLnN0ciwgJDQuc3RyKSA6Ci0gICAgICAgICAgICAgICAgKEl0ZW0qKSBuZXcgSXRlbV9y ZWYoTGV4LT5jdXJyZW50X2NvbnRleHQoKSwgTnVsbFMsICQyLnN0ciwgJDQuc3RyKTsKKyAgICAg ICAgICAgIGlmICgoc2VsLT5wYXJzaW5nX3BsYWNlICE9IElOX0hBVklORykgfHwKKyAgICAgICAg ICAgICAgICAoc2VsLT5nZXRfaW5fc3VtX2V4cHIoKSA+IDApKQorICAgICAgICAgICAgeworICAg ICAgICAgICAgICAkJD0gbmV3ICh0aGQtPm1lbV9yb290KSBJdGVtX2ZpZWxkKExleC0+Y3VycmVu dF9jb250ZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTnVsbFMsICQyLnN0ciwgJDQuc3RyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg IGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgJCQ9IG5ldyAodGhkLT5tZW1fcm9v dCkgSXRlbV9yZWYoTGV4LT5jdXJyZW50X2NvbnRleHQoKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTnVsbFMsICQyLnN0ciwgJDQuc3RyKTsKKyAgICAg ICAgICAgIH0KKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOwogICAgICAgICAgIH0KICAgICAgICAgfCBpZGVudCAnLicgaWRlbnQgJy4nIGlk ZW50CiAgICAgICAgICAgewogICAgICAgICAgICAgVEhEICp0aGQ9IFlZVEhEOwogICAgICAgICAg ICAgTEVYICpsZXg9IHRoZC0+bGV4OwogICAgICAgICAgICAgU0VMRUNUX0xFWCAqc2VsPSBsZXgt PmN1cnJlbnRfc2VsZWN0OworICAgICAgICAgICAgY29uc3QgY2hhciogc2NoZW1hPSAodGhkLT5j bGllbnRfY2FwYWJpbGl0aWVzICYgQ0xJRU5UX05PX1NDSEVNQSA/CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOdWxsUyA6ICQxLnN0cik7CiAgICAgICAgICAgICBpZiAoc2VsLT5u b190YWJsZV9uYW1lc19hbGxvd2VkKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICBteV9l cnJvcihFUl9UQUJMRU5BTUVfTk9UX0FMTE9XRURfSEVSRSwKICAgICAgICAgICAgICAgICAgICAg ICAgTVlGKDApLCAkMy5zdHIsIHRoZC0+d2hlcmUpOwogICAgICAgICAgICAgfQotICAgICAgICAg ICAgJCQ9IChzZWwtPnBhcnNpbmdfcGxhY2UgIT0gSU5fSEFWSU5HIHx8Ci0gICAgICAgICAgICAg ICAgc2VsLT5nZXRfaW5fc3VtX2V4cHIoKSA+IDApID8KLSAgICAgICAgICAgICAgICAoSXRlbSop IG5ldyBJdGVtX2ZpZWxkKExleC0+Y3VycmVudF9jb250ZXh0KCksCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoWVlUSEQtPmNsaWVudF9jYXBhYmlsaXRpZXMgJgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xJRU5UX05PX1NDSEVNQSA/IE51 bGxTIDogJDEuc3RyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQz LnN0ciwgJDUuc3RyKSA6Ci0gICAgICAgICAgICAgICAgKEl0ZW0qKSBuZXcgSXRlbV9yZWYoTGV4 LT5jdXJyZW50X2NvbnRleHQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoWVlUSEQtPmNsaWVudF9jYXBhYmlsaXRpZXMgJgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENMSUVOVF9OT19TQ0hFTUEgPyBOdWxsUyA6ICQxLnN0ciksCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDMuc3RyLCAkNS5zdHIpOworICAgICAgICAg ICAgaWYgKChzZWwtPnBhcnNpbmdfcGxhY2UgIT0gSU5fSEFWSU5HKSB8fAorICAgICAgICAgICAg ICAgIChzZWwtPmdldF9pbl9zdW1fZXhwcigpID4gMCkpCisgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICQkPSBuZXcgKHRoZC0+bWVtX3Jvb3QpIEl0ZW1fZmllbGQoTGV4LT5jdXJyZW50X2Nv bnRleHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzY2hlbWEsICQzLnN0ciwgJDUuc3RyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVs c2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgJCQ9IG5ldyAodGhkLT5tZW1fcm9vdCkg SXRlbV9yZWYoTGV4LT5jdXJyZW50X2NvbnRleHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hLCAkMy5zdHIsICQ1LnN0cik7CisgICAgICAg ICAgICB9CisgICAgICAgICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxf WVlBQk9SVDsKICAgICAgICAgICB9CiAgICAgICAgIDsKIApAQCAtMTA3MTUsMTYgKzExNTA0LDM0 IEBAIGZpZWxkX2lkZW50OgogICAgICAgICA7CiAKIHRhYmxlX2lkZW50OgotICAgICAgICAgIGlk ZW50IHsgJCQ9bmV3IFRhYmxlX2lkZW50KCQxKTsgfQotICAgICAgICB8IGlkZW50ICcuJyBpZGVu dCB7ICQkPW5ldyBUYWJsZV9pZGVudChZWVRIRCwgJDEsJDMsMCk7fQotICAgICAgICB8ICcuJyBp ZGVudCB7ICQkPW5ldyBUYWJsZV9pZGVudCgkMik7fSAvKiBGb3IgRGVscGhpICovCisgICAgICAg ICAgaWRlbnQKKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IFRhYmxlX2lkZW50KCQx KTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFC T1JUOworICAgICAgICAgIH0KKyAgICAgICAgfCBpZGVudCAnLicgaWRlbnQKKyAgICAgICAgICB7 CisgICAgICAgICAgICAkJD0gbmV3IFRhYmxlX2lkZW50KFlZVEhELCAkMSwkMywwKTsKKyAgICAg ICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAg ICAgICAgIH0KKyAgICAgICAgfCAnLicgaWRlbnQKKyAgICAgICAgICB7CisgICAgICAgICAgICAv KiBGb3IgRGVscGhpICovCisgICAgICAgICAgICAkJD0gbmV3IFRhYmxlX2lkZW50KCQyKTsKKyAg ICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwor ICAgICAgICAgIH0KICAgICAgICAgOwogCiB0YWJsZV9pZGVudF9ub2RiOgogICAgICAgICAgIGlk ZW50CiAgICAgICAgICAgewogICAgICAgICAgICAgTEVYX1NUUklORyBkYj17KGNoYXIqKSBhbnlf ZGIsM307Ci0gICAgICAgICAgICAkJD1uZXcgVGFibGVfaWRlbnQoWVlUSEQsIGRiLCQxLDApOwor ICAgICAgICAgICAgJCQ9IG5ldyBUYWJsZV9pZGVudChZWVRIRCwgZGIsJDEsMCk7CisgICAgICAg ICAgICBpZiAoJCQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAg ICAgICB9CiAgICAgICAgIDsKIApAQCAtMTA3NTAsOCArMTE1NTcsMTEgQEAgSURFTlRfc3lzOgog ICAgICAgICAgICAgICAkJD0gJDE7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCi0g ICAgICAgICAgICAgIHRoZC0+Y29udmVydF9zdHJpbmcoJiQkLCBzeXN0ZW1fY2hhcnNldF9pbmZv LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQxLnN0ciwgJDEubGVuZ3RoLCB0 aGQtPmNoYXJzZXQoKSk7CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGlmICh0aGQtPmNv bnZlcnRfc3RyaW5nKCYkJCwgc3lzdGVtX2NoYXJzZXRfaW5mbywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJDEuc3RyLCAkMS5sZW5ndGgsIHRoZC0+Y2hhcnNldCgpKSkK KyAgICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgfQogICAgICAgICAg IH0KICAgICAgICAgOwogCkBAIC0xMDc2Myw4ICsxMTU3MywxMSBAQCBURVhUX1NUUklOR19zeXM6 CiAgICAgICAgICAgICBpZiAodGhkLT5jaGFyc2V0X2lzX3N5c3RlbV9jaGFyc2V0KQogICAgICAg ICAgICAgICAkJD0gJDE7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgIHRoZC0+Y29u dmVydF9zdHJpbmcoJiQkLCBzeXN0ZW1fY2hhcnNldF9pbmZvLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICQxLnN0ciwgJDEubGVuZ3RoLCB0aGQtPmNoYXJzZXQoKSk7CisgICAg ICAgICAgICB7CisgICAgICAgICAgICAgIGlmICh0aGQtPmNvbnZlcnRfc3RyaW5nKCYkJCwgc3lz dGVtX2NoYXJzZXRfaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JDEuc3RyLCAkMS5sZW5ndGgsIHRoZC0+Y2hhcnNldCgpKSkKKyAgICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOworICAgICAgICAgICAgfQogICAgICAgICAgIH0KICAgICAgICAgOwogCkBAIC0x MDc3Niw4ICsxMTU4OSwxMSBAQCBURVhUX1NUUklOR19saXRlcmFsOgogICAgICAgICAgICAgaWYg KHRoZC0+Y2hhcnNldF9pc19jb2xsYXRpb25fY29ubmVjdGlvbikKICAgICAgICAgICAgICAgJCQ9 ICQxOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICB0aGQtPmNvbnZlcnRfc3RyaW5n KCYkJCwgdGhkLT52YXJpYWJsZXMuY29sbGF0aW9uX2Nvbm5lY3Rpb24sCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJDEuc3RyLCAkMS5sZW5ndGgsIHRoZC0+Y2hhcnNldCgpKTsK KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKHRoZC0+Y29udmVydF9zdHJpbmcoJiQk LCB0aGQtPnZhcmlhYmxlcy5jb2xsYXRpb25fY29ubmVjdGlvbiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJDEuc3RyLCAkMS5sZW5ndGgsIHRoZC0+Y2hhcnNldCgpKSkK KyAgICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgfQogICAgICAgICAg IH0KICAgICAgICAgOwogCkBAIC0xMDc4OSw4ICsxMTYwNSwxMiBAQCBURVhUX1NUUklOR19maWxl c3lzdGVtOgogICAgICAgICAgICAgaWYgKHRoZC0+Y2hhcnNldF9pc19jaGFyYWN0ZXJfc2V0X2Zp bGVzeXN0ZW0pCiAgICAgICAgICAgICAgICQkPSAkMTsKICAgICAgICAgICAgIGVsc2UKLSAgICAg ICAgICAgICAgdGhkLT5jb252ZXJ0X3N0cmluZygmJCQsIHRoZC0+dmFyaWFibGVzLmNoYXJhY3Rl cl9zZXRfZmlsZXN5c3RlbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMS5z dHIsICQxLmxlbmd0aCwgdGhkLT5jaGFyc2V0KCkpOworICAgICAgICAgICAgeworICAgICAgICAg ICAgICBpZiAodGhkLT5jb252ZXJ0X3N0cmluZygmJCQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRoZC0+dmFyaWFibGVzLmNoYXJhY3Rlcl9zZXRfZmlsZXN5c3RlbSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDEuc3RyLCAkMS5sZW5ndGgs IHRoZC0+Y2hhcnNldCgpKSkKKyAgICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAg ICAgICAgfQogICAgICAgICAgIH0KICAgICAgICAgOwogCkBAIC0xMDgwMCw2ICsxMTYyMCw4IEBA IGlkZW50OgogICAgICAgICAgIHsKICAgICAgICAgICAgIFRIRCAqdGhkPSBZWVRIRDsKICAgICAg ICAgICAgICQkLnN0cj0gdGhkLT5zdHJtYWtlKCQxLnN0ciwgJDEubGVuZ3RoKTsKKyAgICAgICAg ICAgIGlmICgkJC5zdHIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAg ICAgICAgICAgICQkLmxlbmd0aD0gJDEubGVuZ3RoOwogICAgICAgICAgIH0KICAgICAgICAgOwpA QCAtMTA4MTAsNiArMTE2MzIsOCBAQCBsYWJlbF9pZGVudDoKICAgICAgICAgICB7CiAgICAgICAg ICAgICBUSEQgKnRoZD0gWVlUSEQ7CiAgICAgICAgICAgICAkJC5zdHI9IHRoZC0+c3RybWFrZSgk MS5zdHIsICQxLmxlbmd0aCk7CisgICAgICAgICAgICBpZiAoJCQuc3RyID09IE5VTEwpCisgICAg ICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICAkJC5sZW5ndGg9ICQxLmxlbmd0 aDsKICAgICAgICAgICB9CiAgICAgICAgIDsKQEAgLTExMzM3LDYgKzEyMTYxLDcgQEAgZXh0X29w dGlvbl92YWx1ZToKIHN5c19vcHRpb25fdmFsdWU6CiAgICAgICAgICAgb3B0aW9uX3R5cGUgaW50 ZXJuYWxfdmFyaWFibGVfbmFtZSBlcXVhbCBzZXRfZXhwcl9vcl9kZWZhdWx0CiAgICAgICAgICAg eworICAgICAgICAgICAgVEhEICp0aGQ9IFlZVEhEOwogICAgICAgICAgICAgTEVYICpsZXg9TGV4 OwogCiAgICAgICAgICAgICBpZiAoJDIudmFyID09IHRyZ19uZXdfcm93X2Zha2VfdmFyKQpAQCAt MTEzNTYsMjEgKzEyMTgxLDI5IEBAIHN5c19vcHRpb25fdmFsdWU6CiAgICAgICAgICAgICAgIGVs c2UKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIC8qIFFROiBTaG91bGRuJ3QgdGhp cyBiZSBmaWVsZCdzIGRlZmF1bHQgdmFsdWUgPyAqLwotICAgICAgICAgICAgICAgIGl0PSBuZXcg SXRlbV9udWxsKCk7CisgICAgICAgICAgICAgICAgaXQ9IG5ldyAodGhkLT5tZW1fcm9vdCkgSXRl bV9udWxsKCk7CisgICAgICAgICAgICAgICAgaWYgKGl0ID09IE5VTEwpCisgICAgICAgICAgICAg ICAgICBNWVNRTF9ZWUFCT1JUOwogICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgREJV R19BU1NFUlQobGV4LT50cmdfY2hpc3RpY3MuYWN0aW9uX3RpbWUgPT0gVFJHX0FDVElPTl9CRUZP UkUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxleC0+dHJnX2NoaXN0aWNzLmV2ZW50 ID09IFRSR19FVkVOVF9JTlNFUlQgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxleC0+ dHJnX2NoaXN0aWNzLmV2ZW50ID09IFRSR19FVkVOVF9VUERBVEUpKTsKLSAgICAgICAgICAgICAg aWYgKCEodHJnX2ZsZD0gbmV3IEl0ZW1fdHJpZ2dlcl9maWVsZChMZXgtPmN1cnJlbnRfY29udGV4 dCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEl0ZW1fdHJpZ2dlcl9maWVsZDo6TkVXX1JPVywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkMi5iYXNlX25hbWUuc3RyLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQREFURV9BQ0wsIEZBTFNF KSkgfHwKLSAgICAgICAgICAgICAgICAgICEoc3BfZmxkPSBuZXcgc3BfaW5zdHJfc2V0X3RyaWdn ZXJfZmllbGQobGV4LT5zcGhlYWQtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbnMoKSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV4LT5zcGNvbnQs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRyZ19mbGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGl0LCBsZXgpKSkKKworICAgICAgICAgICAgICB0cmdfZmxkPSBuZXcg KHRoZC0+bWVtX3Jvb3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgSXRlbV90cmlnZ2VyX2Zp ZWxkKExleC0+Y3VycmVudF9jb250ZXh0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEl0ZW1fdHJpZ2dlcl9maWVsZDo6TkVXX1JPVywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDIuYmFzZV9uYW1lLnN0ciwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVBEQVRFX0FDTCwgRkFMU0Up OworICAgICAgICAgICAgICBpZiAodHJnX2ZsZCA9PSBOVUxMKQorICAgICAgICAgICAgICAgIE1Z U1FMX1lZQUJPUlQ7CisgICAgICAgICAgICAgIAorICAgICAgICAgICAgICBzcF9mbGQ9IG5ldyBz cF9pbnN0cl9zZXRfdHJpZ2dlcl9maWVsZChsZXgtPnNwaGVhZC0+CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RydWN0aW9ucygpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXgtPnNw Y29udCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdHJnX2ZsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaXQsIGxleCk7CisgICAgICAgICAgICAgIGlmIChzcF9mbGQgPT0gTlVMTCkKICAg ICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwogCiAgICAgICAgICAgICAgIC8qCkBAIC0xMTM4 Nyw4ICsxMjIyMCwxMSBAQCBzeXNfb3B0aW9uX3ZhbHVlOgogICAgICAgICAgICAgeyAvKiBTeXN0 ZW0gdmFyaWFibGUgKi8KICAgICAgICAgICAgICAgaWYgKCQxKQogICAgICAgICAgICAgICAgIGxl eC0+b3B0aW9uX3R5cGU9ICQxOwotICAgICAgICAgICAgICBsZXgtPnZhcl9saXN0LnB1c2hfYmFj ayhuZXcgc2V0X3ZhcihsZXgtPm9wdGlvbl90eXBlLCAkMi52YXIsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICYkMi5iYXNlX25hbWUsICQ0KSk7CisgICAgICAgICAgICAg IHNldF92YXIgKnZhcj0gbmV3IHNldF92YXIobGV4LT5vcHRpb25fdHlwZSwgJDIudmFyLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYkMi5iYXNlX25hbWUsICQ0KTsK KyAgICAgICAgICAgICAgaWYgKHZhciA9PSBOVUxMKQorICAgICAgICAgICAgICAgIE1ZU1FMX1lZ QUJPUlQ7CisgICAgICAgICAgICAgIGxleC0+dmFyX2xpc3QucHVzaF9iYWNrKHZhcik7CiAgICAg ICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICB7CkBAIC0xMTQxMCwzOSAr MTIyNDYsNjkgQEAgc3lzX29wdGlvbl92YWx1ZToKICAgICAgICAgICAgICAgZWxzZSBpZiAoc3B2 LT5kZmx0KQogICAgICAgICAgICAgICAgIGl0PSBzcHYtPmRmbHQ7CiAgICAgICAgICAgICAgIGVs c2UKLSAgICAgICAgICAgICAgICBpdD0gbmV3IEl0ZW1fbnVsbCgpOworICAgICAgICAgICAgICB7 CisgICAgICAgICAgICAgICAgaXQ9IG5ldyAodGhkLT5tZW1fcm9vdCkgSXRlbV9udWxsKCk7Cisg ICAgICAgICAgICAgICAgaWYgKGl0ID09IE5VTEwpCisgICAgICAgICAgICAgICAgICBNWVNRTF9Z WUFCT1JUOworICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIHNwX3NldD0gbmV3IHNwX2lu c3RyX3NldChsZXgtPnNwaGVhZC0+aW5zdHJ1Y3Rpb25zKCksIGN0eCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNwdi0+b2Zmc2V0LCBpdCwgc3B2LT50eXBlLCBsZXgs IFRSVUUpOworICAgICAgICAgICAgICBpZiAoc3Bfc2V0ID09IE5VTEwpCisgICAgICAgICAgICAg ICAgTVlTUUxfWVlBQk9SVDsKICAgICAgICAgICAgICAgbGV4LT5zcGhlYWQtPmFkZF9pbnN0cihz cF9zZXQpOwogICAgICAgICAgICAgfQogICAgICAgICAgIH0KICAgICAgICAgfCBvcHRpb25fdHlw ZSBUUkFOU0FDVElPTl9TWU0gSVNPTEFUSU9OIExFVkVMX1NZTSBpc29sYXRpb25fdHlwZXMKICAg ICAgICAgICB7CisgICAgICAgICAgICBUSEQgKnRoZD0gWVlUSEQ7CiAgICAgICAgICAgICBMRVgg KmxleD1MZXg7CiAgICAgICAgICAgICBsZXgtPm9wdGlvbl90eXBlPSAkMTsKLSAgICAgICAgICAg IGxleC0+dmFyX2xpc3QucHVzaF9iYWNrKG5ldyBzZXRfdmFyKGxleC0+b3B0aW9uX3R5cGUsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kX3N5c192 YXIoWVlUSEQsICJ0eF9pc29sYXRpb24iKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZudWxsX2xleF9zdHIsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgSXRlbV9pbnQoKGludDMyKSAkNSkpKTsKKyAg ICAgICAgICAgIEl0ZW0gKml0ZW09IG5ldyAodGhkLT5tZW1fcm9vdCkgSXRlbV9pbnQoKGludDMy KSAkNSk7CisgICAgICAgICAgICBpZiAoaXRlbSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOworICAgICAgICAgICAgc2V0X3ZhciAqdmFyPSBuZXcgc2V0X3ZhcihsZXgtPm9w dGlvbl90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5kX3N5 c192YXIodGhkLCAidHhfaXNvbGF0aW9uIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZudWxsX2xleF9zdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGl0ZW0pOworICAgICAgICAgICAgaWYgKHZhciA9PSBOVUxMKQorICAgICAgICAgICAg ICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgbGV4LT52YXJfbGlzdC5wdXNoX2JhY2sodmFy KTsKICAgICAgICAgICB9CiAgICAgICAgIDsKIAogb3B0aW9uX3ZhbHVlOgogICAgICAgICAgICdA JyBpZGVudF9vcl90ZXh0IGVxdWFsIGV4cHIKICAgICAgICAgICB7Ci0gICAgICAgICAgICBMZXgt PnZhcl9saXN0LnB1c2hfYmFjayhuZXcgc2V0X3Zhcl91c2VyKG5ldyBJdGVtX2Z1bmNfc2V0X3Vz ZXJfdmFyKCQyLCQ0KSkpOworICAgICAgICAgICAgSXRlbV9mdW5jX3NldF91c2VyX3ZhciAqaXRl bTsKKyAgICAgICAgICAgIGl0ZW09IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2Z1bmNfc2V0 X3VzZXJfdmFyKCQyLCAkNCk7CisgICAgICAgICAgICBpZiAoaXRlbSA9PSBOVUxMKQorICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgc2V0X3Zhcl91c2VyICp2YXI9IG5l dyBzZXRfdmFyX3VzZXIoaXRlbSk7CisgICAgICAgICAgICBpZiAodmFyID09IE5VTEwpCisgICAg ICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgICBMZXgtPnZhcl9saXN0LnB1c2hf YmFjayh2YXIpOwogICAgICAgICAgIH0KICAgICAgICAgfCAnQCcgJ0AnIG9wdF92YXJfaWRlbnRf dHlwZSBpbnRlcm5hbF92YXJpYWJsZV9uYW1lIGVxdWFsIHNldF9leHByX29yX2RlZmF1bHQKICAg ICAgICAgICB7CiAgICAgICAgICAgICBMRVggKmxleD1MZXg7Ci0gICAgICAgICAgICBsZXgtPnZh cl9saXN0LnB1c2hfYmFjayhuZXcgc2V0X3ZhcigkMywgJDQudmFyLCAmJDQuYmFzZV9uYW1lLCAk NikpOworICAgICAgICAgICAgc2V0X3ZhciAqdmFyPSBuZXcgc2V0X3ZhcigkMywgJDQudmFyLCAm JDQuYmFzZV9uYW1lLCAkNik7CisgICAgICAgICAgICBpZiAodmFyID09IE5VTEwpCisgICAgICAg ICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgICBsZXgtPnZhcl9saXN0LnB1c2hfYmFj ayh2YXIpOwogICAgICAgICAgIH0KICAgICAgICAgfCBjaGFyc2V0IG9sZF9vcl9uZXdfY2hhcnNl dF9uYW1lX29yX2RlZmF1bHQKICAgICAgICAgICB7CiAgICAgICAgICAgICBUSEQgKnRoZD0gWVlU SEQ7CiAgICAgICAgICAgICBMRVggKmxleD0gdGhkLT5sZXg7Ci0gICAgICAgICAgICAkMj0gJDIg PyAkMjogZ2xvYmFsX3N5c3RlbV92YXJpYWJsZXMuY2hhcmFjdGVyX3NldF9jbGllbnQ7Ci0gICAg ICAgICAgICBsZXgtPnZhcl9saXN0LnB1c2hfYmFjayhuZXcgc2V0X3Zhcl9jb2xsYXRpb25fY2xp ZW50KCQyLHRoZC0+dmFyaWFibGVzLmNvbGxhdGlvbl9kYXRhYmFzZSwkMikpOworICAgICAgICAg ICAgQ0hBUlNFVF9JTkZPICpjczI7CisgICAgICAgICAgICBjczI9ICQyID8gJDI6IGdsb2JhbF9z eXN0ZW1fdmFyaWFibGVzLmNoYXJhY3Rlcl9zZXRfY2xpZW50OworICAgICAgICAgICAgc2V0X3Zh cl9jb2xsYXRpb25fY2xpZW50ICp2YXI7CisgICAgICAgICAgICB2YXI9IG5ldyBzZXRfdmFyX2Nv bGxhdGlvbl9jbGllbnQoY3MyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRoZC0+dmFyaWFibGVzLmNvbGxhdGlvbl9kYXRhYmFzZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjczIpOworICAgICAgICAgICAgaWYg KHZhciA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAg bGV4LT52YXJfbGlzdC5wdXNoX2JhY2sodmFyKTsKICAgICAgICAgICB9CiAgICAgICAgIHwgTkFN RVNfU1lNIGVxdWFsIGV4cHIKICAgICAgICAgICB7CkBAIC0xMTQ2MiwxNSArMTIzMjgsMjEgQEAg b3B0aW9uX3ZhbHVlOgogICAgICAgICB8IE5BTUVTX1NZTSBjaGFyc2V0X25hbWVfb3JfZGVmYXVs dCBvcHRfY29sbGF0ZQogICAgICAgICAgIHsKICAgICAgICAgICAgIExFWCAqbGV4PSBMZXg7Ci0g ICAgICAgICAgICAkMj0gJDIgPyAkMiA6IGdsb2JhbF9zeXN0ZW1fdmFyaWFibGVzLmNoYXJhY3Rl cl9zZXRfY2xpZW50OwotICAgICAgICAgICAgJDM9ICQzID8gJDMgOiAkMjsKLSAgICAgICAgICAg IGlmICghbXlfY2hhcnNldF9zYW1lKCQyLCQzKSkKKyAgICAgICAgICAgIENIQVJTRVRfSU5GTyAq Y3MyOworICAgICAgICAgICAgQ0hBUlNFVF9JTkZPICpjczM7CisgICAgICAgICAgICBjczI9ICQy ID8gJDIgOiBnbG9iYWxfc3lzdGVtX3ZhcmlhYmxlcy5jaGFyYWN0ZXJfc2V0X2NsaWVudDsKKyAg ICAgICAgICAgIGNzMz0gJDMgPyAkMyA6IGNzMjsKKyAgICAgICAgICAgIGlmICghbXlfY2hhcnNl dF9zYW1lKGNzMiwgY3MzKSkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgbXlfZXJyb3Io RVJfQ09MTEFUSU9OX0NIQVJTRVRfTUlTTUFUQ0gsIE1ZRigwKSwKLSAgICAgICAgICAgICAgICAg ICAgICAgJDMtPm5hbWUsICQyLT5jc25hbWUpOworICAgICAgICAgICAgICAgICAgICAgICBjczMt Pm5hbWUsIGNzMi0+Y3NuYW1lKTsKICAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgIGxleC0+dmFyX2xpc3QucHVzaF9iYWNrKG5ldyBzZXRfdmFy X2NvbGxhdGlvbl9jbGllbnQoJDMsJDMsJDMpKTsKKyAgICAgICAgICAgIHNldF92YXJfY29sbGF0 aW9uX2NsaWVudCAqdmFyOworICAgICAgICAgICAgdmFyPSBuZXcgc2V0X3Zhcl9jb2xsYXRpb25f Y2xpZW50KGNzMywgY3MzLCBjczMpOworICAgICAgICAgICAgaWYgKHZhciA9PSBOVUxMKQorICAg ICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgbGV4LT52YXJfbGlzdC5wdXNo X2JhY2sodmFyKTsKICAgICAgICAgICB9CiAgICAgICAgIHwgUEFTU1dPUkQgZXF1YWwgdGV4dF9v cl9wYXNzd29yZAogICAgICAgICAgIHsKQEAgLTExNDkxLDE0ICsxMjM2MywyMCBAQCBvcHRpb25f dmFsdWU6CiAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICB1c2VyLT5o b3N0PW51bGxfbGV4X3N0cjsKICAgICAgICAgICAgIHVzZXItPnVzZXIuc3RyPXRoZC0+c2VjdXJp dHlfY3R4LT5wcml2X3VzZXI7Ci0gICAgICAgICAgICB0aGQtPmxleC0+dmFyX2xpc3QucHVzaF9i YWNrKG5ldyBzZXRfdmFyX3Bhc3N3b3JkKHVzZXIsICQzKSk7CisgICAgICAgICAgICBzZXRfdmFy X3Bhc3N3b3JkICp2YXI9IG5ldyBzZXRfdmFyX3Bhc3N3b3JkKHVzZXIsICQzKTsKKyAgICAgICAg ICAgIGlmICh2YXIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9SVDsKKyAgICAg ICAgICAgIHRoZC0+bGV4LT52YXJfbGlzdC5wdXNoX2JhY2sodmFyKTsKICAgICAgICAgICAgIHRo ZC0+bGV4LT5hdXRvY29tbWl0PSBUUlVFOwogICAgICAgICAgICAgaWYgKGxleC0+c3BoZWFkKQog ICAgICAgICAgICAgICBsZXgtPnNwaGVhZC0+bV9mbGFnc3w9IHNwX2hlYWQ6OkhBU19TRVRfQVVU T0NPTU1JVF9TVE1UOwogICAgICAgICAgIH0KICAgICAgICAgfCBQQVNTV09SRCBGT1JfU1lNIHVz ZXIgZXF1YWwgdGV4dF9vcl9wYXNzd29yZAogICAgICAgICAgIHsKLSAgICAgICAgICAgIExleC0+ dmFyX2xpc3QucHVzaF9iYWNrKG5ldyBzZXRfdmFyX3Bhc3N3b3JkKCQzLCQ1KSk7CisgICAgICAg ICAgICBzZXRfdmFyX3Bhc3N3b3JkICp2YXI9IG5ldyBzZXRfdmFyX3Bhc3N3b3JkKCQzLCQ1KTsK KyAgICAgICAgICAgIGlmICh2YXIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlBQk9S VDsKKyAgICAgICAgICAgIExleC0+dmFyX2xpc3QucHVzaF9iYWNrKHZhcik7CiAgICAgICAgICAg ICBMZXgtPmF1dG9jb21taXQ9IFRSVUU7CiAgICAgICAgICAgICBpZiAoTGV4LT5zcGhlYWQpCiAg ICAgICAgICAgICAgIExleC0+c3BoZWFkLT5tX2ZsYWdzfD0gc3BfaGVhZDo6SEFTX1NFVF9BVVRP Q09NTUlUX1NUTVQ7CkBAIC0xMTYwOSwxMSArMTI0ODcsMTUgQEAgdGV4dF9vcl9wYXNzd29yZDoK ICAgICAgICAgICAgICAgSXRlbV9mdW5jX29sZF9wYXNzd29yZDo6YWxsb2MoWVlUSEQsICQzLnN0 cikgOgogICAgICAgICAgICAgICBJdGVtX2Z1bmNfcGFzc3dvcmQ6OmFsbG9jKFlZVEhELCAkMy5z dHIpIDoKICAgICAgICAgICAgICAgJDMuc3RyOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwp CisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgfQogICAgICAgICB8IE9M RF9QQVNTV09SRCAnKCcgVEVYVF9TVFJJTkcgJyknCiAgICAgICAgICAgewogICAgICAgICAgICAg JCQ9ICQzLmxlbmd0aCA/IEl0ZW1fZnVuY19vbGRfcGFzc3dvcmQ6OmFsbG9jKFlZVEhELCAkMy5z dHIpIDoKICAgICAgICAgICAgICAgJDMuc3RyOworICAgICAgICAgICAgaWYgKCQkID09IE5VTEwp CisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgfQogICAgICAgICA7CiAK QEAgLTExNjIxLDkgKzEyNTAzLDI3IEBAIHRleHRfb3JfcGFzc3dvcmQ6CiBzZXRfZXhwcl9vcl9k ZWZhdWx0OgogICAgICAgICAgIGV4cHIgeyAkJD0kMTsgfQogICAgICAgICB8IERFRkFVTFQgeyAk JD0wOyB9Ci0gICAgICAgIHwgT04gICAgIHsgJCQ9bmV3IEl0ZW1fc3RyaW5nKCJPTiIsICAyLCBz eXN0ZW1fY2hhcnNldF9pbmZvKTsgfQotICAgICAgICB8IEFMTCAgICB7ICQkPW5ldyBJdGVtX3N0 cmluZygiQUxMIiwgMywgc3lzdGVtX2NoYXJzZXRfaW5mbyk7IH0KLSAgICAgICAgfCBCSU5BUlkg eyAkJD1uZXcgSXRlbV9zdHJpbmcoImJpbmFyeSIsIDYsIHN5c3RlbV9jaGFyc2V0X2luZm8pOyB9 CisgICAgICAgIHwgT04KKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZWVRIRC0+ bWVtX3Jvb3QpIEl0ZW1fc3RyaW5nKCJPTiIsICAyLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW1fY2hhcnNldF9pbmZvKTsKKyAgICAgICAg ICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAg ICAgIH0KKyAgICAgICAgfCBBTEwKKyAgICAgICAgICB7CisgICAgICAgICAgICAkJD0gbmV3IChZ WVRIRC0+bWVtX3Jvb3QpIEl0ZW1fc3RyaW5nKCJBTEwiLCAzLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW1fY2hhcnNldF9pbmZvKTsKKyAg ICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOwor ICAgICAgICAgIH0KKyAgICAgICAgfCBCSU5BUlkKKyAgICAgICAgICB7CisgICAgICAgICAgICAk JD0gbmV3IChZWVRIRC0+bWVtX3Jvb3QpIEl0ZW1fc3RyaW5nKCJiaW5hcnkiLCA2LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW1fY2hhcnNl dF9pbmZvKTsKKyAgICAgICAgICAgIGlmICgkJCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOworICAgICAgICAgIH0KICAgICAgICAgOwogCiAvKiBMb2NrIGZ1bmN0aW9uICov CkBAIC0xMTgwMiw3ICsxMjcwMiwxMCBAQCBoYW5kbGVyOgogICAgICAgICAgICAgbGV4LT5leHBy X2FsbG93c19zdWJzZWxlY3Q9IEZBTFNFOwogICAgICAgICAgICAgbGV4LT5zcWxfY29tbWFuZCA9 IFNRTENPTV9IQV9SRUFEOwogICAgICAgICAgICAgbGV4LT5oYV9ya2V5X21vZGU9IEhBX1JFQURf S0VZX0VYQUNUOyAvKiBBdm9pZCBwdXJpZnkgd2FybmluZ3MgKi8KLSAgICAgICAgICAgIGxleC0+ Y3VycmVudF9zZWxlY3QtPnNlbGVjdF9saW1pdD0gbmV3IEl0ZW1faW50KChpbnQzMikgMSk7Cisg ICAgICAgICAgICBJdGVtICpvbmU9IG5ldyAoWVlUSEQtPm1lbV9yb290KSBJdGVtX2ludCgoaW50 MzIpIDEpOworICAgICAgICAgICAgaWYgKG9uZSA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNR TF9ZWUFCT1JUOworICAgICAgICAgICAgbGV4LT5jdXJyZW50X3NlbGVjdC0+c2VsZWN0X2xpbWl0 PSBvbmU7CiAgICAgICAgICAgICBsZXgtPmN1cnJlbnRfc2VsZWN0LT5vZmZzZXRfbGltaXQ9IDA7 CiAgICAgICAgICAgICBpZiAoIWxleC0+Y3VycmVudF9zZWxlY3QtPmFkZF90YWJsZV90b19saXN0 KGxleC0+dGhkLCAkMiwgMCwgMCkpCiAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CkBAIC0x MjEyNiw4ICsxMzAyOSw5IEBAIGdyYW50X3VzZXI6CiAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICBjaGFyICpidWZmPSAKICAgICAgICAgICAgICAgICAgIChjaGFyICopIFlZVEhELT5h bGxvYyhTQ1JBTUJMRURfUEFTU1dPUkRfQ0hBUl9MRU5HVEhfMzIzKzEpOwotICAgICAgICAgICAg ICAgIGlmIChidWZmKQotICAgICAgICAgICAgICAgICAgbWFrZV9zY3JhbWJsZWRfcGFzc3dvcmRf MzIzKGJ1ZmYsICQ0LnN0cik7CisgICAgICAgICAgICAgICAgaWYgKGJ1ZmYgPT0gTlVMTCkKKyAg ICAgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgICAgICAgbWFrZV9zY3Jh bWJsZWRfcGFzc3dvcmRfMzIzKGJ1ZmYsICQ0LnN0cik7CiAgICAgICAgICAgICAgICAgJDEtPnBh c3N3b3JkLnN0cj0gYnVmZjsKICAgICAgICAgICAgICAgICAkMS0+cGFzc3dvcmQubGVuZ3RoPSBT Q1JBTUJMRURfUEFTU1dPUkRfQ0hBUl9MRU5HVEhfMzIzOwogICAgICAgICAgICAgICB9CkBAIC0x MjEzNSw4ICsxMzAzOSw5IEBAIGdyYW50X3VzZXI6CiAgICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICBjaGFyICpidWZmPSAKICAgICAgICAgICAgICAgICAgIChjaGFyICopIFlZVEhELT5h bGxvYyhTQ1JBTUJMRURfUEFTU1dPUkRfQ0hBUl9MRU5HVEgrMSk7Ci0gICAgICAgICAgICAgICAg aWYgKGJ1ZmYpCi0gICAgICAgICAgICAgICAgICBtYWtlX3NjcmFtYmxlZF9wYXNzd29yZChidWZm LCAkNC5zdHIpOworICAgICAgICAgICAgICAgIGlmIChidWZmID09IE5VTEwpCisgICAgICAgICAg ICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAgICAgIG1ha2Vfc2NyYW1ibGVkX3Bh c3N3b3JkKGJ1ZmYsICQ0LnN0cik7CiAgICAgICAgICAgICAgICAgJDEtPnBhc3N3b3JkLnN0cj0g YnVmZjsKICAgICAgICAgICAgICAgICAkMS0+cGFzc3dvcmQubGVuZ3RoPSBTQ1JBTUJMRURfUEFT U1dPUkRfQ0hBUl9MRU5HVEg7CiAgICAgICAgICAgICAgIH0KQEAgLTEyMTY2LDYgKzEzMDcxLDgg QEAgY29sdW1uX2xpc3RfaWQ6CiAgICAgICAgICAgaWRlbnQKICAgICAgICAgICB7CiAgICAgICAg ICAgICBTdHJpbmcgKm5ld19zdHIgPSBuZXcgKFlZVEhELT5tZW1fcm9vdCkgU3RyaW5nKChjb25z dCBjaGFyKikgJDEuc3RyLCQxLmxlbmd0aCxzeXN0ZW1fY2hhcnNldF9pbmZvKTsKKyAgICAgICAg ICAgIGlmIChuZXdfc3RyID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAg ICAgICAgICAgICBMaXN0X2l0ZXJhdG9yIDxMRVhfQ09MVU1OPiBpdGVyKExleC0+Y29sdW1ucyk7 CiAgICAgICAgICAgICBjbGFzcyBMRVhfQ09MVU1OICpwb2ludDsKICAgICAgICAgICAgIExFWCAq bGV4PUxleDsKQEAgLTEyMTc5LDcgKzEzMDg2LDEyIEBAIGNvbHVtbl9saXN0X2lkOgogICAgICAg ICAgICAgaWYgKHBvaW50KQogICAgICAgICAgICAgICBwb2ludC0+cmlnaHRzIHw9IGxleC0+d2hp Y2hfY29sdW1uczsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgbGV4LT5jb2x1bW5z LnB1c2hfYmFjayhuZXcgTEVYX0NPTFVNTiAoKm5ld19zdHIsbGV4LT53aGljaF9jb2x1bW5zKSk7 CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIExFWF9DT0xVTU4gKmNvbD0gbmV3IExFWF9D T0xVTU4gKCpuZXdfc3RyLGxleC0+d2hpY2hfY29sdW1ucyk7CisgICAgICAgICAgICAgIGlmIChj b2wgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JUOworICAgICAgICAgICAg ICBsZXgtPmNvbHVtbnMucHVzaF9iYWNrKGNvbCk7CisgICAgICAgICAgICB9CiAgICAgICAgICAg fQogICAgICAgICA7CiAKQEAgLTEyNjE3LDIxICsxMzUyOSwyNCBAQCB2aWV3X2xpc3Rfb3B0Ogog ICAgICAgICA7CiAKIHZpZXdfbGlzdDoKLSAgICAgICAgICBpZGVudCAKLSAgICAgICAgICAgIHsK LSAgICAgICAgICAgICAgTGV4LT52aWV3X2xpc3QucHVzaF9iYWNrKChMRVhfU1RSSU5HKikKLSAg ICAgICAgICAgICAgc3FsX21lbWR1cCgmJDEsIHNpemVvZihMRVhfU1RSSU5HKSkpOwotICAgICAg ICAgICAgfQorICAgICAgICAgIGlkZW50CisgICAgICAgICAgeworICAgICAgICAgICAgTEVYX1NU UklORyAqbHM9IChMRVhfU1RSSU5HKikgc3FsX21lbWR1cCgmJDEsIHNpemVvZihMRVhfU1RSSU5H KSk7CisgICAgICAgICAgICBpZiAobHMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgTVlTUUxfWVlB Qk9SVDsKKyAgICAgICAgICAgIExleC0+dmlld19saXN0LnB1c2hfYmFjayhscyk7CisgICAgICAg ICAgfQogICAgICAgICB8IHZpZXdfbGlzdCAnLCcgaWRlbnQKLSAgICAgICAgICAgIHsKLSAgICAg ICAgICAgICAgTGV4LT52aWV3X2xpc3QucHVzaF9iYWNrKChMRVhfU1RSSU5HKikKLSAgICAgICAg ICAgICAgc3FsX21lbWR1cCgmJDMsIHNpemVvZihMRVhfU1RSSU5HKSkpOwotICAgICAgICAgICAg fQorICAgICAgICAgIHsKKyAgICAgICAgICAgIExFWF9TVFJJTkcgKmxzPSAoTEVYX1NUUklORyop IHNxbF9tZW1kdXAoJiQzLCBzaXplb2YoTEVYX1NUUklORykpOworICAgICAgICAgICAgaWYgKGxz ID09IE5VTEwpCisgICAgICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CisgICAgICAgICAgICBMZXgt PnZpZXdfbGlzdC5wdXNoX2JhY2sobHMpOworICAgICAgICAgIH0KICAgICAgICAgOwogCiB2aWV3 X3NlbGVjdDoKICAgICAgICAgICB7Ci0gICAgICAgICAgICBUSEQgKnRoZD0gWVlUSEQ7CiAgICAg ICAgICAgICBMRVggKmxleD0gTGV4OwogICAgICAgICAgICAgbGV4LT5wYXJzaW5nX29wdGlvbnMu YWxsb3dzX3ZhcmlhYmxlPSBGQUxTRTsKICAgICAgICAgICAgIGxleC0+cGFyc2luZ19vcHRpb25z LmFsbG93c19zZWxlY3RfaW50bz0gRkFMU0U7CkBAIC0xMjgxNyw2ICsxMzczMiw4IEBAIHNmX3Rh aWw6CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvKiBPcmRlciBpcyBpbXBvcnRhbnQgaGVy ZTogbmV3IC0gcmVzZXQgLSBpbml0ICovCiAgICAgICAgICAgICBzcD0gbmV3IHNwX2hlYWQoKTsK KyAgICAgICAgICAgIGlmIChzcCA9PSBOVUxMKQorICAgICAgICAgICAgICBNWVNRTF9ZWUFCT1JU OwogICAgICAgICAgICAgc3AtPnJlc2V0X3RoZF9tZW1fcm9vdCh0aGQpOwogICAgICAgICAgICAg c3AtPmluaXQobGV4KTsKICAgICAgICAgICAgIHNwLT5pbml0X3NwX25hbWUodGhkLCBsZXgtPnNw bmFtZSk7CkBAIC0xMjk0NCw2ICsxMzg2MSw4IEBAIHNwX3RhaWw6CiAKICAgICAgICAgICAgIC8q IE9yZGVyIGlzIGltcG9ydGFudCBoZXJlOiBuZXcgLSByZXNldCAtIGluaXQgKi8KICAgICAgICAg ICAgIHNwPSBuZXcgc3BfaGVhZCgpOworICAgICAgICAgICAgaWYgKHNwID09IE5VTEwpCisgICAg ICAgICAgICAgIE1ZU1FMX1lZQUJPUlQ7CiAgICAgICAgICAgICBzcC0+cmVzZXRfdGhkX21lbV9y b290KFlZVEhEKTsKICAgICAgICAgICAgIHNwLT5pbml0KGxleCk7CiAgICAgICAgICAgICBzcC0+ bV90eXBlPSBUWVBFX0VOVU1fUFJPQ0VEVVJFOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC90YWJs ZS5jYycKLS0tIGEvc3FsL3RhYmxlLmNjCTIwMDgtMDctMjkgMTI6MDg6MDEgKzAwMDAKKysrIGIv c3FsL3RhYmxlLmNjCTIwMDgtMDgtMDcgMDM6MDU6MzMgKzAwMDAKQEAgLTIxMjUsNiArMjEyNSwy OCBAQCB2b2lkIGZyZWVfYmxvYnMocmVnaXN0ZXIgVEFCTEUgKnRhYmxlKQogfQogCiAKKy8qKgor ICBSZWNsYWltIHRlbXBvcmFyeSBibG9iIHN0b3JhZ2Ugd2hpY2ggaXMgYmlnZ2VyIHRoYW4gCisg IGEgdGhyZXNob2xkLgorIAorICBAcGFyYW0gdGFibGUgQSBoYW5kbGUgdG8gdGhlIFRBQkxFIG9i amVjdCBjb250YWluaW5nIGJsb2IgZmllbGRzCisgIEBwYXJhbSBzaXplIFRoZSB0aHJlc2hvbGQg dmFsdWUuCisgCisqLworCit2b2lkIGZyZWVfZmllbGRfYnVmZmVyc19sYXJnZXJfdGhhbihUQUJM RSAqdGFibGUsIHVpbnQzMiBzaXplKQoreworICB1aW50ICpwdHIsICplbmQ7CisgIGZvciAocHRy PSB0YWJsZS0+cy0+YmxvYl9maWVsZCwgZW5kPXB0ciArIHRhYmxlLT5zLT5ibG9iX2ZpZWxkcyA7 CisgICAgICAgcHRyICE9IGVuZCA7CisgICAgICAgcHRyKyspCisgIHsKKyAgICBGaWVsZF9ibG9i ICpibG9iPSAoRmllbGRfYmxvYiopIHRhYmxlLT5maWVsZFsqcHRyXTsKKyAgICBpZiAoYmxvYi0+ Z2V0X2ZpZWxkX2J1ZmZlcl9zaXplKCkgPiBzaXplKQorICAgICAgICBibG9iLT5mcmVlKCk7Cisg IH0KK30KKwogCS8qIEZpbmQgd2hlcmUgYSBmb3JtIHN0YXJ0cyAqLwogCS8qIGlmIGZvcm1uYW1l IGlzIE51bGxTIHRoZW4gb25seSBmb3JtbmFtZXMgaXMgcmVhZCAqLwogCgo9PT0gbW9kaWZpZWQg ZmlsZSAnc3FsL3RhYmxlLmgnCi0tLSBhL3NxbC90YWJsZS5oCTIwMDgtMDYtMjggMTE6MDA6NTkg KzAwMDAKKysrIGIvc3FsL3RhYmxlLmgJMjAwOC0wNy0yNSAxNToxMDoxNCArMDAwMApAQCAtOTUy LDYgKzk1Miw5IEBAIHR5cGVkZWYgc3RydWN0IHN0X3NjaGVtYV90YWJsZQogI2RlZmluZSBWSUVX X0NIRUNLX0VSUk9SICAgICAgMQogI2RlZmluZSBWSUVXX0NIRUNLX1NLSVAgICAgICAgMgogCisv KiogVGhlIHRocmVzaG9sZCBzaXplIGEgYmxvYiBmaWVsZCBidWZmZXIgYmVmb3JlIGl0IGlzIGZy ZWVkICovCisjZGVmaW5lIE1BWF9URENfQkxPQl9TSVpFIDY1NTM2CisKIHN0cnVjdCBzdF9sZXg7 CiBjbGFzcyBzZWxlY3RfdW5pb247CiBjbGFzcyBUTVBfVEFCTEVfUEFSQU07Cgo9PT0gbW9kaWZp ZWQgZmlsZSAnc3FsL3Rocl9tYWxsb2MuY2MnCi0tLSBhL3NxbC90aHJfbWFsbG9jLmNjCTIwMDgt MDMtMjggMTc6NDc6NTMgKzAwMDAKKysrIGIvc3FsL3Rocl9tYWxsb2MuY2MJMjAwOC0wOC0wMSAx NTozODowNSArMDAwMApAQCAtMjIsNiArMjIsMzMgQEAgZXh0ZXJuICJDIiB7CiAgIHZvaWQgc3Fs X2FsbG9jX2Vycm9yX2hhbmRsZXIodm9pZCkKICAgewogICAgIHNxbF9wcmludF9lcnJvcihFUihF Ul9PVVRfT0ZfUkVTT1VSQ0VTKSk7CisKKyAgICBUSEQgKnRoZD0gY3VycmVudF90aGQ7CisgICAg aWYgKHRoZCkKKyAgICB7CisgICAgICBpZiAoISB0aGQtPmlzX2Vycm9yKCkpCisgICAgICB7Cisg ICAgICAgIC8qCisgICAgICAgICAgVGhpcyB0aHJlYWQgaXMgT3V0IE9mIE1lbW9yeS4KKyAgICAg ICAgICBBbiBPT00gY29uZGl0aW9uIGlzIGEgZmF0YWwgZXJyb3IuCisgICAgICAgICAgSXQgc2hv dWxkIG5vdCBiZSBjYXVnaHQgYnkgZXJyb3IgaGFuZGxlcnMgaW4gc3RvcmVkIHByb2NlZHVyZXMu CisgICAgICAgICAgQWxzbywgcmVjb3JkaW5nIHRoYXQgU1FMIGNvbmRpdGlvbiBpbiB0aGUgY29u ZGl0aW9uIGFyZWEgY291bGQKKyAgICAgICAgICBjYXVzZSBtb3JlIG1lbW9yeSBhbGxvY2F0aW9u cywgd2hpY2ggaW4gdHVybiBjb3VsZCByYWlzZSBtb3JlCisgICAgICAgICAgT09NIGNvbmRpdGlv bnMsIGNhdXNpbmcgcmVjdXJzaW9uIGluIHRoZSBlcnJvciBoYW5kbGluZyBjb2RlIGl0c2VsZi4K KyAgICAgICAgICBBcyBhIHJlc3VsdCwgbXlfZXJyb3IoKSBzaG91bGQgbm90IGJlIGludm9rZWQs IGFuZCB0aGUKKyAgICAgICAgICB0aHJlYWQgZGlhZ25vc3RpY3MgYXJlYSBpcyBzZXQgdG8gYW4g ZXJyb3Igc3RhdHVzIGRpcmVjdGx5LgorICAgICAgICAgIE5vdGUgdGhhdCBEaWFnbm9zdGljc19h cmVhOjpzZXRfZXJyb3Jfc3RhdHVzKCkgaXMgc2FmZSwKKyAgICAgICAgICBzaW5jZSBpdCBkb2Vz IG5vdCBjYWxsIGFueSBtZW1vcnkgYWxsb2NhdGlvbiByb3V0aW5lcy4KKyAgICAgICAgICBUaGUg dmlzaWJsZSByZXN1bHQgZm9yIGEgY2xpZW50IGFwcGxpY2F0aW9uIHdpbGwgYmU6CisgICAgICAg ICAgLSBhIHF1ZXJ5IGZhaWxzIHdpdGggYW4gRVJfT1VUX09GX1JFU09VUkNFUyBlcnJvciwKKyAg ICAgICAgICByZXR1cm5lZCBpbiB0aGUgZXJyb3IgcGFja2V0LgorICAgICAgICAgIC0gU0hPVyBF UlJPUi9TSE9XIFdBUk5JTkdTIG1heSBiZSBlbXB0eS4KKyAgICAgICAgKi8KKyAgICAgICAgdGhk LT5tYWluX2RhLnNldF9lcnJvcl9zdGF0dXModGhkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFUl9PVVRfT0ZfUkVTT1VSQ0VTLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBFUihFUl9PVVRfT0ZfUkVTT1VSQ0VTKSk7CisgICAgICB9CisgICAg fQogICB9CiB9CiAKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9CREIuY3BwJwot LS0gYS9zdG9yYWdlL2ZhbGNvbi9CREIuY3BwCTIwMDgtMDUtMDggMjA6Mzc6MjggKzAwMDAKKysr IGIvc3RvcmFnZS9mYWxjb24vQkRCLmNwcAkyMDA4LTA3LTI0IDA4OjQ1OjAzICswMDAwCkBAIC01 Nyw4ICs1NywxMSBAQCBCZGI6OkJkYigpCiAJcHJpb3JEaXJ0eSA9IG5leHREaXJ0eSA9IE5VTEw7 CiAJZmx1c2hJdCA9IGZhbHNlOwogCWRiYiA9IE5VTEw7CisJc3luY09iamVjdC5zZXROYW1lKCJC ZGI6OnN5bmNPYmplY3QiKTsKKwlzeW5jV3JpdGUuc2V0TmFtZSgiQmRiOjpzeW5jV3JpdGUiKTsK IAogI2lmZGVmIENPTExFQ1RfQkRCX0hJU1RPUlkKKwlzeW5jSGlzdG9yeS5zZXROYW1lKCJCZGI6 OnN5bmNIaXN0b3J5Iik7CiAJbG9ja1R5cGUgPSBOb25lOwogCWluaXRDb3VudCA9IDA7CiAJaGlz dG9yeUNvdW50ID0gMDsKQEAgLTIwMyw3ICsyMDYsNyBAQCB2b2lkIEJkYjo6aW5pdEhpc3Rvcnko KQogCiB2b2lkIEJkYjo6YWRkSGlzdG9yeShpbnQgZGVsdGEsIGNvbnN0IGNoYXIgKmZpbGUsIGlu dCBsaW5lKQogewotCVN5bmMgc3luYyAoJmhpc3RvcnlTeW5jT2JqZWN0LCAiQmRiOjphZGRIaXN0 b3J5Iik7CisJU3luYyBzeW5jICgmc3luY0hpc3RvcnksICJCZGI6OmFkZEhpc3RvcnkiKTsKIAlz eW5jLmxvY2sgKEV4Y2x1c2l2ZSk7CiAJdW5zaWduZWQgaW50IGhpc3RvcnlPZmZzZXQgPSBoaXN0 b3J5Q291bnQrKyAlIE1BWF9CREJfSElTVE9SWTsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3Jh Z2UvZmFsY29uL0JEQi5oJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9CREIuaAkyMDA4LTA1LTEwIDA0 OjE4OjQxICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL0JEQi5oCTIwMDgtMDctMjQgMDg6NDU6 MDMgKzAwMDAKQEAgLTEwMyw3ICsxMDMsNyBAQCBwdWJsaWM6CiAJdm9sYXRpbGUgSU5URVJMT0NL X1RZUEUJdXNlQ291bnQ7CiAKICNpZmRlZiBDT0xMRUNUX0JEQl9ISVNUT1JZCi0JU3luY09iamVj dAloaXN0b3J5U3luY09iamVjdDsKKwlTeW5jT2JqZWN0CXN5bmNIaXN0b3J5OwogCXVpbnQgaW5p dENvdW50OwogCXVpbnQgaGlzdG9yeUNvdW50OwogCXN0cnVjdCBiZGJfaGlzdG9yeQkJaGlzdG9y eVtNQVhfQkRCX0hJU1RPUlldOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL0Jh Y2tMb2cuY3BwJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9CYWNrTG9nLmNwcAkyMDA4LTA0LTEyIDAy OjIyOjUwICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL0JhY2tMb2cuY3BwCTIwMDgtMDctMTcg MTM6NTI6MTcgKzAwMDAKQEAgLTM4LDcgKzM4LDcgQEAgQmFja0xvZzo6QmFja0xvZyhEYXRhYmFz ZSAqZGIsIGNvbnN0IGNoYQogCWRhdGFiYXNlID0gZGI7CiAJZGJiID0gbmV3IERiYihkYXRhYmFz ZS0+ZGJiLCAwKTsKIAlkYmItPmNyZWF0ZVBhdGgoZmlsZU5hbWUpOwotCWRiYi0+Y3JlYXRlKGZp bGVOYW1lLCBkYmItPnBhZ2VTaXplLCAwLCBIZHJUYWJsZVNwYWNlLCAwLCBOVUxMLCAwKTsKKwlk YmItPmNyZWF0ZShmaWxlTmFtZSwgZGJiLT5wYWdlU2l6ZSwgMCwgSGRyVGFibGVTcGFjZSwgMCwg TlVMTCk7CiAJZGJiLT5ub0xvZyA9IHRydWU7CiAJZGJiLT50YWJsZVNwYWNlSWQgPSAtMTsKIAlp bnQzMiBzZWN0aW9uSWQgPSBTZWN0aW9uOjpjcmVhdGVTZWN0aW9uIChkYmIsIE5PX1RSQU5TQUNU SU9OKTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9DYWNoZS5jcHAnCi0tLSBh L3N0b3JhZ2UvZmFsY29uL0NhY2hlLmNwcAkyMDA4LTA3LTA5IDEyOjM1OjQ4ICswMDAwCisrKyBi L3N0b3JhZ2UvZmFsY29uL0NhY2hlLmNwcAkyMDA4LTA3LTI0IDA4OjQ1OjAzICswMDAwCkBAIC04 OSw5ICs4OSwxMiBAQCBDYWNoZTo6Q2FjaGUoRGF0YWJhc2UgKmRiLCBpbnQgcGFnZVN6LCBpCiAJ YnVmZmVySHVua3MgPSBuZXcgY2hhciogW251bWJlckh1bmtzXTsKIAltZW1zZXQoYnVmZmVySHVu a3MsIDAsIG51bWJlckh1bmtzICogc2l6ZW9mKGNoYXIqKSk7CiAJc3luY09iamVjdC5zZXROYW1l KCJDYWNoZTo6c3luY09iamVjdCIpOwotCXN5bmNEaXJ0eS5zZXROYW1lKCJDYWNoZTo6c3luY0Rp cnR5Iik7CiAJc3luY0ZsdXNoLnNldE5hbWUoIkNhY2hlOjpzeW5jRmx1c2giKTsKKwlzeW5jRGly dHkuc2V0TmFtZSgiQ2FjaGU6OnN5bmNEaXJ0eSIpOworCXN5bmNUaHJlYWRzLnNldE5hbWUoIkNh Y2hlOjpzeW5jVGhyZWFkcyIpOwogCXN5bmNXYWl0LnNldE5hbWUoIkNhY2hlOjpzeW5jV2FpdCIp OworCWJ1ZmZlclF1ZXVlLnN5bmNPYmplY3Quc2V0TmFtZSgiQ2FjaGU6OmJ1ZmZlclF1ZXVlLnN5 bmNPYmplY3QiKTsKKwogCWZsdXNoQml0bWFwID0gbmV3IEJpdG1hcDsKIAludW1iZXJJb1RocmVh ZHMgPSBmYWxjb25faW9fdGhyZWFkczsKIAlpb1RocmVhZHMgPSBuZXcgVGhyZWFkKltudW1iZXJJ b1RocmVhZHNdOwpAQCAtMzU5LDggKzM2Miw4IEBAIEJkYiogQ2FjaGU6OmZha2VQYWdlKERiYiAq ZGJiLCBpbnQzMiBwYWcKIAogdm9pZCBDYWNoZTo6Zmx1c2goaW50NjQgYXJnKQogewotCVN5bmMg Zmx1c2hMb2NrKCZzeW5jRmx1c2gsICJDYWNoZTo6Zmx1c2giKTsKLQlTeW5jIHN5bmMoJnN5bmNE aXJ0eSwgIkNhY2hlOjppb1RocmVhZCIpOworCVN5bmMgZmx1c2hMb2NrKCZzeW5jRmx1c2gsICJD YWNoZTo6Zmx1c2goMSkiKTsKKwlTeW5jIHN5bmMoJnN5bmNEaXJ0eSwgIkNhY2hlOjpmbHVzaCgy KSIpOwogCWZsdXNoTG9jay5sb2NrKEV4Y2x1c2l2ZSk7CiAJCiAJaWYgKGZsdXNoaW5nKQpAQCAt NTEzLDcgKzUxNiw3IEBAIHZvaWQgQ2FjaGU6Om1hcmtDbGVhbihCZGIgKmJkYikKIAogdm9pZCBD YWNoZTo6d3JpdGVQYWdlKEJkYiAqYmRiLCBpbnQgdHlwZSkKIHsKLQlTeW5jIHdyaXRlcigmYmRi LT5zeW5jV3JpdGUsICJDYWNoZTo6d3JpdGVQYWdlIik7CisJU3luYyB3cml0ZXIoJmJkYi0+c3lu Y1dyaXRlLCAiQ2FjaGU6OndyaXRlUGFnZSgxKSIpOwogCXdyaXRlci5sb2NrKEV4Y2x1c2l2ZSk7 CiAKIAlpZiAoIWJkYi0+aXNEaXJ0eSkKQEAgLTU5Nyw3ICs2MDAsNyBAQCB2b2lkIENhY2hlOjp3 cml0ZVBhZ2UoQmRiICpiZGIsIGludCB0eXBlCiAKIAlpZiAoZGJiLT5zaGFkb3dzKQogCQl7Ci0J CVN5bmMgc3luYyAoJmRiYi0+Y2xvbmVTeW5jT2JqZWN0LCAiQ2FjaGU6OndyaXRlUGFnZSIpOwor CQlTeW5jIHN5bmMgKCZkYmItPnN5bmNDbG9uZSwgIkNhY2hlOjp3cml0ZVBhZ2UoMikiKTsKIAkJ c3luYy5sb2NrIChTaGFyZWQpOwogCiAJCWZvciAoRGF0YWJhc2VDb3B5ICpzaGFkb3cgPSBkYmIt PnNoYWRvd3M7IHNoYWRvdzsgc2hhZG93ID0gc2hhZG93LT5uZXh0KQpAQCAtNjY1LDkgKzY2OCw5 IEBAIHZvaWQgQ2FjaGU6OmZyZWVQYWdlKERiYiAqZGJiLCBpbnQzMiBwYWcKIAogdm9pZCBDYWNo ZTo6Zmx1c2goRGJiICpkYmIpCiB7Ci0JLy9TeW5jIHN5bmMgKCZzeW5jRGlydHksICJDYWNoZTo6 Zmx1c2goRGJiKSIpOworCS8vU3luYyBzeW5jICgmc3luY0RpcnR5LCAiQ2FjaGU6OmZsdXNoKDEp Iik7CiAJLy9zeW5jLmxvY2sgKEV4Y2x1c2l2ZSk7Ci0JU3luYyBzeW5jICgmc3luY09iamVjdCwg IkNhY2hlOjpmcmVlUGFnZSIpOworCVN5bmMgc3luYyAoJnN5bmNPYmplY3QsICJDYWNoZTo6Zmx1 c2goMykiKTsKIAlzeW5jLmxvY2sgKFNoYXJlZCk7CiAKIAlmb3IgKEJkYiAqYmRiID0gYmRiczsg YmRiIDwgZW5kQmRiczsgKytiZGIpCkBAIC03NjEsMTAgKzc2NCwxMCBAQCB2b2lkIENhY2hlOjpp b1RocmVhZCh2b2lkKiBhcmcpCiAKIHZvaWQgQ2FjaGU6OmlvVGhyZWFkKHZvaWQpCiB7Ci0JU3lu YyBzeW5jVGhyZWFkKCZzeW5jVGhyZWFkcywgIkNhY2hlOjppb1RocmVhZCIpOworCVN5bmMgc3lu Y1RocmVhZCgmc3luY1RocmVhZHMsICJDYWNoZTo6aW9UaHJlYWQoMSkiKTsKIAlzeW5jVGhyZWFk LmxvY2soU2hhcmVkKTsKLQlTeW5jIGZsdXNoTG9jaygmc3luY0ZsdXNoLCAiQ2FjaGU6OmlvVGhy ZWFkIik7Ci0JU3luYyBzeW5jKCZzeW5jT2JqZWN0LCAiQ2FjaGU6OmlvVGhyZWFkIik7CisJU3lu YyBmbHVzaExvY2soJnN5bmNGbHVzaCwgIkNhY2hlOjppb1RocmVhZCgyKSIpOworCVN5bmMgc3lu Yygmc3luY09iamVjdCwgIkNhY2hlOjppb1RocmVhZCgzKSIpOwogCVByaW9yaXR5IHByaW9yaXR5 KGRhdGFiYXNlLT5pb1NjaGVkdWxlcik7CiAJVGhyZWFkICp0aHJlYWQgPSBUaHJlYWQ6OmdldFRo cmVhZCgiQ2FjaGU6OmlvVGhyZWFkIik7CiAJVUNIQVIgKnJhd0J1ZmZlciA9IG5ldyBVQ0hBUltB U1lOQ19CVUZGRVJfU0laRV07Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vQ29s bGF0aW9uTWFuYWdlci5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL0NvbGxhdGlvbk1hbmFnZXIu Y3BwCTIwMDctMDktMjAgMTU6NDQ6MjUgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vQ29sbGF0 aW9uTWFuYWdlci5jcHAJMjAwOC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtNDIsNiArNDIsNyBA QCBDb2xsYXRpb25NYW5hZ2VyOjpDb2xsYXRpb25NYW5hZ2VyKCkKIHsKIAltZW1zZXQoaGFzaFRh YmxlLCAwLCBzaXplb2YoaGFzaFRhYmxlKSk7CiAJYWRkKCZjb2xsYXRpb25DYXNlbGVzcyk7CisJ c3luY09iamVjdC5zZXROYW1lKCJDb2xsYXRpb25NYW5hZ2VyOjpzeW5jT2JqZWN0Iik7CiB9CiAK IENvbGxhdGlvbk1hbmFnZXI6On5Db2xsYXRpb25NYW5hZ2VyKCkKQEAgLTg3LDcgKzg4LDcgQEAg dm9pZCBDb2xsYXRpb25NYW5hZ2VyOjphZGQoQ29sbGF0aW9uKiBjbwogCiBDb2xsYXRpb24qIENv bGxhdGlvbk1hbmFnZXI6OmZpbmQoY29uc3QgY2hhciogY29sbGF0aW9uTmFtZSkKIHsKLQlTeW5j IHN5bmMoJnN5bmNPYmplY3QsICJDb2xsYXRpb25NYW5hZ2VyOjphZGRDb2xsYXRpb24iKTsKKwlT eW5jIHN5bmMoJnN5bmNPYmplY3QsICJDb2xsYXRpb25NYW5hZ2VyOjpmaW5kIik7CiAJc3luYy5s b2NrKFNoYXJlZCk7CiAJaW50IHNsb3QgPSBKU3RyaW5nOjpoYXNoKGNvbGxhdGlvbk5hbWUsIENP TExBVElPTl9IQVNIX1NJWkUpOwogCQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29u L0NvbXBpbGVkU3RhdGVtZW50LmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vQ29tcGlsZWRTdGF0 ZW1lbnQuY3BwCTIwMDctMDktMjAgMTU6NDQ6MjUgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24v Q29tcGlsZWRTdGF0ZW1lbnQuY3BwCTIwMDgtMDctMjQgMDg6NDU6MDMgKzAwMDAKQEAgLTk2LDYg Kzk2LDcgQEAgQ29tcGlsZWRTdGF0ZW1lbnQ6OkNvbXBpbGVkU3RhdGVtZW50KENvbgogCWZpcnN0 SW5zdGFuY2UgPSBsYXN0SW5zdGFuY2UgPSBOVUxMOwogCXNlbGVjdCA9IE5VTEw7CiAJcGFyc2Ug PSBOVUxMOworCXN5bmNPYmplY3Quc2V0TmFtZSgiQ29tcGlsZWRTdGF0ZW1lbnQ6OnN5bmNPYmpl Y3QiKTsKIH0KIAogQ29tcGlsZWRTdGF0ZW1lbnQ6On5Db21waWxlZFN0YXRlbWVudCgpCkBAIC0x MDkzLDcgKzEwOTQsNyBAQCBib29sIENvbXBpbGVkU3RhdGVtZW50OjphZGRGaWx0ZXIoVGFibGVG CiAKIGludCBDb21waWxlZFN0YXRlbWVudDo6Y291bnRJbnN0YW5jZXMoKQogewotCVN5bmMgc3lu YyAoJnN5bmNPYmplY3QsICJDb21waWxlZFN0YXRlbWVudDo6YWRkSW5zdGFuY2UiKTsKKwlTeW5j IHN5bmMgKCZzeW5jT2JqZWN0LCAiQ29tcGlsZWRTdGF0ZW1lbnQ6OmNvdW50SW5zdGFuY2VzIik7 CiAJc3luYy5sb2NrIChTaGFyZWQpOwogCWludCBjb3VudCA9IDA7CiAKQEAgLTExNjMsNyArMTE2 NCw3IEBAIFR5cGUgQ29tcGlsZWRTdGF0ZW1lbnQ6OmdldFR5cGUoU3ludGF4ICoKIAogdm9pZCBD b21waWxlZFN0YXRlbWVudDo6aW52YWxpZGF0ZSgpCiB7Ci0JU3luYyBzeW5jICgmc3luY09iamVj dCwgIkNvbXBpbGVkU3RhdGVtZW50OjphZGRJbnN0YW5jZSIpOworCVN5bmMgc3luYyAoJnN5bmNP YmplY3QsICJDb21waWxlZFN0YXRlbWVudDo6aW52YWxpZGF0ZSIpOwogCXN5bmMubG9jayAoU2hh cmVkKTsKIAogCWZvciAoU3RhdGVtZW50ICppbnN0YW5jZSA9IGZpcnN0SW5zdGFuY2U7IGluc3Rh bmNlOyBpbnN0YW5jZSA9IGluc3RhbmNlLT5uZXh0KQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3Jh Z2UvZmFsY29uL0NvbmZpZ3VyYXRpb24uY3BwJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9Db25maWd1 cmF0aW9uLmNwcAkyMDA4LTA3LTEwIDA5OjAxOjMyICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29u L0NvbmZpZ3VyYXRpb24uY3BwCTIwMDgtMDctMTcgMTM6NTI6MTcgKzAwMDAKQEAgLTYyLDcgKzYy LDYgQEAKIGV4dGVybiB1aW50NjQJCW1heF9tZW1vcnlfYWRkcmVzczsKIAogZXh0ZXJuIHVpbnQ2 NAkJZmFsY29uX3JlY29yZF9tZW1vcnlfbWF4OwotZXh0ZXJuIHVpbnQ2NAkJZmFsY29uX2luaXRp YWxfYWxsb2NhdGlvbjsKIGV4dGVybiB1aW50CQkJZmFsY29uX2FsbG9jYXRpb25fZXh0ZW50Owog ZXh0ZXJuIHVpbnQ2NAkJZmFsY29uX3BhZ2VfY2FjaGVfc2l6ZTsKIC8vZXh0ZXJuIHVpbnQJCWZh bGNvbl9kZWJ1Z19tYXNrOwpAQCAtMTE2LDcgKzExNSw2IEBAIENvbmZpZ3VyYXRpb246OkNvbmZp Z3VyYXRpb24oY29uc3QgY2hhciAKIAlyZWNvcmRNZW1vcnlNYXgJCQkJPSBmYWxjb25fcmVjb3Jk X21lbW9yeV9tYXg7CiAJcmVjb3JkU2NhdmVuZ2VUaHJlc2hvbGRQY3QJPSBmYWxjb25fcmVjb3Jk X3NjYXZlbmdlX3RocmVzaG9sZDsKIAlyZWNvcmRTY2F2ZW5nZUZsb29yUGN0CQk9IGZhbGNvbl9y ZWNvcmRfc2NhdmVuZ2VfZmxvb3I7Ci0JaW5pdGlhbEFsbG9jYXRpb24JCQk9IGZhbGNvbl9pbml0 aWFsX2FsbG9jYXRpb247CiAJYWxsb2NhdGlvbkV4dGVudAkJCT0gZmFsY29uX2FsbG9jYXRpb25f ZXh0ZW50OwogCXNlcmlhbExvZ1dpbmRvd3MJCQk9IGZhbGNvbl9zZXJpYWxfbG9nX2J1ZmZlcnM7 CiAJcGFnZUNhY2hlU2l6ZQkJCQk9IGZhbGNvbl9wYWdlX2NhY2hlX3NpemU7CkBAIC0xNjQsNyAr MTYyLDYgQEAgQ29uZmlndXJhdGlvbjo6Q29uZmlndXJhdGlvbihjb25zdCBjaGFyIAogCXJlY29y ZFNjYXZlbmdlVGhyZXNob2xkCQk9IChyZWNvcmRNZW1vcnlNYXggKiAxMDApIC8gcmVjb3JkU2Nh dmVuZ2VUaHJlc2hvbGRQY3Q7CiAJcmVjb3JkU2NhdmVuZ2VGbG9vcgkJCT0gKHJlY29yZE1lbW9y eU1heCAqIDEwMCkgLyByZWNvcmRTY2F2ZW5nZUZsb29yUGN0OwogCXNlcmlhbExvZ1dpbmRvd3MJ CQk9IDEwOwotCWluaXRpYWxBbGxvY2F0aW9uCQkJPSAwOwogCWFsbG9jYXRpb25FeHRlbnQJCQk9 IDEwOwogCXBhZ2VDYWNoZVNpemUJCQkJPSBnZXRNZW1vcnlTaXplKFBBR0VfQ0FDSEVfTUVNT1JZ KTsKIAlpbmRleENoaWxsVGhyZXNob2xkCQkJPSA0ICogT05FX01COwoKPT09IG1vZGlmaWVkIGZp bGUgJ3N0b3JhZ2UvZmFsY29uL0NvbmZpZ3VyYXRpb24uaCcKLS0tIGEvc3RvcmFnZS9mYWxjb24v Q29uZmlndXJhdGlvbi5oCTIwMDgtMDMtMTEgMTY6MTU6NDcgKzAwMDAKKysrIGIvc3RvcmFnZS9m YWxjb24vQ29uZmlndXJhdGlvbi5oCTIwMDgtMDctMTcgMTM6NTI6MTcgKzAwMDAKQEAgLTQ5LDcg KzQ5LDYgQEAgcHVibGljOgogCXVpbnQ2NAkJcmVjb3JkU2NhdmVuZ2VGbG9vcjsKIAlpbnQJCQly ZWNvcmRTY2F2ZW5nZVRocmVzaG9sZFBjdDsKIAlpbnQJCQlyZWNvcmRTY2F2ZW5nZUZsb29yUGN0 OwotCXVpbnQ2NAkJaW5pdGlhbEFsbG9jYXRpb247CiAJdWludDY0CQlhbGxvY2F0aW9uRXh0ZW50 OwogCXVpbnQ2NAkJcGFnZUNhY2hlU2l6ZTsKIAlpbnQ2NAkJamF2YUluaXRpYWxBbGxvY2F0aW9u OwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL0Nvbm5lY3Rpb24uY3BwJwotLS0g YS9zdG9yYWdlL2ZhbGNvbi9Db25uZWN0aW9uLmNwcAkyMDA4LTA3LTEwIDA5OjAxOjMyICswMDAw CisrKyBiL3N0b3JhZ2UvZmFsY29uL0Nvbm5lY3Rpb24uY3BwCTIwMDgtMDctMjQgMDg6NDU6MDMg KzAwMDAKQEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIFNlcnZlcgkJKnNlcnZlcjsKIHN0YXRpYyBi b29sCQkJcGFuaWNTaHV0ZG93bjsKIAogc3RhdGljIFJlZ2lzdHJ5CQlyZWdpc3RyeTsKLXN0YXRp YyBTeW5jT2JqZWN0CWRhdGFiYXNlTGlzdDsKK3N0YXRpYyBTeW5jT2JqZWN0CXN5bmNEYXRhYmFz ZUxpc3Q7CiAKIHN0YXRpYyBjb25zdCBjaGFyICpkZGwgW10gPSB7CiAJImdyYW50IGFsbCBvbiBz eXN0ZW0uc2VxdWVuY2VzIHRvICVzIiwKQEAgLTE2OSw2ICsxNjksOSBAQCB2b2lkIENvbm5lY3Rp b246OmluaXQoQ29uZmlndXJhdGlvbiAqY29uCiAJaXNvbGF0aW9uTGV2ZWwgPSBUUkFOU0FDVElP Tl9DT05TSVNURU5UX1JFQUQ7CiAJbXlTcWxUaHJlYWRJZCA9IDA7CiAJY3VycmVudFN0YXRlbWVu dCA9IE5VTEw7CisJc3luY09iamVjdC5zZXROYW1lKCJDb25uZWN0aW9uOjpzeW5jT2JqZWN0Iik7 CisJc3luY1Jlc3VsdFNldHMuc2V0TmFtZSgiQ29ubmVjdGlvbjo6c3luY1Jlc3VsdFNldHMiKTsK KwlzeW5jRGF0YWJhc2VMaXN0LnNldE5hbWUoIkNvbm5lY3Rpb246OnN5bmNEYXRhYmFzZUxpc3Qi KTsKIH0KIAogQ29ubmVjdGlvbjo6fkNvbm5lY3Rpb24oKQpAQCAtOTIzLDcgKzkyNiw3IEBAIHZv aWQgQ29ubmVjdGlvbjo6b3BlbkRhdGFiYXNlKGNvbnN0IGNoYXIKIAlpZiAoZmlsZW5hbWUpCiAJ CUlPOjpleHBhbmRGaWxlTmFtZShmaWxlbmFtZSwgc2l6ZW9mKGRiRmlsZU5hbWUpLCBkYkZpbGVO YW1lKTsKIAllbHNlCi0JCXsgCisJCXsKIAkJaWYgKCFyZWdpc3RyeS5maW5kRGF0YWJhc2UgKGRi TmFtZSwgc2l6ZW9mIChkYkZpbGVOYW1lKSwgZGJGaWxlTmFtZSkpCiAJCQl0aHJvdyBTUUxFWENF UFRJT04gKENPTk5FQ1RJT05fRVJST1IsICJjYW4ndCBmaW5kIGRhdGFiYXNlIFwiJXNcIiIsIGRi TmFtZSk7CiAJCX0KQEAgLTk2OCw3ICs5NzEsNyBAQCB2b2lkIENvbm5lY3Rpb246OmNyZWF0ZURh dGFiYXNlKGNvbnN0IGNoCiAJY29uc3QgY2hhciAqcGFzc3dvcmQgPSBwYXJhbWV0ZXJzLT5maW5k VmFsdWUgKCJwYXNzd29yZCIsICIiKTsKIAljaGFyIGRiRmlsZU5hbWUgWzEwMjRdOwogCWNvbnN0 IGNoYXIgKmRiRmlsZSA9IHJlZ2lzdHJ5LmZpbmREYXRhYmFzZSAoZGJOYW1lLCBzaXplb2YgKGRi RmlsZU5hbWUpLCBkYkZpbGVOYW1lKTsKLQlTeW5jIHN5bmMgKCZkYXRhYmFzZUxpc3QsICJDb25u ZWN0aW9uOjpjcmVhdGVEYXRhYmFzZSIpOworCVN5bmMgc3luYyAoJnN5bmNEYXRhYmFzZUxpc3Qs ICJDb25uZWN0aW9uOjpjcmVhdGVEYXRhYmFzZSgxKSIpOwogCXN5bmMubG9jayAoRXhjbHVzaXZl KTsKIAkKIAlpZiAoZGJGaWxlKQpAQCAtMTAyNyw3ICsxMDMwLDEwIEBAIERhdGFiYXNlKiBDb25u ZWN0aW9uOjpjcmVhdGVEYXRhYmFzZShjb24KIAlpZiAoZGF0YWJhc2UpCiAJCXRocm93IFNRTEVY Q0VQVElPTiAoQ09OTkVDVElPTl9FUlJPUiwgImRhdGFiYXNlIGlzIGFscmVhZHkgb3BlbiIpOwog Ci0JU3luYyBzeW5jICgmZGF0YWJhc2VMaXN0LCAiQ29ubmVjdGlvbjo6Y3JlYXRlRGF0YWJhc2Ui KTsKKwlpZiAoIWZpcnN0RGF0YWJhc2UpCisJCXN5bmNEYXRhYmFzZUxpc3Quc2V0TmFtZSgiQ29u bmVjdGlvbjo6c3luY0RhdGFiYXNlTGlzdCIpOworCisJU3luYyBzeW5jICgmc3luY0RhdGFiYXNl TGlzdCwgIkNvbm5lY3Rpb246OmNyZWF0ZURhdGFiYXNlKDIpIik7CiAJc3luYy5sb2NrIChFeGNs dXNpdmUpOwogCiAjaWZuZGVmIFNUT1JBR0VfRU5HSU5FCkBAIC0xMDQyLDcgKzEwNDgsNyBAQCBE YXRhYmFzZSogQ29ubmVjdGlvbjo6Y3JlYXRlRGF0YWJhc2UoY29uCiAJCQkJfQogCiAjaWZkZWYg U1RPUkFHRV9FTkdJTkUKLSAgICAgICAgc3RyY3B5KGRiRmlsZU5hbWUsIGZpbGVOYW1lKTsKKwlz dHJjcHkoZGJGaWxlTmFtZSwgZmlsZU5hbWUpOwogI2Vsc2UKIAlyZWdpc3RyeS5kZWZpbmVEYXRh YmFzZSAoZGJOYW1lLCBmaWxlTmFtZSk7CiAJCkBAIC0xNjE3LDcgKzE2MjMsNyBAQCBSZXN1bHRM aXN0KiBDb25uZWN0aW9uOjpmaW5kUmVzdWx0TGlzdChpCiAKIERhdGFiYXNlKiBDb25uZWN0aW9u OjpnZXREYXRhYmFzZShjb25zdCBjaGFyKiBkYk5hbWUsIGNvbnN0IGNoYXIqIGRiRmlsZU5hbWUs IFRocmVhZHMqIHRocmVhZHMpCiB7Ci0JU3luYyBzeW5jICgmZGF0YWJhc2VMaXN0LCAiQ29ubmVj dGlvbjo6Z2V0RGF0YWJhc2UiKTsKKwlTeW5jIHN5bmMgKCZzeW5jRGF0YWJhc2VMaXN0LCAiQ29u bmVjdGlvbjo6Z2V0RGF0YWJhc2UiKTsKIAlzeW5jLmxvY2sgKFNoYXJlZCk7CiAJRGF0YWJhc2Ug KmRiOwogCkBAIC0xNjY1LDcgKzE2NzEsNyBAQCB2b2lkIENvbm5lY3Rpb246OmRyb3BEYXRhYmFz ZSgpCiAJaWYgKCFkYXRhYmFzZSkKIAkJdGhyb3cgU1FMRVhDRVBUSU9OIChDT05ORUNUSU9OX0VS Uk9SLCAiZGF0YWJhc2UgaXNuJ3Qgb3BlbiIpOwogCQkKLQlTeW5jIHN5bmMgKCZkYXRhYmFzZUxp c3QsICJDb25uZWN0aW9uOjpkcm9wRGF0YWJhc2UiKTsKKwlTeW5jIHN5bmMgKCZzeW5jRGF0YWJh c2VMaXN0LCAiQ29ubmVjdGlvbjo6ZHJvcERhdGFiYXNlIik7CiAJc3luYy5sb2NrIChFeGNsdXNp dmUpOwogCXVubGluayhkYXRhYmFzZSk7CiAJZGV0YWNoRGF0YWJhc2UoKTsKCj09PSBtb2RpZmll ZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9EYXRhYmFzZS5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29u L0RhdGFiYXNlLmNwcAkyMDA4LTA2LTE3IDE3OjQxOjU0ICswMDAwCisrKyBiL3N0b3JhZ2UvZmFs Y29uL0RhdGFiYXNlLmNwcAkyMDA4LTA3LTE3IDEzOjUyOjE3ICswMDAwCkBAIC0zMjMsMTQgKzMy Myw2IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjcmVhdGVUYWJsZVNwYWNlcyA9CiAJCSJ0YWJsZXNw YWNlX2lkIGludCBub3QgbnVsbCwiCiAJCSJmaWxlbmFtZSB2YXJjaGFyKDUxMikgbm90IG51bGws IgogCQkidHlwZSBpbnQsIgotCQkvKioqCi0JCSJpbml0aWFsX3NpemUgYmlnaW50LCIKLQkJImV4 dGVudF9zaXplIGJpZ2ludCwiCi0JCSJhdXRvZXh0ZW5kX3NpemUgYmlnaW50LCIKLQkJIm1heF9z aXplIGJpZ2ludCwiCi0JCSJub2RlZ3JvdXAgaW50LCIKLQkJIndhaXQgaW50LCIKLQkJKioqLwog CQkiY29tbWVudCB0ZXh0KSI7CiAKIHN0YXRpYyBjb25zdCBjaGFyICpjcmVhdGVUYWJsZVNwYWNl U2VxdWVuY2UgPSAKQEAgLTYzNCw3ICs2MjYsNyBAQCB2b2lkIERhdGFiYXNlOjpjcmVhdGVEYXRh YmFzZShjb25zdCBjaGFyCiAJaW50IHBhZ2Vfc2l6ZSA9IFBBR0VfU0laRTsKICNlbmRpZgogCi0J Y2FjaGUgPSBkYmItPmNyZWF0ZShmaWxlbmFtZSwgcGFnZV9zaXplLCBjb25maWd1cmF0aW9uLT5w YWdlQ2FjaGVTaXplLCBIZHJEYXRhYmFzZUZpbGUsIDAsICIiLCAwKTsKKwljYWNoZSA9IGRiYi0+ Y3JlYXRlKGZpbGVuYW1lLCBwYWdlX3NpemUsIGNvbmZpZ3VyYXRpb24tPnBhZ2VDYWNoZVNpemUs IEhkckRhdGFiYXNlRmlsZSwgMCwgIiIpOwogCQogCXRyeQogCQl7CkBAIC05OTUsNyArOTg3LDcg QEAgVGFibGUqIERhdGFiYXNlOjpmaW5kVGFibGUgKGNvbnN0IGNoYXIgKgogCXNjaGVtYSA9IHN5 bWJvbE1hbmFnZXItPmdldFN5bWJvbCAoc2NoZW1hKTsKIAluYW1lID0gc3ltYm9sTWFuYWdlci0+ Z2V0U3ltYm9sIChuYW1lKTsKIAotCVN5bmMgc3luY1RibCAoJnN5bmNUYWJsZXMsICJEYXRhYmFz ZTo6ZmluZFRhYmxlIik7CisJU3luYyBzeW5jVGJsICgmc3luY1RhYmxlcywgIkRhdGFiYXNlOjpm aW5kVGFibGUoMSkiKTsKIAlzeW5jVGJsLmxvY2sgKFNoYXJlZCk7CiAJCiAJaW50IHNsb3QgPSBI QVNIIChuYW1lLCBUQUJMRV9IQVNIX1NJWkUpOwpAQCAtMTAxMiw3ICsxMDA0LDcgQEAgVGFibGUq IERhdGFiYXNlOjpmaW5kVGFibGUgKGNvbnN0IGNoYXIgKgogCQlpZiAodW50YWJsZS0+bmFtZSA9 PSBuYW1lICYmIHVudGFibGUtPnNjaGVtYU5hbWUgPT0gc2NoZW1hKQogCQkJcmV0dXJuIE5VTEw7 CiAKLQlTeW5jIHN5bmNEREwoJnN5bmNTeXNEREwsICJEYXRhYmFzZTo6ZmluZFRhYmxlIik7CisJ U3luYyBzeW5jRERMKCZzeW5jU3lzRERMLCAiRGF0YWJhc2U6OmZpbmRUYWJsZSgyKSIpOwogCXN5 bmNEREwubG9jayhTaGFyZWQpOwogCQogCVBTdGF0ZW1lbnQgc3RhdGVtZW50ID0gcHJlcGFyZVN0 YXRlbWVudCAoCkBAIC0xMTQ1LDcgKzExMzcsNyBAQCBDb21waWxlZFN0YXRlbWVudCogRGF0YWJh c2U6OmdldENvbXBpbGVkCiAJU3luYyBzeW5jRERMKCZzeW5jU3lzRERMLCAiRGF0YWJhc2U6Omdl dENvbXBpbGVkU3RhdGVtZW50KDEpIik7CiAJc3luY0RETC5sb2NrKFNoYXJlZCk7CiAKLQlTeW5j IHN5bmNTdG10KCZzeW5jU3RhdGVtZW50cywgIkRhdGFiYXNlOjpnZXRDb21waWxlZFN0YXRlbWVu dCgxKSIpOworCVN5bmMgc3luY1N0bXQoJnN5bmNTdGF0ZW1lbnRzLCAiRGF0YWJhc2U6OmdldENv bXBpbGVkU3RhdGVtZW50KDIpIik7CiAJc3luY1N0bXQubG9jayhTaGFyZWQpOwogCQogCS8vcHJp bnRmKCIlc1xuIiwgKGNvbnN0IGNoYXIqKSBzcWxTdHJpbmcpOwpAQCAtMTE3NCwxMCArMTE2Niwx MCBAQCBDb21waWxlZFN0YXRlbWVudCogRGF0YWJhc2U6OmdldENvbXBpbGVkCiAKIENvbXBpbGVk U3RhdGVtZW50KiBEYXRhYmFzZTo6Z2V0Q29tcGlsZWRTdGF0ZW1lbnQoQ29ubmVjdGlvbiAqY29u bmVjdGlvbiwgY29uc3QgV0NTdHJpbmcgKnNxbFN0cmluZykKIHsKLQlTeW5jIHN5bmNEREwoJnN5 bmNTeXNEREwsICJEYXRhYmFzZTo6Z2V0Q29tcGlsZWRTdGF0ZW1lbnQoV0MpIik7CisJU3luYyBz eW5jRERMKCZzeW5jU3lzRERMLCAiRGF0YWJhc2U6OmdldENvbXBpbGVkU3RhdGVtZW50KDMpIik7 CiAJc3luY0RETC5sb2NrKFNoYXJlZCk7CiAJCi0JU3luYyBzeW5jU3RtdCgmc3luY1N0YXRlbWVu dHMsICJEYXRhYmFzZTo6Z2V0Q29tcGlsZWRTdGF0ZW1lbnQoV0MpIik7CisJU3luYyBzeW5jU3Rt dCgmc3luY1N0YXRlbWVudHMsICJEYXRhYmFzZTo6Z2V0Q29tcGlsZWRTdGF0ZW1lbnQoNCkiKTsK IAlzeW5jU3RtdC5sb2NrKFNoYXJlZCk7CiAJCiAJLy9KU3RyaW5nIHN0cihzcWxTdHJpbmcpOwpA QCAtMTIwOCw3ICsxMjAwLDcgQEAgQ29tcGlsZWRTdGF0ZW1lbnQqIERhdGFiYXNlOjpnZXRDb21w aWxlZAogCiBDb21waWxlZFN0YXRlbWVudCogRGF0YWJhc2U6OmNvbXBpbGVTdGF0ZW1lbnQoQ29u bmVjdGlvbiAqY29ubmVjdGlvbiwgSlN0cmluZyBzcWxTdHJpbmcpCiB7Ci0JU3luYyBzeW5jRERM KCZzeW5jU3lzRERMLCAiRGF0YWJhc2U6OmdldENvbXBpbGVkU3RhdGVtZW50KFdDKSIpOworCVN5 bmMgc3luY0RETCgmc3luY1N5c0RETCwgIkRhdGFiYXNlOjpjb21waWxlU3RhdGVtZW50KDEpIik7 CiAJc3luY0RETC5sb2NrKFNoYXJlZCk7CiAJCiAJQ29tcGlsZWRTdGF0ZW1lbnQgKnN0YXRlbWVu dCA9IG5ldyBDb21waWxlZFN0YXRlbWVudCAoY29ubmVjdGlvbik7CkBAIC0xMjI3LDkgKzEyMTks OSBAQCBDb21waWxlZFN0YXRlbWVudCogRGF0YWJhc2U6OmNvbXBpbGVTdGF0CiAJaWYgKHN0YXRl bWVudC0+dXNlYWJsZSAmJiAKIAkJKHN0YXRlbWVudC0+bnVtYmVyUGFyYW1ldGVycyA+IDAgfHwg IXN0YXRlbWVudC0+ZmlsdGVycy5pc0VtcHR5KCkpKQogCQl7Ci0JCVN5bmMgc3luY1N0bXQgKCZz eW5jU3RhdGVtZW50cywgIkRhdGFiYXNlOjpjb21waWxlU3RhdGVtZW50KDEpIik7CisJCVN5bmMg c3luY1N0bXQgKCZzeW5jU3RhdGVtZW50cywgIkRhdGFiYXNlOjpjb21waWxlU3RhdGVtZW50KDIp Iik7CiAJCXN5bmNTdG10LmxvY2sgKFNoYXJlZCk7Ci0JCVN5bmMgc3luY0FkZFN0bXQgKCZzeW5j QWRkU3RhdGVtZW50LCAiRGF0YWJhc2U6OmNvbXBpbGVTdGF0ZW1lbnQoMikiKTsKKwkJU3luYyBz eW5jQWRkU3RtdCAoJnN5bmNBZGRTdGF0ZW1lbnQsICJEYXRhYmFzZTo6Y29tcGlsZVN0YXRlbWVu dCgzKSIpOwogCQlzeW5jQWRkU3RtdC5sb2NrIChFeGNsdXNpdmUpOwogCQlzdGF0ZW1lbnQtPmFk ZFJlZigpOwogCQlzdGF0ZW1lbnQtPm5leHQgPSBjb21waWxlZFN0YXRlbWVudHM7CkBAIC0xMjY1 LDcgKzEyNTcsNyBAQCB2b2lkIERhdGFiYXNlOjpjb21taXRTeXN0ZW1UcmFuc2FjdGlvbigpCiAK IHZvaWQgRGF0YWJhc2U6OnJvbGxiYWNrU3lzdGVtVHJhbnNhY3Rpb24odm9pZCkKIHsKLQlTeW5j IHN5bmMgKCZzeW5jU3lzRERMLCAiRGF0YWJhc2U6OmNvbW1pdFN5c3RlbVRyYW5zYWN0aW9uIik7 CisJU3luYyBzeW5jICgmc3luY1N5c0RETCwgIkRhdGFiYXNlOjpyb2xsYmFja1N5c3RlbVRyYW5z YWN0aW9uIik7CiAJc3luYy5sb2NrIChFeGNsdXNpdmUpOwogCXN5c3RlbUNvbm5lY3Rpb24tPnJv bGxiYWNrKCk7CiB9CkBAIC0xMzMxLDEwICsxMzIzLDEwIEBAIFRhYmxlKiBEYXRhYmFzZTo6Z2V0 VGFibGUoaW50IHRhYmxlSWQpCiAKIFRhYmxlKiBEYXRhYmFzZTo6bG9hZFRhYmxlKFJlc3VsdFNl dCAqIHJlc3VsdFNldCkKIHsKLQlTeW5jIHN5bmNEREwoJnN5bmNTeXNEREwsICJEYXRhYmFzZTo6 bG9hZFRhYmxlIik7CisJU3luYyBzeW5jRERMKCZzeW5jU3lzRERMLCAiRGF0YWJhc2U6OmxvYWRU YWJsZSgxKSIpOwogCXN5bmNEREwubG9jayhTaGFyZWQpOwogCi0JU3luYyBzeW5jT2JqKCZzeW5j VGFibGVzLCAiRGF0YWJhc2U6OmxvYWRUYWJsZSIpOworCVN5bmMgc3luY09iaigmc3luY1RhYmxl cywgIkRhdGFiYXNlOjpsb2FkVGFibGUoMikiKTsKIAkKIAlpZiAoIXJlc3VsdFNldC0+bmV4dCgp KQogCQlyZXR1cm4gTlVMTDsKQEAgLTEzOTksNyArMTM5MSw3IEBAIHZvaWQgRGF0YWJhc2U6OmZs dXNoSW52ZXJzaW9uKFRyYW5zYWN0aW8KIAogdm9pZCBEYXRhYmFzZTo6ZHJvcFRhYmxlKFRhYmxl ICp0YWJsZSwgVHJhbnNhY3Rpb24gKnRyYW5zYWN0aW9uKQogewotCVN5bmMgc3luY0RETCgmc3lu Y1N5c0RETCwgIkRhdGFiYXNlOjpkcm9wVGFibGUiKTsKKwlTeW5jIHN5bmNEREwoJnN5bmNTeXNE REwsICJEYXRhYmFzZTo6ZHJvcFRhYmxlKDEpIik7CiAJc3luY0RETC5sb2NrKEV4Y2x1c2l2ZSk7 CiAJCiAJdGFibGUtPmNoZWNrRHJvcCgpOwpAQCAtMTQxNCw3ICsxNDA2LDcgQEAgdm9pZCBEYXRh YmFzZTo6ZHJvcFRhYmxlKFRhYmxlICp0YWJsZSwgVAogCQogCXRyYW5zYWN0aW9uTWFuYWdlci0+ ZHJvcFRhYmxlKHRhYmxlLCB0cmFuc2FjdGlvbik7CiAKLQlTeW5jIHN5bmNUYmwoJnN5bmNUYWJs ZXMsICJEYXRhYmFzZTo6ZHJvcFRhYmxlIik7CisJU3luYyBzeW5jVGJsKCZzeW5jVGFibGVzLCAi RGF0YWJhc2U6OmRyb3BUYWJsZSgyKSIpOwogCXN5bmNUYmwubG9jayhFeGNsdXNpdmUpOwogCiAJ Ly8gUmVtb3ZlIHRhYmxlIGZyb20gbGluZWFyIHRhYmxlIGxpc3QKQEAgLTE0NTUsNyArMTQ0Nyw3 IEBAIHZvaWQgRGF0YWJhc2U6OmRyb3BUYWJsZShUYWJsZSAqdGFibGUsIFQKIAogCS8vIExvY2sg c2VjdGlvbnMgKGZhY3RvcmVkIG91dCBvZiBTUkxEcm9wVGFibGUgdG8gYXZvaWQgYSBkZWFkbG9j aykKIAotCVN5bmMgc3luY1NlY3Rpb25zKCZzZXJpYWxMb2ctPnN5bmNTZWN0aW9ucywgIkRhdGFi YXNlOjpkcm9wVGFibGUiKTsKKwlTeW5jIHN5bmNTZWN0aW9ucygmc2VyaWFsTG9nLT5zeW5jU2Vj dGlvbnMsICJEYXRhYmFzZTo6ZHJvcFRhYmxlKDMpIik7CiAJc3luY1NlY3Rpb25zLmxvY2soRXhj bHVzaXZlKTsKIAl0YWJsZS0+ZXhwdW5nZShnZXRTeXN0ZW1UcmFuc2FjdGlvbigpKTsKIAlkZWxl dGUgdGFibGU7CkBAIC0xNDYzLDcgKzE0NTUsNyBAQCB2b2lkIERhdGFiYXNlOjpkcm9wVGFibGUo VGFibGUgKnRhYmxlLCBUCiAKIHZvaWQgRGF0YWJhc2U6OnRydW5jYXRlVGFibGUoVGFibGUgKnRh YmxlLCBTZXF1ZW5jZSAqc2VxdWVuY2UsIFRyYW5zYWN0aW9uICp0cmFuc2FjdGlvbikKIHsKLQlT eW5jIHN5bmNEREwoJnN5bmNTeXNEREwsICJEYXRhYmFzZTo6dHJ1bmNhdGVUYWJsZSIpOworCVN5 bmMgc3luY0RETCgmc3luY1N5c0RETCwgIkRhdGFiYXNlOjp0cnVuY2F0ZVRhYmxlKDEpIik7CiAJ c3luY0RETC5sb2NrKEV4Y2x1c2l2ZSk7CiAJCiAJdGFibGUtPmNoZWNrRHJvcCgpOwpAQCAtMTQ3 NiwxOSArMTQ2OCwxOSBAQCB2b2lkIERhdGFiYXNlOjp0cnVuY2F0ZVRhYmxlKFRhYmxlICp0YWJs CiAJCQkJCQkgICAKIAkvLyBCbG9jayB0YWJsZSBkcm9wL2FkZCwgdGFibGUgbGlzdCBzY2FucyBv awogCQotCVN5bmMgc3luY1RibCgmc3luY1RhYmxlcywgIkRhdGFiYXNlOjp0cnVuY2F0ZVRhYmxl Iik7CisJU3luYyBzeW5jVGJsKCZzeW5jVGFibGVzLCAiRGF0YWJhc2U6OnRydW5jYXRlVGFibGUo MikiKTsKIAlzeW5jVGJsLmxvY2soU2hhcmVkKTsKIAkKIAkvL0xvY2sgc2VjdGlvbnMgKGZhY3Rv cmVkIG91dCBvZiBTUkxEcm9wVGFibGUgdG8gYXZvaWQgYSBkZWFkbG9jaykKIAkvL1RoZSBsb2Nr IG9yZGVyIChzZXJpYWxMb2ctPnN5bmNTZWN0aW9ucyBiZWZvcmUgdGFibGUtPnN5bmNPYmplY3Qp IGlzIAogCS8vaW1wb3J0YW50CiAKLQlTeW5jIHN5bmNTZWN0aW9ucygmc2VyaWFsTG9nLT5zeW5j U2VjdGlvbnMsICJEYXRhYmFzZTo6dHJ1bmNhdGVUYWJsZSIpOworCVN5bmMgc3luY1NlY3Rpb25z KCZzZXJpYWxMb2ctPnN5bmNTZWN0aW9ucywgIkRhdGFiYXNlOjp0cnVuY2F0ZVRhYmxlKDMpIik7 CiAJc3luY1NlY3Rpb25zLmxvY2soRXhjbHVzaXZlKTsKIAkKIAkvLyBObyB0YWJsZSBhY2Nlc3Mg dW50aWwgdHJ1bmNhdGUgY29tcGxldGVzCiAJCi0JU3luYyBzeW5jT2JqKCZ0YWJsZS0+c3luY09i amVjdCwgIkRhdGFiYXNlOjp0cnVuY2F0ZVRhYmxlIik7CisJU3luYyBzeW5jT2JqKCZ0YWJsZS0+ c3luY09iamVjdCwgIkRhdGFiYXNlOjp0cnVuY2F0ZVRhYmxlKDQpIik7CiAJc3luY09iai5sb2Nr KEV4Y2x1c2l2ZSk7CiAJCiAJdGFibGUtPmRlbGV0aW5nID0gdHJ1ZTsKQEAgLTE2NzUsMTAgKzE2 NjcsMTAgQEAgUm9sZSogRGF0YWJhc2U6OmZpbmRSb2xlKGNvbnN0IFdDU3RyaW5nIAogCiB2b2lk IERhdGFiYXNlOjp2YWxpZGF0ZShpbnQgb3B0aW9uTWFzaykKIHsKLQlTeW5jIHN5bmNEREwoJnN5 bmNTeXNEREwsICJEYXRhYmFzZTo6dmFsaWRhdGUiKTsKKwlTeW5jIHN5bmNEREwoJnN5bmNTeXNE REwsICJEYXRhYmFzZTo6dmFsaWRhdGUoMSkiKTsKIAlzeW5jRERMLmxvY2soU2hhcmVkKTsKIAkK LQlTeW5jIHN5bmNPYmooJnN5bmNPYmplY3QsICJEYXRhYmFzZTo6dmFsaWRhdGUiKTsKKwlTeW5j IHN5bmNPYmooJnN5bmNPYmplY3QsICJEYXRhYmFzZTo6dmFsaWRhdGUoMikiKTsKIAlzeW5jT2Jq LmxvY2sgKEV4Y2x1c2l2ZSk7CiAJCiAJTG9nOjpkZWJ1ZyAoIlZhbGlkYXRpb246XG4iKTsKQEAg LTE3NjQsNyArMTc1Niw3IEBAIHZvaWQgRGF0YWJhc2U6OnJldGlyZVJlY29yZHMoYm9vbCBmb3Jj ZWQKIHsKIAlpbnQgY3ljbGUgPSBzY2F2ZW5nZUN5Y2xlOwogCQotCVN5bmMgc3luY1NjYXZlbmdl cigmc3luY1NjYXZlbmdlLCAiRGF0YWJhc2U6OnJldGlyZVJlY29yZHMiKTsKKwlTeW5jIHN5bmNT Y2F2ZW5nZXIoJnN5bmNTY2F2ZW5nZSwgIkRhdGFiYXNlOjpyZXRpcmVSZWNvcmRzKDEpIik7CiAJ c3luY1NjYXZlbmdlci5sb2NrKEV4Y2x1c2l2ZSk7CiAKIAlpZiAoZm9yY2VkICYmIHNjYXZlbmdl Q3ljbGUgPiBjeWNsZSkKQEAgLTE3OTIsNyArMTc4NCw3IEBAIHZvaWQgRGF0YWJhc2U6OnJldGly ZVJlY29yZHMoYm9vbCBmb3JjZWQKIAkJLy9Mb2dTdHJlYW0gc3RyZWFtOwogCQkvL3JlY29yZERh dGFQb29sLT5hbmFseXplKDAsICZzdHJlYW0sIE5VTEwsIE5VTEwpOwogCQkKLQkJU3luYyBzeW5j VGJsKCZzeW5jVGFibGVzLCAiRGF0YWJhc2U6OnJldGlyZVJlY29yZHMiKTsKKwkJU3luYyBzeW5j VGJsKCZzeW5jVGFibGVzLCAiRGF0YWJhc2U6OnJldGlyZVJlY29yZHMoMikiKTsKIAkJc3luY1Ri bC5sb2NrKFNoYXJlZCk7CiAJCQogCQlUYWJsZSAqdGFibGU7CkBAIC0yMDA2LDcgKzE5OTgsNyBA QCBKU3RyaW5nIERhdGFiYXNlOjphbmFseXplKGludCBtYXNrKQogewogCVN0cmVhbSBzdHJlYW07 CiAJc3RyZWFtLnNldE1hbGxvYyAodHJ1ZSk7Ci0JU3luYyBzeW5jRERMKCZzeW5jU3lzRERMLCAi RGF0YWJhc2U6OmFuYWx5emUiKTsKKwlTeW5jIHN5bmNEREwoJnN5bmNTeXNEREwsICJEYXRhYmFz ZTo6YW5hbHl6ZSgxKSIpOwogCiAJaWYgKG1hc2sgJiBhbmFseXplTWVtb3J5KQogCQlNZW1NZ3JB bmFseXplIChtYXNrLCAmc3RyZWFtKTsKQEAgLTIwNDgsNyArMjA0MCw3IEBAIEpTdHJpbmcgRGF0 YWJhc2U6OmFuYWx5emUoaW50IG1hc2spCiAJaWYgKG1hc2sgJiBhbmFseXplU3RhdGVtZW50cykK IAkJewogCQlzdHJlYW0ucHV0U2VnbWVudCAoIlxuU3RhdGVtZW50c1xuIik7Ci0JCVN5bmMgc3lu Y1N0bXQoJnN5bmNTdGF0ZW1lbnRzLCAiRGF0YWJhc2U6OmFuYWx5emUiKTsKKwkJU3luYyBzeW5j U3RtdCgmc3luY1N0YXRlbWVudHMsICJEYXRhYmFzZTo6YW5hbHl6ZSgyKSIpOwogCQlzeW5jU3Rt dC5sb2NrKFNoYXJlZCk7CiAKIAkJZm9yIChDb21waWxlZFN0YXRlbWVudCAqc3RhdGVtZW50ID0g Y29tcGlsZWRTdGF0ZW1lbnRzOyBzdGF0ZW1lbnQ7CkBAIC0yMzU5LDEwICsyMzUxLDEwIEBAIHZv aWQgRGF0YWJhc2U6OmdldFRhYmxlU3BhY2VGaWxlc0luZm8oSW4KIAogdm9pZCBEYXRhYmFzZTo6 dXBkYXRlQ2FyZGluYWxpdGllcyh2b2lkKQogewotCVN5bmMgc3luY0RETCgmc3luY1N5c0RETCwg IkRhdGFiYXNlOjp1cGRhdGVDYXJkaW5hbGl0aWVzIik7CisJU3luYyBzeW5jRERMKCZzeW5jU3lz RERMLCAiRGF0YWJhc2U6OnVwZGF0ZUNhcmRpbmFsaXRpZXMoMSkiKTsKIAlzeW5jRERMLmxvY2so U2hhcmVkKTsKIAkKLQlTeW5jIHN5bmNUYmwoJnN5bmNUYWJsZXMsICJEYXRhYmFzZTo6dXBkYXRl Q2FyZGluYWxpdGllcyIpOworCVN5bmMgc3luY1RibCgmc3luY1RhYmxlcywgIkRhdGFiYXNlOjp1 cGRhdGVDYXJkaW5hbGl0aWVzKDIpIik7CiAJc3luY1RibC5sb2NrKFNoYXJlZCk7CiAJCiAJYm9v bCBoaXQgPSBmYWxzZTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9EYXRhYmFz ZUNsb25lLmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vRGF0YWJhc2VDbG9uZS5jcHAJMjAwNy0x MC0wOCAxNzoyMDoyNiArMDAwMAorKysgYi9zdG9yYWdlL2ZhbGNvbi9EYXRhYmFzZUNsb25lLmNw cAkyMDA4LTA3LTE3IDEzOjUyOjE3ICswMDAwCkBAIC01MCw3ICs1MCw3IEBAIHZvaWQgRGF0YWJh c2VDbG9uZTo6Y3JlYXRlRmlsZShjb25zdCBjaGEKIAlzaGFkb3cgPSBuZXcgSU87CiAJc2hhZG93 LT5wYWdlU2l6ZSA9IGRiYi0+cGFnZVNpemU7CiAJc2hhZG93LT5kYmIgPSBkYmI7Ci0Jc2hhZG93 LT5jcmVhdGVGaWxlKGZpbGVOYW1lLCAwKTsKKwlzaGFkb3ctPmNyZWF0ZUZpbGUoZmlsZU5hbWUp OwogfQogCiBjb25zdCBjaGFyKiBEYXRhYmFzZUNsb25lOjpnZXRGaWxlTmFtZSh2b2lkKQpAQCAt NzgsNyArNzgsNyBAQCB2b2lkIERhdGFiYXNlQ2xvbmU6OndyaXRlUGFnZShCZGIqIGJkYikKIAog dm9pZCBEYXRhYmFzZUNsb25lOjpjbG9uZSh2b2lkKQogewotCVN5bmMgc3luYygmc3luY09iamVj dCwgIkRhdGFiYXNlQ2xvbmU6OmNsb25lIik7CisJU3luYyBzeW5jKCZzeW5jT2JqZWN0LCAiRGF0 YWJhc2VDbG9uZTo6Y2xvbmUoMSkiKTsKIAlpbnQgbiA9IDA7CiAKIAlmb3IgKDs7KQpAQCAtMTEx LDcgKzExMSw3IEBAIHZvaWQgRGF0YWJhc2VDbG9uZTo6Y2xvbmUodm9pZCkKIAkJCQogCQkJLy8g IEluIHRoZW9yeSwgd2UncmUgZG9uZS4gIExvY2sgdGhlIGNhY2hlIGFnYWluc3QgY2hhbmdlcywg YW5kIGNoZWNrIGFnYWluCiAJCQkKLQkJCVN5bmMgc3luY0NhY2hlKCZkYmItPmNhY2hlLT5zeW5j T2JqZWN0LCAiRGJiOjpjbG9uZUZpbGUiKTsKKwkJCVN5bmMgc3luY0NhY2hlKCZkYmItPmNhY2hl LT5zeW5jT2JqZWN0LCAiRGF0YWJhc2VDbG9uZTo6Y2xvbmUoMikiKTsKIAkJCXN5bmNDYWNoZS5s b2NrKEV4Y2x1c2l2ZSk7CiAJCQlsYXN0UGFnZSA9IFBhZ2VJbnZlbnRvcnlQYWdlOjpnZXRMYXN0 UGFnZShkYmIpOwogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vRGF0YWJhc2VD b3B5LmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vRGF0YWJhc2VDb3B5LmNwcAkyMDA3LTA5LTIw IDE1OjQ0OjI1ICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL0RhdGFiYXNlQ29weS5jcHAJMjAw OC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtMzEsNiArMzEsNyBAQCBEYXRhYmFzZUNvcHk6OkRh dGFiYXNlQ29weShEYmIgKmRiKQogCXJld3JpdHRlblBhZ2VzID0gTlVMTDsKIAloaWdoV2F0ZXIg PSAwOwogCWF0RW5kID0gZmFsc2U7CisJc3luY09iamVjdC5zZXROYW1lKCJEYXRhYmFzZUNvcHk6 OnN5bmNPYmplY3QiKTsKIH0KIAogRGF0YWJhc2VDb3B5Ojp+RGF0YWJhc2VDb3B5KHZvaWQpCgo9 PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vRGJiLmNwcCcKLS0tIGEvc3RvcmFnZS9m YWxjb24vRGJiLmNwcAkyMDA4LTA0LTEyIDAyOjIyOjUwICswMDAwCisrKyBiL3N0b3JhZ2UvZmFs Y29uL0RiYi5jcHAJMjAwOC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtODksNiArODksOCBAQCBE YmI6OkRiYihEYXRhYmFzZSAqZGJhc2UpCiAJdGFibGVTcGFjZVNlY3Rpb25JZCA9IDA7CiAJdGFi bGVTcGFjZUlkID0gMDsKIAlub0xvZyA9IGZhbHNlOworCXN5bmNDbG9uZS5zZXROYW1lKCJEYmI6 OnN5bmNDbG9uZSIpOworCXN5bmNTZXF1ZW5jZXMuc2V0TmFtZSgiRGJiOjpzeW5jU2VxdWVuY2Vz Iik7CiB9CiAKIApAQCAtMTQ3LDcgKzE0OSw3IEBAIERiYjo6fkRiYigpCiAJCWRiYi0+Y2xvc2Uo KTsKIH0KIAotQ2FjaGUqIERiYjo6Y3JlYXRlKGNvbnN0IGNoYXIgKiBmaWxlTmFtZSwgaW50IHBh Z2VTeiwgaW50NjQgY2FjaGVTaXplLCBGaWxlVHlwZSBmaWxlVHlwZSwgVHJhbnNJZCB0cmFuc0lk LCBjb25zdCBjaGFyICpsb2dSb290LCB1aW50NjQgaW5pdGlhbEFsbG9jYXRpb24pCitDYWNoZSog RGJiOjpjcmVhdGUoY29uc3QgY2hhciAqIGZpbGVOYW1lLCBpbnQgcGFnZVN6LCBpbnQ2NCBjYWNo ZVNpemUsIEZpbGVUeXBlIGZpbGVUeXBlLCBUcmFuc0lkIHRyYW5zSWQsIGNvbnN0IGNoYXIgKmxv Z1Jvb3QpCiB7CiAJc2VyaWFsTG9nID0gZGF0YWJhc2UtPnNlcmlhbExvZzsKIAlvZHNWZXJzaW9u ID0gT0RTX1ZFUlNJT047CkBAIC0xNTUsNyArMTU3LDcgQEAgQ2FjaGUqIERiYjo6Y3JlYXRlKGNv bnN0IGNoYXIgKiBmaWxlTmFtZQogCXNlcXVlbmNlID0gMTsKIAogCWluaXQocGFnZVN6LCAoaW50 KSAoKGNhY2hlU2l6ZSArIHBhZ2VTeiAtIDEpIC8gcGFnZVN6KSk7Ci0JY3JlYXRlRmlsZShmaWxl TmFtZSwgaW5pdGlhbEFsbG9jYXRpb24pOworCWNyZWF0ZUZpbGUoZmlsZU5hbWUpOwogCXRyeQog CQl7CiAJCUhkcjo6Y3JlYXRlKHRoaXMsIGZpbGVUeXBlLCB0cmFuc0lkLCBsb2dSb290KTsKQEAg LTc0OSw3ICs3NTEsNyBAQCBCZGIqIERiYjo6Z2V0U2VxdWVuY2VQYWdlKGludCBzZXF1ZW5jZUlk CiAJZWxzZQogCSoqKi8KIAkJewotCQlTeW5jIHN5bmMoJnNlcXVlbmNlc1N5bmNPYmplY3QsICJE YmI6OnVwZGF0ZVNlcXVlbmNlIik7CisJCVN5bmMgc3luYygmc3luY1NlcXVlbmNlcywgIkRiYjo6 Z2V0U2VxdWVuY2VQYWdlIik7CiAJCXN5bmMubG9jayhTaGFyZWQpOwogCQlpbnQgc2VxdWVuY2VQ YWdlU2VxdWVuY2UgPSBzZXF1ZW5jZUlkIC8gc2VxdWVuY2VzUGVyUGFnZTsKIAkJaW50MzIgc2Vx dWVuY2VQYWdlTnVtYmVyID0gc2VxdWVuY2VQYWdlcy5nZXQoc2VxdWVuY2VQYWdlU2VxdWVuY2Up OwpAQCAtOTcwLDcgKzk3Miw3IEBAIHZvaWQgRGJiOjpjbG9uZUZpbGUoRGF0YWJhc2UgKmRhdGFi YXNlLCAKIC8qKioKIHZvaWQgRGJiOjpjbG9uZUZpbGUoRGF0YWJhc2VDbG9uZSAqc2hhZG93LCBi b29sIGlzU2hhZG93KQogewotCVN5bmMgc3luYyAoJmNsb25lU3luY09iamVjdCwgIkRiYjo6Y2xv bmVGaWxlKDIpIik7CisJU3luYyBzeW5jICgmc3luY0Nsb25lLCAiRGJiOjpjbG9uZUZpbGUoMiki KTsKIAlzeW5jLmxvY2sgKEV4Y2x1c2l2ZSk7CiAJc2hhZG93LT5uZXh0ID0gc2hhZG93czsKIAlz aGFkb3dzID0gc2hhZG93OwpAQCAtMTAyMyw3ICsxMDI1LDcgQEAgdm9pZCBEYmI6OmNsb25lRmls ZShEYXRhYmFzZUNsb25lICpzaGFkbwogCiBib29sIERiYjo6ZGVsZXRlU2hhZG93KERhdGFiYXNl Q29weSAqc2hhZG93KQogewotCVN5bmMgc3luYyAoJmNsb25lU3luY09iamVjdCwgIkRiYjo6ZGVs ZXRlU2hhZG93Iik7CisJU3luYyBzeW5jICgmc3luY0Nsb25lLCAiRGJiOjpkZWxldGVTaGFkb3ci KTsKIAlzeW5jLmxvY2sgKEV4Y2x1c2l2ZSk7CiAKIAlmb3IgKERhdGFiYXNlQ29weSAqKnB0ciA9 ICZzaGFkb3dzOyAqcHRyOyBwdHIgPSAmKCpwdHIpLT5uZXh0KQpAQCAtMTM1Miw3ICsxMzU0LDcg QEAgdm9pZCBEYmI6OnVwZ3JhZGVTZXF1ZW5jZVNlY3Rpb24odm9pZCkKIAogdm9pZCBEYmI6OmFk ZFNoYWRvdyhEYXRhYmFzZUNvcHkqIHNoYWRvdykKIHsKLQlTeW5jIHN5bmMgKCZjbG9uZVN5bmNP YmplY3QsICJEYmI6OmFkZFNoYWRvdyIpOworCVN5bmMgc3luYyAoJnN5bmNDbG9uZSwgIkRiYjo6 YWRkU2hhZG93Iik7CiAJc3luYy5sb2NrIChFeGNsdXNpdmUpOwogCXNoYWRvdy0+bmV4dCA9IHNo YWRvd3M7CiAJc2hhZG93cyA9IHNoYWRvdzsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2Zh bGNvbi9EYmIuaCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vRGJiLmgJMjAwOC0wMy0yNyAwNjowOToy OSArMDAwMAorKysgYi9zdG9yYWdlL2ZhbGNvbi9EYmIuaAkyMDA4LTA3LTI0IDA4OjQ1OjAzICsw MDAwCkBAIC02MSwxMSArNjEsMTEgQEAgc3RhdGljIGNvbnN0IGludCBGaWxsTGV2ZWxzID0gNTsK IAogc3RydWN0IFNlY3Rpb25BbmFseXNpcyAKIHsKLSAgIGludDMyCQlyZWNvcmRMb2NhdG9yUGFn ZXM7Ci0gICBpbnQzMgkJZGF0YVBhZ2VzOwotICAgaW50MzIJCW92ZXJmbG93UGFnZXM7Ci0gICBp bnQzMgkJc3BhY2VBdmFpbGFibGU7Ci0gICBpbnQzMgkJcmVjb3JkczsKKwlpbnQzMgkJcmVjb3Jk TG9jYXRvclBhZ2VzOworCWludDMyCQlkYXRhUGFnZXM7CisJaW50MzIJCW92ZXJmbG93UGFnZXM7 CisJaW50MzIJCXNwYWNlQXZhaWxhYmxlOworCWludDMyCQlyZWNvcmRzOwogfTsKIAogc3RydWN0 IEluZGV4QW5hbHlzaXMKQEAgLTE2OCw3ICsxNjgsNyBAQCBwdWJsaWM6CiAJQmRiKglmYWtlUGFn ZSAoaW50MzIgcGFnZU51bWJlciwgUGFnZVR5cGUgcGFnZVR5cGUsIFRyYW5zSWQgdHJhbnNJZCk7 CiAJQmRiKgl0cmlhbEZldGNoKGludDMyIHBhZ2VOdW1iZXIsIFBhZ2VUeXBlIHBhZ2VUeXBlLCBM b2NrVHlwZSBsb2NrVHlwZSk7CiAJdm9pZAlpbml0KGludCBwYWdlU3osIGludCBjYWNoZVNpemUp OwotCUNhY2hlKgljcmVhdGUgKGNvbnN0IGNoYXIgKmZpbGVOYW1lLCBpbnQgcGFnZVNpemUsIGlu dDY0IGNhY2hlU2l6ZSwgRmlsZVR5cGUgZmlsZVR5cGUsIFRyYW5zSWQgdHJhbnNJZCwgY29uc3Qg Y2hhciAqbG9nUm9vdCwgdWludDY0IGluaXRpYWxBbGxvY2F0aW9uKTsKKwlDYWNoZSoJY3JlYXRl IChjb25zdCBjaGFyICpmaWxlTmFtZSwgaW50IHBhZ2VTaXplLCBpbnQ2NCBjYWNoZVNpemUsIEZp bGVUeXBlIGZpbGVUeXBlLCBUcmFuc0lkIHRyYW5zSWQsIGNvbnN0IGNoYXIgKmxvZ1Jvb3QpOwog CXZvaWQJdmFsaWRhdGVDYWNoZSh2b2lkKTsKIAl2b2lkCWxvZ1VwZGF0ZWRSZWNvcmRzKFRyYW5z YWN0aW9uKiB0cmFuc2FjdGlvbiwgUmVjb3JkVmVyc2lvbiogcmVjb3JkcywgYm9vbCBjaGlsbCA9 IGZhbHNlKTsKIAl2b2lkCWxvZ0luZGV4VXBkYXRlcyhEZWZlcnJlZEluZGV4KiBkZWZlcnJlZElu ZGV4KTsKQEAgLTIxNCw4ICsyMTQsOCBAQCBwdWJsaWM6CiAJSGRyU3RhdGUJcHJpb3JTdGF0ZTsK IAlJbnZlcnNpb24JKmludmVyc2lvbjsKIAlEYXRhYmFzZUNvcHkgKnNoYWRvd3M7Ci0JU3luY09i amVjdAljbG9uZVN5bmNPYmplY3Q7Ci0JU3luY09iamVjdAlzZXF1ZW5jZXNTeW5jT2JqZWN0Owor CVN5bmNPYmplY3QJc3luY0Nsb25lOworCVN5bmNPYmplY3QJc3luY1NlcXVlbmNlczsKIAlTZXJp YWxMb2cJKnNlcmlhbExvZzsKIAlKU3RyaW5nCQlsb2dSb290OwogCVNwYXJzZUFycmF5PGludDMy LCAxMDA+CXNlcXVlbmNlUGFnZXM7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24v RGVmZXJyZWRJbmRleC5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL0RlZmVycmVkSW5kZXguY3Bw CTIwMDgtMDQtMTIgMDI6MjI6NTAgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vRGVmZXJyZWRJ bmRleC5jcHAJMjAwOC0wNy0yNSAxODowNzoyNCArMDAwMApAQCAtNjAsNiArNjAsOCBAQCBEZWZl cnJlZEluZGV4OjpEZWZlcnJlZEluZGV4KEluZGV4ICppZHgsCiAJaGF2ZU1pblZhbHVlID0gdHJ1 ZTsKIAloYXZlTWF4VmFsdWUgPSB0cnVlOwogCXdpbmRvdyA9IE5VTEw7CisJc3luY09iamVjdC5z ZXROYW1lKCJEZWZlcnJlZEluZGV4OjpzeW5jT2JqZWN0Iik7CisJdXNlQ291bnQgPSAxOyAgIC8v IHRoZSB0cmFuc2FjdGlvbiB0aGF0IGNyZWF0ZWQgaXQKIH0KIAogRGVmZXJyZWRJbmRleDo6fkRl ZmVycmVkSW5kZXgodm9pZCkKQEAgLTM1NywxMSArMzU5LDExIEBAIGJvb2wgRGVmZXJyZWRJbmRl eDo6ZGVsZXRlTm9kZShJbmRleEtleSoKIAlib29sIGRvaW5nRElIYXNoID0gKCAgIChpbmRleC0+ ZGF0YWJhc2UtPmNvbmZpZ3VyYXRpb24tPnVzZURlZmVycmVkSW5kZXhIYXNoKQogCSAgICAgICAg ICAgICAgICAgICAgJiYgKElOREVYX0lTX1VOSVFVRShpbmRleC0+dHlwZSkpKTsKIAotCVN5bmMg c3luY0hhc2goJmluZGV4LT5zeW5jRElIYXNoLCAiRGVmZXJyZWRJbmRleDo6ZGVsZXRlTm9kZSIp OworCVN5bmMgc3luY0hhc2goJmluZGV4LT5zeW5jRElIYXNoLCAiRGVmZXJyZWRJbmRleDo6ZGVs ZXRlTm9kZSgxKSIpOwogCWlmIChkb2luZ0RJSGFzaCkKIAkJc3luY0hhc2gubG9jayhFeGNsdXNp dmUpOwogCi0JU3luYyBzeW5jKCZzeW5jT2JqZWN0LCAiRGVmZXJyZWRJbmRleDo6ZGVsZXRlTm9k ZSIpOworCVN5bmMgc3luYygmc3luY09iamVjdCwgIkRlZmVycmVkSW5kZXg6OmRlbGV0ZU5vZGUo MikiKTsKIAlzeW5jLmxvY2soRXhjbHVzaXZlKTsKIAogCURJQnVja2V0ICpidWNrZXRzW0RFRkVS UkVEX0lOREVYX01BWF9MRVZFTFNdOwpAQCAtODIzLDcgKzgyNSw3IEBAIHZvaWQgRGVmZXJyZWRJ bmRleDo6ZGV0YWNoSW5kZXgodm9pZCkKIAogdm9pZCBEZWZlcnJlZEluZGV4OjpkZXRhY2hUcmFu c2FjdGlvbih2b2lkKQogewotCVN5bmMgc3luYygmc3luY09iamVjdCwgIkRlZmVycmVkSW5kZXg6 OmRldGFjaEluZGV4Iik7CisJU3luYyBzeW5jKCZzeW5jT2JqZWN0LCAiRGVmZXJyZWRJbmRleDo6 ZGV0YWNoVHJhbnNhY3Rpb24iKTsKIAlzeW5jLmxvY2soRXhjbHVzaXZlKTsKIAl0cmFuc2FjdGlv biA9IE5VTEw7CiAKQEAgLTgzOCw3ICs4NDAsNyBAQCB2b2lkIERlZmVycmVkSW5kZXg6OmRldGFj aFRyYW5zYWN0aW9uKHZvCiAJZWxzZQogCQlzeW5jLnVubG9jaygpOwogCi0JZGVsZXRlIHRoaXM7 CisJcmVsZWFzZVJlZigpOwogfQogCiB2b2lkIERlZmVycmVkSW5kZXg6OmNoaWxsKERiYiAqZGJi KQpAQCAtODc0LDMgKzg3NiwxNiBAQCBESU5vZGUqIERlZmVycmVkSW5kZXg6OmZpbmRNaW5WYWx1 ZSh2b2lkCiB7CiAJcmV0dXJuIE5VTEw7CiB9CisKK3ZvaWQgRGVmZXJyZWRJbmRleDo6YWRkUmVm KCkKK3sKKwlJTlRFUkxPQ0tFRF9JTkNSRU1FTlQgKHVzZUNvdW50KTsKK30KKwordm9pZCBEZWZl cnJlZEluZGV4OjpyZWxlYXNlUmVmKCkKK3sKKwlJTlRFUkxPQ0tFRF9ERUNSRU1FTlQodXNlQ291 bnQpOworCisJaWYgKHVzZUNvdW50ID09IDApCisJCWRlbGV0ZSB0aGlzOworfQpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9EZWZl cnJlZEluZGV4LmgnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL0RlZmVycmVkSW5kZXguaAkyMDA4LTA2 LTA4IDA2OjUyOjUxICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL0RlZmVycmVkSW5kZXguaAky MDA4LTA3LTI1IDE4OjA3OjI0ICswMDAwCkBAIC0xMDIsNiArMTAyLDcgQEAgcHVibGljOgogCURJ Tm9kZSoJCQlmaW5kTWluVmFsdWUodm9pZCk7CiAKIAlTeW5jT2JqZWN0CQlzeW5jT2JqZWN0OwkK Kwl2b2xhdGlsZSBJTlRFUkxPQ0tfVFlQRSB1c2VDb3VudDsKIAlEZWZlcnJlZEluZGV4CSpuZXh0 OwogCURlZmVycmVkSW5kZXgJKnByaW9yOwogCURlZmVycmVkSW5kZXgJKm5leHRJblRyYW5zYWN0 aW9uOwpAQCAtMTIzLDYgKzEyNCw4IEBAIHB1YmxpYzoKIAl1aW50NjQJCQl2aXJ0dWFsT2Zmc2V0 OwkJLy8gdmlydHVhbCBvZmZzZXQgaW50byB0aGUgc2VyaWFsIGxvZyB3aGVyZSB0aGlzIERJIHdh cyBmbHVzaGVkLgogCXVpbnQ2NAkJCXZpcnR1YWxPZmZzZXRBdEVuZDsKIAlTZXJpYWxMb2dXaW5k b3cJKndpbmRvdzsKKwl2b2lkCQkJYWRkUmVmKCk7CisJdm9pZAkJCXJlbGVhc2VSZWYoKTsKIH07 CiAKICNlbmRpZgoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL0dvcGhlci5jcHAn Ci0tLSBhL3N0b3JhZ2UvZmFsY29uL0dvcGhlci5jcHAJMjAwOC0wNy0wOSAxOToyMzoyMyArMDAw MAorKysgYi9zdG9yYWdlL2ZhbGNvbi9Hb3BoZXIuY3BwCTIwMDgtMDctMTUgMTg6NTc6MjcgKzAw MDAKQEAgLTM5LDExICszOSwxMSBAQCB2b2lkIEdvcGhlcjo6Z29waGVyVGhyZWFkKHZvaWQqIGFy ZykKIAogdm9pZCBHb3BoZXI6OmdvcGhlclRocmVhZCh2b2lkKQogewotCVN5bmMgZGVhZE1hbigm bG9nLT5zeW5jR29waGVyLCAiR29waGVyOjpnb3BoZXJUaHJlYWQiKTsKKwlTeW5jIGRlYWRNYW4o JmxvZy0+c3luY0dvcGhlciwgIkdvcGhlcjo6Z29waGVyVGhyZWFkKDEpIik7CiAJZGVhZE1hbi5s b2NrKFNoYXJlZCk7CiAJd29ya2VyVGhyZWFkID0gVGhyZWFkOjpnZXRUaHJlYWQoIkdvcGhlcjo6 Z29waGVyVGhyZWFkIik7CiAJYWN0aXZlID0gdHJ1ZTsKLQlTeW5jIHN5bmNQZW5kaW5nICgmbG9n LT5wZW5kaW5nLnN5bmNPYmplY3QsICJHb3BoZXI6OmdvcGhlclRocmVhZCBwZW5kaW5nIik7CisJ U3luYyBzeW5jUGVuZGluZyAoJmxvZy0+cGVuZGluZy5zeW5jT2JqZWN0LCAiR29waGVyOjpnb3Bo ZXJUaHJlYWQoMikiKTsKIAlzeW5jUGVuZGluZy5sb2NrKEV4Y2x1c2l2ZSk7CiAJCiAJd2hpbGUg KCF3b3JrZXJUaHJlYWQtPnNodXRkb3duSW5Qcm9ncmVzcyAmJiAhbG9nLT5maW5pc2hpbmcpCgo9 PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vSU8uY3BwJwotLS0gYS9zdG9yYWdlL2Zh bGNvbi9JTy5jcHAJMjAwOC0wNy0wOCAyMTozNjozNCArMDAwMAorKysgYi9zdG9yYWdlL2ZhbGNv bi9JTy5jcHAJMjAwOC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtMTMzLDYgKzEzMyw3IEBAIElP OjpJTygpCiAJZm9yY2VGc3luYyA9IHRydWU7CiAJZmF0YWxFcnJvciA9IGZhbHNlOwogCW1lbXNl dCh3cml0ZVR5cGVzLCAwLCBzaXplb2Yod3JpdGVUeXBlcykpOworCXN5bmNPYmplY3Quc2V0TmFt ZSgiSU86OnN5bmNPYmplY3QiKTsKIH0KIAogSU86On5JTygpCkBAIC0xODQsNyArMTg1LDcgQEAg Ym9vbCBJTzo6b3BlbkZpbGUoY29uc3QgY2hhciAqIG5hbWUsIGJvbwogCXJldHVybiBmaWxlSWQg IT0gLTE7CiB9CiAKLWJvb2wgSU86OmNyZWF0ZUZpbGUoY29uc3QgY2hhciAqbmFtZSwgdWludDY0 IGluaXRpYWxBbGxvY2F0aW9uKQorYm9vbCBJTzo6Y3JlYXRlRmlsZShjb25zdCBjaGFyICpuYW1l KQogewogCUxvZzo6ZGVidWcoIklPOjpjcmVhdGVGaWxlOiBjcmVhdGluZyBmaWxlIFwiJXNcIlxu IiwgbmFtZSk7CiAKQEAgLTIxOCwyNiArMjE5LDYgQEAgYm9vbCBJTzo6Y3JlYXRlRmlsZShjb25z dCBjaGFyICpuYW1lLCB1aQogI2VuZGlmCiAjZW5kaWYKIAotCWlmIChpbml0aWFsQWxsb2NhdGlv bikKLQkJewotCQlVQ0hBUiAqcmF3ID0gbmV3IFVDSEFSWzgxOTIgKiAyNTddOwotCQlVQ0hBUiAq YWxpZ25lZCA9IChVQ0hBUiopICgoKFVJUFRSKSByYXcgKyA4MTkxKSAvIDgxOTIgKiA4MTkyKTsK LQkJdWludCBzaXplID0gODE5MiAqIDI1NjsKLQkJbWVtc2V0KGFsaWduZWQsIDAsIHNpemUpOwot CQl1aW50NjQgb2Zmc2V0ID0gMDsKLQkJCi0JCWZvciAodWludDY0IHJlbWFpbmluZyA9IGluaXRp YWxBbGxvY2F0aW9uOyByZW1haW5pbmc7KQotCQkJewotCQkJdWludCBuID0gKGludCkgTUlOKHJl bWFpbmluZywgc2l6ZSk7Ci0JCQl3cml0ZShvZmZzZXQsIG4sIGFsaWduZWQpOwotCQkJb2Zmc2V0 ICs9IG47Ci0JCQlyZW1haW5pbmcgLT0gbjsKLQkJCX0KLQkJCi0JCWRlbGV0ZSBbXSByYXc7Ci0J CXN5bmMoKTsKLQkJfQotCiAJcmV0dXJuIGZpbGVJZCAhPSAtMTsKIH0KIAoKPT09IG1vZGlmaWVk IGZpbGUgJ3N0b3JhZ2UvZmFsY29uL0lPeC5oJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9JT3guaAky MDA4LTA3LTA3IDE0OjAwOjQ1ICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL0lPeC5oCTIwMDgt MDctMTggMDg6MTU6NTQgKzAwMDAKQEAgLTU0LDggKzU0LDggQEAgcHVibGljOgogCXZvaWQJd3Jp dGVIZWFkZXIgKEhkciAqaGVhZGVyKTsKIAlpbnQJCXJlYWQoaW50IGxlbmd0aCwgVUNIQVIgKmJ1 ZmZlcik7CiAJdm9pZAl3cml0ZSh1aW50MzIgbGVuZ3RoLCBjb25zdCBVQ0hBUiAqZGF0YSk7Ci0J Ym9vbAlkb2VzRmlsZUV4aXN0KGNvbnN0IGNoYXIgKmZpbGVOYW1lKTsKLQlpbnQJCWZpbGVTdGF0 KGNvbnN0IGNoYXIgKmZpbGVOYW1lLCBzdHJ1Y3Qgc3RhdCAqc3RhdHMgPSBOVUxMLCBpbnQgKmVy cm51bSA9IE5VTEwpOworCXN0YXRpYyBib29sCWRvZXNGaWxlRXhpc3QoY29uc3QgY2hhciAqZmls ZU5hbWUpOworCXN0YXRpYyBpbnQJZmlsZVN0YXQoY29uc3QgY2hhciAqZmlsZU5hbWUsIHN0cnVj dCBzdGF0ICpzdGF0cyA9IE5VTEwsIGludCAqZXJybnVtID0gTlVMTCk7CiAJdm9pZAlkZWNsYXJl RmF0YWxFcnJvcigpOwogCXZvaWQJc2VlayAoaW50IHBhZ2VOdW1iZXIpOwogCXZvaWQJY2xvc2VG aWxlKCk7CkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKIAl2b2lkCXdyaXRlUGFnZSAoQmRiICpi dWZmZXIsIGludCB0eXBlKTsKIAl2b2lkCXdyaXRlUGFnZXMoaW50MzIgcGFnZU51bWJlciwgaW50 IGxlbmd0aCwgY29uc3QgVUNIQVIqIGRhdGEsIGludCB0eXBlKTsKIAl2b2lkCXJlYWRQYWdlIChC ZGIgKnBhZ2UpOwotCWJvb2wJY3JlYXRlRmlsZSAoY29uc3QgY2hhciAqbmFtZSwgdWludDY0IGlu aXRpYWxBbGxvY2F0aW9uKTsKKwlib29sCWNyZWF0ZUZpbGUgKGNvbnN0IGNoYXIgKm5hbWUpOwog CWJvb2wJb3BlbkZpbGUgKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgcmVhZE9ubHkpOwogCXZvaWQJ bG9uZ1NlZWsoaW50NjQgb2Zmc2V0KTsKIAl2b2lkCXJlYWQoaW50NjQgb2Zmc2V0LCBpbnQgbGVu Z3RoLCBVQ0hBUiogYnVmZmVyKTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9J bmRleC5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL0luZGV4LmNwcAkyMDA4LTA1LTA3IDIyOjM3 OjE4ICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL0luZGV4LmNwcAkyMDA4LTA3LTI1IDE4OjA3 OjI0ICswMDAwCkBAIC0xMDcsNiArMTA3LDEwIEBAIHZvaWQgSW5kZXg6OmluaXQoVGFibGUgKnRi bCwgY29uc3QgY2hhciAKIAlESUhhc2hUYWJsZSA9IE5VTEw7CiAJRElIYXNoVGFibGVDb3VudHMg PSAgMDsKIAlESUhhc2hUYWJsZVNsb3RzVXNlZCA9ICAwOworCisJc3luY0RJSGFzaC5zZXROYW1l KCJJbmRleDo6c3luY0RJSGFzaCIpOworCXN5bmNVbmlxdWUuc2V0TmFtZSgiSW5kZXg6OnN5bmNV bmlxdWUiKTsKKwlkZWZlcnJlZEluZGV4ZXMuc3luY09iamVjdC5zZXROYW1lKCJJbmRleDo6ZGVm ZXJyZWRJbmRleGVzLnN5bmNPYmplY3QiKTsKIH0KIAogSW5kZXg6On5JbmRleCgpCkBAIC0yMjcs NyArMjMxLDcgQEAgRGVmZXJyZWRJbmRleCAqSW5kZXg6OmdldERlZmVycmVkSW5kZXgoVAogCiAJ aWYgKGRlZmVycmVkSW5kZXhlcy5jb3VudCA8IHRyYW5zYWN0aW9uLT5kZWZlcnJlZEluZGV4Q291 bnQpCiAJCXsKLQkJU3luYyBzeW5jKCZkZWZlcnJlZEluZGV4ZXMuc3luY09iamVjdCwgIkluZGV4 OjppbnNlcnQiKTsKKwkJU3luYyBzeW5jKCZkZWZlcnJlZEluZGV4ZXMuc3luY09iamVjdCwgIklu ZGV4OjpnZXREZWZlcnJlZEluZGV4KDEpIik7CiAJCXN5bmMubG9jayhTaGFyZWQpOwogCQlmb3Ig KGRlZmVycmVkSW5kZXggPSBkZWZlcnJlZEluZGV4ZXMuZmlyc3Q7IAogCQkJIGRlZmVycmVkSW5k ZXg7IApAQCAtMjcwLDcgKzI3NCw3IEBAIERlZmVycmVkSW5kZXggKkluZGV4OjpnZXREZWZlcnJl ZEluZGV4KFQKIAogCS8vIE1ha2UgYSBuZXcgb25lIGFuZCBhdHRhY2ggdG8gSW5kZXggYW5kIFRy YW5zYWN0aW9uLgogCi0JU3luYyBzeW5jKCZkZWZlcnJlZEluZGV4ZXMuc3luY09iamVjdCwgIklu ZGV4OjppbnNlcnQiKTsKKwlTeW5jIHN5bmMoJmRlZmVycmVkSW5kZXhlcy5zeW5jT2JqZWN0LCAi SW5kZXg6OmdldERlZmVycmVkSW5kZXgoMikiKTsKIAlkZWZlcnJlZEluZGV4ID0gbmV3IERlZmVy cmVkSW5kZXgodGhpcywgdHJhbnNhY3Rpb24pOwogCXN5bmMubG9jayhFeGNsdXNpdmUpOwogCWRl ZmVycmVkSW5kZXhlcy5hcHBlbmQoZGVmZXJyZWRJbmRleCk7CkBAIC01MTAsMTIgKzUxNCwxNCBA QCBJbmRleFdhbGtlciogSW5kZXg6OnBvc2l0aW9uSW5kZXgoSW5kZXhLCiAJCWZvciAoRGVmZXJy ZWRJbmRleCAqZGVmZXJyZWRJbmRleCA9IGRlZmVycmVkSW5kZXhlcy5maXJzdDsgZGVmZXJyZWRJ bmRleDsgZGVmZXJyZWRJbmRleCA9IGRlZmVycmVkSW5kZXgtPm5leHQpCiAJCQlpZiAodHJhbnNh Y3Rpb24tPnZpc2libGUoZGVmZXJyZWRJbmRleC0+dHJhbnNhY3Rpb24sIGRlZmVycmVkSW5kZXgt PnRyYW5zYWN0aW9uSWQsIEZPUl9XUklUSU5HKSkKIAkJCQl7CisJCQkJZGVmZXJyZWRJbmRleC0+ YWRkUmVmKCk7CisKIAkJCQlpZiAoIWluZGV4V2Fsa2VyKQogCQkJCQl7CiAJCQkJCWluZGV4V2Fs a2VyID0gbmV3IEluZGV4V2Fsa2VyKHRoaXMsIHRyYW5zYWN0aW9uLCBzZWFyY2hGbGFncyk7CiAJ CQkJCWluZGV4V2Fsa2VyLT5hZGRXYWxrZXIod2Fsa0luZGV4KTsKIAkJCQkJfQotCQkJCQorCiAJ CQkJV2Fsa0RlZmVycmVkICp3YWxrRGVmZXJyZWQgPSBuZXcgV2Fsa0RlZmVycmVkKGRlZmVycmVk SW5kZXgsIHRyYW5zYWN0aW9uLCBzZWFyY2hGbGFncywgJndhbGtJbmRleC0+bG93ZXJCb3VuZCwg JndhbGtJbmRleC0+dXBwZXJCb3VuZCk7CiAJCQkJaW5kZXhXYWxrZXItPmFkZFdhbGtlcih3YWxr RGVmZXJyZWQpOwogCQkJCX0KQEAgLTgzNSw3ICs4NDEsNyBAQCBVQ0hBUiBJbmRleDo6Z2V0UGFk Qnl0ZSh2b2lkKQogCiB2b2lkIEluZGV4OjpkZXRhY2hEZWZlcnJlZEluZGV4KERlZmVycmVkSW5k ZXggKmRlZmVycmVkSW5kZXgpCiB7Ci0JU3luYyBzeW5jKCZkZWZlcnJlZEluZGV4ZXMuc3luY09i amVjdCwgIkluZGV4OjpkZXRhY2hEZWZlcnJlZEluZGV4Iik7CisJU3luYyBzeW5jKCZkZWZlcnJl ZEluZGV4ZXMuc3luY09iamVjdCwgIkluZGV4OjpkZXRhY2hEZWZlcnJlZEluZGV4KDEpIik7CiAJ c3luYy5sb2NrKEV4Y2x1c2l2ZSk7CiAJZGVmZXJyZWRJbmRleGVzLnJlbW92ZShkZWZlcnJlZElu ZGV4KTsKIAlzeW5jLnVubG9jaygpOwpAQCAtODQzLDkgKzg0OSw5IEBAIHZvaWQgSW5kZXg6OmRl dGFjaERlZmVycmVkSW5kZXgoRGVmZXJyZWQKIAlpZiAoICAgKGRhdGFiYXNlLT5jb25maWd1cmF0 aW9uLT51c2VEZWZlcnJlZEluZGV4SGFzaCkKIAkJJiYgKElOREVYX0lTX1VOSVFVRSh0eXBlKSkp CiAJCXsKLQkJU3luYyBzeW5jSGFzaCgmc3luY0RJSGFzaCwgIkluZGV4OjpkZXRhY2hEZWZlcnJl ZEluZGV4Iik7CisJCVN5bmMgc3luY0hhc2goJnN5bmNESUhhc2gsICJJbmRleDo6ZGV0YWNoRGVm ZXJyZWRJbmRleCgyKSIpOwogCQlzeW5jSGFzaC5sb2NrKEV4Y2x1c2l2ZSk7Ci0JCVN5bmMgc3lu Y0RJKCZkZWZlcnJlZEluZGV4LT5zeW5jT2JqZWN0LCAiSW5kZXg6OmRldGFjaERlZmVycmVkSW5k ZXgiKTsKKwkJU3luYyBzeW5jREkoJmRlZmVycmVkSW5kZXgtPnN5bmNPYmplY3QsICJJbmRleDo6 ZGV0YWNoRGVmZXJyZWRJbmRleCgzKSIpOwogCQlzeW5jREkubG9jayhFeGNsdXNpdmUpOwogCiAJ CURlZmVycmVkSW5kZXhXYWxrZXIgd2Fsa2VyKGRlZmVycmVkSW5kZXgsIE5VTEwpOwoKPT09IG1v ZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL0luZGV4V2Fsa2VyLmNwcCcKLS0tIGEvc3RvcmFn ZS9mYWxjb24vSW5kZXhXYWxrZXIuY3BwCTIwMDgtMDctMTQgMTY6NTM6NTEgKzAwMDAKKysrIGIv c3RvcmFnZS9mYWxjb24vSW5kZXhXYWxrZXIuY3BwCTIwMDgtMDctMjkgMTE6MTI6MzQgKzAwMDAK QEAgLTM5LDYgKzM5LDggQEAgSW5kZXhXYWxrZXI6OkluZGV4V2Fsa2VyKEluZGV4ICppZHgsIFRy YQogCWJhbGFuY2UgPSAwOwogCWhpZ2hlciA9IE5VTEw7CiAJbG93ZXIgPSBOVUxMOworCWxhc3RS ZWNvcmROdW1iZXIgPSAwOworCWZpcnN0UmVjb3JkID0gdHJ1ZTsKIH0KIAogSW5kZXhXYWxrZXI6 On5JbmRleFdhbGtlcih2b2lkKQpAQCAtMTI0LDYgKzEyNiwxOCBAQCBSZWNvcmQqIEluZGV4V2Fs a2VyOjpnZXROZXh0KGJvb2wgbG9ja0ZvCiAKIFJlY29yZCogSW5kZXhXYWxrZXI6OmdldFZhbGlk YXRlZFJlY29yZChpbnQzMiByZWNvcmRJZCwgYm9vbCBsb2NrRm9yVXBkYXRlKQogeworCS8vIElm IHRoaXMgaXMgdGhlIHNhbWUgcmVjb3JkSWQgYXMgdGhlIGxhc3QgcmVjb3JkIHdlIHJldHVybmVk LAorCS8vIHRoZW4gZWl0aGVyIHdlJ3ZlIGdvdCBhIGR1cGxpY2F0ZSBjb3B5IGJlY2F1c2UgYSBk ZWZlcnJlZAorCS8vIGluZGV4IGhhcyBiZWVuIG1lcmdlZCB3aXRoIHRoZSBtYWluIGluZGV4IGFu ZCB3ZSByZWFkIGJvdGgKKwkvLyBvciB3ZSdyZSBsb29raW5nIGF0IGEgdmVyc2lvbiB3ZSBkb24n dCBjYXJlIGFib3V0LgorCisJaWYgKGZpcnN0UmVjb3JkKQorCQlmaXJzdFJlY29yZCA9IGZhbHNl OworCWVsc2UgaWYgKHJlY29yZElkID09IGxhc3RSZWNvcmROdW1iZXIpCisJCXJldHVybiBOVUxM OworCisKKwogCS8vIEZldGNoIHJlY29yZC4gIElmIGl0IGRvZXNuJ3QgZXhpc3QsIHRoYXQncyBv ay4KIAkKIAlSZWNvcmQgKmNhbmRpZGF0ZSA9IHRhYmxlLT5mZXRjaChyZWNvcmRJZCk7CkBAIC0x NjUsNyArMTc5LDExIEBAIFJlY29yZCogSW5kZXhXYWxrZXI6OmdldFZhbGlkYXRlZFJlY29yZCgK IAkJCiAJCXJldHVybiBOVUxMOwogCQl9Ci0JCisKKwkvLyByZW1lbWJlciB0aGlzIHJlY29yZAor CisJbGFzdFJlY29yZE51bWJlciA9IHJlY29yZElkOworCiAJcmV0dXJuIHJlY29yZDsKIH0KIApA QCAtMzM0LDcgKzM1Miw3IEBAIHZvaWQgSW5kZXhXYWxrZXI6OnJvdGF0ZUxlZnQodm9pZCkKIAog CXJvb3QtPmxvd2VyID0gdGhpczsKIAliYWxhbmNlIC09ICgxICsgTUFYKHJvb3QtPmJhbGFuY2Us IDApKTsKLQl2YWxpZGF0ZSAoKTsKKy8vCXZhbGlkYXRlICgpOwogCXJvb3QtPmJhbGFuY2UgLT0g KDEgLSBNSU4oYmFsYW5jZSwgMCkpOwogCVJFU0VUX1BBUkVOVChyb290KTsKIAlyb290LT5wYXJl bnQgPSBwYXJlbnQ7CkBAIC0zNjMsNyArMzgxLDcgQEAgdm9pZCBJbmRleFdhbGtlcjo6cm90YXRl UmlnaHQodm9pZCkKIAlyb290LT5oaWdoZXIgPSB0aGlzOwogCWJhbGFuY2UgKz0gKDEgLSBNSU4o cm9vdC0+YmFsYW5jZSwgMCkpOwogCi0JdmFsaWRhdGUgKCk7CisvLwl2YWxpZGF0ZSAoKTsKIAly b290LT5iYWxhbmNlICs9ICgxICsgTUFYKGJhbGFuY2UsIDApKTsKIAlSRVNFVF9QQVJFTlQocm9v dCk7CiAJcm9vdC0+cGFyZW50ID0gcGFyZW50OwpAQCAtNDU0LDcgKzQ3Miw3IEBAIHZvaWQgSW5k ZXhXYWxrZXI6OnJlbW92ZSh2b2lkKQogCQkJewogCQkJcGFyZW50LT5oaWdoZXIgPSBuZXh0Owog CQkJcGFyZW50LT5yZWJhbGFuY2VVcHdhcmQoLTEpOwotICAgICAgICAgICAgfQkKKwkJCX0JCiAJ CQogCQlyZXR1cm47CQogCQl9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vSW5k ZXhXYWxrZXIuaCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vSW5kZXhXYWxrZXIuaAkyMDA4LTA3LTEy IDIxOjAxOjA0ICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL0luZGV4V2Fsa2VyLmgJMjAwOC0w Ny0yOCAxNDozMToyMCArMDAwMApAQCAtNTcsOSArNTcsMTEgQEAgcHVibGljOgogCVVDSEFSCQkJ KmtleTsKIAl1aW50CQkJa2V5TGVuZ3RoOwogCWludDMyCQkJcmVjb3JkTnVtYmVyOworCWludDMy CQkJbGFzdFJlY29yZE51bWJlcjsKIAlpbnQJCQkJYmFsYW5jZTsKIAlpbnQJCQkJc2VhcmNoRmxh Z3M7CiAJYm9vbAkJCWZpcnN0OworCWJvb2wJCQlmaXJzdFJlY29yZDsKIH07CiAKICNlbmRpZgoK PT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL0ludmVyc2lvbi5jcHAnCi0tLSBhL3N0 b3JhZ2UvZmFsY29uL0ludmVyc2lvbi5jcHAJMjAwOC0wMi0yNiAyMDoxODozMyArMDAwMAorKysg Yi9zdG9yYWdlL2ZhbGNvbi9JbnZlcnNpb24uY3BwCTIwMDgtMDctMjQgMDg6NDU6MDMgKzAwMDAK QEAgLTYxLDYgKzYxLDcgQEAgSW52ZXJzaW9uOjpJbnZlcnNpb24oRGJiICpkYikKIAlydW5zID0g MDsKIAlpbnNlcnRpbmcgPSB0cnVlOwogCXN0YXRlID0gMDsKKwlzeW5jT2JqZWN0LnNldE5hbWUo IkludmVyc2lvbjo6c3luY09iamVjdCIpOwogfQogCiBJbnZlcnNpb246On5JbnZlcnNpb24oKQoK PT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL0xpY2Vuc2VNYW5hZ2VyLmNwcCcKLS0t IGEvc3RvcmFnZS9mYWxjb24vTGljZW5zZU1hbmFnZXIuY3BwCTIwMDgtMDMtMDMgMTg6NDA6MTcg KzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vTGljZW5zZU1hbmFnZXIuY3BwCTIwMDgtMDctMTUg MTg6NTc6MjcgKzAwMDAKQEAgLTEzMCw3ICsxMzAsNyBAQCB2b2lkIExpY2Vuc2VNYW5hZ2VyOjpp bml0aWFsaXplKCkKIExpY2Vuc2VQcm9kdWN0KiBMaWNlbnNlTWFuYWdlcjo6Z2V0UHJvZHVjdChj b25zdCBjaGFyICpuYW1lKQogewogCWludCBzbG90ID0gSlN0cmluZzo6aGFzaCAobmFtZSwgSEFT SF9TSVpFKTsKLSAgICBMaWNlbnNlUHJvZHVjdCAqcHJvZHVjdDsKKwlMaWNlbnNlUHJvZHVjdCAq cHJvZHVjdDsKIAogCWZvciAocHJvZHVjdCA9IGhhc2hUYWJsZSBbc2xvdF07IHByb2R1Y3Q7IHBy b2R1Y3QtPmNvbGxpc2lvbikKIAkJaWYgKHByb2R1Y3QtPnByb2R1Y3QuZXF1YWxzTm9DYXNlIChu YW1lKSkKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9NYWtlZmlsZS5hbScKLS0t IGEvc3RvcmFnZS9mYWxjb24vTWFrZWZpbGUuYW0JMjAwOC0wNy0xOSAwMzowMzozOSArMDAwMAor KysgYi9zdG9yYWdlL2ZhbGNvbi9NYWtlZmlsZS5hbQkyMDA4LTA4LTA3IDE0OjE5OjU0ICswMDAw CkBAIC0yMiw5ICsyMiw4IEBAIERFRlM9IEBERUZTQCBcCiAgICAgICAtRF9SRUVOVFJBTlQgLURf UFRIUkVBRFMgLURGQUxDT05EQiAtRFNUT1JBR0VfRU5HSU5FIC1ETkFNRVNQQUNFPU5mcwogCiBJ TkNMVURFUz0gLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgLUkkKHRvcF9idWlsZGRpcikvaW5jbHVk ZSBcCi0JICAtSSQodG9wX3NyY2RpcikvcmVnZXggLUkkKHRvcF9zcmNkaXIpL3NxbCBcCi0JICAt SSQoc3JjZGlyKSAtSSQoc3JjZGlyKS9UcmFuc2Zvcm1MaWIgQFpMSUJfSU5DTFVERVNAIFwKLQkg IEBGQUxDT05fU1BBUkNfQVNTRU1CTFlACisJICAtSSQodG9wX3NyY2RpcikvcmVnZXggLUkkKHRv cF9zcmNkaXIpL3NxbCAtSSQoc3JjZGlyKSBcCisJICAtSSQoc3JjZGlyKS9UcmFuc2Zvcm1MaWIg QFpMSUJfSU5DTFVERVNAIEBGQUxDT05fU1BBUkNfQVNTRU1CTFlACiAKIGZhbGNvbl9oZWFkZXJz PSBBZ2VudC5oIEFsaWFzLmggQXBwbGljYXRpb24uaCBcCiAJCUFzY2lpQmxvYi5oIFwKQEAgLTM4 MSw3ICszODAsNyBAQCBub2luc3RfSEVBREVSUz0JJChmYWxjb25faGVhZGVycykgXAogCiBFWFRS QV9MVExJQlJBUklFUz0JaGFfZmFsY29uLmxhCiBwa2dsaWJfTFRMSUJSQVJJRVM9CUBwbHVnaW5f ZmFsY29uX3NoYXJlZF90YXJnZXRACi1oYV9mYWxjb25fbGFfTERGTEFHUz0JLW1vZHVsZSAtcnBh dGggJChwa2dsaWJkaXIpIC1sc3RkYysrCitoYV9mYWxjb25fbGFfTERGTEFHUz0JLW1vZHVsZSAt cnBhdGggJChwa2dsaWJkaXIpCiBoYV9mYWxjb25fbGFfQ1hYRkxBR1M9CSQoQU1fQ1hYRkxBR1Mp IC1ETVlTUUxfRFlOQU1JQ19QTFVHSU4KIGhhX2ZhbGNvbl9sYV9DRkxBR1M9CSQoQU1fQ0ZMQUdT KSAtRE1ZU1FMX0RZTkFNSUNfUExVR0lOCiBoYV9mYWxjb25fbGFfTElCQUREPQlUcmFuc2Zvcm1M aWIvbGlidHJhbnNmb3JtLmxhCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vTWVt TWdyLmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vTWVtTWdyLmNwcAkyMDA4LTA2LTE5IDE1OjA5 OjQ1ICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL01lbU1nci5jcHAJMjAwOC0wOC0wNyAxNDox OTo1NCArMDAwMApAQCAtNTQzLDcgKzU0Myw5IEBAIHZvaWQqIE1lbU1ncjo6YWxsb2NhdGVEZWJ1 ZyhpbnQgc2l6ZSwgY28KIAkJewogCQlsZW5ndGggPSBST1VORFVQKHNpemUsIGRlZmF1bHRSb3Vu ZGluZykgKyBPRkZTRVQoTWVtQmxvY2sqLCBib2R5KSArIHNpemVvZihsb25nKTsKIAkJbWVtb3J5 ID0gKE1lbUJsb2NrKikgYWxsb2NSYXcobGVuZ3RoKTsKKwkJbWVtb3J5LT5sZW5ndGggPSBsZW5n dGg7CiAJCW1lbW9yeS0+cG9vbCA9IE5VTEw7CisJCW1lbW9yeS0+bGVuZ3RoID0gbGVuZ3RoOwog CQl9CiAKICNpZmRlZiBNRU1fREVCVUcKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNv bi9SZWNvcmRMZWFmLmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vUmVjb3JkTGVhZi5jcHAJMjAw OC0wNS0wOSAxOTo1ODo1MCArMDAwMAorKysgYi9zdG9yYWdlL2ZhbGNvbi9SZWNvcmRMZWFmLmNw cAkyMDA4LTA3LTE1IDE4OjU3OjI3ICswMDAwCkBAIC0xMTgsNyArMTE4LDcgQEAgaW50IFJlY29y ZExlYWY6OnJldGlyZVJlY29yZHMgKFRhYmxlICp0YQogewogCWludCBjb3VudCA9IDA7CiAJUmVj b3JkICoqcHRyLCAqKmVuZDsKLQlTeW5jIHN5bmMoJnN5bmNPYmplY3QsICJSZWNvcmRMZWFmOjpy ZXRpcmVSZWNvcmRzIik7CisJU3luYyBzeW5jKCZzeW5jT2JqZWN0LCAiUmVjb3JkTGVhZjo6cmV0 aXJlUmVjb3JkcygxKSIpOwogCXN5bmMubG9jayhTaGFyZWQpOwogCQogCS8vIEdldCBhIHNoYXJl ZCBsb2NrIHRvIGZpbmQgYXQgbGVhc3Qgb25lIHJlY29yZCB0byBzY2F2ZW5nZQpAQCAtMTM0LDcg KzEzNCw3IEBAIGludCBSZWNvcmRMZWFmOjpyZXRpcmVSZWNvcmRzIChUYWJsZSAqdGEKIAkJCQkr K2NvdW50OwogCQkJZWxzZSBpZiAocmVjb3JkLT5pc1ZlcnNpb24oKSkKIAkJCQl7Ci0JCQkJU3lu YyBzeW5jUHJpb3IocmVjb3JkLT5nZXRTeW5jUHJpb3IoKSwgIlJlY29yZExlYWY6OnJldGlyZVJl Y29yZHMxIik7CisJCQkJU3luYyBzeW5jUHJpb3IocmVjb3JkLT5nZXRTeW5jUHJpb3IoKSwgIlJl Y29yZExlYWY6OnJldGlyZVJlY29yZHMoMikiKTsKIAkJCQlzeW5jUHJpb3IubG9jayhTaGFyZWQp OwogCQogCQkJCWlmIChyZWNvcmQtPnNjYXZlbmdlKHJlY29yZFNjYXZlbmdlLCBTaGFyZWQpKQpA QCAtMTY3LDcgKzE2Nyw3IEBAIGludCBSZWNvcmRMZWFmOjpyZXRpcmVSZWNvcmRzIChUYWJsZSAq dGEKIAkJCXsKIAkJCWlmIChyZWNvcmQtPmlzVmVyc2lvbigpKQogCQkJCXsKLQkJCQlTeW5jIHN5 bmNQcmlvcihyZWNvcmQtPmdldFN5bmNQcmlvcigpLCAiUmVjb3JkTGVhZjo6cmV0aXJlUmVjb3Jk czIiKTsKKwkJCQlTeW5jIHN5bmNQcmlvcihyZWNvcmQtPmdldFN5bmNQcmlvcigpLCAiUmVjb3Jk TGVhZjo6cmV0aXJlUmVjb3JkcygzKSIpOwogCQkJCXN5bmNQcmlvci5sb2NrKEV4Y2x1c2l2ZSk7 CiAJCQkJCiAJCQkJaWYgKHJlY29yZC0+c2NhdmVuZ2UocmVjb3JkU2NhdmVuZ2UsIEV4Y2x1c2l2 ZSkpCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vUmVjb3JkVmVyc2lvbi5jcHAn Ci0tLSBhL3N0b3JhZ2UvZmFsY29uL1JlY29yZFZlcnNpb24uY3BwCTIwMDgtMDQtMjcgMDM6MTM6 MjMgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vUmVjb3JkVmVyc2lvbi5jcHAJMjAwOC0wNy0x NSAxODo1NzoyNyArMDAwMApAQCAtMjQ3LDcgKzI0Nyw3IEBAIHZvaWQgUmVjb3JkVmVyc2lvbjo6 c2NhdmVuZ2UoVHJhbnNJZCB0YXIKIAlpZiAoIXByaW9yVmVyc2lvbikKIAkJcmV0dXJuOwogCi0J U3luYyBzeW5jUHJpb3IoZ2V0U3luY1ByaW9yKCksICJSZWNvcmRWZXJzaW9uOjpzY2F2ZW5nZSgp LXNhdmVwb2ludCIpOworCVN5bmMgc3luY1ByaW9yKGdldFN5bmNQcmlvcigpLCAiUmVjb3JkVmVy c2lvbjo6c2NhdmVuZ2UiKTsKIAlzeW5jUHJpb3IubG9jayhTaGFyZWQpOwogCQogCVJlY29yZCAq cmVjID0gcHJpb3JWZXJzaW9uOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL1Jl Y292ZXJ5T2JqZWN0cy5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL1JlY292ZXJ5T2JqZWN0cy5j cHAJMjAwNy0wOS0yMCAxNTo0NDoyNSArMDAwMAorKysgYi9zdG9yYWdlL2ZhbGNvbi9SZWNvdmVy eU9iamVjdHMuY3BwCTIwMDgtMDctMjQgMDg6NDU6MDMgKzAwMDAKQEAgLTIzLDYgKzIzLDggQEAK ICNpbmNsdWRlICJSZWNvdmVyeU9iamVjdHMuaCIKICNpbmNsdWRlICJSZWNvdmVyeVBhZ2UuaCIK ICNpbmNsdWRlICJTZXJpYWxMb2cuaCIKKyNpbmNsdWRlICJTeW5jT2JqZWN0LmgiCisjaW5jbHVk ZSAiU3luYy5oIgogCiAjaWZkZWYgX0RFQlVHCiAjdW5kZWYgVEhJU19GSUxFCkBAIC0zOCw2ICs0 MCw4IEBAIFJlY292ZXJ5T2JqZWN0czo6UmVjb3ZlcnlPYmplY3RzKFNlcmlhbEwKIHsKIAlzZXJp YWxMb2cgPSBsb2c7CiAJbWVtc2V0KHJlY292ZXJ5T2JqZWN0cywgMCwgc2l6ZW9mKHJlY292ZXJ5 T2JqZWN0cykpOworCWZvciAoaW50IG4gPSAwOyBuIDwgUlBHX0hBU0hfU0laRTsgbisrKQorCQlz eW5jQXJyYXlbbl0uc2V0TmFtZSgiUmVjb3ZlcnlPYmplY3RzOjpzeW5jQXJyYXkiKTsKIH0KIAog UmVjb3ZlcnlPYmplY3RzOjp+UmVjb3ZlcnlPYmplY3RzKCkKQEAgLTk1LDE3ICs5OSwyNCBAQCBi b29sIFJlY292ZXJ5T2JqZWN0czo6aXNPYmplY3RBY3RpdmUoaW50CiAJcmV0dXJuIG9iamVjdC0+ cGFzczFDb3VudCA9PSBvYmplY3QtPmN1cnJlbnRDb3VudDsKIH0KIAotUmVjb3ZlcnlQYWdlKiBS ZWNvdmVyeU9iamVjdHM6OmZpbmRSZWNvdmVyeU9iamVjdChpbnQgb2JqZWN0TnVtYmVyLCBpbnQg dGFibGVTcGFjZUlkKQotewotCWludCBzbG90ID0gb2JqZWN0TnVtYmVyICUgUlBHX0hBU0hfU0la RTsKIAotCWZvciAoUmVjb3ZlcnlQYWdlICpvYmplY3QgPSByZWNvdmVyeU9iamVjdHNbc2xvdF07 IG9iamVjdDsgb2JqZWN0ID0gb2JqZWN0LT5jb2xsaXNpb24pCitzdGF0aWMgaW5saW5lIFJlY292 ZXJ5UGFnZSAqIGZpbmRJbkhhc2hCdWNrZXQoUmVjb3ZlcnlQYWdlICpoZWFkLCBpbnQgb2JqZWN0 TnVtYmVyLCBpbnQgdGFibGVTcGFjZUlkKQoreworCWZvciAoUmVjb3ZlcnlQYWdlICpvYmplY3Qg PSBoZWFkIDsgb2JqZWN0OyBvYmplY3QgPSBvYmplY3QtPmNvbGxpc2lvbikKIAkJaWYgKG9iamVj dC0+b2JqZWN0TnVtYmVyID09IG9iamVjdE51bWJlciAmJiBvYmplY3QtPnRhYmxlU3BhY2VJZCA9 PSB0YWJsZVNwYWNlSWQpCiAJCQlyZXR1cm4gb2JqZWN0OwogCiAJcmV0dXJuIE5VTEw7CiB9CiAK K1JlY292ZXJ5UGFnZSogUmVjb3ZlcnlPYmplY3RzOjpmaW5kUmVjb3ZlcnlPYmplY3QoaW50IG9i amVjdE51bWJlciwgaW50IHRhYmxlU3BhY2VJZCkKK3sKKwlpbnQgc2xvdCA9IG9iamVjdE51bWJl ciAlIFJQR19IQVNIX1NJWkU7CisJU3luYyBzeW5jKCZzeW5jQXJyYXlbc2xvdF0sICJSZWNvdmVy eU9iamVjdHM6OmZpbmRSZWNvdmVyeU9iamVjdCIpOworCXN5bmMubG9jayhTaGFyZWQpOworCXJl dHVybiBmaW5kSW5IYXNoQnVja2V0KHJlY292ZXJ5T2JqZWN0c1tzbG90XSwgb2JqZWN0TnVtYmVy LCB0YWJsZVNwYWNlSWQpOworfQorCiB2b2lkIFJlY292ZXJ5T2JqZWN0czo6c2V0QWN0aXZlKGlu dCBvYmplY3ROdW1iZXIsIGludCB0YWJsZVNwYWNlSWQpCiB7CiAJUmVjb3ZlcnlQYWdlICpvYmpl Y3QgPSBmaW5kUmVjb3ZlcnlPYmplY3Qob2JqZWN0TnVtYmVyLCB0YWJsZVNwYWNlSWQpOwpAQCAt MTI5LDEwICsxNDAsMjUgQEAgUmVjb3ZlcnlQYWdlKiBSZWNvdmVyeU9iamVjdHM6OmdldFJlY292 ZQogCWludCBzbG90ID0gb2JqZWN0TnVtYmVyICUgUlBHX0hBU0hfU0laRTsKIAlSZWNvdmVyeVBh Z2UgKm9iamVjdDsKIAotCWZvciAob2JqZWN0ID0gcmVjb3ZlcnlPYmplY3RzW3Nsb3RdOyBvYmpl Y3Q7IG9iamVjdCA9IG9iamVjdC0+Y29sbGlzaW9uKQotCQlpZiAob2JqZWN0LT5vYmplY3ROdW1i ZXIgPT0gb2JqZWN0TnVtYmVyICYmIG9iamVjdC0+dGFibGVTcGFjZUlkID09IHRhYmxlU3BhY2VJ ZCkKLQkJCXJldHVybiBvYmplY3Q7CisJU3luYyBzeW5jKCZzeW5jQXJyYXlbc2xvdF0sICJSZWNv dmVyeU9iamVjdHM6OmdldFJlY292ZXJ5T2JqZWN0Iik7CisJc3luYy5sb2NrKFNoYXJlZCk7CisJ b2JqZWN0ID0gZmluZEluSGFzaEJ1Y2tldChyZWNvdmVyeU9iamVjdHNbc2xvdF0sIG9iamVjdE51 bWJlciwgdGFibGVTcGFjZUlkKTsKKworCWlmKG9iamVjdCkKKwkJcmV0dXJuIG9iamVjdDsKKwor CS8vIE9iamVjdCBub3QgZm91bmQsIGluc2VydCAobmVlZCBleGx1c2l2ZSBsb2NrIGZvciB0aGlz KQorCXN5bmMudW5sb2NrKCk7CisJc3luYy5sb2NrKEV4Y2x1c2l2ZSk7CisKKwkvLyBXZSBuZWVk IHRvIHRyYXZlcnNlIHRoZSBjb2xsaXNpb24gbGlzdCBvbmNlIGFnYWluLiBBbm90aGVyIHRocmVh ZCAKKwkvLyBtYXkgaGF2ZSBpbnNlcnRlZCB0aGUgZW50cnkgd2hpbGUgY3VycmVudCB0aHJlYWQg d2FzIHdhaXRpbmcgCisJLy8gZm9yIGV4Y2x1c2l2ZSBsb2NrLgorCW9iamVjdCA9IGZpbmRJbkhh c2hCdWNrZXQocmVjb3ZlcnlPYmplY3RzW3Nsb3RdLCBvYmplY3ROdW1iZXIsIHRhYmxlU3BhY2VJ ZCk7CisJaWYgKG9iamVjdCkKKwkJcmV0dXJuIG9iamVjdDsKIAorCS8vIEFkZCBvYmplY3QgdG8g dGhlIHN0YXJ0IG9mIHRoZSBjb2xsaXNpb24gbGlzdAogCW9iamVjdCA9IG5ldyBSZWNvdmVyeVBh Z2Uob2JqZWN0TnVtYmVyLCB0YWJsZVNwYWNlSWQpOwogCW9iamVjdC0+Y29sbGlzaW9uID0gcmVj b3ZlcnlPYmplY3RzW3Nsb3RdOwogCXJlY292ZXJ5T2JqZWN0c1tzbG90XSA9IG9iamVjdDsKQEAg LTE0Myw3ICsxNjksOSBAQCBSZWNvdmVyeVBhZ2UqIFJlY292ZXJ5T2JqZWN0czo6Z2V0UmVjb3Zl CiB2b2lkIFJlY292ZXJ5T2JqZWN0czo6ZGVsZXRlT2JqZWN0KGludCBvYmplY3ROdW1iZXIsIGlu dCB0YWJsZVNwYWNlSWQpCiB7CiAJaW50IHNsb3QgPSBvYmplY3ROdW1iZXIgJSBSUEdfSEFTSF9T SVpFOwotCQorCVN5bmMgc3luYygmc3luY0FycmF5W3Nsb3RdLCAiUmVjb3ZlcnlPYmplY3RzOjpk ZWxldGVPYmplY3QiKTsKKwlzeW5jLmxvY2soRXhjbHVzaXZlKTsKKwogCWZvciAoUmVjb3ZlcnlQ YWdlICoqcHRyID0gcmVjb3ZlcnlPYmplY3RzICsgc2xvdCwgKm9iamVjdDsgKG9iamVjdCA9ICpw dHIpOyBwdHIgPSAmb2JqZWN0LT5jb2xsaXNpb24pCiAJCWlmIChvYmplY3QtPm9iamVjdE51bWJl ciA9PSBvYmplY3ROdW1iZXIgJiYgb2JqZWN0LT50YWJsZVNwYWNlSWQgPT0gdGFibGVTcGFjZUlk KQogCQkJewoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL1JlY292ZXJ5T2JqZWN0 cy5oJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9SZWNvdmVyeU9iamVjdHMuaAkyMDA3LTA5LTIwIDE1 OjQ0OjI1ICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL1JlY292ZXJ5T2JqZWN0cy5oCTIwMDgt MDctMTggMjE6MjQ6NTIgKzAwMDAKQEAgLTI2LDYgKzI2LDcgQEAKIAogc3RhdGljIGNvbnN0IGlu dCBSUEdfSEFTSF9TSVpFCQkJPSAxMDE7CiAKKyNpbmNsdWRlICJTeW5jT2JqZWN0LmgiCiBjbGFz cyBSZWNvdmVyeVBhZ2U7CiBjbGFzcyBTZXJpYWxMb2c7CiAKQEAgLTQ4LDYgKzQ5LDcgQEAgcHVi bGljOgogCiAJU2VyaWFsTG9nCQkJKnNlcmlhbExvZzsKIAlSZWNvdmVyeVBhZ2UJCSpyZWNvdmVy eU9iamVjdHNbUlBHX0hBU0hfU0laRV07CisJU3luY09iamVjdAkJCXN5bmNBcnJheVtSUEdfSEFT SF9TSVpFXTsKIH07CiAKICNlbmRpZiAvLyAhZGVmaW5lZChBRlhfUkVDT1ZFUllPQkpFQ1RTX0hf XzAwQzdDRTVGXzNDMzNfNDM1Q185NTIxXzlDMjc0Q0FCMDU4MV9fSU5DTFVERURfKQoKPT09IG1v ZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL1JlcG9zaXRvcnkuY3BwJwotLS0gYS9zdG9yYWdl L2ZhbGNvbi9SZXBvc2l0b3J5LmNwcAkyMDA4LTAzLTAzIDE4OjQwOjE3ICswMDAwCisrKyBiL3N0 b3JhZ2UvZmFsY29uL1JlcG9zaXRvcnkuY3BwCTIwMDgtMDctMjQgMDg6NDU6MDMgKzAwMDAKQEAg LTYxLDYgKzYxLDcgQEAgUmVwb3NpdG9yeTo6UmVwb3NpdG9yeShjb25zdCBjaGFyICpyZXBvcwog CQlzZXRSb2xsb3ZlciAocm9sbG92ZXJzKTsKIAogCW1lbXNldCAodm9sdW1lcywgMCwgc2l6ZW9m ICh2b2x1bWVzKSk7CisJc3luY09iamVjdC5zZXROYW1lKCJSZXBvc2l0b3J5OjpzeW5jT2JqZWN0 Iik7CiB9CiAKIFJlcG9zaXRvcnk6On5SZXBvc2l0b3J5KCkKQEAgLTMzOSw3ICszNDAsNyBAQCB2 b2lkIFJlcG9zaXRvcnk6OnNldFZvbHVtZShpbnQgdm9sdW1lKQogCiB2b2lkIFJlcG9zaXRvcnk6 OnNhdmUoKQogewotCVN5bmMgc3luY0RETCgmZGF0YWJhc2UtPnN5bmNTeXNEREwsICJSZXBvc2l0 b3J5Ojp1cGRhdGUiKTsKKwlTeW5jIHN5bmNEREwoJmRhdGFiYXNlLT5zeW5jU3lzRERMLCAiUmVw b3NpdG9yeTo6c2F2ZSIpOwogCXN5bmNEREwubG9jayAoU2hhcmVkKTsKIAlQcmVwYXJlZFN0YXRl bWVudCAqc3RhdGVtZW50ID0gZGF0YWJhc2UtPnByZXBhcmVTdGF0ZW1lbnQgKAogCQkicmVwbGFj ZSBpbnRvIHN5c3RlbS5yZXBvc2l0b3JpZXMgKHJlcG9zaXRvcnlOYW1lLHNjaGVtYSxzZXF1ZW5j ZU5hbWUsZmlsZW5hbWUscm9sbG92ZXJzLGN1cnJlbnRWb2x1bWUpIgoKPT09IG1vZGlmaWVkIGZp bGUgJ3N0b3JhZ2UvZmFsY29uL1JlcG9zaXRvcnlNYW5hZ2VyLmNwcCcKLS0tIGEvc3RvcmFnZS9m YWxjb24vUmVwb3NpdG9yeU1hbmFnZXIuY3BwCTIwMDctMDktMjAgMTU6NDQ6MjUgKzAwMDAKKysr IGIvc3RvcmFnZS9mYWxjb24vUmVwb3NpdG9yeU1hbmFnZXIuY3BwCTIwMDgtMDctMjQgMDg6NDU6 MDMgKzAwMDAKQEAgLTQ2LDYgKzQ2LDcgQEAgUmVwb3NpdG9yeU1hbmFnZXI6OlJlcG9zaXRvcnlN YW5hZ2VyKERhdAogewogCWRhdGFiYXNlID0gZGI7CiAJbWVtc2V0IChyZXBvc2l0b3JpZXMsIDAs IHNpemVvZiAocmVwb3NpdG9yaWVzKSk7CisJc3luY09iamVjdC5zZXROYW1lKCJSZXBvc2l0b3J5 TWFuYWdlcjo6c3luY09iamVjdCIpOwogfQogCiBSZXBvc2l0b3J5TWFuYWdlcjo6flJlcG9zaXRv cnlNYW5hZ2VyKCkKQEAgLTExMyw3ICsxMTQsNyBAQCBSZXBvc2l0b3J5KiBSZXBvc2l0b3J5TWFu YWdlcjo6Z2V0UmVwb3NpCiAKIFJlcG9zaXRvcnkqIFJlcG9zaXRvcnlNYW5hZ2VyOjpjcmVhdGVS ZXBvc2l0b3J5KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnNjaGVtYSwgU2VxdWVuY2Ug KnNlcXVlbmNlLCBjb25zdCBjaGFyICpmaWxlTmFtZSwgaW50IHZvbHVtZSwgY29uc3QgY2hhciAq cm9sbG92ZXJTdHJpbmcpCiB7Ci0JU3luYyBzeW5jICgmc3luY09iamVjdCwgIlJlcG9zaXRvcnlN YW5hZ2VyOjpnZXRSZXBvc2l0b3J5Iik7CisJU3luYyBzeW5jICgmc3luY09iamVjdCwgIlJlcG9z aXRvcnlNYW5hZ2VyOjpjcmVhdGVSZXBvc2l0b3J5Iik7CiAJc3luYy5sb2NrIChFeGNsdXNpdmUp OwogCVJlcG9zaXRvcnkgKnJlcG9zaXRvcnkgPSBmaW5kUmVwb3NpdG9yeSAoc2NoZW1hLCBkYXRh YmFzZS0+Z2V0U3ltYm9sIChuYW1lKSk7CiAKQEAgLTEzNSw3ICsxMzYsNyBAQCBSZXBvc2l0b3J5 KiBSZXBvc2l0b3J5TWFuYWdlcjo6Y3JlYXRlUmVwCiB2b2lkIFJlcG9zaXRvcnlNYW5hZ2VyOjpk ZWxldGVSZXBvc2l0b3J5KFJlcG9zaXRvcnkgKnJlcG9zaXRvcnkpCiB7CiAJcmVwb3NpdG9yeS0+ ZHJvcCgpOwotCVN5bmMgc3luYyAoJnN5bmNPYmplY3QsICJSZXBvc2l0b3J5TWFuYWdlcjo6Z2V0 UmVwb3NpdG9yeSIpOworCVN5bmMgc3luYyAoJnN5bmNPYmplY3QsICJSZXBvc2l0b3J5TWFuYWdl cjo6ZGVsZXRlUmVwb3NpdG9yeSIpOwogCXN5bmMubG9jayAoRXhjbHVzaXZlKTsKIAlpbnQgc2xv dCA9IEhBU0ggKHJlcG9zaXRvcnktPnNjaGVtYSwgUkVQT1NJVE9SWV9IQVNIX1NJWkUpOwogCgo9 PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vUmVwb3NpdG9yeVZvbHVtZS5jcHAnCi0t LSBhL3N0b3JhZ2UvZmFsY29uL1JlcG9zaXRvcnlWb2x1bWUuY3BwCTIwMDgtMDMtMjggMjI6NDQ6 MzYgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vUmVwb3NpdG9yeVZvbHVtZS5jcHAJMjAwOC0w Ny0yNCAwODo0NTowMyArMDAwMApAQCAtNzUsNiArNzUsNyBAQCBSZXBvc2l0b3J5Vm9sdW1lOjpS ZXBvc2l0b3J5Vm9sdW1lKFJlcG9zCiAJbGFzdEFjY2VzcyA9IDA7CiAJcm9vdFBhZ2UgPSAwOwog CXNlY3Rpb24gPSBOVUxMOworCXN5bmNPYmplY3Quc2V0TmFtZSgiUmVwb3NpdG9yeVZvbHVtZTo6 c3luY09iamVjdCIpOwogfQogCiBSZXBvc2l0b3J5Vm9sdW1lOjp+UmVwb3NpdG9yeVZvbHVtZSgp CkBAIC05MCw3ICs5MSw3IEBAIHZvaWQgUmVwb3NpdG9yeVZvbHVtZTo6c3RvcmVCbG9iKEJsb2JS ZWYKIAogdm9pZCBSZXBvc2l0b3J5Vm9sdW1lOjpzdG9yZUJsb2IoaW50NjQgYmxvYklkLCBTdHJl YW0gKnN0cmVhbSwgVHJhbnNhY3Rpb24gKnRyYW5zYWN0aW9uKQogewotCVN5bmMgc3luYyAoJnN5 bmNPYmplY3QsICJSZXBvc2l0b3J5Vm9sdW1lOjpnZXRCbG9iIik7CisJU3luYyBzeW5jICgmc3lu Y09iamVjdCwgIlJlcG9zaXRvcnlWb2x1bWU6OnN0b3JlQmxvYiIpOwogCXN5bmMubG9jayAoU2hh cmVkKTsKIAogCXdoaWxlICghaXNXcml0YWJsZSkKQEAgLTIxNiw3ICsyMTcsNyBAQCB2b2lkIFJl cG9zaXRvcnlWb2x1bWU6Om1ha2VXcml0YWJsZSgpCiAJaWYgKGlzV3JpdGFibGUpCiAJCXJldHVy bjsKIAotCVN5bmMgc3luYygmc3luY09iamVjdCwgIlJlcG9zaXRvcnlWb2x1bWU6OmdldEJsb2Ii KTsKKwlTeW5jIHN5bmMoJnN5bmNPYmplY3QsICJSZXBvc2l0b3J5Vm9sdW1lOjptYWtlV3JpdGFi bGUiKTsKIAlzeW5jLmxvY2soRXhjbHVzaXZlKTsKIAogCWlmIChpc1dyaXRhYmxlKQpAQCAtMjMy LDcgKzIzMyw3IEBAIHZvaWQgUmVwb3NpdG9yeVZvbHVtZTo6bWFrZVdyaXRhYmxlKCkKIHZvaWQg UmVwb3NpdG9yeVZvbHVtZTo6Y3JlYXRlKCkKIHsKIAlJTzo6Y3JlYXRlUGF0aCAoZmlsZU5hbWUp OwotCWRiYi0+Y3JlYXRlKGZpbGVOYW1lLCBkYmItPnBhZ2VTaXplLCAwLCBIZHJSZXBvc2l0b3J5 RmlsZSwgMCwgTlVMTCwgMCk7CisJZGJiLT5jcmVhdGUoZmlsZU5hbWUsIGRiYi0+cGFnZVNpemUs IDAsIEhkclJlcG9zaXRvcnlGaWxlLCAwLCBOVUxMKTsKIAlTeW5jIHN5bmNEREwoJmRhdGFiYXNl LT5zeW5jU3lzRERMLCAiUmVwb3NpdG9yeVZvbHVtZTo6Y3JlYXRlIik7CiAJVHJhbnNhY3Rpb24g KnRyYW5zYWN0aW9uID0gZGF0YWJhc2UtPmdldFN5c3RlbVRyYW5zYWN0aW9uKCk7CiAJc3luY0RE TC5sb2NrKEV4Y2x1c2l2ZSk7CkBAIC0zOTksNyArNDAwLDcgQEAgaW50NjQgUmVwb3NpdG9yeVZv bHVtZTo6Z2V0UmVwb3NpdG9yeVNpegogCiB2b2lkIFJlcG9zaXRvcnlWb2x1bWU6OmRlbGV0ZUJs b2IoaW50NjQgYmxvYklkLCBUcmFuc2FjdGlvbiAqdHJhbnNhY3Rpb24pCiB7Ci0JU3luYyBzeW5j ICgmc3luY09iamVjdCwgIlJlcG9zaXRvcnlWb2x1bWU6OmdldEJsb2IiKTsKKwlTeW5jIHN5bmMg KCZzeW5jT2JqZWN0LCAiUmVwb3NpdG9yeVZvbHVtZTo6ZGVsZXRlQmxvYiIpOwogCXN5bmMubG9j ayAoU2hhcmVkKTsKIAogCXdoaWxlICghaXNXcml0YWJsZSkKQEAgLTQ2NCw3ICs0NjUsNyBAQCB2 b2lkIFJlcG9zaXRvcnlWb2x1bWU6OnNjYXZlbmdlKCkKIAlpZiAoIWlzT3BlbiB8fCBsYXN0QWNj ZXNzICsgVElNRU9VVCA+IGRhdGFiYXNlLT50aW1lc3RhbXApCiAJCXJldHVybjsKIAotCVN5bmMg c3luYyAoJnN5bmNPYmplY3QsICJSZXBvc2l0b3J5Vm9sdW1lOjpnZXRCbG9iIik7CisJU3luYyBz eW5jICgmc3luY09iamVjdCwgIlJlcG9zaXRvcnlWb2x1bWU6OnNjYXZlbmdlIik7CiAJc3luYy5s b2NrIChFeGNsdXNpdmUpOwogCiAJaWYgKCFpc09wZW4gfHwgbGFzdEFjY2VzcyArIFRJTUVPVVQg PiBkYXRhYmFzZS0+dGltZXN0YW1wKQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29u L1Jlc3VsdFNldC5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL1Jlc3VsdFNldC5jcHAJMjAwNy0w OS0yMCAxNTo0NDoyNSArMDAwMAorKysgYi9zdG9yYWdlL2ZhbGNvbi9SZXN1bHRTZXQuY3BwCTIw MDgtMDctMjQgMDg6NDU6MDMgKzAwMDAKQEAgLTk2LDYgKzk2LDcgQEAgdm9pZCBSZXN1bHRTZXQ6 OmluaXQoaW50IGNvdW50KQogCWphdmFTdGF0ZW1lbnRDb3VudCA9IDA7CiAJY29ubmVjdGlvbiA9 IE5VTEw7CiAJZGF0YWJhc2UgPSBOVUxMOworCXN5bmNPYmplY3Quc2V0TmFtZSgiUmVzdWx0U2V0 OjpzeW5jT2JqZWN0Iik7CiB9CiAKIFJlc3VsdFNldDo6flJlc3VsdFNldCgpCgo9PT0gbW9kaWZp ZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vUm9sZS5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL1Jv bGUuY3BwCTIwMDgtMDMtMDMgMTg6NDA6MTcgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vUm9s ZS5jcHAJMjAwOC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtNDQsNiArNDQsNyBAQCBSb2xlOjpS b2xlKERhdGFiYXNlICpkYiwgY29uc3QgY2hhciogcm9sCiAJc2V0TmFtZSAocm9sZVNjaGVtYSwg cm9sZU5hbWUpOwogCXVzZUNvdW50ID0gMTsKIAltZW1zZXQgKHByaXZpbGVnZXMsIDAsIHNpemVv ZiAocHJpdmlsZWdlcykpOworCXN5bmNPYmplY3Quc2V0TmFtZSgiUm9sZTo6c3luY09iamVjdCIp OwogfQogCiBSb2xlOjp+Um9sZSgpCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24v U1FMUGFyc2UuY3BwJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9TUUxQYXJzZS5jcHAJMjAwOC0wNC0w NSAyMjowOToxNyArMDAwMAorKysgYi9zdG9yYWdlL2ZhbGNvbi9TUUxQYXJzZS5jcHAJMjAwOC0w Ny0xNyAxMzo1MjoxNyArMDAwMApAQCAtMzI5OCwyMSArMzI5OCw2IEBAIFN5bnRheCogU1FMUGFy c2U6OnBhcnNlQ3JlYXRlVGFibGVTcGFjZSgKIAogCWZvciAoOzspCiAJCXsKLQkJLyoqKgotCQlp ZiAobWF0Y2goIklOSVRJQUxfU0laRSIpKQotCQkJb3B0aW9ucy5hcHBlbmQgKG1ha2VOb2RlKG5v ZF9pbml0aWFsX3NpemUsIHBhcnNlTnVtYmVyKCkpKTsKLQkJZWxzZSBpZiAobWF0Y2ggKCJFWFRF TlRfU0laRSIpKQotCQkJb3B0aW9ucy5hcHBlbmQgKG1ha2VOb2RlKG5vZF9leHRlbnRfc2l6ZSwg cGFyc2VOdW1iZXIoKSkpOwotCQllbHNlIGlmIChtYXRjaCAoIkFVVE9FWFRFTkRfU0laRSIpKQot CQkJb3B0aW9ucy5hcHBlbmQgKG1ha2VOb2RlKG5vZF9hdXRvZXh0ZW5kX3NpemUsIHBhcnNlTnVt YmVyKCkpKTsKLQkJZWxzZSBpZiAobWF0Y2ggKCJNQVhfU0laRSIpKQotCQkJb3B0aW9ucy5hcHBl bmQgKG1ha2VOb2RlKG5vZF9tYXhfc2l6ZSwgcGFyc2VOdW1iZXIoKSkpOwotCQllbHNlIGlmICht YXRjaCAoIk5PREVHUk9VUCIpKQotCQkJb3B0aW9ucy5hcHBlbmQgKG1ha2VOb2RlKG5vZF9ub2Rl Z3JvdXAsIHBhcnNlTnVtYmVyKCkpKTsKLQkJZWxzZSBpZiAobWF0Y2ggKCJXQUlUIikpCi0JCQlv cHRpb25zLmFwcGVuZCAobWFrZU5vZGUobm9kX3dhaXQsIHBhcnNlTnVtYmVyKCkpKTsKLQkJZWxz ZQotCQkqKiovIAogCQlpZiAobWF0Y2ggKCJDT01NRU5UIikpCiAJCQlvcHRpb25zLmFwcGVuZCAo bWFrZU5vZGUobm9kX2NvbW1lbnQsIHBhcnNlUXVvdGVkU3RyaW5nKCkpKTsKIAkJZWxzZSBpZiAo bWF0Y2ggKCIsIikpCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vU1JMQ3JlYXRl VGFibGVTcGFjZS5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL1NSTENyZWF0ZVRhYmxlU3BhY2Uu Y3BwCTIwMDgtMDQtMDUgMjI6MDk6MTcgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vU1JMQ3Jl YXRlVGFibGVTcGFjZS5jcHAJMjAwOC0wNy0xNyAxMzo1MjoxNyArMDAwMApAQCAtNTIsMTQgKzUy LDYgQEAgdm9pZCBTUkxDcmVhdGVUYWJsZVNwYWNlOjphcHBlbmQoVGFibGVTcAogCXB1dEludChs ZW4pOwogCXB1dERhdGEobGVuLCAoY29uc3QgVUNIQVIqKSBwKTsKIAlwdXRJbnQodGFibGVTcGFj ZS0+dHlwZSk7Ci0JLyoqKgotCXB1dEludDY0KHRhYmxlU3BhY2UtPmluaXRpYWxTaXplKTsKLQlw dXRJbnQ2NCh0YWJsZVNwYWNlLT5leHRlbnRTaXplKTsKLQlwdXRJbnQ2NCh0YWJsZVNwYWNlLT5h dXRvZXh0ZW5kU2l6ZSk7Ci0JcHV0SW50NjQodGFibGVTcGFjZS0+bWF4U2l6ZSk7Ci0JcHV0SW50 KHRhYmxlU3BhY2UtPm5vZGVncm91cCk7Ci0JcHV0SW50KHRhYmxlU3BhY2UtPndhaXQpOwotCSoq Ki8KIAlwID0gdGFibGVTcGFjZS0+Y29tbWVudDsKIAlsZW4gPSAoaW50KXN0cmxlbihwKTsKIAlw dXRJbnQobGVuKTsKQEAgLTgxLDI3ICs3MywxMSBAQCB2b2lkIFNSTENyZWF0ZVRhYmxlU3BhY2U6 OnJlYWQoKQogCQkKIAlpZiAoY29udHJvbC0+dmVyc2lvbiA+PSBzcmxWZXJzaW9uMTUpCiAJCXsK LQkJLyoqKgotCQlpbml0aWFsU2l6ZQk9IGdldEludDY0KCk7Ci0JCWV4dGVudFNpemUJPSBnZXRJ bnQ2NCgpOwotCQlhdXRvZXh0ZW5kU2l6ZT0gZ2V0SW50NjQoKTsKLQkJbWF4U2l6ZQkJPSBnZXRJ bnQ2NCgpOwotCQlub2RlZ3JvdXAJPSBnZXRJbnQoKTsKLQkJd2FpdAkJPSBnZXRJbnQoKTsKLQkJ KioqLwogCQljb21tZW50TGVuZ3RoID0gZ2V0SW50KCk7CiAJCWNvbW1lbnQgPSAoY29uc3QgY2hh ciopIGdldERhdGEoY29tbWVudExlbmd0aCk7CiAJCX0KIAllbHNlCiAJCXsKLQkJLyoqKgotCQlp bml0aWFsU2l6ZQk9IDA7Ci0JCWV4dGVudFNpemUJPSAwOwotCQlhdXRvZXh0ZW5kU2l6ZT0gMDsK LQkJbWF4U2l6ZQkJPSAwOwotCQlub2RlZ3JvdXAJPSAwOwotCQl3YWl0CQk9IDA7Ci0JCSoqKi8K IAkJY29tbWVudExlbmd0aCA9IDA7CiAJCWNvbW1lbnQgPSBOVUxMOwogCQl9CkBAIC0xMTAsMTcg Kzg2LDcgQEAgdm9pZCBTUkxDcmVhdGVUYWJsZVNwYWNlOjpyZWFkKCkKIHZvaWQgU1JMQ3JlYXRl VGFibGVTcGFjZTo6cGFzczEoKQogewogCVRhYmxlU3BhY2VJbml0IHRzSW5pdDsKLQkKLQkvKioq Ci0JdHNJbml0LmluaXRpYWxTaXplCT0gaW5pdGlhbFNpemU7Ci0JdHNJbml0LmV4dGVudFNpemUJ PSBleHRlbnRTaXplOwotCXRzSW5pdC5hdXRvZXh0ZW5kU2l6ZSA9IGF1dG9leHRlbmRTaXplOwot CXRzSW5pdC5tYXhTaXplCQk9IG1heFNpemU7Ci0JdHNJbml0Lm5vZGVncm91cAk9IG5vZGVncm91 cDsKLQl0c0luaXQud2FpdAkJCT0gd2FpdDsKLQkqKiovCiAJdHNJbml0LmNvbW1lbnQJCT0gY29t bWVudDsKLQkJCiAJbG9nLT5kYXRhYmFzZS0+dGFibGVTcGFjZU1hbmFnZXItPnJlZG9DcmVhdGVU YWJsZVNwYWNlKHRhYmxlU3BhY2VJZCwgbmFtZUxlbmd0aCwgbmFtZSwgZmlsZW5hbWVMZW5ndGgs IGZpbGVuYW1lLCB0eXBlLCAmdHNJbml0KTsKIH0KIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3Jh Z2UvZmFsY29uL1NSTENyZWF0ZVRhYmxlU3BhY2UuaCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vU1JM Q3JlYXRlVGFibGVTcGFjZS5oCTIwMDgtMDQtMDUgMjI6MDk6MTcgKzAwMDAKKysrIGIvc3RvcmFn ZS9mYWxjb24vU1JMQ3JlYXRlVGFibGVTcGFjZS5oCTIwMDgtMDctMTcgMTM6NTI6MTcgKzAwMDAK QEAgLTQ4LDE0ICs0OCw2IEBAIHB1YmxpYzoKIAlpbnQJCQluYW1lTGVuZ3RoOwogCWludAkJCWZp bGVuYW1lTGVuZ3RoOwogCWludAkJCXR5cGU7Ci0JLyoqKgotCWludDY0CQlpbml0aWFsU2l6ZTsK LQlpbnQ2NAkJZXh0ZW50U2l6ZTsKLQlpbnQ2NAkJYXV0b0V4dGVuZFNpemU7Ci0JaW50NjQJCW1h eFNpemU7Ci0JaW50CQkJbm9kZWdyb3VwOwotCWludAkJCXdhaXQ7Ci0JKioqLwogCWNvbnN0IGNo YXIJKmNvbW1lbnQ7CiAJaW50CQkJY29tbWVudExlbmd0aDsKIH07Cgo9PT0gbW9kaWZpZWQgZmls ZSAnc3RvcmFnZS9mYWxjb24vU1JMRGVsZXRlSW5kZXguY3BwJwotLS0gYS9zdG9yYWdlL2ZhbGNv bi9TUkxEZWxldGVJbmRleC5jcHAJMjAwNy0xMC0xMSAxMjoxMjoxNiArMDAwMAorKysgYi9zdG9y YWdlL2ZhbGNvbi9TUkxEZWxldGVJbmRleC5jcHAJMjAwOC0wNy0xNSAxODo1NzoyNyArMDAwMApA QCAtNDQsMTAgKzQ0LDEwIEBAIFNSTERlbGV0ZUluZGV4Ojp+U1JMRGVsZXRlSW5kZXgoKQogCiB2 b2lkIFNSTERlbGV0ZUluZGV4OjphcHBlbmQoRGJiICpkYmIsIFRyYW5zSWQgdHJhbnNJZCwgaW50 IGlkLCBpbnQgaWR4VmVyc2lvbikKIHsKLQlTeW5jIHN5bmNJbmRleGVzKCZsb2ctPnN5bmNJbmRl eGVzLCAiU1JMRGVsZXRlSW5kZXg6OmFwcGVuZCIpOworCVN5bmMgc3luY0luZGV4ZXMoJmxvZy0+ c3luY0luZGV4ZXMsICJTUkxEZWxldGVJbmRleDo6YXBwZW5kKDEpIik7CiAJc3luY0luZGV4ZXMu bG9jayhFeGNsdXNpdmUpOwogCi0JU1RBUlRfUkVDT1JEKHNybERlbGV0ZUluZGV4LCAiU1JMRGVs ZXRlSW5kZXg6OmFwcGVuZCIpOworCVNUQVJUX1JFQ09SRChzcmxEZWxldGVJbmRleCwgIlNSTERl bGV0ZUluZGV4OjphcHBlbmQoMikiKTsKIAlwdXRJbnQoZGJiLT50YWJsZVNwYWNlSWQpOwogCWxv Zy0+Z2V0VHJhbnNhY3Rpb24odHJhbnNJZCk7CiAJbG9nLT5zZXRJbmRleEluYWN0aXZlKGlkLCBk YmItPnRhYmxlU3BhY2VJZCk7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vU1JM UHJlcGFyZS5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL1NSTFByZXBhcmUuY3BwCTIwMDctMTIt MDIgMjA6MTc6MjkgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vU1JMUHJlcGFyZS5jcHAJMjAw OC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtNDMsNyArNDMsNyBAQCBTUkxQcmVwYXJlOjp+U1JM UHJlcGFyZSgpCiAKIHZvaWQgU1JMUHJlcGFyZTo6YXBwZW5kKFRyYW5zSWQgdHJhbnNJZCwgaW50 IHhpZExlbmd0aCwgY29uc3QgVUNIQVIgKnhpZCkKIHsKLQlTVEFSVF9SRUNPUkQoc3JsUHJlcGFy ZSwgIiIpOworCVNUQVJUX1JFQ09SRChzcmxQcmVwYXJlLCAiU1JMUHJlcGFyZTo6YXBwZW5kIik7 CiAJcHV0SW50KHRyYW5zSWQpOwogCXB1dEludCh4aWRMZW5ndGgpOwogCXB1dERhdGEoeGlkTGVu Z3RoLCB4aWQpOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL1NSTFJvbGxiYWNr LmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vU1JMUm9sbGJhY2suY3BwCTIwMDctMDktMjAgMTU6 NDQ6MjUgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vU1JMUm9sbGJhY2suY3BwCTIwMDgtMDct MjQgMDg6NDU6MDMgKzAwMDAKQEAgLTQwLDcgKzQwLDcgQEAgU1JMUm9sbGJhY2s6On5TUkxSb2xs YmFjaygpCiAKIHZvaWQgU1JMUm9sbGJhY2s6OmFwcGVuZChUcmFuc0lkIHRyYW5zSWQsIGJvb2wg dXBkYXRlVHJhbnNhY3Rpb24pCiB7Ci0JU1RBUlRfUkVDT1JEKHNybFJvbGxiYWNrLCAiIik7CisJ U1RBUlRfUkVDT1JEKHNybFJvbGxiYWNrLCAiU1JMUm9sbGJhY2s6OmFwcGVuZCIpOwogCXB1dElu dCh0cmFuc0lkKTsKIAl1aW50NjQgY29tbWl0QmxvY2tOdW1iZXIgPSBsb2ctPm5leHRCbG9ja051 bWJlcjsKIAlTZXJpYWxMb2dUcmFuc2FjdGlvbiAqdHJhbnNhY3Rpb24gPSBsb2ctPmZpbmRUcmFu c2FjdGlvbih0cmFuc0lkKTsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9TUkxV cGRhdGVJbmRleC5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL1NSTFVwZGF0ZUluZGV4LmNwcAky MDA4LTA0LTEyIDAyOjIyOjUwICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL1NSTFVwZGF0ZUlu ZGV4LmNwcAkyMDA4LTA3LTE1IDE4OjU3OjI3ICswMDAwCkBAIC00MCw3ICs0MCw3IEBAIFNSTFVw ZGF0ZUluZGV4Ojp+U1JMVXBkYXRlSW5kZXgodm9pZCkKIAogdm9pZCBTUkxVcGRhdGVJbmRleDo6 YXBwZW5kKERlZmVycmVkSW5kZXgqIGRlZmVycmVkSW5kZXgpCiB7Ci0JU3luYyBzeW5jSW5kZXhl cygmbG9nLT5zeW5jSW5kZXhlcywgIlNSTFVwZGF0ZUluZGV4OjphcHBlbmQiKTsKKwlTeW5jIHN5 bmNJbmRleGVzKCZsb2ctPnN5bmNJbmRleGVzLCAiU1JMVXBkYXRlSW5kZXg6OmFwcGVuZCgxKSIp OwogCXN5bmNJbmRleGVzLmxvY2soU2hhcmVkKTsKIAogCVRyYW5zYWN0aW9uICp0cmFuc2FjdGlv biA9IGRlZmVycmVkSW5kZXgtPnRyYW5zYWN0aW9uOwpAQCAtNTcsNyArNTcsNyBAQCB2b2lkIFNS TFVwZGF0ZUluZGV4OjphcHBlbmQoRGVmZXJyZWRJbmRlCiAKIAlmb3IgKERJTm9kZSAqbm9kZSA9 IHdhbGtlci5uZXh0KCk7IG5vZGU7KQogCQl7Ci0JCVNUQVJUX1JFQ09SRChzcmxVcGRhdGVJbmRl eCwgIlNSTFVwZGF0ZUluZGV4OjphcHBlbmQiKTsKKwkJU1RBUlRfUkVDT1JEKHNybFVwZGF0ZUlu ZGV4LCAiU1JMVXBkYXRlSW5kZXg6OmFwcGVuZCgyKSIpOwogCQlsb2ctPnVwZGF0ZUluZGV4VXNl VmVjdG9yKGluZGV4SWQsIHRhYmxlU3BhY2VJZCwgMSk7CiAJCVNlcmlhbExvZ1RyYW5zYWN0aW9u ICpzcmxUcmFucyA9IGxvZy0+Z2V0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb24tPnRyYW5zYWN0aW9u SWQpOwogCQlzcmxUcmFucy0+c2V0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pOwoKPT09IG1vZGlm aWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL1NjaGVkdWxlci5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFs Y29uL1NjaGVkdWxlci5jcHAJMjAwOC0wMy0wNSAyMDoyODo1MyArMDAwMAorKysgYi9zdG9yYWdl L2ZhbGNvbi9TY2hlZHVsZXIuY3BwCTIwMDgtMDctMjQgMDg6NDU6MDMgKzAwMDAKQEAgLTY2LDYg KzY2LDcgQEAgU2NoZWR1bGVyOjpTY2hlZHVsZXIoRGF0YWJhc2UgKmRiKQogCWV2ZW50cyA9IE5V TEw7CiAJdXNlQ291bnQgPSAxOwogCXRocmVhZCA9IE5VTEw7CisJc3luY09iamVjdC5zZXROYW1l KCJTY2hlZHVsZXI6OnN5bmNPYmplY3QiKTsKIH0KIAogU2NoZWR1bGVyOjp+U2NoZWR1bGVyKCkK QEAgLTIxMCwxMCArMjExLDEwIEBAIHZvaWQgU2NoZWR1bGVyOjpzdGFydCgpCiAKIHZvaWQgU2No ZWR1bGVyOjp1cGRhdGVTY2hlZHVsZShjb25zdCBjaGFyICphcHBOYW1lLCBjb25zdCBjaGFyICpl dmVudE5hbWUsIFVzZXIgKnVzZXIsIGNvbnN0IGNoYXIgKnNjaGVkdWxlKQogewotCVN5bmMgc3lu Y0RETCAoJmRhdGFiYXNlLT5zeW5jU3lzRERMLCAiU2NoZWR1bGVyOjp1cGRhdGVTY2hlZHVsZSgy KSIpOworCVN5bmMgc3luY0RETCAoJmRhdGFiYXNlLT5zeW5jU3lzRERMLCAiU2NoZWR1bGVyOjp1 cGRhdGVTY2hlZHVsZSgxKSIpOwogCXN5bmNEREwubG9jayAoRXhjbHVzaXZlKTsKIAotCVN5bmMg c3luY09iaigmc3luY09iamVjdCwgIlNjaGVkdWxlcjo6dXBkYXRlU2NoZWR1bGUiKTsKKwlTeW5j IHN5bmNPYmooJnN5bmNPYmplY3QsICJTY2hlZHVsZXI6OnVwZGF0ZVNjaGVkdWxlKDIpIik7CiAJ c3luY09iai5sb2NrKEV4Y2x1c2l2ZSk7CiAKIAkvLyBEaXRjaCBvbGQgZXZlbnQKCj09PSBtb2Rp ZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9TZWN0b3JCdWZmZXIuY3BwJwotLS0gYS9zdG9yYWdl L2ZhbGNvbi9TZWN0b3JCdWZmZXIuY3BwCTIwMDgtMDctMTAgMTk6MDA6MTQgKzAwMDAKKysrIGIv c3RvcmFnZS9mYWxjb24vU2VjdG9yQnVmZmVyLmNwcAkyMDA4LTA3LTI0IDA4OjQ1OjAzICswMDAw CkBAIC0yNSw2ICsyNSw3IEBAIFNlY3RvckJ1ZmZlcjo6U2VjdG9yQnVmZmVyKCkKIHsKIAlhY3Rp dmVMZW5ndGggPSAwOwogCXNlY3Rvck51bWJlciA9IC0xOworCXN5bmNPYmplY3Quc2V0TmFtZSgi U2VjdG9yQnVmZmVyOjpzeW5jT2JqZWN0Iik7CiB9CiAKIFNlY3RvckJ1ZmZlcjo6flNlY3RvckJ1 ZmZlcih2b2lkKQoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL1NlY3RvckNhY2hl LmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vU2VjdG9yQ2FjaGUuY3BwCTIwMDgtMDYtMTcgMjE6 MDA6NDUgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vU2VjdG9yQ2FjaGUuY3BwCTIwMDgtMDct MjQgMDg6NDU6MDMgKzAwMDAKQEAgLTQ2LDYgKzQ2LDggQEAgU2VjdG9yQ2FjaGU6OlNlY3RvckNh Y2hlKGludCBudW1CdWZmZXJzLAogCQlidWZmZXItPmNhY2hlID0gdGhpczsKIAkJYnVmZmVyLT5i dWZmZXIgPSBwOwogCQl9CisKKwlzeW5jT2JqZWN0LnNldE5hbWUoIlNlY3RvckNhY2hlOjpzeW5j T2JqZWN0Iik7CiB9CiAKIFNlY3RvckNhY2hlOjp+U2VjdG9yQ2FjaGUodm9pZCkKQEAgLTU2LDcg KzU4LDcgQEAgU2VjdG9yQ2FjaGU6On5TZWN0b3JDYWNoZSh2b2lkKQogCiB2b2lkIFNlY3RvckNh Y2hlOjpyZWFkUGFnZShCZGIqIGJkYikKIHsKLQlTeW5jIHN5bmMoJnN5bmNPYmplY3QsICJTZWN0 b3JDYWNoZTo6cmVhZFBhZ2UiKTsKKwlTeW5jIHN5bmMoJnN5bmNPYmplY3QsICJTZWN0b3JDYWNo ZTo6cmVhZFBhZ2UoMSkiKTsKIAlzeW5jLmxvY2soU2hhcmVkKTsKIAlpbnQgc2VjdG9yTnVtYmVy ID0gYmRiLT5wYWdlTnVtYmVyIC8gcGFnZXNQZXJTZWN0b3I7CiAJaW50IHNsb3QgPSBzZWN0b3JO dW1iZXIgJSBTRUNUT1JfSEFTSF9TSVpFOwpAQCAtODksNyArOTEsNyBAQCB2b2lkIFNlY3RvckNh Y2hlOjpyZWFkUGFnZShCZGIqIGJkYikKIAkKIAlidWZmZXIgPSBuZXh0QnVmZmVyOwogCW5leHRC dWZmZXIgPSBidWZmZXItPm5leHQ7Ci0JU3luYyBzeW5jQnVmZmVyKCZidWZmZXItPnN5bmNPYmpl Y3QsICJTZWN0b3JDYWNoZTo6cmVhZFBhZ2UoMykiKTsKKwlTeW5jIHN5bmNCdWZmZXIoJmJ1ZmZl ci0+c3luY09iamVjdCwgIlNlY3RvckNhY2hlOjpyZWFkUGFnZSg0KSIpOwogCXN5bmNCdWZmZXIu bG9jayhFeGNsdXNpdmUpOwogCQogCWlmIChidWZmZXItPnNlY3Rvck51bWJlciA+PSAwKQpAQCAt MTExLDcgKzExMyw3IEBAIHZvaWQgU2VjdG9yQ2FjaGU6OnJlYWRQYWdlKEJkYiogYmRiKQogCiB2 b2lkIFNlY3RvckNhY2hlOjp3cml0ZVBhZ2UoQmRiKiBiZGIpCiB7Ci0JU3luYyBzeW5jKCZzeW5j T2JqZWN0LCAiU2VjdG9yQ2FjaGU6OndyaXRlUGFnZSIpOworCVN5bmMgc3luYygmc3luY09iamVj dCwgIlNlY3RvckNhY2hlOjp3cml0ZVBhZ2UoMSkiKTsKIAlzeW5jLmxvY2soU2hhcmVkKTsKIAlp bnQgc2VjdG9yTnVtYmVyID0gYmRiLT5wYWdlTnVtYmVyIC8gcGFnZXNQZXJTZWN0b3I7CiAJaW50 IHNsb3QgPSBzZWN0b3JOdW1iZXIgJSBTRUNUT1JfSEFTSF9TSVpFOwoKPT09IG1vZGlmaWVkIGZp bGUgJ3N0b3JhZ2UvZmFsY29uL1NlcXVlbmNlTWFuYWdlci5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFs Y29uL1NlcXVlbmNlTWFuYWdlci5jcHAJMjAwOC0wMy0wMyAxODo0MDoxNyArMDAwMAorKysgYi9z dG9yYWdlL2ZhbGNvbi9TZXF1ZW5jZU1hbmFnZXIuY3BwCTIwMDgtMDctMjQgMDg6NDU6MDMgKzAw MDAKQEAgLTU0LDYgKzU0LDcgQEAgU2VxdWVuY2VNYW5hZ2VyOjpTZXF1ZW5jZU1hbmFnZXIoRGF0 YWJhcwogewogCWRhdGFiYXNlID0gZGI7CiAJbWVtc2V0IChzZXF1ZW5jZXMsIDAsIHNpemVvZiAo c2VxdWVuY2VzKSk7CisJc3luY09iamVjdC5zZXROYW1lKCJTZXF1ZW5jZU1hbmFnZXI6OnN5bmNP YmplY3QiKTsKIH0KIAogU2VxdWVuY2VNYW5hZ2VyOjp+U2VxdWVuY2VNYW5hZ2VyKCkKCj09PSBt b2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9TZXJpYWxMb2cuY3BwJwotLS0gYS9zdG9yYWdl L2ZhbGNvbi9TZXJpYWxMb2cuY3BwCTIwMDgtMDctMDkgMTk6MjM6MjMgKzAwMDAKKysrIGIvc3Rv cmFnZS9mYWxjb24vU2VyaWFsTG9nLmNwcAkyMDA4LTA3LTI0IDA4OjQ1OjAzICswMDAwCkBAIC0x MjUsNyArMTI1LDkgQEAgU2VyaWFsTG9nOjpTZXJpYWxMb2coRGF0YWJhc2UgKmRiLCBKU3RyaQog CXN5bmNJbmRleGVzLnNldE5hbWUoIlNlcmlhbExvZzo6c3luY0luZGV4ZXMiKTsKIAlzeW5jR29w aGVyLnNldE5hbWUoIlNlcmlhbExvZzo6c3luY0dvcGhlciIpOwogCXN5bmNVcGRhdGVTdGFsbC5z ZXROYW1lKCJTZXJpYWxMb2c6OnN5bmNVcGRhdGVTdGFsbCIpOwotCXBlbmRpbmcuc3luY09iamVj dC5zZXROYW1lKCJTZXJpYWxMb2c6OnBlbmRpbmcgdHJhbnNhY3Rpb25zIik7CisJcGVuZGluZy5z eW5jT2JqZWN0LnNldE5hbWUoIlNlcmlhbExvZzo6cGVuZGluZy5zeW5jT2JqZWN0Iik7CisJaW5h Y3Rpb25zLnN5bmNPYmplY3Quc2V0TmFtZSgiU2VyaWFsTG9nOjppbmFjdGlvbnMuc3luY09iamVj dCIpOworCXJ1bm5pbmcuc3luY09iamVjdC5zZXROYW1lKCJTZXJpYWxMb2c6OnJ1bm5pbmcuc3lu Y09iamVjdCIpOwogCWdvcGhlcnMgPSBOVUxMOwogCXdhbnRUb1NlcmlhbGl6ZUdvcGhlcnMgPSAw OwogCXNlcmlhbGl6ZUdvcGhlcnMgPSAwOwpAQCAtMTI5MiwxMSArMTI5NCwxMiBAQCBib29sIFNl cmlhbExvZzo6aW5kZXhJblVzZShpbnQgaW5kZXhJZCwgCiAJVGFibGVTcGFjZUluZm8gKmluZm8g PSBnZXRUYWJsZVNwYWNlSW5mbyh0YWJsZVNwYWNlSWQpOwogCXJldHVybiBpbmZvLT5pbmRleFVz ZVZlY3Rvci5nZXQoaW5kZXhJZCkgPiAwOwogfQotCisvKgogaW50IFNlcmlhbExvZzo6Z2V0UGFn ZVN0YXRlKGludDMyIHBhZ2VOdW1iZXIsIGludCB0YWJsZVNwYWNlSWQpCiB7CiAJcmV0dXJuIHJl Y292ZXJ5UGFnZXMtPmdldEN1cnJlbnRTdGF0ZShwYWdlTnVtYmVyLCB0YWJsZVNwYWNlSWQpOwog fQorKi8KIAogdm9pZCBTZXJpYWxMb2c6OnJlZG9GcmVlUGFnZShpbnQzMiBwYWdlTnVtYmVyLCBp bnQgdGFibGVTcGFjZUlkKQogewpAQCAtMTM2Niw3ICsxMzY5LDcgQEAgdm9pZCBTZXJpYWxMb2c6 OnJlcG9ydFN0YXRpc3RpY3Modm9pZCkKIAogdm9pZCBTZXJpYWxMb2c6OmdldFNlcmlhbExvZ0lu Zm8oSW5mb1RhYmxlKiB0YWJsZUluZm8pCiB7Ci0JU3luYyBzeW5jKCZwZW5kaW5nLnN5bmNPYmpl Y3QsICJTZXJpYWxMb2c6OmdldFNlcmlhbExvZ0luZm8iKTsKKwlTeW5jIHN5bmMoJnBlbmRpbmcu c3luY09iamVjdCwgIlNlcmlhbExvZzo6Z2V0U2VyaWFsTG9nSW5mbygxKSIpOwogCXN5bmMubG9j ayhTaGFyZWQpOwogCWludCBudW1iZXJUcmFuc2FjdGlvbnMgPSAwOwogCXVpbnQ2NCBtaW5CbG9j a051bWJlciA9IHdyaXRlQmxvY2stPmJsb2NrTnVtYmVyOwpAQCAtMTM4Miw3ICsxMzg1LDcgQEAg dm9pZCBTZXJpYWxMb2c6OmdldFNlcmlhbExvZ0luZm8oSW5mb1RhYgogCWludDY0IGRlbHRhID0g d3JpdGVCbG9jay0+YmxvY2tOdW1iZXIgLSBtaW5CbG9ja051bWJlcjsKIAlzeW5jLnVubG9jaygp OwogCQotCVN5bmMgc3luY1dpbmRvd3MoJnN5bmNXcml0ZSwgIlNlcmlhbExvZzo6Z2V0U2VyaWFs TG9nSW5mbyIpOworCVN5bmMgc3luY1dpbmRvd3MoJnN5bmNXcml0ZSwgIlNlcmlhbExvZzo6Z2V0 U2VyaWFsTG9nSW5mbygxKSIpOwogCXN5bmNXaW5kb3dzLmxvY2soU2hhcmVkKTsKIAlpbnQgd2lu ZG93cyA9IDA7CiAJaW50IGJ1ZmZlcnMgPSAwOwpAQCAtMTQzOSwxMyArMTQ0MiwxMyBAQCB2b2lk IFNlcmlhbExvZzo6cHJlQ29tbWl0KFRyYW5zYWN0aW9uKiB0CiAJCiAJaWYgKCFzZXJpYWxMb2dU cmFuc2FjdGlvbikKIAkJewotCQlTeW5jIHdyaXRlU3luYygmc3luY1dyaXRlLCAiU2VyaWFsTG9n OjpwcmVDb21taXQiKTsKKwkJU3luYyB3cml0ZVN5bmMoJnN5bmNXcml0ZSwgIlNlcmlhbExvZzo6 cHJlQ29tbWl0KDEpIik7CiAJCXdyaXRlU3luYy5sb2NrKEV4Y2x1c2l2ZSk7CiAJCXN0YXJ0UmVj b3JkKCk7CiAJCXNlcmlhbExvZ1RyYW5zYWN0aW9uID0gZ2V0VHJhbnNhY3Rpb24odHJhbnNhY3Rp b24tPnRyYW5zYWN0aW9uSWQpOwogCQl9CiAJCQotCVN5bmMgc3luYyAoJnBlbmRpbmcuc3luY09i amVjdCwgIlNlcmlhbExvZzo6YWN0aXZhdGUiKTsKKwlTeW5jIHN5bmMgKCZwZW5kaW5nLnN5bmNP YmplY3QsICJTZXJpYWxMb2c6OnByZUNvbW1pdCgyKSIpOwogCXN5bmMubG9jayhFeGNsdXNpdmUp OwogCXJ1bm5pbmcucmVtb3ZlKHNlcmlhbExvZ1RyYW5zYWN0aW9uKTsKIAlwZW5kaW5nLmFwcGVu ZChzZXJpYWxMb2dUcmFuc2FjdGlvbik7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxj b24vU2VyaWFsTG9nLmgnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL1NlcmlhbExvZy5oCTIwMDgtMDct MDkgMTk6MjM6MjMgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vU2VyaWFsTG9nLmgJMjAwOC0w Ny0yNCAwODo0NTowMyArMDAwMApAQCAtMTMyLDcgKzEzMiw3IEBAIHB1YmxpYzoKIAlib29sCQkJ YnVtcFNlY3Rpb25JbmNhcm5hdGlvbiAoaW50IHNlY3Rpb25JZCwgaW50IHRhYmxlU3BhY2VJZCwg aW50IHN0YXRlKTsKIAlib29sCQkJYnVtcFBhZ2VJbmNhcm5hdGlvbiAoaW50MzIgcGFnZU51bWJl ciwgaW50IHRhYmxlU3BhY2VJZCwgaW50IHN0YXRlKTsKIAotCWludAkJCQlnZXRQYWdlU3RhdGUo aW50MzIgcGFnZU51bWJlciwgaW50IHRhYmxlU3BhY2VJZCk7CisvLwlpbnQJCQkJZ2V0UGFnZVN0 YXRlKGludDMyIHBhZ2VOdW1iZXIsIGludCB0YWJsZVNwYWNlSWQpOwogCXZvaWQJCQlyZWRvRnJl ZVBhZ2UoaW50MzIgcGFnZU51bWJlciwgaW50IHRhYmxlU3BhY2VJZCk7CiAJCiAJYm9vbAkJCWlu ZGV4SW5Vc2UoaW50IGluZGV4SWQsIGludCB0YWJsZVNwYWNlSWQpOwoKPT09IG1vZGlmaWVkIGZp bGUgJ3N0b3JhZ2UvZmFsY29uL1NlcmlhbExvZ0ZpbGUuY3BwJwotLS0gYS9zdG9yYWdlL2ZhbGNv bi9TZXJpYWxMb2dGaWxlLmNwcAkyMDA4LTA3LTA4IDIxOjM2OjM0ICswMDAwCisrKyBiL3N0b3Jh Z2UvZmFsY29uL1NlcmlhbExvZ0ZpbGUuY3BwCTIwMDgtMDctMTUgMTg6NTc6MjcgKzAwMDAKQEAg LTE2OSw3ICsxNjksNyBAQCB2b2lkIFNlcmlhbExvZ0ZpbGU6OmNsb3NlKCkKIHZvaWQgU2VyaWFs TG9nRmlsZTo6d3JpdGUoaW50NjQgcG9zaXRpb24sIHVpbnQzMiBsZW5ndGgsIGNvbnN0IFNlcmlh bExvZ0Jsb2NrICpkYXRhKQogewogCXVpbnQzMiBlZmZlY3RpdmVMZW5ndGggPSBST1VORFVQKGxl bmd0aCwgc2VjdG9yU2l6ZSk7Ci0gICAgdGltZV90IHN0YXJ0ID0gZGF0YWJhc2UtPnRpbWVzdGFt cDsKKwl0aW1lX3Qgc3RhcnQgPSBkYXRhYmFzZS0+dGltZXN0YW1wOwogCVByaW9yaXR5IHByaW9y aXR5KGRhdGFiYXNlLT5pb1NjaGVkdWxlcik7CiAJCiAJaWYgKCEocG9zaXRpb24gPT0gd3JpdGVQ b2ludCB8fCBwb3NpdGlvbiA9PSAwIHx8IHdyaXRlUG9pbnQgPT0gMCkpCkBAIC0yMDIsNyArMjAy LDcgQEAgdm9pZCBTZXJpYWxMb2dGaWxlOjp3cml0ZShpbnQ2NCBwb3NpdGlvbgogI2lmIGRlZmlu ZWQoSEFWRV9QUkVBRCkgJiYgIWRlZmluZWQoSEFWRV9CUk9LRU5fUFJFQUQpCiAJdWludDMyIG4g PSA6OnB3cml0ZSAoaGFuZGxlLCBkYXRhLCBlZmZlY3RpdmVMZW5ndGgsIHBvc2l0aW9uKTsKICNl bHNlCi0JU3luYyBzeW5jICgmc3luY09iamVjdCwgIklPOjpwd3JpdGUiKTsKKwlTeW5jIHN5bmMg KCZzeW5jT2JqZWN0LCAiU2VyaWFsTG9nRmlsZTo6d3JpdGUiKTsKIAlzeW5jLmxvY2sgKEV4Y2x1 c2l2ZSk7CiAKIAlpZiAocG9zaXRpb24gIT0gb2Zmc2V0KQpAQCAtMjQ0LDcgKzI0NCw3IEBAIHZv aWQgU2VyaWFsTG9nRmlsZTo6d3JpdGUoaW50NjQgcG9zaXRpb24KIHVpbnQzMiBTZXJpYWxMb2dG aWxlOjpyZWFkKGludDY0IHBvc2l0aW9uLCB1aW50MzIgbGVuZ3RoLCBVQ0hBUiAqZGF0YSkKIHsK IAl1aW50MzIgZWZmZWN0aXZlTGVuZ3RoID0gUk9VTkRVUChsZW5ndGgsIHNlY3RvclNpemUpOwot CS8vU3luYyBzeW5jSU8oJmRhdGFiYXNlLT5zeW5jU2VyaWFsTG9nSU8sICJTZXJpYWxMb2dGaWxl OjpyZWFkIik7CisJLy9TeW5jIHN5bmNJTygmZGF0YWJhc2UtPnN5bmNTZXJpYWxMb2dJTywgIlNl cmlhbExvZ0ZpbGU6OnJlYWQoMSkiKTsKIAlQcmlvcml0eSBwcmlvcml0eShkYXRhYmFzZS0+aW9T Y2hlZHVsZXIpOwogCiAJaWYgKGZhbGNvbl9zZXJpYWxfbG9nX3ByaW9yaXR5KQpAQCAtMjc0LDcg KzI3NCw3IEBAIHVpbnQzMiBTZXJpYWxMb2dGaWxlOjpyZWFkKGludDY0IHBvc2l0aW8KICNpZiBk ZWZpbmVkKEhBVkVfUFJFQUQpICYmICFkZWZpbmVkKEhBVkVfQlJPS0VOX1BSRUFEKQogCWludCBu ID0gOjpwcmVhZCAoaGFuZGxlLCBkYXRhLCBlZmZlY3RpdmVMZW5ndGgsIHBvc2l0aW9uKTsKICNl bHNlCi0JU3luYyBzeW5jKCZzeW5jT2JqZWN0LCAiU2VyaWFsTG9nRmlsZTo6cmVhZCIpOworCVN5 bmMgc3luYygmc3luY09iamVjdCwgIlNlcmlhbExvZ0ZpbGU6OnJlYWQoMikiKTsKIAlzeW5jLmxv Y2soRXhjbHVzaXZlKTsKIAlBU1NFUlQocG9zaXRpb24gPCB3cml0ZVBvaW50IHx8IHdyaXRlUG9p bnQgPT0gMCk7CiAJb2ZmX3QgbG9jID0gbHNlZWsoaGFuZGxlLCBwb3NpdGlvbiwgU0VFS19TRVQp OwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2UvZmFsY29uL1NlcnZlci5jcHAnCi0tLSBhL3N0 b3JhZ2UvZmFsY29uL1NlcnZlci5jcHAJMjAwNy0wOS0yMCAxNTo0NDoyNSArMDAwMAorKysgYi9z dG9yYWdlL2ZhbGNvbi9TZXJ2ZXIuY3BwCTIwMDgtMDctMjQgMDg6NDU6MDMgKzAwMDAKQEAgLTcy LDYgKzcyLDcgQEAgU2VydmVyOjpTZXJ2ZXIoU2VydmVyICpzZXJ2ZXIsIFByb3RvY29sIAogCiAJ cHJvdG9jb2wgPSBwcm90bzsKIAl0aHJlYWRzID0gTlVMTDsKKwlzeW5jT2JqZWN0LnNldE5hbWUo IlNlcnZlcjo6c3luY09iamVjdCIpOwogfQogCiBTZXJ2ZXI6OlNlcnZlcihpbnQgcmVxdWVzdGVk UG9ydCwgY29uc3QgY2hhciAqY29uZmlnRmlsZU5hbWUpCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3Rv cmFnZS9mYWxjb24vU2Vzc2lvbk1hbmFnZXIuY3BwJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9TZXNz aW9uTWFuYWdlci5jcHAJMjAwNy0wOS0yMCAxNTo0NDoyNSArMDAwMAorKysgYi9zdG9yYWdlL2Zh bGNvbi9TZXNzaW9uTWFuYWdlci5jcHAJMjAwOC0wNy0xNSAxODo1NzoyNyArMDAwMApAQCAtNDU0 LDcgKzQ1NCw3IEBAIHZvaWQgU2Vzc2lvbk1hbmFnZXI6OnB1cmdlZChTZXNzaW9uICpzZXMKIAog dm9pZCBTZXNzaW9uTWFuYWdlcjo6cmVtb3ZlU2Vzc2lvbihTZXNzaW9uICpzZXNzaW9uKQogewot CVN5bmMgc3luYyAoJnN5bmNPYmplY3QsICJTZXNzaW9uTWFuYWdlcjo6Y2xvc2UiKTsKKwlTeW5j IHN5bmMgKCZzeW5jT2JqZWN0LCAiU2Vzc2lvbk1hbmFnZXI6OnJlbW92ZVNlc3Npb24iKTsKIAlz eW5jLmxvY2sgKEV4Y2x1c2l2ZSk7CiAKIAkvLyBJZiBpdCdzIGluIGEgcXVldWUsIHRha2UgaXQg b3V0IG5vdwpAQCAtNDg1LDcgKzQ4NSw3IEBAIExpY2Vuc2VUb2tlbiogU2Vzc2lvbk1hbmFnZXI6 OndhaXRGb3JMaWMKIAkvLyBJZiBzb21lYm9keSBlbHNlIGlmIHdhaXRpbmcsIGFuZCB3ZSdyZSB1 bndpbGxpbmcgdG8KIAkvLyB3YWl0LCBqdXN0IHNheSBuby4KIAotCVN5bmMgc3luYyAoJnN5bmNP YmplY3QsICJTZXNzaW9uTWFuYWdlcjo6Z2V0TGljZW5zZVRva2VuIik7CisJU3luYyBzeW5jICgm c3luY09iamVjdCwgIlNlc3Npb25NYW5hZ2VyOjp3YWl0Rm9yTGljZW5zZSIpOwogCXN5bmMubG9j ayAoRXhjbHVzaXZlKTsKIAogCWlmICh3YWl0aW5nLmZpcnN0ICYmICF0YXJnZXQpCkBAIC00OTUs NyArNDk1LDcgQEAgTGljZW5zZVRva2VuKiBTZXNzaW9uTWFuYWdlcjo6d2FpdEZvckxpYwogCiAJ aWYgKHRhcmdldCkKIAkJewotCQl0YXJnZXQtPnRocmVhZCA9IFRocmVhZDo6Z2V0VGhyZWFkKCJT ZXNzaW9uTWFuYWdlcjo6Z2V0TGljZW5zZVRva2VuIik7CisJCXRhcmdldC0+dGhyZWFkID0gVGhy ZWFkOjpnZXRUaHJlYWQoIlNlc3Npb25NYW5hZ2VyOjp3YWl0Rm9yTGljZW5zZSIpOwogCQl3YWl0 aW5nLmluc2VydCAodGFyZ2V0KTsKIAkJfQogCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9m YWxjb24vU3RhdGVtZW50LmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vU3RhdGVtZW50LmNwcAky MDA4LTA3LTA5IDA0OjM4OjAyICswMDAwCisrKyBiL3N0b3JhZ2UvZmFsY29uL1N0YXRlbWVudC5j cHAJMjAwOC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtMTQ0LDYgKzE0NCw3IEBAIFN0YXRlbWVu dDo6U3RhdGVtZW50KENvbm5lY3Rpb24gKnBDb25uZWMKIAlzcGVjaWFsID0gZmFsc2U7CiAJYWN0 aXZlID0gZmFsc2U7CiAJbWVtc2V0ICgmc3RhdHMsIDAsIHNpemVvZiAoc3RhdHMpKTsKKwlzeW5j T2JqZWN0LnNldE5hbWUoIlN0YXRlbWVudDo6c3luY09iamVjdCIpOwogfQogCiBTdGF0ZW1lbnQ6 On5TdGF0ZW1lbnQoKQpAQCAtMTk1OSw3ICsxOTYwLDcgQEAgY29uc3QgY2hhciogU3RhdGVtZW50 OjpnZXROYW1lKFN5bnRheCAqIAogdm9pZCBTdGF0ZW1lbnQ6OmNvbm5lY3Rpb25DbG9zZWQoKQog ewogCWFkZFJlZigpOwotCVN5bmMgc3luYyAoJnN5bmNPYmplY3QsICJTdGF0ZW1lbnQ6OmNsb3Nl Iik7CisJU3luYyBzeW5jICgmc3luY09iamVjdCwgIlN0YXRlbWVudDo6Y29ubmVjdGlvbkNsb3Nl ZCIpOwogCXN5bmMubG9jayAoRXhjbHVzaXZlKTsKIAogCS8qKioKQEAgLTI5NjUsMjYgKzI5NjYs NiBAQCB2b2lkIFN0YXRlbWVudDo6Y3JlYXRlVGFibGVTcGFjZShTeW50YXggCiAKIAkJc3dpdGNo IChjaGlsZC0+dHlwZSkKIAkJCXsKLQkJCS8qKioKLQkJCWNhc2Ugbm9kX2luaXRpYWxfc2l6ZToK LQkJCQl0c0luaXQuaW5pdGlhbF9zaXplID0gY2hpbGQtPmdldENoaWxkKDApLT5nZXRRdWFkKCk7 Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIG5vZF9leHRlbnRfc2l6ZToKLQkJCQl0c0luaXQuZXh0ZW50 X3NpemUgPSBjaGlsZC0+Z2V0Q2hpbGQoMCktPmdldFF1YWQoKTsKLQkJCQlicmVhazsKLQkJCWNh c2Ugbm9kX2F1dG9leHRlbmRfc2l6ZToKLQkJCQl0c0luaXQuYXV0b2V4dGVuZF9zaXplID0gY2hp bGQtPmdldENoaWxkKDApLT5nZXRRdWFkKCk7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIG5vZF9tYXhf c2l6ZToKLQkJCQl0c0luaXQubWF4U2l6ZSA9IGNoaWxkLT5nZXRDaGlsZCgwKS0+Z2V0UXVhZCgp OwotCQkJCWJyZWFrOwotCQkJY2FzZSBub2Rfbm9kZWdyb3VwOgotCQkJCXRzSW5pdC5ub2RlZ3Jv dXAgPSBjaGlsZC0+Z2V0Q2hpbGQoMCktPmdldE51bWJlcigpOwotCQkJCWJyZWFrOwotCQkJY2Fz ZSBub2Rfd2FpdDoKLQkJCQl0c0luaXQud2FpdCA9IGNoaWxkLT5nZXRDaGlsZCgwKS0+Z2V0TnVt YmVyKCk7Ci0JCQkJYnJlYWs7Ci0JCQkqKiovCiAJCQljYXNlIG5vZF9jb21tZW50OgogCQkJCXRz SW5pdC5jb21tZW50ID0gY2hpbGQtPmdldENoaWxkKDApLT5nZXRTdHJpbmcoKTsKIAkJCQlicmVh azsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9TdG9yYWdlRGF0YWJhc2UuY3Bw JwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9TdG9yYWdlRGF0YWJhc2UuY3BwCTIwMDgtMDctMDkgMDQ6 Mzg6MDIgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vU3RvcmFnZURhdGFiYXNlLmNwcAkyMDA4 LTA3LTI0IDA4OjQ1OjAzICswMDAwCkBAIC0xMDAsNiArMTAwLDggQEAgU3RvcmFnZURhdGFiYXNl OjpTdG9yYWdlRGF0YWJhc2UoU3RvcmFnZQogCQkvL1N5bmNUZXN0IHN5bmNUZXN0OwogCQkvL3N5 bmNUZXN0LnRlc3QoKTsKIAkJfQorCXN5bmNPYmplY3Quc2V0TmFtZSgiU3RvcmFnZURhdGFiYXNl OjpzeW5jT2JqZWN0Iik7CisJc3luY1RyYWNlLnNldE5hbWUoIlN0b3JhZ2VEYXRhYmFzZTo6c3lu Y1RyYWNlIik7CiB9CiAKIFN0b3JhZ2VEYXRhYmFzZTo6flN0b3JhZ2VEYXRhYmFzZSh2b2lkKQpA QCAtNzU2LDEwICs3NTgsMTAgQEAgaW50IFN0b3JhZ2VEYXRhYmFzZTo6cmVuYW1lVGFibGUoU3Rv cmFnZQogCQkJKytudW1iZXJJbmRleGVzOwogCQkJfQogCi0JCVN5bmMgc3luY0RETCgmZGF0YWJh c2UtPnN5bmNTeXNEREwsICJTdG9yYWdlRGF0YWJhc2U6OnJlbmFtZVRhYmxlIik7CisJCVN5bmMg c3luY0RETCgmZGF0YWJhc2UtPnN5bmNTeXNEREwsICJTdG9yYWdlRGF0YWJhc2U6OnJlbmFtZVRh YmxlKDEpIik7CiAJCXN5bmNEREwubG9jayhFeGNsdXNpdmUpOwogCQkKLQkJU3luYyBzeW5jVGFi bGVzKCZkYXRhYmFzZS0+c3luY1RhYmxlcywgIlN0b3JhZ2VEYXRhYmFzZTo6cmVuYW1lVGFibGUi KTsKKwkJU3luYyBzeW5jVGFibGVzKCZkYXRhYmFzZS0+c3luY1RhYmxlcywgIlN0b3JhZ2VEYXRh YmFzZTo6cmVuYW1lVGFibGUoMikiKTsKIAkJc3luY1RhYmxlcy5sb2NrKEV4Y2x1c2l2ZSk7CiAJ CQogCQlmb3IgKGludCBuID0gZmlyc3RJbmRleDsgbiA8IG51bWJlckluZGV4ZXM7ICsrbikKQEAg LTEyMDYsNyArMTIwOCw3IEBAIHZvaWQgU3RvcmFnZURhdGFiYXNlOjpjbGVhclRyYW5zYWN0aW9u cygKIHsKICNpZmRlZiBUUkFDRV9UUkFOU0FDVElPTlMKIAotCVN5bmMgc3luYygmdHJhY2VTeW5j T2JqZWN0LCAiU3RvcmFnZURhdGFiYXNlOjpjbGVhclRyYW5zYWN0aW9ucyIpOworCVN5bmMgc3lu Yygmc3luY1RyYWNlLCAiU3RvcmFnZURhdGFiYXNlOjpjbGVhclRyYW5zYWN0aW9ucyIpOwogCXN5 bmMubG9jayhFeGNsdXNpdmUpOwogCVN0YXRlbWVudCAqc3RhdGVtZW50ID0gbWFzdGVyQ29ubmVj dGlvbi0+Y3JlYXRlU3RhdGVtZW50KCk7CiAJc3RhdGVtZW50LT5leGVjdXRlKHRyYWNlVGFibGUp OwpAQCAtMTIyNCw3ICsxMjI2LDcgQEAgdm9pZCBTdG9yYWdlRGF0YWJhc2U6OnRyYWNlVHJhbnNh Y3Rpb24oaQogewogCXRyeQogCQl7Ci0JCVN5bmMgc3luYygmdHJhY2VTeW5jT2JqZWN0LCAiU3Rv cmFnZURhdGFiYXNlOjp0cmFjZVRyYW5zYWN0aW9uIik7CisJCVN5bmMgc3luYygmc3luY1RyYWNl LCAiU3RvcmFnZURhdGFiYXNlOjp0cmFjZVRyYW5zYWN0aW9uIik7CiAJCXN5bmMubG9jayhFeGNs dXNpdmUpOwogCQljaGFyIGJ1ZmZlciBbMTAwMDBdOwogCQlpbnQgbGVuZ3RoID0gc3RyZWFtLT5n ZXRTZWdtZW50KDAsIHNpemVvZihidWZmZXIpIC0gMSwgYnVmZmVyKTsKCj09PSBtb2RpZmllZCBm aWxlICdzdG9yYWdlL2ZhbGNvbi9TdG9yYWdlRGF0YWJhc2UuaCcKLS0tIGEvc3RvcmFnZS9mYWxj b24vU3RvcmFnZURhdGFiYXNlLmgJMjAwOC0wNy0wOSAwNDozODowMiArMDAwMAorKysgYi9zdG9y YWdlL2ZhbGNvbi9TdG9yYWdlRGF0YWJhc2UuaAkyMDA4LTA3LTI0IDA4OjQ1OjAzICswMDAwCkBA IC0xMTEsNyArMTExLDcgQEAgcHVibGljOgogCVN0b3JhZ2VEYXRhYmFzZQkJKm5leHQ7CiAJU3Rv cmFnZUhhbmRsZXIJCSpzdG9yYWdlSGFuZGxlcjsKIAlTeW5jT2JqZWN0CQkJc3luY09iamVjdDsK LQlTeW5jT2JqZWN0CQkJdHJhY2VTeW5jT2JqZWN0OworCVN5bmNPYmplY3QJCQlzeW5jVHJhY2U7 CiAJVXNlcgkJCQkqdXNlcjsKIAlQcmVwYXJlZFN0YXRlbWVudAkqbG9va3VwSW5kZXhBbGlhczsK IAlQcmVwYXJlZFN0YXRlbWVudAkqaW5zZXJ0VHJhY2U7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3Rv cmFnZS9mYWxjb24vU3RvcmFnZUhhbmRsZXIuY3BwJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9TdG9y YWdlSGFuZGxlci5jcHAJMjAwOC0wNy0xMCAxOTowMDoxNCArMDAwMAorKysgYi9zdG9yYWdlL2Zh bGNvbi9TdG9yYWdlSGFuZGxlci5jcHAJMjAwOC0wNy0zMSAwODo1MjozMiArMDAwMApAQCAtMzUs NiArMzUsOCBAQAogI2luY2x1ZGUgIkluZm9UYWJsZS5oIgogI2luY2x1ZGUgIkNtZEdlbi5oIgog I2luY2x1ZGUgIkRiYi5oIgorI2luY2x1ZGUgIkRhdGFiYXNlLmgiCisjaW5jbHVkZSAiVGFibGVT cGFjZU1hbmFnZXIuaCIKIAogI2RlZmluZSBESUNUSU9OQVJZX0FDQ09VTlQJCSJteXNxbCIKICNk ZWZpbmUgRElDVElPTkFSWV9QVwkJCSJteXNxbCIKQEAgLTUxLDcgKzUzLDYgQEAgc3RydWN0IFN0 b3JhZ2VTYXZlcG9pbnQgewogCWludAkJCQkJc2F2ZXBvaW50OwogCX07CiAKLWV4dGVybiB1aW50 NjQJCWZhbGNvbl9pbml0aWFsX2FsbG9jYXRpb247CiAKIHN0YXRpYyBjb25zdCBjaGFyICpjcmVh dGVUZW1wU3BhY2UgPSAidXBncmFkZSB0YWJsZXNwYWNlICIgVEVNUE9SQVJZX1RBQkxFU1BBQ0Ug IiBmaWxlbmFtZSAnIiBGQUxDT05fVEVNUE9SQVJZICInIjsKIC8vc3RhdGljIGNvbnN0IGNoYXIg KmRyb3BUZW1wU3BhY2UgPSAiZHJvcCB0YWJsZXNwYWNlICIgVEVNUE9SQVJZX1RBQkxFU1BBQ0U7 CkBAIC0xMjIsNiArMTIzLDkgQEAgU3RvcmFnZUhhbmRsZXI6OlN0b3JhZ2VIYW5kbGVyKGludCBs b2NrUwogCWRhdGFiYXNlTGlzdCA9IE5VTEw7CiAJZGVmYXVsdERhdGFiYXNlID0gTlVMTDsKIAlp bml0aWFsaXplZCA9IGZhbHNlOworCXN5bmNPYmplY3Quc2V0TmFtZSgiU3RvcmFnZUhhbmRsZXI6 OnN5bmNPYmplY3QiKTsKKwloYXNoU3luY09iamVjdC5zZXROYW1lKCJTdG9yYWdlSGFuZGxlcjo6 aGFzaFN5bmNPYmplY3QiKTsKKwlkaWN0aW9uYXJ5U3luY09iamVjdC5zZXROYW1lKCJTdG9yYWdl SGFuZGxlcjo6ZGljdGlvbmFyeVN5bmNPYmplY3QiKTsKIH0KIAogU3RvcmFnZUhhbmRsZXI6On5T dG9yYWdlSGFuZGxlcih2b2lkKQpAQCAtMTkxLDcgKzE5NSw3IEBAIHZvaWQgU3RvcmFnZUhhbmRs ZXI6OmRhdGFiYXNlRHJvcHBlZChTdG8KIAkJCiAJaWYgKHN0b3JhZ2VEYXRhYmFzZSkKIAkJewot CQlTeW5jIHN5bmNIYXNoKCZoYXNoU3luY09iamVjdCwgIlN0b3JhZ2VIYW5kbGVyOjpkcm9wRGF0 YWJhc2UiKTsKKwkJU3luYyBzeW5jSGFzaCgmaGFzaFN5bmNPYmplY3QsICJTdG9yYWdlSGFuZGxl cjo6ZGF0YWJhc2VEcm9wcGVkKDEpIik7CiAJCWludCBzbG90ID0gSlN0cmluZzo6aGFzaChzdG9y YWdlRGF0YWJhc2UtPm5hbWUsIGRhdGFiYXNlSGFzaFNpemUpOwogCQlzeW5jSGFzaC5sb2NrKEV4 Y2x1c2l2ZSk7CiAJCVN0b3JhZ2VEYXRhYmFzZSAqKnB0cjsKQEAgLTIxNCw3ICsyMTgsNyBAQCB2 b2lkIFN0b3JhZ2VIYW5kbGVyOjpkYXRhYmFzZURyb3BwZWQoU3RvCiAJCXN0b3JhZ2VEYXRhYmFz ZS0+cmVsZWFzZSgpOwogCQl9CiAKLQlTeW5jIHN5bmMoJnN5bmNPYmplY3QsICJTdG9yYWdlSGFu ZGxlcjo6fmRyb3BEYXRhYmFzZSIpOworCVN5bmMgc3luYygmc3luY09iamVjdCwgIlN0b3JhZ2VI YW5kbGVyOjpkYXRhYmFzZURyb3BwZWQoMikiKTsKIAlzeW5jLmxvY2soRXhjbHVzaXZlKTsKIAog CWZvciAoaW50IG4gPSAwOyBuIDwgY29ubmVjdGlvbkhhc2hTaXplOyArK24pCkBAIC00MjQsNyAr NDI4LDcgQEAgU3RvcmFnZURhdGFiYXNlKiBTdG9yYWdlSGFuZGxlcjo6Z2V0U3RvcgogCiB2b2lk IFN0b3JhZ2VIYW5kbGVyOjpjbG9zZURhdGFiYXNlKGNvbnN0IGNoYXIqIHBhdGgpCiB7Ci0JU3lu YyBzeW5jKCZoYXNoU3luY09iamVjdCwgIlN0b3JhZ2VIYW5kbGVyOjpnZXRTdG9yYWdlRGF0YWJh c2UiKTsKKwlTeW5jIHN5bmMoJmhhc2hTeW5jT2JqZWN0LCAiU3RvcmFnZUhhbmRsZXI6OmNsb3Nl RGF0YWJhc2UiKTsKIAlpbnQgc2xvdCA9IEpTdHJpbmc6Omhhc2gocGF0aCwgZGF0YWJhc2VIYXNo U2l6ZSk7CiAJc3luYy5sb2NrKEV4Y2x1c2l2ZSk7CiAJCkBAIC00NjQsNDMgKzQ2OCwzMyBAQCBD b25uZWN0aW9uKiBTdG9yYWdlSGFuZGxlcjo6Z2V0RGljdGlvbmFyCiAJcmV0dXJuIGRpY3Rpb25h cnlDb25uZWN0aW9uOwogfQogCi1KU3RyaW5nIFN0b3JhZ2VIYW5kbGVyOjpnZW5DcmVhdGVUYWJs ZVNwYWNlKGNvbnN0IGNoYXIqIHRhYmxlU3BhY2VOYW1lLCBjb25zdCBjaGFyKiBmaWxlbmFtZSwK LQkJCQkJCQkJCQkJCXVuc2lnbmVkIGxvbmcgbG9uZyBpbml0aWFsU2l6ZSwKLQkJCQkJCQkJCQkJ CXVuc2lnbmVkIGxvbmcgbG9uZyBleHRlbnRTaXplLAotCQkJCQkJCQkJCQkJdW5zaWduZWQgbG9u ZyBsb25nIGF1dG9leHRlbmRTaXplLAotCQkJCQkJCQkJCQkJdW5zaWduZWQgbG9uZyBsb25nIG1h eFNpemUsCi0JCQkJCQkJCQkJCQlpbnQgbm9kZWdyb3VwLCBib29sIHdhaXQsIGNvbnN0IGNoYXIq IGNvbW1lbnQpCitKU3RyaW5nIFN0b3JhZ2VIYW5kbGVyOjpnZW5DcmVhdGVUYWJsZVNwYWNlKGNv bnN0IGNoYXIqIHRhYmxlU3BhY2VOYW1lLCBjb25zdCBjaGFyKiBmaWxlbmFtZSwgY29uc3QgY2hh ciogY29tbWVudCkKIHsKIAlDbWRHZW4gZ2VuOwotCS8qKioKLQlnZW4uZ2VuKCJjcmVhdGUgdGFi bGVzcGFjZSBcIiVzXCIgZmlsZW5hbWUgJyVzJyBpbml0aWFsX3NpemUgIiBJNjRGT1JNQVQgIiBl eHRlbnRfc2l6ZSAiIEk2NEZPUk1BVCAKLQkJCQkiIGF1dG9leHRlbmRfc2l6ZSAiIEk2NEZPUk1B VCAiIG1heF9zaXplICIgSTY0Rk9STUFUICIgbm9kZWdyb3VwICVkIHdhaXQgJWQgY29tbWVudCAn JXMnIiwKLQkJCQl0YWJsZVNwYWNlTmFtZSwgZmlsZW5hbWUsIGluaXRpYWxTaXplLCBleHRlbnRT aXplLCBhdXRvZXh0ZW5kU2l6ZSwgbWF4U2l6ZSwgbm9kZWdyb3VwLCAoaW50KXdhaXQsIGNvbW1l bnQgPyBjb21tZW50IDogIiIpOwotCSoqKi8KIAlnZW4uZ2VuKCJjcmVhdGUgdGFibGVzcGFjZSBc IiVzXCIgZmlsZW5hbWUgJyVzJyBjb21tZW50ICclcyciLCB0YWJsZVNwYWNlTmFtZSwgZmlsZW5h bWUsIGNvbW1lbnQgPyBjb21tZW50IDogIiIpOwogCXJldHVybiAoZ2VuLmdldFN0cmluZygpKTsK IH0KIAotaW50IFN0b3JhZ2VIYW5kbGVyOjpjcmVhdGVUYWJsZXNwYWNlKGNvbnN0IGNoYXIqIHRh YmxlU3BhY2VOYW1lLCBjb25zdCBjaGFyKiBmaWxlbmFtZSwKLQkJCQkJCQkJCQl1bnNpZ25lZCBs b25nIGxvbmcgaW5pdGlhbFNpemUsCi0JCQkJCQkJCQkJdW5zaWduZWQgbG9uZyBsb25nIGV4dGVu dFNpemUsCi0JCQkJCQkJCQkJdW5zaWduZWQgbG9uZyBsb25nIGF1dG9leHRlbmRTaXplLAotCQkJ CQkJCQkJCXVuc2lnbmVkIGxvbmcgbG9uZyBtYXhTaXplLAotCQkJCQkJCQkJCWludCBub2RlZ3Jv dXAsIGJvb2wgd2FpdCwgY29uc3QgY2hhciogY29tbWVudCkKK2ludCBTdG9yYWdlSGFuZGxlcjo6 Y3JlYXRlVGFibGVzcGFjZShjb25zdCBjaGFyKiB0YWJsZVNwYWNlTmFtZSwgY29uc3QgY2hhciog ZmlsZW5hbWUsIGNvbnN0IGNoYXIqIGNvbW1lbnQpCiB7CiAJaWYgKCFkZWZhdWx0RGF0YWJhc2Up CiAJCWluaXRpYWxpemUoKTsKIAogCWlmICghZGljdGlvbmFyeUNvbm5lY3Rpb24pCiAJCXJldHVy biBTdG9yYWdlRXJyb3JUYWJsZXNTcGFjZU9wZXJhdGlvbkZhaWxlZDsKLQkJCi0JLy9TdG9yYWdl RGF0YWJhc2UgKnN0b3JhZ2VEYXRhYmFzZSA9IE5VTEw7CisKIAlKU3RyaW5nIHRhYmxlU3BhY2Ug PSBKU3RyaW5nOjp1cGNhc2UodGFibGVTcGFjZU5hbWUpOwotCQorCisJVGFibGVTcGFjZU1hbmFn ZXIgKnRhYmxlU3BhY2VNYW5hZ2VyID0gCisJCWRpY3Rpb25hcnlDb25uZWN0aW9uLT5kYXRhYmFz ZS0+dGFibGVTcGFjZU1hbmFnZXI7CisKKwlpZiAoIXRhYmxlU3BhY2VNYW5hZ2VyLT53YWl0Rm9y UGVuZGluZ0Ryb3AodGFibGVTcGFjZU5hbWUsIDEwKSkKKwkJLy8gZmlsZSBzdGlsbCBleGlzdHMg YWZ0ZXIgd2FpdGluZyBmb3IgMTAgc2Vjb25kcworCQlyZXR1cm4gIFN0b3JhZ2VFcnJvclRhYmxl U3BhY2VFeGlzdDsKKwogCXRyeQogCQl7Ci0JCUpTdHJpbmcgY21kID0gZ2VuQ3JlYXRlVGFibGVT cGFjZSh0YWJsZVNwYWNlTmFtZSwgZmlsZW5hbWUsIGluaXRpYWxTaXplLCBleHRlbnRTaXplLAot CQkJCQkJCQkJCQlhdXRvZXh0ZW5kU2l6ZSwgbWF4U2l6ZSwgbm9kZWdyb3VwLCB3YWl0LCBjb21t ZW50KTsKKwkJSlN0cmluZyBjbWQgPSBnZW5DcmVhdGVUYWJsZVNwYWNlKHRhYmxlU3BhY2VOYW1l LCBmaWxlbmFtZSwgY29tbWVudCk7CiAJCVN5bmMgc3luYygmZGljdGlvbmFyeVN5bmNPYmplY3Qs ICJTdG9yYWdlSGFuZGxlcjo6Y3JlYXRlVGFibGVzcGFjZSIpOwogCQlzeW5jLmxvY2soRXhjbHVz aXZlKTsKIAkJU3RhdGVtZW50ICpzdGF0ZW1lbnQgPSBkaWN0aW9uYXJ5Q29ubmVjdGlvbi0+Y3Jl YXRlU3RhdGVtZW50KCk7CkBAIC01NDMsNyArNTM3LDcgQEAgaW50IFN0b3JhZ2VIYW5kbGVyOjpk ZWxldGVUYWJsZXNwYWNlKGNvbgogCQl7CiAJCUNtZEdlbiBnZW47CiAJCWdlbi5nZW4oImRyb3Ag dGFibGVzcGFjZSBcIiVzXCIiLCB0YWJsZVNwYWNlTmFtZSk7Ci0JCVN5bmMgc3luYygmZGljdGlv bmFyeVN5bmNPYmplY3QsICJTdG9yYWdlSGFuZGxlcjo6Y3JlYXRlVGFibGVzcGFjZSIpOworCQlT eW5jIHN5bmMoJmRpY3Rpb25hcnlTeW5jT2JqZWN0LCAiU3RvcmFnZUhhbmRsZXI6OmRlbGV0ZVRh Ymxlc3BhY2UiKTsKIAkJc3luYy5sb2NrKEV4Y2x1c2l2ZSk7CiAJCVN0YXRlbWVudCAqc3RhdGVt ZW50ID0gZGljdGlvbmFyeUNvbm5lY3Rpb24tPmNyZWF0ZVN0YXRlbWVudCgpOwogCQlzdGF0ZW1l bnQtPmV4ZWN1dGVVcGRhdGUoZ2VuLmdldFN0cmluZygpKTsKQEAgLTY2NCw3ICs2NTgsNyBAQCBT dG9yYWdlVGFibGVTaGFyZSogU3RvcmFnZUhhbmRsZXI6OmNyZWF0CiB2b2lkIFN0b3JhZ2VIYW5k bGVyOjphZGRUYWJsZShTdG9yYWdlVGFibGVTaGFyZSogdGFibGUpCiB7CiAJaW50IHNsb3QgPSBK U3RyaW5nOjpoYXNoKHRhYmxlLT5wYXRoTmFtZSwgdGFibGVIYXNoU2l6ZSk7Ci0JU3luYyBzeW5j KCZoYXNoU3luY09iamVjdCwgIlN0b3JhZ2VIYW5kbGVyOjphZGQiKTsKKwlTeW5jIHN5bmMoJmhh c2hTeW5jT2JqZWN0LCAiU3RvcmFnZUhhbmRsZXI6OmFkZFRhYmxlIik7CiAJc3luYy5sb2NrKEV4 Y2x1c2l2ZSk7CiAJdGFibGUtPmNvbGxpc2lvbiA9IHRhYmxlc1tzbG90XTsKIAl0YWJsZXNbc2xv dF0gPSB0YWJsZTsKQEAgLTY3NCw3ICs2NjgsNyBAQCB2b2lkIFN0b3JhZ2VIYW5kbGVyOjphZGRU YWJsZShTdG9yYWdlVGFiCiAKIHZvaWQgU3RvcmFnZUhhbmRsZXI6OnJlbW92ZVRhYmxlKFN0b3Jh Z2VUYWJsZVNoYXJlKiB0YWJsZSkKIHsKLQlTeW5jIHN5bmMoJmhhc2hTeW5jT2JqZWN0LCAiU3Rv cmFnZUhhbmRsZXI6OmRlbGV0ZVRhYmxlIik7CisJU3luYyBzeW5jKCZoYXNoU3luY09iamVjdCwg IlN0b3JhZ2VIYW5kbGVyOjpyZW1vdmVUYWJsZSIpOwogCXN5bmMubG9jayhFeGNsdXNpdmUpOwog CWludCBzbG90ID0gSlN0cmluZzo6aGFzaCh0YWJsZS0+cGF0aE5hbWUsIHRhYmxlSGFzaFNpemUp OwogCQpAQCAtNjg4LDcgKzY4Miw3IEBAIHZvaWQgU3RvcmFnZUhhbmRsZXI6OnJlbW92ZVRhYmxl KFN0b3JhZ2UKIAogU3RvcmFnZUNvbm5lY3Rpb24qIFN0b3JhZ2VIYW5kbGVyOjpnZXRTdG9yYWdl Q29ubmVjdGlvbihTdG9yYWdlVGFibGVTaGFyZSogdGFibGVTaGFyZSwgVEhEKiBteVNxbFRocmVh ZCwgaW50IG15U3FsVGhkSWQsIE9wZW5PcHRpb24gY3JlYXRlRmxhZykKIHsKLQlTeW5jIHN5bmMo JnN5bmNPYmplY3QsICJTdG9yYWdlQ29ubmVjdGlvbjo6Z2V0U3RvcmFnZUNvbm5lY3Rpb24iKTsK KwlTeW5jIHN5bmMoJnN5bmNPYmplY3QsICJTdG9yYWdlSGFuZGxlcjo6Z2V0U3RvcmFnZUNvbm5l Y3Rpb24iKTsKIAkKIAlpZiAoIWRlZmF1bHREYXRhYmFzZSkKIAkJaW5pdGlhbGl6ZSgpOwpAQCAt OTIxLDcgKzkxNSw3IEBAIHZvaWQgU3RvcmFnZUhhbmRsZXI6OmdldFRyYW5zYWN0aW9uSW5mbygK IAogdm9pZCBTdG9yYWdlSGFuZGxlcjo6Z2V0U2VyaWFsTG9nSW5mbyhJbmZvVGFibGUqIGluZm9U YWJsZSkKIHsKLQlTeW5jIHN5bmMoJmhhc2hTeW5jT2JqZWN0LCAiU3RvcmFnZUhhbmRsZXI6Omdl dFRyYW5zYWN0aW9uSW5mbyIpOworCVN5bmMgc3luYygmaGFzaFN5bmNPYmplY3QsICJTdG9yYWdl SGFuZGxlcjo6Z2V0U2VyaWFsTG9nSW5mbyIpOwogCXN5bmMubG9jayhTaGFyZWQpOwogCQogCWZv ciAoU3RvcmFnZURhdGFiYXNlICpzdG9yYWdlRGF0YWJhc2UgPSBkYXRhYmFzZUxpc3Q7IHN0b3Jh Z2VEYXRhYmFzZTsgc3RvcmFnZURhdGFiYXNlID0gc3RvcmFnZURhdGFiYXNlLT5uZXh0KQpAQCAt OTY1LDcgKzk1OSw3IEBAIHZvaWQgU3RvcmFnZUhhbmRsZXI6OmluaXRpYWxpemUodm9pZCkKIAlp ZiAoaW5pdGlhbGl6ZWQpCiAJCXJldHVybjsKIAkKLQlTeW5jIHN5bmMoJnN5bmNPYmplY3QsICJT dG9yYWdlQ29ubmVjdGlvbjo6aW5pdGlhbGl6ZSIpOworCVN5bmMgc3luYygmc3luY09iamVjdCwg IlN0b3JhZ2VIYW5kbGVyOjppbml0aWFsaXplIik7CiAJc3luYy5sb2NrKEV4Y2x1c2l2ZSk7CiAJ CiAJaWYgKGluaXRpYWxpemVkKQpAQCAtOTk4LDcgKzk5Miw3IEBAIHZvaWQgU3RvcmFnZUhhbmRs ZXI6OmluaXRpYWxpemUodm9pZCkKIAkJSU86OmRlbGV0ZUZpbGUoRkFMQ09OX1RFTVBPUkFSWSk7 CiAJCWRpY3Rpb25hcnlDb25uZWN0aW9uID0gZGVmYXVsdERhdGFiYXNlLT5nZXRPcGVuQ29ubmVj dGlvbigpOwogCQlTdGF0ZW1lbnQgKnN0YXRlbWVudCA9IGRpY3Rpb25hcnlDb25uZWN0aW9uLT5j cmVhdGVTdGF0ZW1lbnQoKTsKLQkJSlN0cmluZyBjcmVhdGVUYWJsZVNwYWNlID0gZ2VuQ3JlYXRl VGFibGVTcGFjZShERUZBVUxUX1RBQkxFU1BBQ0UsIEZBTENPTl9VU0VSLCBmYWxjb25faW5pdGlh bF9hbGxvY2F0aW9uKTsKKwkJSlN0cmluZyBjcmVhdGVUYWJsZVNwYWNlID0gZ2VuQ3JlYXRlVGFi bGVTcGFjZShERUZBVUxUX1RBQkxFU1BBQ0UsIEZBTENPTl9VU0VSKTsKIAkJc3RhdGVtZW50LT5l eGVjdXRlVXBkYXRlKGNyZWF0ZVRhYmxlU3BhY2UpOwogCQkJCiAJCWZvciAoY29uc3QgY2hhciAq KmRkbCA9IGZhbGNvblNjaGVtYTsgKmRkbDsgKytkZGwpCkBAIC0xMDQ3LDY3ICsxMDQxLDYgQEAg dm9pZCBTdG9yYWdlSGFuZGxlcjo6ZHJvcFRlbXBUYWJsZXModm9pZAogCXN0YXRlbWVudC0+Y2xv c2UoKTsKIH0KIAotdm9pZCBTdG9yYWdlSGFuZGxlcjo6Z2V0VGFibGVzSW5mbyhJbmZvVGFibGUq IGluZm9UYWJsZSkKLXsKLQlpZiAoIWRlZmF1bHREYXRhYmFzZSkKLQkJaW5pdGlhbGl6ZSgpOwot CQotCWlmICghZGljdGlvbmFyeUNvbm5lY3Rpb24pCi0JCXJldHVybjsKLQkJCi0JdHJ5Ci0JCXsK LQkJUFN0YXRlbWVudCBzdGF0ZW1lbnQgPSBkaWN0aW9uYXJ5Q29ubmVjdGlvbi0+cHJlcGFyZVN0 YXRlbWVudCgKLQkJCSJzZWxlY3Qgc2NoZW1hLHRhYmxlbmFtZSx0YWJsZXNwYWNlIGZyb20gc3lz dGVtLnRhYmxlcyB3aGVyZSB0YWJsZXNwYWNlIDw+ICcnIik7Ci0JCVJTZXQgcmVzdWx0U2V0ID0g c3RhdGVtZW50LT5leGVjdXRlUXVlcnkoKTsKLQkJCi0JCXdoaWxlIChyZXN1bHRTZXQtPm5leHQo KSkKLQkJCXsKLQotCQkJLy8gUGFyc2UgdGFibGUgYW5kIHBhcnRpdGlvbiBuYW1lCi0JCQkKLQkJ CWNvbnN0IGNoYXIgKnBTdHIgPSByZXN1bHRTZXQtPmdldFN0cmluZygyKTsKLQkJCWNoYXIgKnBU YWJsZSA9IE5VTEw7Ci0JCQljaGFyICpwUGFydCA9IE5VTEw7Ci0JCQkKLQkJCWlmIChwU3RyKQot CQkJCXsKLQkJCQljb25zdCBpbnQgbWF4X2J1ZiA9IDEwMjQ7Ci0JCQkJY2hhciBidWZmZXJbbWF4 X2J1ZisxXTsKLQkJCQkKLQkJCQlwVGFibGUgPSBidWZmZXI7Ci0JCQkJKnBUYWJsZSA9IDA7Ci0J CQkJc3RybmNweShidWZmZXIsIHBTdHIsIChzaXplX3QpbWF4X2J1Zik7Ci0JCQkJCi0JCQkJY2hh ciAqcEJ1ZiA9IHN0cmNocihidWZmZXIsICcjJyk7Ci0JCQkJCi0JCQkJaWYgKHBCdWYpCi0JCQkJ CXsKLQkJCQkJKnBCdWYgPSAwOwotCQkJCQlpZiAoKHBQYXJ0ID0gc3RycmNocigrK3BCdWYsICcj JykpICE9IE5VTEwpCi0JCQkJCQlwUGFydCsrOwotCQkJCQl9Ci0JCQkJfQotCQkJCQkKLQkJCWlu Zm9UYWJsZS0+cHV0U3RyaW5nKDAsIHJlc3VsdFNldC0+Z2V0U3RyaW5nKDEpKTsJLy8gZGF0YWJh c2UKLQkJCWluZm9UYWJsZS0+cHV0U3RyaW5nKDEsIChwVGFibGUgPyBwVGFibGUgOiBwU3RyKSk7 CS8vIHRhYmxlCi0JCQlpbmZvVGFibGUtPnB1dFN0cmluZygyLCAocFBhcnQgPyBwUGFydCA6ICIi KSk7CQkvLyBwYXJ0aXRpb24KLQkJCWluZm9UYWJsZS0+cHV0U3RyaW5nKDMsIHJlc3VsdFNldC0+ Z2V0U3RyaW5nKDMpKTsJLy8gdGFibGVzcGFjZQotCQkJaW5mb1RhYmxlLT5wdXRTdHJpbmcoNCwg cmVzdWx0U2V0LT5nZXRTdHJpbmcoMikpOwkvLyBpbnRlcm5hbCBuYW1lCi0JCQotCQkJLy9mb3Ig KGludCBuID0gMDsgbiA8IDM7ICsrbikKLQkJCS8vCWluZm9UYWJsZS0+cHV0U3RyaW5nKG4sIHJl c3VsdFNldC0+Z2V0U3RyaW5nKG4gKyAxKSk7Ci0JCQkKLQkJCWluZm9UYWJsZS0+cHV0UmVjb3Jk KCk7Ci0JCQl9Ci0JCQotCQlkaWN0aW9uYXJ5Q29ubmVjdGlvbi0+Y29tbWl0KCk7Ci0JCX0KLQlj YXRjaCguLi4pCi0JCXsKLQkJfQotfQotCiB2b2lkIFN0b3JhZ2VIYW5kbGVyOjpzZXRSZWNvcmRN ZW1vcnlNYXgodWludDY0IHZhbHVlKQogewogCWlmIChkaWN0aW9uYXJ5Q29ubmVjdGlvbikKCj09 PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9TdG9yYWdlSGFuZGxlci5oJwotLS0gYS9z dG9yYWdlL2ZhbGNvbi9TdG9yYWdlSGFuZGxlci5oCTIwMDgtMDQtMDUgMjI6MDk6MTcgKzAwMDAK KysrIGIvc3RvcmFnZS9mYWxjb24vU3RvcmFnZUhhbmRsZXIuaAkyMDA4LTA3LTI5IDEwOjQ1OjM5 ICswMDAwCkBAIC04NSwxMiArODUsNyBAQCBwdWJsaWM6CiAJdmlydHVhbCBpbnQJCQlyb2xsYmFj a0J5WGlkKGludCB4aWRMZW5ndGgsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIHhpcyk7CiAKIAl2aXJ0 dWFsIENvbm5lY3Rpb24qCWdldERpY3Rpb25hcnlDb25uZWN0aW9uKHZvaWQpOwotCXZpcnR1YWwg aW50CQkJY3JlYXRlVGFibGVzcGFjZShjb25zdCBjaGFyKiB0YWJsZVNwYWNlTmFtZSwgY29uc3Qg Y2hhciogZmlsZW5hbWUsCi0JCQkJCQkJCQkJCXVuc2lnbmVkIGxvbmcgbG9uZyBpbml0aWFsU2l6 ZSA9IDAsCi0JCQkJCQkJCQkJCXVuc2lnbmVkIGxvbmcgbG9uZyBleHRlbnRTaXplID0gMCwKLQkJ CQkJCQkJCQkJdW5zaWduZWQgbG9uZyBsb25nIGF1dG9leHRlbmRTaXplID0gMCwKLQkJCQkJCQkJ CQkJdW5zaWduZWQgbG9uZyBsb25nIG1heFNpemUgPSAwLAotCQkJCQkJCQkJCQlpbnQgbm9kZWdy b3VwID0gMCwgYm9vbCB3YWl0ID0gZmFsc2UsIGNvbnN0IGNoYXIqIGNvbW1lbnQgPSBOVUxMKTsK Kwl2aXJ0dWFsIGludAkJCWNyZWF0ZVRhYmxlc3BhY2UoY29uc3QgY2hhciogdGFibGVTcGFjZU5h bWUsIGNvbnN0IGNoYXIqIGZpbGVuYW1lLCBjb25zdCBjaGFyKiBjb21tZW50ID0gTlVMTCk7CiAJ dmlydHVhbCBpbnQJCQlkZWxldGVUYWJsZXNwYWNlKGNvbnN0IGNoYXIqIHRhYmxlU3BhY2VOYW1l KTsKIAogCXZpcnR1YWwgU3RvcmFnZVRhYmxlU2hhcmUqIGZpbmRUYWJsZShjb25zdCBjaGFyKiBw YXRobmFtZSk7CkBAIC0xMDgsNyArMTAzLDYgQEAgcHVibGljOgogCXZpcnR1YWwgdm9pZAkJZ2V0 VHJhbnNhY3Rpb25TdW1tYXJ5SW5mbyhJbmZvVGFibGUqIGluZm9UYWJsZSk7CiAJdmlydHVhbCB2 b2lkCQlnZXRUYWJsZVNwYWNlSW5mbyhJbmZvVGFibGUqIGluZm9UYWJsZSk7CiAJdmlydHVhbCB2 b2lkCQlnZXRUYWJsZVNwYWNlRmlsZXNJbmZvKEluZm9UYWJsZSogaW5mb1RhYmxlKTsKLQl2aXJ0 dWFsIHZvaWQJCWdldFRhYmxlc0luZm8oSW5mb1RhYmxlKiBpbmZvVGFibGUpOwogCiAJdmlydHVh bCB2b2lkCQlzZXRJbmRleENoaWxsVGhyZXNob2xkKHVpbnQgdmFsdWUpOwogCXZpcnR1YWwgdm9p ZAkJc2V0UmVjb3JkQ2hpbGxUaHJlc2hvbGQodWludCB2YWx1ZSk7CkBAIC0xMzQsMTIgKzEyOCw3 IEBAIHB1YmxpYzoKIAl2b2lkCQkJCWluaXRpYWxpemUodm9pZCk7CiAJdm9pZAkJCQlkcm9wVGVt cFRhYmxlcyh2b2lkKTsKIAl2b2lkCQkJCWNsZWFuRmlsZU5hbWUoY29uc3QgY2hhciogcGF0aG5h bWUsIGNoYXIqIGZpbGVuYW1lLCBpbnQgZmlsZW5hbWVMZW5ndGgpOwotCUpTdHJpbmcJCQkJZ2Vu Q3JlYXRlVGFibGVTcGFjZShjb25zdCBjaGFyKiB0YWJsZVNwYWNlTmFtZSwgY29uc3QgY2hhciog ZmlsZW5hbWUsCi0JCQkJCQkJCQkJCXVuc2lnbmVkIGxvbmcgbG9uZyBpbml0aWFsU2l6ZSA9IDAs Ci0JCQkJCQkJCQkJCXVuc2lnbmVkIGxvbmcgbG9uZyBleHRlbnRTaXplID0gMCwKLQkJCQkJCQkJ CQkJdW5zaWduZWQgbG9uZyBsb25nIGF1dG9leHRlbmRTaXplID0gMCwKLQkJCQkJCQkJCQkJdW5z aWduZWQgbG9uZyBsb25nIG1heFNpemUgPSAwLAotCQkJCQkJCQkJCQlpbnQgbm9kZWdyb3VwID0g MCwgYm9vbCB3YWl0ID0gZmFsc2UsIGNvbnN0IGNoYXIqIGNvbW1lbnQgPSBOVUxMKTsKKwlKU3Ry aW5nCQkJCWdlbkNyZWF0ZVRhYmxlU3BhY2UoY29uc3QgY2hhciogdGFibGVTcGFjZU5hbWUsIGNv bnN0IGNoYXIqIGZpbGVuYW1lLCBjb25zdCBjaGFyKiBjb21tZW50ID0gTlVMTCk7CiAJCiAJU3Rv cmFnZUNvbm5lY3Rpb24JKmNvbm5lY3Rpb25zW2Nvbm5lY3Rpb25IYXNoU2l6ZV07CiAJU3RvcmFn ZURhdGFiYXNlCQkqZGVmYXVsdERhdGFiYXNlOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3N0b3JhZ2Uv ZmFsY29uL1N0b3JhZ2VUYWJsZVNoYXJlLmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxjb24vU3RvcmFn ZVRhYmxlU2hhcmUuY3BwCTIwMDgtMDctMTQgMDU6Mjc6NTcgKzAwMDAKKysrIGIvc3RvcmFnZS9m YWxjb24vU3RvcmFnZVRhYmxlU2hhcmUuY3BwCTIwMDgtMDctMTUgMTg6NTc6MjcgKzAwMDAKQEAg LTQ2Myw3ICs0NjMsNyBAQCB2b2lkIFN0b3JhZ2VUYWJsZVNoYXJlOjpyZWdpc3RlclRhYmxlKHZv CiAJCiAJdHJ5CiAJCXsKLQkJU3luYyBzeW5jKCZzdG9yYWdlSGFuZGxlci0+ZGljdGlvbmFyeVN5 bmNPYmplY3QsICJTdG9yYWdlVGFibGVTaGFyZTo6c2F2ZSIpOworCQlTeW5jIHN5bmMoJnN0b3Jh Z2VIYW5kbGVyLT5kaWN0aW9uYXJ5U3luY09iamVjdCwgIlN0b3JhZ2VUYWJsZVNoYXJlOjpyZWdp c3RlclRhYmxlIik7CiAJCXN5bmMubG9jayhFeGNsdXNpdmUpOwogCQljb25uZWN0aW9uID0gc3Rv cmFnZUhhbmRsZXItPmdldERpY3Rpb25hcnlDb25uZWN0aW9uKCk7CiAJCXN0YXRlbWVudCA9IGNv bm5lY3Rpb24tPnByZXBhcmVTdGF0ZW1lbnQoCkBAIC00OTQsNyArNDk0LDcgQEAgdm9pZCBTdG9y YWdlVGFibGVTaGFyZTo6cmVnaXN0ZXJUYWJsZSh2bwogCiB2b2lkIFN0b3JhZ2VUYWJsZVNoYXJl Ojp1blJlZ2lzdGVyVGFibGUodm9pZCkKIHsKLQlTeW5jIHN5bmMoJnN0b3JhZ2VIYW5kbGVyLT5k aWN0aW9uYXJ5U3luY09iamVjdCwgIlN0b3JhZ2VUYWJsZVNoYXJlOjp1bnNhdmUiKTsKKwlTeW5j IHN5bmMoJnN0b3JhZ2VIYW5kbGVyLT5kaWN0aW9uYXJ5U3luY09iamVjdCwgIlN0b3JhZ2VUYWJs ZVNoYXJlOjp1blJlZ2lzdGVyVGFibGUiKTsKIAlzeW5jLmxvY2soRXhjbHVzaXZlKTsKIAlDb25u ZWN0aW9uICpjb25uZWN0aW9uID0gc3RvcmFnZUhhbmRsZXItPmdldERpY3Rpb25hcnlDb25uZWN0 aW9uKCk7CiAJUHJlcGFyZWRTdGF0ZW1lbnQgKnN0YXRlbWVudCA9IGNvbm5lY3Rpb24tPnByZXBh cmVTdGF0ZW1lbnQoCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vU3ltYm9sTWFu YWdlci5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29uL1N5bWJvbE1hbmFnZXIuY3BwCTIwMDgtMDYt MDYgMTI6MzQ6MTkgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24vU3ltYm9sTWFuYWdlci5jcHAJ MjAwOC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtNTUsNiArNTUsNyBAQCBTeW1ib2xNYW5hZ2Vy OjpTeW1ib2xNYW5hZ2VyKCkKIAlzZWN0aW9ucy0+bmV4dCA9IE5VTEw7CiAJbmV4dCA9IHNlY3Rp b25zLT5zcGFjZTsKIAltZW1zZXQgKGhhc2hUYWJsZSwgMCwgc2l6ZW9mIChoYXNoVGFibGUpKTsK KwlzeW5jT2JqZWN0LnNldE5hbWUoIlN5bWJvbE1hbmFnZXI6OnN5bmNPYmplY3QiKTsKIH0KIAog U3ltYm9sTWFuYWdlcjo6flN5bWJvbE1hbmFnZXIoKQpAQCAtOTgsNyArOTksNyBAQCBjb25zdCBj aGFyKiBTeW1ib2xNYW5hZ2VyOjpnZXRTeW1ib2woY29uCiAJCWlmIChzZWN0aW9uLT5zcGFjZSA8 PSBzdHJpbmcgJiYgc3RyaW5nIDwgc2VjdGlvbi0+c3BhY2UgKyBzaXplb2YgKHNlY3Rpb24tPnNw YWNlKSkKIAkJCXJldHVybiBzdHJpbmc7CiAKLQlTeW5jIHN5bmMgKCZzeW5jT2JqZWN0LCAiU3lt Ym9sTWFuYWdlcjo6Z2V0U3ltYm9sIik7CisJU3luYyBzeW5jICgmc3luY09iamVjdCwgIlN5bWJv bE1hbmFnZXI6OmdldFN5bWJvbCgxKSIpOwogCXN5bmMubG9jayAoU2hhcmVkKTsKIAlpbnQJdmFs dWUgPSAwLCBjOwogCWNvbnN0IGNoYXIgKnA7CkBAIC0xNTYsNyArMTU3LDcgQEAgY29uc3QgY2hh ciogU3ltYm9sTWFuYWdlcjo6Z2V0U3RyaW5nKGNvbgogCQlpZiAoc2VjdGlvbi0+c3BhY2UgPD0g c3RyaW5nICYmIHN0cmluZyA8IHNlY3Rpb24tPnNwYWNlICsgc2l6ZW9mIChzZWN0aW9uLT5zcGFj ZSkpCiAJCQlyZXR1cm4gc3RyaW5nOwogCi0JU3luYyBzeW5jICgmc3luY09iamVjdCwgIlN5bWJv bE1hbmFnZXI6OmdldFN5bWJvbCIpOworCVN5bmMgc3luYyAoJnN5bmNPYmplY3QsICJTeW1ib2xN YW5hZ2VyOjpnZXRTdHJpbmciKTsKIAlzeW5jLmxvY2sgKFNoYXJlZCk7CiAJaW50CXZhbHVlID0g MCwgYzsKIAljb25zdCBjaGFyICpwOwpAQCAtMjE4LDcgKzIxOSw3IEBAIGJvb2wgU3ltYm9sTWFu YWdlcjo6aXNTeW1ib2woY29uc3QgY2hhciAKIAogY29uc3QgY2hhciogU3ltYm9sTWFuYWdlcjo6 Z2V0U3ltYm9sKGNvbnN0IFdDU3RyaW5nICpzdHJpbmcpCiB7Ci0JU3luYyBzeW5jICgmc3luY09i amVjdCwgIlN5bWJvbE1hbmFnZXI6OmdldFN5bWJvbChXQykiKTsKKwlTeW5jIHN5bmMgKCZzeW5j T2JqZWN0LCAiU3ltYm9sTWFuYWdlcjo6Z2V0U3ltYm9sKDIpIik7CiAJc3luYy5sb2NrIChTaGFy ZWQpOwogCWludAl2YWx1ZSA9IDAsIGM7CiAJLy9pbnQgbGVuZ3RoID0gVW5pY29kZTo6Z2V0VXRm OExlbmd0aChzdHJpbmctPmNvdW50LCAoVUNIQVIqKSBzdHJpbmctPnN0cmluZyk7Cgo9PT0gbW9k aWZpZWQgZmlsZSAnc3RvcmFnZS9mYWxjb24vU3luYy5jcHAnCi0tLSBhL3N0b3JhZ2UvZmFsY29u L1N5bmMuY3BwCTIwMDctMTAtMzEgMjA6MDY6MDcgKzAwMDAKKysrIGIvc3RvcmFnZS9mYWxjb24v U3luYy5jcHAJMjAwOC0wNy0yNCAwODo0NTowMyArMDAwMApAQCAtMzcsNyArMzcsNyBAQCBTeW5j OjpTeW5jKFN5bmNocm9uaXphdGlvbk9iamVjdCAqb2JqLCBjCiAJQVNTRVJUIChvYmopOwogCXN0 YXRlID0gTm9uZTsKIAlzeW5jT2JqZWN0ID0gb2JqOwotCXdoZXJlID0gZnJvbVdoZXJlOworCWxv Y2F0aW9uID0gZnJvbVdoZXJlOwogCXByaW9yID0gTlVMTDsKIAltYXJrZWQgPSBOVUxMOwogfQpA QCAtNzAsNyArNzAsNyBAQCB2b2lkIFN5bmM6OmxvY2soTG9ja1R5cGUgdHlwZSwgaW50IHRpbWVv CiAvKioqCiB2b2lkIFN5bmM6OmxvY2soTG9ja1R5cGUgdHlwZSwgY29uc3QgY2hhciAqZnJvbVdo ZXJlKQogewotCXdoZXJlID0gZnJvbVdoZXJlOworCWxvY2F0aW9uID0gZnJvbVdoZXJlOwogCWxv Y2sodHlwZSk7CiB9CiAqKiovCkBAIC0xMTAsNyArMTEwLDcgQEAgdm9pZCBTeW5jOjpmaW5kTG9j a3MoTGlua2VkTGlzdCAmdGhyZWFkcwogdm9pZCBTeW5jOjpwcmludChjb25zdCBjaGFyICpsYWJl bCkKIHsKIAlMT0dfREVCVUcgKCIlcyAlcyBzdGF0ZSAlZCAoJWQpIHN5bmNPYmplY3QgJXBcbiIs IAotCQkJICAgbGFiZWwsIHdoZXJlLCBzdGF0ZSwgcmVxdWVzdCwgc3luY09iamVjdCk7CisJCQkg ICBsYWJlbCwgbG9jYXRpb24sIHN0YXRlLCByZXF1ZXN0LCBzeW5jT2JqZWN0KTsKIH0KIAogdm9p ZCBTeW5jOjptYXJrKGNvbnN0IGNoYXIqIHRleHQpCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3RvcmFn ZS9mYWxjb24vU3luYy5oJwotLS0gYS9zdG9yYWdlL2ZhbGNvbi9TeW5jLmgJMjAwNy0xMC0zMSAy MDowNjowNyArMDAwMAorKysgYi9zdG9yYWdlL2ZhbGNvbi9TeW5jLmgJMjAwOC0wNy0yNCAwODo0 NTowMyArMDAwMApAQCAtMjgsMTAgKzI4LDEwIEBACiAKIGNsYXNzIExpbmtlZExpc3Q7CiAKLWNs YXNzIFN5bmMgIAorY2xhc3MgU3luYwogewogcHVibGljOgotCVN5bmMoU3luY2hyb25pemF0aW9u T2JqZWN0ICpvYmosIGNvbnN0IGNoYXIgKndoZXJlKTsKKwlTeW5jKFN5bmNocm9uaXphdGlvbk9i amVjdCAqb2JqLCBjb25zdCBjaGFyICpsb2NhdGlvbik7CiAJdmlydHVhbCB+U3luYygpOwogCiAJ dm9pZAlwcmludCAoY29uc3QgY2hhciogbGFiZWwpOwpAQCAtNDAsMTQgKzQwLDE0IEBAIHB1Ymxp YzoKIAkvL3ZvaWQJcHJpbnQoaW50IGxldmVsKTsKIAl2b2lkCXNldE9iamVjdCAoU3luY2hyb25p emF0aW9uT2JqZWN0ICpvYmopOwogCXZvaWQJdW5sb2NrKCk7Ci0Jdm9pZAlsb2NrIChMb2NrVHlw ZSB0eXBlKTsKKwl2b2lkCWxvY2soTG9ja1R5cGUgdHlwZSk7CiAJdm9pZAlsb2NrKExvY2tUeXBl IHR5cGUsIGludCB0aW1lb3V0KTsKIAogCVN5bmNocm9uaXphdGlvbk9iamVjdAkqc3luY09iamVj dDsKIAlMb2NrVHlwZQlzdGF0ZTsKIAlMb2NrVHlwZQlyZXF1ZXN0OwogCVN5bmMJCSpwcmlvcjsK LQljb25zdCBjaGFyCSp3aGVyZTsKKwljb25zdCBjaGFyCSpsb2NhdGlvbjsKIAljb25zdCBjaGFy CSptYXJrZWQ7CiAJdm9pZCBtYXJrKGNvbnN0IGNoYXIqIHRleHQpOwogfTsKCj09PSBtb2RpZmll ZCBmaWxlICdzdG9yYWdlL2ZhbGNvbi9TeW5jT2JqZWN0LmNwcCcKLS0tIGEvc3RvcmFnZS9mYWxj b24vU3luY09iamVjdC5jcHAJMjAwOC0wNy0wOCAxNjowMTo0MSArMDAwMAorKysgYi9zdG9yYWdl L2ZhbGNvbi9TeW5jT2JqZWN0LmNwcAkyMDA4LTA4LTAxIDE3OjU2OjI4ICswMDAwCkBAIC0xMTcs NyArMTE3LDcgQEAgU3luY09iamVjdDo6U3luY09iamVjdCgpCiAJZXhjbHVzaXZlQ291bnQgPSAw OwogCXdhaXRDb3VudCA9IDA7CiAJcXVldWVMZW5ndGggPSAwOwotCXdoZXJlID0gTlVMTDsKKwls b2NhdGlvbiA9IE5VTEw7CiAJbmFtZSA9IE5VTEw7CiAJb2JqZWN0SWQgPSBJTlRFUkxPQ0tFRF9J TkNSRU1FTlQobmV4dFN5bmNPYmplY3RJZCk7CiAJCkBAIC0xMzMsOSArMTMzLDYgQEAgU3luY09i amVjdDo6flN5bmNPYmplY3QoKQogI2lmZGVmIFRSQUNFX1NZTkNfT0JKRUNUUwogCWlmIChvYmpl Y3RJZCA8IE1BWF9TWU5DX09CSkVDVFMpCiAJCXN5bmNPYmplY3RzW29iamVjdElkXSA9IE5VTEw7 Ci0JCQotCWlmIChuYW1lKQotCQlkZWxldGUgW10gbmFtZTsKICNlbmRpZgogfQogCkBAIC0xNDYs NyArMTQzLDcgQEAgdm9pZCBTeW5jT2JqZWN0Ojpsb2NrKFN5bmMgKnN5bmMsIExvY2tUeQogCiAj aWZkZWYgVFJBQ0VfU1lOQ19PQkpFQ1RTCiAJaWYgKHN5bmMpCi0JCXdoZXJlID0gc3luYy0+d2hl cmU7CisJCWxvY2F0aW9uID0gc3luYy0+bG9jYXRpb247CiAjZW5kaWYKIAkKIAkvLyBTaGFyZWQg Y2FzZQpAQCAtMzEzLDcgKzMxMCw3IEBAIHZvaWQgU3luY09iamVjdDo6bG9jayhTeW5jICpzeW5j LCBMb2NrVHkKIAogI2lmZGVmIFRSQUNFX1NZTkNfT0JKRUNUUwogCWlmIChzeW5jKQotCQl3aGVy ZSA9IHN5bmMtPndoZXJlOworCQlsb2NhdGlvbiA9IHN5bmMtPmxvY2F0aW9uOwogI2VuZGlmCiAJ CiAJaWYgKHR5cGUgPT0gU2hhcmVkKQpAQCAtOTc5LDcgKzk3Niw3IEBAIHZvaWQgU3luY09iamVj dDo6ZnJlcXVlbnRTdGFsbGVyKFRocmVhZCAKIAlTeW5jICpsb2NrUGVuZGluZyA9IHRocmVhZC0+ bG9ja1BlbmRpbmc7CiAKIAlpZiAoc3luYykKLQkJTE9HX0RFQlVHKCJGcmVxdWVudCBzdGFsbCBm cm9tICVzXG4iLCBzeW5jLT53aGVyZSk7CisJCUxPR19ERUJVRygiRnJlcXVlbnQgc3RhbGwgZnJv bSAlc1xuIiwgc3luYy0+bG9jYXRpb24pOwogCWVsc2UKIAkJTE9HX0RFQlVHKCJGcmVxdWVudCBz dGFsbCBmcm9tIHVua25vd25cbiIpOwogCQkKQEAgLTk5NSw5ICs5OTIsOSBAQCB2b2lkIFN5bmNP YmplY3Q6OmFuYWx5emUoU3RyZWFtKiBzdHJlYW0pCiAJc3RyZWFtLT5mb3JtYXQoIldoZXJlXHRT aGFyZXNcdEV4Y2x1c2l2ZXNcdFdhaXRzXHRBdmVyYWdlIFF1ZXVlXG4iKTsKIAkKIAlmb3IgKGlu dCBuID0gMTsgbiA8IE1BWF9TWU5DX09CSkVDVFM7ICsrbikKLQkJaWYgKCAoc3luY09iamVjdCA9 IHN5bmNPYmplY3RzW25dKSAmJiBzeW5jT2JqZWN0LT53aGVyZSkKKwkJaWYgKCAoc3luY09iamVj dCA9IHN5bmNPYmplY3RzW25dKSAmJiBzeW5jT2JqZWN0LT5sb2NhdGlvbikKIAkJCXN0cmVhbS0+ Zm9ybWF0KCIlc1x0JWRcdCVkXHQlZFx0JWRcdFxuIiwKLQkJCQkJc3luY09iamVjdC0+d2hlcmUs CisJCQkJCXN5bmNPYmplY3QtPmxvY2F0aW9uLAogCQkJCQlzeW5jT2JqZWN0LT5zaGFyZWRDb3Vu dCwKIAkJCQkJc3luY09iamVjdC0+ZXhjbHVzaXZlQ291bnQsCiAJCQkJCXN5bmNPYmplY3QtPndh aXRDb3VudCwKQEAgLTEwMTksNyArMTAxNiw3IEBAIHZvaWQgU3luY09iamVjdDo6ZHVtcCh2b2lk KQogCWZvciAoaW50IG4gPSAxOyBuIDwgTUFYX1NZTkNfT0JKRUNUUzsgKytuKQogCQlpZiAoIChz eW5jT2JqZWN0ID0gc3luY09iamVjdHNbbl0pICkKIAkJCXsKLQkJCWNvbnN0IGNoYXIgKm5hbWUg PSAoc3luY09iamVjdC0+bmFtZSkgPyBzeW5jT2JqZWN0LT5uYW1lIDogc3luY09iamVjdC0+d2hl cmU7CisJCQljb25zdCBjaGFyICpuYW1lID0gKHN5bmNPYmplY3QtPm5hbWUpID8gc3luY09iamVj dC0+bmFtZSA6IHN5bmNPYmplY3QtPmxvY2F0aW9uOwogCQkJCiAJCQlpZiAobmFtZSkKIAkJCQlm cHJpbnRmKG91dCwgIiVzXHQlZFx0JWRcdCVkXHQlZFx0XG4iLApAQCAtMTA0NCwxMCArMTA0MSwx MCBAQCB2b2lkIFN5bmNPYmplY3Q6OmdldFN5bmNJbmZvKEluZm9UYWJsZSogCiAJU3luY09iamVj dCAqc3luY09iamVjdDsKIAkKIAlmb3IgKGludCBpbmRleCA9IDE7IGluZGV4IDwgTUFYX1NZTkNf T0JKRUNUUzsgKytpbmRleCkKLQkJaWYgKCAoc3luY09iamVjdCA9IHN5bmNPYmplY3RzW2luZGV4 XSkgJiYgc3luY09iamVjdC0+d2hlcmUpCisJCWlmICggKHN5bmNPYmplY3QgPSBzeW5jT2JqZWN0 c1tpbmRleF0pICYmIHN5bmNPYmplY3QtPmxvY2F0aW9uKQogCQkJewogCQkJaW50IG4gPSAwOwot CQkJaW5mb1RhYmxlLT5wdXRTdHJpbmcobisrLCBzeW5jT2JqZWN0LT53aGVyZSk7CisJCQlpbmZv VGFibGUtPnB1dFN0cmluZyhuKyssIHN5bmNPYmplY3QtPmxvY2F0aW9uKTsKIAkJCWluZm9UYWJs ZS0+cHV0SW50KG4rKywgc3luY09iamVjdC0+c2hhcmVkQ291bnQpOwogCQkJaW5mb1RhYmxlLT5w dXRJbnQobisrLCBzeW5jT2JqZWN0LT5leGNsdXNpdmVDb3