LyoKICogKEMpIENvcHlyaWdodCAyMDAyCiAqIERhbmllbCBFbmdzdHL2bSwgT21pY3JvbiBDZXRpIEFCLCBkYW5pZWxAb21pY3Jvbi5zZQogKgogKiBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcwogKiBwcm9qZWN0LgogKgogKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mCiAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAogKiBNQSAwMjExMS0xMzA3IFVTQQogKi8KCi8qCiAqIHg4NiByZWFsbW9kZSBhc3NlbWJseSBpbXBsZW1lbnRhdGlvbiBvZiBhIFBDSSBCSU9TCiAqIGZvciBwbGF0Zm9ybXMgdGhhdCB1c2Ugb25lIFBDSSBob3NlIGFuZCBjb25maWd1cmF0aW9uCiAqIGFjY2VzcyB0eXBlIDEuIChUaGUgY29tbW9uIGNhc2UgZm9yIGxvdy1lbmQgUEMncykKICovCgojaW5jbHVkZSAiYmlvcy5oIgoKI2RlZmluZSBQQ0lfQklPU19ERUJVRwoKLnNlY3Rpb24gLmJpb3MsICJheCIKLmNvZGUxNgouZ2xvYmwgcmVhbG1vZGVfcGNpX2Jpb3NfY2FsbF9lbnRyeQpyZWFsbW9kZV9wY2lfYmlvc19jYWxsX2VudHJ5OgoJTUFLRV9CSU9TX1NUQUNLCgljYWxsIHJlYWxtb2RlX3BjaV9iaW9zCglSRVNUT1JFX0NBTExFUlNfU1RBQ0sKCXJldAoKCi5nbG9ibCByZWFsbW9kZV9wY2lfYmlvcwpyZWFsbW9kZV9wY2lfYmlvczoKZ3MJbW92dwlPRkZTX0FYKCVicCksICVheAoJY21wYgkkMSwgJWFsCglqZQlwY2lfYmlvc19wcmVzZW50CgljbXBiCSQyLCAlYWwKCWplCXBjaV9iaW9zX2ZpbmRfZGV2aWNlCgljbXBiCSQzLCAlYWwKCWplCXBjaV9iaW9zX2ZpbmRfY2xhc3MKCWNtcGIJJDYsICVhbAoJamUJcGNpX2Jpb3NfZ2VuZXJhdGVfc3BlY2lhbF9jeWNsZQoJY21wYgkkOCwgJWFsCglqZQlwY2lfYmlvc19yZWFkX2NmZ19ieXRlCgljbXBiCSQ5LCAlYWwKCWplCXBjaV9iaW9zX3JlYWRfY2ZnX3dvcmQKCWNtcGIJJDEwLCAlYWwKCWplCXBjaV9iaW9zX3JlYWRfY2ZnX2R3b3JkCgljbXBiCSQxMSwgJWFsCglqZQlwY2lfYmlvc193cml0ZV9jZmdfYnl0ZQoJY21wYgkkMTIsICVhbAoJamUJcGNpX2Jpb3Nfd3JpdGVfY2ZnX3dvcmQKCWNtcGIJJDEzLCAlYWwKCWplCXBjaV9iaW9zX3dyaXRlX2NmZ19kd29yZAoJY21wYgkkMTQsICVhbAoJamUJcGNpX2Jpb3NfZ2V0X2lycV9yb3V0aW5nCgljbXBiCSQxNSwgJWFsCglqZQlwY2lfYmlvc19zZXRfaXJxCglqbXAJdW5rbm93bl9mdW5jdGlvbgoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKcGNpX2Jpb3NfcHJlc2VudDoKI2lmZGVmIFBDSV9CSU9TX0RFQlVHCmNzCWluY2wJbnVtX3BjaV9iaW9zX3ByZXNlbnQKI2VuZGlmCgltb3ZsCSQweDIwNDk0MzUwLCAlZWF4CmdzCW1vdmwJJWVheCwgT0ZGU19FRFgoJWJwKQoJbW92YgkkMHgwMSwgJWFsCmdzCW1vdmIJJWFsLCBPRkZTX0FMKCVicCkJLyogV2Ugc3VwcG9ydCBjZmcgdHlwZSAxICovCgltb3Z3CSQweDAyMTAsICVheCAgICAgICAgICAgIC8qIHZlcnNpb24gMi4xMCAqLwpncwltb3Z3CSVheCwgT0ZGU19CWCglYnApCmNzCW1vdmIJcGNpX2xhc3RfYnVzLCAlYWwgICAgICAgLyogbGFzdCBidXMgbnVtYmVyICovCmdzCW1vdmIJJWFsLCBPRkZTX0NMKCVicCkKCWptcAljbGVhcl9jYXJyeQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKLyogZGV2aWNlIDAtMzEsIGZ1bmN0aW9uIDAtNyAqLwpwY2lfYmlvc19maW5kX2RldmljZToKI2lmZGVmIFBDSV9CSU9TX0RFQlVHCmNzCWluY2wJbnVtX3BjaV9iaW9zX2ZpbmRfZGV2aWNlCiNlbmRpZgpncwltb3Z3CU9GRlNfQ1goJWJwKSwgJWRpCglzaGxsCSQxNiwgJWVkaQpncwltb3Z3CU9GRlNfRFgoJWJwKSwgJWRpICAgICAgIC8qIGVkaSBub3cgaG9sZHMgZGV2aWNlIGluIHVwcGVyIDE2CgkJCQkJICogYml0cyBhbmQgdmVuZG9yIGluIGxvd2VyIDE2IGJpdHMgKi8KZ3MJbW92dwlPRkZTX1NJKCVicCksICVzaQoJeG9ydwklYngsICVieCAgICAgICAgICAgICAgICAvKiBzdGFydCBhdCBidXMgMCBkZXYgMCBmdW5jdGlvbiAwICovCnBmZF9sb29wOgoJeG9ydwklYXgsICVheAkJLyogZHdvcmQgMCBpcyB2ZW5kb3IvZGV2aWNlICovCgljYWxsCV9fcGNpX2Jpb3Nfc2VsZWN0X3JlZ2lzdGVyCgltb3Z3CSQweGNmYywgJWR4CglpbmwJJWR4LCAlZWF4CgljbXBsCSVlZGksICVlYXgJCS8qIG91ciBkZXZpY2UgPyAqLwoJamUJcGZkX2ZvdW5kX29uZQpwZmRfbmV4dF9kZXY6CgkvKiBjaGVjayBmb3IgbXVsdGkgZnVuY3Rpb24gZGV2aWNlcyAqLwoJbW92dwklYngsICVheAoJYW5kdwkkMywgJWF4CglqbnoJcGZkX2Z1bmN0aW9uX25vdF96ZXJvCgltb3Z3CSQweDAwMGMsICVheAoJY2FsbAlfX3BjaV9iaW9zX3NlbGVjdF9yZWdpc3RlcgoJbW92dwkkMHhjZmUsICVkeAoJaW5iCSVkeCwgJWFsCglhbmRiCSQweDgwLCAlYWwKCWp6CXBmZF9ub3RfbXVsdGlfZnVuY3Rpb24KcGZkX2Z1bmN0aW9uX25vdF96ZXJvOgoJaW5jdwklYngJCQkvKiBuZXh0IGZ1bmN0aW9uLCBvdmVyZmxvd3MgaW4gdG8KCQkJCQkgKiBkZXZpY2UgbnVtYmVyLCB0aGVuIGJ1cyBudW1iZXIgKi8KCWptcAlwZmRfY2hlY2tfYnVzCgpwZmRfbm90X211bHRpX2Z1bmN0aW9uOgoJYW5kdwkkMHhmZmY4LCAlYnggICAgICAgICAgICAvKiByZW1vdmUgZnVuY3Rpb24gYml0cyAqLwoJYWRkdwkkMHgwMDA4LCAlYnggICAgICAgICAgICAvKiBuZXh0IGRldmljZSwgb3ZlcmZsb3dzIGluIHRvIGJ1cyBudW1iZXIgKi8KcGZkX2NoZWNrX2J1czoKY3MJbW92YglwY2lfbGFzdF9idXMsICVhaAoJY21wYgklYWgsICViaAoJamEJcGZkX25vdF9mb3VuZAoJam1wCXBmZF9sb29wCnBmZF9mb3VuZF9vbmU6CglkZWN3CSVzaQoJanMJcGZkX2RvbmUKCWptcAlwZmRfbmV4dF9kZXYKCnBmZF9kb25lOgpncwltb3Z3CSVieCwgT0ZGU19CWCglYnApCglqbXAJY2xlYXJfY2FycnkKCnBmZF9ub3RfZm91bmQ6Cgltb3ZiCSQweDg2LCAlYWggICAgICAgICAgICAgIC8qIGRldmljZSBub3QgZm91bmQgKi8KCWptcAlzZXRfY2FycnkKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCnBjaV9iaW9zX2ZpbmRfY2xhc3M6CiNpZmRlZiBQQ0lfQklPU19ERUJVRwpjcwlpbmNsCW51bV9wY2lfYmlvc19maW5kX2NsYXNzCiNlbmRpZgpncwltb3ZsCU9GRlNfRUNYKCVicCksICVlZGkKCWFuZGwJJDB4MDBmZmZmZmYsICVlZGkgICAgICAgLyogZWRpIG5vdyBob2xkcyBjbGFzcy1jb2RlIGluIGxvd2VyIDI0IGJpdHMgKi8KZ3MJbW92dwlPRkZTX1NJKCVicCksICVzaQoJeG9ydwklYngsICVieCAgICAgICAgICAgICAgICAvKiBzdGFydCBhdCBidXMgMCBkZXYgMCBmdW5jdGlvbiAwICovCnBmY19sb29wOgoJbW92dwkkOCwgJWF4CQkJLyogZHdvcmQgOCBpcyBjbGFzcy1jb2RlIGhpZ2ggMjRiaXRzICovCgljYWxsCV9fcGNpX2Jpb3Nfc2VsZWN0X3JlZ2lzdGVyCgltb3Z3CSQweGNmYywgJWR4CglpbmwJJWR4LCAlZWF4CglzaHJsCSQ4LCAlZWF4CglhbmRsCSQweDAwZmZmZmZmLCAlZWF4CgljbXBsCSVlZGksICVlYXgJCS8qIG91ciBkZXZpY2UgPyAqLwoJamUJcGZjX2ZvdW5kX29uZQpwZmNfbmV4dF9kZXY6CgkvKiBjaGVjayBmb3IgbXVsdGkgZnVuY3Rpb24gZGV2aWNlcyAqLwoJYW5kdwkkMywgJWJ4CglqbnoJcGZjX2Z1bmN0aW9uX25vdF96ZXJvCgltb3Z3CSQweDAwMGMsICVheAoJY2FsbAlfX3BjaV9iaW9zX3NlbGVjdF9yZWdpc3RlcgoJbW92dwkkMHhjZmUsICVkeAoJaW5iCSVkeCwgJWFsCglhbmRiCSQweDgwLCAlYWwKCWp6CXBmY19ub3RfbXVsdGlfZnVuY3Rpb24KcGZjX2Z1bmN0aW9uX25vdF96ZXJvOgoJaW5jdwklYngJCQkvKiBuZXh0IGZ1bmN0aW9uLCBvdmVyZmxvd3MgaW4gdG8KCQkJCQkgKiBkZXZpY2UgbnVtYmVyLCB0aGVuIGJ1cyBudW1iZXIgKi8KCWptcAlwZmNfY2hlY2tfYnVzCgpwZmNfbm90X211bHRpX2Z1bmN0aW9uOgoJYW5kdwkkMHhmZmY4LCAlYnggICAgICAgICAgICAvKiByZW1vdmUgZnVuY3Rpb24gYml0cyAqLwoJYWRkdwkkMHgwMDA4LCAlYnggICAgICAgICAgICAvKiBuZXh0IGRldmljZSwgb3ZlcmZsb3dzIGluIHRvIGJ1cyBudW1iZXIgKi8KcGZjX2NoZWNrX2J1czoKY3MJbW92YglwY2lfbGFzdF9idXMsICVhaAoJY21wYgklYWgsICViaAoJamEJcGZjX25vdF9mb3VuZAoJam1wCXBmY19sb29wCnBmY19mb3VuZF9vbmU6CglkZWN3CSVzaQoJanMJcGZjX2RvbmUKCWptcAlwZmNfbmV4dF9kZXYKCnBmY19kb25lOgpncwltb3Z3CSVieCwgT0ZGU19CWCglYnApCglqbXAJY2xlYXJfY2FycnkKCnBmY19ub3RfZm91bmQ6Cgltb3ZiCSQweDg2LCAlYWggICAgICAgICAgICAgIC8qIGRldmljZSBub3QgZm91bmQgKi8KCWptcAlzZXRfY2FycnkKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCnBjaV9iaW9zX2dlbmVyYXRlX3NwZWNpYWxfY3ljbGU6CiNpZmRlZiBQQ0lfQklPU19ERUJVRwpjcwlpbmNsCW51bV9wY2lfYmlvc19nZW5lcmF0ZV9zcGVjaWFsX2N5Y2xlCiNlbmRpZgoJbW92YgkkMHg4MSwgJWFoICAgICAgICAgICAgICAvKiBmdW5jdGlvbiBub3Qgc3VwcG9ydGVkICovCglqbXAJc2V0X2NhcnJ5CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgpwY2lfYmlvc19yZWFkX2NmZ19ieXRlOgojaWZkZWYgUENJX0JJT1NfREVCVUcKY3MJaW5jbAludW1fcGNpX2Jpb3NfcmVhZF9jZmdfYnl0ZQojZW5kaWYKCWNhbGwJcGNpX2Jpb3Nfc2VsZWN0X3JlZ2lzdGVyCmdzCW1vdncJT0ZGU19ESSglYnApLCAlZHgKCWFuZHcJJDMsICVkeAoJYWRkdwkkMHhjZmMsICVkeAoJaW5iCSVkeCwgJWFsCmdzCW1vdmIJJWFsLCBPRkZTX0NMKCVicCkKCWptcAljbGVhcl9jYXJyeQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKcGNpX2Jpb3NfcmVhZF9jZmdfd29yZDoKI2lmZGVmIFBDSV9CSU9TX0RFQlVHCmNzCWluY2wJbnVtX3BjaV9iaW9zX3JlYWRfY2ZnX3dvcmQKI2VuZGlmCgljYWxsCXBjaV9iaW9zX3NlbGVjdF9yZWdpc3Rlcgpncwltb3Z3CU9GRlNfREkoJWJwKSwgJWR4CglhbmR3CSQyLCAlZHgKCWFkZHcJJDB4Y2ZjLCAlZHgKCWludwklZHgsICVheApncwltb3Z3CSVheCwgT0ZGU19DWCglYnApCglqbXAJY2xlYXJfY2FycnkKCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgpwY2lfYmlvc19yZWFkX2NmZ19kd29yZDoKI2lmZGVmIFBDSV9CSU9TX0RFQlVHCmNzCWluY2wJbnVtX3BjaV9iaW9zX3JlYWRfY2ZnX2R3b3JkCiNlbmRpZgoJY2FsbAlwY2lfYmlvc19zZWxlY3RfcmVnaXN0ZXIKCW1vdncJJDB4Y2ZjLCAlZHgKCWlubAklZHgsICVlYXgKZ3MJbW92bAklZWF4LCBPRkZTX0VDWCglYnApCglqbXAJY2xlYXJfY2FycnkKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCnBjaV9iaW9zX3dyaXRlX2NmZ19ieXRlOgojaWZkZWYgUENJX0JJT1NfREVCVUcKY3MJaW5jbAludW1fcGNpX2Jpb3Nfd3JpdGVfY2ZnX2J5dGUKI2VuZGlmCgljYWxsCXBjaV9iaW9zX3NlbGVjdF9yZWdpc3Rlcgpncwltb3Z3CU9GRlNfREkoJWJwKSwgJWR4CmdzCW1vdmIJT0ZGU19DTCglYnApLCAlYWwKCWFuZHcJJDMsICVkeAoJYWRkdwkkMHhjZmMsICVkeAoJb3V0YgklYWwsICVkeAoJam1wCWNsZWFyX2NhcnJ5CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgpwY2lfYmlvc193cml0ZV9jZmdfd29yZDoKI2lmZGVmIFBDSV9CSU9TX0RFQlVHCmNzCWluY2wJbnVtX3BjaV9iaW9zX3dyaXRlX2NmZ193b3JkCiNlbmRpZgoJY2FsbAlwY2lfYmlvc19zZWxlY3RfcmVnaXN0ZXIKZ3MJbW92dwlPRkZTX0RJKCVicCksICVkeApncwltb3Z3CU9GRlNfQ1goJWJwKSwgJWF4CglhbmR3CSQyLCAlZHgKCWFkZHcJJDB4Y2ZjLCAlZHgKCW91dHcJJWF4LCAlZHgKCWptcAljbGVhcl9jYXJyeQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKcGNpX2Jpb3Nfd3JpdGVfY2ZnX2R3b3JkOgojaWZkZWYgUENJX0JJT1NfREVCVUcKY3MJaW5jbAludW1fcGNpX2Jpb3Nfd3JpdGVfY2ZnX2R3b3JkCiNlbmRpZgoJY2FsbAlwY2lfYmlvc19zZWxlY3RfcmVnaXN0ZXIKZ3MJbW92bAlPRkZTX0VDWCglYnApLCAlZWF4Cgltb3Z3CSQweGNmYywgJWR4CglvdXRsCSVlYXgsICVkeAoJam1wCWNsZWFyX2NhcnJ5CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgpwY2lfYmlvc19nZXRfaXJxX3JvdXRpbmc6CiNpZmRlZiBQQ0lfQklPU19ERUJVRwpjcwlpbmNsCW51bV9wY2lfYmlvc19nZXRfaXJxX3JvdXRpbmcKI2VuZGlmCgltb3ZiCSQweDgxLCAlYWggICAgICAgICAgICAgIC8qIGZ1bmN0aW9uIG5vdCBzdXBwb3J0ZWQgKi8KCWptcAlzZXRfY2FycnkKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCnBjaV9iaW9zX3NldF9pcnE6CiNpZmRlZiBQQ0lfQklPU19ERUJVRwpjcwlpbmNsCW51bV9wY2lfYmlvc19zZXRfaXJxCiNlbmRpZgoJbW92YgkkMHg4MSwgJWFoICAgICAgICAgICAgICAvKiBmdW5jdGlvbiBub3Qgc3VwcG9ydGVkICovCglqbXAJc2V0X2NhcnJ5CgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgp1bmtub3duX2Z1bmN0aW9uOgojaWZkZWYgUENJX0JJT1NfREVCVUcKY3MJaW5jbAludW1fcGNpX2Jpb3NfdW5rbm93bl9mdW5jdGlvbgojZW5kaWYKCW1vdmIJJDB4ODEsICVhaCAgICAgICAgICAgICAgLyogZnVuY3Rpb24gbm90IHN1cHBvcnRlZCAqLwoJam1wCXNldF9jYXJyeQoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKcGNpX2Jpb3Nfc2VsZWN0X3JlZ2lzdGVyOgpncwltb3Z3CU9GRlNfQlgoJWJwKSwgJWJ4CmdzCW1vdncJT0ZGU19ESSglYnApLCAlYXgKLyogZGVzdHJveXMgZWF4LCBkeCAqLwpfX3BjaV9iaW9zX3NlbGVjdF9yZWdpc3RlcjogICAgICAgICAgICAgICAvKiBCWCBob2xkcyBkZXZpY2UgaWQsIEFYIGhvbGRzIHJlZ2lzdGVyIGluZGV4ICovCglwdXNobAklZWJ4CglhbmRsCSQweGZjLCAlZWF4CglhbmRsCSQweGZmZmYsICVlYngKCXNobGwJJDgsICVlYngKCW9ybAklZWJ4LCAlZWF4CglvcmwJJDB4ODAwMDAwMDAsICVlYXgKCW1vdncJJDB4Y2Y4LCAlZHgKCW91dGwJJWVheCwgJWR4Cglwb3BsCSVlYngKCXJldAoKCmNsZWFyX2NhcnJ5Ogpncwltb3Z3CU9GRlNfRkxBR1MoJWJwKSwgJWF4CglhbmR3CSQweGZmZmUsICVheAkJCS8qIGNsZWFyIGNhcnJ5IC0tIGZ1bmN0aW9uIHN1Y2NlZWRlZCAqLwpncwltb3Z3CSVheCwgT0ZGU19GTEFHUyglYnApCgl4b3J3CSVheCwgJWF4CmdzCW1vdmIJJWFoLCBPRkZTX0FIKCVicCkKCXJldAoKc2V0X2NhcnJ5Ogpncwltb3ZiCSVhaCwgT0ZGU19BSCglYnApCmdzCW1vdncJT0ZGU19GTEFHUyglYnApLCAlYXgKCW9ydwkkMSwgJWF4CQkJCS8qIHJldHVybiBjYXJyeSAtLSBmdW5jdGlvbiBub3Qgc3VwcG9ydGVkICovCmdzCW1vdncJJWF4LCBPRkZTX0ZMQUdTKCVicCkKCW1vdncJJC0xLCAlYXgKCXJldAoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKLmdsb2JsIHBjaV9sYXN0X2J1cwpwY2lfbGFzdF9idXM6CgkuYnl0ZQkwCgojaWZkZWYgUENJX0JJT1NfREVCVUcKLmdsb2JsIG51bV9wY2lfYmlvc19wcmVzZW50Cm51bV9wY2lfYmlvc19wcmVzZW50OgoJLmxvbmcJMAoKLmdsb2JsIG51bV9wY2lfYmlvc19maW5kX2RldmljZQpudW1fcGNpX2Jpb3NfZmluZF9kZXZpY2U6CgkubG9uZwkwCgouZ2xvYmwgbnVtX3BjaV9iaW9zX2ZpbmRfY2xhc3MKbnVtX3BjaV9iaW9zX2ZpbmRfY2xhc3M6CgkubG9uZwkwCgouZ2xvYmwgbnVtX3BjaV9iaW9zX2dlbmVyYXRlX3NwZWNpYWxfY3ljbGUKbnVtX3BjaV9iaW9zX2dlbmVyYXRlX3NwZWNpYWxfY3ljbGU6CgkubG9uZyAwCgouZ2xvYmwgbnVtX3BjaV9iaW9zX3JlYWRfY2ZnX2J5dGUKbnVtX3BjaV9iaW9zX3JlYWRfY2ZnX2J5dGU6CgkubG9uZwkwCgouZ2xvYmwgbnVtX3BjaV9iaW9zX3JlYWRfY2ZnX3dvcmQKbnVtX3BjaV9iaW9zX3JlYWRfY2ZnX3dvcmQ6CgkubG9uZwkwCgouZ2xvYmwgbnVtX3BjaV9iaW9zX3JlYWRfY2ZnX2R3b3JkCm51bV9wY2lfYmlvc19yZWFkX2NmZ19kd29yZDoKCS5sb25nCTAKCi5nbG9ibCBudW1fcGNpX2Jpb3Nfd3JpdGVfY2ZnX2J5dGUKbnVtX3BjaV9iaW9zX3dyaXRlX2NmZ19ieXRlOgoJLmxvbmcJMAoKLmdsb2JsIG51bV9wY2lfYmlvc193cml0ZV9jZmdfd29yZApudW1fcGNpX2Jpb3Nfd3JpdGVfY2ZnX3dvcmQ6CgkubG9uZwkwCgouZ2xvYmwgbnVtX3BjaV9iaW9zX3dyaXRlX2NmZ19kd29yZApudW1fcGNpX2Jpb3Nfd3JpdGVfY2ZnX2R3b3JkOgoJLmxvbmcJMAoKLmdsb2JsIG51bV9wY2lfYmlvc19nZXRfaXJxX3JvdXRpbmcKbnVtX3BjaV9iaW9zX2dldF9pcnFfcm91dGluZzoKCS5sb25nCTAKCi5nbG9ibCBudW1fcGNpX2Jpb3Nfc2V0X2lycQpudW1fcGNpX2Jpb3Nfc2V0X2lycToKCS5sb25nCTAKCi5nbG9ibCBudW1fcGNpX2Jpb3NfdW5rbm93bl9mdW5jdGlvbgpudW1fcGNpX2Jpb3NfdW5rbm93bl9mdW5jdGlvbjoKCS5sb25nCTAKI2VuZGlmCg==