LyoKICogKEMpIENvcHlyaWdodCAyMDAyCiAqIERhbmllbCBFbmdzdHL2bSwgT21pY3JvbiBDZXRpIEFCLCBkYW5pZWxAb21pY3Jvbi5zZQogKgogKiBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcwogKiBwcm9qZWN0LgogKgogKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCiAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAogKiBNQSAwMjExMS0xMzA3IFVTQQogKi8KCi8qCiAqIHg4NiByZWFsbW9kZSBhc3NlbWJseSBpbXBsZW1lbnRhdGlvbiBvZiBhIFBDSSBCSU9TCiAqIGZvciBwbGF0Zm9ybXMgdGhhdCB1c2Ugb25lIFBDSSBob3NlIGFuZCBjb25maWd1cmF0aW9uCiAqIGFjY2VzcyB0eXBlIDEuIChUaGUgY29tbW9uIGNhc2UgZm9yIGxvdy1lbmQgUEMncykKICovCgojaW5jbHVkZSAiYmlvcy5oIgoKI2RlZmluZSBQQ0lfQklPU19ERUJVRwoKLnNlY3Rpb24gLmJpb3MsICJheCIKLmNvZGUxNgouZ2xvYmwgcmVhbG1vZGVfcGNpX2Jpb3NfY2FsbF9lbnRyeQpyZWFsbW9kZV9wY2lfYmlvc19jYWxsX2VudHJ5OgoJTUFLRV9CSU9TX1NUQUNLCgljYWxsIHJlYWxtb2RlX3BjaV9iaW9zCglSRVNUT1JFX0NBTExFUlNfU1RBQ0sKCXJldAoKCi5nbG9ibCByZWFsbW9kZV9wY2lfYmlvcwpyZWFsbW9kZV9wY2lfYmlvczoKZ3MJbW92dwlPRkZTX0FYKCVicCksICVheAoJY21wYgkkMSwgJWFsCglqZQlwY2lfYmlvc19wcmVzZW50CgljbXBiCSQyLCAlYWwKCWplCXBjaV9iaW9zX2ZpbmRfZGV2aWNlCgljbXBiCSQzLCAlYWwKCWplCXBjaV9iaW9zX2ZpbmRfY2xhc3MKCWNtcGIJJDYsICVhbAoJamUJcGNpX2Jpb3NfZ2VuZXJhdGVfc3BlY2lhbF9jeWNsZQoJY21wYgkkOCwgJWFsCglqZQlwY2lfYmlvc19yZWFkX2NmZ19ieXRlCgljbXBiCSQ5LCAlYWwKCWplCXBjaV9iaW9zX3JlYWRfY2ZnX3dvcmQKCWNtcGIJJDEwLCAlYWwKCWplCXBjaV9iaW9zX3JlYWRfY2ZnX2R3b3JkCgljbXBiCSQxMSwgJWFsCglqZQlwY2lfYmlvc193cml0ZV9jZmdfYnl0ZQoJY21wYgkkMTIsICVhbAoJamUJcGNpX2Jpb3Nfd3JpdGVfY2ZnX3dvcmQKCWNtcGIJJDEzLCAlYWwKCWplCXBjaV9iaW9zX3dyaXRlX2NmZ19kd29yZAoJY21wYgkkMTQsICVhbAoJamUJcGNpX2Jpb3NfZ2V0X2lycV9yb3V0aW5nCgljbXBiCSQxNSwgJWFsCglqZQlwY2lfYmlvc19zZXRfaXJxCglqbXAJdW5rbm93bl9mdW5jdGlvbgoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKcGNpX2Jpb3NfcHJlc2VudDoKI2lmZGVmIFBDSV9CSU9TX0RFQlVHCmNzCWluY2wJbnVtX3BjaV9iaW9zX3ByZXNlbnQKI2VuZGlmCgltb3ZsCSQweDIwNDk0MzUwLCAlZWF4CmdzCW1vdmwJJWVheCwgT0ZGU19FRFgoJWJwKQoJbW92YgkkMHgwMSwgJWFsCmdzCW1vdmIJJWFsLCBPRkZTX0FMKCVicCkJLyogV2Ugc3VwcG9ydCBjZmcgdHlwZSAxICovCgltb3Z3CSQweDAyMTAsICVheCAgICAgICAgICAgIC8qIHZlcnNpb24gMi4xMCAqLwpncwltb3Z3CSVheCwgT0ZGU19CWCglYnApCmNzCW1vdmIJcGNpX2xhc3RfYnVzLCAlYWwgICAgICAgLyogbGFzdCBidXMgbnVtYmVyICovCmdzCW1vdmIJJWFsLCBPRkZTX0NMKCVicCkKCWptcCAJY2xlYXJfY2FycnkKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qIGRldmljZSAwLTMxLCBmdW5jdGlvbiAwLTcgKi8KcGNpX2Jpb3NfZmluZF9kZXZpY2U6CiNpZmRlZiBQQ0lfQklPU19ERUJVRwpjcwlpbmNsIAludW1fcGNpX2Jpb3NfZmluZF9kZXZpY2UKI2VuZGlmCmdzCW1vdncJT0ZGU19DWCglYnApLCAlZGkKCXNobGwJJDE2LCAlZWRpCmdzCW1vdncJT0ZGU19EWCglYnApLCAlZGkgICAgICAgLyogZWRpIG5vdyBob2xkcyBkZXZpY2UgaW4gdXBwZXIgMTYKCQkJCQkgKiBiaXRzIGFuZCB2ZW5kb3IgaW4gbG93ZXIgMTYgYml0cyAqLwpncwltb3Z3CU9GRlNfU0koJWJwKSwgJXNpCgl4b3J3CSVieCwgJWJ4ICAgICAgICAgICAgICAgIC8qIHN0YXJ0IGF0IGJ1cyAwIGRldiAwIGZ1bmN0aW9uIDAgKi8KcGZkX2xvb3A6Cgl4b3J3CSVheCwgJWF4CQkvKiBkd29yZCAwIGlzIHZlbmRvci9kZXZpY2UgKi8KCWNhbGwJX19wY2lfYmlvc19zZWxlY3RfcmVnaXN0ZXIKCW1vdncJJDB4Y2ZjLCAlZHgKCWlubAklZHgsICVlYXgKCWNtcGwJJWVkaSwgJWVheAkJLyogb3VyIGRldmljZSA/ICovCglqZQlwZmRfZm91bmRfb25lCnBmZF9uZXh0X2RldjoKCS8qIGNoZWNrIGZvciBtdWx0aSBmdW5jdGlvbiBkZXZpY2VzICovCgltb3Z3CSVieCwgJWF4CglhbmR3CSQzLCAlYXgKCWpueglwZmRfZnVuY3Rpb25fbm90X3plcm8KCW1vdncJJDB4MDAwYywgJWF4CgljYWxsCV9fcGNpX2Jpb3Nfc2VsZWN0X3JlZ2lzdGVyCgltb3Z3CSQweGNmZSwgJWR4CglpbmIJJWR4LCAlYWwKCWFuZGIJJDB4ODAsICVhbAoJanoJcGZkX25vdF9tdWx0aV9mdW5jdGlvbgpwZmRfZnVuY3Rpb25fbm90X3plcm86CglpbmN3CSVieAkJCS8qIG5leHQgZnVuY3Rpb24sIG92ZXJmbG93cyBpbiB0bwoJCQkJCSAqIGRldmljZSBudW1iZXIsIHRoZW4gYnVzIG51bWJlciAqLwoJam1wCXBmZF9jaGVja19idXMKCnBmZF9ub3RfbXVsdGlfZnVuY3Rpb246CglhbmR3CSQweGZmZjgsICVieCAgICAgICAgICAgIC8qIHJlbW92ZSBmdW5jdGlvbiBiaXRzICovCglhZGR3CSQweDAwMDgsICVieCAgICAgICAgICAgIC8qIG5leHQgZGV2aWNlLCBvdmVyZmxvd3MgaW4gdG8gYnVzIG51bWJlciAqLwpwZmRfY2hlY2tfYnVzOgpjcwltb3ZiCXBjaV9sYXN0X2J1cywgJWFoCgljbXBiCSVhaCwgJWJoCglqYQlwZmRfbm90X2ZvdW5kCglqbXAJcGZkX2xvb3AKcGZkX2ZvdW5kX29uZToKCWRlY3cJJXNpCglqcwlwZmRfZG9uZQoJam1wCXBmZF9uZXh0X2RldgoKcGZkX2RvbmU6CmdzCW1vdncJJWJ4LCBPRkZTX0JYKCVicCkKCWptcAljbGVhcl9jYXJyeQoKcGZkX25vdF9mb3VuZDoKCW1vdmIJJDB4ODYsICVhaCAgICAgICAgICAgICAgLyogZGV2aWNlIG5vdCBmb3VuZCAqLwoJam1wCXNldF9jYXJyeQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKcGNpX2Jpb3NfZmluZF9jbGFzczoKI2lmZGVmIFBDSV9CSU9TX0RFQlVHCmNzCWluY2wJbnVtX3BjaV9iaW9zX2ZpbmRfY2xhc3MKI2VuZGlmCmdzCW1vdmwJT0ZGU19FQ1goJWJwKSwgJWVkaQoJYW5kbAkkMHgwMGZmZmZmZiwgJWVkaSAgICAgICAvKiBlZGkgbm93IGhvbGRzIGNsYXNzLWNvZGUgaW4gbG93ZXIgMjQgYml0cyAqLwpncwltb3Z3CU9GRlNfU0koJWJwKSwgJXNpCgl4b3J3CSVieCwgJWJ4ICAgICAgICAgICAgICAgIC8qIHN0YXJ0IGF0IGJ1cyAwIGRldiAwIGZ1bmN0aW9uIDAgKi8KcGZjX2xvb3A6Cgltb3Z3CSQ4LCAlYXgJCQkvKiBkd29yZCA4IGlzIGNsYXNzLWNvZGUgaGlnaCAyNGJpdHMgKi8KCWNhbGwJX19wY2lfYmlvc19zZWxlY3RfcmVnaXN0ZXIKCW1vdncJJDB4Y2ZjLCAlZHgKCWlubAklZHgsICVlYXgKCXNocmwJJDgsICVlYXgKCWFuZGwJJDB4MDBmZmZmZmYsICVlYXgKCWNtcGwJJWVkaSwgJWVheAkJLyogb3VyIGRldmljZSA/ICovCglqZQlwZmNfZm91bmRfb25lCnBmY19uZXh0X2RldjoKCS8qIGNoZWNrIGZvciBtdWx0aSBmdW5jdGlvbiBkZXZpY2VzICovCglhbmR3CSQzLCAlYngKCWpueglwZmNfZnVuY3Rpb25fbm90X3plcm8KCW1vdncJJDB4MDAwYywgJWF4CgljYWxsCV9fcGNpX2Jpb3Nfc2VsZWN0X3JlZ2lzdGVyCgltb3Z3CSQweGNmZSwgJWR4CglpbmIJJWR4LCAlYWwKCWFuZGIJJDB4ODAsICVhbAoJanoJcGZjX25vdF9tdWx0aV9mdW5jdGlvbgpwZmNfZnVuY3Rpb25fbm90X3plcm86CglpbmN3CSVieAkJCS8qIG5leHQgZnVuY3Rpb24sIG92ZXJmbG93cyBpbiB0bwoJCQkJCSAqIGRldmljZSBudW1iZXIsIHRoZW4gYnVzIG51bWJlciAqLwoJam1wCXBmY19jaGVja19idXMKCnBmY19ub3RfbXVsdGlfZnVuY3Rpb246CglhbmR3CSQweGZmZjgsICVieCAgICAgICAgICAgIC8qIHJlbW92ZSBmdW5jdGlvbiBiaXRzICovCglhZGR3CSQweDAwMDgsICVieCAgICAgICAgICAgIC8qIG5leHQgZGV2aWNlLCBvdmVyZmxvd3MgaW4gdG8gYnVzIG51bWJlciAqLwpwZmNfY2hlY2tfYnVzOgpjcwltb3ZiCXBjaV9sYXN0X2J1cywgJWFoCgljbXBiCSVhaCwgJWJoCglqYQlwZmNfbm90X2ZvdW5kCglqbXAJcGZjX2xvb3AKcGZjX2ZvdW5kX29uZToKCWRlY3cJJXNpCglqcwlwZmNfZG9uZQoJam1wCXBmY19uZXh0X2RldgoKcGZjX2RvbmU6CmdzCW1vdncJJWJ4LCBPRkZTX0JYKCVicCkKCWptcAljbGVhcl9jYXJyeQoKcGZjX25vdF9mb3VuZDoKCW1vdmIJJDB4ODYsICVhaCAgICAgICAgICAgICAgLyogZGV2aWNlIG5vdCBmb3VuZCAqLwoJam1wCXNldF9jYXJyeQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKcGNpX2Jpb3NfZ2VuZXJhdGVfc3BlY2lhbF9jeWNsZToKI2lmZGVmIFBDSV9CSU9TX0RFQlVHCmNzCWluY2wJbnVtX3BjaV9iaW9zX2dlbmVyYXRlX3NwZWNpYWxfY3ljbGUKI2VuZGlmCgltb3ZiCSQweDgxLCAlYWggICAgICAgICAgICAgIC8qIGZ1bmN0aW9uIG5vdCBzdXBwb3J0ZWQgKi8KCWptcAlzZXRfY2FycnkKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCnBjaV9iaW9zX3JlYWRfY2ZnX2J5dGU6CiNpZmRlZiBQQ0lfQklPU19ERUJVRwpjcwlpbmNsCW51bV9wY2lfYmlvc19yZWFkX2NmZ19ieXRlCiNlbmRpZgoJY2FsbAlwY2lfYmlvc19zZWxlY3RfcmVnaXN0ZXIKZ3MJbW92dyAJT0ZGU19ESSglYnApLCAlZHgKCWFuZHcJJDMsICVkeAoJYWRkdwkkMHhjZmMsICVkeAoJaW5iCSVkeCwgJWFsCmdzCW1vdmIJJWFsLCBPRkZTX0NMKCVicCkKCWptcCAJY2xlYXJfY2FycnkKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCnBjaV9iaW9zX3JlYWRfY2ZnX3dvcmQ6CiNpZmRlZiBQQ0lfQklPU19ERUJVRwpjcwlpbmNsCW51bV9wY2lfYmlvc19yZWFkX2NmZ193b3JkCiNlbmRpZgoJY2FsbAlwY2lfYmlvc19zZWxlY3RfcmVnaXN0ZXIKZ3MJbW92dyAJT0ZGU19ESSglYnApLCAlZHgKCWFuZHcJJDIsICVkeAoJYWRkdwkkMHhjZmMsICVkeAoJaW53CSVkeCwgJWF4CmdzCW1vdncJJWF4LCBPRkZTX0NYKCVicCkKCWptcCAJY2xlYXJfY2FycnkKCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgpwY2lfYmlvc19yZWFkX2NmZ19kd29yZDoKI2lmZGVmIFBDSV9CSU9TX0RFQlVHCmNzCWluY2wJbnVtX3BjaV9iaW9zX3JlYWRfY2ZnX2R3b3JkCiNlbmRpZgoJY2FsbAlwY2lfYmlvc19zZWxlY3RfcmVnaXN0ZXIKCW1vdncJJDB4Y2ZjLCAlZHgKCWlubAklZHgsICVlYXgKZ3MJbW92bAklZWF4LCBPRkZTX0VDWCglYnApCglqbXAgCWNsZWFyX2NhcnJ5CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgpwY2lfYmlvc193cml0ZV9jZmdfYnl0ZToKI2lmZGVmIFBDSV9CSU9TX0RFQlVHCmNzCWluY2wJbnVtX3BjaV9iaW9zX3dyaXRlX2NmZ19ieXRlCiNlbmRpZgoJY2FsbAlwY2lfYmlvc19zZWxlY3RfcmVnaXN0ZXIKZ3MJbW92dyAJT0ZGU19ESSglYnApLCAlZHgKZ3MJbW92YglPRkZTX0NMKCVicCksICVhbAoJYW5kdwkkMywgJWR4CglhZGR3CSQweGNmYywgJWR4CglvdXRiCSVhbCwgJWR4CglqbXAgCWNsZWFyX2NhcnJ5CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgpwY2lfYmlvc193cml0ZV9jZmdfd29yZDoKI2lmZGVmIFBDSV9CSU9TX0RFQlVHCmNzCWluY2wJbnVtX3BjaV9iaW9zX3dyaXRlX2NmZ193b3JkCiNlbmRpZgoJY2FsbAlwY2lfYmlvc19zZWxlY3RfcmVnaXN0ZXIKZ3MJbW92dyAJT0ZGU19ESSglYnApLCAlZHgKZ3MJbW92dwlPRkZTX0NYKCVicCksICVheAoJYW5kdwkkMiwgJWR4CglhZGR3CSQweGNmYywgJWR4CglvdXR3CSVheCwgJWR4CglqbXAgCWNsZWFyX2NhcnJ5CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgpwY2lfYmlvc193cml0ZV9jZmdfZHdvcmQ6CiNpZmRlZiBQQ0lfQklPU19ERUJVRwpjcwlpbmNsCW51bV9wY2lfYmlvc193cml0ZV9jZmdfZHdvcmQKI2VuZGlmCgljYWxsCXBjaV9iaW9zX3NlbGVjdF9yZWdpc3Rlcgpncwltb3ZsCU9GRlNfRUNYKCVicCksICVlYXgKCW1vdncJJDB4Y2ZjLCAlZHgKCW91dGwJJWVheCwgJWR4CglqbXAgCWNsZWFyX2NhcnJ5CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgpwY2lfYmlvc19nZXRfaXJxX3JvdXRpbmc6CiNpZmRlZiBQQ0lfQklPU19ERUJVRwpjcwlpbmNsCW51bV9wY2lfYmlvc19nZXRfaXJxX3JvdXRpbmcKI2VuZGlmCgltb3ZiCSQweDgxLCAlYWggICAgICAgICAgICAgIC8qIGZ1bmN0aW9uIG5vdCBzdXBwb3J0ZWQgKi8KCWptcAlzZXRfY2FycnkKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCnBjaV9iaW9zX3NldF9pcnE6CiNpZmRlZiBQQ0lfQklPU19ERUJVRwpjcwlpbmNsCW51bV9wY2lfYmlvc19zZXRfaXJxCiNlbmRpZgoJbW92YgkkMHg4MSwgJWFoICAgICAgICAgICAgICAvKiBmdW5jdGlvbiBub3Qgc3VwcG9ydGVkICovCglqbXAJc2V0X2NhcnJ5CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgp1bmtub3duX2Z1bmN0aW9uOgojaWZkZWYgUENJX0JJT1NfREVCVUcKY3MJaW5jbAludW1fcGNpX2Jpb3NfdW5rbm93bl9mdW5jdGlvbgojZW5kaWYKCW1vdmIJJDB4ODEsICVhaCAgICAgICAgICAgICAgLyogZnVuY3Rpb24gbm90IHN1cHBvcnRlZCAqLwoJam1wCXNldF9jYXJyeQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKcGNpX2Jpb3Nfc2VsZWN0X3JlZ2lzdGVyOgpncwltb3Z3IAlPRkZTX0JYKCVicCksICVieApncwltb3Z3IAlPRkZTX0RJKCVicCksICVheAovKiBkZXN0cm95cyBlYXgsIGR4ICovCl9fcGNpX2Jpb3Nfc2VsZWN0X3JlZ2lzdGVyOiAgICAgICAgICAgICAgIC8qIEJYIGhvbGRzIGRldmljZSBpZCwgQVggaG9sZHMgcmVnaXN0ZXIgaW5kZXggKi8KCXB1c2hsCSVlYngKCWFuZGwJJDB4ZmMsICVlYXgKCWFuZGwJJDB4ZmZmZiwgJWVieAoJc2hsbAkkOCwgJWVieAoJb3JsCSVlYngsICVlYXgKCW9ybAkkMHg4MDAwMDAwMCwgJWVheAoJbW92dwkkMHhjZjgsICVkeAoJb3V0bAklZWF4LCAlZHgKCXBvcGwJJWVieAoJcmV0CgoKY2xlYXJfY2Fycnk6CmdzCW1vdncJT0ZGU19GTEFHUyglYnApLCAlYXgKCWFuZHcJJDB4ZmZmZSwgJWF4CQkJLyogY2xlYXIgY2FycnkgLS0gZnVuY3Rpb24gc3VjY2VlZGVkICovCmdzCW1vdncJJWF4LCBPRkZTX0ZMQUdTKCVicCkKCXhvcncJJWF4LCAlYXgKZ3MJbW92YgklYWgsIE9GRlNfQUgoJWJwKQoJcmV0CgpzZXRfY2Fycnk6CmdzCW1vdmIJJWFoLCBPRkZTX0FIKCVicCkKZ3MJbW92dwlPRkZTX0ZMQUdTKCVicCksICVheAoJb3J3CSQxLCAlYXgJCQkJLyogcmV0dXJuIGNhcnJ5IC0tIGZ1bmN0aW9uIG5vdCBzdXBwb3J0ZWQgKi8KZ3MJbW92dwklYXgsIE9GRlNfRkxBR1MoJWJwKQoJbW92dwkkLTEsICVheAoJcmV0CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgouZ2xvYmwgcGNpX2xhc3RfYnVzCnBjaV9sYXN0X2J1czoKCS5ieXRlIAkwCgojaWZkZWYgUENJX0JJT1NfREVCVUcKLmdsb2JsIG51bV9wY2lfYmlvc19wcmVzZW50Cm51bV9wY2lfYmlvc19wcmVzZW50OgoJLmxvbmcgCTAKCi5nbG9ibCBudW1fcGNpX2Jpb3NfZmluZF9kZXZpY2UKbnVtX3BjaV9iaW9zX2ZpbmRfZGV2aWNlOgoJLmxvbmcgCTAKCi5nbG9ibCBudW1fcGNpX2Jpb3NfZmluZF9jbGFzcwpudW1fcGNpX2Jpb3NfZmluZF9jbGFzczoKCS5sb25nIAkwCgouZ2xvYmwgbnVtX3BjaV9iaW9zX2dlbmVyYXRlX3NwZWNpYWxfY3ljbGUKbnVtX3BjaV9iaW9zX2dlbmVyYXRlX3NwZWNpYWxfY3ljbGU6CgkubG9uZyAwCgouZ2xvYmwgbnVtX3BjaV9iaW9zX3JlYWRfY2ZnX2J5dGUKbnVtX3BjaV9iaW9zX3JlYWRfY2ZnX2J5dGU6CgkubG9uZyAJMAoKLmdsb2JsIG51bV9wY2lfYmlvc19yZWFkX2NmZ193b3JkCm51bV9wY2lfYmlvc19yZWFkX2NmZ193b3JkOgoJLmxvbmcgCTAKCi5nbG9ibCBudW1fcGNpX2Jpb3NfcmVhZF9jZmdfZHdvcmQKbnVtX3BjaV9iaW9zX3JlYWRfY2ZnX2R3b3JkOgoJLmxvbmcgCTAKCi5nbG9ibCBudW1fcGNpX2Jpb3Nfd3JpdGVfY2ZnX2J5dGUKbnVtX3BjaV9iaW9zX3dyaXRlX2NmZ19ieXRlOgoJLmxvbmcgCTAKCi5nbG9ibCBudW1fcGNpX2Jpb3Nfd3JpdGVfY2ZnX3dvcmQKbnVtX3BjaV9iaW9zX3dyaXRlX2NmZ193b3JkOgoJLmxvbmcgCTAKCi5nbG9ibCBudW1fcGNpX2Jpb3Nfd3JpdGVfY2ZnX2R3b3JkCm51bV9wY2lfYmlvc193cml0ZV9jZmdfZHdvcmQ6CgkubG9uZyAJMAoKLmdsb2JsIG51bV9wY2lfYmlvc19nZXRfaXJxX3JvdXRpbmcKbnVtX3BjaV9iaW9zX2dldF9pcnFfcm91dGluZzoKCS5sb25nIAkwCgouZ2xvYmwgbnVtX3BjaV9iaW9zX3NldF9pcnEKbnVtX3BjaV9iaW9zX3NldF9pcnE6CgkubG9uZyAJMAoKLmdsb2JsIG51bV9wY2lfYmlvc191bmtub3duX2Z1bmN0aW9uCm51bV9wY2lfYmlvc191bmtub3duX2Z1bmN0aW9uOgoJLmxvbmcgCTAKI2VuZGlmCg==