ZGlmZiAtLWdpdCBhL2F1dG8vbGliL21kNS9tYWtlZmlsZS5tc3ZjIGIvYXV0by9saWIvbWQ1L21ha2VmaWxlLm1zdmMKaW5kZXggYWFmZmUxOC4uMjc5OGQ2NSAxMDA2NDQKLS0tIGEvYXV0by9saWIvbWQ1L21ha2VmaWxlLm1zdmMKKysrIGIvYXV0by9saWIvbWQ1L21ha2VmaWxlLm1zdmMKQEAgLTQsMTYgKzQsMTYgQEAKIAogQ0ZMQUdTID0gLW5vbG9nbyAtTzIgLU9iMSAtT2kgLUdzICQoTElCQykgJChDUFVfT1BUKSAtRCBMX0VORElBTgogCi0haWYgIiQoTUQ1X0FTTSkiID09ICJZRVMiCishSUYgIiQoTUQ1X0FTTSkiID09ICJZRVMiCiAKIG1kNS5saWI6CiAJY2wgLWMgJChDRkxBR1MpIC1EIE1ENV9BU00gbWQ1X2Rnc3QuYwogCWxpbmsgLWxpYiAtb3V0Om1kNS5saWIgbWQ1X2Rnc3Qub2JqIGFzbS9tLXdpbjMyLm9iagogCi0hZWxzZQorIUVMU0UKIAogbWQ1LmxpYjoKIAljbCAtYyAkKENGTEFHUykgbWQ1X2Rnc3QuYwogCWxpbmsgLWxpYiAtb3V0Om1kNS5saWIgbWQ1X2Rnc3Qub2JqCiAKLSFlbmRpZgorIUVORElGCmRpZmYgLS1naXQgYS9hdXRvL2xpYi9zaGExL21ha2VmaWxlLm1zdmMgYi9hdXRvL2xpYi9zaGExL21ha2VmaWxlLm1zdmMKaW5kZXggMmVjNTVkNS4uOTI5ZTQ2MiAxMDA2NDQKLS0tIGEvYXV0by9saWIvc2hhMS9tYWtlZmlsZS5tc3ZjCisrKyBiL2F1dG8vbGliL3NoYTEvbWFrZWZpbGUubXN2YwpAQCAtNCwxNiArNCwxNiBAQAogCiBDRkxBR1MgPSAtbm9sb2dvIC1PMiAtT2IxIC1PaSAtR3MgJChMSUJDKSAkKENQVV9PUFQpIC1EIExfRU5ESUFOCiAKLSFpZiAiJChTSEExX0FTTSkiID09ICJZRVMiCishSUYgIiQoU0hBMV9BU00pIiA9PSAiWUVTIgogCiBzaGExLmxpYjoKIAljbCAtYyAkKENGTEFHUykgLUQgU0hBMV9BU00gc2hhMWRnc3QuYwogCWxpbmsgLWxpYiAtb3V0OnNoYTEubGliIHNoYTFkZ3N0Lm9iaiBhc20vcy13aW4zMi5vYmoKIAotIWVsc2UKKyFFTFNFCiAKIHNoYTEubGliOgogCWNsIC1jICQoQ0ZMQUdTKSBzaGExZGdzdC5jCiAJbGluayAtbGliIC1vdXQ6c2hhMS5saWIgc2hhMWRnc3Qub2JqCiAKLSFlbmRpZgorIUVORElGCmRpZmYgLS1naXQgYS9kb2NzL3htbC9uZ2lueC9jaGFuZ2VzLnhtbCBiL2RvY3MveG1sL25naW54L2NoYW5nZXMueG1sCmluZGV4IDBjMGRlODkuLmEyMTA3NTAgMTAwNjQ0Ci0tLSBhL2RvY3MveG1sL25naW54L2NoYW5nZXMueG1sCisrKyBiL2RvY3MveG1sL25naW54L2NoYW5nZXMueG1sCkBAIC05LDYgKzksNDIgQEAKIDx0aXRsZSBsYW5nPSJlbiI+bmdpbnggY2hhbmdlbG9nPC90aXRsZT4KIAogCis8Y2hhbmdlcyB2ZXI9IjAuMy41OSIgZGF0ZT0iMTYuMDguMjAwNiI+CisKKzxjaGFuZ2UgdHlwZT0iZmVhdHVyZSI+Cis8cGFyYSBsYW5nPSJydSI+CivUxdDF0tggzc/Wzs8gxMXMwdTYIM7F08vPzNjLzyDQxdLFzsHQ0sHXzMXOycog3sXSxdogxMnSxcvUydfVIGVycm9yX3BhZ2UuCis8L3BhcmE+Cis8cGFyYSBsYW5nPSJlbiI+Citub3cgaXMgcG9zc2libGUgdG8gZG8gc2V2ZXJhbCByZWRpcmVjdGlvbiB1c2luZyB0aGUgImVycm9yX3BhZ2UiIGRpcmVjdGl2ZS4KKzwvcGFyYT4KKzwvY2hhbmdlPgorCis8Y2hhbmdlIHR5cGU9ImJ1Z2ZpeCI+Cis8cGFyYSBsYW5nPSJydSI+CivEydLFy9TJ18EgZGF2X2FjY2VzcyDOxSDQz8TExdLWydfBzMEg1NLJINDB0sHNxdTSwS4KKzwvcGFyYT4KKzxwYXJhIGxhbmc9ImVuIj4KK3RoZSAiZGF2X2FjY2VzcyIgZGlyZWN0aXZlIGRpZCBub3Qgc3VwcG9ydCB0aHJlZSBwYXJhbWV0ZXJzLgorPC9wYXJhPgorPC9jaGFuZ2U+CisKKzxjaGFuZ2UgdHlwZT0iYnVnZml4Ij4KKzxwYXJhIGxhbmc9InJ1Ij4KK8TJ0sXL1MnXwSBlcnJvcl9wYWdlIM7FIMnazcXO0czBINPU0s/L1SAiQ29udGVudC1UeXBlIgor0M/TzMUg0MXSxc7B0NLB18zFzsnRINMg0M/Nz93YwCAiWC1BY2NlbC1SZWRpcmVjdCI7CivP28nCy8Eg0M/R18nMwdPYINcgMC4zLjU4LgorPC9wYXJhPgorPHBhcmEgbGFuZz0iZW4iPgordGhlICJlcnJvcl9wYWdlIiBkaXJlY3RpdmUgZGlkIG5vdCBjaGFuZ2VzIHRoZSAiQ29udGVudC1UeXBlIiBoZWFkZXIgbGluZQorYWZ0ZXIgdGhlICJYLUFjY2VsLVJlZGlyZWN0IiB3YXMgdXNlZDsKK2J1ZyBhcHBlYXJlZCBpbiAwLjMuNTguCis8L3BhcmE+Cis8L2NoYW5nZT4KKworPC9jaGFuZ2VzPgorCisKIDxjaGFuZ2VzIHZlcj0iMC4zLjU4IiBkYXRlPSIxNC4wOC4yMDA2Ij4KIAogPGNoYW5nZSB0eXBlPSJmZWF0dXJlIj4KZGlmZiAtLWdpdCBhL3NyYy9jb3JlL25naW54LmggYi9zcmMvY29yZS9uZ2lueC5oCmluZGV4IGI3YzBkMDguLjIyNGZiNzAgMTAwNjQ0Ci0tLSBhL3NyYy9jb3JlL25naW54LmgKKysrIGIvc3JjL2NvcmUvbmdpbnguaApAQCAtOCw3ICs4LDcgQEAKICNkZWZpbmUgX05HSU5YX0hfSU5DTFVERURfCiAKIAotI2RlZmluZSBOR0lOWF9WRVIgICAgICAgICAgIm5naW54LzAuMy41OCIKKyNkZWZpbmUgTkdJTlhfVkVSICAgICAgICAgICJuZ2lueC8wLjMuNTkiCiAKICNkZWZpbmUgTkdJTlhfVkFSICAgICAgICAgICJOR0lOWCIKICNkZWZpbmUgTkdYX09MRFBJRF9FWFQgICAgICIub2xkYmluIgpkaWZmIC0tZ2l0IGEvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9kYXZfbW9kdWxlLmMgYi9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2Rhdl9tb2R1bGUuYwppbmRleCA5OTAxMzg2Li44YmVkZTczIDEwMDY0NAotLS0gYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2Rhdl9tb2R1bGUuYworKysgYi9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2Rhdl9tb2R1bGUuYwpAQCAtNTcsNyArNTcsNyBAQAogICAgICAgTlVMTCB9LAogCiAgICAgeyBuZ3hfc3RyaW5nKCJkYXZfYWNjZXNzIiksCi0gICAgICBOR1hfSFRUUF9NQUlOX0NPTkZ8TkdYX0hUVFBfU1JWX0NPTkZ8TkdYX0hUVFBfTE9DX0NPTkZ8TkdYX0NPTkZfVEFLRTEyLAorICAgICAgTkdYX0hUVFBfTUFJTl9DT05GfE5HWF9IVFRQX1NSVl9DT05GfE5HWF9IVFRQX0xPQ19DT05GfE5HWF9DT05GX1RBS0UxMjMsCiAgICAgICBuZ3hfaHR0cF9kYXZfYWNjZXNzLAogICAgICAgTkdYX0hUVFBfTE9DX0NPTkZfT0ZGU0VULAogICAgICAgMCwKZGlmZiAtLWdpdCBhL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfbWVtY2FjaGVkX21vZHVsZS5jIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9tZW1jYWNoZWRfbW9kdWxlLmMKaW5kZXggNjFhOTUwMi4uYmI1YWI1ZCAxMDA2NDQKLS0tIGEvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9tZW1jYWNoZWRfbW9kdWxlLmMKKysrIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9tZW1jYWNoZWRfbW9kdWxlLmMKQEAgLTUyNiw3ICs1MjYsNyBAQAogICAgIGNvbmYtPnVwc3RyZWFtLm1heF90ZW1wX2ZpbGVfc2l6ZSA9IDA7CiAgICAgY29uZi0+dXBzdHJlYW0udGVtcF9maWxlX3dyaXRlX3NpemUgPSAwOwogICAgIGNvbmYtPnVwc3RyZWFtLmludGVyY2VwdF9lcnJvcnMgPSAxOwotICAgIGNvbmYtPnVwc3RyZWFtLnJlZGlyZWN0XzQwNCA9IDE7CisgICAgY29uZi0+dXBzdHJlYW0uaW50ZXJjZXB0XzQwNCA9IDE7CiAgICAgY29uZi0+dXBzdHJlYW0ucGFzc19yZXF1ZXN0X2hlYWRlcnMgPSAwOwogICAgIGNvbmYtPnVwc3RyZWFtLnBhc3NfcmVxdWVzdF9ib2R5ID0gMDsKIApkaWZmIC0tZ2l0IGEvc3JjL2h0dHAvbmd4X2h0dHAuaCBiL3NyYy9odHRwL25neF9odHRwLmgKaW5kZXggNDE3MjBmMi4uNzRlYmZjNyAxMDA2NDQKLS0tIGEvc3JjL2h0dHAvbmd4X2h0dHAuaAorKysgYi9zcmMvaHR0cC9uZ3hfaHR0cC5oCkBAIC01MywxMiArNTMsOCBAQAogfTsKIAogCi0jZGVmaW5lIG5neF9odHRwX2dldF9tb2R1bGVfY3R4KHIsIG1vZHVsZSkgICAgIChyKS0+Y3R4W21vZHVsZS5jdHhfaW5kZXhdCi0jZGVmaW5lIG5neF9odHRwX2dldF9tb2R1bGVfZXJyX2N0eChyLCBtb2R1bGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgKChyKS0+ZXJyX2N0eCA/IChyKS0+ZXJyX2N0eFttb2R1bGUuY3R4X2luZGV4XSA6IChyKS0+Y3R4W21vZHVsZS5jdHhfaW5kZXhdKQotCi0jZGVmaW5lIG5neF9odHRwX3NldF9jdHgociwgYywgbW9kdWxlKSAgICAgICAgIHItPmN0eFttb2R1bGUuY3R4X2luZGV4XSA9IGM7Ci0jZGVmaW5lIG5neF9odHRwX2RlbGV0ZV9jdHgociwgbW9kdWxlKSAgICAgICAgIHItPmN0eFttb2R1bGUuY3R4X2luZGV4XSA9IE5VTEw7CisjZGVmaW5lIG5neF9odHRwX2dldF9tb2R1bGVfY3R4KHIsIG1vZHVsZSkgIChyKS0+Y3R4W21vZHVsZS5jdHhfaW5kZXhdCisjZGVmaW5lIG5neF9odHRwX3NldF9jdHgociwgYywgbW9kdWxlKSAgICAgIHItPmN0eFttb2R1bGUuY3R4X2luZGV4XSA9IGM7CiAKIAogdm9pZCBuZ3hfaHR0cF9pbml0X2Nvbm5lY3Rpb24obmd4X2Nvbm5lY3Rpb25fdCAqYyk7CmRpZmYgLS1naXQgYS9zcmMvaHR0cC9uZ3hfaHR0cF9jb3JlX21vZHVsZS5jIGIvc3JjL2h0dHAvbmd4X2h0dHBfY29yZV9tb2R1bGUuYwppbmRleCA3NjRmMzVjLi5iMjg5MzE3IDEwMDY0NAotLS0gYS9zcmMvaHR0cC9uZ3hfaHR0cF9jb3JlX21vZHVsZS5jCisrKyBiL3NyYy9odHRwL25neF9odHRwX2NvcmVfbW9kdWxlLmMKQEAgLTQ2NCw3ICs0NjQsNyBAQAogCiAgICAgci0+Y29ubmVjdGlvbi0+dW5leHBlY3RlZF9lb2YgPSAwOwogCi0gICAgaWYgKHItPmVycl9jdHggPT0gTlVMTCkgeworICAgIGlmICghci0+aW50ZXJuYWwpIHsKICAgICAgICAgc3dpdGNoIChyLT5oZWFkZXJzX2luLmNvbm5lY3Rpb25fdHlwZSkgewogICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICBpZiAoci0+aHR0cF92ZXJzaW9uID4gTkdYX0hUVFBfVkVSU0lPTl8xMCkgewpAQCAtMTM0MSwyMSArMTM0MSw4IEBACiAgICAgICAgIHJldHVybiBOR1hfSFRUUF9JTlRFUk5BTF9TRVJWRVJfRVJST1I7CiAgICAgfQogCi0gICAgaWYgKHItPmVycl9jdHgpIHsKLQotICAgICAgICAvKiBhbGxvY2F0ZSB0aGUgbmV3IG1vZHVsZSdzIGNvbnRleHRzICovCi0KLSAgICAgICAgci0+Y3R4ID0gbmd4X3BjYWxsb2Moci0+cG9vbCwgc2l6ZW9mKHZvaWQgKikgKiBuZ3hfaHR0cF9tYXhfbW9kdWxlKTsKLSAgICAgICAgaWYgKHItPmN0eCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICByZXR1cm4gTkdYX0hUVFBfSU5URVJOQUxfU0VSVkVSX0VSUk9SOwotICAgICAgICB9Ci0KLSAgICB9IGVsc2UgewotCi0gICAgICAgIC8qIGNsZWFyIHRoZSBtb2R1bGVzIGNvbnRleHRzICovCi0KLSAgICAgICAgbmd4X21lbXplcm8oci0+Y3R4LCBzaXplb2Yodm9pZCAqKSAqIG5neF9odHRwX21heF9tb2R1bGUpOwotICAgIH0KKyAgICAvKiBjbGVhciB0aGUgbW9kdWxlcyBjb250ZXh0cyAqLworICAgIG5neF9tZW16ZXJvKHItPmN0eCwgc2l6ZW9mKHZvaWQgKikgKiBuZ3hfaHR0cF9tYXhfbW9kdWxlKTsKIAogICAgIGNzY2YgPSBuZ3hfaHR0cF9nZXRfbW9kdWxlX3Nydl9jb25mKHIsIG5neF9odHRwX2NvcmVfbW9kdWxlKTsKICAgICByLT5sb2NfY29uZiA9IGNzY2YtPmN0eC0+bG9jX2NvbmY7CmRpZmYgLS1naXQgYS9zcmMvaHR0cC9uZ3hfaHR0cF9yZXF1ZXN0LmMgYi9zcmMvaHR0cC9uZ3hfaHR0cF9yZXF1ZXN0LmMKaW5kZXggNDE3ZjNkZi4uZWI4YjU1NyAxMDA2NDQKLS0tIGEvc3JjL2h0dHAvbmd4X2h0dHBfcmVxdWVzdC5jCisrKyBiL3NyYy9odHRwL25neF9odHRwX3JlcXVlc3QuYwpAQCAtNDI0LDYgKzQyNCw5IEBACiAgICAgci0+aGVhZGVyc19vdXQuY29udGVudF9sZW5ndGhfbiA9IC0xOwogICAgIHItPmhlYWRlcnNfb3V0Lmxhc3RfbW9kaWZpZWRfdGltZSA9IC0xOwogCisgICAgci0+dXJpX2NoYW5nZXMgPSBOR1hfSFRUUF9NQVhfVVJJX0NIQU5HRVMgKyAxOworICAgIHItPnN1YnJlcXVlc3RzID0gTkdYX0hUVFBfTUFYX1NVQlJFUVVFU1RTICsgMTsKKwogICAgIHItPmh0dHBfc3RhdGUgPSBOR1hfSFRUUF9SRUFESU5HX1JFUVVFU1RfU1RBVEU7CiAKICAgICBjdHggPSBjLT5sb2ctPmRhdGE7CkBAIC02NjcsOSArNjcwLDYgQEAKICAgICAgICAgICAgICAgICBjLT53cml0ZS0+aGFuZGxlciA9IG5neF9odHRwX3JlcXVlc3RfaGFuZGxlcjsKICAgICAgICAgICAgICAgICByLT5yZWFkX2V2ZW50X2hhbmRsZXIgPSBuZ3hfaHR0cF9ibG9ja19yZWFkOwogCi0gICAgICAgICAgICAgICAgci0+dXJpX2NoYW5nZXMgPSBOR1hfSFRUUF9NQVhfVVJJX0NIQU5HRVMgKyAxOwotICAgICAgICAgICAgICAgIHItPnN1YnJlcXVlc3RzID0gTkdYX0hUVFBfTUFYX1NVQlJFUVVFU1RTICsgMTsKLQogICAgICAgICAgICAgICAgIG5neF9odHRwX2hhbmRsZXIocik7CiAKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9zcmMvaHR0cC9uZ3hfaHR0cF9yZXF1ZXN0LmggYi9zcmMvaHR0cC9uZ3hfaHR0cF9yZXF1ZXN0LmgKaW5kZXggZmE4ZmQwZi4uNzRiZTBmNyAxMDA2NDQKLS0tIGEvc3JjL2h0dHAvbmd4X2h0dHBfcmVxdWVzdC5oCisrKyBiL3NyYy9odHRwL25neF9odHRwX3JlcXVlc3QuaApAQCAtMzY4LDcgKzM2OCw2IEBACiAKICAgICBvZmZfdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF9sZW5ndGg7CiAKLSAgICB2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqZXJyX2N0eDsKICAgICBuZ3hfdWludF90ICAgICAgICAgICAgICAgICAgICAgICAgZXJyX3N0YXR1czsKIAogICAgIG5neF9odHRwX2Nvbm5lY3Rpb25fdCAgICAgICAgICAgICpodHRwX2Nvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9zcmMvaHR0cC9uZ3hfaHR0cF9zcGVjaWFsX3Jlc3BvbnNlLmMgYi9zcmMvaHR0cC9uZ3hfaHR0cF9zcGVjaWFsX3Jlc3BvbnNlLmMKaW5kZXggZGZmZjY0MS4uYWJkZjYyNCAxMDA2NDQKLS0tIGEvc3JjL2h0dHAvbmd4X2h0dHBfc3BlY2lhbF9yZXNwb25zZS5jCisrKyBiL3NyYy9odHRwL25neF9odHRwX3NwZWNpYWxfcmVzcG9uc2UuYwpAQCAtMzM2LDkgKzMzNiwxMSBAQAogICAgICAgICB9CiAgICAgfQogCisgICAgci0+aGVhZGVyc19vdXQuY29udGVudF90eXBlLmxlbiA9IDA7CisKICAgICBjbGNmID0gbmd4X2h0dHBfZ2V0X21vZHVsZV9sb2NfY29uZihyLCBuZ3hfaHR0cF9jb3JlX21vZHVsZSk7CiAKLSAgICBpZiAoci0+ZXJyX2N0eCA9PSBOVUxMICYmIGNsY2YtPmVycm9yX3BhZ2VzKSB7CisgICAgaWYgKGNsY2YtPmVycm9yX3BhZ2VzKSB7CiAKICAgICAgICAgZXJyX3BhZ2UgPSBjbGNmLT5lcnJvcl9wYWdlcy0+ZWx0czsKIApAQCAtMzQ2LDcgKzM0OCw2IEBACiAKICAgICAgICAgICAgIGlmIChlcnJfcGFnZVtpXS5zdGF0dXMgPT0gZXJyb3IpIHsKICAgICAgICAgICAgICAgICByLT5lcnJfc3RhdHVzID0gZXJyX3BhZ2VbaV0ub3ZlcndyaXRlOwotICAgICAgICAgICAgICAgIHItPmVycl9jdHggPSByLT5jdHg7CiAKICAgICAgICAgICAgICAgICByLT5tZXRob2QgPSBOR1hfSFRUUF9HRVQ7CiAKQEAgLTM3MCw5ICszNzEsMTAgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ3hfbGlzdF9wdXNoKCZyLT5oZWFkZXJzX291dC5oZWFkZXJzKTsKIAogICAgICAgICAgICAgICAgIGlmIChyLT5oZWFkZXJzX291dC5sb2NhdGlvbikgewotICAgICAgICAgICAgICAgICAgICByLT5lcnJfc3RhdHVzID0gTkdYX0hUVFBfTU9WRURfVEVNUE9SQVJJTFk7CiAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gTkdYX0hUVFBfTU9WRURfVEVNUE9SQVJJTFk7CiAKKyAgICAgICAgICAgICAgICAgICAgci0+ZXJyX3N0YXR1cyA9IE5HWF9IVFRQX01PVkVEX1RFTVBPUkFSSUxZOworCiAgICAgICAgICAgICAgICAgICAgIHItPmhlYWRlcnNfb3V0LmxvY2F0aW9uLT5oYXNoID0gMTsKICAgICAgICAgICAgICAgICAgICAgci0+aGVhZGVyc19vdXQubG9jYXRpb24tPmtleS5sZW4gPSBzaXplb2YoIkxvY2F0aW9uIikgLSAxOwogICAgICAgICAgICAgICAgICAgICByLT5oZWFkZXJzX291dC5sb2NhdGlvbi0+a2V5LmRhdGEgPSAodV9jaGFyICopICJMb2NhdGlvbiI7CmRpZmYgLS1naXQgYS9zcmMvaHR0cC9uZ3hfaHR0cF91cHN0cmVhbS5jIGIvc3JjL2h0dHAvbmd4X2h0dHBfdXBzdHJlYW0uYwppbmRleCBkNWI3YWVlLi5jZWRlMDhkIDEwMDY0NAotLS0gYS9zcmMvaHR0cC9uZ3hfaHR0cF91cHN0cmVhbS5jCisrKyBiL3NyYy9odHRwL25neF9odHRwX3Vwc3RyZWFtLmMKQEAgLTEwOTMsMTcgKzEwOTMsMTUgQEAKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGlmICh1LT5jb25mLT5yZWRpcmVjdF80MDQpIHsKLSAgICAgICAgICAgIHJjID0gKHItPmVycl9jdHggPT0gTlVMTCkgPyA0MDQgOiAyMDQ7Ci0gICAgICAgICAgICBuZ3hfaHR0cF91cHN0cmVhbV9maW5hbGl6ZV9yZXF1ZXN0KHIsIHUsIHJjKTsKKyAgICAgICAgaWYgKHUtPmNvbmYtPmludGVyY2VwdF80MDQpIHsKKyAgICAgICAgICAgIG5neF9odHRwX3Vwc3RyZWFtX2ZpbmFsaXplX3JlcXVlc3QociwgdSwgTkdYX0hUVFBfTk9UX0ZPVU5EKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KIAogCiAgICAgaWYgKHUtPmhlYWRlcnNfaW4uc3RhdHVzX24gPj0gTkdYX0hUVFBfQkFEX1JFUVVFU1QKLSAgICAgICAgJiYgdS0+Y29uZi0+aW50ZXJjZXB0X2Vycm9ycwotICAgICAgICAmJiByLT5lcnJfY3R4ID09IE5VTEwpCisgICAgICAgICYmIHUtPmNvbmYtPmludGVyY2VwdF9lcnJvcnMpCiAgICAgewogICAgICAgICBjbGNmID0gbmd4X2h0dHBfZ2V0X21vZHVsZV9sb2NfY29uZihyLCBuZ3hfaHR0cF9jb3JlX21vZHVsZSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9odHRwL25neF9odHRwX3Vwc3RyZWFtLmggYi9zcmMvaHR0cC9uZ3hfaHR0cF91cHN0cmVhbS5oCmluZGV4IDhjMmE5MDEuLjk4MzE5NDYgMTAwNjQ0Ci0tLSBhL3NyYy9odHRwL25neF9odHRwX3Vwc3RyZWFtLmgKKysrIGIvc3JjL2h0dHAvbmd4X2h0dHBfdXBzdHJlYW0uaApAQCAtMTAzLDcgKzEwMyw3IEBACiAgICAgbmd4X3N0cl90ICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjsKICAgICBuZ3hfc3RyX3QgICAgICAgICAgICAgICAgICAgICAgIHVybDsgIC8qIHVzZWQgaW4gcHJveHlfcmV3cml0ZV9sb2NhdGlvbiAqLwogCi0gICAgdW5zaWduZWQgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdF80MDQ6MTsKKyAgICB1bnNpZ25lZCAgICAgICAgICAgICAgICAgICAgICAgIGludGVyY2VwdF80MDQ6MTsKICAgICB1bnNpZ25lZCAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZV9idWZmZXJpbmc6MTsKIAogI2lmIChOR1hfSFRUUF9TU0wpCg==