LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIAogKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCiAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQogKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgogKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCiAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQogKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiAqIAogKiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogKiAKICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAogKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgogKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKICogdW5kZXIgdGhlIExpY2Vuc2UuCiAqIAogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICoKICoJICBBVFRFTlRJT04KICoJICBUaGlzIGZpbGUgaXMgaW50ZW5kZWQgdG8gd29yayBpbnNpZGUgYW5kIG91dHNpZGUgdGhlIFN0YXJPZmZpY2UgZW52aXJvbm1lbnQuCiAqCSAgT25seSBhZGFwdGlvbiBvZiBmaWxlIGNvbW10eXBlcy5oeHggc2hvdWxkIGJlIG5lY2Vzc2FyeS4gRWxzZSBpdCBpcyBhIGJ1ZyEKICoKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNpZm5kZWYgX1JDT05UUk9MX0hYWAojZGVmaW5lIF9SQ09OVFJPTF9IWFgKCgojZGVmaW5lIFVJRF9BQ1RJVkUJCQkiVUlEX0FDVElWRSIKCgojZGVmaW5lIFNJX0lQQ0NvbW1hbmRCbG9jawkxCiNkZWZpbmUgU0lfU29ja2V0Q29tbWFuZEJsb2NrCVNJX0lQQ0NvbW1hbmRCbG9jawkvLyBadW1pbmRlc3QgZXJzdG1hbAojZGVmaW5lIFNJX0RpcmVjdENvbW1hbmRCbG9jawkyCiNkZWZpbmUgU0lDb250cm9sCQkJMyAgIC8vIHJlbW92ZSBhZnRlciBudW1lcmljIEhlbHBJRHMgYXJlIGNvbXBsZXRlbHkgcmVtb3ZlZCBhbmQgbm8gbGVnYWN5IHRlc3R0b29sIGlzIHVzZWQgYW55bW9yZQojZGVmaW5lIFNJU2xvdAkJCQk0CiNkZWZpbmUgU0lGbG93CQkJCTUKI2RlZmluZSBTSUNvbW1hbmQJCQk2CiNkZWZpbmUgU0lVbm9TbG90CQkJNwojZGVmaW5lIFNJU3RyaW5nQ29udHJvbAkJOAoKI2RlZmluZSBTSVJldHVybkJsb2NrCQkxMQojZGVmaW5lIFNJUmV0dXJuCQkJMTIKI2RlZmluZSBTSVJldHVybkVycm9yCQkxMwoKLy8gVHlwaXNpZXJ1bmcgaW0gU3RyZWFtCiNkZWZpbmUgQmluVVNIT1JUCQkJMTEKI2RlZmluZSBCaW5VTE9ORwkJCTE0CiNkZWZpbmUgQmluU3RyaW5nCQkJMTIKI2RlZmluZSBCaW5Cb29sCQkJCTEzCiNkZWZpbmUgQmluU2J4VmFsdWUJCQkxNQoKCi8vIENsYXNzZXMKLy8gISEhRGllc2UgRGVmaW5lcyBkdWVyZmVuIG5pZW1hbHMgZ2VhZW5kZXJ0IHdlcmRlbiEhIQojZGVmaW5lIENfTm9UeXBlCQkJLTEKLy8gTWF4aW1hbGUgMzIgZWluZmFjaGUgQ29udHJvbHMKI2RlZmluZSBDX1RhYkNvbnRyb2wgICAgICAgIDAKI2RlZmluZSBDX1JhZGlvQnV0dG9uICAgICAgIDEKI2RlZmluZSBDX0NoZWNrQm94ICAgICAgICAgIDIKI2RlZmluZSBDX1RyaVN0YXRlQm94ICAgICAgIDMKI2RlZmluZSBDX0VkaXQgICAgICAgICAgICAgIDQKI2RlZmluZSBDX011bHRpTGluZUVkaXQgICAgIDUKI2RlZmluZSBDX011bHRpTGlzdEJveCAgICAgIDYKI2RlZmluZSBDX0xpc3RCb3ggICAgICAgICAgIDcKI2RlZmluZSBDX0NvbWJvQm94ICAgICAgICAgIDgKI2RlZmluZSBDX1B1c2hCdXR0b24gICAgICAgIDkKCiNkZWZpbmUgQ19TcGluRmllbGQgICAgICAgICAxMAojZGVmaW5lIENfUGF0dGVybkZpZWxkCQkxMQojZGVmaW5lIENfTnVtZXJpY0ZpZWxkCQkxMgojZGVmaW5lIENfTWV0cmljRmllbGQJCTEzCiNkZWZpbmUgQ19DdXJyZW5jeUZpZWxkCQkxNAojZGVmaW5lIENfRGF0ZUZpZWxkCQkJMTUKI2RlZmluZSBDX1RpbWVGaWVsZAkJCTE2CgojZGVmaW5lIENfSW1hZ2VSYWRpb0J1dHRvbgkxNwojZGVmaW5lIENfTnVtZXJpY0JveAkJMTgKI2RlZmluZSBDX01ldHJpY0JveAkJCTE5CiNkZWZpbmUgQ19DdXJyZW5jeUJveAkJMjAKI2RlZmluZSBDX0RhdGVCb3gJCQkyMQojZGVmaW5lIENfVGltZUJveAkJCTIyCgojZGVmaW5lIENfSW1hZ2VCdXR0b24JCTIzCiNkZWZpbmUgQ19NZW51QnV0dG9uCQkyNAojZGVmaW5lIENfTW9yZUJ1dHRvbgkJMjUKCi8vIE1heGltYWxlIDcgQ29udGFpbmVyCiNkZWZpbmUJQ19UYWJQYWdlCQkJMzIKI2RlZmluZSBDX01vZGFsRGxnICAgICAgICAgIDMzCiNkZWZpbmUJQ19GbG9hdFdpbgkJCTM0CiNkZWZpbmUgQ19Nb2RlbGVzc0RsZwkJMzUKI2RlZmluZQlDX1dvcmtXaW4JCQkzNgojZGVmaW5lIENfRG9ja2luZ1dpbiAgICAgICAgMzcKCi8vIERpZXNlIERlZmluZXMga29lbm5lbiBnZWFlbmRlcnQgd2VyZGVuCiNkZWZpbmUgQ19NZXNzQm94CQkJNDAKI2RlZmluZSBDX0luZm9Cb3gJCQk0MQojZGVmaW5lIENfV2FybmluZ0JveAkJNDIKI2RlZmluZSBDX0Vycm9yQm94CQkJNDMKI2RlZmluZSBDX1F1ZXJ5Qm94CQkJNDQKCiNkZWZpbmUJQ19UYWJEbGcJCQk0NQojZGVmaW5lCUNfU2luZ2xlVGFiRGxnCQk0NgoKI2RlZmluZSBDX1dpbmRvdwkJCTQ3CgoKI2RlZmluZSBDX1BhdHRlcm5Cb3gJCTYwCiNkZWZpbmUgQ19Ub29sQm94CQkJNjEKI2RlZmluZSBDX1ZhbHVlU2V0CQkJNjIKI2RlZmluZSBDX0NvbnRyb2wJCQk2MwojZGVmaW5lIENfVHJlZUxpc3RCb3ggICAgICAgNjQgIC8vIEh1cnJheSB0aGUgVHJlZUxpc3RCb3ggZmluYWxseSBnb3QgaXRzIG93biBXaW5kb3cgVHlwZQoKI2RlZmluZSBDX09rQnV0dG9uCQkJNjUKI2RlZmluZSBDX0NhbmNlbEJ1dHRvbgkJNjYKI2RlZmluZSBDX0J1dHRvbkRpYWxvZwkJNjcKCiNkZWZpbmUgQ19EaWFsb2cJCQk2OAoKCgoKI2RlZmluZSBNX1dJVEhfUkVUVVJOCQkweDAyMDAJLy8gRGllIFZhcmlhYmxlIHdpcmQgenVtIEF1Zm5laG1lbiBkZXMgV2VydGVzIGdlc3BlaWNoZXJ0CiNkZWZpbmUgTV9LRVlfU1RSSU5HCQkweDA0MDAJLy8gS2V5IEJlZmVobGUgd2VyZGVuIHVtZ2V3YW5kZWx0IGkuZS4gIjxyZXR1cm4+PHVwPiIKI2RlZmluZSBNX1NPRkZJQ0UgICAgICAgICAgIDB4MDgwMCAgLy8gQ29tbWFuZCB2YWxpZCBmb3IgU3Rhci9PcGVuIE9mZmljZQojZGVmaW5lIE1fTU9aSUxMQSAgICAgICAgICAgMHgxMDAwICAvLyBDb21tYW5kIHZhbGlkIGZvciBNb3ppbGxhCi8vIGZvciBNYWNyb1JlY29yZGVyCiNkZWZpbmUgTV9SRVRfTlVNX0NPTlRST0wgICAweDIwMDAgIC8vIGRlY29kZSBVTG9uZyBhcyBDb250cm9sIChGb3IgVGFicGFnZXMsIFRvb2xib3hlcywgLi4uICkKCi8vIE1ldGhvZGVuCiNkZWZpbmUgTV9TZWxlY3QgICAgICAgICAgICAyMQojZGVmaW5lIE1fU2V0Tm9TZWxlY3Rpb24gICAgMjIKI2RlZmluZSBNX1NldFRleHQgICAgICAgICAgIDIzCiNkZWZpbmUgTV9Nb3JlICAgICAgICAgICAgICAyNAojZGVmaW5lIE1fTGVzcyAgICAgICAgICAgICAgMjUKI2RlZmluZSBNX1RvTWluICAgICAgICAgICAgIDI2CiNkZWZpbmUgTV9Ub01heCAgICAgICAgICAgICAyNwojZGVmaW5lIE1fQ2hlY2sgICAgICAgICAgICAgMjgKI2RlZmluZSBNX1VuQ2hlY2sgICAgICAgICAgIDI5CiNkZWZpbmUgTV9UcmlTdGF0ZSAgICAgICAgICAzMAojZGVmaW5lIE1fU2V0UGFnZSAgICAgICAgICAgMzEKI2RlZmluZSBNX0NsaWNrICAgICAgICAgICAgIDMyCgojZGVmaW5lIE1fQ2xvc2UJICAgICAgICAgICAgMzMJCS8vIFB1c2ggQnV0dG9ucyBvbiBEaWFsb2cgKEF1Y2ggTW9yZSBCdXR0b24pCiNkZWZpbmUgTV9DYW5jZWwgICAgICAgICAgICAzNAojZGVmaW5lIE1fT0sgICAgICAgICAgICAgICAgMzUKI2RlZmluZSBNX0hlbHAgICAgICAgICAgICAgIDM2CiNkZWZpbmUgTV9EZWZhdWx0ICAgICAgICAgICAzNwkJLy8gUHVzaCBkZWZhdWx0YnV0dG9uIG9uIERpYWxvZwoKI2RlZmluZSBNX1llcwkJCQkzOAojZGVmaW5lIE1fTm8JCQkJMzkKI2RlZmluZSBNX1JlcGVhdAkJCTQwCgojZGVmaW5lIE1fT3BlbgkJCQk0MQojZGVmaW5lIE1fUGljawkJCQk0MgojZGVmaW5lIE1fTW92ZQkJCQk0MwojZGVmaW5lIE1fU2l6ZQkJCQk0NAojZGVmaW5lIE1fTWluaW1pemUJCQk0NQojZGVmaW5lIE1fTWF4aW1pemUJCQk0NgojZGVmaW5lIE1fRG9jawkJCQk0NwojZGVmaW5lIE1fVW5kb2NrCQkJNDgKCgoKI2RlZmluZSBNX1R5cGVLZXlzCQkJKCBNX0tFWV9TVFJJTkcgfCA1MCApCiNkZWZpbmUgTV9Nb3VzZURvd24JCQk1MQojZGVmaW5lIE1fTW91c2VVcAkJCTUyCiNkZWZpbmUgTV9Nb3VzZU1vdmUJCQk1MwojZGVmaW5lIE1fTW91c2VEb3VibGVDbGljawk1NAojZGVmaW5lIE1fU25hcFNob3QJCQk1NQojZGVmaW5lIE1fU2V0TmV4dFRvb2xCb3gJNTYKI2RlZmluZSBNX09wZW5Db250ZXh0TWVudQk1NwojZGVmaW5lIE1fTXVsdGlTZWxlY3QJCTU4CgovLyBGaWxlZGlhbG9nCiNkZWZpbmUgTV9TZXRQYXRoCQkJNjAKI2RlZmluZSBNX1NldEN1ckZpbHRlciAJCTYxCgovLyBQcmludGRpYWxvZwojZGVmaW5lIE1fU2V0UHJpbnRlcgkJNzAKI2RlZmluZSBNX0NoZWNrUmFuZ2UJCTcxCiNkZWZpbmUgTV9TZXRSYW5nZVRleHQJCTcyCiNkZWZpbmUgTV9TZXRGaXJzdFBhZ2UJCTczCiNkZWZpbmUgTV9TZXRMYXN0UGFnZQkJNzQKI2RlZmluZSBNX0NoZWNrQ29sbGF0ZQkJNzUKI2RlZmluZSBNX1NldFBhZ2VJZAkJCTc2CiNkZWZpbmUgTV9TZXRQYWdlTnIJCQk3NwoKI2RlZmluZSBNX0FuaW1hdGVNb3VzZQkJNzgKI2RlZmluZSBNX1RlYXJPZmYJCQk3OQoKI2RlZmluZSBNX0ZhZGVJbgkJCTgwCiNkZWZpbmUgTV9GYWRlT3V0CQkJODEKI2RlZmluZSBNX1BpbgkJCQk4MgoKI2RlZmluZSBNX1VzZU1lbnUgICAgICAgICAgIDgzICAgICAgLy8gVXNlIHRoZSBtZW51IG9mIHRoZSBuZXh0IHBvc3NpYmxlIHBhcmVudCBvZiBnaXZlbiBXaW5kb3cKCiNkZWZpbmUgTV9PcGVuTWVudSAgICAgICAgICA4NCAgICAgIC8vIE1lbnVCdXR0b25zIGFuZCBNZW51cyBpbiBUb29sQm94ZXMKCiNkZWZpbmUgTV9SZXN0b3JlICAgICAgICAgICA4NSAgICAgIC8vIFdpbmRvdyBDb250cm9sIHRvZ2V0aGVyIHdpdGggTV9NYXhpbWl6ZSBhbmQgTV9NaW5pbWl6ZQoKI2RlZmluZSBNX0Rpc3BsYXlQZXJjZW50CTIwMAkJLy8gWnVtIEFuemVpZ2VuIGRlciBQcm96ZW50ZSBkZXMgV2luZG93cwoKI2RlZmluZSBNX0xBU1RfTk9fUkVUVVJOCTIwMAoKI2lmICggTV9MQVNUX05PX1JFVFVSTiA+PSBNX1dJVEhfUkVUVVJOICkKI2Vycm9yICJCZXJlaWNoIPxiZXJzY2hyaXR0ZW4iCiNlbmRpZgoKI2RlZmluZSBNX0V4aXN0cwkJCSggTV9XSVRIX1JFVFVSTiB8ICAxICkKI2RlZmluZSBNX05vdEV4aXN0cwkJCSggTV9XSVRIX1JFVFVSTiB8ICAyICkKI2RlZmluZSBNX0lzRW5hYmxlZAkJCSggTV9XSVRIX1JFVFVSTiB8ICAzICkKI2RlZmluZSBNX0lzVmlzaWJsZQkJCSggTV9XSVRIX1JFVFVSTiB8ICA0ICkKI2RlZmluZSBNX0lzV3JpdGFibGUJCSggTV9XSVRIX1JFVFVSTiB8ICA1ICkKCiNkZWZpbmUgTV9HZXRQYWdlCQkJKCBNX1dJVEhfUkVUVVJOIHwgIDYgKQojZGVmaW5lIE1fSXNDaGVja2VkCQkJKCBNX1dJVEhfUkVUVVJOIHwgIDcgKQojZGVmaW5lIE1fSXNUcmlzdGF0ZQkJKCBNX1dJVEhfUkVUVVJOIHwgIDggKQojZGVmaW5lIE1fR2V0U3RhdGUJCQkoIE1fV0lUSF9SRVRVUk4gfCAgOSApCiNkZWZpbmUgTV9HZXRUZXh0CQkJKCBNX1dJVEhfUkVUVVJOIHwgMTAgKQojZGVmaW5lIE1fR2V0U2VsQ291bnQJCSggTV9XSVRIX1JFVFVSTiB8IDExICkKI2RlZmluZSBNX0dldFNlbEluZGV4CQkoIE1fV0lUSF9SRVRVUk4gfCAxMiApCiNkZWZpbmUgTV9HZXRTZWxUZXh0CQkoIE1fV0lUSF9SRVRVUk4gfCAxMyApCiNkZWZpbmUgTV9HZXRJdGVtQ291bnQJCSggTV9XSVRIX1JFVFVSTiB8IDE0ICkKI2RlZmluZSBNX0dldEl0ZW1UZXh0CQkoIE1fV0lUSF9SRVRVUk4gfCAxNSApCiNkZWZpbmUgTV9Jc09wZW4JCQkoIE1fV0lUSF9SRVRVUk4gfCAxNiApCiNkZWZpbmUgTV9DYXB0aW9uCQkJKCBNX1dJVEhfUkVUVVJOIHwgMTcgKQojZGVmaW5lIE1fSXNNYXgJCQkJKCBNX1dJVEhfUkVUVVJOIHwgMTggKQojZGVmaW5lIE1fSXNEb2NrZWQJCQkoIE1fV0lUSF9SRVRVUk4gfCAxOSApCiNkZWZpbmUgTV9HZXRSVAkJCQkoIE1fV0lUSF9SRVRVUk4gfCAyMCApCiNkZWZpbmUgTV9HZXRQYWdlSWQJCQkoIE1fV0lUSF9SRVRVUk4gfCAyMSApCiNkZWZpbmUgTV9HZXRQYWdlQ291bnQJCSggTV9XSVRIX1JFVFVSTiB8IDIyICkKI2RlZmluZSBNX0dldFBvc1gJCQkoIE1fV0lUSF9SRVRVUk4gfCAyMyApCiNkZWZpbmUgTV9HZXRQb3NZCQkJKCBNX1dJVEhfUkVUVVJOIHwgMjQgKQojZGVmaW5lIE1fR2V0U2l6ZVgJCQkoIE1fV0lUSF9SRVRVUk4gfCAyNSApCiNkZWZpbmUgTV9HZXRTaXplWQkJCSggTV9XSVRIX1JFVFVSTiB8IDI2ICkKI2RlZmluZSBNX0dldE5leHRUb29sQm94CSggTV9XSVRIX1JFVFVSTiB8IDI3ICkKI2RlZmluZSBNX0dldEJ1dHRvbkNvdW50CSggTV9XSVRIX1JFVFVSTiB8IDI4ICkKI2RlZmluZSBNX0dldEJ1dHRvbklkCQkoIE1fV0lUSF9SRVRVUk4gfCAyOSApCgojZGVmaW5lIE1fSXNGYWRlSW4JCQkoIE1fV0lUSF9SRVRVUk4gfCAzMCApCiNkZWZpbmUgTV9Jc1BpbgkJCQkoIE1fV0lUSF9SRVRVUk4gfCAzMSApCgovLyBTdGF0dXNiYXIKI2RlZmluZSBNX1N0YXR1c0dldFRleHQJCSggTV9XSVRIX1JFVFVSTiB8IDMyICkKI2RlZmluZSBNX1N0YXR1c0lzUHJvZ3Jlc3MJKCBNX1dJVEhfUkVUVVJOIHwgMzMgKQojZGVmaW5lIE1fU3RhdHVzR2V0SXRlbUNvdW50ICggTV9XSVRIX1JFVFVSTiB8IDM0ICkKI2RlZmluZSBNX1N0YXR1c0dldEl0ZW1JZAkoIE1fV0lUSF9SRVRVUk4gfCAzNSApCgovLwojZGVmaW5lIE1fR2V0TW91c2VTdHlsZQkJKCBNX1dJVEhfUkVUVVJOIHwgMzYgKQoKLy8gc3VwcG9ydCBmb3IgTWVzc2FnZWJveCB3aXRoIGNoZWNrYm94CiNkZWZpbmUgTV9HZXRDaGVja0JveFRleHQJKCBNX1dJVEhfUkVUVVJOIHwgMzcgKQoKLy8gU2Nyb2xsYmFycwojZGVmaW5lIE1fSGFzU2Nyb2xsQmFyCQkoIE1fV0lUSF9SRVRVUk4gfCAzOCApCiNkZWZpbmUgTV9Jc1Njcm9sbEJhckVuYWJsZWQgKCBNX1dJVEhfUkVUVVJOIHwgMzkgKQoKLy8gRGllc2VyIGJlZmVobCB3aXJkIG51ciBpbnRlcm4gaW0gQ29udHJvbGxlciAoc3RzIGxpYnJhcnkpIHZlcndlbmRldC4gU2llIHRhdWNoZW4gbmljaHQgaW0gVGVzdHRvb2wgYXVmIQojZGVmaW5lIF9NX0lzRW5hYmxlZAkJKCBNX1dJVEhfUkVUVVJOIHwgNTAgKQoKCiNkZWZpbmUgTV9HZXRGaXhlZFRleHRDb3VudAkoIE1fV0lUSF9SRVRVUk4gfCA1MSApCiNkZWZpbmUgTV9HZXRGaXhlZFRleHQJCSggTV9XSVRIX1JFVFVSTiB8IDUyICkKCgojZGVmaW5lIE1fSXNNaW4JCQkJKCBNX1dJVEhfUkVUVVJOIHwgNTMgKQojZGVmaW5lIE1fSXNSZXN0b3JlICAgICAgICAgKCBNX1dJVEhfUkVUVVJOIHwgNTQgKQoKI2RlZmluZSBNX0dldEl0ZW1UeXBlICAgICAgICggTV9XSVRIX1JFVFVSTiB8IDU1ICkKCi8vIENvbW1hbmRzIGZvciAoRWRpdClCcm93c2VCb3gKI2RlZmluZSBNX0dldENvbHVtbkNvdW50ICAgICggTV9XSVRIX1JFVFVSTiB8IDU2ICkKI2RlZmluZSBNX0dldFJvd0NvdW50ICAgICAgICggTV9XSVRIX1JFVFVSTiB8IDU3ICkKI2RlZmluZSBNX0lzRWRpdGluZyAgICAgICAgICggTV9XSVRIX1JFVFVSTiB8IDU4ICkKCiNkZWZpbmUgTV9Jc0l0ZW1FbmFibGVkICAgICAoIE1fV0lUSF9SRVRVUk4gfCA1OSApCgovLyBUcmVlTGlzdEJveAojZGVmaW5lIE1fQ29sbGFwc2UJICAgICggTV9XSVRIX1JFVFVSTiB8IDYwICkKI2RlZmluZSBNX0V4cGFuZAkgICAgKCBNX1dJVEhfUkVUVVJOIHwgNjEgKQoKLy8jZGVmaW5lIE1fU09GRklDRSAgICAgICAgICAgMHgwODAwICAvLyBDb21tYW5kIHZhbGlkIGZvciBTdGFyL09wZW4gT2ZmaWNlCi8vI2RlZmluZSBNX01PWklMTEEgICAgICAgICAgIDB4MTAwMCAgLy8gQ29tbWFuZCB2YWxpZCBmb3IgTW96aWxsYQoKLy8gRW5oZW5jZW1lbnQKI2RlZmluZSBNX0dldEhlbHBUZXh0ICAoIE1fV0lUSF9SRVRVUk4gfCAgOTAgKQojZGVmaW5lIE1fR2V0UXVpY2tIZWxwVGV4dCAgKCBNX1dJVEhfUkVUVVJOIHwgIDkxICkKI2RlZmluZSBNX0dldFNjcmVlblJlY3RhbmdsZSAoIE1fV0lUSF9SRVRVUk4gfCAgOTIgKQojZGVmaW5lIE1fSGFzRm9jdXMgKCBNX1dJVEhfUkVUVVJOIHwgIDkzICkKI2RlZmluZSBNX0dldEl0ZW1IZWxwVGV4dCAoIE1fV0lUSF9SRVRVUk4gfCAgOTQgKQojZGVmaW5lIE1fR2V0SXRlbVF1aWNrSGVscFRleHQgKCBNX1dJVEhfUkVUVVJOIHwgIDk1ICkKI2RlZmluZSBNX0dldEl0ZW1UZXh0MiAoIE1fV0lUSF9SRVRVUk4gfCAgOTYgKQoKLy8gUmVtb3RlQ29tbWFuZHMKI2RlZmluZSBSQ19BcHBBYm9ydAkJCSggTV9TT0ZGSUNFIHwgTV9NT1pJTExBIHwgMSApCiNkZWZpbmUgUkNfU2V0Q2xpcGJvYXJkCQkoIE1fU09GRklDRSB8IE1fTU9aSUxMQSB8IDIgKQojZGVmaW5lIFJDX05vRGVidWcJCQkoIE1fU09GRklDRSB8IE1fTU9aSUxMQSB8IDMgKQojZGVmaW5lIFJDX0RlYnVnCQkJKCBNX1NPRkZJQ0UgfCBNX01PWklMTEEgfCA0ICkKI2RlZmluZSBSQ19HUEYJCQkJKCBNX1NPRkZJQ0UgfCBNX01PWklMTEEgfCA1ICkKI2RlZmluZSBSQ19EaXNwbGF5SGlkCQkoIE1fU09GRklDRSB8IE1fTU9aSUxMQSB8IDYgKQojZGVmaW5lIFJDX0FwcERlbGF5CQkJKCBNX1NPRkZJQ0UgfCBNX01PWklMTEEgfCA3ICkKI2RlZmluZSBSQ19Vc2VCaW5kaW5ncwkJKCBNX1NPRkZJQ0UgICAgICAgICAgICAgfCA4ICkKI2RlZmluZSBSQ19Qcm9maWxlCQkJKCBNX1NPRkZJQ0UgfCBNX01PWklMTEEgfCA5ICkKLy8gKFBvcHVwKU1lbnUKI2RlZmluZSBSQ19NZW51U2VsZWN0CQkoIE1fU09GRklDRSB8IE1fTU9aSUxMQSB8IDEwICkKI2RlZmluZSBSQ19TZXRDb250cm9sVHlwZQkoIE1fU09GRklDRSAgICAgICAgICAgICB8IDExICkgICAgLy8gZGVwcmVjYXRlZCBzaW5jZSBSVFRJCi8vIFJlbW90ZUZpbGVBY2Nlc3MKI2RlZmluZSBSQ19LaWxsCQkJCSggTV9TT0ZGSUNFICAgICAgICAgICAgIHwgMTIgKQojZGVmaW5lIFJDX1JtRGlyCQkJKCBNX1NPRkZJQ0UgICAgICAgICAgICAgfCAxMyApCiNkZWZpbmUgUkNfTWtEaXIJCQkoIE1fU09GRklDRSAgICAgICAgICAgICB8IDE0ICkKI2RlZmluZSBSQ19GaWxlQ29weQkJCSggTV9TT0ZGSUNFICAgICAgICAgICAgIHwgMTUgKQojZGVmaW5lIFJDX05hbWUJCQkJKCBNX1NPRkZJQ0UgICAgICAgICAgICAgfCAxNiApCgojZGVmaW5lIFJDX0NhcHR1cmVBc3NlcnRpb25zIChNX1NPRkZJQ0UgfCBNX01PWklMTEEgfCAxNyApCiNkZWZpbmUgUkNfQXNzZXJ0CQkJKCBNX1NPRkZJQ0UgfCBNX01PWklMTEEgfCAxOCApCgojZGVmaW5lIFJDX01lbnVPcGVuCQkJKCBNX1NPRkZJQ0UgfCBNX01PWklMTEEgfCAxOSApCgojZGVmaW5lIFJDX1R5cGVLZXlzRGVsYXkJKCBNX1NPRkZJQ0UgfCBNX01PWklMTEEgfCAyMCApCgojZGVmaW5lIFJDX1Nob3dCYXIgICAgICAgCSggICAgICAgICAgICAgTV9NT1pJTExBIHwgMjEgKQoKI2RlZmluZSBSQ19Mb2FkVVJMICAgICAgICAgICggICAgICAgICAgICAgTV9NT1pJTExBIHwgMjIgKQoKI2RlZmluZSBSQ19DbG9zZVN5c0RpYWxvZwkoIE1fU09GRklDRSAgICAgICAgICAgICB8IDIzICkKCiNkZWZpbmUgUkNfU0FYUmVsZWFzZQkJKCBNX1NPRkZJQ0UgICAgICAgICAgICAgfCAyNCApCgojZGVmaW5lIFJDX1JlY29yZE1hY3JvICAgICAgKCBNX1NPRkZJQ0UgICAgICAgICAgICAgfCAyNSApCgojZGVmaW5lIFJDX0FjdGl2YXRlRG9jdW1lbnQgKCBNX1NPRkZJQ0UgICAgICAgICAgICAgfCAyNiApCgojZGVmaW5lIFJDX0NhdGNoR1BGICAgICAgICAgKCBNX1NPRkZJQ0UgICAgICAgICAgICAgfCAyNyApCgojZGVmaW5lIF9SQ19MQVNUX05PX1JFVFVSTgkgICAgICAgICAgICAgICAgICAgICAgICAgIDI3CgojaWYgKCBfUkNfTEFTVF9OT19SRVRVUk4gPj0gTV9XSVRIX1JFVFVSTiApCiNlcnJvciAiQmVyZWljaCD8YmVyc2Nocml0dGVuIgojZW5kaWYKCi8vIEJlZmVobGUgbWl0IFJldHVybndlcnQKI2RlZmluZSBSQ19HZXRDbGlwYm9hcmQJCSggTV9TT0ZGSUNFIHwgTV9NT1pJTExBIHwgTV9XSVRIX1JFVFVSTiB8IDEgKQojZGVmaW5lIFJDX1dpblRyZWUJCQkoIE1fU09GRklDRSB8IE1fTU9aSUxMQSB8IE1fV0lUSF9SRVRVUk4gfCAyICkKI2RlZmluZSBSQ19SZXNldEFwcGxpY2F0aW9uCSggTV9TT0ZGSUNFIHwgTV9NT1pJTExBIHwgTV9XSVRIX1JFVFVSTiB8IDMgKQojZGVmaW5lIFJDX0dldE5leHRDbG9zZVdpbmRvdyAoIE1fU09GRklDRSAgICAgICAgICAgICB8IE1fV0lUSF9SRVRVUk4gfCA0ICkKI2RlZmluZSBSQ19BcHBsaWNhdGlvbkJ1c3kJKCBNX1NPRkZJQ0UgfCBNX01PWklMTEEgfCBNX1dJVEhfUkVUVVJOIHwgNSApCi8vIChQb3B1cClNZW51CiNkZWZpbmUgUkNfTWVudUdldEl0ZW1Db3VudAkoIE1fU09GRklDRSB8IE1fTU9aSUxMQSB8IE1fV0lUSF9SRVRVUk4gfCA2ICkKI2RlZmluZSBSQ19NZW51R2V0SXRlbUlkCSggTV9TT0ZGSUNFIHwgTV9NT1pJTExBIHwgTV9XSVRIX1JFVFVSTiB8IDcgKQojZGVmaW5lIFJDX01lbnVHZXRJdGVtUG9zCSggTV9TT0ZGSUNFIHwgTV9NT1pJTExBIHwgTV9XSVRIX1JFVFVSTiB8IDggKQojZGVmaW5lIFJDX01lbnVJc1NlcGVyYXRvcgkoIE1fU09GRklDRSB8IE1fTU9aSUxMQSB8IE1fV0lUSF9SRVRVUk4gfCA5ICkKI2RlZmluZSBSQ19NZW51SXNJdGVtQ2hlY2tlZCAoIE1fU09GRklDRSB8IE1fTU9aSUxMQSB8IE1fV0lUSF9SRVRVUk4gfCAxMCApCiNkZWZpbmUgUkNfTWVudUlzSXRlbUVuYWJsZWQgKCBNX1NPRkZJQ0UgfCBNX01PWklMTEEgfCBNX1dJVEhfUkVUVVJOIHwgMTEgKQojZGVmaW5lIFJDX01lbnVHZXRJdGVtVGV4dAkoIE1fU09GRklDRSB8IE1fTU9aSUxMQSB8IE1fV0lUSF9SRVRVUk4gfCAxMiApCi8vIFJlbW90ZUZpbGVBY2Nlc3MKI2RlZmluZSBSQ19EaXIJCQkJKCBNX1NPRkZJQ0UgICAgICAgICAgICAgfCBNX1dJVEhfUkVUVVJOIHwgMTggKQojZGVmaW5lIFJDX0ZpbGVMZW4JCQkoIE1fU09GRklDRSAgICAgICAgICAgICB8IE1fV0lUSF9SRVRVUk4gfCAxOSApCiNkZWZpbmUgUkNfRmlsZURhdGVUaW1lCQkoIE1fU09GRklDRSAgICAgICAgICAgICB8IE1fV0lUSF9SRVRVUk4gfCAyMCApCgojZGVmaW5lIFJDX1RyYW5zbGF0ZQkJKCBNX1NPRkZJQ0UgfCBNX01PWklMTEEgfCBNX1dJVEhfUkVUVVJOIHwgMjEgKQojZGVmaW5lIFJDX0dldE1vdXNlU3R5bGUJKCBNX1NPRkZJQ0UgfCBNX01PWklMTEEgfCBNX1dJVEhfUkVUVVJOIHwgMjIgKQojZGVmaW5lIFJDX1VucGFja1N0b3JhZ2UJKCBNX1NPRkZJQ0UgICAgICAgICAgICAgfCBNX1dJVEhfUkVUVVJOIHwgMjMgKQoKI2RlZmluZSBSQ19Jc0JhclZpc2libGUgCSggICAgICAgICAgICAgTV9NT1pJTExBIHwgTV9XSVRIX1JFVFVSTiB8IDI0ICkKCiNkZWZpbmUgUkNfTWVudUdldEl0ZW1Db21tYW5kICggTV9TT0ZGSUNFIHwgTV9NT1pJTExBIHwgTV9XSVRIX1JFVFVSTiB8IDI1ICkKCiNkZWZpbmUgUkNfRXhpc3RzU3lzRGlhbG9nICAoIE1fU09GRklDRSAgICAgICAgICAgICB8IE1fV0lUSF9SRVRVUk4gfCAyNiApCgojZGVmaW5lIFJDX1NBWENoZWNrV2VsbGZvcm1lZCAoIE1fU09GRklDRSAgICAgICAgICAgICB8IE1fV0lUSF9SRVRVUk4gfCAyNyApCiNkZWZpbmUgUkNfU0FYUmVhZEZpbGUJCSggTV9TT0ZGSUNFICAgICAgICAgICAgIHwgTV9XSVRIX1JFVFVSTiB8IDI4ICkKCiNkZWZpbmUgUkNfU0FYR2V0Tm9kZVR5cGUgICAoIE1fU09GRklDRSAgICAgICAgICAgICB8IE1fV0lUSF9SRVRVUk4gfCAyOSApCiNkZWZpbmUgUkNfU0FYR2V0RWxlbWVudE5hbWUgKCBNX1NPRkZJQ0UgICAgICAgICAgICAgfCBNX1dJVEhfUkVUVVJOIHwgMzAgKQojZGVmaW5lIFJDX1NBWEdldENoYXJzICAgICAgKCBNX1NPRkZJQ0UgICAgICAgICAgICAgfCBNX1dJVEhfUkVUVVJOIHwgMzEgKQojZGVmaW5lIFJDX1NBWEdldENoaWxkQ291bnQgKCBNX1NPRkZJQ0UgICAgICAgICAgICAgfCBNX1dJVEhfUkVUVVJOIHwgMzIgKQojZGVmaW5lIFJDX1NBWEdldEF0dHJpYnV0ZUNvdW50ICggTV9TT0ZGSUNFICAgICAgICAgICAgIHwgTV9XSVRIX1JFVFVSTiB8IDMzICkKI2RlZmluZSBSQ19TQVhHZXRBdHRyaWJ1dGVOYW1lICggTV9TT0ZGSUNFICAgICAgICAgICAgIHwgTV9XSVRIX1JFVFVSTiB8IDM0ICkKI2RlZmluZSBSQ19TQVhHZXRBdHRyaWJ1dGVWYWx1ZSAoIE1fU09GRklDRSAgICAgICAgICAgICB8IE1fV0lUSF9SRVRVUk4gfCAzNSApCiNkZWZpbmUgUkNfU0FYU2Vla0VsZW1lbnQgICAoIE1fU09GRklDRSAgICAgICAgICAgICB8IE1fV0lUSF9SRVRVUk4gfCAzNiApCiNkZWZpbmUgUkNfU0FYSGFzRWxlbWVudCAgICAoIE1fU09GRklDRSAgICAgICAgICAgICB8IE1fV0lUSF9SRVRVUk4gfCAzNyApCiNkZWZpbmUgUkNfU0FYR2V0RWxlbWVudFBhdGggKCBNX1NPRkZJQ0UgICAgICAgICAgICAgfCBNX1dJVEhfUkVUVVJOIHwgMzggKQoKI2RlZmluZSBSQ19HZXREb2N1bWVudENvdW50ICggTV9TT0ZGSUNFICAgICAgICAgICAgIHwgTV9XSVRIX1JFVFVSTiB8IDM5ICkKCiNkZWZpbmUgUkNfR2V0U3lzdGVtTGFuZ3VhZ2UgKCBNX1NPRkZJQ0UgICAgICAgICAgICAgfCBNX1dJVEhfUkVUVVJOIHwgNDAgKQoKI2RlZmluZSBSQ19Jc1Byb2R1Y3QgICAgICAgICggTV9TT0ZGSUNFICAgICAgICAgICAgIHwgTV9XSVRIX1JFVFVSTiB8IDQxICkKCiNkZWZpbmUgUkNfTWVudUhhc1N1Yk1lbnUgICAoIE1fU09GRklDRSAgICAgICAgICAgICB8IE1fV0lUSF9SRVRVUk4gfCA0MiApCgojZGVmaW5lIFJDX1VzZVBvc3RFdmVudHMgICAgKCBNX1NPRkZJQ0UgICAgICAgICAgICAgfCBNX1dJVEhfUkVUVVJOIHwgNDMgKQoKI2RlZmluZSBSQ19XYWl0U2xvdCAgICAgICAgICggTV9TT0ZGSUNFICAgICAgICAgICAgIHwgTV9XSVRIX1JFVFVSTiB8IDQ0ICkKCi8vIEZsb3cgQ29udHJvbAojZGVmaW5lIEZfRW5kQ29tbWFuZEJsb2NrCTEwMQkJCS8vIEluaXRpaWVydCBS/GNrbWVsZHVuZyBkZXMgU3RhdHVzCiNkZWZpbmUgRl9TZXF1ZW5jZQkJCTEwMgkJCS8vINxiZXJnaWJ0IFNlcXVlbmNlIE51bW1lciAoMS4gaW4gamVkZW0gU3RyZWFtKQoKLy8gUmV0dXJuIGNvZGVzCiNkZWZpbmUgUkVUX1NlcXVlbmNlCQkxMzIJCQkvLyDcYmVyZ2lidCBTZXF1ZW5jZSBOdW1tZXIgKDEuIGluIGplZGVtIFN0cmVhbSkKI2RlZmluZSBSRVRfVmFsdWUJCQkxMzMJCQkvLyDcYmVyZ2lidCBSZXR1cm4td2VydAojZGVmaW5lIFJFVF9XaW5JbmZvCQkJMTM0CQkJLy8gSW5mb3JtYXRpb24g/GJlciBha3R1ZWxsZXMgRmVuc3Rlci9Db250cm9sCiNkZWZpbmUgUkVUX1Byb2ZpbGVJbmZvCQkxMzUJCQkvLyBQcm9maWxlIEluZm9ybWF0aW9uCiNkZWZpbmUgUkVUX0RpcmVjdExvZ2luZwkxMzYJCQkvLyBEaXJla3RlcyDcYmVydHJhZ2VuIHZvbiBJbmZvcm1hdGlvbmVuIGluIGRhcyBMb2cKI2RlZmluZSBSRVRfTWFjcm9SZWNvcmRlcgkxMzcJCQkvLyBNYWtyb1JlY29yZGVyIEJlZmVobCD8YmVydHJhZ2VuCgoKCi8vIFN1YmNvZGVzIGRpZSBpbiBuVUlkIGdlbGllZmVydCB3ZXJkZW4KLy8gZvxyIEZfUHJvZmlsZUluZm8KI2RlZmluZSBTX1Byb2ZpbGVSZXNldAkJMjAxCQkJLy8gbk5yMSA9IEFuemFobCBCb3JkZXJzCgkvLyBBY2h0dW5nISEgRGllc2UgRGVmaW5lcyBt/HNzZW4gYXVmZWluYW5kZXJmb2xnZW5kZSBOdW1tZXJuIGhhYmVuISEKI2RlZmluZSBTX1Byb2ZpbGVCb3JkZXIxCTIwMgkJCS8vIG5OcjEgPSBCb3JkZXIxIGluIG1zCiNkZWZpbmUgU19Qcm9maWxlQm9yZGVyMgkyMDMJCQkvLyBuTnIxID0gQm9yZGVyMiBpbiBtcwojZGVmaW5lIFNfUHJvZmlsZUJvcmRlcjMJMjA0CQkJLy8gbk5yMSA9IEJvcmRlcjMgaW4gbXMKI2RlZmluZSBTX1Byb2ZpbGVCb3JkZXI0CTIwNQkJCS8vIG5OcjEgPSBCb3JkZXI0IGluIG1zCgkvLyBBY2h0dW5nIEVuZGUKI2RlZmluZSBTX1Byb2ZpbGVUaW1lCQkyMTAJCQkvLyBuTnIxID0gcmVtb3RlIFplaXQgZGVzIEJlZmVobHMKI2RlZmluZSBTX1Byb2ZpbGVEdW1wCQkyMTEJCQkvLyBHaWJ0IGRpZSBkYXRlbiBhdXMuCgovLyBm/HIgRl9EaXJlY3RMb2dpbmcKI2RlZmluZSBTX0Fzc2VydEVycm9yCQkyMjAKI2RlZmluZSBTX0Fzc2VydFdhcm5pbmcJCTIyMQojZGVmaW5lIFNfQXNzZXJ0VHJhY2UJCTIyMgojZGVmaW5lIFNfUUFFcnJvcgkJCTIyMwoKCgovLyBDb25zdGFudHMgd2hpY2ggYXJlIGF2YWlsYWJsZSBpbiBWQ0xUZXN0VG9vbCBzY3JpcHRzCgovLyBEaWZmZXJlbnQgdHlwZXMgb2YgY29udHJvbHMgcmVjb2duaXplZCB2aWEgUlRUSQojZGVmaW5lIENPTlNUX0NUQnJvd3NlQm94CQkxMDAKI2RlZmluZSBDT05TVF9DVFZhbHVlU2V0CQkxMDMKI2RlZmluZSBDT05TVF9DVE9Sb2FkbWFwICAgICAgICAxMDQKI2RlZmluZSBDT05TVF9DVElFeHRlbnNpb25MaXN0Qm94IDEwNQojZGVmaW5lIENPTlNUX0NUVGFibGVDb250cm9sICAgIDEwNgojZGVmaW5lIENPTlNUX0NUVW5rbm93bgkJCTE5OQoKLy8gS29uc3RhbnRlbiBm/HIgZGFzIEFMaWdubWVudCBkZXMgZ2VzdWNodGVuIFNwbGl0dGVycwojZGVmaW5lIENPTlNUX0FMSUdOX0xFRlQJCTEyMAojZGVmaW5lIENPTlNUX0FMSUdOX1RPUAkJCTEyMQojZGVmaW5lIENPTlNUX0FMSUdOX1JJR0hUCQkxMjIKI2RlZmluZSBDT05TVF9BTElHTl9CT1RUT00JCTEyMwoKLy8vIFdoYXQgZGlhbG9nIHRvIHVzZSBpbiBSQ19DbG9zZVN5c0RpYWxvZyBvciBSQ19FeGlzdHNTeXNEaWFsb2cKI2RlZmluZSBDT05TVF9GaWxlUGlja2VyICAgICAgICAzMDEKI2RlZmluZSBDT05TVF9Gb2xkZXJQaWNrZXIgICAgICAzMDIKCi8vLyBOb2RlVHlwZXMgb2YgdGhlIFNBWCBQYXJzZXIKI2RlZmluZSBDT05TVF9Ob2RlVHlwZUNoYXJhY3RlciA1NTUKI2RlZmluZSBDT05TVF9Ob2RlVHlwZUVsZW1lbnQgICA1NTYKI2RlZmluZSBDT05TVF9Ob2RlVHlwZUNvbW1lbnQgICA1NTcKCi8vLyBJdGVtVHlwZXMgZm9yIFRyZWVMaXN0Qm94IGFuZCBtYXliZSBvdGhlcnMKI2RlZmluZSBDT05TVF9JdGVtVHlwZVRleHQgICAgICAgICAgNjAyCiNkZWZpbmUgQ09OU1RfSXRlbVR5cGVCTVAgICAgICAgICAgIDYwMQojZGVmaW5lIENPTlNUX0l0ZW1UeXBlQ2hlY2tib3ggICAgICA2MDAKI2RlZmluZSBDT05TVF9JdGVtVHlwZUNvbnRleHRCTVAgICAgNjAzCiNkZWZpbmUgQ09OU1RfSXRlbVR5cGVVbmtub3duICAgICAgIDYwNAoKLy8vIFJldHVybiB2YWx1ZXMgZm9yIFdhaXRTbG90CiNkZWZpbmUgQ09OU1RfV1NUaW1lb3V0ICAgICAgICAgICAgIDcwMQojZGVmaW5lIENPTlNUX1dTQWJvcnRlZCAgICAgICAgICAgICA3MDIKI2RlZmluZSBDT05TVF9XU0ZpbmlzaGVkICAgICAgICAgICAgNzAzCgovLyBCZXNjaHJlaWJ0IGRpZSBQYXJhbWV0ZXJ0eXBlbiBhbHMgQml0ZmVsZCAgUmVpaGVuZm9sZ2UgaW1tZXIhCi8vIHdpZSBoaWVyIEF1ZmdlbGlzdGV0CiNkZWZpbmUgUEFSQU1fTk9ORSAgICAgICAgICAgICAgMHgwMDAwCiNkZWZpbmUgUEFSQU1fVVNIT1JUXzEgICAgICAgICAgMHgwMDAxCiNkZWZpbmUgUEFSQU1fVVNIT1JUXzIgICAgICAgICAgMHgwMDAyCiNkZWZpbmUgUEFSQU1fVVNIT1JUXzMgICAgICAgICAgMHgwMTAwCQkvLyBOaWNodCBpbiBkZXIgUmVpaGUhIQojZGVmaW5lIFBBUkFNX1VTSE9SVF80ICAgICAgICAgIDB4MDIwMAkJLy8gTmljaHQgaW4gZGVyIFJlaWhlISEKI2RlZmluZSBQQVJBTV9VTE9OR18xICAgICAgICAgICAweDAwMDQKI2RlZmluZSBQQVJBTV9VTE9OR18yICAgICAgICAgICAweDAwMDgKI2RlZmluZSBQQVJBTV9TVFJfMSAgICAgICAgICAgICAweDAwMTAKI2RlZmluZSBQQVJBTV9TVFJfMiAgICAgICAgICAgICAweDAwMjAKI2RlZmluZSBQQVJBTV9CT09MXzEgICAgICAgICAgICAweDAwNDAKI2RlZmluZSBQQVJBTV9CT09MXzIgICAgICAgICAgICAweDAwODAKI2RlZmluZSBQQVJBTV9TQlhWQUxVRV8xCQkweDA0MDAJCS8vIGhpZXIgbWl0IDB4MDQwMCBXZWl0ZXIhISEgU2llaGUgT2JlbiEKCi8vIFp1c+R0emxpY2hlIEJlc2NocmVpYnVuZyEhIHdpcmQgYXVjaCBtaXQgZGVtIFJlc3QgdmVyb2RlcnQKLy8jZGVmaW5lIFBBUkFNX1NUUl9SQVcgICAgICAgICAgIDB4ODAwMAkJLy8gRGVyIFplaWNoZW5zYXR6IGRlciBTdHJpbmdzIHdpcmQgbmljaHQga29udmVydGllcnQoZvxyIEZhcmVhc3Rlcm4pCgoKI2RlZmluZSBFUlJfU0VORF9USU1FT1VUCQkxMDAKI2RlZmluZSBFUlJfRVhFQ19USU1FT1VUCQkxMDEKI2RlZmluZSBFUlJfUkVTVEFSVF9GQUlMCQkxMDIKI2RlZmluZSBFUlJfUkVTVEFSVAkJCQkxMDMKI2RlZmluZSBFUlJfTk9fV0lOCQkJCTEwNAkJLy8gS2VpbmUgKi5XaW4gRGF0ZWllbiBnZWZ1bmRlbgojZGVmaW5lIEVSUl9OT19TSUQJCQkJMTA1CQkvLyBLZWluZSAqLlNpZCBEYXRlaWVuIGdlZnVuZGVuCiNkZWZpbmUgRVJSX05PX0ZJTEUJCQkJMTA2CQkvLyBEYXRlaSBuaWNodCBnZWZ1bmRlbgoKI2VuZGlmCg==