R2l0IGNvbW1pdCAxZDNmY2QwYjZiNzQzNDA3NjI3Mzc5NGI5OGU0ZDhkOWY5YzEzOTk4IGJ5IEwu IEUuIFNlZ292aWEuCkNvbW1pdHRlZCBvbiAyNC8wMS8yMDIzIGF0IDAzOjI1LgpQdXNoZWQgYnkg bHNlZ292aWEgaW50byBicmFuY2ggJ21hc3RlcicuCgpSZXZlcnQgIlJldmVydCAid2luZG93czog U2V0IHRoZSBtaW5pbXVtIFNESyBBUEkgdG8gV2luZG93cyA4IGFuZCBjbGVhbiByZWxldmFudCBp ZmRlZnMiIgoKVGhlIG9ubHkgbmVjZXNzYXJ5IGNoYW5nZSBpcyBlbnN1cmluZyBhcHBtb2RlbC5o IGV4aXN0cywgYW5kIGlmIG5vdAood2hpY2ggbWVhbnMgYW4gb3V0ZGF0ZWQgU0RLKSwgZGVmaW5l IHRoZSBuZWNlc3NhcnkgdmFyaWFibGVzIGFzIGJlZm9yZS4KClRoaXMgcmV2ZXJ0cyBjb21taXQg OTUwNWJjNGRjMGZmZjE1OTQ2ODU3YjMxMjM3ZDkwZWM1OTJjNWEyYS4KCkNDTUFJTDoga2ltYWdl c2hvcEBrZGUub3JnCgpNICArMTEgICAtMCAgICBDTWFrZUxpc3RzLnR4dApNICArMiAgICAtMTIg ICBrcml0YS9tYWluLmNjCk0gICs1MCAgIC01MSAgIGxpYnMvZ2xvYmFsL0tpc1dpbmRvd3NQYWNr YWdlVXRpbHMuY3BwCk0gICswICAgIC0xMCAgIGxpYnMvdWkvaW5wdXQvd2ludGFiL2tpc190YWJs ZXRfc3VwcG9ydF93aW44LmNwcAoKaHR0cHM6Ly9pbnZlbnQua2RlLm9yZy9ncmFwaGljcy9rcml0 YS9jb21taXQvMWQzZmNkMGI2Yjc0MzQwNzYyNzM3OTRiOThlNGQ4ZDlmOWMxMzk5OAoKZGlmZiAt LWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggMDgxYmY2M2NlNi4u YzQzYjZiNDE1MCAxMDA2NDQKLS0tIGEvQ01ha2VMaXN0cy50eHQKKysrIGIvQ01ha2VMaXN0cy50 eHQKQEAgLTM1NCw2ICszNTQsMTcgQEAgZW5kaWYoKQogaW5jbHVkZShLREVDTWFrZVNldHRpbmdz KQogaW5jbHVkZShLREVDb21waWxlclNldHRpbmdzKQogCitpZiAoV0lOMzIpCisjIEtERUNvbXBp bGVyU2V0dGluZ3Mgc2V0cyBXaW5kb3dzIFZpc3RhIGFzIHRoZSBkZWZhdWx0LAorIyB3aGlsZSBN U1ZDJ3MgZGVmYXVsdCBpcyAweDBBMDAgKF9XSU4zMl9XSU5OVF9XSU4xMCwgc2RrZGRrdmVyLmgp IGFuZAorIyBNaW5HVydzIGlzIDB4MDYwMSAoX1dJTjMyX1dJTk5UX1dJTjcsIF9taW5ndy5oKS4K KyMgQm90aCBhcmUgZW5vdWdoIHRvIHN1cHBseSB0aGUgQVBJcyB3ZSBuZWVkIGluIG1haW4uY2Ms IGJ1dCBzaW5jZSB3ZQorIyBuZWVkIHRoZSBXaW5kb3dzIDggQVBJcyBhbnl3YXkgZm9yIHRoZSBz dXJmYWNlIG9yaWVudGF0aW9uIGFuZCBTdG9yZSBBUEksCisjIHdlIHNldCB0aGUgbWluaW11bSBo ZXJlLgorcmVtb3ZlX2RlZmluaXRpb25zKC1EX1dJTjMyX1dJTk5UPTB4MDYwMCAtRFdJTlZFUj0w eDA2MDAgLURfV0lOMzJfSUU9MHgwNjAwKQorYWRkX2RlZmluaXRpb25zKC1EX1dJTjMyX1dJTk5U PTB4MDYwMiAtRFdJTlZFUj0weDA2MDIgIC1EX1dJTjMyX0lFPTB4MDYwMikKK2VuZGlmKCkKKwog IyBkbyBub3QgcmVvcmRlciB0byBiZSBhbHBoYWJldGljYWw6IHRoaXMgaXMgdGhlIG9yZGVyIGlu IHdoaWNoIHRoZSBmcmFtZXdvcmtzCiAjIGRlcGVuZCBvbiBlYWNoIG90aGVyLgogZmluZF9wYWNr YWdlKEtGNSAke01JTl9GUkFNRVdPUktTX1ZFUlNJT059IFJFUVVJUkVEIENPTVBPTkVOVFMKZGlm ZiAtLWdpdCBhL2tyaXRhL21haW4uY2MgYi9rcml0YS9tYWluLmNjCmluZGV4IGJkZTQ3YzE4MTUu Ljc5ZTEzNmRlYzcgMTAwNjQ0Ci0tLSBhL2tyaXRhL21haW4uY2MKKysrIGIva3JpdGEvbWFpbi5j YwpAQCAtNjAsNiArNjAsNyBAQAogI2lmIGRlZmluZWQgUV9PU19XSU4KICNpbmNsdWRlICJjb25m aWdfdXNlX3F0X3RhYmxldF93aW5kb3dzLmgiCiAjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1 ZGUgPHdpbnVzZXIuaD4KICNpZm5kZWYgVVNFX1FUX1RBQkxFVF9XSU5ET1dTCiAjaW5jbHVkZSA8 a2lzX3RhYmxldF9zdXBwb3J0X3dpbi5oPgogI2luY2x1ZGUgPGtpc190YWJsZXRfc3VwcG9ydF93 aW44Lmg+CkBAIC0xMjAsMTggKzEyMSw3IEBAIHZvaWQgaW5zdGFsbFRyYW5zbGF0b3JzKEtpc0Fw cGxpY2F0aW9uICZhcHApOwogI2lmZGVmIFFfT1NfV0lOCiBuYW1lc3BhY2UKIHsKLXVzaW5nIE9S SUVOVEFUSU9OX1BSRUZFUkVOQ0UgPSBlbnVtIE9SSUVOVEFUSU9OX1BSRUZFUkVOQ0UgewotICAg IE9SSUVOVEFUSU9OX1BSRUZFUkVOQ0VfTk9ORSA9IDB4MCwKLSAgICBPUklFTlRBVElPTl9QUkVG RVJFTkNFX0xBTkRTQ0FQRSA9IDB4MSwKLSAgICBPUklFTlRBVElPTl9QUkVGRVJFTkNFX1BPUlRS QUlUID0gMHgyLAotICAgIE9SSUVOVEFUSU9OX1BSRUZFUkVOQ0VfTEFORFNDQVBFX0ZMSVBQRUQg PSAweDQsCi0gICAgT1JJRU5UQVRJT05fUFJFRkVSRU5DRV9QT1JUUkFJVF9GTElQUEVEID0gMHg4 Ci19OwotI2lmICFkZWZpbmVkKF9NU0NfVkVSKQotdXNpbmcgcFNldERpc3BsYXlBdXRvUm90YXRp b25QcmVmZXJlbmNlc190ID0gQk9PTCBXSU5BUEkgKCopKE9SSUVOVEFUSU9OX1BSRUZFUkVOQ0Ug b3JpZW50YXRpb24pOwotI2Vsc2UKLXVzaW5nIHBTZXREaXNwbGF5QXV0b1JvdGF0aW9uUHJlZmVy ZW5jZXNfdCA9IEJPT0woV0lOQVBJICopKE9SSUVOVEFUSU9OX1BSRUZFUkVOQ0Ugb3JpZW50YXRp b24pOwotI2VuZGlmCit1c2luZyBwU2V0RGlzcGxheUF1dG9Sb3RhdGlvblByZWZlcmVuY2VzX3Qg PSBkZWNsdHlwZSgmU2V0RGlzcGxheUF1dG9Sb3RhdGlvblByZWZlcmVuY2VzKTsKIAogdm9pZCBy ZXNldFJvdGF0aW9uKCkKIHsKZGlmZiAtLWdpdCBhL2xpYnMvZ2xvYmFsL0tpc1dpbmRvd3NQYWNr YWdlVXRpbHMuY3BwIGIvbGlicy9nbG9iYWwvS2lzV2luZG93c1BhY2thZ2VVdGlscy5jcHAKaW5k ZXggZWI5OWZiYmQ4OC4uNzI5MzFlN2RmYyAxMDA2NDQKLS0tIGEvbGlicy9nbG9iYWwvS2lzV2lu ZG93c1BhY2thZ2VVdGlscy5jcHAKKysrIGIvbGlicy9nbG9iYWwvS2lzV2luZG93c1BhY2thZ2VV dGlscy5jcHAKQEAgLTUsNDggKzUsNjEgQEAKICAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBH UEwtMy4wLW9yLWxhdGVyCiAgKi8KIAotLy8gR2V0IFdpbmRvd3MgVmlzdGEgQVBJCi0jaWYgZGVm aW5lZChXSU5WRVIpICYmIFdJTlZFUiA8IDB4MDYwMAotI3VuZGVmIFdJTlZFUgotI2VuZGlmCi0j aWYgZGVmaW5lZChfV0lOMzJfV0lOTlQpICYmIF9XSU4zMl9XSU5OVCA8IDB4MDYwMAotI3VuZGVm IF9XSU4zMl9XSU5OVAotI2VuZGlmCi0jaWZuZGVmIFdJTlZFUgotI2RlZmluZSBXSU5WRVIgMHgw NjAwCi0jZW5kaWYKLSNpZm5kZWYgX1dJTjMyX1dJTk5UCi0jZGVmaW5lIF9XSU4zMl9XSU5OVCAw eDA2MDAKLSNlbmRpZgotCiAjaW5jbHVkZSAiS2lzV2luZG93c1BhY2thZ2VVdGlscy5oIgogCiAj aW5jbHVkZSA8YXJyYXk+CiAKLSNpbmNsdWRlIDxTaGxvYmouaD4KKy8vIFhYWDogbmVlZHMgdG8g Z28gZmlyc3QgYmVjYXVzZSB1bmRlciBNaW5HVworLy8gY2xhbmdkIGdldHMgcmVhbGx5IGNvbmZ1 c2VkIGFuZCBlcnJvcnMgb24gbWlzc2luZworLy8gZGVmaW5pdGlvbiBvZiBXSU5BUElfRkFNSUxZ X1BBUlRJVElPTgogI2luY2x1ZGUgPHdpbmRvd3MuaD4KIAotI2luY2x1ZGUgPFFEZWJ1Zz4KLSNp bmNsdWRlIDxRTGlicmFyeT4KLSNpbmNsdWRlIDxRU3RyaW5nPgotCi1jb25zdGV4cHIgaW50IGFw cG1vZGVsX1BBQ0tBR0VfRlVMTF9OQU1FX01BWF9MRU5HVEggPSAxMjc7CisjaWYgZGVmaW5lZCBf X2hhc19pbmNsdWRlCisjaWYgX19oYXNfaW5jbHVkZSg8YXBwbW9kZWwuaD4pCisjaW5jbHVkZSA8 YXBwbW9kZWwuaD4KKyNkZWZpbmUgSEFTX0FQUE1PREVMX0gKKyNlbmRpZgorI2VuZGlmCiAKLWNv bnN0ZXhwciBMT05HIHdpbmVycm9yX0FQUE1PREVMX0VSUk9SX05PX1BBQ0tBR0UgPSAxNTcwMDsK KyNpZiBkZWZpbmVkIEhBU19BUFBNT0RFTF9ICisvLyAtLS0KKy8vIEdldEN1cnJlbnRQYWNrYWdl RmFtaWx5TmFtZQorLy8gYXBwbW9kZWwuaCAvIEtlcm5lbDMyLmRsbCAvIFdpbmRvd3MgOAorLy8g LS0tCit1c2luZyBwR2V0Q3VycmVudFBhY2thZ2VGYW1pbHlOYW1lX3QgPSBkZWNsdHlwZSgmR2V0 Q3VycmVudFBhY2thZ2VGYW1pbHlOYW1lKTsKIAorLy8gLS0tCisvLyBHZXRDdXJyZW50UGFja2Fn ZUZ1bGxOYW1lCisvLyBhcHBtb2RlbC5oIC8gS2VybmVsMzIuZGxsIC8gV2luZG93cyA4CisvLyAt LS0KK3VzaW5nIHBHZXRDdXJyZW50UGFja2FnZUZ1bGxOYW1lX3QgPSBkZWNsdHlwZSgmR2V0Q3Vy cmVudFBhY2thZ2VGdWxsTmFtZSk7CisjZWxzZQogLy8gLS0tCiAvLyBHZXRDdXJyZW50UGFja2Fn ZUZhbWlseU5hbWUKIC8vIGFwcG1vZGVsLmggLyBLZXJuZWwzMi5kbGwgLyBXaW5kb3dzIDgKIC8v IC0tLQotdXNpbmcgcEdldEN1cnJlbnRQYWNrYWdlRmFtaWx5TmFtZV90ID0KLSAgICBMT05HKFdJ TkFQSSAqKShVSU5UMzIgKnBhY2thZ2VGYW1pbHlOYW1lTGVuZ3RoLCBQV1NUUiBwYWNrYWdlRmFt aWx5TmFtZSk7Cit1c2luZyBwR2V0Q3VycmVudFBhY2thZ2VGYW1pbHlOYW1lX3QgPSBMT05HKFdJ TkFQSSAqKShVSU5UMzIgKnBhY2thZ2VGYW1pbHlOYW1lTGVuZ3RoLCBQV1NUUiBwYWNrYWdlRmFt aWx5TmFtZSk7CiAKIC8vIC0tLQogLy8gR2V0Q3VycmVudFBhY2thZ2VGdWxsTmFtZQogLy8gYXBw bW9kZWwuaCAvIEtlcm5lbDMyLmRsbCAvIFdpbmRvd3MgOAogLy8gLS0tCi11c2luZyBwR2V0Q3Vy cmVudFBhY2thZ2VGdWxsTmFtZV90ID0KLSAgICBMT05HKFdJTkFQSSAqKShVSU5UMzIgKnBhY2th Z2VGdWxsTmFtZUxlbmd0aCwgUFdTVFIgcGFja2FnZUZ1bGxOYW1lKTsKK3VzaW5nIHBHZXRDdXJy ZW50UGFja2FnZUZ1bGxOYW1lX3QgPSBMT05HKFdJTkFQSSAqKShVSU5UMzIgKnBhY2thZ2VGdWxs TmFtZUxlbmd0aCwgUFdTVFIgcGFja2FnZUZ1bGxOYW1lKTsKKyNlbmRpZgorCisjaW5jbHVkZSA8 c2hsb2JqLmg+CisKKyNpbmNsdWRlIDxRRGVidWc+CisjaW5jbHVkZSA8UUxpYnJhcnk+CisjaW5j bHVkZSA8UVN0cmluZz4KKworI2lmbmRlZiBQQUNLQUdFX0ZVTExfTkFNRV9NQVhfTEVOR1RICitj b25zdGV4cHIgaW50IFBBQ0tBR0VfRlVMTF9OQU1FX01BWF9MRU5HVEggPSAxMjc7CisjZW5kaWYK KworI2lmbmRlZiBBUFBNT0RFTF9FUlJPUl9OT19QQUNLQUdFCitjb25zdGV4cHIgTE9ORyBBUFBN T0RFTF9FUlJPUl9OT19QQUNLQUdFID0gMTU3MDA7CisjZW5kaWYKIAogLy8gRmxhZyBmb3IgYEtO T1dOX0ZPTERFUl9GTEFHYCwgaW50cm9kdWNlZCBpbiBXaW4gMTAgdmVyIDE3MDMsIHdoaWNoIHdo ZW4KIC8vIHVzZWQgd2l0aGluIGEgRGVza3RvcCBCcmlkZ2UgcHJvY2Vzcywgd2lsbCBjYXVzZSB0 aGUgQVBJIHRvIHJldHVybiB0aGUKQEAgLTU2LDYgKzY5LDcgQEAgdXNpbmcgcEdldEN1cnJlbnRQ YWNrYWdlRnVsbE5hbWVfdCA9CiAvLyBLRl9GTEFHX1JFVFVSTl9GSUxURVJfUkVESVJFQ1RJT05f VEFSR0VUCiAvLyBzaGxvYmpfY29yZS5oIC8gV2luZG93cyAxMCB2MTcwMwogLy8gLS0tCisvLyBU T0RPOiByZW1vdmUgdGhpcyBvbmNlIE1pbkdXIGFkZHMgdGhlIGZsYWcgLS0gc2VlIHNobG9iai5o IEtOT1dOX0ZPTERFUl9GTEFHCiBjb25zdGV4cHIgaW50IHNobG9ial9LRl9GTEFHX1JFVFVSTl9G SUxURVJfUkVESVJFQ1RJT05fVEFSR0VUID0gMHgwMDA0MDAwMDsKIAogc3RydWN0IEFwcG1vZGVs RnVuY3Rpb25zIHsKQEAgLTEwMiwxMyArMTE2LDEwIEBAIGJvb2wgdHJ5R2V0Q3VycmVudFBhY2th Z2VGYW1pbHlOYW1lKFFTdHJpbmcgKm91dE5hbWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg ICB9CiAKLSAgICBzdGQ6OmFycmF5PFdDSEFSLCBhcHBtb2RlbF9QQUNLQUdFX0ZVTExfTkFNRV9N QVhfTEVOR1RIICsgMT4KLSAgICAgICAgbmFtZXt9OyAvLyBpbmNsdWRlcyBudWxsIHRlcm1pbmF0 b3IKKyAgICBzdGQ6OmFycmF5PFdDSEFSLCBQQUNLQUdFX0ZVTExfTkFNRV9NQVhfTEVOR1RIICsg MT4gbmFtZXt9OyAvLyBpbmNsdWRlcyBudWxsIHRlcm1pbmF0b3IKICAgICBVSU5UMzIgbmFtZUxl bmd0aCA9IG5hbWUuc2l6ZSgpOwotICAgIExPTkcgcmVzdWx0ID0KLSAgICAgICAgQXBwbW9kZWxG dW5jdGlvbnM6Omluc3RhbmNlKCkuZ2V0Q3VycmVudFBhY2thZ2VGYW1pbHlOYW1lKCZuYW1lTGVu Z3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbmFtZS5kYXRhKCkpOwotICAgIGlmIChyZXN1bHQgPT0gd2luZXJyb3Jf QVBQTU9ERUxfRVJST1JfTk9fUEFDS0FHRSkgeworICAgIGNvbnN0IExPTkcgcmVzdWx0ID0gQXBw bW9kZWxGdW5jdGlvbnM6Omluc3RhbmNlKCkuZ2V0Q3VycmVudFBhY2thZ2VGYW1pbHlOYW1lKCZu YW1lTGVuZ3RoLCBuYW1lLmRhdGEoKSk7CisgICAgaWYgKHJlc3VsdCA9PSBBUFBNT0RFTF9FUlJP Ul9OT19QQUNLQUdFKSB7CiAgICAgICAgIC8vIFByb2Nlc3Mgbm90IHJ1bm5pbmcgZnJvbSBhIHBh Y2thZ2UuCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xMjMsOSArMTM0LDcgQEAg Ym9vbCB0cnlHZXRDdXJyZW50UGFja2FnZUZhbWlseU5hbWUoUVN0cmluZyAqb3V0TmFtZSkKICAg ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIGlmIChyZXN1bHQgIT0gRVJST1JfU1VDQ0VT UykgewotICAgICAgICBxV2FybmluZygpCi0gICAgICAgICAgICA8PCAiR2V0Q3VycmVudFBhY2th Z2VGYW1pbHlOYW1lIHJldHVybmVkIHVuZXhwZWN0ZWQgZXJyb3IgY29kZToiCi0gICAgICAgICAg ICA8PCByZXN1bHQ7CisgICAgICAgIHFXYXJuaW5nKCkgPDwgIkdldEN1cnJlbnRQYWNrYWdlRmFt aWx5TmFtZSByZXR1cm5lZCB1bmV4cGVjdGVkIGVycm9yIGNvZGU6IiA8PCByZXN1bHQ7CiAgICAg ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTE0MSw4ICsxNTAsNyBAQCBib29sIHRyeUdl dEN1cnJlbnRQYWNrYWdlRmFtaWx5TmFtZShRU3RyaW5nICpvdXROYW1lKQogICAgICAgICBpZiAo bmFtZUxlbmd0aCA+IDAgJiYgbmFtZS5hdChuYW1lTGVuZ3RoIC0gMSkgPT0gTCdcMCcpIHsKICAg ICAgICAgICAgIG5hbWVMZW5ndGggLT0gMTsKICAgICAgICAgfQotICAgICAgICAqb3V0TmFtZSA9 Ci0gICAgICAgICAgICBRU3RyaW5nOjpmcm9tV0NoYXJBcnJheShuYW1lLmRhdGEoKSwgc3RhdGlj X2Nhc3Q8aW50PihuYW1lTGVuZ3RoKSk7CisgICAgICAgICpvdXROYW1lID0gUVN0cmluZzo6ZnJv bVdDaGFyQXJyYXkobmFtZS5kYXRhKCksIHN0YXRpY19jYXN0PGludD4obmFtZUxlbmd0aCkpOwog ICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTE1NCwxMyArMTYyLDEwIEBAIGJvb2wgdHJ5 R2V0Q3VycmVudFBhY2thZ2VGdWxsTmFtZShRU3RyaW5nICpvdXROYW1lKQogICAgICAgICByZXR1 cm4gZmFsc2U7CiAgICAgfQogCi0gICAgc3RkOjphcnJheTxXQ0hBUiwgYXBwbW9kZWxfUEFDS0FH RV9GVUxMX05BTUVfTUFYX0xFTkdUSCArIDE+Ci0gICAgICAgIG5hbWV7fTsgLy8gaW5jbHVkZXMg bnVsbCB0ZXJtaW5hdG9yCisgICAgc3RkOjphcnJheTxXQ0hBUiwgUEFDS0FHRV9GVUxMX05BTUVf TUFYX0xFTkdUSCArIDE+IG5hbWV7fTsgLy8gaW5jbHVkZXMgbnVsbCB0ZXJtaW5hdG9yCiAgICAg VUlOVDMyIG5hbWVMZW5ndGggPSBuYW1lLnNpemUoKTsKLSAgICBjb25zdCBMT05HIHJlc3VsdCA9 Ci0gICAgICAgIEFwcG1vZGVsRnVuY3Rpb25zOjppbnN0YW5jZSgpLmdldEN1cnJlbnRQYWNrYWdl RnVsbE5hbWUoJm5hbWVMZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS5kYXRhKCkpOwotICAgIGlmIChyZXN1 bHQgPT0gd2luZXJyb3JfQVBQTU9ERUxfRVJST1JfTk9fUEFDS0FHRSkgeworICAgIGNvbnN0IExP TkcgcmVzdWx0ID0gQXBwbW9kZWxGdW5jdGlvbnM6Omluc3RhbmNlKCkuZ2V0Q3VycmVudFBhY2th Z2VGdWxsTmFtZSgmbmFtZUxlbmd0aCwgbmFtZS5kYXRhKCkpOworICAgIGlmIChyZXN1bHQgPT0g QVBQTU9ERUxfRVJST1JfTk9fUEFDS0FHRSkgewogICAgICAgICAvLyBQcm9jZXNzIG5vdCBydW5u aW5nIGZyb20gYSBwYWNrYWdlLgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTc1 LDkgKzE4MCw3IEBAIGJvb2wgdHJ5R2V0Q3VycmVudFBhY2thZ2VGdWxsTmFtZShRU3RyaW5nICpv dXROYW1lKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgaWYgKHJlc3VsdCAhPSBF UlJPUl9TVUNDRVNTKSB7Ci0gICAgICAgIHFXYXJuaW5nKCkKLSAgICAgICAgICAgIDw8ICJHZXRD dXJyZW50UGFja2FnZUZ1bGxOYW1lIHJldHVybmVkIHVuZXhwZWN0ZWQgZXJyb3IgY29kZToiCi0g ICAgICAgICAgICA8PCByZXN1bHQ7CisgICAgICAgIHFXYXJuaW5nKCkgPDwgIkdldEN1cnJlbnRQ YWNrYWdlRnVsbE5hbWUgcmV0dXJuZWQgdW5leHBlY3RlZCBlcnJvciBjb2RlOiIgPDwgcmVzdWx0 OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xOTMsOCArMTk2LDcgQEAgYm9v bCB0cnlHZXRDdXJyZW50UGFja2FnZUZ1bGxOYW1lKFFTdHJpbmcgKm91dE5hbWUpCiAgICAgICAg IGlmIChuYW1lTGVuZ3RoID4gMCAmJiBuYW1lLmF0KG5hbWVMZW5ndGggLSAxKSA9PSBMJ1wwJykg ewogICAgICAgICAgICAgbmFtZUxlbmd0aCAtPSAxOwogICAgICAgICB9Ci0gICAgICAgICpvdXRO YW1lID0KLSAgICAgICAgICAgIFFTdHJpbmc6OmZyb21XQ2hhckFycmF5KG5hbWUuZGF0YSgpLCBz dGF0aWNfY2FzdDxpbnQ+KG5hbWVMZW5ndGgpKTsKKyAgICAgICAgKm91dE5hbWUgPSBRU3RyaW5n Ojpmcm9tV0NoYXJBcnJheShuYW1lLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50PihuYW1lTGVuZ3Ro KSk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMjAzLDEwICsyMDUsNyBAQCBRU3Ry aW5nIGdldFBhY2thZ2VSb2FtaW5nQXBwRGF0YUxvY2F0aW9uKCkKIHsKICAgICBQV1NUUiBwYXRo ID0gbnVsbHB0cjsKICAgICBIUkVTVUxUIHJlc3VsdCA9Ci0gICAgICAgIFNIR2V0S25vd25Gb2xk ZXJQYXRoKEZPTERFUklEX1JvYW1pbmdBcHBEYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzaGxvYmpfS0ZfRkxBR19SRVRVUk5fRklMVEVSX1JFRElSRUNUSU9OX1RBUkdFVCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbHB0ciwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJnBhdGgpOworICAgICAgICBTSEdldEtub3duRm9sZGVyUGF0aChGT0xERVJJRF9S b2FtaW5nQXBwRGF0YSwgc2hsb2JqX0tGX0ZMQUdfUkVUVVJOX0ZJTFRFUl9SRURJUkVDVElPTl9U QVJHRVQsIG51bGxwdHIsICZwYXRoKTsKICAgICBpZiAocmVzdWx0ICE9IFNfT0spIHsKICAgICAg ICAgcVdhcm5pbmcoKSA8PCAiU0hHZXRLbm93bkZvbGRlclBhdGggcmV0dXJuZWQgZXJyb3IgSFJF U1VMVDoiIDw8IHJlc3VsdDsKICAgICAgICAgcmV0dXJuIHt9OwpkaWZmIC0tZ2l0IGEvbGlicy91 aS9pbnB1dC93aW50YWIva2lzX3RhYmxldF9zdXBwb3J0X3dpbjguY3BwIGIvbGlicy91aS9pbnB1 dC93aW50YWIva2lzX3RhYmxldF9zdXBwb3J0X3dpbjguY3BwCmluZGV4IDA4YmJhNTlmMjcuLjZk OWRmZTNmMWQgMTAwNjQ0Ci0tLSBhL2xpYnMvdWkvaW5wdXQvd2ludGFiL2tpc190YWJsZXRfc3Vw cG9ydF93aW44LmNwcAorKysgYi9saWJzL3VpL2lucHV0L3dpbnRhYi9raXNfdGFibGV0X3N1cHBv cnRfd2luOC5jcHAKQEAgLTQsMTYgKzQsNiBAQAogICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZQogICovCiAKLS8vIEdldCBXaW5kb3dzIDggQVBJIHByb3RvdHlwZXMgYW5k IHR5cGVzCi0jaWZkZWYgV0lOVkVSCi0jICB1bmRlZiBXSU5WRVIKLSNlbmRpZgotI2lmZGVmIF9X SU4zMl9XSU5OVAotIyAgdW5kZWYgX1dJTjMyX1dJTk5UCi0jZW5kaWYKLSNkZWZpbmUgV0lOVkVS IDB4MDYwMgotI2RlZmluZSBfV0lOMzJfV0lOTlQgMHgwNjAyCi0KICNpbmNsdWRlICJraXNfdGFi bGV0X3N1cHBvcnRfd2luOC5oIgogCiAjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgoK