ZGlmZiAtLWdpdCBhL3B1Yi9pbmNsdWRlL2luZnJhL3JhbV9jb25maWcuaCBiL3B1Yi9pbmNsdWRlL2luZnJhL3JhbV9jb25maWcuaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMDY4ZDcwCi0tLSAvZGV2L251bGwKKysrIGIvcHViL2luY2x1ZGUvaW5mcmEvcmFtX2NvbmZpZy5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorKiCw5sioy/nT0CAoQykyMDE1LCDW0NDLzajRtrnJt93T0M/euavLvqGjDQorKiANCisqIM7EvP7D+7PGOiAgICAgcmFtX2NvbmZpZy5oDQorKiDOxLz+serKtjogICAgIHJhbV9jb25maWcuaA0KKyogxNrI3dWq0qo6ICAgICC05rSitdjWt8Xk1sPNt87EvP4NCisqIMq508O3vbeoOiAgICAgI2luY2x1ZGUgInJhbV9jb25maWcuaCINCisqIA0KKyog0N64xMjVxtogICAgICAgILDmsb66xSAgICAgINDeuMSx6rzHICAgICAgICDQ3rjEyMsgICAgICAgICAg0N64xMTayN0NCisqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyogMjAxNS8wNC8xNiAgICAgIFYxLjAgICAgICAgIENyZWF0ZSAgICAgICAgICDB9dHHxM8gICAgICAgICAgtLS9qA0KKyogDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCisjaWZuZGVmIF9SQU1fQ09ORklHX0gNCisjZGVmaW5lIF9SQU1fQ09ORklHX0gNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIM23zsS8/iAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisjaWYgZGVmaW5lZCAgIChfQ0hJUF9aWDI5NzUyMCkNCisjaW5jbHVkZSAicmFtX2NvbmZpZ183NTIwLmgiDQorI2luY2x1ZGUgInBzbV9yYW1fY29uZmlnXzc1MjAuaCINCisjZWxpZiBkZWZpbmVkIChfQ0hJUF9aWDI5NzUyMFYxXzEpDQorI2luY2x1ZGUgInJhbV9jb25maWdfNzUyMHYxXzEuaCINCisjaW5jbHVkZSAicHNtX3JhbV9jb25maWdfNzUyMHYxXzEuaCINCisjZWxpZiBkZWZpbmVkIChfQ0hJUF9aWDI5NzUyMFYyKQ0KKyNpbmNsdWRlICJyYW1fY29uZmlnXzc1MjB2Mi5oIg0KKyNpbmNsdWRlICJwc21fcmFtX2NvbmZpZ183NTIwdjIuaCINCisjZWxpZiBkZWZpbmVkIChfQ0hJUF9aWDI5NzUyMFYzKQ0KKyNpbmNsdWRlICJyYW1fY29uZmlnXzc1MjB2My5oIg0KKyNpbmNsdWRlICJwc21fcmFtX2NvbmZpZ183NTIwdjMuaCINCisjZWxpZiBkZWZpbmVkIChfQ0hJUF9aWDI5NzUxMCkNCisjaW5jbHVkZSAicmFtX2NvbmZpZ183NTEwLmgiDQorI2VsaWYgZGVmaW5lZCAoX0NISVBfWlgyODA0KQ0KKyNpbmNsdWRlICJyYW1fY29uZmlnXzI4MDQuaCINCisjaW5jbHVkZSAicHNtX3JhbV9jb25maWdfMjgwNC5oIg0KKyNlbGlmIGRlZmluZWQgKF9PU19XSU4pDQorLy8jaW5jbHVkZSAicmFtX2NvbmZpZ183NTIwdjMuaCINCisvLyNpbmNsdWRlICJwc21fcmFtX2NvbmZpZ183NTIwdjMuaCINCisjZWxzZQ0KKyMgZXJyb3IgInVua25vd24gY2hpcHNldCINCisjZW5kaWYNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgILrqtqjS5SAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIMr9vt3A4NDNtqjS5SAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIMirvtax5MG/yfnD9yAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIMirvta6r8r9yfnD9yAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCisjZW5kaWYgIC8vICNpZm5kZWYgX1JBTV9DT05GSUdfSA0KKw0KZGlmZiAtLWdpdCBhL3B1Yi9pbmNsdWRlL2luZnJhL3JmX2lyYW1fcHViX2NvbmZpZy5oIGIvcHViL2luY2x1ZGUvaW5mcmEvcmZfaXJhbV9wdWJfY29uZmlnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTI4ZmZiYwotLS0gL2Rldi9udWxsCisrKyBiL3B1Yi9pbmNsdWRlL2luZnJhL3JmX2lyYW1fcHViX2NvbmZpZy5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorKiCw5sioy/nT0CAoQykyMDE1LCDW0NDLzajRtrnJt93T0M/euavLvqGjDQorKiANCisqIM7EvP7D+7PGOiAgICAgcmZfaXJhbV9wdWJfY29uZmlnLmgNCisqIM7EvP6x6sq2OiAgICAgcmZfaXJhbV9wdWJfY29uZmlnLmgNCisqIMTayN3VqtKqOiAgICAgUFPT61BIWdDFz6K9u7ulSVJBTbXEyeTGtbmrubLStc7xx/jT8ruut9YoubI1MTJCKQ0KKyogyrnTw7e9t6g6ICAgICAjaW5jbHVkZSAicmFtX2NvbmZpZy5oIg0KKyogDQorKiDQ3rjEyNXG2iAgICAgICAgsOaxvrrFICAgICAg0N64xLHqvMcgICAgICAgINDeuMTIyyAgICAgICAgICDQ3rjExNrI3Q0KKyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorKiAyMDE1LzA2LzA4ICAgICAgVjEuMCAgICAgICAgQ3JlYXRlICAgICAgICAgIMH10cfEzyAgICAgICAgICC0tL2oDQorKiANCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKw0KKyNpZm5kZWYgX1JGX0lSQU1fUFVCX0NPTkZJR19IDQorI2RlZmluZSBfUkZfSVJBTV9QVUJfQ09ORklHX0gNCisNCisjaW5jbHVkZSAicmFtX2NvbmZpZy5oIg0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgzbfOxLz+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAguuq2qNLlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKy8qIElSQU3W0KOsUFPT61BIWdDFz6K9u7ultcTJ5Ma1uau5stK1zvG7+bXY1rfOqklSQU1fQkFTRV9BRERSX1BVQl9SRqOstPPQoc6qNTEyQiAgKi8NCisNCisvKiBJUkFNX1BVQl9SRtbQo6y12tK7sr+31sf40/LOqlVFSUSjrLTz0KHOqjY0Qnl0ZSovDQorI2RlZmluZSBJUkFNX1BVQl9SRl9CQVNFX0FERFJfVUVJRCAgICAgICAgICAgKElSQU1fQkFTRV9BRERSX1BVQl9SRikNCisjZGVmaW5lIElSQU1fUFVCX1JGX0JBU0VfTEVOX1VFSUQgICAgICAgICAgICAoNjQ+PkNQVV9TSElGVCkNCisNCisvKiBJUkFNX1BVQl9SRtbQo6y12tK7sr+31sf40/LOqs7Csrm72LbBtcREQUPWtaOstPPQoc6qNEJ5dGUqLw0KKyNkZWZpbmUgSVJBTV9QVUJfUkZfQkFTRV9BRERfVEVNUENPTVBfREFDICAgICAgIChJUkFNX0JBU0VfQUREUl9QVUJfUkYgKyBJUkFNX1BVQl9SRl9CQVNFX0xFTl9VRUlEKQ0KKyNkZWZpbmUgSVJBTV9QVUJfUkZfQkFTRV9MRU5fVEVNUENPTVBfREFDICAgICAgICg0Pj5DUFVfU0hJRlQpDQorDQorI2RlZmluZSBJUkFNX1BVQl9SRl9CQVNFX0FERFJfTUlQSV9JTklUX0RBVEEgICAgKElSQU1fUFVCX1JGX0JBU0VfQUREX1RFTVBDT01QX0RBQyArIElSQU1fUFVCX1JGX0JBU0VfTEVOX1RFTVBDT01QX0RBQykNCisjZGVmaW5lIElSQU1fUFVCX1JGX0JBU0VfTEVOX01JUElfSU5JVF9EQVRBICAgICAoMTI4Pj5DUFVfU0hJRlQpDQorDQorI2RlZmluZSBJUkFNX1BVQl9SRl9CQVNFX0FERFJfUElOX01VWF9QQVJBICAgIChJUkFNX1BVQl9SRl9CQVNFX0FERFJfTUlQSV9JTklUX0RBVEEgKyBJUkFNX1BVQl9SRl9CQVNFX0xFTl9NSVBJX0lOSVRfREFUQSkNCisjZGVmaW5lIElSQU1fUFVCX1JGX0JBU0VfTEVOX1BJTl9NVVhfUEFSQSAgICAgKDI+PkNQVV9TSElGVCkNCisNCisvKiBJUkFNX1BVQl9SRtbQo6y4w7K/t9bH+NPy08PT2r2rVERTIFBBSURMRb/Y1sbX1rmyz+24+FI3o6zTw9PaUkZJRExFMlNMRUVQyrHF5NbDUEFJRExFICovDQorI2RlZmluZSBJUkFNX1BVQl9SRl9CQVNFX0FERFJfUEFJRExFX1BBUkEgICAgKElSQU1fUFVCX1JGX0JBU0VfQUREUl9QSU5fTVVYX1BBUkEgKyBJUkFNX1BVQl9SRl9CQVNFX0xFTl9QSU5fTVVYX1BBUkEpDQorI2RlZmluZSBJUkFNX1BVQl9SRl9CQVNFX0xFTl9QQUlEX1BBUkEgICAgICgyMD4+Q1BVX1NISUZUKQ0KKw0KKw0KKy8qY29tIE5W1tDU9rzTvqfM5WRhYyBWUyB0ZW1woaG1xMLrse2jrKO1tsjSu7j2uPG146Oso62jtKOwtsi1vaO5o7C2yCovDQorDQorI2RlZmluZSBJUkFNX1BVQl9SRl9CQVNFX0FERFJfQ1JZU1RBTF9EQUNWU1RFTVAgKElSQU1fUFVCX1JGX0JBU0VfQUREUl9QQUlETEVfUEFSQSArIElSQU1fUFVCX1JGX0JBU0VfTEVOX1BBSURfUEFSQSkNCisjZGVmaW5lIElSQU1fUFVCX1JGX0JBU0VfTEVOX0NSWVNUQUxfREFDVlNURU1QICAoNTQ+PkNQVV9TSElGVCkNCisNCisjZGVmaW5lIElSQU1fUFVCX1JGX0JBU0VfQUREUl9TTEVFUF9GQUxHX1BBUkEgKElSQU1fUFVCX1JGX0JBU0VfQUREUl9DUllTVEFMX0RBQ1ZTVEVNUCArIElSQU1fUFVCX1JGX0JBU0VfTEVOX0NSWVNUQUxfREFDVlNURU1QKQ0KKyNkZWZpbmUgSVJBTV9QVUJfUkZfQkFTRV9TTEVFUF9GQUxHX0xFTl9QQVJBICAoMj4+Q1BVX1NISUZUKQ0KKw0KKyNkZWZpbmUgSVJBTV9QVUJfUkZfQkFTRV9BRERSX1pYUEFfRkxBR19QQVJBICAoSVJBTV9QVUJfUkZfQkFTRV9BRERSX1NMRUVQX0ZBTEdfUEFSQSArIElSQU1fUFVCX1JGX0JBU0VfU0xFRVBfRkFMR19MRU5fUEFSQSkNCisjZGVmaW5lIElSQU1fUFVCX1JGX0JBU0VfQUREUl9aWFBBX0xFTl9QQVJBICAgKDQ+PkNQVV9TSElGVCkNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyoJCQkJCQkJCSDK/b7dwODQzbao0uUJCQkJCQkJCSAgICoNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorKgkJCQkJCQkJIMirvtax5MG/yfnD9wkJCQkJCQkJICAgKg0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisqCQkJCQkJCQkgyKu+1rqvyv3J+cP3CQkJCQkJCQkgICAqDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisJDQorI2VuZGlmICAvLyAjaWZuZGVmIF9SRl9JUkFNX1BVQl9DT05GSUdfSA0KKw0KKw0KKw0KKw0KKw0KKw0KZGlmZiAtLWdpdCBhL3B1Yi9pbmNsdWRlL2luZnJhL3pzeXNfdHJhY2UuaCBiL3B1Yi9pbmNsdWRlL2luZnJhL3pzeXNfdHJhY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNDZjZGFkCi0tLSAvZGV2L251bGwKKysrIGIvcHViL2luY2x1ZGUvaW5mcmEvenN5c190cmFjZS5oCkBAIC0wLDAgKzEsMTc1IEBACisNCisjaWZuZGVmIF9fVFJBQ0VfRkxBR19fDQorI2RlZmluZSBfX1RSQUNFX0ZMQUdfXw0KKw0KK3R5cGVkZWYgZW51bSBfVF9UUkFDRV9GTEFHDQorew0KKyAgICBUUkFDRV9aTE9BREVSX1NUQVJUID0gMHgwMDAxMDAwMCwNCisgICAgVFJBQ0VfWkxPQURFUl9OQU5ELA0KKyAgICBUUkFDRV9aTE9BREVSX0REUiwNCisgICAgVFJBQ0VfWkxPQURFUl9QQVJUSVRJT04sDQorICAgIFRSQUNFX1pMT0FERVJfTE9BRF9VQk9PVCwNCisgICAgVFJBQ0VfWkxPQURFUl9MT0FEX1JQTSwNCisgICAgVFJBQ0VfWkxPQURFUl9SVU5fVUJPT1QsDQorICAgIFRSQUNFX1pMT0FERVJfRU5EX0VSUiwNCisgICAgVFJBQ0VfWkxPQURFUl9IQU5HLA0KKyAgICBUUkFDRV9aTE9BREVSXzksDQorICAgIFRSQUNFX1pMT0FERVJfMTAsDQorICAgIFRSQUNFX1pMT0FERVJfMTEsDQorICAgIFRSQUNFX1pMT0FERVJfMTIsDQorICAgIFRSQUNFX1pMT0FERVJfMTMsDQorICAgIFRSQUNFX1pMT0FERVJfMTQsDQorICAgIFRSQUNFX1pMT0FERVJfMTUsDQorICAgIFRSQUNFX1pMT0FERVJfMTYsDQorICAgIFRSQUNFX1pMT0FERVJfMTcsDQorICAgIFRSQUNFX1pMT0FERVJfMTgsDQorICAgIFRSQUNFX1pMT0FERVJfUlVOX1JQTSA9IDB4MDAwMTk5OTksICAvKnpsb2FkZXIgc3RhcnQgbm9ybWFsKi8NCisNCisgICAgVFJBQ0VfVUJPT1RfU1RBUlQgPSAweDAwMDIwMDAwLA0KKyAgICBUUkFDRV9VQk9PVF9QTVUsDQorICAgIFRSQUNFX1VCT09UX05BTkQsDQorICAgIFRSQUNFX1VCT09UX1RMT0FELA0KKyAgICBUUkFDRV9VQk9PVF9QQVJUSVRJT04sDQorICAgIFRSQUNFX1VCT09UX1BTSE9MRCwNCisgICAgVFJBQ0VfVUJPT1RfRk9UQV9VUERBVEUsDQorICAgIFRSQUNFX1VCT09UX0ZPVEEsDQorICAgIFRSQUNFX1VCT09UX0ZPVEFfUkVTRVQsDQorICAgIFRSQUNFX1VCT09UX0NIRUNLX1BPV0VSS0VZLA0KKyAgICBUUkFDRV9VQk9PVF9QT1dFUl9SRUFTT04sDQorICAgIFRSQUNFX1VCT09UX0xPV19CQVRURVJZLA0KKyAgICBUUkFDRV9VQk9PVF9TSE9XX0xDRCwNCisgICAgVFJBQ0VfVUJPT1RfTE9BRF9JTUFHRSwNCisgICAgVFJBQ0VfVUJPT1RfTE9BRF9MSU5VWCwNCisgICAgVFJBQ0VfVUJPT1RfTUFJTkxPT1AsDQorICAgIFRSQUNFX1VCT09UXzE2LA0KKyAgICBUUkFDRV9VQk9PVF8xNywNCisgICAgVFJBQ0VfVUJPT1RfMTgsDQorICAgIFRSQUNFX1VCT09UX0JPT1RfTElOVVggPSAweDAwMDI5OTk5LCAgLyp1Ym9vdCBzdGFydCBub3JtYWwqLw0KKw0KKyAgICBUUkFDRV9SUE1fMCA9IDB4MDAwMzAwMDAsDQorICAgIFRSQUNFX1JQTV8xLA0KKyAgICBUUkFDRV9SUE1fU0xFRVAsDQorICAgIFRSQUNFX1JQTV9SVU5OSU5HLA0KKyAgICBUUkFDRV9SUE1fNCwNCisgICAgVFJBQ0VfUlBNXzUsDQorICAgIFRSQUNFX1JQTV82LA0KKyAgICBUUkFDRV9SUE1fNywNCisgICAgVFJBQ0VfUlBNXzgsDQorICAgIFRSQUNFX1JQTV85LA0KKyAgICBUUkFDRV9SUE1fMTAsDQorICAgIFRSQUNFX1JQTV8xMSwNCisgICAgVFJBQ0VfUlBNXzEyLA0KKyAgICBUUkFDRV9SUE1fMTMsDQorICAgIFRSQUNFX1JQTV8xNCwNCisgICAgVFJBQ0VfUlBNXzE1LA0KKyAgICBUUkFDRV9SUE1fMTYsDQorICAgIFRSQUNFX1JQTV8xNywNCisgICAgVFJBQ0VfUlBNXzE4LA0KKyAgICBUUkFDRV9SUE1fMTksDQorDQorICAgIFRSQUNFX0FQXzAgPSAweDAwMDQwMDAwLA0KKyAgICBUUkFDRV9BUF9JTklUX0NBTEwsDQorICAgIFRSQUNFX0FQX1NMRUVQLA0KKyAgICBUUkFDRV9BUF9SVU5OSU5HLA0KKyAgICBUUkFDRV9BUF80LA0KKyAgICBUUkFDRV9BUF81LA0KKyAgICBUUkFDRV9BUF82LA0KKyAgICBUUkFDRV9BUF83LA0KKyAgICBUUkFDRV9BUF84LA0KKyAgICBUUkFDRV9BUF85LA0KKyAgICBUUkFDRV9BUF8xMCwNCisgICAgVFJBQ0VfQVBfMTEsDQorICAgIFRSQUNFX0FQXzEyLA0KKyAgICBUUkFDRV9BUF8xMywNCisgICAgVFJBQ0VfQVBfMTQsDQorICAgIFRSQUNFX0FQXzE1LA0KKyAgICBUUkFDRV9BUF8xNiwNCisgICAgVFJBQ0VfQVBfMTcsDQorICAgIFRSQUNFX0FQXzE4LA0KKyAgICBUUkFDRV9BUF8xOSwNCisNCisgICAgVFJBQ0VfUFNfMCA9IDB4MDAwNTAwMDAsDQorICAgIFRSQUNFX1BTXzEsDQorICAgIFRSQUNFX1BTX1NMRUVQLA0KKyAgICBUUkFDRV9QU19SVU5OSU5HLA0KKyAgICBUUkFDRV9QU180LA0KKyAgICBUUkFDRV9QU181LA0KKyAgICBUUkFDRV9QU182LA0KKyAgICBUUkFDRV9QU183LA0KKyAgICBUUkFDRV9QU184LA0KKyAgICBUUkFDRV9QU185LA0KKyAgICBUUkFDRV9QU18xMCwNCisgICAgVFJBQ0VfUFNfMTEsDQorICAgIFRSQUNFX1BTXzEyLA0KKyAgICBUUkFDRV9QU18xMywNCisgICAgVFJBQ0VfUFNfMTQsDQorICAgIFRSQUNFX1BTXzE1LA0KKyAgICBUUkFDRV9QU18xNiwNCisgICAgVFJBQ0VfUFNfMTcsDQorICAgIFRSQUNFX1BTXzE4LA0KKyAgICBUUkFDRV9QU18xOSwNCisNCisgICAgVFJBQ0VfUEhZXzAgPSAweDAwMDYwMDAwLA0KKyAgICBUUkFDRV9QSFlfMSwNCisgICAgVFJBQ0VfUEhZX1NMRUVQLA0KKyAgICBUUkFDRV9QSFlfUlVOTklORywNCisgICAgVFJBQ0VfUEhZXzQsDQorICAgIFRSQUNFX1BIWV81LA0KKyAgICBUUkFDRV9QSFlfNiwNCisgICAgVFJBQ0VfUEhZXzcsDQorICAgIFRSQUNFX1BIWV84LA0KKyAgICBUUkFDRV9QSFlfOSwNCisgICAgVFJBQ0VfUEhZXzEwLA0KKyAgICBUUkFDRV9QSFlfMTEsDQorICAgIFRSQUNFX1BIWV8xMiwNCisgICAgVFJBQ0VfUEhZXzEzLA0KKyAgICBUUkFDRV9QSFlfMTQsDQorICAgIFRSQUNFX1BIWV8xNSwNCisgICAgVFJBQ0VfUEhZXzE2LA0KKyAgICBUUkFDRV9QSFlfMTcsDQorICAgIFRSQUNFX1BIWV8xOCwNCisgICAgVFJBQ0VfUEhZXzE5LA0KKw0KKyAgICBUUkFDRV9TWVNFTlRSWSA9IDB4MDAwNzAwMDAsDQorICAgIFRSQUNFX1NZU0VOVFJZX0ZJTklTSCwNCisgICAgVFJBQ0VfSEFMX0lOSVQsDQorICAgIFRSQUNFX0hBTF9SRUZfSU5JVCwNCisgICAgVFJBQ0VfU0xFRVAsDQorICAgIFRSQUNFX1JVTk5JTkcsDQorICAgIFRSQUNFX0NPTU1fNiwNCisgICAgVFJBQ0VfQ09NTV83LA0KKyAgICBUUkFDRV9DT01NXzgsDQorICAgIFRSQUNFX0NPTU1fOSwNCisgICAgVFJBQ0VfQ09NTV8xMCwNCisgICAgVFJBQ0VfQ09NTV8xMSwNCisgICAgVFJBQ0VfQ09NTV8xMiwNCisgICAgVFJBQ0VfQ09NTV8xMywNCisgICAgVFJBQ0VfQ09NTV8xNCwNCisgICAgVFJBQ0VfQ09NTV8xNSwNCisgICAgVFJBQ0VfQ09NTV8xNiwNCisgICAgVFJBQ0VfQ09NTV8xNywNCisgICAgVFJBQ0VfQ09NTV8xOCwNCisgICAgVFJBQ0VfQ09NTV8xOSwNCisNCit9IFRfVFJBQ0VfRkxBRzsNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisqILqvyv3D+7PGo7p6U3lzX1NldFRyYWNlRmxhZw0KKyoguabE3MPoyvajusno1sO4+tfZTE9HDQorKiCyzsr9y7XD96O6IA0KKyogt7Ugu9gg1rWjuiANCisqIMbky/zLtcP3o7ogDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorVk9JRCB6U3lzX1NldFRyYWNlRmxhZyhUX1RSQUNFX0ZMQUcgZmxhZywgVk9JRCAqZGF0YSk7DQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorKiC6r8r9w/uzxqO6elN5c19HZXRUcmFjZUZsYWcNCisqILmmxNzD6Mr2o7qy6dGvuPrX2UxPRw0KKyogss7K/cu1w/ejuiANCisqILe1ILvYINa1o7ogDQorKiDG5Mv8y7XD96O6IA0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK1RfVFJBQ0VfRkxBRyB6U3lzX0dldFRyYWNlRmxhZyhWT0lEKTsNCisNCisNCisjZW5kaWYNCmRpZmYgLS1naXQgYS9wdWIvaW5jbHVkZS9udi9yZWZfcncuaCBiL3B1Yi9pbmNsdWRlL252L3JlZl9ydy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5OWE4MzAKLS0tIC9kZXYvbnVsbAorKysgYi9wdWIvaW5jbHVkZS9udi9yZWZfcncuaApAQCAtMCwwICsxLDE2IEBACit0eXBlZGVmIHN0cnVjdA0KK3sNCisJQllURSBudkluZXJWZXJzaW9uWzEwMF07DQorCUJZVEUgbnZFeFZlcnNpb25bMTAwXTsNCisJQllURSBudkhXVmVyc2lvblsxMDBdOw0KKwlCWVRFIG52SW5lck1vZGVsTnVtWzMyXTsNCisJQllURSBudkV4TW9kZWxOdW1bMzJdOw0KKwlCWVRFIG52U1NJRFsxMDBdOw0KKwlCWVRFIG52Q0dNSVsxMDBdOw0KKwlCWVRFIG52V0lGSUtleVs2NV07DQorCUJZVEUgbnZVbmxvY2tUaW1lc1s0XTsNCisJQllURSBudlZlcnNpb25Nb2RlOw0KKwlCWVRFIG52WmlzbXM7DQorCUJZVEUgbnZEbTsNCit9VF9aQ3RybV9OVl9GSUxFX0lORk87DQorDQpkaWZmIC0tZ2l0IGEvcHViL2luY2x1ZGUvcHNfcGh5L2F0aXBzZXZlbnQuaCBiL3B1Yi9pbmNsdWRlL3BzX3BoeS9hdGlwc2V2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWFjNmRlYgotLS0gL2Rldi9udWxsCisrKyBiL3B1Yi9pbmNsdWRlL3BzX3BoeS9hdGlwc2V2ZW50LmgKQEAgLTAsMCArMSwxNjQ4IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisqsOaxvsv509AgKEMpMjAxNtbQ0MvNqNG2ucm33dPQz965q8u+DQorKsSjv+nD+zoNCisqzsS8/sP7OmF0aXBzZXZlbnQuaA0KKyrKtc/WuabE3DpBVEnP4LnYz/vPorrFDQorKrDmsb46VjEuMA0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKyNpZm5kZWYgICBaUFNfQVRJX1BTRUNFTlRfREVGX0gNCisjZGVmaW5lICAgWlBTX0FUSV9QU0VDRU5UX0RFRl9IDQorDQorLyrQrdLp1bvX08+1zbMsINPJ09q6zVNETL34s8y7pc2oo6zG5MrCvP66xbao0uXOqjE2zrujrLnK0K3S6dW7ysK8/rrFvfa1zTE2zrvT0NCno6yyu8q508O43zE2zrsqLw0KKyNkZWZpbmUgRVZFTlRfUFNfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpMHgwMDAwQTAwMA0KKyNkZWZpbmUgRVZFTlRfUFNfRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0JBU0UgKyAweDAwMDA1ZjNmKQ0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlBTIG1zZyByYW5nZSBzdGFydCAoNTUzMCkqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisvKlVJQ0O21M3iz/vPore2zqcoMjAwKSovDQorI2RlZmluZSBBUF9VSUNDX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgIChEV09SRClFVkVOVF9QU19CQVNFDQorI2RlZmluZSBBUF9VSUNDX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19FVkVOVF9CQVNFICsgMTAwKQ0KKyNkZWZpbmUgQVBfVUlDQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgOTkpDQorDQorLypNTUlBttTN4s/7z6K3ts6nKDE2MjUpKi8NCisjZGVmaW5lIEFQX01NSUFfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0VORCArIDEpDQorDQorI2RlZmluZSBBUF9NTUlBX0VWRU5UX01NX0JBU0UgICAgICAgICAgICAgICAgICAgIChEV09SRClBUF9NTUlBX0VWRU5UX0JBU0UNCisjZGVmaW5lIEFQX01NSUFfTU1fUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX01NX0JBU0UgKyAxMDApDQorI2RlZmluZSBBUF9NTUlBX0VWRU5UX01NX0VORCAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9NTV9SU1BfRVZFTlQgKyA5OSkNCisNCisjZGVmaW5lIEFQX01NSUFfRVZFTlRfQ0NfQkFTRSAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX01NX0VORCArIDEpDQorI2RlZmluZSBBUF9NTUlBX0NDX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9DQ19CQVNFICsgMTAwKQ0KKyNkZWZpbmUgQVBfTU1JQV9FVkVOVF9DQ19FTkQgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfQ0NfUlNQX0VWRU5UICsgOTkpDQorDQorI2RlZmluZSBBUF9NTUlBX0VWRU5UX1NNU19CQVNFICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9DQ19FTkQgKyAxKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01TX0JBU0UgKyAxMDApDQorI2RlZmluZSBBUF9NTUlBX0VWRU5UX1NNU19FTkQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9TTVNfUlNQX0VWRU5UICsgOTkpDQorDQorI2RlZmluZSBBUF9NTUlBX0VWRU5UX1NTX0JBU0UgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TTVNfRU5EICArIDEpDQorI2RlZmluZSBBUF9NTUlBX1NTX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TU19CQVNFICsgNTApDQorI2RlZmluZSBBUF9NTUlBX0VWRU5UX1NTX0VORCAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9TU19SU1BfRVZFTlQgKyA0OSkNCisNCisjZGVmaW5lIEFQX01NSUFfRVZFTlRfU01fQkFTRSAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NTX0VORCArIDEpDQorI2RlZmluZSBBUF9NTUlBX1NNX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TTV9CQVNFICsgMTAwKQ0KKyNkZWZpbmUgQVBfTU1JQV9FVkVOVF9TTV9FTkQgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01fUlNQX0VWRU5UICsgOTkpDQorDQorI2RlZmluZSBBUF9NTUlBX0VWRU5UX0VTTV9CQVNFICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TTV9FTkQgKyAxKQ0KKyNkZWZpbmUgQVBfTU1JQV9FU01fUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfRVNNX0JBU0UgKyA1MCkNCisjZGVmaW5lIEFQX01NSUFfRVZFTlRfRVNNX0VORCAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VTTV9SU1BfRVZFTlQgKyA0OSkNCisNCisjZGVmaW5lIEFQX01NSUFfRVZFTlRfVUlDQ19CQVNFICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0VTTV9FTkQgKyAxKQ0KKyNkZWZpbmUgQVBfTU1JQV9VSUNDX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfVUlDQ19CQVNFICsgMTAwKQ0KKyNkZWZpbmUgQVBfTU1JQV9FVkVOVF9VSUNDX0VORCAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfVUlDQ19SU1BfRVZFTlQgKyA5OSkNCisNCisjZGVmaW5lIEFQX01NSUFfRVZFTlRfVVNBVF9CQVNFICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1VJQ0NfRU5EICsgMSkNCisjZGVmaW5lIEFQX01NSUFfVVNBVF9SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1VTQVRfQkFTRSArIDUpDQorI2RlZmluZSBBUF9NTUlBX0VWRU5UX1VTQVRfRU5EICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9VU0FUX1JTUF9FVkVOVCArIDQpDQorDQorI2RlZmluZSBBUF9NTUlBX0VWRU5UX0NCU19CQVNFICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9VU0FUX0VORCArIDEpDQorI2RlZmluZSBBUF9NTUlBX0NCU19SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9DQlNfQkFTRSArIDUpDQorI2RlZmluZSBBUF9NTUlBX0VWRU5UX0NCU19FTkQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9DQlNfUlNQX0VWRU5UICsgOSkNCisNCisjZGVmaW5lIEFQX01NSUFfRVZFTlRfUEJfQkFTRSAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NCU19FTkQgKyAxKQ0KKyNkZWZpbmUgQVBfTU1JQV9QQl9SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfUEJfQkFTRSArIDEwMCkNCisjZGVmaW5lIEFQX01NSUFfRVZFTlRfUEJfRU5EICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1BCX1JTUF9FVkVOVCArIDk5KQ0KKw0KKyNkZWZpbmUgQVBfTU1JQV9FVkVOVF9FTV9CQVNFICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfUEJfRU5EICsgMSkNCisjZGVmaW5lIEFQX01NSUFfRU1fUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0VNX0JBU0UgKyA1MCkNCisjZGVmaW5lIEFQX01NSUFfRVZFTlRfRU1fRU5EICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VNX1JTUF9FVkVOVCArIDQ5KQ0KKw0KKyNkZWZpbmUgQVBfTU1JQV9FVkVOVF9PVEhFUl9CQVNFICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfRU1fRU5EICsgMSkNCisjZGVmaW5lIEFQX01NSUFfT1RIRVJfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX09USEVSX0JBU0UgKyA1MCkNCisjZGVmaW5lIEFQX01NSUFfRVZFTlRfT1RIRVJfRU5EICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX09USEVSX1JTUF9FVkVOVCArIDQ5KQ0KKw0KKyNkZWZpbmUgQVBfTU1JQV9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpQVBfTU1JQV9FVkVOVF9PVEhFUl9FTkQgDQorDQorDQorLypBVEnT61BESc/7z6K3ts6nKDIwKSovDQorI2RlZmluZSBBVElfUERJX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfQkFTRSArIDE4NTApDQorI2RlZmluZSBBVElfUERJX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVRJX1BESV9FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBBVElfUERJX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVRJX1BESV9SU1BfRVZFTlQgKyA5KQ0KKw0KKy8qQVRJ0+tDU0TP+8+it7bOpygxMCkqLw0KKyNkZWZpbmUgQVRJX0NTRF9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFUSV9QRElfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIEFUSV9DU0RfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBVElfQ1NEX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgQVRJX0NTRF9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFUSV9DU0RfUlNQX0VWRU5UICsgNCkNCisNCisvKk1NSUHT61VNTS9DQy9TUy9TTVMvU00vVUlDQy9FU00vQVPP+8+it7bOpyg2OTApKi8NCisjZGVmaW5lIE1NSUFfTkFTX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19CQVNFICsgMTg4MCkNCisNCisjZGVmaW5lIE1NSUFfVU1NX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKU1NSUFfTkFTX0VWRU5UX0JBU0UNCisjZGVmaW5lIE1NSUFfVU1NX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1VNTV9FVkVOVF9CQVNFICsgNTApDQorI2RlZmluZSBNTUlBX1VNTV9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgNDkpDQorDQorI2RlZmluZSBNTUlBX0NDX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIE1NSUFfQ0NfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0NDX0VWRU5UX0JBU0UgKyA1MCkNCisjZGVmaW5lIE1NSUFfQ0NfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0NDX1JTUF9FVkVOVCArIDQ5KQ0KKw0KKyNkZWZpbmUgTU1JQV9TTVNfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQ0NfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIE1NSUFfU01TX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNU19FVkVOVF9CQVNFICsgNTApDQorI2RlZmluZSBNTUlBX1NNU19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TTVNfUlNQX0VWRU5UICsgNDkpDQorDQorI2RlZmluZSBNTUlBX1NTX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TTVNfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIE1NSUFfU1NfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NTX0VWRU5UX0JBU0UgKyA1MCkNCisjZGVmaW5lIE1NSUFfU1NfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NTX1JTUF9FVkVOVCArIDQ5KQ0KKw0KKyNkZWZpbmUgTU1JQV9TTV9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU1NfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIE1NSUFfU01fUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX0VWRU5UX0JBU0UgKyA1MCkNCisjZGVmaW5lIE1NSUFfU01fRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX1JTUF9FVkVOVCArIDQ5KQ0KKw0KKyNkZWZpbmUgTU1JQV9FU01fRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01fRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIE1NSUFfRVNNX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0VTTV9FVkVOVF9CQVNFICsgMTUpDQorI2RlZmluZSBNTUlBX0VTTV9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9FU01fUlNQX0VWRU5UICsgMTQpDQorDQorI2RlZmluZSBNTUlBX0NCU19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9FU01fRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIE1NSUFfQ0JTX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0NCU19FVkVOVF9CQVNFICsgMTUpDQorI2RlZmluZSBNTUlBX0NCU19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9DQlNfUlNQX0VWRU5UICsgMTQpDQorDQorI2RlZmluZSBNTUlBX1NORENQX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9DQlNfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIE1NSUFfU05EQ1BfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NORENQX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIE1NSUFfU05EQ1BfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NORENQX1JTUF9FVkVOVCArIDE0KQ0KKw0KKyNkZWZpbmUgTU1JQV9OQVNfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpTU1JQV9TTkRDUF9FVkVOVF9FTkQNCisNCisjZGVmaW5lIE1NSUFfQVNfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX05BU19FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgTU1JQV9BU19SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDUwKQ0KKyNkZWZpbmUgTU1JQV9BU19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfUlNQX0VWRU5UICsgNDkpDQorDQorLyoqKiDUrVNJR19DT0RFLkjW0NLG1rK5/cC0tcTP+8+iKDY2MCkgKioqLw0KKyNkZWZpbmUgRVZFTlRfUFNfR1NNX05PUk1BTF9CQVNFICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0JBU0UgKyA0MzAwKQ0KKw0KKyNkZWZpbmUgTEFQRE1fRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpRVZFTlRfUFNfR1NNX05PUk1BTF9CQVNFDQorI2RlZmluZSBMQVBETV9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTEFQRE1fRVZFTlRfQkFTRSArIDE5KQ0KKw0KKyNkZWZpbmUgR1JSX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExBUERNX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBHUlJfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxOTkpDQorDQorI2RlZmluZSBHTUFDX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBHTUFDX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgNjkpDQorDQorI2RlZmluZSBHUkxDX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgR1JMQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSTENfRVZFTlRfQkFTRSArIDY5KQ0KKw0KKyNkZWZpbmUgR0xMQ19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSTENfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIEdMTENfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHTExDX0VWRU5UX0JBU0UgKyA0OSkNCisNCisjZGVmaW5lIFNORENQX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHTExDX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBTTkRDUF9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU05EQ1BfRVZFTlRfQkFTRSArIDQ5KQ0KKw0KKyNkZWZpbmUgR1JSQ19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNORENQX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBHUlJDX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgNDkpDQorDQorI2RlZmluZSBHU01BX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgR1NNQV9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdTTUFfRVZFTlRfQkFTRSArIDE0OSkNCisNCisjZGVmaW5lIEVWRU5UX1BTX0dTTV9OT1JNQUxfRU5EICAgICAgICAgICAgICAgICAgKERXT1JEKUdTTUFfRVZFTlRfRU5EDQorDQorLypBVEm2qMqxxvfP+8+it7bOpyovDQorI2RlZmluZSBUSU1FUl9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfQkFTRSArIDUwMDApDQorDQorI2RlZmluZSBNTUlBX1RJTUVSX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgIChEV09SRClUSU1FUl9FVkVOVF9CQVNFDQorI2RlZmluZSBNTUlBX1RJTUVSX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9USU1FUl9FVkVOVF9CQVNFICsgMTkpDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqVE9PTFMgJiBST0FEVEVTVCBtc2cgIHJhbmdlIHN0YXJ0KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorLyqx6te80MXB7srCvP66xbe2zqcoMTAwKSovDQorI2RlZmluZSBTVEFOREFSRF9TSUdfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfQkFTRSArIDcwMDApDQorI2RlZmluZSBTVEFOREFSRF9TSUdfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgIChEV09SRCkoU1RBTkRBUkRfU0lHX0VWRU5UX0JBU0UgKyA5OSkNCisNCisvKsK3suLI7bz+ysK8/rrFt7bOpyg4MDApKi8NCisjZGVmaW5lIFBTX1JPQURURVNUX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19CQVNFICsgNzEwMCkNCisjZGVmaW5lIFBTX1JPQURURVNUX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQU19ST0FEVEVTVF9FVkVOVF9CQVNFICsgMjAwKQ0KKyNkZWZpbmUgUFNfUk9BRFRFU1RfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBTX1JPQURURVNUX1JTUF9FVkVOVCArIDU5OSkNCisNCisvKkxURSBCVHJ1bmvKwrz+usW3ts6nKi8NCisjZGVmaW5lIEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19CQVNFICsgMTUwMDApDQorI2RlZmluZSBFVkVOVF9QU19MVEVfQlRSVU5LX0VORCAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfQkFTRSArIDE2MzgzKQ0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlRPT0xTICYgUk9BRFRFU1QgbXNnIHJhbmdlIGVuZCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlBTIHRlc3QgbXNnICByYW5nZSBzdGFydCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKy8q0K3S6dW7xNqy4srUz/vPore2zqcoMTMwKSovDQorI2RlZmluZSBQUklfVEVTVF9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoUFNfUk9BRFRFU1RfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFBSSV9URVNUX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQUklfVEVTVF9FVkVOVF9CQVNFICsgMTkpDQorDQorI2RlZmluZSBUQUZfVEVTVF9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoUFJJX1RFU1RfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFRBRl9URVNUX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUQUZfVEVTVF9FVkVOVF9CQVNFICsgOSkNCisNCisjZGVmaW5lIFRDX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUQUZfVEVTVF9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgVENfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRDX0VWRU5UX0JBU0UgKyAyOSkNCisNCisjZGVmaW5lIE5DQlNfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUQ19FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgTkNCU19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5DQlNfRVZFTlRfQkFTRSArIDE5KQ0KKw0KKyNkZWZpbmUgVVNJUl9URVNUX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5DQlNfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFVTSVJfVEVTVF9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVU0lSX1RFU1RfRVZFTlRfQkFTRSArIDkpDQorDQorI2RlZmluZSBOVVJMQ19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVNJUl9URVNUX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBOVVJMQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTlVSTENfRVZFTlRfQkFTRSArIDE5KQ0KKw0KKyNkZWZpbmUgTlVNQUNfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5VUkxDX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBOVU1BQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTlVNQUNfRVZFTlRfQkFTRSArIDkpDQorDQorI2RlZmluZSBOUERDUF9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTlVNQUNfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIE5QRENQX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShOUERDUF9FVkVOVF9CQVNFICsgOSkNCisNCisvKkdTTbLiytS9+LPMz/vPore2zqcoMzAwKSovDQorI2RlZmluZSBFVkVOVF9QU19HU01fU0lNVV9CQVNFICAgICAgICAgICAgICAgICAgIChEV09SRCkoTlBEQ1BfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIEwxU0lNVV9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKUVWRU5UX1BTX0dTTV9TSU1VX0JBU0UNCisjZGVmaW5lIEwxU0lNVV9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVNJTVVfRVZFTlRfQkFTRSArIDQ5KQ0KKw0KKyNkZWZpbmUgTkxBUERNX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxU0lNVV9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgTkxBUERNX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5MQVBETV9FVkVOVF9CQVNFICsgNDkpDQorDQorI2RlZmluZSBOR01BQ19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTkxBUERNX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBOR01BQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDk5KQ0KKw0KKyNkZWZpbmUgTkxMQ19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5HTUFDX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBOTExDX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTkxMQ19FVkVOVF9CQVNFICsgNDkpDQorDQorI2RlZmluZSBOUkxDX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTkxMQ19FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgTlJMQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDQ5KQ0KKw0KKyNkZWZpbmUgRVZFTlRfUFNfR1NNX1NJTVVfRU5EICAgICAgICAgICAgICAgICAgICAoRFdPUkQpTlJMQ19FVkVOVF9FTkQNCisNCisvKkdTTSBBU7bUtciy49DFwe64+tfZysK8/rrFt7bOp7ao0uUoMTAwKSovDQorI2RlZmluZSBTSUdUUkFDRV9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfR1NNX1NJTVVfRU5EICsgMSkNCisNCisvKkwxR9DFwe64+tfZysK8/rrFt7bOp7ao0uUoNTApKi8gICAgDQorI2RlZmluZSBMMUdfU1RfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU0lHVFJBQ0VfRVZFTlRfQkFTRSArIDEwMCkNCisjZGVmaW5lIEwxR19TVF9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMUdfU1RfRVZFTlRfQkFTRSArIDQ5KQ0KKw0KKyNkZWZpbmUgU0lHVFJBQ0VfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpTDFHX1NUX0VWRU5UX0VORA0KKw0KKy8qR1JSuq/K/bj619nP+8+it7bOpygxMDApKi8NCisjZGVmaW5lIEdTTV9GVU5DX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBHUlJfRlVOQ19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKUdTTV9GVU5DX0VWRU5UX0JBU0UNCisjZGVmaW5lIEdSUl9GVU5DX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9GVU5DX0VWRU5UX0JBU0UgKyA5OSkNCisNCisvKrqvyv3QxcHuuPrX2c/7z6K3ts6nKDYwKSovDQorI2RlZmluZSBGVU5DX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0ZVTkNfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFVSUkNfRlVOQ19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKUZVTkNfRVZFTlRfQkFTRQ0KKyNkZWZpbmUgVVJSQ19GVU5DX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRlVOQ19FVkVOVF9CQVNFICsgNDkpDQorDQorI2RlZmluZSBUQUZfRlVOQ19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19GVU5DX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBUQUZfRlVOQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVEFGX0ZVTkNfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBGVU5DX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRClUQUZfRlVOQ19FVkVOVF9FTkQNCisNCisvKsirvtax5MG/u/HIocrCvP66xbe2zqe2qNLlKDE1MCkqLyAgICANCisjZGVmaW5lIEdWQVJfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShGVU5DX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBHVkFSX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgMTQ5KQ0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFVJQ0O21M3izOG5qc/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIEFQX1VJQ0NfSU5JVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgQVBfVUlDQ19WRVJJRllfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBBUF9VSUNDX1JFQURfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIEFQX1VJQ0NfVVBEQVRFX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgQVBfVUlDQ19BVVRIX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBBUF9VSUNDX1BXUk9GRl9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIEFQX1VJQ0NfUElOX1JFTUFJTl9OVU1fUkVRX0VWICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgQVBfVUlDQ19VU0FUX0VOVkVMT1BfUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfRVZFTlRfQkFTRSArIDcpDQorI2RlZmluZSBBUF9VSUNDX1VTQVRfVEVSTU5MX1JTUF9SRVFfRVYgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIEFQX1VJQ0NfVVNBVF9URVJNTkxfUFJPRl9SRVFfRVYgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgQVBfVUlDQ19QSU5fRU5BQkxFX1FVRVJZX1JFUV9FViAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfRVZFTlRfQkFTRSArIDEwKQ0KKyNkZWZpbmUgQVBfVUlDQ19QSU5fU1RBVF9RVUVSWV9SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfRVZFTlRfQkFTRSArIDExKQ0KKyNkZWZpbmUgQVBfVUlDQ19QSU5fQVBQTF9TRVRfUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfRVZFTlRfQkFTRSArIDEyKQ0KKyNkZWZpbmUgQVBfVUlDQ19QSU5fQVBQTF9SRUFEX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfRVZFTlRfQkFTRSArIDEzKQ0KKyNkZWZpbmUgQVBfVUlDQ19DQVJEX01PREVfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfRVZFTlRfQkFTRSArIDE0KQ0KKyNkZWZpbmUgQVBfVUlDQ19XUklURV9JVEVNX0lORF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfRVZFTlRfQkFTRSArIDE1KQ0KKyNkZWZpbmUgQVBfVUlDQ19VUERBVEVfSVRFTV9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfRVZFTlRfQkFTRSArIDE2KQ0KKyNkZWZpbmUgQVBfVUlDQ19WRVJJRllfUElOMl9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfRVZFTlRfQkFTRSArIDE3KQ0KKyNkZWZpbmUgQVBfVUlDQ19aUFVLX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfRVZFTlRfQkFTRSArIDE4KSAgICANCisjZGVmaW5lIEFQX1VJQ0NfSU5DUkVBU0VfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0JBU0UgKyAxOSkNCisjZGVmaW5lIEFQX1VJQ0NfUkVTRVRfQUNNX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0JBU0UgKyAyMCkNCisjZGVmaW5lIEFQX1VJQ0NfVU5CTE9DS19SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0JBU0UgKyAyMSkNCisjZGVmaW5lIEFQX1VJQ0NfQ0hBTkdFX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0JBU0UgKyAyMikNCisjZGVmaW5lIEFQX1VJQ0NfRkFDSUxJVFlfUElOX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0JBU0UgKyAyMykgICAgDQorI2RlZmluZSBBUF9VSUNDX1JFRlJFU0hfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19FVkVOVF9CQVNFICsgMjQpDQorI2RlZmluZSBBUF9VSUNDX0RFQUNURU5EX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19FVkVOVF9CQVNFICsgMjUpDQorI2RlZmluZSBBUF9VSUNDX0ZJTEVDSEFOR0VFTkRfSU5EX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19FVkVOVF9CQVNFICsgMjYpICAgICANCisjZGVmaW5lIEFQX1VJQ0NfVE9fUkVBRF9DQVJEX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0JBU0UgKyAyNykNCisjZGVmaW5lIEFQX1VJQ0NfQ1NJTV9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0JBU0UgKyAyOCkNCisjZGVmaW5lIEFQX1VJQ0NfQVBfUFdST0ZGX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0JBU0UgKyAyOSkNCisjZGVmaW5lIEFQX1VJQ0NfQ0NIT19SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0JBU0UgKyAzMCkNCisjZGVmaW5lIEFQX1VJQ0NfQ0NIQ19SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0JBU0UgKyAzMSkNCisjZGVmaW5lIEFQX1VJQ0NfQ0dMQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0JBU0UgKyAzMikgICAgDQorI2RlZmluZSBBUF9VSUNDX0NSU01fUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19FVkVOVF9CQVNFICsgMzMpDQorI2RlZmluZSBBUF9VSUNDX01PVkVDQVJEX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19FVkVOVF9CQVNFICsgMzQpDQorI2RlZmluZSBBUF9VSUNDX0lOU0VSVENBUkRfSU5EX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19FVkVOVF9CQVNFICsgMzUpDQorI2RlZmluZSBBUF9VSUNDX0dFVF9JTkZPX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19FVkVOVF9CQVNFICsgMzYpDQorI2RlZmluZSBBUF9VSUNDX0VGU1RBVFVTX1FVRVJZX1JFUV9FViAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19FVkVOVF9CQVNFICsgMzcpDQorI2RlZmluZSBBUF9VSUNDX0VGU1RBVFVTX01PRElGWV9SRVFfRVYgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19FVkVOVF9CQVNFICsgMzgpDQorI2RlZmluZSBBUF9VSUNDX1BSRVBFUlNPTlJFQ19TRUFSQ0hfUkVRX0VWICAgICAgIChEV09SRCkoQVBfVUlDQ19FVkVOVF9CQVNFICsgMzkpDQorI2RlZmluZSBBUF9VSUNDX1BCX1NFQVJDSF9SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19FVkVOVF9CQVNFICsgNDApICAgIA0KKyNkZWZpbmUgQVBfVUlDQ19SRUFEX1RPX1BTREVWX0lORF9FViAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfRVZFTlRfQkFTRSArIDQ1KSANCisjZGVmaW5lIEFQX1VJQ0NfR0VUX1JFQ19OVU1fUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0JBU0UgKyA0NikNCisjZGVmaW5lIEFQX1VJQ0NfQUlSX0FVVEhfUlNQX0lORF9FViAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0JBU0UgKyA0NykgDQorI2RlZmluZSBBUF9VSUNDX1JFQURfRUlEX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX0VWRU5UX0JBU0UgKyA0OCkgDQorDQorI2RlZmluZSBBUF9VSUNDX0lOSVRfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19SU1BfRVZFTlQgKyAwKQ0KKyNkZWZpbmUgQVBfVUlDQ19VSUNDT0tfSU5EX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIEFQX1VJQ0NfSU5JVF9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX1JTUF9FVkVOVCArIDIpDQorI2RlZmluZSBBUF9VSUNDX1NMT1RfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19SU1BfRVZFTlQgKyAzKQ0KKyNkZWZpbmUgQVBfVUlDQ19SRUFEX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIEFQX1VJQ0NfVVBEQVRFX0NORl9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX1JTUF9FVkVOVCArIDUpDQorI2RlZmluZSBBUF9VSUNDX0FVVEhfUlNQX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19SU1BfRVZFTlQgKyA2KQ0KKyNkZWZpbmUgQVBfVUlDQ19BVVRIX0ZBSUxfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgNykNCisjZGVmaW5lIEFQX1VJQ0NfTk9DQVJEX0lORF9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX1JTUF9FVkVOVCArIDgpDQorI2RlZmluZSBBUF9VSUNDX1BJTl9SRU1BSU5fTlVNX0NORl9FViAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19SU1BfRVZFTlQgKyA5KQ0KKyNkZWZpbmUgQVBfVUlDQ19VU0FUX0VOVkVMT1BfQ05GX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgMTApDQorI2RlZmluZSBBUF9VSUNDX1VTQVRfQ09NTU9OX0NORl9FViAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19SU1BfRVZFTlQgKyAxMSkNCisjZGVmaW5lIEFQX1VJQ0NfVVNBVF9QUk9WX0NNRF9JTkRfRVYgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX1JTUF9FVkVOVCArIDEyKQ0KKyNkZWZpbmUgQVBfVUlDQ19QSU5fRU5BQkxFX1FVRVJZX0NORl9FViAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgMTMpDQorI2RlZmluZSBBUF9VSUNDX1BJTl9TVEFUX1FVRVJZX0NORl9FViAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19SU1BfRVZFTlQgKyAxNCkNCisjZGVmaW5lIEFQX1VJQ0NfUElOX0FQUExfU0VUX0NORl9FViAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX1JTUF9FVkVOVCArIDE1KQ0KKyNkZWZpbmUgQVBfVUlDQ19QSU5fQVBQTF9SRUFEX0NORl9FViAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgMTYpDQorI2RlZmluZSBBUF9VSUNDX0NBUkRfTU9ERV9DTkZfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19SU1BfRVZFTlQgKyAxNykNCisjZGVmaW5lIEFQX1VJQ0NfUFdST0ZGX0NORl9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX1JTUF9FVkVOVCArIDE4KQ0KKyNkZWZpbmUgQVBfVUlDQ19DT01NT05fQ05GX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgMTkpIA0KKyNkZWZpbmUgQVBfVUlDQ19VSUNDX1VOU1lOQ19JTkRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgMjApIA0KKyNkZWZpbmUgQVBfVUlDQ19OT19QUk9DX05PVElGWV9JTkRfRVYgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgMjEpDQorI2RlZmluZSBBUF9VSUNDX0NBUkRfTE9DS19TVEFUVVNfSU5EX0VWICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19SU1BfRVZFTlQgKyAyMikgDQorI2RlZmluZSBBUF9VSUNDX1BXUk9GRl9JTkRfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19SU1BfRVZFTlQgKyAyMykNCisjZGVmaW5lIEFQX1VJQ0NfVVBEQVRFX0lURU1fQ05GX0VWICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX1JTUF9FVkVOVCArIDI0KQ0KKyNkZWZpbmUgQVBfVUlDQ19WRVJJRllfUElOMl9DTkZfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgMjUpDQorI2RlZmluZSBBUF9VSUNDX0lOQ1JFQVNFX0FDTV9GQUlMX0lORF9FViAgICAgICAgIChEV09SRCkoQVBfVUlDQ19SU1BfRVZFTlQgKyAyNikgIA0KKyNkZWZpbmUgQVBfVUlDQ19GSUxFQ0hBTkdFX0lORF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgMjcpDQorI2RlZmluZSBBUF9VSUNDX0NTSU1fQ05GX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19SU1BfRVZFTlQgKyAyOCkNCisjZGVmaW5lIEFQX1VJQ0NfQVRSX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX1JTUF9FVkVOVCArIDI5KSANCisjZGVmaW5lIEFQX1VJQ0NfQ0NIT19DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX1JTUF9FVkVOVCArIDMwKQ0KKyNkZWZpbmUgQVBfVUlDQ19DR0xBX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgMzEpICAgDQorI2RlZmluZSBBUF9VSUNDX0NSU01fQ05GX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19SU1BfRVZFTlQgKyAzMikgICAgDQorI2RlZmluZSBBUF9VSUNDX1VTQVRfRkVUQ0hfSU5EX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19SU1BfRVZFTlQgKyAzMykNCisjZGVmaW5lIEFQX1VJQ0NfR0VUX0lORk9fQ05GX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX1JTUF9FVkVOVCArIDM0KQ0KKyNkZWZpbmUgQVBfVUlDQ19FRlNUQVRVU19RVUVSWV9DTkZfRVYgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgMzUpICAgDQorI2RlZmluZSBBUF9VSUNDX0VGU1RBVFVTX01PRElGWV9DTkZfRVYgICAgICAgICAgIChEV09SRCkoQVBfVUlDQ19SU1BfRVZFTlQgKyAzNikgIA0KKyNkZWZpbmUgQVBfVUlDQ19QUkVQRVJTTlJFQ19TUkNIX0NORl9FViAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgMzcpICANCisjZGVmaW5lIEFQX1VJQ0NfUEJfU0VBUkNIX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9VSUNDX1JTUF9FVkVOVCArIDM4KSAgICAgLyogt9bF5MHLNTDM9c/7z6LH+Lzko6zS0dPDwcszObj2ICovIA0KKyNkZWZpbmUgQVBfVUlDQ19SRUZSRVNIX0hBUFBFTl9JTkRfRVYgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgMzkpIA0KKyNkZWZpbmUgQVBfVUlDQ19BSVJfQVVUSF9SRVFfSU5EX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgNDApIA0KKyNkZWZpbmUgQVBfVUlDQ19SRUFEX0VJRF9DTkZfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgNDEpIA0KKyNkZWZpbmUgQVBfVUlDQ19MT0NfU1RBVF9JTkQgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1VJQ0NfUlNQX0VWRU5UICsgNDIpIA0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIE1NSUG21M3izOG5qc/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBBUC1NTUlBIE1Nz+C52LK/t9bP+8+iusUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIEFQX01NSUFfQ1JFR19TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX01NX0JBU0UgKyAwKQ0KKyNkZWZpbmUgQVBfTU1JQV9DUkVHX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDEpDQorI2RlZmluZSBBUF9NTUlBX0NPUFNfU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9NTV9CQVNFICsgMikNCisjZGVmaW5lIEFQX01NSUFfQ09QU19RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX01NX0JBU0UgKyAzKQ0KKyNkZWZpbmUgQVBfTU1JQV9DT1BTX1RFU1RfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDQpDQorI2RlZmluZSBBUF9NTUlBX0NHQVRUX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9NTV9CQVNFICsgNSkNCisjZGVmaW5lIEFQX01NSUFfQ0dBVFRfUVVFUllfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX01NX0JBU0UgKyA2KQ0KKyNkZWZpbmUgQVBfTU1JQV9DR1JFR19TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDcpDQorI2RlZmluZSBBUF9NTUlBX0NHUkVHX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9NTV9CQVNFICsgOCkNCisjZGVmaW5lIEFQX01NSUFfQ0ZVTl9TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX01NX0JBU0UgKyA5KQ0KKyNkZWZpbmUgQVBfTU1JQV9DRlVOX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDEwKQ0KKyNkZWZpbmUgQVBfTU1JQV9DUExTX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDExKQ0KKyNkZWZpbmUgQVBfTU1JQV9DUExTX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDEyKQ0KKyNkZWZpbmUgQVBfTU1JQV9DUE9MX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDEzKQ0KKyNkZWZpbmUgQVBfTU1JQV9DUE9MX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDE0KQ0KKyNkZWZpbmUgQVBfTU1JQV9DUE9MX1RFU1RfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDE1KQ0KKyNkZWZpbmUgQVBfTU1JQV9aTU1JX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDE2KQ0KKyNkZWZpbmUgQVBfTU1JQV9aTU1JX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDE3KQ0KKyNkZWZpbmUgQVBfTU1JQV9NT0RFX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDE4KQ0KKyNkZWZpbmUgQVBfTU1JQV9aQVRUX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDE5KQ0KKyNkZWZpbmUgQVBfTU1JQV9aQVRUX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDIwKQ0KKyNkZWZpbmUgQVBfTU1JQV9aR0FBVF9TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDIxKQ0KKyNkZWZpbmUgQVBfTU1JQV9aR0FBVF9RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDIyKQ0KKyNkZWZpbmUgQVBfTU1JQV9TWVNJTkZPX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDIzKQ0KKyNkZWZpbmUgQVBfTU1JQV9aQUNUX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDI0KQ0KKyNkZWZpbmUgQVBfTU1JQV9aQUNUX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDI1KQ0KKyNkZWZpbmUgQVBfTU1JQV9NT0RFX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDI2KQ0KKyNkZWZpbmUgQVBfTU1JQV9TWVNDT05GSUdfU0VUX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDI3KQ0KKyNkZWZpbmUgQVBfTU1JQV9TWVNDT05GSUdfUkVBRF9SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDI4KQ0KKyNkZWZpbmUgQVBfTU1JQV9DRVJFR19TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDI5KQ0KKyNkZWZpbmUgQVBfTU1JQV9DRVJFR19RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDMwKQ0KKyNkZWZpbmUgQVBfTU1JQV9aQ1NHX1NFTF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDMxKQ0KKyNkZWZpbmUgQVBfTU1JQV9aQ1NHX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDMyKQ0KKyNkZWZpbmUgQVBfTU1JQV9aQ1NHX0xJU1RfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDMzKQ0KKyNkZWZpbmUgQVBfTU1JQV9DRU1PREVfU0VUX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDM0KQ0KKyNkZWZpbmUgQVBfTU1JQV9DRU1PREVfUVVFUllfUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDM1KQ0KKyNkZWZpbmUgQVBfTU1JQV9aRUFDVF9TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDM2KQ0KKyNkZWZpbmUgQVBfTU1JQV9aRUFDVF9SRUFEX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDM3KQ0KKyNkZWZpbmUgQVBfTU1JQV9DVk1PRF9TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDM4KQ0KKyNkZWZpbmUgQVBfTU1JQV9DVk1PRF9RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDM5KQ0KKyNkZWZpbmUgQVBfTU1JQV9DU19TUlZfUlNQX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDQwKQ0KKyNkZWZpbmUgQVBfTU1JQV9MVEVCR1BMTU5fVEVTVFJFUV9FViAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDQxKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNPVkVSSVBORVRfU0VUUkVRX0VWICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDQyKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNPVkVSSVBORVRfUVVFUllSRVFfRVYgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDQzKQ0KKyNkZWZpbmUgQVBfTU1JQV9GUExNTl9TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDQ0KQ0KKyNkZWZpbmUgQVBfTU1JQV9GUExNTl9RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDQ1KQ0KKyNkZWZpbmUgQVBfTU1JQV9GUExNTl9URVNUX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfTU1fQkFTRSArIDQ2KQ0KKw0KKyNkZWZpbmUgQVBfTU1JQV9DUkVHX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfTU1fUlNQX0VWRU5UICsgMCkNCisjZGVmaW5lIEFQX01NSUFfQ0dSRUdfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX01NX1JTUF9FVkVOVCArIDEpDQorI2RlZmluZSBBUF9NTUlBX1pNTUlfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9NTV9SU1BfRVZFTlQgKyAyKQ0KKyNkZWZpbmUgQVBfTU1JQV9DT1BTX1RFU1RfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfTU1fUlNQX0VWRU5UICsgMykNCisjZGVmaW5lIEFQX01NSUFfQ0dBVFRfUVVFUllfQ05GX0VWICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX01NX1JTUF9FVkVOVCArIDQpDQorI2RlZmluZSBBUF9NTUlBX0NQT0xfUVVFUllfQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9NTV9SU1BfRVZFTlQgKyA1KQ0KKyNkZWZpbmUgQVBfTU1JQV9aQVRUX1FVRVJZX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfTU1fUlNQX0VWRU5UICsgNikNCisjZGVmaW5lIEFQX01NSUFfTU9ERV9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX01NX1JTUF9FVkVOVCArIDcpDQorI2RlZmluZSBBUF9NTUlBX1pBQ1RfUVVFUllfQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9NTV9SU1BfRVZFTlQgKyA4KQ0KKyNkZWZpbmUgQVBfTU1JQV9TWVNDT05GSUdfUkVBRF9DTkZfRVYgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfTU1fUlNQX0VWRU5UICsgOSkNCisjZGVmaW5lIEFQX01NSUFfQ0VSRUdfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX01NX1JTUF9FVkVOVCArIDEwKQ0KKyNkZWZpbmUgQVBfTU1JQV9aQ1NHX1FVRVJZX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfTU1fUlNQX0VWRU5UICsgMTEpDQorI2RlZmluZSBBUF9NTUlBX1pDU0dfTElTVF9DTkZfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9NTV9SU1BfRVZFTlQgKyAxMikNCisjZGVmaW5lIEFQX01NSUFfQ0VNT0RFX1FVRVJZX0NORl9FViAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX01NX1JTUF9FVkVOVCArIDEzKQ0KKyNkZWZpbmUgQVBfTU1JQV9DVk1PRF9RVUVSWV9DTkZfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfTU1fUlNQX0VWRU5UICsgMTQpDQorI2RlZmluZSBBUF9NTUlBX0NTX1NSVl9JTkRfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9NTV9SU1BfRVZFTlQgKyAxNSkNCisjZGVmaW5lIEFQX01NSUFfTFRFQkdQTE1OX1RFU1RDTkZfRVYgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX01NX1JTUF9FVkVOVCArIDE2KQ0KKyNkZWZpbmUgQVBfTU1JQV9JTVNWT1BTX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfTU1fUlNQX0VWRU5UICsgMTcpDQorI2RlZmluZSBBUF9NTUlBX0ZQTE1OX1FVRVJZX0NORl9FViAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9NTV9SU1BfRVZFTlQgKyAxOCkNCisjZGVmaW5lIEFQX01NSUFfRlBMTU5fVEVTVF9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX01NX1JTUF9FVkVOVCArIDE5KQ0KKyNkZWZpbmUgQVBfTU1JQV9FTUVSQkVSX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfTU1fUlNQX0VWRU5UICsgMjApDQorI2RlZmluZSBBUF9NTUlBX0VNRVJOVU1fSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9NTV9SU1BfRVZFTlQgKyAyMSkNCisjZGVmaW5lIEFQX01NSUFfUFNDRkdTVEFSVF9JTkRfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX01NX1JTUF9FVkVOVCArIDIyKQ0KKyNkZWZpbmUgQVBfTU1JQV9QU0NGR0VORF9JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfTU1fUlNQX0VWRU5UICsgMjMpDQorI2RlZmluZSBBUF9NTUlBX1VTRVJfQ0FSRF9TRUxfSU5EX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9NTV9SU1BfRVZFTlQgKyAyNCkNCisjZGVmaW5lIEFQX01NSUFfWkNPUFNfVEVTVF9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX01NX1JTUF9FVkVOVCArIDI1KQ0KKyNkZWZpbmUgQVBfTU1JQV9USU1FWk9ORV9JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfTU1fUlNQX0VWRU5UICsgMjYpDQorI2RlZmluZSBBUF9NTUlBX1pVTFJUSU5EX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9NTV9SU1BfRVZFTlQgKyAyNykNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBBUC1NTUlBIENDz+C52LK/t9bP+8+iusUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIEFQX01NSUFfQ0NfU0VUVVBfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyAwKQ0KKyNkZWZpbmUgQVBfTU1JQV9DQ19BTlNXRVJfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfQ0NfQkFTRSArIDEpDQorI2RlZmluZSBBUF9NTUlBX0NDX01PRElGWV9SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9DQ19CQVNFICsgMikNCisjZGVmaW5lIEFQX01NSUFfQ0NfU1RBVEVfUVVFUllfUkVRX0VWICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyAzKQ0KKyNkZWZpbmUgQVBfTU1JQV9DQ19ESVNDX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfQ0NfQkFTRSArIDQpDQorI2RlZmluZSBBUF9NTUlBX0NDX0RUTUZfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9DQ19CQVNFICsgNSkNCisjZGVmaW5lIEFQX01NSUFfQ0NfQ0hMRF9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyA2KQ0KKyNkZWZpbmUgQVBfTU1JQV9DQ19RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfQ0NfQkFTRSArIDcpDQorI2RlZmluZSBBUF9NTUlBX0NDX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9DQ19CQVNFICsgOCkNCisjZGVmaW5lIEFQX01NSUFfRFNfU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyA5KQ0KKyNkZWZpbmUgQVBfTU1JQV9EU19RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfQ0NfQkFTRSArIDEwKQ0KKyNkZWZpbmUgQVBfTU1JQV9NT0RfVE9fTVVMVE1FRElBX1JTUF9FViAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfQ0NfQkFTRSArIDExKQ0KKyNkZWZpbmUgQVBfTU1JQV9DQ19NVENfUlNQX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfQ0NfQkFTRSArIDEyKQ0KKyNkZWZpbmUgQVBfTU1JQV9EU0NJX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfQ0NfQkFTRSArIDEzKQ0KKyNkZWZpbmUgQVBfTU1JQV9EU0NJX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfQ0NfQkFTRSArIDE0KQ0KKyNkZWZpbmUgQVBfTU1JQV9DQU9DX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfQ0NfQkFTRSArIDE1KQ0KKyNkZWZpbmUgQVBfTU1JQV9DQU9DX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfQ0NfQkFTRSArIDE2KSAgICAgICAgICAgICAgICANCisjZGVmaW5lIEFQX01NSUFfQ0FDTV9RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyAxNykNCisjZGVmaW5lIEFQX01NSUFfQ0FNTV9RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyAxOCkNCisjZGVmaW5lIEFQX01NSUFfQ1BVQ19RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyAxOSkNCisjZGVmaW5lIEFQX01NSUFfQ0NXRV9RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyAyMCkNCisjZGVmaW5lIEFQX01NSUFfQ0FDTV9TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyAyMSkNCisjZGVmaW5lIEFQX01NSUFfQ0FNTV9TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyAyMikNCisjZGVmaW5lIEFQX01NSUFfQ1BVQ19TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyAyMykNCisjZGVmaW5lIEFQX01NSUFfQ0NXRV9TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyAyNCkNCisjZGVmaW5lIEFQX01NSUFfQ0FMTF9MSU5FX1NFVF9SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyAyNSkNCisjZGVmaW5lIEFQX01NSUFfQ0FMTF9MSU5FX1FSWV9SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyAyNikNCisNCisjZGVmaW5lIEFQX01NSUFfQ0NfQ0JTVF9RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfQ0NfQkFTRSArIDI3KQ0KKyNkZWZpbmUgQVBfTU1JQV9DQ19DQlNUX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9DQ19CQVNFICsgMjgpDQorI2RlZmluZSBBUF9NTUlBX0NDX0NDVUdfUVVFUllfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyAyOSkNCisjZGVmaW5lIEFQX01NSUFfQ0NfQ0NVR19TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfQ0NfQkFTRSArIDMwKQ0KKyNkZWZpbmUgQVBfTU1JQV9DQ19DTU9EX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9DQ19CQVNFICsgMzEpDQorI2RlZmluZSBBUF9NTUlBX0NDX0NNT0RfU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyAzMikNCisjZGVmaW5lIEFQX01NSUFfQ0NfQ1JfUVVFUllfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyAzMykNCisjZGVmaW5lIEFQX01NSUFfQ0NfQ1JfU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyAzNCkNCisjZGVmaW5lIEFQX01NSUFfQ0NfQ1JDX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9DQ19CQVNFICsgMzUpDQorI2RlZmluZSBBUF9NTUlBX0NDX0NSQ19TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfQ0NfQkFTRSArIDM2KQ0KKyNkZWZpbmUgQVBfTU1JQV9DQ19DU05TX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9DQ19CQVNFICsgMzcpDQorI2RlZmluZSBBUF9NTUlBX0NDX0NTTlNfU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyAzOCkNCisjZGVmaW5lIEFQX01NSUFfQ0NfQ1NTTl9RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfQ0NfQkFTRSArIDM5KQ0KKyNkZWZpbmUgQVBfTU1JQV9DQ19DU1NOX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9DQ19CQVNFICsgNDApDQorI2RlZmluZSBBUF9NTUlBX0NDX0ZDTEFTU19RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfQ0NfQkFTRSArIDQxKQ0KKyNkZWZpbmUgQVBfTU1JQV9DQ19GQ0xBU1NfU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyA0MikNCisjZGVmaW5lIEFQX01NSUFfU1NfQ0hTTl9RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfQ0NfQkFTRSArIDQzKQ0KKyNkZWZpbmUgQVBfTU1JQV9TU19DSFNOX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9DQ19CQVNFICsgNDQpDQorI2RlZmluZSBBUF9NTUlBX1NTX0NSTFBfUVVFUllfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyA0NSkNCisjZGVmaW5lIEFQX01NSUFfU1NfQ1JMUF9TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfQ0NfQkFTRSArIDQ2KQ0KKyNkZWZpbmUgQVBfTU1JQV9TU19FVEJNX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9DQ19CQVNFICsgNDcpDQorI2RlZmluZSBBUF9NTUlBX1NTX0VUQk1fU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0NDX0JBU0UgKyA0OCkNCisNCisjZGVmaW5lIEFQX01NSUFfQ0NfU0VUVVBfQ05GX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0NDX1JTUF9FVkVOVCArIDApDQorI2RlZmluZSBBUF9NTUlBX0NDX1FVRVJZX0NORl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9DQ19SU1BfRVZFTlQgKyAxKQ0KKyNkZWZpbmUgQVBfTU1JQV9DQ19BTlNXRVJfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfQ0NfUlNQX0VWRU5UICsgMikNCisjZGVmaW5lIEFQX01NSUFfQ0NfTU9ESUZZX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0NDX1JTUF9FVkVOVCArIDMpDQorI2RlZmluZSBBUF9NTUlBX0NDX1NUQVRFX1FVRVJZX0NORl9FViAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9DQ19SU1BfRVZFTlQgKyA0KQ0KKyNkZWZpbmUgQVBfTU1JQV9DQ19ESVNDX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfQ0NfUlNQX0VWRU5UICsgNSkNCisjZGVmaW5lIEFQX01NSUFfRFNfUVVFUllfQ05GX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0NDX1JTUF9FVkVOVCArIDYpDQorI2RlZmluZSBBUF9NTUlBX0NPTFBfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9DQ19SU1BfRVZFTlQgKyA3KQ0KKyNkZWZpbmUgQVBfTU1JQV9DUl9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfQ0NfUlNQX0VWRU5UICsgOCkNCisjZGVmaW5lIEFQX01NSUFfTVRfQ0FMTF9TU19OT1RJRllfSU5EX0VWICAgICAgICAgKERXT1JEKShBUF9NTUlBX0NDX1JTUF9FVkVOVCArIDkpDQorI2RlZmluZSBBUF9NTUlBX0NMSVBfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9DQ19SU1BfRVZFTlQgKyAxMCkNCisjZGVmaW5lIEFQX01NSUFfQ0NfUFJPQ19JTkZPX0lORF9FViAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0NDX1JTUF9FVkVOVCArIDExKQ0KKyNkZWZpbmUgQVBfTU1JQV9SSU5HX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfQ0NfUlNQX0VWRU5UICsgMTIpDQorI2RlZmluZSBBUF9NTUlBX0NSSU5HX0lORF9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9DQ19SU1BfRVZFTlQgKyAxMykNCisjZGVmaW5lIEFQX01NSUFfQ0NXQV9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0NDX1JTUF9FVkVOVCArIDE0KQ0KKyNkZWZpbmUgQVBfTU1JQV9NT19DQUxMX1NTX05PVElGWV9JTkRfRVYgICAgICAgICAoRFdPUkQpKEFQX01NSUFfQ0NfUlNQX0VWRU5UICsgMTUpDQorI2RlZmluZSBBUF9NTUlBX01PRF9UT19NVUxUTUVESUFfSU5EX0VWICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9DQ19SU1BfRVZFTlQgKyAxNikNCisjZGVmaW5lIEFQX01NSUFfQ09OTl9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0NDX1JTUF9FVkVOVCArIDE3KQ0KKyNkZWZpbmUgQVBfTU1JQV9PUklHX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfQ0NfUlNQX0VWRU5UICsgMTgpDQorI2RlZmluZSBBUF9NTUlBX0NPTkZfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9DQ19SU1BfRVZFTlQgKyAxOSkNCisjZGVmaW5lIEFQX01NSUFfQ0VORF9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0NDX1JTUF9FVkVOVCArIDIwKQ0KKyNkZWZpbmUgQVBfTU1JQV9DQUxMX1NUQVRFX0lORF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfQ0NfUlNQX0VWRU5UICsgMjEpDQorI2RlZmluZSBBUF9NTUlBX0RTQ0lfUVVFUllfQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9DQ19SU1BfRVZFTlQgKyAyMikNCisjZGVmaW5lIEFQX01NSUFfQ0FPQ19TRVRfQ05GX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0NDX1JTUF9FVkVOVCArIDIzKQ0KKyNkZWZpbmUgQVBfTU1JQV9DUFVDX1FVRVJZX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfQ0NfUlNQX0VWRU5UICsgMjQpDQorI2RlZmluZSBBUF9NTUlBX0NDQ01fSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9DQ19SU1BfRVZFTlQgKyAyNSkNCisjZGVmaW5lIEFQX01NSUFfQ0NXVl9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0NDX1JTUF9FVkVOVCArIDI2KQ0KKyNkZWZpbmUgQVBfTU1JQV9SRURJQUxFTkRfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfQ0NfUlNQX0VWRU5UICsgMjcpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgQVAtTU1JQSBTTVPP4LnYsr+31s/7z6K6xQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfVENNR1NfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01TX0JBU0UgKyAwKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfQ01TU19SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01TX0JBU0UgKyAxKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfVENNR1dfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01TX0JBU0UgKyAyKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfQ01HRF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01TX0JBU0UgKyAzKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfVENNR0NfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01TX0JBU0UgKyA0KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfQ01NU19SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01TX0JBU0UgKyA1KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfQ05NSV9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01TX0JBU0UgKyA2KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfQ01HTF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01TX0JBU0UgKyA3KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfQ01HUl9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01TX0JBU0UgKyA4KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfVENOTUFfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01TX0JBU0UgKyA5KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfQ0dTTVNfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01TX0JBU0UgKyAxMCkNCisjZGVmaW5lIEFQX01NSUFfU01TX0NTTVNfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NNU19CQVNFICsgMTEpDQorI2RlZmluZSBBUF9NTUlBX1NNU19DUE1TX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TTVNfQkFTRSArIDEyKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfQ01HRl9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01TX0JBU0UgKyAxMykNCisjZGVmaW5lIEFQX01NSUFfU01TX0NTQ0FfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NNU19CQVNFICsgMTQpDQorI2RlZmluZSBBUF9NTUlBX1NNU19UQ1NNUF9SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TTVNfQkFTRSArIDE1KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfVENTREhfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01TX0JBU0UgKyAxNikNCisjZGVmaW5lIEFQX01NSUFfU01TX1BDTUdTX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NNU19CQVNFICsgMTcpDQorI2RlZmluZSBBUF9NTUlBX1NNU19QQ01HV19SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TTVNfQkFTRSArIDE4KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfUENNR0NfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01TX0JBU0UgKyAxOSkNCisjZGVmaW5lIEFQX01NSUFfU01TX1BDTk1BX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NNU19CQVNFICsgMjApDQorI2RlZmluZSBBUF9NTUlBX1NNU19DUE1TX1RFU1RfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TTVNfQkFTRSArIDIxKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfWk1FTkFfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01TX0JBU0UgKyAyMikNCisjZGVmaW5lIEFQX01NSUFfU01TX1FVRVJZX01PREVfUkVRX0VWICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NNU19CQVNFICsgMjMpDQorI2RlZmluZSBBUF9NTUlBX1NNU19RVUVSWV9NQVhfSU5ERVhfUkVRX0VWICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TTVNfQkFTRSArIDI0KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfQ05NQV9RVUVSWV9NT0RFX1JFUV9FViAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01TX0JBU0UgKyAyNSkNCisNCisjZGVmaW5lIEFQX01NSUFfU01TX1RDTUdTX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1NNU19SU1BfRVZFTlQgKyAwKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfVENNU1NfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDEpDQorI2RlZmluZSBBUF9NTUlBX1NNU19DTUdXX0NORl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9TTVNfUlNQX0VWRU5UICsgMikNCisjZGVmaW5lIEFQX01NSUFfU01TX1RDTUdDX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1NNU19SU1BfRVZFTlQgKyAzKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfU1RPUkVfUkVDX0lORF9FViAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDQpDQorI2RlZmluZSBBUF9NTUlBX1NNU19UQ01UX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9TTVNfUlNQX0VWRU5UICsgNSkNCisjZGVmaW5lIEFQX01NSUFfU01TX1RDRFNfSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1NNU19SU1BfRVZFTlQgKyA2KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfVERFTElfTElTVF9DTkZfRVYgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDcpDQorI2RlZmluZSBBUF9NTUlBX1NNU19UU1VCX0xJU1RfQ05GX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9TTVNfUlNQX0VWRU5UICsgOCkNCisjZGVmaW5lIEFQX01NSUFfU01TX1RTVEFUX0xJU1RfQ05GX0VWICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1NNU19SU1BfRVZFTlQgKyA5KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfVENPTV9MSVNUX0NORl9FViAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDEwKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfVERFTElfUkVBRF9DTkZfRVYgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDExKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfVFNVQl9SRUFEX0NORl9FViAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDEyKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfVFNUQVRfUkVBRF9DTkZfRVYgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDEzKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfVENPTV9SRUFEX0NORl9FViAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDE0KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfQ1BNU19DTkZfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDE1KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfUENNR1NfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDE2KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfUENNU1NfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDE3KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfUENNR0NfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDE4KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfUENNVElORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDE5KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfUENEU0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDIwKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfUENNR0xfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDIxKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfUENNR1JfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDIyKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfQ1BNU19URVNUX0NORl9FViAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDIzKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfUVVFUllfTUFYX0lOREVYX0NORl9FViAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDI0KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfU0FWRV9GQUlMVVJFX0lORF9FViAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDI1KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTVNfWkNNVElORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01TX1JTUF9FVkVOVCArIDI2KQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIEFQLU1NSUEgU1PP4LnYsr+31s/7z6K6xQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgQVBfTU1JQV9DTENLX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU1NfQkFTRSArIDApDQorI2RlZmluZSBBUF9NTUlBX0NQV0RfU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TU19CQVNFICsgMSkNCisjZGVmaW5lIEFQX01NSUFfQ0xJUF9TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NTX0JBU0UgKyAyKQ0KKyNkZWZpbmUgQVBfTU1JQV9DTElQX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU1NfQkFTRSArIDMpDQorI2RlZmluZSBBUF9NTUlBX0NMSVJfU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TU19CQVNFICsgNCkNCisjZGVmaW5lIEFQX01NSUFfQ0xJUl9RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NTX0JBU0UgKyA1KQ0KKyNkZWZpbmUgQVBfTU1JQV9DT0xQX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU1NfQkFTRSArIDYpDQorI2RlZmluZSBBUF9NTUlBX0NPTFBfUVVFUllfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TU19CQVNFICsgNykNCisjZGVmaW5lIEFQX01NSUFfQ0NGQ19TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NTX0JBU0UgKyA4KQ0KKyNkZWZpbmUgQVBfTU1JQV9DQ1dBX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU1NfQkFTRSArIDkpDQorI2RlZmluZSBBUF9NTUlBX0NDV0FfUVVFUllfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TU19CQVNFICsgMTApDQorI2RlZmluZSBBUF9NTUlBX0NVU0RfU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TU19CQVNFICsgMTEpDQorI2RlZmluZSBBUF9NTUlBX0NVU0RfUVVFUllfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TU19CQVNFICsgMTIpDQorI2RlZmluZSBBUF9NTUlBX0NPTFJfUVVFUllfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TU19CQVNFICsgMTMpDQorI2RlZmluZSBBUF9NTUlBX0NOQVBfU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TU19CQVNFICsgMTQpDQorI2RlZmluZSBBUF9NTUlBX0NOQVBfUVVFUllfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TU19CQVNFICsgMTUpDQorDQorI2RlZmluZSBBUF9NTUlBX0NMQ0tfU1RBVFVTX0NORl9FViAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9TU19SU1BfRVZFTlQgKyAwKQ0KKyNkZWZpbmUgQVBfTU1JQV9DTElQX1FVRVJZX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU1NfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIEFQX01NSUFfQ0xJUl9RVUVSWV9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1NTX1JTUF9FVkVOVCArIDIpDQorI2RlZmluZSBBUF9NTUlBX0NPTFBfUVVFUllfQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9TU19SU1BfRVZFTlQgKyAzKQ0KKyNkZWZpbmUgQVBfTU1JQV9DQ0ZDX1NUQVRVU19DTkZfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU1NfUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIEFQX01NSUFfQ0NXQV9TVEFUVVNfQ05GX0VWICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1NTX1JTUF9FVkVOVCArIDUpDQorI2RlZmluZSBBUF9NTUlBX0NDV0FfUVVFUllfQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9TU19SU1BfRVZFTlQgKyA2KQ0KKyNkZWZpbmUgQVBfTU1JQV9DVVNEX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU1NfUlNQX0VWRU5UICsgNykNCisjZGVmaW5lIEFQX01NSUFfQ09MUl9RVUVSWV9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1NTX1JTUF9FVkVOVCArIDgpDQorI2RlZmluZSBBUF9NTUlBX0NOQVBfUVVFUllfQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9TU19SU1BfRVZFTlQgKyA5KQ0KKyNkZWZpbmUgQVBfTU1JQV9DTkFQX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU1NfUlNQX0VWRU5UICsgMTApDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgQVAtTU1JQSBTTc/gudiyv7fWz/vPorrFDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBBUF9NTUlBX1NNX1BBUkFNX1NFVF9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TTV9CQVNFICsgMCkNCisjZGVmaW5lIEFQX01NSUFfU01fUEFSQU1fUkVBRF9SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NNX0JBU0UgKyAxKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTV9QRFBfU1RBVFVTX1FVRVJZX1JFUV9FViAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01fQkFTRSArIDIpDQorI2RlZmluZSBBUF9NTUlBX1NNX0FDVElWRURfQ0lEX1FVRVJZX1JFUV9FViAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TTV9CQVNFICsgMykNCisjZGVmaW5lIEFQX01NSUFfU01fREVGX0NJRF9RVUVSWV9SRVFfRVYgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NNX0JBU0UgKyA0KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTV9QRFBfQUREUl9RVUVSWV9SRVFfRVYgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01fQkFTRSArIDUpDQorI2RlZmluZSBBUF9NTUlBX1NNX05FR19RT1NfUVVFUllfUkVRX0VWICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TTV9CQVNFICsgNikNCisjZGVmaW5lIEFQX01NSUFfU01fTkVHX0VRT1NfUVVFUllfUkVRX0VWICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NNX0JBU0UgKyA3KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTV9BQ1RfREVBQ1RfUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfU01fQkFTRSArIDgpDQorI2RlZmluZSBBUF9NTUlBX1NNX01PRF9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TTV9CQVNFICsgOSkNCisjZGVmaW5lIEFQX01NSUFfU01fREFUQV9TVEFURV9SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NNX0JBU0UgKyAxMCkNCisjZGVmaW5lIEFQX01NSUFfU01fTVRfQUNUX0FOU19SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NNX0JBU0UgKyAxMSkNCisjZGVmaW5lIEFQX01NSUFfU01fQ1BTQl9RVUVSWV9SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NNX0JBU0UgKyAxMikNCisjZGVmaW5lIEFQX01NSUFfU01fQ0dDT05UUkRQX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NNX0JBU0UgKyAxMykNCisjZGVmaW5lIEFQX01NSUFfU01fQ0dTQ09OVFJEUF9SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NNX0JBU0UgKyAxNCkNCisjZGVmaW5lIEFQX01NSUFfU01fQ0dURlRSRFBfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NNX0JBU0UgKyAxNSkNCisjZGVmaW5lIEFQX01NSUFfU01fQ0dERUxfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NNX0JBU0UgKyAxNikNCisjZGVmaW5lIEFQX01NSUFfU01fWkdBQ1RfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1NNX0JBU0UgKyAxNykNCisvKiDS1MnPzqpBVMP8we621NOmz/vPoiovDQorI2RlZmluZSBBUF9NTUlBX1NNX0dFVF9QQ09fUlNQX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TTV9CQVNFICsgMTgpDQorI2RlZmluZSBBUF9NTUlBX1NNX0lQX1BEUF9BQ1RfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TTV9CQVNFICsgMTkpDQorI2RlZmluZSBBUF9NTUlBX1NNX09QRU5fQ0hOTF9SU1BfRVYgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TTV9CQVNFICsgMjApDQorI2RlZmluZSBBUF9NTUlBX1NNX0lETEVfQ0hOTF9RVUVSWV9SU1BfRVYgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TTV9CQVNFICsgMjEpDQorI2RlZmluZSBBUF9NTUlBX0RJU0NPTk5FQ1RfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9TTV9CQVNFICsgMjIpDQorDQorDQorI2RlZmluZSBBUF9NTUlBX1NNX1BEUF9TVEFUVVNfUVVFUllfQ05GX0VWICAgICAgIChEV09SRCkoQVBfTU1JQV9TTV9SU1BfRVZFTlQgKyAwKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTV9BQ1RJVkVEX0NJRF9RVUVSWV9DTkZfRVYgICAgICAoRFdPUkQpKEFQX01NSUFfU01fUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIEFQX01NSUFfU01fUERQX0FERFJfUVVFUllfQ05GX0VWICAgICAgICAgKERXT1JEKShBUF9NTUlBX1NNX1JTUF9FVkVOVCArIDIpDQorI2RlZmluZSBBUF9NTUlBX1NNX05FR19RT1NfUVVFUllfQ05GX0VWICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9TTV9SU1BfRVZFTlQgKyAzKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTV9ORUdfRVFPU19RVUVSWV9DTkZfRVYgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01fUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIEFQX01NSUFfU01fTk9fQ0FSUklFUl9DTkZfRVYgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1NNX1JTUF9FVkVOVCArIDUpDQorI2RlZmluZSBBUF9NTUlBX1NNX0FDVF9ERUFDVF9DTkZfRVYgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9TTV9SU1BfRVZFTlQgKyA2KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTV9NT0RfQ05GX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01fUlNQX0VWRU5UICsgNykNCisjZGVmaW5lIEFQX01NSUFfU01fTVRfQUNUSVZBVEVfSU5EX0VWICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1NNX1JTUF9FVkVOVCArIDgpDQorI2RlZmluZSBBUF9NTUlBX1NNX0NHRVZfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9TTV9SU1BfRVZFTlQgKyA5KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTV9JUF9QRFBfQUNUX0NORl9FViAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01fUlNQX0VWRU5UICsgMTApDQorI2RlZmluZSBBUF9NTUlBX1NNX0NMT1NFX0NITkxfSU5EX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9TTV9SU1BfRVZFTlQgKyAxMSkNCisjZGVmaW5lIEFQX01NSUFfU01fUVVFUllfSURMRV9DSE5MX0lORF9FViAgICAgICAgKERXT1JEKShBUF9NTUlBX1NNX1JTUF9FVkVOVCArIDEyKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTV9HRVRfUENPX0lORF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01fUlNQX0VWRU5UICsgMTMpDQorI2RlZmluZSBBUF9NTUlBX1NNX0NPTk5FQ1RfSU5EX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9TTV9SU1BfRVZFTlQgKyAxNCkNCisjZGVmaW5lIEFQX01NSUFfU01fQ1BTQl9JTkRfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1NNX1JTUF9FVkVOVCArIDE1KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTV9DR0NPTlRSRFBfQ05GX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01fUlNQX0VWRU5UICsgMTYpDQorI2RlZmluZSBBUF9NTUlBX1NNX0NHU0NPTlRSRFBfQ05GX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9TTV9SU1BfRVZFTlQgKyAxNykNCisjZGVmaW5lIEFQX01NSUFfU01fQ0dURlRSRFBfQ05GX0VWICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1NNX1JTUF9FVkVOVCArIDE4KQ0KKyNkZWZpbmUgQVBfTU1JQV9TTV9DR0RFTF9DTkZfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfU01fUlNQX0VWRU5UICsgMTkpDQorI2RlZmluZSBBUF9NTUlBX1NNX0RFQUNUX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9TTV9SU1BfRVZFTlQgKyAyMCkNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBBUC1NTUlBIEVTTc/gudiyv7fWz/vPorrFDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBBUF9NTUlBX0VTTV9DR0VURkFEU19TRVRfUkVRX0VWICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9FU01fQkFTRSArIDApDQorI2RlZmluZSBBUF9NTUlBX0VTTV9URkFEX1JFQURfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9FU01fQkFTRSArIDEpDQorI2RlZmluZSBBUF9NTUlBX0VTTV9DR0FURlRfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9FU01fQkFTRSArIDIpDQorI2RlZmluZSBBUF9NTUlBX0VTTV9CRUFSRVJfTU9EX1JFUV9FViAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9FU01fQkFTRSArIDMpDQorI2RlZmluZSBBUF9NTUlBX0VTTV9FQlJfTU9EX1FVRVJZX1JFUV9FViAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9FU01fQkFTRSArIDQpDQorI2RlZmluZSBBUF9NTUlBX0NHRVFPU1JEUF9SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9FU01fQkFTRSArIDUpICAvKm9ubHkgZm9yIFI3JlI1Ki8NCisjZGVmaW5lIEFQX01NSUFfRVNNX1RGQURfVEVTVF9SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0VTTV9CQVNFICsgNikNCisjZGVmaW5lIEFQX01NSUFfQ0dFUU9TX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0VTTV9CQVNFICsgNykgIC8qb25seSBmb3IgUjcmUjUqLw0KKyNkZWZpbmUgQVBfTU1JQV9DR0VRT1NfUVVFUllfUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfRVNNX0JBU0UgKyA4KSAgLypvbmx5IGZvciBSNyZSNSovDQorDQorI2RlZmluZSBBUF9NTUlBX0VTTV9CRUFSRVJfQUNUX0lORF9FViAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FU01fUlNQX0VWRU5UICsgMCkNCisjZGVmaW5lIEFQX01NSUFfRVNNX0JFQVJFUl9ERUFDVF9JTkRfRVYgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VTTV9SU1BfRVZFTlQgKyAxKQ0KKyNkZWZpbmUgQVBfTU1JQV9FU01fQkVBUkVSX01PRF9JTkRfRVYgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVNNX1JTUF9FVkVOVCArIDIpDQorI2RlZmluZSBBUF9NTUlBX0VTTV9URkFEX1JFQURfQ05GX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FU01fUlNQX0VWRU5UICsgMykNCisjZGVmaW5lIEFQX01NSUFfRVNNX0NHQVRGVF9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VTTV9SU1BfRVZFTlQgKyA0KQ0KKyNkZWZpbmUgQVBfTU1JQV9FU01fQkVBUkVSX01PRF9DTkZfRVYgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVNNX1JTUF9FVkVOVCArIDUpDQorI2RlZmluZSBBUF9NTUlBX0VTTV9CRUFSRVJfTU9EX1JFSl9FViAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FU01fUlNQX0VWRU5UICsgNikNCisjZGVmaW5lIEFQX01NSUFfRVNNX0VCUk1PRF9RVUVSWV9DTkZfRVYgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VTTV9SU1BfRVZFTlQgKyA3KQ0KKyNkZWZpbmUgQVBfTU1JQV9DR0VRT1NSRFBfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVNNX1JTUF9FVkVOVCArIDgpIC8qb25seSBmb3IgUjcmUjUqLw0KKyNkZWZpbmUgQVBfTU1JQV9FU01fVEZBRFRFU1RfQ05GX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVNNX1JTUF9FVkVOVCArIDkpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgQVAtTU1JQSBVSUNDz+C52LK/t9bP+8+iusUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIEFQX01NSUFfVUlDQ19JTklUX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1VJQ0NfQkFTRSArIDApDQorI2RlZmluZSBBUF9NTUlBX0NQSU5fUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9VSUNDX0JBU0UgKyAxKQ0KKyNkZWZpbmUgQVBfTU1JQV9QSU5fUkVNQUlOX05VTV9SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfVUlDQ19CQVNFICsgMikNCisjZGVmaW5lIEFQX01NSUFfQ1BCU19TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1VJQ0NfQkFTRSArIDMpDQorI2RlZmluZSBBUF9NTUlBX0NQQlNfUVVFUllfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9VSUNDX0JBU0UgKyA0KQ0KKyNkZWZpbmUgQVBfTU1JQV9DUEJSX0VYRV9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfVUlDQ19CQVNFICsgNSkNCisjZGVmaW5lIEFQX01NSUFfQ1BCUl9URVNUX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1VJQ0NfQkFTRSArIDYpDQorI2RlZmluZSBBUF9NTUlBX0NQQkZfRVhFX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9VSUNDX0JBU0UgKyA3KQ0KKyNkZWZpbmUgQVBfTU1JQV9DUEJGX1RFU1RfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfVUlDQ19CQVNFICsgOCkNCisjZGVmaW5lIEFQX01NSUFfQ1BCV19FWEVfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1VJQ0NfQkFTRSArIDkpDQorI2RlZmluZSBBUF9NTUlBX0NQQldfVEVTVF9SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9VSUNDX0JBU0UgKyAxMCkNCisjZGVmaW5lIEFQX01NSUFfVUlDQ19DT01NQU5EX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1VJQ0NfQkFTRSArIDExKQ0KKyNkZWZpbmUgQVBfTU1JQV9QSU5fQVBQTF9TRVRfUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfVUlDQ19CQVNFICsgMTIpDQorI2RlZmluZSBBUF9NTUlBX1BJTl9BUFBMX1JFQURfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9VSUNDX0JBU0UgKyAxMykNCisjZGVmaW5lIEFQX01NSUFfQ0FSRF9NT0RFX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1VJQ0NfQkFTRSArIDE0KQ0KKyNkZWZpbmUgQVBfTU1JQV9DUElOX1JFQURfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfVUlDQ19CQVNFICsgMTUpDQorI2RlZmluZSBBUF9NTUlBX0NQQlNfVEVTVF9SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9VSUNDX0JBU0UgKyAxNikNCisjZGVmaW5lIEFQX01NSUFfU0NQQlJfU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1VJQ0NfQkFTRSArIDE3KQ0KKyNkZWZpbmUgQVBfTU1JQV9TQ1BCUl9URVNUX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfVUlDQ19CQVNFICsgMTgpDQorI2RlZmluZSBBUF9NTUlBX1NDUEJXX1RFU1RfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9VSUNDX0JBU0UgKyAxOSkNCisjZGVmaW5lIEFQX01NSUFfU0NQQldfU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1VJQ0NfQkFTRSArIDIwKQ0KKyNkZWZpbmUgQVBfTU1JQV9DTlVNX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfVUlDQ19CQVNFICsgMjEpDQorI2RlZmluZSBBUF9NTUlBX1pJTUdfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9VSUNDX0JBU0UgKyAyMikNCisjZGVmaW5lIEFQX01NSUFfWkdJSURGX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1VJQ0NfQkFTRSArIDIzKQ0KKyNkZWZpbmUgQVBfTU1JQV9aUFVLX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfVUlDQ19CQVNFICsgMjQpDQorI2RlZmluZSBBUF9NTUlBX0NQQldfUVVFUllfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9VSUNDX0JBU0UgKyAyNSkNCisjZGVmaW5lIEFQX01NSUFfWkNQQlFfU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1VJQ0NfQkFTRSArIDI2KQ0KKyNkZWZpbmUgQVBfTU1JQV9aQ1BCUV9RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfVUlDQ19CQVNFICsgMjcpDQorI2RlZmluZSBBUF9NTUlBX1pFRVJfUkVBRF9SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9VSUNDX0JBU0UgKyAyOCkNCisjZGVmaW5lIEFQX01NSUFfTUJfQVVUSF9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1VJQ0NfQkFTRSArIDI5KQ0KKyNkZWZpbmUgQVBfTU1JQV9NQl9DRUxMX0lEX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfVUlDQ19CQVNFICsgMzApDQorI2RlZmluZSBBUF9NTUlBX1BTRVVET19GUl9TRVRfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9VSUNDX0JBU0UgKyAzMSkNCisjZGVmaW5lIEFQX01NSUFfUFNFVURPX0ZSX1FVRVJZX1JFUV9FViAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1VJQ0NfQkFTRSArIDMyKQ0KKyNkZWZpbmUgQVBfTU1JQV9SRUZSRVNIX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfVUlDQ19CQVNFICsgMzMpDQorI2RlZmluZSBBUF9NTUlBX0NBUkRfU1JWX0xJU1RfUVJZX1JFUV9FViAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9VSUNDX0JBU0UgKyAzNCkNCisNCisjZGVmaW5lIEFQX01NSUFfVUlDQ19JTklUX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VJQ0NfUlNQX0VWRU5UICsgMCkNCisjZGVmaW5lIEFQX01NSUFfVUlDQ19PS0lORF9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VJQ0NfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIEFQX01NSUFfVUlDQ19JTlRJX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VJQ0NfUlNQX0VWRU5UICsgMikNCisjZGVmaW5lIEFQX01NSUFfVUlDQ19TTE9UX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VJQ0NfUlNQX0VWRU5UICsgMykNCisjZGVmaW5lIEFQX01NSUFfUElOX1JFTUFJX05OVU1fQ05GX0VWICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VJQ0NfUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIEFQX01NSUFfQ1BCU19RVUVSWV9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VJQ0NfUlNQX0VWRU5UICsgNSkNCisjZGVmaW5lIEFQX01NSUFfQ1BCUl9FWEVfQ05GX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VJQ0NfUlNQX0VWRU5UICsgNikNCisjZGVmaW5lIEFQX01NSUFfQ1BCUl9URVNUX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VJQ0NfUlNQX0VWRU5UICsgNykNCisjZGVmaW5lIEFQX01NSUFfQ1BCRl9URVNUX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VJQ0NfUlNQX0VWRU5UICsgOCkNCisjZGVmaW5lIEFQX01NSUFfQ1BCV19URVNUX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VJQ0NfUlNQX0VWRU5UICsgOSkNCisjZGVmaW5lIEFQX01NSUFfUElOX0FQUExfU0VUX0NORl9FViAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VJQ0NfUlNQX0VWRU5UICsgMTApDQorI2RlZmluZSBBUF9NTUlBX1BJTl9BUFBMX1JFQURfQ05GX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9VSUNDX1JTUF9FVkVOVCArIDExKQ0KKyNkZWZpbmUgQVBfTU1JQV9DQVJEX01PREVfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfVUlDQ19SU1BfRVZFTlQgKyAxMikNCisjZGVmaW5lIEFQX01NSUFfQ1BJTl9SRUFEX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VJQ0NfUlNQX0VWRU5UICsgMTMpDQorI2RlZmluZSBBUF9NTUlBX0NQQlJfU0VUX0VORF9DTkZfRVYgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9VSUNDX1JTUF9FVkVOVCArIDE0KQ0KKyNkZWZpbmUgQVBfTU1JQV9DUEJTX1RFU1RfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfVUlDQ19SU1BfRVZFTlQgKyAxNSkNCisjZGVmaW5lIEFQX01NSUFfU0NQQlJfU0VUX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VJQ0NfUlNQX0VWRU5UICsgMTYpDQorI2RlZmluZSBBUF9NTUlBX1NDUEJSX1NFVF9FTkRfQ05GX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9VSUNDX1JTUF9FVkVOVCArIDE3KQ0KKyNkZWZpbmUgQVBfTU1JQV9TQ1BCUl9URVNUX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfVUlDQ19SU1BfRVZFTlQgKyAxOCkNCisjZGVmaW5lIEFQX01NSUFfU0NQQldfVEVTVF9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VJQ0NfUlNQX0VWRU5UICsgMTkpDQorI2RlZmluZSBBUF9NTUlBX0NOVU1fQ05GX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9VSUNDX1JTUF9FVkVOVCArIDIwKQ0KKyNkZWZpbmUgQVBfTU1JQV9aSU1HX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfVUlDQ19SU1BfRVZFTlQgKyAyMSkNCisjZGVmaW5lIEFQX01NSUFfWkdJSURGX0NORl9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VJQ0NfUlNQX0VWRU5UICsgMjIpDQorI2RlZmluZSBBUF9NTUlBX0NQQldfRVhFX0NORl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9VSUNDX1JTUF9FVkVOVCArIDIzKQ0KKyNkZWZpbmUgQVBfTU1JQV9aQ1BCUV9TRVRfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfVUlDQ19SU1BfRVZFTlQgKyAyNCkNCisjZGVmaW5lIEFQX01NSUFfWkNQQlFfUVVFUllfQ05GX0VWICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VJQ0NfUlNQX0VWRU5UICsgMjUpDQorI2RlZmluZSBBUF9NTUlBX1pFRVJfUkVBRF9DTkZfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9VSUNDX1JTUF9FVkVOVCArIDI2KQ0KKyNkZWZpbmUgQVBfTU1JQV9NQl9BVVRIX0NORl9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfVUlDQ19SU1BfRVZFTlQgKyAyNykNCisjZGVmaW5lIEFQX01NSUFfUFNFVURPX0ZSX1FVRVJZX0NORl9FViAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VJQ0NfUlNQX0VWRU5UICsgMjgpDQorI2RlZmluZSBBUF9NTUlBX0NBUkRfU1JWX0xJU1RfUVJZX0NORl9FViAgICAgICAgIChEV09SRCkoQVBfTU1JQV9VSUNDX1JTUF9FVkVOVCArIDI5KQ0KKyNkZWZpbmUgQVBfTU1JQV9JQ0NJRF9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfVUlDQ19SU1BfRVZFTlQgKyAzMCkNCisjZGVmaW5lIEFQX01NSUFfWkNGSVNfU0VUX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VJQ0NfUlNQX0VWRU5UICsgMzEpDQorI2RlZmluZSBBUF9NTUlBX1pJU0lNSU5JVF9JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9VSUNDX1JTUF9FVkVOVCArIDMyKQ0KKyNkZWZpbmUgQVBfTU1JQV9DT1BOX0VYRV9DTkYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9VSUNDX1JTUF9FVkVOVCArIDMzKQ0KKyNkZWZpbmUgQVBfTU1JQV9DT1BOX0VORF9DTkYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9VSUNDX1JTUF9FVkVOVCArIDM0KQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIEFQLU1NSUEgVVNBVM/7z6K6xbao0uUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBBUF9NTUlBX1VTQVRfRU5WRUxPUF9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9VU0FUX0JBU0UgKyAwKQ0KKyNkZWZpbmUgQVBfTU1JQV9VU0FUX1RFUk1OTF9SU1BfUkVRX0VWICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfVVNBVF9CQVNFICsgMSkNCisjZGVmaW5lIEFQX01NSUFfVVNBVF9URVJNTkxfUFJPRl9SRVFfRVYgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1VTQVRfQkFTRSArIDIpDQorI2RlZmluZSBBUF9NTUlBX1VTQVRfTE9DX0lORk9fUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9VU0FUX0JBU0UgKyAzKQ0KKyNkZWZpbmUgQVBfTU1JQV9VU0FUX1RPX1JFQURfQ0FSRF9SRVFfRVYgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfVVNBVF9CQVNFICsgNCkNCisNCisjZGVmaW5lIEFQX01NSUFfVVNBVF9FTlZFTE9QX0NORl9FViAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VTQVRfUlNQX0VWRU5UICsgMCkNCisjZGVmaW5lIEFQX01NSUFfVVNBVF9QUk9WX0NNRF9JTkRfRVYgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1VTQVRfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIEFQX01NSUFfVVNBVF9OT1BST0NfTk9USUZZX0lORF9FViAgICAgICAgKERXT1JEKShBUF9NTUlBX1VTQVRfUlNQX0VWRU5UICsgMikNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBBUC1NTUlBIENCU8/7z6K6xbao0uUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBBUF9NTUlBX0NCU19DU0NCX1NFVF9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9DQlNfQkFTRSArIDApDQorI2RlZmluZSBBUF9NTUlBX0NCU19DU0NCX1JFQURfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9DQlNfQkFTRSArIDEpDQorI2RlZmluZSBBUF9NTUlBX0NCU19TQVZJTkdfU0VUX1JFUV9FViAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9DQlNfQkFTRSArIDIpDQorI2RlZmluZSBBUF9NTUlBX0NCU19SRVNUT1JFX1NFVF9SRVFfRVYgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9DQlNfQkFTRSArIDMpDQorDQorI2RlZmluZSBBUF9NTUlBX0NCU19UQ0JNX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9DQlNfUlNQX0VWRU5UICsgMCkNCisjZGVmaW5lIEFQX01NSUFfQ0JTX1BDQk1fSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0NCU19SU1BfRVZFTlQgKyAxKQ0KKyNkZWZpbmUgQVBfTU1JQV9DQlNfVENCTV9MSVNUX0NORl9FViAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfQ0JTX1JTUF9FVkVOVCArIDIpDQorI2RlZmluZSBBUF9NTUlBX0NCU19QQ0JNX0xJU1RfQ05GX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9DQlNfUlNQX0VWRU5UICsgMykNCisjZGVmaW5lIEFQX01NSUFfQ0JTX1RDQk1fUkVBRF9DTkZfRVYgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0NCU19SU1BfRVZFTlQgKyA0KQ0KKyNkZWZpbmUgQVBfTU1JQV9DQlNfUENCTV9SRUFEX0NORl9FViAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfQ0JTX1JTUF9FVkVOVCArIDUpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgQVAtTU1JQSBQQii05rSiudzA7SnP+8+iusW2qNLlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgQVBfTU1JQV9TTV9TQVZFX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfUEJfQkFTRSArIDApDQorI2RlZmluZSBBUF9NTUlBX1NNX1JFQURfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMSkNCisjZGVmaW5lIEFQX01NSUFfU01fTElTVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1BCX0JBU0UgKyAyKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTV9ERUxFVEVfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfUEJfQkFTRSArIDMpDQorI2RlZmluZSBBUF9NTUlBX1NNX01FTV9BVkFJTF9SU1BfRVYgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgNCkNCisjZGVmaW5lIEFQX01NSUFfUEJfRklORF9JTkRFWF9SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1BCX0JBU0UgKyA1KQ0KKyNkZWZpbmUgQVBfTU1JQV9QQl9GSU5EX1RFWFRfUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfUEJfQkFTRSArIDYpDQorI2RlZmluZSBBUF9NTUlBX1BCX0VESVRfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgNykNCisjZGVmaW5lIEFQX01NSUFfUEJfU1RPUkFHRV9TVEFUVVNfUkVRX0VWICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX1BCX0JBU0UgKyA4KQ0KKyNkZWZpbmUgQVBfTU1JQV9QQl9QUkVGX01TR19TVE9fUkVRX0VWICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfUEJfQkFTRSArIDkpDQorI2RlZmluZSBBUF9NTUlBX1BCX1BSRUZfTVNHX1NUT19URVNUX1JFUV9FViAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMTApDQorI2RlZmluZSBBUF9NTUlBX1BCX1RQTVJfVVBEQVRFX1JFUV9FViAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMTEpDQorI2RlZmluZSBBUF9NTUlBX1BCX01FTV9DQVBBX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMTIpDQorI2RlZmluZSBBUF9NTUlBX1BCX01UX1BBUkFfSU5EX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMTMpDQorI2RlZmluZSBBUF9NTUlBX1BCX0VNRVJfTlVNX0xJU1RfSU5EX0VWICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMTQpDQorI2RlZmluZSBBUF9NTUlBX1BCX1NUT19TRVRfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMTUpDQorI2RlZmluZSBBUF9NTUlBX1BCX1NUT19URVNUX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMTYpDQorI2RlZmluZSBBUF9NTUlBX1BCX1FVRVJZX1NNU19NQVhfSU5ERVhfUkVRX0VWICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMTcpDQorI2RlZmluZSBBUF9NTUlBX1BCX1NfRklORF9JTkRFWF9SRVFfRVYgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMTgpDQorI2RlZmluZSBBUF9NTUlBX1BCX1NfRURJVF9SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMTkpDQorI2RlZmluZSBBUF9NTUlBX1BCX0NfTlVNX1JFUSAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMjApDQorI2RlZmluZSBBUF9NTUlBX1BCX0NMQ0tfU0VUX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMjEpDQorI2RlZmluZSBBUF9NTUlBX1BCX1NDUEJSX1RFU1RfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMjIpDQorI2RlZmluZSBBUF9NTUlBX1BCX1NDUEJXX1RFU1RfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMjMpDQorI2RlZmluZSBBUF9NTUlBX1BCX1VJQ0NfT0tfSU5EX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMjQpDQorI2RlZmluZSBBUF9NTUlBX1BCX0NQQlJfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMjUpDQorI2RlZmluZSBBUF9NTUlBX1BCX0NQQkZfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMjYpDQorI2RlZmluZSBBUF9NTUlBX1BCX1NDUEJSX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMjcpDQorI2RlZmluZSBBUF9NTUlBX1BCX0NNR0xfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMjgpDQorI2RlZmluZSBBUF9NTUlBX1BCX0NQQldfUVVFUllfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMjkpDQorI2RlZmluZSBBUF9NTUlBX1BCX1JFQURfQ0FQQV9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMzApDQorI2RlZmluZSBBUF9NTUlBX1BCX1JFQURfU0VUX05VTV9SRVFfRVYgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMzEpDQorI2RlZmluZSBBUF9NTUlBX1BCX1JFQURfTEFTVF9FWFRfRVJSX1JFUV9FViAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9QQl9CQVNFICsgMzIpDQorDQorI2RlZmluZSBBUF9NTUlBX1NNX1NBVkVfQ05GX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9QQl9SU1BfRVZFTlQgKyAwKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTV9SRUFEX0NORl9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfUEJfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIEFQX01NSUFfU01fTElTVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1BCX1JTUF9FVkVOVCArIDIpDQorI2RlZmluZSBBUF9NTUlBX1NNX0RFTEVURV9DTkZfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9QQl9SU1BfRVZFTlQgKyAzKQ0KKyNkZWZpbmUgQVBfTU1JQV9TTV9NRU1fQVZBSUxfSU5EX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfUEJfUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIEFQX01NSUFfUEJfRklORF9JTkRFWF9DTkZfRVYgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1BCX1JTUF9FVkVOVCArIDUpDQorI2RlZmluZSBBUF9NTUlBX1BCX0ZJTkRfVEVYVF9DTkZfRVYgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9QQl9SU1BfRVZFTlQgKyA2KQ0KKyNkZWZpbmUgQVBfTU1JQV9QQl9FRElUX0NORl9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfUEJfUlNQX0VWRU5UICsgNykNCisjZGVmaW5lIEFQX01NSUFfUEJfU1RPUkFHRV9TVEFUVVNfQ05GX0VWICAgICAgICAgKERXT1JEKShBUF9NTUlBX1BCX1JTUF9FVkVOVCArIDgpDQorI2RlZmluZSBBUF9NTUlBX1BCX0ZJTkRfSU5ERVhfRU5EX0NORl9FViAgICAgICAgIChEV09SRCkoQVBfTU1JQV9QQl9SU1BfRVZFTlQgKyA5KQ0KKyNkZWZpbmUgQVBfTU1JQV9QQl9QUkVGX01TR19TVE9fQ05GX0VWICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfUEJfUlNQX0VWRU5UICsgMTApDQorI2RlZmluZSBBUF9NTUlBX1BCX1BSRUZfTVNHX1NUT19URVNUX0NORl9FViAgICAgIChEV09SRCkoQVBfTU1JQV9QQl9SU1BfRVZFTlQgKyAxMSkNCisjZGVmaW5lIEFQX01NSUFfUEJfQ09NTU9OX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1BCX1JTUF9FVkVOVCArIDEyKQ0KKyNkZWZpbmUgQVBfTU1JQV9QQl9JTklUX0NPTVBfSU5EX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfUEJfUlNQX0VWRU5UICsgMTMpDQorI2RlZmluZSBBUF9NTUlBX1BCX1NUT19URVNUX0NORl9FViAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9QQl9SU1BfRVZFTlQgKyAxNCkNCisjZGVmaW5lIEFQX01NSUFfUEJfUVVFUllfU01TX01BWF9JTkRFWF9DTkZfRVYgICAgKERXT1JEKShBUF9NTUlBX1BCX1JTUF9FVkVOVCArIDE1KQ0KKyNkZWZpbmUgQVBfTU1JQV9QQl9TX0ZJTkRfSU5ERVhfQ05GX0VWICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfUEJfUlNQX0VWRU5UICsgMTYpDQorI2RlZmluZSBBUF9NTUlBX1BCX1NfRklORF9JTkRFWF9FTkRfQ05GX0VWICAgICAgIChEV09SRCkoQVBfTU1JQV9QQl9SU1BfRVZFTlQgKyAxNykNCisjZGVmaW5lIEFQX01NSUFfUEJfU19FRElUX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1BCX1JTUF9FVkVOVCArIDE4KQ0KKyNkZWZpbmUgQVBfTU1JQV9QQl9TQ1BCUl9URVNUX0NORl9FViAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfUEJfUlNQX0VWRU5UICsgMTkpDQorI2RlZmluZSBBUF9NTUlBX1BCX1NDUEJXX1RFU1RfQ05GX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9QQl9SU1BfRVZFTlQgKyAyMCkNCisjZGVmaW5lIEFQX01NSUFfUEJfQ19OVU1fQ05GICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1BCX1JTUF9FVkVOVCArIDIxKQ0KKyNkZWZpbmUgQVBfTU1JQV9QQl9DTENLX1NUQVRVU19DTkZfRVYgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfUEJfUlNQX0VWRU5UICsgMjIpDQorI2RlZmluZSBBUF9NTUlBX1BCX0NIR19JTkRFWF9JTkRfRVYgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9QQl9SU1BfRVZFTlQgKyAyMykNCisjZGVmaW5lIEFQX01NSUFfUEJfQ1BCV19RVUVSWV9DTkZfRVYgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX1BCX1JTUF9FVkVOVCArIDI0KQ0KKyNkZWZpbmUgQVBfTU1JQV9QQl9SRUFEX0NBUEFfQ05GX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfUEJfUlNQX0VWRU5UICsgMjUpDQorI2RlZmluZSBBUF9NTUlBX1BCX1JFQURfU0VUX05VTV9DTkZfRVYgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9QQl9SU1BfRVZFTlQgKyAyNikNCisjZGVmaW5lIEFQX01NSUFfUEJfUkVBRF9MQVNUX0VYVF9FUlJfQ05GX0VWICAgICAgKERXT1JEKShBUF9NTUlBX1BCX1JTUF9FVkVOVCArIDI3KQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIEFQLU1NSUEguaSzzMSjyr26zc/6wb/Ns7zGz/vPorrFtqjS5SAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIEFQX01NSUFfRU1fQ0VMTF9JTkZPX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0VNX0JBU0UgKyAwKQ0KKyNkZWZpbmUgQVBfTU1JQV9FTV9DRUxMX0lORk9fUVVFUllfUkVRX0VWICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfRU1fQkFTRSArIDEpDQorI2RlZmluZSBBUF9NTUlBX0VNX0xPQ0tfQ0VMTF9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9FTV9CQVNFICsgMikNCisjZGVmaW5lIEFQX01NSUFfRU1fSE9fSU5GT19SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0VNX0JBU0UgKyAzKQ0KKyNkZWZpbmUgQVBfTU1JQV9FTV9IT19JTkZPX1FVRVJZX1JFUV9FViAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfRU1fQkFTRSArIDQpDQorI2RlZmluZSBBUF9NTUlBX1NFTExfU1RBVF9TV0lUQ0hfU0VUX1JFUV9FViAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9FTV9CQVNFICsgNSkNCisjZGVmaW5lIEFQX01NSUFfU0VMTF9TVEFUX1NXSVRDSF9RVUVSWV9SRVFfRVYgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0VNX0JBU0UgKyA2KQ0KKyNkZWZpbmUgQVBfTU1JQV9TRUxMX1NUQVRfVURQSU5GT19RVUVSWV9SRVFfRVYgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfRU1fQkFTRSArIDcpDQorI2RlZmluZSBBUF9NTUlBX1NFTExfU1RBVF9URVNUX1NFTkRfUkVRX0VWICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9FTV9CQVNFICsgOCkNCisjZGVmaW5lIEFQX01NSUFfU0VMTF9TVEFUX0RPTUFJTl9TRVRfUkVRX0VWICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX0VNX0JBU0UgKyA5KQ0KKyNkZWZpbmUgQVBfTU1JQV9TRUxMX1NUQVRfRE9NQUlOX1FVRVJZX1JFUV9FViAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfRU1fQkFTRSArIDEwKQ0KKyNkZWZpbmUgQVBfTU1JQV9TRUxMX1NUQVRfQ1JDX1NFVF9SRVFfRVYgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfRU1fQkFTRSArIDExKQ0KKyNkZWZpbmUgQVBfTU1JQV9TRUxMX1NUQVRfQ1JDX1FVRVJZX1JFUV9FViAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfRU1fQkFTRSArIDEyKQ0KKyNkZWZpbmUgQVBfTU1JQV9TRUxMX1NUQVRfREVCVUdfU0VUX1JFUV9FViAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfRU1fQkFTRSArIDEzKQ0KKyNkZWZpbmUgQVBfTU1JQV9TRUxMX1NUQVRfREVCVUdfUVVFUllfUkVRX0VWICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfRU1fQkFTRSArIDE0KQ0KKyNkZWZpbmUgQVBfTU1JQV9TRUxMX1NUQVRfUE9SVF9TRVRfUkVRX0VWICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfRU1fQkFTRSArIDE1KQ0KKyNkZWZpbmUgQVBfTU1JQV9TRUxMX1NUQVRfUE9SVF9RVUVSWV9SRVFfRVYgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfRU1fQkFTRSArIDE2KQ0KKyNkZWZpbmUgQVBfTU1JQV9TRUxMX1NUQVRfVFJJX1RZUEVfUVVFUllfUkVRX0VWICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfRU1fQkFTRSArIDE3KQ0KKyNkZWZpbmUgQVBfTU1JQV9TRUxMX1NUQVRfRE5TX0NOVF9RVUVSWV9SRVFfRVYgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfRU1fQkFTRSArIDE4KQ0KKw0KKw0KKyNkZWZpbmUgQVBfTU1JQV9FTV9DRUxMX0lORk9fUVVFUllfQ05GX0VWICAgICAgICAoRFdPUkQpKEFQX01NSUFfRU1fUlNQX0VWRU5UICsgMCkNCisjZGVmaW5lIEFQX01NSUFfRU1fSE9fSU5GT19JTkRfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VNX1JTUF9FVkVOVCArIDEpDQorI2RlZmluZSBBUF9NTUlBX0VNX0hPX0lORk9fUVVFUllfQ05GX0VWICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FTV9SU1BfRVZFTlQgKyAyKQ0KKyNkZWZpbmUgQVBfTU1JQV9TRUxMX1NUQVRfU1dJVENIX1FVRVJZX0NORl9FViAgICAoRFdPUkQpKEFQX01NSUFfRU1fUlNQX0VWRU5UICsgMykNCisjZGVmaW5lIEFQX01NSUFfU0VMTF9TVEFUX1VEUElORk9fUVVFUllfQ05GX0VWICAgKERXT1JEKShBUF9NTUlBX0VNX1JTUF9FVkVOVCArIDQpDQorI2RlZmluZSBBUF9NTUlBX1NFTExfU1RBVF9ET01BSU5fUVVFUllfQ05GX0VWICAgIChEV09SRCkoQVBfTU1JQV9FTV9SU1BfRVZFTlQgKyA1KQ0KKyNkZWZpbmUgQVBfTU1JQV9TRUxMX1NUQVRfQ1JDX1FVRVJZX0NORl9FViAgICAgICAoRFdPUkQpKEFQX01NSUFfRU1fUlNQX0VWRU5UICsgNikNCisjZGVmaW5lIEFQX01NSUFfU0VMTF9TVEFUX0RFQlVHX1FVRVJZX0NORl9FViAgICAgKERXT1JEKShBUF9NTUlBX0VNX1JTUF9FVkVOVCArIDcpDQorI2RlZmluZSBBUF9NTUlBX1NFTExfU1RBVF9QT1JUX1FVRVJZX0NORl9FViAgICAgIChEV09SRCkoQVBfTU1JQV9FTV9SU1BfRVZFTlQgKyA4KQ0KKyNkZWZpbmUgQVBfTU1JQV9TRUxMX1NUQVRfVFJJX1RZUEVfUVVFUllfQ05GX0VWICAoRFdPUkQpKEFQX01NSUFfRU1fUlNQX0VWRU5UICsgOSkNCisjZGVmaW5lIEFQX01NSUFfU0VMTF9TVEFUX0ROU19DTlRfUVVFUllfQ05GX0VWICAgKERXT1JEKShBUF9NTUlBX0VNX1JTUF9FVkVOVCArIDEwKQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIEFQLU1NSUEg0MW6xce/tsjW97avyc+xqM/7z6K6xbao0uUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBBUF9NTUlBX1JYTEVWX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9PVEhFUl9CQVNFICsgMCkNCisjZGVmaW5lIEFQX01NSUFfWlJQVF9SWExFVl9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX09USEVSX0JBU0UgKyAxKSAgICAgICANCisjZGVmaW5lIEFQX01NSUFfWlJQVF9SWExFVl9RVUVSWV9SRVFfRVYgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX09USEVSX0JBU0UgKyAyKQ0KKyNkZWZpbmUgQVBfTU1JQV9RVUVSWV9JTVNJX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfT1RIRVJfQkFTRSArIDMpDQorI2RlZmluZSBBUF9NTUlBX1FVRVJZX0lNRUlfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9PVEhFUl9CQVNFICsgNCkNCisjZGVmaW5lIEFQX01NSUFfQUJPUlRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX09USEVSX0JBU0UgKyA1KQ0KKyNkZWZpbmUgQVBfTU1JQV9DQVVTRV9RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfT1RIRVJfQkFTRSArIDYpDQorI2RlZmluZSBBUF9NTUlBX1NQTl9SRUFEX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9PVEhFUl9CQVNFICsgNykNCisjZGVmaW5lIEFQX01NSUFfWkVUV1NfUFJJTUFSWV9TRVRfUkVRX0VWICAgICAgICAgKERXT1JEKShBUF9NTUlBX0VWRU5UX09USEVSX0JBU0UgKyA4KQ0KKyNkZWZpbmUgQVBfTU1JQV9aRVRXU19QUklNQVJZX1FVRVJZX1JFUV9FViAgICAgICAoRFdPUkQpKEFQX01NSUFfRVZFTlRfT1RIRVJfQkFTRSArIDkpDQorI2RlZmluZSBBUF9NTUlBX1pFVFdTX1NFQ09OREFSWV9TRVRfUkVRX0VWICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9PVEhFUl9CQVNFICsgMTApDQorI2RlZmluZSBBUF9NTUlBX1pFVFdTX1NFQ09OREFSWV9RVUVSWV9SRVFfRVYgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9PVEhFUl9CQVNFICsgMTEpDQorI2RlZmluZSBBUF9NTUlBX1NFVF9JTVNJX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9PVEhFUl9CQVNFICsgMTIpDQorI2RlZmluZSBBUF9NTUlBX0FVVE9fU1RBUlRfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9PVEhFUl9CQVNFICsgMTMpDQorI2RlZmluZSBBUF9NTUlBX0NITkVMX1NUQVRFX1FVRVJZX1JFUV9FViAgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9PVEhFUl9CQVNFICsgMTQpDQorI2RlZmluZSBBUF9NTUlBX1pPUEVSTFRFQkFORF9RVUVSWV9SRVFfRVYgICAgICAgIChEV09SRCkoQVBfTU1JQV9FVkVOVF9PVEhFUl9CQVNFICsgMTUpDQorDQorDQorI2RlZmluZSBBUF9NTUlBX1JYTEVWX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9PVEhFUl9SU1BfRVZFTlQgKyAwKQ0KKyNkZWZpbmUgQVBfTU1JQV9aUlBUX1JYTEVWSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfT1RIRVJfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIEFQX01NSUFfWlJQVF9SWExFVl9RVUVSWV9DTkZfRVYgICAgICAgICAgKERXT1JEKShBUF9NTUlBX09USEVSX1JTUF9FVkVOVCArIDIpDQorI2RlZmluZSBBUF9NTUlBX1FVRVJZX0lNU0lfQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9PVEhFUl9SU1BfRVZFTlQgKyAzKQ0KKyNkZWZpbmUgQVBfTU1JQV9RVUVSWV9JTUVJX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfT1RIRVJfUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIEFQX01NSUFfQ09NTU9OX0NORl9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX09USEVSX1JTUF9FVkVOVCArIDUpDQorI2RlZmluZSBBUF9NTUlBX0NBVVNFX1FVRVJZX0NORl9FViAgICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9PVEhFUl9SU1BfRVZFTlQgKyA2KQ0KKyNkZWZpbmUgQVBfTU1JQV9aUEJJQ19JTkRfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfT1RIRVJfUlNQX0VWRU5UICsgNykNCisjZGVmaW5lIEFQX01NSUFfU1BOX1JFQURfQ05GX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX09USEVSX1JTUF9FVkVOVCArIDgpDQorI2RlZmluZSBBUF9NTUlBX1pFVFdTX1BSSU1BUllfUVVFUllfQ05GX0VWICAgICAgIChEV09SRCkoQVBfTU1JQV9PVEhFUl9SU1BfRVZFTlQgKyA5KQ0KKyNkZWZpbmUgQVBfTU1JQV9aRVRXU19TRUNPTkRBUllfUVVFUllfQ05GX0VWICAgICAoRFdPUkQpKEFQX01NSUFfT1RIRVJfUlNQX0VWRU5UICsgMTApDQorI2RlZmluZSBBUF9NTUlBX1pFVFdTX1BSSU1BUllfSU5EX0VWICAgICAgICAgICAgIChEV09SRCkoQVBfTU1JQV9PVEhFUl9SU1BfRVZFTlQgKyAxMSkNCisjZGVmaW5lIEFQX01NSUFfWkVUV1NfU0VDT05EQVJZX0lORF9FViAgICAgICAgICAgKERXT1JEKShBUF9NTUlBX09USEVSX1JTUF9FVkVOVCArIDEyKQ0KKyNkZWZpbmUgQVBfTU1JQV9DSEdfSU5ERVhfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX01NSUFfT1RIRVJfUlNQX0VWRU5UICsgMTMpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgTU1JQS1VTU3P+8+iusW2qNLlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgTU1JQV9VTU1fU0VBUkNIX1BMTU5fUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgTU1JQV9VTU1fUExNTl9MSVNUX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgTU1JQV9VTU1fQUNUSVZFX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgTU1JQV9VTU1fUkZfQ1RSTF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgTU1JQV9VTU1fQUJPUlRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgTU1JQV9VTU1fRU1fTE9DS19DRUxMX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgTU1JQV9VTU1fQ1NHX1NFTF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgTU1JQV9VTU1fQ1VSUkVOVF9DU0dfUVVFUllfUkVRX0VWICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgTU1JQV9VTU1fQ1NHX0xJU1RfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX0VWRU5UX0JBU0UgKyA4KQ0KKyNkZWZpbmUgTU1JQV9VTU1fU1lTQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgTU1JQV9VTU1fQ0dBVFRfUVVFUllfUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIE1NSUFfVU1NX1pBVFRfUVVFUllfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1VNTV9FVkVOVF9CQVNFICsgMTEpDQorI2RlZmluZSBNTUlBX1VNTV9FUFNfTU9ERV9RVUVSWV9SRVFfRVYgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fRVZFTlRfQkFTRSArIDEyKQ0KKyNkZWZpbmUgTU1JQV9VTU1fRVBTX01PREVfU0VUX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX0VWRU5UX0JBU0UgKyAxMykNCisjZGVmaW5lIE1NSUFfVU1NX1NFVF9MVEVfQUNUX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1VNTV9FVkVOVF9CQVNFICsgMTQpDQorI2RlZmluZSBNTUlBX1VNTV9DU19TUlZfQ05GX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fRVZFTlRfQkFTRSArIDE1KQ0KKyNkZWZpbmUgTU1JQV9VTU1fSU1TX1JFR0lTVEVSX1NUQVRFU19FViAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX0VWRU5UX0JBU0UgKyAxNikNCisjZGVmaW5lIE1NSUFfVU1NX1ZPSUNFX01PREVfU0VUX1JFUV9FViAgICAgICAgICAgKERXT1JEKShNTUlBX1VNTV9FVkVOVF9CQVNFICsgMTcpDQorI2RlZmluZSBNTUlBX1VNTV9WT0lDRV9NT0RFX1FVRVJZX1JFUV9FViAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fRVZFTlRfQkFTRSArIDE4KQ0KKyNkZWZpbmUgTU1JQV9VTU1fU1lTQ09ORklHX1FVRVJZX1JFUV9FViAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX0VWRU5UX0JBU0UgKyAxOSkNCisjZGVmaW5lIE1NSUFfVU1NX1NNU09WRVJJUE5FVF9TRVRSRVFfRVYgICAgICAgICAgKERXT1JEKShNTUlBX1VNTV9FVkVOVF9CQVNFICsgMjApDQorI2RlZmluZSBaX1REX0xURV9DRUxMX0lORF9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fRVZFTlRfQkFTRSArIDIxKQ0KKyNkZWZpbmUgTU1JQV9VTU1fUFNfQ09OVEVYVF9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX0VWRU5UX0JBU0UgKyAyMikNCisjZGVmaW5lIE1NSUFfVU1NX1BTX0NPTlRFWFRfSU5EX0VWICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1VNTV9FVkVOVF9CQVNFICsgMjMpDQorI2RlZmluZSBNTUlBX1VNTV9DQVVTRV9RVUVSWV9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fRVZFTlRfQkFTRSArIDI0KQ0KKyNkZWZpbmUgTU1JQV9VTU1fVVBEQVRFX09QRVJQTE1OX0lORF9FViAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX0VWRU5UX0JBU0UgKyAyNSkNCisjZGVmaW5lIE1NSUFfVU1NX0NTX0NBTExfU1RBUlRfSU5EX0VWICAgICAgICAgICAgKERXT1JEKShNTUlBX1VNTV9FVkVOVF9CQVNFICsgMjYpDQorI2RlZmluZSBNTUlBX1VNTV9DU19DQUxMX0VORF9JTkRfRVYgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fRVZFTlRfQkFTRSArIDI3KQ0KKyNkZWZpbmUgTU1JQV9VTU1fWENFTExJTkZPX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX0VWRU5UX0JBU0UgKyAyOCkNCisjZGVmaW5lIE1NSUFfVU1NX0xBU1RDSURfQVBOTU9ESUZZX0lORF9FViAgICAgICAgKERXT1JEKShNTUlBX1VNTV9FVkVOVF9CQVNFICsgMjkpDQorI2RlZmluZSBNTUlBX1VNTV9DU1ZPSUNFX1FVRVJZX1JFUV9FViAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fRVZFTlRfQkFTRSArIDMwKQ0KKw0KKw0KKyNkZWZpbmUgTU1JQV9VTU1fUExNTl9JTkZPX0lORF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX1JTUF9FVkVOVCArIDApDQorI2RlZmluZSBNTUlBX1VNTV9QTE1OX0xJU1RfQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIE1NSUFfVU1NX0FDVElWRV9DTkZfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1VNTV9SU1BfRVZFTlQgKyAyKQ0KKyNkZWZpbmUgTU1JQV9VTU1fTU1fSU5GT19JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX1JTUF9FVkVOVCArIDMpDQorI2RlZmluZSBNTUlBX1VNTV9SRl9DVFJMX0NORl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIE1NSUFfVU1NX0VNX0xPQ0tfQ0VMTF9DTkZfRVYgICAgICAgICAgICAgKERXT1JEKShNTUlBX1VNTV9SU1BfRVZFTlQgKyA1KQ0KKyNkZWZpbmUgTU1JQV9VTU1fQ1NHX1NFTF9DTkZfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX1JTUF9FVkVOVCArIDYpDQorI2RlZmluZSBNTUlBX1VNTV9DVVJSRU5UX0NTR19RVUVSWV9DTkZfRVYgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgNykNCisjZGVmaW5lIE1NSUFfVU1NX0NTR19MSVNUX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1VNTV9SU1BfRVZFTlQgKyA4KQ0KKyNkZWZpbmUgTU1JQV9VTU1fQ09NTU9OX0NORl9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVU1NX1JTUF9FVkVOVCArIDkpDQorI2RlZmluZSBNTUlBX1VNTV9DR0FUVF9RVUVSWV9DTkZfRVYgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMTApDQorI2RlZmluZSBNTUlBX1VNTV9aQVRUX1FVRVJZX0NORl9FViAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMTEpDQorI2RlZmluZSBNTUlBX1VNTV9FUFNfTU9ERV9TRVRfQ05GX0VWICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMTIpDQorI2RlZmluZSBNTUlBX1VNTV9FUFNfTU9ERV9RVUVSWV9DTkZfRVYgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMTMpDQorI2RlZmluZSBNTUlBX1VNTV9TRUFSQ0hfUExNTl9DTkZfRVYgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMTQpDQorI2RlZmluZSBNTUlBX1VNTV9DU19TUlZfSU5EX0V2ICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMTUpDQorI2RlZmluZSBNTUlBX1VNTV9WT0lDRV9NT0RFX1FVRVJZX0NORl9FViAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMTYpDQorI2RlZmluZSBNTUlBX1VNTV9TWVNDT05GSUdfUVVFUllfQ05GX0VWICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMTcpDQorI2RlZmluZSBNTUlBX1VNTV9OT1RJRllfUFNfU1RBVEVfRVYgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMTgpDQorI2RlZmluZSBNTUlBX1VNTV9TVUJNT0RFX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMTkpDQorI2RlZmluZSBNTUlBX1VNTV9TUlZDQ19JTkRfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMjApDQorI2RlZmluZSBNTUlBX1VNTV9QU19DT05URVhUX0NORl9FViAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMjEpDQorI2RlZmluZSBNTUlBX1VNTV9DQVVTRV9RVUVSWV9DTkZfRVYgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMjIpDQorI2RlZmluZSBNTUlBX1VNTV9VUERBVEVfRFVBTFBTU1lTQ09ORklHX0lORF9FViAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMjMpDQorI2RlZmluZSBNTUlBX1VNTV9JTVNOT1RTVVBQT1JUX0lORF9FViAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMjQpDQorI2RlZmluZSBNTUlBX1VNTV9QTE1OTElTVF9CQU5ESU5GT19DTkZfRVYgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMjUpDQorI2RlZmluZSBNTUlBX1VNTV9YQ0VMTElORk9fQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMjYpDQorI2RlZmluZSBNTUlBX1VNTV9DU1ZPSUNFX1FVRVJZX0NORl9FViAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMjcpDQorI2RlZmluZSBNTUlBX1VNTV9TQ0FOX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMjgpDQorI2RlZmluZSBNTUlBX1VNTV9DQVVTRV9JTkRfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9VTU1fUlNQX0VWRU5UICsgMjkpDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgTU1JQaOtQ0PP+8+iusW2qNLlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgTU1JQV9DQ19NT0NfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQ0NfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBNTUlBX0NDX01UQ19SU1BfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9DQ19FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIE1NSUFfQ0NfQU5TX01PREVfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0NDX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgTU1JQV9DQ19NT0RJRllfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQ0NfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBNTUlBX0NDX0RJU19NT0RFX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9DQ19FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIE1NSUFfQ0NfRFRNRl9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0NDX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgTU1JQV9DQ19DSExEX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQ0NfRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBNTUlBX0NDX1NUQVRFX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9DQ19FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIE1NSUFfQ0NfQ0FVU0VfUVVFUllfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0NDX0VWRU5UX0JBU0UgKyA4KQ0KKyNkZWZpbmUgTU1JQV9DQ19DU1RBX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQ0NfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBNTUlBX0NDX0NTVEFfU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9DQ19FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBNTUlBX0NDX01PREVfVE9fTVVMVE1FRElBX1JTUF9FViAgICAgICAgIChEV09SRCkoTU1JQV9DQ19FVkVOVF9CQVNFICsgMTEpDQorI2RlZmluZSBNTUlBX0NDX0NDTV9RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9DQ19FVkVOVF9CQVNFICsgMTIpDQorI2RlZmluZSBNTUlBX0NDX0FCT1JUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9DQ19FVkVOVF9CQVNFICsgMTMpDQorI2RlZmluZSBNTUlBX0NDX1NUQVRFX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9DQ19FVkVOVF9CQVNFICsgMTQpDQorI2RlZmluZSBNTUlBX0NDX09QRU5fVk9JQ0VDSE5MX1JFUV9FViAgICAgICAgICAgIChEV09SRCkoTU1JQV9DQ19FVkVOVF9CQVNFICsgMTUpDQorI2RlZmluZSBNTUlBX0NDX1NSVkNDX05PVE9QRU5fVk9JQ0VDSE5MX1JFUV9FViAgIChEV09SRCkoTU1JQV9DQ19FVkVOVF9CQVNFICsgMTYpDQorDQorI2RlZmluZSBNTUlBX0NDX01PQ19DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9DQ19SU1BfRVZFTlQgKyAwKQ0KKyNkZWZpbmUgTU1JQV9DQ19NVENfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQ0NfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIE1NSUFfQ0NfQU5TX01PREVfQ05GX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0NDX1JTUF9FVkVOVCArIDIpDQorI2RlZmluZSBNTUlBX0NDX01PRElGWV9DTkZfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9DQ19SU1BfRVZFTlQgKyAzKQ0KKyNkZWZpbmUgTU1JQV9DQ19ESVNDX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQ0NfUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIE1NSUFfQ0NfTk9USUZZX0lORF9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0NDX1JTUF9FVkVOVCArIDUpDQorI2RlZmluZSBNTUlBX0NDX0FPQ19JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9DQ19SU1BfRVZFTlQgKyA2KQ0KKyNkZWZpbmUgTU1JQV9DQ19TU19OT1RJRllfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQ0NfUlNQX0VWRU5UICsgNykNCisjZGVmaW5lIE1NSUFfQ0NfU1RBVEVfUVVFUllfQ05GX0VWICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0NDX1JTUF9FVkVOVCArIDgpDQorI2RlZmluZSBNTUlBX0NDX0NPTU1PTl9DTkZfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9DQ19SU1BfRVZFTlQgKyA5KQ0KKyNkZWZpbmUgTU1JQV9DQ19DQVVTRV9RVUVSWV9DTkZfRVYgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQ0NfUlNQX0VWRU5UICsgMTApDQorI2RlZmluZSBNTUlBX0NDX1BST0NfSU5GT19JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9DQ19SU1BfRVZFTlQgKyAxMSkNCisjZGVmaW5lIE1NSUFfQ0NfQ1NUQV9RVUVSWV9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0NDX1JTUF9FVkVOVCArIDEyKQ0KKyNkZWZpbmUgTU1JQV9DQ19NT0RFX1RPX01VTFRNRURJQUlORF9FViAgICAgICAgICAoRFdPUkQpKE1NSUFfQ0NfUlNQX0VWRU5UICsgMTMpDQorI2RlZmluZSBNTUlBX0NDX0RJU0NfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9DQ19SU1BfRVZFTlQgKyAxNCkNCisjZGVmaW5lIE1NSUFfQ0NfQ0FMTF9TVEFURV9JTkRfRVYgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0NDX1JTUF9FVkVOVCArIDE1KQ0KKyNkZWZpbmUgTU1JQV9DQ19PUEVOX1ZPSUNFX0NITkxfSU5EX0VWICAgICAgICAgICAoRFdPUkQpKE1NSUFfQ0NfUlNQX0VWRU5UICsgMTYpDQorI2RlZmluZSBNTUlBX0NDX0NMT1NFX1ZPSUNFX0NITkxfSU5EX0VWICAgICAgICAgIChEV09SRCkoTU1JQV9DQ19SU1BfRVZFTlQgKyAxNykNCisjZGVmaW5lIE1NSUFfQ0NfQ0NNX1FVRVJZX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0NDX1JTUF9FVkVOVCArIDE4KQ0KKyNkZWZpbmUgTU1JQV9DQ19DQ1dWX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQ0NfUlNQX0VWRU5UICsgMTkpDQorI2RlZmluZSBNTUlBX0NDX05PVElGWV9BT0NfVElNRVJfSU5EX0VWICAgICAgICAgIChEV09SRCkoTU1JQV9DQ19SU1BfRVZFTlQgKyAyMCkNCisjZGVmaW5lIE1NSUFfQ0NfQ05BUF9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0NDX1JTUF9FVkVOVCArIDIxKQ0KKyNkZWZpbmUgTU1JQV9DQ19EVUFMUFNDRkdfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQ0NfUlNQX0VWRU5UICsgMjIpDQorI2RlZmluZSBNTUlBX0NDX1NUT1BfTE9DQUxWT0lDRV9JTkRfRVYgICAgICAgICAgIChEV09SRCkoTU1JQV9DQ19SU1BfRVZFTlQgKyAyMykNCisjZGVmaW5lIE1NSUFfQ0NfQ0hMRF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0NDX1JTUF9FVkVOVCArIDI0KQ0KKyNkZWZpbmUgTU1JQV9DQ19EVE1GX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQ0NfUlNQX0VWRU5UICsgMjUpDQorI2RlZmluZSBNTUlBX0NDX0NTVEFfU0VUX0NORl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9DQ19SU1BfRVZFTlQgKyAyNikNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBNTUlBo61TTVPP+8+iusW2qNLlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgTU1JQV9TTVNfU1VCTUlUX1NFTkRfUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01TX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgTU1JQV9TTVNfQ09NTUFORF9TRU5EX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01TX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgTU1JQV9TTVNfUkVDX1JTUF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01TX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgTU1JQV9TTVNfTUVNX0FWQUlMX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01TX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgTU1JQV9TTVNfU1RPUkVfUkVQT1JUX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01TX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgTU1JQV9TTVNfQUJPUlRfTU9fUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01TX0VWRU5UX0JBU0UgKyA1KQ0KKw0KKyNkZWZpbmUgTU1JQV9TTVNfTVNHX1NFTkRfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01TX1JTUF9FVkVOVCArIDApDQorI2RlZmluZSBNTUlBX1NNU19ERUxJVkVSX1JFQ19JTkRfRVYgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TTVNfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIE1NSUFfU01TX1NUQVRVU19SRUNfSU5EX0VWICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNU19SU1BfRVZFTlQgKyAyKQ0KKyNkZWZpbmUgTU1JQV9TTVNfUkVDX1JTUF9DTkZfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01TX1JTUF9FVkVOVCArIDMpDQorI2RlZmluZSBNTUlBX1NNU19NTVNfRElTQUJMRV9JTkRfRVYgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TTVNfUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIE1NSUFfU01TX01FTV9BVkFJTF9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNU19SU1BfRVZFTlQgKyA1KQ0KKyNkZWZpbmUgTU1JQV9TTVNfQ09NTU9OX0NORl9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01TX1JTUF9FVkVOVCArIDYpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgTU1JQaOtU1PP+8+iusW2qNLlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgTU1JQV9TU19DTENLX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU1NfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBNTUlBX1NTX0NQV0RfU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TU19FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIE1NSUFfU1NfQ0xJUF9SRUFEX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NTX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgTU1JQV9TU19DTElSX1JFQURfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU1NfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBNTUlBX1NTX0NPTFBfUkVBRF9SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TU19FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIE1NSUFfU1NfQ09MUl9SRUFEX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NTX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgTU1JQV9TU19DQ0ZDX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU1NfRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBNTUlBX1NTX0NDV0FfU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TU19FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIE1NSUFfU1NfQ1VTRF9TRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NTX0VWRU5UX0JBU0UgKyA4KQ0KKyNkZWZpbmUgTU1JQV9TU19BQk9SVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU1NfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBNTUlBX1NTX1VTU0RfQ0FOQ0VMX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TU19FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBNTUlBX1NTX0NOQVBfUkVBRF9SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TU19FVkVOVF9CQVNFICsgMTEpDQorI2RlZmluZSBNTUlBX1NTX01PTFJfRU5BQkxFX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TU19FVkVOVF9CQVNFICsgMTIpDQorI2RlZmluZSBNTUlBX1NTX01PTFJfRElTQUJMRV9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TU19FVkVOVF9CQVNFICsgMTMpDQorI2RlZmluZSBNTUlBX1NTX01UTFJfQU5TX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TU19FVkVOVF9CQVNFICsgMTQpDQorDQorI2RlZmluZSBNTUlBX1NTX0NPTU1PTl9DTkZfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TU19SU1BfRVZFTlQgKyAwKQ0KKyNkZWZpbmUgTU1JQV9TU19DTENLX1FVRVJZX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU1NfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIE1NSUFfU1NfQ0xJUF9SRUFEX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NTX1JTUF9FVkVOVCArIDIpDQorI2RlZmluZSBNTUlBX1NTX0NMSVJfUkVBRF9DTkZfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TU19SU1BfRVZFTlQgKyAzKQ0KKyNkZWZpbmUgTU1JQV9TU19DT0xQX1JFQURfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU1NfUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIE1NSUFfU1NfQ09MUl9SRUFEX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NTX1JTUF9FVkVOVCArIDUpDQorI2RlZmluZSBNTUlBX1NTX0NDRkNfUVVFUllfQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TU19SU1BfRVZFTlQgKyA2KQ0KKyNkZWZpbmUgTU1JQV9TU19DQ1dBX1FVRVJZX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU1NfUlNQX0VWRU5UICsgNykNCisjZGVmaW5lIE1NSUFfU1NfQ1VTRF9NVF9JTkRfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NTX1JTUF9FVkVOVCArIDgpDQorI2RlZmluZSBNTUlBX1NTX0NOQVBfUkVBRF9DTkZfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TU19SU1BfRVZFTlQgKyA5KQ0KKyNkZWZpbmUgTU1JQV9TU19NT0xSX1JFU19JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU1NfUlNQX0VWRU5UICsgMTApDQorI2RlZmluZSBNTUlBX1NTX01UTE9DSVJFUV9OT1RJRllfSU5EX0VWICAgICAgICAgIChEV09SRCkoTU1JQV9TU19SU1BfRVZFTlQgKyAxMSkNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBNTUlBo61TTc/7z6K6xbao0uUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBNTUlBX1NNX05FR19RT1NfUVVFUllfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TTV9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIE1NSUFfU01fTkVHX0VRT1NfUVVFUllfUkVRX0VWICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgTU1JQV9TTV9BQ1RJVkFURURfQ0lEX1FVRVJZX1JFUV9FViAgICAgICAoRFdPUkQpKE1NSUFfU01fRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBNTUlBX1NNX1BEUF9TVEFUVVNfUVVFUllfUkVRX0VWICAgICAgICAgIChEV09SRCkoTU1JQV9TTV9FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIE1NSUFfU01fUERQX0FERFJfUVVFUllfUkVRX0VWICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgTU1JQV9TTV9QRFBfQ0FVU0VfUVVFUllfUkVRX0VWICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01fRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBNTUlBX1NNX1BEUF9BQ1RJVkFURV9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TTV9FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIE1NSUFfU01fUERQX0RFQUNUSVZBVEVfUkVRX0VWICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgTU1JQV9TTV9QRFBfTU9ESUZZX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01fRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBNTUlBX1NNX0RBVEFfU1RBVEVfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TTV9FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIE1NSUFfU01fTVRfQUNUX0FOU19SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIE1NSUFfU01fQ1BTQl9RVUVSWV9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIE1NSUFfU01fQ0dDT05UUkRQX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX0VWRU5UX0JBU0UgKyAxMikNCisjZGVmaW5lIE1NSUFfU01fQ0dTQ09OVFJEUF9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX0VWRU5UX0JBU0UgKyAxMykNCisjZGVmaW5lIE1NSUFfU01fQ0dURlRSRFBfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX0VWRU5UX0JBU0UgKyAxNCkNCisNCisvKiAgINLUyc/P+8+i09C21NOmtcRBVMP8we4gICAgKi8NCisjZGVmaW5lIE1NSUFfU01fQUJPUlRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIE1NSUFfU01fSVBfUERQX0FDVF9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX0VWRU5UX0JBU0UgKyAxNikNCisjZGVmaW5lIE1NSUFfU01fSURMRV9DSE5MX1FVRVJZX1JTUF9FViAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX0VWRU5UX0JBU0UgKyAxNykNCisjZGVmaW5lIE1NSUFfU01fR0VUX1BDT19SU1BfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX0VWRU5UX0JBU0UgKyAxOCkNCisjZGVmaW5lIE1NSUFfU01fRElTQ09OTkVDVF9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX0VWRU5UX0JBU0UgKyAxOSkNCisjZGVmaW5lIE1NSUFfU01fQ09OVEVYVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX0VWRU5UX0JBU0UgKyAyMCkNCisjZGVmaW5lIE1NSUFfU01fQ09OVEVYVF9JTkRfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX0VWRU5UX0JBU0UgKyAyMSkNCisNCisjZGVmaW5lIE1NSUFfU01fTkVHX1FPU19RVUVSWV9DTkZfRVYgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX1JTUF9FVkVOVCArIDApDQorI2RlZmluZSBNTUlBX1NNX05FR19FUU9TX1FVRVJZX0NORl9FViAgICAgICAgICAgIChEV09SRCkoTU1JQV9TTV9SU1BfRVZFTlQgKyAxKQ0KKyNkZWZpbmUgTU1JQV9TTV9BQ1RJVkFURURfQ0lEX1FVRVJZX0NORl9FViAgICAgICAoRFdPUkQpKE1NSUFfU01fUlNQX0VWRU5UICsgMikNCisjZGVmaW5lIE1NSUFfU01fUERQX1NUQVRVU19RVUVSWV9DTkZfRVYgICAgICAgICAgKERXT1JEKShNTUlBX1NNX1JTUF9FVkVOVCArIDMpDQorI2RlZmluZSBNTUlBX1NNX1BEUF9BRERSX1FVRVJZX0NORl9FViAgICAgICAgICAgIChEV09SRCkoTU1JQV9TTV9SU1BfRVZFTlQgKyA0KQ0KKyNkZWZpbmUgTU1JQV9TTV9QRFBfQ0FVU0VfUVVFUllfQ05GX0VWICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01fUlNQX0VWRU5UICsgNSkNCisjZGVmaW5lIE1NSUFfU01fUERQX0FDVElWQVRFX0NORl9FViAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX1JTUF9FVkVOVCArIDYpDQorI2RlZmluZSBNTUlBX1NNX1BEUF9ERUFDVElWQVRFX0NORl9FViAgICAgICAgICAgIChEV09SRCkoTU1JQV9TTV9SU1BfRVZFTlQgKyA3KQ0KKyNkZWZpbmUgTU1JQV9TTV9QRFBfTU9ESUZZX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01fUlNQX0VWRU5UICsgOCkNCisjZGVmaW5lIE1NSUFfU01fUERQX0FDVElWQVRFX0lORF9FViAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX1JTUF9FVkVOVCArIDkpDQorI2RlZmluZSBNTUlBX1NNX0NHRVZfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TTV9SU1BfRVZFTlQgKyAxMCkNCisjZGVmaW5lIE1NSUFfU01fSVBfUERQX0FDVF9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX1JTUF9FVkVOVCArIDExKQ0KKyNkZWZpbmUgTU1JQV9TTV9DTE9TRV9DSE5MX0lORF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01fUlNQX0VWRU5UICsgMTIpDQorI2RlZmluZSBNTUlBX1NNX0lETEVfQ0hOTF9RVUVSWV9JTkRfRVYgICAgICAgICAgIChEV09SRCkoTU1JQV9TTV9SU1BfRVZFTlQgKyAxMykNCisjZGVmaW5lIE1NSUFfU01fR0VUX1BDT19JTkRfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX1JTUF9FVkVOVCArIDE0KQ0KKyNkZWZpbmUgTU1JQV9TTV9DT01NT05fQ05GX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01fUlNQX0VWRU5UICsgMTUpDQorI2RlZmluZSBNTUlBX1NNX0NPTk5FQ1RfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TTV9SU1BfRVZFTlQgKyAxNikNCisjZGVmaW5lIE1NSUFfU01fTk9fQ0FSUklFUl9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX1JTUF9FVkVOVCArIDE3KQ0KKyNkZWZpbmUgTU1JQV9TTV9DSURfREVBQ1RfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01fUlNQX0VWRU5UICsgMTgpDQorI2RlZmluZSBNTUlBX1NNX0NQU0JfUVVFUllfQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TTV9SU1BfRVZFTlQgKyAxOSkNCisjZGVmaW5lIE1NSUFfU01fQ1BTQl9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX1JTUF9FVkVOVCArIDIwKQ0KKyNkZWZpbmUgTU1JQV9TTV9DR0NPTlRSRFBfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01fUlNQX0VWRU5UICsgMjEpDQorI2RlZmluZSBNTUlBX1NNX0NHU0NPTlRSRFBfQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TTV9SU1BfRVZFTlQgKyAyMikNCisjZGVmaW5lIE1NSUFfU01fQ0dURlRSRFBfQ05GX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX1JTUF9FVkVOVCArIDIzKQ0KKyNkZWZpbmUgTU1JQV9TTV9OT1RJRklDQVRJT05fSU5EX0VWICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfU01fUlNQX0VWRU5UICsgMjQpDQorI2RlZmluZSBNTUlBX1NNX01UX0FDVF9BTlNfQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9TTV9SU1BfRVZFTlQgKyAyNSkNCisjZGVmaW5lIE1NSUFfU01fQ09OVEVYVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1NNX1JTUF9FVkVOVCArIDI2KQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgRVNNLSBNTUlBxKO/6dauvOTP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBNTUlBX0VTTV9NVF9FUFNfQkVBUkVSX0FDVF9SRVFfRVYgICAgICAgIChEV09SRCkoTU1JQV9FU01fRVZFTlRfQkFTRSArIDApIC8qb25seSBmb3IgUjcmUjUqLw0KKyNkZWZpbmUgTU1JQV9FU01fRVBTX0JFQVJFUl9NT0RfUkVRX0VWICAgICAgICAgICAoRFdPUkQpKE1NSUFfRVNNX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgTU1JQV9FU01fRUJSX01PRF9RVUVSWV9SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKE1NSUFfRVNNX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgTU1JQV9FU01fRVBTX1FPU19RVUVSWV9SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKE1NSUFfRVNNX0VWRU5UX0JBU0UgKyAzKSAvKm9ubHkgZm9yIFI3JlI1Ki8NCisjZGVmaW5lIE1NSUFfRVNNX0NHQVRGVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0VTTV9FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIE1NSUFfRVNNX0FCT1JUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0VTTV9FVkVOVF9CQVNFICsgNSkgLypvbmx5IGZvciBSNyZSNSovDQorI2lmZGVmIEJUUlVOS19TVVBQT1JUDQorI2RlZmluZSBQVFRfTU1JQV9FU01fVEFVVFlQRV9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9FU01fRVZFTlRfQkFTRSArIDYpIC8qvK/IusztvNMqLw0KKyNlbmRpZg0KKyNkZWZpbmUgTU1JQV9FU01fUERQX0NBVVNFX1FVRVJZX1JFUV9FViAgICAgICAgICAoRFdPUkQpKE1NSUFfRVNNX0VWRU5UX0JBU0UgKyA3KSANCisNCisjZGVmaW5lIE1NSUFfRVNNX0VQU19CRUFSRVJfQUNUX0lORF9FViAgICAgICAgICAgKERXT1JEKShNTUlBX0VTTV9SU1BfRVZFTlQgKyAwKQ0KKyNkZWZpbmUgTU1JQV9FU01fRVBTX0JFQVJFUl9ERUFDVF9JTkRfRVYgICAgICAgICAoRFdPUkQpKE1NSUFfRVNNX1JTUF9FVkVOVCArIDEpDQorI2RlZmluZSBNTUlBX0VTTV9FUFNfQkVBUkVSX01PRF9JTkRfRVYgICAgICAgICAgIChEV09SRCkoTU1JQV9FU01fUlNQX0VWRU5UICsgMikNCisjZGVmaW5lIE1NSUFfRVNNX01UX0VQU19CRUFSRVJfQUNUX0lORF9FViAgICAgICAgKERXT1JEKShNTUlBX0VTTV9SU1BfRVZFTlQgKyAzKSAvKm9ubHkgZm9yIFI3JlI1Ki8NCisjZGVmaW5lIE1NSUFfRVNNX0VQU19CRUFSRVJfTU9EX0NORl9FViAgICAgICAgICAgKERXT1JEKShNTUlBX0VTTV9SU1BfRVZFTlQgKyA0KQ0KKyNkZWZpbmUgTU1JQV9FU01fRVBTX0JFQVJFUl9NT0RfUkVKX0VWICAgICAgICAgICAoRFdPUkQpKE1NSUFfRVNNX1JTUF9FVkVOVCArIDUpDQorI2RlZmluZSBNTUlBX0VTTV9FQlJfTU9EX1FVRVJZX0NORl9FViAgICAgICAgICAgIChEV09SRCkoTU1JQV9FU01fUlNQX0VWRU5UICsgNikNCisjZGVmaW5lIE1NSUFfRVNNX0VQU19RT1NfUVVFUllfQ05GX0VWICAgICAgICAgICAgKERXT1JEKShNTUlBX0VTTV9SU1BfRVZFTlQgKyA3KSAvKm9ubHkgZm9yIFI3JlI1Ki8NCisjZGVmaW5lIE1NSUFfRVNNX0NHQVRGVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0VTTV9SU1BfRVZFTlQgKyA4KQ0KKyNkZWZpbmUgTU1JQV9FU01fUERQX0FERFJfUVVFUllfQ05GX0VWICAgICAgICAgICAoRFdPUkQpKE1NSUFfRVNNX1JTUF9FVkVOVCArIDkpIC8qb25seSBmb3IgUjcmUjUqLw0KKyNpZmRlZiBCVFJVTktfU1VQUE9SVA0KKyNkZWZpbmUgUFRUX01NSUFfRVNNX1RBVVRZUEVfQ05GX0VWICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfRVNNX1JTUF9FVkVOVCArIDEwKSAvKryvyLrM7bzTKi8NCisjZW5kaWYNCisjZGVmaW5lIE1NSUFfRVNNX1BEUF9DQVVTRV9RVUVSWV9DTkZfRVYgICAgICAgICAgKERXT1JEKShNTUlBX0VTTV9SU1BfRVZFTlQgKyAxMSkNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBNTUlBo61DQlPP+8+iusW2qNLlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgTU1JQV9DQlNfQUNUSVZBVEVfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQ0JTX0VWRU5UX0JBU0UgKyAwKQ0KKw0KKyNkZWZpbmUgTU1JQV9DQlNfQUNUSVZBVEVfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQ0JTX1JTUF9FVkVOVCArIDApDQorI2RlZmluZSBNTUlBX0NCU19EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9DQlNfUlNQX0VWRU5UICsgMSkNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBNTUlBo61BU8/7z6K6xbao0uUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIE1NSUFfQVNfRU1fQ0VMTF9JTkZPX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0FTX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgTU1JQV9BU19FTV9IT19JTkZPX1JFUSAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBNTUlBX0FTX0VNX0NFTExSRVNPUkNDT0NPVU5UX1JFUV9FViAgICAgIChEV09SRCkoTU1JQV9BU19FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIE1NSUFfQVNfUlBUX1JYTEVWX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0FTX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgTU1JQV9BU19RVUVSWV9SWExFVl9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBNTUlBX1BESV9TRUxMX1NUQVRfU1RBUlRfU0VORF9QQUNLRVRfSU5EX0VWIChEV09SRCkoTU1JQV9BU19FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIE1NSUFfUERJX1NFTExfU1RBVF9BQk9SVF9JTkRfRVYgICAgICAgICAgKERXT1JEKShNTUlBX0FTX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgTU1JQV9FVUNTUl9MVEVJTkZPX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDcpDQorI2RlZmluZSBNTUlBX0wxRV9aRVBDR19SRVEgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9BU19FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIE1NSUFfQVNfQjM5X0lORk9fUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0FTX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgTU1JQV9BU19SU1NJX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDEwKQ0KKyNkZWZpbmUgTU1JQV9BU19TSU5SX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDExKQ0KKyNkZWZpbmUgTU1JQV9BU19RVUVSWV9FTV9DRUxMX0lORk9fUkVRX0VWICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDEyKQ0KKyNkZWZpbmUgTU1JQV9BU19UTUdJX0FDVElWQVRFX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDEzKQ0KKyNkZWZpbmUgTU1JQV9BU19UTUdJX0RFQUNUSVZBVEVfUkVRX0VWICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDE0KQ0KKyNkZWZpbmUgTU1JQV9BU19TQUlfTElTVF9RVUVSWV9SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDE1KQ0KKyNkZWZpbmUgTU1JQV9BU19UTUdJX0xJU1RfUVVFUllfUkVRX0VWICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDE2KQ0KKyNkZWZpbmUgTU1JQV9BU19UTUdJX0xJU1RfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDE3KQ0KKyNkZWZpbmUgTU1JQV9BU19NQk1TX1BSRUZFUkVOQ0VfUkVRX0VWICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDE4KQ0KKyNkZWZpbmUgTU1JQV9BU19UTUdJX0xJU1RfUkVQT1JUX1JFUV9FViAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDE5KQ0KKyNkZWZpbmUgTU1JQV9BU19TQUlfTElTVF9SRVBPUlRfUkVRX0VWICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDIwKQ0KKyNkZWZpbmUgTU1JQV9BU19OV19USU1FX1FVRVJZX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDIxKQ0KKyNkZWZpbmUgTU1JQV9BU19RVUVSWV9DRVNRX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDIyKQ0KKyNkZWZpbmUgTU1JQV9BU19FTV9MVEVfSE9fU0VUX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDIzKQ0KKyNkZWZpbmUgTU1JQV9BU19FTV9MVEVfSE9fU0VUX1FVRVJZX1JFUV9FViAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDI0KQ0KKyNkZWZpbmUgTU1JQV9MMVdfWldQQ0dfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDI1KQ0KKyNkZWZpbmUgTU1JQV9MMVRfWlRQQ0dfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDI2KQ0KKyNkZWZpbmUgTU1JQV9HUlJfWkdQQ0dfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDI3KQ0KKyNkZWZpbmUgTU1JQV9BU19RVUVSWV9aQ1NRX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDI4KQ0KKyNkZWZpbmUgTU1JQV9BU19MQlNfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDI5KQ0KKyNkZWZpbmUgTU1JQV9BU19JTVNfREFUQV9ERUxFVEVfUkVRX0VWICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfRVZFTlRfQkFTRSArIDMwKQ0KKw0KKyNkZWZpbmUgTU1JQV9BU19FTV9VQ0VMTF9JTkZPX0lORF9FViAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfUlNQX0VWRU5UICsgMCkNCisjZGVmaW5lIE1NSUFfQVNfRU1fVUhPX0lORk9fSU5EX0VWICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0FTX1JTUF9FVkVOVCArIDEpDQorI2RlZmluZSBNTUlBX0FTX1JQVF9SWExFVl9JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9BU19SU1BfRVZFTlQgKyAyKQ0KKyNkZWZpbmUgTU1JQV9BU19RVUVSWV9SWExFVl9JTkRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfUlNQX0VWRU5UICsgMykNCisjZGVmaW5lIE1NSUFfRVVTSVJfRVRXU19QUklNQVJZX0lORF9FViAgICAgICAgICAgKERXT1JEKShNTUlBX0FTX1JTUF9FVkVOVCArIDQpDQorI2RlZmluZSBNTUlBX0VVU0lSX0VUV1NfU0VDT05EQVJZX0lORF9FViAgICAgICAgIChEV09SRCkoTU1JQV9BU19SU1BfRVZFTlQgKyA1KQ0KKyNkZWZpbmUgTU1JQV9BU19FTV9FVUNFTExfSU5GT19JTkRfRVYgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfUlNQX0VWRU5UICsgNikNCisjZGVmaW5lIE1NSUFfRVVDU1JfTFRFSU5GT19JTkRfRVYgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0FTX1JTUF9FVkVOVCArIDcpDQorI2RlZmluZSBNTUlBX0wxRV9aRVBDR19DTkYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9BU19SU1BfRVZFTlQgKyA4KQ0KKyNkZWZpbmUgTU1JQV9BU19CMzlfSU5GT19JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfUlNQX0VWRU5UICsgOSkNCisjZGVmaW5lIEFTX0VNX0NFTExfSU5GT19JTkRfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0FTX1JTUF9FVkVOVCArIDEwKQ0KKyNkZWZpbmUgTU1JQV9BU19SU1NJX1FVRVJZX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfUlNQX0VWRU5UICsgMTEpDQorI2RlZmluZSBNTUlBX0FTX1NJTlJfUVVFUllfQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9BU19SU1BfRVZFTlQgKyAxMikNCisjZGVmaW5lIE1NSUFfQVNfUVVFUllfRU1fVUNFTExfSU5GT19DTkZfRVYgICAgICAgKERXT1JEKShNTUlBX0FTX1JTUF9FVkVOVCArIDEzKQ0KKyNkZWZpbmUgTU1JQV9BU19RVUVSWV9FTV9FVUNFTExfSU5GT19DTkZfRVYgICAgICAoRFdPUkQpKE1NSUFfQVNfUlNQX0VWRU5UICsgMTQpDQorI2RlZmluZSBSUl9RVUVSWV9FTV9DRUxMX0lORk9fQ05GX0VWICAgICAgICAgICAgIChEV09SRCkoTU1JQV9BU19SU1BfRVZFTlQgKyAxNSkNCisjZGVmaW5lIEFTX1FVRVJZX0VNX0NFTExfSU5GT19DTkZfRVYgICAgICAgICAgICAgKERXT1JEKShNTUlBX0FTX1JTUF9FVkVOVCArIDE2KQ0KKyNkZWZpbmUgTU1JQV9BU19UTUdJX0FDVElWQVRFX0NORl9FViAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfUlNQX0VWRU5UICsgMTcpDQorI2RlZmluZSBNTUlBX0FTX1RNR0lfREVBQ1RJVkFURV9DTkZfRVYgICAgICAgICAgIChEV09SRCkoTU1JQV9BU19SU1BfRVZFTlQgKyAxOCkNCisjZGVmaW5lIE1NSUFfQVNfU0FJX0xJU1RfUVVFUllfUkVTUF9FViAgICAgICAgICAgKERXT1JEKShNTUlBX0FTX1JTUF9FVkVOVCArIDE5KQ0KKyNkZWZpbmUgTU1JQV9BU19TQUlfTElTVF9JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfUlNQX0VWRU5UICsgMjApDQorI2RlZmluZSBNTUlBX0FTX1RNR0lfTElTVF9RVUVSWV9SRVNQX0VWICAgICAgICAgIChEV09SRCkoTU1JQV9BU19SU1BfRVZFTlQgKyAyMSkNCisjZGVmaW5lIE1NSUFfQVNfVE1HSV9MSVNUX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0FTX1JTUF9FVkVOVCArIDIyKQ0KKyNkZWZpbmUgTU1JQV9BU19NQk1TX1NFUlZJQ0VfU1VTUEVORF9JTkRfRVYgICAgICAoRFdPUkQpKE1NSUFfQVNfUlNQX0VWRU5UICsgMjMpDQorI2RlZmluZSBNTUlBX0FTX01CTVNfU0VSVklDRV9SRVNVTUVfSU5EX0VWICAgICAgIChEV09SRCkoTU1JQV9BU19SU1BfRVZFTlQgKyAyNCkNCisjZGVmaW5lIE1NSUFfQVNfQ09NTU9OX0NGR19DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0FTX1JTUF9FVkVOVCArIDI1KQ0KKyNkZWZpbmUgTU1JQV9BU19OV19USU1FX1FVRVJZX1JFU1BfRVYgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfUlNQX0VWRU5UICsgMjYpDQorI2RlZmluZSBBVElfRVVDU1JfSElHSFRfQ0FMTF9JTkRfRVYgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9BU19SU1BfRVZFTlQgKyAyNykNCisjZGVmaW5lIE1NSUFfQVNfUVVFUllfQ0VTUV9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0FTX1JTUF9FVkVOVCArIDI4KQ0KKyNkZWZpbmUgQVRJX0VVQ1NSX0JVU1lfQUxFUlRJTkdfSU5EX0VWICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfUlNQX0VWRU5UICsgMjkpDQorI2RlZmluZSBNTUlBX0FTQ19MVEVfTE9TVENPVkVSQUdFX0lORF9FViAgICAgICAgIChEV09SRCkoTU1JQV9BU19SU1BfRVZFTlQgKyAzMCkNCisjZGVmaW5lIE1NSUFfQVNfRU1fTFRFX0hPX0lORk9fSU5EX0VWICAgICAgICAgICAgKERXT1JEKShNTUlBX0FTX1JTUF9FVkVOVCArIDMxKQ0KKyNkZWZpbmUgTU1JQV9BU19FTV9MVEVfSE9fU0VUX1FVRVJZX0NORl9FViAgICAgICAoRFdPUkQpKE1NSUFfQVNfUlNQX0VWRU5UICsgMzIpDQorI2RlZmluZSBNTUlBX0wxV19aV1BDR19DTkZfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9BU19SU1BfRVZFTlQgKyAzMykNCisjZGVmaW5lIE1NSUFfTDFUX1pUUENHX0NORl9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0FTX1JTUF9FVkVOVCArIDM0KQ0KKyNkZWZpbmUgTU1JQV9HUlJfWkdQQ0dfQ05GX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfUlNQX0VWRU5UICsgMzUpDQorI2RlZmluZSBNTUlBX0FTX1FVRVJZX1pDU1FfQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9BU19SU1BfRVZFTlQgKyAzNikNCisjZGVmaW5lIE1NSUFfQVNfTEJTX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX0FTX1JTUF9FVkVOVCArIDM3KQ0KKyNkZWZpbmUgTU1JQV9BU19VTF9QQVJBTV9JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfQVNfUlNQX0VWRU5UICsgMzgpDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgUERJIC0gQVRJIM/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIEFUSV9QRElfREFUQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBVElfUERJX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgQVRJX1BESV9EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFUSV9QRElfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBQU0lfUERJX0RBVEFfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVRJX1BESV9FVkVOVF9CQVNFICsgMikNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBDU0QgLSBBVEkgz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgQVRJX0NTRF9EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFUSV9DU0RfRVZFTlRfQkFTRSArIDApDQorICAgIA0KKyNkZWZpbmUgQVRJX0NTRF9GTE9XX0NUUkxfT05fRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFUSV9DU0RfUlNQX0VWRU5UICsgMCkNCisjZGVmaW5lIEFUSV9DU0RfRkxPV19DVFJMX09GRl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBVElfQ1NEX1JTUF9FVkVOVCArIDEpDQorDQorLyrIq77WseTBv8no1sOhorvxyKHP+8+itqjS5SovDQorI2RlZmluZSBHVkFSX01NSUFfR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIEdWQVJfTU1JQV9HRVRfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAxKQ0KKw0KKyNkZWZpbmUgR1ZBUl9VTU1fR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBHVkFSX1VNTV9HRVRfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgMykNCisNCisjZGVmaW5lIEdWQVJfTU1fR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgR1ZBUl9NTV9HRVRfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDUpDQorDQorI2RlZmluZSBHVkFSX0dNTV9HRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIEdWQVJfR01NX0dFVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyA3KQ0KKw0KKyNkZWZpbmUgR1ZBUl9VSUNDTU5HX0dFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBHVkFSX1VJQ0NNTkdfR0VUX0NORl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgOSkNCisNCisjZGVmaW5lIEdWQVJfQ0NfR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIEdWQVJfQ0NfR0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAxMSkNCisNCisjZGVmaW5lIEdWQVJfU01fR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAxMikNCisjZGVmaW5lIEdWQVJfU01fR0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAxMykNCisNCisjZGVmaW5lIEdWQVJfU01TX0dFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAxNCkNCisjZGVmaW5lIEdWQVJfU01TX0dFVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAxNSkNCisNCisjZGVmaW5lIEdWQVJfU1NfR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAxNikNCisjZGVmaW5lIEdWQVJfU1NfR0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAxNykNCisNCisjZGVmaW5lIEdWQVJfRFNfR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAxOCkNCisjZGVmaW5lIEdWQVJfRFNfR0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAxOSkNCisjZGVmaW5lIEdWQVJfUkFfR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAyMCkNCisjZGVmaW5lIEdWQVJfUkFfR0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAyMSkNCisjZGVmaW5lIEdWQVJfUkxQX0dFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAyMikNCisjZGVmaW5lIEdWQVJfUkxQX0dFVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAyMykNCisNCisjZGVmaW5lIEdWQVJfQ0JTX0dFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAyNCkNCisjZGVmaW5lIEdWQVJfQ0JTX0dFVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAyNSkNCisNCisjZGVmaW5lIEdWQVJfVVJSQ19HRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAyNikNCisjZGVmaW5lIEdWQVJfVVJSQ19HRVRfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyAyNykNCisgDQorI2RlZmluZSBHVkFSX1VNVENfR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgMjgpDQorI2RlZmluZSBHVkFSX1VNVENfR0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgMjkpDQorDQorI2RlZmluZSBHVkFSX1VDRVJfQ09OVEVYVF9HRVRfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgMzApDQorI2RlZmluZSBHVkFSX1VDRVJfQ09OVEVYVF9HRVRfQ05GX0VWICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgMzEpDQorI2RlZmluZSBHVkFSX1VDRVJfU0VDVVJJVFlfR0VUX1JFUV9FViAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgMzIpDQorI2RlZmluZSBHVkFSX1VDRVJfU0VDVVJJVFlfR0VUX0NORl9FViAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgMzMpDQorDQorI2RlZmluZSBHVkFSX1VDU1JfR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgMzQpDQorI2RlZmluZSBHVkFSX1VDU1JfR0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgMzUpDQorDQorI2RlZmluZSBHVkFSX1VTSVJfR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgMzYpDQorI2RlZmluZSBHVkFSX1VTSVJfR0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgMzcpDQorDQorI2RlZmluZSBHVkFSX1VNQ1JfR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgMzgpDQorI2RlZmluZSBHVkFSX1VNQ1JfR0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgMzkpDQorDQorI2RlZmluZSBHVkFSX1VSQkNfR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNDApDQorI2RlZmluZSBHVkFSX1VSQkNfR0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNDEpDQorDQorI2RlZmluZSBHVkFSX1VDTVJfR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNDIpDQorI2RlZmluZSBHVkFSX1VDTVJfR0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNDMpDQorDQorI2RlZmluZSBHVkFSX1VSTENfR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNDQpDQorI2RlZmluZSBHVkFSX1VSTENfR0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNDUpDQorDQorI2RlZmluZSBHVkFSX1VNQUNfR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNDYpDQorI2RlZmluZSBHVkFSX1VNQUNfR0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNDcpDQorI2RlZmluZSBHVkFSX1BEQ1BfR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNDgpDQorI2RlZmluZSBHVkFSX1BEQ1BfR0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNDkpDQorI2RlZmluZSBHVkFSX1JBQk1fR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNTApDQorI2RlZmluZSBHVkFSX1JBQk1fR0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNTEpDQorDQorI2RlZmluZSBHVkFSX1BESV9HRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNTIpDQorI2RlZmluZSBHVkFSX1BESV9HRVRfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNTMpDQorDQorI2RlZmluZSBHVkFSX1NDSV9HRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNTQpDQorI2RlZmluZSBHVkFSX1NDSV9HRVRfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNTUpDQorDQorI2RlZmluZSBHVkFSX0dTTUFfR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNTYpDQorI2RlZmluZSBHVkFSX0dTTUFfR0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNTcpDQorDQorI2RlZmluZSBHVkFSX1VJQ0NfREVWX0dFVF9SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNTgpDQorI2RlZmluZSBHVkFSX1VJQ0NfREVWX0dFVF9DTkZfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNTkpDQorDQorI2RlZmluZSBHVkFSX0FUTUVNX0RFVl9HRVRfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNjApDQorI2RlZmluZSBHVkFSX0FUTUVNX0RFVl9HRVRfQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNjEpDQorDQorI2RlZmluZSBHVkFSX05WX0RFVl9HRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNjIpDQorI2RlZmluZSBHVkFSX05WX0RFVl9HRVRfQ05GX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNjMpDQorDQorI2RlZmluZSBHVkFSX0FTQ19HRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNjQpDQorI2RlZmluZSBHVkFSX0FTQ19HRVRfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNjUpDQorDQorI2RlZmluZSBHVkFSX0VNTV9HRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNjYpDQorI2RlZmluZSBHVkFSX0VNTV9HRVRfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNjcpDQorDQorI2RlZmluZSBHVkFSX0VTTV9HRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNjgpDQorI2RlZmluZSBHVkFSX0VTTV9HRVRfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgNjkpICANCisNCisvKldDRE1BIEdWQVJfRVZFTlRfQkFTRT0xNTAqLw0KKyNkZWZpbmUgR1ZBUl9XUlJDX0dFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDcwKQ0KKyNkZWZpbmUgR1ZBUl9XUlJDX0dFVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDcxKQ0KKyANCisjZGVmaW5lIEdWQVJfV01UQ19HRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyA3MikNCisjZGVmaW5lIEdWQVJfV01UQ19HRVRfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyA3MykNCisNCisjZGVmaW5lIEdWQVJfV0NFUl9DT05URVhUX0dFVF9SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyA3NCkNCisjZGVmaW5lIEdWQVJfV0NFUl9DT05URVhUX0dFVF9DTkZfRVYgICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyA3NSkNCisjZGVmaW5lIEdWQVJfV0NFUl9TRUNVUklUWV9HRVRfUkVRX0VWICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyA3NikNCisjZGVmaW5lIEdWQVJfV0NFUl9TRUNVUklUWV9HRVRfQ05GX0VWICAgICAgICAgICAgKERXT1JEKShHVkFSX0VWRU5UX0JBU0UgKyA3NykNCisgIA0KKyNkZWZpbmUgR1ZBUl9XQ1NSX0dFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDc4KQ0KKyNkZWZpbmUgR1ZBUl9XQ1NSX0dFVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDc5KQ0KKw0KKyNkZWZpbmUgR1ZBUl9XU0lSX0dFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDgwKQ0KKyNkZWZpbmUgR1ZBUl9XU0lSX0dFVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDgxKQ0KKw0KKyNkZWZpbmUgR1ZBUl9XTUNSX0dFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDgyKQ0KKyNkZWZpbmUgR1ZBUl9XTUNSX0dFVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDgzKQ0KKw0KKyNkZWZpbmUgR1ZBUl9XUkJDX0dFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDg0KQ0KKyNkZWZpbmUgR1ZBUl9XUkJDX0dFVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDg1KQ0KKw0KKyNkZWZpbmUgR1ZBUl9XQ01SX0dFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDg2KQ0KKyNkZWZpbmUgR1ZBUl9XQ01SX0dFVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDg3KQ0KKw0KKyNkZWZpbmUgR1ZBUl9XUkxDX0dFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDg4KQ0KKyNkZWZpbmUgR1ZBUl9XUkxDX0dFVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDg5KQ0KKw0KKyNkZWZpbmUgR1ZBUl9XTUFDX0dFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDkwKQ0KKyNkZWZpbmUgR1ZBUl9XTUFDX0dFVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDkxKQ0KKw0KKyNkZWZpbmUgR1ZBUl9FQ1NSX0dFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDkyKQ0KKyNkZWZpbmUgR1ZBUl9FQ1NSX0dFVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDkzKQ0KKw0KKyNkZWZpbmUgR1ZBUl9FQ0VSX0dFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDk0KQ0KKyNkZWZpbmUgR1ZBUl9FQ0VSX0dFVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDk1KQ0KKw0KKyNkZWZpbmUgR1ZBUl9TVE1fR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDk2KQ0KKyNkZWZpbmUgR1ZBUl9TVE1fR0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDk3KQ0KKyNkZWZpbmUgR1ZBUl9UU01fR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDk4KQ0KKyNkZWZpbmUgR1ZBUl9UU01fR0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArIDk5KQ0KKw0KKyNkZWZpbmUgR1ZBUl9MUFBfR0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdWQVJfRVZFTlRfQkFTRSArICAxMDApDQorI2RlZmluZSBHVkFSX0xQUF9HRVRfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1ZBUl9FVkVOVF9CQVNFICsgMTAxKQ0KKw0KKw0KKyNkZWZpbmUgUlJBVF9SWFNUQVRfSU5EICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTQwKQ0KKyNkZWZpbmUgUlJNSV9SWFNUQVRfSU5EICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTQxKQ0KKyNkZWZpbmUgUlJfRU1fSE9fSU5GT19JTkQgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTQyKQ0KKyNkZWZpbmUgUlJfRU1fQ0VMTF9JTkZPX0lORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTQzKQ0KKyNkZWZpbmUgRVJSQ19DRUxMX0NIQU5HRV9DTkZfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTQ0KQ0KKyNkZWZpbmUgRVJSQ19DRUxMX0NIQU5HRV9SRUpfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTQ1KQ0KKyNkZWZpbmUgRVJSQ19SRVNFTF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTQ2KQ0KKyNkZWZpbmUgRVJSQ19SRVNFTF9SRUpfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTQ3KQ0KKyNkZWZpbmUgRVJSQ19DRUxMX1NFQVJDSF9DTkZfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTQ4KQ0KKyNkZWZpbmUgRVJSQ19DRUxMX1NFQVJDSF9SRUpfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTQ5KQ0KKyNkZWZpbmUgVVJSQ19QU0hPX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTUwKQ0KKyNkZWZpbmUgVVJSQ19QU0hPX1JFSl9FViAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTUxKQ0KKyNkZWZpbmUgRVJSQ19QU0hPX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTUyKQ0KKyNkZWZpbmUgRVJSQ19QU0hPX1JFSl9FViAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTUzKQ0KKyNkZWZpbmUgUlJfUFNIT19SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTU0KQ0KKyNkZWZpbmUgTUFDX0dSUl9QU0hPX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTU1KQ0KKyNkZWZpbmUgTUFDX0dSUl9QU0hPX1JFSl9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTU2KQ0KKyNkZWZpbmUgTUFDX0dSUl9QU0hPX1JFVFVSTl9DTkZfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTU3KQ0KKyNkZWZpbmUgTUFDX0dSUl9QU0hPX1JFVFVSTl9GQUlMX0VWICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTU4KQ0KKyNkZWZpbmUgTUFDX0dSUl9QU0hPX0RFQUNUX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTU5KQ0KKyNkZWZpbmUgWl9SUk1JX0lOVEVSX1JBVF9OQ0VMTF9JTkRfRVYgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTYwKQ0KKyNkZWZpbmUgUlJfWENFTExJTkZPX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTYxKQ0KKyNkZWZpbmUgUlJfWENFTExJTkZPX0FCT1JUX1JFUSAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTYyKQ0KKw0KKy8qIFNUQVJUIE9GIFJSQyAqLw0KKyNkZWZpbmUgTExDX1JSQ19EQVRBX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUkNfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBSUl9FTV9IT19JTkZPX1JFUSAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIFJSX0FCT1JUX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJDX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgUlJfREFUQV9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUkNfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBSUl9IT19TVEFSVF9JTkZPICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIEdSUl9SUkNfQ0xBU1NNQVJLX0lORCAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJDX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgR1JSX1JSQ19VUERBVEVfUEFSQU1fUkVRICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUkNfRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBHUlJfUlJDX0FTU0lHTl9SRVEgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIEdSUl9SUkNfRVNUX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJDX0VWRU5UX0JBU0UgKyA4KQ0KKyNkZWZpbmUgR1JSX1JSQ19FUlJPUl9JTkQgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUkNfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBHUlJfUlJDX0RFQUNUX1JFUSAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBHUlJfUlJDX1JYU1RBVF9SRVEgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMTEpDQorI2RlZmluZSBHUlJfUlJDX1RFU1RQQVJBTV9SRVEgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMTIpDQorI2RlZmluZSBHUlJfUlJDX01OX01FQVNfUkVRICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMTMpDQorI2RlZmluZSBHUlJfUlJDX1JSQVRfUlhTVEFUX1JFUSAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMTQpDQorI2RlZmluZSBHUlJfUlJDX1JSTF9EQVRBX1JFUSAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMTUpDQorI2RlZmluZSBHUlJfUlJDX0RUTV9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMTYpDQorI2RlZmluZSBHUlJfUlJDX1BEQ0hfQ09NUExFVEVfSU5EICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMTcpDQorI2RlZmluZSBHUlJfUlJDX1JFTF9QU19DTkYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMTgpDQorI2RlZmluZSBHUlJfUlJDX1JFTF9QU19JTkQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMTkpDQorI2RlZmluZSBETF9VTklUX0RBVEFfSU5EICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMjApDQorI2RlZmluZSBETF9EQVRBX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMjEpDQorI2RlZmluZSBETF9EQVRBX1JFSiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMjIpDQorI2RlZmluZSBETF9FU1RBQkxJU0hfSU5EICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMjMpDQorI2RlZmluZSBETF9FU1RBQkxJU0hfQ09OICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMjQpDQorI2RlZmluZSBETF9JUkFUX0hPX0NPTiAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMjUpDQorI2RlZmluZSBETF9SRUxFQVNFX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMjYpDQorI2RlZmluZSBETF9SRUxFQVNFX0NPTiAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMjcpDQorI2RlZmluZSBETF9TVVNQRU5EX0NPTiAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMjgpDQorI2RlZmluZSBNRExfRVJST1JfSU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMjkpDQorI2RlZmluZSBVUlJDX0hPX0lORk9fUkVTICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMzApDQorI2RlZmluZSBVUlJDX0hPX0NORiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMzEpDQorI2RlZmluZSBVUlJDX0hPX1JFSiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMzIpDQorI2RlZmluZSBSUl9IT19SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMzMpDQorI2RlZmluZSBSUl9WU0RfSU5GTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMzQpDQorI2RlZmluZSBETF9TRU5EQ01QX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMzUpDQorI2RlZmluZSBHUlJfUlJDX1BPV0VST0ZGX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMzYpDQorI2RlZmluZSBUMzExMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMzcpDQorI2RlZmluZSBUMzEyNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMzgpDQorI2RlZmluZSBHUlJDX1QzMjMwX0VWICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSQ19FVkVOVF9CQVNFICsgMzkpIC8vIFI5IFVQREFURQ0KKyNkZWZpbmUgVDMxNDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUkNfRVZFTlRfQkFTRSArIDQwKQ0KKw0KKyAgICAvKiBFTkQgT0YgUlJDICovDQorDQorLyogU1RBUlQgT0YgR1JSICovDQorI2RlZmluZSBSUk1OX01FQVNfUkVTVUxUU19SRVEgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgUlJfVEVTVFBBUkFNX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIFJSX0VNX0NFTExfSU5GT19SRVEgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBSUl9BQ1RfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgUlJfQ0VMTF9QQVJBTUVURVJfUkVRICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIFJSX0NMQVNTTUFSS19JTkQgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBSUl9ERUFDVF9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgUlJfSFBMTU5fQUNUX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIFJSX1BDSF9QUkVGRVJFTkNFX1JFUSAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBSUl9QTE1OX0FCT1JUX1JFUSAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgUlJfUExNTl9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBSUl9VUERBVEVfUExNTl9SRVEgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIFJSX0lOQUNUSVZFX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDEyKQ0KKyNkZWZpbmUgUlJfSFBMTU5fQUJPUlRfUkVRICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTMpDQorI2RlZmluZSBSUl9FU1RfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxNCkNCisjZGVmaW5lIFJSX1VQREFURV9QQVJBTV9SRVEgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDE1KQ0KKyNkZWZpbmUgR01NUlJfQVNTSUdOX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTYpDQorI2RlZmluZSBHTU1SUl9JTkZPX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxNykNCisjZGVmaW5lIEdNTVJSX1JFTEVBU0VfUkVRICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDE4KQ0KKyNkZWZpbmUgUlJfVEVTVF9DT1VOVF9SRVEgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMTkpDQorI2RlZmluZSBSUk1JX1NUQVJUX1JYU1RBVF9SRVEgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAyMCkNCisjZGVmaW5lIFJSTUlfRU5EX1JYU1RBVF9SRVEgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDIxKQ0KKyNkZWZpbmUgUlJMX1JSX0RBVEFfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMjIpDQorI2RlZmluZSBSUkNfR1JSX0VTVF9DTkYgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAyMykNCisjZGVmaW5lIFJSQ19HUlJfRVNUX0ZBSUwgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDI0KQ0KKyNkZWZpbmUgUlJDX0dSUl9DSE5fUkVMX0lORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMjUpDQorI2RlZmluZSBSUkNfR1JSX0RFQUNUX0NORiAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAyNikNCisjZGVmaW5lIFJSQ19HUlJfVEVTVFBBUkFNX0NORiAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDI3KQ0KKyNkZWZpbmUgUlJDX0dSUl9NTl9NRUFTX0NORiAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMjgpDQorI2RlZmluZSBSUkNfR1JSX1JSQVRfUlhTVEFUX0lORCAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAyOSkNCisjZGVmaW5lIFJSQ19HUlJfUlJMX0RBVEFfSU5EICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDMwKQ0KKyNkZWZpbmUgUlJDX0dSUl9SUkxfQUJPUlRfRVZFTlRfSU5EICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMzEpDQorI2RlZmluZSBSUkNfR1JSX0RUTV9DTkYgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAzMikNCisjZGVmaW5lIFJSQ19HUlJfRFRNX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDMzKQ0KKyNkZWZpbmUgUlJDX0dSUl9EVE1fQVNTX0lORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMzQpDQorI2RlZmluZSBSUkNfR1JSX0RUTV9SRUogICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAzNSkNCisjZGVmaW5lIFJSQ19HUlJfUEtUX05PVElfSU5EICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDM2KQ0KKyNkZWZpbmUgUlJDX0dSUl9SRUxfUFNfUkVRICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgMzcpDQorI2RlZmluZSBSUkNfR1JSX0NPTk5FQ1RFRF9JTkQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAzOCkNCisjZGVmaW5lIFJSQ19HUlJfSE9fVE9fVVRSQU5fSU5EICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDM5KQ0KKyNkZWZpbmUgUkxDX0dSUl9BQ0NFU1NfUkVRICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgNDApDQorI2RlZmluZSBSTENfR1JSX1VQTElOS19QRENIX0lORCAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA0MSkNCisjZGVmaW5lIFJMQ19HUlJfUkVMX1BEQ0hfQ05GICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDQyKQ0KKyNkZWZpbmUgUkxDX0dSUl9VUExJTktfUERDSF9SRUxfSU5EICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgNDMpDQorI2RlZmluZSBSTENfR1JSX1NUQVRVU19JTkQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA0NCkNCisjZGVmaW5lIFJMQ19HUlJfVVBMSU5LX1BEQ0hfRVNUX0lORCAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDQ1KQ0KKyNkZWZpbmUgUkxDX0dSUl9URVNUUEFSQU1fSU5EICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgNDYpDQorI2RlZmluZSBNQUNfR1JSX0RPV05MSU5LX1BEQ0hfSU5EICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA0NykNCisjZGVmaW5lIE1BQ19HUlJfRE9XTkxJTktfUERDSF9SRUxfSU5EICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDQ4KQ0KKyNkZWZpbmUgTUFDX0dSUl9QT0xMSU5HX0NORiAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgNDkpDQorI2RlZmluZSBNQUNfR1JSX0NJUkNVSVRfQ05GICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA1MCkNCisjZGVmaW5lIE1BQ19HUlJfQ0lSQ1VJVF9GQUlMICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDUxKQ0KKyNkZWZpbmUgTUFDX0dSUl9DSVJDVUlUX0FCT1JUX0NORiAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgNTIpDQorI2RlZmluZSBNQUNfR1JSX0RBVEFfSU5EICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA1MykNCisjZGVmaW5lIE1BQ19HUlJfRlJFUV9VUERBVEVfUkVRICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDU0KQ0KKyNkZWZpbmUgTUFDX0dSUl9ERUFDVF9DTkYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgNTUpDQorI2RlZmluZSBNQUNfR1JSX0lETEVfQ0hOX1JFUSAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA1NikNCisjZGVmaW5lIE1BQ19HUlJfUEVSU19MRVZFTF9JTkQgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDU3KQ0KKyNkZWZpbmUgTUFDX0dSUl9TVEFSVF9USU1FUiAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgNTgpDQorI2RlZmluZSBNQUNfR1JSX1NUT1BfVElNRVIgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA1OSkNCisjZGVmaW5lIE1BQ19HUlJfVEVTVFBBUkFNX0lORCAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDYwKQ0KKyNkZWZpbmUgTUFDX0dSUl9TVVNQRU5EX0NORiAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgNjEpDQorI2RlZmluZSBNQUNfR1JSX1BEQ0hfRkFJTF9JTkQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA2MikNCisjZGVmaW5lIFJSQVRfUlhTVEFUX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDYzKQ0KKyNkZWZpbmUgUlJBVF9DSEFOR0VfUkVMX1JFUSAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgNjQpDQorI2RlZmluZSBSUl9DRUxMX0NIQU5HRV9SRVEgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA2NSkNCisjZGVmaW5lIFVSUkNfQ0VMTF9DSEFOR0VfQ05GICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDY2KQ0KKyNkZWZpbmUgVVJSQ19DRUxMX0NIQU5HRV9SRUogICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgNjcpDQorI2RlZmluZSBVUlJDX1JFU0VMX1JFSiAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA2OCkNCisjZGVmaW5lIFVSUkNfUkVTRUxfQ05GICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDY5KQ0KKyNkZWZpbmUgVVJSQ19TRVRfSU5BQ1RJVkVfQ05GICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgNzApDQorI2RlZmluZSBSUl9TRVRfSU5BQ1RJVkVfUkVRICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA3MSkNCisjZGVmaW5lIFVSUkNfQUJPUlRfUkVBRF9QUkVERUZfQ05GICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDcyKS8qV0NETUHPwsq508MqLw0KKyNkZWZpbmUgVVJSQ19MMV9SU1JDX0NORiAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgNzMpDQorI2RlZmluZSBVUlJDX0wxX1JTUkNfUkVKICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA3NCkNCisjZGVmaW5lIFJSX0wxX1JTUkNfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDc1KQ0KKyNkZWZpbmUgUlJfTDFfUlNSQ19GUkVFX0lORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgNzYpDQorI2RlZmluZSBSUl9DRUxMX1NFQVJDSF9SRVEgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA3NykNCisjZGVmaW5lIFVSUkNfUkVBRF9QUkVERUZfQ09ORl9DTkYgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDc4KS8qV0NETUHPwsq508MqLw0KKyNkZWZpbmUgVVJSQ19DRUxMX1JFU0VMX1BBUkFNX0lORCAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgNzkpDQorI2RlZmluZSBVUlJDX0NFTExfU0VBUkNIX0NORiAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA4MCkNCisjZGVmaW5lIFVSUkNfQ0VMTF9TRUFSQ0hfUkVKICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDgxKQ0KKyNkZWZpbmUgUlJfUkVTRUxfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgODIpDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgTU1JQbaoyrHG98/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIE1NSUFfRU1fSE9fSU5GT19FWFBJUllfRVYgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1RJTUVSX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgTU1JQV9TRUxMX1NUQVRfT05FX1BEUF9FWFBJUllfRVYgICAgICAgICAoRFdPUkQpKE1NSUFfVElNRVJfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBNTUlBX1NFTExfU1RBVF9TVU1fUERQX0VYUElSWV9FViAgICAgICAgIChEV09SRCkoTU1JQV9USU1FUl9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIE1NSUFfU0VMTF9TVEFUX1JFR19FWFBJUllfRVYgICAgICAgICAgICAgKERXT1JEKShNTUlBX1RJTUVSX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgTU1JQV9BT0NfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVElNRVJfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBNTUlBX1pHRFRfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1JQV9USU1FUl9FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIE1NSUFfU09GVFJFU0VUX0VYUElSWV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShNTUlBX1RJTUVSX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgTU1JQV9aVUxSVElORF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVElNRVJfRVZFTlRfQkFTRSArIDcpDQorDQorLyq0pbeiz/vPoiovDQorI2RlZmluZSBNU0dUUkFDRVBTX0NFTExfRElTUExBWV9SRVFfRVYgICAgICAgICAgIChEV09SRCkoUFNfUk9BRFRFU1RfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBST0FEVEVTVF9VRUlORk9fUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoUFNfUk9BRFRFU1RfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBNU0dUUkFDRVBTX0NFTExSRVNPUkNDT0NPVU5UX1JFUV9FViAgICAgIChEV09SRCkoUFNfUk9BRFRFU1RfRVZFTlRfQkFTRSArIDIpDQorDQorLypXQ0RNQSBQU19ST0FEVEVTVF9SU1BfRVZFTlQgPTMwMCovDQorI2RlZmluZSBBVF9JTkZPX1JFQ0VJVkVEX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoUFNfUk9BRFRFU1RfUlNQX0VWRU5UICsgMTgpDQorI2RlZmluZSBBVF9JTkZPX1NFTlRfRVYgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoUFNfUk9BRFRFU1RfUlNQX0VWRU5UICsgMTkpDQorI2RlZmluZSBXUkxDX1VMX0RBVEFQRFVfVFJBQ0VfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoUFNfUk9BRFRFU1RfUlNQX0VWRU5UICsgMjApDQorI2RlZmluZSBXUkxDX0RMX0RBVEFQRFVfVFJBQ0VfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoUFNfUk9BRFRFU1RfUlNQX0VWRU5UICsgMjEpDQorI2RlZmluZSBXUkxDX1VMX0NUUkxQRFVfVFJBQ0VfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoUFNfUk9BRFRFU1RfUlNQX0VWRU5UICsgMjIpDQorI2RlZmluZSBXUkxDX0RMX0NUUkxQRFVfVFJBQ0VfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoUFNfUk9BRFRFU1RfUlNQX0VWRU5UICsgMjMpDQorI2RlZmluZSBQRENQMldSTENfREFUQV9JTkRfVFJBQ0VfRVYgICAgICAgICAgICAgIChEV09SRCkoUFNfUk9BRFRFU1RfUlNQX0VWRU5UICsgMjQpDQorI2RlZmluZSBQRENQMldSTENfREFUQV9SRVFfVFJBQ0VfRVYgICAgICAgICAgICAgIChEV09SRCkoUFNfUk9BRFRFU1RfUlNQX0VWRU5UICsgMjUpDQorI2RlZmluZSBXTUFDX1VMX1VQQV9UQl9JTkZPX1RSQUNFX0VWICAgICAgICAgICAgIChEV09SRCkoUFNfUk9BRFRFU1RfUlNQX0VWRU5UICsgMjYpDQorDQorI2lmZGVmIEJUUlVOS19TVVBQT1JUDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqUFMgTFRFIEJUcnVuayBtc2cgcmFuZ2Ugc3RhcnQqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisvKiBBVEkgLS0+IFRTTSAqLw0KKyNkZWZpbmUgQVRJX1RTTV9SRUdfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDEpDQorI2RlZmluZSBBVElfVFNNX0NBTExfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgMikNCisjZGVmaW5lIEFUSV9UU01fQ0FMTENPTkZJUk1fUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQlRSVU5LX0JBU0UgKyAzKQ0KKyNkZWZpbmUgQVRJX1RTTV9DQUxMQ09OTkVDVF9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDQpDQorI2RlZmluZSBBVElfVFNNX0NBTExSTFNfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgNSkNCisjZGVmaW5lIEFUSV9UU01fRkxPT1JfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQlRSVU5LX0JBU0UgKyA2KQ0KKyNkZWZpbmUgQVRJX1RTTV9GTE9PUlJMU19SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDcpDQorI2RlZmluZSBBVElfVFNNX1NUVU5JTkZPX1FVRVJZX1JFUV9FViAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgOCkNCisjZGVmaW5lIEFUSV9UU01fR1JPVVBJTkZPX1FVRVJZX1JFUV9FViAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQlRSVU5LX0JBU0UgKyA5KQ0KKyNkZWZpbmUgQVRJX1RTTV9TQ0FOR1JPVVBJTkZPX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDEwKQ0KKyNkZWZpbmUgQVRJX1RTTV9TQ0FOU1dJVENIX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDExKQ0KKyNkZWZpbmUgQVRJX1RTTV9TSEFLRUhBTkRfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDEyKQ0KKyNkZWZpbmUgQVRJX1RTTV9TSE9SVF9EQVRBX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDEzKQ0KKyNkZWZpbmUgQVRJX1RTTV9MT0NBVElORk9fUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDE0KQ0KKyNkZWZpbmUgQVRJX1RTTV9TRVRBQklMSVRZX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDE1KQ0KKyNkZWZpbmUgQVRJX1RTTV9DQUxMRk9SV0FSRF9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDE2KQ0KKyNkZWZpbmUgQVRJX1RTTV9DQUxMTU9ESUZZX1JTUF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDE3KQ0KKyNkZWZpbmUgQVRJX1RTTV9DQUxMTU9ESUZZX1JFSl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDE4KQ0KKw0KKy8qIFRTTSAtLT4gQVRJICovDQorI2RlZmluZSBBVElfVFNNX0ZMT09SR1JUX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgMjUpDQorI2RlZmluZSBBVElfVFNNX0ZMT09SUkxTX0NORl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgMjYpDQorI2RlZmluZSBBVElfVFNNX0ZMT09SUkxTX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgMjcpIA0KKyNkZWZpbmUgQVRJX1RTTV9GTE9PUlJFSl9JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDI4KQ0KKyNkZWZpbmUgQVRJX1RTTV9GTE9PUldBSVRfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDI5KQ0KKyNkZWZpbmUgQVRJX1RTTV9GTE9PUklORk9STV9JTkRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDMwKQ0KKyNkZWZpbmUgQVRJX1RTTV9TVFVOSU5GT19RVUVSWV9DTkZfRVYgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDMxKSANCisjZGVmaW5lIEFUSV9UU01fU1RVTklORk9fSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQlRSVU5LX0JBU0UgKyAzMikgDQorI2RlZmluZSBBVElfVFNNX0dST1VQSU5GT19RVUVSWV9DTkZfRVYgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgMzMpDQorI2RlZmluZSBBVElfVFNNX0dST1VQSU5GT19VUERBVEVfSU5EX0VWICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgMzQpIA0KKyNkZWZpbmUgQVRJX1RTTV9HUk9VUENBTExfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDM1KQ0KKyNkZWZpbmUgQVRJX1RTTV9TQ0FOR1JPVVBJTkZPX0lORF9FViAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDM2KQ0KKyNkZWZpbmUgQVRJX1RTTV9TSEFLRUhBTkRfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDM3KQ0KKyNkZWZpbmUgQVRJX1RTTV9TSE9SVF9EQVRBX0lORF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDM4KSANCisjZGVmaW5lIEFUSV9UU01fTE9DQVRJTkZPX1RZUEVfSU5EX0VWICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQlRSVU5LX0JBU0UgKyAzOSkgDQorI2RlZmluZSBBVElfVFNNX0ZBTExCQUNLX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgNDApIA0KKyNkZWZpbmUgQVRJX1RTTV9SRUdfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDQxKQ0KKyNkZWZpbmUgQVRJX1RTTV9SRUdTVEFURV9JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDQyKQ0KKyNkZWZpbmUgQVRJX1RTTV9DQUxMX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDQzKQ0KKyNkZWZpbmUgQVRJX1RTTV9DQUxMUkxTX0NORl9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDQ0KSANCisjZGVmaW5lIEFUSV9UU01fQ0FMTF9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQlRSVU5LX0JBU0UgKyA0NSkNCisjZGVmaW5lIEFUSV9UU01fQ0FMTFBST0NFRURfSU5EX0VWICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQlRSVU5LX0JBU0UgKyA0NikNCisjZGVmaW5lIEFUSV9UU01fQ0FMTEFMRVJUSU5HX0lORF9FViAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQlRSVU5LX0JBU0UgKyA0NykgDQorI2RlZmluZSBBVElfVFNNX0NBTExDT05ORUNUQUNLX0lORF9FViAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgNDgpIA0KKyNkZWZpbmUgQVRJX1RTTV9DQUxMUkxTX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDQ5KQ0KKyNkZWZpbmUgQVRJX1RTTV9TUEVBS0lOR1RJTUVST1VUX0lORF9FViAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDUwKQ0KKyNkZWZpbmUgQVRJX1RTTV9WSURFT1NPVVJDRV9JTkRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDUxKQ0KKyNkZWZpbmUgQVRJX1RTTV9TQ0FOR1JPVVBJTkZPX0NORl9FViAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDUyKQ0KKyNkZWZpbmUgQVRJX1RTTV9TUlNUQVRVU19JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDUzKQ0KKyNkZWZpbmUgQVRJX1RTTV9DQUxMSE9MRF9JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDU0KQ0KKyNkZWZpbmUgQVRJX1RTTV9QVFRCRUFSX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDU1KQ0KKyNkZWZpbmUgQVRJX1RTTV9CVVNZX0FMRVJUSU5HX0lORF9FViAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDU2KQ0KKyNkZWZpbmUgQVRJX1RTTV9DQUxMRk9SV0FSRF9JTkRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDU3KQ0KKyNkZWZpbmUgQVRJX1RTTV9DQUxMTU9ESUZZX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDU4KQ0KKyNkZWZpbmUgQVRJX1RTTV9DQUxMTU9ESUZZX0FDS19FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDU5KQ0KKyNkZWZpbmUgQVRJX1RTTV9SRUdFWFRJTkZPX0lORF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDYwKQ0KKyNlbmRpZg0KKyNlbmRpZg0KKw0KZGlmZiAtLWdpdCBhL3B1Yi9pbmNsdWRlL3BzX3BoeS9sMV9jb3VudF9sYXRjaC5oIGIvcHViL2luY2x1ZGUvcHNfcGh5L2wxX2NvdW50X2xhdGNoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzZiMTVkNQotLS0gL2Rldi9udWxsCisrKyBiL3B1Yi9pbmNsdWRlL3BzX3BoeS9sMV9jb3VudF9sYXRjaC5oCkBAIC0wLDAgKzEsMjEyIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiAgsOaxvsv509AgKEMpMjAxMNbQ0MvNqNG2ucm33dPQz965q8u+DQorICoNCisgKiAgxKO/6cP7ICCjug0KKyAqICDOxLz+w/sgIKO6bDFfY291bnRfbGF0Y2guaA0KKyAqICDOxLz+serKtqO6DQorICogIM/gudjOxLz+o7oNCisgKiAgyrXP1rmmxNyjug0KKyAqICDX99XfICAgIKO6DQorICogILDmsb4gICAgo7oNCisgKiAgzeqzycjVxtqjug0KKyAqICDG5Mv8y7XD96O60MK9qA0KKyAqDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKw0KKw0KKyNpZm5kZWYJX0wxX0NPVU5UX0xBVENIX0gNCisjZGVmaW5lCV9MMV9DT1VOVF9MQVRDSF9IDQorDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogICAgICAgICAgICAgICAgICAgICAgICDNt87EvP6w/LqsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKy8qILHq17y/4s23zsS8/iAqLw0KKyNpbmNsdWRlICJvc3NfYXBpLmgiDQorDQorI2lmZGVmICBERFJfQkFTRV9BRERSX0xJTlVYX1ZBDQorI2luY2x1ZGUgPG1hY2gvaW9tYXAuaD4NCisjZW5kaWYNCisNCisvKiC3x7Hq17y/4s23zsS8/iAqLw0KKw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgILOjwb+2qNLlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogICAgICAgICAgICAgICAgICAgICAgICAgyKu+1rrqtqjS5SAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisvL7zEtObG9zgnaDE1ICgweDZkODBfMTA1NCmjurbgxKNjb3VudCBsYXRjaL/Y1sa8xLTmxvcNCisvKg0KKzQuNC4xLjIyCbzEtObG9zgnaDE1ICgweDZkODBfMTA1NCmjurbgxKNjb3VudCBsYXRjaL/Y1sa8xLTmxvcNCitCaXRbMzE6MTRdCVIJsaPB9AkwDQorQml0WzEzXQlXL1IJR3NtX2Nsa19nc21fZW5fc2VsCTANCitCaXRbMTJdCVcvUglHc21fY2xrX2dzbV9yZWcJMA0KK0JpdFsxMTo5XQlSCbGjwfQJMA0KK0JpdFs4XQlXL1IJR3NtX3B3cl9lbgkwDQorQml0Wzc6M10JUgmxo8H0CTANCitCaXRbMl0JV1IJbGF0Y2hfdG9wX2VuCTANCitCaXRbMV0JV1IJZ3NtX2dzaWN0cmwxCTANCitCaXRbMF0JV1IJZ3NtX2dzaWN0cmwwCTANCisqLw0KKy8q1rXO3tCn1rvOqrHg0uvNqLn9IHpoYW5ncGVpKi8NCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiAgICAgICAgICAgICAgICAgICAgICAgICDIq77Wyv2+3cDg0M22qNLlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCit0eXBlZGVmICBzdHJ1Y3QNCit7DQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgd1RpY2s7Lyowfjk5OTkqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgIHdGcmFtZTsvKjB+MjcxNTY0NyovDQorfVRfelBIWV9HU01fVHN0YW1wOw0KK3R5cGVkZWYgIHN0cnVjdA0KK3sNCisgICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgd0NoaXA7ICAgICAgICAgICAgICAgICAgICAgICAvKjB+NjM5OSBjaGlwKi8NCisgICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgd1N1YkZyYW1lOyAgICAgICAgICAgICAgICAgLyog19PWobrFo6wgt7bOpyAwIC0gODE5MSovDQorfVRfelBIWV9URF9Uc3RhbXA7DQordHlwZWRlZiAgc3RydWN0DQorew0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgd1RzOyAgICAgICAgICAgICAgLyrKsbzk0MXPorWlzrtUUyovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgICB3U3ViRnJhbWU7ICAvKsqxvOTQxc+i19PWobrFKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgIHdGcmFtZTsgIC8qyrG85NDFz6LWobrFKi8NCisNCit9VF96UEhZX0xURV9Uc3RhbXA7DQordHlwZWRlZiAgc3RydWN0DQorew0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyYW1lOyAgLyrKsbzk0MXPotfT1qG6xSovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgICB3Q2hpcDsgIC8qyrG85NDFz6LWobrFKi8NCit9VF96UEhZX1dfVHN0YW1wOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBUX3pQSFlfTFRFX1RzdGFtcCAgICAgICAgICAgICAgICB0THRlVHN0YW1wOyAgICAvL0xURSDL+LTmyrG85KOozfjC58qxvOSjqQ0KKyAgICBUX3pQSFlfVERfVHN0YW1wICAgICAgICAgICAgICAgICB0VERUc3RhbXA7IC8vVEQgy/i05sqxvOSjqM34wufKsbzko6kNCisgICAgVF96UEhZX1dfVHN0YW1wICAgICAgICAgICAgICAgICAgdFdUc3RhbXA7IC8vVyDL+LTmyrG85KOozfjC58qxvOSjqQ0KKyAgICBUX3pQSFlfR1NNX1RzdGFtcCAgICAgICAgICAgICAgICB0R3NtVHN0YW1wOyAvLyBHU00gy/i05sqxvOSjqM34wufKsbzko6kNCit9VF96TVVMTV9UaW1pbmdfU3RhbXA7DQorDQorDQorLyogTVJUUr/s1dW/2NbGvMS05sb3ICovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorCVVJTlQzMiBsYXRjaF9zaWduYWwgICA6IDE7ICAgLyogv+zV1cv4tObQxbrFIC13ICovDQorCVVJTlQzMiBSZXNlcnZlXzAgICAgICA6IDE1Ow0KKwlVSU5UMzIgbGF0Y2hfZmxhZ19kb25lIDogMTsgLyogy/i05s3qs8mx6ta+IC1yZCAqLw0KKwlVSU5UMzIgUmVzZXJ2ZV8xICAgICAgIDogMTU7DQorfVRfQ09VTlRfTEFUQ0hfTFBNX0NUUkxfUkVHOw0KKw0KKw0KKy8qw+jK9qO6TXJ0crzGyv28xLTmxvcqLw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgIEJJVCAgICAgIHwzMSAzMCB8MjkgMjggMjcgMjYgMjUgMjQgMjMgMjIgMjEgMjAgMTkgMTggfCAxNyAxNiAxNSAxNCB8IDEzIDEyIDExIDEwIHwgOSA4IDcgNiA1IDQgMyAyIHwgMSAwIHwNCisgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorICBGdW5jdGlvbiB8cmVzZXJ2fCAgICAgICAgICAgICAgICAgUmFkaW9GcmFtZSAgICAgICAgIHwgICBzbG90ICAgICAgfCAgc3ltb2JvbCAgICB8ICAgICBjaGlwICAgICAgICB8c21wbGV8DQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgVUlOVDMyICAgICAgIGRTYW1wbGUgICAgIDoyOw0KKyAgICBVSU5UMzIgICAgICAgZENoaXAgICAgICAgICAgOjg7DQorICAgIFVJTlQzMiAgICAgICBkU3ltYm9sICAgICA6NDsNCisgICAgVUlOVDMyICAgICAgIGRTbG90ICAgICAgICAgICA6NDsNCisgICAgVUlOVDMyICAgICAgIGRGcmFtZSAgICAgICA6MTI7DQorICAgIFVJTlQzMiAgICAgICBkUmVzZXJ2ZWQgIDoyOw0KK31UX3JlZ1dMcG1MYXRjaENudDsNCisNCisvKlREKi8NCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICBCSVQgICAgICB8IDE1IDE0IDEzIHwgMTIgMTEgMTAgOSA4IDcgNiA1IDQgMyAyIDEgMCAgCQkJCQkJfA0KKyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgIEZ1bmN0aW9uIHwgUmVzZXJ2ZWQgfCBTdWItZnJhbWUgQ250IChudCBzdWItZnJhbWUgc3luYykoMH44MTkxKQkJIAl8DQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdHsNCisJCQkJCVVJTlQzMiAgICAgICB3TnRTdWJGcm1WYWx1ZTEgICAgICAgIDoxMzsNCisJCQkJCVVJTlQzMiAgICAgICB3UmVzZXJ2ZWQgICAgICAgICAgICAgIDoxOTsNCit9VF9yZWdUZExwbUxhdGNoU2ZuOw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgIEJJVCAgICAgIHwgMTUgICAgICAgfCAxNCAxMyAxMiAxMSAxMCA5IDggNyA2IDUgNCAzIDIgfCAxIDAgIAkJCQl8DQorIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKyAgRnVuY3Rpb24gfCBSZXNlcnZlZCB8IENoaXAgQ250KDB+NjM5OSkoc3luYyBudCBzdWItZnJhbWUpfCBTYW1wbGUgY250KDB+Myl8DQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdHsNCisJCQkJCVVJTlQzMiAgICAgICB3U3luY1NhbWNudFZhbHVlMCAgICAgIDozOyAgDQorCQkJCQlVSU5UMzIgICAgICAgd1N5bmNDaGlwY250VmFsdWUwICAgICA6MTM7DQorCQkJCQlVSU5UMzIgICAgICAgd1Jlc2VydmVkICAgICAgICAgICAgICA6MTY7DQorfVRfcmVnVGRMcG1MYXRjaENoaXA7DQorDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogICAgICAgICAgICAgICAgICAgICAgICAgyKu+1rHkwb/J+cP3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIMirvta6r8r91K3QzSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqCbqvyv3D+wkJo7oNCisgKgm5psTcCQmjug0KKyAqCcrkyOuyzsr9CaO6DQorICoJyuSz9rLOyv0Jo7oNCisgKgm3tbvY1rXLtcP3ICCjug0KKyAqCcbky/vLtcP3CaO6DQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK2V4dGVybiB2b2lkIHpQSFlfZW11bG1fR2V0TXVsbVRpbWluZ1N0YW1wKFRfek1VTE1fVGltaW5nX1N0YW1wICpwdE11bG1UaW1pbmdTdGFtcCk7DQorZXh0ZXJuIHZvaWQgelBIWV9lbXVsbV9HZXRNdWxtTXJ0clN0YW1wKFRfek1VTE1fVGltaW5nX1N0YW1wICpwdE11bG1UaW1pbmdTdGFtcCk7DQorDQorLy8gY3ltX3N0YXJ0OiDU9rzTu/HIodb31sbKvc34wufKsbzkv+zV1bXEuabE3Lqvyv3J+cP3o6wgMjAxNi0yLTENCit2b2lkIHpQSFlfZW11bG1fR2V0TXVsbUxvY2FsU3RhbXAoVF96TVVMTV9UaW1pbmdfU3RhbXAgKnB0TXVsbVRpbWluZ1N0YW1wKTsNCisvLyBjeW1fZW5kCQ0KKw0KKy8qILvxyKGx5MG/tdpiaXS1xNa1o6yxyMjndmFsPTBCJzAxMDEwMTAxLCBCSVRfR0VUKHZhbCwgMikgID0gMEInMSovDQorI2RlZmluZSBCSVRfR0VUKG5hbWUsIGJpdCkgICAgICAoKCAobmFtZSkgPj4gKGJpdCkpICYgMHgwMSkNCisNCisjaWYgKGRlZmluZWQgX0NISVBfWlgyOTc1MjApDQorI2RlZmluZSBSRUdfR1NNX0xQTV9CQVNFICAgICAgICAgICAoMHgwMDEzRjAwMCkNCisjZWxpZiAoZGVmaW5lZCBfQ0hJUF9aWDI5NzUyMFYyKSB8fCAoZGVmaW5lZCBfQ0hJUF9aWDI5NzUyMFYzKQ0KKyNpZmRlZiAgRERSX0JBU0VfQUREUl9MSU5VWF9WQQ0KKyNkZWZpbmUgUkVHX0dTTV9MUE1fQkFTRSAgICAgICAgICAgKCh1bnNpZ25lZCBsb25nKVpYX0xQTV9CQVNFKQ0KKyNlbHNlDQorI2RlZmluZSBSRUdfR1NNX0xQTV9CQVNFICAgICAgICAgICAoMHgwMDEzNDAwMCkNCisjZW5kaWYNCisjZWxzZQ0KKyNkZWZpbmUgUkVHX0dTTV9MUE1fQkFTRSAgICAgICAgICAgKDB4MDAxM0YwMDApDQorI2VuZGlmDQorDQorI2RlZmluZSBSRUdfTFBNX0xBVENIX0VOQUJMRSAgICAgICAgICAgICAgICAoKih2b2xhdGlsZSBXT1JEMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NjAqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfQ09VTlRFUjMyS19MQVRDSF9UMSAgICAgICAgICAgICAoKih2b2xhdGlsZSBXT1JEMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4MzEqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfQ09VTlRFUjMyS19MQVRDSF9UMiAgICAgICAgICAgICAoKih2b2xhdGlsZSBXT1JEMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4MzIqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfQ09VTlRFUjMyS19MQVRDSF9SRVNFVCAgICAgICAgICAoKih2b2xhdGlsZSBXT1JEMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4MzMqNCk+PkNQVV9TSElGVCkpDQorDQorI2RlZmluZSBSRUdfQ09VTlRFUjMyS19MQVRDSF9GTEFHICAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4MzQqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfTFRFX01SVFJfTEFUQ0gxICAgICAgICAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NDgqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfTFRFX0xPQ0FMX01SVFJfTEFUQ0gxICAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NDkqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfTFRFX01SVFJfTEFUQ0gyICAgICAgICAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NTgqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfTFRFX0xPQ0FMX01SVFJfTEFUQ0gyICAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NTkqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfV19NUlRSX0xBVENIMSAgICAgICAgICAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NDYqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfV19MT0NBTF9NUlRSX0xBVENIMSAgICAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NDcqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfV19NUlRSX0xBVENIMiAgICAgICAgICAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NTYqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfV19MT0NBTF9NUlRSX0xBVENIMiAgICAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NTcqNCk+PkNQVV9TSElGVCkpDQorDQorI2RlZmluZSBSRUdfVERfUlRTRk5fTVJUUl9MQVRDSDEgICAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NGEqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfVERfUlRDSElQX01SVFJfTEFUQ0gxICAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NGIqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfVERfTlRTRk5fTVJUUl9MQVRDSDEgICAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NGMqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfVERfTlRDSElQX01SVFJfTEFUQ0gxICAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NGQqNCk+PkNQVV9TSElGVCkpDQorDQorI2RlZmluZSBSRUdfVERfUlRTRk5fTVJUUl9MQVRDSDIgICAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NWEqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfVERfUlRDSElQX01SVFJfTEFUQ0gyICAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NWIqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfVERfTlRTRk5fTVJUUl9MQVRDSDIgICAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NWMqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfVERfTlRDSElQX01SVFJfTEFUQ0gyICAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NWQqNCk+PkNQVV9TSElGVCkpDQorDQorI2RlZmluZSBSRUdfR1NNX1JURlJBTUVfTVJUUl9MQVRDSDEgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NDQqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfR1NNX1JUVElDS19NUlRSX0xBVENIMSAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NDUqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfR1NNX1JURlJBTUVfTVJUUl9MQVRDSDIgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NTQqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfR1NNX1JUVElDS19NUlRSX0xBVENIMiAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NTUqNCk+PkNQVV9TSElGVCkpDQorDQorI2RlZmluZSBSRUdfR1NNX05URlJBTUVfTVJUUl9MQVRDSDEgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NDAqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfR1NNX05UVElDS19NUlRSX0xBVENIMSAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NDEqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfR1NNX05URlJBTUVfTVJUUl9MQVRDSDIgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NTAqNCk+PkNQVV9TSElGVCkpDQorI2RlZmluZSBSRUdfR1NNX05UVElDS19NUlRSX0xBVENIMiAgICAgICAgICAoKih2b2xhdGlsZSBVSU5UMzIqKSgoUkVHX0dTTV9MUE1fQkFTRSArIDB4NTEqNCk+PkNQVV9TSElGVCkpDQorDQorI2VuZGlmICAvKiBfWlgyOTc1MDBfTDFfQ09VTlRfTEFUQ0hfSCAqLw0KKw0KKw0KZGlmZiAtLWdpdCBhL3B1Yi9pbmNsdWRlL3BzX3BoeS9wc19lcGh5X2ludGVyZmFjZS5oIGIvcHViL2luY2x1ZGUvcHNfcGh5L3BzX2VwaHlfaW50ZXJmYWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTc0YmRmMwotLS0gL2Rldi9udWxsCisrKyBiL3B1Yi9pbmNsdWRlL3BzX3BoeS9wc19lcGh5X2ludGVyZmFjZS5oCkBAIC0wLDAgKzEsMjk1MSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICqw5rG+y/nT0CAoQykyMDA51tDQy82o0ba5ybfd09DP3rmry74NCisgKiAgxKO/6cP7ICCjulBTLVBIWb3Tv9q2qNLlDQorICogIM7EvP7D+yAgICCjunBzX2VwaHlfaW50ZXJmYWNlLmgNCisgKiAgzsS8/rHqyrajujUwMDAwMDg1OTUwNQ0KKyAqICDP4LnYzsS8/qO6TFRF0K3S6dW70+vO78DtsuPI7bz+vdO/2su1w/fK6Q0KKyAqICDKtc/WuabE3KO6TFRF0K3S6dW70+tMVEXO78DtsuPWrrzktcS907/atqjS5Q0KKyAqICDX99XfICAgICAgICCjusH11sfF9CAg0K3S6dW7sr8NCisgKiAgsOaxviAgICAgICAgo7pWMS4wDQorICogIM3qs8nI1cbao7oyMDA5LTgtMTANCisgKiAgxuTL/Mu1w/ejutDCvagNCisgKg0KKyAqICDQ3rjEvMfCvDGjui8vINDeuMTA+sq3vMfCvKOssPzAqNDeuMTI1cbaoaLQ3rjE1d+8sNDeuMTE2sjdDQorICogICAgyNUgIMbao7oyMDEwLjUuMTANCisgKiAgICDQ3rjEvMfCvLrFKLvysOaxvrrFKTogICAgDQorICogICAg0N64xMjLo7rB9dbHxfQgICAgICAgICAgICAgDQorICogICAg0N64xMTayN2jus2ssr3Nt87EvP7T69fu0MK1xL3Tv9rJ6LzGzsS1tQ0KKyAqICDQ3rjEvMfCvDKjug0KKyAqICAgIMjVICDG2qO6MjAxMS43LjI3DQorICogICAg0N64xLzHwry6xSi78rDmsb66xSk6ICAgIA0KKyAqICAgINDeuMTIy6O6wfXWx8X0ICAgICAgICAgICAgIA0KKyAqICAgINDeuMTE2sjdo7rU9rzTtuDEo73Tv9ogICAgDQorICogINDeuMS8x8K8M6O6DQorICogICAgyNUgIMbao7oyMDEyLjkuNQ0KKyAqICAgINDeuMS8x8K8usUou/Kw5rG+usUpOiAgICANCisgKiAgICDQ3rjEyMujusH11sfF9CAgICAgICAgICAgICANCisgKiAgICDQ3rjExNrI3aO61Pa800FUw/zB7sq1z9bO78DtsuOyzsr9xeTWw7XEz/vPor3Tv9ogIA0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisjaWZuZGVmICAgIF9QU19FUEhZX0lOVEVSRkFDRV9IDQorI2RlZmluZSAgICBfUFNfRVBIWV9JTlRFUkZBQ0VfSA0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgzbfOxLz+sPy6rCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisjaWZuZGVmIF9PU19XSU4NCisjaW5jbHVkZSAicmFtX2NvbmZpZy5oIg0KKyNlbmRpZg0KKyNpbmNsdWRlICJwc2wxY29tLmgiDQorDQorDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogICAgICAgICAgICAgICAgICAgICAgICAgILrqtqjS5SAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKyNpZm5kZWYgX1VTRV9MVEVBX01FUkdFX0xURS8vRExNYWNidWbTxbuvTFRFLUHU3cqxw7vT0Luut9a12Na3v9W85GJ5IHpjYw0KKyNkZWZpbmUgIFpfRVVNQUNfVUxfUERVX0JVRl9OVU0gICAgICAgMTYNCisvKrWluPa7urTmtPPQoSC1pc67IEJZVEUqLw0KKyNkZWZpbmUgIFpfRVVNQUNfRExfUERVX0JVRl9TSVpFICAgICAgMTg3MzYvLzE4NzI0DQorI2RlZmluZSAgWlBTX0xURV9QX01BWF9UQl9OVU0gICAgICAgICAgICAgICAgIDQvKk1BQ9K7tM6908rVtcTPwtDQVEK1xNfutPO49sr9Ki8NCisjZWxzZQ0KKyNkZWZpbmUgIFpfRVVNQUNfVUxfUERVX0JVRl9OVU0gICAgICAgOA0KKy8qtaW49ru6tOa089ChILWlzrsgQllURSovDQorI2RlZmluZSAgWl9FVU1BQ19ETF9QRFVfQlVGX1NJWkUgICAgICAxMzAwMCAvL8H0uPhDI73Fsb7X9rvYuemy4srU08OjrLrzxtpURES6zUMjvcWxvs3qyca687/J0tTIpbX0DQorDQorLypMYXJnZSBhbmQgc21hbGwgRGxNYWNQZHVCdWYqLw0KKyNkZWZpbmUgIFpfRVVNQUNfRExfTEFSR0VQRFVfQlVGX05VTSAgICAgICA4NiAgICAvLzIxMCAgICAvL0REUsTatObRucv1uMTOqjExMA0KKyNkZWZpbmUgWl9FVU1BQ19ETF9TTUFMTFBEVV9QUkVfTUFMTE9DX01JTiAgIDE2DQorI2RlZmluZSBaX0VVTUFDX0RMX1NNQUxMUERVX1BSRV9NQUxMT0NfTUFYICAgMzINCisNCisvKrWluPa7urTmtPPQoSC1pc67IEJZVEUqLw0KKyNkZWZpbmUgIFpfRVVNQUNfRExfTEFSR0VQRFVfQlVGX1NJWkUgICAgICA5NDcyDQorI2RlZmluZSAgWl9FVU1BQ19ETF9TTUFMTFBEVV9CVUZfU0laRSAgICAgIDQwMDAgLy8rNjS90738NDA5Ng0KKyNkZWZpbmUgIFpQU19MVEVfUF9NQVhfVEJfTlVNICAgICAgICAgICAgICAgICAyLypNQUPSu7TOvdPK1bXEz8LQ0FRCtcTX7rTzuPbK/SovDQorI2VuZGlmDQorDQorI2RlZmluZSAgWl9FTUJNU19ETF9QRFVfQlVGX05VTSAgICAgICAzMiAgLy84KjQNCisjZGVmaW5lICBaX0VNQk1TX0RMX1BEVV9CVUZfU0laRSAgICAgICA5NDQwDQorDQorLyq1pbj2u7q05rTz0KEgtaXOuyBCWVRFKi8NCisjZGVmaW5lICBaX0VVTUFDX1VMX1BEVV9CVUZfU0laRSAgICAgIDk2OTYNCisjZGVmaW5lICBaX0xURV9QX01BWF9QQ0hfQlVGX1NJWkUgICAgIDUwMA0KKyNkZWZpbmUgIFpfTFRFX1BfTUFYX1NJX0JVRl9TSVpFICAgICAgMjA0OA0KKyNkZWZpbmUgIFpfTFRFX1BfTUFYX0VUV1NfQlVGX1NJWkUgICAgMjA0OA0KKw0KKyNkZWZpbmUgIFpfTFRFX1BfSEFSUV9CVUZfU0laRSAgICAgICAgIDY0DQorDQorDQorLyogY2F0ZWdvcnkzIMqxtcRQRFXX7rTz1rUqLw0KKyNkZWZpbmUgIFpfTFRFX1BfTUFYX1VMX01BQ1BEVV9TSVpFICAgIDk0MjIgIA0KKyNkZWZpbmUgIFpfTFRFX1BfTUFYX0RMX01BQ1BEVV9TSVpFICAgIDEyNzU2DQorDQorLyogsuLBv8/gudi66iAqLw0KKyNkZWZpbmUgWlBTX0xURV9QX01BWF9SRVBPUlRfQ0VMTF9QRVJfRlJFUSAgICAzMg0KKyNkZWZpbmUgWlBTX0xURV9QX01BWF9NRUFTX0NFTExfTlVNX1BFUl9GUkVRICAzMg0KKyNkZWZpbmUgWlBTX0xURV9QX01BWF9CTEFDS19DRUxMX1BFUl9GUkVRICAgICAzMg0KKyNkZWZpbmUgWlBTX0xURV9QX01BWF9GUkVRX05VTSAgICAgICAgICAgICAgICA4DQorI2RlZmluZSBaUFNfTFRFX1BfTUFYX0lOVEVSX0ZSRVFfTlVNICAgICAgICAgIChaUFNfTFRFX1BfTUFYX0ZSRVFfTlVNIC0gMSkNCisjZGVmaW5lIFpQU19MVEVfUF9NQVhfU0NFTExfTlVNICAgICAgICAgICAgICAgNA0KKyNkZWZpbmUgWlBTX0xURV9QX01BWF9NQlNGTl9TVUJGUkFNRV9DRkdfTlVNICA4DQorI2RlZmluZSBaUFNfTFRFX1BfTUFYX1NJTlJfUkVTVUxUX05VTSAgICAgICAgIDQNCisjZGVmaW5lIFpQU19MVEVfUF9NQVhfUlNTSV9SRVNVTFRfTlVNICAgICAgICAgMg0KKyNkZWZpbmUgWlBTX0xURV9QX01BWF9OMVBVQ0NIX0FOX0NTTElTVFAxX05VTSAgICAgICAgIDQNCisNCisjZGVmaW5lIFpfTFRFX01BWF9NQlNGTl9BUkVBX05VTV9JTl9DRUxMICAgICAgOA0KKyNkZWZpbmUgWl9MVEVfUF9NQVhfU0VTU0lPTl9OVU1fSU5fUE1DSCAgICAgICAyOQ0KKyNkZWZpbmUgWl9MVEVfUF9NQVhfUE1DSF9OVU0gICAgICAgICAgICAgICAgICAxNQ0KKw0KKy8qWkVQQ0e907/auuoqLw0KKyNkZWZpbmUgWl9aRVBDR19QQVJBTV9OVU0gICAgICAgICAgICAgICAgICAgIDI1DQorDQorLyq6y7zkzayyvSCx6ta+19a3+yovDQorI2RlZmluZSBJTlRFUl9DT1JFX1NZTkMgIDB4NTU1NUFBQUENCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiAgICAgICAgICAgICAgICAgICAgICAgICDIq77Wyv2+3b3hubnJ+cP3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKw0KKy8qDQorway908ysz8K1xM7ez9/BtMK3vOC/2LLOyv0gIFI5DQorKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCAgICB3Q3RybEZsZzsgLyoxOsb008OxvklFxNrQr7T4tcTO3s/fwbTCt7zgv9iyzsr9IDA6yrnTw0NvbW1Db25maWfW0M7ez9/BtMK3vOC/2LLOyv0qLw0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejujEsIDIsIDMsIDQsIDYsIDgsIDEwLCAyMA0KKyAgICAgtcjNrNCt0umyzsr9o7rO3g0KKyAgICAgss7K/dPDzb6jukVQSFm87LLitb1OMzEwtM7Kp7K9uvOjrMnPsahaUFNfTFRFX1BfT1VUX09GX1NZTkNfSU5EX0V2z/vPorj4RVVSUkMgICAgDQorICAgICovDQorICAgIFdPUkQgICAgd04zMTA7ICAgIC8qYkN0cmxGbGc9Mcqx09DQpyovDQorICAgIC8qDQorICAgICDIoda1t7bOp6O6MSwgMiwgMywgNCwgNSwgNiwgOCwgMTANCisgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgILLOyv3Tw82+o7pFUEhZvOyy4rW9TjMxMbTOzayyvbrzo6zJz7GoWlBTX0xURV9QX1JFQ09WRVJZX1NZTkNfSU5EX0V2z/vPorj4RVVSUkMgICAgDQorICAgICovDQorICAgIFdPUkQgICAgd04zMTE7ICAgIC8qYkN0cmxGbGc9Mcqx09DQpyovDQorICAgIFdPUkQgICAgd1BhZGRpbmc7DQorfVRfelBTX0xURV9QX1RpbWVyQ29uZmlnOw0KKw0KKy8qDQorRVBIWdK7uPbQocf4tcSy4sG/veG5+9DFz6INCisqLw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgICBXT1JEICAgICAgICAgICAgICAgIHdQaHlDZWxsSWQ7ICAgLy/Ioda1t7bOp6O6IDB+NTAzDQorICAgICBXT1JEICAgICAgICAgICAgICAgIHdSc3JwOyAgICAgICAvL8ih1rW3ts6no7ogMH45Nw0KKyAgICAgV09SRCAgICAgICAgICAgICAgICB3UnNycTsgICAgICAgLy/Ioda1t7bOp6O6IDB+MzQNCisgICAgIFdPUkQgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfSBUX3pQU19MVEVfUF9NZWFzUmVzdWx0Ow0KKw0KKy8qDQor0ru49sa1teO1xLLiwb+94bn7LNPD09rS7Ma1suLBv73hufu1xMnPsagNCisqLw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgIGR3UmVwb3J0RWFyZmNuOyAgICAgICAgLy/Ioda1t7bOp6O6IDB+NjU1MzUNCisgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3Q2VsbE51bTsgICAgICAgICAvL8ih1rW3ts6no7ogMH4zMg0KKyAgIFdPUkQgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgVF96UFNfTFRFX1BfTWVhc1Jlc3VsdCAgICAgYXRSZXN1bHRMaXN0W1pQU19MVEVfUF9NQVhfUkVQT1JUX0NFTExfUEVSX0ZSRVFdOw0KK30gVF96UFNfTFRFX1BfRnJlcU1lYXNSZXN1bHQ7IA0KKw0KKy8qDQortqjS5bXEutrD+7Wl1tDO78Dt0KHH+ElEILXEt7bOpw0KKyovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgIFdPUkQgICAgICAgICAgICB3U3RhcnRQaHlDZWxsSWQ7DQorICAgICAvKg0KKyAgICAgtNN3U3RhcnRQaHlDZWxsSWS/qsq8tcTO78Dt0KHH+ElEtcS49sr9LA0KKyAgICAgyKHWtbe2zqejuiAxLCA0LCA4LCAxMiwgMTYsIDI0LCAzMiwgNDgsIDY0LCA4NCwgOTYsIDEyOCwgMTY4LCAyNTIsIDUwNA0KKyAgICAgKi8NCisgICAgIFdPUkQgICAgICAgICAgICB3UGh5Q2VsbElkTnVtOw0KK30gVF96UFNfTFRFX1BfUGh5Q2VsbElkUmFuZ2U7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdNZWFzU3ViZnJhbWVQYXR0ZXJuOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgYXdTdWJmcmFtZUNvbmZpZ0JpdFs1XTsNCit9IFRfelBTX0xURV9QX01lYXNTdWJmcmFtZVBhdHRlcm47IA0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZXR1cEZsZzsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxSYW5nZU51bTsNCisgICAgVF96UFNfTFRFX1BfTWVhc1N1YmZyYW1lUGF0dGVybiAgICAgdE1lYXNTdWJmcmFtZVBhdHRlcm47DQorICAgIFRfelBTX0xURV9QX1BoeUNlbGxJZFJhbmdlICAgICAgICAgIGF0UGh5Q2VsbElkUmFuZ2VMaXN0W1pQU19MVEVfUF9NQVhfTUVBU19DRUxMX05VTV9QRVJfRlJFUV07DQorfSBUX3pQU19MVEVfUF9NZWFzU3ViZnJhbWVDb25maWdOZWlnaDsNCisNCisvKg0KK7Liwb+21M/ztcTQxc+iDQorKi8NCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBEV09SRCAgICAgICAgICBkd0VhcmZjbjsJDQorICAgIC8qDQorICAgIHdNZWFzQmFuZFdpZHRoIMih1rW3ts6no7ogNqOsMTWjrDI1o6w1MKOsNzWjrDEwMKOsMjU1DQorICAgIDI1NbHtyr7N+MLnsuDDu9PQxeTWw7Liwb+0+L/to6yyydPDus23/s7x0KHH+M/gzay1xM/C0NC0+L/tvfjQ0LLiwb8NCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICB3TWVhc0JhbmRXaWR0aDsgIA0KKyAgICBXT1JEICAgICAgICAgIHdDZWxsTnVtOw0KKyAgICAvKg0KKyAgICAxOrjDxrW148/gttTT2rf+zvHGtbXjyse439PFz8i8tsa1teMNCisgICAgMDq4w8a1tePP4LbU09q3/s7xxrW147K7yse439PFz8i8tsa1teMNCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICB3SGlnaFByaW9GbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgIHdQYWRkaW5nMDsJCQ0KKyAgICBXT1JEICAgICAgICAgIGF3UGh5Q2VsbElkTGlzdFtaUFNfTFRFX1BfTUFYX01FQVNfQ0VMTF9OVU1fUEVSX0ZSRVFdOw0KKyAgICAvKg0KKyAgICDS7Ma1tcTWxsq9LMih1rW3ts6no7ogMKOsMQ0KKyAgICAwOkZERNLsxrWjuw0KKyAgICAxOlRERNLsxrUNCisgICAgKi8gDQorICAgIFdPUkQgICAgICAgICAgd0FkZGl0aW9uYWxFYXJmY25JbmQ7DQorICAgIC8qDQorICAgIHdQcmVzZW5jZUFudGVubmFQb3J0MSA6IMrHt/HKudPDzOzP37bLv9oxDQorICAgIFRSVUWjusq508PM7M/ftsu/2jEu0rK+zcrHy/nT0MHa0KHH+NbBydnKudPDwb249szYtqi1xMzsz9+2y7/aDQorICAgIEZBTFNFo7qyu8rK08PM7M/ftsu/2jEuDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgd1ByZXNlbmNlQW50ZW5uYVBvcnQxOw0KKyAgICAvKtPD09pDT05ORUNURUTMrKOszOG5qWludHJhwdrH+LXETUJTRk66zVRERCBVTC9ETNDFz6IqLw0KKyAgICBXT1JEICAgICAgICAgIHdOQ2VsbENvbmZpZzsNCisgICAgLyrWuLaotcS62sP7taXO78Dt0KHH+ElEt7bOp7XEyv3EvywgyKHWtbe2zqejuiAwfjMyKi8NCisgICAgV09SRCAgICAgICAgICB3QmxhY2tDZWxsTnVtOw0KKyAgICAvKta4tqi1xLraw/u1pc7vwO3Qocf4SUS3ts6ntcTB0LHtKi8gDQorICAgIFRfelBTX0xURV9QX1BoeUNlbGxJZFJhbmdlICBhdFBoeUNlbGxJZFJhbmdlTGlzdFtaUFNfTFRFX1BfTUFYX0JMQUNLX0NFTExfUEVSX0ZSRVFdOw0KKyAgICAvKk5vIERSWCB1c2Vk17TMrM/CtcSxqLjm1tzG2qOstaXOu21zKi8NCisgICAgRFdPUkQgICAgICAgICAgZHdOb0RyeFJlcG9ydFBlcmlvZDsNCisgICAgLypEUlggdXNlZNe0zKzPwrXEsai45tbcxtqjrLWlzrttcyovDQorICAgIERXT1JEICAgICAgICAgIGR3RHJ4UmVwb3J0UGVyaW9kOw0KKyAgICAvKtS8yvjF5NbDserWvs67o6zWuMq+YXROZWlnaE1lYXNTdWJmcmFtZUNvbmZpZ8rHt/G05tTao6wwLbK7tObU2qOsMS205tTaKi8NCisgICAgV09SRCAgICAgICAgICAgd01lYXNTdWJGcmFtZUNvbmZpZ0ZsZzsNCisgICAgLypTY2VsbLLiwb/W3Mbao6zS1NfT1qHK/c6qtaXOu7Htyr4qLw0KKyAgICBXT1JEICAgICAgICAgICB3TWVhc0N5Y2xlU2NlbGw7DQorICAgIC8qwdrH+LLiwb/UvMr4xeTWwyovDQorICAgIFRfelBTX0xURV9QX01lYXNTdWJmcmFtZUNvbmZpZ05laWdoICAgICAgIGF0TmVpZ2hNZWFzU3ViZnJhbWVDb25maWc7DQorDQorfSBUX3pQU19MVEVfUF9NZWFzRnJlcUluZm87ICANCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIC8qDQorICAgIHdSZXBvcnRRdWFudGl0eTogICAgyKHWtbe2zqejujCjrDGjrDINCisgICAgMDog1ruy4lJTUlANCisgICAgMTog1ruy4lJTUlEsDQorICAgIDI6IFJTUlC6zVJTUlHBvbj2tryy4g0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmVwb3J0UXVhbnRpdHk7DQorICAgIC8qDQorICAgIHdNYXhDZWxsUmVwb3J0UGVyRnJlcSDF5NbDw7+49sa1tePJz0VQSFnJz7Go0KHH+LXE1+6087j2yv2how0KKyAgICDS8s6qs/3By8Xk1sO1xENlbGxJbmZvTGlzdM3io6zO78DtsuO7ucTcvfjQ0Mbky/u3x2JsYWNrbGlzdMTatcTQocf4tcS87LLius2y4sG/yc+xqKGjDQorICAgINLytMu/ydLUwPvTw7TLvdO/2rbUzu/A7bLjyc+xqLXE1+6087j2yv29+NDQwem77sXk1sOho8S/x7DNs9K7yejWw86qMzKhow0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWF4Q2VsbFJlcG9ydFBlckZyZXE7DQorICAgIC8qDQorICAgILG7suK1xMa1teO49sr9oaO4+b7dxL/HsExURc7vwO2y47XEsuLBv8TcwabX7rbg1qez1jO49tLsxrXGtbXjo6y808nPzazGtbXExrW146Os1+6089a1zqo0oaMNCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXFOdW07DQorCS8qDQorICAgIFJ4LVR4suLBv9a4yr4NCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1J4VHhNZWFzOyAgICAgLyogMbHtyr6/qsb0UngtVHiy4sG/yc+xqKOsMLHtyr7No9a5ICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSc3JwRmlsdGVyRmFjdG9yOyAgICAgIC8qIFJTUlC1xEwzuf3Cy8+1yv2jrMixyqHWtc6qNCAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UnNycUZpbHRlckZhY3RvcjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIC8qDQorICAgILLiwb+21M/ztcTQxc+iwdCx7aOouqzNrMa1us3S7Ma1o6ksINSqy9gwucy2qM6qaW50cmHGtbXjtcSyzsr9oaMxfjPOqmludGVyxrW147LOyv0NCisgICAgKi8NCisgICAgVF96UFNfTFRFX1BfTWVhc0ZyZXFJbmZvICAgICAgICAgYXRNZWFzRnJlcUluZm9MaXN0W1pQU19MVEVfUF9NQVhfRlJFUV9OVU1dOw0KK30gVF96UFNfTFRFX1BfTWVhc0NvbmZpZ19SZXE7IA0KKw0KKy8qDQor0K3S6dW7uPjO78DtsuPF5NbDsuLBv0dBULXEz/vPoqGjyOe5+8Xk1sPBy9DCtcRHQVAgUEFUVEVOo6zO78DtsuPQ6NKqzaPWub7JtcRHQVANCisqLw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgICBXT1JEICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgIC8qDQorICAgICB3QWN0aXZhdGVkOiDIoda1t7bOpyAxo6wwDQorICAgICAxo7q8pLvuz8LD5sXk1sO1xG1lYXNfZ2FwLM2j1rnWrsewtcRHQVANCisgICAgIDCjusilu+61scew1f3U2sq508O1xG1lYXNfZ2Fwo6zPwsPmtcSyzsr9zt7Qpw0KKyAgICAgKi8NCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgd0FjdGl2YXRlZDsNCisgICAgIC8qDQorICAgICB3R2FwUGF0dGVybklkIMih1rW3ts6no7owo6wxDQorICAgICAwzqpwYXR0ZXJuMCwNCisgICAgIDHOqnBhdHRlcm4xDQorICAgICAqLw0KKyAgICAgV09SRCAgICAgICAgICAgICAgICAgICB3R2FwUGF0dGVybklkOw0KKyAgICAgLyoNCisgICAgIFBBVFRFTl8wtcS3ts6no6gwfjM5o6kNCisgICAgIFBBVFRFTl8xtcS3ts6no6gwfjc5o6kNCisgICAgICovDQorICAgICBXT1JEICAgICAgICAgICAgICAgICAgIHdHYXBPZmZzZXQ7DQorfSBUX3pQU19MVEVfUF9NZWFzR2FwQ29uZmlnX1JlcTsNCisNCisvKg0KK9Ct0unVu7j4zu/A7bLjxeTWw7Liwb+21M/ztcTR2sLr0MXPoijG9LavL82j1rnEs9CpxrW147XEwdrH+LLiwb8pDQorKi8NCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICAgV09SRCAgICAgICAgICAgd01zZ0lkOw0KKyAgICAgLyoNCisgICAgIMO/uPZiaXS21NOmbWVhc19mcmVxX2luZm/W0LXE0ru49sa1teOjrM7vwO2y49a7xvS2r7bU06a1xGJpdM67zqoxtcTGtbXjtcSy4sG/oaMNCisgICAgIEJpdG621NOmWlBTX0xURV9QX01FQVNfQ09ORklHX1JFUV9FdtbQtcRhdE1lYXNGcmVxSW5mb0xpc3Rbbl2jrG6jujB+Mw0KKyAgICAgKi8NCisgICAgIFdPUkQgICAgICAgICAgIHdNZWFzQml0TWFzazsNCisgICAgIC8qIA0KKyAgICAgILWxt/7O8dChx/hTcj5Tbm9uaW50cmFQx9JTcT5Tbm9uaW50cmFRyrGjrLjD1rWxu9bDzqoxo6y38dTy1sMwDQorICAgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgd0VuYWJsZUhpZ2hTZWFyY2g7DQorICAgIC8qIA0KKyAgICDS7NbGyr249sr9o6zTw8C0vMbL47jf08XPyLy2y9HL99bcxtqjrLWxd0VuYWJsZUhpZ2hTZWFyY2jOqjHKsdPQ0KejrM6qMLr2wtS4w9a1DQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgIHdJcmF0TnVtOw0KKyAgICANCisgICAgV09SRCAgICAgICAgICAgd01lYXNUeXBlQml0TWFzazsvKsO/uPbGtbXjsuLBv8b0tq+1xLOhvrDOu828o6zIoda1MLHtyr6wtNCt0unDxc/exvS2r6OsyKHWtTGx7cq+sLRSU1JRPD1USDEoLTEyLjVkQinG9LavICovDQorICAgIFdPUkQgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICANCit9IFRfelBTX0xURV9QX01lYXNNYXNrU2V0X1JlcTsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICB3TWVhc1BlcmlvZENoZ01hc2s7DQorfSBUX3pQU19MVEVfUF9NZWFzUGVyaW9kQ2hnX1JlcTsNCisNCisvKg0KK8/y0K3S6dW7yc+xqM2sxrXQocf4us23/s7x0KHH+LXEsuLBv73hufsNCisqLw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIFdPUkQgICAgICB3UnhUeFRpbWVEaWZmOw0KKyAgICBXT1JEICAgICAgd0N1clNGTjsNCit9IFRfelBTX0xURV9QX1J4VHhSZXN1bHQ7IA0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgZHdFYXJmY247DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdQY2k7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdSc3JwOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3UnNycTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd05laWdoQ2VsbE51bTsNCisgICAgVF96UFNfTFRFX1BfTWVhc1Jlc3VsdCAgICAgdFNjY05laUNlbGxSbHN0TGlzdFtaUFNfTFRFX1BfTUFYX1JFUE9SVF9DRUxMX1BFUl9GUkVRXTsNCit9IFRfelBTX0xURV9QX1NjZWxsTWVhc1Jlc3VsdDsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBTSE9SVCAgICAgICBzU2luckludDsgICAgICAgICAgIC8vyKHWtbe2zqcgLTIwfjQwDQorICAgIFdPUkQgICAgICAgIHdTaW5yRGVjOyAgICAgICAgICAgLy/Ioda1t7bOpyAwfjkgICAgIA0KK30gVF96UFNfTFRFX1BfU2luclJlc3VsdDsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBTSE9SVCAgICAgICBzUnNzaUludDsgICAgICAgICAgICAgLy/Ioda1t7bOpyAtMTI4fi00o6zV+8r9sr+31g0KKyAgICBXT1JEICAgICAgICB3UnNzaURlYzsgICAgICAgICAgICAgLy/Ioda1t7bOpyAwfjmjrNChyv2yv7fWDQorfSBUX3pQU19MVEVfUF9Sc3NpUmVzdWx0Ow0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdOZWliRXhpc3RGbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdDZWxsTnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3UnhUeFJzbHRGbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdTY2NSc2x0RmxnOw0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICBkd1NlcnZFYXJmY247Ly+3/s7x0KHH+Ma1teO6xaOst8DWuVBT1tjRobPJuaa6887zyrnTw9aux7DQocf4suLBv73hufvX9sbAucANCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdSYW5rSW5kOyAvL7Wly6vB99a4yr6jrMih1rUxse3KvrWlwfejrDKx7cq+y6vB96OsMLHtyr7O3tCno6wNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIA0KKyAgICBUX3pQU19MVEVfUF9SeFR4UmVzdWx0ICAgICB0UnhUeFJzbHQ7DQorICAgIFRfelBTX0xURV9QX1NpbnJSZXN1bHQgICAgIHRTaW5yUnNsdFtaUFNfTFRFX1BfTUFYX1NJTlJfUkVTVUxUX05VTV07DQorICAgIFRfelBTX0xURV9QX1Jzc2lSZXN1bHQgICAgIHRSc3NpUnNsdFtaUFNfTFRFX1BfTUFYX1JTU0lfUkVTVUxUX05VTV07DQorICAgIFRfelBTX0xURV9QX01lYXNSZXN1bHQgICAgIGF0UmVzdWx0TGlzdFtaUFNfTFRFX1BfTUFYX1JFUE9SVF9DRUxMX1BFUl9GUkVRXTsNCisgICAgVF96UFNfTFRFX1BfU2NlbGxNZWFzUmVzdWx0ICAgIGF0U2NlbGxSZXN1bHRbWlBTX0xURV9QX01BWF9TQ0VMTF9OVU1dOw0KK30gVF96UFNfTFRFX1BfSW50cmFNZWFzX0luZDsNCisNCisvKg0KK8/y0K3S6dW7yc+xqNLsxrXQocf4tcSy4sG/veG5+w0KKyovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICB3RnJlcU51bTsNCisgICAgV09SRCAgICB3U3BlY0ZyZXFSbHRGZzsgLy/Ioda1zqoxyrGx7cq+sPy6rMHL1ri2qNLsxrXGtbXjtcSy4sG/veG5+w0KKyAgICBUX3pQU19MVEVfUF9GcmVxTWVhc1Jlc3VsdCAgYXRGcmVxUmVzdWx0TGlzdFtaUFNfTFRFX1BfTUFYX0lOVEVSX0ZSRVFfTlVNXTsNCit9IFRfelBTX0xURV9QX0ludGVyTWVhc19JbmQ7DQorDQorLyoNCivNo9a5RVBIWbXETkNFTEyy4sG/yc+xqKOsU0NFTEy1xLLiwb/I1Mi7vMzQ+MnPsaihow0KKyovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgIFdPUkQgICAgICAgICAgIHdNc2dJZDsNCisgICAgIFdPUkQgICAgICAgICAgIHdQYWRkaW5nMDsNCit9IFRfelBTX0xURV9QX0Fib3J0TWVhc19SZXE7DQorDQorDQorLyoNCitFUEhZyc+xqLXERFJY17TMrA0KKyovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgLyoNCisgICAgMTpkcnggaXMgdXNlZKOsMDogbm8gZHJ4IGlzIHVzZWQNCisgICAgKi8NCisgICAgIFdPUkQgICAgICAgICAgIHdEcnhTdGF0ZSA7DQorICAgICBXT1JEICAgICAgICAgICB3UGFkZGluZzA7DQorfSBUX3pQU19MVEVfUF9EcnhTdGF0ZUluZDsNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgINChx/jRodTxoaLRsLr0z+C52L3Tv9ogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKyNkZWZpbmUgIFpQU19MVEVfUF9NQVhfTlVNX09GX0JBTkQgICAgICAgICAgIDMyDQorI2RlZmluZSAgWlBTX0xURV9QX01BWF9OVU1fT0ZfRUFSRkNOX1NDQU4gICAgNjQNCisjZGVmaW5lICBaUFNfTFRFX1BfTUFYX05VTV9PRl9TVE9SRURfQ0VMTCAgICAgOA0KKyNkZWZpbmUgIFpQU19MVEVfUF9NQVhfTlVNX09GX0NFTExfU0VBUkNIICAgICA4DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgICAgICAgICAgICB3UGh5Q2VsbElkOw0KKyAgICAvKg0KKyAgICC21NOm0KHH+LXEUlO908rcuabCyrXE1rUsIDChqzk3DQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgd1JzcnA7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgd1JzcnE7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfSBUX3pQU19MVEVfUF9DZWxsU2VhcmNoUmVzdWx0Ow0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIERXT1JEICAgICAgICAgIGR3RWFyZmNuOw0KKyAgICBXT1JEICAgICAgICAgICB3UnNzaTsNCisgICAgV09SRCAgICAgICAgICAgd1BhZGRpbmc7DQorfSBUX3pQU19MVEVfUF9GcmVxU2NhblJlc3VsdDsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICAvKg0KKyAgICDEs7j2xrW2zrXExvDKvMa1teMsIA0KKyAgICDIoda1t7bOp6O6MTgzMH4yNjE5obK21NOm09pURETEo8q9o6yyzrz70K3S6TM2LjEwMS0gVGFibGUgNS43LjMtMaGzDQorICAgICovDQorICAgIERXT1JEICAgICAgICAgIGR3U3RhcnRFYXJmY247DQorICAgIERXT1JEICAgICAgICAgIGR3RW5kRWFyZmNuOw0KK30gVF96UFNfTFRFX1BfRnJlcUJhbmQ7DQorDQorIHR5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3QmFuZE51bTsNCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdQcm9jSWQ7IC8qINT2vNMgKi8NCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxU2NhblR5cGU7DQorICAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxU2NhbkFjdDsgLyq1scewyajGtdbGyr2jrMih1rUgMDpURERPbmx5LCAxOkZkZE9ubHksIDI6VGRkUHJlZiwgMzpGZGRQcmVmKi8NCisgICAgIFRfelBTX0xURV9QX0ZyZXFCYW5kICAgYXRGcmVxQmFuZExpc3RbWlBTX0xURV9QX01BWF9OVU1fT0ZfQkFORF07DQorfSBUX3pQU19MVEVfUF9GcmVxU2Nhbl9SZXE7IA0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3UmVwb3J0RWFyZmNuTnVtOyAgDQorICAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3UHJvY0lkOyAvKiDU9rzTICovDQorICAgICAvKg0KKyAgICAgyKHWtbe2zqejujE4MzB+MjYxOaGyttTTptPaVERExKPKvaOsss68+9Ct0ukzNi4xMDEtIFRhYmxlIDUuNy4zLTGhsw0KKyAgICAgtcjNrNCt0umyzsr9o7pGREwgPSBGRExfbG93ICsgMC4xKE5ETCAtIE5PZmZzLURMKSAgss68+9Ct0ukzNi4xMDEtNS43LjMNCisgICAgILLOyv3Tw82+o7q9q7G+tM7GtbXjyajD6LOsuf3Dxc/etcS498a1teOjrLC01dVSU1NJxNzBv7TTtPO1vdChy7PQ8sXFwdCjrA0KKyAgICAgsqLXqruvzqrQrdLpserXvLXERkRMxrW147rFyc+xqNCt0unVu6GjDQorICAgICAqLw0KKyAgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgIGFkd0VhcmZjbltaUFNfTFRFX1BfTUFYX05VTV9PRl9FQVJGQ05fU0NBTl07DQorfSBUX3pQU19MVEVfUF9GcmVxU2Nhbl9DbmY7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICAgLyoNCisgICAgILHqyrbQocf4y9HL97XE0M7KvbrNy9HL973hufvJz7GotcTQzsq9DQorICAgICAxOsnPsajX7se/0KHH+KO7MjrJz7Go0ru49tChx/jB0LHto7szOrTmtKLQocf4tcTL0cv3o6yyydPDd1BoeUNlbGxJZExpc3TW0Na4tqi1xNChx/gNCisgICAgICovDQorICAgICBXT1JEICAgICAgICAgICAgICAgICAgIHdTZWFyY2hUeXBlOw0KKyAgICAgV09SRCAgICAgICAgICAgICAgICAgICB3UHJvY0lkOw0KKyAgICAgV09SRCAgICAgICAgICAgICAgICAgICB3SXJhdEZnOyAvLzE6LS0+Mi8zR7W9NEe1xNbY0aGhotbYtqjP8rOhvrDWuMq+DQorICAgICBEV09SRCAgICAgICAgICAgICAgICAgIGR3RWFyZmNuOw0KKyAgICAgLyoNCisgICAgILTmtKLQocf4y9HL98qxLNa4tqi1xNChx/jB0LHtLr32tOa0otChx/jL0cv3yrHT0NCnDQorICAgICAqLw0KKyAgICAgV09SRCAgICAgICAgICAgICAgICAgICB3Q2VsbE51bTsNCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgd0JsYWNrQ2VsbExpc3ROdW07DQorICAgICBXT1JEICAgICAgICAgICAgICAgICAgIGF3UGh5Q2VsbElkTGlzdFtaUFNfTFRFX1BfTUFYX05VTV9PRl9TVE9SRURfQ0VMTF07DQorICAgICBUX3pQU19MVEVfUF9QaHlDZWxsSWRSYW5nZSAgYXRCbGFja0NlbGxMaXN0W1pQU19MVEVfUF9NQVhfQkxBQ0tfQ0VMTF9QRVJfRlJFUV07DQorfSBUX3pQU19MVEVfUF9DZWxsU2VhcmNoX1JlcTsgIA0KKw0KKy8qDQorRVBIWdChx/jL0cv3veG5+8nPsagNCisqLw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgIHdQcm9jSWQ7ICAgICANCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxOdW07DQorICAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgIGR3RWFyZmNuOw0KKyAgICAgVF96UFNfTFRFX1BfUnNzaVJlc3VsdCAgdFJzc2lSc2x0OyAgLyq4w8a1teO1xFJTU0mjrLmks8zEo8q9yajGtcnPsajQ6Mfz0MLU9iovDQorICAgICBUX3pQU19MVEVfUF9DZWxsU2VhcmNoUmVzdWx0ICAgICAgYXRDZWxsU2VhcmNoUmVzdWx0TGlzdFtaUFNfTFRFX1BfTUFYX05VTV9PRl9DRUxMX1NFQVJDSF07DQorfSBUX3pQU19MVEVfUF9DZWxsU2VhcmNoX0NuZjsgDQorDQorLyoNCivW1da5RVBIWdX91Nq9+NDQtcTQocf4y9HL99LUvLDGtbXjyajD6A0KKyovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzA7DQorfSBUX3pQU19MVEVfUF9BYm9ydENlbGxTZWFyY2hfUmVxOw0KKw0KKw0KKw0KKy8qDQorUFPE2rK/tcTP+8+io6zTyVBIWbXEstnX98C0tKW3og0KK8/7z6K3vc/yo7pISVNSLT5FU0lSIA0KKyovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgd0RhdGFMZW47DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgUEJZVEUgICAgICAgICAgICAgICAgICBwYlBjaERhdGE7DQorfSBUX3pQU19MVEVfUF9QY2hEYXRhX0luZDsNCisNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgz7XNs8/7z6K2wcihz+C52L3Tv9ogICAgICAgICAgICAgICAgICAgICAgICoNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorI2RlZmluZSAgICBaUFNfTFRFX1BfTUFYX05VTV9PRl9TSSAgICAgICAgMTANCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICAvKg0KKyAgICB3U2lQZXJpb2RpY2l0eTogyKHWtbe2zqc6DQorICAgIMih1rW3ts6no7ogcmY4LCByZjE2LCByZjMyLCByZjY0LCByZjEyOCwgcmYyNTYsIHJmNTEyICAgKM7ez9/WobWlzrspDQorICAgILXIzazQrdLpss7K/aO6c2ktUGVyaW9kaWNpdHmjrLLOvPuyzrz7VFMzNi4zMzEtNS4yLjMNCisgICAgss7K/dPDzb6jurHqyr7P4NOmU0lCtcS908rVtLC/2rP2z9a1xNbYuLTW3MbaDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgd1NpUGVyaW9kaWNpdHk7DQorICAgIC8qDQorICAgIHdTaUluZGV4IMih1rW3ts6no7ogMaGrMzINCisgICAgtcjNrNCt0umyzsr9o7ogbqOsss68+7LOvPtUUzM2LjMzMaOtNS4yLjOjrCA2LjIuMg0KKyAgICCyzsr908PNvqO6zqpTSc/7z6K21NOmtcRu1rWjrNPD09q8xsvjw7+49lNJQrXEtLC/2sbwyrzKsbzkteOjqLLOvPszNjMzMS01LjIuM9Ct0unD6Mr2o6mjrA0KKyAgICC008/7z6K94bm5yc+/tKOsw7+49lNJQrXEtLC/2rOktsjKx8/gzay1xKOs1rvQ6NKquPm+3VNJQrXEz8Kx6r7Nv8nS1M3Gy+Oz9sO/uPa0sL/atcTG8Mq8zrvWw6GjDQorICAgIGZvciB0aGUgY29uY2VybmVkIFNJIG1lc3NhZ2UsIGRldGVybWluZSB0aGUgbnVtYmVyIG4gd2hpY2ggY29ycmVzcG9uZHMgdG8gdGhlIG9yZGVyIG9mIGVudHJ5IA0KKyAgICBpbiB0aGUgbGlzdCBvZiBTSSBtZXNzYWdlcyBjb25maWd1cmVkIGJ5IHNjaGVkdWxpbmdJbmZvTGlzdCBpbiBTeXN0ZW1JbmZvcm1hdGlvbkJsb2NrVHlwZTE7DQorICAgIDI+IGRldGVybWluZSB0aGUgaW50ZWdlciB2YWx1ZSB4ID0gKG4gLSAxKSp3LCB3aGVyZSB3IGlzIHRoZSBzaS1XaW5kb3dMZW5ndGg7DQorICAgIDI+IHRoZSBTSS13aW5kb3cgc3RhcnRzIGF0IHRoZSBzdWJmcmFtZSAjYSwgd2hlcmUgYSA9IHggbW9kIDEwLCBpbiB0aGUgcmFkaW8gZnJhbWUgZm9yIHdoaWNoIA0KKyAgICBTRk4gbW9kIFQgPSBGTE9PUih4LzEwKSwgd2hlcmUgVCBpcyB0aGUgc2ktUGVyaW9kaWNpdHkgb2YgdGhlIGNvbmNlcm5lZCBTSSBtZXNzYWdlOyANCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICB3U2lJbmRleDsNCit9IFRfelBTX0xURV9QX1NpU2NoZWRJbmZvOw0KKw0KKy8qDQorUlJDx+vH80VQSFm2wcihU0lCMShQSFm4+b7d0OjSqrbByKFNSUIpo6wNCivXoqO6ytW1vbTLx+vH87rzo6xFUEhZwaK8tM2j1rnWrsewtcTPtc2zz/vPorX3tsijrLKiv6rKvLbByKFTSUIxoaNNSUK1xLbByKHTyc7vwO2y49fUvLrIt7aooaMNCisqLw0KKyB0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgIHdNc2dJZDsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgd1NpUmVxdWVzdEZvckhPOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgIHdQcm9jSWQ7ICAgIA0KKyAgICAvKg0KKyAgICDQ6NKqtsHIoVNJtcTO78Dt0KHH+ElEDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgd1BoeUNlbGxJZDsNCisgICAgRFdPUkQgICAgICAgICAgICAgICBkd0VhcmZjbjsNCisgICAgLy9XT1JEICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK30gVF96UFNfTFRFX1BfUmVhZFNpYjFfUmVxOw0KKw0KKy8qDQorUlJDx+vH80VQSFnNo9a5y/nT0M+1zbPQxc+itcS2wcihDQorKi8NCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmcxOw0KK30gVF96UFNfTFRFX1BfQWJvcnRTaVJlYWRfUmVxOw0KKw0KKy8qDQorx+vH80VQSFm4+b7dz8K3orXEtfe2yNDFz6K2wcihz+DTprXEU0kNCisqLw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgIGR3RWFyZmNuOw0KKw0KKyAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgd1N1YkZyYW1lQXNzaWduOyAgDQorICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3U3BlY2lhbFN1YkZyYW1lUGF0dGVybnM7DQorICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3UmVhZE1vZGU7DQorICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3UGh5Q2VsbElkOw0KKyAgIC8qDQorICAgd1NpV2luZG93TGVuo7rIoda1t7bOp6O6bXMxLCBtczIsIG1zNSwgbXMxMCwgbXMxNSwgbXMyMCwgbXM0MCAousHD67WlzrspLCANCisgICCx7dX3xLO49lNJv8nE3LTm1Nq1xMqxvOS0sLXEs6S2yKOs1eK49tXiuPbKsbzktLDE2rXE19PWodPQv8nE3LPQ1NhTSdKyv8nE3LK7s9DU2FNJo6wNCisgICBVRdDo0qrU2rSwxNqz1tD4vOyy4taxtb294rP21f3It7XEU0nOqta5o6y0sMTatcSz0NTYU0m1xFBEU0NI0OjSqrLJ08NIQVJRuf2zzKOsDQorICAgtavO3tDoz/LN+MLnsuC3tMChQUNLL05BQ0uho9K7uPa0sL/axNq99r32u+Gz0NTYMbj2U0m1xNDFz6Khow0KKyAgICovDQorICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3U2lXaW5kb3dMZW47DQorICAgLyoNCisgICDWuMq+sb60zlNJtfe2yNDo0qq2wcihtcRTSbj2yv0NCisgICAqLw0KKyAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgd1NpU2NoZWROdW07DQorICAgLyoNCisgICDDv7j2xL+x6lNJtcTKsbzkt9ayvNDFz6KjrNPD09q8xsvjU0m1xL3TytXKsbzktLANCisgICAqLw0KKyAgVF96UFNfTFRFX1BfU2lTY2hlZEluZm8gICAgICAgYXRTaVNjaGVkSW5mb0xpc3RbWlBTX0xURV9QX01BWF9OVU1fT0ZfU0ldOw0KK30gVF96UFNfTFRFX1BfU2NoZWRTaV9SZXE7ICANCisNCisvKg0KK0VQSFm3tMChuPjQrdLp1bu1xFNJQtDFz6LK/b7duPHKvQ0KKyovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgICAgLyoNCisgICAgICAgd1JlYWRSZXN1bHTIoda1t7bOp6O6MKO609DQp8+1zbPP+8+io6wgMaO61KTB9A0KKyAgICAgICCx6sq+tbHHsGJ1ZmZlctbQtcTK/b7dyse38c6qU0lCyv2+3aGjuMOyzsr909C/ycTcwKnVuc6qQ1JD0MXPoqO7ICANCisgICAgICAgxL/HsNCt0unVu9SkxtpQSFnJz7GotcTK/b7d19zKx0NSQyBva7XEo7vI57n7Q1JDIGZhaWwg1PKyu9Kqyc+xqKGjDQorICAgICAgICovDQorICAgICAgIFdPUkQgICAgICAgICAgICAgICAgICB3UmVhZFJlc3VsdDsNCisgICAgICAgV09SRCAgICAgICAgICAgICAgICAgIHdEbEJhbmRXaWR0aDsNCisgICAgICAgV09SRCAgICAgICAgICAgICAgICAgIHdQcm9jSWQ7IC8qINT2vNMgKi8NCisgICAgICAgLyoNCisgICAgICAgserKvrWxx7BidWZmZXLW0LXEU0lCyv2+3bOktsgsIDChqzJLYnl0ZQ0KKyAgICAgICAqLw0KKyAgICAgICBXT1JEICAgICAgICAgICAgICAgICB3RGF0YUxlbjsNCisgICAgICAgUEJZVEUgICAgICAgICAgICAgICAgIHBiU2lEYXRhOw0KKyAgICAgICAgVF96UFNfTFRFX1BfU2luclJlc3VsdCAgdFNpbnJSc2x0OyAvKrjD0KHH+LXEU0lOUqOsuaSzzMSjyr3JqMa1yc+xqNDox/PQwtT2Ki8NCit9IFRfelBTX0xURV9QX1NpRGF0YV9JbmQ7DQorDQorLyoNCitFUEhZtsHIoU1JQsqnsNy688nPsai0y8/7z6INCiu1sVBIWcrVtb22wcihU0lCMbXEx+vH87rzo6zX1Lav0aHU8b340NBNSUK1xLbByKGjrMjnufu24LTOo/uz9bK91Ly2qM6qM7TOo6wgvLTUvDMqNDBtc6P9DQortsHIoU1JQsqnsNy686OsUEhZ06a4w82j1rlNSUK1xLbByKGzosrUo6zJz7GotO3O87j40K3S6dW7o6zTydCt0unVu9Gh1PHG5Mv70KHH+L340NCzosrUoaMNCisqLw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICB3UHJvY0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfSBUX3pQU19MVEVfUF9QYmNoUmVhZEZhaWxfSW5kOw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIMXk1sPP4LnYvdO/2iAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorI2RlZmluZSAgIFpQU19MVEVfUF9NQVhfTjFQQU5fTlVNICAgICAgICAgICAgICAgICAgIDQNCisjZGVmaW5lICAgWlBTX0xURV9QX01BWF9TUlNfQ0ZHX05VTSAgICAgICAgICAgICAgICAgMw0KKyNkZWZpbmUgICBaUFNfTFRFX1BfTUFYX0NTSV9NRUFTX1NGX1BBVFRFUk5fTlVNICAgICAyDQorI2RlZmluZSAgIFpQU19MVEVfUF9NQVhfTjNQQU5fTlVNICAgICAgICAgICAgICAgICAgIDQNCisjZGVmaW5lICAgWlBTX0xURV9QX01BWF9OMVBBTkxJU1RfTlVNICAgICAgICAgICAgICAgMg0KKyANCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgIGR3RGxFYXJmY247DQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgZHdVbEVhcmZjbjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3UGh5Q2VsbElkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgIHdEbEJhbmRXaWR0aDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3VWxCYW5kV2lkdGg7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfSBUX3pQU19MVEVfUF9QaHlDZWxsSW5mbzsgIA0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAvKg0KKyAgd1Bvd2VyUmFtcFN0ZXA6DQorICDIoda1t7bOp6O6ZEIwLCBkQjIsZEI0LCBkQjYNCisgILXIzazQrdLpss7K/aO6MzIxLjUuMS4xIHBvd2VyUmFtcGluZ1N0ZXANCisgILLOyv3Tw82+o7rJz9DQt6LLzXByZWFtYmxluabCyrX31fuyvbOko6zTw9Pa1ti3onByZWFtYmxluf2zzNbQtffV+7eiyeS5psLKDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1Bvd2VyUmFtcFN0ZXA7DQorICAvKg0KKyAgyKHWtbe2zqejuntkQm0tMTIwLCBkQm0tMTE4LCBkQm0tMTE2LCBkQm0tMTE0LGRCbS0xMTIsIGRCbS0xMTAsIGRCbS0xMDgsIA0KKyAgZEJtLTEwNiwgZEJtLTEwNCwgZEJtLTEwMiwgZEJtLTEwMCwgZEJtLTk4LCBkQm0tOTYsIGRCbS05NCwgICAgZEJtLTkyLCBkQm0tOTB9DQorICC1yM2s0K3S6bLOyv2jujMyMS41LjEuMSBwcmVhbWJsZUluaXRpYWxSZWNlaXZlZFRhcmdldFBvd2VyDQorICCyzsr908PNvqO6UlJDxeTWw8/CwLS1xLP1yrxwcmVhbWJsZbmmwsqjrNPD09q8xsvjcHJlYW1ibGW3osnkuabCyg0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdQcmVhbUluaXRpYWxSZWN2VGFyZ2V0UG93ZXI7DQorICAvKg0KKyAgyKHWtbe2zqejuntuMywgbjQsIG41LCBuNiwgbjcsIG44LCBuMTAsIG4yMCwgbjUwLCBuMTAwLCBuMjAwfQ0KKyAgtcjNrNCt0umyzsr9o7ozMjEuNS4xLjEgcHJlYW1ibGVUcmFuc01heA0KKyAgss7K/dPDzb6junByZWFtYmxl1+6089bYtKu0zsr9o6zW2LSrtM7K/bOsuf20y8r91rXU8tDo0qrJz7GotO3O86Os1tjQwreixvDL5rv6vdPI67n9s8yhow0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdQcmVhbVRyYW5zTWF4Ow0KKyAgLyoNCisgIMih1rW3ts6no7p7IHNmMiwgc2YzLCBzZjQsIHNmNSwgc2Y2LCBzZjcsIHNmOCwgc2YxMH0NCisgILXIzazQrdLpss7K/aO6MzIxLjUuMS4xIHJhLVJlc3BvbnNlV2luZG93U2l6ZQ0KKyAgss7K/dPDzb6jurzssuJSQVLQxc+iyrG85LSws6S2yKGj08PT2reiy81wcmVhbWJsZbrz1NrWuLaotcTKsbzkxNq87LLiyse38dPQttTTprXEUkFS0MXPoqOsDQorICCyosXQts+908rVt6LLzXByZWFtYmxluf2zzKOobXNnMaOpyse38bPJuaajrLOsuf20y7bOyrG85NLAvsnDu9PQz+DTprXEUkFS0MXPoqOs1PLF0LbPt6LLzXByZWFtYmxluf2zzMqnsNyhow0KKyAg0OjW2NDCt6LLzaGjDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1JhUmVzcG9uc2VXaW5TaXplOw0KKyAgLyoNCisgIMih1rW3ts6no7pJTlRFR0VSIDF+OA0KKyAgtcjNrNCt0umyzsr9o7ozMjEuNS4xLjEgbWF4SEFSUS1Nc2czVHguDQorICCyzsr908PNvqO6vrrV+b3ivvbW0Leiy81tc2czyrGjrLX308NIQVJRuf2zzNfutPPW2LSrtM7K/aGjDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd01heEhhcnFNc2czVHg7DQorICAvKg0KKyAgyKHWtbe2zqejuklOVEVHRVIgKDAuLjgzNykNCisgILXIzazQrdLpss7K/aO6MjExLjUuNy4yICBSQUNIX1JPT1RfU0VRVUVOQ0WjqExvZ2ljYWwgcm9vdCBzZXF1ZW5jZSBudW1iZXKjqQ0KKyAgss7K/dPDzb6julpD0PLB0MHjz+C52Mf40/LC37ytuPnWtaGj08PT2rLp1dLO78DtuPnWtaOs1/fOqsbk1tDSu7j2ss7K/aOsvMbL47Wxx7DQocf4svrJ+rXEcHJlYW1ibGXQ8sHQoaMNCisgICovDQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3Um9vdFNlcUlkeDsNCisgIC8qDQorICDIoda1t7bOp6O6SU5URUdFUiAwfjYzDQorICC1yM2s0K3S6bLOyv2jujIxMS41LjcuMSAgcHJhY2gtQ29uZmlndXJhdGlvbkluZGV4DQorICCyzsr908PNvqO60K3S6dW71rjKvrWxx7BQSFm/ydPDtcRwcmFjaCByZXNvdXJjZaGj08PT2tfK1LTRodTxo6zS1Lywu/HIoXByZWFtYmxltbHHsMv508O48cq9oaMNCisgICovDQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3UHJhY2hDb25maWdJZHg7DQorICAvKg0KKyAgyKHWtbe2zqejujHOqrjfy9nWuMq+o6jP3tbG0KHH+KOpo6wwzqq3x7jfy9mjqLfHz97WxtChx/ijqQ0KKyAgtcjNrNCt0umyzsr9o7oyMTEuNS43LjIgIEhpZ2gtc3BlZWQtZmxhZyANCisgILLOyv3Tw82+o7qx6ta+tbHHsNChx/jA4NDNo6i438vZ0KHH+Lu5yse3x7jfy9nQocf4o6mhow0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdIaWdoU3BlZWRGbGFnOw0KKyAgLyoNCisgIMih1rW3ts6no7pJTlRFR0VSICgwLi4xNSkNCisgILXIzazQrdLpss7K/aO6MjExLjUuNy4yICBOQ1MgY29uZmlndXJhdGlvbg0KKyAgss7K/dPDzb6jutDywdDJ+rPJ1tC1xNGtu7fSxs67se248cv30v2ho7Lp0a+1scew0KHH+NDywdDJ+rPJy/nTw7XE0a27t9LGzrvWtaOs08PT2sn6s8lwcmVhbWJsZdDywdChow0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdaZXJvQ29ycmVsWm9uZUNvbmZpZzsNCisgIC8qDQorICDIoda1t7bOp6O6SU5URUdFUiAoMC4uOTQpDQorICC1yM2s0K3S6bLOyv2jujIxMS41LjcuMSAgcHJhY2gtRnJlcXVlbmN5T2Zmc2V0o6wgDQorICCyzsr908PNvqO6cHJhY2ggcmVzb3VyY2XU2k9GRE23+7rFyc/GtdPyyc+1xMar0sbWtaGj08PT2rzGy+NwcmFjaCByZXNvdXJjZbXa0ru49s7vwO3XytS0v+nG8Mq8zrvWwyCjrA0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdQcmFjaEZyZXFPZmZzZXQ7DQorDQorICAvKg0KKyAgyKHWtbe2zqejujQsOCwxMiwxNiwyMCwyNCwyOCwzMiwzNiw0MCw0NCw0OCw1Miw1Niw2MCw2NA0KKyAgtcjNrNCt0umyzsr9o7ogDQorICCyzsr908PNvqO6y+a7+r3TyOvHsLW8uPbK/Q0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlJBUHJlYW1ibGVzOw0KKyAgLyoNCisgIMih1rW3ts6no7o0LCA4LCAxMiwgMTYgLDIwLCAyNCwgMjgsIDMyLCAzNiwgNDAsIDQ0LCA0OCwgNTIsIDU2LCA2MA0KKyAgtcjNrNCt0umyzsr9o7ogDQorICCyzsr908PNvqO6y+a7+r3TyOvHsLW81+lBtcS49sr9DQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1NpemVPZlJBUGluR3JvdXBBOw0KKyAgLyoNCisgIMih1rW3ts6no7o1NqGiMTQ0oaIyMDihojI1Ng0KKyAgtcjNrNCt0umyzsr9o7ogDQorICCyzsr908PNvqO6y+a7+sewtbzX6UG1xM/7z6KzpLbIDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd01zZ1NpemVHcm91cEE7DQorICANCisNCisgIC8qDQorICDIoda1t7bOp6O6yKHWtc6qMLW9N6Ost9ax8LbU06ZtaW51c2luZmluaXR5LCBkQjAsIGRCNSwgZEI4LCBkQjEwLCBkQjEyLCBkQjE1LCBkQjE4o6y1pc67ysdkQg0KKyAgtcjNrNCt0umyzsr9o7ogDQorICCyzsr908PNvqO608PT2r340NDHsLW80aHU8Q0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdQd3JPZmZzZXRHcm91cEI7DQorICAvKg0KKyAgyKHWtbe2zqejuiB7c2Y4LCBzZjE2LCBzZjI0LCBzZjMyLCBzZjQwLCBzZjQ4LCBzZjU2LCBzZjY0fQ0KKyAgtcjNrNCt0umyzsr9o7ozMjEuNS4xLjEgIG1hYy1Db250ZW50aW9uUmVzb2x1dGlvblRpbWVyDQorICCyzsr908PNvqO6vrrV+cvmu/q908jruf2zzNbQvOyy4m1zZzTKsbzktLC/2rTz0KGhow0KKyAg08PT2tTat6LLzW1zZzO687+qyry1xG1zZzS87LLio6zDv7TO1ti3om1zZzOjrNDo0qrW2NDCxvS2r7TLvMbKscb3oaMNCisgICovDQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3Q29uUmVzb1RpbWVyOw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfSBUX3pQU19MVEVfUF9QaHlSYUNvbmZpZzsgDQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgIC8qDQorICDIoda1t7bOp6O6IDF+NCANCisgILLOyv3Tw82+o7rSu7j2yrHPtsTaUFJCy/nVvNfTtPi49sr9o6zTw9PavMbL41BVU0NItcTKsca118rUtM671sOhoyAgICANCisgICovDQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3TnNiOw0KKyAgLyoNCisgIMih1rW3ts6no7ogMKOsMQ0KKyAgtcjNrNCt0umyzsr9o7rO3qGjDQorICCyzsr908PNvqO6zPjGtcSjyr2jujDOqtfT1qG85KOsMc6q19PWocTaus3X09ahvOSjrNPD09q8xsvjUFVTQ0i1xMqxxrXXytS0zrvWw6GjDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd0hvcHBpbmdNb2RlOw0KKyAgLyoNCisgICAgyKHWtbe2zqejuiAwfjk4IKOoVFMzMzEtODYwLzg1MLjDt7bOp86qMH45OKOpDQorICAgILXIzazQrdLpss7K/aO6IKGjDQorICAgILLOyv3Tw82+o7rM+Ma1xqvSxqOs0tRSQs6qtaXOu6Os08PT2rzGy+NQVVNDSLXEyrHGtdfK1LTOu9bDoaMgIA0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdQdXNjaEhvcHBpbmdPZmZzZXQ7DQorICAvKg0KKyAgICDIoda1t7bOp6O6IDCjrDENCisgICAgtcjNrNCt0umyzsr9o7rO3qGjDQorICAgILLOyv3Tw82+o7pQVVNDSCA2NFFBTbX31sbKucTcserWvqOsMc6qRU5BQkxFo6wwzqpESVNBQkxFoaMgIA0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdFbmFibGU2NFFhbTsNCisgIC8qDQorICDIoda1t7bOp6O6IDCjrDENCisgILXIzazQrdLpss7K/aO6zt6how0KKyAgss7K/dPDzb6jurLOv7zQxbrFtcTQ8sHQ1+nM+LHko6hTZXF1ZW5jZS1ncm91cCBob3BwaW5no6nKucTcserWvqOsDQorICAxzqpFTkFCTEWjrDDOqkRJU0FCTEWjrNPD09q8xsvjUFVTQ0i6zVBVQ0NIss6/vNDFusXQ8sHQoaMNCisgICovDQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3R3JvdXBIb3BwaW5nRW5hYmxlOw0KKyAgLyoNCisgICAgIMih1rW3ts6no7ogMCB+IDI5DQorICAgICC1yM2s0K3S6bLOyv2juqakU1Ohow0KKyAgICAgss7K/dPDzb6jutPD09q8xsvjUFVTQ0iyzr+80MW6xbXE0PLB0NLGzrvNvNH5IKOsvMy2+LXDtb3Ksc+2ILXEss6/vNDFusW1xLv50PLB0Nfp0PK6xSChow0KKyAgICBQVVNDSLXE0PLB0NLGzrvNvNH5ysfU2lBVQ0NItcTQ8sHQ0sbOu8280fkgyc+808ar0sampFNTo6yyzrz70K3S6TM2LjIxMS04NzCjrLXaNS41LjEuM73aoaMgIA0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdHcm91cEFzc2lnblB1c2NoOw0KKyAgLyoNCisgICAgIMih1rW3ts6no7ogMKOsMQ0KKyAgICAgtcjNrNCt0umyzsr9o7rO3qGjDQorICAgICCyzsr908PNvqO6ss6/vNDFusW1xNDywdDM+LHko6hzZXF1ZW5jZSBob3BwaW5no6nKucTcserWvqOsDQorICAxzqpFTkFCTEWjrDDOqkRJU0FCTEWjrNPD09q8xsvjyrHPtiC1xLv50PLB0Nfp1tC1xLv50PLB0NDyusUgoaOyzrz70K3S6TM2LjIxMS04NzCjrLXaNS41LjEuNL3aLiAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlcUhvcHBpbmdFbmFibGU7DQorICAvKg0KKyAgICAgyKHWtbe2zqejujB+Nw0KKyAgICAgtcjNrNCt0umyzsr9o7rO3qGjDQorICAgICCyzsr908PNvqO608PT2rzGy+Oyzr+80MW6xaGjss68+9Ct0ukzNi4yMTEtODcwo6y12jUuNS4yLjEuMb3aoaMgIA0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdDeWNsaWNTaGlmdDsNCit9IFRfelBTX0xURV9QX1B1c2NoQ29uZmlnQ29tbTsgDQorDQorLyoNCitQVVNDSNDFtcDXqNPDxeTWw7LOyv3Qxc+io6zTw9PaQUNLL1JJL0NRSbXEseDC68vZwsrGpcXkoaO/ybLOvPvQrdLpMzYuMjEyLTg3MKOstdo1LjUuMi42vdqhow0KKyovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgIC8qDQorICAgICDIoda1t7bOp6O6IDB+MTUNCisgICAgILXIzazQrdLpss7K/aO6IA0KKyAgICAgss7K/dPDzb6jurLOvPvQrdLpMzYuMjEzLTg3MKOstdo4LjYuM73aoaMgICAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd0JldGFPZmZzZXRBY2tJbmRleDsNCisgIC8qDQorICAgICDIoda1t7bOp6O6IDB+MTUNCisgICAgILXIzazQrdLpss7K/aO6IA0KKyAgICAgss7K/dPDzb6jurLOvPvQrdLpMzYuMjEzLTg3MKOstdo4LjYuM73aoaMgICAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd0JldGFPZmZzZXRSaUluZGV4Ow0KKyAgLyoNCisgICAgIMih1rW3ts6no7ogMH4xNQ0KKyAgICAgtcjNrNCt0umyzsr9o7ogDQorICAgICCyzsr908PNvqO6ss68+9Ct0ukzNi4yMTMtODcwo6y12jguNi4zvdqhoyAgICANCisgICovDQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3QmV0YU9mZnNldENxaUluZGV4Ow0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3QmV0YU9mZnNldE1jRmxhZzsNCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdCZXRhT2Zmc2V0QWNrSW5kZXhNYzsNCisgIA0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd0JldGFPZmZzZXRSaUluZGV4TWM7DQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3QmV0YU9mZnNldENxaUluZGV4TWM7DQorICANCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdHcm91cEhvcHBpbmdEaXNhYmxlZEZsYWc7DQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3RG1yc1dpdGhPY2NBY3RpdmF0ZWRGbGFnOw0KK30gVF96UFNfTFRFX1BfUHVzY2hDb25maWdEZWRpOw0KKw0KKy8qDQorUFVDQ0jQxbXAuau5ssXk1sOyzsr9o6y/yb3hus/PwtDQUERDQ0jKudPDtcTO78Dt18rUtNDFz6K9+NDQUFVDQ0jQxbXAt/u6xcr9vt3J+rPJvLDO78Dt18rUtNOzyeSjrA0KK7/Jss68+zM2LjIxMS04NzCjrLXaNS40vdq8sDM2LjIxMy04NzCjrLXaMTAuMb3aoaMNCisqLw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAvKg0KKyAgICAgyKHWtbe2zqejuiAxo6wyo6wzDQorICAgICC1yM2s0K3S6bLOyv2juiANCisgICAgILLOyv3Tw82+o7rTw9PaUFVDQ0ihoWZvcm1hdCAxLDFhLDFitcSyzsr9Y3ljbGljIHNoaWZ0ICC8sLeiy83XytS0ILXEvMbL46Osz+rPuLLOvPszNi4yMTHQrdLptcQ1LjS92qGjDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdFB1Y2NoU2hpZnQ7DQorICAvKg0KKyAgICAgyKHWtbe2zqejujB+OTggDQorICAgICC1yM2s0K3S6bLOyv2juiANCisgICAgILLOyv3Tw82+o7qx7cq+UFVDQ0ggZm9ybWF0IDIsMmEsMmK48cq9z8KjrNChx/hQVUNDSNDFtcDVvNPDtcRQUkLK/cS/o6y21NPaVUXV4rj2ss7K/dPD09q8xsvjY3ljbGljIHNoaWZ0ICCjrA0KKyAgz+rPuLLOvPszNi4yMTHQrdLptcQ1LjQuMr3aoaMgIA0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgd05yYkNxaTsNCisNCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgd05jc0FuOw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3TjFQdWNjaEFuOw0KK30gVF96UFNfTFRFX1BfUHVjY2hDb25maWdDb21tOw0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3TjNQdWNjaEFuTGlzdE51bTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3VHdvQW50ZW5uYVBvcnRBY3RpdmF0ZWRQdWNjaEZvcm1hdDNUcHllOw0KKyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3TjNQdWNjaEFuTGlzdFtaUFNfTFRFX1BfTUFYX04zUEFOX05VTV07DQorICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3TjNQdWNjaEFuTGlzdFAxTnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nMTsNCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdOM1B1Y2NoQW5MaXN0UDFbWlBTX0xURV9QX01BWF9OM1BBTl9OVU1dOw0KK30gVF96UFNfTFRFX1BfUHVjY2hGb3JtYXQzOw0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgd051bTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3TGlzdFtaUFNfTFRFX1BfTUFYX04xUEFOX05VTV07DQorfSBUX3pQU19MVEVfUF9OMVB1Y2NoQW5DczsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgIHdOMVB1Y2NoQW5Dc1RweWU7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgd04xUHVjY2hBbkNzTGlzdE51bTsNCisgICAgVF96UFNfTFRFX1BfTjFQdWNjaEFuQ3MgICAgICAgdE4xUHVjY2hBbkNzTGlzdFtaUFNfTFRFX1BfTUFYX04xUEFOTElTVF9OVU1dOyANCit9VF96UFNfTFRFX1BfUHVjY2hDaG5sU2VsZTsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd0Fja05hY2tSZXBldGl0aW9uSW5kOw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1JlcGV0aXRpb25GYWN0b3I7DQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3TjFQdWNjaEFuUmVwOw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1RkZEFja05hY2tGZWVkYmFja01vZGU7DQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3UHVjY2hGb3JtYXRGbGFnOw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmcxOw0KKyAgDQorICBUX3pQU19MVEVfUF9QdWNjaEZvcm1hdDMgICAgICB0UHVjY2hGb3JtYXQzOw0KKyAgVF96UFNfTFRFX1BfUHVjY2hDaG5sU2VsZSAgICAgdFB1Y2NoQ2hubFNlbGU7DQorDQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3VHdvQW50ZW5uYVBvcnRBY3RpdmF0ZWRGb3JtYXQxYTFiRmxhZzsNCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdOMVB1Y2NoQW5SZXBQMUZsYWc7DQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3TjFQdWNjaEFuUmVwUDE7DQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3U2ltdWx0YW5lb3VzUHVjY2hQdXNjaEZsYWc7DQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3TjFQdWNjaEFuQ3NMaXN0UDFOdW07Ly8wse3KvrnYsdW5psTcdHhEaXYtUFVDQ0gxYi1DaFNlbGVjdC1yMTENCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nMjsNCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIGF3TjFQdWNjaEFuQ3NMaXN0UDFbWlBTX0xURV9QX01BWF9OMVBVQ0NIX0FOX0NTTElTVFAxX05VTV07Ly/TprjDvNO49rrqDQorfSBUX3pQU19MVEVfUF9QdWNjaENvbmZpZ0RlZGk7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgLyoNCisgICAgIMih1rW3ts6no7owLDENCisgICAgILXIzazQrdLpss7K/aO6v9jWxtPDss7K/aOs0K3S6cnPw7vT0LTLss7K/aGjDQorICAgICCyzsr908PNvqO6Mc6qc2V0dXCjrL7NysfF5NbDU1JT18rUtKO7IDDOqnJlbGVhc2WjrL7NysfSqsrNt8W1scewtcRTUlPXytS0o6i688PmtcSyzsr9vs3Kx87e0KfWtcHLo6mjrA0KKyAgys23xdfK1LS686OsUEhZsrvQ6NKqt7TAobj40K3S6dW7ys23xc3qs8m1xM/7z6IgICAgDQorICAgICovDQorICAgIA0KKyAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgd0N0cmxGbGFnOyAgIA0KKyAgLyoNCisgICAgIMih1rW3ts6no7owLDEsMiwzLDQsNSw2LDcNCisgICAgILXIzazQrdLpss7K/aO6Q3Nycw0KKyAgICAgss7K/dPDzb6jurj5vt2yzsr9Q3Nyc6OsIEJzcnO6zcnP0NC0+L/tTihVTCxSQikgsumx7b/JyLe2qFNSU8a10/LG8Mq8zrvWw7rNtPi/7bXEvMbL47LOyv1tc3Jzus1OYiChow0KKyAgz+rPuLLOvPszNi4yMTHQrdLptcQ1LjUuMy4yvdqhoyAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1Nyc0JhbmRXaWR0aENvbmZpZzsNCisgIC8qDQorICAgICDIoda1t7bOp6O6MH4xNQ0KKyAgICAgtcjNrNCt0umyzsr9o7pzcnNTdWJmcmFtZUNvbmZpZ3VyYXRpb24NCisgICAgILLOyv3Tw82+o7q0y7LOyv3OqmNlbGwgc3BlY2lmaWMgc3ViZnJhbWUgY29uZmlndXJhdGlvbqGhy/fS/aOsuPm+3bTLy/fS/bLpMzYuMjEx0K3S6bXEse01LjUuMy4zLTKjrA0KKyAgv8m1w7LOyv1UX1NGQ7rNIKakU0ZDo6wgINPD09rIt7aoQ0VMTNTaxMTQqdfT1qG908rVVUW1xFNSU6Gjz+rPuLLOvPszNi4yMTHQrdLptcQ1LjUuMy4zvdqhoyAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1Nyc1N1YkZyYW1lQ29uZmlnOw0KKyAgLyoNCisgICAgIMih1rW3ts6nMaO61MrQ7dTazazSu9fT1qG0q8rkQUNLL05BQ0u6zVNSU6OsMKO6srvUytDtDQorICAgICC1yM2s0K3S6bLOyv2julNpbXVsdGFuZW91cy1BTi1hbmQtU1JTDQorICAgICCyzsr908PNvqO61NrJz9DQt6LLzVBVQ0NIx+m/9s/Co6zTw9PayLe2qEFDSy9OQUNLus1TUlPKx7fxv8nU2s2s0rvX09aht6LLzSAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd0Fja05hY2tTcnNTaW11bFRyYW5zOw0KKyAgLyoNCisgICAgIMih1rW3ts6no7owLDENCisgICAgILXIzazQrdLpss7K/aO6c3JzTWF4VXBQdHMNCisgICAgILLOyv3Tw82+o7q21NPaVXBQVFOjrLWxss7K/c6qMcqxo6zKucTcILXE1tjF5KOstbGyzsr9zqowyrGjrL371rkg1tjF5KGjDQorICDP6s+4ss68+zM2LjIxMdCt0um1xDUuNS4zLjKhoyAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1Nyc01heFVwUHRzOw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfSBUX3pQU19MVEVfUF9TcnNVbENvbmZpZ0NvbW07DQorDQorLyoNCitTUlPXqNPDxeTWw7LOyv3Qxc+io6yw/MCoVUXM2LaotcTKsca1ss7K/byw08PT2lNSU7f7usXJ+rPJtcSyzsr9tcihow0KKyovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgLyoNCisgICAgIMih1rW3ts6no7owLDENCisgICAgILXIzazQrdLpss7K/aO6v9jWxtPDss7K/aOs0K3S6cnPw7vT0LTLss7K/aGjDQorICAgICCyzsr908PNvqO6Mc6qc2V0dXCjrL7NysfF5NbDU1JT18rUtKO7IDDOqnJlbGVhc2WjrL7NysfSqsrNt8W1scewtcRTUlPXytS0o6i688PmtcSyzsr9vs3Kx87e0KfWtcHLo6mjrA0KKyAgys23xdfK1LS686OsUEhZsrvQ6NKqt7TAobj40K3S6dW7ys23xc3qs8m1xM/7z6IgICAgDQorICAgICovDQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3RybEZsYWc7DQorICAvKg0KKyAgICAgyKHWtbe2zqejujAsMSwyLDMNCisgICAgILXIzazQrdLpss7K/aO6IA0KKyAgICAgss7K/dPDzb6jurj5vt2yzsr9Q3Nyc6OsQl9TUlMgus3Jz9DQtPi/7U4oVUwsUkIpILLpse2/yci3tqhTUlPGtdPyxvDKvM671sO6zbT4v+21xLzGy+Oyzsr9bShTUlMsYikgus1OYiChow0KKyAgz+rPuLLOvPszNi4yMTHQrdLptcQ1LjUuMy4yvdqhoyAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1Nyc0JhbmRXaWR0aENvbmZpZzsNCisgIC8qDQorICAgICDIoda1t7bOp6O6IDAsMSwyLDMNCisgICAgILXIzazQrdLpss7K/aO6c3JzLUhvcHBpbmdCYW5kd2lkdGihoSANCisgICAgILLOyv3Tw82+o7pCX1NSUyAgus0gYl9ob3DSu8bwyLe2qFNSU8rHt/HQ6NKqzPjGtaGjz+rPuMPoyvayzrz7MzYuMjEx0K3S6bXENS41LjMuMr3aoaMgIA0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdTcnNIb3BwaW5nQmFuZFdpZHRoOw0KKyAgLyoNCisgICAgIMih1rW3ts6no7owfjIzDQorICAgICC1yM2s0K3S6bLOyv2jumZyZXFEb21haW5Qb3NpdGlvbiAgDQorICAgICCyzsr908PNvqO608PT2rzGy+NTUlO1xMa10/LG8Mq8zrvWw6Osz+rPuMPoyvayzrz7MzYuMjEx0K3S6bXENS41LjMuMr3aoaMgIA0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxRG9tYWluUG9zOw0KKyAgLyoNCisgICAgIMih1rW3ts6no7owICwxDQorICAgICC1yM2s0K3S6bLOyv2jukR1cmF0aW9uDQorICAgICCyzsr908PNvqO60K3S6dW708O0y7LOyv3F5NbDVUW1xFNSU8rHtaW0zreiy82jrLu5ysfW3Mbat6LLzaOsMC21pbTOt6LLzaO7MS3W3Mbat6LLzaGjICANCisgICovDQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3RHVyYXRpb247DQorICAvKg0KKyAgICAgyKHWtbe2zqejujB+MTAyMyANCisgICAgILXIzazQrdLpss7K/aO6IElzcnMNCisgICAgILLOyv3Tw82+o7rA+9PDtMuyzsr9o6yy6TM2LjIxM9Ct0um1xLHtOC4yLTGjrL/JtcOyzsr9VHNyc7rNVG9mZnNldKOsDQorICDU2cD708NUc3Jzus1Ub2Zmc2V0v8m8xsvjs/ZVRdDo0qq3osvNU1JTtcTX09ahusWhoyAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1Nyc0NvbmZpZ0luZGV4Ow0KKyAgLyoNCisgICAgIMih1rW3ts6no7owfjENCisgICAgILXIzazQrdLpss7K/aO6dHJhbnNtaXNzaW9uQ29tYqGhIEt0Yw0KKyAgICAgss7K/dPDzb6jurTLss7K/dPD09q8xsvjU1JTxrXT8sbwyrzOu9bDo6zP6s+4w+jK9rLOvPszNi4yMTHQrdLptcQ1LjUuMy4yvdqhoyAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1RyYW5zQ29tYjsNCisgIC8qDQorICAgICDIoda1t7bOp6O6MH43DQorICAgICC1yM2s0K3S6bLOyv2juiBuKGNzLFNSUykNCisgICAgILLOyv3Tw82+o7rTw9PavMbL41NSU7XEY3ljbGljIHNoaWZ0ICCjrM/qz7jD6Mr2vPszNi4yMTHQrdLptcQ1LjUuMy4xvdqhoyAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd0N5Y2xpY1NoaWZ0Ow0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1Nyc0FudGVubmFQb3J0Ow0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmcxOw0KK30gVF96UFNfTFRFX1BfU3JzVWxDb25maWdEZWRpOyAgDQorDQorLyoNCivJz9DQuabCyr/Y1sbP4LnYtcS5q7myxeTWw7LOyv2jrLqtuMfBy8v509DJz9DQ0MW1wLywU1JTo6zW99KqsPzAqNChx/jM2LaotcS/qru3uaa/2LP11rWjrA0KK1BVQ0NI1tCyu82sZm9ybWF0z+C21GZvcm1hdDFhtcRkZWx0Yda1vLDCt8vwsrmzpc+1yv21yLLOyv2how0KKyovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgIC8qICAgICDIoda1t7bOp6O61ebKtda1t7bOp1stMTI2LDI0XSBkQm0NCisgIFBTz8K3orXEss7K/da11NrV5sq11rXJzysxMjajrLLOyv23ts6no7pbMKOsMTUwXQ0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdQME5vbWluYWxQdXNjaDsNCisgIC8qDQorICAgICAgIMih1rW3ts6no7rV5sq11rXOqqO6ezAsIDAuNCwgMC41LCAwLjYsIDAuNywgMC44LCAwLjksIDF9DQorICBQU8/Ct6K1xLLOyv3WtT3V5sq11rUqMTCjrCCyzsr9t7bOp6O6WzCjrDSjrDWjrDajrDejrDijrDmjrDEwXQ0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdBbHBoYTsNCisgIC8qDQorICDV5sq11rXOqlstMTI3o6wtOTZdLCAgUFPPwreitcSyzsr91rXOqtXmyrXWtciht7QgIA0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdQME5vbWluYWxQdWNjaDsNCisgIC8qDQorICAgICAgIMih1rW3ts6no7owo7pkZWx0YUYtMjsgICAxo7pkZWx0YUYwOyAgICAgMqO6ZGVsdGFGMjsgICAgMHhGRqO6zt7Qpw0KKyAgICAgZGVsdGFGLTIgtPqx7SAtMmRio6wgZGVsdGFGMCC0+rHtMGRio6wg0tS0y8DgzcYNCisgICovDQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFGUHVjY2hGb3JtYXQxOw0KKyAgLyoNCisgICAgICAgyKHWtbe2zqejujCjumRlbHRhRjE7ICAgIDGjumRlbHRhRjM7ICAgICAyo7pkZWx0YUY1OyAgICAweEZGo7rO3tCnDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlbHRhRlB1Y2NoRm9ybWF0MWI7DQorICAvKg0KKyAgICAgICDIoda1t7bOp6O6MKO6ZGVsdGFGLTI7ICAgMaO6ZGVsdGFGMDsgICAgIDKjumRlbHRhRjE7ICAgIDOjumRlbHRhRjINCisgICovDQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFGUHVjY2hGb3JtYXQyOw0KKyAgLyoNCisgICAgICAgyKHWtbe2zqejujCjumRlbHRhRi0yOyAgIDGjumRlbHRhRjA7ICAgICAyo7pkZWx0YUYyOyAgICAweEZGo7rO3tCnDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlbHRhRlB1Y2NoRm9ybWF0MmE7DQorICAvKg0KKyAgICAgICDIoda1t7bOp6O6MKO6ZGVsdGFGLTI7ICAgMaO6ZGVsdGFGMDsgICAgIDKjumRlbHRhRjI7ICAgIDB4Rkajus7e0KcNCisgICovDQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFGUHVjY2hGb3JtYXQyYjsNCisgIC8qDQorICAgICAgIMih1rW3ts6no7pbLTF+Nl0gIFBTz8K3orXEss7K/da1PdXmyrXWtSsxo6yyzsr9t7bOp6O6WzB+N10NCisgICovDQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFQcmVhbU1zZzM7DQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFGUHVjY2hGb3JtYXQzMWJDU0ZnOw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlbHRhRlB1Y2NoRm9ybWF0MzsNCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdEZWx0YUZQdWNjaEZvcm1hdDFiQ1M7DQorfSBUX3pQU19MVEVfUF9VbFBvd2VyQ3RybENvbW07IA0KKw0KKy8qDQoryc/Q0Lmmwsq/2NbGz+C52LXE16jTw8Xk1sOyzsr9o6y6rbjHwcvL+dPQyc/Q0NDFtcC8sFNSU6Os1vfSqrD8wKhVRczYtqi1xL+qu7e5pr/Ys/XWtaOsDQoryse38b340NBNQ1PP4LnYtcS5psLKtffWxqOsyse38bLJ08PA27zTtcRUUEMgY29tbWFuZLX31fu1yNDFz6Khow0KKyovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgLyoNCisgICAgICAgyKHWtbe2zqejulstMTI2LDI0XQ0KKyAgUFPPwreitcSyzsr91rXU2tXmyrXWtcnPKzEyNqOsss7K/be2zqejulswo6wxNTBdICAgIA0KKyAgICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1AwVWVQdXNjaDsNCisgIC8qDQorICDIoda1t7bOp6O6DQorICAwIGNvcnJlc3BvbmRzIHRvIHZhbHVlIDAgY29ycmVzcG9uZGluZyB0byBzdGF0ZSAiZGlzYWJsZWQiLiAgDQorICAxIGNvcnJlc3BvbmRzIHRvIHZhbHVlIDEuMjUgY29ycmVzcG9uZGluZyB0byAiZW5hYmxlZCIuDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlbHRhTWNzRW5hYmxlZDsNCisgIC8qDQorICAgICAgIMih1rW3ts6no7oxo7pFbmFibGU7IDA6RGlzYWJsZQ0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdBY2N1bXVsYXRpb25FbmFibGVkOw0KKyAgLyoNCisgICAgICAgyKHWtbe2zqejulstOKOsN10NCisgIFBTz8K3orXEss7K/da11NrV5sq11rXJzys4o6yyzsr9t7bOp6O6WzCjrDE1XSAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1AwVWVQdWNjaDsNCisgIC8qDQorICAgICAgIMih1rW3ts6no7owfjE1DQorICBGb3IgS3M9MS4yNSwgdGhlIGFjdHVhbCBwYXJhbWV0ZXIgdmFsdWUgaXMgcFNSUy1PZmZzZXQgdmFsdWUgLSAzLiANCisgIEZvciBLcz0wLCB0aGUgYWN0dWFsIHBhcmFtZXRlciB2YWx1ZSBpcyAtMTAuNSArIDEuNSpwU1JTLU9mZnNldCB2YWx1ZS4gU2VlIFRTIDM2LjIxMyBbMjMsIDUuMS4zLjFdLiAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1BzcnNPZmZzZXQ7DQorICAvKg0KKyAgICAgICDIoda1t7bOp6O6ZmMwLCBmYzEsIGZjMiwgZmMzLCBmYzQsIGZjNSwgZmM2LCBmYzcsIGZjOCwgZmM5LCBmYzExLCBmYzEzLCBmYzE1LCBmYzE3LCBmYzE5oaPIoda1MHhGRsqxzqrO3tCn1rUNCisgIFNlZSBUUyAzNi4zMzEgWzUuNS4zLjJdICAgIGZjMCC0+rHtIGsgPTCjrGZjMSC0+rHtIGsgPTEgDQorICAgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgICAgss7K/dPDzb6jutPD1/dSU1JQsuLBv8qxtcTCy7KoxvfPtcr9o6zTw9f3vMbL41BMICANCisgICovDQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3RmlsdGVyQ29lZmZpY2llbnQ7DQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFUeERPZmZzZXRMaXN0UHVjY2hDdHJsRmxhZzsNCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdEZWx0YVR4RE9mZnNldExpc3RQdWNjaEZvcm1hdDE7DQorDQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFUeERPZmZzZXRMaXN0UHVjY2hGb3JtYXQxYTFiOw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlbHRhVHhET2Zmc2V0TGlzdFB1Y2NoRm9ybWF0MjJhMmI7DQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFUeERPZmZzZXRMaXN0UHVjY2hGb3JtYXQzOw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1BzcnNPZmZzZXRBcEN0cmxGbGFnOw0KKw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1BzcnNPZmZzZXRBcDsNCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nMTsNCit9IFRfelBTX0xURV9QX1VsUG93ZXJDdHJsRGVkaTsgIA0KKw0KKy8qDQorz8LQ0FNQU8Xk1sPQxc+io6y4+b7dtMvF5NbDvfjQ0M/C0NBTUFO197bIoaMNCiuyzrz7MzYuMzIxLjg1MLXENS4xMC4xvdqhojM2LjMzMS44NTC1xDYuMy4yvdq1xFNQUy1Db25maWehow0KKyovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgLyoNCisgICAgIMih1rW3ts6no7owo6wxDQorICAgICC1yM2s0K3S6bLOyv2jus7eDQorICAgICCyzsr908PNvqO6U1BTvajBorvy1d/KzbfFtcTD/MHu1rjKviAgICANCisgICAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3Q3RybEZsYWc7IA0KKyAgLyoNCisgICAgIMih1rW3ts6no7pbMaOsOF0NCisgICAgILXIzazQrdLpss7K/aO6bnVtYmVyT2ZDb25mU1BTLVByb2Nlc3Nlcw0KKyAgICAgss7K/dPDzb6julNQU734s8zK/cG/ICANCisgICovDQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1Nwc1Byb2Nlc3NOdW07DQorICAvKg0KKyAgICAgyKHWtbe2zqejunNmMTAsIHNmMjAsIHNmMzIsIHNmNDAsIHNmNjQsIHNmODAsIHNmMTI4LCBzZjE2MCwgc2YzMjAsIHNmNjQwo6zIoda1zqoweEZGRkbKsc6qzt7Qpw0KKyAgICAgtcjNrNCt0umyzsr9o7pzZW1pUGVyc2lzdFNjaGVkSW50ZXJ2YWxETA0KKyAgICAgss7K/dPDzb6jus/C0NBTUFO197bIvOS49A0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3U3BzSW50ZXJ2YWxEbDsgICAgICAgICAgDQorICAvKg0KKyAgICAgyKHWtbe2zqejulsxo6w0XQ0KKyAgICAgtcjNrNCt0umyzsr9o7puMS1QVUNDSC1BTi1QZXJzaXN0ZW50TGlzdA0KKyAgICAgss7K/dPDzb6jus/C0NBTUFO1xEhBUlG3tMCh18rUtMHQse3W0LXE18rUtMr9wb+jrNPJuN+y48Xk1sOjrLmy09A0uPa3tMCh18rUtKGjDQorICC+38zlyrnTw8TEuPbTyVNQUyBEQ0nW0LXEVFBD0/LWuMq+oaOyzrz7MzYuMjEzLjg2MLXEOS4yvdqhoyAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdOMVBBUE51bTsNCisgIC8qDQorICAgICDIoda1t7bOp6O6WzB+MjA0N10NCisgICAgILXIzazQrdLpss7K/aO6bjEtUFVDQ0gtQU4tUGVyc2lzdGVudExpc3QNCisgICAgILLOyv3Tw82+o7rPwtDQU1BTtcRIQVJRt7TAodfK1LTB0LHto6zTybjfsuPF5NbDoaOyzrz7MzYuMjEzLjg2MLXEOS4yvdqhoyAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIGF3TjFQdWNjaEFuUGVyc2lzdGVudExpc3RbWlBTX0xURV9QX01BWF9OMVBBTl9OVU1dOw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdUd29BbnRlbm5hUG9ydEFjdGl2YXRlZEN0cmxGbGFnOw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdOMVBBUE51bVAxOw0KKyAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIGF3TjFQdWNjaEFuUGVyc2lzdGVudFAxTGlzdFtaUFNfTFRFX1BfTUFYX04xUEFOX05VTV07DQorfSBUX3pQU19MVEVfUF9TcHNDb25maWdEbDsgIA0KKw0KKy8qDQoryc/Q0FNQU8Xk1sPQxc+io6y4+b7dtMvF5NbDvfjQ0MnP0NBTUFO197bIoaMNCiuyzrz7MzYuMzIxLjg1MLXENS4xMC4yvdqhojM2LjMzMS44NTC1xDYuMy4yvdq1xFNQUy1Db25maWehow0KKyovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgLyoNCisgICAgd0N0cmxGbGFnOiAxzqpzZXR1cCwgMM6qcmVsZWFzZQ0KKyAgICAgyKHWtbe2zqejujCjrDENCisgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgILLOyv3Tw82+o7pTUFO9qMGiu/LV38rNt8W1xMP8we7WuMq+ICAgIA0KKyAgICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgIHdDdHJsRmxhZzsNCisgIC8qDQorICAgICDIoda1t7bOp6O6MqOsM6OsNKOsOA0KKyAgICAgtcjNrNCt0umyzsr9o7pzZW1pUGVyc2lzdFNjaGVkSW50ZXJ2YWxVTA0KKyAgICAgss7K/dPDzb6julVF1NrWuLaotM7K/bXEv9W0q8r9vt2689L+yr3KzbfFU1BTxeTWww0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICB3SW1wbGljaXRSZWxlYXNlQWZ0ZXI7DQorICAvKg0KKyAgICAgyKHWtbe2zqejunNmMTAsIHNmMjAsIHNmMzIsIHNmNDAsIHNmNjQsIHNmODAsIHNmMTI4LCBzZjE2MCwgc2YzMjAsIHNmNjQwo6zIoda1zqoweEZGRkbKsc6qzt7Qpw0KKyAgICAgtcjNrNCt0umyzsr9o7pzZW1pUGVyc2lzdFNjaGVkSW50ZXJ2YWxVTA0KKyAgICAgss7K/dPDzb6jusnP0NBTUFO197bIvOS49A0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICB3U3BzSW50ZXJ2YWxVbDsNCisgIC8qDQorICAgICDIoda1t7bOp6O61ebKtda1t7bOp6O6Wy0xMjajrDI0XaOs16KjulBTz8K3orXEss7K/da1zqrV5sq11rUrMTI2oaOyzsr9yKHWtbe2zqdbMKOsMTUwXQ0KKyAgICAgtcjNrNCt0umyzsr9o7pwMC1Ob21pbmFsUFVTQ0gtUGVyc2lzdGVudKOoMzYuMzMxo6mjrFAwLE5PTUlOQUxfUFVTQ0ggKDApo6gzNi4yMTOjqQ0KKyAgICAgss7K/dPDzb6jutPD09q8xsvjUFVTQ0i3osvNuabCyqOsss68+zM2LjIxM7XENS4xLjEuMb3aoaMgIA0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICB3UDBOb21pbmFsUHVzY2hQZXJzaXN0ZW50Ow0KKyAgLyoNCisgICAgIMih1rW3ts6no7rV5sq11rW3ts6no7pbLTijrDddZEKjrNeio7pQU8/Ct6K1xLLOyv3Wtc6q1ebKtda1Kziho7LOyv3Ioda1t7bOp1swo6wxNV0NCisgICAgILXIzazQrdLpss7K/aO6cDAtVUUtUFVTQ0gtUGVyc2lzdGVudKOoMzahozMzMaOpo6xQMCxVRTsgUFVTQ0ggKDApIKOoMzYuMjEzo6kNCisgICAgILLOyv3Tw82+o7rTw9PavMbL41BVU0NIt6LLzbmmwsqjrLLOvPszNi4yMTO1xDUuMS4xLjG92qGjICANCisgICovDQorICBXT1JEICAgICAgICAgICAgICAgd1AwVWVQdXNjaFBlcnNpc3RlbnQ7DQorICAvKg0KKyAgICAgyKHWtbe2zqejujCjrDENCisgICAgILXIzazQrdLpss7K/aO6dHdvSW50ZXJ2YWxzQ29uZmlnDQorICAgICCyzsr908PNvqO6wb3W1snP0NBTUFO197bIvOS49KOs0tSx3MPiyc/Q0FNQU9DCyv2+3beiy826zc2ssr1IQVJR1ti0q7XEs+XNu6GjICANCisgICovDQorICBXT1JEICAgICAgICAgICAgICAgd1R3b0ludGVydmFsc0NvbmZpZzsgICAgDQorfSBUX3pQU19MVEVfUF9TcHNDb25maWdVbDsgDQorDQorLyoNCitEUljF5NbD0MXPoqOsuPm+3bTLxeTWw7340NDBrL3TzKxEUli197bItKbA7aOsvLTF0LaoQWN0aXZlIHRpbWW6zU5vbi1hY3RpdmUgdGltZbXEvfjI68qxu/qhow0KK7LOvPszNi4zMjEuODUwtcQ1Lje92qGiMzYuMzMxLjg1MLXENi4zLjK92rXERFJYLUNvbmZpZ6GjDQorKi8NCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejujCjrDENCisgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgILLOyv3Tw82+o7rG9Lavu/LNo9a5way908ysRFJYtfe2yLSmwO0NCisgICAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICB3Q3RybEZsYWc7DQorICAvKg0KKyAgtKbT2k9uIGR1cmF0aW9utcTKsbOko6zTyVBEQ0NI19PWobXEuPbK/cC0uuLBv6GjDQorICAgICDIoda1t7bOp6O6cHNmMSwgcHNmMiwgcHNmMywgcHNmNCwgcHNmNSwgcHNmNixwc2Y4LCBwc2YxMCwgcHNmMjAsIHBzZjMwLCBwc2Y0MCxwc2Y1MCwgDQorICAgIHBzZjYwLCBwc2Y4MCwgcHNmMTAwLCBwc2YyMDANCisgICAgILXIzazQrdLpss7K/aO6b25EdXJhdGlvblRpbWVyDQorICAgICCyzsr908PNvqO6tKbT2k9uIGR1cmF0aW9utcTKsbOko6zU2rTLxtq85FBIWdDo0qq84LLiUERDQ0iho9Kyse3KvsO/tM5EUli7vdDRuvO1xNfu0KFhY3RpdmXKsbzkoaMgIA0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICB3T25EdXJhdGlvblRpbWVyOw0KKyAgLyoNCisgICAgIHBzZjAsIHBzZjEsIHBzZjIsIHBzZjMsIHBzZjQsIHBzZjUsIHBzZjYsIHBzZjgsIHBzZjEwLCBwc2YyMCwgcHNmMzAsIHBzZjQwLCBwc2Y1MCwgcHNmNjAsIA0KKyAgICAgcHNmODAsIHBzZjEwMCwgcHNmMjAwLCBwc2YzMDAsIHBzZjUwMCwgcHNmNzUwLCBwc2YxMjgwLCBwc2YxOTIwLCBwc2YyNTYwoaPTyVBEQ0NI19PWobXEuPbK/cC0uuLBv6GjDQorICAgICC1yM2s0K3S6bLOyv2jumRyeC1JbmFjdGl2aXR5VGltZXINCisgICAgILLOyv3Tw82+o7q2qNLlwcvK1bW90ru0zlBEQ0NItfe2yMnPoaLPwtDQ0MK0q8rkuvOjrNDo0qq8zND4vOCy4lBEQ0NItcTKsbzkoaMgIA0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICB3RHJ4SW5hY3Rpdml0eVRpbWVyOw0KKyAgLyoNCisgICAgIMih1rW3ts6no7pwc2YxLCBwc2YyLCBwc2Y0LCBwc2Y2LCBwc2Y4LCBwc2YxNiwgcHNmMjQsIHBzZjMzoaPTyVBEQ0NI19PWobXEuPbK/cC0uuLBv6GjDQorICAgICC1yM2s0K3S6bLOyv2jumRyeC1SZXRyYW5zbWlzc2lvblRpbWVyDQorICAgICCyzsr908PNvqO6tqjS5cHL1eu21M/C0NBIQVJR1ti0q6Os0OjSqrzgsuJQRENDSKOoz8LQ0NbYtKu197bIo6m1xMqxvOShoyAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgIHdEcnhSZXRyYW5zVGltZXI7IA0KKyAgLyoNCisgICAgIMih1rW3ts6no7oxfjE2oaPOqndTaG9ydERyeEN5Y2xltcSxtsr9oaMNCisgICAgILXIzazQrdLpss7K/aO6ZHJ4U2hvcnRDeWNsZVRpbWVyDQorICAgICCyzsr908PNvqO6tqjS5cHLtsxEUljW3MbatqjKscb3o6zU2ndEcnhJbmFjdGl2aXR5VGltZXKzrMqxus3K1bW9RFJYw/zB7qOoRFJYIENvbW1hbmQgTUFDIGNvbnRyb2wgZWxlbWVudKOpyrGjrMb0tq+0y7aoyrHG96GjDQorICB3RHJ4U2hvcnRDeWNsZVRpbWVytqjKscb3s6zKsaOsvfjI67OkRFJY1tzG2rSmwO2hoyAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgIHdEcnhTaG9ydEN5Y2xlVGltZXI7DQorICAvKg0KKyAgICAgyKHWtbe2zqejuqOotaXOu86q19PWocr9o6mjujEwoaIyMKGiMzKhojQwoaI2NKGiODChojEyOKGiMTYwoaIyNTahojMyMKGiNTEyoaI2NDChojEwMjShojEyODChojIwNDihojI1NjANCisgICAgILXIzazQrdLpss7K/aO6bG9uZ0RSWC1DeWNsZVN0YXJ0T2Zmc2V0DQorICAgICCyzsr908PNvqO6tqjS5cHLs6REUljW3Mba1rWjrNTa06bTw7OkRFJY1tzG2sqxo6y4+b7ds6REUljW3Mbaus3Gq9LGwLTIt7aoxvS2r2JPbkR1cmF0aW9uVGltZXK2qMqxxve1xMqxu/qhoyAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgIHdMb25nRHJ4Q3ljbGU7DQorICAvKg0KKyAgICAgyKHWtbe2zqejujB+MjU1OSDX09ahDQorICAgICC1yM2s0K3S6bLOyv2jumxvbmdEUlgtQ3ljbGVTdGFydE9mZnNldA0KKyAgICAgss7K/dPDzb6jurao0uXBy7OkRFJY1tzG2rrNtsxEUljW3MbatcRhY3RpdmUgdGltZb34yOu1xMqxvOTGq9LG1rWjrLj5vt3W3Mbaus3Gq9LGwLTIt7aoxvS2r2JPbkR1cmF0aW9uVGltZXK2qMqxxve1xMqxu/qhow0KKyAg1eK49rLOyv2yorfH1rvT0CBsb25nIGRyeLvh08O1vaOsc2hvcnQgZHJ40rK74dPDtb0gIA0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICB3TG9uZ0RyeEN5Y2xlU3RhcnRPZmZzZXQ7DQorICAvKg0KKyAgICAgyKHWtbe2zqejunNmMiwgc2Y1LCBzZjgsIHNmMTAsIHNmMTYsIHNmMjAsIHNmMzIsIHNmNDAsIHNmNjQsIHNmODAsIHNmMTI4LCBzZjE2MCwgc2YyNTYsIHNmMzIwLCBzZjUxMiwgc2Y2NDAg19PWoaGjDQorICDDu9PQxeTWw7bMRFJY1tzG2sqxo6zIoda1zqoweEZGRkahow0KKyAgICAgtcjNrNCt0umyzsr9o7pzaG9ydERSWC1DeWNsZQ0KKyAgICAgss7K/dPDzb6jurao0uXBy7bMRFJY1tzG2ta1o6zU2sb0tq/By7bMRFJY1tzG2raoyrHG92JEcnhTaG9ydEN5Y2xlVGltZXLG2rzko6wNCisgILj5vt22zERSWNbcxtq6zcar0sajqM2ss6REUljGq9LGo6nAtMi3tqjG9LavYk9uRHVyYXRpb25UaW1lcraoyrHG97XEyrG7+qGjICANCisgICovDQorICBXT1JEICAgICAgICAgICAgICAgd1Nob3J0RHJ4Q3ljbGU7ICAgIA0KK30gVF96UFNfTFRFX1BfRHJ4Q29uZmlnOyAgDQorDQorLyoNCitQRENDSLmmv9jF5NbD0MXPoixQSFnK1bW9UFPF5NbDtcRQRENDSNDFtcDJz7XEVFBDv9jWxtDFz6K686OsDQorttS689D4tcRQVUNDSLvyUFVTQ0i1xLSryuS5psLKvfjQ0M/g06bU9rzTu/K89dChtcS199X7oaMNCisqLw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIC8qDQorICAgICDIoda1t7bOp6O6Mc6qc2V0dXAsIDDOqnJlbGVhc2UNCisgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgILLOyv3Tw82+o7rWuMq+xvS2r7vyys23xbv509pUUEO1xLmmv9ggICAgDQorICAgICovDQorICBXT1JEICAgICAgICAgICAgICAgd0N0cmxGbGFnOw0KKyAgLyoNCisgICAgIMih1rW3ts6no7oxzqpEQ0kgZm9ybWF0MywgMM6qRENJIGZvcm1hdDNBDQorICAgICC1yM2s0K3S6bLOyv2jus7eDQorICAgICCyzsr908PNvqO61rjKvs7vwO2y46OsyrnTw2Zvcm1hdDOjrLu5ysdmb3JtYXRlM2EgIA0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICB3Rm9ybWF0M09yM0E7DQorICAvKg0KKyAgICAgyKHWtbe2zqejujAwMDAxIC0gRkZGMw0KKyAgICAgtcjNrNCt0umyzsr9o7rO3g0KKyAgICAgss7K/dPDzb6julJOVEkgZm9yIHBvd2VyIGNvbnRyb2wgdXNpbmcgRENJIGZvcm1hdCAzLzNBLCBzZWUgVFMgMzYuMjEyIFsyMl0uICANCisgICovDQorICBXT1JEICAgICAgICAgICAgICAgd1RwY1JudGk7DQorICAvKg0KKyAgICAgyKHWtbe2zqejug0KKyAgICBEQ0kgZm9ybWF0IDM6ICAxfjE1DQorICAgIERDSSBmb3JtYXQgM0E6IDF+MzENCisgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgILLOyv3Tw82+o7rWuMq+1Npmb3JtYXQzILvyIDNh1tCjrMq508O1xGJpdM671sOjrNf3zqpUUEPD/MHuo7sNCisgIA0KKyAgKi8NCisgIFdPUkQgICAgICAgICAgICAgICB3VHBjSW5kZXg7DQorfSBUX3pQU19MVEVfUF9UcGNQZGNjaENvbmZpZzsgDQorDQorLyoNCivM7M/f16jTw8Xk1sPQxc+iDQorKi8NCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejujF+NyAgt9ax8LbU06Y31tbEo8q9o6zIoda1MHhGRsqxzt7Qpw0KKyAgICAgtcjNrNCt0umyzsr9o7rO3g0KKyAgICAgss7K/dPDzb6juta4yr7PwtDQtKvK5MSjyr0gICAgDQorICAgICovDQorICBXT1JEICAgICAgICAgICAgICAgd1RyYW5zTW9kZTsNCisgIFdPUkQgICAgICAgICAgICAgICB3Q0JSZXN0cmljQml0TGVuOyANCisgIFdPUkQgICAgICAgICAgICAgICB3VWxUcmFuc01vZGVSMTAgOw0KKyAgV09SRCAgICAgICAgICAgICAgIHdVbEZvdXJBbnRlbm5hUG9ydEFjdGl2YXRlUjEwIDsNCisgIC8qDQorICAgIGF3Q0JSZXN0cmljQml0OiAgQ29kZWJvb2tTdWJzZXRSZXN0cmljtcRiaXSjrNfutPMxMDliaXQNCisgICAgIMih1rW3ts6no7oNCisgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgILLOyv3Tw82+o7rTw8C0z97WxtTavfjQ0FBNSSxSSbzGy+PKsaOs0OjSqrOiytS1xGNvZGVib29rICANCisgICovDQorICBXT1JEICAgICAgICAgICAgICAgYXdDQlJlc3RyaWNCaXRbOF07DQorICAvKg0KKyAgICAgyKHWtbe2zqejujHOqnNldHVwLCAwzqpyZWxlYXNlICAg16KjunNldHVwyrGjrGJVZVRyYW5zQW50U2VsZWN0ss7K/dPQ0KcNCisgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgILLOyv3Tw82+o7rWuMq+yse38b340NBVRbeiyeTM7M/f0aHU8SAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgIHdVZVRyYW5zQW50Q3RybEZsYWc7DQorICAvKg0KKyAgICAgyKHWtbe2zqejujDOqkNMT1NFTE9PUKOsMc6qT1BFTkxPT1ANCisgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgILLOyv3Tw82+o7rI57n7vfjQ0FVFt6LJ5Mzsz9/RodTxo6wg1rjKvsq508O/qru3o6y7ucrHsdW7t7XEt73KvSAgDQorICAqLw0KKyAgV09SRCAgICAgICAgICAgICAgIHdVZVRyYW5zQW50U2VsZWN0Ow0KK30gVF96UFNfTFRFX1BfQW50ZW5JbmZvRGVkaTsgIA0KKw0KKy8qDQorVUUgU1K197bIx+vH87XExeTWw7LOyv3Qxc+iDQorKi8NCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejuiAwo6wxDQorICAgICC1yM2s0K3S6bLOyv2jus7eDQorICAgICCyzsr908PNvqO6Mc6qc2V0dXAsIDDOqnJlbGVhc2WjrMb0tq+6zbnYsdVTUrn9s8wgICAgDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgd0N0cmxGbGFnOw0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejujB+MTU1DQorICAgICC1yM2s0K3S6bLOyv2juklzciAuIFNlZSBUUyAzNi4yMTMgWzIzLDEwLjFdLg0KKyAgICAgss7K/dPDzb6jutPD09qy6bHtvMbL41NStcS3osvN1tzG2qP7bXOj/brN1tzG2sTatcRzdWJmcmFtZSBvZmZzZXShow0KKyAgICC8xsvjt723qLLOvPujulRTIDM2LjIxMyBbMjMsMTAuMV0uICAgIA0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgIHdTckNvbmZpZ0luZGV4Ow0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejuiAwfjIwNDcNCisgICAgILXIzazQrdLpss7K/aO6IKGyIFRTIDM2LjIxMyBbMjMsIDEwLjFdobMNCisgICAgILLOyv3Tw82+o7rTw9PavMbL47PQ1NhTUrXEUFVDQ0i1xMqxxrXXytS0zrvWw6Os16Kjuta709AgcG9zdGl2ZSBTUtPD1eK49rLOyv28xsvj18rUtM671sOjrA0KKyAgICBuZWd0aXZlIFNSINaxvdOyydPDIKP7sb7OxLW1tcS907/aw/zD+86qd04xUHVjY2hBbjqj/SAgICANCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICB3U3JQdWNjaFJlc291cmNlSW5kZXg7DQorICAgIC8qDQorICAgICDIoda1t7bOp6O6NCwgOCwgMTYsIDMyLCA2NKOsMHhGRs6qzt7Qp9a1DQorICAgICC1yM2s0K3S6bLOyv2jumRzci1UcmFuc01heCBpbiBUUyAzNi4zMjEgWzYsIDUuNC40XS4NCisgICAgILLOyv3Tw82+o7qx7dX3U1K1xNfutPPW2LSrtM7K/aOsyOe5+1NStcS3osvNtM7K/bTvtb3V4rj2yv3WtaOs1PLQ6NKq19S2r82j1rlTUrXEt6LLzaGjICAgIA0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgIHdEc3JUcmFuc01heDsNCisgICAgV09SRCAgICAgICAgICAgICAgICB3U3JQdWNjaFJlc291cmNlSW5kZXhQMUZsYWc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgd1NyUHVjY2hSZXNvdXJjZUluZGV4UDE7DQorfSBUX3pQU19MVEVfUF9TckNvbmZpZzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JhZGlvRnJhbWVBbGxvY1BlcmlvZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JhZGlvRnJhbWVBbGxvY09mZnN0Ow0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U3ViZnJhbWVBbGxvY1R5cGU7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nMDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdGcmFtZUJpdFN0clsyXTsNCit9IFRfelBTX0xURV9QX01ic2ZuU3ViZnJhbWVDb25maWc7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNYnNmblN1YmZyYW1lQ29uZmlnTnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgVF96UFNfTFRFX1BfTWJzZm5TdWJmcmFtZUNvbmZpZyAgICAgdE1ic2ZuU3ViZnJhbWVDb25maWdbWlBTX0xURV9QX01BWF9NQlNGTl9TVUJGUkFNRV9DRkdfTlVNXTsNCit9VF96UFNfTFRFX1BfTWJzZm5TdWJmcmFtZUNvbmZpZ0xpc3Q7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01lYXNTdWJmcmFtZVBhdHRlcm5UeXBlOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgVF96UFNfTFRFX1BfTWVhc1N1YmZyYW1lUGF0dGVybiAgICAgdE1lYXNTdWJmcmFtZVBhdHRlcm5QY2VsbDsNCit9IFRfelBTX0xURV9QX01lYXNTdWJmcmFtZVBhdHRlcm5QY2VsbDsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3NpUnNGbGFnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QW50ZW5uYVBvcnRzQ291bnQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSZXNvdXJjZUNvbmZpZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1N1YmZyYW1lQ29uZmlnOw0KKyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BjOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3WmVyb1R4UG93ZXJDc2lSc0ZsYWc7DQorICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3WmVyb1R4UG93ZXJSZXNvdXJjZUNvbmZpZ0xpc3Q7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdaZXJvVHhQb3dlclN1YmZyYW1lQ29uZmlnOw0KK30gVF96UFNfTFRFX1BfQ3NpUnNDb25maWc7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Nyc0FudGVubmFQb3J0QXA7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTcnNCYW5kV2lkdGhDb25maWdBcDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXFEb21haW5Qb3NBcDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RyYW5zQ29tYkFwOw0KKyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0N5Y2xpY1NoaWZ0QXA7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK30gVF96UFNfTFRFX1BfU3JzQ29uZmlnQXA7IA0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDdHJsRmxhZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Nyc0NvbmZpZ0luZGV4QXA7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTcnNDb25maWdBcERjaUZvcm1hdDROdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nMDsNCisgICAgDQorICAgIFRfelBTX0xURV9QX1Nyc0NvbmZpZ0FwICAgICAgICAgICAgIHRTcnNDb25maWdBcFtaUFNfTFRFX1BfTUFYX1NSU19DRkdfTlVNXTsNCisNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Nyc0FjdGl2YXRlQXBDdHJsRmxhZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdQYWRkaW5nMTsNCisgICAgDQorICAgIFRfelBTX0xURV9QX1Nyc0NvbmZpZ0FwICAgICAgICAgICAgIHRTcnNDb25maWdBcERjaUZvcm1hdDA7DQorICAgIFRfelBTX0xURV9QX1Nyc0NvbmZpZ0FwICAgICAgICAgICAgIHRTcnNDb25maWdBcERjaUZvcm1hdDFhMmIyYzsNCit9IFRfelBTX0xURV9QX1Nyc1VsQ29uZmlnRGVkaUFwOw0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1AwTm9taW5hbFB1c2NoOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWxwaGE7ICAgIA0KK30gVF96UFNfTFRFX1BfVXBsaW5rUHdyQ250bENvbW1vblNDZWxsOyANCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3Jvc3NTY2hlZHVsaW5nQ2VsbEluZm9JbmQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDaWZQcmVzZW5jZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd090aGVyQ2VsbFNjaGVkdWxpbmdDZWxsSWRJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd090aGVyQ2VsbFNjaGVkdWxpbmdQZHNjaFN0YXJ0Ow0KK30gVF96UFNfTFRFX1BfQ3Jvc3NTY2hlZHVsaW5nQ29uZmlnOyANCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UDBVZVB1c2NoOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFNY3NFbmFibGVkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWNjdW11bGF0aW9uRW5hYmxlZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BzcnNPZmZzZXQ7DQorDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQc3JzT2Zmc2V0QXA7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGaWx0ZXJDb2VmZmljaWVudDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhdGhsb3NzUmVmZXJlbmNlTGlua2luZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfSBUX3pQU19MVEVfUF9VbFBvd2VyQ3RybERlZGlTQ2VsbDsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3FpUHVjY2hSZXNvdXJjZUluZGV4Ow0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3FpUHVjY2hSZXNvdXJjZUluZGV4UDE7DQorICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3FpUG1pQ29uZmlnSW5kZXg7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDcWlGb3JtYXRJbmRyUGVyaW9kaWNUeXBlOw0KKyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1dpZGVCYW5kQ3NpUnB0TW9kZTsgICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U3ViYmFuZENxaUs7DQorICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U3ViYmFuZENxaVBlcmlvZGljaXR5RmFjdG9yOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmlDb25maWdJbmRleDsgICANCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTaW11bEFja05hY2tBbmRDUUk7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDcWlNYXNrOyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NzaUNvbmZpZ0luZGV4RmxhZzsgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NxaVBtaUNvbmZpZ0luZGV4MjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JpQ29uZmlnSW5kZXgyOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9IFRfelBTX0xURV9QX0NxaVJlcG9ydFBlcmlvZGljQ29uZmlnOyANCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3FpUmVwb3J0TW9kZUFwZXJpb2RpYzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd05vbVBkc2NoUnNFcHJlT2Zmc2V0Ow0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UG1pUmlScHQ7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3FpUmVwb3J0UGVyaW9kaWNGbGFnOw0KKw0KKyAgICBUX3pQU19MVEVfUF9DcWlSZXBvcnRQZXJpb2RpY0NvbmZpZyB0Q3FpUmVwb3J0UGVyaW9kaWM7DQorfSBUX3pQU19MVEVfUF9DcWlSZXBvcnRDb25maWdTQ2VsbDsgDQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RsQmFuZFdpZHRoOyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FudGVubmFQb3J0c0NvdW50IDsgDQorDQorICAgIFRfelBTX0xURV9QX01ic2ZuU3ViZnJhbWVDb25maWdMaXN0IHRNYnNmblN1YmZyYW1lQ29uZmlnTGlzdDsNCisNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BoaWNoRHVyYXRpb247DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQaGljaFJlc291cmNlOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGxSZWZlclNpZ25hbFBvd2VyOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGI7DQorDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZGRDb25maWdDdHJsRmxhZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1N1YkZyYW1lQXNzaWduOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U3BlY2lhbFN1YkZyYW1lUGF0dGVybnM7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVbENvbmZpZ0N0cmxGbGFnOw0KKw0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd1VsRWFyZmNuOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWxCYW5kV2lkdGg7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBZGRpdGlvbmFsU3BlY3RydW1FbWlzc2lvbjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BlTWF4OyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmcxOw0KKw0KKyAgICBUX3pQU19MVEVfUF9VcGxpbmtQd3JDbnRsQ29tbW9uU0NlbGwgICAgdFVwbGlua1B3ckNudGxDb21tb25TQ2VsbDsNCisgICAgVF96UFNfTFRFX1BfU3JzVWxDb25maWdDb21tICAgICAgICAgICAgIHRTcnNVbENvbmZpZ0NvbW07DQorICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWxDcExlbjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByYWNoQ29uZmlnSW5kZXg7DQorDQorICAgIFRfelBTX0xURV9QX1B1c2NoQ29uZmlnQ29tbSAgICAgICAgIHRQdXNjaENvbmZpZ0NvbW07DQorfSBUX3pQU19MVEVfUF9TQ2VsbENvbmZpZ0NvbW07IA0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBbnRlbkluZm9EZWRpRmxhZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0Nyb3NzU2NoZWR1bGluZ0NvbmZpZ0ZsYWc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDc2lSc0NvbmZpZ0ZsYWc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVbFBvd2VyQ3RybERlZGlTQ2VsbEZsYWc7DQorICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3FpUmVwb3J0Q29uZmlnU0NlbGxGbGFnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzA7DQorDQorICAgIFRfelBTX0xURV9QX0FudGVuSW5mb0RlZGkgICAgICAgICAgIHRBbnRlbkluZm9EZWRpOyANCisgICAgVF96UFNfTFRFX1BfQ3Jvc3NTY2hlZHVsaW5nQ29uZmlnICAgdENyb3NzU2NoZWR1bGluZ0NvbmZpZzsNCisgICAgVF96UFNfTFRFX1BfQ3NpUnNDb25maWcgICAgICAgICAgICAgdENzaVJzQ29uZmlnOw0KKyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3R3JvdXBIb3BwaW5nRGlzYWJsZWRGbGFnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RG1yc1dpdGhPY2NBY3RpdmF0ZWRGbGFnOyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmcxOw0KKw0KKyAgICBUX3pQU19MVEVfUF9VbFBvd2VyQ3RybERlZGlTQ2VsbCAgICB0VWxQb3dlckN0cmxEZWRpU0NlbGw7ICANCisgICAgVF96UFNfTFRFX1BfQ3FpUmVwb3J0Q29uZmlnU0NlbGwgICAgdENxaVJlcG9ydENvbmZpZ1NDZWxsOyAgDQorICAgIFRfelBTX0xURV9QX1Nyc1VsQ29uZmlnRGVkaSAgICAgICAgIHRTcnNVbENvbmZpZ0RlZGkgIDsNCisgICAgVF96UFNfTFRFX1BfU3JzVWxDb25maWdEZWRpQXAgICAgICAgdFNyc1VsQ29uZmlnRGVkaUFwOyANCit9IFRfelBTX0xURV9QX1NDZWxsQ29uZmlnRGVkaTsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U0NlbGxJbmRleDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NDZWxsSWRGbGFnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U0NlbGxQY2k7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsgDQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR3RGxFYXJmY247DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTQ2VsbENvbW1vbkNmZ0ZsYWc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTQ2VsbERlZGljYXRlQ2ZnRmxhZzsNCisgICAgDQorICAgIFRfelBTX0xURV9QX1NDZWxsQ29uZmlnQ29tbSAgICAgICB0U0NlbGxDb21tb25DZmc7ICAgDQorICAgIFRfelBTX0xURV9QX1NDZWxsQ29uZmlnRGVkaSAgICAgICAgIHRTQ2VsbERlZGljYXRlQ2ZnOw0KK30gVF96UFNfTFRFX1BfU0NlbGxBZGRNb2RDb25maWc7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTQ2VsbFRvUmVsZWFzZU51bTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NDZWxsVG9BZGRNb2ROdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTQ2VsbFRvUmVsZWFzZUxpc3RbWlBTX0xURV9QX01BWF9TQ0VMTF9OVU1dOw0KKyAgICBUX3pQU19MVEVfUF9TQ2VsbEFkZE1vZENvbmZpZyAgICAgICB0U0NlbGxUb0FkZE1vZExpc3RbWlBTX0xURV9QX01BWF9TQ0VMTF9OVU1dOw0KK30gVF96UFNfTFRFX1BfU0NlbGxDb25maWc7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgICAgICAgICAgIHdDcWlSZXBvcnRBUGVyaW9kaWNGbGFnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgd0NxaVJlcG9ydE1vZGVBcGVyaW9kaWM7DQorICAgIFdPUkQgICAgICAgICAgICAgICB3QVBlcmlvZGljQ3NpVHJpZ2dlckZsYWc7DQorICAgIFdPUkQgICAgICAgICAgICAgICB3QVBlcmlvZGljQ3NpVHJpZ2dlcjsNCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICB3Tm9tUGRzY2hSc0VwcmVPZmZzZXQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICB3Q3FpUmVwb3J0UGVyaW9kaWNGbGFnOw0KKw0KKyAgICBUX3pQU19MVEVfUF9DcWlSZXBvcnRQZXJpb2RpY0NvbmZpZyAgICAgdENxaVJlcG9ydFBlcmlvZGljOw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgd1BtaVJpUnB0OyANCisgICAgV09SRCAgICAgICAgICAgICAgIHdDc2lTdWJmcmFtZVBhdHRlcm5Db25maWdGbGFnOw0KKw0KKyAgICBUX3pQU19MVEVfUF9NZWFzU3ViZnJhbWVQYXR0ZXJuICAgICAgICAgYXRDc2lNZWFzU3ViZnJhbWVTZXRbWlBTX0xURV9QX01BWF9DU0lfTUVBU19TRl9QQVRURVJOX05VTV07DQorICAgIFdPUkQgICAgICAgICAgICAgICB3U2ltdWx0YW5lb3VzQWNrTmFja0FuZENxaUZvcm1hdDNGbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9IFRfelBTX0xURV9QX0NxaVJlcG9ydENvbmZpZzsgDQorDQorDQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdNX1RNU0k7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNbWVjOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96UFNfTFRFX1BfU19UTVNJOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3TGlzdFsyMV07DQorfVRfelBTX0xURV9QX0lNU0k7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQorew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgIHdJbXNpRXhpc3RGbGc7LyrWuMq+SU1TScrHt/G05tTao6zIoda1MTpJTVNJtObU2qO7MDpJTVNJsru05tTaKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3U1Rtc2lFeGlzdEZsZzsvKta4yr5TLVRNU0nKx7fxtObU2qOsyKHWtTE6Uy1UTVNJtObU2qO7MDpTLVRNU0myu7Tm1NoqLw0KKw0KKyAgICBUX3pQU19MVEVfUF9JTVNJICAgICAgICB0SW1zaTsNCisgICAgVF96UFNfTFRFX1BfU19UTVNJICAgIHRTVG1zaTsNCit9IFRfelBTX0xURV9QX1VlSWQ7ICANCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBSUkPF5NbDRVBIWSBJRExFzKzO3s/f18rUtLLOyv2jrNb30qqw/LqszajTw8Xk1sPQxc+iICAgICAgICAgICAgICAgICAgICoNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgLyoNCisgICAgIMih1rW3ts6no7oxfjMyDQorICAgICC1yM2s0K3S6bLOyv2jukFkZGl0aW9uYWxTcGVjdHJ1bUVtaXNzaW9uDQorICAgICCyzsr908PNvqO6cmVsYXRlZCB0byBJRSBBZGRpdGlvbmFsU3BlY3RydW1FbWlzc2lvbiBhcmUgZGVmaW5lZCBpbiBUUyAzNi4xMDEgWzQyLCB0YWJsZSA2LjIuNC0xXaGjDQorICAgIM6qwcu89cnZTFRFIFVFyc/Q0LbUxuTL+8+1zbO1xLmmwsq4ycjFo6xVRb/J0tTU2tfutPO3osvNuabCyrXEu/m0ocnPo6yw0dfutPO3osvNuabCyrz10KFuZGKjrA0KKyAgICBuuPm+3UFkZGl0aW9uYWxTcGVjdHJ1bUVtaXNzaW9usumx7bXDtb2hoyAgICANCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBZGRpdGlvbmFsU3BlY3RydW1FbWlzc2lvbjsNCisgICAgLyoNCisgICAgIMih1rW3ts6no7pbLTMwLi4zMykgICwgUFPPwreitcSyzsr91rXU2tXmyrXWtcnPKzMwo6yyzsr9yKHWtbe2zqejujB+NjMNCisgICAgILXIzazQrdLpss7K/aO6UEVNQVgNCisgICAgILLOyv3Tw82+o7rQrdLp1bvF5NbDtcRVRdfutPO3osnkuabCyiAgICANCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQZU1heDsNCisgICAgLyoNCisgICAgIMih1rW3ts6no7owfjYNCisgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgILLOyv3Tw82+o7pURES1xFVML0RM19PWocXk1sPA4NDNICAgIA0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1N1YkZyYW1lQXNzaWduOw0KKyAgICANCisNCisgICAgLyoNCisgICAgIMih1rW3ts6no7owfjgNCisgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgILLOyv3Tw82+o7pURES1xMzYyuLX09ahtcRwYXR0ZXJuICAgIA0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NwZWNpYWxTdWJGcmFtZVBhdHRlcm5zOw0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejujDOqkxFTjGjqG5vcm1hbCBjeWNsaWMgcHJlZml4o6mjrDHOqkxFTjKjqGV4dGVuZGVkIGN5Y2xpYyBwcmVmaXijqQ0KKyAgICAgtcjNrNCt0umyzsr9o7rO3g0KKyAgICAgss7K/dPDzb6jusnP0NDRrbu3x7DXurOktsggICAgDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWxDcExlbjsNCisgICAgLyoNCisgICAgIMih1rW3ts6no7ozMqOsNjSjrDEyOKOsMjU2o6htc6OpDQorICAgICC1yM2s0K3S6bLOyv2jus7eDQorICAgICCyzsr908PNvqO6xKzIz7XE0bC69NbcxtogICAgDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVmYXVsdFBhZ2VDeWNsZTsNCisgICAgLyoNCisgICAgIMih1rW3ts6no7owfjEwMjMNCisgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgILLOyv3Tw82+o7pVRV9JRKOs0bC69LzGy+O1yNDo0qrKudPDo6zTw9Pax/i31rK7zaxVRSAgICANCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVZUlkOw0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejutXmyrXWtc6qe2ZvdXJULCB0d29ULCBvbmVULCBoYWxmVCwgcXVhcnRlclQsIG9uZUVpZ2h0VCxvblNpeHRlZW50aFQsIG9uZVRoaXJ0eVNlY29uZFR9LCANCisgICAgVLT6se3RsLr01tzG2qOsUFPPwreitcSyzsr91rW3ts6nzqowfjejrLfWsfC21NOm0tTJzzjW1sih1rWhow0KKyAgICAgtcjNrNCt0umyzsr9o7rO3g0KKyAgICAgss7K/dPDzb6jutPD09q8xsvj0bC69Mqxu/q1xLLOyv0gICAgDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TmI7DQorICAgIC8qDQorICAgICDIoda1t7bOp6O6Wy02MKOsNTBdZGJtICwgUFPPwreitcSyzsr91rXU2tXmyrXWtcnPKzYwo6yyzsr9yKHWtbe2zqejujB+MTEwDQorICAgICC1yM2s0K3S6bLOyv2jus7eDQorICAgICCyzsr908PNvqO6z8LQ0LLOv7zQxbrFuabCyg0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RsUmVmZXJTaWduYWxQb3dlciA7DQorICAgIC8qDQorICAgICDIoda1t7bOp6O6MH4zDQorICAgICC1yM2s0K3S6bLOyv2julBiIA0KKyAgICAgss7K/dPDzb6julBEU0NI0KHH+M/gudiyzsr9o6zTw9Paz8LQ0Lmmwsq8xsvjo6xUUyAzNi4yMTMgWzIzLCBUYWJsZSA1LjItMV0NCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYjsNCisgICAgLyoNCisgICAgIMih1rW3ts6no7oxLCAyLCAzLCA0LCA2LCA4LCAxMCwgMjANCisgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgILLOyv3Tw82+o7pFUEhZvOyy4rW9TjMxMLTOyqeyvbrzo6zJz7GoWlBTX0xURV9QX09VVF9PRl9TWU5DX0lORF9Fds/7z6K4+EVVUlJDICAgIA0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd04zMTA7DQorICAgIC8qDQorICAgICDIoda1t7bOp6O6MSwgMiwgMywgNCwgNSwgNiwgOCwgMTANCisgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgILLOyv3Tw82+o7pFUEhZvOyy4rW9TjMxMbTOzayyvbrzo6zJz7GoWlBTX0xURV9QX1JFQ09WRVJZX1NZTkNfSU5EX0V2z/vPorj4RVVSUkMgICAgDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TjMxMTsNCisgICAgLyoNCisgICAgIMih1rW3ts6no7oxo6zWuMq+RVBIWdekwfSjuzCjrNa4yr5FUEhZsru9+NDQ16TB9A0KKyAgICAgtcjNrNCt0umyzsr9o7rO3g0KKyAgICAgss7K/dPDzb6jutekwfTWuMq+o6zWuMq+VUXKx7fx16TB9LW9uMPP+8+i1ri2qLXE0KHH+KGjDQorICAgIDEgse3KvtLUsb7P+8+i1tC1xGNlbGwgzqq3/s7x0KHH+KOssb7P+8+iu+G0pbeiUEhZtcTXpMH00KHH+LrN17TMrMeo0sajuyANCisgICAgMKOs1PLIz86quMPP+8+i1rvKx9PD09qyzsr9tcS4/NDCo6y3/s7x0KHH+LK70OjSqrjEseShoyAgICANCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDYW1wSW5kOw0KKw0KKyNpZmRlZiBCVFJVTktfU1VQUE9SVA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1N1cHBvcnRCdHJ1bmtpbmc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHBjaEN5Y2xlOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyYW1lTnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1N1YkZyYW1lTnVtOw0KKyNlbmRpZg0KKw0KKw0KKyAgICBUX3pQU19MVEVfUF9QaHlDZWxsSW5mbyAgICAgICAgICAgdFBoeUNlbGxJbmZvOw0KKyAgICBUX3pQU19MVEVfUF9QaHlSYUNvbmZpZyAgICAgICAgICAgdFBoeVJhQ29uZmlnOw0KKyAgICBUX3pQU19MVEVfUF9QdXNjaENvbmZpZ0NvbW0gICAgICAgdFB1c2NoQ29uZmlnQ29tbTsNCisgICAgVF96UFNfTFRFX1BfUHVjY2hDb25maWdDb21tICAgICAgIHRQdWNjaENvbmZpZ0NvbW0gOw0KKyAgICBUX3pQU19MVEVfUF9TcnNVbENvbmZpZ0NvbW0gICAgICAgdFNyc1VsQ29uZmlnQ29tbTsNCisgICAgVF96UFNfTFRFX1BfVWxQb3dlckN0cmxDb21tICAgICAgIHRVbFBvd2VyQ3RybENvbW07DQorICAgIFRfelBTX0xURV9QX01ic2ZuU3ViZnJhbWVDb25maWdMaXN0ICAgICB0TWJzZm5TdWJmcmFtZUNvbmZpZ0xpc3Q7DQorICAgIA0KKyAgICBUX3pQU19MVEVfUF9VZUlkICAgICAgICAgICAgICAgICAgICAgICAgdFVlSWQ7DQorICAgIERXT1JEICAgIGR3Q2VsbElkOyAvL3NpYjHW0NChx/hpZA0KKyAgICBEV09SRCAgICBkd1BMTU47IC8qILWxx7DQocf4tcTW91BMTU4sUFOwtNXVTUNDMSBNQ0MyIE1DQzMgTU5DMSBNTkMyIE1OQzMgxrS907PJvt/M5bXENc67u/I2zrsoTU5DM7/JxNzDu9PQKcquvfjWxsr919YNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICC+2cD9OlBMTU7OqjQ2MDAwo6zU8mR3UExNTta1vs21yNPay8TN8sH5O1BMTU7OqjQ2MDAwMaOs1PJkd1BMTU7Wtb7NtcjT2svEyq7B+c3ywePSuyovDQorICAgIA0KK30gVF96UFNfTFRFX1BfQ29tbW9uQ29uZmlnX1JlcTsgDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogUlJDxeTWw0VQSFkgQ09OTkVDVMyszt7P39fK1LSyzsr9o6zW99KqsPy6rM2o08PS1Lyw16jTw8Xk1sPQxc+io6wgICAgICAqDQorICogzu/A7bLjvdPK1bW9uMPP+8+i0tS686Osv8nS1L+qyry9+NDQyc/PwtDQyv2+3dDFtcC1xL3TytUgICAgICAgICAgICAgICAqDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIC8qDQorICAgIDGjutbYxeTWw6OsMKO6xeTWww0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JlQ29uZmlnRmxhZzsgIC8v0MLU9rLOyv0gIA0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejuiAxo7pUVEmw87aoo7sgMKO6t8dUVEmw87aoDQorICAgICC1yM2s0K3S6bLOyv2jus7eDQorICAgICCyzsr908PNvqO6yc/Q0LSryuRUVEmw87ao1rjKviAgICANCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUdGlCdW5kbGluZ0luZDsNCisgICAgLyoNCisgICAgIMih1rW3ts6no7puMSwgbjIsIG4zLCBuNCwgbjUsIG42LCBuNywgbjgsIG4xMCwgbjEyLCBuMTYsIG4yMCwgbjI0LCBuMjgNCisgICAgyKHWtTB4RkbKsc6qzt7Qp6OsIG60+rHtt6LLzbTOyv2juw0KKyAgICAgtcjNrNCt0umyzsr9o7ptYXhIQVJRLVR4DQorICAgICCyzsr908PNvqO6SEFSUb34s8zX7rTzt6LLzbTOyv0gICAgDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWF4SGFycVR4Ow0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejunsgLTYsIC00Ljc3LCAtMywgLTEuNzcsIDAsIDEsIDIsIDN9IGRCDQorICAgIFBTz8K3orXEss7K/bXEyKHWtc6qezCjrDGjrDKjrDOjrDSjrDWjrDajrDd9o6y31rHwttTTpsnPyvbV5sq11rUNCisgICAgILXIzazQrdLpss7K/aO6IA0KKyAgICAgss7K/dPDzb6jus/C0NC5psLKv9jWxsq508Oyzsr9o6xUUyAzNi4yMTMgWzUuMl0gICAgIA0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhOw0KKyAgICAgICAgICAgICAgICAgICAgICAgIA0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejujB+Nw0KKyAgICAgss7K/dPDzb6julNSt6LLzdfo1rm2qMqxxvcssdzD4tK7ts7KsbzkxNrGtbext6LLzVNSICAgICANCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTclByb2hpYml0VGltZXI7DQorICAgIC8qDQorICAgICDIoda1t7bOp6O6MX5GRkYzDQorICAgICC1yM2s0K3S6bLOyv2jus7eDQorICAgICCyzsr908PNvqO6U1BTIEMgUk5USSDIoda1ICAgIA0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Nwc0NSbnRpOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorDQorICAgIFRfelBTX0xURV9QX1Nwc0NvbmZpZ0RsICAgICAgICAgICB0U3BzQ29uZmlnRGwgOw0KKyAgICBUX3pQU19MVEVfUF9TcHNDb25maWdVbCAgICAgICAgICAgdFNwc0NvbmZpZ1VsIDsNCisgICAgVF96UFNfTFRFX1BfRHJ4Q29uZmlnICAgICAgICAgICAgIHREcnhDb25maWc7DQorICAgIFRfelBTX0xURV9QX1B1c2NoQ29uZmlnRGVkaSAgICAgICB0UHVzY2hDb25maWdEZWRpOw0KKyAgICBUX3pQU19MVEVfUF9QdWNjaENvbmZpZ0RlZGkgICAgICAgdFB1Y2NoQ29uZmlnRGVkaTsNCisgICAgVF96UFNfTFRFX1BfU3JzVWxDb25maWdEZWRpICAgICAgIHRTcnNVbENvbmZpZ0RlZGk7DQorICAgIFRfelBTX0xURV9QX1VsUG93ZXJDdHJsRGVkaSAgICAgICB0VWxQb3dlckN0cmxEZWRpOw0KKyAgICBUX3pQU19MVEVfUF9UcGNQZGNjaENvbmZpZyAgICAgICAgdFRwY1BkY2NoQ29uZmlnUHVjY2g7DQorICAgIFRfelBTX0xURV9QX1RwY1BkY2NoQ29uZmlnICAgICAgICB0VHBjUGRjY2hDb25maWdQdXNjaDsNCisgICAgVF96UFNfTFRFX1BfQ3FpUmVwb3J0Q29uZmlnICAgICAgIHRDcWlSZXBvcnRpbmc7DQorICAgIFRfelBTX0xURV9QX0FudGVuSW5mb0RlZGkgICAgICAgICB0QW50ZW5JbmZvRGVkaTsNCisgICAgVF96UFNfTFRFX1BfU3JDb25maWcgICAgICAgICAgICAgIHRTckNvbmZpZzsNCisgICAgVF96UFNfTFRFX1BfVGltZXJDb25maWcgICAgICAgICAgIHRUaW1lckNvbmZpZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2lmUHJlc2VuY2U7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FkZGl0aW9uYWxTcGVjdHJ1bUVtaXNzaW9uQ2FUeXBlOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBZGRpdGlvbmFsU3BlY3RydW1FbWlzc2lvblBDZWxsOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTY2VsbERlYWN0aXZhdGlvblRpbWVyOw0KKw0KKyAgICBUX3pQU19MVEVfUF9NZWFzU3ViZnJhbWVQYXR0ZXJuUGNlbGwgICAgdE1lYXNTdWJmcmFtZVBhdHRlcm5QY2VsbDsNCisgICAgVF96UFNfTFRFX1BfQ3NpUnNDb25maWcgICAgICAgICAgICAgICAgIHRDc2lSc0NvbmZpZzsNCisgICAgVF96UFNfTFRFX1BfU3JzVWxDb25maWdEZWRpQXAgICAgICAgICAgIHRTcnNVbENvbmZpZ0RlZGlBcDsNCisgICAgVF96UFNfTFRFX1BfU0NlbGxDb25maWcgICAgICAgICAgICAgICAgIHRTQ2VsbENvbmZpZzsNCit9IFRfelBTX0xURV9QX0RlZGljYXRlZENvbmZpZ19SZXE7IA0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KK1JSQ8Xk1sNFUEhZIENPTk5FQ1TMrM7ez9/XytS0ss7K/aOs1vfSqrD8uqzNqNPD0tS8sNeo08PF5NbD0MXPog0KK9b30qrTw9Pax9C7u7OhvrAu0qrH80VQSFnNrLK9xL+x6tChx/ijrM2ssr2zybmmu/LKp7DcuvOjrLe1u9jH0Lu7yLfIz8/7z6IqDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgLyoNCisgICAgIMih1rW3ts6no7ogMaO6VFRJsPO2qKO7IDCjurfHVFRJsPO2qA0KKyAgICAgtcjNrNCt0umyzsr9o7p0dGlCdW5kbGluZ6Osss68+1RTIDM2LjMzMSA2LjMuMiBNQUMtTWFpbkNvbmZpZyBmaWVsZCBkZXNjcmlwdGlvbnMNCisgICAgILLOyv3Tw82+o7rPwtDQVFRJsPO2qNa4yr6jrLHt1ffPwtDQyv2+3bXEQUNLL05BQ0u3tMChyse38bLJ08NUVEkgYnVuZGluZyDEo8q9o6wNCisgICAgvfa99srK08PT2s/C0NDX09ahyv3Ev7Tz09rJz9DQ19PWocr9xL+1xLK7ttSzxsXk1sOjqDKjrDOjrDSjrDWjqaGjss68+1RTIDM2LjIxMy0xMC4xICAgIA0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1R0aUJ1bmRpbmdJbmQ7DQorICAgIC8qDQorICAgICDIoda1t7bOp6O6MHgwMDAxIKGrIDB4RkZGM6Osss68+1RTIDM2LjMyMS03LjENCisgICAgILXIzazQrdLpss7K/aO6Qy1STlRJDQorICAgICCyzsr908PNvqO6Q2VsbCBSTlRJo6zTw9Paz8LQ0MG0wre1xLzTyMWz9cq80PLB0NGh1PGjrA0KKyAgICCz0NTYxtXNqM/C0NDK/b7dtcRQRFNDSNDFtcC21NOmtcRQRENDSCDQxbXARENJyv2+3UNSQ7XEvNPR2rSmwO2jrCAgICANCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDUm50aTsNCisgICAgLyoNCisgICAgIMih1rW3ts6no7oweDAwMDEgoasgMHhGRkYzo6yyzrz7VFMgMzYuMzIxLTcuMQ0KKyAgICAgtcjNrNCt0umyzsr9o7pTZW1pLVBlcnNpc3RlbnQtU2NoZWR1bGUgUk5USSAgICANCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTcHNDUm50aTsNCisgICAgLyoNCisgICAgIMih1rW3ts6no7oxoaszMg0KKyAgICAgtcjNrNCt0umyzsr9o7pBZGRpdGlvbmFsU3BlY3RydW1FbWlzc2lvbqOsss68+1RTIDM2LjMzMSA2LjMuNA0KKyAgICAgss7K/dPDzb6jusa1xte3osvNuabCys/e1sajrNPD09rP3tbGVUW1xNfutPO3osvNuabCytLUvLC21Ma1tPjN4rXEuabCyrjJyMWjv6O/DQorICAgILLOvPtUUyAzNi4xMDEgWzQyLCB0YWJsZSA2LjIuNC0xXSAgICANCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBZGRpdGlvbmFsU3BlY3RydW1FbWlzc2lvbjsNCisgICAgLyoNCisgICAgIMih1rW3ts6no7puMSwgbjIsIG4zLCBuNCwgbjUsIG42LCBuNywgbjgsIG4xMCwgbjEyLCBuMTYsIG4yMCwgbjI0LCBuMjijrMih1rUweEZGyrHOqs7e0KcNCisgICAgILXIzazQrdLpss7K/aO6bWF4SEFSUS1UeKOsss68+1RTIDM2LjMzMSA2LjMuMiBNQUMtTWFpbkNvbmZpZyBmaWVsZCBkZXNjcmlwdGlvbnMNCisgICAgILLOyv3Tw82+o7rWuLaosb60zlJSQ8GsvdPJz9DQSEFSUbXE1+6087eiy820zsr9oaMgICAgDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWF4SGFycVR4Ow0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejulstNjCjrDUwXWRibSAsIFBTz8K3orXEss7K/da11NrV5sq11rXJzys2MCC21NOmMKGrMTEwDQorICAgICC1yM2s0K3S6bLOyv2junJlZmVyZW5jZVNpZ25hbFBvd2Vyo6yyzrz7IFRTIDM2LjMzMSAgNi4zLjIgUERTQ0gtQ29uZmlnDQorICAgICCyzsr908PNvqO6z8LQ0LLOyv3QxbrFtcS5psLKtPPQoaOs08PT2sK3y/C1xLnAvMa6zbeiy825psLKtcS8xsvjoaMgICAgDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGxSZWZlclNpZ25hbFBvd2VyOw0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejunswo6wxo6wyo6wzo6w0o6w1o6w2o6w3fSC21NOm1ebKtda1zqp7IC02LCAtNC43NywgLTMsIC0xLjc3LCAwLCAxLCAyLCAzfSBkQg0KKyAgICAgtcjNrNCt0umyzsr9o7pQYSAsss68+yBUUyAzNi4zMzEgIDYuMy4yIFBEU0NILUNvbmZpZw0KKyAgICAgss7K/dPDzb6julBEU0NI16jTw8Xk1sOyzsr9IFBhLCBVRczYtqiyzsr9o6wgc2VlIFRTIDM2LjIxMyBbMjMsIDUuMl0uIA0KKyAgICBWYWx1ZSBkQi02IGNvcnJlc3BvbmRzIHRvIC02IGRCLCBkQi00ZG90NzcgY29ycmVzcG9uZHMgdG8gLTQuNzcgZEIgZXRjICAgIA0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhOw0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejujB+Mw0KKyAgICAgtcjNrNCt0umyzsr9o7pQYiCjrLLOvPsgVFMgMzYuMzMxICA2LjMuMiBQRFNDSC1Db25maWcNCisgICAgILLOyv3Tw82+o7rTw9PavMbL48/C0NC5psLKt9bF5KOs0KHH+MzYtqiyzsr9o6wgc2VlIFRTIDM2LjIxMyBbMjMsIFRhYmxlIDUuMi0xXS4gICAgDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGI7DQorICAgIC8qDQorICAgICDIoda1t7bOp6O6MH42DQorICAgICC1yM2s0K3S6bLOyv2jus7eo6yyzrz7IFRTMzYuMjExLTQuMqOsIFRhYmxlIDQuMi0yDQorICAgICCyzsr908PNvqO6VEREtcRVTC9ETNfT1qHF5NbDwODQzSAgICANCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTdWJGcmFtZUFzc2lnbjsgIA0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejujChqzgNCisgICAgILXIzazQrdLpss7K/aO6zt6jrLLOvPsgVFMzNi4yMTEtNC4yo6wgVGFibGUgNC4yLTENCisgICAgILLOyv3Tw82+o7pUREQgzNjK4tfT1qG1xMXk1sPA4NDNICAgIA0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NwZWNpYWxTdWJGcmFtZVBhdHRlcm5zOyAgDQorICAgIC8qDQorICAgICDIoda1t7bOp6O6UFPPwreitcSyzsr91rXU2tXmyrXWtcnPKzMwo6yyzsr9yKHWtbe2zqejujB+NjOjrA0KKyAgICAgtcjNrNCt0umyzsr9o7pQLU1heKOsc2VlIFRTIDM2LjMzMSA2LjMuMiANCisgICAgILLOyv3Tw82+o7rQocf41MrQ7bXEVUXX7rTzt6LJ5LmmwspbLTMwfjMzo6lkYm1dDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGVNYXg7DQorICAgIC8qDQorICAgICDIoda1t7bOp6O6MM6qTEVOMaOsMc6qTEVOMg0KKyAgICAgtcjNrNCt0umyzsr9o7pVTC1DeWNsaWNQcmVmaXhMZW5ndGijrLLOvPtUUzM2LjMzMSA2LjMuMiBSYWRpb1Jlc291cmNlQ29uZmlnQ29tbW9uDQorICAgICCyzsr908PNvqO6yc/Q0NGtu7fHsNe6s6S2yCAgICANCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVbENwTGVuOw0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejujDOqtX9s6OjrDHOqsCp1bkNCisgICAgILXIzazQrdLpss7K/aO6UEhJQ0gtRHVyYXRpb26jrLLOvPsgVFMgMzYuMzMxIC0gNi4zLjIgUEhJQ0gtQ29uZmlnDQorICAgICCyzsr908PNvqO6UEhJQ0i31rK8t/u6xbXEuPbK/aOs08PT2rzGy+NQSElDSNDFtcC1xNfK1LTTs8nkLCBzZWUgVFMgMzYuMjExIFsyMSwgVGFibGUgNi45LjMtMV0uIA0KKyAgICDV4rj2ss7K/bPQ1NjU2k1JQtbQo6zSu7Djx+m/9s/C08lQSFnX1Ly6tsHIoaO7IMfQu7vKsc34wuey4Nb3tq/Pwreio7sgICAgDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGhpY2hEdXJhdGlvbjsNCisgICAgLyoNCisgICAgIMih1rW3ts6no7qyzsr9yKHWtc6qMKOsMaOsMqOsM7fWsfC21NOm1ebKtda1ezEvNqOsMS8yo6wxo6wyfQ0KKyAgICAgtcjNrNCt0umyzsr9o7pwaGljaC1SZXNvdXJjZaOsss68+yBUUyAzNi4zMzEgLSA2LjMuMiBQSElDSC1Db25maWcNCisgICAgILLOyv3Tw82+o7ogTmcs08PT2rzGy+NQSElDSCDX6bj2yv2jrCBzZWUgVFMgMzYuMjExIFsyMSwgNi45XS4gDQorICAgIFZhbHVlIG9uZVNpeHRoIGNvcnJlc3BvbmRzIHRvIDEvNiwgaGFsZiBjb3JyZXNwb25kcyB0byAxLzIgYW5kIHNvIG9uLiANCisgICAg1eK49rLOyv2z0NTY1NpNSULW0KOs0ruw48fpv/bPwtPJUEhZ19S8urbByKGjuyDH0Lu7yrHN+MLnsuDW97avz8K3oiAgICANCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQaGljaFJlc291cmNlOw0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejujGjrDKjrDSjrMih1rXOqjB4RkbKx86qzt7Qp9a1DQorICAgICC1yM2s0K3S6bLOyv2jumFudGVubmFQb3J0c0NvdW50o6yyzrz7VFMgMzYuMzMxLTYuMy4yICBBbnRlbm5hSW5mbw0KKyAgICAgss7K/dPDzb6juszsz9+5q7myxeTWw9DFz6KjrNa4tqjQocf4tcTM7M/ftsu/2sr9ICAgIA0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FudGVubmFQb3J0c0NvdW50Ow0KKw0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejujB+Nw0KKyAgICAgss7K/dPDzb6julNSt6LLzdfo1rm2qMqxxvcssdzD4tK7ts7KsbzkxNrGtbext6LLzVNSICAgICANCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTclByb2hpYml0VGltZXI7DQorICAgIC8qDQorICAgICDIoda1t7bOp6O61ebKtda1zqp7Zm91clQsIHR3b1QsIG9uZVQsIGhhbGZULCBxdWFydGVyVCwgb25lRWlnaHRULG9uU2l4dGVlbnRoVCwgb25lVGhpcnR5U2Vjb25kVH0sIA0KKyAgICBUtPqx7dGwuvTW3Mbao6xQU8/Ct6K1xLLOyv3Wtbe2zqfOqjB+N6Ost9ax8LbU06bS1MnPONbWyKHWtaGjyOe5+1NJQjLOqr/Vo6zIoTAtZm91clQNCisgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgILLOyv3Tw82+o7rTw9PavMbL49GwuvTKsbv6tcSyzsr9ICAgIA0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd05iOw0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejujMyo6w2NKOsMTI4o6wyNTajqG1zo6k7yOe5+1NJQjLOqr/Vo6zIodfutPPWtTI1Ng0KKyAgICAgtcjNrNCt0umyzsr9o7rO3g0KKyAgICAgss7K/dPDzb6jusSsyM+1xNGwuvTW3MbaICAgIA0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlZmF1bHRQYWdlQ3ljbGU7DQorICAgIC8qDQorICAgICDIoda1t7bOp6O6MH4xMDIzDQorICAgICC1yM2s0K3S6bLOyv2jus7eDQorICAgICCyzsr908PNvqO6VUVfSUSjrNGwuvS8xsvjtcjQ6NKqyrnTw6Os08PT2sf4t9ayu82sVUUgICAgDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWVJZDsNCisgICAgDQorICAgIFRfelBTX0xURV9QX1BoeUNlbGxJbmZvICAgICAgICAgICAgIHRQaHlDZWxsSW5mbzsNCisgICAgVF96UFNfTFRFX1BfU3BzQ29uZmlnRGwgICAgICAgICAgICAgdFNwc0NvbmZpZ0RsIDsNCisgICAgVF96UFNfTFRFX1BfU3BzQ29uZmlnVWwgICAgICAgICAgICAgdFNwc0NvbmZpZ1VsIDsNCisgICAgVF96UFNfTFRFX1BfRHJ4Q29uZmlnICAgICAgICAgICAgICAgdERyeENvbmZpZzsNCisgICAgVF96UFNfTFRFX1BfUGh5UmFDb25maWcgICAgICAgICAgICAgdFBoeVJhQ29uZmlnOw0KKyAgICBUX3pQU19MVEVfUF9QdXNjaENvbmZpZ0NvbW0gICAgICAgICB0UHVzY2hDb25maWdDb21tOw0KKyAgICBUX3pQU19MVEVfUF9QdWNjaENvbmZpZ0NvbW0gICAgICAgICB0UHVjY2hDb25maWdDb21tIDsNCisgICAgVF96UFNfTFRFX1BfU3JzVWxDb25maWdDb21tICAgICAgICAgdFNyc1VsQ29uZmlnQ29tbTsNCisgICAgVF96UFNfTFRFX1BfVWxQb3dlckN0cmxDb21tICAgICAgICAgdFVsUG93ZXJDdHJsQ29tbTsNCisgICAgVF96UFNfTFRFX1BfUHVzY2hDb25maWdEZWRpICAgICAgICAgdFB1c2NoQ29uZmlnRGVkaTsNCisgICAgVF96UFNfTFRFX1BfUHVjY2hDb25maWdEZWRpICAgICAgICAgdFB1Y2NoQ29uZmlnRGVkaTsNCisgICAgVF96UFNfTFRFX1BfU3JzVWxDb25maWdEZWRpICAgICAgICAgdFNyc1VsQ29uZmlnRGVkaTsNCisgICAgVF96UFNfTFRFX1BfVWxQb3dlckN0cmxEZWRpICAgICAgICAgdFVsUG93ZXJDdHJsRGVkaTsNCisgICAgVF96UFNfTFRFX1BfVHBjUGRjY2hDb25maWcgICAgICAgICAgdFRwY1BkY2NoQ29uZmlnUHVjY2g7DQorICAgIFRfelBTX0xURV9QX1RwY1BkY2NoQ29uZmlnICAgICAgICAgIHRUcGNQZGNjaENvbmZpZ1B1c2NoOw0KKyAgICBUX3pQU19MVEVfUF9DcWlSZXBvcnRDb25maWcgICAgICAgICB0Q3FpUmVwb3J0aW5nOw0KKyAgICBUX3pQU19MVEVfUF9BbnRlbkluZm9EZWRpICAgICAgICAgICB0QW50ZW5JbmZvRGVkaTsNCisgICAgVF96UFNfTFRFX1BfU3JDb25maWcgICAgICAgICAgICAgICAgdFNyQ29uZmlnOw0KKyAgICBUX3pQU19MVEVfUF9UaW1lckNvbmZpZyAgICAgICAgICAgICB0VGltZXJDb25maWc7DQorICAgIFRfelBTX0xURV9QX01ic2ZuU3ViZnJhbWVDb25maWdMaXN0IHRNYnNmblN1YmZyYW1lQ29uZmlnTGlzdDsvL8jnuftTSUIyzqq/1aOswdCx7bOktsjIoTCjrLr2wtTB0LHtxNrI3Q0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2lmUHJlc2VuY2U7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBZGRpdGlvbmFsU3BlY3RydW1FbWlzc2lvbkNhVHlwZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FkZGl0aW9uYWxTcGVjdHJ1bUVtaXNzaW9uUENlbGw7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTY2VsbERlYWN0aXZhdGlvblRpbWVyOw0KKyAgICBUX3pQU19MVEVfUF9NZWFzU3ViZnJhbWVQYXR0ZXJuUGNlbGwgICAgdE1lYXNTdWJmcmFtZVBhdHRlcm5QY2VsbDsNCisgICAgVF96UFNfTFRFX1BfQ3NpUnNDb25maWcgICAgICAgICAgICAgdENzaVJzQ29uZmlnOw0KKyAgICBUX3pQU19MVEVfUF9TcnNVbENvbmZpZ0RlZGlBcCAgICAgICB0U3JzVWxDb25maWdEZWRpQXA7DQorICAgIFRfelBTX0xURV9QX1NDZWxsQ29uZmlnICAgICAgICAgICAgIHRTQ2VsbENvbmZpZyA7DQorICAgIFdPUkQgICAgICAgICB3VDMwNDsgLy9UMzA0yrGzpKOstaXOu21zDQorICAgIFdPUkQgICAgICAgICB3UGFkZGluZzsNCisNCit9IFRfelBTX0xURV9QX0hhbmRvdmVyX1JlcTsNCisNCisvKg0KK0VQSFnJz7GoRUNFUsfQu7u94bn71rjKvg0KKyovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgIC8qDQorICAgICDIoda1t7bOp6O6MTrH0Lu7s8m5piAgIDCjusfQu7vKp7DcDQorICAgICC1yM2s0K3S6bLOyv2jus7eDQorICAgICCyzsr908PNvqO6sai45tCt0unVu1BIWcrHt/G/ydLU0+vEv7Hq0KHH+LvxyKHNrLK9o6wgDQorICAgINK7sOPH6b/2z8KjrFBIWdLRvq278cihwcvEv7Hq0KHH+LXE1qGx373no6zWsb3Tsai45rPJuaa8tL/JoaMgICAgIA0KKyAgICAgKi8NCisgICAgIFdPUkQgICAgICAgd1Jlc3VsdDsNCisgICAgIFdPUkQgICAgICAgd1BhZGRpbmc7DQorfSBUX3pQU19MVEVfUF9IYW5kb3Zlcl9DbmYsVF96UFNfTFRFX1BfTGlzdGVuaW5nSG9fQ25mOw0KKw0KKy8qDQorUlJDway909e0zKyjrFBIWdK71rG84LLizt7P38G0wre1xNDFusXWysG/o6y1scL61+PKp7K9zPW8/sqxo6zJz7Go0K3S6dW7wbTCt8qnsr2how0KK9Do0qq9+NK7sr3D98i30rvPwqO6DQordXBvbiByZWNlaXZpbmcgTjMxMCBjb25zZWN1dGl2ZSAib3V0LW9mLXN5bmMiIGluZGljYXRpb25zIGZyb20gbG93ZXIgbGF5ZXJzIA0KK3doaWxlIG5laXRoZXIgVDMwMCwgVDMwMSwgVDMwNCBub3IgVDMxMSBpcyBydW5uaW5nOg0KKzI+ICAgIHN0YXJ0IHRpbWVyIFQzMTA7DQorTjMxMLTOyqeyvdPJUEhZuLrU8LzGyv2juw0KK1QzMDAsIFQzMDEsIFQzMDQgbm9yIFQzMTEgaXMgcnVubmluZzrLtcP3tKbT2lJSQ8GsvdO9qMGioaLW2L2ov6rKvNChx/jL0cv3oaLW2L2ooaLH0Lu7uf2zzNbQoaMNCivO78DtsuPQ6NKqyLe2qNXi0KnXtMysoaPV4tCp17TMrMqxo6zO78DtsuOyu9Do0qrNs7zGus3Jz7GoyqeyvaGjDQorvajS6c7vwO2y49TatNPV4tCp1N3MrL34yOtDT01NzKzV4rj2zsi2qMysuvOjrLbUyqeyvbzGyv3H5cHj0rvPwqGjDQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCit9IFRfelBTX0xURV9QX091dE9mU3ljX0luZDsNCisqLw0KKw0KKy8qDQorUlJDway909e0zKyjrFBIWb34yOvKp7K917TMrLrzo6zI1Mi70OjSqtK71rG84LLizt7P38G0wre1xNDFusXWysG/o6wNCiu1scL61+O71ri0zayyvcz1vP7KsaOsyc+xqNCt0unVu8G0wre71ri0zayyvaGjo6jA67+qway908ysuvOjrMqnsr3XtMys0qrH5bP9o6kNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KK30gVF96UFNfTFRFX1BfUmVjb3ZlcnlTeW5jX0luZDsNCisqLw0KKw0KKy8qDQor1NpSUkO9qMGiuf2zzNbQo6zI9NLyway907G7vtyholQzMDCzrMqxoaK3osn60KHH+NbY0aG1yNLyy9ijrLW81sK9qMG0yqew3KOsDQor1PK3osvNuMPP+8+iUkVTRVTO78DtsuOhow0KKyovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nMTsNCit9IFRfelBTX0xURV9QX01BQ19SZXNldF9SZXE7DQorDQorLyoNCitFQ0VSzajWqkVQSFnKzbfF18rUtLywxeTWw6OszaPWudGwuvSjrMDrv6rXpNT617TMrA0KKyovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgIC8qILjD19a2zrHtyr7KzbfF18rUtLXEzazKsaOsyse38dDo0qrKzbfFUkYNCisgICAgICAgd1JlbFJmRmxnID0gMbHtyr7Q6NKqt8XJ5Ma1o6wNCisgICAgICAgd1JlbFJmRmxnID0gMLHtyr6yu9Do0qrKzbfFyeTGtaOsvfbKzbfF18rUtCovDQorICAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3UmVsUmZGbGc7IA0KKyAgICAgDQorICAgICAvKiC4w9fWts6x7cq+1NrKzbfFzu/A7bLjxeTWw8qxo6zKx7fx0OjSqrGjwfS3/s7x0KHH+LaoyrHQxc+io6zU2ndSZWxSZkZsZz09MMqx09DQpw0KKyAgICAgICB3S2VlcFNlcnZDZWxsRmxnID0gMLHtyr7Q6NKqys23xcv509DXytS0xeTWw6OsDQorICAgICAgIHdLZWVwU2VydkNlbGxGbGcgPSAxse3KvrK70OjSqsrNt8XQocf40MXPoqOs08PT2sGsvdPMrLvYaWRsZcqxv+zL2dekwfQqLw0KKyAgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd0tlZXBTZXJ2Q2VsbEZsZzsgDQorICAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsgDQorfSBUX3pQU19MVEVfUF9SZWxfUmVxOw0KKw0KKy8qDQorRVBIWbSmwO3N6lpQU19MVEVfUF9SRUxfUkVRX0V2z/vPorrzt7TAobTLyLfIz8/7z6INCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KK30gVF96UFNfTFRFX1BfUmVsX0NuZjsNCisqLw0KKw0KKw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVVTUFD0+tFUEhZtcS907/aICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICAgLyoNCisgICAgIMih1rW3ts6no7pJTlRFR0VSICgwLi4xNSmjrMixyqHKsaOszO7QtDB4RkYNCisgICAgILXIzazQrdLpss7K/aO6MzIxLjUuMS4yIHJhLVBSQUNILU1hc2tJbmRleCAoUFJBQ0ggTWFzayBJbmRleCkNCisgICAgILLOyv3Tw82+o7rN+MLnsuDD98i31ri2qHByZWFtYmxlt6LLzXByYWNoIHJlc291cmNlIHNlbGVjdGlvbtDFz6KhoyAgICAgDQorICAgICAqLw0KKyAgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdSYVByYWNoTWFza0luZGV4Ow0KKyAgICAgLyoNCisgICAgIMih1rW3ts6no7pJTlRFR0VSICgwLi42Mykgo6zIscqhyrGjrMzu0LQweEZGDQorICAgICC1yM2s0K3S6bLOyv2jujMyMS41LjEuMiByYS1QcmVhbWJsZUluZGV4IChSYW5kb20gQWNjZXNzIFByZWFtYmxlKQ0KKyAgICAgss7K/dPDzb6jus34wuey4MP3yLfWuLaocHJlYW1ibGW3osvN0PLB0ElE0MXPoqGjICAgICANCisgICAgICovDQorICAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd1ByZWFtSWQ7DQorICAgICAvKg0KKyAgICAgyKHWtbe2zqejusvmu/q908jrtcTA4NDNo6wwse3KvrfHvrrV+cvmu/q908jro6wNCisgICAgMbHtyr6+utX5veK+9snP0NC3osvNxNrI3c6qQy1STlRJv9jWxtDF1KqjrDKx7cq+VUwgQ0NDSMr9vt07DQorICAgIDMgse3KvtfU1vfH0Lu7tcTXtMyssai45qO7NCCx7cq+vK/IukxURSBVTCBDQ0NIyc/K/b7do6yyu9Do0qpNU0c0Lg0KKyAgICAgtcjNrNCt0umyzsr9o7rO3g0KKyAgICAgss7K/dPDzb6jutCt0unVu7jm1qrO78DtsuO1scewt6LG8LXEy+a7+r3TyOu5/bPMtcTA4NDNoaMgICAgIA0KKyAgICAgKi8NCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3UmFUeXBlOw0KKyAgICAgIC8qDQorICAgICDIoda1t7bOp6O6DQorICAgICC1yM2s0K3S6bLOyv2jus7eDQorICAgICCyzsr908PNvqO6IMex1Nq1xM/7z6KzpLbIo6zTw9PaUEhZyLe2qMewtbzX6UEvQqGjDQorICAgICAqLyAgICANCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3TXNnU2l6ZTsNCisgICAgIC8qDQorICAgICDIoda1t7bOp6O6y+a7+r3TyOu5/bPM08nLrbeixvCjrDCx7cq+yc+y49Ct0unVu7eixvCjrDGx7cq+zu/A7bLjt6LG8A0KKyAgICAgtcjNrNCt0umyzsr9o7rO3g0KKyAgICAgss7K/dPDzb6jurHtyr7L5rv6vdPI67n9s8y3osbw1d+how0KKyAgICAgKi8NCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3SW5pdFJBOw0KKyAgICAgLyoNCisgICAgIMih1rW3ts6no7rKx7fxcmVzZXTP4LnYtcSyzsr9o6zI57eiy825psLKo6zHsLW8t6LLzbzGyv2hozHOqlJFU0VUo6ww1PKyu9Do0qpSRVNFVA0KKyAgICAgtcjNrNCt0umyzsr9o7rO3g0KKyAgICAgss7K/dPDzb6jurHtyr7Kx7fx1tjWw8vmu/q908jruf2zzM/gudiyzsr9oaMNCisgICAgICovDQorICAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd1Jlc2V0UGFyYTsNCisgICAgIC8qDQorICAgICAyMDEwMDMwOSAgYWRkZWQgYnkgaG9uZ2piIA0KKyAgICDI57n7ysdQRENDSMP8we63osbwtcTL5rv6vdPI67n9s8yjrA0KKyAgICCw0TEwLjEuNM/7z6LW0LXE19PWobrF1Nm3orj4UEhZLA0KKyAgICC38dTyz8K3os7e0KfWtTBYRkZGRiAgICDT0NCn19PWobrFt7bOpzAtMTAyNDANCisgICAgICovICAgICAgICAgICANCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3U3ViRk47DQorfSBUX3pQU19MVEVfUF9BY2Nlc3NfUmVxOw0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIC8qDQorICAgIDE6t8e+utX5vdPI67PJuaYgICANCisgICAgMjq+utX5vdPI67PJuaYNCisgICAgMzq+utX5tqjKscb3s6zKscqnsNwNCisgICAgNDrHsLW8t6LLzbTvtb3X7rTz1rU6cHJlYW1ibGVfdHJhbnNfY291bnRlciA9IHByZWFtYmxlVHJhbnNNYXgrMQ0KKyAgICAqLw0KKyAgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdSZXN1bHQ7DQorICAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd1ByZWFtQ250Ow0KKyAgICAgLyoNCisgICAgIMih1rW3ts6no7pCSVQgU1RSSU5HIChTSVpFICgxNikpDQorICAgICC1yM2s0K3S6bLOyv2jujMzMS42LjMuNiBDLVJOVEkNCisgICAgILLOyv3Tw82+o7q+utX5veK+9rPJuaZULUNSTlRJyf28trrzo6xQSFm9q0NSTlRJyc+xqLj4UFOho8O709BDUk5UScnPsajKsaOs0LTI6zB4RkZGRqGjICAgICAgDQorICAgICAqLw0KKyAgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdDUm50aTsNCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9IFRfelBTX0xURV9QX0FjY2Vzc19DbmY7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICBXT1JEICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICAvKiAgICAyMDEwMzA50MLU9rLOyv0NCisgICAg19PWobrFo6zT0NCn1rUwLTEwMjQwo6zO3tCn1rXOqjBYRkZGRg0KKyAgICDV4sDv0LTI68rVtb3PwtDQTVNHNMr9vt3KsbXE19PWobrFDQorICAgICovDQorICAgV09SRCAgICAgICAgICAgICAgd1N1YkZOOyAgIA0KK30gVF96UFNfTFRFX1BfQWJvcnRBY2Nlc3NfUmVxOw0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIC8qDQorICAgICDIoda1t7bOp6O6MH4xNaOsIDB4RkbOqs7e0KfWtQ0KKyAgICAgtcjNrNCt0umyzsr9o7ozMjEuNS4xLjIgcmEtUFJBQ0gtTWFza0luZGV4IChQUkFDSCBNYXNrIEluZGV4KQ0KKyAgICAgss7K/dPDzb6jus34wuey4MP3yLfWuLaocHJlYW1ibGW3osvNcHJhY2ggcmVzb3VyY2Ugc2VsZWN0aW9u0MXPoiAgICANCisgICAgKi8NCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3UmFQcmFjaE1hc2tJbmRleDsNCisgICAgIC8qDQorICAgICDIoda1t7bOp6O6SU5URUdFUiAoMC4uNjMpDQorICAgICC1yM2s0K3S6bLOyv2jujMyMS41LjEuMiByYS1QcmVhbWJsZUluZGV4IChSYW5kb20gQWNjZXNzIFByZWFtYmxlKQ0KKyAgICAgss7K/dPDzb6jus34wuey4MP3yLfWuLaocHJlYW1ibGW3osvN0PLB0ElE0MXPoqGjICAgICANCisgICAgICovDQorICAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd1ByZWFtSWQ7DQorICAgICAvL1dPUkQgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7ICAgMjAxMDMwOSAgvdO/2s7EtbXJvrP9DQorICAgICAgLyogICAgMjAxMDMwOdDC1Payzsr9DQorICAgICAg19PWobrFo6zT0NCn1rUwLTEwMjQwo6zO3tCn1rXOqjBYRkZGRg0KKyAgICAgytW1vVBEQ0NIw/zB7sqxtcTX09ahusUNCisgICAgICAqLw0KKyAgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgIHdTdWJGTjsgICANCisgICAgICBXT1JEICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9IFRfelBTX0xURV9QX01hY0luaXRSYV9SZXE7DQorDQorLyoNCitwc86su6RUQSBUaW1lcqOsxL/HsE1BQ7321NpUQSBUSU1FUrOsyrHNo9a5yrGjrLeiy81aUFNfTFRFX1BfVEFfVElNRVJfU1RPUF9JTkRfRXbP+8+ioaMNCitQSFnK1bW9WlBTX0xURV9QX1RBX0NNRF9SRVFfRXajrMjPzqpUQSBUSU1FUtbY0MLG9LavDQorKi8NCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgIC8qDQorICAgICDIoda1t7bOp6O6MKOsMaGjMKO6Nrj2Yml0o6xUQb/Y1sbQxdSq1tDK1bW9o7sNCisgICAgMaO6MTG49mJpdCwgy+a7+r3TyOvP7NOm1tDK1bW9oaMNCisgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgILLOyv3Tw82+o7qx7cq+VEHWuMHuwLTUtKGjICAgICANCisgICAgICovDQorICAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd1RBQ21kVHlwZTsNCisgICAgIC8qDQorICAgICDIoda1t7bOp6O61NrL5rv6vdPI68/s06bW0KOss6S2yM6qMTG49rHIzNiju9TaVEG/2NbG0MXUqtbQo6yzpLbIzqo2uPaxyMzYoaMNCisgICAgILXIzazQrdLpss7K/aO6VGltaW5nIEFkdmFuY2UgQ29tbWFuZKOsUkFS1tC1xFRBu/LV301BQ7/Y1sbQxdSqDQorICAgICCyzsr908PNvqO6yrG85M2ssr3D/MHu1rUgICAgIA0KKyAgICAgKi8NCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3VGltZUFkdmFuY2U7DQorDQorICAgICAvKiAgMjAxMjAxMDEgILLOyv3Q3rjEyKHWtbe2zqfOqjB+MTAyNDAsINahusUqMTAr19PWobrFDQorICAgICDIoda1t7bOp6O6MH4xMDI0MA0KKyAgICAgtcjNrNCt0umyzsr9o7oNCisgICAgILLOyv3Tw82+o7pQU8rVtb1UQda1tcTKsbzko6y4w8qxvOTNqNaquPhQSFmjrA0KKyAgICDTw9PaUEhZyLe2qFRBtcS908rVyrG85LXaTtfT1qHS1Mi3saPU2rXaTis219PWobX31fvJz9DQt6LLzbaoyrGhoyAgICAgDQorICAgICAqLw0KKyAgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdTdWJGTjsNCit9IFRfelBTX0xURV9QX1RhQ21kX1JlcTsNCisNCisvKg0KK01BQ82o1qpFUEhZ1rTQ0ERSWMP8we4NCis+zaPWuU9uIER1cmF0aW9uIFRpbWVyus1EUlggaW5hY3Rpdml0eSBUaW1lcqGjDQorPsjnufvF5NbDwcu2zERSWNbcxtqjrNTyv6rKvMb0tq+2zERSWNbcxtqjrMfSxvS2r7bMRFJY1tzG2raoyrHG96O7DQort/HU8sb0tq+zpERSWNbcxtqho7bMRFJY1tzG2raoyrHG97OsyrGjrL34yOuzpERSWNbcxtq0psDtoaMNCisqLw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nMTsNCit9IFRfelBTX0xURV9QX0RyeENtZF9SZXE7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgLyoNCisgICAgIMih1rW3ts6no7owzqrNo9a5LDHOqtTL0NANCisgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgILLOyv3Tw82+o7pUQbaoyrHG99PJUFPOrLuko6xQU8/yRVBIWc2o1qpUQbaoyrHG982j1rm1xNSt0vKhow0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0NhdXNlOw0KK30gVF96UFNfTFRFX1BfVEFUaW1lclN0b3BfSW5kOw0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIC8qDQorICAgICDIoda1t7bOp6O6MTFiaXQNCisgICAgILXIzazQrdLpss7K/aO6MzIxLjQuMi4zIHRpbWluZyBhZHZhbmNlIGNvbW1hbmQgVEENCisgICAgILLOyv3Tw82+o7pSQVLV/ci3veLC67rzo6y9q1RB0MXPoreiy824+E1BQ6Gj08PT2rX31fvJz9DQtKvK5MqxvOShow0KKyAgICAqLw0KKyAgICAgICBXT1JEICAgICAgICAgICAgICAgICAgd1RBQ21kOw0KKyAgICAgICAgLyoNCisgICAgICAgIDIwMTAwMzA5ICAg0MLU9rLOyv0gYnkgaG9uZ2piDQorICAgICAgRVBIWcrVtb3L5rv6vdPI68/s06bKsbXE19PWobrFMC0xMDI0MKOsMFhGRkZGzqrO3tCn1rUNCisgICAgICAgICovDQorICAgICAgIFdPUkQgICAgICAgICAgICAgICAgICB3U3ViRk47DQorfSBUX3pQU19MVEVfUF9SYVJlc3BvbnNlX0luZDsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICAvKg0KKyAgICAgyKHWtbe2zqejujB+NDk5DQorICAgICC1yM2s0K3S6bLOyv2jus7eDQorICAgICCyzsr908PNvqO61rjKvk1BQyBQRFUgQlVGs9jW0LXEQlVGtcRpbmRleKOs0rK+zcrHSEFSUb34s8y21NOmtcRidWZmZXK12Na3ICAgIA0KKyAgICAqLw0KKyAgICAgICAvL1dPUkQgICAgICAgICAgICAgICAgICB3TWFjUGR1QnVmSW5kZXg7IA0KKyAgICAgICBXT1JEICAgICAgICAgICAgICAgICAgd1N1YkZOOw0KKyAgICAgICAvKg0KKyAgICAgyKHWtbe2zqejujGjrDINCisgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgILLOyv3Tw82+o7rWuMq+tMu0ztPQvLi49rSryuS/6SAgICAgICANCisgICAgICAgKi8NCisNCisgICAgICAgV09SRCAgICAgICAgICAgICAgICAgIHdUYk51bTsNCisgICAgICAgV09SRCAgICAgICAgICAgICAgICAgIGF3TWFjUGR1QnVmSW5kZXhbWlBTX0xURV9QX01BWF9UQl9OVU1dOyANCisNCisgICAgICAgV09SRCAgICAgICAgICAgICAgICAgIGF3TWFjUGR1TGVuW1pQU19MVEVfUF9NQVhfVEJfTlVNXTsNCisgICAgICAgLyoNCisgICAgIMih1rW3ts6no7pUQkQNCisgICAgILXIzazQrdLpss7K/aO6zt4NCisgICAgILLOyv3Tw82+o7rWuMq+w7+49k1BQyBQRFW05rfFtcS12Na3ICAgICAgIA0KKyAgICAgICAqLw0KKw0KKyAgICAgICBQQllURSAgICAgICAgICAgICAgICAgIGFwYk1hY1BkdURhdGFbWlBTX0xURV9QX01BWF9UQl9OVU1dOw0KK30gVF96UFNfTFRFX1BfRGxTY2hEYXRhX0luZDsNCisNCisvKkthbmdTaHVKaWUgU3RhcnQqLw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICC3vc/yOkwxRS0+RVBIWQ0KKyAgILmmxNw6s/XKvLuvyeTGtSiyorfHuaTX9ymjrMflv9XO78DtsuPXytS0us3NrLK90MXPoqGj08PT2r+qu/rJ5Ma1s/XKvLuvus29+Mjrt8nQ0MSjyr2how0KKyAgIM/7z6KjukxURV9QX1JFU0VUX1JFUV9FVg0KKyAgIL3hubk6VF96UFNfTFRFX1BfUmVzZXRfUmVxDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICB3UGFkZGluZzsNCit9VF96TFRFX1BfUmVzZXRfUmVxOw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICC3vc/yOkVQSFktPkwxRQ0KKyAgILmmxNw6ttRMVEVfUF9SRVNFVF9SRVFfRXa1xM/s06bP+8+ioaPM5rT6TFRFtaXEo8qxtqjS5bXEWlBTX0xURV9QX1NXSVRDSF9SRl9DTkZfRXYNCisgICDP+8+iOkxURV9QX1JFU0VUX0NORl9Fdi4gDQorICAgveG5uTpOVUxMDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICAgt73P8jpFUEhZLT5MMUUNCisgICAguabE3DpMVEXOqtb3tcTKsbryLEVQSFnJz7Gov9XP0MqxvOQsxL/HsL3208PT2klETEXMrM/Co6yyosfSyc+xqLXEv9XP0MqxvOTS0b6tv9uz/cHLRVBIWdPD09oNCisgICAgICAgICDNrMa1us3S7Ma1suLBv8v5yrnTw7XEyrG85LrNRVBIWbnYsdXJ5Ma1y/m6xLfRtcTKsbzkDQorICAgIM/7z6I6TFRFX1BfSU5BQ1RJVkVfVElNRV9JTkRfRVYNCisgICAgveG5uTpUX3pMVEVfUF9JbmFjdGl2ZVRpbWVfSW5kDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIFdPUkQgICAgICAgd0dhcFN0YXJ0U2ZuOyAgICAgICAvKr/Vz9DKsbzktcS/qsq81qG6xSovDQorICAgIFdPUkQgICAgICAgd0dhcFN0YXJ0U3ViZnJhbWU7ICAvKr/Vz9DKsbzktcS/qsq819PWobrFKi8NCisgICAgV09SRCAgICAgICB3R2FwU3RhcnRUczsgICAgICAgIC8qv9XP0MqxvOS1xL+qyrxUU8ar0sYqLw0KKyAgICBXT1JEICAgICAgIHdHYXBNc0xlbjsgICAgICAgICAgLyq/1c/QyrG85LXEusHD67y2s6S2yCovIA0KKyAgICBXT1JEICAgICAgIHdHYXBUc0xlbjsgICAgICAgICAgLyq/1c/QyrG85NbQsrvX4zFNU7XEVFOzpLbIKi8gDQorICAgIFdPUkQgICAgICAgd1BhZGRpbmc7DQorfSBUX3pMVEVfUF9JbmFjdGl2ZVRpbWVfSW5kOw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICAgt73P8jpMMUUtPkVQSFkNCisgICAguabE3DrJ6NbDRVBIWdb3uKjEo8q9DQorICAgIM/7z6I6TFRFX1BfU0VUX01PREVfUkVRX0VWDQorICAgIL3hubk6VF96TFRFX1BfU2V0TW9kZV9SZXENCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICB3SXNNYXN0ZXI7IC8qMTrJ6NbDzqrW98Sjyr07MDrJ6NbDzqq4qMSjyr0qLw0KK30gVF96TFRFX1BfU2V0TW9kZV9SZXE7DQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgILe9z/I6TDFFLT5FUEhZDQorICAgILmmxNw6TFRF1vfEo8q9z8JDT05ORUNURUTMrKOsTDFFvau1scewtcSy4sG/R0FQxKPKvcXk1sO4+M7vwO2y47Ki1rjKvkdBUNDywdDW0MTH0KlHQVDTw9PaTFRFtcSy4sG/DQorICAgIM/7z6I6TFRFX1BfSVJBVF9NRUFTX0dBUF9DT05GSUdfUkVRX0VWDQorICAgIL3hubk6VF96TFRFX1BfSXJhdE1lYXNHYXBDb25maWdfUmVxDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICB3QWN0aXZlOyAgICAgICAgLyogR0FQtcS8pLvu1rjKvqOsMLHtyr7Ipbvuo6wxse3Kvryku+4gKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICB3U3RhcnRTZm47ICAgICAgICAvKiBHQVDQ8sHQxKPQzbXExvDKvFNGTrrFICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgd1N0YXJ0U3ViZnJhbWU7ICAgIC8qIEdBUNDywdDEo9DNtcTG8Mq819PWobrFICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgd0xlbmd0aDsgICAgICAgIC8qIEdBULXEs6S2yKOstaXOu8rH19PWoaOobXOjqSzEv8ewucy2qM6qNm1zICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgd1BlcmlvZDsgICAgICAgIC8qIEdBULXE1ti4tNbcxtqjrLWlzrvKx9fT1qGjqG1zo6kqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgIHdMdGVHYXBQZXJpb2Q7ICAgIC8qINPD09pMVEWy4sG/tcRHQVDW2Li01tzG2qOstaXOu8rH19PWoaOobXOjqbTTsb7F5NbDtcRiU3RhcnRTZm6hondTdGFydFN1YmZyYW1luea2qLXER0FQv6rKvKOsw7+49HdMdGVHYXBQZXJpb2S1xEdBUMrH08PT2kxURbLiwb+1xCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfekxURV9QX0lyYXRNZWFzR2FwQ29uZmlnX1JlcTsNCisNCisvKkthbmdTaHVKaWUgRW5kKi8NCisNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDTw7unw+bP4LnYvdO/2iAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCisvKg0KK1BIWcrVtb3Jz9DQytrIqMqx1NpNQUO197bI0MXPokJVRqOovLRQUy1QSFm9u7u7x/ijqdbQtOa3xcnP0NC197bI0MXPoqOsDQorsqKy+sn6TUFDyc/Q0LX3tsjW0LbPtKW3olBTtNNNQUO197bI0MXPokJVRtbQyKHX37TLyc/Q0LX3tsjQxc+i1rTQ0E1BQ8nP0NC0psDtwfezzKGjDQorw7+49tfT1qHW0LbPo6zSstDo0qrNqLn9tMu6r8r91rjKvk1BQ6OsvfjQ0MO/uPbX09ahtcTQrdLptKbA7aOoyOe5+8O709DJz9DQtfe2yKOs1PLK2siowODQzc6qMKOpDQorKi8NCisjZGVmaW5lIFpQU19MVEVfUF9NQVhfQ0VMTF9OVU0gICAyDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgICAgIHdDZWxsSW5kZXg7DQorICAgIFdPUkQgICAgICAgIHdQdWNjaFRyYW5zOw0KKyAgICBXT1JEICAgICAgICB3VWxTY2hlZFR5cGVbMl07DQorICAgIFdPUkQgICAgICAgIHdVbEdyYW50VGJTaXplWzJdOyANCisgICAgV09SRAkgICAgd0lzU3BzQWN0aXZhdGVkOw0KKyAgICBXT1JEICAgICAgICB3UG93ZXJIZWFkUm9vbVR5cGUxOw0KKyAgICBXT1JEICAgICAgICB3UGF0aExvc3M7DQorICAgIFdPUkQgICAgICAgIHdQb3dlckJhY2tvZmY7DQorICAgIFdPUkQgICAgICAgIHdQb3dlckhlYWRSb29tVHlwZTI7DQorICAgIFdPUkQgICAgICAgIHdQY21heEM7DQorICAgIFBCWVRFICAgICAgIHBiVWxEYXRhUHRyWzJdOw0KK31UX3pQU19MVEVfUF9VbFNjaGVkSW5mb0luZDsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICB3VWxTY2hJbmZvQ250Ow0KKyAgICBXT1JEICAgICB3UGFkZGluZzsNCisgICAgUEJZVEUgICAgcGJVbEN0cmxJbmZvUHRyOw0KKyAgICBUX3pQU19MVEVfUF9VbFNjaGVkSW5mb0luZCAgICAgIHRVbFNjaEluZm9BcnJheVtaUFNfTFRFX1BfTUFYX0NFTExfTlVNXTsNCit9IFRfelBTX0xURV9QX0V4dGVuZGVkVWxTY2hlZEluZm9JbmQ7DQorDQorDQorLyoNCiu1sdPQyc/Q0MrayKjTw9Pa0MLK/b7dt6LLzaOsUFPX6dahuvO74c/yTUFDtfe2yNDFz6JCVUbQtMjryc/Q0Leiy82/2NbGz/vPoqOsDQorsqK0pbeiRURDUNOyvP6jrLDh1MvK/b7dtb221NOmSEFSUSByYW3W0KGjDQortbHDu9PQyc/Q0MrayKjTw9Pa0MLK/b7dt6LLzcfS09BTUrSlt6LKsaOszai5/bTLvdO/2rSlt6LO78DtsuO1xFNSt6LLzbn9s8yhow0KKyovDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgICAgIHdDZWxsSW5kZXg7DQorICAgIFdPUkQgICAgICAgIHdQYWRkaW5nOw0KKyAgICBXT1JEICAgICAgICB3U2VuZFR5cGVbMl07DQorICAgIFdPUkQgICAgICAgIHdEYXRhVmFsaWRbMl07DQorICAgIFdPUkQgICAgICAgIHdEYXRhU2VuZFNpemVbMl07DQorICAgIFBCWVRFICAgICAgIHBiRGF0YVNyY1syXTsNCit9IFRfelBTX0xURV9QX1VsRGF0YVNlbmRDdHJsSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBUX3pQU19MVEVfUF9VbERhdGFTZW5kQ3RybEluZm8gICAgYXRVbERhdGFTZW5kQ3RybEluZm9BcnJheVtaUFNfTFRFX1BfTUFYX0NFTExfTlVNXTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWxEYXRhU2VuZEN0cmxJbmZvQ250Ow0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK30gVF96UFNfTFRFX1BfRXh0ZW5kZWRVbERhdGFTZW5kQ3RybEluZm87DQorDQorDQorLyoNCitQSFmzybmmveLC68/C0NDK/b7duvOjrL2rtcO1vdXi0KnK/b7dtcTA4NDNo6yzpLbIo6y05rfFzrvWw7XI0MXPoqOsDQor1eLQqdDo0qrNqNaqUFPS1LHjttTV4tCpyv2+3df3uvPQ+LXEtKbA7aGjDQorUEhZ0OjSqrj5vt1STlRJwODQzcf4t9bK/b7dtcTA4NDNo6xQSFnSstDo0qrOrLuku7fQzru6s+XH+LXEy/fS/aGjDQorKi8NCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgIHdTdWJGTjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICB3VGJOdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgYXdCdWZJbmRleFtaUFNfTFRFX1BfTUFYX1RCX05VTV07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgYXdUYkxlbltaUFNfTFRFX1BfTUFYX1RCX05VTV07DQorICAgIFBCWVRFICAgICAgICAgICAgICAgICAgICAgYXBiTWFjUGR1RGF0YVtaUFNfTFRFX1BfTUFYX1RCX05VTV07DQorfSBUX3pQU19MVEVfUF9EbERhdGFSZWN2Q3RybEluZm87DQorDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgIHdTdGFydFN5c0ZyYW1lTnVtOw0KKyAgICBXT1JEICAgICB3U3RhcnRTdWJGcmFtZU51bTsNCisgICAgV09SRCAgICAgd1NsZWVwVGltZUxlbjsNCisgICAgV09SRCAgICAgd1BhZGRpbmc7DQorfVRfelBTX0xURV9QX1NsZWVwVGltZV9JbmQ7DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgIHdLZWVwQXdha2VUaW1lOy8qtaXOu01To6zO78DtsuO7vdDRxuRUUFWjrLKitNPK1bW9uMPQxc+iv6rKvNDo0qqxo7PWxuRUUFUgd0tlZXBBd2FrZVRpbWUgTVPE2rK70qrU2bTOvfjI68uvw98qLw0KK31UX3pQU19MVEVfUF9XYWtldXBfUmVxOw0KKw0KKy8qINPD09qxo7TmveLC67rztcQgU0kgRVRXUyBQQ0ggyv2+3bXEs6S2yLrNIFBST0lEICovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgd0RsQmFuZFdpZHRoOyAvKtChx/jPwtDQtPi/7aOsyc+xqHNpYjG6zVNJyrHM7tC0Ki8NCisgICAgV09SRCAgICAgd1BhZGRpbmc7DQorICAgIFRfelBTX0xURV9QX1NpbnJSZXN1bHQgIHRTaW5yUnNsdDsgLyq4w9Chx/i1xFNJTlKjrLmks8zEo8q9yajGtcnPsajQ6Mfz0MLU9iovDQorICAgIFdPUkQgICAgd1RibGVuOw0KKyAgICBXT1JEICAgIHdQcm9jSWQ7IC8qINPD09rPtc2zz/vPosnPsajKsbXEztXK1tDFz6IgKi8NCisgICAgUEJZVEUgICAgcGJEbFNpUENIRGF0YTsNCit9VF96UFNfTFRFX1BfRGxTaVBDSERhdGFSZWN2Q3RybEluZm87DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICB3QWN0RGVhY3RTQ2VsbEluZm87DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgIHdTdWJGTjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfelBTX0xURV9QX1NDRUxMX0N0cmxfUmVxOw0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIFdPUkQgICAgICAgIHdOb3RpZmNScHRDb2VmZjsNCisgICAgV09SRCAgICAgICAgd05vdGlmY09mZnNldDsNCisgICAgV09SRCAgICAgICAgd05vdGlmY1NmSW5keDsNCisgICAgV09SRCAgICAgICAgd1BhZGRpbmc7DQorfVRfelBTX0xURV9QX01ibXNOb3RpZmNDZmc7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdNYnNmbkFyZWFJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdOb25NYnNmblJlZ25MZW47IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd05vdGlmY0luZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdNY2NoUnB0UGVyaW9kOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd01jY2hPZmZzZXQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3TWNjaE1vZGlQZXJpb2Q7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3U2ZBbGxvY0luZm87DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3U2lnTUNTOyAgIA0KK31UX3pQU19MVEVfUF9NY2NoQ2ZnSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd01jY2hOdW07DQorICAgIFRfelBTX0xURV9QX01jY2hDZmdJbmZvICAgICBhdE1jY2hDZmdMaXN0W1pfTFRFX01BWF9NQlNGTl9BUkVBX05VTV9JTl9DRUxMXTsNCisgICAgVF96UFNfTFRFX1BfTWJtc05vdGlmY0NmZyAgIHROb3RpZmNDZmc7DQorfVRfelBTX0xURV9QX01jY2hDZmdSZXE7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgICAgd1NmQWxsb2NFbmQ7DQorICAgIFdPUkQgICAgICAgIHdEYXRhTUNTOw0KKyAgICBXT1JEICAgICAgICB3TXNwOw0KKyAgICBXT1JEICAgICAgICB3UGFkZGluZzsNCit9VF96UFNfTFRFX1BfUG1jaENmZzsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKwlXT1JEICAgICAJCQkJd1BtY2hDZmdOdW07DQorCVdPUkQgICAgIAkJCQl3UGFkZGluZzsNCisJVF96UFNfTFRFX1BfUG1jaENmZyAgICAJdFBtY2hDZmdbWl9MVEVfUF9NQVhfUE1DSF9OVU1dOw0KKwlEV09SRCAgICAgICAgICAgICAgICAgICBkd1VzZWRMb2NoSWRMaXN0W1pfTFRFX1BfTUFYX1BNQ0hfTlVNXTsNCit9VF96UFNfTFRFX1BfUG1jaEluZm9MaXN0Ow0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWJzZm5BcmVhSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q29tbVNmQWxsb2NQZXJpb2Q7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgVF96UFNfTFRFX1BfTWJzZm5TdWJmcmFtZUNvbmZpZ0xpc3QgICAgIHRDb21tU2ZBbGxvYzsNCisgICAgVF96UFNfTFRFX1BfUG1jaEluZm9MaXN0ICAgICAgICAgICAgICAgIHRQbWNoSW5mb0xpc3Q7DQorfVRfelBTX0xURV9QX010Y2hDZmdSZXE7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICB3TWJzZm5BcmVhSWQ7DQorICAgIERXT1JEICAgICAgIGR3VXNlZExvY2hJZExpc3RbWl9MVEVfUF9NQVhfUE1DSF9OVU1dOw0KK31UX3pQU19MVEVfUF9NdGNoTWFza1NldFJlcTsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICAgICB3TWJzZm5BcmVhSWQ7DQorICAgIFdPUkQgICAgICAgIHdSZWxNY2NoOw0KKyAgICBXT1JEICAgICAgICB3UmVsTXRjaDsNCisgICAgV09SRCAgICAgICAgd1BhZGRpbmc7DQorfVRfelBTX0xURV9QX1BtY2hSZWxJbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UmVsTnVtOw0KKyAgICBUX3pQU19MVEVfUF9QbWNoUmVsSW5mbyAgICAgYXRQbWNoUmVsTGlzdFtaX0xURV9NQVhfTUJTRk5fQVJFQV9OVU1fSU5fQ0VMTF07DQorfVRfelBTX0xURV9QX1BtY2hSZWxSZXE7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgICAgd0xvY2hJZDsNCisgICAgV09SRCAgICAgICAgd0VuZFNmOw0KK31UX3pQU19MVEVfUF9QbWNoU0k7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICB3TWJzZm5BcmVhSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgIHdQbWNoSW5kZXg7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgIHdNc2lOdW07DQorICAgIFRfelBTX0xURV9QX1BtY2hTSSAgICAgIHRNc2lMaXN0W1pfTFRFX1BfTUFYX1NFU1NJT05fTlVNX0lOX1BNQ0hdOw0KK31UX3pQU19MVEVfUF9Nc2lfUmVxOw0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorCVdPUkQJICAJd1N1YkZOOw0KKwlXT1JECSAgCXdCdWZJbmRleDsNCisJV09SRCAgCQl3TWJzZm5BcmVhSWQ7DQorCVdPUkQgIAkJd1BtY2hJbmRleDsNCisJV09SRAkgIAl3TWNjaDsNCisJV09SRAkgIAl3VGJMZW47DQorCVBCWVRFICAJCXBiTUNIUGR1RGF0YTsNCit9VF96UFNfTFRFX1BfTUNIUmVjdkN0cmxJbmZvOw0KKw0KKyNpZmRlZiBCVFJVTktfU1VQUE9SVA0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgICAvKrHY0aGyzsr9Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1Nwc0ludGVydmFsRGw7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3U3BzUm50aTsNCisNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1NldHVwRmc7DQorICAgIC8q08liU2V0dXBGZ8q5xNwqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3TUNTOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3VlJCYXNzaWdubWVudGZsYWc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdPZmZzZXQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdJUlY7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96UFNfTFRFX1BfQnRydW5rU3BzQ29uZmlnRGw7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICB3U2VsZkhvRmc7DQorICAgIFdPUkQgICAgICAgIHdTdWJGcmFtZUFzc2lnbjsNCisgICAgV09SRCAgICAgICAgd1NwZWNpYWxTdWJGcmFtZVBhdHRlcm5zOw0KKyAgICBXT1JEICAgICAgICB3QW50ZW5uYVBvcnRzQ291bnQ7DQorICAgIFdPUkQgICAgICAgIHdEbEVhcmZjbjsNCisgICAgV09SRCAgICAgICAgd1VsRWFyZmNuOw0KKyAgICBXT1JEICAgICAgICB3UGh5Q2VsbElkOw0KKyAgICBXT1JEICAgICAgICB3R3JudGk7DQorDQorICAgIFdPUkQgICAgICAgIHdCbGVyRW5hYmxlOw0KKyAgICBXT1JEICAgICAgICB3QmxlclRyaWdnZXI7DQorICAgIFdPUkQgICAgICAgIHdjcWlQcm9oaWJpdFRpbWVyOw0KKw0KKyAgICBXT1JEICAgICAgICB3QnRydW5rUGE7DQorICAgIFdPUkQgICAgICAgIHdFbmFibGVTcHNGZzsNCisgICAgVF96UFNfTFRFX1BfQnRydW5rU3BzQ29uZmlnRGwgICB0QnJ1bmtTcHNDb25maWdEbDsNCisgICAgV09SRCAgICAgICAgd0JhbmRXaWR0aDsgICAgLy8gyKHWtXs2LCAxNSwgMjUsIDUwLCA3NSwgMTAwfaOsyKEweEZGRkbKsSzO78DtsuPR2NPD1K3Qocf4tcTPwtDQtPi/7Q0KKyAgICBXT1JEICAgICAgICB3UGFkZGluZzsNCit9VF96UFNfTFRFX1BfQnRydW5rX1R0Y2hfQ29uZmlnSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgIHdDZmdUeXBlOw0KKyAgICBXT1JEICAgICAgICB3UGFkZGluZzsNCisgICAgV09SRCAgICAgICAgd0dybnRpOyANCit9VF96UFNfTFRFX1BfR3JudGlfQ29uZmlnOw0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIFdPUkQgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgd1BhZGRpbmc7DQorfVRfelBTX0xURV9QX0RlZGljYXRlZF9SZWw7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICB3UGFkZGluZzsNCit9VF96UFNfTFRFX1BfQnRydW5rQ29uZmlnX1JlbDsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgIHdQYWRkaW5nOw0KKyAgICBXT1JEICAgICAgICB3Q1FJOyAgIA0KKyAgICBXT1JEICAgICAgICB3TUNTOw0KK30gVF96UFNfTFRFX1BfQlRVTktfQ1FJX0lORDsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgIFdPUkQgICAgICAgICB3RGF0YUxlbjsNCisgICBXT1JEICAgICAgICAgd1BhZGRpbmc7DQorICAgUEJZVEUgICAgICAgIHBiQlRQY2hEYXRhOw0KK30gVF96UFNfTFRFX1BfVFBjaERhdGFfSW5kOw0KKw0KKyNlbmRpZiAvL0VORElGIEJUUlVOS19TVVBQT1JUDQordHlwZWRlZiBzdHJ1Y3QgDQorew0KKyAgICBXT1JEICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICB3Q21kOyAgICAgIC8qIMP8we66xaOsttTTprK7zay1xM7vwO2y47mmxNwgKi8NCisgICAgV09SRCAgICAgICB3TW9kZTsgICAgIC8qIDCx7cq+yejWw6OsMbHtyr6y6dGvICovDQorICAgIFdPUkQgICAgICAgd1ZhbDFGZzsgICAvKiCx7cq+VmFsMS9WYWwyyse38bTm1NqjrDCx7cq+sru05tTao6wxse3KvrTm1NogKi8NCisgICAgV09SRCAgICAgICB3VmFsMkZnOw0KKyAgICBXT1JEICAgICAgIHdQYWRkaW5nOw0KKyAgICBEV09SRCAgICAgIGR3VmFsMTsgICAgLyogss7K/TEvss7K/TKjrNDeuMQvtsHIobXEzu/A7bLjss7K/aOsss7K/cq1vMq6rNLl08nO78DtsuO4+LP2ICovDQorICAgIERXT1JEICAgICAgZHdWYWwyOw0KK31UX3pQU19MVEVfUF9aZXBjZ19SZXE7IA0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sNCisgICAgV09SRCAgICAgICB3Q21kOyAgICAgIC8qIMP8we66xaOsttTTprK7zay1xM7vwO2y47mmxNyjrGJNb2RlPTAvMba809DQpyAqLw0KKyAgICBXT1JEICAgICAgIHdNb2RlOyAgICAgLyogMLHtyr7J6NbDttTTprXEz+zTpqOstMvKsaOsuvPQ+LLOyv1iUnNsdNPQ0KejrGJWYWwyRmejrGJWYWwxo6xiVmFsMr75zt7Qpw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAxse3KvrLp0a+21NOmtcTP7NOmo6y0y8qxo6y689D4ss7K/WJSc2x0zt7Qp6OsYlZhbDJGZ6OsYlZhbDGjrGJWYWwyvvnT0NCnICovDQorICAgIFdPUkQgICAgICAgd1JzbHQ7ICAgICAvKiCx7cq+yejWw73hufujrFpfVFJVRcno1sOzybmmo6xaX0ZBTFNFyejWw8qnsNwgIHdNb2RlPTDKsdPQ0KcgKi8NCisgICAgV09SRCAgICAgICB3VmFsMUZnW1pfWkVQQ0dfUEFSQU1fTlVNXTsgLyqwtNXVz8Kx6rrNZHdWYWzW0Na10rvSu7bU06ajrGJWYWwxRmdbMF2x7cq+ZHdWYWxbMF3Kx7fxtObU2izSwLTOwODNxqOsMLHtyr6yu7Tm1NqjrDGx7cq+tObU2iovDQorICAgIA0KKyAgICBMT05HICAgICAgIGR3VmFsW1pfWkVQQ0dfUEFSQU1fTlVNXTsgICAvKrLOyv0xL7LOyv0yoa2jrNDeuMQvtsHIobXEzu/A7bLjss7K/aOsss7K/cq1vMq6rNLl08nO78DtsuO4+LP2Ki8NCisNCit9VF96UFNfTFRFX1BfWmVwY2dfQ25mOyANCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBTSE9SVCAgIHNJc2xhbmRUaHJlc2g7Ly+5wrW6w8XP3sSsyM8tNA0KKyAgICBXT1JEICAgIHdQYWRkaW5nOw0KK30gVF96UFNfTFRFX0lzbGFuZF9JbmQ7DQorDQorLyrGtbXjxrW2zsXk1sO94bm5Ki8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCAgICAgd1N1cHBvcnRlZDsgICAgLyoguMPGtbbOyse38dans9YwOrK71qez1iwxOtans9YgKi8NCisgICAgV09SRCAgICAgd0RsU3RyYXRIejsgICAgLyogz8LQ0MbwyrzGtcLKILWlzrvKxyAgMTAwSyBIWiAqLw0KKyAgICBXT1JEICAgICB3RGxFbmRIejsgICAgLyogz8LQ0MbwyrzGtcLKILWlzrvKxyAgMTAwSyBIWiAqLw0KKyAgICBXT1JEICAgICB3RHVwbGV4TW9kZTsgICAvKiC4w8a1ts7Lq7mkxKPKvTA6zt7Qp9a1MTpGREQsMjpUREQgKi8NCisgICAgRFdPUkQgICAgZHdNaW5EbEVhcmZjbjsgIC8qINfu0KHPwtDQxrW14yAqLw0KKyAgICBEV09SRCAgICBkd01heERsRWFyZmNuOyAgLyog1+6088/C0NDGtbXjICovDQorICAgIFdPUkQgICAgIHdVbFN0cmF0SHo7ICAgIC8qIMnP0NDG8Mq8xrXCyiC1pc67yscgIDEwMEsgSFogKi8NCisgICAgV09SRCAgICAgd1VsRW5kSHo7ICAgIC8qIMnP0NDG8Mq8xrXCyiC1pc67yscgIDEwMEsgSFogKi8NCisgICAgRFdPUkQgICAgZHdNaW5VbEVhcmZjbjsgIC8qINfu0KHJz9DQxrW14yAqLw0KKyAgICBEV09SRCAgICBkd01heFVsRWFyZmNuOyAgLyog1+6088nP0NDGtbXjICovICAgIA0KK31UX3pQU19MVEVfUF9FdXRyYUJhbmRJbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBUX3pQU19MVEVfUF9FdXRyYUJhbmRJbmZvICBhdEV1dHJhQmFuZEluZm9bNjZdOy8qyv3X6dPrQkFORLbU06ajrGF0RXV0cmFCYW5kSW5mb1sxXbGjtOa1xMrHQkFORDG1xNDFz6KjrNLUtMvA4M3GKi8NCisgICAgLyogICAgyKHWtdKq0+sgY3B1X3I3XHBsYXRmb3JtXHBzXHNyY1xjb21caW5jXG52cGFyYW1fcHMuaCDW0LXEWl9NQVhfTFRFX0JBTkRfTlVNuurWtdK71sIgICAgICovDQorfVRfelBTX0xURV9QX0V1dHJhQmFuZEluZm9MaXN0Ow0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgIFBTLT5FUEhZDQorICAgIMrCvP6jukxURV9QX1JQSV9TRVRfUkVRX0VWDQorICAgILmmxNw6DQorICAgICAgICDJ6NbDRVBIWcq508O1xNfutPO3osnkuabCyrXEUlBJIFZBVUxFDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgd1JwaTsgIC8qINPD09rL99L9UFVNQVi1xFJQSbW1zrujrLe2zqcwLzEvMiAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgd1BhZDsNCit9VF96UFNfTFRFX1BfUnBpU2V0UmVxOw0KKw0KKw0KKyNkZWZpbmUgWlBTX0xURV9QX1JQSV9TVVBQT1JUX01BWF9CQU5EICAgICAgICAgKEJZVEUpMTINCisNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBQUy0+RVBIWQ0KKyAgICDKwrz+o7pMVEVfUF9SUElfQ0ZHX1JFUV9FVg0KKyAgICC5psTcOg0KKyAgICAgICAgxeTWw0xURc/CMTK49kJBTkSjrMO/uPZCQU5Ez8JSUEm6zVBVTUFYtcTTs8nkudjPtaOsxuTW0FJQSbe2zqcwfjINCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIFRfekJhbmRScGlDZmcgICAgICAgdEx0ZUJhbmRScGlDZmdbWlBTX0xURV9QX1JQSV9TVVBQT1JUX01BWF9CQU5EXTsNCit9VF96UFNfTFRFX1BfUnBpQ2ZnUmVxOw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgT1RET0G2qM67uabE3NDC1PZQUy1FUEhZvdO/2ihTVEFSVCkNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KKyNkZWZpbmUgT1RET0FfTUFYX05FSUdIQk9VUl9DRUxMX0NGR19OVU0gICAgOA0KKyNkZWZpbmUgT1RET0FfTUFYX05FSUdIQk9VUl9DRUxMX01FQVNfTlVNICAgIDgNCisNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCAgICB3UHJzQmFuZFdpZHRoOyANCisgICAgV09SRCAgICB3UHJzQ29uZklkeDsgDQorICAgIFdPUkQgICAgd1Byc1N1YkZyYW1lTnVtOw0KKyAgICBXT1JEICAgIHdQcnNNdXRTZXFQZXJkOyANCisgICAgV09SRCAgICB3UE9TdHJpbmc7DQorICAgIFdPUkQgICAgd1BhZGRpbmc7CQ0KK31UX3pQU19MVEVfUF9QcnNJbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0ICANCit7DQorICAgIERXT1JEICAgIGR3RWFyZmNuOw0KKyAgICBXT1JEICAgICAgd1BjaTsNCisgICAgV09SRCAgICAgIHdBbnRlbm5hQ29uZmlnOyANCisgICAgV09SRCAgICAgIHdDcExlbjsgIA0KKyAgICBXT1JEICAgICAgd1Byc0luZm9GZzsgDQorICAgIFRfelBTX0xURV9QX1Byc0luZm8gICAgdFByc0luZm87DQorfVRfelBTX0xURV9QX09URE9BX1JlZkNlbGxDZmc7DQorDQorDQordHlwZWRlZiBzdHJ1Y3QgDQorew0KKyAgICBEV09SRCAgICBkd0VhcmZjbjsNCisgICAgV09SRCAgICAgIHdQY2k7DQorICAgIFdPUkQgICAgICB3QW50ZW5uYUNvbmZpZzsgDQorICAgIFdPUkQgICAgICB3Q3BMZW47ICAgICAgIA0KKyAgICBXT1JEICAgICAgd1Byc0luZm9GZzsgIA0KKyAgICBUX3pQU19MVEVfUF9QcnNJbmZvICAgIHRQcnNJbmZvOyANCisgICAgV09SRCAgICAgIHdTbG90TnVtT2Zmc2V0OyANCisgICAgV09SRCAgICAgIHdTdWJGcmFtZU9mZnNldDsgDQorICAgIFdPUkQgICAgICB3RXhwdFJzdGQ7ICAgDQorICAgIFdPUkQgICAgICB3RXhwdFJzdGRVbmNlcnRhaW50eTsNCit9VF96UFNfTFRFX1BfT1RET0FfTkNlbGxDZmc7DQorDQorDQordHlwZWRlZiBzdHJ1Y3QgDQorew0KKyAgICBXT1JEICAgIHdOQ2VsbE51bTsgIA0KKwlXT1JEICAgIHdQYWRkaW5nOw0KKyAgICBUX3pQU19MVEVfUF9PVERPQV9OQ2VsbENmZyAgICB0T3Rkb2FOQ2VsbFtPVERPQV9NQVhfTkVJR0hCT1VSX0NFTExfQ0ZHX05VTV07DQorfVRfelBTX0xURV9QX09URE9BX05DZWxsQ2ZnTGlzdDsNCisNCisNCit0eXBlZGVmIHN0cnVjdCAgDQorew0KKyAgICBEV09SRCAgIGJFcnJSZXNvbHV0aW9uIDoyOyANCisgICAgRFdPUkQgICBiRXJyVmFsIDo1OyANCisgICAgRFdPUkQgICBiRXJyTnVtU2FtcGxlczogMzsgDQorICAgIERXT1JEICAgYlBhZGluZyA6MjI7IA0KK31UX3pQU19MVEVfUF9PVERPQV9NZWFzUXVhOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBEV09SRCAgICBkd0VhcmZjbjsNCisgICAgV09SRCAgICAgIHdQY2k7DQorICAgIFdPUkQgICAgICB3U0ZOOw0KKyAgICBUX3pQU19MVEVfUF9PVERPQV9NZWFzUXVhICAgIHRSZWZRdWE7DQorfVRfelBTX0xURV9QX09URE9BX1JlZk1lYXNJbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBEV09SRCAgICBkd0VhcmZjbjsNCisgICAgV09SRCAgICAgIHdQY2k7DQorICAgIFdPUkQgICAgICB3UnN0ZDsgDQorICAgIFRfelBTX0xURV9QX09URE9BX01lYXNRdWEgICAgdFJzdGRRdWE7DQorfVRfelBTX0xURV9QX09URE9BX05DZWxsTWVhc0luZm87DQorDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIERXT1JEICAgIHdOQ2VsbE51bTsNCisgICAgVF96UFNfTFRFX1BfT1RET0FfTkNlbGxNZWFzSW5mbyAgICB0TkNlbGxNZWFzSW5mb1tPVERPQV9NQVhfTkVJR0hCT1VSX0NFTExfTUVBU19OVU1dOw0KK31UX3pQU19MVEVfUF9PVERPQV9OQ2VsbE1lYXNMaXN0Ow0KKw0KKw0KK3R5cGVkZWYgc3RydWN0ICANCit7DQorICAgIFdPUkQgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgIHdQZXJpb2RNZWFzRmc7DQorICAgIFdPUkQgICAgd1JwdFRpbWVyTGVuOw0KKyAgICBXT1JEICAgIHdQYWRpbmc7DQorICAgIFRfelBTX0xURV9QX09URE9BX1JlZkNlbGxDZmcgICAgICB0T3Rkb2FSZWZDZWxsOw0KKyAgICBUX3pQU19MVEVfUF9PVERPQV9OQ2VsbENmZ0xpc3QgICAgdE90ZG9hTkNlbGxMaXN0Ow0KK31UX3pQU19MVEVfUF9PdGRvYUNvbmZpZ19SZXE7DQorDQorDQorDQordHlwZWRlZiBzdHJ1Y3QgIA0KK3sNCisgICAgVF96UFNfTFRFX1BfT1RET0FfUmVmTWVhc0luZm8gICAgICB0UmVmTWVhc0luZm87DQorICAgIFRfelBTX0xURV9QX09URE9BX05DZWxsTWVhc0xpc3QgICAgdE5DZWxsTWVhc0xpc3Q7DQorfVRfelBTX0xURV9QX090ZG9hTWVhc19SbHQ7DQorDQorDQordHlwZWRlZiBzdHJ1Y3QgIA0KK3sNCisgICAgV09SRCAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgd1BhZGluZzsNCit9VF96UFNfTFRFX1BfT3Rkb2FNZWFzX0Fib3J0Ow0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgT1RET0G2qM67uabE3NDC1PZQUy1FUEhZvdO/2ihFTkQpDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgIDIzMEHQwtT2UFMtRVBIWb3Tv9ooU1RBUlQpDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCAgIEN1clV0Y1llYXI7DQorCVdPUkQgICBDdXJVdGNNb250aDsNCisJV09SRCAgIExhc3RVdGNZZWFyOw0KKwlXT1JEICAgTGFzdFV0Y01vbnRoOw0KKwlXT1JEICAgRmFjdG9yeUNhbGlVdGNZZWFyOw0KKwlXT1JEICAgRmFjdG9yeUNhbGlVdGNNb250aDsNCisJU0lOVDMyIEMwOw0KKyAgICBXT1JEICAgQ250Ow0KK31UX0MwQ2FsaUluZm87ICAvL1BIWS0+UFMNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisJV09SRCAgICAgICAgICAgIFllYXI7DQorCVdPUkQgICAgICAgICAgICBNb250aDsNCisgICAgVF9DMENhbGlJbmZvICAgIHRDMENhbGlJbmZvOw0KK31UX3pQc19QaHlfVXRjSW5mbzsgLy9QUyBTQVZFIElSQU0NCisNCisNCisvKiBQSFktLT5QUyAqLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgRFdPUkQgICAgIGR3TUNTOw0KKyAgICBEV09SRCAgICAgZHdBY2tDbnQ7DQorICAgIERXT1JEICAgICBkd05hY2tDbnQ7DQorfVRfelBzX1BoeV9VbFBhcmFtOw0KKw0KKw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgMjMwQbmmxNzQwtT2UFMtRVBIWb3Tv9ooRU5EKQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorDQorDQorDQorDQorDQorDQorI2lmbmRlZiBfT1NfV0lODQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KK05ldyBEZWZpbmUNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorDQorLyq6y7zkzayyvUZMQUcgICovDQorI2RlZmluZSBDVFJMX0lORk9fSU5URVJfQ09SRV9TWU5DX0FERFIgICAgSVJBTV9CQVNFX0FERFINCisNCisvKiBTUkFN1KTB9DEwSyjS0cq508M4NTc219a92inTw9PaUFPT60VQSFm9u7ulUENIL1NJL0VUV1MvVUxHUkFOVCovDQorDQorI2RlZmluZSBDVFJMX0lORk9fUFNfRVBIWV9BRERSX0JBU0UgICAgSVJBTV9CQVNFX0FERFJfTFRFDQorDQorI2RlZmluZSBaUFNfTFRFX0dFVF9VTFNDSEVESU5EX1BUUiAgICAgICAgICAgICAgQ1RSTF9JTkZPX1BTX0VQSFlfQUREUl9CQVNFICAgLy9tYWMNCisNCisjZGVmaW5lIENUUkxfSU5GT19MVEVfVUxTQ0hFRElORF9BRERSICAgIFpQU19MVEVfR0VUX1VMU0NIRURJTkRfUFRSICAgLy9QSFkNCisgDQorI2RlZmluZSBDVFJMX0lORk9fTFRFX1VMREFUQVNFTkRfQUREUiAgICAgICAgICAgICAgICAoc2l6ZW9mKFRfelBTX0xURV9QX0V4dGVuZGVkVWxTY2hlZEluZm9JbmQpICsgWlBTX0xURV9HRVRfVUxTQ0hFRElORF9QVFIpDQorI2RlZmluZSBDVFJMX0lORk9fTFRFX1VMU1JTRU5EX0FERFIgICAgICAgICAgICAgICAgKHNpemVvZihUX3pQU19MVEVfUF9FeHRlbmRlZFVsRGF0YVNlbmRDdHJsSW5mbykqOCArIENUUkxfSU5GT19MVEVfVUxEQVRBU0VORF9BRERSKQ0KKw0KKy8vI2lmZGVmIExURV9SMTBfREVGQVVMVF9TVVBQT1JUDQorLy8jZGVmaW5lIENUUkxfSU5GT19MVEVfTEFSR0VETE1BQ1BEVUJVRl9JRFhPVVRfQUREUiAgICAgICAgICAgICAgICAoc2l6ZW9mKFRfelBTX0xURV9QX0V4dGVuZGVkVWxEYXRhU2VuZEN0cmxJbmZvKSArIENUUkxfSU5GT19MVEVfVUxEQVRBU0VORF9BRERSKQ0KKy8vI2Vsc2UNCisvLyNkZWZpbmUgQ1RSTF9JTkZPX0xURV9MQVJHRURMTUFDUERVQlVGX0lEWE9VVF9BRERSICAgICAgICAgICAgICAgIChzaXplb2YoVF96UFNfTFRFX1BfVWxEYXRhU2VuZEN0cmxJbmZvKSArIENUUkxfSU5GT19MVEVfVUxEQVRBU0VORF9BRERSKQ0KKy8vI2VuZGlmDQorDQorLypsYXJnZURMTWFjUGR1QnVmKi8NCisjZGVmaW5lIENUUkxfSU5GT19MVEVfTEFSR0VETE1BQ1BEVUJVRl9JRFhPVVRfQUREUiAgICAgICAgICAgICAgICAoKDQ+PkNQVV9TSElGVCkgKyBDVFJMX0lORk9fTFRFX1VMU1JTRU5EX0FERFIpDQorDQorI2RlZmluZSBDVFJMX0lORk9fTFRFX0xBUkdFRExNQUNQRFVCVUZfSURYSU5fQUREUiAgICAgICAgICAoKDI+PkNQVV9TSElGVCkgKyBDVFJMX0lORk9fTFRFX0xBUkdFRExNQUNQRFVCVUZfSURYT1VUX0FERFIpDQorDQorI2RlZmluZSBaUFNfTFRFX0dFVF9GUkVFX0xBUkdFUERVX0lEWEFSUkFZX1BUUiAgICgoND4+Q1BVX1NISUZUKSArIENUUkxfSU5GT19MVEVfTEFSR0VETE1BQ1BEVUJVRl9JRFhPVVRfQUREUikNCisNCisvKnNtYWxsRGxNYWNQZHVCdWYqLw0KKw0KKyNkZWZpbmUgQ1RSTF9JTkZPX0xURV9TTUFMTERMTUFDUERVQlVGX0lEWE9VVF9BRERSICAgICAgICAgICAgKCgoWl9FVU1BQ19ETF9MQVJHRVBEVV9CVUZfTlVNKjIpPj5DUFVfU0hJRlQpICAgICsgWlBTX0xURV9HRVRfRlJFRV9MQVJHRVBEVV9JRFhBUlJBWV9QVFIpDQorDQorI2RlZmluZSBDVFJMX0lORk9fTFRFX1NNQUxMRExNQUNQRFVCVUZfSURYSU5fQUREUiAgICAgICAgICAoKDI+PkNQVV9TSElGVCkgKyBDVFJMX0lORk9fTFRFX1NNQUxMRExNQUNQRFVCVUZfSURYT1VUX0FERFIpDQorDQorI2RlZmluZSBaUFNfTFRFX0dFVF9GUkVFX1NNQUxMUERVX0lEWEFSUkFZX1BUUiAgICgoND4+Q1BVX1NISUZUKSArIENUUkxfSU5GT19MVEVfU01BTExETE1BQ1BEVUJVRl9JRFhPVVRfQUREUikNCisNCisvLyNkZWZpbmUgREFUQV9CVUZfTFRFX1BDSF9BRERSICAgICAgICAgICAgICgoKFpfRVVNQUNfRExfU01BTExQRFVfQlVGX05VTSAqIDIpPj5DUFVfU0hJRlQpICsgWlBTX0xURV9HRVRfRlJFRV9TTUFMTFBEVV9JRFhBUlJBWV9QVFIpDQorLy9aUFNfTFRFX0dFVF9GUkVFX1NNQUxMUERVX0lEWEFSUkFZX1BUUtaux7C05rXEysfQob/ptcTL99L9o6zP1tTauMTOqtChv+nUpMnqx+u1xNChv+m12Na3DQorDQorI2RlZmluZSBEQVRBX0JVRl9MVEVfUENIX0FERFIgICAgICAgICAgICAgKCgoWl9FVU1BQ19ETF9TTUFMTFBEVV9QUkVfTUFMTE9DX01BWCAqIDQpPj5DUFVfU0hJRlQpICsgWlBTX0xURV9HRVRfRlJFRV9TTUFMTFBEVV9JRFhBUlJBWV9QVFIpDQorDQorI2RlZmluZSBEQVRBX0JVRl9MVEVfU0lfQlVGMF9BRERSICAgICAgICAgKChaX0xURV9QX01BWF9QQ0hfQlVGX1NJWkU+PkNQVV9TSElGVCkgKyBEQVRBX0JVRl9MVEVfUENIX0FERFIpDQorI2RlZmluZSBEQVRBX0JVRl9MVEVfU0lfQlVGMV9BRERSICAgICAgICAgKChaX0xURV9QX01BWF9TSV9CVUZfU0laRT4+Q1BVX1NISUZUKSArIERBVEFfQlVGX0xURV9TSV9CVUYwX0FERFIpDQorI2lmZGVmIEJUUlVOS19TVVBQT1JUDQorI2RlZmluZSBEQVRBX0JVRl9MVEVfVFBDSF9BRERSICAgICAgICAgICAgKChaX0xURV9QX01BWF9TSV9CVUZfU0laRSA+PkNQVV9TSElGVCkrIERBVEFfQlVGX0xURV9TSV9CVUYxX0FERFIpIA0KKyNkZWZpbmUgREFUQV9CVUZfTFRFX0VUV1NfQUREUiAgICAgICAgICAgICgoWl9MVEVfUF9NQVhfUENIX0JVRl9TSVpFPj5DUFVfU0hJRlQpICsgREFUQV9CVUZfTFRFX1RQQ0hfQUREUikNCisjZWxzZQ0KKyNkZWZpbmUgREFUQV9CVUZfTFRFX0VUV1NfQUREUiAgICAgICAgICAgICgoWl9MVEVfUF9NQVhfU0lfQlVGX1NJWkU+PkNQVV9TSElGVCkgKyBEQVRBX0JVRl9MVEVfU0lfQlVGMV9BRERSKQ0KKyNlbmRpZg0KKw0KKyNkZWZpbmUgSU5EX01TR19MVEVfSVNMQU5EX0FERFIgICAgICAgICAgICAgICAgICAgICAgICgoWl9MVEVfUF9NQVhfU0lfQlVGX1NJWkU+PkNQVV9TSElGVCkgKyBEQVRBX0JVRl9MVEVfRVRXU19BRERSKQ0KKyNkZWZpbmUgQ1RSTF9JTkZPX0xURV9TVUJGUkFNRU5VTV9BRERSICAgIChzaXplb2YoVF96UFNfTFRFX0lzbGFuZF9JbmQpICsgSU5EX01TR19MVEVfSVNMQU5EX0FERFIpDQorDQorI2RlZmluZSBDVFJMX0lORk9fTFRFX0hBUlFCVUZfQUREUiAgICAgICAgKHNpemVvZihVSU5UMzIpICsgQ1RSTF9JTkZPX0xURV9TVUJGUkFNRU5VTV9BRERSKSAgLy+zpLbINjTX1r3ao6wxMrvyMTa49s/C0NBMVEUgSEFSUSBCVUYgQkxPQ0sgQUREUqOsw7+49kJMT0NLtPPQoTEyOEtCDQorDQorI2RlZmluZSBDVFJMX0lORk9fVVRDX1RJTUVfQUREUiAgICAgICAgICAgKChaX0xURV9QX0hBUlFfQlVGX1NJWkU+PkNQVV9TSElGVCkgKyBDVFJMX0lORk9fTFRFX0hBUlFCVUZfQUREUikgLy9zaXplb2YoVF96UHNfUGh5X1V0Y0luZm8pDQorDQorI2RlZmluZSBDVFJMX0lORk9fVUxfUEFSQU1fQUREUiAgICAgICAgICAgKHNpemVvZihUX3pQc19QaHlfVXRjSW5mbykgKyBDVFJMX0lORk9fVVRDX1RJTUVfQUREUikgLy9zaXplb2YoVF96UHNfUGh5X1VsUGFyYW0pDQorDQorDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogICAgICAgIFBTtcRQRFUgQlVG1bzTw0REUiC/1bzkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKyNkZWZpbmUgTUFDUERVX0JVRl9MVEVfRERSX0FERFIgICAgICAgICAgICAoSUNQX0RBVEFfQkFTRV9BRERSPDxDUFVfU0hJRlQpDQorDQorLyogwazQ+Dg2uPbPwtDQTUFDIFBEVSBCVUYotPO/6SkgICAgKi8NCisjZGVmaW5lIERBVEFfQlVGX0xURV9MQVJHRV9ETE1BQ1BEVUJVRl9BRERSICAgICAgTUFDUERVX0JVRl9MVEVfRERSX0FERFINCisNCisvKsGs0Pg4uPbJz9DQTUFDIFBEVSBCVUYgIDgqOTY5NiBCeXRlICzS1DgwS0K8xsvjKi8NCisjZGVmaW5lIERBVEFfQlVGX0xURV9VTE1BQ1BEVUJVRjBfQUREUiAgICAoREFUQV9CVUZfTFRFX0xBUkdFX0RMTUFDUERVQlVGX0FERFIgKyAweEM2RjAwKS8vOTQ3Mio4NisyNTYNCisNCisvKiDJz9DQUERDUCBQRFUgQlVGIL32UFPKudPDIC0tLbjEzqq2r8ysyerH66OssrvQ6NKqICovDQorLy8jZGVmaW5lIERBVEFfQlVGX0xURV9VTFBEQ1BQRFVCVUZfQUREUiAgICAgKERBVEFfQlVGX0xURV9VTE1BQ1BEVUJVRjBfQUREUiArIDB4MTMwMDApIC8vOTY5Nio4KzI1Ng0KKy8vI2RlZmluZSBEQVRBX0JVRl9MVEVfRExQRENQU0RVQlVGX0FERFIgICAgIChEQVRBX0JVRl9MVEVfVUxQRENQUERVQlVGX0FERFIgKyAweDFFMTAwKS8vMTUqODIwMEIrMTZCKHBhZGRpbmcpDQorDQorI2RlZmluZSBEQVRBX0JVRl9MVEVfVUxNQUNQRFVCVUYwX0VORF9BRERSICAgIChEQVRBX0JVRl9MVEVfVUxNQUNQRFVCVUYwX0FERFIgKyAweDEzMDAwKSAvLzk2OTYqOCsyNTYNCisNCisNCisvLyNlbmRpZiAvLyNpZiBkZWZpbmVkKF9DSElQX1pYMjk3NTIwKSB8fCBkZWZpbmVkKF9DSElQX1pYMjgwNCk/Pw0KKw0KKy8qIM/C0NBQRENQIFNEVSBCVUYgKi8NCisjZGVmaW5lIERBVEFfQlVGX0xURV9ETFJMQ1NEVUJVRl9BRERSICAgICAgICBEQVRBX0JVRl9MVEVfVUxNQUNQRFVCVUYwX0VORF9BRERSDQorLy8jZGVmaW5lIERBVEFfQlVGX0xURV9ETFJMQ1NEVUJVRl9BRERSICAgICAgKERBVEFfQlVGX0xURV9VTE1BQ1BEVUJVRjBfQUREUiArIDB4MTI5MDApDQorI2RlZmluZSBEQVRBX0JVRl9MVEVfTE9HT1VUUFVUXzFTQlVGMF9BRERSICAoREFUQV9CVUZfTFRFX0RMUkxDU0RVQlVGX0FERFIgKyAweEM0MDApDQorI2RlZmluZSBEQVRBX0JVRl9MVEVfTE9HT1VUUFVUXzFTQlVGMV9BRERSICAoREFUQV9CVUZfTFRFX0xPR09VVFBVVF8xU0JVRjBfQUREUiArIDB4MTAwMCkNCisjZGVmaW5lIERBVEFfQlVGX0xURV9MT0dPVVRQVVRfMTAwTVNCVUYwX0FERFIgKERBVEFfQlVGX0xURV9MT0dPVVRQVVRfMVNCVUYxX0FERFIgKyAweDEwMDApDQorI2RlZmluZSBEQVRBX0JVRl9MVEVfTE9HT1VUUFVUXzEwME1TQlVGMV9BRERSIChEQVRBX0JVRl9MVEVfTE9HT1VUUFVUXzEwME1TQlVGMF9BRERSICsgMHg3ODUwKQ0KKyNkZWZpbmUgREFUQV9CVUZfTFRFX0xPR09VVFBVVF80ME1TQlVGMF9BRERSICAoREFUQV9CVUZfTFRFX0xPR09VVFBVVF8xMDBNU0JVRjFfQUREUiArIDB4Nzg1MCkNCisjZGVmaW5lIERBVEFfQlVGX0xURV9MT0dPVVRQVVRfNDBNU0JVRjFfQUREUiAgKERBVEFfQlVGX0xURV9MT0dPVVRQVVRfNDBNU0JVRjBfQUREUiArIDB4MTUxOCkNCisjZGVmaW5lIERBVEFfQlVGX0xURV9MT0dPVVRQVVRfNDBNU0JVRjJfQUREUiAgKERBVEFfQlVGX0xURV9MT0dPVVRQVVRfNDBNU0JVRjFfQUREUiArIDB4MTUxOCkNCisjZGVmaW5lIERBVEFfQlVGX0xURV9MT0dPVVRQVVRfNDBNU0JVRjNfQUREUiAgKERBVEFfQlVGX0xURV9MT0dPVVRQVVRfNDBNU0JVRjJfQUREUiArIDB4MTUxOCkNCisNCisjZGVmaW5lIFpQU19QSFlfTFRFX1ZBTElEX1NUQVJUX0JVRkZFUl9BRERSICAgREFUQV9CVUZfTFRFX0xBUkdFX0RMTUFDUERVQlVGX0FERFINCisjZGVmaW5lIFpQU19QSFlfTFRFX1ZBTElEX0VORF9CVUZGRVJfQUREUiAgICAgREFUQV9CVUZfTFRFX1VMTUFDUERVQlVGMF9FTkRfQUREUiAtIDQNCisvLyNkZWZpbmUgWlBTX1BIWV9MVEVfVkFMSURfRU5EX0JVRkZFUl9BRERSICAgICBaX1VQTElOS19MVEVfUERDUF9QRFVfQkFTRV9BRERSDQorDQorI2RlZmluZSBEQVRBX1BTX0VQSFlfVUxfREFUQV9QUk9URUNUX0ZMQUdfQUREUiAgKFpQU19QSFlfTFRFX1ZBTElEX0VORF9CVUZGRVJfQUREUikNCisNCisvKiDPwtDQyv2+3cDg0M0qLw0KKyNkZWZpbmUgIFpQU19MVEVfRExEQVRBVFlQRV9QQ0ggICAgICAgIDENCisjZGVmaW5lICBaUFNfTFRFX0RMREFUQVRZUEVfU0kwICAgICAgICAyDQorI2RlZmluZSAgWlBTX0xURV9ETERBVEFUWVBFX1NJMSAgICAgICAgNA0KKyNkZWZpbmUgIFpQU19MVEVfRExEQVRBVFlQRV9QRFUgICAgICAgIDgNCisjZGVmaW5lICBaUFNfTFRFX0RMREFUQVRZUEVfRVRXUyAgICAgICAxNg0KKw0KKyNpZmRlZiBCVFJVTktfU1VQUE9SVA0KKyNkZWZpbmUgWlBTX0xURV9HRVRfVFBDSEJVRl9QVFIgICAgICAgICAgICAgICAgIChQQllURSkgREFUQV9CVUZfTFRFX1RQQ0hfQUREUg0KKyNlbmRpZg0KKyAgICANCisjZGVmaW5lIFpQU19MVEVfR0VUX0hGTiAoKih2b2xhdGlsZSBVSU5UMzIgKikoQ1RSTF9JTkZPX0xURV9TVUJGUkFNRU5VTV9BRERSKSkNCisNCisjZGVmaW5lIFpQU19MVEVfU0VUX1BTX0VQSFlfVUxfREFUQV9QUk9URUNUX0ZMQUcgKCoodm9sYXRpbGUgVUlOVDMyICopKERBVEFfUFNfRVBIWV9VTF9EQVRBX1BST1RFQ1RfRkxBR19BRERSKSA9IDB4NWE1YTVhNWEpDQorDQorI2RlZmluZSBaUFNfUEhZX0lOVEVSX0NPUkVfU1lOQ19GTEFHICAgKCoodm9sYXRpbGUgVUlOVDMyICopKENUUkxfSU5GT19JTlRFUl9DT1JFX1NZTkNfQUREUikpDQorDQorDQorI2VuZGlmLy8jaWZuZGVmIF9PU19XSU4NCisNCisjZW5kaWYgIC8qX1BTX0VQSFlfSU5URVJGQUNFX0gqLw0KZGlmZiAtLWdpdCBhL3B1Yi9pbmNsdWRlL3BzX3BoeS9wc19waHlfbnYuaCBiL3B1Yi9pbmNsdWRlL3BzX3BoeS9wc19waHlfbnYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YmMxZGRjCi0tLSAvZGV2L251bGwKKysrIGIvcHViL2luY2x1ZGUvcHNfcGh5L3BzX3BoeV9udi5oCkBAIC0wLDAgKzEsMjMxIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKrDmsb7L+dPQIChDKTIwMDnW0NDLzajRtrnJt93T0M/euavLvg0KKyAqICDEo7/pw/sgIKO6cHNfcGh5X252vdO/2rao0uUNCisgKiAgzsS8/sP7ICAgIKO6cHNfcGh5X252LmgNCisgKiAgzsS8/rHqyrajug0KKyAqICDP4LnYzsS8/qO6TFRF0K3S6dW70+tMVEXO78DtsuPWrrzkQVTD/MHuuMROVta1vdO/2g0KKyAqICDKtc/WuabE3KO6QVTD/MHuveG5uczlDQorICogINf31d8gICAgICAgIKO6DQorICogILDmsb4gICAgICAgIKO6VjEuMA0KKyAqICDN6rPJyNXG2qO6MjAxNS0xMS0wOQ0KKyAqICDG5Mv8y7XD96O60MK9qCAgDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKyNpZm5kZWYgICAgX1BTX1BIWV9OVl9IDQorI2RlZmluZSAgICBfUFNfUEhZX05WX0gNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIM23zsS8/rD8uqwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogICAgICAgICAgICAgICAgICAgICAgICAgILrqtqjS5SAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKyNkZWZpbmUgQVRfTlZfU0laRV9XT1JEX1BFUl9NT0RFICAgICAgICAzMg0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgIMirvtbK/b7dveG5ucn5w/cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorDQorLyogQVQrWlNFVD0iY3NpdXAiW1s8Y3NpdXBmbGFnPl0sWzx3UGFkaW5nPl1dICovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgd0ZsZzsgIC8qIDE6z/LJz8ih1fuju2Vsc2XP8s/CyKHV+yAqLw0KKyAgICBXT1JEIHdQYWRpbmc7DQorfVRfelBTX0xURV9QX05WX0NTSV9VUENBTEM7DQorDQorLyogQVQrWlNFVD0iY3NyaG9iYW5kZmxnIltbPGNzcmhvYmFuZGZsZz5dLFs8d1BhZGluZzE+XSxbPHdQYWRpbmcyPl0sWzx3UGFkaW5nMz5dXSovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgd0ZsZzsgIC8qIDE6xdC2z7T4v+2ju2Vsc2Wyu8XQts+0+L/tICovDQorICAgIFdPUkQgd1BhZGluZ1szXTsgLyp3UGFkaW5nWzBdPTHKsbHtyr69+NDQsuLBv9a1srmzpSiyubOltcS089Ch08l3UGFkaW5nWzFdvva2qCk7IHdQYWRpbmdbMF09MrHtyr64qMSj0rvWscb0tq+y4sG/Ki8NCit9VF96UFNfTFRFX1BfTlZfQ1NSX0hBTkRPVkVSOw0KKw0KKy8qIEFUK1pTRVQ9ImRscGFyYWZsZyJbWzxkbHBhcmFmbGc+XSxbPHdQYWRpbmc+XV0gKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCB3RmxnOyAvKiAxOmNmbyDCy7Ko0vLX086qMC4yKLjfzPrQxbXAKaOsZWxzZSAwLjA1ICovDQorICAgIFdPUkQgd1BhZGluZzsNCit9VF96UFNfTFRFX1BfTlZfRExfQ0ZPOw0KKw0KKy8qIEFUK1pTRVQ9InVscGFyYWZpeHRhbW9kZSJbWzx1bHBhcmFmaXh0YW1vZGU+XSxbPHdQYWRpbmc+XV0gKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCB3RmxnOyAvKiAxOrCywPvSx7HtZml4dGEgt73KvaOsZWxzZSCwsr3dwtfSx7HtZml4dGG3vcq9ICovDQorICAgIFdPUkQgd1BhZGluZzsNCit9VF96UFNfTFRFX1BfTlZfQU5MSV9BTkpJRUxVTl9VTEZJWFRBOw0KKw0KKy8qIEFUK1pTRVQ9InVscGFyYTcxMWZsZyJbWzx1bHBhcmE3MTFmbGc+XSxbPHdQYWRpbmc+XV0gKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCB3RmxnOyAvKiAxOjcxMSC437y2166/qqOsZWxzZSA3MTEguN+8tteuudggKi8NCisgICAgV09SRCB3UGFkaW5nOw0KK31UX3pQU19MVEVfUF9OVl83MTFTVFVCRkxBRzsNCisNCisvKiBBVCtaU0VUPSJjc3Jwc3NiaW5mbGciW1s8Y3NycHNzYmluZmxnPl0sWzx3UGFkaW5nMT5dLFs8d1BhZGluZzI+XSxbPHdQYWRpbmczPl1dKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCB3RmxnOyAgLyogMTpQc3PKudPDM8K3Ymluo7tlbHNlIFBzc8q508MxwrdiaW4qLw0KKyAgICBXT1JEIHdQYWRpbmdbM107DQorfVRfelBTX0xURV9QX05WX0NTUl9QU1NCSU47DQorDQorLyogQVQrWlNFVD0iY3NpaW90IltbPGNzaWlvdGZsZz5dLFs8d1BhZGluZz5dXSovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgd0ZsZzsgIC8qIDG08r+qSW90srm2oaO7MLnYsdUqLw0KKyAgICBXT1JEIHdQYWRpbmc7DQorfVRfelBTX0xURV9QX05WX0NTSV9JT1Q7DQorDQorLyogQVQrWlNFVD0icmZwYXJhZmxhZyJbWzxyZnBhcmFmbGFnMT5dLFs8cmZwYXJhZmxhZzI+XSxbPHdQYWRpbmcxPl0sWzx3UGFkaW5nMj5dXSovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgd0ZsZzsgIC8qMDpEb3VibGUgQW50OzE6U2luZ2xlIE1haW4gQW50OzI6U0luZ2xlIEF1eCBBbnQqLw0KKyAgICBXT1JEIHdBdXRvU2luZ2xlQW50RW47IC8qMDpFbmFibGUgQXV0byBTSW5nbGUgQW50OzE6RGlzYWJsZSBBdXRvIFNpbmdsZSBBbnQqLw0KKyAgICBXT1JEIHdSRklDTTBHY2ZGbGFnOyAgLyoxOkdDRiBWZXJzaW9uOyBlbHNlOkZBSFVPIFZlcnNpb24qLw0KKyAgICBXT1JEIHdQYWRpbmc7DQorfVRfelBTX0xURV9QX05WX1JGQ19DRkc7DQorDQorLyogQVQrWlNFVD0iVWxwb3dlckFkYXB0ZXIiW1s8VWxwb3dlckFkYXB0ZXJmbGc+XSxbPHdQYWRpbmc+XV0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEIHdGbGc7ICAvKiAxtPK/qklvdLK5tqGjuzC52LHVKi8NCisgICAgV09SRCB3UGFkaW5nOw0KK31UX3pQU19MVEVfUF9OVl9VTF9Qb3dlcl9BZGFwdGVyX0ZMQUc7DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgd1BCYWNrb2ZmOwkNCisgICAgV09SRCB3TWF4QmFja29mZiA7DQorICAgIFdPUkQgd1R1cDsNCisgICAgV09SRCB3VGRvd247DQorICAgIFdPUkQgd1N0ZXBUaW1lcjsNCit9VF96UFNfTFRFX1BfVUxfTWF4UG93ZXJfQmFja29mZjsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgLyogVWxNYXhwb3dlckJhY2tvZmYqLw0KKyAgICBUX3pQU19MVEVfUF9VTF9NYXhQb3dlcl9CYWNrb2ZmICAgICBVbE1heHBvd2VyQmFja29mZlsyXTsNCit9VF96UFNfTFRFX1BfTlZfVUxfTWF4UG93ZXJfQmFja29mZl9GTEFHOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICB3U3RyYXlBTVBSRW5hYmxlOw0KKyAgICBXT1JEICB3U3RyYXlBTVBSVmFsdWU7DQorICAgIFdPUkQgIHdJbXNpWzNdOw0KKyAgICBXT1JEICBwYWRkaW5nOw0KK31UX3pQU19MVEVfUF9OVl9TVFJBWV9BTVBSOw0KKw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBUX3pQU19MVEVfUF9OVl9DU0lfVVBDQUxDIHRDc2lVcENhbGM7DQorICAgIFRfelBTX0xURV9QX05WX0NTUl9IQU5ET1ZFUiB0Q3NySGFuZG92ZXJGbGFnOw0KKyAgICBUX3pQU19MVEVfUF9OVl9ETF9DRk8gIHRDZm9GaWx0ZXJGbGFnOw0KKyAgICBUX3pQU19MVEVfUF9OVl9BTkxJX0FOSklFTFVOX1VMRklYVEEgdEFubGlBbmppZWx1bkZpeFRhTW9kZTsNCisgICAgVF96UFNfTFRFX1BfTlZfNzExU1RVQkZMQUcgdDcxMVN0dWJGbGc7DQorICAgIFRfelBTX0xURV9QX05WX0NTUl9QU1NCSU4gdENzclBzc0JpbkZsYWc7DQorICAgIFRfelBTX0xURV9QX05WX0NTSV9JT1QgdENzaUlvdDsNCisgICAgVF96UFNfTFRFX1BfTlZfUkZDX0NGRyB0UmZjUGFyYUNmZzsNCisJVF96UFNfTFRFX1BfTlZfVUxfUG93ZXJfQWRhcHRlcl9GTEFHIHRVbHBvd2VyQWRhcHRlckZsZzsNCisgICAgV09SRCB3UHNtVGVzdDsvKkFUK1pTRVQ9IlBTTV9URVNUIlssPG4+XSDKobXnsuLK1L+qudijrDA6udix1aOsMTq08r+qLMSsyM/OqjAqLw0KKyAgICBXT1JEIHdDYXQ7LypBVCtaTFRFQ0FUyejWw87vwO2y49ans9a1xENBVCwgyKHWtTEtOKOsxKzIz86qNCzE2rK/w/zB7rK7ttTN4r+qt8UqLw0KKyAgICBXT1JEIHZvbHRlUG93ZXJTYXZlOw0KKyAgICBXT1JEIHdwaHlDZmdGbGc7LypBVCtaU0VUPSJwaHlDZmciWyw8bj5dzu/A7bLjuabE3MXk1sOjrGJpdDE6suLBv7LfwtS08r+qo6xiaXQyOtGwuvTPwtLGtPK/qqOsYml0MzpSRrWlzOzP373TytW/qrnYLGJpdM67IDA6udix1aOsMTq08r+qo6zErMjPMCovDQorICAgIFRfelBTX0xURV9QX05WX1VMX01heFBvd2VyX0JhY2tvZmZfRkxBRyB0VWxNYXhwb3dlckJhY2tvZmZGbGc7DQorICAgIFRfelBTX0xURV9QX05WX1NUUkFZX0FNUFIgICB0VWxOdlN0cmF5QW1wcjsNCisNCit9VF96UFNfUF9BVE5WX0xURTsNCisNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisJV09SRCB3VmFsdWU7LypiaXRtYXDA4NDNLMSsyM/Wtc6qMCovDQorCVdPUkQgd1BhZGluZ1szXTsNCit9VF96UFNfUF9BVE5WX0xURUE7DQorDQorLypBVCtaU0VUPSJ3X2luc3RydW1lbnQiLFtbPHdWYWx1ZT5dLFs8d1BhZGluZzE+XSxbPHdQYWRpbmcyPl0sWzx3UGFkaW5nMz5dXSAqLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKwlXT1JEIHdWYWx1ZTsvKmJpdG1hcMDg0M0sxKzIz9a1zqowKi8NCisJV09SRCB3UGFkaW5nWzNdOw0KK31UX3pQU19QX05WX1dfSU5TVFJVTUVOVDsNCisNCisvKkFUK1pTRVQ9IndfcGh5ZnVuYyIsW1s8d1ZhbHVlPl0sWzx3UGFkaW5nMT5dLFs8d1BhZGluZzI+XSxbPHdQYWRpbmczPl1dKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisJV09SRCB3VmFsdWU7DQorCVdPUkQgd0wxd0F0UmZjQXV4Q2hUZXN0OyAgLy9Xzu/A7bLjtaW4qMK3suLK1MSjyr2/qrnYDQorICAgIFdPUkQgd0wxd0dzbUludGZDU0Y7Ly9X0tbWxkdTTbjJyMVDU0bCy7Kov6q52A0KKyAgICBXT1JEIHdQYWRpbmc7DQorfVRfelBTX1BfTlZfV19QSFlGVU5DOw0KKw0KKy8qQVQrWlNFVD0idGRzX2luc3RydW1lbnQiLFtbPHdWYWx1ZT5dLFs8d1BhZGluZzE+XSxbPHdQYWRpbmcyPl0sWzx3UGFkaW5nMz5dXSAqLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKwlXT1JEIHdWYWx1ZTsNCisJV09SRCB3UGFkaW5nWzNdOw0KK31UX3pQU19QX05WX1REU19JTlNUUlVNRU5UOw0KKw0KKy8qQVQrWlNFVD0idGRzX3BoeWZ1bmMiLFtbPHdWYWx1ZT5dLFs8d1BhZGluZzE+XSxbPHdQYWRpbmcyPl0sWzx3UGFkaW5nMz5dXSovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorCVdPUkQgd1ZhbHVlOw0KKwlXT1JEIHdQYWRpbmdbM107DQorfVRfelBTX1BfTlZfVERTX1BIWUZVTkM7DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorCVRfelBTX1BfTlZfV19JTlNUUlVNRU5UIHRXSW5zdHJ1bWVudDsvL3fSx7HtwOC/2NbGuabE3A0KKwlUX3pQU19QX05WX1dfUEhZRlVOQyB0V1BoeWZ1bmM7Ly93zu/A7bLjtffK1MDgv9jWxrmmxNwNCit9VF96UFNfUF9BVE5WX1c7DQorDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorCVRfelBTX1BfTlZfVERTX0lOU1RSVU1FTlQgdFRkc0luc3RydW1lbnQ7Ly90ZHMg0sex7cDgv9jWxrmmxNwNCisJVF96UFNfUF9OVl9URFNfUEhZRlVOQyB0VGRzUGh5ZnVuYzsvL3RkcyDO78DtsuO198rUwOC/2NbGuabE3A0KKyAgICBXT1JEIHNoYW5nRG9uZ1BzbUZsYWc7IC8qIEFUK1pTRVQ9IlNIQU5ET05HX1BTTSJbLDxuPl0gyb22q7ao1saw5rG+z+C52L/Y1sYsMbTyv6qjrDC52LHVICovDQorICAgIFdPUkQgd1BhZGRpbmc7IA0KK31UX3pQU19QX0FUTlZfVEQ7DQorDQorLypBVCtaU0VUPSJjb21fcGh5ZnVuYyIsW1s8d1ZhbHVlPl0sWzx3UGFkaW5nMT5dLFs8d1BhZGluZzI+XSxbPHdQYWRpbmczPl1dKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisJV09SRCB3VmFsdWU7DQorCVdPUkQgd01vZGVsVHlwZTsvL9DNusW7+sDg0M0NCisJV09SRCB3UGFkaW5nWzJdOw0KK31UX3pQU19QX05WX0NPTU1PTl9QSFlGVU5DOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKwlUX3pQU19QX05WX0NPTU1PTl9QSFlGVU5DIHRDb21QaHlGdW5jOy8vuPfWxsq9uau5sr/Y1sa5psTcDQorICAgIFdPUkQgbXRuZXRUZXN0RmxhZzsgICAgLyogQVQrWlNFVD0iTVRORVRfVEVTVCJbLDxuPl0gyOvN+LLiytS/2NbGo6wxtPK/qqOsMCC52LHVICovDQorICAgIFdPUkQgd0NtY2NDaGlwVGVzdDsvKkFUK1pTRVQ9IkNNQ0NfQ0hJUF9URVNUIlssPG4+XSDW0NLG0L7GrMjP1qTW0LzIsru3+7rP0K3S6dKysru3+7rPzeKzobXEtKbA7b+qudijrDA6udix1aOsMTq08r+qLMSsyM8wKi8NCit9VF96UFNfUF9BVE5WX0NPTU1PTjsNCisNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVF96UFNfUF9BVE5WX0xURSB0QXROdkx0ZTsNCisgICAgV09SRCB3THRlUGFkaW5nW0FUX05WX1NJWkVfV09SRF9QRVJfTU9ERSsxMyAtIChzaXplb2YoVF96UFNfUF9BVE5WX0xURSkvc2l6ZW9mKFdPUkQpKV07DQorICAgIA0KKyAgICBUX3pQU19QX0FUTlZfTFRFQSB0QXROdkx0ZWE7DQorICAgIFdPUkQgd0x0ZWFQYWRpbmdbQVRfTlZfU0laRV9XT1JEX1BFUl9NT0RFLTEzIC0gKHNpemVvZihUX3pQU19QX0FUTlZfTFRFQSkvc2l6ZW9mKFdPUkQpKV07DQorICAgIA0KKyAgICBUX3pQU19QX0FUTlZfVyB0QXROdlc7DQorICAgIFdPUkQgd1dQYWRpbmdbQVRfTlZfU0laRV9XT1JEX1BFUl9NT0RFIC0gKHNpemVvZihUX3pQU19QX0FUTlZfVykvc2l6ZW9mKFdPUkQpKV07DQorICAgIA0KKyAgICBUX3pQU19QX0FUTlZfVEQgdEF0TnZUZDsNCisgICAgV09SRCB3VGRQYWRpbmdbQVRfTlZfU0laRV9XT1JEX1BFUl9NT0RFIC0gKHNpemVvZihUX3pQU19QX0FUTlZfVEQpL3NpemVvZihXT1JEKSldOw0KKw0KKyAgICBUX3pQU19QX0FUTlZfQ09NTU9OIHRBdE52Q29tOw0KKyAgICBXT1JEIHdDb21QYWRpbmdbQVRfTlZfU0laRV9XT1JEX1BFUl9NT0RFIC0gKHNpemVvZihUX3pQU19QX0FUTlZfQ09NTU9OKS9zaXplb2YoV09SRCkpXTsNCisgICANCit9VF96UFNfUF9BVE5WOw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgIMirvtax5MG/yfnD9yAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCisNCisjZW5kaWYgIC8qX1BTX1BIWV9OVl9IKi8NCmRpZmYgLS1naXQgYS9wdWIvaW5jbHVkZS9wc19waHkvcHNldmVudC5oIGIvcHViL2luY2x1ZGUvcHNfcGh5L3BzZXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MWFkN2I1Ci0tLSAvZGV2L251bGwKKysrIGIvcHViL2luY2x1ZGUvcHNfcGh5L3BzZXZlbnQuaApAQCAtMCwwICsxLDUxNDYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqsOaxvsv509AgKEMpMjAwN9bQ0MvNqNG2ucm33dPQz965q8u+DQorICogIMSjv+nD+yAgo7pQVUINCisgKiAgzsS8/sP7ICAgIKO6cHNFdmVudC5oDQorICogIM7EvP6x6sq2o7oNCisgKiAgz+C52M7EvP6jug0KKyAqICDKtc/WuabE3KO60K3S6dW7yO28/srCvP66xbao0uUNCisgKiAg1/fV3yAgICCjug0KKyAqICCw5rG+ICAgIKO6DQorICogIM3qs8nI1cbao7oNCisgKiAgxuTL/Mu1w/ejug0KKyAqDQorICog0N64xLzHwry6xSAgICAgICAgyNXG2iAgICAgICAgICAgINDeuMTIyyAgICAgICAgICAgICAgICDQ3rjExNrI3Q0KKyAgICAxICAgICAgICAgICAgMjAwOC4wMi4yMyAgICAgICAgICAgIL2tuuggICAgICAgICAgICAxKdCt0unVu9Do0qq6zUNPTU5FT060+sLru6XNqKOsxuTKwrz+usW2qNLlzqoxNs67oaO5ys/e1sbQrdLp1bvKwrz+usXT0NCnt7bOp86qtc0xNs67oaMNCisgICAgMiAgICAgICAgICAgIDIwMDguMDUuMTQgICAgICAgICAgICC9rbroICAgICAgICAgICAgMSnU9rzTwctTQ0nT61VSUkMvQ0PWrrzktcTKwrz+usW2qNLlDQorICAgIDMgICAgICAgICAgICAyMDA4LjA1LjE1ICAgICAgICAgICAgva266CAgICAgICAgICAgIDEp1Pa808HLQ0PT61VSUkO85LXEysK8/rrFtqjS5TpHTU1BU19DQUxMVFlQRU5PVElGWVJFUV9FVg0KKyAgICA0ICAgICAgICAgICAgMjAwOC4wNS4xOSAgICAgICAgICAgIL2tuuggICAgICAgICAgICAx1Pa801RBRtPrTDFHvOS1xMrCvP66xbao0uUNCisgICAgNSAgICAgICAgICAgIDIwMDguMDUuMjkgICAgICAgICAgICC9rbroICAgICAgICAgICAgMSnU9rzTR1NNsuLK1MSjv+m85MrCvP66xQ0KKyAgICA2ICAgICAgICAgICAgMjAwOC4wNi4wNSAgICAgICAgICAgIL2tuuggICAgICAgICAgICAxKdT2vNNHVkFSX1NDSV9HRVRSRVFfRVahokdWQVJfU0NJX0dFVENORl9FVqGiQ1NDSV9DT05GSUdSRUxfRVYNCisgICAgNyAgICAgICAgICAgMjAwOC4wNi4xMiAgICAgICAgICC9rbroICAgICAgICAgICAgMSnU9rzTQVRJ0+tDU0S85LXEysK8/rrFtqjS5Q0KKyAgICA4ICAgICAgICAgICAyMDA4LjA2LjEyICAgICAgICAgIL2tuuggICAgICAgICAgICAxKc6q1qez1surxKOjrNT2vNPBy6O6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExHTU1fVVNFUkRBVEFQUkVTRU5UX0VWOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdNTUFTX0FTU0lHTlJFUV9FVqGiR01NQVNfSU5GT1JFUV9FVqGiR01NQVNfU1VTUEVORElORF9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENQRElfU0VORERBVEFJTkRfRVajuw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNNX1BEQ1BfUkFUQUNUSU5EX0VWoaJTTV9QRENQX1JBVEFDVFJTUF9FVqGiU01fUERDUF9SQVRERUFDVElORF9FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU01fUERDUF9SQVRTRVFJTkRfRVaholNNX1BEQ1BfUkFUU0VRUlNQX0VWoaJTTV9QRENQX1JFQURZSU5EX0VWo7sNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTlNNX1JBVERFQUNUUlNQX0VWo7sNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTU1BU19QTE1OTElTVFJFSl9FVqGiVU1NQVNfUENIUFJFX1JFUaGiVU1NQVNfQUJPUlRIUFBMTU5SRVFfRVahog0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVNTUFTX1VQREFURVBBUkFNUkVRX0VWoaJVTU1BU19JTkFDVElWRVJFUV9FVqGiVU1NQVNfSU5BQ1RJVkVDTkZfRVahoiAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVU1NQVNfUkFUQ0hOSU5EX0VWoaJVTU1BU19IT1NUQVJUSU5EX0VWoaJVTU1BU19DQ09TVEFSVElORF9FViAgIA0KKyAgICA5ICAgICAgICAgICAyMDA4LjA2LjE0ICAgICAgICAgIL2tuuggICAgICAgICAgICAxKdT2vNNUT09MX05HTUFDX1BNT19SRVFfRVaholRPT0xfTkdNQUNfUFNJX1JFUV9FVrao0uUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMim4/MP7o7pVTU1BU19QQ0hQUkVfUkVRIKO9obdVTU1BU19QQ0hQUkVSRVFfRVYNCisgICAgMTAgICAgICAgICAgMjAwOC4wNi4xNiAgICAgICAgICDL79LUwNcgICAgICAgICAgMSnU9rzTU05EQ1AtU03WrrzkysK8/rrFDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIp1Pa800dTTUGy4srUysK8/rrFOkdWQVJfR1NNQV9HRVRSRVFfRVahokdWQVJfR1NNQV9HRVRDTkZfRVYNCisgICAgMTEgICAgICAgICAgMjAwOC4wNi4xNyAgICAgICAgICDVxcX0s8wgICAgICAgICAgMSnOqtans9bLq8Sjo6zU9rzTwctVUlJDLUdSUqGiVVJSQ8Tasr+holVSUkMtUEhZ1q685MrCvP66xQ0KKyAgICAxMiAgICAgICAgICAyMDA4LjA2LjE4ICAgICAgICAgINXFxfSzzCAgICAgICAgICAxKdT2vNNVTU1BU19UUllIUFBMTU5DTkZfRVYNCisgICAgMTMgICAgICAgICAgMjAwOC4wNi4xOCAgICAgICAgICC9rbroICAgICAgICAgICAgMSnQ3rjEwctVUlJDLUdSUtauvOTKwrz+usXD+7PGDQorICAgIDE0ICAgICAgICAgIDIwMDguMDYuMTkgICAgICAgICAgzfXA8iAgICAgICAgICAgIDEp1Pa801NOU01fUkVBRFlJTkRfRVYsyb6z/VNOU01fUkFUREVBQ1RSU1BfRVYNCisgICAgMTUgICAgICAgICAgMjAwOC4wNi4yMCAgICAgICAgICDL78iqICAgICAgICAgICAgMSnU9rzTVE9PTF9MMVNJTVVfRENDSEZBSUxfQ0ZHX0VWDQorICAgIDE2ICAgICAgICAgIDIwMDguMDYuMjAgICAgICAgICAg1cXF9LPMICAgICAgICAgIDEp1Pa801VSUkNHUlJfQ0FNUE9OQ0VMTENORl9FVqGiVVJSQ0dSUl9DQU1QT05DRUxMSU5EX0VWDQorICAgIDE3ICAgICAgICAgIDIwMDguMDYuMzAgICAgICAgICAgx66/oSAgICAgICAgICAgIDEp1Pa8005HTUFDysK8/rrFOg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE9PTF9OR01BQ19VTFRCRl9FU1RfQ0ZHX0VWICCholRPT0xfTkdNQUNfRExUQkZfRVNUX0NGR19FViAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUT09MX05HTUFDX1VMVEJGX1JFTF9DRkdfRVYgoaJUT09MX05HTUFDX0RMVEJGX1JFTF9DRkdfRVYgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE9PTF9OR01BQ19QS1RUU1JFQ0ZHX1JFUV9FViAgoaJUT09MX05HTUFDX1BLVFRCRlJFTF9SRVFfRVYgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE9PTF9OR01BQ19QS1RQRENIUkVMX1JFUV9FViAgoaJUT09MX05HTUFDX1BLVENDQ19SRVFfRVYgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE9PTF9OR01BQ19QS1RDQ09fUkVRX0VWIKGiVE9PTF9OR01BQ19QS1ROQ0RfUkVRX0VWICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRPT0xfTkdNQUNfUEtUUE9MTF9SRVFfRVYgIKGiVE9PTF9OR01BQ19QS1RQV1JDVFJMVEFfUkVRX0VWICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRPT0xfTkdNQUNfUEtUUFJBQ0hQQVJBX1JFUV9FViCholRPT0xfTkdNQUNfUEtUU0NEX1JFUV9FViAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUT09MX05HTUFDX1BLVFFVRU5PVElfUkVRX0VWICAgIKGiVE9PTF9OR01BQ19QS1RBQ0NSRUpfUkVRX0VWICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5HTUFDX1RPT0xfUEtUTUVBUlBUX0VWoaJOR01BQ19UT09MX1BLVE1PQlRCRlNUQV9FViAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkdNQUNfVE9PTF9QS1RQU0lTVEFfRVYgIKGiTkdNQUNfVE9PTF9QS1RQQVVTRV9FViAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5HTUFDX1RPT0xfUEtURU1FQVJQVF9FViAgoaJOR01BQ19UT09MX1BLVEFERE1TUkFDX0VWICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkdNQUNfVE9PTF9QS1RDQ05fRVYgoaJOR01BQ19UT09MX1BLVFNJU1RBX0VWICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKdT2vNNOR1JMQ8rCvP66xToNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRPT0xfTkdSTENfVUxUQkZfRVNUX0NGR19FViAgICCholRPT0xfTlJMQ19QVUFOX1JFUV9FViAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE9PTF9OR1JMQ19ETFRCRl9DRkdfRVYgICAgICAgICAgICChok5HUkxDX1RPT0xfRExUQkZfSEFMRl9JTkRfRVYgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOR1JMQ19UT09MX0RMVEJGX0ZJTkFMX0lORF9FViAgICChok5HUkxDX1RPT0xfVUxUQkZfSEFMRl9JTkRfRVYgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOR1JMQ19UT09MX1VMVEJGX0ZJTkFMX0lORF9FViAgICCholRPT0xfTkdSTENfVUxUQkZfUkVMX0VWICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOR1JMQ19UT09MX1VMVEJGX0ZBSV9JTkRfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMynAqdW5wctOR01BQ8rCvP63ts6no7o1MC2htzEwMA0KKyAgICAxOCAgICAgICAgICAyMDA4LjA3LjAyICAgICAgICAgIL2v1de0uiAgICAgICAgICAxKU1NSUHT67TmtKK53MDtxKO/6bXEysK8/rrFtcTHsNe6sLRBUC1NTUlBysK8/rrFx7DXug0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKU1NSUHT67TmtKK53MDtxKO/6bXEysK8/rrFtcS3ts6n08nUrcC0tcRNTUlBLU5BU9LGtb1BUC1NTUlBDQorICAgIDE5ICAgICAgICAgIDIwMDguMDcuMDMgICAgICAgICAgva266CAgICAgICAgICAgIDEp1Pa808no1sNOVU1BQ6GiTlVSTEPTprTwv9jWxs/7z6I6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBURVNUX1VSTENBQ0tDVFJMX1VUUkFOX0VWoaJURVNUX1VNQUNBQ0tDVFJMX1VUUkFOX0VWDQorICAgIDIwICAgICAgICAgIDIwMDguMDcuMTkgICAgICAgICAgva266CAgICAgICAgICAgIDEp1Pa801RPT0xfTDFTSU1VX1NZU0lORk9GQUlMX0NGR19FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTUFDX0dFVF9CTE9DS1NfRVahokdNQUNfQUNLX0JMT0NLU19FVqGiVE9PTF9OR01BQ19QS1RQR1JFUV9SRVFfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMinQ3rjETkdSTEPKwrz+usW2qNLlDQorICAgIDIxICAgICAgICAgIDIwMDguMDcuMjIgICAgICAgICAgva266CAgICAgICAgICAgIDEp1Pa800dTTcSjxOLKwrz+usW3ts6nuuq2qNLlo7pFVkVOVF9QU19HU01fU0lNVV9CRUdJTi9FVkVOVF9QU19HU01fU0lNVV9FTkQNCisgICAgMjIgICAgICAgICAgMjAwOC4wNy4yNSAgICAgICAgICDFy8DaICAgICAgICAgICAgMSnU9rzT0+tUQ8/gudjKwrz+usW2qNLlDQorICAgIDIzICAgICAgICAgIDIwMDguMDguMTMgICAgICAgICAgva266CAgICAgICAgICAgIDEp1Pa808HLVU1DUi1HUEhZ1q685LXEysK8/rrFt7bOp7ao0uUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMim9q1VNQ1LT60dTTbLiwb/P4LnYysK8/rrFtqjS5dLGyOtVTUNSLUdQSFm3ts6nxNoNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMynU9rzTwctVUlJBxKO/6bXEtqjKscb3ysK8/rrFtqjS5Q0KKyAgICAyNCAgICAgICAgICAyMDA4LjA4LjE0ICAgICAgICAgINXFxfSzzCAgICAgICAgICAxKdT2vNPBy1VSUkMtR1JSvORVUlJDR1JSX0hPSU5GT0NORl9FVqGiVVJSQ0dSUl9IT0lORk9JTkRfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMinU9rzTwcu6r8r90MXB7rj619nKwrz+usW3ts6nus1VUlJD0MXB7rj619nKwrz+usW2qNLlDQorICAgIDI1ICAgICAgICAgIDIwMDguMDguMTUgICAgICAgICAgzMDUwrGmICAgICAgICAgIDEp1Pa801VSUkNJTlRSQV9SQURJT0xJTktGQUlMX0lORF9FVs/7z6INCisgICAgMjYgICAgICAgICAgMjAwOC4wOC4xOCAgICAgICAgICDN9cDyICAgICAgICAgICAgMSnU9rzTTDFTSU1VysK8/rrFo7oNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwxU0lNVV9UT09MX1JYTEVWUkVRX0NGR19FViAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTDFTSU1VX1RPT0xfU1lOQ1JFUV9DRkdfRVYgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMMVNJTVVfVE9PTF9TWVNSRVFfQ0ZHX0VWICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwxU0lNVV9UT09MX0lETEVNT0RFUkVRX0NGR19FViAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTDFTSU1VX1RPT0xfTkNFTExSWExFVklORF9DRkdfRVYgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMMVNJTVVfVE9PTF9TQ0VMTFJYTEVWSU5EX0NGR19FViAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwxU0lNVV9UT09MX01FQVNfUkVQT1JUX0NGR19FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTDFTSU1VX1RPT0xfRExUQkZSRUxJTkRfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwxU0lNVV9UT09MX1VMVEJGUkVMSU5EX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIp1Pa8005HTUFDysK8/rrFo7pUT09MX05HTUFDX0NUUkxCTE9DS19SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDKr9fawKQgICAgICAgICAgMSnU9rzTVVJSQdPrVEQgUEhZ1q685MrCvP66xbao0uUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMinU9rzTTDFHLUdTTUHWrrzkysK8/rrFtqjS5Q0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINfe0d4gICAgICAgICAgICAxKdT2vNNHTU1BU19DQ1NZTkNJTkRfR1NNX0VWysK8/rrFDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg1cW9oSAgICAgICAgICAgIDEp1Pa8005MQVBETbrNVFJT1q685NPD09qyu82sU0FQSbzkz/vPoreiy826zdLss6Oy4srUtcTKwrz+usW2qNLlDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOTEFQRE1fTDJfREFUQV9JTkRfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5MQVBETV9UT09MX1NBQk1fSU5EX0VWICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUT09MX05MQVBETV9VQV9SU1BfRVYgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkxBUERNX1RPT0xfU0FCTV9DT1JfSU5EX0VWICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE9PTF9OTEFQRE1fVUFfQ09SX1JTUF9FViAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUT09MX05MQVBETV9FWENFUFRfREFUQV9FViAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5MQVBETV9UT09MX0lfSU5EX0VWICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINe/1L0gICAgICAgICAgICAxKdT2vNNVUlJDX0ZVTkNfU1VTUEVORE1FQVNSRVFfRVYgIA0KKyAgICAyNyAgICAgICAgICAyMDA4LjA4LjIwICAgICAgICAgIMqv19rApCAgICAgICAgICAxKdT2vNNMMUfQxcHuuPrX2crCvP66xbao0uWjukwxR19TVF8uLi4uDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIp1Pa801VSUkEtR1BIWcrCvP66xbe2zqe2qNLlICAgICANCisgICAgMjggICAgICAgICAgMjAwOC4wOC4zMCAgICAgICAgICC9qrKoICAgICAgICAgICAgMSnTydPatKbA7bjV16TB9MSz0KHH+DFTxNqyu8TcttSy4sG/uPy6w7XE0KHH+L340NDW2NGho6zU9rzTVUNTUl9UQ0FNUDFTX0VYUElSWV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIMeuv6EgICAgICAgICAgICAyKdT2vNNHU03QxcHuuPrX2crCvP66xbao0uWhoyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisgICAgMjkgICAgICAgICAgMjAwOC4wOS4wMyAgICAgICAgICC9rbroICAgICAgICAgICAgMSlMMUdfR1NNQV9FVkVOVF9CQVNFL0wxR19HU01BX0VWRU5UX0VORCDQ3rjEzqqjukwxR19ETV9FVkVOVF9CQVNFL0wxR19ETV9FVkVOVF9FTkQNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMilMMUfLq8Sjz/vPosew17q4/LjEzqqjukwxR19ETV8NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMynU9rzTwctMMUdfRE1fVEREX0NFTExfTUVBU19SRVENCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCnU9rzTwctMMVNJTVVfVE9PTF9UQUZJTkRfRVahokwxU0lNVV9UT09MX1RBRlJFUV9FVg0KKyAgICAzMCAgICAgICAgICAyMDA4LjA5LjE2ICAgICAgICAgIM31wPIgICAgICAgICAgICAxKdT2vNMzR8qxLFVNTc/yUkJDxeTWw9GwuvS1xMfrx/PKwrz+usWjug0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVU1NQVNfUEFHRVJFUV9FViAgICAgICAgIA0KKyAgICAzMSAgICAgICAgICAyMDA4LjA5LjE5ICAgICAgICAgIL2tuuggICAgICAgICAgICAxKVNETMjOzvG6zcbVzajIzs7xvOTP+8+itqjS5c2z0rvU2lNJR19DT0RFLkjW0KOsz8LB0Lrqw/uxu9LG19+jug0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTDFHX0RNX0RFQUNUX1VNVFNfUkVRoaJMMUdfRE1fREVBQ1RfR1NNX0NORg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTDFHX0RNX1RERF9DRUxMX01FQVNfUkVRoaJMMUdfVVRSQU5fTUVBU19QRVJJT0RfSU5EDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIpyb6z/cHLo7oNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwxR19ETV9FVkVOVF9CQVNFoaJMMUdfRE1fRVZFTlRfRU5EDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQX0dTTV9JTkFDVF9USU1FX1JFUV9FVqGiUF9BQk9SVF9HU01fR0FQX1JFUV9FVqGiUF9VTVRTX0lETEVfUEVSSU9EX1JFUE1PREVfUkVRX0VWDQorICAgIDMyICAgICAgICAgIDIwMDguMDkuMjIgICAgICAgICAgzfXQob34ICAgICAgICAgIDEp1Pa800FQX01NSUFfU01TQUJPUlRNT1JFUV9FVqGiTU1JQVNNU19BQk9SVE1PUkVRX0VWDQorICAgIDMzICAgICAgICAgICAgMjAwOC4xMC4xMCAgICAgICAgICAgIM31wPIgICAgICAgICAgICAxKdT2vNNVTU1BU19QV1JPTlJFUV9FVg0KKyAgICAzNCAgICAgICAgICAyMDA4LjEwLjE1ICAgICAgICAgIM31vrTSoiAgICAgICAgICAxKdT2vNNOR01BQ8rCvP66xToNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5HTUFDX1RPT0xfQ0NGX0lORF9FVg0KKyAgICAzNSAgICAgICAgICAyMDA4LjEwLjI0ICAgICAgICAgIMqv19rApCAgICAgICAgICAxKdT2vNNMMVNJTVXKwrz+usWjug0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTDFTSU1VX1RPT0xfQVNZTkNfSE9fUkVRX0NGR19FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMMVNJTVVfVE9PTF9TWU5DX0hPX1JFUV9DRkdfRVYNCisgICAgMzYgICAgICAgICAgMjAwOC4xMS4wNSAgICAgICAgICC9rbroICAgICAgICAgICAgMSnQ3rjEy/nT0Fpfx7DXus6qDQorICAgIDM3ICAgICAgICAgIDIwMDguMTEuMTMgICAgICAgICAgzfXA8iAgICAgICAgICAgIDEp1Pa800dNTV9UUE9XRVJPRkZfRVhQSVJZX0VWOjJHudi7+rzgv9jIpbvuwfezzLaoyrHG9w0KKyAgICAzOCAgICAgICAgICAyMDA4LjExLjE3ICAgICAgICAgINHuzsTHvyAgICAgICAgICAxKcihz/vP+8+iTkdSTENfU1RBUlRfVElNRVJfRVYosrvU2cq508MpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIp1Pa80yDP+8+iTkdSTENfVE9PTF9ETFRCRl9GQUlfSU5EX0VWoaJUT09MX05HUkxDX0JFR0lOVEVTVE1PREVfRVahok5HUkxDX1RPT0xfUERBTk5PVElGWV9FVg0KKyAgICAzOSAgICAgICAgICAyMDA4LjExLjI3ICAgICAgICAgILjfz+ggICAgICAgICAgICAxKdT2vNNDVU1BQ19HRVRUVkJPQ01QSU5EX0VWo6zS1M2o1qpVTUNSxKO/6bLJ0fnN6rPJo6y/ydLUvfjQ0M/gudjGwLnAus2xqLjmoaMNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDOpNPx1eQgICAgICAgICAgMSnU9rzTUF9HU01fTUVBU19ET05FX1JFUV9FVg0KKyAgICA0MCAgICAgICAgICAyMDA4LjExLjI4ICAgICAgICAgINe/1L0gICAgICAgICAgICAxKcm+s/3By01BQ7Liwb+yv7fW0MXB7rj619nP+8+iVVJSQ19GVU5DX1NVU1BFTkRNRUFTUkVRX0VWLFVSUkNfRlVOQ19UVk1FQVNSRVFfRVYsVVJSQ19GVU5DX1FVQU1FQVNSRVFfRVYsVVJSQ19GVU5DX1VFSU5URVJNRUFTUkVRX0VWLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUlJDX0ZVTkNfUkVTVU1FTUVBU1JFUV9FVixVUlJDX0ZVTkNfTUFDUlBUX0VWLFVSUkNfRlVOQ19UVkRJU1RSSUJVVEVfRVYsVVJSQ19GVU5DX1FVQURJU1RSSUJVVEVfRVYsVVJSQ19GVU5DX1VFSU5URVJESVNUUklCVVRFX0VWDQorICAgIDQxICAgICAgICAgIDIwMDguMTIuMTAgICAgICAgICAgva/V17S6ICAgICAgICAgIDEp1Pa801VNTUFTX0FCT1JUQ05GX0VWDQorICAgIDQyICAgICAgICAgIDIwMDguMTIuMjkgICAgICAgICAgva266CAgICAgICAgICAgIDEpzqrWp7PWvcWxvr/Y1sZDU0TStc7xo6zU9rzTVEVTVF9UQUZEQVRBSU5EX1VUUkFOX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAguN/P6DE0ODcyNSAgICAgIDEp0N64xFNNtqjKscb3ysK8/rrFtqjS5Q0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKdT2vNNNTUlBU01fUERQQVVUT0FDVElORF9FVg0KKyAgICA0MyAgICAgICAgICAyMDA4LjEyLjMxICAgICAgICAgICAg197R3iAgICAgICAgICAgIDEp1Pa808HLQ0O2qMqxxvfKwrz+usUgo7pDQ19UTU1DT05OX0VYUElSWV9FViC84L/YTU3BrL3TtcS9qMGiDQorICAgIDQ0ICAgICAgICAgIDIwMDkuMDIuMTAgICAgICAgICAg0e7UyiAgICAgICAgICAgIDEp1Pa808HLTU3Eo7/ptqjKscb3z/vPoqO6TU1fVDMyMzFfRVhQSVJZX0VWoaJNTV9UMzIzMl9FWFBJUllfRVYNCisgICAgNDUgICAgICAgICAgMjAwOS4wMi4xMiAgICAgICAgICC9rbroICAgICAgICAgICAgMSlUQUbT60wxR8/7z6K2qNLl0sbI61NJR19DT0RFLkijrMm+s/1UQUZfTDFHz/vPore2zqcNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMinU9rzTVEFGuq/K/dDFwe64+tfZz/vPoqO6VEFGX0ZVTkNfTDFHREFUQVJFUV9FVg0KKyAgICA0NiAgICAgICAgICAyMDA5LjAyLjE2ICAgICAgICAgIM310KG9+CAgICAgICAgICAxKVVNTdDC1PZBVMP8we6juklNU0m8pLvuyKW77sfrx/OhorbUwb249tPyzazKsb340NDIpbvutcTH68fzoaLJ6NbDR1BSU9fUtq+4vdfFx+vH86OsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg1Pa808/7z6K2qNLlo7pBUF9NTUlBX1pBVFRTRVRSRVFfRVahokFQX01NSUFfWkFUVFFVRVJZUkVRX0VWoaINCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1pHQUFUU0VUUkVRX0VWoaJBUF9NTUlBX1pHQUFUUVVFUllSRVFfRVahog0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfWkFUVFFVRVJZQ05GX0VWoaJBUF9NTUlBX1pHQUFUUVVFUllDTkZfRVYNCisgICAgNDcgICAgICAgICAgMjAwOS4wMi4xOSAgICAgICAgICDL77Okva0gICAgICAgICAgMSlNTS9HTU0vQ0OjrVJSQ8/7z6K6xbao0uXU9rzTo7pHTU1BU19DU1JBQlJFTElORF9FVjsNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMilVUlJDIC0gxNqyv8/7z6K6xbao0uXU9rzTo7pVUlJDSU5UUkFfQUJPUlRDRkdSRVFfRVY7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMpVU1BQyAtIFVSUkMgz/vPorrFtqjS5dT2vNOjukNVTUFDX0FDVFRJTUVOT1RJRllfUkVRX0VWo7sNCisgICAgNDggICAgICAgICAgMjAwOS4wMi4yMSAgICAgICAgICDX3tHeICAgICAgICAgICAgMSnWp7PWTU9ESUZZuf2zzKOs1Pa800ND0+tUQUbKwrz+usW2qNLlo7oNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDQ1RBRl9QRU5EX1JFUV9FVqGiQ0NUQUZfUkVTVU1FX1JFUV9FVqGiQ0NUQUZfTU9ESUZZQkNfUkVRX0VWoaJDQ1RBRl9NT0RJRllCQ19DTkZfRVYgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMinU9rzTQ0O2qMqxxvfKwrz+usW2qNLlo7oNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENDX1RSRUxUQUZfRVhQSVJZX0VWICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENDX1RDT05OVEFGX0VYUElSWV9FViANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENDX1RTWU5DSU5EX0VYUElSWV9FViANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENDX1RNT0RJRllCQ19FWFBJUllfRVYNCisgICAgNDkgICAgICAgICAgMjAwOS4wMi4yNCAgICAgICAgICDCvbu2ICAgICAgICAgICAgMSnOqtans9ZVU0FUuabE3KOs1Pa8001NSUHT60FUSS9VSUND1q685MrCvP66xbao0uWjug0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9VU0FUX0VOVkVMT1BSRVFfRVYgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfVVNBVF9FTlZFTE9QQ05GX0VWICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1VTQVRfVEVSTU5MUlNQUkVRX0VWICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfVVNBVF9URVJNTkxQUk9GUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1VTQVRfUFJPQ01ESU5EX0VWICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfVUlDQ19VU0FUX0VOVkVMT1BSRVFfRVYgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX1VJQ0NfVVNBVF9FTlZFTE9QQ05GX0VWICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9VSUNDX1VTQVRfVEVSTU5MUlNQUkVRX0VWICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX1VJQ0NfVVNBVF9URVJNTkxQUk9GUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9VSUNDX1VTQVRfQ09NTU9OQ05GX0VWICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfVUlDQ19VU0FUX1BST1ZDTURJTkRfRVYgICAgDQorICAgNTAgICAgICAgICAgIDIwMDkuMDMuMDUgICAgICAgICAgzfXQob34ICAgICAgICAgIDEpVUlDQ05PQ0FSRElORLK71NnJz7GouPhBVEmjrMv50tTJvrP9QVBfTU1JQV9VSUNDTk9DQVJESU5EX0VWDQorICAgNTEgICAgICAgICAgIDIwMDkuMDMuMTAgICAgICAgICAgva266CAgICAgICAgICAgINT2vNPWp7PWQ0JTuabE3A0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKdT2vNNNTUlBLUFUSaGiTU1JQS1DQlPWrrzkysK8/rrFtqjS5aO6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX0NCU19DU0NCU0VUUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfQ0JTX0NTQ0JSRUFEUkVRX0VWICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfQ0JTX1NBVklOR1NFVFJFUV9FViANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfQ0JTX1JFU1RPUkVTRVRSRVFfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfQ0JTX0NTQ0JSRUFEQ05GX0VWICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfQ0JTX1RDQk1JTkRfRVYgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfQ0JTX1BDQk1JTkRfRVYgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfQ0JTX1RDQk1MSVNUQ05GX0VWICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfQ0JTX1BDQk1MSVNUQ05GX0VWICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfQ0JTX1RDQk1SRUFEQ05GX0VWICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfQ0JTX1BDQk1SRUFEQ05GX0VWIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU1JQUNCU19BQ1RJVkFURVJFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU1JQUNCU19BQ1RJVkFURUNORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU1JQUNCU19EQVRBSU5EX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIpQ0JTz+C52EFUw/zB7rbU06bP+8+itNNBUC1NTUlBIFNNU7K/t9a2qNLl1tDJvrP9o7oNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfU01TQ1NDQlJFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9TTVNDU0FTUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1NNU0NSRVNSRVFfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfU01TVENCTUlORF9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9TTVNUQ0JNUkVBRENORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9TTVNDU0NCQ05GX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1NNU0NTQVNDTkZfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfU01TQ1JFU0NORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9TTVNUQ0JNTElTVENORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzKUNCU9PrVVJCQ7XE1q685LXEysK8/rrFtqjS5ToNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENCU0FTX05PRFJYUkVRX0VWICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENCU0FTX0RSWFJTVlJFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0JTQVNfU1RPUFJFUV9FViANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENCU0FTX1BDSENFTExJTkZPSU5EX0VWIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0KUNCU9PrVU1N1q685LXEysK8/rrFtqjS5bXEtqjS5ToNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVNTUNCU19TVEFSVFJFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVU1NQ0JTX1NUT1BSRVFfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVNTUNCU19DRUxMSU5GT0lORF9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1KUNCU7aoyrHG98/7z6LKwrz+usW1xLao0uU6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDQlNfVFNDSEVEQ0hFQ0tfRVhQSVJZX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYp1Pa801VSQkPT61VSTEPWrrzkvdO/2rao0uWjug0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1VSTENfQ0JTUkJDT05GSUdSRVFfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNynU9rzTVVJCQ9PrUEhZ1q685L3Tv9q2qNLlo7oNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBfQ0JTX05PRFJYX1JFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUF9DQlNfRFJYX1JFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUF9BRERfTU9ESUZZX0NCU19SRVFfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBfU1RPUF9DQlNfUkVRX0VWDQorICAgNTIgICAgICAgICAgIDIwMDkuMDMuMjAgICAgICAgICAgzfXQob34ICAgICAgICAgIDEp1Pa809ans9ZBVMP8we6juitaVVNUQVQsK1pVUkRZLCtaVVNMT1QsK1pQSU5TVEFUDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1VJQ0NDT01NQU5EUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1VJQ0NDT01NQU5EUVVFUllDTkZfRVYNCisgICA1MyAgICAgICAgICAgMjAwOS4wMy4yMyAgICAgICAgICDN9dChvfggICAgICAgICAgMSnU9rzTz/vPoqO6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1VTQVRfTE9DSU5GT0NORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9VU0FUX0xPQ0lORk9SRVFfRVYNCisgICA1NCAgICAgICAgICAgMjAwOS4wMy4zMSAgICAgICAgICDCvbu2ICAgICAgICAgICAgMSnU9rzT1qez1rmks8zEo8q9o7oNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfRU1fQ0VMTElORk9SRVFfRVYgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfRU1fQ0VMTElORk9RVUVSWVJFUV9FViANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfRU1fTE9DS0NFTExSRVFfRVYgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfRU1fSE9JTkZPUkVRX0VWICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfRU1fSE9JTkZPUVVFUllSRVFfRVYgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfRU1fQ0VMTElORk9JTkRfRVYgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfRU1fQ0VMTElORk9RVUVSWUNORl9FViANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfRU1fSE9JTkZPSU5EX0VWICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfRU1fSE9JTkZPUVVFUllDTkZfRVYgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1NSUFVTU1fRU1fTE9DS0NFTExSRVFfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1NSUFVTU1fRU1fTE9DS0NFTExDTkZfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1NSUFBU19FTV9DRUxMSU5GT1JFUV9FViANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1NSUFBU19FTV9IT0lORk9fUkVRICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1NSUFBU19FTV9VQ0VMTElORk9JTkRfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1NSUFBU19FTV9VSE9JTkZPSU5EX0VWICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVNTUFTX0xPQ0tDRUxMUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTU1BU19VTkxPQ0tDRUxMUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTU1BU19MT0NLQ0VMTENORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU1JQV9FTV9IT0lORk9fRVhQSVJZX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTUNSX0VNX0NFTExJTkZPX0VYUElSWV9FVg0KKyAgIDU1ICAgICAgICAgICAyMDA5LjA0LjAyICAgICAgICAgIM6k0/HV5CAgICAgICAgICAgMSnQ3rjE0MW6xce/tsjJz7Got73KvaOs1Pa806O6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1JYTEVWUkVRX0VWICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1pSUFRSWExFVlJFUV9FViAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1pSUFRSWExFVlFVRVJZUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1JYTEVWQ05GX0VWICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1pSUFRSWExFVklORF9FViAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1pSUFRSWExFVlFVRVJZQ05GX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNTUlBQVNfUlBUUlhMRVZfUkVRX0VWICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1NSUFBU19RVUVSWVJYTEVWX1JFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU1JQUFTX1JQVFJYTEVWX0lORF9FViAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNTUlBQVNfUVVFUllSWExFVl9JTkRfRVYgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDJvrP9Og0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU1JQU1DUl9SUFRQUkRSRVFfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1NSUFNQ1JfUlNTSUlORF9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9DU1FFWEVSRVFfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfWlNRU0VUUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1pTUVFVRVJZUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1pTUUlORF9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9DU1FFWEVDTkZfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfWlNRUVVFUllDTkZfRVYNCisgICAgNTYgICAgICAgICAgMjAwOS4wNC4xMyAgICAgICAgICC9rbroICAgICAgICAgICAgIDEpzqrU9rzTTDFH0+tQSFnWrrzky6vEo8rCvP66xbao0uWjug0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUF9VTVRTX0lETEVfUEVSSU9EX1JFUE1PREVfUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQX0dTTV9JTkFDVF9USU1FX1JFUV9FViAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBfQUJPUlRfR1NNX0dBUF9SRVFfRVYgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMim69L3Q0MXPosnPsaijug0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9DQ1BST0NJTkZPSU5EX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNTUlBQ0NfUFJPQ0lORk9JTkRfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMpzqqx3MPisrvNrL3hubm21NOmzazD+8/7z6KjrNT2vNOjug0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVTVF9VVVJMQ0RBVEFJTkRfVVRSQU5fRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRFU1RfVVVSTENDT05GSUdSRVFfVVRSQU5fRVYNCisgICAgNTcgICAgICAgICAgMjAwOS4wNS4wOCAgICAgICAgICC9qrKoICAgICAgICAgICAgIDEp1Pa801VNQ1LNrFVDU1LWrrzkzajWqsHax/i4/LjEtcRVUlJDxNqyv8rCvP66xToNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSUkNJTlRSQV9ORUlCQ0VMTENIR0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKyAgICA1OCAgICAgICAgICAyMDA5LjA1LjExICAgICAgICAgIL2qsqggICAgICAgICAgICAgMSnJvrP9VUNTUs2sR1NNQdauvOS1xMrCvP66xQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJSQ0dSUl9DQU1QT05DRUxMUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUlJDR1JSX0NBTVBPTkNFTExDTkZfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSUkNHUlJfQ0FNUE9OQ0VMTElORF9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJSQ0dSUl9DQU1QT05DRUxMUlNQX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKdT2vNNVQ1NSzaxHU01B1q685LXEysK8/rrFDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUlJDR1JSX0NFTExSRVNFTFJFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJSQ0dSUl9BTllDRUxMUkVTRUxSRVFfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSUkNHUlJfQ0VMTFJFU0VMSU5EX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUlJDR1JSX0NFTExSRVNFTFJFSl9FVg0KKw0KKyAgICA1OSAgICAgICAgICAyMDA5LjA1LjE5ICAgICAgICAgIL2v1de0uiAgICAgICAgICAgMSnU9rzTVU1NzaxHU01B1q685LXEysK8/rrFDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTU1BU19HU01TUlZOT1RJRllSRVFfRVYNCisgICAgNjAgICAgICAgICAgMjAwOS4wNS4yMCAgICAgICAgICDL77Okva0gICAgICAgICAgIDEpVVJMQyAtIFVSUkMgz/vPorrFtqjS5dT2vNOjukNVUkxDX0NPTkZJR0NORl9FVqO7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIMm+s/3P+8+iusVDVVJMQ19TVE9QUkVRX0VWo7sNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIpVVJSQy9DQ6OtU0NJz/vPorrFtqjS5dT2vNOjukNTQ0lfQ09ORklHQ05GX0VWo7sNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMpUERDUKOtVVJSQ8/7z6K6xbao0uXU9rzTo7pDUERDUF9DT05GSUdDTkZfRVajuw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMilVUlJDIC0gxNqyv8/7z6K6xbao0uXU9rzTo7pVUlJDSU5UUkFfRkFDSENGR1JFUV9FVqO7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSUkNJTlRSQV9GQUNIQ0ZHSU5EX0VWOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMylVTUFDIC0gVVJSQyDP+8+iusW2qNLl1Pa806O6Q1VNQUNfQ09OVElOVUVSRVFfRVajuw0KKw0KKyAgICA2MSAgICAgICAgICAyMDA5LjUuMjIgICAgICAgICAgICDL79LUwNcgICAgICAgICAxKdT2vNNHU01BtqjKscb3tcTKwrz+usW2qNLlDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHU01BX1BST0NUSU1FUl9FWFBJUllfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdTTUFfSU5BQ1RUSU1FUl9FWFBJUllfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKyAgICA2MiAgICAgICAgICAyMDA5LjA2LjA0ICAgICAgICAgIMq30ae67CAgICAgICAgICAxKVBEQ1CjrVVSUkMgz/vPorrFtqjS5dT2vNOjug0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1BEQ1BfUkVMT0NSRUpfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENQRENQX1JFTE9DQ09NUElORF9FViANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENQRENQX1JFTE9DRkFJTElORF9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1BEQ1BfRExQRFVTSVpFQ0hBTkdFUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUERDUF9ETFBEVVNJWkVDSEFOR0VDTkZfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENQRENQX1JPSENUQVJHRVRNT0RFUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIpUERDUKOtVVJSQyDP+8+iusW2qNLlyb6z/aO6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUERDUF9SRUxPQ0NPTVBSRVFfRVYNCisNCisgICAgNjMgICAgICAgICAgMjAwOS4wNi4yMiAgICAgICAgICDOpNPx1eQgICAgICAgICAgMSnQwtT2TUFDVUwtPk1BQ0RMz/vPoqO6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDVU1BQ19OT1RJRllETFBFUklPRFJFUE9SVFJFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKcm+s/3S1M/Cz/vPoqO6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDVU1BQ19NRUFTUkVMUkVRX0VWICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1VNQUNfTUVBU1JFUE9SVElORF9FViAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENVTUFDX1BFUklPRE1FQVNERUxOT1RJRllSRVFfRVYgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDVU1BQ19HRVRUVkJPQ01QSU5EX0VWICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzKdDC1PZSUkPT61VNQUO907/az/vPoqO6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDVU1BQ19UUkFGRklDTUVBU1JFUV9FViAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1VNQUNfUVVBTkxJVFlNRUFTUkVRX0VWICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENVTUFDX0lOVEVSTkFMTUVBU1JFUV9FViAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDVU1BQ19UVk1FQVNSRUxSRVFfRVYgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1VNQUNfUU1FQVNSRUxSRVFfRVYgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENVTUFDX1VFTUVBU1JFTFJFUV9FViAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDVU1BQ19UVk1FQVNSRVNVTUVSRVFfRVYgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1VNQUNfVFZNRUFTU1VTUEVORFJFUV9FViAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENVTUFDX0RMTUVBU1NVU1BFTkRSRVFfRVYgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDVU1BQ19ETE1FQVNSRVNVTUVSRVFfRVYgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1VNQUNfQUREVFZNRUFTUkVQT1JUUkVRX0VWICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENVTUFDX0FERFFNRUFTUkVQT1JUUkVRX0VWICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDVU1BQ19BRERVRU1FQVNSRVBPUlRSRVFfRVYgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorNjUgICAgICAgICAyMDA5LjA2LjIzICAgICAgINHu1MogICAgICAgICAgICAgICAgICAgIDEp1Pa800dNTbaoyrHG97OsyrHKwrz+usW2qNLlo7ogICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR01NX1RXU1BOX0VYUElSWV9FViANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdNTV9UV0NSU19FWFBJUllfRVYgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTU1fVFdUUkdfRVhQSVJZX0VWIA0KKw0KKzY2ICAgICAgICAgIDIwMDkuMDYuMjQgICAgICC9rbroICAgICAgICAgICAgICAgICAgICAxKdDeuMRURVNUX0dWQVJfWFhYzqpHVkFSX1hYWA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKdbY0MLV+8Dtwcuy4srUz/vPosrCvP62qNLlt7bOpyAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzKdT2vNPBy05DQlPP4LnYz/vPorao0uWjuqOovarpqqOpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVTVF9VQ0JTU0NIRURDRkdfVVRSQU5fRVYgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVTVF9VQ0JTREFUQVJFUV9VVFJBTl9FViANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBURVNUX1VDQlNPVVRQVVRFTkRfVVRSQU5fRVYgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVTVF9VQ0JTVU1BQ19URlNDRkdfVVRSQU5fRVYgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVTVF9VQ0JTVU1BQ19TRk5JTkZPX1VUUkFOX0VWICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBURVNUX1VVUkxDREFUQUNORl9VVFJBTl9FViAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE9PTF9MMVNJTVVfQ0JTQkxLX1NUQVJUX0VWIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRPT0xfTDFTSU1VX0NCU0ZTVEJMS19SRVFfRVYgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVE9PTF9MMVNJTVVfQ0JTT1RIRVJCTEtfUkVRX0VWICANCisNCis2NyAgICAgICAgIDIwMDkuMDYuMjkgICAgIFFJQU5KVU4xNTU0ODggICAgICAgICAgICAgMSnU9rzT08O7p8Pm0MXB7rj619nOsc/7z6K2qNLlDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVElQRElfREFUQVJFUV9UUkFDRV9FViAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVBESV9EQVRBUkVRX1RSQUNFX0VWICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNOX0RBVEFfUkVRX1RSQUNFICAgICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU05fVU5JVERBVEFfUkVRX1RSQUNFICAgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTF9EQVRBX1JFUV9UUkFDRSAgICAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMX1VOSVREQVRBX1JFUV9UUkFDRSAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTExDX0dFVF9ORVhUX1BEVV9UUkFDRV9FViAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdNQUNfR0VUX0JMT0NLU19UUkFDRV9FViAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTUFDX0FDS19CTE9DS1NfVFJBQ0VfRVYgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUERDUF9VUERBVEFfVFJBQ0VfRVYgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSTENfR0VUQk9fVFJBQ0VfRVYgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxDX1NFTkRQRFVfVFJBQ0VfRVYgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVU1BQ19URkNTRUxfVFJBQ0VfRVYgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBIX01BQ19EQVRBX0lORF9UUkFDRSAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhfUkxDX0RBVEFfSU5EX1RSQUNFICAgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQUNfUkxDX0RBVEFfSU5EX1RSQUNFICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJMQ19EQVRBX0lORF9UUkFDRSAgICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkxDX1VOSVREQVRBX0lORF9UUkFDRSAgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMTF9EQVRBX0lORF9UUkFDRSAgICAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExMX1VOSVREQVRBX0lORF9UUkFDRSAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU05fREFUQV9JTkRfVFJBQ0UgICAgICAgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTl9VTklUREFUQV9JTkRfVFJBQ0UgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVQRElfREFUQUlORF9UUkFDRV9FViAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVElQRElfREFUQUlORF9UUkFDRV9FViAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVVNQUNfREFUQUlORF9UUkFDRV9FViAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBEQ1BfRE9XTkRBVEFfVFJBQ0VfRVYgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQUZfQ09VTlRFUl9UUkFDRV9FViAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEFGX1JMUF9YSURfVUxGUkFNRV9UUkFDRV9FViAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRl9STFBfWElEX0RMRlJBTUVfVFJBQ0VfRVYgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQUZfUkxQX1NBQk1fVUxGUkFNRV9UUkFDRV9FViAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEFGX1JMUF9TQUJNX0RMRlJBTUVfVFJBQ0VfRVYgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRl9STFBfVUFfVUxGUkFNRV9UUkFDRV9FViAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQUZfUkxQX1VBX0RMRlJBTUVfVFJBQ0VfRVYgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEFGX1JMUF9ESVNDX1VMRlJBTUVfVFJBQ0VfRVYgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRl9STFBfRElTQ19ETEZSQU1FX1RSQUNFX0VWICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQUZfUkxQX0RNX1VMRlJBTUVfVFJBQ0VfRVYgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEFGX1JMUF9ETV9ETEZSQU1FX1RSQUNFX0VWICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRBRkwxR19EQVRBX0lORF9UUkFDRV9FViAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQUZMMUdfREFUQV9SRVFfVFJBQ0VfRVYgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEFGX0ZVTkNfVVVSTENEQVRBSU5EX0VWICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUQUZfRlVOQ19VVVJMQ0RBVEFSRVFfRVYgIA0KKzY4ICAgICAgICAgIDIwMDkuNy4yICAgICAgICAgICDCvbu2ICAgICAgICAgICAgICAgIDEpzqrWp7PW1tDSxsvmRdDQQVTD/MHuo6zU9rzTz8LB0M/7z6Kjug0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfVUlDQ19QSU5FTkFCTEVRVUVSWVJFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfVUlDQ19QSU5FTkFCTEVRVUVSWUNORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfVUlDQ19QSU5TVEFUUVVSRVlSRVFfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX1VJQ0NfUElOU1RBVFFVUkVZQ05GX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9VSUNDX0NBUkRNT0RFUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9VSUNDX0NBUkRNT0RFQ05GX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1NFVFBJTkFQUExSRVFfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfU0VUUElOQVBQTENORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9QSU5BUFBMUkVBRFJFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9QSU5BUFBMUkVBRENORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9DUElOUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX0NQSU5SRUFEUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX0NQSU5SRUFEQ05GX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX0NBUkRNT0RFUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX0NBUkRNT0RFQ05GX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX01PREVSRVFfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfTU9ERUNORl9FVg0KKzY5ICAgICAgICAgIDIwMDkuNy4xNSAgICAgICC9rbroICAgICAgICAgICAgICAgICAgICAxKdLGtq9MMUdfU1RfRVZFTlS3ts6ntb1TSUdUUkFDRV9FVkVOVLe2zqfE2g0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKdT2vNNHVkFSX0NCU19HRVRSRVFfRVahokdWQVJfQ0JTX0dFVENORl9FVg0KKzcwICAgICAgICAgIDIwMDkuNy4xNyAgICAgICDB9bWkICAgICAgICAgICAgICAgICAgICAxKdT2vNNVUlJDLVVSTEO1xMrCvP66xToNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDVVJMQ19TRVREQVRBTk9USUZZTU9ERV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENVUkxDX1BDSFVMREFUQVRSUkVRX0VWDQorNzEgICAgICAgICAgMjAwOS43LjIxICAgICAgIMK9u7YgICAgICAgICAgICAgICAgICAgIDEpyb6z/aO6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfWkJETURTRVRSRVFfRVYgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9aQkRNRFFVRVJZUkVRX0VWICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1pCRE1EUVVFUllDTkZfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMinQwtT2o7oNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9aQUNUU0VUUkVRX0VWICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfWkFDVFFVRVJZUkVRX0VWICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1pBQ1RRVUVSWUNORl9FViAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9NT0RFUVJZUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfTU9ERVFSWUNORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX01PREVTRVRSRVFfRVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCis3MiAgICAgICAgICAyMDA5LjcuMjMgICAgICAgzfXA8iAgICAgICAgICAgICAgICAgICAgMSnU9rzTo6xVTUNS1Nq9+Mjrt8nQ0MSjyr3KsaOszajWqlVSUkNBvfjI67/Vz9C1xM/7z6Kjug0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQX0dTTV9NRUFTX1RPTlVMTF9SRVFfRVYNCis3MyAgICAgICAgICAyMDA5LjcuMjggICAgICAgzqTT8dXkICAgICAgICAgICAgICAgICAgMSnWp7PWyP2w5tDQseqjrNT2vNNVUlJDxNqyv8rCvP66xVVSQkMtVU1DUjogVVJSQ0lOVFJBX0RSWENIR0lORF9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDU9rzTVU1DUi1VUlJDQbXEysK8/rrFOiBQX0dTTV9NRUFTX0RSWF9DSEFOR0VfUkVRX0VWDQorNzQgICAgICAgICAgMjAwOS43LjI4ICAgICAgIMq30ae67CAgICAgICAgICAgICAgICAgIDEp1Pa8005QRENQX0VWRU5UX0JBU0Whok5QRENQX0VWRU5UX0VORA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKdT2vNNOUERDUMrCvP66xaO6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUERDUF9DT05GSUdSRVFfVVRSQU5fRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENQRENQX1JFTEVBU0VSRVFfVVRSQU5fRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5QRENQX0RBVEFSRVFfVVRSQU5fRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5QRENQX0RBVEFJTkRfVVRSQU5fRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRFU1RfTlBEQ1BfREFUQUVSUklORF9VVFJBTl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEVTVF9OUERDUF9EQVRBQ05GX1VUUkFOX0VWDQorNzUgICAgICAgICAgMjAwOS44LjExICAgICAgICDN9cDyICAgICAgICAgICAgICAgICAgIENDL1NNL1NTsr+31tPrQVRJ08W7r73Tv9rQ3rjEDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKdT2vNO6zdDeuMRDQ8Sjv+nTxbuvuvO1xMrCvP66xSBBUF9NTUlB1q685A0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINT2vNOjukFQX01NSUFfQ0NRVUVSWVJFUV9FVi9BUF9NTUlBX1JJTkdJTkRfRVYvQVBfTU1JQV9DUklOR0lORF9FVi9BUF9NTUlBX0NDV0FJTkRfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9NT0NBTExTU05PVElGWV9FVi9BUF9NTUlBX01UQ0FMTFNTTk9USUZZX0VWL0FQX01NSUFfQ0NRVUVSWUNORl9FVi9BUF9NTUlBX0NMSVBJTkRfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9DUklORF9FVi9BUF9NTUlBX0NDU0VUUkVRX0VWL0FQX01NSUFfQ09MUElORF9FVi9NTUlBQ0NfQ1NUQVFVRVJZUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1NSUFDQ19DU1RBU0VUUkVRX0VWL01NSUFDQ19DU1RBUVVFUllDTkZfRVYvQVBfTU1JQV9NT0RUT01VTFRNRURJQVJTUF9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX01PRFRPTVVMVE1FRElBSU5EX0VWL01NSUFDQ19NT0RUT01VTFRNRURJQVJTUF9FVi9NTUlBQ0NfTU9EVE9NVUxUTUVESUFJTkRfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDJvrP9o7pBUF9NTUlBX0NSTFBTRVRSRVFfRVYvQVBfTU1JQV9DUkxQUVVFUllSRVFfRVYvQVBfTU1JQV9DSFNOU0VUUkVRX0VWL0FQX01NSUFfQ0hTTlFVRVJZUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfRVRCTVNFVFJFUV9FVi9BUF9NTUlBX0VUQk1RVUVSWVJFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX0NDU0VUUkVRX0VWL0FQX01NSUFfQ0NTRVRVUElORF9FVi9BUF9NTUlBX0NDQ09NTUFORENORl9FVi9BUF9NTUlBX1NTTk9USUZZSU5EX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfQ0hTTlFVRVJZQ05GX0VWL0FQX01NSUFfRFNRVUVSWUNORl9FVi9BUF9NTUlBX0VUQk1RVUVSWUNORl9FVi9BUF9NTUlBX0NSTFBRVUVSWUNORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX0NDQ0FVU0VRVUVSWVJFUV9FVi9BUF9NTUlBX0NDQ0FVU0VRVUVSWUNORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIp1Pa807rN0N64xFNNxKO/6dPFu6+687XEysK8/rrFIEFQX01NSUHWrrzkDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgyb6z/aO6IEFQX01NSUFfU01RVUVSWVJFUV9FVqGiQVBfTU1JQV9TTUhBTkRMRVJFUV9FVqGiQVBfTU1JQV9TTUFOU1JFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9TTVBEUEFERFJSRVFfRVahokFQX01NSUFfU01ORUdRT1NSRVFfRVahokFQX01NSUFfU01NT0RFTU1PUkVRX0VWoaINCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfU01NT0RFTUFOU1JFUV9FVqGiQVBfTU1JQV9TTUNBVVNFUkVRX0VWoaJBUF9NTUlBX1NNQ0FOQ0VMUkVRX0VWoaINCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfU01RVUVSWVBEUElORk9SRVFfRVahokFQX01NSUFfU01RVUVSWUNORl9FVqGiQVBfTU1JQV9TTUhBTkRMRUNORl9FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1NNQU5TQ05GX0VWoaJBUF9NTUlBX1NNUERQQUREUkNORl9FVqGiQVBfTU1JQV9TTU5FR1FPU0NORl9FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1NNTU9ERU1NT0NORl9FVqGiQVBfTU1JQV9TTU1PREVNQU5TQ05GX0VWoaJBUF9NTUlBX1NNQ0FVU0VDTkZfRVahog0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9TTU1UREVBQ1RJVkFURUlORF9FVqGiQVBfTU1JQV9TTUwyUElORF9FVqGiQVBfTU1JQV9TTVFVRVJZUERQSU5GT0NORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINT2vNOjukFQX01NSUFfU01SRUFEUkVRX0VWoaJBUF9NTUlBX1NNUVVFUllQRFBTVEFUVVNSRVFfRVahokFQX01NSUFfU01RVUVSWUFDVENJRFJFUV9FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9TTVFVRVJZREVGQ0lEUkVRX0VWoaJBUF9NTUlBX1NNUVVFUllQRFBBRERSUkVRX0VWoaJBUF9NTUlBX1NNUVVFUllORUdRT1NSRVFfRVahog0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfU01RVUVSWU5FR0VRT1NSRVFfRVahokFQX01NSUFfU01RVUVSWUNBVVNFUkVRX0VWoaJBUF9NTUlBX1NNQUNUREVBQ1RSRVFfRVahog0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfU01NT0RSRVFfRVahokFQX01NSUFfU01NVEFDVEFOU1JFUV9FVqGiQVBfTU1JQV9TTUlQUERQQUNUUkVRX0VWoaINCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1NNT1BFTkNIUlNQX0VWoaJBUF9NTUlBX1NNUVVFUllJRExFQ0hSU1BfRVahokFQX01NSUFfU01HRVRQQ09SU1BfRVahog0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfU01RVUVSWVBEUFNUQVRVU0NORl9FVqGiQVBfTU1JQV9TTVFVRVJZQUNUQ0lEQ05GX0VWoaJBUF9NTUlBX1NNUVVFUllERUZDSURDTkZfRVahog0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfU01RVUVSWVBEUEFERFJDTkZfRVahokFQX01NSUFfU01RVUVSWU5FR1FPU0NORl9FVqGiQVBfTU1JQV9TTVFVRVJZTkVHRVFPU0NORl9FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9TTVFVRVJZQ0FVU0VDTkZfRVahokFQX01NSUFfU01BQ1RERUFDVENORl9FVqGiQVBfTU1JQV9TTU1PRENORl9FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9TTUNHRVZJTkRfRVahokFQX01NSUFfU01JUFBEUEFDVENORl9FVqGiQVBfTU1JQV9TTU9QRU5DSElORF9FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9TTUNMT1NFQ0hJTkRfRVahokFQX01NSUFfU01RVUVSWUlETEVDSElORF9FVqGiQVBfTU1JQV9TTUdFVFBDT0lORF9FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9TTUNPTk5FQ1RJTkRfRVahokFQX01NSUFfU01OT0NBUlJJRVJDTkZfRVYgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzKdT2vNO6zdDeuMRTU8Sjv+nTxbuvuvO1xMrCvP66xSBBUF9NTUlB1q685A0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIMm+s/2jukFQX01NSUFfQ0FBUFRFU1RSRVFfRVYvQVBfTU1JQV9DRkNTUVVFUllSRVFfRVYvQVBfTU1JQV9DUFBTRVhFUkVRX0VWL0FQX01NSUFfQ0ZDU1RFU1RSRVFfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9DQUFQUVVFUllSRVFfRVYvQVBfTU1JQV9DUFBTRVhFQ05GX0VWL0FQX01NSUFfQ0ZDU1FVRVJZQ05GX0VWL0FQX01NSUFfQ0ZDU1RFU1RDTkZfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDU9rzTo7pBUF9NTUlBX0NPTFJRVUVSWVJFUV9FVi9BUF9NTUlBX0NPTFJRVUVSWUNORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIMbBsc7U3c60yrXP1rmmxNy1xMrCvP66xaO6QVBfTU1JQV9DQUVNTFBQU0VUUkVRX0VWICAvQVBfTU1JQV9DQUVNTFBQUVVFUllSRVFfRVYgL0FQX01NSUFfQ0ZDU1NFVFJFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfQ0FBUFNFVFJFUV9FVi9BUF9NTUlBX0NBRU1MUFBRVUVSWUNORl9FViAvQVBfTU1JQV9DQUFQUVVFUllDTkZfRVYgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9DQUFQVEVTVENORl9FViANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCnU9rzTSU1FSS9JTVNJsunRr7rN1qTKtbXEz/vPosrCvP66xSBBUF9NTUlB1q685A0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfUVVFUllJTVNJUkVRX0VWL0FQX01NSUFfUVVFUllJTUVJUkVRX0VWL0FQX01NSUFfUVVFUllJTVNJQ05GX0VWL0FQX01NSUFfUVVFUllJTUVJQ05GX0VWDQorICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUp1Pa807rN0N64xFNTxKO/6dPFu6+1xMrCvP66xSBNTUlBU1PWrrzkLLaoyrHG98/7z6INCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDU9rzTOk1NSUFTU19DT0xSUkVBRFJFUV9FVi9NTUlBU1NfQUJPUlRSRVFfRVYvTU1JQVNTX0NPTU1PTkNORl9FVi9TU19XQUlUX1RJTUVSX0VYUElSWV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU1JQVNTX0NVU0RNVElORF9FVg0KKw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIMm+s/06TU1JQVNTX0NBRU1MUFBTRVRSRVFfRVYvTU1JQVNTX0NBRU1MUFBSRUFEUkVRX0VWL01NSUFTU19DUFdEU0VUQ05GX0VWL01NSUFTU19DQ0ZDU0VUQ05GX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNTUlBU1NfQ0NXQVNFVENORl9FVi9NTUlBU1NfQ0FFTUxQUFNFVENORl9FVi9NTUlBU1NfQ0FFTUxQUFJFQURDTkZfRVYvTU1JQVNTX0ZPUldBUkRDSEVDS19JTkRfRVYgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTU19UNTAwMF9FWFBJUllfRVYvTU1JQVNTX0NVU0RVTlNDTkZfRVYNCisgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2KdT2vNO6zdDeuMRTTcSjv+nTxbuvtcTKwrz+usUgTU1JQVNN1q685Cy2qMqxxvfP+8+iDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgyb6z/ToNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1NSUFTTV9QRFBTVEFUVVNSRVFfRVahok1NSUFTTV9ORUdRT1NSRVFfRVahok1NSUFTTV9QRFBBRERSUkVRX0VWoaINCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1NSUFTTV9DQVVTRVJFUV9FVqGiTU1JQVNNX1BEUEFDVFJFSl9FVqGiTU1JQVNNX1FVRVJZUERQSU5GT1JFUV9FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNTUlBU01fUERQREVBQ1RJVkFURUlORF9FVqGiTU1JQVNNX1BEUFNUQVRVU0NORl9FVqGiTU1JQVNNX05FR1FPU0NORl9FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNTUlBU01fUERQQUREUkNORl9FVqGiTU1JQVNNX0NBVVNFQ05GX0VWoaJNTUlBU01fUVVFUllQRFBJTkZPQ05GX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTTV9BVEhSRUxFQVNFX0VYUElSWV9FVqGiQVBfTU1JQV9TTVFVRVJZQ0FVU0VDTkZfRVahokFQX01NSUFfU01RVUVSWUNBVVNFUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDU9rzTOg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU1JQVNNX1FVRVJZTkVHUU9TUkVRX0VWoaJNTUlBU01fUVVFUllORUdFUU9TUkVRX0VWoaJNTUlBU01fUVVFUllBQ1RDSURSRVFfRVahog0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU1JQVNNX1FVRVJZUERQU1RBVFVTUkVRX0VWoaJNTUlBU01fUVVFUllQRFBBRERSUkVRX0VWoaJNTUlBU01fUVVFUllQRFBDQVVTRVJFUV9FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNTUlBU01fTVRBQ1RBTlNSRVFfRVahok1NSUFTTV9JUFBEUEFDVFJFUV9FVqGiTU1JQVNNX09QRU5DSFJTUF9FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNTUlBU01fUVVFUllJRExFQ0hSU1BfRVahok1NSUFTTV9HRVRQQ09SU1BfRVahok1NSUFTTV9RVUVSWU5FR1FPU0NORl9FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNTUlBU01fUVVFUllORUdFUU9TQ05GX0VWoaJNTUlBU01fUVVFUllBQ1RDSURDTkZfRVahok1NSUFTTV9RVUVSWVBEUFNUQVRVU0NORl9FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNTUlBU01fUVVFUllQRFBBRERSQ05GX0VWoaJNTUlBU01fUVVFUllQRFBDQVVTRUNORl9FVqGiTU1JQVNNX0NHRVZJTkRfRVahog0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU1JQVNNX0lQUERQQUNUQ05GX0VWoaJNTUlBU01fT1BFTkNISU5EX0VWoaJNTUlBU01fQ0xPU0VDSElORF9FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNTUlBU01fUVVFUllJRExFQ0hJTkRfRVahok1NSUFTTV9HRVRQQ09JTkRfRVahok1NSUFTTV9DT01NT05DTkZfRVahog0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU1JQVNNX0NPTk5FQ1RJTkRfRVahok1NSUFTTV9OT0NBUlJJRVJDTkZfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNNX0FVVE9BTlNNVEFDVF9FWFBJUllfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNynU9rzTQVBfTU1JQV9DQVVTRVFVRVJZUkVRX0VWLCBBUF9NTUlBX0NBVVNFUVVFUllDTkZfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgyb6z/UFQX01NSUFfU01TQUJPUlRNT1JFUV9FVi9BUF9NTUlBX0FCT1JUU0VBUkNIUExNTlJFUV9FVg0KKyAgDQorNzYgICAgICAgICAgMjAwOS45LjEwICAgICAgILrOvajOsCAgICAgICAgMSnU9rzTTFRF1sbKvc/Cz+C52LXEysK8/rrFDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgwr27tiAgICAgICAgICAgIDIpvatBUF9NTUlBX0VWRU5UX1VJQ0NfRU5EuurWtdT2vNMxDQorICAgDQorNzcgICAgICAgICAgMjAwOS45LjE2ICAgICAgINPIsfMgICAgICAgIL2rU0lHX0NPREUuSNbQ1K3AtLK/t9ZTREzP+8+io6jV4tCpz/vPorXE1LS6zcS/x7DEo7/ptry4xM6qwcvG1c2oyM7O8aOptcS2qNLlo6y4xM6qxtXNqMjOzvHP+8+itcS2qNLlDQorDQorNzggICAgICAgICAgMjAwOS45LjI3ICAgICAgICDN9dChvfggICAgICAgICAgICDOqsq1z9a05rSiudzA7bmmxNzU9rzTyOfPws/7z6I6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9TTVNDUE1TVEVTVFJFUV9FVixBUF9NTUlBX1NNU1pNRU5BUkVRX0VWLEFQX01NSUFfU01TQ1BNU1RFU1RDTkZfRVYsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9DUEJTVEVTVFJFUV9FVixBUF9NTUlBX0NQQlJTRVRFTkRDTkZfRVYsQVBfTU1JQV9DUEJTVEVTVENORl9FViwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1BCUFJFRk1TR1NUT1JFUV9FVixBUF9NTUlBX1BCUFJFRk1TR1NUT1RFU1RSRVFfRVYsQVBfTU1JQV9QQlRQTVJVUERBVEVSRVFfRVYsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9QQk1FTUNBUEFSRVFfRVYsQVBfTU1JQV9QQk1UUEFSQUlORF9FVixBUF9NTUlBX1BCRU1FUk5VTUxJU1RJTkRfRVYsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9QQlNUT1NFVFJFUV9FVixBUF9NTUlBX1BCU1RPVEVTVFJFUV9FVixBUF9NTUlBX1BCRklORElOREVYRU5EQ05GX0VWLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfUEJQUkVGTVNHU1RPQ05GX0VWLEFQX01NSUFfUEJQUkVGTVNHU1RPVEVTVENORl9FVixBUF9NTUlBX1BCQ09NTU9OQ05GX0VWICAsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9QQklOSVRDTVBMVElORF9FVixBUF9NTUlBX1pQQklDSU5EX0VWLA0KKw0KKzc5ICAgICAgICAgIDIwMDkuOS4yOCAgICAgICAgzqTT8dXkICAgICAgICAgICCx3MPiM0fW98Sjyr3PwqOsuPiz9kdBULrzo6zT1reixvDL5rv6vdPI67n9s8y2+LW81sK1xMnkxrXNrMfAtvjU9rzTtcTP+8+iOg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENVTUFDX1VSUkNBTUVBU1NVU1BFTkRSRVFfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1VNQUNfVVJSQ0FNRUFTUkVTVU1FUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUF9HU01fUkFDSF9BQ1RJVkVfQ05GX0VWICANCis4MCAgICAgICAgICAyMDA5LjkuMjggICAgICAgIL2qsqggICAgICAgICAgINT2vNNVU0lS1tzG2tDUvdPK1c+1zbPQxc+itcS2qMqxxvezrMqxysK8/rrFOg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVTSVJfVElNRVJfUl9FWFBJUllfRVYNCisNCis4MSAgICAgICAgICAgMjAwOS45LjI4ICAgICAgICAgILPCueK7qiAgICAxKUFQLU1NSUEgU01Tz/vPorrFtqjS5aOs1Pa80w0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX0NQTVNURVNUUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfQ1BNU1RFU1RDTkZfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9TTVNaUEJJQ0lORF9FViAgDQorODIgICAgICAgICAgIDIwMDkuOS4yOCAgICAgICAgICC9r9XXtLogICAgMSnU9rzTVU1NL0dTTUG907/az/vPolVNTUFTX1RCRlJFTEVBU0VJTkRfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKdT2vNNVTU22qMqxxvfP+8+iVU1NX1RMSVNUX0VYUElSWV9FVg0KKw0KKzgzICAgICAgICAgIDIwMDkuOS4yOCAgICAgICAgICAgIMK9u7YgICAgICAgICAgICAgICAgICAxoaLU9rzTu/HIoVBTREVWyv2+3crCvP66xQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVkFSX1VJQ0NfREVWX0dFVFJFUV9FViANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1ZBUl9VSUNDX0RFVl9HRVRDTkZfRVYgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDKhotT2vNO52L+oyLfIz8/7z6KjukFQX1VJQ0NfUFdST0ZGQ05GX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDOhosihz/u52L+otqjKscb3z/vPoqO6VUlDQ19USU1FUl9FWFBJUllfRVYNCis4NCAgICAgICAgICAyMDA5LjkuMjkgICAgICAgICAgICDCvbu2ICAgICAgICAgICAgICAgICAgMaGi1Pa801BCysK8/rrFDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfUEJTVE9URVNUQ05GX0VWIA0KKzg1ICAgICAgICAgIDIwMDkuOS4zMCAgICAgICAgICAgIMqv19rApCAgICAgICAgICAgICAgMaGiQVAtTU1JQbzkysK8/rrF0tHKudPDwcs1MTC49qOs0OjU9rzTQVBfTU1JQV9FVkVOVF9CQVNFtcS/1bzko6y00zUwMKOtPjYwMA0KKw0KKzg2ICAgICAgICAgIDIwMDkuMTAuMTkgICAgICAgICAg0e7UyiAgICAgICAxoaIg1Pa8001NtqjKscb3s6zKscrCvP66xbao0uWjuiAgICAgIE1NX1RXUlJSX0VYUElSWV9FVg0KKzg3ICAgICAgICAgIDIwMDkuMTAuMjcgICAgICAgICAgIMeuv6EgICAgICAgMSnOqtans9ZFR1BSUyzU9rzTMkfN+LLgxKPE4srCvP66xU5HTUFDX05HUkxDX0VQREFOX0lORF9FViwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5HUkxDX05HUkxDX1BVQU5fUkVRX0VWLE5HUkxDX0ZJTExfREFUQV9RVUVVRV9SRVFfRVYsTDFTSU1VX05HUkxDX0RBVEFfSU5EX0VWDQorODggICAgICAgICAgMjAwOS4xMC4yNyAgICAgICAgICAgzfXQob34ICAgIMvmRdDQo6zU9rzTysK8/rrFOg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX0NDTVRDUlNQX0VWLEFQX01NSUFfQ09OTklORF9FVixBUF9NTUlBX09SSUdJTkRfRVYsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfQ09ORklORF9FVixBUF9NTUlBX0NFTkRJTkRfRVYsTU1JQUNDX0RJU0NDTkZfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorODkgICAgICAgICAyMDA5LjExLjA5ICAgICAgICAgINHu1MogICAgICAxoaLU9rzTwctNTUlBus1VTU3Wrrzk1Pa801NZU0NPTkZJR8/gudjP+8+iuuq2qNLlo7oNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNTUlBVU1NX1NZU0NPTkZJR1JFUV9FVqGiTU1JQVVNTV9DT01NT05DTkZfRVajuw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyoaLU9rzTwctVTU26zUFT1q685M+1zbPF5NbDz/vPorrqtqjS5aO6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVU1NQVNfVVBEQVRFU1lTQ09ORklHUkVRX0VWIKGjIA0KKzkwICAgICAgICAgIDIwMDkuMTEuMTIgICAgICAgICAgIL2qsqgvy++zpL2tICAgICAg19PPtc2zt72wuNDeuMQNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS5VU0lSX1RCQ0NITU9EX0VYUElSWV9FVixVQ1NSX1RCQVJHU01DRUxMX0VYUElSWV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLlVSUkO6r8r90MXB7rj619nP+8+iusW2qNLl1tDU9rzTz/vPorrFOg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSUkNfRlVOQ19SRUxTQ0NQQ0hTVE9QTUFDUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJSQ19GVU5DX1JFU1VNRUZBQ0hDRkdSRVFfRVYNCis5MSAgICAgICAgMjAwOS4xMS4xNyAgICAgICAgICAgs8K54ruqDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1NSUGjrVNNU8/7z6K6xbao0uXW0NDC1Pajuk1NSUFTTVNfQ09NTU9OQ05GX0VWDQorDQorOTIgICAgICAgMjAwOS4xMS4xNyAgICAgICAgICAgzfXQob34ICAgIMvmRdDQo6zU9rzTysK8/rrFOg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX0NDTVRDUlNQX0VWLEFQX01NSUFfQ09OTklORF9FVixBUF9NTUlBX09SSUdJTkRfRVYsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfQ09ORklORF9FVixBUF9NTUlBX0NFTkRJTkRfRVYsTU1JQUNDX0RJU0NDTkZfRVYNCisNCis5MyAgICAgICAyMDA5LjExLjE4ICAgICAgICAgICDR7s7Ex78gICAg1Pa800VER0XWp7PWtcTP4LnYysK8/rrFOg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRPT0xfTkdSTENfTU9ERV9DRkdfUkVRX0VWo6xOR1JMQ19UT09MX1VMX0RBVEFCTE9DS19JTkRfRVYgo6wNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUT09MX05HUkxDX0RVTU1ZQkxPQ0tfUkVRX0VWIKOsRE9XTkxJTktfRFVNTVlfQkxPQ0tfUkVRX0VWo6wNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUT09MX05HUkxDX0RPV05MSU5LQkxPQ0tfUkVRX0VWIA0KKzk0ICAgICAgMjAwOS4xMi4xNCAgICAgICAgICAg0e7UyiDU9rzTvOC/2NGwuvS1xLaoyrHG98/7z6K6xTooQ1FOSjAwMTM3NzIwKSANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdNTV9UUEFHRV9FWFBJUllfRVYsIE1NX1RXUEdSX0VYUElSWV9FVjsNCisgDQorOTUgICAgICAgMjAwOS4xMi4xNiAgICAgICAgICAgzfXQob34ICAgIDEp1Pa808vmRdDQz+C52MrCvP66xToNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNTUlBQ0NfQ0xPU0VWT0lDRUNITkxJTkRfRVYsTU1JQUNDX09QRU5WT0lDRUNITkxJTkRfRVYsQVBfTU1JQV9QQlNGSU5ESU5ERVhDTkZfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1BCU0ZJTkRJTkRFWEVORENORl9FVixBUF9NTUlBX1BCU0VESVRDTkZfRVYsQVBfTU1JQV9QQlNDUEJSVEVTVENORl9FViwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1BCU0NQQldURVNUQ05GX0VWLEFQX01NSUFfUEJDTlVNX0NORixBUF9NTUlBX1BCQ0xDS1NUQVRVU0NORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfUEJTRklORElOREVYUkVRX0VWLEFQX01NSUFfUEJTRURJVFJFUV9FVixBUF9NTUlBX1BCQ05VTV9SRVENCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1BCQ0xDS1NFVFJFUV9FVixBUF9NTUlBX1BCU0NQQlJURVNUUkVRX0VWLEFQX01NSUFfUEJTQ1BCV1RFU1RSRVFfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1BCVUlDQ09LSU5EX0VWLEFQX01NSUFfU0NQQlJTRVRDTkZfRVYgICAsQVBfTU1JQV9TQ1BCUlNFVEVORENORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfU0NQQlJURVNUQ05GX0VWLEFQX01NSUFfU0NQQldURVNUQ05GX0VWICAsQVBfTU1JQV9DTlVNQ05GX0VWICAgICAgIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfU0NQQlJTRVRSRVFfRVYgLEFQX01NSUFfU0NQQlJURVNUUkVRX0VWLEFQX01NSUFfU0NQQldURVNUUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9TQ1BCV1NFVFJFUV9FViAsQVBfTU1JQV9DTlVNUkVRX0VWICAgICAsQVBfVUlDQ19DUlNNX0NORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX1VJQ0NfQ09NTU9OQ05GX0VWLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKdDeuMRQQixVSUNDysK8/rrFt7bOp9a1Og0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfUEJfUlNQX0VWRU5ULEFQX01NSUFfRVZFTlRfUEJfRU5EDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9FVkVOVF9VSUNDX0VORCxBUF9VSUNDX0VWRU5UX0VORA0KKyANCis5NiAgICAgICAgICAyMDA5LjEyLjA3ICAgICAgICAgICAgs8LOxCAgICAgICAgICAgICAg1Pa807bB0LRJTUVJtcTKwrz+usVURVNUX1NFVF9OVl9EQVRBX0lNRUlfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg1Pa800NSU03D/MHuysK8/rrFQVBfVUlDQ19DUlNNX1JFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDU9rzTVUlDQ8Sjv+m1xM2o08PKwrz+usUgQVBfVUlDQ19DT01NT05DTkZfRVYNCisNCis5NyAgICAgICAyMDEwLjAxLjA1ICAgICAgICAgIM6k0/HV5CAg1Pa801VSUkNJTlRSQV9HRVRTRVJWQ0VMTElORk9fRVYs0tSx49TaTVNHVFJBQ0XW0M/Uyr7Ktcqx0KHH+NDFz6IgICAgICAgICAgIA0KKw0KKzk4ICAgICAgICAgIDIwMTAuMDEuMDggICAgICAgy++688m9ICAgICDU9rzTUERJteO1xrrNz/rBv82zvMa2qMqxxvezrMqxysK8/rrFtqjS5aO6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBESV9TV0lUQ0hMRURUSU1FUl9FWFBJUllfRVajrA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQRElfV0FJVEROU0FDS1RJTUVSX0VYUElSWV9FVqOsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBESV9XQUlUWlNTQUNLVElNRVJfRVhQSVJZX0VWo6wNCisNCis5OSAgICAgICAyMDEwLjAxLjA5ICAgICAgICAgICDN9dChvfggICAgMSnU9rzTz/rBv82zvMbP4LnYysK8/rrFOg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfU0VMTF9TVEFUX1NXSVRDSFNFVFJFUV9FVixBUF9NTUlBX1NFTExfU1RBVF9TV0lUQ0hRVUVSWVJFUV9FVixBUF9NTUlBX1NFTExfU1RBVF9VRFBJTkZPUVVFUllSRVFfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1NFTExfU1RBVF9URVNUU0VORFJFUV9FVixBUF9NTUlBX1NFTExfU1RBVF9ET01BSU5TRVRSRVFfRVYsQVBfTU1JQV9TRUxMX1NUQVRfRE9NQUlOUVVFUllSRVFfRVYsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9TRUxMX1NUQVRfQ1JDU0VUUkVRX0VWLEFQX01NSUFfU0VMTF9TVEFUX0NSQ1FVRVJZUkVRX0VWLEFQX01NSUFfU0VMTF9TVEFUX0RFQlVHU0VUUkVRX0VWLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfU0VMTF9TVEFUX0RFQlVHUVVFUllSRVFfRVYsQVBfTU1JQV9TRUxMX1NUQVRfUE9SVFNFVFJFUV9FVixBUF9NTUlBX1NFTExfU1RBVF9QT1JUUVVFUllSRVFfRVYsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9TRUxMX1NUQVRfVFJJVFlQRVFVRVJZUkVRX0VWLEFQX01NSUFfU0VMTF9TVEFUX0ROU0NOVFFVRVJZUkVRX0VWLEFQX01NSUFfU0VMTF9TVEFUX1NXSVRDSFFVRVJZQ05GX0VWLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfU0VMTF9TVEFUX1VEUElORk9RVUVSWUNORl9FVixBUF9NTUlBX1NFTExfU1RBVF9ET01BSU5RVUVSWUNORl9FVixBUF9NTUlBX1NFTExfU1RBVF9DUkNRVUVSWUNORl9FViwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1NFTExfU1RBVF9ERUJVR1FVRVJZQ05GX0VWLEFQX01NSUFfU0VMTF9TVEFUX1BPUlRRVUVSWUNORl9FVixBUF9NTUlBX1NFTExfU1RBVF9UUklUWVBFUVVFUllDTkZfRVYsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9TRUxMX1NUQVRfRE5TQ05UUVVFUllDTkZfRVYsTU1JQVNNX0NJRERFQUNUSU5EX0VWLE1NSUFQRElfU0VMTFNUQVRfU1RBUlRTRU5EUEFDS0VUSU5EX0VWLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1NSUFQRElfU0VMTFNUQVRfQUJPUlRJTkRfRVYsTU1JQV9TRUxMU1RBVF9PTkVQRFBfRVhQSVJZX0VWLE1NSUFfU0VMTFNUQVRfU1VNUERQX0VYUElSWV9FViwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNTUlBX1NFTExTVEFUX1JFR19FWFBJUllfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINDeuMRBUF9NTUlBX1VJQ0NfUlNQX0VWRU5Uo6xBUF9NTUlBX0VNX1JTUF9FVkVOVA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIpINT2vNNaSU1HRSxaR0lJREbKwrz+usUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1pJTUdSRVFfRVYsQVBfTU1JQV9aR0lJREZSRVFfRVYsQVBfTU1JQV9aSU1HQ05GX0VWLEFQX01NSUFfWkdJSURGQ05GX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMym05rSiwdC+2c/7z6K1xM2o1qrP+8+iDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9QQkNQQlJJTkRfRVYsQVBfTU1JQV9QQkNQQkZJTkRfRVYsQVBfTU1JQV9QQlNDUEJSSU5EX0VWLEFQX01NSUFfUEJDTUdMSU5EX0VWDQorIA0KKzEwMCAgICAgICAgMjAxMC4wMS4yMSAgICAgICDKr9fawKQgICAgIL2rVU1DUi1VUEhZuMTOqlVNQUPJz8/C0NDBvbbOo6zNrMqxvavPwsHQz/vPoklEtcS7+bXY1re2qNLltNNVTUNSLVVQSFm4xM6qVU1BQ19ETC1VUEhZo7oNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBfUVVBTElUWV9NRUFTX1JFUV9FViANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQX1VFX0lOVEVSTkFMX01FQVNfUkVRX0VWICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQX1FVQUxJVFlfTUVBU19JTkRfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBfVUVfSU5URVJOQUxfTUVBU19JTkRfRVYgDQorDQorMTAxICAgICAgICAyMDEwLjAyLjA1ICAgICAgs8LOxCAgICAgICAg1Pa801VJQ0PKwrz+usUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVSUNDX0NBUkRERVRFQ1RfRVhQSVJZX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfVUlDQ19VSUNDVU5TWU5DSU5EX0VWDQorDQorMTAyICAgICAgICAyMDEwLjAyLjIwICAgICAg1cXF9LPMICAgICAgICDU9rzTTDFUysK8/rrFDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUF9BQk9SVF9GUkVRX1NDQU5fQ05GX0VWLFBfQUJPUlRfQ0VMTF9TRUFSQ0hfQ05GX0VWLFBfQkNIX1JFTEVBU0VfQ05GX0VWLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUF9DQU1QT05fQV9DRUxMX0NORl9FVixQX0NIRUNLX1JGX0lORF9FVqOotKbA7cnkxrWz5c27o6ksUF9EUENIX0NGR19GSU5BTF9FVqOouMPP+8+isru3orW9RFBSQU2jqSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBfRFBDSF9SRUxfQ05GX0VWLFBfUkVMX1NDQ1BDSF9DTkZfRVYsUF9TVE9QX1BBR0lOR19DTkZfRVYsUF9TVE9QX0NCU19DTkZfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBfUkVMX0hTRFBBX0NORl9FVixQX1JFTF9IU1VQQV9DTkZfRVYsUF9BQ1RJVkVfSU5EX0VWo6i0psDtvKS77sqxvOS1vaOpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQX1JBQ0hfUFJDRURVUkVfQ05GX0VWLFBfRVJVQ0NIX1BSQ0VEVVJFX0NORl9FVg0KKw0KKzEwMyAgICAgICAgIDIwMTAuMDIuMjAgICAgWUFOR1lVTiAg0N64xNbGyr285NbY0aGjrMztvNPKwrz+usWjug0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTU1BU19DRUxMUkVTU1RBUlRJTkRfRVYNCisNCisxMDQgICAgICAgIDIwMTAuMDMuMDkgICAgICAgyq/X2sCkICAgICDQ3rjETDFUtcTI/cz1z/vPoklEo7oNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBfRFBDSF9DRkdfRklOQUxfRVa4xM6qUF9MMV9SRVNPVVJDRV9DRkdfRklOQUxfRVYgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQX1JBQ0hfUFJDRURVUkVfQ05GX0VWuMTOqlBfUkFDSF9QUk9DRURVUkVfQ05GX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUF9FUlVDQ0hfUFJDRURVUkVfQ05GX0VWuMTOqlBfRVJVQ0NIX1BST0NFRFVSRV9DTkZfRVYNCisNCisxMDEgICAgIDIwMTAgLjAzLjExICAgICDXv9S9L7rOq5EgICAg1Pa808/7z6Kjug0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSUkNJTlRSQV9HRVROQ0VMTElORk9fRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNU0dUUkFDRVBTX0NFTExESVNQTEFZUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1JSX0dFVFNDRUxMX0lORk9fRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdSUl9DRUxMSU5GT0xJU1RJTkRfRVYgDQorDQorMTAyICAgICAyMDEwIC4wMy4xMiAgICAgy+/IqiAgICDU9rzTz/vPoqO6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU1JQVNTX1VTU0RDQU5DRUxSRVFfRVYNCisNCisxMDMgICAgIDIwMTAgLjAzLjE3ICAgICCzwrniu6ogICAg1Pa801NNU7aoyrHG98rCvP66xaO6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNNU19UV1NJX0VYUElSWV9FViAgDQorICANCisxMDQgICAgIDIwMTAuMy4zMCAgICAgICDX3tHeICAgICDU9rzTMkfPwlRDSMrNt8XKsUdTTUHJz7GouPhDQ7XEz/vPog0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdNTUFTX0NDVENIUkVMSU5EX0dTTV9FVg0KKw0KKzEwNSAgICAgMjAxMCAuMDQuMDQgICAgIL2qsqggICAg0N64xMHQse25/bPMyrGzpM/gudjQ3rjEDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICC9q1BTX1VNTUFTX0FCT1JUUExNTlJFUV9FViDQ3rjEzqogVU1NQVNfU1RPUFBMTU5MSVNUUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICC9q1VNTUFTX0FCT1JUQ05GX0VWINDeuMTOqiBVTU1BU19BQk9SVEhQUExNTkNORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDU9rzTs6zKsc/7z6I6IFVNTV9UUExNTkxJU1RfRVhQSVJZX0VWICANCisNCisxMDYgICAgMjAxMCAuMDQuMDYgICAgIL2qsqggICAg1Pa801VSUkPE2rK/ysK8/rrFo7oNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJSQ0lOVFJBX1NFTkRCVUZFU1RSRVFfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVJSQ0lOVFJBX0FCT1JUQ0NPUkVRX0VWIA0KKyANCisxMDcgICAgMjAxMCAuMDQuMTMgICAgIL2qsqggICAg0N64xLG7QkFStKbA7c/gudijrNT2vNPBvbj2ysK8/rrFDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSUkNJTlRSQV9CQVJSRVNVTUVJTkRfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUNTUl9UQkFSRlJFUV9FWFBJUllfRVYNCisNCisxMDggICAgMjAxMCAuMDQuMjMgICAgIMK9u7YgICAg0N64xFNVQk1PREUs1Pa808rCvP66xQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNTUlBQVNfU1VCTU9ERUlORF9FVg0KKw0KKyAxMDkgICAgMjAxMCAuMDQuMjQgICAgIMvV4bAgICAg1Pa801VNQUMtVUzP8lVNQUMtREzNqNaqz8LQ0MXk1sO1xLHku68NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1VNQUNfQUNURExDRkdfRVYgDQorDQorMTEwICAgICAyMDEwLjA0LjI5ICAgICAgva/V17S6ICAgINT2vNNVTU221E1NSUHL0c34x+vH87XEu9i4tKOsysK8/rrFDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1NSUFVTU1fU0VBUkNIUExNTkNORl9FVg0KKw0KKzExMSAgICAyMDEwLjA0LjMwICAgICAgva/V17S6ICAgIMm+s/0gVU1NX1RQUk9DX0VYUElSWV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINT2vNMgVU1NX1RVSUNDSU5JVF9FWFBJUllfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVNTV9UQ0FNUF9FWFBJUllfRVYgICAgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTU1fVERFVEFDSF9FWFBJUllfRVYgIA0KKw0KKyAxMTIgICAgMjAxMCAuMDUuMDQgICAgIMqv19rApCAgICDU9rzTUjfWp7PWDQorIA0KKyAxMTMgICAyMDEwLjA1LjE0ICAgICDJ8rquICDU9rzTR1NNQc2o1qpVQ1NSMkfXpMH0s8m5prXE1rjKvg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSUkNHUlJfR1NNQ0FNUFNVQ0NJTkRfRVYNCisNCisgMTE0ICAgICAgMjAxMC4wNS4yMCAgICAgyq/X2sCkICBVSUNDz/vPotLRvq2zrLP21K3T0LXEx/i85KOs1bzTw8HLxuTL+8Sjv+m1xM/7z6LH+Lzko6y199X7VUlDQ7XEz/vPosf4vOQNCisNCisxMTUgICAgICAgIDIwMTAuMDUuMjIgICAg0e7UyiAg1Pa800NToaJQU7i918XXtMyssunRr8/7z6INCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1NSUFVTU1fQ0dBVFRRVUVSWVJFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNTUlBVU1NX1pBVFRRVUVSWVJFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1NSUFVTU1fQ0dBVFRRVUVSWUNORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1NSUFVTU1fWkFUVFFVRVJZQ05GX0VWIA0KKw0KKzExNiAgICAgICAgMjAxMC4wNS4yNSAgINHu1MogINT2vNNVTU3NqNaqR01N1sbKvbj8uMSzybmmz/vPog0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTU1fUkFUQ0hOSU5EX0VWDQorDQorIDExNyAgICAyMDEwIC4wNS4yNCAgICAgzfXQob34ICAgINT2vNNBUF9NTUlBX0VTTVRGQURURVNUUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX0VTTVRGQURURVNUQ05GX0VWDQorDQorIDExOCAgICAyMDEwIC4wNS4yOSAgICAgs8LOxCAgICDU9rzTo7oNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9VSUNDX0FDVElWRU9SREVBQ1RJVkVGSUxFUkVRX0VWoaJBUF9VSUNDX0FDVElWRU9SREVBQ1RJVkVGSUxFQ05GX0VWDQorDQorMTE5ICAgICAgMjAxMC4wNi4wNyAgICAgIMqv19rApCAg0N64xMnPsahNU0dUUkFDRbf+zvHQocf4us3B2sf4tcS3vcq9DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDU9rzTo7pNU0dUUkFDRVBTX1NDRUxMSU5GT0lORF9FVqOot/7O8dChx/jQxc+io6mhok1TR1RSQUNFUFNfTkNFTExJTkZPSU5EX0VWo6jB2sf40MXPoqOpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDJvrP91K3T0LXEz/vPoqO6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUlJDSU5UUkFfR0VUU0VSVkNFTExJTkZPX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHUlJfR0VUU0NFTExfSU5GT19FViANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdSUl9DRUxMSU5GT0xJU1RJTkRfRVYgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUlJDSU5UUkFfR0VUTkNFTExJTkZPX0VWIA0KKw0KKzEyMCAgICAgICAgMjAxMC4wNi4wOCAgIM310KG9+CAgzqpVU0FUw/zB7tTaOTAgMDDKsdT2vNPW97avyc+xqM/7z6INCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfVUlDQ19OT1BST0NOT1RJRllJTkRfRVYsIEFQX01NSUFfVVNBVF9OT1BST0NOT1RJRllJTkRfRVYNCisNCisxMjEgICAgICAgMjAxMC4wNi4wOCAgICAgIMqv19rApCAgvatSUkFUX1JYU1RBVF9JTkSholJSTUlfUlhTVEFUX0lORKGiUlJfRU1fSE9fSU5GT19JTkSholJSX0VNX0NFTExfSU5GT19JTkQNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINLGtb1QU0VWRU5ULkjW0MilDQorMTIxICAgICAgIDIwMTAuMDcuMDIgICAgICDN9cDyo6jTprjfz+gxNDg2MDTSqsfz0N64xKOpICDU9rzTDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUF9CTElORF9VQVJGQ05fSU5URVJfRlJFUV9NRUFTX0lORF9FVqGiDQorIA0KKzEyMiAgICAgICAyMDEwLjA3LjA4ICAgICAgyq/X2sCkIL2rUF9SRVNFTF9HU01DRUxMX1NUQVJUX1JFUV9FVqGiUF9SRVNFTF9HU01DRUxMX1NUQVJUX0NORl9FVszmu7vOqg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUF9URF9SRl9SRUxfUkVRX0VWoaJQX1REX1JGX1JFTF9DTkZfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICC9q1BfUkVTRUxfR1NNQ0VMTF9TVUNDX1JFUV9FVqGiUF9SRVNFTF9HU01DRUxMX1NVQ0NfQ05GX0VWus0NCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBfVERfQ0xPU0VfUkVRX0VWoaJQX1REX0NMT1NFX0lORF9FVszmu7vOqg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUF9URF9SRVNFVF9SRVFfRVaholBfVERfUkVTRVRfQ05GX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg0MLU9lBfVERfUkZfUkVTVU1FX1JFUaGiUF9BQk9SVF9HU01fR0FQX0NORl9FVg0KKw0KKzEyMyAgICAgICAyMDEwLjA3LjA4ICAgICAguN/P6CAgIMils/3P+8+itqjS5VBfSU5URVJfRlJFUV9CTElORF9NRUFTX0lORF9FVg0KKw0KKzEyNCAgICAyMDEwIC4wNy4xMCAgICAgucuxprPJICAgINT2vNOjug0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNNX1BEQ1BfSENNT0RJTkRfRVYNCisNCisxMjUgICAgICAgMjAxMC4wNy4xMCAgICAgIM6k0/HV5CDU9rzTUlJDxNqyv8rCvP66xaO6VVJSQ0lOVFJBX0NIQU5HRUNBTVBPTlRZUEVfRVYgICBDU1LNqNaqDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUNSIMjO0uLXpMH016q6z8rK16TB9Lvy1d/Kx7rPysrXqsjO0uINCisNCisxMjYgICAgICAgMjAxMC4wNy4xMCAgICAgINXU1fG71NT2vNPP+8+iOg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTU1JQUVTTV9BQk9SVFJFUV9FVg0KKw0KKzEyNyAgICAgICAyMDEwLjA3LjEwICAgINXU1fG71Mm+s/3P+8+iTU1JQUVTTV9NVEVQU0JFQVJFUkFDVF9DTkZfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisxMjggICAgICAgMjAxMC4wNy4xMCAgICAgIM310KG9+NT2vNMgo7oNCisgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX1VJQ0NfRUZTVEFUVVNRVUVSWVJFUV9FViwgQVBfVUlDQ19FRlNUQVRVU01PRElGWVJFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfVUlDQ19FRlNUQVRVU1FVRVJZQ05GX0VWLEFQX1VJQ0NfRUZTVEFUVVNNT0RJRllDTkZfRVYNCisNCisxMjkgICAgICAgMjAxMC4wNy4xMCAgICAg1dTV8bvU1Pa808/7z6I6DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1BCQ0hHSU5ERVhJTkRfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfQ0hHSU5ERVhJTkRfRVYNCisNCisxMzAgICAgICAgMjAxMC4wNy4xMCAgICDV1NXxu9TOqtfbsuLU9rzTz/vPokFQX01NSUFfQVVUT1NUQVJUUkVRX0VWDQorDQorMTMxICAgICAgIDIwMTAuMDguMTggICAg1dTV8bvU1Pa808/7z6JBUF9NTUlBX0NHRVFPU1NFVFJFUV9FVqGiQVBfTU1JQV9DR0VRT1NRVUVSWVJFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfQ0dFUU9TUVVFUllDTkZfRVahokFQX01NSUFfQ0dFUU9TUkRQUkVRX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9DR0VRT1NSRFBDTkZfRVahok1NSUFFU01fUVVFUllQRFBBRERSQ05GX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgyb6z/c/7z6JNTUlBRVNNX0FCT1JUUkVRX0VWoaJBUF9NTUlBX0VTTVFPU1FVRVJZUkVRX0VWus1BUF9NTUlBX0VTTVFPU1FVRVJZQ05GX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgtffV+01NSUG6zUFUSc/7z6LH+LzkICAgICAgICAgICAgDQorDQorMTMyICAgICAgIDIwMTAuMDguMjYgICAg0e7UyiAg1Pa808/7z6KjulVNTUFTX1VQREFURUxURUFDVF9FVqGiTU1JQVVNTV9TRVRMVEVBQ1RfUkVRX0VWDQorDQorMTMzICAgICAgICAyMDEwLjA5LjEzICDV1NXxu9QgINT2vNPP+8+iQVBfTU1JQV9aRUFDVFNFVFJFUV9FVqGiQVBfTU1JQV9aRUFDVFJFQURSRVFfRVa6zQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9aRUFDVFJFQURDTkZfRVYNCisNCisxMzQgICAgICAgMjAxMC4wOS4xNCAgICCzwrniu6ogINT2vNPP+8+iR01NQVNfU0FQSTNSRUxJTkRfRVYNCisNCisxMzUgICAgICAgMjAxMC4wOS4yNSAgICDN9dChvfggIL3ivvbNqNaqU1RNy/i/qLrNveLL+KOs1Pa808/7z6JBUF9VSUNDX0NBUkRMT0NLU1RBVFVTSU5EX0VWDQorDQorMTM2ICAgICAgIDIwMTAuMDkuMjcgICAgwO7OxL6yICDU9rzToaK199X7TFRFz+C52M/7z6INCisNCisxMzcgICAgICAyMDEwLjEwLjE4ICAgIMvvs6S9rSDIpbX0z/vPorrFo7pQX0NCU19OT0RSWF9SRVFfRVahoiBQX0NCU19EUlhfUkVRX0VWtcS2qNLlo7sNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAguvPD5rXEz/vPorXEysK8/rrFzazKscew0sajrNPQo7pQX0FERF9NT0RJRllfQ0JTX1JFUV9FVqGiUF9TVE9QX0NCU19SRVFfRVaholBfTDFfUkVTT1VSQ0VfQ0ZHX0ZJTkFMX0VWoaINCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBfQUREX0hTVVBBX1JFUV9FVqGiUF9SRUxfSFNVUEFfUkVRX0VWoaJQX1BMQ0NIX0FERF9NT0RJRllfUkVRX0VWDQorDQorMTM3ICAgICAgMjAxMC4xMC4yOCAgICDOpNPx1eQgICDU9rzTz/vPolVNQ1JfVEJTSUNfRVhQSVJZX0VW1qez1lREz8K21EdTTdChx/jNrLK90MXPorXE09DQp8bazqy7pA0KKzEzOCAgICAgIDIwMTAuMTAuMjkgICAgwfXS7SAgICDU9rzTz/vPoqO6VU1NQVNfVVBEQVRFU0NBTlVFQkFOREZHX0VWoaJVTU1BU19TQ0FOVUVCQU5ESU5EX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDJvrP9z/vPoqO6VUNTUl9URlJFUVNDQU5fRVhQSVJZX0VWDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisxMzkgICAgICAgMjAxMC4xMS4wNSAgIFlBTkdZVU4g1Pa801VNTV9DRUxMTk9DSEFOR0VJTkRfRVYNCisNCisxNDAgICAgICAgMjAxMC4xMS4xNSAgIFlBTkdZVU4g1Pa80yBDTV9SUkNSRUxJTkRfRVbP+8+iDQorDQorMTQxICAgICAgMjAxMC4xMS4yOSAgICDA7s7EvrIgICAg0N64xEVTTV9FUERDUF9FVkVOVF9CQVNFtcS66rao0uUNCisNCisxNDIgICAgICAyMDEwLjExLjMwICAgIM310KG9+CAgveK+9r+os/XKvLuvuf2zzNbQudi7+rvYz9S07c7zzsrM4qOs1Pa808/7z6IgQVBfVUlDQ19QV1JPRkZJTkRfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNERVbQ3rjEt72wuKOs1Pa808/7z6IgQVBfVUlDQ19XUklURUlURU1JTkRfRVYsQVBfVUlDQ19VUERBVEVJVEVNUkVRX0VWLEFQX1VJQ0NfVVBEQVRFSVRFTUNORl9FVg0KKw0KKzE0MyAgICAgIDIwMTAuMTIuMSAgICAg1dTV8bvUICDU9rzTz/vPokdWQVJfQVRNRU1fREVWX0dFVFJFUV9FVqGiR1ZBUl9BVE1FTV9ERVZfR0VUQ05GX0VWoaJHVkFSX05WX0RFVl9HRVRSRVFfRVahog0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVkFSX05WX0RFVl9HRVRDTkZfRVYNCisNCisxNDQgICAgICAyMDEwLjEyLjE1ICDKt9GnuuwgIMm+s/1ST0hDtcS2qMqxxvfP+8+iUk9IQ19GTzJJUlRJTUVSX0VYUElSWV9FVqGiUk9IQ19TTzJJUlRJTUVSX0VYUElSWV9FVqOsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg1Pa809K7uPbTyVNPoaJGT7W9SVK1xLaoyrHG98/7z6KjulJPSENfSVJUSU1FUl9FWFBJUllfRVYNCisNCisxNDUgICAgICAyMDEwLjEyLjMwIMvvs6S9rSAgtaW2wLXE0KHH+Lj80MK5/bPMo6zK1bW9wb3M9VRJsrvNrLXEQ1VDz/vPorXEtKbA7aOs0OjJvrP9o7oNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVSUkNJTlRSQV9BQk9SVENGR1JFUV9FVg0KKw0KKzE0NiAgICAgIDIwMTAuMTIuMzEgICAgINe/sdiyqCAgQ1FOSjAwMjQwMzQwICAgIFBTRVZFTlQuSNbQ09DQqcrCvP66xbao0uXL5tfFsOaxvrXE0d29+NLRvq2yu9TZyrnTww0KKw0KKzE0NyAgICAgIDIwMTAuMTIuMzEgzfXQob34IM6q1Pa807+oU0VBUkNIuabE3KOs1Pa808/7z6IgQVBfVUlDQ19QUkVQRVJTT05SRUNTRUFSQ0hSRVFfRVYsQVBfVUlDQ19QUkVQRVJTTlJFQ1NSQ0hDTkZfRVYNCisNCisxNDggICAgICAyMDExLjEuMjggICDV1NXxu9TU9rzTz/vPok1NSUFTTV9ESVNDT05ORUNUUkVRX0VWoaJBUF9NTUlBX0RJU0NPTk5FQ1RSRVFfRVYNCisNCisxNDkgICAgICAyMDExLjEuMzAgICAgICDXv7HYsqggIEVDIDYxNDAwMDY4NjA5MCAgICAgvatNTUlBo61TTc/7z6K6xbao0uWwtMrHt/ENCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgILbU06ZBVMP8we631sDgo6y199X7TU1JQVNNX0FCT1JUUkVRX0VWtcgzzPXP+8+itcTIoda1DQorMTUwICAgICAgMjAxMS4yLjExIM310KG9+CDU9rzTz/vPokFQX1VJQ0NfVkVSSUZZUElOMlJFUV9FVqOsQVBfVUlDQ19WRVJJRllQSU4yQ05GX0VWDQorDQorMTUxICAgICAgMjAxMS4wMS4yNSDV1NXxu9TU9rzTz/vPog0KKyBBUF9NTUlBX0NBT0NTRVRSRVFfRVYgoaJBUF9NTUlBX0NBT0NRUllSRVFfRVahokFQX01NSUFfQ0FDTVFSWVJFUV9FVqGiQVBfTU1JQV9DQU1NUVJZUkVRX0VWIA0KKyBBUF9NTUlBX0NQVUNRUllSRVFfRVahokFQX01NSUFfQ0NXRVFSWVJFUV9FVqGiQVBfTU1JQV9DQUNNU0VUUkVRX0VWoaJBUF9NTUlBX0NBTU1TRVRSRVFfRVYgDQorIEFQX01NSUFfQ1BVQ1NFVFJFUV9FVqGiQVBfTU1JQV9DQ1dFU0VUUkVRX0VWoaJBUF9NTUlBX0NBT0NTRVRDTkZfRVahokFQX01NSUFfQ0FPQ1FSWUNORl9FViANCisgQVBfTU1JQV9DQUNNUVJZQ05GX0VWoaJBUF9NTUlBX0NBTU1RUllDTkZfRVahokFQX01NSUFfQ1BVQ1FSWUNORl9FVqGiQVBfTU1JQV9DQ1dFUVJZQ05GX0VWIA0KKyBBUF9NTUlBX0NDQ01JTkRfRVahokFQX01NSUFfQ0NXVklORF9FVqGiTU1JQUNDX0NDTVFVRVJZUkVRX0VWoaJNTUlBQ0NfQ0NNUVVFUllDTkZfRVYNCisgTU1JQUNDX0NDV1ZJTkRfRVahok1NSUFDQ19OT1RJRllBT0NUSU1FUklORF9FVg0KKw0KKzE1MiAgICAgIDIwMTEuMDMuMDEgINXU1fG71CDU9rzTz/vPokFQX1VJQ0NfWlBVS1JFUV9FVqGiQVBfTU1JQV9aUFVLUkVRX0VWDQorDQorMTUzICAgICAgMjAxMS4zLjIgzfXQob34INT2vNO8xrfRuabE3KOs1Pa808/7z6JBUF9VSUNDX0lOQ1JFQVNFQUNNRkFJTElORF9FVqOsDQorICAgICAgICAgICAgICAgICAgICAgICAgICBBUF9VSUNDX0lOQ1JFQVNFUkVRX0VWo6xBUF9VSUNDX1JFU0VUQUNNUkVRX0VWDQorICAgICAgICAgICAgICAgICAgvMa30bmmxNxZVVpISU1JTkeyubPkICBDQ19UQUNNVVBEX0VYUElSWV9FViAsQ0NfVENEVVJfRVhQSVJZX0VWDQorDQorMTU0ICAgICAgMjAxMS4zLjEwIFpIQU5HQ0hPTkcgIM2ssr1MVEXQ3rjEDQorDQorMTU1ICAgICAgMjAxMS4zLjE2IMqv19rApCAgw/zD+9DeuMQNCisNCisxNTYgICAgICAyMDExLjMuMTYgyq/X2sCkICANCisgICAgICAgICAgICAgICAgICAgICAgICAgMaOp1Pa800dTTSBQUyBIT8/7z6JpZA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAyo6nU9rzTtuDEo8/gudjP+8+iaWS6zUFTQ8/gudjP+8+iDQorDQorMTU2ICAgICAgMjAxMS4zLjE2IMqv19rApCAgDQorICAgICAgICAgICAgICAgICAgICAgICAgIDGjqdT2vNO/7MvZy6/D38/7z6JDUERDUF9TQ1JJX0lORF9FVi9DUERDUF9VTERBVEFfVFJBTlNGRVJfUkVRX0VWDQorDQorMTU3ICAgICAgMjAxMS4wNC4wMiAgINXU1fG71A0KKyAgICAgICAgICAgICAgICAgICAgICAgICAxKSDOqlI5yf28ttT2vNPP+8+iDQorDQorMTU4ICAgICAgMjAxMS4wNC4yMyAg1dTV8bvUDQorICAgICAgICAgICAgICAgICAgICAgICAgINXrttRVSUND08W7r6Osyb6z/c7e08O1xM/7z6JBUF9NTUlBX1VJQ0NfSU5GT19SRVFfRVYgoaINCisgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9VSUNDX0lORk9fQ05GX0VWoaJBUF9NTUlBX1BJTl9TVEFURV9JTkRfRVYNCisgDQorMTU5ICAgICAgMjAxMS4wNS4wMyAg1dTV8bvUzqozR8P7xqy80NT2vNPP+8+iQVBfTU1JQV9aQ1BCUV9TRVRfUkVRX0VWoaJBUF9NTUlBX1pDUEJRX1FVRVJZX1JFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1pFRVJfUkVBRF9SRVFfRVahokFQX01NSUFfWkNQQlFfU0VUX0NORl9FVqGiQVBfTU1JQV9aQ1BCUV9RVUVSWV9DTkZfRVYNCisgICAgICAgICAgICAgICAgICAgICAgICAgQVBfTU1JQV9aRUVSX1JFQURfQ05GX0VWoaJBUF9NTUlBX1BCX1JFQURfQ0FQQV9SRVFfRVahokFQX01NSUFfUEJfUkVBRF9TRVRfTlVNX1JFUV9FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfUEJfUkVBRF9MQVNUX0VYVF9FUlJfUkVRX0VWoaJBUF9NTUlBX1BCX1JFQURfQ0FQQV9DTkZfRVahokFQX01NSUFfUEJfUkVBRF9TRVRfTlVNX0NORl9FVqGiDQorICAgICAgICAgICAgICAgICAgICAgICAgIEFQX01NSUFfUEJfUkVBRF9MQVNUX0VYVF9FUlJfQ05GX0VWDQorMTYwICAgICAgMjAxMS4wNS4zMSAgyrfRp7rsDQorICAgICAgICAgICAgICAgICAgICAg1Pa801JPSEN2MraoyrHG98/7z6K6xcf4ts4s1Pa801JPSEN2Ml9UX0lSX0VYUElSWV9FVs/7z6K6xQ0KKw0KKzE2MSAgICAgIDIwMTEuMDYuMTQgINXU1fG71A0KKyAgICAgICAgICAgICAgICAgICAgINT2vNO0psDtK1pJTUm1xM/7z6JBUF9NTUlBX1NFVF9JTVNJX1JFUV9FVg0KKw0KKzE2MiAgICAgIDIwMTEuMDYuMTYgIMvO0cfF9A0KKyAgICAgICAgICAgICAgICAgICAgINT2vNNHTU284L/YTVPW97avx+vH88rNt8XBtL3TtqjKscb3Wl9HTU1fVHdyZWyzrMqxtcTP+8+iR01NX1RfV1JFTF9FWFBJUllfRVYNCisJCSAgICAgICAgICAgICBFQzYxNDAwMDgyMTExOaO6R01NxKO/6crNt8VSUkPBrL3T1Pa8087Vyta5/bPMo6zU9rzTtqjKscb3VHdyZWy84L/YtMu5/bPMo6zNrMqx0OjSqtT2vNO2qMqxxvezrMqxz/vPog0KKzE2MyAgICAgIDIwMTEuMDYuMjAgILn5t+UNCisgICAgICAgICAgICAgICAgICAgICBFQzYxNDAwMDgxNTYxOaO6Q02y49TaVU1Nu7vN+Ln9s8zW0NPQ0rXO8cH3s8yjrLK7ts+1xLeixvBDTV9FU1Sju82ouf22qMqxxvfAtL/Y1sbW2LeitM7K/Q0KKw0KKyAxNjQgICAgICAyMDExLjA2LjE0ICDV1NXxu9QNCisgICAgICAgICAgICAgICAgICAgICAg1Pa808/7z6JBUF9NTUlBX0NTX1NSVl9JTkRfRVYNCisgICAgICAgICAgICAgICAgICAgICAgDQorMTY1ICAgICAyMDExLjA2LjMwIMvvs6S9rdT2vNNQQSvJ/by20N64xA0KKyAgICAgICAgICAgICAgICAgICAgICAxo6lVUkJDX1VQSFlfUlNQX0VWRU5U0+tVUkJDX1VQSFlfRVZFTlRfQkFTRdauvOS1xMar0sbTyTIwseTOqjMwo7sNCisJCTKjqdT2vNPP+8+iusVDU0NJX1VOUkVDT1ZFUl9FUlJfRVajrFVSUkNfRUZBQ0hfQ0ZHX0lORF9FVqOsQ1VNQUNfQ0VMTF9SRVNFTF9SRVFfRVajrENVTUFDX0hTUEFfRVBDSF9DRkdfUkVRX0VWo6wNCisJCUNVTUFDX1VQREFURV9FUk5USV9SRVFfRVajrENVTUFDX0ZBQ0hfQ0ZHX0lORF9FVqOsQ1VNQUNfQ0VMTF9SRVNFTF9DTkZfRVajrFBfSFNQQV9QTFVTX0ZBQ0hfUkVRX0VWo6xQX0hTUEFfUExVU19QQ0hfUkVRX0VWDQorCQlQX0hTUEFfUExVU19GQUNIX1JFTF9SRVFfRVajrFBfSFNQQV9QTFVTX1BDSF9SRUxfUkVRX0VWo6xQX0VGQUNIX1VQREFURV9STlRJX1JFUV9FVqOsUF9DRUxMX1JFU0VMX1JFUV9FVqOsUF9DRUxMX1JFU0VMX0NORl9FVqOsUF9TWU5DX0NNRF9SRVNQX0VWLA0KKwkJUF9IU1BBX1BMVVNfRkFDSF9SRUxfQ05GX0VWLFBfSFNQQV9QTFVTX0ZBQ0hfUkVMX0NORl9FVg0KKwkJM6OpUF9ETF9EUENIX1NFVFVQX01PRElGWV9DTkZfRVa4xMP7zqpQX0RMX1JMX1NFVFVQX01PRElGWV9DTkZfRVYNCisNCisgMTY2ICAyMDExLjcuMSC5y7Gms8nU9rzTxKPE4lBTSc/7z6JTSU1VTFBTSV9DT05GSUdfRVYNCisNCisgMTY3ICAyMDExLjcuNyDV1NXxu9TU9rzTttRDU9GwuvS1xNOmtPDP+8+iQVBfTU1JQV9DU19TUlZfUlNQX0VWDQorIDE2OCAgMjAxMS43LjE1INXFxfSzzNT2vNPWp7PWTFRFsbO+sMvRy/e5psTc0MLU9rXEysK8/rrFDQorICAgICAgQVBfTU1JQV9CR1BMTU5TRUxfU0VUUkVRX0VWoaJBUF9NTUlBX0JHUExNTlNFTF9RVUVSWUNORl9FVqGiQVBfTU1JQV9CR1BMTU5TRUxfUVVFUllSRVFfRVYNCisgICAgICBNTUlBX1VNTV9CR1BMTU5TRUxfUkVRX0VWDQorICAgICAgVU1NX0FTQ19UUllfQkdQTE1OX1JFUV9FVqGiVU1NX0FTQ19BQk9SVF9CR1BMTU5fUkVRX0VWoaJVTU1fQVNDX0FCT1JUX0JHUExNTl9DTkZfRVaholVNTV9BU0NfVFJZX0JHUExNTl9SRUpfRVaholVNTV9BU0NfVFJZX0JHUExNTl9DTkZfRVYNCisgICAgICBBU0NfTFRFX1RSWV9CR1BMTU5fUkVRX0VWoaJBU0NfTFRFX0FCT1JUX0JHUExNTl9SRVFfRVahokFTQ19MVEVfQUJPUlRfQkdQTE1OX0NORl9FVqGiQVNDX0xURV9UUllfQkdQTE1OX1JFSl9FVqGiQVNDX0xURV9UUllfQkdQTE1OX0NORl9FVg0KKzE2OSAgMjAxMS43LjE4IMvvs6S9rSDV67bUNjE0MDAwODc4NzI0IMm+s/3I58/Cz/vPorrFDQorICAgIEFTX0xURV9URF9DU0hPX1JFUV9FVqGiQVNfTFRFX1REX0NTSE9fQ05GX0VWoaJBU19MVEVfVERfQ1NIT19SRUpfRVYNCisxNzAgIDIwMTEuNy4yOCC9qrKoINXrttQ2MTQwMDA5MjAyODMg1Pa808jnz8LP+8+iusUNCisgICAgQVNDX0xURV9MT0NLX0NFTExfUkVRX0VWoaJBU0NfTFRFX1VOTE9DS19DRUxMX1JFUV9FVqGiQVNDX0xURV9MT0NLX0NFTExfQ05GX0VWDQorMTcxICAyMDExLjguMiDFy8DaINT2vNPP+8+iusVVVVJMQ19QRENQX0RBVEFfSU5EX0VWDQorMTcyICAyMDExLjguMiDL77Okva0gz/vPorrFtqjS5dbYuLTBy6Os0OjSqsm+s/3P+8+iusVDVU1BQ19SRVNFTF9SRVFfRVajrENVTUFDX1JFU0VMX0lORF9FVg0KKzE3MyAgMjAxMS44LjE1ILPCueK7qtT2vNNDQlPP+8+iusVDQlNfQVNDX0NNQVNfTk9USUZZX0lORF9FVg0KKzE3NCAgMjAxMS44LjE3IL+1yum93NT2vNNDU0fP+8+iusVFVVJSQ19DU0dfUFJPWElNSVRZX0lORF9FVg0KKzE3NSAgMjAxMS44LjIzIL+1yum93Mm+s/1MVEVfUF9TV0lUQ0hfUkZfUkVRX0VWLExURV9QX1NUQVJUX1BBR0lOR19SRVFfRVYsTFRFX1BfU1dJVENIX1JGX0NORl9FVg0KKyAgICAgICAgICAgICAgICAgICAgINT2vNNMVEVfUF9TTEVFUF9USU1FX0lORF9FVqOsTFRFX1BfV0FLRVVQX1JFUV9FVg0KKzE3NiAgMjAxMS44LjIzINXU1fG71M6qQ01NQi/XvEZSL1JlZnJlc2gvt/7O8cHQse0vQ0NPzbO8xtT2vNPP+8+iQVBfTU1JQV9NQl9BVVRIX1JFUV9FVqGiDQorIEFQX01NSUFfTUJfQ0VMTF9JRF9SRVFfRVahokFQX01NSUFfUFNFVURPX0ZSX1NFVF9SRVFfRVahokFQX01NSUFfUFNFVURPX0ZSX1FVRVJZX1JFUV9FVqGiDQorIEFQX01NSUFfUkVGUkVTSF9SRVFfRVahokFQX01NSUFfQ0FSRF9TUlZfTElTVF9RUllfUkVRX0VWoaJBUF9NTUlBX01CX0FVVEhfQ05GX0VWICChog0KKyBBUF9NTUlBX01CX0NFTExfSURfQ05GX0VWoaJBUF9NTUlBX1BTRVVET19GUl9RVUVSWV9DTkZfRVahokFQX01NSUFfQ0FSRF9TUlZfTElTVF9RUllfQ05GX0VWoaINCisgTVNHVFJBQ0VQU19DRUxMUkVTT1JDQ09DT1VOVF9SRVFfRVYNCisxNzcgIDIwMTEuOC4yNCDOpNPx1eTU9rzTbHRlIGdhcLGouOa4+HRycw0KKzE3OCAgMjAxMS44LjI1INHu1MrU9rzTRVNNX0VNTV9FTUVSR0VOQ1lfUEROX09OTFlfSU5EX0VWLEVNTV9FU01fREVUQUNIX05PUk1BTF9JTkRfRVYNCisxNzkgIDIwMTEuOC4yNSDR7rOs1Pa800VTTV9VTU1fTE9DQUxfREVBQ1RfSU5EX0VWDQorMTgwICAyMDExLjguMjUg17+x2LKo1Pa800NNX1NNX0RFQUNUX05PTl9FTUVSR0VOQ1lfRVYNCisxODEgIDIwMTEuOC4yOSC9qrKo1Pa8001TR1RSQUNFUFNfQ0VMTFJFU09SQ0NPQ09VTlRfUkVRX0VWoaJNU0dUUkFDRVBTX0NFTExSRVNPUkNDT19JTkRfRVahok1NSUFfQVNfRU1fQ0VMTFJFU09SQ0NPQ09VTlRfUkVRX0VWoaINCisgICAgICAgICAgICAgICAgICAgICAgIEFTQ19MVEVfQ01BU19OT1RJRllfSU5EX0VWoaJFVVNJUl9UX0VUV1NfRVhQSVJZX0VWoaJFVVNJUl9UX0NNQVNfRVhQSVJZX0VWDQorICAgICAgICAgICAgICAgICAgINDeuMRFVVJSQ19FVFdTX0lORk9fRVYgzqogRVVSUkNfV0FSTklOR19OT1RJRllfSU5GT19FVg0KKzE4MiAgMjAxMS44LjI5INPIuqPToiByZWZyZXNoINT2vNMgQVBfVUlDQ19SRUZSRVNIX1JFUV9FViBBUF9VSUNDX0RFQUNURU5EX0lORF9FViBBUF9VSUNDX0ZJTEVDSEFOR0VFTkRfSU5EX0VWIEFQX1VJQ0NfRklMRUNIQU5HRV9JTkRfRVYNCisxODMgIDIwMTEuOS4xNSC9qrKo1Pa800VVUlJDX1NJX0VORF9GT1JfSE9fRVYgICAgICAgICANCisxODQgIDIwMTEuOS4xNSDN9da+1Pa800VOQlJSQ19QUk9YSU1JVFlfUlBUX0VWICAgICAgICAgIA0KKzE4NSAgMjAxMS45LjE2INDsv6HU9rzTR1JSuq/K/b3Tv9ogICANCisxODYgIDIwMTEuOS4xNiDL77Okva3J6sfr1Pa800VOQlJSQ19VRV9JTkZPX1JFUV9FVqGiRU5CUlJDX1VFX0lORk9fUlNQX0VWICAgIA0KKzE4NyAgMjAxMS45LjI2IMOwv6G199X7R1JStqjKscb3z/vPorrFt7bOpw0KKw0KKzE4OCAgMjAxMS4xMC4xMiBsaCDJvrP9wdrH+MnPsai6zbf+zvHQocf4yc+xqM/7z6K907/ao6zU9rzTTFRF0KHH+NDFz6LJz7GoysK8/rrFDQorMTg5ICAyMDExLjEwLjE4INXU1fG71M6qTFRFsbO+sMvRy/fU9rzTz/vPokFQX01NSUFfTFRFQkdQTE1OX1RFU1RSRVFfRVa6zUFQX01NSUFfTFRFQkdQTE1OX1RFU1RDTkZfRVYNCisNCisxOTAgMjAxMS4xMC4xOSC6zquR1Pa807aoyrHG98rCvP66xVRfRElTQUJMRV9VTVRTX01FQVNfRVYsVF9ESVNBQkxFX0xURV9NRUFTX0VWDQorMTkxIDIwMTEuMTEuMyDV1NXxu9TU9rzTQVBfTU1JQV9TTVNPVkVSSVBORVRfU0VUUkVRX0VWoaJBUF9NTUlBX1NNU09WRVJJUE5FVF9RVUVSWVJFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICBBUF9NTUlBX1NNU09WRVJJUE5FVF9RVUVSWUNORl9FVqGiTU1JQV9VTU1fU01TT1ZFUklQTkVUX1NFVFJFUV9FVg0KKyAgICAgICAgICAgICAgICAgICAgICBFQzYxNDAwMTEyODg3Mw0KKw0KKzE5MiAgICAgIDIwMTEuMTEuNCDV1NXxu9TU9rzTy+Zl0NCw5rG+SWNjSWS1xMnPsai6zbv6v6i7pcv40OjH8zoNCisgICAgICAgICAgICAgICAgICAgICDU9rzTz/vPolpQU19BcFVpY2NfVG9SZWFkQ2FyZFJlcV9FdqGiWlBTX0FwTW1pYV9JY2NpZF9JbmRfRVaholpQU19BcE1taWFfVVNBVF9Ub1JlYWRDYXJkUmVxX0V2DQorDQorMTkzICAgICAgMjAxMS4xMS40INXU1fG71NT2vNNBUF9NTUlBX1NNX0RFQUNUX0lORF9FViwgRUM2MTQwMDExMDMxMzMNCisxOTQgICAgICAyMDExLjExLjIyINPIuqPTotT2vNNURVNUX1NFVF9OVl9EQVRBX1NQQ0xGVU5DX0VWIKOsRUMgNjE0MDAxMTUxMjkxDQorDQorMTk1ICAgICAgMjAxMS4xMi4yICDButChuq7U9rzTz/vPokFQX01NSUFfQ0FMTF9MSU5FX1NFVF9SRVFfRVahokFQX01NSUFfQ0FMTF9MSU5FX1FSWV9SRVFfRVa6zUFQX01NSUFfQ0FMTF9MSU5FX1FVRVJZX0NORl9FViA2MTQwMDExODE0NTQNCisgICAgICAgICAgICAgICAgICAgICAgICAgICBSOSBVMTE1uKPW3bDmsb7Su7v6y6u6xdDox/Mgus/I6w0KKw0KKzE5NiAgICAgIDIwMTEuMTIuMjYgIEVDNjE3MDAxMjI1NjUxLE1NSUHU9rzTVUUgSW5mb7XEyc+xqCzV1NXxu9TU9rzTz/vPolJPQURURVNUX1VFSU5GT19SRVFfRVaholJPQURURVNUX1VFSU5GT19DTkZfRVYNCisxOTcgICAgICAyMDExLjEyLjI3ICDLztHHxfTQwtT2UERDUChSQUJNKc2o1qpHTU252NPaUkFC0MXPog0KKw0KKzE5OCAgICAgIDIwMTIuMS41IEVDNjE3MDAxMjMzMDY01Pa808SjxOJQREm3osvNuPhHU01BtcTP+8+iUERJX0dTTV9EQVRBX1JFUV9FVg0KKzE5OSAgICAgIDIwMTIuMS4xMSAgILnLsaazydDC1PbI/cz1z/vPotPD09rTw7unw+bM2Mri0MXB7rj619kNCisyMDAgICAgICAyMDEyLjAzLjEyICDOpNPx1eQgINT2vNPP+8+iUF9ERVRFQ1RfQ0VMTF9JTkZPX0lORF9FVg0KKzIwMSAgICAgMjAxMi4wMy4yNyAgs8LOsNDC1PZMVEVfUF9ETFNDSF9EQVRBX1RSQUNFX0VWus1MVEVfUF9VTFNDSF9EQVRBX1RSQUNFX0VW08PT2kVQSFm6zUVVTUFDvOS1xMnPz8LQ0Mr9vt3QxcHuuPrX2Q0KKw0KKzIwMiAgICAgMjAxMi4wNC4xNiAgus6rkdDC1PZHUlJfUlJDX1BPV0VST0ZGX0lORF9FVs/7z6LTw8C0zajWqkdSUkMoyO0pudi7+g0KKzIwMyAgICAgMjAxMi4wNS4wOCAgy++zpL2t0MLU9kFTQ19URF9MT1NUQ09WX0NBTVBfU1VDQ19JTkRfRVbP+8+i08PT2sbky/zWxsq9tqrKp7iyuMfW2NGhtb1URLPJuaa686OsQVNDzajWqlVDRVKx7cq+v+fWxsq91tjRobPJuaahow0KKzIwNCAgICAgMjAxMi4wNS4xMCAgs8LOsNDC1PZMVEVfUF9NQUNfU1JfUkVRX0VW08PT2lRNVNDFwe64+tfZU1K1xLeiy80NCisyMDUgICAgIDIwMTIuMDUuMTAgIMvvs6S9rdDC1PZQX1VMX1BIWV9DSF9DVFJMX1JFUV9Fds/7z6LTw9PavfjQ0FVsLURUWMXk1sM/DQorMjA2ICAgICAyMDEyLjA3LjE1ICDButChuq7QwtT2TU1JQV9FVUNTUl9MVEVJTkZPX1JFUV9FVrXIz/vPotPD09phdMP8we7Jz7Go19PWocXk1sPQxc+iDQorMjA3ICAgICAyMDEyLjA4LjAyICDN9dChvfggRUM2MTcwMDE2NjIxNDKjrCDU9rzTDQorICAgICAgICAgICAgICAgICAgICBBUF9VSUNDX0NDSE9fUkVRX0VWLEFQX1VJQ0NfQ0NIQ19SRVFfRVYsQVBfVUlDQ19DR0xBX1JFUV9FVixBUF9VSUNDX0NSU01fUkVRX0VWLA0KKyAgICAgICAgICAgICAgICAgICAgQVBfVUlDQ19DQ0hPX0NORl9FVixBUF9VSUNDX0NHTEFfQ05GX0VWLEFQX1VJQ0NfQ1JTTV9DTkZfRVYsQVBfVUlDQ19VU0FUX0ZFVENIX0lORF9FViwNCisyMDggICAgIDIwMTIuMTEuMDYgIFcgR1JPVVDQ3rjEo7rQ3rjEcHNlbmVudCBlbmQs1NrUrcC0tcS7+bShyc/U9rzTwcs4MDAwLle3x87vwO2y48/7z6LOu9PaTFRFz/vPotauuvOjrNTaMTYzODQtLWVuZA0KKyAgICAgICAgICAgICAgICAgICAgV7XEzu/A7bLjz/vPorfF1Npwcys2NTAwLS0tcHMrNzAwMLXEtdi3vaOsttTT2lRXubLTw8/7z6KyydPD0N64xMP8w/u1xLe9yr1URLjEzqpVVFJBDQorMjA5ICAgICAyMDEyLjExLjIxICDN9dChvfggRUM2MTcwMDE4NjAxMTejrCDWx8Tcu/rIyLLlsM7Q6Mfzo6zU9rzTz/vPog0KKyAgICAgICAgICAgICAgICAgICAgQVBfVUlDQ19NT1ZFQ0FSRF9JTkRfRVYgQVBfVUlDQ19JTlNFUlRDQVJEX0lORF9FVg0KKzIxMCAgICAgMjAxMy4xMC4xOCDOpNPx1eTU9rzTQVRJ0+tBU7XEz/vPok1NSUFfQVNfQjM5X0lORk9fSU5EX0VWKEVVTUNSLFVNQ1ItPkFUSSm6zU1NSUFfQVNfQjM5X0lORk9fUkVRX0VWKEFUSS0+R1JSKQ0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisjaWZuZGVmIFpfRVZFTlRERUZfSA0KKyNkZWZpbmUgWl9FVkVOVERFRl9IDQorDQorI2luY2x1ZGUgImF0aXBzZXZlbnQuaCINCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICAgICAgIM/7z6LH+Lzko7oNCisNCisgICAgICAgICAgfHxfX19fX19fX19fX19fX19fX19fX19ffF9fX19fX19fX19VUEhZX19fX19fX19fX3xfX19fX19fX19fX19fX19fX19fX198X19fX19fX19fX19fX19fX19fX19ffHwNCisgUFNfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVBIWV9CQVNFKCs2SykgICAgICAgICAgICAgICAgICAgICAgVVBIWV9CQVNFKCs2LjVLKSAgICAgICAgICAgICAgICAgUFNfTFRFX0JBU0UoKzEwSykgICAgICAgICAgICAgICAgICAgIFBTX0VORChQU19MVEVfRU5EKQ0KKyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisNCisvKkdTTSBTREzP+8+iysK8/rrFt7bOp6Osvt/M5bXER1NNysK8/rrFtqjS5dTaU0lHX0NPREUuSNbQo6y99tTacHN0ZXN01tDKudPDKi8NCisjZGVmaW5lIEVWRU5UX1BTX0dTTV9TRExfQkFTRSAgICAgICAgICAgICAgICAgICAgKERXT1JEKTB4MDAwMTAwMDANCisjZGVmaW5lIEVWRU5UX1BTX0dTTV9TRExfRU5EICAgICAgICAgICAgICAgICAgICAgKERXT1JEKTB4ZmY3ZDAwMDMNCisNCisvKkxURcrCvP66xbe2zqcqLw0KKyNkZWZpbmUgRVZFTlRfUFNfTFRFX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0JBU0UgKyAxMDAwMCkNCisjZGVmaW5lIEVWRU5UX1BTX0xURV9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19CQVNFICsgMTYzODMpDQorDQorLypXQ0RNQcrCvP66xbe2zqcqLw0KKyNkZWZpbmUgRVZFTlRfUFNfV19CQVNFICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19CQVNFICsgMTYzODQpDQorI2RlZmluZSBFVkVOVF9QU19XX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpRVZFTlRfUFNfRU5EDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqUEhZIG1zZyBiYXNlLWVuZCBzdGFydCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKy8q1eKyv7fWSUSyu8Tcy+bS4tDeuMSjrLvh07DP7L3Tv9rW0LXEbXNnaWS1xNa1o6y007b4yrnO78DtsuO1vNbCzvPF0M/7z6IqLw0KKy8q0K3S6dW70+tURM7vwO2y48/7z6K3ts6nKi8NCisjZGVmaW5lIFBTX1VQSFlfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19CQVNFICsgNjAwMCkNCisvKtCt0unVu9PrV0NETUHO78DtsuPP+8+it7bOpy5URNPrV87vwO2y48/7z6K3ts6nucy2qNTaNjAwMLW9NzAwMC7G5NbQx7A1MDDTw9PaVESjrLrzNTAw08PT2lcqLw0KKyNkZWZpbmUgUFNfV1BIWV9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0JBU0UgKyA2NTAwKQ0KKw0KKy8q0K3S6dW70+tMVEXO78DtsuPP+8+it7bOp6OssaPWpM7vwO2y47rN0K3S6dW7SUTG8Mq81rW1zTjOu8irweOjrLGj1qTHv9bG16q7u86qQllURc6q1f2zo9a1Ki8NCisjZGVmaW5lIExURV9QU19FVVBIWV9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQkFTRSArIDI1NDQpDQorI2RlZmluZSBMVEVfUFNfRVVQSFlfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyA2MCkNCisjZGVmaW5lIExURV9QU19FVVBIWV9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfRVZFTlRfQkFTRSArIDEyMCkNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipQSFkgbXNnICBiYXNlLWVuZCBlbmQqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCisvKlVNTaGiTU2hokdNTcTasr/P+8+it7bOpyg1MCkqLw0KKyNkZWZpbmUgVU1NX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0JBU0UgKyAyNTcwKQ0KKyNkZWZpbmUgVU1NX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9FVkVOVF9CQVNFICsgNDkpDQorDQorLypTUy9TTVMvU00vQ0MvUERDUNPrTU0vR01NtcTP+8+it7bOpyg1MCkqLw0KKyNkZWZpbmUgQ01fTU1fRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0JBU0UgKyAyNjIwKQ0KKyNkZWZpbmUgQ01fTU1fRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENNX01NX0VWRU5UX0JBU0UgKyA0OSkNCisNCisvKlVNTbrNQVNDtcTP+8+it7bOpyAoMTAwKSovDQorI2RlZmluZSBVTU1fQVNDX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfQkFTRSArIDI2NzApDQorI2RlZmluZSBVTU1fQVNDX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19FVkVOVF9CQVNFICsgNTApDQorI2RlZmluZSBVTU1fQVNDX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19FVkVOVF9CQVNFICsgOTkpDQorDQorLypHTU26zUFTQ7XEz/vPore2zqcoMTAwKSAqLw0KKyNkZWZpbmUgR01NX0FTQ19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0JBU0UgKyAyNzcwKQ0KKyNkZWZpbmUgR01NX0FTQ19SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9BU0NfRVZFTlRfQkFTRSArIDUwKQ0KKyNkZWZpbmUgR01NX0FTQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9BU0NfRVZFTlRfQkFTRSArIDk5KQ0KKw0KKy8qQVNDus1VTVRTIEFTtcTP+8+it7bOpyAoMTAwKSovDQorI2RlZmluZSBBU0NfVUFTX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfQkFTRSArIDI4NzApDQorI2RlZmluZSBBU0NfVUFTX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1VBU19FVkVOVF9CQVNFICsgNTApDQorI2RlZmluZSBBU0NfVUFTX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1VBU19FVkVOVF9CQVNFICsgOTkpDQorDQorLypBU0O6zUdTTSBBU7XEz/vPore2zqcoMTAwKSAqLw0KKyNkZWZpbmUgQVNDX0dBU19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIEFTQ19HQVNfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfR0FTX0VWRU5UX0JBU0UgKyA1MCkNCisjZGVmaW5lIEFTQ19HQVNfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfR0FTX0VWRU5UX0JBU0UgKyA5OSkNCisNCisvKkFTQ7rNTFRFIEFTtcTP+8+it7bOpygxMDApICovDQorI2RlZmluZSBBU0NfRVVBU19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgQVNDX0VVQVNfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX0VWRU5UX0JBU0UgKyA1MCkNCisjZGVmaW5lIEFTQ19FVUFTX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfRVVBU19FVkVOVF9CQVNFICsgOTkpDQorDQorLypBU0O6zbj3QVO5q7mytcTP+8+it7bOpygxMDApICovDQorI2RlZmluZSBBU0NfQVNfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIEFTQ19BU19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDE0OSkNCisNCisvKkNCU7rNUlJDtcTP+8+it7bOpygzMCkqLw0KKyNkZWZpbmUgQ0JTX1JSQ19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0JBU0UgKyAzMzIwKQ0KKyNkZWZpbmUgQ0JTX1JSQ19SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENCU19SUkNfRVZFTlRfQkFTRSArIDIwKQ0KKyNkZWZpbmUgQ0JTX1JSQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENCU19SUkNfRVZFTlRfQkFTRSArIDI5KQ0KKw0KKy8qR01Nus1TTkRDULXEz/vPore2zqcoMjUpKi8NCisjZGVmaW5lIEdNTV9TTkRDUF9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQlNfUlJDX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBHTU1fU05EQ1BfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01NX1NORENQX0VWRU5UX0JBU0UgKyAyNCkNCisNCisvKkdNTbrNUERDULXEz/vPore2zqcoMjUpKi8NCisjZGVmaW5lIEdNTV9QRENQX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fU05EQ1BfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIEdNTV9QRENQX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fUERDUF9FVkVOVF9CQVNFICsgMjQpDQorDQorLypTTbrNUERDULXEz/vPore2zqcoNTApKi8NCisjZGVmaW5lIFNNX1BEQ1BfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fUERDUF9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgU01fUERDUF9SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNNX1BEQ1BfRVZFTlRfQkFTRSArIDI1KQ0KKyNkZWZpbmUgU01fUERDUF9FVk5FVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNNX1BEQ1BfRVZFTlRfQkFTRSArIDQ5KQ0KKw0KKy8qU026zVNORENQtcTP+8+it7bOpyg1MCkqLw0KKyNkZWZpbmUgU01fU05EQ1BfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNNX1BEQ1BfRVZORVRfRU5EICsgMSkNCisjZGVmaW5lIFNNX1NORENQX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9TTkRDUF9FVkVOVF9CQVNFICsgMjApDQorI2RlZmluZSBTTV9TTkRDUF9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU01fU05EQ1BfRVZFTlRfQkFTRSArIDQ5KQ0KKw0KKy8qUERJus1HU01BtcTP+8+it7bOpygyMCkqLw0KKyNkZWZpbmUgUERJX0dTTUFfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNNX1NORENQX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBQRElfR1NNQV9SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoUERJX0dTTUFfRVZFTlRfQkFTRSArIDEwKQ0KKyNkZWZpbmUgUERJX0dTTUFfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBESV9HU01BX0VWRU5UX0JBU0UgKyAxOSkNCisNCisvKlBESbrNUERDULXEz/vPore2zqcoMjApKi8NCisjZGVmaW5lIFBESV9QRENQX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQRElfR1NNQV9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgUERJX1BEQ1BfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBESV9QRENQX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIFBESV9QRENQX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQRElfUERDUF9FVkVOVF9CQVNFICsgMTkpDQorDQorLypQREm6zVBEQ1C1xM/7z6K3ts6nKDEwKSovDQorI2RlZmluZSBQRENQX1VSTENfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBESV9QRENQX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBQRENQX1VSTENfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBEQ1BfVVJMQ19FVkVOVF9CQVNFICsgOSkNCisNCisvKlRBRrrNQ0PP+8+it7bOpyg1MCkqLw0KKyNkZWZpbmUgQ0NfVEFGX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBEQ1BfVVJMQ19FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgQ0NfVEFGX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENDX1RBRl9FVkVOVF9CQVNFICsgNDkpDQorDQorLypVTU26zUNCU8/7z6K3ts6nKDUwKSovDQorI2RlZmluZSBVTU1fQ0JTX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQ0NfVEFGX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBVTU1fQ0JTX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0NCU19FVkVOVF9CQVNFICsgMjApDQorI2RlZmluZSBVTU1fQ0JTX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0NCU19FVkVOVF9CQVNFICsgNDkpDQorDQorLypTQ0m6zVVSUkMvQ0PP+8+it7bOpygzMCkqLw0KKyNkZWZpbmUgQVBfU0NJX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9DQlNfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIEFQX1NDSV9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9TQ0lfRVZFTlRfQkFTRSArIDI5KQ0KKw0KKy8qVVJMQ7rNVVJSQ7XEz/vPore2zqcoNjApKi8NCisjZGVmaW5lIFVSTENfVVJSQ19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9TQ0lfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFVSTENfVVJSQ19SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUkxDX1VSUkNfRVZFTlRfQkFTRSArIDMwKQ0KKyNkZWZpbmUgVVJMQ19VUlJDX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSTENfVVJSQ19FVkVOVF9CQVNFICsgNTkpDQorDQorLypVTUFDus1VUlJDtcTP+8+it7bOpyg3MCkqLw0KKyNkZWZpbmUgVU1BQ19VUlJDX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSTENfVVJSQ19FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgVU1BQ19VUlJDX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfVVJSQ19FVkVOVF9CQVNFICsgNDApDQorI2RlZmluZSBVTUFDX1VSUkNfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19VUlJDX0VWRU5UX0JBU0UgKyA2OSkNCisNCisvKlVNQUMtVUwvREy6zVVNQUMtQ7XEz/vPore2zqcoMjApKi8NCisjZGVmaW5lIFVNQUNfVU1BQ19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFVNQUNfVU1BQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VNQUNfRVZFTlRfQkFTRSArIDE5KQ0KKw0KKy8qTDFUus1VUlJDtcTP+8+it7bOpyg2MCkqLw0KKyNkZWZpbmUgTDFUX1VSUkNfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfVU1BQ19FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgTDFUX1VSUkNfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxVF9VUlJDX0VWRU5UX0JBU0UgKyAzMCkNCisjZGVmaW5lIEwxVF9VUlJDX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVRfVVJSQ19FVkVOVF9CQVNFICsgNTkpDQorDQorLypQRENQus1VUlJDtcTP+8+it7bOpyg2MCkqLw0KKyNkZWZpbmUgUERDUF9VUlJDX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxVF9VUlJDX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBQRENQX1VSUkNfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoUERDUF9VUlJDX0VWRU5UX0JBU0UgKyAzMCkNCisjZGVmaW5lIFBEQ1BfVVJSQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQRENQX1VSUkNfRVZFTlRfQkFTRSArIDU5KQ0KKw0KKy8qVVJMQ7rNVU1BQ7XEz/vPore2zqcoMjApKi8NCisjZGVmaW5lIFVSTENfVU1BQ19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQRENQX1VSUkNfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFVSTENfVU1BQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUkxDX1VNQUNfRVZFTlRfQkFTRSArIDE5KQ0KKw0KKy8qTDFUus1VTUFDtcTP+8+it7bOpygxMCkqLw0KKyNkZWZpbmUgVU1BQ19MMVRfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSTENfVU1BQ19FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgVU1BQ19MMVRfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfTDFUX0VWRU5UX0JBU0UgKyA5KQ0KKw0KKy8qVVJSQ8Tasr/P+8+it7bOpygxMDApKi8NCisjZGVmaW5lIFVSUkNfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX0wxVF9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgVVJSQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDk5KQ0KKw0KKy8qTDFUxNqyv8/7z6K3ts6nKDIwKSovDQorI2RlZmluZSBMMVRfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgTDFUX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxVF9FVkVOVF9CQVNFICsgMTkpDQorDQorLyrO78DtsuPKysXksuPWrrzkTDFUL0wxRc/7z6K3ts6nKDMwKaOosruw/LqsTDFHo6zT60wxR727u6W1xM/7z6LIq7K/ysdTREzP+8+io6y2qNLl1NpzaWdfY29kZS5o1tCjqSovDQorI2RlZmluZSBMMUFfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBMMUFfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFBX0VWRU5UX0JBU0UgKyAyOSkNCisNCisvKtCt0unVu8TatqjKscb3s6zKsc/7z6K3ts6nKDUzMCkqLw0KKyNkZWZpbmUgVU1NX1RJTUVSX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NSUFfVElNRVJfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFVNTV9USU1FUl9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fVElNRVJfRVZFTlRfQkFTRSArIDQ5KQ0KKw0KKyNkZWZpbmUgTU1fVElNRVJfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9USU1FUl9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgTU1fVElNRVJfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NX1RJTUVSX0VWRU5UX0JBU0UgKyAyOSkNCisNCisjZGVmaW5lIEdNTV9USU1FUl9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTV9USU1FUl9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgR01NX1RJTUVSX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9USU1FUl9FVkVOVF9CQVNFICsgMjkpDQorDQorI2RlZmluZSBDQ19USU1FUl9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01NX1RJTUVSX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBDQ19USU1FUl9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQ0NfVElNRVJfRVZFTlRfQkFTRSArIDQ5KQ0KKw0KKyNkZWZpbmUgU01TX1RJTUVSX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENDX1RJTUVSX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBTTVNfVElNRVJfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU01TX1RJTUVSX0VWRU5UX0JBU0UgKyAxOSkNCisNCisjZGVmaW5lIFNNX1RJTUVSX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTVNfVElNRVJfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFNNX1RJTUVSX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9USU1FUl9FVkVOVF9CQVNFICsgMTkpDQorDQorI2RlZmluZSBTU19USU1FUl9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU01fVElNRVJfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFNTX1RJTUVSX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTU19USU1FUl9FVkVOVF9CQVNFICsgOSkNCisNCisjZGVmaW5lIENCU19USU1FUl9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTU19USU1FUl9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgQ0JTX1RJTUVSX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENCU19USU1FUl9FVkVOVF9CQVNFICsgOSkNCisNCisjZGVmaW5lIFVJQ0NfVElNRVJfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQlNfVElNRVJfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFVJQ0NfVElNRVJfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVSUNDX1RJTUVSX0VWRU5UX0JBU0UgKyAxOSkNCisNCisjZGVmaW5lIFVSUkNfVElNRVJfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVSUNDX1RJTUVSX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBVUlJDX1RJTUVSX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19USU1FUl9FVkVOVF9CQVNFICsgNzkpDQorDQorI2RlZmluZSBVUkxDX1RJTUVSX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19USU1FUl9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgVVJMQ19USU1FUl9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSTENfVElNRVJfRVZFTlRfQkFTRSArIDE5KQ0KKw0KKyNkZWZpbmUgVU1BQ19USU1FUl9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSTENfVElNRVJfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFVNQUNfVElNRVJfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1RJTUVSX0VWRU5UX0JBU0UgKyAxOSkNCisNCisjZGVmaW5lIEwxVF9USU1FUl9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1RJTUVSX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBMMVRfVElNRVJfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1RJTUVSX0VWRU5UX0JBU0UgKyAxOSkNCisNCisjZGVmaW5lIFBEQ1BfVElNRVJfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVRfVElNRVJfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFBEQ1BfVElNRVJfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQRENQX1RJTUVSX0VWRU5UX0JBU0UgKyA5KQ0KKw0KKyNkZWZpbmUgUk9IQ3YxX1RJTUVSX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBEQ1BfVElNRVJfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFJPSEN2MV9USU1FUl9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgKERXT1JEKShST0hDdjFfVElNRVJfRVZFTlRfQkFTRSArIDE5KQ0KKw0KKyNkZWZpbmUgVEFGX1RJTUVSX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFJPSEN2MV9USU1FUl9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgVEFGX1RJTUVSX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRBRl9USU1FUl9FVkVOVF9CQVNFICsgMTkpDQorDQorI2RlZmluZSBHU01BX1RJTUVSX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVEFGX1RJTUVSX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBHU01BX1RJTUVSX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9USU1FUl9FVkVOVF9CQVNFICsgMTkpDQorDQorI2RlZmluZSBQRElfVElNRVJfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9USU1FUl9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgUERJX1RJTUVSX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBESV9USU1FUl9FVkVOVF9CQVNFICsgMTkpDQorDQorI2RlZmluZSBST0hDdjJfVElNRVJfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgIChEV09SRCkoUERJX1RJTUVSX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBST0hDdjJfVElNRVJfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgIChEV09SRCkoUk9IQ3YyX1RJTUVSX0VWRU5UX0JBU0UgKyAxOSkNCisNCisjZGVmaW5lIFNDSV9USU1FUl9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShST0hDdjJfVElNRVJfRVZFTlRfRU5EICArIDEpDQorI2RlZmluZSBTQ0lfVElNRVJfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU0NJX1RJTUVSX0VWRU5UX0JBU0UgKyA5KQ0KKw0KKyNkZWZpbmUgU1RNX1RJTUVSX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNDSV9USU1FUl9FVkVOVF9FTkQgICsgMSkNCisjZGVmaW5lIFNUTV9USU1FUl9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTVE1fVElNRVJfRVZFTlRfQkFTRSArIDkpDQorDQorI2RlZmluZSBVU0FUX1RJTUVSX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU1RNX1RJTUVSX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBVU0FUX1RJTUVSX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVNBVF9USU1FUl9FVkVOVF9CQVNFICsgOSkNCisNCisjZGVmaW5lIFRJTUVSX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKVVTQVRfVElNRVJfRVZFTlRfRU5EDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqUFMgbXNnIHJhbmdlIGVuZCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlVQSFkgbXNnIHJhbmdlIHN0YXJ0KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorLyrQrdLp1bvT61REzu/A7bLjz/vPore2zqcoMzAwKSovDQorI2RlZmluZSBVU0lSX1VQSFlfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgIChEV09SRClQU19VUEhZX0VWRU5UX0JBU0UNCisjZGVmaW5lIFVTSVJfVVBIWV9SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVU0lSX1VQSFlfRVZFTlRfQkFTRSArIDIwKQ0KKyNkZWZpbmUgVVNJUl9VUEhZX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVTSVJfVVBIWV9FVkVOVF9CQVNFICsgNDkpDQorIA0KKyNkZWZpbmUgVUNTUl9VUEhZX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVTSVJfVVBIWV9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgVUNTUl9VUEhZX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVDU1JfVVBIWV9FVkVOVF9CQVNFICsgMjApDQorI2RlZmluZSBVQ1NSX1VQSFlfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVUNTUl9VUEhZX0VWRU5UX0JBU0UgKyA0OSkNCisNCisjZGVmaW5lIFVNQ1JfVVBIWV9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVQ1NSX1VQSFlfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFVNQ1JfVVBIWV9SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUNSX1VQSFlfRVZFTlRfQkFTRSArIDIwKQ0KKyNkZWZpbmUgVU1DUl9VUEhZX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNQ1JfVVBIWV9FVkVOVF9CQVNFICsgNDkpDQorDQorI2RlZmluZSBVUkJDX1VQSFlfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1DUl9VUEhZX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBVUkJDX1VQSFlfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJCQ19VUEhZX0VWRU5UX0JBU0UgKyAzMCkNCisjZGVmaW5lIFVSQkNfVVBIWV9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUkJDX1VQSFlfRVZFTlRfQkFTRSArIDQ5KQ0KKw0KKyNkZWZpbmUgVU1BQ19VTF9VUEhZX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSQkNfVVBIWV9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgVU1BQ19VTF9VUEhZX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfVUxfVVBIWV9FVkVOVF9CQVNFICsgMTkpDQorDQorI2RlZmluZSBVTUFDX0RMX1VQSFlfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19VTF9VUEhZX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBVTUFDX0RMX1VQSFlfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19ETF9VUEhZX0VWRU5UX0JBU0UgKyAyOSkNCisNCisvKkwxVNPrVETO78DtsuPP+8+it7bOpyovDQorI2RlZmluZSBMMVRfVVBIWV9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19ETF9VUEhZX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBMMVRfVVBIWV9SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfRVZFTlRfQkFTRSArIDIwKQ0KKyNkZWZpbmUgTDFUX1VQSFlfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxVF9VUEhZX0VWRU5UX0JBU0UgKyA0OSkNCisNCisjZGVmaW5lIFBTX1VQSFlfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKUwxVF9VUEhZX0VWRU5UX0VORA0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKldQSFkgbXNnIHJhbmdlIHN0YXJ0KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorLyrQrdLp1bvT61fO78DtsuPP+8+it7bOpyovDQorI2RlZmluZSBXU0lSX1dQSFlfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgIChEV09SRClQU19XUEhZX0VWRU5UX0JBU0UNCisjZGVmaW5lIFdTSVJfV1BIWV9SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXU0lSX1dQSFlfRVZFTlRfQkFTRSArIDIwKQ0KKyNkZWZpbmUgV1NJUl9XUEhZX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdTSVJfV1BIWV9FVkVOVF9CQVNFICsgNDkpDQorIA0KKyNkZWZpbmUgV0NTUl9XUEhZX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdTSVJfV1BIWV9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgV0NTUl9XUEhZX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdDU1JfV1BIWV9FVkVOVF9CQVNFICsgMjApDQorI2RlZmluZSBXQ1NSX1dQSFlfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV0NTUl9XUEhZX0VWRU5UX0JBU0UgKyA0OSkNCisNCisjZGVmaW5lIFdNQ1JfV1BIWV9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXQ1NSX1dQSFlfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFdNQ1JfV1BIWV9SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXTUNSX1dQSFlfRVZFTlRfQkFTRSArIDIwKQ0KKyNkZWZpbmUgV01DUl9XUEhZX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdNQ1JfV1BIWV9FVkVOVF9CQVNFICsgNDkpDQorDQorI2RlZmluZSBXUkJDX1dQSFlfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01DUl9XUEhZX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBXUkJDX1dQSFlfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV1JCQ19XUEhZX0VWRU5UX0JBU0UgKyAzMCkNCisjZGVmaW5lIFdSQkNfV1BIWV9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkJDX1dQSFlfRVZFTlRfQkFTRSArIDQ5KQ0KKw0KKyNkZWZpbmUgV01BQ19VTF9XUEhZX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSQkNfV1BIWV9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgV01BQ19VTF9XUEhZX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdNQUNfVUxfV1BIWV9FVkVOVF9CQVNFICsgMTkpDQorDQorI2RlZmluZSBXTUFDX0RMX1dQSFlfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19VTF9XUEhZX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBXTUFDX0RMX1dQSFlfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19ETF9XUEhZX0VWRU5UX0JBU0UgKyAyOSkNCisNCisvKkwxV9PrV87vwO2y48/7z6K3ts6nKi8NCisjZGVmaW5lIEwxV19XUEhZX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXTUFDX0RMX1dQSFlfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIEwxV19XUEhZX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVdfV1BIWV9FVkVOVF9CQVNFICsgMjApDQorI2RlZmluZSBMMVdfV1BIWV9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dQSFlfRVZFTlRfQkFTRSArIDQ5KQ0KKw0KKyNkZWZpbmUgUFNfV1BIWV9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpTDFXX1dQSFlfRVZFTlRfRU5EDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqV1BIWSBtc2cgcmFuZ2UgZW5kKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqUFMgTFRFIG1zZyByYW5nZSBzdGFydCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKy8qRU1NxKO/6baoyrHG97OsyrHP+8+iysK8/rrFv6rKvL3hyvgoMjApKi8NCisjZGVmaW5lIEVNTV9USU1FUl9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQkFTRSArIDEpDQorI2RlZmluZSBFTU1fVElNRVJfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU1NX1RJTUVSX0VWRU5UX0JBU0UgKyAxOSkNCisNCisvKkVTTcSjv+m2qMqxxvezrMqxz/vPosrCvP66xb+qyry94cr4KDIwKSovDQorI2RlZmluZSBFU01fVElNRVJfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU1NX1RJTUVSX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBFU01fVElNRVJfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVNNX1RJTUVSX0VWRU5UX0JBU0UgKyAxOSkNCisNCisvKkVVUERDUMSjv+m2qMqxxvezrMqxz/vPosrCvP66xb+qyry94cr4KDIwKSovDQorI2RlZmluZSBFUERDUF9USU1FUl9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVNNX1RJTUVSX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBFUERDUF9USU1FUl9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVBEQ1BfVElNRVJfRVZFTlRfQkFTRSArIDE5KQ0KKw0KKy8qRVVSTEPEo7/ptqjKscb3s6zKsc/7z6LKwrz+usW/qsq8veHK+CgxMCkqLw0KKyNkZWZpbmUgRVVSTENfVElNRVJfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVQRENQX1RJTUVSX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBFVVJMQ19USU1FUl9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSTENfVElNRVJfRVZFTlRfQkFTRSArIDkpDQorDQorLypFVU1BQ8Sjv+m2qMqxxvezrMqxz/vPosrCvP66xb+qyry94cr4KDEwKSovIA0KKyNkZWZpbmUgRVVNQUNfVElNRVJfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUkxDX1RJTUVSX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBFVU1BQ19USU1FUl9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVNQUNfVElNRVJfRVZFTlRfQkFTRSArIDkpDQorDQorLypFVVJSQ8Sjv+m2qMqxxvezrMqxz/vPosrCvP66xb+qyry94cr4Ki8gDQorI2RlZmluZSBFVVJSQ19USU1FUl9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVNQUNfVElNRVJfRVZFTlRfRU5EICsgMSkNCisNCisvKkVVQ0VS19PEo7/ptqjKscb3KDIwKSovDQorI2RlZmluZSBFVUNFUl9USU1FUl9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfVElNRVJfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBFVUNFUl9USU1FUl9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVDRVJfVElNRVJfRVZFTlRfQkFTRSArIDE5KQ0KKw0KKy8qRVVNQ1LX08Sjv+m2qMqxxvcoMjApKi8NCisjZGVmaW5lIEVVTUNSX1RJTUVSX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVUNFUl9USU1FUl9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgRVVNQ1JfVElNRVJfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVTUNSX1RJTUVSX0VWRU5UX0JBU0UgKyAxOSkNCisNCisvKkVVQ1NS19PEo7/ptqjKscb3KDIwKSovDQorI2RlZmluZSBFVUNTUl9USU1FUl9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVNQ1JfVElNRVJfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIEVVQ1NSX1RJTUVSX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVUNTUl9USU1FUl9FVkVOVF9CQVNFICsgMTkpDQorDQorLypFVVNJUtfTxKO/6baoyrHG9ygyMCkqLw0KKyNkZWZpbmUgRVVTSVJfVElNRVJfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVQ1NSX1RJTUVSX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBFVVNJUl9USU1FUl9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVTSVJfVElNRVJfRVZFTlRfQkFTRSArIDE5KQ0KKw0KKyNkZWZpbmUgRVVSUkNfVElNRVJfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAoRFdPUkQpRVVTSVJfVElNRVJfRVZFTlRfRU5EIA0KKw0KKy8qRU1Nus1VTU3Eo7/pvOS1xM/7z6JJRLrFKi8NCisjZGVmaW5lIEVNTV9VTU1fRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQkFTRSArIDIwMCkNCisjZGVmaW5lIEVNTV9VTU1fUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTU1fVU1NX0VWRU5UX0JBU0UgKyAxOSkNCisjZGVmaW5lIEVNTV9VTU1fRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTU1fVU1NX0VWRU5UX0JBU0UgKyAyOSkNCisNCisvKlVNTbrNRVBEQ1DEo7/p1q685LXEz/vPoklEICovDQorI2RlZmluZSBVTU1fRVBEQ1BfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU1NX1VNTV9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgVU1NX0VQRENQX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9FUERDUF9FVkVOVF9CQVNFICArIDkpDQorI2RlZmluZSBVTU1fRVBEQ1BfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0VQRENQX0VWRU5UX0JBU0UgICsgMTkpDQorDQorLyogIENNsuO6zUVTTcSjv+m85M/7z6JJRLrFKNDC1PYpKi8NCisjZGVmaW5lIENNX0VTTV9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQkFTRSArIDI2MCkgIA0KKyNkZWZpbmUgQ01fRVNNX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENNX0VTTV9FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIENNX0VTTV9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDTV9FU01fRVZFTlRfQkFTRSArIDE5KSANCisNCisvKiAgQ02y47rNRU1NxKO/6bzkz/vPoklEusUqLw0KKyNkZWZpbmUgQ01fRU1NX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CQVNFICsgMjgwKSAgDQorI2RlZmluZSBDTV9FTU1fUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQ01fRU1NX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgQ01fRU1NX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENNX0VNTV9FVkVOVF9CQVNFICsgMTkpIA0KKw0KKy8qIEVNTbrNRVNNxKO/6bzkz/vPoklEusUqLw0KKyNkZWZpbmUgRVNNX0VNTV9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENNX0VNTV9FVkVOVF9FTkQgKyAxKSAgDQorI2RlZmluZSBFU01fRU1NX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVNNX0VNTV9FVkVOVF9CQVNFICsgMTkpDQorI2RlZmluZSBFU01fRU1NX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVNNX0VNTV9FVkVOVF9CQVNFICsgMjkpDQorDQorLypFTU26zUVSUkMoQ0VSKcSjv+m85M/7z6JJRLrFKi8NCisjZGVmaW5lIEVNTV9BU0NfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFU01fRU1NX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBFTU1fQVNDX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU1NX0FTQ19FVkVOVF9CQVNFICsgMTkpDQorI2RlZmluZSBFTU1fQVNDX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU1NX0FTQ19FVkVOVF9CQVNFICsgNDkpDQorDQorLypFTU26zUVVUERDUMSjv+m85M/7z6JJRLrFKi8NCisjZGVmaW5lIEVNTV9FUERDUF9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTU1fQVNDX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBFTU1fRVBEQ1BfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU1NX0VQRENQX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgRU1NX0VQRENQX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVNTV9FUERDUF9FVkVOVF9CQVNFICsgMTkpDQorDQorLypFU026zVVNTcSjv+m85M/7z6JJRLrFKi8NCisjZGVmaW5lIEVTTV9VTU1fRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQkFTRSArIDQwMCkNCisjZGVmaW5lIEVTTV9VTU1fUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFU01fVU1NX0VWRU5UX0JBU0UgKyAxOSkNCisjZGVmaW5lIEVTTV9VTU1fRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFU01fVU1NX0VWRU5UX0JBU0UgKyAyOSkNCisNCisNCisvKiBFU026zVBEQ1AgxKO/6dauvOS1xM/7z6LKwrz+Ki8NCisjZGVmaW5lIEVTTV9FUERDUF9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQkFTRSArIDQzMCkgIA0KKyNkZWZpbmUgRVNNX0VQRENQX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVTTV9FUERDUF9FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIEVTTV9FUERDUF9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFU01fRVBEQ1BfRVZFTlRfQkFTRSArIDE5KQ0KKw0KKy8qRVVSUkO6zUVQRENQxKO/6dauvOS1xM/7z6LKwrz+Ki8NCisjZGVmaW5lIEVVUlJDX0VQRENQX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQkFTRSArIDQ1MCkNCisjZGVmaW5lIEVVUlJDX0VQRENQX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FUERDUF9FVkVOVF9CQVNFICsgMjUpDQorI2RlZmluZSBFVVJSQ19FUERDUF9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVBEQ1BfRVZFTlRfQkFTRSArIDQ5KQ0KKw0KKy8qRVVSUkO6zUVVUkxDxKO/6dauvOS1xM/7z6LKwrz+Ki8NCisjZGVmaW5lIEVVUlJDX0VVUkxDX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FUERDUF9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgRVVSUkNfRVVSTENfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VVUkxDX0VWRU5UX0JBU0UgKyAxOSkNCisjZGVmaW5lIEVVUlJDX0VVUkxDX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVVJMQ19FVkVOVF9CQVNFICsgMjkpDQorDQorLypFVVJSQ7rNRVVNQUPEo7/p1q685LXEz/vPosrCvP4qLw0KKyNkZWZpbmUgRVVSUkNfRVVNQUNfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VVUkxDX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBFVVJSQ19FVU1BQ19SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVVNQUNfRVZFTlRfQkFTRSArIDI1KQ0KKyNkZWZpbmUgRVVSUkNfRVVNQUNfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VVTUFDX0VWRU5UX0JBU0UgKyA0OSkNCisNCisvKkVVUlJDus1NRUwyxKO/6dauvOS1xM/7z6LKwrz+Ki8NCisjZGVmaW5lIEVVUlJDX01FTDJfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VVTUFDX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBFVVJSQ19NRUwyX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19NRUwyX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgRVVSUkNfTUVMMl9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfTUVMMl9FVkVOVF9CQVNFICsgNikNCisNCisvKlNNus1FU03Eo7/p1q685LXEz/vPosrCvP4qLw0KKyNkZWZpbmUgU01fRVNNX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CQVNFICsgNzUwKSAgICAgLypBZGRlZDpLYW5nU2h1SmllKi8NCisjZGVmaW5lIFNNX0VTTV9SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9FU01fRVZFTlRfQkFTRSArIDI1KSAvKkFkZGVkOkthbmdTaHVKaWUqLw0KKyNkZWZpbmUgU01fRVNNX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNNX0VTTV9FVkVOVF9CQVNFICsgNDkpIC8qQWRkZWQ6S2FuZ1NodUppZSovDQorDQorLypFVVJSQ8Tasr/P+8+iysK8/klEKi8NCisjZGVmaW5lIEVVUlJDX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQkFTRSArIDEwMDApDQorI2RlZmluZSBFVVJSQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVZFTlRfQkFTRSArIDU0KQ0KKw0KKyNkZWZpbmUgRVVQRENQX0VVUkxDX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBFVVBEQ1BfRVVSTENfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVQRENQX0VVUkxDX0VWRU5UX0JBU0UgKyA0KQ0KKw0KKy8qRVVSUkO6zUwxRcSjv+nWrrzkz/vPosrCvP4qLw0KKyNkZWZpbmUgRVVSUkNfTDFFX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CQVNFICsgMTIwMCkNCisjZGVmaW5lIEVVUlJDX0wxRV9SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19MMUVfRVZFTlRfQkFTRSArIDIwKQ0KKyNkZWZpbmUgRVVSUkNfTDFFX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0wxRV9FVkVOVF9CQVNFICsgMzkpDQorDQorDQorI2RlZmluZSBFVURCR19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JBU0UgKyAxNDAwKQ0KKyNkZWZpbmUgRVVEQkdfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVREJHX0VWRU5UX0JBU0UgKyAxOSkNCisNCisjZGVmaW5lIExQUF9FQ0lEX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JBU0UgKyAxNDUwKQ0KKyNkZWZpbmUgTFBQX0VDSURfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CQVNFICsgMTQ5OSkNCisNCisvKiAgTFRFvK+zybLiytS808jrtcSy4srUxKO/6cq508O1xM/7z6IgKi8NCisjZGVmaW5lIFRSU19FU01fRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQkFTRSArIDE1MDApDQorI2RlZmluZSBUUlNfRVNNX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VTTV9FVkVOVF9CQVNFICsgOSkgICANCisjZGVmaW5lIFRSU19FU01fRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRVNNX0VWRU5UX0JBU0UgKyAyOSkgDQorDQorI2RlZmluZSBUUlNfRU1NX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VTTV9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgVFJTX0VNTV9SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19FTU1fRVZFTlRfQkFTRSArIDUpICAgDQorI2RlZmluZSBUUlNfRU1NX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VNTV9FVkVOVF9CQVNFICsgMjkpIA0KKw0KKyNkZWZpbmUgRU5CX0VNTV9FU01fRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19FTU1fRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIEVOQl9FTU1fRVNNX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTkJfRU1NX0VTTV9FVkVOVF9CQVNFICsgOSkgICANCisjZGVmaW5lIEVOQl9FTU1fRVNNX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTkJfRU1NX0VTTV9FVkVOVF9CQVNFICsgMTkpIA0KKw0KKyNkZWZpbmUgRU5CX1JSQ19FTU1fRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOQl9FTU1fRVNNX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBFTkJfUlJDX0VNTV9SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FTU1fRVZFTlRfQkFTRSArIDkpICAgDQorI2RlZmluZSBFTkJfUlJDX0VNTV9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FTU1fRVZFTlRfQkFTRSArIDE5KSANCisNCisjZGVmaW5lIEVOQl9SUkNfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTkJfUlJDX0VNTV9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgRU5CX1JSQ19SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOQl9SUkNfRVZFTlRfQkFTRSArIDI1KSAgIA0KKyNkZWZpbmUgRU5CX1JSQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOQl9SUkNfRVZFTlRfQkFTRSArIDM0KQ0KKw0KKy8qIExURSC8r7PJsuLK1Mr9vt3D5tT2vNO1xM/7z6LG8Mq8uupBREQgQlkgTElVWkhJUEVORyBBVCAwOS0xMi0yOCAqLw0KKw0KKyNkZWZpbmUgRU5SUkNfRU5QRENQX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOQl9SUkNfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIEVOUlJDX0VOUERDUF9SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTlJSQ19FTlBEQ1BfRVZFTlRfQkFTRSArIDIwKQ0KKyNkZWZpbmUgRU5SUkNfRU5QRENQX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOUlJDX0VOUERDUF9FVkVOVF9CQVNFICsgNDQpIA0KKy8qIEVEQ1Ag07K8/rzTy9m907/az/vPoiAqLw0KKyNkZWZpbmUgUFNfRU5EQ1BfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOUlJDX0VOUERDUF9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgUFNfRU5EQ1BfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBTX0VORENQX0VWRU5UX0JBU0UgKyA5KSANCisjZGVmaW5lIFBTX0VORENQX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQU19FTkRDUF9FVkVOVF9CQVNFICsgMTkpIA0KKw0KKy8qIEVOUERDUMSjv+m2qMqxxvezrMqxz/vPosrCvP66xb+qyry94cr4Ki8NCisjZGVmaW5lIEVOUERDUF9USU1FUl9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgKERXT1JEKShQU19FTkRDUF9FVkVOVF9FTkQgKyAxKSAgDQorI2RlZmluZSBFTlBEQ1BfVElNRVJfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5QRENQX1RJTUVSX0VWRU5UX0JBU0UgKyAxOSkNCisNCisvKkVVUkxDxKO/6baoyrHG97OsyrHP+8+iysK8/rrFv6rKvL3hyvgqLw0KKyNkZWZpbmUgRU5STENfVElNRVJfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOUERDUF9USU1FUl9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgRU5STENfVElNRVJfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOUkxDX1RJTUVSX0VWRU5UX0JBU0UgKyA5KQ0KKw0KKy8qIEVOUlJD0+tFTlJMQ7XEz/vPor/VvOQgKi8NCisjZGVmaW5lIEVOUlJDX0VOUkxDX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTlJMQ19USU1FUl9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgRU5SUkNfRU5STENfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOUlJDX0VOUkxDX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgRU5SUkNfRU5STENfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOUlJDX0VOUkxDX0VWRU5UX0JBU0UgKyAxOSkNCisvKiBFTk1BQ9PrRVBIWbXEz/vPor/VvOQqLw0KKyNkZWZpbmUgRU5NQUNfRVBIWV9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOUlJDX0VOUkxDX0VWRU5UX0VORCArIDEpIA0KKyNkZWZpbmUgRU5NQUNfRVBIWV9SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOTUFDX0VQSFlfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBFTk1BQ19FUEhZX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5NQUNfRVBIWV9FVkVOVF9CQVNFICsgMTkpIA0KKw0KKyNkZWZpbmUgRU5SUkNfRU5NQUNfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOTUFDX0VQSFlfRVZFTlRfRU5EICsgMSkgDQorI2RlZmluZSBFTlJSQ19FTk1BQ19SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5SUkNfRU5NQUNfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBFTlJSQ19FTk1BQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5SUkNfRU5NQUNfRVZFTlRfQkFTRSArIDE5KSANCisNCisjZGVmaW5lIEVOUlJDX0VQSFlfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTlJSQ19FTk1BQ19FVkVOVF9FTkQgKyAxKSANCisjZGVmaW5lIEVOUlJDX0VQSFlfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTlJSQ19FUEhZX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgRU5SUkNfRVBIWV9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOUlJDX0VQSFlfRVZFTlRfQkFTRSArIDE5KQ0KKw0KKyNkZWZpbmUgVFJTX0VQSFlfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOUlJDX0VQSFlfRVZFTlRfRU5EICsgMSkgICAgDQorI2RlZmluZSBUUlNfRVBIWV9SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VQSFlfRVZFTlRfQkFTRSArIDEwKQ0KKyNkZWZpbmUgVFJTX0VQSFlfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19FUEhZX0VWRU5UX0JBU0UgKyAxOSkNCisNCisjZGVmaW5lIFRSU19FTk1BQ19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRVBIWV9FVkVOVF9FTkQgKyAxKSAgICANCisjZGVmaW5lIFRSU19FTk1BQ19SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRU5NQUNfRVZFTlRfQkFTRSArIDEwKQ0KKyNkZWZpbmUgVFJTX0VOTUFDX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19FTk1BQ19FVkVOVF9CQVNFICsgMTkpDQorDQorI2RlZmluZSBFTlBESV9FTlBEQ1BfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VOTUFDX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBFTlBESV9FTlBEQ1BfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5QRElfRU5QRENQX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIEVOUERJX0VOUERDUF9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTlBESV9FTlBEQ1BfRVZFTlRfQkFTRSArIDE5KQ0KKw0KKyNkZWZpbmUgVFJTX1NJTVVMUERJX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOUERJX0VOUERDUF9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgVFJTX1NJTVVMUERJX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19TSU1VTFBESV9FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBUUlNfU0lNVUxQRElfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX1NJTVVMUERJX0VWRU5UX0JBU0UgKyAxOSkNCisNCisjZGVmaW5lIFRSU19TSU1VTEVOUERJX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfU0lNVUxQRElfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFRSU19TSU1VTEVOUERJX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfU0lNVUxFTlBESV9FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBUUlNfU0lNVUxFTlBESV9FVkVOVF9FTkQgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX1NJTVVMRU5QRElfRVZFTlRfQkFTRSArIDE5KQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgIFRSUyAtLc6qwctHQ0ay4srUtvi2qNLlMjAxMC8zLzMgU0hJRkFOR01JTkcNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisjZGVmaW5lIExURV9HQ0ZfVFJTX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfU0lNVUxFTlBESV9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgTFRFX0dDRl9UUlNfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9HQ0ZfVFJTX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIExURV9HQ0ZfVFJTX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfR0NGX1RSU19FVkVOVF9CQVNFICsgMTkpDQorDQorI2RlZmluZSBMVEVfR0NGX1RJTUVSX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX0dDRl9UUlNfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIExURV9HQ0ZfVElNRVJfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfR0NGX1RJTUVSX0VWRU5UX0JBU0UgKyAxOSkNCisNCisNCisvKlRSU7rNRU5STEPEo7/p1q685LXEz/vPosrCvP4yMDEwLzMvMSBMSVVIVUFOKi8NCisjZGVmaW5lIFRSU19FTlJMQ19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfR0NGX1RJTUVSX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBUUlNfRU5STENfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VOUkxDX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIFRSU19FTlJMQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRU5STENfRVZFTlRfQkFTRSArIDE5KQ0KKw0KKyNkZWZpbmUgRU5QRENQX0VOUkxDX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19FTlJMQ19FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgRU5QRENQX0VOUkxDX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOUERDUF9FTlJMQ19FVkVOVF9CQVNFICsgOSkNCisNCisvLy0tRU5NRUwyz/vPosrCvP4NCisjZGVmaW5lIEVOTUVMMl9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgKERXT1JEKShFTlBEQ1BfRU5STENfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIEVOTUVMMl9SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTlJSQ19FTk1BQ19FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIEVOTUVMMl9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTlJSQ19FTk1BQ19FVkVOVF9CQVNFICsgNikNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipQUyBMVEUgbXNnICByYW5nZSBlbmQqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipQUyBXICBtc2cgcmFuZ2Ugc3RhcnQqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCisvKldSTEO6zVBEQ1C1xM/7z6K3ts6nKDEwKSovDQorI2RlZmluZSBQRENQX1dSTENfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX1dfQkFTRSArIDEpDQorI2RlZmluZSBQRENQX1dSTENfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBEQ1BfV1JMQ19FVkVOVF9CQVNFICsgOSkNCisNCisNCisvKldSTEO6zVdSUkO1xM/7z6K3ts6nKDYwKSovDQorI2RlZmluZSBXUkxDX1dSUkNfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoUERDUF9XUkxDX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBXUkxDX1dSUkNfUlNQX0VWRU5UICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV1JMQ19XUlJDX0VWRU5UX0JBU0UgKyAzMCkNCisjZGVmaW5lIFdSTENfV1JSQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkxDX1dSUkNfRVZFTlRfQkFTRSArIDU5KQ0KKw0KKy8qV01BQ7rNV1JSQ7XEz/vPore2zqcoNzApKi8NCisjZGVmaW5lIFdNQUNfV1JSQ19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkxDX1dSUkNfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFdNQUNfV1JSQ19SU1BfRVZFTlQgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXTUFDX1dSUkNfRVZFTlRfQkFTRSArIDQwKQ0KKyNkZWZpbmUgV01BQ19XUlJDX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdNQUNfV1JSQ19FVkVOVF9CQVNFICsgNjkpDQorDQorLypXTUFDLVVML0RMus1XTUFDLUO1xM/7z6K3ts6nKDIwKSovDQorI2RlZmluZSBXTUFDX1dNQUNfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBXTUFDX1dNQUNfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XTUFDX0VWRU5UX0JBU0UgKyAxOSkNCisNCisvKkwxV7rNV1JSQ7XEz/vPore2zqcoNjApKi8NCisjZGVmaW5lIEwxV19XUlJDX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXTUFDX1dNQUNfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIEwxV19XUlJDX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVdfV1JSQ19FVkVOVF9CQVNFICsgMzApDQorI2RlZmluZSBMMVdfV1JSQ19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dSUkNfRVZFTlRfQkFTRSArIDU5KQ0KKw0KKy8qUERDULrNV1JSQ7XEz/vPore2zqcoNjApKi8NCisjZGVmaW5lIFBEQ1BfV1JSQ19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVdfV1JSQ19FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgUERDUF9XUlJDX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBEQ1BfV1JSQ19FVkVOVF9CQVNFICsgMzApDQorI2RlZmluZSBQRENQX1dSUkNfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoUERDUF9XUlJDX0VWRU5UX0JBU0UgKyA1OSkNCisNCisvKldSTEO6zVdNQUO1xM/7z6K3ts6nKDIwKSovDQorI2RlZmluZSBXUkxDX1dNQUNfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoUERDUF9XUlJDX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBXUkxDX1dNQUNfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV1JMQ19XTUFDX0VWRU5UX0JBU0UgKyAxOSkNCisNCisvKkwxV7rNV01BQ7XEz/vPore2zqcoMTApKi8NCisjZGVmaW5lIFdNQUNfTDFXX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkxDX1dNQUNfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFdNQUNfTDFXX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXTUFDX0wxV19FVkVOVF9CQVNFICsgOSkNCisNCisvKldSUkPE2rK/z/vPore2zqcoMTAwKSovDQorI2RlZmluZSBXUlJDX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19MMVdfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFdSUkNfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyA5OSkNCisNCisvKkwxV8Tasr/P+8+it7bOpygyMCkqLw0KKyNkZWZpbmUgTDFXX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIEwxV19FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVdfRVZFTlRfQkFTRSArIDE5KQ0KKw0KKy8qQVNDus1VTVRTIEFTtcTP+8+it7bOpyAoMTAwKSovDQorI2RlZmluZSBBU0NfV0FTX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBBU0NfV0FTX1JTUF9FVkVOVCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19FVkVOVF9CQVNFICsgNTApDQorI2RlZmluZSBBU0NfV0FTX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19FVkVOVF9CQVNFICsgOTkpDQorDQorLypXxNq2qMqxxvezrMqxz/vPore2zqcxNDAoKSovDQorDQorI2RlZmluZSBXUlJDX1RJTUVSX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgV1JSQ19USU1FUl9FVkVOVF9FTkQgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDc5KQ0KKw0KKyNkZWZpbmUgV1JMQ19USU1FUl9FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFdSTENfVElNRVJfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkxDX1RJTUVSX0VWRU5UX0JBU0UgKyAxOSkNCisNCisjZGVmaW5lIFdNQUNfVElNRVJfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkxDX1RJTUVSX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBXTUFDX1RJTUVSX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19USU1FUl9FVkVOVF9CQVNFICsgMTkpDQorDQorI2RlZmluZSBMMVdfVElNRVJfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19USU1FUl9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgTDFXX1RJTUVSX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxV19USU1FUl9FVkVOVF9CQVNFICsgMTkpDQorDQorLypXsuLK1M/7z6K3ts6nKDQwKSovDQorDQorI2RlZmluZSBXU0lSX1RFU1RfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1RJTUVSX0VWRU5UX0VORCArIDEpDQorI2RlZmluZSBXU0lSX1RFU1RfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV1NJUl9URVNUX0VWRU5UX0JBU0UgKyA5KQ0KKw0KKyNkZWZpbmUgTldSTENfRVZFTlRfQkFTRSAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdTSVJfVEVTVF9FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgTldSTENfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5XUkxDX0VWRU5UX0JBU0UgKyAxOSkNCisNCisjZGVmaW5lIE5XTUFDX0VWRU5UX0JBU0UgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShOV1JMQ19FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgTldNQUNfRVZFTlRfRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5XTUFDX0VWRU5UX0JBU0UgKyA5KQ0KKw0KKy8quq/K/dDFwe64+tfZz/vPore2zqcoNTApKi8NCisjZGVmaW5lIFdSUkNfRlVOQ19FVkVOVF9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShOV01BQ19FVkVOVF9FTkQgKyAxKQ0KKyNkZWZpbmUgV1JSQ19GVU5DX0VWRU5UX0VORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRlVOQ19FVkVOVF9CQVNFICsgNDkpDQorDQorLyq6r8r9t7W72Na1uPrX2c/7z6K3ts6nKDUwKSovDQorI2RlZmluZSBSUkNfRlVOQ19UUkFDRV9CQVNFICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0ZVTkNfRVZFTlRfRU5EICsgMSkNCisjZGVmaW5lIFJSQ19GVU5DX1RSQUNFX0VORCAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFJSQ19GVU5DX1RSQUNFX0JBU0UgKyA0OSkNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipQUyBXIG1zZyAgcmFuZ2UgZW5kKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgQ00tTU0vR01Nz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgQ01fRVNUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENNX01NX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgQ01fRVNUX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENNX01NX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgQ01fUkVMX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENNX01NX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgQ01fUkVMX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENNX01NX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgQ01fQ0FOQ0VMX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENNX01NX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgQ01fUkVFU1RfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENNX01NX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgQ01fQ01TUlZfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENNX01NX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgQ01fSU5fRkxZX01PREVfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENNX01NX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgQ01fT1VUX0ZMWV9NT0RFX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENNX01NX0VWRU5UX0JBU0UgKyA4KQ0KKyNkZWZpbmUgQ01fREFUQV9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENNX01NX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgQ01fUkFUQ0hHX1NUQVJUX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENNX01NX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIENNX1JBVENIR19FTkRfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDTV9NTV9FVkVOVF9CQVNFICsgMTEpDQorI2RlZmluZSBDTV9SUkNfUkVMX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQ01fTU1fRVZFTlRfQkFTRSArIDEyKQ0KKyNkZWZpbmUgQ01fU1JWQ0NfU1RBUlRfSU5EX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENNX01NX0VWRU5UX0JBU0UgKyAxMykNCisjZGVmaW5lIENNX1NSVkNDX1NVQ0NfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDTV9NTV9FVkVOVF9CQVNFICsgMTQpDQorI2RlZmluZSBDTV9TUlZDQ19GQUlMX0lORF9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQ01fTU1fRVZFTlRfQkFTRSArIDE1KQ0KKyNkZWZpbmUgQ01fU01fT05MWV9PTkVfRVBETkNPTl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKENNX01NX0VWRU5UX0JBU0UgKyAxNikNCisjZGVmaW5lIENNX0VTTV9ERVRBQ0hfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDTV9NTV9FVkVOVF9CQVNFICsgMTcpDQorI2RlZmluZSBDTV9TTV9ERUFDVF9OT05fRU1FUkdFTkNZX0VWICAgICAgICAgICAgIChEV09SRCkoQ01fTU1fRVZFTlRfQkFTRSArIDE4KQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFVNTaOtTU0vR01NL0VNTc/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFVNTV9VUERBVEVfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBVTU1fREVUQUNIX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgVU1NX1BFTkRJTkdfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIFVNTV9SRVNVTUVfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBVTU1fQUJPUlRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgVU1NX0VNRVJHRU5DWV9VUERBVEVfUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIFVNTV9DU0VTVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBVTU1fUEFHRV9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgVU1NX0NDT19TVEFSVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIFVNTV9IT19TVEFSVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBVTU1fQ0VMTF9SRVNFTF9TVEFSVF9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoVU1NX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIFVNTV9MVV9TVUNDX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fRVZFTlRfQkFTRSArIDExKQ0KKyNkZWZpbmUgVU1NX0ZBSUxfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9FVkVOVF9CQVNFICsgMTIpDQorI2RlZmluZSBVTU1fUlVfU1VDQ19JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0VWRU5UX0JBU0UgKyAxMykNCisjZGVmaW5lIFVNTV9ERVRBQ0hfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fRVZFTlRfQkFTRSArIDE0KQ0KKyNkZWZpbmUgVU1NX0RFVEFDSF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9FVkVOVF9CQVNFICsgMTUpDQorI2RlZmluZSBVTU1fTU1fQ1VSUkVOVF9TVEFURV9JTkRfRVYgICAgICAgICAgICAgIChEV09SRCkoVU1NX0VWRU5UX0JBU0UgKyAxNikNCisjZGVmaW5lIFVNTV9HTU1fQ1VSUkVOVF9TVEFURV9JTkRfRVYgICAgICAgICAgICAgKERXT1JEKShVTU1fRVZFTlRfQkFTRSArIDE3KQ0KKyNkZWZpbmUgVU1NX0VNRVJHRU5DWV9UMzQxMl9FWFBJUllfSU5EX0VWICAgICAgICAoRFdPUkQpKFVNTV9FVkVOVF9CQVNFICsgMTgpDQorI2RlZmluZSBVTU1fQ0VMTF9OT19DSEdfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0VWRU5UX0JBU0UgKyAxOSkNCisjZGVmaW5lIFVNTV9DU19FU1RfUkVKX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fRVZFTlRfQkFTRSArIDIwKQ0KKyNkZWZpbmUgVU1NX0NTX1NSVl9OT1RJRllfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9FVkVOVF9CQVNFICsgMjEpDQorI2RlZmluZSBVTU1fQ0NPX0VORF9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0VWRU5UX0JBU0UgKyAyMikNCisjZGVmaW5lIFVNTV9IT19FTkRfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fRVZFTlRfQkFTRSArIDIzKQ0KKyNkZWZpbmUgVU1NX0NFTExfUkVTRUxfRU5EX0lORF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9FVkVOVF9CQVNFICsgMjQpDQorI2RlZmluZSBVTU1fQVRUQUNIX1NUQVRFX1NZTkNfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoVU1NX0VWRU5UX0JBU0UgKyAyNSkNCisjZGVmaW5lIFVNTV9DSEVDS19SRUxfUlJDX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fRVZFTlRfQkFTRSArIDI2KQ0KKyNkZWZpbmUgVU1NX1BTX0NPTlRFWFRfSU5EX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9FVkVOVF9CQVNFICsgMjcpDQorI2RlZmluZSBVTU1fU1RBUlRfVEVNUEVSQVRVUkVfQ1RSTF9SRVFfRVYgICAgICAgIChEV09SRCkoVU1NX0VWRU5UX0JBU0UgKyAyOCkNCisjZGVmaW5lIFVNTV9TVE9QX1RFTVBFUkFUVVJFX0NUUkxfUkVRX0VWICAgICAgICAgKERXT1JEKShVTU1fRVZFTlRfQkFTRSArIDI5KQ0KKyNkZWZpbmUgVU1NX1BPV0VST0ZGX0lORF9SViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9FVkVOVF9CQVNFICsgMzApDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgVU1No61BU0PP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBVTU1fQVNDX0NBTVBPTl9DRUxMX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIFVNTV9BU0NfQ0FNUE9OX0FOWUNFTExfUkVRX0VWICAgICAgICAgICAgKERXT1JEKShVTU1fQVNDX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgVU1NX0FTQ19VUERBVEVfUExNTl9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9BU0NfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBVTU1fQVNDX1BMTU5fTElTVF9SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIFVNTV9BU0NfU1dJVENIX1JBRElPX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShVTU1fQVNDX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgVU1NX0FTQ19UUllfSFBQTE1OX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9BU0NfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBVTU1fQVNDX1NUT1BfUExNTl9MSVNUX1JFUV9FViAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIFVNTV9BU0NfUENIX1BSRV9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fQVNDX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgVU1NX0FTQ19BQk9SVF9IUFBMTU5fUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9BU0NfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBVTU1fQVNDX1VQREFURV9QQVJBTV9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIFVNTV9BU0NfSU5BQ1RJVkVfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fQVNDX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIFVNTV9BU0NfUEFHRV9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fQVNDX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIFVNTV9BU0NfTE9DS19DRUxMX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fQVNDX0VWRU5UX0JBU0UgKyAxMikNCisjZGVmaW5lIFVNTV9BU0NfVU5MT0NLX0NFTExfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShVTU1fQVNDX0VWRU5UX0JBU0UgKyAxMykNCisjZGVmaW5lIFVNTV9BU0NfR1NNX1NSVl9OT1RJRllfUkVRX0VWICAgICAgICAgICAgKERXT1JEKShVTU1fQVNDX0VWRU5UX0JBU0UgKyAxNCkNCisjZGVmaW5lIFVNTV9BU0NfQ1NHX0xJU1RfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fQVNDX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIFVNTV9BU0NfVVBEQVRFX1NZU0NPTkZJR19SRVFfRVYgICAgICAgICAgKERXT1JEKShVTU1fQVNDX0VWRU5UX0JBU0UgKyAxNikgDQorI2RlZmluZSBVTU1fQVNDX1VQREFURV9MVEVfQUNUX0VWICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19FVkVOVF9CQVNFICsgMTcpIA0KKyNkZWZpbmUgVU1NX0FTQ19VUERBVEVfU0NBTl9VRV9CQU5EX0ZHX0VWICAgICAgICAoRFdPUkQpKFVNTV9BU0NfRVZFTlRfQkFTRSArIDE4KSAgDQorI2RlZmluZSBVTU1fQVNDX1VQREFURV9XSElURV9DU0dMSVNUX1JFUV9FViAgICAgIChEV09SRCkoVU1NX0FTQ19FVkVOVF9CQVNFICsgMTkpDQorI2RlZmluZSBVTU1fQVNDX1NUT1BfQ1NHX0xJU1RfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19FVkVOVF9CQVNFICsgMjApDQorI2RlZmluZSBVTU1fQVNDX1VQREFURV9BVVRIX1BBUkFNX1JFUV9FViAgICAgICAgIChEV09SRCkoVU1NX0FTQ19FVkVOVF9CQVNFICsgMjEpDQorI2RlZmluZSBVTU1fQVNDX1NZU19DQU1QX0xURVNVQkFDVF9SRVFfRVYgICAgICAgIChEV09SRCkoVU1NX0FTQ19FVkVOVF9CQVNFICsgMjIpDQorI2RlZmluZSBVTU1fQVNDX0RFTEZPUkJJRERFTkxBSUxJU1RfUkVRX0VWICAgICAgIChEV09SRCkoVU1NX0FTQ19FVkVOVF9CQVNFICsgMjMpDQorI2RlZmluZSBVTU1fQVNDX0hQUExNTl9FTkRfSU5EX0VWICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19FVkVOVF9CQVNFICsgMjQpDQorI2RlZmluZSBVTU1fQVNDX1hDRUxMSU5GT19SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19FVkVOVF9CQVNFICsgMjUpDQorI2RlZmluZSBVTU1fQVNDX1hDRUxMSU5GT19BQk9SVF9SRVFfRVYgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19FVkVOVF9CQVNFICsgMjYpDQorDQorI2RlZmluZSBVTU1fQVNDX0NFTExfSU5GT19JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19SU1BfRVZFTlQgKyAwKQ0KKyNkZWZpbmUgVU1NX0FTQ19OT0NFTExfSU5EX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9BU0NfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIFVNTV9BU0NfUExNTl9MSVNUX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fQVNDX1JTUF9FVkVOVCArIDIpDQorI2RlZmluZSBVTU1fQVNDX1NXSVRDSF9SQURJT19DTkZfRVYgICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19SU1BfRVZFTlQgKyAzKQ0KKyNkZWZpbmUgVU1NX0FTQ19DTklORk9fSU5EX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9BU0NfUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIFVNTV9BU0NfVFJZX0hQUExNTl9SRUpfRVYgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fQVNDX1JTUF9FVkVOVCArIDUpDQorI2RlZmluZSBVTU1fQVNDX1BMTU5fTElTVF9SRUpfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19SU1BfRVZFTlQgKyA2KQ0KKyNkZWZpbmUgVU1NX0FTQ19JTkFDVElWRV9DTkZfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9BU0NfUlNQX0VWRU5UICsgNykNCisjZGVmaW5lIFVNTV9BU0NfSE9fU1RBUlRfSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fQVNDX1JTUF9FVkVOVCArIDkpDQorI2RlZmluZSBVTU1fQVNDX0NDT19TVEFSVF9JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19SU1BfRVZFTlQgKyAxMCkNCisjZGVmaW5lIFVNTV9BU0NfQ0VMTF9SRVNFTF9TVEFSVF9JTkRfRVYgICAgICAgICAgKERXT1JEKShVTU1fQVNDX1JTUF9FVkVOVCArIDExKSANCisjZGVmaW5lIFVNTV9BU0NfSE9fRU5EX0lORF9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fQVNDX1JTUF9FVkVOVCArIDEyKQ0KKyNkZWZpbmUgVU1NX0FTQ19DQ09fRU5EX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9BU0NfUlNQX0VWRU5UICsgMTMpDQorI2RlZmluZSBVTU1fQVNDX0NFTExfUkVTRUxfRU5EX0lORF9FViAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19SU1BfRVZFTlQgKyAxNCkNCisjZGVmaW5lIFVNTV9BU0NfVFJZX0hQUExNTl9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fQVNDX1JTUF9FVkVOVCArIDE1KQ0KKyNkZWZpbmUgVU1NX0FTQ19BQk9SVF9IUFBMTU5fQ05GX0VWICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9BU0NfUlNQX0VWRU5UICsgMTYpDQorI2RlZmluZSBVTU1fQVNDX0xPQ0tfQ0VMTF9DTkZfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19SU1BfRVZFTlQgKyAxNykNCisjZGVmaW5lIFVNTV9BU0NfQ1NHX0xJU1RfQ05GX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fQVNDX1JTUF9FVkVOVCArIDE4KQ0KKyNkZWZpbmUgVU1NX0FTQ19DU0dfTElTVF9SRUpfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9BU0NfUlNQX0VWRU5UICsgMTkpDQorI2RlZmluZSBVTU1fQVNDX1RCRl9SRUxFQVNFX0lORF9FViAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19SU1BfRVZFTlQgKyAyMCkNCisjZGVmaW5lIFVNTV9BU0NfU0NBTl9VRV9CQU5EX0lORF9FViAgICAgICAgICAgICAgKERXT1JEKShVTU1fQVNDX1JTUF9FVkVOVCArIDIxKQ0KKyNkZWZpbmUgVU1NX0FTQ19VUERBVEVfQUNDRVNTX0NMQVNTX0lORk9fRVYgICAgICAoRFdPUkQpKFVNTV9BU0NfUlNQX0VWRU5UICsgMjIpDQorI2RlZmluZSBVTU1fQVNDX0NFTExfVVBEQVRFX0lORF9FViAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19SU1BfRVZFTlQgKyAyMykgICAgIC8qR1JSzajWqlVNTdf20KHH+Lj80MIqLw0KKyNkZWZpbmUgVU1NX0FTQ19SRUNPTlNUX1BTUkVTX0lORF9FViAgICAgICAgICAgICAoRFdPUkQpKFVNTV9BU0NfUlNQX0VWRU5UICsgMjQpDQorI2RlZmluZSBVTU1fQVNDX1NVQk1PREVfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19SU1BfRVZFTlQgKyAyNSkNCisjZGVmaW5lIFVNTV9BU0NfQ0VMTF9MT1NUX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fQVNDX1JTUF9FVkVOVCArIDI2KQ0KKyNkZWZpbmUgVU1NX0FTQ19DRUxMX1JFQ09WRVJBR0VfSU5EX0VWICAgICAgICAgICAoRFdPUkQpKFVNTV9BU0NfUlNQX0VWRU5UICsgMjcpDQorI2RlZmluZSBVTU1fQVNDX1hDRUxMSU5GT19DTkZfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19SU1BfRVZFTlQgKyAyOCkNCisjZGVmaW5lIFVNTV9BU0NfWENFTExJTkZPX1JFSl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fQVNDX1JTUF9FVkVOVCArIDI5KQ0KKyNkZWZpbmUgVU1NX0FTQ19ORUlHQ0VMTF9JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9BU0NfUlNQX0VWRU5UICsgMzApDQorI2RlZmluZSBVTU1fQVNDX1NDQU5fQ05GX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0FTQ19SU1BfRVZFTlQgKyAzMSkNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBNTS9HTU0vQ0OjrUFTQ8/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIEdNTV9BU0NfRVNUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fQVNDX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgR01NX0FTQ19SRUxfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9BU0NfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBHTU1fQVNDX0RBVEFfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01NX0FTQ19FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIEdNTV9BU0NfQ0FMTF9UWVBFX05PVElGWV9SRVFfRVYgICAgICAgICAgKERXT1JEKShHTU1fQVNDX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgR01NX0FTQ19HUlJfQVNTSUdOX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9BU0NfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBHTU1fQVNDX0dSUl9JTkZPX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoR01NX0FTQ19FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIEdNTV9BU0NfTExfQVNTSUdOX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fQVNDX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgR01NX0FTQ19MTF9UUklHR0VSX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9BU0NfRVZFTlRfQkFTRSArIDcpDQorI2RlZmluZSBHTU1fQVNDX0xMX1NVU1BFTkRfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoR01NX0FTQ19FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIEdNTV9BU0NfTExfUkVTVU1FX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fQVNDX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgR01NX0FTQ19MTF9VTklUREFUQV9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9BU0NfRVZFTlRfQkFTRSArIDEwKQ0KKyNkZWZpbmUgR01NX0FTQ19DTEVBTl9QRU5EX0VTVF9SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKEdNTV9BU0NfRVZFTlRfQkFTRSArIDExKQ0KKw0KKyNkZWZpbmUgR01NX0FTQ19FU1RfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9BU0NfUlNQX0VWRU5UICsgMCkNCisjZGVmaW5lIEdNTV9BU0NfRVNUX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fQVNDX1JTUF9FVkVOVCArIDEpDQorI2RlZmluZSBHTU1fQVNDX1JFTF9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01NX0FTQ19SU1BfRVZFTlQgKyAyKQ0KKyNkZWZpbmUgR01NX0FTQ19TWU5DX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9BU0NfUlNQX0VWRU5UICsgMykNCisjZGVmaW5lIEdNTV9BU0NfQ0NTWU5DX0lORF9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fQVNDX1JTUF9FVkVOVCArIDQpDQorI2RlZmluZSBHTU1fQVNDX1BBR0VfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01NX0FTQ19SU1BfRVZFTlQgKyA1KQ0KKyNkZWZpbmUgR01NX0FTQ19EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9BU0NfUlNQX0VWRU5UICsgNikNCisjZGVmaW5lIEdNTV9BU0NfU1VTUEVORF9JTkRfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fQVNDX1JTUF9FVkVOVCArIDcpDQorI2RlZmluZSBHTU1fQVNDX0dTTV9DQ19TWU5DX0lORF9FViAgICAgICAgICAgICAgIChEV09SRCkoR01NX0FTQ19SU1BfRVZFTlQgKyA4KQ0KKyNkZWZpbmUgR01NX0FTQ19DU19SQUJfUkVMX0lORF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9BU0NfUlNQX0VWRU5UICsgOSkNCisjZGVmaW5lIEdNTV9BU0NfR1NNX0NDX1RDSF9SRUxfSU5EX0VWICAgICAgICAgICAgKERXT1JEKShHTU1fQVNDX1JTUF9FVkVOVCArIDEwKQ0KKyNkZWZpbmUgR01NX0FTQ19TQVBJM19SRUxfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9BU0NfUlNQX0VWRU5UICsgMTEpDQorI2RlZmluZSBHTU1fQVNDX1NSVkNDX1NUQVJUX0lORF9FViAgICAgICAgICAgICAgIChEV09SRCkoR01NX0FTQ19SU1BfRVZFTlQgKyAxMikNCisjZGVmaW5lIEdNTV9BU0NfU1JWQ0NfRU5EX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fQVNDX1JTUF9FVkVOVCArIDEzKQ0KKyNkZWZpbmUgR01NX0FTQ19MTF9VTklUREFUQV9JTkRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9BU0NfUlNQX0VWRU5UICsgMTQpDQorI2RlZmluZSBHTU1fQVNDX0xMX1RSSUdHRVJfSU5EX0VWICAgICAgICAgICAgICAgIChEV09SRCkoR01NX0FTQ19SU1BfRVZFTlQgKyAxNSkNCisjZGVmaW5lIEdNTV9BU0NfTExfU1RBVFVTX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fQVNDX1JTUF9FVkVOVCArIDE2KQ0KKyNkZWZpbmUgR01NX0FTQ19MTF9VU0VSX0RBVEFfUFJFU0VOVF9FViAgICAgICAgICAoRFdPUkQpKEdNTV9BU0NfUlNQX0VWRU5UICsgMTcpDQorI2RlZmluZSBHTU1fQVNDX0dTTV9TTV9DVVJSX0JFQVJfSU5EX0VWICAgICAgICAgIChEV09SRCkoR01NX0FTQ19SU1BfRVZFTlQgKyAxOCkNCisjZGVmaW5lIEdNTV9BU0NfVVRSQV9TTV9DVVJSX0JFQVJfSU5EX0VWICAgICAgICAgKERXT1JEKShHTU1fQVNDX1JTUF9FVkVOVCArIDE5KS8qV0NETUEqLy8qttTTpkFTsuO1xEFTQ19URF9DVVJSX0JFQVJfSU5EX0VWus1BU0NfV19DVVJSX0JFQVJfSU5EX0VWKi8NCisjZGVmaW5lIEdNTV9BU0NfUFNIT19JTkZPX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fQVNDX1JTUF9FVkVOVCArIDIwKSAgICAgLypMTEPNqNaqR01Nx9C7u8/gudi808Pcy+O3qCAgQVNDo60+R01NKi8NCisjZGVmaW5lIEdNTV9BU0NfU0VORF9DTVBfSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fQVNDX1JTUF9FVkVOVCArIDIxKQ0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIEFTQ6OtVU1UUyBBU8/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBBU0OjrVREIEFTz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKy8qQVNDLT5VQ1NSKi8NCisjZGVmaW5lIEFTQ19URF9TV0lUQ0hfUkFESU9fUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgQVNDX1REX0NBTVBPTl9DRUxMX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBBU0NfVERfQ0FNUE9OX0FOWUNFTExfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoQVNDX1VBU19FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIEFTQ19URF9VUERBVEVfUkVQTE1OX0ZBSUxFRF9MQUlfSU5EX0VWICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgQVNDX1REX1BMTU5fTElTVF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBBU0NfVERfU1RPUF9QTE1OX0xJU1RfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoQVNDX1VBU19FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIEFTQ19URF9UUllfSFBQTE1OX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgQVNDX1REX0FCT1JUX0hQUExNTl9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfRVZFTlRfQkFTRSArIDcpDQorI2RlZmluZSBBU0NfVERfVVBEQVRFX1NDQU5fVUVfQkFORF9GR19FViAgICAgICAgIChEV09SRCkoQVNDX1VBU19FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIEFTQ19URF9JUkFUX0NBTVBPTl9SRUpfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgQVNDX1REX0lSQVRfQ0FNUE9OX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfRVZFTlRfQkFTRSArIDEwKQ0KKyNkZWZpbmUgQVNDX1REX0FCT1JUX1JTUF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfRVZFTlRfQkFTRSArIDExKQ0KKw0KKy8qTkFTLT5BU0MtPkFTKi8NCisjZGVmaW5lIEFTQ19URF9MT0NLX0NFTExfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAxMikNCisjZGVmaW5lIEFTQ19URF9VTkxPQ0tfQ0VMTF9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAxMykNCisjZGVmaW5lIEFTQ19URF9FU1RfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAxNCkNCisjZGVmaW5lIEFTQ19URF9EQVRBX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIEFTQ19URF9SRUxfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAxNikNCisjZGVmaW5lIEFTQ19URF9DQUxMX1RZUEVfTk9USUZZX1JFUV9FViAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAxNykNCisjZGVmaW5lIEFTQ19URF9QQUdFX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAxOCkNCisjZGVmaW5lIEFTQ19URF9JTkFDVElWRV9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAxOSkgICANCisjZGVmaW5lIEFTQ19URF9DTEVBTl9QRU5EX0VTVF9SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAyMCkNCisjZGVmaW5lIEFTQ19URF9OT19EUlhfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAyMSkNCisjZGVmaW5lIEFTQ19URF9EUlhfUlNWX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAyMikNCisjZGVmaW5lIEFTQ19URF9TVE9QX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAyMykNCisjZGVmaW5lIEFTQ19URF9VUERBVEVfQ0FNUF9BQ1RfUkVRX0VWICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAyNCkNCisjZGVmaW5lIEFTQ19URF9MT1NUQ09WX0NBTVBfU1VDQ19JTkRfRVYgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAyNSkNCisjZGVmaW5lIEFTQ19URF9VUERBVEVfQVVUSF9QQVJBTV9SRVFfRVYgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAyNikNCisjZGVmaW5lIEFTQ19URF9YQ0VMTElORk9fUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAyNykNCisjZGVmaW5lIEFTQ19URF9YQ0VMTElORk9fQUJPUlRfUkVRX0VWICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX0VWRU5UX0JBU0UgKyAyOCkNCisNCisvKlVDU1ItPkFTQyAqLw0KKyNkZWZpbmUgQVNDX1REX1NXSVRDSF9SQURJT19DTkZfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfUlNQX0VWRU5UICsgMCkNCisjZGVmaW5lIEFTQ19URF9JUkFUX0NBTVBPTl9TVEFSVF9JTkRfRVYgICAgICAgICAgKERXT1JEKShBU0NfVUFTX1JTUF9FVkVOVCArIDEpDQorI2RlZmluZSBBU0NfVERfSVJBVF9DQU1QT05fUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1VBU19SU1BfRVZFTlQgKyAyKSAgDQorI2RlZmluZSBBU0NfVERfQ0VMTF9JTkZPX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1VBU19SU1BfRVZFTlQgKyAzKQ0KKyNkZWZpbmUgQVNDX1REX1RSWV9IUFBMTU5fQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfUlNQX0VWRU5UICsgNCkNCisNCisjZGVmaW5lIEFTQ19URF9OT0NFTExfSU5GT19JTkRfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX1JTUF9FVkVOVCArIDUpDQorI2RlZmluZSBBU0NfVERfUExNTl9MSVNUX0NORl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1VBU19SU1BfRVZFTlQgKyA2KQ0KKyNkZWZpbmUgQVNDX1REX1BMTU5fTElTVF9SRUpfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfUlNQX0VWRU5UICsgNykNCisjZGVmaW5lIEFTQ19URF9UUllfSFBQTE1OX1JFSl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX1JTUF9FVkVOVCArIDgpDQorI2RlZmluZSBBU0NfVERfQUJPUlRfSFBQTE1OX0NORl9FViAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1VBU19SU1BfRVZFTlQgKyA5KQ0KKyNkZWZpbmUgQVNDX1REX0FCT1JUX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfUlNQX0VWRU5UICsgMTApDQorI2RlZmluZSBBU0NfVERfU1VCTU9ERV9JTkRfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1VBU19SU1BfRVZFTlQgKyAxMSkNCisjZGVmaW5lIEFTQ19URF9MT0NLX0NFTExfQ05GX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX1JTUF9FVkVOVCArIDEyKQ0KKyNkZWZpbmUgQVNDX1REX1NDQU5fVUVfQkFORF9JTkRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfUlNQX0VWRU5UICsgMTMpDQorDQorLypVQ1NSLT5BU0Mgb3IgVUNFUi0+QVNDKi8NCisjZGVmaW5lIEFTQ19URF9VUERBVEVfQUNDRVNTX0NMQVNTX0lORk9fRVYgICAgICAgKERXT1JEKShBU0NfVUFTX1JTUF9FVkVOVCArIDE0KQ0KKyNkZWZpbmUgQVNDX1REX0lOQUNUSVZFX0NORl9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfUlNQX0VWRU5UICsgMTUpIA0KKyNkZWZpbmUgQVNDX1REX0VTVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfUlNQX0VWRU5UICsgMTYpDQorI2RlZmluZSBBU0NfVERfREFUQV9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1VBU19SU1BfRVZFTlQgKyAxNykNCisjZGVmaW5lIEFTQ19URF9SRUxfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX1JTUF9FVkVOVCArIDE4KQ0KKyNkZWZpbmUgQVNDX1REX1BBR0lOR19JTkRfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfUlNQX0VWRU5UICsgMTkpDQorI2RlZmluZSBBU0NfVERfU1lOQ19JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1VBU19SU1BfRVZFTlQgKyAyMCkNCisjZGVmaW5lIEFTQ19URF9QQ0hfQ0VMTF9JTkZPX0lORF9FViAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX1JTUF9FVkVOVCArIDIxKQ0KKyNkZWZpbmUgQVNDX1REX1VVUkxDX0RBVEFfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfUlNQX0VWRU5UICsgMjIpDQorI2RlZmluZSBBU0NfVERfRVRXU19QUklNQVJZX05PVElGWV9JTkRfRVYgICAgICAgIChEV09SRCkoQVNDX1VBU19SU1BfRVZFTlQgKyAyMykNCisjZGVmaW5lIEFTQ19URF9FVFdTX1NFQ09OREFSWV9OT1RJRllfSU5EX0VWICAgICAgKERXT1JEKShBU0NfVUFTX1JTUF9FVkVOVCArIDI0KQ0KKyNkZWZpbmUgQVNDX1REX1NSVkNDX1NUQVJUX0lORF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfUlNQX0VWRU5UICsgMjUpDQorI2RlZmluZSBBU0NfVERfU1JWQ0NfRU5EX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1VBU19SU1BfRVZFTlQgKyAyNikNCisjZGVmaW5lIEFTQ19URF9DQ1NZTkNfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX1JTUF9FVkVOVCArIDI3KQ0KKyNkZWZpbmUgQVNDX1REX0NTX1JBQl9SRUxfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfUlNQX0VWRU5UICsgMjgpDQorI2RlZmluZSBBU0NfVERfQ05JTkZPX0lORF9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1VBU19SU1BfRVZFTlQgKyAyOSkNCisNCisvKiAgVVJCQy0+QVNDICAgKi8NCisjZGVmaW5lIEFTQ19URF9DVVJSX0JFQVJfSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX1JTUF9FVkVOVCArIDMwKQ0KKyNkZWZpbmUgQVNDX1REX1JFQ09OU1RfUFNSRVNfSU5EX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfUlNQX0VWRU5UICsgMzEpDQorI2RlZmluZSBBU0NfVERfQ0VMTF9MT1NUX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1VBU19SU1BfRVZFTlQgKyAzMikNCisjZGVmaW5lIEFTQ19URF9DRUxMX1JFQ09WRVJBR0VfSU5EX0VWICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX1JTUF9FVkVOVCArIDMzKQ0KKw0KKy8qVUNTUi0+QVNDIGFkZCovDQorI2RlZmluZSBBU0NfVERfWENFTExJTkZPX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfVUFTX1JTUF9FVkVOVCArIDM0KQ0KKyNkZWZpbmUgQVNDX1REX1hDRUxMSU5GT19BQk9SVF9DTkZfRVYgICAgICAgICAgIChEV09SRCkoQVNDX1VBU19SU1BfRVZFTlQgKyAzNSkNCisjZGVmaW5lIEFTQ19URF9YQ0VMTElORk9fUkVKX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19VQVNfUlNQX0VWRU5UICsgMzYpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgQVNDo61XQ0RNQSBBU8/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisvKkFTQy0+V0NTUiovDQorI2RlZmluZSBBU0NfV19TV0lUQ0hfUkFESU9fUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgQVNDX1dfQ0FNUE9OX0NFTExfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIEFTQ19XX0NBTVBPTl9BTllDRUxMX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKEFTQ19XQVNfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBBU0NfV19VUERBVEVfUkVQTE1OX0ZBSUxFRF9MQUlfSU5EX0VWICAgKERXT1JEKShBU0NfV0FTX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgQVNDX1dfUExNTl9MSVNUX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIEFTQ19XX1NUT1BfUExNTl9MSVNUX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKEFTQ19XQVNfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBBU0NfV19UUllfSFBQTE1OX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgQVNDX1dfQUJPUlRfSFBQTE1OX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIEFTQ19XX1VQREFURV9TQ0FOX1VFX0JBTkRfRkdfRVYgICAgICAgICAoRFdPUkQpKEFTQ19XQVNfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBBU0NfV19JUkFUX0NBTVBPTl9SRUpfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgQVNDX1dfSVJBVF9DQU1QT05fQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBBU0NfV19BQk9SVF9SU1BfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIEFTQ19XX0lSQVRfSU5BQ1RJVkVfQ05GX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19XQVNfRVZFTlRfQkFTRSArIDEyKQ0KKw0KKy8qTkFTLT5BU0MtPkFTKi8NCisjZGVmaW5lIEFTQ19XX0VTVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19XQVNfRVZFTlRfQkFTRSArIDEzKQ0KKyNkZWZpbmUgQVNDX1dfREFUQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19FVkVOVF9CQVNFICsgMTQpDQorI2RlZmluZSBBU0NfV19SRUxfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIEFTQ19XX0NBTExfVFlQRV9OT1RJRllfUkVRX0VWICAgICAgICAgICAoRFdPUkQpKEFTQ19XQVNfRVZFTlRfQkFTRSArIDE2KQ0KKyNkZWZpbmUgQVNDX1dfUEFHRV9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19FVkVOVF9CQVNFICsgMTcpDQorI2RlZmluZSBBU0NfV19JTkFDVElWRV9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX0VWRU5UX0JBU0UgKyAxOCkgICANCisjZGVmaW5lIEFTQ19XX0NMRUFOX1BFTkRfRVNUX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKEFTQ19XQVNfRVZFTlRfQkFTRSArIDE5KQ0KKyNkZWZpbmUgQVNDX1dfTk9fRFJYX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19FVkVOVF9CQVNFICsgMjApDQorI2RlZmluZSBBU0NfV19EUlhfUlNWX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX0VWRU5UX0JBU0UgKyAyMSkNCisjZGVmaW5lIEFTQ19XX1NUT1BfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19XQVNfRVZFTlRfQkFTRSArIDIyKQ0KKyNkZWZpbmUgQVNDX1dfVVBEQVRFX0NBTVBfQUNUX1JFUV9FViAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19FVkVOVF9CQVNFICsgMjMpDQorI2RlZmluZSBBU0NfV19MT1NUQ09WX0NBTVBfU1VDQ19JTkRfRVYgICAgICAgICAgKERXT1JEKShBU0NfV0FTX0VWRU5UX0JBU0UgKyAyNCkNCisjZGVmaW5lIEFTQ19XX1VQREFURV9BVVRIX1BBUkFNX1JFUV9FViAgICAgICAgICAoRFdPUkQpKEFTQ19XQVNfRVZFTlRfQkFTRSArIDI1KQ0KKyNkZWZpbmUgQVNDX1dfWENFTExJTkZPX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19FVkVOVF9CQVNFICsgMjYpDQorI2RlZmluZSBBU0NfV19YQ0VMTElORk9fQUJPUlRfUkVRX0VWICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX0VWRU5UX0JBU0UgKyAyNykNCisNCisvKldDU1ItPkFTQyAqLw0KKyNkZWZpbmUgQVNDX1dfU1dJVENIX1JBRElPX0NORl9FViAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19SU1BfRVZFTlQgKyAwKQ0KKyNkZWZpbmUgQVNDX1dfSVJBVF9DQU1QT05fU1RBUlRfSU5EX0VWICAgICAgICAgIChEV09SRCkoQVNDX1dBU19SU1BfRVZFTlQgKyAxKQ0KKyNkZWZpbmUgQVNDX1dfSVJBVF9DQU1QT05fUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19SU1BfRVZFTlQgKyAyKSAgDQorI2RlZmluZSBBU0NfV19DRUxMX0lORk9fSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX1JTUF9FVkVOVCArIDMpDQorI2RlZmluZSBBU0NfV19UUllfSFBQTE1OX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX1JTUF9FVkVOVCArIDQpDQorI2RlZmluZSBBU0NfV19JUkFUX0lOQUNUSVZFX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX1JTUF9FVkVOVCArIDUpDQorDQorI2RlZmluZSBBU0NfV19OT0NFTExfSU5GT19JTkRfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX1JTUF9FVkVOVCArIDYpDQorI2RlZmluZSBBU0NfV19QTE1OX0xJU1RfQ05GX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX1JTUF9FVkVOVCArIDcpDQorI2RlZmluZSBBU0NfV19QTE1OX0xJU1RfUkVKX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX1JTUF9FVkVOVCArIDgpDQorI2RlZmluZSBBU0NfV19UUllfSFBQTE1OX1JFSl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX1JTUF9FVkVOVCArIDkpDQorI2RlZmluZSBBU0NfV19BQk9SVF9IUFBMTU5fQ05GX0VWICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX1JTUF9FVkVOVCArIDEwKQ0KKyNkZWZpbmUgQVNDX1dfQUJPUlRfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19SU1BfRVZFTlQgKyAxMSkNCisjZGVmaW5lIEFTQ19XX1NVQk1PREVfSU5EX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19XQVNfUlNQX0VWRU5UICsgMTIpDQorI2RlZmluZSBBU0NfV19TQ0FOX1VFX0JBTkRfSU5EX0VWICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX1JTUF9FVkVOVCArIDEzKQ0KKw0KKy8qV0NTUi0+QVNDIG9yIFdDRVItPkFTQyovDQorI2RlZmluZSBBU0NfV19VUERBVEVfQUNDRVNTX0NMQVNTX0lORk9fRVYgICAgICAgKERXT1JEKShBU0NfV0FTX1JTUF9FVkVOVCArIDE0KQ0KKyNkZWZpbmUgQVNDX1dfSU5BQ1RJVkVfQ05GX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19SU1BfRVZFTlQgKyAxNSkNCisjZGVmaW5lIEFTQ19XX0VTVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19XQVNfUlNQX0VWRU5UICsgMTYpDQorI2RlZmluZSBBU0NfV19EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX1JTUF9FVkVOVCArIDE3KQ0KKyNkZWZpbmUgQVNDX1dfUkVMX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19SU1BfRVZFTlQgKyAxOCkNCisjZGVmaW5lIEFTQ19XX1BBR0lOR19JTkRfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19XQVNfUlNQX0VWRU5UICsgMTkpDQorI2RlZmluZSBBU0NfV19TWU5DX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX1JTUF9FVkVOVCArIDIwKQ0KKyNkZWZpbmUgQVNDX1dfUENIX0NFTExfSU5GT19JTkRfRVYgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19SU1BfRVZFTlQgKyAyMSkNCisjZGVmaW5lIEFTQ19XX1VVUkxDX0RBVEFfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19XQVNfUlNQX0VWRU5UICsgMjIpDQorI2RlZmluZSBBU0NfV19FVFdTX1BSSU1BUllfTk9USUZZX0lORF9FViAgICAgICAgKERXT1JEKShBU0NfV0FTX1JTUF9FVkVOVCArIDIzKQ0KKyNkZWZpbmUgQVNDX1dfRVRXU19TRUNPTkRBUllfTk9USUZZX0lORF9FViAgICAgIChEV09SRCkoQVNDX1dBU19SU1BfRVZFTlQgKyAyNCkNCisjZGVmaW5lIEFTQ19XX1NSVkNDX1NUQVJUX0lORF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19XQVNfUlNQX0VWRU5UICsgMjUpDQorI2RlZmluZSBBU0NfV19TUlZDQ19FTkRfSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX1JTUF9FVkVOVCArIDI2KQ0KKyNkZWZpbmUgQVNDX1dfQ0NTWU5DX0lORF9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19SU1BfRVZFTlQgKyAyNykNCisjZGVmaW5lIEFTQ19XX0NTX1JBQl9SRUxfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19XQVNfUlNQX0VWRU5UICsgMjgpDQorI2RlZmluZSBBU0NfV19DTklORk9fSU5EX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX1JTUF9FVkVOVCArIDI5KQ0KKy8qICBXUkJDLT5BU0MgICAqLw0KKyNkZWZpbmUgQVNDX1dfQ1VSUl9CRUFSX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19SU1BfRVZFTlQgKyAzMCkNCisjZGVmaW5lIEFTQ19XX1JFQ09OU1RfUFNSRVNfSU5EX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19XQVNfUlNQX0VWRU5UICsgMzEpDQorLypXQ0RNQSovDQorI2RlZmluZSBBU0NfV19VV1JMQ19EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX1JTUF9FVkVOVCArIDMyKQ0KKy8qV0NTUi9VQ1NSIC0+IEFTQyovDQorI2RlZmluZSBBU0NfVVRSQV9SRURJUkVDVF9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX1JTUF9FVkVOVCArIDMzKQ0KKyNkZWZpbmUgQVNDX1VUUkFfUkVTRUxfQ05GX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19SU1BfRVZFTlQgKyAzNCkNCisjZGVmaW5lIEFTQ19VVFJBX0NPTVBMRVRFX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19XQVNfUlNQX0VWRU5UICsgMzUpDQorI2RlZmluZSBBU0NfV19YQ0VMTElORk9fQ05GX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfV0FTX1JTUF9FVkVOVCArIDM2KQ0KKyNkZWZpbmUgQVNDX1dfWENFTExJTkZPX0FCT1JUX0NORl9FViAgICAgICAgICAgIChEV09SRCkoQVNDX1dBU19SU1BfRVZFTlQgKyAzNykNCisjZGVmaW5lIEFTQ19XX1hDRUxMSU5GT19SRUpfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19XQVNfUlNQX0VWRU5UICsgMzgpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgQVNDo61HU00gQVPP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorLypBU0MtPkdTTUHP+8+iKi8NCisjZGVmaW5lIEFTQ19HU01fU1dJVENIX1JBRElPX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShBU0NfR0FTX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgQVNDX0dTTV9DQU1QT05fQ0VMTF9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBBU0NfR1NNX0NBTVBPTl9BTllDRUxMX1JFUV9FViAgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIEFTQ19HU01fSU5BQ1RJVkVfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfR0FTX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgQVNDX0dTTV9QTE1OX0xJU1RfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBBU0NfR1NNX1NUT1BfUExNTl9MSVNUX1JFUV9FViAgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIEFTQ19HU01fVFJZX0hQUExNTl9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfR0FTX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgQVNDX0dTTV9BQk9SVF9IUFBMTU5fUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDcpDQorI2RlZmluZSBBU0NfR1NNX1VQREFURV9QQVJBTV9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIEFTQ19HU01fVVBEQVRFX0VQTE1OX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShBU0NfR0FTX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgQVNDX0dTTV9HU01fU1JWX05PVElGWV9SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDEwKQ0KKyNkZWZpbmUgQVNDX0dTTV9QQ0hQUkVfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDExKQ0KKyNkZWZpbmUgQVNDX0dTTV9VUERBVEVfUkVQTE1OX0ZBSUxFRF9MQUlfSU5EX0VWICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDEyKQ0KKyNkZWZpbmUgQVNDX0dTTV9FU1RfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDEzKQ0KKyNkZWZpbmUgQVNDX0dTTV9EQVRBX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDE0KQ0KKyNkZWZpbmUgQVNDX0dTTV9SRUxfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDE1KQ0KKyNkZWZpbmUgQVNDX0dTTV9BU1NJR05fUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDE2KQ0KKyNkZWZpbmUgQVNDX0dTTV9JTkZPX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDE3KQ0KKyNkZWZpbmUgQVNDX0dTTV9BQk9SVF9SU1BfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDE4KQ0KKw0KKy8qQVNDLT5HU01BtcQsR1NNQcrKxeRMTEO1xM/7z6LKwrz+usUqLw0KKyNkZWZpbmUgQVNDX0xMQ19BU1NJR05fUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDE5KQ0KKyNkZWZpbmUgQVNDX0xMQ19UUklHR0VSX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDIwKQ0KKyNkZWZpbmUgQVNDX0xMQ19TVVNQRU5EX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDIxKQ0KKyNkZWZpbmUgQVNDX0xMQ19SRVNVTUVfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDIyKQ0KKyNkZWZpbmUgQVNDX0xMQ19VTklUREFUQV9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDIzKQ0KKyNkZWZpbmUgQVNDX1NOUF9HTU1fU0VRX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDI0KQ0KKw0KKy8vwdrH+NDFz6K78cihz/vPog0KKyNkZWZpbmUgQVNDX0dTTV9YQ0VMTElORk9fUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDI1KQ0KKyNkZWZpbmUgQVNDX0dTTV9YQ0VMTElORk9fQUJPUlRfUkVRX0VWICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfRVZFTlRfQkFTRSArIDI2KQ0KKw0KKy8qR1NNQS0+QVNDz/vPoiovDQorI2RlZmluZSBBU0NfR1NNX1NXSVRDSF9SQURJT19DTkZfRVYgICAgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19SU1BfRVZFTlQgKyAwKQ0KKyNkZWZpbmUgQVNDX0dTTV9DRUxMX0lORk9fSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIEFTQ19HU01fTk9DRUxMX0lORk9fSU5EX0VWICAgICAgICAgICAgICAgKERXT1JEKShBU0NfR0FTX1JTUF9FVkVOVCArIDIpDQorI2RlZmluZSBBU0NfR1NNX0lOQUNUSVZFX0NORl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19SU1BfRVZFTlQgKyAzKQ0KKyNkZWZpbmUgQVNDX0dTTV9QTE1OX0xJU1RfUkVKX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIEFTQ19HU01fUExNTl9MSVNUX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfR0FTX1JTUF9FVkVOVCArIDUpDQorI2RlZmluZSBBU0NfR1NNX0FCT1JUX0lORF9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19SU1BfRVZFTlQgKyA2KQ0KKyNkZWZpbmUgQVNDX0dTTV9UUllfSFBQTE1OX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfUlNQX0VWRU5UICsgNykNCisjZGVmaW5lIEFTQ19HU01fVFJZX0hQUExNTl9SRUpfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfR0FTX1JTUF9FVkVOVCArIDgpDQorI2RlZmluZSBBU0NfR1NNX0FCT1JUX0hQUExNTl9DTkZfRVYgICAgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19SU1BfRVZFTlQgKyA5KQ0KKyNkZWZpbmUgQVNDX0dTTV9DRUxMX1VQREFURV9JTkRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfUlNQX0VWRU5UICsgMTApDQorI2RlZmluZSBBU0NfR1NNX1NVQk1PREVfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19SU1BfRVZFTlQgKyAxMSkNCisjZGVmaW5lIEFTQ19HU01fRVNUX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfR0FTX1JTUF9FVkVOVCArIDEyKQ0KKyNkZWZpbmUgQVNDX0dTTV9SRUxfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfUlNQX0VWRU5UICsgMTMpDQorI2RlZmluZSBBU0NfR1NNX1NZTkNfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19SU1BfRVZFTlQgKyAxNCkNCisjZGVmaW5lIEFTQ19HU01fQ0NTWU5DX0lORF9HU01fRVYgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfR0FTX1JTUF9FVkVOVCArIDE1KQ0KKyNkZWZpbmUgQVNDX0dTTV9TVVNQRU5EX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfUlNQX0VWRU5UICsgMTYpDQorI2RlZmluZSBBU0NfR1NNX1BBR0VfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19SU1BfRVZFTlQgKyAxNykNCisjZGVmaW5lIEFTQ19HU01fRVNUX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfR0FTX1JTUF9FVkVOVCArIDE4KQ0KKyNkZWZpbmUgQVNDX0dTTV9EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfUlNQX0VWRU5UICsgMTkpDQorI2RlZmluZSBBU0NfR1NNX1NBUEkzX1JFTF9JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19SU1BfRVZFTlQgKyAyMCkNCisjZGVmaW5lIEFTQ19HU01fQ0NUQ0hfUkVMX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfR0FTX1JTUF9FVkVOVCArIDIxKQ0KKyNkZWZpbmUgQVNDX0dTTV9UQkZfUkVMRUFTRV9JTkRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfUlNQX0VWRU5UICsgMjIpDQorI2RlZmluZSBBU0NfR1NNX1VUUkFfQ1NIT19FTkRJTkRfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfR0FTX1JTUF9FVkVOVCArIDIzKQ0KKw0KKyNkZWZpbmUgQVNDX0xMQ19VTklUREFUQV9JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfUlNQX0VWRU5UICsgMjQpDQorI2RlZmluZSBBU0NfTExDX1RSSUdHRVJfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19SU1BfRVZFTlQgKyAyNSkNCisjZGVmaW5lIEFTQ19MTENfU1RBVFVTX0lORF9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfR0FTX1JTUF9FVkVOVCArIDI2KQ0KKyNkZWZpbmUgQVNDX0xMQ19VU0VSX0RBVEFfUFJFU0VOVF9FViAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfUlNQX0VWRU5UICsgMjcpDQorI2RlZmluZSBBU0NfTExDX1BTSE9fSU5GT19JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19SU1BfRVZFTlQgKyAyOCkNCisNCisvKkdTTUEtPkFTQy0+Q0JTIChBU0PNuLSrKSovDQorI2RlZmluZSBBU0NfR1NNX0VUV1NfTk9USUZZX0lORF9FViAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19SU1BfRVZFTlQgKyAyOSkNCisvKkFTX0dTTV9MVEVfUkVESVJFQ1RfQ05GX0VWL0FTX0dTTV9URF9SRURJUkVDVF9DTkZfRVa1vUFTQ7rzo6zTyUFTQ7j4R1NNv9XP+8+iyLfIzyovDQorI2RlZmluZSBBU0NfR1NNX1JFRElSRUNUX0NORl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19SU1BfRVZFTlQgKyAzMCkNCisvKkFTX0dTTV9MVEVfUkVTRUxfQ05GX0VWL0FTX0dTTV9URF9SRVNFTF9DTkZfRVa1vUFTQ7rzo6zTyUFTQ7j4R1NNv9XP+8+iyLfIzyovDQorI2RlZmluZSBBU0NfR1NNX1JFU0VMX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19SU1BfRVZFTlQgKyAzMSkgDQorDQorLypHU01BLT5BU0MtPlNNIChBU0PNuLSrKSovDQorI2RlZmluZSBBU0NfR1NNX0NVUlJfQkVBUl9JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19SU1BfRVZFTlQgKyAzMikNCisjZGVmaW5lIEFTQ19TTlBfR01NX1NFUV9SU1BfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfR0FTX1JTUF9FVkVOVCArIDMzKQ0KKw0KKy8qR1NNQS0+QVNDLT5TTVMgKEFTQ824tKspKi8NCisjZGVmaW5lIEFTQ19HU01fU0VORF9DTVBfSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfR0FTX1JTUF9FVkVOVCArIDM0KQ0KKw0KKyNkZWZpbmUgQVNDX0dTTV9YQ0VMTElORk9fQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19HQVNfUlNQX0VWRU5UICsgMzUpDQorI2RlZmluZSBBU0NfR1NNX1hDRUxMSU5GT19BQk9SVF9DTkZfRVYgICAgICAgICAgIChEV09SRCkoQVNDX0dBU19SU1BfRVZFTlQgKyAzNikNCisjZGVmaW5lIEFTQ19HU01fWENFTExJTkZPX1JFSl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfR0FTX1JTUF9FVkVOVCArIDM3KQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIEFTQ6OtTFRFIEFTz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKy8qQVNDLS0+RVVSUkMqLw0KKyNkZWZpbmUgQVNDX0xURV9TV0lUQ0hfUkFESU9fUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgQVNDX0xURV9DQU1QT05fQ0VMTF9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgQVNDX0xURV9DQU1QT05fQU5ZQ0VMTF9SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgQVNDX0xURV9VUERBVEVfUExNTl9GVEFJX0lORF9FViAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgQVNDX0xURV9QTE1OX0xJU1RfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgQVNDX0xURV9TVE9QX1BMTU5fTElTVF9SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgQVNDX0xURV9DU0dfTElTVF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgQVNDX0xURV9TVE9QX0NTR19MSVNUX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgQVNDX0xURV9UUllfSFBQTE1OX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX0VWRU5UX0JBU0UgKyA4KQ0KKyNkZWZpbmUgQVNDX0xURV9BQk9SVF9IUFBMTU5fUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgQVNDX0xURV9FU1RfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIEFTQ19MVEVfRVNUX0FCVF9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfRVVBU19FVkVOVF9CQVNFICsgMTEpDQorI2RlZmluZSBBU0NfTFRFX1JFTF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfRVZFTlRfQkFTRSArIDEyKQ0KKyNkZWZpbmUgQVNDX0xURV9LRU5CX1JTUF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX0VWRU5UX0JBU0UgKyAxMykNCisjZGVmaW5lIEFTQ19MVEVfUkVMX0RBVEFfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfRVVBU19FVkVOVF9CQVNFICsgMTQpDQorI2RlZmluZSBBU0NfTFRFX0RBVEFfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfRVZFTlRfQkFTRSArIDE1KQ0KKyNkZWZpbmUgQVNDX0xURV9JTkFDVElWRV9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX0VWRU5UX0JBU0UgKyAxNikNCisjZGVmaW5lIEFTQ19MVEVfVVBEQVRFX1NDQU5fVUVfQkFORF9GR19FViAgICAgICAgKERXT1JEKShBU0NfRVVBU19FVkVOVF9CQVNFICsgMTcpDQorI2RlZmluZSBBU0NfTFRFX0RFVEFDSF9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfRVZFTlRfQkFTRSArIDE4KQ0KKyNkZWZpbmUgQVNDX0xURV9HUk9VUF9SRUxfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX0VWRU5UX0JBU0UgKyAxOSkgDQorI2RlZmluZSBBU0NfTFRFX1NDQU5TV0lUQ0hfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfRVZFTlRfQkFTRSArIDIwKSANCisjZGVmaW5lIEFTQ19MVEVfWENFTExJTkZPX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfRVVBU19FVkVOVF9CQVNFICsgMjEpIA0KKyNkZWZpbmUgQVNDX0xURV9YQ0VMTElORk9fQUJPUlRfUkVRX0VWICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX0VWRU5UX0JBU0UgKyAyMikgDQorDQorLyogRVVSUkMtPkFTQyAqLw0KKyNkZWZpbmUgQVNDX0xURV9TV0lUQ0hfUkFESU9fQ05GX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX1JTUF9FVkVOVCArIDApDQorI2RlZmluZSBBU0NfTFRFX0NFTExfSU5GT19JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIEFTQ19MVEVfTk9DRUxMX0lORF9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfRVVBU19SU1BfRVZFTlQgKyAyKQ0KKyNkZWZpbmUgQVNDX0xURV9QQUdFX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX1JTUF9FVkVOVCArIDMpDQorI2RlZmluZSBBU0NfTFRFX1BMTU5fTElTVF9DTkZfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIEFTQ19MVEVfUExNTl9MSVNUX1JFSl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfRVVBU19SU1BfRVZFTlQgKyA1KQ0KKyNkZWZpbmUgQVNDX0xURV9DU0dfTElTVF9DTkZfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX1JTUF9FVkVOVCArIDYpDQorI2RlZmluZSBBU0NfTFRFX0NTR19MSVNUX1JFSl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgNykNCisjZGVmaW5lIEFTQ19MVEVfVFJZX0hQUExNTl9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfRVVBU19SU1BfRVZFTlQgKyA4KQ0KKyNkZWZpbmUgQVNDX0xURV9UUllfSFBQTE1OX1JFSl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX1JTUF9FVkVOVCArIDkpDQorI2RlZmluZSBBU0NfTFRFX0FCT1JUX0hQUExNTl9DTkZfRVYgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMTApDQorI2RlZmluZSBBU0NfTFRFX0FCT1JUX0lORF9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMTEpDQorI2RlZmluZSBBU0NfTFRFX0VUV1NfUFJJTUFSWV9OT1RJRllfSU5EX0VWICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMTMpDQorI2RlZmluZSBBU0NfTFRFX0VUV1NfU0VDT05EQVJZX05PVElGWV9JTkRfRVYgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMTQpDQorI2RlZmluZSBBU0NfTFRFX0RBVEFfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMTUpDQorI2RlZmluZSBBU0NfTFRFX0VTVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMTYpDQorI2RlZmluZSBBU0NfTFRFX0VTVF9SRUpfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMTcpDQorI2RlZmluZSBBU0NfTFRFX1JFTF9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMTgpDQorI2RlZmluZSBBU0NfTFRFX0FCQV9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMTkpDQorI2RlZmluZSBBU0NfTFRFX0RSQl9TRVRVUF9JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMjApDQorI2RlZmluZSBBU0NfTFRFX1RSQU5TX0ZBSUxfSU5EX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMjEpDQorI2RlZmluZSBBU0NfTFRFX0tFTkJfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMjIpDQorI2RlZmluZSBBU0NfTFRFX1VFX0lORk9fQ0hBTkdFX0lORF9FViAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMjMpDQorI2RlZmluZSBBU0NfTFRFX0RBVEFfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMjQpDQorI2RlZmluZSBBU0NfTFRFX1NFQ19QQVJBX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMjUpDQorI2RlZmluZSBBU0NfTFRFX0lOQUNUSVZFX0NORl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMjYpDQorI2RlZmluZSBBU0NfTFRFX0FCT1JUX1JTUF9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMjcpDQorLypBU19MVEVfVERfUkVESVJFQ1RfQ05GX0VWL0FTX0dTTV9URF9SRURJUkVDVF9DTkZfRVa1vUFTQ7rzo6zTyUFTQ7j4R1NNv9XP+8+iyLfIzyovDQorI2RlZmluZSBBU0NfTFRFX1JFRElSRUNUX0NORl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMjgpDQorLypBU19HU01fTFRFX1JFU0VMX0NORl9FVi9BU19HU01fVERfUkVTRUxfQ05GX0VWtb1BU0O686Os08lBU0O4+EdTTb/Vz/vPosi3yM8qLw0KKyNkZWZpbmUgQVNDX0xURV9SRVNFTF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUFTX1JTUF9FVkVOVCArIDI5KSANCisjZGVmaW5lIEFTQ19MVEVfU1JWQ0NfU1RBUlRfSU5EX0VWICAgICAgICAgICAgICAgKERXT1JEKShBU0NfRVVBU19SU1BfRVZFTlQgKyAzMCkNCisjZGVmaW5lIEFTQ19MVEVfU1JWQ0NfRU5EX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfRVVBU19SU1BfRVZFTlQgKyAzMSkNCisjZGVmaW5lIEFTQ19MVEVfQ01BU19OT1RJRllfSU5EX0VWICAgICAgICAgICAgICAgKERXT1JEKShBU0NfRVVBU19SU1BfRVZFTlQgKyAzMikNCisjZGVmaW5lIEFTQ19MVEVfU0NBTl9VRV9CQU5EX0lORF9FViAgICAgICAgICAgICAgKERXT1JEKShBU0NfRVVBU19SU1BfRVZFTlQgKyAzMykNCisjZGVmaW5lIEFTQ19MVEVfQ0VMTF9MT1NUX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfRVVBU19SU1BfRVZFTlQgKyAzNCkNCisjZGVmaW5lIEFTQ19MVEVfQ0VMTF9SRUNPVkVSQUdFX0lORF9FViAgICAgICAgICAgKERXT1JEKShBU0NfRVVBU19SU1BfRVZFTlQgKyAzNSkNCisjZGVmaW5lIEFTQ19MVEVfR1JPVVBfUkVMX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfRVVBU19SU1BfRVZFTlQgKyAzNikNCisjZGVmaW5lIEFTQ19MVEVfVEdDQ0hfTVNHX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfRVVBU19SU1BfRVZFTlQgKyAzNykgDQorI2RlZmluZSBBU0NfTFRFX1NDQU5HUk9VUElORk9fSU5EX0VWICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMzgpDQorI2RlZmluZSBBU0NfTFRFX1NFVF9BQ1RJVkVHSURfSU5EX0VWICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgMzkpDQorI2RlZmluZSBBU0NfTFRFX1JFTF9BQ1RJVkVHSURfSU5EX0VWICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgNDApDQorI2RlZmluZSBBU0NfTFRFX1hDRUxMSU5GT19DTkZfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgNDEpDQorI2RlZmluZSBBU0NfTFRFX1hDRUxMSU5GT19BQk9SVF9DTkZfRVYgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgNDIpDQorI2RlZmluZSBBU0NfTFRFX1hDRUxMSU5GT19SRUpfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgNDMpDQorI2RlZmluZSBBU0NfTFRFX05FSUdDRUxMX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgNDQpDQorI2RlZmluZSBBU0NfTFRFX1NDQU5fQ05GX0VWICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQVNfUlNQX0VWRU5UICsgNDUpDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgQVNDo62490FTuau5ss/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisvKkxURS0+VVRSQdbY0aEqLw0KKyNkZWZpbmUgQVNfTFRFX1VUUkFfUkVTRUxfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgQVNfTFRFX1VUUkFfUkVTRUxfQ05GX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgQVNfTFRFX1VUUkFfUkVTRUxfUkVKX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyAyKQ0KKw0KKy8qTFRFLT5VVFJB1ti2qM/yKi8NCisjZGVmaW5lIEFTX0xURV9VVFJBX1JFRElSRUNUX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIEFTX0xURV9VVFJBX1JFRElSRUNUX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIEFTX0xURV9VVFJBX1JFRElSRUNUX1JFSl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgNSkgICAgICAgICAgICAgICAgDQorDQorLypMVEUtPlVUUkEgUFPH0Lu7Ki8NCisjZGVmaW5lIEFTX0xURV9VVFJBX1BTSE9fUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIEFTX0xURV9VVFJBX1BTSE9fQ05GX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIEFTX0xURV9VVFJBX1BTSE9fUkVKX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgOCkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy8qTFRFLT5HU03W2NGhKi8NCisjZGVmaW5lIEFTX0xURV9HU01fUkVTRUxfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBBU19MVEVfR1NNX1JFU0VMX0NORl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIEFTX0xURV9HU01fUkVTRUxfUkVKX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDExKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorLypMVEUtPkdTTdbYtqjP8iovDQorI2RlZmluZSBBU19MVEVfR1NNX1JFRElSRUNUX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyAxMikNCisjZGVmaW5lIEFTX0xURV9HU01fUkVESVJFQ1RfQ05GX0VWICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDEzKQ0KKyNkZWZpbmUgQVNfTFRFX0dTTV9SRURJUkVDVF9SRUpfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgMTQpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisvKkxURS0+VEQgQ1PH0Lu7Ki8NCisjZGVmaW5lIEFTX0xURV9HU01fQ1NIT19SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDE1KQ0KKyNkZWZpbmUgQVNfTFRFX0dTTV9DU0hPX0NORl9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgMTYpDQorI2RlZmluZSBBU19MVEVfR1NNX0NTSE9fUkVKX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyAxNykNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy8qTFRFLT5HU00gQ0NPKi8NCisjZGVmaW5lIEFTX0xURV9HU01fQ0NPX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDE4KQ0KKyNkZWZpbmUgQVNfTFRFX0dTTV9DQ09fQ05GX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgMTkpDQorI2RlZmluZSBBU19MVEVfR1NNX0NDT19SRUpfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyAyMCkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy8qTFRFLT5HU00gUFPH0Lu7Ki8NCisjZGVmaW5lIEFTX0xURV9HU01fUFNIT19SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDIxKQ0KKyNkZWZpbmUgQVNfTFRFX0dTTV9QU0hPX0NORl9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgMjIpDQorI2RlZmluZSBBU19MVEVfR1NNX1BTSE9fUkVKX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyAyMykNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy8qVVRSQS0+TFRF1tjRoSovDQorI2RlZmluZSBBU19VVFJBX0xURV9SRVNFTF9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDI0KQ0KKyNkZWZpbmUgQVNfVVRSQV9MVEVfUkVTRUxfQ05GX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyAyNSkNCisjZGVmaW5lIEFTX1VUUkFfTFRFX1JFU0VMX1JFSl9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgMjYpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisvKlVUUkEtPkxURdbYtqjP8iovDQorI2RlZmluZSBBU19VVFJBX0xURV9SRURJUkVDVF9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDI3KQ0KKyNkZWZpbmUgQVNfVVRSQV9MVEVfUkVESVJFQ1RfQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyAyOCkNCisjZGVmaW5lIEFTX1VUUkFfTFRFX1JFRElSRUNUX1JFSl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgMjkpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisvKlVUUkEtPkxURSBQU8fQu7sqLw0KKyNkZWZpbmUgQVNfVVRSQV9MVEVfUFNIT19SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyAzMCkNCisjZGVmaW5lIEFTX1VUUkFfTFRFX1BTSE9fQ05GX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgMzEpDQorI2RlZmluZSBBU19VVFJBX0xURV9QU0hPX1JFSl9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDMyKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorLypVVFJBLT5HU03W2NGhKi8NCisjZGVmaW5lIEFTX1VUUkFfR1NNX1JFU0VMX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgMzMpDQorI2RlZmluZSBBU19VVFJBX0dTTV9SRVNFTF9DTkZfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDM0KQ0KKyNkZWZpbmUgQVNfVVRSQV9HU01fUkVTRUxfUkVKX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyAzNSkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy8qVVRSQT5HU03W2Laoz/IqLw0KKyNkZWZpbmUgQVNfVVRSQV9HU01fUkVESVJFQ1RfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyAzNikNCisjZGVmaW5lIEFTX1VUUkFfR1NNX1JFRElSRUNUX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgMzcpDQorI2RlZmluZSBBU19VVFJBX0dTTV9SRURJUkVDVF9SRUpfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDM4KQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorLypVVFJBLT5HU00gQ1PH0Lu7Ki8NCisjZGVmaW5lIEFTX1VUUkFfR1NNX0NTSE9fUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgMzkpDQorI2RlZmluZSBBU19VVFJBX0dTTV9DU0hPX0NORl9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDQwKQ0KKyNkZWZpbmUgQVNfVVRSQV9HU01fQ1NIT19SRUpfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA0MSkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy8qVVRSQS0+R1NNIENDTyovDQorI2RlZmluZSBBU19VVFJBX0dTTV9DQ09fUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDQyKQ0KKyNkZWZpbmUgQVNfVVRSQV9HU01fQ0NPX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA0MykNCisjZGVmaW5lIEFTX1VUUkFfR1NNX0NDT19SRUpfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgNDQpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisvKlVUUkEtPkdTTSBQU8fQu7sqLw0KKyNkZWZpbmUgQVNfVVRSQV9HU01fUFNIT19SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA0NSkNCisjZGVmaW5lIEFTX1VUUkFfR1NNX1BTSE9fQ05GX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgNDYpDQorI2RlZmluZSBBU19VVFJBX0dTTV9QU0hPX1JFSl9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDQ3KQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorLypVVFJBLT5HU00gyv2+3bDh0sYqLw0KKyNkZWZpbmUgQVNfVVRSQV9HU01fREFUQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA0OCkNCisNCisvKkdTTS0+TFRF1tjRoSovDQorI2RlZmluZSBBU19HU01fTFRFX1JFU0VMX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA0OSkNCisjZGVmaW5lIEFTX0dTTV9MVEVfUkVTRUxfQ05GX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDUwKQ0KKyNkZWZpbmUgQVNfR1NNX0xURV9SRVNFTF9SRUpfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgNTEpDQorDQorLypHU00tPkxURdbYtqjP8iovDQorI2RlZmluZSBBU19HU01fTFRFX1JFRElSRUNUX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA1MikNCisjZGVmaW5lIEFTX0dTTV9MVEVfUkVESVJFQ1RfQ05GX0VWICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDUzKQ0KKyNkZWZpbmUgQVNfR1NNX0xURV9SRURJUkVDVF9SRUpfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgNTQpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisvKkdTTS0+TFRFIFBTx9C7uyovDQorI2RlZmluZSBBU19HU01fTFRFX1BTSE9fUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA1NSkNCisjZGVmaW5lIEFTX0dTTV9MVEVfUFNIT19DTkZfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDU2KQ0KKyNkZWZpbmUgQVNfR1NNX0xURV9QU0hPX1JFSl9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgNTcpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisvKkdTTS0+TFRFIENDTyovDQorI2RlZmluZSBBU19HU01fTFRFX0NDT19SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA1OCkNCisjZGVmaW5lIEFTX0dTTV9MVEVfQ0NPX0NORl9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDU5KQ0KKyNkZWZpbmUgQVNfR1NNX0xURV9DQ09fUkVKX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgNjApDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisvKkdTTS0+VVRSQdbY0aEqLw0KKyNkZWZpbmUgQVNfR1NNX1VUUkFfUkVTRUxfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA2MSkNCisjZGVmaW5lIEFTX0dTTV9VVFJBX1JFU0VMX0NORl9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgNjIpDQorI2RlZmluZSBBU19HU01fVVRSQV9SRVNFTF9SRUpfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDYzKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorLypHU00tPlVUUkHW2Laoz/IqLw0KKyNkZWZpbmUgQVNfR1NNX1VUUkFfUkVESVJFQ1RfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA2NCkNCisjZGVmaW5lIEFTX0dTTV9VVFJBX1JFRElSRUNUX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgNjUpDQorI2RlZmluZSBBU19HU01fVVRSQV9SRURJUkVDVF9SRUpfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDY2KQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorLypHU00tPlVUUkEgQ1PH0Lu7Ki8NCisjZGVmaW5lIEFTX0dTTV9VVFJBX0NTSE9fUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgNjcpDQorI2RlZmluZSBBU19HU01fVVRSQV9DU0hPX0NORl9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDY4KQ0KKyNkZWZpbmUgQVNfR1NNX1VUUkFfQ1NIT19SRUpfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA2OSkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy8qR1NNLT5VVFJBIFBTx9C7uyovDQorI2RlZmluZSBBU19HU01fVVRSQV9QU0hPX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDcwKQ0KKyNkZWZpbmUgQVNfR1NNX1VUUkFfUFNIT19DTkZfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA3MSkNCisjZGVmaW5lIEFTX0dTTV9VVFJBX1BTSE9fUkVKX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgNzIpDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisvKkdTTS0+VVRSQSBDQ08qLw0KKyNkZWZpbmUgQVNfR1NNX1VUUkFfQ0NPX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA3MykNCisjZGVmaW5lIEFTX0dTTV9VVFJBX0NDT19DTkZfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgNzQpDQorI2RlZmluZSBBU19HU01fVVRSQV9DQ09fUkVKX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDc1KQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorLypHU00tPlVUUkEgyv2+3bDh0sYqLw0KKyNkZWZpbmUgQVNfR1NNX1VUUkFfREFUQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA3NikNCisvKldDRE1BIFBSRURFRiovDQorI2RlZmluZSBBU19HU01fVVRSQV9SRUFEX1BSRURFRl9DT05GX1JFUV9FViAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDc3KQ0KKyNkZWZpbmUgQVNfR1NNX1VUUkFfUkVBRF9QUkVERUZfQ09ORl9DTkZfRVYgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA3OCkNCisjZGVmaW5lIEFTX0dTTV9VVFJBX0FCT1JUX1JFQURfUFJFREVGX1JFUV9FViAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgNzkpDQorI2RlZmluZSBBU19HU01fVVRSQV9BQk9SVF9SRUFEX1BSRURFRl9DTkZfRVYgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDgwKQ0KKw0KKw0KKy8qTkFTLT5BU0MtPkFTKFVDU1IgRVVDU1IgR1NNQSkqLw0KKyNkZWZpbmUgQVNfVVBEQVRFX1NZU0NPTkZJR19SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgODEpDQorI2RlZmluZSBBU19VUERBVEVfV0hJVEVfQ1NHTElTVF9SRVFfRVYgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA4MikNCisNCisvKkFTQy0+QVMoVUNTUiBFVUNTUiBHU01BKSovDQorI2RlZmluZSBBU19MMV9SU1JDX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA4MykNCisjZGVmaW5lIEFTX0wxX1JTUkNfUkVKX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDg0KQ0KKyNkZWZpbmUgQVNfTDFfUlNSQ19DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgODUpDQorI2RlZmluZSBBU19MMV9SU1JDX0ZSRUVfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA4NikNCisNCisvKi4oVUNTUiBFVUNTUiBHU01BKUFTLT5BU0MqLw0KKyNkZWZpbmUgQVNfSVJBVF9DQ09fU1RBUlRfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgODcpDQorI2RlZmluZSBBU19JUkFUX0hPX1NUQVJUX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA4OCkgICANCisjZGVmaW5lIEFTX0lSQVRfQ0VMTF9SRVNFTF9TVEFSVF9JTkRfRVYgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDg5KQ0KKw0KKyNkZWZpbmUgQVNfTFRFX0dTTV9DR0lfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgOTApDQorI2RlZmluZSBBU19MVEVfR1NNX0NHSV9DTkZfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA5MSkNCisjZGVmaW5lIEFTX0xURV9HU01fQ0dJX0FCT1JUX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDkyKQ0KKyNkZWZpbmUgQVNfTFRFX0dTTV9DR0lfQUJPUlRfQ05GX0VWICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgOTMpDQorDQorI2RlZmluZSBBU19MVEVfVVRSQV9DR0lfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA5NCkNCisjZGVmaW5lIEFTX0xURV9VVFJBX0NHSV9DTkZfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDk1KQ0KKyNkZWZpbmUgQVNfTFRFX1VUUkFfQ0dJX0FCT1JUX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgOTYpDQorI2RlZmluZSBBU19MVEVfVVRSQV9DR0lfQUJPUlRfQ05GX0VWICAgICAgICAgICAgIChEV09SRCkoQVNDX0FTX0VWRU5UX0JBU0UgKyA5NykNCisNCisjZGVmaW5lIEFTX0xURV9URF9SRURJUkVDVF9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShBU0NfQVNfRVZFTlRfQkFTRSArIDk4KQ0KKyNkZWZpbmUgQVNfTFRFX1dfUkVESVJFQ1RfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19BU19FVkVOVF9CQVNFICsgOTkpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgQ0JTo61BU0PP+8+iusW1xLao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIENCU19BU0NfTk9fRFJYX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQ0JTX1JSQ19FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIENCU19BU0NfRFJYX1JTVl9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQ0JTX1JSQ19FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIENCU19BU0NfU1RPUF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQ0JTX1JSQ19FVkVOVF9CQVNFICsgMikNCisNCisjZGVmaW5lIENCU19BU0NfUENIX0NFTExfSU5GT19JTkRfRVYgICAgICAgICAgICAgIChEV09SRCkoQ0JTX1JSQ19SU1BfRVZFTlQgKyAwKQ0KKyNkZWZpbmUgQ0JTX0FTQ19VVVJMQ19EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShDQlNfUlJDX1JTUF9FVkVOVCArIDEpDQorI2RlZmluZSBDQlNfQVNDX0VUV1NfUFJJTUFSWV9OT1RJRllfSU5EX0VWICAgICAgICAoRFdPUkQpKENCU19SUkNfUlNQX0VWRU5UICsgMikNCisjZGVmaW5lIENCU19BU0NfRVRXU19TRUNPTkRBUllfTk9USUZZX0lORF9FViAgICAgIChEV09SRCkoQ0JTX1JSQ19SU1BfRVZFTlQgKyAzKQ0KKyNkZWZpbmUgQ0JTX0FTQ19DTUFTX05PVElGWV9JTkRfRVYgICAgICAgICAgICAgICAgKERXT1JEKShDQlNfUlJDX1JTUF9FVkVOVCArIDQpDQorLypXQ0RNQSovDQorI2RlZmluZSBDQlNfQVNDX1VXUkxDX0RBVEFfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKENCU19SUkNfUlNQX0VWRU5UICsgNSkNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBHTU2jrVNORENQz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgU05QX0dNTV9TRVFfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9TTkRDUF9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIFNOUF9HTU1fU0VRX1JTUF9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fU05EQ1BfRVZFTlRfQkFTRSArIDEpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgR01No61QRENQz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgUERDUF9HTU1fTldfUkVMX0FOWVJCX0lORF9FViAgICAgICAgICAgICAoRFdPUkQpKEdNTV9QRENQX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgR01NX1BEQ1BfUkJfQ0hHX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9QRENQX0VWRU5UX0JBU0UgKyAxKQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFNNo61TTkRDUM/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFNOUF9TTV9BQ1RfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9TTkRDUF9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIFNOUF9TTV9ERUFDVF9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9TTkRDUF9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIFNOUF9TTV9NT0RfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9TTkRDUF9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIFNOUF9TTV9SQVRfQUNUX0lORF9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9TTkRDUF9FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIFNOUF9TTV9SQVRfREVBQ1RfSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9TTkRDUF9FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIFNOUF9TTV9SQVRfU0VRX0lORF9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9TTkRDUF9FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIFNOUF9TTV9SQVRfQ0hHX0NPTVBfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9TTkRDUF9FVkVOVF9CQVNFICsgNikNCisNCisjZGVmaW5lIFNOUF9TTV9BQ1RfUlNQX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9TTkRDUF9SU1BfRVZFTlQgKyAwKQ0KKyNkZWZpbmUgU05QX1NNX01PRF9SU1BfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNNX1NORENQX1JTUF9FVkVOVCArIDEpDQorI2RlZmluZSBTTlBfU01fU1RBVFVTX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU01fU05EQ1BfUlNQX0VWRU5UICsgMikNCisjZGVmaW5lIFNOUF9TTV9SQVRfQUNUX1JTUF9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9TTkRDUF9SU1BfRVZFTlQgKyAzKQ0KKyNkZWZpbmUgU05QX1NNX1JBVF9TRVFfUlNQX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNNX1NORENQX1JTUF9FVkVOVCArIDQpDQorI2RlZmluZSBTTlBfU01fUkFUX0RFQUNUX1JTUF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoU01fU05EQ1BfUlNQX0VWRU5UICsgNSkNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBUQUajrUNDz/vPorrFtqjS5SAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIENDX1RBRl9DT05ORUNUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19UQUZfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBDQ19UQUZfQ09OTkVDVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQ0NfVEFGX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgQ0NfVEFGX0NPTk5FQ1RfQ05GX05FR19FViAgICAgICAgICAgICAgICAoRFdPUkQpKENDX1RBRl9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIENDX1RBRl9SRUxFQVNFX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19UQUZfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBDQ19UQUZfUkVMRUFTRV9JTkRfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQ0NfVEFGX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgQ0NfVEFGX1BFTkRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENDX1RBRl9FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIENDX1RBRl9SRVNVTUVfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19UQUZfRVZFTlRfQkFTRSArIDYpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgQ0JTLVVNTdauvOS1xM/7z6K6xbXEtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgVU1NX0NCU19TVEFSVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9DQlNfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBVTU1fQ0JTX1NUT1BfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0NCU19FVkVOVF9CQVNFICsgMSkNCisNCisjZGVmaW5lIFVNTV9DQlNfQ0VMTF9JTkZPX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fQ0JTX1JTUF9FVkVOVCArIDApDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgVVJSQy9DQ6OtU0NJz/vPorrFtqjS5SAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIENTQ0lfQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9TQ0lfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBDU0NJX0NERUNfQ1RSTF9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfU0NJX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgQ1NDSV9DT05GSUdfUkVMX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1NDSV9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIENTQ0lfQ09ORklHX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShBUF9TQ0lfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBDU0NJX1VOUkVDT1ZFUl9FUlJfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQVBfU0NJX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgQ1NDSV9DREVDX0NUUkxfQ05GX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFQX1NDSV9FVkVOVF9CQVNFICsgNSkNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBVUlJDIC0gxNqyv8/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFVSUkNfUkVBRF9TWVNJTkZPX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgVVJSQ19SRUFEX1NZU0lORk9fSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBVUlJDX1JFQURfU1lTSU5GT19SRUpfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIFVSUkNfU1RPUF9TWVNJTkZPX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgVVJSQ19SRUFEX0RZTl9TSUJfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBVUlJDX1JFQURfRFlOX1NJQl9DTkZfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIFVSUkNfU0lCX01PRElGSUVEX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgVVJSQ19DRUxMVVBEQVRFX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDcpDQorI2RlZmluZSBVUlJDX0NFTExfUkVTRUxfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIFVSUkNfQ0VMTF9JTkZPX0lORF9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgVVJSQ19SRUxfQ09OTl9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDEwKQ0KKyNkZWZpbmUgVVJSQ19SRVNVTUVfQ0VMTF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDExKQ0KKyNkZWZpbmUgVVJSQ19SUExNTl9JTkZPX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDEyKQ0KKyNkZWZpbmUgVVJSQ19SRVNPVVJFX0NGR19SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDEzKQ0KKyNkZWZpbmUgVVJSQ19SRVNPVVJDRV9DRkdfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDE0KQ0KKyNkZWZpbmUgVVJSQ19VUERBVEVfRVBMTU5fUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDE1KQ0KKyNkZWZpbmUgVVJSQ19ISUdIX01PQklMSVRZX0lORCAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDE2KQ0KKyNkZWZpbmUgVVJSQ19IT19GUk9NX1VUUkFOX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDE3KQ0KKyNkZWZpbmUgVVJSQ19IT19GUk9NX1VUUkFOX1JFSl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDE4KQ0KKyNkZWZpbmUgVVJSQ19IT19UT19VVFJBTl9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDE5KQ0KKyNkZWZpbmUgVVJSQ19IT19UT19VVFJBTl9DTkZfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDIwKQ0KKyNkZWZpbmUgVVJSQ19IT19UT19VVFJBTl9SRUpfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDIxKQ0KKyNkZWZpbmUgVVJSQ19DQ09fRlJPTV9VVFJBTl9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDIyKQ0KKyNkZWZpbmUgVVJSQ19DQ09fRlJPTV9VVFJBTl9SRUpfRVYgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDIzKQ0KKyNkZWZpbmUgVVJSQ19DQ09fVE9fVVRSQU5fSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDI0KQ0KKyNkZWZpbmUgVVJSQ19DQ09fVE9fVVRSQU5fUkVKX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDI1KQ0KKyNkZWZpbmUgVVJSQ19SQURJT19MSU5LX0ZBSUxfSU5EX0VWICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRVZFTlRfQkFTRSArIDI2KSAgICAvKlVFQ0FQQUJJTElUWUlORk/W2LSryqew3LW81sLQocf4uPzQwiovDQorI2RlZmluZSBVUlJDX05FSUJDRUxMX0NIR19JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgMjcpDQorI2RlZmluZSBVUlJDX0ZBQ0hfQ0ZHX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgMjgpDQorI2RlZmluZSBVUlJDX0ZBQ0hfQ0ZHX0lORF9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgMjkpDQorI2RlZmluZSBVUlJDX0RSWF9DSEdfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgMzApDQorI2RlZmluZSBVUlJDX1NFTkRfQlVGX0VTVF9SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgMzEpDQorI2RlZmluZSBVUlJDX0FCT1JUX1JBVENIR19SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgMzIpDQorI2RlZmluZSBVUlJDX0JBUl9SRVNVTUVfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgMzMpDQorI2RlZmluZSBVUlJDX0NIR19DQU1QT05fVFlQRV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgMzQpDQorI2RlZmluZSBVUlJDX0dFVF9SRl9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgMzUpICAgICAgICAgIC8qVVNJUi0+VUNTUiovDQorI2RlZmluZSBVUlJDX0dFVF9SRl9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgMzYpICAgICAgICAgIC8qVUNTUi0+VVNJUiovICAgDQorI2RlZmluZSBVUlJDX1NZU0lORk9fQ09OVEFJTkVSX0lORF9FViAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgMzcpICAgICAgICAgIC8qVUNTUi0+VVNJUiovDQorI2RlZmluZSBVUlJDX0VUV1NfQ0ZHX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgMzgpDQorI2RlZmluZSBVUlJDX0VUV1NfQ0ZHX0VORF9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgMzkpDQorI2RlZmluZSBVUlJDX0VUV1NfQ09OVElOVUVfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgNDApDQorI2RlZmluZSBVUlJDX0RSWF9DSEFOR0VfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgNDEpICAgICAgICAgIC8qVVJCQy0+VU1DUiovDQorI2RlZmluZSBVUlJDX0VGQUNIX0NGR19JTkRfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19FVkVOVF9CQVNFICsgNDIpLypVQ01SLT5VUkJDKi8NCisjZGVmaW5lIFVSUkNfUkJDX0JVRkZFUl9NU0dfUFJPQ19SRVFfRVYgICAgICAgICAgKERXT1JEKShVUlJDX0VWRU5UX0JBU0UgKyA0MykNCisjZGVmaW5lIFVSUkNfTkVJR0hCT1JDRUxMX0hTU0NDSF9PUkRFUl9SRVFfRVYgICAgKERXT1JEKShVUlJDX0VWRU5UX0JBU0UgKyA0NCkNCisjZGVmaW5lIFVSUkNfT1VUX09GX1NZTkNfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX0VWRU5UX0JBU0UgKyA0NSkNCisjZGVmaW5lIFVSUkNfUkVTVU1FX0lOX1NZTkNfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX0VWRU5UX0JBU0UgKyA0NikNCisjZGVmaW5lIFVSUkNfTEJTX01FQVNfSU5EICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX0VWRU5UX0JBU0UgKyA0NykNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBVUkxDIC0gVVJSQyDP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBDVVJMQ19DT05GSUdfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJMQ19VUlJDX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgQ1VSTENfUkVMRUFTRV9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSTENfVVJSQ19FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIENVUkxDX0xPT1BfVEVTVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUkxDX1VSUkNfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBDVVJMQ19TVVNQRU5EX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJMQ19VUlJDX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgQ1VSTENfUkVTVU1FX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSTENfVVJSQ19FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIENVUkxDX0NPTlRJTlVFX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUkxDX1VSUkNfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBVVVJMQ19EQVRBX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJMQ19VUlJDX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgQ1VSTENfQ0JTX1JCQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFVSTENfVVJSQ19FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIENVUkxDX1NFVF9EQVRBX05PVElGWV9NT0RFX0VWICAgICAgICAgICAgKERXT1JEKShVUkxDX1VSUkNfRVZFTlRfQkFTRSArIDgpDQorDQorI2RlZmluZSBDVVJMQ19TVVNQRU5EX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJMQ19VUlJDX1JTUF9FVkVOVCArIDApDQorI2RlZmluZSBDVVJMQ19MT09QX1RFU1RfQ05GX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJMQ19VUlJDX1JTUF9FVkVOVCArIDEpDQorI2RlZmluZSBVVVJMQ19EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJMQ19VUlJDX1JTUF9FVkVOVCArIDIpDQorI2RlZmluZSBDVVJMQ19TVEFUVVNfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJMQ19VUlJDX1JTUF9FVkVOVCArIDMpDQorI2RlZmluZSBVVVJMQ19EQVRBX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJMQ19VUlJDX1JTUF9FVkVOVCArIDQpDQorI2RlZmluZSBDVVJMQ19DT05GSUdfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJMQ19VUlJDX1JTUF9FVkVOVCArIDUpDQorI2RlZmluZSBDVVJMQ19QQ0hfVUxEQVRBX1RSQU5TRkVSX1JFUV9FViAgICAgICAgIChEV09SRCkoVVJMQ19VUlJDX1JTUF9FVkVOVCArIDYpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgVU1BQyAtIFVSUkMvVU1BQyAtIFVNQUNfTUNSIM/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIENVTUFDX0NDVFJDSF9DT05GSUdfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBDVU1BQ19SQUNIX1BBUkFfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19VUlJDX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgQ1VNQUNfUk5USV9DT05GSUdfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfVVJSQ19FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIENVTUFDX0hTX0NPTkZJR19SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBDVU1BQ19IU19SRVNFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19VUlJDX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgQ1VNQUNfVEZDX0NUUkxfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfVVJSQ19FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIENVTUFDX0NPTkZJR19BQk9SVF9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBDVU1BQ19BU0NfUEFSQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19VUlJDX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgQ1VNQUNfREVMX0NPTkZJR19SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfVVJSQ19FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIENVTUFDX1RWX01FQVNfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBDVU1BQ19RX01FQVNfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19VUlJDX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIENVTUFDX1VFX01FQVNfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfRVZFTlRfQkFTRSArIDExKQ0KKyNkZWZpbmUgQ1VNQUNfVFZfTUVBU19SRUxfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfVVJSQ19FVkVOVF9CQVNFICsgMTIpDQorI2RlZmluZSBDVU1BQ19RX01FQVNfUkVMX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19VUlJDX0VWRU5UX0JBU0UgKyAxMykNCisjZGVmaW5lIENVTUFDX1VFX01FQVNfUkVMX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfRVZFTlRfQkFTRSArIDE0KQ0KKyNkZWZpbmUgQ1VNQUNfVFZfTUVBU19SRVNVTUVfUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfVVJSQ19FVkVOVF9CQVNFICsgMTUpDQorI2RlZmluZSBDVU1BQ19UVl9NRUFTX1NVU1BFTkRfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoVU1BQ19VUlJDX0VWRU5UX0JBU0UgKyAxNikNCisjZGVmaW5lIENVTUFDX0RMX01FQVNfU1VTUEVORF9SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfRVZFTlRfQkFTRSArIDE3KQ0KKyNkZWZpbmUgQ1VNQUNfRExfTUVBU19SRVNVTUVfUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfVVJSQ19FVkVOVF9CQVNFICsgMTgpDQorI2RlZmluZSBDVU1BQ19BRERUVl9NRUFTX1JFUE9SVF9SRVFfRVYgICAgICAgICAgIChEV09SRCkoVU1BQ19VUlJDX0VWRU5UX0JBU0UgKyAxOSkNCisjZGVmaW5lIENVTUFDX0FERFFfTUVBU19SRVBPUlRfUkVRX0VWICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfRVZFTlRfQkFTRSArIDIwKQ0KKyNkZWZpbmUgQ1VNQUNfQUREVUVfTUVBU19SRVBPUlRfUkVRX0VWICAgICAgICAgICAoRFdPUkQpKFVNQUNfVVJSQ19FVkVOVF9CQVNFICsgMjEpDQorI2RlZmluZSBDVU1BQ19DUkNfUkVTVUxUX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19VUlJDX0VWRU5UX0JBU0UgKyAyMikNCisjZGVmaW5lIENVTUFDX0FDVFRJTUVfTk9USUZZX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfRVZFTlRfQkFTRSArIDIzKQ0KKyNkZWZpbmUgQ1VNQUNfQ09OVElOVUVfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfVVJSQ19FVkVOVF9CQVNFICsgMjQpDQorI2RlZmluZSBDVU1BQ19JRExFX1BFUklPRF9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19VUlJDX0VWRU5UX0JBU0UgKyAyNSkNCisjZGVmaW5lIENVTUFDX0NFTExfUkVTRUxfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfRVZFTlRfQkFTRSArIDI2KQ0KKyNkZWZpbmUgQ1VNQUNfSFNQQV9FUENIX0NGR19SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfVVJSQ19FVkVOVF9CQVNFICsgMjcpDQorI2RlZmluZSBDVU1BQ19VUERBVEVfRVJOVElfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19VUlJDX0VWRU5UX0JBU0UgKyAyOCkNCisNCisjZGVmaW5lIENVTUFDX1NUQVRVU19JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfUlNQX0VWRU5UICsgMCkNCisjZGVmaW5lIFVVTUFDX1BDQ0hfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIFVVTUFDX0JDQ0hfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfUlNQX0VWRU5UICsgMikNCisjZGVmaW5lIENVTUFDX0NPTkZJR19DSEdfSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfUlNQX0VWRU5UICsgMykNCisjZGVmaW5lIENVTUFDX0FERFFfTUVBU19SRVBPUlRfSU5EX0VWICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIENVTUFDX0FERFVFX01FQVNfUkVQT1JUX0lORF9FViAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfUlNQX0VWRU5UICsgNSkNCisjZGVmaW5lIENVTUFDX0FERFRWX01FQVNfUkVQT1JUX0lORF9FViAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfUlNQX0VWRU5UICsgNikNCisjZGVmaW5lIENVTUFDX1RWX01FQVNfUkVQT1JUX0lORF9FViAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfUlNQX0VWRU5UICsgNykNCisjZGVmaW5lIENVTUFDX1FfTUVBU19SRVBPUlRfSU5EX0VWICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfUlNQX0VWRU5UICsgOCkNCisjZGVmaW5lIENVTUFDX1VFX01FQVNfUkVQT1JUX0lORF9FViAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfUlNQX0VWRU5UICsgOSkNCisjZGVmaW5lIENVTUFDX0VSVUNDSF9TVEFUVVNfSU5EX0VWICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VSUkNfUlNQX0VWRU5UICsgMTApDQorI2RlZmluZSBDVU1BQ19GQUNIX0NGR19JTkRfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19VUlJDX1JTUF9FVkVOVCArIDExKQ0KKyNkZWZpbmUgQ1VNQUNfQ0VMTF9SRVNFTF9DTkZfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfVVJSQ19SU1BfRVZFTlQgKyAxMikNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBVTUFDIC0gVUwvREwgICAtICAgVU1BQy1Dz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgQ1VNQUNfTk9USUZZX0RMX1BFUklPRF9SRVBPUlRfUkVRX0VWICAgICAoRFdPUkQpKFVNQUNfVU1BQ19FVkVOVF9CQVNFICsgMCkNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBMMVQgLSBVUlJDIM/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIEwxVF9HU01fTUVBU19SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVRfVVJSQ19FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIEwxVF9HU01fQlNJQ19WRVJJRllfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShMMVRfVVJSQ19FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIEwxVF9HU01fTUVBU19ERUxFVEVfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShMMVRfVVJSQ19FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIEwxVF9HU01fTUVBU19SRVNVTUVfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShMMVRfVVJSQ19FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIEwxVF9HU01fTUVBU19TVVNQRU5EX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShMMVRfVVJSQ19FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIEwxVF9HU01fTUVBU19UT05VTExfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShMMVRfVVJSQ19FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIEwxVF9MVEVfRlJFUV9MSVNUX0NPTkZJR19SRVFfRVYgICAgICAgICAgKERXT1JEKShMMVRfVVJSQ19FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIEwxVF9MVEVfTUVBU19NQVNLX1NFVF9SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShMMVRfVVJSQ19FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIEwxVF9URF9EQ0hfR0FQX0NPTkZJR19SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShMMVRfVVJSQ19FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIEwxVF9URF9HRVRfUkZfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVRfVVJSQ19FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIEwxVF9QTE1OX0VORF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVRfVVJSQ19FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBMMVRfSVJBVF9SU1JDX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VSUkNfRVZFTlRfQkFTRSArIDExKQ0KKw0KKyNkZWZpbmUgTDFUX0dTTV9NRUFTX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxVF9VUlJDX1JTUF9FVkVOVCArIDApDQorI2RlZmluZSBMMVRfVERfR0VUX1JGX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VSUkNfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIEwxVF9JUkFUX1JTUkNfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVRfVVJSQ19SU1BfRVZFTlQgKyAyKQ0KKyNkZWZpbmUgTDFUX0xURV9NRUFTX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxVF9VUlJDX1JTUF9FVkVOVCArIDMpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgUERDUCAtIFVSUkMgz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgQ1BEQ1BfQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBEQ1BfVVJSQ19FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIENQRENQX1JFTEVBU0VfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQRENQX1VSUkNfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBDUERDUF9SRUxPQ19SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoUERDUF9VUlJDX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgQ1BEQ1BfUkVMT0NfQ09NUF9JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBEQ1BfVVJSQ19FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIENQRENQX1JFTE9DX0ZBSUxfSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShQRENQX1VSUkNfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBDUERDUF9ETF9QRFVfU0laRV9DSEdfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoUERDUF9VUlJDX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgQ1BEQ1BfUk9IQ19UQVJHRVRfTU9ERV9SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKFBEQ1BfVVJSQ19FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIENQRENQX1NDUklfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQRENQX1VSUkNfRVZFTlRfQkFTRSArIDcpDQorI2RlZmluZSBDUERDUF9GRF9NT05JVE9SX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoUERDUF9VUlJDX0VWRU5UX0JBU0UgKyA4KQ0KKyNkZWZpbmUgQ1BEQ1BfRkRfTk9fREFUQV9DTkZfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBEQ1BfVVJSQ19FVkVOVF9CQVNFICsgOSkNCisNCisNCisjZGVmaW5lIENQRENQX1JFTE9DX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQRENQX1VSUkNfUlNQX0VWRU5UICsgMCkNCisjZGVmaW5lIENQRENQX0NPTkZJR19DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQRENQX1VSUkNfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIENQRENQX1JFTE9DX1JFSl9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQRENQX1VSUkNfUlNQX0VWRU5UICsgMikNCisjZGVmaW5lIENQRENQX0RMX1BEVV9TSVpFX0NIR19DTkZfRVYgICAgICAgICAgICAgKERXT1JEKShQRENQX1VSUkNfUlNQX0VWRU5UICsgMykNCisjZGVmaW5lIENQRENQX0RBVEFfVFJBTlNGRVJfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShQRENQX1VSUkNfUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIENQRENQX0ZEX05PX0RBVEFfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShQRENQX1VSUkNfUlNQX0VWRU5UICsgNSkNCisNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBVUkxDIC0gVU1BQyDP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBVVU1BQ19EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJMQ19VTUFDX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgQ1VNQUNfSFNfUkVTRVRfSU5EX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSTENfVU1BQ19FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIFVVUkxDX0RMX0NUUkxfUERVX1JFUV9FdiAgICAgICAgICAgICAgICAgKERXT1JEKShVUkxDX1VNQUNfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBVVVJMQ19NQUtFX0FNRFBEVV9FdiAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJMQ19VTUFDX0VWRU5UX0JBU0UgKyA0KQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIEwxVCAtIFVNQUMgz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgSVNSX0ZSQU1FX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfTDFUX0VWRU5UX0JBU0UgKyAwKQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFNNo61QRENQz/vPorrFtqjS5SAgDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBTTV9QRENQX0FDVF9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU01fUERDUF9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIFNNX1BEQ1BfREVBQ1RfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9QRENQX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgU01fUERDUF9NT0RfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNNX1BEQ1BfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBTTV9QRENQX0FDVF9BTFJFQURZX0lORF9FViAgICAgICAgICAgICAgIChEV09SRCkoU01fUERDUF9FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIFNNX1BEQ1BfUkFUX0FDVF9JTkRfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9QRENQX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgU01fUERDUF9SQVRfREVBQ1RfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFNNX1BEQ1BfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBTTV9QRENQX1JBVF9TRVFfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoU01fUERDUF9FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIFNNX1BEQ1BfSENfTU9EX0lORF9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9QRENQX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgU01fUERDUF9SQVRfQ0hHX0NPTVBfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNNX1BEQ1BfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBTTV9QRENQX01PRElGWV9DTkZfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU01fUERDUF9FVkVOVF9CQVNFICsgOSkNCisNCisjZGVmaW5lIFNNX1BEQ1BfU1RBVFVTX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9QRENQX1JTUF9FVkVOVCArIDApDQorI2RlZmluZSBTTV9QRENQX1JBVF9BQ1RfUlNQX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoU01fUERDUF9SU1BfRVZFTlQgKyAxKQ0KKyNkZWZpbmUgU01fUERDUF9SQVRfU0VRX1JTUF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNNX1BEQ1BfUlNQX0VWRU5UICsgMikNCisjZGVmaW5lIFNNX1BEQ1BfTU9ESUZZX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9QRENQX1JTUF9FVkVOVCArIDMpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgUERJIC0gR1NNQSDP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBQRElfR1NNX0RBVEFfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQRElfR1NNQV9FVkVOVF9CQVNFICsgMCkNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBQREkgLSBQRENQIM/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFVQRElfREFUQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQRElfUERDUF9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIFVQRElfREFUQV9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQRElfUERDUF9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIENQRElfTk9UX1JFQURZX0lORF9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQRElfUERDUF9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIENQRElfUkVBRFlfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQRElfUERDUF9FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIFBESV9FUERDUF9EQVRBX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShQRElfUERDUF9FVkVOVF9CQVNFICsgNCkNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBQRENQIC0gVVJMQyDP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBVVVJMQ19QRENQX0RBVEFfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoUERDUF9VUkxDX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgVVVSTENfUERDUF9EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBEQ1BfVVJMQ19FVkVOVF9CQVNFICsgMSkNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBQRENQIC0gUkxDIM/7z6K6xbao0uUoss6/vFJMQyAtIFJSQykNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBVU0lSIC0gVVBIWSDP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBQX0JDSF9SRUFEX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVNJUl9VUEhZX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgUF9CQ0hfT1BFTl9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVTSVJfVVBIWV9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIFBfQkNIX1JFTEVBU0VfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVU0lSX1VQSFlfRVZFTlRfQkFTRSArIDMpDQorDQorI2RlZmluZSBQX1NGTl9ERUNPREVfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVNJUl9VUEhZX1JTUF9FVkVOVCArIDEpDQorI2RlZmluZSBQX0JDSF9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVNJUl9VUEhZX1JTUF9FVkVOVCArIDIpDQorI2RlZmluZSBQX0JDSF9PUEVOX1JFSl9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVNJUl9VUEhZX1JTUF9FVkVOVCArIDMpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgVUNTUiAtIFVQSFkgz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgUF9GUkVRVUVOQ1lfU0NBTl9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVDU1JfVVBIWV9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIFBfQUJPUlRfRlJFUV9TQ0FOX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShVQ1NSX1VQSFlfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBQX0NFTExfU0VBUkNIX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVUNTUl9VUEhZX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgUF9BQk9SVF9DRUxMX1NFQVJDSF9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKFVDU1JfVVBIWV9FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIFBfQ0FNUE9OX0FfQ0VMTF9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShVQ1NSX1VQSFlfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBQX1REX1JFTF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVUNTUl9VUEhZX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgUF9URF9SRVNFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVDU1JfVVBIWV9FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIFBfVERfU0xFRVBfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVQ1NSX1VQSFlfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBQX1REX1NFVF9JUkFUX01PREVfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoVUNTUl9VUEhZX0VWRU5UX0JBU0UgKyA5KQ0KKw0KKyNkZWZpbmUgUF9GUkVRVUVOQ1lfU0NBTl9JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVDU1JfVVBIWV9SU1BfRVZFTlQgKyAxKQ0KKyNkZWZpbmUgUF9DRUxMX1NFQVJDSF9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVDU1JfVVBIWV9SU1BfRVZFTlQgKyAyKQ0KKyNkZWZpbmUgUF9URF9SRVNFVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVDU1JfVVBIWV9SU1BfRVZFTlQgKyAzKQ0KKyNkZWZpbmUgUF9URF9SRUxfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVDU1JfVVBIWV9SU1BfRVZFTlQgKyA0KQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFVNQ1IgLSBVUEhZIM/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFBfSU5UUkFfRlJFUV9NRUFTX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShVTUNSX1VQSFlfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBQX0lOVEVSX0ZSRVFfTUVBU19SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVU1DUl9VUEhZX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgUF9NRUFTX1JFTF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNQ1JfVVBIWV9FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIFBfRk1PX0lORk9fUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUNSX1VQSFlfRVZFTlRfQkFTRSArIDYpDQorDQorI2RlZmluZSBQX0lOVFJBX0ZSRVFfTUVBU19JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVU1DUl9VUEhZX1JTUF9FVkVOVCArIDEpDQorI2RlZmluZSBQX0lOVEVSX0ZSRVFfTUVBU19JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVU1DUl9VUEhZX1JTUF9FVkVOVCArIDIpDQorI2RlZmluZSBQX0JMSU5EX1VBUkZDTl9JTlRFUl9GUkVRX01FQVNfSU5EX0VWICAgIChEV09SRCkoVU1DUl9VUEhZX1JTUF9FVkVOVCArIDMpDQorI2RlZmluZSBQX0RFVEVDVF9DRUxMX0lORk9fSU5EX0VWICAgICAgICAgICAgICAgIChEV09SRCkoVU1DUl9VUEhZX1JTUF9FVkVOVCArIDQpDQorI2RlZmluZSBQX1NFUlZDRUxMX01FQVNfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1DUl9VUEhZX1JTUF9FVkVOVCArIDcpDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgVVJCQyAtIFVQSFkgz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgUF9ETF9EUENIX1NFVFVQX01PRElGWV9SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKFVSQkNfVVBIWV9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIFBfRExfRFBDSF9SRUxfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUkJDX1VQSFlfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBQX1VMX0RQQ0hfU0VUVVBfTU9ESUZZX1JFUV9FViAgICAgICAgICAgIChEV09SRCkoVVJCQ19VUEhZX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgUF9VTF9EUENIX1JFTF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSQkNfVVBIWV9FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIFBfRExfVFJDSF9SRUNPTkZJR19SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShVUkJDX1VQSFlfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBQX1VMX1RSQ0hfUkVDT05GSUdfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoVVJCQ19VUEhZX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgUF9BRERfTU9ESUZZX1NDQ1BDSF9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKFVSQkNfVVBIWV9FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIFBfUEFHSU5HX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUkJDX1VQSFlfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBQX1NUT1BfUEFHSU5HX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJCQ19VUEhZX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgUF9BRERfSFNEUEFfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSQkNfVVBIWV9FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBQX1JFTF9IU0RQQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJCQ19VUEhZX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIFBfUkVMX1NDQ1BDSF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUkJDX1VQSFlfRVZFTlRfQkFTRSArIDEyKQ0KKyNkZWZpbmUgUF9BRERfTU9ESUZZX0NCU19SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSQkNfVVBIWV9FVkVOVF9CQVNFICsgMTMpDQorI2RlZmluZSBQX1NUT1BfQ0JTX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJCQ19VUEhZX0VWRU5UX0JBU0UgKyAxNCkNCisjZGVmaW5lIFBfTDFfUkVTT1VSQ0VfQ0ZHX0ZJTkFMX0VWICAgICAgICAgICAgICAgKERXT1JEKShVUkJDX1VQSFlfRVZFTlRfQkFTRSArIDE1KQ0KKyNkZWZpbmUgUF9BRERfSFNVUEFfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSQkNfVVBIWV9FVkVOVF9CQVNFICsgMTYpDQorI2RlZmluZSBQX1JFTF9IU1VQQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJCQ19VUEhZX0VWRU5UX0JBU0UgKyAxNykNCisjZGVmaW5lIFBfUExDQ0hfQUREX01PRElGWV9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShVUkJDX1VQSFlfRVZFTlRfQkFTRSArIDE4KQ0KKyNkZWZpbmUgUF9IU1BBX1BMVVNfRkFDSF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSQkNfVVBIWV9FVkVOVF9CQVNFICsgMTkpDQorI2RlZmluZSBQX0hTUEFfUExVU19QQ0hfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJCQ19VUEhZX0VWRU5UX0JBU0UgKyAyMCkNCisjZGVmaW5lIFBfSFNQQV9QTFVTX0ZBQ0hfUkVMX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShVUkJDX1VQSFlfRVZFTlRfQkFTRSArIDIxKQ0KKyNkZWZpbmUgUF9IU1BBX1BMVVNfUENIX1JFTF9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKFVSQkNfVVBIWV9FVkVOVF9CQVNFICsgMjIpDQorI2RlZmluZSBQX0VGQUNIX1VQREFURV9STlRJX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoVVJCQ19VUEhZX0VWRU5UX0JBU0UgKyAyMykNCisjZGVmaW5lIFBfVUxfUEhZX0NIX0NUUkxfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShVUkJDX1VQSFlfRVZFTlRfQkFTRSArIDI0KQ0KKw0KKyNkZWZpbmUgUF9ETF9STF9TRVRVUF9NT0RJRllfQ05GX0VWICAgICAgICAgICAgICAoRFdPUkQpKFVSQkNfVVBIWV9SU1BfRVZFTlQgKyAxKQ0KKyNkZWZpbmUgUF9JTl9TWU5DX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSQkNfVVBIWV9SU1BfRVZFTlQgKyAyKQ0KKyNkZWZpbmUgUF9PVVRfU1lOQ19JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSQkNfVVBIWV9SU1BfRVZFTlQgKyAzKQ0KKyNkZWZpbmUgUF9VTF9FU1RBQkxJU0hfSU5EX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSQkNfVVBIWV9SU1BfRVZFTlQgKyA0KQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFVNQUNfVUwgLSBVUEhZIM/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFBfUkFDSF9QUk9DRURVUkVfSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VMX1VQSFlfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBQX0RMX0RBVEFfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19VTF9VUEhZX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgUF9URkNfUE9XRVJfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfVUxfVVBIWV9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIFBfUkFDSF9QUk9DRURVUkVfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VMX1VQSFlfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBQX1VMX0RBVEFfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19VTF9VUEhZX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgUF9BQk9SVF9SQUNIX1BST0NFRFVSRV9SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKFVNQUNfVUxfVVBIWV9FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIFBfRVJVQ0NIX1BST0NFRFVSRV9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VMX1VQSFlfRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBQX0VSVUNDSF9QUk9DRURVUkVfSU5EX0VWICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19VTF9VUEhZX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgUF9BQk9SVF9FUlVDQ0hfUFJPQ0VEVVJFX1JFUV9FViAgICAgICAgICAoRFdPUkQpKFVNQUNfVUxfVVBIWV9FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIFBfU0VUX0FHQ0hfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VMX1VQSFlfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBQX0NFTExfUkVTRUxfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19VTF9VUEhZX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIFBfQ0VMTF9SRVNFTF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1VMX1VQSFlfRVZFTlRfQkFTRSArIDExKQ0KKyNkZWZpbmUgUF9TWU5DX0NNRF9SRVNQX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfVUxfVVBIWV9FVkVOVF9CQVNFICsgMTIpDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgVU1BQ19ETCAtIFVQSFkgz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgUF9RVUFMSVRZX01FQVNfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfRExfVVBIWV9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIFBfVUVfSU5URVJOQUxfTUVBU19SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX0RMX1VQSFlfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBQX1FVQUxJVFlfTUVBU19JTkRfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19ETF9VUEhZX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgUF9VRV9JTlRFUk5BTF9NRUFTX0lORF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfRExfVVBIWV9FVkVOVF9CQVNFICsgMykNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBMMVQgLSBVUEhZIM/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFBfVU1UU19JRExFX1BFUklPRF9SRVBNT0RFX1JFUV9FViAgICAgICAgKERXT1JEKShMMVRfVVBIWV9FVkVOVF9CQVNFICsgMCkgICAgLyq1yLzb09pMMUdfVU1UU19JRExFX1BFUklPRF9SRVBNT0RFX1JFUV9FViovDQorI2RlZmluZSBQX0lSQVRfR0FQX0NPTkZJR19SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfRVZFTlRfQkFTRSArIDEpICAgIC8qtci829PaTDFHX0wxVF9HU01fSU5BQ1RfVElNRV9JTkRfRVYqLw0KKyNkZWZpbmUgUF9BQk9SVF9JUkFUX0dBUF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxVF9VUEhZX0VWRU5UX0JBU0UgKyAyKSAgICAvKrXIvNvT2kwxR19MMVRfQUJPUlRfR1NNX0dBUF9SRVFfRVYqLw0KKyNkZWZpbmUgUF9URF9EQ0hfR0FQX0NPTkZJR19SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEwxVF9VUEhZX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgUF9DQVJEMl9HQVBfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxVF9VUEhZX0VWRU5UX0JBU0UgKyA0KSAvKlRfelREX1BfY2FyZDJfZ2FwX3JlcSovDQorI2RlZmluZSBQX0NBUkQyX0dBUF9SRUxfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfRVZFTlRfQkFTRSArIDUpIC8qVF96VERfUF9jYXJkMl9nYXBfcmVsX3JlcSovDQorI2RlZmluZSBQX0NBUkQyX1NUT1BfR0FQX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfRVZFTlRfQkFTRSArIDYpIC8qVF96VERfUF9jYXJkMl9zdG9wX2dhcF9yZXEqLw0KKyNkZWZpbmUgUF9DQVJEMV9TVVNQRU5EX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxVF9VUEhZX0VWRU5UX0JBU0UgKyA3KSAvKlRfelREX1BfY2FyZDFfc3VzcGVuZF9yZXEqLw0KKyNkZWZpbmUgUF9DQVJEMV9SRVNVTUVfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxVF9VUEhZX0VWRU5UX0JBU0UgKyA4KSAvKlRfelREX1BfY2FyZDFfcmVzdW1lX3JlcSovDQorI2RlZmluZSBQX1REX1pUUENHX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfRVZFTlRfQkFTRSArIDkpDQorDQorI2RlZmluZSBQX0FCT1JUX0ZSRVFfU0NBTl9DTkZfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIFBfQUJPUlRfQ0VMTF9TRUFSQ0hfQ05GX0VWICAgICAgICAgICAgICAgKERXT1JEKShMMVRfVVBIWV9SU1BfRVZFTlQgKyAyKQ0KKyNkZWZpbmUgUF9CQ0hfUkVMRUFTRV9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxVF9VUEhZX1JTUF9FVkVOVCArIDMpDQorI2RlZmluZSBQX0NBTVBPTl9BX0NFTExfQ05GX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIFBfRFBDSF9SRUxfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVRfVVBIWV9SU1BfRVZFTlQgKyA1KQ0KKyNkZWZpbmUgUF9SRUxfU0NDUENIX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxVF9VUEhZX1JTUF9FVkVOVCArIDYpDQorI2RlZmluZSBQX1NUT1BfUEFHSU5HX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfUlNQX0VWRU5UICsgNykNCisjZGVmaW5lIFBfU1RPUF9DQlNfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVRfVVBIWV9SU1BfRVZFTlQgKyA4KQ0KKyNkZWZpbmUgUF9SRUxfSFNEUEFfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxVF9VUEhZX1JTUF9FVkVOVCArIDkpDQorI2RlZmluZSBQX1JFTF9IU1VQQV9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfUlNQX0VWRU5UICsgMTApDQorI2RlZmluZSBQX1JBQ0hfUFJPQ0VEVVJFX0NORl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfUlNQX0VWRU5UICsgMTEpDQorI2RlZmluZSBQX0VSVUNDSF9QUk9DRURVUkVfQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfUlNQX0VWRU5UICsgMTIpDQorI2RlZmluZSBQX1VNVFNfSU5BQ1RJVkVfVElNRV9JTkRfRVYgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfUlNQX0VWRU5UICsgMTMpDQorI2RlZmluZSBQX1VNVFNfVElNRVJfU05BUFNIT1RfSU5EX0VWICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfUlNQX0VWRU5UICsgMTQpDQorI2RlZmluZSBQX0FCT1JUX0lSQVRfR0FQX0NORl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfUlNQX0VWRU5UICsgMTUpDQorI2RlZmluZSBQX0hTUEFfUExVU19GQUNIX1JFTF9DTkZfRVYgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfUlNQX0VWRU5UICsgMTYpDQorI2RlZmluZSBQX0hTUEFfUExVU19QQ0hfUkVMX0NORl9FViAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfUlNQX0VWRU5UICsgMTcpDQorI2RlZmluZSBQX0NBUkQyX0dBUF9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfUlNQX0VWRU5UICsgMTgpIC8qVF96VERfUF9jYXJkMl9nYXBfaW5kKi8NCisjZGVmaW5lIFBfQ0FSRDJfR0FQX1JFTF9DTkZfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVRfVVBIWV9SU1BfRVZFTlQgKyAxOSkgLypUX3pURF9QX2NhcmQyX2dhcF9yZWxfY25mKi8NCisjZGVmaW5lIFBfQ0FSRDJfU1RPUF9HQVBfQ05GX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVRfVVBIWV9SU1BfRVZFTlQgKyAyMCkgLypUX3pURF9QX2NhcmQyX3N0b3BfZ2FwX2NuZiovDQorI2RlZmluZSBQX0NBUkQxX1NVU1BFTkRfQ05GX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfUlNQX0VWRU5UICsgMjEpIC8qVF96VERfUF9jYXJkMV9zdXNwZW5kX2NuZiovDQorI2RlZmluZSBQX1REX1pUUENHX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX1VQSFlfUlNQX0VWRU5UICsgMjIpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgTDFUIMTasr8gz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgUF9DSEVDS19SRl9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxVF9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIFBfQUNUSVZFX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVRfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBMMVRfR1NNX01FQVNfRE9ORV9SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoTDFUX0VWRU5UX0JBU0UgKyAzKQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIEwxRS9MMUe190wxVCC6r8r9yejWw9b3uKjEo8q9tcS6r8r9z/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgTDFUX0ZVTkNfU0VUX01PREVfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxVF9FVkVOVF9CQVNFICsgNCkNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgIEwxVC9MMUUvTDFX1q685M/7z6K6xbao0uUozu/A7bLjysrF5LLjTDFBKQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgTDFfR0VUX1JGX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxQV9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIEwxX0dFVF9SRl9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMUFfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBVVFJBTl9JUkFUX01FQVNfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFBX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgVVRSQU5fQkxJTkRfTUVBU19JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxQV9FVkVOVF9CQVNFICsgMykNCisvKldDRE1BKi8NCisjZGVmaW5lIEwxQV9GVU5DX1NFVF9NT0RFX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShMMUFfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBMMUFfVERfR0VUX1JGX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFBX0VWRU5UX0JBU0UgKyA1KS8qVETP8tb31sbKvdKqyeTGtcfrx/PP+8+iKi8NCisjZGVmaW5lIEwxQV9HRVRfUkZfRlJPTV9URF9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShMMUFfRVZFTlRfQkFTRSArIDYpLypURMjDs/bJ5Ma1uvO4+Mbky/vWxsq9tcS72Li0z/vPoiovDQorI2RlZmluZSBMMUFfV19HRVRfUkZfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFBX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgTDFBX0dFVF9SRl9GUk9NX1dfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxQV9FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIEwxQV9MVEVfR0VUX1JGX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMUFfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBMMUFfR0VUX1JGX0ZST01fTFRFX0NORl9FViAgICAgICAgICAgICAgIChEV09SRCkoTDFBX0VWRU5UX0JBU0UgKyAxMCkNCisvKne4qMSjz8Ky4sG/yc+xqLmy08NXX1BfSU5URVJfRlJFUV9NRUFTX0lORF9FViovDQorLyoqKiDUrVNJR19DT0RFLkjW0NLG1rK5/cC0tcTP+8+iICoqKi8NCisgICAgLyogU1RBUlQgT0YgRExMICovDQorI2RlZmluZSBMMl9DT05ORUNUX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTEFQRE1fRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBMMl9EQVRBX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTEFQRE1fRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBETF9VTklUX0RBVEFfUkVRICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTEFQRE1fRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBETF9EQVRBX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTEFQRE1fRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBETF9FU1RBQkxJU0hfUkVRICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTEFQRE1fRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBETF9JUkFUX0hPX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTEFQRE1fRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBETF9SRUxFQVNFX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTEFQRE1fRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBETF9SRUNPTk5FQ1RfUkVRICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTEFQRE1fRVZFTlRfQkFTRSArIDcpDQorI2RlZmluZSBETF9SRVNVTUVfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTEFQRE1fRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBETF9TVVNQRU5EX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTEFQRE1fRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBNRExfQ09ORklHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTEFQRE1fRVZFTlRfQkFTRSArIDEwKQ0KKyNkZWZpbmUgTURMX1JFTEVBU0VfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExBUERNX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIFBIX1NUQVJUX1QyMDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMQVBETV9FVkVOVF9CQVNFICsgMTIpDQorI2RlZmluZSBUMjAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTEFQRE1fRVZFTlRfQkFTRSArIDEzKQ0KKyAgICAvKiBFTkQgT0YgRExMICovDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiq2qMqxxvfP+8+iusXH+LzkQkVHSU4qKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisjZGVmaW5lIFRfU0kyTl9BVkFJTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDgzKQ0KKyNkZWZpbmUgVDMyMDYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgODQpDQorI2RlZmluZSBUMzIwOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA4NSkNCisjZGVmaW5lIFQzMjEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDg2KQ0KKyNkZWZpbmUgVF9OQ0VMTF9WQUxJRF9USU1FUiAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgODcpDQorI2RlZmluZSBUX1BfU0lfU1RBVFVTX1RJTUVSICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA4OCkNCisjZGVmaW5lIFRfQ0VMTF9TVVBFUlZJU0lPTiAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDg5KQ0KKyNkZWZpbmUgVF9QRU5BTFRZXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgOTApDQorI2RlZmluZSBUX1BFTkFMVFlfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA5MSkNCisjZGVmaW5lIFRfUEVOQUxUWV8yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDkyKQ0KKyNkZWZpbmUgVF9QRU5BTFRZXzMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgOTMpDQorI2RlZmluZSBUX1BFTkFMVFlfNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA5NCkNCisjZGVmaW5lIFRfUEVOQUxUWV81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDk1KQ0KKyNkZWZpbmUgVF9DRUxMX1JFU0VMX1RJTUVPVVQgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgOTYpDQorI2RlZmluZSBUX1JFU0VMRUNUSU9OX0RFTEFZICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyA5NykNCisjZGVmaW5lIFRfU0NFTExfUkVTRUxfREVMQVkgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRVZFTlRfQkFTRSArIDk4KQ0KKyNkZWZpbmUgVF9TWVNfSU5GT19SRUFEICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSUl9FVkVOVF9CQVNFICsgOTkpDQorI2RlZmluZSBUX1BTSV9DWUNMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMDApDQorI2RlZmluZSBUX05DRUxMX1NJX1JFQUQgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMDEpDQorI2RlZmluZSBUX0NBTExfUkVFU1RfVElNRU9VVCAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMDIpDQorI2RlZmluZSBUMzEyMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMDMpDQorI2RlZmluZSBUMzE0MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMDQpDQorI2RlZmluZSBUMzE3MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMDUpDQorI2RlZmluZSBUMzIwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMDYpDQorI2RlZmluZSBUX1NZU19JTkZPX1ZBTElEICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMDcpDQorI2RlZmluZSBUX1JYTEVWX1ZBTElEICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMDgpDQorI2RlZmluZSBUX0JFVFRFUl9DMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMDkpDQorI2RlZmluZSBUX1NZTkNfUkVBRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMTApDQorI2RlZmluZSBUX05PTl9EUlggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMTEpDQorI2RlZmluZSBUX01PTklUT1JfT0xEX1NDRUxMICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMTIpDQorI2RlZmluZSBUX1RXT19JQV9TVVBFUlZJU0lPTiAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMTMpDQorI2RlZmluZSBUX1NFTlRfTUVBU19SRVBPUlQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMTQpDQorI2RlZmluZSBUX1BTSV9VTlNPTElDSVRFRCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMTUpDQorI2RlZmluZSBUX0FCTl9DRUxMX1JFU0VMX1RJTUVPVVQgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMTYpDQorI2RlZmluZSBUX0FCTl9DRUxMX1JFU0VMX1NDRUxMICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMTcpDQorI2RlZmluZSBUX1RFU1RQQVJBTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMTgpDQorI2RlZmluZSBUX0NFTExfQkFSUkVEX1RJTUVSICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMTkpDQorI2RlZmluZSBUX0NFTExfU0VMX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMjApDQorI2RlZmluZSBUMzIxOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMjEpDQorI2RlZmluZSBUMzA5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMjIpDQorI2RlZmluZSBUX0JFVFRFUl9VVFJBTiAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMjMpDQorI2RlZmluZSBUX0lSX1dBSVRfVElNRVIgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMjQpDQorI2RlZmluZSBUX0lSX0NFTExfSU5WQUxJRF9USU1FUiAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMjUpDQorI2RlZmluZSBUMzIzMl9FViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMjYpDQorI2RlZmluZSBUX1JFU0VMRUNUSU9OX0VWICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMjcpDQorI2RlZmluZSBUMzIzMF9FViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMjgpDQorI2RlZmluZSBUX0RJU0FCTEVfVU1UU19NRUFTX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMjkpDQorI2RlZmluZSBUX0RJU0FCTEVfTFRFX01FQVNfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMzApDQorDQorI2RlZmluZSBUX0lSX1JFQURfUFJFREVGX0NPTkZfVElNRVIgICAgICAgICAgICAgIChEV09SRCkoR1JSX0VWRU5UX0JBU0UgKyAxMzkpLy+4+LaoyrHG98/7z6K6xdSkwfQxMLj2DQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKiq2qMqxxvfP+8+iusXH+LzkRU5EKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorICAgICAvKiBFTkQgT0YgR1JSICovDQorDQorICAgIC8qIFNUQVJUIE9GIE1BQyAqLw0KKyNkZWZpbmUgTUFDX1BEQ0hfUkVMX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNQUNfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBNQUNfTUFDX1NUQVJUX1RJTUVSICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIFJMQ19NQUNfVExMSV9BU1NJR05fUkVRICAgICAgICAgICAgICAgICAgKERXT1JEKShHTUFDX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgUkxDX01BQ19VUExJTktfUERDSF9SRVEgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNQUNfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBSTENfTUFDX1JFTF9QRENIX1JFUSAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIFJMQ19NQUNfREVBQ1RfQ05GICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHTUFDX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgUkxDX01BQ19DVFJMX0JMT0NLX1JFUSAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNQUNfRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBHUlJfTUFDX0NMQVNTTUFSS19JTkQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIEdSUl9NQUNfVVBEQVRFX1BBUkFNX1JFUSAgICAgICAgICAgICAgICAgKERXT1JEKShHTUFDX0VWRU5UX0JBU0UgKyA4KQ0KKyNkZWZpbmUgR1JSX01BQ19GUkVRX1VQREFURV9SRVEgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNQUNfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBHUlJfTUFDX1BEQ0hfUkVRICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBHUlJfTUFDX1BPTExJTkdfUkVRICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMTEpDQorI2RlZmluZSBHUlJfTUFDX0NJUkNVSVRfUkVRICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMTIpDQorI2RlZmluZSBHUlJfTUFDX0NJUkNVSVRfQUJPUlRfUkVRICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMTMpDQorI2RlZmluZSBHUlJfTUFDX0RFQUNUX1JFUSAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMTQpDQorI2RlZmluZSBHUlJfTUFDX0lETEVfQ0hOX0NORiAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMTUpDQorI2RlZmluZSBHUlJfTUFDX0NFTExfQ0hBTkdFX0lORCAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMTYpDQorI2RlZmluZSBHUlJfTUFDX1NUQVJUX1RJTUVSICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMTcpDQorI2RlZmluZSBHUlJfTUFDX1NUT1BfVElNRVIgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMTgpDQorI2RlZmluZSBHUlJfTUFDX1RFU1RQQVJBTV9SRVEgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMTkpDQorI2RlZmluZSBHUlJfTUFDX1NVU1BFTkRfUkVRICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMjApDQorI2RlZmluZSBUMzEyNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMjEpDQorI2RlZmluZSBUMzE0NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMjIpDQorI2RlZmluZSBUMzE2MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMjMpDQorI2RlZmluZSBUMzE2NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMjQpDQorI2RlZmluZSBUMzE2NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMjUpDQorI2RlZmluZSBUMzE2OF9NQUMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMjYpDQorI2RlZmluZSBUMzE3MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMjcpDQorI2RlZmluZSBUMzE3NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMjgpDQorI2RlZmluZSBUMzE3NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMjkpDQorI2RlZmluZSBUMzE4MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMzApDQorI2RlZmluZSBUMzE4NCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMzEpDQorI2RlZmluZSBUMzE4NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMzIpDQorI2RlZmluZSBUMzE5MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMzMpDQorI2RlZmluZSBUMzE5MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMzQpDQorI2RlZmluZSBUX1NJTkdMRV9ETF9CTE9DSyAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMzUpDQorI2RlZmluZSBYUE9MTElOR19SRVNQT05TRSAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMzYpDQorI2RlZmluZSBYQkxPQ0tfRExfUkVMRUFTRSAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMzcpDQorI2RlZmluZSBYQkxPQ0tfVUxfUkVMRUFTRSAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMzgpDQorI2RlZmluZSBHUlJfTUFDX1QzMjE4X0VYUF9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgMzkpDQorI2RlZmluZSBHUlJfTUFDX1BTSE9fUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgNDApDQorI2RlZmluZSBHUlJfTUFDX1BTSE9fUkVUVVJOX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgNDEpDQorI2RlZmluZSBHUlJfTUFDX1BTSE9fREVBQ1RfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgNDIpDQorI2RlZmluZSBHTUFDX1QzMjE2X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgNDMpDQorI2RlZmluZSBHTUFDX1RfTVVMVElfRExfQkxPQ0tfRVhQSVJZX0VWICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgNDQpDQorI2RlZmluZSBHTUFDX1QzMjAwX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01BQ19FVkVOVF9CQVNFICsgNDUpDQorDQorICAgIC8qIEVORCBPRiBNQUMgKi8NCisNCisgICAgLyogU1RBUlQgT0YgUkxDICovDQorI2RlZmluZSBSTENfV0FLRV9VUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JMQ19FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIFJMQ19GSUxMX0RBVEFfUVVFVUUgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgUkxDX1NUQVJUX1RJTUVSX1QzMTgyICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSTENfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBSTENfU1RBUlRfVElNRVJfVDMxNjggICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JMQ19FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIFJMQ19GSUxMX0dQUlNfVEVTVF9NT0RFICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgUkxDX1VORVhQRUNURURfSU5QVVRfUkVDRUlWRUQgICAgICAgICAgICAoRFdPUkQpKEdSTENfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBSTENfVVBMX0RFQlVHICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JMQ19FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIE9NX1JMQ19URVNUX01PREVfUkVRICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgR1JSX1JMQ19TVVNQRU5EX1JFUSAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdSTENfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBHUlJfUkxDX1JFU1VNRV9SRVEgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JMQ19FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIEdSUl9STENfVVBEQVRFX1BBUkFNX1JFUSAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIEdSUl9STENfQUNDRVNTX0NORiAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIEdSUl9STENfQUNDRVNTX1JFSiAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAxMikNCisjZGVmaW5lIEdSUl9STENfUkVMX1BEQ0hfUkVRICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAxMykNCisjZGVmaW5lIEdSUl9STENfREFUQV9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAxNCkNCisjZGVmaW5lIEdSUl9STENfU1RBVFVTX0lORCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIEdSUl9STENfVEJGX0ZBSUxVUkUgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAxNikNCisjZGVmaW5lIEdSUl9STENfVEVTVFBBUkFNX1JFUSAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAxNykNCisjZGVmaW5lIFJMQ19EQVRBX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAxOCkNCisjZGVmaW5lIFJMQ19VTklUREFUQV9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAxOSkNCisjZGVmaW5lIFJMQ19DTEVBUl9RVUVVRV9SRVEgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAyMCkNCisjZGVmaW5lIExMX1JMQ19SRVNVTUVfTU1fUkVRICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAyMSkNCisjZGVmaW5lIExMX1JMQ19SRVNVTUVfQUxMX1JFUSAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAyMikNCisjZGVmaW5lIFJMQ19BU1NJR05fUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAyMykNCisjZGVmaW5lIFJMQ19SRVNFVF9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAyNCkNCisjZGVmaW5lIE1BQ19STENfVVBMSU5LX1BEQ0hfSU5EICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAyNSkNCisjZGVmaW5lIE1BQ19STENfVVBMSU5LX1BEQ0hfRkFJTCAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAyNikNCisjZGVmaW5lIE1BQ19STENfUkVMX1BEQ0hfQ05GICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAyNykNCisjZGVmaW5lIE1BQ19STENfVVBMSU5LX1BEQ0hfUkVMX0lORCAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAyOCkNCisjZGVmaW5lIE1BQ19STENfVVBMSU5LX1BEQ0hfQ05GICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAyOSkNCisjZGVmaW5lIE1BQ19STENfRE9XTkxJTktfUERDSF9JTkQgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAzMCkNCisjZGVmaW5lIE1BQ19STENfREFUQV9JTkQgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAzMSkNCisjZGVmaW5lIE1BQ19STENfVVBMSU5LX0RBVEFfSU5EICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAzMikNCisjZGVmaW5lIE1BQ19STENfRVJST1JfSU5EICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAzMykNCisjZGVmaW5lIE1BQ19STENfREVBQ1RfUkVRICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAzNCkNCisjZGVmaW5lIE1BQ19STENfU1RBVFVTX0lORCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAzNSkNCisjZGVmaW5lIE1BQ19STENfVExMSV9JTkQgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAzNikNCisjZGVmaW5lIE1BQ19STENfRE9XTkxJTktfUERDSF9SRUxfSU5EICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAzNykNCisjZGVmaW5lIFVQTF9SRUxfVElNRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAzOCkNCisjZGVmaW5lIFBUQkZfUkVMX1RJTUVSICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyAzOSkNCisjZGVmaW5lIFQzMTY4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyA0MCkNCisjZGVmaW5lIFQzMTgyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyA0MSkNCisjZGVmaW5lIFJMQ19FTkdfTU9ERV9USU1FUiAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyA0MikNCisjZGVmaW5lIEdSUl9STENfUFNIT19SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyA0MykNCisjZGVmaW5lIEdSUl9STENfUFNIT19TVUNDX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyA0NCkNCisjZGVmaW5lIEdSUl9STENfUFNIT19GQUlMX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUkxDX0VWRU5UX0JBU0UgKyA0NSkNCisNCisgICAgLyogRU5EIE9GIFJMQyAqLw0KKw0KKyAgICAvKiBTVEFSVCBPRiBTTlAgKi8NCisjZGVmaW5lIFNOX0RMX1JFR0lTVEVSX1JFUSAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIFNOX1VMX1JFR0lTVEVSX1JFUSAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIFNOX05QRFVfREVMX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIFNOX05QRFVfQVZBSUxfUkVRICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIFNOX0RBVEFfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIFNOX1VOSVREQVRBX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIFNOX0lSX1VMX1NVU1BFTkRfUlNQICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIFNOX1hJRF9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIFNOU01fU0VRVUVOQ0VfSU5EICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIFNOU01fQUNUSVZBVEVfSU5EICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIFNOU01fQVNTSUdOX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBTTlNNX0RFQUNUSVZBVEVfSU5EICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU05EQ1BfRVZFTlRfQkFTRSArIDExKQ0KKyNkZWZpbmUgU05TTV9NT0RJRllfSU5EICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNORENQX0VWRU5UX0JBU0UgKyAxMikNCisjZGVmaW5lIFNOU01fSVJfQUNUSVZBVEVfSU5EICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgMTMpDQorI2RlZmluZSBTTlNNX0lSX0RFQUNUSVZBVEVfSU5EICAgICAgICAgICAgICAgICAgIChEV09SRCkoU05EQ1BfRVZFTlRfQkFTRSArIDE0KQ0KKyNkZWZpbmUgU05TTV9JUl9TRVFVRU5DRV9JTkQgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNORENQX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIFNOUERVX0FWQUlMX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgMTYpDQorI2RlZmluZSBTTlBEVV9ERUxfQ05GICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU05EQ1BfRVZFTlRfQkFTRSArIDE3KQ0KKyNkZWZpbmUgU05QRFVfREVMX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNORENQX0VWRU5UX0JBU0UgKyAxOCkNCisjZGVmaW5lIExMX0VTVEFCTElTSF9DTkYgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgMTkpDQorI2RlZmluZSBMTF9FU1RBQkxJU0hfSU5EICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU05EQ1BfRVZFTlRfQkFTRSArIDIwKQ0KKyNkZWZpbmUgTExfUkVMRUFTRV9DTkYgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNORENQX0VWRU5UX0JBU0UgKyAyMSkNCisjZGVmaW5lIExMX1JFTEVBU0VfSU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgMjIpDQorI2RlZmluZSBMTF9TVEFUVVNfSU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU05EQ1BfRVZFTlRfQkFTRSArIDIzKQ0KKyNkZWZpbmUgTExfUkVTRVRfSU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNORENQX0VWRU5UX0JBU0UgKyAyNCkNCisjZGVmaW5lIExMX1JFU0VUX1BTSE9fSU5EICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgMjUpDQorI2RlZmluZSBMTF9EQVRBX0NORiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU05EQ1BfRVZFTlRfQkFTRSArIDI2KQ0KKyNkZWZpbmUgTExfWElEX0NORiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNORENQX0VWRU5UX0JBU0UgKyAyNykNCisjZGVmaW5lIExMX1hJRF9JTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgMjgpDQorI2RlZmluZSBMTF9EQVRBX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU05EQ1BfRVZFTlRfQkFTRSArIDI5KQ0KKyNkZWZpbmUgTExfVU5JVERBVEFfSU5EICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNORENQX0VWRU5UX0JBU0UgKyAzMCkNCisjZGVmaW5lIFRJTUVfUkVFU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgMzEpDQorI2RlZmluZSBUSU1FX0xMX1VOSVREQVRBX0lORCAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU05EQ1BfRVZFTlRfQkFTRSArIDMyKQ0KKyNkZWZpbmUgVElNRV9VQUNLX1hPRkYgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNORENQX0VWRU5UX0JBU0UgKyAzMykNCisjZGVmaW5lIFRJTUVfQUNLX1hPRkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTkRDUF9FVkVOVF9CQVNFICsgMzQpDQorICAgIC8qIEVORCBPRiBTTlAgKi8NCisNCisgICAgLyogU1RBUlQgT0YgR1NNQSAqLw0KKyNkZWZpbmUgTExTTVNfVU5JVERBVEFfSU5EICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdTTUFfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBTTl9OUERVX0RFTF9JTkQgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIFNOX05QRFVfQVZBSUxfSU5EICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHU01BX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgU05fREFUQV9JTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdTTUFfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBTTl9VTklUREFUQV9JTkQgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIFNOX0lSX1NVU1BFTkRfSU5EICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHU01BX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgU05fSVJfVE9fVU1UU19JTkQgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdTTUFfRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBSUl9URVNUUEFSQU1fSU5EICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIFJSX0FCT1JUX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHU01BX0VWRU5UX0JBU0UgKyA4KQ0KKyNkZWZpbmUgUlJfQUNUX0NORiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdTTUFfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBSUl9BQ1RfUkVKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBSUl9BQ1RfRkFJTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMTEpDQorI2RlZmluZSBSUl9DRUxMX1BBUkFNRVRFUl9JTkQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMTIpDQorI2RlZmluZSBSUl9BQ1RfSU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMTMpDQorI2RlZmluZSBSUl9ERUFDVF9DTkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMTQpDQorI2RlZmluZSBSUl9QTE1OX0NORiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMTUpDQorI2RlZmluZSBSUl9QTE1OX1JFSiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMTYpDQorI2RlZmluZSBSUl9QTE1OX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMTcpDQorI2RlZmluZSBSUl9QTE1OX0FCT1JUX0NORiAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMTgpDQorI2RlZmluZSBSUl9SRUxfSU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMTkpDQorI2RlZmluZSBSUl9UQkZfRVNUX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMjApDQorI2RlZmluZSBSUl9UQkZfUkVMX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMjEpDQorI2RlZmluZSBSUl9JTkFDVElWRV9DTkYgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMjIpDQorI2RlZmluZSBSUl9IUExNTl9BQk9SVF9DTkYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMjMpDQorI2RlZmluZSBSUl9IUExNTl9BQ1RfUkVKICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMjQpDQorI2RlZmluZSBSUl9FU1RfQ05GICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMjUpDQorI2RlZmluZSBSUl9FU1RfSU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMjYpDQorI2RlZmluZSBSUl9DRUxMX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMjcpDQorI2RlZmluZSBSUl9EQVRBX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMjgpDQorI2RlZmluZSBSUl9TWU5DX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMjkpDQorI2RlZmluZSBHTU1SUl9QQUdFX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMzApDQorI2RlZmluZSBHTU1SUl9TVVNQRU5EX0lORCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMzEpDQorI2RlZmluZSBHTU1SUl9DRUxMX1VQREFURV9JTkQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMzIpDQorI2RlZmluZSBSUl9EQVRBX1JFSiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMzMpDQorI2RlZmluZSBSUl9FU1RfUkVKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMzQpDQorI2RlZmluZSBSUl9IT19DT01QTEVURV9JTkQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMzUpDQorI2RlZmluZSBSUl9IT19GQUlMX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMzYpDQorI2RlZmluZSBSUl9IT19TVEFSVF9JTkQgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMzcpDQorI2RlZmluZSBSUl9JUkFUX1JFU0VMX0NPTVBMRVRFX0lORCAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMzgpDQorI2RlZmluZSBSUl9JUkFUX1JFU0VMX0ZBSUxfSU5EICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMzkpDQorI2RlZmluZSBSUl9JUkFUX1JFU0VMX1NUQVJUX0lORCAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNDApDQorI2RlZmluZSBSUl9DQ09fQ09NUExFVEVfSU5EICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNDEpDQorI2RlZmluZSBSUl9DQ09fRkFJTF9JTkQgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNDIpDQorI2RlZmluZSBSUl9DQ09fU1RBUlRfSU5EICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNDMpDQorI2RlZmluZSBSUl9SQVRfQ0hOX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNDQpDQorI2RlZmluZSBSUl9URVNUX0NPVU5UX0NORiAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNDUpDQorI2RlZmluZSBMTEdNTV9TVEFUVVNfSU5EICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNDYpDQorI2RlZmluZSBMTEdNTV9UUklHR0VSX0lORCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNDcpDQorI2RlZmluZSBMTEdNTV9VU0VSX0RBVEFfUFJFU0VOVCAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNDgpDQorI2RlZmluZSBMTEdNTV9VTklUREFUQV9JTkQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNDkpDQorI2RlZmluZSBSUl9TVEFSVF9DRUxMX1JFU0VMX0lORCAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNTApDQorI2RlZmluZSBSUl9FTkRfQ0VMTF9SRVNFTF9JTkQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNTEpDQorI2RlZmluZSBSUl9BRERfQ0VMTF9SRVNFTF9JTkZPX0lORCAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNTIpDQorI2RlZmluZSBSTENfQkxPQ0tfSU5GT19JTkQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNTMpDQorI2RlZmluZSBSUk1OX01FQVNfUkVTVUxUU19DTkYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNTQpDQorI2RlZmluZSBNTlJSX0NJUEhFUklOR19JTkQgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNTUpDQorI2RlZmluZSBTTl9YSURfQ05GICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNTYpDQorI2RlZmluZSBSUl9SUkxfREFUQV9JTkQgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNTcpDQorI2RlZmluZSBSUl9SUkxfQUJPUlRfRVZFTlRfSU5EICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNTgpDQorI2RlZmluZSBSUl9SUkxfQ0xBU1NNQVJLX0lORCAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNTkpDQorI2RlZmluZSBTTlNNX0FDVElWQVRFX1JTUCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNjApDQorI2RlZmluZSBTTlNNX0RFQUNUSVZBVEVfUlNQICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNjEpDQorI2RlZmluZSBTTlNNX01PRElGWV9SU1AgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNjIpDQorI2RlZmluZSBTTlNNX1NFUVVFTkNFX1JTUCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNjMpDQorI2RlZmluZSBTTlNNX1NUQVRVU19SRVEgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNjQpDQorI2RlZmluZSBTTlNNX0lSX0FDVElWQVRFX1JTUCAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNjUpDQorI2RlZmluZSBTTlNNX0lSX0RFQUNUSVZBVEVfUlNQICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNjYpDQorI2RlZmluZSBTTlNNX0lSX1NFUVVFTkNFX1JTUCAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNjcpDQorI2RlZmluZSBVUlJDX1JFU0VMX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNjgpDQorI2RlZmluZSBVUlJDX1NFVF9JTkFDVElWRV9SRVEgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNjkpDQorI2RlZmluZSBSUl9TRVRfSU5BQ1RJVkVfQ05GICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNzApDQorI2RlZmluZSBVUlJDX1JFQURfUFJFREVGX0NPTkZfUkVRICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNzEpLypXQ0RNQc/CyrnTwyovDQorI2RlZmluZSBVUlJDX0FCT1JUX1JFQURfUFJFREVGX1JFUSAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNzIpLypXQ0RNQc/CyrnTwyovDQorI2RlZmluZSBVUlJDX0wxX1JTUkNfUkVRICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNzMpDQorI2RlZmluZSBVUlJDX0wxX1JTUkNfRlJFRV9JTkQgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNzQpDQorI2RlZmluZSBSUl9MMV9SU1JDX0NORiAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNzUpDQorI2RlZmluZSBSUl9MMV9SU1JDX1JFSiAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNzYpDQorI2RlZmluZSBSUl9DRUxMX1NFQVJDSF9DTkYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNzcpDQorI2RlZmluZSBSUl9DRUxMX1NFQVJDSF9SRUogICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNzgpDQorI2RlZmluZSBVUlJDX0NFTExfU0VBUkNIX1JFUSAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgNzkpDQorI2RlZmluZSBVUlJDX0hPX0lORk9fUkVRICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgODApDQorI2RlZmluZSBVUlJDX0hPX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgODEpDQorI2RlZmluZSBVUlJDX1ZTRF9JTkZPICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgODIpDQorI2RlZmluZSBSUl9IT19DTkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgODMpDQorI2RlZmluZSBSUl9IT19SRUogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgODQpDQorI2RlZmluZSBVUlJDX0NFTExfQ0hBTkdFX1JFUSAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgODUpDQorI2RlZmluZSBSUl9DRUxMX0NIQU5HRV9DTkYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgODYpDQorI2RlZmluZSBSUl9DRUxMX0NIQU5HRV9SRUogICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgODcpDQorI2RlZmluZSBSUl9SRVNFTF9DTkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgODgpDQorI2RlZmluZSBSUl9SRVNFTF9SRUogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgODkpDQorDQorI2RlZmluZSBFUlJDX1JFU0VMX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgOTApDQorI2RlZmluZSBFUlJDX0NFTExfU0VBUkNIX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgOTEpDQorI2RlZmluZSBSUl9JUkFUX1BTSE9fU1RBUlRfSU5EX0VWICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgOTIpDQorI2RlZmluZSBSUl9JUkFUX1BTSE9fQ09NUExFVEVfSU5EX0VWICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgOTMpDQorI2RlZmluZSBSUl9JUkFUX1BTSE9fRkFJTF9JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgOTQpDQorI2RlZmluZSBVUlJDX1BTSE9fUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgOTUpDQorI2RlZmluZSBFUlJDX1BTSE9fUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgOTYpDQorI2RlZmluZSBSUl9QU0hPX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgOTcpDQorI2RlZmluZSBSUl9QU0hPX1JFSl9FViAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgOTgpDQorI2RlZmluZSBFUlJDX0NFTExfQ0hBTkdFX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgOTkpDQorI2RlZmluZSBSUl9FVFdTX0RBVEFfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMTAwKQ0KKyNkZWZpbmUgTExHTU1fUFNIT19JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdTTUFfRVZFTlRfQkFTRSArIDEwMSkNCisjZGVmaW5lIFJMQ19TTV9DVVJSX0JFQVJfSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShHU01BX0VWRU5UX0JBU0UgKyAxMDIpDQorI2RlZmluZSBSUl9TRU5EQ01QX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMTAzKQ0KKyNkZWZpbmUgUlJfQ0dJX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdTTUFfRVZFTlRfQkFTRSArIDEwNCkNCisjZGVmaW5lIFJSX0NHSV9DTkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHU01BX0VWRU5UX0JBU0UgKyAxMDUpDQorI2RlZmluZSBSUl9BQk9SVF9DR0lfUkVRICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMTA2KQ0KKyNkZWZpbmUgUlJfQUJPUlRfQ0dJX0NORiAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdTTUFfRVZFTlRfQkFTRSArIDEwNykNCisjZGVmaW5lIFJSX1hDRUxMSU5GT19DTkYgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHU01BX0VWRU5UX0JBU0UgKyAxMDgpDQorI2RlZmluZSBSUl9YQ0VMTElORk9fUkVKICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1NNQV9FVkVOVF9CQVNFICsgMTA5KQ0KKyNkZWZpbmUgUlJfWENFTExJTkZPX0FCT1JUX0NORiAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdTTUFfRVZFTlRfQkFTRSArIDExMCkNCisNCisgICAgDQorICAgIC8qIFNUQVJUIE9GIExMQyAqLw0KKyNkZWZpbmUgTExDX1NUQVJUX1RJTUVSX1QyMDAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdMTENfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBMTENfU1RBUlRfVElNRVJfVDIwMSAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIExMU01TX1VOSVREQVRBX1JFUSAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHTExDX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgTExHTU1fQVNTSUdOX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdMTENfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBMTEdNTV9SRVNVTUVfUkVRICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIExMR01NX1NVU1BFTkRfUkVRICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHTExDX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgTExHTU1fVFJJR0dFUl9SRVEgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdMTENfRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBMTEdNTV9VTklUREFUQV9SRVEgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIExMR01NX0NFTExfTk9USUZJQ0FUSU9OX1JFUSAgICAgICAgICAgICAgKERXT1JEKShHTExDX0VWRU5UX0JBU0UgKyA4KQ0KKyNkZWZpbmUgU05QRFVfQVZBSUxfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdMTENfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBTTlBEVV9ERUxfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBTTlBEVV9ERUxfUlNQICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMTEpDQorI2RlZmluZSBMTF9DT05GSUdfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMTIpDQorI2RlZmluZSBMTF9FU1RBQkxJU0hfUkVRICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMTMpDQorI2RlZmluZSBMTF9FU1RBQkxJU0hfUlNQICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMTQpDQorI2RlZmluZSBMTF9SRUxFQVNFX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMTUpDQorI2RlZmluZSBMTF9EQVRBX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMTYpDQorI2RlZmluZSBMTF9VTklUREFUQV9SRVEgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMTcpDQorI2RlZmluZSBMTF9YSURfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMTgpDQorI2RlZmluZSBMTF9YSURfUlNQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMTkpDQorI2RlZmluZSBHUlJfTExDX1BTSE9fU1VDQ0VTU19JTkQgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMjApDQorI2RlZmluZSBSUkNfTExDX0RBVEFfSU5EICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMjEpDQorI2RlZmluZSBSTENfREFUQV9JTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMjIpDQorI2RlZmluZSBSTENfVU5JVERBVEFfSU5EICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMjMpDQorI2RlZmluZSBSTENfREFUQV9DTkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMjQpDQorI2RlZmluZSBSTENfVU5JVERBVEFfQ05GICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMjUpDQorI2RlZmluZSBSTENfQ0xFQVJfUVVFVUVfQ05GICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMjYpDQorI2RlZmluZSBSTENfQ0xFQVJfUVVFVUVfSU5EICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMjcpDQorI2RlZmluZSBSTENfREFUQV9CVUZGX0lORCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMjgpDQorI2RlZmluZSBMTENfVDIwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMjkpDQorI2RlZmluZSBUMjAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMzApDQorI2RlZmluZSBMTENfVDEwMF9FViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR0xMQ19FVkVOVF9CQVNFICsgMzEpDQorICAgIC8qIEVORCBPRiBMTEMgKi8NCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBNTbaoyrHG98/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIE1NX1QzMjEwX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTV9USU1FUl9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIE1NX1QzMjExX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTV9USU1FUl9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIE1NX1QzMjEyX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTV9USU1FUl9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIE1NX1QzMjEzX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTV9USU1FUl9FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIE1NX1QzMjE0X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTV9USU1FUl9FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIE1NX1QzMjE2X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTV9USU1FUl9FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIE1NX1QzMjE4X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTV9USU1FUl9FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIE1NX1QzMjIwX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTV9USU1FUl9FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIE1NX1QzMjIxX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTV9USU1FUl9FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIE1NX1QzMjMwX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTV9USU1FUl9FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIE1NX1QzMjQwX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTV9USU1FUl9FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBNTV9UMzI0MV9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1fVElNRVJfRVZFTlRfQkFTRSArIDExKQ0KKyNkZWZpbmUgTU1fVDMyMjVfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NX1RJTUVSX0VWRU5UX0JBU0UgKyAxMikNCisjZGVmaW5lIE1NX1QzMjIyX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTV9USU1FUl9FVkVOVF9CQVNFICsgMTMpDQorI2RlZmluZSBNTV9UMzIzMV9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1fVElNRVJfRVZFTlRfQkFTRSArIDE0KQ0KKyNkZWZpbmUgTU1fVDMyMzJfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NX1RJTUVSX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIE1NX1RXUlJSX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShNTV9USU1FUl9FVkVOVF9CQVNFICsgMTYpDQorI2RlZmluZSBNTV9UV1BHUl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTU1fVElNRVJfRVZFTlRfQkFTRSArIDE3KQ0KKyNkZWZpbmUgTU1fVENDU1JWX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE1NX1RJTUVSX0VWRU5UX0JBU0UgKyAxOCkNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBHTU22qMqxxvfP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBHTU1fVF9SRUFEWV9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01NX1RJTUVSX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgR01NX1QzMzEwX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9USU1FUl9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIEdNTV9UMzMzMF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fVElNRVJfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBHTU1fVDMzMTdfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01NX1RJTUVSX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgR01NX1QzMzIxX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9USU1FUl9FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIEdNTV9UMzMxNl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fVElNRVJfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBHTU1fVDMzMThfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01NX1RJTUVSX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgR01NX1QzMzIwX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9USU1FUl9FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIEdNTV9UX1dSUkNfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fVElNRVJfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBHTU1fVF9XUlJSX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01NX1RJTUVSX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgR01NX1RfUE9XRVJfT0ZGX0VYUElSWV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9USU1FUl9FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBHTU1fVF9XU1BOX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01NX1RJTUVSX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIEdNTV9UX1dDUlNfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fVElNRVJfRVZFTlRfQkFTRSArIDEyKQ0KKyNkZWZpbmUgR01NX1RfV1RSR19FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9USU1FUl9FVkVOVF9CQVNFICsgMTMpDQorI2RlZmluZSBHTU1fVF9QQUdFX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoR01NX1RJTUVSX0VWRU5UX0JBU0UgKyAxNCkNCisjZGVmaW5lIEdNTV9UMzMxOV9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHTU1fVElNRVJfRVZFTlRfQkFTRSArIDE1KQ0KKyNkZWZpbmUgR01NX1RfV1JFTF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEdNTV9USU1FUl9FVkVOVF9CQVNFICsgMTYpLypFQzYxNDAwMDgyMTExOSovICANCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBVTU22qMqxxvfP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBVTU1fVDMyMTJfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX1RJTUVSX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgVU1NX1QzMzExX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9USU1FUl9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIFVNTV9UMzMwMl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fVElNRVJfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBVTU1fVDMzMTJfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX1RJTUVSX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgVU1NX1RfTk9DRUxMX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9USU1FUl9FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIFVNTV9UX0xJTUlUX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fVElNRVJfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBVTU1fVF9ERUxMSVNUX0VYUElSWV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX1RJTUVSX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgVU1NX1RfU0hIUExNTl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9USU1FUl9FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIFVNTV9UX1VJQ0NJTklUX0VYUElSWV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fVElNRVJfRVZFTlRfQkFTRSArIDgpICAgIC8qILzgytO/qLP1yry7r7aoyrHG9yAqLw0KKyNkZWZpbmUgVU1NX1RfQ0FNUE9OX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9USU1FUl9FVkVOVF9CQVNFICsgOSkgICAgLyogvODK09ekwfS5/bPMtqjKscb3ICovDQorI2RlZmluZSBVTU1fVF9ERVRBQ0hfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX1RJTUVSX0VWRU5UX0JBU0UgKyAxMCkgICAvKiC84MrTudi7+silu+65/bPMtqjKscb3ICovDQorI2RlZmluZSBVTU1fVF9MSVNUX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX1RJTUVSX0VWRU5UX0JBU0UgKyAxMSkgICAvKiDW2MrUUExNTsHQse22qMqxxvcgKi8NCisjZGVmaW5lIFVNTV9UX1BMTU5MSVNUX0VYUElSWV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fVElNRVJfRVZFTlRfQkFTRSArIDEyKSAgIC8qIMHQse25/bPMtqjKscb3ICovDQorI2RlZmluZSBVTU1fVDM0MTFfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX1RJTUVSX0VWRU5UX0JBU0UgKyAxMykNCisjZGVmaW5lIFVNTV9UMzQwMl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fVElNRVJfRVZFTlRfQkFTRSArIDE0KQ0KKyNkZWZpbmUgVU1NX1QzNDEyX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9USU1FUl9FVkVOVF9CQVNFICsgMTUpDQorI2RlZmluZSBVTU1fVDM0NDJfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX1RJTUVSX0VWRU5UX0JBU0UgKyAxNikNCisjZGVmaW5lIFVNTV9UX1BST0NfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fVElNRVJfRVZFTlRfQkFTRSArIDE3KQ0KKyNkZWZpbmUgVU1NX1RfRk9DU0dMSVNUX0VYUElSWV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9USU1FUl9FVkVOVF9CQVNFICsgMTgpDQorI2RlZmluZSBVTU1fVDMzMjNfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX1RJTUVSX0VWRU5UX0JBU0UgKyAxOSkNCisjZGVmaW5lIFVNTV9UMzQyM19FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fVElNRVJfRVZFTlRfQkFTRSArIDIwKQ0KKyNkZWZpbmUgVU1NX1RCR1NFQVJDSF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9USU1FUl9FVkVOVF9CQVNFICsgMjEpICAvKkxURbGzvrDL0cv31tzG2raoyrHG9yovDQorI2RlZmluZSBVTU1fVF9JTVNSRUdfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX1RJTUVSX0VWRU5UX0JBU0UgKyAyMikNCisjZGVmaW5lIFVNTV9UX05PUk1BTEZBSUxQTE1OX0VYUElSWV9FViAgICAgICAgICAgKERXT1JEKShVTU1fVElNRVJfRVZFTlRfQkFTRSArIDIzKQ0KKyNkZWZpbmUgVU1NX1RfRU5BQkxFX0VVVFJBTl9FWFBJUllfRVYgICAgICAgICAgICAoRFdPUkQpKFVNTV9USU1FUl9FVkVOVF9CQVNFICsgMjQpDQorI2RlZmluZSBVTU1fVF9ESVNBQkxFX0VVVFJBTl9FWFBJUllfRVYgICAgICAgICAgIChEV09SRCkoVU1NX1RJTUVSX0VWRU5UX0JBU0UgKyAyNSkNCisjZGVmaW5lIFVNTV9UX0xPT1BUSU1FX0VYUElSWV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fVElNRVJfRVZFTlRfQkFTRSArIDI2KQ0KKyNkZWZpbmUgVU1NX1RfRElTRlJFU0VBUkNIX0VYUElSWV9FViAgICAgICAgICAgICAoRFdPUkQpKFVNTV9USU1FUl9FVkVOVF9CQVNFICsgMjcpDQorI2RlZmluZSBVTU1fVF9SRVNFVENBVVNFUEFSX0VYUElSWV9FViAgICAgICAgICAgIChEV09SRCkoVU1NX1RJTUVSX0VWRU5UX0JBU0UgKyAyOCkNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBDQ7aoyrHG98/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIENDX1QzMDNfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19USU1FUl9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIENDX1QzMDVfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19USU1FUl9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIENDX1QzMDhfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19USU1FUl9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIENDX1QzMTBfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19USU1FUl9FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIENDX1QzMTNfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19USU1FUl9FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIENDX1QzMzVfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19USU1FUl9FVkVOVF9CQVNFICsgNSkgICAgLypDQ0JTKi8NCisjZGVmaW5lIENDX1QzMzJfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19USU1FUl9FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIENDX1QzMjNfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19USU1FUl9FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIENDX1QzMzZfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19USU1FUl9FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIENDX1QzMzdfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19USU1FUl9FVkVOVF9CQVNFICsgOSkNCisNCisvKiBBREQgQSBUSU1FUiBGT1IgQ0FMTCBDT05GSVJNIE1FU1NBR0UgKi8NCisjZGVmaW5lIENDX1RfQ0FMTENORl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19USU1FUl9FVkVOVF9CQVNFICsgMTApDQorDQorLyogQUREIFRJTUVSIEZPUiBBT0MgKi8NCisjZGVmaW5lIENDX1RfQUNNVVBEX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19USU1FUl9FVkVOVF9CQVNFICsgMTEpDQorI2RlZmluZSBDQ19UX0NEVVJfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQ0NfVElNRVJfRVZFTlRfQkFTRSArIDEyKQ0KKw0KKyNkZWZpbmUgQ0NfVF9IT0xEX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENDX1RJTUVSX0VWRU5UX0JBU0UgKyAxMykNCisjZGVmaW5lIENDX1RfUkVUUklFVkVfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19USU1FUl9FVkVOVF9CQVNFICsgMTQpDQorDQorI2RlZmluZSBDQ19UX01QVFlCVUlMRF9FWFBJUllfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQ0NfVElNRVJfRVZFTlRfQkFTRSArIDE1KQ0KKyNkZWZpbmUgQ0NfVF9NUFRZSE9MRF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKENDX1RJTUVSX0VWRU5UX0JBU0UgKyAxNikNCisjZGVmaW5lIENDX1RfTVBUWVJFVFJJRVZFX0VYUElSWV9FViAgICAgICAgICAgICAgKERXT1JEKShDQ19USU1FUl9FVkVOVF9CQVNFICsgMTcpDQorI2RlZmluZSBDQ19UX01QVFlTUExJVF9FWFBJUllfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoQ0NfVElNRVJfRVZFTlRfQkFTRSArIDE4KQ0KKw0KKyNkZWZpbmUgQ0NfVDMyMl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENDX1RJTUVSX0VWRU5UX0JBU0UgKyAxOSkNCisjZGVmaW5lIENDX1RfU1VQUEVSX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19USU1FUl9FVkVOVF9CQVNFICsgMjApDQorI2RlZmluZSBDQ19UX01NQ09OTl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQ0NfVElNRVJfRVZFTlRfQkFTRSArIDIxKQ0KKw0KKyNkZWZpbmUgQ0NfVF9SRUxUQUZfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENDX1RJTUVSX0VWRU5UX0JBU0UgKyAyMikNCisjZGVmaW5lIENDX1RfQ09OTlRBRl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19USU1FUl9FVkVOVF9CQVNFICsgMjMpDQorI2RlZmluZSBDQ19UX1NZTkNJTkRfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoQ0NfVElNRVJfRVZFTlRfQkFTRSArIDI0KQ0KKyNkZWZpbmUgQ0NfVF9NT0RJRllCQ19FWFBJUllfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKENDX1RJTUVSX0VWRU5UX0JBU0UgKyAyNSkNCisjZGVmaW5lIENDX1RfRFRNRkRVUkFfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShDQ19USU1FUl9FVkVOVF9CQVNFICsgMjYpDQorI2RlZmluZSBDQ19UX01NQ09OTlJFVFJZX0VYUElSWV9FViAgICAgICAgICAgICAgIChEV09SRCkoQ0NfVElNRVJfRVZFTlRfQkFTRSArIDI3KQ0KKyNkZWZpbmUgQ0NfVF9BTExPV0VEQ0FMTF9USU1FX0VYUElSWV9FViAgICAgICAgICAoRFdPUkQpKENDX1RJTUVSX0VWRU5UX0JBU0UgKyAyOCkNCisjZGVmaW5lIENDX1RfRUNUX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKENDX1RJTUVSX0VWRU5UX0JBU0UgKyAyOSkNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBTTVO2qMqxxvfP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBTTVNfVFIxTV9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU01TX1RJTUVSX0VWRU5UX0JBU0UgKyAwKSAgICAvKiBGT1IgTU8gU00uKi8gDQorI2RlZmluZSBTTVNfVFJBTV9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU01TX1RJTUVSX0VWRU5UX0JBU0UgKyAxKSAgICAvKiBGT1IgTU8gU00uKi8gDQorI2RlZmluZSBTTVNfVEMxTV9NT19FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU01TX1RJTUVSX0VWRU5UX0JBU0UgKyAyKSAgICAvKiBGT1IgTU8gU00uKi8gDQorI2RlZmluZSBTTVNfVE1NU19FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU01TX1RJTUVSX0VWRU5UX0JBU0UgKyAzKSAgICAvKiBGT1IgTU8gU00uKi8gDQorI2RlZmluZSBTTVNfVFIyTV9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU01TX1RJTUVSX0VWRU5UX0JBU0UgKyA0KSAgICAvKiBGT1IgTVQgU00uKi8NCisjZGVmaW5lIFNNU19UQzFNX01UX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTVNfVElNRVJfRVZFTlRfQkFTRSArIDUpICAgIC8qIEZPUiBNVCBTTS4qLw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFNTtqjKscb3z/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgU1NfVF9XQUlUX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU1NfVElNRVJfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBTU19UX01PTFJUSU1FX0VYUElSWV9FViAgICAgICAgICAgICAgIChEV09SRCkoU1NfVElNRVJfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBTU19UX01PTFJJTlRFUlRJTUVfRVhQSVJZX0VWICAgICAgKERXT1JEKShTU19USU1FUl9FVkVOVF9CQVNFICsgMikNCisjaWZkZWYgX1VTRV9TSUdfVFJBQ0UNCisjZGVmaW5lIFNTX0RMX0wzRkFDSUxJVFlfRVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNTX1RJTUVSX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgU1NfRExfTDNNVFJFR19FViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU1NfVElNRVJfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBTU19ETF9MM1JFTENPTVBfRVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNTX1RJTUVSX0VWRU5UX0JBU0UgKyA1KQ0KKyNlbmRpZg0KKw0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFNNtqjKscb3z/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgU01fVDMzODBfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNNX1RJTUVSX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgU01fVDMzODFfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNNX1RJTUVSX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgU01fVDMzOTBfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNNX1RJTUVSX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgU01fVF9DTUVTVF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNNX1RJTUVSX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgU01fVF9QRFBIQU5ETEVfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFNNX1RJTUVSX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgU01fVF9BUFBBTlNNVEFDVF9FWFBJUllfRVYgICAgICAgICAgICAgICAoRFdPUkQpKFNNX1RJTUVSX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgU01fVF9BVVRPQU5TTVRBQ1RfRVhQSVJZX0VWICAgICAgICAgICAgICAoRFdPUkQpKFNNX1RJTUVSX0VWRU5UX0JBU0UgKyA2KQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIENCU7aoyrHG9yDP+8+iusW1xLao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIENCU19UX1NDSEVEQ0hFQ0tfRVhQSVJZX0VWICAgICAgICAgICAgICAgKERXT1JEKShDQlNfVElNRVJfRVZFTlRfQkFTRSArIDApDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgVUlDQ7aoyrHG98/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFVJQ0NfQ0FSRF9ERVRFQ1RfRVhQSVJZX0VWICAgICAgICAgICAgICAgKERXT1JEKShVSUNDX1RJTUVSX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgVUlDQ19DQVJEX1VTQVRfRVhQSVJZX0VWICAgICAgICAgICAgICAgKERXT1JEKShVSUNDX1RJTUVSX0VWRU5UX0JBU0UgKyAxKQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFVSUkO2qMqxxve2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBVU0lSX1RfQkNIX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19USU1FUl9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIFVTSVJfVF9TSUI3X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgVVNJUl9UX1ZUU0lCX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfVElNRVJfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBVU0lSX1RfUl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19USU1FUl9FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIFVTSVJfVF9CQ0NITU9ESUZZX0VYUElSWV9FViAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgVUNTUl9UX0hJR0hTUEVFRF9FWFBJUllfRVYgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfVElNRVJfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBVQ1NSX1RfSFlTVFhfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19USU1FUl9FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIFVDU1JfVF9QUk9URUNUX0VYUElSWV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgVUNTUl9UX05DRUxMX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfVElNRVJfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBVQ1NSX1RfT09TX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19USU1FUl9FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIFVDU1JfVF9DQU1QMVNfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxMCkgICAgLyrXpMH0xLPQocf4MVOzrMqxKi8NCisjZGVmaW5lIFVDU1JfVF9MMV9SRUxBVEVEX0VWRU5UX0VYUElSWV9FViAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIFVDU1JfVF9SRURJUkVDVF9FWFBJUllfRVYgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxMikNCisjZGVmaW5lIFVNQ1JfVF9SRVNFTEVDVF9FWFBJUllfRVYgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxMykNCisjZGVmaW5lIFVNQ1JfVF9QRVJJT0RfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxNCkNCisjZGVmaW5lIFVNQ1JfVF9UUklHR0VSX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIFVNQ1JfVF9FTV9DRUxMSU5GT19FWFBJUllfRVYgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxNikNCisjZGVmaW5lIFVDRVJfVF9TSUdDT05OUkVMSU5EX0VYUElSWV9FViAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxNykNCisjZGVmaW5lIFVDRVJfVF9FVFdTX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxOCkNCisjZGVmaW5lIFVDRVJfVF9GQUNIQ09OTlJFTF9FWFBJUllfRVYgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxOSkNCisjZGVmaW5lIFVSUkNfVDMwMF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAyMCkNCisjZGVmaW5lIFVSUkNfVDMwMl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAyMSkNCisjZGVmaW5lIFVSUkNfVDMwNF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAyMikNCisjZGVmaW5lIFVSUkNfVDMwNV9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAyMykNCisjZGVmaW5lIFVSUkNfVDMwN19FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAyNCkNCisjZGVmaW5lIFVSUkNfVDMwOF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAyNSkNCisjZGVmaW5lIFVSUkNfVDMwOV9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAyNikNCisjZGVmaW5lIFVSUkNfVDMxMl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAyNykNCisjZGVmaW5lIFVSUkNfVDMxM19FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAyOCkNCisjZGVmaW5lIFVSUkNfVDMxNF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAyOSkNCisjZGVmaW5lIFVSUkNfVDMxNV9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAzMCkNCisjZGVmaW5lIFVSUkNfVDMxNl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAzMSkNCisjZGVmaW5lIFVSUkNfVDMxOV9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAzMikNCisjZGVmaW5lIFVSUkNfVDMyMF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAzMykNCisjZGVmaW5lIFVNQ1JfVDMyMl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAzNCkNCisjZGVmaW5lIFVSUkNfVDMyM19FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAzNSkNCisjZGVmaW5lIFVSUkNfVDMyNV9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAzNikNCisjZGVmaW5lIFVSUkNfVF9XQUlUX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAzNykNCisjZGVmaW5lIFVDU1JfVF9MQlNfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAzOCkNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBVUERDULaoyrHG97ao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFBEQ1BfVF9SQUJSRUVTVF9FWFBJUllfRVYgICAgICAgICAgICAgICAgKERXT1JEKShQRENQX1RJTUVSX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgUERDUF9UX1NOU1lOQ19FWFBJUllfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBEQ1BfVElNRVJfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBQRENQX1RfREFUQU1PTklUT1JfRVhQSVJZX0VWICAgICAgICAgICAgIChEV09SRCkoUERDUF9USU1FUl9FVkVOVF9CQVNFICsgMikNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBVUkxDtqjKscb3tqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgVVJMQ19UX0RJU0NBUkRfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSTENfVElNRVJfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBVUkxDX1RfUE9MTF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJMQ19USU1FUl9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIFVSTENfVF9QT0xMUFJPSF9FWFBJUllfRVYgICAgICAgICAgICAgICAgKERXT1JEKShVUkxDX1RJTUVSX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgVVJMQ19UX1BPTExQUkRfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSTENfVElNRVJfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBVUkxDX1RfU1RBVFVTUFJPSF9FWFBJUllfRVYgICAgICAgICAgICAgIChEV09SRCkoVVJMQ19USU1FUl9FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIFVSTENfVF9TVEFUVVNQUkRfRVhQSVJZX0VWICAgICAgICAgICAgICAgKERXT1JEKShVUkxDX1RJTUVSX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgVVJMQ19UX1JFU0VUX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSTENfVElNRVJfRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBVUkxDX1RfTVJXX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVVJMQ19USU1FUl9FVkVOVF9CQVNFICsgNykNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBVTUFDtqjKscb3tqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgVU1BQ19NQ1JfVF9UUklHR0VSX0VYUElSWV9FViAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfVElNRVJfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBVTUFDX01DUl9UX1BFUklPRF9FWFBJUllfRVYgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19USU1FUl9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIFVNQUNfTUNSX1RfUEVORElOR19FWFBJUllfRVYgICAgICAgICAgICAgKERXT1JEKShVTUFDX1RJTUVSX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgVU1BQ19UX1JBQ0hQUk9DX0VYUElSWV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFVNQUNfVElNRVJfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBVTUFDX1RfSFNUSU1FUl9FWFBJUllfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVU1BQ19USU1FUl9FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIFVNQUNfVF9SRVNFVF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTUFDX1RJTUVSX0VWRU5UX0JBU0UgKyA1KQ0KKw0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIEwxVLaoyrHG97ao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIEwxVF9UX0JTSUNfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVRfVElNRVJfRVZFTlRfQkFTRSArIDApDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgVEFGtqjKscb3tqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgVEFGX1RfUFJPQ19FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRBRl9USU1FUl9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIFRBRl9UX0RJU0NfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUQUZfVElNRVJfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBUQUZfVF9SQV9UU1lOQ19FWFBJUllfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVEFGX1RJTUVSX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgVEFGX1RfUkFfVFNZTkNFTkRfRVhQSVJZX0VWICAgICAgICAgICAgICAoRFdPUkQpKFRBRl9USU1FUl9FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIFRBRl9UX1JBX1RTQkZJTFRFUl9FWFBJUllfRVYgICAgICAgICAgICAgKERXT1JEKShUQUZfVElNRVJfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBUQUZfVF9SQV9UWEZJTFRFUl9FWFBJUllfRVYgICAgICAgICAgICAgIChEV09SRCkoVEFGX1RJTUVSX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgVEFGX1RfUkxQX1RSQ1ZSX0VYUElSWV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFRBRl9USU1FUl9FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIFRBRl9UX1JMUF9UUkNWU19FWFBJUllfRVYgICAgICAgICAgICAgICAgKERXT1JEKShUQUZfVElNRVJfRVZFTlRfQkFTRSArIDcpDQorI2RlZmluZSBUQUZfVF9STFBfVFRFU1RfRVhQSVJZX0VWICAgICAgICAgICAgICAgIChEV09SRCkoVEFGX1RJTUVSX0VWRU5UX0JBU0UgKyA4KQ0KKyNkZWZpbmUgVEFGX1RfUkxQX1RYSURfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFRBRl9USU1FUl9FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIFRBRl9UX1JMUF9UX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUQUZfVElNRVJfRVZFTlRfQkFTRSArIDEwKQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIEdTTUG2qMqxxve2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgUk9IQ3YxtqjKscb3tqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgUk9IQ3YxX1RfSVJfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoUk9IQ3YxX1RJTUVSX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgUk9IQ3YxX1RfU08yRk9fRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoUk9IQ3YxX1RJTUVSX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgRU5ST0hDdjFfVF9JUl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoUk9IQ3YxX1RJTUVSX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgRU5ST0hDdjFfVF9TTzJGT19FWFBJUllfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoUk9IQ3YxX1RJTUVSX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgUk9IQ3YxX1RfTkFDS19GREJLX0NOVF9FWFBJUllfRVYgICAgICAgICAgIChEV09SRCkoUk9IQ3YxX1RJTUVSX0VWRU5UX0JBU0UgKyA0KQ0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFJPSEN2MraoyrHG97ao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFJPSEN2Ml9UX0lSX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShST0hDdjJfVElNRVJfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBFTlJPSEN2Ml9UX0lSX0VYUElSWV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoUk9IQ3YyX1RJTUVSX0VWRU5UX0JBU0UgKyAxKQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFBESbaoyrHG97ao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFBESV9UX1NXSVRDSExFRF9FWFBJUllfRVYgICAgICAgICAgICAgICAgKERXT1JEKShQRElfVElNRVJfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBQRElfVF9XQUlURE5TQUNLX0VYUElSWV9FViAgICAgICAgICAgICAgIChEV09SRCkoUERJX1RJTUVSX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgUERJX1RfV0FJVFpTU0FDS19FWFBJUllfRVYgICAgICAgICAgICAgICAoRFdPUkQpKFBESV9USU1FUl9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIFBESV9UX1dBSVRfQlVGX0VYUElSWV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShQRElfVElNRVJfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBQRElfTE9PUEJfVElNRVJfRVhQSVJZX0VWICAgICAgICAgICAgICAgIChEV09SRCkoUERJX1RJTUVSX0VWRU5UX0JBU0UgKyA0KQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFNDSbaoyrHG97ao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFNDSV9UX1ZPSUNFX0ZSQU1FX0VYUElSWV9FViAgICAgICAgICAgICAgKERXT1JEKShTQ0lfVElNRVJfRVZFTlRfQkFTRSArIDApDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgU1RNtqjKscb3tqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgU1RNX01FTUFWQUlMRF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNUTV9USU1FUl9FVkVOVF9CQVNFICsgMCkNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK1VTQVS2qMqxxve2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisjZGVmaW5lIFVTQVRfVElNRVJNTkdfVElNRVIxX0VYUElSWV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFVTQVRfVElNRVJfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBVU0FUX1RJTUVSTU5HX1RJTUVSMl9FWFBJUllfRVYgICAgICAgICAgICAgICAgKERXT1JEKShVU0FUX1RJTUVSX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgVVNBVF9USU1FUk1OR19USU1FUjNfRVhQSVJZX0VWICAgICAgICAgICAgICAgIChEV09SRCkoVVNBVF9USU1FUl9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIFVTQVRfVElNRVJNTkdfVElNRVI0X0VYUElSWV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFVTQVRfVElNRVJfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBVU0FUX1RJTUVSTU5HX1RJTUVSNV9FWFBJUllfRVYgICAgICAgICAgICAgICAgKERXT1JEKShVU0FUX1RJTUVSX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgVVNBVF9USU1FUk1OR19USU1FUjZfRVhQSVJZX0VWICAgICAgICAgICAgICAgIChEV09SRCkoVVNBVF9USU1FUl9FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIFVTQVRfVElNRVJNTkdfVElNRVI3X0VYUElSWV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFVTQVRfVElNRVJfRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBVU0FUX1RJTUVSTU5HX1RJTUVSOF9FWFBJUllfRVYgICAgICAgICAgICAgICAgKERXT1JEKShVU0FUX1RJTUVSX0VWRU5UX0JBU0UgKyA3KQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIMirvtbT67mkvt+9u7ulysK8/rrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgRk9SX1RFU1RfVEVNUF9FViAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBSSV9URVNUX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgVEVTVF9TRVRfVUlDQ19STFRfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBSSV9URVNUX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgVEVTVF9TRVRfVUlDQ19EQVRBX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBSSV9URVNUX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgVEVTVF9TRVRfTlZfREFUQV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBSSV9URVNUX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgVEVTVF9TRVRfTlZfREFUQV9JTUVJX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFBSSV9URVNUX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgVEVTVF9TRVRfTlZfREFUQV9TUENMRlVOQ19FViAgICAgICAgICAgICAoRFdPUkQpKFBSSV9URVNUX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgVEVTVF9TRVRfQ09NUF9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBSSV9URVNUX0VWRU5UX0JBU0UgKyA2KQ0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIMSjxOJUQUbT67mkvt+9u7ulysK8/rrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgVEVTVF9UQUZEQVRBSU5EX1VUUkFOX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFRBRl9URVNUX0VWRU5UX0JBU0UgKyAwKQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFVTSVLT67mkvt+9u7ulysK8/rrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgVEVTVF9CSUdTSUJfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVTSVJfVEVTVF9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIFRFU1RfVVNJUl9ERUNTSUJfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVU0lSX1RFU1RfRVZFTlRfQkFTRSArIDEpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgTlVSTEPP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBURVNUX1VVUkxDX0RBVEFfUkVRX1VUUkFOX0VWICAgICAgICAgICAgIChEV09SRCkoTlVSTENfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBURVNUX1VVUkxDX0RBVEFfSU5EX1VUUkFOX0VWICAgICAgICAgICAgIChEV09SRCkoTlVSTENfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBURVNUX0NVUkxDX0NPTkZJR19SRVFfVVRSQU5fRVYgICAgICAgICAgIChEV09SRCkoTlVSTENfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBURVNUX1VSTENfQUNLX0NUUkxfVVRSQU5fRVYgICAgICAgICAgICAgIChEV09SRCkoTlVSTENfRVZFTlRfQkFTRSArIDMpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgTlBEQ1DP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBDUERDUF9DT05GSUdfUkVRX1VUUkFOX0VWICAgICAgICAgICAgICAgIChEV09SRCkoTlBEQ1BfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBDUERDUF9SRUxFQVNFX1JFUV9VVFJBTl9FViAgICAgICAgICAgICAgIChEV09SRCkoTlBEQ1BfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBOUERDUF9EQVRBX1JFUV9VVFJBTl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTlBEQ1BfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBOUERDUF9EQVRBX0lORF9VVFJBTl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTlBEQ1BfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBURVNUX05QRENQX0RBVEFfRVJSX0lORF9VVFJBTl9FViAgICAgICAgIChEV09SRCkoTlBEQ1BfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBURVNUX05QRENQX0RBVEFfQ05GX1VUUkFOX0VWICAgICAgICAgICAgIChEV09SRCkoTlBEQ1BfRVZFTlRfQkFTRSArIDUpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgTlVNQUPP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBURVNUX1VNQUNfQUNLX0NUUkxfVVRSQU5fRVYgICAgICAgICAgICAgIChEV09SRCkoTlVNQUNfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBURVNUX1VNQUNfSFNVUEFfSU5GT19FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTlVNQUNfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBURVNUX1VNQUNfSFNVUEFfQ0ZHX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTlVNQUNfRVZFTlRfQkFTRSArIDIpIA0KKyNkZWZpbmUgVEVTVF9VTUFDX0hTVVBBX1NJSU5GT19FViAgICAgICAgICAgICAgICAoRFdPUkQpKE5VTUFDX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgVEVTVF9VTUFDX0hTVVBBX0hFQURFUl9JTkZPX0VWICAgICAgICAgICAoRFdPUkQpKE5VTUFDX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgVEVTVF9VTUFDX05PVElGWV9EQVRBX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKE5VTUFDX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgVEVTVF9VTUFDX1BBX1BMVVNfQ0ZHX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKE5VTUFDX0VWRU5UX0JBU0UgKyA2KQ0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIE5DQlPP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBURVNUX1VDQlNfU0NIRURfQ0ZHX1VUUkFOX0VWICAgICAgICAgICAgIChEV09SRCkoTkNCU19FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIFRFU1RfVUNCU19EQVRBX1JFUV9VVFJBTl9FViAgICAgICAgICAgICAgKERXT1JEKShOQ0JTX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgVEVTVF9VQ0JTX09VVFBVVF9FTkRfVVRSQU5fRVYgICAgICAgICAgICAoRFdPUkQpKE5DQlNfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBURVNUX1VDQlNfVU1BQ19URlNfQ0ZHX1VUUkFOX0VWICAgICAgICAgIChEV09SRCkoTkNCU19FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIFRFU1RfVUNCU19VTUFDX1NGTl9JTkZPX1VUUkFOX0VWICAgICAgICAgKERXT1JEKShOQ0JTX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgVEVTVF9VVVJMQ19EQVRBX0NORl9VVFJBTl9FViAgICAgICAgICAgICAoRFdPUkQpKE5DQlNfRVZFTlRfQkFTRSArIDUpDQorLypXQ0RNQSAgIE5DQlNfRVZFTlRfQkFTRT0yMCAqLw0KKyNkZWZpbmUgVEVTVF9VV1JMQ19EQVRBX0NORl9VVFJBTl9FViAgICAgICAgICAgICAoRFdPUkQpKE5DQlNfRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBURVNUX1VDQlNfV01BQ19URlNfQ0ZHX1VUUkFOX0VWICAgICAgICAgIChEV09SRCkoTkNCU19FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIFRFU1RfVUNCU19XTUFDX1NGTl9JTkZPX1VUUkFOX0VWICAgICAgICAgKERXT1JEKShOQ0JTX0VWRU5UX0JBU0UgKyA4KQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFRDz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgVENfQUNUSVZFX1RFU1RfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRDX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgVENfQUNUSVZFX1RFU1RfQ05GX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRDX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgVENfREVBQ1RJVkVfVEVTVF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRDX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgVENfQ0xPU0VfTE9PUF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRDX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgVENfQ0xPU0VfTE9PUF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRDX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgVENfQ0xPU0VfTE9PUF9SRVFfVVJMQ19FViAgICAgICAgICAgICAgICAoRFdPUkQpKFRDX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgVENfT1BFTl9MT09QX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRDX0VWRU5UX0JBU0UgKyA2KQ0KKy8qd2NkbWEgVENfRVZFTlRfQkFTRT0zMCovDQorI2RlZmluZSBUQ19DTE9TRV9MT09QX1JFUV9XUkxDX0VWICAgICAgICAgICAgICAgIChEV09SRCkoVENfRVZFTlRfQkFTRSArIDcpDQorLy9sdGUgVENfRVZFUk5UDQorI2RlZmluZSBFTU1fVENfVEVTVF9DT05UUk9MX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoVENfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBUQ19FTU1fVEVTVF9DT05UUk9MX0NORl9FViAgICAgICAgICAgICAgIChEV09SRCkoVENfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBUQ19QRElfT1BFTl9MT09QX1RFU1RfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoVENfRVZFTlRfQkFTRSArIDEwKQ0KKyNkZWZpbmUgVENfUERJX0NMT1NFX0xPT1BfVEVTVF9SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKFRDX0VWRU5UX0JBU0UgKyAxMSkNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBMMVNJTVXP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBMMVNJTVVfU1RBUlRfRVYgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFTSU1VX0VWRU5UX0JBU0UgKyAwKSAgICAvKsb0tq9MMV9TSU1VxKO/6SovDQorI2RlZmluZSBMMVNJTVVfTkdNQUNfREFUQV9JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoTDFTSU1VX0VWRU5UX0JBU0UgKyAxKSAgICAvKkwxX1NJTVW3osvNyv2+3bW9TUFDX04qLw0KKyNkZWZpbmUgTDFTSU1VX0RMTE5fREFUQV9JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxU0lNVV9FVkVOVF9CQVNFICsgMikgICAgLypMMV9TSU1Vt6LLzcr9vt21vUxBUERNKi8NCisjZGVmaW5lIFRPT0xfTDFTSU1VX0NFTExfTUVBU19JTkZPX0NGR19FViAgICAgICAgKERXT1JEKShMMVNJTVVfRVZFTlRfQkFTRSArIDMpICAgIC8quaS+37eiy81GQ0JTQtDFz6K1vUwxX1NJTVUqLw0KKyNkZWZpbmUgVE9PTF9MMVNJTVVfU1lTSU5GT19SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEwxU0lNVV9FVkVOVF9CQVNFICsgNCkgICAgLyq5pL7ft6LLzc+1zbPQxc+itb1MMV9TSU1VKi8NCisjZGVmaW5lIFRPT0xfTDFTSU1VX1BBR0lOR19SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShMMVNJTVVfRVZFTlRfQkFTRSArIDUpICAgIC8quaS+37eiy83RsLr00MXPorW9TDFfU0lNVSovDQorI2RlZmluZSBUT09MX0wxU0lNVV9EQ0NIX0NGR19FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFTSU1VX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgVE9PTF9MMVNJTVVfRENDSF9SRUxfUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKEwxU0lNVV9FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIEwxU0lNVV9ETExOX0NPTk5FQ1RfSU5EX0VWICAgICAgICAgICAgICAgKERXT1JEKShMMVNJTVVfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBMMVNJTVVfRlJBTUVfSU5UX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFTSU1VX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgVE9PTF9MMVNJTVVfU1lOQ19SRUpfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxU0lNVV9FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBUT09MX0wxU0lNVV9TWVNJTkZPX1JFSl9FViAgICAgICAgICAgICAgIChEV09SRCkoTDFTSU1VX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIEwxU0lNVV9ETExOX0RBVEFfU0VOVF9DTVBfRVYgICAgICAgICAgICAgKERXT1JEKShMMVNJTVVfRVZFTlRfQkFTRSArIDEyKSAgICAvKkwxU0lNVc2o1qpMQVBETU67urPlx/jW0Mr9vt3S0beiy8219CovDQorI2RlZmluZSBUT09MX0wxU0lNVV9EQ0NIX0ZBSUxfQ0ZHX0VWICAgICAgICAgICAgIChEV09SRCkoTDFTSU1VX0VWRU5UX0JBU0UgKyAxMykgICAgLyrBtMK3yqew3LXEv+nK/b/Y1sYqLw0KKyNkZWZpbmUgVE9PTF9MMVNJTVVfU1lTSU5GT19GQUlMX0NGR19FViAgICAgICAgICAoRFdPUkQpKEwxU0lNVV9FVkVOVF9CQVNFICsgMTQpDQorI2RlZmluZSBMMVNJTVVfVE9PTF9SWExFVl9SRVFfQ0ZHX0VWICAgICAgICAgICAgIChEV09SRCkoTDFTSU1VX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIEwxU0lNVV9UT09MX1NZTkNSRVFfQ0ZHX0VWICAgICAgICAgICAgICAgKERXT1JEKShMMVNJTVVfRVZFTlRfQkFTRSArIDE2KQ0KKyNkZWZpbmUgTDFTSU1VX1RPT0xfU1lTUkVRX0NGR19FViAgICAgICAgICAgICAgICAoRFdPUkQpKEwxU0lNVV9FVkVOVF9CQVNFICsgMTcpDQorI2RlZmluZSBMMVNJTVVfVE9PTF9JRExFX01PREVfUkVRX0NGR19FViAgICAgICAgIChEV09SRCkoTDFTSU1VX0VWRU5UX0JBU0UgKyAxOCkNCisjZGVmaW5lIEwxU0lNVV9UT09MX05DRUxMX1JYTEVWX0lORF9DRkdfRVYgICAgICAgKERXT1JEKShMMVNJTVVfRVZFTlRfQkFTRSArIDE5KSAgICAvKkwxU0lNVc2o1qpMQVBETU67urPlx/jW0Mr9vt3S0beiy8219CovDQorI2RlZmluZSBMMVNJTVVfVE9PTF9TQ0VMTF9SWExFVl9JTkRfQ0ZHX0VWICAgICAgIChEV09SRCkoTDFTSU1VX0VWRU5UX0JBU0UgKyAyMCkgICAgLyrBtMK3yqew3LXEv+nK/b/Y1sYqLw0KKyNkZWZpbmUgTDFTSU1VX1RPT0xfTUVBU19SRVBPUlRfQ0ZHX0VWICAgICAgICAgICAoRFdPUkQpKEwxU0lNVV9FVkVOVF9CQVNFICsgMjEpDQorI2RlZmluZSBMMVNJTVVfVE9PTF9ETF9UQkZfUkVMX0lORF9FViAgICAgICAgICAgIChEV09SRCkoTDFTSU1VX0VWRU5UX0JBU0UgKyAyMikNCisjZGVmaW5lIEwxU0lNVV9UT09MX1VMX1RCRl9SRUxfSU5EX0VWICAgICAgICAgICAgKERXT1JEKShMMVNJTVVfRVZFTlRfQkFTRSArIDIzKQ0KKyNkZWZpbmUgTDFTSU1VX1RPT0xfVEFGX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxU0lNVV9FVkVOVF9CQVNFICsgMjQpDQorI2RlZmluZSBMMVNJTVVfVE9PTF9UQUZfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFTSU1VX0VWRU5UX0JBU0UgKyAyNSkNCisjZGVmaW5lIEwxU0lNVV9UT09MX0FTWU5DX0hPX1JFUV9DRkdfRVYgICAgICAgICAgKERXT1JEKShMMVNJTVVfRVZFTlRfQkFTRSArIDI2KQ0KKyNkZWZpbmUgTDFTSU1VX1RPT0xfU1lOQ19IT19SRVFfQ0ZHX0VWICAgICAgICAgICAoRFdPUkQpKEwxU0lNVV9FVkVOVF9CQVNFICsgMjcpDQorI2RlZmluZSBUT09MX0wxU0lNVV9DQlNfQkxLX1NUQVJUX0VWICAgICAgICAgICAgIChEV09SRCkoTDFTSU1VX0VWRU5UX0JBU0UgKyAyOCkNCisjZGVmaW5lIFRPT0xfTDFTSU1VX0NCU19GU1RfQkxLX1JFUV9FViAgICAgICAgICAgKERXT1JEKShMMVNJTVVfRVZFTlRfQkFTRSArIDI5KQ0KKyNkZWZpbmUgVE9PTF9MMVNJTVVfQ0JTX09USEVSX0JMS19SRVFfRVYgICAgICAgICAoRFdPUkQpKEwxU0lNVV9FVkVOVF9CQVNFICsgMzApDQorI2RlZmluZSBMMVNJTVVfVE9PTF9QU0hPUkVRX0NGR19FViAgICAgICAgICAgICAgIChEV09SRCkoTDFTSU1VX0VWRU5UX0JBU0UgKyAzMSkNCisjZGVmaW5lIEwxU0lNVV9UT09MX0RFQUNUSUFURV9DRkdfRVYgICAgICAgICAgICAgKERXT1JEKShMMVNJTVVfRVZFTlRfQkFTRSArIDMyKQ0KKyNkZWZpbmUgVE9PTF9MMVNJTVVfQUJOT1JNQUxfVEFfQ0ZHX0VWICAgICAgICAgICAoRFdPUkQpKEwxU0lNVV9FVkVOVF9CQVNFICsgMzMpDQorI2RlZmluZSBMMVNJTVVfVE9PTF9MMUdfTDFFX0dTTV9JTkFDVF9USU1FX1JFUV9FViAgICAgICAoRFdPUkQpKEwxU0lNVV9FVkVOVF9CQVNFICsgMzQpICAgIA0KKyNkZWZpbmUgTDFTSU1VX1RPT0xfTDFHX0wxRV9GUkVRX0xJU1RfQ09ORklHX1JFUV9FViAgICAgICAoRFdPUkQpKEwxU0lNVV9FVkVOVF9CQVNFICsgMzUpICANCisjZGVmaW5lIEwxU0lNVV9UT09MX0wxR19MMUVfSVJBVF9NRUFTX0NPTkZJR19SRVFfRVYgICAgICAgKERXT1JEKShMMVNJTVVfRVZFTlRfQkFTRSArIDM2KSAgDQorI2RlZmluZSBMMVNJTVVfVE9PTF9DSEFOTkVMX0FTU0lHTl9SRVFfRVYgICAgICAgIChEV09SRCkoTDFTSU1VX0VWRU5UX0JBU0UgKyAzNykgDQorI2RlZmluZSBMMVNJTVVfVE9PTF9DSEFOTkVMX1RZUEVfSU5GT19FViAgICAgICAgIChEV09SRCkoTDFTSU1VX0VWRU5UX0JBU0UgKyAzOCkNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBOTEFQRE3P+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBUT09MX05MQVBETV9VTklUX0RBVEFfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoTkxBUERNX0VWRU5UX0JBU0UgKyAwKSAgICAvKrmkvt/P8kxBRFBOt6LLzbfHyLfIz8/7z6IqLw0KKyNkZWZpbmUgTkxBUERNX1RPT0xfVU5JVF9EQVRBX0lORF9FViAgICAgICAgICAgICAoRFdPUkQpKE5MQVBETV9FVkVOVF9CQVNFICsgMSkgICAgLypMQURQTs/yuaS+38nPtKu3x8i3yM/P+8+iKi8NCisjZGVmaW5lIFRPT0xfTkxBUERNX0RBVEFfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShOTEFQRE1fRVZFTlRfQkFTRSArIDIpICAgIC8quaS+38/yTEFEUE63osvNyLfIz8/7z6IqLw0KKyNkZWZpbmUgTkxBUERNX1RPT0xfREFUQV9JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5MQVBETV9FVkVOVF9CQVNFICsgMykgICAgLypMQURQTs/yuaS+38nPtKvIt8jPz/vPoiovDQorI2RlZmluZSBUT09MX05MQVBETV9FU1RBQkxJU0hfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoTkxBUERNX0VWRU5UX0JBU0UgKyA0KSAgICAvKrmkvt/P8kxBRFBOt6LLzb2owbTH68fzz/vPoiovDQorI2RlZmluZSBOTEFQRE1fVE9PTF9FU1RBQkxJU0hfSU5EX0VWICAgICAgICAgICAgIChEV09SRCkoTkxBUERNX0VWRU5UX0JBU0UgKyA1KSAgICAvKkxBRFBOz/K5pL7ft6LLzb2owbTWuMq+z/vPoiovDQorI2RlZmluZSBOTEFQRE1fVE9PTF9FU1RBQkxJU0hfQ09OX0VWICAgICAgICAgICAgIChEV09SRCkoTkxBUERNX0VWRU5UX0JBU0UgKyA2KSAgICAvKkxBRFBOz/K5pL7ft6LLzb2owbTIt8jPz/vPoiovDQorI2RlZmluZSBOTEFQRE1fVE9PTF9TVVNQRU5EX0NPTl9FViAgICAgICAgICAgICAgIChEV09SRCkoTkxBUERNX0VWRU5UX0JBU0UgKyA3KSAgICAvKkxBRFBOz/K5pL7ft6LLzbnSxvDIt8jPz/vPoiovDQorI2RlZmluZSBUT09MX05MQVBETV9SRUNPTk5FQ1RfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoTkxBUERNX0VWRU5UX0JBU0UgKyA4KSAgICAvKrmkvt/P8kxBRFBOt6LLzdbYwazH68fzz/vPoiovDQorI2RlZmluZSBUT09MX05MQVBETV9SRUxFQVNFX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoTkxBUERNX0VWRU5UX0JBU0UgKyA5KSAgICAvKrmkvt/P8kxBRFBOt6LLzcrNt8XBtMK3x+vH88/7z6IqLw0KKyNkZWZpbmUgTkxBUERNX1RPT0xfUkVMRUFTRV9JTkRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKE5MQVBETV9FVkVOVF9CQVNFICsgMTApICAgIC8quaS+38/yTEFEUE63osvNys23xcG0wrfWuMq+z/vPoiovDQorI2RlZmluZSBOTEFQRE1fVE9PTF9SRUxFQVNFX0NPTl9FViAgICAgICAgICAgICAgIChEV09SRCkoTkxBUERNX0VWRU5UX0JBU0UgKyAxMSkgICAgLyq5pL7fz/JMQURQTreiy83KzbfFwbTCt8i3yM/P+8+iKi8NCisjZGVmaW5lIFRPT0xfTkxBUERNX01ETF9DT05GSUdfRVYgICAgICAgICAgICAgICAgKERXT1JEKShOTEFQRE1fRVZFTlRfQkFTRSArIDEyKSAgICAvKrmkvt/P8kxBRFBOt6LLzbP1yrzF5NbDz/vPoiovDQorI2RlZmluZSBOTEFQRE1fVE9PTF9NRExfRVJST1JfSU5EX0VWICAgICAgICAgICAgIChEV09SRCkoTkxBUERNX0VWRU5UX0JBU0UgKyAxMykgICAgLypMQURQTs/yuaS+37eiy8207c7zsai45iovDQorI2RlZmluZSBUT09MX05MQVBETV9NRExfUkVBTEVBU0VfUkVRX0VWICAgICAgICAgIChEV09SRCkoTkxBUERNX0VWRU5UX0JBU0UgKyAxNCkgICAgLyq5pL7ft6LG8NLss6OxvrXYys23xc/7z6IqLw0KKyNkZWZpbmUgTkxBUERNX0wyX0RBVEFfSU5EX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5MQVBETV9FVkVOVF9CQVNFICsgMTUpICAgIC8qU0FQSTC3osvNz/vPorW9U0FQSTMqLw0KKyNkZWZpbmUgTkxBUERNX1RPT0xfU0FCTV9JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5MQVBETV9FVkVOVF9CQVNFICsgMTYpICAgIC8qTkxBUERNz/K5pL7ft6LLzcbVzai9qMG0x+vH89a4yr7P+8+iKi8NCisjZGVmaW5lIFRPT0xfTkxBUERNX1VBX1JTUF9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShOTEFQRE1fRVZFTlRfQkFTRSArIDE3KSAgICAvKrmkvt/P8k5MQVBETbeiy83G1c2ovajBtM/s06bP+8+iKi8NCisjZGVmaW5lIE5MQVBETV9UT09MX1NBQk1fQ09SX0lORF9FViAgICAgICAgICAgICAgKERXT1JEKShOTEFQRE1fRVZFTlRfQkFTRSArIDE4KSAgICAvKk5MQVBETc/yuaS+37eiy82z5c27veK+9r2owbTH68fz1rjKvs/7z6IqLw0KKyNkZWZpbmUgVE9PTF9OTEFQRE1fVUFfQ09SX1JTUF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE5MQVBETV9FVkVOVF9CQVNFICsgMTkpICAgIC8quaS+38/yTkxBUERNt6LLzbPlzbu94r72vajBtM/s06bP+8+iKi8NCisjZGVmaW5lIFRPT0xfTkxBUERNX0VYQ0VQVF9EQVRBX0VWICAgICAgICAgICAgICAgKERXT1JEKShOTEFQRE1fRVZFTlRfQkFTRSArIDIwKSAgICAvKrmkvt/P8k5MQVBETbeiy83S7LOjyv2+3cfrx/PP+8+iKi8NCisjZGVmaW5lIE5MQVBETV9UT09MX0lfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShOTEFQRE1fRVZFTlRfQkFTRSArIDIxKSAgICAvKk5MQVBETc/yuaS+37eiy83It8jPyv2+3cnPsajWuMq+z/vPoiovDQorDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgTkdNQUPP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBOR01BQ19TVEFSVF9FViAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDApICAgIC8qTkdNQUPEo7/pxvS2ryovDQorI2RlZmluZSBOR01BQ19OR1JMQ19QREFOX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDEpICAgIC8qTkdNQUO4+E5HUkxDt6LLzVBEQU7P+8+iKi8NCisjZGVmaW5lIE5HTUFDX05HUkxDX0RBVEFfSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgMikgICAgLypOR01BQ7j4TkdSTEO3osvNVVBMSU5Lyv2+3b/pKi8NCisjZGVmaW5lIE5HUkxDX05HTUFDX1BVQU5fSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgMykgICAgLypOR1JMQ7j4TkdNQUO3osvNUFVBTrXEss7K/SovDQorI2RlZmluZSBOR01BQ19OR1JMQ19VTFRCRl9SRUxfSU5EX0VWICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDQpICAgIC8qTkdNQUPNqNaqTkdSTEPKzbfFVVBMSU5LIFRCRiovDQorI2RlZmluZSBOR1JMQ19OR01BQ19GQklfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDUpICAgIC8qUkxDt8fIt8jPxKPKvaOsTkdSTEPNqNaqTkdNQUPX7tbVv+nS0beis/ajrE5HTUFDtci0/VBDQSovDQorI2RlZmluZSBOR01BQ19OR1JMQ19ETFRCRl9SRUxfSU5EX0VWICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDYpICAgIC8qUkxDt8fIt8jPxKPKvaOsTkdNQUPNqNaqTkdSTEPKzbfFVEJGKi8NCisjZGVmaW5lIE5HUkxDX05HTUFDX0RMVEJGX1JFTF9JTkRfRVYgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgNykgICAgLypSTEPIt8jPxKPKvaOsTkdSTEPNqNaqTkdNQUPKzbfFRE9XTkxJTksgVEJGKi8NCisjZGVmaW5lIE5HUkxDX05HTUFDX1VMVEJGX1JFTF9JTkRfRVYgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgOCkgICAgLypOR1JMQ82o1qpOR01BQ9Lss6PKzbfFVVBMSU5LIFRCRiovDQorI2RlZmluZSBOR01BQ19OR1JMQ19QQ0FfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDkpICAgIC8qTkdNQUPNqNaqTkdSTEMgRE9XTkxJTktfVEJG0tG+rc3qyKu1w7W9yLfIzyovDQorI2RlZmluZSBUT09MX05HTUFDX1BVQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDEwKSAgICAvKlRPT0y4+E5HTUFDt6LLzVBVQSovDQorI2RlZmluZSBOR01BQ19UT09MX1BSUl9JTkRfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDExKSAgICAvKk5HTUFDuPhUT09Mt6LLzVBSUqOsx+m/9rD8wKijuklETEXMrL2owaK1xFVQTElOSyBUQkaholVMT05VTLXEVEJGoaJVTE9OREy1xFRCRiovDQorI2RlZmluZSBOR01BQ19UT09MX1BEQU5fSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDEyKSAgICAvKk5HTUFDuPhUT09Mt6LLzVBEQU7P+8+io6y99tTa0OjSqr2owaJVTE9OREwgVEJGyrGyxbeiKi8NCisjZGVmaW5lIFRPT0xfTkdNQUNfUFVBTl9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgMTMpICAgIC8qVE9PTLj4TkdNQUO3osvNUFVBTqOsvfbU2rHgwuu3vcq9oaK0sL/atPPQoaGiUkVTRUdNRU5Utci4xLHkyrGyxbeiKi8NCisjZGVmaW5lIFRPT0xfTkdNQUNfUERBX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgMTQpICAgIC8qVE9PTLj4TkdNQUO3osvNUERBKi8NCisjZGVmaW5lIE5HTUFDX1RPT0xfUENBX0lORF9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgMTUpICAgIC8qTkdNQUO4+FRPT0y3osvNUENBo6zWuMP3vdPI68Dg0M3S1LHjVE9PTLSmwO0qLw0KKyNkZWZpbmUgTkdNQUNfVE9PTF9QQ1I4X0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5HTUFDX0VWRU5UX0JBU0UgKyAxNikgICAgLypOR01BQ7j4VE9PTLeiy81QQ1KjrNa4w/e908jrwODQzdLUseNUT09MtKbA7SovDQorI2RlZmluZSBOR01BQ19UT09MX1BDUjExX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDE3KSAgICAvKk5HTUFDuPhUT09Mt6LLzVBDUqOs1rjD973TyOvA4NDN0tSx41RPT0y0psDtKi8NCisjZGVmaW5lIE5HTUFDX1RPT0xfQ1JfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgMTgpICAgIC8qTkdNQUO4+FRPT0y3osvNQ1KjrNa4w/e908jrwODQzdLUseNUT09MtKbA7SovDQorI2RlZmluZSBOR01BQ19UT09MX0RMVEJGX1JFTF9JTkRfRVYgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDE5KSAgICAvKk5HTUFDzajWqlRPT0zKzbfFRE9XTkxJTksgVEJGKi8NCisjZGVmaW5lIE5HTUFDX1RPT0xfVUxUQkZfUkVMX0lORF9FViAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgMjApICAgIC8qTkdNQUPNqNaqVE9PTMrNt8VVUExJTksgVEJGKi8NCisjZGVmaW5lIE5HTUFDX1RPT0xfVExMSV9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgMjEpICAgIC8q0ruyvb3TyOuz5c27veK+9rn9s8yjrE5HTUFDuPhUT09Mx+vH80NPTlRfUkVTX1RMTEkqLw0KKyNkZWZpbmUgVE9PTF9OR01BQ19UTExJX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5HTUFDX0VWRU5UX0JBU0UgKyAyMikgICAgLyrSu7K9vdPI67Plzbu94r72uf2zzKOsVE9PTLj4TkdNQUO3osvNQ09OVF9SRVNfVExMSSovDQorI2RlZmluZSBUT09MX05HTUFDX0lNTV9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDIzKSAgICAvKlRPT0y4+E5HTUFDt6LLzcGivLTJ6LaoKi8NCisjZGVmaW5lIFRPT0xfTkdNQUNfSU1NX0VYX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgMjQpICAgIC8qVE9PTLj4TkdNQUO3osvNwKnVucGivLTJ6LaoKi8NCisjZGVmaW5lIFRPT0xfTkdNQUNfSU1NX1JFSl9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgMjUpICAgIC8qVE9PTLj4TkdNQUO3osvNwaK8tMnotqi+3L74Ki8NCisjZGVmaW5lIEwxX05HTUFDX0RBVEFfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgMjYpICAgIC8qTDFfU0lNVbDRtNNMMUe908rVtb21xMnP0NDK/b7dt6LLzbW9TUFDX04qLw0KKyNkZWZpbmUgTkdNQUNfTkdNQUNfVE1TX0ZCSV9FWFBfRVYgICAgICAgICAgICAgICAoRFdPUkQpKE5HTUFDX0VWRU5UX0JBU0UgKyAyNykgICAgLypGQkm2qMqxxvezrMqxKi8NCisjZGVmaW5lIE5HTUFDX05HTUFDX1RNU19GQUlfRVhQX0VWICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgMjgpICAgIC8qRkFJtqjKscb3s6zKsSovDQorI2RlZmluZSBUT09MX05HTUFDX1BNT19SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDI5KSAgICAvKlRPT0y4+E5HTUFDt6LLzVBNTyovDQorI2RlZmluZSBUT09MX05HTUFDX1BTSV9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDMwKSAgICAvKlRPT0y4+E5HTUFDt6LLzVBTSSovDQorI2RlZmluZSBOR01BQ19UT09MX01TQUNDX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDMxKSAgICAvKk5HTUFDz/JUT09Mx+vH81VQTElOSyBUQka9qMGiu/LH68fzvajBolJSway90yovDQorI2RlZmluZSBUT09MX05HTUFDX1VMVEJGX0VTVF9DRkdfRVYgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDMyKSAgICAvKlRPT0zF5NbDTkdNQUO1xFVMVEJGss7K/SovDQorI2RlZmluZSBUT09MX05HTUFDX0RMVEJGX0VTVF9DRkdfRVYgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDMzKSAgICAvKlRPT0zF5NbDTkdNQUO1xERMVEJGss7K/SovDQorI2RlZmluZSBUT09MX05HTUFDX1VMVEJGX1JFTF9DRkdfRVYgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDM0KSAgICAvKlRPT0zKzbfFTkdNQUO1xFVMVEJGss7K/SovDQorI2RlZmluZSBUT09MX05HTUFDX0RMVEJGX1JFTF9DRkdfRVYgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDM1KSAgICAvKlRPT0zKzbfFTkdNQUO1xERMVEJGss7K/SovDQorI2RlZmluZSBUT09MX05HTUFDX1BLVFRTUkVDRkdfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDM2KSAgICAvKlRPT0zSqsfzTkdNQUO3osvNUEFDS0VUX1RJTUVTTE9UX1JFQ09ORklHVVJFtb3K1rv6suAqLw0KKyNkZWZpbmUgVE9PTF9OR01BQ19QS1RUQkZSRUxfUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKE5HTUFDX0VWRU5UX0JBU0UgKyAzNykgICAgLypUT09M0qrH805HTUFDt6LLzVBBQ0tFVF9UQkZfUkVMRUFTRbW9yta7+rLgKi8NCisjZGVmaW5lIFRPT0xfTkdNQUNfUEtUUERDSFJFTF9SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgMzgpICAgIC8qVE9PTNKqx/NOR01BQ7eiy81QQUNLRVRfUERDSF9SRUxFQVNFz/vPoiovDQorI2RlZmluZSBUT09MX05HTUFDX1BLVENDQ19SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDM5KSAgICAvKlRPT0zSqsfzTkdNQUO3osvNUEFDS0VUIENFTEwgQ0hBTkdFIENPTlRJTlVFKi8NCisjZGVmaW5lIFRPT0xfTkdNQUNfUEtUQ0NPX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgNDApICAgIC8qVE9PTMfrx/NOR01BQ7eiy81QQUNLRVQgQ0VMTCBDSEFOR0UgT1JERVIqLw0KKyNkZWZpbmUgVE9PTF9OR01BQ19QS1ROQ0RfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKE5HTUFDX0VWRU5UX0JBU0UgKyA0MSkgICAgLypUT09Mx+vH805HTUFDt6LLzVBBQ0tFVCBORUlHSEJPVVIgQ0VMTCBEQVRBKi8NCisjZGVmaW5lIFRPT0xfTkdNQUNfUEtUUE9MTF9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgNDIpICAgIC8qVE9PTMfrx/NOR01BQ7eiy81QQUNLRVQgUE9MTElORyBSRVFVRVNUKi8NCisjZGVmaW5lIFRPT0xfTkdNQUNfUEtUUFdSQ1RSTFRBX1JFUV9FViAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgNDMpICAgIC8qVE9PTMfrx/NOR01BQ7eiy81QQUNLRVQgUE9XRVIgQ1RSTC9UQSovDQorI2RlZmluZSBUT09MX05HTUFDX1BLVFBSQUNIUEFSQV9SRVFfRVYgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDQ0KSAgICAvKlRPT0zH68fzTkdNQUO3osvNUEFDS0VUIFBSQUNIIFBBUkFNRVRFUlMqLw0KKyNkZWZpbmUgVE9PTF9OR01BQ19QS1RTQ0RfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKE5HTUFDX0VWRU5UX0JBU0UgKyA0NSkgICAgLypUT09Mx+vH805HTUFDt6LLzVBBQ0tFVCBTRVJWRSBDRUxMIERBVEEqLw0KKyNkZWZpbmUgVE9PTF9OR01BQ19QS1RRVUVOT1RJX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKE5HTUFDX0VWRU5UX0JBU0UgKyA0NikgICAgLypUT09Mx+vH805HTUFDt6LLzVBBQ0tFVCBRVUVVSU5HIE5PVElGSUNBVElPTiovDQorI2RlZmluZSBUT09MX05HTUFDX1BLVEFDQ1JFSl9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDQ3KSAgICAvKlRPT0zH68fzTkdNQUO3osvNt9bX6b3TyOu+3L74Ki8NCisjZGVmaW5lIE5HTUFDX1RPT0xfUEtUTUVBUlBUX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgNDgpICAgIC8qTkdNQUO908rVtb1NUyBQQUNLRVQgTUVBUyBSRVBPUlQguvO3osvNtb1UT09MKi8NCisjZGVmaW5lIE5HTUFDX1RPT0xfUEtUTU9CVEJGU1RBX0VWICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgNDkpICAgIC8qTkdNQUO908rVtb1NUyBQQUNLRVQgTU9CSUxFIFRCRiBTVEFUVVO687eiy821vbmkvt8qLw0KKyNkZWZpbmUgTkdNQUNfVE9PTF9QS1RQU0lTVEFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5HTUFDX0VWRU5UX0JBU0UgKyA1MCkgICAgLypOR01BQ73TytW1vU1TIFBBQ0tFVCBQU0kgU1RBVFVTuvO3osvNtb1UT09MKi8NCisjZGVmaW5lIE5HTUFDX1RPT0xfUEtUUEFVU0VfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgNTEpICAgIC8qTkdNQUO908rVtb1NUyBQQUNLRVQgUEFVU0W687eiy83P+8+itb1UT09MKi8NCisjZGVmaW5lIE5HTUFDX1RPT0xfUEtURU1FQVJQVF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgNTIpICAgIC8qTkdNQUO908rVtb1NUyBQQUNLRVQgRU5IQU5DRUQgTUVBUyBSRVBPUlS687eiy821vbmkvt8qLw0KKyNkZWZpbmUgTkdNQUNfVE9PTF9QS1RBRERNU1JBQ19FViAgICAgICAgICAgICAgICAoRFdPUkQpKE5HTUFDX0VWRU5UX0JBU0UgKyA1MykgICAgLypOR01BQ73TytW1vU1TIFBBQ0tFVCBBRERJVElPTiBNUyBSQUO687eiy821vVRPT0wqLw0KKyNkZWZpbmUgTkdNQUNfVE9PTF9QS1RDQ05fRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5HTUFDX0VWRU5UX0JBU0UgKyA1NCkgICAgLypOR01BQ73TytW1vU1TIFBBQ0tFVCBDRUxMIENIQU5HRSBOT1RJRklDQVRJT06687eiy821vbmkvt8qLw0KKyNkZWZpbmUgTkdNQUNfVE9PTF9QS1RTSVNUQV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5HTUFDX0VWRU5UX0JBU0UgKyA1NSkgICAgLypOR01BQ73TytW1vU1TIFBBQ0tFVCBTSSBTVEFUVVO687eiy821vbmkvt8qLw0KKyNkZWZpbmUgR01BQ19HRVRfQkxPQ0tTX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5HTUFDX0VWRU5UX0JBU0UgKyA1NikgICAgLypHTUFDt6LLzcnP0NDK/b7dyrG199PDuq/K/U1BQ19HRVRfQkxPQ0tTLM6q1Pa801RSQUNFzO2807XEysK8/rrFKi8NCisjZGVmaW5lIEdNQUNfQUNLX0JMT0NLU19FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgNTcpICAgIC8qTDFHtffTw01BQ19BQ0tfQkxPQ0tTyrHOqtT2vNPQxcHuuPrX2bb41Pa807XEysK8/rrFKi8NCisjZGVmaW5lIFRPT0xfTkdNQUNfUEtUUEdSRVFfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgNTgpDQorI2RlZmluZSBUT09MX05HTUFDX0NUUkxCTE9DS19SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDU5KQ0KKyNkZWZpbmUgTkdNQUNfVE9PTF9DQ0ZfSU5EX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5HTUFDX0VWRU5UX0JBU0UgKyA2MCkgICAgLypOR01BQ8/yVE9PTLeiy821xFBBQ0tFVCBDRUxMIENIQU5HRSBGQUlMVVJFz/vPoiovDQorI2RlZmluZSBOR01BQ19OR1JMQ19FUERBTl9JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDYxKSAgICAvKk5HTUFDuPhOR1JMQ7eiy81FUERBTs/7z6IqLw0KKyNkZWZpbmUgVE9PTF9OR01BQ19QU0hPQ01EX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE5HTUFDX0VWRU5UX0JBU0UgKyA2MikgICAgLypUT09Mx+vH805HTUFDt6LLzVBzIEhhbmRvdmVyIENvbW1hbmQqLw0KKyNkZWZpbmUgVE9PTF9OR01BQ19QUElfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5HTUFDX0VWRU5UX0JBU0UgKyA2MykgICAgLypUT09Mx+vH805HTUFDt6LLzVBhY2tldCBQaHlzaWNhbCBJbmZvcm1hdGlvbiovDQorI2RlZmluZSBUT09MX05HTUFDX1BTSE9fVUxUQkZfQ0ZHX0VWICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDY0KSAgICAvKlRPT0zF5NbDTkdNQUO1xFBTSE8gxL+x6tChx/hVTFRCRrLOyv0qLw0KKyNkZWZpbmUgVE9PTF9OR01BQ19QU0hPX0RMVEJGX0NGR19FViAgICAgICAgICAgICAoRFdPUkQpKE5HTUFDX0VWRU5UX0JBU0UgKyA2NSkgICAgLypUT09MxeTWw05HTUFDtcRQU0hPIMS/serQocf4RExUQkayzsr9Ki8NCisjZGVmaW5lIFRPT0xfTkdNQUNfUFNIT19SRVRVUk5fRVYgICAgICAgICAgICAgICAgKERXT1JEKShOR01BQ19FVkVOVF9CQVNFICsgNjYpICAgIC8qVE9PTCDNqNaqTkdNQUMg18rUtLvYzcsqLw0KKyNkZWZpbmUgVE9PTF9OR01BQ19QU0hPX1JFTF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5HTUFDX0VWRU5UX0JBU0UgKyA2NykgICAgLypUT09MIM2o1qpOR01BQyDH5bP9UFNITyDH0Lu718rUtCovDQorI2RlZmluZSBOR01BQ19UT09MX1BTSE9fQUNDX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDY4KSAgICAvKk5HTUFDz/JUT09Mx+vH81BhY2tldCBQaHlzaWNhbCBJbmZvcm1hdGlvbiovDQorI2RlZmluZSBUT09MX05HTUFDX1BLVFNDRUxMU0lfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDY5KSAgICAvKlRPT0zH68fzTkdNQUO3osvNUEFDS0VUIFNFUlZJTkcgQ0VMTCBTSSovDQorI2RlZmluZSBUT09MX05HTUFDX1BLVEFQUElORl9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoTkdNQUNfRVZFTlRfQkFTRSArIDcwKSAgICAvKlRPT0zH68fzTkdNQUO3osvNUEFDS0VUIEFQUExJQ0FUSU9OIElORk9STUFUSU9OKi8NCisNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBOTExDz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgVE9PTF9OTExDX1NUQVJUX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5MTENfRVZFTlRfQkFTRSArIDApICAgIC8qTkxMQ8Sjv+nG9LavKi8NCisjZGVmaW5lIE5MTENfTlJMQ19VTklUREFUQV9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShOTExDX0VWRU5UX0JBU0UgKyAxKSAgICAvKs2o1qpOUkxD0tS3x8i3yM/Eo8q9tKvK5ExMQy1QRFUqLw0KKyNkZWZpbmUgTlJMQ19OTExDX0RBVEFfSU5EX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5MTENfRVZFTlRfQkFTRSArIDIpICAgIC8qUkxDLU7Jz7GoTExDLU6908rVtb3By9K7uPbIt8jPxKPKvbXEyc/Q0ExMQyBQRFUqLw0KKyNkZWZpbmUgTlJMQ19OTExDX1VOSVREQVRBX0lORF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKE5MTENfRVZFTlRfQkFTRSArIDMpICAgIC8qUkxDLU7Jz7GoTExDLU6908rVtb3By9K7uPa3x8i3yM/Eo8q9tcTJz9DQTExDIFBEVSovDQorI2RlZmluZSBUT09MX05MTENfQVNTSUdOX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTkxMQ19FVkVOVF9CQVNFICsgNCkgICAgLyq5pL7fzajWqiBOTExD09DQwrXEvNPD3Mvjt6i6zbLOyv2jrNLUvLC31sXkVExMSSovDQorI2RlZmluZSBUT09MX05MTENfVU5JVERBVEFfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoTkxMQ19FVkVOVF9CQVNFICsgNSkgICAgLyrJz7LjzajWqk5MTEOy47bUyc+y41BEVbXE08PO3tOmtPC0q8rkKi8NCisjZGVmaW5lIE5MTENfVE9PTF9VTklUREFUQV9JTkRfRVYgICAgICAgICAgICAgICAgKERXT1JEKShOTExDX0VWRU5UX0JBU0UgKyA2KSAgICAvKk5MTEOy48/yyc+y47Sry83S1LfHyLfIz8Sjyr2908rVtb21xEwzX1BEVSovDQorI2RlZmluZSBUT09MX05MTENfREFUQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTkxMQ19FVkVOVF9CQVNFICsgNykgICAgLyrJz7LjzajWqk5MTEOy47bUyc+y41BEVbXEyLfIz7SryuQqLw0KKyNkZWZpbmUgTkxMQ19UT09MX0ZSTVJfUlNQX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5MTENfRVZFTlRfQkFTRSArIDgpICAgIC8qytW1vb7cvvjWoSovDQorI2RlZmluZSBOTExDX1RPT0xfREFUQV9JTkRfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTkxMQ19FVkVOVF9CQVNFICsgOSkgICAgLypOTExDz/LJz7LjtKvLzb3TytW1vbXEyv2+3SovDQorI2RlZmluZSBUT09MX05MTENfREFUQV9SU1BfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTkxMQ19FVkVOVF9CQVNFICsgMTApICAgIC8quaS+37Lgz+zTpsrVtb21xMr9vt0qLw0KKyNkZWZpbmUgVE9PTF9OTExDX0VTVEFCTElTSF9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKE5MTENfRVZFTlRfQkFTRSArIDExKSAgICAvKtPD09rOqk5MTEOy49bQ0ru49lNBUEm9qMGiu/LW2L2oQUJNuaTX98Sjyr0qLw0KKyNkZWZpbmUgVE9PTF9OTExDX0VTVEFCTElTSF9SU1BfRVYgICAgICAgICAgICAgICAoRFdPUkQpKE5MTENfRVZFTlRfQkFTRSArIDEyKSAgICAvKsnPsuPU2r3TytW1vUxMX0VTVEFCTElTSNa4yr7UrdPv1q6688q508Mu1vfSqsrH0K3JzFhJRLLOyv0qLw0KKyNkZWZpbmUgTkxMQ19UT09MX1VBX1JTUF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5MTENfRVZFTlRfQkFTRSArIDEzKSAgICAvKsrVtb1VQbe1u9gqLw0KKyNkZWZpbmUgTkxMQ19UT09MX0VTVEFCTElTSF9JTkRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKE5MTENfRVZFTlRfQkFTRSArIDE0KSAgICAvKtPD09rNqNaqyc+y47LjttROTExDsuPW0LXE0ru49lNBUEnS0b6tvajBorvy0tG+rdbYvajG8MHLQUJNuaTX98Sjyr0qLw0KKyNkZWZpbmUgVE9PTF9OTExDX1JFTEVBU0VfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKE5MTENfRVZFTlRfQkFTRSArIDE1KSAgICAvKtPD09rKzbfFzqpOTExDsuPW0LXExLO49lNBUEm1xEFCTbmk1/fEo8q9Ki8NCisjZGVmaW5lIE5MTENfVE9PTF9ETV9SU1BfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShOTExDX0VWRU5UX0JBU0UgKyAxNikgICAgLyrK1bW9RE23tbvYKi8NCisjZGVmaW5lIE5MTENfVE9PTF9SRUxFQVNFX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShOTExDX0VWRU5UX0JBU0UgKyAxNykgICAgLyrTw9Pa1rjKvk5MTEOy49bQtcTEs7j2U0FQSbXEQUJNuaTX98Sjyr3S0bG7ys23xSovDQorI2RlZmluZSBUT09MX05MTENfUkVMRUFTRV9SU1BfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoTkxMQ19FVkVOVF9CQVNFICsgMTgpICAgIC8q08PT2rmkvt/NqNaqTkxMQ7e1u9izybmmys23xc/s06YqLw0KKyNkZWZpbmUgVE9PTF9OTExDX1hJRF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5MTENfRVZFTlRfQkFTRSArIDE5KSAgICAvKrmkvt/NqNaqTkxMQ7eixvCyzsr90K3JzMfrx/MqLw0KKyNkZWZpbmUgVE9PTF9OTExDX1hJRF9SU1BfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5MTENfRVZFTlRfQkFTRSArIDIwKSAgICAvKrmkvt/NqNaqTkxMQ7eixvCyzsr90K3JzM/s06YqLw0KKyNkZWZpbmUgTkxMQ19UT09MX1hJRF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5MTENfRVZFTlRfQkFTRSArIDIxKSAgICAvKtPD09rIt8jPyc+y41hJRLLOyv3QrcnMzeqzySovDQorI2RlZmluZSBOTExDX1RPT0xfWElEX0lORF9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTkxMQ19FVkVOVF9CQVNFICsgMjIpICAgIC8q08PT2ta4yr7Jz7Ljyta7+rLg09BYSUSyzsr90OjSqtCtycwqLw0KKyNkZWZpbmUgTkxMQ19UT09MX05VTExfSU5EX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5MTENfRVZFTlRfQkFTRSArIDIzKSAgICAvKtPD09rWuMq+yc+y48rWu/qy4NPQTlVMTNahKi8gDQorDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgTlJMQ8/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIE5STENfREFUQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShOUkxDX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgTlJMQ19VTklUREFUQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBOUkxDX0FTU0lHTl9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTlJMQ19FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIFRPT0xfTkdSTENfVUxUQkZfRVNUX0NGR19FViAgICAgICAgICAgICAgKERXT1JEKShOUkxDX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgVE9PTF9OR1JMQ19QVUFOX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBUT09MX05HUkxDX0RMVEJGX0NGR19FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTlJMQ19FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIE5HUkxDX1RPT0xfRExUQkZfSEFMRl9JTkRfRVYgICAgICAgICAgICAgKERXT1JEKShOUkxDX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgTkdSTENfVE9PTF9ETFRCRl9GSU5BTF9JTkRfRVYgICAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDcpDQorI2RlZmluZSBOR1JMQ19UT09MX1VMVEJGX0hBTEZfSU5EX0VWICAgICAgICAgICAgIChEV09SRCkoTlJMQ19FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIE5HUkxDX1RPT0xfVUxUQkZfRklOQUxfSU5EX0VWICAgICAgICAgICAgKERXT1JEKShOUkxDX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgVE9PTF9OR1JMQ19VTFRCRl9SRUxfQ0ZHX0VWICAgICAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDEwKQ0KKyNkZWZpbmUgTkdSTENfVE9PTF9VTFRCRl9GQUlfSU5EX0VWICAgICAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDExKQ0KKyNkZWZpbmUgVE9PTF9OR1JMQ19ETFRCRl9SRUxfQ0ZHX0VWICAgICAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDEyKQ0KKyNkZWZpbmUgVE9PTF9OR1JMQ19ETFRCRl9FU1RfQ0ZHX0VWICAgICAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDEzKQ0KKyNkZWZpbmUgVE9PTF9OR1JMQ19FWFRCRl9PTl9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDE0KQ0KKyNkZWZpbmUgVE9PTF9OR1JMQ19FWFRCRl9PRkZfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDE1KQ0KKyNkZWZpbmUgTkdSTENfVE9PTF9ETFRCRl9UUklHR0VSX0lORF9FViAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDE2KQ0KKyNkZWZpbmUgTkdSTENfU1RBUlRfVElNRVJfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDE3KSAgICAvKsTasr/P+8+io6zG5Mv7xKO/6bK7u+HKudPDKi8NCisjZGVmaW5lIE5HUkxDX1RPT0xfRExUQkZfRkFJX0lORF9FViAgICAgICAgICAgICAgKERXT1JEKShOUkxDX0VWRU5UX0JBU0UgKyAxOCkNCisjZGVmaW5lIFRPT0xfTkdSTENfQkVHSU5URVNUX01PREVfRVYgICAgICAgICAgICAgKERXT1JEKShOUkxDX0VWRU5UX0JBU0UgKyAxOSkNCisjZGVmaW5lIE5HUkxDX1RPT0xfUERBTk5PVElGWV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShOUkxDX0VWRU5UX0JBU0UgKyAyMCkNCisjZGVmaW5lIE5HUkxDX05HUkxDX1BVQU5fUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShOUkxDX0VWRU5UX0JBU0UgKyAyMSkgIA0KKyNkZWZpbmUgTkdSTENfRklMTF9EQVRBX1FVRVVFX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDIyKQ0KKyNkZWZpbmUgTDFTSU1VX05HUkxDX0RBVEFfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDIzKQ0KKyNkZWZpbmUgVE9PTF9OR1JMQ19NT0RFX0NGR19SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDI0KQ0KKyNkZWZpbmUgTkdSTENfVE9PTF9VTF9EQVRBX0JMT0NLX0lORF9FViAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDI1KQ0KKyNkZWZpbmUgVE9PTF9OR1JMQ19EVU1NWUJMT0NLX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDI2KQ0KKyNkZWZpbmUgRE9XTkxJTktfRFVNTVlfQkxPQ0tfUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDI3KQ0KKyNkZWZpbmUgVE9PTF9OR1JMQ19ET1dOTElOS19CTE9DS19SRVFfRVYgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDI4KQ0KKyNkZWZpbmUgVE9PTF9OR1JMQ19QU0hPX1VMVEJGX0NGR19FViAgICAgICAgICAgICAoRFdPUkQpKE5STENfRVZFTlRfQkFTRSArIDI5KS8qVE9PTMXk1sNOR1JMQ7XEUFNITyDEv7Hq0KHH+FVMVEJGss7K/SovDQorI2RlZmluZSBUT09MX05HUkxDX1BTSE9fRExUQkZfQ0ZHX0VWICAgICAgICAgICAgIChEV09SRCkoTlJMQ19FVkVOVF9CQVNFICsgMzApLypUT09MxeTWw05HUkxDtcRQU0hPIMS/serQocf4RExUQkayzsr9Ki8NCisjZGVmaW5lIFRPT0xfTkdSTENfUFNIT19SRVRVUk5fRVYgICAgICAgICAgICAgICAgKERXT1JEKShOUkxDX0VWRU5UX0JBU0UgKyAzMSkvKlRPT0wgzajWqk5HUkxDINfK1LS72M3LKi8NCisjZGVmaW5lIFRPT0xfTkdSTENfUFNIT19SRUxfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShOUkxDX0VWRU5UX0JBU0UgKyAzMikvKlRPT0wgzajWqk5HTUFDIMfls/1QU0hPIMfQu7vXytS0Ki8NCisjZGVmaW5lIE5HUkxDX1RPT0xfUFNIT1NVQ0NfSU5EX0VWICAgICAgICAgICAgICAgKERXT1JEKShOUkxDX0VWRU5UX0JBU0UgKyAzMykvKk5HUkxDIM2o1qpUT09MIFBTSE8gs8m5piovDQorI2RlZmluZSBOR1JMQ19OR01BQ19QU0hPU1VDQ19JTkRfRVYgICAgICAgICAgICAgIChEV09SRCkoTlJMQ19FVkVOVF9CQVNFICsgMzQpLypOR1JMQyDNqNaqTkdNQUMgUFNITyCzybmmKi8NCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBVUlJDuq/K/dDFwe64+tfZz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgVVJSQ19GVU5DX0dFVF9SRVBMTU5fUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRlVOQ19FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIFVSUkNfRlVOQ19HRVRfUkVQTE1OX0NORl9FViAgICAgICAgICAgICAgKERXT1JEKShVUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBVUlJDX0ZVTkNfQ0hFQ0tfUExNTl9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19GVU5DX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgVVJSQ19GVU5DX0NIRUNLX0xBSV9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRlVOQ19FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIFVSUkNfRlVOQ19FTlRFUl9JRExFX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShVUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBVUlJDX0ZVTkNfUkVBRF9TSUJfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19GVU5DX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgVVJSQ19GVU5DX1JFQURfU0lCX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRlVOQ19FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIFVSUkNfRlVOQ19TRVJfQ0VMTF9JTkRfRVYgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDcpDQorI2RlZmluZSBVUlJDX0ZVTkNfU1lTSU5GT19NT0RJRllfUkVRX0VWICAgICAgICAgIChEV09SRCkoVVJSQ19GVU5DX0VWRU5UX0JBU0UgKyA4KQ0KKyNkZWZpbmUgVVJSQ19GVU5DX1NFVF9TRVJWQ0VMTF9SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRlVOQ19FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIFVSUkNfRlVOQ19NRUFTX09OX1JBQ0hfUkVRX0VWICAgICAgICAgICAgKERXT1JEKShVUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDEwKQ0KKyNkZWZpbmUgVVJSQ19GVU5DX1NUQVJUX01FQVNfUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRlVOQ19FVkVOVF9CQVNFICsgMTEpDQorI2RlZmluZSBVUlJDX0ZVTkNfREVMX01FQVNfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19GVU5DX0VWRU5UX0JBU0UgKyAxMikNCisjZGVmaW5lIFVSUkNfRlVOQ19QQUdJTkdfVFlQRTFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDEzKQ0KKyNkZWZpbmUgVVJSQ19GVU5DX1JFU0VMX0lETEVfUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRlVOQ19FVkVOVF9CQVNFICsgMTQpDQorI2RlZmluZSBVUlJDX0ZVTkNfR0VUX1VFX0NBUF9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19GVU5DX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIFVSUkNfRlVOQ19DRkdfUENIX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDE2KQ0KKyNkZWZpbmUgVVJSQ19GVU5DX0NGR19QQ0hfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRlVOQ19FVkVOVF9CQVNFICsgMTcpDQorI2RlZmluZSBVUlJDX0ZVTkNfUkVMX0ZBQ0hfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19GVU5DX0VWRU5UX0JBU0UgKyAxOCkNCisjZGVmaW5lIFVSUkNfRlVOQ19SRUxfRkFDSF9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShVUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDE5KQ0KKyNkZWZpbmUgVVJSQ19GVU5DX1JFTF9QQ0hfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRlVOQ19FVkVOVF9CQVNFICsgMjApDQorI2RlZmluZSBVUlJDX0ZVTkNfUkVMX1BDSF9DTkZfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19GVU5DX0VWRU5UX0JBU0UgKyAyMSkNCisjZGVmaW5lIFVSUkNfRlVOQ19TRU5EX1NJTkdMRV9CVUZfTVNHX0VWICAgICAgICAgKERXT1JEKShVUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDIyKQ0KKyNkZWZpbmUgVVJSQ19GVU5DX1NFTkRfQ1NfQlVGX01TR19FViAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRlVOQ19FVkVOVF9CQVNFICsgMjMpDQorI2RlZmluZSBVUlJDX0ZVTkNfUkVMX1NDQ1BDSF9TVE9QX01BQ19SRVFfRVYgICAgIChEV09SRCkoVVJSQ19GVU5DX0VWRU5UX0JBU0UgKyAyNCkNCisjZGVmaW5lIFVSUkNfRlVOQ19SRVNVTUVfRkFDSF9DRkdfUkVRX0VWICAgICAgICAgKERXT1JEKShVUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDI1KQ0KKyNkZWZpbmUgVVJSQ19GVU5DX1JFTF9TRVJfQ0VMTF9CQ0hfUkVRX0VWICAgICAgICAoRFdPUkQpKFVSUkNfRlVOQ19FVkVOVF9CQVNFICsgMjYpDQorI2RlZmluZSBVUlJDX0ZVTkNfUkVTVEFSVF9TQ0VMTF9TSUI3X1RJTUVSX0VWICAgIChEV09SRCkoVVJSQ19GVU5DX0VWRU5UX0JBU0UgKyAyNykNCisjZGVmaW5lIFVSUkNfRlVOQ19SRVNVTUVfUkVBRF9TRVJfQ0VMTF9CQ0hfRVYgICAgKERXT1JEKShVUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDI4KQ0KKyNkZWZpbmUgVVJSQ19GVU5DX1NUT1BfU1lTSU5GT19FViAgICAgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRlVOQ19FVkVOVF9CQVNFICsgMjkpDQorI2RlZmluZSBVUlJDX0ZVTkNfUkVBRF9DR0lJTkZPX0VWICAgICAgICAgICAgICAgIChEV09SRCkoVVJSQ19GVU5DX0VWRU5UX0JBU0UgKyAzMCkNCisjZGVmaW5lIFVSUkNfRlVOQ19NRUFTX1RPTlVMTF9SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShVUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDMxKQ0KKyNkZWZpbmUgVVJSQ19GVU5DX01FQVNfTEVBVkUzR19SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKFVSUkNfRlVOQ19FVkVOVF9CQVNFICsgMzIpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgVEFGuq/K/dDFwe64+tfZz/vPorrFtqjS5SAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgVEFGX0ZVTkNfTDFHX0RBVEFfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFRBRl9GVU5DX0VWRU5UX0JBU0UgKyAwKQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIEwxR9DFwe64+tfZz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgTDFHX1NUX01FQVNfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxR19TVF9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIEwxR19TVF9NRUFTX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMUdfU1RfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBMMUdfU1RfRkNCX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFHX1NUX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgTDFHX1NUX0ZDQl9SRVNVTFRfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxR19TVF9FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIEwxR19TVF9TWU5DX1NCX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMUdfU1RfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBMMUdfU1RfQlNJQ19TQl9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFHX1NUX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgTDFHX1NUX1NCX1JFU1VMVF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxR19TVF9FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIEwxR19TVF9SWF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMUdfU1RfRVZFTlRfQkFTRSArIDcpDQorI2RlZmluZSBMMUdfU1RfUlhfRVFVX0RBVEFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFHX1NUX0VWRU5UX0JBU0UgKyA4KQ0KKyNkZWZpbmUgTDFHX1NUX1JYX0RBVEFfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxR19TVF9FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIEwxR19TVF9SQUNIX0VWICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMUdfU1RfRVZFTlRfQkFTRSArIDEwKQ0KKyNkZWZpbmUgTDFHX1NUX1NEQ0NIX1RYX0RBVEFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxR19TVF9FVkVOVF9CQVNFICsgMTEpDQorI2RlZmluZSBMMUdfU1RfU0FDQ0hfVFhfREFUQV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFHX1NUX0VWRU5UX0JBU0UgKyAxMikNCisjZGVmaW5lIEwxR19TVF9TQUNDSF9SWF9EQVRBX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShMMUdfU1RfRVZFTlRfQkFTRSArIDEzKQ0KKyNkZWZpbmUgTDFHX1NUX0ZBQ0NIX1RYX0RBVEFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxR19TVF9FVkVOVF9CQVNFICsgMTQpDQorI2RlZmluZSBMMUdfU1RfRkFDQ0hfUlhfREFUQV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFHX1NUX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIEwxR19TVF9EU19UWF9EQVRBX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMUdfU1RfRVZFTlRfQkFTRSArIDE2KQ0KKyNkZWZpbmUgTDFHX1NUX0RTX1JYX0RBVEFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxR19TVF9FVkVOVF9CQVNFICsgMTcpDQorI2RlZmluZSBMMUdfU1RfVENIX0NUUkxfREFUQV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFHX1NUX0VWRU5UX0JBU0UgKyAxOCkNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBHUlK6r8r9uPrX2crCvP66xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIEdSUl9GVU5DX1NVU1BFTkRfVVRSQU5fTUVBU19FViAgICAgICAgICAgKERXT1JEKShHUlJfRlVOQ19FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIEdSUl9GVU5DX1JFU1VNRV9VVFJBTl9NRUFTX0VWICAgICAgICAgICAgKERXT1JEKShHUlJfRlVOQ19FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIEdSUl9GVU5DX1NVU1BFTkRfRVVUUkFOX01FQVNfRVYgICAgICAgICAgKERXT1JEKShHUlJfRlVOQ19FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIEdSUl9GVU5DX1JFU1VNRV9FVVRSQU5fTUVBU19FViAgICAgICAgICAgKERXT1JEKShHUlJfRlVOQ19FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIEdSUl9GVU5DX0lETEVfTU9ERV9TRVRUSU5HX0VWICAgICAgICAgICAgKERXT1JEKShHUlJfRlVOQ19FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIEdSUl9GVU5DX0xJU1RfSEFORExJTkdfRVYgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRlVOQ19FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIEdSUl9GVU5DX1NDRUxMX1VQREFURV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRlVOQ19FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIEdSUl9GVU5DX0lOSVRfU0NFTExfUEFSQU1fRVYgICAgICAgICAgICAgKERXT1JEKShHUlJfRlVOQ19FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIEdSUl9GVU5DX0lOSVRfR1JSX1NDRUxMX0VWICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRlVOQ19FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIEdSUl9GVU5DX0lOSVRfR1JSX1NDRUxMX1RNUF9FViAgICAgICAgICAgKERXT1JEKShHUlJfRlVOQ19FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIEdSUl9GVU5DX0lOSVRfTUlfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRlVOQ19FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBHUlJfRlVOQ19TSTJRVUFURVJfQ09NUExFVEVfRVYgICAgICAgICAgIChEV09SRCkoR1JSX0ZVTkNfRVZFTlRfQkFTRSArIDExKQ0KKyNkZWZpbmUgR1JSX0ZVTkNfQ0VMTF9TRUxfQkNDSF9BTExfRVYgICAgICAgICAgICAoRFdPUkQpKEdSUl9GVU5DX0VWRU5UX0JBU0UgKyAxMikNCisjZGVmaW5lIEdSUl9GVU5DX0NFTExfU0VMX0JDQ0hfTUlOX0VWICAgICAgICAgICAgKERXT1JEKShHUlJfRlVOQ19FVkVOVF9CQVNFICsgMTMpDQorI2RlZmluZSBHUlJfRlVOQ19SRVNFVF9TWVNJTkZPX0VWICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0ZVTkNfRVZFTlRfQkFTRSArIDE0KQ0KKyNkZWZpbmUgR1JSX0ZVTkNfU1RPUkVfT1JJR19VVFJBTl9FViAgICAgICAgICAgICAoRFdPUkQpKEdSUl9GVU5DX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIEdSUl9GVU5DX1NUT1JFX01PRElGWV9PUklHX1VUUkFOX0VWICAgICAgKERXT1JEKShHUlJfRlVOQ19FVkVOVF9CQVNFICsgMTYpDQorI2RlZmluZSBHUlJfRlVOQ19DT1BZX09SSUdfVVRSQU5fRVYgICAgICAgICAgICAgIChEV09SRCkoR1JSX0ZVTkNfRVZFTlRfQkFTRSArIDE3KQ0KKyNkZWZpbmUgR1JSX0ZVTkNfSU5ESVZJRF9QUklPUklUWV9DSEFOR0VfRVYgICAgICAoRFdPUkQpKEdSUl9GVU5DX0VWRU5UX0JBU0UgKyAxOCkNCisjZGVmaW5lIEdSUl9GVU5DX0dFVF9RU0VBUkNIX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShHUlJfRlVOQ19FVkVOVF9CQVNFICsgMTkpDQorI2RlZmluZSBHUlJfRlVOQ19DT1BZX1NDRUxMX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoR1JSX0ZVTkNfRVZFTlRfQkFTRSArIDIwKQ0KKw0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIM6xz/vPotDFwe64+tfZysK8/rrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgR0FTX1NUX0NUUkxfQkxPQ0tfVExWX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyAwKSAgICAvKkdSUs/7z6K21LXIsuPP+8+i0MXB7rj619nKwrz+usUqLw0KKyNkZWZpbmUgR0FTX1NUX1VMX0NUUkxfQkxPQ0tfQ1NOMV9FViAgICAgICAgICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyAxKSAgICAvKkdNQUO21LXIsuPJz9DQz/vPotDFwe64+tfZysK8/rrFKi8NCisjZGVmaW5lIEdBU19TVF9ETF9DVFJMX0JMT0NLX0NTTjFfRVYgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgMikgICAgLypHTUFDttS1yLLjz8LQ0M/7z6LQxcHuuPrX2crCvP66xSovDQorI2RlZmluZSBHQVNfU1RfU0VHX0NUUkxfQkxPQ0tfQ1NOMV9FViAgICAgICAgICAgIChEV09SRCkoU0lHVFJBQ0VfRVZFTlRfQkFTRSArIDMpICAgIC8qR01BQ7bUtciy48/C0NC31rbOz/vPotDFwe64+tfZysK8/rrFKi8NCisjZGVmaW5lIEdBU19TVF9ETExfUkVBRF9EQ0NIX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIEdBU19TVF9ETExfUkVBRF9TQUNDSF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIEFUSV9QRElfREFUQV9SRVFfVFJBQ0VfRVYgICAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIFVQRElfREFUQV9SRVFfVFJBQ0VfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIFNOX0RBVEFfUkVRX1RSQUNFICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIFNOX1VOSVREQVRBX1JFUV9UUkFDRSAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIExMX0RBVEFfUkVRX1RSQUNFICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBMTF9VTklUREFUQV9SRVFfVFJBQ0UgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU0lHVFJBQ0VfRVZFTlRfQkFTRSArIDExKQ0KKyNkZWZpbmUgTExDX0dFVF9ORVhUX1BEVV9UUkFDRV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyAxMikNCisjZGVmaW5lIEdNQUNfR0VUX0JMT0NLU19UUkFDRV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgMTMpDQorI2RlZmluZSBHTUFDX0FDS19CTE9DS1NfVFJBQ0VfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoU0lHVFJBQ0VfRVZFTlRfQkFTRSArIDE0KQ0KKyNkZWZpbmUgUERDUF9STENfREFUQV9SRVFfVFJBQ0VfRVYgICAgICAgICAgICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIFVSTENfR0VUX0JPX1RSQUNFX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgMTYpDQorI2RlZmluZSBVUkxDX1NFTkRfUERVX1RSQUNFX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoU0lHVFJBQ0VfRVZFTlRfQkFTRSArIDE3KQ0KKyNkZWZpbmUgVU1BQ19URkNfU0VMX1RSQUNFX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyAxOCkNCisjZGVmaW5lIFBIX01BQ19EQVRBX0lORF9UUkFDRSAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgMTkpDQorI2RlZmluZSBQSF9STENfREFUQV9JTkRfVFJBQ0UgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU0lHVFJBQ0VfRVZFTlRfQkFTRSArIDIwKQ0KKyNkZWZpbmUgTUFDX1JMQ19EQVRBX0lORF9UUkFDRSAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyAyMSkNCisjZGVmaW5lIFJMQ19EQVRBX0lORF9UUkFDRSAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgMjIpDQorI2RlZmluZSBSTENfVU5JVERBVEFfSU5EX1RSQUNFICAgICAgICAgICAgICAgICAgIChEV09SRCkoU0lHVFJBQ0VfRVZFTlRfQkFTRSArIDIzKQ0KKyNkZWZpbmUgTExfREFUQV9JTkRfVFJBQ0UgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyAyNCkNCisjZGVmaW5lIExMX1VOSVREQVRBX0lORF9UUkFDRSAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgMjUpDQorI2RlZmluZSBTTl9EQVRBX0lORF9UUkFDRSAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU0lHVFJBQ0VfRVZFTlRfQkFTRSArIDI2KQ0KKyNkZWZpbmUgU05fVU5JVERBVEFfSU5EX1RSQUNFICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyAyNykNCisjZGVmaW5lIFVQRElfREFUQV9JTkRfVFJBQ0VfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgMjgpDQorI2RlZmluZSBBVElfUERJX0RBVEFfSU5EX1RSQUNFX0VWICAgICAgICAgICAgICAgIChEV09SRCkoU0lHVFJBQ0VfRVZFTlRfQkFTRSArIDI5KQ0KKyNkZWZpbmUgVVVNQUNfREFUQV9JTkRfVFJBQ0VfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyAzMCkNCisjZGVmaW5lIFBEQ1BfUkxDX0RBVEFfSU5EX1RSQUNFX0VWICAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgMzEpDQorI2RlZmluZSBUQUZfQ09VTlRFUl9UUkFDRV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU0lHVFJBQ0VfRVZFTlRfQkFTRSArIDMyKQ0KKyNkZWZpbmUgVEFGX1JMUF9YSURfVUxGUkFNRV9UUkFDRV9FViAgICAgICAgICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyAzMykNCisjZGVmaW5lIFRBRl9STFBfWElEX0RMRlJBTUVfVFJBQ0VfRVYgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgMzQpDQorI2RlZmluZSBUQUZfUkxQX1NBQk1fVUxGUkFNRV9UUkFDRV9FViAgICAgICAgICAgIChEV09SRCkoU0lHVFJBQ0VfRVZFTlRfQkFTRSArIDM1KQ0KKyNkZWZpbmUgVEFGX1JMUF9TQUJNX0RMRlJBTUVfVFJBQ0VfRVYgICAgICAgICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyAzNikNCisjZGVmaW5lIFRBRl9STFBfVUFfVUxGUkFNRV9UUkFDRV9FViAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgMzcpDQorI2RlZmluZSBUQUZfUkxQX1VBX0RMRlJBTUVfVFJBQ0VfRVYgICAgICAgICAgICAgIChEV09SRCkoU0lHVFJBQ0VfRVZFTlRfQkFTRSArIDM4KQ0KKyNkZWZpbmUgVEFGX1JMUF9ESVNDX1VMRlJBTUVfVFJBQ0VfRVYgICAgICAgICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyAzOSkNCisjZGVmaW5lIFRBRl9STFBfRElTQ19ETEZSQU1FX1RSQUNFX0VWICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgNDApDQorI2RlZmluZSBUQUZfUkxQX0RNX1VMRlJBTUVfVFJBQ0VfRVYgICAgICAgICAgICAgIChEV09SRCkoU0lHVFJBQ0VfRVZFTlRfQkFTRSArIDQxKQ0KKyNkZWZpbmUgVEFGX1JMUF9ETV9ETEZSQU1FX1RSQUNFX0VWICAgICAgICAgICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyA0MikNCisjZGVmaW5lIFRBRkwxR19EQVRBX0lORF9UUkFDRV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgNDMpDQorI2RlZmluZSBUQUZMMUdfREFUQV9SRVFfVFJBQ0VfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoU0lHVFJBQ0VfRVZFTlRfQkFTRSArIDQ0KQ0KKyNkZWZpbmUgVEFGX0ZVTkNfVVVSTENfREFUQV9JTkRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyA0NSkNCisjZGVmaW5lIFRBRl9GVU5DX1VVUkxDX0RBVEFfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgNDYpDQorI2RlZmluZSBQRElfUERDUF9EQVRBX0lORF9UUkFDRV9FViAgICAgICAgICAgICAgIChEV09SRCkoU0lHVFJBQ0VfRVZFTlRfQkFTRSArIDQ3KQ0KKyNkZWZpbmUgUERDUF9EQVRBX0JBQ0tfUERJX1RSQUNFX0VWICAgICAgICAgICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyA0OCkNCisvKldDRE1BKFNJR0lSQUNFPTEwMCkqLw0KKyNkZWZpbmUgV1JMQ19HRVRfQk9fVFJBQ0VfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyA0OSkNCisjZGVmaW5lIFdSTENfU0VORF9QRFVfVFJBQ0VfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgNTApDQorI2RlZmluZSBXTUFDX1RGQ19TRUxfVFJBQ0VfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU0lHVFJBQ0VfRVZFTlRfQkFTRSArIDUxKQ0KKyNkZWZpbmUgVVdNQUNfREFUQV9JTkRfVFJBQ0VfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyA1MikNCisjZGVmaW5lIFRBRl9GVU5DX1VXUkxDX0RBVEFfSU5EX0VWICAgICAgICAgICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgNTMpDQorI2RlZmluZSBUQUZfRlVOQ19VV1JMQ19EQVRBX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoU0lHVFJBQ0VfRVZFTlRfQkFTRSArIDU0KQ0KKyNkZWZpbmUgV01BQ19TVEFSVF9URU1QRVJBVFVSRV9DVFJMX1RSQUNFX0VWICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyA1NSkNCisjZGVmaW5lIFdNQUNfU1RPUF9URU1QRVJBVFVSRV9DVFJMX1RSQUNFX0VWICAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgNTYpDQorI2RlZmluZSBFVU1BQ19TVEFSVF9URU1QRVJBVFVSRV9DVFJMX1RSQUNFX0VWICAgIChEV09SRCkoU0lHVFJBQ0VfRVZFTlRfQkFTRSArIDU3KQ0KKyNkZWZpbmUgRVVNQUNfU1RPUF9URU1QRVJBVFVSRV9DVFJMX1RSQUNFX0VWICAgICAoRFdPUkQpKFNJR1RSQUNFX0VWRU5UX0JBU0UgKyA1OCkNCisjZGVmaW5lIEVVTUFDX0hPTERfVEVNUEVSQVRVUkVfQ1RSTF9UUkFDRV9FViAgICAgKERXT1JEKShTSUdUUkFDRV9FVkVOVF9CQVNFICsgNTkpDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIExURc/gudi1xM/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgRU1NICBUSU1FUiDP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBFTU1fVDM0MTBfRVhQSVJZICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU1NX1RJTUVSX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgRU1NX1QzNDE2X0VYUElSWSAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVNTV9USU1FUl9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIEVNTV9UMzQxN19FWFBJUlkgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTU1fVElNRVJfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBFTU1fVDM0MThfRVhQSVJZICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU1NX1RJTUVSX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgRU1NX1QzNDIwX0VYUElSWSAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVNTV9USU1FUl9FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIEVNTV9UMzQyMV9FWFBJUlkgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTU1fVElNRVJfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBFTU1fVDM0MzBfRVhQSVJZICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU1NX1RJTUVSX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgRU1NX1QzNDQwX0VYUElSWSAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVNTV9USU1FUl9FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIEVNTV9UX1BPV0VST0ZGX0VYUElSWSAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTU1fVElNRVJfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBFTU1fVDM0MTdFWFRfRVhQSVJZICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU1NX1RJTUVSX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgRU1NX1RfV0FJVFJFTElORF9FWFBJUlkgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVNTV9USU1FUl9FVkVOVF9CQVNFICsgMTApDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIEVTTSAgVElNRVIgz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgRVNNX1RJTUVSMzQ4MF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVTTV9USU1FUl9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIEVTTV9USU1FUjM0ODFfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShFU01fVElNRVJfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBFU01fVElNRVIzNDgyX0VYUElSWV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRVNNX1RJTUVSX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgRVNNX1RJTUVSMzQ5Ml9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVTTV9USU1FUl9FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIEVTTV9UX01UQUNUQU5TV0VSX0VYUElSWV9FViAgICAgICAgICAgICAgKERXT1JEKShFU01fVElNRVJfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBFU01fVF9XQUlUSU5HQVRIX0VYUElSWV9FViAgICAgICAgICAgICAgIChEV09SRCkoRVNNX1RJTUVSX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgRVNNX1RfUFRJQlVGX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVTTV9USU1FUl9FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIEVTTV9UX0NNRVNUX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFU01fVElNRVJfRVZFTlRfQkFTRSArIDcpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIEVQRENQIFRJTUVSIM/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIEVQRENQX1RfRElTQ0FSRF9FWFBJUllfRVYgICAgICAgICAgICAgICAgKERXT1JEKShFUERDUF9USU1FUl9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIEVQRENQX1RfREVMQVlNT0RFQl9FWFBJUllfRVYgICAgICAgICAgICAgKERXT1JEKShFUERDUF9USU1FUl9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIEVQRENQX1RfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFUERDUF9USU1FUl9FVkVOVF9CQVNFICsgMikNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBFVVJMQyC2qMqxxvfP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBFVVJMQ19UX1BPTExfUkVUUkFOU01JVF9FWFBJUllfRVYgICAgICAgIChEV09SRCkoRVVSTENfVElNRVJfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBFVVJMQ19UX1NUQVRVU19QUk9ISUJJVF9FWFBJUllfRVYgICAgICAgIChEV09SRCkoRVVSTENfVElNRVJfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBFVVJMQ19UX1JFT1JERVJJTkdfRVhQSVJZX0VWICAgICAgICAgICAgIChEV09SRCkoRVVSTENfVElNRVJfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBFVUwyTE9HX1RfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSTENfVElNRVJfRVZFTlRfQkFTRSArIDMpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgRVVNQUMgtqjKscb3z/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgRVVNQUNfVF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVTUFDX1RJTUVSX0VWRU5UX0JBU0UgKyAwKSAgDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICBFVUNFUtfTxKO/6baoyrHG98/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIEVVUlJDX1QzMDBfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVUNFUl9USU1FUl9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIEVVUlJDX1QzMDFfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVUNFUl9USU1FUl9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIEVVUlJDX1QzMDJfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVUNFUl9USU1FUl9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIEVVUlJDX1QzMDNfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVUNFUl9USU1FUl9FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIEVVUlJDX1QzMDRfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVUNFUl9USU1FUl9FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIEVVUlJDX1QzMDVfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVUNFUl9USU1FUl9FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIEVVUlJDX1QzMTBfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVUNFUl9USU1FUl9FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIEVVUlJDX1QzMTFfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVUNFUl9USU1FUl9FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIEVVUlJDX1Q2ME1TX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVUNFUl9USU1FUl9FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIEVVUlJDX1QzMTc0X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVUNFUl9USU1FUl9FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIEVVUlJDX1ZBUlJMRl9WQUxJRF9FWFBJUllfRVYgICAgICAgICAgICAgKERXT1JEKShFVUNFUl9USU1FUl9FVkVOVF9CQVNFICsgMTApIA0KKyNkZWZpbmUgRVVSUkNfVDMwNl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVQ0VSX1RJTUVSX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIEVVUlJDX01DQ0hfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVUNFUl9USU1FUl9FVkVOVF9CQVNFICsgMTIpDQorI2RlZmluZSBFVVJSQ18xU0VDT05EX0VYUElSWV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVDRVJfVElNRVJfRVZFTlRfQkFTRSArIDEzKQ0KKyNkZWZpbmUgRVVSUkNfVEdQQUdJTkdfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVQ0VSX1RJTUVSX0VWRU5UX0JBU0UgKyAxNCkNCisjZGVmaW5lIEVVUlJDX1BFUklET1NUQVRVU1JFUE9SVF9FWFBJUllfRVYgICAgICAgKERXT1JEKShFVUNFUl9USU1FUl9FVkVOVF9CQVNFICsgMTUpDQorI2RlZmluZSBFVVJSQ19TRUxGSE9SRVBPUlRfRVhQSVJZX0VWICAgICAgICAgICAgIChEV09SRCkoRVVDRVJfVElNRVJfRVZFTlRfQkFTRSArIDE2KQ0KKyNkZWZpbmUgRVVSUkNfU0lOR0xFVVNFUkVYSVRfRVhQSVJZX0VWICAgICAgICAgIChEV09SRCkoRVVDRVJfVElNRVJfRVZFTlRfQkFTRSArIDE3KQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgRVVNQ1LX08Sjv+m2qMqxxvfP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBFVU1DUl9UMzIwX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVNQ1JfVElNRVJfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBFVU1DUl9UMzIxX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVNQ1JfVElNRVJfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBFVU1DUl9UX1JFTUFJTl9FWFBJUllfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoRVVNQ1JfVElNRVJfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBFVU1DUl9UX0xFQVZFX0VYUElSWV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVNQ1JfVElNRVJfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBFVU1DUl9UX0hZU1ROT1JNQUxfRVhQSVJZX0VWICAgICAgICAgICAgIChEV09SRCkoRVVNQ1JfVElNRVJfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBFVU1DUl9UX1BST1hJTUlUWV9FWFBJUllfRVYgICAgICAgICAgICAgIChEV09SRCkoRVVNQ1JfVElNRVJfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBFVU1DUl9UX0NFTExJTkZPX1JFUE9SVF9FWFBJUllfRVYgICAgICAgIChEV09SRCkoRVVNQ1JfVElNRVJfRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBFVU1DUl9UX1JFU0VMX0VYUElSWV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVNQ1JfVElNRVJfRVZFTlRfQkFTRSArIDcpDQorI2RlZmluZSBFVU1DUl9UX01EVF9MT0dfRVhQSVJZX0VWICAgICAgICAgICAgICAgIChEV09SRCkoRVVNQ1JfVElNRVJfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBFVU1DUl9UMzMwX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVNQ1JfVElNRVJfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBFVU1DUl9UXzQ4SE9VUlNfRVhQSVJZX0VWICAgICAgICAgICAgICAgIChEV09SRCkoRVVNQ1JfVElNRVJfRVZFTlRfQkFTRSArIDEwKQ0KKyNkZWZpbmUgRVVNQ1JfVF9MSVNURU5fSEFORE9WRVJfRVhQSVJZX0VWICAgICAgICAoRFdPUkQpKEVVTUNSX1RJTUVSX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIEVVTUNSX1RfTU9OSVRPUl9QRVJJT0RfQ0hHX0VWICAgICAgICAgICAgKERXT1JEKShFVU1DUl9USU1FUl9FVkVOVF9CQVNFICsgMTIpDQorI2RlZmluZSBFVU1DUl9UX01PTklUT1JfSE9fRVhQSVJfRVYgICAgICAgICAgICAoRFdPUkQpKEVVTUNSX1RJTUVSX0VWRU5UX0JBU0UgKyAxMykNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgIEVVQ1NS19PEo7/ptqjKscb3z/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgRVVDU1JfVF9TSV9NT0RJX0VYUElSWV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVVQ1NSX1RJTUVSX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgRVVDU1JfVF9BQk9SVF9TRUFSQ0hfRVhQSVJZX0VWICAgICAgICAgICAoRFdPUkQpKEVVQ1NSX1RJTUVSX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgRVVDU1JfVF9GUkVRX1NDQU5fRVhQSVJZX0VWICAgICAgICAgICAgICAoRFdPUkQpKEVVQ1NSX1RJTUVSX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgRVVDU1JfVF9DRUxMX1NFQVJDSF9FWFBJUllfRVYgICAgICAgICAgICAoRFdPUkQpKEVVQ1NSX1RJTUVSX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgRVVDU1JfVF9QTE1OX1NFQVJDSF9FWFBJUllfRVYgICAgICAgICAgICAoRFdPUkQpKEVVQ1NSX1RJTUVSX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgRVVDU1JfVF9DU0dfU0VBUkNIX0VYUElSWV9FViAgICAgICAgICAgICAoRFdPUkQpKEVVQ1NSX1RJTUVSX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgRVVDU1JfVF8zSE9VUl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVQ1NSX1RJTUVSX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgRVVDU1JfVF9PT1NfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVQ1NSX1RJTUVSX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgRVVDU1JfVF9TV0lUQ0hfUkFESU9fRVhQSVJZX0VWICAgICAgICAgICAoRFdPUkQpKEVVQ1NSX1RJTUVSX0VWRU5UX0JBU0UgKyA4KQ0KKyNkZWZpbmUgRVVDU1JfVF9SRURJUkVDVF9UT19MVEVfRVhQSVJZX0VWICAgICAgICAoRFdPUkQpKEVVQ1NSX1RJTUVSX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgRVVDU1JfVF9TWU5DX0JBUlJFRExJU1RfRVhQSVJZX0VWICAgICAgICAoRFdPUkQpKEVVQ1NSX1RJTUVSX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIEVVQ1NSX1RfV0FJVF9SRVNFTF9UT19VVFJBX0VYUElSWV9FViAgICAgICAoRFdPUkQpKEVVQ1NSX1RJTUVSX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIEVVQ1NSX1RfUkVESVJFQ1RfVE9fTFRFX09QX0VYUElSWV9FViAgICAgICAgKERXT1JEKShFVUNTUl9USU1FUl9FVkVOVF9CQVNFICsgMTIpDQorI2RlZmluZSBFVUNTUl9UX0xJU1RFTl9SRVNFTF9TVUNDX0VYUElSWV9FViAgICAgICAgKERXT1JEKShFVUNTUl9USU1FUl9FVkVOVF9CQVNFICsgMTMpDQorI2RlZmluZSBFVUNTUl9UX0xCU19SUFRfRVhQSVJZX0VWICAgICAgICAgICAgICAgIChEV09SRCkoRVVDU1JfVElNRVJfRVZFTlRfQkFTRSArIDE0KQ0KKyNkZWZpbmUgRVVDU1JfVF9FQ0lEX1JQVF9FWFBJUllfRVYgICAgICAgICAgICAgICAgKERXT1JEKShFVUNTUl9USU1FUl9FVkVOVF9CQVNFICsgMTUpDQorDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICBFVVNJUtfTxKO/6baoyrHG98/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIEVVU0lSX1RfU0lCMUdVQVJEX0VYUElSWV9FViAgICAgICAgICAgICAgKERXT1JEKShFVVNJUl9USU1FUl9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIEVVU0lSX1RfU0lNU0dHVUFSRF9FWFBJUllfRVYgICAgICAgICAgICAgKERXT1JEKShFVVNJUl9USU1FUl9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIEVVU0lSX1RfRVRXU19FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVNJUl9USU1FUl9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIEVVU0lSX1RfQ01BU19FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVNJUl9USU1FUl9FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIEVVU0lSX1RfU0lCVkFMSURfRVhQSVJZX0VWICAgICAgICAgICAgICAgKERXT1JEKShFVVNJUl9USU1FUl9FVkVOVF9CQVNFICsgNCkNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgIEVNTbrNVU1NxKO/6bzkz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgVU1NX1RVX1NVQ0NfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVNTV9VTU1fRVZFTlRfQkFTRSArIDApDQorDQorI2RlZmluZSBVTU1fQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU1NX1VNTV9SU1BfRVZFTlQgKyAwKQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgVU1Nus1FUERDUMSjv+m85M/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIEVQRENQX1VNTV9FU1RfUkVKX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShVTU1fRVBEQ1BfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBFUERDUF9VTU1fRVNUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVU1NX0VQRENQX1JTUF9FVkVOVCArIDApDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICBDTbLjus1FTU3Eo7/pvOTP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBDTV9FTU1fREFUQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoQ01fRU1NX0VWRU5UX0JBU0UgKyAwKQ0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgRVNNus1FTU3Eo7/pvOTP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorLypFU00tPkVNTSovDQorI2RlZmluZSBFU01fRU1NX0RFRkFVTFRfQUNUX1JFSl9FViAgICAgICAgICAgICAgIChEV09SRCkoRVNNX0VNTV9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIEVTTV9FTU1fRU1FUkdFTkNZX1BETl9FU1RfU1VDQ19JTkRfRVYgICAgKERXT1JEKShFU01fRU1NX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgRVNNX0VNTV9FTUVSR0VOQ1lfUEROX09OTFlfSU5EX0VWICAgICAgICAoRFdPUkQpKEVTTV9FTU1fRVZFTlRfQkFTRSArIDIpDQorDQorLyogRU1NLT5FU00qLw0KKyNkZWZpbmUgRVNNX0VNTV9EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVTTV9FTU1fUlNQX0VWRU5UICsgMCkNCisjZGVmaW5lIEVTTV9FTU1fQVRUQUNIX0lORF9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFU01fRU1NX1JTUF9FVkVOVCArIDEpDQorI2RlZmluZSBFU01fRU1NX0FUVEFDSF9SRUpfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVNNX0VNTV9SU1BfRVZFTlQgKyAyKQ0KKyNkZWZpbmUgRVNNX0VNTV9DT05URVhUX1NUQVRVU19JTkRfRVYgICAgICAgICAgICAoRFdPUkQpKEVTTV9FTU1fUlNQX0VWRU5UICsgMykNCisjZGVmaW5lIEVTTV9FTU1fREVUQUNIX0lORF9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFU01fRU1NX1JTUF9FVkVOVCArIDQpDQorI2RlZmluZSBFU01fRU1NX0RFVEFDSF9FTUVSR0VOQ1lfSU5EX0VWICAgICAgICAgIChEV09SRCkoRVNNX0VNTV9SU1BfRVZFTlQgKyA1KQ0KKyNkZWZpbmUgRU1NX0VTTV9ERVRBQ0hfTk9STUFMX0lORF9FViAgICAgICAgICAgICAoRFdPUkQpKEVTTV9FTU1fUlNQX0VWRU5UICsgNikgIA0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgRU1Nus1BU0MoRVJSQyhDRVIpKcSjv+m85M/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIEVNTV9BU0NfRVNUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTU1fQVNDX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgRU1NX0FTQ19FU1RfQUJUX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVNTV9BU0NfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBFTU1fQVNDX1JFTF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU1NX0FTQ19FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIEVNTV9BU0NfS0VOQl9SU1BfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTU1fQVNDX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgRU1NX0FTQ19SRUxfREFUQV9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVNTV9BU0NfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBFTU1fQVNDX0RBVEFfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU1NX0FTQ19FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIEVNTV9BU0NfREVUQUNIX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTU1fQVNDX0VWRU5UX0JBU0UgKyA3KQ0KKw0KKy8qIEVVUlJDLT5BU0MgKi8NCisjZGVmaW5lIEVNTV9BU0NfREFUQV9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTU1fQVNDX1JTUF9FVkVOVCArIDApDQorI2RlZmluZSBFTU1fQVNDX0VTVF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU1NX0FTQ19SU1BfRVZFTlQgKyAxKQ0KKyNkZWZpbmUgRU1NX0FTQ19FU1RfUkVKX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVNTV9BU0NfUlNQX0VWRU5UICsgMikNCisjZGVmaW5lIEVNTV9BU0NfUkVMX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTU1fQVNDX1JTUF9FVkVOVCArIDMpDQorI2RlZmluZSBFTU1fQVNDX0FCQV9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU1NX0FTQ19SU1BfRVZFTlQgKyA0KQ0KKyNkZWZpbmUgRU1NX0FTQ19EUkJfU0VUVVBfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEVNTV9BU0NfUlNQX0VWRU5UICsgNSkNCisjZGVmaW5lIEVNTV9BU0NfVFJBTlNfRkFJTF9JTkRfRVYgICAgICAgICAgICAgICAgKERXT1JEKShFTU1fQVNDX1JTUF9FVkVOVCArIDYpDQorI2RlZmluZSBFTU1fQVNDX0tFTkJfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU1NX0FTQ19SU1BfRVZFTlQgKyA3KQ0KKyNkZWZpbmUgRU1NX0FTQ19VRV9JTkZPX0NIQU5HRV9JTkRfRVYgICAgICAgICAgICAoRFdPUkQpKEVNTV9BU0NfUlNQX0VWRU5UICsgOCkNCisjZGVmaW5lIEVNTV9BU0NfREFUQV9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTU1fQVNDX1JTUF9FVkVOVCArIDkpDQorI2RlZmluZSBFTU1fQVNDX1BBR0VfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU1NX0FTQ19SU1BfRVZFTlQgKyAxMCkNCisjZGVmaW5lIEVNTV9BU0NfU0VDX1BBUkFfSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShFTU1fQVNDX1JTUF9FVkVOVCArIDExKQ0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgRU1Nus1FVVBEQ1DEo7/pvOTP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorDQorI2RlZmluZSBFUERDUF9FTU1fRVNUX1JFSl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU1NX0VQRENQX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgRVBEQ1BfRU1NX0JBUl9BTExFVklBVEVfTk9USUZZX0VWICAgICAgICAoRFdPUkQpKEVNTV9FUERDUF9FVkVOVF9CQVNFICsgMSkNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgIEVTTbrNVU1NxKO/6bzkz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKy8qRVNNus1VTU3Eo7/p1q685LXEz/vPosrCvP66xS0tDQorKiAxLkNNX0VTVF9SRVFfRVajrA0KKyogMi5DTV9FU1RfQ05GX0VWo6wNCisqIDMuQ01fUkVMSU5EX0VW0djTw9LUx7A5MEG1xL3Tv9oqLw0KKy8qRVNNLT5VTU0qLw0KKyNkZWZpbmUgRVNNX1VNTV9ERVRBQ0hfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVNNX1VNTV9FVkVOVF9CQVNFICsgMCkgLypNb2RpZmllZDpLYW5nU2h1SmllKi8NCisjZGVmaW5lIEVTTV9VTU1fTE9DQUxfREVBQ1RfSU5EX0VWICAgICAgICAgICAgICAoRFdPUkQpKEVTTV9VTU1fRVZFTlRfQkFTRSArIDEpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICBTTbrNRVNNxKO/6bzkz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKy8qU00tPkVTTSovDQorI2RlZmluZSBTTV9FU01fREFUQV9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9FU01fRVZFTlRfQkFTRSArIDApIC8qQWRkZWQ6S2FuZ1NodUppZSovDQorI2RlZmluZSBTTV9FU01fUkFUX0FDVF9JTkRfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9FU01fRVZFTlRfQkFTRSArIDEpIC8qQWRkZWQ6S2FuZ1NodUppZSovDQorI2RlZmluZSBTTV9FU01fUkFUX0RFQUNUX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9FU01fRVZFTlRfQkFTRSArIDIpIC8qQWRkZWQ6S2FuZ1NodUppZSovDQorI2RlZmluZSBTTV9FU01fREVBQ1RfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9FU01fRVZFTlRfQkFTRSArIDMpIC8qQWRkZWQ6S2FuZ1NodUppZSovDQorLypFU00tPlNNKi8NCisjZGVmaW5lIEVTTV9TTV9EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNNX0VTTV9SU1BfRVZFTlQgKyAwKSAvKkFkZGVkOkthbmdTaHVKaWUqLw0KKyNkZWZpbmUgRVNNX1NNX1JBVF9BQ1RfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoU01fRVNNX1JTUF9FVkVOVCArIDEpIC8qQWRkZWQ6S2FuZ1NodUppZSovDQorI2RlZmluZSBFU01fU01fUkFUX0RFQUNUX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShTTV9FU01fUlNQX0VWRU5UICsgMikgLypBZGRlZDpLYW5nU2h1SmllKi8NCisjZGVmaW5lIEVTTV9TTV9ERUFDVF9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFNNX0VTTV9SU1BfRVZFTlQgKyAzKSAvKkFkZGVkOkthbmdTaHVKaWUqLw0KKyANCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgIEVTTbrNRVBEQ1AqxKO/6dauvOTP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBFU01fRVBEQ1BfREVBQ1RJVkFURV9SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShFU01fRVBEQ1BfRVZFTlRfQkFTRSArIDApIC8qTW9kaWZpZWQ6S2FuZ1NodUppZSovDQorI2RlZmluZSBFU01fRVBEQ1BfUkFUX0RBVEFfTU9WRV9SRVFfRVYgICAgICAgICAgKERXT1JEKShFU01fRVBEQ1BfRVZFTlRfQkFTRSArIDEpIC8qQWRkZWQ6S2FuZ1NodUppZSovDQorI2RlZmluZSBFU01fRVBEQ1BfUkFUX0RBVEFfREVMX1JFUV9FViAgICAgICAgICAgKERXT1JEKShFU01fRVBEQ1BfRVZFTlRfQkFTRSArIDIpIC8qQWRkZWQ6S2FuZ1NodUppZSovDQorI2RlZmluZSBFU01fRVBEQ1BfRElBTF9JTkRfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShFU01fRVBEQ1BfRVZFTlRfQkFTRSArIDMpIA0KKyNkZWZpbmUgREVMX1VTRVJfUExBTkVfQlVGRkVSX0RBVEFfRVYgICAgICAgICAgIChEV09SRCkoRVNNX0VQRENQX0VWRU5UX0JBU0UgKyA0KSANCisNCisjZGVmaW5lIEVTTV9FUERDUF9MT0NBTF9ERUFDVF9JTkRfRVYgICAgICAgICAgICAgKERXT1JEKShFU01fRVBEQ1BfUlNQX0VWRU5UICsgMCkNCisjZGVmaW5lIEVTTV9FUERDUF9SQVRfU0VRX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShFU01fRVBEQ1BfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIEVTTV9FUERDUF9SQVRfQUNUX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShFU01fRVBEQ1BfUlNQX0VWRU5UICsgMikNCisjZGVmaW5lIEVTTV9FUERDUF9SQVRfQ0hBTkdFX0NPTVBfRVYgICAgICAgICAgICAgKERXT1JEKShFU01fRVBEQ1BfUlNQX0VWRU5UICsgMykgLypBZGRlZDpLYW5nU2h1SmllKi8NCisjZGVmaW5lIEVQRENQX0VTTV9SQVRfU0VRX1JTUF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShFU01fRVBEQ1BfUlNQX0VWRU5UICsgNCkgLypBZGRlZDpLYW5nU2h1SmllKi8NCisjZGVmaW5lIEVQRENQX0VTTV9SQVRfQUNUX1JTUF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShFU01fRVBEQ1BfUlNQX0VWRU5UICsgNSkgLypBZGRlZDpLYW5nU2h1SmllKi8NCisjZGVmaW5lIEVQRENQX0VTTV9TVEFUVVNfSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShFU01fRVBEQ1BfUlNQX0VWRU5UICsgNikgLypBZGRlZDpLYW5nU2h1SmllKi8NCisjZGVmaW5lIEVTTV9FUERDUF9DVVJSX0JFQVJfSU5EX0VWICAgICAgICAgICAgICAgKERXT1JEKShFU01fRVBEQ1BfUlNQX0VWRU5UICsgNykNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgIEVVUlJDus1FUERDUMSjv+nWrrzkz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgRVVSUkNfRVBEQ1BfU01DX0lOVEVHUklUWV9DSEVDS19SRVFfRVYgICAoRFdPUkQpKEVVUlJDX0VQRENQX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgRVVSUkNfRVBEQ1BfQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VQRENQX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgRVVSUkNfRVBEQ1BfREFUQV9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VQRENQX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgRVVSUkNfRVBEQ1BfUkVFU1RBQkxJU0hfUkVRX0VWICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VQRENQX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgRVVSUkNfRVBEQ1BfUkVMRUFTRV9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VQRENQX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgRVVSUkNfRVBEQ1BfUkVTVU1FX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VQRENQX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgRVVSUkNfRVBEQ1BfU1VTUEVORF9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VQRENQX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgRVVSUkNfRVBEQ1BfREVDSVBIRVJfQU5EX0lOVF9DSEVDS19SRVFfRVYgICAoRFdPUkQpKEVVUlJDX0VQRENQX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgRVVSUkNfRVBEQ1BfSE9fU1VDQ19JTkRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VQRENQX0VWRU5UX0JBU0UgKyA4KQ0KKyNkZWZpbmUgRVVSUkNfRVBEQ1BfSE9fRkFJTF9JTkRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VQRENQX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgRVVSUkNfRVBEQ1BfU0VDX0NPTkZJR19SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VQRENQX0VWRU5UX0JBU0UgKyAxMCkvKkFkZGVkOkthbmdTaHVKaWUqLw0KKyNkZWZpbmUgRVVSUkNfRVBEQ1BfU01DX0VORF9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VQRENQX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIEVVUlJDX0VQRENQX1RSVU5LSU5HX1NFQ19DT05GSUdfUkVRX0VWICAgKERXT1JEKShFVVJSQ19FUERDUF9FVkVOVF9CQVNFICsgMTIpDQorI2RlZmluZSBFVVJSQ19FUERDUF9DRUxMX1JFU0VMX0lORF9FViAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVBEQ1BfRVZFTlRfQkFTRSArIDEzKQ0KKw0KKw0KKyNkZWZpbmUgRVVSUkNfRVBEQ1BfU01DX0lOVEVHUklUWV9DSEVDS19DTkZfRVYgICAoRFdPUkQpKEVVUlJDX0VQRENQX1JTUF9FVkVOVCArIDApDQorI2RlZmluZSBFVVJSQ19FUERDUF9EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVBEQ1BfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIEVVUlJDX0VQRENQX0lOVEVHSVJUWV9GQUlMX0lORF9FViAgICAgICAgKERXT1JEKShFVVJSQ19FUERDUF9SU1BfRVZFTlQgKyAyKQ0KKyNkZWZpbmUgRVVSUkNfRVBEQ1BfQ09ORklHX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VQRENQX1JTUF9FVkVOVCArIDMpDQorI2RlZmluZSBFVVJSQ19FUERDUF9EQVRBX0NORl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVBEQ1BfUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIEVVUlJDX0VQRENQX1JFRVNUQUJMSVNIX0NORl9FViAgICAgICAgICAgKERXT1JEKShFVVJSQ19FUERDUF9SU1BfRVZFTlQgKyA1KQ0KKyNkZWZpbmUgRVVSUkNfRVBEQ1BfRU5BQkxFX1VMX0NJUEhFUl9SRVFfRVYgICAgICAoRFdPUkQpKEVVUlJDX0VQRENQX1JTUF9FVkVOVCArIDYpDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICBFVVJSQ7rNRVVSTEPEo7/p1q685M/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIEVVUlJDX0VVUkxDX0NPTkZJR19SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVVJMQ19FVkVOVF9CQVNFICsgMCkgLypNb2RpZmllZDpLYW5nU2h1SmllKi8NCisjZGVmaW5lIEVVUlJDX0VVUkxDX1JFRVNUQUJMSVNIX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVVJMQ19FVkVOVF9CQVNFICsgMSkgLypNb2RpZmllZDpLYW5nU2h1SmllKi8NCisjZGVmaW5lIEVVUlJDX0VVUkxDX1JFTEVBU0VfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVVJMQ19FVkVOVF9CQVNFICsgMikgLypNb2RpZmllZDpLYW5nU2h1SmllKi8NCisNCisjZGVmaW5lIEVVUlJDX0VVUkxDX0NPTkZJR19DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVVJMQ19SU1BfRVZFTlQgKyAwKSAvKk1vZGlmaWVkOkthbmdTaHVKaWUqLw0KKyNkZWZpbmUgRVVSUkNfRVVSTENfUkVFU1RBQkxJU0hfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VVUkxDX1JTUF9FVkVOVCArIDEpIC8qTW9kaWZpZWQ6S2FuZ1NodUppZSovDQorI2RlZmluZSBFTDJfRVVSUkNfUkFESU9MSU5LX0ZBSUxfSU5EX0VWICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVVSTENfUlNQX0VWRU5UICsgMikgLypNb2RpZmllZDpLYW5nU2h1SmllKi8NCisjZGVmaW5lIEVVUlJDX0VMMl9UUlVOS0NIX0VSUk9SX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVVJMQ19SU1BfRVZFTlQgKyAzKQ0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgRVVSUkO6zUVVTUFDxKO/6dauvOTP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorDQorI2RlZmluZSBFVVJSQ19FVU1BQ19DQ0NIX0RBVEFfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVVNQUNfRVZFTlRfQkFTRSArIDApIC8qTW9kaWZpZWQ6S2FuZ1NodUppZSovDQorI2RlZmluZSBFVVJSQ19FVU1BQ19DT01NX0NPTkZJR19SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVVNQUNfRVZFTlRfQkFTRSArIDEpIC8qTW9kaWZpZWQ6S2FuZ1NodUppZSovDQorI2RlZmluZSBFVVJSQ19FVU1BQ19ERURJX0NPTkZJR19SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVVNQUNfRVZFTlRfQkFTRSArIDIpIC8qTW9kaWZpZWQ6S2FuZ1NodUppZSovDQorI2RlZmluZSBFVVJSQ19FVU1BQ19SRUxfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVVNQUNfRVZFTlRfQkFTRSArIDMpIC8qTW9kaWZpZWQ6S2FuZ1NodUppZSovDQorI2RlZmluZSBFVVJSQ19FVU1BQ19SRVNFVF9NQUNfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVVNQUNfRVZFTlRfQkFTRSArIDQpIC8qTW9kaWZpZWQ6S2FuZ1NodUppZSovDQorI2RlZmluZSBFVVJSQ19FVU1BQ19SRVNVTUVfUkJfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVVNQUNfRVZFTlRfQkFTRSArIDUpIC8qTW9kaWZpZWQ6S2FuZ1NodUppZSovDQorI2RlZmluZSBFVVJSQ19FVU1BQ19TVVNQRU5EX1JCX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVVNQUNfRVZFTlRfQkFTRSArIDYpIC8qTW9kaWZpZWQ6S2FuZ1NodUppZSovDQorI2RlZmluZSBFVVJSQ19FVU1BQ19SQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVVNQUNfRVZFTlRfQkFTRSArIDcpIC8qTW9kaWZpZWQ6S2FuZ1NodUppZSovDQorI2RlZmluZSBFVVJSQ19FVU1BQ19IT19SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVVNQUNfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBFVVJSQ19FVU1BQ19SRUxfREVESV9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVVNQUNfRVZFTlRfQkFTRSArIDExKQ0KKyNkZWZpbmUgRVVSUkNfRVVNQUNfR1JOVElfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VVTUFDX0VWRU5UX0JBU0UgKyAxMikNCisjZGVmaW5lIEVVUlJDX0VVTUFDX1NSX0NPTkZJR19SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVU1BQ19FVkVOVF9CQVNFICsgMTMpDQorI2RlZmluZSBFVVJSQ19FVU1BQ19MSVNURU5JTkdDRkdfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVVNQUNfRVZFTlRfQkFTRSArIDE0KQ0KKw0KKyNkZWZpbmUgRVVNQUNfRVVSUkNfQ0NDSF9EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VVTUFDX1JTUF9FVkVOVCArIDApIC8qTW9kaWZpZWQ6S2FuZ1NodUppZSovDQorI2RlZmluZSBFVU1BQ19FVVJSQ19SQV9QUk9CTEVNX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVVNQUNfUlNQX0VWRU5UICsgMSkgLypNb2RpZmllZDpLYW5nU2h1SmllKi8NCisjZGVmaW5lIEVVTUFDX0VVUlJDX1JBX1NVQ0NfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVU1BQ19SU1BfRVZFTlQgKyAyKSAvKk1vZGlmaWVkOkthbmdTaHVKaWUqLw0KKyNkZWZpbmUgRVVNQUNfRVVSUkNfSE9fQ05GX0VWICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VVTUFDX1JTUF9FVkVOVCArIDMpDQorI2RlZmluZSBFVU1BQ19FVVJSQ19QVUNDSF9TUlNfUkVMX1JFUSAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVVNQUNfUlNQX0VWRU5UICsgNCkNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgIFVNxKPKvcnP0NDK/b7dyLfIz8/7z6INCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIEVVUkxDX0VQRENQX1VNX0RBVEFfQ05GX0VWICAgICAgICAgICAgICAgKERXT1JEKShFVVBEQ1BfRVVSTENfRVZFTlRfQkFTRSArIDApDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICBFVVJSQ7rNTUVMMsSjv+nWrrzkz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgRVVSUkNfRVVNQUNfTUNIX0NPTkZJR19SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX01FTDJfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBFVVJSQ19FVU1BQ19NQ0hfUkVMX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfTUVMMl9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIE1FTDJfRE1BX0NPTVBMRVRFX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19NRUwyX0VWRU5UX0JBU0UgKyAyKSANCisjZGVmaW5lIEVVTUFDX0VVUlJDX01DQ0hfREFUQV9JTkRfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19NRUwyX1JTUF9FVkVOVCArIDApIA0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyBFVVJSQ8Tasr/P+8+iysK8/rrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKy8qRVVDRVItRVVNQ1IqLw0KKyNkZWZpbmUgRVVSUkNfTUNSX1NUQVRFX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgRVVSUkNfTUVBU19DT05GSUdfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgRVVSUkNfSURMRV9JTkZPX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyAyKQ0KKw0KKyNkZWZpbmUgRVVSUkNfU0NFTExfVU5TVUlUQUJMRV9JTkRfRVYgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgRVVSUkNfQ0VSX09VVE9GX1NFUlZJQ0VfSU5EX0VWICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyA0KQ0KKw0KKy8qRVVDRVItRVVDU1IqLyANCisjZGVmaW5lIEVVUlJDX0NTUl9TVEFURV9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIEVVUlJDX0NFTExfSU5GTzJOQVNfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIEVVUlJDX0JBUlJFRF9DRUxMX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIEVVUlJDX1JFTF9FUEhZX0NORl9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVkVOVF9CQVNFICsgOCkNCisNCisjZGVmaW5lIEVVUlJDX0NFUl9DRUxMX1NUQVRFX0lORF9FViAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIEVVUlJDX0NFTExfU0VMX1NVQ0NfSU5EX0VWICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBFVUNFUl9UUlNfVEVTVF9JTkRfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVZFTlRfQkFTRSArIDExKQ0KKyNkZWZpbmUgRVVSUkNfUkVMX0VQSFlfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyAxMikNCisvKkVVQ0VSLUVVU0lSKi8gDQorDQorI2RlZmluZSBFVVJSQ19DRVJfU0lfQ0hHRURfSU5EX0VWICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVZFTlRfQkFTRSArIDEzKQ0KKw0KKy8qRVVDU1ItRVVNQ1IqLyAgDQorI2RlZmluZSBFVVJSQ19DRUxMX1JFU0VMX1JFSl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVZFTlRfQkFTRSArIDE0KQ0KKyNkZWZpbmUgRVVSUkNfUExNTl9TRUxfSU5EX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIEVVUlJDX01DUl9SQVRfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVkVOVF9CQVNFICsgMTYpDQorDQorI2RlZmluZSBFVVJSQ19DRUxMX1JFU0VMX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVZFTlRfQkFTRSArIDE3KQ0KKyNkZWZpbmUgRVVSUkNfQ1NSX09VVE9GX1NFUlZJQ0VfSU5EX0VWICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyAxOCkNCisvKkVVQ1NSLUVVU0lSKi8gDQorDQorI2RlZmluZSBFVVJSQ19SRUFEX1NJX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVZFTlRfQkFTRSArIDE5KQ0KKyNkZWZpbmUgRVVSUkNfQUJPUlRfU0lfUkVBRF9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyAyMCkNCisgICAgICAgICAgICAgICANCisjZGVmaW5lIEVVUlJDX0NTUl9DRUxMX1NUQVRFX0lORF9FViAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVkVOVF9CQVNFICsgMjEpDQorI2RlZmluZSBFVVJSQ19DU0dfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVZFTlRfQkFTRSArIDIyKQ0KKyNkZWZpbmUgRVVSUkNfV0FSTklOR19OT1RJRllfSU5GT19FViAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyAyMykNCisNCisvKkVVQ1NSLUVVQ0VSKi8gDQorI2RlZmluZSBFVVJSQ19DRVJfUkFUX0lORF9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVZFTlRfQkFTRSArIDI0KQ0KKw0KKw0KKy8qVU1DUi1FVVNJUiovIA0KKyAvKlVNQ1ItRVVTSVIgIM2sRVVSUkNfUkVBRFNJX1JFUV9FVg0KKyAgICAgICAgICAgICAgICAgIEVVUlJDX0FCT1JUU0lSRUFEX1JFUV9FViAqLw0KKw0KKyNkZWZpbmUgRVVSUkNfTUNSX1NJX0NIR0VEX0lORF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyAyNSkNCisjZGVmaW5lIEVVUlJDX0NHSV9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVkVOVF9CQVNFICsgMjYpIA0KKyNkZWZpbmUgRVVSUkNfR0VUX1JGX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyAyNykgDQorI2RlZmluZSBFVVJSQ19HRVRfUkZfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVZFTlRfQkFTRSArIDI4KQ0KKyNkZWZpbmUgRVVSUkNfQ1NHX1BST1hJTUlUWV9JTkRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyAyOSkNCisjZGVmaW5lIEVVUlJDX1NJX0VORF9GT1JfSE9fRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVkVOVF9CQVNFICsgMzApDQorI2RlZmluZSBFVVJSQ19NRFRfQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVZFTlRfQkFTRSArIDMxKQ0KKyNkZWZpbmUgRVVSUkNfTUNSX0NHSV9QRU5EX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyAzMikNCisjZGVmaW5lIEVVUlJDX01DUl9DR0lfUEVORF9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVkVOVF9CQVNFICsgMzMpDQorI2RlZmluZSBFVVJSQ19JTlRFUkVTVF9GUkVRX0NITkdfSU5EX0VWICAgICAgICAgIChEV09SRCkoRVVSUkNfRVZFTlRfQkFTRSArIDM0KQ0KKyNkZWZpbmUgRVVSUkNfQ0VSX1NFTEZIT19SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyAzNSkNCisjZGVmaW5lIEVVUlJDX05FVFdPUktfVElNRV9JTkZPX0lORF9FViAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVkVOVF9CQVNFICsgMzYpDQorI2RlZmluZSBFVVJSQ19SUkNfU1RBVEVfQ0hOR19JTkRfRVYgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVZFTlRfQkFTRSArIDM3KQ0KKyNkZWZpbmUgRVVSUkNfRVVDRVJfUkVTVU1FX01CTVNfUkVRX0VWICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyAzOCkNCisjZGVmaW5lIEVVUlJDX0VVQ0VSX0FCT1JUX01CTVNfUkVRX0VWICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVkVOVF9CQVNFICsgMzkpDQorI2RlZmluZSBFVVJSQ19DU1JfWENFTExfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVZFTlRfQkFTRSArIDQwKQ0KKyNkZWZpbmUgRVVSUkNfRVVNQ1JfU1RBUlRfTUVBU19SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyA0MSkNCisjZGVmaW5lIEVVUlJDX0NTUl9SRVNFTF9TVEFSVF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVkVOVF9CQVNFICsgNDIpDQorI2RlZmluZSBFVVJSQ19DU1JfUkVTRUxfRU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVZFTlRfQkFTRSArIDQzKQ0KKyNkZWZpbmUgRVVSUkNfQ1NSX1NJX0NIR0VEX0lORF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyA0NCkNCisvL0xCUw0KKyNkZWZpbmUgRVVSUkNfQ0VMTF9NRUFTX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyA0NSkNCisjZGVmaW5lIEVVUlJDX0VVTUNSX1NUQVJUX0xCU19SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVkVOVF9CQVNFICsgNDYpDQorI2RlZmluZSBFVVJSQ19FVU1DUl9TVE9QX0xCU19SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVZFTlRfQkFTRSArIDQ3KQ0KKyNkZWZpbmUgRVVSUkNfRVVDRVJfVUVfSU5GT19STEZfOUUwX0VWICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyA0OCkNCisjZGVmaW5lIEVVUlJDX0VVQ0VSX1VFX0NBUEFfTFRFXzlEMF9FViAgICAgICAgICAgKERXT1JEKShFVVJSQ19FVkVOVF9CQVNFICsgNDkpDQorI2RlZmluZSBFVVJSQ19NRUFTX0dBUF9DT05GSUdfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfRVZFTlRfQkFTRSArIDUwKQ0KKyNkZWZpbmUgRVVSUkNfQ0VSX1JFTF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0VWRU5UX0JBU0UgKyA1MSkNCisNCisNCisvKkVVUlJDPC0+TDFFKi8NCisjZGVmaW5lIEVVUlJDX0wxRV9NRUFTX1NVU1BFTkRfRVYgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19MMUVfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBFVVJSQ19MMUVfTUVBU19SRVNVTUVfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfTDFFX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgRVVSUkNfTDFFX0dTTV9NRUFTX1NUT1BfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0wxRV9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIEVVUlJDX0wxRV9VVFJBX01FQVNfU1RPUF9FViAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19MMUVfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBFVVJSQ19MMUVfR1NNX01FQVNfQ09ORklHX0VWICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfTDFFX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgRVVSUkNfTDFFX1REX01FQVNfQ09ORklHX0VWICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0wxRV9FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIEVVUlJDX0wxRV9SRVNPVVJDRV9SRUxfRVYgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19MMUVfRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBFVVJSQ19MMUVfUkVTT1VSQ0VfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfTDFFX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgRVVSUkNfTDFFX1NJX0VORF9JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0wxRV9FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIEVVUlJDX0wxRV9HRVRfUkZfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19MMUVfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBFVVJSQ19MMUVfU1RBVEVfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfTDFFX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIEVVUlJDX0wxRV9UUkFDRV9JTkRfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19MMUVfRVZFTlRfQkFTRSArIDExKQ0KKyNkZWZpbmUgRVVSUkNfTDFFX1dfTUVBU19DT05GSUdfUkVRX0VWICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0wxRV9FVkVOVF9CQVNFICsgMTIpDQorI2RlZmluZSBFVVJSQ19MMUVfSVJBVF9DR0lfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfTDFFX0VWRU5UX0JBU0UgKyAxMykNCisjZGVmaW5lIEVVUlJDX0wxRV9JUkFUX0NHSV9FTkRfRVYgICAgICAgICAgICAgICAgKERXT1JEKShFVVJSQ19MMUVfRVZFTlRfQkFTRSArIDE0KQ0KKw0KKyNkZWZpbmUgTDFFX0VVUlJDX1JFU09VUkNFX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0wxRV9SU1BfRVZFTlQgKyAwKQ0KKyNkZWZpbmUgTDFFX0VVUlJDX0dTTV9NRUFTX0lORF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0wxRV9SU1BfRVZFTlQgKyAxKQ0KKyNkZWZpbmUgTDFFX0VVUlJDX1REX0xJU1RfTUVBU19JTkRfRVYgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0wxRV9SU1BfRVZFTlQgKyAyKQ0KKyNkZWZpbmUgTDFFX0VVUlJDX1REX0JMSU5EX01FQVNfSU5EX0VWICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0wxRV9SU1BfRVZFTlQgKyAzKQ0KKyNkZWZpbmUgRVVSUkNfTDFFX0dFVF9SRl9DTkZfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0wxRV9SU1BfRVZFTlQgKyA0KQ0KKyNkZWZpbmUgTDFFX0VVUlJDX1dfTUVBU19STFRfSU5EX0VWICAgICAgICAgICAgICAoRFdPUkQpKEVVUlJDX0wxRV9SU1BfRVZFTlQgKyA1KQ0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyBMVEXQrdLp1bu6zc7vwO2y48/7z6LKwrz+1q685LXEz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKy8qIFBTIC0+IEVQSFkgTVNHIElEICovDQorI2RlZmluZSBMVEVfUF9GUkVRX1NDQU5fUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgTFRFX1BfQ0VMTF9TRUFSQ0hfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIExURV9QX1JFQURfU0lCMV9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBMVEVfUF9TQ0hFRF9TSV9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgTFRFX1BfQUJPUlRfU0lfUkVBRF9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIExURV9QX0FCT1JUX0NFTExfU0VBUkNIX1JFUV9FViAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBMVEVfUF9NRUFTX0NPTkZJR19SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgTFRFX1BfTUVBU19HQVBfQ09ORklHX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIExURV9QX01FQVNfTUFTS19TRVRfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBMVEVfUF9BQk9SVF9NRUFTX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgTFRFX1BfRUFSRkNOX0JBTkRfSU5GT19FViAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBMVEVfUF9DT01NT05fQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIExURV9QX0RFRElDQVRFRF9DT05GSUdfUkVRX0VWICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfRVZFTlRfQkFTRSArIDEyKQ0KKyNkZWZpbmUgTFRFX1BfSEFORE9WRVJfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9FVkVOVF9CQVNFICsgMTMpDQorI2RlZmluZSBMVEVfUF9NQUNfUkVTRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyAxNCkNCisjZGVmaW5lIExURV9QX1JFTF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfRVZFTlRfQkFTRSArIDE1KQ0KKyNkZWZpbmUgTFRFX1BfQUNDRVNTX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9FVkVOVF9CQVNFICsgMTYpDQorI2RlZmluZSBMVEVfUF9BQk9SVF9BQ0NFU1NfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyAxNykNCisjZGVmaW5lIExURV9QX1RBX0NNRF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfRVZFTlRfQkFTRSArIDE4KQ0KKyNkZWZpbmUgTFRFX1BfRFJYX0NNRF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9FVkVOVF9CQVNFICsgMTkpDQorI2RlZmluZSBMVEVfUF9UQV9USU1FUl9TVE9QX0lORF9FViAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyAyMCkNCisjZGVmaW5lIExURV9QX0ZSRVFfTElTVF9DT05GSUdfUkVRX0VWICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfRVZFTlRfQkFTRSArIDIxKQ0KKyNkZWZpbmUgTFRFX1BfSVJBVF9NRUFTX0NPTkZJR19SRVFfRVYgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9FVkVOVF9CQVNFICsgMjIpDQorI2RlZmluZSBMVEVfUF9BQk9SVF9HQVBfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyAyMykNCisjZGVmaW5lIExURV9QX0lSQVRfTUVBU19HQVBfQ09ORklHX1JFUV9FViAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfRVZFTlRfQkFTRSArIDI0KQ0KKyNkZWZpbmUgTFRFX1BfSURMRV9QRVJJT0RfUkVQX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9FVkVOVF9CQVNFICsgMjUpDQorI2RlZmluZSBMVEVfUF9TRVRfTU9ERV9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyAyNikNCisjZGVmaW5lIExURV9QX1JFU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfRVZFTlRfQkFTRSArIDI3KQ0KKyNkZWZpbmUgTFRFX1BfSVJBVF9HQVBfQ09ORklHX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9FVkVOVF9CQVNFICsgMjgpDQorI2RlZmluZSBMVEVfUF9XQUtFVVBfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyAyOSkNCisjZGVmaW5lIFpQU19MVEVfWkVQQ0dfUkVRICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfRVZFTlRfQkFTRSArIDMwKQ0KKyNkZWZpbmUgTFRFX1BfR1JOVElfQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9FVkVOVF9CQVNFICsgMzEpDQorI2RlZmluZSBMVEVfUF9CVFJVTktfVFRDSF9DT05GSUdfUkVRX0VWICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyAzMikNCisjZGVmaW5lIExURV9QX0RFRElDQVRFQ0RfUkVMX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfRVZFTlRfQkFTRSArIDMzKQ0KKyNkZWZpbmUgTFRFX1BfQlRSVU5LX0NPTkZJR19SRUxfRVYgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9FVkVOVF9CQVNFICsgMzQpDQorI2RlZmluZSBMVEVfUF9BQ1RfREVBQ1RfU0NFTExfQ1RSTF9FTEVNTlRfSU5EX0VWIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyAzNSkNCisjZGVmaW5lIExURV9QX01DQ0hfQ0ZHX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfRVZFTlRfQkFTRSArIDM2KQ0KKyNkZWZpbmUgTFRFX1BfTVRDSF9DRkdfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9FVkVOVF9CQVNFICsgMzcpDQorI2RlZmluZSBMVEVfUF9NVENIX01BU0tfU0VUX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyAzOCkNCisjZGVmaW5lIExURV9QX1BNQ0hfUkVMX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfRVZFTlRfQkFTRSArIDM5KQ0KKyNkZWZpbmUgTFRFX1BfTVNJX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9FVkVOVF9CQVNFICsgNDApDQorI2RlZmluZSBMVEVfUF9DQVJEMl9HQVBfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyA0MSkgLypUX3pMVEVfUF9jYXJkMl9nYXBfcmVxKi8NCisjZGVmaW5lIExURV9QX0NBUkQyX0dBUF9SRUxfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfRVZFTlRfQkFTRSArIDQyKSAvKlRfekxURV9QX2NhcmQyX2dhcF9yZWxfcmVxKi8NCisjZGVmaW5lIExURV9QX0NBUkQyX1NUT1BfR0FQX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfRVZFTlRfQkFTRSArIDQzKSAvKlRfekxURV9QX2NhcmQyX3N0b3BfZ2FwX3JlcSovDQorI2RlZmluZSBMVEVfUF9DQVJEMV9TVVNQRU5EX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyA0NCkgLypUX3pMVEVfUF9jYXJkMV9zdXNwZW5kX3JlcSovDQorI2RlZmluZSBMVEVfUF9DQVJEMV9SRVNVTUVfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyA0NSkgLypUX3pMVEVfUF9jYXJkMV9yZXN1bWVfcmVxKi8NCisjZGVmaW5lIExURV9QX01FQVNfUEVSSU9EX0NIR19SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfRVZFTlRfQkFTRSArIDQ2KQ0KKyNkZWZpbmUgTFRFX1BfQU1UX01TR19SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9FVkVOVF9CQVNFICsgNDcpDQorI2RlZmluZSBMVEVfUF9SUElfU0VUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyA0OCkNCisjZGVmaW5lIExURV9QX1JQSV9DRkdfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfRVZFTlRfQkFTRSArIDQ5KQ0KKyNkZWZpbmUgTFRFX1BfT1RET0FfQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9FVkVOVF9CQVNFICsgNTApDQorI2RlZmluZSBMVEVfUF9PVERPQV9NRUFTX0FCT1JUX0VWICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX0VWRU5UX0JBU0UgKyA1MSkNCisNCisNCisNCisNCisvKiBFUEhZIC0+IFBTIE1TRyBJRCAqLw0KKyNkZWZpbmUgTFRFX1BfU0lfREFUQV9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyAwKQ0KKyNkZWZpbmUgTFRFX1BfUEJDSF9SRUFEX0ZBSUxfSU5EX0VWICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyAxKQ0KKyNkZWZpbmUgTFRFX1BfRlJFUV9TQ0FOX0NORl9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyAyKQ0KKyNkZWZpbmUgTFRFX1BfQ0VMTF9TRUFSQ0hfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyAzKQ0KKyNkZWZpbmUgTFRFX1BfUENIX0RBVEFfSU5EX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyA0KQ0KKyNkZWZpbmUgTFRFX1BfSU5UUkFfTUVBU19JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyA1KQ0KKyNkZWZpbmUgTFRFX1BfSU5URVJfTUVBU19JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyA2KQ0KKyNkZWZpbmUgTFRFX1BfRFJYX1NUQVRFX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyA3KQ0KKyNkZWZpbmUgTFRFX1BfSEFORE9WRVJfQ05GX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyA4KQ0KKyNkZWZpbmUgTFRFX1BfT1VUX09GX1NZTkNfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyA5KQ0KKyNkZWZpbmUgTFRFX1BfUkVDT1ZFUllfU1lOQ19JTkRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyAxMCkNCisjZGVmaW5lIExURV9QX1BVQ0NIX1NSU19SRUxfSU5EX0VWICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfUlNQX0VWRU5UICsgMTEpDQorI2RlZmluZSBMVEVfUF9SRUxfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX1JTUF9FVkVOVCArIDEyKQ0KKyNkZWZpbmUgTFRFX1BfQUNDRVNTX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyAxMykNCisjZGVmaW5lIExURV9QX0VVTUFDX0lOSVRfUkFfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfUlNQX0VWRU5UICsgMTQpDQorI2RlZmluZSBMVEVfUF9SQV9SRVNQT05TRV9JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX1JTUF9FVkVOVCArIDE1KQ0KKyNkZWZpbmUgTFRFX1BfRExTQ0hfREFUQV9JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyAxNikNCisjZGVmaW5lIExURV9QX0lSQVRfTUVBU19JTkRfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfUlNQX0VWRU5UICsgMTcpDQorI2RlZmluZSBMVEVfUF9BQk9SVF9HQVBfQ05GX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX1JTUF9FVkVOVCArIDE4KQ0KKyNkZWZpbmUgTFRFX1BfUkVTRVRfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyAxOSkgDQorI2RlZmluZSBMVEVfUF9JTkFDVElWRV9USU1FX0lORF9FViAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX1JTUF9FVkVOVCArIDIwKQ0KKyNkZWZpbmUgTFRFX1BfU0xFRVBfVElNRV9JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyAyMSkNCisjZGVmaW5lIFpQU19MVEVfWkVQQ0dfQ05GICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfUlNQX0VWRU5UICsgMjIpDQorI2RlZmluZSBMVEVfUF9FTUJNU19EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX1JTUF9FVkVOVCArIDIzKQ0KKyNkZWZpbmUgTFRFX1BfVUxHUkFOVF9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyAyNCkNCisjZGVmaW5lIExURV9QX09URE9BX01FQVNfUkxUX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfUlNQX0VWRU5UICsgMjUpDQorI2RlZmluZSBMVEVfUF9DMF9TQVZFX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyAyNikNCisjZGVmaW5lIExURV9QX0JUUlVOS19DUUlfSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfUlNQX0VWRU5UICsgMjcpDQorI2RlZmluZSBMVEVfUF9MSVNURU5JTkdIT19DTkZfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX1JTUF9FVkVOVCArIDI4KQ0KKyNkZWZpbmUgTFRFX1BfQlRSVU5LX1BDSF9EQVRBX0lORF9FViAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyAyOSkNCisjZGVmaW5lIEVQRENQX0VEQ1BfQ09NUExFVEVfSU5EICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfUlNQX0VWRU5UICsgMzApIA0KKyNkZWZpbmUgRVVSTENfRU1BQ19DT01QTEVURV9JTkQgICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyAzMSkgDQorI2RlZmluZSBMVEVfUF9DQVJEMl9HQVBfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX1JTUF9FVkVOVCArIDMyKSAvKlRfekxURV9QX2NhcmQyX2dhcF9pbmQqLw0KKyNkZWZpbmUgTFRFX1BfQ0FSRDJfR0FQX1JFTF9DTkZfRVYgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyAzMykNCisjZGVmaW5lIExURV9QX0NBUkQyX1NUT1BfR0FQX0NORl9FViAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfUlNQX0VWRU5UICsgMzQpDQorI2RlZmluZSBMVEVfUF9DQVJEMV9TVVNQRU5EX0NORl9FViAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX1JTUF9FVkVOVCArIDM1KQ0KKyNkZWZpbmUgTFRFX1BfUEhZV0FLRVVQUFNfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKExURV9QU19FVVBIWV9SU1BfRVZFTlQgKyAzNikNCisjZGVmaW5lIExURV9QX0lDUF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfUFNfRVVQSFlfUlNQX0VWRU5UICsgMzcpDQorI2RlZmluZSBMVEVfUF9BTVRfTVNHX0lORF9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX1JTUF9FVkVOVCArIDM4KQ0KKw0KKw0KKw0KKyNpZiAwDQorI2RlZmluZSBMVEVfUF9SRl9FUlJfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTFRFX1BTX0VVUEhZX1JTUF9FVkVOVCArIDM5KQ0KKyNlbmRpZg0KKw0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyBMVEXQrdLp1bu6zVRSU9auvOS1xM/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFRSU19FU01fREFUQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRVNNX0VWRU5UX0JBU0UgKyAwKSAgICAgDQorI2RlZmluZSBUUlNfRVNNX0wzVENfREFUQV9SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VTTV9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIFRSU19FU01fQUNUX0RFRF9FQkNPTl9BQ0NfRVYgICAgICAgICAgICAgKERXT1JEKShUUlNfRVNNX1JTUF9FVkVOVCArIDApDQorI2RlZmluZSBUUlNfRVNNX0FDVF9ERURfRUJDT05fUkVKX0VWICAgICAgICAgICAgIChEV09SRCkoVFJTX0VTTV9SU1BfRVZFTlQgKyAxKQ0KKyNkZWZpbmUgVFJTX0VTTV9BQ1RfREVGX0VCQ09OX0FDQ19FViAgICAgICAgICAgICAoRFdPUkQpKFRSU19FU01fUlNQX0VWRU5UICsgMikNCisjZGVmaW5lIFRSU19FU01fQUNUX0RFRl9FQkNPTl9SRUpfRVYgICAgICAgICAgICAgKERXT1JEKShUUlNfRVNNX1JTUF9FVkVOVCArIDMpDQorI2RlZmluZSBUUlNfRVNNX0JSX0FMTE9DX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VTTV9SU1BfRVZFTlQgKyA0KQ0KKyNkZWZpbmUgVFJTX0VTTV9CUl9NT0RfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19FU01fUlNQX0VWRU5UICsgNSkNCisjZGVmaW5lIFRSU19FU01fREVBQ1RfRUJDT05fQUNDX0VWICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRVNNX1JTUF9FVkVOVCArIDYpDQorI2RlZmluZSBUUlNfRVNNX0VTTUlORk9fUlNQX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VTTV9SU1BfRVZFTlQgKyA3KQ0KKyNkZWZpbmUgVFJTX0VTTV9FU01TVEFUVVNfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19FU01fUlNQX0VWRU5UICsgOCkNCisjZGVmaW5lIFRSU19FU01fTU9EX0VCQ09OX0FDQ19FViAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRVNNX1JTUF9FVkVOVCArIDkpDQorI2RlZmluZSBUUlNfRVNNX01PRF9FQkNPTl9SRUpfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VTTV9SU1BfRVZFTlQgKyAxMCkNCisjZGVmaW5lIFRSU19FU01fUEROX0NPTl9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRVNNX1JTUF9FVkVOVCArIDExKQ0KKyNkZWZpbmUgVFJTX0VTTV9QRE5fRElTQ19SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19FU01fUlNQX0VWRU5UICsgMTIpDQorI2RlZmluZSBUUlNfRVNNX0wzVENfQ0xPU0VfVUVURVNUX0xPT1BfQ01QX0VWICAgIChEV09SRCkoVFJTX0VTTV9SU1BfRVZFTlQgKyAxMykNCisjZGVmaW5lIFRSU19FU01fTDNUQ19PUEVOX1VFVEVTVF9MT09QX0NNUF9FViAgICAgKERXT1JEKShUUlNfRVNNX1JTUF9FVkVOVCArIDE0KQ0KKyNkZWZpbmUgVFJTX0VTTV9MM1RDX0FDVF9URVNUX01PREVfQ01QX0VWICAgICAgICAoRFdPUkQpKFRSU19FU01fUlNQX0VWRU5UICsgMTUpDQorI2RlZmluZSBUUlNfRVNNX0wzVENfREVBQ1RfVEVTVF9NT0RFX0NNUF9FViAgICAgIChEV09SRCkoVFJTX0VTTV9SU1BfRVZFTlQgKyAxNikNCisjZGVmaW5lIFRSU19FU01fTDNUQ19PUEVOX1VFVEVTVF9MT09QX0NNQk1TUEFDS0VUQ05UX1JFU1BfRVYgICAgIChEV09SRCkoVFJTX0VTTV9SU1BfRVZFTlQgKyAxNykNCisvKiBUUlMgLT4gTU1FX0VNTSAqLw0KKyNkZWZpbmUgVFJTX0VNTV9EQVRBX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19FTU1fRVZFTlRfQkFTRSArIDApIA0KKyNkZWZpbmUgVFJTX0VNTV9NQVBQRURfU0VDX1BBUkFNX0V2ICAgICAgKERXT1JEKShUUlNfRU1NX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgVFJTX0VNTV9QU19IT19GUk9NX0VVVFJBX0V2ICAgICAgKERXT1JEKShUUlNfRU1NX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgVFJTX0VNTV9QU19IT19UT19FVVRSQV9FdiAgICAgICAgICAgKERXT1JEKShUUlNfRU1NX0VWRU5UX0JBU0UgKyAzKQ0KKy8qIE1NRV9FTU0gLT5UUlMgKi8NCisjZGVmaW5lIEVOQl9UUlNfRVNNX0NNRF9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRU1NX1JTUF9FVkVOVCArIDApDQorI2RlZmluZSBUUlNfRU1NX0wzTVNHX0FUVEFDSF9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VNTV9SU1BfRVZFTlQgKyAxKQ0KKyNkZWZpbmUgVFJTX0VNTV9MM01TR19BVFRBQ0hfQ01QX0VWICAgICAgICAgICAgICAoRFdPUkQpKFRSU19FTU1fUlNQX0VWRU5UICsgMikNCisjZGVmaW5lIFRSU19FTU1fTDNNU0dfQVVUSF9GQUlMX0VWICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRU1NX1JTUF9FVkVOVCArIDMpDQorI2RlZmluZSBUUlNfRU1NX0wzTVNHX0FVVEhfUkVKX0VWICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VNTV9SU1BfRVZFTlQgKyA0KQ0KKyNkZWZpbmUgVFJTX0VNTV9MM01TR19BVVRIX1JTUF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19FTU1fUlNQX0VWRU5UICsgNSkNCisjZGVmaW5lIFRSU19FTU1fTDNNU0dfREVUQUNIX0FQVF9FViAgICAgICAgICAgICAgKERXT1JEKShUUlNfRU1NX1JTUF9FVkVOVCArIDYpDQorI2RlZmluZSBUUlNfRU1NX0wzTVNHX0RFVEFDSF9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VNTV9SU1BfRVZFTlQgKyA3KQ0KKyNkZWZpbmUgVFJTX0VNTV9MM01TR19VTE5BU19UUkFOU19FViAgICAgICAgICAgICAoRFdPUkQpKFRSU19FTU1fUlNQX0VWRU5UICsgOCkNCisjZGVmaW5lIFRSU19FTU1fTDNNU0dfU0VSVklDRV9SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShUUlNfRU1NX1JTUF9FVkVOVCArIDkpDQorI2RlZmluZSBUUlNfRU1NX0wzTVNHX0VYU0VSVklDRV9SRVFfRVYgICAgICAgICAgIChEV09SRCkoVFJTX0VNTV9SU1BfRVZFTlQgKyAxMCkNCisjZGVmaW5lIFRSU19FTU1fTDNNU0dfR1VUSV9DTVBfRVYgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRU1NX1JTUF9FVkVOVCArIDExKQ0KKyNkZWZpbmUgVFJTX0VNTV9MM01TR19JRE5UX1JTUF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19FTU1fUlNQX0VWRU5UICsgMTIpDQorI2RlZmluZSBUUlNfRU1NX0wzTVNHX1NNQ19DT01fRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VNTV9SU1BfRVZFTlQgKyAxMykNCisjZGVmaW5lIFRSU19FTU1fTDNNU0dfU01DX1JFSl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRU1NX1JTUF9FVkVOVCArIDE0KQ0KKyNkZWZpbmUgVFJTX0VNTV9MM01TR19UQVVfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19FTU1fUlNQX0VWRU5UICsgMTUpDQorI2RlZmluZSBUUlNfRU1NX0wzTVNHX1RBVV9DTVBfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VNTV9SU1BfRVZFTlQgKyAxNikNCisjZGVmaW5lIFRSU19FTU1fTDNNU0dfRU1NU1RBVFVTX0VWICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRU1NX1JTUF9FVkVOVCArIDE3KQ0KKyNkZWZpbmUgVFJTX0VNTV9EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19FTU1fUlNQX0VWRU5UICsgMTgpDQorDQorI2RlZmluZSBFTkJfRU1NX0VTTV9EQVRBX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX0VNTV9FU01fRVZFTlRfQkFTRSArIDApIA0KKyNkZWZpbmUgRU5CX0VNTV9FU01fREFUQV9JTkRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOQl9FTU1fRVNNX1JTUF9FVkVOVCArIDApIA0KKy8qIE1NRV9FTU0gLT4gRU5CUlJDICovDQorI2RlZmluZSBFTkJfUlJDX0VNTV9EQVRBX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FTU1fRVZFTlRfQkFTRSArIDApIA0KKyNkZWZpbmUgRU5CX1JSQ19FTU1fRExTUU5fRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FTU1fRVZFTlRfQkFTRSArIDEpIA0KKy8qIEVOQlJSQyAtPiBNTUVfRU1NICovDQorI2RlZmluZSBFTkJfUlJDX0VNTV9EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FTU1fUlNQX0VWRU5UICsgMCkgDQorDQorDQorLyogxuTL/ExURbLiytTEo7/pz/vPoklEuurM7bzTtKYqLw0KKyNkZWZpbmUgRU5CUlJDX1JSQ19DT05OX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOQl9SUkNfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBFTkJSUkNfUlJDX0NPTk5fU0VUVVBfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIEVOQlJSQ19SUkNfQ09OTl9SRUpfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTkJfUlJDX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgRU5CUlJDX1JSQ19DT05OX0NNUF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOQl9SUkNfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBFTkJSUkNfU0VDX01PREVfQ01EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIEVOQlJSQ19TRUNfTU9ERV9DTVBfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTkJfUlJDX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgRU5CUlJDX1NFQ19NT0RFX0ZBSUxfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOQl9SUkNfRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBFTkJSUkNfUlJDX0NPTk5fUkVDT05GSUdfRVYgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIEVOQlJSQ19SUkNfQ09OTl9SRUNPTkZJR19DTVBfRVYgICAgICAgICAgKERXT1JEKShFTkJfUlJDX0VWRU5UX0JBU0UgKyA4KQ0KKyNkZWZpbmUgRU5CUlJDX1JSQ19DT05OX1JFRVNUX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKEVOQl9SUkNfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBFTkJSUkNfUlJDX0NPTk5fUkVFU1RfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMTApDQorI2RlZmluZSBFTkJSUkNfUlJDX0NPTk5fUkVFU1RfUkVKX0VWICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMTEpDQorI2RlZmluZSBFTkJSUkNfUlJDX0NPTk5fUkVFU1RfQ01QX0VWICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMTIpDQorI2RlZmluZSBFTkJSUkNfUlJDX0NPTk5fUkVMX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMTMpDQorI2RlZmluZSBFTkJSUkNfVUVfQ0FQX0VOUVVJUllfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMTQpDQorI2RlZmluZSBFTkJSUkNfVUVfQ0FQX0lORk9fRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMTUpDQorI2RlZmluZSBFTkJSUkNfVUVfTUVBU19SUFRfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMTYpDQorI2RlZmluZSBFTkJfTkFTUlJDX0NNRF9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMTcpDQorI2RlZmluZSBFTkJfTkFTUlJDX1JTUF9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMTgpDQorI2RlZmluZSBUUlNfRVBIWV9VRV9NRUFTX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMTkpICAgDQorI2RlZmluZSBUUlNfRVBIWV9VRV9DRVJfSE9fUkVRX0NUTF9FViAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMjApDQorI2RlZmluZSBFTkJSUkNfQ09VTlRFUl9DSEVDS19TVUNDX0lORF9FViAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMjEpDQorI2RlZmluZSBFTkJSUkNfQ09VTlRFUl9DSEVDS19GQUlMX0lORF9FViAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMjIpDQorI2RlZmluZSBFTkJSUkNfTU9CSUxJVFlfRlJPTV9FVVRSQV9FViAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMjMpDQorI2RlZmluZSBFTkJSUkNfU1RBUlRfSE9fRlJPTV9FVVRSQV9JTkRfRVYgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMjQpDQorI2RlZmluZSBFTkJSUkNfU1RBUlRfSE9fVE9fRVVUUkFfRVYgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMjUpDQorI2RlZmluZSBFTkJSUkNfUFJPWElNSVRZX1JQVF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMjYpDQorI2RlZmluZSBFTkJSUkNfVUVfSU5GT19SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMjcpDQorI2RlZmluZSBFTkJSUkNfVUVfSU5GT19SU1BfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMjgpDQorI2RlZmluZSBFTkJSUkNfTUJTRk5fQVJFQV9DT05GSUdfRVYgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMjkpDQorI2RlZmluZSBFTkJSUkNfTUJNU19DT1VOVElOR19SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMzApDQorI2RlZmluZSBFTkJSUkNfVERMSU5GT19UUkFOU19FViAgICAgICAgICAgICAgKERXT1JEKShFTkJfUlJDX0VWRU5UX0JBU0UgKyAzMSkNCisjZGVmaW5lIEVOQlJSQ19HUk9VUENBTExfQ09ORklHX0VWICAgICAgICAgICAgICAoRFdPUkQpKEVOQl9SUkNfRVZFTlRfQkFTRSArIDMyKQ0KKyNkZWZpbmUgRU5CUlJDX0dST1VQQ0FMTF9SRUxFQVNFX0VWICAgICAgICAgICAgICAoRFdPUkQpKEVOQl9SUkNfRVZFTlRfQkFTRSArIDMzKQ0KKyNkZWZpbmUgRU5SUkNfTkVJR0hCT1VSSU5GT19DT05GSUdfRVYgICAgICAgICAgICAgIChEV09SRCkoRU5CX1JSQ19FVkVOVF9CQVNFICsgMzQpDQorDQorDQorI2RlZmluZSBFTlJSQ19FTlBEQ1BfU01DX0lOVEVHUklUWV9DSEVDS19SRVFfRVYgIChEV09SRCkoRU5SUkNfRU5QRENQX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgRU5SUkNfRU5QRENQX0NPTkZJR19DSVBIRVJfS0VZX1JFUV9FViAgICAoRFdPUkQpKEVOUlJDX0VOUERDUF9FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIEVOUlJDX0VOUERDUF9DT05GSUdfSU5URUdSSVRZX0tFWV9SRVFfRVYgKERXT1JEKShFTlJSQ19FTlBEQ1BfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBFTlJSQ19FTlBEQ1BfQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoRU5SUkNfRU5QRENQX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgRU5SUkNfRU5QRENQX0RBVEFfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOUlJDX0VOUERDUF9FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIEVOUlJDX0VOUERDUF9SRUVTVEFCTElTSF9SRVFfRVYgICAgICAgICAgKERXT1JEKShFTlJSQ19FTlBEQ1BfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBFTlJSQ19FTlBEQ1BfUkVMRUFTRV9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoRU5SUkNfRU5QRENQX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgRU5SUkNfRU5QRENQX1JFU1VNRV9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEVOUlJDX0VOUERDUF9FVkVOVF9CQVNFICsgNykNCisjZGVmaW5lIEVOUlJDX0VOUERDUF9TVVNQRU5EX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShFTlJSQ19FTlBEQ1BfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBFTlJSQ19FTlBEQ1BfREVDSVBIRVJfQU5EX0lOVENIRUNLX1JFUV9FViAoRFdPUkQpKEVOUlJDX0VOUERDUF9FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIEVOUlJDX0VOUERDUF9TRUNfQ09ORklHX1JFUV9FViAgICAgICAgICAgKERXT1JEKShFTlJSQ19FTlBEQ1BfRVZFTlRfQkFTRSArIDEwKQ0KKw0KKyNkZWZpbmUgRU5SUkNFTlBEQ1BfU01DX0lOVEVHUklUWV9DSEVDS19DTkZfRVYgICAgKERXT1JEKShFTlJSQ19FTlBEQ1BfUlNQX0VWRU5UICsgMCkNCisjZGVmaW5lIEVOUlJDRU5QRENQX0RBVEFfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5SUkNfRU5QRENQX1JTUF9FVkVOVCArIDEpDQorI2RlZmluZSBFTlJSQ0VOUERDUF9JTlRFR0lSVFlfRkFJTF9JTkRfRVYgICAgICAgICAoRFdPUkQpKEVOUlJDX0VOUERDUF9SU1BfRVZFTlQgKyAyKQ0KKyNkZWZpbmUgRU5SUkNFTlBEQ1BfQ09ORklHX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShFTlJSQ19FTlBEQ1BfUlNQX0VWRU5UICsgMykNCisjZGVmaW5lIEVOUlJDRU5QRENQX0RBVEFDX05GX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5SUkNfRU5QRENQX1JTUF9FVkVOVCArIDQpDQorI2RlZmluZSBFTlJSQ0VOUERDUF9SRUVTVEFCTElTSF9DTkZfRVYgICAgICAgICAgICAoRFdPUkQpKEVOUlJDX0VOUERDUF9SU1BfRVZFTlQgKyA1KQ0KKyNkZWZpbmUgRU5SUkNFTlBEQ1BfRU5BQkxFX1VMX0NJUEhFUl9SRVFfRVYgICAgICAgKERXT1JEKShFTlJSQ19FTlBEQ1BfUlNQX0VWRU5UICsgNikNCisjZGVmaW5lIEVOUlJDRU5QRENQX0VOQUJMRV9VTF9ERUNJUEhFUl9SRVFfRVYgICAgIChEV09SRCkoRU5SUkNfRU5QRENQX1JTUF9FVkVOVCArIDcpDQorI2RlZmluZSBFTlJSQ0VOUERDUF9DT1VOVEVSX0NIRUNLX1JFUV9FViAgICAgICAgICAoRFdPUkQpKEVOUlJDX0VOUERDUF9SU1BfRVZFTlQgKyA4KQ0KKyNkZWZpbmUgRU5SUkNFTlBEQ1BfTURUX1JFUV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTlJSQ19FTlBEQ1BfUlNQX0VWRU5UICsgOSkNCisNCisjZGVmaW5lIEVOUERDUF9FRENQX0NPTVBMRVRFX0lORCAgICAgICAgICAgICAgICAgIChEV09SRCkoUFNfRU5EQ1BfUlNQX0VWRU5UICsgMCkgDQorI2RlZmluZSBFTlJMQ19FTk1BQ19DT01QTEVURV9JTkQgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBTX0VORENQX1JTUF9FVkVOVCArIDEpIA0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyBFTlBEQ1AgVElNRVIgz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgRU5QRENQX0RJU0NBUkRUSU1FUl9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOUERDUF9USU1FUl9FVkVOVF9CQVNFICsgMCkNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBQREkgLSBQRENQIM/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIEVOUERJX0RBVEFfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTlBESV9FTlBEQ1BfRVZFTlRfQkFTRSArIDApDQorDQorI2RlZmluZSBFTlBESV9EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5QRElfRU5QRENQX1JTUF9FVkVOVCArIDApDQorI2RlZmluZSBFTlBESV9OT1RfUkVBRFlfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5QRElfRU5QRENQX1JTUF9FVkVOVCArIDEpDQorI2RlZmluZSBFTlBESV9SRUFEWV9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5QRElfRU5QRENQX1JTUF9FVkVOVCArIDIpDQorDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgVFJTIM/7z6K6xbao0uXOqkdDRiCy4srUtvjM7bzTMjAxMC8zLzggU0hJRkFOR01JTkcNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisNCisjZGVmaW5lIExURV9HQ0ZfU1RBUlRDSEVDS19SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfR0NGX1RSU19FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIExURV9HQ0ZfQ0hFQ0tQQVNTX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfR0NGX1RSU19FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIExURV9HQ0ZfQ0hFQ0tGQUlMX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfR0NGX1RSU19FVkVOVF9CQVNFICsgMikNCisNCisjZGVmaW5lIExURV9HQ0ZfQ0hFQ0tfVElNRVJfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShMVEVfR0NGX1RJTUVSX0VWRU5UX0JBU0UgKyAwKQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIEVOUkxDIC0gVFJTIM/7z6K6xbao0uUyMDEwLzMvMSBMSVVIVUFODQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBUUlNfRU5STENfVU1QRFVfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VOUkxDX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgVFJTX0VOUkxDX0FNUERVX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19FTlJMQ19FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIFRSU19FTlJMQ19TRFVfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRU5STENfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBUUlNfRU5STENfQVVUT0FDS19SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VOUkxDX0VWRU5UX0JBU0UgKyAzKQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFBESSAtIFRSUyDP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBTSU1VTEFUSV9EQVRBX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfU0lNVUxQRElfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBTSU1VTEFUSV9QRVJJT0RfREFUQV9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfU0lNVUxQRElfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBTSU1VTEFUSV9TRU5EX0RBVEFfVElNRVJfRVYgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfU0lNVUxQRElfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBTSU1VTEFUSV9QRVJJT0RfREFUQV9TVE9QX0VWICAgICAgICAgICAgICAoRFdPUkQpKFRSU19TSU1VTFBESV9FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIFNJTVVMQVRJX0NMRUFSX1NUQVRJU1RJQ1NfRVYgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfU0lNVUxQRElfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBTSU1VTEFUSV9TSE9XX1NUQVRJU1RJQ1NfRVYgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfU0lNVUxQRElfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBTSU1VTEFUSV9EQVRBX1JFUV9FWF9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfU0lNVUxQRElfRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBTSU1VTEFUSV9EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfU0lNVUxQRElfRVZFTlRfQkFTRSArIDcpDQorI2RlZmluZSBTSU1VTFBTSV9DT05GSUdfRVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX1NJTVVMUERJX0VWRU5UX0JBU0UgKyA4KQ0KKyNkZWZpbmUgU0lNVUxBVElfUk9IQ19JUFY0X0RBVEFfQ09ORklHX0VWICAgIChEV09SRCkoVFJTX1NJTVVMUERJX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgU0lNVUxBVElfUk9IQ19JUFY2X0RBVEFfQ09ORklHX0VWICAgIChEV09SRCkoVFJTX1NJTVVMUERJX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIFNJTVVMQVRJX1JPSENfVURQX0RBVEFfQ09ORklHX0VWICAgICAoRFdPUkQpKFRSU19TSU1VTFBESV9FVkVOVF9CQVNFICsgMTEpDQorI2RlZmluZSBTSU1VTEFUSV9ST0hDX1JUUF9EQVRBX0NPTkZJR19FViAgICAgIChEV09SRCkoVFJTX1NJTVVMUERJX0VWRU5UX0JBU0UgKyAxMikNCisjZGVmaW5lIFNJTVVMQVRJX1JPSENfRVNQX0RBVEFfQ09ORklHX0VWICAgICAgKERXT1JEKShUUlNfU0lNVUxQRElfRVZFTlRfQkFTRSArIDEzKQ0KKw0KKyNkZWZpbmUgU0lNVUxFTlBESV9EQVRBX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfU0lNVUxFTlBESV9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIFNJTVVMRU5QRElfUEVSSU9EX0RBVEFfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX1NJTVVMRU5QRElfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBTSU1VTEVOUERJX1NFTkRfREFUQV9USU1FUl9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19TSU1VTEVOUERJX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgU0lNVUxFTlBESV9QRVJJT0RfREFUQV9TVE9QX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19TSU1VTEVOUERJX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgU0lNVUxFTlBESV9DTEVBUl9TVEFUSVNUSUNTX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX1NJTVVMRU5QRElfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBTSU1VTEVOUERJX1NIT1dfU1RBVElTVElDU19FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19TSU1VTEVOUERJX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgU0lNVUxFTlBESV9EQVRBX1JFUV9FWF9FViAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfU0lNVUxFTlBESV9FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIFNJTVVMRU5QRElfUk9IQ19JUFY0X0RBVEFfQ09ORklHX0VWICAgICAgICAoRFdPUkQpKFRSU19TSU1VTEVOUERJX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgU0lNVUxFTlBESV9ST0hDX0lQVjZfREFUQV9DT05GSUdfRVYgICAgICAgIChEV09SRCkoVFJTX1NJTVVMRU5QRElfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBTSU1VTEVOUERJX1JPSENfVURQX0RBVEFfQ09ORklHX0VWICAgICAgICAgKERXT1JEKShUUlNfU0lNVUxFTlBESV9FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIFNJTVVMRU5QRElfUk9IQ19SVFBfREFUQV9DT05GSUdfRVYgICAgICAgICAoRFdPUkQpKFRSU19TSU1VTEVOUERJX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIFNJTVVMRU5QRElfUk9IQ19FU1BfREFUQV9DT05GSUdfRVYgICAgICAgICAoRFdPUkQpKFRSU19TSU1VTEVOUERJX0VWRU5UX0JBU0UgKyAxMSkNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBFTlJSQ9PrRU5STEMgz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgRU5SUkNfRU5STENfQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVOUlJDX0VOUkxDX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgRU5SUkNfRU5STENfUkVFU1RBQkxJU0hfUkVRX0VWICAgICAgICAgICAoRFdPUkQpKEVOUlJDX0VOUkxDX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgRU5SUkNfRU5STENfUkVMRUFTRV9SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEVOUlJDX0VOUkxDX0VWRU5UX0JBU0UgKyAyKQ0KKw0KKyNkZWZpbmUgRU5STENfRU5SUkNfQ09ORklHX0NORl9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVOUlJDX0VOUkxDX1JTUF9FVkVOVCArIDApDQorI2RlZmluZSBFTlJMQ19FTlJSQ19SRUVTVEFCTElTSF9DTkZfRVYgICAgICAgICAgIChEV09SRCkoRU5SUkNfRU5STENfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIEVOUkxDX0VOUlJDX1JFVFhfRkFJTF9JTkRfRVYgICAgICAgICAgICAgKERXT1JEKShFTlJSQ19FTlJMQ19SU1BfRVZFTlQgKyAyKQ0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgVU3Eo8q9yc/Q0Mr9vt3It8jPz/vPog0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgRU5STENfRU5QRENQX1VNREFUQV9DTkZfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEVOUERDUF9FTlJMQ19FVkVOVF9CQVNFICsgMCkNCisNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBFTlJMQyC2qMqxxvfP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBFTlJMQ19SRU9SREVSSU5HX1RJTUVSX0VWICAgICAgICAgICAgICAgIChEV09SRCkoRU5STENfVElNRVJfRVZFTlRfQkFTRSArIDApDQorLypFUEhZLS0tPkVOTUFDKi8gICAgICAgDQorI2RlZmluZSBFUEhZX0VOTUFDX0RBVEFfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5NQUNfRVBIWV9SU1BfRVZFTlQgKyAwKSAgIC8qRVVNQUO3osvNtcTK/b7dtb207yovDQorICAgIA0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiC21NOmVUWy4FJSQyDP4LnYz/vPoiAqKioqKioqKioqKiDK/b7dw+bV4sDv06a4w7K70OjSqtXi0KnP+8+iINXiwO+1xLao0uXKx9LUt8DN8tK7ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisjZGVmaW5lIEVOTUFDX0NDQ0hfREFUQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShFTlJSQ19FTk1BQ19FVkVOVF9CQVNFICsgMCkgIC8qUlJDsuDH68fzQ0NDSMr9vt0qLw0KKyNkZWZpbmUgRU5NQUNfQ09NTV9DT05GSUdfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOUlJDX0VOTUFDX0VWRU5UX0JBU0UgKyAxKSAgLypSUkOy4Leiy83NqNPDxeTWw8r9vt0qLw0KKyNkZWZpbmUgRU5NQUNfREVESV9DT05GSUdfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOUlJDX0VOTUFDX0VWRU5UX0JBU0UgKyAyKSAgLypSUkOy4Leiy83XqNPDxeTWw8r9vt0qLw0KKyNkZWZpbmUgRU5NQUNfUkVMX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOUlJDX0VOTUFDX0VWRU5UX0JBU0UgKyAzKSAgLypSUkOy4Mfrx/NNQUPKzbfF18rUtKGizcuz9sGsvdPMrCovDQorI2RlZmluZSBFTk1BQ19SRVNFVF9NQUNfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5SUkNfRU5NQUNfRVZFTlRfQkFTRSArIDQpICAvKlJSQ7Lgx+vH801BQyBSRVNFVCovDQorI2RlZmluZSBFTk1BQ19SRVNVTUVfUkJfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5SUkNfRU5NQUNfRVZFTlRfQkFTRSArIDUpICAvKlJSQ7Lgx+vH87vWuLRSQiovDQorI2RlZmluZSBFTk1BQ19TVVNQRU5EX1JCX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5SUkNfRU5NQUNfRVZFTlRfQkFTRSArIDYpICAvKlJSQ7Lgx+vH89TdzaNSQiovDQorI2RlZmluZSBFTk1BQ19BQ1RJVkVfQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoRU5SUkNfRU5NQUNfRVZFTlRfQkFTRSArIDcpDQorDQorDQorDQorI2RlZmluZSBFTk1BQ19DQ0NIX0RBVEFfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5SUkNfRU5NQUNfUlNQX0VWRU5UICsgMCkgICAvKk1BQ7jm1qpSUkMgQ0NDSCDK/b7dtb207yovICAgDQorI2RlZmluZSBFTk1BQ19SQV9QUk9CTEVNX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRU5SUkNfRU5NQUNfUlNQX0VWRU5UICsgMSkgICAvKk1BQ7jm1qpSUkMgUkEg1ti0q7TOyv25/bbgKi8NCisjZGVmaW5lIEVOTUFDX1JBX1NVQ0NFU1NfSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShFTlJSQ19FTk1BQ19SU1BfRVZFTlQgKyAyKSAgIC8qTUFDuObWqlJSQyBSQSCzybmmKi8NCisNCisvKlRSUy0tLT5FUEhZKi8NCisjZGVmaW5lIEVQSFlfVElNRVJfSU5URVJVUFRfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRVBIWV9FVkVOVF9CQVNFICsgMSkgICAgICAgIC8qINfT1qHW0LbPtKW3os/7z6IgKi8NCisjZGVmaW5lIFRSU19FUEhZX0RVUExJQ0FURV9TRU5EX0NPTkZJR19FViAgICAgICAgKERXT1JEKShUUlNfRVBIWV9FVkVOVF9CQVNFICsgMikgICAgICAgIC8qVFJTz/JFUEhZt6LLzdbYuLS3osvNyv2+3bXExeTWw8/7z6IqLw0KKyNkZWZpbmUgRVBIWV9ETF9SQVJFU1VMVF9DT05GSUdfUkVRX0VWICAgICAgICAgICAoRFdPUkQpKFRSU19FUEhZX0VWRU5UX0JBU0UgKyAzKSAgICAgICAgLypUUlPP8kVQSFm3osvNIFJBs8m5ptPrt/G1xMXk1sMgKi8NCisjZGVmaW5lIEVQSFlfRExfQ1JSRVNVTFRfQ09ORklHX1JFUV9FViAgICAgICAgICAgKERXT1JEKShUUlNfRVBIWV9FVkVOVF9CQVNFICsgNCkgICAgICAgIC8qVFJTz/JFUEhZt6LLzSBDUrPJuabT67fxtcTF5NbDICovDQorI2RlZmluZSBUUlNfRVBIWV9ESVNDQVJEX0NPTkZJR19SRVFfRVYgICAgICAgICAgIChEV09SRCkoVFJTX0VQSFlfRVZFTlRfQkFTRSArIDUpICAgICAgICAvKlRSU8/yRVBIWbeiy80gtqqw/LXExeTWwyAgKi8NCisjZGVmaW5lIFRSU19FUEhZX0dSQU5UX0NPTkZJR19FViAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRVBIWV9FVkVOVF9CQVNFICsgNikgICAgICAgIC8qVFJTz/JFUEhZt6LLzSDK2siotcTF5NbDss7K/SAqLw0KKyNkZWZpbmUgVFJTX0VQSFlfRElTT1JERVJfU0VORF9DT05GSUdfRVYgICAgICAgICAoRFdPUkQpKFRSU19FUEhZX0VWRU5UX0JBU0UgKyA3KSAgICAgICAgLypUUlPP8kVQSFm3osvNwtLQ8reiy821xMXk1sPP+8+iKi8NCisNCisjZGVmaW5lIEVQSFlfVUxHUkFOVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRVBIWV9FVkVOVF9CQVNFICsgOCkgICAgICAgIC8qvKS3osnP0NDX6dahKi8NCisjZGVmaW5lIEVQSFlfRExHUkFOVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRVBIWV9FVkVOVF9CQVNFICsgOSkgICAgICAgIC8qvKS3os/C0NDX6dahKi8NCisjZGVmaW5lIEVQSFlfR1JBTlRBUlJBWUNPTkZJR19SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShUUlNfRVBIWV9FVkVOVF9CQVNFICsgMTApICAgICAgIC8qxeTWw8nPz8LQ0MrcyKjK/dfpKi8NCisjZGVmaW5lIEVQSFlfSURMRV9QRVJJT0RfUkVQX0NPTkZJR19SRVFfRVYgICAgICAgKERXT1JEKShUUlNfRVBIWV9FVkVOVF9CQVNFICsgMTEpICAgICAgIC8qxeTWw7/Vz9DKsbzkKi8NCisjZGVmaW5lIEVQSFlfQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRVBIWV9FVkVOVF9CQVNFICsgMTIpICAgICAgIC8quaS+37bURVBIWbXExeTWwyovDQorLyogQyMgYWRhcHRvcreiy821vWVwaHm1xM/7z6KjrMHZyrG05rfF1NrV4sDvKi8NCisjZGVmaW5lIFRSU19GUkVRX1NDQU5fSU5EICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRVBIWV9FVkVOVF9CQVNFICsgMTMpDQorI2RlZmluZSBUUlNfQ0VMTF9TQ0FOX0lORCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VQSFlfRVZFTlRfQkFTRSArIDE0KQ0KKyNkZWZpbmUgVFJTX0NFTExfREVMX0lORCAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19FUEhZX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIFRSU19DRUxMX01PRF9JTkQgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRVBIWV9FVkVOVF9CQVNFICsgMTYpDQorI2RlZmluZSBUUlNfTU9ERV9TRVRfSU5EICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVFJTX0VQSFlfRVZFTlRfQkFTRSArIDE3KSAvLyDJ6NbDQyPEo8q9o6wwIC0gYXV0byCjrCAxLSBtYW51YWwNCisjZGVmaW5lIFRSU19NU0dfTU9ERV9TRVRfSU5EICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRVBIWV9FVkVOVF9CQVNFICsgMTgpIC8vIMno1sPEs7j2z/vPorXExKPKvaOs19S2r7vyyta2rw0KKyNkZWZpbmUgRVBIWV9DRUxMSU5GT0NPTkZJR19SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19FUEhZX0VWRU5UX0JBU0UgKyAxOSkNCisjZGVmaW5lIEVQSFlfRVhUR1JBTlRDT05GSUdfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShUUlNfRVBIWV9FVkVOVF9CQVNFICsgMjApDQorLypUUlMtLS0+RU5NQUMqLw0KKyNkZWZpbmUgVFJTX0VOTUFDX1RBX0NPTkZJR19SRVFfRVYgICAgICAgICAgICAgICAoRFdPUkQpKFRSU19FTk1BQ19FVkVOVF9CQVNFICsgMSkgICAgICAgLypUUlPP8kVOTUFDVUy3osvN1+nWobn9s8zKx7fxyrnTwyBUQcP8we7P+8+iICDQr7T4V09SRMr9vt2jrM6qMMqxsrvX6VRBo6y3xzDKsaOsyrnTw7jD1rXX6VRBKi8NCisjZGVmaW5lIFRSU19FTk1BQ19EUlhfQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShUUlNfRU5NQUNfRVZFTlRfQkFTRSArIDIpICAgICAgIC8qVFJTz/JFTk1BQ1VMt6LLzdfp1qG5/bPMyse38cq508MgRFJYw/zB7iDP+8+iKi8NCisjZGVmaW5lIFRSU19FTk1BQ19DQ0NIX0NPTkZJR19SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShUUlNfRU5NQUNfRVZFTlRfQkFTRSArIDMpICAgICAvKtCvtPhCWVRFyv2+3aOsQklUMM6qMMqxo6yyu9fp1qFDQ0NDSMr9vt0qLw0KKyNkZWZpbmUgVFJTX0VOTUFDX0NSSURfQ09ORklHX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKFRSU19FTk1BQ19FVkVOVF9CQVNFICsgNCkgICAgIC8q0K+0+EJZVEXK/b7do6xCSVQwzqowyrGjrLK71+nWob661fm94r72ye233cr9vt2jrEJJVDDOqjGjrCANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJJVDHOqjDKsdfp1qG3x8alxeTK/b7do6wgQklUMM6qMaOsQklUMc6qMcqxo6zX6dah1f3It8ntt93K/b7dKi8gDQorI2RlZmluZSBUUlNfRU5NQUNfQkFDS09GRl9DT05GSUdfUkVRX0VWICAgICAgICAgIChEV09SRCkoVFJTX0VOTUFDX0VWRU5UX0JBU0UgKyA1KSAgICAgLyrQr7T4QllURcr9vt0gINTdtqgqLw0KKw0KKyNkZWZpbmUgRU5NQUNfTUNDSF9EQVRBX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVOTUVMMl9FVkVOVF9CQVNFICsgMCApDQorI2RlZmluZSBFTlJSQ19FTk1FTDJfUkVMX0NPTkZJR19SRVFfRVYgICAgICAgICAgIChEV09SRCkoRU5NRUwyX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgVFJTX0VOTUVMMl9STENfU0RVX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVOTUVMMl9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIFRSU19FTk1FTDJfUkxDX1BEVV9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShFTk1FTDJfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBUUlNfRU5NRUwyX01TSV9DT05GSUdfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoRU5NRUwyX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgRVVEQkdfRU1NX1BMQUlOX0RMX01TR19FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVREJHX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgRVVEQkdfU0VORF9STENTUkJQRFVfSU5GT19FdiAgICAgICAgICAgICAoRFdPUkQpKEVVREJHX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgRVVEQkdfUkVDVl9STENTUkJQRFVfSU5GT19FdiAgICAgICAgICAgICAoRFdPUkQpKEVVREJHX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgRVVEQkdfQU1fU0VORF9TVEFUVVNfUERVX0lORk9fRXYgICAgICAgICAoRFdPUkQpKEVVREJHX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgRVVEQkdfQU1fUkVDVl9TVEFUVVNfUERVX0lORk9fRXYgICAgICAgICAoRFdPUkQpKEVVREJHX0VWRU5UX0JBU0UgKyA4KQ0KKyNkZWZpbmUgTFRFX1BfRExTQ0hfREFUQV9UUkFDRV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVVREJHX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgTFRFX1BfVUxTQ0hfREFUQV9UUkFDRV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKEVVREJHX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIExURV9QX01BQ19TUl9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVURCR19FVkVOVF9CQVNFICsgMTEpDQorI2RlZmluZSBMVEVfRUwyX1RIUk9VR0hQVVRfSU5EX0VWICAgICAgICAgICAgICAgIChEV09SRCkoRVVEQkdfRVZFTlRfQkFTRSArIDEyKQ0KKyNkZWZpbmUgTFRFX0VMMl9TVEFURV9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVVREJHX0VWRU5UX0JBU0UgKyAxMykNCisjZGVmaW5lIEVVREJHX0VNTV9QTEFJTl9VTF9NU0dfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVURCR19FVkVOVF9CQVNFICsgMTQpDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIExURc/gudi1xM/7z6K6xbao0uUgRU5EDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIMK3suLI7bz+z+C52MrCvP66xSBCRUdJTg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKw0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDCt7LiyO28/s/gudjKwrz+usUgRU5EDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIFfP4LnYysK8/rrFIFNUQVJUDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgQVNDo61VTVRTIEFTz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFdSUkOjrVNDSc/7z6K6xbao0uUgICBXINPrVES5stPDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgV1JSQyAtIMTasr/P+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBXUlJDX1JFQURfU1lTSU5GT19SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoV1JSQ19FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIFdSUkNfUkVBRF9TWVNJTkZPX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgV1JSQ19SRUFEX1NZU0lORk9fUkVKX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBXUlJDX1NUT1BfU1lTSU5GT19SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoV1JSQ19FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIFdSUkNfUkVBRF9EWU5fU0lCX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgV1JSQ19SRUFEX0RZTl9TSUJfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBXUlJDX1NJQl9NT0RJRklFRF9JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoV1JSQ19FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIFdSUkNfQ0VMTFVQREFURV9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgV1JSQ19DRUxMX1JFU0VMX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBXUlJDX0NFTExfSU5GT19JTkRfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV1JSQ19FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIFdSUkNfUkVMX0NPTk5fUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIFdSUkNfUkVTVU1FX0NFTExfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIFdSUkNfUlBMTU5fSU5GT19JTkRfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyAxMikNCisjZGVmaW5lIFdSUkNfUkVTT1VSRV9DRkdfUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyAxMykNCisjZGVmaW5lIFdSUkNfUkVTT1VSQ0VfQ0ZHX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyAxNCkNCisjZGVmaW5lIFdSUkNfVVBEQVRFX0VQTE1OX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIFdSUkNfSElHSF9NT0JJTElUWV9JTkQgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyAxNikNCisjZGVmaW5lIFdSUkNfSE9fRlJPTV9VVFJBTl9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyAxNykNCisjZGVmaW5lIFdSUkNfSE9fRlJPTV9VVFJBTl9SRUpfRVYgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyAxOCkNCisjZGVmaW5lIFdSUkNfSE9fVE9fVVRSQU5fUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyAxOSkNCisjZGVmaW5lIFdSUkNfSE9fVE9fVVRSQU5fQ05GX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyAyMCkNCisjZGVmaW5lIFdSUkNfSE9fVE9fVVRSQU5fUkVKX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyAyMSkNCisjZGVmaW5lIFdSUkNfQ0NPX0ZST01fVVRSQU5fUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyAyMikNCisjZGVmaW5lIFdSUkNfQ0NPX0ZST01fVVRSQU5fUkVKX0VWICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyAyMykNCisjZGVmaW5lIFdSUkNfQ0NPX1RPX1VUUkFOX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyAyNCkNCisjZGVmaW5lIFdSUkNfQ0NPX1RPX1VUUkFOX1JFSl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyAyNSkNCisjZGVmaW5lIFdSUkNfUkFESU9fTElOS19GQUlMX0lORF9FViAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyAyNikgICAgLypVRUNBUEFCSUxJVFlJTkZP1ti0q8qnsNy1vNbC0KHH+Lj80MIqLw0KKyNkZWZpbmUgV1JSQ19ORUlCQ0VMTF9DSEdfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRVZFTlRfQkFTRSArIDI3KQ0KKyNkZWZpbmUgV1JSQ19GQUNIX0NGR19SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRVZFTlRfQkFTRSArIDI4KQ0KKyNkZWZpbmUgV1JSQ19GQUNIX0NGR19JTkRfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRVZFTlRfQkFTRSArIDI5KQ0KKyNkZWZpbmUgV1JSQ19EUlhfQ0hBTkdFX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRVZFTlRfQkFTRSArIDMwKQ0KKyNkZWZpbmUgV1JSQ19TRU5EX0JVRl9FU1RfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRVZFTlRfQkFTRSArIDMxKQ0KKyNkZWZpbmUgV1JSQ19BQk9SVF9SQVRDSEdfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRVZFTlRfQkFTRSArIDMyKQ0KKyNkZWZpbmUgV1JSQ19DSEdfQ0FNUE9OX1RZUEVfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRVZFTlRfQkFTRSArIDMzKQ0KKyNkZWZpbmUgV1JSQ19HRVRfUkZfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRVZFTlRfQkFTRSArIDM0KSAgICAgICAgICAvKldTSVItPldDU1IqLw0KKyNkZWZpbmUgV1JSQ19HRVRfUkZfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRVZFTlRfQkFTRSArIDM1KSAgICAgICAgICAvKldDU1ItPldTSVIqLyAgIA0KKyNkZWZpbmUgV1JSQ19TWVNJTkZPX0NPTlRBSU5FUl9JTkRfRVYgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRVZFTlRfQkFTRSArIDM2KSAgICAgICAgICAvKldDU1ItPldTSVIqLw0KKyNkZWZpbmUgV1JSQ19FVFdTX0NGR19SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRVZFTlRfQkFTRSArIDM3KQ0KKyNkZWZpbmUgV1JSQ19FVFdTX0NGR19FTkRfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRVZFTlRfQkFTRSArIDM4KQ0KKyNkZWZpbmUgV1JSQ19FVFdTX0NPTlRJTlVFX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRVZFTlRfQkFTRSArIDM5KQ0KKyNkZWZpbmUgV1JSQ19FRkFDSF9DRkdfSU5EX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRVZFTlRfQkFTRSArIDQwKSAgICAgICAgICAvKldDTVItPldSQkMqLw0KKyNkZWZpbmUgV1JSQ19ORUlHSEJPUkNFTExfSFNTQ0NIX09SREVSX1JFUV9FViAgICAoRFdPUkQpKFdSUkNfRVZFTlRfQkFTRSArIDQxKSANCisjZGVmaW5lIFdSUkNfUkJDX0JVRkZFUl9NU0dfUFJPQ19SRVFfRVYgICAgICAgICAgKERXT1JEKShXUlJDX0VWRU5UX0JBU0UgKyA0MikgDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICBXUkxDIC0gV1JSQyDP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBDV1JMQ19DT05GSUdfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV1JMQ19XUlJDX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgQ1dSTENfUkVMRUFTRV9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSTENfV1JSQ19FVkVOVF9CQVNFICsgMSkNCisjZGVmaW5lIENXUkxDX1NVU1BFTkRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkxDX1dSUkNfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBDV1JMQ19SRVNVTUVfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV1JMQ19XUlJDX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgQ1dSTENfQ09OVElOVUVfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSTENfV1JSQ19FVkVOVF9CQVNFICsgNCkNCisjZGVmaW5lIFVXUkxDX0RBVEFfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkxDX1dSUkNfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBDV1JMQ19DQlNfUkJDT05GSUdfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoV1JMQ19XUlJDX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgQ1dSTENfU0VUX0RBVEFfTk9USUZZX01PREVfRVYgICAgICAgICAgICAoRFdPUkQpKFdSTENfV1JSQ19FVkVOVF9CQVNFICsgNykNCisNCisjZGVmaW5lIENXUkxDX1NVU1BFTkRfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkxDX1dSUkNfUlNQX0VWRU5UICsgMCkNCisjZGVmaW5lIFVXUkxDX0RBVEFfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkxDX1dSUkNfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIENXUkxDX1NUQVRVU19JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkxDX1dSUkNfUlNQX0VWRU5UICsgMikNCisjZGVmaW5lIFVXUkxDX0RBVEFfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkxDX1dSUkNfUlNQX0VWRU5UICsgMykNCisjZGVmaW5lIENXUkxDX0NPTkZJR19DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkxDX1dSUkNfUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIENXUkxDX1BDSF9VTERBVEFfVFJBTlNGRVJfUkVRX0VWICAgICAgICAgKERXT1JEKShXUkxDX1dSUkNfUlNQX0VWRU5UICsgNSkNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgIFdNQUMgLSBXUlJDL1dNQUMgLSBXTUFDX01DUiDP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBDV01BQ19BU0NfUEFSQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdNQUNfV1JSQ19FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIENXTUFDX1JBQ0hfUEFSQV9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgQ1dNQUNfVEZDX0NUUkxfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXTUFDX1dSUkNfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBDV01BQ19DQ1RSQ0hfQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFdNQUNfV1JSQ19FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIENXTUFDX0FDVFRJTUVfTk9USUZZX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgQ1dNQUNfQ09OVElOVUVfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXTUFDX1dSUkNfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBDV01BQ19ERUxfQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdNQUNfV1JSQ19FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIENXTUFDX1JOVElfQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgQ1dNQUNfRVJOVElfQ09ORklHX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShXTUFDX1dSUkNfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBDV01BQ19IU19SRVNFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdNQUNfV1JSQ19FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIENXTUFDX1NSQl9ERUxBWV9DT05GSUdfUkVRX0VWICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIENXTUFDX1RWX01FQVNfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIENXTUFDX1FfTUVBU19SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyAxMikNCisjZGVmaW5lIENXTUFDX1VFX01FQVNfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyAxMykNCisjZGVmaW5lIENXTUFDX1RWX01FQVNfUkVMX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyAxNCkNCisjZGVmaW5lIENXTUFDX1FfTUVBU19SRUxfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIENXTUFDX1VFX01FQVNfUkVMX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyAxNikNCisjZGVmaW5lIENXTUFDX1RWX01FQVNfUkVTVU1FX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyAxNykNCisjZGVmaW5lIENXTUFDX1RWX01FQVNfU1VTUEVORF9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyAxOCkNCisjZGVmaW5lIENXTUFDX0RMX01FQVNfU1VTUEVORF9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyAxOSkNCisjZGVmaW5lIENXTUFDX0RMX01FQVNfUkVTVU1FX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyAyMCkNCisjZGVmaW5lIENXTUFDX0FERFRWX01FQVNfUkVQT1JUX1JFUV9FViAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyAyMSkNCisjZGVmaW5lIENXTUFDX0FERFFfTUVBU19SRVBPUlRfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyAyMikNCisjZGVmaW5lIENXTUFDX0FERFVFX01FQVNfUkVQT1JUX1JFUV9FViAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyAyMykNCisjZGVmaW5lIENXTUFDX1NVU1BFTkRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyAyNCkNCisjZGVmaW5lIENXTUFDX1JFU1VNRV9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX0VWRU5UX0JBU0UgKyAyNSkNCisNCisjZGVmaW5lIENXTUFDX0NPTkZJR19DSEdfSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX1JTUF9FVkVOVCArIDApDQorI2RlZmluZSBDV01BQ19TVEFUVVNfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdNQUNfV1JSQ19SU1BfRVZFTlQgKyAxKQ0KKyNkZWZpbmUgQ1dNQUNfRUZBQ0hfU1RBVFVTX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShXTUFDX1dSUkNfUlNQX0VWRU5UICsgMikNCisjZGVmaW5lIFVXTUFDX1BDQ0hfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX1JTUF9FVkVOVCArIDMpDQorI2RlZmluZSBVV01BQ19CQ0NIX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdNQUNfV1JSQ19SU1BfRVZFTlQgKyA0KQ0KKyNkZWZpbmUgQ1dNQUNfQUREVFZfTUVBU19SRVBPUlRfSU5EX0VWICAgICAgICAgICAgKERXT1JEKShXTUFDX1dSUkNfUlNQX0VWRU5UICsgNSkNCisjZGVmaW5lIENXTUFDX1RWX01FQVNfUkVQT1JUX0lORF9FViAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX1JTUF9FVkVOVCArIDYpDQorI2RlZmluZSBDV01BQ19BRERRX01FQVNfUkVQT1JUX0lORF9FViAgICAgICAgICAgICAoRFdPUkQpKFdNQUNfV1JSQ19SU1BfRVZFTlQgKyA3KQ0KKyNkZWZpbmUgQ1dNQUNfQUREVUVfTUVBU19SRVBPUlRfSU5EX0VWICAgICAgICAgICAgKERXT1JEKShXTUFDX1dSUkNfUlNQX0VWRU5UICsgOCkNCisjZGVmaW5lIENXTUFDX1FfTUVBU19SRVBPUlRfSU5EX0VWICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19XUlJDX1JTUF9FVkVOVCArIDkpDQorI2RlZmluZSBDV01BQ19VRV9NRUFTX1JFUE9SVF9JTkRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKFdNQUNfV1JSQ19SU1BfRVZFTlQgKyAxMCkNCisjZGVmaW5lIENXTUFDX05PVElGWV9ETF9QRVJJT0RfUkVQT1JUX1JFUV9FViAgICAgIChEV09SRCkoV01BQ19XUlJDX1JTUF9FVkVOVCArIDExKQ0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFdNQUMgLSBVTC9ETCAgIC0gICBXTUFDLUPP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgTDFXIC0gV1JSQyDP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBMMVdfR1NNX01FQVNfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dSUkNfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBMMVdfR1NNX01FQVNfREVMRVRFX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dSUkNfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBMMVdfR1NNX01FQVNfUkVTVU1FX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dSUkNfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBMMVdfR1NNX01FQVNfU1VTUEVORF9SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dSUkNfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBMMVdfR1NNX01FQVNfVE9OVUxMX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dSUkNfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBMMVdfTFRFX0ZSRVFfTElTVF9DT05GSUdfUkVRX0VWICAgICAgICAgIChEV09SRCkoTDFXX1dSUkNfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBMMVdfTFRFX01FQVNfTUFTS19TRVRfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoTDFXX1dSUkNfRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBMMVdfR0VUX1JGX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dSUkNfRVZFTlRfQkFTRSArIDcpDQorI2RlZmluZSBMMVdfUExNTl9FTkRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dSUkNfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBMMVdfSVJBVF9SU1JDX1JFUV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dSUkNfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBMMVdfQ01fQ09ORklHX1JFUSAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dSUkNfRVZFTlRfQkFTRSArIDEwKQ0KKyNkZWZpbmUgTDFXX0NNX0ZBTExCQUNLX1JFUSAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxV19XUlJDX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIEwxV19XUlJDX0xFQVZFM0dfUkVRICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dSUkNfRVZFTlRfQkFTRSArIDEyKQ0KKw0KKyNkZWZpbmUgTDFXX0dTTV9NRUFTX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxV19XUlJDX1JTUF9FVkVOVCArIDApDQorI2RlZmluZSBMMVdfR0VUX1JGX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dSUkNfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIEwxV19JUkFUX1JTUkNfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVdfV1JSQ19SU1BfRVZFTlQgKyAyKQ0KKyNkZWZpbmUgTDFXX0xURV9NRUFTX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxV19XUlJDX1JTUF9FVkVOVCArIDMpDQorI2RlZmluZSBMMVdfQ01fRkFMTEJBQ0tfSU5EICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dSUkNfUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIEwxV19DTV9PVkVSTEFQX0lORCAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVdfV1JSQ19SU1BfRVZFTlQgKyA1KQ0KKyNkZWZpbmUgTDFXX0NNX0lORk9fSU5EICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxV19XUlJDX1JTUF9FVkVOVCArIDYpDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgUERDUCAtIFdSUkMgz/vPorrFtqjS5ShQRENQysK8/rrFubLTwykNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBXUkxDIC1XTUFDIM/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBMMVcgLSBXTUFDIM/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFdJU1JfRlJBTUVfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19MMVdfRVZFTlRfQkFTRSArIDApDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgUERDUCAtIFVSTEMgz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKw0KKyNkZWZpbmUgVVdSTENfUERDUF9EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFBEQ1BfV1JMQ19FVkVOVF9CQVNFICsgMCkNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBVU0lSIC0gVVBIWSDP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBXX1BfQkNIX1JFQURfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXU0lSX1dQSFlfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBXX1BfQkNIX09QRU5fUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXU0lSX1dQSFlfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBXX1BfQkNIX1JFTEVBU0VfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXU0lSX1dQSFlfRVZFTlRfQkFTRSArIDIpDQorDQorI2RlZmluZSBXX1BfQkNIX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXU0lSX1dQSFlfUlNQX0VWRU5UICsgMCkNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBXQ1NSIC0gV1BIWSDP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBXX1BfRlJFUVVFTkNZX1NDQU5fUkVRX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShXQ1NSX1dQSFlfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBXX1BfQUJPUlRfRlJFUV9TQ0FOX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShXQ1NSX1dQSFlfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBXX1BfQ0VMTF9TRUFSQ0hfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXQ1NSX1dQSFlfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBXX1BfQUJPUlRfQ0VMTF9TRUFSQ0hfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShXQ1NSX1dQSFlfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBXX1BfQ0FNUE9OX0FfQ0VMTF9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShXQ1NSX1dQSFlfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBXX1BfUkVMX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXQ1NSX1dQSFlfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBXX1BfUkVTRVRfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXQ1NSX1dQSFlfRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBXX1BfU0VUX0lSQVRfTU9ERV9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShXQ1NSX1dQSFlfRVZFTlRfQkFTRSArIDcpDQorI2RlZmluZSBXX1BfUlBJX1NFVF9SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXQ1NSX1dQSFlfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBXX1BfUlBJX0NGR19SRVFfRVYgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXQ1NSX1dQSFlfRVZFTlRfQkFTRSArIDkpDQorDQorDQorI2RlZmluZSBXX1BfRlJFUVVFTkNZX1NDQU5fSU5EX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShXQ1NSX1dQSFlfUlNQX0VWRU5UICsgMCkNCisjZGVmaW5lIFdfUF9DRUxMX1NFQVJDSF9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdDU1JfV1BIWV9SU1BfRVZFTlQgKyAxKQ0KKyNkZWZpbmUgV19QX1JFU0VUX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV0NTUl9XUEhZX1JTUF9FVkVOVCArIDIpDQorI2RlZmluZSBXX1BfUkVMX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXQ1NSX1dQSFlfUlNQX0VWRU5UICsgMykNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBXTUNSIC0gV1BIWSDP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBXX1BfSU5UUkFfRlJFUV9NRUFTX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShXTUNSX1dQSFlfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBXX1BfSU5URVJfRlJFUV9NRUFTX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShXTUNSX1dQSFlfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBXX1BfRk1PX0lORk9fUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXTUNSX1dQSFlfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBXX1BfTUVBU19SRUxfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXTUNSX1dQSFlfRVZFTlRfQkFTRSArIDMpDQorDQorI2RlZmluZSBXX1BfSU5UUkFfRlJFUV9NRUFTX0lORF9FViAgICAgICAgICAgICAgICAgKERXT1JEKShXTUNSX1dQSFlfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIFdfUF9JTlRFUl9GUkVRX01FQVNfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFdNQ1JfV1BIWV9SU1BfRVZFTlQgKyAyKSAgDQorI2RlZmluZSBXX1BfU0VSVkNFTExfTUVBU19JTkRfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShXTUNSX1dQSFlfUlNQX0VWRU5UICsgMykNCisNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBXUkJDIC0gV1BIWSDP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBXX1BfRExfRFBDSF9TRVRVUF9NT0RJRllfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoV1JCQ19XUEhZX0VWRU5UX0JBU0UgKyAwKSAgICAgDQorI2RlZmluZSBXX1BfRExfRFBDSF9SRUxfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV1JCQ19XUEhZX0VWRU5UX0JBU0UgKyAxKSAgICAgICAgICAgICAgICAgICANCisjZGVmaW5lIFdfUF9VTF9EUENIX1NFVFVQX01PRElGWV9SRVFfRVYgICAgICAgICAgICAgKERXT1JEKShXUkJDX1dQSFlfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBXX1BfTkVJR0hCT1JDRUxMX0hTU0NDSF9PUkRFUl9SRVEgICAgICAgICAgIChEV09SRCkoV1JCQ19XUEhZX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgV19QX05FSUdIQk9SQ0VMTF9IU1NDQ0hfT1JERVJfQUJPUlRfUkVRICAgICAoRFdPUkQpKFdSQkNfV1BIWV9FVkVOVF9CQVNFICsgNCkgICAgICAgICAgIA0KKyNkZWZpbmUgV19QX1VMX0RQQ0hfUkVMX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSQkNfV1BIWV9FVkVOVF9CQVNFICsgNSkgICAgICAgICAgICAgICAgICANCisjZGVmaW5lIFdfUF9BRERfTU9ESUZZX1NDQ1BDSF9SRVFfRVYgICAgICAgICAgICAgICAgKERXT1JEKShXUkJDX1dQSFlfRVZFTlRfQkFTRSArIDYpICAgICAgICAgICAgICANCisjZGVmaW5lIFdfUF9QQUdJTkdfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkJDX1dQSFlfRVZFTlRfQkFTRSArIDcpICAgICAgICAgICAgICAgICAgICAgICAgIA0KKyNkZWZpbmUgV19QX1NUT1BfUEFHSU5HX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSQkNfV1BIWV9FVkVOVF9CQVNFICsgOCkgICAgICAgICAgICAgICAgICAgICANCisjZGVmaW5lIFdfUF9BRERfSFNEUEFfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkJDX1dQSFlfRVZFTlRfQkFTRSArIDkpICAgICAgICAgICAgICAgICAgICAgDQorI2RlZmluZSBXX1BfUkVMX0hTRFBBX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV1JCQ19XUEhZX0VWRU5UX0JBU0UgKyAxMCkgICAgICAgICAgICAgICAgICAgICANCisjZGVmaW5lIFdfUF9SRUxfU0NDUENIX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkJDX1dQSFlfRVZFTlRfQkFTRSArIDExKSAgICAgICAgICAgICAgICAgICAgDQorI2RlZmluZSBXX1BfQUREX01PRElGWV9DQlNfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoV1JCQ19XUEhZX0VWRU5UX0JBU0UgKyAxMikgICAgICAgICAgICAgICAgDQorI2RlZmluZSBXX1BfU1RPUF9DQlNfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV1JCQ19XUEhZX0VWRU5UX0JBU0UgKyAxMykgICAgICAgICAgICAgICAgICAgDQorI2RlZmluZSBXX1BfTDFfUkVTT1VSQ0VfQ0ZHX0ZJTkFMX0VWICAgICAgICAgICAgICAgIChEV09SRCkoV1JCQ19XUEhZX0VWRU5UX0JBU0UgKyAxNCkgICAgICAgICAgICAgDQorI2RlZmluZSBXX1BfQUREX0hTVVBBX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV1JCQ19XUEhZX0VWRU5UX0JBU0UgKyAxNSkgICAgICAgICAgICAgICAgICANCisjZGVmaW5lIFdfUF9SRUxfSFNVUEFfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkJDX1dQSFlfRVZFTlRfQkFTRSArIDE2KSAgICAgICAgICAgICAgICAgICAgIA0KKyNkZWZpbmUgV19QX0hTUEFfUExVU19GQUNIX1JFUV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSQkNfV1BIWV9FVkVOVF9CQVNFICsgMTcpICAgICAgICAgICAgICAgIA0KKyNkZWZpbmUgV19QX0hTUEFfUExVU19QQ0hfUkVRX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSQkNfV1BIWV9FVkVOVF9CQVNFICsgMTgpICAgICAgICAgICAgICAgICAgDQorI2RlZmluZSBXX1BfSFNQQV9QTFVTX0ZBQ0hfUkVMX1JFUV9FViAgICAgICAgICAgICAgIChEV09SRCkoV1JCQ19XUEhZX0VWRU5UX0JBU0UgKyAxOSkgICAgICAgICAgICAgDQorI2RlZmluZSBXX1BfSFNQQV9QTFVTX1BDSF9SRUxfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoV1JCQ19XUEhZX0VWRU5UX0JBU0UgKyAyMCkgICAgICAgICAgICAgIA0KKyNkZWZpbmUgV19QX0VGQUNIX1VQREFURV9STlRJX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFdSQkNfV1BIWV9FVkVOVF9CQVNFICsgMjEpICAgICAgICAgICAgICAgICANCisjZGVmaW5lIFdfUF9BRERfUFJBQ0hfUkVRICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkJDX1dQSFlfRVZFTlRfQkFTRSArIDIyKQ0KKyNkZWZpbmUgV19QX0RMX0ZEUENIX1NFVFVQX01PRElGWV9SRVEgICAgICAgICAgICAgICAoRFdPUkQpKFdSQkNfV1BIWV9FVkVOVF9CQVNFICsgMjMpICAgICAgICANCisNCisNCisjZGVmaW5lIFdfUF9JTl9TWU5DX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkJDX1dQSFlfUlNQX0VWRU5UICsgMCkgICAgICAgICAgICAgICAgICAgICAgIA0KKyNkZWZpbmUgV19QX09VVF9TWU5DX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSQkNfV1BIWV9SU1BfRVZFTlQgKyAxKSAgDQorI2RlZmluZSBXX1BfRFBDSF9TRVRVUF9NT0RJRllfQ05GICAgICAgICAgICAgICAgICAgIChEV09SRCkoV1JCQ19XUEhZX1JTUF9FVkVOVCArIDIpDQorI2RlZmluZSBXX1BfSFNTQ0NIX09SREVSX0lORCAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV1JCQ19XUEhZX1JTUF9FVkVOVCArIDMpDQorDQorDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgV01BQ19VTCAtIFdQSFkgz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgV19QX1JBQ0hfUFJPQ0VEVVJFX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19VTF9XUEhZX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgV19QX1JBQ0hfUFJPQ0VEVVJFX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19VTF9XUEhZX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgV19QX0VGQUNIX05PX0RBVEFfUkVRX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19VTF9XUEhZX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgV19QX0VURkNfUEFSQU1fSU5EX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19VTF9XUEhZX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgV19QX1BPU1RfVkVSRllfRkFJTF9JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19VTF9XUEhZX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgV19QX01BQ19EVFhfQ1lDTEVfSU5GT19SRVFfRVYgICAgICAgICAgICAgIChEV09SRCkoV01BQ19VTF9XUEhZX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgV19QX1RGQ0lfQ01fSU5GT19JTkRfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19VTF9XUEhZX0VWRU5UX0JBU0UgKyA2KQ0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFdNQUNfREwgLSBXUEhZIM/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFdfUF9VRV9JTlRFUk5BTF9NRUFTX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFdNQUNfRExfV1BIWV9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIFdfUF9VRV9JTlRFUk5BTF9NRUFTX0lORF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFdNQUNfRExfV1BIWV9FVkVOVF9CQVNFICsgMSkNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBMMVcgLSBXUEhZIM/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFdfUF9VTVRTX0lETEVfUEVSSU9EX1JFUE1PREVfUkVRX0VWICAgICAgICAoRFdPUkQpKEwxV19XUEhZX0VWRU5UX0JBU0UgKyAwKSAgICAvKrXIvNvT2kwxR19VTVRTX0lETEVfUEVSSU9EX1JFUE1PREVfUkVRX0VWKi8NCisjZGVmaW5lIFdfUF9JUkFUX0dBUF9DT05GSUdfUkVRX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxV19XUEhZX0VWRU5UX0JBU0UgKyAxKSAgICAvKrXIvNvT2kwxRyBMMVdfR1NNX0lOQUNUX1RJTUVfSU5EX0VWKi8NCisjZGVmaW5lIFdfUF9BQk9SVF9JUkFUX0dBUF9SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxV19XUEhZX0VWRU5UX0JBU0UgKyAyKSAgICAvKrXIvNvT2kwxRyBMMVdfQUJPUlRfR1NNX0dBUF9SRVFfRVYqLw0KKyNkZWZpbmUgV19QX0NPTVBSRVNTX01PREVfQ09ORklHX1JFUV9FViAgICAgICAgICAgIChEV09SRCkoTDFXX1dQSFlfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBXX1BfQ0FSRDJfR0FQX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVdfV1BIWV9FVkVOVF9CQVNFICsgNCkgLypUX3pXX1BfY2FyZDJfZ2FwX3JlcSovDQorI2RlZmluZSBXX1BfQ0FSRDJfR0FQX1JFTF9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVdfV1BIWV9FVkVOVF9CQVNFICsgNSkgLypUX3pXX1BfY2FyZDJfZ2FwX3JlbF9yZXEqLw0KKyNkZWZpbmUgV19QX0NBUkQyX1NUT1BfR0FQX1JFUV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dQSFlfRVZFTlRfQkFTRSArIDYpIC8qVF96V19QX2NhcmQyX3N0b3BfZ2FwX3JlcSovDQorI2RlZmluZSBXX1BfQ0FSRDFfU1VTUEVORF9SRVFfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVdfV1BIWV9FVkVOVF9CQVNFICsgNykgLypUX3pXX1BfY2FyZDFfc3VzcGVuZF9yZXEqLw0KKyNkZWZpbmUgV19QX0NBUkQxX1JFU1VNRV9SRVFfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dQSFlfRVZFTlRfQkFTRSArIDgpIC8qVF96V19QX2NhcmQxX3Jlc3VtZV9yZXEqLw0KKyNkZWZpbmUgV19QX1pXUENHX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dQSFlfRVZFTlRfQkFTRSArIDkpDQorDQorI2RlZmluZSBXX1BfVU1UU19JTkFDVElWRV9USU1FX0lORF9FViAgICAgICAgICAgICAgKERXT1JEKShMMVdfV1BIWV9SU1BfRVZFTlQgKyAwKQ0KKyNkZWZpbmUgV19QX0FCT1JUX0ZSRVFfU0NBTl9DTkZfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dQSFlfUlNQX0VWRU5UICsgMSkNCisjZGVmaW5lIFdfUF9BQk9SVF9DRUxMX1NFQVJDSF9DTkZfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEwxV19XUEhZX1JTUF9FVkVOVCArIDIpDQorI2RlZmluZSBXX1BfQkNIX1JFTEVBU0VfQ05GX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVdfV1BIWV9SU1BfRVZFTlQgKyAzKQ0KKyNkZWZpbmUgV19QX0NBTVBPTl9BX0NFTExfQ05GX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dQSFlfUlNQX0VWRU5UICsgNCkNCisjZGVmaW5lIFdfUF9EUENIX1JFTF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxV19XUEhZX1JTUF9FVkVOVCArIDUpDQorI2RlZmluZSBXX1BfUkVMX1NDQ1BDSF9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVdfV1BIWV9SU1BfRVZFTlQgKyA2KQ0KKyNkZWZpbmUgV19QX1NUT1BfUEFHSU5HX0NORl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dQSFlfUlNQX0VWRU5UICsgNykNCisjZGVmaW5lIFdfUF9TVE9QX0NCU19DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEwxV19XUEhZX1JTUF9FVkVOVCArIDgpDQorI2RlZmluZSBXX1BfUkVMX0hTRFBBX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVdfV1BIWV9SU1BfRVZFTlQgKyA5KQ0KKyNkZWZpbmUgV19QX1JFTF9IU1VQQV9DTkZfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dQSFlfUlNQX0VWRU5UICsgMTApDQorI2RlZmluZSBXX1BfSFNQQV9QTFVTX0ZBQ0hfUkVMX0NORl9FViAgICAgICAgICAgICAgKERXT1JEKShMMVdfV1BIWV9SU1BfRVZFTlQgKyAxMSkNCisjZGVmaW5lIFdfUF9IU1BBX1BMVVNfUENIX1JFTF9DTkZfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEwxV19XUEhZX1JTUF9FVkVOVCArIDEyKQ0KKyNkZWZpbmUgV19QX0FCT1JUX0lSQVRfR0FQX0NORl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dQSFlfUlNQX0VWRU5UICsgMTMpDQorI2RlZmluZSBXX1BfQ0FSRDJfR0FQX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVdfV1BIWV9SU1BfRVZFTlQgKyAxNCkgLypUX3pXX1BfY2FyZDJfZ2FwX2luZCovDQorI2RlZmluZSBXX1BfQ0FSRDJfR0FQX1JFTF9DTkZfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVdfV1BIWV9SU1BfRVZFTlQgKyAxNSkgLypUX3pXX1BfY2FyZDJfZ2FwX3JlbF9jbmYqLw0KKyNkZWZpbmUgV19QX0NBUkQyX1NUT1BfR0FQX0NORl9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dQSFlfUlNQX0VWRU5UICsgMTYpIC8qVF96V19QX2NhcmQyX3N0b3BfZ2FwX2NuZiovDQorI2RlZmluZSBXX1BfQ0FSRDFfU1VTUEVORF9DTkZfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShMMVdfV1BIWV9SU1BfRVZFTlQgKyAxNykgLypUX3pXX1BfY2FyZDFfc3VzcGVuZF9jbmYqLw0KKyNkZWZpbmUgV19QX1pXUENHX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX1dQSFlfUlNQX0VWRU5UICsgMTgpDQorDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgTDFXIMTasr8gz/vPorrFtqjS5Q0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNkZWZpbmUgV19QX0NIRUNLX1JGX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgV19QX0FDVElWRV9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgTDFXX01FQVNfVElNRVNUQU1QX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX0VWRU5UX0JBU0UgKyAyKQ0KKyNkZWZpbmUgTDFXX01FQVNfVElDS1RSQUNFX0lORF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTDFXX0VWRU5UX0JBU0UgKyAzKQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFdSUkO2qMqxxve2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBXU0lSX1RfQkNIX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV1JSQ19USU1FUl9FVkVOVF9CQVNFICsgMCkNCisjZGVmaW5lIFdTSVJfVF9TSUI3X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgV1NJUl9UX1ZUU0lCX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBXU0lSX1RfUl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV1JSQ19USU1FUl9FVkVOVF9CQVNFICsgMykNCisjZGVmaW5lIFdTSVJfVF9CQ0NITU9ESUZZX0VYUElSWV9FViAgICAgICAgICAgICAgKERXT1JEKShXUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgV0NTUl9UX0hJR0hTUEVFRF9FWFBJUllfRVYgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDUpDQorI2RlZmluZSBXQ1NSX1RfSFlTVFhfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoV1JSQ19USU1FUl9FVkVOVF9CQVNFICsgNikNCisjZGVmaW5lIFdDU1JfVF9QUk9URUNUX0VYUElSWV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgV0NTUl9UX05DRUxMX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDgpDQorI2RlZmluZSBXQ1NSX1RfT09TX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV1JSQ19USU1FUl9FVkVOVF9CQVNFICsgOSkNCisjZGVmaW5lIFdDU1JfVF9DQU1QMVNfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxMCkgICAgLyrXpMH0xLPQocf4MVOzrMqxKi8NCisjZGVmaW5lIFdDU1JfVF9MMV9SRUxBVEVEX0VWRU5UX0VYUElSWV9FViAgICAgICAgKERXT1JEKShXUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxMSkNCisjZGVmaW5lIFdDU1JfVF9SRURJUkVDVF9FWFBJUllfRVYgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxMikNCisjZGVmaW5lIFdNQ1JfVF9SRVNFTEVDVF9FWFBJUllfRVYgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxMykNCisjZGVmaW5lIFdNQ1JfVF9QRVJJT0RfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxNCkNCisjZGVmaW5lIFdNQ1JfVF9UUklHR0VSX0VWICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxNSkNCisjZGVmaW5lIFdNQ1JfVF9FTV9DRUxMSU5GT19FWFBJUllfRVYgICAgICAgICAgICAgKERXT1JEKShXUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxNikNCisjZGVmaW5lIFdDRVJfVF9TSUdDT05OUkVMSU5EX0VYUElSWV9FViAgICAgICAgICAgKERXT1JEKShXUlJDX1RJTUVSX0VWRU5UX0JBU0UgKyAxNykgICAgICAgIA0KKyNkZWZpbmUgV0NFUl9UX0VUV1NfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDE4KQ0KKyNkZWZpbmUgV0NFUl9UX0ZBQ0hDT05OUkVMX0VYUElSWV9FViAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDE5KQ0KKyNkZWZpbmUgV1JSQ19UMzAwX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDIwKQ0KKyNkZWZpbmUgV1JSQ19UMzAyX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDIxKQ0KKyNkZWZpbmUgV1JSQ19UMzA0X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDIyKQ0KKyNkZWZpbmUgV1JSQ19UMzA1X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDIzKQ0KKyNkZWZpbmUgV1JSQ19UMzA3X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDI0KQ0KKyNkZWZpbmUgV1JSQ19UMzA4X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDI1KQ0KKyNkZWZpbmUgV1JSQ19UMzA5X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDI2KQ0KKyNkZWZpbmUgV1JSQ19UMzEyX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDI3KQ0KKyNkZWZpbmUgV1JSQ19UMzEzX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDI4KQ0KKyNkZWZpbmUgV1JSQ19UMzE0X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDI5KQ0KKyNkZWZpbmUgV1JSQ19UMzE1X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDMwKQ0KKyNkZWZpbmUgV1JSQ19UMzE2X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDMxKQ0KKyNkZWZpbmUgV1JSQ19UMzE5X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDMyKQ0KKyNkZWZpbmUgV1JSQ19UMzIwX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDMzKQ0KKyNkZWZpbmUgV01DUl9UMzIyX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDM0KQ0KKyNkZWZpbmUgV1JSQ19UMzIzX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDM1KQ0KKyNkZWZpbmUgV1JSQ19UMzI1X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDM2KQ0KKyNkZWZpbmUgV1JSQ19UX1dBSVRfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfVElNRVJfRVZFTlRfQkFTRSArIDM3KQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFdQRENQtqjKscb3tqjS5Sh3zt7QwtT2o6zNrFREKQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKw0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgV1JMQ7aoyrHG97ao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFdSTENfVF9ESVNDQVJEX0VYUElSWV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShXUkxDX1RJTUVSX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgV1JMQ19UX1BPTExfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSTENfVElNRVJfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBXUkxDX1RfUE9MTFBST0hfRVhQSVJZX0VWICAgICAgICAgICAgICAgIChEV09SRCkoV1JMQ19USU1FUl9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIFdSTENfVF9QT0xMUFJEX0VYUElSWV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShXUkxDX1RJTUVSX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgV1JMQ19UX1NUQVRVU1BST0hfRVhQSVJZX0VWICAgICAgICAgICAgICAoRFdPUkQpKFdSTENfVElNRVJfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBXUkxDX1RfU1RBVFVTUFJEX0VYUElSWV9FViAgICAgICAgICAgICAgIChEV09SRCkoV1JMQ19USU1FUl9FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIFdSTENfVF9SRVNFVF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShXUkxDX1RJTUVSX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgV1JMQ19UX01SV19FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSTENfVElNRVJfRVZFTlRfQkFTRSArIDcpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgV01BQ7aoyrHG97ao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFdNQUNfTUNSX1RfVFJJR0dFUl9FWFBJUllfRVYgICAgICAgICAgICAgKERXT1JEKShXTUFDX1RJTUVSX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgV01BQ19NQ1JfVF9QRVJJT0RfRVhQSVJZX0VWICAgICAgICAgICAgICAoRFdPUkQpKFdNQUNfVElNRVJfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBXTUFDX01DUl9UX1BFTkRJTkdfRVhQSVJZX0VWICAgICAgICAgICAgIChEV09SRCkoV01BQ19USU1FUl9FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIFdNQUNfVF9IU1RJTUVSX0VYUElSWV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShXTUFDX1RJTUVSX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgV01BQ19UX1JFU0VUX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdNQUNfVElNRVJfRVZFTlRfQkFTRSArIDQpDQorI2RlZmluZSBXTUFDX1RfQk8xX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19USU1FUl9FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIFdNQUNfVF9UQl9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXTUFDX1RJTUVSX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgV01BQ19UX0FHX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdNQUNfVElNRVJfRVZFTlRfQkFTRSArIDcpDQorI2RlZmluZSBXTUFDX1RfUkdfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoV01BQ19USU1FUl9FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIFdNQUNfVF9TSU5HX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXTUFDX1RJTUVSX0VWRU5UX0JBU0UgKyA5KQ0KKyNkZWZpbmUgV01BQ19UX1NJR19FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFdNQUNfVElNRVJfRVZFTlRfQkFTRSArIDEwKQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIEwxV7aoyrHG97ao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICBXU0lS0+u5pL7fvbu7pcrCvP66xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFRFU1RfV1NJUl9ERUNTSUJfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShXU0lSX1RFU1RfRVZFTlRfQkFTRSArIDApDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgTldSTEPP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBURVNUX1VXUkxDX0RBVEFfUkVRX1VUUkFOX0VWICAgICAgICAgICAgIChEV09SRCkoTldSTENfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBURVNUX1VXUkxDX0RBVEFfSU5EX1VUUkFOX0VWICAgICAgICAgICAgIChEV09SRCkoTldSTENfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBURVNUX0NXUkxDX0NPTkZJR19SRVFfVVRSQU5fRVYgICAgICAgICAgIChEV09SRCkoTldSTENfRVZFTlRfQkFTRSArIDIpDQorI2RlZmluZSBURVNUX1dSTENfQUNLX0NUUkxfVVRSQU5fRVYgICAgICAgICAgICAgIChEV09SRCkoTldSTENfRVZFTlRfQkFTRSArIDMpDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgTldNQUPP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBURVNUX1dNQUNfQUNLX0NUUkxfVVRSQU5fRVYgICAgICAgICAgICAgIChEV09SRCkoTldNQUNfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBURVNUX1dNQUNfSFNVUEFfSU5GT19FViAgICAgICAgICAgICAgICAgIChEV09SRCkoTldNQUNfRVZFTlRfQkFTRSArIDEpDQorI2RlZmluZSBURVNUX1dNQUNfSFNVUEFfQ0ZHX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoTldNQUNfRVZFTlRfQkFTRSArIDIpIA0KKyNkZWZpbmUgVEVTVF9XTUFDX0hTVVBBX1NJSU5GT19FViAgICAgICAgICAgICAgICAoRFdPUkQpKE5XTUFDX0VWRU5UX0JBU0UgKyAzKQ0KKyNkZWZpbmUgVEVTVF9XTUFDX0hTVVBBX0hFQURFUl9JTkZPX0VWICAgICAgICAgICAoRFdPUkQpKE5XTUFDX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgVEVTVF9XTUFDX05PVElGWV9EQVRBX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKE5XTUFDX0VWRU5UX0JBU0UgKyA1KQ0KKyNkZWZpbmUgVEVTVF9XTUFDX1BBX1BMVVNfQ0ZHX1JFUV9FViAgICAgICAgICAgICAoRFdPUkQpKE5XTUFDX0VWRU5UX0JBU0UgKyA2KQ0KKyNkZWZpbmUgVEVTVF9XTUFDX0NSQ19SRVNVTFRfUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKE5XTUFDX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgVEVTVF9VV01BQ19EQVRBX0lORF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKE5XTUFDX0VWRU5UX0JBU0UgKyA4KQ0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIE5DQlPP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgVEPP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgV1JSQ7qvyv3QxcHuuPrX2c/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFdSUkNfRlVOQ19HRVRfUkVQTE1OX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDApDQorI2RlZmluZSBXUlJDX0ZVTkNfR0VUX1JFUExNTl9DTkZfRVYgICAgICAgICAgICAgIChEV09SRCkoV1JSQ19GVU5DX0VWRU5UX0JBU0UgKyAxKQ0KKyNkZWZpbmUgV1JSQ19GVU5DX0NIRUNLX1BMTU5fUkVRX0VWICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRlVOQ19FVkVOVF9CQVNFICsgMikNCisjZGVmaW5lIFdSUkNfRlVOQ19DSEVDS19MQUlfUkVRX0VWICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDMpDQorI2RlZmluZSBXUlJDX0ZVTkNfTUVBU19MRUFWRTNHX1JFUV9FViAgICAgICAgICAgIChEV09SRCkoV1JSQ19GVU5DX0VWRU5UX0JBU0UgKyA0KQ0KKyNkZWZpbmUgV1JSQ19GVU5DX1JFQURfU0lCX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRlVOQ19FVkVOVF9CQVNFICsgNSkNCisjZGVmaW5lIFdSUkNfRlVOQ19SRUFEX1NJQl9DTkZfRVYgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDYpDQorI2RlZmluZSBXUlJDX0ZVTkNfU0VSX0NFTExfSU5EX0VWICAgICAgICAgICAgICAgIChEV09SRCkoV1JSQ19GVU5DX0VWRU5UX0JBU0UgKyA3KQ0KKyNkZWZpbmUgV1JSQ19GVU5DX1NZU0lORk9fTU9ESUZZX1JFUV9FViAgICAgICAgICAoRFdPUkQpKFdSUkNfRlVOQ19FVkVOVF9CQVNFICsgOCkNCisjZGVmaW5lIFdSUkNfRlVOQ19TRVRfU0VSVkNFTExfUkVRX0VWICAgICAgICAgICAgKERXT1JEKShXUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDkpDQorI2RlZmluZSBXUlJDX0ZVTkNfTUVBU19PTl9SQUNIX1JFUV9FViAgICAgICAgICAgIChEV09SRCkoV1JSQ19GVU5DX0VWRU5UX0JBU0UgKyAxMCkNCisjZGVmaW5lIFdSUkNfRlVOQ19TVEFSVF9NRUFTX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDExKQ0KKyNkZWZpbmUgV1JSQ19GVU5DX0RFTF9NRUFTX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRlVOQ19FVkVOVF9CQVNFICsgMTIpDQorI2RlZmluZSBXUlJDX0ZVTkNfTUVBU19UT05VTExfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoV1JSQ19GVU5DX0VWRU5UX0JBU0UgKyAxMykNCisjZGVmaW5lIFdSUkNfRlVOQ19SRVNFTF9JRExFX1JFUV9FViAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDE0KQ0KKyNkZWZpbmUgV1JSQ19GVU5DX1NUT1BfU1lTSU5GT19FViAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRlVOQ19FVkVOVF9CQVNFICsgMTUpDQorI2RlZmluZSBXUlJDX0ZVTkNfQ0ZHX1BDSF9SRVFfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoV1JSQ19GVU5DX0VWRU5UX0JBU0UgKyAxNikNCisjZGVmaW5lIFdSUkNfRlVOQ19DRkdfUENIX0NORl9FViAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDE3KQ0KKyNkZWZpbmUgV1JSQ19GVU5DX1JFTF9GQUNIX1JFUV9FViAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRlVOQ19FVkVOVF9CQVNFICsgMTgpDQorI2RlZmluZSBXUlJDX0ZVTkNfUkVMX0ZBQ0hfQ05GX0VWICAgICAgICAgICAgICAgIChEV09SRCkoV1JSQ19GVU5DX0VWRU5UX0JBU0UgKyAxOSkNCisjZGVmaW5lIFdSUkNfRlVOQ19SRUxfUENIX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDIwKQ0KKyNkZWZpbmUgV1JSQ19GVU5DX1JFTF9QQ0hfQ05GX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFdSUkNfRlVOQ19FVkVOVF9CQVNFICsgMjEpDQorI2RlZmluZSBXUlJDX0ZVTkNfU0VORF9TSU5HTEVfQlVGX01TR19FViAgICAgICAgIChEV09SRCkoV1JSQ19GVU5DX0VWRU5UX0JBU0UgKyAyMikNCisjZGVmaW5lIFdSUkNfRlVOQ19TRU5EX0NTX0JVRl9NU0dfRVYgICAgICAgICAgICAgKERXT1JEKShXUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDIzKQ0KKyNkZWZpbmUgV1JSQ19GVU5DX1JFTF9TQ0NQQ0hfU1RPUF9NQUNfUkVRX0VWICAgICAoRFdPUkQpKFdSUkNfRlVOQ19FVkVOVF9CQVNFICsgMjQpDQorI2RlZmluZSBXUlJDX0ZVTkNfUkVTVU1FX0ZBQ0hfQ0ZHX1JFUV9FViAgICAgICAgIChEV09SRCkoV1JSQ19GVU5DX0VWRU5UX0JBU0UgKyAyNSkNCisjZGVmaW5lIFdSUkNfRlVOQ19SRUxfU0VSX0NFTExfQkNIX1JFUV9FViAgICAgICAgKERXT1JEKShXUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDI2KQ0KKyNkZWZpbmUgV1JSQ19GVU5DX1JFU1RBUlRfU0NFTExfU0lCN19USU1FUl9FViAgICAoRFdPUkQpKFdSUkNfRlVOQ19FVkVOVF9CQVNFICsgMjcpDQorI2RlZmluZSBXUlJDX0ZVTkNfUkVTVU1FX1JFQURfU0VSX0NFTExfQkNIX0VWICAgIChEV09SRCkoV1JSQ19GVU5DX0VWRU5UX0JBU0UgKyAyOCkNCisjZGVmaW5lIFdSUkNfRlVOQ19SRUFEX0NHSUlORk9fRVYgICAgICAgICAgICAgICAgKERXT1JEKShXUlJDX0ZVTkNfRVZFTlRfQkFTRSArIDI5KQ0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFJSQ7qvyv3Wtbj619nP+8+iusW2qNLlDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBSUkNfRlVOQ19HRVRfVElDS19DT1VOVF9FViAgICAgICAgICAgICAgKERXT1JEKShSUkNfRlVOQ19UUkFDRV9CQVNFICsgMCkNCisjZGVmaW5lIFJSQ19GVU5DX0dFVF9OVl9JVEVNX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKFJSQ19GVU5DX1RSQUNFX0JBU0UgKyAxKQ0KKyNkZWZpbmUgUlJDX0ZVTkNfR0VUX1VJQ0NfSVRFTV9FViAgICAgICAgICAgICAgIChEV09SRCkoUlJDX0ZVTkNfVFJBQ0VfQkFTRSArIDIpDQorI2RlZmluZSBSUkNfRlVOQ19HRVRfUExNTl9UWVBFX0VWICAgICAgICAgICAgICAgKERXT1JEKShSUkNfRlVOQ19UUkFDRV9CQVNFICsgMykNCisjZGVmaW5lIFJSQ19GVU5DX0dFVF8zQV9USFJFT0xEX0VWICAgICAgICAgICAgICAoRFdPUkQpKFJSQ19GVU5DX1RSQUNFX0JBU0UgKyA0KQ0KKyNkZWZpbmUgUlJDX0ZVTkNfR0VUX1BTTE9DSV9JTkZPX0VWICAgICAgICAgICAgIChEV09SRCkoUlJDX0ZVTkNfVFJBQ0VfQkFTRSArIDUpDQorI2RlZmluZSBSUkNfRlVOQ19HRVRfQ09VTlRDX0VWICAgICAgICAgICAgICAgICAgKERXT1JEKShSUkNfRlVOQ19UUkFDRV9CQVNFICsgNikNCisjZGVmaW5lIFJSQ19GVU5DX0dFVF9NQVNURVJfTU9ERV9FViAgICAgICAgICAgICAoRFdPUkQpKFJSQ19GVU5DX1RSQUNFX0JBU0UgKyA3KQ0KKyNkZWZpbmUgUlJDX0ZVTkNfR0VUX1NGTl9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoUlJDX0ZVTkNfVFJBQ0VfQkFTRSArIDgpDQorI2RlZmluZSBSUkNfRlVOQ19HRVRfQ0ZOX0VWICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShSUkNfRlVOQ19UUkFDRV9CQVNFICsgOSkNCisjZGVmaW5lIFJSQ19GVU5DX0dFVF9BTURMUERVX1NJWkVfRVYgICAgICAgICAgICAoRFdPUkQpKFJSQ19GVU5DX1RSQUNFX0JBU0UgKyAxMCkNCisjZGVmaW5lIFJSQ19GVU5DX0dFVF9TSUI3X1RJTUVPVVRfQ0VMTElORk9fRVYgICAoRFdPUkQpKFJSQ19GVU5DX1RSQUNFX0JBU0UgKyAxMSkNCisjZGVmaW5lIFJSQ19GVU5DX0dFVF9WVFNJQl9USU1FT1VUX0NFTExJTkZPX0VWICAoRFdPUkQpKFJSQ19GVU5DX1RSQUNFX0JBU0UgKyAxMikNCisvKrTy06G1scewyse38dPQTkFT0MXB7tX91Nq9+NDQKi8NCisjZGVmaW5lIFJSQ19GVU5DX05BU19TSUdOQUxfUFJPQ19FWElTVF9FViAgICAgICAoRFdPUkQpKFJSQ19GVU5DX1RSQUNFX0JBU0UgKyAxMykNCisjZGVmaW5lIFJSQ19GVU5DX0dFVF9TUkIyX1VMX0FDVF9USU1FX0VWICAgICAgICAoRFdPUkQpKFJSQ19GVU5DX1RSQUNFX0JBU0UgKyAxNCkNCisjZGVmaW5lIFJSQ19GVU5DX0dFVF9TUkIyX01BWF9IRk5fRVYgICAgICAgICAgICAoRFdPUkQpKFJSQ19GVU5DX1RSQUNFX0JBU0UgKyAxNSkNCisvL2FzIGNvbdbQtcRiYXLQxc+i0MXB7rj619nP+8+iusW2qNLlDQorI2RlZmluZSBBU19GVU5DX0NMRUFSQkFSRlJFUUlORk8gICAgICAgICAgICAgICAgKERXT1JEKShSUkNfRlVOQ19UUkFDRV9CQVNFICsgNTApDQorI2RlZmluZSBBU19GVU5DX0FERFRERlJFUVRPQkFSRlJFUUxJU1QgICAgICAgICAgKERXT1JEKShSUkNfRlVOQ19UUkFDRV9CQVNFICsgNTEpDQorI2RlZmluZSBBU19GVU5DX0RFTFRERlJFUUZST01CQVJGUkVRTElTVCAgICAgICAgKERXT1JEKShSUkNfRlVOQ19UUkFDRV9CQVNFICsgNTIpDQorI2RlZmluZSBBU19GVU5DX0NMRUFSQkFSQ0VMTElORk8gICAgICAgICAgICAgICAgKERXT1JEKShSUkNfRlVOQ19UUkFDRV9CQVNFICsgNTMpDQorI2RlZmluZSBBU19GVU5DX0FERFREQ0VMTFRPQkFSQ0VMTExJU1QgICAgICAgICAgKERXT1JEKShSUkNfRlVOQ19UUkFDRV9CQVNFICsgNTQpDQorI2RlZmluZSBBU19GVU5DX0FEREdTTUNFTExUT0JBUkNFTExMSVNUICAgICAgICAgKERXT1JEKShSUkNfRlVOQ19UUkFDRV9CQVNFICsgNTUpDQorI2RlZmluZSBBU19GVU5DX0FERFdGUkVRVE9CQVJGUkVRTElTVCAgICAgICAgICAgKERXT1JEKShSUkNfRlVOQ19UUkFDRV9CQVNFICsgNTYpDQorI2RlZmluZSBBU19GVU5DX0RFTFdGUkVRRlJPTUJBUkZSRVFMSVNUICAgICAgICAgKERXT1JEKShSUkNfRlVOQ19UUkFDRV9CQVNFICsgNTcpDQorI2RlZmluZSBBU19GVU5DX0FERFdDRUxMVE9CQVJDRUxMTElTVCAgICAgICAgICAgKERXT1JEKShSUkNfRlVOQ19UUkFDRV9CQVNFICsgNTgpDQorI2RlZmluZSBBU19GVU5DX0dFVERFRElQUklPSU5GTyAgICAgICAgICAgICAgICAgKERXT1JEKShSUkNfRlVOQ19UUkFDRV9CQVNFICsgNTkpDQorI2RlZmluZSBBU19GVU5DX0dFVEJBUklORk8gICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShSUkNfRlVOQ19UUkFDRV9CQVNFICsgNjApDQorI2RlZmluZSBBU19GVU5DX1NFVEZSVE9MVEVGTEFHICAgICAgICAgICAgICAgICAgKERXT1JEKShSUkNfRlVOQ19UUkFDRV9CQVNFICsgNjEpDQorI2RlZmluZSBBU19GVU5DX0NMRUFSRlJUT0xURUZMQUcgICAgICAgICAgICAgICAgKERXT1JEKShSUkNfRlVOQ19UUkFDRV9CQVNFICsgNjIpDQorLy9FVVNJUtDFwe64+tfZz/vPorrFtqjS5Q0KKyNkZWZpbmUgRVVSUkNfRVVTSVJfU0lCMV9WOEgwX0lFc19JTkZPICAgICAgICAgIChEV09SRCkoUlJDX0ZVTkNfVFJBQ0VfQkFTRSArIDYzKQ0KKyNkZWZpbmUgRVVSUkNfRVVTSVJfU0lCMl9WOEgwX0lFc19JTkZPICAgICAgICAgIChEV09SRCkoUlJDX0ZVTkNfVFJBQ0VfQkFTRSArIDY0KQ0KKyNkZWZpbmUgRVVSUkNfRVVTSVJfU0lCNV9WOEgwX0lFc19JTkZPICAgICAgICAgIChEV09SRCkoUlJDX0ZVTkNfVFJBQ0VfQkFTRSArIDY1KQ0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK1fP4LnYysK8/rrFIEVORA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKyNpZmRlZiBCVFJVTktfU1VQUE9SVA0KKy8qIEVTTSAtLT4gVFNNICovDQorI2RlZmluZSBUU01fRVNNX0RJQUxFRF9TVEFURV9JTkRfRVYgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgNjApIA0KKyNkZWZpbmUgVFNNX0VTTV9CRUFSRVJfU1RBVEVfSU5EX0VWICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDYxKQ0KKw0KKy8qIFRTTSAtLT4gRVNNICovDQorI2RlZmluZSBUU01fRVNNX1NZTl9CRUFSU1RBVEVfUkVRX0VWICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgNjIpDQorDQorDQorLyogVFNNIC0tPiBFTU0gKi8NCisjZGVmaW5lIFRTTV9FU1RfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQlRSVU5LX0JBU0UgKyA3MCkgDQorI2RlZmluZSBUU01fRU1NX0RBVEFfUkVRX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgNzEpDQorI2RlZmluZSBUU01fUkVMX1JFUV9FViAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgNzIpIA0KKyNkZWZpbmUgVFNNX0xPQ0FUSU9OSU5GT19SRVFfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDczKSANCisjZGVmaW5lIFRTTV9VTU1fREVUQUNITFRFX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQlRSVU5LX0JBU0UgKyA3NCkgDQorDQorDQorLyogRU1NL1VNTSAtLT4gVFNNICovDQorI2RlZmluZSBUU01fRVNUX0NORl9FViAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgODApDQorI2RlZmluZSBUU01fUkVMX0lORF9FViAgICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgODEpIA0KKyNkZWZpbmUgVFNNX0VNTV9BVFRBQ0hTVEFURV9JTkRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDgyKSANCisjZGVmaW5lIFRTTV9FTU1fREFUQV9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQlRSVU5LX0JBU0UgKyA4MykgDQorI2RlZmluZSBUU01fVU1NX1BUVElORk9fSU5EX0VWICAgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgODQpIA0KKyNkZWZpbmUgVFNNX0VNTV9MT0NBVElPTklORk9fSU5EX0VWICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDg1KSANCisNCisvKlRTTS0+QVNDKi8NCisjZGVmaW5lIFRTTV9BU0NfR1JPVVBfUkVMX1JFUV9FViAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQlRSVU5LX0JBU0UgKyA5MCkgDQorI2RlZmluZSBUU01fQVNDX1NDQU5TV0lUQ0hfUkVRX0VWICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgOTEpIA0KKw0KKy8qQVNDLT5UU00qLw0KKyNkZWZpbmUgVFNNX0FTQ19UR0NDSF9NU0dfSU5EX0VWICAgICAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDEwMCkgDQorI2RlZmluZSBUU01fQVNDX1NDQU5HUk9VUElORk9fSU5EX0VWICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgMTAxKQ0KKyNkZWZpbmUgVFNNX0FTQ19TRVRfQUNUSVZFR0lEX0lORF9FViAgICAgICAgICAgICAoRFdPUkQpKEVWRU5UX1BTX0xURV9CVFJVTktfQkFTRSArIDEwMikNCisjZGVmaW5lIFRTTV9BU0NfUkVMX0FDVElWRUdJRF9JTkRfRVYgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQlRSVU5LX0JBU0UgKyAxMDMpDQorI2RlZmluZSBUU01fQVNDX1JFTF9HUk9VUF9JTkRfRVYgICAgICAgICAgICAgICAgIChEV09SRCkoRVZFTlRfUFNfTFRFX0JUUlVOS19CQVNFICsgMTA0KQ0KKw0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgIFRTTbaoyrHG98/7z6K6xbao0uUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisjZGVmaW5lIFRTTV9USU1FUl9CQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShFVkVOVF9QU19MVEVfQlRSVU5LX0JBU0UgKyAzMDApDQorI2RlZmluZSBUU01fVENNRVNUX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVFNNX1RJTUVSX0JBU0UgKyAxKQ0KKyNkZWZpbmUgVFNNX1Q4MDAxX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRTTV9USU1FUl9CQVNFICsgMikNCisjZGVmaW5lIFRTTV9UODAwM19FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUU01fVElNRVJfQkFTRSArIDMpDQorI2RlZmluZSBUU01fVDgwMDVfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVFNNX1RJTUVSX0JBU0UgKyA0KQ0KKyNkZWZpbmUgVFNNX1Q4MDA2X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRTTV9USU1FUl9CQVNFICsgNSkNCisjZGVmaW5lIFRTTV9UODAxMV9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUU01fVElNRVJfQkFTRSArIDYpDQorI2RlZmluZSBUU01fVDgwMTJfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVFNNX1RJTUVSX0JBU0UgKyA3KSANCisjZGVmaW5lIFRTTV9UODAxNF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUU01fVElNRVJfQkFTRSArIDgpIA0KKyNkZWZpbmUgVFNNX1Q4MDE2X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRTTV9USU1FUl9CQVNFICsgOSkNCisjZGVmaW5lIFRTTV9UODAxOF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUU01fVElNRVJfQkFTRSArIDEwKQ0KKyNkZWZpbmUgVFNNX1Q4MDIwX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRTTV9USU1FUl9CQVNFICsgMTEpDQorI2RlZmluZSBUU01fVFBFUklPRF9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVFNNX1RJTUVSX0JBU0UgKyAxMikNCisjZGVmaW5lIFRTTV9UR1BTX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAgKERXT1JEKShUU01fVElNRVJfQkFTRSArIDEzKQ0KKyNkZWZpbmUgVFNNX1Q4MTIzX0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRTTV9USU1FUl9CQVNFICsgMTQpDQorI2RlZmluZSBUU01fVFJFR1JFVFJZX0VYUElSWV9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoVFNNX1RJTUVSX0JBU0UgKyAxNSkNCisjZGVmaW5lIFRTTV9UQ09ORklSTV9FWFBJUllfRVYgICAgICAgICAgICAgICAgICAgKERXT1JEKShUU01fVElNRVJfQkFTRSArIDE2KQ0KKyNkZWZpbmUgVFNNX1Q4MTI1X0VYUElSWV9FViAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFRTTV9USU1FUl9CQVNFICsgMTcpDQorI2RlZmluZSBUU01fVDgwMjZfRVhQSVJZX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoVFNNX1RJTUVSX0JBU0UgKyAxOCkNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipQUyBMVEUgQlRSVU5LIG1zZyByYW5nZSBlbmQqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisjZW5kaWYNCisNCisvKiBMUFAtRUNJRMrCvP66xbao0uWjrLmyvMY1MLj2ICovDQorDQorLyogTFBQIC0tPiBBU0MgICovDQorI2RlZmluZSBMUFBfQVNDX0VDSURfTUVBU19TVEFSVF9FViAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExQUF9FQ0lEX0VWRU5UX0JBU0UgKyAwKQ0KKyNkZWZpbmUgTFBQX0FTQ19FQ0lEX01FQVNfQUJPUlRfRVYgICAgICAgICAgICAgICAgICAoRFdPUkQpKExQUF9BU0NfRUNJRF9NRUFTX1NUQVJUX0VWICsgMSkNCisvKiBMUFAgLS0+IEVVUlJDICAqLw0KKyNkZWZpbmUgQVNDX0VVQ1NSX0VDSURfTUVBU19TVEFSVF9FViAgICAgICAgICAgICAgICAoRFdPUkQpKExQUF9BU0NfRUNJRF9NRUFTX0FCT1JUX0VWICsgMSkNCisjZGVmaW5lIEFTQ19FVUNTUl9FQ0lEX01FQVNfQUJPUlRfRVYgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19FVUNTUl9FQ0lEX01FQVNfU1RBUlRfRVYgKyAxKQ0KKy8qIEVVUlJDIC0tPiBBU0MgKi8NCisjZGVmaW5lIEVVUlJDX0FTQ19FQ0lEX01FQVNfUkVTVUxUX0VWICAgICAgICAgICAgIChEV09SRCkoQVNDX0VVQ1NSX0VDSURfTUVBU19BQk9SVF9FViArIDEpDQorLyogQVNDIC0tPiBMUFAgKi8NCisjZGVmaW5lIEFTQ19MUFBfRUNJRF9NRUFTX1JFU1VMVF9FViAgICAgICAgICAgICAgICAgIChEV09SRCkoRVVSUkNfQVNDX0VDSURfTUVBU19SRVNVTFRfRVYgKyAxKQ0KKy8qIFNTIC0tPiAgTFBQICovDQorI2RlZmluZSBTU19MUFBfTU9MUl9TVEFSVF9JTkRfRVYgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKEFTQ19MUFBfRUNJRF9NRUFTX1JFU1VMVF9FViArIDEpDQorI2RlZmluZSBTU19MUFBfTU9MUl9FTkRfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU1NfTFBQX01PTFJfU1RBUlRfSU5EX0VWICsgMSkNCisjZGVmaW5lIFNTX0xQUF9NVExSX1NUQVJUX0lORF9FViAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU1NfTFBQX01PTFJfRU5EX0lORF9FViArIDEpDQorI2RlZmluZSBTU19MUFBfTVRMUl9FTkRfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU1NfTFBQX01UTFJfU1RBUlRfSU5EX0VWICsgMSkNCisvKiBVTU0gLS0+TFBQICovDQorI2RlZmluZSBVTU1fTFBQX0NFTExDSEdfSU5EX0VWICAgICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoU1NfTFBQX01UTFJfRU5EX0lORF9FViArIDEpDQorLyogTFBQIFRJTUVSIEVYUElSWSBFVkVOVCAqLw0KKyNkZWZpbmUgTFBQX1RSSVJQVF9USU1FUl9FWFBfRVYgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKFVNTV9MUFBfQ0VMTENIR19JTkRfRVYgKyAxKQ0KKyNkZWZpbmUgTFBQX1JFVFJBTlNfVElNRVJfRVhQX0VWICAgICAgICAgICAgICAgICAgICAgIChEV09SRCkoTFBQX1RSSVJQVF9USU1FUl9FWFBfRVYgKyAxKQ0KKyNkZWZpbmUgTFBQX01TR19UUkFDRV9MT0dfRVYgICAgICAgICAgICAgICAgICAgICAgICAgICAoRFdPUkQpKExQUF9SRVRSQU5TX1RJTUVSX0VYUF9FViArIDEpDQorDQorI2VuZGlmICAvKiBQU19FVkVOVERFRl9IICovDQorDQpkaWZmIC0tZ2l0IGEvcHViL2luY2x1ZGUvcHNfcGh5L3BzbDFjb20uaCBiL3B1Yi9pbmNsdWRlL3BzX3BoeS9wc2wxY29tLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjcxODc1MgotLS0gL2Rldi9udWxsCisrKyBiL3B1Yi9pbmNsdWRlL3BzX3BoeS9wc2wxY29tLmgKQEAgLTAsMCArMSwxNDc2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKrDmsb7L+dPQIChDKTIwMDnW0NDLzajRtrnJt93T0M/euavLvg0KKyAqICDEo7/pw/sgIKO60K3S6dW70+vO78DtsuO5q7myvdO/2s7EvP4NCisgKiAgzsS8/sP7ICAgIKO6cHNsMWNvbS5oDQorICogIM7EvP6x6sq2o7oNCisgKiAgz+C52M7EvP6jug0KKyAqICDKtc/WuabE3KO60K3S6dW70+tMMUe907/aoaK4987vwO2y48rKxeSy473Tv9oNCisgKiAg1/fV3yAgICAgICAgo7p3ZWl5dXpoZW4NCisgKiAgsOaxviAgICAgICAgo7pWMS4wDQorICogIM3qs8nI1cbao7oyMDEwLjEyLjMwDQorICogIMbky/zLtcP3o7oiSVIise3Kvs/gudi1xLrq1rW2qNLloaK94bm5zOW2qNLloaK6r8r9tqjS5b75vMyz0NfUY29tbmVvbrT6wuujrA0KKyAqICAgICAgICAgICAgICAgICAg0tTKvtPr19TR0Mf4t9YNCisgKg0KKyAqICDQ3rjEvMfCvDGjug0KKyAqICAgIMjVICDG2qO6MjAxMi4wNS4yMQ0KKyAqICAgINDeuMTIy6O61cXF9LPMDQorICogICAg0N64xMTayN2jug0KKyAgICAgICAgIG1zLmggDQorICAgICAgICAxKU5FVFBBUl9JTlRFUl9GUkVRX0xFTkdUSCAg08k5uMSzyTE2DQorICAgICAgICAgMilNQVhfTk9fVVRSQU5fQ0VMTF9MSVNUX0lEWCAgINPJObjEs8kxNiANCisgICAgICAgICAzKU1BWF9OT19VVFJBTl9SRVNVTFQg08k5uMSzyTE2IA0KKyAgICAgICAgcHNsMWNvbS5oOg0KKyAgICAgICAgMaOpICAgWl9JUl9NQ1JfTUFYX0ZSRVEgICAg08k5uMSzyTE2DQorICAgICAgICAyo6laUFNfSVJfTUNSX01BWF9GUkVRICAgINPJObjEs8kxNg0KKyAgICAgICAgM6OpWl9JUl9OT0ZfQ0VMTF9MSVNUX0ZSRVFVRU5DSUVTINPJObjEs8kxNg0KKyAgICAgICAgNKOpWlBTX0lSX05PRl9DRUxMX0xJU1RfRlJFUVVFTkNJRVMgINPJObjEs8kxNg0KKyAgICAgICAgdGRwc3BoeWludC5oDQorICAgICAgICAxo6laX1REX1BfTUFYX0lOVEVSX0ZSRVFfTlVNICDTyTm4xLPJMTYNCisgICAgICAgIDKjqVpfVERfUF9NQVhfQkxJTkRfSU5URVJfRlJFUSAg08k5uMSzyTE2DQorICAgICAgICBhc2Nhc2ludC5oDQorICAgICAgICBaX01heFJlZGlyVGRGcmVxTnVtICDQ6NKqOS0+MTYNCisgICAgICAgIHJyLmijug0KKyAgICAgICAgTUFYX05PXzNHX1VUUkFOX0ZSRVFVRU5DWV9MSVNUINDo0qo5LT4xNg0KKyAgICAgICAgWl9NQVhfUFNFVURPX0ZSX0NFTExTINDo0qo5LT4xNg0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisjaWZuZGVmICAgIFBTTDFDT01fSA0KKyNkZWZpbmUgICAgUFNMMUNPTV9IDQorDQorI2lmbmRlZiBNVUxUSV9JUkFUXzI5NjMNCisjaW5jbHVkZSAgICJsMV9jb3VudF9sYXRjaC5oIg0KKyNlbmRpZg0KKyNpbmNsdWRlICAgInRkcHNwaHlpbnQuaCINCisNCisNCisjaW5jbHVkZSAgICJwc3dwaHlpbnQuaCINCisNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiAgICAgICAgICAgICAgICAgICAgICAgIM23zsS8/rD8uqwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogICAgICAgICAgICAgICAgICAgICAgICAgyKu+1rrqtqjS5SAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCisvKsrKxeTEo7/pyejWw9b3xKPKvbvyx+vH80dBUMqxttTTprXE1sbKvSovDQorI2RlZmluZSBaX0lSQVRfSU5JVF9NT0RFICAgIChCWVRFKTAgLyqz9cq8zt7Qp9bGyr0qLw0KKyNkZWZpbmUgWlBTX0lSQVRfSU5JVF9NT0RFICBaX0lSQVRfSU5JVF9NT0RFIA0KKyNkZWZpbmUgWl9JUkFUX0dTTV9NT0RFICAgICAoQllURSkxIC8qR1NN1sbKvSovDQorI2RlZmluZSBaUFNfSVJBVF9HU01fTU9ERSAgIFpfSVJBVF9HU01fTU9ERQ0KKyNkZWZpbmUgWl9JUkFUX1REX01PREUgICAgICAoQllURSkyIC8qVETWxsq9Ki8NCisjZGVmaW5lIFpQU19JUkFUX1REX01PREUgICAgWl9JUkFUX1REX01PREUNCisjZGVmaW5lIFpfSVJBVF9MVEVfTU9ERSAgICAgKEJZVEUpMyAvKkxURdbGyr0qLw0KKyNkZWZpbmUgWlBTX0lSQVRfTFRFX01PREUgICBaX0lSQVRfTFRFX01PREUNCisjZGVmaW5lIFpfSVJBVF9XX01PREUgICAgICAgKEJZVEUpNCAvKlfWxsq9Ki8NCisNCisvKlJSQ9e0zKwqLw0KKyNkZWZpbmUgWl9MMUFfTUVBU19SUkNfSURMRSAgIDANCisjZGVmaW5lIFpfTDFBX01FQVNfUlJDX0ZBQ0ggICAxDQorI2RlZmluZSBaX0wxQV9NRUFTX1JSQ19EQ0ggICAgMg0KKw0KKy8qR0FQxL+1xCovDQorI2RlZmluZSBaX0wxQV9HQVBfUFVSUE9TRV9OVUxMIDB4MDANCisjZGVmaW5lIFpfTDFBX0dBUF9QVVJQT1NFX1BMTU4gMHgwMQ0KKyNkZWZpbmUgWl9MMUFfR0FQX1BVUlBPU0VfTUVBUyAweDAyDQorI2RlZmluZSBaX0wxQV9HQVBfUFVSUE9TRV9VU0VEIDB4MDQNCisjZGVmaW5lIFpfTDFBX0dBUF9QVVJQT1NFX1JTU0kgMHg4MA0KKw0KKy8qu6y2r8a9vvm0sL/aKi8NCisjZGVmaW5lIFpfTDFBX01FQVNfR1NNX0lETEVfUkFWR19TSVpFIDQNCisjZGVmaW5lIFpfTDFBX01FQVNfR1NNX0RDSF9SQVZHX1NJWkUgIDENCisNCisjZGVmaW5lIFpfSVJfTUFYX0lOVEVSX0ZSRVFfQ0VMTF9OVU0gICAgICAgICAgICAgIChXT1JEKTMyICAgIC8quMPWtdPrdGRScmNQaHlJbnQuaNbQtcRaX1REX1BfTUFYX0lOVEVSX0ZSRVFfQ0VMTF9OVU3P4LXIKi8NCisjZGVmaW5lIFpQU19JUl9NQVhfSU5URVJfRlJFUV9DRUxMX05VTSAgICAgICAgICAgICBaX0lSX01BWF9JTlRFUl9GUkVRX0NFTExfTlVNDQorI2RlZmluZSBaX0lSX01DUl9NQVhfRlJFUSAgICAgICAgICAgICAgICAgICAgICAgICAoQllURSkxNg0KKyNkZWZpbmUgWlBTX0lSX01DUl9NQVhfRlJFUSAgICAgICAgICAgICAgICAgICAgICAgIFpfSVJfTUNSX01BWF9GUkVRDQorDQorI2RlZmluZSBaX0lSX01BWF9HQVBfTlVNICAgICAgICAgICAgICAgICAgICAgICAgICAoQllURSk4DQorI2RlZmluZSBaUFNfSVJfTUFYX0dBUF9OVU0gICAgICAgICAgICAgICAgICAgICAgICAgWl9JUl9NQVhfR0FQX05VTQ0KKw0KKyNkZWZpbmUgWl9JUl9IV19JUkFUX01FQVNfT0ZGU0VUICAgICAgICAgICAgICAgICAgKEJZVEUpMyANCisjZGVmaW5lIFpQU19JUl9IV19JUkFUX01FQVNfT0ZGU0VUICAgICAgICAgICAgICAgICBaX0lSX0hXX0lSQVRfTUVBU19PRkZTRVQgDQorDQorI2RlZmluZSBaX0lSX0RFQUNfR1NNX1JFUSAgICAgICAgICAgICAgICAgICAgICAgICAoQllURSkwDQorI2RlZmluZSBaUFNfSVJfREVBQ19HU01fUkVRICAgICAgICAgICAgICAgICAgICAgICAgWl9JUl9ERUFDX0dTTV9SRVENCisjZGVmaW5lIFpfSVJfU1VTUEVORF9VTVRTX1JFUSAgICAgICAgICAgICAgICAgICAgIChCWVRFKTENCisjZGVmaW5lIFpQU19JUl9TVVNQRU5EX1VNVFNfUkVRICAgICAgICAgICAgICAgICAgICBaX0lSX1NVU1BFTkRfVU1UU19SRVENCisjZGVmaW5lIFpfSVJfUkVTVU1FX1VNVFNfUkVRICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTINCisjZGVmaW5lIFpQU19JUl9SRVNVTUVfVU1UU19SRVEgICAgICAgICAgICAgICAgICAgICBaX0lSX1JFU1VNRV9VTVRTX1JFUQ0KKw0KKy8qy6u/qMurtP1MMUfQ6Mfz0N64xCy24MSjuuq2qNLlLNa4yr7Lq7T91tC24MSj0ru0/bX308MqLw0KKyNkZWZpbmUgWl9MMUFfTVVUSV9NT0RFICAgMA0KKw0KKy8qudLG8L+oMbu5yse/qDIqLw0KKyNkZWZpbmUgIFpfU1VTUEVORENBUkQxICAgIDANCisjZGVmaW5lICBaX1NVU1BFTkRDQVJEMiAgICAxDQorDQorLyq/qDEgv6gyttTTpsr91+nPwrHquurWtSovDQorI2RlZmluZSBaX0wxQV9DQVJEMSAgICAgICAgIDANCisjZGVmaW5lIFpfTDFBX0NBUkQyICAgICAgICAgMQ0KKw0KKyNkZWZpbmUgIFpfTFRFX1BfSVJBVF9NQVhfR0FQX05VTSAgICAyMCAvKrioxKPPwtfutPPF5NbDZ2Fwyv3EvyovDQorDQorLyrStc7xwODQzbao0uUqLw0KKyNkZWZpbmUgIEVWRU5UX1JGX09GRiAgICAgICAgICAgICAgICAoQllURSkwDQorI2RlZmluZSAgRVZFTlRfUkZfT04gICAgICAgICAgICAgICAgIChCWVRFKTENCisjZGVmaW5lICBFVkVOVF9NVF9DQUxMICAgICAgICAgICAgICAgKEJZVEUpMg0KKyNkZWZpbmUgIEVWRU5UX01PX0NBTEwgICAgICAgICAgICAgICAoQllURSkzDQorI2RlZmluZSAgRVZFTlRfTVRfU1MgICAgICAgICAgICAgICAgIChCWVRFKTQNCisjZGVmaW5lICBFVkVOVF9NT19TUyAgICAgICAgICAgICAgICAgKEJZVEUpNQ0KKyNkZWZpbmUgIEVWRU5UX01PX0NTX1NNUyAgICAgICAgICAgICAoQllURSk2DQorI2RlZmluZSAgRVZFTlRfTVRfQ1NfU01TICAgICAgICAgICAgIChCWVRFKTcNCisjZGVmaW5lICBFVkVOVF9NT19QU19TTVMgICAgICAgICAgICAgKEJZVEUpOA0KKyNkZWZpbmUgIEVWRU5UX01UX1BTX1NNUyAgICAgICAgICAgICAoQllURSk5DQorI2RlZmluZSAgRVZFTlRfQ0FSRF9DT05GSUcgICAgICAgICAgIChCWVRFKTEwDQorI2RlZmluZSAgRVZFTlRfQ1NfVVBEQVRFICAgICAgICAgICAgIChCWVRFKTExDQorI2RlZmluZSAgRVZFTlRfQ1NfREVUQUNIICAgICAgICAgICAgIChCWVRFKTEyDQorI2RlZmluZSAgRVZFTlRfQ1NfUlJDX0NPTk5FQ1QgICAgICAgIChCWVRFKTEzDQorI2RlZmluZSAgRVZFTlRfUFNfVVBEQVRFICAgICAgICAgICAgIChCWVRFKTE0DQorI2RlZmluZSAgRVZFTlRfUFNfREVUQUNIICAgICAgICAgICAgIChCWVRFKTE1DQorI2RlZmluZSAgRVZFTlRfUFNfU0lHTkFMTElORyAgICAgICAgIChCWVRFKTE2DQorI2RlZmluZSAgRVZFTlRfU0VBUkNIUExNTiAgICAgICAgICAgIChCWVRFKTE3DQorI2RlZmluZSAgRVZFTlRfUENIX1BBR0lORyAgICAgICAgICAgIChCWVRFKTE4DQorI2RlZmluZSAgRVZFTlRfUExNTl9DU0dfTElTVCAgICAgICAgIChCWVRFKTE5DQorI2RlZmluZSAgRVZFTlRfUFNfQ09OTkVDVCAgICAgICAgICAgIChCWVRFKTIwDQorI2RlZmluZSAgRVZFTlRfSFBQTE1OUFJPQyAgICAgICAgICAgIChCWVRFKTIxDQorI2RlZmluZSAgRVZFTlRfREVBQ1RJVkVEICAgICAgICAgICAgIChCWVRFKTIyDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICAgICAgICAgICAgICAgIFVSUkNB0+tMMUe5stPDuuq2qNLlo6i8zLPQ19RDb21uZW9utPrC66OpDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBsMXVkX21lYXMuaCwgYmVnaW4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBaX0lSX1BSRVBfSU5WQUxJRCAgICAgICAgICAgICAgICAgICAgICAgICAoQllURSkwDQorI2RlZmluZSBaUFNfSVJfUFJFUF9JTlZBTElEICAgICAgICAgICAgICAgICAgICAgICAgWl9JUl9QUkVQX0lOVkFMSUQNCisjZGVmaW5lIFpfSVJfUFJFUF9QQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTENCisjZGVmaW5lIFpQU19JUl9QUkVQX1BDSCAgICAgICAgICAgICAgICAgICAgICAgICAgICBaX0lSX1BSRVBfUENIDQorI2RlZmluZSBaX0lSX1BSRVBfUFBDSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQllURSkyDQorI2RlZmluZSBaUFNfSVJfUFJFUF9QUENIICAgICAgICAgICAgICAgICAgICAgICAgICAgWl9JUl9QUkVQX1BQQ0gNCisjZGVmaW5lIFpfSVJfUFJFUF9UQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTMNCisjZGVmaW5lIFpQU19JUl9QUkVQX1RDSCAgICAgICAgICAgICAgICAgICAgICAgICAgICBaX0lSX1BSRVBfVENIDQorI2RlZmluZSBaX0lSX1BSRVBfU0RDQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAoQllURSk0DQorI2RlZmluZSBaUFNfSVJfUFJFUF9TRENDSCAgICAgICAgICAgICAgICAgICAgICAgICAgWl9JUl9QUkVQX1NEQ0NIDQorI2RlZmluZSBaX0lSX1BSRVBfUFRNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQllURSk1DQorI2RlZmluZSBaUFNfSVJfUFJFUF9QVE0gICAgICAgICAgICAgICAgICAgICAgICAgICAgWl9JUl9QUkVQX1BUTQ0KKyNkZWZpbmUgWl9JUl9QUkVQX0lSQVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJZVEUpNiAgICAgLyogVXNlZCBmb3IgYm90aCBUQ0ggYW5kIFBUTSB3aGVuIFNJTkdMRV9BTlRFTk5BX1NVUFBPUlQgaXMgZGVmaW5lZCAqLw0KKyNkZWZpbmUgWlBTX0lSX1BSRVBfSVJBVCAgICAgICAgICAgICAgICAgICAgICAgICAgIFpfSVJfUFJFUF9JUkFUIA0KKw0KKyNkZWZpbmUgWl9JUl9Hc21HYXBDbHVzdGVyVHlwZV9kaXNvcmRlcmVkICAgICAgICAgKEJZVEUpMA0KKyNkZWZpbmUgWlBTX0lSX0dzbUdhcENsdXN0ZXJUeXBlX2Rpc29yZGVyZWQgICAgICAgIFpfSVJfR3NtR2FwQ2x1c3RlclR5cGVfZGlzb3JkZXJlZA0KKyNkZWZpbmUgWl9JUl9Hc21HYXBDbHVzdGVyVHlwZV9zaG9ydCAgICAgICAgICAgICAgKEJZVEUpMQ0KKyNkZWZpbmUgWlBTX0lSX0dzbUdhcENsdXN0ZXJUeXBlX3Nob3J0ICAgICAgICAgICAgIFpfSVJfR3NtR2FwQ2x1c3RlclR5cGVfc2hvcnQNCisjZGVmaW5lIFpfSVJfR3NtR2FwQ2x1c3RlclR5cGVfbG9uZyAgICAgICAgICAgICAgIChCWVRFKTINCisjZGVmaW5lIFpQU19JUl9Hc21HYXBDbHVzdGVyVHlwZV9sb25nICAgICAgICAgICAgICBaX0lSX0dzbUdhcENsdXN0ZXJUeXBlX2xvbmcNCisjZGVmaW5lIFpfSVJfU2VhcmNoUHJpb01vZGVfT2ZmICAgICAgICAgICAgICAgICAgIChCWVRFKTANCisjZGVmaW5lIFpQU19JUl9TZWFyY2hQcmlvTW9kZV9PZmYgICAgICAgICAgICAgICAgICBaX0lSX1NlYXJjaFByaW9Nb2RlX09mZg0KKyNkZWZpbmUgWl9JUl9TZWFyY2hQcmlvTW9kZV9PbiAgICAgICAgICAgICAgICAgICAgKEJZVEUpMQ0KKyNkZWZpbmUgWlBTX0lSX1NlYXJjaFByaW9Nb2RlX09uICAgICAgICAgICAgICAgICAgIFpfSVJfU2VhcmNoUHJpb01vZGVfT24NCisNCisjaWZkZWYgU0lOR0xFX0FOVEVOTkFfU1VQUE9SVA0KKyNkZWZpbmUgWl9JUl9JUkFUX0dTTV9QUklPX01FQVNfUEVSSU9EX0lETEUgICAgICAgKEJZVEUpMzgNCisjZGVmaW5lIFpQU19JUl9JUkFUX0dTTV9QUklPX01FQVNfUEVSSU9EX0lETEUgICAgICBaX0lSX0lSQVRfR1NNX1BSSU9fTUVBU19QRVJJT0RfSURMRQ0KKyNlbHNlDQorI2RlZmluZSBaX0lSX0lSQVRfR1NNX1BSSU9fTUVBU19QRVJJT0RfSURMRSAgICAgICAoQllURSkzMg0KKyNkZWZpbmUgWlBTX0lSX0lSQVRfR1NNX1BSSU9fTUVBU19QRVJJT0RfSURMRSAgICAgIFpfSVJfSVJBVF9HU01fUFJJT19NRUFTX1BFUklPRF9JRExFDQorI2VuZGlmDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBsMXVkX21lYXMuaCwgZW5kID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKw0KKy8qIG1heC4gbnVtYmVyIG9mIGNlbGxzIHRoYXQgYXJlIGJlaW5nIGtlcHQgc3luY2hyb25pemVkICovDQorI2RlZmluZSBNQVhfSVJfU1lOQ19JTkZPX0NFTExTICAgICAgICAgICAgICAgICAgICAoQllURSkxMCAvLyhNQVhfUkVQT1JURURfR1NNX0NFTExTICsgMikNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBsMXVfaXJhdC5oLCBiZWdpbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorLyogbWF4LiBudW1iZXIgb2YgY2VsbHMgdGhhdCBhcmUgYmVpbmcga2VwdCBzeW5jaHJvbml6ZWQgKi8NCisjZGVmaW5lIFpfSVJfTUFYX0lSX1NZTkNfSU5GT19DRUxMUyAgICAgICAgICAgICAgIE1BWF9JUl9TWU5DX0lORk9fQ0VMTFMgDQorI2RlZmluZSBaUFNfSVJfTUFYX0lSX1NZTkNfSU5GT19DRUxMUyAgICAgICAgICAgICBaX0lSX01BWF9JUl9TWU5DX0lORk9fQ0VMTFMNCisNCisvKg0KKyoqIEluZGljYXRlcyB0aGUgdHlwZSBvZiBJbnRlclJBVCB0aW1pbmcgY29udHJvbCBpbiB3aGljaCB3ZSB3b3JrLCBlLmcuIGZvciBTQg0KKyovDQorI2RlZmluZSBaX0lSX1VNVFNfVElNSU5HX0NUUkwgICAgICAgICAgICAgICAgICAgICAoQllURSkwIC8qIFVNVFMgZG9lcyBtb3N0IG9mIHRoZSB0aW1pbmcgY2FsY3VsYXRpb24gKi8NCisjZGVmaW5lIFpQU19JUl9VTVRTX1RJTUlOR19DVFJMICAgICAgICAgICAgICAgICAgICBaX0lSX1VNVFNfVElNSU5HX0NUUkwgDQorI2RlZmluZSBaX0lSX0dTTV9USU1JTkdfQ1RSTCAgICAgICAgICAgICAgICAgICAgICAoQllURSkxIC8qIEdTTSBkb2VzIG1vc3Qgb2YgdGhlIHRpbWluZyBjYWxjdWxhdGlvbiAgKi8NCisjZGVmaW5lIFpQU19JUl9HU01fVElNSU5HX0NUUkwgICAgICAgICAgICAgICAgICAgICBaX0lSX0dTTV9USU1JTkdfQ1RSTA0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBsMXVfaXJhdC5oLCBlbmQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKw0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBsMXVfaXJhdF9taXNjLmgsIGJlZ2luID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisvKiByZXF1ZXN0cyB0byBVTVRTIEludGVyUkFUIGhhbmRsZXIgKi8NCisjZGVmaW5lIFpfSVJfREVBQ19VTVRTX1JFUSAgICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTANCisjZGVmaW5lIFpQU19JUl9ERUFDX1VNVFNfUkVRICAgICAgICAgICAgICAgICAgICAgICBaX0lSX0RFQUNfVU1UU19SRVENCisjZGVmaW5lIFpfSVJfU1VTUEVORF9HU01fUkVRICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTENCisjZGVmaW5lIFpQU19JUl9TVVNQRU5EX0dTTV9SRVEgICAgICAgICAgICAgICAgICAgICBaX0lSX1NVU1BFTkRfR1NNX1JFUQ0KKyNkZWZpbmUgWl9JUl9SRVNVTUVfR1NNX1JFUSAgICAgICAgICAgICAgICAgICAgICAgKEJZVEUpMg0KKyNkZWZpbmUgWlBTX0lSX1JFU1VNRV9HU01fUkVRICAgICAgICAgICAgICAgICAgICAgIFpfSVJfUkVTVU1FX0dTTV9SRVENCisNCisvKiBjb25maXJtIHRvIFVNVFMgSW50ZXJSQVQgaGFuZGxlciAqLw0KKyNkZWZpbmUgWl9JUl9OT19DTkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJZVEUpMA0KKyNkZWZpbmUgWlBTX0lSX05PX0NORiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFpfSVJfTk9fQ05GDQorI2RlZmluZSBaX0lSX0RFQUNfVU1UU19DTkYgICAgICAgICAgICAgICAgICAgICAgICAoQllURSkxDQorI2RlZmluZSBaUFNfSVJfREVBQ19VTVRTX0NORiAgICAgICAgICAgICAgICAgICAgICAgWl9JUl9ERUFDX1VNVFNfQ05GDQorI2RlZmluZSBaX0lSX1NVU1BFTkRfR1NNX0NORiAgICAgICAgICAgICAgICAgICAgICAoQllURSkyDQorI2RlZmluZSBaUFNfSVJfU1VTUEVORF9HU01fQ05GICAgICAgICAgICAgICAgICAgICAgWl9JUl9TVVNQRU5EX0dTTV9DTkYNCisjZGVmaW5lIFpfSVJfUkVTVU1FX0dTTV9DTkYgICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTMNCisjZGVmaW5lIFpQU19JUl9SRVNVTUVfR1NNX0NORiAgICAgICAgICAgICAgICAgICAgICBaX0lSX1JFU1VNRV9HU01fQ05GDQorLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IGwxdV9pcmF0X21pc2MuaCwgZW5kID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gbDF1ZF90c3RhbXAuaCwgYmVnaW4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKy8qIG1vZGVzIGZvciBnZXR0aW5nIHRpbWVzdGFtcHMgKi8NCisjZGVmaW5lIFpfSVJfVFNfTU9ERV9JTlZBTElEICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTANCisjZGVmaW5lIFpQU19JUl9UU19NT0RFX0lOVkFMSUQgICAgICAgICAgICAgICAgICAgICBaX0lSX1RTX01PREVfSU5WQUxJRA0KKyNkZWZpbmUgWl9JUl9UU19NT0RFX05PTlNUT1AgICAgICAgICAgICAgICAgICAgICAgKEJZVEUpMSAvKiBnZXR0aW5nIHRpbWVzdGFtcHMgdGFrZXMgcGxhY2UgZmFzdCBhcyBwb3NzaWJsZSAqLw0KKyNkZWZpbmUgWlBTX0lSX1RTX01PREVfTk9OU1RPUCAgICAgICAgICAgICAgICAgICAgIFpfSVJfVFNfTU9ERV9OT05TVE9QDQorI2RlZmluZSBaX0lSX1RTX01PREVfUEFVU0lORyAgICAgICAgICAgICAgICAgICAgICAoQllURSkyIC8qIHRha2UgYSBicmVhayBhZnRlciBnZXR0aW5nIGEgdGltZXN0YW1wICovDQorI2RlZmluZSBaUFNfSVJfVFNfTU9ERV9QQVVTSU5HICAgICAgICAgICAgICAgICAgICAgWl9JUl9UU19NT0RFX1BBVVNJTkcNCisNCisvKiBtb2RlcyBmb3IgZXZhbHVhdGluZyB0aGUgYW50ZW5uYSBnYXBzICovDQorI2RlZmluZSBaX0lSX0dBUFNfSUdOT1JFRCAgICAgICAgICAgICAgICAgICAgICAgICAoQllURSkwIC8qIHJlcG9ydGluZyBvZiBwb3NzaWJseSBjYWxjdWxhdGVkIGdhcHMgYWNjb3JkaW5nIFVNVFMgDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiogYW50ZW5uYSBhY3Rpdml0aWVzIG9uIEdTTSBzaWRlIGFyZSBpZ25vcmVkDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiogLT4geklSX2wxdWRfdHN0YW1wX2lzX2FudGVubmFfcmVhZHlfZm9yX2dzbSguLikgYWx3YXlzIFRSVUUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLw0KKyNkZWZpbmUgWlBTX0lSX0dBUFNfSUdOT1JFRCAgICAgICAgICAgICAgICAgICAgICAgIFpfSVJfR0FQU19JR05PUkVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisjZGVmaW5lIFpfSVJfR0FQU19FVkFMVUFURUQgICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTEgLyogZ2FwcyBhY2NvcmRpbmcgVU1UUyBhbnRlbm5hIGFjdGl2aXRpZXMgYXJlIGV2YWx1YXRlZCovDQorI2RlZmluZSBaUFNfSVJfR0FQU19FVkFMVUFURUQgICAgICAgICAgICAgICAgICAgICAgWl9JUl9HQVBTX0VWQUxVQVRFRA0KKw0KKyNkZWZpbmUgWl9JUl9UU1RBTVBfU0ZOX0JBU0VEICAgICAgICAgICAgICAgICAgICAgKEJZVEUpMA0KKyNkZWZpbmUgWlBTX0lSX1RTVEFNUF9TRk5fQkFTRUQgICAgICAgICAgICAgICAgICAgIFpfSVJfVFNUQU1QX1NGTl9CQVNFRA0KKyNkZWZpbmUgWl9JUl9UU1RBTVBfQ0ZOX0JBU0VEICAgICAgICAgICAgICAgICAgICAgKEJZVEUpMQ0KKyNkZWZpbmUgWlBTX0lSX1RTVEFNUF9DRk5fQkFTRUQgICAgICAgICAgICAgICAgICAgIFpfSVJfVFNUQU1QX0NGTl9CQVNFRA0KKw0KKyNkZWZpbmUgWl9JUl9NRE9fUkVTRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJZVEUpMA0KKyNkZWZpbmUgWlBTX0lSX01ET19SRVNFTCAgICAgICAgICAgICAgICAgICAgICAgICAgIFpfSVJfTURPX1JFU0VMDQorI2RlZmluZSBaX0lSX01ET19FWFRfTUVBUyAgICAgICAgICAgICAgICAgICAgICAgICAoQllURSkxDQorI2RlZmluZSBaUFNfSVJfTURPX0VYVF9NRUFTICAgICAgICAgICAgICAgICAgICAgICAgWl9JUl9NRE9fRVhUX01FQVMNCisvLyNpZiAoZGVmaW5lZChHUFJTKSAmJiBkZWZpbmVkKFVNVFMpKQ0KKyNkZWZpbmUgWl9JUl9NRE9fVU1UUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJZVEUpMg0KKyNkZWZpbmUgWlBTX0lSX01ET19VTVRTICAgICAgICAgICAgICAgICAgICAgICAgICAgIFpfSVJfTURPX1VNVFMNCisvLyNlbmRpZiAvKiAoZGVmaW5lZChHUFJTKSAmJiBkZWZpbmVkKFVNVFMpKSAqLw0KKyNkZWZpbmUgWl9JUl9NRE9fUFVSUE9TRV9DT1VOVCAgICAgICAgICAgICAgICAgICAgKEJZVEUpMw0KKyNkZWZpbmUgWlBTX0lSX01ET19QVVJQT1NFX0NPVU5UICAgICAgICAgICAgICAgICAgIFpfSVJfTURPX1BVUlBPU0VfQ09VTlQNCisNCisvKtL919Rtcy5o1tCyqLbOtcS66rao0uWjrM6qsdzD4rD8uqxtcy5oucrW2NDCtqjS5SovDQorI2RlZmluZSBaX0lSX01TX0dTTTkwMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQllURSkwDQorI2RlZmluZSBaUFNfSVJfTVNfR1NNOTAwICAgICAgICAgICAgICAgICAgICAgICAgICAgWl9JUl9NU19HU005MDANCisjZGVmaW5lIFpfSVJfTVNfR1NNOTAwX1AgICAgICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTENCisjZGVmaW5lIFpQU19JUl9NU19HU005MDBfUCAgICAgICAgICAgICAgICAgICAgICAgICBaX0lSX01TX0dTTTkwMF9QDQorI2RlZmluZSBaX0lSX01TX0dTTTkwMF9FICAgICAgICAgICAgICAgICAgICAgICAgICAoQllURSkyDQorI2RlZmluZSBaUFNfSVJfTVNfR1NNOTAwX0UgICAgICAgICAgICAgICAgICAgICAgICAgWl9JUl9NU19HU005MDBfRQ0KKyNkZWZpbmUgWl9JUl9NU19HU005MDBfUiAgICAgICAgICAgICAgICAgICAgICAgICAgKEJZVEUpMw0KKyNkZWZpbmUgWlBTX0lSX01TX0dTTTkwMF9SICAgICAgICAgICAgICAgICAgICAgICAgIFpfSVJfTVNfR1NNOTAwX1INCisjZGVmaW5lIFpfSVJfTVNfR1NNMTgwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTQNCisjZGVmaW5lIFpQU19JUl9NU19HU00xODAwICAgICAgICAgICAgICAgICAgICAgICAgICBaX0lSX01TX0dTTTE4MDANCisjZGVmaW5lIFpfSVJfTVNfR1NNMTkwMCAgICAgICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTUNCisjZGVmaW5lIFpQU19JUl9NU19HU00xOTAwICAgICAgICAgICAgICAgICAgICAgICAgICBaX0lSX01TX0dTTTE5MDANCisjZGVmaW5lIFpfSVJfTVNfR1NNODUwICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTYNCisjZGVmaW5lIFpQU19JUl9NU19HU004NTAgICAgICAgICAgICAgICAgICAgICAgICAgICBaX0lSX01TX0dTTTg1MA0KKyNkZWZpbmUgWl9JUl9NU19HU000NTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJZVEUpNw0KKyNkZWZpbmUgWlBTX0lSX01TX0dTTTQ1MCAgICAgICAgICAgICAgICAgICAgICAgICAgIFpfSVJfTVNfR1NNNDUwDQorI2RlZmluZSBaX0lSX01TX0dTTTQ4MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQllURSk4DQorI2RlZmluZSBaUFNfSVJfTVNfR1NNNDgwICAgICAgICAgICAgICAgICAgICAgICAgICAgWl9JUl9NU19HU000ODANCisjZGVmaW5lIFpfSVJfTVNfR1NNNzUwICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTkNCisjZGVmaW5lIFpQU19JUl9NU19HU003NTAgICAgICAgICAgICAgICAgICAgICAgICAgICBaX0lSX01TX0dTTTc1MA0KKyNkZWZpbmUgWl9JUl9NU19HU01fVF9HU01fMzgwICAgICAgICAgICAgICAgICAgICAgKEJZVEUpMTANCisjZGVmaW5lIFpQU19JUl9NU19HU01fVF9HU01fMzgwICAgICAgICAgICAgICAgICAgICBaX0lSX01TX0dTTV9UX0dTTV8zODANCisjZGVmaW5lIFpfSVJfTVNfR1NNX1RfR1NNXzQxMCAgICAgICAgICAgICAgICAgICAgIChCWVRFKTExDQorI2RlZmluZSBaUFNfSVJfTVNfR1NNX1RfR1NNXzQxMCAgICAgICAgICAgICAgICAgICAgWl9JUl9NU19HU01fVF9HU01fNDEwDQorI2RlZmluZSBaX0lSX01TX0dTTV9UX0dTTV85MDAgICAgICAgICAgICAgICAgICAgICAoQllURSkxMg0KKyNkZWZpbmUgWlBTX0lSX01TX0dTTV9UX0dTTV85MDAgICAgICAgICAgICAgICAgICAgIFpfSVJfTVNfR1NNX1RfR1NNXzkwMA0KKyNkZWZpbmUgWl9JUl9NU19NVUxUSUJBTkQgICAgICAgICAgICAgICAgICAgICAgICAgKEJZVEUpMTMNCisjZGVmaW5lIFpQU19JUl9NU19NVUxUSUJBTkQgICAgICAgICAgICAgICAgICAgICAgICBaX0lSX01TX01VTFRJQkFORA0KKyNkZWZpbmUgWl9JUl9NU19VTVRTX0ZERCAgICAgICAgICAgICAgICAgICAgICAgICAgKEJZVEUpMTQNCisjZGVmaW5lIFpQU19JUl9NU19VTVRTX0ZERCAgICAgICAgICAgICAgICAgICAgICAgICBaX0lSX01TX1VNVFNfRkREDQorI2RlZmluZSBaX0lSX01TX1VNVFNfVEREICAgICAgICAgICAgICAgICAgICAgICAgICAoQllURSkxNQ0KKyNkZWZpbmUgWlBTX0lSX01TX1VNVFNfVEREICAgICAgICAgICAgICAgICAgICAgICAgIFpfSVJfTVNfVU1UU19UREQNCisjZGVmaW5lIFpfSVJfSU5WQUxJRF9CQU5EICAgICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTE2DQorI2RlZmluZSBaUFNfSVJfSU5WQUxJRF9CQU5EICAgICAgICAgICAgICAgICAgICAgICAgWl9JUl9JTlZBTElEX0JBTkQNCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gbDF1ZF90c3RhbXAuaCwgZW5kID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisNCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gbDF1X21kYi5oID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorI2RlZmluZSBaX0lSX05PRl9VVFJBTl9DRUxMU19QRVJfRlJFUVVFTkNZICAgICAgICAoQllURSkzMg0KKyNkZWZpbmUgWlBTX0lSX05PRl9VVFJBTl9DRUxMU19QRVJfRlJFUVVFTkNZICAgICAgIFpfSVJfTk9GX1VUUkFOX0NFTExTX1BFUl9GUkVRVUVOQ1kNCisgICAgDQorI2RlZmluZSBaX0lSX05PRl9DRUxMX0xJU1RfRlJFUVVFTkNJRVMgICAgICAgICAgICAoQllURSkxNg0KKyNkZWZpbmUgWlBTX0lSX05PRl9DRUxMX0xJU1RfRlJFUVVFTkNJRVMgICAgICAgICAgIFpfSVJfTk9GX0NFTExfTElTVF9GUkVRVUVOQ0lFUw0KKyAgICANCisjZGVmaW5lIFpfSVJfSU5WQUxJRF9VQVJGQ04gICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTB4RkZGRg0KKyNkZWZpbmUgWlBTX0lSX0lOVkFMSURfVUFSRkNOICAgICAgICAgICAgICAgICAgICAgIFpfSVJfSU5WQUxJRF9VQVJGQ04NCisjZGVmaW5lIFpfSVJfSU5WQUxJRF9ETF9QU0MgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTB4RkZGRg0KKyNkZWZpbmUgWlBTX0lSX0lOVkFMSURfRExfUFNDICAgICAgICAgICAgICAgICAgICAgIFpfSVJfSU5WQUxJRF9ETF9QU0MNCisgICAgDQorI2RlZmluZSBaX0lSX1VUUkFOX0lSQVRfTUVBU19ESVNBQkxFRCAgICAgICAgICAgICAoQllURSkwDQorI2RlZmluZSBaUFNfSVJfVVRSQU5fSVJBVF9NRUFTX0RJU0FCTEVEICAgICAgICAgICAgWl9JUl9VVFJBTl9JUkFUX01FQVNfRElTQUJMRUQNCisjZGVmaW5lIFpfSVJfVVRSQU5fSVJBVF9NRUFTX0VOQUJMRUQgICAgICAgICAgICAgIChCWVRFKTENCisjZGVmaW5lIFpQU19JUl9VVFJBTl9JUkFUX01FQVNfRU5BQkxFRCAgICAgICAgICAgICBaX0lSX1VUUkFOX0lSQVRfTUVBU19FTkFCTEVEDQorI2RlZmluZSBaX0lSX1VUUkFOX0lSQVRfTUVBU19ERUQgICAgICAgICAgICAgICAgICAoQllURSkyDQorI2RlZmluZSBaUFNfSVJfVVRSQU5fSVJBVF9NRUFTX0RFRCAgICAgICAgICAgICAgICAgWl9JUl9VVFJBTl9JUkFUX01FQVNfREVEDQorI2RlZmluZSBaX0lSX1VUUkFOX0lSQVRfTUVBU19OQyAgICAgICAgICAgICAgICAgICAoQllURSk0DQorI2RlZmluZSBaUFNfSVJfVVRSQU5fSVJBVF9NRUFTX05DICAgICAgICAgICAgICAgICAgWl9JUl9VVFJBTl9JUkFUX01FQVNfTkMNCisjZGVmaW5lIFpfSVJfVVRSQU5fSVJBVF9NRUFTX0FMTCAgICAgICAgICAgICAgICAgIChCWVRFKTcNCisjZGVmaW5lIFpQU19JUl9VVFJBTl9JUkFUX01FQVNfQUxMICAgICAgICAgICAgICAgICBaX0lSX1VUUkFOX0lSQVRfTUVBU19BTEwNCisgICAgDQorI2RlZmluZSBaX0lSX01ET19HQVBfTU9ERV9MT05HICAgICAgICAgICAgICAgICAgICAoQllURSkwDQorI2RlZmluZSBaUFNfSVJfTURPX0dBUF9NT0RFX0xPTkcgICAgICAgICAgICAgICAgICAgWl9JUl9NRE9fR0FQX01PREVfTE9ORw0KKyNkZWZpbmUgWl9JUl9NRE9fR0FQX01PREVfU0hPUlQgICAgICAgICAgICAgICAgICAgKEJZVEUpMQ0KKyNkZWZpbmUgWlBTX0lSX01ET19HQVBfTU9ERV9TSE9SVCAgICAgICAgICAgICAgICAgIFpfSVJfTURPX0dBUF9NT0RFX1NIT1JUDQorICAgIA0KKyNkZWZpbmUgWl9JUl9DRUxMX0xJU1RfMCAgICAgICAgICAgICAgICAgICAgICAgICAgKEJZVEUpMA0KKyNkZWZpbmUgWlBTX0lSX0NFTExfTElTVF8wICAgICAgICAgICAgICAgICAgICAgICAgIFpfSVJfQ0VMTF9MSVNUXzANCisjZGVmaW5lIFpfSVJfQ0VMTF9MSVNUXzEgICAgICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTENCisjZGVmaW5lIFpQU19JUl9DRUxMX0xJU1RfMSAgICAgICAgICAgICAgICAgICAgICAgICBaX0lSX0NFTExfTElTVF8xDQorI2RlZmluZSBaX0lSX0NFTExfTElTVF8yICAgICAgICAgICAgICAgICAgICAgICAgICAoQllURSk4DQorI2RlZmluZSBaUFNfSVJfQ0VMTF9MSVNUXzIgICAgICAgICAgICAgICAgICAgICAgICAgWl9JUl9DRUxMX0xJU1RfMg0KKyNkZWZpbmUgWl9JUl9DRUxMX0xJU1RfSURfVU5LTk9XTiAgICAgICAgICAgICAgICAgKEJZVEUpMHhGRg0KKyNkZWZpbmUgWlBTX0lSX0NFTExfTElTVF9JRF9VTktOT1dOICAgICAgICAgICAgICAgIFpfSVJfQ0VMTF9MSVNUX0lEX1VOS05PV04NCisNCisjZGVmaW5lIFpfSVJfVVRSQU5fSU5BQ1RJVkUgICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTANCisjZGVmaW5lIFpQU19JUl9VVFJBTl9JTkFDVElWRSAgICAgICAgICAgICAgICAgICAgICBaX0lSX1VUUkFOX0lOQUNUSVZFDQorI2RlZmluZSBaX0lSX1VUUkFOX0FDVElWRSAgICAgICAgICAgICAgICAgICAgICAgICAoQllURSkxDQorI2RlZmluZSBaUFNfSVJfVVRSQU5fQUNUSVZFICAgICAgICAgICAgICAgICAgICAgICAgWl9JUl9VVFJBTl9BQ1RJVkUNCisjZGVmaW5lIFpfSVJfVVRSQU5fU1VTUEVORCAgICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTINCisjZGVmaW5lIFpQU19JUl9VVFJBTl9TVVNQRU5EICAgICAgICAgICAgICAgICAgICAgICBaX0lSX1VUUkFOX1NVU1BFTkQNCisjZGVmaW5lIFpfSVJfVVRSQU5fRklOSVNIRUQgICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTMgDQorI2RlZmluZSBaUFNfSVJfVVRSQU5fRklOSVNIRUQgICAgICAgICAgICAgICAgICAgICAgWl9JUl9VVFJBTl9GSU5JU0hFRA0KKw0KKyNkZWZpbmUgWl9JUl9NQVhfR1NNX0NFTExfQ05UICAgICAgICAgICAgICAgICAgICAgKEJZVEUpMzINCisjZGVmaW5lIFpQU19JUl9NQVhfR1NNX0NFTExfQ05UICAgICAgICAgICAgICAgICAgICBaX0lSX01BWF9HU01fQ0VMTF9DTlQNCisjZGVmaW5lIFpfTFRFX1BfTUFYX0lSQVRfUkVQT1JUX0NFTExfUEVSX0ZSRVEgICAgIChCWVRFKTMyDQorI2RlZmluZSBaUFNfTFRFX1BfTUFYX0lSQVRfUkVQT1JUX0NFTExfUEVSX0ZSRVEgICAgWl9MVEVfUF9NQVhfSVJBVF9SRVBPUlRfQ0VMTF9QRVJfRlJFUQ0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAxdV9tZGIuaCwgZW5kID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIMirvtbK/b7dwODQzSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgPSAzR86q1vfKsaOsMke0/bLiwb/Qocf4tqjS5aOo0+ttcy5o1tBUX01PTl9NRUFTX1JFU1VMVF9HU01fRUxFTUVOVM/gzayjqT0NCisgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3QgDQorew0KKyAgICBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZWxsX2lkOyAgICAvKkwxR8v5saO05kJBwdCx7bXEy/fS/da1Ki8NCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnNpYzsNCisgICAgQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNzaTsNCit9IFRfeklSX01PTl9NRUFTX1JFU1VMVF9HU01fRUxFTUVOVCxUX3pQU19JUl9NT05fTUVBU19SRVNVTFRfR1NNX0VMRU1FTlQ7DQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgPSAgICAgICAzR86q1vfKsaOsx+vH87vxyKFMMUexo7TmtcRCQcHQse0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0NCisgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBXT1JEICBUX1JBRElPX0ZSRVFfTk87DQordHlwZWRlZiBCWVRFICBUX0JTSUM7DQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBUX1JBRElPX0ZSRVFfTk8gIEFbMzJdOw0KK30gIFRfQ0hBTl9MSVNUOw0KKw0KK3R5cGVkZWYgVF9DSEFOX0xJU1QgVF96SVJfQ0hBTl9MSVNUOw0KK3R5cGVkZWYgVF96SVJfQ0hBTl9MSVNUIFRfelBTX0lSX0NIQU5fTElTVDsNCisNCit0eXBlZGVmIHN0cnVjdCBUX0JDQ0hfTElTVF9zIHsNCisgICAgQllURSAgbnVtX29mX2NoYW5zOw0KKyAgICBUX0NIQU5fTElTVCAgY2hhbl9udW1iZXI7DQorfSBUX0JDQ0hfTElTVDsNCisNCit0eXBlZGVmIFRfQkNDSF9MSVNUIFRfeklSX0JDQ0hfTElTVDsNCit0eXBlZGVmIFRfeklSX0JDQ0hfTElTVCBUX3pQU19JUl9CQ0NIX0xJU1Q7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgPSAgICAgICAyR86q1vfKsaOssuLBv8frx/Oyzsr9tcTK/b7dveG5uSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPQ0KKyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdA0KK3sgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVYXJmY247DQorICAgIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJOdW1fb2ZfY2VsbHM7DQorICAgIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJQYWRkaW5nOw0KKyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRDZWxsSW5mb1taX0lSX01BWF9JTlRFUl9GUkVRX0NFTExfTlVNXTsNCit9IFRfeklSX1VNZWFzVWFyZmNuLFRfelBTX0lSX1VNZWFzVWFyZmNuOw0KKw0KK3R5cGVkZWYgc3RydWN0DQoreyAgICANCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYk1lYXNfcmVmZXJlbmNlOw0KKyAgICBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiTnVtX29mX3VhcmZjbnM7ICAvKrT9suLGtbXjyv0qLw0KKyAgICBUX3pJUl9VTWVhc1VhcmZjbiAgICAgICAgICAgICAgICBhdFVhcmZjbltaX0lSX01DUl9NQVhfRlJFUV07IA0KK30gVF96SVJfVU1lYXNQYXJhbXMsVF96UFNfSVJfVU1lYXNQYXJhbXM7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgPSAgICAgICAyR86q1vfKsaOssuLBv73hufvJz7Goss7K/bXEyv2+3b3hubkgICAgICAgICAgICAgICAgICAgICAgICAgICAgPQ0KKyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdA0KK3sgICAgICAgDQorICAgIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJVY2VsbF9wYXJhbTsNCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYlJzY3A7IA0KK30gVF96SVJfVU1lYXNDZWxsc1JsdCxUX3pQU19JUl9VTWVhc0NlbGxzUmx0Ow0KKw0KK3R5cGVkZWYgc3RydWN0DQoreyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1VhcmZjbjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorDQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR3TWVhc3VyZWRfY2VsbHM7ICAvKtLRsuLQocf4tcRCSVRNQVAqLw0KKw0KKyAgICBUX3pJUl9VTWVhc0NlbGxzUmx0ICAgICAgICAgICAgICBhdENlbGxSbHRbWl9JUl9NQVhfSU5URVJfRlJFUV9DRUxMX05VTV07IA0KK30gVF96SVJfVU1lYXNGcmVxUmx0LFRfelBTX0lSX1VNZWFzRnJlcVJsdDsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7DQorICAgIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJNZWFzX3JlZmVyZW5jZTsgICAvKkwxR8Tasr/KudPDtcSy4sG/seC6xaOs08PAtMXQts+y4sG/yse38bjEseQqLw0KKyAgICBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibm9mX2ZyZXE7ICAgICAgICAgLyrJz7GotcTGtbXjyv0qLw0KKyAgICBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYlBhZGRpbmdbMl07DQorDQorICAgIFRfeklSX1VNZWFzRnJlcVJsdCAgICAgICAgICAgICAgIGF0RnJlcVJsdFtaX0lSX01DUl9NQVhfRlJFUV07DQorfSBUX3pJUl9VTWVhc1JsdExpc3QsVF96UFNfSVJfVU1lYXNSbHRMaXN0Ow0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorID0gR1NNIFRpbWluZyBpbmZvcm1hdGlvbiBhcyBjb21tdW5pY2F0ZWQgZnJvbSBVTVRTIA0KKyA9IEZvciBkZXRhaWxzIG9uIHRpbWVzdGFtcCByZWFkaW5nLCBwbGVhc2Ugc2VlIHRoZSBkc3BlYw0KKyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIGxvbmcgVF9MMV9IWVBFUl9GUkFNRV9OTzsNCit0eXBlZGVmIFdPUkQgIFRfTDFfUUJJVFM7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQorew0KKyAgVF9MMV9IWVBFUl9GUkFNRV9OTyAgdGZuOw0KKyAgVF9MMV9RQklUUyAgICAgICAgICAgdF9vZmY7DQorfSBUX0lSX1RETUFfVElNRV9JTkZPOw0KKw0KK3R5cGVkZWYgVF9JUl9URE1BX1RJTUVfSU5GTyBUX3pJUl9URE1BX1RJTUVfSU5GTzsNCit0eXBlZGVmIFRfeklSX1RETUFfVElNRV9JTkZPIFRfelBTX0lSX1RETUFfVElNRV9JTkZPOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgICAgICAgICAgICAgICBMMVTT60wxR7my08O94bm5tqjS5aOovMyz0NfUQ29tbmVvbrT6wuujqQ0KKyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBsMXVfaXJhdC5oLCBiZWdpbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQorLyoNCisqKiBUaGlzIGVudW0gaW5kaWNhdGVzIHRoZSBzeW5jIHN0YXR1cyBvZiBhIEJTDQorKi8NCit0eXBlZGVmIGVudW0NCit7DQorICBJUl9OT19TWU5DLCAgICAgICAgICAgIC8qIHVuc3luY2VkIChubyBGQ0IsIG5vIFNCKSAgICAqLw0KKyAgSVJfRkNCX1NFQVJDSF9QRU5ESU5HLCAvKiB1bnN5bmNlZCwgYnV0IEZDQiBhdHRlbXB0ZWQgKi8NCisgIElSX0ZDQl9TWU5DLCAgICAgICAgICAgLyogdW5zeW5jZWQsIGJ1dCBGQ0IgZm91bmQgICAgICovDQorICBJUl9TQl9TWU5DLCAgICAgICAgICAgIC8qIHN5bmNlZCAoRkNCIGFuZCBTQikgICAgICAgICAqLw0KKyAgSVJfU0JfUkVDT05GLCAgICAgICAgICAvKiBTQiBuZWVkcyB0byBiZSByZWNvbmZpcm1lZCAgKi8NCisgIElSX0lOVkFMSURfU1lOQyAgICAgICAgLyogdW5zeW5jZWQgKG9yIHJlY29uZiBmYWlsZWQpICovDQorfSBUX0lSX0dTTV9TWU5DX1NUQVRVUzsNCisNCisvKg0KKyoqIEluZGljYXRlcyB3aGV0aGVyIGluaXRpYWwgU0IgcmVhZCBvciBTQiByZWNvbmZpcm1hdGlvbiBpcyBkZXNpcmVkDQorKi8NCit0eXBlZGVmIGVudW0NCit7DQorICBJUl9JTklUX1NCX1JFQUQsICAgLyogaW5pdGlhbCBTQiByZWFkIGRlc2lyZWQgICAqLw0KKyAgSVJfUkVDT05GX1NCX1JFQUQgIC8qIFNCIHJlY29uZmlybWF0aW9uIGRlc2lyZWQgKi8NCit9IFRfSVJfU0JfUkVBRF9UWVBFOw0KKw0KKw0KK3R5cGVkZWYgZW51bQoreworICAgIEwxR19JUkFUX1hDRUxMID0gMCwKKyAgICBMMUdfSVJBVF9SRVNFTF9HU00yVVRSQU4sCisgICAgTDFHX0lSQVRfUkVTRUxfR1NNMkxURSwKKyAgICBMMUdfSVJBVF9SRURJUkVDVF9HU00yVVRSQU4sCisgICAgTDFHX0lSQVRfUkVESVJFQ1RfR1NNMkxURSwKKyAgICBMMUdfSVJBVF9DQ09fR1NNMlVUUkFOLAorICAgIEwxR19JUkFUX0NDT19HU00yTFRFLAorICAgIEwxR19JUkFUX0NTSE9fR1NNMlVUUkFOLAorICAgIEwxR19JUkFUX1BTSE9fR1NNMlVUUkFOLAorICAgIEwxR19JUkFUX1BTSE9fR1NNMkxURQorfSBUX0wxR19JUkFUX1NDRU5FX1RZUEU7CisNCisNCisNCit0eXBlZGVmIFRfSVJfR1NNX1NZTkNfU1RBVFVTICAgICAgICAgICAgVF96SVJfR1NNX1NZTkNfU1RBVFVTOw0KK3R5cGVkZWYgVF96SVJfR1NNX1NZTkNfU1RBVFVTICAgICAgICAgICBUX3pQU19JUl9HU01fU1lOQ19TVEFUVVM7DQordHlwZWRlZiBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfeklSX1RJTUlOR19DVFJMOw0KK3R5cGVkZWYgVF96SVJfVElNSU5HX0NUUkwgICAgICAgICAgICAgICBUX3pQU19JUl9USU1JTkdfQ1RSTDsNCit0eXBlZGVmIFRfSVJfU0JfUkVBRF9UWVBFICAgICAgICAgICAgICAgVF96SVJfU0JfUkVBRF9UWVBFOw0KK3R5cGVkZWYgVF96SVJfU0JfUkVBRF9UWVBFICAgICAgICAgICAgICBUX3pQU19JUl9TQl9SRUFEX1RZUEU7DQordHlwZWRlZiBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfeklSX0hBTkRMRVJfUkVRX1RZUEU7DQordHlwZWRlZiBUX3pJUl9IQU5ETEVSX1JFUV9UWVBFICAgICAgICAgIFRfelBTX0lSX0hBTkRMRVJfUkVRX1RZUEU7DQorDQorLyogKiogVGhpcyBlbnVtIGluZGljYXRlcyB0aGUgc3luYyBzdGF0dXMgb2YgYSBCUyAqLw0KKyNkZWZpbmUgWl9JUl9OT19TWU5DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJfTk9fU1lOQyAvKiB1bnN5bmNlZCAobm8gRkNCLCBubyBTQikgICAgKi8NCisjZGVmaW5lIFpQU19JUl9OT19TWU5DICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaX0lSX05PX1NZTkMNCisjZGVmaW5lIFpfSVJfRkNCX1NFQVJDSF9QRU5ESU5HICAgICAgICAgICAgICAgICAgIElSX0ZDQl9TRUFSQ0hfUEVORElORyAvKiB1bnN5bmNlZCwgYnV0IEZDQiBhdHRlbXB0ZWQgKi8NCisjZGVmaW5lIFpQU19JUl9GQ0JfU0VBUkNIX1BFTkRJTkcgICAgICAgICAgICAgICAgICBaX0lSX0ZDQl9TRUFSQ0hfUEVORElORw0KKyNkZWZpbmUgWl9JUl9GQ0JfU1lOQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJfRkNCX1NZTkMgLyogdW5zeW5jZWQsIGJ1dCBGQ0IgZm91bmQgICAgICovDQorI2RlZmluZSBaUFNfSVJfRkNCX1NZTkMgICAgICAgICAgICAgICAgICAgICAgICAgICAgWl9JUl9GQ0JfU1lOQw0KKyNkZWZpbmUgWl9JUl9TQl9TWU5DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJfU0JfU1lOQyAvKiBzeW5jZWQgKEZDQiBhbmQgU0IpICAgICAgICAgKi8NCisjZGVmaW5lIFpQU19JUl9TQl9TWU5DICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaX0lSX1NCX1NZTkMNCisjZGVmaW5lIFpfSVJfU0JfUkVDT05GICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSX1NCX1JFQ09ORiAvKiBTQiBuZWVkcyB0byBiZSByZWNvbmZpcm1lZCAgKi8NCisjZGVmaW5lIFpQU19JUl9TQl9SRUNPTkYgICAgICAgICAgICAgICAgICAgICAgICAgICBaX0lSX1NCX1JFQ09ORg0KKyNkZWZpbmUgWl9JUl9JTlZBTElEX1NZTkMgICAgICAgICAgICAgICAgICAgICAgICAgSVJfSU5WQUxJRF9TWU5DIC8qIHVuc3luY2VkIChvciByZWNvbmYgZmFpbGVkKSAqLw0KKyNkZWZpbmUgWlBTX0lSX0lOVkFMSURfU1lOQyAgICAgICAgICAgICAgICAgICAgICAgIFpfSVJfSU5WQUxJRF9TWU5DDQorDQorLyoNCisqKiBJbmRpY2F0ZXMgd2hldGhlciBpbml0aWFsIFNCIHJlYWQgb3IgU0IgcmVjb25maXJtYXRpb24gaXMgZGVzaXJlZA0KKyovDQorI2RlZmluZSBaX0lSX0lOSVRfU0JfUkVBRCAgICAgICAgICAgICAgICAgICAgICAgICBJUl9JTklUX1NCX1JFQUQgLyogaW5pdGlhbCBTQiByZWFkIGRlc2lyZWQgICAqLw0KKyNkZWZpbmUgWlBTX0lSX0lOSVRfU0JfUkVBRCAgICAgICAgICAgICAgICAgICAgICAgWl9JUl9JTklUX1NCX1JFQUQNCisjZGVmaW5lIFpfSVJfUkVDT05GX1NCX1JFQUQgICAgICAgICAgICAgICAgICAgICAgIElSX1JFQ09ORl9TQl9SRUFEIC8qIFNCIHJlY29uZmlybWF0aW9uIGRlc2lyZWQgKi8NCisjZGVmaW5lIFpQU19JUl9SRUNPTkZfU0JfUkVBRCAgICAgICAgICAgICAgICAgICAgICBaX0lSX1JFQ09ORl9TQl9SRUFEDQorDQorI2RlZmluZSAgIFpfR1NNX1JQSV9TVVBQT1JUX01BWF9CQU5EICAgICAgICAgIChCWVRFKTgNCisNCisvKg0KKyoqIFRoaXMgdHlwZSBpcyB1c2VkIHRvIHNlbGVjdCAiYWxsb3dlZCBiYW5kcyIgZm9yIFJTU0kgbWVhc3VyZW1lbnRzDQorKiogRm9yIGJhbmQgbiAoZnJvbSBUX0dTTV9CQU5EKSBiaXQgMTw8biBpcyBzZXQgaW4gdGhlIG1hc2suDQorKioNCisqLw0KK3R5cGVkZWYgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICBUX3pJUl9JUl9HU01fQkFORF9NQVNLOw0KK3R5cGVkZWYgVF96SVJfSVJfR1NNX0JBTkRfTUFTSyAgICAgICAgICBUX3pQU19JUl9JUl9HU01fQkFORF9NQVNLOw0KKw0KKy8qDQorKiogR2VuZXJhbCByZXR1cm4gZmN0IHN0dWN0dXJlLCB0byBiZSB1c2VkIGluIG1vc3QgSW50ZXJSQVQgZnVuY3Rpb25hbGl0eQ0KKyovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFZPSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqZnVuYykoQllURSwgQllURSk7IA0KKyAgICBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhOw0KK30gVF96SVJfUkVTVUxUX0ZVTkNUSU9OLFRfelBTX0lSX1JFU1VMVF9GVU5DVElPTjsNCisNCisvKg0KKyoqIFRhYmxlIHdpdGggR1NNIGNlbGwgaW5mbyBmb3IgYWxsIHJlcG9ydGVkIGNlbGxzDQorKi8NCit0eXBlZGVmIHN0cnVjdCBUX0wxX0NFTExfSU5GT19HU01fcyB7DQorICAgIFRfUkFESU9fRlJFUV9OTyAgYXJmY247DQorICAgIFRfQlNJQyAgYnNpYzsNCit9IFRfTDFfQ0VMTF9JTkZPX0dTTTsNCisNCit0eXBlZGVmIFRfTDFfQ0VMTF9JTkZPX0dTTSBUX3pJUl9DRUxMX0lORk9fR1NNOw0KK3R5cGVkZWYgVF96SVJfQ0VMTF9JTkZPX0dTTSBUX3pQU19JUl9DRUxMX0lORk9fR1NNOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgQllURSAgICAgICAgICAgICAgICBub2ZfY2VsbHMgOw0KKyAgVF9MMV9DRUxMX0lORk9fR1NNICAgcmVwX2NlbGxfaW5mb1tNQVhfSVJfU1lOQ19JTkZPX0NFTExTXTsNCisgIFRfSVJfR1NNX1NZTkNfU1RBVFVTIHN0YXR1c1tNQVhfSVJfU1lOQ19JTkZPX0NFTExTXTsNCit9IFRfSVJfUkVQX0NFTExfVEFCTEU7DQorDQordHlwZWRlZiBUX0lSX1JFUF9DRUxMX1RBQkxFIFRfeklSX1JFUF9DRUxMX1RBQkxFOw0KK3R5cGVkZWYgVF96SVJfUkVQX0NFTExfVEFCTEUgVF96UFNfSVJfUkVQX0NFTExfVEFCTEU7DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFRfeklSX1JFUF9DRUxMX1RBQkxFICAgICAgY2VsbF9pbmZvOw0KKyAgICBUX3pJUl9URE1BX1RJTUVfSU5GTyAgICAgICAgICAgICAgICAgIHNiX3RpbWVfaW5mb1taX0lSX01BWF9JUl9TWU5DX0lORk9fQ0VMTFNdOw0KK31UX3pJUl9TQl9JTkZPX1RBQkxFLFRfelBTX0lSX1NCX0lORk9fVEFCTEU7DQorLyoNCisqKiBTdHJ1Y3R1cmUgd2hpY2ggcHJvdmlkZXMgYWxsIHN5bmMgaW5mbyBvbiBlYWNoIEdTTSBjZWxsLCANCisqKiBuZWNjZXNzYXJ5IGZvciBCU0lDIHJlYWQvdmVyaWZpY2F0aW9uLiANCisqLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgVF9SQURJT19GUkVRX05PICAgICAgIGFyZmNuOw0KKyAgVF9JUl9HU01fU1lOQ19TVEFUVVMgIHN0YXR1czsNCisgIFRfSVJfVERNQV9USU1FX0lORk8gICB0aW1pbmc7DQorICBXT1JEICAgICAgICAgICAgICAgIGludmFsaWRfdGltZV9yZW1haW5pbmc7DQorfSBUX0lSX0NFTExfU1lOQ19EQVRBOw0KKw0KK3R5cGVkZWYgVF9JUl9DRUxMX1NZTkNfREFUQSBUX3pJUl9DRUxMX1NZTkNfREFUQTsNCit0eXBlZGVmIFRfeklSX0NFTExfU1lOQ19EQVRBIFRfelBTX0lSX0NFTExfU1lOQ19EQVRBOw0KKw0KKy8qDQorKiogQXJyYXkgb2YgdGhlIHN5bmMgZGF0YSBmb3IgYWxsIHJlcG9ydGVkIGNlbGxzIA0KKyovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZl9jZWxsczsNCisgICAgVF96SVJfQ0VMTF9TWU5DX0RBVEEgICAgICAgICAgICAgc3luY19kYXRhW1pfSVJfTUFYX0lSX1NZTkNfSU5GT19DRUxMU107DQorfSBUX3pJUl9DRUxMX1NZTkNfUVVFUllfREFUQSxUX3pQU19JUl9DRUxMX1NZTkNfUVVFUllfREFUQTsNCisNCisvKiBTdHJ1Y3R1cmUgaXMgdXNlZCB0byBjb21iaW5lIHNvbWUgcGFyYW1ldGVycy4qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1SZW1haW5pbmdHYXBzOyAvKnNhbWUgYXMgaW4gc3RydWN0IGhjaUdzbUluYWN0aXZlVGltZVJlcV90Ki8NCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoUHJpb01vZGU7IC8qc2FtZSBhcyBpbiBzdHJ1Y3QgaGNpR3NtSW5hY3RpdmVUaW1lUmVxX3QqLyAgIA0KKyAgICBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHVzdGVyVHlwZTsgLypzYW1lIGFzIGluIHN0cnVjdCBoY2lHc21JbmFjdGl2ZVRpbWVSZXFfdCovICAgDQorfSBUX3pJUl9DTFVTVEVSX0lORk8sVF96UFNfSVJfQ0xVU1RFUl9JTkZPOw0KKw0KKy8vdHlwZWRlZiBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX1JBRElPX0ZSRVFfTk87DQorLy90eXBlZGVmIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfUlhMRVY7DQorLy90eXBlZGVmIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfQlNJQzsNCisvL3R5cGVkZWYgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVF9MMV9RQklUUzsNCisvL3R5cGVkZWYgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgVF9MMV9IWVBFUl9GUkFNRV9OTzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZmNuOyAgICAgICAgICAgICAvKkNvbW5lb27W0MDg0M22qNLlzqpUX1JBRElPX0ZSRVFfTk8qLw0KKyAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnhsZXZfYXZncjsgICAgICAgIC8qQ29tbmVvbtbQwODQzbao0uXOqlRfUlhMRVYqLw0KKyAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnNpYzsgICAgICAgICAgICAgIC8qQ29tbmVvbtbQwODQzbao0uXOqlRfQlNJQyovDQorICBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYW5kOyAgICAgICAgICAgICAgLyogVF9HU01fQkFORCBub3QgdXNlZCB0byBzYXZlIFJBTSAqLw0KKyAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbndpbl9pZHg7DQorICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1pbmdfb2Zmc2V0OyAgICAgLypDb21uZW9u1tDA4NDNtqjS5c6qVF9MMV9RQklUUyovDQorICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbl9vZmZzZXQ7ICAgICAgICAgLypDb21uZW9u1tDA4NDNtqjS5c6qVF9MMV9IWVBFUl9GUkFNRV9OTyovDQorfVRfeklSX01ET19OQ0VMTF9FTEVNLFRfelBTX0lSX01ET19OQ0VMTF9FTEVNOw0KKw0KK3R5cGVkZWYgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX3pJUl9NRE9fUFVSUE9TRTsgIA0KK3R5cGVkZWYgVF96SVJfTURPX1BVUlBPU0UgICAgICAgICAgICAgICBUX3pQU19JUl9NRE9fUFVSUE9TRTsgIA0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgICAgICAgICAgICAgICBMMVTT60wxR7my08O94bm5tqjS5aOovMyz0NfUQ29tbmVvbrT6wuujqQ0KKyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBsMXVfbWRiLmgsIGJlZ2luID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCit0eXBlZGVmIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgVF96SVJfQ0VMTF9MSVNUX0lEOw0KK3R5cGVkZWYgVF96SVJfQ0VMTF9MSVNUX0lEICAgICAgICAgICAgICBUX3pQU19JUl9DRUxMX0xJU1RfSUQ7DQordHlwZWRlZiBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfeklSX1VUUkFOX0lSQVRfTUVBUzsNCit0eXBlZGVmIFRfeklSX1VUUkFOX0lSQVRfTUVBUyAgICAgICAgICAgVF96UFNfSVJfVVRSQU5fSVJBVF9NRUFTOw0KK3R5cGVkZWYgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX3pJUl9NRE9fR0FQX01PREVTOw0KK3R5cGVkZWYgVF96SVJfTURPX0dBUF9NT0RFUyAgICAgICAgICAgICBUX3pQU19JUl9NRE9fR0FQX01PREVTOw0KK3R5cGVkZWYgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX3pJUl9VVFJBTl9NRUFTX1NUQVRFOw0KK3R5cGVkZWYgVF96SVJfVVRSQU5fTUVBU19TVEFURSAgICAgICAgICBUX3pQU19JUl9VVFJBTl9NRUFTX1NUQVRFOw0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sNCisgICAgU0hPUlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNjcDsNCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9mX3Jlc3VsdHM7DQorfSBUX3pJUl9NREJfVVRSQU5fQ0VMTF9NRUFTX0JVRkZFUixUX3pQU19JUl9NREJfVVRSQU5fQ0VMTF9NRUFTX0JVRkZFUjsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4Ow0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1Y2VsbF9wYXJhbTsNCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGl2ZXJzaXR5Ow0KKyAgICBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jX2Nhc2VfdHN0ZDsNCit9IFRfeklSX1VUUkFOX0NFTExfT05fRlJFUSxUX3pQU19JUl9VVFJBTl9DRUxMX09OX0ZSRVE7DQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBUX3pJUl9VVFJBTl9DRUxMX09OX0ZSRVEgICAgICAgICBBW1pfSVJfTk9GX1VUUkFOX0NFTExTX1BFUl9GUkVRVUVOQ1ldOw0KK30gVF96SVJfVVRSQU5fQ0VMTF9GSUVMRCxUX3pQU19JUl9VVFJBTl9DRUxMX0ZJRUxEOw0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sNCisgICAgVF96SVJfTURCX1VUUkFOX0NFTExfTUVBU19CVUZGRVIgICBtZWFzdXJlbWVudFtaX0lSX05PRl9VVFJBTl9DRUxMU19QRVJfRlJFUVVFTkNZXTsNCit9IFRfeklSX01EQl9OQ0VMTF9NRUFTX1BFUklPRF9EQVRBX1NFVCwgKiBUX3pJUl9NREJfTkNFTExfTUVBU19QRVJJT0RfREFUQV9TRVRfUFRSLA0KK1RfelBTX0lSX01EQl9OQ0VMTF9NRUFTX1BFUklPRF9EQVRBX1NFVCwgKiBUX3pQU19JUl9NREJfTkNFTExfTUVBU19QRVJJT0RfREFUQV9TRVRfUFRSOw0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sNCisgICAgQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnNjcDsgLypDb21lbm9uOiBjaGFyKL2tuugpKi8NCit9IFRfeklSX01EQl9NRUFTX0VMRU1FTlQsVF96UFNfSVJfTURCX01FQVNfRUxFTUVOVDsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7DQorICAgIFRfeklSX01EQl9NRUFTX0VMRU1FTlQgICAgICAgICAgIG1lYXN1cmVtZW50W1pfSVJfTk9GX1VUUkFOX0NFTExTX1BFUl9GUkVRVUVOQ1ldOw0KK30gVF96SVJfTURCX1VUUkFOX05DRUxMX01FQVNfUkVTVUxUX1NFVCwgKlRfeklSX01EQl9VVFJBTl9OQ0VMTF9NRUFTX1JFU1VMVF9TRVRfUFRSLA0KK1RfelBTX0lSX01EQl9VVFJBTl9OQ0VMTF9NRUFTX1JFU1VMVF9TRVQsICpUX3pQU19JUl9NREJfVVRSQU5fTkNFTExfTUVBU19SRVNVTFRfU0VUX1BUUjsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4Ow0KKyAgICBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGg7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRsX3VhcmZjbjsgLypDb21uZW9uOiB1bnNpZ25lZCBzaG9ydCi9rbroKSovDQorICAgIFRfeklSX1VUUkFOX0NFTExfRklFTEQgICAgICAgICAgIHV0cmFuX2NlbGw7DQorfVRfeklSX01EQl9DRUxMX0xJU1RfREFUQV9TRVQsICpUX3pJUl9NREJfQ0VMTF9MSVNUX0RBVEFfU0VUX1BUUiwNCitUX3pQU19JUl9NREJfQ0VMTF9MSVNUX0RBVEFfU0VULCAqVF96UFNfSVJfTURCX0NFTExfTElTVF9EQVRBX1NFVF9QVFI7DQorDQordHlwZWRlZiBzdHJ1Y3QgDQorew0KKyAgICBUX3pJUl9NREJfQ0VMTF9MSVNUX0RBVEFfU0VUX1BUUiAgICAgICAgICAgICAgICAgcF9jZWxsX2xpc3Q7DQorICAgIFRfeklSX01EQl9OQ0VMTF9NRUFTX1BFUklPRF9EQVRBX1NFVF9QVFIgICAgICAgICBwX3BlcmlvZDsNCisgICAgVF96SVJfTURCX1VUUkFOX05DRUxMX01FQVNfUkVTVUxUX1NFVF9QVFIgICAgICAgIHBfYXZnOw0KK30gVF96SVJfTURCX05DRUxMX0xJU1RfREFUQV9TRVQsVF96UFNfSVJfTURCX05DRUxMX0xJU1RfREFUQV9TRVQ7DQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkbF91YXJmY247IC8qQ29tbmVvbjogdW5zaWduZWQgc2hvcnQova266CkqLw0KKyAgICBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2ZfbmNlbGw7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0cmFuX2NlbGxbWl9JUl9OT0ZfVVRSQU5fQ0VMTFNfUEVSX0ZSRVFVRU5DWV07DQorfSBUX3pJUl9JUkFUX1VUUkFOX0NFTExTX1BFUl9GUkVRLFRfelBTX0lSX0lSQVRfVVRSQU5fQ0VMTFNfUEVSX0ZSRVE7ICAgICAgDQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyAgIA0KKyAgICBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWFzX3JlZmVyZW5jZTsgLypDb21uZW9uOiBieXRlKL2tuugpKi8NCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoOyAgICAgICAgIC8qQ29tbmVvbjogYnl0ZSi9rbroKSovDQorICAgICNpZm5kZWYgTVVMVElfSVJBVF8yOTYzDQorCURXT1JECQkJICAgICAgICAgICAgICAgICAgICBkd1RtZWFzSW5pYWw7Lyqz9cq8suLBv9bcxtptc6Os0OjSqrLiwb+1xMa1teO2vMvRy/e686OstMvW3MbaseTOqs7e0KcgKi8gICAgICAgICAgICANCisgICAgV09SRAkJICAgICAgICAgICAgICAgICAgICAgICAgd1RtZWFzOy8q1f2zo8nPsajW3MbaKi8NCisJI2VuZGlmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisgICAgVF96SVJfSVJBVF9VVFJBTl9DRUxMU19QRVJfRlJFUSAgQVtaX0lSX05PRl9DRUxMX0xJU1RfRlJFUVVFTkNJRVNdOw0KK31UX3pJUl9MMUdfVGRkQ2VsbE1lYXNSZXEsVF96UFNfSVJfTDFHX1RkZENlbGxNZWFzUmVxOw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGNjY2hfcHJlc2VudDsNCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTNnX2JhX2luZDsNCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNpM19jaGFuZ2VfbWFyazsNCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG1vX2luZDsNCit9IFRfeklSX1JSXzNHX0xJU1RfSUQsVF96UFNfSVJfUlJfM0dfTElTVF9JRDsNCisNCit0eXBlZGVmIHN0cnVjdHsgIA0KKyAgICBUX3pJUl9SUl8zR19MSVNUX0lEICAgICAgICAgICAgICBpZF9zZXRbMl07ICANCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVfaW5kZXg7ICANCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9pbmRleDsNCit9IFRfeklSX1UzR19MSVNUX0lEX0JVRkZFUixUX3pQU19JUl9VM0dfTElTVF9JRF9CVUZGRVI7DQorDQordHlwZWRlZiBzdHJ1Y3R7IA0KKyAgICAvKiBmbGFnIGluZGljYXRpbmcgaWYgbmNlbGwgbWVhc3VyZW1lbnRzIG9uIGEgcGFydGljdWxhciBmcmVxdWVuY3kgYXJlIGVuYWJsZWQgKi8gIA0KKyAgICBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVxX2VuYWJsZWQ7DQorICAgIC8qIGJhY2t1cCBvZiBmcmVxX2VuYWJsZWQgZmxhZywgbmVlZGVkIGZvciBzdXNwZW5kIG1vZGUgKi8gDQorICAgIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2t1cF9mcmVxX2VuYWJsZWQ7IA0KKyAgICAvKiBpbmRpY2F0ZXMgdGhhdCBhIHJlcG9ydCBjYW4gYmUgY3JlYXRlZCAqLyAgDQorICAgIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5jZWxsX21lYXNfY29tcGxldGU7ICANCisgICAgLyogaW5kaWNhdGVzIGZvciB3aGljaCBjZWxscyB0aGVyZSBhcmUgcmVjZW50IHJlc3VsdHMgZnJvbSBIVyAqLyAgDQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lYXN1cmVkX2NlbGxzOw0KK30gVF96SVJfVVRSQU5fTkNFTExfSU5GTyxUX3pQU19JUl9VVFJBTl9OQ0VMTF9JTkZPOw0KKw0KK3R5cGVkZWYgc3RydWN0eyAgDQorICAgIC8qIGluZGljYXRlcyB0aGF0IG1lYXN1cmVtZW50cyBjYW4gYmUgc3RhcnRlZCBiZWNhdXNlIHFzZWFyY2ggdGhyZXNob2xkIGNvbmRpdGlvbiBpcyBmdWxmaWxsZWQgKi8gDQorICAgIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFzZWFyY2hfc3RhcnRfbWVhczsgIA0KKyAgICAvKiBpbmRpY2F0ZXMgdGhlIFJYTEVWIHRocmVzaG9sZCB2YWx1ZSBmb3IgdGhlIHN0YXJ0IG9mIFVNVFMgbWVhc3VyZW1lbnRzICAgKiogaW4gaWRsZSBvciBwYWNrZXQgdHJhbnNmZXIgbW9kZSAqLyAgDQorICAgIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFzZWFyY2hfaXA7ICANCisgICAgLyogaW5kaWNhdGVzIHRoZSBSWExFViB0aHJlc2hvbGQgdmFsdWUgZm9yIHRoZSBzdGFydCBvZiBVTVRTIG1lYXN1cmVtZW50cyBjb25uZWN0ZWQgbW9kZSAqLyAgDQorICAgIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFzZWFyY2hfYzsgIA0KKyAgICAvKiBJbmRpY2F0ZXMgdGhlIFFzZWFyY2ggdmFsdWUgdG8gYmUgdXNlZCBpbiBjb25uZWN0ZWQgbW9kZSBiZWZvcmUgUXNlYXJjaF9DIGlzIHJlY2VpdmVkICovICANCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXNlYXJjaF9jX2luaXRpYWw7IA0KKyAgICAvKiBpbmRpY2F0ZXMgaWYgM0cgY2VsbHMgbWF5IGJlIHNlYXJjaGVkIHdoZW4gQlNJQyBkZWNvZGluZyBpcyByZXF1aXJlZCAqLyAgDQorICAgIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9wcmlvOyANCisgICAgLyogM0dfTElTVF9JRCBwYXJhbWV0ZXJzIHNlbnQgYnkgUlIgYXNzb2NpYXRlZCB3aXRoIHRoZSBtZWFzdXJlbWVudCByZXF1ZXN0IG1lc3NhZ2UgKi8gIA0KKyAgICBUX3pJUl9VM0dfTElTVF9JRF9CVUZGRVIgICAgICAgICB1M2dfbGlzdF9pZDsNCit9IFRfeklSX0NFTExfUEFSQU1TLFRfelBTX0lSX0NFTExfUEFSQU1TOw0KKw0KK3R5cGVkZWYgc3RydWN0eyAgDQorICAgIC8qIGluZGljYXRlcyB0aGF0IGEgbmV3IG1lYXN1cmVtZW50IHJlcXVlc3QgZnJvbSBSUiBoYXMgYXJyaXZlZCAqLyAgDQorICAgIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19tZWFzX3JlcTsgDQorICAgIC8qIGluZGljYXRlcyBhIG5ldyBzZXQgb2YgaGVhZGVyIHBhcmFtcyBvZiB0aGUgdHlwZSBUX1JSXzNHX0xJU1RfSUQgZm9yIGEgbmV3IG1lYXMgcmVxICovICANCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnJfM2dfaWRfY2hhbmdlZDsgIA0KKyAgICAvKiBpbmRpY2F0ZXMgdGhlIG92ZXJhbGwgb24vb2ZmIHN0YXRlIG9mIHRoZSBJbnRlci1SQVQgbWVhc3VyZW1lbnRzICovICANCisgICAgVF96SVJfVVRSQU5fTUVBU19TVEFURSAgICAgICAgICAgdXRyYW5fc3RhdGU7ICANCisgICAgLyogUGFyYW1ldGVycyB0byBjb29yZGluYXRlIEdTTSB0YXNrcyBhbmQgVU1UUyBtZWFzdXJlbWVudHMgKi8gIA0KKyAgICBUX3pJUl9DRUxMX1BBUkFNUyAgICAgICAgICAgICAgICBjZWxsX3BhcmFtczsgIA0KKyAgICBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRfM2dfbmV0d29ya3M7DQorICAgIC8qIGNvbnRyb2wgZGF0YSBmb3IgbmNlbGwgcmVzdWx0IHByb2Nlc3NpbmcgKi8gIA0KKyAgICBUX3pJUl9VVFJBTl9OQ0VMTF9JTkZPICAgICAgICAgICBuY2VsbF9pbmZvW1pfSVJfTk9GX0NFTExfTElTVF9GUkVRVUVOQ0lFU107DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZmNuOyAgDQorICAgIC8qIGluZGljYXRlcyB0aGF0IG1lYXN1cmVtZW50IHJlcXVlc3QgZGF0YSB3ZXJlIHNlbnQgZWl0aGVyIHRocm91Z2ggTVBIX1VQREFURV9ERURfUEFSQU1fUkVRICAqKiBvciBNUEhfU1RBUlRfTkNfTUVBU19SRVE7IGZsYWcgaXMgbmVlZGVkIGluIHRoZSByZXN1bHQgaGFuZGxlciAqLyAgDQorICAgIFRfeklSX1VUUkFOX0lSQVRfTUVBUyAgICAgICAgICAgIG1lYXNfbW9kZTsgIA0KKyAgICAvKiBpbmRpY2F0ZXMgdGhhdCBhbiB1cGRhdGUgKGRlbHRhKSBvZiB0aGUgY3VycmVudCBtZWFzdXJlbWVudCByZXF1ZXN0IGlzIHBlbmRpbmcuIFRoaXMgbWF5ICAqKiBoYXBwZW4gb25seSBpbiBEQ0ggbW9kZS4gKi8gIA0KKyAgICBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkY2hfbWVhc19kZWx0YV9wZW5kaW5nOyAgLyogaW5kaWNhdGVzIHRoYXQgYSBuZXcgbWVhc3VyZW1lbnQgcmVxdWVzdCBjYW1lIGluIHdoaWxlIEludGVycmF0IG1lYXN1cmVtZW50cyBhcmUgc3VzcGVuZGVkICovICANCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWRiX2JhY2t1cF9vYnNvbGV0ZTsgIC8qIG1lYXN1cmVtZW50IElEIHRoYXQgaW5kZW50aWZpZXMgYSBtZWFzdXJlbWVudCByZXF1ZXN0IG9uIFNETCBhbmQgSFcgbGV2ZWwgKi8gIA0KKyAgICBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWFzX3JlZmVyZW5jZTsNCisjaWYgZGVmaW5lZCAoU0lOR0xFX0FOVEVOTkFfU1VQUE9SVCkgIC8qIGNvdW50ZXIgZm9yIHNlYXJjaCBmcmFtZXMsIG11bHRpcGxlIG9mIFNFQVJDSF9GUkFNRVNfRk9SX0lSQVQgKi8gIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZnIyNl9jbnQ7ICAvKiBjb3VudGVyIGZvciBzZWFyY2ggZnJhbWVzIHdoaWNoIHdlcmUgdXNlZCBmb3IgaVJBVCwgbXVsdGlwbGUgb2YgUEVSSU9EX0ZPUl9JUkFUICovICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZyMjZfdGFrZW5fZm9yX2lyYXRfY250OyAgLyogY291bnRlciBmb3Igc2VhcmNoIGZyYW1lcyBpbnNpZGUgYSBjbHVzdGVyLCAwIG5vIGlSQVQgYXQgdGhlIG1vbWVudCAqLyAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mcjI2X2NsdXN0ZXJfZm9yX2lyYXRfY250OyAgICAvKiBzdW0gb2YgY29ubmVjdGVkIHNlYXJjaCBmcmFtZXMgZm9yIGlSQVQgbWVhc3VyZW1lbnQgKi8gIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZnIyNl9jbHVzdGVyX3NpemVfZm9yX2lyYXQ7ICAgIC8qIGNsdXN0ZXIgbW9kZSAqLyAgDQorICAgIFRfeklSX01ET19HQVBfTU9ERVMgICAgICAgICAgICAgIG1mcjI2X2NsdXN0ZXJfbW9kZTsgIC8qIFNjaGVkdWxpbmcgaW5kZXggZm9yIGNhbGN1bGF0aW5nIHByaW9yaXR5IGZvciBJUkFUIG1lYXN1cmVtZW50ICovICANCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZWRfaWR4Ow0KKyNlbmRpZiAvKiAoU0lOR0xFX0FOVEVOTkFfU1VQUE9SVCkgKi8gIA0KK30gVF96SVJfVVRSQU5fQ1RSTF9EQVRBLFRfelBTX0lSX1VUUkFOX0NUUkxfREFUQTsNCisNCit0eXBlZGVmIHN0cnVjdCAgew0KKyAgICBCWVRFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiVWNlbGxfcGFyYW07DQorICAgIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJSc2NwOw0KK30gVF96SVJfVXRyYW5NZWFzQ2VsbHNSZXN1bHRzLFRfelBTX0lSX1V0cmFuTWVhc0NlbGxzUmVzdWx0czsNCisNCit0eXBlZGVmIHN0cnVjdCAgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWFyZmNuOw0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd01lYXN1cmVkX2NlbGxzOw0KKyAgICBUX3pJUl9VdHJhbk1lYXNDZWxsc1Jlc3VsdHMgICAgICBhdENlbGxSbHRbWl9JUl9OT0ZfVVRSQU5fQ0VMTFNfUEVSX0ZSRVFVRU5DWV07DQorfSBUX3pJUl9JcmF0VW1jck1lYXNSZXN1bHQsVF96UFNfSVJfSXJhdFVtY3JNZWFzUmVzdWx0Ow0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRsX3VhcmZjbjsNCisgICAgQllURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoOw0KKyAgICBUX3pJUl9VVFJBTl9DRUxMX0ZJRUxEICAgICAgICAgICB1dHJhbl9jZWxsOw0KK30gVF96SVJfVVRSQU5fQ0VMTFNfUEVSX0ZSRVEsVF96UFNfSVJfVVRSQU5fQ0VMTFNfUEVSX0ZSRVE7DQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgICAgICAgICAgICAgIENCU9PrTDFHz/vPor3hubm2qNLlDQorID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IG1zLmgsIGJlZ2luID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++jukwxTU5fQ0JDSF9EQVRBX0lORChMMUctPkNCUykNCisgy7XD9zogTDFHyc+xqLXEMjPX1r3atcTO3s/fv+kNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLyANCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIEJZVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFiQnVmWzIzXTsNCit9IFRfekNic19MMU1OX0NCQ0hfREFUQV9JTkQ7IC8qIGNvbWUgZnJvbSBjb21tbmVvbiB5UERlZl9MMU1OX0NCQ0hfREFUQV9JTkQgKi8NCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pMMU1OX0NCQ0hfU1RBUlRfUkVRKENCUy0+TDFHKQ0KKyDLtcP3OiBDQlPNqNaqTDFHxvS2r0NCU73TytUsIL/Vz/vPog0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovIA0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++jukwxTU5fQ0JDSF9TVE9QX1JFUSgoQ0JTLT5MMUcpDQorIMu1w/c6IENCU82o1qpMMUfNo9a5Q0JTvdPK1Swgv9XP+8+iDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8gDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6TDFNTl9DQkNIX1NLSVBfUkVRKChDQlMtPkwxRykNCisgy7XD9zogQ0JTz/JMMUe3osvNU2tpcNKzw+bH68fzDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8gDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFnZU5vOw0KK30gVF96Q2JzX0wxTU5fQ0JDSF9TS0lQX1JFUTsgLyogY29tZSBmcm9tIGNvbW1uZW9uIHlQRGVmX0wxTU5fQ0JDSF9TS0lQX1JFUSAqLw0KKw0KKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IG1zLmgsIGVuZCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCisNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgTDFULT5MMUcNCisgICAguabE3DoNCisgICAgICAgICAgICAgICBMMVTP8kwxRyDH68fzyeTGtdfK1LQsDQorICAgIM/7z6K8sL3hubk6ICAgICAgWl9MMV9UZEdldFJmRnJvbUdzbV9SZXGjqFNETM/7z6KjukwxVF9ERUFDVF9HU01fUkVRX0VWo6kNCisgICAgICAgICAgICAgICAgICBOVUxMDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICBMMUctPkwxVA0KKyAgICC5psTcOg0KKyAgICAgICAgICAgICAgIEwxR8/yTDFUu9i4tMnkxrXXytS0yMOz9si3yM8NCisgICAgz/vPorywveG5uTogICAgICBaX0wxX1RkR2V0UmZGcm9tR3NtX0NuZqOoU0RMz/vPoqO6TDFUX0RFQUNUX0dTTV9DTkZfRVajqQ0KKyAgICAgICAgICAgICAgICAgIE5VTEwNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgIEwxRS0+TDFHDQorICAgILmmxNw6DQorICAgICAgICAgICAgICAgIEwxRc/yTDFHx+vH88nkxrXXytS0DQorICAgIM/7z6K8sL3hubk6ICAgICAgWl9MMV9MdGVHZXRSZkZyb21Hc21fUmVxo6hTREzP+8+io7pMMUVfREVBQ1RfR1NNX1JFUV9FVqOpDQorICAgICAgICAgICAgICAgICAgTlVMTA0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgTDFHLT5MMUUNCisgICAguabE3DoNCisgICAgICAgICAgICAgICBMMUfP8kwxRbvYuLTJ5Ma118rUtMjDs/bIt8jPDQorICAgIM/7z6K8sL3hubk6ICAgICAgWl9MMV9MdGVHZXRSZkZyb21Hc21fQ25mo6hTREzP+8+io7pMMUVfREVBQ1RfR1NNX0NORl9FVqOpDQorICAgICAgICAgICAgICAgICAgTlVMTA0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgTDFHLT5MMVQNCisgICAguabE3DoNCisgICAgICAgICAgICAgICBMMUfP8kwxVMfrx/PJ5Ma118rUtA0KKyAgICDP+8+ivLC94bm5OiAgICAgIFpfTDFfR3NtR2V0UmZGcm9tVGRfUmVxo6hTREzP+8+io7pMMUdfREVBQ1RfVU1UU19SRVFfRVajqQ0KKyAgICAgICAgICAgICAgICAgIE5VTEwNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgIEwxVC0+TDFHDQorICAgILmmxNw6DQorICAgICAgICAgICAgICAgTDFUz/JMMUe72Li0yeTGtdfK1LTIw7P2yLfIzw0KKyAgICDP+8+ivLC94bm5OiAgICAgIFpfTDFfR3NtR2V0UmZGcm9tVGRfQ25mo6hTREzP+8+io7pMMUdfREVBQ1RfVU1UU19DTkZfRVajqQ0KKyAgICAgICAgICAgICAgICAgIE5VTEwNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgIEwxRy0+TDFFDQorICAgILmmxNw6DQorICAgICAgICAgICAgICAgTDFHz/JMMUXH68fzyeTGtdfK1LQNCisgICAgz/vPorywveG5uTogICAgICBaX0wxX0dzbUdldFJmRnJvbUx0ZV9SZXGjqFNETM/7z6KjukwxR19ERUFDVF9MVEVfUkVRX0VWo6kNCisgICAgICAgICAgICAgICAgICBOVUxMDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICBMMUUtPkwxRw0KKyAgICC5psTcOg0KKyAgICAgICAgICAgICBMMUUgz/JMMUe72Li0yeTGtdfK1LTIw7P2yLfIzw0KKyAgICDP+8+ivLC94bm5OiAgICAgIFpfTDFfR3NtR2V0UmZGcm9tTHRlX0NuZqOoU0RMz/vPoqO6TDFHX0RFQUNUX0xURV9DTkZfRVajqQ0KKyAgICAgICAgICAgICAgICAgIE5VTEwNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICBMMUU8LT5MMVQNCisgICAguabE3DoNCisgICAgICAgICAgICAgICAgVETOqtb3yrEgTDFFz/JMMVQgIMfrx/PJ5Ma118rUtLvyTFRFzqrW98qxIEwxVM/yTDFFICDH68fzyeTGtdfK1LQNCisgICAgz/vPorywveG5uTogICAgIFpfTDFfR2V0UkZfUmVxDQorICAgICAgICAgICAgICAgICAgTlVMTA0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgTDFUPC0+TDFFDQorICAgILmmxNw6DQorICAgICAgICAgICAgICBURM6q1vfKsSBMMVTP8kwxRSC72Li0yMOz9tfK1LTIt8jPu/JMVEXOqtb3yrEgTDFFz/JMMVS72Li0yMOz9tfK1LTIt8jPDQorICAgIM/7z6K8sL3hubk6ICAgICAgWl9MMV9HZXRSRl9DbmYNCisgICAgICAgICAgICAgICAgICBOVUxMDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKy8qTDFHLEwxVDwtPkVQSFm907/aKi8NCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgILe9z/I6TDFHLEwxVC0+RVBIWQ0KKyAgICC5psTcOkxURc6quKjEo8q9tcTKsbryo6xMMUcsTDFUxeTWw0xURc7vwO2y47Liwb+how0KKyAgICAgICAgICAgICC21NPaTFRFzu/A7bLjwLTLtb/JxNzPyMrVtb2y4sG/vLBtZWFzbWFzayy688rVtb1HQVCjrA0KKyAgICAgICAgICAgICDSsr/JxNzPyMrVtb1HQVAsuvPK1bW9suLBv8HQse2ho8jnufvPyMrVtb3B0LHtuvPO78DtDQorICAgICAgICAgICAgILLjsru74bLiwb/WsbW9ytW1vUdBULLFu+Gy4sG/o6zI57n7z8jK1bW9R0FQ0rKyu7vhsuINCisgICAgICAgICAgICAgwb/WsbW909Cy4sG/wdCx7cXk1sPPwsC0CQkJCSANCisgICAgz/vPojpMVEVfUF9GUkVRX0xJU1RfQ09ORklHX1JFUV9FVg0KKyAgICC94bm5OlRfekxURV9QX0ZyZXFMaXN0Q29uZmlnUmVxDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgd1N0YXJ0UENJOyAvKsbwyry1xM7vwO3Qocf4SUQsMH41MDMqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICB3UmFuZ2U7ICAgIC8qsPzAqHdTdGFydFBDSda4tqjQocf41NrE2rXE0KHH+Lj2yv0u0KHH+NLAtM7OqndTdGFydFBDSSx3U3RhcnRQQ0krMSwuLi4uLHdTdGFydFBDSSt3UmFuZ2UtMSovDQorfVRfekxURV9QX0JsYWNrQ2VsbDsNCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICBkd0VhcmZjbjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgd01lYXNCYW5kV2lkdGg7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICB3QmxhY2tDZWxsUmFuZ2VOdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgIHdIaWdoUHJpb0luZDsvKsjnufu0y0xURca1tePOqrjf08XPyLy2o6zU8tbDMaOst/HU8s6qMCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBUX3pMVEVfUF9CbGFja0NlbGwgICAgICBhdEJsYWNrQ2VsbHNbMTZdOw0KK31UX3pMVEVfUF9GcmVxSW5mbzsgIA0KKw0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgIC8qDQorICAgIGJSZXBvcnRRdWFudGl0eToJyKHWtbe2zqejujCjrDGjrDINCisgICAgMDog1ruy4lJTUlANCisgICAgMTog1ruy4lJTUlEsDQorICAgIDI6IFJTUlC6zVJTUlHBvbj2tryy4g0KKyovIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3UmVwb3J0UXVhbnRpdHk7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdNYXhDZWxsUmVwUGVyRnJlcTsNCisJICAgIC8qDQorICAgILG7suK1xMa1teO49sr9oaO4+b7dxL/HsExURc7vwO2y47XEsuLBv8TcwabX7rbg1qez1jS49sa1teOhow0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3RnJlcU51bTsNCisgICAgLyoNCisgICAgsuLBv7bUz/O1xNDFz6LB0LHto6i6rM2sxrW6zdLsxrWjqSwg1KrL2DC5zLaozqppbnRyYca1teO1xLLOyv2hozF+M86qaW50ZXLGtbXjss7K/Q0KKwkqLw0KKyAgICBUX3pMVEVfUF9GcmVxSW5mbyAgICAgICAgIGF0RnJlcUluZm9MaXN0WzhdOw0KK31UX3pMVEVfUF9GcmVxTGlzdENvbmZpZ19SZXE7DQorDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICC3vc/yOkwxRyxMMVQtPkVQSFkNCisgICAguabE3DpMMVQsbDFHzai5/U1hc2vNqNaqTFRFzu/A7bLjxvS2r8/g06bGtbXjsuLBv6OssqLG9NPD0MK1xLLiwb/W3MbaICAgDQorICAgIM/7z6I6TFRFX1BfSVJBVF9NRUFTX0NPTkZJR19SRVFfRXYNCisgICAgveG5uTpUX3pMVEVfUF9JcmF0TWVhc0NvbmZpZ1JlcQ0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICAgV09SRCAgICAgICAgICAgICB3TXNnSWQ7DQorICAgICBXT1JEICAgICAgICAgICAgIHdDb25uZWN0U3RhdGVGbGc7LyrNqNaq1vfEo8q917TMrKOsML/Vz9DMrKOsMcGsvdPMrCovDQorCSAvKg0KKwkgw7+49mJpdLbU06ZtZWFzX2ZyZXFfaW5mb9bQtcTSu7j2xrW146Oszu/A7bLj1rvG9LavttTTprXEYml0zrvOqjG1xMa1teO1xLLiwb+how0KKwkgQml0brbU06ZUX3pMVEVfUF9JcmF0TWVhc0NvbmZpZ19SZXHW0LXEYXRNZWFzRnJlcUluZm9MaXN0W25do6xuo7owfjMNCisJICovDQorICAgICBXT1JEICAgICAgICAgICAgIHdNZWFzQml0TWFzazsNCisgICAgIC8qs/XL0bLiwb+687XEuvPQ+LLiwb+y4sG/1tzG2r75zqp3VG1lYXMstaXOu21zKi8NCisgICAgIFdPUkQgICAgICAgICAgICAgd1RtZWFzOyANCisgICAgLyq12tK7tM6y4sG/tcSxqLjm1tzG2qOstaXOu21zLMjnufvW3MbaxNrM4cewzeqzyb/J0tTM4cewyc+xqKOsDQorCdfus6Syu7Osuf2xqLjm1tzG2qGjyOe5+9K7uPbGtbXj1tjF5Mew0tG+rdf2uf2y4sG/o6zU8taxvdPTw9Pad1RtZWFztviyu8rHZHdUbWVhc0luaXRpYWwqLw0KKyAgICAgRFdPUkQgICAgICAgICAgIGR3VG1lYXNJbml0aWFsOw0KK31UX3pMVEVfUF9JcmF0TWVhc0NvbmZpZ19SZXE7DQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICC3vc/yOkwxRyxMMVQtPkVQSFkNCisgICAguabE3DpMMVTH68fzzu/A7bLjzaPWucq508PS0b6tt9bF5LXER0FQLkxURc7vwO2y48rVtb24w8/7z6LBory0zaPWubbU0tG+rbfWxeS1xEdBULXEyrnTw6OsDQorICAgICAgICAgICAgIMihz/u689D4tfe2yKOs1NrX7r/stcTKsbzkxNrIw7P2yeTGtS5Ob3RlOrrNTFRFX1BfQUJPUlRfR0FQX0NORl9FdsXk1sPKudPDDQorICAgIM/7z6I6TFRFX1BfQUJPUlRfR0FQX1JFUV9Fdg0KKyAgICC94bm5OlRfekxURV9QX0Fib3J0R2FwUmVxDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIFdPUkQgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgIHdQYWRkaW5nOw0KK30gVF96TFRFX1BfQWJvcnRHYXBfUmVxOw0KKw0KKw0KKy8qICC24MSjvdO/2iovDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICC3vc/yOkwxRS0+TDFUL0wxRw0KKyAgICC5psTcOkxURc7vwO2y48nPsaiy4sG/veG5+yzG5NbQsru6rLraw/u1pdbQtcTQocf4DQorICAgIM/7z6I6TFRFX1BfSVJBVF9NRUFTX0lORF9FVg0KKyAgICC94bm5OlRfekxURV9QX0lyYXRNZWFzX0luZA0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisvKg0KK0VQSFnSu7j20KHH+LXEsuLBv73hufvQxc+iDQorKi8NCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICAgV09SRCAgICAgICAgICAgICAgICAgd1BoeUNlbGxJZDsgICAvL8ih1rW3ts6no7ogMH41MDMNCisgICAgIFdPUkQgICAgICAgICAgICAgICAgIHdSc3JwOyAgICAgICAvL8ih1rW3ts6no7ogMH45Nw0KKyAgICAgV09SRCAgICAgICAgICAgICAgICAgd1JzcnE7ICAgICAgIC8vyKHWtbe2zqejuiAwfjM0DQorICAgICBXT1JEICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9IFRfekxURV9QX01lYXNSZXN1bHQ7DQorDQorLyoNCivSu7j2xrW147XEsuLBv73hufss08PT2tLsxrWy4sG/veG5+7XEyc+xqA0KKyovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgZHdSZXBvcnRFYXJmY247ICAgICAgICAvL8ih1rW3ts6no7ogMH4yNjIxNDMNCisgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxOdW07ICAgICAgICAgLy/Ioda1t7bOp6O6IDB+MzINCisgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgVF96TFRFX1BfTWVhc1Jlc3VsdCAgICAgICAgIGF0UmVzdWx0TGlzdFtaX0xURV9QX01BWF9JUkFUX1JFUE9SVF9DRUxMX1BFUl9GUkVRXTsNCit9IFRfekxURV9QX0ZyZXFNZWFzUmVzdWx0OyANCisNCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICB3RnJlcU51bTsgICAgDQorICAgIFRfekxURV9QX0ZyZXFNZWFzUmVzdWx0ICBhdEZyZXFSZXN1bHRMaXN0WzhdOw0KKyAgICBXT1JEICAgICAgICAgICAgIHdScHRGbGc7IC8qMDrW3Mbayc+xqCAxOszhx7DJz7GoKi8NCisgICAgV09SRCAgICAgICAgICAgICB3UGFkZGluZzsNCit9IFRfekxURV9QX0lyYXRNZWFzX0luZDsNCisNCisjaWZkZWYgWl9TSU5HTEVBTlRFTk5BDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICC3vc/yOkwxRyxMMVQtPkVQSFkNCisgICAguabE3DpMVEXOqriotcTKsbryo6xMMUejrEwxVLj4RVBIWbfWxeRHQVDKsbzkLNa00NBFUEhZtcTJqMa1oaKy4sG/oaLPtc2zz/vPorbByKG1yKGjDQorICAgIM/7z6I6TFRFX1BfSVJBVF9HQVBfQ09ORklHX1JFUV9FVg0KKyAgICC94bm5OlRfekxURV9QX0lyYXRHYXBDb25maWdSZXENCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgIHdHYXBTdGFydFN1YmZyYW1lOy8qR2FwxvDKvM671sPX09ahusWjrNX7TXOyv7fWKi8NCisgICAgV09SRCAgICAgICAgICAgICAgd0dhcFN0YXJ0U2ZuOyAgICAgLypHYXDG8Mq8zrvWw1NGTrrFo6zV+zEwTXOyv7fWKi8NCisgICAgV09SRCAgICAgICAgICAgICAgd0dhcFN0YXJ0VHM7ICAgICAgLypHYXDG8Mq8zrvWwyxUc7K/t9YqLw0KKyAgICBXT1JEICAgICAgICAgICAgICB3R2FwTGVuZ3RoTXM7ICAgICAvKiBHQVCzpLbILLWlzrttcy4qLw0KKyAgICBXT1JEICAgICAgICAgICAgICB3R2FwTGVuZ3RoVHM7ICAgICAvKiBHQVCzpLbILFRTsr+31i7V+7j2R0FQs6S2yMq1vMrKx2JHYXBMZW5ndGhNcytiR2FwTGVuZ3RoVHMqLw0KK31UX3pMVEVfUF9JcmF0R2FwSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdHYXBOdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3R2FwR3NtQ29ubmVjdEZsZzsvKkdTTc6q1vfEo8qxyrnTw6OsTFRFzu/A7bLj0OjSqrbUR1NNIMGsvdPMrEdBUM6yttTG67HqyrYqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFRfekxURV9QX0lyYXRHYXBJbmZvICAgICAgIGF0SXJhdEdhcEluZm9bWl9MVEVfUF9JUkFUX01BWF9HQVBfTlVNXTsNCit9VF96TFRFX1BfSXJhdEdhcENvbmZpZ19SZXE7DQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgILe9z/I6TDFFLT5FUEhZDQorICAguabE3DpMVEXOqtb31sbKvbWxTDFFt6LP1tDo0qq4+Mbky/vWxsq9t9bF5EdBUMqxvOS1xMqxuvKjrEwxRc/yRVBIWcfrx/NHQVDJz7GoDQorICAgz/vPojpMVEVfUF9JRExFX1BFUklPRF9SRVBfUkVRX0VWLg0KKyAgIL3hubk6VF96TFRFX1BfSWRsZV9QZXJpb2RSZXBfUmVxDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0DQoreyAgICANCisgICAgV09SRCAgICAgICAgICAgICB3TXNnSWQ7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgIHdSZXBvcnRpbmdNb2RlOyAgICAvKjE6v6rG9EdBUMnPsagsIDA6zaPWuUdBUMnPsagqLw0KKyAgICBXT1JEICAgICAgICAgICAgIHdBbnJNb2RlOyAgICAgICAgIC8qMDq3x0FOUiBHQVDJz7GoLCAxOiBBTlIgR0FQyc+xqCovDQorICAgIFdPUkQgICAgICAgICAgICAgd1BhZGRpbmc7DQorfSBUX3pMVEVfUF9HYXBSZXBvcnRDdHJsX1JlcTsNCisjZWxzZQ0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICAgt73P8jpMMUcsTDFULT5FUEhZDQorICAgILmmxNw6TFRFzqq4qLXEyrG68qOsTDFHo6xMMVS4+EVQSFm31sXkR0FQyrG85CzWtNDQRVBIWbXEyajGtaGisuLBv6Giz7XNs8/7z6K2wcihtcihow0KKyAgICDP+8+iOkxURV9QX0lSQVRfR0FQX0NPTkZJR19SRVFfRVYNCisgICAgveG5uTpUX3pMVEVfUF9JcmF0R2FwQ29uZmlnUmVxDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgIHdHYXBTdGFydFN1YmZyYW1lOy8qR2FwxvDKvM671sPX09ahusWjrNX7TXOyv7fWKi8NCisgICAgV09SRCAgICAgICAgICAgICAgd0dhcFN0YXJ0U2ZuOyAgICAgLypHYXDG8Mq8zrvWw1NGTrrFo6zV+zEwTXOyv7fWKi8NCisgICAgV09SRCAgICAgICAgICAgICAgd0dhcFN0YXJ0VHM7ICAgICAgLypHYXDG8Mq8zrvWwyxUc7K/t9YqLw0KKyAgICBXT1JEICAgICAgICAgICAgICB3R2FwTGVuZ3RoTXM7ICAgICAvKiBHQVCzpLbILLWlzrttcy4qLw0KKyAgICBXT1JEICAgICAgICAgICAgICB3R2FwTGVuZ3RoVHM7ICAgICAvKiBHQVCzpLbILFRTsr+31i7V+7j2R0FQs6S2yMq1vMrKx2JHYXBMZW5ndGhNcytiR2FwTGVuZ3RoVHMqLw0KKyAgICBXT1JEICAgICAgICAgICAgICB3R2FwR3NtQ29ubmVjdEZsZzsvKkdTTc6q1vfEo8qxyrnTw6OsTFRFzu/A7bLj0OjSqrbUR1NNIMGsvdPMrEdBUM6yttTG67HqyrYqLw0KKyAgICBXT1JEICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96TFRFX1BfSXJhdEdhcENvbmZpZ19SZXE7DQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgILe9z/I6TDFFLT5FUEhZDQorICAguabE3DpMVEXOqtb31sbKvbWxTDFFt6LP1tDo0qq4+Mbky/vWxsq9t9bF5EdBUMqxvOS1xMqxuvKjrEwxRc/yRVBIWcfrx/NHQVDJz7GoDQorICAgz/vPojpMVEVfUF9JRExFX1BFUklPRF9SRVBfUkVRX0VWLg0KKyAgIL3hubk6VF96TFRFX1BfSWRsZV9QZXJpb2RSZXBfUmVxDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0DQoreyAgICANCisgICAgV09SRCAgICAgICAgICAgICB3TXNnSWQ7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgIHdSZXBvcnRpbmdNb2RlOyAgICAvKjE6v6rG9EdBUMnPsagsIDA6zaPWuUdBUMnPsagqLw0KK30gVF96TFRFX1BfSWRsZV9QZXJpb2RSZXBfUmVxOw0KKyNlbmRpZg0KKy8qRVBIWbeiy824+EwxRyxMMVS1xL3Tv9q2qNLlKi8NCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgILe9z/I6RVBIWS0+TDFULEwxRw0KKyAgICC5psTcOkxURc7vwO2y48rVtb1MVEVfUF9BQk9SVF9HQVBfUkVRX0V2yMOz9snkxrW686GjuPhMMVQsTDFHtcTIt8jPDQorICAgICAgICAgICAg16LS4qO6ttTT2kdBULXEyKHP+7mmxNzT67Liwb/B0LHtw7vT0LHYyLu52MGqudjPtaOsTFRFzu/A7bLj09BHQVC+zbLiwb+jrMO7R0FQvs2yu7Liwb+jrMD9yOejrEdBUMihz/sNCisgICAgICAgICAgICDSu7bOyrG85LrzTDFU1Nm0zsXk1sNHQVCjrMTHw7RMVEXO78DtsuPI1Mi7v8nS1LzM0Piy4sG/oaMJCQkJIA0KKyAgICDP+8+iOkxURV9QX0FCT1JUX0dBUF9DTkZfRXYNCisgICAgveG5uTpOVUxMDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgVF96UFNfSVJfQ0xVU1RFUl9JTkZPIFRfTDFNRF9JUkFUX0NMVVNURVJfSU5GTzsgCSANCisNCit0eXBlZGVmIHN0cnVjdCAgDQorew0KKyAgICBCWVRFIGJUYXJnZXRNb2RlOw0KKyAgICBCWVRFIGJNYXN0ZXJGbGc7DQorICAgIEJZVEUgYkN1cnJNb2RlOw0KK31UX3pGdW5jX1NldE1vZGVfUmVxOw0KKw0KKy8qR1NN0KHH+NDFz6IqLw0KK3R5cGVkZWYgc3RydWN0ew0KKyBCWVRFICAgICAgICAgICAgICAgICAgICBiQ2VsbElkOyAgICAvKtChx/jE2rK/y/fS/SovICAgICAgICAgDQorIEJZVEUgICAgICAgICAgICAgICAgICAgIGJQYWRkaW5nOw0KKyBXT1JEICAgICAgICAgICAgICAgICAgICB3QXJmY247ICAgICAvKsa1teOjrLXaMTaxyMzYo70xse3Kvs6qMTkwMLKots4qLyAgICAgDQorfVRfekwxYV9Hc21DZWxsSW5mbzsNCisNCisvKkdTTdChx/iy4sG/veG5+yovDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyBCWVRFICAgICAgICAgICAgICAgICAgICBiQ2VsbElkOyAgICAgICAgICAgDQorIEJZVEUgICAgICAgICAgICAgICAgICAgIGJCc2ljOyAgIA0KKyBXT1JEICAgICAgICAgICAgICAgICAgICB3QXJmY247ICAgICAvKsa1teOjrLXaMTaxyMzYo70xse3Kvs6qMTkwMLKots4qLyAgICAgICAgICAgICAgICAgDQorIEJZVEUgICAgICAgICAgICAgICAgICAgIGJSc3NpOyAgICAgICAgICAgICANCisgQllURSAgICAgICAgICAgICAgICAgICAgYWJQYWRkaW5nWzNdOw0KK31UX3pMMWFfR3NtQ2VsbE1lYXNSbHQ7ICANCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBQUy0+TDFHDQorICAgIMrCvP6jukwxR19SUElfQ0ZHX1JFUV9FVg0KKyAgICC5psTcOg0KKyAgICAgICAgxeTWw0dTTc/COLj2QkFORKOsw7+49kJBTkTPwlJQSbrNUFVNQVi1xNOzyeS52M+1o6zG5NbQUlBJt7bOpzB+Mg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgVF96QmFuZFJwaUNmZyAgICAgdEdzbUJhbmRScGlDZmdbWl9HU01fUlBJX1NVUFBPUlRfTUFYX0JBTkRdOw0KK31UX3pQU19HU01fUF9ScGlDZmdSZXE7DQorDQorZXh0ZXJuIERXT1JEIHpXX1NlbmRNc2dUb3BoeShEV09SRCBkd01zZ0lkLCBQQllURSBwYk1zZ0RhdGEsIFdPUkQgd01zZ0xlbik7DQorZXh0ZXJuIERXT1JEIHpMdGVfU2VuZE1zZ1RvRXBoeShEV09SRCBkd01zZ0lkLCBQQllURSBwYk1zZ0RhdGEsIFdPUkQgd01zZ0xlbik7DQorZXh0ZXJuIFZPSUQgekdzbV9TZW5kUnBpQ2ZnTXNnVG9MMWcgKFRfelBTX0dTTV9QX1JwaUNmZ1JlcSogcHRHc21ScGlDZmdSZXEsIEJZVEUgYkN1ckluc0lkeCk7DQorIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgyKu+1rqvyv3UrdDNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorLyrW98Sjyr3J6NbDuq/K/Q0KKyAgYlRhcmdldFJhdKO60OjSqrSmwO21xMS/serWxsq9o7oxR1NNo6wyVESjrDNMVEWjrDRXDQorICBiTWFzdGVyRmxno7rKx7fxvavEv7Hq1sbKvcno1sPOqtb3xKPKvaOsWl9WQUxJRMrHo6xaX0lOVkFMSUS38SovDQorZXh0ZXJuIFZPSUQgICAgelNldE1hc3Rlck1vZGUoQllURSBiVGFyZ2V0UmF0LCBCWVRFIGJNYXN0ZXJGbGcpOw0KKw0KKy8q1vfEo8q9sunRr7qvyv0NCisgIGJSYXSjurG+xKO/6bXE1sbKvSjWp7PWQVO1pcq1wP3Lq7T9KQ0KKyAgt7W72Na1o7oww7vT0Nb3xKPKvaOsMUdTTc6q1vejrDJURM6q1vejrDNMVEXOqtb3o6w0V86q1vcqLw0KK2V4dGVybiBCWVRFICAgIHpHZXRNYXN0ZXJNb2RlKEJZVEUgYlJhdCk7DQorLyrW98Sjyr3J6NbDuq/K/Sy99rmptaWw5UlDIEwxR7X308MqLwkJCQkJCQkJICANCitleHRlcm4gVk9JRCAgICB6U2V0SXJhdE1hc3Rlck1vZGUoQllURSBiVGFyZ2V0QWN0LCBCWVRFIGJJc1NldFRhcmdldEFjdE1hc3Rlcik7DQorICAgICAvKmJUYXJnZXRBY3SjutDo0qq0psDttcTEv7Hq1sbKvaO6MbHtyr5aX0lSQVRfR1NNX01PREWhojKx7cq+Wl9JUkFUX1REX01PREWhojOx7cq+WlBTX0lSQVRfTFRFX01PREUNCisgICAgICAgICAgICAgICAgIGJJc1NldFRhcmdldEFjdE1hc3RlcqO6yse38b2rxL+x6tbGyr3J6NbDzqrW99bGyr2jrFpfVkFMSUQoVFJVRSmjusrHo6xaX0lOVkFMSUQoRkFMU0Upo7q38Q0KKyAgICAgICAgICAgICAqLw0KKy8qu/HIobWxx7DW99bGyr26r8r9o6y99rmptaWw5UlDIEwxR7X308MqLw0KK2V4dGVybiBCWVRFIHpHZXRJcmF0TWFzdGVyTW9kZShWT0lEKTsvKre1u9jWtTAgOrP1yry7r9a1u/LI/bj21sbKvb75srvOqtb3LDEgOkdTTc6q1vcsKTIgOlREzqrW9ywzIDpMVEXOqtb3Ki8NCisNCisvKkdTTbLiwb+197bIvdO/2iovDQorZXh0ZXJuIFZPSUQgekwxYV9tZWFzX0dzbUluaXQoVk9JRCk7DQorZXh0ZXJuIFZPSUQgekwxYV9tZWFzX0dzbVJlc2V0KFZPSUQpOw0KK2V4dGVybiBWT0lEIHpMMWFfbWVhc19Hc21Db25maWcoQllURSBiQ2VsbE51bSwgVF96TDFhX0dzbUNlbGxJbmZvICpwQ2VsbExpc3QsIEJZVEUgYlJyY1N0YXRlKTsNCitleHRlcm4gVk9JRCB6TDFhX21lYXNfR3NtU3RhcnQoQllURSBiRnVsbHkpOw0KK2V4dGVybiBWT0lEIHpMMWFfbWVhc19Hc21TdXNwZW5kKFZPSUQpOw0KK2V4dGVybiBWT0lEIHpMMWFfbWVhc19Hc21SZXN1bWUoVk9JRCk7DQorZXh0ZXJuIFZPSUQgekwxYV9tZWFzX0dzbVN0b3AoQllURSBiRnVsbHkpOw0KK2V4dGVybiBCT09MIHpMMWFfbWVhc19Hc21Jc1N0b3BwZWQoVk9JRCk7DQorZXh0ZXJuIEJZVEUgekwxYV9tZWFzX0dzbUdldFJlc3VsdChUX3pMMWFfR3NtQ2VsbE1lYXNSbHQgKnBNZWFzUmx0KTsNCitleHRlcm4gVk9JRCB6TDFhX21lYXNfR3NtU2NoZWR1bGUoQllURSBiUHVycG9zZSwgVF96SVJfVERNQV9USU1FX0lORk8gKnBTdGFydCwNCisgICAgVF96SVJfVERNQV9USU1FX0lORk8gKnBMZW4pOw0KK2V4dGVybiBWT0lEIHpMMWFfbWVhc19Hc21TZXRCc2ljUmVxdWlyZWQoQllURSBiTm90TmVlZEZjYik7DQorDQorI2lmZGVmIFpfU0lOR0xFQU5URU5OQQ0KK2V4dGVybiBWT0lEIHpMMWFfU2V0Q2FyZDFSZk9jY3VwU3RhdChWT0lEKTsNCitleHRlcm4gVk9JRCB6TDFhX1NldENhcmQyUmZPY2N1cFN0YXQoVk9JRCk7DQorZXh0ZXJuIEJZVEUgekwxYV9HZXRDYXJkMVJmT2NjdXBTdGF0KFZPSUQpOw0KK2V4dGVybiBCWVRFIHpMMWFfR2V0Q2FyZDJSZk9jY3VwU3RhdChWT0lEKTsNCitleHRlcm4gVk9JRCB6TDFhX0NsZWFyQ2FyZDFSZk9jY3VwU3RhdChWT0lEKTsNCitleHRlcm4gVk9JRCB6TDFhX0NsZWFyQ2FyZDJSZk9jY3VwU3RhdChWT0lEKTsNCitleHRlcm4gQllURSB6TDFhX0Noa0lzRXZlbnRFeGlzdChCWVRFIGJDYXJkaW5kZXgsIEJZVEUgYkV2ZW50KTsNCitleHRlcm4gQllURSB6TDFhX0lzQ2FyZDFDc0V2ZW50RXhpc3QoVk9JRCk7DQorZXh0ZXJuIFZPSUQgICAgekwxYV9TZXRFdmVudFByaW9yaXR5KEJZVEUgYkNhcmRpbmRleCwgQllURSBiRXZlbnQpOw0KK2V4dGVybiBWT0lEICAgIHpMMWFfQ2xlYW5FdmVudFByaW9yaXR5KEJZVEUgYkNhcmRpbmRleCwgQllURSBiRXZlbnQpOw0KK2V4dGVybiBCWVRFIHpMMWFfR2V0RHVhbENhcmRFdmVudFByaW9yaXR5KFZPSUQpOw0KK2V4dGVybiBWT0lEIHpMMWFfSW5pdChWT0lEKTsNCisjZW5kaWYNCisNCisvKioqKioqKioqKioqKioqKioqKiAgTDFHy/nM4bmptcS6r8r9yfnD9yAgKioqKioqKioqKioqKioqKioqKioqLw0KK2V4dGVybiBWT0lEIGwxbWRfc2V0X3VtdHNfcGFyYW1zKFRfeklSX0JDQ0hfTElTVCAqIHBfYmFfbGlzdCApOw0KK2V4dGVybiBCT09MIGwxY29fdW10c19pc19hY3RpdmF0ZWQoVk9JRCk7DQorZXh0ZXJuIFZPSUQgbDFjb191bXRzX2luaXRpYWxpc2VfcmVxKFZPSUQpOw0KK2V4dGVybiBWT0lEIGwxbWRfdW10c19pbml0aWFsaXplKFZPSUQpOw0KK2V4dGVybiBWT0lEIGwxbWRfdW10c19zZXRfcmVjb25mX3N0YXRlKGNvbnN0IFRfeklSX0lSX0dTTV9CQU5EX01BU0sgZHdDZWxsQml0bWFwKTsNCitleHRlcm4gVk9JRCBsMW1kX3VtdHNfZ2V0X3VwZGF0ZWRfc3luY19zdGF0dXMoVF96SVJfQ0VMTF9TWU5DX1FVRVJZX0RBVEEgKnBfc3luY19xdWVyeV9kYXRhIC8qIElPOiBzeW5jIGRhdGEgKi8pOw0KK2V4dGVybiBWT0lEIGwxbWRfZXhjaGFuZ2VfbmNlbGxfcnhsZXZfYnVmZmVycyhCWVRFIGJNdXRpTW9kZUluZCk7LyrLq7+oy6u0/UwxR9Dox/PQ3rjEoaO24MSjILWlxKPI67LOoaMwse3KvsurtP3W0LXEtuDEo9K7tP2199PDo6wxse3KvsurtP3WrtbQtaW0/bX308MqLw0KK2V4dGVybiBCT09MIGwxbWRfdW10c19yc3NpX21lYXNfY29tcGxldGUoVk9JRCk7DQorZXh0ZXJuIFZPSUQgbDFtZF9kYl9zaGlmdF9uY2VsbF9ydW5hdihCWVRFIGJNdXRpTW9kZUluZCk7DQorZXh0ZXJuIEJPT0wgbDFtZF91bXRzX3F1ZXJ5X3N5bmNfc3RhdHVzKFRfeklSX0NFTExfU1lOQ19RVUVSWV9EQVRBICogcF9zeW5jX3F1ZXJ5X2RhdGEsICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERXT1JEIGNlbGxfbWFzaywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJZVEUgbWF4X2NlbGxzKTsNCitleHRlcm4gVk9JRCBsMWNvX3VtdHNfZGVhY3RpdmF0ZV9yZXEoVk9JRCk7DQorZXh0ZXJuIERXT1JEIGwxbWRfdW10c19kZXRlcm1pbmVfYmFja3VwX3NpemUoVk9JRCk7DQorZXh0ZXJuIFZPSUQgbDFtZF91bXRzX2JhY2t1cF9kYihQVk9JRCBQKTsNCitleHRlcm4gVk9JRCBsMW1kX3VtdHNfcmVzdG9yZV9kYihQVk9JRCBQKTsNCitleHRlcm4gQk9PTCBsMWNvX3VtdHNfc2JfcmVhZChUX3pJUl9USU1JTkdfQ1RSTCAgICAgIHRpbWluZ19jdHJsX2ZsYWcsICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfeklSX1NCX1JFQURfVFlQRSAgICAgc2JfcmVhZF90eXBlLCAgICAgICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVF96SVJfU0JfSU5GT19UQUJMRSAgICAqc2JfaW5mbywgICAgICAgICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX3pJUl9URE1BX1RJTUVfSU5GTyAgICpzdGFydCwgICAgICAgICAgICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfeklSX1RETUFfVElNRV9JTkZPICAgKmxlbmd0aCwgICAgICAgICAgICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVF96SVJfUkVTVUxUX0ZVTkNUSU9OICAqcmVzdWx0X3JlY29uZl9zYl9yZWFkX2ZjdCk7DQorZXh0ZXJuIFZPSUQgbDFjb191bXRzX3Jzc2lfbWVhcyhEV09SRCAgYmFuZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJPT0wgICB3cmFwX2Fyb3VuZF9mbGFnLCAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVF96SVJfVERNQV9USU1FX0lORk8gKnN0YXJ0LCAgICAgICAgICAgICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX3pJUl9URE1BX1RJTUVfSU5GTyAqbGVuZ3RoLCAgICAgICAgICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfeklSX1JFU1VMVF9GVU5DVElPTiAqcmVzdWx0X3Jzc2lfbWVhc19mY3QgKTsNCitleHRlcm4gVk9JRCBsMW1kX3VtdHNfc2V0X2FjdGl2ZV9jZWxscyhEV09SRCBhY3RpdmVfY2VsbHMgIC8qIEk6IGFjdGl2ZSBjZWxscyhiaXRtYXApICovKTsNCitleHRlcm4gVk9JRCBsMWNvX3VtdHNfYWN0aXZhdGVfcmVxKFZPSUQpOw0KK2V4dGVybiBWT0lEIGwxY29fdW10c19mY2Jfc2JfcmVhZChUX3pJUl9SRVBfQ0VMTF9UQUJMRSAqIGNlbGxfaW5mbywgICAgICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfeklSX1RETUFfVElNRV9JTkZPICogc3RhcnQsICAgICAgICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVF96SVJfVERNQV9USU1FX0lORk8gKiBsZW5ndGgsICAgICAgICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX3pJUl9SRVNVTFRfRlVOQ1RJT04gKiByZXN1bHRfZmNiX3NiX3JlYWRfZmN0KTsNCisJCQkJCQkJCSAgDQorZXh0ZXJuIEJPT0wgbDFjb191bXRzX2lzX2RlYWN0aXZhdGVkKFZPSUQpOw0KK2V4dGVybiBWT0lEIGwxZ19pcmF0X3NldF9nc21fbWFzdGVyKFZPSUQpOw0KK2V4dGVybiBCT09MIGwxZF90Y2hfc3RtX2R0eF9hY3RpdmUoQllURSBiTXV0aU1vZGVJbmQpOwkNCisNCitleHRlcm4gVk9JRCBsMW1kX3VtdHNfY2xlYXJfYWxsX3N5bmNfaW5mbyhWT0lEKTsNCisNCisjaWZkZWYgTVVMVElfSVJBVF8yOTYzDQorZXh0ZXJuIFZPSUQgbDFnX2lyYXRfc3RvcF9nYXBfcmVwX3JlcShWT0lEKTsNCitleHRlcm4gVk9JRCBsMWdfaXJhdF9zdGFydF9nYXBfcmVwX3JlcShWT0lEKTsNCisvKioqKioqKioqKioqKioqKioqKmwxdWRfbWVhcy5oKioqKioqKioqKioqKioqKioqKioqLw0KK2V4dGVybiBWT0lEIFpQU19JUl9sMXVkX21lYXNfc3RtX2luaXQoIFZPSUQgKTsNCitleHRlcm4gVk9JRCBaUFNfSVJfbDF1ZF9tZWFzX3N0bV9yZXNldChWT0lEKTsNCitleHRlcm4gVk9JRCBaUFNfSVJfbDF1ZF9tZWFzX3N0bV9wcmVwYXJlKCBCWVRFIGJHc21CYW5kLCBCWVRFIGJXaW5kb3dMZW4pOw0KK2V4dGVybiBWT0lEIFpQU19JUl9sMXVkX21lYXNfc3RtX2ZyYW1lX3RpY2soVk9JRCk7DQorDQorI2lmIGRlZmluZWQgKFNJTkdMRV9BTlRFTk5BX1NVUFBPUlQpDQorZXh0ZXJuIFZPSUQgWlBTX0lSX2wxdWRfbWVhc19pcmF0X3ByZXBhcmUoIEJZVEUgYlBpZCwgQllURSBiSXJhdFVzZVR4Rm9yVG91dCwgQllURSBiTGFzdFVzZWRUcyk7DQorI2Vsc2UNCitleHRlcm4gVk9JRCBaUFNfSVJfbDF1ZF9tZWFzX2lyYXRfcHJlcGFyZSAoIEJZVEUgYlBpZCAsIEJZVEUgYklyYXRVc2VUeEZvclRvdXQgKTsNCisjZW5kaWYNCisNCitleHRlcm4gVk9JRCBaUFNfSVJfbDF1ZF9tZWFzX2lyYXRfaWZybV9zaG9ydGVuZWQoIENIQVIgZGVsdGFfb2Zmc2V0ICk7DQorZXh0ZXJuIFZPSUQgWlBTX0lSX2wxdWRfbWVhc19pcmF0X3R4X2VuYWJsZWQoIEJZVEUgYlR4RW5hYmxlZCApOw0KK2V4dGVybiBWT0lEIFpQU19JUl9sMXVkX2lyYXRfbWVhc3VyZW1lbnRzX2Fib3J0KCBWT0lEICk7DQorZXh0ZXJuIEJZVEUgWlBTX0lSX2wxdWRfaXJhdF9tZWFzX2FjdGl2ZSAoIFZPSUQgKTsNCitleHRlcm4gVk9JRCBaUFNfSVJfbDF1ZF9pcmF0X2dzbV9nYXBfc3RhcnQoV09SRCB3V2luZG93VGltZSk7DQorZXh0ZXJuIFZPSUQgWlBTX0lSX2wxdWRfaXJhdF9nc21fZ2FwX3N0b3AoIFZPSUQgKTsNCitleHRlcm4gQllURSBaUFNfSVJfbDF1ZF9pcmF0X3BsbW5fc2VhcmNoX2dhcF9zdGFydCggV09SRCB3V2luZG93VGltZSApOw0KKw0KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1zdHViIHRoZW0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovDQorZXh0ZXJuIFZPSUQgWlBTX0lSX2wxdWRfaXJhdF9tZWFzdXJlbWVudHNfcmVsZWFzZShWT0lEKTsNCitleHRlcm4gQllURSBaUFNfSVJfbDF1ZF9tZWFzX2lyYXRfcmVsZWFzZV9jbmYoVk9JRCk7DQorDQorLyoqKioqKioqKioqKioqKioqKipsMXVfaXJhdF9taXNjLmgsIGJlZ2luKioqKioqKioqKioqKioqKioqKioqLw0KK2V4dGVybiBWT0lEIFpQU19JUl9sMXVfaXJhdF9pbml0ICggVk9JRCApOw0KK2V4dGVybiBCWVRFIFpQU19JUl9sMXVfaXJhdF90cnVzdF9ic2ljX3JlY29uZl90aW1pbmcgKCBWT0lEICk7DQorZXh0ZXJuIFZPSUQgWlBTX0lSX2wxdV9pcmF0X3NldF91bXRzX21hc3RlciAoIFZPSUQgKTsNCitleHRlcm4gQllURSBaUFNfSVJfbDF1X2lyYXRfaXNfdW10c19tYXN0ZXIgKCBWT0lEICk7DQorZXh0ZXJuIFZPSUQgWlBTX0lSX2wxdV9pcmF0X3NldF91bXRzX21vZGUgKCBWT0lEICk7DQorZXh0ZXJuIEJZVEUgWlBTX0lSX2wxdV9pcmF0X2NoZWNrX29uX3JmX2NvbmZsaWN0X3dpdGhfdW10cyAoIFZPSUQgKnBQYXJhbSApOw0KK2V4dGVybiBWT0lEIFpQU19JUl9sMXVfaXJhdF9oYW5kbGVyX3JlcSAoIEJZVEUgYlJlcXVlc3RUeXBlICk7DQorZXh0ZXJuIEJZVEUgWlBTX0lSX2wxdV9pcmF0X2hhbmRsZXJfY25mICggVk9JRCApOw0KKw0KKyNpZiBkZWZpbmVkKFNJTkdMRV9BTlRFTk5BX1NVUFBPUlQpDQorZXh0ZXJuIFZPSUQgWlBTX0lSX2wxdV9pcmF0X3N0YXJ0X2dhcF9yZXBfcmVxICggVk9JRCApOw0KK2V4dGVybiBWT0lEIFpQU19JUl9sMXVfaXJhdF9zdG9wX2dhcF9yZXBfcmVxICggVk9JRCApOw0KKyNlbmRpZg0KK2V4dGVybiBWT0lEIFpQU19JUl9sMXVkX3RzdGFtcF9hY3RpdmF0ZShCWVRFIGJUc01vZGUsIEJZVEUgYkdhcElnbm9yZU1vZGUpOw0KK2V4dGVybiBCWVRFIFpQU19JUl9sMXVkX3RzdGFtcF9pc19hbnRlbm5hX3JlYWR5X2Zvcl9nc20oVF96UFNfSVJfVERNQV9USU1FX0lORk8gKnBfZ2ZuX2ZyZWVfdW50aWwpOw0KK2V4dGVybiBWT0lEIFpQU19JUl9sMXVkX3RzdGFtcF9yZXNldF9ncHJzX29mZnNldCggVk9JRCApOw0KK2V4dGVybiBWT0lEIFpQU19JUl9sMXVkX3RzdGFtcF9zZXRfZ3Byc19mbihEV09SRCBkd0ZuKTsNCitleHRlcm4gVk9JRCBaUFNfSVJfbDF1ZF90c3RhbXBfZ2V0X3RpbWVfZ3NtX2FudGVubmFfZnJlZShUX3pQU19JUl9URE1BX1RJTUVfSU5GTyAqcF9nc21fc3RhcnR0aW1lLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfelBTX0lSX1RETUFfVElNRV9JTkZPICpwX3RkbWFfdGltZV9yZXN1bHQpOw0KK2V4dGVybiBWT0lEIFpQU19JUl9sMXVkX3RzdGFtcF9ncHJzX2ZyYW1lX3RpY2soIFdPUkQgd1ByZXZMZW4gKTsNCitleHRlcm4gVk9JRCBaUFNfSVJfbDF1ZF90c3RhbXBfZ3Byc19lYXJseV9wcmVwX3RpY2soIFZPSUQgKTsNCitleHRlcm4gU0hPUlQgWlBTX0lSX2wxdWRfdGFsZ19nZXRfYW5kX3Jlc2V0X3RpbWVfZHJpZnRfb2Zmc2V0KFZPSUQpOw0KKy8qKioqKioqKioqKioqKioqKioqbDF1X2F0Y19pZi5oKioqKioqKioqKioqKioqKioqKioqLw0KK2V4dGVybiBQQllURSBaUFNfSVJfbDF1X2F0Y19zZXQoUEJZVEUgcFN0cmluZyk7DQorDQorLyoqKioqKioqKioqKioqKioqKipsMXVfZnMuaCoqKioqKioqKioqKioqKioqKioqKi8NCitleHRlcm4gQllURSBaUFNfSVJfbDF1X2ZzX2dldF9ub2ZfYWN0aXZlX2ZyX3RpY2tfZnVuYyhWT0lEKTsNCisNCisvKioqKioqKioqKioqKioqKioqKmwxdV9kY2guaCoqKioqKioqKioqKioqKioqKioqKi8NCitleHRlcm4gQllURSBaUFNfSVJfbDF1X2RjaF9jaGVja19pZGxlKFZPSUQpOw0KKy8qKioqKioqKioqKioqKioqKioqbDF1X2ZjaC5oKioqKioqKioqKioqKioqKioqKioqLw0KK2V4dGVybiBCWVRFIFpQU19JUl9sMXVfZmFjaF9jaGVja19pZGxlKFZPSUQpOw0KKy8qKioqKioqKioqKioqKioqKioqbDF1X2JjaC5oKioqKioqKioqKioqKioqKioqKioqLw0KK2V4dGVybiBCWVRFIFpQU19JUl9sMXVfYmNoX2NoZWNrX2lkbGUoVk9JRCk7DQorLyoqKioqKioqKioqKioqKioqKipsMXVfY3NyY2guaCoqKioqKioqKioqKioqKioqKioqKi8NCitleHRlcm4gQllURSBaUFNfSVJfbDF1X2NzcmNoX2NoZWNrX2lkbGUoVk9JRCk7DQorDQorLyoqKioqKioqKioqKioqKioqKipsMXVfbW9uX2lyYXQxLmgqKioqKioqKioqKioqKioqKioqKiovDQorZXh0ZXJuIFZPSUQgWlBTX0lSX2wxdV9tb25faXJhdF9jaGFuZ2VfdGltZXN0YW1waW5nX3RvX2lkbGUoVk9JRCk7DQorDQorLyoqKioqKioqKioqKioqKioqKipsMXVfbWRiLmgqKioqKioqKioqKioqKioqKioqKiovDQorZXh0ZXJuICBWT0lEIFpQU19JUl9sMXVfbWRiX3Jlc2V0X2NlbGxfZGF0YWJhc2UoVk9JRCk7DQorZXh0ZXJuICBWT0lEIFpQU19JUl9sMXVfbWRiX3NldF9jZWxsX2xpc3RfdWFyZmNuKFRfelBTX0lSX0NFTExfTElTVF9JRCAgbGlzdF9pZCwgICAgICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV09SRCAgdWFyZmNuLCAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCWVRFICBpZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJZVEUgIG5vZl9jZWxscyk7DQorZXh0ZXJuICBWT0lEIFpQU19JUl9sMXVfbWRiX2FkZF9hc3NpZ25lZF9jZWxsKFRfelBTX0lSX1VUUkFOX0NFTExfT05fRlJFUSAgKnBfY2VsbF9pbmZvLCBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfelBTX0lSX0NFTExfTElTVF9JRCBsaXN0X2lkLCAgICAgICAgICAgICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJZVEUgIHNyY19pZHgpOw0KK2V4dGVybiAgVk9JRCBaUFNfSVJfQ3JlYXRlX1pQU19MMUdfVEREX0NFTExfTUVBU19SRVEoIFRfelBTX0lSX1VUUkFOX0NUUkxfREFUQSAgKnBfdXRyYW5fY3RybCApOw0KK2V4dGVybiAgVk9JRCBaUFNfSVJfc2VuZF9aUFNfTDFHX1RERF9DRUxMX01FQVNfUkVRKFRfelBTX0lSX0wxR19UZGRDZWxsTWVhc1JlcSAqcF9tc2dfcGFyYW0pOw0KK2V4dGVybiAgVk9JRCBaUFNfSVJfbDF1X21kYl9hZGRfbmNlbGxfcmVzdWx0KFRfelBTX0lSX0lyYXRVbWNyTWVhc1Jlc3VsdCAgKnBfdW1jcl9tZWFzX3Jlc3VsdCwgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX3pQU19JUl9DRUxMX0xJU1RfSUQgKnBfbGlzdF9pZCk7DQorZXh0ZXJuICBWT0lEIFpQU19JUl9sMXVfbWRiX3VwZGF0YV9uY2VsbF9ydW5uaW5nX2F2ZXJhZ2VfYnVmZmVycyhUX3pQU19JUl9DRUxMX0xJU1RfSUQgIGxpc3RfaWQsICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfelBTX0lSX1VUUkFOX0NUUkxfREFUQSAqcF91dHJhbl9jdHJsKTsNCitleHRlcm4gIFRfelBTX0lSX1VUUkFOX0NFTExfT05fRlJFUSAgKlpQU19JUl9sMXVfbWRiX2dldF9uY2VsbF9kYXRhKFRfelBTX0lSX0NFTExfTElTVF9JRCAgbGlzdF9pZCwgXA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQllURSAgY2VsbF9pZHgpOw0KK2V4dGVybiAgVk9JRCBaUFNfSVJfbDF1X21kYl9jYWxjX25jZWxsX3JhdmcoVF96UFNfSVJfQ0VMTF9MSVNUX0lEICBsaXN0X2lkLCAgICAgICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJZVEUgIGNlbGxfaWR4LCAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX3pQU19JUl9NREJfTUVBU19FTEVNRU5UICptZWFzX3Jlc3VsdCk7DQorZXh0ZXJuICBCWVRFIFpQU19JUl9jb21wX3V0cmFuX2xpc3QoVF96UFNfSVJfVVRSQU5fQ0VMTFNfUEVSX0ZSRVEgICAgKnBfbmV3X3V0cmFuX25jZWxscywgICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVF96UFNfSVJfQ0VMTF9MSVNUX0lEICBsaXN0X2lkeCk7DQorZXh0ZXJuICBCWVRFICBaUFNfSVJfbDF1X21kYl9nZXRfY2VsbF9udW0oIFRfelBTX0lSX0NFTExfTElTVF9JRCAgbGlzdF9pZCApOw0KK2V4dGVybiAgV09SRCBaUFNfSVJfbDF1X21kYl9nZXRfdWFyZmNuKFRfelBTX0lSX0NFTExfTElTVF9JRCAgbGlzdF9pZCk7DQorZXh0ZXJuICBCWVRFIFpQU19JUl9sMXVfbWRiX2dldF91YXJmY25faW5kZXgoVF96UFNfSVJfQ0VMTF9MSVNUX0lEICBsaXN0X2lkKTsNCisvKioqKioqKioqKioqKioqKioqKiAgTDFHy/nM4bmptcS6r8r9yfnD9yAgKioqKioqKioqKioqKioqKioqKioqLw0KK2V4dGVybiBWT0lEIGwxbWRfZmlsbF91bXRzX3Jlc2VsX2RiKFRfelBTX0lSX01PTl9NRUFTX1JFU1VMVF9HU01fRUxFTUVOVCAqIHBfcmVzdWx0LCAgICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQllURSBtYXhfY2VsbHNfdG9fcmVwb3J0LCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEV09SRCBhY3RpdmVfY2VsbF9iaXRtYXNrLCAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJZVEUgcmF2Z19zaXplKTsNCisNCitleHRlcm4gQk9PTCBsMWRfdHVfdW10c19sYXRjaF9kaXNhYmxlKFZPSUQpOw0KK2V4dGVybiBCT09MIGwxZF90dV91bXRzX2xhdGNoX2VuYWJsZShWT0lEKTsNCitleHRlcm4gaW50IGwxZF90dV91bXRzX2xhdGNoX29mZnNldChWT0lEKTsNCitleHRlcm4gdm9pZCBsMWdfaXJhdF9oYW5kbGVyX3JlcV9leCAoIFRfTDFHX0lSQVRfU0NFTkVfVFlQRSAgc2NlbmVfdHlwZSwgIFRfelBTX0lSX0hBTkRMRVJfUkVRX1RZUEUgcmVxdWVzdF90eXBlKTsNCitleHRlcm4gQk9PTCBsMWdfaXJhdF9oYW5kbGVyX2NuZihWT0lEKTsNCitleHRlcm4gVk9JRCBsMW1kX3VtdHNfc2V0X2ludmFsaWRfc3RhdGUgKGNvbnN0IFRfelBTX0lSX0lSX0dTTV9CQU5EX01BU0sgYmFuZF9tYXNrKTsNCisjZWxzZQ0KK2V4dGVybiBWT0lEIGwxZ19pcmF0X3N0YXJ0X2dhcF9yZXBfcmVxICggQllURSBiUmF0ICk7DQorZXh0ZXJuIFZPSUQgbDFnX2lyYXRfc3RvcF9nYXBfcmVwX3JlcSAoIEJZVEUgYlJhdCApOw0KKy8qKioqKioqKioqKioqKioqKioqbDF1ZF9tZWFzLmgqKioqKioqKioqKioqKioqKioqKiovDQorZXh0ZXJuIFZPSUQgeklSX2wxdWRfbWVhc19zdG1faW5pdCggVk9JRCApOw0KK2V4dGVybiBWT0lEIHpJUl9sMXVkX21lYXNfc3RtX3Jlc2V0KFZPSUQpOw0KK2V4dGVybiBWT0lEIHpJUl9sMXVkX21lYXNfc3RtX3ByZXBhcmUoIEJZVEUgYkdzbUJhbmQsIEJZVEUgYldpbmRvd0xlbik7DQorZXh0ZXJuIFZPSUQgeklSX2wxdWRfbWVhc19zdG1fZnJhbWVfdGljayhWT0lEKTsNCisNCisjaWYgZGVmaW5lZCAoU0lOR0xFX0FOVEVOTkFfU1VQUE9SVCkNCitleHRlcm4gVk9JRCB6SVJfbDF1ZF9tZWFzX2lyYXRfcHJlcGFyZSggQllURSBiUGlkLCBCWVRFIGJJcmF0VXNlVHhGb3JUb3V0LCBCWVRFIGJMYXN0VXNlZFRzKTsNCisjZWxzZQ0KK2V4dGVybiBWT0lEIHpJUl9sMXVkX21lYXNfaXJhdF9wcmVwYXJlICggQllURSBiUGlkICwgQllURSBiSXJhdFVzZVR4Rm9yVG91dCApOw0KKyNlbmRpZg0KKw0KK2V4dGVybiBWT0lEIHpJUl9sMXVkX21lYXNfaXJhdF9pZnJtX3Nob3J0ZW5lZCggQ0hBUiBkZWx0YV9vZmZzZXQgKTsNCitleHRlcm4gVk9JRCB6SVJfbDF1ZF9tZWFzX2lyYXRfdHhfZW5hYmxlZCggQllURSBiVHhFbmFibGVkICk7DQorZXh0ZXJuIFZPSUQgeklSX2wxdWRfaXJhdF9tZWFzdXJlbWVudHNfYWJvcnQoIFZPSUQgKTsNCitleHRlcm4gQllURSB6SVJfbDF1ZF9pcmF0X21lYXNfYWN0aXZlICggVk9JRCApOw0KK2V4dGVybiBWT0lEIHpJUl9sMXVkX2lyYXRfZ2FwX3N0YXJ0KFRfelREX1BfSXJhdEdhcENvbmZpZ19SZXEgKnBHYXBDb25maWdSZXEpOw0KK2V4dGVybiBWT0lEIHpJUl9sMXVkX2lyYXRfZ3NtX2dhcF9zdG9wKCBWT0lEICk7DQorZXh0ZXJuIEJZVEUgeklSX2wxdWRfaXJhdF9wbG1uX3NlYXJjaF9nYXBfc3RhcnQoIFdPUkQgd1dpbmRvd1RpbWUgKTsNCisNCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tc3R1YiB0aGVtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KK2V4dGVybiBWT0lEIHpJUl9sMXVkX2lyYXRfbWVhc3VyZW1lbnRzX3JlbGVhc2UoVk9JRCk7DQorZXh0ZXJuIEJZVEUgeklSX2wxdWRfbWVhc19pcmF0X3JlbGVhc2VfY25mKFZPSUQpOw0KKw0KKy8qKioqKioqKioqKioqKioqKioqbDF1X2lyYXRfbWlzYy5oLCBiZWdpbioqKioqKioqKioqKioqKioqKioqKi8NCitleHRlcm4gVk9JRCB6SVJfbDF1X2lyYXRfaW5pdCAoIFZPSUQgKTsNCitleHRlcm4gQllURSB6SVJfbDF1X2lyYXRfdHJ1c3RfYnNpY19yZWNvbmZfdGltaW5nICggVk9JRCApOw0KK2V4dGVybiBCWVRFIHpJUl9sMXVfaXJhdF9jaGVja19vbl9yZl9jb25mbGljdF93aXRoX3VtdHMgKCBWT0lEICpwUGFyYW0gKTsNCitleHRlcm4gVk9JRCB6SVJfbDF1X2lyYXRfaGFuZGxlcl9yZXEgKCBCWVRFIGJSZXF1ZXN0VHlwZSApOw0KK2V4dGVybiBCWVRFIHpJUl9sMXVfaXJhdF9oYW5kbGVyX2NuZiAoIFZPSUQgKTsNCisNCisvKiNpZiBkZWZpbmVkKFNJTkdMRV9BTlRFTk5BX1NVUFBPUlQpKi8NCitleHRlcm4gQk9PTCB6TDF0X21lYXNfSXJhdFN0b3BHYXBDbmYoQllURSBiUmF0KTsNCitleHRlcm4gVk9JRCB6TDF0X21lYXNfSXJhdFN0YXJ0R2FwUmVxKEJZVEUgYlJhdCk7DQorZXh0ZXJuIFZPSUQgekwxdF9tZWFzX0lyYXRTdG9wR2FwUmVxKEJZVEUgYlJhdCk7DQorLyojZW5kaWYqLw0KK2V4dGVybiBWT0lEIHpJUl9sMXVkX3RzdGFtcF9nZXRfdGltZV9nc21fYW50ZW5uYV9mcmVlKFRfeklSX1RETUFfVElNRV9JTkZPICpwX2dzbV9zdGFydHRpbWUsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVF96SVJfVERNQV9USU1FX0lORk8gKnBfdGRtYV90aW1lX3Jlc3VsdCk7DQorLyoqKioqKioqKioqKioqKioqKipsMXVfYXRjX2lmLmgqKioqKioqKioqKioqKioqKioqKiovDQorZXh0ZXJuIFBCWVRFIHpJUl9sMXVfYXRjX3NldChQQllURSBwU3RyaW5nKTsNCisNCisvKioqKioqKioqKioqKioqKioqKmwxdV9mcy5oKioqKioqKioqKioqKioqKioqKioqLw0KK2V4dGVybiBCWVRFIHpJUl9sMXVfZnNfZ2V0X25vZl9hY3RpdmVfZnJfdGlja19mdW5jKFZPSUQpOw0KKw0KKy8qKioqKioqKioqKioqKioqKioqbDF1X2RjaC5oKioqKioqKioqKioqKioqKioqKioqLw0KK2V4dGVybiBCWVRFIHpJUl9sMXVfZGNoX2NoZWNrX2lkbGUoVk9JRCk7DQorLyoqKioqKioqKioqKioqKioqKipsMXVfZmNoLmgqKioqKioqKioqKioqKioqKioqKiovDQorZXh0ZXJuIEJZVEUgeklSX2wxdV9mYWNoX2NoZWNrX2lkbGUoVk9JRCk7DQorLyoqKioqKioqKioqKioqKioqKipsMXVfYmNoLmgqKioqKioqKioqKioqKioqKioqKiovDQorZXh0ZXJuIEJZVEUgeklSX2wxdV9iY2hfY2hlY2tfaWRsZShWT0lEKTsNCisvKioqKioqKioqKioqKioqKioqKmwxdV9jc3JjaC5oKioqKioqKioqKioqKioqKioqKioqLw0KK2V4dGVybiBCWVRFIHpJUl9sMXVfY3NyY2hfY2hlY2tfaWRsZShWT0lEKTsNCisNCisvKioqKioqKioqKioqKioqKioqKmwxdV9tb25faXJhdDEuaCoqKioqKioqKioqKioqKioqKioqKi8NCitleHRlcm4gVk9JRCB6SVJfbDF1X21vbl9pcmF0X2NoYW5nZV90aW1lc3RhbXBpbmdfdG9faWRsZShWT0lEKTsNCisNCisvKioqKioqKioqKioqKioqKioqKmwxdV9tZGIuaCoqKioqKioqKioqKioqKioqKioqKi8NCitleHRlcm4gIFZPSUQgeklSX2wxdV9tZGJfcmVzZXRfY2VsbF9kYXRhYmFzZShWT0lEKTsNCitleHRlcm4gIFZPSUQgeklSX2wxdV9tZGJfc2V0X2NlbGxfbGlzdF91YXJmY24oVF96SVJfQ0VMTF9MSVNUX0lEICBsaXN0X2lkLCAgICAgICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXT1JEICB1YXJmY24sICAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJZVEUgIGlkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQllURSAgbm9mX2NlbGxzKTsNCitleHRlcm4gIFZPSUQgeklSX2wxdV9tZGJfYWRkX2Fzc2lnbmVkX2NlbGwoVF96SVJfVVRSQU5fQ0VMTF9PTl9GUkVRICAqcF9jZWxsX2luZm8sIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVF96SVJfQ0VMTF9MSVNUX0lEIGxpc3RfaWQsICAgICAgICAgICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQllURSAgc3JjX2lkeCk7DQorZXh0ZXJuICBWT0lEIHpJUl9DcmVhdGVfTDFHX1RERF9DRUxMX01FQVNfUkVRX0VWKCBUX3pJUl9VVFJBTl9DVFJMX0RBVEEgICpwX3V0cmFuX2N0cmwgKTsNCitleHRlcm4gIFZPSUQgeklSX3NlbmRfTDFHX1RERF9DRUxMX01FQVNfUkVRX0VWKFRfeklSX0wxR19UZGRDZWxsTWVhc1JlcSAqcF9tc2dfcGFyYW0pOw0KK2V4dGVybiAgVk9JRCB6SVJfbDF1X21kYl9hZGRfbmNlbGxfcmVzdWx0KFRfeklSX0lyYXRVbWNyTWVhc1Jlc3VsdCAgKnBfdW1jcl9tZWFzX3Jlc3VsdCwgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX3pJUl9DRUxMX0xJU1RfSUQgKnBfbGlzdF9pZCk7DQorZXh0ZXJuICBWT0lEIHpJUl9sMXVfbWRiX3VwZGF0YV9uY2VsbF9ydW5uaW5nX2F2ZXJhZ2VfYnVmZmVycyhUX3pJUl9DRUxMX0xJU1RfSUQgIGxpc3RfaWQsICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRfeklSX1VUUkFOX0NUUkxfREFUQSAqcF91dHJhbl9jdHJsKTsNCitleHRlcm4gIFRfeklSX1VUUkFOX0NFTExfT05fRlJFUSAgKnpJUl9sMXVfbWRiX2dldF9uY2VsbF9kYXRhKFRfeklSX0NFTExfTElTVF9JRCAgbGlzdF9pZCwgXA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQllURSAgY2VsbF9pZHgpOw0KK2V4dGVybiAgVk9JRCB6SVJfbDF1X21kYl9jYWxjX25jZWxsX3JhdmcoVF96SVJfQ0VMTF9MSVNUX0lEICBsaXN0X2lkLCAgICAgICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJZVEUgIGNlbGxfaWR4LCAgICAgICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUX3pJUl9NREJfTUVBU19FTEVNRU5UICptZWFzX3Jlc3VsdCk7DQorZXh0ZXJuICBCWVRFIHpJUl9jb21wX3V0cmFuX2xpc3QoVF96SVJfVVRSQU5fQ0VMTFNfUEVSX0ZSRVEgICAgKnBfbmV3X3V0cmFuX25jZWxscywgICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVF96SVJfQ0VMTF9MSVNUX0lEICBsaXN0X2lkeCk7DQorZXh0ZXJuICBCWVRFIHpJUl9sMXVfbWRiX2dldF9jZWxsX251bSggVF96SVJfQ0VMTF9MSVNUX0lEICBsaXN0X2lkICk7DQorZXh0ZXJuICBXT1JEIHpJUl9sMXVfbWRiX2dldF91YXJmY24oVF96SVJfQ0VMTF9MSVNUX0lEICBsaXN0X2lkKTsNCitleHRlcm4gIEJZVEUgeklSX2wxdV9tZGJfZ2V0X3VhcmZjbl9pbmRleChUX3pJUl9DRUxMX0xJU1RfSUQgIGxpc3RfaWQpOw0KK2V4dGVybiBWT0lEIGwxbWRfZmlsbF91bXRzX3Jlc2VsX2RiKFRfeklSX01PTl9NRUFTX1JFU1VMVF9HU01fRUxFTUVOVCAqIHBfcmVzdWx0LCAgICBcDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQllURSBtYXhfY2VsbHNfdG9fcmVwb3J0LCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEV09SRCBhY3RpdmVfY2VsbF9iaXRtYXNrLCAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJZVEUgcmF2Z19zaXplKTsNCitleHRlcm4gdm9pZCBsMWdfaXJhdF9oYW5kbGVyX3JlcV9leCAoIFRfTDFHX0lSQVRfU0NFTkVfVFlQRSAgc2NlbmVfdHlwZSwgVF96SVJfSEFORExFUl9SRVFfVFlQRSByZXF1ZXN0X3R5cGUpOw0KK2V4dGVybiBCT09MIGwxZ19pcmF0X2hhbmRsZXJfY25mKFZPSUQpOw0KK2V4dGVybiBWT0lEIGwxbWRfdW10c19zZXRfaW52YWxpZF9zdGF0ZSAoY29uc3QgVF96SVJfSVJfR1NNX0JBTkRfTUFTSyBiYW5kX21hc2spOw0KK2V4dGVybiBEV09SRCB6VGRfU2VuZE1zZ1RvcGh5KERXT1JEIGR3TXNnSWQsIFBCWVRFIHBiTXNnRGF0YSwgV09SRCB3TXNnTGVuKTsNCisNCisjaWZkZWYgX1VTRV9QU00NCitleHRlcm4gRFdPUkQgekx0ZV9TZW5kTXNnVG9TaW1FcGh5KERXT1JEIGR3TXNnSWQsIFBCWVRFIHBiTXNnRGF0YSwgV09SRCB3TXNnTGVuKTsNCitleHRlcm4gVk9JRCB6TDFlX0lyYXRXYWtlVXBFcGh5KFZPSUQpOw0KK2V4dGVybiBCT09MIFBPV19nZXRfdGltZXN0YW1wX3N0YXR1cyhWT0lEKTsNCisNCisjaWYgZGVmaW5lZCAoUFNfUkFUX1RERCkNCitleHRlcm4gQk9PTCAgICB6TDF0X1Rhc2tJc0lkbGUoVk9JRCk7DQorZXh0ZXJuIFVJTlQzMiB6TDF0X1Rhc2tJc0lkbGVQcmludChWT0lEKTsNCisjZW5kaWYNCisNCisjaWYgZGVmaW5lZCAoUFNfUkFUX0xURSkNCitleHRlcm4gQk9PTCAgICB6TDFlX1Rhc2tJc0lkbGUoVk9JRCk7DQorZXh0ZXJuIFVJTlQzMiB6TDFlX1Rhc2tJc0lkbGVQcmludChWT0lEKTsNCisjZW5kaWYNCisNCisjaWYgZGVmaW5lZCAoUFNfUkFUX0ZERCkNCitleHRlcm4gQk9PTCAgICB6TDF3X1Rhc2tJc0lkbGUoVk9JRCk7DQorZXh0ZXJuIFVJTlQzMiB6TDF3X1Rhc2tJc0lkbGVQcmludChWT0lEKTsNCisjZW5kaWYNCisNCisjZW5kaWYgLyplbmRpZiBVU0VfUFNNKi8NCitleHRlcm4gVk9JRCB6TDFlX0lyYXRTdGFydEdhcFJlcShCWVRFIGJSYXQpOw0KK2V4dGVybiBWT0lEIHpMMWVfSXJhdFN0b3BHYXBSZXEoQllURSBiUmF0KTsNCitleHRlcm4gQllURSB6TDFlX0lyYXRTdG9wR2FwQ25mKEJZVEUgYlJhdCk7DQorZXh0ZXJuIFZPSUQgekwxZV90c3RhbXBfZ2V0X3RpbWVfZ3NtX2FudGVubmFfZnJlZSggVF96SVJfVERNQV9USU1FX0lORk8gKnBfZ3NtX3N0YXJ0dGltZSxUX3pJUl9URE1BX1RJTUVfSU5GTyAqcF90ZG1hX3RpbWVfcmVzdWx0KTsNCisjaWZkZWYgUFNfUkFUX0ZERA0KK2V4dGVybiBCT09MIHpMMXdfbWVhc19JcmF0U3RvcEdhcENuZihCWVRFIGJSYXQpOw0KK2V4dGVybiBWT0lEIHpMMXdfbWVhc19JcmF0U3RhcnRHYXBSZXEoQllURSBiUmF0KTsNCitleHRlcm4gVk9JRCB6TDF3X21lYXNfSXJhdFN0b3BHYXBSZXEoQllURSBiUmF0KTsNCitleHRlcm4gVk9JRCB6TDF3X2lyYXRfbWVhc19zdGFydChUX3pXX1BfaW50ZXJfZnJlcV9tZWFzX3JlcSAqcEludGVyTWVhc1JlcSk7DQorZXh0ZXJuIFZPSUQgekwxd19pcmF0X21lYXNfc3RvcCAoVk9JRCk7DQorZXh0ZXJuIFZPSUQgICAgekwxd19pcmF0X2dhcF9zdGFydChUX3pXX1BfaXJhdF9nYXBfY29uZmlnX3JlcSAqcEdhcENvbmZpZ1JlcSk7DQorZXh0ZXJuIFZPSUQgICAgekwxd19pcmF0X2dhcF9zdG9wKFZPSUQpOw0KKyNlbmRpZg0KK2V4dGVybiBWT0lEIHpMMWFfZ2V0X3RpbWVfZ3NtX2FudGVubmFfZnJlZShUX3pJUl9URE1BX1RJTUVfSU5GTyAqcF9nc21fc3RhcnR0aW1lLCBUX3pJUl9URE1BX1RJTUVfSU5GTyAqcF90ZG1hX3RpbWVfcmVzdWx0KTsNCisNCitleHRlcm4gQk9PTCBsMWdfYmNoX2J1c3lmbGcoVk9JRCk7Lyq6r8r9uabE3KO6sunRr0JDSCBDT8rHt/HVvNPDyeTGtQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICC3tbvY1rVUUlVFILHtyr7V/dTa1bzTw8nkxrUgIEZBTFNFILHtyr7Du9PQyrnTw8nkxrUqLw0KK2V4dGVybiBCWVRFICAgIHpBc19HZXRUV0xJbnN0SW5kZXgoVk9JRCk7ICANCitleHRlcm4gQllURSB6TDFlX2dzbV9Jc0NvbihWT0lEKTsNCisNCisjaWZkZWYgWl9TSU5HTEVBTlRFTk5BDQorZXh0ZXJuIEJZVEUgekFzX0dldE1pbkluZGV4KERXT1JEIGR3Qml0bWFwKTsNCitleHRlcm4gQllURSB6SVJfbDF1ZF90c3RhbXBfaXNfYW50ZW5uYV9yZWFkeV9mb3JfZ3NtKFRfeklSX1RETUFfVElNRV9JTkZPICpwX2dzbV9zdGFydHRpbWUsDQorICAgICAgICAgICAgICAgICAgICAgIFRfeklSX1RETUFfVElNRV9JTkZPICpwX2dzbV9lbmR0aW1lKTsNCitleHRlcm4gQllURSB6TDFlX3RzdGFtcF9pc19hbnRlbm5hX3JlYWR5X2Zvcl9nc20oVF96SVJfVERNQV9USU1FX0lORk8gKnBfZ3NtX3N0YXJ0dGltZSwgVF96SVJfVERNQV9USU1FX0lORk8gKnBfZ3NtX2VuZHRpbWUpOw0KK2V4dGVybiBCWVRFIHpMMWFfaXNfYW50ZW5uYV9yZWFkeV9mb3JfZ3NtKFRfeklSX1RETUFfVElNRV9JTkZPICpwX2dzbV9zdGFydHRpbWUsIFRfeklSX1RETUFfVElNRV9JTkZPICpwX2dzbV9lbmR0aW1lKTsNCisjZWxzZQ0KK2V4dGVybiBCWVRFIHpJUl9sMXVkX3RzdGFtcF9pc19hbnRlbm5hX3JlYWR5X2Zvcl9nc20oVF96SVJfVERNQV9USU1FX0lORk8gKnBfZ2ZuX2ZyZWVfdW50aWwpOw0KK2V4dGVybiBCWVRFIHpMMWVfdHN0YW1wX2lzX2FudGVubmFfcmVhZHlfZm9yX2dzbShUX3pJUl9URE1BX1RJTUVfSU5GTyAqcF9nZm5fZnJlZV91bnRpbCk7DQorZXh0ZXJuIEJZVEUgekwxYV9pc19hbnRlbm5hX3JlYWR5X2Zvcl9nc20oVF96SVJfVERNQV9USU1FX0lORk8gKnBfZ2ZuX2ZyZWVfdW50aWwpOw0KKyNlbmRpZg0KKyNlbmRpZg0KK2V4dGVybiBCWVRFIHpFdWNlcl9HZXRScmNTdGF0ZUZvclBTTShWT0lEKTsNCisNCitleHRlcm4gQk9PTCB6R3JyX0lzTGltaXRTZXJ2aWNlU3RhdGUoQllURSBiU3RrSWQpOw0KK2V4dGVybiBCT09MIHpHcnJfR2V0UmVzZWxTdGF0ZShCWVRFIGJTdGtJZCk7DQorZXh0ZXJuIEJPT0wgekdycl9Jc1Bvd2VyT2ZmUHJvYyhCWVRFIGJTdGtJZCk7DQorZXh0ZXJuIEJZVEUgICAgelVjc3JfSXNJblJlYWRQcmVEZWZQcm9jKFZPSUQpOw0KK2V4dGVybiBMT05HIHpMMWdfR2V0TGFzdFR4UHdyKEJZVEUgYlN0a0lkKTsNCisNCisjaWZkZWYgWl9TRU5EX1RPX1NJTVBIWQ0KK2V4dGVybiBVSU5UMzIgekwxZ19TZW5kTXNnVG9OZXQoVUlOVDMyIG1zZ19pZCwgY29uc3QgVk9JRCAqYnVmLCBVSU5UMTYgbXNnX2xlbiwgWk9TU19UQVNLX0lEIHRhc2tfaWQpOw0KK2V4dGVybiBVSU5UMzIgekwxZ19TZW5kTXNnVG9OZXRfU2VjKFVJTlQzMiBtc2dfaWQsIGNvbnN0IFZPSUQgKmJ1ZiwgVUlOVDE2IG1zZ19sZW4sIFpPU1NfVEFTS19JRCB0YXNrX2lkKTsNCisjZW5kaWYNCisNCisjZW5kaWYNCmRpZmYgLS1naXQgYS9wdWIvaW5jbHVkZS9wc19waHkvcHN3cGh5aW50LmggYi9wdWIvaW5jbHVkZS9wc19waHkvcHN3cGh5aW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTAyZjdiNQotLS0gL2Rldi9udWxsCisrKyBiL3B1Yi9pbmNsdWRlL3BzX3BoeS9wc3dwaHlpbnQuaApAQCAtMCwwICsxLDI0NTIgQEAKKyAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSoqKg0KKyAqsOaxvsv509AgKEMpMjAxMtbQ0MvNqNG2ucm33dPQz965q8u+DQorICogIMSjv+nD+yAgo7oNCisgKiAgzsS8/sP7ICCjunBzd3BoeWludC5oDQorICogIM7EvP6x6sq2o7oNCisgKiAgz+C52M7EvP6jug0KKyAqICDKtc/WuabE3KO6V0NETUEgcHO6zVdDRE1BIFBIWbXEvdO/2rao0uUNCisgKiAg1/fV3yAgICCjug0KKyAqICCw5rG+ICAgIKO6DQorICogIM3qs8nI1cbao7oNCisgKiAgxuTL/Mu1w/ejug0KKyovIA0KKw0KKyNpZm5kZWYgWl9QU19XUEhZX0lOVEVSRkFDRV9IDQorI2RlZmluZSBaX1BTX1dQSFlfSU5URVJGQUNFX0gNCisNCisNCisjaWZuZGVmIFpfU0VORF9UT19TSU1QSFkNCisjaW5jbHVkZSAicmFtX2NvbmZpZy5oIg0KKyNlbmRpZg0KKyAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyogICAgICAgICAgICAgICAgICAgICAgICDNt87EvP6w/LqsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisvKgkJCQlJQ1Ag1tC2z9e0zKzOu7ao0uUJCQkJCQkJCQkJCSovDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKyNkZWZpbmUgQ09ORklHX09QVF9TSVpFICAgICAgICgxKSAgICAvKmZvciBzaXplIG9wdGltaXplLCBpZiBmb3VuZCBzb21lIGV4Y2VwdGlvbiBwbGVhc2UgZGlzYWJsZSBpdCovDQorDQorLyogUEhZX0NQVSAtPiBQU19DUFUgSUNQIFNUQVVUUyovDQorI2RlZmluZSBQSFlfUFNfRlJBTUVfSUNQX01BU0sJCSAgICAgICAoRFdPUkQpMHgwMDAwMDAwMQ0KKyNkZWZpbmUgUEhZX1BTX1dBS0VVUF9JQ1BfTUFTSwkJKERXT1JEKTB4MDAwMDAwMDINCisNCisvKiBQU19DUFUgLT4gUEhZX0NQVSBJQ1AgU1RBVVRTKi8NCisjZGVmaW5lIFBTX1BIWV9VUEFfREFUQV9JQ1BfTUFTSwkgICAgICAgKERXT1JEKTB4MDAwMDAwMDENCisjZGVmaW5lIFBTX1BIWV9XQUtFVVBfSUNQX01BU0sJCShEV09SRCkweDAwMDAwMDAyDQorDQorIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorKiAgICAgICAgICAgICAgICAgICAgICAgICDIq77Wuuq2qNLlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KKw0KKw0KKy8qc3RhcnQ60KHH+MvRy/eyv7fWuurWtbao0uUqLw0KKyNkZWZpbmUgWl9XX1BfTUFYX05PX09GX0ZSRVFTQ0FOX0ZSRVEgICAgICAgICAgICAgICAgKFdPUkQpNjQgICAvKtDo0qrJqMPotcTX7rTzxrW2zsr9xL8qLw0KKyNkZWZpbmUgWl9XX1BfTUFYX05PX09GX1JTU0lfUkVTVUxUUyAgICAgICAgICAgICAgICAgKFdPUkQpMzIgICAvKsmoxrXJz7GotcTX7rTzxrW148r9xL8qLw0KKyNkZWZpbmUgWl9XX1BfTUFYX05PX09GX1NFQVJDSF9SRVNVTFRTICAgICAgICAgICAgICAgKFdPUkQpOCAgICAvKtChx/jL0cv3yc+xqLXE1+6089Chx/jK/cS/Ki8NCisNCisjZGVmaW5lIFpfV19QX0NFTExTUkhUWVBFX1NUUk9OR0VTVCAgICAgICAgICAgICAgICAgIChXT1JEKTAgICAgLyq3tbvY1ri2qMa1teO1xNfux7/Qocf4Ki8NCisjZGVmaW5lIFpfV19QX0NFTExTRUFSQ0hUWVBFX0JMSU5EICAgICAgICAgICAgICAgICAgIChXT1JEKTEgICAgLyq3tbvY1ri2qMa1teO1xNChx/jB0LHtKi8NCisjZGVmaW5lIFpfV19QX0NFTExTRUFSQ0hUWVBFX1NQRUMgICAgICAgICAgICAgICAgICAgIChXT1JEKTIgICAgLyq3tbvY1ri2qFByaW1TcmO1xNChx/gqLw0KKw0KKw0KKy8qyejWw1fO78DtsuPKx7fx1vfEo8q9Ki8NCisjZGVmaW5lIFpfV19QX0lSQVRfTU9ERV9TTEFWRSAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTAgICAgLyrJ6NbDzqq4qMSjyr0qLw0KKyNkZWZpbmUgWl9XX1BfSVJBVF9NT0RFX01BU1RFUiAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMSAgICAvKsno1sPOqtb3xKPKvSovDQorDQorLypGRETGtbbOusW2qNLlKi8NCisjZGVmaW5lIFpfV19QX0JBTkRfRkRESSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTENCisjZGVmaW5lIFpfV19QX0JBTkRfRkRESUkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTINCisjZGVmaW5lIFpfV19QX0JBTkRfRkRESUlJICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTMNCisjZGVmaW5lIFpfV19QX0JBTkRfRkRESVYgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTQNCisjZGVmaW5lIFpfV19QX0JBTkRfRkREViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTUNCisjZGVmaW5lIFpfV19QX0JBTkRfRkREVkkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTYNCisjZGVmaW5lIFpfV19QX0JBTkRfRkREVklJICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTcNCisjZGVmaW5lIFpfV19QX0JBTkRfRkREVklJSSAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTgNCisjZGVmaW5lIFpfV19QX0JBTkRfRkRESVggICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTkNCisjZGVmaW5lIFpfV19QX0JBTkRfRkREWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTEwDQorI2RlZmluZSBaX1dfUF9CQU5EX0ZERFhJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxMQ0KKyNkZWZpbmUgWl9XX1BfQkFORF9GRERYSUkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMTINCisjZGVmaW5lIFpfV19QX0JBTkRfRkREWElJSSAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTEzDQorI2RlZmluZSBaX1dfUF9CQU5EX0ZERFhJViAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxNA0KKyNkZWZpbmUgWl9XX1BfQkFORF9GRERYSVggICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMTUNCisjZGVmaW5lIFpfV19QX0JBTkRfRkREWFggICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTE2DQorI2RlZmluZSBaX1dfUF9CQU5EX0ZERFhYSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxNw0KKy8qZW5kINChx/jL0cv3sr+31rrq1rW2qNLlKi8NCisNCisvKnN0YXJ0Os+1zbPQxc+isr+31rrq1rW2qNLlKi8NCisjZGVmaW5lIFpfV19QX01BWF9OVU1fT0ZfQkNIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTggICAgICANCisjZGVmaW5lIFpfV19QX01BWF9OT19PRl9TSUJfT0ZGUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxNiAgICAgLyrPtc2z0MXPosar0sbX7rTzyv3X6bj2yv0qLw0KKyNkZWZpbmUgWl9XX1BfTUFYX05PX09GX1NJQl9TQ0hFRFVMRVMgICAgICAgICAgICAgICAgICAoV09SRCkzMCAgICAvKtfutPO197bI0MXPorj2yv0qLw0KKy8qz7XNs9DFz6K/6cDg0M0qLw0KKyNkZWZpbmUgWl9XX1BfVVJSQ19NSUIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMA0KKyNkZWZpbmUgWl9XX1BfVVJSQ19TSUIxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMQ0KKyNkZWZpbmUgWl9XX1BfVVJSQ19TSUIyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMg0KKyNkZWZpbmUgWl9XX1BfVVJSQ19TSUIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMw0KKyNkZWZpbmUgWl9XX1BfVVJSQ19TSUI0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNA0KKyNkZWZpbmUgWl9XX1BfVVJSQ19TSUI1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNQ0KKyNkZWZpbmUgWl9XX1BfVVJSQ19TSUI2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNg0KKyNkZWZpbmUgWl9XX1BfVVJSQ19TSUI3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNw0KKyNkZWZpbmUgWl9XX1BfVVJSQ19TSUIxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMTENCisjZGVmaW5lIFpfV19QX1VSUkNfU0lCMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTEyDQorI2RlZmluZSBaX1dfUF9VUlJDX1NJQjE0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxOA0KKyNkZWZpbmUgWl9XX1BfVVJSQ19TSUIxNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMTkNCisjZGVmaW5lIFpfV19QX1VSUkNfU0lCMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTIzDQorI2RlZmluZSBaX1dfUF9VUlJDX1NJQjE4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkyNg0KKyNkZWZpbmUgWl9XX1BfVVJSQ19TQjEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMjcNCisjZGVmaW5lIFpfV19QX1VSUkNfU0IyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTI4DQorI2RlZmluZSBaX1dfUF9VUlJDX1NJQjVCSVMgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkzMA0KKyNkZWZpbmUgWl9XX1BfVVJSQ19TSUJfVFlQRV9FWFRFTlNJT05fVFlQRSAgICAgICAgICAgKFdPUkQpMzENCisjZGVmaW5lIFpfV19QX1VSUkNfU0lCMTFCSVMgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTMyDQorI2RlZmluZSBaX1dfUF9VUlJDX1NJQjE1QklTICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkzMw0KKy8qU0lCLVR5cGVFeHQyKi8NCisjZGVmaW5lIFpfV19QX1VSUkNfU0lCMTkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTQwDQorI2RlZmluZSBaX1dfUF9VUlJDX1NJQjIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk0Mg0KKw0KKyNkZWZpbmUgWl9XX1BfQkNIX1JFUV9PTkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMCAgICAvKsfrx/PO78DtsuPS1Na4tqi3vcq9tsFiY2gqLw0KKyNkZWZpbmUgWl9XX1BfQkNIX1JFUV9BTEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMSAgICAvKsfrx/PO78DtsuPBrND4tsFiY2gqLw0KKw0KKyNkZWZpbmUgWl9XX1BfU1RURF9OT1RVU0VEICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMCAgICAvKrK7yrnTw1NUVEQqLw0KKyNkZWZpbmUgWl9XX1BfU1RURF9VU0VEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMSAgICAvKsq508NTVFREKi8NCisjZGVmaW5lIFpfV19QX1NUVERfVU5OT1RJRlkgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTIgICAgLyrOtNaqo6y8tHBzsrvIt8jPtbHHsNChx/jKx7fxyrnTw1NUVEQqLw0KKy8qZW5kOs+1zbPQxc+isr+31rrq1rW2qNLlKi8NCisNCisvKnN0YXJ0OtfK1LSyv7fWuurWtbao0uUqLw0KKyNkZWZpbmUgWl9XX1BfTUFYX1VMX1RSQ0hfTlVNICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTggDQorI2RlZmluZSBaX1dfUF9NQVhfRExfVFJDSF9OVU0gICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpOA0KKyNkZWZpbmUgWl9XX1BfTUFYX1VMX1RGX05VTSAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTMyDQorI2RlZmluZSBaX1dfUF9NQVhfRExfVEZfTlVNICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNjQNCisjZGVmaW5lIFpfV19QX01BWF9VTF9URkNfTlVNICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk2NA0KKyNkZWZpbmUgWl9XX1BfTUFYX0RMX1RGQ19OVU0gICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTEyOA0KKyNkZWZpbmUgWl9XX1BfTUFYX05PX09GX1JMICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTgvKtfutPNSTMr9xL8qLw0KKyNkZWZpbmUgWl9XX1BfTUFYX0VEQ0hfTk9fT0ZfUkwgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTQNCisjZGVmaW5lIFpfV19QX01BWF9OT19PRl9EUENIUyAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk4DQorI2RlZmluZSBaX1dfUF9NQVhfSF9QUk9DRVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpOA0KKyNkZWZpbmUgWl9XX1BfTUFYX0hTX1NDQ0hfQ09ERVMgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTQNCisjZGVmaW5lIFpfV19QX01BWF9SRUZfRVRGQ0kgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk4DQorI2RlZmluZSBaX1dfUF9NQVhfSFNDQ0hMRVNTX1RGU19OVU0gICAgICAgICAgICAgICAgICAgKFdPUkQpNA0KKw0KKyNkZWZpbmUgWl9XX1BfVFRJXzJNUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMQ0KKyNkZWZpbmUgWl9XX1BfVFRJXzEwTVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMg0KKyNkZWZpbmUgWl9XX1BfVFRJXzIwTVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMw0KKyNkZWZpbmUgWl9XX1BfVFRJXzQwTVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNA0KKyNkZWZpbmUgWl9XX1BfVFRJXzgwTVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNQ0KKw0KKyNkZWZpbmUgWl9XX0FDVF9USU1FX0lNTUVESUFURUxZICAgICAgICAgIChXT1JEKTI1Ni8qvKS77sqxvOTKx8GivLS8pLvuKi8NCisvKmVuZCDXytS0sr+31rrq1rW2qNLlKi8NCisNCisvKnN0YXJ0suLBv8/gudi66rao0uUqLw0KKyNkZWZpbmUgIFpfV19QX01BWF9DRUxMX05VTSAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTMyICAgICAgICAgLyrNrMa10uzGtdfutPPWp7PW0KHH+Mr9xL8qLw0KKyNkZWZpbmUgIFpfV19QX01BWF9JTlRSQUZSRVFfTlVNICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTEgICAgICAgICAgLyrNrMa1xrW148r9xL+jrLK7v7zCx7Xatv7Jz9DQxrW148qxuMPWtc6qMSovDQorI2RlZmluZSAgWl9XX1BfTUFYX0lOVEVSRlJFUV9OVU0gICAgICAgICAgICAgICAgICAgICAgKFdPUkQpOCAgICAgICAgIC8q0uzGtcXk1sPGtbXjyv3EvyovDQorI2RlZmluZSAgWl9XX1BfTUFYX0JMSU5EX0lOVEVSRlJFUV9OVU0gICAgICAgICAgICAgICAgKFdPUkQpMTYgICAgICAgICAgLyrS7Ma1w6TGtbXjtcTGtbXjyv3EvyovDQorI2RlZmluZSAgWl9XX1BfTUFYX0JMSU5EX0lOVEVSRlJFUV9DRUxMX05VTSAgICAgICAgICAgKFdPUkQpMyAgICAgICAgICAvKsOkxrW148/C0KHH+Mr9xL8qLw0KKyNkZWZpbmUgIFpfV19QX01BWF9DTV9OVU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTYgICAgICAgICAgLyrRucv1xKPKvcXk1sPP7sr9xL8qLw0KKyNkZWZpbmUgIFpfV19QX01BWF9GUkFNRV9HQVBfTlVNICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTIgICAgICAgICAgLyrSu7j21qHW0NfutPNHQVDK/cS/Ki8NCisvKmVuZLLiwb/P4LnYuuq2qNLlKi8NCisNCisvKnN0YXJ0suO2/s/gudi66rao0uUqLw0KKy8qzt7P39fK1LTF5NbDz+C52LrqtqjS5SovDQorDQorI2RlZmluZSAgICAgWl9XX1BfTUFYX1VMX0ZSRVFVRU5DWV9OVU0gICAgICAgICAgICAgICAgKFdPUkQpMg0KKyNkZWZpbmUgICAgIFpfV19QX01BWF9ETF9GUkVRVUVOQ1lfTlVNICAgICAgICAgICAgICAgIChXT1JEKTINCisNCisvKrSryuTQxbXAwODQzSy99tPD09q6zc7vwO2y47XEvdO/2tbQKi8NCisjZGVmaW5lICAgICBaX1dfUF9QQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkwDQorI2RlZmluZSAgICAgWl9XX1BfRkFDSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMQ0KKyNkZWZpbmUgICAgIFpfV19QX0RMX0RDSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTINCisjZGVmaW5lICAgICBaX1dfUF9SQUNIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkzDQorI2RlZmluZSAgICAgWl9XX1BfVUxfRENIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpNA0KKw0KKy8qVVBBz+C52LLOyv0qLw0KKy8vI2RlZmluZSAgICAgWl9XX1BfTUFYX1JFRl9FVEZDSV9OVU0gICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTgvKlpfV19QX01BWF9SRUZfRVRGQ0kqLw0KKyNkZWZpbmUgICAgIFpfV19QX01BWF9SR19OVU0gICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTQNCisNCisvKsr9vt2907/atPPQoSovDQorI2RlZmluZSAgICAgWl9XX1BfTUFYX05PX09GX1VMX0JZVEVTICAgICAgICAgICAgICAgICAgKFdPUkQpMTE2OA0KKw0KKyNkZWZpbmUgICAgIFpfV19QX01BWF9OT19PRl9ETF9CWVRFUyAgICAgICAgICAgICAgICAgIChXT1JEKTExNjgNCisjZGVmaW5lICAgICBaX1dfUF9NQVhfTk9fT0ZfSFNEUEFfQllURVMgICAgICAgICAgICAgICAoV09SRCk1Mjc0DQorDQorI2RlZmluZSAgICAgWl9XX1BfTUFYX05PX09GX0hTVVBBX0JZVEVTICAgICAgICAgICAgICAgKFdPUkQpMjg3Ng0KKw0KKw0KKyNkZWZpbmUgICAgIFpfV19QX01BWF9FVEZDSV9OVU0gICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTEyOA0KKyNkZWZpbmUgICAgIFpfV19QX01BWF9OVFJfTlVNICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk4DQorDQorLypyYWNoz+C52CovDQorI2RlZmluZSAgICAgWl9XX1BfUkFDSF9BQ0NFU1NfQUNLICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMA0KKyNkZWZpbmUgICAgIFpfV19QX1JBQ0hfQUNDRVNTX05BQ0sgICAgICAgICAgICAgICAgICAgIChXT1JEKTENCisjZGVmaW5lICAgICBaX1dfUF9SQUNIX0FDQ0VTU19OT19BQ0sgICAgICAgICAgICAgICAgICAoV09SRCkyDQorDQorLyrPwtDQyv2+3cDg0M0qLw0KKyNkZWZpbmUgICAgICAgIFpfV19QX1BDSF9GQUNIX0RDSF9EQVRBICAgICAgICAgICAgICAgIChXT1JEKTANCisjZGVmaW5lICAgICAgICBaX1dfUF9EUEFfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkxDQorLyplbmSy47b+z+C52LrqtqjS5SovDQorDQorDQorDQorLyp31vfEo8GsvdPMrChGQUNIIKGiRENIKc7vwO2y48nPsahHQVDQ6NKqv9uz/bXEyeTGtbGju6S85Lj0taXOu0NISVAsIDc1MjCw5rG+zbfOsrfWsfC/27P9MzBjaGlwcyg3LjgxMjV1cykgNjYwY2hpcHMoMTcxLjg3NXVzKS4gKi8NCisNCisjZGVmaW5lICAgWl9XX1BfTUVBU19EQ0hHQVBfU1RBUlRfT0ZGICAgICAgICAgICAgICAgICAoV09SRCkzMA0KKyNkZWZpbmUgICBaX1dfUF9NRUFTX0RDSEdBUF9UQUlMX09GRiAgICAgICAgICAgICAgICAgIChXT1JEKTY2MA0KKw0KKw0KKyNkZWZpbmUgWl9aV1BDR19WQUxGR19OVU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTgNCisjZGVmaW5lIFpfWldQQ0dfUEFSQU1fTlVNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkyNQ0KKw0KKyAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyogICAgICAgICAgICAgICAgICAgICAgICAgyKu+1sr9vt3A4NDNtqjS5SAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorDQorDQorIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICogICAgICAgICAgICAgICAgICAgICAgICAg0KHH+MvRy/fIq77Wyv2+3cDg0M22qNLlIHN0YXJ0ICAgICAgICAgICAgICAgICAgICAqDQorID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgUlJDLT5QSFkNCisgICAgysK8/qO6UF9XX0ZSRVFVRU5DWV9TQ0FOX1JFUQ0KKyAgICC5psTcOg0KKyAgICAgICAgv8nE3LP2z9a1xNTas/XKvNe0zKyjrElETEXMrKOsQ0VMTF9QQ0jMrKOsQ0VMTF9VUkHMrKOsTDG4+b7dz/vPotbQDQorICAgICAgICDQr7T4tcTGtbXju/LGtbbO0MXPor340NDJqMa1o6zK18/I1rTQ0Ma1ts7JqMa1o6zWrrrz1Nm9q8a1ts7JqMPoveENCisgICAgICAgILn7xrW149Pr0K3S6dW7z8K3orXEwOvJosa1teO3xdTa0rvG8L340NDA68mixrW148moxrUNCisgICAgveG5uToNCisgICAgICAgIFRfeldfUF9mcmVxdWVuY3lfc2Nhbl9yZXENCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KKyB0eXBlZGVmIHN0cnVjdHsgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RnJlcVN0YXJ0UmFuZ2U7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXFFbmRSYW5nZTsgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdCYW5kSW5kOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCit9VF96V19QX2ZyZXF1ZW5jeV9yYW5nZTsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxUmFuZ2VOdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlcU51bTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3V29ubHlGbGc7IC8qtbHHsMrHt/HKx1e1pcSjo6x3V29ubHlGbGc9Mc6qtaXEo6Ost/HU8s6qtuDEoyovDQorICAgIFRfeldfUF9mcmVxdWVuY3lfcmFuZ2UgICAgICAgICAgICAgICAgICAgICAgYXRGcmVxdWVuY3lSYW5nZVtaX1dfUF9NQVhfTk9fT0ZfRlJFUVNDQU5fRlJFUV07DQorfVRfeldfUF9mcmVxdWVuY3lfc2Nhbl9yZXE7DQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgUlJDLT5QSFkNCisgICAgysK8/qO6UF9XX0FCT1JUX0ZSRVFfU0NBTl9SRVENCisgICAguabE3DoNCisgICAgICAgIM2j1rlMMca1wsrJqMPox+vH8w0KKyAgICC94bm5Og0KKyAgICAgICAgVF96V19QX2Fib3J0X2ZyZXF1ZW5jeV9zY2FuX3JlcSy/1b3hubkNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgICBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1BfYWJvcnRfZnJlcXVlbmN5X3NjYW5fcmVxOw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgIFBIWS0+TDFXDQorICAgIMrCvP6julBfQUJPUlRfRlJFUV9TQ0FOX0NORg0KKyAgICC5psTcOg0KKyAgICAgICAgzaPWuUwxxrXCysmow+jIt8jPDQorICAgIL3hubk6DQorICAgICAgICBUX3pXX1BfYWJvcnRfZnJlcXVlbmN5X3NjYW5fY25mLL/VveG5uQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiAgIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9hYm9ydF9mcmVxdWVuY3lfc2Nhbl9jbmY7DQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgUEhZLT5SUkMNCisgICAgysK8/qO6UF9GUkVRVUVOQ1lfU0NBTl9JTkQNCisgICAguabE3DoNCisgICAgICAgIEwxzeqzycmoxrW686Oszai5/c/7z6JQX0ZSRVFVRU5DWV9TQ0FOX0lORMnPsajJqMa1veG5+yzO78DtsuO4+b7dDQorICAgICAgICBSU1NJsuLBv9a1vLBQU0NIz+C52MTcwb+21Ma1wsq9+NDQxcXQ8qOs1+6/ycTc16TB9LXExrXCyrfF1NrK1867o6wNCisgICAgICAgINLAtM7A4M3Go6yyu8Tc16TB9LXExrXCyrK7yc+xqKGjDQorICAgICAgICDI57n7yajGtb3hufuzrLn9MzKjrM7vwO2y472rx7AzMse/xrW149f3zqq94bn7yc+xqNCt0unVu6GjDQorICAgIL3hubk6DQorICAgICAgICBUX3pXX1BfZnJlcXVlbmN5X3NjYW5faW5kDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisgdHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXF1ZW5jeTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgfVRfeldfUF9zY2FuX3Jlc3VsdDsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTY2FuUmx0TnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZXFOdW07IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOyAgICAgDQorICAgIFRfeldfUF9zY2FuX3Jlc3VsdCAgICAgICAgICAgICAgICAgICAgICAgICAgYXRTY2FuUmVzdWx0W1pfV19QX01BWF9OT19PRl9SU1NJX1JFU1VMVFNdOyAvKs7vwO2y472ryajGtb3hufvHsDMyx7/Jz7GoKi8gDQorfVRfeldfUF9mcmVxdWVuY3lfc2Nhbl9pbmQ7IA0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgIFJSQy0+UEhZDQorICAgIMrCvP6julBfQ0VMTF9TRUFSQ0hfUkVRDQorICAgILmmxNw6DQorICAgICAgICAgICAg1ri2qMa1tePJz7Lp1dLWuLaoyv3Ev9Chx/iho8jnufu1scew0tHT0Lf+zvHQocf4o6xMMdDo0qrNrMqxsaOz1rf+zvHQocf4zayyvaOsDQorICAgICAgICDS1LywvdPK1dGwuvS1yKGjyOe5+8rVtb3RsLr0tcjH6b/20OjSqtbQts9MMdChx/jL0cv3o6zW0LbPuvNMMbK71NnP8tCt0unVu8nPsajS0Q0KKyAgICAgICAgt6LP1tChx/jQxc+ioaPI57n7bnVtX29mX2NlbGxfaWTIoTCjrMfrx/NMMdTa1ri2qMa1tePJz8Oky9HQocf4o6zC+tfjobDDxc/eobG1xA0KKyAgICAgICAgbnVtX29mX3Jlc3VsdLj20KHH+MnPsaiho8jnuftudW1fb2ZfY2VsbF9pZMiht8cw1rWjrMfrx/NMMdTa1ri2qGNlbGxfcGFyYW1ldGVyX2lktcQNCisgICAgICAgINChx/jB0LHt1tDL0cv3wvrX46Gww8XP3qGxtcTQocf4yc+xqKGjxuTW0LXEobAgw8XP3qGxINPJzu/A7bLjuPm+3dDUxNzIt7aoDQorICAgIL3hubk6DQorICAgICAgICBUX3pXX1BfY2VsbF9zZWFyY2hfcmVxDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHhEaXZlcnNpdHlJbmQ7IC8qss68+7rqtqjS5Sy99rWxd1NlYXJjaFR5cGXOqta4tqjL0cv3yrHT0NCnKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsNCit9VF96V19QX2NlbGxzcmhfaW5mbzsgDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VxTnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxdWVuY3k7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlYXJjaFR5cGU7ICAgLyqyzrz7uuq2qNLlKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZSZXN1bHQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mQ2VsbDsNCisgICAgVF96V19QX2NlbGxzcmhfaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICBhdENlbGxTcmhJbmZvW1pfV19QX01BWF9OT19PRl9TRUFSQ0hfUkVTVUxUU107DQorfVRfeldfUF9jZWxsX3NlYXJjaF9yZXE7IA0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgIFBIWS0+UlJDDQorICAgIMrCvP6julBfQUJPUlRfQ0VMTF9TRUFSQ0hfUkVRDQorICAgILmmxNw6DQorICAgICAgICDNo9a5zu/A7bLjtcRjZWxsIHNlYXJjaKGjDQorICAgIL3hubk6DQorICAgICAgICBUX3pXX1BfYWJvcnRfY2VsbF9zZWFyY2hfcmVxLL/VveG5uQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiAgICBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1BfYWJvcnRfY2VsbF9zZWFyY2hfcmVxOw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgIFBIWS0+TDFXDQorICAgIMrCvP6julBfQUJPUlRfQ0VMTF9TRUFSQ0hfQ05GDQorICAgILmmxNw6DQorICAgICAgICDNo9a5zu/A7bLjtcRjZWxsIHNlYXJjaMi3yM+how0KKyAgICC94bm5Og0KKyAgICAgICAgVF96V19QX2Fib3J0X2NlbGxfc2VhcmNoX2NuZiy/1b3hubkNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgICAgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX2Fib3J0X2NlbGxfc2VhcmNoX2NuZjsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBQSFktPlJSQw0KKyAgICDKwrz+o7pQX0NFTExfU0VBUkNIX0lORA0KKyAgICC5psTcOg0KKyAgICAgICAgyc+xqNa4tqjGtbXjyc/C+tfjzu/A7bLj1+61zcPFz97WtbXEo6jWuLaoo6nQocf4suLBv73hufuhow0KKyAgICC94bm5Og0KKyAgICAgICAgVF96V19QX2NlbGxfc2VhcmNoX2luZA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltU3JjOyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3BpY2hSc2NwOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDcGljaEVjTm87ICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX2NlbGxfcGFyYW1zOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VxTnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxdWVuY3k7ICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZGb3VuZENlbGxzOyAgICANCisgICAgVF96V19QX2NlbGxfcGFyYW1zICAgICAgICAgICAgICAgICAgICAgICAgICBhdENlbGxbWl9XX1BfTUFYX05PX09GX1NFQVJDSF9SRVNVTFRTXTsgICAgICAgICAgICAgICAgICAgDQorfVRfeldfUF9jZWxsX3NlYXJjaF9pbmQ7IA0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgIFJSQy0+UEhZDQorICAgIMrCvP6julBfQkNIX09QRU5fUkVRDQorICAgILmmxNw6DQorICAgICAgICC4w8/7z6LU2rfHRENIzKy74c/Ct6IstPK/qkJDSLbBz7XNs9DFz6Isv9XP0MysLFBDSMysv8nS1LbByKG3/s7x0KHH+A0KKyAgICAgICAgus3P4MHa0KHH+M+1zbPQxc+io6xGQUNI1rvE3LbByKG3/s7x0KHH+M+1zbPQxc+ioaO4w8/7z6LO3s/s06bP+8+ioaMNCisgICAgveG5uToNCisgICAgICAgIFRfelBfVERfYmNoX29wZW5fcmVxDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdA0KK3sgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2liVHlwZTsgICAvKrLOvPu66rao0uUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWdDb3VudDsvKiBTSULP+8+itcS31rbOyv3Ev6Ost7bOpzEuLjE2Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2liUmVwOyAvKiBTSULW2Li01tzG2iovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NpYlBvczsvKiBTSUK12tK7uPa31rbOtcTOu9bDKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2liT2ZmW1pfV19QX01BWF9OT19PRl9TSUJfT0ZGU107DQorfSBUX3NpYl9zY2hlZHVsZV9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1R5cGU7ICAgICAgLyqyzrz7uuq2qNLlKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHhEaXZNb2RlOyAvKrLOvPu66rao0uUqLyAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXF1ZW5jeTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2VsbFJlc2VsZWN0RmxnOy8qd0NlbGxSZXNlbGVjdEZsZz0xse3KvrTLtM62wVNJQsrH0vLW2NGht6LG8KGjzqowse3KvrfH0KHH+NbY0aHS/cbwKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZTY2hlZHVsZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgVF9zaWJfc2NoZWR1bGVfaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICB0U2liU2NoZWR1bGVJbmZvW1pfV19QX01BWF9OT19PRl9TSUJfU0NIRURVTEVTXTsNCit9VF96V19QX2JjaF9vcGVuX3JlcTsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBQSFktPlJSQw0KKyAgICDKwrz+o7pQX0JDSF9JTkQNCisgICAguabE3DoNCisgICAgICAgILTyv6pCQ0i680wx1vC/6cnPsajPtc2z0MXPota4yr4sIL/Vz/vPoqOs0K3S6dW7ytW1vbTL1rjKvrrzyKUNCisgICAgICAgILnMtqhCdWZmZXK2wc+1zbPQxc+iyv2+3Q0KKyAgICC94bm5Og0KKyAgICAgICAgVF96V19QX0JjaF9CdWZmZXINCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQoreyAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZm47DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NyY0NoZWNrOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxdWVuY3k7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaW1TcmM7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NmbkRlY29kZVJsdDsgLyowOsqnsNyjrDGzybmmKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdEYXRhQXJlYVtaX1dfUF9NQVhfTlVNX09GX0JDSCoyXTsNCit9VF96V19QX0JjaF9JbmQ7IA0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgIFJSQy0+UEhZDQorICAgIMrCvP6julBfQkNIX1JFTEVBU0VfUkVRDQorICAgILmmxNw6DQorICAgICAgICDQrdLp1bvH68fzTDHNo9a5vdPK1c+1zbPQxc+io6zKzbfFQkNIDQorICAgIL3hubk6DQorICAgICAgICBUX3pXX1BfYmNoX3JlbGVhc2VfcmVxDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9iY2hfcmVsZWFzZV9yZXE7DQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgUEhZLT5MMVcNCisgICAgysK8/qO6UF9CQ0hfUkVMRUFTRV9DTkYNCisgICAguabE3DoNCisgICAgICAgIEwxyLfIz9Ct0unVu82j1rm908rVz7XNs9DFz6INCisgICAgveG5uToNCisgICAgICAgIFRfeldfUF9iY2hfcmVsZWFzZV9jbmYNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX2JjaF9yZWxlYXNlX2NuZjsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBSUkMtPlBIWQ0KKyAgICDKwrz+o7pQX0NBTVBPTl9BX0NFTExfUkVRDQorICAgILmmxNw6DQorICAgICAgICBSUkPU2s+1zbPQxc+itsHIoc3qs8m686OsyM/OqtChx/i/ydekwfSjrLeiy820y8/7z6LNqNaqDQorICAgICAgICDO78DtsuO0y9Chx/jOqrf+zvHQocf4oaMNCisgICAgveG5uToNCisgICAgICAgIFRfeldfUF9jYW1wX29uX2FfY2VsbF9yZXENCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1VsRnJlcXVlbmN5Ow0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEbEZyZXF1ZW5jeTsgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaW1TcmM7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByZURsRnJlcXVlbmN5Ow0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1BfY2FtcF9vbl9hX2NlbGxfcmVxOyANCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBQSFktPkwxVw0KKyAgICDKwrz+o7pQX0NBTVBPTl9BX0NFTExfQ05GDQorICAgILmmxNw6DQorICAgICAgICC117LjyLfIz9ekwfTQocf4oaMNCisgICAgveG5uToNCisgICAgICAgIFRfeldfUF9jYW1wX29uX2FfY2VsbF9jbmYNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9jYW1wX29uX2FfY2VsbF9jbmY7IA0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgIFJSQy0+UEhZDQorICAgIMrCvP6julBfU0VUX0lSQVRfTU9ERV9SRVENCisgICAguabE3DoNCisgICAgICAgINCt0unVu82o1qrO78DtsuPEo8q9wODQzaOsysdGREQgbW9kZby0RkREzqrW98Sjyr2jrA0KKyAgICAgICAgu/LV37K7ysdGREQgbW9kZby0RkREzqq4qKGjsruy2df3yeTGtaGjDQorICAgIL3hubk6DQorICAgICAgICBUX3pXX1Bfc2V0X2lyYXRfbW9kZV9SZXENCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TW9kZVR5cGVzOyAvKjAtt8fW96OsMS3W98Sjo6yyzrz7uuq2qNLlKi8gICAgICAgDQorfVRfeldfUF9zZXRfaXJhdF9tb2RlX1JlcTsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBSUkMtPlBIWQ0KKyAgICDKwrz+o7pQX1JFU0VUX1JFUQ0KKyAgICC5psTcOg0KKyAgICAgICAg0K3S6dW7zajWqs7vwO2y47i0zrsNCisgICAgveG5uToNCisgICAgICAgIFRfeldfUF9SZXNldF9yZXENCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9IFRfeldfUF9SZXNldF9yZXE7DQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgUEhZLT5SUkMNCisgICAgysK8/qO6UF9SRVNFVF9DTkYNCisgICAguabE3DoNCisgICAgICAgIM7vwO2y482o1qrQrdLp1bvKzbfFy/nT0NfK1LS94cr4DQorICAgIL3hubk6DQorICAgICAgICBUX3pXX1BfUmVzZXRfY25mDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9yZXNldF9jbmY7DQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgUlJDLT5QSFkNCisgICAgysK8/qO6UF9XX1JFTF9SRVENCisgICAguabE3DoNCisgICAgICAgIM7vwO2y48rNt8XL+dPQ0K3S6dW7z8K3orXE0rXO8cfrx/O8sMnkxrWhow0KKyAgICC94bm5Og0KKyAgICAgICAgVF96V19QX3JlbGVhc2VfcmVxDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfSBUX3pXX1BfcmVsZWFzZV9yZXE7DQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgUEhZLT5SUkMNCisgICAgysK8/qO6UF9XX1JFTF9DTkYNCisgICAguabE3DoNCisgICAgICAgIM7vwO2y482o1qrQrdLp1bvKzbfFy/nT0NfK1LS94cr4DQorICAgIL3hubk6DQorICAgICAgICBUX3pXX1BfcmVsZWFzZV9jbmYNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9IFRfeldfUF9yZWxlYXNlX2NuZjsNCisNCisNCisgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgKiAgICAgICAgICAgICAgICAgICAgICAgICDQocf4y9HL98irvtbK/b7dwODQzbao0uUgLS0tLS0tLS1lbmQgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisNCisNCisgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgKiAgICAgICAgICAgICAgICAgICAgICAgINfK1LTF5NbDyKu+1sr9vt3A4NDNtqjS5SAtLS0tLS0tLXN0YXJ0ICAgICAgICAgICAgICAgICAgICAgICAgICoNCisgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICBhd0xpc3RbMjFdOw0KK31UX3pXX1BfSW1zaTsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTcm5jSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIGR3U3JudGk7DQorfVRfeldfUF9Vcm50aTsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWVJZFZhbGlkQml0bWFwOy8qYml0MC4uYml0M9PQ0KejrNLAtM631rHw1rjKvtDF1KpUbXNpR3NtoaJQVG1zaUdzbaGiSW1zaUdzbaGiVVJudGnKx7fxtObU2qGjYml0zrvOqjGx7cq+ttTTptDF1Kq05tTao6y38dTysru05tTaKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdUbXNpR3NtWzRdOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdQVG1zaUdzbVs0XTsNCisgICAgVF96V19QX0ltc2kgICAgICAgICAgICAgICAgICAgIHRJbXNpR3NtOw0KKyAgICBUX3pXX1BfVXJudGkgICAgICAgICAgICAgICAgICAgdFVybnRpOyAgLypQQ0jMrMq508MqLw0KK31UX3pXX1BfdWVfaWQ7DQorDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGljaENoYW5Db2RlOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mUGlQZXJGcmFtZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQaWNoU3R0ZEluZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcnhDeWNsZUxlbmd0aENvZWZmOyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQaWNoUG93ZXJPZmY7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mU2NjcGNoOyANCisgICAgVF96V19QX3VlX2lkICAgICAgICAgICAgICAgICAgIHRVZUlkSW5mbzsNCit9IFRfeldfUF9waWNoX2luZm87DQorDQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VjU2NyYW1iQ29kZUZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNTY3JhbWJDb2RlOyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDaGFuQ29kZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTY3JhbWJDb2RlQ2hhbmdlRmxnOw0KK30gVF96V19QX2RwY2hfQ2hhbm5lbENvZGU7DQorDQorDQordHlwZWRlZiBzdHJ1Y3R7ICAgIA0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgZHdDdGZjOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RmY2k7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGZjUG93ZXJQYXJhRmxnOy8quabCyr/Y1sayzsr9serKtqOsMbHtyr7Q6NKqss6/vM/Cyva5psLKss7K/dDFz6KjqFBvd2VyT2ZmUHBt0MXPoqOsz9TKvkJldGFDus1CZXRhRNDFz6KjrLLOv7xURkNJRNDFz6KjqaGjMLHtyr7O3rmmv9iyzsr9Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQb3dlck9mZlBwbUZsZzsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UG93ZXJPZmZQcG07LypOZWVkZWQgb25seSBmb3IgUFJBQ0gqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0dhaW5GYWN0b3JJbmZvOy8qse3KvkJldGFDo6xCZXRhRNPDz9TKvrj4s/a1xLe9yr27ucrH08Oyzr+8VEZDvMbL47XEt73KvaGjDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgyKHWtTC78jGjrDA6se3Kvs/Uyr7NqNaqLCBCZXRh1rWyydPDvdO/2tbQxeTWw7XEd0JldGFELCB3QmV0YUMNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTqx7cq+ss6/vLe9yr0suPm+3XdSZWZUZmNJZNXStb221NOmtcRCZXRh1rUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0JldGFDOy8qc2lnbmFsbGVkR2FpbkZhY3RvcnPP1Mq+uPiz9rXEQmV0YUMgyKHWtTB+MTUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0JldGFEOyAgICAgICAgICAgICAgLypzaWduYWxsZWRHYWluRmFjdG9yc8/Uyr64+LP2tcRCZXRhRCDIoda1MH4xNSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmVmVGZjSWRGbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmVmVGZjSWQ7ICAgIC8qY29tcHV0ZWRHYWluRmFjdG9ycyAgUmVmIHRmY2mjrDB+MyCjrNDo0qq1vbLOv7xURkNJRM/C0bDV0rG+VEZDSUTQ6NKqtcRCZXRhQ6OsQmV0YUQqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF91bF9jdGZjX3RmYzsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIGR3Q3RmYzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZmNpOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9kbF9jdGZjX3RmYzsNCisNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgLypVbml0IGlzIGJpdHM7VVVSUkMgc2hvdWxkIGNvbXB1dGUgdGhlICBUQiBzaXplIGJ5IHRoZSBybGMgc2l6ZSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHJhbnNCbG9ja1NpemU7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZUcmFuc0Jsb2NrczsNCisNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZmk7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX2R5bmFtaWNfdGZzOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RyY2hJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUcmNoVHlwZTsgIC8q16jTw9DFtcAgT1Iguau5stDFtcAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NvZGluZ1R5cGVPZkNoYW5uZWw7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHRpOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NyY0xlbmd0aDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSbUF0dHJpYnV0ZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZkR5bmFtaWNUZnM7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX3N0YXRpY190ZnM7DQorICAgIA0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mVHJjaDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlRmYzsNCisgICAgVF96V19QX3N0YXRpY190ZnMgICAgICAgICAgIGF0U3RhdGljVEZTW1pfV19QX01BWF9VTF9UUkNIX05VTV07DQorICAgIFRfeldfUF9keW5hbWljX3RmcyAgICAgICBhdER5bmFtaWNURlNbWl9XX1BfTUFYX1VMX1RGX05VTV07DQorICAgIFRfeldfUF91bF9jdGZjX3RmYyAgICAgICAgICBhdEN0ZmNbWl9XX1BfTUFYX1VMX1RGQ19OVU1dOw0KK31UX3pXX1BfdWxfZHBjaF90cmNoX3JlY29uZmlnOw0KKw0KK3R5cGVkZWYgc3RydWN0DQoreyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltU3JjOyAvKiBQcmltYXJ5Q1BJQ0ggKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQY3BpY2hVc2FnZUZvckNoYW5uZWxFc3Q7ICAgLypTZWNvbmRhcnlDUElDSC1JbmZvKi8NCisJDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHBjaEZyYW1lT2Zmc2V0Ow0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY0NwU2NyQ29kZUZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNDcGljaFNjcmFtYkNvZGU7IC8qICBTZWNvbmRhcnlDUElDSC1JbmZvKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNDcENoYW5Db2RlRmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY0NwaWNoQ2hhbkNvZGU7LyogIFNlY29uZGFyeUNQSUNILUluZm8qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RwY0NvbWJJbmRleDsgIC8qIFRQQy1Db21iaW5hdGlvbkluZGV4ICovDQorCQ0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0Nsb3NlZExvb3BUaW1BZGpNb2RlOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Bvd2VyT2ZmVHBjUGRwZGNoOyAvKiBQb3dlck9mZnNldFRQQy1wZHBkY2ggKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUeERpdk1vZGU7ICAvKiBETC1Db21tb25JbmZvcm1hdGlvbi1yOCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZEcGNoczsNCisNCisgICAgVF96V19QX2RwY2hfQ2hhbm5lbENvZGUgIGF0RGxEcGNoQ2hhbm5lbENvZGVbWl9XX1BfTUFYX05PX09GX0RQQ0hTXTsNCit9IFRfeldfUF9kZWRpY2F0ZWRfcmxfcGFyYW1zOw0KKw0KK3R5cGVkZWYgICAgc3RydWN0ew0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mVHJjaDsNCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZUZmM7DQorICAgIC8qILTT09K1vdfzQklUzru21NOmtcS0q8rk0MW1wMuz0PLT62F0U3RhdGljVEZTz+DNrKO7Yml01rUwse3KvrK70OjSqr3izvajrDGx7cq+0OjSqr3izvYgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFbmFibGVEZWNvZGVCaXRtYXA7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgDQorICAgIC8qILjDuMPK/dfp1NpEQ0jMrMqx09DQp6Osyv3X6dSqy9i21NOmtcS0q8rk0MW1wMuz0PLT62F0U3RhdGljVEZTz+DNrKO7DQorICAgICAgICAgICAgICAgICAgVGFyZ2V0X0JMRVLOqr/J0aGyzsr9o6zWtbXEt7bOp86qMNbBNjOjrDB4ZmZmZrHtyr6yzsr9sru05tTao7vO78DtsuPK1bW9uvPSqiqjqC0wLjGjqbXDtb3KtbzK1rUgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3VGFyZ2V0QmxlcltaX1dfUF9NQVhfRExfVFJDSF9OVU1dOw0KKyAgICANCisgICAgVF96V19QX3N0YXRpY190ZnMgICAgICAgICAgICBhdFN0YXRpY1Rmc1taX1dfUF9NQVhfRExfVFJDSF9OVU1dOw0KKyAgICANCisgICAgVF96V19QX2R5bmFtaWNfdGZzICAgICAgICBhdER5bmFtaWNUZnNbWl9XX1BfTUFYX0RMX1RGX05VTV07DQorICAgIFRfeldfUF9kbF9jdGZjX3RmYyAgICAgICAgICBhdEN0ZmNbWl9XX1BfTUFYX0RMX1RGQ19OVU1dOw0KK31UX3pXX1BfZGxfdHJjaF9yZWNvbmZpZzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgIHdQcmltU3JjOyAvKiogUHJpbWFyeUNQSUNIICovDQorICAgIFdPUkQgICAgICAgICAgICAgIHdQY3BpY2hVc2FnZUZvckNoYW5uZWxFc3Q7ICAgLypTZWNvbmRhcnlDUElDSC1JbmZvKi8NCisgICAgV09SRCAgICAgICAgICAgICAgd0RwY2hGcmFtZU9mZnNldDsNCisgICAgV09SRCAgICAgICAgICAgICAgd0ZkcGNoU2xvdEZvcm1hdDsNCisNCisgICAgV09SRCAgICAgICAgICAgICAgd1NlY0NwU2NyQ29kZUZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgd1NlY0NwaWNoU2NyYW1iQ29kZTsgLyogIFNlY29uZGFyeUNQSUNILUluZm8qLw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICB3U2VjQ3BDaGFuQ29kZUZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgd1NlY0NwaWNoQ2hhbkNvZGU7DQorDQorICAgIFdPUkQgICAgICAgICAgICAgIHdGZHBjaFNlY1NjcmFtYkNvZGVGbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgIHdGZHBjaFNlY1NjcmFtYkNvZGU7DQorDQorICAgIFdPUkQgICAgICAgICAgICAgIHdUcGNDb21iSW5kZXg7ICAvKiBUUEMtQ29tYmluYXRpb25JbmRleCAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICB3U3R0ZEluZGljYXRpb247DQorICAgIFdPUkQgICAgICAgICAgICAgIHdGZHBjaENoYW5Db2RlOw0KKyAgICBXT1JEICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX2ZkcGNoX2RlZGljYXRlZF9ybF9wYXJhbXM7DQorDQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mVGZjOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBUX3pXX1Bfc3RhdGljX3RmcyAgICAgICAgICAgICAgICAgIHRTdGF0aWNURlM7DQorICAgIFRfeldfUF9keW5hbWljX3RmcyAgICAgICAgICAgICAgYXREeW5hbWljVEZTW1pfV19QX01BWF9VTF9URl9OVU1dOw0KKyAgICBUX3pXX1BfdWxfY3RmY190ZmMgICAgICAgICAgICAgICAgYXRDdGZjW1pfV19QX01BWF9VTF9URkNfTlVNXTsNCit9IFRfeldfUF9yYWNoX3Rmc190ZmNzX2NvbmZpZzsNCisNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNYXhUeFBvd2VyOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByYWNoU2NyYW1iQ29kZTsgLyogUHJlYW1ibGUgc2NyYW1ibGluZyBjb2RlIG51bWJlcjAtMTUgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNaW5TcHJlYWRpbmdGYWN0b3I7LyogQXZhaWxhYmxlIFNGIEluIGNoaXBzIHBlciBzeW1ib2wNCisgICAgRGVmaW5lcyB0aGUgbWluaW11bSBhbGxvd2VkIFNGICovDQorICAgIC8qIEVhY2ggYml0IGluZGljYXRlcyBhdmFpbGFiaWxpdHkgZm9yIGEgc2lnbmF0dXJlLCB3aGVyZSB0aGUgc2lnbmF0dXJlcyBhcmUgbnVtYmVyZWQgInNpZ25hdHVyZSAwIiB1cCB0byAic2lnbmF0dXJlIDE1Ii4gVGhlIHZhbHVlIDEgb2YgYSBiaXQgaW5kaWNhdGVzIHRoYXQgdGhlIGNvcnJlc3BvbmRpbmcgc2lnbmF0dXJlIGlzIGF2YWlsYWJsZSBhbmQgdGhlIHZhbHVlIDAgdGhhdCBpdCBpcyBub3QgYXZhaWxhYmxlKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQdW5jdHVyaW5nTGltaXQ7DQorICAgIA0KKyAgICAvKjEwLjMuNi41NSovDQorICAgIC8qIFByZWFtYmxlX0luaXRpYWxfUG93ZXIgPSBQcmltYXJ5IENQSUNIIFRYIHBvd2VyIC0gQ1BJQ0hfUlNDUCArIFVMIGludGVyZmVyZW5jZSArIENvbnN0YW50IFZhbHVlICovDQorICAgIC8qIFByZWFtYmxlX0luaXRpYWxfUG93ZXI9IHdJbml0aWFsUG93ZXJPZmZzZXQgLSBDUElDSF9SU0NQICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3SW5pdGlhbFBvd2VyT2ZmOw0KKyAgICAvKlByYWNoIFBvd2VyIE9mZnNldCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UG93ZXJSYW1wU3RlcDsvKlBSQUNIuabCysar0sYgUG93ZXIgUmFtcCBTdGVwICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJlYW1ibGVNYXhSZXRyYW5zOw0KKyAgICANCisgICAgDQorICAgIC8qMTAuMy42LjIqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FpY2hDaGFuQ29kZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBaWNoVHhkaXZNb2RlOyAgLyq3osvNt9a8r9a4yr4qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FpY2hUcmFuc1RpbWluZzsgLypBSUNItKvK5MqxvOQgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBaWNoUG93ZXJPZmY7DQorICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JhY2hUZnNUZmNzQ2ZnRmxnOw0KKw0KKyAgICBUX3pXX1BfcmFjaF90ZnNfdGZjc19jb25maWcgICAgdFJhY2hUZnNBbmRUZmNzQ29uZmlnOw0KK30gVF96V19QX3ByYWNoX3N5c2luZm87IA0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Bvd2VyT2ZmSHNwZHNjaDsNCisgICAgICAvKiBDUUkgZmVlZGJhY2sgY3ljbGUgY291bnQgKDAuLjE2MCBtcykgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDcWlGZWVkYmFja0N5Y2xlOw0KKyAgICAgIC8qIENRSSByZXBldGl0aW9uIGZhY3RvciAoMS4uNCkgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDcWlSZXBGYWN0b3I7DQorICAgICAgLyogZGVsdGEgQ1FJICgwLi44KSAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlbHRhQ3FpOw0KK31UX3pXX1BfTWVhc0ZlZWRCYWNrOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKw0KKyAgICBUX3pXX1BfTWVhc0ZlZWRCYWNrICAgICAgdE1lYXNGZWVkQmFjazsNCisNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlbHRhQWNrOyAvKiBkZWx0YSBBQ0sgKDAuLjgpICovDQorICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFOYWNrOyAvKiBkZWx0YSBOQUNLICgwLi44KSAqLw0KKyAgICANCisgICAgLyogQUNLLU5BQ0sgcmVwZXRpdGlvbiBmYWN0b3IgKDEuLjQpICAgVUwtRFBDSC1Qb3dlckNvbnRyb2xJbmZvLXI3ICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBY2tOYWNrUmVwRmFjdG9yOyAgICAgIC8qRFBDSLmmwsq/2NbGKi8NCisgICAgDQorICAgIC8qKDAsIDEpMSBpbmRpY2F0ZXMgdGhhdCBwcmVhbWJsZSBhbmQgcG9zdGFtYmxlIGFyZSB1c2VkIG9uIHRoZSBIUy1EUENDSCAtIHNlZSBbMjldKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3SGFycVByZWFtYmxlTW9kZTsgLyogKE1QKSovDQorfVRfeldfUF9oc19kcGNjaDsNCisNCit0eXBlZGVmICBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bWJPZlByb2Nlc3M7DQorICAgIC8qbWVtb3J5IHBhcnRpdGlvbmluZyAwOmltcGxpY2l0IDE6ZXhwbGljaXQqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNZW1vcnlQYXJ0aXRpb247DQorDQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdQcm9jZXNzTWVtb3J5U2l6ZVsyKlpfV19QX01BWF9IX1BST0NFU1NdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCit9VF96V19QX2hzX2hhcnFfaW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdCB7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hzc2NjaExlc3NUZmNpOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hzc2NjaExlc3NTZWNDb2RlU3VwOyAgICAgICAgICAgIA0KK30gVF96V19QX2hzc2NjaF9MZXNzVGZzTGlzdDsNCisNCit0eXBlZGVmIHN0cnVjdCB7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hzcGRzY2hDb2RlSW5kZXg7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3SHNzY2NoTGVzc1Rmc051bTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIc3NjY2hMZXNzQWN0aXZlRmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFRfeldfUF9oc3NjY2hfTGVzc1Rmc0xpc3QgICAgICBhdEhzc2NjaExlc3NUZnNMaXN0W1pfV19QX01BWF9IU0NDSExFU1NfVEZTX05VTV07DQorfSBUX3pXX1BfaHNzY2NoX2xlc3M7DQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHR4Q3ljbGUxOyAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0R0eEN5Y2xlMjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEdHhMb25nUHJlYW1ibGVMZW5ndGg7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3FpRHR4VGltZXI7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHBjY2hCdXJzdDE7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHBjY2hCdXJzdDI7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3ljbGUySW5hY3Rpdml0eVRocmVkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0R0eEFjdGl2ZUZsZzsgIA0KKw0KK30gVF96V19QX2R0eF9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RyeEN5Y2xlOyAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RyeEN5Y2xlSW5hY3RlVGhyZWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHJ4R3JhbnRNb25pdG9yOyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcnhBY3RpdmVGbGc7DQorfSBUX3pXX1BfZHJ4X2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RW5hYmxlRGVsYXk7ICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHR4RHJ4T2ZmOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1VsRHBjY2hTbG90Rm9ybWF0OyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcnhGbGc7DQorICAgIA0KKyAgICBUX3pXX1BfZHR4X2luZm8gICAgICAgICAgICB0RHR4SW5mbzsNCisgICAgVF96V19QX2RyeF9pbmZvICAgICAgICAgICAgdERyeEluZm87DQorfSBUX3pXX1BfZHR4X2RyeF9jb25maWc7DQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIC8qIGluZGljYXRlIGlmIHNlY29uZGFyeSBzY3JhbWJsaW5nIGNvZGUgZXhpc3RzIGZvciBIUyBTQ0NIIGNoYW5uZWwgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNTY3JhbWJDb2RlRmxnOw0KKyAgICAvKiBzZWNvbmRhcnkgc2NyYW1ibGluZyBjb2RlIHZhbHVlLg0KKyAgICBWYWxpZCBvbmx5IGlmIHNlY19zY3JfY29kZV92YWxpZCBpcyBzZXQgdG8gVFJVRS4NCisgICAgSWYgbm90IHZhbGlkIHRoZW4gcHJpbWFyeSBDUElDSCBzY3JhbWJsaW5nIGNvZGUgaXMgdXNlZCAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY1NjcmFtYkNvZGU7DQorICAgIC8qIG51bWJlciBvZiBjaGFubmVsaXNhdGlvbiBjb2RlcyB0byBTQ0NIICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZDaGFubmVsQ29kZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICAvKiBTQ0NIIGNoYW5uZWxpc2F0aW9uIGNvZGVzICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICBhd1NjY2hDaGFubmVsQ29kZSBbWl9XX1BfTUFYX0hTX1NDQ0hfQ09ERVNdOw0KK31UX3pXX1BfaHNfc2NjaDsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEbGZyZXE7ICAgIA0KKyAgICAvKiBzZXJ2aW5nIEhTLVBEU0NIIHJhZGlvIGxpbmsgcHJpbWFyeSBzY3JhbWJsaW5nIGNvZGUgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltU3JjOyAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hybnRpOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RsNjRRQU1Db25maWd1cmVkOyAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hzRHNjaFRiU2l6ZVRhYmxlOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Jlc2V0RHBhRmxnOw0KKyAgICANCisgICAgVF96V19QX2hzX3NjY2ggICAgICAgICAgICB0SHNzY2NoQ29uZmlnSW5mbzsNCit9VF96V19QX2hzZHBhX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGxmcmVxOyAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd05ld0hybnRpOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaW1TcmM7ICAgDQorICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01lYXNQb3dlck9mZjsgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RsNjRRQU1Db25maWd1cmVkOyAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RpZmZUeERpdmVyczsgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIc0RzY2hUYlNpemVUYWJsZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNIc2RwYUFjdGl2ZUZsZzsNCisgICAgDQorICAgIFRfeldfUF9oc19zY2NoICAgICAgICAgICAgIHRIc3NjY2hDb25maWdJbmZvOw0KK31UX3pXX1Bfc2VjX2hzZHBhX2luZm87DQorDQordHlwZWRlZiAgICBzdHJ1Y3R7DQorICAgIC8qMDpub3JtYWxwYXR0ZXJuLM6qMMqxx/jT8klFzt7QpzsgMTogZGl2ZXJzaXR5UGF0dGVybiAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY29uZENwaWNoUGF0dGVybjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTY3BpY2hQb3dlck9mZkZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDaGFuQ29kZTsNCisgICAgLyrIoda1t7bOp6O6OTQtMTAwILWlzrtkQizV5sq1yKHWtbe2zqejui02LTAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NjcGljaFBvd2VyT2ZmOw0KK31UX3pXX1BfbWltb19waWxvdF9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICAvKtPD09q05rSibWltb04tTS1SYXRpb9bQw7a+2da1ttTTprXETrXE1rUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01pbW9OUmF0aW87DQorICAgIC8q08PT2rTmtKJtaW1vTi1NLVJhdGlv1tDDtr7Z1rW21NOmtcRNtcTWtSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWltb01SYXRpbzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmVjb2RlV2VpZ1Jlc3RyOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFRfeldfUF9taW1vX3BpbG90X2luZm8gICB0TWltb1BpbG90Q2ZnOw0KK30gVF96V19QX21pbW9faW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgLyogMTAuMy42LjY5YSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmVmVGZjaTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZmNpUG87DQorfSBUX3pXX1BfZWRjaF90ZmNpX3BvOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VkY2hSZWZFdGZjaU51bTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBUX3pXX1BfZWRjaF90ZmNpX3BvICAgICAgYXRFZGNoVGZjaVBvW1pfV19QX01BWF9SRUZfRVRGQ0ldOw0KK30gVF96V19QX2VkY2hfZ3JhbnRfY29uZmlnX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWluUmVkdWNlZEVkcGRjaEdhaW5GYWN0b3I7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01pbkV0ZmNTZXQ7IC8qMFhGRkZGse3KvsO709DF5NbD1+7QoUVURkPX07yvKi8NCisgICAgVF96V19QX2VkY2hfZ3JhbnRfY29uZmlnX2luZm8gIHRFZGNoR3JhbnRDb25maWdJbmZvOw0KK30gVF96V19QX2VkcGRjaF9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VkcGNjaFBvd2VyT2ZmRmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RwY2NoUG93ZXJPZmY7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VkcGRjaFBvd2VySW50ZXJwb2xhdGlvbjsNCisgICAgDQorICAgIC8qIEUtVEZDIEJvb3N0IEluZm8gKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFdGZjQm9vc3RJbmZvRmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0V0ZmNpQm9vc3Q7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFUMlRQOw0KK30gVF96V19QX2VkcGNjaF9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VkY2hUdGk7IA0KKw0KKyAgLyogMjUuMzMxLCAxMC4zLjUuN2Q6DQorICAgICBJZiAicnYwIiBpcyBpbmRpY2F0ZWQsIHRoZSBVRSBzaGFsbCBvbmx5IHVzZSBFX0RDSCBSViBpbmRleCAwLiANCisgICAgIERlZmF1bHQgdmFsdWUgaXMgInJ2dGFibGUiLCBpbiB3aGljaCBjYXNlIHRoZSBVRSBzaGFsbCB1c2UgYW4gUlNOIGJhc2VkDQorICAgICBSViBpbmRleC4gKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIYXJxUnZDb25maWc7Lyowus0xo6y31rHwse3KvnJ2MLrNcnZ0YWJsZSovDQorDQorICAgIFRfeldfUF9lZHBkY2hfaW5mbyAgICAgICB0RWRwZGNoSW5mbzsNCisgICAgVF96V19QX2VkcGNjaF9pbmZvICAgICAgIHRFZHBjY2hJbmZvOw0KK30gVF96V19QX2VkY2hfdWxfaW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RWFnY2hDaGFuQ29kZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9IFRfeldfUF9lZGNoX2FnY2hfaW5mbzsNCisNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sgICANCisgICAgLyogRS1ISUNILVJHQ0gtU2lnbmF0dXJlU2VxdWVuY2UgU2lnbmF0dXJlIFNlcXVlbmNlOyBSZWY6IDEwLjMuNi4xMjIgaW4gMjUuMzMxKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTaWduYXRTZXF1ZW5jZTsgLyogMC4uMzkgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1BfY29tbV9lZGNoX3JnY2hfaW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgLyogUkcgY29tYmluYXRpb24gaW5kZXg7IFJlZjogMTAuMy42LjEwMCBpbiAyNS4zMzEqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JnY2hDb21iSWR4OyAvKiAwLi41ICovDQorICAgIC8qIEUtSElDSC1SR0NILVNpZ25hdHVyZVNlcXVlbmNlIFNpZ25hdHVyZSBTZXF1ZW5jZTsgUmVmOiAxMC4zLjYuMTAwIGluIDI1LjMzMSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2lnbmF0U2VxdWVuY2U7IC8qIDAuLjM5ICovDQorfSBUX3pXX1BfZWRjaF9yZ2NoX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIC8qIEhJQ0ggY2hhbm5lbGl6YXRpb24gY29kZTsgUmVmOiAxMC4zLjYuMTAxIGluIDI1LjMzMSAgRS1ISUNILUNoYW5uZWxpc2F0aW9uQ29kZSAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VoaWNoQ2hhbm5sQ29kZTsgLyogMC4uMTI3ICAqLw0KKyAgICAvKiBFLUhJQ0gtUkdDSC1TaWduYXR1cmVTZXF1ZW5jZSBTaWduYXR1cmUgU2VxdWVuY2U7IFJlZjogMTAuMy42LjEwMCBpbiAyNS4zMzEqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NpZ25hdFNlcXVlbmNlOyAvKiAwLi4zOSAqLw0KK30gVF96V19QX2VkY2hfaGljaF9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VjaERsQ2hhbkJpdG1hcDsNCisNCisgICAgLyogcHJpbWFyeSBzY3JhbWJsaW5nIGNvZGUgb2YgdGhpcyBSTCAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VkY2hSbFByaW1TcmM7DQorICAgIA0KKyAgICBUX3pXX1BfZWRjaF9yZ2NoX2luZm8gICB0RWRjaEVyZ2NoSW5mbzsNCisgICAgVF96V19QX2VkY2hfaGljaF9pbmZvICAgdEVkY2hFaGljaEluZm87DQorfSBUX3pXX1BfZWRjaF9kbF9wZXJfcmxfaW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltRXJudGlGbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VjRXJudGlGbGc7IA0KKyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltRXJudGk7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VjRXJudGk7DQorICAgIC8qIFNlcnZpbmcgUkwgaW5kZXggaW4gYXJyYXkgIGF0RWRjaERSbEFkZFJlY2ZnSW5mb1sgW01BWF9lZGNoX1JMXSAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VkY2hTZXJ2UmxJZHg7ICAgICAvKiAwLi4oTUFYX2VkY2hfUkwtMSkgKi8NCisgICAgDQorICAgIC8qIG51bWJlciBvZiBlbnRlcmllcyB2YWxpZCBpbiBhcnJheSBlX3JsX2luZm9bTDFfTUFYX2VkY2hfUkxdICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZFZGNoUmw7DQorICAgIFRfeldfUF9lZGNoX2FnY2hfaW5mbyAgICAgICAgICAgdEVkY2hFYWdjaEluZm87DQorICAgIFRfeldfUF9lZGNoX2RsX3Blcl9ybF9pbmZvICAgICBhdEVkY2hEbFJsSW5mb1taX1dfUF9NQVhfRURDSF9OT19PRl9STF07DQorfSBUX3pXX1BfZWRjaF9kbF9pbmZvOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICAgIFRfeldfUF9lZGNoX3VsX2luZm8gICAgICAgICAgICAgICAgICB0RWRjaFVsSW5mbzsNCisgICAgICBUX3pXX1BfZWRjaF9kbF9pbmZvICAgICAgICAgICAgICAgICAgdEVkY2hEbEluZm87DQorfVRfeldfUF9lZGNoX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWxGcmVxOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NjcmFtYkNvZGVUeXBlOw0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd1NjcmFtYkNvZGVOdW07IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Bvd2VyUHJlYW1ibGVMZW47IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RwY2NoUG93ZXJPZmY7DQorICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mUmw7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VjRWRjaEFjdGl2ZUZsZzsNCisgICAgVF96V19QX2ZkcGNoX2RlZGljYXRlZF9ybF9wYXJhbXMgICAgIGF0RmRwY2hEZWRpY2F0ZWRSbFBhcmFtc1taX1dfUF9NQVhfTk9fT0ZfUkxdOw0KKyAgICANCisgICAgVF96V19QX2VkY2hfdWxfaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICB0RWRjaFVsSW5mbzsNCisgICAgVF96V19QX2VkY2hfZGxfaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICB0RWRjaERsSW5mbzsNCit9IFRfeldfUF9zZWNfZWRjaF9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQoreyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1QzMjE7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdEcng7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdSeEJ1cnN0OyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd0RyeEludGVycnVwSHNkc2NoOw0KK30gVF96V19QX2ZhY2hfZHBhX2RyeF9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICAvKiBBQ0stTkFDSyByZXBldGl0aW9uIGZhY3RvciAoMS4uNCkgICBVTC1EUENILVBvd2VyQ29udHJvbEluZm8tcjcgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FhY2tOYWNrUmVwRmFjdG9yOyAgICAgIC8qRFBDSLmmwsq/2NbGKi8NCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQb3dlckNvbnRyb2xBbGdvcml0aDsgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHBjU3RlcFNpemU7DQorICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWVhc0ZlZWRCYWNrRmxnOw0KKyAgICBUX3pXX1BfTWVhc0ZlZWRCYWNrICAgICAgdE1lYXNGZWVkQmFjazsNCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEZWx0YUFja0ZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlbHRhQWNrOyAvKiBkZWx0YSBBQ0sgKDAuLjgpICovDQorICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFOQWNrRmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVsdGFOYWNrOyAvKiBkZWx0YSBOQUNLICgwLi44KSAqLw0KK30gVF96V19QX2ZhY2hfZHBjY2g7DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hybnRpVHlwZTsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hybnRpOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdCY2NoSHJudGk7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIc2RwYURyeEZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3SHNkcGNjaFN1cEFjazsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RmFjaERwY2NoRmxnOw0KKyAgICBUX3pXX1BfaHNfc2NjaCAgICAgICAgICAgICAgICAgICAgIHRIc3NjY2hDb25maWc7DQorICAgIFRfeldfUF9oc19oYXJxX2luZm8gICAgICAgICAgICAgICAgdEhzSGFycUluZm87ICAgIA0KKyAgICBUX3pXX1BfZmFjaF9kcGFfZHJ4X2luZm8gICAgICAgICAgIHRIc2RwYURyeEluZm87DQorICAgIFRfeldfUF9mYWNoX2RwY2NoICAgICAgICAgICAgICAgICAgdEZhY2hEcGNjaDsNCit9IFRfeldfUF9mYWNoX2RwYV9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTeW1ib2xPZmY7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGZHBjaENoYW5Db2RlOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVbERwY2NoU2NyYW1iQ29kZVR5cGU7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NvbW1FZGNoUmdjaEZsZzsNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIGR3VWxEcGNjaFNjcmFtYkNvZGU7DQorICAgIFRfeldfUF9jb21tX2VkY2hfcmdjaF9pbmZvICAgICAgICAgICAgICB0Q29tbUVkY2hSZ2NoSW5mbzsNCisgICAgVF96V19QX2VkY2hfaGljaF9pbmZvICAgICAgICAgICAgICAgICAgICAgICAgdEVkY2hFaGljaEluZm87DQorfVRfeldfUF9jb21tb25fZWRjaF9yZXNvdXJjZV9saXN0Ow0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaUVybnRpRmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaUVybnRpOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSZXNldEZsZzsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01heFR4UG93ZXI7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZkcGNoVHBjQ29tbWFuZEVycm9yUmF0ZTsNCisgICAgLyogMjUuMzMxLCAxMC4zLjUuN2Q6DQorICAgIElmICJydjAiIGlzIGluZGljYXRlZCwgdGhlIFVFIHNoYWxsIG9ubHkgdXNlIEVfRENIIFJWIGluZGV4IDAuIA0KKyAgICBEZWZhdWx0IHZhbHVlIGlzICJydnRhYmxlIiwgaW4gd2hpY2ggY2FzZSB0aGUgVUUgc2hhbGwgdXNlIGFuIFJTTiBiYXNlZA0KKyAgICBSViBpbmRleC4gKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hhcnFSdkNvbmZpZzsNCisNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FkZEVkY2hCYWNrT2ZmOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RWRjaFR0aTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0V0ZmNpVGFibGVJbmRleDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NvbW1vbkVkY2hSZXNvdXJjZU51bTsNCisNCisgICAgVF96V19QX2VkY2hfYWdjaF9pbmZvICAgICAgICAgICAgICAgICAgICAgICB0RWRjaEVhZ2NoSW5mbzsNCisgICAgVF96V19QX2VkcGRjaF9pbmZvICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRFZHBkY2hJbmZvOw0KKyAgICBUX3pXX1BfZWRwY2NoX2luZm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgdEVkcGNjaEluZm87DQorICAgIFRfeldfUF9jb21tb25fZWRjaF9yZXNvdXJjZV9saXN0ICAgICAgICBhdENvbW1vbkVkY2hSZXNvdXJjZWxpc3RbMzJdOw0KKyB9IFRfeldfUF9mYWNoX3VwYV9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VhaUluZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcGNjaFBvd2VyT2ZmUGU7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RWFpUG93ZXJPZmY7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgVF96V19QX3ByYWNoX3N5c2luZm8gICAgICAgICAgIHRQcmFjaFN5c2luZm87Lyog1PbHv8/CUFJBQ0jWu9PQ0rvX6aGjKi8NCit9VF96V19QX2hzcGFfcGx1c19wcmFjaF9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hybnRpOy8qvdPK1c/C0NBIUy1TQ0NIyrHTw7W9tcRVRSCx6sq2Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdCY2NoSHJudGk7IC8q1NrPwtDQtdrSu8z1SFMtU0NDSMnPvdPK1UJDQ0jJz7XEz/vPosqx08O1vbXE16jTw1VFserKtiovDQorICAgIA0KKyAgICBUX3pXX1BfaHNfc2NjaCAgICAgICAgICAgICB0SHNzY2NoQ29uZmlnOw0KKyAgICBUX3pXX1BfaHNfaGFycV9pbmZvICAgICAgdEhzSGFycUluZm87ICAgIA0KK30gVF96V19QX2RjY2hfZHRjaF9yZWxhdGVfaW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNTY3JhbWJDb2RlRmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlY1NjcmFtYkNvZGU7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U3ViRnJhbWVOdW1PZlBjY2g7LypudW1iZXIgb2Ygc3ViZnJhbWVzIHVzZWQgdG8gdHJhbnNtaXQgdGhlIFBBR0lORyBUWVBFIDEqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hzZHBhQ2hhbkNvZGU7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGJzTnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICBhd1Ric0xpc3RbMl07DQorfVRfeldfUF9wY2NoX3JlbGF0ZV9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQoreyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGNjaER0Y2hSZWM7Lyq1scewyse38dans9a908rVRFRDSLrNRENDSKO7MKO6srvWp7PWo7sxo7rWp7PWKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgVF96V19QX2RjY2hfZHRjaF9yZWxhdGVfaW5mbyAgIHREY2NoRHRjaEluZm87IC8qRGNjaC9EdGNoyc+1xL3TytXF5NbD0MXPoqOsvfa1sXdEY2NoX2R0Y2hfcmVjX2ZnPTHKsdPQ0KcqLw0KKyAgICBUX3pXX1BfcGNjaF9yZWxhdGVfaW5mbyAgICAgICAgICAgdFBjY2hfaW5mbzsgLypQY2Noyc+1xL3TytXF5NbD0MXPoqOsvfa1sXdEY2NoX2R0Y2hfcmVjX2ZnPTDKsdPQ0KcqLyAgICANCit9IFRfeldfUF9wY2hfZHBhX2luZm87DQorDQorDQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9BRERfUFJBQ0hfUkVRKCBVUlJDLT5QSFkgKQ0KKyDLtcP3OiBVUlJDxeTWw87vwO2y48vmu/q908jr0MW1wA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgVF96V19QX3ByYWNoX3N5c2luZm8gICAgdFByYWNoU3lzaW5mbzsNCit9VF96V19QX2FkZF9wcmFjaF9yZXE7DQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX1VMX0RQQ0hfU0VUVVBfTU9ESUZZX1JFUSggVVJSQy0+UEhZICkNCisgy7XD9zogVVJSQ72owaLJz9DQ16jTw87vwO3QxbXAICDTw9Pat8dEQ0i9qMGitb1EQ0i8sERDSMjt07LH0Lu7LA0KKyAgICAgICAgICAgICAg0tS8sMihz/uw6cvmRFBDSKOsyc/Q0FVQQaOsz8LQ0EZEUENIttTTprXEyc/Q0ERQQ0NIxeTWw6GjDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd0FjdFRpbWU7DQorICAgIC8q09DNrMa1o6zS7Ma107LH0KOsRENIzKy/59bGyr3H0Lu7o6xDQ0+72M3LxeRVTERQQ0jKsSB3SGFuZG92ZXJDb25maWdSZXR1cm5GbGc9PTEuxuTL+8fpv/Z3SGFuZG92ZXJDb25maWdSZXR1cm5GbGc9PTANCisqLw0KKy8vICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdIYW5kb3ZlckNvbmZpZ1JldHVybkZsZzsNCisNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd0hhbmRvQ29uZlJldHVyQml0bWFwOy8q07LH0MqnsNy72M3L1rjKvkJJVE1BUC4gtNPT0s/y1/NCSVQw1sMxse3KvrWxx7DOqtbGyr3E2tOyx9DKp7Dcu9jNy6OsQklUMdbDMbHtyr6/59bGyr3H0Lu7yqew3LvYzcujrEJJVDLWwzGx7cq+v+fWxsq9Q0NPyqew3LvYzcsqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3VWxGcmVxOw0KKwkNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd0RsRnJlcTsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdTcHJlYWRpbmdGYWN0b3I7IA0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgIGR3VWxTY3JhbWJDb2RlOyANCisJDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdTY3JhbWJDb2RlVHlwZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd051bU9mRFBEQ0g7Lyowse3KvsO709DF5NbDRFBEQ0gsyOe5+8ihMKOstMvKsXRVbFRyY2hSZWNvbmZpZyDSssrHzt7Qp7XEoaO99r32xeTWw1VMRFBDQ0gqKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1RmY2lGbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZkZiaUJpdHM7DQorICAgIA0KKyAgICAvKrWxd1RmY2lFeGlzdDsgd051bUZiaUJpdHMgtryyu7Tm1NrKsaOsd051bVRQQ0JpdHO/ydGhtObU2iovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlRQQ0JpdHM7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdQdW5jdExpbWl0Oy8qRFBEQ0iyu86qMMrHssXT0NCnKi8NCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdQb3dlclByZWFtYmxlTGVuOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3RHBjY2hQb3dlck9mZjsNCisJDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdEcGNjaFBvd2VyT2ZmU3RlcDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1Bvd2VyQ29udHJvbEFsZ29yaXRobTsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdUcGNTdGVwU2l6ZTsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdNYXhUeFBvd2VyOw0KKyAgICANCisNCitUX3pXX1BfdWxfZHBjaF90cmNoX3JlY29uZmlnICAgIHRVbFRyY2hSZWNvbmZpZzsNCit9VF96V19QX3VsX2RwY2hfc2V0dXBfbW9kaWZ5X3JlcTsgDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX0RMIF9EUENIX1NFVFVQX01PRElGWV9SRVEoIFVSUkMtPlBIWSApDQorIMu1w/c6IFVSUkPH68fzzu/A7bLjvajBoteo08PO78Dt0MW1wKOo08PT2kRQRENIvLBEUENDSLXExeTWw6OpDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NvZnRIYW5kb3ZlckZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsNCisgICAgLyrKsbzksaOz1ijQ6NKqzayyvbrNsrvQ6NKqzayyvSm7ucrHyrG85NbYvajTssfQ1rjKviDIoda1t7bOp6OoMC0zo6kgIDCx7cq+s/XKvLuvICAgMbHtyr6yu9Do0qrNrLK9tcTKsbzksaOz1tOyx9CjrDKx7cq+0OjSqs2ssr21xMqxvOSxo7PW07LH0KOsM7Htyr7Ksbzk1ti9qNOyx9ChoyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RpbWluZ0luZGljYXRpb247DQorICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcGNNb2Q7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Bvd2VyT2ZmUGlsb3RQZHBkY2g7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NmOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlBpbG90Qml0czsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGZjaUZsZzsgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUckNIRml4ZWRGbGc7ICANCisgICAgLypOMzEyLE4zMTMsTjMxNSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd04zMTI7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd04zMTM7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd04zMTU7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd0RvZmY7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Bvc3RWZXJpZnlQZXJpb2RGbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mUmw7DQorICAgIFRfeldfUF9kZWRpY2F0ZWRfcmxfcGFyYW1zICAgICAgICAgICAgICAgIGF0RGVkUmxQYXJhbXNbWl9XX1BfTUFYX05PX09GX1JMXTsNCisgICAgVF96V19QX2RsX3RyY2hfcmVjb25maWcgICAgICAgICAgICAgICAgICAgICAgdERsVHJjaFJlY29uZmlnOw0KK31UX3pXX1BfZGxfc2V0dXBfbW9kaWZ5X3JlcTsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfREwgX0ZEUENIX1NFVFVQX01PRElGWV9SRVEoIFVSUkMtPlBIWSApDQorIMu1w/c6IFVSUkPH68fzzu/A7bLjvajBorK/t9bXqNPDzu/A7dDFtcANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTb2Z0SGFuZG92ZXJGbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBY3RUaW1lOw0KKyAgICAvKkVudW1lcmF0ZWQoSW5pdGlhbGlzZSxNYWludGFpbikgMDpJbml0aWFsaXNlLDE6TWFpbnRhaW4qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGltaW5nSW5kaWNhdGlvbjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RwY01vZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZkcGNoVHBjRXJyb3JSYXRlOw0KKyAgICANCisgICAgLypOMzEyLE4zMTMsTjMxNSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOMzEyOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TjMxMzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd04zMTU7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR3RG9mZjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Bvc3RWZXJpZnlQZXJpb2RGbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlJsOw0KKyAgICBUX3pXX1BfZmRwY2hfZGVkaWNhdGVkX3JsX3BhcmFtcyAgICAgICAgIGF0RmRwY2hEZWRSbFBhcmFtc1taX1dfUF9NQVhfTk9fT0ZfUkxdOw0KK31UX3pXX1BfZGxfZmRwY2hfc2V0dXBfbW9kaWZ5X3JlcTsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfRFBDSF9TRVRVUF9NT0RJRllfQ05GKCBQSFktPlVSUkMgKQ0KKyDLtcP3OiDO78DtsuPNqNaqVVJSQ8Xk1sO8pLvuyrG85LW9LM7vwO2y49LRvq3G9NPD0MK1xMXk1sMsDQorICAgICAgICAgICAgILTLyrFVVVJSQ8b0tq9UMzEytqjKscb3LrTLz/vPotPD09pQX0RMIF9EUENIX1NFVFVQX01PRElGWV9SRVG6zQ0KKyAgICAgICAgICAgICBQX2RsX0ZEUENIX1NFVFVQX01PRElGWV9SRVG1xLe0wKENCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Umx0IDsNCit9VF96V19QX2RsX2RwY2hfc2V0dXBfbW9kaWZ5X2NuZjsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfSU5fU1lOQ19JTkQoIFBIWS0+VVJSQyApDQorIMu1w/c6IM7vwO2y49TavajBoteo08PO78Dt0MW1wMqxLM2o1qpVUlJDzayyvbPJuaajrMzY1rjW98a1teO1xM2ssr0NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9pbl9zeW5jX2luZDsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfT1VUX1NZTkNfSU5EKCBQSFktPlVSUkMgKQ0KKyDLtcP3OiDO78DtsuPNqNaqVVJSQ8qnsr2jrMzY1rjW98a1teO1xMqnsr0NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9vdXRfc3luY19pbmQ7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX1VMX0RQQ0hfUkVMX1JFUSggVVJSQy0+UEhZICkNCisgy7XD9zogVVJSQ9PD09rKzbfFyc/Q0Neo08PO78Dt0MW1wA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd0FjdFRpbWU7DQorfVRfeldfUF91bF9kcGNoX3JlbF9yZXE7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX0RMX0RQQ0hfUkVMX1JFUSggVVJSQy0+UEhZICkNCisgy7XD9zogVVJSQ9PD09rKzbfFz8LQ0Neo08PO78Dt0MW1wA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd0FjdFRpbWU7DQorfVRfeldfUF9kbF9kcGNoX3JlbF9yZXE7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX0RQQ0hfUkVMX0NORiggUEhZLT5VUlJDICkNCisgy7XD9zogtdey48i3yM9EUENI0MW1wMrNt8XN6rHPKCmhow0KKyAgICAgICAgICAgICDKx1BfdWxfRFBDSF9SRUxfUkVRu/JQX2RsX0RQQ0hfUkVMX1JFUbXEt7TAoc/7z6Khow0KKyAgICAgICAgICAgICC1scnPz8LQ0ERQQ0jSu8bwyb6z/cqxo6zO78DtsuPWu9Do0qq72Li00rvM9VBfRFBDSF9SRUxfQ05GDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1BfZHBjaF9yZWxfY25mOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19SRUxfU0NDUENIX1JFUSggVVJSQy0+UEhZICkNCisgy7XD9zogVVJSQyDTw9Pays23xbiouau5ss7vwO3QxbXADQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBY3RUaW1lOw0KK31UX3pXX1BfcmVsX3NjY3BjaF9yZXE7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX1JFTF9TQ0NQQ0hfQ05GKCBQSFktPlVSUkMgKQ0KKyDLtcP3OiC117LjyLfIz1NDQ1BDSNDFtcDKzbfFzeqxzw0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX3JlbF9zY2NwY2hfY25mOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19BRERfTU9ESUZZX1NDQ1BDSF9SRVEoIFVSUkMtPlBIWSApDQorIMu1w/c6IFVSUkMg08PT2sXk1sO4qLmrubLO78Dt0MW1wA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VjU2NyYW1ibENvZGVGbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VjU2NyYW1ibENvZGU7ICAvKlNlY29uZGFyeSBzY3JhbWJsaW5nIGNvZGUgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUeERpdk1vZGU7ICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTcHJlYWRpbmdGYWN0b3I7ICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2NjcGNoQ2hhbkNvZGU7ICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2NjcGNoQ2hpcHNPZmZzZXQ7ICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGlsb3RFeGlzdGVuY2U7ICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGZjaUZsZzsgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUckNIRml4ZWRGbGc7DQorICAgIFRfeldfUF9kbF90cmNoX3JlY29uZmlnICAgICAgICB0RGxUcmNoUmVjb25maWc7DQorfVRfeldfUF9hZGRfbW9kaWZ5X3NjY3BjaF9yZXE7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX1BBR0lOR19SRVEoIFVSUkMtPlBIWSApDQorIMu1w/c6IFVSUkMg08PT2sXk1sPRsLr00MW1wA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFRfeldfUF9hZGRfbW9kaWZ5X3NjY3BjaF9yZXEgICAgdEFkZE1vZGlmeVNjY3BjaFJlcTsNCisgICAgVF96V19QX3BpY2hfaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICB0UGljaEluZm87DQorfVRfeldfUF9wYWdpbmdfcmVxOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19TVE9QX1BBR0lOR19SRVEoIFVSUkMtPlBIWSApDQorIMu1w/c6IFVSUkMg08PT2s2j1rnRsLr0DQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1Bfc3RvcF9wYWdpbmdfcmVxOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19TVE9QX1BBR0lOR19DTkYoIFBIWS0+VVJSQyApDQorIMu1w/c6ILXXsuPIt8jPys23xdGwuvTQxbXAzeqxzw0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX3N0b3BfcGFnaW5nX2NuZjsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfQUREX0hTRFBBX1JFUSggVVJSQy0+UEhZICkNCisgy7XD9zogVVJSQyDTw9PaxeTWw0hTRFBBz+C52NDFtcCjqNDo0qrT60RQQ0i78kZEUENIxeTWw8Xkus/KudPDo6kNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FjdFRpbWU7IC8qMH4yNTU7IDI1NjrO3tCnKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEdHhEcnhDb25maWdGbGc7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hzc2NjaExlc3NGbGc7IA0KKyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNIc2RwYUluZm9GbGc7ICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNaW1vUGFyYW1GbGc7Lyq21NOmYXRNaW1vSW5mb1swXdbQtcSyzsr9Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNDZWxsTWltb1BhcmFGbGc7IC8qttTTpmF0TWltb0luZm9bMV3W0LXEss7K/SovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWFjSGRUeXA7DQorDQorICAgIFRfeldfUF9oc19kcGNjaCAgICAgICAgICAgdEhzZHBjY2hDb25maWdJbmZvOw0KKyAgICBUX3pXX1BfaHNfaGFycV9pbmZvICAgICAgdEhzSGFycUluZm87DQorICAgIFRfeldfUF9oc3NjY2hfbGVzcyAgICAgICAgdEhzc2NjaExlc3NJbmZvOyAgICANCisgICAgVF96V19QX2R0eF9kcnhfY29uZmlnICAgIHREdHhEcnhDb25maWc7IA0KKyAgICBUX3pXX1BfaHNkcGFfaW5mbyAgICAgICAgIHRIc2RwYUluZm87DQorICAgIFRfeldfUF9zZWNfaHNkcGFfaW5mbyAgIHRTZWNIc2RwYUluZm87DQorICAgIFRfeldfUF9taW1vX2luZm8gICAgICAgICAgYXRNaW1vSW5mb1syXTsNCit9VF96V19QX2hzZHBhX2NvbmZpZ19yZXE7IA0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19SRUxfSFNEUEFfUkVRKCBVUlJDLT5QSFkgKQ0KKyDLtcP3OiBVUlJDys23xUhTRFBBxeTWw8frx/MNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FjdFRpbWU7DQorfVRfeldfUF9oc2RwYV9yZWxfcmVxOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19SRUxfSFNEUEFfQ05GKCBQSFktPlVSUkMgKQ0KKyDLtcP3OiC117LjyLfIz8rNt8VIU0RQQdDFtcDN6rHPDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1BfaHNkcGFfcmVsX2NuZjsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfQUREX0hTVVBBX1JFUSggVVJSQy0+UEhZICkNCisgy7XD9zogVVJSQ8Xk1sNIU1VQQQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsgICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1VsZnJlcTsgICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNYXhUeFBvd2VyOw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1VsMTZRQU1GbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RXRmY2lUYWJsZUluZGV4Oy8qILfHMTZRQU3Kscih1rW3ts6nyscwtb0xLjE2UUFNyrHIoda1t7bOp8rHMrW9MyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VjRWRjaEZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBUX3pXX1BfZWRjaF9pbmZvICAgICAgICAgIHRFZGNoSW5mbzsNCisgICAgVF96V19QX3NlY19lZGNoX2luZm8gICAgdFNlY0VkY2hJbmZvOw0KK31UX3pXX1BfaHN1cGFfY29uZmlnX3JlcTsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfSFNVUEFfUkVMX1JFUSggVVJSQy0+UEhZICkNCisgy7XD9zogVVJSQ8m+s/1IU1VQQdfK1LQNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FjdFRpbWU7DQorfVRfeldfUF9oc3VwYV9yZWxfcmVxOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19IU1VQQV9SRUxfQ05GKCBQSFktPlVSUkMgKQ0KKyDLtcP3OiC117LjyLfIz8m+s/1IU1VQQdfK1LTN6rHPDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1BfaHN1cGFfcmVsX2NuZjsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfSFNQQV9QTFVTX0ZBQ0hfUkVRKCBVUlJDLT5QSFkgKQ0KKyDLtcP3OiDF5NbDTDEgRkFDSLrNSURMRcysz8K1xM/gudjU9se/xeTWwy694brPUFJBQ0jF5NbD0rvG8Mq508MuDQorICAgICAgICAgICAgINT2x79GQUNIzKy1sc/C0NCyydPDRFBBysejrLTLyrF3UGx1c1VwYUZsZ9bDMKOsDQorICAgICAgICAgICAgIMnP0NDQ6NKqUF9XX0FERF9QUkFDSF9SRVHG1c2oUkFDSMXk1sMNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RsRnJlcTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQbHVzVXBhRmxnOyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBUX3pXX1BfZmFjaF9kcGFfaW5mbyAgICAgICAgICAgdEZhY2hEcGFJbmZvOw0KKyAgICBUX3pXX1BfZmFjaF91cGFfaW5mbyAgICAgICAgICAgdEZhY2hVcGFJbmZvOw0KKyAgICBUX3pXX1BfaHNwYV9wbHVzX3ByYWNoX2luZm8gICAgdFBsdXNQcmFjaEluZm87DQorfSBUX3pXX1BfaHNwYV9wbHVzX2ZhY2hfcmVxOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19IU1BBX1BMVVNfUENIX1JFUSggVVJSQy0+UEhZICkNCisgy7XD9zogxeTWw0wxIFBDSMysz8K1xM/gudjU9se/xeTWww0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGxGcmVxOyANCisgICAgVF96V19QX3BjaF9kcGFfaW5mbyAgICAgdFBjaERwYUluZm87IA0KKyAgICBUX3pXX1BfcGljaF9pbmZvICAgICAgICAgICB0UGljaEluZm87ICAgIA0KK30gVF96V19QX2hzcGFfcGx1c19wY2hfcmVxOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19IU1BBX1BMVVNfRkFDSF9SRUxfUkVRKCBVUlJDLT5QSFkgKQ0KKyDLtcP3OiDJvrP9TDEgIEZBQ0i6zUlETEXMrM/CtcTP4LnY1PbHv8Xk1sMNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FjdFRpbWU7ICAgICAgICAgIC8qMH4yNTU7IDI1NjrBory0xvDQpyovDQorfSBUX3pXX1BfaHNwYV9wbHVzX2ZhY2hfcmVsX3JlcTsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfSFNQQV9QTFVTX1BDSF9SRUxfUkVRKCBVUlJDLT5QSFkgKQ0KKyDLtcP3OiDJvrP9TDEgIFBDSMysz8K1xM/gudjU9se/xeTWww0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsgICAgICANCit9IFRfeldfUF9oc3BhX3BsdXNfcGNoX3JlbF9yZXE7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6UF9XX0hTUEFfUExVU19GQUNIX1JFTF9DTkYoIFBIWS0+VVJSQyApDQorIMu1w/c6IM7vwO2y47vYuLS4+EwxVLXE1PbHv0ZBQ0jF5NbDyb6z/ci3yM/P+8+iDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOyAgICAgDQorfSBUX3pXX1BfaHNwYV9wbHVzX2ZhY2hfcmVsX2NuZjsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfSFNQQV9QTFVTX1BDSF9SRUxfQ05GKCBQSFktPlVSUkMgKQ0KKyDLtcP3OiDO78DtsuO72Li0uPhMMVS1xNT2x79QQ0jF5NbDyb6z/ci3yM/P+8+iDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOyAgICAgIA0KK30gVF96V19QX2hzcGFfcGx1c19wY2hfcmVsX2NuZjsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX1dfSFNTQ0NIX09SREVSX0lORCggUEhZLT5VUlJDICkNCisgy7XD9zogzu/A7bLjytW1vUhTU0NDSCBPUkRFUrrzyc+xqFBTDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorCVdPUkQgICAgICAgICAgICAgICAgICAgICB3SHNzY2NoT3JkZXJUeXBlSW5kOy8qzai5/bTLserKtqOsUEhZzajWqlBTo6y41bjVytW1vbXET1JERVLW0NCvtPi1xMDg0M2jrLjDwODQzbXEvKS77silu+7Q6NKquPm+3XdIc3NjY2hPcmRlclR5cGXP4NOmzrvF0LbPoaMqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd0hzc2NjaE9yZGVyVHlwZTsNCisJV09SRCAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1BfSHNjY2hfT3JkZXJfSW5kOw0KKw0KKy8qd0hzc2NjaE9yZGVyVHlwZUluZCAgse3KvrWxx7DK1bW9wcvExNCpT1JERVK1xMDg0M2ho9Prd0hzc2NjaE9yZGVyVHlwZdbQtcTA4NDN0rvSu7bU06ahow0KK7TT09LP8tfzo6zDv7j2QklUt9ax8LHtyr5IU0RTQ0i3/s7xseS4/KOsRVBDSMqx1NpIU19TQ0NIyc/K1bW9SFJOVEksTEVTU6Ostdq2/sa1teNEUEGjrLXatv7GtbXjVVBBx+m/9qOsz+DTps67INbD0rux7cq+ytW1vcHLz+DTpsDg0M21xE9SREVSLKGjDQortdowscjM2KO6MbHtyr641crVtb1IU0RTQ0i3/s7x0KHH+Lj8uMS1xE9SREVSIKO7DQortdoxscjM2KO7MbHtyr641crVtb1FUENIyrHU2khTX1NDQ0jJz8rVtb1IUk5USbXET1JERVINCiu12jKxyMzYo7oxse3KvrjVytW1vURUWM/gudhPUkRFUg0KK7XaM7HIzNijujGx7cq+uNXK1bW9tcTKx0RSWCDP4LnYT1JERVINCiu12jSxyMzYo7oxse3KvrjVuNXK1bW9tcTKx0hTX1NDQ0hfTEVTU8/gudi1xE9SREVSDQortdo1scjM2KO6MbHtyr641bjVytW1vbXEyse12jLGtbXjz8LQ0ERQQc/gudi1xE9SREVSDQortdo2scjM2KO6MbHtyr641bjVytW1vbXEyse12jLGtbXjyc/Q0FVQQc/gudi1xE9SREVSDQorKi8NCisvKg0KK3dIc3NjY2hPcmRlclR5cGW009PSz/LX86Osw7+49kJJVLfWsfCx7cq+SFNEU0NIt/7O8bHkuPyjrEVQQ0jKsdTaSFNfU0NDSMnPytW1vUhSTlRJLExFU1O1xLyku+7Ipbvuo6y12rb+xrW140RQQbyku+7Ipbvuo6y12rb+xrW141VQQbXEvKS77silu+7H6b/2DQortdowscjM2KO6MLHtyr5IU0RTQ0i3/s7x0KHH+Lj8uMQsMbHtyr7OtMrVtb1IU0RTQ0i3/s7x0KHH+Lj8uMQuIKO7DQortdoxscjM2KO7MbHtyr5FUENIyrHU2khTX1NDQ0jJz8rVtb1IUk5USQ0KK7XaMrHIzNijujCx7cq+yKW77kRUWKOsMbHtyr68pLvuRFRYDQortdozscjM2KO6MLHtyr7IpbvuRFJYo6wxse3Kvryku+5EUlgNCiu12jSxyMzYo7owse3Kvsilu+5IU19TQ0NIX0xFU1OjrCAxse3Kvryku+5IU19TQ0NIX0xFU1MNCiu12jWxyMzYo7owse3Kvsilu+612jLGtbXjz8LQ0ERQQaOsMbHtyr68pLvutdoyxrW148/C0NBEUEENCiu12jaxyMzYo7owse3Kvsilu+612jLGtbXjyc/Q0FVQQaOsMbHtyr68pLvutdoyxrW148nP0NBVUEENCisNCisqLw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19ORVJCRVJDRUxMX0hTU0NDSF9PUkRFUl9SRVEoIFVSUkMtPlBIWSApDQorIMu1w/c6IMfrx/PO78DtsuO2wcih1ri2qNChx/i1xEhTU0NDSCBPUkRFUi7P7NOmz/vPosrHUF9Ic2NjaF9PcmRlcl9JbmQuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3UHJpU3JjOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3TW9uaXRvclRpbWVMZW47DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBUX3pXX1BfaHNfc2NjaCAgICAgICAgIHRIc3NjY2hDb25maWdJbmZvOw0KK31UX3pXX1BfSHNjY2hfT3JkZXJfUmVxOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfV19ORVJCRVJDRUxMX0hTU0NDSF9PUkRFUl9BQk9SVF9SRVEoIFVSUkMtPlBIWSApDQorIMu1w/c6IMfrx/PO78DtsuPIoc/7tsHIoda4tqjQocf4tcRIU1NDQ0ggT1JERVIuDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkbmc7DQorfVRfeldfUF9Ic2NjaF9PcmRlcl9BYm9ydF9SZXE7DQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6V19QX0VGQUNIX1VQREFURV9STlRJX1JFUSggVVJSQy0+UEhZICkNCisgy7XD9zogzajWqs7vwO2y47j80MLXqNPDtcRIUk5USbvyRVJOVEkNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0eyAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsvKjB+MjU1OyAyNTY6waK8tMbw0KcqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd1VwZGF0ZVR5cGU7Lyoxo7rWu7j80MJILVJOVEmjuzKjuta7uPzQwkUtUk5USaO7M6O6uPzQwkgtUk5USbrNRS1STlRJOyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3SHJudGk7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3UHJpRXJudGk7IC8q16jTw9b3RVJOVEkqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7IA0KKyB9VF96V19QX2VmYWNoX3VwZGF0ZV9ybnRpX3JlcTsNCisNCisgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgKiAgICAgICAgICAgICAgICAgICAgICAgICBSQkPIq77Wyv2+3cDg0M22qNLlIC0tLS0tLS1lbmQgICAgICAgICAgICAgICAgICAgICAgICAqDQorID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorICAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgIE1DUsirvtbK/b7dwODQzbao0uUgLS0tLS0tLS1zdGFydCAgICAgICAgICAgICAgICAgICAgICAgICAqDQorID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorDQorIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgICAgICBSUkM8LT5QSFkNCisgICAgICAgILmmxNw6DQorICAgICAgICAgICAgICAgIFJSQ7rNUEhZsuO85LXEzazGtbLiwb/F5NbDvdO/2g0KKyAgICAgICAgveG5uTogICAgICAgIA0KKyAgICAgICAgICAgICAgICDNrMa1suLBv8Xk1sPP+8+iIFdfUF9JTlRSQV9GUkVRX01FQVNfUkVRDQorICAgICAgICAgICAgICAgIM2sxrWy4sG/veG5+8/7z6IgV19QX0lOVFJBX0ZSRVFfTUVBU19JTkQNCisgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2hpcEFjY3VyYWN5OyAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JlZlRpbWVEaWZmOyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHhEaXZJbmQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1N5bkluZm9yTmVlZDsgICAgIA0KK31UX3pXX1BfY2VsbF9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2VsbE51bTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWFyZmNuOw0KKyAgICBUX3pXX1BfY2VsbF9pbmZvICAgICAgICAgICAgIGF0TWVhc0NlbGxJbmZvW1pfV19QX01BWF9DRUxMX05VTV07DQorfVRfeldfUF9mcmVxX21lYXNfaW5mbzsNCisgDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVYXJmY247DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxOdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdQcmltU3JjW1pfV19QX01BWF9DRUxMX05VTV07DQorfVRfeldfUF9mcmVxX25vdF9tZWFzX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGV0ZWN0ZWRTZXRRdWFudGl0eTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWVhc0ZyZXFOdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd05vdE1lYXNGcmVxTnVtOw0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgZHdNZWFzSWQ7ICAgIA0KKyAgICBUX3pXX1BfZnJlcV9tZWFzX2luZm8gICAgICAgICAgICAgYXRJbnRyYUZyZXFNZWFzSW5mb1taX1dfUF9NQVhfSU5UUkFGUkVRX05VTV07DQorICAgIFRfeldfUF9mcmVxX25vdF9tZWFzX2luZm8gICAgICAgYXROb3RNZWFzRnJlcUluZm9bWl9XX1BfTUFYX0lOVFJBRlJFUV9OVU1dOw0KK31UX3pXX1BfaW50cmFfZnJlcV9tZWFzX3JlcTsNCisNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2ZuRmxhZzoxOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDcGljaFJzY3A6ODsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3BpY2hFY05vOjc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NmbjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3T2ZmOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUbTsNCit9IFRfeldfUF9jZWxsX21lYXNfcmx0OyANCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWFyZmNuOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDZWxsTnVtOjg7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Jzc2k6ODsNCisgICAgVF96V19QX2NlbGxfbWVhc19ybHQgICAgICAgICAgICBhdENlbGxNZWFzUmx0W1pfV19QX01BWF9DRUxMX05VTV07DQorfSBUX3pXX1BfZnJlcV9tZWFzX3JsdDsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxTnVtOw0KKyAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdNZWFzSWQ7DQorICAgVF96V19QX2ZyZXFfbWVhc19ybHQgICAgICBhdEludHJhRnJlcU1lYXNSbHRbWl9XX1BfTUFYX0lOVFJBRlJFUV9OVU1dOw0KK31UX3pXX1BfaW50cmFfZnJlcV9tZWFzX2luZDsNCisNCisgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgICAgIFJSQzwtPlBIWQ0KKyAgICAgICAguabE3DoNCisgICAgICAgICAgICAgICAgUlJDus1QSFmy47zktcTS7Ma1suLBv8Xk1sO907/aDQorICAgICAgICC94bm5OiAgICAgICAgDQorICAgICAgICAgICAgICAgINLsxrWy4sG/xeTWw8/7z6IgV19QX0lOVEVSX0ZSRVFfTUVBU19SRVENCisNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVYXJmY247ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDZWFyY2hDZWxsRmxnOyAvKjGx7cq+uMPGtbXjsru99rLiwb9SU1NJu7nQ6NKqvfjQ0NChx/jL0cv3o6yyor340NDQocf4suLBv73hufvJz7GooaMwse3KvrjDxrW14732suLBv1JTU0kqLw0KK31UX3pXX1BfQmxpbmRfZnJlcV9tZWFzX3JlcTsNCisNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RnJlcU51bTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QmxpbmRGcmVxTnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdMYnNGbGFnOw0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgZHdUbWVhc0luaWFsOyANCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIGR3VG1lYXM7DQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICBkd01lYXNJZDsgICAgDQorICAgIFRfeldfUF9mcmVxX21lYXNfaW5mbyAgICAgICAgICAgICAgYXRJbnRlckZyZXFNZWFzSW5mb1taX1dfUF9NQVhfSU5URVJGUkVRX05VTV07ICAgICAgLyp3RnJlcU51bcr9xL/WuMq+Ki8gICAgDQorICAgIFRfeldfUF9CbGluZF9mcmVxX21lYXNfcmVxICAgICAgYXRCbGluZEZyZXFbWl9XX1BfTUFYX0JMSU5EX0lOVEVSRlJFUV9OVU1dOyAgICAgICAgLyp3QmxpbmRGcmVxTnVtyv3Ev9a4yr4qLyAgICANCit9VF96V19QX2ludGVyX2ZyZXFfbWVhc19yZXE7DQorDQorIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgICAgICBSUkM8LT5QSFkNCisgICAgICAgILmmxNw6DQorICAgICAgICAgICAgICAgIFJSQ7rNUEhZsuO85LXE0uzGtbLiwb/F5NbDvdO/2g0KKyAgICAgICAgveG5uTogICAgICAgIA0KKyAgICAgICAgICAgICAgICDS7Ma1suLBv73hufvP+8+iIFdfUF9JTlRFUl9GUkVRX01FQVNfSU5EDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdA0KK3sgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaW1TcmM7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NwaWNoUnNjcDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q3BpY2hFY05vOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX2JsaW5kX2NlbGxfcmx0Ow0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVYXJmY247DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Jzc2k7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxOdW07IC8qILjDxrW148/Cw6Sy4sG/tcTQocf4uPbK/SAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOyANCisgICAgVF96V19ibGluZF9jZWxsX3JsdCAgICAgICAgICBhdEJsaW5kQ2VsbFJsdFtaX1dfUF9NQVhfQkxJTkRfSU5URVJGUkVRX0NFTExfTlVNXTsNCit9VF96V19ibGluZF91YXJmY25fcmx0Ow0KKw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3SW50ZXJGcmVxTnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdCbGluZEZyZXFOdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JwdEZsZzsgLyowOtbcxtrJz7GoIDE6zOHHsMnPsagqLw0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgZHdNZWFzSWQ7IA0KKyAgICBUX3pXX1BfZnJlcV9tZWFzX3JsdCAgICAgICAgICAgIGF0SW50ZXJGcmVxTWVhc1JsdFtaX1dfUF9NQVhfSU5URVJGUkVRX05VTV07DQorICAgIFRfeldfYmxpbmRfdWFyZmNuX3JsdCAgICAgICAgICAgICBhdEJsaW5kRnJlcVJsdFtaX1dfUF9NQVhfQkxJTkRfSU5URVJGUkVRX05VTV07DQorfVRfeldfUF9pbnRlcl9mcmVxX21lYXNfaW5kOw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgICAgICBQSFktPlJSQw0KKyAgICAgICAguabE3DoNCisgICAgICAgICAgICAgICAgUkhZz/JSUkO3osvNt/7O8dChx/iy4sG/veG5+8nPsagNCisgICAgICAgIL3hubk6ICAgICAgICANCisgICAgICAgICAgICAgICAgt/7O8dChx/iy4sG/veG5+8nPsajP+8+iIFdfUF9TRVJWQ0VMTF9NRUFTX0lORA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NwaWNoUnNjcDsgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NwaWNoRWNObzsNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIGR3TWVhc0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSc3NpOyAvL7f+zvHGtbXjUlNTSda1o6zIoda1t7bOpzowfjc2o6y21NOmLTI1ZEJtfi0xMDBkQm0NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX3NlcnZjZWxsX21lYXNfaW5kOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgICAgICBSUkM8LT5QSFkNCisgICAgICAgILmmxNw6DQorICAgICAgICAgICAgICAgIFJSQ7rNUEhZsuO85LXEVUXE2rK/suLBv8Xk1sO907/aDQorICAgICAgICC94bm5OiAgICANCisgICAgICAgICAgICAgICAgVUXE2rK/suLBv8frx/PP+8+iIFdfUF9VRV9JTlRFUk5BTF9NRUFTX1JFUQ0KKyAgICAgICAgICAgICAgICBVRcTasr+y4sG/veG5+8nPsaggICAgIFdfUF9VRV9JTlRFUk5BTF9NRUFTX0lORCAgICAgICAgICAgIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorDQordHlwZWRlZiBzdHJ1Y3QgeyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7ICAgICAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JlcEludGVydmFsOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUeFBvd2VyTmVlZDoxOyAgICAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1J4VHhOZWVkOjE7ICAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Jzc2lOZWVkOjE7ICAgICAgICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoxMzsNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICBkd01lYXNJZDsNCit9VF96V19QX3VlaW50ZXJuYWxfbWVhc19yZXE7IA0KKw0KKw0KK3R5cGVkZWYgc3RydWN0IHsgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaW1TcmM7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1J4VHhUaW1lRGlmZjsNCit9VF96V19QX3J4dHhfdGltZV9kaWZmX3JsdDsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUeFBvd2VyRmxhZzoxOyAgICAgICAgICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSc3NpRmxhZzoxOyAgICAgICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICA6MTQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1R4UG93ZXI7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Jzc2k7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mUnhUeFJlc3VsdHM7DQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICBkd01lYXNJZDsgIA0KKyAgICBUX3pXX1Bfcnh0eF90aW1lX2RpZmZfcmx0ICAgICAgIGF0UnhUeFRpbWVEaWZmUmx0W1pfV19QX01BWF9OT19PRl9STF07DQorfVRfeldfUF91ZWludGVybmFsX21lYXNfaW5kOyANCisNCisgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgICAgICBSUkMtPlBIWQ0KKyAgICAgICAgILmmxNw6DQorICAgICAgICAgICAgICAgUlJDz/JQSFm3osvNtcSy4sG/yb6z/da4yr4gIA0KKyAgICAgICAgIL3hubk6DQorICAgICAgICAgICAgICAgsuLBv8rNt8XP+8+iIFdfUF9NRUFTX1JFTF9SRVFfRVYNCisgICAgICAgICAgICAgICB3TWVhc1R5cGVzseDC66O6z+DTpmJpdM671sMxse3KvsrNt8W0y8Dg0M2y4sG/o7u38dTysrvKzbfFDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdDA6IFNlcnZDZWxsTWVhcw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaXQxOiBJbnRyYUZyZXENCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0MjogSW50ZXJGcmVxDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdDOjulVlSW50ZXJNZWFzDQorID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01lYXNUeXBlczsgICAgICAgICANCit9VF96V19QX21lYXNfcmVsX3JlcTsNCisNCisgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgICAgIFJSQy0+UEhZDQorICAgICAgICC5psTcOg0KKyAgICAgICAgICAgICAgICBGYWNozKzPwrLiwb/Ksbv6xeTWww0KKyAgICAgICAgveG5uTogICAgICAgIA0KKyAgICAgICAgICAgICAgICBGTU/Qxc+ixeTWwyBXX1BfRk1PX0lORk9fUkVRDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3Rk1PTmVlZDsgICAgICAgICAgIC8q1rjKvsrHt/HKudPDRk1PoaMwse3Kvsihz/tGTU+jrLfHMNa1se3KvsXk1sNGTU8qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1R0aVBlcmlvZDsgICAgICAgICAvKj1NX1JFUCwgbWVhc3VyZW1lbnQgb2NjYXNpb24gY3ljbGUgbGVuZ3RoICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHRpT2Zmc2V0OyAgICAgICAgIC8qPUNfcm50aSBSTlRJbW9kIE1fUkVQKi8NCit9VF96V19QX2Ztb19yZXE7DQorDQorIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgICAgICBSUkMtPlBIWQ0KKyAgICAgICAguabE3DoNCisgICAgICAgICAgICAgICAgRGNozKzPwtG5y/XEo8q90MXPosXk1sMNCisgICAgICAgIL3hubk6ICAgICAgICANCisgICAgICAgICAgICAgICAg0bnL9cSjyr3Qxc+ixeTWwyBXX1BfQ09NUFJFU1NfTU9ERV9SRVENCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IHsgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDb21wcmVzc2VkTW9kZVVzYWdlOyAgLyrTw9Payc/Q0KOsz8LQ0Lu5ysfJz8/C0NAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RsQ29tcE1vZGVNZXRob2Q7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWxDb21wTW9kZU1ldGhvZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEbEZyYW1lVHlwZTsgICAgICAgICAgIC8q1qHA4NDNQSBPUiBCKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdScHA7IC8qIFJlY292ZXJ5IFBlcmlvZCBQb3dlciBjb250cm9sIG1vZGUgZHVyaW5nIHRoZSBmcmFtZSBhZnRlciB0aGUgdHJhbnNtaXNzaW9uIGdhcCB3aXRoaW4gdGhlIGNvbXByZXNzZWQgZnJhbWUgIMSjyr0wu7nKx8Sjyr0xKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdJdHA7Lyogbml0aWFsIFRyYW5zbWl0IFBvd2VyIGlzIHRoZSB1cGxpbmsgcG93ZXIgY29udHJvbCBtZXRob2QgdG8gYmUgdXNlZCB0byBjb21wdXRlIHRoZSBpbml0aWFsIHRyYW5zbWl0IHBvd2VyIGFmdGVyIHRoZSBjb21wcmVzc2VkIG1vZGUgZ2FwxKPKvTC7ucrHxKPKvTEqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlbHRhU2lyMTsvKs/C0NBTSVK199X71rUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlbHRhU2lyQWZ0ZXIxOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlbHRhU2lyMjsgICAgICAgICAgICAvKlJlYWwoMC4uMyBieSBzdGVwIG9mIDAuMSkswKm08zEwsbYqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlbHRhU2lyQWZ0ZXIyOw0KK31UX3pXX1Bfc3RhdGljX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RncHNpOyAgICAgICAgICAgICAgLypnYXAgSUQgMS02ICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0aXZlRmxnOyAgICAgICAgICAvKjE9vKS77qO7MD3IpbvuKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNZWFzUHVycG9zZTsgICAgICAgIC8qMT3S7Ma1IKOsMj1SQVQqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Rnc247ICAgICAgICAgICAgICAgLyrG8Mq8yrHPtrrFKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZ3ByYzsgICAgICAgICAgICAgIC8qtKvK5LzkuPTW2Li0tM7K/SwgMHhGRkZGse3Kvs7ez960zsr9Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZ2NmbjsgICAgICAgICAgICAgIC8qtKvK5LzkuPTBrL3T1qG6xaOsyse12tK7xKPKvbXEtdrSu7j2zt7P39ahtcRDRk4qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RnbDE7ICAgICAgICAgICAgICAgLyq12tK7uPZHQVC1xLOktsijrMqxz7bK/SovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGdsMjsgICAgICAgICAgICAgICAvKrXatv649kdBULXEs6S2yCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGdwbDsgICAgICAgICAgICAgICAvKrSryuS85Lj0s6S2yKOs1qHK/SovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGdkOyAgICAgICAgICAgICAgICAvKsG9uPZHQVDG8Mq8teO1xL7gwOujrMqxz7bK/aOsMHhGRkZGse3D90dhcMSj0M3W0LK7tObU2rXatv649kdhcCovDQorICAgIFRfeldfUF9zdGF0aWNfaW5mbyAgICAgICAgIHRDbVN0YWljSW5mbzsNCit9VF96V19QX2NvbXByZXNzX2dhcF9wYXR0ZXJuOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDbVBhdHRlcm5OdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0VGltZTsgICAgICAgIC8qyKHWtbe2zqcwLTI1NaOsMjU2o6zG5NbQMjU2se3KvsGivLS8pLvuKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDbUNlbGxJbmZvRmxnOyAvKsih1rUwu/Ixo6yx7cq+yse38dCvtPjBy9Chx/jQxc+id0RsVWFyZmNuus13UHJpbVNyYy4gyKHWtTHKsXdEbFVhcmZjbrrNd1ByaW1TcmPT0NCno6y38dTyzt7QpyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGxVYXJmY247DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbVNyYzsNCisgICAgVF96V19QX2NvbXByZXNzX2dhcF9wYXR0ZXJuICAgIGF0Q29wcmVzc01vZGVQYXR0ZXJuW1pfV19QX01BWF9DTV9OVU1dOw0KK31UX3pXX1BfY29tcHJlc3NfbW9kZV9yZXE7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgICAgIEwxVy0+UEhZDQorICAgICAgICC5psTcOg0KKyAgICAgICAgICAgICAgICBGRETOqrioxKPKvc/Co6zK1bW9tcRHQVDF5NbDV19QX0lSQVRHQVBDT05GSUdfUkVRDQorICAgICAgICC94bm5OiAgICAgICAgDQorICAgICAgICAgICAgICAgIEdBUMfrx/PQxc+iIFdfUF9JUkFUR0FQQ09ORklHX1JFUQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICB3SWRsZU9yQ29ubmVjdEZsZzsvKkZERM6quKjWxsq9yrHW99bGyr21xNe0zKyjrMih1rXOqjCx7cq+v9XP0MysyKHWtc6qMbHtyr7BrL3TzKwqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgd1N0YXJ0U2ZuOy8qR0FQxvDKvLXj1qG6xSzIoda1t7bOpyAwLS00MDk2Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgIHdTdGFydE9mZkNoaXA7ICAvKkdBUMbwyry14y5DSElQxqvSxqOoY2hpcHOjqSzV5tX9tcRHQVDG8Mq8tePKx3dTdGFydFNmbit3U3RhcnRPZmZDaGlwKi8NCisgICAgRFdPUkQgICAgICAgICAgICAgZHdMZW5ndGg7LyogR0FQxKPQzbPW0PjKsbzkLLWlzrvKx6OoY2hpcHOjqSovDQorfVRfeldfUF9pcmF0X2dhcF9jb25maWdfcmVxOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgICAgICBMMVc8LT5QSFkNCisgICAgICAgILmmxNw6DQorICAgICAgICAgICAgICAgIEwxV7rNUEhZsuO85LXEQUJPUlQgR0FQxeTWw73Tv9oNCisgICAgICAgIL3hubk6ICAgICAgICANCisgICAgICAgICAgICAgICAgx+vH887vwO2y482j1rnKudPDR0FQz/vPoiBXX1BfQUJPUlRfSVJBVF9HQVBfUkVRDQorICAgICAgICAgICAgICAgIM7vwO2y47K71NrKudPDR0FQtcTIt8jPIFdfUF9BQk9SVF9JUkFUX0dBUF9DTkYNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IHsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX2Fib3J0X2lyYXRfZ2FwX3JlcTsgIA0KKw0KK3R5cGVkZWYgc3RydWN0IHsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX2Fib3J0X2lyYXRfZ2FwX2NuZjsNCisNCisgLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgICAgIFBIWS0+TDFXDQorICAgICAgICC5psTcOg0KKyAgICAgICAgICAgICAgICDO78DtsuPJz7GoZ2FwyrG85NDFz6INCisgICAgICAgIL3hubk6ICAgICAgICANCisgICAgICAgICAgICAgICAgzu/A7bLjyc+xqEdBUMqxvOTQxc+iz/vPoiBXX1BfSU5BQ1RJVkVfVElNRV9JTkQNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U3RhcnRSdEZyYW1lOyAgIC8qR0FQxvDKvLXj1qG6xSzIoda1t7bOpzAtMjU1o6zTyc7vwO2y41JUyrG7+sSjMjU2tcO1vSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTdGFydENoaXBPZmY7ICAgIC8qR0FQxvDKvLXjz+C21NPad1N0YXJ0Q2ZutcRDSElQxqvSxiovDQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdMZW5ndGhDaGlwOyAgLypHQVCzpLbIKi8NCisNCit9VF96V19QX2dhcF9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7ICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VxTnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdHYXBOdW07ICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgV3BhZGRpbmc7DQorICAgIFRfeldfUF9nYXBfaW5mbyAgICAgICAgICAgIGF0R2FwSW5mb1taX1dfUF9NQVhfRlJBTUVfR0FQX05VTV07ICANCit9VF96V19QX2luYWN0X3RpbWVfaW5kOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgICAgICBMMVctPlBIWQ0KKyAgICAgICAguabE3DoNCisgICAgICAgICAgICAgICAgxeTWw0wxyse38cnPsajG5GdhcMqxvOSjrNPDwLS9+NDQMkcvTFRF0KHH+LXEuaTX9w0KKyAgICAgICAgveG5uTogICAgICAgIA0KKyAgICAgICAgICAgICAgICDF5NbDTDHKx7fxyc+xqMbkZ2FwyrG85M/7z6IgV19QX0lETEVfUEVSSU9EX1JFUE1PREVfUkVRDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmVwb3J0aW5nTW9kZTsgICAgICAgICAgLyowOiBub3QgcmVwcm90IGdhcCwgMTpyZXBvcnQgZ2FwKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlcU51bTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorDQorfVRfeldfUF9pZGxlX3BlcmlvZF9yZXBtb2RlX3JlcTsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgILLiwb/Iq77Wyv2+3cDg0M22qNLlIC0tLS0tLS0tZW5kICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KKw0KKyANCisgIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICogICAgICAgICAgICAgICAgICAgICAgICAgyv2+3cPmyKu+1sr9vt3A4NDNtqjS5SBzdGFydCAgICAgICAgICAgICAgICAgICAgKg0KKyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KKyAvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDP+8+io7pQX1JBQ0hfUFJPQ0VEVVJFX1JFUV9FViggV01BQy0+UEhZICkNCisgy7XD9zogTUFDz8K3osvmu/q908jrx+vH87j4zu/A7bLjDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3U2lnbmF0dXJlQml0bWFwOyAgICAgICAvKr/J08PHqcP7Yml0bWFwKDE2zrspLCBCSVQw1rjKvrXa0ru49qOsQklUMTXWuMq+1+6689K7uPajrNPSsd/Kx9futc3OuyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3U3ViY2hhbm5lbEJpdG1hcDsgICAgICAvKr/J08PX09DFtcBiaXRtYXAoMTLOuyksIEJJVDDWuMq+tdrSu7j2o6xCSVQxMda4yr7X7rrz0ru49qOs09Kx38rH1+61zc67Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdMYXN0RmxhZzsgICAgICAgICAgICAgIC8q1rjKvk1BQ7XEUkFDSL3TyOu5/bPM1tC0y7TOyse38dLRzqq12k1tYXi0zqOsvLTX7rrz0ru0zqOoMH4xo6kqLw0KK31UX3pXX1BfcmFjaF9wcm9jZWR1cmVfcmVxOw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIM/7z6KjulBfUkFDSF9QUk9DRURVUkVfSU5EX0VWKCBQSFktPldNQUMgKQ0KKyDLtcP3OiDO78DtsuO72Li0y+a7+r3TyOuzybmmDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UmVzdWx0OyAgICAgICAgICAgICAgICAvKlJBQ0ggQUNDRVNTveG5+6OoMH4yo6mjuzCjukFDS6OsMaO6TkFDS6OsMqO6Tk8gQUNLKi8NCit9VF96V19QX3JhY2hfcHJvY2VkdXJlX2luZDsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDP+8+io7pQX1BPU1RfVkVSRllfRkFJTF9JTkRfRVYoIFBIWS0+V01BQyApDQorIMu1w/c6INTa07LH0EwxzayyvUG5/bPMyrGjrMjnufuyydPDUG9zdHZlcmZ5o6zH0tb3yc/Q0Ma1wsrJz7XEcG9zdCB2ZXJmecqnsNzKsc7vwO2y48nPsajKp7Dc1rjKvg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfSBUX3pXX1BfcG9zdF92ZXJmeV9mYWlsX2luZDsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDP+8+io7pUX3pXX1BfdXBhX2dyYW50X2hhcnFfaW5mbyggUEhZLT5XTUFDICkNCisgy7XD9zog1qHW0LbP1tDO78DtsuPQr7T4tcTK2siovLBIQVJR0MXPog0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0hhcnFJZDsgICAgICAgICAgICAgICAgLyq21NOmvfizzElEo6gwfjejqSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3U3RhdHVzOyAgICAgICAgICAgICAgICAvKrbU06a9+LPMSEFSUbe0wKG94bn7o6wwo7pBQ0ujrCAxo7pOQUNLICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3U2VydkNlbGxTdGF0dXM7ICAgICAgICAvKrf+zvHQocf4yc/WuMq+tcRIQVJRt7TAob3hufujrDCjukFDS6OsIDGjuk5BQ0sqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9oYXJxX3Byb2Nlc3Nfc3RhdHVzOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdDeWNsZTJGbGFnOyAgICAgICAgICAgIC8quMOx6sq208PT2s2o1qpQU8rHt/Egv6rKvNPJQ3ljbGUxvfjI60N5Y2xlMiAgo7owo7rDu9PQvfjI66OsMaO608ljeWNsZTG9+MjrQ3ljbGUyIC64w7HqvMfWu9PQtbHO78DtsuO002N5Y2xlMb34yOtjeWNsZTLKsdbDzrvOqjGjrM2o1qpQU734yOtDeWNsZTKjrMbky/tDeWNsZTG8sEN5Y2xlMsbavOS1xMnPsai1xLjDseq8x775zqowLiovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3QUdGbGFnOyAgICAgICAgICAgICAgICAvKsrHt/HQr7T4QUfQxc+io6gwfjGjqSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3QUdJbmRleDsgICAgICAgICAgICAgICAvKsrayKjWtcv30v2jqDB+MzGjqaOstbF3QUdGbGFnzqoxyrHT0NCnKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdBR1R5cGVBbmRTY29wZTsgICAgICAgIC8qSUTA4NDNus23ts6n0MXPoqOoMH4yo6mjuzA6UHJpbWFyeSBJRCZQZXJIQVJRLCAxOlByaW1hcnkgSUQmQWxsSEFSUSwgMjpTZWNvbmRhcnkgSUSjrLWxd0FHRmxhZ86qMcqx09DQpyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdSR051bTsgICAgICAgICAgICAgICAgIC8q1rjKvrf+zvFSR7rNt8e3/s7xUke1xLj2yv2jqDB+NKOpo7sqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgYXdSR1ZhbHVlW1pfV19QX01BWF9SR19OVU1dOyAgICAvKlJHyv3X6aOoMH4zo6mjrDCx7cq+zt7Qp6OsMbHtyr4iVVAio6wyse3KviJET1dOIqOsM7Htyr4iSE9MRCKjrMbk1tC12tK7uPbErMjPzO7QtLf+zvFSR7XE1rUqLw0KK31UX3pXX1BfaHN1cGFfZ3JhbnRfaW5mbzsNCisNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3SGFycUJpdG1hcDsgICAgICAgICAgICAgIC8q1rjKvsrHt/HQr7T4SEFSUb34s8zQxc+io6hiaXRtYXCjqaO7QklUMKOoTFNCo6mjurbU06bW98a1teOjrEJJVDG21NOmuKjGtbXjKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdHcmFudEJpdG1hcDsgICAgICAgICAgICAgLyrWuMq+yse38dCvtPjK2sio0MXPoqOoYml0bWFwo6mju0JJVDCjqExTQqOpo7q21NOm1vfGtbXjo6xCSVQxttTTprioxrW14yovDQorICAgIFRfeldfUF9oYXJxX3Byb2Nlc3Nfc3RhdHVzICB0SGFycVtaX1dfUF9NQVhfVUxfRlJFUVVFTkNZX05VTV07DQorICAgIFRfeldfUF9oc3VwYV9ncmFudF9pbmZvICAgICB0R3JhbnRbWl9XX1BfTUFYX1VMX0ZSRVFVRU5DWV9OVU1dOw0KK31UX3pXX1BfdXBhX2dyYW50X2hhcnFfaW5mbzsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDP+8+io7pUX3pXX1BfZ3JhbnRfbW9uaXRvcl9yZXEoIFdNQUMtPlBIWSApDQorIMu1w/c6INa4yr61scewVFRJyse38cL61+Ntb25pdG9yzPW8/izO78DtsuO007nMtqi7urTmxNq2wcihDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3RnJlcUlkOyAgICAgICAgICAgICAgICAvKtTYsqjQxc+io6wwse3KvrXa0ru49tTYsqijrDGx7cq+tdq2/rj21NiyqCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3QWN0TW9uaXRvcjsgICAgICAgICAgICAvKta4yr7Kx7fxwvrX401vbml0b3LM9bz+o6wwo7qyu8L61+OjrDGjusL61+MqLw0KK31UX3pXX1BfZ3JhbnRfbW9uaXRvcl9yZXE7DQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgz/vPoqO6UF9FRkFDSF9OT19EQVRBX1JFUV9FViggV01BQy0+UEhZICkNCisgy7XD9zogRUZBQ0jPwm1hY87eyv2+3beiy83KsaOszajWqs7vwO2y487eyv2+3aOszu/A7bLjxvRUMzIxtqjKscb3DQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96V19QX2VmYWNoX25vX2RhdGFfcmVxOw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorIM/7z6KjuldfUF8gTUFDX0RUWF9DWUNMRV9JTkZPX1JFUV9FViggV01BQy0+UEhZICkNCisgy7XD9zogRENIzKxNQUO9+MjrTUFDX0RUWLrzzajWqs7vwO2y49bcxtrEo9DNo6zS1LHjzu/A7bLj1NpFRENIyv2+3cew1+624Mzhx7DSu9aht6JEUENDSCBwcmVhbWJsZQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICB3TWFjRHR4SW5mb0ZsZzsvKsih1rUwu/Ixo6zIoda1zqoxyrGjrLHtyr5NQUNfRFRYY3ljbGUg09DQp6OsyKHWtc6qMMqxzt7Qp6OsvLTNy7P2TUFDX0RUWCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgd01hY0R0eFN0YXJ0Q2ZuOy8qTUFDX0RSWCBjeWNsZbXExvDKvNahusUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgIHdNYWNEdHhTdGFydFN1YkNmbjsvKk1BQ19EUlggY3ljbGW1xMbwyrzX09ahusUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgIHdNYWNEdHhDeWNsZTsvKk1BQ19EUlggY3ljbGW1xNbcxtqzpLbIKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9IFRfeldfUF9tYWNfZHR4X2N5Y2xlX2luZm87DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgz/vPoqO6V19QX1RGQ0lfQ01fSU5GT19JTkRfRVYoIFBIWS0+V01BQyApDQorIMu1w/c6IMO/tM7Jz9DQRFBDSNbYxeTWw8qxLM7vwO2y47GouOY31+lURkNT1tC49lRGQ0m1xNans9bH6b/2IE50cj1bOCwxNF3KsQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKwlXT1JEICAgICAgICAgICAgICAgICAgICAgICAgYXdTdXBGbGFnW1pfV19QX01BWF9VTF9URkNfTlVNXTsgLy8gWl9XX1BfTUFYX1VMX1RGQ19OVU0gPSA2NCwgyv3X6c/Cseqx7cq+dGZjaaOs1KrL2MTayN2x7cq+uMNURkNJyse38dans9ajrDEt1qez1qOsMC2yu9ans9ahow0KK30gVF96V19QX3RmY2lfc3VwX0luZm87DQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgVF96V19QX3RmY2lfc3VwX0luZm8gICBhdFRmY2lTdXBJbmZvW1pfV19QX01BWF9OVFJfTlVNXTsvLyBOdHItOLbU06bK/dfpz8Kx6g0KK30gVF96V19QX3RmY2lfY21fSW5mbzsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDP+8+io7pUX3pXX1BfdWxfZGF0YV9idWZmZXIoIFdNQUMtPlBIWSApDQorIMu1w/c6IMnP0NDK/b7dvdO/2iggt8dVUEEgKQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICBkd1RyY2hCdWZmT2ZmOyAgICAgICAgICAvKrj3tKvK5NDFtcDK/b7d1NrK/dfp1tC21NOmtcTGq9LGo6zS1FdPUkTOqrWlzrujqDB+NTgzo6kqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1RiTnVtQW5kVHJjaElkOyAgICAgICAgLyq0q8rk0MW1wGlkus221NOmtcR0Yr/puPbK/aOsuN84zru21NOmVHJjaCBJZKOstc04zru21NOmVGIgbnVtKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdUYlNpemU7ICAgICAgICAgICAgICAgIC8qVEK/6bTz0KGjrLWlzrtiaXQqLw0KK31UX3pXX1BfdWxfdHJjaF9oZWFkZXI7DQorDQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1RvdGFsTGVuZ3RoOyAgICAgICAgICAgLyrK/b7d19y5stW808O1xFdPUkTK/aOoMH41ODSjqSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3TnVtT2ZUcmNoOyAgICAgICAgICAgICAvKrSryuTQxbXAuPbK/aOoMX44o6kqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1RmY2k7ICAgICAgICAgICAgICAgICAgLyrRodTxtcRUZmNpo6gwfjYzo6kqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFRfeldfUF91bF90cmNoX2hlYWRlciAgICAgICBhdFVsVHJjaEhlYWRlcltaX1dfUF9NQVhfVUxfVFJDSF9OVU1dOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgYXdVbERhdGFbWl9XX1BfTUFYX05PX09GX1VMX0JZVEVTLzJdOw0KK31UX3pXX1BfdWxfZGF0YV9idWZmZXI7DQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgz/vPoqO6VF96V19QX2RsX2RhdGFfYnVmZmVyKCBQSFktPldNQUMgKQ0KKyDLtcP3OiDPwtDQyv2+3b3Tv9ooILfHRFBBICkNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgZHdUcmNoQnVmZk9mZjsgICAgICAgICAgLyq497SryuTQxbXAyv2+3dTayv3X6dbQttTTprXExqvSxqOs0tRXT1JEzqq1pc67o6gwfjU4M6OpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdUcmNoSWQ7ICAgICAgICAgICAgICAgIC8qtKvK5NDFtcBpZCCjqDF+OKOpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdUcmNoVHlwZTsgICAgICAgICAgICAgIC8qtKvK5NDFtcDA4NDNo6gwfjSjqSy8+7rqtqjS5SovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3Q2ZuQW5kVGJOdW07ICAgICAgICAgICAvKsr9vt23osvNyrG1xENmbrrNVGK/6bj2yv2jrLjfOM67zqpUYiBudW2jrLXNOM67zqpDZm4qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1NmbjsgICAgICAgICAgICAgICAgICAgLyrK/b7dt6LLzcqxtcTPtc2z1qG6xaOoMH40MDk1o6kqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1RiU2l6ZTsgICAgICAgICAgICAgICAgLypUQr/ptPPQoaOstaXOu2JpdCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsgICANCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgZHdDcmNDaGVjazsgICAgICAgICAgICAgLypDUkO94bn7IGJpdG1hcCovDQorfVRfeldfUF9kbF90cmNoX2hlYWRlcjsNCisNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3VG90YWxMZW5ndGg7ICAgICAgICAgICAvKsr9vt3X3Lmy1bzTw7XEV09SRMr9o6gwfjU4NKOpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlRyY2g7ICAgICAgICAgICAgIC8qtKvK5NDFtcC49sr9o6gxfjijqSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3VGZjaTsgICAgICAgICAgICAgICAgICAvKtGh1PG1xFRmY2mjqDB+MTI3o6kqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFRfeldfUF9kbF90cmNoX2hlYWRlciAgICAgICBhdERsVHJjaEhlYWRlcltaX1dfUF9NQVhfRExfVFJDSF9OVU1dOyAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgYXdEbERhdGFbWl9XX1BfTUFYX05PX09GX0RMX0JZVEVTLzJdOw0KK31UX3pXX1BfZGxfZGF0YV9idWZmZXI7DQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgz/vPoqO6VF96V19QX2hzdXBhX2J1ZmZlciggV01BQy0+UEhZICkNCisgy7XD9zogyc/Q0Mr9vt2907/aKCBVUEEgKQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0w7ICAgICAgICAgICAgICAgICAgICAgLyqx7cq+yrnTw7jDRS1URkPL+dPQtcRFLURQRENIc6OsyKHWtbe2zqcoMX40KSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3QmV0YUVjOyAgICAgICAgICAgICAgICAvKsih1rW3ts6nNX4yMzmhoyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICBhd0JldGFFZFs0XTsgICAgICAgICAgICAvKndMuPbWtaOsyKHWtbe2zqc1fjM3NyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3U2Y7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qtdrSu8z1RS1kcGRjaLXEU0YuyKHWtbe2zqcwLS01MTIqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfcF9ldGZjX2dhaW5fZmFjdG9yOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdDZm47ICAgICAgICAgICAgICAgICAgIC8qway909ahusUwLS0yNTUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1N1YkZyYW1lTnVtOyAgICAgICAgICAgLyrX09ahusUwLS00Ki8NCit9VF96V19QX3VwYV90cmFuc19mcmFtZV9udW07DQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd05lajsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdOZGF0YUo7DQorfVRfeldfUF9ldGZjX3JtX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXFJZDsgICAgICAgICAgICAgICAgLyrWuMq+tbHHsMrHxMe49tTYsqi21NOmtcTJz9DQyv2+3aOsMLHtyr612tK7uPbU2LKoo6wxse3KvrXatv649tTYsqgqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0VybnRpOyAgICAgICAgICAgICAgICAgLyq0y8r9vt2w/LbU06a1xEVSTlRJKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdIYXJxSWQ7ICAgICAgICAgICAgICAgIC8qSEFSUb34s8xJRKOoMH43o6kqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0V0ZmNpOyAgICAgICAgICAgICAgICAgLyrRodTxtcRFdGZjaaOoMH4xMjejqSovDQorICAgIFRfeldfcF9ldGZjX2dhaW5fZmFjdG9yICAgICB0RXRmY0dhaW5GYWN0b3I7DQorICAgIFRfeldfUF9ldGZjX3JtX2luZm8gICAgICAgICB0RXRmY1JtSW5mbzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdUYlNpemU7ICAgICAgICAgICAgICAgIC8qttTTplRCv+m089ChYml0c6OoMTh+MjI5OTWjqSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UnNuOyAgICAgICAgICAgICAgICAgICAvKlRiv+m21NOmUlNOo6gwfjOjqSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3SGFwcHlCaXQ7ICAgICAgICAgICAgICAvKkhhcHB5IEJpdNa4yr6jqDB+MaOpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdTY2hEYXRhRmc7ICAgICAgICAgICAgIC8q1rjKvrWxx7DKx7fxyse197bIyv2+3aOoMH4xo6kqLw0KKyAgICBUX3pXX1BfdXBhX3RyYW5zX2ZyYW1lX251bSAgdFVwYVRyYW5zRnJhbWVOdW07DQorLy8gICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIGF3SHN1cGFEYXRhW1pfV19QX01BWF9OT19PRl9IU1VQQV9CWVRFUy8yXTsgIC8qVVBByv2+3c230MXPorfFyOu5ss/tUkFNo6xVUEHK/b7d0MXPotaxvdOw4dbBzu/A7bLj07K8/rzTy9nG90UtVVRSIFJBTSovDQorfVRfeldfUF9oc3VwYV9idWZmZXI7DQorDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgz/vPoqO6VF96V19QX2hzZHBhX2J1ZmZlciggUEhZLT5XTUFDICkNCisgy7XD9zogz8LQ0Mr9vt2907/aKCBEUEEgKQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1RiU2l6ZTsgICAgICAgICAgICAgICAgLypUYr/ptPPQoWJpdKOoMTIwfjI3OTUyo6kqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0RhdGFUeXBlOyAgICAgICAgICAgICAgLyrWuMq+vdPK1bXEyv2+3b/pwODQzaOsMKO6xuTL+yAgMaO6UENDSCAgMqO6QkNDSKO7DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDU2kVQQ0jMrLvyRUZBQ0jMrMq508NCQ0NIIFJOVEm94sLryrGjrNTyttTTpndEYXRhVHlwZczu0LRCQ0NIo7sNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINTaRVBDSMyssrvKudPDQkNDSCBSTlRJveLC68qxo6y21NOmd0RhdGFUeXBlzO7QtFBDQ0ijuw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgxuTL+8fpv/bPwndEYXRhVHlwZczu0LTG5Mv7Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIGF3SHNkcGFEYXRhW1pfV19QX01BWF9OT19PRl9IU0RQQV9CWVRFUy8yXTsNCit9VF96V19QX2hzZHBhX2J1ZmZlcjsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK8/7z6KjulBfVEZDX0VURkNfUEFSQU1fSU5EKCBXUEhZLT5XTUFDICkNCivLtcP3OiBMMb2rvMbL47rDtcRURkMgZ2FpbiBmYWN0b3LWtbj4TUFDo6zTw9PaRVRGQ8/e1sa5/bPMyrnTww0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1RmY2k7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLypUZmNp1rUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICBkd0FqTnVtZXJhdG9yTG93OyAgICAgICAgICAgICAgICAvKrzGy+NBasa9t73L+dPDtcS31tfTLLXNMzLOuyovDQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICBkd0FqTnVtZXJhdG9ySGlnaDsgICAgICAgICAgICAgICAvKrzGy+NBasa9t73L+dPDtcS31tfTLLjfMzLOuyovDQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICBkd0FqRGVub21pbmF0b3JMb3c7ICAgICAgICAgICAgICAvKrzGy+NBasa9t73L+dPDtcS31sS4LLXNMzLOuyovDQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICBkd0FqRGVub21pbmF0b3JIaWdoOyAgICAgICAgICAgICAvKrzGy+NBasa9t73L+dPDtcS31sS4LLjfMzLOuyovDQorfVRfeldfUF90ZmNfZ2Fpbl9mYWN0b3I7LypzaWduYWxsZWRHYWluRmFjdG9ycyAmIGNvbXB1dGVkR2FpbkZhY3RvcnMqLw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd2lNYW50aXNzYTsgICAgICAgICAgICAgICAgICAgICAgLyrOssr9Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdpRXhwOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8quLrK/bzTxqvSxqGj1rjK/SovDQorfVRfeldfUF9wY19mbG90X2RhdGE7DQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mVGZjOyAgICAgICAgICAgICAgICAgICAgICAgLypUZmMgyv0qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1VsRHBkY2hOdW07ICAgICAgICAgICAgICAgICAgICAgLyrT61RfeldfUF91bF9kcGNoX3NldHVwX21vZGlmeV9yZXHW0NDF1Kp3TnVtT2ZEUERDSM/gzawqLyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKw0KKyAgICBUX3pXX1BfdGZjX2dhaW5fZmFjdG9yICAgICAgYXRUZmNQYXJhbVtaX1dfUF9NQVhfVUxfVEZDX05VTV07LyrL+dPQVEZDtcRCZXRhQyxCZXRhRCovDQorICAgIFRfeldfUF9wY19mbG90X2RhdGEgICAgICAgICB0UE1heDsNCit9VF96V19QX3RmY19ldGZjX3BhcmFtX2luZDsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK8/7z6KjulRfeldfUF91bF9wb3dlcl9pbmZvKCBXUEhZLT5XTUFDICkNCivLtcP3OiAgIFRGQ7mmwsq/2NbGDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3VGZjUG93ZXJGbGFnOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKsrHt/HQr7T4dGZjIHBvd2VyIGluZm+jqDB+MaOpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdDb21wcmVzc2VkRmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgYXdFeGNlc3NQb3dlckZsYWdbWl9XX1BfTUFYX1VMX1RGQ19OVU1dOyAvKlRGQ0nKx7fxs6y5/dfutPO0q8rkuabCyrXE1rjKvqOsyv3X6c/CserOqlRGQ0mju8r91+nE2sjdzqrI/bj2yrHPtrXEsuLBv73hufujqGJpdG1hcKOpo6xCSVQwo6hMU0KjqaO6tdrSu7j2yrHPtrLiwb+94bn7o6xCSVQxo7q12rb+uPbKsc+2suLBv73hufujrEJJVDKjurXayP249sqxz7ay4sG/veG5+yovDQorfVRfeldfUF91bF9wb3dlcl9pbmZvOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorz/vPoqO6VF96V19QX3VwYV9ldGZjX3Jlc3RyaWN0X2luZm8oIFdQSFktPldNQUMgKQ0KK8u1w/c6ICAgRVRGQ8/e1sa5/bPM0MXPog0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd05waWxvdEM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKtG5y/XWodbQo6zDv7j2yrHPtsnPRFBDQ0i1xHBpbG90IGJpdMr9wb+ho8ih1rW3ts6nM344Yml0Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdOcGlsb3ROOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyq3x9G5y/XWodbQo6zDv7j2yrHPtsnPRFBDQ0i1xHBpbG90IGJpdMr9wb+ho8ih1rW3ts6nM344Yml0Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdOU2xvdEM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyrRucv1xKPKvdah1tCjrLK7t6LLzcr9vt21xMqxz7bK/aGjyKHWtbe2zqcxfjE1Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pXX1BfZHBjaF9jb21wcmVzc2VkX2luZm87DQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0NvbXByZXNzZWRGbGc7ICAgICAgICAgICAgICAgICAgICAgICAvKjAtzt7Rucv1xKPKvdDFz6KjrDEttObU2tG5y/XEo8q90MXPoiovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3QmVsdGFIczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qSHNkcGNjaLXE1PbS5tLy19OjrLe2zqcwfjM4KjE1Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdFc3RpbWF0ZVBkcGNjaEZpbHRlclNsb3ROdW07ICAgICAgICAgLyrCy7KoyrHPtrj2yv0qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFRfeldfUF9kcGNoX2NvbXByZXNzZWRfaW5mbyB0RHBjaENvbXByZXNzZWRJbmZvOyAgICAgICAgICAgICAgICAgIC8q0bnL9cSjyr3Qxc+iKi8NCisgICAgVF96V19QX3BjX2Zsb3RfZGF0YSAgICAgICAgIHdFc3RpbWF0ZVBkcGNjaFRhcmdbWl9XX1BfTUFYX1VMX0ZSRVFVRU5DWV9OVU1dOyAgICAgICAgICAgICAgIC8qRFBDQ0jGwLnAuabCyqOsyv3X6c/Cseowse3Kvtb3xrWjrMr91+nPwrHqMbHtyr64qMa1o6wybXNUVEnKscbAucAzc2xvdHOjrDEwbXNUVEnKscbAucAxNXNsb3RzoaPTw9a4yv3Qzsq9se3KvqGjyOe5+8rH0bnL9cSjyr2jrLjDuabCysrH1dvL47rztcS5psLK1rWjrLy0UERQQ0NILHRhcmdldCxpID0gUERQQ0NILGZpbHRlcmVkLGmhwSAoTnBpbG90LE4vIE5waWxvdCxDKSovDQorfVRfeldfUF91cGFfZXRmY19yZXN0cmljdF9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICB3UHJpbUZyZXFUcmFuc0ZsZzsgICAgICAgICAgICAgICAgICAgICAgLyrW98a1LHBjIHByZWFtYmxlyse38b/Jt6LK/b7do6y78tG5y/XEo8q9Z2Fwyse38b/Jt6LK/b7doaMwo7qyu9TK0O23osvNyv2+3aOsMaO61MrQ7beiyv2+3SovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgd1NlY0ZyZXFUcmFuc0ZsZzsgIA0KKyAgfVRfeldfUF91cGFfdHJhbnNfaW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd050clsgWl9XX1BfTUFYX05UUl9OVU1dOy8qQ03U2k4rMi0tTis51qHW0KOsw7/WodbQtcTVvNPDyrHPtsr9o6x3TnRyWzBdttTTpk4rMtahLM7vwO2y49TaytW1vUNNxeTWw8qxvLDKscnPsaijrNauuvO1xMnPsajC+tfjIENGTiU4PTAgyc+xqKGjyc+xqLXEzOHHsMG/zqoyME1TKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnRyU3RhcnRDZm47Lyogyc+xqLXETnRyWzBdy/nU2tah1qG6xSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfeldfUF9jbV9udHJfaW5mbzsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyC94bm5o7pUX3pXX1BfZGF0YV9mcmFtZV9pbmZvKCBQSFktPldNQUMgKQ0KKyDLtcP3OiDWodbQts/K/b7d0MXPosnPsagNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1VwaDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0R0eEFjdGl2ZTsgICAgICAgICAvKsXk1sPBy0R0eERyeLrzo6zWuMq+RHR4yse38byku+678silu+6juzCjus7e0KejrDGjuta4yr68pLvuo6wyo7rWuMq+yKW77iovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEcnhBY3RpdmU7ICAgICAgICAgLyrF5NbDwctEdHhEcni686Os1rjKvkRyeMrHt/G8pLvuu/LIpbvuo7swo7rO3tCno6wxo7rWuMq+vKS77qOsMqO61rjKvsilu+4qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VjQ2VsbEFjdGl2ZTsgICAgIC8qxeTWw7Xatv7GtbXjuvOjrNa4yr612rb+xrW148rHt/G8pLvuo7swo7rO3tCno6wxo7rWuMq+vKS77qOsMqO61rjKvsilu+4qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmFjaERjaFRyYW5zRmc7ICAgICAgICAgICAgICAgLyrWuMq+UkFDSCxEQ0i0y9ahyse38b/J0tS3osvNyv2+3aOsMKO6srvUytDtt6LLzcr9vt2jrDGjutTK0O23osr9vt0qLyAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDbU50ckluZm9GbGc7DQorICAgIFRfeldfUF9jbV9udHJfaW5mbyAgICAgICAgICAgICAgICAgIHRDbU50ckluZm87DQorICAgIFRfeldfUF91cGFfdHJhbnNfaW5mbyAgICAgICAgICAgICAgdFVwYVRyYW5zSW5mbzsNCisgICAgVF96V19QX3VwYV9ncmFudF9oYXJxX2luZm8gICAgICB0R3JhbnRIYXJxSW5mbzsNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd0NtUGF0dGVybjsgICAgICAgICAgICAgICAgICAgLyrJz7Go0bnL9cSjyr3NvNH5o6zDv7j219PWocnPsajSu7TOo6zJz7GotcTKxzO49tfT1qHWrrrztcTWtSovDQorICAgIA0KKyAgICBUX3pXX1BfdWxfcG93ZXJfaW5mbyAgICAgICAgICAgICAgIHRVbFBvd2VySW5mbzsvKtXrttREUENILM7vwO2y48nPsai1xMzhx7DBv8rHMtahKi8NCisNCisgICAgVF96V19QX3VwYV9ldGZjX3Jlc3RyaWN0X2luZm8gICAgdEV0ZmNSZXN0cmljdEluZm87LyrV67bUVVBBo6zO78DtsuPJz7GotcTM4cewwb/KxzK49tfT1qEqLw0KK31UX3pXX1BfZGF0YV9mcmFtZV9pbmZvOyANCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBMMVctPlBIWQ0KKyAgICDKwrz+o7pXX1BfWldQQ0dfUkVRX0VWDQorICAgILmmxNw6DQorICAgICAgICDQ3rjEL7Lp0a9Xzu/A7bLjxeTWw7LOyv2how0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3QgDQorew0KKyAgICBXT1JEICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICB3Q21kOyAgICAgIC8qIMP8we66xaOsttTTprK7zay1xM7vwO2y47mmxNwgKi8NCisgICAgV09SRCAgICAgICBhd1ZhbEZnW1pfWldQQ0dfVkFMRkdfTlVNXTsgICAvKiCx7cq+YWR3VmFsyse38bTm1NqjrDCx7cq+sru05tTao6wxse3KvrTm1NogKi8NCisgICAgRFdPUkQgICAgICBhZHdWYWxbWl9aV1BDR19WQUxGR19OVU1dOyAgICAvKiCyzsr9wdCx7aOs0N64xC+2wcihtcTO78DtsuOyzsr9o6yyzsr9yrW8yrqs0uXTyc7vwO2y47j4s/YgKi8NCit9VF96V19QX1p3cGNnX1JlcTsgDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgUEhZLT5MMVcNCisgICAgysK8/qO6V19QX1pXUENHX0NORl9FVg0KKyAgICC5psTcOg0KKyAgICAgICAg0N64xC+y6dGvV87vwO2y48Xk1sOyzsr9tcTP7NOmz/vPoqGjDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCANCit7DQorICAgIFdPUkQgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgIHdDbWQ7ICAgICAgLyogw/zB7rrFo6y21NOmsrvNrLXEzu/A7bLjuabE3KOsYk1vZGU9MC8xtrzT0NCnICovDQorICAgIFdPUkQgICAgICAgd1JzbHQ7ICAgICAvKiCx7cq+yejWw73hufujrFpfVFJVRcno1sOzybmmo6xaX0ZBTFNFyejWw8qnsNwgIHdDbWTOqsno1sPD/MHuyrHT0NCnICovDQorICAgIFdPUkQgICAgICAgYXdWYWxGZ1taX1pXUENHX1BBUkFNX05VTV07IC8qsLTV1c/Cseq6zWR3VmFs1tDWtdK70ru21NOmo6xiVmFsMUZnWzBdse3KvmR3VmFsWzBdyse38bTm1Nos0sC0zsDgzcajrDCx7cq+sru05tTao6wxse3KvrTm1NoqLw0KKyAgICBMT05HICAgICAgIGFsVmFsW1pfWldQQ0dfUEFSQU1fTlVNXTsgICAvKrLOyv0xL7LOyv0yoa2jrNDeuMQvtsHIobXEzu/A7bLjss7K/aOsss7K/cq1vMq6rNLl08nO78DtsuO4+LP2Ki8NCit9VF96V19QX1p3cGNnX0NuZjsNCisNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBMMVctPlBIWQ0KKyAgICDKwrz+o7pXX1BfUlBJX1NFVF9SRVFfRVYNCisgICAguabE3DoNCisgICAgICAgIMno1sNXUEhZyrnTw7XE1+6087eiyeS5psLKtcRSUEkgVkFVTEUNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IA0KK3sNCisgICAgV09SRCAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgd1JwaTsgLyogUFVNQVi21NOmtcRSUEm1tc67o6y3ts6nMC8xLzIgKi8NCit9VF96V19QX3JwaV9zZXRfcmVxOyANCisNCisNCisjZGVmaW5lICAgWl9NQVhfUlBJX05SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCWVRFKTMNCisjZGVmaW5lICAgWl9XX1JQSV9TVVBQT1JUX01BWF9CQU5EICAgICAgICAgIChCWVRFKTgNCisNCisNCit0eXBlZGVmIHN0cnVjdCANCit7DQorICAgIFdPUkQgICAgd0JhbmQ7ICAgICAgICAvKiC21NOmtcRCQU5EusUgKi8NCisgICAgV09SRCAgICBiUHVtYXhbWl9NQVhfUlBJX05SXTsgICAvKiDS1HJwac6qaW5kZXjIt8jP1+6087eiyeS5psLKcHVtYXggKi8NCit9VF96QmFuZFJwaUNmZzsgDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgTDFXLT5QSFkNCisgICAgysK8/qO6V19QX1JQSV9DRkdfUkVRX0VWDQorICAgILmmxNw6DQorICAgICAgICDF5NbDV8/COLj2QkFORKOsw7+49kJBTkTPwlJQSbrNUFVNQVi1xNOzyeS52M+1o6zG5NbQUlBJt7bOpzB+Mg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3QgDQorew0KKyAgICBXT1JEICAgIHdNc2dJZDsNCisgICAgVF96QmFuZFJwaUNmZyAgICB0V0JhbmRScGlDZmdbWl9XX1JQSV9TVVBQT1JUX01BWF9CQU5EXTsNCit9VF96V19QX3JwaV9jZmdfcmVxOw0KKw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICogICAgICAgICAgICAgICAgICAgICAgICAgyv2+3cPmyKu+1sr9vt3A4NDNtqjS5SBlbmQgICAgICAgICAgICAgICAgICAgKg0KKyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KKw0KKw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqICAgICAgICBQU9PrV1BIWSC5ss/tRERStcQ1TUIgv9W85CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisjaWYgMA0KKyNpZiBkZWZpbmVkIChfQ0hJUF9aWDI5NzU1MCkNCisjZGVmaW5lIEREUl9CQVNFX0FERFJfRk9SX1cgICAgICAgICAgICAweDU4MDAwMDANCisjZW5kaWYNCisjaWYgZGVmaW5lZCAoX0NISVBfWlgyODA0KQ0KKyNkZWZpbmUgRERSX0JBU0VfQUREUl9GT1JfVyAgICAgICAgICAgMHgxNTgwMDAwMA0KKyNlbmRpZg0KKw0KKyNlbmRpZg0KKy8qUFPT63Boebmyz+1ERFK4+b7d0rXO8cfpv/a31rPJNbj2tci8tiovDQorI2RlZmluZSBQU19XUEhZX0RMX0RBVEFfRERSX0dSQURFX05VTSAgICAgICAgICAgKDUpDQorI2RlZmluZSBQU19NQUNfSEVBRF9JRk5PX1NJWkUgICAgICAgICAgICAgICAgICAgNjIwLy9lYzYxNjAwMDI1ODQwMQ0KKw0KKyNkZWZpbmUgUFNfV1BIWV9ETF9EQVRBX1RZUEUwX0dSQURFX0JVRl9TSVpFICAgIDAvLyg4NiArIFBTX01BQ19IRUFEX0lGTk9fU0laRSkNCisjZGVmaW5lIFBTX1dQSFlfRExfREFUQV9UWVBFMV9HUkFERV9CVUZfU0laRSAgICAwLy8oMjM4ICsgUFNfTUFDX0hFQURfSUZOT19TSVpFKQ0KKyNkZWZpbmUgUFNfV1BIWV9ETF9EQVRBX1RZUEUyX0dSQURFX0JVRl9TSVpFICAgIDAvLyg2ODIgKyBQU19NQUNfSEVBRF9JRk5PX1NJWkUpDQorI2RlZmluZSBQU19XUEhZX0RMX0RBVEFfVFlQRTNfR1JBREVfQlVGX1NJWkUgICAgMC8vKDE5ODAgKyBQU19NQUNfSEVBRF9JRk5PX1NJWkUpDQorI2RlZmluZSBQU19XUEhZX0RMX0RBVEFfVFlQRTRfR1JBREVfQlVGX1NJWkUgICAgKDUyODIgKyBQU19NQUNfSEVBRF9JRk5PX1NJWkUpDQorDQorDQorI2RlZmluZSBQU19XUEhZX0RMX0RBVEFfVFlQRTBfR1JBREVfQlVGX05VTSAgICAgMC8vNTA1DQorI2RlZmluZSBQU19XUEhZX0RMX0RBVEFfVFlQRTFfR1JBREVfQlVGX05VTSAgICAgMC8vNTA1DQorI2RlZmluZSBQU19XUEhZX0RMX0RBVEFfVFlQRTJfR1JBREVfQlVGX05VTSAgICAgMC8vNDAwDQorI2RlZmluZSBQU19XUEhZX0RMX0RBVEFfVFlQRTNfR1JBREVfQlVGX05VTSAgICAgMC8vMzAwDQorI2RlZmluZSBQU19XUEhZX0RMX0RBVEFfVFlQRTRfR1JBREVfQlVGX05VTSAgICAgMTMxLy8yMDANCisNCisjZGVmaW5lIFBTX1dQSFlfRExfREFUQV9UWVBFX0dSQURFX0JVRl9OVU1fQUxMICAgIChQU19XUEhZX0RMX0RBVEFfVFlQRTBfR1JBREVfQlVGX05VTSArIFBTX1dQSFlfRExfREFUQV9UWVBFMV9HUkFERV9CVUZfTlVNICsgUFNfV1BIWV9ETF9EQVRBX1RZUEUyX0dSQURFX0JVRl9OVU1cDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArUFNfV1BIWV9ETF9EQVRBX1RZUEUzX0dSQURFX0JVRl9OVU0gKyBQU19XUEhZX0RMX0RBVEFfVFlQRTRfR1JBREVfQlVGX05VTSkvL2FkZCBieSBzaGlkZXlvdSANCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiAgICAgICAgUFPT61dQSFkgubLP7VJBTbXENjBLIL/VvORQU19QSFlfQkFTRV9BRERSKzE0NEstLS1QU19QSFlfQkFTRV9BRERSKzIwOEsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorI2lmZGVmIFpfU0VORF9UT19TSU1QSFkNCisjZGVmaW5lICAgIFBTX1BIWV9CQVNFX0FERFIgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0Ly+y+sa3z9/M4bmpDQorI2RlZmluZSAgICBQU19XUEhZX0JBU0VfQUREUiAgICAgICAgICAgICAgICAgICAgKFBTX1BIWV9CQVNFX0FERFIgKzI0MDAwKQ0KKyNlbHNlDQorI2RlZmluZSAgICBQU19XUEhZX0JBU0VfQUREUiAgICAgICAgICAgICAgICAgICAgSVJBTV9CQVNFX0FERFJfRk9SX1cNCisjZW5kaWYNCisNCisjaWYgMA0KKyNkZWZpbmUgICAgUFNfV1BIWV9FVkVOVF9BRERSICAgICAgICAgICAgICAgICAgIFBTX1dQSFlfQkFTRV9BRERSDQorDQorLypQUyC4+M7vwO2y47eiy83P+8+itcTG8Mq8tdjWtyovDQorI2RlZmluZSAgICBQU19UT19XUEhZX0VWRU5UX0FERFIgICAgICAgICAgICAgICAgUFNfV1BIWV9CQVNFX0FERFINCisNCisjZGVmaW5lICAgIFBTX1RPX1dQSFlfRU5FTlRfQlVGX1NJWkUgICAgICAgICAgICAoMFg2MUJDID4+IENQVV9TSElGVCkgICAgIC8vYWRkIGJ5IHNoaWRleW91ICAvKlBTLT5XUEhZICDP+8+isr+31tW808O1xFJBTb/VvOS089ChKi8NCisNCisvKs7vwO2y47j4UFO3osvNz/vPorXExvDKvLXY1rcqLw0KKyNkZWZpbmUgICAgV1BIWV9UT19QU19FVkVOVF9BRERSICAgICAgICAgICAgICAgIChQU19XUEhZX0JBU0VfQUREUiArIFBTX1RPX1dQSFlfRU5FTlRfQlVGX1NJWkUpDQorDQorLypQU9PrV1BIWSAgz/vPorK/t9bVvNPDtcRSQU2/1bzktPPQoSovDQorI2RlZmluZSAgICBQU19XUEhZX0VORU5UX0JVRl9TSVpFICAgICAgICAgICAgICAgKDBYODExMCA+PiBDUFVfU0hJRlQpDQorI2VuZGlmDQorDQorLyrK/b7dsaO7pMf4tPPQoSovDQorI2RlZmluZSAgICBQU19XUEhZX1NBRkVHVUFSRF9TSVpFICAgICAgICAgICAgICAgKDQgPj4gQ1BVX1NISUZUKQ0KKw0KKyNpZiAwDQorLyrG1c2oyc/Q0Mr9vt21xMbwyry12Na3Ki8NCisjZGVmaW5lICAgIFBTX1dQSFlfVUxfREFUQV9BRERSICAgICAgICAgICAgICAgICAoUFNfV1BIWV9FVkVOVF9BRERSICsgUFNfV1BIWV9FTkVOVF9CVUZfU0laRSArUFNfV1BIWV9TQUZFR1VBUkRfU0laRSkNCisNCisjZGVmaW5lICAgUFNfV1BIWV9VTF9SQUNIX0RQQ0hfQUREUiAgICAgICAgICAgICBQU19XUEhZX1VMX0RBVEFfQUREUg0KKyNkZWZpbmUgICBQU19XX1VMX1JBQ0hfRFBDSF9CVUZfU0laRSAgICAgICAgICAgICgyKiBzaXplb2YoVF96V19QX3VsX2RhdGFfYnVmZmVyKSkNCisjZW5kaWYNCisvKlVQQb/Y1sbQxc+isr+31sbwyry12Na3Ki8NCisjZGVmaW5lICBQU19XUEhZX1VQQV9DVFJMX0lORk9fSEFSUV9OVU0gICAgICAgICA4ICAgLy9hZGQgYnkgc2hpZGV5b3UgLLrzw+bI57n71qez1k1JTU/KsdDo0qq4xLPJMTYNCisvLyNkZWZpbmUgIFBTX1dQSFlfVVBBX0NUUkxfSU5GT19BRERSICAgICAgICAgICAgIChQU19XX1VMX1JBQ0hfRFBDSF9CVUZfU0laRSArIFBTX1dQSFlfVUxfUkFDSF9EUENIX0FERFIrIDIqIFBTX1dQSFlfU0FGRUdVQVJEX1NJWkUpICAvL21vZGlmeSBieSBzaGlkZXlvdSwgIGFkZCA0IGJ5dGUgZm9yIHNoYXJlIGhhcnFpZA0KKyNkZWZpbmUgIFBTX1dQSFlfVVBBX0NUUkxfSU5GT19BRERSICAgICAgICAgICAgIChQU19XUEhZX0JBU0VfQUREUiArIDIqIFBTX1dQSFlfU0FGRUdVQVJEX1NJWkUpICAvL21vZGlmeSBieSBzaGlkZXlvdSwgIGFkZCA0IGJ5dGUgZm9yIHNoYXJlIGhhcnFpZA0KKyNkZWZpbmUgIFBTX1dQSFlfVVBBX09ORV9IQVJRX0NUUkxfSU5GT19CVUZfU0laRSAgICAgKHNpemVvZihUX3pXX1BfaHN1cGFfYnVmZmVyKSkNCisjZGVmaW5lICBQU19XUEhZX1VQQV9DVFJMX0lORk9fSEFSUTBfQUREUiAgICBQU19XUEhZX1VQQV9DVFJMX0lORk9fQUREUg0KKyNkZWZpbmUgIFBTX1dQSFlfVVBBX0NUUkxfSU5GT19IQVJRMV9BRERSICAgIChQU19XUEhZX1VQQV9DVFJMX0lORk9fSEFSUTBfQUREUiArIFBTX1dQSFlfVVBBX09ORV9IQVJRX0NUUkxfSU5GT19CVUZfU0laRSkNCisjZGVmaW5lICBQU19XUEhZX1VQQV9DVFJMX0lORk9fSEFSUTJfQUREUiAgICAoUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0hBUlEwX0FERFIgKyAoMipQU19XUEhZX1VQQV9PTkVfSEFSUV9DVFJMX0lORk9fQlVGX1NJWkUpKQ0KKyNkZWZpbmUgIFBTX1dQSFlfVVBBX0NUUkxfSU5GT19IQVJRM19BRERSICAgIChQU19XUEhZX1VQQV9DVFJMX0lORk9fSEFSUTBfQUREUiArICgzKlBTX1dQSFlfVVBBX09ORV9IQVJRX0NUUkxfSU5GT19CVUZfU0laRSkpDQorI2RlZmluZSAgUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0hBUlE0X0FERFIgICAgKFBTX1dQSFlfVVBBX0NUUkxfSU5GT19IQVJRMF9BRERSICsgKDQqUFNfV1BIWV9VUEFfT05FX0hBUlFfQ1RSTF9JTkZPX0JVRl9TSVpFKSkNCisjZGVmaW5lICBQU19XUEhZX1VQQV9DVFJMX0lORk9fSEFSUTVfQUREUiAgICAoUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0hBUlEwX0FERFIgKyAoNSpQU19XUEhZX1VQQV9PTkVfSEFSUV9DVFJMX0lORk9fQlVGX1NJWkUpKQ0KKyNkZWZpbmUgIFBTX1dQSFlfVVBBX0NUUkxfSU5GT19IQVJRNl9BRERSICAgIChQU19XUEhZX1VQQV9DVFJMX0lORk9fSEFSUTBfQUREUiArICg2KlBTX1dQSFlfVVBBX09ORV9IQVJRX0NUUkxfSU5GT19CVUZfU0laRSkpDQorI2RlZmluZSAgUFNfV1BIWV9VUEFfQ1RSTF9JTkZPX0hBUlE3X0FERFIgICAgKFBTX1dQSFlfVVBBX0NUUkxfSU5GT19IQVJRMF9BRERSICsgKDcqUFNfV1BIWV9VUEFfT05FX0hBUlFfQ1RSTF9JTkZPX0JVRl9TSVpFKSkNCisNCisjZGVmaW5lICBQU19XUEhZX1VQQV9DVFJMX0lORk9fQlVGX1NJWkUgICAgICAgICgxNiogUFNfV1BIWV9VUEFfT05FX0hBUlFfQ1RSTF9JTkZPX0JVRl9TSVpFKS8qv7zCx7W91qez1k1JTU+1xMfpv/YqLw0KKw0KKw0KKy8qzu/A7bLj07K8/lctRVVUUrK/t9ZVUEG05rfFyv2+3bXY1rejuiovDQorI2lmIGRlZmluZWQgKF9DSElQX1pYMjgwNCkNCisvKjI4MDTGvcyoo7ogMHg1MDQwIDAwMDA7IHdwaHnM4bmpKi8NCisjZGVmaW5lICBXUEhZX1VQQV9EQVRBX0JBU0VfQUREUiAgICAgICAgICAgICAgICAgICAgICgwWDQwQjAwMDAwID4+IENQVV9TSElGVCkNCisjZW5kaWYNCisjaWYgZGVmaW5lZChfQ0hJUF9aWDI5NzUyMCkgfHwgZGVmaW5lZChfQ0hJUF9aWDI5NzUyMFYyKSAgfHwgZGVmaW5lZChfQ0hJUF9aWDI5NzUyMFYxXzEpDQorLyo3NTIwxr3MqKO6ICovDQorI2RlZmluZSAgV1BIWV9VUEFfREFUQV9CQVNFX0FERFIgICAgICAgICAgICAgICAgICAgICAoMFhBNDAwMDAwMCA+PiBDUFVfU0hJRlQpDQorI2VuZGlmDQorI2lmIGRlZmluZWQgKF9DSElQX1pYMjk3NTIwVjMpIA0KKy8qNzUyMFYzxr3MqKO6ICovDQorI2RlZmluZSAgV1BIWV9VUEFfREFUQV9CQVNFX0FERFIgICAgICAgICAgICAgICAgICAgICBERFJfQkFTRV9BRERSX1dVUEFfREFUQS8vKDBYMjc1OUFDMDAgPj4gQ1BVX1NISUZUKQ0KKyNlbmRpZg0KKyNpZiBkZWZpbmVkIChfQ0hJUF9aWDI5NzU1MEEpDQorLyo3NTUwQca9zKijujB4QTI4MCAwMDAwOyovDQorI2RlZmluZSAgV1BIWV9VUEFfREFUQV9CQVNFX0FERFIgICAgICAgICAgICAgICAgICAgICAoMFhBMjgwMDAwMCA+PiBDUFVfU0hJRlQpDQorI2VuZGlmDQorI2lmIGRlZmluZWQgKF9DSElQX1pYMjk3NTIwVjMpIA0KKy8qNzUyMFYzxr3MqKO6IFVQQcr9vt3U2kREUsnPKi8NCisjZGVmaW5lICBXUEhZX1VQQV9EQVRBX0hBUlFfQkFTRV9BRERSICAgICAgICAgICAgICAgIDANCisjZGVmaW5lICBXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTFfQlVGX1NJWkUgICAgICAgICAgICgoMFgxNjgqNCkgPj4gQ1BVX1NISUZUKQ0KKyNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfVFRJMTBfSEFSUTFfQlVGX1NJWkUgICAgICAgICAgKCgwWDJkMCo0KSA+PiBDUFVfU0hJRlQpDQorI2Vsc2UNCisjZGVmaW5lICBXUEhZX1VQQV9EQVRBX0hBUlFfQkFTRV9BRERSICAgICAgICAgICAgICAgICgwWGIwMDAqNCkNCisjZGVmaW5lICBXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTFfQlVGX1NJWkUgICAgICAgICAgICgwWDE2OCo0KQ0KKyNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfVFRJMTBfSEFSUTFfQlVGX1NJWkUgICAgICAgICAgKDBYMmQwKjQpDQorI2VuZGlmDQorDQorI2RlZmluZSAgV1BIWV9VUEFfREFUQV9UVEkyX0hBUlEwX0JVRl9BRERSICAgKFdQSFlfVVBBX0RBVEFfQkFTRV9BRERSICsgV1BIWV9VUEFfREFUQV9IQVJRX0JBU0VfQUREUiApIA0KKyNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfVFRJMl9IQVJRMV9CVUZfQUREUiAgIChXUEhZX1VQQV9EQVRBX0JBU0VfQUREUiArIFdQSFlfVVBBX0RBVEFfSEFSUV9CQVNFX0FERFIgKyBXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTFfQlVGX1NJWkUpIA0KKyNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfVFRJMl9IQVJRMl9CVUZfQUREUiAgIChXUEhZX1VQQV9EQVRBX0JBU0VfQUREUiArIFdQSFlfVVBBX0RBVEFfSEFSUV9CQVNFX0FERFIgKyAyKldQSFlfVVBBX0RBVEFfVFRJMl9IQVJRMV9CVUZfU0laRSkgDQorI2RlZmluZSAgV1BIWV9VUEFfREFUQV9UVEkyX0hBUlEzX0JVRl9BRERSICAgKFdQSFlfVVBBX0RBVEFfQkFTRV9BRERSICsgV1BIWV9VUEFfREFUQV9IQVJRX0JBU0VfQUREUiArIDMqV1BIWV9VUEFfREFUQV9UVEkyX0hBUlExX0JVRl9TSVpFKSANCisjZGVmaW5lICBXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTRfQlVGX0FERFIgICAoV1BIWV9VUEFfREFUQV9CQVNFX0FERFIgKyBXUEhZX1VQQV9EQVRBX0hBUlFfQkFTRV9BRERSICsgNCpXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTFfQlVGX1NJWkUpIA0KKyNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfVFRJMl9IQVJRNV9CVUZfQUREUiAgIChXUEhZX1VQQV9EQVRBX0JBU0VfQUREUiArIFdQSFlfVVBBX0RBVEFfSEFSUV9CQVNFX0FERFIgKyA1KldQSFlfVVBBX0RBVEFfVFRJMl9IQVJRMV9CVUZfU0laRSkgDQorI2RlZmluZSAgV1BIWV9VUEFfREFUQV9UVEkyX0hBUlE2X0JVRl9BRERSICAgKFdQSFlfVVBBX0RBVEFfQkFTRV9BRERSICsgV1BIWV9VUEFfREFUQV9IQVJRX0JBU0VfQUREUiArIDYqV1BIWV9VUEFfREFUQV9UVEkyX0hBUlExX0JVRl9TSVpFKSANCisjZGVmaW5lICBXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTdfQlVGX0FERFIgICAoV1BIWV9VUEFfREFUQV9CQVNFX0FERFIgKyBXUEhZX1VQQV9EQVRBX0hBUlFfQkFTRV9BRERSICsgNypXUEhZX1VQQV9EQVRBX1RUSTJfSEFSUTFfQlVGX1NJWkUpIA0KKw0KKyNkZWZpbmUgIFdQSFlfVVBBX0RBVEFfVFRJMTBfSEFSUTBfQlVGX0FERFIgICAoV1BIWV9VUEFfREFUQV9CQVNFX0FERFIgKyBXUEhZX1VQQV9EQVRBX0hBUlFfQkFTRV9BRERSICkgDQorI2RlZmluZSAgV1BIWV9VUEFfREFUQV9UVEkxMF9IQVJRMV9CVUZfQUREUiAgIChXUEhZX1VQQV9EQVRBX0JBU0VfQUREUiArIFdQSFlfVVBBX0RBVEFfSEFSUV9CQVNFX0FERFIgKyBXUEhZX1VQQV9EQVRBX1RUSTEwX0hBUlExX0JVRl9TSVpFKSANCisjZGVmaW5lICBXUEhZX1VQQV9EQVRBX1RUSTEwX0hBUlEyX0JVRl9BRERSICAgKFdQSFlfVVBBX0RBVEFfQkFTRV9BRERSICsgV1BIWV9VUEFfREFUQV9IQVJRX0JBU0VfQUREUiArIDIqV1BIWV9VUEFfREFUQV9UVEkxMF9IQVJRMV9CVUZfU0laRSkgDQorI2RlZmluZSAgV1BIWV9VUEFfREFUQV9UVEkxMF9IQVJRM19CVUZfQUREUiAgIChXUEhZX1VQQV9EQVRBX0JBU0VfQUREUiArIFdQSFlfVVBBX0RBVEFfSEFSUV9CQVNFX0FERFIgKyAzKldQSFlfVVBBX0RBVEFfVFRJMTBfSEFSUTFfQlVGX1NJWkUpIA0KKw0KKw0KKy8q1qHW0LbP0MXPorD8wKjK/b7dsr+31qOs0tS8sNahusWjrFBT0+vO78DtsuO5ss/ttcTG5Mv70MXPosjnRFJYIEdSQU5UIFJFUdDFz6IqLw0KKyNkZWZpbmUgIFBTX1dQSFlfRlJBTUVfREFUQV9JTkZPX0FERFIgICAgICAgICAgICAgIChQU19XUEhZX1VQQV9DVFJMX0lORk9fQUREUiAgKyBQU19XUEhZX1VQQV9DVFJMX0lORk9fQlVGX1NJWkUgKyBQU19XUEhZX1NBRkVHVUFSRF9TSVpFKQ0KKyNkZWZpbmUgIFBTX1dQSFlfRlJBTUVfREFUQV9CVUZfU0laRSAgICAgICAgICAgICAgICAgKHNpemVvZihUX3pXX1BfZGF0YV9mcmFtZV9pbmZvKSkNCisNCisNCisvKtahusXP4LnY0MXPoiovDQorI2RlZmluZSBQU19XUEhZX0NGTl9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUFNfV1BIWV9GUkFNRV9EQVRBX0JVRl9TSVpFICsgUFNfV1BIWV9GUkFNRV9EQVRBX0lORk9fQUREUiArIFBTX1dQSFlfU0FGRUdVQVJEX1NJWkUpDQorI2RlZmluZSBQU19XUEhZX1NVQkZSQU1FX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCg0Pj5DUFVfU0hJRlQpICsgUFNfV1BIWV9DRk5fQUREUikNCisjZGVmaW5lIFBTX1dQSFlfU0ZOX0FERFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoND4+Q1BVX1NISUZUKSArIFBTX1dQSFlfU1VCRlJBTUVfQUREUikNCisjZGVmaW5lIFBTX1dQSFlfUlRTRk5fQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKDQ+PkNQVV9TSElGVCkgKyBQU19XUEhZX1NGTl9BRERSKQ0KKyNkZWZpbmUgUFNfV1BIWV9SVENGTl9BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoND4+Q1BVX1NISUZUKSArIFBTX1dQSFlfUlRTRk5fQUREUikvKs7vwO2y48O/uPbWodbQts/Jz7GotcRSVCDP4LnYQ0ZOo6zIoda1t7bOpzAtMjU1LtPJzu/A7bLjUlTKsbv6xKMyNTa1w7W9Ki8NCisNCisvKtPD09rK/b7dt6LLzb/Y1sa1xFRyYW5zRmxnLs7vwO2y49C0LFBTtsEqLw0KKyNkZWZpbmUgUFNfV1BIWV9UUkFOU0ZMR19BRERSICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoND4+Q1BVX1NISUZUKSArIFBTX1dQSFlfUlRDRk5fQUREUikNCisNCisvKtPD09pEUli/2NbGtcRHUkFOVCBNT05JVE9SIFJFUS5QU9C0zu/A7bLj1qHNt7bBKi8NCisjZGVmaW5lIFBTX1dQSFlfR1JBTlRfTU9OSVRPUl9SRVFfQUREUiAgICAgICAgKCg0Pj5DUFVfU0hJRlQpICsgUFNfV1BIWV9UUkFOU0ZMR19BRERSICsgUFNfV1BIWV9TQUZFR1VBUkRfU0laRSkNCisjZGVmaW5lIFBTX1dQSFlfR1JBTlRfTU9OSVRPUl9SRVFfQlVGX1NJWkUgIChzaXplb2YoIFRfeldfUF9ncmFudF9tb25pdG9yX3JlcSkpDQorDQorDQorLyrH/bavzqy7pLmyz+1ERFK1xFJJTkcgQlVGttPB0NDFz6KjutW808NCVUa6zb/Vz9BCVUYgYWRkIGJ5IHNoaWRleW91Ki8NCisNCisvKklSQU0gREwgZnJlZSBidWYgYWRkciAgYWRkIGJ5IHNoaWRleW91Ki8NCisjZGVmaW5lIFBTX1dQSFlfRlJFRV9CVUZfQUREUiAgICAoUFNfV1BIWV9HUkFOVF9NT05JVE9SX1JFUV9BRERSICsgUFNfV1BIWV9HUkFOVF9NT05JVE9SX1JFUV9CVUZfU0laRSkNCisjZGVmaW5lIFBTX1dQSFlfRlJFRV9CVUZfU0laRSAgICAoKDIqNCpQU19XUEhZX0RMX0RBVEFfRERSX0dSQURFX05VTSArICA0KihQU19XUEhZX0RMX0RBVEFfVFlQRV9HUkFERV9CVUZfTlVNX0FMTCArIFBTX1dQSFlfRExfREFUQV9ERFJfR1JBREVfTlVNKSk+PkNQVV9TSElGVCkNCisNCisjaWYgMA0KKy8qSVJBTSBETCBzZW5kIGJ1ZiBhZGRyICBhZGQgYnkgc2hpZGV5b3UqLw0KKyNkZWZpbmUgUFNfV1BIWV9TRU5EX0JVRl9OVU0gICAgMTUgICAgICANCisjZGVmaW5lIFBTX1dQSFlfU0VORF9CVUZfQUREUiAgICAoUFNfV1BIWV9GUkVFX0JVRl9BRERSICsgUFNfV1BIWV9GUkVFX0JVRl9TSVpFKQ0KKyNkZWZpbmUgUFNfV1BIWV9TRU5EX0JVRl9TSVpFICAgICgoMio0ICsgNCAqIChQU19XUEhZX1NFTkRfQlVGX05VTSArIDEpKT4+Q1BVX1NISUZUKQ0KKyNlbmRpZg0KKw0KKy8qSEZOIGFkZHJlc3MgIGFkZCBieSBzaGlkZXlvdS5vdXRwdXRlZCBieSB3cGh5IGFuZCB1c2VkIGZvciBUTVQgKi8NCisjZGVmaW5lIFdQSFlfSEZOX0FERFJFU1MgIChQU19XUEhZX0ZSRUVfQlVGX0FERFIgKyBQU19XUEhZX0ZSRUVfQlVGX1NJWkUpDQorI2RlZmluZSBXUEhZX0hGTl9TSVpFICAgICAgICAgKDB4NCA+PkNQVV9TSElGVCkNCisjZW5kaWYgICAgICAgIC8vIFpfUFNfV1BIWV9JTlRFUkZBQ0VfSA0KKw0KKw0KKw0KZGlmZiAtLWdpdCBhL3B1Yi9pbmNsdWRlL3BzX3BoeS9ycG1zZ19jaGFubmVsLmggYi9wdWIvaW5jbHVkZS9wc19waHkvcnBtc2dfY2hhbm5lbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2MmY3OGIKLS0tIC9kZXYvbnVsbAorKysgYi9wdWIvaW5jbHVkZS9wc19waHkvcnBtc2dfY2hhbm5lbC5oCkBAIC0wLDAgKzEsMTE5IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKrDmsb7L+dPQIChDKTIwMTfW0NDLzajRtrnJt93T0M/euavLvg0KKyAqICDEo7/pw/sgIKO6UFMtUEhZzajRts2otcC2qNLlDQorICogIM7EvP7D+yAgICBwc19waHlfY2hhbm5lbC5oDQorICogIM7EvP6x6sq2o7oNCisgKiAgz+C52M7EvP6jug0KKyAqICDKtc/WuabE3KO60K3S6dW7us3O78DtsuPWrrzkzajRts2otcC1xLao0uUNCisgKiAg1/fV3yAgICAgICAgo7oNCisgKiAgsOaxviAgICAgICAgo7oNCisgKiAgzeqzycjVxtqjug0KKyAqICDG5Mv8y7XD96O60MK9qA0KKyAqDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKyNpZm5kZWYgICAgX1BTX1BIWV9DSEFOTkVMX0gNCisjZGVmaW5lICAgIF9QU19QSFlfQ0hBTk5FTF9IDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogICAgICAgICAgICAgICAgICAgICAgICDNt87EvP6w/LqsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKy8vI2luY2x1ZGUgImRydl9ycG1zZy5oIg0KKy8vI2lmbmRlZiBfT1NfV0lODQorLy8jaW5jbHVkZSAicmFtX2NvbmZpZy5oIg0KKy8vI2VuZGlmDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorSUNQzai1wMP8w/u55tTyDQorICAgUlBfTVNHX0xURV9QU19QSFlfU1lOQw0KKyAgICAgICAgICAgfCAgfCAgIHwgICAgfA0KKwkJICAgfCAgfCAgIHwgICAgfC0tPiDP+8+iwODQzQ0KKwkJICAgfCAgfCAgIHwtLT4gussyICAgICANCisJCSAgIHwgIHwtLS0tLS0+ussxDQorCQkgICB8LS0+yrnTw9bGyr0JICAgDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisvL1BTPC0+UEhZ1q685Lmyv8m2qNLlNjS49s2otcANCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorDQorLy9MVEUNCisjZGVmaW5lIFJQX01TR19MVEVfUEhZX1BTX1dBS0VVUCAgICAgICAgICAgIGNoYW5uZWxfMTAgICAvL1BIWbu90NFQU82otcCjrFBTyqG157Lgu9i197qvyv20psDtDQorI2RlZmluZSBSUF9NU0dfTFRFX1BIWV9QU19TWU5DICAgICAgICAgICAgICBjaGFubmVsXzExICAgLy9wc6GibHRlcGh51q685LXEzayyvc/7z6INCisjZGVmaW5lIFJQX01TR19MVEVfUEhZX1BTX0FTWU5DICAgICAgICAgICAgIGNoYW5uZWxfMTIgICAvL3BzoaJsdGVwaHnWrrzktcTS7LK9z/vPog0KKyNkZWZpbmUgUlBfTVNHX0xURV9QSFlfUFNfSUNQICAgICAgICAgICAgICAgY2hhbm5lbF8xMyAgIC8vcHOhomx0ZXBoebeiy83S7LK9z/vPosqxo6y0pbeiSUNQDQorDQorLy9URA0KKyNkZWZpbmUgUlBfTVNHX1REX1BTX1BIWV9NU0cgICAgICAgICAgICAgICAgY2hhbm5lbF8yMSAgICAvL3BzoaJ0ZHBoedauvOS1xM/7z6LNqLXADQorI2RlZmluZSBSUF9NU0dfVERfUFNfUEhZX1VQQV9EQVRBICAgICAgICAgICBjaGFubmVsXzIyDQorI2RlZmluZSBSUF9NU0dfVERfUFNfUEhZX0xQTV9XQUtFVVAgICAgICAgICBjaGFubmVsXzIzDQorI2RlZmluZSBSUF9NU0dfVERfUEhZX1BTX1dBS0VVUCAgICAgICAgICAgICBjaGFubmVsXzI0IC8vu73Q0c2otcANCisjZGVmaW5lIFJQX01TR19URF9QSFlfUFNfRlJBTUVfSU5UICAgICAgICAgIGNoYW5uZWxfMjUgLy8weDEwMDAwMDAwMA0KKy8vI2RlZmluZSBSUF9NU0dfVERfRFBSQU1fQ01EICAgICAgICAgICAgICAgICBjaGFubmVsXzI2IC8vSDJVICBVMkgNCisjZGVmaW5lIFJQX01TR19URF9FQUdDSF9EQVRBICAgICAgICAgICAgICAgIGNoYW5uZWxfMjcgLy9FQUdDSCAgb25seSBwaHktLS0+cHMNCisjZGVmaW5lIFJQX01TR19URF9CQ0hfREFUQSAgICAgICAgICAgICAgICAgIGNoYW5uZWxfMjggLy9CQ0ggIG9ubHkgcGh5LS0tPnBzDQorI2RlZmluZSBSUF9NU0dfVERfSFNVUEFfREFUQSAgICAgICAgICAgICAgICBjaGFubmVsXzI5IC8vVEQgSFNVUEHK/b7dcHMtLS0+cGh5DQorDQorDQorLy9XDQorI2RlZmluZSBSUF9NU0dfV19QU19QSFlfTVNHICAgICAgICAgICAgICAgICBjaGFubmVsXzMxLy/Jz7GoDQorI2RlZmluZSBSUF9NU0dfV19QSFlfUFNfV0FLRVVQICAgICAgICAgICAgICBjaGFubmVsXzMyDQorI2RlZmluZSBSUF9NU0dfV19QU19QSFlfVVBBX0RBVEEgICAgICAgICAgICBjaGFubmVsXzMzLy8weDEwMDAwMDAwMA0KKyNkZWZpbmUgUlBfTVNHX1dfUFNfUEhZX0xQTV9XQUtFVVAgICAgICAgICAgY2hhbm5lbF8zNC8vMHg0MDAwMDAwMDANCisjZGVmaW5lIFJQX01TR19XX1BIWV9QU19GUkFNRV9JTlQgICAgICAgICAgIGNoYW5uZWxfMzUvLzB4Mg0KKy8vI2RlZmluZSBSUF9NU0dfV19EUFJBTV9DTUQgICAgICAgICAgICAgICAgICBjaGFubmVsXzM2Ly9EUFJBTSBDTUQNCisNCisvL3RkLFcgsrvNrMqxtObU2ri008PNqLXADQorI2RlZmluZSBSUF9NU0dfVERfV19VTF9EQVRBICAgICAgICAgICAgICAgICBjaGFubmVsXzM3IC8vVEQsV8bVzajJz9DQyv2+3Q0KKyNkZWZpbmUgUlBfTVNHX1REX1dfRExfREFUQSAgICAgICAgICAgICAgICAgY2hhbm5lbF8zOCAvL1RELFfG1c2oz8LQ0Mr9vt0NCisjZGVmaW5lIFJQX01TR19URF9XX0hTRFBBX0RBVEEgICAgICAgICAgICAgIGNoYW5uZWxfMzkgLy9URCxXIERQQcr9vt0NCisNCisNCisvL1BVQg0KKyNkZWZpbmUgUlBfTVNHX1BTX1BIWV9SQU1EVU1QICAgICAgICAgICAgICAgY2hhbm5lbF80MCAgICAgLy9hcm2honpzcNauvOS1xHJhbWR1bXDNqLXADQorI2RlZmluZSBSUF9NU0dfUEhZX1BTX0REUl9EVkZTICAgICAgICAgICAgICBjaGFubmVsXzQxICAgICAvL2RkcrX3xrXNqLXADQorLy8jZGVmaW5lIFJQX01TR19VSUNDX1ZTSU1BR1RfQ0hBTk5FTCAgICAgICAgIGNoYW5uZWxfNDIgICAgIC8vdnNpbSDNqLXADQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KK8nmvLBNMLrLtcSjrMO/uPa6y9PrTTDWrrzkubIxMLj2zai1wA0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCisvL1BIWTwtPk0wDQorI2RlZmluZSBSUF9NU0dfUEhZX00wX0FYSV9ERlMgICAgICAgICAgICAgICBjaGFubmVsXzEgICAgIC8vYXhptffGtc2otcANCisjZGVmaW5lIFJQX01TR19NMF9QSFlfV0RUICAgICAgICAgICAgICAgICAgIGNoYW5uZWxfMiAgICAgLy9tMKGienNw1q685LXEV0RUDQorDQorLy9QUzwtPk0wDQorI2RlZmluZSBSUF9NU0dfUFNfTTBfQVhJX0RGUyAgICAgICAgICAgICAgICBjaGFubmVsXzEgICAgIC8vYXhptffGtc2otcANCisjZGVmaW5lIFJQX01TR19NMF9QU19XRFQgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxfMiAgICAgLy9tMKGiYXJt1q685LXEV0RUDQorDQorI2RlZmluZSBJQ1BfQ0hBTk5FTF9ERUZBVUxUX1NJWkUgICAgICAgICAgICAoVUlOVDMyKTI1NQ0KKw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCitQU6GiUEhZ1Ly2qLj3yv2+3b/ptcS089Cho6zK/cS/uuoNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorI2RlZmluZSBSUF9NU0dfVERfRUFHQ0hfREFUQV9CTE9DS19TSVpFICAgIDQwLyq21NOmUlBfTVNHX1REX0VBR0NIX0RBVEHNqLXAKi8NCisjZGVmaW5lIFJQX01TR19URF9FQUdDSF9EQVRBX0JMT0NLX05VTSAgICAgMg0KKw0KKyNkZWZpbmUgUlBfTVNHX1REX0JDSF9EQVRBX0JMT0NLX1NJWkUgICAgICAgIDQ4Lyq21NOmUlBfTVNHX1REX0JDSF9EQVRBzai1wCovDQorI2RlZmluZSBSUF9NU0dfVERfQkNIX0RBVEFfQkxPQ0tfTlVNICAgICAgICAgMQ0KKw0KKyNkZWZpbmUgUlBfTVNHX1REX0hTVVBBX0RBVEFfQkxPQ0tfU0laRSAgICAgMTQ0MC8qttTTplJQX01TR19URF9IU1VQQV9EQVRBzai1wCovDQorI2RlZmluZSBSUF9NU0dfVERfSFNVUEFfREFUQV9CTE9DS19OVU0gICAgIDINCisNCisjZGVmaW5lIFJQX01TR19URF9XX1VMX0RBVEFfQkxPQ0tfU0laRSAgICAgICAxMjQ0Lyq21NOmUlBfTVNHX1REX1dfVUxfREFUQc2otcAqLw0KKyNkZWZpbmUgUlBfTVNHX1REX1dfVUxfREFUQV9CTE9DS19OVU0gICAgICAgIDENCisNCisjZGVmaW5lIFJQX01TR19URF9XX0RMX0RBVEFfQkxPQ0tfU0laRSAgICAgIDEzNDAvKrbU06ZSUF9NU0dfVERfV19ETF9EQVRBzai1wC4gV7jxyr1bVF96V19QX2RsX2RhdGFfYnVmZmVyXTsgVES48cq9ICBbVF96VERfUF9tYWNfZGxfYnVmZmVyXSovDQorI2RlZmluZSBSUF9NU0dfVERfV19ETF9EQVRBX0JMT0NLX05VTSAgICAgICAgMw0KKw0KKyNkZWZpbmUgUlBfTVNHX1REX1dfSFNEUEFfREFUQV9CTE9DS19TSVpFICAgNTI4NC8qttTTplJQX01TR19URF9XX0hTRFBBX0RBVEHNqLXALle48cq9W1RfeldfUF9oc2RwYV9idWZmZXJdOyBURLjxyr1bVF96VERfUF9tYWNfSHNkcGFfQnVmXSovDQorI2RlZmluZSBSUF9NU0dfVERfV19IU0RQQV9EQVRBX0JMT0NLX05VTSAgICAgNQ0KKw0KKyNkZWZpbmUgUlBfTVNHX1REX1BTX1RPX1BIWV9DTURfU0laRSAgICA1MDIwDQorI2RlZmluZSBSUF9NU0dfVERfUEhZX1RPX1BTX0NNRF9TSVpFICAgICAzNjIwDQorDQorI2RlZmluZSBSUF9NU0dfV19QU19UT19QSFlfQ01EX1NJWkUgICAgMjUwMjANCisjZGVmaW5lIFJQX01TR19XX1BIWV9UT19QU19DTURfU0laRSAgICAgODAyMA0KKw0KKw0KKyNlbmRpZiAvLyBfUFNfUEhZX0NIQU5ORUxfSA0KZGlmZiAtLWdpdCBhL3B1Yi9pbmNsdWRlL3BzX3BoeS90ZHBzcGh5aW50LmggYi9wdWIvaW5jbHVkZS9wc19waHkvdGRwc3BoeWludC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwNjY0NmQKLS0tIC9kZXYvbnVsbAorKysgYi9wdWIvaW5jbHVkZS9wc19waHkvdGRwc3BoeWludC5oCkBAIC0wLDAgKzEsMjc0MyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICqw5rG+y/nT0CAoQykyMDEw1tDQy82o0ba5ybfd09DP3rmry74NCisgKiAgxKO/6cP7ICCjulBTDQorICogIM7EvP7D+yAgo7p0ZHBzcGh5aW50LmgNCisgKiAgzsS8/rHqyrajug0KKyAqICDP4LnYzsS8/qO6DQorICogIMq1z9a5psTco7pQU7rNVEQgUEhZtcS907/atqjS5Q0KKyAqICDX99XfICAgIKO6DQorICogILDmsb4gICAgo7oNCisgKiAgzeqzycjVxtqjug0KKyAqICDG5Mv8y7XD96O6DQorICoNCisgKiAg0N64xLzHwrwxo7oNCisgKiAgICDI1SAgxtqjujIwMTAuMDUuMTgNCisgKiAgICDQ3rjEyMujuiBaSFVPIEJpYm8NCisgKiAgICDQ3rjExNrI3aO6DQorICogICAgIDEpILrPsqJ0ZG1hY3BoeWludC5ous10ZHJyY3BoeWludC5owb233c23zsS8/rXExNrI3Q0KKyAqKiAg0N64xLzHwrwyo7oNCisgKiAgICDI1SAgxtqjujIwMTEuMDkuMDINCisgKiAgICDQ3rjEyMujuiBzdW4gY2hhbmcgamlhbmcNCisgKiAgICDQ3rjExNrI3aO6DQorICogICAgIDEpIFRfelREX1BfSXJhdEdhcENvbmZpZ19SZXHW0LLOyv13U2hvcnRHYXBGbGe4/MP7zqp3SWRsZU9yQ29ubmVjdEZsZ6OssqLQ3rjE16LKzaO7DQorICAgICAgICAyKVRfelREX1BfaHNkcGFfY29uZmlnX3JlcdbQ1Pa807LOyv13TWFjSGRUeXANCisgICAgICAgIDMpVF96VERfUF9DUGh5X0ludGVyTWVhc19SZXHW0LXEuupNVUxUSV9JUkFUXzI5NjPIpbX0oaMNCisgKiogINDeuMS8x8K8M6O6DQorICogICAgyNUgIMbao7oyMDExLjA5LjI4DQorICogICAg0N64xMjLo7ogc3VuIGNoYW5nIGppYW5nDQorICogICAg0N64xMTayN2jug0KKyAqICAgICAxKSBUX3pURF9QX2hzdXBhX2NvbmZpZ19yZXHW0LWxv6pSObrqyrHU9rzTss7K/XRVcGxpbmtfdGltaW5nX2FkdmFuY2VfY29udHJvbKGjDQorICoqICDQ3rjEvMfCvDSjug0KKyAqICAgIMjVICDG2qO6MjAxMS4xMS4xMQ0KKyAqICAgINDeuMTIy6O6IHN1biBjaGFuZyBqaWFuZw0KKyAqICAgINDeuMTE2sjdo7oNCisgKiAgICAgMSkgyKW19FI3X1NVUFBPUlShow0KKyAgICAgKiAg0N64xLzHwrw1o7oNCisgKiAgICDI1SAgxtqjujIwMTIuMDMuMTINCisgKiAgICDQ3rjEyMujus6k0/HV5A0KKyAqICAgINDeuMTE2sjdo7ogICAgDQorICogICAgICAxKdT2vNPP+8+iveG5uVRfelREX1BfRGV0ZWN0Q2VsbEluZm8NCisgICAgICAgICAyKdT2vNO66rao0uVaX1REX1BfTUFYX0RFVEVDVF9DRUxMX05VTQ0KKw0KKyAgICAgKiAg0N64xLzHwrw2o7oNCisgKiAgICDI1SAgxtqjujIwMTIuMDUuMTANCisgKiAgICDQ3rjEyMujusvvs6S9rQ0KKyAqICAgINDeuMTE2sjdo7ogICAgDQorICogICAgICAxKVRfelREX1BfVWxEcGNoX3NldHVwX21vZF9yZXHW0LXEss7K/XdTcGVjX2J1cnN0X2dlbmVyYXRpb25fcGVyaW9k1Pa809eiys0NCisgICAgICAgICAyo6nU9rzTz/vPor3hublUX3pURF9QX1VsX3BoeV9jaF9jdHJsX3JlcQ0KKyAgICAgKiAg0N64xLzHwrw3o7oNCisgKiAgICDI1SAgxtqjujIwMTIuMDUuMTANCisgKiAgICDQ3rjEyMujusvvs6S9rQ0KKyAqICAgINDeuMTE2sjdo7ogICAgDQorICAgICAgICAxo6lUX3pURF9QX2hzZHNjaF9zcHNfaW5mb9bQ1Pa803dJbml0U3BzSW5mb0Zn08PT2rHtyr50SW5pdFNwc0luZm/Kx7fx09DQp6OszazKsciltfSyzsr9d1BhZGRpbmejrLGjs9bLxNfWvdq21Mbro7sNCisgICAgICAgIDKjqVRfelREX1BfZWRjaF9zcHNfaW5mb9bQ1Pa803dJbml0U3BzSW5mb0Zn08PT2rHtyr50SW5pdFNwc0luZm/Kx7fx09DQp6OszazKsdT2vNOyzsr9d1BhZGRpbmejrLGjs9bLxNfWvdq21Mbro7sNCisgICAgICogINDeuMS8x8K8OKO6DQorICogICAgyNUgIMbao7oyMDEyLjUuMTYNCisgKiAgICDQ3rjEyMujutXFxfSzzA0KKyAqICAgINDeuMTE2sjdo7oNCisgICAgICAgMaOpICBaX1REX1BfTUFYX0lOVEVSX0ZSRVFfTlVNINPJObjEs8kxNg0KKyAgICAgICAyo6kgWl9URF9QX01BWF9CTElORF9JTlRFUl9GUkVRINPJObjEs8kxNg0KKyogINDeuMS8x8K8OaO6DQorICogICAgyNUgIMbao7oyMDEyLjA2LjE0DQorICogICAg0N64xMjLo7rL77Okva0NCisgKiAgICDQ3rjExNrI3aO6ICAgIA0KKyAqICAgICAgMSlaX1REX1BfTUFYX1VMX1RTuMTOqjQNCisgICAgICAgICAyo6laX1REX1BfTUFYX05PX09GX1VMX0JZVEVTuMTOqjExNjgNCisgICAgICAgIDKjqVRfelREX1BfQ1BoeV9VZUludE1lYXNfSW5kzqrBy8vE19a92rbUxuujrNT2vNN3UGFkZGluZzsNCisqICDQ3rjEvMfCvDEwo7oNCisgKiAgICDI1SAgxtqjujIwMTIuMDcuMTANCisgKiAgICDQ3rjEyMujusvvs6S9rQ0KKyAqICAgINDeuMTE2sjdo7ogICAg0bC69M/C0sa5psTc0N64xA0KKyAqICAgICAgMSlUX3pURF9QX3BhZ2luZ19yZXHW0NT2vNNUX3pURF9QX1VlSWQNCisgICAgICAgICAyo6nQwtT219O94bm5VF96VERfUF9VZUlkoaJUX3pURF9QX1VSbnRpoaJUX3pURF9QX0ltc2lHc20NCisgKiAg0N64xLzHwrwxMaO6DQorICogICAgyNUgIMbao7oyMDEzLjA0LjE4DQorICogICAg0N64xMjLo7rVxcX0s8wNCisgKiAgICDQ3rjExNrI3aO6ICAgIEdBUMfrx/PJz7Go1Pa8087VytbX1rbODQorICogICAgICAxKVRfelREX1BfdW10c19pZGxlX1BlcmlvZFJlcF9yZXHW0NT2vNNkd0dhcElkDQorICAgICAgICAyKVRfelREX1BfdW10c19pbmFjdF90aW1lX2luZNbQ1Pa802R3R2FwSWQNCisqLyANCisNCisjaWZuZGVmIFpfVERQU19QSFlfSU5URVJGQUNFX0gNCisjZGVmaW5lIFpfVERQU19QSFlfSU5URVJGQUNFX0gNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisqICAgICAgICAgICAgICAgICAgICAgICAgzbfOxLz+sPy6rCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyogICAgICAgICAgICAgICAgICAgICAgICAgs6PBv7ao0uUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorKiAgICAgICAgICAgICAgICAgICAgICAgICDIq77Wuuq2qNLlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisjZGVmaW5lIFpfVERfUF9NQVhfTk9fT0ZfVUxfQllURVMgICAgICAgICAgICAgICAgIChXT1JEKTExNjggICAgICAgICAgIC8qsLTJz9DQMzg0a7zGKi8NCisjZGVmaW5lIFpfVERfUF9NQVhfTk9fT0ZfRExfQllURVMgICAgICAgICAgICAgICAgIChXT1JEKTExNjggICAgICAgICAgICAvKrC0z8LQ0DM4NGu8xiovDQorDQorI2lmbmRlZiBfVVNFX0hTUEFQTFVTDQorI2RlZmluZSBaX1REX1BfTUFYX05PX09GX0hTRFBBX0JZVEVTICAgICAgICAgICAgICAoV09SRCkxNzU2ICAgICAgICAgIC8qsLQyLjhNo6zO78DtsuPDvzVtc822td28xigxNDA0M2JpdCkpKi8NCisjZGVmaW5lIFpfVERfUF9IU0RQQV9EQVRBX0xFTiAgICAgICAgICAgICAgICAgICAgIChXT1JEKTE3NTYgICAgICAgICAgLyrSu7/pSFNEUEHK/b7ds6S2yCovDQorI2Vsc2UNCisjZGVmaW5lIFpfVERfUF9NQVhfTk9fT0ZfSFNEUEFfQllURVMgICAgICAgICAgICAgIChXT1JEKTI2MzQgICAgICAgICAgLyqwtDIuOE2jrM7vwO2y48O/NW1zzba13bzGKDE0MDQzYml0KSkqLw0KKyNkZWZpbmUgWl9URF9QX0hTRFBBX0RBVEFfTEVOICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMjYzNCAgICAgICAgICAvKtK7v+lIU0RQQcr9vt2zpLbIKi8NCisjZW5kaWYNCisNCisjZGVmaW5lIFpfVERfUF9NQVhfTk9fT0ZfSFNVUEFfQllURVMgICAgICAgICAgICAgIChXT1JEKTE0MDAgICAgICAgICAgLyqwtMnP0NAxLjFNvMYqLw0KKw0KKw0KKw0KKw0KKy8q0KHH+MvRy/fP4LnYuuq2qNLlKi8NCisjZGVmaW5lIFpfVERfUF9NQVhfRlJFUVNDQU5fRlJFUV9OVU0gICAgICAgICAgICAgIChXT1JEKTMyDQorI2RlZmluZSBaX1REX1BfTUFYX1JTU0lfUkVTVUxUU19OVU0gICAgICAgICAgICAgICAoV09SRCkzMg0KKyNkZWZpbmUgWl9URF9QX01BWF9TUkhfUkVTVUxUU19OVU0gICAgICAgICAgICAgICAgKFdPUkQpOA0KKyNkZWZpbmUgWl9URF9QX01BWF9OVU1fT0ZfQkNIX0RXT1JEUyAgICAgICAgICAgICAgKFdPUkQpOA0KKw0KKyNkZWZpbmUgWl9URF9QX0NFTExTUkhUWVBFX1NUUk9OR0VTVCAgICAgICAgICAgICAgKFdPUkQpMA0KKyNkZWZpbmUgWl9URF9QX0NFTExTRUFSQ0hUWVBFX0JMSU5EICAgICAgICAgICAgICAgKFdPUkQpMQ0KKyNkZWZpbmUgWl9URF9QX0NFTExTRUFSQ0hUWVBFX1NQRUMgICAgICAgICAgICAgICAgKFdPUkQpMg0KKw0KKy8qsuLBv8/gudi66rao0uUqLw0KKyNkZWZpbmUgWl9URF9QX01BWF9JTlRFUl9GUkVRX05VTSAgICAgICAgICAgICAgICAgKFdPUkQpMTYgICAgIC8q1+624Nans9a1xNLsxrWy4sG/1NjGtcr9Ki8NCisjZGVmaW5lIFpfVERfUF9NQVhfSU5UUkFfQ0VMTF9OVU0gICAgICAgICAgICAgICAgIChXT1JEKTMyICAgIC8q1+624L/JzazKsbLiwb/NrMa10KHH+Mr9Ki8NCisjZGVmaW5lIFpfVERfUF9NQVhfSU5URVJfQ0VMTF9OVU0gICAgICAgICAgICAgICAgIChXT1JEKTMyICAgIC8q1+624L/JzazKsbLiwb/S7Ma10KHH+Mr9Ki8NCisjZGVmaW5lIFpfVERfUF9NQVhfQkxJTkRfSU5URVJfRlJFUSAgICAgICAgICAgICAgIChXT1JEKSgweDEwKQ0KKyNkZWZpbmUgWl9URF9QX01BWF9CTElORF9JTlRFUl9DRUxMICAgICAgICAgICAgICAgKFdPUkQpKDB4MDMpDQorI2RlZmluZSBaX1REX1BfSU5URVJfSU5WQUxJRF9DRUxMSUQgICAgICAgICAgICAgICAoV09SRCkoMHhGRkZFKQ0KKyNkZWZpbmUgWl9URF9QX01BWF9ERVRFQ1RfQ0VMTF9OVU0gICAgICAgICAgICAgICAgKFdPUkQpNA0KKw0KKy8qzt7P39fK1LTF5NbDz+C52LrqtqjS5SovDQorI2RlZmluZSBaX1REX1BfTUFYX1BSQUNIX0ZQQUNIICAgICAgICAgICAgICAgICAgICAoV09SRCkoMHgwOCkNCisjZGVmaW5lIFpfVERfUF9NQVhfVUxfVFJDSF9OVU0gICAgICAgICAgICAgICAgICAgIChXT1JEKTggDQorI2RlZmluZSBaX1REX1BfTUFYX0RMX1RSQ0hfTlVNICAgICAgICAgICAgICAgICAgICAoV09SRCk4DQorI2RlZmluZSBaX1REX1BfTUFYX0RMX1RTICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk0DQorI2RlZmluZSBaX1REX1BfTUFYX1VMX1RTICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk0ICANCisNCisjZGVmaW5lIFpfVERfUF9NQVhfRExfQ0NUUkNIX05VTSAgICAgICAgICAgICAgICAgIChXT1JEKTENCisjZGVmaW5lIFpfVERfUF9NQVhfVUxfQ0NUUkNIX05VTSAgICAgICAgICAgICAgICAgIChXT1JEKTENCisjZGVmaW5lIFpfVERfUF9NQVhfRExfVEZfTlVNICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTY0DQorI2RlZmluZSBaX1REX1BfTUFYX0RMX1RGQ1NfTlVNICAgICAgICAgICAgICAgICAgICAoV09SRCkxMjgNCisjZGVmaW5lIFpfVERfUF9NQVhfVUxfVEZfTlVNICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTMyDQorI2RlZmluZSBaX1REX1BfTUFYX1VMX1RGQ1NfTlVNICAgICAgICAgICAgICAgICAgICAoV09SRCk2NA0KKw0KKy8qY29kaW5nIHR5cGUgbWFjcm8gZGVmaW5hdGlvbiovDQorI2RlZmluZSAgICBaX1REX1BfTk9fQ09ESU5HX1RZUEUgICAgICAgICAgICAgICAgICAoV09SRCkoMHgwMCkNCisjZGVmaW5lICAgIFpfVERfUF9DQzEyX1RZUEUgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKSgweDAxKQ0KKyNkZWZpbmUgICAgWl9URF9QX0NDMTNfVFlQRSAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpKDB4MDIpDQorI2RlZmluZSAgICBaX1REX1BfVFVSQk9fQ09ESU5HX1RZUEUgICAgICAgICAgICAgICAoV09SRCkoMHgwMykNCisNCisvKmNyYyBsZW5ndGggbWFjcm8gZGVmaW5hdGlvbiovDQorI2RlZmluZSAgICBaX1REX1BfQ1JDX0xFTkdUSF8wICAgICAgICAgICAgICAgICAgICAoV09SRCkoMHgwMCkNCisjZGVmaW5lICAgIFpfVERfUF9DUkNfTEVOR1RIXzEgICAgICAgICAgICAgICAgICAgIChXT1JEKSgweDAxKQ0KKyNkZWZpbmUgICAgWl9URF9QX0NSQ19MRU5HVEhfMiAgICAgICAgICAgICAgICAgICAgKFdPUkQpKDB4MDIpDQorI2RlZmluZSAgICBaX1REX1BfQ1JDX0xFTkdUSF8zICAgICAgICAgICAgICAgICAgICAoV09SRCkoMHgwMykNCisjZGVmaW5lICAgIFpfVERfUF9DUkNfTEVOR1RIXzQgICAgICAgICAgICAgICAgICAgIChXT1JEKSgweDA0KQ0KKw0KKyNkZWZpbmUgICAgWl9URF9QX01BWF9QUkFDSF9GUEFDSF9DT0RFICAgICAgICAgICAgKFdPUkQpNA0KKw0KKyNkZWZpbmUgICAgWl9URF9QX01BWF9IX1BST0NFU1MgICAgICAgICAgICAgICAgICAgKFdPUkQpMHgwOA0KKw0KKy8qTUFDLWTP4LnYuuq2qNLlKi8NCisjZGVmaW5lICAgIFpfVERfUF9NQVhfUVVFVUVfSUQgICAgICAgICAgICAgICAgICAgIChXT1JEKTgNCisjZGVmaW5lICAgIFpfVERfUF9NQVhfTUFDX0RfUERVX1NJWkUgICAgICAgICAgICAgIChXT1JEKTgNCisNCisjZGVmaW5lICAgIFpfVERfUF9NQVhfSFNfU0NDSCAgICAgICAgICAgICAgICAgICAgIChXT1JEKTQNCisNCisNCisjZGVmaW5lICAgIFpfVERfUF9DSF9DT0RFX05VTSAgICAgICAgICAgICAgICAgICAgIChXT1JEKTE2DQorDQorLyrLq8Sj1tBHQVC49sr9uuq2qNLlKi8NCisjZGVmaW5lICAgIFpfVERfUF9NQVhfR0FQX05VTSAgICAgICAgICAgICAgICAgICAgIChXT1JEKTgNCisNCisvKlVQQc/gudi66rao0uUqLw0KKyNkZWZpbmUgICAgIFpfVERfUF9NQVhfRVBVQ0hfVFNfTlVNICAgICAgICAgICAgICAgKFdPUkQpNQ0KKyNkZWZpbmUgICAgIFpfVERfUF9NQVhfRUFHQ0hfTlVNICAgICAgICAgICAgICAgICAgKFdPUkQpNA0KKyNkZWZpbmUgICAgIFpfVERfUF9NQVhfU0NIX0VISUNIX05VTSAgICAgICAgICAgICAgKFdPUkQpNA0KKw0KKy8qtKvK5NDFtcDA4NDNLL3208PT2rrNzu/A7bLjtcS907/a1tAqLw0KKyNkZWZpbmUgICAgIFpfVERfUF9QQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMHgwDQorI2RlZmluZSAgICAgWl9URF9QX0ZBQ0ggICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkweDENCisjZGVmaW5lICAgICBaX1REX1BfRExfRENIICAgICAgICAgICAgICAgICAgICAgICAgIChXT1JEKTB4Mg0KKyNkZWZpbmUgICAgIFpfVERfUF9SQUNIICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdPUkQpMHgzDQorI2RlZmluZSAgICAgWl9URF9QX1VMX0RDSCAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkweDQNCisNCisvKsno1sNURM7vwO2y48rHt/HW98Sjyr0qLw0KKyNkZWZpbmUgICAgIFpfVERfUF9JUkFUX01PREVfU0xBVkUgICAgICAgICAgICAgICAgKFdPUkQpMCAgICAvKsno1sPOqrioxKPKvSovDQorI2RlZmluZSAgICAgWl9URF9QX0lSQVRfTU9ERV9NQVNURVIgICAgICAgICAgICAgICAoV09SRCkxICAgIC8qyejWw86q1vfEo8q9Ki8NCisNCisjaWZkZWYgUjlfU1VQUE9SVA0KKyNkZWZpbmUgICAgWl9URF9QX01BWF9DQVJSSUVSICAgICAgICAgICAgICAgICAoV09SRCkzDQorDQorI2RlZmluZSBaX1REX1BfTUFYX0hTRFNDSF9SWF9QQVRURVJOX05VTSAgICAgIChXT1JEKTQNCisjZGVmaW5lIFpfVERfUF9NQVhfSFNEU0NIX1RCU19OVU0gICAgICAgICAgICAgKFdPUkQpNA0KKyNkZWZpbmUgWl9URF9QX01BWF9FRENIX1RYX1BBVFRFUk5fTlVNICAgICAgICAoV09SRCk0DQorI2VuZGlmDQorDQorLypURCBQUyAtPiBURCBQSFkgILTTTFRFICBQU19FUEhZLmjSxrn9wLS1xCovDQorI2RlZmluZSBaUFNfVERTX1BfU0xFRVBfVElNRV9JTlRfSUNQX0NGICAgKFVJTlQzMikoMHgwMDAwMDAwMSkgLy/UytDtWlNQvfjLr8Pf1tC2z6OsNjMwMMq508OjrMbky/vP7sS/o6g3NTAyo6w3NTEwo6w3NTUwKbK708OjrLGjwfQNCisjZGVmaW5lIFpQU19URFNfUF9XQUtFVVBfSU5UX0lDUF9DRiAgICAgICAoVUlOVDMyKSgweDAwMDAwMDAyKSAvL9Lss6O7vdDR1tC2z6OsuPfP7sS/trzKudPDDQorI2RlZmluZSBaUFNfVERTX1BfVVBBX0lOVF9JQ1BfQ0YgICAgICAgICAgKFVJTlQzMikoMHgwMDAwMDAwNCkgLy9VUEHIocr9vt3W0LbPo6y498/uxL+2vMq508MNCisjZGVmaW5lIFpQU19URFNfUF9XQUlUMjBNU19JTlRfSUNQX0NGICAgICAoVUlOVDMyKSgweDAwMDAwMDA4KSAvL82o1qpURM7vwO2y47u90NG68zIwbXPE2rK71MrQ7b34y6/D36OsNzUwMsq508OjrMbky/vP7sS/srvKudPDo6yxo8H0DQorLypURF9QSFktPlREX1BTKi8NCisjZGVmaW5lICAgIFpQU19URFNfUF9JTlRfSUNQX0NGICAgICAgICAgICAoVUlOVDMyKSgweDAwMDAwMDAxKSAgLy9URM7vwO2y40lDUNbQts+4+FBTo6y5qVREIFBIWbu90NFQU8q508Oju6Oo19PWodbQts/S1Lrz08lMUE3M4bmpo6kNCisjZGVmaW5lICAgIFpQU19URF9SRVFfSU5UX01BU0sgICAgICAgICAgICAgICAgICAoVUlOVDMyKSgweDAwMDAwMEZGKSAvKiovDQorI2RlZmluZSAgICBaUFNfVERfSU5EX0lOVF9NQVNLICAgICAgICAgICAgICAgICAgKFVJTlQzMikoMHgwMDAwMDBGRikgLyoqLw0KKy8qVETW98Sjway908ysKEZBQ0ggoaJEQ0gpzu/A7bLjyc+xqEdBUNDo0qq/27P9tcTJ5Ma1saO7pLzkuPS1pc67Q0hJUCwgNzUxMLDmsb7Nt86yt9ax8L/bs/0xMCAyNjAuIDc1MDKw5rG+zbfOsr/bs/02NCAzMjAqLw0KKw0KKyNpZmRlZiBfQ0hJUF9aWDI5NzUwMg0KKyNkZWZpbmUgWl9URF9QX01FQVNfRENIR0FQX1NUQVJUX09GRiAgICAgICAgICAgICAgICAgKFdPUkQpNjQNCisjZGVmaW5lIFpfVERfUF9NRUFTX0RDSEdBUF9UQUlMX09GRiAgICAgICAgICAgICAgICAgIChXT1JEKTMyMA0KKyNlbHNlDQorI2RlZmluZSBaX1REX1BfTUVBU19EQ0hHQVBfU1RBUlRfT0ZGICAgICAgICAgICAgICAgICAoV09SRCkxMA0KKyNkZWZpbmUgWl9URF9QX01FQVNfRENIR0FQX1RBSUxfT0ZGICAgICAgICAgICAgICAgICAgKFdPUkQpMjYwDQorI2VuZGlmDQorDQorI2RlZmluZSBaX1pUUENHX1ZBTEZHX05VTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCk4DQorI2RlZmluZSBaX1pUUENHX1BBUkFNX05VTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV09SRCkyNQ0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyogICAgICAgICAgICAgICAgICAgICAgICAgyKu+1sr9vt3A4NDNtqjS5SAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd1RyY2hfYnVmZl9vZmZzZXQ7ICANCisNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGJfbnVtYmVyX2FuZF90cmNoX2lkOyAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUYl9zaXplOw0KK31UX3pURF9QX3VsX3RyY2hfaGVhZGVyOw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd1RyY2hfYnVmZl9vZmZzZXQ7ICAgICAvKrjDVHJjaMr9vt3T60RQUkFN1tDWuLaoQnVmZmVytcTG8Mq8xqvSxsG/o6zS1FdPUkTOqrWlzrsqLyAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUcmNoX2lkOyAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RyY2hfdHlwZTsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0Nmbl9hbmRfdGJfbnVtYmVyOyAgICAgLyq43zhiaXTOqlRiTnVto6y1zThiaXTOqkNGTqOotNO/1b/avdPK1bW9yv2+3bXExvDKvENGTqOpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2ZuOyAgICAgICAgICAgICAgICAgICAvKrTTv9W/2r3TytW1vcr9vt21xMbwyrxTRk4qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUYl9zaXplOyAgICAgICAgICAgICAgIC8q09DQp7XEVEK/6bOktsijrNLUYml0zqq1pc67o6y1zc67zO6z5DAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOyAgIA0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR3Q3JjX2NoZWNrOyAgICAgICAgICAgICAvKrC0VEK/6bao0uW1xGJpdG1hcCwgaW52YWxpZCBmb3IgSFMtRFNDSCBiZWNhdXNlIEwxIHNlbmQgSFMtZGF0YSB0byBNQUMgb25seSB3aGVuIGNyYyBpcyBvayovDQorfVRfelREX1BfZGxfdHJjaF9oZWFkZXI7DQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUb3RhbF9sZW5ndGg7ICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd05yX3RyY2g7ICAgIA0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZmNpOyAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1VsX2NjdHJjaF9pZDsgICAgICAgICAgICAgICAgICAvKmVxdWl2YWxlbnQgdG8gdGZjcyBpZCwgdmFsdWU6MX44Ki8NCisNCisgICAgVF96VERfUF91bF90cmNoX2hlYWRlciAgICAgICAgICAgICAgICAgICBhdFVsX3RyY2hfaGVhZGVyW1pfVERfUF9NQVhfVUxfVFJDSF9OVU1dOw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3VWxfZGF0YV9hcmVhW1pfVERfUF9NQVhfTk9fT0ZfVUxfQllURVMvMl07DQorfVRfelREX1BfbWFjX3VsX2J1ZmZlcjsNCisNCisvKk1BQ9Przu/A7bLjvOTPwtDQRENIL0ZBQ0gvUENIyv2+3b27u6W907/atqjS5SovDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUb3RhbF9sZW5ndGg7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOcl90cmNoOyAgIA0KKyAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RmY2k7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEbF9jY3RyY2hfaWQ7ICAgICAgICAgICAgICAgICAvKmVxdWl2YWxlbnQgdG8gdGZjcyBpZCwgdmFsdWU6MX44Ki8NCisNCisgICAgVF96VERfUF9kbF90cmNoX2hlYWRlciAgICAgICAgICAgICAgICAgICBhdERsX3RyY2hfaGVhZGVyW1pfVERfUF9NQVhfRExfVFJDSF9OVU1dOyAgIA0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEbF9kYXRhW1pfVERfUF9NQVhfTk9fT0ZfRExfQllURVMvMl07DQorfVRfelREX1BfbWFjX2RsX2J1ZmZlcjsNCisNCisvKk1BQ9Przu/A7bLjvORIU0RQQcr9vt29u7ulvdO/2rao0uUqLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGJTaXplOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3SHNkcGFEYXRhW1pfVERfUF9NQVhfTk9fT0ZfSFNEUEFfQllURVMvMl07DQorfVRfelREX1BfbWFjX0hzZHBhX0J1ZjsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7paX1BfVEZDX1BPV0VSX0lORF9FdiggUEhZLT5VTUFDICkNCisgy7XD9zogDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ19pZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGZjaTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RXhjZXNzX3Bvd2VyX2ZsYWc7ICAgICAgICAgICAgICAvKiAiMCIgaXMgU3VwcG9ydGVkIHN0YXRlLT5FeGNlc3MtUG93ZXIgc3RhdGU7IjEiIGlzIEV4Y2Vzcy1Qb3dlciBzdGF0ZS0+U3VwcG9ydGVkIHN0YXRlKi8NCit9VF96VERfUF9URkNfUE9XRVJfSU5EOw0KKw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julpfUF9SQUNIX1BST0NFRFVSRV9JTkRfRXYoIFBIWS0+VU1BQyApLFpfUF9FUlVDQ0hfUFJPQ0VEVVJFX0lORF9FdiggUEhZLT5VTUFDICkNCisgy7XD9zogDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ19pZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAvKiAiMSIgaXMgc3VjY2VzczsgIjAiIGlzIGZhaWx1cmUqLw0KK31UX3pURF9QX1JBQ0hfUFJPQ0VEVVJFX0lORDsNCisNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7paX1BfUkFDSF9QUk9DRURVUkVfQ05GX0V2KFBIWSAtPiBVTUFDKSxaX1BfRVJVQ0NIX1BST0NFRFVSRV9DTkZfRXYoUEhZIC0+IFVNQUMpDQorIMu1w/c6IA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiAgICBzdHJ1Y3R7DQorCVdPUkQJCQkJCQkJCSAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK30gVF96VERfUF9SQUNIX1BST0NFRFVSRV9DTkY7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisg1K3T76O6Wl9QX0FCT1JUX1JBQ0hfUFJPQ0VEVVJFX1JFUV9FdiggVU1BQy0+UEhZICksWl9QX0FCT1JUX0VSVUNDSF9QUk9DRURVUkVfUkVRX0V2KCBVTUFDLT5QSFkgKQ0KKyDLtcP3OiANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnX2lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOyANCit9VF96VERfUF9BQk9SVF9SQUNIX1BST0NfUkVROw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgIEhTVVBBxeTWwyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIYXJxSWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U3RhdHVzOyAgICAgIC8quMO9+LPMQUNLL05BQ0u94bn70MXPoqGjMKO6QUNLo7sxo7pOQUNLKi8NCit9VF96VERfUF9IQVJRX1BST0NFU1NfU1RBVFVTOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWJzb2x1dGU7ICAgLyq++LbUytrIqNa1Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2Y7ICAgICAgICAgICAvKsCpxrXC66Ostc1ieXRlLLTT1/O1vdPSse3KvsCpxrXC6yovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RSUkk7ICAgICAgIC8qtc2wy867tc01uPZiaXSx7cq+yrHPttfK1LTQxc+itcTOu828Ki8gDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VuaTsgICAgICAgIC8qRS1VQ0NIyv3Ev9a4yr4qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDb2RlOyAgICAgICAgLyrC67XA0MXPoqOs0K3S6dW7sb7J7bK71/bP4LnYtKbA7aOs1rvKx7rNyv2+3c/Ct6K1xMqxuvLU2bT4u9i4+M7vwO2y4yovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JkaUZsYWc7ICAgIC8qs9bQ+NbcxtrWuMq+o6yx7cq+tMvK2sioysfHsLTOytrIqLXEs9bQ+KOss/W0zrP2z9ZSREnWwzCjrLrz0Piz9s/WyrGjrFJESdbDMaOssqLQr7T4ytrIqCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VpOyAgICAgICAgIC8qz8LSu7j21tzG2sTaRS1ISUNI0MW1wLXEyv3Ev6Os0K3S6dW7sb7J7bK71/e0psDto6y72LT4uPjO78DtsuMqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSZGlFbmRGbGFnOyAgICANCit9VF96VERfUF9IU1VQQV9HUkFOVF9JTkZPOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Tm9uU2NoRmxhZzsgICAgLyrJz7Lj0K3S6dW7yse38b/J0tTXvLG4t8e197bIyv2+3bXEserKtqOsMKO6sru/ydLU17yxuKO7MaO6v8nS1Ne8sbi3x7X3tsjK/b7dKi8gDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JlZkJldGFFOyAgICAvKs7vwO2y49fUvLq8xsvjtcSyzr+8QmV0Yda1o6zQrdLp1bvTw8rayKijqLX3tsgvU1BTL7fHtfe2yKOp0+vG5LHIvc+jrMihvc/Qoda11/fOqr/J08O3osnkuabCyiovDQorI2lmZGVmIFI5X1NVUFBPUlQNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U3BzRmxhZzsgICAgLypTUFO197bIserWvqOsMKO6sru/ydLU17yxuFNQU8r9vt20q8rko6wxLS2/ydLU17yxuFNQU8r9vt20q8rkKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHJ4QWN0aXZlRmxhZzsvKkRSWMq5xNyx6ta+o6wwLS252LHVo6wxLS208r+qKi8JDQorI2VuZGlmDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BoeUNoQ29yRXhzaXN0RmxhZzsvKkUtUFVDSNPrxuTL+8Dg0M3O78Dt0MW1wLKitObT2s2s0rvX09ahzazSu8qxz7a1xLHq1r6jrNTad0VhZ2NoRmxhZ7vy1d93Tm9uU2NoRmxhZ7vy1d93U3BzRmxhZ86qMcqx09DQp6OsMC0tsruyorTmo6wxLS2yorTmKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RWFnY2hGbGFnOyAgICAvKrX3tsjK2sio0MXPosrHt/HT0NCntcSx6sq2oaMwo7rO3tCno7sxo7rT0NCnKi8NCisgICAgVF96VERfUF9IU1VQQV9HUkFOVF9JTkZPICAgICAgICAgICAgICAgICB0R3JhbnQ7ICAgICAgICAvKsrayKjQxc+io6zWu9PQ1Np3RWFnY2hGbGFnu/J3U3BzRmxhZ9a4yr7T0NCnyrGyxb/J0tS2wcihKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3SGFycUZsYWc7ICAgIC8qSEFSUdDFz6LKx7fx09DQp7XEserKtiovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1N1YkZyYW1lOyAgICAvKtPD09rO78DtsuPF0LHw0K3S6dW7tKbA7crHt/GzrMqxtcTX09ahusUqLw0KKyAgICBUX3pURF9QX0hBUlFfUFJPQ0VTU19TVEFUVVMgICAgICAgICAgICAgIHRIYXJxOyAgICAgICAgLypIQVJRtaW9+LPMtcRBQ0svTkFDS73hufvQxc+iKi8NCit9VF96VERfUF9VUEFfR1JBTlRfSEFSUV9JTkZPOw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGNoVHlwZTsgICAgICAgIC8q0MW1wMDg0M2jrLfWzqpFLVJVQ0NIus1FLURDSCovIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIYXJxSWQ7ICAgICAgICAvKtPD09qxvrTOyv2+3beiy821xEhBUlEgvfizzElEo6wwfjcqLyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmVmQmV0YUU7ICAgIC8qzu/A7bLjt6LLzcr9vt21xNT20ubS8tfTKi8gICAgICAgICAgICAgICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFdGZjaTsgICAgICAgICAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RiU2l6ZTsgICAgICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNb2R1bGVUeXBlOyAgICAvKrG+tM63osvNtcS199bGt73KvSAwOlFQU0s7IDE6MTZxYW0qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSc247ICAgICAgICAgICAgLyrI39PgsOaxvrrFo6xSU04gtcjT2jCx7cq+0MLK/b7do6xSU06089PaMLHtyr7W2LSrKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U3ViRnJhbWU7ICAgIC8q1rjKvrjDtKvK5L/ptcS3osvN19PWobrFKi8gDQorI2lmZGVmIFI5X1NVUFBPUlQNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U3BzRmxhZzsgICAgLypTUFPK/b7dserWviovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7IA0KKyNlbmRpZg0KKyAgICBUX3pURF9QX0hTVVBBX0dSQU5UX0lORk8gICAgICAgICAgICAgICAgIHRHcmFudDsgLyq72LT4uPjO78DtsuO1xMrayKjQxc+ioaPKx7fx0OjSqrbByKG4w9Sqy9jE2rK/tcS++LbUytrIqNa1o6zO78DtsuPQ6NKquPm+3UhBUlG9+LPMSUS9+NDQxdC2z6Os1rvU2rX3tsjK/b7dyrHT0NCnKi8NCit9IFRfelREX1BIU1VQQV9CVUZfSEVBREVSOw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgVF96VERfUEhTVVBBX0JVRl9IRUFERVIgICAgICAgICAgICAgICAgICB0QnVmSGVhZGVyOyAgICAvKiBIU1VQQcr9vt27urPlx/jNt9DFz6IqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3RGF0YVtaX1REX1BfTUFYX05PX09GX0hTVVBBX0JZVEVTLzJdOyAgDQorfVRfelREX1BfSFNVUEFfVUxfQlVGRkVSOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julRfelREX1BfbWFjX1NldF9BZ2NoX1JlcV9FdiggVU1BQy0+UEhZICkNCisgy7XD9zogyc+y49Ct0unVu9a4yr7O78DtsuO/qsq8L82j1rm84Mz9RS1BR0NI0MW1wLXEw/zB7g0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dfaWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Jlc3VsdDsgICAgICAgLyog1rjKvs7vwO2y48rHt/HNo9a5vODM/UUtQUdDSNDFtcChozCjurzM0Pi84Mz9o7sxo7rNo9a5vODM/SovDQorfVRfelREX1BfbWFjX1NldF9BZ2NoX1JlcV9FdjsNCisjaWZkZWYgUjlfU1VQUE9SVA0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorINSt0++julBfU1lOQ19DTURfUkVTUF9FViggUEhZLT5VTUFDICkNCisgy7XD9zog1NrU9se/Q2VsbC1QQ0jMrM/Co6zO78DtsuPK1bW9SFMtU0NDSMnPtcTNrLK9w/zB7rrzo6y3orjDz/vPos2o1qpNQUPX9snP0NDNrLK9DQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ19pZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsgDQorfVRfelREX1BfU3luY19DbWRfUmVzcDsNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX0NFTExfUkVTRUxfUkVRX0VWKCBVTUFDLT5QSFkgKQ0KKyDLtcP3OiDU2tT2x79DZWxsLUZBQ0jMrM/Co6xNQUPNqNaqzu/A7bLjo6zQocf41tjRocfrx/MNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnX2lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOyANCit9VF96VERfUF9DZWxsX1Jlc2VsX1JlcTsNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7pQX0NFTExfUkVTRUxfQ05GX0VWKCBQSFktPlVNQUMgKQ0KKyDLtcP3OiDU2tT2x79DZWxsLUZBQ0jMrM/Co6zO78DtsuO72Li0TUFDo6zQocf41tjRoci3yM8NCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnX2lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOyANCit9VF96VERfUF9DZWxsX1Jlc2VsX0NuZjsNCisjZW5kaWYNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKy8qICAgICAgICAgICAgICAgICAgICAgICAgIFJCQ8irvtbA4NDNtqjS5SAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisvKjEwLjMuNi40MSBNaWRhbWJsZSBTaGlmdCBhbmQgYnVyc3QgdHlwZSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIC8qd01pZGFtYmxlX2FsbG9jYXRpb25fbW9kZTowOmRlZmF1bHQgbWlkYW1ibGUsMTpDb21tb24gbWlkYW1ibGUsMjpVRSBzcGVjaWZpYyBtaWRhbWJsZSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01pZGFtYmxlX2FsbG9jYXRpb25fbW9kZTsNCisgICAgLyp3TWlkYW1ibGVfY29uZmlndXJhdGlvbjpJbnRlZ2VyKDIsNCw2LDgsMTAsMTIsMTQsMTYpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWlkYW1ibGVfY29uZmlndXJhdGlvbjsNCisgICAgDQorICAgIC8qdGhpcyBJRSBpcyBtYW5kYXRvcnkgcHJlc2VudCx3aGVuIHdNaWRhbWJsZV9hbGxvY2F0aW9uX21vZGUgaXMgMjpVRSBzcGVjaWZpYyBtaWRhbWJsZSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01pZGFtYmxlX3NoaWZ0Ow0KK31UX3pURF9QX21pZF9zaGlmdF9idXJfdHlwZTsNCisNCisvKjEwLjMuNi41MWEgUHJhY2ggY2hhbm5lbGlzYXRpb24gY29kZSAxLjI4IE1jcHMgVEREKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgLyoNCisgICAgICAgIEVudW1lcmF0ZWQoNC8xKQ0KKyAgICAgICAgICAgIHdTcHJlYWRfZmFjdG9yID0gNA0KKyAgICAgICAgICAgIHdDaGFubmVsaXNhdGlvbl9jb2RlID0gMQ0KKyAgICAgICAgRW51bWVyYXRlZCgxNi8xKQ0KKyAgICAgICAgICAgIHdTcHJlYWRfZmFjdG9yID0gMTYNCisgICAgICAgICAgICB3Q2hhbm5lbGlzYXRpb25fY29kZSA9IDENCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U3ByZWFkX2ZhY3RvcjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2hhbm5lbGlzYXRpb25fY29kZTsNCit9VF96VERfUF9DSEFOTkVMSVNBVElPTl9DT0RFOw0KKw0KKy8qMTAuMy42LjUxYSAgICBQUkFDSCBDaGFubmVsaXNhdGlvbiBDb2RlKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgLyp3Q2hhbm5lbGlzYXRpb25fY29kZV9udW1iZXI6MSB0byA0Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2hhbm5lbGlzYXRpb25fY29kZV9udW1iZXI7DQorDQorICAgIC8qY2hhbm5lbGlzYXRpb24gbGlzdCovDQorICAgIFRfelREX1BfQ0hBTk5FTElTQVRJT05fQ09ERSAgICAgICAgICAgICAgYXRDaGFubmVsaXNhdGlvbl9jb2RlW1pfVERfUF9NQVhfUFJBQ0hfRlBBQ0hfQ09ERV07DQorfVRfelREX1BfUHJhY2hfQ2hfY29kZTsgLyo5V29yZCovDQorDQorLyoxMC4zLjYuMzVhICBGUEFDSCBpbmZvKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgLyp3VGltZXNsb3RfbnVtYmVyOiAoMC4uNikqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUaW1lc2xvdF9udW1iZXI7DQorICAgIC8qSW50ZWdlcigxLi40KSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1d0Ow0KKyAgICANCisgICAgLypjaGFubmVsaXNhdGlvbiBjb2RlOiAoMTYvMS4uMTYvMTYpKi8NCisgICAgVF96VERfUF9DSEFOTkVMSVNBVElPTl9DT0RFICAgICAgICAgICAgICB0Q2hhbm5lbGlzYXRpb25fY29kZTsNCisgICAgDQorICAgIC8qMTAuMy42LjQxOlRfem1pZGFtYmxlX3NoaWZ0X2J1cnN0X3R5cGUqLw0KKyAgICBUX3pURF9QX21pZF9zaGlmdF9idXJfdHlwZSAgICAgICAgdE1pZGFtYmxlX3NoaWZ0X2J1cnN0X3R5cGU7DQorfVRfelREX1BfZnBhY2hfaW5mbzsgLyo3V29yZCovDQorDQorLypQUkFDSC1GUEFDSCovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIC8qMTAuMy42Ljg0IFRpbWVzbG90cyBudW1iZXI6SW50ZWdlcigwLi42KSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RpbWVfc2xvdF9udW1iZXI7DQorICAgIA0KKyAgICAvKjEwLjMuNi41MWEgUFJBQ0ggY2hhbm5lbGlzYXRpb24gb24gY29kZSAxLjI4IE1jcHMgVEREKi8NCisgICAgVF96VERfUF9QcmFjaF9DaF9jb2RlICAgICAgICB0UHJhY2hfY2hhbm5lbGlzYXRpb25fY29kZTsNCisgICAgDQorICAgIC8qMTAuMy42LjQxIE1pZGFtYmxlIHNoaWZ0IGFuZCBidXJzdCB0eXBlKi8NCisgICAgVF96VERfUF9taWRfc2hpZnRfYnVyX3R5cGUgICAgICAgIHRNaWRhbWJsZV9zaGlmdF9idXJzdF90eXBlOyAgICANCisgICAgDQorICAgIC8qMTAuMy42LjM1YSBGUEFDSCAgICBpbmZvKi8NCisgICAgVF96VERfUF9mcGFjaF9pbmZvICAgICAgICAgICAgICAgICAgICAgICB0RnBhY2hfaW5mbzsNCit9VF96VERfUF9wcmFjaF9mcGFjaF9pbmZvOyAvKjIwV29yZCovDQorDQorLyoxMC4zLjYuOTEgVXBsaW5rIERQQ0ggcG93ZXIgY29udHJvbCBpbmZvKi8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIC8qd1VsX3RhcmdldF9zaXIgICAwOm5vdCBleGlzdCAxOmV4aXN0Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWxfdGFyZ2V0X3Npcl9mbGc6MTsgICAgICAgIA0KKyAgICAvKndQcmltYXJ5X2NjcGNoX3R4X3Bvd2VyX2ZsZyAgIDA6bm90IGV4aXN0IDE6ZXhpc3QqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltYXJ5X2NjcGNoX3R4X3Bvd2VyX2ZsZzoxOyAgICAgICAgDQorICAgIA0KKyAgICAvKg0KKyAgICAgICAgUmVhbCgtMTEuLjIwIGJ5IHN0ZXAgb2YgMC41ZEIpO0ZvciAxLjI4IE1jcHMgVEREIHRoaXMgcGFyYW1ldGVyDQorICAgICAgICByZXByZXNlbnRzIFBSWGRwY2hkZXMgd2l0aCByYW5nZSBJbnRlZ2VyKC0xMjAuLi01OCkgYnkgc3RlcCAxDQorICAgICAgICB3VWxfdGFyZ2V0X3NpciAgPSAoeC0oLTEyMCkvMC41ICkNCisgICAgICAgIA0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVbF90YXJnZXRfc2lyOw0KKyAgICAvKiBJbnRlZ2VyKDEsMiwzKSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RwY19zdGVwX3NpemU7ICAgDQorICAgICAgIA0KKyAgICAvKiBJbnRlZ3IoNi4uLjUwKSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaW1hcnlfY2NwY2hfdHhfcG93ZXI7ICAgDQorICAgIC8qMTq5wLzGYmVhY29uwrfL8CAwOrK7ucC8xiovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0JlYWNvbl9wbF9lc3Q7DQorCVdPUkQJCQkJCQkJCQkJd1BhZGRpbmc7DQorfVRfelREX1BfdWxfZHBjaF9wb3dlcl9jdHJsOw0KKw0KKy8qMTAuMy42Ljk2ICBVcGxpbmsgVGltaW5nIEFkdmFuY2UgQ29udHJvbCovDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICAvKkludGVnZXIoMS4uOCkqLw0KKyAgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVbF9TeW5jX1N0ZXBfU2l6ZTsNCisgICAgLypJbnRlZ2VyKDEuLjgpKi8NCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VWxfU3luY19GcmVxOw0KKyAgICANCisgICAgLyowOiBTeW4gcGFyYW1ldGVyIG5vdCBleGlzdDsgMTpTeW4gcGFyYW1ldGVyIGV4aXN0Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U3luY19QYXJhbV9GbGc7DQorICAgIC8qU1lOQ19VTCBjb2RlcyBiaXRtYXA6IEJpdHN0cmluZyg4KSovICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTeW5sX3VwX2NvZGVzOw0KKyAgICANCisgICAgLypGUEFDSCBpbmZvIDEwLjMuNi4zNWEqLw0KKyAgICBUX3pURF9QX2ZwYWNoX2luZm8gICAgICAgICAgICAgICAgICAgICAgIHRGcGFjaF9pbmZvOyAgICANCisgICAgDQorICAgIC8qUFJYdXBQQ0hkZXM6IEludGVnZXIoLTEyMC4uLTU4IGJ5IHN0ZXAgMSkNCisgICAgICAgIHdQcnhfdXBfcGNoX2RlcyAgICA9ICAgICh4LSgtMTIwKSkNCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJ4X3VwX3BjaF9kZXM7DQorICAgIC8qTWF4IFNZTkNfVUwgVHJhbnNtaXNzaW9ucyxJbnRlZ2VyKDEsMiw0LDgpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWF4X3N5bmNfdWxfdHJhbnNtaXNzaW9uczsNCisgICAgDQorICAgIC8qSW50ZWdlcigwLDEsMiwzKSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Bvd2VyX3JhbXBfc3RlcDsNCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1VhckZjbl9mbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1VwcGNoX2NoaXBfc2hpZnRfZmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVYXJGY247DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1VwcGNoX2NoaXBfc2hpZnQ7DQorfVRfelREX1BfdWxfdGltaW5nX2FkdmFuY2U7DQorDQorLyoxMC4zLjYuMTAgQ29tbW9uIHRpbWVzbG90IGluZm8qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICAvKkVudW1lcmF0ZWQoRnJhbWUsVGltZXNsb3QpICAgICAwOkZyYW1lIDE6VGltZXNsb3QqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZWNvbmRfaW50ZXJsZWF2aW5nX21vZGU7DQorICAgIC8qVEZDSSBjb2RpbmcgICAgSW50ZWdlcig0LDgsMTYsMzIpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2ZjaV9jb2Rpbmc7DQorICAgIA0KKyAgICAvKlJlYWwoMC40MC4uMS4wICBieSBzdGVwIG9mIDAuMDQpDQorICAgICAgICB3UHVuY3R1cmluZ19saW1pdCAgICA9ICh4LTAuNDApLzAuMDQNCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHVuY3R1cmluZ19saW1pdDsNCisgICAgLypSZXBldGl0aW9uIHBlcmlvZCAgICAgICAgSW50ZWdlcigxLDIsNCw4LDE2LDMyLDY0KSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JlcGV0aXRpb25fcGVyaW9kOw0KKyAgICANCisgICAgLypJbnRlZ2VyKDEuLmJSZXBldGl0aW9uX3BlcmlvZC0xKSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JlcGV0aXRpb25fbGVuZ3RoOw0KK31UX3pURF9QX2NvbW1vbl90c19pbmZvOw0KKw0KKw0KKy8qMTAuMy42LjM3IEluZGl2aWR1YWwgdGltZXNsb3QgaW5mbyovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIC8qMTAuMy42Ljg0IDpJbnRlZ2VyKDAuLjYpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGltZXNsb3RfbnVtYmVyOw0KKyAgICAvKlRGQ0kgZXhpc3RlbmNlICAgMDpmYWxzZSAxOnRydWUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUZmNpX2V4aXN0ZW5jZTsNCisgICAgDQorICAgIC8qMTAuMy42LjQxIE1pZGFtYmxlIHNoaWZ0IGFuZCBidXJzdCB0eXBlKi8NCisgICAgVF96VERfUF9taWRfc2hpZnRfYnVyX3R5cGUgICAgICAgIHRNaWRhbWJsZV9zaGlmdF9idXJzdF90eXBlOw0KKyAgICANCisgICAgLypFbnVtZXJhdGVkKFFQU0ssOFBTSykgMDpRUFNLIDE6OFBTSyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01vZHVsYXRpb247DQorICAgIC8qRW51bWVyYXRlZCgwLDEsMTYvU0YpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U3NfdHBjX3N5bWJvbHM7DQorICAgIA0KKyAgICAvKkludGVnZXIoMS4uMTUpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWRkaXRpb25hbF90cGNfc3Nfc3ltYm9sc19mbGc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FkZGl0aW9uYWxfdHBjX3NzX3N5bWJvbHM7DQorfVRfelREX1BfaW5kaXZpZHVhbF90c19pbmZvOw0KKw0KKy8qMTAuMy42LjE3IERvd25saW5rIGNoYW5uZWxpc2F0aW9uIGNvZGVzKi8gICAgDQorLypDb25zZWN1dGl2ZSBjb2RlczogRmlyc3QgSW5kaXZpZHVhbCB0aW1lc2xvdCBpbmZvIGFuZCBmaXJzdCB0aW1lc2xvdCBjaGFubmVsaXNhdGlvbiBjb2RlcyovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIC8qY2hhbm5lbGlzYXRpb24gY29kZSA6MTYveCovDQorICAgIFRfelREX1BfQ0hBTk5FTElTQVRJT05fQ09ERSAgICAgICAgICAgICAgdEZpcnN0X2NoYW5uZWxpc2F0aW9uX2NvZGU7DQorDQorICAgIC8qY2hhbm5lbGlzYXRpb24gY29kZSA6MTYveCovDQorICAgIFRfelREX1BfQ0hBTk5FTElTQVRJT05fQ09ERSAgICAgICAgICAgICAgdExhc3RfY2hhbm5lbGlzYXRpb25fY29kZTsNCit9VF96VERfUF9jb25zZWN1dGl2ZV9jb2RlczsNCisNCisvKjEwLjMuNi4xNyovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1R5cGU7DQorICAgIHVuaW9uew0KKyAgICAgICAgLypDb25zZWN1dGl2ZSBjb2RlcyovDQorICAgICAgICBUX3pURF9QX2NvbnNlY3V0aXZlX2NvZGVzICAgICAgICAgICAgdGRvd25fY2hhbm5lbGlzYXRpb25fY29kZTsNCisgICAgICAgICAgICANCisgICAgICAgIC8qRWFjaCBiaXQgaW5kaWNhdGVzIHRoZSBhdmFpbGFiaWxpdHkgb2YgYSBjaGFubmVsaXNhdGlvbiBjb2RlIGZvciBTRjE2Ki8NCisgICAgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2hhbm5lbGlzYXRpb25fY29kZV9iaXRtYXA7DQorICAgIH10Q2hhbm5lbGlzYXRpb25fY29kZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorfVRfelREX1BfZGxfY2hfY29kZXM7DQorDQorLyoNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2Y7ICAgICAgICAgICAgLy/Aqca10vLX06OsyKHWtTG78tXfMTYvLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDaENvZGVOdW07ICAgICAvL9DFtcC7r8LruPbK/aOsyKHWtToxIHRvIDE2Ly8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd0NoQ29kZVsxNl07ICAgIC8v0MW1wLuvwuujrMih1rUxtb1TRi8vICAgICAgICAgICAgICAgICAgICAgICAgDQorfVRfelREX1BfZGxfY2hfY29kZXM7DQorKi8NCisNCisvKjEwLjMuNi4zMiBEb3dubGluayBUaW1lc2xvdHMgYW5kIENvZGVzKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgVF96VERfUF9kbF9jaF9jb2RlcyAgICAgICAgICAgICAgICAgICAgICB0RG93bl9jaGFubmVsaXNhdGlvbl9jb2RlOw0KKyAgICBUX3pURF9QX2luZGl2aWR1YWxfdHNfaW5mbyAgICAgICAgICAgICAgIHRJbmRpdmlkdWFsX3RpbWVzbG90X2luZm87DQorfVRfelREX1BfZGxfdHNfY29kZXNfZWxlbWVudDsNCisNCisvKjEwLjMuNi4zMiovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RzX2FuZF9jaF9udW1iZXI7DQorICAgIFRfelREX1BfZGxfdHNfY29kZXNfZWxlbWVudCAgICAgICAgICAgICAgYXREb3dubGlua190aW1lc2xvdHNfY29kZVtaX1REX1BfTUFYX0RMX1RTXTsNCit9VF96VERfUF9kbF90c19jb2RlczsNCisNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGZjc19pZDsNCisgICAgLyp0aW1lIGluZm8qLyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0aXZlX3RpbWU7DQorDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0R1cmF0aW9uOw0KKw0KKyAgICAvKjEwLjMuNi4xMCBDb21tb24gdGltZXNsb3QgaW5mbyovDQorICAgIFRfelREX1BfY29tbW9uX3RzX2luZm8gICAgICAgICAgICAgICAgICAgdENvbW1vbl90aW1lc2xvdF9pbmZvOw0KKw0KKyAgICAvKjEwLjMuNi4zMiBEb3dubGluayAgRFBDSCB0aW1lc2xvdHMgYW5kIGNvZGVzKi8NCisgICAgVF96VERfUF9kbF90c19jb2RlcyAgICAgICAgICAgICAgICAgICAgICB0RG93bmxpbmtfZHBjaF90aW1lc2xvdF9jb2RlczsNCit9VF96VERfUF9kbF9jY3RyY2hfbGlzdDsNCisNCisNCisvKjEwLjMuNi45NCB1cGxpbmsgY2hhbm5lbGlzYXRpb24gY29kZXMqLyAgICANCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtOw0KKyAgICBUX3pURF9QX0NIQU5ORUxJU0FUSU9OX0NPREUgICAgICAgICAgICAgIGF0VXBsaW5rX2NoYW5uZWxpc2F0aW9uWzJdOyAgICAgICAgICAgICAgICAgICAgICAgIA0KK31UX3pURF9QX3VsX2NoX2NvZGVzOw0KKw0KKy8qMTAuMy42LjMyIHVwbGluayBUaW1lc2xvdHMgYW5kIENvZGVzKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgVF96VERfUF91bF9jaF9jb2RlcyAgICAgICAgICAgICAgICAgICAgICB0VXBsaW5rX2NoYW5uZWxpc2F0aW9uX2NvZGU7DQorICAgIFRfelREX1BfaW5kaXZpZHVhbF90c19pbmZvICAgICAgICAgICAgICAgdEluZGl2aWR1YWxfdGltZXNsb3RfaW5mbzsNCit9VF96VERfUF91bF90c19jb2Rlc19lbGVtZW50Ow0KKw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUc19hbmRfY2hhbm5lbGlzYXRpb25fbnVtYmVyOw0KKyAgICBUX3pURF9QX3VsX3RzX2NvZGVzX2VsZW1lbnQgICAgICAgICAgICAgIGF0VXBsaW5rX3RpbWVzbG90c19jb2RlW1pfVERfUF9NQVhfVUxfVFNdOw0KK31UX3pURF9QX3VsX3RpbWVzbG90c19jb2RlczsNCisNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGZjc19pZDsNCisgICAgLyp0aW1lIGluZm8qLyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0aXZlX3RpbWU7DQorDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0R1cmF0aW9uOw0KKyAgICANCisgICAgLyoxMC4zLjYuMTAgQ29tbW9uIHRpbWVzbG90IGluZm8qLw0KKyAgICBUX3pURF9QX2NvbW1vbl90c19pbmZvICAgICAgICAgICAgICAgICAgIHRDb21tb25fdGltZXNsb3RfaW5mbzsNCisNCisgICAgLyoxMC4zLjYuMzIgRG93bmxpbmsgIERQQ0ggdGltZXNsb3RzIGFuZCBjb2RlcyovDQorICAgIFRfelREX1BfdWxfdGltZXNsb3RzX2NvZGVzICAgICAgICAgICAgICAgdFVwbGlua19kcGNoX3RpbWVzbG90X2NvZGVzOw0KK31UX3pURF9QX3VsX2NjdHJjaF9saXN0Ow0KKw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICAvKkludGVnZXIoMC4uNikqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUaW1lc2xvdF9udW1iZXI7DQorDQorICAgIC8qRW51bWVyYXRlZCgoMTYvMSkuLigxNi8xNikpKi8NCisgICAgVF96VERfUF9DSEFOTkVMSVNBVElPTl9DT0RFICAgICAgICAgICAgICB0Q2hhbm5lbGlzYXRpb25fY29kZTsNCisNCisgICAgLypNaWRhbWJsZSBhbGxvY2F0aW9uIG1vZGUNCisgICAgICAgIEVudW1lcmF0ZWQoRGVmYXVsdCBNaWRhbWJsZSxDb21tb24gTWlkYW1ibGUsVUUgc3BlY2lmaWMgTWlkYW1ibGUpDQorICAgICAgICB3TWlkYW1sZV9hbGxvY2F0aW9uX21vZGU9MCwxLDIgDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01pZGFtYmxlX2FsbG9jYXRpb25fbW9kZTsNCisNCisgICAgLypNaWRhbWJsZSBjb25maWd1cmF0aW9uDQorICAgICAgICBJbnRlZ2VyKDIsNCw2LDgsMTAsMTIsMTQsMTYpDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01pZGFtYmxlX2NvbmZpZ3VyYXRpb247DQorICAgIC8qSW50ZWdlcigwLi4xNSkqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNaWRhbWJsZV9zaGlmdDsNCisNCisgICAgLyoNCisgICAgSW50ZWdlcigtNy4uOCkNCisgICAgd0Fja19uYWNrX3Bvd2VyX29mZnNldCA9IHgtKC03KQ0KKyAgICB4PXdBY2tfbmFja19wb3dlcl9vZmZzZXQgLSA3DQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0Fja19uYWNrX3Bvd2VyX29mZnNldDsNCisgICAgLyoNCisgICAgICAgIEludGVnZXIoLTEyMC4uLTU4KQ0KKyAgICAgICAgd1BSWGhzX3NpY2ggICAgPSAgIHgtKC0xMjApOw0KKyAgICAgICAgeCA9IHdQUlhoc19zaWNoIC0gMTIwOyAgICAgICAgDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BSWGhzX3NpY2g7DQorICAgIA0KKyAgICAvKg0KKyAgICAgICAgSW50ZWdlcigxLDIsMykNCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHBjX3N0ZXBfc2l6ZTsNCit9VF96VERfUF9oc19zaWNoOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKy8qDQorICAgIC8vc2NjaLXEvdPK1ca1wsoNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NjY2hfcnhfZnJlcTsgICAgICANCisqLw0KKyAgICAvKkludGVnZXIoMC4uNikqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUaW1lU2xvdF9udW1iZXI7DQorDQorICAgIC8qZmlyc3QgQ2hhbm5lbGlzYXRpb24gY29kZSovDQorICAgIFRfelREX1BfQ0hBTk5FTElTQVRJT05fQ09ERSAgICAgICAgICAgICAgdEZpcnN0X2NoYW5uZWxpc2F0aW9uX2NvZGU7DQorICAgIA0KKyAgICAvKnNlY29uZCBjaGFubmVsaXNhdGlvbiBjb2RlKi8NCisgICAgVF96VERfUF9DSEFOTkVMSVNBVElPTl9DT0RFICAgICAgICAgICAgICB0U2Vjb25kX2NoYW5uZWxpc2F0aW9uX2NvZGU7DQorDQorICAgIC8qTWlkYW1ibGUgYWxsb2NhdGlvbiBtb2RlDQorICAgICAgICBFbnVtZXJhdGVkKERlZmF1bHQgTWlkYW1ibGUsQ29tbW9uIE1pZGFtYmxlLFVFIHNwZWNpZmljIE1pZGFtYmxlKQ0KKyAgICAgICAgd01pZGFtbGVfYWxsb2NhdGlvbl9tb2RlPTAsMSwyIA0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNaWRhbWJsZV9hbGxvY2F0aW9uX21vZGU7DQorDQorICAgIC8qDQorICAgICAgICBUaGlzIElFIGlzIG1hbmRhdG9yeSBwcmVzZW50IHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBJRSAiTWlkYW1ibGUgQWxsb2NhdGlvbiBNb2RlIg0KKyAgICAgICAgaXMgIlVFIHNwZWNpZmljIE1pZGFtYmxlIiBhbmQgbm90IG5lZWRlZCBvdGhlcndpc2UuDQorICAgICAgICBJbnRlZ2VyKDAuLjE1KQ0KKyAgICAqLyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWlkYW1ibGVfc2hpZnQ7DQorICAgIC8qDQorICAgICAgICBJbnRlZ2VyKDIsNCw2LDgsMTAsMTIsMTQsMTYpDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01pZGFtYmxlX2NvbmZpZ3VyYXRpb247DQorDQorICAgIC8qDQorICAgICAgICAgICB3Qmxlcl90YXJnZXS1xLe2zqfOqjDWwTYzo7vO78DtsuPK1bW9uvPSqiqjqC0wLjA1o6m1w7W9yrW8yta1IA0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdCbGVyX3RhcmdldDsNCisNCisgICAgLypzaWNoIGluZm8qLw0KKyAgICBUX3pURF9QX2hzX3NpY2ggICAgICAgICAgICAgICAgICAgICAgICAgIHRIc19zaWNoOw0KKw0KK31UX3pURF9QX2hzX3NjY2g7DQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIC8qTWlkYW1ibGUgYWxsb2NhdGlvbiBtb2RlDQorICAgICAgICBFbnVtZXJhdGVkKERlZmF1bHQgTWlkYW1ibGUsQ29tbW9uIE1pZGFtYmxlLFVFIHNwZWNpZmljIE1pZGFtYmxlKQ0KKyAgICAgICAgd01pZGFtbGVfYWxsb2NhdGlvbl9tb2RlPTAsMSwyIA0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNaWRhbWJsZV9hbGxvY2F0aW9uX21vZGU7DQorICAgIC8qTWlkYW1ibGUgY29uZmlndXJhdGlvbg0KKyAgICAgICAgSW50ZWdlcigyLDQsNiw4LDEwLDEyLDE0LDE2KQ0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNaWRhbWJsZV9jb25maWd1cmF0aW9uOw0KKw0KKyAgICAvKkludGVnZXIoMC4uMTUpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWlkYW1ibGVfc2hpZnQ7DQorfVRfelREX1BfaHNfZHBzY2hfbWlkYW1ibGU7DQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bWJlcl9wcm9jZXNzOw0KKyAgICAvKm1lbW9yeSBwYXJ0aXRpb25pbmcgMDppbXBsaWNpdCAxOmV4cGxpY2l0Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWVtb3J5X3BhcnRpdGlvbmluZzsNCisNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd1Byb2Nlc3NfbWVtb3J5X3NpemVbWl9URF9QX01BWF9IX1BST0NFU1NdOw0KK31UX3pURF9QX2hzX2hhcnFfaW5mbzsNCisNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RpbWVfc2xvdF9udW1iZXI7DQorICAgIFRfelREX1BfbWlkX3NoaWZ0X2J1cl90eXBlICAgICAgICAgICAgICAgdE1pZGFtYmxlX3NoaWZ0X2J1cnN0X3R5cGU7ICAgICAgICAvKkUtUFVDSLXEbWlkYW1ibGUgbW9kZda7xNzIoTC78jIqLyAgICANCit9VF96VERfUF9lcHVjaF9taWRhbTsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U25wbF90eXBlOyAgICAgICAgICAgIC8qMDrN+LLgzrTWuLaoo6y/ydaxvdPM7lNOUEw9OTsgMaO6dHlwZTE7IDKjunR5cGUyKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJ4X2Jhc2VfZGVzOyAgICAgICAgLypSZWZlcmVuY2UgZGVzaXJlZCBwb3dlciBsZXZlbCBmb3IgRS1QVUNILMq1vMrWtT14LTExMqOsyKHWtbe2zqcwLTYyLiovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0JlYWNvbl9wbF9lc3Q7ICAgICAgICAvKjEtwrfL8LnAvMbKsb+8wsdiZWFjb26juzAtsru/vMLHKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHBjX3N0ZXBfc2l6ZTsgICAgICAgIC8qUGUtYmFzZdbQtcRzdGVwss7K/aGjyv2+3be2zqejujEuLjMqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQb3dfY3RybF9nYXA7ICAgICAgICAvKtfT1qG49sr9o6xUUEPKsbzkzaO22cPFz96jrDAuLjI1NSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1N5bmNfc3RlcF9zaXplOyAgICAvKrX31fvJz9DQtKvK5LaoyrG1xLK9s6QsMS4uOCovICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTeW5jX2ZyZXE7ICAgICAgICAgICAgLyq199X7yc/Q0LSryuS2qMqxtcTGtcLKLDEuLjgqLw0KKwlXT1JECQkJCQkJCQkJCXdQYWRkaW5nOw0KK31UX3pURF9QX2VwdWNoX3B3cl9pbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUaW1lX3Nsb3RfbnVtYmVyOw0KKyAgICBUX3pURF9QX21pZF9zaGlmdF9idXJfdHlwZSAgICAgICAgICAgICAgIHRNaWRhbWJsZV9zaGlmdF9idXJzdF90eXBlOyAgICAgICAgICAgICAgICANCisgICAgVF96VERfUF9DSEFOTkVMSVNBVElPTl9DT0RFICAgICAgICAgICAgICB0Rmlyc3RfY2hhbm5lbGlzYXRpb25fY29kZTsgICAgDQorICAgIFRfelREX1BfQ0hBTk5FTElTQVRJT05fQ09ERSAgICAgICAgICAgICAgdFNlY29uZF9jaGFubmVsaXNhdGlvbl9jb2RlOyAgICANCit9VF96VERfUF9oc19lYWdjaDsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGltZV9zbG90X251bWJlcjsNCisgICAgVF96VERfUF9taWRfc2hpZnRfYnVyX3R5cGUgICAgICAgICAgICAgICB0TWlkYW1ibGVfc2hpZnRfYnVyc3RfdHlwZTsgICAgICAgIC8qRS1ISUNItcRtaWRhbWJsZSBtb2Rl1rvE3MihMLvyMiovDQorICAgIFRfelREX1BfQ0hBTk5FTElTQVRJT05fQ09ERSAgICAgICAgICAgICAgdENoYW5uZWxpc2F0aW9uX2NvZGU7ICAgIA0KK31UX3pURF9QX2hzX2VoaWNoOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSZGlfaW5kOyAgICAgICAgICAgICAgICAvKjA6UkRJsru05tTaIDE6UkRJtObU2iovDQorDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VhZ2NoX251bTsgICAgICAgICAgICAgICAgLypFLUFHQ0jQxbXA0MXPosHQse0qLw0KKyAgICBUX3pURF9QX2hzX2VhZ2NoICAgICAgICAgICAgICAgICAgICAgICAgIGF0RWFnY2hfY29uZmlnW1pfVERfUF9NQVhfRUFHQ0hfTlVNXTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHBjX3N0ZXBfc2l6ZTsgICAgICAgICAgICAvKkUtQUdDSLXEuaa/2LK9s6QsMS4uMyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VhZ2NoX2JsZXJfdGFyZ2V0OyAgICAgICAgLyrKtbzK1rU9KHgtNjMpKjAuMDWjrMih1rW3ts6nMH42MyovDQorDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0VoaWNoX251bTsgICAgICAgICAgICAgICAgLypFLUhJQ0jQxbXA0MXPosHQse0qLw0KKyAgICBUX3pURF9QX2hzX2VoaWNoICAgICAgICAgICAgICAgICAgICAgICAgIGF0RWhpY2hfY29uZmlnW1pfVERfUF9NQVhfU0NIX0VISUNIX05VTV07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdFaVtaX1REX1BfTUFYX1NDSF9FSElDSF9OVU1dOyAgICAvKsO/uPZFLUhJQ0i1xLHqyrYsyKHWtbe2zqcwfjMqLw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFcHVjaF9udW07ICAgICAgICAgICAgICAgIC8qRS1QVUNI0MW1wNDFz6LB0LHtKi8NCisgICAgVF96VERfUF9lcHVjaF9taWRhbSAgICAgICAgICAgICAgICAgICAgICBhdEVwdWNoX21pZGFtX2xpc3RbWl9URF9QX01BWF9FUFVDSF9UU19OVU1dOw0KK31UX3pURF9QX2hzX3NjaF90cjsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RXVjY2hfbnVtOyAgICAgICAgICAgICAgICAgICAgLyplLXVjY2i49sr9o6wxfjgqLw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFcHVjaF9hY3RfdGltZTsgICAgICAgICAgICAgICAvKkUtUFVDSMbw0KfWobrFo6wwfjI1NSovICAgICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RXB1Y2hfc3ViX2ZyYW1lOyAgICAgICAgICAgICAgLypFLVBVQ0jG8NCn19PWobrFo6wwfjEqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFcHVjaF9yZXBfcHJkOyAgICAgICAgICAgICAgICAvKkUtUFVDSNbYuLTW3Mbao6wxLzIvNC84LzE2LzMyuPZUVEkqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFcHVjaF9yZXBfbGVuOyAgICAgICAgICAgICAgICAvKkUtUFVDSNfK1LSzpLbIo6zIoda1MS4ud0VwdWNoX3JlcF9wcmQtMSx3RXB1Y2hfcmVwX3ByZD0xyrHIoda1zqoxKi8NCisJV09SRAkJCQkJCQkJCQl3RXB1Y2hfcHJyaTsgICAgICAgICAgICAgICAgICAgLypFLVBVQ0jX7rTzuabCytfK1LSjrDF+MzIqLw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFcHVjaF9udW07ICAgICAgICAgICAgICAgICAgICAvKkUtUFVDSNDFtcDQxc+iwdCx7SovICAgIA0KKyAgICBUX3pURF9QX2VwdWNoX21pZGFtICAgICAgICAgICAgICAgICAgICAgIGF0RXB1Y2hfbWlkYW1fbGlzdFtaX1REX1BfTUFYX0VQVUNIX1RTX05VTV07LypFLVBVQ0jKsc+2us1NaWTC69DFz6IqLw0KKyAgICBUX3pURF9QX0NIQU5ORUxJU0FUSU9OX0NPREUgICAgICAgICAgICAgIHRDaGFubmVsaXNhdGlvbl9jb2RlOyAgICAgICAgICAvKkUtUFVDSNDFtcC7r8LrKi8NCisNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RWhpY2hfc2lnX2dyb3VwX2lkeDsgICAgICAgICAgLypFLUhJQ0jQxbXAy/nKudPDtcRTaWduYXR1cmVTZXFJbmRleKOsMH4xOS4yNTIyMSA1QS4zLjE3Ki8NCisgICAgVF96VERfUF9oc19laGljaCAgICAgICAgICAgICAgICAgICAgICAgICB0RWhpY2hfY29uZmlnOyAgICAgICAgICAgICAgICAgLypFLUhJQ0jQxbXAxeTWwyovDQorfVRfelREX1BfaHNfbm9uX3NjaF90cjsNCisNCit0eXBlZGVmIHN0cnVjdHsgIC8qTDHKudPDyc/Q0ERQQ0jKsc+2us3QxbXAu6/C68C0vajBosnP0NBEUENIus1QTENDSLXE07PJ5LnYz7UqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVbF9kcGNoX3RzOyAgICAgICAgICAgICAgICAgIC8qUExDQ0jL+bbU06bJz9DQRFBDSMqxz7YqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQbGNjaF9zZXFfbnVtOyAgICAgICAgICAgICAgIC8qMS4uMTSjrLqs0uW0/bLpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGxjY2hfdHM7ICAgICAgICAgICAgICAgICAgICAvKjAuLjYqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUcGNfdGFyZ2V0X3JhdGU7ICAgICAgICAgICAgIC8qMC4uMTAqLw0KKyAgICBUX3pURF9QX0NIQU5ORUxJU0FUSU9OX0NPREUgICAgICAgICAgICAgIHRVbF9kcGNoX2NoYW5uZWxzYXRpb25fY29kZTsgIC8qUExDQ0jL+bbU06bJz9DQRFBDSMLrKi8NCisgICAgVF96VERfUF9DSEFOTkVMSVNBVElPTl9DT0RFICAgICAgICAgICAgICB0UGxjY2hfY2hhbm5lbGlzYXRpb25fY29kZTsNCit9VF96VERfUF9wbGNjaF9pbmZvOw0KKyNpZmRlZiBSOV9TVVBQT1JUDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3SHNfc2NjaF9yZWN2X2ZyZXE7LypIUy1TQ0NIL0hTLVNJQ0i21NOmtcTGtbXjKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBUX3pURF9QX2hzX3NjY2ggICAgICAgICAgICAgICAgICAgICAgICAgdEhzX3NjY2hfY29uZmlndXJhdGlvbjsNCit9VF96VERfUF9tY19oc19zY2NoOw0KKw0KKy8qUnggb3IgVHggUGF0dGVybiovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSZXBldGl0aW9uX3BlcmlvZDsvKtbYuLTW3Mbao6zIoda1t7bOpzEsMiw0LDgsMTYsMzIqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmVwZXRpdGlvbl9sZW5ndGg7IC8q1ti4tLOktsijrMih1rW3ts6nMS4uYlJlcGV0aXRpb25fcGVyaW9kLTGjrLWxd1JlcGV0aXRpb25fcGVyaW9kPTHKsbjD1rXO3tCnKi8NCit9VF96VERfUF9wYXR0ZXJuOw0KKy8qSHNkc2NoIHNwc7LZ1/e21NOmtcRIYXJx0MXPoiovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3TnVtYmVyX3Byb2Nlc3M7LypIcy1zY2NoIHNwc7LZ1/fL+cTcyrnTw7XESEFSUb34s8y49sr9o6zIoda1t7bOpzF+OCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgIGR3UHJvY2Vzc19tZW1vcnlfc2l6ZTsvKkhzLXNjY2ggc3BzstnX98v5xNzKudPDtcTX3LXE0OnE4klSIGJ1ZmZlcrXEtPPQoaOsyKHWtbe2zqejujgwMH4xNjAwMCBieSBzdGVwIG9mIDgwMKOsDQorCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3NjAwfjMyMDAwIGJ5IHN0ZXAgb2YgMTYwMKOsMzYwMDB+ODAwMDAgYnkgc3RlcCBvZiA0MDAwo6w4ODAwMH4xNjAwMDAgYnkgc3RlcCBvZiA4MDAwo6wgMTc2MDAwfjMwNDAwMCBieSBzdGVwIG9mIDE2MDAwKi8NCit9VF96VERfUF9oc2RzY2hfc3BzX2hhcnFfaW5mbzsNCisvKtPD09pzcHOy2df3tcRIcy1kc2NowuvXytS00MXPojq1sXdTdGFydENvZGVJbmZvttTTps6qMTYvMTajrHdTdG9wQ29kZUluZm+21NOmzqoxLzE2yrGjrLHtyr5TRs6qMSovDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7CQ0KKyAgICBXT1JECSAgICAgICAgICAgICAgICB3U3RhcnRDb2RlSW5mbzsJLyrG8Mq80MW1wLuvwuvQxc+iO8ih1rXOqjChrS4xNTu31rHwttTTprXE0MW1wLuvwuvOqjEvMTahrS4uMTYvMTYqLw0KKyAgICBXT1JECSAgICAgICAgICAgICAgICB3U3RvcENvZGVJbmZvOy8qveHK+LXE0MW1wLuvwuvQxc+iO8ih1rXOqjChrS4xNTu31rHwttTTprXE0MW1wLuvwuvOqjEvMTahrS4uMTYvMTYqLw0KK31UX3pURF9QX2NvZGVfcmVzb3VyY2VfaW5mbzsNCisNCisvKkhzLWRzY2i21NOmtcSz9cq8c3Bz0MXPoiovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQJCQkJCQkgICAgICAgICAgICAgICAgd1RzSW5mbzsvKrfWxeS1xNPD09pzcHO1xEhzLXBkc2NottTTprXEyrHPttDFz6KjrLXNzuXOu9PQ0KejrNa4tqjOu9bDzrux7cq+z+DTpsqxz7bTw9Pac3BzstnX96GjKi8JCQkNCisgICAgV09SRAkJCQkJCSAgICAgICAgICAgICAgICB3QWN0VGltZTsvKryku+7Ksbzko6zIoda1t7bOpzB+MjU1Ki8NCisgICAgV09SRAkJCQkJCSAgICAgICAgICAgICAgICB3U3ViRnJhbWVOdW07IC8q19PWobrFo6zIoda1MKOsMSovDQorICAgIFdPUkQJCQkJCQkgICAgICAgICAgICAgICAgd0luaXRUYnNJZHg7Lyqz9cq8VGJzy/fS/brFo6zIoda1t7bOpzB+MyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0luaXRSeFBhdHRlcm5JZHg7IC8qs/XKvFJ4UGF0dGVybsv30v26xaOsyKHWtbe2zqcwfjMqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIc3NpY2hJZHg7ICAgLypoc3NpY2jL99L9usWjrMih1rW3ts6nMH4zKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TW9kOyAgLyrIoda1MLHtyr5tb2RRUFNLo6wxse3KviBtb2QxNlFBTSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7IA0KKyAgICBUX3pURF9QX2NvZGVfcmVzb3VyY2VfaW5mbwkgICAgICAgICAgICAgICAgdENvZGVSZXNvdXJjZUluZm87CS8qSFMtUERTQ0jQxbXAu6/C69DFz6Kju7WxU3RhcnTOqjE2o6xzdG9wzqoxyrGjrLHtyr5zZs6qMSovDQorfVRfelREX1BfaW5pdF9oc2RzY2hfc3BzX2luZm87DQorLypFZGNottTTprXEs/XKvHNwc9DFz6IqLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0V1Y2NoX251bTsvKmUtdWNjaLj2yv2jrDF+OCovDQorICAgIFdPUkQJCQkJCQkgICAgICAgICB3VHNJbmZvOy8qt9bF5LXE08PT2nNwc7XERS1EQ0i21NOmtcTKsc+20MXPoqOstc3O5c6709DQp6Os1ri2qM671sPOu7Htyr7P4NOmyrHPttPD09pzcHOy2df3Ki8NCisgICAgV09SRAkJCQkJCSAgICAgICAgIHdFcHVjaF9wcnJpOy8qRS1QVUNI1+6087mmwsrXytS0o6wxfjMyKi8NCisgICAgV09SRAkJCQkJCSAgICAgICAgIHdBY3RUaW1lOy8qvKS77sqxvOSjrMih1rW3ts6nMH4yNTUqLw0KKyAgICBXT1JECQkJCQkJICAgICAgICAgd1N1YkZyYW1lTnVtOy8q19PWobrFo6zIoda1MKOsMSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3SW5pdFR4UGF0dGVybklkeDsgLyqz9cq8VHhQYXR0ZXJuy/fS/brFo6zIoda1t7bOpzB+MyovDQorICAgIFRfelREX1BfQ0hBTk5FTElTQVRJT05fQ09ERQkgICAgICAgICB0Q29kZVJlc291cmNlSW5mbzsJLypFZGNo0MW1wLuvwuvQxc+iKi8NCit9VF96VERfUF9pbml0X2VkY2hfc3BzX2luZm87DQorDQorLypIU0RTQ0i1xFNQU9DFz6IqLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIc3NpY2hOdW07IC8qaHMtc2ljaNDFtcC49sr9Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGF0dGVybk51bTsvKlJ4IFBhdHRlcm649sr9o6zIoda1t7bOpzF+NCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Ric051bTsgLypUYiBzaXpluPbK/aOsyKHWtbe2zqcxfjQqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdJbml0U3BzSW5mb0ZnOy8qMDp0SW5pdFNwc0luZm/O3tCno7sxOnRJbml0U3BzSW5mb9PQ0KcqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3VGJzW1pfVERfUF9NQVhfSFNEU0NIX1RCU19OVU1dOy8qw7+49lRiU2l6ZbXEy/fS/aOsyKHWtbe2zqcxfjYzKi8NCisJDQorICAgIFRfelREX1BfcGF0dGVybiAgICAgICAgICAgICAgICAgYXRSeFBhdHRlcm4gW1pfVERfUF9NQVhfSFNEU0NIX1JYX1BBVFRFUk5fTlVNXTsNCisgICAgVF96VERfUF9oc2RzY2hfc3BzX2hhcnFfaW5mbyAgICB0SGFycUluZm87IA0KKyAgICBUX3pURF9QX2hzX3NpY2ggICAgICAgICAgICAgICAgIGF0SHNzaWNoIFtaX1REX1BfTUFYX0hTX1NDQ0hdOw0KKyAgICBUX3pURF9QX2luaXRfaHNkc2NoX3Nwc19pbmZvICAgIHRJbml0U3BzSW5mbzsNCit9VF96VERfUF9oc2RzY2hfc3BzX2luZm87DQorLypFRENItcRTUFPQxc+iKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RWhpY2hfc2lnX2dyb3VwX2lkeDsgLypFLUhJQ0jQxbXAy/nKudPDtcRTaWduYXR1cmVTZXFJbmRleKOsMH4xOS4yNTIyMSA1QS4zLjE3Ki8gDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0luaXRTcHNJbmZvRmc7LyowOnRJbml0U3BzSW5mb87e0KejuzE6dEluaXRTcHNJbmZv09DQpyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhdHRlcm5OdW07IC8qVHhQYXR0ZXJuuPbK/SovDQorICAgIFRfelREX1BfcGF0dGVybiAgICAgICAgICAgICAgICAgICAgICAgYXRUeFBhdHRlcm4gW1pfVERfUF9NQVhfRURDSF9UWF9QQVRURVJOX05VTV07ICANCisgICAgVF96VERfUF9oc19laGljaCAgICAgICAgICAgICAgICAgICAgICB0RWhpY2hfY29uZmlnOyAgDQorICAgIFRfelREX1BfaW5pdF9lZGNoX3Nwc19pbmZvICAgICAgICAgICAgdEluaXRTcHNJbmZvOw0KK31UX3pURF9QX2VkY2hfc3BzX2luZm87DQorLyq/2NbG0MW1wEhTU0NDSCBEUliy2df30MXPoiovDQordHlwZWRlZiBzdHJ1Y3QgeyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3SW5hY3Rpdml0eV90aHJlc2hvbGRfZmxnOwkvKjEtse3KvndJbmFjdGl2aXR5X3RocmVzaG9sZNPQ0KejuzAtse3KvndJbmFjdGl2aXR5X3RocmVzaG9sZM7e0KcqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFbmFibGluZ19kZWxheTsJLyrG8NCn0dOz2aOstaXOu6O6zt7P39aho6zIoda1t7bOpzCjrDGjrDKjrDSjrDijrDE2o6wzMqOsNjSjrDEyOKOsaW5maW5pdHmjqDB4ZmZmZqOpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHJ4X2N5Y2xlOy8qRFJY1tzG2qOstaXOu9fT1qGjrMih1rW3ts6nMaOsMqOsNKOsOKOsMTajrDMyo6w2NKOsMTI4Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICB3SW5hY3Rpdml0eV90aHJlc2hvbGQ7LypEUljW3MbatcTIpbyku+7Dxc/eo6y1pc67o7rX09aho6zIoda1t7bOpzGjrDKjrDSjrDijrDE2o6wzMqOsNjSjrDEyOKOsMjU2o6w1MTKjrGluZmluaXR5o6y99rWxd0luYWN0aXZpdHlfdGhyZXNob2xkX2ZsZ86qMcqx09DQpyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RyeF9vZmZzZXQ7IC8qRFJYxqvSxqOstaXOu9fT1qGjrMih1rW3ts6nMKGtNjMqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pURF9QX2hzc2NjaF9jdHJsX2NoX2RyeDsNCisvKr/Y1sbQxbXARUFHQ0ggRFJYstnX99DFz6IqLw0KK3R5cGVkZWYgc3RydWN0IHsgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RyeF9jeWNsZTsvKkRSWNbcxtqjrLWlzrvX09aho6zIoda1t7bOpzGjrDKjrDSjrDijrDE2o6wzMqOsNjSjrDEyOCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RyeF9vZmZzZXQ7LypEUljGq9LGo6y1pc6719PWoaOsyKHWtbe2zqcwoa02MyovDQorfVRfelREX1BfZWFnY2hfY3RybF9jaF9kcng7DQorLyq5ss/t0MW1wLXEzayyvc+iKi8NCit0eXBlZGVmIHN0cnVjdCB7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd091dF9vZl9zeW5jX3dpbjsgLyrKp7K9tLCjrDQwLDgwLDE2MCwzMjAsNjQwLLWlzrttcyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3SHNzY2NoX3RwY19zdGVwX3NpemU7Lyq1sc/C0NBEUENIoaJFQUdDSLa8w7vT0MXk1sPKsbjD1rXT0NCno7vIoda1zqoxo6wyo6wzKi8NCisgICAgLypOMzEyLE4zMTMsTjMxNSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TjMxMjsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOMzEzOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd04zMTU7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfelREX1Bfc2hhcmVfY2hfc3luY19wYXJhOw0KKy8qUENIIMysz8JEUEHTs8nktb1EQ0NIL0RUQ0jKsaOsttTTprXExeTWw9DFz6IqLw0KK3R5cGVkZWYgc3RydWN0DQorewkNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyZWNfd2luX3NpemU7LypEQ0NIL0RUQ0i21NOmtcS908rVtLC089Cho6wxfjE2o6y1pc67o7rX09ahKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIX3JudGk7Lyq908rVz8LQ0EhTLVNDQ0jKsdPDtb21xFVFILHqyrYqLw0KKyAgICBXT1JECSAgICAgICAgICAgICAgICAgICAgICAgd0JjY2hIcm50aTsgLyrU2s/C0NC12tK7zPVIUy1TQ0NIyc+908rVQkNDSMnPtcTP+8+iyrHTw7W9tcTXqNPDVUWx6sq2Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIU19zY2NoX251bTsvKkhTLVNDQ0i49sr9Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBUX3pURF9QX2hzX2Rwc2NoX21pZGFtYmxlICAgICAgdEhzX3Bkc2NoX21pZGFtYmxlX2NmZzsNCisgICAgVF96VERfUF9oc19zY2NoICAgICAgICAgICAgICAgIGF0SHNfc2NjaF9jb25maWd1cmF0aW9uW1pfVERfUF9NQVhfSFNfU0NDSF07IC8qSFMtU0NDSMXk1sPQxc+io6zTw9PaQkNDSLrNRENDSC9EVENIvdPK1aOsvdPK1UJDQ0jKsda7vODM/bXa0rvM9UhzLVNjY2jQxbXAKi8NCisgICAgVF96VERfUF9oc19oYXJxX2luZm8gICAgICAgICAgIHRIc19oYXJxX2luZm87DQorfVRfelREX1BfRGNjaF9kdGNoX3JlY19wYXJhOw0KKy8qRFBB07PJ5LW9UENDSMqxo6y21NOmtcTF5NbD0MXPoiovDQordHlwZWRlZiBzdHJ1Y3QNCit7CQ0KKyAgICBUX3pURF9QX2hzX2Rwc2NoX21pZGFtYmxlICAgICAgICAgIHRIc19wZHNjaF9taWRhbWJsZV9jZmc7DQorICAgIFRfelREX1BfY29kZV9yZXNvdXJjZV9pbmZvICAgICAgICAgdENvZGVfcmVzX2luZm87DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1N1YkNoU2l6ZTsvKtGwuvTX09DFtcC089Cho6y1pc67o7rWoaO7MX4zKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGJzTnVtOy8qVEJTIGxpc3S21NOmtcS49sr9Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd1Ric0xpc3RbMl07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Rycmk7IC8qv8nTw9PaSFNQRFNDSLXEyrHPttfK1LTQxc+io6xiaXQw1sPOu7HqyrZUUzC/ydPDo6xiaXQx1sPOu7HqyrZUUzK/ydPDo6wuLi5iaXQ11sPOu7HqyrZUUza/ydPDo6y1zTbOu9PQ0Keju1RTMbK708MqLw0KK31UX3pURF9QX3BjY2hfcmVsYXRlX2luZm87DQorLyq1sUNlbGwtRkFDSMys1qez1khTRFNDSLXERFJYstnX98qxo6y21NOmtcREUljQxc+iKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sJDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3VDMyMTsvKrzgzP22qMqxxvejrMih1rW3ts6no7oxMDCjrDIwMKOsNDAwo6w4MDBtcyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3RHJ4Oy8qyKHWtbe2zqejuzSjrDijrDE2o6wzMtahKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdSeF9idXJzdDsgLyrIoda1t7bOp6O7MaOsMqOsNKOsOKOsMTbWoSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96VERfUF9mYWNoX2RwYV9kcnhfaW5mbzsNCisvKsXk1sO4+EwxtcS5q7myRVJOVEnB0LHtKi8NCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQJCQkJICAgICB3U3RhcnRFcm50aTsvKjE2Yml0tcTG8Mq8RS1STlRJ0MXPoiovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3R3JvdXBOdW07IC8qt7bOpzEuLi4zMiovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3RXJudGlOdW1QZXJHcm91cDsgIC8qyKHWtTEuLi4yKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOyAgDQorfVRfelREX1BfQ29tbW9uRXJudGlJbmZvOw0KKw0KKy8qxeTWw0ZBQ0i78klETEXMrM/CtcREUEHQxc+iKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sJDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICB3UG93ZXJfY3RybF9nYXA7IC8qSFMtU0lDSLXEtKvK5LzkuPTDxc/eo6zX09ahuPbK/aOsMH4yNTUqLyAgICAgICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdQbF9jb21wZW5zYXRpb25fc3dpdGNoOyAvKjE6SFMtU0lDSMq1vMq0q8rkvOS49NCh09rDxc/eyrHQ6Nf3wrfL8LK5s6UgMDqyu9f3wrfL8LK5s6UqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0hfcm50aV90eXBlOyAvKkhSTlRJtcTA4NDNo7swLbmrubJIUk5USaO7MS3XqNPDSFJOVEkqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd0hfcm50aTsvKr3TytXPwtDQSFMtU0NDSMqx08O1vbXEVUUgserKtiovDQorICAgIFdPUkQJICAgICAgICAgICAgICAgICAgICB3QmNjaEhybnRpOyAvKtTaz8LQ0LXa0rvM9UhTLVNDQ0jJz73TytVCQ0NIyc+1xM/7z6LKsdPDtb21xNeo08NVRbHqyrYqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgd1RzMEluZDsvKjGjurHtyr7N+LLg1MrQ7b2rz8LQ0EhTUERTQ0jTw9PaVHMwo6wwo7qx7cq+srvUytDtKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdIU19zY2NoX251bTsvKkhTLVNDQ0i49sr9Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdIc2RwYV9kcnhfZmc7Lyoxo7q1scewSHNkcGHWp7PWRFJYstnX96O7MKO6srvWp7PWRHJ4stnX96O7d0hfcm50aV90eXBlPT0xyrHT0NCnKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKw0KKyAgICBUX3pURF9QX2hzX3NjY2ggICAgICAgICAgICAgYXRIc19zY2NoX2NvbmZpZ3VyYXRpb25bWl9URF9QX01BWF9IU19TQ0NIXTsNCisgICAgVF96VERfUF9oc19kcHNjaF9taWRhbWJsZSAgIHRIc19wZHNjaF9taWRhbWJsZV9jZmc7DQorICAgIFRfelREX1BfaHNfaGFycV9pbmZvICAgICAgICB0SHNfaGFycV9pbmZvOwkNCisgICAgVF96VERfUF9mYWNoX2RwYV9kcnhfaW5mbyAgIHRIc2RwYV9kcnhfaW5mbzsJDQorfVRfelREX1BfZmFjaF9kcGFfaW5mbzsNCisvKkZBQ0i78klETEXMrM/CtcTU9se/VXBhxeTWwyovDQordHlwZWRlZiBzdHJ1Y3QNCit7CQ0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3RV9ybnRpX3R5cGU7Lyq1scewyrnTw0UtUk5UScDg0M2jrKO7MS3XqNPDRVJOVEmjuzAtuau5skVSTlRJKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd0Vfcm50aTsgLyrXqNPDtcRFUk5USaOsvfa1sXdFX3JudGlfdHlwZT0xyrHT0NCnICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdSZXNldF9mbGc7IC8qMDpub3QgcmVzZXQgMTpyZXNldCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdIYXJxX2luZm87IC8qKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd05fZWhpY2g7IC8qRS1QVUNIus1FLUhJQ0jP4Lj0tcTKsc+2yv0sNH4xNSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltYXJ5X2NjcGNoX3R4X3Bvd2VyOy8qIEludGVnZXIoNi4uNDMpZEJtICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdNYXhfYWxsb3dlZF91bF90eF9wb3dlcjsvKkludGVnZXIoLTUwLi4zMykgICAgICAgIGJNYXhfYWxsb3dlZF91bF90eF9wb3dlciA9ICh4IC0oLTUwKSkgICAgICovDQorCVdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdVcHBjaF9jaGlwX3NoaWZ0X2ZsZzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd1VwcGNoX2NoaXBfc2hpZnQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBUX3pURF9QX0NvbW1vbkVybnRpSW5mbyAgICAgICB0Q29tbW9uRXJudGk7DQorICAgIFRfelREX1BfZXB1Y2hfcHdyX2luZm8gICAgICAgIHRFcHVjaF9wd3JfaW5mbzsgDQorICAgIFRfelREX1BfaHNfc2NoX3RyICAgICAgICAgICAgIHRIc19zY2hfdHJfaW5mbzsgDQorfVRfelREX1BfZmFjaF91cGFfaW5mbzsNCisvKsXk1sNQQ0jMrM/CtcREUEHQxc+iKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sJDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUczBJbmQ7Lyoxo7qx7cq+zfiy4NTK0O29q8/C0NBIU1BEU0NI08PT2lRzMKOsMKO6se3KvrK71MrQ7SovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEY2NoX2R0Y2hfcmVjX2ZnOy8qtbHHsMrHt/HWp7PWvdPK1URUQ0i6zURDQ0ijuzCjurK71qez1qO7MaO61qez1iovDQorCQ0KKyAgICBUX3pURF9QX0RjY2hfZHRjaF9yZWNfcGFyYSAgICAgICB0RGNjaF9kdGNoX3JlY19wYXJhOyAvKkRjY2gvRHRjaMnPtcS908rVxeTWw9DFz6KjrL32tbF3RGNjaF9kdGNoX3JlY19mZz0xyrHT0NCnKi8NCisgICAgVF96VERfUF9wY2NoX3JlbGF0ZV9pbmZvICAgICAgICAgdFBjY2hfaW5mbzsgLypQY2Noyc+1xL3TytXF5NbD0MXPoqOsvfa1sXdEY2NoX2R0Y2hfcmVjX2ZnPTDKsdPQ0KcqLw0KK31UX3pURF9QX3BjaF9kcGFfaW5mbzsNCisNCisjZW5kaWYNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiAgICAgICAgICAgICAgICAgICAgICAgICBDU1LIq77Wyv2+3cDg0M22qNLlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdHsgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RnJlcV9zdGFydF9yYW5nZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RnJlcV9lbmRfcmFuZ2U7ICAgICAgICAgICAgICAgICAgICAgICAgIA0KK31UX3pURF9QX2ZyZXF1ZW5jeV9yYW5nZTsNCisgICAgICAgICAgDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXF1ZW5jeTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UnNzaTsNCit9VF96VERfUF9zY2FuX3Jlc3VsdDsNCisNCit0eXBlZGVmIHN0cnVjdHsgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxfcGFyYW1ldGVyX2lkOyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGNjcGNoX3JzY3A7ICANCit9VF96VERfUF9jZWxsX3BhcmFtczsNCisNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgIFJSQy0+UEhZDQorICAgILmmxNw6DQorICAgICAgICC/ycTcs/bP1rXE1Nqz9cq817TMrKOsSURMRcyso6xDRUxMX1BDSMyso6xDRUxMX1VSQcyso6xDRUxMX0ZBQ0jMrKO7DQorICAgICAgICDT0Lf+zvHQocf4yrGjrNPFz8i908rVcGFnZaGic2NjcGNous3UrcC0tcSy4sG/yM7O8aOs1NrKo9PgtcS/1c/QyrG85MTao6wNCisgICAgICAgIL6hv+y9+NDQZnJlcSBzY2FutcS5pNf3oaMNCisgICAgveG5uToNCisgICAgICAgICAgICAgICAgICAgVF96UF9URF9mcmVxdWVuY3lfc2Nhbl9yZXENCisNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQordHlwZWRlZiBzdHJ1Y3QNCit7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsgICAgLy9kZWx0MTEyMw0KKyAgICAvKsmow+i1xMa1ts63ts6nOjF+MzIqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1GcmVxUmFuZ2U7ICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VxTnVtOyAvKrao0uW1scewtcTJqMa1z/vPotDyusUst7bOpzAtNjU1MzUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICAvKg0KKyAgICAgd0ZyZXFTdGFydFJhbmdlOsbwyrzGtbXjtcRVQVJGQ04st7bOpzkyNTR+MTAxMjENCisgICAgIHdGcmVxRW5kUmFuZ2U6veHK+Ma1teO1xFVBUkZDTiy3ts6nOjkyNTR+MS0xMjENCisgICAgKi8NCisgICAgVF96VERfUF9mcmVxdWVuY3lfcmFuZ2UgICAgICAgICAgICAgICAgICBhdEZyZXF1ZW5jeVJhbmdlW1pfVERfUF9NQVhfRlJFUVNDQU5fRlJFUV9OVU1dOyAgDQorfVRfelREX1BfZnJlcXVlbmN5X3NjYW5fcmVxOw0KKw0KKw0KK3R5cGVkZWYgICBzdHJ1Y3R7DQorCVdPUkQJCQkJCQkJCSAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pURF9QX2Fib3J0X2ZyZXFfc2Nhbl9jbmY7DQorDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICBSUkMtPlBIWQ0KKyAgICC5psTcOg0KKyAgICAgICAgICAgICAgICDNo9a5TDHGtcLKyajD6A0KKyAgICC94bm5Og0KKyAgICAgICAgICAgICAgICBUX3pQX1REX2Fib3J0X2ZyZXFfc2Nhbl9yZXEsv9W94bm5DQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96VERfUF9hYm9ydF9mcmVxX3NjYW5fcmVxOw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICAgUlJDLT5QSFkNCisgICAguabE3DoNCisgICAgICAgICAgICAgICAgICAgIEwxzeqzycmoxrW686Oszai5/c/7z6JQX0ZSRVFVRU5DWV9TQ0FOX0lORA0KKyAgICAgICAgICAgICAgICAgICDJz7GosuLBv73hufujrMnPsai1xFJTU0m1xNa1ysfSu7j2UzE2wODQzaOsuMPWtQ0KKyAgICAgICAgICAgICAgICAgICDOqsq1vMqy4sG/tcRSU1NJo6hkYm2jqaOrMTAwo7sNCisgICAgveG5uToNCisgICAgICAgICAgICAgICAgICAgIFRfelBfVERfZnJlcXVlbmN5X3NjYW5faW5kDQorDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0DQoreyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd05vT2ZSc3NpTWVhczsgICAgIC8qt7W72LXEUlNTSbLiwb+94bn7tcTK/cS/LLe2zqc6MX4zMiAqLyAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZXFOdW07IC8qt7W72LXEyajGtc/7z6LQ8rrFLLe2zqcwLTY1NTM1Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsgICANCisgICAgLyoNCisgICAgICAgIFRfc2Nhbl9yZXN1bHQ6DQorICAgICAgICAgICAgIHdGcmVxdWVuY3k6xrW147rFLLe2zqfOqjkyNTR+MTAxMjENCisgICAgICAgICAgICAgc3dSc3Npw7+49sa1teO1xFJTU0nWtSzWtbXEyrW8yre2zqfKx8q1vMrIoda1tcRSU1NJKzEwMCzQrdLpyKHWtS0xMDB+LTI1LA0KKyAgICAgICAgICAgICC0y9fWts7Ioda1zqowfjc1DQorICAgICovDQorICAgIFRfelREX1Bfc2Nhbl9yZXN1bHQgICAgICAgICAgICAgICAgICAgICAgYXRSc3NpUmVzdWx0W1pfVERfUF9NQVhfUlNTSV9SRVNVTFRTX05VTV07ICAgIC8vMzIgZGVsZXRlMTEyMw0KK31UX3pURF9QX2ZyZXF1ZW5jeV9zY2FuX2luZDsNCisNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgIFBIWS0+UlJDDQorICAgILmmxNw6DQorICAgICAgICDWuLaoxrW148nPsunV0ta4tqjK/cS/0KHH+CzI57n7tbHHsNLR09C3/s7x0KHH+CxMMdDo0qrNrMqxsaOz1rf+DQorICAgIM7x0KHH+M2ssr0s0tS8sL3TytXRsLr0oaJTQ0NQQ0jPwtDQyv2+3bXILsjnufvK1bW90bC69LXIx+m/9tDoDQorICAgINKq1tC2z0wx0KHH+MvRy/cs1tC2z7rzTDGyu9TZz/LQrdLp1bvJz7Go0tG3os/W0KHH+NDFz6IuDQorICAgICAgICDI57n7ICAgIG51bV9vZl9jZWxsX2lkyKEwLMfrx/NMMdTa1ri2qMa1tePJz8Oky9HQocf4wvrX421pbl9yc2NwXw0KKyAgICB0aHJlc2hvbGQgICAgw8XP3rXEbnVtX29mX3Jlc3VsdLj20KHH+MnPsaguDQorICAgICAgICDI57n7bnVtX29mX2NlbGxfaWTIobfHMNa1o6zH68fzTDHU2ta4tqhjZWxsX3BhcmFtZXRlcl9pZLXE0KHH+MHQDQorICAgILHt1tDL0cv3wvrX43dNaW5Sc2Nww8XP3rXE0KHH+MnPsaguDQorICAgIL3hubk6VF96UF9URF9jZWxsX3NlYXJjaF9yZXENCisgICAgICAgIA0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZXFOdW07ICAgICAvKrao0uW1scewtcRjZWxsIHNlYXJjaM/7z6LQ8rrFoaPK/b7dt7bOp6O6MH42NTUzNSAqLyAgICAgDQorDQorICAgIC8qxrW147rFOTI1NH4xMDEyMSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXF1ZW5jeTsgICAgDQorICAgIC8qy9HL98Dg0M0NCisgICAgICAgIDA6t7W72Na4tqjGtbXjtcTX7se/0KHH+A0KKyAgICAgICAgMTq3tbvY1ri2qMa1teO1xNChx/jB0LHtDQorICAgICAgICAyOre1u9jWuLaoY2VsbF9wYXJhbWV0ZXJfaWQgtcTQocf4DQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NlYXJjaFR5cGU7ICAgDQorDQorICAgIC8q1ri2qMa1tePQ6NKqy9HL97XE0KHH+Mr9xL8qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZlJlc3VsdDsNCisgICAgLyrL0cv30KHH+NDo0qrC+tfjtcTX7rXNUlNDUMPFz97WtSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01pblJzY3BUaHJlc2hvbGQ7DQorDQorICAgIC8q1ri2qLT9y9HL99Chx/i1xMr9xL8wOrHtyr7WuLaoxrW148Oky9HQocf4O7fHMLHtyr7U2ta4tqhjZWxsX3BhcmFtZXRlcl9pZLXE0KHH+A0KKyAgICDB0LHt1tDL0cv3zazGtdChx/gqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1PZkNlbGxJZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisgICAgDQorICAgIC8qtP3L0cv30KHH+LXEY2VsbF9wYXJhbWV0ZXJfaWQqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3Q2VsbFBhcmFtZXRlcklkW1pfVERfUF9NQVhfU1JIX1JFU1VMVFNfTlVNXTsgICAgIA0KKyAgICANCisgICAgLyrWuMq+0KHH+FNGTi1TRk7Ksbzksu7WtcrHt/G05tTatcSx6ta+LMO/uPbQocf40ru49iy21NOmY2VsbF9wYXJhbWV0ZXJfaWTB0LHt1tC1xNChx/gNCisgICAgICAgIDA6sru05tTaDQorICAgICAgICAxOrTm1NoNCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd1RpbWVEaWZmQml0TWFwOw0KKw0KKyAgICAvKmRjaDq21NOmU0ZOLUNGTiBvYnNlcnZlZCB0aW1lIGRpZmZlcmVuY2UNCisgICAgICDG5Mv817TMrLbU06ZzZm4tc2ZuIG9ic2VydmVkIHRpbWUgZGlmZmVyZW5jZQ0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3T2ZmW1pfVERfUF9NQVhfU1JIX1JFU1VMVFNfTlVNXTsgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3VG1bWl9URF9QX01BWF9TUkhfUkVTVUxUU19OVU1dOw0KK31UX3pURF9QX2NlbGxfc2VhcmNoX3JlcTsNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgIFJSQy0+UEhZDQorICAgILmmxNw6DQorICAgICAgICDNo9a5zu/A7bLjtcTQocf4y9HL9w0KKyAgICC94bm5OlRfYWJvcnRfY2VsbF9zcmhfcmVxDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96VERfUF9hYm9ydF9jZWxsX3NyaF9yZXE7DQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICBQSFktPlJSQw0KKyAgICC5psTcOg0KKyAgICAgICAgzaPWuc7vwO2y47XE0KHH+MvRy/fO78DtsuPTprTwDQorICAgIL3hubk6VF9hYm9ydF9jZWxsX3NyaF9jbmYNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nMDsNCit9VF96VERfUF9hYm9ydF9jZWxsX3NyaF9jbmY7DQorDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICBQSFktPlJSQw0KKyAgICC5psTcOg0KKyAgICAgICAgyc+xqNa4tqjGtbXjyc/C+tfj1+61zVJTQ1DDxc/e1rW1xNChx/i1xLLiwb+94bn7DQorICAgIL3hubk6VF96UF9URF9jZWxsX3NlYXJjaF9pbmQNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTZXFOdW07IC8qt7W72LWxx7C1xGNlbGwgc2VhcmNoz/vPotDyusWho8r9vt23ts6no7owfjY1NTM1Ki8NCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXF1ZW5jeTsgICAgICAgICAgLyrNrLK90KHH+Mv51NrGtbXjKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Tm9PZkZvdW5kQ2VsbHM7ICAgLyrL0cv3tb21xML61+PX7rXNUlNDUMPFz961xNChx/jK/cS/LDCx7cq+uMPGtbXjzrTV0rW90KHH+CovIA0KKw0KKyAgICAvKg0KKyAgICAgICAgVF9jZWxsX3BhcmFtczoNCisgICAgICAgICAgICB3Q2VsbHBhcmFtZXRlcklkOtLRvq3L0cv3tb21xNChx/hMMbHqyrY7MH4xMjcNCisgICAgICAgICAgICB3UGNjcGNoUnNjcDrS0cvRy/fQocf4tcRwY2NwY2jQxbXAUlNDUDswfjkxDQorICAgICAgICAgICAgc3dEZWx0YVJzY3A6tbFwY2NwY2jQxbXAtcRyc2Nw1rXQodPaMMqxLLjD1rWx2NGhLg0KKyAgICAqLw0KKyAgICBUX3pURF9QX2NlbGxfcGFyYW1zICAgICAgICAgICAgICAgICAgICAgIGF0Q2VsbFtaX1REX1BfTUFYX1NSSF9SRVNVTFRTX05VTV07ICAgICAgICAgICAgICAgICAgIA0KK31UX3pURF9QX2NlbGxfc2VhcmNoX2luZDsNCisNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgIFJSQy0+UEhZDQorICAgILmmxNw6DQorICAgICAgICC4w8/7z6K/ycTc1NrIzrrO17TMrM/Ct6LJ+qOs08PT2si3yM/Es7j21rgNCisgICAgICAgICAgICAgICAgICAgtqi1xNChx/i1xFNGTr/J0tTV/bOjveLC66GjDQorICAgIL3hubk6DQorICAgICAgICAgICAgICAgICAgIFRfelBfVERfYmNoX3JlYWRfcmVxDQorICAgICAgICAgICAgICAgICAgICANCisgICAgICAgIA0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0JjaFByaW9yaXR5OyAvKjA6se3KvkJDSLbByKHTxc/IvLa1zdPaSURMRcSjyr3RsLr0vdPK1SjS7Ma1x+m/9ik7ICAxOrHtyr5CQ0i2wcih08XPyLy2uN/T2klETEXEo8q90bC69L3TytUo0uzGtcfpv/YpKi8NCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXF1ZW5jeTsgICAgICAgICAgIC8q0OjSqr3iwuvQocf4y/nU2sa1teNVQVJGQ04qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDZWxsUGFyYW1ldGVySWQ7ICAgIC8q0OjSqr3iwuvQocf4tcRMMbHqyrYqLw0KK31UX3pURF9QX2JjaF9yZWFkX3JlcTsNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgIFBIWS0+UlJDDQorICAgILmmxNw6DQorICAgICAgICDTw9Pat7TAoUNQaHlfU2ZuRGVjb2RlX1JlcaOsse3KvrjD0KHH+L/J0tTV/ci3tsHIoUJDSKGjDQorICAgICAgICAgICAgICAgICAgIMHtzeLU2kRDSMG0wre9qMGio6zM7bzTuf2zzNbQo6xGV9fUtq+21LjDwbTCt7XEU0ZOvfjQ0L3iwusNCisgICAgICAgICAgICAgICAgICAgo6yyore0wKG4+EwxVaOstNO2+Mi3yM+4w9Chx/jKx7/J0tTKudPDtcShow0KKyAgICC94bm5Og0KKyAgICAgICAgICAgICAgICAgIFRfelBfVERfc2ZuX2RlY29kZV9pbmQNCisgICAgICAgICAgICAgICAgICAgDQorICAgINTdsru/vMLHICAgICAgICANCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorLyoNCit0eXBlZGVmIHN0cnVjdA0KK3sgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Jlc3VsdDsgIC8vMDpzdWNjZXNzILHtyr7S0b6ttcO1vVNGTjsgMTpmYWlsdXJlse3KvlNGTs601qo7DQorfVRfelREX1Bfc2ZuX2RlY29kZV9pbmQ7DQorKi8NCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgIFBIWS0+UlJDDQorICAgILmmxNw6DQorICAgICAgICC4w8/7z6K/ycTc1NrIzrrO17TMrM/Ct6LJ+qOstPK/qkJDSLbBz7XNs9DFz6KjrA0KKyAgICAgICAgICAgICAgICAgICCw/MCot/7O8dChx/i6zc/gwdrQocf4o6zO3s/s06bP+8+ioaMNCisgICAgveG5uToNCisgICAgICAgIFRfelBfVERfYmNoX29wZW5fcmVxDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUeXBlOyAgICAgIC8qILbByKHA4NDNo6wwo7rWuLaotsHIoSAgIDGjusGs0Pi2wc+1zbPQxc+isai4+NCt0unVu6OssrvH+LfWTWlius1TaWIqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxdWVuY3k7ICAgIC8q0OjSqrbByKFCQ0i1xNChx/jL+dTatcTGtbXjKi8NCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxQYXJhbWV0ZXJJZDsgICAgLyrQ6NKqtsHIoUJDSLXE0KHH+EwxserKtiovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RpbWVEaWZmSW5kOyAgICAgICAvKmRjaDq21NOmU0ZOLUNGTiBvYnNlcnZlZCB0aW1lIGRpZmZlcmVuY2U7ICDG5Mv817TMrLbU06ZzZm4tc2ZuIG9ic2VydmVkIHRpbWUgZGlmZmVyZW5jZSAqLw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdPZmY7ICAgICAgICAgICAgICAgICAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RtOw0KKyAgICAvKrWxd1R5cGU9MMqxz8LD5jO49tSqy9jT0NCnLLWxTDHS1GdhcMSjyr29+NDQ1ri2qLbByKHKsaOs1rvSqtPQ0KdnYXC089Pa0ru49mJjaCBUVEmjrLy0yrlnYXCzpLbI0KHT2tbYuLSzpLbIo6zSstDo0qrIpbbByKGjrNCt0unVu8/Uyr61xL340NBCQ0hfUkVBTEVBU0UqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdCY2hfb2NjYXNpb247ICAvKta4tqi2wcihtcTW3MbatcTG8Mq8zrvWw6OstaXOu87ez9/WoaOsyv2+3be2zqejujB+1ti4tNbcxtotMiovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JlcF9wZXJpb2Q7ICAgIC8q1ri2qLbByKG1xNbYuLTW3Mbao6y1pc67zt7P39aho6zK/b7dt7bOp6O6MX40MDk2Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmVwX2xlbjsgICAgICAgLyrWuLaotsHIobXE1ti4tLOktsijrLWlzrvO3s/f1qGjrMr9vt23ts6no7oyftbYuLTW3MbaLTIqLw0KK31UX3pURF9QX2JjaF9vcGVuX3JlcTsNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgIFBIWS0+UlJDDQorICAgILmmxNw6DQorICAgICAgICC08r+qQkNIuvNMMdbwv+nJz7Goz7XNs9DFz6LWuMq+o6zQrdLp1bvK1bW9tMvWuMq+uvMNCisgICAgICAgICAgICAgICAgICAgyKW5zLaoQnVmZmVytsHPtc2z0MXPosr9vt0NCisgICAgveG5uToNCisgICAgy7XD9zq4w73hubm21NOmyv2+3bTmt8XU2kRQUkFNtcTK/b7dx/jT8tbQo6y5yrC0MTZiaXS21MbroaMgICAgDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NmbjsgIC8qveLC60JDSMr9vt21xMrX1qG1xM+1zbPWobrFMH40MDk1Ki8gDQorICAgIC8qDQorICAgICAgICAwOrHtyr60q8rkv+m94sLr1f3Itw0KKyAgICAgICAgMTqx7cq+Q1JDveLC67TtzvM7DQorICAgICAgICAyOrHtyr6197bIs+XNuyxCQ0jDu9PQtsHIoSzK/b7dzt7Qpw0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDcmNDaGVjazsgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxdWVuY3k7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxQYXJhbWV0ZXJJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsgDQorICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3RGF0YUFyZWFbWl9URF9QX01BWF9OVU1fT0ZfQkNIX0RXT1JEUyoyXTsgICANCit9VF96VERfUF9CY2hfQnVmZmVyOw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICAgUEhZLT5SUkMNCisgICAguabE3DoNCisgICAgICAgIMjnuftMMbbBQkNIyqew3KOs08NQX0JDSF9SRUFEX1JFSs/7z6LNqNaq0K3S6dW7DQorICAgIL3hubk6DQorICAgICAgICBUX3pQX1REX2JjaF9vcGVuX3Jlag0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDYXVzZTsgICAvKjA6tsHIoUJDSNPr1K1TQ0NQQ0iz5c27LNTK0O3JvrP9U0NDUENI1ti2wTsgICAxOtLy0MW6xb3Psu4szt63qLbByKFCQ0g7ICAqLyAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXF1ZW5jeTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2VsbFBhcmFtZXRlcklkOw0KK31UX3pURF9QX2JjaF9vcGVuX3JlajsNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgIFJSQy0+UEhZDQorICAgILmmxNw6DQorICAgICAgICDQrdLp1bvH68fzTDHNo9a5vdPK1c+1zbPQxc+iLMrNt8VCQ0gNCisgICAgveG5uToNCisgICAgICAgICAgICBUX3pQX1REX2JjaF9yZWxlYXNlX3JlcQ0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfelREX1BfYmNoX3JlbGVhc2VfcmVxOw0KKw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICAgUEhZLT5SUkMNCisgICAguabE3DoNCisgICAgICAgIEwxyLfIz9Ct0unVu82j1rm908rVz7XNs9DFz6INCisgICAgveG5uToNCisgICAgICAgICAgICBUX3pURF9QX2JjaF9yZWxlYXNlX2NuZg0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRAkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmcwOw0KK31UX3pURF9QX2JjaF9yZWxlYXNlX2NuZjsNCisNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgIFJSQy0+UEhZDQorICAgILmmxNw6DQorICAgICAgICBSUkPU2s+1zbPQxc+itsHIoc3qs8m686OsyM/OqtChx/i/yQ0KKyAgICAgICAgICAgICAgICAgICDXpMH0o6y3osvNtMvP+8+izajWqs7vwO2y47TL0KHH+M6qt/4NCisgICAgICAgICAgICAgICAgICAgzvHQocf4oaMNCisgICAgveG5uToNCisgICAgICAgIFRfelBfVERfY2FtcF9vbl9hX2NlbGxfcmVxDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxdWVuY3k7ICAvKrf+zvHQocf4y/nU2sa1teMqLyAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxQYXJhbWV0ZXJJZDsgLyq3/s7x0KHH+EwxserKtiovDQorfVRfelREX1BfY2FtcF9vbl9hX2NlbGxfcmVxOw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICAgUEhZLT5SUkMNCisgICAguabE3DoNCisgICAgICAgILXXsuPIt8jP16TB9NChx/ihow0KKyAgICC94bm5Og0KKyAgICAgICAgVF96VERfUF9jYW1wX29uX2FfY2VsbF9jbmYNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96VERfUF9jYW1wX29uX2FfY2VsbF9jbmY7IA0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICAgUlJDLT5QSFkNCisgICAguabE3DoNCisgICAgICAgICAgICDQrdLp1bvNqNaqzu/A7bLjys23xcv509DXytS0DQorICAgIL3hubk6DQorICAgICAgICAgICAgVF96VERfUF9SZXNldF9yZXENCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSZlN0YXQ7ICAgIC8qyeTGtbP1yry7r7rz17TMrKOsMaGqoarJ5Ma1v8nTw6OsMKGqoarJ5Ma1sru/ydPDKi8NCit9VF96VERfUF9SZXNldF9yZXE7DQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICBQSFktPlJSQw0KKyAgICC5psTcOg0KKyAgICAgICAgICAgIM7vwO2y482o1qrQrdLp1bvKzbfFy/nT0NfK1LS94cr4DQorICAgIL3hubk6DQorICAgICAgICAgICAgVF96VERfUF9yZXNldF9jbmYNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pURF9QX3Jlc2V0X2NuZjsNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgIFJSQy0+UEhZDQorICAgILmmxNw6DQorICAgICAgICAgICAg0K3S6dW7zajWqs7vwO2y48Sjyr3A4NDNo6zKx0dTTSBtb2Rlu/LV31VNVFMgbW9kZaOsDQorICAgICAgICAgICAgtbHQrdLp1bvIz86qVEQgTDHQ6NKq08NnYXDKsbzkuaTX98qxo6zU8sno1sPOqkdTTSBtb2Rlo7sNCisgICAgICAgICAgICC38dTyzqpVTVRTIG1vZGWjuw0KKyAgICAgICAgICAgIFREIEwxuPm+3cSjyr3A4NDNo6zAtMXQts+689D4uaTX99DosrvQ6NKqtci0/WdhcMqxvOTAtL340NANCisgICAgveG5uToNCisgICAgICAgICAgICBUX3NldF9pcmF0X21vZGVfUmVxDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TW9kZVR5cGVzOyAvKjAtR3NtIG1vZGWjrDEtVW10cyBtb2RlKi8gICAgICAgDQorfVRfelREX1Bfc2V0X2lyYXRfbW9kZV9SZXE7DQorDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICBSUkMtPlBIWQ0KKyAgICC5psTcOg0KKyAgICAgICAg0K3S6dW7w/zB7kwxvfjI68uvw9/XtMysLNaxtb3QrdLp1bsNCisgICAgICAgICAgICAgICAgICAgzai5/UFSTbSmwO3G97u90NFEU1C0psDtxvcNCisgICAgveG5uToNCisgICAgICAgIFRfelBfVERfdGRfc2xlZXBfcmVxDQorICAgILT9tqgNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorLyoNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RW5hYmxlOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pURF9QX3NsZWVwX3JlcTsNCisqLw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgILLiwb/Iq77Wyv2+3cDg0M22qNLlU1RBUlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDZWxsSUQ7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDZWxsUGFyYTsgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NoaXBBY2N1cmFjeTsgIC8qyKHWtc6qMKOsNDCjrDI1NqOsMjU2MMbk1tDIoda1zqowyrGx7cq+zt7C68asvqu2yNDFz6KhoyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JlZlRpbWVEaWZmOyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmVmUHdyOyAgICAgICAgLypQQ0NQQ0iyzr+8t6LJ5LmmwsqjrMih1rU2Li40MyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NucGxJbmQ7ICAgICAgICAvKta4yr7Kx7fxss7T61NOUEy8xsvjo6wxOrLO0+sgMDqyu7LO0+sqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUc051bTsgICAgICAgICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3VHNMaXN0W1pfVERfUF9NQVhfRExfVFNdOw0KK31UX3pURF9QX0NlbGxJbmZvOw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICAgICAgUlJDPC0+UEhZDQorICAgICAgICC5psTcOg0KKyAgICAgICAgICAgICAgICBSUkO6zVBIWbLjvOS1xM2sxrWy4sG/xeTWw73Tv9oNCisgICAgICAgIL3hubk6ICAgICAgICANCisgICAgICAgICAgICAgICAgzazGtbLiwb/F5NbDz/vPolBfSU5UUkFfRlJFUV9NRUFTX1JFUQ0KKyAgICAgICAgICAgICAgICDNrMa1suLBv73hufvP+8+iUF9JTlRSQV9GUkVRX01FQVNfSU5EIA0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RldGVjdGVkU2V0UXVhbnRpdHk7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bWJlck9mQ2VsbE1lYXM7ICAgICAgICAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JlZlRpbWVEaWZmSW5kOy8qtqjS5XdSZWZUaW1lRGlmZiCyzsr9uPiz9rXExquy7srHU0ZOLVNGTiB0aW1pbmcgZGlmZmVyZW5jZbvyysdTRk4tQ0ZOIHRpbWluZyBkaWZmZXJlbmNl0tS8sM/g06bKsbzksu61xMDg0M2how0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYjCjunRpbWluZyBkaWZmZXJlbmNlLjCjvVNGTi1TRk4gdGltaW5nIGRpZmZlcmVuY2WjrDGjvVNGTi1DRk4gdGltaW5nIGRpZmZlcmVuY2UNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIxo7p0eXBlSW5kLjA9VFlQRTEsMT1UWVBFMiovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd05vdE1lYXNDZWxsTnVtOy8qsrvQ6NKqsuLBv7XE0KHH+Mr9Ki8NCisNCisgICAgVF96VERfUF9DZWxsSW5mbyAgICAgICAgICAgICAgICAgICAgICAgICBhdENlbGxJbmZvW1pfVERfUF9NQVhfSU5UUkFfQ0VMTF9OVU1dOyAgDQorICAgICAgICAgICAgICAgDQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdNZWFzSWQ7ICAgDQorICAgICAgICAgICAgICAgICAgICAgDQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdSc2NwTmVlZDsgIA0KKyAgICAgICAgICAgICAgICAgICANCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd0lzY3BOZWVkOyANCisNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd0NlbGxTeW5JbmZvck5lZWQ7IA0KKyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Tm90TWVhc0NlbGxQYXJhW1pfVERfUF9NQVhfSU5UUkFfQ0VMTF9OVU1dOyAvKrK70OjSqrLiwb+1xNChx/h3Q2VsbFBhcmEgKi8NCit9VF96VERfUF9DUGh5X0ludHJhTWVhc19SZXE7ICAgICAgICAgICAgICAgICAvKjI3M0IqLw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDZWxsSUQ7ICAgICAgICAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxQYXJhOyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UnNjcEZsYWc6MTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2ZuRmxhZzoxOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoxNDsgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSc2NwOyAgICAgICAgICAgICANCisgICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUc051bTsgICAgICAgICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2ZuOyAgICAgICAgICAgICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdPZmY7ICAgICAgICAgICAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RtOyAgICAvKkRDSMysz8JUTda1zt7QpyovICAgICAgICAgICAgDQorDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdUc0xpc3RbWl9URF9QX01BWF9ETF9UU107DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdJc2NwW1pfVERfUF9NQVhfRExfVFNdOyAgICANCit9VF96VERfUF9DZWxsTWVhc1JsdDsgDQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgIA0KKyAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDZWxsTnVtOyAgICAgICAgICANCisgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RmFpbENlbGxOdW07ICAgICANCisNCisgICBUX3pURF9QX0NlbGxNZWFzUmx0ICAgICAgICAgICAgICAgICAgICAgICBhdE1lYXNSbHRMaXN0W1pfVERfUF9NQVhfSU5UUkFfQ0VMTF9OVU1dOyAvKsr91+nQocf40+vQocf4SUS21NOmKi8NCisNCisgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd01lYXNJZDsgICAgICAgICAgICANCisNCisgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd0ZhaWxDZWxsQml0TWFwOyANCit9VF96VERfUF9DUGh5X0ludHJhTWVhc19JbmQ7ICAgICAgIC8qNDI0QiovICAgIC8qyOe5+8ih1+608zMyuPbQocf4ODQwQiovICAgICAgICAgICAgICAgICAgICAgIA0KKw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICAgICAgUlJDPC0+UEhZDQorICAgICAgICC5psTcOg0KKyAgICAgICAgICAgICAgICBSUkO6zc7vwO2y47zktcTS7Ma1suLBv8Xk1sO907/aDQorICAgICAgICC94bm5Og0KKyAgICAgICAgICAgICAgICDGtbzksuLBv8Xk1sPP+8+iICAgICAgICAgICAgICAgICAgIFBfSU5URVJfRlJFUV9NRUFTX1JFUQ0KKyAgICAgICAgICAgICAgICDGtbzksuLBv73hufvP+8+iICAgICAgICAgICAgICAgICAgIFBfSU5URVJfRlJFUV9NRUFTX0lORA0KKwkJCQnDpMa1teOy4sG/s/a1xNChx/iy4sG/veG5+8nPsaggICAgIFBfSU5URVJfRlJFUV9CTElORF9NRUFTX0lORA0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisvKiDGtbXj0MXPoiAqLw0KK3R5cGVkZWYgc3RydWN0ICANCit7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXE7ICAgICAgICAgICAgLyrGtbXjKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U3RhcnRQb3M6OCA7ICAgICAvKrjDxrW149Chx/jU2tChx/jQxc+ise3W0LXExvDKvM671sMqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDZWxsTnVtOjg7ICAgICAgICAvKrjDxrW148nPtcTQocf4yv0qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIaWdoUHJpbzsgICAgICAgICAvKiDWwzGx7cq+uMPGtbXjz+C21NPat/7O8ca1tePOqrjf08XPyLy2ICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfelREX1BfRnJlcU1lYXNJbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorI2lmZGVmIFI5X1NVUFBPUlQNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QmxpbmRSZXBGbGc7LyrKx7fxysfDpMa1tePJz7Got73KvSAgIDGx7cq+w6TGtbXjyc+xqCAgMLHtyr7S7Ma1yc+xqLe9yr0qLw0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd1RtZWFzSW5pYWw7IC8qs/XKvLLiwb/Jz7Go1tzG2qOstaXOu01TLs7vwO2y49Tazeqzycv509DGtbXjsuLBv7rz1tzG2s60s6zKsdKyv8nS1Mzhx7DJz7GosuLBv73hufuhow0KKwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINbcxtrE2rLiwb+94bn7yc+xqNfus9myu8Tcs6y5/WR3VG1lYXNJbmlhbMnPsajW3MbaoaNkd1RtZWFzSW5pYWyzrMqxuvPG9Lavd1RtZWFzo6zO78DtsuPW3MbaxNqy4sG/veG5+7XEzOHHsMnPsaiyu9Owz+zW3MbatcTG9LavteOhoyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RtZWFzOy8q1f2zo8nPsajW3Mbao6y1pc67TVOho87vwO2y49bcxtrE2rLiwb+94bn7tcTM4cewyc+xqLK707DP7Nbcxtq1xMb0tq+146Gj1tzG2sTasuLBv73hufvJz7Go1+6z2bK7xNyzrLn9d1RtZWFzyc+xqNbcxtoqLw0KKyNlbmRpZg0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDZWxsTnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdGcmVxTnVtOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSZWZUaW1lRGlmZkluZDsNCisgICAgDQorICAgIFRfelREX1BfRnJlcU1lYXNJbmZvICAgICAgICAgICAgICAgICAgICAgYXRGcmVxSW5mb1taX1REX1BfTUFYX0lOVEVSX0ZSRVFfTlVNXTsNCisgICAgVF96VERfUF9DZWxsSW5mbyAgICAgICAgICAgICAgICAgICAgICAgICBhdENlbGxJbmZvW1pfVERfUF9NQVhfSU5URVJfQ0VMTF9OVU1dOw0KKyAgICANCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd01lYXNJZDsNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd1Jzc2lOZWVkOw0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR3UnNjcE5lZWQ7DQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdJc2NwTmVlZDsNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd0NlbGxTeW5JbmZvck5lZWQ7DQorfVRfelREX1BfQ1BoeV9JbnRlck1lYXNfUmVxOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDZWxsSUQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JzY3BGbGFnOjE7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NmbkZsYWc6MTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UnNzaUZsYWc6MTsgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoxMzsgIA0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSc2NwOyAgICAgICAgICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHNOdW07IA0KKyAgICAgICAgICAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdUc0xpc3RbWl9URF9QX01BWF9ETF9UU107DQorDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3SXNjcFtaX1REX1BfTUFYX0RMX1RTXTsgDQorICAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NmbjsgICAgICAgICAgICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3T2ZmOw0KKyAgICAgICAgICAgICAgICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VG07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Jzc2k7ICAgICAgICAgICAgICAgICAgICANCit9VF96VERfUF9VYXJmY25NZWFzUmx0OyANCisNCisNCit0eXBlZGVmIHN0cnVjdCB7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOyAgICAgICAgICAgICAgICAgICAgICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdScHRGbGc7IC8qMDrW3Mbayc+xqCAxOszhx7DJz7GoKi8NCisNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RmFpbENlbGxOdW07ICAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxOdW07IA0KKw0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR3TWVhc0lkOyAgICAgICAgICAgDQorDQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdGYWlsQ2VsbEJpdE1hcDsgDQorDQorICAgIFRfelREX1BfVWFyZmNuTWVhc1JsdCAgICAgICAgICAgICAgICAgICAgYXRDZWxsTWVhc1JsdExpc3RbWl9URF9QX01BWF9JTlRFUl9DRUxMX05VTV07DQorfVRfelREX1BfQ1BoeV9JbnRlck1lYXNfSW5kOyAgICAgICAgICAgLyoqNDU2QiovLyrI57n7yKHX7rTzMzK49tChx/g5MDRCKi8NCisNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sgDQorCVdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxQYXJhbTsgIC8qINChx/hNaWQgSUQqLw0KKwlXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSc2NwOw0KK31UX3pURF9QX0JsaW5kQ2VsbFJsdDsNCisNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCAJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FyZmNuOw0KKyAgICBXT1JECQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSc3NpOw0KKwkNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2VsbE51bTsgICAvKiC4w8a1tePPwsOksuLBv7XE0KHH+Lj2yv0gKi8NCisgICAgVF96VERfUF9CbGluZENlbGxSbHQgICAJCQkJCWF0QmxpbmRDZWxsUmx0W1pfVERfUF9NQVhfQkxJTkRfSU5URVJfQ0VMTF07DQorfVRfelREX1BfQmxpbmRVYXJmY25SbHQ7DQorDQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RnJlcU51bTsNCisgICAgVF96VERfUF9CbGluZFVhcmZjblJsdCAgICAgICAgICAgICAgICAgICAgICBhdEZyZXFSbHRbWl9URF9QX01BWF9CTElORF9JTlRFUl9GUkVRXTsNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd01lYXNJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UnB0RmxnOyAvKjA61tzG2snPsaggMTrM4cewyc+xqCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfelREX1BfSW50ZXJCbGluZE1lYXNfSW5kOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICAgICAgUlJDPC0+UEhZDQorICAgICAgICC5psTcOiAgIFJSQ7rNzu/A7bLjvOS1xLzssuLQocf4yc+xqL3Tv9oNCisgICAgICAgIL3hubk6ICAgDQorICAgICAgICAgICAgICAgIM7vwO2y47GouOa87LLi0KHH+M/7z6JQX0RFVEVDVF9DRUxMX0lORk9fSU5EX0VWDQorICAgICAgICAgICAgIA0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdCANCit7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICB3VWFyZmNuOyAvKrzssuLQocf4tcTGtbXjKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgd1BhcmFJZDsvKrzssuLQocf4teO1xLLOyv1JRCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdSc2NwOyAgLyq87LLi0KHH+LLiwb/WtSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pURF9QX0RldGVjdENlbGxJbmZvUmx0Ow0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGV0ZWN0Q2VsbE51bTsgICAgICAvKiDQocf4yv3Ev6Osw7vT0Me/0KHH+Mqxyc+xqLzssuLQocf4yv3Ev8rHMCAqLw0KKyAgICBUX3pURF9QX0RldGVjdENlbGxJbmZvUmx0ICAgICAgYXREZXRlY3RDZWxsSW5mb1taX1REX1BfTUFYX0RFVEVDVF9DRUxMX05VTV07ICAvKs7vwO2y48nPsai1scew1+7Hv7XENMe/0KHH+KOs08nHv7W9yPXM7rPkKi8NCit9VF96VERfUF9EZXRlY3RDZWxsSW5mbzsNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiqhog0KKyAgICAgICAgUlJDPC0+UEhZDQorICAgICAgICC5psTcOg0KKyAgICAgICAgICAgICAgICBSUkO6zc7vwO2y47zktcTWysG/suLBv8Xk1sO907/aDQorICAgICAgICC94bm5Og0KKyAgICAgICAgICAgICAgICDWysG/suLBv8Xk1sPP+8+iUF9RVUFMSVRZX01FQVNfUkVRDQorICAgICAgICAgICAgICAgINbKwb+y4sG/veG5+8/7z6JQX1FVQUxJVFlfTUVBU19JTkQgDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd01lYXNJZDsNCisgICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFiVGZjc0lkW1pfVERfUF9NQVhfRExfQ0NUUkNIX05VTV07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NDVHJjaE51bTsNCit9VF96VERfUF9RdWFsTWVhc19SZXE7IA0KKw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGZjc0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3U2lyW1pfVERfUF9NQVhfRExfVFNdOyAgICAgICAgDQorfVRfelREX1BfQ0NUcmNoU2lyTWVhc1JsdDsgLyo1V29yZCovDQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisgICAgDQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdNZWFzSWQ7ICAgDQorDQorICAgIFRfelREX1BfQ0NUcmNoU2lyTWVhc1JsdCAgICAgICAgICAgICAgICAgYXRDY3RyY2hNZWFzTGlzdFtaX1REX1BfTUFYX0RMX0NDVFJDSF9OVU1dOyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2N0cmNoTnVtOyAgICAgICAgDQorfVRfelREX1BfQ1BoeV9RdWFsTWVhc19JbmQ7IA0KKyAgICAgICAgICAgICAgICAgICAgIA0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICAgICAgUlJDPC0+UEhZDQorICAgICAgICC5psTcOg0KKyAgICAgICAgICAgICAgICBSUkO6zc7vwO2y47z7tcTE2rK/suLBv8Xk1sO907/aDQorICAgICAgICAgveG5uToNCisgICAgICAgICAgICAgICAgVUXE2rK/suLBv8Xk1sPP+8+iUF9VRV9JTlRFUk5BTF9NRUFTX1JFUQ0KKyAgICAgICAgICAgICAgICBVRcTasr+y4sG/veG5+8/7z6JQX1VFX0lOVEVSTkFMX01FQVNfSU5EIA0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdCB7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisNCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd01lYXNJZDsgICAgICAgICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSZXBJbnRlcnZhbDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHhQb3dlck5lZWQ6MTsgICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGFkdk5lZWQ6MTsgICAgICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UnNzaU5lZWQ6MTsgICAgICAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjEzOw0KK31UX3pURF9QX0NQaHlfVWVJbnRNZWFzX1JlcTsgDQorDQorDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1R4UG93ZXJGbGFnOjE7ICAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RhZHZGbGFnOjE7ICAgICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UnNzaUZsYWc6MTsgICAgICAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjEzOw0KKyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd1R4UG93ZXJbWl9URF9QX01BWF9VTF9UU107ICANCisgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Jzc2k7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RhZHY7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NmbjsNCisgDQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdNZWFzSWQ7ICANCit9VF96VERfUF9DUGh5X1VlSW50TWVhc19JbmQ7IA0KKw0KKw0KKyANCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICAgICAgIFJSQzwtPlBIWQ0KKyAgICAgICAguabE3DoNCisgICAgICAgICAgICAgICAgUlJDz/JQSFm3osvNRk1PxeTWww0KKyAgICAgICAgveG5uToNCisgICAgICAgICAgICAgICAgRmFjaE1lYXN1cmVPY2Nhc2lvbsXk1sPP+8+iUF9GTU9fSU5GT19SRVENCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQordHlwZWRlZiBzdHJ1Y3Qgew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Rk1PTmVlZDsgICAgICAgICAgIC8q1rjKvsrHt/HKudPDRk1PoaMwse3Kvsihz/tGTU+jrLfHMNa1se3KvsXk1sNGTU8qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUdGlQZXJpb2Q7ICAgICAgICAgLyo9TV9SRVAsIG1lYXN1cmVtZW50IG9jY2FzaW9uIGN5Y2xlIGxlbmd0aCAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUdGlPZmZzZXQ7ICAgICAgICAgLyo9Q19STlRJIG1vZCBNX1JFUCovDQorfVRfelREX1BfQ1BoeV9GTU9JbmZvX1JlcTsNCisNCisNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICAgICAgICBQSFktPlJSQw0KKyAgICAgICAgILmmxNw6DQorICAgICAgICAgICAgICAgICAgUEhZz/JSUkO3osvNtcS3/s7x0KHH+LLiwb+94bn7yc+xqCAgDQorICAgICAgICAgIL3hubk6DQorICAgICAgICAgICAgICAgICCy4sG/ys23xc/7z6JQX1NFUlZDRUxMX01FQVNfSU5EDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2VsbElEOyAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxQYXJhOyANCisgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JzY3BGbGFnOjE7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjE1Ow0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSc2NwOyAgDQorICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUc051bTsgICAgICAgICAgICANCisNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd1RzTGlzdFtaX1REX1BfTUFYX0RMX1RTXTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd0lzY3BbWl9URF9QX01BWF9ETF9UU107DQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdNZWFzSWQ7DQorfSBUX3pURF9QX0NQaHlfU2VyQ2VsbE1lYXNfSW5kOyAvKjI0QiovDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgICAgICAgUlJDLT5QSFkNCisgICAgICAgICC5psTcOg0KKyAgICAgICAgICAgICAgICAgIFJSQ8/yUEhZt6LLzbXEsuLBv8m+s/3WuMq+ICANCisgICAgICAgICAgveG5uToNCisgICAgICAgICAgICAgICAgILLiwb/KzbfFz/vPolBfTUVBU19SRUxfUkVRDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKy8qbWVhc1R5cGVzseDC66O6z+DTpmJpdM671sMxse3KvsrNt8W0y8Dg0M2y4sG/o7u38dTysrvKzbfFDQorICAgIGIwOlNlcnZDZWxsTWVhcw0KKyAgICBiMTpJbnRyYUZyZXENCisgICAgYjI6SW50ZXJGcmVxDQorICAgIGIzOkludGVyUkFUDQorICAgIGI0IDpUcmFmZmljTWVhcw0KKyAgICBiNTpRdWFudGl0eQ0KKyAgICBiNjpVRUludGVyYWwNCisgICAgYjc6UG9zaXRpb24NCisgKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01lYXNUeXBlczsgICAgICAgICANCit9VF96VERfUF9DcGh5TWVhc1JlbF9SZXE7ICANCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiAgICAgICAgICAgICAgICAgICAgICAgICCy4sG/yKu+1sr9vt3A4NDNtqjS5UVORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorDQorLyogICAgUlJDLT5QSFkNCisgICAgveG5uTpUX3pQX1REX2RsX3NldHVwX21vZGlmeV9yZXENCisgICAg08PNvjpSUkPH68fzzu/A7bLjvajBoteo08PO78Dt0MW1wA0KKyovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltYXJ5X2ZyZXE7ICAgICAgLypwcmltYXJ5ICAgZnJlcXVlbmN5Ki8gICANCisNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3V29ya2luZ19mcmVxOyAgICAgIC8qc2Vjb25kYXJ5IGZyZXF1ZW5jeSovDQorICAgIC8qU0ZOLVNGTiCy7ta1Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3T2ZmX2ZsZzsgICAgICAgICAgIC8qYk9mZl9mbGc6IDA6zt7QpyAxOtPQ0KcqLw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdPZmY7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NwZWNpYWxfYnVyc3Rfc2NoZWR1bGVfcGFyYTsgICAvKszYyuLNu7eitfe2yLLOyv0qLw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBY3RpdmVfdGltZTsgICAgICAgLypDRk46MH4yNTUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUaW1pbmdfaW5kaWNhdGlvbjsgLypFbnVtZXJhdGVkKEluaXRpYWxpc2UsTWFpbnRhaW4pIDA6SW5pdGlhbGlzZSwxOk1haW50YWluKi8NCisNCisgICAgLyoNCisgICAgICAgIENGTi10YXJnZXRTRk4gZnJhbWUgb2Zmc2V0IEludGVnZXIoMC4uMjU1KQ0KKyAgICAgICAgVGhpcyBJRSBpcyBvcHRpb25hbCBpZiB0aGUgSUUgIlRpbWluZyBpbmRpY2F0b3IiIGlzIHNldCB0byAiSW5pdGlhbGlzZSIgLk90aGVyd2lzZSBpdCBpcyBub3QgbmVlZGVkDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0Nmbl90YXJnZXRfc2ZuX2ZyYW1lX29mZnNldDsNCisgICAgLyp3VHBjX3N0ZXBfc2l6ZV9mbGcgDQorICAgICAgICAgMDp3VHBjX3N0ZXBfc2l6ZSBub3QgIGV4aXN0DQorICAgICAgICAgMTp3VHBjX3N0ZXBfc2l6ZSBleGlzdHMgDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RwY19zdGVwX3NpemVfZmxnOw0KKw0KKyAgICAvKkludGVnZXIoMSwyLDMpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHBjX3N0ZXBfc2l6ZTsgICAgDQorICAgIC8qMTAuMy42LjE2IERlZmF1bHQgIERQQ0ggT2Zmc2V0IFZhbHVlIDpJbnRlZ2VyKDAuLjcpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RGVmYXVsdF9kcGNoX29mZnNldF92YWx1ZTsNCisNCisgICAgLyoxMC4zLjYuOTpDZWxsIHBhcmFtZXRlcnMgaWQ6SW50ZWdlcigwLi4xMjcpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2VsbF9wYXJhbWV0ZXJzX2lkOw0KKyAgICAvKk4zMTIsTjMxMyxOMzE1Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TjMxMjsNCisNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TjMxMzsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TjMxNTsNCisNCisgICAgVF96VERfUF9kbF9jY3RyY2hfbGlzdCAgICAgICAgICAgICAgICAgICB0RGxfY2N0cmNoX2xpc3Q7DQorfVRfelREX1BfZGxfc2V0dXBfbW9kaWZ5X3JlcTsNCisNCisvKiAgICANCisgICAgUEhZLT5SUkMNCisgICAgveG5uTpUX3pURF9QX0RsX1JsX3NldHVwX21vZF9jbmYNCisgICAg08PNvjrO78DtsuPNqNaqUlJDxeTWw7yku+7Ksbzktb0szu/A7bLj0tENCisgICAgvq3G9NPD0MK1xMXk1sMstMvKsVJSQ8b0tq9UMzEytqjKscb3DQorKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JsdDsgICAgLyowOryku+6zybmmo6wxOryku+7Kp7DcKi8NCit9VF96VERfUF9kbF9ybF9zZXR1cF9tb2RfY25mOw0KKw0KKy8qICAgIA0KKyAgICBSUkMtPlBIWQ0KKyAgICDO78DtsuPNqNaqUlJDxeTWw7yku+7Ksbzktb0szu/A7bLj0tENCisgICAgvq3G9NPD0MK1xMXk1sMstMvKsVJSQ8b0tq9UMzEytqjKscb3DQorKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FjdGl2ZV90aW1lOyAgICAgICAvKkNGTjowfjI1NaOsMjU2se3KvsGivLS8pLvuKi8NCit9VF96VERfUF9kbF9kcGNoX3JlbF9yZXE7DQorDQorDQorLyogICAgDQorICAgIFBIWS0+UlJDDQorICAgILXXsuPIt8jPRFBDSNDFtcDKzbfFzeqxzw0KKyovDQordHlwZWRlZiBzdHJ1Y3R7DQorCVdPUkQJCQkJCQkJCSAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pURF9QX2RwY2hfcmVsX2NuZjsNCisNCisNCisvKg0KKyAgICBQSFktPlJSQw0KKyAgICC94bm5OlRfelBfVERfaW5fc3luY19pbmQNCisgICAg08PNvjrO78DtsuPU2r2owaLXqNPDzu/A7dDFtcDKsSzNqNaqUlJDzayyvbPJuaYgICAgDQorKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfelREX1BfaW5fc3luY19pbmQ7DQorDQorLyoNCisgICAgUEhZLT5SUkMNCisgICAgveG5uTpUX3pQX1REX291dF9zeW5jX2luZA0KKyAgICDTw82+Os7vwO2y482o1qpSUkPKp7K9DQorKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfelREX1Bfb3V0X3N5bmNfaW5kOw0KKw0KKy8qDQorICAgIFJSQy0+UEhZDQorICAgIL3hubk6VF96UF9URF91bF9kcGNoX3NldHVwX21vZGlmeV9yZXENCisgICAg08PNvjpSUkO9qMGiyc/Q0Neo08PO78Dt0MW1wA0KKyovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHhBZHY7ICAgICAgIC8qZGNoyc/Q0Mr9vt23osvNtcTM4cewwb+jrNLU1qHOqrWlzrsqLw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBY3RpdmVfdGltZTsgLyowfjI1NTsgMjU2Os7e0KcqLyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJpbWFyeV9mcmVxOyAgLyrGtbXj0MXPoiovDQorDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1dvcmtpbmdfZnJlcTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2VsbF9wYXJhbWV0ZXJzX2lkOw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdEeW5hbWljX3NmOyAgICAvKravzKzAqca10vLX0yovDQorICAgIC8qzNjK4s27t6LJ+rPJyrHG2iovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NwZWNfYnVyc3RfZ2VuZXJhdGlvbl9wZXJpb2Q7LyooyKHWtTAsMiw0LDgsMTYsMzIsNjQsMTI4LDI1Niy1pc67ZnJhbWU7MLHtyr6yu8b0tq9VTCBEUENIIERUWCzG5NPg1rW0+rHtxvS2r1VMIERQQ0ggRFRYKSovDQorICAgIC8qbWF4aW11bSBhbGxvd2VkIHVsIHR4IHBvd2VyDQorICAgICAgICBJbnRlZ2VyKC01MC4uMzMpDQorICAgICAgICBiTWF4X2FsbG93ZWRfdWxfdHhfcG93ZXIgPSAoeCAtKC01MCkpDQorICAgICAgICANCisgICAgKi8NCisNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWF4X2FsbG93ZWRfdWxfdHhfcG93ZXI7DQorICAgIA0KKyAgICAvKjEwLjMuNi45MSAgICBVcGxpbmsgZHBjaCBwb3dlciBjb250cm9sIGluZm8qLw0KKyAgICBUX3pURF9QX3VsX2RwY2hfcG93ZXJfY3RybCAgICAgICAgICAgICAgIHRVbF9kcGNoX3Bvd2VyX2N0cmxfaW5mbzsNCisgICAgDQorICAgIC8qMTAuMy42Ljk2ICAgIFVwbGluayBUaW1pbmcgQWR2YW5jZSBDb250cm9sKi8NCisgICAgVF96VERfUF91bF90aW1pbmdfYWR2YW5jZSAgICAgICAgICAgICAgICB0VXBsaW5rX3RpbWluZ19hZHZhbmNlX2NvbnRyb2w7DQorICAgIA0KKyAgICAvKnVsIHRmY3MgbGlzdCovDQorICAgIFRfelREX1BfdWxfY2N0cmNoX2xpc3QgICAgICAgICAgICAgICAgICAgdFVsX2NjdHJjaF9saXN0Ow0KK31UX3pURF9QX1VsRHBjaF9zZXR1cF9tb2RfcmVxOw0KKw0KKy8qICAgIFJSQy0+UEhZDQorICAgINPDzb4gICAgUlJD08PT2srNt8XJz9DQ16jTw87vwO3QxbXADQorKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FjdGl2ZV90aW1lOyAgICAgICAvKkNGTjowfjI1NaOsMjU2se3KvsGivLS8pLvuKi8NCit9VF96VERfUF91bF9kcGNoX3JlbF9yZXE7DQorDQorLyogICAgUEhZLT5SUkMNCisgICAgveG5uTpUX3pQX1REX3VsX2VzdGFibGlzaF9pbmQNCisgICAg08PNvjrO78DtsuO3tMChyc/Q0MG0wre9qMGis8m5piANCisqLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96VERfUF91bF9lc3RhYmxpc2hfaW5kOw0KKw0KKy8qICAgIFJSQy0+UEhZDQorICAgIL3hubk6VF96UF9URF9kbF90cmNoX3JlY29uZmlnX3JlcQ0KKyAgICDTw82+OlJSQ8Xk1sPPwtDQtKvK5Ljxyr26zbSryuS48cq91+m6z9DFz6INCisqLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUcmNoSWQ7DQorICAgIC8qRW51bWVyYXRlZChObyBjb2RpbmcsQ29udm9sdXRpb25hbCxUdXJibykNCisgICAgICAgIDA6Tm8gY29kaW5nDQorICAgICAgICAxOkNvbnZvbHV0aW9uYWwNCisgICAgICAgIDI6VHVyYm8NCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VHJjaF90eXBlOw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDb2RpbmdfdHlwZV9vZl9jaGFubmVsOw0KKyAgICAvKkludGVnZXIoNSwxMCwyMCw0MCw4MCxkeW5hbWljKQ0KKyAgICAgICAgMDpkeW5hbWljDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RyYW5zbWlzc2lvbl90aW1lX2ludGVydmFsOw0KKyAgICANCisgICAgLyogICAgSW50ZWdlcigwLDgsMTIsMTYsMjQpICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDcmNfbGVuZ3RoOw0KKyAgICAvKkludGVnZXIoMS4uaGlSTSkgaGlSTSA9MjU2Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Um1fYXR0cmlidXRlOw0KKyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Tm9fb2ZfZHluYW1pY190ZnM7DQorfVRfelREX1Bfc3RhdGljX3RmczsNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgLypVbml0IGlzIGJpdHM7cnJjIHNob3VsZCBjb21wdXRlIHRoZSAgVEIgc2l6ZSBieSB0aGUgcmxjIHNpemUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdUcmFuc3BvcnRfYmxvY2tfc2l6ZTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtYmVyX29mX3RyYW5zcG9ydF9ibG9ja3M7DQorICAgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RmaTsNCit9VF96VERfUF9keW5hbWljX3RmczsNCisNCit0eXBlZGVmIHN0cnVjdHsgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0N0ZmNIOyAgICAgICAgLypDVEZDuN8xNmJpdCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0N0ZmNMOyAgICAgICAgLypDVEZDtc0xNmJpdCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RmY2k7DQorfVRfelREX1BfZGxfY3RmY190ZmM7DQorDQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDY3RyY2hUeXBlOy8qICAwOkNjdHJjaERjaA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTpDY3RyY2hGYWNoIA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjpDY3RyY2hQY2gNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM6Q2N0cmNoQ2JzDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlciB2YWx1ZTpyZXNlcnZlZCAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBY3RpdmVfdGltZTsgLyowfjI1NTsgMjU2Os7e0KcqLw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1UckNIOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOb09mVGZjczsNCisNCisgICAgLyogtNPT0rW91/NCSVTOu7bU06a1xLSryuTQxbXAy7PQ8tPrYXRTdGF0aWNURlPP4M2so7tiaXTWtTCx7cq+srvQ6NKqveLO9qOsMbHtyr7Q6NKqveLO9iAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFbmFibGVfZGVjb2RlX2JpdG1hcDsNCisNCisgICAgLyoguMPK/dfp1Np3Q2N0cmNoVHlwZT09MMqx09DQp6Osyv3X6dSqy9i21NOmtcS0q8rk0MW1wMuz0PLT62F0U3RhdGljVEZTz+DNrKO7DQorICAgICAgICAgICAgICBUYXJnZXRfQkxFUs6qv8nRobLOyv2jrNa1tcS3ts6nzqow1sE2M6OsMHhmZmZmse3KvrLOyv2yu7Tm1Nqju87vwO2y48rVtb2689KqKqOoLTAuMaOptcO1vcq1vMrWtSAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdUYXJnZXRfQkxFUltaX1REX1BfTUFYX0RMX1RSQ0hfTlVNXTsNCisgICAgVF96VERfUF9zdGF0aWNfdGZzICAgICAgICAgICAgICAgICAgICAgICBhdFN0YXRpY1RGU1taX1REX1BfTUFYX0RMX1RSQ0hfTlVNXTsgDQorDQorICAgIFRfelREX1BfZHluYW1pY190ZnMgICAgICAgICAgICAgICAgICAgICAgYXREeW5hbWljVEZTW1pfVERfUF9NQVhfRExfVEZfTlVNXTsNCisNCisgICAgVF96VERfUF9kbF9jdGZjX3RmYyAgICAgICAgICAgICAgICAgICAgICBhdEN0ZmNbWl9URF9QX01BWF9ETF9URkNTX05VTV07DQorfVRfelREX1BfZGxfdHJjaF9yZWNmZ19yZXE7DQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdDdGZjOw0KKw0KKyAgICAgLyrEv8ew1qez1rXE1+6081RGQ7j2yv3OqjEyOLj2Ki8NCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGZjaTsNCisgICAgIC8qDQorICAgICAgICAgMDrP1Mq+zajWqizPwsPmtcR3QmV0YV9kuPiz9g0KKyAgICAgICAgICAgMTqyzr+8t73KvSzPwsPmtcR3UmVmZXJlbmNlX3RmY19pZLj4s/YgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKyAgICDXosrNo7oNCisgICAgxeTWw7SryuTQxbXAtcRURlPQxc+iLNPD09q8xsvjtbHEs7j2VEZDtcRQb3dlcg0KKyAgICAgT2Zmc2V0IEluZm9ybWF0aW9u1tC1xEJldGFEzqq8xsvjt73KvcqxKLLOv7zG5Mv8VEZDKc7vwO2y48q508Ohow0KKyAgICAgKi8NCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QmV0YV9kX3R5ZToxOyAgICANCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QmV0YV9kOjU7ICAgICAgICAgICAgICAvKjB+MTUqLw0KKyAgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSZWZlcmVuY2VfdGZjX2lkOjI7ICAgIC8qdGZjaaOsMH4zKi8NCisgICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ODsNCit9VF96VERfUF91bF9jdGZjX3RmYzsNCisNCisNCisvKiAgICBSUkMtPlBIWQ0KKyAgICDTw82+OlJSQ8Xk1sPJz9DQtKvK5Ljxyr26zbSryuS48cq91+m6z9DFz6INCisgICAgveG5uTpUX3pURF9QX1VsRHBjaF90Y2hfcmVjZmdfcmVxDQorKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FjdGl2ZV90aW1lOyAgICAgIC8qMH4yNTU7IDI1NjrO3tCnKi8NCisNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TnVtVHJDSDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3VGZjc051bTsNCisNCisgICAgVF96VERfUF9zdGF0aWNfdGZzICAgICAgICAgICAgICAgICAgICAgICBhdFN0YXRpY1RGU1taX1REX1BfTUFYX1VMX1RSQ0hfTlVNXTsNCisNCisgICAgVF96VERfUF9keW5hbWljX3RmcyAgICAgICAgICAgICAgICAgICAgICBhdER5bmFtaWNURlNbWl9URF9QX01BWF9VTF9URl9OVU1dOw0KKw0KKyAgICBUX3pURF9QX3VsX2N0ZmNfdGZjICAgICAgICAgICAgICAgICAgICAgIGF0Q3RmY1taX1REX1BfTUFYX1VMX1RGQ1NfTlVNXTsNCit9VF96VERfUF9VbERwY2hfdGNoX3JlY2ZnX3JlcTsNCisNCisNCisvKg0KKyAgICBSUkMtPlBIWQ0KKyAgICDTw82+OlJSQyDTw9PaxeTWw7iouau5ss7vwO3QxbXADQorICAgIL3hubk6VF96UF9URF9hZGRfbW9kX3NjY3BjaF9yZXENCisqLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCisNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3T2Zmc2V0OyAgICAgICAgICAgICAgICAgICAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NoYW5uZWxpc2F0aW9uX0NvZGVfbnVtOyAgIA0KKyAgICANCisgICAgLyoxMC4zLjYuMTAgIENvbW1vbiB0aW1lc2xvdCBpbmZvKi8NCisgICAgVF96VERfUF9jb21tb25fdHNfaW5mbyAgICAgICAgICAgICAgICAgICB0Q29tbW9uX3RpbWVzbG90X2luZm87DQorICAgIC8qMTAuMy42LjM3ICBJbmRpdmlkdWFsIHRpbWVzbG90IGluZm8qLw0KKyAgICBUX3pURF9QX2luZGl2aWR1YWxfdHNfaW5mbyAgICAgICAgICAgICAgIHRJbmRpdmlkdWFsX3RpbWVzbG90X2luZm87ICAgDQorDQorICAgIFRfelREX1BfQ0hBTk5FTElTQVRJT05fQ09ERSAgICAgICAgICAgICAgYXRDaGFubmVsaXNhdGlvbl9Db2RlW1pfVERfUF9DSF9DT0RFX05VTV07DQorfVRfelREX1BfYWRkX21vZF9zY2NwY2hfcmVxOw0KKw0KKy8qDQorICAgIFJSQy0+UEhZDQorICAgINPDzb46UlJDINPD09rKzbfFuau5stDFtcDF5NbDDQorICAgIL3hubk6VF96VERfUF9yZWxfc2NjcGNoX3JlcQ0KKyovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBY3RUaW1lOw0KK31UX3pURF9QX3JlbF9zY2NwY2hfcmVxOw0KKw0KKy8qDQorICAgIFJSQy0+UEhZDQorICAgINPDzb46tdey48i3yM9TQ0NQQ0jQxbXAys23xc3qsc8NCisgICAgveG5uTpUX3pURF9QX3JlbF9zY2NwY2hfY25mDQorKi8NCit0eXBlZGVmICAgIHN0cnVjdHsNCisJV09SRAkJCQkJCQkJICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfelREX1BfcmVsX3NjY3BjaF9jbmY7DQorDQorDQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIC8qcGljaCBpbmZvKi8NCisgICAgLypUaW1lc2xvdCBudW1iZXIgSW50ZWdlcigwLi42KSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RpbWVzbG90X251bWJlcjsNCisgICAgLyoyNS4zMzEgMTAuMy42LjQxIE1pZGFtYmxlIHNoaWZ0IGFuZCBidXJzdCB0eXBlKi8NCisgICAgVF96VERfUF9taWRfc2hpZnRfYnVyX3R5cGUgICAgICAgICAgICAgICB0TWlkYW1ibGVfc2hpZnRfYnVyc3RfdHlwZTsNCisgICAgDQorICAgIC8qd0NoYW5uZWxpc2F0aW9uX2NvZGVfbnVtYmVyOtDFtcC7r8LrtcTK/cS/Ki8NCisgICAgVF96VERfUF9DSEFOTkVMSVNBVElPTl9DT0RFICAgICAgICAgICAgICBhdENoYW5uZWxpc2F0aW9uX2NvZGVbMl07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NoYW5uZWxpc2F0aW9uX2NvZGVfbnVtYmVyOw0KKyAgICAvKg0KKyAgICBFbnVtZXJhdGVkKCg0LzIpLCg4LzIpLCg4LzQpLCgxNi8yKSwoMTYvNCksKDMyLzIpLCgzMi80KSwoNjQvMiksKDY0LzQpKQ0KKyAgICANCisgICAgKDQvMik6d1JlcGV0aXRpb25fcGVyaW9kX2xlbmd0aCA9MCwNCisgICAgKDgvMik6d1JlcGV0aXRpb25fcGVyaW9kX2xlbmd0aCA9MSwNCisgICAgLi4uYW5kIHNvIG9uLi4uDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JlcGV0aXRpb25fcGVyaW9kX2xlbmd0aDsNCisgICAgICAgICANCisgICAgLyrWocar0sYqLyAgICAgICAgICAgICAgICAgICAgICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3T2Zmc2V0OyAgICAgICAgIA0KKyAgICAgICAgIC8qSW5kaWNhdGVzIHRoZSBsZW5ndGggb2Ygb25lIHBhZ2luZyBpbmRpY2F0b3IgaW4gYml0cy4gRGVmYXVsdCB2YWx1ZSBpcyA0Lg0KKyAgICAgICAgICAgICAgICAgSW50ZWdlcig0LDgsMTYpDQorICAgICAgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFnaW5nX2luZGljYXRvcl9sZW5ndGg7DQorICAgIA0KKyAgICAvKrK7wazQ+L3TytXW3MbaKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3RHJ4X2N5Y2xlX2xlbmd0aDsNCisgICAgLyrRsLr0yrG/zCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZ2luZ19vY2Nhc2lvbjsNCisNCisgICAgLyrRsNXS1rjKvtLy19MqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQaTsNCisgICAgLyrRsLr0z/vPor3TytXKsb/MKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFnaW5nX21zZ19yY3Zfb2NjYXNpb247DQorfVRfelREX1BfcGljaF9pbmZvOw0KKy8qSW1zaSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3TGlzdFsyMV07IA0KK31UX3pURF9QX0ltc2lHc207DQorDQorLypVUm50aSovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTcm5jSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd1NSbnRpOw0KK31UX3pURF9QX1VSbnRpOw0KKw0KKy8qdWUgaWQqLw0KK3R5cGVkZWYgc3RydWN0IHsNCisJV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdVZUlkVmFsaWRCaXRtYXA7LypiaXQwLi5iaXQz09DQp6Os0sC0zrfWsfDWuMq+0MXUqlRtc2lHc22holBUbXNpR3NtoaJJbXNpR3NtoaJVUm50acrHt/G05tTaoaNiaXTOu86qMbHtyr621NOm0MXUqrTm1NqjrLfx1PKyu7Tm1NoqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgYXdUbXNpR3NtWzRdOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgYXdQVG1zaUdzbVs0XTsNCisJV09SRCAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBUX3pURF9QX0ltc2lHc20gICAgICAgICAgICAgdEltc2lHc207DQorICAgIFRfelREX1BfVVJudGkgICAgICAgICAgICAgICB0VVJudGk7DQorfVRfelREX1BfVWVJZDsNCisNCisvKiAgICBSUkMtPlBIWQ0KKyAgICC94bm5OlRfelBfVERfcGFnaW5nX3JlcQ0KKyAgICDTw82+OlJSQyDTw9PaxeTWw9GwuvTQxbXADQorKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorDQorICAgIFRfelREX1BfYWRkX21vZF9zY2NwY2hfcmVxICAgICAgICAgICAgICAgdEFkZF9tb2RpZnlfc2NjcGNoX3JlcTsNCisgICAgVF96VERfUF9waWNoX2luZm8gICAgICAgICAgICAgICAgICAgICB0UGljaEluZm87DQorCVRfelREX1BfVWVJZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdFVlSWRJbmZvOw0KK31UX3pURF9QX3BhZ2luZ19yZXE7DQorDQorLyoNCisgICAgUlJDLT5QSFkNCisgICAgveG5uTpUX3N0b3BfcGFnaW5nX3JlcQ0KKyAgICDTw82+OlJSQyDTw9PazaPWudGwuvS1xL3TytUNCisqLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96VERfUF9zdG9wX3BhZ2luZ19yZXE7DQorDQorDQorLyoNCisgICAgUEhZLT5SUkMNCisgICAgveG5uTpUX3pURF9QX3N0b3BfcGFnaW5nX2NuZg0KKyAgICDTw82+OrXXsuPIt8jPys23xdGwuvTQxbXAzeqxzw0KKyovDQordHlwZWRlZiAgICBzdHJ1Y3R7DQorCVdPUkQJCQkJCQkJCSAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfelREX1Bfc3RvcF9wYWdpbmdfY25mOw0KKw0KKy8qICAgIFJSQy0+UEhZDQorICAgIL3hubk6VF96VERfUF9hZGRfbW9kaWZ5X2Nic19yZXENCisgICAg08PNvjpSUkMg08PT2sXk1sOz0NTYQ0JTtcRTQ0NQQ0jQxbXADQorICAgINSt0+86Wl9QX0FERF9NT0RJRllfQ0JTX1JFUV9Fdg0KKyovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHJkX29mX2N0Y2hfYWxsbzsgICAgLyogTiwxfjI1NjtvdGhlciBpbnZhbGlkICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICB3Q2JzX2ZyYW1lX29mZjsgICAgLyogSywwfjI1NTtvdGhlciBpbnZhbGlkICovDQorfVRfelREX1BfY2JzX2RyeF9sZXYxOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bTsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3Q3RjaF9ic19saXN0WzI1NV07ICAgIC8qINKqvdPK1bXEQlPL+dTaU0ZOICovDQorfVRfelREX1BfY2JzX2RyeF9sZXYyOw0KKw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd1NhbWVfYXNfcGNoOyAgIC8qIDA6bm90IHNhbWU7IDE6c2FtZSAqLw0KKyAgICAvKiBpZiBzYW1lIGFzIHBjaCwgbWVhbnMgcGNoIGFuZCBmYWNoIG11eCBvbiB0aGUgc2FtZSBzY2NwY2ggKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOZXdfZGVjb2RlX2JpdG1hcDsgICAgLypvbmx5IHZhbGlkIHdoZW4gd1NhbWVfYXNfcGNoID0gMSovDQorICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RyeF90eXBlOyAgICAgIC8qMDqwtExldmVsMSBEUli908rVOyAxOrC0TGV2ZWwyIERSWL3TytUqLw0KKyAgICB1bmlvbnsNCisgICAgICAgIFRfelREX1BfY2JzX2RyeF9sZXYxICAgICAgIHRMZXYxOw0KKyAgICAgICAgVF96VERfUF9jYnNfZHJ4X2xldjIgICAgICAgdExldjI7DQorICAgIH10RHJ4Ow0KKyAgICANCisgICAgVF96VERfUF9hZGRfbW9kX3NjY3BjaF9yZXEgICAgICAgIHRBZGRfbW9kaWZ5X3NjY3BjaF9yZXE7ICAgLyrO3sLbd1NhbWVfYXNfcGNoIMihus7Wtba809DQpyovIA0KKyAgICBUX3pURF9QX2RsX3RyY2hfcmVjZmdfcmVxICAgICAgICAgdERsX3RyY2hfcmVjb25maWdfcmVxOyAgICAvKs7ewtt3U2FtZV9hc19wY2ggyKG6zta1trzT0NCnKi8gICAgICAgIA0KK31UX3pURF9QX2FkZF9tb2RpZnlfY2JzX3JlcTsNCisNCisNCisvKg0KKyAgICBSUkMtPlBIWQ0KKyAgICC94bm5OlRfelREX1Bfc3RvcF9jYnNfcmVxDQorICAgINPDzb46UlJDINPD09rNo9a5Q0JTtcS908rVo6zI57n7ZmFjaNPrcGNosru5stPD0rvM9XNjY3BjaKOssPzAqMm+s/3O78Dt18rUtA0KKyAgICDUrdPvOlpfUF9TVE9QX0NCU19SRVFfRXYNCisqLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96VERfUF9zdG9wX2Nic19yZXE7DQorDQorLyoNCisgICAgUlJDLT5QSFkNCisgICAgveG5uTpUX3pURF9QX3N0b3BfY2JzX2NuZg0KKyAgICDTw82+OrXXsuPIt8jPys23xUNCU9DFtcDN6rHPDQorICAgINSt0+86Wl9QX1NUT1BfQ0JTX0NORl9Fdg0KKyovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pURF9QX3N0b3BfY2JzX2NuZjsNCisNCisjaWZkZWYgUjlfU1VQUE9SVA0KKy8qDQorICAgIFJSQy0+UEhZDQorICAgIL3hubk6VF9oc2RwYV9jb25maWdfcmVxDQorICAgINPDzb4608PT2sXk1sPO78DtsuNoc2RwYQ0KKyovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NhcnJpZXJfRnJlcTsgICAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3SFNfc2NjaF9udW07DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFRfelREX1BfbWNfaHNfc2NjaCAgICAgICAgICAgICAgICAgICAgICAgICAgYXRNY19oc19zY2NoX2NvbmZpZ3VyYXRpb25bWl9URF9QX01BWF9IU19TQ0NIXTsNCisgICAgVF96VERfUF9oc19kcHNjaF9taWRhbWJsZSAgICAgICAgICAgICAgICAgICB0SHNfcGRzY2hfbWlkYW1ibGVfY29uZmlndXJhdGlvbjsNCisgICAgVF96VERfUF9oc19oYXJxX2luZm8gICAgICAgICAgICAgICAgICAgICAgICB0SHNfaGFycV9pbmZvOw0KK31UX3pURF9QX2hzZHBhX2luZm9fbGlzdDsNCisjZW5kaWYNCisNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FjdGl2ZV90aW1lOyAgICAgICAgICAgICAgICAgICAvKjB+MjU1OyAyNTY6waK8tMbw0KcqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltYXJ5X2ZyZXE7ICAgICAgLypwcmltYXJ5ICAgZnJlcXVlbmN5Ki8gICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3V29ya2luZ19mcmVxOyAgICAgIC8qc2Vjb25kYXJ5IGZyZXF1ZW5jeSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxfcGFyYW1ldGVyc19pZDsgIC8qSW50ZWdlcigwLi4xMjcpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3SF9ybnRpOw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQb3dlcl9jdHJsX2dhcDsgICAgICAgICAgICAgICAgLypIUy1TSUNItcS0q8rkvOS49MPFz96jrNfT1qG49sr9o6wwfjI1NSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BsX2NvbXBlbnNhdGlvbl9zd2l0Y2g7ICAgICAgICAvKjE6SFMtU0lDSMq1vMq0q8rkvOS49NCh09rDxc/eyrHQ6Nf3wrfL8LK5s6UgMDqyu9f3wrfL8LK5s6UqLw0KKyNpZmRlZiBSOV9TVVBQT1JUDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RzMEluZDsvKjGjurHtyr7N+LLg1MrQ7b2rz8LQ0EhTUERTQ0jTw9PaVHMwo6wwo7qx7cq+srvUytDtKi8gDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1N5bmNfcGFyYV9mZzsvKrHqyra1scewyse38df2ubLP7dDFtcC1xM2ssr0qLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdIc3NjY2hfZHJ4X2ZnOwkvKrHqyra1scewSFNTQ0NIyse38dans9ZEUli908rVo7sqLwkNCisJV09SRAkJCQkJCSAgICAgICAgICAgICAgICB3SHNkc2NoX3Nwc19mZzsvKrHqyra1scewSFNTQ0NIyse38dans9ZTUFOy2df3Ki8gICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0RlZmF1bHRfZHBjaF9vZmZzZXRfdmFsdWU7LyoxMC4zLjYuMTYgRGVmYXVsdCAgRFBDSCBPZmZzZXQgVmFsdWUgOkludGVnZXIoMC4uNyksvfa1sXdTeW5jX3BhcmFfZmc9PTHKsdPQ0KcqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNYWNIZFR5cDsvKkhTRFNDSLbU06ZNYWMtZCBmbG93tcRNQUPNt8Dg0M2juzCjurHtyr5NYWMtaHOjrDGjurHtyr5NQWMtZWhzKi8NCisgICAgVF96VERfUF9oc3NjY2hfY3RybF9jaF9kcngJICAgICAgICAgICAgICAgIHRIc3NjY2hfZHJ4X2luZm87CQ0KKyAgICBUX3pURF9QX2hzZHNjaF9zcHNfaW5mbyAgICAgICAgICAgICAgICAgICAgIHRIc2RzY2hfc3BzX2luZm87DQorICAgIFRfelREX1Bfc2hhcmVfY2hfc3luY19wYXJhICAgICAgICAgICAgICAgICAgdFN5bmNfcGFyYTsNCisjZW5kaWYNCisNCisjaWZkZWYgUjlfU1VQUE9SVA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNY051bTsgICAgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hzZHBhX2luZm9fbGlzdF9udW07ICAgDQorICAgIFRfelREX1BfaHNkcGFfaW5mb19saXN0ICAgICAgICAgICAgICAgICAgICAgYXRIc2RwYV9pbmZvX2xpc3RbWl9URF9QX01BWF9DQVJSSUVSXTsNCisjZWxzZQ0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0hTX3NjY2hfbnVtOw0KKw0KKyAgICBUX3pURF9QX2hzX3NjY2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRIc19zY2NoX2NvbmZpZ3VyYXRpb25bWl9URF9QX01BWF9IU19TQ0NIXTsNCisgICAgVF96VERfUF9oc19kcHNjaF9taWRhbWJsZSAgICAgICAgICAgICAgICAgIHRIc19wZHNjaF9taWRhbWJsZV9jZmc7DQorICAgIFRfelREX1BfaHNfaGFycV9pbmZvICAgICAgICAgICAgICAgICAgICAgICB0SHNfaGFycV9pbmZvOw0KKyNlbmRpZg0KK31UX3pURF9QX2hzZHBhX2NvbmZpZ19yZXE7DQorDQorDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBY3RUaW1lOyANCit9VF96VERfUF9oc2RwYV9yZWxfcmVxOw0KKw0KK3R5cGVkZWYgICAgc3RydWN0ew0KKwlXT1JECQkJCQkJCQkgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96VERfUF9oc2RwYV9yZWxfY25mOw0KKw0KKw0KKy8qDQorICAgIFJSQy0+UEhZDQorICAgIL3hubk6VF9oc3VwYV9jb25maWdfcmVxDQorICAgINPDzb4608PT2sXk1sPO78DtsuNoc3VwYQ0KKyovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBY3RfdGltZTsgICAgICAgICAgICAgICAgLypDRk46MH4yNTUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmltYXJ5X2ZyZXE7ICAgICAgLypwcmltYXJ5ICAgZnJlcXVlbmN5Ki8gICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3V29ya2luZ19mcmVxOyAgICAgIC8qc2Vjb25kYXJ5IGZyZXF1ZW5jeSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NlbGxfcGFyYW1ldGVyc19pZDsgLypJbnRlZ2VyKDAuLjEyNykqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdFX3JudGk7ICAgICAgICAgICAgICAgIC8qRS1STlRJKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2NoX3RyX2ZsZzsgICAgICAgICAgICAvKjA6tfe2yM7e0KcgMTq197bI09DQpyovICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOb25fc2NoX3RyX2ZsZzsgICAgICAgIC8qMDq3x7X3tsjO3tCnIDE6t8e197bI09DQpyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1Jlc2V0X2ZsZzsgICAgICAgICAgICAgICAgLyowOm5vdCByZXNldCAxOnJlc2V0Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3SGFycV9pbmZvOyAgICAgICAgICAgICAgICAvKjA6ucy2qMq508NSVjAgMTpSVr/JseQqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOX2VoaWNoOyAgICAgICAgICAgICAgICAvKkUtUFVDSLrNRS1ISUNIz+C49LXEyrHPtsr9LDR+MTUqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNYXhfYWxsb3dlZF91bF90eF9wb3dlcjsvKkludGVnZXIoLTUwLi4zMykgICAgICAgIGJNYXhfYWxsb3dlZF91bF90eF9wb3dlciA9ICh4IC0oLTUwKSkgICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByaW1hcnlfY2NwY2hfdHhfcG93ZXI7ICAgLyogICAgIEludGVnZXIoNi4uNDMpZEJtICAgICovDQorI2lmbmRlZiBSOV9TVVBQT1JUDQorCVdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1VwcGNoX2NoaXBfc2hpZnRfZmxnOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVcHBjaF9jaGlwX3NoaWZ0Ow0KKyNlbHNlDQorICAgIFdPUkQJCQkJCQkJCQkJd0VhZ2NoX2RyeF9mZzsJLyoxLdans9ZFQUdDSLXERHJ4vdPK1aO7MC2yu9ans9ZFQUdDSLXERFJYvdPK1SovCQ0KKyAgICBXT1JECQkJCQkJCQkJCXdFZGNoX3Nwc19mZzsgIC8qMS3Wp7PWRURDSLXEU1BTstnX96O7MC2yu9ans9ZFRENItcRTUFOy2df3Ki8NCisgICAgVF96VERfUF9lYWdjaF9jdHJsX2NoX2RyeCAgICAgICAJCSB0RWFnY2hfZHJ4X2luZm87IA0KKyAgICBUX3pURF9QX2VkY2hfc3BzX2luZm8JCQkgICAgICAgICB0RWRjaF9zcHNfaW5mbzsJDQorCVRfelREX1BfdWxfdGltaW5nX2FkdmFuY2UgICAgICAgICAgICAgICAgdFVwbGlua190aW1pbmdfYWR2YW5jZV9jb250cm9sOw0KKyNlbmRpZg0KKyAgICBUX3pURF9QX2VwdWNoX3B3cl9pbmZvICAgICAgICAgICAgICAgICAgIHRFcHVjaF9wd3JfaW5mbzsgICAgICAgIC8qRS1QVUNIuaa/2NDFz6KjrM2syrHKytPD09q197bIus23x7X3tsgqLw0KKw0KKyAgICBUX3pURF9QX2hzX3NjaF90ciAgICAgICAgICAgICAgICAgICAgICAgIHRIc19zY2hfdHJfaW5mbzsgICAgICAgIC8qvfa1sXdTY2hfdHJfZmxnPTHKsdPQ0KcqLyAgICAgICAgDQorICAgIFRfelREX1BfaHNfbm9uX3NjaF90ciAgICAgICAgICAgICAgICAgICAgdEhzX25vbl9zY2hfdHJfaW5mbzsgICAgLyq99rWxd05vbl9zY2hfdHJfZmxnPTHKsdPQ0KcqLw0KK31UX3pURF9QX2hzdXBhX2NvbmZpZ19yZXE7DQorDQorLyoNCisgICAgUlJDLT5QSFkNCisgICAgveG5uTpUX3pURF9QX2hzdXBhX3JlbF9yZXENCisgICAg08PNvjrTw9Payb6z/c7vwO2y42hzdXBhDQorKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0FjdGl2ZV90aW1lOyAgICAgICAgICAgICAgICAvKjB+MjU1LCAyNTax7cq+waK8tMm+s/0qLw0KK31UX3pURF9QX2hzdXBhX3JlbF9yZXE7DQorDQorDQorLyoNCisgICAgUEhZLT5SUkMNCisgICAgveG5uTpUX3pURF9QX2hzdXBhX3JlbF9jbmYNCisgICAg08PNvjq117LjyLfIz8rNt8VIU1VQQdDFtcDN6rHPDQorKi8NCit0eXBlZGVmICAgIHN0cnVjdHsNCisJV09SRAkJCQkJCQkJICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfelREX1BfaHN1cGFfcmVsX2NuZjsNCisNCisNCisvKsO709C31sXkz8LQ0ERQQ0jKsaOs08O0y9St0+8qLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3QWN0aXZlX3RpbWU7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BsY2NoX251bTsNCisJV09SRAkJCQkJCQkJCQl3UGFkZGluZzsNCisgICAgVF96VERfUF9wbGNjaF9pbmZvICAgICAgICAgICAgICAgICAgICAgICBhdFBsY2NoX2luZm9bWl9URF9QX01BWF9VTF9UUyoyXTsgICAgDQorfVRfelREX1BfYWRkX21vZGlmeV9wbGNjaDsNCisjaWZkZWYgUjlfU1VQUE9SVA0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgIFJSQ6OoTDFUo6ktPlBIWQ0KKyAgICC5psTcOg0KKyAgICAgICAgICAgICAgICAgxeTWw0wxIEZBQ0i6zUlETEXMrM/CtcTP4LnY1PbHv8Xk1sM6ICAgICBQIF9IU1BBX1BMVVNfRkFDSF9SRVFfRVYNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXF1ZW5jeV9pbmZvOw0KKyAgICBUX3pURF9QX2ZhY2hfZHBhX2luZm8gICAgICAgCQl0RmFjaF9kcGFfaW5mbzsNCisgICAgVF96VERfUF9mYWNoX3VwYV9pbmZvCQkgICAgdEZhY2hfdXBhX2luZm87DQorfSBUX3pURF9QX2hzcGFfcGx1c19mYWNoX3JlcTsNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICBSUkOjqEwxVKOpLT5QSFkNCisgICAguabE3DoNCisgICAgICAgICAgICAgICAgIMXk1sNMMSBQQ0jMrM/CtcTP4LnY1PbHv8Xk1sM6ICAgICBQIF9IU1BBX1BMVVNfUENIX1JFUV9FVg0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXF1ZW5jeV9pbmZvOyANCisgICAgVF96VERfUF9wY2hfZHBhX2luZm8gICAgICB0UGNoX2RwYV9pbmZvOyANCisgICAgVF96VERfUF9waWNoX2luZm8gICAgICAgICB0UGljaF9pbmZvOwkNCit9IFRfelREX1BfaHNwYV9wbHVzX3BjaF9yZXE7DQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgUlJDo6hMMVSjqS0+UEhZDQorICAgILmmxNw6DQorICAgICAgICAgICAgICAgICDJvrP9TDEgRkFDSLrNSURMRcysz8K1xM/gudjU9se/xeTWwzogICAgIFAgX0hTUEFfUExVU19GQUNIX1JFTF9SRVFfRVYNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3QWN0aXZlX3RpbWU7ICAgICAgICAgIC8qMH4yNTU7IDI1NjrBory0xvDQpyovDQorfSBUX3pURF9QX2hzcGFfcGx1c19mYWNoX3JlbF9yZXE7DQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgUlJDo6hMMVSjqS0+UEhZDQorICAgILmmxNw6DQorICAgICAgICAgICAgICAgICDJvrP9TDEgUENIzKzPwrXEz+C52NT2x7/F5NbDOiAgICAgUCBfSFNQQV9QTFVTX1BDSF9SRUxfUkVRX0VWDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7ICAgICANCit9IFRfelREX1BfaHNwYV9wbHVzX3BjaF9yZWxfcmVxOw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgIFBIWS0+TDFUDQorICAgILmmxNw6tdey48i3yM/JvrP91PbHv0ZBQ0jQxbXAzeqxzw0KKyAgICAgICA6ICAgICBQIF9IU1BBX1BMVVNfRkFDSF9SRUxfQ05GX0VWDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KK3R5cGVkZWYgc3RydWN0ew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7ICAgICAgDQorfSBUX3pURF9QX2hzcGFfcGx1c19mYWNoX3JlbF9jbmY7DQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgUEhZLT5MMVQNCisgICAguabE3Do6tdey48i3yM/JvrP91PbHv1BDSNDFtcDN6rHPDQorICAgICAgICAgICAgICAgICAgICAgIFAgX0hTUEFfUExVU19QQ0hfUkVMX0NORl9FVg0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOyAgICAgDQorfSBUX3pURF9QX2hzcGFfcGx1c19wY2hfcmVsX2NuZjsNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICBSUkOjqEwxVKOpLT5QSFkNCisgICAguabE3DoNCisgICAgICAgICAgICAgICAgINTa1PbHv0ZBQ0jMrM/Co6y4w8/7z6K3osvNuPjO78DtsuPTw9PauPzQwteo08O1xEhSTlRJu/JFUk5USTpQX0VGQUNIX1VQREFURV9STlRJX1JFUV9FVg0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdHsgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgd0FjdGl2ZV90aW1lOy8qMH4yNTU7IDI1NjrBory0xvDQpyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3VXBkYXRlX3R5cGU7Lyoxo7rWu7j80MJILVJOVEmjuzKjuta7uPzQwkUtUk5USaO7M6O6uPzQwkgtUk5USbrNRS1STlRJOyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICB3SF9ybnRpOy8q16jTw0hSTlRJLLWxd1VwZGF0ZV90eXBlzqoxu/IzyrHT0NCnKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdFX3JudGk7IC8q16jTw0VSTlRJLLWxd1VwZGF0ZV90eXBlzqoyu/IzyrHT0NCnKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pURF9QX2VmYWNoX3VwZGF0ZV9ybnRpX3JlcTsNCisjZW5kaWYNCisNCisvKg0KKyAgveG5ubao0uXLtcP3LLTLveG5ubLOyv3PyMXk1sO4+G1hYyzP4LnYss7K/c2ouf1UX3pDVU1hY19SYWNoX1BhcmFfUmVxvdO/2sXk1sO4+G1hYzsNCisgIG1hY82ouf1UX1BfUkFDSF9QUk9DRURVUkVfUkVRvdO/2r2rz+C52LLOyv23orj4zu/A7bLjDQorKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIC8qPlBSQUNIIGluZm8qLw0KKyAgICAvKrTyv9fP3tbGLDB+MTAwKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UHVuY3R1cmluZ19saW1pdDsgICAgDQorICAgIC8qMTAuMy42Ljc4YT4+U05DX1VMIGluZm8qLw0KKyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UGFkZGluZzsgICAgICAgIA0KKyAgICAvKg0KKyAgICAgICAgSW50ZWdlcigtMTIwLi4tNTgpIGJ5IHN0ZXAgb2YgMQ0KKyAgICAgICAgd1ByeF91cF9wY2hfZGVzICAgID0gIHgtKC0xMjApDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1ByeF91cF9wY2hfZGVzOw0KKyAgICANCisgICAgLypJbnRlZ2VyKDAsMSwyLDMpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UG93ZXJfcmFtcF9zdGVwOw0KKyAgICAvKkludGVnZXIoMSwyLDQsOCk6IE1heGl1bSBudW1iZXJzIG9mIFNZTkNfVUwgVHJhbnNtaXNzaW9ucyBpbiBhIHBvd2VyDQorICAgICAgIHJhbXBpbmcgc2VxdWVuY2UNCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWF4X3N5bmNfdWxfdHJhbnNtaXNzaW9uczsNCisgICAgICAgIA0KKyAgICAvKj4+UFJBQ0gtRlBBQ0gqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQcmFjaF9mcGFjaF9udW07DQorICAgIFRfelREX1BfcHJhY2hfZnBhY2hfaW5mbyAgICAgICAgICAgICAgICAgdFByYWNoX2ZwYWNoX2luZm9bWl9URF9QX01BWF9QUkFDSF9GUEFDSF07ICAgIA0KKw0KKyAgICAvKlJBQ0ggVEZTKi8NCisgICAgLypJbnRlZ2VyKDEwLDIwLDQwLDgwKSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1R0aTsNCisgICAgLyoNCisgICAgICAgIEVudW1lcmF0ZWQoTm8gY29kaW5nLENvbnZvbHV0aW9uYWwsVHVyYm8pDQorICAgICAgICAwOk5vIGNvZGluZywxOkNvbnZvbHV0aW9uYWwsMjpUdXJibw0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDaGFubmVsX2NvZGluZ190eXBlOw0KKyAgICANCisgICAgLyoNCisgICAgSW50ZWdlcigxLi5oaVJNKQ0KKyAgICAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdSYXRlX21hdGNoaW5nX2F0dHJpYnV0ZTsNCisgICAgLypJbnRlZ2VyKDAsOCwxMiwxNiwyNCkqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDcmNfc2l6ZTsNCisgICAgDQorICAgIC8qMTAuMy42LjU5IFByaW1hcnkgY2NwY2ggdHggcG93ZXINCisgICAgICAgIEludGVnZXIoNi4uNDMpZEJtDQorICAgICovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYlByaW1hcnlfY2NwY2hfdHhfcG93ZXI7DQorICAgIC8qbWF4aW11bSBhbGxvd2VkIHVsIHR4IHBvd2VyDQorICAgICAgICBJbnRlZ2VyKC01MC4uMzMpDQorICAgICAgICBiTWF4X2FsbG93ZWRfdWxfdHhfcG93ZXIgPSAoeCAtKC01MCkpDQorICAgICAgICANCisgICAgKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TWF4X2FsbG93ZWRfdWxfdHhfcG93ZXI7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1VwcGNoX2NoaXBfc2hpZnQ7DQorfVRfelREX1BfYWRkX3ByYWNoX3JlcTsNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyDUrdPvo7paX1BfUkFDSF9QUk9DRURVUkVfUkVRX0V2KCBVTUFDLT5QSFkgKSwgWl9QX0VSVUNDSF9QUk9DRURVUkVfUkVRX0V2KCBVTUFDLT5QSFkgKQ0KKyDLtcP3OiANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnX2lkOw0KKw0KKyAgICAvKkJpdCBzdHJpbmcoOCksIHRoZSB2YWx1ZSAxIG9mIGEgYml0IGluZGljYXRlcyB0aGUgU1lOQ19VTCBjb2RlIGluZGV4IGlzIGF2YWlsYWJsZSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0F2YWlsYWJsZV9zeW5jX3VsX2NvZGVzX2luZGljZXM7DQorICAgIC8qU3ViY2hhbm5lbF9zaXplX3R5cGU6IMih1rUxLDIsNCw4DQorICAgIDE6c2l6ZTEsICBpbmRpY2F0ZXMgdGhhdCBhbGwgc3ViY2hhbm5lbHMgYXJlIGF2YWlsYWJsZQ0KKyAgICAyOnNpemUyLA0KKyAgICA0OnNpemU0LA0KKyAgICA4OnNpemU4Ki8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U3ViY2hhbm5lbF9zaXplX3R5cGU7DQorICAgIC8qY29ycmVzcG9uZGluZyB0aGUgc2l6ZTIsc2l6ZTQsc2l6ZTgqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdBdmFpbGFibGVfc3ViY2hhbm5lbF9zaXplOw0KKw0KKyAgICAvKndMYXN0RmxhZ9a4yr5VTUFDtcRSQUNIvdPI67n9s8zW0LTLtM7Kx7fx0tHOqrXaTW1heLTOo6y8tNfuuvPSu7TOoaMNCisgICAgICAwOiCyu8rH1+6689K7tM6ho7TLyrHO78DtsuPTprzM0Pi7urTmtdrSu7TOy/nQr7T4tcRSQUNIyv2+3aO7DQorICAgICAgMTog1+6689K7tM6jrE1BQ7Lj0tG+rbTvtb3X7rTz1ti0q7TOyv2ho7TLyrHO78DtsuPQ6Mm+s/27urTmtcRSQUNIyv2+3aGjKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TGFzdEZsYWc7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorDQorICAgIFRfelREX1BfYWRkX3ByYWNoX3JlcSAgICAgICAgICAgICAgICAgICAgdFByYWNoUGFyYTsNCit9VF96VERfUF9SQUNIX1BST0NFRFVSRV9SRVE7DQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogICAgICAgICAgICAgICAgICAgICAgICAgzt7P39fK1LTF5NbDz+C52L3Tv9q2qNLlRU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogICAgICAgICAgICAgICAgICAgICAgICAgy6vEo0dBUM/gudi907/aICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorI2lmZGVmIE1VTFRJX0lSQVRfMjk2Mw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgVVJSQ0EtPlREIFBIWSAgICBaX1BfR1NNX0lOQUNUX1RJTUVfUkVRX0V2DQorICAgILmmxNw6ICAgICAgICAgIDJH1vfEo8q9yrGjrEdTTc2o1qpUREQgTDFTtcRnYXDKsbzk0MXPoqO7DQorICAgIL3hubk6ICAgICAgICAgIFRfelBfZ3NtX2luYWN0aXZlX3RpbWVfcmVxDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQoreyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1N0b3JlRmxnOyAgICANCisgICAgICAgICAgIA0KKyAgICBEV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR3R3NtSW5hY3RpdmVUaW1lOw0KKw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdOdW1SZW1haW5pbmdHYXBzOyANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U2VhcmNoUHJpb01vZGU7ICAgDQorDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NsdXN0ZXJUeXBlOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdJZGxlRnJhbWVPZmZzZXQ7ICAgDQorDQorICAgIFNIT1JUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0dzbVRpbWluZ0NvcnJlY3Rpb247DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfSBUX3pQU19URF9QX2luYWN0aXZlX3RpbWVfcmVxLFRfelREX1BfaW5hY3RpdmVfdGltZV9yZXE7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBQSFktPlVSUkEgICAgIFpfUF9VTVRTX1RJTUVSX1NOQVBTSE9UX0lORF9Fdg0KKyAgICC5psTcOiAgICAgICAgICBMMVPJz7GotcS/7NXVyrG85KO7DQorICAgIL3hubk6ICAgICAgICAgIFRfelBfdW10c19zbmFwc2hvdF9pbmQNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3QNCit7ICAgIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3U3ViU2ZuOyAgLypVTVRTIMv4tOa1xHNmbtfT1qG6xSovDQorDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0NoaXBPZmZzZXQ7ICAvKlVNVFPL+LTmyrHU2rG+19PWocTatcRjaGlwxqvSxiovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmdzOw0KK30gVF96VERfUF91bXRzX3NuYXBzaG90X2luZDsNCisjZW5kaWYNCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgIFVSUkNBL1VSUkMtPlBIWSAgICAgTDFHX1VNVFNfSURMRV9QRVJJT0RfUkVQTU9ERV9SRVFfRVYNCisgICAguabE3DogICAgICAgICAgM0fW98Sjyr3KsaOsUFPF5NbDTDFTtcRnYXDEo8q9o7sNCisgICAgveG5uTogICAgICAgICAgVF96VERfUF91bXRzX2lkbGVfUGVyaW9kUmVwX3JlcQ0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdA0KK3sgICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOyAgICANCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UmVwb3J0aW5nTW9kZTsgICAgLyowOiBub3QgcmVwcm90IGdhcCwgMTpyZXBvcnQgZ2FwKi8NCisgICAgRFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd0dhcElkOyAgLyrO1crW0PLB0LrFKi8NCit9IFRfelREX1BfdW10c19pZGxlX1BlcmlvZFJlcF9yZXE7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKyAgICBQSFktPlVSUkNBICAgICBaX1BfVU1UU19JTkFDVElWRV9USU1FX0lORF9Fdg0KKyAgICC5psTcOiAgICAgICAgICBMMVPJz7GotcRnYXDKsbzko7sNCisgICAgveG5uTogICAgICAgICAgVF96UF91bXRzX2luYWN0X3RpbWVfaW5kDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTdGFydENoaXA7ICAgIC8qsb5nYXDG8Mq8teO+4MDrsb7X09ahxvDKvLXjtcTGq9LGo6y8tGdhcNTasb7X09ah1tC1xM671sOjrLWlzrujukNISVAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdMZW5ndGhDaGlwOyAgIC8qsb5nYXC1xLOktsijrLWlzrujukNISVAqLw0KK30gVF96VERfUF9nYXBfaW5mb19pbl9zdWJmcmFtZTsNCisNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1N0YXJTdWJ0U2ZuOyAgICAgICAgICAgLyrG8Mq8tcRzZm7X09ahusWjrLe2zqejujAtODE5MSovDQorDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mSW5hY3RpdmVTdWJmcmFtZTsgLyqz1tD4tcTX09ahs6S2yCovICAgDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd051bU9mR2FwSW5TdWJGcmFtZTsgICAgLyrU2tK7uPbX09ah1tBnYXC1xLj2yv0qLw0KKw0KKyAgICBUX3pURF9QX2dhcF9pbmZvX2luX3N1YmZyYW1lICAgICAgICAgICAgIGF0R2FwSW5mb0luU3ViRnJhbWVbWl9URF9QX01BWF9HQVBfTlVNXTsgLyrU2tK7uPbX09ah1tC492dhcLXEzrvWwyovDQorICAgIERXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdHYXBJZDsgIC8qztXK1tDywdC6xSovDQorfSBUX3pURF9QX3VtdHNfaW5hY3RfdGltZV9pbmQ7DQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICAgICAgUlJDLT5QSFkNCisgICAgICAgILmmxNw6DQorICAgICAgICAgICAgICAgINCt0unVu82o1qrO78DtsuPKzbfF18rUtA0KKyAgICAgICAgveG5uToNCisgICAgICAgICAgICAgICAgVF96VERfUF9SZWxfcmVxDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfelREX1BfUmVsX3JlcTsgDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICAgICAgUEhZLT5SUkMNCisgICAgICAgILmmxNw6DQorICAgICAgICAgICAgICAgIM7vwO2y482o1qrQrdLp1bvKzbfF18rUtMi3yM8NCisgICAgICAgIL3hubk6DQorICAgICAgICAgICAgICAgIFRfelREX1BfUmVsX2NuZg0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQordHlwZWRlZiBzdHJ1Y3R7DQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pURF9QX1JlbF9jbmY7IA0KKw0KKyNpZmRlZiBSOV9TVVBQT1JUDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgICAgICBMMVQ8LT5QSFkNCisgICAgICAgILmmxNw6DQorICAgICAgICAgICAgICAgMS5UREQg1vfEo8q9z8JEQ0jMrL2rzfiy4MXk1sO1xEdBUNDFz6K0+Lj4zu/A7bLjo6zSu7e9w+a94s72s/bS7Ma1tcRHQVChow0KKyAgICAgICAgICAgICAgIMHt0ru3vcPmsdy/qs34suC4+Mbky/vWxsq9uaTX97XEyrG85FBfVERfRENIX0dBUF9DT05GSUdfUkVRX0VWICAgICAobWFjKSgptaXOu6OpDQorICAgICAgICC94bm5OiAgVF96VERfUF9NZWFzR2FwQ29uZmlnX1JlcQ0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCAgICAgICAgICAgICAgICB3UGF0dGVybklkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgIHdBY3RpdmVGbGc7ICAvKjE9YkFjdGl2ZUZsZyCx7cq+vKS77qGjMLHtyr7IpbvuKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICB3UGVyaW9kOy8qR0FQxKPQzbXE1ti4tNbcxtqjrLWlzrvKx87ez97WoaOoMTBtc6OpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICB3TWVhc1B1cnBvc2U7LyoxPdLsxrUgo6wyPVJBVCovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgd09mZnNldDsvKkdBUMSj0M3W2Li01tzG2sTao6xHQVDG8Mq8teMutaXOu8rHo6gxMG1zo6kqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgIHdMZW5ndGg7LyogR0FQxKPQzbPW0PjKsbzkLLWlzrvKx87ez97WoaOobXOjqSovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgd1RzQml0bWFwOy8qIEdBUMSj0M3E2rXEw7+49tfT1qHKsc+21bzTw8fpv/ajrLHIzNjOu9bDMbHtyr5HQVDVvNPDo6y007XNtb2437XaMLHIzNix7cq+yrHPtjAqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KK31UX3pURF9QX3VtdHNfR2FwUGF0dGVybjsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICB3R2FwUGF0dGVybk51bTsNCisgICAgVF96VERfUF91bXRzX0dhcFBhdHRlcm4gICAgICAgYXRHYXBQYXR0ZXJuTGlzdFs2XTsNCit9VF96VERfUF9NZWFzR2FwQ29uZmlnX1JlcTsNCisjZW5kaWYgLyogUjlfU1VQUE9SVCAqLw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICAgICBMMVQ8LT5QSFkNCisgICAgICAgILmmxNw6DQorICAgICAgICAgICAgICAgICAyLiAgVEREzqq4qMSjyr3PwqOsytW1vbXER0FQxeTWw1BfSVJBVF9HQVBfQ09ORklHX1JFUV9FVg0KKyAgICAgICAgveG5uTogICBUX3pURF9QX0lyYXRHYXBDb25maWdfUmVxDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKw0KKw0KKyNpZiAoZGVmaW5lZCAgKF9DSElQX1pYMjk3NTAyKSkNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRCAgICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICAgIHdJZGxlT3JDb25uZWN0RmxnOy8qVETOqrio1sbKvcqx1vfWxsq9tcTXtMyso6zIoda1zqowse3Kvr/Vz9DMrMih1rXOqjGx7cq+way908ysKi8NCisgICAgV09SRCAgICAgICAgICAgICAgIHdPZmY7LypHQVDG8Mq8tePGq9LGLrWlzrvKx6OoNW1zo6kqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgd09mZkNoaXA7LypHQVDG8Mq8teMuQ0hJUMar0sajqGNoaXBzo6ks1ebV/bXER0FQxvDKvLXjysd3T2Zmc2V0K3dPZmZDaGlwKi8NCisgICAgRFdPUkQgICAgICAgICAgICAgIGR3TGVuZ3RoOy8qIEdBUMSj0M2z1tD4yrG85Cy1pc67ysejqGNoaXBzo6kqLw0KK31UX3pURF9QX0lyYXRHYXBDb25maWdfUmVxOw0KKw0KKyNlbHNlDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQgICAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgICB3SWRsZU9yQ29ubmVjdEZsZzsvKlREzqq4qNbGyr3Ksdb31sbKvbXE17TMrKOsyKHWtc6qMLHtyr6/1c/QzKzIoda1zqoxse3KvsGsvdPMrCovDQorICAgIFdPUkQgICAgICAgICAgICAgICB3U3RhcnRTdWJTZm47LypHQVDG8Mq8tePWobrFKi8NCisgICAgV09SRCAgICAgICAgICAgICAgIHdTdGFydE9mZkNoaXA7LypHQVDG8Mq8teMuQ0hJUMar0sajqGNoaXBzo6ks1ebV/bXER0FQxvDKvLXjysd3U3RhcnRTdWJTZm4rd1N0YXJ0T2ZmQ2hpcCovDQorICAgIERXT1JEICAgICAgICAgICAgICBkd0xlbmd0aDsvKiBHQVDEo9DNs9bQ+MqxvOQstaXOu8rHo6hjaGlwc6OpKi8NCit9VF96VERfUF9JcmF0R2FwQ29uZmlnX1JlcTsNCisjZW5kaWYNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICBMMVQtPlBIWQ0KKyAgICC5psTcOg0KKyAgICAgICAgICAgICAgICDH68fzIM7vwO2y482j1rnKudPDR0FQDQorICAgIM/7z6K8sL3hubk6ICAgICB6UFNfVERfUF9BQk9SVF9JUkFUX0dBUF9SRVFfRXYNCisgICAgICAgICAgICAgICAgICAgVF96VERfUF9BQk9SVF9JUkFUX0dBUF9SRVENCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgV09SRCAgICAgICAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgICAgICAgd1BhZGRpbmc7DQorfVRfelREX1BfQUJPUlRfSVJBVF9HQVBfUkVROw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgIFBIWS0+TDFUDQorICAgILmmxNw6DQorICAgICAgICAgICAgICAgICDO78DtsuPK1bW9xuTL+9bGyr3K1bvYR0FQtcTP+8+iuvOjrLK71NrKudPDR0FQtcTIt8jPDQorICAgIM/7z6K8sL3hubk6ICAgICB6UFNfVERfUF9BQk9SVF9JUkFUX0dBUF9DTkZfRXYNCisgICAgICAgICAgICAgICAgICAgWl9QX0FCT1JUX0lSQVRfR0FQX0NORg0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdCANCit7IA0KKyAgICBXT1JEICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgV09SRCAgICAgICAgICAgICB3UGFkZGluZzsNCit9VF96VERfUF9BQk9SVF9JUkFUX0dBUF9DTkY7DQorLyoNCisgICAgUlJDLT5QSFkNCisgICAgveG5uTpUX3pURF9QX1VsX3BoeV9jaF9jdHJsX3JlcQ0KKyAgICDTw82+OtDeuMTJz9DQzu/A7dDFtcC1xL/Y1sbQxc+iDQorKi8NCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3TXNnSWQ7IA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICAvKszYyuLNu7eiyfqzycqxxtoqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdTcGVjX2J1cnN0X2dlbmVyYXRpb25fcGVyaW9kOy8qKMih1rUwLDIsNCw4LDE2LDMyLDY0LDEyOCwyNTYstaXOu2ZyYW1lOzCx7cq+srvG9LavVUwgRFBDSCBEVFgsxuTT4Na1tPqx7cb0tq9VTCBEUENIIERUWCkqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVbF9TeW5jX1N0ZXBfU2l6ZTsvKkludGVnZXIoMS4uOCkqLw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVbF9TeW5jX0ZyZXE7LypJbnRlZ2VyKDEuLjgpKi8NCisgICAgV09SRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3UFJYaHNfc2ljaDsvKr32xeTWw0hTRFBByrHT0NCnLEludGVnZXIoLTEyMC4uLTU4KTt3UFJYaHNfc2ljaCAgICA9ICAgeC0oLTEyMCk7eCA9IHdQUlhoc19zaWNoIC0gMTIwOyovDQorICAgIFdPUkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1RwY19zdGVwX3NpemU7Lyq99sXk1sNIU0RQQcqx09DQpyxJbnRlZ2VyKDEsMiwzKSovIA0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdVbF9kcGNoX3Bvd2VyX2N0cmxfaW5mb19mbGc7LyrJz8/Cuaa/2NDFz6K1xLHq1r7OuywxtPqx7dPQuaa/2NDFz6IsMLT6se3O3rmmv9jQxc+iKi8NCisgICAgLypVcGxpbmsgZHBjaCBwb3dlciBjb250cm9sIGluZm8qLw0KKyAgICBUX3pURF9QX3VsX2RwY2hfcG93ZXJfY3RybCAgICAgICAgICAgICAgICAgIHRVbF9kcGNoX3Bvd2VyX2N0cmxfaW5mbzsNCit9VF96VERfUF9VbF9waHlfY2hfY3RybF9yZXE7DQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisgICAgTDFUL0wxVy0+UEhZDQorICAgIMrCvP6julBfVERfWlRQQ0dfUkVRX0VWDQorICAgILmmxNw6DQorICAgICAgICDQ3rjEL7Lp0a9URM7vwO2y48Xk1sOyzsr9oaMNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0IA0KK3sNCisgICAgV09SRCAgICAgICB3TXNnSWQ7DQorICAgIFdPUkQgICAgICAgd0NtZDsgICAgICAvKiDD/MHuusWjrLbU06ayu82stcTO78DtsuO5psTcICovDQorICAgIFdPUkQgICAgICAgYXdWYWxGZ1taX1pUUENHX1ZBTEZHX05VTV07ICAgLyogse3KvmFkd1ZhbMrHt/G05tTao6wwse3KvrK7tObU2qOsMbHtyr605tTaICovDQorICAgIERXT1JEICAgICAgYWR3VmFsW1pfWlRQQ0dfVkFMRkdfTlVNXTsgICAgLyogss7K/cHQse2jrNDeuMQvtsHIobXEzu/A7bLjss7K/aOsss7K/cq1vMq6rNLl08nO78DtsuO4+LP2ICovDQorfVRfelREX1BfWnRwY2dfUmVxOw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorICAgIFBIWS0+TDFUDQorICAgIMrCvP6julBfVERfWlRQQ0dfQ05GX0VWDQorICAgILmmxNw6DQorICAgICAgICDQ3rjEL7Lp0a9URM7vwO2y48Xk1sOyzsr9tcTP7NOmz/vPoqGjDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCANCit7DQorICAgIFdPUkQgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgIHdDbWQ7ICAgICAgLyogw/zB7rrFo6y21NOmsrvNrLXEzu/A7bLjuabE3KOsYk1vZGU9MC8xtrzT0NCnICovDQorICAgIFdPUkQgICAgICAgd1JzbHQ7ICAgICAvKiCx7cq+yejWw73hufujrFpfVFJVRcno1sOzybmmo6xaX0ZBTFNFyejWw8qnsNwgIHdDbWTOqsno1sPD/MHuyrHT0NCnICovDQorICAgIFdPUkQgICAgICAgYXdWYWxGZ1taX1pUUENHX1BBUkFNX05VTV07IC8qsLTV1c/Cseq6zWR3VmFs1tDWtdK70ru21NOmo6xiVmFsMUZnWzBdse3KvmR3VmFsWzBdyse38bTm1Nos0sC0zsDgzcajrDCx7cq+sru05tTao6wxse3KvrTm1NoqLw0KKyAgICBMT05HICAgICAgIGFsVmFsW1pfWlRQQ0dfUEFSQU1fTlVNXTsgICAvKrLOyv0xL7LOyv0yoa2jrNDeuMQvtsHIobXEzu/A7bLjss7K/aOsss7K/cq1vMq6rNLl08nO78DtsuO4+LP2Ki8NCit9VF96VERfUF9adHBjZ19DbmY7DQorDQorI2VuZGlmICAgICAgICAvLyAvIFpQU19URFBTX1BIWV9JTlRFUkZBQ0VfSA0KKw0KKw0KKw0KZGlmZiAtLWdpdCBhL3B1Yi9pbmNsdWRlL3Rvb2xzL1pzcFRyYWNlLmggYi9wdWIvaW5jbHVkZS90b29scy9ac3BUcmFjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMyYWUxNmQKLS0tIC9kZXYvbnVsbAorKysgYi9wdWIvaW5jbHVkZS90b29scy9ac3BUcmFjZS5oCkBAIC0wLDAgKzEsODggQEAKKyNpZm5kZWYgWlNQVFJBQ0VfSF8NCisjZGVmaW5lIFpTUFRSQUNFX0hfDQorDQorI2RlZmluZSBaQ0FUX1pQU19CVUZGRVJfU0laRSAgICAgICAgICAgICAgICAoMHgwMDAxMDAwMFVMPj5DUFVfU0hJRlQpDQorDQorI2lmbmRlZiBERFJfQkFTRV9BRERSX1RPT0xfSUNQDQorZXh0ZXJuIHVuc2lnbmVkIGxvbmcgWkNBVF9QU18yX1BIWV9CVUZGRVJfQkFTRTsNCitleHRlcm4gdW5zaWduZWQgbG9uZyBaQ0FUX1BIWV8yX1BTX0JVRkZFUl9CQVNFOw0KKyNlbmRpZg0KKw0KKy8vLy9QSFktWkNBVA0KKyNkZWZpbmUgWkNBVF9QSFlfMl9QU19CVUZGRVJfU0laRSAgICAgICAgICAgKDB4MDAwNDAwMDBVTD4+Q1BVX1NISUZUKQ0KKw0KKyNkZWZpbmUgWkNBVF9QSFlfTE9HX0JBU0VfQUREUiAgICAgICAgICAgICAgKFpDQVRfUEhZXzJfUFNfQlVGRkVSX0JBU0UpDQorI2RlZmluZSBaQ0FUX1BIWV9MT0dfVU5JVF9PUkRFUiAgICAgICAgICAgICAoMTQgLSBDUFVfU0hJRlQpICAgICAgICAgICAgICAvKiAxNktCICovDQorI2RlZmluZSBaQ0FUX1BIWV9MT0dfVU5JVF9TSVpFICAgICAgICAgICAgICAoMVVMPDxaQ0FUX1BIWV9MT0dfVU5JVF9PUkRFUikNCisjZGVmaW5lIFpDQVRfUEhZX0xPR19VTklUX05VTSAgICAgICAgICAgICAgIChaQ0FUX1BIWV8yX1BTX0JVRkZFUl9TSVpFID4+IFpDQVRfUEhZX0xPR19VTklUX09SREVSKQ0KKyNkZWZpbmUgWkNBVF9QSFlfTE9HX1VOSVRfSU5ERVgoYWRkcikgICAgICAgKCgodW5zaWduZWQgbG9uZylhZGRyIC0gWkNBVF9QSFlfTE9HX0JBU0VfQUREUikgPj4gWkNBVF9QSFlfTE9HX1VOSVRfT1JERVIpDQorI2RlZmluZSBaQ0FUX1BIWV9MT0dfVU5JVF9IRUFERVIoaW5kZXgpICAgICAoKFRfWkNBVF9QaHlfTG9nX1VuaXRfSGVhZGVyICopKFpDQVRfUEhZX0xPR19CQVNFX0FERFIgKyAoKHVuc2lnbmVkIGxvbmcpaW5kZXggPDwgWkNBVF9QSFlfTE9HX1VOSVRfT1JERVIpKSkNCisNCisjZGVmaW5lIFpDQVRfUEhZX1NURF9MT0dfT0ZGU0VUICAgICAgICAgICAgICgyOFVMPj5DUFVfU0hJRlQpIC8qIHNpemVvZihUX0NPTU1fVFlQRSArIFRfWkNBVF9IRUFERVIpICovDQorI2RlZmluZSBaQ0FUX1BIWV9QUlRfTE9HX09GRlNFVCAgICAgICAgICAgICAoNDBVTD4+Q1BVX1NISUZUKSAvKiBzaXplb2YoVF9DT01NX1RZUEUgKyBUX1pDQVRfSEVBREVSICsgVF9aQ0FUX0RCR19IRUFERVIpICovDQorDQorI2RlZmluZSBMT0dfVEQgICgxKQ0KKyNkZWZpbmUgTE9HX0xURSAoMikNCisjZGVmaW5lIExPR19XICAgKDMpDQorI2RlZmluZSBMT0dfU0lHICg0KQ0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICB1bnNpZ25lZCBsb25nIHR5cGU7DQorICAgIHVuc2lnbmVkIGxvbmcgbGVuOw0KK30gVF9aQ0FUX1BoeV9Mb2dfVW5pdF9IZWFkZXI7DQorDQorI2RlZmluZSBaQ0FUX1BIWV9MT0dfVU5JVF9IRUFEICAgICAgICAgICAgIChJUkFNX0JBU0VfQUREUl9aQ0FUX1BIWV9MT0cpDQorI2RlZmluZSBaQ0FUX1BIWV9MT0dfVU5JVF9UQUlMICAgICAgICAgICAgIChaQ0FUX1BIWV9MT0dfVU5JVF9IRUFEICsgKDQ+PkNQVV9TSElGVCkpDQorI2RlZmluZSBaQ0FUX1BIWV9MT0dfRnJlZV9VTklUX0JVRiAgICAgICAgIChaQ0FUX1BIWV9MT0dfVU5JVF9UQUlMICsgKDQ+PkNQVV9TSElGVCkpDQorI2RlZmluZSBaQ0FUX1BIWV9MT0dfRnJlZV9VTklUX0xFTiAgICAgICAgICg2ND4+Q1BVX1NISUZUKSAvKiAoMTYgKiA0KUIgKi8NCisNCisjZGVmaW5lIFpDQVRfUEhZX0xPR19PRkYgICAgICAgICAgICAgICAgICAgKFpDQVRfUEhZX0xPR19VTklUX0hFQUQgKyAoMTY+PkNQVV9TSElGVCkgKyBaQ0FUX1BIWV9MT0dfRnJlZV9VTklUX0xFTikgLyogtuDUpMH0wcs419a92iAqLw0KKw0KKy8vLy9QSFk8LT5QUyByaW5nYnVmZmVyKFREKQ0KKyNkZWZpbmUgWkNBVF9QSFlfTE9HX0NPTlRST0xfU0laRSAgICAgICAgICAgKDB4MjAwVUw+PkNQVV9TSElGVCkNCisjZGVmaW5lIFpDQVRfUEhZX0xPR19DT05UUk9MX0xFTiAgICAgICAgICAgIChaQ0FUX1BIWV9MT0dfQ09OVFJPTF9TSVpFIC0gKDQgPj4gQ1BVX1NISUZUKSkNCisNCisjZGVmaW5lIFpDQVRfVERfTE9HX0NPTlRST0xfQkFTRV9BRERSICAgICAgKFpDQVRfUFNfMl9QSFlfQlVGRkVSX0JBU0UpDQorI2RlZmluZSBaQ0FUX1REX0xPR19DT05UUk9MX1dQT0lOVEVSICAgICAgIChaQ0FUX1REX0xPR19DT05UUk9MX0JBU0VfQUREUikgDQorI2RlZmluZSBaQ0FUX1REX0xPR19DT05UUk9MX1JQT0lOVEVSICAgICAgIChaQ0FUX1REX0xPR19DT05UUk9MX1dQT0lOVEVSICsgKDIgPj4gQ1BVX1NISUZUKSkNCisjZGVmaW5lIFpDQVRfVERfTE9HX0NPTlRST0xfQ09OVEVOVCAgICAgICAgKFpDQVRfVERfTE9HX0NPTlRST0xfUlBPSU5URVIgKyAoMiA+PiBDUFVfU0hJRlQpKQ0KKw0KKy8vLy9QSFk8LT5QUyByaW5nYnVmZmVyKExURSkNCisjZGVmaW5lIFpDQVRfTFRFX0xPR19DT05UUk9MX0JBU0VfQUREUiAgICAgIChaQ0FUX1REX0xPR19DT05UUk9MX0JBU0VfQUREUiArIFpDQVRfUEhZX0xPR19DT05UUk9MX1NJWkUpDQorI2RlZmluZSBaQ0FUX0xURV9MT0dfQ09OVFJPTF9XUE9JTlRFUiAgICAgICAoWkNBVF9MVEVfTE9HX0NPTlRST0xfQkFTRV9BRERSKSANCisjZGVmaW5lIFpDQVRfTFRFX0xPR19DT05UUk9MX1JQT0lOVEVSICAgICAgIChaQ0FUX0xURV9MT0dfQ09OVFJPTF9XUE9JTlRFUiArICgyID4+IENQVV9TSElGVCkpDQorI2RlZmluZSBaQ0FUX0xURV9MT0dfQ09OVFJPTF9DT05URU5UICAgICAgICAoWkNBVF9MVEVfTE9HX0NPTlRST0xfUlBPSU5URVIgKyAoMiA+PiBDUFVfU0hJRlQpKQ0KKw0KKy8vLy9QSFk8LT5QUyByaW5nYnVmZmVyKFcpDQorI2RlZmluZSBaQ0FUX1dfTE9HX0NPTlRST0xfQkFTRV9BRERSICAgICAgKFpDQVRfTFRFX0xPR19DT05UUk9MX0JBU0VfQUREUiArIFpDQVRfUEhZX0xPR19DT05UUk9MX1NJWkUpDQorI2RlZmluZSBaQ0FUX1dfTE9HX0NPTlRST0xfV1BPSU5URVIgICAgICAgKFpDQVRfV19MT0dfQ09OVFJPTF9CQVNFX0FERFIpIA0KKyNkZWZpbmUgWkNBVF9XX0xPR19DT05UUk9MX1JQT0lOVEVSICAgICAgIChaQ0FUX1dfTE9HX0NPTlRST0xfV1BPSU5URVIgKyAoMiA+PiBDUFVfU0hJRlQpKQ0KKyNkZWZpbmUgWkNBVF9XX0xPR19DT05UUk9MX0NPTlRFTlQgICAgICAgIChaQ0FUX1dfTE9HX0NPTlRST0xfUlBPSU5URVIgKyAoMiA+PiBDUFVfU0hJRlQpKQ0KKw0KKy8vLy9QSFk8LT5QUyByaW5nYnVmZmVyKFNJRykNCisjZGVmaW5lIFpDQVRfU0lHX0xPR19DT05UUk9MX0JBU0VfQUREUiAgICAgIChaQ0FUX1dfTE9HX0NPTlRST0xfQkFTRV9BRERSICsgWkNBVF9QSFlfTE9HX0NPTlRST0xfU0laRSkNCisjZGVmaW5lIFpDQVRfU0lHX0xPR19DT05UUk9MX1dQT0lOVEVSICAgICAgIChaQ0FUX1NJR19MT0dfQ09OVFJPTF9CQVNFX0FERFIpIA0KKyNkZWZpbmUgWkNBVF9TSUdfTE9HX0NPTlRST0xfUlBPSU5URVIgICAgICAgKFpDQVRfU0lHX0xPR19DT05UUk9MX1dQT0lOVEVSICsgKDIgPj4gQ1BVX1NISUZUKSkNCisjZGVmaW5lIFpDQVRfU0lHX0xPR19DT05UUk9MX0NPTlRFTlQgICAgICAgIChaQ0FUX1NJR19MT0dfQ09OVFJPTF9SUE9JTlRFUiArICgyID4+IENQVV9TSElGVCkpDQorDQorLy8vL1pDQVQtVEQNCisjZGVmaW5lIFpDQVRfVERfUFNfVE9fUEhZX0JVRkZFUl9CQVNFX0FERFIgIChaQ0FUX1NJR19MT0dfQ09OVFJPTF9CQVNFX0FERFIgKyBaQ0FUX1BIWV9MT0dfQ09OVFJPTF9TSVpFKQ0KKyNkZWZpbmUgWkNBVF9URF9QU19UT19QSFlfQlVGRkVSX1NJWkUgICAgICAgKDB4MDAwMDAyMDBVTD4+Q1BVX1NISUZUKQ0KKw0KKy8vLy9aQ0FULUxURQ0KKyNkZWZpbmUgWkNBVF9MVEVfUFNfVE9fUEhZX0JVRkZFUl9CQVNFX0FERFIgKFpDQVRfVERfUFNfVE9fUEhZX0JVRkZFUl9CQVNFX0FERFIgKyBaQ0FUX1REX1BTX1RPX1BIWV9CVUZGRVJfU0laRSkNCisjZGVmaW5lIFpDQVRfTFRFX1BTX1RPX1BIWV9CVUZGRVJfU0laRSAgICAgICgweDAwMDAwMjAwVUw+PkNQVV9TSElGVCkNCisNCisvLy8vWkNBVC1XQ0RNQQ0KKyNkZWZpbmUgWkNBVF9XX1BTX1RPX1BIWV9CVUZGRVJfQkFTRV9BRERSICAgKFpDQVRfTFRFX1BTX1RPX1BIWV9CVUZGRVJfQkFTRV9BRERSICsgWkNBVF9MVEVfUFNfVE9fUEhZX0JVRkZFUl9TSVpFKQ0KKyNkZWZpbmUgWkNBVF9XX1BTX1RPX1BIWV9CVUZGRVJfU0laRSAgICAgICAgKDB4MDAwMDAyMDBVTD4+Q1BVX1NISUZUKQ0KKw0KKy8vLy9aQ0FULVNJRw0KKyNkZWZpbmUgWkNBVF9TSUdfUFNfVE9fUEhZX0JVRkZFUl9CQVNFX0FERFIgKFpDQVRfV19QU19UT19QSFlfQlVGRkVSX0JBU0VfQUREUiArIFpDQVRfV19QU19UT19QSFlfQlVGRkVSX1NJWkUpDQorI2RlZmluZSBaQ0FUX1NJR19QU19UT19QSFlfQlVGRkVSX1NJWkUgICAgICAoMHgwMDAwMDIwMFVMPj5DUFVfU0hJRlQpDQorDQorI2RlZmluZSBaQ0FUX1BTXzJfUEhZX0JVRkZFUl9TSVpFICAgICAgICAgICAoWkNBVF9QSFlfTE9HX0NPTlRST0xfU0laRSArIFpDQVRfUEhZX0xPR19DT05UUk9MX1NJWkUgKyBaQ0FUX1BIWV9MT0dfQ09OVFJPTF9TSVpFICsgWkNBVF9QSFlfTE9HX0NPTlRST0xfU0laRSArIFwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBaQ0FUX1REX1BTX1RPX1BIWV9CVUZGRVJfU0laRSArIFpDQVRfTFRFX1BTX1RPX1BIWV9CVUZGRVJfU0laRSArIFpDQVRfV19QU19UT19QSFlfQlVGRkVSX1NJWkUgKyBaQ0FUX1NJR19QU19UT19QSFlfQlVGRkVSX1NJWkUpDQorI2VuZGlmDQorDQpkaWZmIC0tZ2l0IGEvcHViL2luY2x1ZGUvdG9vbHMvcGh5X2x0ZV9sb2dfaWYuaCBiL3B1Yi9pbmNsdWRlL3Rvb2xzL3BoeV9sdGVfbG9nX2lmLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjJmODE3ZgotLS0gL2Rldi9udWxsCisrKyBiL3B1Yi9pbmNsdWRlL3Rvb2xzL3BoeV9sdGVfbG9nX2lmLmgKQEAgLTAsMCArMSwxMTQyIEBACisjaWZuZGVmIF9QSFlfTFRFX0xPR19JRl9IDQorI2RlZmluZSBfUEhZX0xURV9MT0dfSUZfSA0KKw0KKyNpZm5kZWYgWlBIWV9ERUJVR19UTVRfU0laRQ0KKyNkZWZpbmUgWlBIWV9ERUJVR19UTVRfU0laRSAgICAoKFVJTlQzMikxMCkgDQorI2VuZGlmDQorDQorI2lmbmRlZiBaUEhZX1NVQkZSQU1FU19QRVJfRlJBTUUNCisjZGVmaW5lIFpQSFlfU1VCRlJBTUVTX1BFUl9GUkFNRSAgICAgICAgICAgICAoKFVJTlQzMikxMCkNCisjZW5kaWYNCisvL0xURc7vwO2y48/7z6K94bn7zOUNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0xPR8Dg0M2jukxPR19UT09MX0xURV9QSFlfRUNTUl9QU1NJTkZPDQory7XD96O6UFNTIFJlc3VsdA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEMTYgd0hlYWRlcjsgICAgICAvKiC198rU0MXPosr9vt2w/Na4yr7Nt6Osucy2qM6qMHg2OUU4ICovDQorICAgIFdPUkQxNiB3TG9nVHlwZTo4OyAgIC8qIMrks/ZMT0fA4NDNo6y8+0VuZ0xvZ1R5cGW2qNLlKi8NCisgICAgV09SRDE2IHdQcm9jSWQ6ODsgICAgLyogtbHHsL34s8xJRCAqLw0KKwlXT1JEMTYgd1N1YkZyYW1lOjU7DQorCVdPUkQxNiB3RnJhbWU6MTE7DQorCVdPUkQxNiB3U3VwZXJTdWJGcmFtZTsNCisgICAgV09SRDE2IHdMZW47ICAgICAgICAgLyogyuSz9rX3ytTQxc+itcSzpLbIo6yyu7D8wKhFbmdMb2dIZWFkZXKjrLWlzrvX1r3aICovDQorICAgIFdPUkQxNiB3UmVzZXJ2ZWQ7DQorfVRfTHRlRW5nTG9nSGVhZGVyOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEMTYgd01zZ0lkOyAgICAgICAvKiCx6te8TE9HtcTP+8+iSUSjrL7fzOW0/brz0Pi2qNLlICovDQorICAgIFdPUkQxNiB3TXNnTGVuOyAgICAgIC8qILHq17xMT0e1xLOktsggKi8NCit9VF9MdGVFbmdTdGFuZGFyZE1zZzsgICAgLyogserXvExPR8rks/a1xNDFz6LNtyAqLw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEMTYgd01zZ0lkOyAgICAgICAvKiDX1Lao0uW08tOhtcTP+8+iSUQgKi8NCisgICAgV09SRDE2IHdQcmk6ODsgICAgICAgLyog19S2qNLltPLTobXE08XPyLy2ICovDQorICAgIFdPUkQxNiB3UGFyYU51bTo4OyAgIC8qINfUtqjS5bTy06G1xLLOyv249sr9ICovDQorfVRfTHRlRW5nUHJpbnRNc2c7ICAgICAgIC8qINfUtqjS5bTy06G1xNDFz6LNtyAqLw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEMTYgd01zZ0lkOyAgICAgICAvKiBXX1BIWdPr0K3S6dW7vdO/2s/7z6K1xElEICovDQorICAgIFdPUkQxNiB3TXNnTGVuOyAgICAgIC8qIMrks/a907/az/vPosTayN21xLOktsggKi8NCit9VF9MdGVFbmdIY2lNc2c7ICAgICAgICAgLyog0+vQrdLp1bu907/az/vPosrks/a1xNDFz6LNtyAqLw0KKw0KK3R5cGVkZWYgZW51bQ0KK3sNCisgICAgRV9MVEVfU1dBUF9IT09LID0gMCwNCisgICAgRV9MVEVfU0VORF9IT09LLA0KKyAgICBFX0xURV9UUkFDRV9IT09LLA0KK31FX0x0ZUhvb2tFdmVudElkOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEMTYgd0V2ZW50SWQ7ICAgICAvKiBIT09L0MXPorXEysK8/klEICovDQorICAgIFdPUkQxNiB3UGFyYTsgICAgICAgIC8qILbU09pTV0FQX0hPT0ujrHdQYXJhzqrEv7HqvfizzElEo7sNCisgICAgICAgICAgICAgICAgICAgICAgICAgttTT2lNFTkRfSE9PS6Osd1BhcmHOqreiy83P+8+iSUSjuw0KKyAgICAgICAgICAgICAgICAgICAgICAgICC21NPaVFJBQ0VfSE9PS6Osd1BhcmHOqrX3ytS4+tfZyv2+3SAqLw0KK31UX0x0ZUVuZ0hvb2tNc2c7ICAgICAgICAvKiBIT09LyuSz9rXE0MXPos23ICovDQorDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3RGF0YVR5cGU7ICAgIC8qINelyKHK/b7dtcTA4NDNo6y+38zltP2689D4tqjS5SAqLw0KKyAgICBXT1JEMTYgd0RhdGFMZW47ICAgICAvKiDXpcihyv2+3bXEs6S2yCAqLw0KK31UX0x0ZUVuZ0RhdGFEdW1wOyAgICAgICAvKiDK/b7d16XIoUxPR7XE0MXPos23ICovDQorDQorDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgICBVSU5UMzIgIGR3UHNzUGVha1ZhbDsgICAgLyogUFNTIFBlYWsgVmFsdWUgRGF0YSAqLw0KKyAgICAgVUlOVDMyICBkd1BlYWtQb3NpdGlvbjsgIC8qIFBlYWsgUG9zaXRpb24gKi8NCisgICAgIFVJTlQzMiAgZHdQc3NJbmRpY2llczsgICAvKiBQU1MgSW5kaWNpZXMgKi8NCit9VF96UEhZX1BTU0luZm87DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgICBVSU5UMTYgd1VhcmZjbjsgIC8qIMa1teMgKi8NCisJIFVJTlQxNiB3cGFkaW5nOw0KKyAgICAgVF96UEhZX1BTU0luZm8gIGF0UFNTSW5mb1sxNl07ICAgICAgICAgICAgICAgIA0KK31UX3pQSFlfVWFyZmNuUHNzSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyICAgICBkd1NGTjsgICAgLy/Ksbzk0MXPog0KKyAgICBUX3pQSFlfVWFyZmNuUHNzSW5mbyAgIGF0VWFyZmNuUHNzSW5mb1s0XTsgICAgDQorfVRfelBIWV9FQ1NSX1Bzc0luZm87DQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitMT0fA4NDNo7pMT0dfVE9PTF9MVEVfUEhZX0VDU1JfU0VSQ0VMTEZSTVRJTUlORw0KK8u1w/ejulNlcnZpbmcgQ2VsbCBGcmFtZSBUaW1pbmcNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyIGR3U0ZOOyAgICAvL8qxvOTQxc+iDQorICAgIA0KKyAgICBVSU5UMzIgZHdTdERsRnJtVGltZU9mZnNldDsgIC8qIERMIEZyYW1lIFRpbWluZyBPZmZzZSAqLw0KKyAgICBVSU5UMzIgZHdTdFVsRnJtVGltZU9mZnNldDsgIC8qIFVMIEZyYW1lIFRpbWluZyBPZmZzZSAqLw0KKyAgICBVSU5UMzIgZHdTdFVsVEE7ICAgICAgICAgICAgIC8qIFVMIFRpbWluZyBBZHZhbmNlICovDQorICAgIA0KKyAgICBVSU5UMTYgd0NoRGxGcm1UaW1lOyAgICAgICAgIC8qIENoYW5nZSBpbiBETCBGcmFtZSBUaW1pbmcgKi8NCisgICAgVUlOVDE2IHdDaFVsRnJtVGltZTsgICAgICAgICAvKiBDaGFuZ2UgaW4gVUwgRnJhbWUgVGltaW5nICovDQorfVRfelBIWV9FQ1NSX1NlckNlbGxGcm1UaW1pbmc7DQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitMT0fA4NDNo7pMT0dfVE9PTF9MVEVfUEhZX0VDU1JfU1NTSU5GTw0KK8u1w/ejulNTUyBSZXN1bHQNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDE2IHdDZWxsSWQ7ICAgICAgICAgICAvKiBCYXJyZWQgQ2VsbCBJRCAqLw0KK31UX3pQSFlfQmFycmVkQ2VsbElkOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICAgVUlOVDMyIGR3U1NTUGVha1ZhbDsgICAgLyogU1NTIFBlYWsgVmFsdWUgRGF0YSAqLw0KKyAgICAgVUlOVDMyIGR3U1NTUG9zaXRvbjsgICAgLyogU1NTIFBvc2l0aW9uICovDQorICAgICBVSU5UMzIgZHdDcE1vZGU7ICAgICAgICAvKiBDUCAqLw0KKyAgICAgVUlOVDMyIGR3SGFsZkZybUh5cHRoOyAgLyogSGFsZiBGcmFtZSBIeXBvdGhlc2lzICovDQorfVRfelBIWV9EZXRlY3RlZENlbGw7DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgVF96UEhZX0JhcnJlZENlbGxJZCBhdEJhcnJlZENlbGxJZFsxNl07ICAgICANCisgICBUX3pQSFlfRGV0ZWN0ZWRDZWxsIGF0RGV0ZWN0ZWRDZWxsWzMyXTsNCit9VF96UEhZX0VDU1JfU1NTSW5mbzsNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0xPR8Dg0M2jukxPR19UT09MX0xURV9QSFlfRUNTUl9TRVJDRUxMX01FQVNfUkVTVUxUDQory7XD96O6U2VydmluZyBDZWxsIE1lYXN1cmVNZW50IFJlc3VsdA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgZHdTRk47ICAgICAgICAgICAgIC8vyrG85NDFz6INCisgICAgVUlOVDE2IHdJc0lkbGVNb2RlOyAgICAgICAvKiBJcyBJZGxlIE1vZGUgKi8NCisgICAgVUlOVDE2IHdNZWFzQlc7ICAgICAgICAgICAvKiBNZWFzdXJlbWVudCBCVyAqLw0KKyAgICBVSU5UMTYgd0NlbGxJZDsgICAgICAgICAgIC8qIENlbGwgSUQgKi8NCisJVUlOVDE2IHdwYWRpbmc7ICAgICAgICAgICAvKiDO3tLi0uWjrDTX1r3attTG6yovIA0KKyAgICBVSU5UMzIgZHdSeFRpbWVPZmZzZXQ7ICAgIC8qIFRpbWluZyBPZmZzZXQgUnggKi8NCit9VF96UEhZX0VDU1JfU2VyQ2VsbE1lYXNSZXN1bHQ7DQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitMT0fA4NDNo7pMT0dfVE9PTF9MVEVfUEhZX0VDU1JfTkVCT1JDRUxMX01FQVNfUkVTVUxUDQory7XD96O6TmVpZ2hib3IgQ2VsbCBNZWFzdXJlbWVudHMgYW5kIFRyYWNraW5nIA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgZHdFYXJmY247ICAgICAvKiDGtbXjICovDQorICAgIFVJTlQzMiBkd0R1cGxleE1vZGU7IC8qICBUREQgb3IgRkREKi8NCisgICAgVUlOVDE2IHdDZWxsSWQ7ICAgICAgLyogINChx/hJRCAqLw0KKyAgICBVSU5UMTYgd0NwbW9kZTsgICAgICAvKiBDUCBtb2RlICovDQorfVRfelBIWV9DZWxsSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyIGR3U0ZOOyAgICAvL8qxvOTQxc+iDQorICAgIFRfelBIWV9DZWxsSW5mbyAgdENlbGxJbmZvOyAgICANCit9VF96UEhZX0VDU1JfTmVib3JDZWxsTWVhc1Jlc3VsdDsNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0xPR8Dg0M2jukxPR19UT09MX0xURV9QSFlfUEJDSF9JTkZPDQory7XD96O6UEJDSA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgZHdTRk47ICAgIC8vyrG85NDFz6INCisgICAgVUlOVDE2IHdTZXJDZWxsSWQ7ICAgIC8qIFNlcnZpbmcgQ2VsbCBJRCAqLw0KKyAgICBVSU5UMTYgd1RyYW5zQW50Q25mOyAgLyogVHJhbnNtaXQgQW50ZW5uYSBDb25maWcgKi8NCisgICAgVUlOVDE2IHdTZm5PZmZzZXQ7ICAgIC8qIFNGTiBPZmZzZXQgKi8NCisgICAgVUlOVDE2IHdDcmNWYWx1ZTsgICAgIC8qIENSQyAqLw0KK31UX3pQSFlfRUNTUl9QYmNoSW5mbzsNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0xPR8Dg0M2jukxPR19UT09MX0xURV9QSFlfR0xCX01JQl9JTkZPDQory7XD96O6TUlC0MXPog0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgZHdNaWJSZWZyZXNoRmxhZzsgIC8vTUlC0MXPorj80MKx6ta+o6zT0Lj80MLU8tbDMQ0KKyAgICBVSU5UMzIgZHdNaWJJbmZvOyAgICAgICAgIC8vTUlC0MXPog0KK30gVF96UEhZX0VDU1JfTWliSW5mbzsNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0xPR8Dg0M2jukxPR19UT09MX0xURV9QSFlfR0xCX0NTUl9NRUFTVVJFX0lORk8NCivLtcP3o7pSU1JQoaJSU1JRoaJSU1NJ0MXPog0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgZHdTZXJ2ZXJDZWxsSWQ7ICAvKiC3/s7x0KHH+ElEICovDQorICAgIA0KKyAgICBTSU5UMzIgc2R3Q3NybVJzc2k7ICAgICAvKiBSU1NJICovDQorICAgIFNJTlQzMiBzZHdDc3JtUnNycTsgICAgIC8qIFJTUlEgKi8NCisgICAgU0lOVDMyIHNkd0Nzcm1Sc3JwOyAgICAgLyogUlNSUCAqLw0KKyAgICANCisgICAgU0lOVDMyIHNkd0Nzcm1Sc3NpQW50MDsgLyogzOzP3zAgUlNTSSAqLw0KKyAgICBTSU5UMzIgc2R3Q3NybVJzc2lBbnQxOyAvKiDM7M/fMSBSU1NJICovDQorICAgIA0KKyAgICBTSU5UMzIgc2R3Q3NybVJzcnBBbnQwOyAvKiDM7M/fMCBSU1JQICovDQorICAgIFNJTlQzMiBzZHdDc3JtUnNycEFudDE7IC8qIMzsz98xIFJTUlAgKi8NCisgICAgDQorICAgIFNJTlQzMiBzZHdDc3JtUnNycUFudDA7IC8qIMzsz98wIFJTUlEgKi8NCisgICAgU0lOVDMyIHNkd0Nzcm1Sc3JxQW50MTsgLyogzOzP3zAgUlNSUSAqLw0KK31UX3pQSFlfRUNTUl9NZWFzdXJlSW5mbzsNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0xPR8Dg0M2jukxPR19UT09MX0xURV9QSFlfRExfUENGSUNIX0lORk8NCivLtcP3o7pQQ0ZJQ0jNs7zG0MXPog0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQoreyAgIA0KKyAgICBVSU5UMzIgICAgICAgICAgZHdTRk47ICAgIC8vyrG85NDFz6INCisgICAgVUlOVDE2ICAgICAgICAgICBhdWNEbENmaVRhYlsxMF07ICAgICAgICAgICAgLyrRrbu3zbO8xjEwuPbX09ahtcRDRknWtSovDQorICAgIFVJTlQzMiAgICAgICAgICBhZHdEbENmaVZhbHVlWzRdOyAgICAgICAgICAgLyrNs7zGsrvNrENGSda1tcS49sr9Ki8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd0RsQ2ZpVmFsdWVTdWJmWzEwXVs0XTsgICAvKrC019PWoc2zvMayu82sQ0ZJ1rW1xLj2yv0qLw0KK31UX1pQSFlfRURMX1BDRklDSF9JTkZPOw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorTE9HwODQzaO6TE9HX1RPT0xfTFRFX1BIWV9ETF9QSElDSF9JTkZPDQory7XD96O6UEhJQ0jNs7zG0MXPog0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgICAgICAgICAgZHdTRk47ICAgIC8vyrG85NDFz6INCisgICAgVUlOVDE2ICAgICAgICAgICB1Y05nOyAgICAgICAgICAgICAgICAgICAgICAgLyogTmcgKi8NCisgICAgVUlOVDE2ICAgICAgICAgICB1Y0hpRHVyYXRpb247ICAgICAgICAgICAgICAgLyogUEhJQ0ggRHVyYXRpb24gKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd1BoaWNoQWNrTnVtWzJdWzEwXTsgICAgICAvKiBQSElDSDGhojIgsLTX09ahtaW2wMDbvNPNs7zGICovDQorICAgIFVJTlQzMiAgICAgICAgICBhZHdQaGljaE5hY2tOdW1bMl1bMTBdOyAgICAgLyogUEhJQ0gxoaIyILC019PWobWltsDA27zTzbO8xiAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3UGhpY2hBY2tTdW1OdW1bMl07ICAgICAgIC8qIFBISUNIMaGiMiCwtNfctcTA27zTzbO8xiAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3UGhpY2hOYWNrU3VtTnVtWzJdOyAgICAgIC8qIFBISUNIMaGiMiCwtNfctcTA27zTzbO8xiAqLw0KKyAgICBVSU5UMTYgICAgICAgICAgIGF1Y1BoaWNoMUdycFsxMF07ICAgICAgICAgICAvKiBQSElDSDG1xNfpusUgICAgICAqLw0KKyAgICBVSU5UMTYgICAgICAgICAgIGF1Y1BoaWNoMVNlcVsxMF07ICAgICAgICAgICAvKiBQSElDSDG1xMCpxrXQ8sHQusUgICAgKi8NCisgICAgVUlOVDE2ICAgICAgICAgICBhdWNQaGljaDJHcnBbMTBdOyAgICAgICAgICAgLyogUEhJQ0gytcTX6brFICAgICAgKi8NCisgICAgVUlOVDE2ICAgICAgICAgICBhdWNQaGljaDJTZXFbMTBdOyAgICAgICAgICAgLyogUEhJQ0gytcTAqca10PLB0LrFICAgICovDQorICAgIFVJTlQzMiAgICAgICAgICBkd1BISUNIX0Fja051bTsNCisgICAgVUlOVDMyICAgICAgICAgIGR3UEhJQ0hfTmFja051bTsNCit9VF9aUEhZX0VETF9QSElDSF9JTkZPOw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorTE9HwODQzaO6TE9HX1RPT0xfTFRFX1BIWV9ETF9QRENDSF9JTkZPDQory7XD96O6UERDQ0jDpLzssuLNs7zG0MXPog0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgICAgICAgICAgZHdTRk47ICAgIC8vyrG85NDFz6INCisgICAgLypTdGF0aXN0aWMgU2ktUm50aSBEY2kgSW5mbyovDQorICAgIFVJTlQzMiAgICAgICAgICBhZHdTaVJudGlEY2kxQU51bVsxMF07ICAgICAgIC8qIFNpLVJudGkgRENJXzFBILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBhZHdTaVJudGlEY2kxQ051bVsxMF07ICAgICAgIC8qIFNpLVJudGkgRENJXzFDILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBkd1NpUm50aURjaTFBU3VtTnVtOyAgICAgICAgIC8qIFNpLVJudGkgRENJXzFBINfctcTA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBkd1NpUm50aURjaTFDU3VtTnVtOyAgICAgICAgIC8qIFNpLVJudGkgRENJXzFDINfctcTA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBkd1NpUm50aURjaVN1bU51bTsNCisgICAgDQorICAgIC8qU3RhdGlzdGljIFAtUm50aSBEY2kgSW5mbyovDQorICAgIFVJTlQzMiAgICAgICAgICBhZHdQUm50aURjaTFBTnVtWzEwXTsgICAgICAgIC8qIFAtUm50aSBEQ0lfMUEgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd1BSbnRpRGNpMUNOdW1bMTBdOyAgICAgICAgLyogUC1SbnRpIERDSV8xQyCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdQUm50aURjaTFBU3VtTnVtOyAgICAgICAgICAvKiBQLVJudGkgRENJXzFBINfctcTA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBkd1BSbnRpRGNpMUNTdW1OdW07ICAgICAgICAgIC8qIFAtUm50aSBEQ0lfMUMg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3UFJudGlEY2lTdW1OdW07DQorICAgIA0KKyAgICAvKlN0YXRpc3RpYyBSYS1SbnRpIERjaSBJbmZvKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd1JhUm50aURjaTFBTnVtWzEwXTsgICAgICAgLyogUmEtUm50aSBEQ0lfMUEgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd1JhUm50aURjaTFDTnVtWzEwXTsgICAgICAgLyogUmEtUm50aSBEQ0lfMUMgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3UmFSbnRpRGNpMUFTdW1OdW07ICAgICAgICAgLyogUmEtUm50aSBEQ0lfMUEg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3UmFSbnRpRGNpMUNTdW1OdW07ICAgICAgICAgLyogUmEtUm50aSBEQ0lfMUMg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3UmFSbnRpRGNpU3VtTnVtOw0KKyAgICANCisgICAgLypTdGF0aXN0aWMgQy1SbnRpIERjaSBJbmZvKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd0NSbnRpRGNpMU51bVsxMF07ICAgICAgICAgLyogQy1SbnRpIERDSV8xILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBhZHdDUm50aURjaTFBTnVtWzEwXTsgICAgICAgIC8qIEMtUm50aSBEQ0lfMUEgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd0NSbnRpRGNpMUJOdW1bMTBdOyAgICAgICAgLyogQy1SbnRpIERDSV8xQiCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3Q1JudGlEY2kxRE51bVsxMF07ICAgICAgICAvKiBDLVJudGkgRENJXzFEILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBhZHdDUm50aURjaTJOdW1bMTBdOyAgICAgICAgIC8qIEMtUm50aSBEQ0lfMiCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3Q1JudGlEY2kyQU51bVsxMF07ICAgICAgICAvKiBDLVJudGkgRENJXzJBILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBhZHdDUm50aURjaTJCTnVtWzEwXTsgICAgICAgIC8qIEMtUm50aSBEQ0lfMkIgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3Q1JudGlEY2kxU3VtTnVtOyAgICAgICAgICAgLyogQy1SbnRpIERDSV8xINfctcTA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBkd0NSbnRpRGNpMUFTdW1OdW07ICAgICAgICAgIC8qIEMtUm50aSBEQ0lfMUEg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3Q1JudGlEY2kxQlN1bU51bTsgICAgICAgICAgLyogQy1SbnRpIERDSV8xQiDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdDUm50aURjaTFEU3VtTnVtOyAgICAgICAgICAvKiBDLVJudGkgRENJXzFEINfctcTA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBkd0NSbnRpRGNpMlN1bU51bTsgICAgICAgICAgIC8qIEMtUm50aSBEQ0lfMiDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdDUm50aURjaTJBU3VtTnVtOyAgICAgICAgICAvKiBDLVJudGkgRENJXzJBINfctcTA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBkd0NSbnRpRGNpMkJTdW1OdW07ICAgICAgICAgIC8qIEMtUm50aSBEQ0lfMkIg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3Q1JudGlEY2lTdW1OdW07DQorICAgIA0KKyAgICAvKlN0YXRpc3RpYyBUcGMtUm50aSBEY2kgSW5mbyovDQorICAgIFVJTlQzMiAgICAgICAgICBhZHdUcGNSbnRpRGNpM051bVsxMF07ICAgICAgIC8qIFRwYy1SbnRpIERDSV8zILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBhZHdUcGNSbnRpRGNpM0FOdW1bMTBdOyAgICAgIC8qIFRwYy1SbnRpIERDSV8zQSCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdUcGNSbnRpRGNpM1N1bU51bTsgICAgICAgICAvKiBUcGMtUm50aSBEQ0lfMyDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdUcGNSbnRpRGNpM0FTdW1OdW07ICAgICAgICAvKiBUcGMtUm50aSBEQ0lfM0Eg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3UHVjY2hUcGNEY2kzM0FTdW1OdW07DQorICAgIFVJTlQzMiAgICAgICAgICBkd1B1c2NoVHBjRGNpMzNBU3VtTnVtOw0KKyAgICANCisgICAgLypTdGF0aXN0aWMgU3BzLVJudGkgRGNpIEluZm8qLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3U3BzUm50aURjaTFOdW1bMTBdOyAgICAgICAvKiBTcHMtUm50aSBEQ0lfMSCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3U3BzUm50aURjaTFBTnVtWzEwXTsgICAgICAvKiBTcHMtUm50aSBEQ0lfMUEgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd1Nwc1JudGlEY2kyTnVtWzEwXTsgICAgICAgLyogU3BzLVJudGkgRENJXzIgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd1Nwc1JudGlEY2kyQU51bVsxMF07ICAgICAgLyogU3BzLVJudGkgRENJXzJBILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBhZHdTcHNSbnRpRGNpMkJOdW1bMTBdOyAgICAgIC8qIFNwcy1SbnRpIERDSV8yQiCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdTcHNSbnRpRGNpMVN1bk51bTsgICAgICAgICAvKiBTcHMtUm50aSBEQ0lfMSDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdTcHNSbnRpRGNpMUFTdW5OdW07ICAgICAgICAvKiBTcHMtUm50aSBEQ0lfMUEg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3U3BzUm50aURjaTJTdW5OdW07ICAgICAgICAgLyogU3BzLVJudGkgRENJXzIg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3U3BzUm50aURjaTJBU3VuTnVtOyAgICAgICAgLyogU3BzLVJudGkgRENJXzJBINfctcTA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBkd1Nwc1JudGlEY2kyQlN1bk51bTsgICAgICAgIC8qIFNwcy1SbnRpIERDSV8yQiDX3LXEwNu80yAqLw0KKyAgICANCisgICAgLypTdGF0aXN0aWMgVGMtUm50aSBEY2kgSW5mbyovDQorICAgIFVJTlQzMiAgICAgICAgICBhZHdUY1JudGlEY2kxTnVtWzEwXTsgICAgICAgIC8qIFRjLVJudGkgRENJXzEgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd1RjUm50aURjaTFBTnVtWzEwXTsgICAgICAgLyogVGMtUm50aSBEQ0lfMUEgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3VGNSbnRpRGNpMVN1bU51bTsgICAgICAgICAgLyogVGMtUm50aSBEQ0lfMSDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdUY1JudGlEY2kxQVN1bU51bTsgICAgICAgICAvKiBUYy1SbnRpIERDSV8xQSDX3LXEwNu80yAqLw0KKyAgICANCisgICAgLypTdGF0aXN0aWMgRGNpIFRvdGFsIE51bWJlciovICAvKiDJz8r219u6z8DgzbO8xiAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3VmFsaWREY2kwXzFOdW1bMTBdOyAgICAgICAvKiBEQ0kwXzEgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd1ZhbGlkRGNpMF8yTnVtWzEwXTsgICAgICAgLyogRENJMF8yILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBhZHdWYWxpZERjaTFOdW1bMTBdOyAgICAgICAgIC8qIERDSTEgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd1ZhbGlkRGNpMUFOdW1bMTBdOyAgICAgICAgLyogRENJMUEgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd1ZhbGlkRGNpMUNOdW1bMTBdOyAgICAgICAgLyogRENJMUMgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd1ZhbGlkRGNpMk51bVsxMF07ICAgICAgICAgLyogRENJMiCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3VmFsaWREY2kyQU51bVsxMF07ICAgICAgICAvKiBEQ0kyQSCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3VmFsaWREY2kyQk51bVsxMF07ICAgICAgICAvKiBEQ0kyQiCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdWYWxpZERjaTBfMVN1bU51bTsgICAgICAgICAvKiBEQ0kwXzEg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3VmFsaWREY2kwXzJTdW1OdW07ICAgICAgICAgLyogRENJMF8yINfctcTA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBkd1ZhbGlkRGNpMVN1bU51bTsgICAgICAgICAgIC8qIERDSTEg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3VmFsaWREY2kxQVN1bU51bTsgICAgICAgICAgLyogRENJMUEg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3VmFsaWREY2kxQ1N1bU51bTsgICAgICAgICAgLyogRENJMUMg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3VmFsaWREY2kyU3VtTnVtOyAgICAgICAgICAgLyogRENJMiDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdWYWxpZERjaTJBU3VtTnVtOyAgICAgICAgICAvKiBEQ0kyQSDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdWYWxpZERjaTJCU3VtTnVtOyAgICAgICAgICAvKiBEQ0kyQiDX3LXEwNu80yAqLw0KKyAgICANCisgICAgVUlOVDMyICAgICAgICAgIGR3UGRjY2hEbEdyYW50Q250OyAgICAgICAgICAgLyogytrIqM2zvMajrNfctcTA27zT1rWjrMK3suDI7bz+0v3I66Osv8nTycnPyvZEQ0nQxc+iwNu807XDtb0qLw0KK31UX1pQSFlfRURMX1BEQ0NIX0lORk87DQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitMT0fA4NDNo7pMT0dfVE9PTF9MVEVfUEhZX0RMX1BEU0NIX0lORk8NCivLtcP3o7pQRFNDSL3iwuvNs7zG0MXPog0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgICAgICAgICAgZHdTRk47ICAgIC8vyrG85NDFz6INCisgICAgLypTdGF0aXN0aWMgQy1SbnRpIFBEU0NIIERlY29kZSBJbmZvKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd0NSbnRpVGJDcmNPa051bVsyXVsxMF07ICAgLyogVEIxoaIyIEMtUm50aSC94sLrIENSQ19PSyCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3Q1JudGlUYkNyY0Vyck51bVsyXVsxMF07ICAvKiBUQjGhojIgQy1SbnRpIL3iwusgQ1JDX0VSUiCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3Q1JudGlUYkNyY09rU3VtTnVtWzJdOyAgICAvKiBUQjGhojIgQy1SbnRpIL3iwusgQ1JDX09LINfctcTA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBhZHdDUm50aVRiQ3JjRXJyU3VtTnVtWzJdOyAgIC8qIFRCMaGiMiBDLVJudGkgveLC6yBDUkNfRVJSINfctcTA27zTICovDQorICAgIA0KKyAgICAvKlN0YXRpc3RpYyBTaS1SbnRpIFBEU0NIIERlY29kZSBJbmZvKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd1NpUm50aUNyY09rTnVtWzEwXTsgICAgICAgLyogU2ktUm50aSC94sLrIENSQ19PSyCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3U2lSbnRpQ3JjRXJyTnVtWzEwXTsgICAgICAvKiBTaS1SbnRpIL3iwusgQ1JDX0VSUiCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdTaVJudGlDcmNPa1N1bU51bTsgICAgICAgICAvKiBTaS1SbnRpIL3iwusgQ1JDX09LINfctcTA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBkd1NpUm50aUNyY0VyclN1bU51bTsgICAgICAgIC8qIFNpLVJudGkgveLC6yBDUkNfRVJSINfctcTA27zTICovDQorICAgIA0KKyAgICAvKlN0YXRpc3RpYyBQLVJudGkgUERTQ0ggRGVjb2RlIEluZm8qLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3UFJudGlDcmNPa051bVsxMF07ICAgICAgICAvKiBQLVJudGkgveLC6yBDUkNfT0sgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd1BSbnRpQ3JjRXJyTnVtWzEwXTsgICAgICAgLyogUC1SbnRpIL3iwusgQ1JDX0VSUiCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdQUm50aUNyY09rU3VtTnVtOyAgICAgICAgICAvKiBQLVJudGkgveLC6yBDUkNfT0sg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3UFJudGlDcmNFcnJTdW1OdW07ICAgICAgICAgLyogUC1SbnRpIL3iwusgQ1JDX0VSUiDX3LXEwNu80yAqLw0KKyAgICANCisgICAgLypTdGF0aXN0aWMgUmEtUm50aSBQRFNDSCBEZWNvZGUgSW5mbyovDQorICAgIFVJTlQzMiAgICAgICAgICBhZHdSYVJudGlDcmNPa051bVsxMF07ICAgICAgIC8qIFJhLVJudGkgveLC6yBDUkNfT0sgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd1JhUm50aUNyY0Vyck51bVsxMF07ICAgICAgLyogUmEtUm50aSC94sLrIENSQ19FUlIgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3UmFSbnRpQ3JjT2tTdW1OdW07ICAgICAgICAgLyogUmEtUm50aSC94sLrIENSQ19PSyDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdSYVJudGlDcmNFcnJTdW1OdW07ICAgICAgICAvKiBSYS1SbnRpIL3iwusgQ1JDX0VSUiDX3LXEwNu80yAqLw0KKyAgICANCisgICAgLypTdGF0aXN0aWMgU3BzLVJudGkgUERTQ0ggRGVjb2RlIEluZm8qLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3U3BzUm50aUNyY09rTnVtWzEwXTsgICAgICAvKiBTcHMtUm50aSC94sLrIENSQ19PSyCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3U3BzUm50aUNyY0Vyck51bVsxMF07ICAgICAvKiBTcHMtUm50aSC94sLrIENSQ19PSyCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdTcHNSbnRpQ3JjT2tTdW1OdW07ICAgICAgICAvKiBTcHMtUm50aSC94sLrIENSQ19PSyDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdTcHNSbnRpQ3JjRXJyU3VtTnVtOyAgICAgICAvKiBTcHMtUm50aSC94sLrIENSQ19PSyDX3LXEwNu80yAqLw0KKyAgICANCisgICAgLypTdGF0aXN0aWMgVGMtUm50aSBQRFNDSCBEZWNvZGUgSW5mbyovDQorICAgIFVJTlQzMiAgICAgICAgICBhZHdUY1JudGlDcmNPa051bVsxMF07ICAgICAgIC8qIFRjLVJudGkgveLC6yBDUkNfT0sgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd1RjUm50aUNyY0Vyck51bVsxMF07ICAgICAgLyogVGMtUm50aSC94sLrIENSQ19PSyCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdUY1JudGlDcmNPa1N1bU51bTsgICAgICAgICAvKiBUYy1SbnRpIL3iwusgQ1JDX09LINfctcTA27zTICovDQorICAgIFVJTlQzMiAgICAgICAgICBkd1RjUm50aUNyY0VyclN1bU51bTsgICAgICAgIC8qIFRjLVJudGkgveLC6yBDUkNfT0sg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3UERTQ0hfVEIxQ3JjQWNrTnVtOw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdQRFNDSF9UQjFDcmNOYWNrTnVtOw0KKyAgICBVSU5UMzIgICAgICAgICAgZHdQRFNDSF9UQjJDcmNBY2tOdW07DQorICAgIFVJTlQzMiAgICAgICAgICBkd1BEU0NIX1RCMkNyY05hY2tOdW07DQorfVRfWlBIWV9FRExfUERTQ0hfSU5GTzsNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0xPR8Dg0M2jukxPR19UT09MX0xURV9QSFlfRExfSEFSUV9JTkZPDQory7XD96O6z8LQ0EhBUlHQxc+izbO8xg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgICAgICAgICAgZHdTRk47ICAgIC8vyrG85NDFz6INCisgICAgVUlOVDMyICAgICAgICAgIGFkd1JldlRiMVJ2TnVtWzRdOyAgICAgICAgICAgLyogVEIxILj319S1pbbAwNu8082zvMYgKi8NCisgICAgVUlOVDMyICAgICAgICAgIGFkd1JldlRiMlJ2TnVtWzRdOyAgICAgICAgICAgLyogVEIyILj319S1pbbAwNu8082zvMYgKi8NCisgICAgDQorICAgIC8qz8LQ0MSjv+m490hhcnEgSUQgQUNLoaJOQUNLyv0qLw0KKyAgICAvKiDX7rTz1qez1jE1uPZIYXJxIFByb2Nlc3O1xEJMRVLNs7zGICovDQorICAgIC8qz8LQ0CBUQjEqLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3RGxUYjFIYXJxSWRBY2tbMTVdOyAgICAgICAvKiBUQjEgMTW49khBUlEgSUS1xEFDS9DFz6KjrLj3SUTX3LXEwNu806Oswrey4LXI0v3I6yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3RGxUYjFIYXJxSWROYWNrWzE1XTsgICAgICAvKiBUQjEgMTW49khBUlEgSUS1xE5BQ0vQxc+io6y490lE19y1xMDbvNOjrMK3suC1yNL9yOsgKi8NCisgICAgDQorICAgIC8qz8LQ0CBUQjIqLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3RGxUYjJIYXJxSWRBY2tbMTVdOyAgICAgICAvKiBUQjIgMTW49khBUlEgSUS1xEFDS9DFz6KjrLj3SUTX3LXEwNu806Oswrey4LXI0v3I6yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgYWR3RGxUYjJIYXJxSWROYWNrWzE1XTsgICAgICAvKiBUQjIgMTW49khBUlEgSUS1xE5BQ0vQxc+io6y490lE19y1xMDbvNOjrMK3suC1yNL9yOsgKi8NCisgICAgDQorICAgICAvKiDPwtDQtdrSu7TOoaK12rb+tM6horXayP20zqGitdrLxLTO1ti0q7PJuaa0zsr9ICovDQorICAgIFVJTlQzMiBhZHdEbEhhcnFTdWNjTnVtWzJdWzRdOyAgICAgICAgICAgICAgIC8qIFRCMaGiVEIy1ti0q7PJuaa0zsr9zbO8xqOsINfctcTA27zT1rWjrMK3suDI7bz+0v3I6yAqLw0KK31UX1pQSFlfRURMX0hBUlFfSU5GTzsNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0xPR8Dg0M2jukxPR19UT09MX0xURV9QSFlfRExfUEFfSU5GTw0KK8u1w/ejus/C0NC5psLKt9bF5NDFz6LNs7zGDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFVJTlQxNiAgICAgICAgICAgdWNQb3dlckE7ICAgICAgLyogwLTX1ERlZGljYXRlZM/7z6K1xNPD09pQRFNDSLmmwsqyubOltcSyzsr9ICovDQorICAgIFVJTlQxNiAgICAgICAgICAgdWNQb3dlckI7ICAgICAgLyogwLTX1ENvbW1vbs/7z6K1xNPD09pQRFNDSLmmwsqyubOltcSyzsr9ICovDQorfVRfWlBIWV9FRExfUEFfSU5GTzsNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0xPR8Dg0M2jukxPR19UT09MX0xURV9QSFlfRExfRkxPV19JTkZPDQory7XD96O6z8LQ0MH3wb/Qxc+izbO8xg0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgICAgICAgICAgZHdQZWFrRmxvdzsNCisgICAgVUlOVDMyICAgICAgICAgIGR3TWVhbkZsb3c7DQorICAgIFVJTlQzMiAgICAgICAgICBkd0JsZXJBY2tDb3VudDsgICAgIC8qT25seSBTdGF0aXN0aWMgQy1SbnRpIFBkc2NoKi8NCisgICAgVUlOVDMyICAgICAgICAgIGR3Qmxlck5hY2tDb3VudDsgICAgLypPbmx5IFN0YXRpc3RpYyBDLVJudGkgUGRzY2gqLw0KK31UX1pQSFlfRURMX0ZMT1dfSU5GTzsNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0VWRU5UwODQzaO6TE9HX1RPT0xfTFRFX1BIWV9ETF9EQ0lfSU5GTw0KK8u1w/ejuiANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyICBkd1NGTjsNCisgICAgVUlOVDMyICBkd1Jlc291cmNlOw0KKyAgICBVSU5UMzIgIGFkd1Bkc2NoQm1wWzE0XTsNCisgICAgVUlOVDE2ICAgY1JhVHlwZTsNCisgICAgVUlOVDE2ICAgY1JiTnVtOw0KKyAgICBVSU5UMTYgICBjUmJTdGFydDsNCisgICAgVUlOVDE2ICAgY1JiTGVuZ3RoOw0KKyAgICBVSU5UMTYgICBjSGFycUlkOw0KKyAgICBVSU5UMTYgICBjVGIxTWNzOw0KKyAgICBVSU5UMTYgICBjVGIyTWNzOw0KKyAgICBVSU5UMTYgICBjVGIxTmRpOw0KKyAgICBVSU5UMTYgICBjVGIyTmRpOw0KKyAgICBVSU5UMTYgICBjVGIxUnY7DQorICAgIFVJTlQxNiAgIGNUYjJSdjsNCisgICAgVUlOVDE2ICAgY0RhaUlkeDsNCit9VF96UEhZX0RjaUluZm87ICANCisNCisvKiDPwtDQRENJtfe2yNDFz6IgKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgIFRfelBIWV9EY2lJbmZvIGF0RGNpSW5mb1sxMF07ICAgICAgICAgICAgICAgICAgICAgICAgLyogMTC49tfT1qG1xLWxx7BEQ0nQxc+iICovDQorfVRfWlBIWV9FRExfRENJX0lORk87DQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitMT0dfVE9PTF9MVEVfUEhZX0VYVF9QVUNDSEZNVF9TVEFUX0lORk8NCivLtcP3o7ogUFVDQ0ggRk1UILjxyr3Ns7zG0MXPoiANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3U0ZOOyAgICAvL8qxvOTQxc+iDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVB1Y2NoRm10MUNudDsgICAgLyogUFVDQ0ggRm9ybWF0MSDNs7zGINfctcTA27zT1rUqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFQdWNjaEZtdDFhQ250OyAgIC8qIFBVQ0NIIEZvcm1hdDFBIM2zvMYg19y1xMDbvNPWtSovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVB1Y2NoRm10MWJDbnQ7ICAgLyogUFVDQ0ggRm9ybWF0MUIgzbO8xiDX3LXEwNu809a1Ki8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhUHVjY2hGbXQyQ250OyAgICAvKiBQVUNDSCBGb3JtYXQyIM2zvMYg19y1xMDbvNPWtSovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVB1Y2NoRm10MmFDbnQ7ICAgLyogUFVDQ0ggRm9ybWF0MkEgzbO8xiDX3LXEwNu809a1Ki8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhUHVjY2hGbXQyYkNudDsgICAvKiBQVUNDSCBGb3JtYXQyQiDNs7zGINfctcTA27zT1rUqLw0KK31UX3pQSFlfRVVMX1B1Y2NoRm10U3RhdGlzdGljc0luZm87DQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitMT0dfVE9PTF9MVEVfUEhZX0VYVF9CVU5MRElOR0FOX1NUQVRfSU5GTw0KK8u1w/ejuiDNs7zGz8LQ0L3iwuu1xEJ1bmxkaW5n0MXPoiANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3U0ZOOyAgICAvL8qxvOTQxc+iDQorCS8vUFVDQ0i3tMChDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVB1Y2NoQnVubGRpbmdBY2tDbnQ7ICAgICAgIC8qILWlwuvX1s/CUFVDQ0ggQnVuZGxpbme687XEQUNLzbO8xiDX3LXEwNu809a1ICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVB1Y2NoQnVubGRpbmdOYWNrQ250OyAgICAgIC8qILWlwuvX1s/CUFVDQ0ggQnVuZGxpbme687XETkFDS82zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFQdWNjaEJ1bmxkaW5nQWNrQWNrQ250OyAgICAvKiDBvcLr19bPwlBVQ0NIIEJ1bmRsaW5nuvO1xFtBQ0sgQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFQdWNjaEJ1bmxkaW5nQWNrTmFja0NudDsgICAvKiDBvcLr19bPwlBVQ0NIIEJ1bmRsaW5nuvO1xFtBQ0sgTkFDS13Ns7zGINfctcTA27zT1rUgKi8NCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhUHVjY2hCdW5sZGluZ05hY2tBY2tDbnQ7ICAgLyogwb3C69fWz8JQVUNDSCBCdW5kbGluZ7rztcRbTkFDSyBBQ0tdzbO8xiDX3LXEwNu809a1ICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVB1Y2NoQnVubGRpbmdOYWNrTmFja0NudDsgIC8qIMG9wuvX1s/CUFVDQ0ggQnVuZGxpbme687XEW05BQ0sgTkFDS13Ns7zGINfctcTA27zT1rUgKi8NCisJDQorCS8vUFVTQ0i3tMChDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVB1c2NoQnVubGRpbmdBY2tDbnQ7ICAgICAgIC8qILWlwuvX1s/CUFVTQ0ggQnVuZGxpbme687XEQUNLzbO8xiDX3LXEwNu809a1ICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVB1c2NoQnVubGRpbmdOYWNrQ250OyAgICAgIC8qILWlwuvX1s/CUFVTQ0ggQnVuZGxpbme687XETkFDS82zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFQdXNjaEJ1bmxkaW5nQWNrQWNrQ250OyAgICAvKiDBvcLr19bPwlBVU0NIIEJ1bmRsaW5nuvO1xFtBQ0sgQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFQdXNjaEJ1bmxkaW5nQWNrTmFja0NudDsgICAvKiDBvcLr19bPwlBVU0NIIEJ1bmRsaW5nuvO1xFtBQ0sgTkFDS13Ns7zGINfctcTA27zT1rUgKi8NCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhUHVzY2hCdW5sZGluZ05hY2tBY2tDbnQ7ICAgLyogwb3C69fWz8JQVVNDSCBCdW5kbGluZ7rztcRbTkFDSyBBQ0tdzbO8xiDX3LXEwNu809a1ICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVB1c2NoQnVubGRpbmdOYWNrTmFja0NudDsgIC8qIMG9wuvX1s/CUFVTQ0ggQnVuZGxpbme687XEW05BQ0sgTkFDS13Ns7zGINfctcTA27zT1rUgKi8NCisJDQorCQ0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdQZGNjaFVsR3JhbnRDbnQ7ICAgICAgICAgICAgICAvKiDK2siozbO8xiDX3LXEwNu809a1o6zCt7LgyO28/tL9yOsgKi8NCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3UHVzY2hEeW5QYWNrZXROdW07ICAgICAgICAgICAgLyogtq/MrLD8zbO8xiDX3LXEwNu809a1o6zCt7LgyO28/tL9yOsgKi8NCit9VF96UEhZX0VVTF9CdW5sZGluZ0FOU3RhdGlzdGljc0luZm87DQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitMT0dfVE9PTF9MVEVfUEhZX0VYVF9NVVRJUExFWEFOX1NUQVRfSU5GTw0KK8u1w/ejuiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2jXytS0zbO8xtDFz6IgDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1NGTjsgICAgLy/Ksbzk0MXPog0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoMEJpdHMwMENudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gw18rUtLXEW05BQ0sgTkFDS13Ns7zGINfctcTA27zT1rUgKi8NCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhTjFwdWNjaDBCaXRzMDFDbnQ7ICAgICAgICAgLyogUFVDQ0ggTXVsdGlwbGV4aW5nINGh1PFOMXB1Y2NoMNfK1LS1xFtOQUNLIEFDS13Ns7zGINfctcTA27zT1rUgKi8NCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhTjFwdWNjaDBCaXRzMTBDbnQ7ICAgICAgICAgLyogUFVDQ0ggTXVsdGlwbGV4aW5nINGh1PFOMXB1Y2NoMNfK1LS1xFtBQ0sgTkFDS13Ns7zGINfctcTA27zT1rUgKi8NCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhTjFwdWNjaDBCaXRzMTFDbnQ7ICAgICAgICAgLyogUFVDQ0ggTXVsdGlwbGV4aW5nINGh1PFOMXB1Y2NoMNfK1LS1xFtBQ0sgQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwkNCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhTjFwdWNjaDFCaXRzMDBDbnQ7ICAgICAgICAgLyogUFVDQ0ggTXVsdGlwbGV4aW5nINGh1PFOMXB1Y2NoMdfK1LS1xFtOQUNLIE5BQ0tdzbO8xiDX3LXEwNu809a1ICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYU4xcHVjY2gxQml0czAxQ250OyAgICAgICAgIC8qIFBVQ0NIIE11bHRpcGxleGluZyDRodTxTjFwdWNjaDHXytS0tcRbTkFDSyBBQ0tdzbO8xiDX3LXEwNu809a1ICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYU4xcHVjY2gxQml0czEwQ250OyAgICAgICAgIC8qIFBVQ0NIIE11bHRpcGxleGluZyDRodTxTjFwdWNjaDHXytS0tcRbQUNLIE5BQ0tdzbO8xiDX3LXEwNu809a1ICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYU4xcHVjY2gxQml0czExQ250OyAgICAgICAgIC8qIFBVQ0NIIE11bHRpcGxleGluZyDRodTxTjFwdWNjaDHXytS0tcRbQUNLIEFDS13Ns7zGINfctcTA27zT1rUgKi8NCisJDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYU4xcHVjY2gyQml0czAwQ250OyAgICAgICAgIC8qIFBVQ0NIIE11bHRpcGxleGluZyDRodTxTjFwdWNjaDLXytS0tcRbTkFDSyBOQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoMkJpdHMwMUNudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gy18rUtLXEW05BQ0sgQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoMkJpdHMxMENudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gy18rUtLXEW0FDSyBOQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoMkJpdHMxMUNudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gy18rUtLXEW0FDSyBBQ0tdzbO8xiDX3LXEwNu809a1ICovDQorDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYU4xcHVjY2gzQml0czAwQ250OyAgICAgICAgIC8qIFBVQ0NIIE11bHRpcGxleGluZyDRodTxTjFwdWNjaDPXytS0tcRbTkFDSyBOQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoM0JpdHMwMUNudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gz18rUtLXEW05BQ0sgQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoM0JpdHMxMENudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gz18rUtLXEW0FDSyBOQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoM0JpdHMxMUNudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gz18rUtLXEW0FDSyBBQ0tdzbO8xiDX3LXEwNu809a1ICovDQorfVRfelBIWV9VTF9NdXRpcGxleGluZ0FOU3RhdGlzdGljc0luZm87DQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitMT0dfVE9PTF9MVEVfUEhZX0VYVF9TUkhBUlFTSU1VTF9TVEFUX0lORk8NCivLtcP3o7pTUiBIQVJRzbO8xtDFz6INCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3U0ZOOyAgICAvL8qxvOTQxc+iDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVNyQW5kSGFycUNudDsgICAgICAgICAgICAgIC8qIFBVQ0NIIFNSus1BQ0vSu8bwt7TAobXEzbO8xqOsucy2qNGh1PFGb3JtYXQgMWKjrLLpse3RodTxMrj2Yml0o7piKDEpLGIoMCm9+NDQtKvK5CDX3LXEwNu809a1ICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVNyQW5kSGFycUJpdHMwMENudDsgICAgICAgIC8qINGh1PFiKDEpPTAgYigwKT0wtcS49sr9INfctcTA27zT1rUgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhU3JBbmRIYXJxQml0czAxQ250OyAgICAgICAgLyog0aHU8WIoMSk9MCBiKDApPTG1xLj2yv0g19y1xMDbvNPWtSAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFTckFuZEhhcnFCaXRzMTBDbnQ7ICAgICAgICAvKiDRodTxYigxKT0xIGIoMCk9MLXEuPbK/SDX3LXEwNu809a1ICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVNyQW5kSGFycUJpdHMxMUNudDsgICAgICAgIC8qINGh1PFiKDEpPTEgYigwKT0xtcS49sr9INfctcTA27zT1rUgKi8NCit9VF96UEhZX1VMX1NySGFycVNpbXVsU3RhdGlzdGljc0luZm87DQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitMT0dfVE9PTF9MVEVfUEhZX0VYVF9DUUlIQVJRU0lNVUxTSU1VTF9TVEFUX0lORk8NCivLtcP3o7rJz9DQzbO8xkNRSdDFz6INCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3U0ZOOyAgICAvL8qxvOTQxc+iDQorICAgIA0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFDcWlBbmRIYXJxQ250OyAgICAgICAgICAgICAvKiBQVUNDSCBDUUm6zUFDS9K7xvC3tMChtcTNs7zGo6y5zLao0aHU8UZvcm1hdCAyYqOssumx7dGh1PEyuPZiaXSjumIoMSksYigwKb340NC0q8rkINfctcTA27zT1rUgKi8NCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhQ3FpQW5kSGFycUJpdHMwMENudDsgICAgICAgLyog0aHU8WIoMSk9MCBiKDApPTC1xLj2yv0g19y1xMDbvNPWtSAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFDcWlBbmRIYXJxQml0czAxQ250OyAgICAgICAvKiDRodTxYigxKT0wIGIoMCk9MbXEuPbK/SDX3LXEwNu809a1ICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYUNxaUFuZEhhcnFCaXRzMTBDbnQ7ICAgICAgIC8qINGh1PFiKDEpPTEgYigwKT0wtcS49sr9INfctcTA27zT1rUgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhQ3FpQW5kSGFycUJpdHMxMUNudDsgICAgICAgLyog0aHU8WIoMSk9MSBiKDApPTG1xLj2yv0g19y1xMDbvNPWtSAqLw0KKyAgICANCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhUGVyaW9kaWNDUUlDbnQ7ICAgICAgICAgICAgLyog1tzG2kNRSbe0wKG1xM2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFBcGVyaW9kaWNDUUlDbnQ7ICAgICAgICAgICAvKiBQVVNDSMnPt7TAobfH1tzG2kNRSbXEzbO8xiDX3LXEwNu809a1ICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVJpQ250OyAgICAgICAgICAgICAgICAgICAgIC8qIFJJt7TAobXEzbO8xiDX3LXEwNu809a1ICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVB1Y2NoUGVyaW9kaWNDUUlDbnQ7ICAgICAgIC8qIFBVQ0NIt7TAodbcxtpDUUm1xM2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFQdXNjaFBlcmlvZGljQ1FJQ250OyAgICAgICAvKiBQVVNDSLe0wKHW3MbaQ1FJtcTNs7zGINfctcTA27zT1rUgKi8NCisvLwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFQdXNjaEFwZXJpb2RpY0NRSUNudDsgICAgICAqIFBVU0NIyc+3tMCht8fW3MbaQ1FJtcTNs7zGLNPrZHdVbGFBcGVyaW9kaWNDUUlDbnTS4tLl0rvR+SDX3LXEwNu809a1ICovDQorICANCisgICAgLyog0tTPwje49kNRSbXEzbO8xtDFz6KjrL/J0tTT68K3suCyv7fWvfjQ0LrPsqKjrL/J0tS/vMLHsLTX09ahvfjQ0M2zvMYgKi8NCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGFkd1VsYUNxaVZhbFsxMF07ICAgICAgICAgICAgICAgLyogQ1FJ1rUgsLTX09aht9ax8M2zvMYgKi8NCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGFkd1VsYVJpVmFsWzEwXTsgICAgICAgICAgICAgICAgLyogUknWtSCwtNfT1qG31rHwzbO8xiAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgYWR3VWxhQ3FpRk5bMTBdOyAgICAgICAgICAgICAgICAvKiC3tMChQ1FJtcTWobrFICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBhZHdVbGFDcWlTRk5bMTBdOyAgICAgICAgICAgICAgIC8qILe0wKFDUUm1xNfT1qG6xSAqLw0KKw0KKwlVSU5UMTYJCQkJCQlhd0NxaVJlcG9ydFBlcmlvZEZsYWdbMTBdOyAgICAgIC8qINbcxtpDUUkgRmxhZyAqLw0KKwlVSU5UMTYJCQkJCQlhd1N1YkZyYW1lTnVtWzEwXTsgICAgICAgICAgICAgIC8qIFNJRNbQtcTX09ahusUgKi8NCisJVUlOVDE2CQkJCQkJYXdGcmFtZU51bVsxMF07ICAgICAgICAgICAgICAgICAvKiBTSUTW0LXE1qG6xSAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbE1jczsgICAgICAgICAgICAgICAgICAvL7amwPu/ydPDvdO/2lVMIE1DUyjJz9DQTUNTKU1DUyBTdGF0aXN0aWMgSW5mb3JtYXRpb24sv8nTw82ouf3QrdLptcO1vVFQU0tcMTZRQU1cNjRRQU0NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3Q1FJOyAgIA0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdQTUk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQTUkgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3Ukk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUkkgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3V2JDb2RlMENxaTsgICAgICAgICAgICAgICAgICAgLyogV2lkZWJhbmQgQ29kZTAgQ1FJICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1diQ29kZTFDcWk7ICAgICAgICAgICAgICAgICAgIC8qIFdpZGViYW5kIENvZGUxIENRSSAqLw0KKyAgICBTSU5UMzIgICAgICAgICAgICAgICAgICAgICAgc2R3UmFuazFTaW5yOyAgICAgICAgICAgICAgICAgICAvKiBSYW5rMSBTSU5SMCAqLw0KKyAgICBTSU5UMzIgICAgICAgICAgICAgICAgICAgICAgc2R3UmFuazJTaW5yMDsgICAgICAgICAgICAgICAgICAvKiBSYW5rMiBTSU5SMCAqLw0KKyAgICBTSU5UMzIgICAgICAgICAgICAgICAgICAgICAgc2R3UmFuazJTaW5yMTsgICAgICAgICAgICAgICAgICAvKiBSYW5rMiBTSU5SMSAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdUeERpdkZsYWc7ICAgICAgICAgICAgICAgICAgICAvKiBSYW5rIFNJTlIgvMbL47z1M2RibbHq1r4gKi8NCisJDQorfVRfelBIWV9FVUxfQ3FpSGFycVNpbXVsU3RhdGlzdGljc0luZm87DQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitMT0dfVE9PTF9MVEVfUEhZX1NSU1RYX1JFUE9SVA0KK8u1w/ejulNSUyDNs7zGDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgYlVlU3JzRW5hYmxlOyAgICAgICAgIC8qIFVFIFNSUyBFbmFibGUgyse38VVFyLe2qLeiU1JTKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICBiQ2VsbFNyc0VuYWJsZTsgICAgICAgLyogQ2VsbCBTUlMgRW5hYmxlICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgIGR3U3RhcnRSYjsgICAgICAgICAgICAvKiBTdGFydCBSQiAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICBkd1JiTnVtOyAgICAgICAgICAgICAgLyogUkLK/SAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICBkd1pjUm9vdDsgICAgICAgICAgICAgLyogWkMgUm9vdCAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICBkd0N5Y2xpY1NoaWZ0OyAgICAgICAgLyogQ3ljbGljIFNoaWZ0ICovDQorICANCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICBiVG9uZU9mZnNldEVuYWJsZTsgICAgLyogVG9uZSBPZmZzZXQgRW5hYmxlICovDQorfVRfelBIWV9TcnNUeF9SZXBvcnQ7Ly+1scewMTC49tfT1qHQxc+iDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1NGTjsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIMqxvOTQxc+iICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVNyc0NudDsgICAgICAgICAgICAgICAgICAgIC8qIFNSU7eiy821xM2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIJCQkJCQlhZHdkd1VsYVNyc0NvbW1TRkNudFsxMF07ICAgICAgIC8qIMbVzajX09aht6LLzVNSU7XEzbO8xiCwtNfT1qHA27zT1rUgKi8NCisJDQorCS8qINLUz8I0uPayzsr9xL/HsMO709C4s9a1stnX96OssbjTwyBiZWdpbiAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFTcnNGb3JUZGRTcGVjU0YxTGFzdFN5bWJDbnQ7ICAgICAgICAgICAgICAgICAvKiBURETM2Mri19PWoTHW0NfuuvPSu7j2t/u6xbeiU1JTtcTNs7zGo6yw/MCo1+6688G9uPa3+7rFtry3orXEx+m/9iDX3LXEwNu809a1ICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVNyc0ZvclRkZFNwZWNTRjFMYXN0U2Vjb25kU3ltYkNudDsgICAgICAgICAgIC8qIFRERMzYyuLX09ahMdbQtbnK/bXatv649rf7usW3olNSU7XEzbO8xqOssPzAqNfuuvPBvbj2t/u6xba8t6K1xMfpv/Yg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFTcnNGb3JUZGRTcGVjU0Y2TGFzdFN5bWJDbnQ7ICAgICAgICAgICAgICAgICAvKiBURETM2Mri19PWoTbW0NfuuvPSu7j2t/u6xbeiU1JTtcTNs7zGo6yw/MCo1+6688G9uPa3+7rFtry3orXEx+m/9iDX3LXEwNu809a1ICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVNyc0ZvclRkZFNwZWNTRjZMYXN0U2Vjb25kU3ltYkNudDsgICAgICAgICAgIC8qIFRERMzYyuLX09ahNtbQ1+6689K7uPa3+7rFt6JTUlO1xM2zvMajrLD8wKjX7rrzwb249rf7usW2vLeitcTH6b/2INfctcTA27zT1rUgKi8NCisJLyog0tTJzzS49rLOyv3Ev8eww7vT0Liz1rWy2df3o6yxuNPDIG92ZXIgKi8JDQorICAgIFRfelBIWV9TcnNUeF9SZXBvcnQgYXRTcnNUeF9SZXBvcnRbMTBdOy8vtbHHsDEwuPbX09ah0MXPoiAgICANCit9VF96UEhZX0VVTF9TcnNTdGF0aXN0aWNzSW5mbzsNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0xPR19UT09MX0xURV9QSFlfRVhUX1BSQUNIX1NUQVRfSU5GTw0KK8u1w/ejulByYWNoIM2zvMbQxc+iDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3QNCit7ICAgIA0KKyAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgICAgd1BhcmNoUHJlbUZybU5vOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBwcmVhbWJsZSDWobrFo6zCt7LgyO28/tL9yOsgKi8NCisgICAgVUlOVDE2ICAgICAgICAgICAgICAgICAgICAgICBjUGFyY2hQcmVtU3ViRnJtTm87ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHByZWFtYmxlINfT1qG6xaOswrey4MjtvP7S/cjrKNLUvLC05tTaMzLOu7XEKSAqLw0KKyAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgICAgIGNQYXJjaFByZW1JbmRleDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcHJlYW1ibGUgSUQgKi8NCisJVUlOVDE2CQkJCQkJY1ByYWNoQ29uZmlnSW5kZXg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiDQrdLp1bvWuMq+tbHHsFBIWb/J08O1xHByYWNoIHJlc291cmNloaPTw9Pa18rUtNGh1PHS1Lywu/HIoXByZWFtYmxltbHHsMv508O48cq9KDAsNjMpICovDQorCVVJTlQxNgkJCQkJCWNIaWdoU3BlZWRGbGFnOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogserWvrWxx7DQocf4wODQzSgxOrjfy9nQocf4LDA6t8e438vZKSAqLw0KKwlVSU5UMTYJCQkJCQl3TmNzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE5DU8v30v3WtSAqLw0KKwlVSU5UMTYJCQkJCQljUHJhY2hGcnFPZmZzZXQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHByYWNoIHJlc291cmNl1NpPRkRNt/u6xcnPxrXT8rXExqvSxta1ICovDQorCVVJTlQxNgkJCQkJCXdSb290U3dxdWVuY2VJbmRleDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogWkPQ8sHQwePP4LnYx/jT8sLfvK24+dayICovDQorCVVJTlQxNgkJCQkJCWNOdW1iZXJPZlJBUHJlYW1ibGU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogy+a7+r3TyOvHsLW8uPbK/SAqLw0KKwlVSU5UMTYJCQkJCQljU2l6ZU9mUkFQcmVhbWJsZXNHcm91cEE7ICAgICAgICAgICAgICAgICAgICAgIC8qIMvmu/q908jrx7C1vNfpQbXEuPbK/SAqLw0KKwlVSU5UMTYJCQkJCQl3TWVzc2FnZVNpemVHcm91cEE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIMvmu/rHsLW81+lBtcTP+8+is6S2yCAqLw0KKwlVSU5UMTYJCQkJCQljTWVzc2FnZVBvd2VyT2ZmZXRHcm91cEI7ICAgICAgICAgICAgICAgICAgICAgIC8qINPD09q9+NDQx7C1vNGh1PEgKi8NCisJVUlOVDE2CQkJCQkJY1Bvd2VyUmFtcGluZ1N0ZXA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiDJz9DQt6LLzXByZWFtYmxluabCyrX31fuyvbOko6zTw9Pa1ti3onByZWFtYmxluf2zzNbQtffV+7eiyeS5psLKICovDQorCVVJTlQxNgkJCQkJCXdQcmVhbWJsZVRyYW5zTWF4OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcHJlYW1ibGXX7rTz1ti0q7TOyv0gKi8NCisJVUlOVDE2CQkJCQkJY1JBUmVzcG9uc2VXaW5kb3dTaXplOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiC87LLiUkFS0MXPosqxvOS0sLOktsggKi8NCisJVUlOVDE2CQkJCQkJY01hY0NvbnRlbnRpb25SZXNvbHV0aW9uVGltZXI7ICAgICAgICAgICAgICAgICAvKiC+utX5y+a7+r3TyOu5/bPM1tC87LLibXNnNMqxvOS0sL/atPPQoSAqLw0KKwlVSU5UMTYJCQkJCQljTWF4SFFSUU1zZzNUeDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIL661fm94r72uf2zzNbQt6LLzW1zZzPKsaOstffTw0hBUlG5/bPM1+6089bYtKu0zsr9ICovDQorICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICB3cGFkaW5nOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qzt7S4tLlo6w019a92rbUxusqLyANCisJVUlOVDE2CQkJCQkJYXdNc2cxVHhTeXNGcmFtZU51bVsxMF07ICAgICAgLyogUHJlYW1ibGW3osvN1qG6xbXEzbO8xiAqLw0KKwlVSU5UMTYJCQkJCQlhd01zZzFUeFN1YkZyYW1lTnVtWzEwXTsgICAgICAvKiBQcmVhbWJsZbeiy83X09ahusW1xM2zvMYgKi8NCisNCisJVUlOVDMyCQkJCQkJYWR3TXNnMVR4Q250WzEwXTsgICAgICAgICAgICAgLyogUHJlYW1ibGW3osvNtM7K/bXEzbO8xiCwtNfT1qG1pbbAwNu8082zvMYgKi8NCisJVUlOVDE2CQkJCQkJYXdNc2cxVHhGcmVxUG9zWzEwXTsgICAgICAgICAgLyogUHJlYW1ibGW1xMa10/LOu9bDblBSQrXEzbO8xiCwtNfT1qG1pbbAwNu8082zvMYgKi8NCisJVUlOVDE2CQkJCQkJYWNNc2cxVHhQcmVhbWJsZUlEWzEwXTsgICAgICAgLyogUHJlYW1ibGUgSUS1xM2zvMYgsLTX09ahtaW2wMDbvNPNs7zGICovDQorCS8vU0lOVDE2CQkJCQkJYXNjTXNnMVR4UG93ZXJbMTBdOyAgICAgICAgICAgLyogUHJlYW1ibGW3osvNuabCyrXEzbO8xiCwtNfT1qG1pbbAwNu8082zvMYgKi8NCisJLy9VSU5UMzIJCQkJCWFkd01zZzFUeE51bUNudFsxMF07ICAgICAgICAgIC8qIFByZWFtYmxlt6LLzcr9tcTNs7zGILC019PWobWltsDA27zTzbO8xiAqLw0KKwlVSU5UMzIJCQkJCQlhZHdNc2cyUnhNYXRjaE51bUNudFsxMF07ICAgICAvKiBSQVIgUElExqXF5LXEzbO8xiCwtNfT1qG1pbbAwNu8082zvMYgKi8NCisJVUlOVDMyCQkJCQkJYWR3TXNnMlJ4Tm90TWF0Y2hOdW1DbnRbMTBdOyAgLyogUkFSIFBJRLK7xqXF5LXEzbO8xiCwtNfT1qG1pbbAwNu8082zvMYgKi8NCisJVUlOVDMyCQkJCQkJYWR3TXNnM1R4TnVtQ250WzEwXTsgICAgICAgICAgLyogTXNnM7eiy83K/cS/tcTNs7zGILC019PWobWltsDA27zTzbO8xiAqLw0KKwlVSU5UMzIJCQkJCQlhZHdNc2czVHhBY2tOdW1DbnRbMTBdOyAgICAgICAvKiBNc2czt6LLzdX9yLe1xM2zvMYgsLTX09ahtaW2wMDbvNPNs7zGICovDQorCVVJTlQzMgkJCQkJCWFkd01zZzNUeE5hY2tOdW1DbnRbMTBdOyAgICAgIC8qIE1zZzO3osvNtO3O87XEzbO8xiCwtNfT1qG1pbbAwNu8082zvMYgKi8NCisJVUlOVDMyCQkJCQkJYWR3TXNnNFJ4TnVtQ250WzEwXTsgICAgICAgICAgLyogTXNnNL3TytW1xM2zvMYgsLTX09ahtaW2wMDbvNPNs7zGICovDQorCVVJTlQzMgkJCQkJCWFkd01zZzRSeEFja051bUNudFsxMF07ICAgICAgIC8qIE1zZzS908rV1f3It7XEzbO8xiCwtNfT1qG1pbbAwNu8082zvMYgKi8NCit9VF96UEhZX0VVTF9QcmFjaFN0YXRpc3RpY3NJbmZvOw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorTE9HX1RPT0xfTFRFX1BIWV9FWFRfUFJBQ0hfU1RBVF9JTkZPDQory7XD96O6SEFSUSDW2LSrzbO8xtDFz6KjrL/J0tS9q8K3suDW0LXEz+C52LK/t9a6z7Kitb3PwsPmtcS94bm5zOXW0A0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdTRk47ICAgIC8vyrG85NDFz6INCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3TmV3VHJhbnNDbnQ7ICAgICAgICAgICAgLyog0MK0q82zvMYg19y1xMDbvNPWtSAqLyAgICAgICANCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3QWRhcHRUcmFuc0NudDsgICAgICAgICAgLyog19TKytOm1ti0q82zvMYg19y1xMDbvNPWtSAqLyAgICAgICAgIA0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdOb25BZGFwdFRyYW5zQ250OyAgICAgICAvKiC3x9fUysrTptbYtKvNs7zGINfctcTA27zT1rUgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd05vVHJhbnNDbnQ7ICAgICAgICAgICAgIC8qILK7tKvK5M2zvMYg19y1xMDbvNPWtSAqLyAgICAgICAgICANCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdIYXJxVHJhbnNDbnQ7ICAgICAgICAgICAvKiDW2LSrtM7K/bXEzbO8xiDX3LXEwNu809a1ICovICANCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3SGFycTBUcmFuc0NudDsgICAgICAgICAgLyogSEFSUSBJRD0wtcS0q8rktM7K/c2zvMYg19y1xMDbvNPWtSAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdIYXJxMVRyYW5zQ250OyAgICAgICAgICAvKiBIQVJRIElEPTG1xLSryuS0zsr9zbO8xiDX3LXEwNu809a1ICovIA0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdIYXJxMlRyYW5zQ250OyAgICAgICAgICAvKiBIQVJRIElEPTK1xLSryuS0zsr9zbO8xiDX3LXEwNu809a1ICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd0hhcnEzVHJhbnNDbnQ7ICAgICAgICAgIC8qIEhBUlEgSUQ9M7XEtKvK5LTOyv3Ns7zGINfctcTA27zT1rUgKi8NCisNCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3SGFycVJ2MENudDsgICAgICAgICAgICAgLyogUlY9MLXEzbO8xiDX3LXEwNu809a1ICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd0hhcnFSdjFDbnQ7ICAgICAgICAgICAgIC8qIFJWPTG1xM2zvMYg19y1xMDbvNPWtSAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdIYXJxUnYyQ250OyAgICAgICAgICAgICAvKiBSVj0ytcTNs7zGINfctcTA27zT1rUgKi8gIA0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdIYXJxUnYzQ250OyAgICAgICAgICAgICAvKiBSVj0ztcTNs7zGINfctcTA27zT1rUgKi8NCisNCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3Q3VySGFycUlkOyAgICAgICAgICAgICAgLyogtbHHsEhBUlEgSUQgKi8gICAgDQorICAgIA0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdIYXJxTWF4UmVUeExpbWl0OyAgICAgICAvKiDJz9DQ1ti0q9futPPP3tbGtM7K/aOswrey4MjtvP7S/cjrICovICAgIA0KKyAgICANCisgICAgLyogyc/Q0LP1tKuhotbYtKvQxc+io6zTw9PazbO8xrP1tKuhotbYtKu1xEJsZXLQxc+iICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsSGFycUluaXRBY2s7ICAgICAgICAgIC8qIMnP0NCz9bSrQUNLzbO8xtDFz6Ig19y1xMDbvNPWtaOswrey4MjtvP7S/cjrICovICAgDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsSGFycUluaXROYWNrOyAgICAgICAgIC8qIMnP0NCz9bSrTkFDS82zvMbQxc+iINfctcTA27zT1rWjrMK3suDI7bz+0v3I6yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbEhhcnFSZVR4QWNrOyAgICAgICAgICAvKiDJz9DQ1ti0q0FDS82zvMbQxc+iINfctcTA27zT1rWjrMK3suDI7bz+0v3I6yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbEhhcnFSZVR4TmFjazsgICAgICAgICAvKiDJz9DQ1ti0q05BQ0vNs7zG0MXPoiDX3LXEwNu809a1o6zCt7LgyO28/tL9yOsgKi8NCisgICAgDQorICAgIC8qyc/Q0LXa0ru0zqGitdq2/rTOoaK12sj9tM6horXay8S0ztLUvLDG5Mv71ti0q7PJuaa0zsr9Ki8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxIYXJxMXN0U3VjY051bTsgICAgICAgLyogtdrSu7TO1ti0q7PJuaa0zsr9INfctcTA27zT1rWjrMK3suDI7bz+0v3I6yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbEhhcnEybmRTdWNjTnVtOyAgICAgICAvKiC12rb+tM7W2LSrs8m5prTOyv0g19y1xMDbvNPWtaOswrey4MjtvP7S/cjrICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsSGFycTNyZFN1Y2NOdW07ICAgICAgIC8qILXayP20ztbYtKuzybmmtM7K/SDX3LXEwNu809a1o6zCt7LgyO28/tL9yOsgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxIYXJxNHRoU3VjY051bTsgICAgICAgLyogtdrLxLTO1ti0q7PJuaa0zsr9INfctcTA27zT1rWjrMK3suDI7bz+0v3I6yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbEhhcnFPdGhlclN1Y2NOdW07ICAgICAvKiDG5Mv71ti0q7PJuaa0zsr9INfctcTA27zT1rWjrMK3suDI7bz+0v3I6yAqLw0KKyAgICANCisgICAgLyrJz9DQxKO/6bj3SGFycSBJRCBBQ0uhok5BQ0vK/SovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBhZHdVbEhhcnFJZEFja1s4XTsgICAgICAgIC8qIMnP0NA4uPZIQVJRIEFDS82zvMbQxc+io6y497j2SUTX3LXEwNu809a1o6zCt7LgtcjS/cjrICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBhZHdVbEhhcnFJZE5hY2tbOF07ICAgICAgIC8qIMnP0NA4uPZIQVJRIE5BQ0vNs7zG0MXPoqOsuPe49klE19y1xMDbvNPWtaOswrey4LXI0v3I6yAqLw0KK31UX3pQSFlfRVVMX0hhcnFUcmFuc1N0YXRpc3RpY3NJbmZvOw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorTE9HX1RPT0xfTFRFX1BIWV9FWFRfRENJMF9JTkZPDQory7XD96O6IERDSTAgz+C52NDFz6IgMTC49r/VvOSjrLC0uPfX09aht9ax8M2zvMYNCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgDQorICAgIFVJTlQxNgkJICAgICAgICAgICAgY0hvcHBpbmdGbGFnOyAgICAgICAgICAvKiBEQ0kw1tC1xMz4xrVmbGFnICovDQorICAgIFVJTlQxNgkJICAgICAgICAgICAgd0Jsb2NrQXNzaWdubWVudDsgICAgICAvKiBEQ0kw1tC1xFJCt9bF5CAqLw0KKyAgICBVSU5UMTYJCSAgICAgICAgICAgIGNNQ1M7ICAgICAgICAgICAgICAgICAgLyogRENJMNbQtcRNQ1MgKi8NCisgICAgVUlOVDE2CQkgICAgICAgICAgICBjTmV3RGF0YUZsYWc7ICAgICAgICAgIC8qIERDSTDW0LXETkRJICovDQorICAgIFVJTlQxNgkJICAgICAgICAgICAgY1RwY0NvbW1hbmQ7ICAgICAgICAgICAvKiBEQ0kw1tC1xFRQQ8P8we4gKi8NCisgICAgVUlOVDE2CQkgICAgICAgICAgICBjRE1SU0N5Y2xpY1NoaWZ0OyAgICAgIC8qIERDSTDW0NPD09pETVJTtcTRrbu30sbOuyAqLw0KKyAgICBVSU5UMTYJCSAgICAgICAgICAgIGNVbEluZGV4OyAgICAgICAgICAgICAgLyogRENJMNbQtcRVTCBJbmRleM6708PT2tfT1qHF5NbDMCAqLw0KKyAgICBVSU5UMTYJCSAgICAgICAgICAgIGNEQUk7ICAgICAgICAgICAgICAgICAgLyogRENJMNbQtcTPwtDQt9bF5Na4yr4gKi8NCisgICAgVUlOVDE2CQkgICAgICAgICAgICBjQ3FpUmVxdWVzdDsgICAgICAgICAgIC8qIERDSTDW0LXEQ1FJ1rjKvs67ICovDQorICAgIFVJTlQxNgkJICAgICAgICAgICAgY1JiU3RhcnQ7ICAgICAgICAgICAgICAvKiBEQ0kw1tC1xFJJVta4yr61xFJCxvDKvM671sMgKi8NCisgICAgVUlOVDE2CQkgICAgICAgICAgICBjTGNyYnM7ICAgICAgICAgICAgICAgIC8qIERDSTDW0LXEUklW1rjKvrXEUkLK/SAqLw0KKwlVSU5UMTYgICAgICAgICAgICAgICAgICAgd3BhZGluZzsgICAgICAgICAgICAgICAvKs7e0uLS5aOsNNfWvdq21MbrKi8NCit9VF96UEhZX0RjaTBJbmZvOw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBUX3pQSFlfRGNpMEluZm8gYXREY2kwSW5mb1taUEhZX0RFQlVHX1RNVF9TSVpFXTsgICANCit9VF96UEhZX0VVTF9EY2kwSW5mbzsNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK0xPR19UT09MX0xURV9QSFlfRVhUX0RDSTNPUjNBX0lORk8NCivLtcP3o7ogIFRQQ9DFz6IgDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1NGTjsgICAgLy/Ksbzk0MXPog0KKyAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgICAgIGNQdXNjaERDSTNvcjNhVHBjSWR4OyAgICAvKiC808jFt73Kvc6qVFBDLVBVU0NILVJOVEm1xERDSTMvM0HW0LvxtcO1xFRQQyBDb21tYW5kICovDQorICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICAgY1B1Y2NoRENJM29yM2FUcGNJZHg7ICAgIC8qILzTyMW3vcq9zqpUUEMtUFVDQ0gtUk5USbXERENJMy8zQdbQu/G1w7XEVFBDIENvbW1hbmQgKi8NCit9VF96UEhZX0VVTF9EQ0kzT3IzQUluZm87DQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitMT0dfVE9PTF9MVEVfUEhZX0VYVF9VTFBPV0VSQ1RSTF9JTkZPDQory7XD96O6ICDJz9DQuabCytDFz6KjrLj3uPbX09ahtcS1scewuabCyta1tcTKtcqx1rUgDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd1NGTjsNCisgICAgU0lOVDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN3UHVjY2hHaVtaUEhZX0RFQlVHX1RNVF9TSVpFXTsgICAgICAgICAgLyogt6LLzVBVQ0NIsdW7t7mmv9iyzsr9R2mjrNPJwrey4MjtvP7S/cjrICovDQorCVNJTlQxNgkJCQkJCWFzd1B1Y2NoUG93ZXJbWlBIWV9ERUJVR19UTVRfU0laRV07ICAgICAgICAvKiBQVUNDSLXEt6LLzbmmwsrNs7zGICovDQorCVNJTlQxNgkJCQkJCWFzd1B1c2NoUG93ZXJbWlBIWV9ERUJVR19UTVRfU0laRV07ICAgICAgICAvKiBQVVNDSLXEt6LLzbmmwsrNs7zGICovDQorCVNJTlQxNgkJCQkJCWFzd1Nyc1Bvd2VyW1pQSFlfREVCVUdfVE1UX1NJWkVdOyAgICAgICAgICAvKiBTUlO1xLeiy825psLKzbO8xiAqLw0KKwlTSU5UMTYJCQkJCQlhc3dQcmFjaFBvd2VyW1pQSFlfREVCVUdfVE1UX1NJWkVdOyAgICAgICAgLyogUFJBQ0i1xLeiy825psLKzbO8xiAqLwkNCisJVUlOVDE2CQkJCQkJYWNQdXNjaFBvd2VySGVhZHJvb21bWlBIWV9ERUJVR19UTVRfU0laRV07IC8qIFBVU0NItcS3osvNuabCysqj0+DBv1BIUiAqLw0KK31UX3pQSFlfRVVMX1Bvd2VyQ3RybEluZm87DQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitMT0dfVE9PTF9MVEVfUEhZX0RGRV9ERUJVR19JTkZPDQory7XD96O6ICDK1byvREZF1tjSqsirvtax5MG/o6zTw9PaVE1UuaS+38q1yrGy6dGvLGFkZCBieSB6aG91cGVuZyAyMDExLjAzLjE0IA0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKwlVSU5UMTYgCWNSeEFudGVubmFNb2RlOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiC908rVzOzP38Sjyr0gxKzIz9a1zqq1pczsz9/Eo8q9ICovDQorCVVJTlQxNiAJY1N5bmNNb2RlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIM2ssr3Eo8q9ICovDQorCVVJTlQxNiAJY0xOQU1vZGUwOw0KKwlVSU5UMTYgCWNMTkFNb2RlMTsgICAgICAgIC8qIExOQbHtuPHEo8q9ICovDQorCQ0KKwlVSU5UMTYgCXdBZ2NkQkdhaW4wOw0KKwlVSU5UMTYgCXdBZ2NkQkdhaW4xOyAgICAgICAgIC8qIEFHQ9T20ubWtSBkQiA8OCw3LHU+ICovDQorCQkJDQorCVVJTlQxNiAJd1J4TGluRGFnYzA7DQorCVVJTlQxNiAJd1J4TGluRGFnYzE7ICAgICAgICAgLyogUljCtyBEQUdD1PbS5ta1IM/f0NTWtSA8MTIsOCx1PiAqLw0KKwkNCisJVUlOVDE2IAl3Q3NybUxpbkRhZ2MwOw0KKwlVSU5UMTYgCXdDc3JtTGluRGFnYzE7ICAgICAvKiBDU1JNwrcgREFHQ9T20ubWtSDP39DU1rUgPDEyLDgsdT4gKi8NCisJDQorCVVJTlQxNiAJd0NzcnNMaW5EYWdjMDsNCisJVUlOVDE2IAl3Q3Nyc0xpbkRhZ2MxOyAgICAgLyogQ1NSU8K3IERBR0PU9tLm1rUgz9/Q1Na1IDwxMiw4LHU+ICovDQorCQ0KKwlzdHJ1Y3QNCisJew0KKwkgICAgVUlOVDE2ICAgICAgICAgICAgICAgICAgICAgd0FnY0dhaW5NYXhGbGFnOyAgICAgICAgICAgICAgICAgLyog1PbS5sa9uuKyubOl1rjKviAqLw0KKwkgICAgVUlOVDE2ICAgICAgICAgICAgICAgICAgICB3TWF4ZEJWdWx1ZTsgICAgICAgICAgICAgICAgICAgICAvL8G9wrfM7M/fvc+089T20ubWtSw8OCw4LHU+DQorCSAgICBTSU5UMTYgCSAgICAgICAgICAgICAgc3dBZ2NGYWN0b3JMb2cyOyAgICAgICAgICAgICAgICAgLyog1PbS5sa9uuKyubOl0vLX0zwxNiw3LHQ+IGxvZzLWtSovDQorCSAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgIHdBZ2NGYWN0b3I7ICAgICAgICAgICAgICAgICAgICAgIC8qINT20ubGvbrisrmzpdLy19M8MTAsMCx1PiAqLw0KKwl9IHRSeEFnY0JhbGFuY2U7ICAgICAgICAgICAgICAgLyogUnjCt9T20ubGvbri1rjKvrrN1PbS5tLy19MgKi8NCisNCisJc3RydWN0DQorCXsNCisJICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgIHdBZ2NHYWluTWF4RmxhZzsgICAgICAgICAgICAgICAgIC8qINT20ubGvbrisrmzpda4yr4gKi8NCisJICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgd01heGRCVnVsdWU7ICAgICAgICAgICAgICAgICAgICAgLy/BvcK3zOzP373PtPPU9tLm1rUsPDgsOCx1Pg0KKwkgICAgU0lOVDE2IAkgICAgICAgICAgICAgICBzd0FnY0ZhY3RvckxvZzI7ICAgICAgICAgICAgICAgICAvKiDU9tLmxr264rK5s6XS8tfTPDE2LDcsdD4gbG9nMta1Ki8NCisJICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgd0FnY0ZhY3RvcjsgICAgICAgICAgICAgICAgICAgICAgLyog1PbS5sa9uuKyubOl0vLX0zwxMCwwLHU+ICovDQorCX0gdENzcnNBZ2NCYWxhbmNlOyAgICAgICAgICAgICAvKiBDc3JzwrfU9tLmxr264ta4yr66zdT20ubS8tfTICovDQorDQorCXN0cnVjdA0KKwl7DQorCSAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgICB3QWdjR2Fpbk1heEZsYWc7ICAgICAgICAgICAgICAgICAvKiDU9tLmxr264rK5s6XWuMq+ICovDQorCSAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgIHdNYXhkQlZ1bHVlOyAgICAgICAgICAgICAgICAgICAgIC8vwb3Ct8zsz9+9z7Tz1PbS5ta1LDw4LDgsdT4NCisJICAgIFNJTlQxNiAJICAgICAgICAgICAgICBzd0FnY0ZhY3RvckxvZzI7ICAgICAgICAgICAgICAgICAvKiDU9tLmxr264rK5s6XS8tfTPDE2LDcsdD4gbG9nMta1Ki8NCisJICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgd0FnY0ZhY3RvcjsgICAgICAgICAgICAgICAgICAgICAgLyog1PbS5sa9uuKyubOl0vLX0zwxMCwwLHU+ICovDQorCX0gdENzcm1BZ2NCYWxhbmNlOyAgICAgICAgICAgICAvKiBDc3JtwrfU9tLmxr264ta4yr66zdT20ubS8tfTICovDQorDQorCS8qILGjtOZDU1JNMTC49tfT1qG1xNfc1PbS5ta1IDwxNCw2LHU+ICovDQorCXN0cnVjdA0KKwl7DQorCSAgICBVSU5UMTYgCSAgICAgICAgICAgICAgICAgIHdUb3RhbEFnY0dhaW4wTG9nMjsgICAgICAgICAgICAgIC8qIMzsz98wtcTX3NT20ubWtSA8MTQsNix1PiBsb2cy1rUgKi8NCisJICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICAgIHdUb3RhbEFnY0dhaW4xTG9nMjsgICAgICAgICAgICAgIC8qIMzsz98xtcTX3NT20ubWtSA8MTQsNix1PiBsb2cy1rUgKi8NCisJfSBhd0Nzcm1Ub3RhbEFnY0dhaW5Mb2cyW1pQSFlfU1VCRlJBTUVTX1BFUl9GUkFNRV07DQorCQ0KKwkvKiCxo7TmUlgxMLj219PWobXE19zU9tLm1rUgPDE0LDYsdT4gKi8NCisJc3RydWN0DQorCXsNCisJICAgIFVJTlQxNiAJICAgICAgICAgICAgICAgICAgd1RvdGFsQWdjR2FpbjBMb2cyOyAgICAgICAgICAgICAgLyogzOzP3zC1xNfc1PbS5ta1IDwxNCw2LHU+IGxvZzLWtSAqLw0KKwkgICAgVUlOVDE2ICAgICAgICAgICAgICAgICAgICAgICAgd1RvdGFsQWdjR2FpbjFMb2cyOyAgICAgICAgICAgICAgLyogzOzP3zG1xNfc1PbS5ta1IDwxNCw2LHU+IGxvZzLWtSAqLw0KKwl9IGF3UnhUb3RhbEFnY0dhaW5Mb2cyW1pQSFlfU1VCRlJBTUVTX1BFUl9GUkFNRV07DQorDQorCS8qIL/sy9lBR0PI7bz+vMbL48qxo6wxMG1zxr2++bmmwsrK/dfpICovDQorCVNJTlQxNiAJYXN3Tm90U3luY0FnY01lYW5Qd3IwWzcwXTsNCisJU0lOVDE2IAlhc3dOb3RTeW5jQWdjTWVhblB3cjFbNzBdOw0KKwkvKiC/7MvZQUdDyO28/rzGy+PKsaOsvMfCvMa9vvm5psLK1+6089a1ICovDQorCVNJTlQxNiAJc3dNYXhBR0NNZWFuUHdyMDsNCisJU0lOVDE2IAlzd01heEFHQ01lYW5Qd3IxOw0KKwkvKiC/7MvZQUdDyO28/rzGy+PN6rPJserWviAqLw0KKwlVSU5UMTYgCXdOb3RTeW5jQUdDRG9uZTsNCisJLyogyeTGtbTyv6rSu9ahuvOx6ta+ICovDQorCVVJTlQxNiAJd05vdFN5bmNBR0NCZWdpbjsNCisJLy/Oqsq1z9bLq8zsz9+3x82ssr1BR0O199X7o6zU9rzTz+C52Mirvtax5MG/LGFkZCBieSB6aG91cGVuZyAyMDEwLjExLjYNCisJVUlOVDE2IAl3Tm90U3luY0FHQ0RvbmVBbnQwOy8vzOzP3zAgQUdDytXBsrHq1r4NCisJVUlOVDE2IAl3Tm90U3luY0FHQ0RvbmVBbnQxOy8vzOzP3zEgQUdDytXBsrHq1r4NCisJdW5pb24NCisJeyAgICANCisJICAgIHN0cnVjdA0KKwkJew0KKwkJICAgIFVJTlQzMiBSWEJhbmR3aWR0aCAgICAgICAgICA6MzsgICAgICAgLyogQml0WzAtMl0gVFjCt7T4v+0gKi8NCisJCSAgICBVSU5UMzIgQ1BNb2RlICAgICAgICAgICAgICAgOjE7ICAgICAgIC8qIEJpdFszXSBDUMSjyr0gKi8NCisJCSAgICBVSU5UMzIgUmVzZXJ2ZWQgICAgICAgICAgICAgOjI4OyAgICAgIC8qIEJpdFs0LTMxXSAqLw0KKwkJfSB0Qml0Ow0KKwkJDQorCSAgICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdSZWc7IA0KKwl9IAl0UlhCYW5kd2lkdGhDUE1vZGU7DQorCQ0KKwlVSU5UMTYgIAl3UnhCYW5kd2lkdGg7DQorCVVJTlQxNiAJY0RBR0NDYWxNb2RlOyAgICAgICAgICAgICAgIC8qIERBR0MgvMbL48Sjyr0gKi8NCisJVUlOVDE2IAljQUdDQ2FsTW9kZTsgICAgICAgICAgICAgICAgLyogQUdDILzGy+PEo8q9ICovDQorCVVJTlQxNiAgIHdwYWRpbmc7ICAgICAgICAgICAgICAgICAgICAvKjTX1r3attTG66Oszt7S4tLlKi8NCit9VF96UEhZX0VERkVfU1lTVEVNX0lORk87DQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitMT0dfVE9PTF9MVEVfUEhZX1JGQ19ERUJVR19JTkZPDQory7XD96O6ICBSRkMg17TMrMr9vt2/4iANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCit0eXBlZGVmIHN0cnVjdCANCit7DQorICAgIFVJTlQzMiAgCQkJCWR3UmZjU3luU3RhdGU7ICAgICAgICAgICAgICAvKlJGQ82ssr278rfHzayyvbXE1rjKviCz9cq8u6/OqrfHzayyvSovDQorICAgIFVJTlQzMiAgCQkJCWR3UmZjU3RhdGU7ICAgICAgICAgICAgICAgICAvKlJGQ8nPoaLPwtDQ1rjKviiw/Lqs1NrM2Mri19PWocnPz8LQ0M2syrG05tTatcTH6b/2KaOss/XKvLuvzqpJRExF17TMrCovDQorICAgIFVJTlQxNiAgIAkJCQkJCWJSZmNTZXJ2Q2VsbFJlY2VpdmU7ICAgICAgLyq3/s7x0KHH+LvywdrH+L3TytXWuMq+o6zKudPDyrG08r+qo6zErMjPudix1SovDQorICAgIFVJTlQxNiAgCQkJCQkJYlJmY0NzckNlbGxTZWFyY2g7ICAgICAgICAgIC8q0KHH+MvRy/e78s2ssr3WuMq+o6yz9cq8u6/OqrnYsdUqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICBkd1JmY0NzckNlbGxNZWFzOyAgICAgICAgICAvKtChx/iy4sG/1rjKvrvyyajGtda4yr6jrMjnufvKx8moxrXU8lJGQ19zeW5fc3RhdGXJ6M6qt8fNrLK9o6y/ydLU0aHU8bWl0KHH+Lu5ysfLq9Chx/ijrLP1yry7r7nYsdUqLw0KKyAgICBVSU5UMzIgICAJCQkJCQlkd1JmY0ZyZXF1ZW5jZVBvaW50OyAgICAgICAvKsa1tePJ6NbDILP1yry7r86qMCAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgIGR3UmZjRmlsdGVyQmFuZDsgICAgICAgICAgICAvKrT4v+3J6NbDILP1yry7r86qMjBNSHoqLwkNCisgICAgVUlOVDMyICAJCQkJCQlkd1JmY0FzeW5PZmZzZXQ7ICAgICAgICAgICAvKrfHzayyvbHt1rTQ0MbwyrzKsbzko6yz9cq8u6/OqjAqLwkNCisgICAgVUlOVDMyIAkJCQkJCWR3UmZjUnhPZmZzZXRBbnQwOyAgICAgICAgIC8q1vfNrLK9se21xNahsd+956OozOzP3zCjqaOss/XKvLuvzqowKi8NCisgICAgVUlOVDMyIAkJCQkJCWR3UmZjUnhPZmZzZXRBbnQxOyAgICAgICAgIC8qUlgxzayyvbHttcTWobHfveejqMzsz98xo6mjrLP1yry7r86qMCovDQorICAgIFVJTlQzMiAgCQkJCQkJZHdSZmNSeE9mZnNldDA7ICAgICAgICAgICAgLyqy4sG/se0wtcTWobHfveejrLP1yry7r86qMCovDQorICAgIFVJTlQzMiAJCQkJCQlkd1JmY1J4T2Zmc2V0MTsgICAgICAgICAgICAvKrLiwb+x7TG1xNahsd+95yyz9cq8u6/OqjAqLw0KKyAgICBVSU5UMTYgICAJCQkJCQljUmZjU3ViRnJhbWVObzsgICAgICAgICAgIC8q1vfNrLK9se21xNahsd+957340NC087X3yrHQ6NKqUkZD19PWocz416qjrLjDss7K/da4w/fM+NeqtcTEv7XE19PWobrFILe2zqcwLTkgs/XKvNa1MHhmZiAqLw0KKyAgICBVSU5UMTYgIAkJCQkJCWNSZmNTdWJGcmFtZU5vMDsgICAgICAgICAgLyqy4sG/se0wtcTWobHfvee9+NDQtPO198qx0OjSqlJGQ9fT1qHM+Neqo6y4w7LOyv3WuMP3zPjXqrXExL+1xNfT1qG6xSC3ts6nMC05ILP1yrzWtTB4ZmYqLw0KKyAgICBVSU5UMTYgIAkJCQkJCWNSZmNTdWJGcmFtZU5vMTsgICAgICAgICAgLyqy4sG/se0xtcTWobHfvee9+NDQtPO198qx0OjSqlJGQ9fT1qHM+Neqo6y4w7LOyv3WuMP3zPjXqrXExL+1xNfT1qG6xSC3ts6nMC05ILP1yrzWtTB4ZmYqLw0KKyAgICBVSU5UMTYgICAJCQkJCQljUmZjU3ViRnJhbWVObzI7ICAgICAvKnR4se21xI6tsd+957340NC087X3yrHQ6NKqUkZD19PWocz416qjrLjDss7K/da4w/fM+NeqtcTEv7XE19PWobrFILe2zqcwLTkgs/XKvNa1MHhmZiovCQ0KKyAgICBVSU5UMzIgIAkJCSAgICAgICBkd1JmY1VETW9kZTsgICAgICAgICAgICAgICAgLyrW982ssr2x7cnPz8LQ0NfT1qHF5NbDLLP1yry7r86qRV9GUkFNRV9VRF9UWVBFMiovCQkNCisgICAgVUlOVDMyICAJCQkgICAgICAgZHdSZmNDUE1vZGU7ICAgICAgICAgICAgICAgIC8q1vfNrLK9se21xGNwxKPKvSCz9cq8u6/Oqm5vcm1hbCBDUCovDQorICAgIFVJTlQzMiAgCQkJICAgICAgIGR3UmZjQ1BNb2RlMDsgICAgICAgICAgICAgICAvKrLiwb+x7TC1xGNwxKPKvSCz9cq8u6/Oqm5vcm1hbCBDUCovDQorICAgIFVJTlQzMiAgCQkJICAgICAgIGR3UmZjQ1BNb2RlMTsgICAgICAgICAgICAgICAvKrLiwb+x7TG1xGNwxKPKvSCz9cq8u6/Oqm5vcm1hbCBDUCovDQorICAgIFVJTlQxNgkJCQkJCQljUmZjTWVhc1N5bVN0YXJ0MDsJCQkJIC8qsuLBv7HtMMilQ1DT0NCnt/u6xb+qyrzK/SCz9cq8u6/OqjAqLw0KKyAgICBVSU5UMTYJCQkJCQkJY1JmY01lYXNTeW1TdGFydDE7CQkJCSAvKrLiwb+x7THIpUNQ09DQp7f7usW/qsq8yv0gs/XKvLuvzqowKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3UmZjU3BlY1N1YkZyYW1lTW9kZTsgICAgICAvKszYyuLX09ahR1DEo8q9ILP1yry7r86qRV9TUEVDX1NVQl9GUkFNRV9UWVBFMSovDQorICAgIFVJTlQzMiAJCQkJCQlkd1JmY0ZyZXFPZmZzZXQ7ICAgICAgICAgICAvKsa1xqvWtaOs08PT2rX31ftSRr6n1fEgs/XKvLuvzqowKi8NCisgICAgU0lOVDMyICAgCQkJCQkJc2R3UmZjVHhPZmZzZXQ7ICAgICAgICAgICAgIC8qyc/Q0LaoyrHM4cewo6yz9cq8u6/OqjAqLw0KKyAgICBVSU5UMzIgCQkJCQkJZHdSZmNSeE9mZnNldEFudDBGb3JUeDsgICAgICAgICAvKlRYse21xM/C0NDWobHfveejqMzsz98wo6mz9cq8u6/OqjAqLw0KKyAgICBVSU5UMzIgCQkJCQkJZHdSZmNSeE9mZnNldEFudDFGb3JUeDsgICAgICAgICAvKlRYse21xM/C0NDWobHfveejqMzsz98xo6mz9cq8u6/OqjAqLwkNCisgICAgVUlOVDMyICAgIAkJCSAgICAgICBkd1JmY1R4QW50SW5kZXg7CQkJCQkgICAvKsnP0NC3osvNzOzP39Gh1PGjrMzsz98wus0xo6yz9cq8u6/Oqszsz98wKi8NCisgICAgVUlOVDMyICAgIAkJCSAgICAgICBkd1JmY1R4QW50SW5kZXhGb3JTUlM7CQkJCQkgICAvKsnP0NC3osvNzOzP39Gh1PEo1+6689K7uPa3+7rFU1JTKaOszOzP3zC6zTGjrMSsyM+4w7LOyv3OtNDeuMQqLw0KKyAgICBVSU5UMzIgCQkgICAgICAgICAgICAgICAgZHdSZmNQb3dlckNsb3NlTW9kZTsgICAgIAkgLyrO5dbWy+a7+r3TyOu5psLKudix1cqxvOS14yCz9cq8u6/OqkVfUE9XRVJfQ0xPU0VfTk9UX1VTRUQqLw0KKyAgICBTSU5UMTYgCQkJCQkJc3dSZmNGaXJzdFN5bWJQb3dlcjsgICAgICAgIC8qyc/Q0LXa0ru49rf7usW3osvNtcS5psLKLLP1yry7r86qMHgwZmZmICovDQorICAgIFNJTlQxNiAJCQkJCQlzd1JmY0xhc3RTeW1iUG93ZXI7ICAgICAgICAgLyrJz9DQtdrX7rrzuPa3+7rFt6LLzbXEuabCyiCz9cq8u6/OqjB4MGZmZiovDQorICAgIFNJTlQxNiAgCQkJCQkJc3dSZmNTcGVjaWFsUHJhY2hQb3dlcjsgICAgIC8qzNjK4tfT1qFQUkFDSLmmwsrWtSyz9cq8u6/OqjB4MGZmZiAqLw0KKwlVSU5UMTYgICAgICAgICAgICAgICAgICAgICAgICAgIHdwYWRpbmc7ICAgICAgICAgICAgICAgICAgIC8qzt7S4tLlo6w019a92rbUxusqLw0KKyAgICBVSU5UMzIJCSAgICAgICAgICAgICAgICBkd0FwY0ZpcnN0U3ltYkNoYW5UeXBlOy8quabCyr/Y1sa12tK7uPa3+7rF0MW1wMDg0M2jrNfuuvPSu7j2t/u6xdK7tqjOqlNSU6Osy/nS1FRYsrvTw7jm1qpSRkMqLwkNCisgICAgU0lOVDMyICAgICAgICAgICAgICAgICAgICAgIHN3RnJlcU9mZnNldDsNCit9IFRfWlBIWV9FUkZDX0lORk87DQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitMT0dfVE9PTF9MVEVfUEhZX0VDU1JfREVCVUdNSUJfSU5GTw0KKw0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMTYgd0NlbGxCYW5kOyAgICAgICAgICAgICAgICAgICAgICAgLyogz8LQ0LT4v+0qLw0KKyAgICBVSU5UMTYgd1BoaWNoQ29uZmlnOyAgICAgICAgICAgICAgICAgICAgLyogUEhJQ0iyzsr9Ki8NCit9VF96UEhZX0VDU1JfRGVidWdNaWJJbmZvOyAvKiC4w01JQtDFz6LT68nPw+bCt7LitcS48cq9yc/T0NCpsrvSu9H5ICovDQorDQordHlwZWRlZiBzdHJ1Y3QgDQoreyANCisgICAgIFdPUkQgICAgICAgICAgICB3U3RhcnRQaHlDZWxsSWQ7DQorICAgICBXT1JEICAgICAgICAgICAgd1BoeUNlbGxJZE51bTsNCit9IFRfelBIWV9EZWJ1Z1BoeUNlbGxJZFJhbmdlOw0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sgDQorICAgIFdPUkQgICAgICAgICAgd0VhcmZjbjsNCisgICAgVUlOVDE2ICAgICAgICAgICBiTWVhc0JhbmRXaWR0aDsgIA0KKyAgICBVSU5UMTYgICAgICAgICAgIGJDZWxsTnVtOw0KKyAgICBXT1JEICAgICAgICAgIGF3UGh5Q2VsbElkTGlzdFszMl07DQorICAgIFVJTlQxNiAgICAgICAgICAgYlBhZGRpbmc7DQorICAgIFVJTlQxNiAgICAgICAgICAgYlByZXNlbmNlQW50ZW5uYVBvcnQxOw0KKyAgICBVSU5UMTYgICAgICAgICAgIGJOQ2VsbENvbmZpZzsNCisgICAgVUlOVDE2ICAgICAgICAgICBiQmxhY2tDZWxsTnVtOw0KKyAgICBUX3pQSFlfRGVidWdQaHlDZWxsSWRSYW5nZSAgYXRQaHlDZWxsSWRSYW5nZUxpc3RbMzJdOw0KKyAgICBXT1JEICAgICAgICAgIHdOb0RyeFJlcG9ydFBlcmlvZDsNCisgICAgV09SRCAgICAgICAgICB3RHJ4UmVwb3J0UGVyaW9kOw0KK30gVF96UEhZX0RlYnVnTWVhc0ZyZXFJbmZvOyAgDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJNc2dJZDsNCisgICAgVUlOVDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYlJlcG9ydFF1YW50aXR5Ow0KKyAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiTWF4Q2VsbFJlcG9ydFBlckZyZXE7DQorICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJGcmVxTnVtOw0KKyAgICBUX3pQSFlfRGVidWdNZWFzRnJlcUluZm8gICAgICAgICBhdE1lYXNGcmVxSW5mb0xpc3RbNF07DQorfVRfelBIWV9FQ1NSX01lYXNDb25maWdJbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICAgVUlOVDE2ICAgICAgICAgICAgIGJNc2dJZDsNCisgICAgIFVJTlQxNiAgICAgICAgICAgICBiUGFkZGluZzsNCisgICAgIFdPUkQgICAgICAgICAgIHdNZWFzQml0TWFzazsNCisgICAgIFdPUkQgICAgICAgICAgIHdQYWRpbmcxOw0KK31UX3pQSFlfRUNTUl9NZWFzTWFza1NldEluZm87IA0KKw0KKw0KK3R5cGVkZWYgc3RydWN0ICANCit7DQorICAgIFVJTlQzMiBUcyAgICAgICA6MTI7ICAgICAgICAgICAgICAgICANCisgICAgVUlOVDMyIFN5bWJvbCAgIDozOyAgICAgICANCisgICAgVUlOVDMyIFNsb3QgICAgIDo1OyAgICAgICAgICANCisgICAgVUlOVDMyIEZyYW1lICAgIDoxMDsgICAgICAgIA0KKyAgICBVSU5UMzIgUmVzdiAgICAgOjI7ICAgICAgICAgICAgIA0KK31UX3pQSFlfRGVidWdTZWc0VGltZTsNCisNCit0eXBlZGVmIHN0cnVjdCAgDQorew0KKyAgICBVSU5UMzIgVHMgICAgICAgOjE0OyAgICAgICAgICAgICAgICAgICAgICAgDQorICAgIFVJTlQzMiBTbG90ICAgICA6NTsgICAgICAgICANCisgICAgVUlOVDMyIEZyYW1lICAgIDoxMDsgICAgICAgIA0KKyAgICBVSU5UMzIgUmVzdiAgICAgOjM7ICAgICAgICAgICAgIA0KK31UX3pQSFlfRGVidWdTZWczVGltZTsNCisNCit0eXBlZGVmIHVuaW9uDQoreyAgICAgICANCisgICAgVUlOVDMyICAgICAgICAgIGR3UmVnOw0KKyAgICBUX3pQSFlfRGVidWdTZWc0VGltZSB0U2VnNDsgIA0KKyAgICBUX3pQSFlfRGVidWdTZWczVGltZSB0U2VnMzsgIA0KK31UX3pQSFlfRGVidWdUaW1lOyAgDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFVJTlQzMiBkd01lYXNTdGF0ZSAgICAgIDo4OyAgICAgICAgIC8q0KHH+LLiwb/XtMysKi8NCisgICAgVUlOVDMyIGR3U2VhcmNoU3RhdGUgICAgOjg7ICAgICAgICAgLyrQocf4y9HL99e0zKwqLw0KKyAgICBVSU5UMzIgZHdSZXNlcnZlICAgICAgICA6MTY7ICAgIA0KK31UX3pQSFlfRUNTUl9EZWJ1Z0NzckNlbGxTdGF0ZTsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVF96UEhZX0RlYnVnVGltZQkJdENlbGxGcmFtZUJvdW5kcnk7ICAgICAgICAgIC8q1qGx373n0MXPoqOsyrG85CovDQorICAgDQorfVRfelBIWV9FQ1NSX0RlYnVnQ3NyRnJhbWVCb3VuZHJ5SW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisJVUlOVDE2CQkJICAgIHdDZWxsQmNoTWltbzsJCSAgICAgICAgLypCQ0i94sLrtcTM7M/fxKPKvaO7ttTT2sOkvOyy4qOs08PT2kJDSMjtvP605rfFw6S87LLitcO1vb3hufuju7np09q3x8OkvOyy4qOs08lDVFJMzO7QtCovDQorICAgIFVJTlQxNgkJCSAgICB3Q2VsbEJjaENyY1Jlc2x1dDsgICAgICAgICAgLypCQ0i94sLrtcRDUkO94bn7Ki8NCisgICAgVUlOVDE2CQkJICAgIHdDZWxsQmNoTWFyazsJICAgICAgICAgICAgLypCQ0i94sLrserKvqOs08PT2rHqyr61scew0KHH+MrHt/HS0b6t09BCQ0i94bn7o6zKx7fx0OjSqtf2QkNIveLC66OsYmNoyO28/rLp0a/TwyovDQorICAgIFVJTlQxNgkJCSAgICB3Q2VsbEJjaFBoaWNoOwkgICAgICAgICAgICAvKkJDSL3iwuu1w7W9tcRQSElDSL3hufsqLw0KKwlVSU5UMTYJCQkJd0NlbGxCY2hCYW5kIDsNCisJVUlOVDE2ICAgICAgICAgICAgICB3UGFkaW5nOyAgICAgICAgICAgICAgICAgICAgIC8qzt7S4tLlo6w019a92rbUxusqLw0KKyAgICBUX3pQSFlfRGVidWdUaW1lCSAgICB0Q2VsbEJjaFNmbk9mZnNldDsJICAgICAgICAvKkJDSL3iwuu1w7W9tcTWobHfvecqLw0KK31UX3pQSFlfRUNTUl9EZWJ1Z0NzckJjaEluZm87CQkgICAgICAgICAgICAvKsv509C1xEJDSM/gudjQxc+iKi8NCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgCQkJCQkNCisgICAgVUlOVDMyCQkJICAgIENzckRETW9kZTsNCisgICAgVUlOVDMyCQkJCXRDc3JDUE1vZGU7DQorICAgIFRfelBIWV9FQ1NSX0RlYnVnQ3NyRnJhbWVCb3VuZHJ5SW5mbwkJdENzckZyYW1lQm91bmRyeUluZm87DQorICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdDc3JGaW5nZXJWYWx1ZTsgICAgICAgLypTU0NIvOyy4rXDtb21xLfl1rUouenSu7uvuvMpLNPD09q6z7Ki0KHH+LXE0sC+3S0tLUFkZGVkIGJ5IGdhb3podWhvbmcgMDkxMyovDQorCVVJTlQxNiAgICAgICAgICAgICAgd1BhZGluZzsgICAgICAgICAgICAgICAgICAgICAvKs7e0uLS5aOsNNfWvdq21MbrKi8NCit9VF96UEhZX0VDU1JfRGVidWdDc3JTZWFyY2hJbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBTSU5UMTYJCQkgICAgc3dDZWxsTWVhc1JTUlA7ICAgICAgICAgICAgICAvKrLiwb+1w7W9tcRSU1JQ1rWjrNPJsuLBv8Sjv+nM7tC0o6xDVFJMtsHIoSovDQorICAgIFNJTlQxNgkJCQlzd0NlbGxNZWFzUlNSUTsgICAgICAgICAgICAgIC8qsuLBv7XDtb21xFJTUlHWtaOs08my4sG/xKO/6czu0LSjrENUUky2wcihKi8NCisgICAgVUlOVDE2CQkJCXdDZWxsTWVhc0JhbmQ7ICAgICAgICAgICAgICAvKrLiwb+0+L/to6zTyUNUUkzEo7/p1NrK1bW9suLBv8Xk1sPKsdDeuMSjrLLiwb/Eo7/ptsHIoSovDQorICAgIFVJTlQxNgkJCQl3Q2VsbE1lYXNNaW5CYW5kOyAgICAgICAgICAgLypDVFJMxKO/6bj5vt0zNC4xMDG4+LaotcTGtbbOus3X7tChtPi/7bbU06ax7dbQ1dK1vaOsu/K4+b7d1MvTqsnMtcSx7dbQ1dK1vaOssuLBv8Sjv+m2wcihKi8NCisgICAgVUlOVDE2CQkJCXdDZWxsTWVhc1RpbWVzOyAgICAgICAgICAgICAgLypDVFJMIMSjv+nF5NbDtcS1scew0KHH+LXEsuLBv7TOyv2jrLLiwb/Eo7/ptsHIoSovDQorICAgIFVJTlQxNgkJCQl3Q2VsbE1lYXNBbnRQb3J0OyAgICAgICAgICAgLyqy4sG/zOzP36Os08lDVFJMxKO/6dTaytW1vbLiwb/F5NbDyrHQ3rjEo6yy4sG/xKO/6bbByKEqLw0KKyAgICBVSU5UMTYgICAgICAgICAgICAgIHdDZWxsTWVhc1JlcG9ydFF1YW47ICAgICAgICAgICAgICAvKjAs1ruy4nJzcnCjrDGjrFJTUlC6zVJTUlHSu8bwsuAqLw0KKyAgICBVSU5UMTYJCQkgICAgYk5DZWxsQ29uZmlnOyAgICAgICAgICAgICAgIC8q0+u3/s7x0KHH+MnPz8LQ0MXkscjKx7fx0rvWwrXEserKvqOs08lDVFJMxKO/6dTaytW1vbLiwb/F5NbDyrHQ3rjEo6yy4sG/xKO/6bbByKEqLw0KKw0KK31UX3pQSFlfRUNTUl9EZWJ1Z0Nzck1lYXNJbmZvOyAgICAgICAgICAgICAgIC8qQ1NSy/nS1LXEss7K/cXk1sO6zb3hufsqLw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgIG1TZWFyY2hQcmlvcml0eSAgICAgOjg7DQorICAgIFVJTlQzMiAgbU1lYXNQcmlvcml0eSAgICAgICA6ODsNCisgICAgVUlOVDMyICBtQmxhY2tsaXN0UHJpb3JpdHkgIDo4Ow0KKyAgICBVSU5UMzIgIG1DZWxsVmFsaWRQcmlvcml0eSAgOjg7DQorfVRfelBIWV9FQ1NSX0RlYnVnQ3NyUHJpb3JpdHk7DQorDQordHlwZWRlZiB1bmlvbg0KK3sNCisgICAgVUlOVDMyIGR3UHJpbzsNCisgICAgVF96UEhZX0VDU1JfRGVidWdDc3JQcmlvcml0eSB0UHJpbzsNCit9VV96UEhZX0VDU1JfRGVidWdDc3JQcmlvcml0eTsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgDQorICAgIFVJTlQxNgkJCQl3Q2VsbEZyYW1lQm91bmRyeUFnZTsgICAgICAgLyrWobHfvefAz7uv1rUqLw0KKyAgICBVSU5UMTYJCQkJd0NlbGxNZWFzQWdlOyAgICAgICAgICAgICAgIC8qtbHHsLLiwb/P7rXEwM+7r9a1o6zTyUNUUkzEo7/ptqjG2rj80MKjrLLiwb/Eo7/ptsHIoSovDQorICAgIFVJTlQxNgkJCSAgICB3Q2VsbEJjaEFnZQk7IAkJICAgICAgICAvKkJDSNDFtcC94sLrtcTAz7uv1rUqLw0KKyAgICBVSU5UMTYgICAgICAgICAgICAgIHdwYWRpbmc7ICAgICAgICAgICAgICAgICAgLyrO3tLi0uWjrDTX1r3attTG6yovDQorICAgIA0KK31UX3pQSFlfRUNTUl9EZWJ1Z0NzckFnZUluZm87DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFVJTlQxNiAJCQkJCQkJCXdFYXJmY247DQorICAgIFVJTlQxNgkJCQkJCQkJd0NlbGxJZDsNCisgICAgVF96UEhZX0VDU1JfRGVidWdDc3JBZ2VJbmZvICAgICAgICAgdENzckFnZUluZm87DQorICAgIFVfelBIWV9FQ1NSX0RlYnVnQ3NyUHJpb3JpdHkJCXRDc3JQcmlvdGl0eTsJDQorICAgIFRfelBIWV9FQ1NSX0RlYnVnQ3NyTWVhc0luZm8JCXRDc3JNZWFzSW5mbzsNCisgICAgVF96UEhZX0VDU1JfRGVidWdDc3JTZWFyY2hJbmZvCQl0Q3NyU2VhcmNoSW5mbzsNCisgICAgVF96UEhZX0VDU1JfRGVidWdDc3JCY2hJbmZvCQkJdENzckJjaEluZm8gOw0KKyAgICBUX3pQSFlfRUNTUl9EZWJ1Z0NzckNlbGxTdGF0ZSAgICAgICB0Q2VsbFN0YXRlOw0KK31UX3pQSFlfRUNTUl9EZWJ1Z0NzckNlbGxJbmZvOw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMTYgd0FnY0dhaW4wOw0KKyAgICBVSU5UMTYgd0FnY0dhaW4xOw0KKyAgICBTSU5UMzIgc2R3QWZjOw0KKyAgICBVSU5UMTYgd0VhcmNmbjsNCisgICAgVUlOVDE2IHdGcmVxOw0KK31UX3pQSFlfRUNTUl9EZWJ1Z0ZyZXFQb2ludEluZm9yOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMTYgd1NlcnZpbmdDZWxsRnJlcTsJLyq3/s7x0KHH+Ma1teMqLw0KKyAgICBVSU5UMTYgd05leHRJbnRlckZyZXE7CSAgICAvKs/CuPZHYXC1xNLsxrW5pNf3xrW14yovDQorICAgIFVJTlQxNiB3U2VydmluZ0NlbGxJRDsJICAgIC8qt/7O8dChx/jQocf4SUQqLw0KKwlVSU5UMTYgd3BhZGluZzsgICAgICAgICAgICAgLyrO3tLi0uWjrDTX1r3attTG6yovICAgDQorICAgIFRfelBIWV9FQ1NSX0RlYnVnRnJlcVBvaW50SW5mb3IgIGF0RnJlcVBvaW50SW5mb3JUYWJbNF07ICAgICAgDQorICAgIFVJTlQzMgl0Q3NyTWFpblN0YXRlOwkJLypDU1LX08+1zbO1scew17TMrCovDQorICAgIFRfelBIWV9FQ1NSX0RlYnVnQ3NyQ2VsbEluZm8JICAgIHRDc3JDZWxsSW5mb1sxNl07IC8qsdzD4r3hubnM5bn9tPOjrL2rNjTQocf4y/W89bW9MTYqLw0KK31UX3pQSFlfRUNTUl9DZWxsRGF0YUJhc2VJbmZvOyANCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyICAgICAgICAgICBkd1NGTjsNCisgICAgVUlOVDMyICAgICAgICAgICBkd1VlQW50TnVtOw0KKyAgICBVSU5UMzIgICAgICAgICAgIGR3QnNBbnROdW07DQorICAgIFVJTlQzMiAgICAgICAgICAgZHdEbEJhbmRXaWR0aDsNCisgICAgVUlOVDMyICAgICAgICAgICBkd1RyYW5zTW9kZTsNCisgICAgVUlOVDMyICAgICAgICAgICBkd1J4VHhCaXRtYXA7DQorICAgIFNJTlQ2NCAgICAgICAgICAgc2R3Tm9pc2VPdXRwdXQ7DQorDQorICAgIFNJTlQ2NCAgICAgICAgICAgc2R3UnNycE91dHB1dDA7DQorICAgIFNJTlQ2NCAgICAgICAgICAgc2R3UnNycE91dHB1dDE7DQorICAgIFNJTlQ2NCAgICAgICAgICAgc2R3UnNycE91dHB1dDI7DQorICAgIFNJTlQ2NCAgICAgICAgICAgc2R3UnNycE91dHB1dDM7DQorICAgIFNJTlQ2NCAgICAgICAgICAgc2R3UnNycE91dHB1dDQ7DQorICAgIFNJTlQ2NCAgICAgICAgICAgc2R3UnNycE91dHB1dDU7DQorICAgIFNJTlQ2NCAgICAgICAgICAgc2R3UnNycE91dHB1dDY7DQorICAgIFNJTlQ2NCAgICAgICAgICAgc2R3UnNycE91dHB1dDc7DQorDQorICAgIFNJTlQ2NCAgICAgICAgICAgc2R3UnNwT3V0cHV0MDsNCisgICAgU0lOVDY0ICAgICAgICAgICBzZHdSc3BPdXRwdXQxOw0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcE91dHB1dDI7DQorICAgIFNJTlQ2NCAgICAgICAgICAgc2R3UnNwT3V0cHV0MzsNCit9VF96UEhZX0VETF9DQUxDX0Zvcl9TSU5SOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgICAgICAgICAgIGR3U0ZOOyAgICAvL8qxvOTQxc+iDQorICAgIA0KKyAgICAvKiDPwtDQwffBvyAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgIGR3RGxUQjFGbG93Ow0KKyAgICBVSU5UMzIgICAgICAgICAgIGR3RGxUQjJGbG93Ow0KKyAgICANCisgICAgLyogyc/Q0MH3wb8gKi8NCisgICAgVUlOVDMyICAgICAgICAgICBkd1VsRmxvdzsNCisgICAgVUlOVDMyIGR3VWxSYk51bTsgICAgICAgICAvL7amwPu/ydPDvdO/2iBQVVNDSCBSYiBDb3VudCjJz9DQUkLK/SkuICBSZXNvdXJjZSBTY2hlZHVsZSBJbmZvcm1hdGlvbg0KKyAgICBVSU5UMzIgZHdEbFJiTnVtOyAgICAgICAgIC8vtqbA+7/J08O907/aIFBEU0NIIFJiIENvdW50KM/C0NBSQsr9KS4gIFJlc291cmNlIFNjaGVkdWxlIEluZm9ybWF0aW9uDQorICAgIA0KK31UX3pQSFlfVUxETF9GbG93X0luZm87DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFVJTlQzMiAgICAgICAgICAgZHdSYVJudGk7DQorICAgIFVJTlQzMiAgICAgICAgICAgZHdUQ1JudGk7DQorICAgIFVJTlQzMiAgICAgICAgICAgZHdEcnhTdGF0dXM7ICAgICAgDQorfVRfelBIWV9FVUVfSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sgDQorICAgIFVJTlQzMiBQcmVhbVNlcUlkeDsNCisJVUlOVDMyIFBoeVJvb3RJZHg7DQorCVVJTlQzMiBDeWNsaWNTaGlmdDsNCisJU0lOVDMyIFByZWFtVHhQb3dlcjsNCisJVUlOVDMyIE5fcmFfUHJiOw0KKwlVSU5UMzIgUHJlYW1Gb3JtYXQ7DQorCVVJTlQxNiBEdXBsZXhfTW9kZTsNCisJVUlOVDE2IGZfcmE7DQorCVVJTlQxNiB0XzBfcmE7DQorCVVJTlQxNiB0XzFfcmE7DQorCVVJTlQxNiB0XzJfcmE7DQorCVVJTlQxNiBEZW5zaXR5Ow0KKwkvL1VJTlQxNiBSZXNlcnZlZDsNCisJVUlOVDMyIEFjY2Vzc1RpbWU7DQorCVVJTlQzMiBSQVJXaW5TdHJhdDsNCisJVUlOVDMyIFJBUldpbkVuZDsNCisJVUlOVDMyIFJBX1JOVEk7DQorCVVJTlQzMiBQcmVhbUFjdFR4UG93ZXI7DQorfVRfelBIWV9FUFJBQ0hfTXNnMUluZm87DQorDQordHlwZWRlZiBzdHJ1Y3QgDQorew0KKyAgICBVSU5UMzIgVFBDVmFsdWU7DQorCVVJTlQzMiBNQ1NWYWx1ZTsNCisJVUlOVDMyIFJJVjsNCisJVUlOVDMyIENRSTsNCisJVUlOVDMyIFVMRGVsYXk7DQorCVVJTlQzMiBIb3BwaW5nRmxhZzsNCisJVUlOVDMyIE1zZzNfU0ZOOw0KKwlVSU5UMzIgTXNnM19TdWJGcm07DQorCVVJTlQzMiBTdGFydFJlc0Jsb2NrOw0KKwlVSU5UMzIgVG90YWxSZXNCbG9ja051bTsNCisJVUlOVDMyIFRyYW5zQmxvY2tTaXplSWR4Ow0KKwlVSU5UMzIgTW9kdWxhdGlvblR5cGU7DQorCVVJTlQzMiBSZWR1bmRhbmN5VmVyc2lvbklkeDsNCisJVUlOVDMyIEhhcnFJRDsNCisJDQorfVRfelBIWV9FUFJBQ0hfTXNnM0luZm87DQorDQordHlwZWRlZiBzdHJ1Y3QgDQorew0KKyAgICBVSU5UMzIgTXNnNF9TRk47DQorCVVJTlQzMiBNc2c0X1N1YkZybTsNCisJVUlOVDMyIENvbnRlbnRfUmVzdWx0Ow0KKwlVSU5UMTYgTXNnNF9BY2tfU0ZOOw0KKwlVSU5UMTYgTXNnNF9BY2tfU3ViRnJtOw0KKw0KK31UX3pQSFlfRVBSQUNIX01zZzRJbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0IA0KK3sNCisgICAgVUlOVDMyIFJBUlRpbWU7DQorCVVJTlQzMiBUQVZhbHVlOw0KKwlVSU5UMzIgVEFJbmNsdWRlOw0KKwlVSU5UMzIgUkFDSFR5cGU7DQorCVVJTlQzMiBSQUNITW9kZTsNCisJVUlOVDMyIFJOVElfVHlwZTsNCisJVUlOVDMyIFJOVElfVmFsdWU7DQorCQ0KK31UX3pQSFlfRVBSQUNIX01zZzJJbmZvOw0KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvcHViL2luY2x1ZGUvdG9vbHMvcGh5X2x0ZWFfbG9nX2lmLmggYi9wdWIvaW5jbHVkZS90b29scy9waHlfbHRlYV9sb2dfaWYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jM2U4NDdjCi0tLSAvZGV2L251bGwKKysrIGIvcHViL2luY2x1ZGUvdG9vbHMvcGh5X2x0ZWFfbG9nX2lmLmgKQEAgLTAsMCArMSwxMzY0IEBACisNCisjaWZuZGVmCV9QSFlfTFRFQV9MT0dfSUZfSF8NCisjZGVmaW5lCV9QSFlfTFRFQV9MT0dfSUZfSF8NCisNCisjZGVmaW5lIFpQSFlfREVCVUdfVE1UX1NJWkUgICAgMTAgDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogICAgICAgICAgICAgICAgICAgICAgICAgyKu+1rHkwb/J+cP3ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKg0KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyIGR3V29ya0VhcmZjbjsgICAgICAgICAgICAvKiC5pNf3xrW14yAqLw0KKyAgICBVSU5UMzIgZHdXb3JrQ2VsbElkOyAgICAgICAgICAgIC8qILmk1/fQocf4SUQgKi8NCisgICAgVUlOVDMyIGR3U3lzQnc7ICAgICAgICAgICAgICAgICAvKiDPtc2ztPi/7SAqLw0KKyAgICBVSU5UMzIgZHdTdWJGcm1UeXBlOyAgICAgICAgICAgIC8qINfT1qHF5LHIICovDQorICAgIFVJTlQzMiBkd1NwZWNTdWJGcm1UeXBlOyAgICAgICAgLyogzNjK4tfT1qHF5LHIICovDQorICAgIFVJTlQzMiBkd0RsVHJhbnNNb2RlOyAgICAgICAgICAgLyogz8LQ0LSryuTEo8q9ICovDQorICAgIFVJTlQzMiBkd1VsVHJhbnNNb2RlOyAgICAgICAgICAgLyogyc/Q0LSryuTEo8q9ICovDQorICAgIFVJTlQzMiBkd0NybnRpVmFsOyAgICAgICAgICAgICAgLyogQ1JOVEkgKi8NCisgICAgVUlOVDMyIGR3UmFSbnRpOyAgICAgICAgICAgICAgICAvKiBSYVJOVEkgKi8NCisgICAgVUlOVDMyIGR3VENSbnRpOyAgICAgICAgICAgICAgICAvKiBUQ1JOVEkgKi8NCisgICAgVUlOVDMyIGR3RHJ4U3RhdHVzOyAgICAgICAgICAgICAvKiBEcnhTdGF0dXMgKi8NCit9VF96UEhZX1VFX0luZm87DQorDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFVJTlQzMiBkd1NGTjsgICAgLy/Ksbzk0MXPog0KKyAgICANCisgICAgLyogz8LQ0MH3wb8gKi8NCisgICAgVUlOVDMyIGR3RGxUQkZsb3dbMl07DQorICAgIA0KKyAgICAvKiDJz9DQwffBvyAqLw0KKyAgICBVSU5UMzIgZHdVbFRCRmxvd1syXTsNCisgICAgDQorICAgIFVJTlQzMiBkd1VsUmJOdW1bMl07ICAgICANCisgICAgVUlOVDMyIGR3RGxSYk51bVsyXTsgICAgICAgDQorfVRfelBIWV9VTERMX0Zsb3dfSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyIGR3UG93ZXJBOyAgICAgIC8qIMC019REZWRpY2F0ZWTP+8+itcTTw9PaUERTQ0i5psLKsrmzpbXEss7K/SAqLw0KKyAgICBVSU5UMzIgZHdQb3dlckI7ICAgICAgLyogwLTX1ENvbW1vbs/7z6K1xNPD09pQRFNDSLmmwsqyubOltcSyzsr9ICovDQorfVRfWlBIWV9FRExfUEFfSU5GTzsNCisNCisvKiDPwtDQRENJzbO8xtDFz6IgKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyIGR3U0ZOOyAgICAgICAgICAgICAgICAgICAgICAvKiDKsbzk0MXPoiAqLw0KKyAgICBVSU5UMzIgZHdSZXNvdXJjZTsgICAgICAgICAgICAgICAgIC8qINfK1LS31sXk19a2ziAqLw0KKyAgICBVSU5UMzIgYWR3UmJCbXBbOF07ICAgICAgICAgICAgICAgIC8qIDEtYml0tcRSQi1kZW1hcHBpbmcgYml0bWFwICovDQorICAgIFVJTlQzMiBkd1JhVHlwZTsgICAgICAgICAgICAgICAgICAgLyogUkEgwODQzSAqLw0KKyAgICBVSU5UMzIgZHdSYk51bTsgICAgICAgICAgICAgICAgICAgIC8qIFJCyv0gKi8NCisgICAgVUlOVDMyIGR3UmJTdGFydDsgICAgICAgICAgICAgICAgICAvKiBSQsbkyrXOu9bDICovDQorICAgIFVJTlQzMiBkd1JiTGVuZ3RoOyAgICAgICAgICAgICAgICAgLyogUkKzpLbIICovDQorICAgIFVJTlQzMiBkd0hhcnFJZDsgICAgICAgICAgICAgICAgICAgLyogSEFSUSBJRCAqLw0KKyAgICBVSU5UMzIgZHdUYjFNY3M7ICAgICAgICAgICAgICAgICAgIC8qIFRCMSBNQ1PWtSAqLw0KKyAgICBVSU5UMzIgZHdUYjJNY3M7ICAgICAgICAgICAgICAgICAgIC8qIFRCMiBNQ1PWtSAqLw0KKyAgICBVSU5UMzIgZHdUYjFOZGk7ICAgICAgICAgICAgICAgICAgIC8qIFRCMSBOREkgKi8NCisgICAgVUlOVDMyIGR3VGIyTmRpOyAgICAgICAgICAgICAgICAgICAvKiBUQjIgTkRJICovDQorICAgIFVJTlQzMiBkd1RiMVJ2OyAgICAgICAgICAgICAgICAgICAgLyogVEIxIMjf0+Cw5rG+ICovDQorICAgIFVJTlQzMiBkd1RiMlJ2OyAgICAgICAgICAgICAgICAgICAgLyogVEIyIMjf0+Cw5rG+ICovDQorICAgIFVJTlQzMiBkd0RhaUlkeDsgICAgICAgICAgICAgICAgICAgLyogREFJIMv30v0gKi8NCit9VF9aUEhZX0VETF9EQ0lfREVDT0RFOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBUX1pQSFlfRURMX0RDSV9ERUNPREUgYXREbERjaUluZm9bMTBdOyAvKiDPwtDQMTC49tfT1qG1xERDSc2zvMYgKi8NCit9VF9aUEhZX0VETF9EQ0lfSU5GTzsNCisNCisNCisvKiDPwtDQSEFSUdDFz6LNs7zGICovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFVJTlQzMiBhZHdSZXZUYjFSdk51bVs0XTsgICAgICAgIC8qIFRCMSC499fUtaW2wMDbvNPNs7zGICovDQorICAgIFVJTlQzMiBhZHdSZXZUYjJSdk51bVs0XTsgICAgICAgIC8qIFRCMiC499fUtaW2wMDbvNPNs7zGICovDQorDQorICAgIC8qz8LQ0MSjv+m490hhcnEgSUQgQUNLoaJOQUNLyv0qLw0KKyAgICBVSU5UMzIgYWR3RGxIYXJxSWRBY2tbMl1bMTVdOyAgICAvKiAxNbj2SEFSUSBJRLXEQUNL0MXPoqOsuPdJRNfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdEbEhhcnFJZE5hY2tbMl1bMTVdOyAgIC8qIDE1uPZIQVJRIElEtcROQUNL0MXPoqOsuPdJRNfctcTA27zTICovDQorDQorICAgIFVJTlQzMiBhZHdEbEhhcnFTdWNjTnVtWzJdWzRdOyAgICAgIC8qIFRCMaGiVEIy1ti0q7PJuaa0zsr9zbO8xqOsINfctcTA27zT1rUgKi8NCit9VF9aUEhZX0VETF9IQVJRX0lORk87DQorDQorLyogUERTQ0i94sLrzbO8xtDFz6IgKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgLypTdGF0aXN0aWMgU2ktUm50aSBQRFNDSCBEZWNvZGUgSW5mbyovDQorICAgIFVJTlQzMiBhZHdTaVJudGlDcmNPa051bVsxMF07ICAgICAgIC8qIFNpLVJudGkgveLC6yBDUkNfT0sgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd1NpUm50aUNyY0Vyck51bVsxMF07ICAgICAgLyogU2ktUm50aSC94sLrIENSQ19FUlIgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGR3U2lSbnRpQ3JjT2tTdW1OdW07ICAgICAgICAgLyogU2ktUm50aSC94sLrIENSQ19PSyDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgZHdTaVJudGlDcmNFcnJTdW1OdW07ICAgICAgICAvKiBTaS1SbnRpIL3iwusgQ1JDX0VSUiDX3LXEwNu80yAqLw0KKw0KKyAgICAvKlN0YXRpc3RpYyBQLVJudGkgUERTQ0ggRGVjb2RlIEluZm8qLw0KKyAgICBVSU5UMzIgYWR3UFJudGlDcmNPa051bVsxMF07ICAgICAgICAvKiBQLVJudGkgveLC6yBDUkNfT0sgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd1BSbnRpQ3JjRXJyTnVtWzEwXTsgICAgICAgLyogUC1SbnRpIL3iwusgQ1JDX0VSUiCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgZHdQUm50aUNyY09rU3VtTnVtOyAgICAgICAgICAvKiBQLVJudGkgveLC6yBDUkNfT0sg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGR3UFJudGlDcmNFcnJTdW1OdW07ICAgICAgICAgLyogUC1SbnRpIL3iwusgQ1JDX0VSUiDX3LXEwNu80yAqLw0KKw0KKyAgICAvKlN0YXRpc3RpYyBSYS1SbnRpIFBEU0NIIERlY29kZSBJbmZvKi8NCisgICAgVUlOVDMyIGFkd1JhUm50aUNyY09rTnVtWzEwXTsgICAgICAgLyogUmEtUm50aSC94sLrIENSQ19PSyCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3UmFSbnRpQ3JjRXJyTnVtWzEwXTsgICAgICAvKiBSYS1SbnRpIL3iwusgQ1JDX0VSUiCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgZHdSYVJudGlDcmNPa1N1bU51bTsgICAgICAgICAvKiBSYS1SbnRpIL3iwusgQ1JDX09LINfctcTA27zTICovDQorICAgIFVJTlQzMiBkd1JhUm50aUNyY0VyclN1bU51bTsgICAgICAgIC8qIFJhLVJudGkgveLC6yBDUkNfRVJSINfctcTA27zTICovDQorDQorICAgIC8qU3RhdGlzdGljIFRjLVJudGkgUERTQ0ggRGVjb2RlIEluZm8qLw0KKyAgICBVSU5UMzIgYWR3VGNSbnRpQ3JjT2tOdW1bMTBdOyAgICAgICAvKiBUYy1SbnRpIL3iwusgQ1JDX09LILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdUY1JudGlDcmNFcnJOdW1bMTBdOyAgICAgIC8qIFRjLVJudGkgveLC6yBDUkNfT0sgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGR3VGNSbnRpQ3JjT2tTdW1OdW07ICAgICAgICAgLyogVGMtUm50aSC94sLrIENSQ19PSyDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgZHdUY1JudGlDcmNFcnJTdW1OdW07ICAgICAgICAvKiBUYy1SbnRpIL3iwusgQ1JDX09LINfctcTA27zTICovDQorDQorICAgIC8qU3RhdGlzdGljIEMtUm50aSBQRFNDSCBEZWNvZGUgSW5mbyovDQorICAgIFVJTlQzMiBhZHdDUm50aVRiQ3JjT2tOdW1bMl1bMTBdOyAgIC8qIFRCMaGiMiBDLVJudGkgveLC6yBDUkNfT0sgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpVGJDcmNFcnJOdW1bMl1bMTBdOyAgLyogVEIxoaIyIEMtUm50aSC94sLrIENSQ19FUlIgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpVGJDcmNPa1N1bU51bVsyXTsgICAgLyogVEIxoaIyIEMtUm50aSC94sLrIENSQ19PSyDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlUYkNyY0VyclN1bU51bVsyXTsgICAvKiBUQjGhojIgQy1SbnRpIL3iwusgQ1JDX0VSUiDX3LXEwNu80yAqLw0KKw0KKyAgICAvKlN0YXRpc3RpYyBTcHMtUm50aSBQRFNDSCBEZWNvZGUgSW5mbyovDQorICAgIFVJTlQzMiBhZHdTcHNSbnRpQ3JjT2tOdW1bMTBdOyAgICAgIC8qIFNwcy1SbnRpIL3iwusgQ1JDX09LILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdTcHNSbnRpQ3JjRXJyTnVtWzEwXTsgICAgIC8qIFNwcy1SbnRpIL3iwusgQ1JDX09LILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdTcHNSbnRpQ3JjT2tTdW1OdW07ICAgICAgIC8qIFNwcy1SbnRpIL3iwusgQ1JDX09LINfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdTcHNSbnRpQ3JjRXJyU3VtTnVtOyAgICAgIC8qIFNwcy1SbnRpIL3iwusgQ1JDX09LINfctcTA27zTICovDQorfVRfWlBIWV9FRExfUERTQ0hfSU5GTzsNCisNCisvKlBEQ0NIw6S87LLizbO8xtDFz6IqLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICAvKlN0YXRpc3RpYyBTaS1SbnRpIERjaSBJbmZvKi8NCisgICAgVUlOVDMyIGFkd1NpUm50aURjaTFBTnVtWzEwXTsgICAgICAgLyogU2ktUm50aSBEQ0lfMUEgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd1NpUm50aURjaTFDTnVtWzEwXTsgICAgICAgLyogU2ktUm50aSBEQ0lfMUMgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGR3U2lSbnRpRGNpMUFTdW1OdW07ICAgICAgICAgLyogU2ktUm50aSBEQ0lfMUEg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGR3U2lSbnRpRGNpMUNTdW1OdW07ICAgICAgICAgLyogU2ktUm50aSBEQ0lfMUMg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGR3U2lSbnRpRGNpU3VtTnVtOyAgICAgICAgICAgLyogU2ktUm50aSBEY2nX3LXEzbO8xrj2yv0gKi8NCisNCisgICAgLypTdGF0aXN0aWMgUC1SbnRpIERjaSBJbmZvKi8NCisgICAgVUlOVDMyIGFkd1BSbnRpRGNpMUFOdW1bMTBdOyAgICAgICAgLyogUC1SbnRpIERDSV8xQSCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3UFJudGlEY2kxQ051bVsxMF07ICAgICAgICAvKiBQLVJudGkgRENJXzFDILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBkd1BSbnRpRGNpMUFTdW1OdW07ICAgICAgICAgIC8qIFAtUm50aSBEQ0lfMUEg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGR3UFJudGlEY2kxQ1N1bU51bTsgICAgICAgICAgLyogUC1SbnRpIERDSV8xQyDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgZHdQUm50aURjaVN1bU51bTsgICAgICAgICAgICAvKiBQLVJudGkgRGNp19y1xM2zvMa49sr9ICovDQorDQorICAgIC8qU3RhdGlzdGljIFJhLVJudGkgRGNpIEluZm8qLw0KKyAgICBVSU5UMzIgYWR3UmFSbnRpRGNpMUFOdW1bMTBdOyAgICAgICAvKiBSYS1SbnRpIERDSV8xQSCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3UmFSbnRpRGNpMUNOdW1bMTBdOyAgICAgICAvKiBSYS1SbnRpIERDSV8xQyCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgZHdSYVJudGlEY2kxQVN1bU51bTsgICAgICAgICAvKiBSYS1SbnRpIERDSV8xQSDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgZHdSYVJudGlEY2kxQ1N1bU51bTsgICAgICAgICAvKiBSYS1SbnRpIERDSV8xQyDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgZHdSYVJudGlEY2lTdW1OdW07ICAgICAgICAgICAvKiBSYS1SbnRpIERjadfctcTNs7zGuPbK/SAqLw0KKw0KKyAgICAvKlN0YXRpc3RpYyBUYy1SbnRpIERjaSBJbmZvKi8NCisgICAgVUlOVDMyIGFkd1RjUm50aURjaTFOdW1bMTBdOyAgICAgICAgLyogVGMtUm50aSBEQ0lfMSCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3VGNSbnRpRGNpMUFOdW1bMTBdOyAgICAgICAvKiBUYy1SbnRpIERDSV8xQSCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgZHdUY1JudGlEY2kxU3VtTnVtOyAgICAgICAgICAvKiBUYy1SbnRpIERDSV8xINfctcTA27zTICovDQorICAgIFVJTlQzMiBkd1RjUm50aURjaTFBU3VtTnVtOyAgICAgICAgIC8qIFRjLVJudGkgRENJXzFBINfctcTA27zTICovDQorICAgIFVJTlQzMiBkd1RjUm50aURjaVN1bU51bTsgICAgICAgICAgIC8qIFRjLVJudGkgRGNp19y1xM2zvMa49sr9ICovDQorDQorICAgIC8qU3RhdGlzdGljIFRwYy1SbnRpIERjaSBJbmZvKi8NCisgICAgVUlOVDMyIGFkd1RwY1JudGlEY2kzTnVtWzEwXTsgICAgICAgLyogVHBjLVJudGkgRENJXzMgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd1RwY1JudGlEY2kzQU51bVsxMF07ICAgICAgLyogVHBjLVJudGkgRENJXzNBILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdUcGNSbnRpRGNpM1N1bU51bTsgICAgICAgIC8qIFRwYy1SbnRpIERDSV8zINfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdUcGNSbnRpRGNpM0FTdW1OdW07ICAgICAgIC8qIFRwYy1SbnRpIERDSV8zQSDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3UHVjY2hUcGNEY2kzM0FTdW1OdW07DQorICAgIFVJTlQzMiBhZHdQdXNjaFRwY0RjaTMzQVN1bU51bTsNCisNCisgICAgLypTdGF0aXN0aWMgQy1SbnRpIERjaSBJbmZvKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpMDFOdW1bMTBdOyAgICAgICAgLyogRENJMF8xILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTAyTnVtWzEwXTsgICAgICAgIC8qIERDSTBfMiCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2kwM051bVsxMF07ICAgICAgICAvKiBEQ0kwXzMgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpMDROdW1bMTBdOyAgICAgICAgLyogRENJMF80ILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTQxTnVtWzEwXTsgICAgICAgIC8qIERDSTQxILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTQyTnVtWzEwXTsgICAgICAgIC8qIERDSTQyILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTQzTnVtWzEwXTsgICAgICAgIC8qIERDSTQzILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTQ0TnVtWzEwXTsgICAgICAgIC8qIERDSTQ0ILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTFOdW1bMTBdOyAgICAgICAgIC8qIEMtUm50aSBEQ0lfMSCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2kxQU51bVsxMF07ICAgICAgICAvKiBDLVJudGkgRENJXzFBILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTFCTnVtWzEwXTsgICAgICAgIC8qIEMtUm50aSBEQ0lfMUIgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpMUROdW1bMTBdOyAgICAgICAgLyogQy1SbnRpIERDSV8xRCCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2kyTnVtWzEwXTsgICAgICAgICAvKiBDLVJudGkgRENJXzIgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpMkFOdW1bMTBdOyAgICAgICAgLyogQy1SbnRpIERDSV8yQSCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2kyQk51bVsxMF07ICAgICAgICAvKiBDLVJudGkgRENJXzJCILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTJDTnVtWzEwXTsgICAgICAgIC8qIEMtUm50aSBEQ0lfMkMgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpMDFTdW1OdW07ICAgICAgICAgLyogQy1SbnRpIERDSV8wMSDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2kwMlN1bU51bTsgICAgICAgICAvKiBDLVJudGkgRENJXzAyINfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTAzU3VtTnVtOyAgICAgICAgIC8qIEMtUm50aSBEQ0lfMDMg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpMDRTdW1OdW07ICAgICAgICAgLyogQy1SbnRpIERDSV8wNCDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2k0MVN1bU51bTsgICAgICAgICAvKiBDLVJudGkgRENJXzQg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpNDJTdW1OdW07ICAgICAgICAgLyogQy1SbnRpIERDSV80INfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTQzU3VtTnVtOyAgICAgICAgIC8qIEMtUm50aSBEQ0lfNCDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2k0NFN1bU51bTsgICAgICAgICAvKiBDLVJudGkgRENJXzQg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpMVN1bU51bTsgICAgICAgICAgLyogQy1SbnRpIERDSV8xINfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTFBU3VtTnVtOyAgICAgICAgIC8qIEMtUm50aSBEQ0lfMUEg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpMUJTdW1OdW07ICAgICAgICAgLyogQy1SbnRpIERDSV8xQiDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2kxRFN1bU51bTsgICAgICAgICAvKiBDLVJudGkgRENJXzFEINfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTJTdW1OdW07ICAgICAgICAgIC8qIEMtUm50aSBEQ0lfMiDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2kyQVN1bU51bTsgICAgICAgICAvKiBDLVJudGkgRENJXzJBINfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTJCU3VtTnVtOyAgICAgICAgIC8qIEMtUm50aSBEQ0lfMkIg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpMkNTdW1OdW07ICAgICAgICAgLyogQy1SbnRpIERDSV8yQyDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2lTdW1OdW07ICAgICAgICAgICAvKiBDLVJudGkgRGNp19y1xM2zvMa49sr9ICovDQorDQorICAgIC8qU3RhdGlzdGljIFNwcy1SbnRpIERjaSBJbmZvKi8NCisgICAgVUlOVDMyIGFkd1Nwc1JudGlEY2kxTnVtWzEwXTsgICAgICAgLyogU3BzLVJudGkgRENJXzEgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd1Nwc1JudGlEY2kxQU51bVsxMF07ICAgICAgLyogU3BzLVJudGkgRENJXzFBILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdTcHNSbnRpRGNpMk51bVsxMF07ICAgICAgIC8qIFNwcy1SbnRpIERDSV8yILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdTcHNSbnRpRGNpMkFOdW1bMTBdOyAgICAgIC8qIFNwcy1SbnRpIERDSV8yQSCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3U3BzUm50aURjaTJCTnVtWzEwXTsgICAgICAvKiBTcHMtUm50aSBEQ0lfMkIgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd1Nwc1JudGlEY2kyQ051bVsxMF07ICAgICAgLyogU3BzLVJudGkgRENJXzJCILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdTcHNSbnRpRGNpMVN1bk51bTsgICAgICAgIC8qIFNwcy1SbnRpIERDSV8xINfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdTcHNSbnRpRGNpMUFTdW5OdW07ICAgICAgIC8qIFNwcy1SbnRpIERDSV8xQSDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3U3BzUm50aURjaTJTdW5OdW07ICAgICAgICAvKiBTcHMtUm50aSBEQ0lfMiDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3U3BzUm50aURjaTJBU3VuTnVtOyAgICAgICAvKiBTcHMtUm50aSBEQ0lfMkEg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd1Nwc1JudGlEY2kyQlN1bk51bTsgICAgICAgLyogU3BzLVJudGkgRENJXzJCINfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdTcHNSbnRpRGNpMkNTdW5OdW07ICAgICAgIC8qIFNwcy1SbnRpIERDSV8yQiDX3LXEwNu80yAqLw0KK31UX1pQSFlfRURMX1BEQ0NIX0lORk87DQorDQorLypQSElDSM2zvMbQxc+iKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyIGFkd0hpTmc7ICAgICAgICAgICAgICAgICAgICAgLyogTmcgKi8NCisgICAgVUlOVDMyIGFkd0hpRHVyYXRpb247ICAgICAgICAgICAgICAgLyogUEhJQ0ggRHVyYXRpb24gKi8NCisgICAgVUlOVDMyIGFkd1BoaWNoQWNrTnVtWzRdWzEwXTsgICAgICAgLyogUEhJQ0gxoaIyILC019PWobWltsDA27zTzbO8xiAqLw0KKyAgICBVSU5UMzIgYWR3UGhpY2hOYWNrTnVtWzRdWzEwXTsgICAgICAvKiBQSElDSDGhojIgsLTX09ahtaW2wMDbvNPNs7zGICovDQorICAgIFVJTlQzMiBhZHdQaGljaEFja1N1bU51bVs0XTsgICAgICAgIC8qIFBISUNIMaGiMiCwtNfctcTA27zTzbO8xiAqLw0KKyAgICBVSU5UMzIgYWR3UGhpY2hOYWNrU3VtTnVtWzRdOyAgICAgICAvKiBQSElDSDGhojIgsLTX3LXEwNu8082zvMYgKi8NCisgICAgVUlOVDMyIGFkd1BoaWNoMUdycFsxMF07ICAgICAgICAgICAgLyogUEhJQ0gxtcTX6brFICAgICAgKi8NCisgICAgVUlOVDMyIGFkd1BoaWNoMVNlcVsxMF07ICAgICAgICAgICAgLyogUEhJQ0gxtcTAqca10PLB0LrFICAgICovDQorICAgIFVJTlQzMiBhZHdQaGljaDJHcnBbMTBdOyAgICAgICAgICAgIC8qIFBISUNIMrXE1+m6xSAgICAgICovDQorICAgIFVJTlQzMiBhZHdQaGljaDJTZXFbMTBdOyAgICAgICAgICAgIC8qIFBISUNIMrXEwKnGtdDywdC6xSAgICAqLw0KKyAgICBVSU5UMzJhZHdIaUFja051bTsgICAgICAgICAgICAgICAgIC8qIEhpIEFja8r9xL/Ns7zGICAgICovDQorICAgIFVJTlQzMmFkd0hpTmFja051bTsgICAgICAgICAgICAgICAgLyogSGkgTmFja8r9xL/Ns7zGICAgICovDQorfVRfWlBIWV9FRExfUEhJQ0hfSU5GTzsNCisNCisvKiBQQ0ZJQ0jNs7zG0MXPoiAqLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgZHdDYUNyb3NzSW5kOyAgICAgICAgICAgICAgIC8qv+fU2LKotfe2yNa4yr4qLw0KKyAgICBVSU5UMzIgYWR3Q2ZpVmFsVGFiWzEwXTsgICAgICAgICAgIC8q0a27t82zvMYxMLj219PWobXEQ0ZJ1rUqLw0KKyAgICBVSU5UMzIgYWR3Q2ZpTnVtUGVyVmFsWzRdOyAgICAgICAgIC8qzbO8xrK7zaxDRknWtbXEuPbK/SovDQorICAgIFVJTlQzMiBhZHdDZmlOdW1QZXJTRls0XVsxMF07ICAgICAgLyqwtNfT1qHNs7zGsrvNrENGSda1tcS49sr9Ki8NCisgICAgVUlOVDMyIGR3U2NjUGRzY2hTdGFydDsgICAgICAgICAgICAvKr/n1NiyqLX3tsjH6b/2z8K1xFNDQyBDRkkqLw0KK31UX1pQSFlfRURMX1BDRklDSF9JTkZPOw0KKw0KKw0KKy8qyO28/rmk1/fXtMys0MXPos2zvMYqLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgZHdBYnNTRk47ICAgICAgICAgICAgICAgLyrKsbzk0MXPoiovDQorCVVJTlQzMiBkd1JudGlBcGx5U3ViZkNudFsxMF07DQorICAgIFVJTlQzMiBkd1NpUm50aUFwcGx5Q250OyAgICAgICAvKiDI7bz+yrnE3FNJUk5USbXEtM7K/SAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlBcHBseUNudDsgICAgICAgLyogyO28/sq5xNxDUk5USbXEtM7K/SAqLw0KKyAgICBVSU5UMzIgZHdUY1JudGlBcHBseUNudDsgICAgICAgLyogyO28/sq5xNxUQ1JOVEm1xLTOyv0gKi8NCisgICAgVUlOVDMyIGR3UmFSbnRpQXBwbHlDbnQ7ICAgICAgIC8qIMjtvP7KucTcUkFSTlRJtcS0zsr9ICovDQorICAgIFVJTlQzMiBkd1BSbnRpQXBwbHlDbnQ7ICAgICAgICAvKiDI7bz+yrnE3FBSTlRJtcS0zsr9ICovDQorICAgIFVJTlQzMiBkd01SbnRpQXBwbHlDbnQ7ICAgICAgICAvKiDI7bz+yrnE3E1STlRJtcS0zsr9ICovDQorICAgIFVJTlQzMiBhZHdQdWNjaFJudGlBcHBseUNudDsgICAvKiDI7bz+yrnE3FB1Y2NoUk5USbXEtM7K/SAqLw0KKyAgICBVSU5UMzIgYWR3UHVzY2hSbnRpQXBwbHlDbnQ7ICAgLyogyO28/sq5xNxQdXNjaFJOVEm1xLTOyv0gKi8NCisgICAgVUlOVDMyIGFkd1Nwc1JudGlBcHBseUNudDsgICAgIC8qIMjtvP7KucTcU1BTUk5USbXEtM7K/SAqLw0KKyAgICBVSU5UMzIgYWR3RHRjaENmZ0NudDsgICAgICAgICAgLyogyO28/kRUQ0jF5NbDtM7K/SAqLw0KKyAgICBVSU5UMzIgYWR3RHRjaEludENudDsgICAgICAgICAgLyogyO28/kRUQ0jW0LbPyc+xqLTOyv0gKi8NCisgICAgVUlOVDMyIGR3U2liQ2ZnQ250OyAgICAgICAgICAgIC8qIMjtvP5TSULF5NbDtM7K/SAqLw0KKyAgICBVSU5UMzIgZHdTaWJJbnRDbnQ7ICAgICAgICAgICAgLyogyO28/lNJQtbQts/Jz7GotM7K/SAqLw0KKyAgICBVSU5UMzIgZHdQY2hDZmdDbnQ7ICAgICAgICAgICAgLyogyO28/lBDSMXk1sO0zsr9ICovDQorICAgIFVJTlQzMiBkd1BjaEludENudDsgICAgICAgICAgICAvKiDI7bz+UENI1tC2z8nPsai0zsr9ICovDQorICAgIFVJTlQzMiBkd1JhckNmZ0NudDsgICAgICAgICAgICAvKiDI7bz+UkFSxeTWw7TOyv0gKi8NCisgICAgVUlOVDMyIGR3UmFySW50Q250OyAgICAgICAgICAgIC8qIMjtvP5SQVLW0LbPyc+xqLTOyv0gKi8NCisgICAgVUlOVDMyIGR3TWJtc0NmZ0NudDsgICAgICAgICAgIC8qIMjtvP5NQlNGTsXk1sO0zsr9ICovDQorICAgIFVJTlQzMiBkd01ibXNJbnRDbnQ7ICAgICAgICAgICAvKiDI7bz+TUJTRk7W0LbPyc+xqLTOyv0gKi8NCit9VF9aUEhZX0VETF9XT1JLX0lORk87DQorDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFVJTlQzMiAgICAgICAgICAgZHdTRk47DQorICAgIFVJTlQzMiAgICAgICAgICAgZHdVZUFudE51bTsNCisgICAgVUlOVDMyICAgICAgICAgICBkd0JzQW50TnVtOw0KKyAgICBVSU5UMzIgICAgICAgICAgIGR3RGxCYW5kV2lkdGg7DQorICAgIFVJTlQzMiAgICAgICAgICAgZHdUcmFuc01vZGU7DQorICAgIFVJTlQzMiAgICAgICAgICAgZHdSeFR4Qml0bWFwOw0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd05vaXNlT3V0cHV0Ow0KKw0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcnBPdXRwdXQwOw0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcnBPdXRwdXQxOw0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcnBPdXRwdXQyOw0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcnBPdXRwdXQzOw0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcnBPdXRwdXQ0Ow0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcnBPdXRwdXQ1Ow0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcnBPdXRwdXQ2Ow0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcnBPdXRwdXQ3Ow0KKw0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcE91dHB1dDA7DQorICAgIFNJTlQ2NCAgICAgICAgICAgc2R3UnNwT3V0cHV0MTsNCisgICAgU0lOVDY0ICAgICAgICAgICBzZHdSc3BPdXRwdXQyOw0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcE91dHB1dDM7DQorfVRfelBIWV9FRExfU0lOUl9JTkZPOw0KKw0KKyNpZiAwDQorLypDTU5fTTAwNCAgU3RhcnQgKi8NCisNCisvKioqKioqKioqKioqKioqKioqX0RFQlVHX1RNVF9SRUZFUl9HQU9UT05HIGFkZCBieSB6aGFuZ3poaXJvbmcgMjAxMjA4MTcqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisvLyNpZmRlZiBfREVCVUdfVE1UX1JFRkVSX0dBT1RPTkcNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgIFVJTlQzMiAgZHdQc3NQZWFrVmFsOyAgICAvKiBQU1MgUGVhayBWYWx1ZSBEYXRhICovDQorICAgICBVSU5UMzIgIGR3UGVha1Bvc2l0aW9uOyAgLyogUGVhayBQb3NpdGlvbiAqLw0KKyAgICAgVUlOVDMyICBkd1Bzc0luZGljaWVzOyAgIC8qIFBTUyBJbmRpY2llcyAqLw0KK31UX3pQSFlfUFNTSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgIFVJTlQxNiB3VWFyZmNuOyAgLyogxrW14yAqLw0KKyAgICAgVF96UEhZX1BTU0luZm8gIGF0UFNTSW5mb1sxNl07DQorfVRfelBIWV9VYXJmY25Qc3NJbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgICAgIGR3U0ZOOyAgICAvL8qxvOTQxc+iDQorICAgIFRfelBIWV9VYXJmY25Qc3NJbmZvICAgYXRVYXJmY25Qc3NJbmZvWzRdOw0KK31UX3pQSFlfRUNTUl9Qc3NJbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgZHdTRk47ICAgIC8vyrG85NDFz6INCisNCisgICAgVUlOVDMyIGR3U3REbEZybVRpbWVPZmZzZXQ7ICAvKiBETCBGcmFtZSBUaW1pbmcgT2Zmc2UgKi8NCisgICAgVUlOVDMyIGR3U3RVbEZybVRpbWVPZmZzZXQ7ICAvKiBVTCBGcmFtZSBUaW1pbmcgT2Zmc2UgKi8NCisgICAgVUlOVDMyIGR3U3RVbFRBOyAgICAgICAgICAgICAvKiBVTCBUaW1pbmcgQWR2YW5jZSAqLw0KKw0KKyAgICBVSU5UMTYgd0NoRGxGcm1UaW1lOyAgICAgICAgIC8qIENoYW5nZSBpbiBETCBGcmFtZSBUaW1pbmcgKi8NCisgICAgVUlOVDE2IHdDaFVsRnJtVGltZTsgICAgICAgICAvKiBDaGFuZ2UgaW4gVUwgRnJhbWUgVGltaW5nICovDQorfVRfelBIWV9FQ1NSX1NlckNlbGxGcm1UaW1pbmc7DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFVJTlQxNiB3Q2VsbElkOyAgICAgICAgICAgLyogQmFycmVkIENlbGwgSUQgKi8NCit9VF96UEhZX0JhcnJlZENlbGxJZDsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgIFVJTlQzMiBkd1NTU1BlYWtWYWw7ICAgIC8qIFNTUyBQZWFrIFZhbHVlIERhdGEgKi8NCisgICAgIFVJTlQzMiBkd1NTU1Bvc2l0b247ICAgIC8qIFNTUyBQb3NpdGlvbiAqLw0KKyAgICAgVUlOVDMyIGR3Q3BNb2RlOyAgICAgICAgLyogQ1AgKi8NCisgICAgIFVJTlQzMiBkd0hhbGZGcm1IeXB0aDsgIC8qIEhhbGYgRnJhbWUgSHlwb3RoZXNpcyAqLw0KK31UX3pQSFlfRGV0ZWN0ZWRDZWxsOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgIFRfelBIWV9CYXJyZWRDZWxsSWQgYXRCYXJyZWRDZWxsSWRbMTZdOw0KKyAgIFRfelBIWV9EZXRlY3RlZENlbGwgYXREZXRlY3RlZENlbGxbMzJdOw0KK31UX3pQSFlfRUNTUl9TU1NJbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgZHdTRk47ICAgICAgICAgICAgIC8vyrG85NDFz6INCisgICAgVUlOVDE2IHdJc0lkbGVNb2RlOyAgICAgICAvKiBJcyBJZGxlIE1vZGUgKi8NCisgICAgVUlOVDE2IHdNZWFzQlc7ICAgICAgICAgICAvKiBNZWFzdXJlbWVudCBCVyAqLw0KKyAgICBVSU5UMTYgd0NlbGxJZDsgICAgICAgICAgIC8qIENlbGwgSUQgKi8NCisgICAgVUlOVDMyIGR3UnhUaW1lT2Zmc2V0OyAgICAvKiBUaW1pbmcgT2Zmc2V0IFJ4ICovDQorfVRfelBIWV9FQ1NSX1NlckNlbGxNZWFzUmVzdWx0Ow0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgZHdFYXJmY247ICAgICAvKiDGtbXjICovDQorICAgIFVJTlQzMiBkd0R1cGxleE1vZGU7IC8qICBUREQgb3IgRkREKi8NCisgICAgVUlOVDE2IHdDZWxsSWQ7ICAgICAgLyogINChx/hJRCAqLw0KKyAgICBVSU5UMTYgd0NwbW9kZTsgICAgICAvKiBDUCBtb2RlICovDQorfVRfelBIWV9DZWxsSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyIGR3U0ZOOyAgICAvL8qxvOTQxc+iDQorICAgIFRfelBIWV9DZWxsSW5mbyAgdENlbGxJbmZvOw0KK31UX3pQSFlfRUNTUl9OZWJvckNlbGxNZWFzUmVzdWx0Ow0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgZHdTRk47ICAgIC8vyrG85NDFz6INCisgICAgVUlOVDE2IHdTZXJDZWxsSWQ7ICAgIC8qIFNlcnZpbmcgQ2VsbCBJRCAqLw0KKyAgICBVSU5UMTYgd1RyYW5zQW50Q25mOyAgLyogVHJhbnNtaXQgQW50ZW5uYSBDb25maWcgKi8NCisgICAgVUlOVDE2IHdTZm5PZmZzZXQ7ICAgIC8qIFNGTiBPZmZzZXQgKi8NCisgICAgVUlOVDE2IHdDcmNWYWx1ZTsgICAgIC8qIENSQyAqLw0KK31UX3pQSFlfRUNTUl9QYmNoSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICBiVWVTcnNFbmFibGU7ICAgICAgICAgLyogVUUgU1JTIEVuYWJsZSDKx7fxVUXIt7aot6JTUlMqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgIGJDZWxsU3JzRW5hYmxlOyAgICAgICAvKiBDZWxsIFNSUyBFbmFibGUgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgZHdTdGFydFJiOyAgICAgICAgICAgIC8qIFN0YXJ0IFJCICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgIGR3UmJOdW07ICAgICAgICAgICAgICAvKiBSQsr9ICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgIGR3WmNSb290OyAgICAgICAgICAgICAvKiBaQyBSb290ICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgIGR3Q3ljbGljU2hpZnQ7ICAgICAgICAvKiBDeWNsaWMgU2hpZnQgKi8NCisgICAgLy9TSU5UMzIgICAgICAgICAgICAgICAgICBzZHdTcnNUeFBvd2VyOyAgICAgICAvKiC3osnkuaa/2NbQ0tHT0CAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgIGJUb25lT2Zmc2V0RW5hYmxlOyAgICAvKiBUb25lIE9mZnNldCBFbmFibGUgKi8NCit9VF96UEhZX1Nyc1R4X1JlcG9ydDsvL7Wxx7AxMLj219PWodDFz6INCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyICAgICAgICAgICBkd1JhUm50aTsNCisgICAgVUlOVDMyICAgICAgICAgICBkd1RDUm50aTsNCisgICAgVUlOVDMyICAgICAgICAgICBkd0RyeFN0YXR1czsNCisgICAgLy9TSU5UMzIgZHdUaW1lQWR2YW5jZTsgLypUX3pQSFlfRUNTUl9TZXJDZWxsRnJtVGltaW5nIGR3U3RVbFRBKi8NCit9VF96UEhZX0VVRV9JbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgICAgICAgICAgIGR3U0ZOOyAgICAvL8qxvOTQxc+iDQorICAgIFVJTlQzMiAgICAgICAgICAgZHdQYWRpbmc7DQorICAgIC8qIM/C0NDB98G/ICovDQorICAgIFVJTlQ2NCAgICAgICAgICAgZHdEbFRCMUZsb3c7DQorICAgIFVJTlQ2NCAgICAgICAgICAgZHdEbFRCMkZsb3c7DQorDQorICAgIC8qIMnP0NDB98G/ICovDQorICAgIFVJTlQ2NCAgICAgICAgICAgZHdVbEZsb3c7DQorICAgIA0KKyAgICBVSU5UMzIgZHdVbFJiTnVtOyAgICAgICAgIC8vtqbA+7/J08O907/aIFBVU0NIIFJiIENvdW50KMnP0NBSQsr9KS4gIFJlc291cmNlIFNjaGVkdWxlIEluZm9ybWF0aW9uDQorICAgIFVJTlQzMiBkd0RsUmJOdW07ICAgICAgICAgLy+2psD7v8nTw73Tv9ogUERTQ0ggUmIgQ291bnQoz8LQ0FJCyv0pLiAgUmVzb3VyY2UgU2NoZWR1bGUgSW5mb3JtYXRpb24NCisNCit9VF96UEhZX1VMRExfRmxvd19JbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgICAgICAgICAgIGR3U0ZOOw0KKyAgICBVSU5UMzIgICAgICAgICAgIGR3VWVBbnROdW07DQorICAgIFVJTlQzMiAgICAgICAgICAgZHdCc0FudE51bTsNCisgICAgVUlOVDMyICAgICAgICAgICBkd0RsQmFuZFdpZHRoOw0KKyAgICBVSU5UMzIgICAgICAgICAgIGR3VHJhbnNNb2RlOw0KKyAgICBVSU5UMzIgICAgICAgICAgIGR3UnhUeEJpdG1hcDsNCisgICAgU0lOVDY0ICAgICAgICAgICBzZHdOb2lzZU91dHB1dDsNCisNCisgICAgU0lOVDY0ICAgICAgICAgICBzZHdSc3JwT3V0cHV0MDsNCisgICAgU0lOVDY0ICAgICAgICAgICBzZHdSc3JwT3V0cHV0MTsNCisgICAgU0lOVDY0ICAgICAgICAgICBzZHdSc3JwT3V0cHV0MjsNCisgICAgU0lOVDY0ICAgICAgICAgICBzZHdSc3JwT3V0cHV0MzsNCisgICAgU0lOVDY0ICAgICAgICAgICBzZHdSc3JwT3V0cHV0NDsNCisgICAgU0lOVDY0ICAgICAgICAgICBzZHdSc3JwT3V0cHV0NTsNCisgICAgU0lOVDY0ICAgICAgICAgICBzZHdSc3JwT3V0cHV0NjsNCisgICAgU0lOVDY0ICAgICAgICAgICBzZHdSc3JwT3V0cHV0NzsNCisNCisgICAgU0lOVDY0ICAgICAgICAgICBzZHdSc3BPdXRwdXQwOw0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcE91dHB1dDE7DQorICAgIFNJTlQ2NCAgICAgICAgICAgc2R3UnNwT3V0cHV0MjsNCisgICAgU0lOVDY0ICAgICAgICAgICBzZHdSc3BPdXRwdXQzOw0KK31UX3pQSFlfRURMX0NBTENfRm9yX1NJTlI7DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFVJTlQxNiB3U2VydmluZ0NlbGxGcmVxOwkvKrf+zvHQocf4xrW14yovDQorICAgIFVJTlQxNiB3TmV4dEludGVyRnJlcTsJICAgIC8qz8K49kdhcLXE0uzGtbmk1/fGtbXjKi8NCisgICAgVUlOVDE2IHdTZXJ2aW5nQ2VsbElEOwkgICAgLyq3/s7x0KHH+NChx/hJRCovDQorICAgIFRfelBIWV9FQ1NSX0ZyZXFQb2ludEluZm9yICBhdEZyZXFQb2ludEluZm9yVGFiWzRdOw0KKyAgICBVSU5UMzIJdENzck1haW5TdGF0ZTsJCS8qQ1NS19PPtc2ztbHHsNe0zKwqLw0KKyAgICBUX3pQSFlfRUNTUl9Dc3JDZWxsSW5mbwkgICAgdENzckNlbGxJbmZvWzE2XTsgLyqx3MPiveG5uczluf2086Osvas2NNChx/jL9bz1tb0xNiovDQorfVRfelBIWV9FQ1NSX0NlbGxEYXRhQmFzZUluZm87DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgICBXT1JEICAgICAgICAgICAgIHdNc2dJZDsNCisgICAgIFdPUkQgICAgICAgICAgICAgYlBhZGRpbmc7DQorICAgICBXT1JEICAgICAgICAgICB3TWVhc0JpdE1hc2s7DQorICAgICBXT1JEICAgICAgICAgICB3UGFkaW5nMTsNCit9VF96UEhZX0VDU1JfTWVhc01hc2tTZXRJbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICAgV09SRCAgICAgICAgICAgIHdTdGFydFBoeUNlbGxJZDsNCisgICAgIFdPUkQgICAgICAgICAgICB3UGh5Q2VsbElkTnVtOw0KK30gVF96UEhZX1BoeUNlbGxJZFJhbmdlOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICAgICAgICAgICB3RWFyZmNuOw0KKyAgICBXT1JEICAgICAgICAgICB3TWVhc0JhbmRXaWR0aDsNCisgICAgV09SRCAgICAgICAgICAgd0NlbGxOdW07DQorICAgIFdPUkQgICAgICAgICAgIGF3UGh5Q2VsbElkTGlzdFszMl07DQorICAgIFdPUkQgICAgICAgICAgIHdQYWRkaW5nOw0KKyAgICBXT1JEICAgICAgICAgICB3UHJlc2VuY2VBbnRlbm5hUG9ydDE7DQorICAgIFdPUkQgICAgICAgICAgIHdOQ2VsbENvbmZpZzsNCisgICAgV09SRCAgICAgICAgICAgd0JsYWNrQ2VsbE51bTsNCisgICAgVF96UEhZX1BoeUNlbGxJZFJhbmdlICBhdFBoeUNlbGxJZFJhbmdlTGlzdFszMl07DQorICAgIFdPUkQgICAgICAgICAgd05vRHJ4UmVwb3J0UGVyaW9kOw0KKyAgICBXT1JEICAgICAgICAgIHdEcnhSZXBvcnRQZXJpb2Q7DQorfSBUX3pQSFlfTWVhc0ZyZXFJbmZvOw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd01zZ0lkOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd1JlcG9ydFF1YW50aXR5Ow0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYk1heENlbGxSZXBvcnRQZXJGcmVxOw0KKyAgICBXT1JEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd0ZyZXFOdW07DQorICAgIFRfelBIWV9NZWFzRnJlcUluZm8gICAgICAgICBhdE1lYXNGcmVxSW5mb0xpc3RbNF07DQorfVRfelBIWV9FQ1NSX01lYXNDb25maWdJbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgIAkJCQlkd1JmY1N5blN0YXRlOyAgICAgICAgICAgICAgLypSRkPNrLK9u/K3x82ssr21xNa4yr4gs/XKvLuvzqq3x82ssr0qLw0KKyAgICBVSU5UMzIgIAkJCQlkd1JmY1N0YXRlOyAgICAgICAgICAgICAgICAgLypSRkPJz6Giz8LQ0Na4yr4osPy6rNTazNjK4tfT1qHJz8/C0NDNrMqxtObU2rXEx+m/9imjrLP1yry7r86qSURMRde0zKwqLw0KKyAgICBCT09MICAgCQkJCQkJYlJmY1NlcnZDZWxsUmVjZWl2ZTsgICAgICAvKrf+zvHQocf4u/LB2sf4vdPK1da4yr6jrMq508PKsbTyv6qjrMSsyM+52LHVKi8NCisgICAgQk9PTCAgCQkJCQkJYlJmY0NzckNlbGxTZWFyY2g7ICAgICAgICAgIC8q0KHH+MvRy/e78s2ssr3WuMq+o6yz9cq8u6/OqrnYsdUqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICBkd1JmY0NzckNlbGxNZWFzOyAgICAgICAgICAvKtChx/iy4sG/1rjKvrvyyajGtda4yr6jrMjnufvKx8moxrXU8lJGQ19zeW5fc3RhdGXJ6M6qt8fNrLK9o6y/ydLU0aHU8bWl0KHH+Lu5ysfLq9Chx/ijrLP1yry7r7nYsdUqLw0KKyAgICBVSU5UMzIgICAJCQkJCQlkd1JmY0ZyZXF1ZW5jZVBvaW50OyAgICAgICAvKsa1tePJ6NbDILP1yry7r86qMCAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgIGR3UmZjRmlsdGVyQmFuZDsgICAgICAgICAgICAvKrT4v+3J6NbDILP1yry7r86qMjBNSHoqLw0KKyAgICBVSU5UMzIgIAkJCQkJCWR3UmZjQXN5bk9mZnNldDsgICAgICAgICAgIC8qt8fNrLK9se3WtNDQxvDKvMqxvOSjrLP1yry7r86qMCovDQorICAgIFVJTlQzMiAJCQkJCQlkd1JmY1J4T2Zmc2V0QW50MDsgICAgICAgICAvKtb3zayyvbHttcTWobHfveejqMzsz98wo6mjrLP1yry7r86qMCovDQorICAgIFVJTlQzMiAJCQkJCQlkd1JmY1J4T2Zmc2V0QW50MTsgICAgICAgICAvKlJYMc2ssr2x7bXE1qGx373no6jM7M/fMaOpo6yz9cq8u6/OqjAqLw0KKyAgICBVSU5UMzIgIAkJCQkJCWR3UmZjUnhPZmZzZXQwOyAgICAgICAgICAgIC8qsuLBv7HtMLXE1qGx373no6yz9cq8u6/OqjAqLw0KKyAgICBVSU5UMzIgCQkJCQkJZHdSZmNSeE9mZnNldDE7ICAgICAgICAgICAgLyqy4sG/se0xtcTWobHfvecss/XKvLuvzqowKi8NCisgICAgVUlOVDE2ICAgCQkJCQkJY1JmY1N1YkZyYW1lTm87ICAgICAgICAgICAvKtb3zayyvbHttcTWobHfvee9+NDQtPO198qx0OjSqlJGQ9fT1qHM+Neqo6y4w7LOyv3WuMP3zPjXqrXExL+1xNfT1qG6xSC3ts6nMC05ILP1yrzWtTB4ZmYgKi8NCisgICAgVUlOVDE2ICAJCQkJCQljUmZjU3ViRnJhbWVObzA7ICAgICAgICAgIC8qsuLBv7HtMLXE1qGx373nvfjQ0LTztffKsdDo0qpSRkPX09ahzPjXqqOsuMOyzsr91rjD98z416q1xMS/tcTX09ahusUgt7bOpzAtOSCz9cq81rUweGZmKi8NCisgICAgVUlOVDE2ICAJCQkJCQljUmZjU3ViRnJhbWVObzE7ICAgICAgICAgIC8qsuLBv7HtMbXE1qGx373nvfjQ0LTztffKsdDo0qpSRkPX09ahzPjXqqOsuMOyzsr91rjD98z416q1xMS/tcTX09ahusUgt7bOpzAtOSCz9cq81rUweGZmKi8NCisgICAgVUlOVDE2ICAgCQkJCQkJY1JmY1N1YkZyYW1lTm8yOyAgICAgLyp0eLHttcSOrbHfvee9+NDQtPO198qx0OjSqlJGQ9fT1qHM+Neqo6y4w7LOyv3WuMP3zPjXqrXExL+1xNfT1qG6xSC3ts6nMC05ILP1yrzWtTB4ZmYqLw0KKyAgICBVSU5UMzIgIAkJCSAgICAgICBkd1JmY1VETW9kZTsgICAgICAgICAgICAgICAgLyrW982ssr2x7cnPz8LQ0NfT1qHF5NbDLLP1yry7r86qRV9GUkFNRV9VRF9UWVBFMiovDQorICAgIFVJTlQzMiAgCQkJICAgICAgIGR3UmZjQ1BNb2RlOyAgICAgICAgICAgICAgICAvKtb3zayyvbHttcRjcMSjyr0gs/XKvLuvzqpub3JtYWwgQ1AqLw0KKyAgICBVSU5UMzIgIAkJCSAgICAgICBkd1JmY0NQTW9kZTA7ICAgICAgICAgICAgICAgLyqy4sG/se0wtcRjcMSjyr0gs/XKvLuvzqpub3JtYWwgQ1AqLw0KKyAgICBVSU5UMzIgIAkJCSAgICAgICBkd1JmY0NQTW9kZTE7ICAgICAgICAgICAgICAgLyqy4sG/se0xtcRjcMSjyr0gs/XKvLuvzqpub3JtYWwgQ1AqLw0KKyAgICBVSU5UMTYJCQkJCQkJY1JmY01lYXNTeW1TdGFydDA7CQkJCSAvKrLiwb+x7TDIpUNQ09DQp7f7usW/qsq8yv0gs/XKvLuvzqowKi8NCisgICAgVUlOVDE2CQkJCQkJCWNSZmNNZWFzU3ltU3RhcnQxOwkJCQkgLyqy4sG/se0xyKVDUNPQ0Ke3+7rFv6rKvMr9ILP1yry7r86qMCovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1JmY1NwZWNTdWJGcmFtZU1vZGU7ICAgICAgLyrM2Mri19PWoUdQxKPKvSCz9cq8u6/OqkVfU1BFQ19TVUJfRlJBTUVfVFlQRTEqLw0KKyAgICBVSU5UMzIgCQkJCQkJZHdSZmNGcmVxT2Zmc2V0OyAgICAgICAgICAgLyrGtcar1rWjrNPD09q199X7Uka+p9XxILP1yry7r86qMCovDQorICAgIFNJTlQzMiAgIAkJCQkJCXNkd1JmY1R4T2Zmc2V0OyAgICAgICAgICAgICAvKsnP0NC2qMqxzOHHsKOss/XKvLuvzqowKi8NCisgICAgVUlOVDMyIAkJCQkJCWR3UmZjUnhPZmZzZXRBbnQwRm9yVHg7ICAgICAgICAgLypUWLHttcTPwtDQ1qGx373no6jM7M/fMKOps/XKvLuvzqowKi8NCisgICAgVUlOVDMyIAkJCQkJCWR3UmZjUnhPZmZzZXRBbnQxRm9yVHg7ICAgICAgICAgLypUWLHttcTPwtDQ1qGx373no6jM7M/fMaOps/XKvLuvzqowKi8NCisgICAgVUlOVDMyICAgIAkJCSAgICAgICBkd1JmY1R4QW50SW5kZXg7CQkJCQkgICAvKsnP0NC3osvNzOzP39Gh1PGjrMzsz98wus0xo6yz9cq8u6/Oqszsz98wKi8NCisgICAgVUlOVDMyICAgIAkJCSAgICAgICBkd1JmY1R4QW50SW5kZXhGb3JTUlM7CQkJCQkgICAvKsnP0NC3osvNzOzP39Gh1PEo1+6689K7uPa3+7rFU1JTKaOszOzP3zC6zTGjrMSsyM+4w7LOyv3OtNDeuMQqLw0KKyAgICBVSU5UMzIgCQkgICAgICAgICAgICAgICAgZHdSZmNQb3dlckNsb3NlTW9kZTsgICAgIAkgLyrO5dbWy+a7+r3TyOu5psLKudix1cqxvOS14yCz9cq8u6/OqkVfUE9XRVJfQ0xPU0VfTk9UX1VTRUQqLw0KKyAgICBTSU5UMTYgCQkJCQkJc3dSZmNGaXJzdFN5bWJQb3dlcjsgICAgICAgIC8qyc/Q0LXa0ru49rf7usW3osvNtcS5psLKLLP1yry7r86qMHgwZmZmICovDQorICAgIFNJTlQxNiAJCQkJCQlzd1JmY0xhc3RTeW1iUG93ZXI7ICAgICAgICAgLyrJz9DQtdrX7rrzuPa3+7rFt6LLzbXEuabCyiCz9cq8u6/OqjB4MGZmZiovDQorICAgIFNJTlQxNiAgCQkJCQkJc3dSZmNTcGVjaWFsUHJhY2hQb3dlcjsgICAgIC8qzNjK4tfT1qFQUkFDSLmmwsrWtSyz9cq8u6/OqjB4MGZmZiAqLw0KKyAgICBVSU5UMzIJCSAgICAgICAgICAgICAgICBkd0FwY0ZpcnN0U3ltYkNoYW5UeXBlOy8quabCyr/Y1sa12tK7uPa3+7rF0MW1wMDg0M2jrNfuuvPSu7j2t/u6xdK7tqjOqlNSU6Osy/nS1FRYsrvTw7jm1qpSRkMqLw0KKyAgICBTSU5UMzIgICAgICAgICAgICAgICAgICAgICAgc3dGcmVxT2Zmc2V0Ow0KK30gVF9aUEhZX0VSRkNfSU5GTzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisJVUlOVDE2IAljUnhBbnRlbm5hTW9kZTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogvdPK1czsz9/Eo8q9IMSsyM/Wtc6qtaXM7M/fxKPKvSAqLw0KKwlVSU5UMTYgCWNTeW5jTW9kZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiDNrLK9xKPKvSAqLw0KKwlVSU5UMTYgCWNMTkFNb2RlMDsNCisJVUlOVDE2IAljTE5BTW9kZTE7ICAgICAgICAvKiBMTkGx7bjxxKPKvSAqLw0KKw0KKwlVSU5UMTYgCXdBZ2NkQkdhaW4wOw0KKwlVSU5UMTYgCXdBZ2NkQkdhaW4xOyAgICAgICAgIC8qIEFHQ9T20ubWtSBkQiA8OCw3LHU+ICovDQorDQorCVVJTlQxNiAJd1J4TGluRGFnYzA7DQorCVVJTlQxNiAJd1J4TGluRGFnYzE7ICAgICAgICAgLyogUljCtyBEQUdD1PbS5ta1IM/f0NTWtSA8MTIsOCx1PiAqLw0KKw0KKwlVSU5UMTYgCXdDc3JtTGluRGFnYzA7DQorCVVJTlQxNiAJd0Nzcm1MaW5EYWdjMTsgICAgIC8qIENTUk3CtyBEQUdD1PbS5ta1IM/f0NTWtSA8MTIsOCx1PiAqLw0KKw0KKwlVSU5UMTYgCXdDc3JzTGluRGFnYzA7DQorCVVJTlQxNiAJd0NzcnNMaW5EYWdjMTsgICAgIC8qIENTUlPCtyBEQUdD1PbS5ta1IM/f0NTWtSA8MTIsOCx1PiAqLw0KKw0KKwlzdHJ1Y3QNCisJew0KKwkgICAgVUlOVDE2ICAgICAgICAgICAgICAgICAgICAgY0FnY0dhaW5NYXhGbGFnOyAgICAgICAgICAgICAgICAgLyog1PbS5sa9uuKyubOl1rjKviAqLw0KKwkgICAgVUlOVDE2ICAgICAgICAgICAgICAgICAgICB3TWF4ZEJWdWx1ZTsgICAgICAgICAgICAgICAgICAgICAvL8G9wrfM7M/fvc+089T20ubWtSw8OCw4LHU+DQorCSAgICBTSU5UMTYgCSAgICAgICAgICAgICAgc3dBZ2NGYWN0b3JMb2cyOyAgICAgICAgICAgICAgICAgLyog1PbS5sa9uuKyubOl0vLX0zwxNiw3LHQ+IGxvZzLWtSovDQorCSAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgIHdBZ2NGYWN0b3I7ICAgICAgICAgICAgICAgICAgICAgIC8qINT20ubGvbrisrmzpdLy19M8MTAsMCx1PiAqLw0KKwl9IHRSeEFnY0JhbGFuY2U7ICAgICAgICAgICAgICAgLyogUnjCt9T20ubGvbri1rjKvrrN1PbS5tLy19MgKi8NCisNCisJc3RydWN0DQorCXsNCisJICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgIGNBZ2NHYWluTWF4RmxhZzsgICAgICAgICAgICAgICAgIC8qINT20ubGvbrisrmzpda4yr4gKi8NCisJICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgd01heGRCVnVsdWU7ICAgICAgICAgICAgICAgICAgICAgLy/BvcK3zOzP373PtPPU9tLm1rUsPDgsOCx1Pg0KKwkgICAgU0lOVDE2IAkgICAgICAgICAgICAgICBzd0FnY0ZhY3RvckxvZzI7ICAgICAgICAgICAgICAgICAvKiDU9tLmxr264rK5s6XS8tfTPDE2LDcsdD4gbG9nMta1Ki8NCisJICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgd0FnY0ZhY3RvcjsgICAgICAgICAgICAgICAgICAgICAgLyog1PbS5sa9uuKyubOl0vLX0zwxMCwwLHU+ICovDQorCX0gdENzcnNBZ2NCYWxhbmNlOyAgICAgICAgICAgICAvKiBDc3JzwrfU9tLmxr264ta4yr66zdT20ubS8tfTICovDQorDQorCXN0cnVjdA0KKwl7DQorCSAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgICBjQWdjR2Fpbk1heEZsYWc7ICAgICAgICAgICAgICAgICAvKiDU9tLmxr264rK5s6XWuMq+ICovDQorCSAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgIHdNYXhkQlZ1bHVlOyAgICAgICAgICAgICAgICAgICAgIC8vwb3Ct8zsz9+9z7Tz1PbS5ta1LDw4LDgsdT4NCisJICAgIFNJTlQxNiAJICAgICAgICAgICAgICBzd0FnY0ZhY3RvckxvZzI7ICAgICAgICAgICAgICAgICAvKiDU9tLmxr264rK5s6XS8tfTPDE2LDcsdD4gbG9nMta1Ki8NCisJICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgd0FnY0ZhY3RvcjsgICAgICAgICAgICAgICAgICAgICAgLyog1PbS5sa9uuKyubOl0vLX0zwxMCwwLHU+ICovDQorCX0gdENzcm1BZ2NCYWxhbmNlOyAgICAgICAgICAgICAvKiBDc3JtwrfU9tLmxr264ta4yr66zdT20ubS8tfTICovDQorDQorCS8qILGjtOZDU1JNMTC49tfT1qG1xNfc1PbS5ta1IDwxNCw2LHU+ICovDQorCXN0cnVjdA0KKwl7DQorCSAgICBVSU5UMTYgCSAgICAgICAgICAgICAgICAgIHdUb3RhbEFnY0dhaW4wTG9nMjsgICAgICAgICAgICAgIC8qIMzsz98wtcTX3NT20ubWtSA8MTQsNix1PiBsb2cy1rUgKi8NCisJICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICAgIHdUb3RhbEFnY0dhaW4xTG9nMjsgICAgICAgICAgICAgIC8qIMzsz98xtcTX3NT20ubWtSA8MTQsNix1PiBsb2cy1rUgKi8NCisJfSBhd0Nzcm1Ub3RhbEFnY0dhaW5Mb2cyW1pQSFlfU1VCRlJBTUVTX1BFUl9GUkFNRV07DQorDQorCS8qILGjtOZSWDEwuPbX09ahtcTX3NT20ubWtSA8MTQsNix1PiAqLw0KKwlzdHJ1Y3QNCisJew0KKwkgICAgVUlOVDE2IAkgICAgICAgICAgICAgICAgICB3VG90YWxBZ2NHYWluMExvZzI7ICAgICAgICAgICAgICAvKiDM7M/fMLXE19zU9tLm1rUgPDE0LDYsdT4gbG9nMta1ICovDQorCSAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgICAgICB3VG90YWxBZ2NHYWluMUxvZzI7ICAgICAgICAgICAgICAvKiDM7M/fMbXE19zU9tLm1rUgPDE0LDYsdT4gbG9nMta1ICovDQorCX0gYXdSeFRvdGFsQWdjR2FpbkxvZzJbWlBIWV9TVUJGUkFNRVNfUEVSX0ZSQU1FXTsNCisNCisJLyogv+zL2UFHQ8jtvP68xsvjyrGjrDEwbXPGvb75uabCysr91+kgKi8NCisJU0lOVDE2IAlhc3dOb3RTeW5jQWdjTWVhblB3cjBbNzBdOw0KKwlTSU5UMTYgCWFzd05vdFN5bmNBZ2NNZWFuUHdyMVs3MF07DQorCS8qIL/sy9lBR0PI7bz+vMbL48qxo6y8x8K8xr2++bmmwsrX7rTz1rUgKi8NCisJU0lOVDE2IAlzd01heEFHQ01lYW5Qd3IwOw0KKwlTSU5UMTYgCXN3TWF4QUdDTWVhblB3cjE7DQorCS8qIL/sy9lBR0PI7bz+vMbL483qs8mx6ta+ICovDQorCVVJTlQxNiAJd05vdFN5bmNBR0NEb25lOw0KKwkvKiDJ5Ma1tPK/qtK71qG687Hq1r4gKi8NCisJVUlOVDE2IAl3Tm90U3luY0FHQ0JlZ2luOw0KKwkvL86qyrXP1surzOzP37fHzayyvUFHQ7X31fujrNT2vNPP4LnYyKu+1rHkwb8sYWRkIGJ5IHpob3VwZW5nIDIwMTAuMTEuNg0KKwlVSU5UMTYgCXdOb3RTeW5jQUdDRG9uZUFudDA7Ly/M7M/fMCBBR0PK1cGyserWvg0KKwlVSU5UMTYgCXdOb3RTeW5jQUdDRG9uZUFudDE7Ly/M7M/fMSBBR0PK1cGyserWvg0KKwl1bmlvbg0KKwl7DQorCSAgICBzdHJ1Y3QNCisJCXsNCisJCSAgICBVSU5UMzIgUlhCYW5kd2lkdGggICAgICAgICAgOjM7ICAgICAgIC8qIEJpdFswLTJdIFRYwre0+L/tICovDQorCQkgICAgVUlOVDMyIENQTW9kZSAgICAgICAgICAgICAgIDoxOyAgICAgICAvKiBCaXRbM10gQ1DEo8q9ICovDQorCQkgICAgVUlOVDMyIFJlc2VydmVkICAgICAgICAgICAgIDoyODsgICAgICAvKiBCaXRbNC0zMV0gKi8NCisJCX0gdEJpdDsNCisNCisJICAgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd1JlZzsNCisJfSAJdFJYQmFuZHdpZHRoQ1BNb2RlOw0KKw0KKwlVSU5UMTYgIAl3UnhCYW5kd2lkdGg7DQorCVVJTlQxNiAJY0RBR0NDYWxNb2RlOyAgICAgICAgICAgICAgIC8qIERBR0MgvMbL48Sjyr0gKi8NCisJVUlOVDE2IAljQUdDQ2FsTW9kZTsgICAgICAgICAgICAgICAgLyogQUdDILzGy+PEo8q9ICovDQorfVRfelBIWV9FREZFX1NZU1RFTV9JTkZPOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdTRk47DQorICAgIFNJTlQxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzd1B1Y2NoR2lbWlBIWV9ERUJVR19UTVRfU0laRV07ICAgICAgICAgIC8qILeiy81QVUNDSLHVu7e5pr/Yss7K/Udpo6zTycK3suDI7bz+0v3I6yAqLw0KKwlTSU5UMTYJCQkJCQlhc3dQdWNjaFBvd2VyW1pQSFlfREVCVUdfVE1UX1NJWkVdOyAgICAgICAgLyogUFVDQ0i1xLeiy825psLKzbO8xiAqLw0KKwlTSU5UMTYJCQkJCQlhc3dQdXNjaFBvd2VyW1pQSFlfREVCVUdfVE1UX1NJWkVdOyAgICAgICAgLyogUFVTQ0i1xLeiy825psLKzbO8xiAqLw0KKwlTSU5UMTYJCQkJCQlhc3dTcnNQb3dlcltaUEhZX0RFQlVHX1RNVF9TSVpFXTsgICAgICAgICAgLyogU1JTtcS3osvNuabCys2zvMYgKi8NCisJU0lOVDE2CQkJCQkJYXN3UHJhY2hQb3dlcltaUEhZX0RFQlVHX1RNVF9TSVpFXTsgICAgICAgIC8qIFBSQUNItcS3osvNuabCys2zvMYgKi8NCisJVUlOVDE2CQkJCQkJYWNQdXNjaFBvd2VySGVhZHJvb21bWlBIWV9ERUJVR19UTVRfU0laRV07IC8qIFBVU0NItcS3osvNuabCysqj0+DBv1BIUiAqLw0KK31UX3pQSFlfRVVMX1Bvd2VyQ3RybEluZm87DQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIC8vVUlOVDE2CQkgICAgICAgICAgICAgIGNEY2kwT3JEY2kxQTsgICAgICAgICAgLyogRENJMLrNRENJMUG1xMf4sfAgKi8NCisgICAgVUlOVDE2CQkgICAgICAgICAgICBjSG9wcGluZ0ZsYWc7ICAgICAgICAgIC8qIERDSTDW0LXEzPjGtWZsYWcgKi8NCisgICAgVUlOVDE2CQkgICAgICAgICAgICB3QmxvY2tBc3NpZ25tZW50OyAgICAgIC8qIERDSTDW0LXEUkK31sXkICovDQorICAgIFVJTlQxNgkJICAgICAgICAgICAgY01DUzsgICAgICAgICAgICAgICAgICAvKiBEQ0kw1tC1xE1DUyAqLw0KKyAgICBVSU5UMTYJCSAgICAgICAgICAgIGNOZXdEYXRhRmxhZzsgICAgICAgICAgLyogRENJMNbQtcROREkgKi8NCisgICAgVUlOVDE2CQkgICAgICAgICAgICBjVHBjQ29tbWFuZDsgICAgICAgICAgIC8qIERDSTDW0LXEVFBDw/zB7iAqLw0KKyAgICBVSU5UMTYJCSAgICAgICAgICAgIGNETVJTQ3ljbGljU2hpZnQ7ICAgICAgLyogRENJMNbQ08PT2kRNUlO1xNGtu7fSxs67ICovDQorICAgIFVJTlQxNgkJICAgICAgICAgICAgY1VsSW5kZXg7ICAgICAgICAgICAgICAvKiBEQ0kw1tC1xFVMIEluZGV4zrvTw9Pa19PWocXk1sMwICovDQorICAgIFVJTlQxNgkJICAgICAgICAgICAgY0RBSTsgICAgICAgICAgICAgICAgICAvKiBEQ0kw1tC1xM/C0NC31sXk1rjKviAqLw0KKyAgICBVSU5UMTYJCSAgICAgICAgICAgIGNDcWlSZXF1ZXN0OyAgICAgICAgICAgLyogRENJMNbQtcRDUUnWuMq+zrsgKi8NCisgICAgVUlOVDE2CQkgICAgICAgICAgICBjUmJTdGFydFsyXTsgICAgICAgICAgICAgIC8qIERDSTDW0LXEUklW1rjKvrXEUkLG8Mq8zrvWwyAqLw0KKyAgICBVSU5UMTYJCSAgICAgICAgICAgIGNMY3Jic1syXTsgICAgICAgICAgICAgICAgLyogRENJMNbQtcRSSVbWuMq+tcRSQsr9ICovDQorfVRfelBIWV9EY2kwSW5mbzsNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVF96UEhZX0RjaTBJbmZvIGF0RGNpMEluZm9bWlBIWV9ERUJVR19UTVRfU0laRV07DQorfVRfelBIWV9FVUxfRGNpMEluZm87DQorDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorCS8vVUlOVDE2ICAgICAgICAgICAgICAgICAgICAgIHdBYnNTdWJGcm1ObzsgICAgICAgICAgICAvKiBUUEMgQ29tbWFuZLbU06a1xNfT1qG6xaOsuMTOqrOs1qG6xbHtyr4gKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3U0ZOOyAgICAvL8qxvOTQxc+iDQorICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICAgd1B1c2NoRENJM29yM2FUcGNJZHg7ICAgIC8qILzTyMW3vcq9zqpUUEMtUFVTQ0gtUk5USbXERENJMy8zQdbQu/G1w7XEVFBDIENvbW1hbmQgKi8NCisgICAgVUlOVDE2ICAgICAgICAgICAgICAgICAgICAgICB3UHVjY2hEQ0kzb3IzYVRwY0lkeDsgICAgLyogvNPIxbe9yr3OqlRQQy1QVUNDSC1STlRJtcREQ0kzLzNB1tC78bXDtcRUUEMgQ29tbWFuZCAqLw0KK31UX3pQSFlfRVVMX0RDSTNPcjNBSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3U0ZOOyAgICAvL8qxvOTQxc+iDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd05ld1RyYW5zQ250OyAgICAgICAgICAgIC8qINDCtKvNs7zGINfctcTA27zT1rUgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3QWRhcHRUcmFuc0NudDsgICAgICAgICAgLyog19TKytOm1ti0q82zvMYg19y1xMDbvNPWtSAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdOb25BZGFwdFRyYW5zQ250OyAgICAgICAvKiC3x9fUysrTptbYtKvNs7zGINfctcTA27zT1rUgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3Tm9UcmFuc0NudDsgICAgICAgICAgICAgLyogsru0q8rkzbO8xiDX3LXEwNu809a1ICovDQorDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd0hhcnFUcmFuc0NudDsgICAgICAgICAgIC8qINbYtKu0zsr9tcTNs7zGINfctcTA27zT1rUgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3SGFycTBUcmFuc0NudDsgICAgICAgICAgLyogSEFSUSBJRD0wtcS0q8rktM7K/c2zvMYg19y1xMDbvNPWtSAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdIYXJxMVRyYW5zQ250OyAgICAgICAgICAvKiBIQVJRIElEPTG1xLSryuS0zsr9zbO8xiDX3LXEwNu809a1ICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd0hhcnEyVHJhbnNDbnQ7ICAgICAgICAgIC8qIEhBUlEgSUQ9MrXEtKvK5LTOyv3Ns7zGINfctcTA27zT1rUgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3SGFycTNUcmFuc0NudDsgICAgICAgICAgLyogSEFSUSBJRD0ztcS0q8rktM7K/c2zvMYg19y1xMDbvNPWtSAqLw0KKw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdIYXJxUnYwQ250OyAgICAgICAgICAgICAvKiBSVj0wtcTNs7zGINfctcTA27zT1rUgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3SGFycVJ2MUNudDsgICAgICAgICAgICAgLyogUlY9MbXEzbO8xiDX3LXEwNu809a1ICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd0hhcnFSdjJDbnQ7ICAgICAgICAgICAgIC8qIFJWPTK1xM2zvMYg19y1xMDbvNPWtSAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdIYXJxUnYzQ250OyAgICAgICAgICAgICAvKiBSVj0ztcTNs7zGINfctcTA27zT1rUgKi8NCisNCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3Q3VySGFycUlkOyAgICAgICAgICAgICAgLyogtbHHsEhBUlEgSUQgKi8NCisNCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3SGFycU1heFJlVHhMaW1pdDsgICAgICAgLyogyc/Q0NbYtKvX7rTzz97WxrTOyv2jrMK3suDI7bz+0v3I6yAqLw0KKw0KKyAgICAvKiDJz9DQs/W0q6Gi1ti0q9DFz6KjrNPD09rNs7zGs/W0q6Gi1ti0q7XEQmxlctDFz6IgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxIYXJxSW5pdEFjazsgICAgICAgICAgLyogyc/Q0LP1tKtBQ0vNs7zG0MXPoiDX3LXEwNu809a1o6zCt7LgyO28/tL9yOsgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxIYXJxSW5pdE5hY2s7ICAgICAgICAgLyogyc/Q0LP1tKtOQUNLzbO8xtDFz6Ig19y1xMDbvNPWtaOswrey4MjtvP7S/cjrICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsSGFycVJlVHhBY2s7ICAgICAgICAgIC8qIMnP0NDW2LSrQUNLzbO8xtDFz6Ig19y1xMDbvNPWtaOswrey4MjtvP7S/cjrICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsSGFycVJlVHhOYWNrOyAgICAgICAgIC8qIMnP0NDW2LSrTkFDS82zvMbQxc+iINfctcTA27zT1rWjrMK3suDI7bz+0v3I6yAqLw0KKw0KKyAgICAvKsnP0NC12tK7tM6horXatv60zqGitdrI/bTOoaK12svEtM7S1LywxuTL+9bYtKuzybmmtM7K/SovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsSGFycTFzdFN1Y2NOdW07ICAgICAgIC8qILXa0ru0ztbYtKuzybmmtM7K/SDX3LXEwNu809a1o6zCt7LgyO28/tL9yOsgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxIYXJxMm5kU3VjY051bTsgICAgICAgLyogtdq2/rTO1ti0q7PJuaa0zsr9INfctcTA27zT1rWjrMK3suDI7bz+0v3I6yAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbEhhcnEzcmRTdWNjTnVtOyAgICAgICAvKiC12sj9tM7W2LSrs8m5prTOyv0g19y1xMDbvNPWtaOswrey4MjtvP7S/cjrICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsSGFycTR0aFN1Y2NOdW07ICAgICAgIC8qILXay8S0ztbYtKuzybmmtM7K/SDX3LXEwNu809a1o6zCt7LgyO28/tL9yOsgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxIYXJxT3RoZXJTdWNjTnVtOyAgICAgLyogxuTL+9bYtKuzybmmtM7K/SDX3LXEwNu809a1o6zCt7LgyO28/tL9yOsgKi8NCisNCisgICAgLyrJz9DQxKO/6bj3SGFycSBJRCBBQ0uhok5BQ0vK/SovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBhZHdVbEhhcnFJZEFja1s4XTsgICAgICAgIC8qIMnP0NA4uPZIQVJRIEFDS82zvMbQxc+io6y497j2SUTX3LXEwNu809a1o6zCt7LgtcjS/cjrICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBhZHdVbEhhcnFJZE5hY2tbOF07ICAgICAgIC8qIMnP0NA4uPZIQVJRIE5BQ0vNs7zG0MXPoqOsuPe49klE19y1xMDbvNPWtaOswrey4LXI0v3I6yAqLw0KK31UX3pQSFlfRVVMX0hhcnFUcmFuc1N0YXRpc3RpY3NJbmZvOw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdTRk47ICAgIC8vyrG85NDFz6INCisNCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhQ3FpQW5kSGFycUNudDsgICAgICAgICAgICAgLyogUFVDQ0ggQ1FJus1BQ0vSu8bwt7TAobXEzbO8xqOsucy2qNGh1PFGb3JtYXQgMmKjrLLpse3RodTxMrj2Yml0o7piKDEpLGIoMCm9+NDQtKvK5CDX3LXEwNu809a1ICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYUNxaUFuZEhhcnFCaXRzMDBDbnQ7ICAgICAgIC8qINGh1PFiKDEpPTAgYigwKT0wtcS49sr9INfctcTA27zT1rUgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhQ3FpQW5kSGFycUJpdHMwMUNudDsgICAgICAgLyog0aHU8WIoMSk9MCBiKDApPTG1xLj2yv0g19y1xMDbvNPWtSAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFDcWlBbmRIYXJxQml0czEwQ250OyAgICAgICAvKiDRodTxYigxKT0xIGIoMCk9MLXEuPbK/SDX3LXEwNu809a1ICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYUNxaUFuZEhhcnFCaXRzMTFDbnQ7ICAgICAgIC8qINGh1PFiKDEpPTEgYigwKT0xtcS49sr9INfctcTA27zT1rUgKi8NCisNCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhUGVyaW9kaWNDUUlDbnQ7ICAgICAgICAgICAgLyog1tzG2kNRSbe0wKG1xM2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFBcGVyaW9kaWNDUUlDbnQ7ICAgICAgICAgICAvKiBQVVNDSMnPt7TAobfH1tzG2kNRSbXEzbO8xiDX3LXEwNu809a1ICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVJpQ250OyAgICAgICAgICAgICAgICAgICAgIC8qIFJJt7TAobXEzbO8xiDX3LXEwNu809a1ICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVB1Y2NoUGVyaW9kaWNDUUlDbnQ7ICAgICAgIC8qIFBVQ0NIt7TAodbcxtpDUUm1xM2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFQdXNjaFBlcmlvZGljQ1FJQ250OyAgICAgICAvKiBQVVNDSLe0wKHW3MbaQ1FJtcTNs7zGINfctcTA27zT1rUgKi8NCisvLwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFQdXNjaEFwZXJpb2RpY0NRSUNudDsgICAgICAqIFBVU0NIyc+3tMCht8fW3MbaQ1FJtcTNs7zGLNPrZHdVbGFBcGVyaW9kaWNDUUlDbnTS4tLl0rvR+SDX3LXEwNu809a1ICovDQorDQorICAgIC8qINLUz8I3uPZDUUm1xM2zvMbQxc+io6y/ydLU0+vCt7Lgsr+31r340NC6z7Kio6y/ydLUv7zCx7C019PWob340NDNs7zGICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBhZHdVbGFDcWlWYWxbMTBdOyAgICAgICAgICAgICAgIC8qIENRSda1ILC019PWobfWsfDNs7zGICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBhZHdVbGFSaVZhbFsxMF07ICAgICAgICAgICAgICAgIC8qIFJJ1rUgsLTX09aht9ax8M2zvMYgKi8NCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGFkd1VsYUNxaUZOWzEwXTsgICAgICAgICAgICAgICAgLyogt7TAoUNRSbXE1qG6xSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgYWR3VWxhQ3FpU0ZOWzEwXTsgICAgICAgICAgICAgICAvKiC3tMChQ1FJtcTX09ahusUgKi8NCisNCisJVUlOVDE2CQkJCQkJYXdDcWlSZXBvcnRQZXJpb2RGbGFnWzEwXTsgICAgICAvKiDW3MbaQ1FJIEZsYWcgKi8NCisJVUlOVDE2CQkJCQkJYXdTdWJGcmFtZU51bVsxMF07ICAgICAgICAgICAgICAvKiBTSUTW0LXE19PWobrFICovDQorCVVJTlQxNgkJCQkJCWF3RnJhbWVOdW1bMTBdOyAgICAgICAgICAgICAgICAgLyogU0lE1tC1xNahusUgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxNY3M7ICAgICAgICAgICAgICAgICAgLy+2psD7v8nTw73Tv9pVTCBNQ1Moyc/Q0E1DUylNQ1MgU3RhdGlzdGljIEluZm9ybWF0aW9uLL/J08PNqLn90K3S6bXDtb1RUFNLXDE2UUFNXDY0UUFNDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd0NRSTsNCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3UE1JOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUE1JICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1JJOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJJICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1diQ29kZTBDcWk7ICAgICAgICAgICAgICAgICAgIC8qIFdpZGViYW5kIENvZGUwIENRSSAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdXYkNvZGUxQ3FpOyAgICAgICAgICAgICAgICAgICAvKiBXaWRlYmFuZCBDb2RlMSBDUUkgKi8NCisgICAgU0lOVDMyICAgICAgICAgICAgICAgICAgICAgIHNkd1JhbmsxU2lucjsgICAgICAgICAgICAgICAgICAgLyogUmFuazEgU0lOUjAgKi8NCisgICAgU0lOVDMyICAgICAgICAgICAgICAgICAgICAgIHNkd1JhbmsyU2lucjA7ICAgICAgICAgICAgICAgICAgLyogUmFuazIgU0lOUjAgKi8NCisgICAgU0lOVDMyICAgICAgICAgICAgICAgICAgICAgIHNkd1JhbmsyU2lucjE7ICAgICAgICAgICAgICAgICAgLyogUmFuazIgU0lOUjEgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VHhEaXZGbGFnOyAgICAgICAgICAgICAgICAgICAgLyogUmFuayBTSU5SILzGy+O89TNkYm2x6ta+ICovDQorDQorfVRfelBIWV9FVUxfQ3FpSGFycVNpbXVsU3RhdGlzdGljc0luZm87DQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICB3UGFyY2hQcmVtRnJtTm87ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHByZWFtYmxlINahusWjrMK3suDI7bz+0v3I6yAqLw0KKyAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgICAgIGNQYXJjaFByZW1TdWJGcm1ObzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcHJlYW1ibGUg19PWobrFo6zCt7LgyO28/tL9yOso0tS8sLTm1NozMs67tcQpICovDQorICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICAgY1BhcmNoUHJlbUluZGV4OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBwcmVhbWJsZSBJRCAqLw0KKwlVSU5UMTYJCQkJCQljUHJhY2hDb25maWdJbmRleDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qINCt0unVu9a4yr61scewUEhZv8nTw7XEcHJhY2ggcmVzb3VyY2Who9PD09rXytS00aHU8dLUvLC78cihcHJlYW1ibGW1scewy/nTw7jxyr0oMCw2MykgKi8NCisJVUlOVDE2CQkJCQkJY0hpZ2hTcGVlZEZsYWc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiCx6ta+tbHHsNChx/jA4NDNKDE6uN/L2dChx/gsMDq3x7jfy9kpICovDQorCVVJTlQxNgkJCQkJCXdOY3M7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTkNTy/fS/da1ICovDQorCVVJTlQxNgkJCQkJCWNQcmFjaEZycU9mZnNldDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcHJhY2ggcmVzb3VyY2XU2k9GRE23+7rFyc/GtdPytcTGq9LG1rUgKi8NCisJVUlOVDE2CQkJCQkJd1Jvb3RTd3F1ZW5jZUluZGV4OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBaQ9DywdDB48/gudjH+NPywt+8rbj51rIgKi8NCisJVUlOVDE2CQkJCQkJY051bWJlck9mUkFQcmVhbWJsZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiDL5rv6vdPI68ewtby49sr9ICovDQorCVVJTlQxNgkJCQkJCWNTaXplT2ZSQVByZWFtYmxlc0dyb3VwQTsgICAgICAgICAgICAgICAgICAgICAgLyogy+a7+r3TyOvHsLW81+lBtcS49sr9ICovDQorCVVJTlQxNgkJCQkJCXdNZXNzYWdlU2l6ZUdyb3VwQTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogy+a7+sewtbzX6UG1xM/7z6KzpLbIICovDQorCVVJTlQxNgkJCQkJCWNNZXNzYWdlUG93ZXJPZmZldEdyb3VwQjsgICAgICAgICAgICAgICAgICAgICAgLyog08PT2r340NDHsLW80aHU8SAqLw0KKwlVSU5UMTYJCQkJCQljUG93ZXJSYW1waW5nU3RlcDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIMnP0NC3osvNcHJlYW1ibGW5psLKtffV+7K9s6SjrNPD09rW2LeicHJlYW1ibGW5/bPM1tC199X7t6LJ5LmmwsogKi8NCisJVUlOVDE2CQkJCQkJd1ByZWFtYmxlVHJhbnNNYXg7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBwcmVhbWJsZdfutPPW2LSrtM7K/SAqLw0KKwlVSU5UMTYJCQkJCQljUkFSZXNwb25zZVdpbmRvd1NpemU7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qILzssuJSQVLQxc+iyrG85LSws6S2yCAqLw0KKwlVSU5UMTYJCQkJCQljTWFjQ29udGVudGlvblJlc29sdXRpb25UaW1lcjsgICAgICAgICAgICAgICAgIC8qIL661fnL5rv6vdPI67n9s8zW0LzssuJtc2c0yrG85LSwv9q089ChICovDQorCVVJTlQxNgkJCQkJCWNNYXhIUVJRTXNnM1R4OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogvrrV+b3ivva5/bPM1tC3osvNbXNnM8qxo6y199PDSEFSUbn9s8zX7rTz1ti0q7TOyv0gKi8NCisNCisJVUlOVDE2CQkJCQkJYXdNc2cxVHhTeXNGcmFtZU51bVsxMF07ICAgICAgLyogUHJlYW1ibGW3osvN1qG6xbXEzbO8xiAqLw0KKwlVSU5UMTYJCQkJCQlhd01zZzFUeFN1YkZyYW1lTnVtWzEwXTsgICAgICAvKiBQcmVhbWJsZbeiy83X09ahusW1xM2zvMYgKi8NCisNCisJVUlOVDMyCQkJCQkJYWR3TXNnMVR4Q250WzEwXTsgICAgICAgICAgICAgLyogUHJlYW1ibGW3osvNtM7K/bXEzbO8xiCwtNfT1qG1pbbAwNu8082zvMYgKi8NCisJVUlOVDE2CQkJCQkJYXdNc2cxVHhGcmVxUG9zWzEwXTsgICAgICAgICAgLyogUHJlYW1ibGW1xMa10/LOu9bDblBSQrXEzbO8xiCwtNfT1qG1pbbAwNu8082zvMYgKi8NCisJVUlOVDE2CQkJCQkJYWNNc2cxVHhQcmVhbWJsZUlEWzEwXTsgICAgICAgLyogUHJlYW1ibGUgSUS1xM2zvMYgsLTX09ahtaW2wMDbvNPNs7zGICovDQorCS8vU0lOVDgJCQkJCQlhc2NNc2cxVHhQb3dlclsxMF07ICAgICAgICAgICAvKiBQcmVhbWJsZbeiy825psLKtcTNs7zGILC019PWobWltsDA27zTzbO8xiAqLw0KKwkvL1VJTlQzMgkJCQkJYWR3TXNnMVR4TnVtQ250WzEwXTsgICAgICAgICAgLyogUHJlYW1ibGW3osvNyv21xM2zvMYgsLTX09ahtaW2wMDbvNPNs7zGICovDQorCVVJTlQzMgkJCQkJCWFkd01zZzJSeE1hdGNoTnVtQ250WzEwXTsgICAgIC8qIFJBUiBQSUTGpcXktcTNs7zGILC019PWobWltsDA27zTzbO8xiAqLw0KKwlVSU5UMzIJCQkJCQlhZHdNc2cyUnhOb3RNYXRjaE51bUNudFsxMF07ICAvKiBSQVIgUElEsrvGpcXktcTNs7zGILC019PWobWltsDA27zTzbO8xiAqLw0KKwlVSU5UMzIJCQkJCQlhZHdNc2czVHhOdW1DbnRbMTBdOyAgICAgICAgICAvKiBNc2czt6LLzcr9xL+1xM2zvMYgsLTX09ahtaW2wMDbvNPNs7zGICovDQorCVVJTlQzMgkJCQkJCWFkd01zZzNUeEFja051bUNudFsxMF07ICAgICAgIC8qIE1zZzO3osvN1f3It7XEzbO8xiCwtNfT1qG1pbbAwNu8082zvMYgKi8NCisJVUlOVDMyCQkJCQkJYWR3TXNnM1R4TmFja051bUNudFsxMF07ICAgICAgLyogTXNnM7eiy8207c7ztcTNs7zGILC019PWobWltsDA27zTzbO8xiAqLw0KKwlVSU5UMzIJCQkJCQlhZHdNc2c0UnhOdW1DbnRbMTBdOyAgICAgICAgICAvKiBNc2c0vdPK1bXEzbO8xiCwtNfT1qG1pbbAwNu8082zvMYgKi8NCisJVUlOVDMyCQkJCQkJYWR3TXNnNFJ4QWNrTnVtQ250WzEwXTsgICAgICAgLyogTXNnNL3TytXV/ci3tcTNs7zGILC019PWobWltsDA27zTzbO8xiAqLw0KK31UX3pQSFlfRVVMX1ByYWNoU3RhdGlzdGljc0luZm87DQorDQorDQorDQorDQorLyogU1JTIM2zvMYgKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3U0ZOOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogyrG85NDFz6IgKi8NCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhU3JzQ250OyAgICAgICAgICAgICAgICAgICAgLyogU1JTt6LLzbXEzbO8xiDX3LXEwNu809a1ICovDQorCVVJTlQzMgkJCQkJCWFkd2R3VWxhU3JzQ29tbVNGQ250WzEwXTsgICAgICAgLyogxtXNqNfT1qG3osvNU1JTtcTNs7zGILC019PWocDbvNPWtSAqLw0KKw0KKwkvKiDS1M/CNLj2ss7K/cS/x7DDu9PQuLPWtbLZ1/ejrLG408MgYmVnaW4gKi8NCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhU3JzRm9yVGRkU3BlY1NGMUxhc3RTeW1iQ250OyAgICAgICAgICAgICAgICAgLyogVEREzNjK4tfT1qEx1tDX7rrz0ru49rf7usW3olNSU7XEzbO8xqOssPzAqNfuuvPBvbj2t/u6xba8t6K1xMfpv/Yg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFTcnNGb3JUZGRTcGVjU0YxTGFzdFNlY29uZFN5bWJDbnQ7ICAgICAgICAgICAvKiBURETM2Mri19PWoTHW0LW5yv212rb+uPa3+7rFt6JTUlO1xM2zvMajrLD8wKjX7rrzwb249rf7usW2vLeitcTH6b/2INfctcTA27zT1rUgKi8NCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhU3JzRm9yVGRkU3BlY1NGNkxhc3RTeW1iQ250OyAgICAgICAgICAgICAgICAgLyogVEREzNjK4tfT1qE21tDX7rrz0ru49rf7usW3olNSU7XEzbO8xqOssPzAqNfuuvPBvbj2t/u6xba8t6K1xMfpv/Yg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFTcnNGb3JUZGRTcGVjU0Y2TGFzdFNlY29uZFN5bWJDbnQ7ICAgICAgICAgICAvKiBURETM2Mri19PWoTbW0NfuuvPSu7j2t/u6xbeiU1JTtcTNs7zGo6yw/MCo1+6688G9uPa3+7rFtry3orXEx+m/9iDX3LXEwNu809a1ICovDQorCS8qINLUyc80uPayzsr9xL/HsMO709C4s9a1stnX96OssbjTwyBvdmVyICovDQorICAgIFRfelBIWV9TcnNUeF9SZXBvcnQgYXRTcnNUeF9SZXBvcnRbMTBdOy8vtbHHsDEwuPbX09ah0MXPog0KK31UX3pQSFlfRVVMX1Nyc1N0YXRpc3RpY3NJbmZvOw0KKw0KKy8qIFNSIEhBUlHNs7zG0MXPoiAqLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdTRk47ICAgIC8vyrG85NDFz6INCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhU3JBbmRIYXJxQ250OyAgICAgICAgICAgICAgLyogUFVDQ0ggU1K6zUFDS9K7xvC3tMChtcTNs7zGo6y5zLao0aHU8UZvcm1hdCAxYqOssumx7dGh1PEyuPZiaXSjumIoMSksYigwKb340NC0q8rkINfctcTA27zT1rUgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhU3JBbmRIYXJxQml0czAwQ250OyAgICAgICAgLyog0aHU8WIoMSk9MCBiKDApPTC1xLj2yv0g19y1xMDbvNPWtSAqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFTckFuZEhhcnFCaXRzMDFDbnQ7ICAgICAgICAvKiDRodTxYigxKT0wIGIoMCk9MbXEuPbK/SDX3LXEwNu809a1ICovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVNyQW5kSGFycUJpdHMxMENudDsgICAgICAgIC8qINGh1PFiKDEpPTEgYigwKT0wtcS49sr9INfctcTA27zT1rUgKi8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhU3JBbmRIYXJxQml0czExQ250OyAgICAgICAgLyog0aHU8WIoMSk9MSBiKDApPTG1xLj2yv0g19y1xMDbvNPWtSAqLw0KK31UX3pQSFlfVUxfU3JIYXJxU2ltdWxTdGF0aXN0aWNzSW5mbzsNCisNCisvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2jXytS0zbO8xtDFz6IgKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3U0ZOOyAgICAvL8qxvOTQxc+iDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYU4xcHVjY2gwQml0czAwQ250OyAgICAgICAgIC8qIFBVQ0NIIE11bHRpcGxleGluZyDRodTxTjFwdWNjaDDXytS0tcRbTkFDSyBOQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoMEJpdHMwMUNudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gw18rUtLXEW05BQ0sgQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoMEJpdHMxMENudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gw18rUtLXEW0FDSyBOQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoMEJpdHMxMUNudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gw18rUtLXEW0FDSyBBQ0tdzbO8xiDX3LXEwNu809a1ICovDQorDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYU4xcHVjY2gxQml0czAwQ250OyAgICAgICAgIC8qIFBVQ0NIIE11bHRpcGxleGluZyDRodTxTjFwdWNjaDHXytS0tcRbTkFDSyBOQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoMUJpdHMwMUNudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gx18rUtLXEW05BQ0sgQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoMUJpdHMxMENudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gx18rUtLXEW0FDSyBOQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoMUJpdHMxMUNudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gx18rUtLXEW0FDSyBBQ0tdzbO8xiDX3LXEwNu809a1ICovDQorDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYU4xcHVjY2gyQml0czAwQ250OyAgICAgICAgIC8qIFBVQ0NIIE11bHRpcGxleGluZyDRodTxTjFwdWNjaDLXytS0tcRbTkFDSyBOQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoMkJpdHMwMUNudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gy18rUtLXEW05BQ0sgQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoMkJpdHMxMENudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gy18rUtLXEW0FDSyBOQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoMkJpdHMxMUNudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gy18rUtLXEW0FDSyBBQ0tdzbO8xiDX3LXEwNu809a1ICovDQorDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYU4xcHVjY2gzQml0czAwQ250OyAgICAgICAgIC8qIFBVQ0NIIE11bHRpcGxleGluZyDRodTxTjFwdWNjaDPXytS0tcRbTkFDSyBOQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoM0JpdHMwMUNudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gz18rUtLXEW05BQ0sgQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoM0JpdHMxMENudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gz18rUtLXEW0FDSyBOQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFOMXB1Y2NoM0JpdHMxMUNudDsgICAgICAgICAvKiBQVUNDSCBNdWx0aXBsZXhpbmcg0aHU8U4xcHVjY2gz18rUtLXEW0FDSyBBQ0tdzbO8xiDX3LXEwNu809a1ICovDQorfVRfelBIWV9VTF9NdXRpcGxleGluZ0FOU3RhdGlzdGljc0luZm87DQorDQorLyogzbO8xs/C0NC94sLrtcRCdW5sZGluZ9DFz6IgKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3U0ZOOyAgICAvL8qxvOTQxc+iDQorCS8vUFVDQ0i3tMChDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVB1Y2NoQnVubGRpbmdBY2tDbnQ7ICAgICAgIC8qILWlwuvX1s/CUFVDQ0ggQnVuZGxpbme687XEQUNLzbO8xiDX3LXEwNu809a1ICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVB1Y2NoQnVubGRpbmdOYWNrQ250OyAgICAgIC8qILWlwuvX1s/CUFVDQ0ggQnVuZGxpbme687XETkFDS82zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFQdWNjaEJ1bmxkaW5nQWNrQWNrQ250OyAgICAvKiDBvcLr19bPwlBVQ0NIIEJ1bmRsaW5nuvO1xFtBQ0sgQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFQdWNjaEJ1bmxkaW5nQWNrTmFja0NudDsgICAvKiDBvcLr19bPwlBVQ0NIIEJ1bmRsaW5nuvO1xFtBQ0sgTkFDS13Ns7zGINfctcTA27zT1rUgKi8NCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhUHVjY2hCdW5sZGluZ05hY2tBY2tDbnQ7ICAgLyogwb3C69fWz8JQVUNDSCBCdW5kbGluZ7rztcRbTkFDSyBBQ0tdzbO8xiDX3LXEwNu809a1ICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVB1Y2NoQnVubGRpbmdOYWNrTmFja0NudDsgIC8qIMG9wuvX1s/CUFVDQ0ggQnVuZGxpbme687XEW05BQ0sgTkFDS13Ns7zGINfctcTA27zT1rUgKi8NCisNCisJLy9QVVNDSLe0wKENCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhUHVzY2hCdW5sZGluZ0Fja0NudDsgICAgICAgLyogtaXC69fWz8JQVVNDSCBCdW5kbGluZ7rztcRBQ0vNs7zGINfctcTA27zT1rUgKi8NCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhUHVzY2hCdW5sZGluZ05hY2tDbnQ7ICAgICAgLyogtaXC69fWz8JQVVNDSCBCdW5kbGluZ7rztcROQUNLzbO8xiDX3LXEwNu809a1ICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVB1c2NoQnVubGRpbmdBY2tBY2tDbnQ7ICAgIC8qIMG9wuvX1s/CUFVTQ0ggQnVuZGxpbme687XEW0FDSyBBQ0tdzbO8xiDX3LXEwNu809a1ICovDQorCVVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVB1c2NoQnVubGRpbmdBY2tOYWNrQ250OyAgIC8qIMG9wuvX1s/CUFVTQ0ggQnVuZGxpbme687XEW0FDSyBOQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFQdXNjaEJ1bmxkaW5nTmFja0Fja0NudDsgICAvKiDBvcLr19bPwlBVU0NIIEJ1bmRsaW5nuvO1xFtOQUNLIEFDS13Ns7zGINfctcTA27zT1rUgKi8NCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhUHVzY2hCdW5sZGluZ05hY2tOYWNrQ250OyAgLyogwb3C69fWz8JQVVNDSCBCdW5kbGluZ7rztcRbTkFDSyBOQUNLXc2zvMYg19y1xMDbvNPWtSAqLw0KKw0KKw0KKwlVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdQZGNjaFVsR3JhbnRDbnQ7ICAgICAgICAgICAgICAvKiDK2siozbO8xiDX3LXEwNu809a1o6zCt7LgyO28/tL9yOsgKi8NCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3UHVzY2hEeW5QYWNrZXROdW07ICAgICAgICAgICAgLyogtq/MrLD8zbO8xiDX3LXEwNu809a1o6zCt7LgyO28/tL9yOsgKi8NCit9VF96UEhZX0VVTF9CdW5sZGluZ0FOU3RhdGlzdGljc0luZm87DQorDQorLyogUFVDQ0ggRk1UILjxyr3Ns7zG0MXPoiAqLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdTRk47ICAgIC8vyrG85NDFz6INCisJVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhUHVjY2hGbXQxQ250OyAgICAvKiBQVUNDSCBGb3JtYXQxIM2zvMYg19y1xMDbvNPWtSovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVB1Y2NoRm10MWFDbnQ7ICAgLyogUFVDQ0ggRm9ybWF0MUEgzbO8xiDX3LXEwNu809a1Ki8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhUHVjY2hGbXQxYkNudDsgICAvKiBQVUNDSCBGb3JtYXQxQiDNs7zGINfctcTA27zT1rUqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFQdWNjaEZtdDJDbnQ7ICAgIC8qIFBVQ0NIIEZvcm1hdDIgzbO8xiDX3LXEwNu809a1Ki8NCisgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgIGR3VWxhUHVjY2hGbXQyYUNudDsgICAvKiBQVUNDSCBGb3JtYXQyQSDNs7zGINfctcTA27zT1rUqLw0KKyAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgZHdVbGFQdWNjaEZtdDJiQ250OyAgIC8qIFBVQ0NIIEZvcm1hdDJCIM2zvMYg19y1xMDbvNPWtSovDQorICAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICBkd1VsYVB1Y2NoRm10M0NudDsgICAvKiBQVUNDSCBGb3JtYXQyQiDNs7zGINfctcTA27zT1rUqLw0KK31UX3pQSFlfRVVMX1B1Y2NoRm10U3RhdGlzdGljc0luZm87DQorDQorLyogyc/Q0M/C0NDB98G/0MXPos2zvMYgKi8gIA0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgZHdQaHlETFRCMUZsb3c7ICAgIA0KKyAgICBVSU5UMzIgZHdQaHlETFRCMkZsb3c7DQorICAgIFVJTlQzMiBkd1BoeVVMVEIxRmxvdzsgICAgDQorICAgIFVJTlQzMiBkd1BoeVVMVEIyRmxvdzsNCit9VF9aUEhZX0VVTERMX0ZMT1dfSU5GTzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyIGR3UG93ZXJBOyAgICAgIC8qIMC019REZWRpY2F0ZWTP+8+itcTTw9PaUERTQ0i5psLKsrmzpbXEss7K/SAqLw0KKyAgICBVSU5UMzIgZHdQb3dlckI7ICAgICAgLyogwLTX1ENvbW1vbs/7z6K1xNPD09pQRFNDSLmmwsqyubOltcSyzsr9ICovDQorfVRfWlBIWV9FRExfUEFfSU5GTzsNCisNCisvKiDPwtDQRENJzbO8xtDFz6IgKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyIGR3U0ZOOyAgICAgICAgICAgICAgICAgICAgICAvKiDKsbzk0MXPoiAqLw0KKyAgICBVSU5UMzIgZHdSZXNvdXJjZTsgICAgICAgICAgICAgICAgIC8qINfK1LS31sXk19a2ziAqLw0KKyAgICBVSU5UMzIgYWR3UmJCbXBbOF07ICAgICAgICAgICAgICAgIC8qIDEtYml0tcRSQi1kZW1hcHBpbmcgYml0bWFwICovDQorICAgIFVJTlQzMiBkd1JhVHlwZTsgICAgICAgICAgICAgICAgICAgLyogUkEgwODQzSAqLw0KKyAgICBVSU5UMzIgZHdSYk51bTsgICAgICAgICAgICAgICAgICAgIC8qIFJCyv0gKi8NCisgICAgVUlOVDMyIGR3UmJTdGFydDsgICAgICAgICAgICAgICAgICAvKiBSQsbkyrXOu9bDICovDQorICAgIFVJTlQzMiBkd1JiTGVuZ3RoOyAgICAgICAgICAgICAgICAgLyogUkKzpLbIICovDQorICAgIFVJTlQzMiBkd0hhcnFJZDsgICAgICAgICAgICAgICAgICAgLyogSEFSUSBJRCAqLw0KKyAgICBVSU5UMzIgZHdUYjFNY3M7ICAgICAgICAgICAgICAgICAgIC8qIFRCMSBNQ1PWtSAqLw0KKyAgICBVSU5UMzIgZHdUYjJNY3M7ICAgICAgICAgICAgICAgICAgIC8qIFRCMiBNQ1PWtSAqLw0KKyAgICBVSU5UMzIgZHdUYjFOZGk7ICAgICAgICAgICAgICAgICAgIC8qIFRCMSBOREkgKi8NCisgICAgVUlOVDMyIGR3VGIyTmRpOyAgICAgICAgICAgICAgICAgICAvKiBUQjIgTkRJICovDQorICAgIFVJTlQzMiBkd1RiMVJ2OyAgICAgICAgICAgICAgICAgICAgLyogVEIxIMjf0+Cw5rG+ICovDQorICAgIFVJTlQzMiBkd1RiMlJ2OyAgICAgICAgICAgICAgICAgICAgLyogVEIyIMjf0+Cw5rG+ICovDQorICAgIFVJTlQzMiBkd0RhaUlkeDsgICAgICAgICAgICAgICAgICAgLyogREFJIMv30v0gKi8NCit9VF9aUEhZX0VETF9EQ0lfREVDT0RFOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBUX1pQSFlfRURMX0RDSV9ERUNPREUgYXREbERjaUluZm9bMTBdOyAvKiDPwtDQMTC49tfT1qG1xERDSc2zvMYgKi8NCit9VF9aUEhZX0VETF9EQ0lfSU5GTzsNCisNCisNCisvKiDPwtDQSEFSUdDFz6LNs7zGICovDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFVJTlQzMiBhZHdSZXZUYjFSdk51bVs0XTsgICAgICAgIC8qIFRCMSC499fUtaW2wMDbvNPNs7zGICovDQorICAgIFVJTlQzMiBhZHdSZXZUYjJSdk51bVs0XTsgICAgICAgIC8qIFRCMiC499fUtaW2wMDbvNPNs7zGICovDQorDQorICAgIC8qz8LQ0MSjv+m490hhcnEgSUQgQUNLoaJOQUNLyv0qLw0KKyAgICBVSU5UMzIgYWR3RGxUYjFIYXJxSWRBY2tbMTVdOyAgICAvKiBUQjEgMTW49khBUlEgSUS1xEFDS9DFz6KjrLj3SUTX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3RGxUYjFIYXJxSWROYWNrWzE1XTsgICAvKiBUQjEgMTW49khBUlEgSUS1xE5BQ0vQxc+io6y490lE19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0RsVGIySGFycUlkQWNrWzE1XTsgICAgLyogVEIyIDE1uPZIQVJRIElEtcRBQ0vQxc+io6y490lE19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0RsVGIySGFycUlkTmFja1sxNV07ICAgLyogVEIyIDE1uPZIQVJRIElEtcROQUNL0MXPoqOsuPdJRNfctcTA27zTICovDQorDQorICAgIFVJTlQzMiBhZHdEbEhhcnFTdWNjTnVtWzRdOyAgICAgIC8qIFRCMaGiVEIy1ti0q7PJuaa0zsr9zbO8xqOsINfctcTA27zT1rUgKi8NCit9VF9aUEhZX0VETF9IQVJRX0lORk87DQorDQorLyogUERTQ0i94sLrzbO8xtDFz6IgKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgLypTdGF0aXN0aWMgU2ktUm50aSBQRFNDSCBEZWNvZGUgSW5mbyovDQorICAgIFVJTlQzMiBhZHdTaVJudGlDcmNPa051bVsxMF07ICAgICAgIC8qIFNpLVJudGkgveLC6yBDUkNfT0sgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd1NpUm50aUNyY0Vyck51bVsxMF07ICAgICAgLyogU2ktUm50aSC94sLrIENSQ19FUlIgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGR3U2lSbnRpQ3JjT2tTdW1OdW07ICAgICAgICAgLyogU2ktUm50aSC94sLrIENSQ19PSyDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgZHdTaVJudGlDcmNFcnJTdW1OdW07ICAgICAgICAvKiBTaS1SbnRpIL3iwusgQ1JDX0VSUiDX3LXEwNu80yAqLw0KKw0KKyAgICAvKlN0YXRpc3RpYyBQLVJudGkgUERTQ0ggRGVjb2RlIEluZm8qLw0KKyAgICBVSU5UMzIgYWR3UFJudGlDcmNPa051bVsxMF07ICAgICAgICAvKiBQLVJudGkgveLC6yBDUkNfT0sgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd1BSbnRpQ3JjRXJyTnVtWzEwXTsgICAgICAgLyogUC1SbnRpIL3iwusgQ1JDX0VSUiCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgZHdQUm50aUNyY09rU3VtTnVtOyAgICAgICAgICAvKiBQLVJudGkgveLC6yBDUkNfT0sg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGR3UFJudGlDcmNFcnJTdW1OdW07ICAgICAgICAgLyogUC1SbnRpIL3iwusgQ1JDX0VSUiDX3LXEwNu80yAqLw0KKw0KKyAgICAvKlN0YXRpc3RpYyBSYS1SbnRpIFBEU0NIIERlY29kZSBJbmZvKi8NCisgICAgVUlOVDMyIGFkd1JhUm50aUNyY09rTnVtWzEwXTsgICAgICAgLyogUmEtUm50aSC94sLrIENSQ19PSyCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3UmFSbnRpQ3JjRXJyTnVtWzEwXTsgICAgICAvKiBSYS1SbnRpIL3iwusgQ1JDX0VSUiCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgZHdSYVJudGlDcmNPa1N1bU51bTsgICAgICAgICAvKiBSYS1SbnRpIL3iwusgQ1JDX09LINfctcTA27zTICovDQorICAgIFVJTlQzMiBkd1JhUm50aUNyY0VyclN1bU51bTsgICAgICAgIC8qIFJhLVJudGkgveLC6yBDUkNfRVJSINfctcTA27zTICovDQorDQorICAgIC8qU3RhdGlzdGljIFRjLVJudGkgUERTQ0ggRGVjb2RlIEluZm8qLw0KKyAgICBVSU5UMzIgYWR3VGNSbnRpQ3JjT2tOdW1bMTBdOyAgICAgICAvKiBUYy1SbnRpIL3iwusgQ1JDX09LILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdUY1JudGlDcmNFcnJOdW1bMTBdOyAgICAgIC8qIFRjLVJudGkgveLC6yBDUkNfT0sgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGR3VGNSbnRpQ3JjT2tTdW1OdW07ICAgICAgICAgLyogVGMtUm50aSC94sLrIENSQ19PSyDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgZHdUY1JudGlDcmNFcnJTdW1OdW07ICAgICAgICAvKiBUYy1SbnRpIL3iwusgQ1JDX09LINfctcTA27zTICovDQorDQorICAgIC8qU3RhdGlzdGljIEMtUm50aSBQRFNDSCBEZWNvZGUgSW5mbyovDQorICAgIFVJTlQzMiBhZHdDUm50aVRiQ3JjT2tOdW1bMl1bMTBdOyAgIC8qIFRCMaGiMiBDLVJudGkgveLC6yBDUkNfT0sgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpVGJDcmNFcnJOdW1bMl1bMTBdOyAgLyogVEIxoaIyIEMtUm50aSC94sLrIENSQ19FUlIgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpVGJDcmNPa1N1bU51bVsyXTsgICAgLyogVEIxoaIyIEMtUm50aSC94sLrIENSQ19PSyDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlUYkNyY0VyclN1bU51bVsyXTsgICAvKiBUQjGhojIgQy1SbnRpIL3iwusgQ1JDX0VSUiDX3LXEwNu80yAqLw0KKw0KKyAgICAvKlN0YXRpc3RpYyBTcHMtUm50aSBQRFNDSCBEZWNvZGUgSW5mbyovDQorICAgIFVJTlQzMiBhZHdTcHNSbnRpQ3JjT2tOdW1bMTBdOyAgICAgIC8qIFNwcy1SbnRpIL3iwusgQ1JDX09LILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdTcHNSbnRpQ3JjRXJyTnVtWzEwXTsgICAgIC8qIFNwcy1SbnRpIL3iwusgQ1JDX09LILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdTcHNSbnRpQ3JjT2tTdW1OdW07ICAgICAgIC8qIFNwcy1SbnRpIL3iwusgQ1JDX09LINfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdTcHNSbnRpQ3JjRXJyU3VtTnVtOyAgICAgIC8qIFNwcy1SbnRpIL3iwusgQ1JDX09LINfctcTA27zTICovDQorfVRfWlBIWV9FRExfUERTQ0hfSU5GTzsNCisNCisvKlBEQ0NIw6S87LLizbO8xtDFz6IqLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICAvKlN0YXRpc3RpYyBTaS1SbnRpIERjaSBJbmZvKi8NCisgICAgVUlOVDMyIGFkd1NpUm50aURjaTFBTnVtWzEwXTsgICAgICAgLyogU2ktUm50aSBEQ0lfMUEgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd1NpUm50aURjaTFDTnVtWzEwXTsgICAgICAgLyogU2ktUm50aSBEQ0lfMUMgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGR3U2lSbnRpRGNpMUFTdW1OdW07ICAgICAgICAgLyogU2ktUm50aSBEQ0lfMUEg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGR3U2lSbnRpRGNpMUNTdW1OdW07ICAgICAgICAgLyogU2ktUm50aSBEQ0lfMUMg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGR3U2lSbnRpRGNpU3VtTnVtOyAgICAgICAgICAgLyogU2ktUm50aSBEY2nX3LXEzbO8xrj2yv0gKi8NCisNCisgICAgLypTdGF0aXN0aWMgUC1SbnRpIERjaSBJbmZvKi8NCisgICAgVUlOVDMyIGFkd1BSbnRpRGNpMUFOdW1bMTBdOyAgICAgICAgLyogUC1SbnRpIERDSV8xQSCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3UFJudGlEY2kxQ051bVsxMF07ICAgICAgICAvKiBQLVJudGkgRENJXzFDILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBkd1BSbnRpRGNpMUFTdW1OdW07ICAgICAgICAgIC8qIFAtUm50aSBEQ0lfMUEg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGR3UFJudGlEY2kxQ1N1bU51bTsgICAgICAgICAgLyogUC1SbnRpIERDSV8xQyDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgZHdQUm50aURjaVN1bU51bTsgICAgICAgICAgICAvKiBQLVJudGkgRGNp19y1xM2zvMa49sr9ICovDQorDQorICAgIC8qU3RhdGlzdGljIFJhLVJudGkgRGNpIEluZm8qLw0KKyAgICBVSU5UMzIgYWR3UmFSbnRpRGNpMUFOdW1bMTBdOyAgICAgICAvKiBSYS1SbnRpIERDSV8xQSCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3UmFSbnRpRGNpMUNOdW1bMTBdOyAgICAgICAvKiBSYS1SbnRpIERDSV8xQyCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgZHdSYVJudGlEY2kxQVN1bU51bTsgICAgICAgICAvKiBSYS1SbnRpIERDSV8xQSDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgZHdSYVJudGlEY2kxQ1N1bU51bTsgICAgICAgICAvKiBSYS1SbnRpIERDSV8xQyDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgZHdSYVJudGlEY2lTdW1OdW07ICAgICAgICAgICAvKiBSYS1SbnRpIERjadfctcTNs7zGuPbK/SAqLw0KKw0KKyAgICAvKlN0YXRpc3RpYyBUYy1SbnRpIERjaSBJbmZvKi8NCisgICAgVUlOVDMyIGFkd1RjUm50aURjaTFOdW1bMTBdOyAgICAgICAgLyogVGMtUm50aSBEQ0lfMSCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3VGNSbnRpRGNpMUFOdW1bMTBdOyAgICAgICAvKiBUYy1SbnRpIERDSV8xQSCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgZHdUY1JudGlEY2kxU3VtTnVtOyAgICAgICAgICAvKiBUYy1SbnRpIERDSV8xINfctcTA27zTICovDQorICAgIFVJTlQzMiBkd1RjUm50aURjaTFBU3VtTnVtOyAgICAgICAgIC8qIFRjLVJudGkgRENJXzFBINfctcTA27zTICovDQorICAgIFVJTlQzMiBkd1RjUm50aURjaVN1bU51bTsgICAgICAgICAgIC8qIFRjLVJudGkgRGNp19y1xM2zvMa49sr9ICovDQorDQorICAgIC8qU3RhdGlzdGljIFRwYy1SbnRpIERjaSBJbmZvKi8NCisgICAgVUlOVDMyIGFkd1RwY1JudGlEY2kzTnVtWzEwXTsgICAgICAgLyogVHBjLVJudGkgRENJXzMgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd1RwY1JudGlEY2kzQU51bVsxMF07ICAgICAgLyogVHBjLVJudGkgRENJXzNBILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdUcGNSbnRpRGNpM1N1bU51bTsgICAgICAgIC8qIFRwYy1SbnRpIERDSV8zINfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdUcGNSbnRpRGNpM0FTdW1OdW07ICAgICAgIC8qIFRwYy1SbnRpIERDSV8zQSDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3UHVjY2hUcGNEY2kzM0FTdW1OdW07DQorICAgIFVJTlQzMiBhZHdQdXNjaFRwY0RjaTMzQVN1bU51bTsNCisNCisgICAgLypTdGF0aXN0aWMgQy1SbnRpIERjaSBJbmZvKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpMDFOdW1bMTBdOyAgICAgICAgLyogRENJMF8xILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTAyTnVtWzEwXTsgICAgICAgIC8qIERDSTBfMiCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2kwM051bVsxMF07ICAgICAgICAvKiBEQ0kwXzMgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpMDROdW1bMTBdOyAgICAgICAgLyogRENJMF80ILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTQxTnVtWzEwXTsgICAgICAgIC8qIERDSTQxILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTQyTnVtWzEwXTsgICAgICAgIC8qIERDSTQyILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTQzTnVtWzEwXTsgICAgICAgIC8qIERDSTQzILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTQ0TnVtWzEwXTsgICAgICAgIC8qIERDSTQ0ILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTFOdW1bMTBdOyAgICAgICAgIC8qIEMtUm50aSBEQ0lfMSCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2kxQU51bVsxMF07ICAgICAgICAvKiBDLVJudGkgRENJXzFBILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTFCTnVtWzEwXTsgICAgICAgIC8qIEMtUm50aSBEQ0lfMUIgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpMUROdW1bMTBdOyAgICAgICAgLyogQy1SbnRpIERDSV8xRCCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2kyTnVtWzEwXTsgICAgICAgICAvKiBDLVJudGkgRENJXzIgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpMkFOdW1bMTBdOyAgICAgICAgLyogQy1SbnRpIERDSV8yQSCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2kyQk51bVsxMF07ICAgICAgICAvKiBDLVJudGkgRENJXzJCILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTJDTnVtWzEwXTsgICAgICAgIC8qIEMtUm50aSBEQ0lfMkMgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpMDFTdW1OdW07ICAgICAgICAgLyogQy1SbnRpIERDSV8wMSDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2kwMlN1bU51bTsgICAgICAgICAvKiBDLVJudGkgRENJXzAyINfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTAzU3VtTnVtOyAgICAgICAgIC8qIEMtUm50aSBEQ0lfMDMg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpMDRTdW1OdW07ICAgICAgICAgLyogQy1SbnRpIERDSV8wNCDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2k0MVN1bU51bTsgICAgICAgICAvKiBDLVJudGkgRENJXzQg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpNDJTdW1OdW07ICAgICAgICAgLyogQy1SbnRpIERDSV80INfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTQzU3VtTnVtOyAgICAgICAgIC8qIEMtUm50aSBEQ0lfNCDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2k0NFN1bU51bTsgICAgICAgICAvKiBDLVJudGkgRENJXzQg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpMVN1bU51bTsgICAgICAgICAgLyogQy1SbnRpIERDSV8xINfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTFBU3VtTnVtOyAgICAgICAgIC8qIEMtUm50aSBEQ0lfMUEg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpMUJTdW1OdW07ICAgICAgICAgLyogQy1SbnRpIERDSV8xQiDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2kxRFN1bU51bTsgICAgICAgICAvKiBDLVJudGkgRENJXzFEINfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTJTdW1OdW07ICAgICAgICAgIC8qIEMtUm50aSBEQ0lfMiDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2kyQVN1bU51bTsgICAgICAgICAvKiBDLVJudGkgRENJXzJBINfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdDUm50aURjaTJCU3VtTnVtOyAgICAgICAgIC8qIEMtUm50aSBEQ0lfMkIg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd0NSbnRpRGNpMkNTdW1OdW07ICAgICAgICAgLyogQy1SbnRpIERDSV8yQyDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlEY2lTdW1OdW07ICAgICAgICAgICAvKiBDLVJudGkgRGNp19y1xM2zvMa49sr9ICovDQorDQorICAgIC8qU3RhdGlzdGljIFNwcy1SbnRpIERjaSBJbmZvKi8NCisgICAgVUlOVDMyIGFkd1Nwc1JudGlEY2kxTnVtWzEwXTsgICAgICAgLyogU3BzLVJudGkgRENJXzEgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd1Nwc1JudGlEY2kxQU51bVsxMF07ICAgICAgLyogU3BzLVJudGkgRENJXzFBILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdTcHNSbnRpRGNpMk51bVsxMF07ICAgICAgIC8qIFNwcy1SbnRpIERDSV8yILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdTcHNSbnRpRGNpMkFOdW1bMTBdOyAgICAgIC8qIFNwcy1SbnRpIERDSV8yQSCwtNfT1qG1pbbAwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3U3BzUm50aURjaTJCTnVtWzEwXTsgICAgICAvKiBTcHMtUm50aSBEQ0lfMkIgsLTX09ahtaW2wMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd1Nwc1JudGlEY2kyQ051bVsxMF07ICAgICAgLyogU3BzLVJudGkgRENJXzJCILC019PWobWltsDA27zTICovDQorICAgIFVJTlQzMiBhZHdTcHNSbnRpRGNpMVN1bk51bTsgICAgICAgIC8qIFNwcy1SbnRpIERDSV8xINfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdTcHNSbnRpRGNpMUFTdW5OdW07ICAgICAgIC8qIFNwcy1SbnRpIERDSV8xQSDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3U3BzUm50aURjaTJTdW5OdW07ICAgICAgICAvKiBTcHMtUm50aSBEQ0lfMiDX3LXEwNu80yAqLw0KKyAgICBVSU5UMzIgYWR3U3BzUm50aURjaTJBU3VuTnVtOyAgICAgICAvKiBTcHMtUm50aSBEQ0lfMkEg19y1xMDbvNMgKi8NCisgICAgVUlOVDMyIGFkd1Nwc1JudGlEY2kyQlN1bk51bTsgICAgICAgLyogU3BzLVJudGkgRENJXzJCINfctcTA27zTICovDQorICAgIFVJTlQzMiBhZHdTcHNSbnRpRGNpMkNTdW5OdW07ICAgICAgIC8qIFNwcy1SbnRpIERDSV8yQiDX3LXEwNu80yAqLw0KK31UX1pQSFlfRURMX1BEQ0NIX0lORk87DQorDQorLypQSElDSM2zvMbQxc+iKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyIGFkd0hpTmc7ICAgICAgICAgICAgICAgICAgICAgLyogTmcgKi8NCisgICAgVUlOVDMyIGFkd0hpRHVyYXRpb247ICAgICAgICAgICAgICAgLyogUEhJQ0ggRHVyYXRpb24gKi8NCisgICAgVUlOVDMyIGFkd1BoaWNoQWNrTnVtWzRdWzEwXTsgICAgICAgLyogUEhJQ0gxoaIyILC019PWobWltsDA27zTzbO8xiAqLw0KKyAgICBVSU5UMzIgYWR3UGhpY2hOYWNrTnVtWzRdWzEwXTsgICAgICAvKiBQSElDSDGhojIgsLTX09ahtaW2wMDbvNPNs7zGICovDQorICAgIFVJTlQzMiBhZHdQaGljaEFja1N1bU51bVs0XTsgICAgICAgIC8qIFBISUNIMaGiMiCwtNfctcTA27zTzbO8xiAqLw0KKyAgICBVSU5UMzIgYWR3UGhpY2hOYWNrU3VtTnVtWzRdOyAgICAgICAvKiBQSElDSDGhojIgsLTX3LXEwNu8082zvMYgKi8NCisJVUlOVDMyIGFkd1BoaWNoMUdycFsxMF07ICAgICAgICAgICAgLyogUEhJQ0gxtcTX6brFICAgICAgKi8NCisJVUlOVDMyIGFkd1BoaWNoMVNlcVsxMF07ICAgICAgICAgICAgLyogUEhJQ0gxtcTAqca10PLB0LrFICAgICovDQorCVVJTlQzMiBhZHdQaGljaDJHcnBbMTBdOyAgICAgICAgICAgIC8qIFBISUNIMrXE1+m6xSAgICAgICovDQorCVVJTlQzMiBhZHdQaGljaDJTZXFbMTBdOyAgICAgICAgICAgIC8qIFBISUNIMrXEwKnGtdDywdC6xSAgICAqLw0KKyAgICBVSU5UMzJhZHdIaUFja051bTsgICAgICAgICAgICAgICAgIC8qIEhpIEFja8r9xL/Ns7zGICAgICovDQorICAgIFVJTlQzMmFkd0hpTmFja051bTsgICAgICAgICAgICAgICAgLyogSGkgTmFja8r9xL/Ns7zGICAgICovDQorfVRfWlBIWV9FRExfUEhJQ0hfSU5GTzsNCisNCisvKiBQQ0ZJQ0jNs7zG0MXPoiAqLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgZHdDYUNyb3NzSW5kOyAgICAgICAgICAgICAgIC8qv+fU2LKotfe2yNa4yr4qLw0KKyAgICBVSU5UMzIgYWR3Q2ZpVmFsVGFiWzEwXTsgICAgICAgICAgIC8q0a27t82zvMYxMLj219PWobXEQ0ZJ1rUqLw0KKyAgICBVSU5UMzIgYWR3Q2ZpTnVtUGVyVmFsWzRdOyAgICAgICAgIC8qzbO8xrK7zaxDRknWtbXEuPbK/SovDQorICAgIFVJTlQzMiBhZHdDZmlOdW1QZXJTRls0XVsxMF07ICAgICAgLyqwtNfT1qHNs7zGsrvNrENGSda1tcS49sr9Ki8NCisgICAgVUlOVDMyIGR3U2NjUGRzY2hTdGFydDsgICAgICAgICAgICAvKr/n1NiyqLX3tsjH6b/2z8K1xFNDQyBDRkkqLw0KK31UX1pQSFlfRURMX1BDRklDSF9JTkZPOw0KKw0KKw0KKy8qyO28/rmk1/fXtMys0MXPos2zvMYqLw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgZHdBYnNTRk47ICAgICAgICAgICAgICAgLyrKsbzk0MXPoiovDQorCVVJTlQzMiBkd1JudGlBcGx5U3ViZkNudFsxMF07DQorICAgIFVJTlQzMiBkd1NpUm50aUFwcGx5Q250OyAgICAgICAvKiDI7bz+yrnE3FNJUk5USbXEtM7K/SAqLw0KKyAgICBVSU5UMzIgYWR3Q1JudGlBcHBseUNudDsgICAgICAgLyogyO28/sq5xNxDUk5USbXEtM7K/SAqLw0KKyAgICBVSU5UMzIgZHdUY1JudGlBcHBseUNudDsgICAgICAgLyogyO28/sq5xNxUQ1JOVEm1xLTOyv0gKi8NCisgICAgVUlOVDMyIGR3UmFSbnRpQXBwbHlDbnQ7ICAgICAgIC8qIMjtvP7KucTcUkFSTlRJtcS0zsr9ICovDQorICAgIFVJTlQzMiBkd1BSbnRpQXBwbHlDbnQ7ICAgICAgICAvKiDI7bz+yrnE3FBSTlRJtcS0zsr9ICovDQorICAgIFVJTlQzMiBkd01SbnRpQXBwbHlDbnQ7ICAgICAgICAvKiDI7bz+yrnE3E1STlRJtcS0zsr9ICovDQorICAgIFVJTlQzMiBhZHdQdWNjaFJudGlBcHBseUNudDsgICAvKiDI7bz+yrnE3FB1Y2NoUk5USbXEtM7K/SAqLw0KKyAgICBVSU5UMzIgYWR3UHVzY2hSbnRpQXBwbHlDbnQ7ICAgLyogyO28/sq5xNxQdXNjaFJOVEm1xLTOyv0gKi8NCisgICAgVUlOVDMyIGFkd1Nwc1JudGlBcHBseUNudDsgICAgIC8qIMjtvP7KucTcU1BTUk5USbXEtM7K/SAqLw0KKyAgICBVSU5UMzIgYWR3RHRjaENmZ0NudDsgICAgICAgICAgLyogyO28/kRUQ0jF5NbDtM7K/SAqLw0KKyAgICBVSU5UMzIgYWR3RHRjaEludENudDsgICAgICAgICAgLyogyO28/kRUQ0jW0LbPyc+xqLTOyv0gKi8NCisgICAgVUlOVDMyIGR3U2liQ2ZnQ250OyAgICAgICAgICAgIC8qIMjtvP5TSULF5NbDtM7K/SAqLw0KKyAgICBVSU5UMzIgZHdTaWJJbnRDbnQ7ICAgICAgICAgICAgLyogyO28/lNJQtbQts/Jz7GotM7K/SAqLw0KKyAgICBVSU5UMzIgZHdQY2hDZmdDbnQ7ICAgICAgICAgICAgLyogyO28/lBDSMXk1sO0zsr9ICovDQorICAgIFVJTlQzMiBkd1BjaEludENudDsgICAgICAgICAgICAvKiDI7bz+UENI1tC2z8nPsai0zsr9ICovDQorICAgIFVJTlQzMiBkd1JhckNmZ0NudDsgICAgICAgICAgICAvKiDI7bz+UkFSxeTWw7TOyv0gKi8NCisgICAgVUlOVDMyIGR3UmFySW50Q250OyAgICAgICAgICAgIC8qIMjtvP5SQVLW0LbPyc+xqLTOyv0gKi8NCisgICAgVUlOVDMyIGR3TWJtc0NmZ0NudDsgICAgICAgICAgIC8qIMjtvP5NQlNGTsXk1sO0zsr9ICovDQorICAgIFVJTlQzMiBkd01ibXNJbnRDbnQ7ICAgICAgICAgICAvKiDI7bz+TUJTRk7W0LbPyc+xqLTOyv0gKi8NCit9VF9aUEhZX0VETF9XT1JLX0lORk87DQorDQorLyogz8LQ0FNOUtDFz6IgKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgU0lOVDMyIHNkd1NpbnJWYWw7ICAgICANCisgICAgU0lOVDMyIHNkd1J4MFR4MFNucjsgICANCisgICAgU0lOVDMyIHNkd1J4MFR4MFNucjsgICAgDQorICAgIFNJTlQzMiBzZHdSeDBUeDBTbnI7DQorICAgIFNJTlQzMiBzZHdSeDBUeDBTbnI7DQorfVRfWlBIWV9FRExfU05SX0lORk87DQorDQorDQorLyogVUW5pNf3u/mxvtDFz6IgKi8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDMyIGR3V29ya0VhcmZjbjsgICAgICAgICAgICAvKiDI7bz+UENIxeTWw7TOyv0gKi8NCisgICAgVUlOVDMyIGR3V29ya0NlbGxJZDsgICAgICAgICAgICAvKiDI7bz+UENI1tC2z8nPsai0zsr9ICovDQorICAgIFVJTlQzMiBkd1N5c0J3OyAgICAgICAgICAgICAgICAgLyogyO28/lJBUsXk1sO0zsr9ICovDQorICAgIFVJTlQzMiBkd1N1YkZybVR5cGU7ICAgICAgICAgICAgLyogyO28/lJBUtbQts/Jz7GotM7K/SAqLw0KKyAgICBVSU5UMzIgZHdTcGVjU3ViRnJtVHlwZTsgICAgICAgIC8qIMjtvP5NQlNGTsXk1sO0zsr9ICovDQorICAgIFVJTlQzMiBkd0RsVHJhbnNNb2RlOyAgICAgICAgICAgLyogz8LQ0LSryuTEo8q9ICovDQorICAgIFVJTlQzMiBkd1VsVHJhbnNNb2RlOyAgICAgICAgICAgLyogyc/Q0LSryuTEo8q9ICovDQorICAgIFVJTlQzMiBkd0NybnRpVmFsOw0KK31UX1pQSFlfRURMX1NOUl9JTkZPOw0KKw0KKw0KKw0KKw0KKw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgZHdTZXJ2ZXJDZWxsSWQ7ICAvKiC3/s7x0KHH+ElEICovDQorDQorICAgIFNJTlQzMiBzZHdDc3JtUnNzaTsgICAgIC8qIFJTU0kgKi8NCisgICAgU0lOVDMyIHNkd0Nzcm1Sc3JxOyAgICAgLyogUlNSUSAqLw0KKyAgICBTSU5UMzIgc2R3Q3NybVJzcnA7ICAgICAvKiBSU1JQICovDQorDQorICAgIFNJTlQzMiBzZHdDc3JtUnNzaUFudDA7IC8qIMzsz98wIFJTU0kgKi8NCisgICAgU0lOVDMyIHNkd0Nzcm1Sc3NpQW50MTsgLyogzOzP3zEgUlNTSSAqLw0KKw0KKyAgICBTSU5UMzIgc2R3Q3NybVJzcnBBbnQwOyAvKiDM7M/fMCBSU1JQICovDQorICAgIFNJTlQzMiBzZHdDc3JtUnNycEFudDE7IC8qIMzsz98xIFJTUlAgKi8NCisNCisgICAgU0lOVDMyIHNkd0Nzcm1Sc3JxQW50MDsgLyogzOzP3zAgUlNSUSAqLw0KKyAgICBTSU5UMzIgc2R3Q3NybVJzcnFBbnQxOyAvKiDM7M/fMCBSU1JRICovDQorfVRfelBIWV9FQ1NSX01lYXN1cmVJbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgZHdNaWJSZWZyZXNoRmxhZzsgIC8vTUlC0MXPorj80MKx6ta+o6zT0Lj80MLU8tbDMQ0KKyAgICBVSU5UMzIgZHdNaWJJbmZvOyAgICAgICAgIC8vTUlC0MXPog0KK31UX3pQSFlfRUNTUl9NaWJJbmZvOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMTYgd0NlbGxCYW5kOyAgICAgICAgICAgICAgICAgICAgICAgLyogz8LQ0LT4v+0qLw0KKyAgICBVSU5UMTYgd1BoaWNoQ29uZmlnOyAgICAgICAgICAgICAgICAgICAgLyogUEhJQ0iyzsr9Ki8NCit9VF96UEhZX0VDU1JfRGVidWdNaWJJbmZvOw0KKw0KKw0KKyNlbmRpZg0KKw0KKyNpZmRlZiBfREVCVUdfUEhZX1RNVF9HTE9CQUxfQ09OVFJPTA0KKyAgICBleHRlcm4gVF96UEhZX0RlYnVnU3RhdGlzdGljc0ZpZ0luZm8gKmdfcGF0THRlUGh5RGJnRmlnSW5mbzsNCisgICAgI2lmZGVmIF9ERUJVR19UTVRfRk9SX0RJTkdMSSAgLy8yMDEyMDIwOLamwPvQwtT2IE1JQtDFz6INCisgICAgICAgIGV4dGVybiBUX3pQSFlfTWliSW5mb0ZvckRpbmdMaSAqZ19wdE1pYkluZm87DQorICAgICNlbmRpZg0KKyNlbmRpZg0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVSU5UMzIgZHdXb3JrTW9kZTsgICAgICAgICAgICAgIC8qILmk1/fWxsq9ICovDQorICAgIFVJTlQzMiBkd1dvcmtFYXJmY247ICAgICAgICAgICAgLyoguaTX98a1teMgKi8NCisgICAgVUlOVDMyIGR3V29ya0NlbGxJZDsgICAgICAgICAgICAvKiC5pNf30KHH+ElEICovDQorICAgIFVJTlQzMiBkd1N5c0J3OyAgICAgICAgICAgICAgICAgLyogz7XNs7T4v+0gKi8NCisgICAgVUlOVDMyIGR3U3ViRnJtVHlwZTsgICAgICAgICAgICAvKiDX09ahxeSxyCAqLw0KKyAgICBVSU5UMzIgZHdTcGVjU3ViRnJtVHlwZTsgICAgICAgIC8qIMzYyuLX09ahxeSxyCAqLw0KKyAgICBVSU5UMzIgZHdEbFRyYW5zTW9kZTsgICAgICAgICAgIC8qIM/C0NC0q8rkxKPKvSAqLw0KKyAgICBVSU5UMzIgZHdVbFRyYW5zTW9kZTsgICAgICAgICAgIC8qIMnP0NC0q8rkxKPKvSAqLw0KKyAgICBVSU5UMzIgZHdDcm50aVZhbDsgICAgICAgICAgICAgIC8qIENSTlRJICovDQorICAgIFVJTlQzMiBkd1JhUm50aTsgICAgICAgICAgICAgICAgLyogUmFSTlRJICovDQorICAgIFVJTlQzMiBkd1RDUm50aTsgICAgICAgICAgICAgICAgLyogVENSTlRJICovDQorICAgIFVJTlQzMiBkd0RyeFN0YXR1czsgICAgICAgICAgICAgLyogRHJ4U3RhdHVzICovDQorfVRfWlBIWV9VRV9CQVNFX0lORk87DQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFVJTlQzMiAgICAgICAgICAgZHdTRk47DQorICAgIFVJTlQzMiAgICAgICAgICAgZHdVZUFudE51bTsNCisgICAgVUlOVDMyICAgICAgICAgICBkd0JzQW50TnVtOw0KKyAgICBVSU5UMzIgICAgICAgICAgIGR3RGxCYW5kV2lkdGg7DQorICAgIFVJTlQzMiAgICAgICAgICAgZHdUcmFuc01vZGU7DQorICAgIFVJTlQzMiAgICAgICAgICAgZHdSeFR4Qml0bWFwOw0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd05vaXNlT3V0cHV0Ow0KKw0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcnBPdXRwdXQwOw0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcnBPdXRwdXQxOw0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcnBPdXRwdXQyOw0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcnBPdXRwdXQzOw0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcnBPdXRwdXQ0Ow0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcnBPdXRwdXQ1Ow0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcnBPdXRwdXQ2Ow0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcnBPdXRwdXQ3Ow0KKw0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcE91dHB1dDA7DQorICAgIFNJTlQ2NCAgICAgICAgICAgc2R3UnNwT3V0cHV0MTsNCisgICAgU0lOVDY0ICAgICAgICAgICBzZHdSc3BPdXRwdXQyOw0KKyAgICBTSU5UNjQgICAgICAgICAgIHNkd1JzcE91dHB1dDM7DQorfVRfelBIWV9FRExfQ0FMQ19Gb3JfU0lOUjsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVUlOVDE2ICAgICBjUnhBbnRlbm5hTW9kZTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogvdPK1czsz9/Eo8q9IMSsyM/Wtc6qtaXM7M/fxKPKvSAqLw0KKyAgICBVSU5UMTYgICAgIGNTeW5jTW9kZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiDNrLK9xKPKvSAqLw0KKyAgICBVSU5UMTYgICAgIGNMTkFNb2RlMDsNCisgICAgVUlOVDE2ICAgICBjTE5BTW9kZTE7ICAgICAgICAvKiBMTkGx7bjxxKPKvSAqLw0KKw0KKyAgICBVSU5UMTYgICAgIHdBZ2NkQkdhaW4wOw0KKyAgICBVSU5UMTYgICAgIHdBZ2NkQkdhaW4xOyAgICAgICAgIC8qIEFHQ9T20ubWtSBkQiA8OCw3LHU+ICovDQorDQorICAgIFVJTlQxNiAgICAgd1J4TGluRGFnYzA7DQorICAgIFVJTlQxNiAgICAgd1J4TGluRGFnYzE7ICAgICAgICAgLyogUljCtyBEQUdD1PbS5ta1IM/f0NTWtSA8MTIsOCx1PiAqLw0KKw0KKyAgICBVSU5UMTYgICAgIHdDc3JtTGluRGFnYzA7DQorICAgIFVJTlQxNiAgICAgd0Nzcm1MaW5EYWdjMTsgICAgIC8qIENTUk3CtyBEQUdD1PbS5ta1IM/f0NTWtSA8MTIsOCx1PiAqLw0KKw0KKyAgICBVSU5UMTYgICAgIHdDc3JzTGluRGFnYzA7DQorICAgIFVJTlQxNiAgICAgd0NzcnNMaW5EYWdjMTsgICAgIC8qIENTUlPCtyBEQUdD1PbS5ta1IM/f0NTWtSA8MTIsOCx1PiAqLw0KKw0KKyAgICBzdHJ1Y3QNCisgICAgew0KKyAgICAgICAgVUlOVDE2ICAgICAgICAgICAgICAgICAgICAgY0FnY0dhaW5NYXhGbGFnOyAgICAgICAgICAgICAgICAgLyog1PbS5sa9uuKyubOl1rjKviAqLw0KKyAgICAgICAgVUlOVDE2ICAgICAgICAgICAgICAgICAgICB3TWF4ZEJWdWx1ZTsgICAgICAgICAgICAgICAgICAgICAvL8G9wrfM7M/fvc+089T20ubWtSw8OCw4LHU+DQorICAgICAgICBTSU5UMTYgICAgICAgICAgICAgICAgICAgc3dBZ2NGYWN0b3JMb2cyOyAgICAgICAgICAgICAgICAgLyog1PbS5sa9uuKyubOl0vLX0zwxNiw3LHQ+IGxvZzLWtSovDQorICAgICAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgIHdBZ2NGYWN0b3I7ICAgICAgICAgICAgICAgICAgICAgIC8qINT20ubGvbrisrmzpdLy19M8MTAsMCx1PiAqLw0KKyAgICB9IHRSeEFnY0JhbGFuY2U7ICAgICAgICAgICAgICAgLyogUnjCt9T20ubGvbri1rjKvrrN1PbS5tLy19MgKi8NCisNCisgICAgc3RydWN0DQorICAgIHsNCisgICAgICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgIGNBZ2NHYWluTWF4RmxhZzsgICAgICAgICAgICAgICAgIC8qINT20ubGvbrisrmzpda4yr4gKi8NCisgICAgICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgd01heGRCVnVsdWU7ICAgICAgICAgICAgICAgICAgICAgLy/BvcK3zOzP373PtPPU9tLm1rUsPDgsOCx1Pg0KKyAgICAgICAgU0lOVDE2ICAgICAgICAgICAgICAgICAgICBzd0FnY0ZhY3RvckxvZzI7ICAgICAgICAgICAgICAgICAvKiDU9tLmxr264rK5s6XS8tfTPDE2LDcsdD4gbG9nMta1Ki8NCisgICAgICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgd0FnY0ZhY3RvcjsgICAgICAgICAgICAgICAgICAgICAgLyog1PbS5sa9uuKyubOl0vLX0zwxMCwwLHU+ICovDQorICAgIH0gdENzcnNBZ2NCYWxhbmNlOyAgICAgICAgICAgICAvKiBDc3JzwrfU9tLmxr264ta4yr66zdT20ubS8tfTICovDQorDQorICAgIHN0cnVjdA0KKyAgICB7DQorICAgICAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgICBjQWdjR2Fpbk1heEZsYWc7ICAgICAgICAgICAgICAgICAvKiDU9tLmxr264rK5s6XWuMq+ICovDQorICAgICAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgIHdNYXhkQlZ1bHVlOyAgICAgICAgICAgICAgICAgICAgIC8vwb3Ct8zsz9+9z7Tz1PbS5ta1LDw4LDgsdT4NCisgICAgICAgIFNJTlQxNiAgICAgICAgICAgICAgICAgICBzd0FnY0ZhY3RvckxvZzI7ICAgICAgICAgICAgICAgICAvKiDU9tLmxr264rK5s6XS8tfTPDE2LDcsdD4gbG9nMta1Ki8NCisgICAgICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgd0FnY0ZhY3RvcjsgICAgICAgICAgICAgICAgICAgICAgLyog1PbS5sa9uuKyubOl0vLX0zwxMCwwLHU+ICovDQorICAgIH0gdENzcm1BZ2NCYWxhbmNlOyAgICAgICAgICAgICAvKiBDc3JtwrfU9tLmxr264ta4yr66zdT20ubS8tfTICovDQorDQorICAgIC8qILGjtOZDU1JNMTC49tfT1qG1xNfc1PbS5ta1IDwxNCw2LHU+ICovDQorICAgIHN0cnVjdA0KKyAgICB7DQorICAgICAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgICAgIHdUb3RhbEFnY0dhaW4wTG9nMjsgICAgICAgICAgICAgIC8qIMzsz98wtcTX3NT20ubWtSA8MTQsNix1PiBsb2cy1rUgKi8NCisgICAgICAgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICAgIHdUb3RhbEFnY0dhaW4xTG9nMjsgICAgICAgICAgICAgIC8qIMzsz98xtcTX3NT20ubWtSA8MTQsNix1PiBsb2cy1rUgKi8NCisgICAgfSBhd0Nzcm1Ub3RhbEFnY0dhaW5Mb2cyW1pQSFlfU1VCRlJBTUVTX1BFUl9GUkFNRV07DQorDQorICAgIC8qILGjtOZSWDEwuPbX09ahtcTX3NT20ubWtSA8MTQsNix1PiAqLw0KKyAgICBzdHJ1Y3QNCisgICAgew0KKyAgICAgICAgVUlOVDE2ICAgICAgICAgICAgICAgICAgICAgICB3VG90YWxBZ2NHYWluMExvZzI7ICAgICAgICAgICAgICAvKiDM7M/fMLXE19zU9tLm1rUgPDE0LDYsdT4gbG9nMta1ICovDQorICAgICAgICBVSU5UMTYgICAgICAgICAgICAgICAgICAgICAgICB3VG90YWxBZ2NHYWluMUxvZzI7ICAgICAgICAgICAgICAvKiDM7M/fMbXE19zU9tLm1rUgPDE0LDYsdT4gbG9nMta1ICovDQorICAgIH0gYXdSeFRvdGFsQWdjR2FpbkxvZzJbWlBIWV9TVUJGUkFNRVNfUEVSX0ZSQU1FXTsNCisNCisgICAgLyogv+zL2UFHQ8jtvP68xsvjyrGjrDEwbXPGvb75uabCysr91+kgKi8NCisgICAgU0lOVDE2ICAgICBhc3dOb3RTeW5jQWdjTWVhblB3cjBbNzBdOw0KKyAgICBTSU5UMTYgICAgIGFzd05vdFN5bmNBZ2NNZWFuUHdyMVs3MF07DQorICAgIC8qIL/sy9lBR0PI7bz+vMbL48qxo6y8x8K8xr2++bmmwsrX7rTz1rUgKi8NCisgICAgU0lOVDE2ICAgICBzd01heEFHQ01lYW5Qd3IwOw0KKyAgICBTSU5UMTYgICAgIHN3TWF4QUdDTWVhblB3cjE7DQorICAgIC8qIL/sy9lBR0PI7bz+vMbL483qs8mx6ta+ICovDQorICAgIFVJTlQxNiAgICAgd05vdFN5bmNBR0NEb25lOw0KKyAgICAvKiDJ5Ma1tPK/qtK71qG687Hq1r4gKi8NCisgICAgVUlOVDE2ICAgICB3Tm90U3luY0FHQ0JlZ2luOw0KKyAgICAvL86qyrXP1surzOzP37fHzayyvUFHQ7X31fujrNT2vNPP4LnYyKu+1rHkwb8sYWRkIGJ5IHpob3VwZW5nIDIwMTAuMTEuNg0KKyAgICBVSU5UMTYgICAgIHdOb3RTeW5jQUdDRG9uZUFudDA7Ly/M7M/fMCBBR0PK1cGyserWvg0KKyAgICBVSU5UMTYgICAgIHdOb3RTeW5jQUdDRG9uZUFudDE7Ly/M7M/fMSBBR0PK1cGyserWvg0KKyAgICB1bmlvbg0KKyAgICB7DQorICAgICAgICBzdHJ1Y3QNCisgICAgICAgIHsNCisgICAgICAgICAgICBVSU5UMzIgUlhCYW5kd2lkdGggICAgICAgICAgOjM7ICAgICAgIC8qIEJpdFswLTJdIFRYwre0+L/tICovDQorICAgICAgICAgICAgVUlOVDMyIENQTW9kZSAgICAgICAgICAgICAgIDoxOyAgICAgICAvKiBCaXRbM10gQ1DEo8q9ICovDQorICAgICAgICAgICAgVUlOVDMyIFJlc2VydmVkICAgICAgICAgICAgIDoyODsgICAgICAvKiBCaXRbNC0zMV0gKi8NCisgICAgICAgIH0gdEJpdDsNCisNCisgICAgICAgICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd1JlZzsNCisgICAgfSAgICAgdFJYQmFuZHdpZHRoQ1BNb2RlOw0KKw0KKyAgICBVSU5UMTYgICAgICB3UnhCYW5kd2lkdGg7DQorICAgIFVJTlQxNiAgICAgY0RBR0NDYWxNb2RlOyAgICAgICAgICAgICAgIC8qIERBR0MgvMbL48Sjyr0gKi8NCisgICAgVUlOVDE2ICAgICBjQUdDQ2FsTW9kZTsgICAgICAgICAgICAgICAgLyogQUdDILzGy+PEo8q9ICovDQorfVRfelBIWV9FREZFX1NZU1RFTV9JTkZPOw0KKw0KKyNpZmRlZiBfREVCVUdfVE1UX1JFRkVSX0dBT1RPTkcNCisNCisjaWYgMA0KKyAgICBleHRlcm4gVF96UEhZX0VDU1JfUHNzSW5mbyAgICBnX0VDU1JfUHNzSW5mbzsNCisgICAgZXh0ZXJuIFRfelBIWV9FQ1NSX1NlckNlbGxGcm1UaW1pbmcgZ19FQ1NSX1NlckNlbGxGcm1UaW1pbmc7DQorICAgIGV4dGVybiBUX3pQSFlfRUNTUl9TU1NJbmZvIGdfRUNTUl9TU1NJbmZvOw0KKyAgICBleHRlcm4gVF96UEhZX0VDU1JfU2VyQ2VsbE1lYXNSZXN1bHQgZ19FQ1NSX1NlckNlbGxNZWFzUmVzdWx0Ow0KKyAgICBleHRlcm4gVF96UEhZX0VDU1JfTmVib3JDZWxsTWVhc1Jlc3VsdCBnX0VDU1JfTmVib3JDZWxsTWVhc1Jlc3VsdFs2NF07DQorICAgIGV4dGVybiBUX3pQSFlfRUNTUl9QYmNoSW5mbyBnX0VDU1JfUGJjaEluZm87DQorICAgIGV4dGVybiBUX3pQSFlfRUNTUl9NaWJJbmZvIGdfRUNTUl9NaWJJbmZvOw0KKyAgICBleHRlcm4gVF96UEhZX0VDU1JfTWVhc3VyZUluZm8gZ19FQ1NSX01lYXN1cmVJbmZvOw0KKyNlbmRpZg0KKyAgICBleHRlcm4gVF9aUEhZX0VETF9QQ0ZJQ0hfSU5GTyBnX0VETF9QQ0ZJQ0hfSU5GTzsNCisgICAgZXh0ZXJuIFRfWlBIWV9FRExfUEhJQ0hfSU5GTyBnX0VETF9QSElDSF9JTkZPOw0KKyAgICBleHRlcm4gVF9aUEhZX0VETF9QRENDSF9JTkZPIGdfRURMX1BEQ0NIX0lORk87DQorICAgIGV4dGVybiBUX1pQSFlfRURMX1BEU0NIX0lORk8gZ19FRExfUERTQ0hfSU5GTzsNCisgICAgZXh0ZXJuIFRfWlBIWV9FRExfSEFSUV9JTkZPIGdfRURMX0hBUlFfSU5GTzsNCisgICAgZXh0ZXJuIFRfWlBIWV9FRExfRENJX0lORk8gZ19FRExfRENJX0lORk87DQorICAgIGV4dGVybiBUX1pQSFlfRURMX1BBX0lORk8gZ19FRExfUEFfSU5GTzsNCisgICAgLy9leHRlcm4gVF9aUEhZX0VETF9GTE9XX0lORk8gZ19FRExfRkxPV19JTkZPOw0KKyAgICBleHRlcm4gVF9aUEhZX0VETF9XT1JLX0lORk8gZ19FRExfV09SS19JTkZPOw0KKyAgICBleHRlcm4gVF9aUEhZX1VFX0JBU0VfSU5GTyAgICAgICAgIGdfVUVfQkFTRV9JTkZPWzJdOw0KKyAgICBleHRlcm4gVF96UEhZX1VMRExfRmxvd19JbmZvIGdfRURMVUxfRkxPV19JTkZPIFsyXTsNCisJDQorICAgIGV4dGVybiBUX3pQSFlfRVVMX1B1Y2NoRm10U3RhdGlzdGljc0luZm8gIGdfRVVMX1B1Y2NoRm10U3RhdGlzdGljc0luZm87DQorICAgIGV4dGVybiBUX3pQSFlfRVVMX0J1bmxkaW5nQU5TdGF0aXN0aWNzSW5mbyBnX0VVTF9CdW5sZGluZ0FOU3RhdGlzdGljc0luZm87DQorICAgIGV4dGVybiBUX3pQSFlfVUxfTXV0aXBsZXhpbmdBTlN0YXRpc3RpY3NJbmZvIGdfVUxfTXV0aXBsZXhpbmdBTlN0YXRpc3RpY3NJbmZvOw0KKyAgICBleHRlcm4gVF96UEhZX1VMX1NySGFycVNpbXVsU3RhdGlzdGljc0luZm8gZ19VTF9TckhhcnFTaW11bFN0YXRpc3RpY3NJbmZvOw0KKyAgICBleHRlcm4gVF96UEhZX0VVTF9DcWlIYXJxU2ltdWxTdGF0aXN0aWNzSW5mbyBnX0VVTF9DcWlIYXJxU2ltdWxTdGF0aXN0aWNzSW5mbzsNCisgICAgZXh0ZXJuIFRfelBIWV9FVUxfU3JzU3RhdGlzdGljc0luZm8gZ19FVUxfU3JzU3RhdGlzdGljc0luZm9bMl07DQorICAgIGV4dGVybiBUX3pQSFlfRVVMX1ByYWNoU3RhdGlzdGljc0luZm8gZ19FVUxfUHJhY2hTdGF0aXN0aWNzSW5mbzsNCisgICAgZXh0ZXJuIFRfelBIWV9FVUxfSGFycVRyYW5zU3RhdGlzdGljc0luZm8gZ19FVUxfSGFycVRyYW5zU3RhdGlzdGljc0luZm9bMl07DQorICAgIGV4dGVybiBUX3pQSFlfRVVMX0RjaTBJbmZvIGdfRVVMX0RjaTBJbmZvWzJdOw0KKyAgICBleHRlcm4gVF96UEhZX0VVTF9EQ0kzT3IzQUluZm8gZ19FVUxfRENJM09yM0FJbmZvWzJdOw0KKyAgICBleHRlcm4gVF96UEhZX0VVTF9Qb3dlckN0cmxJbmZvIGdfRVVMX1Bvd2VyQ3RybEluZm9bMl07DQorICAgIGV4dGVybiBUX3pQSFlfVUxETF9GbG93X0luZm8gZ19VTERMX0Zsb3dfSW5mbzsNCisgICAgZXh0ZXJuIFRfelBIWV9FREZFX1NZU1RFTV9JTkZPIGdfRURGRV9TWVNURU1fSU5GTzsNCisgICAgZXh0ZXJuIFRfelBIWV9FRExfQ0FMQ19Gb3JfU0lOUiAgZ19FRExfQ0FMQ19Gb3JfU0lOUjsNCisgICAgI2lmIDANCisgICAgDQorICAgIGV4dGVybiBUX1pQSFlfRVJGQ19JTkZPIGdfRVJGQ19JTkZPOw0KKyAgICBleHRlcm4gVF96UEhZX0VDU1JfRGVidWdNaWJJbmZvIGdfRUNTUl9EZWJ1Z01pYkluZm87DQorICAgIGV4dGVybiBUX3pQSFlfRUNTUl9NZWFzQ29uZmlnSW5mbyBnX0VDU1JfTWVhc0NvbmZpZ0luZm87DQorICAgIGV4dGVybiBUX3pQSFlfRUNTUl9NZWFzTWFza1NldEluZm8gZ19FQ1NSX01lYXNNYXNrU2V0SW5mbzs7DQorICAgIGV4dGVybiBUX3pQSFlfRUNTUl9DZWxsRGF0YUJhc2VJbmZvICBnX0VDU1JfQ2VsbERhdGFCYXNlSW5mbzsNCisgICANCisNCisgICAgZXh0ZXJuIFRfelBIWV9FVUVfSW5mbyBnX0VVRV9JbmZvOw0KKyNlbmRpZg0KKyNlbmRpZg0KKy8qQ01OX00wMDQgIEVuZCAqLw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAqICAgICAgICAgICAgICAgICAgICAgICAgyKu+1rqvyv3UrdDNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICogICAguq/K/cP7ICAgICAgo7p6UEhZX1ZlcnNpb25JbmZvDQorICogICAguabE3CAgICAgICAgo7pMVEXO78DtsuPE2rK/sOaxvtDFz6LOrLukDQorICogICAgyuTI67LOyv0gICAgo7rO3g0KKyAqICAgIMrks/ayzsr9ICAgIKO6zt4NCisgKiAgICC3tbvY1rXLtcP3ICCjus7eDQorICogICAgxuTL+8u1w/cgICAgo7oNCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorVk9JRCB6UEhZX1ZlcnNpb25JbmZvKFZPSUQpOw0KKw0KKyNlbmRpZiAgDQpkaWZmIC0tZ2l0IGEvcHViL2luY2x1ZGUvdG9vbHMvcGh5X3RkX2xvZ19pZi5oIGIvcHViL2luY2x1ZGUvdG9vbHMvcGh5X3RkX2xvZ19pZi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJmZjQ0ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9wdWIvaW5jbHVkZS90b29scy9waHlfdGRfbG9nX2lmLmgKQEAgLTAsMCArMSwxMTYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyogsObIqMv509AgKEMpMjAxNSwgye7b2srQ1tDQy82o0ba5ybfd09DP3rmry76how0KKyoNCisqIM7EvP7D+7PGo7ogcGh5X3RkX2xvZ19pZi5oDQorKiDOxLz+serKtqO6DQorKiDE2sjd1arSqqO6zu/A7bLjserXvExPR8rks/a1xL3Tv9rOxLz+DQorKiDG5Mv8y7XD96O6DQorKiC1scewsOaxvqO6DQorKiDX9yAgICDV36O6DQorKiDN6rPJyNXG2qO6DQorKg0KKyog0N64xMjVxtogICAgsOaxvrrFICAgICDQ3rjEyMsJICAgICDQ3rjExNrI3Q0KKyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisqIDIwMTUvOC8wNyAgIFYxLjAJICAgICAgTDF0ZCAgICAgICAgICDQwr2oDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKyNpZm5kZWYgUEhZX1REX0xPR19JRl9IDQorI2RlZmluZSBQSFlfVERfTE9HX0lGX0gNCisNCisvL1REzu/A7bLjz/vPosDg0M3Dtr7ZDQordHlwZWRlZiBlbnVtDQorew0KKyAgICBQQV9FTkdfQ01EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxLA0KKyAgICBQQV9JTlRFUl9NU0cgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIsDQorICAgIFBBX1BSSU5UX01TRyAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMywNCisgICAgUEFfSENJX01TRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNCwNCisgICAgUEFfSE9PS19NU0cgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gNSwNCisNCisgICAgUEFfRU5HX01JU1NfUEFDS0VUICAgICAgICAgICAgICA9IDYsDQorICAgIFBBX0RBVEFfRFVNUCAgICAgICAgICAgICAgICAgICAgICAgICAgPSA3LA0KKyAgICBQQV9NRUFTX0lOVFJBX0lORk8gICAgICAgICAgICAgID0gOCwNCisgICAgUEFfTUVBU19JTlRFUl9JTkZPICAgICAgICAgICAgICA9IDksDQorICAgIFBBX0hEVFJfSFNTQ0NIX0lORk8gICAgICAgICAgICAgPSAxMCwNCisgICAgUEFfSkRfUEhZX0NIX0NGR19MT0cgICAgICAgICAgPSAxMSwNCisgICAgUEFfSkRfUElDSF9ERVRFQ1RfTE9HICAgICAgICAgPSAxMiwNCisgICAgUEFfSkRfQUNEX0xPRyAgICAgICAgICAgICAgICAgICAgICAgPSAxMywNCisgICAgUEFfSkRfSU5URVJSVVBUX0xPRyAgICAgICAgICAgPSAxNCwNCisgICAgUEFfSkRfUEhZX0NIX0NGR19SRUxfVElNRV9MT0cgPSAxNSwNCisgICAgUEFfSkRfQ0VMTF9DRkdfTE9HICAgICAgICAgICAgPSAxNiwNCisgICAgUEFfQ1NSX0RXUFRTX1BPU19MT0cgICAgICAgICAgPSAxNywNCisgICAgUEFfQ1NSX1NZTkNfTU9ERV9MT0cgICAgICAgICAgPSAxOCwNCisgICAgUEFfQ1NSX01JREFNQkxFX0xPRyAgICAgICAgICAgPSAxOSwNCisgICAgUEFfQ1NSX01VTFRJX1JFU1VMVF9MT0cgICAgICAgPSAyMCwNCisgICAgUEFfMDFCX0FGQ19JTkZPICAgICAgICAgICAgICAgPSAyMSwNCisgICAgUEFfMDFCX0FGQ19QQVRIX0lORk8gICAgICAgICAgPSAyMiwNCisgICAgUEFfMDJCX0FGQ19JTkZPICAgICAgICAgICAgICAgPSAyMywNCisgICAgUEFfMDJCX0FGQ19QQVRIX0lORk8gICAgICAgICAgPSAyNCwNCisgICAgUEFfUkZDX0FHQ19JTkZPICAgICAgICAgICAgICAgPSAyNSwNCisgICAgUEFfUkZDX1JGQ19JTkZPICAgICAgICAgICAgICAgPSAyNiwNCisgICAgUEFfTDFTX0RMX0RBVEFfSU5EICAgICAgICAgICAgPSAyNywNCisgICAgUEFfUkVTX01BUF9JTkZPICAgICAgICAgICAgICAgICA9IDI4LA0KKyAgICBQQV9NSVBTX0lORk8gICAgICAgICAgICAgICAgICA9IDI5LA0KKyAgICBQQV9QSFlfVkVSX0lORk8gICAgICAgICAgICAgICA9IDMwLA0KKyAgICBFTkdfTVNHX1RZUEVfTUFYX05VTQ0KK31FX1BhTXNnVHlwZTsgICAvL1pDYXQtLS1QQV9NU0dfVFlQRSDT0NDeuMQNCisNCit0eXBlZGVmIGVudW0NCit7DQorICAgIEhPT0tfRVZFTlRfSURfU1dBUCAgICAgICAgPSAxLA0KKyAgICBIT09LX0VWRU5UX0lEX0NSRUFURV9QUk8gID0gMiwNCisgICAgSE9PS19FVkVOVF9JRF9TRU5EICAgICAgICA9IDMsDQorICAgIEhPT0tfRVZFTlRfSURfQUxMT0MgICAgICAgPSA0LA0KKyAgICBIT09LX0VWRU5UX0lEX0ZSRUUgICAgICAgID0gNSwNCit9RV9Ib29rRXZlbnRJZDsgIC8vWkNhdC0tLSDWrsewzt62qNLlINa709DDtr7ZDQorDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFUxNiB3SGVhZGVyOyAgICAvKiBQQV9UUkFDRV9QQUNLRVRfSEVBREVSIDB4NjlFOCovDQorICAgIFUxNiB3U2ZuOyAgICAgICAgICAgLyogc2ZuICovDQorICAgIFUxNiB3Q2ZuOyAgICAgICAgICAgLyogY2ZuICovDQorICAgIFUxNiB3Q2hpcDsgICAgICAgICAgLyogY2hpcCAqLw0KKyAgICBVMTYgd1R5cGU6ODsgICAgICAgIC8qIDAtNjMJCXR5cGUgKi8NCisgICAgVTE2IHdQcm9jSWQ6ODsgICAgICAvKiAwLTEyNyAJcHJvY19pZCAqLw0KKyAgICBVMTYgd0xlbjsgICAgICAgICAgIC8qIGxlbiAqLw0KKyAgICBVMTYgd1NzZm5IOyAgICAgICAgIC8qc3NmbrXEuN8xNs67Ki8NCisgICAgVTE2IHdTc2ZuTDsgICAgICAgICAvKnNzZm61xLXNMTbOuyovDQorfVRfRW5nUGFIZWFkZXI7DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFUxNiB3TXNnSWQ7DQorICAgIFUxNiB3TXNnTGVuOw0KK31UX0VuZ1BhSGNpTXNnOy8qUEhZus1QU73Tv9rP+8+iKi8NCisNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVTE2IHdNc2dJZDsgIC8qIG1lc3NhZ2UgaWQsIGFjY29yZGluZyB0byBwaHlzaWNhbCBzb2Z0d2FyZSwgbmVlZCBzY2FuIHRoZSB3aG9sZSBjb2RlICovDQorICAgIFUxNiB3UGFyYU51bTsgLyogZWFjaCBwYXJhbWV0ZXIgaG9sZCAxNmJpdHMgKi8NCit9VF9FbmdQYVByaW50TXNnOy8q19S2qNLltPLTodDFz6IqLw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVMTYgd0V2ZW50SWQ7IC8qIL34s8zH0Lu7o6y1scewvfizzGlk0tG+rdTaaGVhZGVyLnByb2NfaWTF5NbDKi8NCisgICAgVTE2IHdSZWNlaXZlclBpZDsvKiBuZXh0ICovDQorfVRfRW5nUGFIb29rOy8qSE9PS8/7z6IqLw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBVMTYgd01zZ0lkOw0KKyAgICBVMTYgd01zZ0xlbjsNCit9VF9FbmdQYUludGVybmFsTXNnOy8qUEhZxNqyv7j3xKO/6b27u6XP+8+iKi8NCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgVTE2IHdQZXJpb2Q7DQorICAgIFUxNiB3TWlzc051bTsNCit9VF9FbmdNaXNzUGFja2V0Ow0KKw0KK3R5cGVkZWYgc3RydWN0ICANCit7DQorICAgIFUxNiB3TXNnSWQ7DQorICAgIFUxNiB3TXNnTGVuOw0KK31UX0VuZ1BhRHVtcERhdGE7DQorDQorI2VuZGlmCmRpZmYgLS1naXQgYS9wdWIvaW5jbHVkZS90b29scy9waHlfd19sb2dfaWYuaCBiL3B1Yi9pbmNsdWRlL3Rvb2xzL3BoeV93X2xvZ19pZi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3NTgwOWYKLS0tIC9kZXYvbnVsbAorKysgYi9wdWIvaW5jbHVkZS90b29scy9waHlfd19sb2dfaWYuaApAQCAtMCwwICsxLDgwNCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorKiCw5sioy/nT0CAoQykyMDEzLCDJ7tvaytDW0NDLzajRtrnJt93T0M/euavLvqGjDQorKg0KKyogzsS8/sP7s8ajuiBwaHlfd19sb2dfaWYuaA0KKyogzsS8/rHqyrajug0KKyogxNrI3dWq0qqjus7vwO2y47Hq17xMT0fK5LP2tcS907/azsS8/g0KKyogxuTL/Mu1w/ejug0KKyogtbHHsLDmsb6jug0KKyog1/cgICAg1d+jug0KKyogzeqzycjVxtqjug0KKyoNCisqINDeuMTI1cbaICAgILDmsb66xSAgICAg0N64xMjLCSAgICAg0N64xMTayN0NCisqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorKiAyMDE1LzgvMDcgICBWMS4wCSAgICAgIEwxdyAgICAgICAgICDQwr2oDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKyNpZm5kZWYgUEhZX1dfTE9HX0lGX0gNCisjZGVmaW5lIFBIWV9XX0xPR19JRl9IDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICAgICAgICAgICAgICAgICAgMS7Nt87EvP4gICAgICAtLdSt1PLJz7K71MrQ7c23zsS8/se2zNcNCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KKw0KKw0KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICAgICAgICAgICAgICAgICAgIDIuuuq2qNLlDQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisvKiBXIHBoeSBvdXRsb2cgbXNnIGlkICovDQorI2RlZmluZSBMMVdfTUFJTl9JTkZPX0lEICAgICAgICAgICAgICAgMHgwMS8vIC0tbm8gdXNlIA0KKyNkZWZpbmUgTDFXX0FDVElWRV9DRUxMX0lORk9fSUQgICAgICAgIDB4MDIvLyAtLW5vIHVzZSANCisjZGVmaW5lIEwxV19UUENfUEFDS0VUX0lORk9fSUQgICAgICAgICAweDAzICAvL0FkZCBieSAyMDE1MDQyMyAtLW5vIHVzZQ0KKyNkZWZpbmUgTDFXX1VMX1BPV0VSX0lORk9fSUQgICAgICAgICAgIDB4MDQgIC8vQWRkIGJ5IDIwMTUwNDIzIC0tbm8gdXNlDQorI2RlZmluZSBMMVdfUENfU1RBVElDX0lORk9fSUQgICAgICAgICAgMHg1Ly8weDAzLy8weDUNCisjZGVmaW5lIEwxV19SRkNfR0FQX0lORk9fSUQgICAgICAgICAgICAweDYvLzB4MDQvLzB4Ng0KKyNkZWZpbmUgTDFXX0RMX1RSQ0hfSU5GT19JRCAgICAgICAgICAgIDB4OC8vMHgwNS8vMHg4DQorI2RlZmluZSBMMVdfVUxfVFJDSF9JTkZPX0lEICAgICAgICAgICAgMHg5Ly8weDA2Ly8weDkNCisjZGVmaW5lIEwxV19ETF9DUENIX0lORk9fSUQgICAgICAgICAgICAweEEvLzB4MDcvLzB4QQ0KKyNkZWZpbmUgTDFXX0RMX0RQQ0hfSU5GT19JRCAgICAgICAgICAgIDB4Qi8vMHgwOC8vMHhCDQorI2RlZmluZSBMMVdfVUxfRFBDSF9JTkZPX0lEICAgICAgICAgICAgMHhELy8weDA5Ly8weEQNCisjZGVmaW5lIEwxV19QUkFDSF9JTkZPX0lEICAgICAgICAgICAgICAweEUvLzB4MEEvLzB4RQ0KKyNkZWZpbmUgTDFXX1NZTkNfSU5GT19JRCAgICAgICAgICAgICAgIDB4Ri8vMHgwQi8vMHhGIC0tbm8gdXNlDQorI2RlZmluZSBMMVdfRlNfUFJPQ19JTkZPX0lEICAgICAgICAgICAgMHgxMC8vMHgwQy8vMHgxMCAtLW5vIHVzZQ0KKyNkZWZpbmUgTDFXX0NTX1NUQVRJU1RJQ19JTkZPX0lEICAgICAgIDB4MTEvLzB4MEQvLzB4MTEgLS1ubyB1c2UNCisjZGVmaW5lIEwxV19QQUdFX1NUQVRJU1RJQ19JTkZPX0lEICAgICAweDEyLy8weDBFLy8weDEyIC0tbm8gdXNlDQorI2RlZmluZSBMMVdfU0VSVkVfQ0VMTF9SRVNVTFRfSUQgICAgICAgMHgxMy8vMHgwRi8vMHgxMyAtLW5vIHVzZQ0KKyNkZWZpbmUgTDFXX0lOVFJBX0NFTExfUkVTVUxUX0lEICAgICAgIDB4MTQvLzB4MTAvLzB4MTQgLS1ubyB1c2UNCisjZGVmaW5lIEwxV19JTlRFUl9DRUxMX1JFU1VMVF9JRCAgICAgICAweDE1Ly8weDExLy8weDE1IC0tbm8gdXNlDQorI2RlZmluZSBMMVdfQlRUX1NUQVRJU1RJQ19JTkZPX0lEICAgICAgMHgzNC8vPz8/DQorI2RlZmluZSBMMVdfU1RBVElTVElDX0lORk9fSUQgICAgICAgICAgMHgxNi8vQWRkIGJ5IDIwMTUwNDIzDQorI2RlZmluZSBMMVdfSFNEUEFfUEFDS0VUX0lORk9fSUQgICAgICAgMHgxNy8vMHgxMy8vMHgxNw0KKyNkZWZpbmUgTDFXX0hTVVBBX1BBQ0tFVF9JTkZPX0lEICAgICAgIDB4MTkvLzB4MTQvLzB4MTkNCisjZGVmaW5lIEwxV19IU1VQQV9TVEFUSVNUSUNfSU5GT19JRCAgICAweDFBLy8weDE1Ly8weDFBDQorI2RlZmluZSBMMVdfU0xFRVBfTUlYX0lORk9fSUQgICAgICAgICAgMHgxQi8vMHgxNi8vMHgxQiAtLW5vIHVzZQ0KKyNkZWZpbmUgTDFXX0hTRFBBX0NPRElOR19JTkZPX0lEICAgICAgIDB4MzMvLzB4MTcvLz8/Pz8NCisjZGVmaW5lIEwxV19IU0RQQV9TVEFUSVNUSUNfSU5GTyAgICAgICAweDE4DQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICAgICAgICAgICAgICAgICAgMy7A4NDNtqjS5Q0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorLy9Xzu/A7bLjz/vPosDg0M0NCit0eXBlZGVmIGVudW0NCit7DQorICAgIEVfU1RBTkRBUkRfTVNHID0gMCwNCisgICAgRV9QUklOVF9NU0csDQorICAgIEVfSENJX01TRywNCisgICAgRV9IT09LX01TRywNCisgICAgRV9EQVRBX0RVTVAsDQorICAgIEVfT1RIRVIsDQorICAgIEVOR19UWVBFX01BWF9OVU0sDQorfUVfRW5nTG9nVHlwZTsgLyogtffK1NDFz6LK5LP2wODQzSAqLyAvL1pDYXQtLSBXQ0RNQV9NU0dfVFlQRQ0KKw0KKw0KKy8qIFcgcGh5IGluZm8gYW5kIHN0YXRpc3RpYyBpbmZvIGhlYWRlciAqLw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEMTYgd0hlYWRlcjsgICAgICAvKiC198rU0MXPosr9vt2w/Na4yr7Nt6Osucy2qM6qMHg2OUU4ICovDQorICAgIFdPUkQxNiB3U2ZuOyAgICAgICAgIC8qILWxx7BTRk66xSAqLw0KKyAgICBXT1JEMTYgd0NmbjsgICAgICAgICAvKiC1scewQ0ZOusUgKi8NCisgICAgV09SRDE2IHdDaGlwOyAgICAgICAgLyogtbHHsENISVC6xSAqLw0KKyAgICBXT1JEMTYgd0xvZ1R5cGU6ODsgICAvKiDK5LP2TE9HwODQzaOsvPtFbmdMb2dUeXBltqjS5SovDQorICAgIFdPUkQxNiB3UHJvY0lkOjg7ICAgIC8qILWxx7C9+LPMSUQgKi8NCisgICAgV09SRDE2IHdMZW47ICAgICAgICAgLyogyuSz9rX3ytTQxc+itcSzpLbIo6yyu7D8wKhFbmdMb2dIZWFkZXKjrLWlzrvX1r3aICovDQorICAgIFdPUkQxNiB3U3Nmbkg7ICAgICAgIC8qIFNTRk643zE2zrsgKi8NCisgICAgV09SRDE2IHdTc2ZuTDsgICAgICAgLyogU1NGTrXNMTbOuyAqLw0KK31UX0VuZ0xvZ0hlYWRlcjsNCisNCit0eXBlZGVmIGVudW0NCit7DQorICAgIEVfTDFXX1NXQVBfSE9PSyA9IDAsDQorICAgIEVfTDFXX1NFTkRfSE9PSywNCisgICAgRV9MMVdfVFJBQ0VfSE9PSywNCit9RV9MMXdIb29rRXZlbnRJZDsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDE2ICAgICAgIHdIb29rRXZlbnRJZDsNCisgICAgV09SRDE2ICAgICAgIHdDdXJyZW50UGlkOw0KKyAgICBXT1JEMTYgICAgICAgd1RvUGlkOw0KKyAgICBXT1JEMTYgICAgICAgd1NlbmRlclBpZDsNCisgICAgV09SRDE2ICAgICAgIHdSZWNlaXZlclBpZDsNCisgICAgV09SRDE2ICAgICAgIHdTaWdObzsNCisgICAgV09SRDE2ICAgICAgIHdTZm47DQorICAgIFdPUkQxNiAgICAgICB3Q2hpcDsNCit9VF9Ib29rTG9nOy8qIEhPT0tfTE9HvMfCvCAqLw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEMTYgd1NpZ2lkOw0KKyAgICBXT1JEMTYgd1BzVHlwZTo4Ow0KKyAgICBXT1JEMTYgd1BhZGRpbmc6ODsNCisgICAgV09SRDMyIGRHc21TRk47DQorICAgIFdPUkQzMiBkVGRTRk47DQorICAgIFdPUkQzMiBkTHRlU0ZOOw0KKyAgICBXT1JEMzIgZFdjZG1hU0ZOOw0KKyAgICBXT1JEMTYgd0xlbjsNCisgICAgV09SRDE2IHdSZXNlcnZlZDsNCit9VF9TdGFuZGFyZExvZ0hlYWRlcjsvKiCx6te8TE9Hzbe2qNLlICovDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3TXNnSWQ7ICAgICAgIC8qILHq17xMT0e1xM/7z6JJRKOsvt/M5bT9uvPQ+Lao0uUgKi8NCisgICAgV09SRDE2IHdNc2dMZW47ICAgICAgLyogserXvExPR7XEs6S2yCAqLw0KK31UX0VuZ1N0YW5kYXJkTXNnOyAgICAvKiCx6te8TE9HyuSz9rXE0MXPos23ICovLy9aQ2F0LS1XUEhZX0VuZ1N0YW5kYXJkTXNnDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3TXNnSWQ7ICAgICAgIC8qINfUtqjS5bTy06G1xM/7z6JJRCAqLw0KKyAgICBXT1JEMTYgd1ByaTo4OyAgICAgICAvKiDX1Lao0uW08tOhtcTTxc/IvLYgKi8NCisgICAgV09SRDE2IHdQYXJhTnVtOjg7ICAgLyog19S2qNLltPLTobXEss7K/bj2yv0gKi8NCit9VF9FbmdQcmludE1zZzsgICAgICAgLyog19S2qNLltPLTobXE0MXPos23ICovLy9aQ2F0LS1XUEhZX0VuZ1ByaW50TXNnDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3TXNnSWQ7ICAgICAgIC8qIFdfUEhZ0+vQrdLp1bu907/az/vPorXESUQgKi8NCisgICAgV09SRDE2IHdNc2dMZW47ICAgICAgLyogyuSz9r3Tv9rP+8+ixNrI3bXEs6S2yCAqLw0KK31UX0VuZ0hjaU1zZzsgICAgICAgICAvKiDT69Ct0unVu73Tv9rP+8+iyuSz9rXE0MXPos23ICovLy9aQ2F0LS1XUEhZX0VuZ0hjaU1zZw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEMTYgd0V2ZW50SWQ7ICAgICAvKiBIT09L0MXPorXEysK8/klEICovDQorICAgIFdPUkQxNiB3UGFyYTsgICAgICAgIC8qILbU09pTV0FQX0hPT0ujrHdQYXJhzqrEv7HqvfizzElEo7sNCisgICAgICAgICAgICAgICAgICAgICAgICAgttTT2lNFTkRfSE9PS6Osd1BhcmHOqreiy83P+8+iSUSjuw0KKyAgICAgICAgICAgICAgICAgICAgICAgICC21NPaVFJBQ0VfSE9PS6Osd1BhcmHOqrX3ytS4+tfZyv2+3SAqLw0KK31UX0VuZ0hvb2tNc2c7ICAgICAgICAvKiBIT09LyuSz9rXE0MXPos23ICovLy9aQ2F0LS1XUEhZX0VuZ0hvb2tNc2cNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDE2IHdEYXRhVHlwZTsgICAgLyog16XIocr9vt21xMDg0M2jrL7fzOW0/brz0Pi2qNLlICovDQorICAgIFdPUkQxNiB3RGF0YUxlbjsgICAgIC8qINelyKHK/b7dtcSzpLbIICovDQorfVRfRW5nRGF0YUR1bXA7ICAgICAgIC8qIMr9vt3XpcihTE9HtcTQxc+izbcgKi8vL1pDYXQtLVdQSFlfRW5nRGF0YUR1bXANCisNCisNCisvL9LUyc+8uLj2veG5uczlyse5pL7f0N64xMHLw/uzxrXELNKy0N64xMHLxNrI3aOs0OjSqrHIttTSu8/CDQorDQorLy9ncm91cDEgbDF3IG1haW4gaW5mbw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEMzIgd0ZpcnN0VmVyTnVtOjg7DQorICAgIFdPUkQzMiB3U2Vjb25kVmVyTnVtOjg7DQorICAgIFdPUkQzMiB3VGhpcmRWZXJOdW06ODsNCisgICAgV09SRDMyIHdQYXRoRmlyc3RWZXJOdW06NDsNCisgICAgV09SRDMyIHdQYXRoU2Vjb25kVmVyTnVtOjQ7DQorfVRfTDF3U29mdFZlcnNpb247DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3UGVyaW9kOyAgIC8qNTAwbXMqLw0KKwlXT1JEMTYgd1BhZGRpbmc7DQorICAgIFdPUkQzMiB3UmVzZXRUaW1lczsNCisgICAgV09SRDMyIHdJY3NUaW1lczsNCisgICAgV09SRDMyIHdGYWNoVGltZXM7DQorICAgIFdPUkQzMiB3UGFnZVRpbWVzOw0KKyAgICBXT1JEMzIgd0RjaFRpbWVzOw0KKyAgICBXT1JEMzIgd0RwYVRpbWVzOw0KKyAgICBXT1JEMzIgd1VwYVRpbWVzOw0KKyAgICBXT1JEMzIgd1NsYXZlVGltZXM7DQorICAgIFdPUkQxNiB3UmVzZXJ2ZWRbOF07DQorfVRfTDF3U3RhdGVDbnQ7Ly8vLy8vTE9HX1RPT0xfV0NETUFfU1RBVEVfQ05UDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3UGVyaW9kOyAgIC8qNTAwbXMqLw0KKyAgICAvL1RfTDF3U29mdFZlcnNpb24gdEwxd1NvZnRWZXJzaW9uOw0KKyAgICBXT1JEMzIgd1N0YXRlQ291bnQ7DQorICAgIFdPUkQzMiB3TWVhc1RpbWVzOw0KKyAgICBXT1JEMzIgd0RwY2hDb25maWdUaW1lczsNCisgICAgV09SRDMyIHdEcGNoSG9UaW1lczsNCisgICAgV09SRDMyIHdGc1RpbWVzOw0KKyAgICBXT1JEMzIgd0JjaFRpbWVzOw0KKyAgICBXT1JEMzIgd0NzVGltZXM7DQorICAgIFNXT1JEMTYgc3dBZmM7DQorICAgIFdPUkQxNiB3UGF0aExvc3M7DQorICAgIFdPUkQxNiB3VWxUYWR2Ow0KKyAgICBXT1JEMzIgZERsU3luYzsNCisgICAgV09SRDE2IHdSZXNlcnZlZFs4XTsNCit9VF9MMU1haW5NaXhJbmZvOy8vLy8vLy9MT0dfVE9PTF9XQ0RNQV9NQUlOX0lORk8NCisNCisvL2dyb3VwMiCjumJhc2ljIGNlbGwgaW5mbw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEMzIgZEVuZzsNCisgICAgV09SRDMyIGRQb3M7DQorICAgIFdPUkQzMiBkRmluZzsNCit9VF9QYXRoSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDE2IHdQZXJpb2Q7ICAgLyo1MDBtcyovDQorICAgIFdPUkQxNiB3UGFkZGluZzsNCisgICAgV09SRDMyIHdSZWZDZWxsOjE7DQorICAgIFdPUkQzMiB3UHJpbVNjQ29kZTo5Ow0KKyAgICBXT1JEMzIgd0NlbGxUcGM6MzsNCisgICAgV09SRDMyIHdDcGljaERpdjoyOw0KKyAgICBXT1JEMzIgd1NjcGljaDoxOw0KKyAgICBXT1JEMzIgd1NlY1NjQ29kZTo0Ow0KKyAgICBXT1JEMzIgd0NoYW5Db2RlSW54Ojg7DQorICAgIFdPUkQzMiBkQWNlbGxQb3M7DQorICAgIFdPUkQxNiB3UmVzZXJ2ZWRbOF07DQorfVRfQWN0aXZlQ2VsbFBhcmE7DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3UGVyaW9kOyAgIC8qNTAwbXMqLw0KKyAgICBXT1JEMTYgd0RsRnJlcTsNCisgICAgV09SRDE2IHdSbE51bTsNCisgICAgV09SRDE2IHdOdW1QYXRoczsNCisgICAgVF9BY3RpdmVDZWxsUGFyYSBhdFNhQ2VsbEluZm9bNl07DQorICAgIFRfUGF0aEluZm8gdFBhdGhJbmZvWzhdOw0KKyAgICBXT1JEMTYgd1Jlc2VydmVkWzhdOw0KK31UX0FjdGl2ZUNlbGxJbmZvOy8vLy8vLy9MT0dfVE9PTF9XQ0RNQV9BQ1RJVkVfQ0VMTF9JTkZPDQorDQorDQorLy9ncm91cDMgcGMgaW5mbw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgIFdPUkQxNiB3VWxUcGNUb3RhbDsNCisgICBXT1JEMTYgYXdVbFRwY0NvbWJpbmVyWzZdOw0KK31UX1VsVHBjSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICBXT1JEMTYgd0RsVHBjVG90YWw7DQorICAgV09SRDE2IGF3RGxUcGNDb21iaW5lcls2XTsNCit9VF9EbFRwY0luZm87DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiAgd1BlcmlvZDsgICAvKjEwbXMqLw0KKyAgICBXT1JEMTYgIHdOdW1PZlNhbXBsZTsNCisgICAgVF9VbFRwY0luZm8gdFVsVHBjSW5mbzsNCisgICAgVF9EbFRwY0luZm8gdERsVHBjSW5mbzsNCisgICAgV09SRDE2IHdTdGFydENmbjsNCisgICAgV09SRDE2IHdSZXNlcnZlZFsxNV07DQorfVRfVHBjUGFja2V0SW5mbzsvLy8vL0xPR19UT09MX1dDRE1BX1RQQ19QQUNLRVRfSU5GTw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEMTYgd1BlcmlvZDsgICAvKjEwbXMqLw0KKyAgICBXT1JEMTYgIHdQd3JbMTVdOw0KKyAgICBXT1JEMTYgd1Jlc2VydmVkWzhdOw0KK31UX1VsUHdySW5mbzsvLy8vL0xPR19UT09MX1dDRE1BX1VMX1BPV0VSX0lORk8NCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDE2IHdQZXJpb2Q7ICAgLyo1MDBtcyovDQorICAgIFdPUkQxNiB3UmVzZXJ2ZWRbMTldOw0KK31UX1BjU3RhdGljSW5mbzsvLy8vLy8vTE9HX1RPT0xfV0NETUFfUENfU1RBVElDX0lORk8NCisNCisNCisvL2dyb3VwNCBhZ2MgaW5mbw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEMTYgd1BlcmlvZDsgICAvKjEwbXMqLw0KKyAgICBXT1JEMTYgd1BoeVN0YXRlOw0KKyAgICBXT1JEMzIgZEdhcFJwdENudDsNCisgICAgV09SRDE2IHdScHRHYXBWYWxpZDsNCisgICAgV09SRDE2IHdScHRHYXBJbmZvOw0KKyAgICBXT1JEMzIgZEdhcFJlY0NudDsNCisgICAgV09SRDE2IHdSZWNHYXBWYWxpZDsNCisgICAgV09SRDE2IHdSZWNHYXBJbmZvOw0KKyAgICBXT1JEMTYgd1R4UGF0dGVybjsNCisgICAgV09SRDE2IHdSeFBhdHRlcm47DQorICAgIFdPUkQxNiB3VHhBcGM7DQorICAgIFdPUkQxNiB3TWF4VHhQb3dlcjsNCisgICAgV09SRDE2IHdQYU9uOw0KKyAgICBXT1JEMTYgd0FnY0luZm9bMTVdOw0KKyAgICBXT1JEMTYgd0xuYVN0YXRlOw0KKyAgICBXT1JEMTYgd1Jlc2VydmVkWzddOw0KK31UX1JmY0dhcE1peEluZm87Ly8vLy8vTE9HX1RPT0xfV0NETUFfUkZDX0dBUF9JTkZPDQorDQorZXh0ZXJuIFRfUmZjR2FwTWl4SW5mbyAgICAgZ190UmZjR2FwTWl4TG9nOyAgICAgICAgICAgICAvKiBSRkO6zUdBULXEserXvGxvZ9DFz6IgKi8NCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDE2IHdQZXJpb2Q7ICAgLyo1MDBtcyovDQorICAgIFdPUkQxNiB3UmVzZXJ2ZWRbMTldOw0KK31UX1JmY1N0YXRlSW5mbzsgLy8vLy8vTE9HX1RPT0xfV0NETUFfUkZDX1NUQVRFX0lORk8NCisNCisNCisvL2dyb3VwNSAgZGwgdHJjaCBpbmZvDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3VHJCa1NpemU7DQorICAgIFdPUkQxNiB3TnVtVHJCazsNCisgICAgV09SRDE2IHdDcmM7IC8vbW9kaWZ5IGJ5IDIwMTUwNDIzDQorICAgIFdPUkQxNiB3UGFkZGluZzsNCit9VF9EbFRmSW5mbzsNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDE2IHdUcmNoSWQ7DQorICAgIFdPUkQxNiB3VHJjaFR5cGU7DQorICAgIFdPUkQxNiB3VHRpOw0KKyAgICBXT1JEMTYgd1JtQXR0cjsNCisgICAgV09SRDE2IHdOdW1UckZtdHM7DQorICAgIFdPUkQxNiB3VGZJbmZvQmFzZTsNCisgICAgVF9EbFRmSW5mbyBhdERsVGZJbmZvWzhdOy8vbW9kaWZ5IGJ5IDIwMTUwNDIzDQorICAgIC8vVF9EbFRmSW5mbyBhdERsVGZJbmZvWzMyXTsNCisgICAgV09SRDE2IHdSZXNlcnZlZFs4XTsNCit9VF9EbFRyY2hQYXJhOw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEMTYgd0NjdHJjaElkOw0KKyAgICBXT1JEMTYgd051bUNjdHJjaDsNCisgICAgV09SRDE2IHdOdW1UcmNoOw0KKwlXT1JEMTYgd1Jlc2VydmVkWzddOw0KKyAgICBUX0RsVHJjaFBhcmEgYXRUcmNoUGFyYVs4XTsNCit9VF9EbERwY2hUcmNoSW5mbzsvLy8vLy8vTE9HX1RPT0xfV0NETUFfRExfVFJDSF9JTkZPDQorDQorDQorLy9ncm91cDYgdWwgdHJjaCBpbmZvDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3VHJjaElkOw0KKyAgICBXT1JEMTYgd1RyY2hUeXBlOw0KKyAgICBXT1JEMTYgd0NvZGluZ1R5cGVPZkNoYW5uZWw7DQorICAgIFdPUkQxNiB3VHRpOw0KKyAgICBXT1JEMTYgd0NyY0xlbmd0aDsNCisgICAgV09SRDE2IHdCZXRhQzsvKjB+MTUqLw0KKyAgICBXT1JEMTYgd0JldGFEOw0KKyAgICBXT1JEMTYgd1Jlc2VydmVkWzddOw0KK31UX1VsVHJjaFBhcmE7DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3TnVtT2ZUcmNoOw0KKyAgICBXT1JEMTYgd051bU9mVGZjOw0KKyAgICBXT1JEMTYgd1RmY2k7DQorICAgIFdPUkQxNiB3U3ByZWFkaW5nRmFjdG9yOw0KKyAgICBUX1VsVHJjaFBhcmEgYXRUcmNoUGFyYVs4XTsNCit9VF9VbERwY2hUcmNoSW5mbzsvLy8vLy8vLy8vLy8vLy9MT0dfVE9PTF9XQ0RNQV9VTF9UUkNIX0lORk8NCisNCisNCisvL2dyb3VwNyAgREwgcGNoDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3Q2hTdGF0ZTsNCisgICAgV09SRDE2IHdEbENoYW5UeXBlOw0KKyAgICBXT1JEMTYgd1NsdEZtdFNjY3BjaDsNCisgICAgV09SRDE2IHdTY0NvZGVJZHg7DQorICAgIFdPUkQxNiB3RGl2TW9kZTsNCisgICAgV09SRDE2IHdDY3RyY2hJZDsNCisgICAgV09SRDE2IHdUT2ZmOw0KKyAgICBXT1JEMTYgd0NoYW5Db2RlOw0KK31UX0RsQ3BjaFBhcmE7DQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIA0KKyAgICBXT1JEMTYgd051bVBoeUNoOw0KKyAgICAvL1dPUkQxNiB3U2lyOyAvL2FkZCBieSAyMDE1MDQyMw0KKyAgICBXT1JEMTYgd1BhZGRpbmc7DQorCS8vV09SRDE2IHdTaXI7DQorICAgIFRfRGxDcGNoUGFyYSB0Q2hQYXJhWzhdOy8vbW9kaWZ5IGJ5IDIwMTUwNDIzDQorICAgIC8vVF9EbENwY2hQYXJhIHRDaFBhcmE7DQorICAgIFdPUkQxNiB3UmVzZXJ2ZWRbOF07DQorfVRfRGxDcGNoSW5mbzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vLy8vLy8vLy8vL0xPR19UT09MX1dDRE1BX0RMX0NQQ0hfSU5GTw0KKw0KKy8vZ3JvdXA4IGRsIGRwY2gNCit0eXBlZGVmIHN0cnVjdHsNCisgICAgV09SRDE2IHdDaGFuQ29kZTsNCisgICAgV09SRDE2IHdTZWNTY3JhbWJDb2RlRmxnOw0KKyAgICBXT1JEMTYgd1NlY1NjcmFtYkNvZGU7DQorCVdPUkQxNiB3UGFkZGluZzsNCit9IFRfQ2hhbm5lbENvZGU7DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiBUeERpdk1vZGU7DQorICAgIC8vV09SRDE2IHdDaGFuU3RhdGU7ICAvL2FkZCBieSAyMDE1MDQyMw0KKyAgICBXT1JEMTYgd0RwY2hGcmFtZU9mZnNldDsNCisgICAgV09SRDE2IHdQcmltU3JjOw0KKyAgICBXT1JEMTYgd1NlY0NwU2NyQ29kZUZsZzsNCisgICAgV09SRDE2IHdTZWNDcGljaFNjcmFtYkNvZGU7DQorICAgIFdPUkQxNiB3VHBjQ29tYkluZGV4Ow0KKyAgICBXT1JEMTYgd051bU9mRHBjaHM7DQorCVdPUkQxNiB3UGFkZGluZzsNCisgICAgVF9DaGFubmVsQ29kZSBhdERsRHBjaENoYW5uZWxDb2RlWzhdOw0KK31UX0RsUmxQYXJhOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICAvL1dPUkQxNiB3Q2hTdGF0ZTsgLy9kZWxldGUgYnkgMjAxNTA0MjMNCisgICAgV09SRDE2IHdOdW1PZlJsOw0KKyAgICBXT1JEMTYgd1Nsb3RGb3JtOw0KKyAgICBUX0RsUmxQYXJhIGF0UmxQYXJhbXNbNl07DQorICAgIFdPUkQxNiB3UmVzZXJ2ZWRbOF07DQorfVRfRGxEcGNoSW5mbzsvLy8vLy8vLy8vLy9MT0dfVE9PTF9XQ0RNQV9ETF9EUENIX0lORk8NCisNCisNCisvL2dyb3VwOSB1bCBkcGNoDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3TWF4VHhQb3dlcjsNCisgICAgV09SRDE2IHdEcGNjaFBvd2VyT2ZmOw0KKyAgICBXT1JEMTYgd1Bvd2VyQ29udHJvbEFsZ29yaXRobTsNCisgICAgV09SRDE2IHdUcGNTdGVwU2l6ZTsNCisgICAgV09SRDE2IHdJbml0VHhQb3dlcjsNCisJV09SRDE2IHdQYWRkaW5nOw0KK31UX1VsRHBjaFBjSW5mbzsvLy8vLy8vLy8vLy8vLy9MT0dfVE9PTF9XQ0RNQV9VTF9EUENIX1BDX0lORk8NCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDE2IHdQb3dlclByZWFtYmxlTGVuOw0KKyAgICBXT1JEMTYgd051bU9mRmJpQml0czsNCisgICAgV09SRDE2IHdTbG90Rm9ybTsNCisgICAgV09SRDE2IHdTY3JhbWJDb2RlVHlwZTsNCisgICAgV09SRDMyIGRVbFNjcmFtYkNvZGU7DQorICAgIFdPUkQxNiB3U3ByZWFkaW5nRmFjdG9yOy8vQWRkIGJ5IDIwMTUwNDIzDQorICAgIFdPUkQxNiB3UHVuY3RMaW1pdDsNCisgICAgV09SRDE2IHdUZmNpRmxnOw0KKyAgICBXT1JEMTYgd1Jlc2VydmVkWzddOw0KK31UX1VsRHBjaEluZm87Ly8vLy8vLy8vLy8vTE9HX1RPT0xfV0NETUFfVUxfRFBDSF9JTkZPDQorDQorLy9ncm91cDEwIHByYWNoDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3UG93TWF4VHhQb3dlcjsNCisgICAgV09SRDE2IHdTaWduYXR1cmVCaXRtYXA7DQorICAgIFdPUkQxNiB3U3ViY2hhbm5lbEJpdG1hcDsNCisgICAgV09SRDE2IHdNaW5TcHJlYWRpbmdGYWN0b3I7DQorICAgIFdPUkQzMiB3UHJhY2hTY3JhbWJDb2RlOw0KKyAgICBXT1JEMTYgd1B1bmN0TGltaXQ7DQorICAgIFdPUkQxNiB3VHJjaElkOw0KKyAgICBXT1JEMTYgd0luaXRpYWxQb3dlck9mZjsNCisgICAgV09SRDE2IHdNc2dUdGk7DQorICAgIFdPUkQxNiB3TnVtUHJlYW1ibGU7DQorICAgIFdPUkQxNiB3QWljaFN0YXRlOw0KKyAgICBXT1JEMTYgd1NpZ25QcmVhbWJsZTsNCisgICAgV09SRDE2IHdBY2Nlc3NTbG90Tm87DQorICAgIFdPUkQxNiB3U2ZuOw0KKyAgICBXT1JEMTYgd0FpY2hUcmFuc1RpbWluZzsNCisgICAgV09SRDE2IHdSRlR4UG93ZXI7DQorICAgIFdPUkQxNiB3QWljaE1pc3NDbnQ7DQorICAgIFdPUkQxNiB3UHJhY2hGYWlsQ2F1c2U7DQorICAgIFdPUkQxNiB3UmVzZXJ2ZWRbN107DQorfVRfUHJhY2hJbmZvOy8vLy8vLy8vLy8vLy8vL0xPR19UT09MX1dDRE1BX1BSQUNIX0lORk8NCisNCisNCisvL2dyb3VwMTEgc3luYyBpbmZvLXRwdVxwc3JcYWZjDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiByZXNlcnZlZFsyMF07DQorDQorfVRfU3luY0luZm87Ly8vLy8vLy8vLy8vLy8vLy8vTE9HX1RPT0xfV0NETUFfU1lOQ19JTkZPDQorDQorDQorDQorLy9ncm91cDEyIGZzIHByb2MgaW5mbw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEMTYgd0ZyZXF1ZW5jeTsNCisgICAgV09SRDE2IHdSc3NpOw0KK31UX0ZzSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDE2IHdGc051bTsNCisgICAgV09SRDE2IHdQYWRkaW5nOw0KKyAgICBUX0ZzSW5mbyBhdFNjYW5SZXN1bHRbMzJdOw0KKyAgICBXT1JEMTYgd1Jlc2VydmVkWzZdOw0KK31UX0ZzUmVzdWx0Oy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vTE9HX1RPT0xfV0NETUFfRlNfUFJPQ19JTkZPDQorDQorDQorLy9ncm91cDEzIGNzciBhbmQgYmNoIGluZm8NCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDMyIHdQc2NGYWlsOjE7DQorICAgIFdPUkQzMiB3U3NjRmFpbDoxOw0KKyAgICBXT1JEMzIgd01pZEZhaWw6MTsNCisgICAgV09SRDMyIHdNZWFzRmFpbDoxOw0KKyAgICBXT1JEMzIgd0JjaEZhaWw6MTsNCisgICAgV09SRDMyIHdGdWxsU2NhbkZhaWw6MTsNCisgICAgV09SRDMyIHdSZXZlcmVkOjI2Ow0KK31UX0NzRmFpbEluZm87DQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3UHJpbVNyYzsNCisgICAgV09SRDE2IHdDcGljaFJzY3A7DQorICAgIFdPUkQxNiB3Q3BpY2hFY05vOw0KK31UX0NlbGxQYXJhbXM7DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFRfQ3NGYWlsSW5mbyB0Q3NGYWlsSW5mbzsNCisgICAgV09SRDE2IHdGcmVxdWVuY3k7DQorICAgIFdPUkQxNiB3TnVtT2ZGb3VuZENlbGxzOw0KKyAgICBUX0NlbGxQYXJhbXMgIGF0Q2VsbFs4XTsNCisgICAgV09SRDE2IHdSZXNlcnZlZFs4XTsNCit9VF9Dc1N0YXRpc3RpY0luZm87Ly8vLy8vLy8vLy8vLy9MT0dfVE9PTF9XQ0RNQV9DU19TVEFUSVNUSUNfSU5GTw0KKw0KKy8vZ3JvdXAxNCBwaSBpbmZvDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3UGlWYWx1ZTsNCisgICAgV09SRDE2IHdQY2hDcmM7DQorICAgIFdPUkQxNiB3UGNoVmxhdWU7DQorICAgIFdPUkQxNiB3UmVzZXJ2ZWRbN107DQorfVRfUGFnZVN0YXRpc3RpY0luZm87Ly8vLy8vLy8vLy8vLy8vLy8vTE9HX1RPT0xfV0NETUFfUEFHRV9TVEFUSVNUSUNfSU5GTw0KKw0KKy8vZ3JvdXAxNSAgbWVhcyBpbmZvDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3UHJpbVNyYzsNCisgICAgV09SRDE2IHdSc2NwOw0KKyAgICBXT1JEMTYgd0VjSW87DQorICAgIFdPUkQxNiB3UGFkZGluZzsNCisgICAgV09SRDMyIGRNYXhGaW5nZXJQb3M7DQorfVRfTDF3TG9nQ2VsbEluZm87DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3RnJlcTsNCisgICAgV09SRDE2IHdSc3NpOw0KKyAgICBXT1JEMTYgd0NlbGxOdW07DQorICAgIFdPUkQxNiB3UGFkZGluZzsNCisgICAgVF9MMXdMb2dDZWxsSW5mbyB0Q2VsbEluZm9bMzJdOw0KK31UX0ZyZXFDZWxsSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDE2IHdGcmVxOw0KKyAgICBXT1JEMTYgd1Jzc2k7DQorICAgIFdPUkQxNiB3Q2VsbE51bTsNCisgICAgV09SRDE2IHdQYWRkaW5nOw0KKyAgICBUX0wxd0xvZ0NlbGxJbmZvIHRDZWxsSW5mb1szXTsNCit9VF9CbGluZEZyZXFDZWxsSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDE2IHdGcmVxOw0KKyAgICBXT1JEMTYgd1BhZGRpbmc7DQorICAgIFRfTDF3TG9nQ2VsbEluZm8gdENlbGxJbmZvOw0KKyAgICBXT1JEMTYgd1Jlc2VydmVkWzhdOw0KKw0KK31UX1NydkNlbGxSZXN1bHQ7Ly8vLy8vLy8vLy8vLy8vLy8vTE9HX1RPT0xfV0NETUFfU0VSVkVfQ0VMTF9SRVNVTFQNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDE2IHdGcmVxOw0KKyAgICBXT1JEMTYgd1Jzc2k7DQorICAgIFdPUkQxNiB3Q2VsbE51bTsNCisJV09SRDE2IHdQYWRkaW5nOw0KKyAgICBUX0wxd0xvZ0NlbGxJbmZvIHRDZWxsSW5mb1szMl07DQorICAgIFdPUkQxNiB3UmVzZXJ2ZWRbOF07DQorfVRfSW50cmFDZWxsUmVzdWx0Oy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vTE9HX1RPT0xfV0NETUFfSU5UUkFfQ0VMTF9SRVNVTFQNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDE2ICAgICAgICAgICAgICB3UGVyaW9kOyAgICAgICAgICAgICAgICAvKiAxMG1zIG9yIHR0aSovDQorCVdPUkQxNiAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFdPUkQxNiAgICAgICAgICAgICAgd0ZyZXFOdW07DQorICAgIFdPUkQxNiAgICAgICAgICAgICAgd0JsaW5kRnJlcU51bTsNCisgICAgVF9GcmVxQ2VsbEluZm8gICAgICBhdEludGVyRnJlcUNlbGxJbmZvWzhdOw0KKyAgICBUX0JsaW5kRnJlcUNlbGxJbmZvIGF0QmxpbmRGcmVxQ2VsbEluZm9bMTZdOw0KKyAgICBXT1JEMTYgICAgICAgICAgICAgIHdSZXNlcnZlZFs4XTsNCit9VF9JbnRlckNlbGxSZXN1bHQ7Ly8vLy8vLy8vLy8vLy8vLy8vTE9HX1RPT0xfV0NETUFfSU5URVJfQ0VMTF9SRVNVTFQNCisNCisvL2dyb3VwMTYgZmFjaCBhbmQgZHBjaCBjcmMgaW5mbw0KKyNpZiAwDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3UGVyaW9kOyAgICAgICAgICAgICAgICAvKiAxMG1zIG9yIHR0aSovDQorICAgIFdPUkQzMiB3RmFjaENyY09rQ250Ow0KKyAgICBXT1JEMzIgd0ZhY2hFcnJDbnQ7DQorICAgIFdPUkQxNiB3RmFjaEJsZXI7DQorICAgIFdPUkQxNiB3RmFjaEJwczsNCisgICAgV09SRDE2IHdSZXNlcnZlZFs4XTsNCit9VF9EbEZhY2hDcmNJbmZvOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8vLy8vLy8vLy8vLy9MT0dfVE9PTF9XQ0RNQV9ETF9GQUNIX0NSQ19JTkZPDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3UGVyaW9kOyAgICAgICAgICAgICAgICAvKiAxMG1zIG9yIHR0aSovDQorICAgIFdPUkQzMiB3RHBjaEVyckNudDsNCisgICAgV09SRDMyIHdEcGNoQ3JjT2tDbnQ7DQorICAgIFdPUkQxNiB3RHBjaEJsZXI7DQorICAgIFdPUkQxNiB3RHBjaEJwczsNCisgICAgV09SRDE2IHdEcGNoVGZjaTsNCisgICAgV09SRDE2IHdSZXNlcnZlZFs4XTsNCit9VF9EbERjaENyY0luZm87ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vTE9HX1RPT0xfV0NETUFfRExfRENIX0NSQ19JTkZPDQorI2VuZGlmDQorDQorI2RlZmluZSBETF9UUkNIX05VTV9NQVggIDgNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDE2IHdQZXJpb2Q7ICAgICAgICAgICAgICAgICAvKiAxMG1zIG9yIHR0aSovDQorICAgIFdPUkQxNiB3UGFkZGluZzsNCisgICAgV09SRDMyIHdUcmNoRXJyQ250OyAgICAgICAgICAgICAvKiC07c7zv+nX3Mr9ICovDQorICAgIFdPUkQzMiB3VHJjaENyY09rQ250OyAgICAgICAgICAgLyog1f3It7/p19zK/SAqLw0KKyAgICBXT1JEMTYgd1RyY2hCbGVyOyAgICAgICAgICAgICAgIC8qILWlzruw2bfW1q7SuyAqLw0KKyAgICBXT1JEMTYgd1RyY2hCaXRzOyAvL21vZGlmeSBieSAyMDE1MDQyMw0KKyAgICBXT1JEMTYgd1RyY2hUZmNpOyAgICAgICAgICAgICAgIC8qILWxx7BURkNJICovDQorICAgIC8vV09SRDMyIGRUcmNoQml0czsgICAgICAgICAgICAgICAvKiC1pc67SyAqLw0KKyAgICBXT1JEMTYgd1Jlc2VydmVkWzddOw0KK31UX0RsVHJjaEluZm87DQorDQordHlwZWRlZiBlbnVtDQorew0KKyAgICBFX05VTEwgPSAwLA0KKyAgICBFX1BDSCwNCisgICAgRV9GQUNILA0KKyAgICBFX0RQQ0gNCit9RV9EbFRyY2hUeXBlOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEMTYgIHdEbFRyY2hUeXBlOw0KKyAgICBXT1JEMTYgIHdUcmNoTnVtOw0KKyAgICBUX0RsVHJjaEluZm8gdERsVHJjaEluZm9bRExfVFJDSF9OVU1fTUFYXTsNCit9VF9EbFJ4Q29kaW5nSW5mbzsNCisNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDE2ICAgICAgd1BlcmlvZDsgICAgICAgICAgICAgICAgLyogNTAwbXMgKi8NCisgICAgV09SRDE2ICAgICAgd1BhZGRpbmc7DQorICAgIFdPUkQzMiAgICAgIGRIc2RzY2hCaXRzOyAgICAgICAgICAgIC8qIEhTRFNDSCDB98G/ICovDQorICAgIFdPUkQzMiAgICAgIGRIc3NjY2hDcmNGYWxzZUNudDsgICAgIC8qIEhTU0NDSCC07c7zyv0qLw0KKyAgICBXT1JEMzIgICAgICBkSHNzY2NoQ3JjVHJ1ZUNudDsgICAgICAvKiBIU1NDQ0gg1f3It8r9Ki8NCisgICAgV09SRDMyICAgICAgZEhzc2NjaFRvdGFsQ250OyAgICAgICAgLyogSFNTQ0NIIL3TytXX3Mr9Ki8NCisgICAgV09SRDMyICAgICAgZEhzZHNjaFFwc2tDbnQ7ICAgICAgICAgLyogSFNEU0NIIFFQU0u8xsr9ICovDQorICAgIFdPUkQzMiAgICAgIGRIc2RzY2gxNlFhbUNudDsgICAgICAgIC8qIEhTRFNDSCAxNlFBTbzGyv0gKi8NCisgICAgV09SRDMyICAgICAgZEhzZHNjaDY0UWFtQ250OyAgICAgICAgLyogSFNEU0NIIDY0UUFNvMbK/SAqLw0KKyAgICBXT1JEMzIgICAgICBkSHNkc2NoQ3JjRmFsc2VDbnQ7ICAgICAvKiBIU0RTQ0ggtO3O88r9ICovDQorICAgIFdPUkQzMiAgICAgIGRIc2RzY2hDcmNUcnVlQ250OyAgICAgIC8qIEhTRFNDSCDV/ci3yv0gKi8NCisgICAgV09SRDMyICAgICAgZEhzZHNjaFJldHJhbnNDbnQ7ICAgICAgLyogSFNEU0NIINbYtKvK/SAqLw0KKyAgICBXT1JEMzIgICAgICBkSHNkc2NoVG90YWxDbnQ7ICAgICAgICAvKiBIU0RTQ0ggvdPK1dfcyv0gKi8NCisgICAgV09SRDMyICAgICAgZEhzZHBjY2hSZXRyYW5zQ250OyAgICAgLyogSFNEUENDSCDW2LSryv0gKi8NCisgICAgV09SRDMyICAgICAgZEhzZHBjY2hUb3RhbENudDsgICAgICAgLyogSFNEUENDSCC3osvN19zK/SAqLw0KKyAgICBXT1JEMzIgICAgICBkSHNkcGFSdW5Tc2ZuQ250OyAgICAgICAvKiDX3NTL0NDWocr9ICovDQorICAgIC8vuvPD5svEuPZ6Y2F0w7vTwzIwMTUwNDIzDQorICAgIFdPUkQzMiAgICAgIGRIc3NjY2hUeXBlMUNudDsgICAgICAgIC8qIEhTU0NDSCBUWVBFMbzGyv0sILD8wKhCQ0NIIEhSTlRJICovDQorICAgIFdPUkQzMiAgICAgIGRIc3NjY2hUeXBlMkNudDsgICAgICAgIC8qIEhTU0NDSCBUWVBFMrzGyv0gKi8NCisgICAgV09SRDMyICAgICAgZEhzc2NjaExlc3NDbnQ7ICAgICAgICAgLyogSFNTQ0NIIExFU1O8xsr9ICovDQorICAgIFdPUkQzMiAgICAgIGRIc3NjY2hPcmRlckNudDsgICAgICAgIC8qIEhTU0NDSCBPUkRFUrzGyv0gKi8NCit9VF9Ic2RwYUNvZGluZ0luZm87DQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgV09SRDE2IGJJc0RsUnhGbGc7DQorICAgV09SRDE2IGJJc0hzZHBhRmxnOw0KKyAgIFRfRGxSeENvZGluZ0luZm8gIHREbFJ4Q29kaW5nSW5mbzsNCisgICBUX0hzZHBhQ29kaW5nSW5mbyAgdEhzZHBhQ29kaW5nSW5mbzsNCisgICBXT1JEMTYgICAgICB3UmVzZXJ2ZWRbOF07DQorfVRfTDF3U3RhdGlzdGljSW5mbzsgLy9MT0dfVE9PTF9XQ0RNQV9TVEFUSVNUSUNfSU5GTw0KKw0KKw0KKy8vZ3JvdXAxNyBkcGEgaW5mbw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEMTYgICAgICB3U2lyOyAgICAgICAvKiBTSVIgKi8NCisgICAgV09SRDE2ICAgICAgd1BvdzsgICAgICAgLyoguabCyiAqLw0KKyAgICBXT1JEMTYgICAgICB3Q29kZTsgICAgICAvKiDC67XAusUgKi8NCisgICAgV09SRDE2ICAgICAgd1BhdHRlcm47ICAgLyogtPK/qsqxz7bNvNH5ICovDQorfVRfSHNkcGFEbENoSW5mbzsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDE2ICAgICAgd1NpcjsgICAgICAgLyogU0lSICovDQorICAgIFdPUkQxNiAgICAgIHdQb3c7ICAgICAgIC8qILmmwsogKi8NCisgICAgV09SRDE2ICAgICAgd0NvZGU7ICAgICAgLyogwuu1wLrFICovDQorICAgIFdPUkQxNiAgICAgIHdQYXR0ZXJuOyAgIC8qILTyv6rKsc+2zbzR+SAqLw0KKyAgICBXT1JEMTYgICAgICB3VGltaW5nOyAgICAvKiC2qMqxICovDQorICAgIFdPUkQxNiAgICAgIHdQYWRkaW5nOw0KK31UX0hzZHBhVWxDaEluZm87DQorDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiAgICAgICAgICAgICAgd1BlcmlvZDsgICAgICAgICAgICAgICAgLyogMTBtcyAqLw0KKyAgICAvL1dPUkQxNiAgICAgICAgICAgICAgd1BhZGRpbmc7DQorICAgIFdPUkQxNiAgICAgICAgICAgICAgd0hzc2NjaFRCU3ppZVs1XTsgICAgICAgLyogSFNTQ0NIINCvtPi1xLSryuS/6bTz0KEgKi8NCisgICAgV09SRDE2ICAgICAgICAgICAgICB3SHNzY2NoUGFyYW1bNV07ICAgICAgICAvKiBIU1NDQ0gg0K+0+LXEss7K/TogaGFycTo0oaJ0YnM6NqGibXM6MqGiY2ggbnVtOjQgKi8NCisgICAgV09SRDE2ICAgICAgICAgICAgICB3SHNkc2NoUGFyYW1bNV07ICAgICAgICAvKiBIU0RTQ0gg0K+0+LLOyv06IHRzbiAqLw0KKyAgICBXT1JEMTYgICAgICAgICAgICAgIHdIc2RwY2NoQWNrQ3FpWzVdOyAgICAgIC8qIEhTRFBDQ0gg0K+0+LXEss7K/TphY2s6M6GiY3FpOjWholJlc2VydmVkOjggKi8NCisgICAgV09SRDE2ICAgICAgICAgICAgICB3SHNzY2NoTWlzc0NudDsgICAgICAgICAvKiBIU1NDQ0ggTUlTU7zGyv0gKi8NCisgICAgV09SRDE2ICAgICAgICAgICAgICB3SHNzY2NoU2NoZUNudDsgICAgICAgICAvKiBIU1NDQ0ggtfe2yLzGyv0gKi8NCisgICAgV09SRDE2ICAgICAgICAgICAgICB3SHNkc2NoQ3JjUGFzc0NudDsgICAgICAvKiBIU0RTQ0gg1fvM5cr9vt3V/ci3vMbK/SAqLw0KKyAgICBXT1JEMTYgICAgICAgICAgICAgIHdIc2RzY2hDcmNGYWlsQ250OyAgICAgIC8qIEhTRFNDSCDV+8zlyv2+3bTtzvO8xsr9ICovDQorICAgIFdPUkQxNiAgICAgICAgICAgICAgd0hzZHNjaE5kQ3JjUGFzc0NudDsgICAgLyogSFNEU0NIINDCyv2+3dX9yLe8xsr9ICovDQorICAgIFdPUkQxNiAgICAgICAgICAgICAgd0hzZHNjaE5kQ3JjRmFpbENudDsgICAgLyogSFNEU0NIINDCyv2+3bTtzvO8xsr9ICovDQorICAgIFdPUkQxNiAgICAgICAgICAgICAgd0hzZHBjY2hSZXRyYW5zQ250OyAgICAgLyogSFNEUENDSCDW2LSrvMbK/SAqLw0KKyAgICBXT1JEMzIgICAgICAgICAgICAgIGRIc2RzY2hCaXRzOyAgICAgICAgICAgIC8qIEhTRFNDSCDB98G/ICovDQorICAgIFRfSHNkcGFEbENoSW5mbyAgICAgYXRIc3NjY2hDaEluZm9bNF07ICAgICAgLyogSFNTQ0NIINDFz6IgKi8NCisgICAgVF9Ic2RwYURsQ2hJbmZvICAgICBhdEhzZHNjaENoSW5mb1sxNV07ICAgICAvKiBIU0RTQ0gg0MXPoiAqLw0KKyAgICBUX0hzZHBhVWxDaEluZm8gICAgIHRIc2RwY2NoQ2hJbmZvOyAgICAgICAgIC8qIEhTRFBDQ0gg0MXPoiAqLw0KKyAgICBXT1JEMTYgd1Jlc2VydmVkWzhdOw0KK31UX0hzZHBhUGFja2V0SW5mbzsgLy8vLy8vLy8vLy8vLy8vLy8vTE9HX1RPT0xfV0NETUFfSFNEUEFfUEFDS0VUX0lORk8NCisNCisjaWYgMCAvL3pjYXTU2sq508MgMjAxNTA0MjMNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDE2ICAgICAgd1BlcmlvZDsgICAgICAgICAgICAgICAgLyogNTAwbXMqLw0KKyAgICBXT1JEMTYgICAgICB3SHNzY2NoU2NoZWRSYXRlOyAgICAgICAvKiBIc3NjY2ggtfe2yMLKICovDQorICAgIFdPUkQxNiAgICAgIHdIc3NjY2hNaXNzUmF0ZTsgICAgICAgIC8qIEhzc2NjaCBtaXNzwsogKi8NCisgICAgV09SRDE2ICAgICAgd0hzZHNjaEVyclJhdGU7ICAgICAgICAgLyogSHNkc2NoILTtzvPCyiAqLw0KKyAgICBXT1JEMTYgICAgICB3SHNkc2NoUmV0cmFuc1JhdGU7ICAgICAvKiBIc2RzY2gg1ti0q8LKICovDQorICAgIFdPUkQxNiAgICAgIHdIc2RwY2NoUmV0cmFuc1JhdGU7ICAgIC8qIEhzZHBjY2gg1ti0q8LKICovDQorICAgIFdPUkQzMiAgICAgIHdIc2RzY2hCcHM7ICAgICAgICAgICAgIC8qIEhzZHNjaCDB98G/ICovDQorICAgIFdPUkQxNiAgICAgIHdSZXNlcnZlZFs4XTsNCit9VF9EZXZIc2RwYVN0YXRpc3RpY0luZm87ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vLy8vLy8vLy8vLy8vTE9HX1RPT0xfV0NETUFfSFNEUEFfU1RBVElTVElDX0lORk8NCisjZW5kaWYNCisNCisvL2dyb3VwIDE4IHVwYSBpbmZvDQorDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiB3VmFsdWU7DQorICAgIFdPUkQxNiB3U2NvcGU7DQorICAgIFdPUkQxNiB3UHJpbVJudGk7DQorCVdPUkQxNiB3UGFkZGluZzsNCit9VF9BZ1Jlc3VsdDsNCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDE2IHdSZ09mZnNldFNsb3Q7DQorICAgIFdPUkQxNiB3SGlPZmZzZXRTbG90Ow0KKyAgICBXT1JEMTYgd0NoYW5Db2RlOw0KKwlXT1JEMTYgd1BhZGRpbmc7DQorfVRfSHN1cGFSZ0hpQ2hhbjsNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICBXT1JEMTYgd0VhZ2NoQ2hhbkNvZGU7DQorICAgIFdPUkQxNiB3UGFkZGluZzsNCisgICAgVF9Ic3VwYVJnSGlDaGFuIGF0UmdIaUNoYW5JbmZvWzRdOw0KK31UX0hzdXBhRGxDaGFuOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEMTYgd0VkY2hUdGk7DQorICAgIFdPUkQxNiB3U2Y7DQorICAgIFdPUkQxNiB3TDsNCisgICAgV09SRDE2IHdCZXRhRWM7DQorICAgIFdPUkQxNiB3QmV0YUVkWzRdOw0KK31UX0hzdXBhVWxDaGFuOw0KKw0KK3R5cGVkZWYgc3RydWN0DQorew0KKyAgICBXT1JEMTYgd1BlcmlvZDsvKiAxMG1zKi8NCisJV09SRDE2IHdQYWRkaW5nOw0KKwlXT1JEMTYgIHdOdW1PZkVkY2hSbDsNCisJV09SRDE2ICB3RWRjaFNlcnZSbElkeDsNCisJV09SRDE2IGF3RWRjaENlbGxQcmltU3JjWzRdOw0KKyAgICBUX0FnUmVzdWx0IHRBZ1Jlc3VsdDsNCisgICAgV09SRDMyICAgICAgICAgZEFnQ3JjT2tOdW07DQorICAgIFdPUkQzMiAgICAgICAgIGRSZ1Jlc3VsdDsNCisgICAgV09SRDMyICAgICAgICAgZEVkY2hTZW50TnVtOw0KKyAgICBXT1JEMzIgICAgICAgICBkSGlBY2tOdW07DQorICAgIFdPUkQzMiAgICAgICAgIGRIaU5hY2tOdW07DQorICAgIFRfSHN1cGFEbENoYW4gIHREbENoYW5JbmZvOw0KKyAgICBUX0hzdXBhVWxDaGFuICB0RWRjaEluZm87DQorICAgIFdPUkQxNiAgICAgICAgIHdSZXNlcnZlZFs4XTsNCit9VF9Ic3VwYVBhY2tldEluZm87Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vTE9HX1RPT0xfV0NETUFfSFNVUEFfUEFDS0VUX0lORk8NCisNCit0eXBlZGVmIHN0cnVjdA0KK3sNCisgICAgV09SRDE2ICAgICAgd1BlcmlvZDsgICAgICAgICAgICAgICAgLyogNTAwbXMqLw0KKwlXT1JEMTYgICAgICB3UGFkZGluZzsNCisgICAgV09SRDE2ICAgICAgd0FnY2hTY2hlZFJhdGU7DQorICAgIFdPUkQxNiAgICAgIHdBZ2NoTWlzc1JhdGU7DQorICAgIFdPUkQxNiAgICAgIHdFZGNoTmV3RGF0ZUJwczsNCisgICAgV09SRDE2ICAgICAgd0VkY2hEYXRhQnBzOw0KKyAgICBXT1JEMTYgICAgICB3UmVzZXJ2ZWRbOF07DQorfVRfSHN1cGFTdGF0aXNpdGNJbmZvOy8vLy8vLy8vLy8vLy8vLy9MT0dfVE9PTF9XQ0RNQV9IU1VQQV9TVEFUSVNUSUNfSU5GTw0KKw0KKy8vZ3JvdXAxOSBzbGVlcCBpbmZvDQordHlwZWRlZiBzdHJ1Y3QNCit7DQorICAgIFdPUkQxNiAgICAgIHdQZXJpb2Q7ICAgICAgICAgICAgICAgIC8qIDVzKi8NCisJV09SRDE2ICAgICAgd1BhZGRpbmc7DQorICAgIFdPUkQxNiAgICAgIHdQaHlTdGF0ZTsNCisgICAgV09SRDE2ICAgICAgd1NsZWVwUmF0aW87DQorICAgIFdPUkQzMiAgICAgIGRTbGVlcFN0YXJ0U3NmbjsNCisgICAgV09SRDMyICAgICAgZFNsZWVwV2FrZVNzZm47DQorICAgIFdPUkQzMiAgICAgIGRTbGVlcENudDsNCit9VF9TbGVlcE1peEluZm87Ly8vLy8vLy8vLy8vLy8vLy8vLy8vTE9HX1RPT0xfV0NETUFfU0xFRVBfTUlYX0lORk8NCisNCisNCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorCQkJCSAgICA0Lrqvyv28sLHkwb/J+cP3DQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCisNCisjZW5kaWYgLyogUEhZX1dfTE9HX0lGX0ggKi8NCisNCisNCg==