ZGlmZiAtLWdpdCBhL01BSU5UQUlORVJTIGIvTUFJTlRBSU5FUlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3NmRjMjQuLjAwMDAwMDAKLS0tIGEvTUFJTlRBSU5FUlMKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLQotQmlvbmljIHN1cHBvcnQgZm9yIFN1cGVySAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotQmlvbmljIHN1cHBvcnQgZm9yIFN1cGVySCBhcmNoaXRlY3R1cmUgaXMgd3JpdHRlbiBieQotU2hpbi1pY2hpcm8gS0FXQVNBS0kgPHNoaW5pY2hpcm8ua2F3YXNha2kubWdAaGl0YWNoaS5jb20+Ci1hbmQgQ29udHJpYnV0ZWQgdG8gQW5kcm9pZCBieSBIaXRhY2hpLCBMdGQuIGFuZCBSZW5lc2FzIFNvbHV0aW9ucyBDb3JwLgpkaWZmIC0tZ2l0IGEvbGliYy9BbmRyb2lkLm1rIGIvbGliYy9BbmRyb2lkLm1rCmluZGV4IDdkMzEzNDAuLjQ2NjQxZDUgMTAwNjQ0Ci0tLSBhL2xpYmMvQW5kcm9pZC5taworKysgYi9saWJjL0FuZHJvaWQubWsKQEAgLTQ0MCwxOCArNDQwLDE5IEBACiAjIERlZmluZSBzb21lIGNvbW1vbiBjZmxhZ3MKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIGxpYmNfY29tbW9uX2NmbGFncyA6PSBcCi0JCS1EV0lUSF9FUlJMSVNUCQkJXAotCQktREFORFJPSURfQ0hBTkdFUwkJXAotCQktRFVTRV9MT0NLUyAJCQlcCi0JCS1EUkVBTExPQ19aRVJPX0JZVEVTX0ZSRUVTIAlcCi0JCS1EX0xJQkM9MSAJCQlcCi0JCS1EU09GVEZMT0FUICAgICAgICAgICAgICAgICAgICAgXAotCQktREZMT0FUSU5HX1BPSU5UCQlcCi0JCS1ESU5FVDYgXAotCQktSSQoTE9DQUxfUEFUSCkvcHJpdmF0ZSBcCi0JCS1EVVNFX0RMX1BSRUZJWCBcCi0JCS1EUE9TSVhfTUlTVEFLRSBcCi0gICAgICAgICAgICAgICAgLURMT0dfT05fSEVBUF9FUlJPUiBcCisgICAgLURXSVRIX0VSUkxJU1QgXAorICAgIC1EQU5EUk9JRF9DSEFOR0VTIFwKKyAgICAtRFVTRV9MT0NLUyBcCisgICAgLURSRUFMTE9DX1pFUk9fQllURVNfRlJFRVMgXAorICAgIC1EX0xJQkM9MSBcCisgICAgLURTT0ZURkxPQVQgXAorICAgIC1ERkxPQVRJTkdfUE9JTlQgXAorICAgIC1ESU5FVDYgXAorICAgIC1JJChMT0NBTF9QQVRIKS9wcml2YXRlIFwKKyAgICAtRFVTRV9ETF9QUkVGSVggXAorICAgIC1EUE9TSVhfTUlTVEFLRSBcCisgICAgLURMT0dfT05fSEVBUF9FUlJPUiBcCisgICAgLXN0ZD1nbnU5OQogCiAjIHRoZXNlIG1hY3JvIGRlZmluaXRpb25zIGFyZSByZXF1aXJlZCB0byBpbXBsZW1lbnQgdGhlCiAjICd0aW1lem9uZScgYW5kICdkYXlsaWdodCcgZ2xvYmFsIHZhcmlhYmxlcywgYXMgd2VsbCBhcwpAQCAtNDY1LDYgKzQ2NiwxMyBAQAogICBsaWJjX2NvbW1vbl9jZmxhZ3MgKz0gLURERUJVRwogZW5kaWYKIAorIyBUbyBjdXN0b21pemUgZGxtYWxsb2MncyBhbGlnbm1lbnQsIHNldCBCT0FSRF9NQUxMT0NfQUxJR05NRU5UIGluCisjIHRoZSBhcHByb3ByaWF0ZSBCb2FyZENvbmZpZy5tayBmaWxlLgorIworaWZuZXEgKCQoQk9BUkRfTUFMTE9DX0FMSUdOTUVOVCksKQorICBsaWJjX2NvbW1vbl9jZmxhZ3MgKz0gLURNQUxMT0NfQUxJR05NRU5UPSQoQk9BUkRfTUFMTE9DX0FMSUdOTUVOVCkKK2VuZGlmCisKIGlmZXEgKCQoVEFSR0VUX0FSQ0gpLGFybSkKICAgbGliY19jb21tb25fY2ZsYWdzICs9IC1mc3RyaWN0LWFsaWFzaW5nCiAgIGxpYmNfY3J0X3RhcmdldF9jZmxhZ3MgOj0gLW10aHVtYi1pbnRlcndvcmsKQEAgLTQ3OCw2ICs0ODYsMTQgQEAKICAgaWZlcSAoJChBUkNIX0FSTV9IQVZFX1RMU19SRUdJU1RFUiksdHJ1ZSkKICAgICBsaWJjX2NvbW1vbl9jZmxhZ3MgKz0gLURIQVZFX0FSTV9UTFNfUkVHSVNURVIKICAgZW5kaWYKKyAgIworICAjIERlZmluZSBIQVZFXzMyX0JZVEVfQ0FDSEVfTElORVMgdG8gaW5kaWNhdGUgdG8gQworICAjIGxpYnJhcnkgaXQgc2hvdWxkIHVzZSB0byAzMi1ieXRlIHZlcnNpb24gb2YgbWVtY3B5LCBhbmQgbm90CisgICMgdGhlIDY0LWJ5dGUgdmVyc2lvbi4KKyAgIworICBpZmVxICgkKEFSQ0hfQVJNX0hBVkVfMzJfQllURV9DQUNIRV9MSU5FUyksdHJ1ZSkKKyAgICBsaWJjX2NvbW1vbl9jZmxhZ3MgKz0gLURIQVZFXzMyX0JZVEVfQ0FDSEVfTElORQorICBlbmRpZgogICBpZmVxICgkKEFSQ0hfQVJNX1VTRV9OT05fTkVPTl9NRU1DUFkpLHRydWUpCiAgICAgbGliY19jb21tb25fY2ZsYWdzICs9IC1EQVJDSF9BUk1fVVNFX05PTl9ORU9OX01FTUNQWQogICBlbmRpZgpkaWZmIC0tZ2l0IGEvbGliYy9TWVNDQUxMUy5UWFQgYi9saWJjL1NZU0NBTExTLlRYVAppbmRleCAxOTIzZWEwLi41MDRhMDUwIDEwMDY0NAotLS0gYS9saWJjL1NZU0NBTExTLlRYVAorKysgYi9saWJjL1NZU0NBTExTLlRYVApAQCAtMjIsMTggKzIyLDE4IEBACiAjICAgICAgICBhc3NlbWJsZXIgdGVtcGxhdGUgZm9yIHRoZSBzeXNjYWxsOyBpdCdzIHVwIHRvIHRoZSBiaW9uaWMgaW1wbGVtZW50YXRpb24gdG8gcHJvdmlkZQogIyAgICAgICAgYSByZWxldmFudCBDIHN0dWIKICMKLSMgICAgICAtIGFkZGl0aW9uYWxseSwgaWYgdGhlIHN5c2NhbGwgbnVtYmVyIGlzIGRpZmZlcmVudCBhbW91bmcgQVJNLCBhbmQgeDg2LCB1c2U6Ci0jICAgICAgICByZXR1cm5fdHlwZSBmdW5jbmFtZVs6c3lzY2FsbF9uYW1lXShwYXJhbWV0ZXJzKSBhcm1fbnVtYmVyLHg4Nl9udW1iZXIKKyMgICAgICAtIGFkZGl0aW9uYWxseSwgaWYgdGhlIHN5c2NhbGwgbnVtYmVyIGlzIGRpZmZlcmVudCBhbW91bmcgQVJNLCBhbmQgeDg2LCBNSVBTIHVzZToKKyMgICAgICAgIHJldHVybl90eXBlIGZ1bmNuYW1lWzpzeXNjYWxsX25hbWVdKHBhcmFtZXRlcnMpIGFybV9udW1iZXIseDg2X251bWJlciwgbWlwc19udW1iZXIKICMKICMgdGhlIGZpbGUgaXMgcHJvY2Vzc2VkIGJ5IGEgcHl0aG9uIHNjcmlwdCBuYW1lZCBnZW5zeXNjYWxscy5weQogIwogCiAjIHByb2Nlc3MgbWFuYWdlbWVudAotdm9pZCAgICBfZXhpdDpleGl0X2dyb3VwIChpbnQpICAgICAgMjQ4LDI1Mgordm9pZCAgICBfZXhpdDpleGl0X2dyb3VwIChpbnQpICAgICAgMjQ4LDI1MiwyNDYKIHZvaWQgICAgX2V4aXRfdGhyZWFkOmV4aXQgKGludCkgICAgIDEKIHBpZF90ICAgX19mb3JrOmZvcmsgKHZvaWQpICAgICAgICAgICAyCi1waWRfdCAgIF93YWl0cGlkOndhaXRwaWQgKHBpZF90LCBpbnQqLCBpbnQsIHN0cnVjdCBydXNhZ2UqKSAgIC0xLDcKLWludCAgICAgX193YWl0aWQ6d2FpdGlkKGludCwgcGlkX3QsIHN0cnVjdCBzaWdpbmZvX3QqLCBpbnQsdm9pZCopICAgICAgICAgIDI4MCwyODQKK3BpZF90ICAgX3dhaXRwaWQ6d2FpdHBpZCAocGlkX3QsIGludCosIGludCwgc3RydWN0IHJ1c2FnZSopICAgLTEsNyw3CitpbnQgICAgIF9fd2FpdGlkOndhaXRpZChpbnQsIHBpZF90LCBzdHJ1Y3Qgc2lnaW5mb190KiwgaW50LHZvaWQqKSAgICAgICAgICAyODAsMjg0LDI3OAogCiAjIE5PVEU6IHRoaXMgc3lzdGVtIGNhbGwgaXMgbmV2ZXIgY2FsbGVkIGRpcmVjdGx5LCBidXQgd2UgbGlzdCBpdCB0aGVyZQogIyAgICAgICB0byBoYXZlIF9fTlJfY2xvbmUgcHJvcGVybHkgZGVmaW5lZC4KQEAgLTQyLDcyICs0Miw4NyBAQAogCiBpbnQgICAgIGV4ZWN2ZSAoY29uc3QgY2hhciosIGNoYXIqIGNvbnN0KiwgY2hhciogY29uc3QqKSAgMTEKIAotaW50ICAgICBfX3NldHVpZDpzZXR1aWQzMiAodWlkX3QpICAgIDIxMwotdWlkX3QgICBnZXR1aWQ6Z2V0dWlkMzIgKCkgICAgICAgICAxOTkKLWdpZF90ICAgZ2V0Z2lkOmdldGdpZDMyICgpICAgICAgICAgMjAwCi11aWRfdCAgIGdldGV1aWQ6Z2V0ZXVpZDMyICgpICAgICAgIDIwMQotZ2lkX3QgICBnZXRlZ2lkOmdldGVnaWQzMiAoKSAgICAgICAyMDIKLXVpZF90ICAgZ2V0cmVzdWlkOmdldHJlc3VpZDMyICh1aWRfdCAqcnVpZCwgdWlkX3QgKmV1aWQsIHVpZF90ICpzdWlkKSAgIDIwOQotZ2lkX3QgICBnZXRyZXNnaWQ6Z2V0cmVzZ2lkMzIgKGdpZF90ICpyZ2lkLCBnaWRfdCAqZWdpZCwgZ2lkX3QgKnNnaWQpICAgMjExCi1waWRfdCAgIGdldHRpZCgpICAgICAgICAgICAgICAgICAgIDIyNAotc3NpemVfdCByZWFkYWhlYWQoaW50LCBvZmY2NF90LCBzaXplX3QpICAgICAyMjUKLWludCAgICAgZ2V0Z3JvdXBzOmdldGdyb3VwczMyKGludCwgZ2lkX3QgKikgICAgMjA1CitpbnQgICAgIF9fc2V0dWlkOnNldHVpZDMyICh1aWRfdCkgICAgMjEzLDIxMywtMQoraW50ICAgICBfX3NldHVpZDpzZXR1aWQgKHVpZF90KSAgIC0xLC0xLDIzCit1aWRfdCAgIGdldHVpZDpnZXR1aWQzMiAoKSAgICAgICAgIDE5OSwxOTksLTEKK3VpZF90ICAgZ2V0dWlkOmdldHVpZCAoKSAgICAgICAgICAgLTEsLTEsMjQKK2dpZF90ICAgZ2V0Z2lkOmdldGdpZDMyICgpICAgICAgICAgMjAwLDIwMCwtMQorZ2lkX3QgICBnZXRnaWQ6Z2V0Z2lkICgpICAgICAgICAgICAtMSwtMSw0NwordWlkX3QgICBnZXRldWlkOmdldGV1aWQzMiAoKSAgICAgICAyMDEsMjAxLC0xCit1aWRfdCAgIGdldGV1aWQ6Z2V0ZXVpZCAoKSAgICAgICAgIC0xLC0xLDQ5CitnaWRfdCAgIGdldGVnaWQ6Z2V0ZWdpZDMyICgpICAgICAgIDIwMiwyMDIsLTEKK2dpZF90ICAgZ2V0ZWdpZDpnZXRlZ2lkICgpICAgICAgICAgLTEsLTEsNTAKK3VpZF90ICAgZ2V0cmVzdWlkOmdldHJlc3VpZDMyICh1aWRfdCAqcnVpZCwgdWlkX3QgKmV1aWQsIHVpZF90ICpzdWlkKSAgIDIwOSwyMDksLTEKK3VpZF90ICAgZ2V0cmVzdWlkOmdldHJlc3VpZCAodWlkX3QgKnJ1aWQsIHVpZF90ICpldWlkLCB1aWRfdCAqc3VpZCkgICAgIC0xLC0xLDE4NgorZ2lkX3QgICBnZXRyZXNnaWQ6Z2V0cmVzZ2lkMzIgKGdpZF90ICpyZ2lkLCBnaWRfdCAqZWdpZCwgZ2lkX3QgKnNnaWQpICAgMjExLDIxMSwtMQorZ2lkX3QgICBnZXRyZXNnaWQ6Z2V0cmVzZ2lkIChnaWRfdCAqcmdpZCwgZ2lkX3QgKmVnaWQsIGdpZF90ICpzZ2lkKSAgICAgLTEsLTEsMTkxCitwaWRfdCAgIGdldHRpZCgpICAgICAgICAgICAgICAgICAgIDIyNCwyMjQsMjIyCitzc2l6ZV90IHJlYWRhaGVhZChpbnQsIG9mZjY0X3QsIHNpemVfdCkgICAgIDIyNSwyMjUsMjIzCitpbnQgICAgIGdldGdyb3VwczpnZXRncm91cHMzMihpbnQsIGdpZF90ICopICAgIDIwNSwyMDUsLTEKK2ludCAgICAgZ2V0Z3JvdXBzOmdldGdyb3VwcyhpbnQsIGdpZF90ICopICAgICAgLTEsLTEsODAKIHBpZF90ICAgZ2V0cGdpZChwaWRfdCkgICAgICAgICAgICAgMTMyCiBwaWRfdCAgIGdldHBwaWQoKSAgICAgICAgICAgICAgICAgIDY0CiBwaWRfdCAgIHNldHNpZCgpICAgICAgICAgICAgICAgICAgIDY2Ci1pbnQgICAgIHNldGdpZDpzZXRnaWQzMihnaWRfdCkgICAgIDIxNAoraW50ICAgICBzZXRnaWQ6c2V0Z2lkMzIoZ2lkX3QpICAgICAyMTQsMjE0LC0xCitpbnQgICAgIHNldGdpZDpzZXRnaWQoZ2lkX3QpICAgICAgIC0xLC0xLDQ2CiBpbnQgICAgIHNldGV1aWQ6c2V0ZXVpZDMyKHVpZF90KSAgIHN0dWIKLWludCAgICAgX19zZXRyZXVpZDpzZXRyZXVpZDMyKHVpZF90LCB1aWRfdCkgICAyMDMKLWludCAgICAgX19zZXRyZXN1aWQ6c2V0cmVzdWlkMzIodWlkX3QsIHVpZF90LCB1aWRfdCkgICAyMDgKLWludCAgICAgc2V0cmVzZ2lkOnNldHJlc2dpZDMyKGdpZF90LCBnaWRfdCwgZ2lkX3QpICAgMjEwCitpbnQgICAgIF9fc2V0cmV1aWQ6c2V0cmV1aWQzMih1aWRfdCwgdWlkX3QpICAgMjAzLDIwMywtMQoraW50ICAgICBfX3NldHJldWlkOnNldHJldWlkKHVpZF90LCB1aWRfdCkgICAgIC0xLC0xLDcwCitpbnQgICAgIF9fc2V0cmVzdWlkOnNldHJlc3VpZDMyKHVpZF90LCB1aWRfdCwgdWlkX3QpICAgMjA4LDIwOCwtMQoraW50ICAgICBfX3NldHJlc3VpZDpzZXRyZXN1aWQodWlkX3QsIHVpZF90LCB1aWRfdCkgICAgIC0xLC0xLDE4NQoraW50ICAgICBzZXRyZXNnaWQ6c2V0cmVzZ2lkMzIoZ2lkX3QsIGdpZF90LCBnaWRfdCkgICAyMTAsMjEwLC0xCitpbnQgICAgIHNldHJlc2dpZDpzZXRyZXNnaWQoZ2lkX3QsIGdpZF90LCBnaWRfdCkgICAgIC0xLC0xLDE5MAogdm9pZCogICBfX2Jyazpicmsodm9pZCopICAgICAgICAgICA0NQogIyBzZWUgY29tbWVudHMgaW4gYXJjaC1hcm0vYmlvbmljL2tpbGwuUyB0byB1bmRlcnN0YW5kIHdoeSB3ZSBkb24ndCBnZW5lcmF0ZSBhbiBBUk0gc3R1YiBmb3Iga2lsbC90a2lsbAotaW50ICAgICBraWxsKHBpZF90LCBpbnQpICAgICAgICAgICAtMSwzNwotaW50ICAgICB0a2lsbChwaWRfdCB0aWQsIGludCBzaWcpICAtMSwyMzgKLWludCAgICAgdGdraWxsKHBpZF90IHRnaWQsIHBpZF90IHRpZCwgaW50IHNpZykgIC0xLDI3MAoraW50ICAgICBraWxsKHBpZF90LCBpbnQpICAgICAgICAgICAtMSwzNywzNworaW50ICAgICB0a2lsbChwaWRfdCB0aWQsIGludCBzaWcpICAtMSwyMzgsMjM2CitpbnQgICAgIHRna2lsbChwaWRfdCB0Z2lkLCBwaWRfdCB0aWQsIGludCBzaWcpICAtMSwyNzAsMjY2CiBpbnQgICAgIF9fcHRyYWNlOnB0cmFjZShpbnQgcmVxdWVzdCwgaW50IHBpZCwgdm9pZCogYWRkciwgdm9pZCogZGF0YSkgIDI2Ci1pbnQgICAgIF9fc2V0X3RocmVhZF9hcmVhOnNldF90aHJlYWRfYXJlYSh2b2lkKiAgdXNlcl9kZXNjKSAgLTEsMjQzCitpbnQgICAgIF9fc2V0X3RocmVhZF9hcmVhOnNldF90aHJlYWRfYXJlYSh2b2lkKiAgdXNlcl9kZXNjKSAgLTEsMjQzLDI4MwogaW50ICAgICBfX2dldHByaW9yaXR5OmdldHByaW9yaXR5KGludCwgaW50KSAgOTYKIGludCAgICAgc2V0cHJpb3JpdHkoaW50LCBpbnQsIGludCkgICA5NwogaW50ICAgICBzZXRybGltaXQoaW50IHJlc291cmNlLCBjb25zdCBzdHJ1Y3QgcmxpbWl0ICpybHApICA3NQotaW50ICAgICBnZXRybGltaXQ6dWdldHJsaW1pdChpbnQgcmVzb3VyY2UsIHN0cnVjdCBybGltaXQgKnJscCkgIDE5MQoraW50ICAgICBnZXRybGltaXQ6dWdldHJsaW1pdChpbnQgcmVzb3VyY2UsIHN0cnVjdCBybGltaXQgKnJscCkgIDE5MSwxOTEsLTEKK2ludCAgICAgZ2V0cmxpbWl0OmdldHJsaW1pdChpbnQgcmVzb3VyY2UsIHN0cnVjdCBybGltaXQgKnJscCkgIC0xLC0xLDc2CiBpbnQgICAgIGdldHJ1c2FnZShpbnQgd2hvLCBzdHJ1Y3QgcnVzYWdlKiAgcl91c2FnZSkgIDc3Ci1pbnQgICAgIHNldGdyb3VwczpzZXRncm91cHMzMihpbnQsIGNvbnN0IGdpZF90ICopICAgMjA2CitpbnQgICAgIHNldGdyb3VwczpzZXRncm91cHMzMihpbnQsIGNvbnN0IGdpZF90ICopICAgMjA2LDIwNiwtMQoraW50ICAgICBzZXRncm91cHM6c2V0Z3JvdXBzKGludCwgY29uc3QgZ2lkX3QgKikgICAgIC0xLC0xLDgxCiBwaWRfdCAgIGdldHBncnAodm9pZCkgIHN0dWIKIGludCAgICAgc2V0cGdpZChwaWRfdCwgcGlkX3QpICA1NwotcGlkX3QgICB2Zm9yayh2b2lkKSAgMTkwLC0xLDE5MAotaW50ICAgICBzZXRyZWdpZDpzZXRyZWdpZDMyKGdpZF90LCBnaWRfdCkgIDIwNAorcGlkX3QgICB2Zm9yayh2b2lkKSAgMTkwLC0xLC0xCitpbnQgICAgIHNldHJlZ2lkOnNldHJlZ2lkMzIoZ2lkX3QsIGdpZF90KSAgMjA0LDIwNCwtMQoraW50ICAgICBzZXRyZWdpZDpzZXRyZWdpZChnaWRfdCwgZ2lkX3QpICAgIC0xLC0xLDcxCiBpbnQgICAgIGNocm9vdChjb25zdCBjaGFyICopICA2MQogIyBJTVBPUlRBTlQ6IEV2ZW4gdGhvdWdoIDxzeXMvcHJjdGwuaD4gZGVjbGFyZXMgcHJjdGwoaW50LC4uLiksIHRoZSBzeXNjYWxsIHN0dWIgbXVzdCB0YWtlIDYgYXJndW1lbnRzCiAjICAgICAgICAgICAgdG8gbWF0Y2ggdGhlIGtlcm5lbCBpbXBsZW1lbnRhdGlvbi4KLWludCAgICAgcHJjdGwoaW50IG9wdGlvbiwgdW5zaWduZWQgaW50IGFyZzIsIHVuc2lnbmVkIGludCBhcmczLCB1bnNpZ25lZCBpbnQgYXJnNCwgdW5zaWduZWQgaW50IGFyZzUpICAxNzIKLWludCAgICAgY2FwZ2V0KGNhcF91c2VyX2hlYWRlcl90IGhlYWRlciwgY2FwX3VzZXJfZGF0YV90IGRhdGEpIDE4NAotaW50ICAgICBjYXBzZXQoY2FwX3VzZXJfaGVhZGVyX3QgaGVhZGVyLCBjb25zdCBjYXBfdXNlcl9kYXRhX3QgZGF0YSkgMTg1Ci1pbnQgICAgIHNpZ2FsdHN0YWNrKGNvbnN0IHN0YWNrX3QqLCBzdGFja190KikgMTg2CitpbnQgICAgIHByY3RsKGludCBvcHRpb24sIHVuc2lnbmVkIGludCBhcmcyLCB1bnNpZ25lZCBpbnQgYXJnMywgdW5zaWduZWQgaW50IGFyZzQsIHVuc2lnbmVkIGludCBhcmc1KSAgMTcyLDE3MiwxOTIKK2ludCAgICAgY2FwZ2V0KGNhcF91c2VyX2hlYWRlcl90IGhlYWRlciwgY2FwX3VzZXJfZGF0YV90IGRhdGEpIDE4NCwxODQsMjA0CitpbnQgICAgIGNhcHNldChjYXBfdXNlcl9oZWFkZXJfdCBoZWFkZXIsIGNvbnN0IGNhcF91c2VyX2RhdGFfdCBkYXRhKSAxODUsMTg1LDIwNQoraW50ICAgICBzaWdhbHRzdGFjayhjb25zdCBzdGFja190Kiwgc3RhY2tfdCopIDE4NiwxODYsMjA2CiBpbnQgICAgIGFjY3QoY29uc3QgY2hhciogIGZpbGVwYXRoKSAgNTEKIAogIyBmaWxlIGRlc2NyaXB0b3JzCiBzc2l6ZV90ICAgICByZWFkIChpbnQsIHZvaWQqLCBzaXplX3QpICAgICAgICAzCiBzc2l6ZV90ICAgICB3cml0ZSAoaW50LCBjb25zdCB2b2lkKiwgc2l6ZV90KSAgICAgICA0Ci1zc2l6ZV90ICAgICBwcmVhZDY0IChpbnQsIHZvaWQgKiwgc2l6ZV90LCBvZmY2NF90KSAxODAKLXNzaXplX3QgICAgIHB3cml0ZTY0IChpbnQsIHZvaWQgKiwgc2l6ZV90LCBvZmY2NF90KSAxODEKK3NzaXplX3QgICAgIHByZWFkNjQgKGludCwgdm9pZCAqLCBzaXplX3QsIG9mZjY0X3QpIDE4MCwxODAsMjAwCitzc2l6ZV90ICAgICBwd3JpdGU2NCAoaW50LCB2b2lkICosIHNpemVfdCwgb2ZmNjRfdCkgMTgxLDE4MSwyMDEKIGludCAgICAgICAgIF9fb3BlbjpvcGVuIChjb25zdCBjaGFyKiwgaW50LCBtb2RlX3QpICA1Ci1pbnQgICAgICAgICBfX29wZW5hdDpvcGVuYXQgKGludCwgY29uc3QgY2hhciosIGludCwgbW9kZV90KSAgMzIyLDI5NQoraW50ICAgICAgICAgX19vcGVuYXQ6b3BlbmF0IChpbnQsIGNvbnN0IGNoYXIqLCBpbnQsIG1vZGVfdCkgIDMyMiwyOTUsMjg4CiBpbnQgICAgICAgICBjbG9zZSAoaW50KSAgICAgICAgICAgICAgICAgICAgICA2CiBpbnQgICAgICAgICBjcmVhdChjb25zdCBjaGFyKiwgbW9kZV90KSAgICAgICBzdHViCiBvZmZfdCAgICAgICBsc2VlayhpbnQsIG9mZl90LCBpbnQpICAgICAgICAgICAxOQogaW50ICAgICAgICAgX19sbHNlZWs6X2xsc2VlayAoaW50LCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCBsb2ZmX3QqLCBpbnQpICAxNDAKIHBpZF90ICAgICAgIGdldHBpZCAoKSAgICAyMAogdm9pZCAqICAgICAgbW1hcCh2b2lkICosIHNpemVfdCwgaW50LCBpbnQsIGludCwgbG9uZykgIHN0dWIKLXZvaWQgKiAgICAgIF9fbW1hcDI6bW1hcDIodm9pZCosIHNpemVfdCwgaW50LCBpbnQsIGludCwgbG9uZykgICAxOTIKK3ZvaWQgKiAgICAgIF9fbW1hcDI6bW1hcDIodm9pZCosIHNpemVfdCwgaW50LCBpbnQsIGludCwgbG9uZykgICAxOTIsMTkyLDIxMAogaW50ICAgICAgICAgbXVubWFwKHZvaWQgKiwgc2l6ZV90KSAgOTEKLXZvaWQgKiAgICAgIG1yZW1hcCh2b2lkICosIHNpemVfdCwgc2l6ZV90LCB1bnNpZ25lZCBsb25nKSAgMTYzCit2b2lkICogICAgICBtcmVtYXAodm9pZCAqLCBzaXplX3QsIHNpemVfdCwgdW5zaWduZWQgbG9uZykgIDE2MywxNjMsMTY3CiBpbnQgICAgICAgICBtc3luYyhjb25zdCB2b2lkICosIHNpemVfdCwgaW50KSAgICAxNDQKIGludCAgICAgICAgIG1wcm90ZWN0KGNvbnN0IHZvaWQgKiwgc2l6ZV90LCBpbnQpICAxMjUKLWludCAgICAgICAgIG1hZHZpc2UoY29uc3Qgdm9pZCAqLCBzaXplX3QsIGludCkgIDIyMCwyMTkKLWludCAgICAgICAgIG1sb2NrKGNvbnN0IHZvaWQgKmFkZHIsIHNpemVfdCBsZW4pICAgIDE1MAotaW50ICAgICAgICAgbXVubG9jayhjb25zdCB2b2lkICphZGRyLCBzaXplX3QgbGVuKSAgIDE1MQotaW50ICAgICAgICAgbWluY29yZSh2b2lkKiAgc3RhcnQsIHNpemVfdCAgbGVuZ3RoLCB1bnNpZ25lZCBjaGFyKiAgdmVjKSAgIDIxOSwyMTgKK2ludCAgICAgICAgIG1hZHZpc2UoY29uc3Qgdm9pZCAqLCBzaXplX3QsIGludCkgIDIyMCwyMTksMjE4CitpbnQgICAgICAgICBtbG9jayhjb25zdCB2b2lkICphZGRyLCBzaXplX3QgbGVuKSAgICAxNTAsMTUwLDE1NAoraW50ICAgICAgICAgbXVubG9jayhjb25zdCB2b2lkICphZGRyLCBzaXplX3QgbGVuKSAgIDE1MSwxNTEsMTU1CitpbnQgICAgICAgICBtaW5jb3JlKHZvaWQqICBzdGFydCwgc2l6ZV90ICBsZW5ndGgsIHVuc2lnbmVkIGNoYXIqICB2ZWMpICAgMjE5LDIxOCwyMTcKIGludCAgICAgICAgIF9faW9jdGw6aW9jdGwoaW50LCBpbnQsIHZvaWQgKikgIDU0CiBpbnQgICAgICAgICByZWFkdihpbnQsIGNvbnN0IHN0cnVjdCBpb3ZlYyAqLCBpbnQpICAgMTQ1CiBpbnQgICAgICAgICB3cml0ZXYoaW50LCBjb25zdCBzdHJ1Y3QgaW92ZWMgKiwgaW50KSAgMTQ2CkBAIC0xMTUsMTQ0ICsxMzAsMTQ3IEBACiBpbnQgICAgICAgICBmbG9jayhpbnQsIGludCkgICAxNDMKIGludCAgICAgICAgIGZjaG1vZChpbnQsIG1vZGVfdCkgIDk0CiBpbnQgICAgICAgICBkdXAoaW50KSAgNDEKLWludCAgICAgICAgIHBpcGUoaW50ICopICA0Miw0MgotaW50ICAgICAgICAgcGlwZTIoaW50ICosIGludCkgMzU5LDMzMQoraW50ICAgICAgICAgcGlwZShpbnQgKikgIDQyLDQyLC0xCitpbnQgICAgICAgICBwaXBlMihpbnQgKiwgaW50KSAzNTksMzMxLDMyOAogaW50ICAgICAgICAgZHVwMihpbnQsIGludCkgICA2MwogaW50ICAgICAgICAgc2VsZWN0Ol9uZXdzZWxlY3QoaW50LCBzdHJ1Y3QgZmRfc2V0ICosIHN0cnVjdCBmZF9zZXQgKiwgc3RydWN0IGZkX3NldCAqLCBzdHJ1Y3QgdGltZXZhbCAqKSAgMTQyCiBpbnQgICAgICAgICBmdHJ1bmNhdGUoaW50LCBvZmZfdCkgIDkzCi1pbnQgICAgICAgICBmdHJ1bmNhdGU2NChpbnQsIG9mZjY0X3QpIDE5NAotaW50ICAgICAgICAgZ2V0ZGVudHM6Z2V0ZGVudHM2NCh1bnNpZ25lZCBpbnQsIHN0cnVjdCBkaXJlbnQgKiwgdW5zaWduZWQgaW50KSAgIDIxNywyMjAKK2ludCAgICAgICAgIGZ0cnVuY2F0ZTY0KGludCwgb2ZmNjRfdCkgMTk0LDE5NCwyMTIKK2ludCAgICAgICAgIGdldGRlbnRzOmdldGRlbnRzNjQodW5zaWduZWQgaW50LCBzdHJ1Y3QgZGlyZW50ICosIHVuc2lnbmVkIGludCkgICAyMTcsMjIwLDIxOQogaW50ICAgICAgICAgZnN5bmMoaW50KSAgMTE4Ci1pbnQgICAgICAgICBmZGF0YXN5bmMoaW50KSAxNDgKLWludCAgICAgICAgIGZjaG93bjpmY2hvd24zMihpbnQsIHVpZF90LCBnaWRfdCkgIDIwNworaW50ICAgICAgICAgZmRhdGFzeW5jKGludCkgMTQ4LDE0OCwxNTIKK2ludCAgICAgICAgIGZjaG93bjpmY2hvd24zMihpbnQsIHVpZF90LCBnaWRfdCkgIDIwNywyMDcsLTEKK2ludCAgICAgICAgIGZjaG93bjpmY2hvd24oaW50LCB1aWRfdCwgZ2lkX3QpICAgIC0xLC0xLDk1CiB2b2lkICAgICAgICBzeW5jKHZvaWQpICAzNgotaW50ICAgICAgICAgX19mY250bDY0OmZjbnRsNjQoaW50LCBpbnQsIHZvaWQgKikgIDIyMQotaW50ICAgICAgICAgX19mc3RhdGZzNjQ6ZnN0YXRmczY0KGludCwgc2l6ZV90LCBzdHJ1Y3Qgc3RhdGZzICopICAyNjcsMjY5Ci1zc2l6ZV90ICAgICBzZW5kZmlsZShpbnQgb3V0X2ZkLCBpbnQgaW5fZmQsIG9mZl90ICpvZmZzZXQsIHNpemVfdCBjb3VudCkgIDE4NwotaW50ICAgICAgICAgZnN0YXRhdDpmc3RhdGF0NjQoaW50IGRpcmZkLCBjb25zdCBjaGFyICpwYXRoLCBzdHJ1Y3Qgc3RhdCAqYnVmLCBpbnQgZmxhZ3MpICAgMzI3LDMwMAotaW50ICAgICAgICAgbWtkaXJhdChpbnQgZGlyZmQsIGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBtb2RlX3QgbW9kZSkgIDMyMywyOTYKLWludCAgICAgICAgIGZjaG93bmF0KGludCBkaXJmZCwgY29uc3QgY2hhciAqcGF0aCwgdWlkX3Qgb3duZXIsIGdpZF90IGdyb3VwLCBpbnQgZmxhZ3MpICAzMjUsMjk4Ci1pbnQgICAgICAgICBmY2htb2RhdChpbnQgZGlyZmQsIGNvbnN0IGNoYXIgKnBhdGgsIG1vZGVfdCBtb2RlLCBpbnQgZmxhZ3MpICAzMzMsMzA2Ci1pbnQgICAgICAgICByZW5hbWVhdChpbnQgb2xkZGlyZmQsIGNvbnN0IGNoYXIgKm9sZHBhdGgsIGludCBuZXdkaXJmZCwgY29uc3QgY2hhciAqbmV3cGF0aCkgIDMyOSwzMDIKLWludCAgICAgICAgIGZzZXR4YXR0cihpbnQsIGNvbnN0IGNoYXIgKiwgY29uc3Qgdm9pZCAqLCBzaXplX3QsIGludCkgMjI4Ci1zc2l6ZV90ICAgICBmZ2V0eGF0dHIoaW50LCBjb25zdCBjaGFyICosIHZvaWQgKiwgc2l6ZV90KSAyMzEKLXNzaXplX3QgICAgIGZsaXN0eGF0dHIoaW50LCBjaGFyICosIHNpemVfdCkgMjM0Ci1pbnQgICAgICAgICBmcmVtb3ZleGF0dHIoaW50LCBjb25zdCBjaGFyICopIDIzNworaW50ICAgICAgICAgX19mY250bDY0OmZjbnRsNjQoaW50LCBpbnQsIHZvaWQgKikgIDIyMSwyMjEsMjIwCitpbnQgICAgICAgICBfX2ZzdGF0ZnM2NDpmc3RhdGZzNjQoaW50LCBzaXplX3QsIHN0cnVjdCBzdGF0ZnMgKikgIDI2NywyNjksMjU2Citzc2l6ZV90ICAgICBzZW5kZmlsZShpbnQgb3V0X2ZkLCBpbnQgaW5fZmQsIG9mZl90ICpvZmZzZXQsIHNpemVfdCBjb3VudCkgIDE4NywxODcsMjA3CitpbnQgICAgICAgICBmc3RhdGF0OmZzdGF0YXQ2NChpbnQgZGlyZmQsIGNvbnN0IGNoYXIgKnBhdGgsIHN0cnVjdCBzdGF0ICpidWYsIGludCBmbGFncykgICAzMjcsMzAwLDI5MworaW50ICAgICAgICAgbWtkaXJhdChpbnQgZGlyZmQsIGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBtb2RlX3QgbW9kZSkgIDMyMywyOTYsMjg5CitpbnQgICAgICAgICBmY2hvd25hdChpbnQgZGlyZmQsIGNvbnN0IGNoYXIgKnBhdGgsIHVpZF90IG93bmVyLCBnaWRfdCBncm91cCwgaW50IGZsYWdzKSAgMzI1LDI5OCwyOTEKK2ludCAgICAgICAgIGZjaG1vZGF0KGludCBkaXJmZCwgY29uc3QgY2hhciAqcGF0aCwgbW9kZV90IG1vZGUsIGludCBmbGFncykgIDMzMywzMDYsMjk5CitpbnQgICAgICAgICByZW5hbWVhdChpbnQgb2xkZGlyZmQsIGNvbnN0IGNoYXIgKm9sZHBhdGgsIGludCBuZXdkaXJmZCwgY29uc3QgY2hhciAqbmV3cGF0aCkgIDMyOSwzMDIsMjk1CitpbnQgICAgICAgICBmc2V0eGF0dHIoaW50LCBjb25zdCBjaGFyICosIGNvbnN0IHZvaWQgKiwgc2l6ZV90LCBpbnQpIDIyOCwyMjgsMjI2Citzc2l6ZV90ICAgICBmZ2V0eGF0dHIoaW50LCBjb25zdCBjaGFyICosIHZvaWQgKiwgc2l6ZV90KSAyMzEsMjMxLDIyOQorc3NpemVfdCAgICAgZmxpc3R4YXR0cihpbnQsIGNoYXIgKiwgc2l6ZV90KSAyMzQsMjM0LDIzMgoraW50ICAgICAgICAgZnJlbW92ZXhhdHRyKGludCwgY29uc3QgY2hhciAqKSAyMzcsMjM3LDIzNQogCiAjIGZpbGUgc3lzdGVtCiBpbnQgICAgIGxpbmsgKGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKikgIDkKIGludCAgICAgdW5saW5rIChjb25zdCBjaGFyKikgICAgICAgICAgICAgMTAKLWludCAgICAgdW5saW5rYXQgKGludCwgY29uc3QgY2hhciAqLCBpbnQpICAgMzI4LDMwMQoraW50ICAgICB1bmxpbmthdCAoaW50LCBjb25zdCBjaGFyICosIGludCkgICAzMjgsMzAxLDI5NAogaW50ICAgICBjaGRpciAoY29uc3QgY2hhciopICAgICAgICAgICAgICAxMgogaW50ICAgICBta25vZCAoY29uc3QgY2hhciosIG1vZGVfdCwgZGV2X3QpICAxNAogaW50ICAgICBjaG1vZCAoY29uc3QgY2hhciosbW9kZV90KSAgICAgICAgICAxNQotaW50ICAgICBjaG93bjpjaG93bjMyKGNvbnN0IGNoYXIgKiwgdWlkX3QsIGdpZF90KSAgMjEyCi1pbnQgICAgIGxjaG93bjpsY2hvd24zMiAoY29uc3QgY2hhciosIHVpZF90LCBnaWRfdCkgIDE5OAoraW50ICAgICBjaG93bjpjaG93bjMyKGNvbnN0IGNoYXIgKiwgdWlkX3QsIGdpZF90KSAgMjEyLDIxMiwtMQoraW50ICAgICBjaG93bjpjaG93bihjb25zdCBjaGFyICosIHVpZF90LCBnaWRfdCkgICAgLTEsLTEsMjAyCitpbnQgICAgIGxjaG93bjpsY2hvd24zMiAoY29uc3QgY2hhciosIHVpZF90LCBnaWRfdCkgIDE5OCwxOTgsLTEKK2ludCAgICAgbGNob3duOmxjaG93biAoY29uc3QgY2hhciosIHVpZF90LCBnaWRfdCkgIC0xLC0xLDE2CiBpbnQgICAgIG1vdW50IChjb25zdCBjaGFyKiwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCB1bnNpZ25lZCBsb25nLCBjb25zdCB2b2lkKikgIDIxCiBpbnQgICAgIHVtb3VudChjb25zdCBjaGFyKikgIHN0dWIKIGludCAgICAgdW1vdW50MiAoY29uc3QgY2hhciosIGludCkgIDUyCi1pbnQgICAgIGZzdGF0OmZzdGF0NjQoaW50LCBzdHJ1Y3Qgc3RhdCopICAgIDE5NwotaW50ICAgICBzdGF0OnN0YXQ2NChjb25zdCBjaGFyICosIHN0cnVjdCBzdGF0ICopICAxOTUKLWludCAgICAgbHN0YXQ6bHN0YXQ2NChjb25zdCBjaGFyICosIHN0cnVjdCBzdGF0ICopICAxOTYKK2ludCAgICAgZnN0YXQ6ZnN0YXQ2NChpbnQsIHN0cnVjdCBzdGF0KikgICAgMTk3LDE5NywyMTUKK2ludCAgICAgc3RhdDpzdGF0NjQoY29uc3QgY2hhciAqLCBzdHJ1Y3Qgc3RhdCAqKSAgMTk1LDE5NSwyMTMKK2ludCAgICAgbHN0YXQ6bHN0YXQ2NChjb25zdCBjaGFyICosIHN0cnVjdCBzdGF0ICopICAxOTYsMTk2LDIxNAogaW50ICAgICBta2Rpcihjb25zdCBjaGFyICosIG1vZGVfdCkgMzkKIGludCAgICAgcmVhZGxpbmsoY29uc3QgY2hhciAqLCBjaGFyICosIHNpemVfdCkgIDg1CiBpbnQgICAgIHJtZGlyKGNvbnN0IGNoYXIgKikgIDQwCiBpbnQgICAgIHJlbmFtZShjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKikgIDM4Ci1pbnQgICAgIF9fZ2V0Y3dkOmdldGN3ZChjaGFyICogYnVmLCBzaXplX3Qgc2l6ZSkgIDE4MworaW50ICAgICBfX2dldGN3ZDpnZXRjd2QoY2hhciAqIGJ1Ziwgc2l6ZV90IHNpemUpICAxODMsMTgzLDIwMwogaW50ICAgICBhY2Nlc3MoY29uc3QgY2hhciAqLCBpbnQpICAzMwotaW50ICAgICBmYWNjZXNzYXQoaW50LCBjb25zdCBjaGFyICosIGludCwgaW50KSAgMzM0LDMwNworaW50ICAgICBmYWNjZXNzYXQoaW50LCBjb25zdCBjaGFyICosIGludCwgaW50KSAgMzM0LDMwNywzMDAKIGludCAgICAgc3ltbGluayhjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKikgIDgzCiBpbnQgICAgIGZjaGRpcihpbnQpICAgIDEzMwogaW50ICAgICB0cnVuY2F0ZShjb25zdCBjaGFyKiwgb2ZmX3QpICAgIDkyCi1pbnQgICAgIHNldHhhdHRyKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBjb25zdCB2b2lkICosIHNpemVfdCwgaW50KSAyMjYKLWludCAgICAgbHNldHhhdHRyKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBjb25zdCB2b2lkICosIHNpemVfdCwgaW50KSAyMjcKLXNzaXplX3QgZ2V0eGF0dHIoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIHZvaWQgKiwgc2l6ZV90KSAyMjkKLXNzaXplX3QgbGdldHhhdHRyKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCB2b2lkICosIHNpemVfdCkgMjMwCi1zc2l6ZV90IGxpc3R4YXR0cihjb25zdCBjaGFyICosIGNoYXIgKiwgc2l6ZV90KSAyMzIKLXNzaXplX3QgbGxpc3R4YXR0cihjb25zdCBjaGFyICosIGNoYXIgKiwgc2l6ZV90KSAyMzMKLWludCAgICAgcmVtb3ZleGF0dHIoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopIDIzNQotaW50ICAgICBscmVtb3ZleGF0dHIoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopIDIzNgotaW50ICAgICBfX3N0YXRmczY0OnN0YXRmczY0KGNvbnN0IGNoYXIgKiwgc2l6ZV90LCBzdHJ1Y3Qgc3RhdGZzICopICAyNjYsMjY4CitpbnQgICAgIHNldHhhdHRyKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBjb25zdCB2b2lkICosIHNpemVfdCwgaW50KSAyMjYsMjI2LDIyNAoraW50ICAgICBsc2V0eGF0dHIoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIGNvbnN0IHZvaWQgKiwgc2l6ZV90LCBpbnQpIDIyNywyMjcsMjI1Citzc2l6ZV90IGdldHhhdHRyKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCB2b2lkICosIHNpemVfdCkgMjI5LDIyOSwyMjcKK3NzaXplX3QgbGdldHhhdHRyKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCB2b2lkICosIHNpemVfdCkgMjMwLDIzMCwyMjgKK3NzaXplX3QgbGlzdHhhdHRyKGNvbnN0IGNoYXIgKiwgY2hhciAqLCBzaXplX3QpIDIzMiwyMzIsMjMwCitzc2l6ZV90IGxsaXN0eGF0dHIoY29uc3QgY2hhciAqLCBjaGFyICosIHNpemVfdCkgMjMzLDIzMywyMzEKK2ludCAgICAgcmVtb3ZleGF0dHIoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopIDIzNSwyMzUsMjMzCitpbnQgICAgIGxyZW1vdmV4YXR0cihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKikgMjM2LDIzNiwyMzQKK2ludCAgICAgX19zdGF0ZnM2NDpzdGF0ZnM2NChjb25zdCBjaGFyICosIHNpemVfdCwgc3RydWN0IHN0YXRmcyAqKSAgMjY2LDI2OCwyNTUKIAogIyB0aW1lCiBpbnQgICAgICAgICAgIHBhdXNlICgpICAgICAgICAgICAgICAgICAgICAgICAyOQogaW50ICAgICAgICAgICBnZXR0aW1lb2ZkYXkoc3RydWN0IHRpbWV2YWwqLCBzdHJ1Y3QgdGltZXpvbmUqKSAgICAgICA3OAogaW50ICAgICAgICAgICBzZXR0aW1lb2ZkYXkoY29uc3Qgc3RydWN0IHRpbWV2YWwqLCBjb25zdCBzdHJ1Y3QgdGltZXpvbmUqKSAgIDc5CiBjbG9ja190ICAgICAgIHRpbWVzKHN0cnVjdCB0bXMgKikgICAgICAgNDMKLWludCAgICAgICAgICAgbmFub3NsZWVwKGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqLCBzdHJ1Y3QgdGltZXNwZWMgKikgICAxNjIKLWludCAgICAgICAgICAgY2xvY2tfZ2V0dGltZShjbG9ja2lkX3QgY2xrX2lkLCBzdHJ1Y3QgdGltZXNwZWMgKnRwKSAgICAyNjMsMjY1Ci1pbnQgICAgICAgICAgIGNsb2NrX3NldHRpbWUoY2xvY2tpZF90IGNsa19pZCwgY29uc3Qgc3RydWN0IHRpbWVzcGVjICp0cCkgIDI2MiwyNjQKLWludCAgICAgICAgICAgY2xvY2tfZ2V0cmVzKGNsb2NraWRfdCBjbGtfaWQsIHN0cnVjdCB0aW1lc3BlYyAqcmVzKSAgIDI2NCwyNjYKLWludCAgICAgICAgICAgY2xvY2tfbmFub3NsZWVwKGNsb2NraWRfdCBjbG9ja19pZCwgaW50IGZsYWdzLCBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKnJlcSwgc3RydWN0IHRpbWVzcGVjICpyZW0pICAyNjUsMjY3CitpbnQgICAgICAgICAgIG5hbm9zbGVlcChjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKiwgc3RydWN0IHRpbWVzcGVjICopICAgMTYyLDE2MiwxNjYKK2ludCAgICAgICAgICAgY2xvY2tfZ2V0dGltZShjbG9ja2lkX3QgY2xrX2lkLCBzdHJ1Y3QgdGltZXNwZWMgKnRwKSAgICAyNjMsMjY1LDI2MworaW50ICAgICAgICAgICBjbG9ja19zZXR0aW1lKGNsb2NraWRfdCBjbGtfaWQsIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqdHApICAyNjIsMjY0LDI2MgoraW50ICAgICAgICAgICBjbG9ja19nZXRyZXMoY2xvY2tpZF90IGNsa19pZCwgc3RydWN0IHRpbWVzcGVjICpyZXMpICAgMjY0LDI2NiwyNjQKK2ludCAgICAgICAgICAgY2xvY2tfbmFub3NsZWVwKGNsb2NraWRfdCBjbG9ja19pZCwgaW50IGZsYWdzLCBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKnJlcSwgc3RydWN0IHRpbWVzcGVjICpyZW0pICAyNjUsMjY3LDI2NQogaW50ICAgICAgICAgICBnZXRpdGltZXIoaW50LCBjb25zdCBzdHJ1Y3QgaXRpbWVydmFsICopICAgMTA1CiBpbnQgICAgICAgICAgIHNldGl0aW1lcihpbnQsIGNvbnN0IHN0cnVjdCBpdGltZXJ2YWwgKiwgc3RydWN0IGl0aW1lcnZhbCAqKSAgMTA0Ci1pbnQgICAgICAgICAgIF9fdGltZXJfY3JlYXRlOnRpbWVyX2NyZWF0ZShjbG9ja2lkX3QgY2xvY2tpZCwgc3RydWN0IHNpZ2V2ZW50ICpldnAsIHRpbWVyX3QgKnRpbWVyaWQpICAgIDI1NywyNTkKLWludCAgICAgICAgICAgX190aW1lcl9zZXR0aW1lOnRpbWVyX3NldHRpbWUodGltZXJfdCwgaW50LCBjb25zdCBzdHJ1Y3QgaXRpbWVyc3BlYyosIHN0cnVjdCBpdGltZXJzcGVjKikgMjU4LDI2MAotaW50ICAgICAgICAgICBfX3RpbWVyX2dldHRpbWU6dGltZXJfZ2V0dGltZSh0aW1lcl90LCBzdHJ1Y3QgaXRpbWVyc3BlYyopICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTksMjYxCi1pbnQgICAgICAgICAgIF9fdGltZXJfZ2V0b3ZlcnJ1bjp0aW1lcl9nZXRvdmVycnVuKHRpbWVyX3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI2MCwyNjIKLWludCAgICAgICAgICAgX190aW1lcl9kZWxldGU6dGltZXJfZGVsZXRlKHRpbWVyX3QpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjYxLDI2MwotaW50ICAgICAgICAgICB1dGltZXMoY29uc3QgY2hhciosIGNvbnN0IHN0cnVjdCB0aW1ldmFsIHR2cFsyXSkgICAgICAgICAgICAgICAgICAgICAgICAgIDI2OSwgMjcxCi1pbnQgICAgICAgICAgIHV0aW1lbnNhdChpbnQsIGNvbnN0IGNoYXIgKiwgY29uc3Qgc3RydWN0IHRpbWVzcGVjIHRpbWVzWzJdLCBpbnQpICAgICAgICAgMzQ4LCAzMjAsIDMyMAoraW50ICAgICAgICAgICBfX3RpbWVyX2NyZWF0ZTp0aW1lcl9jcmVhdGUoY2xvY2tpZF90IGNsb2NraWQsIHN0cnVjdCBzaWdldmVudCAqZXZwLCB0aW1lcl90ICp0aW1lcmlkKSAgICAyNTcsMjU5LDI1NworaW50ICAgICAgICAgICBfX3RpbWVyX3NldHRpbWU6dGltZXJfc2V0dGltZSh0aW1lcl90LCBpbnQsIGNvbnN0IHN0cnVjdCBpdGltZXJzcGVjKiwgc3RydWN0IGl0aW1lcnNwZWMqKSAyNTgsMjYwLDI1OAoraW50ICAgICAgICAgICBfX3RpbWVyX2dldHRpbWU6dGltZXJfZ2V0dGltZSh0aW1lcl90LCBzdHJ1Y3QgaXRpbWVyc3BlYyopICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTksMjYxLDI1OQoraW50ICAgICAgICAgICBfX3RpbWVyX2dldG92ZXJydW46dGltZXJfZ2V0b3ZlcnJ1bih0aW1lcl90KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNjAsMjYyLDI2MAoraW50ICAgICAgICAgICBfX3RpbWVyX2RlbGV0ZTp0aW1lcl9kZWxldGUodGltZXJfdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNjEsMjYzLDI2MQoraW50ICAgICAgICAgICB1dGltZXMoY29uc3QgY2hhciosIGNvbnN0IHN0cnVjdCB0aW1ldmFsIHR2cFsyXSkgICAgICAgICAgICAgICAgICAgICAgICAgIDI2OSwyNzEsMjY3CitpbnQgICAgICAgICAgIHV0aW1lbnNhdChpbnQsIGNvbnN0IGNoYXIgKiwgY29uc3Qgc3RydWN0IHRpbWVzcGVjIHRpbWVzWzJdLCBpbnQpICAgICAgICAgMzQ4LDMyMCwzMTYKIAogIyBzaWduYWxzCiBpbnQgICAgIHNpZ2FjdGlvbihpbnQsIGNvbnN0IHN0cnVjdCBzaWdhY3Rpb24gKiwgc3RydWN0IHNpZ2FjdGlvbiAqKSAgNjcKIGludCAgICAgc2lncHJvY21hc2soaW50LCBjb25zdCBzaWdzZXRfdCAqLCBzaWdzZXRfdCAqKSAgMTI2CiBpbnQgICAgIF9fc2lnc3VzcGVuZDpzaWdzdXNwZW5kKGludCB1bnVzZWQxLCBpbnQgdW51c2VkMiwgdW5zaWduZWQgbWFzaykgIDcyCi1pbnQgICAgIF9fcnRfc2lnYWN0aW9uOnJ0X3NpZ2FjdGlvbiAoaW50IHNpZywgY29uc3Qgc3RydWN0IHNpZ2FjdGlvbiAqYWN0LCBzdHJ1Y3Qgc2lnYWN0aW9uICpvYWN0LCBzaXplX3Qgc2lnc2V0c2l6ZSkgIDE3NAotaW50ICAgICBfX3J0X3NpZ3Byb2NtYXNrOnJ0X3NpZ3Byb2NtYXNrIChpbnQgIGhvdywgY29uc3Qgc2lnc2V0X3QgKnNldCwgc2lnc2V0X3QgKm9zZXQsIHNpemVfdCBzaWdzZXRzaXplKSAgMTc1Ci1pbnQgICAgIF9fcnRfc2lndGltZWR3YWl0OnJ0X3NpZ3RpbWVkd2FpdChjb25zdCBzaWdzZXRfdCAqc2V0LCBzdHJ1Y3Qgc2lnaW5mb190ICAqaW5mbywgc3RydWN0IHRpbWVzcGVjX3QgICp0aW1lb3V0LCBzaXplX3QgIHNpZ3NldF9zaXplKSAgMTc3CitpbnQgICAgIF9fcnRfc2lnYWN0aW9uOnJ0X3NpZ2FjdGlvbiAoaW50IHNpZywgY29uc3Qgc3RydWN0IHNpZ2FjdGlvbiAqYWN0LCBzdHJ1Y3Qgc2lnYWN0aW9uICpvYWN0LCBzaXplX3Qgc2lnc2V0c2l6ZSkgIDE3NCwxNzQsMTk0CitpbnQgICAgIF9fcnRfc2lncHJvY21hc2s6cnRfc2lncHJvY21hc2sgKGludCAgaG93LCBjb25zdCBzaWdzZXRfdCAqc2V0LCBzaWdzZXRfdCAqb3NldCwgc2l6ZV90IHNpZ3NldHNpemUpICAxNzUsMTc1LDE5NQoraW50ICAgICBfX3J0X3NpZ3RpbWVkd2FpdDpydF9zaWd0aW1lZHdhaXQoY29uc3Qgc2lnc2V0X3QgKnNldCwgc3RydWN0IHNpZ2luZm9fdCAgKmluZm8sIHN0cnVjdCB0aW1lc3BlY190ICAqdGltZW91dCwgc2l6ZV90ICBzaWdzZXRfc2l6ZSkgIDE3NywxNzcsMTk3CiBpbnQgICAgIHNpZ3BlbmRpbmcoc2lnc2V0X3QgKikgIDczCiAKICMgc29ja2V0cwotaW50ICAgICAgICAgICBzb2NrZXQoaW50LCBpbnQsIGludCkgICAgICAgICAgICAgIDI4MSwtMQotaW50ICAgICAgICAgICBzb2NrZXRwYWlyKGludCwgaW50LCBpbnQsIGludCopICAgIDI4OCwtMQotaW50ICAgICAgICAgICBiaW5kKGludCwgc3RydWN0IHNvY2thZGRyICosIGludCkgIDI4MiwtMQotaW50ICAgICAgICAgICBjb25uZWN0KGludCwgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCkgICAyODMsLTEKLWludCAgICAgICAgICAgbGlzdGVuKGludCwgaW50KSAgICAgICAgICAgICAgICAgICAyODQsLTEKLWludCAgICAgICAgICAgYWNjZXB0KGludCwgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCAqKSAgMjg1LC0xCi1pbnQgICAgICAgICAgIGdldHNvY2tuYW1lKGludCwgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCAqKSAgMjg2LC0xCi1pbnQgICAgICAgICAgIGdldHBlZXJuYW1lKGludCwgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCAqKSAgMjg3LC0xCi1pbnQgICAgICAgICAgIHNlbmR0byhpbnQsIGNvbnN0IHZvaWQgKiwgc2l6ZV90LCBpbnQsIGNvbnN0IHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QpICAyOTAsLTEKLWludCAgICAgICAgICAgcmVjdmZyb20oaW50LCB2b2lkICosIHNpemVfdCwgdW5zaWduZWQgaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiwgc29ja2xlbl90ICopICAyOTIsLTEKLWludCAgICAgICAgICAgc2h1dGRvd24oaW50LCBpbnQpICAyOTMsLTEKLWludCAgICAgICAgICAgc2V0c29ja29wdChpbnQsIGludCwgaW50LCBjb25zdCB2b2lkICosIHNvY2tsZW5fdCkgIDI5NCwtMQotaW50ICAgICAgICAgICBnZXRzb2Nrb3B0KGludCwgaW50LCBpbnQsIHZvaWQgKiwgc29ja2xlbl90ICopICAgIDI5NSwtMQotaW50ICAgICAgICAgICBzZW5kbXNnKGludCwgY29uc3Qgc3RydWN0IG1zZ2hkciAqLCB1bnNpZ25lZCBpbnQpICAyOTYsLTEKLWludCAgICAgICAgICAgcmVjdm1zZyhpbnQsIHN0cnVjdCBtc2doZHIgKiwgdW5zaWduZWQgaW50KSAgIDI5NywtMQoraW50ICAgICAgICAgICBzb2NrZXQoaW50LCBpbnQsIGludCkgICAgICAgICAgICAgIDI4MSwtMSwxODMKK2ludCAgICAgICAgICAgc29ja2V0cGFpcihpbnQsIGludCwgaW50LCBpbnQqKSAgICAyODgsLTEsMTg0CitpbnQgICAgICAgICAgIGJpbmQoaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiwgaW50KSAgMjgyLC0xLDE2OQoraW50ICAgICAgICAgICBjb25uZWN0KGludCwgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCkgICAyODMsLTEsMTcwCitpbnQgICAgICAgICAgIGxpc3RlbihpbnQsIGludCkgICAgICAgICAgICAgICAgICAgMjg0LC0xLDE3NAoraW50ICAgICAgICAgICBhY2NlcHQoaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiwgc29ja2xlbl90ICopICAyODUsLTEsMTY4CitpbnQgICAgICAgICAgIGdldHNvY2tuYW1lKGludCwgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCAqKSAgMjg2LC0xLDE3MgoraW50ICAgICAgICAgICBnZXRwZWVybmFtZShpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QgKikgIDI4NywtMSwxNzEKK2ludCAgICAgICAgICAgc2VuZHRvKGludCwgY29uc3Qgdm9pZCAqLCBzaXplX3QsIGludCwgY29uc3Qgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCkgIDI5MCwtMSwxODAKK2ludCAgICAgICAgICAgcmVjdmZyb20oaW50LCB2b2lkICosIHNpemVfdCwgdW5zaWduZWQgaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiwgc29ja2xlbl90ICopICAyOTIsLTEsMTc2CitpbnQgICAgICAgICAgIHNodXRkb3duKGludCwgaW50KSAgMjkzLC0xLDE4MgoraW50ICAgICAgICAgICBzZXRzb2Nrb3B0KGludCwgaW50LCBpbnQsIGNvbnN0IHZvaWQgKiwgc29ja2xlbl90KSAgMjk0LC0xLDE4MQoraW50ICAgICAgICAgICBnZXRzb2Nrb3B0KGludCwgaW50LCBpbnQsIHZvaWQgKiwgc29ja2xlbl90ICopICAgIDI5NSwtMSwxNzMKK2ludCAgICAgICAgICAgc2VuZG1zZyhpbnQsIGNvbnN0IHN0cnVjdCBtc2doZHIgKiwgdW5zaWduZWQgaW50KSAgMjk2LC0xLDE3OQoraW50ICAgICAgICAgICByZWN2bXNnKGludCwgc3RydWN0IG1zZ2hkciAqLCB1bnNpZ25lZCBpbnQpICAgMjk3LC0xLDE3NwogCiAjIHNvY2tldHMgZm9yIHg4Ni4gVGhlc2UgYXJlIGRvbmUgYXMgYW4gImluZGV4ZWQiIGNhbGwgdG8gc29ja2V0Y2FsbCBzeXNjYWxsLgotaW50ICAgICAgICAgICBzb2NrZXQ6c29ja2V0Y2FsbDoxIChpbnQsIGludCwgaW50KSAtMSwxMDIKLWludCAgICAgICAgICAgYmluZDpzb2NrZXRjYWxsOjIgKGludCwgc3RydWN0IHNvY2thZGRyICosIGludCkgIC0xLDEwMgotaW50ICAgICAgICAgICBjb25uZWN0OnNvY2tldGNhbGw6MyhpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QpICAgLTEsMTAyCi1pbnQgICAgICAgICAgIGxpc3Rlbjpzb2NrZXRjYWxsOjQoaW50LCBpbnQpICAgICAgICAgICAgICAgICAgIC0xLDEwMgotaW50ICAgICAgICAgICBhY2NlcHQ6c29ja2V0Y2FsbDo1KGludCwgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCAqKSAgLTEsMTAyCi1pbnQgICAgICAgICAgIGdldHNvY2tuYW1lOnNvY2tldGNhbGw6NihpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QgKikgIC0xLDEwMgotaW50ICAgICAgICAgICBnZXRwZWVybmFtZTpzb2NrZXRjYWxsOjcoaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiwgc29ja2xlbl90ICopICAtMSwxMDIKLWludCAgICAgICAgICAgc29ja2V0cGFpcjpzb2NrZXRjYWxsOjgoaW50LCBpbnQsIGludCwgaW50KikgICAgLTEsMTAyCi1pbnQgICAgICAgICAgIHNlbmR0bzpzb2NrZXRjYWxsOjExKGludCwgY29uc3Qgdm9pZCAqLCBzaXplX3QsIGludCwgY29uc3Qgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCkgIC0xLDEwMgotaW50ICAgICAgICAgICByZWN2ZnJvbTpzb2NrZXRjYWxsOjEyKGludCwgdm9pZCAqLCBzaXplX3QsIHVuc2lnbmVkIGludCwgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCAqKSAgLTEsMTAyCitpbnQgICAgICAgICAgIHNvY2tldDpzb2NrZXRjYWxsOjEgKGludCwgaW50LCBpbnQpIC0xLDEwMiwtMQoraW50ICAgICAgICAgICBiaW5kOnNvY2tldGNhbGw6MiAoaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiwgaW50KSAgLTEsMTAyLC0xCitpbnQgICAgICAgICAgIGNvbm5lY3Q6c29ja2V0Y2FsbDozKGludCwgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCkgICAtMSwxMDIsLTEKK2ludCAgICAgICAgICAgbGlzdGVuOnNvY2tldGNhbGw6NChpbnQsIGludCkgICAgICAgICAgICAgICAgICAgLTEsMTAyLC0xCitpbnQgICAgICAgICAgIGFjY2VwdDpzb2NrZXRjYWxsOjUoaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiwgc29ja2xlbl90ICopICAtMSwxMDIsLTEKK2ludCAgICAgICAgICAgZ2V0c29ja25hbWU6c29ja2V0Y2FsbDo2KGludCwgc3RydWN0IHNvY2thZGRyICosIHNvY2tsZW5fdCAqKSAgLTEsMTAyLC0xCitpbnQgICAgICAgICAgIGdldHBlZXJuYW1lOnNvY2tldGNhbGw6NyhpbnQsIHN0cnVjdCBzb2NrYWRkciAqLCBzb2NrbGVuX3QgKikgIC0xLDEwMiwtMQoraW50ICAgICAgICAgICBzb2NrZXRwYWlyOnNvY2tldGNhbGw6OChpbnQsIGludCwgaW50LCBpbnQqKSAgICAtMSwxMDIsLTEKK2ludCAgICAgICAgICAgc2VuZHRvOnNvY2tldGNhbGw6MTEoaW50LCBjb25zdCB2b2lkICosIHNpemVfdCwgaW50LCBjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKiwgc29ja2xlbl90KSAgLTEsMTAyLC0xCitpbnQgICAgICAgICAgIHJlY3Zmcm9tOnNvY2tldGNhbGw6MTIoaW50LCB2b2lkICosIHNpemVfdCwgdW5zaWduZWQgaW50LCBzdHJ1Y3Qgc29ja2FkZHIgKiwgc29ja2xlbl90ICopICAtMSwxMDIsLTEKIGludCAgICAgICAgICAgc2h1dGRvd246c29ja2V0Y2FsbDoxMyhpbnQsIGludCkgIC0xLDEwMiwtMQotaW50ICAgICAgICAgICBzZXRzb2Nrb3B0OnNvY2tldGNhbGw6MTQoaW50LCBpbnQsIGludCwgY29uc3Qgdm9pZCAqLCBzb2NrbGVuX3QpICAtMSwxMDIKLWludCAgICAgICAgICAgZ2V0c29ja29wdDpzb2NrZXRjYWxsOjE1KGludCwgaW50LCBpbnQsIHZvaWQgKiwgc29ja2xlbl90ICopICAgIC0xLDEwMgotaW50ICAgICAgICAgICBzZW5kbXNnOnNvY2tldGNhbGw6MTYoaW50LCBjb25zdCBzdHJ1Y3QgbXNnaGRyICosIHVuc2lnbmVkIGludCkgIC0xLDEwMgotaW50ICAgICAgICAgICByZWN2bXNnOnNvY2tldGNhbGw6MTcoaW50LCBzdHJ1Y3QgbXNnaGRyICosIHVuc2lnbmVkIGludCkgICAtMSwxMDIKK2ludCAgICAgICAgICAgc2V0c29ja29wdDpzb2NrZXRjYWxsOjE0KGludCwgaW50LCBpbnQsIGNvbnN0IHZvaWQgKiwgc29ja2xlbl90KSAgLTEsMTAyLC0xCitpbnQgICAgICAgICAgIGdldHNvY2tvcHQ6c29ja2V0Y2FsbDoxNShpbnQsIGludCwgaW50LCB2b2lkICosIHNvY2tsZW5fdCAqKSAgICAtMSwxMDIsLTEKK2ludCAgICAgICAgICAgc2VuZG1zZzpzb2NrZXRjYWxsOjE2KGludCwgY29uc3Qgc3RydWN0IG1zZ2hkciAqLCB1bnNpZ25lZCBpbnQpICAtMSwxMDIsLTEKK2ludCAgICAgICAgICAgcmVjdm1zZzpzb2NrZXRjYWxsOjE3KGludCwgc3RydWN0IG1zZ2hkciAqLCB1bnNpZ25lZCBpbnQpICAgLTEsMTAyLC0xCiAKICMgc2NoZWR1bGVyICYgcmVhbC10aW1lCi1pbnQgc2NoZWRfc2V0c2NoZWR1bGVyKHBpZF90IHBpZCwgaW50IHBvbGljeSwgY29uc3Qgc3RydWN0IHNjaGVkX3BhcmFtICpwYXJhbSkgIDE1NgotaW50IHNjaGVkX2dldHNjaGVkdWxlcihwaWRfdCBwaWQpICAxNTcKLWludCBzY2hlZF95aWVsZCh2b2lkKSAgMTU4Ci1pbnQgc2NoZWRfc2V0cGFyYW0ocGlkX3QgcGlkLCBjb25zdCBzdHJ1Y3Qgc2NoZWRfcGFyYW0gKnBhcmFtKSAgMTU0Ci1pbnQgc2NoZWRfZ2V0cGFyYW0ocGlkX3QgcGlkLCBzdHJ1Y3Qgc2NoZWRfcGFyYW0gKnBhcmFtKSAgMTU1Ci1pbnQgc2NoZWRfZ2V0X3ByaW9yaXR5X21heChpbnQgcG9saWN5KSAgMTU5Ci1pbnQgc2NoZWRfZ2V0X3ByaW9yaXR5X21pbihpbnQgcG9saWN5KSAgMTYwCi1pbnQgc2NoZWRfcnJfZ2V0X2ludGVydmFsKHBpZF90IHBpZCwgc3RydWN0IHRpbWVzcGVjICppbnRlcnZhbCkgIDE2MQotaW50IHNjaGVkX3NldGFmZmluaXR5KHBpZF90IHBpZCwgc2l6ZV90IHNldHNpemUsIGNvbnN0IGNwdV9zZXRfdCogc2V0KSAyNDEKLWludCBfX3NjaGVkX2dldGFmZmluaXR5OnNjaGVkX2dldGFmZmluaXR5KHBpZF90IHBpZCwgc2l6ZV90IHNldHNpemUsIGNwdV9zZXRfdCogc2V0KSAgMjQyCi1pbnQgX19nZXRjcHU6Z2V0Y3B1KHVuc2lnbmVkICpjcHUsIHVuc2lnbmVkICpub2RlLCB2b2lkICp1bnVzZWQpIDM0NSwzMTgKK2ludCBzY2hlZF9zZXRzY2hlZHVsZXIocGlkX3QgcGlkLCBpbnQgcG9saWN5LCBjb25zdCBzdHJ1Y3Qgc2NoZWRfcGFyYW0gKnBhcmFtKSAgMTU2LDE1NiwxNjAKK2ludCBzY2hlZF9nZXRzY2hlZHVsZXIocGlkX3QgcGlkKSAgMTU3LDE1NywxNjEKK2ludCBzY2hlZF95aWVsZCh2b2lkKSAgMTU4LDE1OCwxNjIKK2ludCBzY2hlZF9zZXRwYXJhbShwaWRfdCBwaWQsIGNvbnN0IHN0cnVjdCBzY2hlZF9wYXJhbSAqcGFyYW0pICAxNTQsMTU0LDE1OAoraW50IHNjaGVkX2dldHBhcmFtKHBpZF90IHBpZCwgc3RydWN0IHNjaGVkX3BhcmFtICpwYXJhbSkgIDE1NSwxNTUsMTU5CitpbnQgc2NoZWRfZ2V0X3ByaW9yaXR5X21heChpbnQgcG9saWN5KSAgMTU5LDE1OSwxNjMKK2ludCBzY2hlZF9nZXRfcHJpb3JpdHlfbWluKGludCBwb2xpY3kpICAxNjAsMTYwLDE2NAoraW50IHNjaGVkX3JyX2dldF9pbnRlcnZhbChwaWRfdCBwaWQsIHN0cnVjdCB0aW1lc3BlYyAqaW50ZXJ2YWwpICAxNjEsMTYxLDE2NQoraW50IHNjaGVkX3NldGFmZmluaXR5KHBpZF90IHBpZCwgc2l6ZV90IHNldHNpemUsIGNvbnN0IGNwdV9zZXRfdCogc2V0KSAyNDEsMjQxLDIzOQoraW50IF9fc2NoZWRfZ2V0YWZmaW5pdHk6c2NoZWRfZ2V0YWZmaW5pdHkocGlkX3QgcGlkLCBzaXplX3Qgc2V0c2l6ZSwgY3B1X3NldF90KiBzZXQpICAyNDIsMjQyLDI0MAoraW50IF9fZ2V0Y3B1OmdldGNwdSh1bnNpZ25lZCAqY3B1LCB1bnNpZ25lZCAqbm9kZSwgdm9pZCAqdW51c2VkKSAzNDUsMzE4LDMxMgogCiAjIGlvIHByaW9yaXRpZXMKLWludCBpb3ByaW9fc2V0KGludCB3aGljaCwgaW50IHdobywgaW50IGlvcHJpbykgMzE0LDI4OQotaW50IGlvcHJpb19nZXQoaW50IHdoaWNoLCBpbnQgd2hvKSAzMTUsMjkwCitpbnQgaW9wcmlvX3NldChpbnQgd2hpY2gsIGludCB3aG8sIGludCBpb3ByaW8pIDMxNCwyODksMzE0CitpbnQgaW9wcmlvX2dldChpbnQgd2hpY2gsIGludCB3aG8pIDMxNSwyOTAsMzE1CiAKICMgb3RoZXIKIGludCAgICAgdW5hbWUoc3RydWN0IHV0c25hbWUgKikgIDEyMgpAQCAtMjY4LDIxICsyODYsMjUgQEAKIGxvbmcgICAgcGVyZl9ldmVudF9vcGVuKHN0cnVjdCBwZXJmX2V2ZW50X2F0dHIgKmF0dHJfdXB0ciwgcGlkX3QgcGlkLCBpbnQgY3B1LCBpbnQgZ3JvdXBfZmQsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpIDM2NAogCiAjIGZ1dGV4Ci1pbnQJZnV0ZXgodm9pZCAqLCBpbnQsIGludCwgdm9pZCAqLCB2b2lkICosIGludCkgMjQwCitpbnQJZnV0ZXgodm9pZCAqLCBpbnQsIGludCwgdm9pZCAqLCB2b2lkICosIGludCkgMjQwLDI0MCwyMzgKIAogIyBlcG9sbAotaW50ICAgICBlcG9sbF9jcmVhdGUoaW50IHNpemUpICAgICAyNTAsMjU0Ci1pbnQgICAgIGVwb2xsX2N0bChpbnQgZXBmZCwgaW50IG9wLCBpbnQgZmQsIHN0cnVjdCBlcG9sbF9ldmVudCAqZXZlbnQpICAgIDI1MSwyNTUKLWludCAgICAgZXBvbGxfd2FpdChpbnQgZXBmZCwgc3RydWN0IGVwb2xsX2V2ZW50ICpldmVudHMsIGludCBtYXgsIGludCB0aW1lb3V0KSAgIDI1MiwyNTYKK2ludCAgICAgZXBvbGxfY3JlYXRlKGludCBzaXplKSAgICAgMjUwLDI1NCwyNDgKK2ludCAgICAgZXBvbGxfY3RsKGludCBlcGZkLCBpbnQgb3AsIGludCBmZCwgc3RydWN0IGVwb2xsX2V2ZW50ICpldmVudCkgICAgMjUxLDI1NSwyNDkKK2ludCAgICAgZXBvbGxfd2FpdChpbnQgZXBmZCwgc3RydWN0IGVwb2xsX2V2ZW50ICpldmVudHMsIGludCBtYXgsIGludCB0aW1lb3V0KSAgIDI1MiwyNTYsMjUwCiAKLWludCAgICAgaW5vdGlmeV9pbml0KHZvaWQpICAgICAgMzE2LDI5MSwyOTAKLWludCAgICAgaW5vdGlmeV9hZGRfd2F0Y2goaW50LCBjb25zdCBjaGFyICosIHVuc2lnbmVkIGludCkgIDMxNywyOTIKLWludCAgICAgaW5vdGlmeV9ybV93YXRjaChpbnQsIHVuc2lnbmVkIGludCkgIDMxOCwyOTMKK2ludCAgICAgaW5vdGlmeV9pbml0KHZvaWQpICAgICAgMzE2LDI5MSwyODQKK2ludCAgICAgaW5vdGlmeV9hZGRfd2F0Y2goaW50LCBjb25zdCBjaGFyICosIHVuc2lnbmVkIGludCkgIDMxNywyOTIsMjg1CitpbnQgICAgIGlub3RpZnlfcm1fd2F0Y2goaW50LCB1bnNpZ25lZCBpbnQpICAzMTgsMjkzLDI4NgogCi1pbnQgICAgIHBvbGwoc3RydWN0IHBvbGxmZCAqLCB1bnNpZ25lZCBpbnQsIGxvbmcpICAxNjgKK2ludCAgICAgcG9sbChzdHJ1Y3QgcG9sbGZkICosIHVuc2lnbmVkIGludCwgbG9uZykgIDE2OCwxNjgsMTg4CiAKLWludCAgICAgZXZlbnRmZDpldmVudGZkMih1bnNpZ25lZCBpbnQsIGludCkgIDM1NiwzMjgKK2ludCAgICAgZXZlbnRmZDpldmVudGZkMih1bnNpZ25lZCBpbnQsIGludCkgIDM1NiwzMjgsMzI1CiAKICMgQVJNLXNwZWNpZmljIEFSTV9OUl9CQVNFID09IDB4MGYwMDAwID09IDk4MzA0MAotaW50ICAgICBfX3NldF90bHM6QVJNX3NldF90bHModm9pZCopICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTgzMDQ1LC0xCi1pbnQgICAgIGNhY2hlZmx1c2g6QVJNX2NhY2hlZmx1c2gobG9uZyBzdGFydCwgbG9uZyBlbmQsIGxvbmcgZmxhZ3MpICA5ODMwNDIsLTEKK2ludCAgICAgX19zZXRfdGxzOkFSTV9zZXRfdGxzKHZvaWQqKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDk4MzA0NSwtMSwtMQoraW50ICAgICBjYWNoZWZsdXNoOkFSTV9jYWNoZWZsdXNoKGxvbmcgc3RhcnQsIGxvbmcgZW5kLCBsb25nIGZsYWdzKSAgOTgzMDQyLC0xLC0xCisKKyMgTUlQUy1zcGVjaWZpYworaW50CV9mbHVzaF9jYWNoZTpjYWNoZWZsdXNoKGNoYXIgKmFkZHIsIGNvbnN0IGludCBuYnl0ZXMsIGNvbnN0IGludCBvcCkJLTEsLTEsMTQ3CitpbnQJc3lzY2FsbChpbnQgbnVtYmVyLC4uLikgLTEsLTEsMApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLWFybS9iaW9uaWMvbWVtY3B5LlMgYi9saWJjL2FyY2gtYXJtL2Jpb25pYy9tZW1jcHkuUwppbmRleCA4YzBiNGQ3Li44NDUzY2MwIDEwMDY0NAotLS0gYS9saWJjL2FyY2gtYXJtL2Jpb25pYy9tZW1jcHkuUworKysgYi9saWJjL2FyY2gtYXJtL2Jpb25pYy9tZW1jcHkuUwpAQCAtMzQsMjMgKzM0LDI4IEBACiAgICAgICAgIC50ZXh0CiAgICAgICAgIC5mcHUgICAgbmVvbgogCisjaWZkZWYgSEFWRV8zMl9CWVRFX0NBQ0hFX0xJTkUKKy8qIGEgcHJlZmV0Y2ggZGlzdGFuY2Ugb2YgMiBjYWNoZS1saW5lcyAqLworI2RlZmluZSBDQUNIRV9MSU5FX1NJWkUgICAgIDMyCisjZGVmaW5lIFBSRUZFVENIX0RJU1RBTkNFICAgKENBQ0hFX0xJTkVfU0laRSoyKQorI2Vsc2UKIC8qIGEgcHJlZmV0Y2ggZGlzdGFuY2Ugb2YgNCBjYWNoZS1saW5lcyB3b3JrcyBiZXN0IGV4cGVyaW1lbnRhbGx5ICovCiAjZGVmaW5lIENBQ0hFX0xJTkVfU0laRSAgICAgNjQKICNkZWZpbmUgUFJFRkVUQ0hfRElTVEFOQ0UgICAoQ0FDSEVfTElORV9TSVpFKjQpCisjZW5kaWYKIAogRU5UUlkobWVtY3B5KQogICAgICAgICAuc2F2ZSAgICAgICB7cjAsIGxyfQotICAgICAgICBzdG1mZCAgICAgICBzcCEsIHtyMCwgbHJ9Ci0KICAgICAgICAgLyogc3RhcnQgcHJlbG9hZGluZyBhcyBlYXJseSBhcyBwb3NzaWJsZSAqLwogICAgICAgICBwbGQgICAgICAgICBbcjEsICMoQ0FDSEVfTElORV9TSVpFKjApXQorICAgICAgICBzdG1mZCAgICAgICBzcCEsIHtyMCwgbHJ9CiAgICAgICAgIHBsZCAgICAgICAgIFtyMSwgIyhDQUNIRV9MSU5FX1NJWkUqMSldCiAKICAgICAgICAgLyogZG8gd2UgaGF2ZSBhdCBsZWFzdCAxNi1ieXRlcyB0byBjb3B5IChuZWVkZWQgZm9yIGFsaWdubWVudCBiZWxvdykgKi8KICAgICAgICAgY21wICAgICAgICAgcjIsICMxNgogICAgICAgICBibG8gICAgICAgICA1ZgogCi0gICAgICAgIC8qIGFsaWduIGRlc3RpbmF0aW9uIHRvIGhhbGYgY2FjaGUtbGluZSBmb3IgdGhlIHdyaXRlLWJ1ZmZlciAqLworICAgICAgICAvKiBhbGlnbiBkZXN0aW5hdGlvbiB0byBjYWNoZS1saW5lIGZvciB0aGUgd3JpdGUtYnVmZmVyICovCiAgICAgICAgIHJzYiAgICAgICAgIHIzLCByMCwgIzAKICAgICAgICAgYW5kcyAgICAgICAgcjMsIHIzLCAjMHhGCiAgICAgICAgIGJlcSAgICAgICAgIDBmCkBAIC03OSw2ICs4NCwyNiBAQAogICAgICAgICBwbGQgICAgICAgICBbcjEsICMoQ0FDSEVfTElORV9TSVpFKjApXQogICAgICAgICBwbGQgICAgICAgICBbcjEsICMoQ0FDSEVfTElORV9TSVpFKjEpXQogCisjaWZkZWYgSEFWRV8zMl9CWVRFX0NBQ0hFX0xJTkUKKyAgICAgICAgLyogbWFrZSBzdXJlIHdlIGhhdmUgYXQgbGVhc3QgMzIgYnl0ZXMgdG8gY29weSAqLworICAgICAgICBzdWJzICAgICAgICByMiwgcjIsICMzMgorICAgICAgICBibG8gICAgICAgICA0ZgorCisgICAgICAgIC8qIHByZWxvYWQgYWxsIHRoZSBjYWNoZSBsaW5lcyB3ZSBuZWVkLgorICAgICAgICAgKiBOT1RFOiB0aGUgbnVtYmVyIG9mIHBsZCBiZWxvdyBkZXBlbmRzIG9uIFBSRUZFVENIX0RJU1RBTkNFLAorICAgICAgICAgKiBpZGVhbGx5IHdvdWxkIHdvdWxkIGluY3JlYXNlIHRoZSBkaXN0YW5jZSBpbiB0aGUgbWFpbiBsb29wIHRvCisgICAgICAgICAqIGF2b2lkIHRoZSBnb29meSBjb2RlIGJlbG93LiBJbiBwcmFjdGljZSB0aGlzIGRvZXNuJ3Qgc2VlbSB0byBtYWtlCisgICAgICAgICAqIGEgYmlnIGRpZmZlcmVuY2UuCisgICAgICAgICAqLworICAgICAgICBwbGQgICAgICAgICBbcjEsICMoUFJFRkVUQ0hfRElTVEFOQ0UpXQorCisxOiAgICAgIC8qIFRoZSBtYWluIGxvb3AgY29waWVzIDMyIGJ5dGVzIGF0IGEgdGltZSAqLworICAgICAgICB2bGQxLjggICAgICB7ZDAgIC0gZDN9LCAgIFtyMV0hCisgICAgICAgIHBsZCAgICAgICAgIFtyMSwgIyhQUkVGRVRDSF9ESVNUQU5DRSldCisgICAgICAgIHN1YnMgICAgICAgIHIyLCByMiwgIzMyCisgICAgICAgIHZzdDEuOCAgICAgIHtkMCAgLSBkM30sICAgW3IwLCA6MTI4XSEKKyAgICAgICAgYmhzICAgICAgICAgMWIKKyNlbHNlCiAgICAgICAgIC8qIG1ha2Ugc3VyZSB3ZSBoYXZlIGF0IGxlYXN0IDY0IGJ5dGVzIHRvIGNvcHkgKi8KICAgICAgICAgc3VicyAgICAgICAgcjIsIHIyLCAjNjQKICAgICAgICAgYmxvICAgICAgICAgMmYKQEAgLTExMiw3ICsxMzcsNyBAQAogICAgICAgICBzdWJzICAgICAgICByMiwgcjIsICMzMgogICAgICAgICB2c3QxLjggICAgICB7ZDAgLSBkM30sICBbcjAsIDoxMjhdIQogICAgICAgICBiaHMgICAgICAgICAzYgotCisjZW5kaWYKIDQ6ICAgICAgLyogbGVzcyB0aGFuIDMyIGxlZnQgKi8KICAgICAgICAgYWRkICAgICAgICAgcjIsIHIyLCAjMzIKICAgICAgICAgdHN0ICAgICAgICAgcjIsICMweDEwCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy5tayBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjMGM0ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy5tawpAQCAtMCwwICsxLDIwMSBAQAorIyBhdXRvLWdlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSwgZG8gbm90IHRvdWNoCitzeXNjYWxsX3NyYyA6PSAKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fZXhpdC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX2V4aXRfdGhyZWFkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX2ZvcmsuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL193YWl0cGlkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX3dhaXRpZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX19zeXNfY2xvbmUuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2V4ZWN2ZS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX19zZXR1aWQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2dldHVpZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZ2V0Z2lkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9nZXRldWlkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9nZXRlZ2lkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9nZXRyZXN1aWQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2dldHJlc2dpZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZ2V0dGlkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9yZWFkYWhlYWQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2dldGdyb3Vwcy5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cGdpZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cHBpZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2V0c2lkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zZXRnaWQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fc2V0cmV1aWQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fc2V0cmVzdWlkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zZXRyZXNnaWQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fYnJrLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9raWxsLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy90a2lsbC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvdGdraWxsLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX3B0cmFjZS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX19zZXRfdGhyZWFkX2FyZWEuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fZ2V0cHJpb3JpdHkuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NldHByaW9yaXR5LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zZXRybGltaXQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2dldHJsaW1pdC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cnVzYWdlLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zZXRncm91cHMuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NldHBnaWQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NldHJlZ2lkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9jaHJvb3QuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3ByY3RsLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9jYXBnZXQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2NhcHNldC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2lnYWx0c3RhY2suUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2FjY3QuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3JlYWQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3dyaXRlLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9wcmVhZDY0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9wd3JpdGU2NC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX19vcGVuLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX29wZW5hdC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvY2xvc2UuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2xzZWVrLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX2xsc2Vlay5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cGlkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX21tYXAyLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9tdW5tYXAuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL21yZW1hcC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvbXN5bmMuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL21wcm90ZWN0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9tYWR2aXNlLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9tbG9jay5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvbXVubG9jay5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvbWluY29yZS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX19pb2N0bC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvcmVhZHYuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3dyaXRldi5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX19mY250bC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZmxvY2suUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2ZjaG1vZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZHVwLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9waXBlMi5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZHVwMi5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2VsZWN0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9mdHJ1bmNhdGUuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2Z0cnVuY2F0ZTY0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9nZXRkZW50cy5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZnN5bmMuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2ZkYXRhc3luYy5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZmNob3duLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zeW5jLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX2ZjbnRsNjQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fZnN0YXRmczY0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zZW5kZmlsZS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZnN0YXRhdC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvbWtkaXJhdC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZmNob3duYXQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2ZjaG1vZGF0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9yZW5hbWVhdC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZnNldHhhdHRyLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9mZ2V0eGF0dHIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2ZsaXN0eGF0dHIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2ZyZW1vdmV4YXR0ci5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvbGluay5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvdW5saW5rLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy91bmxpbmthdC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvY2hkaXIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL21rbm9kLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9jaG1vZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvY2hvd24uUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2xjaG93bi5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvbW91bnQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3Vtb3VudDIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2ZzdGF0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zdGF0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9sc3RhdC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvbWtkaXIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3JlYWRsaW5rLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9ybWRpci5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvcmVuYW1lLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX2dldGN3ZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvYWNjZXNzLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9mYWNjZXNzYXQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3N5bWxpbmsuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2ZjaGRpci5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvdHJ1bmNhdGUuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NldHhhdHRyLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9sc2V0eGF0dHIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2dldHhhdHRyLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9sZ2V0eGF0dHIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2xpc3R4YXR0ci5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvbGxpc3R4YXR0ci5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvcmVtb3ZleGF0dHIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2xyZW1vdmV4YXR0ci5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX19zdGF0ZnM2NC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvcGF1c2UuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2dldHRpbWVvZmRheS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2V0dGltZW9mZGF5LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy90aW1lcy5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvbmFub3NsZWVwLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9jbG9ja19nZXR0aW1lLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9jbG9ja19zZXR0aW1lLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9jbG9ja19nZXRyZXMuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2Nsb2NrX25hbm9zbGVlcC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZ2V0aXRpbWVyLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zZXRpdGltZXIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fdGltZXJfY3JlYXRlLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX3RpbWVyX3NldHRpbWUuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fdGltZXJfZ2V0dGltZS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX190aW1lcl9nZXRvdmVycnVuLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX3RpbWVyX2RlbGV0ZS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvdXRpbWVzLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy91dGltZW5zYXQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NpZ2FjdGlvbi5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2lncHJvY21hc2suUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fc2lnc3VzcGVuZC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX19ydF9zaWdhY3Rpb24uUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fcnRfc2lncHJvY21hc2suUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fcnRfc2lndGltZWR3YWl0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zaWdwZW5kaW5nLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zb2NrZXQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NvY2tldHBhaXIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2JpbmQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2Nvbm5lY3QuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2xpc3Rlbi5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvYWNjZXB0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9nZXRzb2NrbmFtZS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cGVlcm5hbWUuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NlbmR0by5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvcmVjdmZyb20uUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NodXRkb3duLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zZXRzb2Nrb3B0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9nZXRzb2Nrb3B0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zZW5kbXNnLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9yZWN2bXNnLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9zZXRzY2hlZHVsZXIuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX2dldHNjaGVkdWxlci5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfeWllbGQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX3NldHBhcmFtLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9nZXRwYXJhbS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfZ2V0X3ByaW9yaXR5X21heC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfZ2V0X3ByaW9yaXR5X21pbi5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfcnJfZ2V0X2ludGVydmFsLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9zZXRhZmZpbml0eS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX19zY2hlZF9nZXRhZmZpbml0eS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX19nZXRjcHUuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2lvcHJpb19zZXQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2lvcHJpb19nZXQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3VuYW1lLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fX3dhaXQ0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy91bWFzay5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvX19yZWJvb3QuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL19fc3lzbG9nLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9pbml0X21vZHVsZS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZGVsZXRlX21vZHVsZS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMva2xvZ2N0bC5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvc3lzaW5mby5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvcGVyc29uYWxpdHkuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3BlcmZfZXZlbnRfb3Blbi5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZnV0ZXguUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2Vwb2xsX2NyZWF0ZS5TCitzeXNjYWxsX3NyYyArPSBhcmNoLW1pcHMvc3lzY2FsbHMvZXBvbGxfY3RsLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9lcG9sbF93YWl0LlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9pbm90aWZ5X2luaXQuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL2lub3RpZnlfYWRkX3dhdGNoLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9pbm90aWZ5X3JtX3dhdGNoLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9wb2xsLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9ldmVudGZkLlMKK3N5c2NhbGxfc3JjICs9IGFyY2gtbWlwcy9zeXNjYWxscy9fZmx1c2hfY2FjaGUuUworc3lzY2FsbF9zcmMgKz0gYXJjaC1taXBzL3N5c2NhbGxzL3N5c2NhbGwuUwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19icmsuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fYnJrLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWYwOTc3MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fYnJrLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fYnJrCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fYnJrCisKK19fYnJrOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfYnJrCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19icmsKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fZmNudGwuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fZmNudGwuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZGQ3NmUzCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19mY250bC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX2ZjbnRsCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fZmNudGwKKworX19mY250bDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2ZjbnRsCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19mY250bApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19mY250bDY0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2ZjbnRsNjQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODJlMzgyCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19mY250bDY0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fZmNudGw2NAorICAgIC5hbGlnbiA0CisgICAgLmVudCBfX2ZjbnRsNjQKKworX19mY250bDY0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZmNudGw2NAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9fZmNudGw2NApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19mb3JrLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2ZvcmsuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjMwNDcyCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19mb3JrLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fZm9yaworICAgIC5hbGlnbiA0CisgICAgLmVudCBfX2ZvcmsKKworX19mb3JrOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZm9yaworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9fZm9yawpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19mc3RhdGZzNjQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fZnN0YXRmczY0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQ4NWQxMAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fZnN0YXRmczY0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fZnN0YXRmczY0CisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fZnN0YXRmczY0CisKK19fZnN0YXRmczY0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZnN0YXRmczY0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19mc3RhdGZzNjQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fZ2V0Y3B1LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2dldGNwdS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwZDU5ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2dldGNwdS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX2dldGNwdQorICAgIC5hbGlnbiA0CisgICAgLmVudCBfX2dldGNwdQorCitfX2dldGNwdToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2dldGNwdQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9fZ2V0Y3B1CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2dldGN3ZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19nZXRjd2QuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOGZhMzQwCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19nZXRjd2QuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX19nZXRjd2QKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX19nZXRjd2QKKworX19nZXRjd2Q6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9nZXRjd2QKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX2dldGN3ZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19nZXRwcmlvcml0eS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19nZXRwcmlvcml0eS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjYWJkMzEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2dldHByaW9yaXR5LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fZ2V0cHJpb3JpdHkKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX19nZXRwcmlvcml0eQorCitfX2dldHByaW9yaXR5OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZ2V0cHJpb3JpdHkKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX2dldHByaW9yaXR5CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2lvY3RsLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2lvY3RsLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUyNGUwMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19faW9jdGwuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX19pb2N0bAorICAgIC5hbGlnbiA0CisgICAgLmVudCBfX2lvY3RsCisKK19faW9jdGw6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9pb2N0bAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9faW9jdGwKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fbGxzZWVrLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2xsc2Vlay5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiZmQ1ODMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX2xsc2Vlay5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX2xsc2VlaworICAgIC5hbGlnbiA0CisgICAgLmVudCBfX2xsc2VlaworCitfX2xsc2VlazoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX19sbHNlZWsKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX2xsc2VlawpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19tbWFwMi5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19tbWFwMi5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4Zjk3ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX21tYXAyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fbW1hcDIKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX19tbWFwMgorCitfX21tYXAyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbW1hcDIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX21tYXAyCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX29wZW4uUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fb3Blbi5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjY2IyODYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX29wZW4uUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX19vcGVuCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fb3BlbgorCitfX29wZW46CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9vcGVuCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19vcGVuCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX29wZW5hdC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19vcGVuYXQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDM5OWI0Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19vcGVuYXQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX19vcGVuYXQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX19vcGVuYXQKKworX19vcGVuYXQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9vcGVuYXQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX29wZW5hdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19wdHJhY2UuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fcHRyYWNlLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJjYmE5ZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fcHRyYWNlLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fcHRyYWNlCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fcHRyYWNlCisKK19fcHRyYWNlOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfcHRyYWNlCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19wdHJhY2UKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fcmVib290LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3JlYm9vdC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlOGU1N2EKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3JlYm9vdC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX3JlYm9vdAorICAgIC5hbGlnbiA0CisgICAgLmVudCBfX3JlYm9vdAorCitfX3JlYm9vdDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3JlYm9vdAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9fcmVib290CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3J0X3NpZ2FjdGlvbi5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19ydF9zaWdhY3Rpb24uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40M2E1NzFhCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19ydF9zaWdhY3Rpb24uUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX19ydF9zaWdhY3Rpb24KKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX19ydF9zaWdhY3Rpb24KKworX19ydF9zaWdhY3Rpb246CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9ydF9zaWdhY3Rpb24KKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX3J0X3NpZ2FjdGlvbgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19ydF9zaWdwcm9jbWFzay5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19ydF9zaWdwcm9jbWFzay5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5YTg4OTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3J0X3NpZ3Byb2NtYXNrLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fcnRfc2lncHJvY21hc2sKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX19ydF9zaWdwcm9jbWFzaworCitfX3J0X3NpZ3Byb2NtYXNrOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfcnRfc2lncHJvY21hc2sKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX3J0X3NpZ3Byb2NtYXNrCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3J0X3NpZ3RpbWVkd2FpdC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19ydF9zaWd0aW1lZHdhaXQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWU4NzJlCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19ydF9zaWd0aW1lZHdhaXQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX19ydF9zaWd0aW1lZHdhaXQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX19ydF9zaWd0aW1lZHdhaXQKKworX19ydF9zaWd0aW1lZHdhaXQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9ydF9zaWd0aW1lZHdhaXQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX3J0X3NpZ3RpbWVkd2FpdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19zY2hlZF9nZXRhZmZpbml0eS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19zY2hlZF9nZXRhZmZpbml0eS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjMDFmZjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3NjaGVkX2dldGFmZmluaXR5LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fc2NoZWRfZ2V0YWZmaW5pdHkKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX19zY2hlZF9nZXRhZmZpbml0eQorCitfX3NjaGVkX2dldGFmZmluaXR5OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2NoZWRfZ2V0YWZmaW5pdHkKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX3NjaGVkX2dldGFmZmluaXR5CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3NldF90aHJlYWRfYXJlYS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19zZXRfdGhyZWFkX2FyZWEuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWFjOTAxCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19zZXRfdGhyZWFkX2FyZWEuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX19zZXRfdGhyZWFkX2FyZWEKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX19zZXRfdGhyZWFkX2FyZWEKKworX19zZXRfdGhyZWFkX2FyZWE6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zZXRfdGhyZWFkX2FyZWEKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX3NldF90aHJlYWRfYXJlYQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19zZXRyZXN1aWQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc2V0cmVzdWlkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTAwZDJlMQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc2V0cmVzdWlkLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fc2V0cmVzdWlkCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fc2V0cmVzdWlkCisKK19fc2V0cmVzdWlkOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2V0cmVzdWlkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19zZXRyZXN1aWQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc2V0cmV1aWQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc2V0cmV1aWQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDVmM2ZjCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19zZXRyZXVpZC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX3NldHJldWlkCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fc2V0cmV1aWQKKworX19zZXRyZXVpZDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NldHJldWlkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19zZXRyZXVpZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19zZXR1aWQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc2V0dWlkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzIyMTUyNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc2V0dWlkLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fc2V0dWlkCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fc2V0dWlkCisKK19fc2V0dWlkOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2V0dWlkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19zZXR1aWQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc2lnc3VzcGVuZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19zaWdzdXNwZW5kLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjYyMmVmZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc2lnc3VzcGVuZC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX3NpZ3N1c3BlbmQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX19zaWdzdXNwZW5kCisKK19fc2lnc3VzcGVuZDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NpZ3N1c3BlbmQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX3NpZ3N1c3BlbmQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc3RhdGZzNjQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc3RhdGZzNjQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDFiMTdmCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19zdGF0ZnM2NC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX3N0YXRmczY0CisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fc3RhdGZzNjQKKworX19zdGF0ZnM2NDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3N0YXRmczY0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19zdGF0ZnM2NApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19zeXNfY2xvbmUuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc3lzX2Nsb25lLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzQ1MWUwMgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc3lzX2Nsb25lLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fc3lzX2Nsb25lCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fc3lzX2Nsb25lCisKK19fc3lzX2Nsb25lOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfY2xvbmUKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX3N5c19jbG9uZQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX19zeXNsb2cuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc3lzbG9nLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmRjMTk0ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fc3lzbG9nLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fc3lzbG9nCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9fc3lzbG9nCisKK19fc3lzbG9nOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc3lzbG9nCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX19zeXNsb2cKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19fdGltZXJfY3JlYXRlLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3RpbWVyX2NyZWF0ZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0MGQwZDEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3RpbWVyX2NyZWF0ZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBfX3RpbWVyX2NyZWF0ZQorICAgIC5hbGlnbiA0CisgICAgLmVudCBfX3RpbWVyX2NyZWF0ZQorCitfX3RpbWVyX2NyZWF0ZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3RpbWVyX2NyZWF0ZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9fdGltZXJfY3JlYXRlCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3RpbWVyX2RlbGV0ZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX190aW1lcl9kZWxldGUuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjM2MmU2Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX190aW1lcl9kZWxldGUuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX190aW1lcl9kZWxldGUKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX190aW1lcl9kZWxldGUKKworX190aW1lcl9kZWxldGU6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl90aW1lcl9kZWxldGUKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX3RpbWVyX2RlbGV0ZQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX190aW1lcl9nZXRvdmVycnVuLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3RpbWVyX2dldG92ZXJydW4uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGFmYTFjCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX190aW1lcl9nZXRvdmVycnVuLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fdGltZXJfZ2V0b3ZlcnJ1bgorICAgIC5hbGlnbiA0CisgICAgLmVudCBfX3RpbWVyX2dldG92ZXJydW4KKworX190aW1lcl9nZXRvdmVycnVuOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfdGltZXJfZ2V0b3ZlcnJ1bgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9fdGltZXJfZ2V0b3ZlcnJ1bgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX190aW1lcl9nZXR0aW1lLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3RpbWVyX2dldHRpbWUuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTcwZGE2Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX190aW1lcl9nZXR0aW1lLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fdGltZXJfZ2V0dGltZQorICAgIC5hbGlnbiA0CisgICAgLmVudCBfX3RpbWVyX2dldHRpbWUKKworX190aW1lcl9nZXR0aW1lOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfdGltZXJfZ2V0dGltZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9fdGltZXJfZ2V0dGltZQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX190aW1lcl9zZXR0aW1lLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3RpbWVyX3NldHRpbWUuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDg0NjA2Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX190aW1lcl9zZXR0aW1lLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fdGltZXJfc2V0dGltZQorICAgIC5hbGlnbiA0CisgICAgLmVudCBfX3RpbWVyX3NldHRpbWUKKworX190aW1lcl9zZXR0aW1lOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfdGltZXJfc2V0dGltZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9fdGltZXJfc2V0dGltZQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX193YWl0NC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX193YWl0NC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxM2I3Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3dhaXQ0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9fd2FpdDQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX193YWl0NAorCitfX3dhaXQ0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfd2FpdDQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX3dhaXQ0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fX3dhaXRpZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX193YWl0aWQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44M2U1YWEzCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX193YWl0aWQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX193YWl0aWQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX193YWl0aWQKKworX193YWl0aWQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl93YWl0aWQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBfX3dhaXRpZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX2V4aXQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19leGl0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjdlYzg3NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19leGl0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIF9leGl0CisgICAgLmFsaWduIDQKKyAgICAuZW50IF9leGl0CisKK19leGl0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZXhpdF9ncm91cAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIF9leGl0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fZXhpdF90aHJlYWQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19leGl0X3RocmVhZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhZjlkM2QKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fZXhpdF90aHJlYWQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX2V4aXRfdGhyZWFkCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9leGl0X3RocmVhZAorCitfZXhpdF90aHJlYWQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9leGl0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX2V4aXRfdGhyZWFkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fZmx1c2hfY2FjaGUuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL19mbHVzaF9jYWNoZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3ZGVlNjYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fZmx1c2hfY2FjaGUuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX2ZsdXNoX2NhY2hlCisgICAgLmFsaWduIDQKKyAgICAuZW50IF9mbHVzaF9jYWNoZQorCitfZmx1c2hfY2FjaGU6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9jYWNoZWZsdXNoCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX2ZsdXNoX2NhY2hlCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9fd2FpdHBpZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX3dhaXRwaWQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMGRiM2E4Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvX3dhaXRwaWQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgX3dhaXRwaWQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgX3dhaXRwaWQKKworX3dhaXRwaWQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl93YWl0cGlkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgX3dhaXRwaWQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2FjY2VwdC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvYWNjZXB0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE5MjE2ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2FjY2VwdC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBhY2NlcHQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgYWNjZXB0CisKK2FjY2VwdDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2FjY2VwdAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGFjY2VwdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvYWNjZXNzLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9hY2Nlc3MuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjJlZDkyCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvYWNjZXNzLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGFjY2VzcworICAgIC5hbGlnbiA0CisgICAgLmVudCBhY2Nlc3MKKworYWNjZXNzOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfYWNjZXNzCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgYWNjZXNzCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9hY2N0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9hY2N0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIzNWVkZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2FjY3QuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgYWNjdAorICAgIC5hbGlnbiA0CisgICAgLmVudCBhY2N0CisKK2FjY3Q6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9hY2N0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgYWNjdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvYmluZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvYmluZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmMDA5MjIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9iaW5kLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGJpbmQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgYmluZAorCitiaW5kOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfYmluZAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGJpbmQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2NhcGdldC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2FwZ2V0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODBlNTVlZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2NhcGdldC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBjYXBnZXQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgY2FwZ2V0CisKK2NhcGdldDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2NhcGdldAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGNhcGdldApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2Fwc2V0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jYXBzZXQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTRhM2JlCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2Fwc2V0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGNhcHNldAorICAgIC5hbGlnbiA0CisgICAgLmVudCBjYXBzZXQKKworY2Fwc2V0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfY2Fwc2V0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgY2Fwc2V0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jaGRpci5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2hkaXIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmViMzdjCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2hkaXIuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgY2hkaXIKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgY2hkaXIKKworY2hkaXI6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9jaGRpcgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGNoZGlyCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jaG1vZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2htb2QuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWEzZWRlCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2htb2QuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgY2htb2QKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgY2htb2QKKworY2htb2Q6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9jaG1vZAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGNobW9kCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jaG93bi5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2hvd24uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZmIxZTMyCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2hvd24uUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgY2hvd24KKyAgICAuYWxpZ24gNAorICAgIC5lbnQgY2hvd24KKworY2hvd246CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9jaG93bgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGNob3duCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jaHJvb3QuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Nocm9vdC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhZmI2YTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jaHJvb3QuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgY2hyb290CisgICAgLmFsaWduIDQKKyAgICAuZW50IGNocm9vdAorCitjaHJvb3Q6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9jaHJvb3QKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBjaHJvb3QKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Nsb2NrX2dldHJlcy5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2xvY2tfZ2V0cmVzLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDAyMWIxNAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Nsb2NrX2dldHJlcy5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBjbG9ja19nZXRyZXMKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgY2xvY2tfZ2V0cmVzCisKK2Nsb2NrX2dldHJlczoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2Nsb2NrX2dldHJlcworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGNsb2NrX2dldHJlcwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2xvY2tfZ2V0dGltZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2xvY2tfZ2V0dGltZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhN2FmYjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jbG9ja19nZXR0aW1lLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGNsb2NrX2dldHRpbWUKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgY2xvY2tfZ2V0dGltZQorCitjbG9ja19nZXR0aW1lOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfY2xvY2tfZ2V0dGltZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGNsb2NrX2dldHRpbWUKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Nsb2NrX25hbm9zbGVlcC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2xvY2tfbmFub3NsZWVwLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWE5YWVmNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Nsb2NrX25hbm9zbGVlcC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBjbG9ja19uYW5vc2xlZXAKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgY2xvY2tfbmFub3NsZWVwCisKK2Nsb2NrX25hbm9zbGVlcDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2Nsb2NrX25hbm9zbGVlcAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGNsb2NrX25hbm9zbGVlcApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2xvY2tfc2V0dGltZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY2xvY2tfc2V0dGltZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1ZDQzODgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jbG9ja19zZXR0aW1lLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGNsb2NrX3NldHRpbWUKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgY2xvY2tfc2V0dGltZQorCitjbG9ja19zZXR0aW1lOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfY2xvY2tfc2V0dGltZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGNsb2NrX3NldHRpbWUKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Nsb3NlLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jbG9zZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3ZmY0ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9jbG9zZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBjbG9zZQorICAgIC5hbGlnbiA0CisgICAgLmVudCBjbG9zZQorCitjbG9zZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2Nsb3NlCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgY2xvc2UKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Nvbm5lY3QuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Nvbm5lY3QuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWZjMjgwCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvY29ubmVjdC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBjb25uZWN0CisgICAgLmFsaWduIDQKKyAgICAuZW50IGNvbm5lY3QKKworY29ubmVjdDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2Nvbm5lY3QKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBjb25uZWN0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9kZWxldGVfbW9kdWxlLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9kZWxldGVfbW9kdWxlLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI4MGJhNwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2RlbGV0ZV9tb2R1bGUuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZGVsZXRlX21vZHVsZQorICAgIC5hbGlnbiA0CisgICAgLmVudCBkZWxldGVfbW9kdWxlCisKK2RlbGV0ZV9tb2R1bGU6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9kZWxldGVfbW9kdWxlCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZGVsZXRlX21vZHVsZQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZHVwLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9kdXAuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODE1NzQ5Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZHVwLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGR1cAorICAgIC5hbGlnbiA0CisgICAgLmVudCBkdXAKKworZHVwOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZHVwCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZHVwCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9kdXAyLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9kdXAyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZiMTUxZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2R1cDIuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZHVwMgorICAgIC5hbGlnbiA0CisgICAgLmVudCBkdXAyCisKK2R1cDI6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9kdXAyCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZHVwMgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZXBvbGxfY3JlYXRlLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9lcG9sbF9jcmVhdGUuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNWU0MjBiCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZXBvbGxfY3JlYXRlLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGVwb2xsX2NyZWF0ZQorICAgIC5hbGlnbiA0CisgICAgLmVudCBlcG9sbF9jcmVhdGUKKworZXBvbGxfY3JlYXRlOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZXBvbGxfY3JlYXRlCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZXBvbGxfY3JlYXRlCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9lcG9sbF9jdGwuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Vwb2xsX2N0bC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0ZjlmMDUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9lcG9sbF9jdGwuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZXBvbGxfY3RsCisgICAgLmFsaWduIDQKKyAgICAuZW50IGVwb2xsX2N0bAorCitlcG9sbF9jdGw6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9lcG9sbF9jdGwKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBlcG9sbF9jdGwKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Vwb2xsX3dhaXQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Vwb2xsX3dhaXQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NGQzM2ZiCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZXBvbGxfd2FpdC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBlcG9sbF93YWl0CisgICAgLmFsaWduIDQKKyAgICAuZW50IGVwb2xsX3dhaXQKKworZXBvbGxfd2FpdDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2Vwb2xsX3dhaXQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBlcG9sbF93YWl0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9ldmVudGZkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9ldmVudGZkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWM0ZTIyYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2V2ZW50ZmQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZXZlbnRmZAorICAgIC5hbGlnbiA0CisgICAgLmVudCBldmVudGZkCisKK2V2ZW50ZmQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9ldmVudGZkMgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGV2ZW50ZmQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2V4ZWN2ZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZXhlY3ZlLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFiOTI3NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2V4ZWN2ZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBleGVjdmUKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZXhlY3ZlCisKK2V4ZWN2ZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2V4ZWN2ZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGV4ZWN2ZQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmFjY2Vzc2F0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mYWNjZXNzYXQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2RiNGMwCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmFjY2Vzc2F0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGZhY2Nlc3NhdAorICAgIC5hbGlnbiA0CisgICAgLmVudCBmYWNjZXNzYXQKKworZmFjY2Vzc2F0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZmFjY2Vzc2F0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZmFjY2Vzc2F0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mY2hkaXIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZjaGRpci5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzMjk4YmQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mY2hkaXIuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZmNoZGlyCisgICAgLmFsaWduIDQKKyAgICAuZW50IGZjaGRpcgorCitmY2hkaXI6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9mY2hkaXIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBmY2hkaXIKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZjaG1vZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmNobW9kLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ4MzU2NwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZjaG1vZC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBmY2htb2QKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZmNobW9kCisKK2ZjaG1vZDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2ZjaG1vZAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGZjaG1vZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmNobW9kYXQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZjaG1vZGF0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGJhMWJiZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZjaG1vZGF0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGZjaG1vZGF0CisgICAgLmFsaWduIDQKKyAgICAuZW50IGZjaG1vZGF0CisKK2ZjaG1vZGF0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZmNobW9kYXQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBmY2htb2RhdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmNob3duLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mY2hvd24uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNGZjMDhmCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmNob3duLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGZjaG93bgorICAgIC5hbGlnbiA0CisgICAgLmVudCBmY2hvd24KKworZmNob3duOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZmNob3duCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZmNob3duCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mY2hvd25hdC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmNob3duYXQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODNlZDU2Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmNob3duYXQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZmNob3duYXQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZmNob3duYXQKKworZmNob3duYXQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9mY2hvd25hdAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGZjaG93bmF0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mZGF0YXN5bmMuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZkYXRhc3luYy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxMjQzOWQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mZGF0YXN5bmMuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZmRhdGFzeW5jCisgICAgLmFsaWduIDQKKyAgICAuZW50IGZkYXRhc3luYworCitmZGF0YXN5bmM6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9mZGF0YXN5bmMKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBmZGF0YXN5bmMKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZnZXR4YXR0ci5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmdldHhhdHRyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U3N2U2MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZnZXR4YXR0ci5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBmZ2V0eGF0dHIKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZmdldHhhdHRyCisKK2ZnZXR4YXR0cjoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2ZnZXR4YXR0cgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGZnZXR4YXR0cgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmxpc3R4YXR0ci5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZmxpc3R4YXR0ci5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2ZTI2ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mbGlzdHhhdHRyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGZsaXN0eGF0dHIKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZmxpc3R4YXR0cgorCitmbGlzdHhhdHRyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZmxpc3R4YXR0cgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGZsaXN0eGF0dHIKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Zsb2NrLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mbG9jay5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5YTMxNDIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mbG9jay5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBmbG9jaworICAgIC5hbGlnbiA0CisgICAgLmVudCBmbG9jaworCitmbG9jazoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2Zsb2NrCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZmxvY2sKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZyZW1vdmV4YXR0ci5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZnJlbW92ZXhhdHRyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGIzZWI2YwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZyZW1vdmV4YXR0ci5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBmcmVtb3ZleGF0dHIKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZnJlbW92ZXhhdHRyCisKK2ZyZW1vdmV4YXR0cjoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2ZyZW1vdmV4YXR0cgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGZyZW1vdmV4YXR0cgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZnNldHhhdHRyLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mc2V0eGF0dHIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTY2NmYyCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZnNldHhhdHRyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGZzZXR4YXR0cgorICAgIC5hbGlnbiA0CisgICAgLmVudCBmc2V0eGF0dHIKKworZnNldHhhdHRyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZnNldHhhdHRyCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZnNldHhhdHRyCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mc3RhdC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZnN0YXQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43M2Q3MjM1Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZnN0YXQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZnN0YXQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZnN0YXQKKworZnN0YXQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9mc3RhdDY0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZnN0YXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZzdGF0YXQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZzdGF0YXQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYWUyMjllCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZnN0YXRhdC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBmc3RhdGF0CisgICAgLmFsaWduIDQKKyAgICAuZW50IGZzdGF0YXQKKworZnN0YXRhdDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2ZzdGF0YXQ2NAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGZzdGF0YXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2ZzeW5jLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mc3luYy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxY2QzMTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9mc3luYy5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBmc3luYworICAgIC5hbGlnbiA0CisgICAgLmVudCBmc3luYworCitmc3luYzoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2ZzeW5jCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZnN5bmMKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Z0cnVuY2F0ZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZnRydW5jYXRlLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQ3MmI0MwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Z0cnVuY2F0ZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBmdHJ1bmNhdGUKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZnRydW5jYXRlCisKK2Z0cnVuY2F0ZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2Z0cnVuY2F0ZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGZ0cnVuY2F0ZQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZnRydW5jYXRlNjQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Z0cnVuY2F0ZTY0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjE2YWUzOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Z0cnVuY2F0ZTY0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGZ0cnVuY2F0ZTY0CisgICAgLmFsaWduIDQKKyAgICAuZW50IGZ0cnVuY2F0ZTY0CisKK2Z0cnVuY2F0ZTY0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZnRydW5jYXRlNjQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBmdHJ1bmNhdGU2NApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZnV0ZXguUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Z1dGV4LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjVlNTM3YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2Z1dGV4LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGZ1dGV4CisgICAgLmFsaWduIDQKKyAgICAuZW50IGZ1dGV4CisKK2Z1dGV4OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZnV0ZXgKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBmdXRleApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0ZGVudHMuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldGRlbnRzLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGZmMGYyNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldGRlbnRzLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGdldGRlbnRzCisgICAgLmFsaWduIDQKKyAgICAuZW50IGdldGRlbnRzCisKK2dldGRlbnRzOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZ2V0ZGVudHM2NAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGdldGRlbnRzCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRlZ2lkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRlZ2lkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGMyYTA0YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldGVnaWQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZ2V0ZWdpZAorICAgIC5hbGlnbiA0CisgICAgLmVudCBnZXRlZ2lkCisKK2dldGVnaWQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9nZXRlZ2lkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZ2V0ZWdpZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0ZXVpZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0ZXVpZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiZWNhODgKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRldWlkLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGdldGV1aWQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZ2V0ZXVpZAorCitnZXRldWlkOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZ2V0ZXVpZAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGdldGV1aWQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldGdpZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0Z2lkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmE2MTVlZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldGdpZC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBnZXRnaWQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZ2V0Z2lkCisKK2dldGdpZDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2dldGdpZAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGdldGdpZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0Z3JvdXBzLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRncm91cHMuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmU3MzA4Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0Z3JvdXBzLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGdldGdyb3VwcworICAgIC5hbGlnbiA0CisgICAgLmVudCBnZXRncm91cHMKKworZ2V0Z3JvdXBzOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZ2V0Z3JvdXBzCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZ2V0Z3JvdXBzCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRpdGltZXIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldGl0aW1lci5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkZjFkMTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRpdGltZXIuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZ2V0aXRpbWVyCisgICAgLmFsaWduIDQKKyAgICAuZW50IGdldGl0aW1lcgorCitnZXRpdGltZXI6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9nZXRpdGltZXIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBnZXRpdGltZXIKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHBlZXJuYW1lLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRwZWVybmFtZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhM2JlZGEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRwZWVybmFtZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBnZXRwZWVybmFtZQorICAgIC5hbGlnbiA0CisgICAgLmVudCBnZXRwZWVybmFtZQorCitnZXRwZWVybmFtZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2dldHBlZXJuYW1lCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZ2V0cGVlcm5hbWUKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHBnaWQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHBnaWQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDc5MzUxCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cGdpZC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBnZXRwZ2lkCisgICAgLmFsaWduIDQKKyAgICAuZW50IGdldHBnaWQKKworZ2V0cGdpZDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2dldHBnaWQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBnZXRwZ2lkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRwaWQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHBpZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1MmUzMWIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRwaWQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZ2V0cGlkCisgICAgLmFsaWduIDQKKyAgICAuZW50IGdldHBpZAorCitnZXRwaWQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9nZXRwaWQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBnZXRwaWQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHBwaWQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHBwaWQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZTNmZTE5Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cHBpZC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBnZXRwcGlkCisgICAgLmFsaWduIDQKKyAgICAuZW50IGdldHBwaWQKKworZ2V0cHBpZDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2dldHBwaWQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBnZXRwcGlkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRyZXNnaWQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHJlc2dpZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlOWJmMzkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRyZXNnaWQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZ2V0cmVzZ2lkCisgICAgLmFsaWduIDQKKyAgICAuZW50IGdldHJlc2dpZAorCitnZXRyZXNnaWQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9nZXRyZXNnaWQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBnZXRyZXNnaWQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHJlc3VpZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cmVzdWlkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmYyN2NkZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHJlc3VpZC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBnZXRyZXN1aWQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZ2V0cmVzdWlkCisKK2dldHJlc3VpZDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2dldHJlc3VpZAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGdldHJlc3VpZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cmxpbWl0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRybGltaXQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MmVkN2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0cmxpbWl0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGdldHJsaW1pdAorICAgIC5hbGlnbiA0CisgICAgLmVudCBnZXRybGltaXQKKworZ2V0cmxpbWl0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZ2V0cmxpbWl0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZ2V0cmxpbWl0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRydXNhZ2UuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHJ1c2FnZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjMGY3ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRydXNhZ2UuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZ2V0cnVzYWdlCisgICAgLmFsaWduIDQKKyAgICAuZW50IGdldHJ1c2FnZQorCitnZXRydXNhZ2U6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9nZXRydXNhZ2UKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBnZXRydXNhZ2UKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHNvY2tuYW1lLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRzb2NrbmFtZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzZDQxZjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXRzb2NrbmFtZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBnZXRzb2NrbmFtZQorICAgIC5hbGlnbiA0CisgICAgLmVudCBnZXRzb2NrbmFtZQorCitnZXRzb2NrbmFtZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2dldHNvY2tuYW1lCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZ2V0c29ja25hbWUKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHNvY2tvcHQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHNvY2tvcHQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTVhZTZhCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0c29ja29wdC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBnZXRzb2Nrb3B0CisgICAgLmFsaWduIDQKKyAgICAuZW50IGdldHNvY2tvcHQKKworZ2V0c29ja29wdDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2dldHNvY2tvcHQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBnZXRzb2Nrb3B0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXR0aWQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHRpZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlMzdkZjUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXR0aWQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZ2V0dGlkCisgICAgLmFsaWduIDQKKyAgICAuZW50IGdldHRpZAorCitnZXR0aWQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9nZXR0aWQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBnZXR0aWQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHRpbWVvZmRheS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0dGltZW9mZGF5LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTlhOTNhNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2dldHRpbWVvZmRheS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBnZXR0aW1lb2ZkYXkKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZ2V0dGltZW9mZGF5CisKK2dldHRpbWVvZmRheToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2dldHRpbWVvZmRheQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGdldHRpbWVvZmRheQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0dWlkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXR1aWQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNWJhNjk4Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0dWlkLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGdldHVpZAorICAgIC5hbGlnbiA0CisgICAgLmVudCBnZXR1aWQKKworZ2V0dWlkOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfZ2V0dWlkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgZ2V0dWlkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9nZXR4YXR0ci5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0eGF0dHIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YzcwNTc5Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvZ2V0eGF0dHIuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgZ2V0eGF0dHIKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgZ2V0eGF0dHIKKworZ2V0eGF0dHI6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9nZXR4YXR0cgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGdldHhhdHRyCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9pbml0X21vZHVsZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvaW5pdF9tb2R1bGUuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Y2ZiZDJmCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvaW5pdF9tb2R1bGUuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgaW5pdF9tb2R1bGUKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgaW5pdF9tb2R1bGUKKworaW5pdF9tb2R1bGU6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9pbml0X21vZHVsZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGluaXRfbW9kdWxlCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9pbm90aWZ5X2FkZF93YXRjaC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvaW5vdGlmeV9hZGRfd2F0Y2guUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGRlNjY3Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvaW5vdGlmeV9hZGRfd2F0Y2guUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgaW5vdGlmeV9hZGRfd2F0Y2gKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgaW5vdGlmeV9hZGRfd2F0Y2gKKworaW5vdGlmeV9hZGRfd2F0Y2g6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9pbm90aWZ5X2FkZF93YXRjaAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGlub3RpZnlfYWRkX3dhdGNoCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9pbm90aWZ5X2luaXQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2lub3RpZnlfaW5pdC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkZTQ2NjcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9pbm90aWZ5X2luaXQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgaW5vdGlmeV9pbml0CisgICAgLmFsaWduIDQKKyAgICAuZW50IGlub3RpZnlfaW5pdAorCitpbm90aWZ5X2luaXQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9pbm90aWZ5X2luaXQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBpbm90aWZ5X2luaXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2lub3RpZnlfcm1fd2F0Y2guUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2lub3RpZnlfcm1fd2F0Y2guUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjI5NjRlCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvaW5vdGlmeV9ybV93YXRjaC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBpbm90aWZ5X3JtX3dhdGNoCisgICAgLmFsaWduIDQKKyAgICAuZW50IGlub3RpZnlfcm1fd2F0Y2gKKworaW5vdGlmeV9ybV93YXRjaDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2lub3RpZnlfcm1fd2F0Y2gKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBpbm90aWZ5X3JtX3dhdGNoCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9pb3ByaW9fZ2V0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9pb3ByaW9fZ2V0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjdmMjQ0MQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2lvcHJpb19nZXQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgaW9wcmlvX2dldAorICAgIC5hbGlnbiA0CisgICAgLmVudCBpb3ByaW9fZ2V0CisKK2lvcHJpb19nZXQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9pb3ByaW9fZ2V0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgaW9wcmlvX2dldApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvaW9wcmlvX3NldC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvaW9wcmlvX3NldC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzYTMwZTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9pb3ByaW9fc2V0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGlvcHJpb19zZXQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgaW9wcmlvX3NldAorCitpb3ByaW9fc2V0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfaW9wcmlvX3NldAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGlvcHJpb19zZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2tpbGwuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2tpbGwuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjY0MGZmCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMva2lsbC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBraWxsCisgICAgLmFsaWduIDQKKyAgICAuZW50IGtpbGwKKwora2lsbDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2tpbGwKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBraWxsCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9rbG9nY3RsLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9rbG9nY3RsLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGM0MWRjZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2tsb2djdGwuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwga2xvZ2N0bAorICAgIC5hbGlnbiA0CisgICAgLmVudCBrbG9nY3RsCisKK2tsb2djdGw6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zeXNsb2cKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBrbG9nY3RsCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9sY2hvd24uUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2xjaG93bi5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmYjQ2NjAKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9sY2hvd24uUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgbGNob3duCisgICAgLmFsaWduIDQKKyAgICAuZW50IGxjaG93bgorCitsY2hvd246CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9sY2hvd24KKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBsY2hvd24KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2xnZXR4YXR0ci5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbGdldHhhdHRyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDU0NmQyOAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2xnZXR4YXR0ci5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBsZ2V0eGF0dHIKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgbGdldHhhdHRyCisKK2xnZXR4YXR0cjoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2xnZXR4YXR0cgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGxnZXR4YXR0cgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbGluay5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbGluay5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwOTZiNDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9saW5rLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGxpbmsKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgbGluaworCitsaW5rOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbGluaworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGxpbmsKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2xpc3Rlbi5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbGlzdGVuLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjM2NWQxZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2xpc3Rlbi5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBsaXN0ZW4KKyAgICAuYWxpZ24gNAorICAgIC5lbnQgbGlzdGVuCisKK2xpc3RlbjoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2xpc3RlbgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGxpc3RlbgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbGlzdHhhdHRyLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9saXN0eGF0dHIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MGI0NTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbGlzdHhhdHRyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGxpc3R4YXR0cgorICAgIC5hbGlnbiA0CisgICAgLmVudCBsaXN0eGF0dHIKKworbGlzdHhhdHRyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbGlzdHhhdHRyCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgbGlzdHhhdHRyCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9sbGlzdHhhdHRyLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9sbGlzdHhhdHRyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc0YmY4NQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2xsaXN0eGF0dHIuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgbGxpc3R4YXR0cgorICAgIC5hbGlnbiA0CisgICAgLmVudCBsbGlzdHhhdHRyCisKK2xsaXN0eGF0dHI6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9sbGlzdHhhdHRyCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgbGxpc3R4YXR0cgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbHJlbW92ZXhhdHRyLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9scmVtb3ZleGF0dHIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOGQ4ZGY5Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbHJlbW92ZXhhdHRyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIGxyZW1vdmV4YXR0cgorICAgIC5hbGlnbiA0CisgICAgLmVudCBscmVtb3ZleGF0dHIKKworbHJlbW92ZXhhdHRyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbHJlbW92ZXhhdHRyCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgbHJlbW92ZXhhdHRyCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9sc2Vlay5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbHNlZWsuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjQ4NmFjCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbHNlZWsuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgbHNlZWsKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgbHNlZWsKKworbHNlZWs6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9sc2VlaworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIGxzZWVrCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9sc2V0eGF0dHIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2xzZXR4YXR0ci5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5YTBmZGYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9sc2V0eGF0dHIuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgbHNldHhhdHRyCisgICAgLmFsaWduIDQKKyAgICAuZW50IGxzZXR4YXR0cgorCitsc2V0eGF0dHI6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9sc2V0eGF0dHIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBsc2V0eGF0dHIKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL2xzdGF0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9sc3RhdC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1NWQxZGEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9sc3RhdC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBsc3RhdAorICAgIC5hbGlnbiA0CisgICAgLmVudCBsc3RhdAorCitsc3RhdDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX2xzdGF0NjQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBsc3RhdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbWFkdmlzZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbWFkdmlzZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRkZjczMjUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9tYWR2aXNlLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIG1hZHZpc2UKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgbWFkdmlzZQorCittYWR2aXNlOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbWFkdmlzZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIG1hZHZpc2UKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21pbmNvcmUuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21pbmNvcmUuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjQ2N2NkCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbWluY29yZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBtaW5jb3JlCisgICAgLmFsaWduIDQKKyAgICAuZW50IG1pbmNvcmUKKworbWluY29yZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX21pbmNvcmUKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBtaW5jb3JlCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9ta2Rpci5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbWtkaXIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYmY3ZGI4Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbWtkaXIuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgbWtkaXIKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgbWtkaXIKKworbWtkaXI6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9ta2RpcgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIG1rZGlyCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9ta2RpcmF0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9ta2RpcmF0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGNjYmUzYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21rZGlyYXQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgbWtkaXJhdAorICAgIC5hbGlnbiA0CisgICAgLmVudCBta2RpcmF0CisKK21rZGlyYXQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9ta2RpcmF0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgbWtkaXJhdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbWtub2QuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21rbm9kLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWViYjBhZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21rbm9kLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIG1rbm9kCisgICAgLmFsaWduIDQKKyAgICAuZW50IG1rbm9kCisKK21rbm9kOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbWtub2QKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBta25vZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbWxvY2suUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21sb2NrLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTlhY2E2ZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21sb2NrLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIG1sb2NrCisgICAgLmFsaWduIDQKKyAgICAuZW50IG1sb2NrCisKK21sb2NrOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbWxvY2sKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBtbG9jawpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbW91bnQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21vdW50LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWIzMzg1YQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21vdW50LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIG1vdW50CisgICAgLmFsaWduIDQKKyAgICAuZW50IG1vdW50CisKK21vdW50OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbW91bnQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBtb3VudApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbXByb3RlY3QuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21wcm90ZWN0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGRjM2JlYQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL21wcm90ZWN0LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIG1wcm90ZWN0CisgICAgLmFsaWduIDQKKyAgICAuZW50IG1wcm90ZWN0CisKK21wcm90ZWN0OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbXByb3RlY3QKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBtcHJvdGVjdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbXJlbWFwLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9tcmVtYXAuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjFjY2Q5Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbXJlbWFwLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIG1yZW1hcAorICAgIC5hbGlnbiA0CisgICAgLmVudCBtcmVtYXAKKworbXJlbWFwOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbXJlbWFwCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgbXJlbWFwCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9tc3luYy5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbXN5bmMuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zN2UxYzlhCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbXN5bmMuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgbXN5bmMKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgbXN5bmMKKworbXN5bmM6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9tc3luYworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIG1zeW5jCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9tdW5sb2NrLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9tdW5sb2NrLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVmYzI4MgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL211bmxvY2suUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgbXVubG9jaworICAgIC5hbGlnbiA0CisgICAgLmVudCBtdW5sb2NrCisKK211bmxvY2s6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9tdW5sb2NrCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgbXVubG9jawpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbXVubWFwLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9tdW5tYXAuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjcxN2E5Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvbXVubWFwLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIG11bm1hcAorICAgIC5hbGlnbiA0CisgICAgLmVudCBtdW5tYXAKKworbXVubWFwOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfbXVubWFwCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgbXVubWFwCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9uYW5vc2xlZXAuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL25hbm9zbGVlcC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4YWNlMTIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9uYW5vc2xlZXAuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgbmFub3NsZWVwCisgICAgLmFsaWduIDQKKyAgICAuZW50IG5hbm9zbGVlcAorCituYW5vc2xlZXA6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9uYW5vc2xlZXAKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBuYW5vc2xlZXAKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3BhdXNlLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9wYXVzZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwMzQ2YjQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9wYXVzZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBwYXVzZQorICAgIC5hbGlnbiA0CisgICAgLmVudCBwYXVzZQorCitwYXVzZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3BhdXNlCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgcGF1c2UKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3BlcmZfZXZlbnRfb3Blbi5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcGVyZl9ldmVudF9vcGVuLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjJjOWMzYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3BlcmZfZXZlbnRfb3Blbi5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBwZXJmX2V2ZW50X29wZW4KKyAgICAuYWxpZ24gNAorICAgIC5lbnQgcGVyZl9ldmVudF9vcGVuCisKK3BlcmZfZXZlbnRfb3BlbjoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3BlcmZfZXZlbnRfb3BlbgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHBlcmZfZXZlbnRfb3BlbgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcGVyc29uYWxpdHkuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3BlcnNvbmFsaXR5LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDAyMDQ2OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3BlcnNvbmFsaXR5LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHBlcnNvbmFsaXR5CisgICAgLmFsaWduIDQKKyAgICAuZW50IHBlcnNvbmFsaXR5CisKK3BlcnNvbmFsaXR5OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfcGVyc29uYWxpdHkKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBwZXJzb25hbGl0eQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcGlwZTIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3BpcGUyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWRmZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3BpcGUyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHBpcGUyCisgICAgLmFsaWduIDQKKyAgICAuZW50IHBpcGUyCisKK3BpcGUyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfcGlwZTIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBwaXBlMgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcG9sbC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcG9sbC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxZmVjOTcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9wb2xsLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHBvbGwKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgcG9sbAorCitwb2xsOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfcG9sbAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHBvbGwKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3ByY3RsLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9wcmN0bC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhZjEzNDQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9wcmN0bC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBwcmN0bAorICAgIC5hbGlnbiA0CisgICAgLmVudCBwcmN0bAorCitwcmN0bDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3ByY3RsCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgcHJjdGwKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3ByZWFkNjQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3ByZWFkNjQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NmU4MTdjCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcHJlYWQ2NC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBwcmVhZDY0CisgICAgLmFsaWduIDQKKyAgICAuZW50IHByZWFkNjQKKworcHJlYWQ2NDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3ByZWFkNjQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBwcmVhZDY0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9wd3JpdGU2NC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcHdyaXRlNjQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOGRjZDk4Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcHdyaXRlNjQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgcHdyaXRlNjQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgcHdyaXRlNjQKKworcHdyaXRlNjQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9wd3JpdGU2NAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHB3cml0ZTY0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9yZWFkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9yZWFkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU4MTZjZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JlYWQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgcmVhZAorICAgIC5hbGlnbiA0CisgICAgLmVudCByZWFkCisKK3JlYWQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9yZWFkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgcmVhZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVhZGFoZWFkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9yZWFkYWhlYWQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZWM2MDBkCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVhZGFoZWFkLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHJlYWRhaGVhZAorICAgIC5hbGlnbiA0CisgICAgLmVudCByZWFkYWhlYWQKKworcmVhZGFoZWFkOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfcmVhZGFoZWFkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgcmVhZGFoZWFkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9yZWFkbGluay5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVhZGxpbmsuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jY2RkNTk2Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVhZGxpbmsuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgcmVhZGxpbmsKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgcmVhZGxpbmsKKworcmVhZGxpbms6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9yZWFkbGluaworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHJlYWRsaW5rCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9yZWFkdi5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVhZHYuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNTYxYzE4Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVhZHYuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgcmVhZHYKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgcmVhZHYKKworcmVhZHY6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9yZWFkdgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHJlYWR2CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9yZWN2ZnJvbS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVjdmZyb20uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjM0NDFkCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVjdmZyb20uUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgcmVjdmZyb20KKyAgICAuYWxpZ24gNAorICAgIC5lbnQgcmVjdmZyb20KKworcmVjdmZyb206CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9yZWN2ZnJvbQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHJlY3Zmcm9tCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9yZWN2bXNnLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9yZWN2bXNnLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWYyMmM0OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JlY3Ztc2cuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgcmVjdm1zZworICAgIC5hbGlnbiA0CisgICAgLmVudCByZWN2bXNnCisKK3JlY3Ztc2c6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9yZWN2bXNnCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgcmVjdm1zZwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVtb3ZleGF0dHIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JlbW92ZXhhdHRyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2QxMmI5NgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3JlbW92ZXhhdHRyLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHJlbW92ZXhhdHRyCisgICAgLmFsaWduIDQKKyAgICAuZW50IHJlbW92ZXhhdHRyCisKK3JlbW92ZXhhdHRyOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfcmVtb3ZleGF0dHIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCByZW1vdmV4YXR0cgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVuYW1lLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9yZW5hbWUuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTBkNTc5Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVuYW1lLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHJlbmFtZQorICAgIC5hbGlnbiA0CisgICAgLmVudCByZW5hbWUKKworcmVuYW1lOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfcmVuYW1lCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgcmVuYW1lCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9yZW5hbWVhdC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVuYW1lYXQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMmYzYzRmCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcmVuYW1lYXQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgcmVuYW1lYXQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgcmVuYW1lYXQKKworcmVuYW1lYXQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9yZW5hbWVhdAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHJlbmFtZWF0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9ybWRpci5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcm1kaXIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjc3ZDBkCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvcm1kaXIuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgcm1kaXIKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgcm1kaXIKKworcm1kaXI6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9ybWRpcgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHJtZGlyCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9nZXRfcHJpb3JpdHlfbWF4LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTU4YjBmZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX2dldF9wcmlvcml0eV9tYXguUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2NoZWRfZ2V0X3ByaW9yaXR5X21heAorICAgIC5hbGlnbiA0CisgICAgLmVudCBzY2hlZF9nZXRfcHJpb3JpdHlfbWF4CisKK3NjaGVkX2dldF9wcmlvcml0eV9tYXg6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zY2hlZF9nZXRfcHJpb3JpdHlfbWF4CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2NoZWRfZ2V0X3ByaW9yaXR5X21heApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfZ2V0X3ByaW9yaXR5X21pbi5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfZ2V0X3ByaW9yaXR5X21pbi5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhjMDdkNzIKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9nZXRfcHJpb3JpdHlfbWluLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNjaGVkX2dldF9wcmlvcml0eV9taW4KKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2NoZWRfZ2V0X3ByaW9yaXR5X21pbgorCitzY2hlZF9nZXRfcHJpb3JpdHlfbWluOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNjaGVkX2dldF9wcmlvcml0eV9taW4KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX2dldHBhcmFtLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9nZXRwYXJhbS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhYmE3Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9nZXRwYXJhbS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzY2hlZF9nZXRwYXJhbQorICAgIC5hbGlnbiA0CisgICAgLmVudCBzY2hlZF9nZXRwYXJhbQorCitzY2hlZF9nZXRwYXJhbToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NjaGVkX2dldHBhcmFtCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2NoZWRfZ2V0cGFyYW0KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX2dldHNjaGVkdWxlci5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfZ2V0c2NoZWR1bGVyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNkN2Y0OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX2dldHNjaGVkdWxlci5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzY2hlZF9nZXRzY2hlZHVsZXIKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2NoZWRfZ2V0c2NoZWR1bGVyCisKK3NjaGVkX2dldHNjaGVkdWxlcjoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NjaGVkX2dldHNjaGVkdWxlcgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNjaGVkX2dldHNjaGVkdWxlcgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfcnJfZ2V0X2ludGVydmFsLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9ycl9nZXRfaW50ZXJ2YWwuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjM0ZWQwCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfcnJfZ2V0X2ludGVydmFsLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNjaGVkX3JyX2dldF9pbnRlcnZhbAorICAgIC5hbGlnbiA0CisgICAgLmVudCBzY2hlZF9ycl9nZXRfaW50ZXJ2YWwKKworc2NoZWRfcnJfZ2V0X2ludGVydmFsOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2NoZWRfcnJfZ2V0X2ludGVydmFsCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2NoZWRfcnJfZ2V0X2ludGVydmFsCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9zZXRhZmZpbml0eS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfc2V0YWZmaW5pdHkuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZWZjMjQwCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfc2V0YWZmaW5pdHkuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2NoZWRfc2V0YWZmaW5pdHkKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2NoZWRfc2V0YWZmaW5pdHkKKworc2NoZWRfc2V0YWZmaW5pdHk6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zY2hlZF9zZXRhZmZpbml0eQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNjaGVkX3NldGFmZmluaXR5CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9zZXRwYXJhbS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfc2V0cGFyYW0uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDY0NmJkCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2NoZWRfc2V0cGFyYW0uUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2NoZWRfc2V0cGFyYW0KKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2NoZWRfc2V0cGFyYW0KKworc2NoZWRfc2V0cGFyYW06CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zY2hlZF9zZXRwYXJhbQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNjaGVkX3NldHBhcmFtCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9zZXRzY2hlZHVsZXIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX3NldHNjaGVkdWxlci5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3OWUzOWMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF9zZXRzY2hlZHVsZXIuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2NoZWRfc2V0c2NoZWR1bGVyCisgICAgLmFsaWduIDQKKyAgICAuZW50IHNjaGVkX3NldHNjaGVkdWxlcgorCitzY2hlZF9zZXRzY2hlZHVsZXI6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zY2hlZF9zZXRzY2hlZHVsZXIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzY2hlZF9zZXRzY2hlZHVsZXIKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NjaGVkX3lpZWxkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF95aWVsZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3Yzk5ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zY2hlZF95aWVsZC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzY2hlZF95aWVsZAorICAgIC5hbGlnbiA0CisgICAgLmVudCBzY2hlZF95aWVsZAorCitzY2hlZF95aWVsZDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NjaGVkX3lpZWxkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2NoZWRfeWllbGQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NlbGVjdC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2VsZWN0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2U0MTEyZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NlbGVjdC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzZWxlY3QKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2VsZWN0CisKK3NlbGVjdDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX19uZXdzZWxlY3QKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzZWxlY3QKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NlbmRmaWxlLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZW5kZmlsZS5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0YzE3NmUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZW5kZmlsZS5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzZW5kZmlsZQorICAgIC5hbGlnbiA0CisgICAgLmVudCBzZW5kZmlsZQorCitzZW5kZmlsZToKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NlbmRmaWxlCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2VuZGZpbGUKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NlbmRtc2cuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NlbmRtc2cuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOTEzZjEzCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2VuZG1zZy5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzZW5kbXNnCisgICAgLmFsaWduIDQKKyAgICAuZW50IHNlbmRtc2cKKworc2VuZG1zZzoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NlbmRtc2cKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzZW5kbXNnCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZW5kdG8uUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NlbmR0by5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYxNzc0M2QKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZW5kdG8uUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2VuZHRvCisgICAgLmFsaWduIDQKKyAgICAuZW50IHNlbmR0bworCitzZW5kdG86CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zZW5kdG8KKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzZW5kdG8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldGdpZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0Z2lkLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODNkYmZlNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldGdpZC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzZXRnaWQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2V0Z2lkCisKK3NldGdpZDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NldGdpZAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNldGdpZApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0Z3JvdXBzLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRncm91cHMuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjkzMjdkCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0Z3JvdXBzLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNldGdyb3VwcworICAgIC5hbGlnbiA0CisgICAgLmVudCBzZXRncm91cHMKKworc2V0Z3JvdXBzOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2V0Z3JvdXBzCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2V0Z3JvdXBzCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRpdGltZXIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldGl0aW1lci5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwNDJlMDcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRpdGltZXIuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2V0aXRpbWVyCisgICAgLmFsaWduIDQKKyAgICAuZW50IHNldGl0aW1lcgorCitzZXRpdGltZXI6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zZXRpdGltZXIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzZXRpdGltZXIKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldHBnaWQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldHBnaWQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZGRjODI4Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0cGdpZC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzZXRwZ2lkCisgICAgLmFsaWduIDQKKyAgICAuZW50IHNldHBnaWQKKworc2V0cGdpZDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NldHBnaWQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzZXRwZ2lkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRwcmlvcml0eS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0cHJpb3JpdHkuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjU1MGU5Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0cHJpb3JpdHkuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2V0cHJpb3JpdHkKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2V0cHJpb3JpdHkKKworc2V0cHJpb3JpdHk6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zZXRwcmlvcml0eQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNldHByaW9yaXR5CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRyZWdpZC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0cmVnaWQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MTliM2ExCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0cmVnaWQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2V0cmVnaWQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2V0cmVnaWQKKworc2V0cmVnaWQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zZXRyZWdpZAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNldHJlZ2lkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRyZXNnaWQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldHJlc2dpZC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmZjk0YzcKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRyZXNnaWQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2V0cmVzZ2lkCisgICAgLmFsaWduIDQKKyAgICAuZW50IHNldHJlc2dpZAorCitzZXRyZXNnaWQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zZXRyZXNnaWQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzZXRyZXNnaWQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldHJsaW1pdC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0cmxpbWl0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2VjMzdjNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldHJsaW1pdC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzZXRybGltaXQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2V0cmxpbWl0CisKK3NldHJsaW1pdDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NldHJsaW1pdAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNldHJsaW1pdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0c2lkLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRzaWQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTA5NjYzCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0c2lkLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNldHNpZAorICAgIC5hbGlnbiA0CisgICAgLmVudCBzZXRzaWQKKworc2V0c2lkOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2V0c2lkCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2V0c2lkCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRzb2Nrb3B0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXRzb2Nrb3B0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM1ZTYyZgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NldHNvY2tvcHQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2V0c29ja29wdAorICAgIC5hbGlnbiA0CisgICAgLmVudCBzZXRzb2Nrb3B0CisKK3NldHNvY2tvcHQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zZXRzb2Nrb3B0CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2V0c29ja29wdApkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0dGltZW9mZGF5LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXR0aW1lb2ZkYXkuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2MwM2VhCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0dGltZW9mZGF5LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHNldHRpbWVvZmRheQorICAgIC5hbGlnbiA0CisgICAgLmVudCBzZXR0aW1lb2ZkYXkKKworc2V0dGltZW9mZGF5OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc2V0dGltZW9mZGF5CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2V0dGltZW9mZGF5CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zZXR4YXR0ci5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0eGF0dHIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYWE3OGE0Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2V0eGF0dHIuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2V0eGF0dHIKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2V0eGF0dHIKKworc2V0eGF0dHI6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zZXR4YXR0cgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNldHhhdHRyCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zaHV0ZG93bi5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2h1dGRvd24uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODBkOTliCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2h1dGRvd24uUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2h1dGRvd24KKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2h1dGRvd24KKworc2h1dGRvd246CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zaHV0ZG93bgorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNodXRkb3duCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zaWdhY3Rpb24uUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NpZ2FjdGlvbi5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwMGRhNTQKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zaWdhY3Rpb24uUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2lnYWN0aW9uCisgICAgLmFsaWduIDQKKyAgICAuZW50IHNpZ2FjdGlvbgorCitzaWdhY3Rpb246CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zaWdhY3Rpb24KKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzaWdhY3Rpb24KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NpZ2FsdHN0YWNrLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zaWdhbHRzdGFjay5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyYTRhOWEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zaWdhbHRzdGFjay5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzaWdhbHRzdGFjaworICAgIC5hbGlnbiA0CisgICAgLmVudCBzaWdhbHRzdGFjaworCitzaWdhbHRzdGFjazoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NpZ2FsdHN0YWNrCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc2lnYWx0c3RhY2sKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NpZ3BlbmRpbmcuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NpZ3BlbmRpbmcuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGRmNGRiCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2lncGVuZGluZy5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzaWdwZW5kaW5nCisgICAgLmFsaWduIDQKKyAgICAuZW50IHNpZ3BlbmRpbmcKKworc2lncGVuZGluZzoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NpZ3BlbmRpbmcKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzaWdwZW5kaW5nCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zaWdwcm9jbWFzay5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2lncHJvY21hc2suUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2MwMWNiCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc2lncHJvY21hc2suUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc2lncHJvY21hc2sKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc2lncHJvY21hc2sKKworc2lncHJvY21hc2s6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zaWdwcm9jbWFzaworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHNpZ3Byb2NtYXNrCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zb2NrZXQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NvY2tldC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3ZDQzZjkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zb2NrZXQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc29ja2V0CisgICAgLmFsaWduIDQKKyAgICAuZW50IHNvY2tldAorCitzb2NrZXQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zb2NrZXQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzb2NrZXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NvY2tldHBhaXIuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3NvY2tldHBhaXIuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2M2N2FmCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc29ja2V0cGFpci5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzb2NrZXRwYWlyCisgICAgLmFsaWduIDQKKyAgICAuZW50IHNvY2tldHBhaXIKKworc29ja2V0cGFpcjoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3NvY2tldHBhaXIKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzb2NrZXRwYWlyCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zdGF0LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zdGF0LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWVjOTEwZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3N0YXQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc3RhdAorICAgIC5hbGlnbiA0CisgICAgLmVudCBzdGF0CisKK3N0YXQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zdGF0NjQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzdGF0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zeW1saW5rLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zeW1saW5rLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjgxYzZkZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3N5bWxpbmsuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc3ltbGluaworICAgIC5hbGlnbiA0CisgICAgLmVudCBzeW1saW5rCisKK3N5bWxpbms6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zeW1saW5rCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc3ltbGluawpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc3luYy5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc3luYy5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExMjI4NzMKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zeW5jLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHN5bmMKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgc3luYworCitzeW5jOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfc3luYworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHN5bmMKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3N5c2NhbGwuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3N5c2NhbGwuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTkyYmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvc3lzY2FsbC5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCBzeXNjYWxsCisgICAgLmFsaWduIDQKKyAgICAuZW50IHN5c2NhbGwKKworc3lzY2FsbDoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3N5c2NhbGwKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCBzeXNjYWxsCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zeXNpbmZvLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy9zeXNpbmZvLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU3N2FmOQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3N5c2luZm8uUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgc3lzaW5mbworICAgIC5hbGlnbiA0CisgICAgLmVudCBzeXNpbmZvCisKK3N5c2luZm86CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl9zeXNpbmZvCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgc3lzaW5mbwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdGdraWxsLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy90Z2tpbGwuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41N2IzYTg1Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdGdraWxsLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHRna2lsbAorICAgIC5hbGlnbiA0CisgICAgLmVudCB0Z2tpbGwKKwordGdraWxsOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfdGdraWxsCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgdGdraWxsCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy90aW1lcy5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdGltZXMuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTg5NTBkCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdGltZXMuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgdGltZXMKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgdGltZXMKKwordGltZXM6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl90aW1lcworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHRpbWVzCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy90a2lsbC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdGtpbGwuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDM3YmFhCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdGtpbGwuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgdGtpbGwKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgdGtpbGwKKwordGtpbGw6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl90a2lsbAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHRraWxsCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy90cnVuY2F0ZS5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdHJ1bmNhdGUuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YThmMTJjCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdHJ1bmNhdGUuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgdHJ1bmNhdGUKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgdHJ1bmNhdGUKKwordHJ1bmNhdGU6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl90cnVuY2F0ZQorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHRydW5jYXRlCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy91bWFzay5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdW1hc2suUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZWU5MTFlCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdW1hc2suUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgdW1hc2sKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgdW1hc2sKKwordW1hc2s6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl91bWFzaworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHVtYXNrCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy91bW91bnQyLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy91bW91bnQyLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzZkOWRmNgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3Vtb3VudDIuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgdW1vdW50MgorICAgIC5hbGlnbiA0CisgICAgLmVudCB1bW91bnQyCisKK3Vtb3VudDI6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl91bW91bnQyCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgdW1vdW50MgpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdW5hbWUuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3VuYW1lLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U0Zjc4MAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3VuYW1lLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHVuYW1lCisgICAgLmFsaWduIDQKKyAgICAuZW50IHVuYW1lCisKK3VuYW1lOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfdW5hbWUKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCB1bmFtZQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdW5saW5rLlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy91bmxpbmsuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDhkYWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdW5saW5rLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHVubGluaworICAgIC5hbGlnbiA0CisgICAgLmVudCB1bmxpbmsKKwordW5saW5rOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfdW5saW5rCisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgdW5saW5rCmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy91bmxpbmthdC5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdW5saW5rYXQuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OTNhYjVlCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdW5saW5rYXQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgdW5saW5rYXQKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgdW5saW5rYXQKKwordW5saW5rYXQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl91bmxpbmthdAorICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHVubGlua2F0CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy91dGltZW5zYXQuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3V0aW1lbnNhdC5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzNWM0OWUKLS0tIC9kZXYvbnVsbAorKysgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy91dGltZW5zYXQuUwpAQCAtMCwwICsxLDIyIEBACisvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgdXRpbWVuc2F0CisgICAgLmFsaWduIDQKKyAgICAuZW50IHV0aW1lbnNhdAorCit1dGltZW5zYXQ6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgX19OUl91dGltZW5zYXQKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCB1dGltZW5zYXQKZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3V0aW1lcy5TIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvdXRpbWVzLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNlMWU0NAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3V0aW1lcy5TCkBAIC0wLDAgKzEsMjIgQEAKKy8qIGF1dG9nZW5lcmF0ZWQgYnkgZ2Vuc3lzY2FsbHMucHkgKi8KKyNpbmNsdWRlIDxzeXMvbGludXgtc3lzY2FsbHMuaD4KKyAgICAudGV4dAorICAgIC5nbG9ibCB1dGltZXMKKyAgICAuYWxpZ24gNAorICAgIC5lbnQgdXRpbWVzCisKK3V0aW1lczoKKyAgICAuc2V0IG5vcmVvcmRlcgorICAgIC5jcGxvYWQgJHQ5CisgICAgbGkgJHYwLCBfX05SX3V0aW1lcworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kIHV0aW1lcwpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvd3JpdGUuUyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3dyaXRlLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTc3MmFjZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMvYXJjaC1taXBzL3N5c2NhbGxzL3dyaXRlLlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHdyaXRlCisgICAgLmFsaWduIDQKKyAgICAuZW50IHdyaXRlCisKK3dyaXRlOgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfd3JpdGUKKyAgICBzeXNjYWxsCisgICAgYm5leiAkYTMsIDFmCisgICAgbW92ZSAkYTAsICR2MAorICAgIGogJHJhCisgICAgbm9wCisxOgorICAgIGxhICR0OSxfX3NldF9lcnJubworICAgIGogJHQ5CisgICAgbm9wCisgICAgLnNldCByZW9yZGVyCisgICAgLmVuZCB3cml0ZQpkaWZmIC0tZ2l0IGEvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvd3JpdGV2LlMgYi9saWJjL2FyY2gtbWlwcy9zeXNjYWxscy93cml0ZXYuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZGFjYjQyCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9hcmNoLW1pcHMvc3lzY2FsbHMvd3JpdGV2LlMKQEAgLTAsMCArMSwyMiBAQAorLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLworI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgorICAgIC50ZXh0CisgICAgLmdsb2JsIHdyaXRldgorICAgIC5hbGlnbiA0CisgICAgLmVudCB3cml0ZXYKKword3JpdGV2OgorICAgIC5zZXQgbm9yZW9yZGVyCisgICAgLmNwbG9hZCAkdDkKKyAgICBsaSAkdjAsIF9fTlJfd3JpdGV2CisgICAgc3lzY2FsbAorICAgIGJuZXogJGEzLCAxZgorICAgIG1vdmUgJGEwLCAkdjAKKyAgICBqICRyYQorICAgIG5vcAorMToKKyAgICBsYSAkdDksX19zZXRfZXJybm8KKyAgICBqICR0OQorICAgIG5vcAorICAgIC5zZXQgcmVvcmRlcgorICAgIC5lbmQgd3JpdGV2CmRpZmYgLS1naXQgYS9saWJjL2FyY2gtc2gvc3lzY2FsbHMvcGVyc29uYWxpdHkuUyBiL2xpYmMvYXJjaC1zaC9zeXNjYWxscy9wZXJzb25hbGl0eS5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZmMyZWEzLi4wMDAwMDAwCi0tLSBhL2xpYmMvYXJjaC1zaC9zeXNjYWxscy9wZXJzb25hbGl0eS5TCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotLyogYXV0b2dlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSAqLwotI2luY2x1ZGUgPHN5cy9saW51eC1zeXNjYWxscy5oPgotCi0gICAgLnRleHQKLSAgICAudHlwZSBwZXJzb25hbGl0eSwgQGZ1bmN0aW9uCi0gICAgLmdsb2JsIHBlcnNvbmFsaXR5Ci0gICAgLmFsaWduIDQKLQotcGVyc29uYWxpdHk6Ci0KLSAgICAvKiBpbnZva2UgdHJhcCAqLwotICAgIG1vdi5sICAgMGYsIHIzICAvKiB0cmFwIG51bSAqLwotICAgIHRyYXBhICAgIygxICsgMHgxMCkKLQotICAgIC8qIGNoZWNrIHJldHVybiB2YWx1ZSAqLwotICAgIGNtcC9weiAgcjAKLSAgICBidCAgICAgIF9fTlJfcGVyc29uYWxpdHlfZW5kCi0KLSAgICAvKiBrZWVwIGVycm9yIG51bWJlciAqLwotICAgIHN0cy5sICAgcHIsIEAtcjE1Ci0gICAgbW92LmwgICAxZiwgcjEKLSAgICBqc3IgICAgIEByMQotICAgIG1vdiAgICAgcjAsIHI0Ci0gICAgbGRzLmwgICBAcjE1KywgcHIKLQotX19OUl9wZXJzb25hbGl0eV9lbmQ6Ci0gICAgcnRzCi0gICAgbm9wCi0KLSAgICAuYWxpZ24gIDIKLTA6ICAubG9uZyAgIF9fTlJfcGVyc29uYWxpdHkKLTE6ICAubG9uZyAgIF9fc2V0X3N5c2NhbGxfZXJybm8KZGlmZiAtLWdpdCBhL2xpYmMvYXJjaC14ODYvc3RyaW5nL3Nzc2UzLW1lbWNweTUuUyBiL2xpYmMvYXJjaC14ODYvc3RyaW5nL3Nzc2UzLW1lbWNweTUuUwppbmRleCAxYmY2ZDIyLi5iMDYxMmE2IDEwMDY0NAotLS0gYS9saWJjL2FyY2gteDg2L3N0cmluZy9zc3NlMy1tZW1jcHk1LlMKKysrIGIvbGliYy9hcmNoLXg4Ni9zdHJpbmcvc3NzZTMtbWVtY3B5NS5TCkBAIC0yOSwyMyArMjksMTkgQEAKICovCiAKICNpZm5kZWYgTUVNQ1BZCi0jIGRlZmluZSBNRU1DUFkgICAgICAgICBzc3NlM19tZW1jcHk1CisjIGRlZmluZSBNRU1DUFkJc3NzZTNfbWVtY3B5NQogI2VuZGlmCiAKICNpZm5kZWYgTAogIyBkZWZpbmUgTChsYWJlbCkJLkwjI2xhYmVsCiAjZW5kaWYKIAotI2lmbmRlZiBBTElHTgotIyBkZWZpbmUgQUxJR04obikJLnAyYWxpZ24gbgotI2VuZGlmCi0KICNpZm5kZWYgY2ZpX3N0YXJ0cHJvYwotIyBkZWZpbmUgY2ZpX3N0YXJ0cHJvYwkJCS5jZmlfc3RhcnRwcm9jCisjIGRlZmluZSBjZmlfc3RhcnRwcm9jCS5jZmlfc3RhcnRwcm9jCiAjZW5kaWYKIAogI2lmbmRlZiBjZmlfZW5kcHJvYwotIyBkZWZpbmUgY2ZpX2VuZHByb2MJCQkuY2ZpX2VuZHByb2MKKyMgZGVmaW5lIGNmaV9lbmRwcm9jCS5jZmlfZW5kcHJvYwogI2VuZGlmCiAKICNpZm5kZWYgY2ZpX3JlbF9vZmZzZXQKQEAgLTUzLDMzICs0OSwyNSBAQAogI2VuZGlmCiAKICNpZm5kZWYgY2ZpX3Jlc3RvcmUKLSMgZGVmaW5lIGNmaV9yZXN0b3JlKHJlZykJCS5jZmlfcmVzdG9yZSByZWcKKyMgZGVmaW5lIGNmaV9yZXN0b3JlKHJlZykJLmNmaV9yZXN0b3JlIHJlZwogI2VuZGlmCiAKICNpZm5kZWYgY2ZpX2FkanVzdF9jZmFfb2Zmc2V0CiAjIGRlZmluZSBjZmlfYWRqdXN0X2NmYV9vZmZzZXQob2ZmKQkuY2ZpX2FkanVzdF9jZmFfb2Zmc2V0IG9mZgogI2VuZGlmCiAKLSNpZm5kZWYgY2ZpX3JlbWVtYmVyX3N0YXRlCi0jIGRlZmluZSBjZmlfcmVtZW1iZXJfc3RhdGUJCS5jZmlfcmVtZW1iZXJfc3RhdGUKLSNlbmRpZgotCi0jaWZuZGVmIGNmaV9yZXN0b3JlX3N0YXRlCi0jIGRlZmluZSBjZmlfcmVzdG9yZV9zdGF0ZQkJLmNmaV9yZXN0b3JlX3N0YXRlCi0jZW5kaWYKLQogI2lmbmRlZiBFTlRSWQotIyBkZWZpbmUgRU5UUlkobmFtZSkJCQlcCi0JLnR5cGUgbmFtZSwgIEBmdW5jdGlvbjsgCVwKLQkuZ2xvYmwgbmFtZTsJCQlcCi0JLnAyYWxpZ24gNDsJCQlcCi1uYW1lOgkJCQkJXAorIyBkZWZpbmUgRU5UUlkobmFtZSkJCVwKKwkudHlwZSBuYW1lLCAgQGZ1bmN0aW9uOwkJXAorCS5nbG9ibCBuYW1lOwkJXAorCS5wMmFsaWduIDQ7CQlcCituYW1lOgkJXAogCWNmaV9zdGFydHByb2MKICNlbmRpZgogCiAjaWZuZGVmIEVORAotIyBkZWZpbmUgRU5EKG5hbWUpCQkJXAotCWNmaV9lbmRwcm9jOwkJCVwKKyMgZGVmaW5lIEVORChuYW1lKQkJXAorCWNmaV9lbmRwcm9jOwkJXAogCS5zaXplIG5hbWUsIC4tbmFtZQogI2VuZGlmCiAKQEAgLTkzLDEyICs4MSwxMiBAQAogIyBkZWZpbmUgTEVOCQlTUkMrNAogI2VuZGlmCiAKLSNkZWZpbmUgQ0ZJX1BVU0goUkVHKQkJCQkJCVwKLSAgY2ZpX2FkanVzdF9jZmFfb2Zmc2V0ICg0KTsJCQkJCVwKKyNkZWZpbmUgQ0ZJX1BVU0goUkVHKQkJXAorICBjZmlfYWRqdXN0X2NmYV9vZmZzZXQgKDQpOwkJXAogICBjZmlfcmVsX29mZnNldCAoUkVHLCAwKQogCi0jZGVmaW5lIENGSV9QT1AoUkVHKQkJCQkJCVwKLSAgY2ZpX2FkanVzdF9jZmFfb2Zmc2V0ICgtNCk7CQkJCQlcCisjZGVmaW5lIENGSV9QT1AoUkVHKQkJXAorICBjZmlfYWRqdXN0X2NmYV9vZmZzZXQgKC00KTsJCVwKICAgY2ZpX3Jlc3RvcmUgKFJFRykKIAogI2RlZmluZSBQVVNIKFJFRykJcHVzaGwgUkVHOyBDRklfUFVTSCAoUkVHKQpAQCAtMTEwLDM4ICs5OCwyNiBAQAogIyBkZWZpbmUgUkVUVVJOX0VORAlQT1AgKCVlYngpOyByZXQKICMgZGVmaW5lIFJFVFVSTgkJUkVUVVJOX0VORDsgQ0ZJX1BVU0ggKCVlYngpCiAjIGRlZmluZSBKTVBUQkwoSSwgQikJSSAtIEIKKyMgdW5kZWYgX19pNjg2CisKKyMgZGVmaW5lIFNFVFVQX1BJQ19SRUcoeCkJY2FsbAlfX2k2ODYuZ2V0X3BjX3RodW5rLngKIAogLyogTG9hZCBhbiBlbnRyeSBpbiBhIGp1bXAgdGFibGUgaW50byBFQlggYW5kIGJyYW5jaCB0byBpdC4gIFRBQkxFIGlzIGEKLSAgIGp1bXAgdGFibGUgd2l0aCByZWxhdGl2ZSBvZmZzZXRzLiAgSU5ERVggaXMgYSByZWdpc3RlciBjb250YWlucyB0aGUKLSAgIGluZGV4IGludG8gdGhlIGp1bXAgdGFibGUuICAgU0NBTEUgaXMgdGhlIHNjYWxlIG9mIElOREVYLiAqLworCWp1bXAgdGFibGUgd2l0aCByZWxhdGl2ZSBvZmZzZXRzLiAgSU5ERVggaXMgYSByZWdpc3RlciBjb250YWlucyB0aGUKKwlpbmRleCBpbnRvIHRoZSBqdW1wIHRhYmxlLiAgIFNDQUxFIGlzIHRoZSBzY2FsZSBvZiBJTkRFWC4gKi8KKwogIyBkZWZpbmUgQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShUQUJMRSwgSU5ERVgsIFNDQUxFKQkJXAotICAgIC8qIFdlIGZpcnN0IGxvYWQgUEMgaW50byBFQlguICAqLwkJCQlcCi0gICAgY2FsbAlfX2k2ODYuZ2V0X3BjX3RodW5rLmJ4OwkJCQlcCi0gICAgLyogR2V0IHRoZSBhZGRyZXNzIG9mIHRoZSBqdW1wIHRhYmxlLiAgKi8JCQlcCi0gICAgYWRkbAkkKFRBQkxFIC0gLiksICVlYng7CQkJCVwKLSAgICAvKiBHZXQgdGhlIGVudHJ5IGFuZCBjb252ZXJ0IHRoZSByZWxhdGl2ZSBvZmZzZXQgdG8gdGhlCVwKLSAgICAgICBhYnNvbHV0ZSBhZGRyZXNzLiAgKi8JCQkJCVwKLSAgICBhZGRsCSglZWJ4LElOREVYLFNDQUxFKSwgJWVieDsJCQlcCi0gICAgLyogV2UgbG9hZGVkIHRoZSBqdW1wIHRhYmxlLiAgR28uICAqLwkJCVwKLSAgICBqbXAJCSolZWJ4Ci0KLSMgZGVmaW5lIEJSQU5DSF9UT19KTVBUQkxfRU5UUllfVkFMVUUoVEFCTEUpCQkJXAotICAgIGFkZGwJJChUQUJMRSAtIC4pLCAlZWJ4Ci0KLSMgZGVmaW5lIEJSQU5DSF9UT19KTVBUQkxfRU5UUllfVEFJTChUQUJMRSwgSU5ERVgsIFNDQUxFKQlcCi0gICAgYWRkbAkoJWVieCxJTkRFWCxTQ0FMRSksICVlYng7CQkJXAotICAgIC8qIFdlIGxvYWRlZCB0aGUganVtcCB0YWJsZS4gIEdvLiAgKi8JCQlcCi0gICAgam1wCQkqJWVieAotCi0JLnNlY3Rpb24JLmdudS5saW5rb25jZS50Ll9faTY4Ni5nZXRfcGNfdGh1bmsuYngsImF4IixAcHJvZ2JpdHMKLQkuZ2xvYmwJX19pNjg2LmdldF9wY190aHVuay5ieAotCS5oaWRkZW4JX19pNjg2LmdldF9wY190aHVuay5ieAotCUFMSUdOICg0KQotCS50eXBlCV9faTY4Ni5nZXRfcGNfdGh1bmsuYngsQGZ1bmN0aW9uCi1fX2k2ODYuZ2V0X3BjX3RodW5rLmJ4OgotCW1vdmwJKCVlc3ApLCAlZWJ4Ci0JcmV0CisgICAgLyogV2UgZmlyc3QgbG9hZCBQQyBpbnRvIEVCWC4gICovCQlcCisJU0VUVVBfUElDX1JFRyhieCk7CQlcCisgICAgLyogR2V0IHRoZSBhZGRyZXNzIG9mIHRoZSBqdW1wIHRhYmxlLiAgKi8JCVwKKwlhZGRsCSQoVEFCTEUgLSAuKSwgJWVieDsJCVwKKyAgICAvKiBHZXQgdGhlIGVudHJ5IGFuZCBjb252ZXJ0IHRoZSByZWxhdGl2ZSBvZmZzZXQgdG8gdGhlCQlcCisJYWJzb2x1dGUJYWRkcmVzcy4gICovCQlcCisJYWRkbAkoJWVieCwgSU5ERVgsIFNDQUxFKSwgJWVieDsJCVwKKyAgICAvKiBXZSBsb2FkZWQgdGhlIGp1bXAgdGFibGUuICBHby4gICovCQlcCisJam1wCSolZWJ4CiAjZWxzZQorCiAjIGRlZmluZSBQQVJNUwkJNAogIyBkZWZpbmUgRU5UUkFOQ0UKICMgZGVmaW5lIFJFVFVSTl9FTkQJcmV0CkBAIC0xNDksMTUgKzEyNSwxMSBAQAogIyBkZWZpbmUgSk1QVEJMKEksIEIpCUkKIAogLyogQnJhbmNoIHRvIGFuIGVudHJ5IGluIGEganVtcCB0YWJsZS4gIFRBQkxFIGlzIGEganVtcCB0YWJsZSB3aXRoCi0gICBhYnNvbHV0ZSBvZmZzZXRzLiAgSU5ERVggaXMgYSByZWdpc3RlciBjb250YWlucyB0aGUgaW5kZXggaW50byB0aGUKLSAgIGp1bXAgdGFibGUuICBTQ0FMRSBpcyB0aGUgc2NhbGUgb2YgSU5ERVguICovCisJYWJzb2x1dGUgb2Zmc2V0cy4gIElOREVYIGlzIGEgcmVnaXN0ZXIgY29udGFpbnMgdGhlIGluZGV4IGludG8gdGhlCisJanVtcCB0YWJsZS4gIFNDQUxFIGlzIHRoZSBzY2FsZSBvZiBJTkRFWC4gKi8KKwogIyBkZWZpbmUgQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShUQUJMRSwgSU5ERVgsIFNDQUxFKQkJXAotICAgIGptcAkJKlRBQkxFKCxJTkRFWCxTQ0FMRSkKLQotIyBkZWZpbmUgQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9WQUxVRShUQUJMRSkKLQotIyBkZWZpbmUgQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9UQUlMKFRBQkxFLCBJTkRFWCwgU0NBTEUpCQlcCi0gICAgam1wCQkqVEFCTEUoLElOREVYLFNDQUxFKQorCWptcAkqVEFCTEUoLCBJTkRFWCwgU0NBTEUpCiAjZW5kaWYKIAogCS5zZWN0aW9uIC50ZXh0LnNzc2UzLCJheCIsQHByb2diaXRzCkBAIC0xNzQsNiArMTQ2LDggQEAKIAljbXAJJDMyLCAlZWN4CiAJamFlCUwobWVtbW92ZV9id2QpCiAJam1wCUwoYmtfd3JpdGVfbGVzczMyYnl0ZXNfMikKKworCS5wMmFsaWduIDQKIEwobWVtbW92ZV9id2QpOgogCWFkZAklZWN4LCAlZWF4CiAJY21wCSVlYXgsICVlZHgKQEAgLTE5NCwyMSArMTY4LDI1IEBACiAJYWRkCSVlY3gsICVlYXgKIAlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZIChMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKICNpZm5kZWYgVVNFX0FTX01FTU1PVkUKKwkucDJhbGlnbiA0CiBMKGJrX3dyaXRlKToKIAlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZIChMKHRhYmxlXzQ4X2J5dGVzX2J3ZCksICVlY3gsIDQpCiAjZW5kaWYKIAotCUFMSUdOICg0KQotLyogRUNYID4gMzIgYW5kIEVEWCBpcyA0IGJ5dGUgYWxpZ25lZC4gICovCisJLnAyYWxpZ24gNAogTCg0OGJ5dGVzb3Jtb3JlKToKKyNpZm5kZWYgVVNFX0FTX01FTU1PVkUKKwltb3ZscGQJKCVlYXgpLCAleG1tMAorCW1vdmxwZAk4KCVlYXgpLCAleG1tMQorCW1vdmxwZAkleG1tMCwgKCVlZHgpCisJbW92bHBkCSV4bW0xLCA4KCVlZHgpCisjZWxzZQogCW1vdmRxdQkoJWVheCksICV4bW0wCisjZW5kaWYKIAlQVVNIICglZWRpKQogCW1vdmwJJWVkeCwgJWVkaQogCWFuZAkkLTE2LCAlZWR4Ci0JUFVTSCAoJWVzaSkKLQljZmlfcmVtZW1iZXJfc3RhdGUKIAlhZGQJJDE2LCAlZWR4Ci0JbW92bAklZWRpLCAlZXNpCiAJc3ViCSVlZHgsICVlZGkKIAlhZGQJJWVkaSwgJWVjeAogCXN1YgklZWRpLCAlZWF4CkBAIC0yMTcsNyArMTk1LDcgQEAKIAljbXAJJFNIQVJFRF9DQUNIRV9TSVpFX0hBTEYsICVlY3gKICNlbHNlCiAjIGlmIChkZWZpbmVkIFNIQVJFRCB8fCBkZWZpbmVkIF9fUElDX18pCi0JY2FsbAlfX2k2ODYuZ2V0X3BjX3RodW5rLmJ4CisJU0VUVVBfUElDX1JFRyhieCkKIAlhZGQJJF9HTE9CQUxfT0ZGU0VUX1RBQkxFXywgJWVieAogCWNtcAlfX3g4Nl9zaGFyZWRfY2FjaGVfc2l6ZV9oYWxmQEdPVE9GRiglZWJ4KSwgJWVjeAogIyBlbHNlCkBAIC0yMjksMTkgKzIwNywyMCBAQAogCWphZQlMKGxhcmdlX3BhZ2UpCiAJYW5kCSQweGYsICVlZGkKIAlqeglMKHNobF8wKQotCiAJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWSAoTChzaGxfdGFibGUpLCAlZWRpLCA0KQogCi0JY2ZpX3Jlc3RvcmVfc3RhdGUKLQljZmlfcmVtZW1iZXJfc3RhdGUKLQlBTElHTiAoNCkKKwkucDJhbGlnbiA0CiBMKHNobF8wKToKLQltb3ZkcXUJJXhtbTAsICglZXNpKQorI2lmZGVmIFVTRV9BU19NRU1NT1ZFCisJbW92bAlERVNUKzQoJWVzcCksICVlZGkKKwltb3ZkcXUJJXhtbTAsICglZWRpKQorI2VuZGlmCiAJeG9yCSVlZGksICVlZGkKLQlQT1AgKCVlc2kpCiAJY21wCSQxMjcsICVlY3gKIAlqYQlMKHNobF8wX2dvYmJsZSkKIAlsZWEJLTMyKCVlY3gpLCAlZWN4CisKKwkucDJhbGlnbiA0CiBMKHNobF8wX2xvb3ApOgogCW1vdmRxYQkoJWVheCwgJWVkaSksICV4bW0wCiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMQpAQCAtMjczLDMyICsyNTIsMzUgQEAKIAltb3ZkcWEJJXhtbTAsICglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMSwgMTYoJWVkeCwgJWVkaSkKIAlsZWEJMzIoJWVkaSksICVlZGkKKwogTChzaGxfMF9lbmQpOgogCWxlYQkzMiglZWN4KSwgJWVjeAogCWFkZAklZWN4LCAlZWRpCiAJYWRkCSVlZGksICVlZHgKIAlhZGQJJWVkaSwgJWVheAogCVBPUCAoJWVkaSkKLQlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZIChMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZIChMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSwgJWVjeCwgNCkKIAogCUNGSV9QVVNIICglZWRpKQotTChzaGxfMF9nb2JibGUpOgogCisJLnAyYWxpZ24gNAorTChzaGxfMF9nb2JibGUpOgogI2lmZGVmIERBVEFfQ0FDSEVfU0laRV9IQUxGCiAJY21wCSREQVRBX0NBQ0hFX1NJWkVfSEFMRiwgJWVjeAogI2Vsc2UKICMgaWYgKGRlZmluZWQgU0hBUkVEIHx8IGRlZmluZWQgX19QSUNfXykKLQljYWxsCV9faTY4Ni5nZXRfcGNfdGh1bmsuYngKKwlTRVRVUF9QSUNfUkVHKGJ4KQogCWFkZAkkX0dMT0JBTF9PRkZTRVRfVEFCTEVfLCAlZWJ4CiAJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmQEdPVE9GRiglZWJ4KSwgJWVjeAogIyBlbHNlCiAJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmLCAlZWN4CiAjIGVuZGlmCiAjZW5kaWYKLQotCVBPUCAoJWVkaSkKKwlQT1AJKCVlZGkpCiAJbGVhCS0xMjgoJWVjeCksICVlY3gKIAlqYWUJTChzaGxfMF9nb2JibGVfbWVtX2xvb3ApCisKKwkucDJhbGlnbiA0CiBMKHNobF8wX2dvYmJsZV9jYWNoZV9sb29wKToKIAltb3ZkcWEJKCVlYXgpLCAleG1tMAogCW1vdmRxYQkweDEwKCVlYXgpLCAleG1tMQpAQCAtMzI4LDE3ICszMTAsMTUgQEAKIAltb3ZkcWEJKCVlYXgpLCAleG1tMAogCXN1YgkkMHg0MCwgJWVjeAogCW1vdmRxYQkweDEwKCVlYXgpLCAleG1tMQotCiAJbW92ZHFhCSV4bW0wLCAoJWVkeCkKIAltb3ZkcWEJJXhtbTEsIDB4MTAoJWVkeCkKLQogCW1vdmRxYQkweDIwKCVlYXgpLCAleG1tMAogCW1vdmRxYQkweDMwKCVlYXgpLCAleG1tMQogCWFkZAkkMHg0MCwgJWVheAotCiAJbW92ZHFhCSV4bW0wLCAweDIwKCVlZHgpCiAJbW92ZHFhCSV4bW0xLCAweDMwKCVlZHgpCiAJYWRkCSQweDQwLCAlZWR4CisKIEwoc2hsXzBfY2FjaGVfbGVzc182NGJ5dGVzKToKIAljbXAJJDB4MjAsICVlY3gKIAlqYglMKHNobF8wX2NhY2hlX2xlc3NfMzJieXRlcykKQEAgLTM0OSw2ICszMjksNyBAQAogCW1vdmRxYQkleG1tMCwgKCVlZHgpCiAJbW92ZHFhCSV4bW0xLCAweDEwKCVlZHgpCiAJYWRkCSQweDIwLCAlZWR4CisKIEwoc2hsXzBfY2FjaGVfbGVzc18zMmJ5dGVzKToKIAljbXAJJDB4MTAsICVlY3gKIAlqYglMKHNobF8wX2NhY2hlX2xlc3NfMTZieXRlcykKQEAgLTM1NywxMyArMzM4LDEzIEBACiAJYWRkCSQweDEwLCAlZWF4CiAJbW92ZHFhCSV4bW0wLCAoJWVkeCkKIAlhZGQJJDB4MTAsICVlZHgKKwogTChzaGxfMF9jYWNoZV9sZXNzXzE2Ynl0ZXMpOgogCWFkZAklZWN4LCAlZWR4CiAJYWRkCSVlY3gsICVlYXgKIAlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZIChMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKIAotCi0JQUxJR04gKDQpCisJLnAyYWxpZ24gNAogTChzaGxfMF9nb2JibGVfbWVtX2xvb3ApOgogCXByZWZldGNodDAgMHgxYzAoJWVheCkKIAlwcmVmZXRjaHQwIDB4MjgwKCVlYXgpCkBAIC00MDgsNiArMzg5LDcgQEAKIAltb3ZkcWEJJXhtbTAsIDB4MjAoJWVkeCkKIAltb3ZkcWEJJXhtbTEsIDB4MzAoJWVkeCkKIAlhZGQJJDB4NDAsICVlZHgKKwogTChzaGxfMF9tZW1fbGVzc182NGJ5dGVzKToKIAljbXAJJDB4MjAsICVlY3gKIAlqYglMKHNobF8wX21lbV9sZXNzXzMyYnl0ZXMpCkBAIC00MTgsNiArNDAwLDcgQEAKIAltb3ZkcWEJJXhtbTAsICglZWR4KQogCW1vdmRxYQkleG1tMSwgMHgxMCglZWR4KQogCWFkZAkkMHgyMCwgJWVkeAorCiBMKHNobF8wX21lbV9sZXNzXzMyYnl0ZXMpOgogCWNtcAkkMHgxMCwgJWVjeAogCWpiCUwoc2hsXzBfbWVtX2xlc3NfMTZieXRlcykKQEAgLTQyNiwyNCArNDA5LDg0IEBACiAJYWRkCSQweDEwLCAlZWF4CiAJbW92ZHFhCSV4bW0wLCAoJWVkeCkKIAlhZGQJJDB4MTAsICVlZHgKKwogTChzaGxfMF9tZW1fbGVzc18xNmJ5dGVzKToKIAlhZGQJJWVjeCwgJWVkeAogCWFkZAklZWN4LCAlZWF4Ci0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWSAoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWSAoTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbiksICVlY3gsIDQpCiAKLQljZmlfcmVzdG9yZV9zdGF0ZQotCWNmaV9yZW1lbWJlcl9zdGF0ZQotCUFMSUdOICg0KQorCS5wMmFsaWduIDQKIEwoc2hsXzEpOgotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVkFMVUUoTCh0YWJsZV80OGJ5dGVzX2Z3ZCkpCi0JbGVhCS0xKCVlYXgpLCAlZWF4Ci0JbW92YXBzCSglZWF4KSwgJXhtbTEKLQl4b3IJJWVkaSwgJWVkaQotCWxlYQktMzIoJWVjeCksICVlY3gKLQltb3ZkcXUJJXhtbTAsICglZXNpKQotCVBPUCAoJWVzaSkKLUwoc2hsXzFfbG9vcCk6CisjaWZuZGVmIFVTRV9BU19NRU1NT1ZFCisJbW92YXBzCS0xKCVlYXgpLCAleG1tMQorI2Vsc2UKKwltb3ZsCURFU1QrNCglZXNwKSwgJWVkaQorCW1vdmFwcwktMSglZWF4KSwgJXhtbTEKKwltb3ZkcXUJJXhtbTAsICglZWRpKQorI2VuZGlmCisjaWZkZWYgREFUQV9DQUNIRV9TSVpFX0hBTEYKKwljbXAJJERBVEFfQ0FDSEVfU0laRV9IQUxGLCAlZWN4CisjZWxzZQorIyBpZiAoZGVmaW5lZCBTSEFSRUQgfHwgZGVmaW5lZCBfX1BJQ19fKQorCVNFVFVQX1BJQ19SRUcoYngpCisJYWRkCSRfR0xPQkFMX09GRlNFVF9UQUJMRV8sICVlYngKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGZAR09UT0ZGKCVlYngpLCAlZWN4CisjIGVsc2UKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGYsICVlY3gKKyMgZW5kaWYKKyNlbmRpZgorCWpiIEwoc2hfMV9ub19wcmVmZXRjaCkKIAorCWxlYQktNjQoJWVjeCksICVlY3gKKworCS5wMmFsaWduIDQKK0woU2hsMUxvb3BTdGFydCk6CisJcHJlZmV0Y2h0MCAweDFjMCglZWF4KQorCXByZWZldGNodDAgMHgxYzAoJWVkeCkKKwltb3ZhcHMJMTUoJWVheCksICV4bW0yCisJbW92YXBzCTMxKCVlYXgpLCAleG1tMworCW1vdmFwcwk0NyglZWF4KSwgJXhtbTQKKwltb3ZhcHMJNjMoJWVheCksICV4bW01CisJbW92YXBzCSV4bW01LCAleG1tNworCXBhbGlnbnIJJDEsICV4bW00LCAleG1tNQorCXBhbGlnbnIJJDEsICV4bW0zLCAleG1tNAorCW1vdmFwcwkleG1tNSwgNDgoJWVkeCkKKwlwYWxpZ25yCSQxLCAleG1tMiwgJXhtbTMKKwlsZWEJNjQoJWVheCksICVlYXgKKwlwYWxpZ25yCSQxLCAleG1tMSwgJXhtbTIKKwltb3ZhcHMJJXhtbTQsIDMyKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCW1vdmFwcwkleG1tNywgJXhtbTEKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCWxlYQk2NCglZWR4KSwgJWVkeAorCXN1YgkkNjQsICVlY3gKKwlqYQlMKFNobDFMb29wU3RhcnQpCisKK0woU2hsMUxvb3BMZWF2ZSk6CisJYWRkCSQzMiwgJWVjeAorCWpsZQlMKHNobF9lbmRfMCkKKworCW1vdmFwcwkxNSglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMzEoJWVheCksICV4bW0zCisJcGFsaWducgkkMSwgJXhtbTIsICV4bW0zCisJcGFsaWducgkkMSwgJXhtbTEsICV4bW0yCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwltb3ZhcHMJJXhtbTMsIDE2KCVlZHgpCisJbGVhCTMyKCVlZHgsICVlY3gpLCAlZWR4CisJbGVhCTMyKCVlYXgsICVlY3gpLCAlZWF4CisJUE9QICglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKK0woc2hfMV9ub19wcmVmZXRjaCk6CisJbGVhCS0zMiglZWN4KSwgJWVjeAorCWxlYQktMSglZWF4KSwgJWVheAorCXhvcgklZWRpLCAlZWRpCisKKwkucDJhbGlnbiA0CitMKHNoXzFfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKIAltb3ZkcWEJMzIoJWVheCwgJWVkaSksICV4bW0zCkBAIC00NTMsOCArNDk2LDcgQEAKIAlsZWEJMzIoJWVkaSksICVlZGkKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCi0KLQlqYglMKHNobF8xX2VuZCkKKwlqYglMKHNoXzFfZW5kX25vX3ByZWZldGNoX2xvb3ApCiAKIAltb3ZkcWEJMTYoJWVheCwgJWVkaSksICV4bW0yCiAJc3ViCSQzMiwgJWVjeApAQCAtNDY1LDMwICs1MDcsOTAgQEAKIAlsZWEJMzIoJWVkaSksICVlZGkKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCisJamFlCUwoc2hfMV9ub19wcmVmZXRjaF9sb29wKQogCi0JamFlCUwoc2hsXzFfbG9vcCkKLQotTChzaGxfMV9lbmQpOgorTChzaF8xX2VuZF9ub19wcmVmZXRjaF9sb29wKToKIAlsZWEJMzIoJWVjeCksICVlY3gKIAlhZGQJJWVjeCwgJWVkaQogCWFkZAklZWRpLCAlZWR4CiAJbGVhCTEoJWVkaSwgJWVheCksICVlYXgKLQlQT1AgKCVlZGkpCi0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9UQUlMKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCVBPUAkoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQogCi0JY2ZpX3Jlc3RvcmVfc3RhdGUKLQljZmlfcmVtZW1iZXJfc3RhdGUKLQlBTElHTiAoNCkKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKIEwoc2hsXzIpOgotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVkFMVUUoTCh0YWJsZV80OGJ5dGVzX2Z3ZCkpCi0JbGVhCS0yKCVlYXgpLCAlZWF4Ci0JbW92YXBzCSglZWF4KSwgJXhtbTEKLQl4b3IJJWVkaSwgJWVkaQotCWxlYQktMzIoJWVjeCksICVlY3gKLQltb3ZkcXUJJXhtbTAsICglZXNpKQotCVBPUCAoJWVzaSkKLUwoc2hsXzJfbG9vcCk6CisjaWZuZGVmIFVTRV9BU19NRU1NT1ZFCisJbW92YXBzCS0yKCVlYXgpLCAleG1tMQorI2Vsc2UKKwltb3ZsCURFU1QrNCglZXNwKSwgJWVkaQorCW1vdmFwcwktMiglZWF4KSwgJXhtbTEKKwltb3ZkcXUJJXhtbTAsICglZWRpKQorI2VuZGlmCisjaWZkZWYgREFUQV9DQUNIRV9TSVpFX0hBTEYKKwljbXAJJERBVEFfQ0FDSEVfU0laRV9IQUxGLCAlZWN4CisjZWxzZQorIyBpZiAoZGVmaW5lZCBTSEFSRUQgfHwgZGVmaW5lZCBfX1BJQ19fKQorCVNFVFVQX1BJQ19SRUcoYngpCisJYWRkCSRfR0xPQkFMX09GRlNFVF9UQUJMRV8sICVlYngKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGZAR09UT0ZGKCVlYngpLCAlZWN4CisjIGVsc2UKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGYsICVlY3gKKyMgZW5kaWYKKyNlbmRpZgorCWpiIEwoc2hfMl9ub19wcmVmZXRjaCkKIAorCWxlYQktNjQoJWVjeCksICVlY3gKKworCS5wMmFsaWduIDQKK0woU2hsMkxvb3BTdGFydCk6CisJcHJlZmV0Y2h0MCAweDFjMCglZWF4KQorCXByZWZldGNodDAgMHgxYzAoJWVkeCkKKwltb3ZhcHMJMTQoJWVheCksICV4bW0yCisJbW92YXBzCTMwKCVlYXgpLCAleG1tMworCW1vdmFwcwk0NiglZWF4KSwgJXhtbTQKKwltb3ZhcHMJNjIoJWVheCksICV4bW01CisJbW92YXBzCSV4bW01LCAleG1tNworCXBhbGlnbnIJJDIsICV4bW00LCAleG1tNQorCXBhbGlnbnIJJDIsICV4bW0zLCAleG1tNAorCW1vdmFwcwkleG1tNSwgNDgoJWVkeCkKKwlwYWxpZ25yCSQyLCAleG1tMiwgJXhtbTMKKwlsZWEJNjQoJWVheCksICVlYXgKKwlwYWxpZ25yCSQyLCAleG1tMSwgJXhtbTIKKwltb3ZhcHMJJXhtbTQsIDMyKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCW1vdmFwcwkleG1tNywgJXhtbTEKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCWxlYQk2NCglZWR4KSwgJWVkeAorCXN1YgkkNjQsICVlY3gKKwlqYQlMKFNobDJMb29wU3RhcnQpCisKK0woU2hsMkxvb3BMZWF2ZSk6CisJYWRkCSQzMiwgJWVjeAorCWpsZQlMKHNobF9lbmRfMCkKKworCW1vdmFwcwkxNCglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMzAoJWVheCksICV4bW0zCisJcGFsaWducgkkMiwgJXhtbTIsICV4bW0zCisJcGFsaWducgkkMiwgJXhtbTEsICV4bW0yCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwltb3ZhcHMJJXhtbTMsIDE2KCVlZHgpCisJbGVhCTMyKCVlZHgsICVlY3gpLCAlZWR4CisJbGVhCTMyKCVlYXgsICVlY3gpLCAlZWF4CisJUE9QICglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKK0woc2hfMl9ub19wcmVmZXRjaCk6CisJbGVhCS0zMiglZWN4KSwgJWVjeAorCWxlYQktMiglZWF4KSwgJWVheAorCXhvcgklZWRpLCAlZWRpCisKKwkucDJhbGlnbiA0CitMKHNoXzJfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKIAltb3ZkcWEJMzIoJWVheCwgJWVkaSksICV4bW0zCkBAIC00OTgsOCArNjAwLDcgQEAKIAlsZWEJMzIoJWVkaSksICVlZGkKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCi0KLQlqYglMKHNobF8yX2VuZCkKKwlqYglMKHNoXzJfZW5kX25vX3ByZWZldGNoX2xvb3ApCiAKIAltb3ZkcWEJMTYoJWVheCwgJWVkaSksICV4bW0yCiAJc3ViCSQzMiwgJWVjeApAQCAtNTEwLDMwICs2MTEsOTAgQEAKIAlsZWEJMzIoJWVkaSksICVlZGkKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCisJamFlCUwoc2hfMl9ub19wcmVmZXRjaF9sb29wKQogCi0JamFlCUwoc2hsXzJfbG9vcCkKLQotTChzaGxfMl9lbmQpOgorTChzaF8yX2VuZF9ub19wcmVmZXRjaF9sb29wKToKIAlsZWEJMzIoJWVjeCksICVlY3gKIAlhZGQJJWVjeCwgJWVkaQogCWFkZAklZWRpLCAlZWR4CiAJbGVhCTIoJWVkaSwgJWVheCksICVlYXgKLQlQT1AgKCVlZGkpCi0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9UQUlMKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCVBPUAkoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQogCi0JY2ZpX3Jlc3RvcmVfc3RhdGUKLQljZmlfcmVtZW1iZXJfc3RhdGUKLQlBTElHTiAoNCkKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKIEwoc2hsXzMpOgotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVkFMVUUoTCh0YWJsZV80OGJ5dGVzX2Z3ZCkpCi0JbGVhCS0zKCVlYXgpLCAlZWF4Ci0JbW92YXBzCSglZWF4KSwgJXhtbTEKLQl4b3IJJWVkaSwgJWVkaQotCWxlYQktMzIoJWVjeCksICVlY3gKLQltb3ZkcXUJJXhtbTAsICglZXNpKQotCVBPUCAoJWVzaSkKLUwoc2hsXzNfbG9vcCk6CisjaWZuZGVmIFVTRV9BU19NRU1NT1ZFCisJbW92YXBzCS0zKCVlYXgpLCAleG1tMQorI2Vsc2UKKwltb3ZsCURFU1QrNCglZXNwKSwgJWVkaQorCW1vdmFwcwktMyglZWF4KSwgJXhtbTEKKwltb3ZkcXUJJXhtbTAsICglZWRpKQorI2VuZGlmCisjaWZkZWYgREFUQV9DQUNIRV9TSVpFX0hBTEYKKwljbXAJJERBVEFfQ0FDSEVfU0laRV9IQUxGLCAlZWN4CisjZWxzZQorIyBpZiAoZGVmaW5lZCBTSEFSRUQgfHwgZGVmaW5lZCBfX1BJQ19fKQorCVNFVFVQX1BJQ19SRUcoYngpCisJYWRkCSRfR0xPQkFMX09GRlNFVF9UQUJMRV8sICVlYngKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGZAR09UT0ZGKCVlYngpLCAlZWN4CisjIGVsc2UKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGYsICVlY3gKKyMgZW5kaWYKKyNlbmRpZgorCWpiIEwoc2hfM19ub19wcmVmZXRjaCkKIAorCWxlYQktNjQoJWVjeCksICVlY3gKKworCS5wMmFsaWduIDQKK0woU2hsM0xvb3BTdGFydCk6CisJcHJlZmV0Y2h0MCAweDFjMCglZWF4KQorCXByZWZldGNodDAgMHgxYzAoJWVkeCkKKwltb3ZhcHMJMTMoJWVheCksICV4bW0yCisJbW92YXBzCTI5KCVlYXgpLCAleG1tMworCW1vdmFwcwk0NSglZWF4KSwgJXhtbTQKKwltb3ZhcHMJNjEoJWVheCksICV4bW01CisJbW92YXBzCSV4bW01LCAleG1tNworCXBhbGlnbnIJJDMsICV4bW00LCAleG1tNQorCXBhbGlnbnIJJDMsICV4bW0zLCAleG1tNAorCW1vdmFwcwkleG1tNSwgNDgoJWVkeCkKKwlwYWxpZ25yCSQzLCAleG1tMiwgJXhtbTMKKwlsZWEJNjQoJWVheCksICVlYXgKKwlwYWxpZ25yCSQzLCAleG1tMSwgJXhtbTIKKwltb3ZhcHMJJXhtbTQsIDMyKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCW1vdmFwcwkleG1tNywgJXhtbTEKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCWxlYQk2NCglZWR4KSwgJWVkeAorCXN1YgkkNjQsICVlY3gKKwlqYQlMKFNobDNMb29wU3RhcnQpCisKK0woU2hsM0xvb3BMZWF2ZSk6CisJYWRkCSQzMiwgJWVjeAorCWpsZQlMKHNobF9lbmRfMCkKKworCW1vdmFwcwkxMyglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMjkoJWVheCksICV4bW0zCisJcGFsaWducgkkMywgJXhtbTIsICV4bW0zCisJcGFsaWducgkkMywgJXhtbTEsICV4bW0yCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwltb3ZhcHMJJXhtbTMsIDE2KCVlZHgpCisJbGVhCTMyKCVlZHgsICVlY3gpLCAlZWR4CisJbGVhCTMyKCVlYXgsICVlY3gpLCAlZWF4CisJUE9QICglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKK0woc2hfM19ub19wcmVmZXRjaCk6CisJbGVhCS0zMiglZWN4KSwgJWVjeAorCWxlYQktMyglZWF4KSwgJWVheAorCXhvcgklZWRpLCAlZWRpCisKKwkucDJhbGlnbiA0CitMKHNoXzNfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKIAltb3ZkcWEJMzIoJWVheCwgJWVkaSksICV4bW0zCkBAIC01NDQsNyArNzA1LDcgQEAKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCiAKLQlqYglMKHNobF8zX2VuZCkKKwlqYglMKHNoXzNfZW5kX25vX3ByZWZldGNoX2xvb3ApCiAKIAltb3ZkcWEJMTYoJWVheCwgJWVkaSksICV4bW0yCiAJc3ViCSQzMiwgJWVjeApAQCAtNTU2LDI5ICs3MTcsOTAgQEAKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCiAKLQlqYWUJTChzaGxfM19sb29wKQorCWphZQlMKHNoXzNfbm9fcHJlZmV0Y2hfbG9vcCkKIAotTChzaGxfM19lbmQpOgorTChzaF8zX2VuZF9ub19wcmVmZXRjaF9sb29wKToKIAlsZWEJMzIoJWVjeCksICVlY3gKIAlhZGQJJWVjeCwgJWVkaQogCWFkZAklZWRpLCAlZWR4CiAJbGVhCTMoJWVkaSwgJWVheCksICVlYXgKLQlQT1AgKCVlZGkpCi0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9UQUlMKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCVBPUAkoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQogCi0JY2ZpX3Jlc3RvcmVfc3RhdGUKLQljZmlfcmVtZW1iZXJfc3RhdGUKLQlBTElHTiAoNCkKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKIEwoc2hsXzQpOgotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVkFMVUUoTCh0YWJsZV80OGJ5dGVzX2Z3ZCkpCi0JbGVhCS00KCVlYXgpLCAlZWF4Ci0JbW92YXBzCSglZWF4KSwgJXhtbTEKLQl4b3IJJWVkaSwgJWVkaQotCWxlYQktMzIoJWVjeCksICVlY3gKLQltb3ZkcXUJJXhtbTAsICglZXNpKQotCVBPUCAoJWVzaSkKLUwoc2hsXzRfbG9vcCk6CisjaWZuZGVmIFVTRV9BU19NRU1NT1ZFCisJbW92YXBzCS00KCVlYXgpLCAleG1tMQorI2Vsc2UKKwltb3ZsCURFU1QrNCglZXNwKSwgJWVkaQorCW1vdmFwcwktNCglZWF4KSwgJXhtbTEKKwltb3ZkcXUJJXhtbTAsICglZWRpKQorI2VuZGlmCisjaWZkZWYgREFUQV9DQUNIRV9TSVpFX0hBTEYKKwljbXAJJERBVEFfQ0FDSEVfU0laRV9IQUxGLCAlZWN4CisjZWxzZQorIyBpZiAoZGVmaW5lZCBTSEFSRUQgfHwgZGVmaW5lZCBfX1BJQ19fKQorCVNFVFVQX1BJQ19SRUcoYngpCisJYWRkCSRfR0xPQkFMX09GRlNFVF9UQUJMRV8sICVlYngKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGZAR09UT0ZGKCVlYngpLCAlZWN4CisjIGVsc2UKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGYsICVlY3gKKyMgZW5kaWYKKyNlbmRpZgorCWpiIEwoc2hfNF9ub19wcmVmZXRjaCkKIAorCWxlYQktNjQoJWVjeCksICVlY3gKKworCS5wMmFsaWduIDQKK0woU2hsNExvb3BTdGFydCk6CisJcHJlZmV0Y2h0MCAweDFjMCglZWF4KQorCXByZWZldGNodDAgMHgxYzAoJWVkeCkKKwltb3ZhcHMJMTIoJWVheCksICV4bW0yCisJbW92YXBzCTI4KCVlYXgpLCAleG1tMworCW1vdmFwcwk0NCglZWF4KSwgJXhtbTQKKwltb3ZhcHMJNjAoJWVheCksICV4bW01CisJbW92YXBzCSV4bW01LCAleG1tNworCXBhbGlnbnIJJDQsICV4bW00LCAleG1tNQorCXBhbGlnbnIJJDQsICV4bW0zLCAleG1tNAorCW1vdmFwcwkleG1tNSwgNDgoJWVkeCkKKwlwYWxpZ25yCSQ0LCAleG1tMiwgJXhtbTMKKwlsZWEJNjQoJWVheCksICVlYXgKKwlwYWxpZ25yCSQ0LCAleG1tMSwgJXhtbTIKKwltb3ZhcHMJJXhtbTQsIDMyKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCW1vdmFwcwkleG1tNywgJXhtbTEKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCWxlYQk2NCglZWR4KSwgJWVkeAorCXN1YgkkNjQsICVlY3gKKwlqYQlMKFNobDRMb29wU3RhcnQpCisKK0woU2hsNExvb3BMZWF2ZSk6CisJYWRkCSQzMiwgJWVjeAorCWpsZQlMKHNobF9lbmRfMCkKKworCW1vdmFwcwkxMiglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMjgoJWVheCksICV4bW0zCisJcGFsaWducgkkNCwgJXhtbTIsICV4bW0zCisJcGFsaWducgkkNCwgJXhtbTEsICV4bW0yCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwltb3ZhcHMJJXhtbTMsIDE2KCVlZHgpCisJbGVhCTMyKCVlZHgsICVlY3gpLCAlZWR4CisJbGVhCTMyKCVlYXgsICVlY3gpLCAlZWF4CisJUE9QICglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKK0woc2hfNF9ub19wcmVmZXRjaCk6CisJbGVhCS0zMiglZWN4KSwgJWVjeAorCWxlYQktNCglZWF4KSwgJWVheAorCXhvcgklZWRpLCAlZWRpCisKKwkucDJhbGlnbiA0CitMKHNoXzRfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKIAltb3ZkcWEJMzIoJWVheCwgJWVkaSksICV4bW0zCkBAIC01ODksNyArODExLDcgQEAKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCiAKLQlqYglMKHNobF80X2VuZCkKKwlqYglMKHNoXzRfZW5kX25vX3ByZWZldGNoX2xvb3ApCiAKIAltb3ZkcWEJMTYoJWVheCwgJWVkaSksICV4bW0yCiAJc3ViCSQzMiwgJWVjeApAQCAtNjAxLDI5ICs4MjMsOTAgQEAKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCiAKLQlqYWUJTChzaGxfNF9sb29wKQorCWphZQlMKHNoXzRfbm9fcHJlZmV0Y2hfbG9vcCkKIAotTChzaGxfNF9lbmQpOgorTChzaF80X2VuZF9ub19wcmVmZXRjaF9sb29wKToKIAlsZWEJMzIoJWVjeCksICVlY3gKIAlhZGQJJWVjeCwgJWVkaQogCWFkZAklZWRpLCAlZWR4CiAJbGVhCTQoJWVkaSwgJWVheCksICVlYXgKLQlQT1AgKCVlZGkpCi0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9UQUlMKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCVBPUAkoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQogCi0JY2ZpX3Jlc3RvcmVfc3RhdGUKLQljZmlfcmVtZW1iZXJfc3RhdGUKLQlBTElHTiAoNCkKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKIEwoc2hsXzUpOgotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVkFMVUUoTCh0YWJsZV80OGJ5dGVzX2Z3ZCkpCi0JbGVhCS01KCVlYXgpLCAlZWF4Ci0JbW92YXBzCSglZWF4KSwgJXhtbTEKLQl4b3IJJWVkaSwgJWVkaQotCWxlYQktMzIoJWVjeCksICVlY3gKLQltb3ZkcXUJJXhtbTAsICglZXNpKQotCVBPUCAoJWVzaSkKLUwoc2hsXzVfbG9vcCk6CisjaWZuZGVmIFVTRV9BU19NRU1NT1ZFCisJbW92YXBzCS01KCVlYXgpLCAleG1tMQorI2Vsc2UKKwltb3ZsCURFU1QrNCglZXNwKSwgJWVkaQorCW1vdmFwcwktNSglZWF4KSwgJXhtbTEKKwltb3ZkcXUJJXhtbTAsICglZWRpKQorI2VuZGlmCisjaWZkZWYgREFUQV9DQUNIRV9TSVpFX0hBTEYKKwljbXAJJERBVEFfQ0FDSEVfU0laRV9IQUxGLCAlZWN4CisjZWxzZQorIyBpZiAoZGVmaW5lZCBTSEFSRUQgfHwgZGVmaW5lZCBfX1BJQ19fKQorCVNFVFVQX1BJQ19SRUcoYngpCisJYWRkCSRfR0xPQkFMX09GRlNFVF9UQUJMRV8sICVlYngKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGZAR09UT0ZGKCVlYngpLCAlZWN4CisjIGVsc2UKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGYsICVlY3gKKyMgZW5kaWYKKyNlbmRpZgorCWpiIEwoc2hfNV9ub19wcmVmZXRjaCkKIAorCWxlYQktNjQoJWVjeCksICVlY3gKKworCS5wMmFsaWduIDQKK0woU2hsNUxvb3BTdGFydCk6CisJcHJlZmV0Y2h0MCAweDFjMCglZWF4KQorCXByZWZldGNodDAgMHgxYzAoJWVkeCkKKwltb3ZhcHMJMTEoJWVheCksICV4bW0yCisJbW92YXBzCTI3KCVlYXgpLCAleG1tMworCW1vdmFwcwk0MyglZWF4KSwgJXhtbTQKKwltb3ZhcHMJNTkoJWVheCksICV4bW01CisJbW92YXBzCSV4bW01LCAleG1tNworCXBhbGlnbnIJJDUsICV4bW00LCAleG1tNQorCXBhbGlnbnIJJDUsICV4bW0zLCAleG1tNAorCW1vdmFwcwkleG1tNSwgNDgoJWVkeCkKKwlwYWxpZ25yCSQ1LCAleG1tMiwgJXhtbTMKKwlsZWEJNjQoJWVheCksICVlYXgKKwlwYWxpZ25yCSQ1LCAleG1tMSwgJXhtbTIKKwltb3ZhcHMJJXhtbTQsIDMyKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCW1vdmFwcwkleG1tNywgJXhtbTEKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCWxlYQk2NCglZWR4KSwgJWVkeAorCXN1YgkkNjQsICVlY3gKKwlqYQlMKFNobDVMb29wU3RhcnQpCisKK0woU2hsNUxvb3BMZWF2ZSk6CisJYWRkCSQzMiwgJWVjeAorCWpsZQlMKHNobF9lbmRfMCkKKworCW1vdmFwcwkxMSglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMjcoJWVheCksICV4bW0zCisJcGFsaWducgkkNSwgJXhtbTIsICV4bW0zCisJcGFsaWducgkkNSwgJXhtbTEsICV4bW0yCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwltb3ZhcHMJJXhtbTMsIDE2KCVlZHgpCisJbGVhCTMyKCVlZHgsICVlY3gpLCAlZWR4CisJbGVhCTMyKCVlYXgsICVlY3gpLCAlZWF4CisJUE9QICglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKK0woc2hfNV9ub19wcmVmZXRjaCk6CisJbGVhCS0zMiglZWN4KSwgJWVjeAorCWxlYQktNSglZWF4KSwgJWVheAorCXhvcgklZWRpLCAlZWRpCisKKwkucDJhbGlnbiA0CitMKHNoXzVfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKIAltb3ZkcWEJMzIoJWVheCwgJWVkaSksICV4bW0zCkBAIC02MzQsNyArOTE3LDcgQEAKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCiAKLQlqYglMKHNobF81X2VuZCkKKwlqYglMKHNoXzVfZW5kX25vX3ByZWZldGNoX2xvb3ApCiAKIAltb3ZkcWEJMTYoJWVheCwgJWVkaSksICV4bW0yCiAJc3ViCSQzMiwgJWVjeApAQCAtNjQ2LDI5ICs5MjksOTAgQEAKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCiAKLQlqYWUJTChzaGxfNV9sb29wKQorCWphZQlMKHNoXzVfbm9fcHJlZmV0Y2hfbG9vcCkKIAotTChzaGxfNV9lbmQpOgorTChzaF81X2VuZF9ub19wcmVmZXRjaF9sb29wKToKIAlsZWEJMzIoJWVjeCksICVlY3gKIAlhZGQJJWVjeCwgJWVkaQogCWFkZAklZWRpLCAlZWR4CiAJbGVhCTUoJWVkaSwgJWVheCksICVlYXgKLQlQT1AgKCVlZGkpCi0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9UQUlMKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCVBPUAkoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQogCi0JY2ZpX3Jlc3RvcmVfc3RhdGUKLQljZmlfcmVtZW1iZXJfc3RhdGUKLQlBTElHTiAoNCkKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKIEwoc2hsXzYpOgotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVkFMVUUoTCh0YWJsZV80OGJ5dGVzX2Z3ZCkpCi0JbGVhCS02KCVlYXgpLCAlZWF4Ci0JbW92YXBzCSglZWF4KSwgJXhtbTEKLQl4b3IJJWVkaSwgJWVkaQotCWxlYQktMzIoJWVjeCksICVlY3gKLQltb3ZkcXUJJXhtbTAsICglZXNpKQotCVBPUCAoJWVzaSkKLUwoc2hsXzZfbG9vcCk6CisjaWZuZGVmIFVTRV9BU19NRU1NT1ZFCisJbW92YXBzCS02KCVlYXgpLCAleG1tMQorI2Vsc2UKKwltb3ZsCURFU1QrNCglZXNwKSwgJWVkaQorCW1vdmFwcwktNiglZWF4KSwgJXhtbTEKKwltb3ZkcXUJJXhtbTAsICglZWRpKQorI2VuZGlmCisjaWZkZWYgREFUQV9DQUNIRV9TSVpFX0hBTEYKKwljbXAJJERBVEFfQ0FDSEVfU0laRV9IQUxGLCAlZWN4CisjZWxzZQorIyBpZiAoZGVmaW5lZCBTSEFSRUQgfHwgZGVmaW5lZCBfX1BJQ19fKQorCVNFVFVQX1BJQ19SRUcoYngpCisJYWRkCSRfR0xPQkFMX09GRlNFVF9UQUJMRV8sICVlYngKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGZAR09UT0ZGKCVlYngpLCAlZWN4CisjIGVsc2UKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGYsICVlY3gKKyMgZW5kaWYKKyNlbmRpZgorCWpiIEwoc2hfNl9ub19wcmVmZXRjaCkKIAorCWxlYQktNjQoJWVjeCksICVlY3gKKworCS5wMmFsaWduIDQKK0woU2hsNkxvb3BTdGFydCk6CisJcHJlZmV0Y2h0MCAweDFjMCglZWF4KQorCXByZWZldGNodDAgMHgxYzAoJWVkeCkKKwltb3ZhcHMJMTAoJWVheCksICV4bW0yCisJbW92YXBzCTI2KCVlYXgpLCAleG1tMworCW1vdmFwcwk0MiglZWF4KSwgJXhtbTQKKwltb3ZhcHMJNTgoJWVheCksICV4bW01CisJbW92YXBzCSV4bW01LCAleG1tNworCXBhbGlnbnIJJDYsICV4bW00LCAleG1tNQorCXBhbGlnbnIJJDYsICV4bW0zLCAleG1tNAorCW1vdmFwcwkleG1tNSwgNDgoJWVkeCkKKwlwYWxpZ25yCSQ2LCAleG1tMiwgJXhtbTMKKwlsZWEJNjQoJWVheCksICVlYXgKKwlwYWxpZ25yCSQ2LCAleG1tMSwgJXhtbTIKKwltb3ZhcHMJJXhtbTQsIDMyKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCW1vdmFwcwkleG1tNywgJXhtbTEKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCWxlYQk2NCglZWR4KSwgJWVkeAorCXN1YgkkNjQsICVlY3gKKwlqYQlMKFNobDZMb29wU3RhcnQpCisKK0woU2hsNkxvb3BMZWF2ZSk6CisJYWRkCSQzMiwgJWVjeAorCWpsZQlMKHNobF9lbmRfMCkKKworCW1vdmFwcwkxMCglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMjYoJWVheCksICV4bW0zCisJcGFsaWducgkkNiwgJXhtbTIsICV4bW0zCisJcGFsaWducgkkNiwgJXhtbTEsICV4bW0yCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwltb3ZhcHMJJXhtbTMsIDE2KCVlZHgpCisJbGVhCTMyKCVlZHgsICVlY3gpLCAlZWR4CisJbGVhCTMyKCVlYXgsICVlY3gpLCAlZWF4CisJUE9QICglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKK0woc2hfNl9ub19wcmVmZXRjaCk6CisJbGVhCS0zMiglZWN4KSwgJWVjeAorCWxlYQktNiglZWF4KSwgJWVheAorCXhvcgklZWRpLCAlZWRpCisKKwkucDJhbGlnbiA0CitMKHNoXzZfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKIAltb3ZkcWEJMzIoJWVheCwgJWVkaSksICV4bW0zCkBAIC02NzksNyArMTAyMyw3IEBACiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQogCi0JamIJTChzaGxfNl9lbmQpCisJamIJTChzaF82X2VuZF9ub19wcmVmZXRjaF9sb29wKQogCiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKQEAgLTY5MSwyOSArMTAzNSw5MCBAQAogCW1vdmRxYQkleG1tMiwgLTMyKCVlZHgsICVlZGkpCiAJbW92ZHFhCSV4bW0zLCAtMTYoJWVkeCwgJWVkaSkKIAotCWphZQlMKHNobF82X2xvb3ApCisJamFlCUwoc2hfNl9ub19wcmVmZXRjaF9sb29wKQogCi1MKHNobF82X2VuZCk6CitMKHNoXzZfZW5kX25vX3ByZWZldGNoX2xvb3ApOgogCWxlYQkzMiglZWN4KSwgJWVjeAogCWFkZAklZWN4LCAlZWRpCiAJYWRkCSVlZGksICVlZHgKIAlsZWEJNiglZWRpLCAlZWF4KSwgJWVheAotCVBPUCAoJWVkaSkKLQlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZX1RBSUwoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisJUE9QCSglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCiAKLQljZmlfcmVzdG9yZV9zdGF0ZQotCWNmaV9yZW1lbWJlcl9zdGF0ZQotCUFMSUdOICg0KQorCUNGSV9QVVNIICglZWRpKQorCisJLnAyYWxpZ24gNAogTChzaGxfNyk6Ci0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9WQUxVRShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSkKLQlsZWEJLTcoJWVheCksICVlYXgKLQltb3ZhcHMJKCVlYXgpLCAleG1tMQotCXhvcgklZWRpLCAlZWRpCi0JbGVhCS0zMiglZWN4KSwgJWVjeAotCW1vdmRxdQkleG1tMCwgKCVlc2kpCi0JUE9QICglZXNpKQotTChzaGxfN19sb29wKToKKyNpZm5kZWYgVVNFX0FTX01FTU1PVkUKKwltb3ZhcHMJLTcoJWVheCksICV4bW0xCisjZWxzZQorCW1vdmwJREVTVCs0KCVlc3ApLCAlZWRpCisJbW92YXBzCS03KCVlYXgpLCAleG1tMQorCW1vdmRxdQkleG1tMCwgKCVlZGkpCisjZW5kaWYKKyNpZmRlZiBEQVRBX0NBQ0hFX1NJWkVfSEFMRgorCWNtcAkkREFUQV9DQUNIRV9TSVpFX0hBTEYsICVlY3gKKyNlbHNlCisjIGlmIChkZWZpbmVkIFNIQVJFRCB8fCBkZWZpbmVkIF9fUElDX18pCisJU0VUVVBfUElDX1JFRyhieCkKKwlhZGQJJF9HTE9CQUxfT0ZGU0VUX1RBQkxFXywgJWVieAorCWNtcAlfX3g4Nl9kYXRhX2NhY2hlX3NpemVfaGFsZkBHT1RPRkYoJWVieCksICVlY3gKKyMgZWxzZQorCWNtcAlfX3g4Nl9kYXRhX2NhY2hlX3NpemVfaGFsZiwgJWVjeAorIyBlbmRpZgorI2VuZGlmCisJamIgTChzaF83X25vX3ByZWZldGNoKQogCisJbGVhCS02NCglZWN4KSwgJWVjeAorCisJLnAyYWxpZ24gNAorTChTaGw3TG9vcFN0YXJ0KToKKwlwcmVmZXRjaHQwIDB4MWMwKCVlYXgpCisJcHJlZmV0Y2h0MCAweDFjMCglZWR4KQorCW1vdmFwcwk5KCVlYXgpLCAleG1tMgorCW1vdmFwcwkyNSglZWF4KSwgJXhtbTMKKwltb3ZhcHMJNDEoJWVheCksICV4bW00CisJbW92YXBzCTU3KCVlYXgpLCAleG1tNQorCW1vdmFwcwkleG1tNSwgJXhtbTcKKwlwYWxpZ25yCSQ3LCAleG1tNCwgJXhtbTUKKwlwYWxpZ25yCSQ3LCAleG1tMywgJXhtbTQKKwltb3ZhcHMJJXhtbTUsIDQ4KCVlZHgpCisJcGFsaWducgkkNywgJXhtbTIsICV4bW0zCisJbGVhCTY0KCVlYXgpLCAlZWF4CisJcGFsaWducgkkNywgJXhtbTEsICV4bW0yCisJbW92YXBzCSV4bW00LCAzMiglZWR4KQorCW1vdmFwcwkleG1tMywgMTYoJWVkeCkKKwltb3ZhcHMJJXhtbTcsICV4bW0xCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwlsZWEJNjQoJWVkeCksICVlZHgKKwlzdWIJJDY0LCAlZWN4CisJamEJTChTaGw3TG9vcFN0YXJ0KQorCitMKFNobDdMb29wTGVhdmUpOgorCWFkZAkkMzIsICVlY3gKKwlqbGUJTChzaGxfZW5kXzApCisKKwltb3ZhcHMJOSglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMjUoJWVheCksICV4bW0zCisJcGFsaWducgkkNywgJXhtbTIsICV4bW0zCisJcGFsaWducgkkNywgJXhtbTEsICV4bW0yCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwltb3ZhcHMJJXhtbTMsIDE2KCVlZHgpCisJbGVhCTMyKCVlZHgsICVlY3gpLCAlZWR4CisJbGVhCTMyKCVlYXgsICVlY3gpLCAlZWF4CisJUE9QICglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKK0woc2hfN19ub19wcmVmZXRjaCk6CisJbGVhCS0zMiglZWN4KSwgJWVjeAorCWxlYQktNyglZWF4KSwgJWVheAorCXhvcgklZWRpLCAlZWRpCisKKwkucDJhbGlnbiA0CitMKHNoXzdfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKIAltb3ZkcWEJMzIoJWVheCwgJWVkaSksICV4bW0zCkBAIC03MjMsOCArMTEyOCw3IEBACiAJbGVhCTMyKCVlZGkpLCAlZWRpCiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQotCi0JamIJTChzaGxfN19lbmQpCisJamIJTChzaF83X2VuZF9ub19wcmVmZXRjaF9sb29wKQogCiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKQEAgLTczNSwzMCArMTEzOSw5MCBAQAogCWxlYQkzMiglZWRpKSwgJWVkaQogCW1vdmRxYQkleG1tMiwgLTMyKCVlZHgsICVlZGkpCiAJbW92ZHFhCSV4bW0zLCAtMTYoJWVkeCwgJWVkaSkKKwlqYWUJTChzaF83X25vX3ByZWZldGNoX2xvb3ApCiAKLQlqYWUJTChzaGxfN19sb29wKQotCi1MKHNobF83X2VuZCk6CitMKHNoXzdfZW5kX25vX3ByZWZldGNoX2xvb3ApOgogCWxlYQkzMiglZWN4KSwgJWVjeAogCWFkZAklZWN4LCAlZWRpCiAJYWRkCSVlZGksICVlZHgKIAlsZWEJNyglZWRpLCAlZWF4KSwgJWVheAotCVBPUCAoJWVkaSkKLQlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZX1RBSUwoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisJUE9QCSglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCiAKLQljZmlfcmVzdG9yZV9zdGF0ZQotCWNmaV9yZW1lbWJlcl9zdGF0ZQotCUFMSUdOICg0KQorCUNGSV9QVVNIICglZWRpKQorCisJLnAyYWxpZ24gNAogTChzaGxfOCk6Ci0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9WQUxVRShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSkKLQlsZWEJLTgoJWVheCksICVlYXgKLQltb3ZhcHMJKCVlYXgpLCAleG1tMQotCXhvcgklZWRpLCAlZWRpCi0JbGVhCS0zMiglZWN4KSwgJWVjeAotCW1vdmRxdQkleG1tMCwgKCVlc2kpCi0JUE9QICglZXNpKQotTChzaGxfOF9sb29wKToKKyNpZm5kZWYgVVNFX0FTX01FTU1PVkUKKwltb3ZhcHMJLTgoJWVheCksICV4bW0xCisjZWxzZQorCW1vdmwJREVTVCs0KCVlc3ApLCAlZWRpCisJbW92YXBzCS04KCVlYXgpLCAleG1tMQorCW1vdmRxdQkleG1tMCwgKCVlZGkpCisjZW5kaWYKKyNpZmRlZiBEQVRBX0NBQ0hFX1NJWkVfSEFMRgorCWNtcAkkREFUQV9DQUNIRV9TSVpFX0hBTEYsICVlY3gKKyNlbHNlCisjIGlmIChkZWZpbmVkIFNIQVJFRCB8fCBkZWZpbmVkIF9fUElDX18pCisJU0VUVVBfUElDX1JFRyhieCkKKwlhZGQJJF9HTE9CQUxfT0ZGU0VUX1RBQkxFXywgJWVieAorCWNtcAlfX3g4Nl9kYXRhX2NhY2hlX3NpemVfaGFsZkBHT1RPRkYoJWVieCksICVlY3gKKyMgZWxzZQorCWNtcAlfX3g4Nl9kYXRhX2NhY2hlX3NpemVfaGFsZiwgJWVjeAorIyBlbmRpZgorI2VuZGlmCisJamIgTChzaF84X25vX3ByZWZldGNoKQogCisJbGVhCS02NCglZWN4KSwgJWVjeAorCisJLnAyYWxpZ24gNAorTChTaGw4TG9vcFN0YXJ0KToKKwlwcmVmZXRjaHQwIDB4MWMwKCVlYXgpCisJcHJlZmV0Y2h0MCAweDFjMCglZWR4KQorCW1vdmFwcwk4KCVlYXgpLCAleG1tMgorCW1vdmFwcwkyNCglZWF4KSwgJXhtbTMKKwltb3ZhcHMJNDAoJWVheCksICV4bW00CisJbW92YXBzCTU2KCVlYXgpLCAleG1tNQorCW1vdmFwcwkleG1tNSwgJXhtbTcKKwlwYWxpZ25yCSQ4LCAleG1tNCwgJXhtbTUKKwlwYWxpZ25yCSQ4LCAleG1tMywgJXhtbTQKKwltb3ZhcHMJJXhtbTUsIDQ4KCVlZHgpCisJcGFsaWducgkkOCwgJXhtbTIsICV4bW0zCisJbGVhCTY0KCVlYXgpLCAlZWF4CisJcGFsaWducgkkOCwgJXhtbTEsICV4bW0yCisJbW92YXBzCSV4bW00LCAzMiglZWR4KQorCW1vdmFwcwkleG1tMywgMTYoJWVkeCkKKwltb3ZhcHMJJXhtbTcsICV4bW0xCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwlsZWEJNjQoJWVkeCksICVlZHgKKwlzdWIJJDY0LCAlZWN4CisJamEJTChTaGw4TG9vcFN0YXJ0KQorCitMKExvb3BMZWF2ZTgpOgorCWFkZAkkMzIsICVlY3gKKwlqbGUJTChzaGxfZW5kXzApCisKKwltb3ZhcHMJOCglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMjQoJWVheCksICV4bW0zCisJcGFsaWducgkkOCwgJXhtbTIsICV4bW0zCisJcGFsaWducgkkOCwgJXhtbTEsICV4bW0yCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwltb3ZhcHMJJXhtbTMsIDE2KCVlZHgpCisJbGVhCTMyKCVlZHgsICVlY3gpLCAlZWR4CisJbGVhCTMyKCVlYXgsICVlY3gpLCAlZWF4CisJUE9QICglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKK0woc2hfOF9ub19wcmVmZXRjaCk6CisJbGVhCS0zMiglZWN4KSwgJWVjeAorCWxlYQktOCglZWF4KSwgJWVheAorCXhvcgklZWRpLCAlZWRpCisKKwkucDJhbGlnbiA0CitMKHNoXzhfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKIAltb3ZkcWEJMzIoJWVheCwgJWVkaSksICV4bW0zCkBAIC03NjgsOCArMTIzMiw3IEBACiAJbGVhCTMyKCVlZGkpLCAlZWRpCiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQotCi0JamIJTChzaGxfOF9lbmQpCisJamIJTChzaF84X2VuZF9ub19wcmVmZXRjaF9sb29wKQogCiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKQEAgLTc4MCwzMCArMTI0Myw5MSBAQAogCWxlYQkzMiglZWRpKSwgJWVkaQogCW1vdmRxYQkleG1tMiwgLTMyKCVlZHgsICVlZGkpCiAJbW92ZHFhCSV4bW0zLCAtMTYoJWVkeCwgJWVkaSkKKwlqYWUJTChzaF84X25vX3ByZWZldGNoX2xvb3ApCiAKLQlqYWUJTChzaGxfOF9sb29wKQotCi1MKHNobF84X2VuZCk6CitMKHNoXzhfZW5kX25vX3ByZWZldGNoX2xvb3ApOgogCWxlYQkzMiglZWN4KSwgJWVjeAogCWFkZAklZWN4LCAlZWRpCiAJYWRkCSVlZGksICVlZHgKIAlsZWEJOCglZWRpLCAlZWF4KSwgJWVheAotCVBPUCAoJWVkaSkKLQlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZX1RBSUwoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisJUE9QCSglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCiAKLQljZmlfcmVzdG9yZV9zdGF0ZQotCWNmaV9yZW1lbWJlcl9zdGF0ZQotCUFMSUdOICg0KQorCUNGSV9QVVNIICglZWRpKQorCisJLnAyYWxpZ24gNAogTChzaGxfOSk6Ci0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9WQUxVRShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSkKLQlsZWEJLTkoJWVheCksICVlYXgKLQltb3ZhcHMJKCVlYXgpLCAleG1tMQotCXhvcgklZWRpLCAlZWRpCi0JbGVhCS0zMiglZWN4KSwgJWVjeAotCW1vdmRxdQkleG1tMCwgKCVlc2kpCi0JUE9QICglZXNpKQotTChzaGxfOV9sb29wKToKKyNpZm5kZWYgVVNFX0FTX01FTU1PVkUKKwltb3ZhcHMJLTkoJWVheCksICV4bW0xCisjZWxzZQorCW1vdmwJREVTVCs0KCVlc3ApLCAlZWRpCisJbW92YXBzCS05KCVlYXgpLCAleG1tMQorCW1vdmRxdQkleG1tMCwgKCVlZGkpCisjZW5kaWYKKyNpZmRlZiBEQVRBX0NBQ0hFX1NJWkVfSEFMRgorCWNtcAkkREFUQV9DQUNIRV9TSVpFX0hBTEYsICVlY3gKKyNlbHNlCisjIGlmIChkZWZpbmVkIFNIQVJFRCB8fCBkZWZpbmVkIF9fUElDX18pCisJU0VUVVBfUElDX1JFRyhieCkKKwlhZGQJJF9HTE9CQUxfT0ZGU0VUX1RBQkxFXywgJWVieAorCWNtcAlfX3g4Nl9kYXRhX2NhY2hlX3NpemVfaGFsZkBHT1RPRkYoJWVieCksICVlY3gKKyMgZWxzZQorCWNtcAlfX3g4Nl9kYXRhX2NhY2hlX3NpemVfaGFsZiwgJWVjeAorIyBlbmRpZgorI2VuZGlmCisJamIgTChzaF85X25vX3ByZWZldGNoKQogCisJbGVhCS02NCglZWN4KSwgJWVjeAorCisJLnAyYWxpZ24gNAorTChTaGw5TG9vcFN0YXJ0KToKKwlwcmVmZXRjaHQwIDB4MWMwKCVlYXgpCisJcHJlZmV0Y2h0MCAweDFjMCglZWR4KQorCW1vdmFwcwk3KCVlYXgpLCAleG1tMgorCW1vdmFwcwkyMyglZWF4KSwgJXhtbTMKKwltb3ZhcHMJMzkoJWVheCksICV4bW00CisJbW92YXBzCTU1KCVlYXgpLCAleG1tNQorCW1vdmFwcwkleG1tNSwgJXhtbTcKKwlwYWxpZ25yCSQ5LCAleG1tNCwgJXhtbTUKKwlwYWxpZ25yCSQ5LCAleG1tMywgJXhtbTQKKwltb3ZhcHMJJXhtbTUsIDQ4KCVlZHgpCisJcGFsaWducgkkOSwgJXhtbTIsICV4bW0zCisJbGVhCTY0KCVlYXgpLCAlZWF4CisJcGFsaWducgkkOSwgJXhtbTEsICV4bW0yCisJbW92YXBzCSV4bW00LCAzMiglZWR4KQorCW1vdmFwcwkleG1tMywgMTYoJWVkeCkKKwltb3ZhcHMJJXhtbTcsICV4bW0xCisJbW92YXBzCSV4bW0yLCAoJWVkeCkKKwlsZWEJNjQoJWVkeCksICVlZHgKKwlzdWIJJDY0LCAlZWN4CisJamEJTChTaGw5TG9vcFN0YXJ0KQorCitMKFNobDlMb29wTGVhdmUpOgorCWFkZAkkMzIsICVlY3gKKwlqbGUJTChzaGxfZW5kXzApCisKKwltb3ZhcHMJNyglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMjMoJWVheCksICV4bW0zCisJcGFsaWducgkkOSwgJXhtbTIsICV4bW0zCisJcGFsaWducgkkOSwgJXhtbTEsICV4bW0yCisKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCW1vdmFwcwkleG1tMywgMTYoJWVkeCkKKwlsZWEJMzIoJWVkeCwgJWVjeCksICVlZHgKKwlsZWEJMzIoJWVheCwgJWVjeCksICVlYXgKKwlQT1AgKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKworCUNGSV9QVVNIICglZWRpKQorCisJLnAyYWxpZ24gNAorTChzaF85X25vX3ByZWZldGNoKToKKwlsZWEJLTMyKCVlY3gpLCAlZWN4CisJbGVhCS05KCVlYXgpLCAlZWF4CisJeG9yCSVlZGksICVlZGkKKworCS5wMmFsaWduIDQKK0woc2hfOV9ub19wcmVmZXRjaF9sb29wKToKIAltb3ZkcWEJMTYoJWVheCwgJWVkaSksICV4bW0yCiAJc3ViCSQzMiwgJWVjeAogCW1vdmRxYQkzMiglZWF4LCAlZWRpKSwgJXhtbTMKQEAgLTgxMyw4ICsxMzM3LDcgQEAKIAlsZWEJMzIoJWVkaSksICVlZGkKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCi0KLQlqYglMKHNobF85X2VuZCkKKwlqYglMKHNoXzlfZW5kX25vX3ByZWZldGNoX2xvb3ApCiAKIAltb3ZkcWEJMTYoJWVheCwgJWVkaSksICV4bW0yCiAJc3ViCSQzMiwgJWVjeApAQCAtODI1LDMwICsxMzQ4LDkxIEBACiAJbGVhCTMyKCVlZGkpLCAlZWRpCiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQorCWphZQlMKHNoXzlfbm9fcHJlZmV0Y2hfbG9vcCkKIAotCWphZQlMKHNobF85X2xvb3ApCi0KLUwoc2hsXzlfZW5kKToKK0woc2hfOV9lbmRfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbGVhCTMyKCVlY3gpLCAlZWN4CiAJYWRkCSVlY3gsICVlZGkKIAlhZGQJJWVkaSwgJWVkeAogCWxlYQk5KCVlZGksICVlYXgpLCAlZWF4Ci0JUE9QICglZWRpKQotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVEFJTChMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKwlQT1AJKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKIAotCWNmaV9yZXN0b3JlX3N0YXRlCi0JY2ZpX3JlbWVtYmVyX3N0YXRlCi0JQUxJR04gKDQpCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CiBMKHNobF8xMCk6Ci0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9WQUxVRShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSkKLQlsZWEJLTEwKCVlYXgpLCAlZWF4Ci0JbW92YXBzCSglZWF4KSwgJXhtbTEKLQl4b3IJJWVkaSwgJWVkaQotCWxlYQktMzIoJWVjeCksICVlY3gKLQltb3ZkcXUJJXhtbTAsICglZXNpKQotCVBPUCAoJWVzaSkKLUwoc2hsXzEwX2xvb3ApOgorI2lmbmRlZiBVU0VfQVNfTUVNTU9WRQorCW1vdmFwcwktMTAoJWVheCksICV4bW0xCisjZWxzZQorCW1vdmwJREVTVCs0KCVlc3ApLCAlZWRpCisJbW92YXBzCS0xMCglZWF4KSwgJXhtbTEKKwltb3ZkcXUJJXhtbTAsICglZWRpKQorI2VuZGlmCisjaWZkZWYgREFUQV9DQUNIRV9TSVpFX0hBTEYKKwljbXAJJERBVEFfQ0FDSEVfU0laRV9IQUxGLCAlZWN4CisjZWxzZQorIyBpZiAoZGVmaW5lZCBTSEFSRUQgfHwgZGVmaW5lZCBfX1BJQ19fKQorCVNFVFVQX1BJQ19SRUcoYngpCisJYWRkCSRfR0xPQkFMX09GRlNFVF9UQUJMRV8sICVlYngKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGZAR09UT0ZGKCVlYngpLCAlZWN4CisjIGVsc2UKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGYsICVlY3gKKyMgZW5kaWYKKyNlbmRpZgorCWpiIEwoc2hfMTBfbm9fcHJlZmV0Y2gpCiAKKwlsZWEJLTY0KCVlY3gpLCAlZWN4CisKKwkucDJhbGlnbiA0CitMKFNobDEwTG9vcFN0YXJ0KToKKwlwcmVmZXRjaHQwIDB4MWMwKCVlYXgpCisJcHJlZmV0Y2h0MCAweDFjMCglZWR4KQorCW1vdmFwcwk2KCVlYXgpLCAleG1tMgorCW1vdmFwcwkyMiglZWF4KSwgJXhtbTMKKwltb3ZhcHMJMzgoJWVheCksICV4bW00CisJbW92YXBzCTU0KCVlYXgpLCAleG1tNQorCW1vdmFwcwkleG1tNSwgJXhtbTcKKwlwYWxpZ25yCSQxMCwgJXhtbTQsICV4bW01CisJcGFsaWducgkkMTAsICV4bW0zLCAleG1tNAorCW1vdmFwcwkleG1tNSwgNDgoJWVkeCkKKwlwYWxpZ25yCSQxMCwgJXhtbTIsICV4bW0zCisJbGVhCTY0KCVlYXgpLCAlZWF4CisJcGFsaWducgkkMTAsICV4bW0xLCAleG1tMgorCW1vdmFwcwkleG1tNCwgMzIoJWVkeCkKKwltb3ZhcHMJJXhtbTMsIDE2KCVlZHgpCisJbW92YXBzCSV4bW03LCAleG1tMQorCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbGVhCTY0KCVlZHgpLCAlZWR4CisJc3ViCSQ2NCwgJWVjeAorCWphCUwoU2hsMTBMb29wU3RhcnQpCisKK0woU2hsMTBMb29wTGVhdmUpOgorCWFkZAkkMzIsICVlY3gKKwlqbGUJTChzaGxfZW5kXzApCisKKwltb3ZhcHMJNiglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMjIoJWVheCksICV4bW0zCisJcGFsaWducgkkMTAsICV4bW0yLCAleG1tMworCXBhbGlnbnIJJDEwLCAleG1tMSwgJXhtbTIKKworCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCWxlYQkzMiglZWR4LCAlZWN4KSwgJWVkeAorCWxlYQkzMiglZWF4LCAlZWN4KSwgJWVheAorCVBPUCAoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CitMKHNoXzEwX25vX3ByZWZldGNoKToKKwlsZWEJLTMyKCVlY3gpLCAlZWN4CisJbGVhCS0xMCglZWF4KSwgJWVheAorCXhvcgklZWRpLCAlZWRpCisKKwkucDJhbGlnbiA0CitMKHNoXzEwX25vX3ByZWZldGNoX2xvb3ApOgogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CiAJbW92ZHFhCTMyKCVlYXgsICVlZGkpLCAleG1tMwpAQCAtODU4LDggKzE0NDIsNyBAQAogCWxlYQkzMiglZWRpKSwgJWVkaQogCW1vdmRxYQkleG1tMiwgLTMyKCVlZHgsICVlZGkpCiAJbW92ZHFhCSV4bW0zLCAtMTYoJWVkeCwgJWVkaSkKLQotCWpiCUwoc2hsXzEwX2VuZCkKKwlqYglMKHNoXzEwX2VuZF9ub19wcmVmZXRjaF9sb29wKQogCiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKQEAgLTg3MCwzMCArMTQ1Myw5MSBAQAogCWxlYQkzMiglZWRpKSwgJWVkaQogCW1vdmRxYQkleG1tMiwgLTMyKCVlZHgsICVlZGkpCiAJbW92ZHFhCSV4bW0zLCAtMTYoJWVkeCwgJWVkaSkKKwlqYWUJTChzaF8xMF9ub19wcmVmZXRjaF9sb29wKQogCi0JamFlCUwoc2hsXzEwX2xvb3ApCi0KLUwoc2hsXzEwX2VuZCk6CitMKHNoXzEwX2VuZF9ub19wcmVmZXRjaF9sb29wKToKIAlsZWEJMzIoJWVjeCksICVlY3gKIAlhZGQJJWVjeCwgJWVkaQogCWFkZAklZWRpLCAlZWR4CiAJbGVhCTEwKCVlZGksICVlYXgpLCAlZWF4Ci0JUE9QICglZWRpKQotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVEFJTChMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKwlQT1AJKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKIAotCWNmaV9yZXN0b3JlX3N0YXRlCi0JY2ZpX3JlbWVtYmVyX3N0YXRlCi0JQUxJR04gKDQpCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CiBMKHNobF8xMSk6Ci0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9WQUxVRShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSkKLQlsZWEJLTExKCVlYXgpLCAlZWF4Ci0JbW92YXBzCSglZWF4KSwgJXhtbTEKLQl4b3IJJWVkaSwgJWVkaQotCWxlYQktMzIoJWVjeCksICVlY3gKLQltb3ZkcXUJJXhtbTAsICglZXNpKQotCVBPUCAoJWVzaSkKLUwoc2hsXzExX2xvb3ApOgorI2lmbmRlZiBVU0VfQVNfTUVNTU9WRQorCW1vdmFwcwktMTEoJWVheCksICV4bW0xCisjZWxzZQorCW1vdmwJREVTVCs0KCVlc3ApLCAlZWRpCisJbW92YXBzCS0xMSglZWF4KSwgJXhtbTEKKwltb3ZkcXUJJXhtbTAsICglZWRpKQorI2VuZGlmCisjaWZkZWYgREFUQV9DQUNIRV9TSVpFX0hBTEYKKwljbXAJJERBVEFfQ0FDSEVfU0laRV9IQUxGLCAlZWN4CisjZWxzZQorIyBpZiAoZGVmaW5lZCBTSEFSRUQgfHwgZGVmaW5lZCBfX1BJQ19fKQorCVNFVFVQX1BJQ19SRUcoYngpCisJYWRkCSRfR0xPQkFMX09GRlNFVF9UQUJMRV8sICVlYngKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGZAR09UT0ZGKCVlYngpLCAlZWN4CisjIGVsc2UKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGYsICVlY3gKKyMgZW5kaWYKKyNlbmRpZgorCWpiIEwoc2hfMTFfbm9fcHJlZmV0Y2gpCiAKKwlsZWEJLTY0KCVlY3gpLCAlZWN4CisKKwkucDJhbGlnbiA0CitMKFNobDExTG9vcFN0YXJ0KToKKwlwcmVmZXRjaHQwIDB4MWMwKCVlYXgpCisJcHJlZmV0Y2h0MCAweDFjMCglZWR4KQorCW1vdmFwcwk1KCVlYXgpLCAleG1tMgorCW1vdmFwcwkyMSglZWF4KSwgJXhtbTMKKwltb3ZhcHMJMzcoJWVheCksICV4bW00CisJbW92YXBzCTUzKCVlYXgpLCAleG1tNQorCW1vdmFwcwkleG1tNSwgJXhtbTcKKwlwYWxpZ25yCSQxMSwgJXhtbTQsICV4bW01CisJcGFsaWducgkkMTEsICV4bW0zLCAleG1tNAorCW1vdmFwcwkleG1tNSwgNDgoJWVkeCkKKwlwYWxpZ25yCSQxMSwgJXhtbTIsICV4bW0zCisJbGVhCTY0KCVlYXgpLCAlZWF4CisJcGFsaWducgkkMTEsICV4bW0xLCAleG1tMgorCW1vdmFwcwkleG1tNCwgMzIoJWVkeCkKKwltb3ZhcHMJJXhtbTMsIDE2KCVlZHgpCisJbW92YXBzCSV4bW03LCAleG1tMQorCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbGVhCTY0KCVlZHgpLCAlZWR4CisJc3ViCSQ2NCwgJWVjeAorCWphCUwoU2hsMTFMb29wU3RhcnQpCisKK0woU2hsMTFMb29wTGVhdmUpOgorCWFkZAkkMzIsICVlY3gKKwlqbGUJTChzaGxfZW5kXzApCisKKwltb3ZhcHMJNSglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMjEoJWVheCksICV4bW0zCisJcGFsaWducgkkMTEsICV4bW0yLCAleG1tMworCXBhbGlnbnIJJDExLCAleG1tMSwgJXhtbTIKKworCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCWxlYQkzMiglZWR4LCAlZWN4KSwgJWVkeAorCWxlYQkzMiglZWF4LCAlZWN4KSwgJWVheAorCVBPUCAoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CitMKHNoXzExX25vX3ByZWZldGNoKToKKwlsZWEJLTMyKCVlY3gpLCAlZWN4CisJbGVhCS0xMSglZWF4KSwgJWVheAorCXhvcgklZWRpLCAlZWRpCisKKwkucDJhbGlnbiA0CitMKHNoXzExX25vX3ByZWZldGNoX2xvb3ApOgogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CiAJbW92ZHFhCTMyKCVlYXgsICVlZGkpLCAleG1tMwpAQCAtOTAzLDggKzE1NDcsNyBAQAogCWxlYQkzMiglZWRpKSwgJWVkaQogCW1vdmRxYQkleG1tMiwgLTMyKCVlZHgsICVlZGkpCiAJbW92ZHFhCSV4bW0zLCAtMTYoJWVkeCwgJWVkaSkKLQotCWpiCUwoc2hsXzExX2VuZCkKKwlqYglMKHNoXzExX2VuZF9ub19wcmVmZXRjaF9sb29wKQogCiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKQEAgLTkxNSwzMCArMTU1OCw5MSBAQAogCWxlYQkzMiglZWRpKSwgJWVkaQogCW1vdmRxYQkleG1tMiwgLTMyKCVlZHgsICVlZGkpCiAJbW92ZHFhCSV4bW0zLCAtMTYoJWVkeCwgJWVkaSkKKwlqYWUJTChzaF8xMV9ub19wcmVmZXRjaF9sb29wKQogCi0JamFlCUwoc2hsXzExX2xvb3ApCi0KLUwoc2hsXzExX2VuZCk6CitMKHNoXzExX2VuZF9ub19wcmVmZXRjaF9sb29wKToKIAlsZWEJMzIoJWVjeCksICVlY3gKIAlhZGQJJWVjeCwgJWVkaQogCWFkZAklZWRpLCAlZWR4CiAJbGVhCTExKCVlZGksICVlYXgpLCAlZWF4Ci0JUE9QICglZWRpKQotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVEFJTChMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKwlQT1AJKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKIAotCWNmaV9yZXN0b3JlX3N0YXRlCi0JY2ZpX3JlbWVtYmVyX3N0YXRlCi0JQUxJR04gKDQpCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CiBMKHNobF8xMik6Ci0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9WQUxVRShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSkKLQlsZWEJLTEyKCVlYXgpLCAlZWF4Ci0JbW92YXBzCSglZWF4KSwgJXhtbTEKLQl4b3IJJWVkaSwgJWVkaQotCWxlYQktMzIoJWVjeCksICVlY3gKLQltb3ZkcXUJJXhtbTAsICglZXNpKQotCVBPUCAoJWVzaSkKLUwoc2hsXzEyX2xvb3ApOgorI2lmbmRlZiBVU0VfQVNfTUVNTU9WRQorCW1vdmFwcwktMTIoJWVheCksICV4bW0xCisjZWxzZQorCW1vdmwJREVTVCs0KCVlc3ApLCAlZWRpCisJbW92YXBzCS0xMiglZWF4KSwgJXhtbTEKKwltb3ZkcXUJJXhtbTAsICglZWRpKQorI2VuZGlmCisjaWZkZWYgREFUQV9DQUNIRV9TSVpFX0hBTEYKKwljbXAJJERBVEFfQ0FDSEVfU0laRV9IQUxGLCAlZWN4CisjZWxzZQorIyBpZiAoZGVmaW5lZCBTSEFSRUQgfHwgZGVmaW5lZCBfX1BJQ19fKQorCVNFVFVQX1BJQ19SRUcoYngpCisJYWRkCSRfR0xPQkFMX09GRlNFVF9UQUJMRV8sICVlYngKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGZAR09UT0ZGKCVlYngpLCAlZWN4CisjIGVsc2UKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGYsICVlY3gKKyMgZW5kaWYKKyNlbmRpZgorCWpiIEwoc2hfMTJfbm9fcHJlZmV0Y2gpCiAKKwlsZWEJLTY0KCVlY3gpLCAlZWN4CisKKwkucDJhbGlnbiA0CitMKFNobDEyTG9vcFN0YXJ0KToKKwlwcmVmZXRjaHQwIDB4MWMwKCVlYXgpCisJcHJlZmV0Y2h0MCAweDFjMCglZWR4KQorCW1vdmFwcwk0KCVlYXgpLCAleG1tMgorCW1vdmFwcwkyMCglZWF4KSwgJXhtbTMKKwltb3ZhcHMJMzYoJWVheCksICV4bW00CisJbW92YXBzCTUyKCVlYXgpLCAleG1tNQorCW1vdmFwcwkleG1tNSwgJXhtbTcKKwlwYWxpZ25yCSQxMiwgJXhtbTQsICV4bW01CisJcGFsaWducgkkMTIsICV4bW0zLCAleG1tNAorCW1vdmFwcwkleG1tNSwgNDgoJWVkeCkKKwlwYWxpZ25yCSQxMiwgJXhtbTIsICV4bW0zCisJbGVhCTY0KCVlYXgpLCAlZWF4CisJcGFsaWducgkkMTIsICV4bW0xLCAleG1tMgorCW1vdmFwcwkleG1tNCwgMzIoJWVkeCkKKwltb3ZhcHMJJXhtbTMsIDE2KCVlZHgpCisJbW92YXBzCSV4bW03LCAleG1tMQorCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbGVhCTY0KCVlZHgpLCAlZWR4CisJc3ViCSQ2NCwgJWVjeAorCWphCUwoU2hsMTJMb29wU3RhcnQpCisKK0woU2hsMTJMb29wTGVhdmUpOgorCWFkZAkkMzIsICVlY3gKKwlqbGUJTChzaGxfZW5kXzApCisKKwltb3ZhcHMJNCglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMjAoJWVheCksICV4bW0zCisJcGFsaWducgkkMTIsICV4bW0yLCAleG1tMworCXBhbGlnbnIJJDEyLCAleG1tMSwgJXhtbTIKKworCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCWxlYQkzMiglZWR4LCAlZWN4KSwgJWVkeAorCWxlYQkzMiglZWF4LCAlZWN4KSwgJWVheAorCVBPUCAoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CitMKHNoXzEyX25vX3ByZWZldGNoKToKKwlsZWEJLTMyKCVlY3gpLCAlZWN4CisJbGVhCS0xMiglZWF4KSwgJWVheAorCXhvcgklZWRpLCAlZWRpCisKKwkucDJhbGlnbiA0CitMKHNoXzEyX25vX3ByZWZldGNoX2xvb3ApOgogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CiAJbW92ZHFhCTMyKCVlYXgsICVlZGkpLCAleG1tMwpAQCAtOTQ4LDggKzE2NTIsNyBAQAogCWxlYQkzMiglZWRpKSwgJWVkaQogCW1vdmRxYQkleG1tMiwgLTMyKCVlZHgsICVlZGkpCiAJbW92ZHFhCSV4bW0zLCAtMTYoJWVkeCwgJWVkaSkKLQotCWpiCUwoc2hsXzEyX2VuZCkKKwlqYglMKHNoXzEyX2VuZF9ub19wcmVmZXRjaF9sb29wKQogCiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKQEAgLTk2MCwzMCArMTY2Myw5MSBAQAogCWxlYQkzMiglZWRpKSwgJWVkaQogCW1vdmRxYQkleG1tMiwgLTMyKCVlZHgsICVlZGkpCiAJbW92ZHFhCSV4bW0zLCAtMTYoJWVkeCwgJWVkaSkKKwlqYWUJTChzaF8xMl9ub19wcmVmZXRjaF9sb29wKQogCi0JamFlCUwoc2hsXzEyX2xvb3ApCi0KLUwoc2hsXzEyX2VuZCk6CitMKHNoXzEyX2VuZF9ub19wcmVmZXRjaF9sb29wKToKIAlsZWEJMzIoJWVjeCksICVlY3gKIAlhZGQJJWVjeCwgJWVkaQogCWFkZAklZWRpLCAlZWR4CiAJbGVhCTEyKCVlZGksICVlYXgpLCAlZWF4Ci0JUE9QICglZWRpKQotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVEFJTChMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKwlQT1AJKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKIAotCWNmaV9yZXN0b3JlX3N0YXRlCi0JY2ZpX3JlbWVtYmVyX3N0YXRlCi0JQUxJR04gKDQpCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CiBMKHNobF8xMyk6Ci0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9WQUxVRShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSkKLQlsZWEJLTEzKCVlYXgpLCAlZWF4Ci0JbW92YXBzCSglZWF4KSwgJXhtbTEKLQl4b3IJJWVkaSwgJWVkaQotCWxlYQktMzIoJWVjeCksICVlY3gKLQltb3ZkcXUJJXhtbTAsICglZXNpKQotCVBPUCAoJWVzaSkKLUwoc2hsXzEzX2xvb3ApOgorI2lmbmRlZiBVU0VfQVNfTUVNTU9WRQorCW1vdmFwcwktMTMoJWVheCksICV4bW0xCisjZWxzZQorCW1vdmwJREVTVCs0KCVlc3ApLCAlZWRpCisJbW92YXBzCS0xMyglZWF4KSwgJXhtbTEKKwltb3ZkcXUJJXhtbTAsICglZWRpKQorI2VuZGlmCisjaWZkZWYgREFUQV9DQUNIRV9TSVpFX0hBTEYKKwljbXAJJERBVEFfQ0FDSEVfU0laRV9IQUxGLCAlZWN4CisjZWxzZQorIyBpZiAoZGVmaW5lZCBTSEFSRUQgfHwgZGVmaW5lZCBfX1BJQ19fKQorCVNFVFVQX1BJQ19SRUcoYngpCisJYWRkCSRfR0xPQkFMX09GRlNFVF9UQUJMRV8sICVlYngKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGZAR09UT0ZGKCVlYngpLCAlZWN4CisjIGVsc2UKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGYsICVlY3gKKyMgZW5kaWYKKyNlbmRpZgorCWpiIEwoc2hfMTNfbm9fcHJlZmV0Y2gpCiAKKwlsZWEJLTY0KCVlY3gpLCAlZWN4CisKKwkucDJhbGlnbiA0CitMKFNobDEzTG9vcFN0YXJ0KToKKwlwcmVmZXRjaHQwIDB4MWMwKCVlYXgpCisJcHJlZmV0Y2h0MCAweDFjMCglZWR4KQorCW1vdmFwcwkzKCVlYXgpLCAleG1tMgorCW1vdmFwcwkxOSglZWF4KSwgJXhtbTMKKwltb3ZhcHMJMzUoJWVheCksICV4bW00CisJbW92YXBzCTUxKCVlYXgpLCAleG1tNQorCW1vdmFwcwkleG1tNSwgJXhtbTcKKwlwYWxpZ25yCSQxMywgJXhtbTQsICV4bW01CisJcGFsaWducgkkMTMsICV4bW0zLCAleG1tNAorCW1vdmFwcwkleG1tNSwgNDgoJWVkeCkKKwlwYWxpZ25yCSQxMywgJXhtbTIsICV4bW0zCisJbGVhCTY0KCVlYXgpLCAlZWF4CisJcGFsaWducgkkMTMsICV4bW0xLCAleG1tMgorCW1vdmFwcwkleG1tNCwgMzIoJWVkeCkKKwltb3ZhcHMJJXhtbTMsIDE2KCVlZHgpCisJbW92YXBzCSV4bW03LCAleG1tMQorCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbGVhCTY0KCVlZHgpLCAlZWR4CisJc3ViCSQ2NCwgJWVjeAorCWphCUwoU2hsMTNMb29wU3RhcnQpCisKK0woU2hsMTNMb29wTGVhdmUpOgorCWFkZAkkMzIsICVlY3gKKwlqbGUJTChzaGxfZW5kXzApCisKKwltb3ZhcHMJMyglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMTkoJWVheCksICV4bW0zCisJcGFsaWducgkkMTMsICV4bW0yLCAleG1tMworCXBhbGlnbnIJJDEzLCAleG1tMSwgJXhtbTIKKworCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCWxlYQkzMiglZWR4LCAlZWN4KSwgJWVkeAorCWxlYQkzMiglZWF4LCAlZWN4KSwgJWVheAorCVBPUCAoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CitMKHNoXzEzX25vX3ByZWZldGNoKToKKwlsZWEJLTMyKCVlY3gpLCAlZWN4CisJbGVhCS0xMyglZWF4KSwgJWVheAorCXhvcgklZWRpLCAlZWRpCisKKwkucDJhbGlnbiA0CitMKHNoXzEzX25vX3ByZWZldGNoX2xvb3ApOgogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CiAJbW92ZHFhCTMyKCVlYXgsICVlZGkpLCAleG1tMwpAQCAtOTkzLDggKzE3NTcsNyBAQAogCWxlYQkzMiglZWRpKSwgJWVkaQogCW1vdmRxYQkleG1tMiwgLTMyKCVlZHgsICVlZGkpCiAJbW92ZHFhCSV4bW0zLCAtMTYoJWVkeCwgJWVkaSkKLQotCWpiCUwoc2hsXzEzX2VuZCkKKwlqYglMKHNoXzEzX2VuZF9ub19wcmVmZXRjaF9sb29wKQogCiAJbW92ZHFhCTE2KCVlYXgsICVlZGkpLCAleG1tMgogCXN1YgkkMzIsICVlY3gKQEAgLTEwMDUsMzAgKzE3NjgsOTEgQEAKIAlsZWEJMzIoJWVkaSksICVlZGkKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCisJamFlCUwoc2hfMTNfbm9fcHJlZmV0Y2hfbG9vcCkKIAotCWphZQlMKHNobF8xM19sb29wKQotCi1MKHNobF8xM19lbmQpOgorTChzaF8xM19lbmRfbm9fcHJlZmV0Y2hfbG9vcCk6CiAJbGVhCTMyKCVlY3gpLCAlZWN4CiAJYWRkCSVlY3gsICVlZGkKIAlhZGQJJWVkaSwgJWVkeAogCWxlYQkxMyglZWRpLCAlZWF4KSwgJWVheAotCVBPUCAoJWVkaSkKLQlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZX1RBSUwoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCisJUE9QCSglZWRpKQorCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkoTCh0YWJsZV80OGJ5dGVzX2Z3ZCksICVlY3gsIDQpCiAKLQljZmlfcmVzdG9yZV9zdGF0ZQotCWNmaV9yZW1lbWJlcl9zdGF0ZQotCUFMSUdOICg0KQorCUNGSV9QVVNIICglZWRpKQorCisJLnAyYWxpZ24gNAogTChzaGxfMTQpOgotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVkFMVUUoTCh0YWJsZV80OGJ5dGVzX2Z3ZCkpCi0JbGVhCS0xNCglZWF4KSwgJWVheAotCW1vdmFwcwkoJWVheCksICV4bW0xCi0JeG9yCSVlZGksICVlZGkKLQlsZWEJLTMyKCVlY3gpLCAlZWN4Ci0JbW92ZHF1CSV4bW0wLCAoJWVzaSkKLQlQT1AgKCVlc2kpCi1MKHNobF8xNF9sb29wKToKKyNpZm5kZWYgVVNFX0FTX01FTU1PVkUKKwltb3ZhcHMJLTE0KCVlYXgpLCAleG1tMQorI2Vsc2UKKwltb3ZsCURFU1QrNCglZXNwKSwgJWVkaQorCW1vdmFwcwktMTQoJWVheCksICV4bW0xCisJbW92ZHF1CSV4bW0wLCAoJWVkaSkKKyNlbmRpZgorI2lmZGVmIERBVEFfQ0FDSEVfU0laRV9IQUxGCisJY21wCSREQVRBX0NBQ0hFX1NJWkVfSEFMRiwgJWVjeAorI2Vsc2UKKyMgaWYgKGRlZmluZWQgU0hBUkVEIHx8IGRlZmluZWQgX19QSUNfXykKKwlTRVRVUF9QSUNfUkVHKGJ4KQorCWFkZAkkX0dMT0JBTF9PRkZTRVRfVEFCTEVfLCAlZWJ4CisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmQEdPVE9GRiglZWJ4KSwgJWVjeAorIyBlbHNlCisJY21wCV9feDg2X2RhdGFfY2FjaGVfc2l6ZV9oYWxmLCAlZWN4CisjIGVuZGlmCisjZW5kaWYKKwlqYiBMKHNoXzE0X25vX3ByZWZldGNoKQogCisJbGVhCS02NCglZWN4KSwgJWVjeAorCisJLnAyYWxpZ24gNAorTChTaGwxNExvb3BTdGFydCk6CisJcHJlZmV0Y2h0MCAweDFjMCglZWF4KQorCXByZWZldGNodDAgMHgxYzAoJWVkeCkKKwltb3ZhcHMJMiglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMTgoJWVheCksICV4bW0zCisJbW92YXBzCTM0KCVlYXgpLCAleG1tNAorCW1vdmFwcwk1MCglZWF4KSwgJXhtbTUKKwltb3ZhcHMJJXhtbTUsICV4bW03CisJcGFsaWducgkkMTQsICV4bW00LCAleG1tNQorCXBhbGlnbnIJJDE0LCAleG1tMywgJXhtbTQKKwltb3ZhcHMJJXhtbTUsIDQ4KCVlZHgpCisJcGFsaWducgkkMTQsICV4bW0yLCAleG1tMworCWxlYQk2NCglZWF4KSwgJWVheAorCXBhbGlnbnIJJDE0LCAleG1tMSwgJXhtbTIKKwltb3ZhcHMJJXhtbTQsIDMyKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCW1vdmFwcwkleG1tNywgJXhtbTEKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCWxlYQk2NCglZWR4KSwgJWVkeAorCXN1YgkkNjQsICVlY3gKKwlqYQlMKFNobDE0TG9vcFN0YXJ0KQorCitMKFNobDE0TG9vcExlYXZlKToKKwlhZGQJJDMyLCAlZWN4CisJamxlCUwoc2hsX2VuZF8wKQorCisJbW92YXBzCTIoJWVheCksICV4bW0yCisJbW92YXBzCTE4KCVlYXgpLCAleG1tMworCXBhbGlnbnIJJDE0LCAleG1tMiwgJXhtbTMKKwlwYWxpZ25yCSQxNCwgJXhtbTEsICV4bW0yCisKKwltb3ZhcHMJJXhtbTIsICglZWR4KQorCW1vdmFwcwkleG1tMywgMTYoJWVkeCkKKwlsZWEJMzIoJWVkeCwgJWVjeCksICVlZHgKKwlsZWEJMzIoJWVheCwgJWVjeCksICVlYXgKKwlQT1AgKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKworCUNGSV9QVVNIICglZWRpKQorCisJLnAyYWxpZ24gNAorTChzaF8xNF9ub19wcmVmZXRjaCk6CisJbGVhCS0zMiglZWN4KSwgJWVjeAorCWxlYQktMTQoJWVheCksICVlYXgKKwl4b3IJJWVkaSwgJWVkaQorCisJLnAyYWxpZ24gNAorTChzaF8xNF9ub19wcmVmZXRjaF9sb29wKToKIAltb3ZkcWEJMTYoJWVheCwgJWVkaSksICV4bW0yCiAJc3ViCSQzMiwgJWVjeAogCW1vdmRxYQkzMiglZWF4LCAlZWRpKSwgJXhtbTMKQEAgLTEwMzgsOCArMTg2Miw3IEBACiAJbGVhCTMyKCVlZGkpLCAlZWRpCiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQotCi0JamIJTChzaGxfMTRfZW5kKQorCWpiCUwoc2hfMTRfZW5kX25vX3ByZWZldGNoX2xvb3ApCiAKIAltb3ZkcWEJMTYoJWVheCwgJWVkaSksICV4bW0yCiAJc3ViCSQzMiwgJWVjeApAQCAtMTA1MCwzMCArMTg3Myw5MSBAQAogCWxlYQkzMiglZWRpKSwgJWVkaQogCW1vdmRxYQkleG1tMiwgLTMyKCVlZHgsICVlZGkpCiAJbW92ZHFhCSV4bW0zLCAtMTYoJWVkeCwgJWVkaSkKKwlqYWUJTChzaF8xNF9ub19wcmVmZXRjaF9sb29wKQogCi0JamFlCUwoc2hsXzE0X2xvb3ApCi0KLUwoc2hsXzE0X2VuZCk6CitMKHNoXzE0X2VuZF9ub19wcmVmZXRjaF9sb29wKToKIAlsZWEJMzIoJWVjeCksICVlY3gKIAlhZGQJJWVjeCwgJWVkaQogCWFkZAklZWRpLCAlZWR4CiAJbGVhCTE0KCVlZGksICVlYXgpLCAlZWF4Ci0JUE9QICglZWRpKQotCUJSQU5DSF9UT19KTVBUQkxfRU5UUllfVEFJTChMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKwlQT1AJKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKIAotCWNmaV9yZXN0b3JlX3N0YXRlCi0JY2ZpX3JlbWVtYmVyX3N0YXRlCi0JQUxJR04gKDQpCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CiBMKHNobF8xNSk6Ci0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9WQUxVRShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSkKLQlsZWEJLTE1KCVlYXgpLCAlZWF4Ci0JbW92YXBzCSglZWF4KSwgJXhtbTEKLQl4b3IJJWVkaSwgJWVkaQotCWxlYQktMzIoJWVjeCksICVlY3gKLQltb3ZkcXUJJXhtbTAsICglZXNpKQotCVBPUCAoJWVzaSkKLUwoc2hsXzE1X2xvb3ApOgorI2lmbmRlZiBVU0VfQVNfTUVNTU9WRQorCW1vdmFwcwktMTUoJWVheCksICV4bW0xCisjZWxzZQorCW1vdmwJREVTVCs0KCVlc3ApLCAlZWRpCisJbW92YXBzCS0xNSglZWF4KSwgJXhtbTEKKwltb3ZkcXUJJXhtbTAsICglZWRpKQorI2VuZGlmCisjaWZkZWYgREFUQV9DQUNIRV9TSVpFX0hBTEYKKwljbXAJJERBVEFfQ0FDSEVfU0laRV9IQUxGLCAlZWN4CisjZWxzZQorIyBpZiAoZGVmaW5lZCBTSEFSRUQgfHwgZGVmaW5lZCBfX1BJQ19fKQorCVNFVFVQX1BJQ19SRUcoYngpCisJYWRkCSRfR0xPQkFMX09GRlNFVF9UQUJMRV8sICVlYngKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGZAR09UT0ZGKCVlYngpLCAlZWN4CisjIGVsc2UKKwljbXAJX194ODZfZGF0YV9jYWNoZV9zaXplX2hhbGYsICVlY3gKKyMgZW5kaWYKKyNlbmRpZgorCWpiIEwoc2hfMTVfbm9fcHJlZmV0Y2gpCiAKKwlsZWEJLTY0KCVlY3gpLCAlZWN4CisKKwkucDJhbGlnbiA0CitMKFNobDE1TG9vcFN0YXJ0KToKKwlwcmVmZXRjaHQwIDB4MWMwKCVlYXgpCisJcHJlZmV0Y2h0MCAweDFjMCglZWR4KQorCW1vdmFwcwkxKCVlYXgpLCAleG1tMgorCW1vdmFwcwkxNyglZWF4KSwgJXhtbTMKKwltb3ZhcHMJMzMoJWVheCksICV4bW00CisJbW92YXBzCTQ5KCVlYXgpLCAleG1tNQorCW1vdmFwcwkleG1tNSwgJXhtbTcKKwlwYWxpZ25yCSQxNSwgJXhtbTQsICV4bW01CisJcGFsaWducgkkMTUsICV4bW0zLCAleG1tNAorCW1vdmFwcwkleG1tNSwgNDgoJWVkeCkKKwlwYWxpZ25yCSQxNSwgJXhtbTIsICV4bW0zCisJbGVhCTY0KCVlYXgpLCAlZWF4CisJcGFsaWducgkkMTUsICV4bW0xLCAleG1tMgorCW1vdmFwcwkleG1tNCwgMzIoJWVkeCkKKwltb3ZhcHMJJXhtbTMsIDE2KCVlZHgpCisJbW92YXBzCSV4bW03LCAleG1tMQorCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbGVhCTY0KCVlZHgpLCAlZWR4CisJc3ViCSQ2NCwgJWVjeAorCWphCUwoU2hsMTVMb29wU3RhcnQpCisKK0woU2hsMTVMb29wTGVhdmUpOgorCWFkZAkkMzIsICVlY3gKKwlqbGUJTChzaGxfZW5kXzApCisKKwltb3ZhcHMJMSglZWF4KSwgJXhtbTIKKwltb3ZhcHMJMTcoJWVheCksICV4bW0zCisJcGFsaWducgkkMTUsICV4bW0yLCAleG1tMworCXBhbGlnbnIJJDE1LCAleG1tMSwgJXhtbTIKKworCW1vdmFwcwkleG1tMiwgKCVlZHgpCisJbW92YXBzCSV4bW0zLCAxNiglZWR4KQorCWxlYQkzMiglZWR4LCAlZWN4KSwgJWVkeAorCWxlYQkzMiglZWF4LCAlZWN4KSwgJWVheAorCVBPUCAoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCisJQ0ZJX1BVU0ggKCVlZGkpCisKKwkucDJhbGlnbiA0CitMKHNoXzE1X25vX3ByZWZldGNoKToKKwlsZWEJLTMyKCVlY3gpLCAlZWN4CisJbGVhCS0xNSglZWF4KSwgJWVheAorCXhvcgklZWRpLCAlZWRpCisKKwkucDJhbGlnbiA0CitMKHNoXzE1X25vX3ByZWZldGNoX2xvb3ApOgogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CiAJbW92ZHFhCTMyKCVlYXgsICVlZGkpLCAleG1tMwpAQCAtMTA4Myw4ICsxOTY3LDcgQEAKIAlsZWEJMzIoJWVkaSksICVlZGkKIAltb3ZkcWEJJXhtbTIsIC0zMiglZWR4LCAlZWRpKQogCW1vdmRxYQkleG1tMywgLTE2KCVlZHgsICVlZGkpCi0KLQlqYglMKHNobF8xNV9lbmQpCisJamIJTChzaF8xNV9lbmRfbm9fcHJlZmV0Y2hfbG9vcCkKIAogCW1vdmRxYQkxNiglZWF4LCAlZWRpKSwgJXhtbTIKIAlzdWIJJDMyLCAlZWN4CkBAIC0xMDk1LDUyICsxOTc4LDcwIEBACiAJbGVhCTMyKCVlZGkpLCAlZWRpCiAJbW92ZHFhCSV4bW0yLCAtMzIoJWVkeCwgJWVkaSkKIAltb3ZkcWEJJXhtbTMsIC0xNiglZWR4LCAlZWRpKQorCWphZQlMKHNoXzE1X25vX3ByZWZldGNoX2xvb3ApCiAKLQlqYWUJTChzaGxfMTVfbG9vcCkKLQotTChzaGxfMTVfZW5kKToKK0woc2hfMTVfZW5kX25vX3ByZWZldGNoX2xvb3ApOgogCWxlYQkzMiglZWN4KSwgJWVjeAogCWFkZAklZWN4LCAlZWRpCiAJYWRkCSVlZGksICVlZHgKIAlsZWEJMTUoJWVkaSwgJWVheCksICVlYXgKLQlQT1AgKCVlZGkpCi0JQlJBTkNIX1RPX0pNUFRCTF9FTlRSWV9UQUlMKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQorCVBPUAkoJWVkaSkKKwlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQogCisJQ0ZJX1BVU0ggKCVlZGkpCiAKLQlBTElHTiAoNCkKKwkucDJhbGlnbiA0CitMKHNobF9lbmRfMCk6CisJbGVhCTMyKCVlY3gpLCAlZWN4CisJbGVhCSglZWR4LCAlZWN4KSwgJWVkeAorCWxlYQkoJWVheCwgJWVjeCksICVlYXgKKwlQT1AJKCVlZGkpCisJQlJBTkNIX1RPX0pNUFRCTF9FTlRSWShMKHRhYmxlXzQ4Ynl0ZXNfZndkKSwgJWVjeCwgNCkKKworCS5wMmFsaWduIDQKIEwoZndkX3dyaXRlXzQ0Ynl0ZXMpOgotCW1vdmwJLTQ0KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtNDQoJWVkeCkKLUwoZndkX3dyaXRlXzQwYnl0ZXMpOgotCW1vdmwJLTQwKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtNDAoJWVkeCkKKwltb3ZxCS00NCglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtNDQoJWVkeCkKIEwoZndkX3dyaXRlXzM2Ynl0ZXMpOgotCW1vdmwJLTM2KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMzYoJWVkeCkKLUwoZndkX3dyaXRlXzMyYnl0ZXMpOgotCW1vdmwJLTMyKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMzIoJWVkeCkKKwltb3ZxCS0zNiglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMzYoJWVkeCkKIEwoZndkX3dyaXRlXzI4Ynl0ZXMpOgotCW1vdmwJLTI4KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMjgoJWVkeCkKLUwoZndkX3dyaXRlXzI0Ynl0ZXMpOgotCW1vdmwJLTI0KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMjQoJWVkeCkKKwltb3ZxCS0yOCglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMjgoJWVkeCkKIEwoZndkX3dyaXRlXzIwYnl0ZXMpOgotCW1vdmwJLTIwKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMjAoJWVkeCkKLUwoZndkX3dyaXRlXzE2Ynl0ZXMpOgotCW1vdmwJLTE2KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMTYoJWVkeCkKKwltb3ZxCS0yMCglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMjAoJWVkeCkKIEwoZndkX3dyaXRlXzEyYnl0ZXMpOgotCW1vdmwJLTEyKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMTIoJWVkeCkKLUwoZndkX3dyaXRlXzhieXRlcyk6Ci0JbW92bAktOCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTgoJWVkeCkKKwltb3ZxCS0xMiglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMTIoJWVkeCkKIEwoZndkX3dyaXRlXzRieXRlcyk6CiAJbW92bAktNCglZWF4KSwgJWVjeAogCW1vdmwJJWVjeCwgLTQoJWVkeCkKKyNpZm5kZWYgVVNFX0FTX0JDT1BZCisjIGlmZGVmIFVTRV9BU19NRU1QQ1BZCisJbW92bAklZWR4LCAlZWF4CisjIGVsc2UKKwltb3ZsCURFU1QoJWVzcCksICVlYXgKKyMgZW5kaWYKKyNlbmRpZgorCVJFVFVSTgorCisJLnAyYWxpZ24gNAorTChmd2Rfd3JpdGVfNDBieXRlcyk6CisJbW92cQktNDAoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTQwKCVlZHgpCitMKGZ3ZF93cml0ZV8zMmJ5dGVzKToKKwltb3ZxCS0zMiglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMzIoJWVkeCkKK0woZndkX3dyaXRlXzI0Ynl0ZXMpOgorCW1vdnEJLTI0KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0yNCglZWR4KQorTChmd2Rfd3JpdGVfMTZieXRlcyk6CisJbW92cQktMTYoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTE2KCVlZHgpCitMKGZ3ZF93cml0ZV84Ynl0ZXMpOgorCW1vdnEJLTgoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTgoJWVkeCkKIEwoZndkX3dyaXRlXzBieXRlcyk6CiAjaWZuZGVmIFVTRV9BU19CQ09QWQogIyBpZmRlZiBVU0VfQVNfTUVNUENQWQpAQCAtMTE1MSw3ICsyMDUyLDcgQEAKICNlbmRpZgogCVJFVFVSTgogCi0JQUxJR04gKDQpCisJLnAyYWxpZ24gNAogTChmd2Rfd3JpdGVfNWJ5dGVzKToKIAltb3ZsCS01KCVlYXgpLCAlZWN4CiAJbW92bAktNCglZWF4KSwgJWVheApAQCAtMTE2NiwzOSArMjA2Nyw1MSBAQAogI2VuZGlmCiAJUkVUVVJOCiAKLQlBTElHTiAoNCkKKwkucDJhbGlnbiA0CiBMKGZ3ZF93cml0ZV80NWJ5dGVzKToKLQltb3ZsCS00NSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTQ1KCVlZHgpCi1MKGZ3ZF93cml0ZV80MWJ5dGVzKToKLQltb3ZsCS00MSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTQxKCVlZHgpCisJbW92cQktNDUoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTQ1KCVlZHgpCiBMKGZ3ZF93cml0ZV8zN2J5dGVzKToKLQltb3ZsCS0zNyglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTM3KCVlZHgpCi1MKGZ3ZF93cml0ZV8zM2J5dGVzKToKLQltb3ZsCS0zMyglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTMzKCVlZHgpCisJbW92cQktMzcoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTM3KCVlZHgpCiBMKGZ3ZF93cml0ZV8yOWJ5dGVzKToKLQltb3ZsCS0yOSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTI5KCVlZHgpCi1MKGZ3ZF93cml0ZV8yNWJ5dGVzKToKLQltb3ZsCS0yNSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTI1KCVlZHgpCisJbW92cQktMjkoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTI5KCVlZHgpCiBMKGZ3ZF93cml0ZV8yMWJ5dGVzKToKLQltb3ZsCS0yMSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTIxKCVlZHgpCi1MKGZ3ZF93cml0ZV8xN2J5dGVzKToKLQltb3ZsCS0xNyglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTE3KCVlZHgpCisJbW92cQktMjEoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTIxKCVlZHgpCiBMKGZ3ZF93cml0ZV8xM2J5dGVzKToKLQltb3ZsCS0xMyglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgLTEzKCVlZHgpCi1MKGZ3ZF93cml0ZV85Ynl0ZXMpOgotCW1vdmwJLTkoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIC05KCVlZHgpCisJbW92cQktMTMoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTEzKCVlZHgpCiAJbW92bAktNSglZWF4KSwgJWVjeAogCW1vdmwJJWVjeCwgLTUoJWVkeCkKKwltb3Z6YmwJLTEoJWVheCksICVlY3gKKwltb3ZiCSVjbCwgLTEoJWVkeCkKKyNpZm5kZWYgVVNFX0FTX0JDT1BZCisjIGlmZGVmIFVTRV9BU19NRU1QQ1BZCisJbW92bAklZWR4LCAlZWF4CisjIGVsc2UKKwltb3ZsCURFU1QoJWVzcCksICVlYXgKKyMgZW5kaWYKKyNlbmRpZgorCVJFVFVSTgorCisJLnAyYWxpZ24gNAorTChmd2Rfd3JpdGVfNDFieXRlcyk6CisJbW92cQktNDEoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTQxKCVlZHgpCitMKGZ3ZF93cml0ZV8zM2J5dGVzKToKKwltb3ZxCS0zMyglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMzMoJWVkeCkKK0woZndkX3dyaXRlXzI1Ynl0ZXMpOgorCW1vdnEJLTI1KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0yNSglZWR4KQorTChmd2Rfd3JpdGVfMTdieXRlcyk6CisJbW92cQktMTcoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTE3KCVlZHgpCitMKGZ3ZF93cml0ZV85Ynl0ZXMpOgorCW1vdnEJLTkoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTkoJWVkeCkKIEwoZndkX3dyaXRlXzFieXRlcyk6CiAJbW92emJsCS0xKCVlYXgpLCAlZWN4CiAJbW92YgklY2wsIC0xKCVlZHgpCkBAIC0xMjExLDQwICsyMTI0LDUyIEBACiAjZW5kaWYKIAlSRVRVUk4KIAotCUFMSUdOICg0KQorCS5wMmFsaWduIDQKIEwoZndkX3dyaXRlXzQ2Ynl0ZXMpOgotCW1vdmwJLTQ2KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtNDYoJWVkeCkKLUwoZndkX3dyaXRlXzQyYnl0ZXMpOgotCW1vdmwJLTQyKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtNDIoJWVkeCkKKwltb3ZxCS00NiglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtNDYoJWVkeCkKIEwoZndkX3dyaXRlXzM4Ynl0ZXMpOgotCW1vdmwJLTM4KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMzgoJWVkeCkKLUwoZndkX3dyaXRlXzM0Ynl0ZXMpOgotCW1vdmwJLTM0KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMzQoJWVkeCkKKwltb3ZxCS0zOCglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMzgoJWVkeCkKIEwoZndkX3dyaXRlXzMwYnl0ZXMpOgotCW1vdmwJLTMwKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMzAoJWVkeCkKLUwoZndkX3dyaXRlXzI2Ynl0ZXMpOgotCW1vdmwJLTI2KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMjYoJWVkeCkKKwltb3ZxCS0zMCglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMzAoJWVkeCkKIEwoZndkX3dyaXRlXzIyYnl0ZXMpOgotCW1vdmwJLTIyKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMjIoJWVkeCkKLUwoZndkX3dyaXRlXzE4Ynl0ZXMpOgotCW1vdmwJLTE4KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMTgoJWVkeCkKKwltb3ZxCS0yMiglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMjIoJWVkeCkKIEwoZndkX3dyaXRlXzE0Ynl0ZXMpOgotCW1vdmwJLTE0KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMTQoJWVkeCkKLUwoZndkX3dyaXRlXzEwYnl0ZXMpOgotCW1vdmwJLTEwKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMTAoJWVkeCkKKwltb3ZxCS0xNCglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMTQoJWVkeCkKIEwoZndkX3dyaXRlXzZieXRlcyk6CiAJbW92bAktNiglZWF4KSwgJWVjeAogCW1vdmwJJWVjeCwgLTYoJWVkeCkKKwltb3Z6d2wJLTIoJWVheCksICVlY3gKKwltb3Z3CSVjeCwgLTIoJWVkeCkKKyNpZm5kZWYgVVNFX0FTX0JDT1BZCisjIGlmZGVmIFVTRV9BU19NRU1QQ1BZCisJbW92bAklZWR4LCAlZWF4CisjIGVsc2UKKwltb3ZsCURFU1QoJWVzcCksICVlYXgKKyMgZW5kaWYKKyNlbmRpZgorCVJFVFVSTgorCisJLnAyYWxpZ24gNAorTChmd2Rfd3JpdGVfNDJieXRlcyk6CisJbW92cQktNDIoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTQyKCVlZHgpCitMKGZ3ZF93cml0ZV8zNGJ5dGVzKToKKwltb3ZxCS0zNCglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMzQoJWVkeCkKK0woZndkX3dyaXRlXzI2Ynl0ZXMpOgorCW1vdnEJLTI2KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0yNiglZWR4KQorTChmd2Rfd3JpdGVfMThieXRlcyk6CisJbW92cQktMTgoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTE4KCVlZHgpCitMKGZ3ZF93cml0ZV8xMGJ5dGVzKToKKwltb3ZxCS0xMCglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMTAoJWVkeCkKIEwoZndkX3dyaXRlXzJieXRlcyk6CiAJbW92endsCS0yKCVlYXgpLCAlZWN4CiAJbW92dwklY3gsIC0yKCVlZHgpCkBAIC0xMjU3LDQwICsyMTgyLDU0IEBACiAjZW5kaWYKIAlSRVRVUk4KIAotCUFMSUdOICg0KQorCS5wMmFsaWduIDQKIEwoZndkX3dyaXRlXzQ3Ynl0ZXMpOgotCW1vdmwJLTQ3KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtNDcoJWVkeCkKLUwoZndkX3dyaXRlXzQzYnl0ZXMpOgotCW1vdmwJLTQzKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtNDMoJWVkeCkKKwltb3ZxCS00NyglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtNDcoJWVkeCkKIEwoZndkX3dyaXRlXzM5Ynl0ZXMpOgotCW1vdmwJLTM5KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMzkoJWVkeCkKLUwoZndkX3dyaXRlXzM1Ynl0ZXMpOgotCW1vdmwJLTM1KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMzUoJWVkeCkKKwltb3ZxCS0zOSglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMzkoJWVkeCkKIEwoZndkX3dyaXRlXzMxYnl0ZXMpOgotCW1vdmwJLTMxKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMzEoJWVkeCkKLUwoZndkX3dyaXRlXzI3Ynl0ZXMpOgotCW1vdmwJLTI3KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMjcoJWVkeCkKKwltb3ZxCS0zMSglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMzEoJWVkeCkKIEwoZndkX3dyaXRlXzIzYnl0ZXMpOgotCW1vdmwJLTIzKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMjMoJWVkeCkKLUwoZndkX3dyaXRlXzE5Ynl0ZXMpOgotCW1vdmwJLTE5KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMTkoJWVkeCkKKwltb3ZxCS0yMyglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMjMoJWVkeCkKIEwoZndkX3dyaXRlXzE1Ynl0ZXMpOgotCW1vdmwJLTE1KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMTUoJWVkeCkKLUwoZndkX3dyaXRlXzExYnl0ZXMpOgotCW1vdmwJLTExKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAtMTEoJWVkeCkKKwltb3ZxCS0xNSglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMTUoJWVkeCkKIEwoZndkX3dyaXRlXzdieXRlcyk6CiAJbW92bAktNyglZWF4KSwgJWVjeAogCW1vdmwJJWVjeCwgLTcoJWVkeCkKKwltb3Z6d2wJLTMoJWVheCksICVlY3gKKwltb3Z6YmwJLTEoJWVheCksICVlYXgKKwltb3Z3CSVjeCwgLTMoJWVkeCkKKwltb3ZiCSVhbCwgLTEoJWVkeCkKKyNpZm5kZWYgVVNFX0FTX0JDT1BZCisjIGlmZGVmIFVTRV9BU19NRU1QQ1BZCisJbW92bAklZWR4LCAlZWF4CisjIGVsc2UKKwltb3ZsCURFU1QoJWVzcCksICVlYXgKKyMgZW5kaWYKKyNlbmRpZgorCVJFVFVSTgorCisJLnAyYWxpZ24gNAorTChmd2Rfd3JpdGVfNDNieXRlcyk6CisJbW92cQktNDMoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTQzKCVlZHgpCitMKGZ3ZF93cml0ZV8zNWJ5dGVzKToKKwltb3ZxCS0zNSglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMzUoJWVkeCkKK0woZndkX3dyaXRlXzI3Ynl0ZXMpOgorCW1vdnEJLTI3KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0yNyglZWR4KQorTChmd2Rfd3JpdGVfMTlieXRlcyk6CisJbW92cQktMTkoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTE5KCVlZHgpCitMKGZ3ZF93cml0ZV8xMWJ5dGVzKToKKwltb3ZxCS0xMSglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMTEoJWVkeCkKIEwoZndkX3dyaXRlXzNieXRlcyk6CiAJbW92endsCS0zKCVlYXgpLCAlZWN4CiAJbW92emJsCS0xKCVlYXgpLCAlZWF4CkBAIC0xMzAzLDIwICsyMjQyLDM3NCBAQAogCW1vdmwJREVTVCglZXNwKSwgJWVheAogIyBlbmRpZgogI2VuZGlmCisJUkVUVVJOCisKKwkucDJhbGlnbiA0CitMKGZ3ZF93cml0ZV80MGJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTQwKCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTQwKCVlZHgpCitMKGZ3ZF93cml0ZV8yNGJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTI0KCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTI0KCVlZHgpCitMKGZ3ZF93cml0ZV84Ynl0ZXNfYWxpZ24pOgorCW1vdnEJLTgoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTgoJWVkeCkKK0woZndkX3dyaXRlXzBieXRlc19hbGlnbik6CisjaWZuZGVmIFVTRV9BU19CQ09QWQorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJJWVkeCwgJWVheAorIyBlbHNlCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woZndkX3dyaXRlXzMyYnl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMzIoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMzIoJWVkeCkKK0woZndkX3dyaXRlXzE2Ynl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMTYoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMTYoJWVkeCkKKyNpZm5kZWYgVVNFX0FTX0JDT1BZCisjIGlmZGVmIFVTRV9BU19NRU1QQ1BZCisJbW92bAklZWR4LCAlZWF4CisjIGVsc2UKKwltb3ZsCURFU1QoJWVzcCksICVlYXgKKyMgZW5kaWYKKyNlbmRpZgorCVJFVFVSTgorCisJLnAyYWxpZ24gNAorTChmd2Rfd3JpdGVfNWJ5dGVzX2FsaWduKToKKwltb3ZsCS01KCVlYXgpLCAlZWN4CisJbW92bAktNCglZWF4KSwgJWVheAorCW1vdmwJJWVjeCwgLTUoJWVkeCkKKwltb3ZsCSVlYXgsIC00KCVlZHgpCisjaWZuZGVmIFVTRV9BU19CQ09QWQorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJJWVkeCwgJWVheAorIyBlbHNlCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woZndkX3dyaXRlXzQ1Ynl0ZXNfYWxpZ24pOgorCW1vdmRxYQktNDUoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtNDUoJWVkeCkKK0woZndkX3dyaXRlXzI5Ynl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMjkoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMjkoJWVkeCkKK0woZndkX3dyaXRlXzEzYnl0ZXNfYWxpZ24pOgorCW1vdnEJLTEzKCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIC0xMyglZWR4KQorCW1vdmwJLTUoJWVheCksICVlY3gKKwltb3ZsCSVlY3gsIC01KCVlZHgpCisJbW92emJsCS0xKCVlYXgpLCAlZWN4CisJbW92YgklY2wsIC0xKCVlZHgpCisjaWZuZGVmIFVTRV9BU19CQ09QWQorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJJWVkeCwgJWVheAorIyBlbHNlCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woZndkX3dyaXRlXzM3Ynl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMzcoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMzcoJWVkeCkKK0woZndkX3dyaXRlXzIxYnl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMjEoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMjEoJWVkeCkKKwltb3ZsCS01KCVlYXgpLCAlZWN4CisJbW92bAklZWN4LCAtNSglZWR4KQorCW1vdnpibAktMSglZWF4KSwgJWVjeAorCW1vdmIJJWNsLCAtMSglZWR4KQorI2lmbmRlZiBVU0VfQVNfQkNPUFkKKyMgaWZkZWYgVVNFX0FTX01FTVBDUFkKKwltb3ZsCSVlZHgsICVlYXgKKyMgZWxzZQorCW1vdmwJREVTVCglZXNwKSwgJWVheAorIyBlbmRpZgorI2VuZGlmCisJUkVUVVJOCisKKwkucDJhbGlnbiA0CitMKGZ3ZF93cml0ZV80MWJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTQxKCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTQxKCVlZHgpCitMKGZ3ZF93cml0ZV8yNWJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTI1KCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTI1KCVlZHgpCitMKGZ3ZF93cml0ZV85Ynl0ZXNfYWxpZ24pOgorCW1vdnEJLTkoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTkoJWVkeCkKK0woZndkX3dyaXRlXzFieXRlc19hbGlnbik6CisJbW92emJsCS0xKCVlYXgpLCAlZWN4CisJbW92YgklY2wsIC0xKCVlZHgpCisjaWZuZGVmIFVTRV9BU19CQ09QWQorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJJWVkeCwgJWVheAorIyBlbHNlCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woZndkX3dyaXRlXzMzYnl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMzMoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMzMoJWVkeCkKK0woZndkX3dyaXRlXzE3Ynl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMTcoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMTcoJWVkeCkKKwltb3Z6YmwJLTEoJWVheCksICVlY3gKKwltb3ZiCSVjbCwgLTEoJWVkeCkKKyNpZm5kZWYgVVNFX0FTX0JDT1BZCisjIGlmZGVmIFVTRV9BU19NRU1QQ1BZCisJbW92bAklZWR4LCAlZWF4CisjIGVsc2UKKwltb3ZsCURFU1QoJWVzcCksICVlYXgKKyMgZW5kaWYKKyNlbmRpZgorCVJFVFVSTgorCisJLnAyYWxpZ24gNAorTChmd2Rfd3JpdGVfNDZieXRlc19hbGlnbik6CisJbW92ZHFhCS00NiglZWF4KSwgJXhtbTAKKwltb3ZkcWEJJXhtbTAsIC00NiglZWR4KQorTChmd2Rfd3JpdGVfMzBieXRlc19hbGlnbik6CisJbW92ZHFhCS0zMCglZWF4KSwgJXhtbTAKKwltb3ZkcWEJJXhtbTAsIC0zMCglZWR4KQorTChmd2Rfd3JpdGVfMTRieXRlc19hbGlnbik6CisJbW92cQktMTQoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTE0KCVlZHgpCitMKGZ3ZF93cml0ZV82Ynl0ZXNfYWxpZ24pOgorCW1vdmwJLTYoJWVheCksICVlY3gKKwltb3ZsCSVlY3gsIC02KCVlZHgpCisJbW92endsCS0yKCVlYXgpLCAlZWN4CisJbW92dwklY3gsIC0yKCVlZHgpCisjaWZuZGVmIFVTRV9BU19CQ09QWQorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJJWVkeCwgJWVheAorIyBlbHNlCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woZndkX3dyaXRlXzM4Ynl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMzgoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMzgoJWVkeCkKK0woZndkX3dyaXRlXzIyYnl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMjIoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMjIoJWVkeCkKKwltb3ZsCS02KCVlYXgpLCAlZWN4CisJbW92bAklZWN4LCAtNiglZWR4KQorCW1vdnp3bAktMiglZWF4KSwgJWVjeAorCW1vdncJJWN4LCAtMiglZWR4KQorI2lmbmRlZiBVU0VfQVNfQkNPUFkKKyMgaWZkZWYgVVNFX0FTX01FTVBDUFkKKwltb3ZsCSVlZHgsICVlYXgKKyMgZWxzZQorCW1vdmwJREVTVCglZXNwKSwgJWVheAorIyBlbmRpZgorI2VuZGlmCisJUkVUVVJOCisKKwkucDJhbGlnbiA0CitMKGZ3ZF93cml0ZV80MmJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTQyKCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTQyKCVlZHgpCitMKGZ3ZF93cml0ZV8yNmJ5dGVzX2FsaWduKToKKwltb3ZkcWEJLTI2KCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTI2KCVlZHgpCitMKGZ3ZF93cml0ZV8xMGJ5dGVzX2FsaWduKToKKwltb3ZxCS0xMCglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMTAoJWVkeCkKK0woZndkX3dyaXRlXzJieXRlc19hbGlnbik6CisJbW92endsCS0yKCVlYXgpLCAlZWN4CisJbW92dwklY3gsIC0yKCVlZHgpCisjaWZuZGVmIFVTRV9BU19CQ09QWQorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJJWVkeCwgJWVheAorIyBlbHNlCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woZndkX3dyaXRlXzM0Ynl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMzQoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMzQoJWVkeCkKK0woZndkX3dyaXRlXzE4Ynl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMTgoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMTgoJWVkeCkKKwltb3Z6d2wJLTIoJWVheCksICVlY3gKKwltb3Z3CSVjeCwgLTIoJWVkeCkKKyNpZm5kZWYgVVNFX0FTX0JDT1BZCisjIGlmZGVmIFVTRV9BU19NRU1QQ1BZCisJbW92bAklZWR4LCAlZWF4CisjIGVsc2UKKwltb3ZsCURFU1QoJWVzcCksICVlYXgKKyMgZW5kaWYKKyNlbmRpZgorCVJFVFVSTgorCisJLnAyYWxpZ24gNAorTChmd2Rfd3JpdGVfNDdieXRlc19hbGlnbik6CisJbW92ZHFhCS00NyglZWF4KSwgJXhtbTAKKwltb3ZkcWEJJXhtbTAsIC00NyglZWR4KQorTChmd2Rfd3JpdGVfMzFieXRlc19hbGlnbik6CisJbW92ZHFhCS0zMSglZWF4KSwgJXhtbTAKKwltb3ZkcWEJJXhtbTAsIC0zMSglZWR4KQorTChmd2Rfd3JpdGVfMTVieXRlc19hbGlnbik6CisJbW92cQktMTUoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTE1KCVlZHgpCitMKGZ3ZF93cml0ZV83Ynl0ZXNfYWxpZ24pOgorCW1vdmwJLTcoJWVheCksICVlY3gKKwltb3ZsCSVlY3gsIC03KCVlZHgpCisJbW92endsCS0zKCVlYXgpLCAlZWN4CisJbW92emJsCS0xKCVlYXgpLCAlZWF4CisJbW92dwklY3gsIC0zKCVlZHgpCisJbW92YgklYWwsIC0xKCVlZHgpCisjaWZuZGVmIFVTRV9BU19CQ09QWQorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJJWVkeCwgJWVheAorIyBlbHNlCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woZndkX3dyaXRlXzM5Ynl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMzkoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMzkoJWVkeCkKK0woZndkX3dyaXRlXzIzYnl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMjMoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMjMoJWVkeCkKKwltb3ZsCS03KCVlYXgpLCAlZWN4CisJbW92bAklZWN4LCAtNyglZWR4KQorCW1vdnp3bAktMyglZWF4KSwgJWVjeAorCW1vdnpibAktMSglZWF4KSwgJWVheAorCW1vdncJJWN4LCAtMyglZWR4KQorCW1vdmIJJWFsLCAtMSglZWR4KQorI2lmbmRlZiBVU0VfQVNfQkNPUFkKKyMgaWZkZWYgVVNFX0FTX01FTVBDUFkKKwltb3ZsCSVlZHgsICVlYXgKKyMgZWxzZQorCW1vdmwJREVTVCglZXNwKSwgJWVheAorIyBlbmRpZgorI2VuZGlmCisJUkVUVVJOCisKKwkucDJhbGlnbiA0CitMKGZ3ZF93cml0ZV80M2J5dGVzX2FsaWduKToKKwltb3ZkcWEJLTQzKCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTQzKCVlZHgpCitMKGZ3ZF93cml0ZV8yN2J5dGVzX2FsaWduKToKKwltb3ZkcWEJLTI3KCVlYXgpLCAleG1tMAorCW1vdmRxYQkleG1tMCwgLTI3KCVlZHgpCitMKGZ3ZF93cml0ZV8xMWJ5dGVzX2FsaWduKToKKwltb3ZxCS0xMSglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAtMTEoJWVkeCkKK0woZndkX3dyaXRlXzNieXRlc19hbGlnbik6CisJbW92endsCS0zKCVlYXgpLCAlZWN4CisJbW92emJsCS0xKCVlYXgpLCAlZWF4CisJbW92dwklY3gsIC0zKCVlZHgpCisJbW92YgklYWwsIC0xKCVlZHgpCisjaWZuZGVmIFVTRV9BU19CQ09QWQorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJJWVkeCwgJWVheAorIyBlbHNlCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woZndkX3dyaXRlXzM1Ynl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMzUoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMzUoJWVkeCkKK0woZndkX3dyaXRlXzE5Ynl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMTkoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMTkoJWVkeCkKKwltb3Z6d2wJLTMoJWVheCksICVlY3gKKwltb3Z6YmwJLTEoJWVheCksICVlYXgKKwltb3Z3CSVjeCwgLTMoJWVkeCkKKwltb3ZiCSVhbCwgLTEoJWVkeCkKKyNpZm5kZWYgVVNFX0FTX0JDT1BZCisjIGlmZGVmIFVTRV9BU19NRU1QQ1BZCisJbW92bAklZWR4LCAlZWF4CisjIGVsc2UKKwltb3ZsCURFU1QoJWVzcCksICVlYXgKKyMgZW5kaWYKKyNlbmRpZgorCVJFVFVSTgorCisJLnAyYWxpZ24gNAorTChmd2Rfd3JpdGVfNDRieXRlc19hbGlnbik6CisJbW92ZHFhCS00NCglZWF4KSwgJXhtbTAKKwltb3ZkcWEJJXhtbTAsIC00NCglZWR4KQorTChmd2Rfd3JpdGVfMjhieXRlc19hbGlnbik6CisJbW92ZHFhCS0yOCglZWF4KSwgJXhtbTAKKwltb3ZkcWEJJXhtbTAsIC0yOCglZWR4KQorTChmd2Rfd3JpdGVfMTJieXRlc19hbGlnbik6CisJbW92cQktMTIoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgLTEyKCVlZHgpCitMKGZ3ZF93cml0ZV80Ynl0ZXNfYWxpZ24pOgorCW1vdmwJLTQoJWVheCksICVlY3gKKwltb3ZsCSVlY3gsIC00KCVlZHgpCisjaWZuZGVmIFVTRV9BU19CQ09QWQorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJJWVkeCwgJWVheAorIyBlbHNlCisJbW92bAlERVNUKCVlc3ApLCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woZndkX3dyaXRlXzM2Ynl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMzYoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMzYoJWVkeCkKK0woZndkX3dyaXRlXzIwYnl0ZXNfYWxpZ24pOgorCW1vdmRxYQktMjAoJWVheCksICV4bW0wCisJbW92ZHFhCSV4bW0wLCAtMjAoJWVkeCkKKwltb3ZsCS00KCVlYXgpLCAlZWN4CisJbW92bAklZWN4LCAtNCglZWR4KQorI2lmbmRlZiBVU0VfQVNfQkNPUFkKKyMgaWZkZWYgVVNFX0FTX01FTVBDUFkKKwltb3ZsCSVlZHgsICVlYXgKKyMgZWxzZQorCW1vdmwJREVTVCglZXNwKSwgJWVheAorIyBlbmRpZgorI2VuZGlmCiAJUkVUVVJOX0VORAogCi0JY2ZpX3Jlc3RvcmVfc3RhdGUKLQljZmlfcmVtZW1iZXJfc3RhdGUKLQlBTElHTiAoNCkKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKIEwobGFyZ2VfcGFnZSk6CiAJbW92ZHF1CSglZWF4KSwgJXhtbTEKKyNpZmRlZiBVU0VfQVNfTUVNTU9WRQorCW1vdmwJREVTVCs0KCVlc3ApLCAlZWRpCisJbW92ZHF1CSV4bW0wLCAoJWVkaSkKKyNlbmRpZgogCWxlYQkxNiglZWF4KSwgJWVheAotCW1vdmRxdQkleG1tMCwgKCVlc2kpCiAJbW92bnRkcQkleG1tMSwgKCVlZHgpCiAJbGVhCTE2KCVlZHgpLCAlZWR4Ci0JUE9QICglZXNpKQogCWxlYQktMHg5MCglZWN4KSwgJWVjeAogCVBPUCAoJWVkaSkKKworCS5wMmFsaWduIDQKIEwobGFyZ2VfcGFnZV9sb29wKToKIAltb3ZkcXUJKCVlYXgpLCAleG1tMAogCW1vdmRxdQkweDEwKCVlYXgpLCAleG1tMQpAQCAtMTM3MSwzOCArMjY2NCwyMiBAQAogCXNmZW5jZQogCUJSQU5DSF9UT19KTVBUQkxfRU5UUlkgKEwodGFibGVfNDhieXRlc19md2QpLCAlZWN4LCA0KQogCi0KLQlBTElHTiAoNCkKKwkucDJhbGlnbiA0CiBMKGJrX3dyaXRlXzQ0Ynl0ZXMpOgotCW1vdmwJNDAoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDQwKCVlZHgpCi1MKGJrX3dyaXRlXzQwYnl0ZXMpOgotCW1vdmwJMzYoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDM2KCVlZHgpCisJbW92cQkzNiglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAzNiglZWR4KQogTChia193cml0ZV8zNmJ5dGVzKToKLQltb3ZsCTMyKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAzMiglZWR4KQotTChia193cml0ZV8zMmJ5dGVzKToKLQltb3ZsCTI4KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAyOCglZWR4KQorCW1vdnEJMjgoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMjgoJWVkeCkKIEwoYmtfd3JpdGVfMjhieXRlcyk6Ci0JbW92bAkyNCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMjQoJWVkeCkKLUwoYmtfd3JpdGVfMjRieXRlcyk6Ci0JbW92bAkyMCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMjAoJWVkeCkKKwltb3ZxCTIwKCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDIwKCVlZHgpCiBMKGJrX3dyaXRlXzIwYnl0ZXMpOgotCW1vdmwJMTYoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDE2KCVlZHgpCi1MKGJrX3dyaXRlXzE2Ynl0ZXMpOgotCW1vdmwJMTIoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDEyKCVlZHgpCisJbW92cQkxMiglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAxMiglZWR4KQogTChia193cml0ZV8xMmJ5dGVzKToKLQltb3ZsCTgoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDgoJWVkeCkKLUwoYmtfd3JpdGVfOGJ5dGVzKToKLQltb3ZsCTQoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDQoJWVkeCkKKwltb3ZxCTQoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgNCglZWR4KQogTChia193cml0ZV80Ynl0ZXMpOgogCW1vdmwJKCVlYXgpLCAlZWN4CiAJbW92bAklZWN4LCAoJWVkeCkKQEAgLTE0MTYsMzcgKzI2OTMsNDcgQEAKICNlbmRpZgogCVJFVFVSTgogCi0JQUxJR04gKDQpCisJLnAyYWxpZ24gNAorTChia193cml0ZV80MGJ5dGVzKToKKwltb3ZxCTMyKCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDMyKCVlZHgpCitMKGJrX3dyaXRlXzMyYnl0ZXMpOgorCW1vdnEJMjQoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMjQoJWVkeCkKK0woYmtfd3JpdGVfMjRieXRlcyk6CisJbW92cQkxNiglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAxNiglZWR4KQorTChia193cml0ZV8xNmJ5dGVzKToKKwltb3ZxCTgoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgOCglZWR4KQorTChia193cml0ZV84Ynl0ZXMpOgorCW1vdnEJKCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsICglZWR4KQorI2lmbmRlZiBVU0VfQVNfQkNPUFkKKwltb3ZsCURFU1QoJWVzcCksICVlYXgKKyMgaWZkZWYgVVNFX0FTX01FTVBDUFkKKwltb3ZsCUxFTiglZXNwKSwgJWVjeAorCWFkZAklZWN4LCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKIEwoYmtfd3JpdGVfNDVieXRlcyk6Ci0JbW92bAk0MSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgNDEoJWVkeCkKLUwoYmtfd3JpdGVfNDFieXRlcyk6Ci0JbW92bAkzNyglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMzcoJWVkeCkKKwltb3ZxCTM3KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDM3KCVlZHgpCiBMKGJrX3dyaXRlXzM3Ynl0ZXMpOgotCW1vdmwJMzMoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDMzKCVlZHgpCi1MKGJrX3dyaXRlXzMzYnl0ZXMpOgotCW1vdmwJMjkoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDI5KCVlZHgpCisJbW92cQkyOSglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAyOSglZWR4KQogTChia193cml0ZV8yOWJ5dGVzKToKLQltb3ZsCTI1KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAyNSglZWR4KQotTChia193cml0ZV8yNWJ5dGVzKToKLQltb3ZsCTIxKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAyMSglZWR4KQorCW1vdnEJMjEoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMjEoJWVkeCkKIEwoYmtfd3JpdGVfMjFieXRlcyk6Ci0JbW92bAkxNyglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMTcoJWVkeCkKLUwoYmtfd3JpdGVfMTdieXRlcyk6Ci0JbW92bAkxMyglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMTMoJWVkeCkKKwltb3ZxCTEzKCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDEzKCVlZHgpCiBMKGJrX3dyaXRlXzEzYnl0ZXMpOgotCW1vdmwJOSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgOSglZWR4KQotTChia193cml0ZV85Ynl0ZXMpOgotCW1vdmwJNSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgNSglZWR4KQorCW1vdnEJNSglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCA1KCVlZHgpCiBMKGJrX3dyaXRlXzVieXRlcyk6CiAJbW92bAkxKCVlYXgpLCAlZWN4CiAJbW92bAklZWN4LCAxKCVlZHgpCkBAIC0xNDYyLDQwICsyNzQ5LDc5IEBACiAjZW5kaWYKIAlSRVRVUk4KIAotCUFMSUdOICg0KQorCS5wMmFsaWduIDQKK0woYmtfd3JpdGVfNDFieXRlcyk6CisJbW92cQkzMyglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAzMyglZWR4KQorTChia193cml0ZV8zM2J5dGVzKToKKwltb3ZxCTI1KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDI1KCVlZHgpCitMKGJrX3dyaXRlXzI1Ynl0ZXMpOgorCW1vdnEJMTcoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMTcoJWVkeCkKK0woYmtfd3JpdGVfMTdieXRlcyk6CisJbW92cQk5KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDkoJWVkeCkKK0woYmtfd3JpdGVfOWJ5dGVzKToKKwltb3ZxCTEoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMSglZWR4KQorCW1vdnpibAkoJWVheCksICVlY3gKKwltb3ZiCSVjbCwgKCVlZHgpCisjaWZuZGVmIFVTRV9BU19CQ09QWQorCW1vdmwJREVTVCglZXNwKSwgJWVheAorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJTEVOKCVlc3ApLCAlZWN4CisJYWRkCSVlY3gsICVlYXgKKyMgZW5kaWYKKyNlbmRpZgorCVJFVFVSTgorCisJLnAyYWxpZ24gNAogTChia193cml0ZV80NmJ5dGVzKToKLQltb3ZsCTQyKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCA0MiglZWR4KQotTChia193cml0ZV80MmJ5dGVzKToKLQltb3ZsCTM4KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAzOCglZWR4KQorCW1vdnEJMzgoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMzgoJWVkeCkKIEwoYmtfd3JpdGVfMzhieXRlcyk6Ci0JbW92bAkzNCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMzQoJWVkeCkKLUwoYmtfd3JpdGVfMzRieXRlcyk6Ci0JbW92bAkzMCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMzAoJWVkeCkKKwltb3ZxCTMwKCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDMwKCVlZHgpCiBMKGJrX3dyaXRlXzMwYnl0ZXMpOgotCW1vdmwJMjYoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDI2KCVlZHgpCi1MKGJrX3dyaXRlXzI2Ynl0ZXMpOgotCW1vdmwJMjIoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDIyKCVlZHgpCisJbW92cQkyMiglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAyMiglZWR4KQogTChia193cml0ZV8yMmJ5dGVzKToKLQltb3ZsCTE4KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAxOCglZWR4KQotTChia193cml0ZV8xOGJ5dGVzKToKLQltb3ZsCTE0KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAxNCglZWR4KQorCW1vdnEJMTQoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMTQoJWVkeCkKIEwoYmtfd3JpdGVfMTRieXRlcyk6Ci0JbW92bAkxMCglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMTAoJWVkeCkKLUwoYmtfd3JpdGVfMTBieXRlcyk6Ci0JbW92bAk2KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCA2KCVlZHgpCisJbW92cQk2KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDYoJWVkeCkKIEwoYmtfd3JpdGVfNmJ5dGVzKToKIAltb3ZsCTIoJWVheCksICVlY3gKIAltb3ZsCSVlY3gsIDIoJWVkeCkKKwltb3Z6d2wJKCVlYXgpLCAlZWN4CisJbW92dwklY3gsICglZWR4KQorI2lmbmRlZiBVU0VfQVNfQkNPUFkKKwltb3ZsCURFU1QoJWVzcCksICVlYXgKKyMgaWZkZWYgVVNFX0FTX01FTVBDUFkKKwltb3ZsCUxFTiglZXNwKSwgJWVjeAorCWFkZAklZWN4LCAlZWF4CisjIGVuZGlmCisjZW5kaWYKKwlSRVRVUk4KKworCS5wMmFsaWduIDQKK0woYmtfd3JpdGVfNDJieXRlcyk6CisJbW92cQkzNCglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAzNCglZWR4KQorTChia193cml0ZV8zNGJ5dGVzKToKKwltb3ZxCTI2KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDI2KCVlZHgpCitMKGJrX3dyaXRlXzI2Ynl0ZXMpOgorCW1vdnEJMTgoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMTgoJWVkeCkKK0woYmtfd3JpdGVfMThieXRlcyk6CisJbW92cQkxMCglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAxMCglZWR4KQorTChia193cml0ZV8xMGJ5dGVzKToKKwltb3ZxCTIoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMiglZWR4KQogTChia193cml0ZV8yYnl0ZXMpOgogCW1vdnp3bAkoJWVheCksICVlY3gKIAltb3Z3CSVjeCwgKCVlZHgpCkBAIC0xNTA4LDQwICsyODM0LDU0IEBACiAjZW5kaWYKIAlSRVRVUk4KIAotCUFMSUdOICg0KQorCS5wMmFsaWduIDQKIEwoYmtfd3JpdGVfNDdieXRlcyk6Ci0JbW92bAk0MyglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgNDMoJWVkeCkKLUwoYmtfd3JpdGVfNDNieXRlcyk6Ci0JbW92bAkzOSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMzkoJWVkeCkKKwltb3ZxCTM5KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDM5KCVlZHgpCiBMKGJrX3dyaXRlXzM5Ynl0ZXMpOgotCW1vdmwJMzUoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDM1KCVlZHgpCi1MKGJrX3dyaXRlXzM1Ynl0ZXMpOgotCW1vdmwJMzEoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDMxKCVlZHgpCisJbW92cQkzMSglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAzMSglZWR4KQogTChia193cml0ZV8zMWJ5dGVzKToKLQltb3ZsCTI3KCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAyNyglZWR4KQotTChia193cml0ZV8yN2J5dGVzKToKLQltb3ZsCTIzKCVlYXgpLCAlZWN4Ci0JbW92bAklZWN4LCAyMyglZWR4KQorCW1vdnEJMjMoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMjMoJWVkeCkKIEwoYmtfd3JpdGVfMjNieXRlcyk6Ci0JbW92bAkxOSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMTkoJWVkeCkKLUwoYmtfd3JpdGVfMTlieXRlcyk6Ci0JbW92bAkxNSglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgMTUoJWVkeCkKKwltb3ZxCTE1KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDE1KCVlZHgpCiBMKGJrX3dyaXRlXzE1Ynl0ZXMpOgotCW1vdmwJMTEoJWVheCksICVlY3gKLQltb3ZsCSVlY3gsIDExKCVlZHgpCi1MKGJrX3dyaXRlXzExYnl0ZXMpOgotCW1vdmwJNyglZWF4KSwgJWVjeAotCW1vdmwJJWVjeCwgNyglZWR4KQorCW1vdnEJNyglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCA3KCVlZHgpCiBMKGJrX3dyaXRlXzdieXRlcyk6CiAJbW92bAkzKCVlYXgpLCAlZWN4CiAJbW92bAklZWN4LCAzKCVlZHgpCisJbW92endsCTEoJWVheCksICVlY3gKKwltb3Z3CSVjeCwgMSglZWR4KQorCW1vdnpibAkoJWVheCksICVlYXgKKwltb3ZiCSVhbCwgKCVlZHgpCisjaWZuZGVmIFVTRV9BU19CQ09QWQorCW1vdmwJREVTVCglZXNwKSwgJWVheAorIyBpZmRlZiBVU0VfQVNfTUVNUENQWQorCW1vdmwJTEVOKCVlc3ApLCAlZWN4CisJYWRkCSVlY3gsICVlYXgKKyMgZW5kaWYKKyNlbmRpZgorCVJFVFVSTgorCisJLnAyYWxpZ24gNAorTChia193cml0ZV80M2J5dGVzKToKKwltb3ZxCTM1KCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDM1KCVlZHgpCitMKGJrX3dyaXRlXzM1Ynl0ZXMpOgorCW1vdnEJMjcoJWVheCksICV4bW0wCisJbW92cQkleG1tMCwgMjcoJWVkeCkKK0woYmtfd3JpdGVfMjdieXRlcyk6CisJbW92cQkxOSglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAxOSglZWR4KQorTChia193cml0ZV8xOWJ5dGVzKToKKwltb3ZxCTExKCVlYXgpLCAleG1tMAorCW1vdnEJJXhtbTAsIDExKCVlZHgpCitMKGJrX3dyaXRlXzExYnl0ZXMpOgorCW1vdnEJMyglZWF4KSwgJXhtbTAKKwltb3ZxCSV4bW0wLCAzKCVlZHgpCiBMKGJrX3dyaXRlXzNieXRlcyk6CiAJbW92endsCTEoJWVheCksICVlY3gKIAltb3Z3CSVjeCwgMSglZWR4KQpAQCAtMTU1OCw3ICsyODk4LDcgQEAKIAogCiAJLnB1c2hzZWN0aW9uIC5yb2RhdGEuc3NzZTMsImEiLEBwcm9nYml0cwotCUFMSUdOICgyKQorCS5wMmFsaWduIDIKIEwodGFibGVfNDhieXRlc19md2QpOgogCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8wYnl0ZXMpLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkKSkKIAkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMWJ5dGVzKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZCkpCkBAIC0xNjA5LDcgKzI5NDksNTggQEAKIAkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfNDZieXRlcyksIEwodGFibGVfNDhieXRlc19md2QpKQogCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV80N2J5dGVzKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZCkpCiAKLQlBTElHTiAoMikKKwkucDJhbGlnbiAyCitMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKToKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMGJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzFieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8yYnl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfM2J5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzRieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV81Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfNmJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzdieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV84Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfOWJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzEwYnl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMTFieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8xMmJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzEzYnl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMTRieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8xNWJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzE2Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMTdieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8xOGJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzE5Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMjBieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8yMWJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzIyYnl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMjNieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8yNGJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzI1Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMjZieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8yN2J5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzI4Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMjlieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8zMGJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzMxYnl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMzJieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8zM2J5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzM0Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMzVieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8zNmJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzM3Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfMzhieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV8zOWJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzQwYnl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfNDFieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV80MmJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzQzYnl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfNDRieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCS5pbnQJSk1QVEJMIChMKGZ3ZF93cml0ZV80NWJ5dGVzX2FsaWduKSwgTCh0YWJsZV80OGJ5dGVzX2Z3ZF9hbGlnbikpCisJLmludAlKTVBUQkwgKEwoZndkX3dyaXRlXzQ2Ynl0ZXNfYWxpZ24pLCBMKHRhYmxlXzQ4Ynl0ZXNfZndkX2FsaWduKSkKKwkuaW50CUpNUFRCTCAoTChmd2Rfd3JpdGVfNDdieXRlc19hbGlnbiksIEwodGFibGVfNDhieXRlc19md2RfYWxpZ24pKQorCisJLnAyYWxpZ24gMgogTChzaGxfdGFibGUpOgogCS5pbnQJSk1QVEJMIChMKHNobF8wKSwgTChzaGxfdGFibGUpKQogCS5pbnQJSk1QVEJMIChMKHNobF8xKSwgTChzaGxfdGFibGUpKQpAQCAtMTYyOCw3ICszMDE5LDcgQEAKIAkuaW50CUpNUFRCTCAoTChzaGxfMTQpLCBMKHNobF90YWJsZSkpCiAJLmludAlKTVBUQkwgKEwoc2hsXzE1KSwgTChzaGxfdGFibGUpKQogCi0JQUxJR04gKDIpCisJLnAyYWxpZ24gMgogTCh0YWJsZV80OF9ieXRlc19id2QpOgogCS5pbnQJSk1QVEJMIChMKGJrX3dyaXRlXzBieXRlcyksIEwodGFibGVfNDhfYnl0ZXNfYndkKSkKIAkuaW50CUpNUFRCTCAoTChia193cml0ZV8xYnl0ZXMpLCBMKHRhYmxlXzQ4X2J5dGVzX2J3ZCkpCkBAIC0xNjgyLDEyICszMDczLDEyIEBACiAJLnBvcHNlY3Rpb24KIAogI2lmZGVmIFVTRV9BU19NRU1NT1ZFCi0JQUxJR04gKDQpCisJLnAyYWxpZ24gNAogTChjb3B5X2JhY2t3YXJkKToKLQlQVVNIICglZXNpKQotCW1vdmwJJWVheCwgJWVzaQorCVBVU0ggKCVlZGkpCisJbW92bAklZWF4LCAlZWRpCiAJbGVhCSglZWN4LCVlZHgsMSksJWVkeAotCWxlYQkoJWVjeCwlZXNpLDEpLCVlc2kKKwlsZWEJKCVlY3gsJWVkaSwxKSwlZWRpCiAJdGVzdGwJJDB4MywgJWVkeAogCWpueglMKGJrX2FsaWduKQogCkBAIC0xNzAyLDYwICszMDkzLDUzIEBACiBMKGJrX3dyaXRlX21vcmUzMmJ5dGVzKToKIAkvKiBDb3B5IDMyIGJ5dGVzIGF0IGEgdGltZS4gICovCiAJc3ViCSQzMiwgJWVjeAotCW1vdmwJLTQoJWVzaSksICVlYXgKLQltb3ZsCSVlYXgsIC00KCVlZHgpCi0JbW92bAktOCglZXNpKSwgJWVheAotCW1vdmwJJWVheCwgLTgoJWVkeCkKLQltb3ZsCS0xMiglZXNpKSwgJWVheAotCW1vdmwJJWVheCwgLTEyKCVlZHgpCi0JbW92bAktMTYoJWVzaSksICVlYXgKLQltb3ZsCSVlYXgsIC0xNiglZWR4KQotCW1vdmwJLTIwKCVlc2kpLCAlZWF4Ci0JbW92bAklZWF4LCAtMjAoJWVkeCkKLQltb3ZsCS0yNCglZXNpKSwgJWVheAotCW1vdmwJJWVheCwgLTI0KCVlZHgpCi0JbW92bAktMjgoJWVzaSksICVlYXgKLQltb3ZsCSVlYXgsIC0yOCglZWR4KQotCW1vdmwJLTMyKCVlc2kpLCAlZWF4Ci0JbW92bAklZWF4LCAtMzIoJWVkeCkKKwltb3ZxCS04KCVlZGkpLCAleG1tMAorCW1vdnEJJXhtbTAsIC04KCVlZHgpCisJbW92cQktMTYoJWVkaSksICV4bW0wCisJbW92cQkleG1tMCwgLTE2KCVlZHgpCisJbW92cQktMjQoJWVkaSksICV4bW0wCisJbW92cQkleG1tMCwgLTI0KCVlZHgpCisJbW92cQktMzIoJWVkaSksICV4bW0wCisJbW92cQkleG1tMCwgLTMyKCVlZHgpCiAJc3ViCSQzMiwgJWVkeAotCXN1YgkkMzIsICVlc2kKKwlzdWIJJDMyLCAlZWRpCiAKIEwoYmtfd3JpdGVfbGVzczMyYnl0ZXMpOgotCW1vdmwJJWVzaSwgJWVheAorCW1vdmwJJWVkaSwgJWVheAogCXN1YgklZWN4LCAlZWR4CiAJc3ViCSVlY3gsICVlYXgKLQlQT1AgKCVlc2kpCisJUE9QICglZWRpKQogTChia193cml0ZV9sZXNzMzJieXRlc18yKToKIAlCUkFOQ0hfVE9fSk1QVEJMX0VOVFJZIChMKHRhYmxlXzQ4X2J5dGVzX2J3ZCksICVlY3gsIDQpCiAKLQlDRklfUFVTSCAoJWVzaSkKLQlBTElHTiAoNCkKKwlDRklfUFVTSCAoJWVkaSkKKworCS5wMmFsaWduIDQKIEwoYmtfYWxpZ24pOgogCWNtcAkkOCwgJWVjeAogCWpiZQlMKGJrX3dyaXRlX2xlc3MzMmJ5dGVzKQogCXRlc3RsCSQxLCAlZWR4CiAJLyogV2UgZ2V0IGhlcmUgb25seSBpZiAoRURYICYgMyApICE9IDAgc28gaWYgKEVEWCAmIDEpID09MCwKLQkgICB0aGVuIChFRFggJiAyKSBtdXN0IGJlICE9IDAuICAqLworCXRoZW4JKEVEWCAmIDIpIG11c3QgYmUgIT0gMC4gICovCiAJanoJTChia19nb3QyKQotCXN1YgkkMSwgJWVzaQorCXN1YgkkMSwgJWVkaQogCXN1YgkkMSwgJWVjeAogCXN1YgkkMSwgJWVkeAotCW1vdnpibAkoJWVzaSksICVlYXgKKwltb3Z6YmwJKCVlZGkpLCAlZWF4CiAJbW92YgklYWwsICglZWR4KQogCiAJdGVzdGwJJDIsICVlZHgKIAlqeglMKGJrX2FsaWduZWRfNCkKIAogTChia19nb3QyKToKLQlzdWIJJDIsICVlc2kKKwlzdWIJJDIsICVlZGkKIAlzdWIJJDIsICVlY3gKIAlzdWIJJDIsICVlZHgKLQltb3Z6d2wJKCVlc2kpLCAlZWF4CisJbW92endsCSglZWRpKSwgJWVheAogCW1vdncJJWF4LCAoJWVkeCkKIAlqbXAJTChia19hbGlnbmVkXzQpCiAKLQlBTElHTiAoNCkKKwkucDJhbGlnbiA0CiBMKGJrX3dyaXRlX21vcmU2NGJ5dGVzKToKIAkvKiBDaGVjayBhbGlnbm1lbnQgb2YgbGFzdCBieXRlLiAgKi8KIAl0ZXN0bAkkMTUsICVlZHgKQEAgLTE3NjMsNDUgKzMxNDcsNDYgQEAKIAogLyogRURYIGlzIGFsaWduZWQgNCBieXRlcywgYnV0IG5vdCAxNiBieXRlcy4gICovCiBMKGJrX3Nzc2UzX2FsaWduKToKLQlzdWIJJDQsICVlc2kKKwlzdWIJJDQsICVlZGkKIAlzdWIJJDQsICVlY3gKIAlzdWIJJDQsICVlZHgKLQltb3ZsCSglZXNpKSwgJWVheAorCW1vdmwJKCVlZGkpLCAlZWF4CiAJbW92bAklZWF4LCAoJWVkeCkKIAogCXRlc3RsCSQxNSwgJWVkeAogCWp6CUwoYmtfc3NzZTNfY3B5X3ByZSkKIAotCXN1YgkkNCwgJWVzaQorCXN1YgkkNCwgJWVkaQogCXN1YgkkNCwgJWVjeAogCXN1YgkkNCwgJWVkeAotCW1vdmwJKCVlc2kpLCAlZWF4CisJbW92bAkoJWVkaSksICVlYXgKIAltb3ZsCSVlYXgsICglZWR4KQogCiAJdGVzdGwJJDE1LCAlZWR4CiAJanoJTChia19zc3NlM19jcHlfcHJlKQogCi0Jc3ViCSQ0LCAlZXNpCisJc3ViCSQ0LCAlZWRpCiAJc3ViCSQ0LCAlZWN4CiAJc3ViCSQ0LCAlZWR4Ci0JbW92bAkoJWVzaSksICVlYXgKKwltb3ZsCSglZWRpKSwgJWVheAogCW1vdmwJJWVheCwgKCVlZHgpCiAKIEwoYmtfc3NzZTNfY3B5X3ByZSk6CiAJY21wCSQ2NCwgJWVjeAogCWpiCUwoYmtfd3JpdGVfbW9yZTMyYnl0ZXMpCiAKKwkucDJhbGlnbiA0CiBMKGJrX3Nzc2UzX2NweSk6Ci0Jc3ViCSQ2NCwgJWVzaQorCXN1YgkkNjQsICVlZGkKIAlzdWIJJDY0LCAlZWN4CiAJc3ViCSQ2NCwgJWVkeAotCW1vdmRxdQkweDMwKCVlc2kpLCAleG1tMworCW1vdmRxdQkweDMwKCVlZGkpLCAleG1tMwogCW1vdmRxYQkleG1tMywgMHgzMCglZWR4KQotCW1vdmRxdQkweDIwKCVlc2kpLCAleG1tMgorCW1vdmRxdQkweDIwKCVlZGkpLCAleG1tMgogCW1vdmRxYQkleG1tMiwgMHgyMCglZWR4KQotCW1vdmRxdQkweDEwKCVlc2kpLCAleG1tMQorCW1vdmRxdQkweDEwKCVlZGkpLCAleG1tMQogCW1vdmRxYQkleG1tMSwgMHgxMCglZWR4KQotCW1vdmRxdQkoJWVzaSksICV4bW0wCisJbW92ZHF1CSglZWRpKSwgJXhtbTAKIAltb3ZkcWEJJXhtbTAsICglZWR4KQogCWNtcAkkNjQsICVlY3gKIAlqYWUJTChia19zc3NlM19jcHkpCmRpZmYgLS1naXQgYS9saWJjL2Jpb25pYy9tYWxsb2NfZGVidWdfbGVhay5jIGIvbGliYy9iaW9uaWMvbWFsbG9jX2RlYnVnX2xlYWsuYwppbmRleCAwYjE4NjQ1Li4zMTZkNWZlIDEwMDY0NAotLS0gYS9saWJjL2Jpb25pYy9tYWxsb2NfZGVidWdfbGVhay5jCisrKyBiL2xpYmMvYmlvbmljL21hbGxvY19kZWJ1Z19sZWFrLmMKQEAgLTI1LDI2ICsyNSwyNiBAQAogICogT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAgKiBTVUNIIERBTUFHRS4KICAqLworCisjaW5jbHVkZSA8ZGxmY24uaD4KICNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8cHRocmVhZC5oPgorI2luY2x1ZGUgPHN0ZGFyZy5oPgorI2luY2x1ZGUgPHN0ZGRlZi5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8YXJwYS9pbmV0Lmg+Ci0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8c3RkZGVmLmg+Ci0jaW5jbHVkZSA8c3RkYXJnLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDx1bndpbmQuaD4KLSNpbmNsdWRlIDxkbGZjbi5oPgogCi0jaW5jbHVkZSA8c3lzL3NvY2tldC5oPgotI2luY2x1ZGUgPHN5cy91bi5oPgorI2luY2x1ZGUgPGFycGEvaW5ldC5oPgogI2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4KLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CiAjaW5jbHVkZSA8c3lzL3N5c3RlbV9wcm9wZXJ0aWVzLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3VuLmg+CiAKICNpbmNsdWRlICJkbG1hbGxvYy5oIgogI2luY2x1ZGUgImxvZ2QuaCIKQEAgLTI2Myw3ICsyNjMsMTIgQEAKICAgICAvLyAxLiBhbGxvY2F0ZSBlbm91Z2ggbWVtb3J5IGFuZCBpbmNsdWRlIG91ciBoZWFkZXIKICAgICAvLyAyLiBzZXQgdGhlIGJhc2UgcG9pbnRlciB0byBiZSByaWdodCBhZnRlciBvdXIgaGVhZGVyCiAKLSAgICB2b2lkKiBiYXNlID0gZGxtYWxsb2MoYnl0ZXMgKyBzaXplb2YoQWxsb2NhdGlvbkVudHJ5KSk7CisgICAgc2l6ZV90IHNpemUgPSBieXRlcyArIHNpemVvZihBbGxvY2F0aW9uRW50cnkpOworICAgIGlmIChzaXplIDwgYnl0ZXMpIHsgLy8gT3ZlcmZsb3cuCisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHZvaWQqIGJhc2UgPSBkbG1hbGxvYyhzaXplKTsKICAgICBpZiAoYmFzZSAhPSBOVUxMKSB7CiAgICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygmZ0FsbG9jYXRpb25zTXV0ZXgpOwogCkBAIC0zNzMsNiArMzc4LDEwIEBACiAgICAgLy8gd2Ugd2lsbCBhbGlnbiBieSBhdCBsZWFzdCBNQUxMT0NfQUxJR05NRU5UIGJ5dGVzCiAgICAgLy8gYW5kIGF0IG1vc3QgYWxpZ25tZW50LU1BTExPQ19BTElHTk1FTlQgYnl0ZXMKICAgICBzaXplX3Qgc2l6ZSA9IChhbGlnbm1lbnQtTUFMTE9DX0FMSUdOTUVOVCkgKyBieXRlczsKKyAgICBpZiAoc2l6ZSA8IGJ5dGVzKSB7IC8vIE92ZXJmbG93LgorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKICAgICB2b2lkKiBiYXNlID0gbGVha19tYWxsb2Moc2l6ZSk7CiAgICAgaWYgKGJhc2UgIT0gTlVMTCkgewogICAgICAgICBpbnRwdHJfdCBwdHIgPSAoaW50cHRyX3QpYmFzZTsKZGlmZiAtLWdpdCBhL2xpYmMvYmlvbmljL3B0aHJlYWQtdGltZXJzLmMgYi9saWJjL2Jpb25pYy9wdGhyZWFkLXRpbWVycy5jCmluZGV4IGFlMDQwMjkuLjIzZDMxZGYgMTAwNjQ0Ci0tLSBhL2xpYmMvYmlvbmljL3B0aHJlYWQtdGltZXJzLmMKKysrIGIvbGliYy9iaW9uaWMvcHRocmVhZC10aW1lcnMuYwpAQCAtOSw3ICs5LDcgQEAKICAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KLSAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgCisgKiAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiAgKiAgICBkaXN0cmlidXRpb24uCiAgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwpAQCAtMTksNTUgKzE5LDU2IEBACiAgKiBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCiAgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAogICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTCi0gKiBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgCisgKiBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQKICAqIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKICAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVAogICogT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCiAgKiBTVUNIIERBTUFHRS4KICAqLworCiAjaW5jbHVkZSAicHRocmVhZF9pbnRlcm5hbC5oIgotI2luY2x1ZGUgPGxpbnV4L3RpbWUuaD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KKwogI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8bGludXgvdGltZS5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CiAKLS8qIFRoaXMgZmlsZSBpbXBsZW1lbnRzIHRoZSBzdXBwb3J0IHJlcXVpcmVkIHRvIGltcGxlbWVudCBTSUdFVl9USFJFQUQgcG9zaXggCi0gKiB0aW1lcnMuIFNlZSB0aGUgZm9sbG93aW5nIHBhZ2VzIGZvciBhZGRpdGlvbm5hbCBkZXRhaWxzOgotICoKLSAqIHd3dy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy90aW1lcl9jcmVhdGUuaHRtbAotICogd3d3Lm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3RpbWVyX3NldHRpbWUuaHRtbAotICogd3d3Lm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDAwOTUzOTkvZnVuY3Rpb25zL3hzaF9jaGFwMDJfMDQuaHRtbCN0YWdfMDJfMDRfMDEKLSAqCi0gKiBUaGUgTGludXgga2VybmVsIGRvZXNuJ3Qgc3VwcG9ydCB0aGVzZSwgc28gd2UgbmVlZCB0byBpbXBsZW1lbnQgdGhlbSBpbiB0aGUKLSAqIEMgbGlicmFyeS4gV2UgdXNlIGEgdmVyeSBiYXNpYyBzY2hlbWUgd2hlcmUgZWFjaCB0aW1lciBpcyBhc3NvY2lhdGVkIHRvIGEKLSAqIHRocmVhZCB0aGF0IHdpbGwgbG9vcCwgd2FpdGluZyBmb3IgdGltZW91dHMgb3IgbWVzc2FnZXMgZnJvbSB0aGUgcHJvZ3JhbQotICogY29ycmVzcG9uZGluZyB0byBjYWxscyB0byB0aW1lcl9zZXR0aW1lKCkgYW5kIHRpbWVyX2RlbGV0ZSgpLgotICoKLSAqIE5vdGUgYWxzbyBhbiBpbXBvcnRhbnQgdGhpbmc6IFBvc2l4IG1hbmRhdGVzIHRoYXQgaW4gdGhlIGNhc2Ugb2YgZm9yaygpLAotICogdGhlIHRpbWVycyBvZiB0aGUgY2hpbGQgcHJvY2VzcyBzaG91bGQgYmUgZGlzYXJtZWQsIGJ1dCBub3QgZGVsZXRlZC4KLSAqIHRoaXMgaXMgaW1wbGVtZW50ZWQgYnkgcHJvdmlkaW5nIGEgZm9yaygpIHdyYXBwZXIgKHNlZSBiaW9uaWMvZm9yay5jKSB3aGljaAotICogc3RvcHMgYWxsIHRpbWVycyBiZWZvcmUgdGhlIGZvcmssIGFuZCBvbmx5IHJlLXN0YXJ0IHRoZW0gaW4gY2FzZSBvZiBlcnJvcgotICogb3IgaW4gdGhlIHBhcmVudCBwcm9jZXNzLgotICoKLSAqIHRoZSBzdG9wL3N0YXJ0IGlzIGltcGxlbWVudGVkIGJ5IHRoZSBfX3RpbWVyX3RhYmxlX3N0YXJ0X3N0b3AoKSBmdW5jdGlvbgotICogYmVsb3cuCi0gKi8KLQotLyogbm9ybWFsIChpLmUuIG5vbi1TSUdFVl9USFJFQUQpIHRpbWVyIGlkcyBhcmUgY3JlYXRlZCBkaXJlY3RseSBieSB0aGUga2VybmVsCi0gKiBhbmQgYXJlIHBhc3NlZCBhcyBpcyB0by9mcm9tIHRoZSBjYWxsZXIuCi0gKgotICogb24gdGhlIG90aGVyIGhhbmQsIGEgU0lHRVZfVEhSRUFEIHRpbWVyIElEIHdpbGwgaGF2ZSBpdHMgVElNRVJfSURfV1JBUF9CSVQKLSAqIGFsd2F5cyBzZXQgdG8gMS4gSW4gdGhpcyBpbXBsZW1lbnRhdGlvbiwgdGhpcyBpcyBhbHdheXMgYml0IDMxLCB3aGljaCBpcwotICogZ3VhcmFudGVlZCB0byBuZXZlciBiZSB1c2VkIGJ5IGtlcm5lbC1wcm92aWRlZCB0aW1lciBpZHMKLSAqCi0gKiAoc2VlIGNvZGUgaW4gPGtlcm5lbD4vbGliL2lkci5jLCB1c2VkIHRvIG1hbmFnZSBJRHMsIHRvIHNlZSB3aHkpCi0gKi8KKy8vIE5vcm1hbCAoaS5lLiBub24tU0lHRVZfVEhSRUFEKSB0aW1lcnMgYXJlIGNyZWF0ZWQgZGlyZWN0bHkgYnkgdGhlIGtlcm5lbAorLy8gYW5kIGFyZSBwYXNzZWQgYXMgaXMgdG8vZnJvbSB0aGUgY2FsbGVyLgorLy8KKy8vIFRoaXMgZmlsZSBhbHNvIGltcGxlbWVudHMgdGhlIHN1cHBvcnQgcmVxdWlyZWQgZm9yIFNJR0VWX1RIUkVBRCAoIlBPU0lYIGludGVydmFsIikKKy8vIHRpbWVycy4gU2VlIHRoZSBmb2xsb3dpbmcgcGFnZXMgZm9yIGFkZGl0aW9uYWwgZGV0YWlsczoKKy8vCisvLyB3d3cub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwMDA5NTM5OS9mdW5jdGlvbnMvdGltZXJfY3JlYXRlLmh0bWwKKy8vIHd3dy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy90aW1lcl9zZXR0aW1lLmh0bWwKKy8vIHd3dy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDAwMDk1Mzk5L2Z1bmN0aW9ucy94c2hfY2hhcDAyXzA0Lmh0bWwjdGFnXzAyXzA0XzAxCisvLworLy8gVGhlIExpbnV4IGtlcm5lbCBkb2Vzbid0IHN1cHBvcnQgdGhlc2UsIHNvIHdlIG5lZWQgdG8gaW1wbGVtZW50IHRoZW0gaW4gdGhlCisvLyBDIGxpYnJhcnkuIFdlIHVzZSBhIHZlcnkgYmFzaWMgc2NoZW1lIHdoZXJlIGVhY2ggdGltZXIgaXMgYXNzb2NpYXRlZCB0byBhCisvLyB0aHJlYWQgdGhhdCB3aWxsIGxvb3AsIHdhaXRpbmcgZm9yIHRpbWVvdXRzIG9yIG1lc3NhZ2VzIGZyb20gdGhlIHByb2dyYW0KKy8vIGNvcnJlc3BvbmRpbmcgdG8gY2FsbHMgdG8gdGltZXJfc2V0dGltZSgpIGFuZCB0aW1lcl9kZWxldGUoKS4KKy8vCisvLyBOb3RlIGFsc28gYW4gaW1wb3J0YW50IHRoaW5nOiBQb3NpeCBtYW5kYXRlcyB0aGF0IGluIHRoZSBjYXNlIG9mIGZvcmsoKSwKKy8vIHRoZSB0aW1lcnMgb2YgdGhlIGNoaWxkIHByb2Nlc3Mgc2hvdWxkIGJlIGRpc2FybWVkLCBidXQgbm90IGRlbGV0ZWQuCisvLyB0aGlzIGlzIGltcGxlbWVudGVkIGJ5IHByb3ZpZGluZyBhIGZvcmsoKSB3cmFwcGVyIChzZWUgYmlvbmljL2ZvcmsuYykgd2hpY2gKKy8vIHN0b3BzIGFsbCB0aW1lcnMgYmVmb3JlIHRoZSBmb3JrLCBhbmQgb25seSByZS1zdGFydCB0aGVtIGluIGNhc2Ugb2YgZXJyb3IKKy8vIG9yIGluIHRoZSBwYXJlbnQgcHJvY2Vzcy4KKy8vCisvLyBUaGlzIHN0b3Avc3RhcnQgaXMgaW1wbGVtZW50ZWQgYnkgdGhlIF9fdGltZXJfdGFibGVfc3RhcnRfc3RvcCgpIGZ1bmN0aW9uCisvLyBiZWxvdy4KKy8vCisvLyBBIFNJR0VWX1RIUkVBRCB0aW1lciBJRCB3aWxsIGFsd2F5cyBoYXZlIGl0cyBUSU1FUl9JRF9XUkFQX0JJVAorLy8gc2V0IHRvIDEuIEluIHRoaXMgaW1wbGVtZW50YXRpb24sIHRoaXMgaXMgYWx3YXlzIGJpdCAzMSwgd2hpY2ggaXMKKy8vIGd1YXJhbnRlZWQgdG8gbmV2ZXIgYmUgdXNlZCBieSBrZXJuZWwtcHJvdmlkZWQgdGltZXIgaWRzCisvLworLy8gKFNlZSBjb2RlIGluIDxrZXJuZWw+L2xpYi9pZHIuYywgdXNlZCB0byBtYW5hZ2UgSURzLCB0byBzZWUgd2h5LikKIAogI2RlZmluZSAgVElNRVJfSURfV1JBUF9CSVQgICAgICAgIDB4ODAwMDAwMDAKICNkZWZpbmUgIFRJTUVSX0lEX1dSQVAoaWQpICAgICAgICAoKHRpbWVyX3QpKChpZCkgfCAgVElNRVJfSURfV1JBUF9CSVQpKQogI2RlZmluZSAgVElNRVJfSURfVU5XUkFQKGlkKSAgICAgICgodGltZXJfdCkoKGlkKSAmIH5USU1FUl9JRF9XUkFQX0JJVCkpCiAjZGVmaW5lICBUSU1FUl9JRF9JU19XUkFQUEVEKGlkKSAgKCgoaWQpICYgVElNRVJfSURfV1JBUF9CSVQpICE9IDApCiAKLS8qIHRoaXMgdmFsdWUgaXMgdXNlZCBpbnRlcm5hbGx5IHRvIGluZGljYXRlIGEgJ2ZyZWUnIG9yICd6b21iaWUnIAorLyogdGhpcyB2YWx1ZSBpcyB1c2VkIGludGVybmFsbHkgdG8gaW5kaWNhdGUgYSAnZnJlZScgb3IgJ3pvbWJpZScKICAqIHRocl90aW1lciBzdHJ1Y3R1cmUuIEhlcmUsICd6b21iaWUnIG1lYW5zIHRoYXQgdGltZXJfZGVsZXRlKCkKICAqIGhhcyBiZWVuIGNhbGxlZCwgYnV0IHRoYXQgdGhlIGNvcnJlc3BvbmRpbmcgdGhyZWFkIGhhc24ndAogICogZXhpdGVkIHlldC4KQEAgLTE3MSwyNSArMTcyLDIzIEBACiB9CiAKIAotc3RhdGljIHZvaWQKLXRocl90aW1lcl90YWJsZV9zdGFydF9zdG9wKCB0aHJfdGltZXJfdGFibGVfdCogIHQsIGludCAgc3RvcCApCi17Ci0gICAgaW50ICBubjsKK3N0YXRpYyB2b2lkIHRocl90aW1lcl90YWJsZV9zdGFydF9zdG9wKHRocl90aW1lcl90YWJsZV90KiB0LCBpbnQgc3RvcCkgeworICBpZiAodCA9PSBOVUxMKSB7CisgICAgcmV0dXJuOworICB9CiAKLSAgICBwdGhyZWFkX211dGV4X2xvY2soJnQtPmxvY2spOwotCi0gICAgZm9yIChubiA9IDA7IG5uIDwgTUFYX1RIUkVBRF9USU1FUlM7IG5uKyspIHsKLSAgICAgICAgdGhyX3RpbWVyX3QqICB0aW1lciAgPSAmdC0+dGltZXJzW25uXTsKLQotICAgICAgICBpZiAoVElNRVJfSURfSVNfVkFMSUQodGltZXItPmlkKSkgewotICAgICAgICAgICAgLyogdGVsbCB0aGUgdGhyZWFkIHRvIHN0YXJ0L3N0b3AgKi8KLSAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygmdGltZXItPm11dGV4KTsKLSAgICAgICAgICAgIHRpbWVyLT5zdG9wcGVkID0gc3RvcDsKLSAgICAgICAgICAgIHB0aHJlYWRfY29uZF9zaWduYWwoICZ0aW1lci0+Y29uZCApOwotICAgICAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2soJnRpbWVyLT5tdXRleCk7Ci0gICAgICAgIH0KKyAgcHRocmVhZF9tdXRleF9sb2NrKCZ0LT5sb2NrKTsKKyAgZm9yIChpbnQgbm4gPSAwOyBubiA8IE1BWF9USFJFQURfVElNRVJTOyArK25uKSB7CisgICAgdGhyX3RpbWVyX3QqICB0aW1lciAgPSAmdC0+dGltZXJzW25uXTsKKyAgICBpZiAoVElNRVJfSURfSVNfVkFMSUQodGltZXItPmlkKSkgeworICAgICAgLy8gVGVsbCB0aGUgdGhyZWFkIHRvIHN0YXJ0L3N0b3AuCisgICAgICBwdGhyZWFkX211dGV4X2xvY2soJnRpbWVyLT5tdXRleCk7CisgICAgICB0aW1lci0+c3RvcHBlZCA9IHN0b3A7CisgICAgICBwdGhyZWFkX2NvbmRfc2lnbmFsKCAmdGltZXItPmNvbmQgKTsKKyAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZ0aW1lci0+bXV0ZXgpOwogICAgIH0KLSAgICBwdGhyZWFkX211dGV4X3VubG9jaygmdC0+bG9jayk7CisgIH0KKyAgcHRocmVhZF9tdXRleF91bmxvY2soJnQtPmxvY2spOwogfQogCiAKQEAgLTIzNCwyMyArMjMzLDE5IEBACiAgKiBwcmV0dHkgaW5mcmVxdWVudAogICovCiAKLXN0YXRpYyBwdGhyZWFkX29uY2VfdCAgICAgIF9fdGltZXJfdGFibGVfb25jZSA9IFBUSFJFQURfT05DRV9JTklUOwotc3RhdGljIHRocl90aW1lcl90YWJsZV90KiAgX190aW1lcl90YWJsZTsKK3N0YXRpYyBwdGhyZWFkX29uY2VfdCBfX3RpbWVyX3RhYmxlX29uY2UgPSBQVEhSRUFEX09OQ0VfSU5JVDsKK3N0YXRpYyB0aHJfdGltZXJfdGFibGVfdCogX190aW1lcl90YWJsZTsKIAotc3RhdGljIHZvaWQKLV9fdGltZXJfdGFibGVfaW5pdCggdm9pZCApCi17Ci0gICAgX190aW1lcl90YWJsZSA9IGNhbGxvYygxLHNpemVvZigqX190aW1lcl90YWJsZSkpOwotCi0gICAgaWYgKF9fdGltZXJfdGFibGUgIT0gTlVMTCkKLSAgICAgICAgdGhyX3RpbWVyX3RhYmxlX2luaXQoIF9fdGltZXJfdGFibGUgKTsKK3N0YXRpYyB2b2lkIF9fdGltZXJfdGFibGVfaW5pdCh2b2lkKSB7CisgIF9fdGltZXJfdGFibGUgPSBjYWxsb2MoMSwgc2l6ZW9mKCpfX3RpbWVyX3RhYmxlKSk7CisgIGlmIChfX3RpbWVyX3RhYmxlICE9IE5VTEwpIHsKKyAgICB0aHJfdGltZXJfdGFibGVfaW5pdChfX3RpbWVyX3RhYmxlKTsKKyAgfQogfQogCi1zdGF0aWMgdGhyX3RpbWVyX3RhYmxlX3QqCi1fX3RpbWVyX3RhYmxlX2dldCh2b2lkKQotewotICAgIHB0aHJlYWRfb25jZSggJl9fdGltZXJfdGFibGVfb25jZSwgX190aW1lcl90YWJsZV9pbml0ICk7Ci0gICAgcmV0dXJuIF9fdGltZXJfdGFibGU7CitzdGF0aWMgdGhyX3RpbWVyX3RhYmxlX3QqIF9fdGltZXJfdGFibGVfZ2V0KHZvaWQpIHsKKyAgcHRocmVhZF9vbmNlKCZfX3RpbWVyX3RhYmxlX29uY2UsIF9fdGltZXJfdGFibGVfaW5pdCk7CisgIHJldHVybiBfX3RpbWVyX3RhYmxlOwogfQogCiAvKiogUE9TSVggVEhSRUFEIFRJTUVSUyBDTEVBTlVQIE9OIEZPUksKQEAgLTI2MCwxMyArMjU1LDkgQEAKICAqKiByZXF1aXJlbWVudHM6IHRoZSB0aW1lcnMgb2YgZm9yayBjaGlsZCBwcm9jZXNzZXMgbXVzdCBiZQogICoqIGRpc2FybWVkIGJ1dCBub3QgZGVsZXRlZC4KICAqKi8KLV9fTElCQ19ISURERU5fXyB2b2lkCi1fX3RpbWVyX3RhYmxlX3N0YXJ0X3N0b3AoIGludCAgc3RvcCApCi17Ci0gICAgaWYgKF9fdGltZXJfdGFibGUgIT0gTlVMTCkgewotICAgICAgICB0aHJfdGltZXJfdGFibGVfdCogIHRhYmxlID0gX190aW1lcl90YWJsZV9nZXQoKTsKLSAgICAgICAgdGhyX3RpbWVyX3RhYmxlX3N0YXJ0X3N0b3AodGFibGUsIHN0b3ApOwotICAgIH0KK19fTElCQ19ISURERU5fXyB2b2lkIF9fdGltZXJfdGFibGVfc3RhcnRfc3RvcChpbnQgc3RvcCkgeworICAvLyBXZSBhY2Nlc3MgX190aW1lcl90YWJsZSBkaXJlY3RseSBzbyB3ZSBkb24ndCBjcmVhdGUgaXQgaWYgaXQgZG9lc24ndCB5ZXQgZXhpc3QuCisgIHRocl90aW1lcl90YWJsZV9zdGFydF9zdG9wKF9fdGltZXJfdGFibGUsIHN0b3ApOwogfQogCiBzdGF0aWMgdGhyX3RpbWVyX3QqCkBAIC0yOTMsODUgKzI4NCw3NiBAQAogCiAvKiogUE9TSVggVElNRVJTIEFQSXMgKi8KIAotLyogZmlyc3QsIGRlY2xhcmUgdGhlIHN5c2NhbGwgc3R1YnMgKi8KLWV4dGVybiBpbnQgX190aW1lcl9jcmVhdGUoIGNsb2NraWRfdCwgc3RydWN0IHNpZ2V2ZW50KiwgdGltZXJfdCogKTsKLWV4dGVybiBpbnQgX190aW1lcl9kZWxldGUoIHRpbWVyX3QgKTsKLWV4dGVybiBpbnQgX190aW1lcl9nZXR0aW1lKCB0aW1lcl90LCBzdHJ1Y3QgaXRpbWVyc3BlYyogKTsKLWV4dGVybiBpbnQgX190aW1lcl9zZXR0aW1lKCB0aW1lcl90LCBpbnQsIGNvbnN0IHN0cnVjdCBpdGltZXJzcGVjKiwgc3RydWN0IGl0aW1lcnNwZWMqICk7CitleHRlcm4gaW50IF9fdGltZXJfY3JlYXRlKGNsb2NraWRfdCwgc3RydWN0IHNpZ2V2ZW50KiwgdGltZXJfdCopOworZXh0ZXJuIGludCBfX3RpbWVyX2RlbGV0ZSh0aW1lcl90KTsKK2V4dGVybiBpbnQgX190aW1lcl9nZXR0aW1lKHRpbWVyX3QsIHN0cnVjdCBpdGltZXJzcGVjKik7CitleHRlcm4gaW50IF9fdGltZXJfc2V0dGltZSh0aW1lcl90LCBpbnQsIGNvbnN0IHN0cnVjdCBpdGltZXJzcGVjKiwgc3RydWN0IGl0aW1lcnNwZWMqKTsKIGV4dGVybiBpbnQgX190aW1lcl9nZXRvdmVycnVuKHRpbWVyX3QpOwogCi1zdGF0aWMgdm9pZCogIHRpbWVyX3RocmVhZF9zdGFydCggdm9pZCogKTsKK3N0YXRpYyB2b2lkKiB0aW1lcl90aHJlYWRfc3RhcnQodm9pZCopOwogCi0vKiB0aGVuIHRoZSB3cmFwcGVycyB0aGVtc2VsdmVzICovCi1pbnQKLXRpbWVyX2NyZWF0ZSggY2xvY2tpZF90ICBjbG9ja2lkLCBzdHJ1Y3Qgc2lnZXZlbnQqICBldnAsIHRpbWVyX3QgICpwdGltZXJpZCkKLXsKLSAgICAvKiBpZiBub3QgYSBTSUdFVl9USFJFQUQgdGltZXIsIGRpcmVjdCBjcmVhdGlvbiBieSB0aGUga2VybmVsICovCi0gICAgaWYgKF9fbGlrZWx5KGV2cCA9PSBOVUxMIHx8IGV2cC0+c2lnZXZfbm90aWZ5ICE9IFNJR0VWX1RIUkVBRCkpCi0gICAgICAgIHJldHVybiBfX3RpbWVyX2NyZWF0ZSggY2xvY2tpZCwgZXZwLCBwdGltZXJpZCApOworaW50IHRpbWVyX2NyZWF0ZShjbG9ja2lkX3QgY2xvY2tfaWQsIHN0cnVjdCBzaWdldmVudCogZXZwLCB0aW1lcl90KiB0aW1lcl9pZCkgeworICAvLyBJZiBub3QgYSBTSUdFVl9USFJFQUQgdGltZXIsIHRoZSBrZXJuZWwgY2FuIGhhbmRsZSBpdCB3aXRob3V0IG91ciBoZWxwLgorICBpZiAoX19saWtlbHkoZXZwID09IE5VTEwgfHwgZXZwLT5zaWdldl9ub3RpZnkgIT0gU0lHRVZfVEhSRUFEKSkgeworICAgIHJldHVybiBfX3RpbWVyX2NyZWF0ZShjbG9ja19pZCwgZXZwLCB0aW1lcl9pZCk7CisgIH0KIAotICAgIC8vIGNoZWNrIGFyZ3VtZW50cwotICAgIGlmIChldnAtPnNpZ2V2X25vdGlmeV9mdW5jdGlvbiA9PSBOVUxMKSB7Ci0gICAgICAgIGVycm5vID0gRUlOVkFMOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQorICAvLyBDaGVjayBhcmd1bWVudHMuCisgIGlmIChldnAtPnNpZ2V2X25vdGlmeV9mdW5jdGlvbiA9PSBOVUxMKSB7CisgICAgZXJybm8gPSBFSU5WQUw7CisgICAgcmV0dXJuIC0xOworICB9CiAKLSAgICB7Ci0gICAgICAgIHN0cnVjdCB0aW1lc3BlYyAgZHVtbXk7CisgIC8vIENoZWNrIHRoYXQgdGhlIGNsb2NrIGlkIGlzIHN1cHBvcnRlZCBieSB0aGUga2VybmVsLgorICBzdHJ1Y3QgdGltZXNwZWMgZHVtbXk7CisgIGlmIChjbG9ja19nZXR0aW1lKGNsb2NrX2lkLCAmZHVtbXkpIDwgMCAmJiBlcnJubyA9PSBFSU5WQUwpIHsKKyAgICByZXR1cm4gLTE7CisgIH0KIAotICAgICAgICAvKiBjaGVjayB0aGF0IHRoZSBjbG9jayBpZCBpcyBzdXBwb3J0ZWQgYnkgdGhlIGtlcm5lbCAqLwotICAgICAgICBpZiAoY2xvY2tfZ2V0dGltZSggY2xvY2tpZCwgJmR1bW15ICkgPCAwICYmIGVycm5vID09IEVJTlZBTCApCi0gICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQorICAvLyBDcmVhdGUgYSBuZXcgdGltZXIgYW5kIGl0cyB0aHJlYWQuCisgIC8vIFRPRE86IHVzZSBhIHNpbmdsZSBnbG9iYWwgdGhyZWFkIGZvciBhbGwgdGltZXJzLgorICB0aHJfdGltZXJfdGFibGVfdCogdGFibGUgPSBfX3RpbWVyX3RhYmxlX2dldCgpOworICB0aHJfdGltZXJfdCogdGltZXIgPSB0aHJfdGltZXJfdGFibGVfYWxsb2ModGFibGUpOworICBpZiAodGltZXIgPT0gTlVMTCkgeworICAgIGVycm5vID0gRU5PTUVNOworICAgIHJldHVybiAtMTsKKyAgfQogCi0gICAgLyogY3JlYXRlIGEgbmV3IHRpbWVyIGFuZCBpdHMgdGhyZWFkICovCi0gICAgewotICAgICAgICB0aHJfdGltZXJfdGFibGVfdCogIHRhYmxlID0gX190aW1lcl90YWJsZV9nZXQoKTsKLSAgICAgICAgdGhyX3RpbWVyX3QqICAgICAgICB0aW1lciA9IHRocl90aW1lcl90YWJsZV9hbGxvYyggdGFibGUgKTsKLSAgICAgICAgc3RydWN0IHNpZ2V2ZW50ICAgICBldnAwOworICAvLyBDb3B5IHRoZSB0aHJlYWQgYXR0cmlidXRlcy4KKyAgaWYgKGV2cC0+c2lnZXZfbm90aWZ5X2F0dHJpYnV0ZXMgPT0gTlVMTCkgeworICAgIHB0aHJlYWRfYXR0cl9pbml0KCZ0aW1lci0+YXR0cmlidXRlcyk7CisgIH0gZWxzZSB7CisgICAgdGltZXItPmF0dHJpYnV0ZXMgPSAoKHB0aHJlYWRfYXR0cl90KikgZXZwLT5zaWdldl9ub3RpZnlfYXR0cmlidXRlcylbMF07CisgIH0KIAotICAgICAgICBpZiAodGltZXIgPT0gTlVMTCkgewotICAgICAgICAgICAgZXJybm8gPSBFTk9NRU07Ci0gICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIH0KKyAgLy8gUG9zaXggc2F5cyB0aGF0IHRoZSBkZWZhdWx0IGlzIFBUSFJFQURfQ1JFQVRFX0RFVEFDSEVEIGFuZAorICAvLyB0aGF0IFBUSFJFQURfQ1JFQVRFX0pPSU5BQkxFIGhhcyB1bmRlZmluZWQgYmVoYXZpb3IuCisgIC8vIFNvIHNpbXBseSBhbHdheXMgdXNlIERFVEFDSEVEIDotKQorICBwdGhyZWFkX2F0dHJfc2V0ZGV0YWNoc3RhdGUoJnRpbWVyLT5hdHRyaWJ1dGVzLCBQVEhSRUFEX0NSRUFURV9ERVRBQ0hFRCk7CiAKLSAgICAgICAgLyogY29weSB0aGUgdGhyZWFkIGF0dHJpYnV0ZXMgKi8KLSAgICAgICAgaWYgKGV2cC0+c2lnZXZfbm90aWZ5X2F0dHJpYnV0ZXMgPT0gTlVMTCkgewotICAgICAgICAgICAgcHRocmVhZF9hdHRyX2luaXQoJnRpbWVyLT5hdHRyaWJ1dGVzKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHRpbWVyLT5hdHRyaWJ1dGVzID0gKChwdGhyZWFkX2F0dHJfdCopZXZwLT5zaWdldl9ub3RpZnlfYXR0cmlidXRlcylbMF07Ci0gICAgICAgIH0KKyAgdGltZXItPmNhbGxiYWNrID0gZXZwLT5zaWdldl9ub3RpZnlfZnVuY3Rpb247CisgIHRpbWVyLT52YWx1ZSA9IGV2cC0+c2lnZXZfdmFsdWU7CisgIHRpbWVyLT5jbG9jayA9IGNsb2NrX2lkOwogCi0gICAgICAgIC8qIFBvc2l4IHNheXMgdGhhdCB0aGUgZGVmYXVsdCBpcyBQVEhSRUFEX0NSRUFURV9ERVRBQ0hFRCBhbmQKLSAgICAgICAgICogdGhhdCBQVEhSRUFEX0NSRUFURV9KT0lOQUJMRSBoYXMgdW5kZWZpbmVkIGJlaGF2aW91ci4KLSAgICAgICAgICogU28gc2ltcGx5IGFsd2F5cyB1c2UgREVUQUNIRUQgOi0pCi0gICAgICAgICAqLwotICAgICAgICBwdGhyZWFkX2F0dHJfc2V0ZGV0YWNoc3RhdGUoJnRpbWVyLT5hdHRyaWJ1dGVzLCBQVEhSRUFEX0NSRUFURV9ERVRBQ0hFRCk7CisgIHB0aHJlYWRfbXV0ZXhfaW5pdCgmdGltZXItPm11dGV4LCBOVUxMKTsKKyAgcHRocmVhZF9jb25kX2luaXQoJnRpbWVyLT5jb25kLCBOVUxMKTsKIAotICAgICAgICB0aW1lci0+Y2FsbGJhY2sgPSBldnAtPnNpZ2V2X25vdGlmeV9mdW5jdGlvbjsKLSAgICAgICAgdGltZXItPnZhbHVlICAgID0gZXZwLT5zaWdldl92YWx1ZTsKLSAgICAgICAgdGltZXItPmNsb2NrICAgID0gY2xvY2tpZDsKKyAgdGltZXItPmRvbmUgPSAwOworICB0aW1lci0+c3RvcHBlZCA9IDA7CisgIHRpbWVyLT5leHBpcmVzLnR2X3NlYyA9IHRpbWVyLT5leHBpcmVzLnR2X25zZWMgPSAwOworICB0aW1lci0+cGVyaW9kLnR2X3NlYyA9IHRpbWVyLT5wZXJpb2QudHZfbnNlYyAgPSAwOworICB0aW1lci0+b3ZlcnJ1bnMgPSAwOwogCi0gICAgICAgIHB0aHJlYWRfbXV0ZXhfaW5pdCggJnRpbWVyLT5tdXRleCwgTlVMTCApOwotICAgICAgICBwdGhyZWFkX2NvbmRfaW5pdCggJnRpbWVyLT5jb25kLCBOVUxMICk7CisgIC8vIENyZWF0ZSB0aGUgdGhyZWFkLgorICBpbnQgcmMgPSBwdGhyZWFkX2NyZWF0ZSgmdGltZXItPnRocmVhZCwgJnRpbWVyLT5hdHRyaWJ1dGVzLCB0aW1lcl90aHJlYWRfc3RhcnQsIHRpbWVyKTsKKyAgaWYgKHJjICE9IDApIHsKKyAgICB0aHJfdGltZXJfdGFibGVfZnJlZSh0YWJsZSwgdGltZXIpOworICAgIGVycm5vID0gcmM7CisgICAgcmV0dXJuIC0xOworICB9CiAKLSAgICAgICAgdGltZXItPmRvbmUgICAgICAgICAgID0gMDsKLSAgICAgICAgdGltZXItPnN0b3BwZWQgICAgICAgID0gMDsKLSAgICAgICAgdGltZXItPmV4cGlyZXMudHZfc2VjID0gdGltZXItPmV4cGlyZXMudHZfbnNlYyA9IDA7Ci0gICAgICAgIHRpbWVyLT5wZXJpb2QudHZfc2VjICA9IHRpbWVyLT5wZXJpb2QudHZfbnNlYyAgPSAwOwotICAgICAgICB0aW1lci0+b3ZlcnJ1bnMgICAgICAgPSAwOwotCi0gICAgICAgIC8qIGNyZWF0ZSB0aGUgdGhyZWFkICovCi0gICAgICAgIGlmIChwdGhyZWFkX2NyZWF0ZSggJnRpbWVyLT50aHJlYWQsICZ0aW1lci0+YXR0cmlidXRlcywgdGltZXJfdGhyZWFkX3N0YXJ0LCB0aW1lciApIDwgMCkgewotICAgICAgICAgICAgdGhyX3RpbWVyX3RhYmxlX2ZyZWUoIF9fdGltZXJfdGFibGUsIHRpbWVyICk7Ci0gICAgICAgICAgICBlcnJubyA9IEVOT01FTTsKLSAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgfQotCi0gICAgICAgICpwdGltZXJpZCA9IHRpbWVyLT5pZDsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQorICAqdGltZXJfaWQgPSB0aW1lci0+aWQ7CisgIHJldHVybiAwOwogfQogCiAKQEAgLTQxNCw3ICszOTYsNyBAQAogICAgIHN0cnVjdCB0aW1lc3BlYyAgZGlmZjsKIAogICAgIGRpZmYgPSB0aW1lci0+ZXhwaXJlczsKLSAgICBpZiAoIXRpbWVzcGVjX2lzX3plcm8oJmRpZmYpKSAKKyAgICBpZiAoIXRpbWVzcGVjX2lzX3plcm8oJmRpZmYpKQogICAgIHsKICAgICAgICAgc3RydWN0IHRpbWVzcGVjICBub3c7CiAKQEAgLTUzMiwxMDggKzUxNCw5MyBAQAogfQogCiAKLXN0YXRpYyB2b2lkKgotdGltZXJfdGhyZWFkX3N0YXJ0KCB2b2lkKiAgX2FyZyApCi17Ci0gICAgdGhyX3RpbWVyX3QqICB0aW1lciA9IF9hcmc7CitzdGF0aWMgdm9pZCogdGltZXJfdGhyZWFkX3N0YXJ0KHZvaWQqIGFyZykgeworICB0aHJfdGltZXJfdCogdGltZXIgPSBhcmc7CiAKLSAgICB0aHJfdGltZXJfbG9jayggdGltZXIgKTsKKyAgdGhyX3RpbWVyX2xvY2sodGltZXIpOwogCi0gICAgLyogd2UgbG9vcCB1bnRpbCB0aW1lci0+ZG9uZSBpcyBzZXQgaW4gdGltZXJfZGVsZXRlKCkgKi8KLSAgICB3aGlsZSAoIXRpbWVyLT5kb25lKSAKLSAgICB7Ci0gICAgICAgIHN0cnVjdCB0aW1lc3BlYyAgIGV4cGlyZXMgPSB0aW1lci0+ZXhwaXJlczsKLSAgICAgICAgc3RydWN0IHRpbWVzcGVjICAgcGVyaW9kICA9IHRpbWVyLT5wZXJpb2Q7Ci0gICAgICAgIHN0cnVjdCB0aW1lc3BlYyAgIG5vdzsKKyAgLy8gR2l2ZSB0aGlzIHRocmVhZCBhIG1lYW5pbmdmdWwgbmFtZS4KKyAgY2hhciBuYW1lWzMyXTsKKyAgc25wcmludGYobmFtZSwgc2l6ZW9mKG5hbWUpLCAiUE9TSVggaW50ZXJ2YWwgdGltZXIgMHglMDh4IiwgdGltZXItPmlkKTsKKyAgcHRocmVhZF9zZXRuYW1lX25wKHB0aHJlYWRfc2VsZigpLCBuYW1lKTsKIAotICAgICAgICAvKiBpZiB0aGUgdGltZXIgaXMgc3RvcHBlZCBvciBkaXNhcm1lZCwgd2FpdCBpbmRlZmluaXRlbHkKLSAgICAgICAgICogZm9yIGEgc3RhdGUgY2hhbmdlIGZyb20gdGltZXJfc2V0dGltZS9fZGVsZXRlL19zdGFydF9zdG9wCi0gICAgICAgICAqLwotICAgICAgICBpZiAoIHRpbWVyLT5zdG9wcGVkIHx8IHRpbWVzcGVjX2lzX3plcm8oJmV4cGlyZXMpICkKLSAgICAgICAgewotICAgICAgICAgICAgcHRocmVhZF9jb25kX3dhaXQoICZ0aW1lci0+Y29uZCwgJnRpbWVyLT5tdXRleCApOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KKyAgLy8gV2UgbG9vcCB1bnRpbCB0aW1lci0+ZG9uZSBpcyBzZXQgaW4gdGltZXJfZGVsZXRlKCkuCisgIHdoaWxlICghdGltZXItPmRvbmUpIHsKKyAgICBzdHJ1Y3QgdGltZXNwZWMgZXhwaXJlcyA9IHRpbWVyLT5leHBpcmVzOworICAgIHN0cnVjdCB0aW1lc3BlYyBwZXJpb2QgPSB0aW1lci0+cGVyaW9kOwogCi0gICAgICAgIC8qIG90aGVyd2lzZSwgd2UgbmVlZCB0byBkbyBhIHRpbWVkIHdhaXQgdW50aWwgZWl0aGVyIGEKLSAgICAgICAgKiBzdGF0ZSBjaGFuZ2Ugb2YgdGhlIHRpbWVyIGV4cGlyYXRpb24gdGltZS4KLSAgICAgICAgKi8KLSAgICAgICAgY2xvY2tfZ2V0dGltZSh0aW1lci0+Y2xvY2ssICZub3cpOwotCi0gICAgICAgIGlmICh0aW1lc3BlY19jbXAoICZleHBpcmVzLCAmbm93ICkgPiAwKQotICAgICAgICB7Ci0gICAgICAgICAgICAvKiBjb29sLCB0aGVyZSB3YXMgbm8gb3ZlcnJ1biwgc28gY29tcHV0ZSB0aGUKLSAgICAgICAgICAgICAqIHJlbGF0aXZlIHRpbWVvdXQgYXMgJ2V4cGlyZXMgLSBub3cnLCB0aGVuIHdhaXQKLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgaW50ICAgICAgICAgICAgICByZXQ7Ci0gICAgICAgICAgICBzdHJ1Y3QgdGltZXNwZWMgIGRpZmYgPSBleHBpcmVzOwotICAgICAgICAgICAgdGltZXNwZWNfc3ViKCAmZGlmZiwgJm5vdyApOwotCi0gICAgICAgICAgICByZXQgPSBfX3B0aHJlYWRfY29uZF90aW1lZHdhaXRfcmVsYXRpdmUoCi0gICAgICAgICAgICAgICAgICAgICAgICAmdGltZXItPmNvbmQsICZ0aW1lci0+bXV0ZXgsICZkaWZmKTsKLQotICAgICAgICAgICAgLyogaWYgd2UgZGlkbid0IHRpbWVvdXQsIGl0IG1lYW5zIHRoYXQgYSBzdGF0ZSBjaGFuZ2UKLSAgICAgICAgICAgICAgICAqIG9jY3VyZWQsIHNvIHJlbG9vcCB0byB0YWtlIGNhcmUgb2YgaXQuCi0gICAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIGlmIChyZXQgIT0gRVRJTUVET1VUKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UKLSAgICAgICAgewotICAgICAgICAgICAgLyogb3ZlcnJ1biB3YXMgZGV0ZWN0ZWQgYmVmb3JlIHdlIGNvdWxkIHdhaXQgISAqLwotICAgICAgICAgICAgaWYgKCF0aW1lc3BlY19pc196ZXJvKCAmcGVyaW9kICkgKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIC8qIGZvciBwZXJpb2RpYyB0aW1lcnMsIGNvbXB1dGUgdG90YWwgb3ZlcnJ1biBjb3VudCAqLwotICAgICAgICAgICAgICAgIGRvIHsKLSAgICAgICAgICAgICAgICAgICAgdGltZXNwZWNfYWRkKCAmZXhwaXJlcywgJnBlcmlvZCApOwotICAgICAgICAgICAgICAgICAgICBpZiAodGltZXItPm92ZXJydW5zIDwgREVMQVlUSU1FUl9NQVgpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aW1lci0+b3ZlcnJ1bnMgKz0gMTsKLSAgICAgICAgICAgICAgICB9IHdoaWxlICggdGltZXNwZWNfY21wKCAmZXhwaXJlcywgJm5vdyApIDwgMCApOwotCi0gICAgICAgICAgICAgICAgLyogYmFja3RyYWNrIHRoZSBsYXN0IG9uZSwgYmVjYXVzZSB3ZSdyZSBnb2luZyB0bwotICAgICAgICAgICAgICAgICAqIGFkZCB0aGUgc2FtZSB2YWx1ZSBqdXN0IGEgYml0IGxhdGVyICovCi0gICAgICAgICAgICAgICAgdGltZXNwZWNfc3ViKCAmZXhwaXJlcywgJnBlcmlvZCApOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIC8qIGZvciBub24tcGVyaW9kaWMgdGltZXIsIHRoaW5ncyBhcmUgc2ltcGxlICovCi0gICAgICAgICAgICAgICAgdGltZXItPm92ZXJydW5zID0gMTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIC8qIGlmIHdlIGdldCB0aGVyZSwgYSB0aW1lb3V0IHdhcyBkZXRlY3RlZC4KLSAgICAgICAgICogZmlyc3QgcmVsb2FkL2Rpc2FybSB0aGUgdGltZXIgaGFzIG5lZWRlZAotICAgICAgICAgKi8KLSAgICAgICAgaWYgKCAhdGltZXNwZWNfaXNfemVybygmcGVyaW9kKSApIHsKLSAgICAgICAgICAgIHRpbWVzcGVjX2FkZCggJmV4cGlyZXMsICZwZXJpb2QgKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRpbWVzcGVjX3plcm8oICZleHBpcmVzICk7Ci0gICAgICAgIH0KLSAgICAgICAgdGltZXItPmV4cGlyZXMgPSBleHBpcmVzOwotCi0gICAgICAgIC8qIG5vdyBjYWxsIHRoZSB0aW1lciBjYWxsYmFjayBmdW5jdGlvbi4gcmVsZWFzZSB0aGUKLSAgICAgICAgICogbG9jayB0byBhbGxvdyB0aGUgZnVuY3Rpb24gdG8gbW9kaWZ5IHRoZSB0aW1lciBzZXR0aW5nCi0gICAgICAgICAqIG9yIGNhbGwgdGltZXJfZ2V0b3ZlcnJ1bigpLgotICAgICAgICAgKgotICAgICAgICAgKiBOT1RFOiBhdCB0aGlzIHBvaW50IHdlIHRydXN0IHRoZSBjYWxsYmFjayBub3QgdG8gYmUgYQotICAgICAgICAgKiAgICAgICB0b3RhbCBtb3JvbiBhbmQgcHRocmVhZF9raWxsKCkgdGhlIHRpbWVyIHRocmVhZAotICAgICAgICAgKi8KLSAgICAgICAgdGhyX3RpbWVyX3VubG9jayh0aW1lcik7Ci0gICAgICAgIHRpbWVyLT5jYWxsYmFjayggdGltZXItPnZhbHVlICk7Ci0gICAgICAgIHRocl90aW1lcl9sb2NrKHRpbWVyKTsKLQotICAgICAgICAvKiBub3cgY2xlYXIgdGhlIG92ZXJydW5zIGNvdW50ZXIuIGl0IG9ubHkgbWFrZXMgc2Vuc2UKLSAgICAgICAgICogd2l0aGluIHRoZSBjYWxsYmFjayAqLwotICAgICAgICB0aW1lci0+b3ZlcnJ1bnMgPSAwOworICAgIC8vIElmIHRoZSB0aW1lciBpcyBzdG9wcGVkIG9yIGRpc2FybWVkLCB3YWl0IGluZGVmaW5pdGVseQorICAgIC8vIGZvciBhIHN0YXRlIGNoYW5nZSBmcm9tIHRpbWVyX3NldHRpbWUvX2RlbGV0ZS9fc3RhcnRfc3RvcC4KKyAgICBpZiAodGltZXItPnN0b3BwZWQgfHwgdGltZXNwZWNfaXNfemVybygmZXhwaXJlcykpIHsKKyAgICAgIHB0aHJlYWRfY29uZF93YWl0KCZ0aW1lci0+Y29uZCwgJnRpbWVyLT5tdXRleCk7CisgICAgICBjb250aW51ZTsKICAgICB9CiAKLSAgICB0aHJfdGltZXJfdW5sb2NrKCB0aW1lciApOworICAgIC8vIE90aGVyd2lzZSwgd2UgbmVlZCB0byBkbyBhIHRpbWVkIHdhaXQgdW50aWwgZWl0aGVyIGEKKyAgICAvLyBzdGF0ZSBjaGFuZ2Ugb2YgdGhlIHRpbWVyIGV4cGlyYXRpb24gdGltZS4KKyAgICBzdHJ1Y3QgdGltZXNwZWMgbm93OworICAgIGNsb2NrX2dldHRpbWUodGltZXItPmNsb2NrLCAmbm93KTsKIAotICAgIC8qIGZyZWUgdGhlIHRpbWVyIG9iamVjdCBub3cuIHRoZXJlIGlzIG5vIG5lZWQgdG8gY2FsbAotICAgICAqIF9fdGltZXJfdGFibGVfZ2V0KCkgc2luY2Ugd2UncmUgZ3VhcmFudGVlZCB0aGF0IF9fdGltZXJfdGFibGUKLSAgICAgKiBpcyBpbml0aWFsaXplZCBpbiB0aGlzIHRocmVhZAotICAgICAqLwotICAgIHRocl90aW1lcl90YWJsZV9mcmVlKF9fdGltZXJfdGFibGUsIHRpbWVyKTsKKyAgICBpZiAodGltZXNwZWNfY21wKCZleHBpcmVzLCAmbm93KSA+IDApIHsKKyAgICAgIC8vIENvb2wsIHRoZXJlIHdhcyBubyBvdmVycnVuLCBzbyBjb21wdXRlIHRoZQorICAgICAgLy8gcmVsYXRpdmUgdGltZW91dCBhcyAnZXhwaXJlcyAtIG5vdycsIHRoZW4gd2FpdC4KKyAgICAgIHN0cnVjdCB0aW1lc3BlYyBkaWZmID0gZXhwaXJlczsKKyAgICAgIHRpbWVzcGVjX3N1YigmZGlmZiwgJm5vdyk7CiAKLSAgICByZXR1cm4gTlVMTDsKKyAgICAgIGludCByZXQgPSBfX3B0aHJlYWRfY29uZF90aW1lZHdhaXRfcmVsYXRpdmUoJnRpbWVyLT5jb25kLCAmdGltZXItPm11dGV4LCAmZGlmZik7CisKKyAgICAgIC8vIElmIHdlIGRpZG4ndCB0aW1lIG91dCwgaXQgbWVhbnMgdGhhdCBhIHN0YXRlIGNoYW5nZQorICAgICAgLy8gb2NjdXJyZWQsIHNvIGxvb3AgdG8gdGFrZSBjYXJlIG9mIGl0LgorICAgICAgaWYgKHJldCAhPSBFVElNRURPVVQpIHsKKyAgICAgICAgY29udGludWU7CisgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgIC8vIE92ZXJydW4gd2FzIGRldGVjdGVkIGJlZm9yZSB3ZSBjb3VsZCB3YWl0IQorICAgICAgaWYgKCF0aW1lc3BlY19pc196ZXJvKCZwZXJpb2QpKSB7CisgICAgICAgIC8vIEZvciBwZXJpb2RpYyB0aW1lcnMsIGNvbXB1dGUgdG90YWwgb3ZlcnJ1biBjb3VudC4KKyAgICAgICAgZG8geworICAgICAgICAgIHRpbWVzcGVjX2FkZCgmZXhwaXJlcywgJnBlcmlvZCk7CisgICAgICAgICAgaWYgKHRpbWVyLT5vdmVycnVucyA8IERFTEFZVElNRVJfTUFYKSB7CisgICAgICAgICAgICB0aW1lci0+b3ZlcnJ1bnMgKz0gMTsKKyAgICAgICAgICB9CisgICAgICAgIH0gd2hpbGUgKHRpbWVzcGVjX2NtcCgmZXhwaXJlcywgJm5vdykgPCAwKTsKKworICAgICAgICAvLyBCYWNrdHJhY2sgdGhlIGxhc3Qgb25lLCBiZWNhdXNlIHdlJ3JlIGdvaW5nIHRvCisgICAgICAgIC8vIGFkZCB0aGUgc2FtZSB2YWx1ZSBqdXN0IGEgYml0IGxhdGVyLgorICAgICAgICB0aW1lc3BlY19zdWIoJmV4cGlyZXMsICZwZXJpb2QpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gRm9yIG5vbi1wZXJpb2RpYyB0aW1lcnMsIHRoaW5ncyBhcmUgc2ltcGxlLgorICAgICAgICB0aW1lci0+b3ZlcnJ1bnMgPSAxOworICAgICAgfQorICAgIH0KKworICAgIC8vIElmIHdlIGdldCBoZXJlLCBhIHRpbWVvdXQgd2FzIGRldGVjdGVkLgorICAgIC8vIEZpcnN0IHJlbG9hZC9kaXNhcm0gdGhlIHRpbWVyIGFzIG5lZWRlZC4KKyAgICBpZiAoIXRpbWVzcGVjX2lzX3plcm8oJnBlcmlvZCkpIHsKKyAgICAgIHRpbWVzcGVjX2FkZCgmZXhwaXJlcywgJnBlcmlvZCk7CisgICAgfSBlbHNlIHsKKyAgICAgIHRpbWVzcGVjX3plcm8oJmV4cGlyZXMpOworICAgIH0KKyAgICB0aW1lci0+ZXhwaXJlcyA9IGV4cGlyZXM7CisKKyAgICAvLyBOb3cgY2FsbCB0aGUgdGltZXIgY2FsbGJhY2sgZnVuY3Rpb24uIFJlbGVhc2UgdGhlCisgICAgLy8gbG9jayB0byBhbGxvdyB0aGUgZnVuY3Rpb24gdG8gbW9kaWZ5IHRoZSB0aW1lciBzZXR0aW5nCisgICAgLy8gb3IgY2FsbCB0aW1lcl9nZXRvdmVycnVuKCkuCisgICAgLy8gTk9URTogYXQgdGhpcyBwb2ludCB3ZSB0cnVzdCB0aGUgY2FsbGJhY2sgbm90IHRvIGJlIGEKKyAgICAvLyAgICAgIHRvdGFsIG1vcm9uIGFuZCBwdGhyZWFkX2tpbGwoKSB0aGUgdGltZXIgdGhyZWFkCisgICAgdGhyX3RpbWVyX3VubG9jayh0aW1lcik7CisgICAgdGltZXItPmNhbGxiYWNrKHRpbWVyLT52YWx1ZSk7CisgICAgdGhyX3RpbWVyX2xvY2sodGltZXIpOworCisgICAgLy8gTm93IGNsZWFyIHRoZSBvdmVycnVucyBjb3VudGVyLiBpdCBvbmx5IG1ha2VzIHNlbnNlCisgICAgLy8gd2l0aGluIHRoZSBjYWxsYmFjay4KKyAgICB0aW1lci0+b3ZlcnJ1bnMgPSAwOworICB9CisKKyAgdGhyX3RpbWVyX3VubG9jayh0aW1lcik7CisKKyAgLy8gRnJlZSB0aGUgdGltZXIgb2JqZWN0LgorICB0aHJfdGltZXJfdGFibGVfZnJlZShfX3RpbWVyX3RhYmxlX2dldCgpLCB0aW1lcik7CisKKyAgcmV0dXJuIE5VTEw7CiB9CmRpZmYgLS1naXQgYS9saWJjL2Jpb25pYy9wdGhyZWFkLmMgYi9saWJjL2Jpb25pYy9wdGhyZWFkLmMKaW5kZXggNWNhZDE2Ny4uMmUyYzA5ZCAxMDA2NDQKLS0tIGEvbGliYy9iaW9uaWMvcHRocmVhZC5jCisrKyBiL2xpYmMvYmlvbmljL3B0aHJlYWQuYwpAQCAtMjUsMzEgKzI1LDMyIEBACiAgKiBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKICAqIFNVQ0ggREFNQUdFLgogICovCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlIDxhc3NlcnQuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8bWFsbG9jLmg+CisjaW5jbHVkZSA8bWVtb3J5Lmg+CisjaW5jbHVkZSA8cHRocmVhZC5oPgogI2luY2x1ZGUgPHNpZ25hbC5oPgogI2luY2x1ZGUgPHN0ZGludC5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxzeXMvYXRvbWljcy5oPgotI2luY2x1ZGUgPGJpb25pY190bHMuaD4KICNpbmNsdWRlIDxzeXMvbW1hbi5oPgotI2luY2x1ZGUgPHB0aHJlYWQuaD4KLSNpbmNsdWRlIDx0aW1lLmg+Ci0jaW5jbHVkZSAicHRocmVhZF9pbnRlcm5hbC5oIgotI2luY2x1ZGUgInRocmVhZF9wcml2YXRlLmgiCi0jaW5jbHVkZSA8bGltaXRzLmg+Ci0jaW5jbHVkZSA8bWVtb3J5Lmg+Ci0jaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0jaW5jbHVkZSA8bWFsbG9jLmg+Ci0jaW5jbHVkZSA8YmlvbmljX2Z1dGV4Lmg+Ci0jaW5jbHVkZSA8YmlvbmljX2F0b21pY19pbmxpbmUuaD4KICNpbmNsdWRlIDxzeXMvcHJjdGwuaD4KICNpbmNsdWRlIDxzeXMvc3RhdC5oPgotI2luY2x1ZGUgPGZjbnRsLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxiaW9uaWNfcHRocmVhZC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgImJpb25pY19hdG9taWNfaW5saW5lLmgiCisjaW5jbHVkZSAiYmlvbmljX2Z1dGV4LmgiCisjaW5jbHVkZSAiYmlvbmljX3B0aHJlYWQuaCIKKyNpbmNsdWRlICJiaW9uaWNfdGxzLmgiCisjaW5jbHVkZSAicHRocmVhZF9pbnRlcm5hbC5oIgorI2luY2x1ZGUgInRocmVhZF9wcml2YXRlLmgiCiAKIGV4dGVybiB2b2lkIHB0aHJlYWRfZGVidWdfbXV0ZXhfbG9ja19jaGVjayhwdGhyZWFkX211dGV4X3QgKm11dGV4KTsKIGV4dGVybiB2b2lkIHB0aHJlYWRfZGVidWdfbXV0ZXhfdW5sb2NrX2NoZWNrKHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgpOwpAQCAtODAsNiArODEsOCBAQAogCiB2b2lkIEFUVFJJQlVURVMgX3RocmVhZF9jcmVhdGVkX2hvb2socGlkX3QgdGhyZWFkX2lkKTsKIAorc3RhdGljIGNvbnN0IGludCBrUHRocmVhZEluaXRGYWlsZWQgPSAxOworCiAjZGVmaW5lIFBUSFJFQURfQVRUUl9GTEFHX0RFVEFDSEVEICAgICAgMHgwMDAwMDAwMQogI2RlZmluZSBQVEhSRUFEX0FUVFJfRkxBR19VU0VSX1NUQUNLICAgIDB4MDAwMDAwMDIKIApAQCAtOTcsMzUgKzEwMCwxNiBAQAogICAgIC5zY2hlZF9wcmlvcml0eSA9IDAKIH07CiAKLSNkZWZpbmUgIElOSVRfVEhSRUFEUyAgMQotCi1zdGF0aWMgcHRocmVhZF9pbnRlcm5hbF90KiAgZ1RocmVhZExpc3QgPSBOVUxMOworc3RhdGljIHB0aHJlYWRfaW50ZXJuYWxfdCogZ1RocmVhZExpc3QgPSBOVUxMOwogc3RhdGljIHB0aHJlYWRfbXV0ZXhfdCBnVGhyZWFkTGlzdExvY2sgPSBQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVSOwogc3RhdGljIHB0aHJlYWRfbXV0ZXhfdCBnRGVidWdnZXJOb3RpZmljYXRpb25Mb2NrID0gUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUjsKIAogCi0vKiB3ZSBzaW1wbHkgbWFsbG9jL2ZyZWUgdGhlIGludGVybmFsIHB0aHJlYWRfaW50ZXJuYWxfdCBzdHJ1Y3R1cmVzLiB3ZSBtYXkKLSAqIHdhbnQgdG8gdXNlIGEgZGlmZmVyZW50IGFsbG9jYXRpb24gc2NoZW1lIGluIHRoZSBmdXR1cmUsIGJ1dCB0aGlzIG9uZSBzaG91bGQKLSAqIGJlIGxhcmdlbHkgZW5vdWdoCi0gKi8KLXN0YXRpYyBwdGhyZWFkX2ludGVybmFsX3QqCi1fcHRocmVhZF9pbnRlcm5hbF9hbGxvYyh2b2lkKQotewotICAgIHB0aHJlYWRfaW50ZXJuYWxfdCogICB0aHJlYWQ7Ci0KLSAgICB0aHJlYWQgPSBjYWxsb2MoIHNpemVvZigqdGhyZWFkKSwgMSApOwotICAgIGlmICh0aHJlYWQpCi0gICAgICAgIHRocmVhZC0+aW50ZXJuID0gMTsKLQotICAgIHJldHVybiB0aHJlYWQ7Ci19Ci0KIHN0YXRpYyB2b2lkCi1fcHRocmVhZF9pbnRlcm5hbF9mcmVlKCBwdGhyZWFkX2ludGVybmFsX3QqICB0aHJlYWQgKQorX3B0aHJlYWRfaW50ZXJuYWxfZnJlZShwdGhyZWFkX2ludGVybmFsX3QqIHRocmVhZCkKIHsKLSAgICBpZiAodGhyZWFkICYmIHRocmVhZC0+aW50ZXJuKSB7Ci0gICAgICAgIHRocmVhZC0+aW50ZXJuID0gMDsgIC8qIGp1c3QgaW4gY2FzZSAqLwotICAgICAgICBmcmVlICh0aHJlYWQpOworICAgIGlmICh0aHJlYWQgIT0gTlVMTCkgeworICAgICAgICBmcmVlKHRocmVhZCk7CiAgICAgfQogfQogCkBAIC0xOTQsMzIgKzE3OCwzNSBAQAogCiAKIC8qCi0gKiBUaGlzIHRyYW1wb2xpbmUgaXMgY2FsbGVkIGZyb20gdGhlIGFzc2VtYmx5IGNsb25lKCkgZnVuY3Rpb24KKyAqIFRoaXMgdHJhbXBvbGluZSBpcyBjYWxsZWQgZnJvbSB0aGUgYXNzZW1ibHkgX3B0aHJlYWRfY2xvbmUoKSBmdW5jdGlvbi4KICAqLwogdm9pZCBfX3RocmVhZF9lbnRyeShpbnQgKCpmdW5jKSh2b2lkKiksIHZvaWQgKmFyZywgdm9pZCAqKnRscykKIHsKLSAgICBpbnQgcmV0VmFsdWU7Ci0gICAgcHRocmVhZF9pbnRlcm5hbF90ICogdGhySW5mbzsKLQogICAgIC8vIFdhaXQgZm9yIG91ciBjcmVhdGluZyB0aHJlYWQgdG8gcmVsZWFzZSB1cy4gVGhpcyBsZXRzIGl0IGhhdmUgdGltZSB0bwotICAgIC8vIG5vdGlmeSBnZGIgYWJvdXQgdGhpcyB0aHJlYWQgYmVmb3JlIGl0IHN0YXJ0cyBkb2luZyBhbnl0aGluZy4KKyAgICAvLyBub3RpZnkgZ2RiIGFib3V0IHRoaXMgdGhyZWFkIGJlZm9yZSB3ZSBzdGFydCBkb2luZyBhbnl0aGluZy4KICAgICAvLwogICAgIC8vIFRoaXMgYWxzbyBwcm92aWRlcyB0aGUgbWVtb3J5IGJhcnJpZXIgbmVlZGVkIHRvIGVuc3VyZSB0aGF0IGFsbCBtZW1vcnkKICAgICAvLyBhY2Nlc3NlcyBwcmV2aW91c2x5IG1hZGUgYnkgdGhlIGNyZWF0aW5nIHRocmVhZCBhcmUgdmlzaWJsZSB0byB1cy4KLSAgICBwdGhyZWFkX211dGV4X3QgKiBzdGFydF9tdXRleCA9IChwdGhyZWFkX211dGV4X3QgKikmdGxzW1RMU19TTE9UX1NFTEZdOworICAgIHB0aHJlYWRfbXV0ZXhfdCogc3RhcnRfbXV0ZXggPSAocHRocmVhZF9tdXRleF90KikgJnRsc1tUTFNfU0xPVF9TRUxGXTsKICAgICBwdGhyZWFkX211dGV4X2xvY2soc3RhcnRfbXV0ZXgpOwogICAgIHB0aHJlYWRfbXV0ZXhfZGVzdHJveShzdGFydF9tdXRleCk7CiAKLSAgICB0aHJJbmZvID0gKHB0aHJlYWRfaW50ZXJuYWxfdCAqKSB0bHNbVExTX1NMT1RfVEhSRUFEX0lEXTsKKyAgICBwdGhyZWFkX2ludGVybmFsX3QqIHRocmVhZCA9IChwdGhyZWFkX2ludGVybmFsX3QqKSB0bHNbVExTX1NMT1RfVEhSRUFEX0lEXTsKKyAgICBfX2luaXRfdGxzKHRscywgdGhyZWFkKTsKIAotICAgIF9faW5pdF90bHMoIHRscywgdGhySW5mbyApOworICAgIGlmICgodGhyZWFkLT5pbnRlcm5hbF9mbGFncyAmIGtQdGhyZWFkSW5pdEZhaWxlZCkgIT0gMCkgeworICAgICAgICBwdGhyZWFkX2V4aXQoTlVMTCk7CisgICAgfQogCi0gICAgcHRocmVhZF9leGl0KCAodm9pZCopZnVuYyhhcmcpICk7CisgICAgaW50IHJlc3VsdCA9IGZ1bmMoYXJnKTsKKyAgICBwdGhyZWFkX2V4aXQoKHZvaWQqKSByZXN1bHQpOwogfQogCiBfX0xJQkNfQUJJX1BSSVZBVEVfXwotdm9pZCBfaW5pdF90aHJlYWQocHRocmVhZF9pbnRlcm5hbF90ICogdGhyZWFkLCBwaWRfdCBrZXJuZWxfaWQsIHB0aHJlYWRfYXR0cl90ICogYXR0ciwgdm9pZCAqIHN0YWNrX2Jhc2UpCitpbnQgX2luaXRfdGhyZWFkKHB0aHJlYWRfaW50ZXJuYWxfdCAqIHRocmVhZCwgcGlkX3Qga2VybmVsX2lkLCBwdGhyZWFkX2F0dHJfdCAqIGF0dHIsIHZvaWQgKiBzdGFja19iYXNlKQogeworICAgIGludCBlcnJvciA9IDA7CisKICAgICBpZiAoYXR0ciA9PSBOVUxMKSB7CiAgICAgICAgIHRocmVhZC0+YXR0ciA9IGdEZWZhdWx0UHRocmVhZEF0dHI7CiAgICAgfSBlbHNlIHsKQEAgLTIyOCw0MCArMjE1LDQyIEBACiAgICAgdGhyZWFkLT5hdHRyLnN0YWNrX2Jhc2UgPSBzdGFja19iYXNlOwogICAgIHRocmVhZC0+a2VybmVsX2lkICAgICAgID0ga2VybmVsX2lkOwogCi0gICAgLy8gc2V0IHRoZSBzY2hlZHVsaW5nIHBvbGljeS9wcmlvcml0eSBvZiB0aGUgdGhyZWFkCisgICAgLy8gTWFrZSBhIG5vdGUgb2Ygd2hldGhlciB0aGUgdXNlciBzdXBwbGllZCB0aGlzIHN0YWNrIChzbyB3ZSBrbm93IHdoZXRoZXIgb3Igbm90IHRvIGZyZWUgaXQpLgorICAgIGlmIChhdHRyLT5zdGFja19iYXNlID09IHN0YWNrX2Jhc2UpIHsKKyAgICAgICAgdGhyZWFkLT5hdHRyLmZsYWdzIHw9IFBUSFJFQURfQVRUUl9GTEFHX1VTRVJfU1RBQ0s7CisgICAgfQorCisgICAgLy8gU2V0IHRoZSBzY2hlZHVsaW5nIHBvbGljeS9wcmlvcml0eSBvZiB0aGUgdGhyZWFkLgogICAgIGlmICh0aHJlYWQtPmF0dHIuc2NoZWRfcG9saWN5ICE9IFNDSEVEX05PUk1BTCkgewogICAgICAgICBzdHJ1Y3Qgc2NoZWRfcGFyYW0gcGFyYW07CiAgICAgICAgIHBhcmFtLnNjaGVkX3ByaW9yaXR5ID0gdGhyZWFkLT5hdHRyLnNjaGVkX3ByaW9yaXR5OwotICAgICAgICBzY2hlZF9zZXRzY2hlZHVsZXIoa2VybmVsX2lkLCB0aHJlYWQtPmF0dHIuc2NoZWRfcG9saWN5LCAmcGFyYW0pOworICAgICAgICBpZiAoc2NoZWRfc2V0c2NoZWR1bGVyKGtlcm5lbF9pZCwgdGhyZWFkLT5hdHRyLnNjaGVkX3BvbGljeSwgJnBhcmFtKSA9PSAtMSkgeworICAgICAgICAgICAgZXJyb3IgPSBlcnJubzsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHB0aHJlYWRfY29uZF9pbml0KCZ0aHJlYWQtPmpvaW5fY29uZCwgTlVMTCk7CiAgICAgdGhyZWFkLT5qb2luX2NvdW50ID0gMDsKIAogICAgIHRocmVhZC0+Y2xlYW51cF9zdGFjayA9IE5VTEw7CisKKyAgICBfcHRocmVhZF9pbnRlcm5hbF9hZGQodGhyZWFkKTsKKyAgICByZXR1cm4gZXJyb3I7CiB9CiAKLQotLyogWFhYIHN0YWNrcyBub3QgcmVjbGFpbWVkIGlmIHRocmVhZCBzcGF3biBmYWlscyAqLwotLyogWFhYIHN0YWNrcyBhZGRyZXNzIHNwYWNlcyBzaG91bGQgYmUgcmV1c2VkIGlmIGF2YWlsYWJsZSBhZ2FpbiAqLwotCiBzdGF0aWMgdm9pZCAqbWtzdGFjayhzaXplX3Qgc2l6ZSwgc2l6ZV90IGd1YXJkX3NpemUpCiB7Ci0gICAgdm9pZCAqIHN0YWNrOwotCiAgICAgcHRocmVhZF9tdXRleF9sb2NrKCZtbWFwX2xvY2spOwogCi0gICAgc3RhY2sgPSBtbWFwKE5VTEwsIHNpemUsCi0gICAgICAgICAgICAgICAgIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCi0gICAgICAgICAgICAgICAgIE1BUF9QUklWQVRFIHwgTUFQX0FOT05ZTU9VUyB8IE1BUF9OT1JFU0VSVkUsCi0gICAgICAgICAgICAgICAgIC0xLCAwKTsKLQotICAgIGlmKHN0YWNrID09IE1BUF9GQUlMRUQpIHsKKyAgICBpbnQgcHJvdCA9IFBST1RfUkVBRCB8IFBST1RfV1JJVEU7CisgICAgaW50IGZsYWdzID0gTUFQX1BSSVZBVEUgfCBNQVBfQU5PTllNT1VTIHwgTUFQX05PUkVTRVJWRTsKKyAgICB2b2lkKiBzdGFjayA9IG1tYXAoTlVMTCwgc2l6ZSwgcHJvdCwgZmxhZ3MsIC0xLCAwKTsKKyAgICBpZiAoc3RhY2sgPT0gTUFQX0ZBSUxFRCkgewogICAgICAgICBzdGFjayA9IE5VTEw7CiAgICAgICAgIGdvdG8gZG9uZTsKICAgICB9CiAKLSAgICBpZihtcHJvdGVjdChzdGFjaywgZ3VhcmRfc2l6ZSwgUFJPVF9OT05FKSl7CisgICAgaWYgKG1wcm90ZWN0KHN0YWNrLCBndWFyZF9zaXplLCBQUk9UX05PTkUpID09IC0xKSB7CiAgICAgICAgIG11bm1hcChzdGFjaywgc2l6ZSk7CiAgICAgICAgIHN0YWNrID0gTlVMTDsKICAgICAgICAgZ290byBkb25lOwpAQCAtMjk4LDEzICsyODcsNyBAQAogaW50IHB0aHJlYWRfY3JlYXRlKHB0aHJlYWRfdCAqdGhyZWFkX291dCwgcHRocmVhZF9hdHRyX3QgY29uc3QgKiBhdHRyLAogICAgICAgICAgICAgICAgICAgIHZvaWQgKigqc3RhcnRfcm91dGluZSkodm9pZCAqKSwgdm9pZCAqIGFyZykKIHsKLSAgICBjaGFyKiAgIHN0YWNrOwotICAgIHZvaWQqKiAgdGxzOwotICAgIGludCB0aWQ7Ci0gICAgcHRocmVhZF9tdXRleF90ICogc3RhcnRfbXV0ZXg7Ci0gICAgcHRocmVhZF9pbnRlcm5hbF90ICogdGhyZWFkOwotICAgIGludCAgICAgICAgICAgICAgICAgIG1hZGVzdGFjayA9IDA7Ci0gICAgaW50ICAgICBvbGRfZXJybm8gPSBlcnJubzsKKyAgICBpbnQgb2xkX2Vycm5vID0gZXJybm87CiAKICAgICAvKiB0aGlzIHdpbGwgaW5mb3JtIHRoZSByZXN0IG9mIHRoZSBDIGxpYnJhcnkgdGhhdCBhdCBsZWFzdCBvbmUgdGhyZWFkCiAgICAgICogd2FzIGNyZWF0ZWQuIHRoaXMgd2lsbCBlbmZvcmNlIGNlcnRhaW4gZnVuY3Rpb25zIHRvIGFjcXVpcmUvcmVsZWFzZQpAQCAtMzE1LDMxICsyOTgsMjggQEAKICAgICAgKi8KICAgICBfX2lzdGhyZWFkZWQgPSAxOwogCi0gICAgdGhyZWFkID0gX3B0aHJlYWRfaW50ZXJuYWxfYWxsb2MoKTsKLSAgICBpZiAodGhyZWFkID09IE5VTEwpCisgICAgcHRocmVhZF9pbnRlcm5hbF90KiB0aHJlYWQgPSBjYWxsb2Moc2l6ZW9mKCp0aHJlYWQpLCAxKTsKKyAgICBpZiAodGhyZWFkID09IE5VTEwpIHsKICAgICAgICAgcmV0dXJuIEVOT01FTTsKKyAgICB9CiAKICAgICBpZiAoYXR0ciA9PSBOVUxMKSB7CiAgICAgICAgIGF0dHIgPSAmZ0RlZmF1bHRQdGhyZWFkQXR0cjsKICAgICB9CiAKICAgICAvLyBtYWtlIHN1cmUgdGhlIHN0YWNrIGlzIFBBR0VfU0laRSBhbGlnbmVkCi0gICAgc2l6ZV90IHN0YWNrU2l6ZSA9IChhdHRyLT5zdGFja19zaXplICsKLSAgICAgICAgICAgICAgICAgICAgICAgIChQQUdFX1NJWkUtMSkpICYgfihQQUdFX1NJWkUtMSk7Ci0KLSAgICBpZiAoIWF0dHItPnN0YWNrX2Jhc2UpIHsKLSAgICAgICAgc3RhY2sgPSBta3N0YWNrKHN0YWNrU2l6ZSwgYXR0ci0+Z3VhcmRfc2l6ZSk7Ci0gICAgICAgIGlmKHN0YWNrID09IE5VTEwpIHsKKyAgICBzaXplX3Qgc3RhY2tfc2l6ZSA9IChhdHRyLT5zdGFja19zaXplICsgKFBBR0VfU0laRS0xKSkgJiB+KFBBR0VfU0laRS0xKTsKKyAgICB1aW50OF90KiBzdGFjayA9IGF0dHItPnN0YWNrX2Jhc2U7CisgICAgaWYgKHN0YWNrID09IE5VTEwpIHsKKyAgICAgICAgc3RhY2sgPSBta3N0YWNrKHN0YWNrX3NpemUsIGF0dHItPmd1YXJkX3NpemUpOworICAgICAgICBpZiAoc3RhY2sgPT0gTlVMTCkgewogICAgICAgICAgICAgX3B0aHJlYWRfaW50ZXJuYWxfZnJlZSh0aHJlYWQpOwogICAgICAgICAgICAgcmV0dXJuIEVOT01FTTsKICAgICAgICAgfQotICAgICAgICBtYWRlc3RhY2sgPSAxOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0YWNrID0gYXR0ci0+c3RhY2tfYmFzZTsKICAgICB9CiAKICAgICAvLyBNYWtlIHJvb20gZm9yIFRMUwotICAgIHRscyA9ICh2b2lkKiopKHN0YWNrICsgc3RhY2tTaXplIC0gQklPTklDX1RMU19TTE9UUypzaXplb2Yodm9pZCopKTsKKyAgICB2b2lkKiogdGxzID0gKHZvaWQqKikoc3RhY2sgKyBzdGFja19zaXplIC0gQklPTklDX1RMU19TTE9UUypzaXplb2Yodm9pZCopKTsKIAogICAgIC8vIENyZWF0ZSBhIG11dGV4IGZvciB0aGUgdGhyZWFkIGluIFRMU19TTE9UX1NFTEYgdG8gd2FpdCBvbiBvbmNlIGl0IHN0YXJ0cyBzbyB3ZSBjYW4ga2VlcAogICAgIC8vIGl0IGZyb20gZG9pbmcgYW55dGhpbmcgdW50aWwgYWZ0ZXIgd2Ugbm90aWZ5IHRoZSBkZWJ1Z2dlciBhYm91dCBpdApAQCAtMzQ3LDQzICszMjcsNDcgQEAKICAgICAvLyBUaGlzIGFsc28gcHJvdmlkZXMgdGhlIG1lbW9yeSBiYXJyaWVyIHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgYWxsCiAgICAgLy8gbWVtb3J5IGFjY2Vzc2VzIHByZXZpb3VzbHkgcGVyZm9ybWVkIGJ5IHRoaXMgdGhyZWFkIGFyZSB2aXNpYmxlIHRvCiAgICAgLy8gdGhlIG5ldyB0aHJlYWQuCi0gICAgc3RhcnRfbXV0ZXggPSAocHRocmVhZF9tdXRleF90ICopICZ0bHNbVExTX1NMT1RfU0VMRl07CisgICAgcHRocmVhZF9tdXRleF90KiBzdGFydF9tdXRleCA9IChwdGhyZWFkX211dGV4X3QqKSAmdGxzW1RMU19TTE9UX1NFTEZdOwogICAgIHB0aHJlYWRfbXV0ZXhfaW5pdChzdGFydF9tdXRleCwgTlVMTCk7CiAgICAgcHRocmVhZF9tdXRleF9sb2NrKHN0YXJ0X211dGV4KTsKIAogICAgIHRsc1tUTFNfU0xPVF9USFJFQURfSURdID0gdGhyZWFkOwogCi0gICAgdGlkID0gX19wdGhyZWFkX2Nsb25lKChpbnQoKikodm9pZCopKXN0YXJ0X3JvdXRpbmUsIHRscywKLSAgICAgICAgICAgICAgICBDTE9ORV9GSUxFUyB8IENMT05FX0ZTIHwgQ0xPTkVfVk0gfCBDTE9ORV9TSUdIQU5ECi0gICAgICAgICAgICAgICAgfCBDTE9ORV9USFJFQUQgfCBDTE9ORV9TWVNWU0VNIHwgQ0xPTkVfREVUQUNIRUQsCi0gICAgICAgICAgICAgICAgYXJnKTsKKyAgICBpbnQgZmxhZ3MgPSBDTE9ORV9GSUxFUyB8IENMT05FX0ZTIHwgQ0xPTkVfVk0gfCBDTE9ORV9TSUdIQU5EIHwKKyAgICAgICAgICAgICAgICBDTE9ORV9USFJFQUQgfCBDTE9ORV9TWVNWU0VNIHwgQ0xPTkVfREVUQUNIRUQ7CisgICAgaW50IHRpZCA9IF9fcHRocmVhZF9jbG9uZSgoaW50KCopKHZvaWQqKSlzdGFydF9yb3V0aW5lLCB0bHMsIGZsYWdzLCBhcmcpOwogCi0gICAgaWYodGlkIDwgMCkgewotICAgICAgICBpbnQgIHJlc3VsdDsKLSAgICAgICAgaWYgKG1hZGVzdGFjaykKLSAgICAgICAgICAgIG11bm1hcChzdGFjaywgc3RhY2tTaXplKTsKKyAgICBpZiAodGlkIDwgMCkgeworICAgICAgICBpbnQgY2xvbmVfZXJybm8gPSBlcnJubzsKKyAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2soc3RhcnRfbXV0ZXgpOworICAgICAgICBpZiAoc3RhY2sgIT0gYXR0ci0+c3RhY2tfYmFzZSkgeworICAgICAgICAgICAgbXVubWFwKHN0YWNrLCBzdGFja19zaXplKTsKKyAgICAgICAgfQogICAgICAgICBfcHRocmVhZF9pbnRlcm5hbF9mcmVlKHRocmVhZCk7Ci0gICAgICAgIHJlc3VsdCA9IGVycm5vOwogICAgICAgICBlcnJubyA9IG9sZF9lcnJubzsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgcmV0dXJuIGNsb25lX2Vycm5vOwogICAgIH0KIAotICAgIF9pbml0X3RocmVhZCh0aHJlYWQsIHRpZCwgKHB0aHJlYWRfYXR0cl90KilhdHRyLCBzdGFjayk7CisgICAgaW50IGluaXRfZXJybm8gPSBfaW5pdF90aHJlYWQodGhyZWFkLCB0aWQsIChwdGhyZWFkX2F0dHJfdCopIGF0dHIsIHN0YWNrKTsKKyAgICBpZiAoaW5pdF9lcnJubyAhPSAwKSB7CisgICAgICAgIC8vIE1hcmsgdGhlIHRocmVhZCBkZXRhY2hlZCBhbmQgbGV0IGl0cyBfX3RocmVhZF9lbnRyeSBydW4gdG8KKyAgICAgICAgLy8gY29tcGxldGlvbi4gKEl0J2xsIGp1c3QgZXhpdCBpbW1lZGlhdGVseSwgY2xlYW5pbmcgdXAgaXRzIHJlc291cmNlcy4pCisgICAgICAgIHRocmVhZC0+aW50ZXJuYWxfZmxhZ3MgfD0ga1B0aHJlYWRJbml0RmFpbGVkOworICAgICAgICB0aHJlYWQtPmF0dHIuZmxhZ3MgfD0gUFRIUkVBRF9BVFRSX0ZMQUdfREVUQUNIRUQ7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKHN0YXJ0X211dGV4KTsKKyAgICAgICAgZXJybm8gPSBvbGRfZXJybm87CisgICAgICAgIHJldHVybiBpbml0X2Vycm5vOworICAgIH0KIAotICAgIF9wdGhyZWFkX2ludGVybmFsX2FkZCh0aHJlYWQpOwotCi0gICAgaWYgKCFtYWRlc3RhY2spCi0gICAgICAgIHRocmVhZC0+YXR0ci5mbGFncyB8PSBQVEhSRUFEX0FUVFJfRkxBR19VU0VSX1NUQUNLOwotCi0gICAgLy8gTm90aWZ5IGFueSBkZWJ1Z2dlcnMgYWJvdXQgdGhlIG5ldyB0aHJlYWQKKyAgICAvLyBOb3RpZnkgYW55IGRlYnVnZ2VycyBhYm91dCB0aGUgbmV3IHRocmVhZC4KICAgICBwdGhyZWFkX211dGV4X2xvY2soJmdEZWJ1Z2dlck5vdGlmaWNhdGlvbkxvY2spOwogICAgIF90aHJlYWRfY3JlYXRlZF9ob29rKHRpZCk7CiAgICAgcHRocmVhZF9tdXRleF91bmxvY2soJmdEZWJ1Z2dlck5vdGlmaWNhdGlvbkxvY2spOwogCi0gICAgLy8gTGV0IHRoZSB0aHJlYWQgZG8gaXQncyB0aGluZworICAgIC8vIExldCB0aGUgdGhyZWFkIHJ1bi4KICAgICBwdGhyZWFkX211dGV4X3VubG9jayhzdGFydF9tdXRleCk7CiAKLSAgICAqdGhyZWFkX291dCA9IChwdGhyZWFkX3QpdGhyZWFkOworICAgICp0aHJlYWRfb3V0ID0gKHB0aHJlYWRfdCkgdGhyZWFkOwogICAgIHJldHVybiAwOwogfQogCkBAIC01OTMsNiArNTc3LDE3IEBACiAgICAgICAgIF9wdGhyZWFkX2ludGVybmFsX3JlbW92ZSh0aHJlYWQpOwogICAgICAgICBfcHRocmVhZF9pbnRlcm5hbF9mcmVlKHRocmVhZCk7CiAgICAgfSBlbHNlIHsKKyAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCZnVGhyZWFkTGlzdExvY2spOworCisgICAgICAgLyogbWFrZSBzdXJlIHRoYXQgdGhlIHRocmVhZCBzdHJ1Y3QgZG9lc24ndCBoYXZlIHN0YWxlIHBvaW50ZXJzIHRvIGEgc3RhY2sgdGhhdAorICAgICAgICAqIHdpbGwgYmUgdW5tYXBwZWQgYWZ0ZXIgdGhlIGV4aXQgY2FsbCBiZWxvdy4KKyAgICAgICAgKi8KKyAgICAgICAgaWYgKCF1c2VyX3N0YWNrKSB7CisgICAgICAgICAgICB0aHJlYWQtPmF0dHIuc3RhY2tfYmFzZSA9IE5VTEw7CisgICAgICAgICAgICB0aHJlYWQtPmF0dHIuc3RhY2tfc2l6ZSA9IDA7CisgICAgICAgICAgICB0aHJlYWQtPnRscyA9IE5VTEw7CisgICAgICAgIH0KKwogICAgICAgIC8qIHRoZSBqb2luX2NvdW50IGZpZWxkIGlzIHVzZWQgdG8gc3RvcmUgdGhlIG51bWJlciBvZiB0aHJlYWRzIHdhaXRpbmcgZm9yCiAgICAgICAgICogdGhlIHRlcm1pbmF0aW9uIG9mIHRoaXMgdGhyZWFkIHdpdGggcHRocmVhZF9qb2luKCksCiAgICAgICAgICoKQEAgLTYwNSw3ICs2MDAsNiBAQAogICAgICAgICAqIGlzIGdvbmUgKGFzIHdlbGwgYXMgaXRzIFRMUyBhcmVhKS4gd2hlbiBhbm90aGVyIHRocmVhZCBjYWxscyBwdGhyZWFkX2pvaW4oKQogICAgICAgICAqIG9uIGl0LCBpdCB3aWxsIGltbWVkaWF0ZWx5IGZyZWUgdGhlIHRocmVhZCBhbmQgcmV0dXJuLgogICAgICAgICAqLwotICAgICAgICBwdGhyZWFkX211dGV4X2xvY2soJmdUaHJlYWRMaXN0TG9jayk7CiAgICAgICAgIHRocmVhZC0+cmV0dXJuX3ZhbHVlID0gcmV0dmFsOwogICAgICAgICBpZiAodGhyZWFkLT5qb2luX2NvdW50ID4gMCkgewogICAgICAgICAgICAgcHRocmVhZF9jb25kX2Jyb2FkY2FzdCgmdGhyZWFkLT5qb2luX2NvbmQpOwpAQCAtMTk1OCw3ICsxOTUyLDkgQEAKICAgICAgICAgICogc2ltaWxhcmx5LCBpdCBpcyBwb3NzaWJsZSB0byBoYXZlIHRoci0+dGxzID09IE5VTEwgZm9yIHRocmVhZHMgdGhhdAogICAgICAgICAgKiB3ZXJlIGp1c3QgcmVjZW50bHkgY3JlYXRlZCB0aHJvdWdoIHB0aHJlYWRfY3JlYXRlKCkgYnV0IHdob3NlCiAgICAgICAgICAqIHN0YXJ0dXAgdHJhbXBvbGluZSAoX190aHJlYWRfZW50cnkpIGhhc24ndCBiZWVuIHJ1biB5ZXQgYnkgdGhlCi0gICAgICAgICAqIHNjaGVkdWxlci4gc28gY2hlY2sgZm9yIHRoaXMgdG9vLgorICAgICAgICAgKiBzY2hlZHVsZXIuIHRoci0+dGxzIHdpbGwgYWxzbyBiZSBOVUxMIGFmdGVyIGl0J3Mgc3RhY2sgaGFzIGJlZW4KKyAgICAgICAgICogdW5tYXBwZWQgYnV0IGJlZm9yZSB0aGUgb25nb2luZyBwdGhyZWFkX2pvaW4oKSBpcyBmaW5pc2hlZC4KKyAgICAgICAgICogc28gY2hlY2sgZm9yIHRoaXMgdG9vLgogICAgICAgICAgKi8KICAgICAgICAgaWYgKHRoci0+am9pbl9jb3VudCA8IDAgfHwgIXRoci0+dGxzKQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9saWJjL2Jpb25pYy9wdGhyZWFkX2ludGVybmFsLmggYi9saWJjL2Jpb25pYy9wdGhyZWFkX2ludGVybmFsLmgKaW5kZXggMjY4Y2FjZi4uMmJkMTEwYyAxMDA2NDQKLS0tIGEvbGliYy9iaW9uaWMvcHRocmVhZF9pbnRlcm5hbC5oCisrKyBiL2xpYmMvYmlvbmljL3B0aHJlYWRfaW50ZXJuYWwuaApAQCAtNDEsMTIgKzQxLDEyIEBACiAgICAgcHRocmVhZF9jb25kX3QgICAgICAgICAgICAgIGpvaW5fY29uZDsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgam9pbl9jb3VudDsKICAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlOwotICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm47CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgIGludGVybmFsX2ZsYWdzOwogICAgIF9fcHRocmVhZF9jbGVhbnVwX3QqICAgICAgICBjbGVhbnVwX3N0YWNrOwogICAgIHZvaWQqKiAgICAgICAgICAgICAgICAgICAgICB0bHM7ICAgICAgICAgLyogdGhyZWFkLWxvY2FsIHN0b3JhZ2UgYXJlYSAqLwogfSBwdGhyZWFkX2ludGVybmFsX3Q7CiAKLWV4dGVybiB2b2lkIF9pbml0X3RocmVhZChwdGhyZWFkX2ludGVybmFsX3QgKiB0aHJlYWQsIHBpZF90IGtlcm5lbF9pZCwgcHRocmVhZF9hdHRyX3QgKiBhdHRyLCB2b2lkICogc3RhY2tfYmFzZSk7CitleHRlcm4gaW50IF9pbml0X3RocmVhZChwdGhyZWFkX2ludGVybmFsX3QgKiB0aHJlYWQsIHBpZF90IGtlcm5lbF9pZCwgcHRocmVhZF9hdHRyX3QgKiBhdHRyLCB2b2lkICogc3RhY2tfYmFzZSk7CiB2b2lkIF9wdGhyZWFkX2ludGVybmFsX2FkZCggcHRocmVhZF9pbnRlcm5hbF90KiAgdGhyZWFkICk7CiBwdGhyZWFkX2ludGVybmFsX3QqIF9fZ2V0X3RocmVhZCh2b2lkKTsKIApkaWZmIC0tZ2l0IGEvbGliYy9pbmNsdWRlL3N5cy9saW51eC1zeXNjYWxscy5oIGIvbGliYy9pbmNsdWRlL3N5cy9saW51eC1zeXNjYWxscy5oCmluZGV4IGQwOWU5NTUuLmM4YTY1NGMgMTAwNjQ0Ci0tLSBhL2xpYmMvaW5jbHVkZS9zeXMvbGludXgtc3lzY2FsbHMuaAorKysgYi9saWJjL2luY2x1ZGUvc3lzL2xpbnV4LXN5c2NhbGxzLmgKQEAgLTEsMTcgKzEsOTQgQEAKIC8qIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5LCBkbyBub3QgdG91Y2ggKi8KICNpZm5kZWYgX0JJT05JQ19MSU5VWF9TWVNDQUxMU19IXworI2RlZmluZSBfQklPTklDX0xJTlVYX1NZU0NBTExTX0hfCiAKLSNpZiAhZGVmaW5lZCBfX0FTTV9BUk1fVU5JU1REX0ggJiYgIWRlZmluZWQgX19BU01fSTM4Nl9VTklTVERfSAorI2lmICFkZWZpbmVkIF9fQVNNX0FSTV9VTklTVERfSCAmJiAhZGVmaW5lZCBfX0FTTV9JMzg2X1VOSVNURF9IICYmICFkZWZpbmVkIF9fQVNNX01JUFNfVU5JU1REX0gKICNpZiBkZWZpbmVkIF9fYXJtX18gJiYgIWRlZmluZWQgX19BUk1fRUFCSV9fICYmICFkZWZpbmVkIF9fdGh1bWJfXwotICAjICBkZWZpbmUgX19OUl9TWVNDQUxMX0JBU0UgIDB4OTAwMDAwCi0gICNlbHNlCi0gICMgIGRlZmluZSAgX19OUl9TWVNDQUxMX0JBU0UgIDAKLSAgI2VuZGlmCisgICMgIGRlZmluZSBfX05SX1NZU0NBTExfQkFTRSAweDkwMDAwMAorI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKyAgIyAgZGVmaW5lIF9fTlJfU1lTQ0FMTF9CQVNFIDQwMDAKKyNlbHNlCisgICMgIGRlZmluZSBfX05SX1NZU0NBTExfQkFTRSAwCisjZW5kaWYKIAogI2RlZmluZSBfX05SX2V4aXQgICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMSkKICNkZWZpbmUgX19OUl9mb3JrICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIpCi0jZGVmaW5lIF9fTlJfY2xvbmUgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMjApCisjZGVmaW5lIF9fTlJfcmVhZCAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzKQorI2RlZmluZSBfX05SX3dyaXRlICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNCkKKyNkZWZpbmUgX19OUl9vcGVuICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDUpCisjZGVmaW5lIF9fTlJfY2xvc2UgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA2KQorI2RlZmluZSBfX05SX2xpbmsgICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgOSkKKyNkZWZpbmUgX19OUl91bmxpbmsgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDEwKQogI2RlZmluZSBfX05SX2V4ZWN2ZSAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTEpCisjZGVmaW5lIF9fTlJfY2hkaXIgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMikKKyNkZWZpbmUgX19OUl9ta25vZCAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE0KQorI2RlZmluZSBfX05SX2NobW9kICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTUpCisjZGVmaW5lIF9fTlJfbHNlZWsgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOSkKKyNkZWZpbmUgX19OUl9nZXRwaWQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwKQorI2RlZmluZSBfX05SX21vdW50ICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjEpCisjZGVmaW5lIF9fTlJfcHRyYWNlICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNikKKyNkZWZpbmUgX19OUl9wYXVzZSAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI5KQorI2RlZmluZSBfX05SX2FjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMzMpCisjZGVmaW5lIF9fTlJfc3luYyAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzNikKKyNkZWZpbmUgX19OUl9yZW5hbWUgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDM4KQorI2RlZmluZSBfX05SX21rZGlyICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMzkpCisjZGVmaW5lIF9fTlJfcm1kaXIgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA0MCkKKyNkZWZpbmUgX19OUl9kdXAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDQxKQorI2RlZmluZSBfX05SX3RpbWVzICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNDMpCisjZGVmaW5lIF9fTlJfYnJrICAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA0NSkKKyNkZWZpbmUgX19OUl9hY2N0ICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDUxKQorI2RlZmluZSBfX05SX3Vtb3VudDIgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNTIpCisjZGVmaW5lIF9fTlJfaW9jdGwgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA1NCkKKyNkZWZpbmUgX19OUl9mY250bCAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDU1KQorI2RlZmluZSBfX05SX3NldHBnaWQgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNTcpCisjZGVmaW5lIF9fTlJfdW1hc2sgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA2MCkKKyNkZWZpbmUgX19OUl9jaHJvb3QgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDYxKQorI2RlZmluZSBfX05SX2R1cDIgICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNjMpCisjZGVmaW5lIF9fTlJfZ2V0cHBpZCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA2NCkKKyNkZWZpbmUgX19OUl9zZXRzaWQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDY2KQorI2RlZmluZSBfX05SX3NpZ2FjdGlvbiAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNjcpCisjZGVmaW5lIF9fTlJfc2lnc3VzcGVuZCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA3MikKKyNkZWZpbmUgX19OUl9zaWdwZW5kaW5nICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDczKQorI2RlZmluZSBfX05SX3NldHJsaW1pdCAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNzUpCisjZGVmaW5lIF9fTlJfZ2V0cnVzYWdlICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA3NykKKyNkZWZpbmUgX19OUl9nZXR0aW1lb2ZkYXkgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDc4KQorI2RlZmluZSBfX05SX3NldHRpbWVvZmRheSAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNzkpCisjZGVmaW5lIF9fTlJfc3ltbGluayAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA4MykKKyNkZWZpbmUgX19OUl9yZWFkbGluayAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDg1KQorI2RlZmluZSBfX05SX3JlYm9vdCAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgODgpCisjZGVmaW5lIF9fTlJfbXVubWFwICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA5MSkKKyNkZWZpbmUgX19OUl90cnVuY2F0ZSAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDkyKQorI2RlZmluZSBfX05SX2Z0cnVuY2F0ZSAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgOTMpCisjZGVmaW5lIF9fTlJfZmNobW9kICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA5NCkKKyNkZWZpbmUgX19OUl9nZXRwcmlvcml0eSAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDk2KQorI2RlZmluZSBfX05SX3NldHByaW9yaXR5ICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgOTcpCisjZGVmaW5lIF9fTlJfc3lzbG9nICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMDMpCisjZGVmaW5lIF9fTlJfc3lzbG9nICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMDMpCisjZGVmaW5lIF9fTlJfc2V0aXRpbWVyICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMDQpCisjZGVmaW5lIF9fTlJfZ2V0aXRpbWVyICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMDUpCisjZGVmaW5lIF9fTlJfd2FpdDQgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMTQpCisjZGVmaW5lIF9fTlJfc3lzaW5mbyAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMTYpCisjZGVmaW5lIF9fTlJfZnN5bmMgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMTgpCisjZGVmaW5lIF9fTlJfY2xvbmUgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMjApCisjZGVmaW5lIF9fTlJfdW5hbWUgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMjIpCisjZGVmaW5lIF9fTlJfbXByb3RlY3QgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMjUpCisjZGVmaW5lIF9fTlJfc2lncHJvY21hc2sgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMjYpCisjZGVmaW5lIF9fTlJfaW5pdF9tb2R1bGUgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMjgpCisjZGVmaW5lIF9fTlJfZGVsZXRlX21vZHVsZSAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMjkpCisjZGVmaW5lIF9fTlJfZ2V0cGdpZCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMzIpCisjZGVmaW5lIF9fTlJfZmNoZGlyICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMzMpCisjZGVmaW5lIF9fTlJfcGVyc29uYWxpdHkgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMzYpCisjZGVmaW5lIF9fTlJfX2xsc2VlayAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNDApCisjZGVmaW5lIF9fTlJfX25ld3NlbGVjdCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNDIpCisjZGVmaW5lIF9fTlJfZmxvY2sgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNDMpCisjZGVmaW5lIF9fTlJfbXN5bmMgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNDQpCisjZGVmaW5lIF9fTlJfcmVhZHYgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNDUpCisjZGVmaW5lIF9fTlJfd3JpdGV2ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNDYpCisjZGVmaW5lIF9fTlJfcGVyZl9ldmVudF9vcGVuICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzNjQpCisKKyNpZmRlZiBfX2FybV9fCisjZGVmaW5lIF9fTlJfZXhpdF9ncm91cCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNDgpCisjZGVmaW5lIF9fTlJfd2FpdGlkICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyODApCiAjZGVmaW5lIF9fTlJfc2V0dWlkMzIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTMpCiAjZGVmaW5lIF9fTlJfZ2V0dWlkMzIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTkpCiAjZGVmaW5lIF9fTlJfZ2V0Z2lkMzIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDApCkBAIC0yMiw4OCArOTksNTMgQEAKICNkZWZpbmUgX19OUl9nZXR0aWQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyNCkKICNkZWZpbmUgX19OUl9yZWFkYWhlYWQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyNSkKICNkZWZpbmUgX19OUl9nZXRncm91cHMzMiAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwNSkKLSNkZWZpbmUgX19OUl9nZXRwZ2lkICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDEzMikKLSNkZWZpbmUgX19OUl9nZXRwcGlkICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDY0KQotI2RlZmluZSBfX05SX3NldHNpZCAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNjYpCiAjZGVmaW5lIF9fTlJfc2V0Z2lkMzIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTQpCiAjZGVmaW5lIF9fTlJfc2V0cmV1aWQzMiAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDMpCiAjZGVmaW5lIF9fTlJfc2V0cmVzdWlkMzIgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDgpCiAjZGVmaW5lIF9fTlJfc2V0cmVzZ2lkMzIgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTApCi0jZGVmaW5lIF9fTlJfYnJrICAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA0NSkKLSNkZWZpbmUgX19OUl9wdHJhY2UgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2KQotI2RlZmluZSBfX05SX2dldHByaW9yaXR5ICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgOTYpCi0jZGVmaW5lIF9fTlJfc2V0cHJpb3JpdHkgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA5NykKLSNkZWZpbmUgX19OUl9zZXRybGltaXQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDc1KQogI2RlZmluZSBfX05SX3VnZXRybGltaXQgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTkxKQotI2RlZmluZSBfX05SX2dldHJ1c2FnZSAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNzcpCiAjZGVmaW5lIF9fTlJfc2V0Z3JvdXBzMzIgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDYpCi0jZGVmaW5lIF9fTlJfc2V0cGdpZCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA1NykKKyNkZWZpbmUgX19OUl92Zm9yayAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5MCkKICNkZWZpbmUgX19OUl9zZXRyZWdpZDMyICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwNCkKLSNkZWZpbmUgX19OUl9jaHJvb3QgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDYxKQogI2RlZmluZSBfX05SX3ByY3RsICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTcyKQogI2RlZmluZSBfX05SX2NhcGdldCAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTg0KQogI2RlZmluZSBfX05SX2NhcHNldCAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTg1KQogI2RlZmluZSBfX05SX3NpZ2FsdHN0YWNrICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTg2KQotI2RlZmluZSBfX05SX2FjY3QgICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNTEpCi0jZGVmaW5lIF9fTlJfcmVhZCAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzKQotI2RlZmluZSBfX05SX3dyaXRlICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNCkKICNkZWZpbmUgX19OUl9wcmVhZDY0ICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4MCkKICNkZWZpbmUgX19OUl9wd3JpdGU2NCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4MSkKLSNkZWZpbmUgX19OUl9vcGVuICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDUpCi0jZGVmaW5lIF9fTlJfY2xvc2UgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA2KQotI2RlZmluZSBfX05SX2xzZWVrICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTkpCi0jZGVmaW5lIF9fTlJfX2xsc2VlayAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNDApCi0jZGVmaW5lIF9fTlJfZ2V0cGlkICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMCkKKyNkZWZpbmUgX19OUl9vcGVuYXQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMyMikKICNkZWZpbmUgX19OUl9tbWFwMiAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5MikKLSNkZWZpbmUgX19OUl9tdW5tYXAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDkxKQogI2RlZmluZSBfX05SX21yZW1hcCAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTYzKQotI2RlZmluZSBfX05SX21zeW5jICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTQ0KQotI2RlZmluZSBfX05SX21wcm90ZWN0ICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTI1KQorI2RlZmluZSBfX05SX21hZHZpc2UgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjIwKQogI2RlZmluZSBfX05SX21sb2NrICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTUwKQogI2RlZmluZSBfX05SX211bmxvY2sgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTUxKQotI2RlZmluZSBfX05SX2lvY3RsICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNTQpCi0jZGVmaW5lIF9fTlJfcmVhZHYgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNDUpCi0jZGVmaW5lIF9fTlJfd3JpdGV2ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNDYpCi0jZGVmaW5lIF9fTlJfZmNudGwgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA1NSkKLSNkZWZpbmUgX19OUl9mbG9jayAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE0MykKLSNkZWZpbmUgX19OUl9mY2htb2QgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDk0KQotI2RlZmluZSBfX05SX2R1cCAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNDEpCisjZGVmaW5lIF9fTlJfbWluY29yZSAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTkpCiAjZGVmaW5lIF9fTlJfcGlwZSAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA0MikKLSNkZWZpbmUgX19OUl9kdXAyICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDYzKQotI2RlZmluZSBfX05SX19uZXdzZWxlY3QgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTQyKQotI2RlZmluZSBfX05SX2Z0cnVuY2F0ZSAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgOTMpCisjZGVmaW5lIF9fTlJfcGlwZTIgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzNTkpCiAjZGVmaW5lIF9fTlJfZnRydW5jYXRlNjQgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTQpCi0jZGVmaW5lIF9fTlJfZnN5bmMgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMTgpCisjZGVmaW5lIF9fTlJfZ2V0ZGVudHM2NCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTcpCiAjZGVmaW5lIF9fTlJfZmRhdGFzeW5jICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNDgpCiAjZGVmaW5lIF9fTlJfZmNob3duMzIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMDcpCi0jZGVmaW5lIF9fTlJfc3luYyAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzNikKICNkZWZpbmUgX19OUl9mY250bDY0ICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyMSkKKyNkZWZpbmUgX19OUl9mc3RhdGZzNjQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2NykKICNkZWZpbmUgX19OUl9zZW5kZmlsZSAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4NykKKyNkZWZpbmUgX19OUl9mc3RhdGF0NjQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMyNykKKyNkZWZpbmUgX19OUl9ta2RpcmF0ICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMyMykKKyNkZWZpbmUgX19OUl9mY2hvd25hdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMyNSkKKyNkZWZpbmUgX19OUl9mY2htb2RhdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMzMykKKyNkZWZpbmUgX19OUl9yZW5hbWVhdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMyOSkKICNkZWZpbmUgX19OUl9mc2V0eGF0dHIgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyOCkKICNkZWZpbmUgX19OUl9mZ2V0eGF0dHIgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzMSkKICNkZWZpbmUgX19OUl9mbGlzdHhhdHRyICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzNCkKICNkZWZpbmUgX19OUl9mcmVtb3ZleGF0dHIgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzNykKLSNkZWZpbmUgX19OUl9saW5rICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDkpCi0jZGVmaW5lIF9fTlJfdW5saW5rICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMCkKLSNkZWZpbmUgX19OUl9jaGRpciAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDEyKQotI2RlZmluZSBfX05SX21rbm9kICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTQpCi0jZGVmaW5lIF9fTlJfY2htb2QgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNSkKKyNkZWZpbmUgX19OUl91bmxpbmthdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMyOCkKICNkZWZpbmUgX19OUl9jaG93bjMyICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxMikKICNkZWZpbmUgX19OUl9sY2hvd24zMiAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5OCkKLSNkZWZpbmUgX19OUl9tb3VudCAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxKQotI2RlZmluZSBfX05SX3Vtb3VudDIgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNTIpCiAjZGVmaW5lIF9fTlJfZnN0YXQ2NCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTcpCiAjZGVmaW5lIF9fTlJfc3RhdDY0ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTUpCiAjZGVmaW5lIF9fTlJfbHN0YXQ2NCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxOTYpCi0jZGVmaW5lIF9fTlJfbWtkaXIgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzOSkKLSNkZWZpbmUgX19OUl9yZWFkbGluayAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDg1KQotI2RlZmluZSBfX05SX3JtZGlyICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNDApCi0jZGVmaW5lIF9fTlJfcmVuYW1lICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzOCkKICNkZWZpbmUgX19OUl9nZXRjd2QgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4MykKLSNkZWZpbmUgX19OUl9hY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMzKQotI2RlZmluZSBfX05SX3N5bWxpbmsgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgODMpCi0jZGVmaW5lIF9fTlJfZmNoZGlyICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMzMpCi0jZGVmaW5lIF9fTlJfdHJ1bmNhdGUgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA5MikKKyNkZWZpbmUgX19OUl9mYWNjZXNzYXQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMzNCkKICNkZWZpbmUgX19OUl9zZXR4YXR0ciAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyNikKICNkZWZpbmUgX19OUl9sc2V0eGF0dHIgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyNykKICNkZWZpbmUgX19OUl9nZXR4YXR0ciAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyOSkKQEAgLTExMiw2MiArMTU0LDggQEAKICNkZWZpbmUgX19OUl9sbGlzdHhhdHRyICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzMykKICNkZWZpbmUgX19OUl9yZW1vdmV4YXR0ciAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzNSkKICNkZWZpbmUgX19OUl9scmVtb3ZleGF0dHIgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzNikKLSNkZWZpbmUgX19OUl9wYXVzZSAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI5KQotI2RlZmluZSBfX05SX2dldHRpbWVvZmRheSAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNzgpCi0jZGVmaW5lIF9fTlJfc2V0dGltZW9mZGF5ICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA3OSkKLSNkZWZpbmUgX19OUl90aW1lcyAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDQzKQotI2RlZmluZSBfX05SX25hbm9zbGVlcCAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTYyKQotI2RlZmluZSBfX05SX2dldGl0aW1lciAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTA1KQotI2RlZmluZSBfX05SX3NldGl0aW1lciAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTA0KQotI2RlZmluZSBfX05SX3NpZ2FjdGlvbiAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNjcpCi0jZGVmaW5lIF9fTlJfc2lncHJvY21hc2sgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxMjYpCi0jZGVmaW5lIF9fTlJfc2lnc3VzcGVuZCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA3MikKLSNkZWZpbmUgX19OUl9ydF9zaWdhY3Rpb24gICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3NCkKLSNkZWZpbmUgX19OUl9ydF9zaWdwcm9jbWFzayAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3NSkKLSNkZWZpbmUgX19OUl9ydF9zaWd0aW1lZHdhaXQgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3NykKLSNkZWZpbmUgX19OUl9zaWdwZW5kaW5nICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDczKQotI2RlZmluZSBfX05SX3NjaGVkX3NldHNjaGVkdWxlciAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTU2KQotI2RlZmluZSBfX05SX3NjaGVkX2dldHNjaGVkdWxlciAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTU3KQotI2RlZmluZSBfX05SX3NjaGVkX3lpZWxkICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTU4KQotI2RlZmluZSBfX05SX3NjaGVkX3NldHBhcmFtICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTU0KQotI2RlZmluZSBfX05SX3NjaGVkX2dldHBhcmFtICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTU1KQotI2RlZmluZSBfX05SX3NjaGVkX2dldF9wcmlvcml0eV9tYXggICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTU5KQotI2RlZmluZSBfX05SX3NjaGVkX2dldF9wcmlvcml0eV9taW4gICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTYwKQotI2RlZmluZSBfX05SX3NjaGVkX3JyX2dldF9pbnRlcnZhbCAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTYxKQotI2RlZmluZSBfX05SX3NjaGVkX3NldGFmZmluaXR5ICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjQxKQotI2RlZmluZSBfX05SX3NjaGVkX2dldGFmZmluaXR5ICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjQyKQotI2RlZmluZSBfX05SX3VuYW1lICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTIyKQotI2RlZmluZSBfX05SX3dhaXQ0ICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTE0KQotI2RlZmluZSBfX05SX3VtYXNrICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNjApCi0jZGVmaW5lIF9fTlJfcmVib290ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA4OCkKLSNkZWZpbmUgX19OUl9zeXNsb2cgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDEwMykKLSNkZWZpbmUgX19OUl9pbml0X21vZHVsZSAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDEyOCkKLSNkZWZpbmUgX19OUl9kZWxldGVfbW9kdWxlICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDEyOSkKLSNkZWZpbmUgX19OUl9zeXNsb2cgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDEwMykKLSNkZWZpbmUgX19OUl9zeXNpbmZvICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDExNikKLSNkZWZpbmUgX19OUl9wZXJzb25hbGl0eSAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDEzNikKLSNkZWZpbmUgX19OUl9wZXJmX2V2ZW50X29wZW4gICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDM2NCkKLSNkZWZpbmUgX19OUl9mdXRleCAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI0MCkKLSNkZWZpbmUgX19OUl9wb2xsICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2OCkKLQotI2lmZGVmIF9fYXJtX18KLSNkZWZpbmUgX19OUl9leGl0X2dyb3VwICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI0OCkKLSNkZWZpbmUgX19OUl93YWl0aWQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI4MCkKLSNkZWZpbmUgX19OUl92Zm9yayAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5MCkKLSNkZWZpbmUgX19OUl9vcGVuYXQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMyMikKLSNkZWZpbmUgX19OUl9tYWR2aXNlICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyMCkKLSNkZWZpbmUgX19OUl9taW5jb3JlICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxOSkKLSNkZWZpbmUgX19OUl9waXBlMiAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDM1OSkKLSNkZWZpbmUgX19OUl9nZXRkZW50czY0ICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxNykKLSNkZWZpbmUgX19OUl9mc3RhdGZzNjQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2NykKLSNkZWZpbmUgX19OUl9mc3RhdGF0NjQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMyNykKLSNkZWZpbmUgX19OUl9ta2RpcmF0ICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMyMykKLSNkZWZpbmUgX19OUl9mY2hvd25hdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMyNSkKLSNkZWZpbmUgX19OUl9mY2htb2RhdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMzMykKLSNkZWZpbmUgX19OUl9yZW5hbWVhdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMyOSkKLSNkZWZpbmUgX19OUl91bmxpbmthdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMyOCkKLSNkZWZpbmUgX19OUl9mYWNjZXNzYXQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMzNCkKICNkZWZpbmUgX19OUl9zdGF0ZnM2NCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2NikKKyNkZWZpbmUgX19OUl9uYW5vc2xlZXAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2MikKICNkZWZpbmUgX19OUl9jbG9ja19nZXR0aW1lICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2MykKICNkZWZpbmUgX19OUl9jbG9ja19zZXR0aW1lICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2MikKICNkZWZpbmUgX19OUl9jbG9ja19nZXRyZXMgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2NCkKQEAgLTE3OSw2ICsxNjcsOSBAQAogI2RlZmluZSBfX05SX3RpbWVyX2RlbGV0ZSAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjYxKQogI2RlZmluZSBfX05SX3V0aW1lcyAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjY5KQogI2RlZmluZSBfX05SX3V0aW1lbnNhdCAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMzQ4KQorI2RlZmluZSBfX05SX3J0X3NpZ2FjdGlvbiAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTc0KQorI2RlZmluZSBfX05SX3J0X3NpZ3Byb2NtYXNrICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTc1KQorI2RlZmluZSBfX05SX3J0X3NpZ3RpbWVkd2FpdCAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTc3KQogI2RlZmluZSBfX05SX3NvY2tldCAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjgxKQogI2RlZmluZSBfX05SX3NvY2tldHBhaXIgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjg4KQogI2RlZmluZSBfX05SX2JpbmQgICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjgyKQpAQCAtMTk0LDY0ICsxODUsMjcxIEBACiAjZGVmaW5lIF9fTlJfZ2V0c29ja29wdCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOTUpCiAjZGVmaW5lIF9fTlJfc2VuZG1zZyAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOTYpCiAjZGVmaW5lIF9fTlJfcmVjdm1zZyAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOTcpCisjZGVmaW5lIF9fTlJfc2NoZWRfc2V0c2NoZWR1bGVyICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTYpCisjZGVmaW5lIF9fTlJfc2NoZWRfZ2V0c2NoZWR1bGVyICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTcpCisjZGVmaW5lIF9fTlJfc2NoZWRfeWllbGQgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTgpCisjZGVmaW5lIF9fTlJfc2NoZWRfc2V0cGFyYW0gICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTQpCisjZGVmaW5lIF9fTlJfc2NoZWRfZ2V0cGFyYW0gICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTUpCisjZGVmaW5lIF9fTlJfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNTkpCisjZGVmaW5lIF9fTlJfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjApCisjZGVmaW5lIF9fTlJfc2NoZWRfcnJfZ2V0X2ludGVydmFsICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjEpCisjZGVmaW5lIF9fTlJfc2NoZWRfc2V0YWZmaW5pdHkgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNDEpCisjZGVmaW5lIF9fTlJfc2NoZWRfZ2V0YWZmaW5pdHkgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNDIpCiAjZGVmaW5lIF9fTlJfZ2V0Y3B1ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzNDUpCiAjZGVmaW5lIF9fTlJfaW9wcmlvX3NldCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMTQpCiAjZGVmaW5lIF9fTlJfaW9wcmlvX2dldCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMTUpCisjZGVmaW5lIF9fTlJfZnV0ZXggICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNDApCiAjZGVmaW5lIF9fTlJfZXBvbGxfY3JlYXRlICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNTApCiAjZGVmaW5lIF9fTlJfZXBvbGxfY3RsICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNTEpCiAjZGVmaW5lIF9fTlJfZXBvbGxfd2FpdCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNTIpCiAjZGVmaW5lIF9fTlJfaW5vdGlmeV9pbml0ICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMTYpCiAjZGVmaW5lIF9fTlJfaW5vdGlmeV9hZGRfd2F0Y2ggICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMTcpCiAjZGVmaW5lIF9fTlJfaW5vdGlmeV9ybV93YXRjaCAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzMTgpCisjZGVmaW5lIF9fTlJfcG9sbCAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAxNjgpCiAjZGVmaW5lIF9fTlJfZXZlbnRmZDIgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAzNTYpCiAjZGVmaW5lIF9fTlJfQVJNX3NldF90bHMgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA5ODMwNDUpCiAjZGVmaW5lIF9fTlJfQVJNX2NhY2hlZmx1c2ggICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA5ODMwNDIpCiAjZW5kaWYKIAogI2lmZGVmIF9faTM4Nl9fCi0jZGVmaW5lIF9fTlJfZXhpdF9ncm91cCAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNTIpCiAjZGVmaW5lIF9fTlJfd2FpdHBpZCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA3KQotI2RlZmluZSBfX05SX3dhaXRpZCAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMjg0KQogI2RlZmluZSBfX05SX2tpbGwgICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMzcpCi0jZGVmaW5lIF9fTlJfdGtpbGwgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMzgpCi0jZGVmaW5lIF9fTlJfdGdraWxsICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNzApCi0jZGVmaW5lIF9fTlJfc2V0X3RocmVhZF9hcmVhICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyNDMpCi0jZGVmaW5lIF9fTlJfb3BlbmF0ICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyOTUpCi0jZGVmaW5lIF9fTlJfbWFkdmlzZSAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMTkpCisjZGVmaW5lIF9fTlJfcGlwZSAgICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA0MikKKyNkZWZpbmUgX19OUl9zb2NrZXRjYWxsICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDEwMikKKyNkZWZpbmUgX19OUl9mZGF0YXN5bmMgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE0OCkKKyNkZWZpbmUgX19OUl9tbG9jayAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1MCkKKyNkZWZpbmUgX19OUl9tdW5sb2NrICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1MSkKKyNkZWZpbmUgX19OUl9zY2hlZF9zZXRwYXJhbSAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1NCkKKyNkZWZpbmUgX19OUl9zY2hlZF9nZXRwYXJhbSAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1NSkKKyNkZWZpbmUgX19OUl9zY2hlZF9zZXRzY2hlZHVsZXIgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1NikKKyNkZWZpbmUgX19OUl9zY2hlZF9nZXRzY2hlZHVsZXIgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1NykKKyNkZWZpbmUgX19OUl9zY2hlZF95aWVsZCAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1OCkKKyNkZWZpbmUgX19OUl9zY2hlZF9nZXRfcHJpb3JpdHlfbWF4ICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1OSkKKyNkZWZpbmUgX19OUl9zY2hlZF9nZXRfcHJpb3JpdHlfbWluICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2MCkKKyNkZWZpbmUgX19OUl9zY2hlZF9ycl9nZXRfaW50ZXJ2YWwgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2MSkKKyNkZWZpbmUgX19OUl9uYW5vc2xlZXAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2MikKKyNkZWZpbmUgX19OUl9tcmVtYXAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2MykKKyNkZWZpbmUgX19OUl9wb2xsICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2OCkKKyNkZWZpbmUgX19OUl9wcmN0bCAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3MikKKyNkZWZpbmUgX19OUl9ydF9zaWdhY3Rpb24gICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3NCkKKyNkZWZpbmUgX19OUl9ydF9zaWdwcm9jbWFzayAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3NSkKKyNkZWZpbmUgX19OUl9ydF9zaWd0aW1lZHdhaXQgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3NykKKyNkZWZpbmUgX19OUl9wcmVhZDY0ICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4MCkKKyNkZWZpbmUgX19OUl9wd3JpdGU2NCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4MSkKKyNkZWZpbmUgX19OUl9nZXRjd2QgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4MykKKyNkZWZpbmUgX19OUl9jYXBnZXQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4NCkKKyNkZWZpbmUgX19OUl9jYXBzZXQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4NSkKKyNkZWZpbmUgX19OUl9zaWdhbHRzdGFjayAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4NikKKyNkZWZpbmUgX19OUl9zZW5kZmlsZSAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4NykKKyNkZWZpbmUgX19OUl91Z2V0cmxpbWl0ICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5MSkKKyNkZWZpbmUgX19OUl9tbWFwMiAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5MikKKyNkZWZpbmUgX19OUl9mdHJ1bmNhdGU2NCAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5NCkKKyNkZWZpbmUgX19OUl9zdGF0NjQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5NSkKKyNkZWZpbmUgX19OUl9sc3RhdDY0ICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5NikKKyNkZWZpbmUgX19OUl9mc3RhdDY0ICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5NykKKyNkZWZpbmUgX19OUl9sY2hvd24zMiAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5OCkKKyNkZWZpbmUgX19OUl9nZXR1aWQzMiAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5OSkKKyNkZWZpbmUgX19OUl9nZXRnaWQzMiAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwMCkKKyNkZWZpbmUgX19OUl9nZXRldWlkMzIgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwMSkKKyNkZWZpbmUgX19OUl9nZXRlZ2lkMzIgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwMikKKyNkZWZpbmUgX19OUl9zZXRyZXVpZDMyICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwMykKKyNkZWZpbmUgX19OUl9zZXRyZWdpZDMyICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwNCkKKyNkZWZpbmUgX19OUl9nZXRncm91cHMzMiAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwNSkKKyNkZWZpbmUgX19OUl9zZXRncm91cHMzMiAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwNikKKyNkZWZpbmUgX19OUl9mY2hvd24zMiAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwNykKKyNkZWZpbmUgX19OUl9zZXRyZXN1aWQzMiAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwOCkKKyNkZWZpbmUgX19OUl9nZXRyZXN1aWQzMiAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwOSkKKyNkZWZpbmUgX19OUl9zZXRyZXNnaWQzMiAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxMCkKKyNkZWZpbmUgX19OUl9nZXRyZXNnaWQzMiAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxMSkKKyNkZWZpbmUgX19OUl9jaG93bjMyICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxMikKKyNkZWZpbmUgX19OUl9zZXR1aWQzMiAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxMykKKyNkZWZpbmUgX19OUl9zZXRnaWQzMiAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxNCkKICNkZWZpbmUgX19OUl9taW5jb3JlICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxOCkKLSNkZWZpbmUgX19OUl9waXBlMiAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMzMSkKKyNkZWZpbmUgX19OUl9tYWR2aXNlICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxOSkKICNkZWZpbmUgX19OUl9nZXRkZW50czY0ICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyMCkKLSNkZWZpbmUgX19OUl9mc3RhdGZzNjQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2OSkKLSNkZWZpbmUgX19OUl9mc3RhdGF0NjQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMwMCkKLSNkZWZpbmUgX19OUl9ta2RpcmF0ICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI5NikKLSNkZWZpbmUgX19OUl9mY2hvd25hdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI5OCkKLSNkZWZpbmUgX19OUl9mY2htb2RhdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMwNikKLSNkZWZpbmUgX19OUl9yZW5hbWVhdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMwMikKLSNkZWZpbmUgX19OUl91bmxpbmthdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMwMSkKLSNkZWZpbmUgX19OUl9mYWNjZXNzYXQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMwNykKLSNkZWZpbmUgX19OUl9zdGF0ZnM2NCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2OCkKLSNkZWZpbmUgX19OUl9jbG9ja19nZXR0aW1lICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2NSkKLSNkZWZpbmUgX19OUl9jbG9ja19zZXR0aW1lICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2NCkKLSNkZWZpbmUgX19OUl9jbG9ja19nZXRyZXMgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2NikKLSNkZWZpbmUgX19OUl9jbG9ja19uYW5vc2xlZXAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2NykKKyNkZWZpbmUgX19OUl9mY250bDY0ICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyMSkKKyNkZWZpbmUgX19OUl9nZXR0aWQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyNCkKKyNkZWZpbmUgX19OUl9yZWFkYWhlYWQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyNSkKKyNkZWZpbmUgX19OUl9zZXR4YXR0ciAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyNikKKyNkZWZpbmUgX19OUl9sc2V0eGF0dHIgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyNykKKyNkZWZpbmUgX19OUl9mc2V0eGF0dHIgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyOCkKKyNkZWZpbmUgX19OUl9nZXR4YXR0ciAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyOSkKKyNkZWZpbmUgX19OUl9sZ2V0eGF0dHIgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzMCkKKyNkZWZpbmUgX19OUl9mZ2V0eGF0dHIgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzMSkKKyNkZWZpbmUgX19OUl9saXN0eGF0dHIgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzMikKKyNkZWZpbmUgX19OUl9sbGlzdHhhdHRyICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzMykKKyNkZWZpbmUgX19OUl9mbGlzdHhhdHRyICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzNCkKKyNkZWZpbmUgX19OUl9yZW1vdmV4YXR0ciAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzNSkKKyNkZWZpbmUgX19OUl9scmVtb3ZleGF0dHIgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzNikKKyNkZWZpbmUgX19OUl9mcmVtb3ZleGF0dHIgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzNykKKyNkZWZpbmUgX19OUl90a2lsbCAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzOCkKKyNkZWZpbmUgX19OUl9mdXRleCAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI0MCkKKyNkZWZpbmUgX19OUl9zY2hlZF9zZXRhZmZpbml0eSAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI0MSkKKyNkZWZpbmUgX19OUl9zY2hlZF9nZXRhZmZpbml0eSAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI0MikKKyNkZWZpbmUgX19OUl9zZXRfdGhyZWFkX2FyZWEgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI0MykKKyNkZWZpbmUgX19OUl9leGl0X2dyb3VwICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI1MikKKyNkZWZpbmUgX19OUl9lcG9sbF9jcmVhdGUgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI1NCkKKyNkZWZpbmUgX19OUl9lcG9sbF9jdGwgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI1NSkKKyNkZWZpbmUgX19OUl9lcG9sbF93YWl0ICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI1NikKICNkZWZpbmUgX19OUl90aW1lcl9jcmVhdGUgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI1OSkKICNkZWZpbmUgX19OUl90aW1lcl9zZXR0aW1lICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2MCkKICNkZWZpbmUgX19OUl90aW1lcl9nZXR0aW1lICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2MSkKICNkZWZpbmUgX19OUl90aW1lcl9nZXRvdmVycnVuICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2MikKICNkZWZpbmUgX19OUl90aW1lcl9kZWxldGUgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2MykKKyNkZWZpbmUgX19OUl9jbG9ja19zZXR0aW1lICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2NCkKKyNkZWZpbmUgX19OUl9jbG9ja19nZXR0aW1lICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2NSkKKyNkZWZpbmUgX19OUl9jbG9ja19nZXRyZXMgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2NikKKyNkZWZpbmUgX19OUl9jbG9ja19uYW5vc2xlZXAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2NykKKyNkZWZpbmUgX19OUl9zdGF0ZnM2NCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2OCkKKyNkZWZpbmUgX19OUl9mc3RhdGZzNjQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2OSkKKyNkZWZpbmUgX19OUl90Z2tpbGwgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI3MCkKICNkZWZpbmUgX19OUl91dGltZXMgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI3MSkKLSNkZWZpbmUgX19OUl91dGltZW5zYXQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMyMCkKLSNkZWZpbmUgX19OUl9zb2NrZXRjYWxsICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDEwMikKLSNkZWZpbmUgX19OUl9nZXRjcHUgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMxOCkKKyNkZWZpbmUgX19OUl93YWl0aWQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI4NCkKICNkZWZpbmUgX19OUl9pb3ByaW9fc2V0ICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI4OSkKICNkZWZpbmUgX19OUl9pb3ByaW9fZ2V0ICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI5MCkKLSNkZWZpbmUgX19OUl9lcG9sbF9jcmVhdGUgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI1NCkKLSNkZWZpbmUgX19OUl9lcG9sbF9jdGwgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI1NSkKLSNkZWZpbmUgX19OUl9lcG9sbF93YWl0ICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI1NikKICNkZWZpbmUgX19OUl9pbm90aWZ5X2luaXQgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI5MSkKICNkZWZpbmUgX19OUl9pbm90aWZ5X2FkZF93YXRjaCAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI5MikKICNkZWZpbmUgX19OUl9pbm90aWZ5X3JtX3dhdGNoICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI5MykKKyNkZWZpbmUgX19OUl9vcGVuYXQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI5NSkKKyNkZWZpbmUgX19OUl9ta2RpcmF0ICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI5NikKKyNkZWZpbmUgX19OUl9mY2hvd25hdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI5OCkKKyNkZWZpbmUgX19OUl9mc3RhdGF0NjQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMwMCkKKyNkZWZpbmUgX19OUl91bmxpbmthdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMwMSkKKyNkZWZpbmUgX19OUl9yZW5hbWVhdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMwMikKKyNkZWZpbmUgX19OUl9mY2htb2RhdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMwNikKKyNkZWZpbmUgX19OUl9mYWNjZXNzYXQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMwNykKKyNkZWZpbmUgX19OUl9nZXRjcHUgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMxOCkKKyNkZWZpbmUgX19OUl91dGltZW5zYXQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMyMCkKICNkZWZpbmUgX19OUl9ldmVudGZkMiAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMyOCkKKyNkZWZpbmUgX19OUl9waXBlMiAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMzMSkKKyNlbmRpZgorCisjaWZkZWYgX19taXBzX18KKyNkZWZpbmUgX19OUl9zeXNjYWxsICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDApCisjZGVmaW5lIF9fTlJfd2FpdHBpZCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA3KQorI2RlZmluZSBfX05SX2xjaG93biAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMTYpCisjZGVmaW5lIF9fTlJfc2V0dWlkICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAyMykKKyNkZWZpbmUgX19OUl9nZXR1aWQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI0KQorI2RlZmluZSBfX05SX2tpbGwgICAgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgMzcpCisjZGVmaW5lIF9fTlJfc2V0Z2lkICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA0NikKKyNkZWZpbmUgX19OUl9nZXRnaWQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDQ3KQorI2RlZmluZSBfX05SX2dldGV1aWQgICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNDkpCisjZGVmaW5lIF9fTlJfZ2V0ZWdpZCAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA1MCkKKyNkZWZpbmUgX19OUl9zZXRyZXVpZCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDcwKQorI2RlZmluZSBfX05SX3NldHJlZ2lkICAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgNzEpCisjZGVmaW5lIF9fTlJfZ2V0cmxpbWl0ICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA3NikKKyNkZWZpbmUgX19OUl9nZXRncm91cHMgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDgwKQorI2RlZmluZSBfX05SX3NldGdyb3VwcyAgICAgICAgICAgICAgICAgICAgKF9fTlJfU1lTQ0FMTF9CQVNFICsgODEpCisjZGVmaW5lIF9fTlJfZmNob3duICAgICAgICAgICAgICAgICAgICAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyA5NSkKKyNkZWZpbmUgX19OUl9jYWNoZWZsdXNoICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE0NykKKyNkZWZpbmUgX19OUl9mZGF0YXN5bmMgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1MikKKyNkZWZpbmUgX19OUl9tbG9jayAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1NCkKKyNkZWZpbmUgX19OUl9tdW5sb2NrICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1NSkKKyNkZWZpbmUgX19OUl9zY2hlZF9zZXRwYXJhbSAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1OCkKKyNkZWZpbmUgX19OUl9zY2hlZF9nZXRwYXJhbSAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE1OSkKKyNkZWZpbmUgX19OUl9zY2hlZF9zZXRzY2hlZHVsZXIgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2MCkKKyNkZWZpbmUgX19OUl9zY2hlZF9nZXRzY2hlZHVsZXIgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2MSkKKyNkZWZpbmUgX19OUl9zY2hlZF95aWVsZCAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2MikKKyNkZWZpbmUgX19OUl9zY2hlZF9nZXRfcHJpb3JpdHlfbWF4ICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2MykKKyNkZWZpbmUgX19OUl9zY2hlZF9nZXRfcHJpb3JpdHlfbWluICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2NCkKKyNkZWZpbmUgX19OUl9zY2hlZF9ycl9nZXRfaW50ZXJ2YWwgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2NSkKKyNkZWZpbmUgX19OUl9uYW5vc2xlZXAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2NikKKyNkZWZpbmUgX19OUl9tcmVtYXAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2NykKKyNkZWZpbmUgX19OUl9hY2NlcHQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2OCkKKyNkZWZpbmUgX19OUl9iaW5kICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE2OSkKKyNkZWZpbmUgX19OUl9jb25uZWN0ICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3MCkKKyNkZWZpbmUgX19OUl9nZXRwZWVybmFtZSAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3MSkKKyNkZWZpbmUgX19OUl9nZXRzb2NrbmFtZSAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3MikKKyNkZWZpbmUgX19OUl9nZXRzb2Nrb3B0ICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3MykKKyNkZWZpbmUgX19OUl9saXN0ZW4gICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3NCkKKyNkZWZpbmUgX19OUl9yZWN2ZnJvbSAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3NikKKyNkZWZpbmUgX19OUl9yZWN2bXNnICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3NykKKyNkZWZpbmUgX19OUl9zZW5kbXNnICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE3OSkKKyNkZWZpbmUgX19OUl9zZW5kdG8gICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4MCkKKyNkZWZpbmUgX19OUl9zZXRzb2Nrb3B0ICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4MSkKKyNkZWZpbmUgX19OUl9zaHV0ZG93biAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4MikKKyNkZWZpbmUgX19OUl9zb2NrZXQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4MykKKyNkZWZpbmUgX19OUl9zb2NrZXRwYWlyICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4NCkKKyNkZWZpbmUgX19OUl9zZXRyZXN1aWQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4NSkKKyNkZWZpbmUgX19OUl9nZXRyZXN1aWQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4NikKKyNkZWZpbmUgX19OUl9wb2xsICAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE4OCkKKyNkZWZpbmUgX19OUl9zZXRyZXNnaWQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5MCkKKyNkZWZpbmUgX19OUl9nZXRyZXNnaWQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5MSkKKyNkZWZpbmUgX19OUl9wcmN0bCAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5MikKKyNkZWZpbmUgX19OUl9ydF9zaWdhY3Rpb24gICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5NCkKKyNkZWZpbmUgX19OUl9ydF9zaWdwcm9jbWFzayAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5NSkKKyNkZWZpbmUgX19OUl9ydF9zaWd0aW1lZHdhaXQgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDE5NykKKyNkZWZpbmUgX19OUl9wcmVhZDY0ICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwMCkKKyNkZWZpbmUgX19OUl9wd3JpdGU2NCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwMSkKKyNkZWZpbmUgX19OUl9jaG93biAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwMikKKyNkZWZpbmUgX19OUl9nZXRjd2QgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwMykKKyNkZWZpbmUgX19OUl9jYXBnZXQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwNCkKKyNkZWZpbmUgX19OUl9jYXBzZXQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwNSkKKyNkZWZpbmUgX19OUl9zaWdhbHRzdGFjayAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwNikKKyNkZWZpbmUgX19OUl9zZW5kZmlsZSAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIwNykKKyNkZWZpbmUgX19OUl9tbWFwMiAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxMCkKKyNkZWZpbmUgX19OUl9mdHJ1bmNhdGU2NCAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxMikKKyNkZWZpbmUgX19OUl9zdGF0NjQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxMykKKyNkZWZpbmUgX19OUl9sc3RhdDY0ICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxNCkKKyNkZWZpbmUgX19OUl9mc3RhdDY0ICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxNSkKKyNkZWZpbmUgX19OUl9taW5jb3JlICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxNykKKyNkZWZpbmUgX19OUl9tYWR2aXNlICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxOCkKKyNkZWZpbmUgX19OUl9nZXRkZW50czY0ICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIxOSkKKyNkZWZpbmUgX19OUl9mY250bDY0ICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyMCkKKyNkZWZpbmUgX19OUl9nZXR0aWQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyMikKKyNkZWZpbmUgX19OUl9yZWFkYWhlYWQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyMykKKyNkZWZpbmUgX19OUl9zZXR4YXR0ciAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyNCkKKyNkZWZpbmUgX19OUl9sc2V0eGF0dHIgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyNSkKKyNkZWZpbmUgX19OUl9mc2V0eGF0dHIgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyNikKKyNkZWZpbmUgX19OUl9nZXR4YXR0ciAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyNykKKyNkZWZpbmUgX19OUl9sZ2V0eGF0dHIgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyOCkKKyNkZWZpbmUgX19OUl9mZ2V0eGF0dHIgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIyOSkKKyNkZWZpbmUgX19OUl9saXN0eGF0dHIgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzMCkKKyNkZWZpbmUgX19OUl9sbGlzdHhhdHRyICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzMSkKKyNkZWZpbmUgX19OUl9mbGlzdHhhdHRyICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzMikKKyNkZWZpbmUgX19OUl9yZW1vdmV4YXR0ciAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzMykKKyNkZWZpbmUgX19OUl9scmVtb3ZleGF0dHIgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzNCkKKyNkZWZpbmUgX19OUl9mcmVtb3ZleGF0dHIgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzNSkKKyNkZWZpbmUgX19OUl90a2lsbCAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzNikKKyNkZWZpbmUgX19OUl9mdXRleCAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzOCkKKyNkZWZpbmUgX19OUl9zY2hlZF9zZXRhZmZpbml0eSAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDIzOSkKKyNkZWZpbmUgX19OUl9zY2hlZF9nZXRhZmZpbml0eSAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI0MCkKKyNkZWZpbmUgX19OUl9leGl0X2dyb3VwICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI0NikKKyNkZWZpbmUgX19OUl9lcG9sbF9jcmVhdGUgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI0OCkKKyNkZWZpbmUgX19OUl9lcG9sbF9jdGwgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI0OSkKKyNkZWZpbmUgX19OUl9lcG9sbF93YWl0ICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI1MCkKKyNkZWZpbmUgX19OUl9zdGF0ZnM2NCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI1NSkKKyNkZWZpbmUgX19OUl9mc3RhdGZzNjQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI1NikKKyNkZWZpbmUgX19OUl90aW1lcl9jcmVhdGUgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI1NykKKyNkZWZpbmUgX19OUl90aW1lcl9zZXR0aW1lICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI1OCkKKyNkZWZpbmUgX19OUl90aW1lcl9nZXR0aW1lICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI1OSkKKyNkZWZpbmUgX19OUl90aW1lcl9nZXRvdmVycnVuICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2MCkKKyNkZWZpbmUgX19OUl90aW1lcl9kZWxldGUgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2MSkKKyNkZWZpbmUgX19OUl9jbG9ja19zZXR0aW1lICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2MikKKyNkZWZpbmUgX19OUl9jbG9ja19nZXR0aW1lICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2MykKKyNkZWZpbmUgX19OUl9jbG9ja19nZXRyZXMgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2NCkKKyNkZWZpbmUgX19OUl9jbG9ja19uYW5vc2xlZXAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2NSkKKyNkZWZpbmUgX19OUl90Z2tpbGwgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2NikKKyNkZWZpbmUgX19OUl91dGltZXMgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI2NykKKyNkZWZpbmUgX19OUl93YWl0aWQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI3OCkKKyNkZWZpbmUgX19OUl9zZXRfdGhyZWFkX2FyZWEgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI4MykKKyNkZWZpbmUgX19OUl9pbm90aWZ5X2luaXQgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI4NCkKKyNkZWZpbmUgX19OUl9pbm90aWZ5X2FkZF93YXRjaCAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI4NSkKKyNkZWZpbmUgX19OUl9pbm90aWZ5X3JtX3dhdGNoICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI4NikKKyNkZWZpbmUgX19OUl9vcGVuYXQgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI4OCkKKyNkZWZpbmUgX19OUl9ta2RpcmF0ICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI4OSkKKyNkZWZpbmUgX19OUl9mY2hvd25hdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI5MSkKKyNkZWZpbmUgX19OUl9mc3RhdGF0NjQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI5MykKKyNkZWZpbmUgX19OUl91bmxpbmthdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI5NCkKKyNkZWZpbmUgX19OUl9yZW5hbWVhdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI5NSkKKyNkZWZpbmUgX19OUl9mY2htb2RhdCAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDI5OSkKKyNkZWZpbmUgX19OUl9mYWNjZXNzYXQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMwMCkKKyNkZWZpbmUgX19OUl9nZXRjcHUgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMxMikKKyNkZWZpbmUgX19OUl9pb3ByaW9fc2V0ICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMxNCkKKyNkZWZpbmUgX19OUl9pb3ByaW9fZ2V0ICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMxNSkKKyNkZWZpbmUgX19OUl91dGltZW5zYXQgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMxNikKKyNkZWZpbmUgX19OUl9ldmVudGZkMiAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMyNSkKKyNkZWZpbmUgX19OUl9waXBlMiAgICAgICAgICAgICAgICAgICAgICAgIChfX05SX1NZU0NBTExfQkFTRSArIDMyOCkKICNlbmRpZgogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYmMva2VybmVsL2FyY2gtYXJtL2FzbS91Y29udGV4dC5oIGIvbGliYy9rZXJuZWwvYXJjaC1hcm0vYXNtL3Vjb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjlhODc5ZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMva2VybmVsL2FyY2gtYXJtL2FzbS91Y29udGV4dC5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKgorICoqKiAgIFRoaXMgaGVhZGVyIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIGEgTGludXgga2VybmVsIGhlYWRlcgorICoqKiAgIG9mIHRoZSBzYW1lIG5hbWUsIHRvIG1ha2UgaW5mb3JtYXRpb24gbmVjZXNzYXJ5IGZvciB1c2Vyc3BhY2UgdG8KKyAqKiogICBjYWxsIGludG8gdGhlIGtlcm5lbCBhdmFpbGFibGUgdG8gbGliYy4gIEl0IGNvbnRhaW5zIG9ubHkgY29uc3RhbnRzLAorICoqKiAgIHN0cnVjdHVyZXMsIGFuZCBtYWNyb3MgZ2VuZXJhdGVkIGZyb20gdGhlIG9yaWdpbmFsIGhlYWRlciwgYW5kIHRodXMsCisgKioqICAgY29udGFpbnMgbm8gY29weXJpZ2h0YWJsZSBpbmZvcm1hdGlvbi4KKyAqKioKKyAqKiogICBUbyBlZGl0IHRoZSBjb250ZW50IG9mIHRoaXMgaGVhZGVyLCBtb2RpZnkgdGhlIGNvcnJlc3BvbmRpbmcKKyAqKiogICBzb3VyY2UgZmlsZSAoZS5nLiB1bmRlciBleHRlcm5hbC9rZXJuZWwtaGVhZGVycy9vcmlnaW5hbC8pIHRoZW4KKyAqKiogICBydW4gYmlvbmljL2xpYmMva2VybmVsL3Rvb2xzL3VwZGF0ZV9hbGwucHkKKyAqKioKKyAqKiogICBBbnkgbWFudWFsIGNoYW5nZSBoZXJlIHdpbGwgYmUgbG9zdCB0aGUgbmV4dCB0aW1lIHRoaXMgc2NyaXB0IHdpbGwKKyAqKiogICBiZSBydW4uIFlvdSd2ZSBiZWVuIHdhcm5lZCEKKyAqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZm5kZWYgX0FTTUFSTV9VQ09OVEVYVF9ICisjZGVmaW5lIF9BU01BUk1fVUNPTlRFWFRfSAorI2luY2x1ZGUgPGFzbS9mcHN0YXRlLmg+CitzdHJ1Y3QgdWNvbnRleHQgeworLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyB1bnNpZ25lZCBsb25nIHVjX2ZsYWdzOworIHN0cnVjdCB1Y29udGV4dCAqdWNfbGluazsKKyBzdGFja190IHVjX3N0YWNrOworIHN0cnVjdCBzaWdjb250ZXh0IHVjX21jb250ZXh0OworLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyBzaWdzZXRfdCB1Y19zaWdtYXNrOworIGludCBfdW51c2VkWzMyIC0gKHNpemVvZiAoc2lnc2V0X3QpIC8gc2l6ZW9mIChpbnQpKV07CisgdW5zaWduZWQgbG9uZyB1Y19yZWdzcGFjZVsxMjhdIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKDgpKSk7Cit9OworLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvbGliYy9rZXJuZWwvYXJjaC1taXBzL2FzbS9zaWduYWwuaCBiL2xpYmMva2VybmVsL2FyY2gtbWlwcy9hc20vc2lnbmFsLmgKaW5kZXggYjUxYWQ3MS4uNWY1YWM3NyAxMDA2NDQKLS0tIGEvbGliYy9rZXJuZWwvYXJjaC1taXBzL2FzbS9zaWduYWwuaAorKysgYi9saWJjL2tlcm5lbC9hcmNoLW1pcHMvYXNtL3NpZ25hbC5oCkBAIC05MiwzMiArOTIsMzMgQEAKICNkZWZpbmUgTUlOU0lHU1RLU1ogMjA0OAogLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KICNkZWZpbmUgU0lHU1RLU1ogODE5Mgorc3RydWN0IHNpZ2luZm87CiAjZGVmaW5lIFNJR19CTE9DSyAxICAKICNkZWZpbmUgU0lHX1VOQkxPQ0sgMiAgCi0jZGVmaW5lIFNJR19TRVRNQVNLIDMgIAogLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyNkZWZpbmUgU0lHX1NFVE1BU0sgMyAgCiAjaW5jbHVkZSA8YXNtLWdlbmVyaWMvc2lnbmFsLmg+CiBzdHJ1Y3Qgc2lnYWN0aW9uIHsKICB1bnNpZ25lZCBpbnQgc2FfZmxhZ3M7Ci0gdW5pb24gewogLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyB1bmlvbiB7CiAgX19zaWdoYW5kbGVyX3Qgc2FfaGFuZGxlcjsKICB2b2lkICgqc2Ffc2lnYWN0aW9uKSAoaW50LCBzdHJ1Y3Qgc2lnaW5mbyAqLCB2b2lkICopOwogIH0gX19zaWdhY3Rpb25faGFuZGxlcjsKLSNkZWZpbmUgc2FfaGFuZGxlciBfX3NpZ2FjdGlvbl9oYW5kbGVyLnNhX2hhbmRsZXIKIC8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZGVmaW5lIHNhX2hhbmRsZXIgX19zaWdhY3Rpb25faGFuZGxlci5zYV9oYW5kbGVyCiAjZGVmaW5lIHNhX3NpZ2FjdGlvbiBfX3NpZ2FjdGlvbl9oYW5kbGVyLnNhX3NpZ2FjdGlvbgogIHNpZ3NldF90IHNhX21hc2s7CiB9Owotc3RydWN0IGtfc2lnYWN0aW9uIHsKIC8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCitzdHJ1Y3Qga19zaWdhY3Rpb24gewogIHN0cnVjdCBzaWdhY3Rpb24gc2E7CiB9OwogdHlwZWRlZiBzdHJ1Y3Qgc2lnYWx0c3RhY2sgewotIHZvaWQgKnNzX3NwOwogLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyB2b2lkICpzc19zcDsKICBzaXplX3Qgc3Nfc2l6ZTsKICBpbnQgc3NfZmxhZ3M7CiB9IHN0YWNrX3Q7Ci0jZW5kaWYKIC8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYmMva2VybmVsL2FyY2gtbWlwcy9hc20vdWNvbnRleHQuaCBiL2xpYmMva2VybmVsL2FyY2gtbWlwcy9hc20vdWNvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTRkNjdkCi0tLSAvZGV2L251bGwKKysrIGIvbGliYy9rZXJuZWwvYXJjaC1taXBzL2FzbS91Y29udGV4dC5oCkBAIC0wLDAgKzEsMTkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKgorICoqKiAgIFRoaXMgaGVhZGVyIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIGEgTGludXgga2VybmVsIGhlYWRlcgorICoqKiAgIG9mIHRoZSBzYW1lIG5hbWUsIHRvIG1ha2UgaW5mb3JtYXRpb24gbmVjZXNzYXJ5IGZvciB1c2Vyc3BhY2UgdG8KKyAqKiogICBjYWxsIGludG8gdGhlIGtlcm5lbCBhdmFpbGFibGUgdG8gbGliYy4gIEl0IGNvbnRhaW5zIG9ubHkgY29uc3RhbnRzLAorICoqKiAgIHN0cnVjdHVyZXMsIGFuZCBtYWNyb3MgZ2VuZXJhdGVkIGZyb20gdGhlIG9yaWdpbmFsIGhlYWRlciwgYW5kIHRodXMsCisgKioqICAgY29udGFpbnMgbm8gY29weXJpZ2h0YWJsZSBpbmZvcm1hdGlvbi4KKyAqKioKKyAqKiogICBUbyBlZGl0IHRoZSBjb250ZW50IG9mIHRoaXMgaGVhZGVyLCBtb2RpZnkgdGhlIGNvcnJlc3BvbmRpbmcKKyAqKiogICBzb3VyY2UgZmlsZSAoZS5nLiB1bmRlciBleHRlcm5hbC9rZXJuZWwtaGVhZGVycy9vcmlnaW5hbC8pIHRoZW4KKyAqKiogICBydW4gYmlvbmljL2xpYmMva2VybmVsL3Rvb2xzL3VwZGF0ZV9hbGwucHkKKyAqKioKKyAqKiogICBBbnkgbWFudWFsIGNoYW5nZSBoZXJlIHdpbGwgYmUgbG9zdCB0aGUgbmV4dCB0aW1lIHRoaXMgc2NyaXB0IHdpbGwKKyAqKiogICBiZSBydW4uIFlvdSd2ZSBiZWVuIHdhcm5lZCEKKyAqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy91Y29udGV4dC5oPgpkaWZmIC0tZ2l0IGEvbGliYy9rZXJuZWwvYXJjaC14ODYvYXNtL3Vjb250ZXh0LmggYi9saWJjL2tlcm5lbC9hcmNoLXg4Ni9hc20vdWNvbnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjMyNmU1Ci0tLSAvZGV2L251bGwKKysrIGIvbGliYy9rZXJuZWwvYXJjaC14ODYvYXNtL3Vjb250ZXh0LmgKQEAgLTAsMCArMSwyNCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqCisgKioqICAgVGhpcyBoZWFkZXIgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gYSBMaW51eCBrZXJuZWwgaGVhZGVyCisgKioqICAgb2YgdGhlIHNhbWUgbmFtZSwgdG8gbWFrZSBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgZm9yIHVzZXJzcGFjZSB0bworICoqKiAgIGNhbGwgaW50byB0aGUga2VybmVsIGF2YWlsYWJsZSB0byBsaWJjLiAgSXQgY29udGFpbnMgb25seSBjb25zdGFudHMsCisgKioqICAgc3RydWN0dXJlcywgYW5kIG1hY3JvcyBnZW5lcmF0ZWQgZnJvbSB0aGUgb3JpZ2luYWwgaGVhZGVyLCBhbmQgdGh1cywKKyAqKiogICBjb250YWlucyBubyBjb3B5cmlnaHRhYmxlIGluZm9ybWF0aW9uLgorICoqKgorICoqKiAgIFRvIGVkaXQgdGhlIGNvbnRlbnQgb2YgdGhpcyBoZWFkZXIsIG1vZGlmeSB0aGUgY29ycmVzcG9uZGluZworICoqKiAgIHNvdXJjZSBmaWxlIChlLmcuIHVuZGVyIGV4dGVybmFsL2tlcm5lbC1oZWFkZXJzL29yaWdpbmFsLykgdGhlbgorICoqKiAgIHJ1biBiaW9uaWMvbGliYy9rZXJuZWwvdG9vbHMvdXBkYXRlX2FsbC5weQorICoqKgorICoqKiAgIEFueSBtYW51YWwgY2hhbmdlIGhlcmUgd2lsbCBiZSBsb3N0IHRoZSBuZXh0IHRpbWUgdGhpcyBzY3JpcHQgd2lsbAorICoqKiAgIGJlIHJ1bi4gWW91J3ZlIGJlZW4gd2FybmVkIQorICoqKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2lmbmRlZiBfQVNNX1g4Nl9VQ09OVEVYVF9ICisjZGVmaW5lIF9BU01fWDg2X1VDT05URVhUX0gKKyNkZWZpbmUgVUNfRlBfWFNUQVRFIDB4MSAgCisjaW5jbHVkZSA8YXNtLWdlbmVyaWMvdWNvbnRleHQuaD4KKy8qIFdBUk5JTkc6IERPIE5PVCBFRElULCBBVVRPLUdFTkVSQVRFRCBDT0RFIC0gU0VFIFRPUCBGT1IgSU5TVFJVQ1RJT05TICovCisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYmMva2VybmVsL2NvbW1vbi9hc20tZ2VuZXJpYy91Y29udGV4dC5oIGIvbGliYy9rZXJuZWwvY29tbW9uL2FzbS1nZW5lcmljL3Vjb250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI2ZDFjYwotLS0gL2Rldi9udWxsCisrKyBiL2xpYmMva2VybmVsL2NvbW1vbi9hc20tZ2VuZXJpYy91Y29udGV4dC5oCkBAIC0wLDAgKzEsMzAgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoqKgorICoqKiAgIFRoaXMgaGVhZGVyIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIGEgTGludXgga2VybmVsIGhlYWRlcgorICoqKiAgIG9mIHRoZSBzYW1lIG5hbWUsIHRvIG1ha2UgaW5mb3JtYXRpb24gbmVjZXNzYXJ5IGZvciB1c2Vyc3BhY2UgdG8KKyAqKiogICBjYWxsIGludG8gdGhlIGtlcm5lbCBhdmFpbGFibGUgdG8gbGliYy4gIEl0IGNvbnRhaW5zIG9ubHkgY29uc3RhbnRzLAorICoqKiAgIHN0cnVjdHVyZXMsIGFuZCBtYWNyb3MgZ2VuZXJhdGVkIGZyb20gdGhlIG9yaWdpbmFsIGhlYWRlciwgYW5kIHRodXMsCisgKioqICAgY29udGFpbnMgbm8gY29weXJpZ2h0YWJsZSBpbmZvcm1hdGlvbi4KKyAqKioKKyAqKiogICBUbyBlZGl0IHRoZSBjb250ZW50IG9mIHRoaXMgaGVhZGVyLCBtb2RpZnkgdGhlIGNvcnJlc3BvbmRpbmcKKyAqKiogICBzb3VyY2UgZmlsZSAoZS5nLiB1bmRlciBleHRlcm5hbC9rZXJuZWwtaGVhZGVycy9vcmlnaW5hbC8pIHRoZW4KKyAqKiogICBydW4gYmlvbmljL2xpYmMva2VybmVsL3Rvb2xzL3VwZGF0ZV9hbGwucHkKKyAqKioKKyAqKiogICBBbnkgbWFudWFsIGNoYW5nZSBoZXJlIHdpbGwgYmUgbG9zdCB0aGUgbmV4dCB0aW1lIHRoaXMgc2NyaXB0IHdpbGwKKyAqKiogICBiZSBydW4uIFlvdSd2ZSBiZWVuIHdhcm5lZCEKKyAqKioKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNpZm5kZWYgX19BU01fR0VORVJJQ19VQ09OVEVYVF9ICisjZGVmaW5lIF9fQVNNX0dFTkVSSUNfVUNPTlRFWFRfSAorc3RydWN0IHVjb250ZXh0IHsKKyB1bnNpZ25lZCBsb25nIHVjX2ZsYWdzOworLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KKyBzdHJ1Y3QgdWNvbnRleHQgKnVjX2xpbms7Cisgc3RhY2tfdCB1Y19zdGFjazsKKyBzdHJ1Y3Qgc2lnY29udGV4dCB1Y19tY29udGV4dDsKKyBzaWdzZXRfdCB1Y19zaWdtYXNrOworLyogV0FSTklORzogRE8gTk9UIEVESVQsIEFVVE8tR0VORVJBVEVEIENPREUgLSBTRUUgVE9QIEZPUiBJTlNUUlVDVElPTlMgKi8KK307CisjZW5kaWYKZGlmZiAtLWdpdCBhL2xpYmMvbmV0YnNkL3Jlc29sdi9yZXNfY2FjaGUuYyBiL2xpYmMvbmV0YnNkL3Jlc29sdi9yZXNfY2FjaGUuYwppbmRleCA5YWU2MjdjLi4wYmIyZjIzIDEwMDY0NAotLS0gYS9saWJjL25ldGJzZC9yZXNvbHYvcmVzX2NhY2hlLmMKKysrIGIvbGliYy9uZXRic2QvcmVzb2x2L3Jlc19jYWNoZS5jCkBAIC0xNDMzLDYgKzE0MzMsMjcgQEAKICAgICBfY2FjaGVfcmVtb3ZlX3AoY2FjaGUsIGxvb2t1cCk7CiB9CiAKKy8qIFJlbW92ZSBhbGwgZXhwaXJlZCBlbnRyaWVzIGZyb20gdGhlIGhhc2ggdGFibGUuCisgKi8KK3N0YXRpYyB2b2lkIF9jYWNoZV9yZW1vdmVfZXhwaXJlZChDYWNoZSogY2FjaGUpIHsKKyAgICBFbnRyeSogZTsKKyAgICB0aW1lX3Qgbm93ID0gX3RpbWVfbm93KCk7CisKKyAgICBmb3IgKGUgPSBjYWNoZS0+bXJ1X2xpc3QubXJ1X25leHQ7IGUgIT0gJmNhY2hlLT5tcnVfbGlzdDspIHsKKyAgICAgICAgLy8gRW50cnkgaXMgb2xkLCByZW1vdmUKKyAgICAgICAgaWYgKG5vdyA+PSBlLT5leHBpcmVzKSB7CisgICAgICAgICAgICBFbnRyeSoqIGxvb2t1cCA9IF9jYWNoZV9sb29rdXBfcChjYWNoZSwgZSk7CisgICAgICAgICAgICBpZiAoKmxvb2t1cCA9PSBOVUxMKSB7IC8qIHNob3VsZCBub3QgaGFwcGVuICovCisgICAgICAgICAgICAgICAgWExPRygiJXM6IEVOVFJZIE5PVCBJTiBIVEFCTEUgPyIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZSA9IGUtPm1ydV9uZXh0OworICAgICAgICAgICAgX2NhY2hlX3JlbW92ZV9wKGNhY2hlLCBsb29rdXApOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZSA9IGUtPm1ydV9uZXh0OworICAgICAgICB9CisgICAgfQorfQogCiBSZXNvbHZDYWNoZVN0YXR1cwogX3Jlc29sdl9jYWNoZV9sb29rdXAoIHN0cnVjdCByZXNvbHZfY2FjaGUqICBjYWNoZSwKQEAgLTE1NDcsNyArMTU2OCwxMCBAQAogICAgIH0KIAogICAgIGlmIChjYWNoZS0+bnVtX2VudHJpZXMgPj0gY2FjaGUtPm1heF9lbnRyaWVzKSB7Ci0gICAgICAgIF9jYWNoZV9yZW1vdmVfb2xkZXN0KGNhY2hlKTsKKyAgICAgICAgX2NhY2hlX3JlbW92ZV9leHBpcmVkKGNhY2hlKTsKKyAgICAgICAgaWYgKGNhY2hlLT5udW1fZW50cmllcyA+PSBjYWNoZS0+bWF4X2VudHJpZXMpIHsKKyAgICAgICAgICAgIF9jYWNoZV9yZW1vdmVfb2xkZXN0KGNhY2hlKTsKKyAgICAgICAgfQogICAgICAgICAvKiBuZWVkIHRvIGxvb2t1cCBhZ2FpbiAqLwogICAgICAgICBsb29rdXAgPSBfY2FjaGVfbG9va3VwX3AoY2FjaGUsIGtleSk7CiAgICAgICAgIGUgICAgICA9ICpsb29rdXA7CmRpZmYgLS1naXQgYS9saWJjL3Rvb2xzL2Jpb25pY191dGlscy5weSBiL2xpYmMvdG9vbHMvYmlvbmljX3V0aWxzLnB5CmluZGV4IDBiYzk0N2IuLmFiYjc4MjAgMTAwNjQ0Ci0tLSBhL2xpYmMvdG9vbHMvYmlvbmljX3V0aWxzLnB5CisrKyBiL2xpYmMvdG9vbHMvYmlvbmljX3V0aWxzLnB5CkBAIC00LDEzICs0LDEzIEBACiAKICMgc3VwcG9ydCBCaW9uaWMgYXJjaGl0ZWN0dXJlcywgYWRkIG5ldyBvbmVzIGFzIGFwcHJvcHJpYXRlCiAjCi1iaW9uaWNfYXJjaHMgPSBbICJhcm0iLCAieDg2IiBdCitiaW9uaWNfYXJjaHMgPSBbICJhcm0iLCAieDg2IiwgIm1pcHMiIF0KIAogIyBiYXNpYyBkZWJ1Z2dpbmcgdHJhY2Ugc3VwcG9ydAogIyBjYWxsIERfc2V0bGV2ZWwgdG8gc2V0IHRoZSB2ZXJib3NpdHkgbGV2ZWwKICMgYW5kIEQoKSwgRDIoKSwgRDMoKSwgRDQoKSB0byBhZGQgdHJhY2VzCiAjCi12ZXJib3NlID0gMQordmVyYm9zZSA9IDAKIAogZGVmIEQobXNnKToKICAgICBnbG9iYWwgdmVyYm9zZQpAQCAtMTc4LDcgKzE3OCw3IEBACiAgICAgICAgIHNlbGYuc3lzY2FsbHMgPSBbXQogICAgICAgICBzZWxmLmxpbmVubyAgID0gMAogCi0gICAgZGVmIEUobXNnKToKKyAgICBkZWYgRShzZWxmLCBtc2cpOgogICAgICAgICBwcmludCAiJWQ6ICVzIiAlIChzZWxmLmxpbmVubywgbXNnKQogCiAgICAgZGVmIHBhcnNlX2xpbmUoc2VsZiwgbGluZSk6CkBAIC0yMzgsMzYgKzIzOCw1NSBAQAogCiAgICAgICAgIG51bWJlciA9IGxpbmVbcG9zX3JwYXJlbisxOl0uc3RyaXAoKQogICAgICAgICBpZiBudW1iZXIgPT0gInN0dWIiOgotICAgICAgICAgICAgc3lzY2FsbF9pZCAgPSAtMQotICAgICAgICAgICAgc3lzY2FsbF9pZDIgPSAtMQorICAgICAgICAgICAgc3lzY2FsbF9jb21tb24gPSAtMQorICAgICAgICAgICAgc3lzY2FsbF9hcm0gID0gLTEKKyAgICAgICAgICAgIHN5c2NhbGxfeDg2ID0gLTEKKyAgICAgICAgICAgIHN5c2NhbGxfbWlwcyA9IC0xCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgaWYgbnVtYmVyWzBdID09ICcjJzoKICAgICAgICAgICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyWzE6XS5zdHJpcCgpCiAgICAgICAgICAgICAgICAgbnVtYmVycyA9IHN0cmluZy5zcGxpdChudW1iZXIsJywnKQotICAgICAgICAgICAgICAgIHN5c2NhbGxfaWQgID0gaW50KG51bWJlcnNbMF0pCi0gICAgICAgICAgICAgICAgc3lzY2FsbF9pZDIgPSBzeXNjYWxsX2lkCi0gICAgICAgICAgICAgICAgaWYgbGVuKG51bWJlcnMpID4gMToKLSAgICAgICAgICAgICAgICAgICAgc3lzY2FsbF9pZDIgPSBpbnQobnVtYmVyc1sxXSkKKyAgICAgICAgICAgICAgICBpZiBsZW4obnVtYmVycykgPT0gMToKKyAgICAgICAgICAgICAgICAgICAgc3lzY2FsbF9jb21tb24gPSBpbnQobnVtYmVyc1swXSkKKyAgICAgICAgICAgICAgICAgICAgc3lzY2FsbF9hcm0gPSAtMQorICAgICAgICAgICAgICAgICAgICBzeXNjYWxsX3g4NiA9IC0xCisgICAgICAgICAgICAgICAgICAgIHN5c2NhbGxfbWlwcyA9IC0xCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgaWYgbGVuKG51bWJlcnMpID09IDM6CisgICAgICAgICAgICAgICAgICAgICAgICBzeXNjYWxsX2NvbW1vbiA9IC0xCisgICAgICAgICAgICAgICAgICAgICAgICBzeXNjYWxsX2FybSAgPSBpbnQobnVtYmVyc1swXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5c2NhbGxfeDg2ID0gaW50KG51bWJlcnNbMV0pCisgICAgICAgICAgICAgICAgICAgICAgICBzeXNjYWxsX21pcHMgPSBpbnQobnVtYmVyc1syXSkKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIEUoImludmFsaWQgc3lzY2FsbCBudW1iZXIgZm9ybWF0IGluICclcyciICUgbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgZXhjZXB0OgogICAgICAgICAgICAgICAgIEUoImludmFsaWQgc3lzY2FsbCBudW1iZXIgaW4gJyVzJyIgJSBsaW5lKQogICAgICAgICAgICAgICAgIHJldHVybgogCi0JCWdsb2JhbCB2ZXJib3NlCisgICAgICAgIGdsb2JhbCB2ZXJib3NlCiAgICAgICAgIGlmIHZlcmJvc2UgPj0gMjoKLSAgICAgICAgICAgIGlmIGNhbGxfaWQgPCAwOgotICAgICAgICAgICAgICAgIHByaW50ICIlczogJWQsJWQiICUgKHN5c2NhbGxfbmFtZSwgc3lzY2FsbF9pZCwgc3lzY2FsbF9pZDIpCisgICAgICAgICAgICBpZiBjYWxsX2lkID09IC0xOgorICAgICAgICAgICAgICAgIGlmIHN5c2NhbGxfY29tbW9uID09IC0xOgorICAgICAgICAgICAgICAgICAgICBwcmludCAiJXM6ICVkLCVkLCVkIiAlIChzeXNjYWxsX25hbWUsIHN5c2NhbGxfYXJtLCBzeXNjYWxsX3g4Niwgc3lzY2FsbF9taXBzKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHByaW50ICIlczogJWQiICUgKHN5c2NhbGxfbmFtZSwgc3lzY2FsbF9jb21tb24pCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHByaW50ICIlcyglZCk6ICVkLCVkIiAlIChzeXNjYWxsX25hbWUsIGNhbGxfaWQsIHN5c2NhbGxfaWQsIHN5c2NhbGxfaWQyKQorICAgICAgICAgICAgICAgIGlmIHN5c2NhbGxfY29tbW9uID09IC0xOgorICAgICAgICAgICAgICAgICAgICBwcmludCAiJXMoJWQpOiAlZCwlZCwlZCIgJSAoc3lzY2FsbF9uYW1lLCBjYWxsX2lkLCBzeXNjYWxsX2FybSwgc3lzY2FsbF94ODYsIHN5c2NhbGxfbWlwcykKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBwcmludCAiJXMoJWQpOiAlZCIgJSAoc3lzY2FsbF9uYW1lLCBjYWxsX2lkLCBzeXNjYWxsX2NvbW1vbikKIAotICAgICAgICB0ID0geyAiaWQiICAgICA6IHN5c2NhbGxfaWQsCi0gICAgICAgICAgICAgICJpZDIiICAgIDogc3lzY2FsbF9pZDIsCisgICAgICAgIHQgPSB7ICJhcm1pZCIgIDogc3lzY2FsbF9hcm0sCisgICAgICAgICAgICAgICJ4ODZpZCIgIDogc3lzY2FsbF94ODYsCisgICAgICAgICAgICAgICJtaXBzaWQiIDogc3lzY2FsbF9taXBzLAorICAgICAgICAgICAgICAiY29tbW9uIiA6IHN5c2NhbGxfY29tbW9uLAogICAgICAgICAgICAgICAiY2lkIiAgICA6IGNhbGxfaWQsCiAgICAgICAgICAgICAgICJuYW1lIiAgIDogc3lzY2FsbF9uYW1lLAogICAgICAgICAgICAgICAiZnVuYyIgICA6IHN5c2NhbGxfZnVuYywKICAgICAgICAgICAgICAgInBhcmFtcyIgOiBzeXNjYWxsX3BhcmFtcywKICAgICAgICAgICAgICAgImRlY2wiICAgOiAiJS0xNXMgICVzICglcyk7IiAlIChyZXR1cm5fdHlwZSwgc3lzY2FsbF9mdW5jLCBwYXJhbXMpIH0KLQogICAgICAgICBzZWxmLnN5c2NhbGxzLmFwcGVuZCh0KQogCiAgICAgZGVmIHBhcnNlX2ZpbGUoc2VsZiwgZmlsZV9wYXRoKToKZGlmZiAtLWdpdCBhL2xpYmMvdG9vbHMvY2hlY2tzeXNjYWxscy5weSBiL2xpYmMvdG9vbHMvY2hlY2tzeXNjYWxscy5weQppbmRleCAyYzU2M2Q3Li4yODZlNzI3IDEwMDc1NQotLS0gYS9saWJjL3Rvb2xzL2NoZWNrc3lzY2FsbHMucHkKKysrIGIvbGliYy90b29scy9jaGVja3N5c2NhbGxzLnB5CkBAIC03MCwxMCArNzAsMTcgQEAKIHJlX25yX2Nsb2NrX2xpbmUgPSByZS5jb21waWxlKCByIiNkZWZpbmUgX19OUl8oXHcqKVxzKlwoX19OUl90aW1lcl9jcmVhdGVcKyhcdyopXCkiICkKIHJlX2FybV9ucl9saW5lICAgPSByZS5jb21waWxlKCByIiNkZWZpbmUgX19BUk1fTlJfKFx3KilccypcKF9fQVJNX05SX0JBU0VcK1xzKihcdyopXCkiICkKIHJlX3g4Nl9saW5lICAgICAgPSByZS5jb21waWxlKCByIiNkZWZpbmUgX19OUl8oXHcqKVxzKihbMC05XSopIiApCityZV9taXBzX2xpbmUgICAgID0gcmUuY29tcGlsZSggciIjZGVmaW5lIF9fTlJfKFx3KilccypcKF9fTlJfTGludXhccypcK1xzKihbMC05XSopXCkiICkKIAogIyBub3cgcmVhZCB0aGUgTGludXggYXJtIGhlYWRlcgogZGVmIHByb2Nlc3NfbnJfbGluZShsaW5lLGRpY3QpOgogCisgICAgbSA9IHJlX21pcHNfbGluZS5tYXRjaChsaW5lKQorICAgIGlmIG06CisgICAgICAgIGlmIGRpY3RbIkxpbnV4Il09PTQwMDA6CisgICAgICAgICAgICBkaWN0W20uZ3JvdXAoMSldID0gaW50KG0uZ3JvdXAoMikpCisgICAgICAgIHJldHVybgorCiAgICAgbSA9IHJlX25yX2xpbmUubWF0Y2gobGluZSkKICAgICBpZiBtOgogICAgICAgICBkaWN0W20uZ3JvdXAoMSldID0gaW50KG0uZ3JvdXAoMikpCkBAIC0xMTgsNiArMTI1LDcgQEAKIAogYXJtX2RpY3QgPSB7fQogeDg2X2RpY3QgPSB7fQorbWlwc19kaWN0ID0ge30KIAogIyByZW1vdmUgdHJhaWxpbmcgc2xhc2ggZnJvbSB0aGUgbGludXhfcm9vdCwgaWYgYW55CiBpZiBsaW51eF9yb290Wy0xXSA9PSAnLyc6CkBAIC0xNDEsOCArMTQ5LDE1IEBACiAgICAgICAgIHByaW50ICJtYXliZSB1c2luZyBhIGRpZmZlcmVudCBzZXQgb2Yga2VybmVsIGhlYWRlcnMgbWlnaHQgaGVscC4iCiAgICAgICAgIHN5cy5leGl0KDEpCiAKK21pcHNfdW5pc3RkID0gZmluZF9hcmNoX2hlYWRlcihsaW51eF9yb290LCAibWlwcyIsICJ1bmlzdGQuaCIpCitpZiBub3QgbWlwc191bmlzdGQ6CisgICAgcHJpbnQgIldFSVJEOiBDb3VsZCBub3QgbG9jYXRlIHRoZSBNaXBzIHVuaXN0ZC5oIGtlcm5lbCBoZWFkZXIgZmlsZSwiCisgICAgcHJpbnQgIm1heWJlIHVzaW5nIGEgZGlmZmVyZW50IHNldCBvZiBrZXJuZWwgaGVhZGVycyBtaWdodCBoZWxwLiIKKyAgICBzeXMuZXhpdCgxKQorCiBwcm9jZXNzX2hlYWRlciggYXJtX3VuaXN0ZCwgYXJtX2RpY3QgKQogcHJvY2Vzc19oZWFkZXIoIHg4Nl91bmlzdGQsIHg4Nl9kaWN0ICkKK3Byb2Nlc3NfaGVhZGVyKCBtaXBzX3VuaXN0ZCwgbWlwc19kaWN0ICkKIAogIyBub3cgcGVyZm9ybSB0aGUgY29tcGFyaXNvbgogZXJyb3JzID0gMApAQCAtMTU0LDE4ICsxNjksMTkgQEAKICAgICAgICAgc2NfaWQgICA9IHNjW2lkbmFtZV0KICAgICAgICAgaWYgc2NfaWQgPj0gMDoKICAgICAgICAgICAgIGlmIG5vdCBhcmNoX2RpY3QuaGFzX2tleShzY19uYW1lKToKLSAgICAgICAgICAgICAgICBwcmludCAiJXMgc3lzY2FsbCAlcyBub3QgZGVmaW5lZCwgc2hvdWxkIGJlICVkICEhIiAlIChhcmNobmFtZSwgc2NfbmFtZSwgc2NfaWQpCisgICAgICAgICAgICAgICAgcHJpbnQgImVycm9yOiAlcyBzeXNjYWxsICVzIG5vdCBkZWZpbmVkLCBzaG91bGQgYmUgJWQiICUgKGFyY2huYW1lLCBzY19uYW1lLCBzY19pZCkKICAgICAgICAgICAgICAgICBlcnJvcnMgKz0gMQogICAgICAgICAgICAgZWxpZiBub3QgYXJjaF9kaWN0Lmhhc19rZXkoc2NfbmFtZSk6Ci0gICAgICAgICAgICAgICAgcHJpbnQgIiVzIHN5c2NhbGwgJXMgaXMgbm90IGltcGxlbWVudGVkISIgJSAoYXJjaG5hbWUsIHNjX25hbWUpCisgICAgICAgICAgICAgICAgcHJpbnQgImVycm9yOiAlcyBzeXNjYWxsICVzIGlzIG5vdCBpbXBsZW1lbnRlZCIgJSAoYXJjaG5hbWUsIHNjX25hbWUpCiAgICAgICAgICAgICAgICAgZXJyb3JzICs9IDEKICAgICAgICAgICAgIGVsaWYgYXJjaF9kaWN0W3NjX25hbWVdICE9IHNjX2lkOgotICAgICAgICAgICAgICAgIHByaW50ICIlcyBzeXNjYWxsICVzIHNob3VsZCBiZSAlZCBpbnN0ZWFkIG9mICVkICEhIiAlIChhcmNobmFtZSwgc2NfbmFtZSwgYXJjaF9kaWN0W3NjX25hbWVdLCBzY19pZCkKKyAgICAgICAgICAgICAgICBwcmludCAiZXJyb3I6ICVzIHN5c2NhbGwgJXMgc2hvdWxkIGJlICVkIGluc3RlYWQgb2YgJWQiICUgKGFyY2huYW1lLCBzY19uYW1lLCBhcmNoX2RpY3Rbc2NfbmFtZV0sIHNjX2lkKQogICAgICAgICAgICAgICAgIGVycm9ycyArPSAxCiAgICAgcmV0dXJuIGVycm9ycwogCi1lcnJvcnMgKz0gY2hlY2tfc3lzY2FsbHMoImFybSIsICJpZCIsIGFybV9kaWN0KQotZXJyb3JzICs9IGNoZWNrX3N5c2NhbGxzKCJ4ODYiLCAiaWQyIiwgeDg2X2RpY3QpCitlcnJvcnMgKz0gY2hlY2tfc3lzY2FsbHMoImFybSIsICJhcm1pZCIsIGFybV9kaWN0KQorZXJyb3JzICs9IGNoZWNrX3N5c2NhbGxzKCJ4ODYiLCAieDg2aWQiLCB4ODZfZGljdCkKK2Vycm9ycyArPSBjaGVja19zeXNjYWxscygibWlwcyIsICJtaXBzaWQiLCBtaXBzX2RpY3QpCiAKIGlmIGVycm9ycyA9PSAwOgogICAgIHByaW50ICJjb25ncmF0dWxhdGlvbnMsIGV2ZXJ5dGhpbmcncyBmaW5lICEhIgpkaWZmIC0tZ2l0IGEvbGliYy90b29scy9nZW5zeXNjYWxscy5weSBiL2xpYmMvdG9vbHMvZ2Vuc3lzY2FsbHMucHkKaW5kZXggYmZhOWZjYy4uMjFkMmYxZCAxMDA3NTUKLS0tIGEvbGliYy90b29scy9nZW5zeXNjYWxscy5weQorKysgYi9saWJjL3Rvb2xzL2dlbnN5c2NhbGxzLnB5CkBAIC0xLDExICsxLDEyIEBACiAjIS91c3IvYmluL3B5dGhvbgogIwotIyB0aGlzIHRvb2wgaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgc3lzY2FsbCBhc3NtYmxlciB0ZW1wbGF0ZXMKLSMgdG8gYmUgcGxhY2VkIGludG8gYXJjaC14ODYvc3lzY2FsbHMsIGFzIHdlbGwgYXMgdGhlIGNvbnRlbnQKLSMgb2YgYXJjaC14ODYvbGludXgvX3N5c2NhbGxzLmgKKyMgdGhpcyB0b29sIGlzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHN5c2NhbGwgYXNzZW1ibGVyIHRlbXBsYXRlcworIyB0byBiZSBwbGFjZWQgaW50byBhcmNoLXthcm0seDg2LG1pcHN9L3N5c2NhbGxzLCBhcyB3ZWxsIGFzIHRoZSBjb250ZW50CisjIG9mIGFyY2gte2FybSx4ODYsbWlwc30vbGludXgvX3N5c2NhbGxzLmgKICMKIAogaW1wb3J0IHN5cywgb3MucGF0aCwgZ2xvYiwgcmUsIGNvbW1hbmRzLCBmaWxlY21wLCBzaHV0aWwKK2ltcG9ydCBnZXRwYXNzCiAKIGZyb20gYmlvbmljX3V0aWxzIGltcG9ydCAqCiAKQEAgLTMxLDkgKzMyLDEwIEBACiBiaW9uaWNfdGVtcCA9ICIvdG1wL2Jpb25pY19nZW5zeXNjYWxscy8iCiAKICMgYWxsIGFyY2hpdGVjdHVyZXMsIHVwZGF0ZSBhcyB5b3Ugc2VlIGZpdAotYWxsX2FyY2hzID0gWyAiYXJtIiwgIng4NiIgXQorYWxsX2FyY2hzID0gWyAiYXJtIiwgIng4NiIsICJtaXBzIiBdCiAKIGRlZiBtYWtlX2RpciggcGF0aCApOgorICAgIHBhdGggPSBvcy5wYXRoLmFic3BhdGgocGF0aCkKICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMocGF0aCk6CiAgICAgICAgIHBhcmVudCA9IG9zLnBhdGguZGlybmFtZShwYXRoKQogICAgICAgICBpZiBwYXJlbnQ6CkBAIC0xODMsNiArMTg1LDMyIEBACiAgICAgLmZuZW5kCiAiIiIKIAorIyBtaXBzIGFzc2VtYmxlciB0ZW1wbGF0ZXMgZm9yIGVhY2ggc3lzY2FsbCBzdHViCisjCittaXBzX2NhbGwgPSAiIiIvKiBhdXRvZ2VuZXJhdGVkIGJ5IGdlbnN5c2NhbGxzLnB5ICovCisjaW5jbHVkZSA8c3lzL2xpbnV4LXN5c2NhbGxzLmg+CisgICAgLnRleHQKKyAgICAuZ2xvYmwgJShmbmFtZSlzCisgICAgLmFsaWduIDQKKyAgICAuZW50ICUoZm5hbWUpcworCislKGZuYW1lKXM6CisgICAgLnNldCBub3Jlb3JkZXIKKyAgICAuY3Bsb2FkICR0OQorICAgIGxpICR2MCwgJShpZG5hbWUpcworICAgIHN5c2NhbGwKKyAgICBibmV6ICRhMywgMWYKKyAgICBtb3ZlICRhMCwgJHYwCisgICAgaiAkcmEKKyAgICBub3AKKzE6CisgICAgbGEgJHQ5LF9fc2V0X2Vycm5vCisgICAgaiAkdDkKKyAgICBub3AKKyAgICAuc2V0IHJlb3JkZXIKKyAgICAuZW5kICUoZm5hbWUpcworIiIiCisKIGRlZiBwYXJhbV91c2VzXzY0Yml0cyhwYXJhbSk6CiAgICAgIiIiUmV0dXJucyBUcnVlIGlmZiBhIHN5c2NhbGwgcGFyYW1ldGVyIGRlc2NyaXB0aW9uIGNvcnJlc3BvbmRzCiAgICAgICAgdG8gYSA2NC1iaXQgdHlwZS4iIiIKQEAgLTMzMSwyMyArMzU5LDEwIEBACiAgICAgICAgICAgICAgICAgcmV0dXJuIHRodW1iX2NhbGxfbG9uZyAlIHQKICAgICAgICAgcmV0dXJuIHRodW1iX2NhbGxfZGVmYXVsdCAlIHQKIAotCi0gICAgZGVmIHN1cGVyaF9nZW5zdHViKHNlbGYsIGZuYW1lLCBmbGFncywgaWRuYW1lKToKLSAgICAgICAgbnVtYXJncyA9IGludChmbGFncykKKyAgICBkZWYgbWlwc19nZW5zdHViKHNlbGYsZm5hbWUsIGlkbmFtZSk6CiAgICAgICAgIHQgPSB7ICJmbmFtZSIgIDogZm5hbWUsCi0gICAgICAgICAgICAgICJpZG5hbWUiIDogaWRuYW1lLAotICAgICAgICAgICAgICAibnVtYXJncyIgOiBudW1hcmdzIH0KLSAgICAgICAgc3VwZXJoX2NhbGwgPSBzdXBlcmhfaGVhZGVyCi0gICAgICAgIGlmIGZsYWdzOgotICAgICAgICAgICAgaWYgbnVtYXJncyA9PSA1OgotICAgICAgICAgICAgICAgIHN1cGVyaF9jYWxsICs9IHN1cGVyaF81YXJnc19oZWFkZXIKLSAgICAgICAgICAgIGlmIG51bWFyZ3MgPT0gNjoKLSAgICAgICAgICAgICAgICBzdXBlcmhfY2FsbCArPSBzdXBlcmhfNmFyZ3NfaGVhZGVyCi0gICAgICAgICAgICBpZiBudW1hcmdzID09IDc6Ci0gICAgICAgICAgICAgICAgc3VwZXJoX2NhbGwgKz0gc3VwZXJoXzdhcmdzX2hlYWRlcgotICAgICAgICBzdXBlcmhfY2FsbCArPSBzdXBlcmhfY2FsbF9kZWZhdWx0Ci0gICAgICAgIHJldHVybiBzdXBlcmhfY2FsbCAlIHQKLQorICAgICAgICAgICAgICAiaWRuYW1lIiA6IGlkbmFtZSB9CisgICAgICAgIHJldHVybiBtaXBzX2NhbGwgJSB0CiAKICAgICBkZWYgcHJvY2Vzc19maWxlKHNlbGYsaW5wdXQpOgogICAgICAgICBwYXJzZXIgPSBTeXNDYWxsc1R4dFBhcnNlcigpCkBAIC0zNjAsNyArMzc1LDcgQEAKICAgICAgICAgICAgIHN5c2NhbGxfcGFyYW1zID0gdFsicGFyYW1zIl0KICAgICAgICAgICAgIHN5c2NhbGxfbmFtZSAgID0gdFsibmFtZSJdCiAKLSAgICAgICAgICAgIGlmIHRbImlkIl0gPj0gMDoKKyAgICAgICAgICAgIGlmIHRbImNvbW1vbiJdID49IDAgb3IgdFsiYXJtaWQiXSA+PSAwOgogICAgICAgICAgICAgICAgIG51bV9yZWdzID0gY291bnRfYXJtX3BhcmFtX3JlZ2lzdGVycyhzeXNjYWxsX3BhcmFtcykKICAgICAgICAgICAgICAgICBpZiBnZW5fdGh1bWJfc3R1YnM6CiAgICAgICAgICAgICAgICAgICAgIHRbImFzbS10aHVtYiJdID0gc2VsZi50aHVtYl9nZW5zdHViKHN5c2NhbGxfZnVuYyxudW1fcmVncywiX19OUl8iK3N5c2NhbGxfbmFtZSkKQEAgLTM3MCw3ICszODUsNyBAQAogICAgICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAgdFsiYXNtLWFybSJdICAgPSBzZWxmLmFybV9nZW5zdHViKHN5c2NhbGxfZnVuYyxudW1fcmVncywiX19OUl8iK3N5c2NhbGxfbmFtZSkKIAotICAgICAgICAgICAgaWYgdFsiaWQyIl0gPj0gMDoKKyAgICAgICAgICAgIGlmIHRbImNvbW1vbiJdID49IDAgb3IgdFsieDg2aWQiXSA+PSAwOgogICAgICAgICAgICAgICAgIG51bV9yZWdzID0gY291bnRfZ2VuZXJpY19wYXJhbV9yZWdpc3RlcnMoc3lzY2FsbF9wYXJhbXMpCiAgICAgICAgICAgICAgICAgaWYgdFsiY2lkIl0gPj0gMDoKICAgICAgICAgICAgICAgICAgICAgdFsiYXNtLXg4NiJdID0gc2VsZi54ODZfZ2Vuc3R1Yl9jaWQoc3lzY2FsbF9mdW5jLCBudW1fcmVncywgIl9fTlJfIitzeXNjYWxsX25hbWUsIHRbImNpZCJdKQpAQCAtMzgwLDU1ICszOTUsNjUgQEAKICAgICAgICAgICAgICAgICBFKCJjaWQgZm9yIGRpc3BhdGNoIHN5c2NhbGxzIGlzIG9ubHkgc3VwcG9ydGVkIGZvciB4ODYgaW4gIgogICAgICAgICAgICAgICAgICAgIiclcyciICUgc3lzY2FsbF9uYW1lKQogICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgaWYgdFsiY29tbW9uIl0gPj0gMCBvciB0WyJtaXBzaWQiXSA+PSAwOgorICAgICAgICAgICAgICAgIHRbImFzbS1taXBzIl0gPSBzZWxmLm1pcHNfZ2Vuc3R1YihzeXNjYWxsX2Z1bmMsIl9fTlJfIitzeXNjYWxsX25hbWUpCiAKIAogICAgIGRlZiBnZW5fTlJfc3lzY2FsbChzZWxmLGZwLG5hbWUsaWQpOgogICAgICAgICBmcC53cml0ZSggIiNkZWZpbmUgX19OUl8lLTI1cyAgICAoX19OUl9TWVNDQUxMX0JBU0UgKyAlZClcbiIgJSAobmFtZSxpZCkgKQogCi0gICAgIyBub3cgZHVtcCB0aGUgY29udGVudCBvZiBsaW51eC9fc3lzY2FsbHMuaAorICAgICMgbm93IGR1bXAgdGhlIGNvbnRlbnQgb2YgbGludXgtc3lzY2FsbHMuaAogICAgIGRlZiBnZW5fbGludXhfc3lzY2FsbHNfaChzZWxmKToKICAgICAgICAgcGF0aCA9ICJpbmNsdWRlL3N5cy9saW51eC1zeXNjYWxscy5oIgogICAgICAgICBEKCAiZ2VuZXJhdGluZyAiK3BhdGggKQogICAgICAgICBmcCA9IGNyZWF0ZV9maWxlKCBwYXRoICkKICAgICAgICAgZnAud3JpdGUoICIvKiBhdXRvLWdlbmVyYXRlZCBieSBnZW5zeXNjYWxscy5weSwgZG8gbm90IHRvdWNoICovXG4iICkKLSAgICAgICAgZnAud3JpdGUoICIjaWZuZGVmIF9CSU9OSUNfTElOVVhfU1lTQ0FMTFNfSF9cblxuIiApCi0gICAgICAgIGZwLndyaXRlKCAiI2lmICFkZWZpbmVkIF9fQVNNX0FSTV9VTklTVERfSCAmJiAhZGVmaW5lZCBfX0FTTV9JMzg2X1VOSVNURF9IXG4iICkKKyAgICAgICAgZnAud3JpdGUoICIjaWZuZGVmIF9CSU9OSUNfTElOVVhfU1lTQ0FMTFNfSF9cbiIgKQorICAgICAgICBmcC53cml0ZSggIiNkZWZpbmUgX0JJT05JQ19MSU5VWF9TWVNDQUxMU19IX1xuXG4iICkKKyAgICAgICAgZnAud3JpdGUoICIjaWYgIWRlZmluZWQgX19BU01fQVJNX1VOSVNURF9IICYmICFkZWZpbmVkIF9fQVNNX0kzODZfVU5JU1REX0ggJiYgIWRlZmluZWQgX19BU01fTUlQU19VTklTVERfSFxuIiApCiAgICAgICAgIGZwLndyaXRlKCAiI2lmIGRlZmluZWQgX19hcm1fXyAmJiAhZGVmaW5lZCBfX0FSTV9FQUJJX18gJiYgIWRlZmluZWQgX190aHVtYl9fXG4iICkKLSAgICAgICAgZnAud3JpdGUoICIgICMgIGRlZmluZSBfX05SX1NZU0NBTExfQkFTRSAgMHg5MDAwMDBcbiIgKQotICAgICAgICBmcC53cml0ZSggIiAgI2Vsc2VcbiIgKQotICAgICAgICBmcC53cml0ZSggIiAgIyAgZGVmaW5lICBfX05SX1NZU0NBTExfQkFTRSAgMFxuIiApCi0gICAgICAgIGZwLndyaXRlKCAiICAjZW5kaWZcblxuIiApCisgICAgICAgIGZwLndyaXRlKCAiICAjICBkZWZpbmUgX19OUl9TWVNDQUxMX0JBU0UgMHg5MDAwMDBcbiIgKQorICAgICAgICBmcC53cml0ZSggIiNlbGlmIGRlZmluZWQoX19taXBzX18pXG4iICkKKyAgICAgICAgZnAud3JpdGUoICIgICMgIGRlZmluZSBfX05SX1NZU0NBTExfQkFTRSA0MDAwXG4iICkKKyAgICAgICAgZnAud3JpdGUoICIjZWxzZVxuIiApCisgICAgICAgIGZwLndyaXRlKCAiICAjICBkZWZpbmUgX19OUl9TWVNDQUxMX0JBU0UgMFxuIiApCisgICAgICAgIGZwLndyaXRlKCAiI2VuZGlmXG5cbiIgKQogCiAgICAgICAgICMgZmlyc3QsIGFsbCBjb21tb24gc3lzY2FsbHMKLSAgICAgICAgZm9yIHNjIGluIHNlbGYuc3lzY2FsbHM6Ci0gICAgICAgICAgICBzY19pZCAgPSBzY1siaWQiXQotICAgICAgICAgICAgc2NfaWQyID0gc2NbImlkMiJdCisgICAgICAgIGZvciBzYyBpbiBzb3J0ZWQoc2VsZi5zeXNjYWxscyxrZXk9bGFtYmRhIHg6eFsiY29tbW9uIl0pOgorICAgICAgICAgICAgc2NfaWQgID0gc2NbImNvbW1vbiJdCiAgICAgICAgICAgICBzY19uYW1lID0gc2NbIm5hbWUiXQotICAgICAgICAgICAgaWYgc2NfaWQgPT0gc2NfaWQyIGFuZCBzY19pZCA+PSAwOgorICAgICAgICAgICAgaWYgc2NfaWQgPj0gMDoKICAgICAgICAgICAgICAgICBzZWxmLmdlbl9OUl9zeXNjYWxsKCBmcCwgc2NfbmFtZSwgc2NfaWQgKQogCiAgICAgICAgICMgbm93LCBhbGwgYXJtLXNwZWNpZmljIHN5c2NhbGxzCiAgICAgICAgIGZwLndyaXRlKCAiXG4jaWZkZWYgX19hcm1fX1xuIiApOwogICAgICAgICBmb3Igc2MgaW4gc2VsZi5zeXNjYWxsczoKLSAgICAgICAgICAgIHNjX2lkICA9IHNjWyJpZCJdCi0gICAgICAgICAgICBzY19pZDIgPSBzY1siaWQyIl0KKyAgICAgICAgICAgIHNjX2lkICA9IHNjWyJhcm1pZCJdCiAgICAgICAgICAgICBzY19uYW1lID0gc2NbIm5hbWUiXQotICAgICAgICAgICAgaWYgc2NfaWQgIT0gc2NfaWQyIGFuZCBzY19pZCA+PSAwOgorICAgICAgICAgICAgaWYgc2NfaWQgPj0gMDoKICAgICAgICAgICAgICAgICBzZWxmLmdlbl9OUl9zeXNjYWxsKCBmcCwgc2NfbmFtZSwgc2NfaWQgKQogICAgICAgICBmcC53cml0ZSggIiNlbmRpZlxuIiApOwogCiAgICAgICAgIGdlbl9zeXNjYWxscyA9IHt9CiAgICAgICAgICMgZmluYWxseSwgYWxsIGkzODYtc3BlY2lmaWMgc3lzY2FsbHMKICAgICAgICAgZnAud3JpdGUoICJcbiNpZmRlZiBfX2kzODZfX1xuIiApOwotICAgICAgICBmb3Igc2MgaW4gc2VsZi5zeXNjYWxsczoKLSAgICAgICAgICAgIHNjX2lkICA9IHNjWyJpZCJdCi0gICAgICAgICAgICBzY19pZDIgPSBzY1siaWQyIl0KKyAgICAgICAgZm9yIHNjIGluIHNvcnRlZChzZWxmLnN5c2NhbGxzLGtleT1sYW1iZGEgeDp4WyJ4ODZpZCJdKToKKyAgICAgICAgICAgIHNjX2lkICA9IHNjWyJ4ODZpZCJdCiAgICAgICAgICAgICBzY19uYW1lID0gc2NbIm5hbWUiXQotICAgICAgICAgICAgaWYgc2NfaWQgIT0gc2NfaWQyIGFuZCBzY19pZDIgPj0gMCBhbmQgc2NfbmFtZSBub3QgaW4gZ2VuX3N5c2NhbGxzOgotICAgICAgICAgICAgICAgIHNlbGYuZ2VuX05SX3N5c2NhbGwoIGZwLCBzY19uYW1lLCBzY19pZDIgKQorICAgICAgICAgICAgaWYgc2NfaWQgPj0gMCBhbmQgc2NfbmFtZSBub3QgaW4gZ2VuX3N5c2NhbGxzOgorICAgICAgICAgICAgICAgIHNlbGYuZ2VuX05SX3N5c2NhbGwoIGZwLCBzY19uYW1lLCBzY19pZCApCiAgICAgICAgICAgICAgICAgZ2VuX3N5c2NhbGxzW3NjX25hbWVdID0gVHJ1ZQogICAgICAgICBmcC53cml0ZSggIiNlbmRpZlxuIiApOwogCisgICAgICAgICMgYWxsIG1pcHMtc3BlY2lmaWMgc3lzY2FsbHMKKyAgICAgICAgZnAud3JpdGUoICJcbiNpZmRlZiBfX21pcHNfX1xuIiApOworICAgICAgICBmb3Igc2MgaW4gc29ydGVkKHNlbGYuc3lzY2FsbHMsa2V5PWxhbWJkYSB4OnhbIm1pcHNpZCJdKToKKyAgICAgICAgICAgIHNjX2lkID0gc2NbIm1pcHNpZCJdCisgICAgICAgICAgICBpZiBzY19pZCA+PSAwOgorICAgICAgICAgICAgICAgIHNlbGYuZ2VuX05SX3N5c2NhbGwoIGZwLCBzY1sibmFtZSJdLCBzY19pZCApCisgICAgICAgIGZwLndyaXRlKCAiI2VuZGlmXG4iICk7CisKICAgICAgICAgZnAud3JpdGUoICJcbiNlbmRpZlxuIiApCiAgICAgICAgIGZwLndyaXRlKCAiXG4jZW5kaWYgLyogX0JJT05JQ19MSU5VWF9TWVNDQUxMU19IXyAqL1xuIiApOwogICAgICAgICBmcC5jbG9zZSgpCkBAIC00NDUsNiArNDcwLDcgQEAKICAgICAgICAgYXJjaF90ZXN0ID0gewogICAgICAgICAgICAgImFybSI6IGxhbWJkYSB4OiB4Lmhhc19rZXkoImFzbS1hcm0iKSBvciB4Lmhhc19rZXkoImFzbS10aHVtYiIpLAogICAgICAgICAgICAgIng4NiI6IGxhbWJkYSB4OiB4Lmhhc19rZXkoImFzbS14ODYiKSwKKyAgICAgICAgICAgICJtaXBzIjogbGFtYmRhIHg6IHguaGFzX2tleSgiYXNtLW1pcHMiKQogICAgICAgICB9CiAKICAgICAgICAgZm9yIHNjIGluIHNlbGYuc3lzY2FsbHM6CkBAIC00NTQsNiArNDgwLDcgQEAKICAgICAgICAgZnAuY2xvc2UoKQogICAgICAgICBzZWxmLm90aGVyX2ZpbGVzLmFwcGVuZCggcGF0aCApCiAKKwogICAgICMgbm93IGdlbmVyYXRlIGVhY2ggc3lzY2FsbCBzdHViCiAgICAgZGVmIGdlbl9zeXNjYWxsX3N0dWJzKHNlbGYpOgogICAgICAgICBmb3Igc2MgaW4gc2VsZi5zeXNjYWxsczoKQEAgLTQ4MSw2ICs1MDgsMTMgQEAKICAgICAgICAgICAgICAgICBmcC5jbG9zZSgpCiAgICAgICAgICAgICAgICAgc2VsZi5uZXdfc3R1YnMuYXBwZW5kKCBmbmFtZSApCiAKKyAgICAgICAgICAgIGlmIHNjLmhhc19rZXkoImFzbS1taXBzIikgYW5kICdtaXBzJyBpbiBhbGxfYXJjaHM6CisgICAgICAgICAgICAgICAgZm5hbWUgPSAiYXJjaC1taXBzL3N5c2NhbGxzLyVzLlMiICUgc2NbImZ1bmMiXQorICAgICAgICAgICAgICAgIEQyKCAiPj4+IGdlbmVyYXRpbmcgIitmbmFtZSApCisgICAgICAgICAgICAgICAgZnAgPSBjcmVhdGVfZmlsZSggZm5hbWUgKQorICAgICAgICAgICAgICAgIGZwLndyaXRlKHNjWyJhc20tbWlwcyJdKQorICAgICAgICAgICAgICAgIGZwLmNsb3NlKCkKKyAgICAgICAgICAgICAgICBzZWxmLm5ld19zdHVicy5hcHBlbmQoIGZuYW1lICkKIAogICAgIGRlZiAgcmVnZW5lcmF0ZShzZWxmKToKICAgICAgICAgRCggInNjYW5uaW5nIGZvciBleGlzdGluZyBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgc3R1YiBmaWxlcyIgKQpAQCAtNDk4LDcgKzUzMiw3IEBACiAKICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKCBiaW9uaWNfdGVtcCApOgogICAgICAgICAgICAgRCggImNyZWF0aW5nICVzIiAlIGJpb25pY190ZW1wICkKLSAgICAgICAgICAgIG9zLm1rZGlyKCBiaW9uaWNfdGVtcCApCisgICAgICAgICAgICBtYWtlX2RpciggYmlvbmljX3RlbXAgKQogCiAjICAgICAgICBEKCAicDQgZWRpdGluZyBzb3VyY2UgZmlsZXMiICkKICMgICAgICAgIGZvciBhcmNoIGluIGFsbF9hcmNoczoKZGlmZiAtLWdpdCBhL2xpYmMvdW5pc3RkL3N5c2NvbmYuYyBiL2xpYmMvdW5pc3RkL3N5c2NvbmYuYwppbmRleCA5Mzc3ODAyLi43Y2FhNGU5IDEwMDY0NAotLS0gYS9saWJjL3VuaXN0ZC9zeXNjb25mLmMKKysrIGIvbGliYy91bmlzdGQvc3lzY29uZi5jCkBAIC0yNSwxNiArMjUsMTkgQEAKICAqIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgogICogU1VDSCBEQU1BR0UuCiAgKi8KLSNpbmNsdWRlIDx1bmlzdGQuaD4KLSNpbmNsdWRlIDxzeXMvc3lzY29uZi5oPgotI2luY2x1ZGUgPGxpbWl0cy5oPgotI2luY2x1ZGUgPGJpb25pY190bHMuaD4KKwogI2luY2x1ZGUgPGFzbS9wYWdlLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4gIC8qIGZvciBGT1BFTl9NQVggKi8KKyNpbmNsdWRlIDxiaW9uaWNfdGxzLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpbmNsdWRlIDxkaXJlbnQuaD4KICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8c3RkYm9vbC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+ICAvLyBGb3IgRk9QRU5fTUFYLgogI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPGN0eXBlLmg+CisjaW5jbHVkZSA8c3lzL3N5c2NvbmYuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KIAogLyogc2VlbXMgdG8gYmUgdGhlIGRlZmF1bHQgb24gTGludXgsIHBlciB0aGUgR0xpYmMgc291cmNlcyBhbmQgbXkgb3duIGRpZ2dpbmcgKi8KIApAQCAtNjIsMTggKzY1LDg4IEBACiAjZGVmaW5lICBTWVNURU1fMl9GT1JUX0RFViAgIC0xICAgICAgIC8qIEZvcnRyYW4gZGV2ZWxvcG1lbnQgdW5zdXBwb3J0ZWQgKi8KICNkZWZpbmUgIFNZU1RFTV8yX0ZPUlRfUlVOICAgLTEgICAgICAgLyogRm9ydHJhbiBydW50aW1lIHVuc3VwcG9ydGVkICovCiAjZGVmaW5lICBTWVNURU1fMl9TV19ERVYgICAgIC0xICAgICAgIC8qIHBvc2l4IHNvZnR3YXJlIGRldiB1dGlsaXRpZXMgdW5zdXBwb3J0ZWQgKi8KLSNkZWZpbmUgIFNZU1RFTV8yX0xPQ0FMRURFRiAgLTEgICAgICAgLyogbG9jYWxkZWYoKSB1bmltcGxlbWVudGVkICovCisjZGVmaW5lICBTWVNURU1fMl9MT0NBTEVERUYgIC0xICAgICAgIC8qIGxvY2FsZWRlZigpIHVuaW1wbGVtZW50ZWQgKi8KICNkZWZpbmUgIFNZU1RFTV8yX1VQRSAgICAgICAgLTEgICAgICAgLyogTm8gVVBFIGZvciB5b3UgISAoVXNlciBQb3J0YWJpbGl0eSBVdGlsaXRpZXMpICovCiAjZGVmaW5lICBTWVNURU1fMl9WRVJTSU9OICAgIC0xICAgICAgIC8qIE5vIHBvc2l4IGNvbW1hbmQtbGluZSB0b29scyAqLwogCi1zdGF0aWMgaW50ICBfX2dldF9ucHJvY19jb25mKHZvaWQpOwotc3RhdGljIGludCAgX19nZXRfbnByb2Nfb25sbih2b2lkKTsKLXN0YXRpYyBpbnQgIF9fZ2V0X3BoeXNfcGFnZXModm9pZCk7Ci1zdGF0aWMgaW50ICBfX2dldF9hdnBoeXNfcGFnZXModm9pZCk7CitzdGF0aWMgYm9vbCBfX21hdGNoZXNfY3B1Tihjb25zdCBjaGFyKiBzKSB7CisgIC8vIFRoZSAlYyB0cmljayBpcyB0byBlbnN1cmUgdGhhdCB3ZSBoYXZlIHRoZSBhbmNob3JlZCBtYXRjaCAiXmNwdVswLTldKyQiLgorICB1bnNpZ25lZCBjcHU7CisgIGNoYXIgZHVtbXk7CisgIHJldHVybiAoc3NjYW5mKHMsICJjcHUldSVjIiwgJmNwdSwgJmR1bW15KSA9PSAxKTsKK30KIAotaW50Ci1zeXNjb25mKCBpbnQgIG5hbWUgKQoteworc3RhdGljIGludCBfX2dldF9ucHJvY19jb25mKHZvaWQpIHsKKyAgLy8gT24geDg2IGtlcm5lbHMgeW91IGNhbiB1c2UgL3Byb2MvY3B1aW5mbyBmb3IgdGhpcywgYnV0IG9uIEFSTSBrZXJuZWxzIG9mZmxpbmUgQ1BVcyBkaXNhcHBlYXIKKyAgLy8gZnJvbSB0aGVyZS4gVGhpcyBtZXRob2Qgd29ya3Mgb24gYm90aC4KKyAgRElSKiBkID0gb3BlbmRpcigiL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUiKTsKKyAgaWYgKCFkKSB7CisgICAgcmV0dXJuIDE7CisgIH0KKworICBpbnQgcmVzdWx0ID0gMDsKKyAgc3RydWN0IGRpcmVudCBkZTsKKyAgc3RydWN0IGRpcmVudCogZTsKKyAgd2hpbGUgKCFyZWFkZGlyX3IoZCwgJmRlLCAmZSkgJiYgZSAhPSBOVUxMKSB7CisgICAgaWYgKGUtPmRfdHlwZSA9PSBEVF9ESVIgJiYgX19tYXRjaGVzX2NwdU4oZS0+ZF9uYW1lKSkgeworICAgICAgKytyZXN1bHQ7CisgICAgfQorICB9CisgIGNsb3NlZGlyKGQpOworICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgaW50IF9fZ2V0X25wcm9jX29ubG4odm9pZCkgeworICBGSUxFKiBmcCA9IGZvcGVuKCIvcHJvYy9zdGF0IiwgInIiKTsKKyAgaWYgKGZwID09IE5VTEwpIHsKKyAgICByZXR1cm4gMTsKKyAgfQorCisgIGludCByZXN1bHQgPSAwOworICBjaGFyIGJ1ZlsyNTZdOworICB3aGlsZSAoZmdldHMoYnVmLCBzaXplb2YoYnVmKSwgZnApICE9IE5VTEwpIHsKKyAgICAvLyBFeHRyYWN0IGp1c3QgdGhlIGZpcnN0IHdvcmQgZnJvbSB0aGUgbGluZS4KKyAgICAvLyAnY3B1MCA3OTc2NzUxIDEzNjQzODggMzExNjg0MiA0Njk3NzAzODggODYyOTQwNSAwIDQ5MDQ3IDAgMCAwJworICAgIGNoYXIqIHAgPSBzdHJjaHIoYnVmLCAnICcpOworICAgIGlmIChwICE9IE5VTEwpIHsKKyAgICAgICpwID0gMDsKKyAgICB9CisgICAgaWYgKF9fbWF0Y2hlc19jcHVOKGJ1ZikpIHsKKyAgICAgICsrcmVzdWx0OworICAgIH0KKyAgfQorICBmY2xvc2UoZnApOworICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgaW50IF9fZ2V0X21lbWluZm8oY29uc3QgY2hhciogcGF0dGVybikgeworICBGSUxFKiBmcCA9IGZvcGVuKCIvcHJvYy9tZW1pbmZvIiwgInIiKTsKKyAgaWYgKGZwID09IE5VTEwpIHsKKyAgICByZXR1cm4gLTE7CisgIH0KKworICBpbnQgcmVzdWx0ID0gLTE7CisgIGNoYXIgYnVmWzI1Nl07CisgIHdoaWxlIChmZ2V0cyhidWYsIHNpemVvZihidWYpLCBmcCkgIT0gTlVMTCkgeworICAgIGxvbmcgdG90YWw7CisgICAgaWYgKHNzY2FuZihidWYsIHBhdHRlcm4sICZ0b3RhbCkgPT0gMSkgeworICAgICAgcmVzdWx0ID0gKGludCkgKHRvdGFsIC8gKFBBR0VfU0laRS8xMDI0KSk7CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKyAgZmNsb3NlKGZwKTsKKyAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGludCBfX2dldF9waHlzX3BhZ2VzKHZvaWQpIHsKKyAgcmV0dXJuIF9fZ2V0X21lbWluZm8oIk1lbVRvdGFsOiAlbGQga0IiKTsKK30KKworc3RhdGljIGludCBfX2dldF9hdnBoeXNfcGFnZXModm9pZCkgeworICByZXR1cm4gX19nZXRfbWVtaW5mbygiTWVtRnJlZTogJWxkIGtCIik7Cit9CisKK2ludCBzeXNjb25mKGludCBuYW1lKSB7CiAgICAgc3dpdGNoIChuYW1lKSB7CiAjaWZkZWYgX1BPU0lYX0FSR19NQVgKICAgICBjYXNlIF9TQ19BUkdfTUFYOiAgICAgICAgICAgcmV0dXJuIF9QT1NJWF9BUkdfTUFYOwpAQCAtMjY2LDE2OSArMzM5LDMgQEAKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIH0KLQotCi10eXBlZGVmIHN0cnVjdCB7Ci0gICAgaW50ICAgcnBvczsKLSAgICBpbnQgICBsZW47Ci0gICAgaW50ICAgb3ZlcmZsb3c7Ci0gICAgaW50ICAgZmQ7Ci0gICAgaW50ICAgaW5fbGVuOwotICAgIGludCAgIGluX3BvczsKLSAgICBjaGFyICBidWZmWzEyOF07Ci0gICAgY2hhciAgaW5wdXRbMTI4XTsKLX0gTGluZVBhcnNlcjsKLQotc3RhdGljIGludAotbGluZV9wYXJzZXJfaW5pdCggTGluZVBhcnNlciogIHAsIGNvbnN0IGNoYXIqICBwYXRoICkKLXsKLSAgICBwLT5ycG9zICAgICA9IDA7Ci0gICAgcC0+bGVuICAgICAgPSAoaW50KXNpemVvZihwLT5idWZmKTsKLSAgICBwLT5vdmVyZmxvdyA9IDA7Ci0KLSAgICBwLT5pbl9sZW4gICA9IDA7Ci0gICAgcC0+aW5fcG9zICAgPSAwOwotICAgIHAtPmZkICAgICAgID0gb3BlbiggcGF0aCwgT19SRE9OTFkgKTsKLQotICAgIHJldHVybiBwLT5mZDsKLX0KLQotCi1zdGF0aWMgaW50Ci1saW5lX3BhcnNlcl9hZGRjKCBMaW5lUGFyc2VyKiAgcCwgaW50ICBjICkKLXsKLSAgICBpZiAocC0+b3ZlcmZsb3cpIHsKLSAgICAgICAgcC0+b3ZlcmZsb3cgPSAoYyA9PSAnXG4nKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIGlmIChwLT5ycG9zID49IHAtPmxlbikgewotICAgICAgICBwLT5vdmVyZmxvdyA9IDE7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICBpZiAoYyA9PSAnXG4nKSB7Ci0gICAgICAgIHAtPmJ1ZmZbcC0+cnBvc10gPSAwOwotICAgICAgICBwLT5ycG9zID0gMDsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotICAgIHAtPmJ1ZmZbcC0+cnBvcysrXSA9IChjaGFyKSBjOwotICAgIHJldHVybiAwOwotfQotCi1zdGF0aWMgaW50Ci1saW5lX3BhcnNlcl9nZXRjKCBMaW5lUGFyc2VyKiAgcCApCi17Ci0gICAgaWYgKHAtPmluX3BvcyA+PSBwLT5pbl9sZW4pIHsKLSAgICAgICAgaW50ICByZXQ7Ci0KLSAgICAgICAgcC0+aW5fbGVuID0gcC0+aW5fcG9zID0gMDsKLSAgICAgICAgZG8gewotICAgICAgICAgICAgcmV0ID0gcmVhZChwLT5mZCwgcC0+aW5wdXQsIHNpemVvZihwLT5pbnB1dCkpOwotICAgICAgICB9IHdoaWxlIChyZXQgPCAwICYmIGVycm5vID09IEVJTlRSKTsKLQotICAgICAgICBpZiAocmV0IDw9IDApCi0gICAgICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICAgICAgcC0+aW5fbGVuID0gcmV0OwotICAgIH0KLSAgICByZXR1cm4gcC0+aW5wdXRbIHAtPmluX3BvcysrIF07Ci19Ci0KLXN0YXRpYyBjb25zdCBjaGFyKgotbGluZV9wYXJzZXJfZ2V0cyggTGluZVBhcnNlciogIHAgKQotewotICAgIGZvciAoOzspIHsKLSAgICAgICAgZm9yICg7OykgewotICAgICAgICAgICAgaW50ICBjID0gbGluZV9wYXJzZXJfZ2V0YyhwKTsKLQotICAgICAgICAgICAgaWYgKGMgPCAwKSB7Ci0gICAgICAgICAgICAgICAgY2xvc2UocC0+ZmQpOwotICAgICAgICAgICAgICAgIHAtPmZkID0gLTE7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIGlmIChsaW5lX3BhcnNlcl9hZGRjKHAsIGMpKQotICAgICAgICAgICAgICAgIHJldHVybiBwLT5idWZmOwotICAgICAgICB9Ci0gICAgfQotfQotCi1zdGF0aWMgdm9pZAotbGluZV9wYXJzZXJfZG9uZSggTGluZVBhcnNlciogcCApCi17Ci0gICAgaWYgKHAtPmZkID49IDApIHsKLSAgICAgICAgY2xvc2UocC0+ZmQpOwotICAgICAgICBwLT5mZCA9IC0xOwotICAgIH0KLX0KLQotc3RhdGljIGludAotX19nZXRfbnByb2NfY29uZih2b2lkKQotewotICAgIExpbmVQYXJzZXIgICBwYXJzZXJbMV07Ci0gICAgY29uc3QgY2hhciogIHA7Ci0gICAgaW50ICAgICAgICAgIGNvdW50ID0gMDsKLQotICAgIGlmIChsaW5lX3BhcnNlcl9pbml0KHBhcnNlciwgIi9wcm9jL2NwdWluZm8iKSA8IDApCi0gICAgICAgIHJldHVybiAxOwotCi0gICAgd2hpbGUgKChwID0gbGluZV9wYXJzZXJfZ2V0cyhwYXJzZXIpKSkgewotICAgICAgICBpZiAoICFtZW1jbXAocCwgInByb2Nlc3NvciIsIDkpICkKLSAgICAgICAgICAgIGNvdW50ICs9IDE7Ci0gICAgfQotICAgIHJldHVybiAoY291bnQgPCAxKSA/IDEgOiBjb3VudDsKLX0KLQotCi1zdGF0aWMgaW50Ci1fX2dldF9ucHJvY19vbmxuKHZvaWQpCi17Ci0gICAgTGluZVBhcnNlciAgIHBhcnNlclsxXTsKLSAgICBjb25zdCBjaGFyKiAgcDsKLSAgICBpbnQgICAgICAgICAgY291bnQgPSAwOwotCi0gICAgaWYgKGxpbmVfcGFyc2VyX2luaXQocGFyc2VyLCAiL3Byb2Mvc3RhdCIpIDwgMCkKLSAgICAgICAgcmV0dXJuIDE7Ci0KLSAgICB3aGlsZSAoKHAgPSBsaW5lX3BhcnNlcl9nZXRzKHBhcnNlcikpKSB7Ci0gICAgICAgIGlmICggIW1lbWNtcChwLCAiY3B1IiwgMykgJiYgaXNkaWdpdChwWzNdKSApCi0gICAgICAgICAgICBjb3VudCArPSAxOwotICAgIH0KLSAgICByZXR1cm4gKGNvdW50IDwgMSkgPyAxIDogY291bnQ7Ci19Ci0KLXN0YXRpYyBpbnQKLV9fZ2V0X3BoeXNfcGFnZXModm9pZCkKLXsKLSAgICBMaW5lUGFyc2VyICAgcGFyc2VyWzFdOwotICAgIGNvbnN0IGNoYXIqICBwOwotCi0gICAgaWYgKGxpbmVfcGFyc2VyX2luaXQocGFyc2VyLCAiL3Byb2MvbWVtaW5mbyIpIDwgMCkKLSAgICAgICAgcmV0dXJuIC0yOyAgLyogd2hhdCA/ICovCi0KLSAgICB3aGlsZSAoKHAgPSBsaW5lX3BhcnNlcl9nZXRzKHBhcnNlcikpKSB7Ci0gICAgICAgIGxvbmcgIHRvdGFsOwotICAgICAgICBpZiAoIHNzY2FuZihwLCAiTWVtVG90YWw6ICVsZCBrQiIsICZ0b3RhbCkgPT0gMSApIHsKLSAgICAgICAgICAgIGxpbmVfcGFyc2VyX2RvbmUocGFyc2VyKTsKLSAgICAgICAgICAgIHJldHVybiAoaW50KSAodG90YWwgLyAoUEFHRV9TSVpFLzEwMjQpKTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gLTM7Ci19Ci0KLXN0YXRpYyBpbnQKLV9fZ2V0X2F2cGh5c19wYWdlcyh2b2lkKQotewotICAgIExpbmVQYXJzZXIgICBwYXJzZXJbMV07Ci0gICAgY29uc3QgY2hhciogIHA7Ci0KLSAgICBpZiAobGluZV9wYXJzZXJfaW5pdChwYXJzZXIsICIvcHJvYy9tZW1pbmZvIikgPCAwKQotICAgICAgICByZXR1cm4gLTE7ICAvKiB3aGF0ID8gKi8KLQotICAgIHdoaWxlICgocCA9IGxpbmVfcGFyc2VyX2dldHMocGFyc2VyKSkpIHsKLSAgICAgICAgbG9uZyAgdG90YWw7Ci0gICAgICAgIGlmICggc3NjYW5mKHAsICJNZW1GcmVlOiAlbGQga0IiLCAmdG90YWwpID09IDEgKSB7Ci0gICAgICAgICAgICBsaW5lX3BhcnNlcl9kb25lKHBhcnNlcik7Ci0gICAgICAgICAgICByZXR1cm4gKGludCkgKHRvdGFsIC8gKFBBR0VfU0laRS8xMDI0KSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIC0xOwotfQpkaWZmIC0tZ2l0IGEvbGliZGwvQW5kcm9pZC5tayBiL2xpYmRsL0FuZHJvaWQubWsKaW5kZXggZDIyODlmOC4uZmIwMWVjMiAxMDA2NDQKLS0tIGEvbGliZGwvQW5kcm9pZC5taworKysgYi9saWJkbC9BbmRyb2lkLm1rCkBAIC0zNCwyMSArMzQsNiBAQAogTE9DQUxfQUxMT1dfVU5ERUZJTkVEX1NZTUJPTFMgOj0gdHJ1ZQogTE9DQUxfU1lTVEVNX1NIQVJFRF9MSUJSQVJJRVMgOj0gCiAKLWlmZXEgKCQoVEFSR0VUX0FSQ0gpLHNoKQotIyBmb3IgU3VwZXJILCBhZGRpdGlvbmFsIGNvZGUgaXMgbmVjZXNzYXJ5IHRvIGhhbmRsZSAuY3RvcnMgc2VjdGlvbi4KLUdFTl9TT0JFR0lOIDo9ICQoVEFSR0VUX09VVF9TVEFUSUNfTElCUkFSSUVTKS9zb2JlZ2luLm8KLSQoR0VOX1NPQkVHSU4pOiAkKExPQ0FMX1BBVEgpL2FyY2gtc2gvc29iZWdpbi5TCi0JQG1rZGlyIC1wICQoZGlyICRAKQotCSQoVEFSR0VUX0NDKSAtbyAkQCAtYyAkPAotCi1HRU5fU09FTkQgOj0gJChUQVJHRVRfT1VUX1NUQVRJQ19MSUJSQVJJRVMpL3NvZW5kLm8KLSQoR0VOX1NPRU5EKTogJChMT0NBTF9QQVRIKS9hcmNoLXNoL3NvZW5kLlMKLQlAbWtkaXIgLXAgJChkaXIgJEApCi0JJChUQVJHRVRfQ0MpIC1vICRAIC1jICQ8Ci0KLUxPQ0FMX0FERElUSU9OQUxfREVQRU5ERU5DSUVTIDo9ICQoR0VOX1NPQkVHSU4pICQoR0VOX1NPRU5EKQotZW5kaWYKLQogaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQogCiBCVUlMRF9ETFRFU1Q6PTAKZGlmZiAtLWdpdCBhL2xpYmRsL2FyY2gtc2gvc29iZWdpbi5TIGIvbGliZGwvYXJjaC1zaC9zb2JlZ2luLlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk3NmIxYTYuLjAwMDAwMDAKLS0tIGEvbGliZGwvYXJjaC1zaC9zb2JlZ2luLlMKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IFRoZSBBbmRyb2lkIE9wZW4gUHJvamVjdAotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluCi0gKiAgICB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiAgICBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTCi0gKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQotICogQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywKLSAqIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUwotICogT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VECi0gKiBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0gKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQKLSAqIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICogU1VDSCBEQU1BR0UuCi0gKi8KLSAgICAudGV4dAotICAgIC5hbGlnbiA0Ci0gICAgLnR5cGUgIF9pbml0LCNmdW5jdGlvbgotICAgIC5nbG9ibCBfaW5pdAotCi0jIFRoZSB0b29sY2hhaW4gZm9yIFNILUxpbnV4IGRvZXMgbm90IHByb2R1Y2UgSU5JVF9BUlJBWSBpbmZvcm1hdGlvbiB3aGljaAotIyBiaW9uaWMgbGlua2VyIHJlbGllcyBvbi4gIEluc3RlYWQgb2YgaXQsIFRoZSB0b29sY2hhaW4gZm9yIFNILUxpbnV4IHByb2R1Y2VzCi0jIElOSVQgaW5mb3JtYXRpb24gd2hlbiBpdCBmaW5kIHRoZSBmdW5jdGlvbiB3aG9zZSBuYW1lIGlzICdfaW5pdCcuCi0jCi1faW5pdDoKLSAgICBzdHMubCAgIHByLCBALXIxNQotICAgIG1vdi5sICAgcjgsIEAtcjE1Ci0gICAgbW92LmwgICAwZiwgcjggICAgICAvKiBmaXJzdCBlbnRyeSBpcyBpbnZhbGlkICovCi0uTF9sb29wOgotICAgIGFkZCAgICAgIzQsIHI4Ci0gICAgbW92LmwgICBAcjgsIHIwCi0gICAgY21wL2VxICAjMCwgcjAgICAgICAvKiBaZXJvIHRlcmltbmF0ZWQuIFNlZSAnc29lbmQuc28nLiAqLwotICAgIGJ0ICAgICAgLkxfZW5kCi0gICAganNyICAgICBAcjAgICAgICAgICAvKiBpbnZva2UgYSBjb25zdHJ1Y3RvciAqLwotICAgIG5vcAotICAgIGJyYSAgICAgLkxfbG9vcAotICAgIG5vcAotLkxfZW5kOgotICAgIG1vdi5sICAgQHIxNSssIHI4Ci0gICAgbGRzLmwgICBAcjE1KywgcHIKLQotICAgIHJ0cwotICAgIG5vcAotCi0gICAgLmJhbGlnbiA0Ci0wOiAgLmxvbmcgICBfX0NUT1JfTElTVF9fCi0KLSMgdGhlIC5jdG9ycyBzZWN0aW9uIGNvbnRhaW5zIGEgbGlzdCBvZiBwb2ludGVycyB0byAiY29uc3RydWN0b3IiCi0jIGZ1bmN0aW9ucyB0aGF0IG5lZWQgdG8gYmUgY2FsbGVkIGluIG9yZGVyIGR1cmluZyBDIGxpYnJhcnkgaW5pdGlhbGl6YXRpb24sCi0jIGp1c3QgYmVmb3JlIHRoZSBwcm9ncmFtIGlzIGJlaW5nIHJ1bi4gVGhpcyBpcyBhIEMrKyByZXF1aXJlbWVudAotIwotIyB0aGUgbGFzdCBlbnRyeSBzaGFsbCBiZSAwLCBhbmQgaXMgZGVmaW5lZCBpbiBjcnRlbmQuUwotIwotICAgIC5zZWN0aW9uIC5jdG9ycywgImF3IgotICAgIC5nbG9ibCBfX0NUT1JfTElTVF9fCi1fX0NUT1JfTElTVF9fOgotICAgIC5sb25nICAgLTEKLQpkaWZmIC0tZ2l0IGEvbGliZGwvYXJjaC1zaC9zb2VuZC5TIGIvbGliZGwvYXJjaC1zaC9zb2VuZC5TCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZmE5OGE0Li4wMDAwMDAwCi0tLSBhL2xpYmRsL2FyY2gtc2gvc29lbmQuUworKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgVGhlIEFuZHJvaWQgT3BlbiBQcm9qZWN0Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KLSAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKLSAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCi0gKiBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAotICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTCi0gKiBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQKLSAqIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVAotICogT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0gICAgLnNlY3Rpb24gLmN0b3JzLCAiYXciCi0gICAgLmxvbmcgMAotCmRpZmYgLS1naXQgYS9saWJkbC9saWJkbC5jIGIvbGliZGwvbGliZGwuYwppbmRleCA4NzJjMGM5Li4xZDUxYzM3IDEwMDY0NAotLS0gYS9saWJkbC9saWJkbC5jCisrKyBiL2xpYmRsL2xpYmRsLmMKQEAgLTI2LDExICsyNiwxMSBAQAogCiAjaWZkZWYgX19hcm1fXwogdm9pZCAqZGxfdW53aW5kX2ZpbmRfZXhpZHgodm9pZCAqcGMsIGludCAqcGNvdW50KSB7IHJldHVybiAwOyB9Ci0jZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fc2hfXykKKyNlbGlmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19zaF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQogLyogd2UgbXVuZ2UgdGhlIGNiIGRlZmluaXRpb24gc28gd2UgZG9uJ3QgaGF2ZSB0byBpbmNsdWRlIGFueSBoZWFkZXJzIGhlcmUuCiAgKiBJdCB3b24ndCBhZmZlY3QgYW55dGhpbmcgc2luY2UgdGhlc2UgYXJlIGp1c3Qgc3ltYm9scyBhbnl3YXkgKi8KIGludCBkbF9pdGVyYXRlX3BoZHIoaW50ICgqY2IpKHZvaWQgKmluZm8sIHZvaWQgKnNpemUsIHZvaWQgKmRhdGEpLAogICAgICAgICAgICAgICAgICAgICB2b2lkICpkYXRhKSB7IHJldHVybiAwOyB9CiAjZWxzZQotI2Vycm9yIFVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZS4gT25seSBhcm0gYW5kIHg4NiBhcmUgc3VwcG9ydGVkLgorI2Vycm9yIFVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZS4gT25seSBtaXBzLCBhcm0gYW5kIHg4NiBhcmUgc3VwcG9ydGVkLgogI2VuZGlmCmRpZmYgLS1naXQgYS9saWJtL0FuZHJvaWQubWsgYi9saWJtL0FuZHJvaWQubWsKaW5kZXggNTdlNGQ0Yy4uMDdjYjdkYiAxMDA2NDQKLS0tIGEvbGlibS9BbmRyb2lkLm1rCisrKyBiL2xpYm0vQW5kcm9pZC5tawpAQCAtMTUyLDYgKzE1Miw3IEBACiAJc3JjL3NfaXNuYW4uYyBcCiAJc3JjL3NfbW9kZi5jCiAKK2xpYm1fY29tbW9uX2NmbGFncyA6PQogCiBpZmVxICgkKFRBUkdFVF9BUkNIKSxhcm0pCiAgIGxpYm1fY29tbW9uX3NyY19maWxlcyArPSBcCkBAIC0xNjIsMjEgKzE2MywyOSBAQAogCXNyYy9zX3NjYWxibmYuYwogCiAgIGxpYm1fY29tbW9uX2luY2x1ZGVzID0gJChMT0NBTF9QQVRIKS9hcm0KK2VuZGlmCiAKLWVsc2UKLSAgaWZlcSAoJChUQVJHRVRfT1MpLSQoVEFSR0VUX0FSQ0gpLGxpbnV4LXg4NikKLSAgICBsaWJtX2NvbW1vbl9zcmNfZmlsZXMgKz0gXAoraWZlcSAoJChUQVJHRVRfT1MpLSQoVEFSR0VUX0FSQ0gpLGxpbnV4LXg4NikKKyAgbGlibV9jb21tb25fc3JjX2ZpbGVzICs9IFwKIAlpMzg3L2ZlbnYuYyBcCiAJaTM4Ny9zX3NjYWxibmwuUyBcCiAJaTM4Ny9zX3NjYWxibi5TIFwKIAlpMzg3L3Nfc2NhbGJuZi5TCiAKLSAgICBsaWJtX2NvbW1vbl9pbmNsdWRlcyA9ICQoTE9DQUxfUEFUSCkvaTM4NiAkKExPQ0FMX1BBVEgpL2kzODcKLSAgZWxzZQotICAgICQoZXJyb3IgIlVua25vd24gYXJjaGl0ZWN0dXJlIikKLSAgZW5kaWYKKyAgbGlibV9jb21tb25faW5jbHVkZXMgPSAkKExPQ0FMX1BBVEgpL2kzODYgJChMT0NBTF9QQVRIKS9pMzg3CiBlbmRpZgoraWZlcSAoJChUQVJHRVRfQVJDSCksbWlwcykKKyAgbGlibV9jb21tb25fc3JjX2ZpbGVzICs9IFwKKwltaXBzL2ZlbnYuYyBcCisJc3JjL2VfbGRleHBmLmMgXAorCXNyYy9zX3NjYWxibG4uYyBcCisJc3JjL3Nfc2NhbGJuLmMgXAorCXNyYy9zX3NjYWxibmYuYwogCisgIGxpYm1fY29tbW9uX2luY2x1ZGVzID0gJChMT0NBTF9QQVRIKS9taXBzCisgICMgTmVlZCB0byBidWlsZCAqcmludCogZnVuY3Rpb25zCisgIGxpYm1fY29tbW9uX2NmbGFncyArPSAtZm5vLWJ1aWx0aW4tcmludGYgLWZuby1idWlsdGluLXJpbnQKK2VuZGlmCiAKICMgbGlibS5hCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC0xODgsNiArMTk3LDcgQEAKIAogTE9DQUxfQVJNX01PREUgOj0gYXJtCiBMT0NBTF9DX0lOQ0xVREVTICs9ICQobGlibV9jb21tb25faW5jbHVkZXMpCitMT0NBTF9DRkxBR1MgOj0gJChsaWJtX2NvbW1vbl9jZmxhZ3MpCiAKIExPQ0FMX01PRFVMRTo9IGxpYm0KIApAQCAtMjA2LDYgKzIxNiw3IEBACiBMT0NBTF9BUk1fTU9ERSA6PSBhcm0KIAogTE9DQUxfQ19JTkNMVURFUyArPSAkKGxpYm1fY29tbW9uX2luY2x1ZGVzKQorTE9DQUxfQ0ZMQUdTIDo9ICQobGlibV9jb21tb25fY2ZsYWdzKQogCiBMT0NBTF9NT0RVTEU6PSBsaWJtCiAKZGlmZiAtLWdpdCBhL2xpYm0vbWlwcy9NYWtlZmlsZS5pbmMgYi9saWJtL21pcHMvTWFrZWZpbGUuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliYmZhYTEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJtL21pcHMvTWFrZWZpbGUuaW5jCkBAIC0wLDAgKzEsMyBAQAorIyAkRnJlZUJTRDogc3JjL2xpYi9tc3VuL21pcHMvTWFrZWZpbGUuaW5jLHYgMS4xIDIwMDgvMDQvMjYgMTI6MjA6MjkgaW1wIEV4cCAkCisKK0xEQkxfUFJFQyA9IDUzCmRpZmYgLS1naXQgYS9saWJtL21pcHMvX2ZwbWF0aC5oIGIvbGlibS9taXBzL19mcG1hdGguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjZlOGMwCi0tLSAvZGV2L251bGwKKysrIGIvbGlibS9taXBzL19mcG1hdGguaApAQCAtMCwwICsxLDU2IEBACisvKi0KKyAqIENvcHlyaWdodCAoYykgMjAwMiwgMjAwMyBEYXZpZCBTY2h1bHR6IDxkYXNARnJlZUJTRC5PUkc+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICoKKyAqICRGcmVlQlNEOiBzcmMvbGliL2xpYmMvbWlwcy9fZnBtYXRoLmgsdiAxLjEgMjAwOC8wNC8yNiAxMjowNzo1OSBpbXAgRXhwICQKKyAqLworCit1bmlvbiBJRUVFbDJiaXRzIHsKKwlsb25nIGRvdWJsZQllOworCXN0cnVjdCB7CisjaWZuZGVmIF9fTUlQU0VCX18KKwkJdW5zaWduZWQgaW50CW1hbmwJOjMyOworCQl1bnNpZ25lZCBpbnQJbWFuaAk6MjA7CisJCXVuc2lnbmVkIGludAlleHAJOjExOworCQl1bnNpZ25lZCBpbnQJc2lnbgk6MTsKKyNlbHNlCisJCXVuc2lnbmVkIGludAkJc2lnbgk6MTsKKwkJdW5zaWduZWQgaW50CQlleHAJOjExOworCQl1bnNpZ25lZCBpbnQJCW1hbmgJOjIwOworCQl1bnNpZ25lZCBpbnQJCW1hbmwJOjMyOworI2VuZGlmCisJfSBiaXRzOworfTsKKworI2RlZmluZQlMREJMX05CSVQJMAorI2RlZmluZQltYXNrX25iaXRfbCh1KQkoKHZvaWQpMCkKKyNkZWZpbmUJTERCTF9JTVBMSUNJVF9OQklUCisKKyNkZWZpbmUJTERCTF9NQU5IX1NJWkUJMjAKKyNkZWZpbmUJTERCTF9NQU5MX1NJWkUJMzIKKworI2RlZmluZQlMREJMX1RPX0FSUkFZMzIodSwgYSkgZG8gewkJCVwKKwkoYSlbMF0gPSAodWludDMyX3QpKHUpLmJpdHMubWFubDsJCVwKKwkoYSlbMV0gPSAodWludDMyX3QpKHUpLmJpdHMubWFuaDsJCVwKK30gd2hpbGUoMCkKZGlmZiAtLWdpdCBhL2xpYm0vbWlwcy9mZW52LmMgYi9saWJtL21pcHMvZmVudi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1ZjUyZGEKLS0tIC9kZXYvbnVsbAorKysgYi9saWJtL21pcHMvZmVudi5jCkBAIC0wLDAgKzEsMzUgQEAKKy8qLQorICogQ29weXJpZ2h0IChjKSAyMDA0IERhdmlkIFNjaHVsdHogPGRhc0BGcmVlQlNELk9SRz4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKgorICogJEZyZWVCU0Q6IHNyYy9saWIvbXN1bi9taXBzL2ZlbnYuYyx2IDEuMSAyMDA4LzA0LzI2IDEyOjIwOjI5IGltcCBFeHAgJAorICovCisKKyNpbmNsdWRlIDxmZW52Lmg+CisKKy8qCisgKiBIb3BlZnVsbHkgdGhlIHN5c3RlbSBJRCBieXRlIGlzIGltbXV0YWJsZSwgc28gaXQncyB2YWxpZCB0byB1c2UKKyAqIHRoaXMgYXMgYSBkZWZhdWx0IGVudmlyb25tZW50LgorICovCitjb25zdCBmZW52X3QgX19mZV9kZmxfZW52ID0gMDsKZGlmZiAtLWdpdCBhL2xpYm0vbWlwcy9mZW52LmggYi9saWJtL21pcHMvZmVudi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2MWE2OTYKLS0tIC9kZXYvbnVsbAorKysgYi9saWJtL21pcHMvZmVudi5oCkBAIC0wLDAgKzEsMjE4IEBACisvKi0KKyAqIENvcHlyaWdodCAoYykgMjAwNC0yMDA1IERhdmlkIFNjaHVsdHogPGRhc0BGcmVlQlNELk9SRz4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKgorICogJEZyZWVCU0Q6IHNyYy9saWIvbXN1bi9taXBzL2ZlbnYuaCx2IDEuMSAyMDA4LzA0LzI2IDEyOjIwOjI5IGltcCBFeHAgJAorICovCisKKyNpZm5kZWYJX0ZFTlZfSF8KKyNkZWZpbmUJX0ZFTlZfSF8KKworI2luY2x1ZGUgPHN5cy9fdHlwZXMuaD4KKwordHlwZWRlZglfX3VpbnQzMl90CWZlbnZfdDsKK3R5cGVkZWYJX191aW50MzJfdAlmZXhjZXB0X3Q7CisKKy8qIEV4Y2VwdGlvbiBmbGFncyAqLworI2RlZmluZQlGRV9JTlZBTElECTB4MDAwMQorI2RlZmluZQlGRV9ESVZCWVpFUk8JMHgwMDAyCisjZGVmaW5lCUZFX09WRVJGTE9XCTB4MDAwNAorI2RlZmluZQlGRV9VTkRFUkZMT1cJMHgwMDA4CisjZGVmaW5lCUZFX0lORVhBQ1QJMHgwMDEwCisjZGVmaW5lCUZFX0FMTF9FWENFUFQJKEZFX0RJVkJZWkVSTyB8IEZFX0lORVhBQ1QgfCBcCisJCQkgRkVfSU5WQUxJRCB8IEZFX09WRVJGTE9XIHwgRkVfVU5ERVJGTE9XKQorCisvKiBSb3VuZGluZyBtb2RlcyAqLworI2RlZmluZQlGRV9UT05FQVJFU1QJMHgwMDAwCisjZGVmaW5lCUZFX1RPV0FSRFpFUk8JMHgwMDAxCisjZGVmaW5lCUZFX1VQV0FSRAkweDAwMDIKKyNkZWZpbmUJRkVfRE9XTldBUkQJMHgwMDAzCisjZGVmaW5lCV9ST1VORF9NQVNLCShGRV9UT05FQVJFU1QgfCBGRV9ET1dOV0FSRCB8IFwKKwkJCSBGRV9VUFdBUkQgfCBGRV9UT1dBUkRaRVJPKQorLyogX19CRUdJTl9ERUNMUyAqLworCisvKiBEZWZhdWx0IGZsb2F0aW5nLXBvaW50IGVudmlyb25tZW50ICovCitleHRlcm4gY29uc3QgZmVudl90CV9fZmVfZGZsX2VudjsKKyNkZWZpbmUJRkVfREZMX0VOVgkoJl9fZmVfZGZsX2VudikKKworLyogV2UgbmVlZCB0byBiZSBhYmxlIHRvIG1hcCBzdGF0dXMgZmxhZyBwb3NpdGlvbnMgdG8gbWFzayBmbGFnIHBvc2l0aW9ucyAqLworI2RlZmluZSBfRlBVU1dfU0hJRlQJMTYKKyNkZWZpbmUJX0VOQUJMRV9NQVNLCShGRV9BTExfRVhDRVBUIDw8IF9GUFVTV19TSElGVCkKKworI2lmZGVmCUFSTV9IQVJEX0ZMT0FUCisjZGVmaW5lCV9fcmZzKF9fZnBzcikJX19hc20gX192b2xhdGlsZSgicmZzICUwIiA6ICI9ciIgKCooX19mcHNyKSkpCisjZGVmaW5lCV9fd2ZzKF9fZnBzcikJX19hc20gX192b2xhdGlsZSgid2ZzICUwIiA6IDogInIiIChfX2Zwc3IpKQorI2Vsc2UKKyNkZWZpbmUgX19yZnMoX19mcHNyKQorI2RlZmluZSBfX3dmcyhfX2Zwc3IpCisjZW5kaWYKKworc3RhdGljIF9faW5saW5lIGludAorZmVjbGVhcmV4Y2VwdChpbnQgX19leGNlcHRzKQoreworCWZleGNlcHRfdCBfX2Zwc3I7CisKKwlfX3JmcygmX19mcHNyKTsKKwlfX2Zwc3IgJj0gfl9fZXhjZXB0czsKKwlfX3dmcyhfX2Zwc3IpOworCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBfX2lubGluZSBpbnQKK2ZlZ2V0ZXhjZXB0ZmxhZyhmZXhjZXB0X3QgKl9fZmxhZ3AsIGludCBfX2V4Y2VwdHMpCit7CisJZmV4Y2VwdF90IF9fZnBzcjsKKworCV9fcmZzKCZfX2Zwc3IpOworCSpfX2ZsYWdwID0gX19mcHNyICYgX19leGNlcHRzOworCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBfX2lubGluZSBpbnQKK2Zlc2V0ZXhjZXB0ZmxhZyhjb25zdCBmZXhjZXB0X3QgKl9fZmxhZ3AsIGludCBfX2V4Y2VwdHMpCit7CisJZmV4Y2VwdF90IF9fZnBzcjsKKworCV9fcmZzKCZfX2Zwc3IpOworCV9fZnBzciAmPSB+X19leGNlcHRzOworCV9fZnBzciB8PSAqX19mbGFncCAmIF9fZXhjZXB0czsKKwlfX3dmcyhfX2Zwc3IpOworCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBfX2lubGluZSBpbnQKK2ZlcmFpc2VleGNlcHQoaW50IF9fZXhjZXB0cykKK3sKKwlmZXhjZXB0X3QgX19leCA9IF9fZXhjZXB0czsKKworCWZlc2V0ZXhjZXB0ZmxhZygmX19leCwgX19leGNlcHRzKTsJLyogWFhYICovCisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIF9faW5saW5lIGludAorZmV0ZXN0ZXhjZXB0KGludCBfX2V4Y2VwdHMpCit7CisJZmV4Y2VwdF90IF9fZnBzcjsKKworCV9fcmZzKCZfX2Zwc3IpOworCXJldHVybiAoX19mcHNyICYgX19leGNlcHRzKTsKK30KKworc3RhdGljIF9faW5saW5lIGludAorZmVnZXRyb3VuZCh2b2lkKQoreworCisJLyoKKwkgKiBBcHBhcmVudGx5LCB0aGUgcm91bmRpbmcgbW9kZSBpcyBzcGVjaWZpZWQgYXMgcGFydCBvZiB0aGUKKwkgKiBpbnN0cnVjdGlvbiBmb3JtYXQgb24gQVJNLCBzbyB0aGUgZHluYW1pYyByb3VuZGluZyBtb2RlIGlzCisJICogaW5kZXRlcm1pbmF0ZS4gIFNvbWUgRlBVcyBtYXkgZGlmZmVyLgorCSAqLworCXJldHVybiAoLTEpOworfQorCitzdGF0aWMgX19pbmxpbmUgaW50CitmZXNldHJvdW5kKGludCBfX3JvdW5kKQoreworCisJcmV0dXJuICgtMSk7Cit9CisKK3N0YXRpYyBfX2lubGluZSBpbnQKK2ZlZ2V0ZW52KGZlbnZfdCAqX19lbnZwKQoreworCisJX19yZnMoX19lbnZwKTsKKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgX19pbmxpbmUgaW50CitmZWhvbGRleGNlcHQoZmVudl90ICpfX2VudnApCit7CisJZmVudl90IF9fZW52OworCisJX19yZnMoJl9fZW52KTsKKwkqX19lbnZwID0gX19lbnY7CisJX19lbnYgJj0gfihGRV9BTExfRVhDRVBUIHwgX0VOQUJMRV9NQVNLKTsKKwlfX3dmcyhfX2Vudik7CisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIF9faW5saW5lIGludAorZmVzZXRlbnYoY29uc3QgZmVudl90ICpfX2VudnApCit7CisKKwlfX3dmcygqX19lbnZwKTsKKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgX19pbmxpbmUgaW50CitmZXVwZGF0ZWVudihjb25zdCBmZW52X3QgKl9fZW52cCkKK3sKKwlmZXhjZXB0X3QgX19mcHNyOworCisJX19yZnMoJl9fZnBzcik7CisJX193ZnMoKl9fZW52cCk7CisJZmVyYWlzZWV4Y2VwdChfX2Zwc3IgJiBGRV9BTExfRVhDRVBUKTsKKwlyZXR1cm4gKDApOworfQorCisjaWYgX19CU0RfVklTSUJMRQorCitzdGF0aWMgX19pbmxpbmUgaW50CitmZWVuYWJsZWV4Y2VwdChpbnQgX19tYXNrKQoreworCWZlbnZfdCBfX29sZF9mcHNyLCBfX25ld19mcHNyOworCisJX19yZnMoJl9fb2xkX2Zwc3IpOworCV9fbmV3X2Zwc3IgPSBfX29sZF9mcHNyIHwgKF9fbWFzayAmIEZFX0FMTF9FWENFUFQpIDw8IF9GUFVTV19TSElGVDsKKwlfX3dmcyhfX25ld19mcHNyKTsKKwlyZXR1cm4gKChfX29sZF9mcHNyID4+IF9GUFVTV19TSElGVCkgJiBGRV9BTExfRVhDRVBUKTsKK30KKworc3RhdGljIF9faW5saW5lIGludAorZmVkaXNhYmxlZXhjZXB0KGludCBfX21hc2spCit7CisJZmVudl90IF9fb2xkX2Zwc3IsIF9fbmV3X2Zwc3I7CisKKwlfX3JmcygmX19vbGRfZnBzcik7CisJX19uZXdfZnBzciA9IF9fb2xkX2Zwc3IgJiB+KChfX21hc2sgJiBGRV9BTExfRVhDRVBUKSA8PCBfRlBVU1dfU0hJRlQpOworCV9fd2ZzKF9fbmV3X2Zwc3IpOworCXJldHVybiAoKF9fb2xkX2Zwc3IgPj4gX0ZQVVNXX1NISUZUKSAmIEZFX0FMTF9FWENFUFQpOworfQorCitzdGF0aWMgX19pbmxpbmUgaW50CitmZWdldGV4Y2VwdCh2b2lkKQoreworCWZlbnZfdCBfX2Zwc3I7CisKKwlfX3JmcygmX19mcHNyKTsKKwlyZXR1cm4gKChfX2Zwc3IgJiBfRU5BQkxFX01BU0spID4+IF9GUFVTV19TSElGVCk7Cit9CisKKyNlbmRpZiAvKiBfX0JTRF9WSVNJQkxFICovCisKKy8qIF9fRU5EX0RFQ0xTICovCisKKyNlbmRpZgkvKiAhX0ZFTlZfSF8gKi8KKwpkaWZmIC0tZ2l0IGEvbGlibS9zaC9fZnBtYXRoLmggYi9saWJtL3NoL19mcG1hdGguaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjc1ZWM3Yi4uMDAwMDAwMAotLS0gYS9saWJtL3NoL19mcG1hdGguaAorKysgL2Rldi9udWxsCkBAIC0xLDU4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0LCBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogICBEZXJpdmVkIGZyb20gImJpb25pYy9saWJtL2FybS9fZnBtYXRoLmgiCi0gKiAgIENvcHlyaWdodCAoYykgMjAwMiwgMjAwMyBEYXZpZCBTY2h1bHR6IDxkYXNARnJlZUJTRC5PUkc+Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbgotICogICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwotICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKLSAqIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLSAqIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsCi0gKiBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MKLSAqIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRAotICogQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUCi0gKiBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLS8qCi0gKiBBc3N1bWVzIHRoYXQgJ2xvbmcgZG91YmxlJyBvbiBTSC1saW51eCBpcyBqdXN0IGFuIGFsaWFzIGZvciAnZG91YmxlJy4KLSAqLwotdW5pb24gSUVFRWwyYml0cyB7Ci0JbG9uZyBkb3VibGUJZTsKLQlzdHJ1Y3QgewotI2lmICBfX0JZVEVfT1JERVIgPT0gX19MSVRUTEVfRU5ESUFOCi0JCXVuc2lnbmVkIGludAltYW5sCTozMjsKLQkJdW5zaWduZWQgaW50CW1hbmgJOjIwOwotCQl1bnNpZ25lZCBpbnQJZXhwCToxMTsKLQkJdW5zaWduZWQgaW50CXNpZ24JOjE7Ci0jZWxpZiBfX0JZVEVfT1JERVIgPT0gX19CSUdfRU5ESUFOCi0JCXVuc2lnbmVkIGludAlzaWduCToxOwotCQl1bnNpZ25lZCBpbnQJZXhwCToxMTsKLQkJdW5zaWduZWQgaW50CW1hbmgJOjIwOwotCQl1bnNpZ25lZCBpbnQJbWFubAk6MzI7Ci0jZW5kaWYKLQl9IGJpdHM7Ci19OwotCi0vKgotICogTERCTF9OQklUIGlzIGEgbWFzayBpbmRpY2F0aW5nIHRoZSBwb3NpdGlvbiBvZiB0aGUgaW50ZWdlcgotICogYml0IGluIGEgbG9uZyBkb3VibGUuICBCdXQgU0g0IGRvZXMgbm90IHN1cHBvcnQgaXQuCi0gKi8KLSNkZWZpbmUJTERCTF9OQklUCTAKLSNkZWZpbmUJbWFza19uYml0X2wodSkJKCh2b2lkKTApCi0KLSNkZWZpbmUJTERCTF9NQU5IX1NJWkUJMjAKLSNkZWZpbmUJTERCTF9NQU5MX1NJWkUJMzIKZGlmZiAtLWdpdCBhL2xpYm0vc2gvZmVudi5jIGIvbGlibS9zaC9mZW52LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhOGY0NzYuLjAwMDAwMDAKLS0tIGEvbGlibS9zaC9mZW52LmMKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdCwgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqICAgRGVyaXZlZCBmcm9tICJiaW9uaWMvbGlibS9hcm0vZmVudi5jIgotICogICBDb3B5cmlnaHQgKGMpIDIwMDQgRGF2aWQgU2NodWx0eiA8ZGFzQEZyZWVCU0QuT1JHPgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KLSAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKLSAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCi0gKiBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAotICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTCi0gKiBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQKLSAqIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVAotICogT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi1sb25nIF9fZnBzY3JfdmFsdWVzWzJdID0geyAwTCwgMHg4MDAwMEwgfTsKZGlmZiAtLWdpdCBhL2xpYm0vc2gvZmVudi5oIGIvbGlibS9zaC9mZW52LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4NzJmNDcuLjAwMDAwMDAKLS0tIGEvbGlibS9zaC9mZW52LmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QsIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAgIERlcml2ZWQgZnJvbSAiYmlvbmljL2xpYm0vYXJtL2ZlbnYuaCIKLSAqICAgQ29weXJpZ2h0IChjKSAyMDA0LTIwMDUgRGF2aWQgU2NodWx0eiA8ZGFzQEZyZWVCU0QuT1JHPgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KLSAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKLSAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCi0gKiBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAotICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTCi0gKiBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQKLSAqIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVAotICogT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIF9GRU5WX0hfCi0jZGVmaW5lIF9GRU5WX0hfCi0KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotCi10eXBlZGVmCXVpbnQzMl90CWZlbnZfdDsKLXR5cGVkZWYJdWludDMyX3QJZmV4Y2VwdF90OwotCi0vKiBFeGNlcHRpb24gZmxhZ3MgKi8KLSNkZWZpbmUJRkVfSU5WQUxJRAkJMHgwMDEwCi0jZGVmaW5lCUZFX0RJVkJZWkVSTwkweDAwMDgKLSNkZWZpbmUJRkVfT1ZFUkZMT1cJCTB4MDAwNAotI2RlZmluZQlGRV9VTkRFUkZMT1cJMHgwMDAyCi0jZGVmaW5lCUZFX0lORVhBQ1QJCTB4MDAwMQotI2RlZmluZQlGRV9BTExfRVhDRVBUCShGRV9ESVZCWVpFUk8gfCBGRV9JTkVYQUNUIHwgXAotCQkJCSBGRV9JTlZBTElEIHwgRkVfT1ZFUkZMT1cgfCBGRV9VTkRFUkZMT1cpCi0KLS8qIFJvdW5kaW5nIG1vZGVzICovCi0jZGVmaW5lCUZFX1RPTkVBUkVTVAkweDAwMDAKLSNkZWZpbmUJRkVfVE9XQVJEWkVSTwkweDAwMDEKLSNkZWZpbmUJRkVfVVBXQVJECTB4MDAwMiAvKiBub3Qgc3VwcG9yZXRkICovCi0jZGVmaW5lCUZFX0RPV05XQVJECTB4MDAwMyAvKiBub3Qgc3VwcG9yZXRkICovCi0jZGVmaW5lCV9ST1VORF9NQVNLCShGRV9UT05FQVJFU1QgfCBGRV9ET1dOV0FSRCB8IFwKLQkJCQkgRkVfVVBXQVJEIHwgRkVfVE9XQVJEWkVSTykKLQotLyogYml0IHNoaWZ0IGZvciBGUFNDUiBtYXBwaW5nICovCi0jZGVmaW5lCV9GUFVFX0NBVVNFX1NISUZUCTEyCi0jZGVmaW5lCV9GUFVFX0VOQUJMRV9TSElGVAkxNwotI2RlZmluZQlfRlBVRV9GTEFHX1NISUZUCSAyCi0KLS8qIGJpdCBzaGlmdGVycyAqLwotI2RlZmluZQlfRlBVRV9DQVVTRShfRVhDUykJKChfRVhDUykgPDwgX0ZQVUVfQ0FVU0VfU0hJRlQpCi0jZGVmaW5lCV9GUFVFX0VOQUJMRShfRVhDUykJKChfRVhDUykgPDwgX0ZQVUVfRU5BQkxFX1NISUZUKQotI2RlZmluZQlfRlBVRV9GTEFHKF9FWENTKQkoKF9FWENTKSA8PCBfRlBVRV9GTEFHX1NISUZUKQotCi0jZGVmaW5lCV9HRVRfRlBVRV9DQVVTRShfRlBVRSkJCSgoKF9GUFVFKSA+PiBfRlBVRV9DQVVTRV9TSElGVCkgJiBGRV9BTExfRVhDRVBUKQotI2RlZmluZQlfR0VUX0ZQVUVfRU5BQkxFKF9GUFVFKQkoKChfRlBVRSkgPj4gX0ZQVUVfRU5BQkxFX1NISUZUKSYgRkVfQUxMX0VYQ0VQVCkKLSNkZWZpbmUJX0dFVF9GUFVFX0ZMQUcoX0ZQVUUpCQkoKChfRlBVRSkgPj4gX0ZQVUVfRkxBR19TSElGVCkgJiBGRV9BTExfRVhDRVBUKQotCi0KLS8qIEZQU0NSIHJlZ2lzdGVyIGFjY2Vzc29ycyAqLwotI2lmZGVmCV9fU0g0X05PRlBVX18KLSNkZWZpbmUJX19yZWFkX2Zwc2NyKF9wdHIpCi0jZGVmaW5lCV9fd3JpdGVfZnBzY3IoX3ZhbCkKLSNlbHNlCi0jZGVmaW5lCV9fcmVhZF9mcHNjcihfcHRyKQlfX2FzbSBfX3ZvbGF0aWxlKCJzdHMgZnBzY3IsICUwIiA6ICI9ciIgKCooX3B0cikpKQotI2RlZmluZQlfX3dyaXRlX2Zwc2NyKF92YWwpCV9fYXNtIF9fdm9sYXRpbGUoImxkcyAlMCwgZnBzY3IiIDogOiAiciIgKF92YWwpKQotI2VuZGlmCi0KLQotLyogZnVuY3Rpb25zIGZvciBsaWJtICovCi1zdGF0aWMgX19pbmxpbmUgaW50Ci1mZWNsZWFyZXhjZXB0KGludCBfX2V4Y2VwdHMpCi17Ci0JdWludDMyX3QgX19mcHNjcjsKLQotCV9fcmVhZF9mcHNjcigmX19mcHNjcik7Ci0JX19mcHNjciAmPSB+X0ZQVUVfRkxBRyhfX2V4Y2VwdHMpOwotCV9fd3JpdGVfZnBzY3IoX19mcHNjcik7Ci0JcmV0dXJuICgwKTsKLX0KLQotc3RhdGljIF9faW5saW5lIGludAotZmVnZXRleGNlcHRmbGFnKGZleGNlcHRfdCAqX19mbGFncCwgaW50IF9fZXhjZXB0cykKLXsKLQl1aW50MzJfdCBfX2Zwc2NyOwotCi0JX19yZWFkX2Zwc2NyKCZfX2Zwc2NyKTsKLQkqX19mbGFncCA9IF9HRVRfRlBVRV9GTEFHKF9fZnBzY3IpICYgX19leGNlcHRzOwotCXJldHVybiAoMCk7Ci19Ci0KLQotc3RhdGljIF9faW5saW5lIGludAotZmVzZXRleGNlcHRmbGFnKGNvbnN0IGZleGNlcHRfdCAqX19mbGFncCwgaW50IF9fZXhjZXB0cykKLXsKLQl1aW50MzJfdCBfX2Zwc2NyOwotCi0JX19yZWFkX2Zwc2NyKCZfX2Zwc2NyKTsKLQlfX2Zwc2NyICY9IH5fRlBVRV9GTEFHKF9fZXhjZXB0cyk7Ci0JX19mcHNjciB8PSB+X0ZQVUVfRkxBRygqX19mbGFncCAmIF9fZXhjZXB0cyk7Ci0JX193cml0ZV9mcHNjcihfX2Zwc2NyKTsKLQlyZXR1cm4gKDApOwotfQotCi0KLXN0YXRpYyBfX2lubGluZSBpbnQKLWZlcmFpc2VleGNlcHQoaW50IF9fZXhjZXB0cykKLXsKLQlmZXhjZXB0X3QgX19leCA9IF9fZXhjZXB0czsKLQotCWZlc2V0ZXhjZXB0ZmxhZygmX19leCwgX19leGNlcHRzKTsJLyogWFhYICovCi0JcmV0dXJuICgwKTsKLX0KLQotCi1zdGF0aWMgX19pbmxpbmUgaW50Ci1mZXRlc3RleGNlcHQoaW50IF9fZXhjZXB0cykKLXsKLQlmZXhjZXB0X3QgX19leDsKLQotCWZlZ2V0ZXhjZXB0ZmxhZygmX19leCwgIF9fZXhjZXB0cyk7Ci0JcmV0dXJuIChfX2V4KTsKLX0KLQotCi1zdGF0aWMgX19pbmxpbmUgaW50Ci1mZWdldHJvdW5kKHZvaWQpCi17Ci0JdWludDMyX3QgX19mcHNjciA9IDA7Ci0KLQlfX3JlYWRfZnBzY3IoJl9fZnBzY3IpOwotCXJldHVybiAoX19mcHNjciAmIF9ST1VORF9NQVNLKTsJCi19Ci0KLXN0YXRpYyBfX2lubGluZSBpbnQKLWZlc2V0cm91bmQoaW50IF9fcm91bmQpCi17Ci0JdWludDMyX3QgX19mcHNjciA9IDA7Ci0KLQlpZiAoX19yb3VuZCA9PSBGRV9VUFdBUkQgfHwgX19yb3VuZCA9PSBGRV9ET1dOV0FSRCkgewotCQlmcHJpbnRmKHN0ZGVyciwgImxpYm0gc3VwZXJoIDogIgotCQkJInVwd2FyZC9kb3dud2FyZCByb3VuZGluZyBub3Qgc3VwcG9yZXRkLlxuIik7Ci0JCXJldHVybiAtMTsKLQl9Ci0KLQlfX3JlYWRfZnBzY3IoJl9fZnBzY3IpOwotCV9fZnBzY3IgJj0gfl9ST1VORF9NQVNLOwotCV9fZnBzY3IgfD0gKF9fcm91bmQgJiBfUk9VTkRfTUFTSyk7Ci0JX193cml0ZV9mcHNjcihfX2Zwc2NyKTsKLQlyZXR1cm4gKDApOwotfQotCi1zdGF0aWMgX19pbmxpbmUgaW50Ci1mZWdldGVudihmZW52X3QgKl9fZW52cCkKLXsKLQlfX3JlYWRfZnBzY3IoX19lbnZwKTsKLQlyZXR1cm4gKDApOwotfQotCi1zdGF0aWMgX19pbmxpbmUgaW50Ci1mZWhvbGRleGNlcHQoZmVudl90ICpfX2VudnApCi17Ci0JdWludDMyX3QgX19mcHNjcjsKLQotCV9fcmVhZF9mcHNjcigmX19mcHNjcik7Ci0JKl9fZW52cCA9IF9fZnBzY3I7Ci0JX19mcHNjciAmPSB+X0ZQVUVfRkxBRyhGRV9BTExfRVhDRVBUKTsKLQlfX3dyaXRlX2Zwc2NyKF9fZnBzY3IpOwotCXJldHVybiAoMCk7Ci19Ci0KLQotc3RhdGljIF9faW5saW5lIGludAotZmVzZXRlbnYoY29uc3QgZmVudl90ICpfX2VudnApCi17Ci0JX193cml0ZV9mcHNjcigqX19lbnZwKTsKLQlyZXR1cm4gKDApOwotfQotCi0KLXN0YXRpYyBfX2lubGluZSBpbnQKLWZldXBkYXRlZW52KGNvbnN0IGZlbnZfdCAqX19lbnZwKQotewotCXVpbnQzMl90IF9fZnBzY3I7Ci0KLQlfX3JlYWRfZnBzY3IoJl9fZnBzY3IpOwotCV9fd3JpdGVfZnBzY3IoKl9fZW52cCk7Ci0JZmVyYWlzZWV4Y2VwdChfR0VUX0ZQVUVfRkxBRyhfX2Zwc2NyKSk7Ci0JcmV0dXJuICgwKTsKLX0KLQotI2lmIF9fQlNEX1ZJU0lCTEUKLQotc3RhdGljIF9faW5saW5lIGludAotZmVlbmFibGVleGNlcHQoaW50IF9fbWFzaykKLXsKLQl1aW50MzJfdCBfX29sZF9mcHNjciwgX19uZXdfZnBzY3I7Ci0KLQlfX3JlYWRfZnBzY3IoJl9fb2xkX2Zwc2NyKTsKLQlfX25ld19mcHNjciA9IF9fb2xkX2Zwc2NyIHwgX0ZQVUVfRU5BQkxFKF9fbWFzayAmIEZFX0FMTF9FWENFUFQpOwotCV9fd3JpdGVfZnBzY3IoX19uZXdfZnBzY3IpOwotCXJldHVybiAoX0dFVF9GUFVFX0VOQUJMRShfX29sZF9mcHNjcikpOwotfQotCi1zdGF0aWMgX19pbmxpbmUgaW50Ci1mZWRpc2FibGVleGNlcHQoaW50IF9fbWFzaykKLXsKLQl1aW50MzJfdCBfX29sZF9mcHNjciwgX19uZXdfZnBzY3I7Ci0KLQlfX3JlYWRfZnBzY3IoJl9fb2xkX2Zwc2NyKTsKLQlfX25ld19mcHNjciA9IF9fb2xkX2Zwc2NyICYgfihfRlBVRV9FTkFCTEUoX19tYXNrICYgRkVfQUxMX0VYQ0VQVCkpOwotCV9fd3JpdGVfZnBzY3IoX19uZXdfZnBzY3IpOwotCXJldHVybiAoX0dFVF9GUFVFX0VOQUJMRShfX29sZF9mcHNjcikpOwotfQotCi1zdGF0aWMgX19pbmxpbmUgaW50Ci1mZWdldGV4Y2VwdCh2b2lkKQotewotCXVpbnQzMl90IF9fZnBzY3I7Ci0KLQlfX3JlYWRfZnBzY3IoJl9fZnBzY3IpOwotCXJldHVybiAoX0dFVF9GUFVFX0VOQUJMRShfX2Zwc2NyKSk7Ci19Ci0KLSNlbmRpZiAvKiBfX0JTRF9WSVNJQkxFICovCi0KLQotI2VuZGlmIC8qIF9GRU5WX0hfICovCi0KZGlmZiAtLWdpdCBhL2xpYm0vc3JjL3NfZmFic2wuYyBiL2xpYm0vc3JjL3NfZmFic2wuYwppbmRleCAyMDBhOWE1Li4yOTgzMWQyIDEwMDY0NAotLS0gYS9saWJtL3NyYy9zX2ZhYnNsLmMKKysrIGIvbGlibS9zcmMvc19mYWJzbC5jCkBAIC0xLDUgKzEsNSBAQAogLyotCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDMgRGFnLUVybGluZyBDb+9kYW4gU234cmdyYXYKKyAqIENvcHlyaWdodCAoYykgMjAwMyBEYWctRXJsaW5nIFNtw7hyZ3JhdgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI1LDcgKzI1LDcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqCi0gKiAkRnJlZUJTRDogc3JjL2xpYi9tc3VuL3NyYy9zX2ZhYnNsLmMsdiAxLjIgMjAwMy8xMC8yNSAxOTo1MzoyOCBkZXMgRXhwICQKKyAqICRGcmVlQlNEJAogICovCiAKICNpbmNsdWRlIDxtYXRoLmg+CmRpZmYgLS1naXQgYS9saWJ0aHJlYWRfZGIvbGlidGhyZWFkX2RiLmMgYi9saWJ0aHJlYWRfZGIvbGlidGhyZWFkX2RiLmMKaW5kZXggODZlMWNmNC4uZTc0OTM3NyAxMDA2NDQKLS0tIGEvbGlidGhyZWFkX2RiL2xpYnRocmVhZF9kYi5jCisrKyBiL2xpYnRocmVhZF9kYi9saWJ0aHJlYWRfZGIuYwpAQCAtOTksNyArOTksNyBAQAogICAgICAgICBnRXZlbnRNc2dIYW5kbGUudGlkID0gZ0V2ZW50TXNnSGFuZGxlLnBpZDsKICAgICAgICAgcmV0dXJuIDB4NDI7CiAgICAgfQotI2Vsc2UKKyNlbGlmIGRlZmluZWQoX19hcm1fXykKICAgICBwYyA9ICh2b2lkICopcHRyYWNlKFBUUkFDRV9QRUVLVVNSLCBoYW5kbGUtPnRpZCwgKHZvaWQgKik2MCAvKiByMTUvcGMgKi8sIE5VTEwpOwogCiAgICAgaWYgKHBjID09IGJrcHRfYWRkcikgewpAQCAtMTA5LDYgKzEwOSwxNSBAQAogICAgICAgICBnRXZlbnRNc2dIYW5kbGUudGlkID0gZ0V2ZW50TXNnSGFuZGxlLnBpZDsKICAgICAgICAgcmV0dXJuIDB4NDI7CiAgICAgfQorI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKyAgICBwYyA9ICh2b2lkICopcHRyYWNlKFBUUkFDRV9QRUVLVVNSLCBoYW5kbGUtPnRpZCwgKHZvaWQgKikoNjQqNCkgLyogcGMgKi8sIE5VTEwpOworICAgIGlmIChwYyA9PSBia3B0X2FkZHIpIHsKKyAgICAgICAgLy8gVGhlIGhvb2sgZnVuY3Rpb24gdGFrZXMgdGhlIGlkIG9mIHRoZSBuZXcgdGhyZWFkIGFzIGl0J3MgZmlyc3QgcGFyYW0sCisgICAgICAgIC8vIHNvIGdyYWIgaXQgZnJvbSBhMAorICAgICAgICBnRXZlbnRNc2dIYW5kbGUucGlkID0gcHRyYWNlKFBUUkFDRV9QRUVLVVNSLCBoYW5kbGUtPnRpZCwgKHZvaWQgKikoNCo0KSAvKiBhMCAqLywgTlVMTCk7CisgICAgICAgIGdFdmVudE1zZ0hhbmRsZS50aWQgPSBnRXZlbnRNc2dIYW5kbGUucGlkOworICAgICAgICByZXR1cm4gMHg0MjsKKyAgICB9CiAjZW5kaWYKICAgICByZXR1cm4gMDsKIH0K