ZGlmZiAtLWdpdCBhL3N5cy9saXZpbmcvbGlmZS5oIGIvc3lzL2xpdmluZy9saWZlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODFiYTNkZAotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9saXZpbmcvbGlmZS5oCkBAIC0wLDAgKzEsMTI1IEBACisvLyBNb3JnZW5HcmF1ZW4gTVVEbGliCisvLworLy8gbGl2aW5nL2xpZmUuaCAtLSBsaXZpbmcgbGlmZSBoZWFkZXIKKy8vCisvLyAkSWQ6IGxpZmUuaCA5MDQ4IDIwMTUtMDEtMTEgMTg6MjE6MzJaIFplc3N0cmEgJAorCisjaWZuZGVmIF9fTElWSU5HX0xJRkVfSF9fCisjZGVmaW5lIF9fTElWSU5HX0xJRkVfSF9fCisKKy8vIHByb3BlcnRpZXMKKworI2RlZmluZSBQX0FHRSAgICAgICAgICAgICAgICAgICAgICJhZ2UiCisjZGVmaW5lIFBfQUxJR04gICAgICAgICAgICAgICAgICAgImFsaWduIgorCisjZGVmaW5lIFBfREVBRFMgICAgICAgICAgICAgICAgICAgImRlYWRzIgorI2RlZmluZSBQX0dIT1NUICAgICAgICAgICAgICAgICAgICJnaG9zdCIKKyNkZWZpbmUgUF9GUk9HICAgICAgICAgICAgICAgICAgICAiZnJvZyIKKworI2RlZmluZSBQX0ZPT0QgICAgICAgICAgICAgICAgICAgICJmb29kIgorI2RlZmluZSBQX01BWF9GT09EICAgICAgICAgICAgICAgICJtYXhfZm9vZCIKKyNkZWZpbmUgUF9EUklOSyAgICAgICAgICAgICAgICAgICAiZHJpbmsiCisjZGVmaW5lIFBfTUFYX0RSSU5LICAgICAgICAgICAgICAgIm1heF9kcmluayIKKyNkZWZpbmUgUF9BTENPSE9MICAgICAgICAgICAgICAgICAiYWxjb2hvbCIKKyNkZWZpbmUgUF9NQVhfQUxDT0hPTCAgICAgICAgICAgICAibWF4X2FsY29ob2wiCisKKyNkZWZpbmUgUF9IUCAgICAgICAgICAgICAgICAgICAgICAiaHAiCisjZGVmaW5lIFBfTUFYX0hQICAgICAgICAgICAgICAgICAgIm1heF9ocCIKKyNkZWZpbmUgUF9TUCAgICAgICAgICAgICAgICAgICAgICAic3AiCisjZGVmaW5lIFBfTUFYX1NQICAgICAgICAgICAgICAgICAgIm1heF9zcCIKKyNkZWZpbmUgUF9YUCAgICAgICAgICAgICAgICAgICAgICAieHAiCisjZGVmaW5lIFBfTk9fWFAgICAgICAgICAgICAgICAgICAgIm5vX3hwIgorI2RlZmluZSBQX0xBU1RfWFAgICAgICAgICAgICAgICAgICJsYXN0X3hwIgorCisjZGVmaW5lIFBfRk9PRF9ERUxBWSAgICAgICAgICAgICAgImZvb2RfZGVsYXkiCisjZGVmaW5lIFBfRFJJTktfREVMQVkgICAgICAgICAgICAgImRyaW5rX2RlbGF5IgorI2RlZmluZSBQX0FMQ09IT0xfREVMQVkgICAgICAgICAgICJhbGNvaG9sX2RlbGF5IgorI2RlZmluZSBQX0hQX0RFTEFZICAgICAgICAgICAgICAgICJocF9kZWxheSIKKyNkZWZpbmUgUF9TUF9ERUxBWSAgICAgICAgICAgICAgICAic3BfZGVsYXkiCisjZGVmaW5lIFBfUE9JU09OX0RFTEFZICAgICAgICAgICAgInBvaXNvbl9kZWxheSIKKworI2RlZmluZSBQX1BPSVNPTiAgICAgICAgICAgICAgICAgICJwb2lzb24iCisjZGVmaW5lIFBfTUFYX1BPSVNPTiAgICAgICAgICAgICAgIm1heF9wb2lzb24iCisKKyNkZWZpbmUgUF9OT19SRUdFTkVSQVRJT04gICAgICAgICAibm9fcmVnZW5lcmF0aW9uIgorCisjZGVmaW5lIFBfRU5FTVlfREFNQUdFICAgICAgICAgICAgImVuZW15X2RhbWFnZSIKKyNkZWZpbmUgUF9USU1JTkdfTUFQICAgICAgICAgICAgICAidGltaW5nX21hcCIKKyNkZWZpbmUgUF9MQVNUX0RFQVRIX1RJTUUgICAgICAgICAibGFzdF9kZWF0aF90aW1lIgorI2RlZmluZSBQX0xBU1RfREVBVEhfUFJPUFMgICAgICAgICJsYXN0X2RlYXRoX3Byb3BzIgorI2RlZmluZSBQX0NPUlBTRV9ERUNBWV9USU1FICAgICAgICJjb3Jwc2VfZGVjYXkiCisKKy8vIC0tLS0tIERlZmluaXRpb25lbiBmdWVyIEJlZWluZmx1c3N1bmcgZGVyIEdlc3VuZGhlaXQgZHVyY2ggY29uc3VtZSAtLS0tLQorCisvLyBIX0VGRkVDVFMgLSBadSBhZW5kZXJuZGUgUHJvcGVydGllcyBmdWVyIGRlbiBFZmZla3QKKyNkZWZpbmUgSF9FRkZFQ1RTICJlZmZlY3RzIgorLy8gSF9DT05ESVRJT05TIC0gWnUgcHJ1ZWZlbmRlIFByb3BlcnRpZXMgZvxyIGRlbiBFZmZla3QgKFNhZXR0aWd1bmcsIC4uLikKKyNkZWZpbmUgSF9DT05ESVRJT05TICJjb25kaXRpb25zIgorLy8gSF9ESVNUUklCVVRJT04gLSBXaWUgZGllIEFlbmRlcnVuZyBhbiBIUC9TUCBhdXN0ZWlsZW4sIHNvZm9ydCwgemVpdGxpY2gKKy8vIHZlcnNldHp0LCAuLi4KKyNkZWZpbmUgSF9ESVNUUklCVVRJT04gImRpc3RyaWJ1dGlvbiIKKy8vIEhfSU5HUkVESUVOVFMgLSBCZXN0YW5kdGVpbGUsIGRpZSBkaWUgQWVuZGVydW5nIHZlcnVyc2FjaGVuCisjZGVmaW5lIEhfSU5HUkVESUVOVFMgImluZ3JlZGllbnRzIgorCisvLyBWZXJ0ZWlsdW5nZW4sCisvLyAwICAgIFNvZm9ydHdpcmt1bmcKKy8vIDEtNTAgZ2xlaWNodmVydGVpbHRlIFB1ZmZlcnVuZyBtaXQgYW5nZWdlYmVuZXIgUmF0ZSBmdWVyIFNQL0hQCisvLyA+PSA1MSBzcGV6aWVsbGUgVmVydGVpbHVuZ2VuIChUT0RPKQorI2RlZmluZSBIRF9JTlNUQU5UICAgICAgMAorI2RlZmluZSBIRF9TVEFOREFSRCAgICAgNQorCisjZGVmaW5lIEhfQUxMT1dFRF9DT05ESVRJT05TICh7UF9GT09ELCBQX0RSSU5LLCBQX0FMQ09IT0x9KQorI2RlZmluZSBIX0FMTE9XRURfRUZGRUNUUyAgICAoe1BfU1AsIFBfSFAsIFBfUE9JU09OfSkKKworI2RlZmluZSBIQ19NQVhfRk9PRF9SRUFDSEVEICAgICAgICAxCisjZGVmaW5lIEhDX01BWF9EUklOS19SRUFDSEVEICAgICAgIDIKKyNkZWZpbmUgSENfTUFYX0FMQ09IT0xfUkVBQ0hFRCAgICAgNAorI2RlZmluZSBIQ19IT09LX0NBTkNFTExBVElPTiAgICAgICA4CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworI2VuZGlmIC8vIF9fTElWSU5HX0xJRkVfSF9fCisKKyNpZmRlZiBORUVEX1BST1RPVFlQRVMKKworI2lmbmRlZiBfX0xJVklOR19MSUZFX0hfUFJPVE9fXworI2RlZmluZSBfX0xJVklOR19MSUZFX0hfUFJPVE9fXyAgICAgICAgIAorCisvLyBwcm90b3R5cGVzCisKKy8vIC0tLS0tIHplbnRyYWxlIEZ1bmt0aW9uLCB1bSBkaWUgR2VzdW5kaGVpdCBkZXMgTGViZXdlc2VucyB6dSBiZWVpbmZsdXNzZW4gLS0tLS0KK3B1YmxpYyB2YXJhcmdzIGludCBjb25zdW1lKG1hcHBpbmcgY2luZm8sIGludCB0ZXN0b25seSk7CisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3B1YmxpYyBpbnQgZG9fZGFtYWdlKGludCBkYW0sIG9iamVjdCBlbmVteSk7CitwdWJsaWMgaW50IHJlZHVjZV9oaXRfcG9pbnRzKGludCBkYW0pOworcHVibGljIGludCByZXN0b3JlX2hpdF9wb2ludHMoaW50IGhlYWwpOworCitwdWJsaWMgaW50IHJlZHVjZV9oaXRfcG9pbnQoaW50IGRhbSk7ICAvL051ciBhbHMgVWViZXJnYW5zbG9lc3VuZyAoUmlrdXMpCisKK3B1YmxpYyB2b2lkIHJlc3RvcmVfc3BlbGxfcG9pbnRzKGludCBoKTsKK3B1YmxpYyB2b2lkIHJlZHVjZV9zcGVsbF9wb2ludHMoaW50IGgpOworCitwdWJsaWMgdm9pZCBoZWFsX3NlbGYoaW50IGgpOworCitwdWJsaWMgdmFyYXJncyB2b2lkIGRpZSggaW50IHBvaXNvbmRlYXRoLCBpbnQgZXh0ZXJuICk7CisKK3B1YmxpYyB2YXJhcmdzIHZvaWQgdHJhbnNmZXJfYWxsX3RvKCBzdHJpbmd8b2JqZWN0IGRlc3QsIGludCBjaGVjayApOworCitwdWJsaWMgdmFyYXJncyBpbnQgZHJpbmtfYWxjb2hvbChpbnQgc3RyZW5ndGgsIGludCB0ZXN0b25seSwgc3RyaW5nIG15dGV4dCk7CitwdWJsaWMgdmFyYXJncyBpbnQgZHJpbmtfc29mdChpbnQgc3RyZW5ndGgsIGludCB0ZXN0b25seSwgc3RyaW5nIG15dGV4dCk7CitwdWJsaWMgdmFyYXJncyBpbnQgZWF0X2Zvb2QoaW50IHN0cmVuZ3RoLCBpbnQgdGVzdG9ubHksIHN0cmluZyBteXRleHQpOworCitwdWJsaWMgaW50IGJ1ZmZlcl9ocChpbnQgdmFsLGludCByYXRlKTsKK3B1YmxpYyBpbnQgYnVmZmVyX3NwKGludCB2YWwsaW50IHJhdGUpOworCitwdWJsaWMgdm9pZCBzaG93X2FnZSgpOworCitwdWJsaWMgaW50IEFkZEV4cChpbnQgZSk7CisKKy8vIGludGVybmFsCitwcm90ZWN0ZWQgdm9pZCBSZXNldEVuZW15RGFtYWdlKCk7CisKKyNlbmRpZiAvLyBfX0xJVklOR19MSUZFX0hfUFJPVE9fXworCisjZW5kaWYgLy8gTkVFRF9QUk9UT1lQRVMK