Name: series-workflowtk8nx Phase: Failed StartedAt: 2026-07-03 01:45:09 +0000 UTC FinishedAt: 2026-07-03 01:52:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtk8nx[0] Phase: Succeeded StartedAt: 2026-07-03 01:45:09 +0000 UTC FinishedAt: 2026-07-03 01:52:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtk8nx[0].run-triage Phase: Succeeded StartedAt: 2026-07-03 01:45:09 +0000 UTC FinishedAt: 2026-07-03 01:52:44 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDAxOjUwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBtbHg1IGV0aGVybmV0IGRyaXZlciAobWx4NWVfcG9sbF90eF9jcSkuIFRoaXMgaXMgYSBwaHlzaWNhbCBoYXJkd2FyZSBkcml2ZXIgZm9yIE1lbGxhbm94IENvbm5lY3RYIGFkYXB0ZXJzIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gYXZhaWxhYmxlIGZvciBpdCBpbiBRRU1VIG9yIHRoZSBrZXJuZWwuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDAxOjUwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZTA5NTA0YmMwODY5ZDMwMmU3MGQxMDllNWZlNmNhMjExZGQzMjkwOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDMgMDE6NTA6MzkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuY1xuaW5kZXggN2YzMzI2MWJhNjU1M2IuLmI5NDAyODBhZjE5ZGJmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jXG5AQCAtMTcxLDYgJiM0MzsxNzEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBzd19zdGF0c19kZXNjW10gPSB7XG4gXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X2NxZXMpIH0sXG4gXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X3F1ZXVlX3dha2UpIH0sXG4gXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X2NxZV9lcnIpIH0sXG4mIzQzO1x0eyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF90aW1lX2J1ZGdldF9leGl0KSB9LFxuIFx0eyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF94ZHBfeG1pdCkgfSxcbiBcdHsgTUxYNUVfREVDTEFSRV9TVEFUKHN0cnVjdCBtbHg1ZV9zd19zdGF0cywgdHhfeGRwX21wd3FlKSB9LFxuIFx0eyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF94ZHBfaW5sbncpIH0sXG5AQCAtNDI2LDYgJiM0Mzs0MjcsNyBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9zdGF0c19ncnBfc3dfdXBkYXRlX3N0YXRzX3NxKHN0cnVjdCBtbHg1ZV9zd19zdGF0cyAqcyxcbiBcdHMtXHUwMDNldHhfcXVldWVfd2FrZSAgICAgICAgICAgICYjNDM7PSBzcV9zdGF0cy1cdTAwM2V3YWtlO1xuIFx0cy1cdTAwM2V0eF9xdWV1ZV9kcm9wcGVkICAgICAgICAgJiM0Mzs9IHNxX3N0YXRzLVx1MDAzZWRyb3BwZWQ7XG4gXHRzLVx1MDAzZXR4X2NxZV9lcnIgICAgICAgICAgICAgICAmIzQzOz0gc3Ffc3RhdHMtXHUwMDNlY3FlX2VycjtcbiYjNDM7XHRzLVx1MDAzZXR4X3RpbWVfYnVkZ2V0X2V4aXQgICAgICAmIzQzOz0gc3Ffc3RhdHMtXHUwMDNldGltZV9idWRnZXRfZXhpdDtcbiBcdHMtXHUwMDNldHhfcmVjb3ZlciAgICAgICAgICAgICAgICYjNDM7PSBzcV9zdGF0cy1cdTAwM2VyZWNvdmVyO1xuIFx0cy1cdTAwM2V0eF94bWl0X21vcmUgICAgICAgICAgICAgJiM0Mzs9IHNxX3N0YXRzLVx1MDAzZXhtaXRfbW9yZTtcbiBcdHMtXHUwMDNldHhfY3N1bV9wYXJ0aWFsX2lubmVyICAgICYjNDM7PSBzcV9zdGF0cy1cdTAwM2Vjc3VtX3BhcnRpYWxfaW5uZXI7XG5AQCAtMjMyMyw2ICYjNDM7MjMyNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHNxX3N0YXRzX2Rlc2NbXSA9IHtcbiBcdHsgTUxYNUVfREVDTEFSRV9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgY3FlcykgfSxcbiBcdHsgTUxYNUVfREVDTEFSRV9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgd2FrZSkgfSxcbiBcdHsgTUxYNUVfREVDTEFSRV9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgY3FlX2VycikgfSxcbiYjNDM7XHR7IE1MWDVFX0RFQ0xBUkVfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIHRpbWVfYnVkZ2V0X2V4aXQpIH0sXG4gfTtcbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBycV94ZHBzcV9zdGF0c19kZXNjW10gPSB7XG5AQCAtMjM5OSw2ICYjNDM7MjQwMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHB0cF9zcV9zdGF0c19kZXNjW10gPSB7XG4gXHR7IE1MWDVFX0RFQ0xBUkVfUFRQX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCBjcWVzKSB9LFxuIFx0eyBNTFg1RV9ERUNMQVJFX1BUUF9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgd2FrZSkgfSxcbiBcdHsgTUxYNUVfREVDTEFSRV9QVFBfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZV9lcnIpIH0sXG4mIzQzO1x0eyBNTFg1RV9ERUNMQVJFX1BUUF9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgdGltZV9idWRnZXRfZXhpdCkgfSxcbiB9O1xuIFxuIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHB0cF9jaF9zdGF0c19kZXNjW10gPSB7XG5AQCAtMjQ3Niw2ICYjNDM7MjQ4MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHFvc19zcV9zdGF0c19kZXNjW10gPSB7XG4gXHR7IE1MWDVFX0RFQ0xBUkVfUU9TX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCBjcWVzKSB9LFxuIFx0eyBNTFg1RV9ERUNMQVJFX1FPU19UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgd2FrZSkgfSxcbiBcdHsgTUxYNUVfREVDTEFSRV9RT1NfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZV9lcnIpIH0sXG4mIzQzO1x0eyBNTFg1RV9ERUNMQVJFX1FPU19UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgdGltZV9idWRnZXRfZXhpdCkgfSxcbiB9O1xuIFxuICNkZWZpbmUgTlVNX1JRX1NUQVRTXHRcdFx0QVJSQVlfU0laRShycV9zdGF0c19kZXNjKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmhcbmluZGV4IDA5ZjE1NWFjYjQ2MWJjLi41YmE5NTRmNDJjY2Q1YiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuaFxuQEAgLTE4Nyw2ICYjNDM7MTg3LDcgQEAgc3RydWN0IG1seDVlX3N3X3N0YXRzIHtcbiBcdHU2NCB0eF9jcWVzO1xuIFx0dTY0IHR4X3F1ZXVlX3dha2U7XG4gXHR1NjQgdHhfY3FlX2VycjtcbiYjNDM7XHR1NjQgdHhfdGltZV9idWRnZXRfZXhpdDtcbiBcdHU2NCB0eF94ZHBfeG1pdDtcbiBcdHU2NCB0eF94ZHBfbXB3cWU7XG4gXHR1NjQgdHhfeGRwX2lubG53O1xuQEAgLTQ0NSw2ICYjNDM7NDQ2LDcgQEAgc3RydWN0IG1seDVlX3NxX3N0YXRzIHtcbiBcdHU2NCBjcWVzIF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7XG4gXHR1NjQgd2FrZTtcbiBcdHU2NCBjcWVfZXJyO1xuJiM0MztcdHU2NCB0aW1lX2J1ZGdldF9leGl0O1xuIH07XG4gXG4gc3RydWN0IG1seDVlX3hkcHNxX3N0YXRzIHtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jXG5pbmRleCAwYjVlNjAwZTRhNmE5NS4uOTk0ZGY5MTJiNzY1Y2IgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmNcbkBAIC00Myw2ICYjNDM7NDMsMTMgQEBcbiAjaW5jbHVkZSBcJiMzNDtlbl9hY2NlbC9tYWNzZWMuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O2VuL3B0cC5oXCYjMzQ7XG4gI2luY2x1ZGUgXHUwMDNjbmV0L2lwdjYuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9tb2R1bGVwYXJhbS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L3NjaGVkL2Nsb2NrLmhcdTAwM2VcbiYjNDM7XG4mIzQzO3N0YXRpYyB1bnNpZ25lZCBpbnQgbWx4NWVfdHhfY3FfdGltZV9idWRnZXRfdXMgPSA1MDA7XG4mIzQzO21vZHVsZV9wYXJhbV9uYW1lZCh0eF9jcV90aW1lX2J1ZGdldF91cywgbWx4NWVfdHhfY3FfdGltZV9idWRnZXRfdXMsIHVpbnQsIDA2NDQpO1xuJiM0MztNT0RVTEVfUEFSTV9ERVNDKHR4X2NxX3RpbWVfYnVkZ2V0X3VzLFxuJiM0MztcdFx0IFwmIzM0O01heCBtaWNyb3NlY29uZHMgb25lIFRYIENRIHBvbGwgbWF5IHNwZW5kIGJlZm9yZSB5aWVsZGluZyAoMCA9IHVuYm91bmRlZClcJiMzNDspO1xuIFxuIHN0YXRpYyB2b2lkIG1seDVlX2RtYV91bm1hcF93cWVfZXJyKHN0cnVjdCBtbHg1ZV90eHFzcSAqc3EsIHU4IG51bV9kbWEpXG4ge1xuQEAgLTc2MCw5ICYjNDM7NzY3LDEyIEBAIHZvaWQgbWx4NWVfdHhxc3Ffd2FrZShzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxKVxuIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpXG4ge1xuIFx0c3RydWN0IG1seDVlX3NxX3N0YXRzICpzdGF0cztcbiYjNDM7XHRib29sIHRpbWVfZXhjZWVkZWQgPSBmYWxzZTtcbiYjNDM7XHR1NjQgdGltZV9idWRnZXRfZW5kID0gMDtcbiBcdHN0cnVjdCBtbHg1ZV90eHFzcSAqc3E7XG4gXHRzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlO1xuIFx0dTMyIGRtYV9maWZvX2NjO1xuJiM0MztcdHUzMiBidWRnZXRfdXM7XG4gXHR1MzIgbmJ5dGVzO1xuIFx0dTE2IG5wa3RzO1xuIFx0dTE2IHNxY2M7XG5AQCAtNzkwLDYgJiM0Mzs4MDAsMTAgQEAgYm9vbCBtbHg1ZV9wb2xsX3R4X2NxKHN0cnVjdCBtbHg1ZV9jcSAqY3EsIGludCBuYXBpX2J1ZGdldClcbiBcdC8qIGF2b2lkIGRpcnR5aW5nIHNxIGNhY2hlIGxpbmUgZXZlcnkgY3FlICovXG4gXHRkbWFfZmlmb19jYyA9IHNxLVx1MDAzZWRtYV9maWZvX2NjO1xuIFxuJiM0MztcdGJ1ZGdldF91cyA9IFJFQURfT05DRShtbHg1ZV90eF9jcV90aW1lX2J1ZGdldF91cyk7XG4mIzQzO1x0aWYgKGJ1ZGdldF91cylcbiYjNDM7XHRcdHRpbWVfYnVkZ2V0X2VuZCA9IGxvY2FsX2Nsb2NrKCkgJiM0MzsgKHU2NClidWRnZXRfdXMgKiBOU0VDX1BFUl9VU0VDO1xuJiM0MztcbiBcdGkgPSAwO1xuIFx0ZG8ge1xuIFx0XHRzdHJ1Y3QgbWx4NWVfdHhfd3FlX2luZm8gKndpO1xuQEAgLTg0Miw4ICYjNDM7ODU2LDE5IEBAIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpXG4gXHRcdFx0c3RhdHMtXHUwMDNlY3FlX2VyciYjNDM7JiM0Mzs7XG4gXHRcdH1cbiBcbiYjNDM7XHRcdC8qIENoZWNrIGJldHdlZW4gQ1FFcyBvbmx5IChzcWNjL2RtYV9maWZvX2NjIG11c3QgYWR2YW5jZSB0b2dldGhlcikuICovXG4mIzQzO1x0XHRpZiAodW5saWtlbHkodGltZV9idWRnZXRfZW5kIFx1MDAyNlx1MDAyNiAoaSBcdTAwMjYgNykgPT0gNyBcdTAwMjZcdTAwMjZcbiYjNDM7XHRcdFx0ICAgICBsb2NhbF9jbG9jaygpIFx1MDAzZT0gdGltZV9idWRnZXRfZW5kKSkge1xuJiM0MztcdFx0XHR0aW1lX2V4Y2VlZGVkID0gdHJ1ZTtcbiYjNDM7XHRcdFx0aSYjNDM7JiM0Mzs7XG4mIzQzO1x0XHRcdGJyZWFrO1xuJiM0MztcdFx0fVxuJiM0MztcbiBcdH0gd2hpbGUgKCgmIzQzOyYjNDM7aSBcdTAwM2MgTUxYNUVfVFhfQ1FfUE9MTF9CVURHRVQpIFx1MDAyNlx1MDAyNiAoY3FlID0gbWx4NV9jcXdxX2dldF9jcWUoXHUwMDI2Y3EtXHUwMDNld3EpKSk7XG4gXG4mIzQzO1x0aWYgKHVubGlrZWx5KHRpbWVfZXhjZWVkZWQpKVxuJiM0MztcdFx0c3RhdHMtXHUwMDNldGltZV9idWRnZXRfZXhpdCYjNDM7JiM0Mzs7XG4mIzQzO1xuIFx0c3RhdHMtXHUwMDNlY3FlcyAmIzQzOz0gaTtcbiBcbiBcdG1seDVfY3F3cV91cGRhdGVfZGJfcmVjb3JkKFx1MDAyNmNxLVx1MDAzZXdxKTtcbkBAIC04NTgsNyAmIzQzOzg4Myw3IEBAIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpXG4gXG4gXHRtbHg1ZV90eHFzcV93YWtlKHNxKTtcbiBcbi1cdHJldHVybiAoaSA9PSBNTFg1RV9UWF9DUV9QT0xMX0JVREdFVCk7XG4mIzQzO1x0cmV0dXJuIHRpbWVfZXhjZWVkZWQgfHwgKGkgPT0gTUxYNUVfVFhfQ1FfUE9MTF9CVURHRVQpO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBtbHg1ZV90eF93aV9rZnJlZV9maWZvX3NrYnMoc3RydWN0IG1seDVlX3R4cXNxICpzcSwgc3RydWN0IG1seDVlX3R4X3dxZV9pbmZvICp3aSlcbkBAIC04NzksNiAmIzQzOzkwNCw4IEBAIHZvaWQgbWx4NWVfZnJlZV90eHFzcV9kZXNjcyhzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxKVxuIFx0ZG1hX2ZpZm9fY2MgPSBzcS1cdTAwM2VkbWFfZmlmb19jYztcbiBcbiBcdHdoaWxlIChzcWNjICE9IHNxLVx1MDAzZXBjKSB7XG4mIzQzO1x0XHRjb25kX3Jlc2NoZWQoKTtcbiYjNDM7XG4gXHRcdGNpID0gbWx4NV93cV9jeWNfY3RyMml4KFx1MDAyNnNxLVx1MDAzZXdxLCBzcWNjKTtcbiBcdFx0d2kgPSBcdTAwMjZzcS1cdTAwM2VkYi53cWVfaW5mb1tjaV07XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDE6NTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IG1seDUgZXRoZXJuZXQgZHJpdmVyIChtbHg1ZV9wb2xsX3R4X2NxKS4gVGhpcyBpcyBhIHBoeXNpY2FsIGhhcmR3YXJlIGRyaXZlciBmb3IgTWVsbGFub3ggQ29ubmVjdFggYWRhcHRlcnMgYW5kIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIGl0IGluIFFFTVUgb3IgdGhlIGtlcm5lbC4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGUwOTUwNGJjMDg2OWQzMDJlNzBkMTA5ZTVmZTZjYTIxMWRkMzI5MDgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAzIDAxOjUwOjM5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuYwppbmRleCA3ZjMzMjYxYmE2NTUzYi4uYjk0MDI4MGFmMTlkYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jCkBAIC0xNzEsNiAmIzQzOzE3MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHN3X3N0YXRzX2Rlc2NbXSA9IHsKIAl7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X2NxZXMpIH0sCiAJeyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF9xdWV1ZV93YWtlKSB9LAogCXsgTUxYNUVfREVDTEFSRV9TVEFUKHN0cnVjdCBtbHg1ZV9zd19zdGF0cywgdHhfY3FlX2VycikgfSwKJiM0MzsJeyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF90aW1lX2J1ZGdldF9leGl0KSB9LAogCXsgTUxYNUVfREVDTEFSRV9TVEFUKHN0cnVjdCBtbHg1ZV9zd19zdGF0cywgdHhfeGRwX3htaXQpIH0sCiAJeyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF94ZHBfbXB3cWUpIH0sCiAJeyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF94ZHBfaW5sbncpIH0sCkBAIC00MjYsNiAmIzQzOzQyNyw3IEBAIHN0YXRpYyB2b2lkIG1seDVlX3N0YXRzX2dycF9zd191cGRhdGVfc3RhdHNfc3Eoc3RydWN0IG1seDVlX3N3X3N0YXRzICpzLAogCXMtJmd0O3R4X3F1ZXVlX3dha2UgICAgICAgICAgICAmIzQzOz0gc3Ffc3RhdHMtJmd0O3dha2U7CiAJcy0mZ3Q7dHhfcXVldWVfZHJvcHBlZCAgICAgICAgICYjNDM7PSBzcV9zdGF0cy0mZ3Q7ZHJvcHBlZDsKIAlzLSZndDt0eF9jcWVfZXJyICAgICAgICAgICAgICAgJiM0Mzs9IHNxX3N0YXRzLSZndDtjcWVfZXJyOwomIzQzOwlzLSZndDt0eF90aW1lX2J1ZGdldF9leGl0ICAgICAgJiM0Mzs9IHNxX3N0YXRzLSZndDt0aW1lX2J1ZGdldF9leGl0OwogCXMtJmd0O3R4X3JlY292ZXIgICAgICAgICAgICAgICAmIzQzOz0gc3Ffc3RhdHMtJmd0O3JlY292ZXI7CiAJcy0mZ3Q7dHhfeG1pdF9tb3JlICAgICAgICAgICAgICYjNDM7PSBzcV9zdGF0cy0mZ3Q7eG1pdF9tb3JlOwogCXMtJmd0O3R4X2NzdW1fcGFydGlhbF9pbm5lciAgICAmIzQzOz0gc3Ffc3RhdHMtJmd0O2NzdW1fcGFydGlhbF9pbm5lcjsKQEAgLTIzMjMsNiAmIzQzOzIzMjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBzcV9zdGF0c19kZXNjW10gPSB7CiAJeyBNTFg1RV9ERUNMQVJFX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCBjcWVzKSB9LAogCXsgTUxYNUVfREVDTEFSRV9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgd2FrZSkgfSwKIAl7IE1MWDVFX0RFQ0xBUkVfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZV9lcnIpIH0sCiYjNDM7CXsgTUxYNUVfREVDTEFSRV9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgdGltZV9idWRnZXRfZXhpdCkgfSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHJxX3hkcHNxX3N0YXRzX2Rlc2NbXSA9IHsKQEAgLTIzOTksNiAmIzQzOzI0MDIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBwdHBfc3Ffc3RhdHNfZGVzY1tdID0gewogCXsgTUxYNUVfREVDTEFSRV9QVFBfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZXMpIH0sCiAJeyBNTFg1RV9ERUNMQVJFX1BUUF9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgd2FrZSkgfSwKIAl7IE1MWDVFX0RFQ0xBUkVfUFRQX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCBjcWVfZXJyKSB9LAomIzQzOwl7IE1MWDVFX0RFQ0xBUkVfUFRQX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCB0aW1lX2J1ZGdldF9leGl0KSB9LAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBjb3VudGVyX2Rlc2MgcHRwX2NoX3N0YXRzX2Rlc2NbXSA9IHsKQEAgLTI0NzYsNiAmIzQzOzI0ODAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBxb3Nfc3Ffc3RhdHNfZGVzY1tdID0gewogCXsgTUxYNUVfREVDTEFSRV9RT1NfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZXMpIH0sCiAJeyBNTFg1RV9ERUNMQVJFX1FPU19UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgd2FrZSkgfSwKIAl7IE1MWDVFX0RFQ0xBUkVfUU9TX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCBjcWVfZXJyKSB9LAomIzQzOwl7IE1MWDVFX0RFQ0xBUkVfUU9TX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCB0aW1lX2J1ZGdldF9leGl0KSB9LAogfTsKIAogI2RlZmluZSBOVU1fUlFfU1RBVFMJCQlBUlJBWV9TSVpFKHJxX3N0YXRzX2Rlc2MpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5oCmluZGV4IDA5ZjE1NWFjYjQ2MWJjLi41YmE5NTRmNDJjY2Q1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmgKQEAgLTE4Nyw2ICYjNDM7MTg3LDcgQEAgc3RydWN0IG1seDVlX3N3X3N0YXRzIHsKIAl1NjQgdHhfY3FlczsKIAl1NjQgdHhfcXVldWVfd2FrZTsKIAl1NjQgdHhfY3FlX2VycjsKJiM0MzsJdTY0IHR4X3RpbWVfYnVkZ2V0X2V4aXQ7CiAJdTY0IHR4X3hkcF94bWl0OwogCXU2NCB0eF94ZHBfbXB3cWU7CiAJdTY0IHR4X3hkcF9pbmxudzsKQEAgLTQ0NSw2ICYjNDM7NDQ2LDcgQEAgc3RydWN0IG1seDVlX3NxX3N0YXRzIHsKIAl1NjQgY3FlcyBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wOwogCXU2NCB3YWtlOwogCXU2NCBjcWVfZXJyOwomIzQzOwl1NjQgdGltZV9idWRnZXRfZXhpdDsKIH07CiAKIHN0cnVjdCBtbHg1ZV94ZHBzcV9zdGF0cyB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jCmluZGV4IDBiNWU2MDBlNGE2YTk1Li45OTRkZjkxMmI3NjVjYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmMKQEAgLTQzLDYgJiM0Mzs0MywxMyBAQAogI2luY2x1ZGUgJiMzNDtlbl9hY2NlbC9tYWNzZWMuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O2VuL3B0cC5oJiMzNDsKICNpbmNsdWRlICZsdDtuZXQvaXB2Ni5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9tb2R1bGVwYXJhbS5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9zY2hlZC9jbG9jay5oJmd0OwomIzQzOwomIzQzO3N0YXRpYyB1bnNpZ25lZCBpbnQgbWx4NWVfdHhfY3FfdGltZV9idWRnZXRfdXMgPSA1MDA7CiYjNDM7bW9kdWxlX3BhcmFtX25hbWVkKHR4X2NxX3RpbWVfYnVkZ2V0X3VzLCBtbHg1ZV90eF9jcV90aW1lX2J1ZGdldF91cywgdWludCwgMDY0NCk7CiYjNDM7TU9EVUxFX1BBUk1fREVTQyh0eF9jcV90aW1lX2J1ZGdldF91cywKJiM0MzsJCSAmIzM0O01heCBtaWNyb3NlY29uZHMgb25lIFRYIENRIHBvbGwgbWF5IHNwZW5kIGJlZm9yZSB5aWVsZGluZyAoMCA9IHVuYm91bmRlZCkmIzM0Oyk7CiAKIHN0YXRpYyB2b2lkIG1seDVlX2RtYV91bm1hcF93cWVfZXJyKHN0cnVjdCBtbHg1ZV90eHFzcSAqc3EsIHU4IG51bV9kbWEpCiB7CkBAIC03NjAsOSAmIzQzOzc2NywxMiBAQCB2b2lkIG1seDVlX3R4cXNxX3dha2Uoc3RydWN0IG1seDVlX3R4cXNxICpzcSkKIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpCiB7CiAJc3RydWN0IG1seDVlX3NxX3N0YXRzICpzdGF0czsKJiM0MzsJYm9vbCB0aW1lX2V4Y2VlZGVkID0gZmFsc2U7CiYjNDM7CXU2NCB0aW1lX2J1ZGdldF9lbmQgPSAwOwogCXN0cnVjdCBtbHg1ZV90eHFzcSAqc3E7CiAJc3RydWN0IG1seDVfY3FlNjQgKmNxZTsKIAl1MzIgZG1hX2ZpZm9fY2M7CiYjNDM7CXUzMiBidWRnZXRfdXM7CiAJdTMyIG5ieXRlczsKIAl1MTYgbnBrdHM7CiAJdTE2IHNxY2M7CkBAIC03OTAsNiAmIzQzOzgwMCwxMCBAQCBib29sIG1seDVlX3BvbGxfdHhfY3Eoc3RydWN0IG1seDVlX2NxICpjcSwgaW50IG5hcGlfYnVkZ2V0KQogCS8qIGF2b2lkIGRpcnR5aW5nIHNxIGNhY2hlIGxpbmUgZXZlcnkgY3FlICovCiAJZG1hX2ZpZm9fY2MgPSBzcS0mZ3Q7ZG1hX2ZpZm9fY2M7CiAKJiM0MzsJYnVkZ2V0X3VzID0gUkVBRF9PTkNFKG1seDVlX3R4X2NxX3RpbWVfYnVkZ2V0X3VzKTsKJiM0MzsJaWYgKGJ1ZGdldF91cykKJiM0MzsJCXRpbWVfYnVkZ2V0X2VuZCA9IGxvY2FsX2Nsb2NrKCkgJiM0MzsgKHU2NClidWRnZXRfdXMgKiBOU0VDX1BFUl9VU0VDOwomIzQzOwogCWkgPSAwOwogCWRvIHsKIAkJc3RydWN0IG1seDVlX3R4X3dxZV9pbmZvICp3aTsKQEAgLTg0Miw4ICYjNDM7ODU2LDE5IEBAIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpCiAJCQlzdGF0cy0mZ3Q7Y3FlX2VyciYjNDM7JiM0Mzs7CiAJCX0KIAomIzQzOwkJLyogQ2hlY2sgYmV0d2VlbiBDUUVzIG9ubHkgKHNxY2MvZG1hX2ZpZm9fY2MgbXVzdCBhZHZhbmNlIHRvZ2V0aGVyKS4gKi8KJiM0MzsJCWlmICh1bmxpa2VseSh0aW1lX2J1ZGdldF9lbmQgJmFtcDsmYW1wOyAoaSAmYW1wOyA3KSA9PSA3ICZhbXA7JmFtcDsKJiM0MzsJCQkgICAgIGxvY2FsX2Nsb2NrKCkgJmd0Oz0gdGltZV9idWRnZXRfZW5kKSkgewomIzQzOwkJCXRpbWVfZXhjZWVkZWQgPSB0cnVlOwomIzQzOwkJCWkmIzQzOyYjNDM7OwomIzQzOwkJCWJyZWFrOwomIzQzOwkJfQomIzQzOwogCX0gd2hpbGUgKCgmIzQzOyYjNDM7aSAmbHQ7IE1MWDVFX1RYX0NRX1BPTExfQlVER0VUKSAmYW1wOyZhbXA7IChjcWUgPSBtbHg1X2Nxd3FfZ2V0X2NxZSgmYW1wO2NxLSZndDt3cSkpKTsKIAomIzQzOwlpZiAodW5saWtlbHkodGltZV9leGNlZWRlZCkpCiYjNDM7CQlzdGF0cy0mZ3Q7dGltZV9idWRnZXRfZXhpdCYjNDM7JiM0Mzs7CiYjNDM7CiAJc3RhdHMtJmd0O2NxZXMgJiM0Mzs9IGk7CiAKIAltbHg1X2Nxd3FfdXBkYXRlX2RiX3JlY29yZCgmYW1wO2NxLSZndDt3cSk7CkBAIC04NTgsNyAmIzQzOzg4Myw3IEBAIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpCiAKIAltbHg1ZV90eHFzcV93YWtlKHNxKTsKIAotCXJldHVybiAoaSA9PSBNTFg1RV9UWF9DUV9QT0xMX0JVREdFVCk7CiYjNDM7CXJldHVybiB0aW1lX2V4Y2VlZGVkIHx8IChpID09IE1MWDVFX1RYX0NRX1BPTExfQlVER0VUKTsKIH0KIAogc3RhdGljIHZvaWQgbWx4NWVfdHhfd2lfa2ZyZWVfZmlmb19za2JzKHN0cnVjdCBtbHg1ZV90eHFzcSAqc3EsIHN0cnVjdCBtbHg1ZV90eF93cWVfaW5mbyAqd2kpCkBAIC04NzksNiAmIzQzOzkwNCw4IEBAIHZvaWQgbWx4NWVfZnJlZV90eHFzcV9kZXNjcyhzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxKQogCWRtYV9maWZvX2NjID0gc3EtJmd0O2RtYV9maWZvX2NjOwogCiAJd2hpbGUgKHNxY2MgIT0gc3EtJmd0O3BjKSB7CiYjNDM7CQljb25kX3Jlc2NoZWQoKTsKJiM0MzsKIAkJY2kgPSBtbHg1X3dxX2N5Y19jdHIyaXgoJmFtcDtzcS0mZ3Q7d3EsIHNxY2MpOwogCQl3aSA9ICZhbXA7c3EtJmd0O2RiLndxZV9pbmZvW2NpXTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwMTo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MzY5CgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogMzk1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTWVsbGFub3ggbWx4NSBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggZm9yIHRoZSBNZWxsYW5veCBtbHg1IGV0aGVybmV0IGRyaXZlci4gSXQgc2VlbXMgdG8gaW50cm9kdWNlIGEgbmV3IG1vZHVsZSBwYXJhbWV0ZXIsIGB0eF9jcV90aW1lX2J1ZGdldF91c2AsIHRvIGxpbWl0IHRoZSB0aW1lIHNwZW50IGluIGBtbHg1ZV9wb2xsX3R4X2NxYC4gSXQgYWxzbyBpbmNsdWRlcyBhIG5ldyBzdGF0aXN0aWMsIGB0eF90aW1lX2J1ZGdldF9leGl0YCwgdG8gdHJhY2sgd2hlbiB0aGF0IHRpbWUgYnVkZ2V0IGlzIGV4Y2VlZGVkIGFuZCBhIGBjb25kX3Jlc2NoZWQoKWAgY2FsbCBpbiBgbWx4NWVfZnJlZV90eHFzcV9kZXNjc2AuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBhc3Nlc3MgaXRzIGZ1enppbmcgcG90ZW50aWFsLgoKYG1seDVlX3BvbGxfdHhfY3FgIGlzIGEgaGlnaC1wZXJmb3JtYW5jZSBmdW5jdGlvbiDigJMgYSBob3QgcGF0aCBmb3IgcG9sbGluZyB0aGUgdHJhbnNtaXQgY29tcGxldGlvbiBxdWV1ZSwgYW5kIHRoYXQgbWFrZXMgaXQgaW50ZXJlc3RpbmcuIFRoZSBwYXRjaCBhZGRzIGEgdGltZSBjaGVjayB1c2luZyBgbG9jYWxfY2xvY2soKWAgYW5kIGEgYnJlYWsgY29uZGl0aW9uIGlmIHRoZSBidWRnZXQgaXMgZXhjZWVkZWQsIHdoaWNoIGNvdWxkIGludHJvZHVjZSBzdWJ0bGUgdGltaW5nLXJlbGF0ZWQgYnVncy4gVGhlIGBjb25kX3Jlc2NoZWQoKWAgY2FsbCBpbiBgbWx4NWVfZnJlZV90eHFzcV9kZXNjc2AgaXMgYWxzbyB3b3J0aCBhIGNsb3NlciBsb29rIGZvciBwb3NzaWJsZSByYWNlIGNvbmRpdGlvbnMsIGFsdGhvdWdoIHRoZSBsb2NhdGlvbiBtYWtlcyBpdCBsZXNzIG9mIGEgaG90IHNwb3QuCgpUaGUgbWFpbiBjb25jZXJuIG5vdywgZ2l2ZW4gbXkgZXhwZXJpZW5jZSwgaXMgcmVhY2hhYmlsaXR5LiBNZWxsYW5veCBtbHg1IGlzLCBhcyBJIHJlY2FsbCwgYSBwaHlzaWNhbCBuZXR3b3JrIGNhcmQgZHJpdmVyLiBNeSBwcmltYXJ5IHF1ZXN0aW9uIGlzIGhvdyBhY2Nlc3NpYmxlIGlzIHRoaXMgY29kZSBpbiBhIHR5cGljYWwgZnV6emluZyBzZXR1cD8gSGFyZHdhcmUgcmVxdWlyZW1lbnRzIGFyZSB0aGUgaW1tZWRpYXRlIHByb2JsZW0uIElzIHRoaXMgc29tZXRoaW5nIHRoYXQgY2FuIGJlIGVtdWxhdGVkIG9yIGJ5cGFzc2VkPyBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB3ZSBoYXZlIGFueSBraW5kIG9mIHZEUEEgaW1wbGVtZW50YXRpb24gb3Igc29tZXRoaW5nIHNpbWlsYXIgdGhhdCBtaWdodCBhbGxvdyB1cyB0byBleGVyY2lzZSB0aGlzIGNvZGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gV2l0aG91dCBzb21ldGhpbmcgbGlrZSB0aGF0LCB0aGlzIGlzIGxpa2VseSBhIG5vbi1zdGFydGVyLgoKSSBuZWVkIHRvIGNvbmZpcm0gaWYgb3VyIGZ1enppbmcgZW52aXJvbm1lbnQgaGFzIFBDSSBlbXVsYXRpb24gY2FwYWJsZSBvZiBydW5uaW5nIHRoZSBtbHg1IGRyaXZlci4gUUVNVSBjb21lcyB0byBtaW5kLiBEb2VzIFFFTVUgZXZlbiBlbXVsYXRlIG1seDU/IFRoZSBvYnZpb3VzIGFuc3dlciBpcyBsaWtlbHkgbm8sIGF0IGxlYXN0IG5vdCBpbiBhIHdheSB0aGF0IHN5emthbGxlciB3b3VsZCB0eXBpY2FsbHkgbGV2ZXJhZ2UuIEhvd2V2ZXIsIEkmIzM5O20gbm93IHJlY2FsbGluZyBzb21ldGhpbmcgYWJvdXQgYG1seDVgIHZEUEEuIEkgbmVlZCB0byBkbyBhIGtlcm5lbCBzZWFyY2ggdG8gY29uZmlybSBhbmQgc2VlIGlmIHdlIGNhbiBnZXQgdGhpcyB0byB3b3JrLiBJIGhhdmUgYSBmZWVsaW5nIHRoZSB2RFBBIHBhdGggaXMgd2hlcmUgdGhlIHJlYWwgcG90ZW50aWFsIGxpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDE6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NWVfcG9sbF90eF9jcSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcHRwLmM9MjczPXN0YXRpYyBpbnQgbWx4NWVfcHRwX25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3B0cC5jLTI4Ny1cdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgYy1cdTAwM2VudW1fdGM7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcHRwLmM6Mjg4Olx0XHRcdGJ1c3kgfD0gbWx4NWVfcG9sbF90eF9jcShcdTAwMjZjLVx1MDAzZXB0cHNxW2ldLnR4cXNxLmNxLCBidWRnZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3B0cC5jLTI4OS1cdFx0XHRidXN5IHw9IG1seDVlX3B0cF9wb2xsX3RzX2NxKFx1MDAyNmMtXHUwMDNlcHRwc3FbaV0udHNfY3EsIGJ1ZGdldCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaD0xMTM9bmV0ZGV2X3R4X3QgbWx4NWVfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90eHJ4Lmg6MTE0OmJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaC0xMTUtdm9pZCBtbHg1ZV9mcmVlX3R4cXNxX2Rlc2NzKHN0cnVjdCBtbHg1ZV90eHFzcSAqc3EpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jPTc1Nj12b2lkIG1seDVlX3R4cXNxX3dha2Uoc3RydWN0IG1seDVlX3R4cXNxICpzcSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguYy03NjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguYzo3Njc6Ym9vbCBtbHg1ZV9wb2xsX3R4X2NxKHN0cnVjdCBtbHg1ZV9jcSAqY3EsIGludCBuYXBpX2J1ZGdldClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jLTc2OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4cnguYz0xMjQ9aW50IG1seDVlX25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4cnguYy0xNTAtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBjLVx1MDAzZW51bV90YzsgaSYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHhyeC5jOjE1MTpcdFx0YnVzeSB8PSBtbHg1ZV9wb2xsX3R4X2NxKFx1MDAyNmMtXHUwMDNlc3FbaV0uY3EsIGJ1ZGdldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHhyeC5jLTE1Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHhyeC5jLTE2MC1cdFx0XHRpZiAoc3EpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHhyeC5jOjE2MTpcdFx0XHRcdGJ1c3kgfD0gbWx4NWVfcG9sbF90eF9jcShcdTAwMjZzcS1cdTAwM2VjcSwgYnVkZ2V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eHJ4LmMtMTYyLVx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDE6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjExMgoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDM3OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNbHg1IERyaXZlciBSZWFjaGFiaWxpdHkgQXNzZXNzbWVudCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBtbHg1IGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciBNZWxsYW5veCBDb25uZWN0WC00LzUvNi83IGNhcmRzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGNhbiBzeXprYWxsZXIgZXZlbiAqcmVhY2gqIHRoaXMgdGhpbmc/IE9idmlvdXNseSwgc3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgcGh5c2ljYWwgTWVsbGFub3ggaGFyZHdhcmUsIHNvIHRoYXQmIzM5O3MgYSBub24tc3RhcnRlci4gSSBxdWlja2x5IGNvbnNpZGVyIGEgc29mdHdhcmUgZW11bGF0aW9uIC0gaXMgdGhlcmUgc29tZXRoaW5nIGZvciBtbHg1PyBObywgdGhhdCYjMzk7cyBub3QgcmlnaHQuIEhtbSwgdGhlbiBJIHJlY2FsbCBzeXprYWxsZXIgKmNhbiogZnV6eiBkcml2ZXJzIHRoYXQgY2FuIGJlIGluc3RhbnRpYXRlZCB0aHJvdWdoIHRoaW5ncyBsaWtlIG5ldGxpbmssIGJ1dCBtbHg1IGlzIGEgUENJIGRyaXZlciwgc28gdGhhdCBwcm9iYWJseSBydWxlcyBpdCBvdXQuCgpUaGVuIEkgdGhpbmsgYWJvdXQgYHN5el9tb3VudF9pbWFnZWAgb3IgVVNCIGZ1enppbmcsIGJ1dCBhZ2FpbiwgbWx4NSBpcyBQQ0kuIE9rYXksIGlzIHRoZXJlIGEgUENJIGZ1enplciAqaW4qIHN5emthbGxlcj8gQWgsIHllcywgdGhlcmUgaXMsIHRocm91Z2ggdmZpby9wY2kuIEhvd2V2ZXIsIG15IGV4cGVyaWVuY2UgaXMgdGhhdCB0aGlzIGlzIHVzdWFsbHkgcHJldHR5IGxpbWl0ZWQsIGFuZCB0eXBpY2FsbHkgZG9lc24mIzM5O3QgZ2V0IGRlZXAgaW50byBuZXR3b3JrIGRhdGEgcGF0aHMgdW5sZXNzIGl0JiMzOTtzIGJlZW4gc3BlY2lmaWNhbGx5IGNvbmZpZ3VyZWQuCgpBbHJpZ2h0LCB3aGF0IGFib3V0IHRob3NlIGluc3RydWN0aW9ucz8gSSByZXJlYWQgdGhlbTogJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOiAtIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSYjMzQ7LiBTbywgdGhlIGtleSBpcyBRRU1VLiBDYW4gSSByZWFjaCBtbHg1IGluIFFFTVU/CgpJIGtub3cgUUVNVSBkb2VzbiYjMzk7dCBkaXJlY3RseSAqZW11bGF0ZSogbWx4NS4gSSBxdWlja2x5IGRvdWJsZSBjaGVjaywganVzdCB0byBiZSBzdXJlLi4uIG5vLCBRRU1VIGRvZXNuJiMzOTt0IGhhdmUgYW4gbWx4NSBlbXVsYXRpb24uIFdhaXQsICpkb2VzKiBRRU1VIGVtdWxhdGUgKmFueSogTWVsbGFub3ggaGFyZHdhcmU/IE5vLCB0aGF0JiMzOTtzIG5vdCByaWdodCBlaXRoZXIuIEkgc2VlIGUxMDAwLCBlMTAwMGUsIHJ0bDgxMzksIHBjbmV0LCBuZTJrX3BjaSwgdm14bmV0MywgdmlydGlvLW5ldCwgaWdiLCB0dWxpcC4gT2theSwgdGhhdCYjMzk7cyBkZWZpbml0ZWx5IG5vdCB3aGF0IEkmIzM5O20gbG9va2luZyBmb3IuIFNvIEkgdGhpbmsgSSBuZWVkIHRvIGRpZyBkZWVwZXIuIEkmIzM5O2xsIG5lZWQgdG8gcmVzZWFyY2ggaWYgdGhlcmUgaXMgKmFueSogd2F5IHRvIHJlYWNoIG1seDUsIHVzaW5nIGEgZGlmZmVyZW50IGFuZ2xlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDAxOjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDE6NTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzAxMgoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDQyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqTmF2aWdhdGluZyB0aGUgTWVsbGFub3ggS2NvbmZpZyBMYW5kc2NhcGUqKgoKUmlnaHQsIHNvIEkmIzM5O20gZGl2aW5nIGludG8gdGhlIE1lbGxhbm94IEV0aGVybmV0IGRyaXZlciBjb25maWd1cmF0aW9uLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSB0aGUgS2NvbmZpZyBmaWxlIGZvciB0aGlzIHRoaW5nIGxpdmVzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgaXQmIzM5O3MgbGlrZWx5IHVuZGVyIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9LY29uZmlnYCwgdGhhdCYjMzk7cyB0aGUgb2J2aW91cyB0b3AtbGV2ZWwgbG9jYXRpb24uIEJ1dCwgd2l0aCBNZWxsYW5veCwgeW91IG5ldmVyIGtub3cuLi4gdGhleSBvZnRlbiBoYXZlIHNvbWUgcHJldHR5IGRlZXAgbGF5ZXJzLCBwYXJ0aWN1bGFybHkgd2l0aCB0aGUgbWx4NSBhcmNoaXRlY3R1cmUuIFNvLCBJIG5lZWQgdG8ga2VlcCBpbiBtaW5kIHRoYXQgaXQgKmNvdWxkKiBiZSB0dWNrZWQgYXdheSBkZWVwZXIsIHNwZWNpZmljYWxseSB3aXRoaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnYC4gVGhhdCBsb2NhdGlvbiB3b3VsZCBiZSBmb3IgdGhlIGNvcmUgbWx4NSBmdW5jdGlvbmFsaXR5LiBJIG5lZWQgdG8gY2hlY2sgYm90aCBiZWZvcmUgbWFraW5nIGEgZGVmaW5pdGl2ZSBjaG9pY2Ugb3IgbWFraW5nIGFzc3VtcHRpb25zLiBJdCBkZXBlbmRzIG9uIHdoYXQgc2VjdGlvbiBJIGFtIHRhcmdldGluZyB3aXRoaW4gdGhlIG92ZXJhbGwgZHJpdmVyLiBBbHJpZ2h0LCBsZXQmIzM5O3MgZ28gY2hlY2sgdGhvc2UgbG9jYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDAxOjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNTFg1JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzo2OmNvbmZpZyBNTFg1X0NPUkVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtNZWxsYW5veCA1dGggZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChDb25uZWN0WCBzZXJpZXMpIGNvcmUgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxOTpjb25maWcgTUxYNV9GUEdBXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0yMC1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIElubm92YSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoyOTpjb25maWcgTUxYNV9DT1JFX0VOXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0zMC1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggNXRoIGdlbmVyYXRpb24gbmV0d29yayBhZGFwdGVycyAoQ29ubmVjdFggc2VyaWVzKSBFdGhlcm5ldCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzozODpjb25maWcgTUxYNV9FTl9BUkZTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0zOS1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggTUxYNSBldGhlcm5ldCBhY2NlbGVyYXRlZCByZWNlaXZlIGZsb3cgc3RlZXJpbmcgKEFSRlMpIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy00NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjQ2OmNvbmZpZyBNTFg1X0VOX1JYTkZDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy00Ny1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggTUxYNSBldGhlcm5ldCByeCBuZmMgZmxvdyBzdGVlcmluZyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctNTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzo1Njpjb25maWcgTUxYNV9NUEZTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy01Ny1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIE1MWDUgTVBGUyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctNjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzo2Njpjb25maWcgTUxYNV9FU1dJVENIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy02Ny1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIE1MWDUgU1JJT1YgRS1Td2l0Y2ggc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTc2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6Nzc6Y29uZmlnIE1MWDVfQlJJREdFXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy03OC1cdGJvb2xcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy04Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjg3OmNvbmZpZyBNTFg1X0NMU19BQ1RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTg4LVx0Ym9vbCBcJiMzNDtNTFg1IFRDIGNsYXNzaWZpZXIgYWN0aW9uIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xMDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxMDI6Y29uZmlnIE1MWDVfVENfQ1RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEwMy1cdGJvb2wgXCYjMzQ7TUxYNSBUQyBjb25uZWN0aW9uIHRyYWNraW5nIG9mZmxvYWQgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTExMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjExMjpjb25maWcgTUxYNV9UQ19TQU1QTEVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTExMy1cdGJvb2wgXCYjMzQ7TUxYNSBUQyBzYW1wbGUgb2ZmbG9hZCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTI0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6MTI1OmNvbmZpZyBNTFg1X0NPUkVfRU5fRENCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xMjYtXHRib29sIFwmIzM0O0RhdGEgQ2VudGVyIEJyaWRnaW5nIChEQ0IpIFN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xMzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxMzc6Y29uZmlnIE1MWDVfQ09SRV9JUE9JQlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTM4LVx0Ym9vbCBcJiMzNDtNZWxsYW5veCA1dGggZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChjb25uZWN0WCBzZXJpZXMpIElQb0lCIG9mZmxvYWRzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxNDM6Y29uZmlnIE1MWDVfTUFDU0VDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNDQtXHRib29sIFwmIzM0O0Nvbm5lY3QtWCBzdXBwb3J0IGZvciBNQUNTZWMgb2ZmbG9hZFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE1MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjE1MTpjb25maWcgTUxYNV9FTl9JUFNFQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTUyLVx0Ym9vbCBcJiMzNDtNZWxsYW5veCBUZWNobm9sb2dpZXMgSVBzZWMgQ29ubmVjdC1YIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxNTk6Y29uZmlnIE1MWDVfRU5fVExTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNjAtXHRib29sIFwmIzM0O01lbGxhbm94IFRlY2hub2xvZ2llcyBUTFMgQ29ubmVjdC1YIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxNjc6Y29uZmlnIE1MWDVfU1dfU1RFRVJJTkdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE2OC1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIHNvZnR3YXJlLW1hbmFnZWQgc3RlZXJpbmdcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxNzU6Y29uZmlnIE1MWDVfSFdfU1RFRVJJTkdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE3Ni1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIGhhcmR3YXJlLW1hbmFnZWQgc3RlZXJpbmdcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xODQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxODU6Y29uZmlnIE1MWDVfU0ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE4Ni1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIHN1YmZ1bmN0aW9uIGRldmljZSBzdXBwb3J0IHVzaW5nIGF1eGlsaWFyeSBkZXZpY2VcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxOTM6Y29uZmlnIE1MWDVfU0ZfTUFOQUdFUlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTk0LVx0Ym9vbFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTIwMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjIwMzpjb25maWcgTUxYNV9EUExMXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0yMDQtXHR0cmlzdGF0ZSBcJiMzNDtNZWxsYW5veCA1dGggZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChDb25uZWN0WCBzZXJpZXMpIERQTEwgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTIwOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjIxMDpjb25maWcgTUxYNV9FTl9QU1BcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTIxMS1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIHN1cHBvcnQgZm9yIFBTUCBjcnlwdG9ncmFwaHktb2ZmbG9hZCBhY2NlbGVyYXRpb25cJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwMTo1MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NDA3CgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgdGhlIFJlYWNoYWJpbGl0eSBvZiBNZWxsYW5veCBDb2RlIGluIGEgU3l6a2FsbGVyIENvbnRleHQqKgoKT2theSwgaG9sZCBvbiBhIHNlY29uZC4gU3l6a2FsbGVyLCBhcyBmYXIgYXMgSSBrbm93LCBkb2VzbiYjMzk7dCB0eXBpY2FsbHkgaGF2ZSBNZWxsYW5veCBoYXJkd2FyZSBhcyBhIHRhcmdldC4gVGhhdCYjMzk7cyBhIGtleSByb2FkYmxvY2suIE15IGluaXRpYWwgdGhvdWdodCBpcywgaG93IGNhbiBJIGV2ZW4gKnRyaWdnZXIqIHRoaXMgY29kZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBnaXZlbiB0aGF0IGltbWVkaWF0ZSBoYXJkd2FyZSBhY2Nlc3MgaXMgb3V0PwoKQWxyaWdodCwgdGltZSB0byBwaXZvdC4gSXMgdGhlcmUgKmFueSoga2luZCBvZiB2aXJ0dWFsIGRldmljZSBlbXVsYXRpbmcgTWVsbGFub3ggZnVuY3Rpb25hbGl0eSBJIGNhbiBsZXZlcmFnZT8gSSByZW1lbWJlciBzZWVpbmcgc29tZXRoaW5nIHJlbGF0ZWQgdG8gYHZkcGEvbWx4NWAsIGJ1dCBpc24mIzM5O3QgdGhhdCBhIHZEUEEgaW1wbGVtZW50YXRpb24/IEFuZCBkb2VzbiYjMzk7dCB2RFBBICpyZXF1aXJlKiB1bmRlcmx5aW5nIHJlYWwgaGFyZHdhcmUgKGFjdHVhbCBtbHg1IGhhcmR3YXJlISkgdG8gZnVuY3Rpb24gYXMgdGhlIGJhY2tpbmcgc3RvcmU/CgpMZXQmIzM5O3MgY29uZmlybSB0aGF0IGh5cG90aGVzaXMuIEkgbmVlZCB0byBkaXZlIGludG8gdGhlIGtlcm5lbCBjb25maWcgZmlsZXMgZm9yIG1vcmUgZGVmaW5pdGl2ZSBpbmZvcm1hdGlvbi4gTGV0IG1lIGNoZWNrIGBkcml2ZXJzL3ZkcGEvbWx4NS9LY29uZmlnYC4gVGhhdCBzaG91bGQgY2xlYXIgdGhpbmdzIHVwLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGVyZSBpcyBhIHZpcnR1YWwgZHJpdmVyIGluIHRoZXJlLCBvciBpZiB0aGlzIGlzIGhhcmR3YXJlLWRlcGVuZGVudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDE6NTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTUxYNV9WRFBBJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy92ZHBhL21seDUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDE6NTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTc4MgoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipJbnZlc3RpZ2F0aW5nIGEgUG90ZW50aWFsIERyaXZlciBQYXRoKioKCk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEkgaGF2ZSBhIGh1bmNoLCBhIHBvc3NpYmxlIHBhdGggdG8gaW52ZXN0aWdhdGUgcmVnYXJkaW5nIGEgZHJpdmVyLiBJdCAqZmVlbHMqIGxpa2UgdGhlIGBkcml2ZXJzL3ZkcGEvbWx4NWAgZGlyZWN0b3J5IG1pZ2h0IGFjdHVhbGx5IGV4aXN0LiBJIGNhbiYjMzk7dCBxdWl0ZSByZW1lbWJlciBvZmYgdGhlIHRvcCBvZiBteSBoZWFkLCBzbyB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gY29uZmlybSB0aGlzIHN1c3BpY2lvbi4gSSBuZWVkIHRvIGNoZWNrIGFuZCB2ZXJpZnkgaWYgdGhpcyBkcml2ZXIgcGF0aCBpcyByZWFsIGJlZm9yZSBJIGdvIGFueSBmdXJ0aGVyIGRvd24gdGhpcyBwYXJ0aWN1bGFyIGxpbmUgb2YgcmVhc29uaW5nLiBUaW1lIHRvIGxvb2suCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDAxOjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Y29kZXNlYXJjaC1kaXItaW5kZXg8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0RpciYjMzQ7OiAmIzM0O2RyaXZlcnMvdmRwYS9tbHg1JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IG51bGwsCiAgJiMzNDtTdWJkaXJzJiMzNDs6IFsKICAgICYjMzQ7Y29yZSYjMzQ7LAogICAgJiMzNDtuZXQmIzM0OwogIF0KfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwMTo1MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5OTY0CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogNjIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZz1mYWxzZTogbWx4NSBhbmQgVmlydHVhbGl6ZWQgRW52aXJvbm1lbnRzKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoLCBhbmQgSSBuZWVkIHRvIGRldGVybWluZSBpZiBpdCYjMzk7cyB3b3J0aCBmdXp6aW5nLiBUaGUgcGF0Y2ggdG91Y2hlcyBtbHg1LCB3aGljaCBpcyBhIG5ldHdvcmsgZGV2aWNlIGRyaXZlci4gSSBrbm93IG1seDUgaXMgdGllZCB0byBzcGVjaWZpYyBoYXJkd2FyZSwgcmlnaHQ/IE5vIHNvZnR3YXJlIGVtdWxhdGlvbiB3aXRoaW4gdGhlIGtlcm5lbCwgbWFraW5nIGl0IGEgcGh5c2ljYWwgZGV2aWNlIGRyaXZlci4KClRoZSBzeXprYWxsZXIgUENJIGZ1enplciBpcyB0aGUga2V5LCBidXQgSSBuZWVkIHRvIGNvbnNpZGVyIHRoYXQgJiMzNDtXb3J0aEZ1enppbmc9ZmFsc2UmIzM0OyBzY2VuYXJpbzogaWYgdGhlIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIENhbiB0aGUgUENJIGZ1enplciByZWFjaCBpdD8gSXQgKmNhbiogZnV6eiBQQ0kgZGV2aWNlcy4gSXQgKmNhbiogaW50ZXJhY3QgdXNpbmcgc3l6X3BjaV9kZXZpY2VfYWRkIGFuZCBzaW1pbGFyLCBidXQgZ2VuZXJhbGx5LCB0aGF0JiMzOTtzIHByZXR0eSBzaGFsbG93LiBJdCBkb2VzIFBDSSBjb25maWcgc3BhY2UgYW5kIE1NSU8gcmVhZHMvd3JpdGVzLCBidXQgZ2V0dGluZyBpbnRvIGFueSByZWFsIGZ1bmN0aW9uYWxpdHk/IFRoYXQmIzM5O3MgdGhlIGNoYWxsZW5nZS4KCkxldCYjMzk7cyB0aGluayBhYm91dCBgbWx4NWVfcG9sbF90eF9jcWAuIFJlYWNoaW5nICp0aGF0KiByZXF1aXJlcyBzZXR0aW5nIHVwIGEgbmV0ZGV2LCBicmluZ2luZyBpdCB1cCwgdHJpZ2dlcmluZyBUWC4uLiB3aGljaCB0aGVuIHJlcXVpcmVzIGEgaGFyZHdhcmUgdG8gd29yay4gRE1BLCBpbnRlcnJ1cHRzLi4uIHRoYXQmIzM5O3MgYSAqbG90KiBmb3IgdGhlIGZ1enplciB0byBwZXJmZWN0bHkgZW11bGF0ZS4gSXQgY2FuJiMzOTt0IHBlcmZlY3RseSBlbXVsYXRlIGhhcmR3YXJlIGJlaGF2aW9yLCBzbyB0aGF0JiMzOTtzIG5vdCBsaWtlbHkgdG8gd29yay4gYG5kb19zdGFydF94bWl0YCB3b24mIzM5O3QgZGlyZWN0bHkgdHJpZ2dlciBgbWx4NWVfcG9sbF90eF9jcWAgYmVjYXVzZSBpdCYjMzk7cyBjYWxsZWQgZnJvbSBOQVBJIHBvbGwuCgpFc3NlbnRpYWxseSwgKnVubGVzcyogdGhlIFBDSSBmdXp6ZXIgY2FuIGZsYXdsZXNzbHkgZW11bGF0ZSB0aGUgaGFyZHdhcmUgLSBhbmQgbGV0JiMzOTtzIGZhY2UgaXQsIHRoYXQmIzM5O3Mgbm90IGhhcHBlbmluZyBmb3IgYSBjb21wbGV4IGRyaXZlciBsaWtlIG1seDUgLSB0aGVuIEkgY2FuJiMzOTt0IHJlYWNoIGl0LiBUaGVyZSYjMzk7cyBubyBgbmV0ZGV2c2ltYC1saWtlIHRoaW5nIGZvciBtbHg1LCBub3RoaW5nIHRoYXQgd291bGQgcHJvdmlkZSBhIHNvZnR3YXJlIHJlcHJlc2VudGF0aW9uLgoKU28sIEkmIzM5O20gc3R1Y2sgd2l0aCBhIHBoeXNpY2FsIGhhcmR3YXJlIGRyaXZlciwgbm8gc29mdHdhcmUgZW11bGF0aW9uLiBHaXZlbiB0aGUgcHJvbXB0JiMzOTtzIGNyaXRlcmlhLCB0aGlzIGNvZGUgaXMgKmltcG9zc2libGUqIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhlcmVmb3JlLCAqV29ydGhGdXp6aW5nPWZhbHNlLiogSnVzdCBuZWVkIHRvIGNvbmZpcm0gdGhlcmUgaXNuJiMzOTt0IGFueSBlbXVsYXRpb24gYW55d2hlcmUuLi4ganVzdCB0byBiZSBzYWZlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwMTo1MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1X2NvcmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxOTA2NyBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9MTk9Y29uZmlnIE1MWDVfRlBHQVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTI1LVx0ICBhbmQgYW4gRlBHQSBjaGlwIG9uIG9uZSBib2FyZC4gSWYgeW91IHNlbGVjdCB0aGlzIG9wdGlvbiwgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoyNjpcdCAgbWx4NV9jb3JlIGRyaXZlciB3aWxsIGluY2x1ZGUgdGhlIElubm92YSBGUEdBIGNvcmUgYW5kIGFsbG93IGJ1aWxkaW5nXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0yNy1cdCAgc2FuZGJveC1zcGVjaWZpYyBjbGllbnQgZHJpdmVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU9Nz1zdWJkaXItY2NmbGFncy15ICYjNDM7PSAtSSQoc3JjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTUxYNV9DT1JFKSAmIzQzOz0gbWx4NV9jb3JlLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTMtI1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE0Om1seDVfY29yZS15IDo9XHRtYWluLm8gY21kLm8gZGVidWdmcy5vIGZ3Lm8gZXEubyB1YXIubyBwYWdlYWxsb2MubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE1LVx0XHRoZWFsdGgubyBtY2cubyBjcS5vIGFsbG9jLm8gcG9ydC5vIG1yLm8gcGQubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0yNS0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MjY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfQ09SRV9FTikgJiM0Mzs9IGVuL3JxdC5vIGVuL3Rpci5vIGVuL3Jzcy5vIGVuL3J4X3Jlcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMjctXHRcdGVuL2NoYW5uZWxzLm8gZW5fbWFpbi5vIGVuX2NvbW1vbi5vIGVuX2ZzLm8gZW5fZXRodG9vbC5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTM3LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTozODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FTl9BUkZTKSAgICAgJiM0Mzs9IGVuX2FyZnMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjM5Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX1JYTkZDKSAgICAmIzQzOz0gZW5fZnNfZXRodG9vbC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NDA6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfQ09SRV9FTl9EQ0IpICYjNDM7PSBlbl9kY2JubC5vIGVuL3BvcnRfYnVmZmVyLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo0MTptbHg1X2NvcmUtJChDT05GSUdfUENJX0hZUEVSVl9JTlRFUkZBQ0UpICYjNDM7PSBlbi9odl92aGNhX3N0YXRzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo0MjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FU1dJVENIKSAgICAgJiM0Mzs9IGxhZy9tcC5vIGxhZy9wb3J0X3NlbC5vIGxpYi9nZW5ldmUubyBsaWIvcG9ydF90dW4ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTQzLVx0XHRcdFx0XHRlbl9yZXAubyBlbi9yZXAvYm9uZC5vIGVuL21vZF9oZHIubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTQ0LVx0XHRcdFx0XHRlbi9tYXBwaW5nLm8gbGFnL21wZXN3Lm8gbGFnL3NoYXJlZF9mZGIub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQ1Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0NMU19BQ1QpICAgICAmIzQzOz0gZW5fdGMubyBlbi9yZXAvdGMubyBlbi9yZXAvbmVpZ2gubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTQ2LVx0XHRcdFx0XHRsaWIvZnNfY2hhaW5zLm8gZW4vdGNfdHVuLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NTM6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfQ0xTX0FDVCkgICAgICYjNDM7PSBlbi90Yy9hY3QvYWN0Lm8gZW4vdGMvYWN0L2Ryb3AubyBlbi90Yy9hY3QvdHJhcC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNTQtXHRcdFx0XHRcdGVuL3RjL2FjdC9hY2NlcHQubyBlbi90Yy9hY3QvbWFyay5vIGVuL3RjL2FjdC9nb3RvLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU9NjE9aWZuZXEgKCQoQ09ORklHX01MWDVfVENfQ1QpLClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2MjpcdG1seDVfY29yZS15XHRcdFx0ICAgICAmIzQzOz0gZW4vdGNfY3QubyBlbi90Yy9jdF9mc19kbWZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2MzpcdG1seDVfY29yZS0kKENPTkZJR19NTFg1X1NXX1NURUVSSU5HKSAmIzQzOz0gZW4vdGMvY3RfZnNfc21mcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NjQ6XHRtbHg1X2NvcmUtJChDT05GSUdfTUxYNV9IV19TVEVFUklORykgJiM0Mzs9IGVuL3RjL2N0X2ZzX2htZnMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTY1LWVuZGlmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6Njc6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfVENfU0FNUExFKSAgICYjNDM7PSBlbi90Yy9zYW1wbGUub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTY4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS03MS0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NzI6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRVNXSVRDSCkgICAmIzQzOz0gZXN3aXRjaC5vIGVzd2l0Y2hfb2ZmbG9hZHMubyBlc3dpdGNoX29mZmxvYWRzX3Rlcm10YmwubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTczLVx0XHRcdFx0ICAgICAgZWNwZi5vIHJkbWEubyBlc3cvbGVnYWN5Lm8gZXN3L2Fkal92cG9ydC5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTc1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjc2Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgJiM0Mzs9IGVzdy9hY2wvaGVscGVyLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS03Ny1cdFx0XHRcdCAgICAgIGVzdy9hY2wvZWdyZXNzX2xnY3kubyBlc3cvYWNsL2VncmVzc19vZmxkLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU9ODA9aWZuZXEgKCQoQ09ORklHX01MWDVfRU5fSVBTRUMpLClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo4MTpcdG1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgJiM0Mzs9IGVzdy9pcHNlY19mcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODItZW5kaWZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo4NDptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9CUklER0UpICAgICYjNDM7PSBlc3cvYnJpZGdlLm8gZXN3L2JyaWRnZV9tY2FzdC5vIGVzdy9icmlkZ2VfZGVidWdmcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODUtXHRcdFx0XHQgICAgICBlbi9yZXAvYnJpZGdlLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo4NzptbHg1X2NvcmUtJChDT05GSUdfSFdNT04pICAgICAgICAgICYjNDM7PSBod21vbi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6ODg6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfTVBGUykgICAgICAmIzQzOz0gbGliL21wZnMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTg5LWlmbmVxICgkKENPTkZJR19WWExBTiksKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjkwOlx0bWx4NV9jb3JlLXlcdFx0ICAgJiM0Mzs9IGxpYi92eGxhbi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOTEtZW5kaWZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo5MjptbHg1X2NvcmUtJChDT05GSUdfUFRQXzE1ODhfQ0xPQ0spICYjNDM7PSBsaWIvY2xvY2sub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjkzOm1seDVfY29yZS0kKENPTkZJR19QQ0lfSFlQRVJWX0lOVEVSRkFDRSkgJiM0Mzs9IGxpYi9odi5vIGxpYi9odl92aGNhLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS05NC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOTctI1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjk4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0NPUkVfSVBPSUIpICYjNDM7PSBpcG9pYi9pcG9pYi5vIGlwb2liL2V0aHRvb2wubyBpcG9pYi9pcG9pYl92bGFuLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS05OS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTAyLSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMDM6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRlBHQSkgJiM0Mzs9IGZwZ2EvY21kLm8gZnBnYS9jb3JlLm8gZnBnYS9jb25uLm8gZnBnYS9zZGsub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMDU6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfTUFDU0VDKSAmIzQzOz0gZW5fYWNjZWwvbWFjc2VjLm8gbGliL21hY3NlY19mcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTA2LVx0XHRcdFx0ICAgICAgZW5fYWNjZWwvbWFjc2VjX3N0YXRzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTA4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX0lQU0VDKSAmIzQzOz0gZW5fYWNjZWwvaXBzZWMubyBlbl9hY2NlbC9pcHNlY19yeHR4Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDktXHRcdFx0XHQgICAgIGVuX2FjY2VsL2lwc2VjX3N0YXRzLm8gZW5fYWNjZWwvaXBzZWNfZnMubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTEyOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX1RMUykgJiM0Mzs9IGVuX2FjY2VsL2t0bHNfc3RhdHMubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTExMy1cdFx0XHRcdCAgIGVuX2FjY2VsL2ZzX3RjcC5vIGVuX2FjY2VsL2t0bHMubyBlbl9hY2NlbC9rdGxzX3R4cngubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTE2Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX1BTUCkgJiM0Mzs9IGVuX2FjY2VsL3BzcC5vIGVuX2FjY2VsL3BzcF9yeHR4Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMTctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEyMC0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTIxOm1seDVfY29yZS0kKENPTkZJR19NTFg1X1NXX1NURUVSSU5HKSAmIzQzOz0gc3RlZXJpbmcvc3dzL2RyX2RvbWFpbi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTIyLVx0XHRcdFx0XHRzdGVlcmluZy9zd3MvZHJfdGFibGUubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNDUtI1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE0NjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9IV19TVEVFUklORykgJiM0Mzs9IHN0ZWVyaW5nL2h3cy9jbWQubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE0Ny1cdFx0XHRcdFx0c3RlZXJpbmcvaHdzL2NvbnRleHQubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNjctI1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE2ODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9TRikgJiM0Mzs9IHNmL3ZoY2FfZXZlbnQubyBzZi9kZXYvZGV2Lm8gc2YvZGV2L2RyaXZlci5vIGlycV9hZmZpbml0eS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTY5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNzItI1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE3MzptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9TRl9NQU5BR0VSKSAmIzQzOz0gc2YvY21kLm8gc2YvaHdfdGFibGUubyBzZi9kZXZsaW5rLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNzQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE3Ny0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTc4Om1seDVfY29yZS0kKENPTkZJR19QQ0lFX1RQSCkgJiM0Mzs9IGxpYi9zdC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTc5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDU6I2luY2x1ZGUgXCYjMzQ7bWx4NV9jb3JlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTU4PXN0cnVjdCBtbHg1X2RtYV9wb29sIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy02MS1cdHN0cnVjdCBsaXN0X2hlYWQgcGFnZV9saXN0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NjI6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNjMtXHRpbnQgbm9kZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz03OT1zdHJ1Y3QgbWx4NV9kbWFfcG9vbF9zdGF0cyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo5MDpzdGF0aWMgdm9pZCAqbWx4NV9kbWFfemFsbG9jX2NvaGVyZW50X25vZGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTkxLVx0XHRcdFx0XHQgICBzaXplX3Qgc2l6ZSwgZG1hX2FkZHJfdCAqZG1hX2hhbmRsZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy05My17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo5NDpcdHN0cnVjdCBkZXZpY2UgKmRldmljZSA9IG1seDVfY29yZV9kbWFfZGV2KGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy05NS1cdHN0cnVjdCBtbHg1X3ByaXYgKnByaXYgPSBcdTAwMjZkZXYtXHUwMDNlcHJpdjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz0xMDk9c3RhdGljIHZvaWQgbWx4NV9kbWFfcG9vbF9kZXN0cm95KHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTExNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjExNTpzdGF0aWMgc3RydWN0IG1seDVfZG1hX3Bvb2wgKm1seDVfZG1hX3Bvb2xfY3JlYXRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMTYtXHRcdFx0XHRcdFx0ICBpbnQgbm9kZSwgdTggYmxvY2tfc2hpZnQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9MTMzPW1seDVfZG1hX3Bvb2xfcGFnZV9hbGxvYyhzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxNjM6c3RhdGljIHZvaWQgbWx4NV9kbWFfcG9vbF9wYWdlX2ZyZWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE2NC1cdFx0XHRcdCAgICBzdHJ1Y3QgbWx4NV9kbWFfcG9vbF9wYWdlICpwYWdlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTY1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE2NjpcdGRtYV9mcmVlX2NvaGVyZW50KG1seDVfY29yZV9kbWFfZGV2KGRldiksIFBBR0VfU0laRSwgcGFnZS1cdTAwM2VidWYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNjctXHRcdFx0ICBwYWdlLVx1MDAzZWRtYSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9MjgzPXN0YXRpYyBzdHJ1Y3QgbWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjI4NDptbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHNfY3JlYXRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBub2RlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjg1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz0zMDc9bWx4NV9mcmFnX2J1Zl9kbWFfcG9vbHNfZGVidWdmc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqcHJpdilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMwOC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozMDk6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlsZS1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzEwLVx0aW50IG5vZGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9MzM2PURFRklORV9TSE9XX0FUVFJJQlVURShtbHg1X2ZyYWdfYnVmX2RtYV9wb29sc19kZWJ1Z2ZzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMzNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMzODp2b2lkIG1seDVfZnJhZ19idWZfcG9vbHNfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzM5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozNTk6aW50IG1seDVfZnJhZ19idWZfcG9vbHNfaW5pdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzYwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zODctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozODg6aW50IG1seDVfZnJhZ19idWZfYWxsb2Nfbm9kZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgc2l6ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM4OS1cdFx0XHQgICAgIHN0cnVjdCBtbHg1X2ZyYWdfYnVmICpidWYsIGludCBub2RlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTQyNT1FWFBPUlRfU1lNQk9MX0dQTChtbHg1X2ZyYWdfYnVmX2FsbG9jX25vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDI2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDI3OnZvaWQgbWx4NV9mcmFnX2J1Zl9mcmVlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2ZyYWdfYnVmICpidWYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00Mjgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTQ0NT1FWFBPUlRfU1lNQk9MX0dQTChtbHg1X2ZyYWdfYnVmX2ZyZWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDQ3OnN0YXRpYyBzdHJ1Y3QgbWx4NV9kYl9wZ2RpciAqbWx4NV9hbGxvY19kYl9wZ2RpcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDQ4LVx0XHRcdFx0XHRcdCBpbnQgbm9kZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz00NzY9c3RhdGljIGludCBtbHg1X2FsbG9jX2RiX2Zyb21fcGdkaXIoc3RydWN0IG1seDVfZGJfcGdkaXIgKnBnZGlyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUwMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjUwMTppbnQgbWx4NV9kYl9hbGxvY19ub2RlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2RiICpkYiwgaW50IG5vZGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01MDIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTUyOD1FWFBPUlRfU1lNQk9MX0dQTChtbHg1X2RiX2FsbG9jX25vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTMwOnZvaWQgbWx4NV9kYl9mcmVlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2RiICpkYilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUzMS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTM4LVx0aWYgKGJpdG1hcF9mdWxsKGRiLVx1MDAzZXUucGdkaXItXHUwMDNlYml0bWFwLCBkYl9wZXJfcGFnZSkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjUzOTpcdFx0ZG1hX2ZyZWVfY29oZXJlbnQobWx4NV9jb3JlX2RtYV9kZXYoZGV2KSwgUEFHRV9TSVpFLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTQwLVx0XHRcdFx0ICBkYi1cdTAwM2V1LnBnZGlyLVx1MDAzZWRiX3BhZ2UsIGRiLVx1MDAzZXUucGdkaXItXHUwMDNlZGJfZG1hKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtNDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6NDQ6I2luY2x1ZGUgXCYjMzQ7bWx4NV9jb3JlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy00NS0jaW5jbHVkZSBcJiMzNDtsaWIvZXEuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0yODM9c3RhdGljIHZvaWQgcG9sbF90aW1lb3V0KHN0cnVjdCBtbHg1X2NtZF93b3JrX2VudCAqZW50KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI4NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6Mjg1Olx0c3RydWN0IG1seDVfY29yZV9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihlbnQtXHUwMDNlY21kLCBzdHJ1Y3QgbWx4NV9jb3JlX2RldiwgY21kKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yODYtXHR1NjQgY21kX3RvX21zID0gbWx4NV90b3V0X21zKGRldiwgQ01EKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MzMxPXN0YXRpYyB2b2lkIGR1bXBfYnVmKHZvaWQgKmJ1ZiwgaW50IHNpemUsIGludCBkYXRhX29ubHksIGludCBvZmZzZXQsIGludCBpZHgpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTM0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzozNDc6c3RhdGljIGludCBtbHg1X2ludGVybmFsX2Vycl9yZXRfdmFsdWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IG9wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTM0OC1cdFx0XHRcdCAgICAgICB1MzIgKnN5bmQsIHU4ICpzdGF0dXMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTU0Ni1cdGRlZmF1bHQ6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6NTQ3Olx0XHRtbHg1X2NvcmVfZXJyKGRldiwgXCYjMzQ7VW5rbm93biBGVyBjb21tYW5kICglZClcXG5cJiMzNDssIG9wKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy01NDgtXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz03OTM9c3RhdGljIGludCBjbWRfc3RhdHVzX3RvX2Vycih1OCBzdGF0dXMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTgxNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo4MTc6dm9pZCBtbHg1X2NtZF9vdXRfZXJyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBvcGNvZGUsIHUxNiBvcF9tb2QsIHZvaWQgKm91dClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MTgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODIyOlx0bWx4NV9jb3JlX2Vycl9ybChkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODIzLVx0XHRcdCBcJiMzNDslcygweCV4KSBvcF9tb2QoMHgleCkgZmFpbGVkLCBzdGF0dXMgJXMoMHgleCksIHN5bmRyb21lICgweCV4KSwgZXJyKCVkKVxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9ODI3PUVYUE9SVF9TWU1CT0wobWx4NV9jbWRfb3V0X2Vycik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODI4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjgyOTpzdGF0aWMgdm9pZCBjbWRfc3RhdHVzX3ByaW50KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHZvaWQgKmluLCB2b2lkICpvdXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODMwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjg0NTppbnQgbWx4NV9jbWRfY2hlY2soc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IGVyciwgdm9pZCAqaW4sIHZvaWQgKm91dClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04NDYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz04NzI9RVhQT1JUX1NZTUJPTChtbHg1X2NtZF9jaGVjayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODczLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjg3NDpzdGF0aWMgdm9pZCBkdW1wX2NvbW1hbmQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04NzUtXHRcdFx0IHN0cnVjdCBtbHg1X2NtZF93b3JrX2VudCAqZW50LCBpbnQgaW5wdXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg4NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo4ODY6XHRtbHg1X2NvcmVfZGJnKGRldiwgXCYjMzQ7Y21kWyVkXTogc3RhcnQgZHVtcFxcblwmIzM0OywgZW50LVx1MDAzZWlkeCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODg3Olx0ZGF0YV9vbmx5ID0gISEobWx4NV9jb3JlX2RlYnVnX21hc2sgXHUwMDI2ICgxIFx1MDAzY1x1MDAzYyBNTFg1X0NNRF9EQVRBKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODg4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg4OS1cdGlmIChkYXRhX29ubHkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODkwOlx0XHRtbHg1X2NvcmVfZGJnX21hc2soZGV2LCAxIFx1MDAzY1x1MDAzYyBNTFg1X0NNRF9EQVRBLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg5MS1cdFx0XHRcdCAgIFwmIzM0O2NtZFslZF06IGR1bXAgY29tbWFuZCBkYXRhICVzKDB4JXgpICVzXFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04OTQtXHRlbHNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODk1Olx0XHRtbHg1X2NvcmVfZGJnKGRldiwgXCYjMzQ7Y21kWyVkXTogZHVtcCBjb21tYW5kICVzKDB4JXgpICVzXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg5Ni1cdFx0XHQgICAgICBlbnQtXHUwMDNlaWR4LCBtbHg1X2NvbW1hbmRfc3RyKG9wKSwgb3AsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTkxNy1cdFx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5MTg6XHRcdFx0bWx4NV9jb3JlX2RiZyhkZXYsIFwmIzM0O2NtZFslZF06IGNvbW1hbmQgYmxvY2s6XFxuXCYjMzQ7LCBlbnQtXHUwMDNlaWR4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05MTktXHRcdFx0ZHVtcF9idWYobmV4dC1cdTAwM2VidWYsIHNpemVvZihzdHJ1Y3QgbWx4NV9jbWRfcHJvdF9ibG9jayksIDAsIG9mZnNldCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTI4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjkyOTpcdG1seDVfY29yZV9kYmcoZGV2LCBcJiMzNDtjbWRbJWRdOiBlbmQgZHVtcFxcblwmIzM0OywgZW50LVx1MDAzZWlkeCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTMwLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05MzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6OTMyOnN0YXRpYyB2b2lkIG1seDVfY21kX2NvbXBfaGFuZGxlcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1NjQgdmVjLCBib29sIGZvcmNlZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTMzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTkzND1zdGF0aWMgdm9pZCBjYl90aW1lb3V0X2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05MzktXHRcdFx0XHRcdFx0ICAgICBjYl90aW1lb3V0X3dvcmspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk0MDpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBjb250YWluZXJfb2YoZW50LVx1MDAzZWNtZCwgc3RydWN0IG1seDVfY29yZV9kZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTQxLVx0XHRcdFx0XHRcdCBjbWQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NDYtXHRpZiAoIXRlc3RfYml0KE1MWDVfQ01EX0VOVF9TVEFURV9QRU5ESU5HX0NPTVAsIFx1MDAyNmVudC1cdTAwM2VzdGF0ZSkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5NDc6XHRcdG1seDVfY29yZV93YXJuKGRldiwgXCYjMzQ7Y21kWyVkXTogJXMoMHgleCkgQXN5bmMsIHJlY292ZXJlZCBhZnRlciB0aW1lb3V0XFxuXCYjMzQ7LCBlbnQtXHUwMDNlaWR4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk0OC1cdFx0XHQgICAgICAgbWx4NV9jb21tYW5kX3N0cihlbnQtXHUwMDNlb3ApLCBlbnQtXHUwMDNlb3ApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NTItXHRlbnQtXHUwMDNlcmV0ID0gLUVUSU1FRE9VVDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5NTM6XHRtbHg1X2NvcmVfd2FybihkZXYsIFwmIzM0O2NtZFslZF06ICVzKDB4JXgpIEFzeW5jLCB0aW1lb3V0LiBXaWxsIGNhdXNlIGEgbGVhayBvZiBhIGNvbW1hbmQgcmVzb3VyY2VcXG5cJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTU0LVx0XHQgICAgICAgZW50LVx1MDAzZWlkeCwgbWx4NV9jb21tYW5kX3N0cihlbnQtXHUwMDNlb3ApLCBlbnQtXHUwMDNlb3ApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6OTYxOnN0YXRpYyB2b2lkIGZyZWVfbXNnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1zZyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6OTYyOnN0YXRpYyB2b2lkIG1seDVfZnJlZV9jbWRfbXNnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTYzLVx0XHRcdCAgICAgIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1zZyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTk2NT1zdGF0aWMgYm9vbCBvcGNvZGVfYWxsb3dlZChzdHJ1Y3QgbWx4NV9jbWQgKmNtZCwgdTE2IG9wY29kZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk3Mzpib29sIG1seDVfY21kX2lzX2Rvd24oc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NzQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz05ODA9c3RhdGljIHZvaWQgY21kX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk4NS1cdHN0cnVjdCBtbHg1X2NtZF9sYXlvdXQgKmxheTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5ODY6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk4Ny1cdHVuc2lnbmVkIGxvbmcgdGltZW91dDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk5NDpcdGRldiA9IGNvbnRhaW5lcl9vZihjbWQsIHN0cnVjdCBtbHg1X2NvcmVfZGV2LCBjbWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk5NS1cdHRpbWVvdXQgPSBtc2Vjc190b19qaWZmaWVzKG1seDVfdG91dF9tcyhkZXYsIENNRCkpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05OTgtXHRcdGlmIChkb3duX3RpbWVvdXQoXHUwMDI2Y21kLVx1MDAzZXZhcnMuc2VtLCB0aW1lb3V0KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk5OTpcdFx0XHRtbHg1X2NvcmVfd2FybihkZXYsIFwmIzM0OyVzKDB4JXgpIHRpbWVkIG91dCB3aGlsZSB3YWl0aW5nIGZvciBhIHNsb3QuXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEwMDAtXHRcdFx0XHQgICAgICAgbWx4NV9jb21tYW5kX3N0cihlbnQtXHUwMDNlb3ApLCBlbnQtXHUwMDNlb3ApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMDE1LVx0XHRpZiAoYWxsb2NfcmV0IFx1MDAzYyAwKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTAxNjpcdFx0XHRtbHg1X2NvcmVfZXJyX3JsKGRldiwgXCYjMzQ7ZmFpbGVkIHRvIGFsbG9jYXRlIGNvbW1hbmQgZW50cnlcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEwMTctXHRcdFx0aWYgKGVudC1cdTAwM2VjYWxsYmFjaykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMDcyLVx0LyogcmluZyBkb29yYmVsbCBhZnRlciB0aGUgZGVzY3JpcHRvciBpcyB2YWxpZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjEwNzM6XHRtbHg1X2NvcmVfZGJnKGRldiwgXCYjMzQ7d3JpdGluZyAweCV4IHRvIGNvbW1hbmQgZG9vcmJlbGxcXG5cJiMzNDssIDEgXHUwMDNjXHUwMDNjIGVudC1cdTAwM2VpZHgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEwNzQtXHR3bWIoKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTE0MD1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE0My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMTQ0OnN0YXRpYyB2b2lkIHdhaXRfZnVuY19oYW5kbGVfZXhlY190aW1lb3V0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE0NS1cdFx0XHRcdFx0ICBzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE1Ni1cdGlmICh3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoXHUwMDI2ZW50LVx1MDAzZWRvbmUsIHRpbWVvdXQpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTE1NzpcdFx0bWx4NV9jb3JlX3dhcm4oZGV2LCBcJiMzNDtjbWRbJWRdOiAlcygweCV4KSByZWNvdmVyZWQgYWZ0ZXIgdGltZW91dFxcblwmIzM0OywgZW50LVx1MDAzZWlkeCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTU4LVx0XHRcdCAgICAgICBtbHg1X2NvbW1hbmRfc3RyKGVudC1cdTAwM2VvcCksIGVudC1cdTAwM2VvcCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExNjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTE2MjpcdG1seDVfY29yZV93YXJuKGRldiwgXCYjMzQ7Y21kWyVkXTogJXMoMHgleCkgTm8gZG9uZSBjb21wbGV0aW9uXFxuXCYjMzQ7LCBlbnQtXHUwMDNlaWR4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExNjMtXHRcdCAgICAgICBtbHg1X2NvbW1hbmRfc3RyKGVudC1cdTAwM2VvcCksIGVudC1cdTAwM2VvcCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExNjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTE2OTpzdGF0aWMgaW50IHdhaXRfZnVuYyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTcwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE5MS1cdGlmIChlcnIgPT0gLUVUSU1FRE9VVCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjExOTI6XHRcdG1seDVfY29yZV93YXJuKGRldiwgXCYjMzQ7JXMoMHgleCkgdGltZW91dC4gV2lsbCBjYXVzZSBhIGxlYWsgb2YgYSBjb21tYW5kIHJlc291cmNlXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExOTMtXHRcdFx0ICAgICAgIG1seDVfY29tbWFuZF9zdHIoZW50LVx1MDAzZW9wKSwgZW50LVx1MDAzZW9wKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTk0LVx0fSBlbHNlIGlmIChlcnIgPT0gLUVDQU5DRUxFRCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjExOTU6XHRcdG1seDVfY29yZV93YXJuKGRldiwgXCYjMzQ7JXMoMHgleCkgY2FuY2VsZWQgb24gb3V0IG9mIHF1ZXVlIHRpbWVvdXQuXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExOTYtXHRcdFx0ICAgICAgIG1seDVfY29tbWFuZF9zdHIoZW50LVx1MDAzZW9wKSwgZW50LVx1MDAzZW9wKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTk3LVx0fSBlbHNlIGlmIChlcnIgPT0gLUVCVVNZKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTE5ODpcdFx0bWx4NV9jb3JlX3dhcm4oZGV2LCBcJiMzNDslcygweCV4KSB0aW1lb3V0IHdoaWxlIHdhaXRpbmcgZm9yIGNvbW1hbmQgc2VtYXBob3JlLlxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTk5LVx0XHRcdCAgICAgICBtbHg1X2NvbW1hbmRfc3RyKGVudC1cdTAwM2VvcCksIGVudC1cdTAwM2VvcCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTIwMC1cdH1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMjAxOlx0bWx4NV9jb3JlX2RiZyhkZXYsIFwmIzM0O2VyciAlZCwgZGVsaXZlcnkgc3RhdHVzICVzKCVkKVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjAyLVx0XHQgICAgICBlcnIsIGRlbGl2X3N0YXR1c190b19zdHIoZW50LVx1MDAzZXN0YXR1cyksIGVudC1cdTAwM2VzdGF0dXMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjE1LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjEyMTY6c3RhdGljIGJvb2wgbWx4NV9jbWRfYWxsX3N0YWxsZWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjE3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTI1OC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMjU5OnN0YXRpYyBpbnQgbWx4NV9jbWRfaW52b2tlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZF9tc2cgKmluLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyNjAtXHRcdFx0ICAgc3RydWN0IG1seDVfY21kX21zZyAqb3V0LCB2b2lkICp1b3V0LCBpbnQgdW91dF9zaXplLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjc1LVx0aWYgKCFwYWdlX3F1ZXVlIFx1MDAyNlx1MDAyNiBtbHg1X2NtZF9hbGxfc3RhbGxlZChkZXYpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTI3NjpcdFx0bWx4NV9jb3JlX2Vycl9ybChkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTI3Ny1cdFx0XHRcdCBcJiMzNDtBbGwgQ01EIHNsb3RzIGFyZSBzdGFsbGVkLCBhYm9ydGluZyBjb21tYW5kXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTMwNi1cdH0gZWxzZSBpZiAoIXF1ZXVlX3dvcmsoY21kLVx1MDAzZXdxLCBcdTAwMjZlbnQtXHUwMDNld29yaykpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMzA3Olx0XHRtbHg1X2NvcmVfd2FybihkZXYsIFwmIzM0O2ZhaWxlZCB0byBxdWV1ZSB3b3JrXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMzA4LVx0XHRlcnIgPSAtRUFMUkVBRFk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEzMjYtXHR9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTMyNzpcdG1seDVfY29yZV9kYmdfbWFzayhkZXYsIDEgXHUwMDNjXHUwMDNjIE1MWDVfQ01EX1RJTUUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTMyOC1cdFx0XHQgICBcJiMzNDtmdyBleGVjIHRpbWUgZm9yICVzIGlzICVsbGQgbnNlY1xcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTMzNz1zdGF0aWMgc3NpemVfdCBkYmdfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICpidWYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEzMzkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjEzNDA6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTM0MS1cdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXHUwMDI2ZGV2LVx1MDAzZWNtZC5kYmc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE0MDQ9c3RhdGljIGludCBtbHg1X2NvcHlfZnJvbV9tc2codm9pZCAqdG8sIHN0cnVjdCBtbHg1X2NtZF9tc2cgKmZyb20sIGludCBzaXplKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE0Mzc6c3RhdGljIHN0cnVjdCBtbHg1X2NtZF9tYWlsYm94ICphbGxvY19jbWRfYm94KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQzOC1cdFx0XHRcdFx0ICAgICAgZ2ZwX3QgZmxhZ3MpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0NDgtXHRpZiAoIW1haWxib3gtXHUwMDNlYnVmKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTQ0OTpcdFx0bWx4NV9jb3JlX2RiZyhkZXYsIFwmIzM0O2ZhaWxlZCBhbGxvY2F0aW9uXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDUwLVx0XHRrZnJlZShtYWlsYm94KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQ1Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNDU4OnN0YXRpYyB2b2lkIGZyZWVfY21kX2JveChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0NTktXHRcdFx0IHN0cnVjdCBtbHg1X2NtZF9tYWlsYm94ICptYWlsYm94KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE0NjU6c3RhdGljIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1seDVfYWxsb2NfY21kX21zZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0NjYtXHRcdFx0XHRcdCAgICAgICBnZnBfdCBmbGFncywgaW50IHNpemUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0ODUtXHRcdGlmIChJU19FUlIodG1wKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE0ODY6XHRcdFx0bWx4NV9jb3JlX3dhcm4oZGV2LCBcJiMzNDtmYWlsZWQgYWxsb2NhdGluZyBibG9ja1xcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQ4Ny1cdFx0XHRlcnIgPSBQVFJfRVJSKHRtcCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1MTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTUxMjpzdGF0aWMgdm9pZCBtbHg1X2ZyZWVfY21kX21zZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1MTMtXHRcdFx0ICAgICAgc3RydWN0IG1seDVfY21kX21zZyAqbXNnKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNTI2PXN0YXRpYyBzc2l6ZV90IGRhdGFfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICpidWYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1Mjgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE1Mjk6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTUzMC1cdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXHUwMDI2ZGV2LVx1MDAzZWNtZC5kYmc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1NTA9c3RhdGljIHNzaXplX3QgZGF0YV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1NTIte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE1NTM6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU1NC1cdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXHUwMDI2ZGV2LVx1MDAzZWNtZC5kYmc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1NzA9c3RhdGljIHNzaXplX3Qgb3V0bGVuX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU3Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU3MzpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBmaWxwLVx1MDAzZXByaXZhdGVfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTc0LVx0c3RydWN0IG1seDVfY21kX2RlYnVnICpkYmcgPSBcdTAwMjZkZXYtXHUwMDNlY21kLmRiZztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTU4NT1zdGF0aWMgc3NpemVfdCBvdXRsZW5fd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICpidWYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1ODcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE1ODg6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU4OS1cdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXHUwMDI2ZGV2LVx1MDAzZWNtZC5kYmc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE2MjE9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgb2xmb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2Mjg6c3RhdGljIHZvaWQgc2V0X3dxbmFtZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2Mjkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjM1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2MzY6c3RhdGljIHZvaWQgY2xlYW5fZGVidWdfZmlsZXMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjM3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY0NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjQ2OnN0YXRpYyB2b2lkIGNyZWF0ZV9kZWJ1Z2ZzX2ZpbGVzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY0Ny17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTY1OTp2b2lkIG1seDVfY21kX2FsbG93ZWRfb3Bjb2RlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBvcGNvZGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY2MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTY3NTpzdGF0aWMgdm9pZCBtbHg1X2NtZF9jaGFuZ2VfbW9kKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBtb2RlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NzYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNjkxPXN0YXRpYyBpbnQgY21kX2NvbXBfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY5My17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTY5NDpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY5NS1cdHN0cnVjdCBtbHg1X2NtZCAqY21kO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjk4LVx0Y21kID0gbWx4NV9uYl9jb2YobmIsIHN0cnVjdCBtbHg1X2NtZCwgbmIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2OTk6XHRkZXYgPSBjb250YWluZXJfb2YoY21kLCBzdHJ1Y3QgbWx4NV9jb3JlX2RldiwgY21kKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzAwLVx0ZXFlID0gZGF0YTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcwOC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTcwOTp2b2lkIG1seDVfY21kX3VzZV9ldmVudHMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzEwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcxNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzE2OnZvaWQgbWx4NV9jbWRfdXNlX3BvbGxpbmcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzE3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzIyOnN0YXRpYyB2b2lkIGZyZWVfbXNnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1zZylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzIzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTczNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzM1OnN0YXRpYyB2b2lkIG1seDVfY21kX2NvbXBfaGFuZGxlcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1NjQgdmVjLCBib29sIGZvcmNlZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzM2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTc2NS1cdFx0XHRcdGlmICghZm9yY2VkKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTc2NjpcdFx0XHRcdFx0bWx4NV9jb3JlX2VycihkZXYsIFwmIzM0O0NvbW1hbmQgY29tcGxldGlvbiBhcnJpdmVkIGFmdGVyIHRpbWVvdXQgKGVudHJ5IGlkeCA9ICVkKS5cXG5cJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTc2Ny1cdFx0XHRcdFx0XHQgICAgICBlbnQtXHUwMDNlaWR4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTc5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzk0Olx0XHRcdFx0bWx4NV9jb3JlX2RiZyhkZXYsIFwmIzM0O2NvbW1hbmQgY29tcGxldGVkLiByZXQgMHgleCwgZGVsaXZlcnkgc3RhdHVzICVzKDB4JXgpXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE3OTUtXHRcdFx0XHRcdCAgICAgIGVudC1cdTAwM2VyZXQsIGRlbGl2X3N0YXR1c190b19zdHIoZW50LVx1MDAzZXN0YXR1cyksIGVudC1cdTAwM2VzdGF0dXMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE4Mzk6c3RhdGljIHZvaWQgbWx4NV9jbWRfdHJpZ2dlcl9jb21wbGV0aW9ucyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE4NDAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODYzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE4NjQ6XHRtbHg1X2NvcmVfZGJnKGRldiwgXCYjMzQ7dmVjdG9yIDB4JWxseFxcblwmIzM0OywgdmVjdG9yKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODY1LVx0bWx4NV9jbWRfY29tcF9oYW5kbGVyKGRldiwgdmVjdG9yLCB0cnVlKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTg3My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxODc0OnZvaWQgbWx4NV9jbWRfZmx1c2goc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODc1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTg5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxODk3OnN0YXRpYyBzdHJ1Y3QgbWx4NV9jbWRfbXNnICphbGxvY19tc2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IGluX3NpemUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTg5OC1cdFx0XHRcdCAgICAgIGdmcF90IGdmcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTkzNT1zdGF0aWMgaW50IGlzX21hbmFnZV9wYWdlcyh2b2lkICppbilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTkzOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxOTQwOnN0YXRpYyBib29sIG1seDVfaGFzX3ByaXZpbGVnZWRfdWlkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTk0MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE5NDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTk0NTpzdGF0aWMgYm9vbCBtbHg1X2NtZF9pc19wcml2aWxlZ2VkX3VpZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE5NDYtXHRcdFx0XHQgICAgICAgdTE2IHVpZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTk1NC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxOTU1OnN0YXRpYyBpbnQgY21kX2V4ZWMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdm9pZCAqaW4sIGludCBpbl9zaXplLCB2b2lkICpvdXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTk1Ni1cdFx0ICAgIGludCBvdXRfc2l6ZSwgbWx4NV9jbWRfY2JrX3QgY2FsbGJhY2ssIHZvaWQgKmNvbnRleHQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE5OTktXHRpZiAoZXJyKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjAwMDpcdFx0bWx4NV9jb3JlX3dhcm4oZGV2LCBcJiMzNDtlcnIgJWRcXG5cJiMzNDssIGVycik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjAwMS1cdFx0Z290byBvdXRfaW47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIwMzUtXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDE6NTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjYwODEKCQkJCQkJCW91dHB1dDogMTAxCgkJCQkJCQl0aG91Z2h0czogNzQ5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1MWDUgUGF0Y2gmIzM5O3MgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIGBDT05GSUdfTUxYNV9DT1JFYCDigJMgdGhhdCYjMzk7cyB0aGUgY29yZSBkcml2ZXIsIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsICYjMzQ7Q2FuIHN5emthbGxlciBldmVuIHRvdWNoIHRoaXMgY29kZT8mIzM0OyBJIG5lZWQgdG8gdmVyaWZ5IGlmIHN5emthbGxlciBpcyBhY3RpdmVseSBmdXp6aW5nIG1seDUuIEkga25vdyBpdCBoYXMgYSBgc3l6X3BjaV9kZXZpY2VfYWRkYCBjYWxsLCB3aGljaCBpcyBhIHN0YXJ0aW5nIHBvaW50IGZvciBQQ0kgZGV2aWNlIGludGVyYWN0aW9uLCBidXQgaXQmIzM5O3Mgbm90IGEgZ3VhcmFudGVlIHRvIHJlYWNoIGRlZXAgaW50byBuZXR3b3JrIGRyaXZlcnMgdW5sZXNzIHRoZXJlJiMzOTtzIGRlZGljYXRlZCBzdXBwb3J0LiAKCkhvbGQgb24sIG1heWJlIHRoZSBwYXRjaCBpdHNlbGYgaXMganVzdCBhIGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiB0aGUgZHJpdmVyPyBJIHNob3VsZCByZS1yZWFkIHRob3NlIGluc3RydWN0aW9uczogJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zLi4uIGNvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuLi4mIzM0OwoKR2l2ZW4gdGhhdCBtbHg1IGlzIHRpZWQgdG8gcGh5c2ljYWwgaGFyZHdhcmUsIE1lbGxhbm94IENvbm5lY3RYIHNwZWNpZmljYWxseSwgYW5kIHRoZXJlJiMzOTtzIG5vIG5hdGl2ZSBzb2Z0d2FyZSBlbXVsYXRpb24gb2YgaXQgaW4gUUVNVSBvciB0aGUga2VybmVsICh1bmxpa2UsIHNheSwgYSB2aXJ0dWFsIFVTQiBnYWRnZXQgb3IgbWFjODAyMTFfaHdzaW0pLCB0aGUgY29kZSBwYXRocyBhZGRyZXNzZWQgYnkgdGhpcyBwYXRjaCBhcmUgZGVmaW5pdGl2ZWx5IGluYWNjZXNzaWJsZSBpbiBhIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnQuCgpMZXQgbWUganVzdCBjaGVjayBmb3IgYWx0ZXJuYXRpdmVzIGp1c3QgaW4gY2FzZS4uLiBJcyB0aGVyZSBhIHZEUEEgcGF0aD8gQWgsIGB2ZHBhL21seDVgICpyZXF1aXJlcyogdGhlIHBoeXNpY2FsIG1seDUgZGV2aWNlLiBXaGF0IGFib3V0IG5ldGRldnNpbT8gTm8sIGl0IGhhbmRsZXMgc29tZSBvZmZsb2FkcyBidXQgZG9lc24mIzM5O3QgYWN0dWFsbHkgdXNlIG1seDUgY29kZS4gTW9jayBkcml2ZXJzPyBObyBkaWNlLgoKQWxyaWdodCwgYmFjayB0byB0aGUgcGF0Y2guIEl0JiMzOTtzIG1vZGlmeWluZyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmNgIGFuZCBgZW5fc3RhdHMuY2AsIHNwZWNpZmljYWxseSBgbWx4NWVfcG9sbF90eF9jcWAuIFRoaXMgaXMgdW5lcXVpdm9jYWxseSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgY29kZSwgbm8gaWZzLCBhbmRzLCBvciBidXRzLiBTaW5jZSB0aGVyZSYjMzk7cyBubyBzb2Z0d2FyZSBlbXVsYXRpb24sIHJlYWNoaW5nIHRoaXMgY29kZSBpbiBRRU1VIG9yIHNpbWlsYXIgZW52aXJvbm1lbnRzIGlzIGEgZGVhZCBlbmQuCgpUaHVzLCBJJiMzOTttIHNldHRpbmcgYFdvcnRoRnV6emluZz1mYWxzZWAgYW5kIGFkZGluZyB0aGUgZm9sbG93aW5nIHJlYXNvbmluZzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IG1seDUgZXRoZXJuZXQgZHJpdmVyIChgbWx4NWVfcG9sbF90eF9jcWApLiBUaGlzIGlzIGEgcGh5c2ljYWwgaGFyZHdhcmUgZHJpdmVyIGZvciBNZWxsYW5veCBDb25uZWN0WCBhZGFwdGVycyBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgaXQgaW4gUUVNVSBvciB0aGUga2VybmVsLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLiYjMzQ7CgpCdXQganVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIGxldCYjMzk7cyBleHBsb3JlIGlmIHN5emthbGxlciBjYW4gYmxpbmRseSBwcm9iZSB0aGUgZHJpdmVyLiAgSXQgKm1pZ2h0KiBiZSBhYmxlIHRvIHJlYWNoIHNvbWUgY29kZSBieSB1c2luZyBgc3l6X3BjaV9kZXZpY2VfYWRkYCBhbmQgbWFwcGluZyBtZW1vcnkgcGx1cyByZXNwb25kaW5nIHRvIE1NSU8gcmVhZHMsIGhvd2V2ZXIgcmVhY2hpbmcgYG1seDVlX3BvbGxfdHhfY3FgIG5lZWRzIGEgZnVsbHkgaW5pdGlhbGl6ZWQgZGV2aWNlLCBuZXRkZXYgcmVnaXN0cmF0aW9uLCBicmluZ2luZyBpdCB1cCwgYW5kIGEgVFggaW50ZXJydXB0LiBUaGF0JiMzOTtzIHByYWN0aWNhbGx5IGltcG9zc2libGUgZm9yIGEgYmxpbmQgZnV6emVyIHdpdGhvdXQgc3BlY2lmaWMgZW11bGF0aW9uLiBQbHVzIHRoZSBpbnN0cnVjdGlvbnMgc2F5OiAmIzM0O0NvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgKmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUqLiYjMzQ7IFNvLCBteSBjb25jbHVzaW9uIGhvbGRzLgoKSSYjMzk7bSBjYWxsaW5nIGBzZXQtcmVzdWx0c2Agd2l0aCBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDE6NTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggbWx4NSBldGhlcm5ldCBkcml2ZXIgKG1seDVlX3BvbGxfdHhfY3EpLiBUaGlzIGlzIGEgcGh5c2ljYWwgaGFyZHdhcmUgZHJpdmVyIGZvciBNZWxsYW5veCBDb25uZWN0WCBhZGFwdGVycyBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgaXQgaW4gUUVNVSBvciB0aGUga2VybmVsLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IG1seDUgZXRoZXJuZXQgZHJpdmVyIChtbHg1ZV9wb2xsX3R4X2NxKS4gVGhpcyBpcyBhIHBoeXNpY2FsIGhhcmR3YXJlIGRyaXZlciBmb3IgTWVsbGFub3ggQ29ubmVjdFggYWRhcHRlcnMgYW5kIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIGl0IGluIFFFTVUgb3IgdGhlIGtlcm5lbC4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwMTo1MDo0MC41MzUwNzY4MDhaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTIxODUwOTA5NDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBtbHg1IGV0aGVybmV0IGRyaXZlciAobWx4NWVfcG9sbF90eF9jcSkuIFRoaXMgaXMgYSBwaHlzaWNhbCBoYXJkd2FyZSBkcml2ZXIgZm9yIE1lbGxhbm94IENvbm5lY3RYIGFkYXB0ZXJzIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gYXZhaWxhYmxlIGZvciBpdCBpbiBRRU1VIG9yIHRoZSBrZXJuZWwuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwMTo1MDo0MC41MzUwODE5ODhaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwMDAwNDI2OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGUwOTUwNGJjMDg2OWQzMDJlNzBkMTA5ZTVmZTZjYTIxMWRkMzI5MDhcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMyAwMTo1MDozOSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jXFxuaW5kZXggN2YzMzI2MWJhNjU1M2IuLmI5NDAyODBhZjE5ZGJmIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmNcXG5AQCAtMTcxLDYgKzE3MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHN3X3N0YXRzX2Rlc2NbXSA9IHtcXG4gXFx0eyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF9jcWVzKSB9LFxcbiBcXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X3F1ZXVlX3dha2UpIH0sXFxuIFxcdHsgTUxYNUVfREVDTEFSRV9TVEFUKHN0cnVjdCBtbHg1ZV9zd19zdGF0cywgdHhfY3FlX2VycikgfSxcXG4rXFx0eyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF90aW1lX2J1ZGdldF9leGl0KSB9LFxcbiBcXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X3hkcF94bWl0KSB9LFxcbiBcXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X3hkcF9tcHdxZSkgfSxcXG4gXFx0eyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF94ZHBfaW5sbncpIH0sXFxuQEAgLTQyNiw2ICs0MjcsNyBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9zdGF0c19ncnBfc3dfdXBkYXRlX3N0YXRzX3NxKHN0cnVjdCBtbHg1ZV9zd19zdGF0cyAqcyxcXG4gXFx0cy1cXHUwMDNldHhfcXVldWVfd2FrZSAgICAgICAgICAgICs9IHNxX3N0YXRzLVxcdTAwM2V3YWtlO1xcbiBcXHRzLVxcdTAwM2V0eF9xdWV1ZV9kcm9wcGVkICAgICAgICAgKz0gc3Ffc3RhdHMtXFx1MDAzZWRyb3BwZWQ7XFxuIFxcdHMtXFx1MDAzZXR4X2NxZV9lcnIgICAgICAgICAgICAgICArPSBzcV9zdGF0cy1cXHUwMDNlY3FlX2VycjtcXG4rXFx0cy1cXHUwMDNldHhfdGltZV9idWRnZXRfZXhpdCAgICAgICs9IHNxX3N0YXRzLVxcdTAwM2V0aW1lX2J1ZGdldF9leGl0O1xcbiBcXHRzLVxcdTAwM2V0eF9yZWNvdmVyICAgICAgICAgICAgICAgKz0gc3Ffc3RhdHMtXFx1MDAzZXJlY292ZXI7XFxuIFxcdHMtXFx1MDAzZXR4X3htaXRfbW9yZSAgICAgICAgICAgICArPSBzcV9zdGF0cy1cXHUwMDNleG1pdF9tb3JlO1xcbiBcXHRzLVxcdTAwM2V0eF9jc3VtX3BhcnRpYWxfaW5uZXIgICAgKz0gc3Ffc3RhdHMtXFx1MDAzZWNzdW1fcGFydGlhbF9pbm5lcjtcXG5AQCAtMjMyMyw2ICsyMzI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjb3VudGVyX2Rlc2Mgc3Ffc3RhdHNfZGVzY1tdID0ge1xcbiBcXHR7IE1MWDVFX0RFQ0xBUkVfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZXMpIH0sXFxuIFxcdHsgTUxYNUVfREVDTEFSRV9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgd2FrZSkgfSxcXG4gXFx0eyBNTFg1RV9ERUNMQVJFX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCBjcWVfZXJyKSB9LFxcbitcXHR7IE1MWDVFX0RFQ0xBUkVfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIHRpbWVfYnVkZ2V0X2V4aXQpIH0sXFxuIH07XFxuIFxcbiBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBycV94ZHBzcV9zdGF0c19kZXNjW10gPSB7XFxuQEAgLTIzOTksNiArMjQwMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHB0cF9zcV9zdGF0c19kZXNjW10gPSB7XFxuIFxcdHsgTUxYNUVfREVDTEFSRV9QVFBfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZXMpIH0sXFxuIFxcdHsgTUxYNUVfREVDTEFSRV9QVFBfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIHdha2UpIH0sXFxuIFxcdHsgTUxYNUVfREVDTEFSRV9QVFBfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZV9lcnIpIH0sXFxuK1xcdHsgTUxYNUVfREVDTEFSRV9QVFBfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIHRpbWVfYnVkZ2V0X2V4aXQpIH0sXFxuIH07XFxuIFxcbiBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBwdHBfY2hfc3RhdHNfZGVzY1tdID0ge1xcbkBAIC0yNDc2LDYgKzI0ODAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBxb3Nfc3Ffc3RhdHNfZGVzY1tdID0ge1xcbiBcXHR7IE1MWDVFX0RFQ0xBUkVfUU9TX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCBjcWVzKSB9LFxcbiBcXHR7IE1MWDVFX0RFQ0xBUkVfUU9TX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCB3YWtlKSB9LFxcbiBcXHR7IE1MWDVFX0RFQ0xBUkVfUU9TX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCBjcWVfZXJyKSB9LFxcbitcXHR7IE1MWDVFX0RFQ0xBUkVfUU9TX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCB0aW1lX2J1ZGdldF9leGl0KSB9LFxcbiB9O1xcbiBcXG4gI2RlZmluZSBOVU1fUlFfU1RBVFNcXHRcXHRcXHRBUlJBWV9TSVpFKHJxX3N0YXRzX2Rlc2MpXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmhcXG5pbmRleCAwOWYxNTVhY2I0NjFiYy4uNWJhOTU0ZjQyY2NkNWIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmhcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuaFxcbkBAIC0xODcsNiArMTg3LDcgQEAgc3RydWN0IG1seDVlX3N3X3N0YXRzIHtcXG4gXFx0dTY0IHR4X2NxZXM7XFxuIFxcdHU2NCB0eF9xdWV1ZV93YWtlO1xcbiBcXHR1NjQgdHhfY3FlX2VycjtcXG4rXFx0dTY0IHR4X3RpbWVfYnVkZ2V0X2V4aXQ7XFxuIFxcdHU2NCB0eF94ZHBfeG1pdDtcXG4gXFx0dTY0IHR4X3hkcF9tcHdxZTtcXG4gXFx0dTY0IHR4X3hkcF9pbmxudztcXG5AQCAtNDQ1LDYgKzQ0Niw3IEBAIHN0cnVjdCBtbHg1ZV9zcV9zdGF0cyB7XFxuIFxcdHU2NCBjcWVzIF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7XFxuIFxcdHU2NCB3YWtlO1xcbiBcXHR1NjQgY3FlX2VycjtcXG4rXFx0dTY0IHRpbWVfYnVkZ2V0X2V4aXQ7XFxuIH07XFxuIFxcbiBzdHJ1Y3QgbWx4NWVfeGRwc3Ffc3RhdHMge1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jXFxuaW5kZXggMGI1ZTYwMGU0YTZhOTUuLjk5NGRmOTEyYjc2NWNiIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmNcXG5AQCAtNDMsNiArNDMsMTMgQEBcXG4gI2luY2x1ZGUgXFxcImVuX2FjY2VsL21hY3NlYy5oXFxcIlxcbiAjaW5jbHVkZSBcXFwiZW4vcHRwLmhcXFwiXFxuICNpbmNsdWRlIFxcdTAwM2NuZXQvaXB2Ni5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvbW9kdWxlcGFyYW0uaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3NjaGVkL2Nsb2NrLmhcXHUwMDNlXFxuK1xcbitzdGF0aWMgdW5zaWduZWQgaW50IG1seDVlX3R4X2NxX3RpbWVfYnVkZ2V0X3VzID0gNTAwO1xcbittb2R1bGVfcGFyYW1fbmFtZWQodHhfY3FfdGltZV9idWRnZXRfdXMsIG1seDVlX3R4X2NxX3RpbWVfYnVkZ2V0X3VzLCB1aW50LCAwNjQ0KTtcXG4rTU9EVUxFX1BBUk1fREVTQyh0eF9jcV90aW1lX2J1ZGdldF91cyxcXG4rXFx0XFx0IFxcXCJNYXggbWljcm9zZWNvbmRzIG9uZSBUWCBDUSBwb2xsIG1heSBzcGVuZCBiZWZvcmUgeWllbGRpbmcgKDAgPSB1bmJvdW5kZWQpXFxcIik7XFxuIFxcbiBzdGF0aWMgdm9pZCBtbHg1ZV9kbWFfdW5tYXBfd3FlX2VycihzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxLCB1OCBudW1fZG1hKVxcbiB7XFxuQEAgLTc2MCw5ICs3NjcsMTIgQEAgdm9pZCBtbHg1ZV90eHFzcV93YWtlKHN0cnVjdCBtbHg1ZV90eHFzcSAqc3EpXFxuIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpXFxuIHtcXG4gXFx0c3RydWN0IG1seDVlX3NxX3N0YXRzICpzdGF0cztcXG4rXFx0Ym9vbCB0aW1lX2V4Y2VlZGVkID0gZmFsc2U7XFxuK1xcdHU2NCB0aW1lX2J1ZGdldF9lbmQgPSAwO1xcbiBcXHRzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxO1xcbiBcXHRzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlO1xcbiBcXHR1MzIgZG1hX2ZpZm9fY2M7XFxuK1xcdHUzMiBidWRnZXRfdXM7XFxuIFxcdHUzMiBuYnl0ZXM7XFxuIFxcdHUxNiBucGt0cztcXG4gXFx0dTE2IHNxY2M7XFxuQEAgLTc5MCw2ICs4MDAsMTAgQEAgYm9vbCBtbHg1ZV9wb2xsX3R4X2NxKHN0cnVjdCBtbHg1ZV9jcSAqY3EsIGludCBuYXBpX2J1ZGdldClcXG4gXFx0LyogYXZvaWQgZGlydHlpbmcgc3EgY2FjaGUgbGluZSBldmVyeSBjcWUgKi9cXG4gXFx0ZG1hX2ZpZm9fY2MgPSBzcS1cXHUwMDNlZG1hX2ZpZm9fY2M7XFxuIFxcbitcXHRidWRnZXRfdXMgPSBSRUFEX09OQ0UobWx4NWVfdHhfY3FfdGltZV9idWRnZXRfdXMpO1xcbitcXHRpZiAoYnVkZ2V0X3VzKVxcbitcXHRcXHR0aW1lX2J1ZGdldF9lbmQgPSBsb2NhbF9jbG9jaygpICsgKHU2NClidWRnZXRfdXMgKiBOU0VDX1BFUl9VU0VDO1xcbitcXG4gXFx0aSA9IDA7XFxuIFxcdGRvIHtcXG4gXFx0XFx0c3RydWN0IG1seDVlX3R4X3dxZV9pbmZvICp3aTtcXG5AQCAtODQyLDggKzg1NiwxOSBAQCBib29sIG1seDVlX3BvbGxfdHhfY3Eoc3RydWN0IG1seDVlX2NxICpjcSwgaW50IG5hcGlfYnVkZ2V0KVxcbiBcXHRcXHRcXHRzdGF0cy1cXHUwMDNlY3FlX2VycisrO1xcbiBcXHRcXHR9XFxuIFxcbitcXHRcXHQvKiBDaGVjayBiZXR3ZWVuIENRRXMgb25seSAoc3FjYy9kbWFfZmlmb19jYyBtdXN0IGFkdmFuY2UgdG9nZXRoZXIpLiAqL1xcbitcXHRcXHRpZiAodW5saWtlbHkodGltZV9idWRnZXRfZW5kIFxcdTAwMjZcXHUwMDI2IChpIFxcdTAwMjYgNykgPT0gNyBcXHUwMDI2XFx1MDAyNlxcbitcXHRcXHRcXHQgICAgIGxvY2FsX2Nsb2NrKCkgXFx1MDAzZT0gdGltZV9idWRnZXRfZW5kKSkge1xcbitcXHRcXHRcXHR0aW1lX2V4Y2VlZGVkID0gdHJ1ZTtcXG4rXFx0XFx0XFx0aSsrO1xcbitcXHRcXHRcXHRicmVhaztcXG4rXFx0XFx0fVxcbitcXG4gXFx0fSB3aGlsZSAoKCsraSBcXHUwMDNjIE1MWDVFX1RYX0NRX1BPTExfQlVER0VUKSBcXHUwMDI2XFx1MDAyNiAoY3FlID0gbWx4NV9jcXdxX2dldF9jcWUoXFx1MDAyNmNxLVxcdTAwM2V3cSkpKTtcXG4gXFxuK1xcdGlmICh1bmxpa2VseSh0aW1lX2V4Y2VlZGVkKSlcXG4rXFx0XFx0c3RhdHMtXFx1MDAzZXRpbWVfYnVkZ2V0X2V4aXQrKztcXG4rXFxuIFxcdHN0YXRzLVxcdTAwM2VjcWVzICs9IGk7XFxuIFxcbiBcXHRtbHg1X2Nxd3FfdXBkYXRlX2RiX3JlY29yZChcXHUwMDI2Y3EtXFx1MDAzZXdxKTtcXG5AQCAtODU4LDcgKzg4Myw3IEBAIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpXFxuIFxcbiBcXHRtbHg1ZV90eHFzcV93YWtlKHNxKTtcXG4gXFxuLVxcdHJldHVybiAoaSA9PSBNTFg1RV9UWF9DUV9QT0xMX0JVREdFVCk7XFxuK1xcdHJldHVybiB0aW1lX2V4Y2VlZGVkIHx8IChpID09IE1MWDVFX1RYX0NRX1BPTExfQlVER0VUKTtcXG4gfVxcbiBcXG4gc3RhdGljIHZvaWQgbWx4NWVfdHhfd2lfa2ZyZWVfZmlmb19za2JzKHN0cnVjdCBtbHg1ZV90eHFzcSAqc3EsIHN0cnVjdCBtbHg1ZV90eF93cWVfaW5mbyAqd2kpXFxuQEAgLTg3OSw2ICs5MDQsOCBAQCB2b2lkIG1seDVlX2ZyZWVfdHhxc3FfZGVzY3Moc3RydWN0IG1seDVlX3R4cXNxICpzcSlcXG4gXFx0ZG1hX2ZpZm9fY2MgPSBzcS1cXHUwMDNlZG1hX2ZpZm9fY2M7XFxuIFxcbiBcXHR3aGlsZSAoc3FjYyAhPSBzcS1cXHUwMDNlcGMpIHtcXG4rXFx0XFx0Y29uZF9yZXNjaGVkKCk7XFxuK1xcbiBcXHRcXHRjaSA9IG1seDVfd3FfY3ljX2N0cjJpeChcXHUwMDI2c3EtXFx1MDAzZXdxLCBzcWNjKTtcXG4gXFx0XFx0d2kgPSBcXHUwMDI2c3EtXFx1MDAzZWRiLndxZV9pbmZvW2NpXTtcXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDAxOjUwOjQwLjgzNTg2MTY0NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTExODg0Mjk5MDExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggbWx4NSBldGhlcm5ldCBkcml2ZXIgKG1seDVlX3BvbGxfdHhfY3EpLiBUaGlzIGlzIGEgcGh5c2ljYWwgaGFyZHdhcmUgZHJpdmVyIGZvciBNZWxsYW5veCBDb25uZWN0WCBhZGFwdGVycyBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgaXQgaW4gUUVNVSBvciB0aGUga2VybmVsLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBlMDk1MDRiYzA4NjlkMzAyZTcwZDEwOWU1ZmU2Y2EyMTFkZDMyOTA4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMyAwMTo1MDozOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmNcbmluZGV4IDdmMzMyNjFiYTY1NTNiLi5iOTQwMjgwYWYxOWRiZiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuY1xuQEAgLTE3MSw2ICsxNzEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBzd19zdGF0c19kZXNjW10gPSB7XG4gXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X2NxZXMpIH0sXG4gXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X3F1ZXVlX3dha2UpIH0sXG4gXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X2NxZV9lcnIpIH0sXG4rXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X3RpbWVfYnVkZ2V0X2V4aXQpIH0sXG4gXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X3hkcF94bWl0KSB9LFxuIFx0eyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF94ZHBfbXB3cWUpIH0sXG4gXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X3hkcF9pbmxudykgfSxcbkBAIC00MjYsNiArNDI3LDcgQEAgc3RhdGljIHZvaWQgbWx4NWVfc3RhdHNfZ3JwX3N3X3VwZGF0ZV9zdGF0c19zcShzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMgKnMsXG4gXHRzLVx1MDAzZXR4X3F1ZXVlX3dha2UgICAgICAgICAgICArPSBzcV9zdGF0cy1cdTAwM2V3YWtlO1xuIFx0cy1cdTAwM2V0eF9xdWV1ZV9kcm9wcGVkICAgICAgICAgKz0gc3Ffc3RhdHMtXHUwMDNlZHJvcHBlZDtcbiBcdHMtXHUwMDNldHhfY3FlX2VyciAgICAgICAgICAgICAgICs9IHNxX3N0YXRzLVx1MDAzZWNxZV9lcnI7XG4rXHRzLVx1MDAzZXR4X3RpbWVfYnVkZ2V0X2V4aXQgICAgICArPSBzcV9zdGF0cy1cdTAwM2V0aW1lX2J1ZGdldF9leGl0O1xuIFx0cy1cdTAwM2V0eF9yZWNvdmVyICAgICAgICAgICAgICAgKz0gc3Ffc3RhdHMtXHUwMDNlcmVjb3ZlcjtcbiBcdHMtXHUwMDNldHhfeG1pdF9tb3JlICAgICAgICAgICAgICs9IHNxX3N0YXRzLVx1MDAzZXhtaXRfbW9yZTtcbiBcdHMtXHUwMDNldHhfY3N1bV9wYXJ0aWFsX2lubmVyICAgICs9IHNxX3N0YXRzLVx1MDAzZWNzdW1fcGFydGlhbF9pbm5lcjtcbkBAIC0yMzIzLDYgKzIzMjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBzcV9zdGF0c19kZXNjW10gPSB7XG4gXHR7IE1MWDVFX0RFQ0xBUkVfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZXMpIH0sXG4gXHR7IE1MWDVFX0RFQ0xBUkVfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIHdha2UpIH0sXG4gXHR7IE1MWDVFX0RFQ0xBUkVfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZV9lcnIpIH0sXG4rXHR7IE1MWDVFX0RFQ0xBUkVfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIHRpbWVfYnVkZ2V0X2V4aXQpIH0sXG4gfTtcbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBycV94ZHBzcV9zdGF0c19kZXNjW10gPSB7XG5AQCAtMjM5OSw2ICsyNDAyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjb3VudGVyX2Rlc2MgcHRwX3NxX3N0YXRzX2Rlc2NbXSA9IHtcbiBcdHsgTUxYNUVfREVDTEFSRV9QVFBfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZXMpIH0sXG4gXHR7IE1MWDVFX0RFQ0xBUkVfUFRQX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCB3YWtlKSB9LFxuIFx0eyBNTFg1RV9ERUNMQVJFX1BUUF9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgY3FlX2VycikgfSxcbitcdHsgTUxYNUVfREVDTEFSRV9QVFBfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIHRpbWVfYnVkZ2V0X2V4aXQpIH0sXG4gfTtcbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBwdHBfY2hfc3RhdHNfZGVzY1tdID0ge1xuQEAgLTI0NzYsNiArMjQ4MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHFvc19zcV9zdGF0c19kZXNjW10gPSB7XG4gXHR7IE1MWDVFX0RFQ0xBUkVfUU9TX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCBjcWVzKSB9LFxuIFx0eyBNTFg1RV9ERUNMQVJFX1FPU19UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgd2FrZSkgfSxcbiBcdHsgTUxYNUVfREVDTEFSRV9RT1NfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZV9lcnIpIH0sXG4rXHR7IE1MWDVFX0RFQ0xBUkVfUU9TX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCB0aW1lX2J1ZGdldF9leGl0KSB9LFxuIH07XG4gXG4gI2RlZmluZSBOVU1fUlFfU1RBVFNcdFx0XHRBUlJBWV9TSVpFKHJxX3N0YXRzX2Rlc2MpXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuaFxuaW5kZXggMDlmMTU1YWNiNDYxYmMuLjViYTk1NGY0MmNjZDViIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmhcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5oXG5AQCAtMTg3LDYgKzE4Nyw3IEBAIHN0cnVjdCBtbHg1ZV9zd19zdGF0cyB7XG4gXHR1NjQgdHhfY3FlcztcbiBcdHU2NCB0eF9xdWV1ZV93YWtlO1xuIFx0dTY0IHR4X2NxZV9lcnI7XG4rXHR1NjQgdHhfdGltZV9idWRnZXRfZXhpdDtcbiBcdHU2NCB0eF94ZHBfeG1pdDtcbiBcdHU2NCB0eF94ZHBfbXB3cWU7XG4gXHR1NjQgdHhfeGRwX2lubG53O1xuQEAgLTQ0NSw2ICs0NDYsNyBAQCBzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMge1xuIFx0dTY0IGNxZXMgX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcbiBcdHU2NCB3YWtlO1xuIFx0dTY0IGNxZV9lcnI7XG4rXHR1NjQgdGltZV9idWRnZXRfZXhpdDtcbiB9O1xuIFxuIHN0cnVjdCBtbHg1ZV94ZHBzcV9zdGF0cyB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguY1xuaW5kZXggMGI1ZTYwMGU0YTZhOTUuLjk5NGRmOTEyYjc2NWNiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jXG5AQCAtNDMsNiArNDMsMTMgQEBcbiAjaW5jbHVkZSBcImVuX2FjY2VsL21hY3NlYy5oXCJcbiAjaW5jbHVkZSBcImVuL3B0cC5oXCJcbiAjaW5jbHVkZSBcdTAwM2NuZXQvaXB2Ni5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvbW9kdWxlcGFyYW0uaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L3NjaGVkL2Nsb2NrLmhcdTAwM2VcbitcbitzdGF0aWMgdW5zaWduZWQgaW50IG1seDVlX3R4X2NxX3RpbWVfYnVkZ2V0X3VzID0gNTAwO1xuK21vZHVsZV9wYXJhbV9uYW1lZCh0eF9jcV90aW1lX2J1ZGdldF91cywgbWx4NWVfdHhfY3FfdGltZV9idWRnZXRfdXMsIHVpbnQsIDA2NDQpO1xuK01PRFVMRV9QQVJNX0RFU0ModHhfY3FfdGltZV9idWRnZXRfdXMsXG4rXHRcdCBcIk1heCBtaWNyb3NlY29uZHMgb25lIFRYIENRIHBvbGwgbWF5IHNwZW5kIGJlZm9yZSB5aWVsZGluZyAoMCA9IHVuYm91bmRlZClcIik7XG4gXG4gc3RhdGljIHZvaWQgbWx4NWVfZG1hX3VubWFwX3dxZV9lcnIoc3RydWN0IG1seDVlX3R4cXNxICpzcSwgdTggbnVtX2RtYSlcbiB7XG5AQCAtNzYwLDkgKzc2NywxMiBAQCB2b2lkIG1seDVlX3R4cXNxX3dha2Uoc3RydWN0IG1seDVlX3R4cXNxICpzcSlcbiBib29sIG1seDVlX3BvbGxfdHhfY3Eoc3RydWN0IG1seDVlX2NxICpjcSwgaW50IG5hcGlfYnVkZ2V0KVxuIHtcbiBcdHN0cnVjdCBtbHg1ZV9zcV9zdGF0cyAqc3RhdHM7XG4rXHRib29sIHRpbWVfZXhjZWVkZWQgPSBmYWxzZTtcbitcdHU2NCB0aW1lX2J1ZGdldF9lbmQgPSAwO1xuIFx0c3RydWN0IG1seDVlX3R4cXNxICpzcTtcbiBcdHN0cnVjdCBtbHg1X2NxZTY0ICpjcWU7XG4gXHR1MzIgZG1hX2ZpZm9fY2M7XG4rXHR1MzIgYnVkZ2V0X3VzO1xuIFx0dTMyIG5ieXRlcztcbiBcdHUxNiBucGt0cztcbiBcdHUxNiBzcWNjO1xuQEAgLTc5MCw2ICs4MDAsMTAgQEAgYm9vbCBtbHg1ZV9wb2xsX3R4X2NxKHN0cnVjdCBtbHg1ZV9jcSAqY3EsIGludCBuYXBpX2J1ZGdldClcbiBcdC8qIGF2b2lkIGRpcnR5aW5nIHNxIGNhY2hlIGxpbmUgZXZlcnkgY3FlICovXG4gXHRkbWFfZmlmb19jYyA9IHNxLVx1MDAzZWRtYV9maWZvX2NjO1xuIFxuK1x0YnVkZ2V0X3VzID0gUkVBRF9PTkNFKG1seDVlX3R4X2NxX3RpbWVfYnVkZ2V0X3VzKTtcbitcdGlmIChidWRnZXRfdXMpXG4rXHRcdHRpbWVfYnVkZ2V0X2VuZCA9IGxvY2FsX2Nsb2NrKCkgKyAodTY0KWJ1ZGdldF91cyAqIE5TRUNfUEVSX1VTRUM7XG4rXG4gXHRpID0gMDtcbiBcdGRvIHtcbiBcdFx0c3RydWN0IG1seDVlX3R4X3dxZV9pbmZvICp3aTtcbkBAIC04NDIsOCArODU2LDE5IEBAIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpXG4gXHRcdFx0c3RhdHMtXHUwMDNlY3FlX2VycisrO1xuIFx0XHR9XG4gXG4rXHRcdC8qIENoZWNrIGJldHdlZW4gQ1FFcyBvbmx5IChzcWNjL2RtYV9maWZvX2NjIG11c3QgYWR2YW5jZSB0b2dldGhlcikuICovXG4rXHRcdGlmICh1bmxpa2VseSh0aW1lX2J1ZGdldF9lbmQgXHUwMDI2XHUwMDI2IChpIFx1MDAyNiA3KSA9PSA3IFx1MDAyNlx1MDAyNlxuK1x0XHRcdCAgICAgbG9jYWxfY2xvY2soKSBcdTAwM2U9IHRpbWVfYnVkZ2V0X2VuZCkpIHtcbitcdFx0XHR0aW1lX2V4Y2VlZGVkID0gdHJ1ZTtcbitcdFx0XHRpKys7XG4rXHRcdFx0YnJlYWs7XG4rXHRcdH1cbitcbiBcdH0gd2hpbGUgKCgrK2kgXHUwMDNjIE1MWDVFX1RYX0NRX1BPTExfQlVER0VUKSBcdTAwMjZcdTAwMjYgKGNxZSA9IG1seDVfY3F3cV9nZXRfY3FlKFx1MDAyNmNxLVx1MDAzZXdxKSkpO1xuIFxuK1x0aWYgKHVubGlrZWx5KHRpbWVfZXhjZWVkZWQpKVxuK1x0XHRzdGF0cy1cdTAwM2V0aW1lX2J1ZGdldF9leGl0Kys7XG4rXG4gXHRzdGF0cy1cdTAwM2VjcWVzICs9IGk7XG4gXG4gXHRtbHg1X2Nxd3FfdXBkYXRlX2RiX3JlY29yZChcdTAwMjZjcS1cdTAwM2V3cSk7XG5AQCAtODU4LDcgKzg4Myw3IEBAIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpXG4gXG4gXHRtbHg1ZV90eHFzcV93YWtlKHNxKTtcbiBcbi1cdHJldHVybiAoaSA9PSBNTFg1RV9UWF9DUV9QT0xMX0JVREdFVCk7XG4rXHRyZXR1cm4gdGltZV9leGNlZWRlZCB8fCAoaSA9PSBNTFg1RV9UWF9DUV9QT0xMX0JVREdFVCk7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIG1seDVlX3R4X3dpX2tmcmVlX2ZpZm9fc2ticyhzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxLCBzdHJ1Y3QgbWx4NWVfdHhfd3FlX2luZm8gKndpKVxuQEAgLTg3OSw2ICs5MDQsOCBAQCB2b2lkIG1seDVlX2ZyZWVfdHhxc3FfZGVzY3Moc3RydWN0IG1seDVlX3R4cXNxICpzcSlcbiBcdGRtYV9maWZvX2NjID0gc3EtXHUwMDNlZG1hX2ZpZm9fY2M7XG4gXG4gXHR3aGlsZSAoc3FjYyAhPSBzcS1cdTAwM2VwYykge1xuK1x0XHRjb25kX3Jlc2NoZWQoKTtcbitcbiBcdFx0Y2kgPSBtbHg1X3dxX2N5Y19jdHIyaXgoXHUwMDI2c3EtXHUwMDNld3EsIHNxY2MpO1xuIFx0XHR3aSA9IFx1MDAyNnNxLVx1MDAzZWRiLndxZV9pbmZvW2NpXTtcbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDAxOjUwOjQwLjgzNTg2MzM0NloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY2MDYyNTIyODUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNZWxsYW5veCBtbHg1IFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2ggZm9yIHRoZSBNZWxsYW5veCBtbHg1IGV0aGVybmV0IGRyaXZlci4gSXQgc2VlbXMgdG8gaW50cm9kdWNlIGEgbmV3IG1vZHVsZSBwYXJhbWV0ZXIsIGB0eF9jcV90aW1lX2J1ZGdldF91c2AsIHRvIGxpbWl0IHRoZSB0aW1lIHNwZW50IGluIGBtbHg1ZV9wb2xsX3R4X2NxYC4gSXQgYWxzbyBpbmNsdWRlcyBhIG5ldyBzdGF0aXN0aWMsIGB0eF90aW1lX2J1ZGdldF9leGl0YCwgdG8gdHJhY2sgd2hlbiB0aGF0IHRpbWUgYnVkZ2V0IGlzIGV4Y2VlZGVkIGFuZCBhIGBjb25kX3Jlc2NoZWQoKWAgY2FsbCBpbiBgbWx4NWVfZnJlZV90eHFzcV9kZXNjc2AuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBhc3Nlc3MgaXRzIGZ1enppbmcgcG90ZW50aWFsLlxuXG5gbWx4NWVfcG9sbF90eF9jcWAgaXMgYSBoaWdoLXBlcmZvcm1hbmNlIGZ1bmN0aW9uIOKAkyBhIGhvdCBwYXRoIGZvciBwb2xsaW5nIHRoZSB0cmFuc21pdCBjb21wbGV0aW9uIHF1ZXVlLCBhbmQgdGhhdCBtYWtlcyBpdCBpbnRlcmVzdGluZy4gVGhlIHBhdGNoIGFkZHMgYSB0aW1lIGNoZWNrIHVzaW5nIGBsb2NhbF9jbG9jaygpYCBhbmQgYSBicmVhayBjb25kaXRpb24gaWYgdGhlIGJ1ZGdldCBpcyBleGNlZWRlZCwgd2hpY2ggY291bGQgaW50cm9kdWNlIHN1YnRsZSB0aW1pbmctcmVsYXRlZCBidWdzLiBUaGUgYGNvbmRfcmVzY2hlZCgpYCBjYWxsIGluIGBtbHg1ZV9mcmVlX3R4cXNxX2Rlc2NzYCBpcyBhbHNvIHdvcnRoIGEgY2xvc2VyIGxvb2sgZm9yIHBvc3NpYmxlIHJhY2UgY29uZGl0aW9ucywgYWx0aG91Z2ggdGhlIGxvY2F0aW9uIG1ha2VzIGl0IGxlc3Mgb2YgYSBob3Qgc3BvdC5cblxuVGhlIG1haW4gY29uY2VybiBub3csIGdpdmVuIG15IGV4cGVyaWVuY2UsIGlzIHJlYWNoYWJpbGl0eS4gTWVsbGFub3ggbWx4NSBpcywgYXMgSSByZWNhbGwsIGEgcGh5c2ljYWwgbmV0d29yayBjYXJkIGRyaXZlci4gTXkgcHJpbWFyeSBxdWVzdGlvbiBpcyBob3cgYWNjZXNzaWJsZSBpcyB0aGlzIGNvZGUgaW4gYSB0eXBpY2FsIGZ1enppbmcgc2V0dXA/IEhhcmR3YXJlIHJlcXVpcmVtZW50cyBhcmUgdGhlIGltbWVkaWF0ZSBwcm9ibGVtLiBJcyB0aGlzIHNvbWV0aGluZyB0aGF0IGNhbiBiZSBlbXVsYXRlZCBvciBieXBhc3NlZD8gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgd2UgaGF2ZSBhbnkga2luZCBvZiB2RFBBIGltcGxlbWVudGF0aW9uIG9yIHNvbWV0aGluZyBzaW1pbGFyIHRoYXQgbWlnaHQgYWxsb3cgdXMgdG8gZXhlcmNpc2UgdGhpcyBjb2RlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFdpdGhvdXQgc29tZXRoaW5nIGxpa2UgdGhhdCwgdGhpcyBpcyBsaWtlbHkgYSBub24tc3RhcnRlci5cblxuSSBuZWVkIHRvIGNvbmZpcm0gaWYgb3VyIGZ1enppbmcgZW52aXJvbm1lbnQgaGFzIFBDSSBlbXVsYXRpb24gY2FwYWJsZSBvZiBydW5uaW5nIHRoZSBtbHg1IGRyaXZlci4gUUVNVSBjb21lcyB0byBtaW5kLiBEb2VzIFFFTVUgZXZlbiBlbXVsYXRlIG1seDU/IFRoZSBvYnZpb3VzIGFuc3dlciBpcyBsaWtlbHkgbm8sIGF0IGxlYXN0IG5vdCBpbiBhIHdheSB0aGF0IHN5emthbGxlciB3b3VsZCB0eXBpY2FsbHkgbGV2ZXJhZ2UuIEhvd2V2ZXIsIEknbSBub3cgcmVjYWxsaW5nIHNvbWV0aGluZyBhYm91dCBgbWx4NWAgdkRQQS4gSSBuZWVkIHRvIGRvIGEga2VybmVsIHNlYXJjaCB0byBjb25maXJtIGFuZCBzZWUgaWYgd2UgY2FuIGdldCB0aGlzIHRvIHdvcmsuIEkgaGF2ZSBhIGZlZWxpbmcgdGhlIHZEUEEgcGF0aCBpcyB3aGVyZSB0aGUgcmVhbCBwb3RlbnRpYWwgbGllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDM2OSwiT3V0cHV0VG9rZW5zIjoyMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM5NSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDAxOjUwOjQ3LjQ0MjExNzYyMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDc0NTA4MjkyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVlX3BvbGxfdHhfY3FcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3B0cC5jPTI3Mz1zdGF0aWMgaW50IG1seDVlX3B0cF9uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3B0cC5jLTI4Ny1cXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgYy1cXHUwMDNlbnVtX3RjOyBpKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcHRwLmM6Mjg4OlxcdFxcdFxcdGJ1c3kgfD0gbWx4NWVfcG9sbF90eF9jcShcXHUwMDI2Yy1cXHUwMDNlcHRwc3FbaV0udHhxc3EuY3EsIGJ1ZGdldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3B0cC5jLTI4OS1cXHRcXHRcXHRidXN5IHw9IG1seDVlX3B0cF9wb2xsX3RzX2NxKFxcdTAwMjZjLVxcdTAwM2VwdHBzcVtpXS50c19jcSwgYnVkZ2V0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90eHJ4Lmg9MTEzPW5ldGRldl90eF90IG1seDVlX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaDoxMTQ6Ym9vbCBtbHg1ZV9wb2xsX3R4X2NxKHN0cnVjdCBtbHg1ZV9jcSAqY3EsIGludCBuYXBpX2J1ZGdldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaC0xMTUtdm9pZCBtbHg1ZV9mcmVlX3R4cXNxX2Rlc2NzKHN0cnVjdCBtbHg1ZV90eHFzcSAqc3EpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmM9NzU2PXZvaWQgbWx4NWVfdHhxc3Ffd2FrZShzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmMtNzY2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jOjc2Nzpib29sIG1seDVlX3BvbGxfdHhfY3Eoc3RydWN0IG1seDVlX2NxICpjcSwgaW50IG5hcGlfYnVkZ2V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jLTc2OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHhyeC5jPTEyND1pbnQgbWx4NWVfbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eHJ4LmMtMTUwLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBjLVxcdTAwM2VudW1fdGM7IGkrKylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHhyeC5jOjE1MTpcXHRcXHRidXN5IHw9IG1seDVlX3BvbGxfdHhfY3EoXFx1MDAyNmMtXFx1MDAzZXNxW2ldLmNxLCBidWRnZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eHJ4LmMtMTUyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4cnguYy0xNjAtXFx0XFx0XFx0aWYgKHNxKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eHJ4LmM6MTYxOlxcdFxcdFxcdFxcdGJ1c3kgfD0gbWx4NWVfcG9sbF90eF9jcShcXHUwMDI2c3EtXFx1MDAzZWNxLCBidWRnZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eHJ4LmMtMTYyLVxcdFxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDE6NTA6NDkuNTE2NjM0NTAzWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDEwOTg0Nzc3MTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTWx4NSBEcml2ZXIgUmVhY2hhYmlsaXR5IEFzc2Vzc21lbnQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIG1seDUgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZm9yIE1lbGxhbm94IENvbm5lY3RYLTQvNS82LzcgY2FyZHMuIE15IGluaXRpYWwgdGhvdWdodCBpcywgY2FuIHN5emthbGxlciBldmVuICpyZWFjaCogdGhpcyB0aGluZz8gT2J2aW91c2x5LCBzeXprYWxsZXIgZG9lc24ndCBoYXZlIHBoeXNpY2FsIE1lbGxhbm94IGhhcmR3YXJlLCBzbyB0aGF0J3MgYSBub24tc3RhcnRlci4gSSBxdWlja2x5IGNvbnNpZGVyIGEgc29mdHdhcmUgZW11bGF0aW9uIC0gaXMgdGhlcmUgc29tZXRoaW5nIGZvciBtbHg1PyBObywgdGhhdCdzIG5vdCByaWdodC4gSG1tLCB0aGVuIEkgcmVjYWxsIHN5emthbGxlciAqY2FuKiBmdXp6IGRyaXZlcnMgdGhhdCBjYW4gYmUgaW5zdGFudGlhdGVkIHRocm91Z2ggdGhpbmdzIGxpa2UgbmV0bGluaywgYnV0IG1seDUgaXMgYSBQQ0kgZHJpdmVyLCBzbyB0aGF0IHByb2JhYmx5IHJ1bGVzIGl0IG91dC5cblxuVGhlbiBJIHRoaW5rIGFib3V0IGBzeXpfbW91bnRfaW1hZ2VgIG9yIFVTQiBmdXp6aW5nLCBidXQgYWdhaW4sIG1seDUgaXMgUENJLiBPa2F5LCBpcyB0aGVyZSBhIFBDSSBmdXp6ZXIgKmluKiBzeXprYWxsZXI/IEFoLCB5ZXMsIHRoZXJlIGlzLCB0aHJvdWdoIHZmaW8vcGNpLiBIb3dldmVyLCBteSBleHBlcmllbmNlIGlzIHRoYXQgdGhpcyBpcyB1c3VhbGx5IHByZXR0eSBsaW1pdGVkLCBhbmQgdHlwaWNhbGx5IGRvZXNuJ3QgZ2V0IGRlZXAgaW50byBuZXR3b3JrIGRhdGEgcGF0aHMgdW5sZXNzIGl0J3MgYmVlbiBzcGVjaWZpY2FsbHkgY29uZmlndXJlZC5cblxuQWxyaWdodCwgd2hhdCBhYm91dCB0aG9zZSBpbnN0cnVjdGlvbnM/IEkgcmVyZWFkIHRoZW06IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmVcIi4gU28sIHRoZSBrZXkgaXMgUUVNVS4gQ2FuIEkgcmVhY2ggbWx4NSBpbiBRRU1VP1xuXG5JIGtub3cgUUVNVSBkb2Vzbid0IGRpcmVjdGx5ICplbXVsYXRlKiBtbHg1LiBJIHF1aWNrbHkgZG91YmxlIGNoZWNrLCBqdXN0IHRvIGJlIHN1cmUuLi4gbm8sIFFFTVUgZG9lc24ndCBoYXZlIGFuIG1seDUgZW11bGF0aW9uLiBXYWl0LCAqZG9lcyogUUVNVSBlbXVsYXRlICphbnkqIE1lbGxhbm94IGhhcmR3YXJlPyBObywgdGhhdCdzIG5vdCByaWdodCBlaXRoZXIuIEkgc2VlIGUxMDAwLCBlMTAwMGUsIHJ0bDgxMzksIHBjbmV0LCBuZTJrX3BjaSwgdm14bmV0MywgdmlydGlvLW5ldCwgaWdiLCB0dWxpcC4gT2theSwgdGhhdCdzIGRlZmluaXRlbHkgbm90IHdoYXQgSSdtIGxvb2tpbmcgZm9yLiBTbyBJIHRoaW5rIEkgbmVlZCB0byBkaWcgZGVlcGVyLiBJJ2xsIG5lZWQgdG8gcmVzZWFyY2ggaWYgdGhlcmUgaXMgKmFueSogd2F5IHRvIHJlYWNoIG1seDUsIHVzaW5nIGEgZGlmZmVyZW50IGFuZ2xlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MTEyLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzc5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDAxOjUxOjMwLjYxNTExNDYyNloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDQ0MjA2NTQsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwMTo1MTozMC43NTk1NDc2OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3ODE5MTQ0MzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqTmF2aWdhdGluZyB0aGUgTWVsbGFub3ggS2NvbmZpZyBMYW5kc2NhcGUqKlxuXG5SaWdodCwgc28gSSdtIGRpdmluZyBpbnRvIHRoZSBNZWxsYW5veCBFdGhlcm5ldCBkcml2ZXIgY29uZmlndXJhdGlvbi4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhlIEtjb25maWcgZmlsZSBmb3IgdGhpcyB0aGluZyBsaXZlcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIGl0J3MgbGlrZWx5IHVuZGVyIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9LY29uZmlnYCwgdGhhdCdzIHRoZSBvYnZpb3VzIHRvcC1sZXZlbCBsb2NhdGlvbi4gQnV0LCB3aXRoIE1lbGxhbm94LCB5b3UgbmV2ZXIga25vdy4uLiB0aGV5IG9mdGVuIGhhdmUgc29tZSBwcmV0dHkgZGVlcCBsYXllcnMsIHBhcnRpY3VsYXJseSB3aXRoIHRoZSBtbHg1IGFyY2hpdGVjdHVyZS4gU28sIEkgbmVlZCB0byBrZWVwIGluIG1pbmQgdGhhdCBpdCAqY291bGQqIGJlIHR1Y2tlZCBhd2F5IGRlZXBlciwgc3BlY2lmaWNhbGx5IHdpdGhpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWdgLiBUaGF0IGxvY2F0aW9uIHdvdWxkIGJlIGZvciB0aGUgY29yZSBtbHg1IGZ1bmN0aW9uYWxpdHkuIEkgbmVlZCB0byBjaGVjayBib3RoIGJlZm9yZSBtYWtpbmcgYSBkZWZpbml0aXZlIGNob2ljZSBvciBtYWtpbmcgYXNzdW1wdGlvbnMuIEl0IGRlcGVuZHMgb24gd2hhdCBzZWN0aW9uIEkgYW0gdGFyZ2V0aW5nIHdpdGhpbiB0aGUgb3ZlcmFsbCBkcml2ZXIuIEFscmlnaHQsIGxldCdzIGdvIGNoZWNrIHRob3NlIGxvY2F0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NzAxMiwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDAxOjUxOjM0LjU0MTQ2Mzk5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc0ODc0OTc3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNTFg1XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy01LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjY6Y29uZmlnIE1MWDVfQ09SRVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIk1lbGxhbm94IDV0aCBnZW5lcmF0aW9uIG5ldHdvcmsgYWRhcHRlcnMgKENvbm5lY3RYIHNlcmllcykgY29yZSBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxOTpjb25maWcgTUxYNV9GUEdBXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMjAtXFx0Ym9vbCBcXFwiTWVsbGFub3ggVGVjaG5vbG9naWVzIElubm92YSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6Mjk6Y29uZmlnIE1MWDVfQ09SRV9FTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTMwLVxcdGJvb2wgXFxcIk1lbGxhbm94IDV0aCBnZW5lcmF0aW9uIG5ldHdvcmsgYWRhcHRlcnMgKENvbm5lY3RYIHNlcmllcykgRXRoZXJuZXQgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjM4OmNvbmZpZyBNTFg1X0VOX0FSRlNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0zOS1cXHRib29sIFxcXCJNZWxsYW5veCBNTFg1IGV0aGVybmV0IGFjY2VsZXJhdGVkIHJlY2VpdmUgZmxvdyBzdGVlcmluZyAoQVJGUykgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjQ2OmNvbmZpZyBNTFg1X0VOX1JYTkZDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctNDctXFx0Ym9vbCBcXFwiTWVsbGFub3ggTUxYNSBldGhlcm5ldCByeCBuZmMgZmxvdyBzdGVlcmluZyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctNTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6NTY6Y29uZmlnIE1MWDVfTVBGU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTU3LVxcdGJvb2wgXFxcIk1lbGxhbm94IFRlY2hub2xvZ2llcyBNTFg1IE1QRlMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTY1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjY2OmNvbmZpZyBNTFg1X0VTV0lUQ0hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy02Ny1cXHRib29sIFxcXCJNZWxsYW5veCBUZWNobm9sb2dpZXMgTUxYNSBTUklPViBFLVN3aXRjaCBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6Nzc6Y29uZmlnIE1MWDVfQlJJREdFXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctNzgtXFx0Ym9vbFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctODYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6ODc6Y29uZmlnIE1MWDVfQ0xTX0FDVFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTg4LVxcdGJvb2wgXFxcIk1MWDUgVEMgY2xhc3NpZmllciBhY3Rpb24gc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxMDI6Y29uZmlnIE1MWDVfVENfQ1RcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xMDMtXFx0Ym9vbCBcXFwiTUxYNSBUQyBjb25uZWN0aW9uIHRyYWNraW5nIG9mZmxvYWQgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTExMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxMTI6Y29uZmlnIE1MWDVfVENfU0FNUExFXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTEzLVxcdGJvb2wgXFxcIk1MWDUgVEMgc2FtcGxlIG9mZmxvYWQgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEyNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxMjU6Y29uZmlnIE1MWDVfQ09SRV9FTl9EQ0JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xMjYtXFx0Ym9vbCBcXFwiRGF0YSBDZW50ZXIgQnJpZGdpbmcgKERDQikgU3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxMzc6Y29uZmlnIE1MWDVfQ09SRV9JUE9JQlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEzOC1cXHRib29sIFxcXCJNZWxsYW5veCA1dGggZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChjb25uZWN0WCBzZXJpZXMpIElQb0lCIG9mZmxvYWRzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6MTQzOmNvbmZpZyBNTFg1X01BQ1NFQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE0NC1cXHRib29sIFxcXCJDb25uZWN0LVggc3VwcG9ydCBmb3IgTUFDU2VjIG9mZmxvYWRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6MTUxOmNvbmZpZyBNTFg1X0VOX0lQU0VDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTUyLVxcdGJvb2wgXFxcIk1lbGxhbm94IFRlY2hub2xvZ2llcyBJUHNlYyBDb25uZWN0LVggc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE1OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxNTk6Y29uZmlnIE1MWDVfRU5fVExTXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTYwLVxcdGJvb2wgXFxcIk1lbGxhbm94IFRlY2hub2xvZ2llcyBUTFMgQ29ubmVjdC1YIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6MTY3OmNvbmZpZyBNTFg1X1NXX1NURUVSSU5HXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTY4LVxcdGJvb2wgXFxcIk1lbGxhbm94IFRlY2hub2xvZ2llcyBzb2Z0d2FyZS1tYW5hZ2VkIHN0ZWVyaW5nXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjE3NTpjb25maWcgTUxYNV9IV19TVEVFUklOR1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE3Ni1cXHRib29sIFxcXCJNZWxsYW5veCBUZWNobm9sb2dpZXMgaGFyZHdhcmUtbWFuYWdlZCBzdGVlcmluZ1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE4NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxODU6Y29uZmlnIE1MWDVfU0ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xODYtXFx0Ym9vbCBcXFwiTWVsbGFub3ggVGVjaG5vbG9naWVzIHN1YmZ1bmN0aW9uIGRldmljZSBzdXBwb3J0IHVzaW5nIGF1eGlsaWFyeSBkZXZpY2VcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6MTkzOmNvbmZpZyBNTFg1X1NGX01BTkFHRVJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xOTQtXFx0Ym9vbFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMjAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjIwMzpjb25maWcgTUxYNV9EUExMXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMjA0LVxcdHRyaXN0YXRlIFxcXCJNZWxsYW5veCA1dGggZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChDb25uZWN0WCBzZXJpZXMpIERQTEwgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTIwOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoyMTA6Y29uZmlnIE1MWDVfRU5fUFNQXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMjExLVxcdGJvb2wgXFxcIk1lbGxhbm94IFRlY2hub2xvZ2llcyBzdXBwb3J0IGZvciBQU1AgY3J5cHRvZ3JhcGh5LW9mZmxvYWQgYWNjZWxlcmF0aW9uXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwMTo1MTozNC42MTYzNDQwMzdaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzk0NTU2Njk5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgdGhlIFJlYWNoYWJpbGl0eSBvZiBNZWxsYW5veCBDb2RlIGluIGEgU3l6a2FsbGVyIENvbnRleHQqKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBTeXprYWxsZXIsIGFzIGZhciBhcyBJIGtub3csIGRvZXNuJ3QgdHlwaWNhbGx5IGhhdmUgTWVsbGFub3ggaGFyZHdhcmUgYXMgYSB0YXJnZXQuIFRoYXQncyBhIGtleSByb2FkYmxvY2suIE15IGluaXRpYWwgdGhvdWdodCBpcywgaG93IGNhbiBJIGV2ZW4gKnRyaWdnZXIqIHRoaXMgY29kZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBnaXZlbiB0aGF0IGltbWVkaWF0ZSBoYXJkd2FyZSBhY2Nlc3MgaXMgb3V0P1xuXG5BbHJpZ2h0LCB0aW1lIHRvIHBpdm90LiBJcyB0aGVyZSAqYW55KiBraW5kIG9mIHZpcnR1YWwgZGV2aWNlIGVtdWxhdGluZyBNZWxsYW5veCBmdW5jdGlvbmFsaXR5IEkgY2FuIGxldmVyYWdlPyBJIHJlbWVtYmVyIHNlZWluZyBzb21ldGhpbmcgcmVsYXRlZCB0byBgdmRwYS9tbHg1YCwgYnV0IGlzbid0IHRoYXQgYSB2RFBBIGltcGxlbWVudGF0aW9uPyBBbmQgZG9lc24ndCB2RFBBICpyZXF1aXJlKiB1bmRlcmx5aW5nIHJlYWwgaGFyZHdhcmUgKGFjdHVhbCBtbHg1IGhhcmR3YXJlISkgdG8gZnVuY3Rpb24gYXMgdGhlIGJhY2tpbmcgc3RvcmU/XG5cbkxldCdzIGNvbmZpcm0gdGhhdCBoeXBvdGhlc2lzLiBJIG5lZWQgdG8gZGl2ZSBpbnRvIHRoZSBrZXJuZWwgY29uZmlnIGZpbGVzIGZvciBtb3JlIGRlZmluaXRpdmUgaW5mb3JtYXRpb24uIExldCBtZSBjaGVjayBgZHJpdmVycy92ZHBhL21seDUvS2NvbmZpZ2AuIFRoYXQgc2hvdWxkIGNsZWFyIHRoaW5ncyB1cC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaWYgdGhlcmUgaXMgYSB2aXJ0dWFsIGRyaXZlciBpbiB0aGVyZSwgb3IgaWYgdGhpcyBpcyBoYXJkd2FyZS1kZXBlbmRlbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk0MDcsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDE6NTE6MzguNDEwOTAyNjU2WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjA3NjE5MzQsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNTFg1X1ZEUEFcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy92ZHBhL21seDUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwMTo1MTozOC41NzE2NzIwN1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDM5MTA1ODgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6XG5cbioqSW52ZXN0aWdhdGluZyBhIFBvdGVudGlhbCBEcml2ZXIgUGF0aCoqXG5cbk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEkgaGF2ZSBhIGh1bmNoLCBhIHBvc3NpYmxlIHBhdGggdG8gaW52ZXN0aWdhdGUgcmVnYXJkaW5nIGEgZHJpdmVyLiBJdCAqZmVlbHMqIGxpa2UgdGhlIGBkcml2ZXJzL3ZkcGEvbWx4NWAgZGlyZWN0b3J5IG1pZ2h0IGFjdHVhbGx5IGV4aXN0LiBJIGNhbid0IHF1aXRlIHJlbWVtYmVyIG9mZiB0aGUgdG9wIG9mIG15IGhlYWQsIHNvIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBjb25maXJtIHRoaXMgc3VzcGljaW9uLiBJIG5lZWQgdG8gY2hlY2sgYW5kIHZlcmlmeSBpZiB0aGlzIGRyaXZlciBwYXRoIGlzIHJlYWwgYmVmb3JlIEkgZ28gYW55IGZ1cnRoZXIgZG93biB0aGlzIHBhcnRpY3VsYXIgbGluZSBvZiByZWFzb25pbmcuIFRpbWUgdG8gbG9vay5cblxuXG4iLCJJbnB1dFRva2VucyI6OTc4MiwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDAxOjUxOjQyLjAxMDc4MDcyMloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUxODgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwiZHJpdmVycy92ZHBhL21seDVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogbnVsbCxcbiAgXCJTdWJkaXJzXCI6IFtcbiAgICBcImNvcmVcIixcbiAgICBcIm5ldFwiXG4gIF1cbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDAxOjUxOjQyLjAxMDgzNDE3MloiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDA1MjQ3Nzc5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmc9ZmFsc2U6IG1seDUgYW5kIFZpcnR1YWxpemVkIEVudmlyb25tZW50cyoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2gsIGFuZCBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIGl0J3Mgd29ydGggZnV6emluZy4gVGhlIHBhdGNoIHRvdWNoZXMgbWx4NSwgd2hpY2ggaXMgYSBuZXR3b3JrIGRldmljZSBkcml2ZXIuIEkga25vdyBtbHg1IGlzIHRpZWQgdG8gc3BlY2lmaWMgaGFyZHdhcmUsIHJpZ2h0PyBObyBzb2Z0d2FyZSBlbXVsYXRpb24gd2l0aGluIHRoZSBrZXJuZWwsIG1ha2luZyBpdCBhIHBoeXNpY2FsIGRldmljZSBkcml2ZXIuXG5cblRoZSBzeXprYWxsZXIgUENJIGZ1enplciBpcyB0aGUga2V5LCBidXQgSSBuZWVkIHRvIGNvbnNpZGVyIHRoYXQgXCJXb3J0aEZ1enppbmc9ZmFsc2VcIiBzY2VuYXJpbzogaWYgdGhlIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIENhbiB0aGUgUENJIGZ1enplciByZWFjaCBpdD8gSXQgKmNhbiogZnV6eiBQQ0kgZGV2aWNlcy4gSXQgKmNhbiogaW50ZXJhY3QgdXNpbmcgc3l6X3BjaV9kZXZpY2VfYWRkIGFuZCBzaW1pbGFyLCBidXQgZ2VuZXJhbGx5LCB0aGF0J3MgcHJldHR5IHNoYWxsb3cuIEl0IGRvZXMgUENJIGNvbmZpZyBzcGFjZSBhbmQgTU1JTyByZWFkcy93cml0ZXMsIGJ1dCBnZXR0aW5nIGludG8gYW55IHJlYWwgZnVuY3Rpb25hbGl0eT8gVGhhdCdzIHRoZSBjaGFsbGVuZ2UuXG5cbkxldCdzIHRoaW5rIGFib3V0IGBtbHg1ZV9wb2xsX3R4X2NxYC4gUmVhY2hpbmcgKnRoYXQqIHJlcXVpcmVzIHNldHRpbmcgdXAgYSBuZXRkZXYsIGJyaW5naW5nIGl0IHVwLCB0cmlnZ2VyaW5nIFRYLi4uIHdoaWNoIHRoZW4gcmVxdWlyZXMgYSBoYXJkd2FyZSB0byB3b3JrLiBETUEsIGludGVycnVwdHMuLi4gdGhhdCdzIGEgKmxvdCogZm9yIHRoZSBmdXp6ZXIgdG8gcGVyZmVjdGx5IGVtdWxhdGUuIEl0IGNhbid0IHBlcmZlY3RseSBlbXVsYXRlIGhhcmR3YXJlIGJlaGF2aW9yLCBzbyB0aGF0J3Mgbm90IGxpa2VseSB0byB3b3JrLiBgbmRvX3N0YXJ0X3htaXRgIHdvbid0IGRpcmVjdGx5IHRyaWdnZXIgYG1seDVlX3BvbGxfdHhfY3FgIGJlY2F1c2UgaXQncyBjYWxsZWQgZnJvbSBOQVBJIHBvbGwuXG5cbkVzc2VudGlhbGx5LCAqdW5sZXNzKiB0aGUgUENJIGZ1enplciBjYW4gZmxhd2xlc3NseSBlbXVsYXRlIHRoZSBoYXJkd2FyZSAtIGFuZCBsZXQncyBmYWNlIGl0LCB0aGF0J3Mgbm90IGhhcHBlbmluZyBmb3IgYSBjb21wbGV4IGRyaXZlciBsaWtlIG1seDUgLSB0aGVuIEkgY2FuJ3QgcmVhY2ggaXQuIFRoZXJlJ3Mgbm8gYG5ldGRldnNpbWAtbGlrZSB0aGluZyBmb3IgbWx4NSwgbm90aGluZyB0aGF0IHdvdWxkIHByb3ZpZGUgYSBzb2Z0d2FyZSByZXByZXNlbnRhdGlvbi5cblxuU28sIEknbSBzdHVjayB3aXRoIGEgcGh5c2ljYWwgaGFyZHdhcmUgZHJpdmVyLCBubyBzb2Z0d2FyZSBlbXVsYXRpb24uIEdpdmVuIHRoZSBwcm9tcHQncyBjcml0ZXJpYSwgdGhpcyBjb2RlIGlzICppbXBvc3NpYmxlKiB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgKldvcnRoRnV6emluZz1mYWxzZS4qIEp1c3QgbmVlZCB0byBjb25maXJtIHRoZXJlIGlzbid0IGFueSBlbXVsYXRpb24gYW55d2hlcmUuLi4ganVzdCB0byBiZSBzYWZlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo5OTY0LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjIwLCJUb29sQ2FsbHMiOlsiY29kZXNlYXJjaC1kaXItaW5kZXgiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwMTo1MTo1Mi4wNjMzMTQ2NDhaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgwNzAyMjQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVfY29yZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTkwNjcgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnPTE5PWNvbmZpZyBNTFg1X0ZQR0FcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTI1LVxcdCAgYW5kIGFuIEZQR0EgY2hpcCBvbiBvbmUgYm9hcmQuIElmIHlvdSBzZWxlY3QgdGhpcyBvcHRpb24sIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjI2OlxcdCAgbWx4NV9jb3JlIGRyaXZlciB3aWxsIGluY2x1ZGUgdGhlIElubm92YSBGUEdBIGNvcmUgYW5kIGFsbG93IGJ1aWxkaW5nXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMjctXFx0ICBzYW5kYm94LXNwZWNpZmljIGNsaWVudCBkcml2ZXJzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlPTc9c3ViZGlyLWNjZmxhZ3MteSArPSAtSSQoc3JjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19NTFg1X0NPUkUpICs9IG1seDVfY29yZS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEzLSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTQ6bWx4NV9jb3JlLXkgOj1cXHRtYWluLm8gY21kLm8gZGVidWdmcy5vIGZ3Lm8gZXEubyB1YXIubyBwYWdlYWxsb2MubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE1LVxcdFxcdGhlYWx0aC5vIG1jZy5vIGNxLm8gYWxsb2MubyBwb3J0Lm8gbXIubyBwZC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0yNS0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjI2Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0NPUkVfRU4pICs9IGVuL3JxdC5vIGVuL3Rpci5vIGVuL3Jzcy5vIGVuL3J4X3Jlcy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMjctXFx0XFx0ZW4vY2hhbm5lbHMubyBlbl9tYWluLm8gZW5fY29tbW9uLm8gZW5fZnMubyBlbl9ldGh0b29sLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTM3LSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6Mzg6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fQVJGUykgICAgICs9IGVuX2FyZnMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTozOTptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FTl9SWE5GQykgICAgKz0gZW5fZnNfZXRodG9vbC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQwOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0NPUkVfRU5fRENCKSArPSBlbl9kY2JubC5vIGVuL3BvcnRfYnVmZmVyLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NDE6bWx4NV9jb3JlLSQoQ09ORklHX1BDSV9IWVBFUlZfSU5URVJGQUNFKSArPSBlbi9odl92aGNhX3N0YXRzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NDI6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRVNXSVRDSCkgICAgICs9IGxhZy9tcC5vIGxhZy9wb3J0X3NlbC5vIGxpYi9nZW5ldmUubyBsaWIvcG9ydF90dW4ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTQzLVxcdFxcdFxcdFxcdFxcdGVuX3JlcC5vIGVuL3JlcC9ib25kLm8gZW4vbW9kX2hkci5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNDQtXFx0XFx0XFx0XFx0XFx0ZW4vbWFwcGluZy5vIGxhZy9tcGVzdy5vIGxhZy9zaGFyZWRfZmRiLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NDU6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfQ0xTX0FDVCkgICAgICs9IGVuX3RjLm8gZW4vcmVwL3RjLm8gZW4vcmVwL25laWdoLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS00Ni1cXHRcXHRcXHRcXHRcXHRsaWIvZnNfY2hhaW5zLm8gZW4vdGNfdHVuLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo1MzptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DTFNfQUNUKSAgICAgKz0gZW4vdGMvYWN0L2FjdC5vIGVuL3RjL2FjdC9kcm9wLm8gZW4vdGMvYWN0L3RyYXAubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTU0LVxcdFxcdFxcdFxcdFxcdGVuL3RjL2FjdC9hY2NlcHQubyBlbi90Yy9hY3QvbWFyay5vIGVuL3RjL2FjdC9nb3RvLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlPTYxPWlmbmVxICgkKENPTkZJR19NTFg1X1RDX0NUKSwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjYyOlxcdG1seDVfY29yZS15XFx0XFx0XFx0ICAgICArPSBlbi90Y19jdC5vIGVuL3RjL2N0X2ZzX2RtZnMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2MzpcXHRtbHg1X2NvcmUtJChDT05GSUdfTUxYNV9TV19TVEVFUklORykgKz0gZW4vdGMvY3RfZnNfc21mcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjY0OlxcdG1seDVfY29yZS0kKENPTkZJR19NTFg1X0hXX1NURUVSSU5HKSArPSBlbi90Yy9jdF9mc19obWZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNjUtZW5kaWZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjY3Om1seDVfY29yZS0kKENPTkZJR19NTFg1X1RDX1NBTVBMRSkgICArPSBlbi90Yy9zYW1wbGUub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS02OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS03MS0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjcyOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgKz0gZXN3aXRjaC5vIGVzd2l0Y2hfb2ZmbG9hZHMubyBlc3dpdGNoX29mZmxvYWRzX3Rlcm10YmwubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTczLVxcdFxcdFxcdFxcdCAgICAgIGVjcGYubyByZG1hLm8gZXN3L2xlZ2FjeS5vIGVzdy9hZGpfdnBvcnQubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjc2Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgKz0gZXN3L2FjbC9oZWxwZXIubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTc3LVxcdFxcdFxcdFxcdCAgICAgIGVzdy9hY2wvZWdyZXNzX2xnY3kubyBlc3cvYWNsL2VncmVzc19vZmxkLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlPTgwPWlmbmVxICgkKENPTkZJR19NTFg1X0VOX0lQU0VDKSwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjgxOlxcdG1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgKz0gZXN3L2lwc2VjX2ZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODItZW5kaWZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjg0Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0JSSURHRSkgICAgKz0gZXN3L2JyaWRnZS5vIGVzdy9icmlkZ2VfbWNhc3QubyBlc3cvYnJpZGdlX2RlYnVnZnMubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTg1LVxcdFxcdFxcdFxcdCAgICAgIGVuL3JlcC9icmlkZ2Uub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6ODc6bWx4NV9jb3JlLSQoQ09ORklHX0hXTU9OKSAgICAgICAgICArPSBod21vbi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjg4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X01QRlMpICAgICAgKz0gbGliL21wZnMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04OS1pZm5lcSAoJChDT05GSUdfVlhMQU4pLClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6OTA6XFx0bWx4NV9jb3JlLXlcXHRcXHQgICArPSBsaWIvdnhsYW4ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS05MS1lbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo5MjptbHg1X2NvcmUtJChDT05GSUdfUFRQXzE1ODhfQ0xPQ0spICs9IGxpYi9jbG9jay5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjkzOm1seDVfY29yZS0kKENPTkZJR19QQ0lfSFlQRVJWX0lOVEVSRkFDRSkgKz0gbGliL2h2Lm8gbGliL2h2X3ZoY2Eub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS05NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS05Ny0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjk4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0NPUkVfSVBPSUIpICs9IGlwb2liL2lwb2liLm8gaXBvaWIvZXRodG9vbC5vIGlwb2liL2lwb2liX3ZsYW4ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS05OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDItI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMDM6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRlBHQSkgKz0gZnBnYS9jbWQubyBmcGdhL2NvcmUubyBmcGdhL2Nvbm4ubyBmcGdhL3Nkay5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTA1Om1seDVfY29yZS0kKENPTkZJR19NTFg1X01BQ1NFQykgKz0gZW5fYWNjZWwvbWFjc2VjLm8gbGliL21hY3NlY19mcy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTA2LVxcdFxcdFxcdFxcdCAgICAgIGVuX2FjY2VsL21hY3NlY19zdGF0cy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTA4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX0lQU0VDKSArPSBlbl9hY2NlbC9pcHNlYy5vIGVuX2FjY2VsL2lwc2VjX3J4dHgubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwOS1cXHRcXHRcXHRcXHQgICAgIGVuX2FjY2VsL2lwc2VjX3N0YXRzLm8gZW5fYWNjZWwvaXBzZWNfZnMubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMTI6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fVExTKSArPSBlbl9hY2NlbC9rdGxzX3N0YXRzLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMTMtXFx0XFx0XFx0XFx0ICAgZW5fYWNjZWwvZnNfdGNwLm8gZW5fYWNjZWwva3Rscy5vIGVuX2FjY2VsL2t0bHNfdHhyeC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjExNjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FTl9QU1ApICs9IGVuX2FjY2VsL3BzcC5vIGVuX2FjY2VsL3BzcF9yeHR4Lm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTE3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEyMC0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjEyMTptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9TV19TVEVFUklORykgKz0gc3RlZXJpbmcvc3dzL2RyX2RvbWFpbi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTIyLVxcdFxcdFxcdFxcdFxcdHN0ZWVyaW5nL3N3cy9kcl90YWJsZS5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNDUtI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNDY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfSFdfU1RFRVJJTkcpICs9IHN0ZWVyaW5nL2h3cy9jbWQubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE0Ny1cXHRcXHRcXHRcXHRcXHRzdGVlcmluZy9od3MvY29udGV4dC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNjctI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNjg6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU0YpICs9IHNmL3ZoY2FfZXZlbnQubyBzZi9kZXYvZGV2Lm8gc2YvZGV2L2RyaXZlci5vIGlycV9hZmZpbml0eS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE2OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNzItI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNzM6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU0ZfTUFOQUdFUikgKz0gc2YvY21kLm8gc2YvaHdfdGFibGUubyBzZi9kZXZsaW5rLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTc0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE3Ny0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE3ODptbHg1X2NvcmUtJChDT05GSUdfUENJRV9UUEgpICs9IGxpYi9zdC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE3OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQ1OiNpbmNsdWRlIFxcXCJtbHg1X2NvcmUuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTU4PXN0cnVjdCBtbHg1X2RtYV9wb29sIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTYxLVxcdHN0cnVjdCBsaXN0X2hlYWQgcGFnZV9saXN0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjYyOlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNjMtXFx0aW50IG5vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz03OT1zdHJ1Y3QgbWx4NV9kbWFfcG9vbF9zdGF0cyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy04OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo5MDpzdGF0aWMgdm9pZCAqbWx4NV9kbWFfemFsbG9jX2NvaGVyZW50X25vZGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy05MS1cXHRcXHRcXHRcXHRcXHQgICBzaXplX3Qgc2l6ZSwgZG1hX2FkZHJfdCAqZG1hX2hhbmRsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTkzLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo5NDpcXHRzdHJ1Y3QgZGV2aWNlICpkZXZpY2UgPSBtbHg1X2NvcmVfZG1hX2RldihkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTk1LVxcdHN0cnVjdCBtbHg1X3ByaXYgKnByaXYgPSBcXHUwMDI2ZGV2LVxcdTAwM2Vwcml2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9MTA5PXN0YXRpYyB2b2lkIG1seDVfZG1hX3Bvb2xfZGVzdHJveShzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTExNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxMTU6c3RhdGljIHN0cnVjdCBtbHg1X2RtYV9wb29sICptbHg1X2RtYV9wb29sX2NyZWF0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTExNi1cXHRcXHRcXHRcXHRcXHRcXHQgIGludCBub2RlLCB1OCBibG9ja19zaGlmdClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTEzMz1tbHg1X2RtYV9wb29sX3BhZ2VfYWxsb2Moc3RydWN0IG1seDVfZG1hX3Bvb2wgKnBvb2wpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MTYzOnN0YXRpYyB2b2lkIG1seDVfZG1hX3Bvb2xfcGFnZV9mcmVlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTY0LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbWx4NV9kbWFfcG9vbF9wYWdlICpwYWdlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE2NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MTY2OlxcdGRtYV9mcmVlX2NvaGVyZW50KG1seDVfY29yZV9kbWFfZGV2KGRldiksIFBBR0VfU0laRSwgcGFnZS1cXHUwMDNlYnVmLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE2Ny1cXHRcXHRcXHQgIHBhZ2UtXFx1MDAzZWRtYSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz0yODM9c3RhdGljIHN0cnVjdCBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHMgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjI4NDptbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHNfY3JlYXRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBub2RlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI4NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz0zMDc9bWx4NV9mcmFnX2J1Zl9kbWFfcG9vbHNfZGVidWdmc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqcHJpdilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMDgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMwOTpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMTAtXFx0aW50IG5vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz0zMzY9REVGSU5FX1NIT1dfQVRUUklCVVRFKG1seDVfZnJhZ19idWZfZG1hX3Bvb2xzX2RlYnVnZnMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMzNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozMzg6dm9pZCBtbHg1X2ZyYWdfYnVmX3Bvb2xzX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMzkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjM1OTppbnQgbWx4NV9mcmFnX2J1Zl9wb29sc19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzYwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozODg6aW50IG1seDVfZnJhZ19idWZfYWxsb2Nfbm9kZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgc2l6ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zODktXFx0XFx0XFx0ICAgICBzdHJ1Y3QgbWx4NV9mcmFnX2J1ZiAqYnVmLCBpbnQgbm9kZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTQyNT1FWFBPUlRfU1lNQk9MX0dQTChtbHg1X2ZyYWdfYnVmX2FsbG9jX25vZGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQyNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0Mjc6dm9pZCBtbHg1X2ZyYWdfYnVmX2ZyZWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZnJhZ19idWYgKmJ1ZilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00Mjgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9NDQ1PUVYUE9SVF9TWU1CT0xfR1BMKG1seDVfZnJhZ19idWZfZnJlZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQ0NzpzdGF0aWMgc3RydWN0IG1seDVfZGJfcGdkaXIgKm1seDVfYWxsb2NfZGJfcGdkaXIoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NDgtXFx0XFx0XFx0XFx0XFx0XFx0IGludCBub2RlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9NDc2PXN0YXRpYyBpbnQgbWx4NV9hbGxvY19kYl9mcm9tX3BnZGlyKHN0cnVjdCBtbHg1X2RiX3BnZGlyICpwZ2RpcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1MDE6aW50IG1seDVfZGJfYWxsb2Nfbm9kZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9kYiAqZGIsIGludCBub2RlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUwMi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz01Mjg9RVhQT1JUX1NZTUJPTF9HUEwobWx4NV9kYl9hbGxvY19ub2RlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01MjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTMwOnZvaWQgbWx4NV9kYl9mcmVlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2RiICpkYilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01MzEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTM4LVxcdGlmIChiaXRtYXBfZnVsbChkYi1cXHUwMDNldS5wZ2Rpci1cXHUwMDNlYml0bWFwLCBkYl9wZXJfcGFnZSkpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1Mzk6XFx0XFx0ZG1hX2ZyZWVfY29oZXJlbnQobWx4NV9jb3JlX2RtYV9kZXYoZGV2KSwgUEFHRV9TSVpFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTU0MC1cXHRcXHRcXHRcXHQgIGRiLVxcdTAwM2V1LnBnZGlyLVxcdTAwM2VkYl9wYWdlLCBkYi1cXHUwMDNldS5wZ2Rpci1cXHUwMDNlZGJfZG1hKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy00My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6NDQ6I2luY2x1ZGUgXFxcIm1seDVfY29yZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy00NS0jaW5jbHVkZSBcXFwibGliL2VxLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjgzPXN0YXRpYyB2b2lkIHBvbGxfdGltZW91dChzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjg0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6Mjg1OlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBjb250YWluZXJfb2YoZW50LVxcdTAwM2VjbWQsIHN0cnVjdCBtbHg1X2NvcmVfZGV2LCBjbWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yODYtXFx0dTY0IGNtZF90b19tcyA9IG1seDVfdG91dF9tcyhkZXYsIENNRCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MzMxPXN0YXRpYyB2b2lkIGR1bXBfYnVmKHZvaWQgKmJ1ZiwgaW50IHNpemUsIGludCBkYXRhX29ubHksIGludCBvZmZzZXQsIGludCBpZHgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMzQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzozNDc6c3RhdGljIGludCBtbHg1X2ludGVybmFsX2Vycl9yZXRfdmFsdWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IG9wLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0zNDgtXFx0XFx0XFx0XFx0ICAgICAgIHUzMiAqc3luZCwgdTggKnN0YXR1cylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy01NDYtXFx0ZGVmYXVsdDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6NTQ3OlxcdFxcdG1seDVfY29yZV9lcnIoZGV2LCBcXFwiVW5rbm93biBGVyBjb21tYW5kICglZClcXFxcblxcXCIsIG9wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtNTQ4LVxcdFxcdHJldHVybiAtRUlOVkFMO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTc5Mz1zdGF0aWMgaW50IGNtZF9zdGF0dXNfdG9fZXJyKHU4IHN0YXR1cylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjgxNzp2b2lkIG1seDVfY21kX291dF9lcnIoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IG9wY29kZSwgdTE2IG9wX21vZCwgdm9pZCAqb3V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MTgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTgyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODIyOlxcdG1seDVfY29yZV9lcnJfcmwoZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MjMtXFx0XFx0XFx0IFxcXCIlcygweCV4KSBvcF9tb2QoMHgleCkgZmFpbGVkLCBzdGF0dXMgJXMoMHgleCksIHN5bmRyb21lICgweCV4KSwgZXJyKCVkKVxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz04Mjc9RVhQT1JUX1NZTUJPTChtbHg1X2NtZF9vdXRfZXJyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODI4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo4Mjk6c3RhdGljIHZvaWQgY21kX3N0YXR1c19wcmludChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB2b2lkICppbiwgdm9pZCAqb3V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MzAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg0NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODQ1OmludCBtbHg1X2NtZF9jaGVjayhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgZXJyLCB2b2lkICppbiwgdm9pZCAqb3V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04NDYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTg3Mj1FWFBPUlRfU1lNQk9MKG1seDVfY21kX2NoZWNrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODczLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo4NzQ6c3RhdGljIHZvaWQgZHVtcF9jb21tYW5kKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg3NS1cXHRcXHRcXHQgc3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQsIGludCBpbnB1dClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04ODUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjg4NjpcXHRtbHg1X2NvcmVfZGJnKGRldiwgXFxcImNtZFslZF06IHN0YXJ0IGR1bXBcXFxcblxcXCIsIGVudC1cXHUwMDNlaWR4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODg3OlxcdGRhdGFfb25seSA9ICEhKG1seDVfY29yZV9kZWJ1Z19tYXNrIFxcdTAwMjYgKDEgXFx1MDAzY1xcdTAwM2MgTUxYNV9DTURfREFUQSkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04ODgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg4OS1cXHRpZiAoZGF0YV9vbmx5KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo4OTA6XFx0XFx0bWx4NV9jb3JlX2RiZ19tYXNrKGRldiwgMSBcXHUwMDNjXFx1MDAzYyBNTFg1X0NNRF9EQVRBLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04OTEtXFx0XFx0XFx0XFx0ICAgXFxcImNtZFslZF06IGR1bXAgY29tbWFuZCBkYXRhICVzKDB4JXgpICVzXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg5NC1cXHRlbHNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjg5NTpcXHRcXHRtbHg1X2NvcmVfZGJnKGRldiwgXFxcImNtZFslZF06IGR1bXAgY29tbWFuZCAlcygweCV4KSAlc1xcXFxuXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODk2LVxcdFxcdFxcdCAgICAgIGVudC1cXHUwMDNlaWR4LCBtbHg1X2NvbW1hbmRfc3RyKG9wKSwgb3AsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTE3LVxcdFxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjkxODpcXHRcXHRcXHRtbHg1X2NvcmVfZGJnKGRldiwgXFxcImNtZFslZF06IGNvbW1hbmQgYmxvY2s6XFxcXG5cXFwiLCBlbnQtXFx1MDAzZWlkeCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTkxOS1cXHRcXHRcXHRkdW1wX2J1ZihuZXh0LVxcdTAwM2VidWYsIHNpemVvZihzdHJ1Y3QgbWx4NV9jbWRfcHJvdF9ibG9jayksIDAsIG9mZnNldCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05MjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjkyOTpcXHRtbHg1X2NvcmVfZGJnKGRldiwgXFxcImNtZFslZF06IGVuZCBkdW1wXFxcXG5cXFwiLCBlbnQtXFx1MDAzZWlkeCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTkzMC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTkzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6OTMyOnN0YXRpYyB2b2lkIG1seDVfY21kX2NvbXBfaGFuZGxlcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1NjQgdmVjLCBib29sIGZvcmNlZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTkzMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9OTM0PXN0YXRpYyB2b2lkIGNiX3RpbWVvdXRfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTM5LVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgY2JfdGltZW91dF93b3JrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6OTQwOlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBjb250YWluZXJfb2YoZW50LVxcdTAwM2VjbWQsIHN0cnVjdCBtbHg1X2NvcmVfZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NDEtXFx0XFx0XFx0XFx0XFx0XFx0IGNtZCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTQ2LVxcdGlmICghdGVzdF9iaXQoTUxYNV9DTURfRU5UX1NUQVRFX1BFTkRJTkdfQ09NUCwgXFx1MDAyNmVudC1cXHUwMDNlc3RhdGUpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk0NzpcXHRcXHRtbHg1X2NvcmVfd2FybihkZXYsIFxcXCJjbWRbJWRdOiAlcygweCV4KSBBc3luYywgcmVjb3ZlcmVkIGFmdGVyIHRpbWVvdXRcXFxcblxcXCIsIGVudC1cXHUwMDNlaWR4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NDgtXFx0XFx0XFx0ICAgICAgIG1seDVfY29tbWFuZF9zdHIoZW50LVxcdTAwM2VvcCksIGVudC1cXHUwMDNlb3ApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk1Mi1cXHRlbnQtXFx1MDAzZXJldCA9IC1FVElNRURPVVQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk1MzpcXHRtbHg1X2NvcmVfd2FybihkZXYsIFxcXCJjbWRbJWRdOiAlcygweCV4KSBBc3luYywgdGltZW91dC4gV2lsbCBjYXVzZSBhIGxlYWsgb2YgYSBjb21tYW5kIHJlc291cmNlXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NTQtXFx0XFx0ICAgICAgIGVudC1cXHUwMDNlaWR4LCBtbHg1X2NvbW1hbmRfc3RyKGVudC1cXHUwMDNlb3ApLCBlbnQtXFx1MDAzZW9wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk2MTpzdGF0aWMgdm9pZCBmcmVlX21zZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jbWRfbXNnICptc2cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5NjI6c3RhdGljIHZvaWQgbWx4NV9mcmVlX2NtZF9tc2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTYzLVxcdFxcdFxcdCAgICAgIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1zZyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9OTY1PXN0YXRpYyBib29sIG9wY29kZV9hbGxvd2VkKHN0cnVjdCBtbHg1X2NtZCAqY21kLCB1MTYgb3Bjb2RlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6OTczOmJvb2wgbWx4NV9jbWRfaXNfZG93bihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NzQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTk4MD1zdGF0aWMgdm9pZCBjbWRfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05ODUtXFx0c3RydWN0IG1seDVfY21kX2xheW91dCAqbGF5O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5ODY6XFx0c3RydWN0IG1seDVfY29yZV9kZXYgKmRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTg3LVxcdHVuc2lnbmVkIGxvbmcgdGltZW91dDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05OTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk5NDpcXHRkZXYgPSBjb250YWluZXJfb2YoY21kLCBzdHJ1Y3QgbWx4NV9jb3JlX2RldiwgY21kKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTk1LVxcdHRpbWVvdXQgPSBtc2Vjc190b19qaWZmaWVzKG1seDVfdG91dF9tcyhkZXYsIENNRCkpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk5OC1cXHRcXHRpZiAoZG93bl90aW1lb3V0KFxcdTAwMjZjbWQtXFx1MDAzZXZhcnMuc2VtLCB0aW1lb3V0KSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5OTk6XFx0XFx0XFx0bWx4NV9jb3JlX3dhcm4oZGV2LCBcXFwiJXMoMHgleCkgdGltZWQgb3V0IHdoaWxlIHdhaXRpbmcgZm9yIGEgc2xvdC5cXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEwMDAtXFx0XFx0XFx0XFx0ICAgICAgIG1seDVfY29tbWFuZF9zdHIoZW50LVxcdTAwM2VvcCksIGVudC1cXHUwMDNlb3ApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEwMTUtXFx0XFx0aWYgKGFsbG9jX3JldCBcXHUwMDNjIDApIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTAxNjpcXHRcXHRcXHRtbHg1X2NvcmVfZXJyX3JsKGRldiwgXFxcImZhaWxlZCB0byBhbGxvY2F0ZSBjb21tYW5kIGVudHJ5XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTAxNy1cXHRcXHRcXHRpZiAoZW50LVxcdTAwM2VjYWxsYmFjaykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEwNzItXFx0LyogcmluZyBkb29yYmVsbCBhZnRlciB0aGUgZGVzY3JpcHRvciBpcyB2YWxpZCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMDczOlxcdG1seDVfY29yZV9kYmcoZGV2LCBcXFwid3JpdGluZyAweCV4IHRvIGNvbW1hbmQgZG9vcmJlbGxcXFxcblxcXCIsIDEgXFx1MDAzY1xcdTAwM2MgZW50LVxcdTAwM2VpZHgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMDc0LVxcdHdtYigpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTExNDA9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE0My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTE0NDpzdGF0aWMgdm9pZCB3YWl0X2Z1bmNfaGFuZGxlX2V4ZWNfdGltZW91dChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTQ1LVxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE1Ni1cXHRpZiAod2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KFxcdTAwMjZlbnQtXFx1MDAzZWRvbmUsIHRpbWVvdXQpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjExNTc6XFx0XFx0bWx4NV9jb3JlX3dhcm4oZGV2LCBcXFwiY21kWyVkXTogJXMoMHgleCkgcmVjb3ZlcmVkIGFmdGVyIHRpbWVvdXRcXFxcblxcXCIsIGVudC1cXHUwMDNlaWR4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTU4LVxcdFxcdFxcdCAgICAgICBtbHg1X2NvbW1hbmRfc3RyKGVudC1cXHUwMDNlb3ApLCBlbnQtXFx1MDAzZW9wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTYxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMTYyOlxcdG1seDVfY29yZV93YXJuKGRldiwgXFxcImNtZFslZF06ICVzKDB4JXgpIE5vIGRvbmUgY29tcGxldGlvblxcXFxuXFxcIiwgZW50LVxcdTAwM2VpZHgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExNjMtXFx0XFx0ICAgICAgIG1seDVfY29tbWFuZF9zdHIoZW50LVxcdTAwM2VvcCksIGVudC1cXHUwMDNlb3ApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExNjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjExNjk6c3RhdGljIGludCB3YWl0X2Z1bmMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExNzAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExOTEtXFx0aWYgKGVyciA9PSAtRVRJTUVET1VUKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjExOTI6XFx0XFx0bWx4NV9jb3JlX3dhcm4oZGV2LCBcXFwiJXMoMHgleCkgdGltZW91dC4gV2lsbCBjYXVzZSBhIGxlYWsgb2YgYSBjb21tYW5kIHJlc291cmNlXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTkzLVxcdFxcdFxcdCAgICAgICBtbHg1X2NvbW1hbmRfc3RyKGVudC1cXHUwMDNlb3ApLCBlbnQtXFx1MDAzZW9wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE5NC1cXHR9IGVsc2UgaWYgKGVyciA9PSAtRUNBTkNFTEVEKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjExOTU6XFx0XFx0bWx4NV9jb3JlX3dhcm4oZGV2LCBcXFwiJXMoMHgleCkgY2FuY2VsZWQgb24gb3V0IG9mIHF1ZXVlIHRpbWVvdXQuXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTk2LVxcdFxcdFxcdCAgICAgICBtbHg1X2NvbW1hbmRfc3RyKGVudC1cXHUwMDNlb3ApLCBlbnQtXFx1MDAzZW9wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE5Ny1cXHR9IGVsc2UgaWYgKGVyciA9PSAtRUJVU1kpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTE5ODpcXHRcXHRtbHg1X2NvcmVfd2FybihkZXYsIFxcXCIlcygweCV4KSB0aW1lb3V0IHdoaWxlIHdhaXRpbmcgZm9yIGNvbW1hbmQgc2VtYXBob3JlLlxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE5OS1cXHRcXHRcXHQgICAgICAgbWx4NV9jb21tYW5kX3N0cihlbnQtXFx1MDAzZW9wKSwgZW50LVxcdTAwM2VvcCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyMDAtXFx0fVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMjAxOlxcdG1seDVfY29yZV9kYmcoZGV2LCBcXFwiZXJyICVkLCBkZWxpdmVyeSBzdGF0dXMgJXMoJWQpXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjAyLVxcdFxcdCAgICAgIGVyciwgZGVsaXZfc3RhdHVzX3RvX3N0cihlbnQtXFx1MDAzZXN0YXR1cyksIGVudC1cXHUwMDNlc3RhdHVzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjE1LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMjE2OnN0YXRpYyBib29sIG1seDVfY21kX2FsbF9zdGFsbGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyMTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyNTgtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjEyNTk6c3RhdGljIGludCBtbHg1X2NtZF9pbnZva2Uoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY21kX21zZyAqaW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyNjAtXFx0XFx0XFx0ICAgc3RydWN0IG1seDVfY21kX21zZyAqb3V0LCB2b2lkICp1b3V0LCBpbnQgdW91dF9zaXplLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyNzUtXFx0aWYgKCFwYWdlX3F1ZXVlIFxcdTAwMjZcXHUwMDI2IG1seDVfY21kX2FsbF9zdGFsbGVkKGRldikpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTI3NjpcXHRcXHRtbHg1X2NvcmVfZXJyX3JsKGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTI3Ny1cXHRcXHRcXHRcXHQgXFxcIkFsbCBDTUQgc2xvdHMgYXJlIHN0YWxsZWQsIGFib3J0aW5nIGNvbW1hbmRcXFxcblxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEzMDYtXFx0fSBlbHNlIGlmICghcXVldWVfd29yayhjbWQtXFx1MDAzZXdxLCBcXHUwMDI2ZW50LVxcdTAwM2V3b3JrKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMzA3OlxcdFxcdG1seDVfY29yZV93YXJuKGRldiwgXFxcImZhaWxlZCB0byBxdWV1ZSB3b3JrXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTMwOC1cXHRcXHRlcnIgPSAtRUFMUkVBRFk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTMyNi1cXHR9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjEzMjc6XFx0bWx4NV9jb3JlX2RiZ19tYXNrKGRldiwgMSBcXHUwMDNjXFx1MDAzYyBNTFg1X0NNRF9USU1FLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMzI4LVxcdFxcdFxcdCAgIFxcXCJmdyBleGVjIHRpbWUgZm9yICVzIGlzICVsbGQgbnNlY1xcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xMzM3PXN0YXRpYyBzc2l6ZV90IGRiZ193cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMzM5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTM0MDpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cXHUwMDNlcHJpdmF0ZV9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMzQxLVxcdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXFx1MDAyNmRldi1cXHUwMDNlY21kLmRiZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNDA0PXN0YXRpYyBpbnQgbWx4NV9jb3B5X2Zyb21fbXNnKHZvaWQgKnRvLCBzdHJ1Y3QgbWx4NV9jbWRfbXNnICpmcm9tLCBpbnQgc2l6ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNDM3OnN0YXRpYyBzdHJ1Y3QgbWx4NV9jbWRfbWFpbGJveCAqYWxsb2NfY21kX2JveChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDM4LVxcdFxcdFxcdFxcdFxcdCAgICAgIGdmcF90IGZsYWdzKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0NDgtXFx0aWYgKCFtYWlsYm94LVxcdTAwM2VidWYpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTQ0OTpcXHRcXHRtbHg1X2NvcmVfZGJnKGRldiwgXFxcImZhaWxlZCBhbGxvY2F0aW9uXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQ1MC1cXHRcXHRrZnJlZShtYWlsYm94KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNDU4OnN0YXRpYyB2b2lkIGZyZWVfY21kX2JveChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDU5LVxcdFxcdFxcdCBzdHJ1Y3QgbWx4NV9jbWRfbWFpbGJveCAqbWFpbGJveClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNDY1OnN0YXRpYyBzdHJ1Y3QgbWx4NV9jbWRfbXNnICptbHg1X2FsbG9jX2NtZF9tc2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQ2Ni1cXHRcXHRcXHRcXHRcXHQgICAgICAgZ2ZwX3QgZmxhZ3MsIGludCBzaXplLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0ODUtXFx0XFx0aWYgKElTX0VSUih0bXApKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE0ODY6XFx0XFx0XFx0bWx4NV9jb3JlX3dhcm4oZGV2LCBcXFwiZmFpbGVkIGFsbG9jYXRpbmcgYmxvY2tcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDg3LVxcdFxcdFxcdGVyciA9IFBUUl9FUlIodG1wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNTEyOnN0YXRpYyB2b2lkIG1seDVfZnJlZV9jbWRfbXNnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1MTMtXFx0XFx0XFx0ICAgICAgc3RydWN0IG1seDVfY21kX21zZyAqbXNnKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1MjY9c3RhdGljIHNzaXplX3QgZGF0YV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTI4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTUyOTpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cXHUwMDNlcHJpdmF0ZV9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTMwLVxcdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXFx1MDAyNmRldi1cXHUwMDNlY21kLmRiZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNTUwPXN0YXRpYyBzc2l6ZV90IGRhdGFfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1NTIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNTUzOlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBmaWxwLVxcdTAwM2Vwcml2YXRlX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1NTQtXFx0c3RydWN0IG1seDVfY21kX2RlYnVnICpkYmcgPSBcXHUwMDI2ZGV2LVxcdTAwM2VjbWQuZGJnO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1NzA9c3RhdGljIHNzaXplX3Qgb3V0bGVuX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTcyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU3MzpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cXHUwMDNlcHJpdmF0ZV9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTc0LVxcdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXFx1MDAyNmRldi1cXHUwMDNlY21kLmRiZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNTg1PXN0YXRpYyBzc2l6ZV90IG91dGxlbl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTg3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU4ODpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cXHUwMDNlcHJpdmF0ZV9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTg5LVxcdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXFx1MDAyNmRldi1cXHUwMDNlY21kLmRiZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNjIxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG9sZm9wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjI4OnN0YXRpYyB2b2lkIHNldF93cW5hbWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTYyOS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTYzNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTYzNjpzdGF0aWMgdm9pZCBjbGVhbl9kZWJ1Z19maWxlcyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjM3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjQ2OnN0YXRpYyB2b2lkIGNyZWF0ZV9kZWJ1Z2ZzX2ZpbGVzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NDcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2NTk6dm9pZCBtbHg1X2NtZF9hbGxvd2VkX29wY29kZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgb3Bjb2RlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjYwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjc1OnN0YXRpYyB2b2lkIG1seDVfY21kX2NoYW5nZV9tb2Qoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IG1vZGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NzYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE2OTE9c3RhdGljIGludCBjbWRfY29tcF9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2OTMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjk0OlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2OTUtXFx0c3RydWN0IG1seDVfY21kICpjbWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY5OC1cXHRjbWQgPSBtbHg1X25iX2NvZihuYiwgc3RydWN0IG1seDVfY21kLCBuYik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2OTk6XFx0ZGV2ID0gY29udGFpbmVyX29mKGNtZCwgc3RydWN0IG1seDVfY29yZV9kZXYsIGNtZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE3MDAtXFx0ZXFlID0gZGF0YTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzA4LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTcwOTp2b2lkIG1seDVfY21kX3VzZV9ldmVudHMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcxMC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcxNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTcxNjp2b2lkIG1seDVfY21kX3VzZV9wb2xsaW5nKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE3MTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE3MjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE3MjI6c3RhdGljIHZvaWQgZnJlZV9tc2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY21kX21zZyAqbXNnKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzIzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzM1OnN0YXRpYyB2b2lkIG1seDVfY21kX2NvbXBfaGFuZGxlcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1NjQgdmVjLCBib29sIGZvcmNlZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTczNi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTc2NS1cXHRcXHRcXHRcXHRpZiAoIWZvcmNlZCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzY2OlxcdFxcdFxcdFxcdFxcdG1seDVfY29yZV9lcnIoZGV2LCBcXFwiQ29tbWFuZCBjb21wbGV0aW9uIGFycml2ZWQgYWZ0ZXIgdGltZW91dCAoZW50cnkgaWR4ID0gJWQpLlxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTc2Ny1cXHRcXHRcXHRcXHRcXHRcXHQgICAgICBlbnQtXFx1MDAzZWlkeCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTc5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTc5NDpcXHRcXHRcXHRcXHRtbHg1X2NvcmVfZGJnKGRldiwgXFxcImNvbW1hbmQgY29tcGxldGVkLiByZXQgMHgleCwgZGVsaXZlcnkgc3RhdHVzICVzKDB4JXgpXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzk1LVxcdFxcdFxcdFxcdFxcdCAgICAgIGVudC1cXHUwMDNlcmV0LCBkZWxpdl9zdGF0dXNfdG9fc3RyKGVudC1cXHUwMDNlc3RhdHVzKSwgZW50LVxcdTAwM2VzdGF0dXMpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE4MzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE4Mzk6c3RhdGljIHZvaWQgbWx4NV9jbWRfdHJpZ2dlcl9jb21wbGV0aW9ucyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODQwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxODY0OlxcdG1seDVfY29yZV9kYmcoZGV2LCBcXFwidmVjdG9yIDB4JWxseFxcXFxuXFxcIiwgdmVjdG9yKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTg2NS1cXHRtbHg1X2NtZF9jb21wX2hhbmRsZXIoZGV2LCB2ZWN0b3IsIHRydWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE4NzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE4NzQ6dm9pZCBtbHg1X2NtZF9mbHVzaChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODk2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxODk3OnN0YXRpYyBzdHJ1Y3QgbWx4NV9jbWRfbXNnICphbGxvY19tc2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IGluX3NpemUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE4OTgtXFx0XFx0XFx0XFx0ICAgICAgZ2ZwX3QgZ2ZwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE5MzU9c3RhdGljIGludCBpc19tYW5hZ2VfcGFnZXModm9pZCAqaW4pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTkzOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTk0MDpzdGF0aWMgYm9vbCBtbHg1X2hhc19wcml2aWxlZ2VkX3VpZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xOTQxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xOTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxOTQ1OnN0YXRpYyBib29sIG1seDVfY21kX2lzX3ByaXZpbGVnZWRfdWlkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE5NDYtXFx0XFx0XFx0XFx0ICAgICAgIHUxNiB1aWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTk1NC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTk1NTpzdGF0aWMgaW50IGNtZF9leGVjKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHZvaWQgKmluLCBpbnQgaW5fc2l6ZSwgdm9pZCAqb3V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xOTU2LVxcdFxcdCAgICBpbnQgb3V0X3NpemUsIG1seDVfY21kX2Nia190IGNhbGxiYWNrLCB2b2lkICpjb250ZXh0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE5OTktXFx0aWYgKGVycikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMDAwOlxcdFxcdG1seDVfY29yZV93YXJuKGRldiwgXFxcImVyciAlZFxcXFxuXFxcIiwgZXJyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjAwMS1cXHRcXHRnb3RvIG91dF9pbjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMDM1LVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwMTo1MTo1Mi4xNDQwMjMwNjZaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDA1NzYxMDk1NTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgTUxYNSBQYXRjaCdzIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgYENPTkZJR19NTFg1X0NPUkVgIOKAkyB0aGF0J3MgdGhlIGNvcmUgZHJpdmVyLCB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBcIkNhbiBzeXprYWxsZXIgZXZlbiB0b3VjaCB0aGlzIGNvZGU/XCIgSSBuZWVkIHRvIHZlcmlmeSBpZiBzeXprYWxsZXIgaXMgYWN0aXZlbHkgZnV6emluZyBtbHg1LiBJIGtub3cgaXQgaGFzIGEgYHN5el9wY2lfZGV2aWNlX2FkZGAgY2FsbCwgd2hpY2ggaXMgYSBzdGFydGluZyBwb2ludCBmb3IgUENJIGRldmljZSBpbnRlcmFjdGlvbiwgYnV0IGl0J3Mgbm90IGEgZ3VhcmFudGVlIHRvIHJlYWNoIGRlZXAgaW50byBuZXR3b3JrIGRyaXZlcnMgdW5sZXNzIHRoZXJlJ3MgZGVkaWNhdGVkIHN1cHBvcnQuIFxuXG5Ib2xkIG9uLCBtYXliZSB0aGUgcGF0Y2ggaXRzZWxmIGlzIGp1c3QgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIGRyaXZlcj8gSSBzaG91bGQgcmUtcmVhZCB0aG9zZSBpbnN0cnVjdGlvbnM6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucy4uLiBjb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLi4uXCJcblxuR2l2ZW4gdGhhdCBtbHg1IGlzIHRpZWQgdG8gcGh5c2ljYWwgaGFyZHdhcmUsIE1lbGxhbm94IENvbm5lY3RYIHNwZWNpZmljYWxseSwgYW5kIHRoZXJlJ3Mgbm8gbmF0aXZlIHNvZnR3YXJlIGVtdWxhdGlvbiBvZiBpdCBpbiBRRU1VIG9yIHRoZSBrZXJuZWwgKHVubGlrZSwgc2F5LCBhIHZpcnR1YWwgVVNCIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbSksIHRoZSBjb2RlIHBhdGhzIGFkZHJlc3NlZCBieSB0aGlzIHBhdGNoIGFyZSBkZWZpbml0aXZlbHkgaW5hY2Nlc3NpYmxlIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudC5cblxuTGV0IG1lIGp1c3QgY2hlY2sgZm9yIGFsdGVybmF0aXZlcyBqdXN0IGluIGNhc2UuLi4gSXMgdGhlcmUgYSB2RFBBIHBhdGg/IEFoLCBgdmRwYS9tbHg1YCAqcmVxdWlyZXMqIHRoZSBwaHlzaWNhbCBtbHg1IGRldmljZS4gV2hhdCBhYm91dCBuZXRkZXZzaW0/IE5vLCBpdCBoYW5kbGVzIHNvbWUgb2ZmbG9hZHMgYnV0IGRvZXNuJ3QgYWN0dWFsbHkgdXNlIG1seDUgY29kZS4gTW9jayBkcml2ZXJzPyBObyBkaWNlLlxuXG5BbHJpZ2h0LCBiYWNrIHRvIHRoZSBwYXRjaC4gSXQncyBtb2RpZnlpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jYCBhbmQgYGVuX3N0YXRzLmNgLCBzcGVjaWZpY2FsbHkgYG1seDVlX3BvbGxfdHhfY3FgLiBUaGlzIGlzIHVuZXF1aXZvY2FsbHkgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGNvZGUsIG5vIGlmcywgYW5kcywgb3IgYnV0cy4gU2luY2UgdGhlcmUncyBubyBzb2Z0d2FyZSBlbXVsYXRpb24sIHJlYWNoaW5nIHRoaXMgY29kZSBpbiBRRU1VIG9yIHNpbWlsYXIgZW52aXJvbm1lbnRzIGlzIGEgZGVhZCBlbmQuXG5cblRodXMsIEknbSBzZXR0aW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGFuZCBhZGRpbmcgdGhlIGZvbGxvd2luZyByZWFzb25pbmc6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBtbHg1IGV0aGVybmV0IGRyaXZlciAoYG1seDVlX3BvbGxfdHhfY3FgKS4gVGhpcyBpcyBhIHBoeXNpY2FsIGhhcmR3YXJlIGRyaXZlciBmb3IgTWVsbGFub3ggQ29ubmVjdFggYWRhcHRlcnMgYW5kIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIGl0IGluIFFFTVUgb3IgdGhlIGtlcm5lbC4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy5cIlxuXG5CdXQganVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIGxldCdzIGV4cGxvcmUgaWYgc3l6a2FsbGVyIGNhbiBibGluZGx5IHByb2JlIHRoZSBkcml2ZXIuICBJdCAqbWlnaHQqIGJlIGFibGUgdG8gcmVhY2ggc29tZSBjb2RlIGJ5IHVzaW5nIGBzeXpfcGNpX2RldmljZV9hZGRgIGFuZCBtYXBwaW5nIG1lbW9yeSBwbHVzIHJlc3BvbmRpbmcgdG8gTU1JTyByZWFkcywgaG93ZXZlciByZWFjaGluZyBgbWx4NWVfcG9sbF90eF9jcWAgbmVlZHMgYSBmdWxseSBpbml0aWFsaXplZCBkZXZpY2UsIG5ldGRldiByZWdpc3RyYXRpb24sIGJyaW5naW5nIGl0IHVwLCBhbmQgYSBUWCBpbnRlcnJ1cHQuIFRoYXQncyBwcmFjdGljYWxseSBpbXBvc3NpYmxlIGZvciBhIGJsaW5kIGZ1enplciB3aXRob3V0IHNwZWNpZmljIGVtdWxhdGlvbi4gUGx1cyB0aGUgaW5zdHJ1Y3Rpb25zIHNheTogXCJDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsICpldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlKi5cIiBTbywgbXkgY29uY2x1c2lvbiBob2xkcy5cblxuSSdtIGNhbGxpbmcgYHNldC1yZXN1bHRzYCB3aXRoIGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjA4MSwiT3V0cHV0VG9rZW5zIjoxMDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDE6NTI6MzIuNzIwMTM1NzY3WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM1NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IG1seDUgZXRoZXJuZXQgZHJpdmVyIChtbHg1ZV9wb2xsX3R4X2NxKS4gVGhpcyBpcyBhIHBoeXNpY2FsIGhhcmR3YXJlIGRyaXZlciBmb3IgTWVsbGFub3ggQ29ubmVjdFggYWRhcHRlcnMgYW5kIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIGl0IGluIFFFTVUgb3IgdGhlIGtlcm5lbC4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBtbHg1IGV0aGVybmV0IGRyaXZlciAobWx4NWVfcG9sbF90eF9jcSkuIFRoaXMgaXMgYSBwaHlzaWNhbCBoYXJkd2FyZSBkcml2ZXIgZm9yIE1lbGxhbm94IENvbm5lY3RYIGFkYXB0ZXJzIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gYXZhaWxhYmxlIGZvciBpdCBpbiBRRU1VIG9yIHRoZSBrZXJuZWwuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowtk8nx[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-03 01:45:09 +0000 UTC FinishedAt: 2026-07-03 01:52:34 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDAxOjUwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBtbHg1IGV0aGVybmV0IGRyaXZlciAobWx4NWVfcG9sbF90eF9jcSkuIFRoaXMgaXMgYSBwaHlzaWNhbCBoYXJkd2FyZSBkcml2ZXIgZm9yIE1lbGxhbm94IENvbm5lY3RYIGFkYXB0ZXJzIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gYXZhaWxhYmxlIGZvciBpdCBpbiBRRU1VIG9yIHRoZSBrZXJuZWwuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDAxOjUwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZTA5NTA0YmMwODY5ZDMwMmU3MGQxMDllNWZlNmNhMjExZGQzMjkwOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgSnVsIDMgMDE6NTA6MzkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuY1xuaW5kZXggN2YzMzI2MWJhNjU1M2IuLmI5NDAyODBhZjE5ZGJmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jXG5AQCAtMTcxLDYgJiM0MzsxNzEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBzd19zdGF0c19kZXNjW10gPSB7XG4gXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X2NxZXMpIH0sXG4gXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X3F1ZXVlX3dha2UpIH0sXG4gXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X2NxZV9lcnIpIH0sXG4mIzQzO1x0eyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF90aW1lX2J1ZGdldF9leGl0KSB9LFxuIFx0eyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF94ZHBfeG1pdCkgfSxcbiBcdHsgTUxYNUVfREVDTEFSRV9TVEFUKHN0cnVjdCBtbHg1ZV9zd19zdGF0cywgdHhfeGRwX21wd3FlKSB9LFxuIFx0eyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF94ZHBfaW5sbncpIH0sXG5AQCAtNDI2LDYgJiM0Mzs0MjcsNyBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9zdGF0c19ncnBfc3dfdXBkYXRlX3N0YXRzX3NxKHN0cnVjdCBtbHg1ZV9zd19zdGF0cyAqcyxcbiBcdHMtXHUwMDNldHhfcXVldWVfd2FrZSAgICAgICAgICAgICYjNDM7PSBzcV9zdGF0cy1cdTAwM2V3YWtlO1xuIFx0cy1cdTAwM2V0eF9xdWV1ZV9kcm9wcGVkICAgICAgICAgJiM0Mzs9IHNxX3N0YXRzLVx1MDAzZWRyb3BwZWQ7XG4gXHRzLVx1MDAzZXR4X2NxZV9lcnIgICAgICAgICAgICAgICAmIzQzOz0gc3Ffc3RhdHMtXHUwMDNlY3FlX2VycjtcbiYjNDM7XHRzLVx1MDAzZXR4X3RpbWVfYnVkZ2V0X2V4aXQgICAgICAmIzQzOz0gc3Ffc3RhdHMtXHUwMDNldGltZV9idWRnZXRfZXhpdDtcbiBcdHMtXHUwMDNldHhfcmVjb3ZlciAgICAgICAgICAgICAgICYjNDM7PSBzcV9zdGF0cy1cdTAwM2VyZWNvdmVyO1xuIFx0cy1cdTAwM2V0eF94bWl0X21vcmUgICAgICAgICAgICAgJiM0Mzs9IHNxX3N0YXRzLVx1MDAzZXhtaXRfbW9yZTtcbiBcdHMtXHUwMDNldHhfY3N1bV9wYXJ0aWFsX2lubmVyICAgICYjNDM7PSBzcV9zdGF0cy1cdTAwM2Vjc3VtX3BhcnRpYWxfaW5uZXI7XG5AQCAtMjMyMyw2ICYjNDM7MjMyNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHNxX3N0YXRzX2Rlc2NbXSA9IHtcbiBcdHsgTUxYNUVfREVDTEFSRV9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgY3FlcykgfSxcbiBcdHsgTUxYNUVfREVDTEFSRV9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgd2FrZSkgfSxcbiBcdHsgTUxYNUVfREVDTEFSRV9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgY3FlX2VycikgfSxcbiYjNDM7XHR7IE1MWDVFX0RFQ0xBUkVfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIHRpbWVfYnVkZ2V0X2V4aXQpIH0sXG4gfTtcbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBycV94ZHBzcV9zdGF0c19kZXNjW10gPSB7XG5AQCAtMjM5OSw2ICYjNDM7MjQwMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHB0cF9zcV9zdGF0c19kZXNjW10gPSB7XG4gXHR7IE1MWDVFX0RFQ0xBUkVfUFRQX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCBjcWVzKSB9LFxuIFx0eyBNTFg1RV9ERUNMQVJFX1BUUF9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgd2FrZSkgfSxcbiBcdHsgTUxYNUVfREVDTEFSRV9QVFBfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZV9lcnIpIH0sXG4mIzQzO1x0eyBNTFg1RV9ERUNMQVJFX1BUUF9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgdGltZV9idWRnZXRfZXhpdCkgfSxcbiB9O1xuIFxuIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHB0cF9jaF9zdGF0c19kZXNjW10gPSB7XG5AQCAtMjQ3Niw2ICYjNDM7MjQ4MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHFvc19zcV9zdGF0c19kZXNjW10gPSB7XG4gXHR7IE1MWDVFX0RFQ0xBUkVfUU9TX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCBjcWVzKSB9LFxuIFx0eyBNTFg1RV9ERUNMQVJFX1FPU19UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgd2FrZSkgfSxcbiBcdHsgTUxYNUVfREVDTEFSRV9RT1NfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZV9lcnIpIH0sXG4mIzQzO1x0eyBNTFg1RV9ERUNMQVJFX1FPU19UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgdGltZV9idWRnZXRfZXhpdCkgfSxcbiB9O1xuIFxuICNkZWZpbmUgTlVNX1JRX1NUQVRTXHRcdFx0QVJSQVlfU0laRShycV9zdGF0c19kZXNjKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmhcbmluZGV4IDA5ZjE1NWFjYjQ2MWJjLi41YmE5NTRmNDJjY2Q1YiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuaFxuQEAgLTE4Nyw2ICYjNDM7MTg3LDcgQEAgc3RydWN0IG1seDVlX3N3X3N0YXRzIHtcbiBcdHU2NCB0eF9jcWVzO1xuIFx0dTY0IHR4X3F1ZXVlX3dha2U7XG4gXHR1NjQgdHhfY3FlX2VycjtcbiYjNDM7XHR1NjQgdHhfdGltZV9idWRnZXRfZXhpdDtcbiBcdHU2NCB0eF94ZHBfeG1pdDtcbiBcdHU2NCB0eF94ZHBfbXB3cWU7XG4gXHR1NjQgdHhfeGRwX2lubG53O1xuQEAgLTQ0NSw2ICYjNDM7NDQ2LDcgQEAgc3RydWN0IG1seDVlX3NxX3N0YXRzIHtcbiBcdHU2NCBjcWVzIF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7XG4gXHR1NjQgd2FrZTtcbiBcdHU2NCBjcWVfZXJyO1xuJiM0MztcdHU2NCB0aW1lX2J1ZGdldF9leGl0O1xuIH07XG4gXG4gc3RydWN0IG1seDVlX3hkcHNxX3N0YXRzIHtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jXG5pbmRleCAwYjVlNjAwZTRhNmE5NS4uOTk0ZGY5MTJiNzY1Y2IgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmNcbkBAIC00Myw2ICYjNDM7NDMsMTMgQEBcbiAjaW5jbHVkZSBcJiMzNDtlbl9hY2NlbC9tYWNzZWMuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O2VuL3B0cC5oXCYjMzQ7XG4gI2luY2x1ZGUgXHUwMDNjbmV0L2lwdjYuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9tb2R1bGVwYXJhbS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L3NjaGVkL2Nsb2NrLmhcdTAwM2VcbiYjNDM7XG4mIzQzO3N0YXRpYyB1bnNpZ25lZCBpbnQgbWx4NWVfdHhfY3FfdGltZV9idWRnZXRfdXMgPSA1MDA7XG4mIzQzO21vZHVsZV9wYXJhbV9uYW1lZCh0eF9jcV90aW1lX2J1ZGdldF91cywgbWx4NWVfdHhfY3FfdGltZV9idWRnZXRfdXMsIHVpbnQsIDA2NDQpO1xuJiM0MztNT0RVTEVfUEFSTV9ERVNDKHR4X2NxX3RpbWVfYnVkZ2V0X3VzLFxuJiM0MztcdFx0IFwmIzM0O01heCBtaWNyb3NlY29uZHMgb25lIFRYIENRIHBvbGwgbWF5IHNwZW5kIGJlZm9yZSB5aWVsZGluZyAoMCA9IHVuYm91bmRlZClcJiMzNDspO1xuIFxuIHN0YXRpYyB2b2lkIG1seDVlX2RtYV91bm1hcF93cWVfZXJyKHN0cnVjdCBtbHg1ZV90eHFzcSAqc3EsIHU4IG51bV9kbWEpXG4ge1xuQEAgLTc2MCw5ICYjNDM7NzY3LDEyIEBAIHZvaWQgbWx4NWVfdHhxc3Ffd2FrZShzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxKVxuIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpXG4ge1xuIFx0c3RydWN0IG1seDVlX3NxX3N0YXRzICpzdGF0cztcbiYjNDM7XHRib29sIHRpbWVfZXhjZWVkZWQgPSBmYWxzZTtcbiYjNDM7XHR1NjQgdGltZV9idWRnZXRfZW5kID0gMDtcbiBcdHN0cnVjdCBtbHg1ZV90eHFzcSAqc3E7XG4gXHRzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlO1xuIFx0dTMyIGRtYV9maWZvX2NjO1xuJiM0MztcdHUzMiBidWRnZXRfdXM7XG4gXHR1MzIgbmJ5dGVzO1xuIFx0dTE2IG5wa3RzO1xuIFx0dTE2IHNxY2M7XG5AQCAtNzkwLDYgJiM0Mzs4MDAsMTAgQEAgYm9vbCBtbHg1ZV9wb2xsX3R4X2NxKHN0cnVjdCBtbHg1ZV9jcSAqY3EsIGludCBuYXBpX2J1ZGdldClcbiBcdC8qIGF2b2lkIGRpcnR5aW5nIHNxIGNhY2hlIGxpbmUgZXZlcnkgY3FlICovXG4gXHRkbWFfZmlmb19jYyA9IHNxLVx1MDAzZWRtYV9maWZvX2NjO1xuIFxuJiM0MztcdGJ1ZGdldF91cyA9IFJFQURfT05DRShtbHg1ZV90eF9jcV90aW1lX2J1ZGdldF91cyk7XG4mIzQzO1x0aWYgKGJ1ZGdldF91cylcbiYjNDM7XHRcdHRpbWVfYnVkZ2V0X2VuZCA9IGxvY2FsX2Nsb2NrKCkgJiM0MzsgKHU2NClidWRnZXRfdXMgKiBOU0VDX1BFUl9VU0VDO1xuJiM0MztcbiBcdGkgPSAwO1xuIFx0ZG8ge1xuIFx0XHRzdHJ1Y3QgbWx4NWVfdHhfd3FlX2luZm8gKndpO1xuQEAgLTg0Miw4ICYjNDM7ODU2LDE5IEBAIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpXG4gXHRcdFx0c3RhdHMtXHUwMDNlY3FlX2VyciYjNDM7JiM0Mzs7XG4gXHRcdH1cbiBcbiYjNDM7XHRcdC8qIENoZWNrIGJldHdlZW4gQ1FFcyBvbmx5IChzcWNjL2RtYV9maWZvX2NjIG11c3QgYWR2YW5jZSB0b2dldGhlcikuICovXG4mIzQzO1x0XHRpZiAodW5saWtlbHkodGltZV9idWRnZXRfZW5kIFx1MDAyNlx1MDAyNiAoaSBcdTAwMjYgNykgPT0gNyBcdTAwMjZcdTAwMjZcbiYjNDM7XHRcdFx0ICAgICBsb2NhbF9jbG9jaygpIFx1MDAzZT0gdGltZV9idWRnZXRfZW5kKSkge1xuJiM0MztcdFx0XHR0aW1lX2V4Y2VlZGVkID0gdHJ1ZTtcbiYjNDM7XHRcdFx0aSYjNDM7JiM0Mzs7XG4mIzQzO1x0XHRcdGJyZWFrO1xuJiM0MztcdFx0fVxuJiM0MztcbiBcdH0gd2hpbGUgKCgmIzQzOyYjNDM7aSBcdTAwM2MgTUxYNUVfVFhfQ1FfUE9MTF9CVURHRVQpIFx1MDAyNlx1MDAyNiAoY3FlID0gbWx4NV9jcXdxX2dldF9jcWUoXHUwMDI2Y3EtXHUwMDNld3EpKSk7XG4gXG4mIzQzO1x0aWYgKHVubGlrZWx5KHRpbWVfZXhjZWVkZWQpKVxuJiM0MztcdFx0c3RhdHMtXHUwMDNldGltZV9idWRnZXRfZXhpdCYjNDM7JiM0Mzs7XG4mIzQzO1xuIFx0c3RhdHMtXHUwMDNlY3FlcyAmIzQzOz0gaTtcbiBcbiBcdG1seDVfY3F3cV91cGRhdGVfZGJfcmVjb3JkKFx1MDAyNmNxLVx1MDAzZXdxKTtcbkBAIC04NTgsNyAmIzQzOzg4Myw3IEBAIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpXG4gXG4gXHRtbHg1ZV90eHFzcV93YWtlKHNxKTtcbiBcbi1cdHJldHVybiAoaSA9PSBNTFg1RV9UWF9DUV9QT0xMX0JVREdFVCk7XG4mIzQzO1x0cmV0dXJuIHRpbWVfZXhjZWVkZWQgfHwgKGkgPT0gTUxYNUVfVFhfQ1FfUE9MTF9CVURHRVQpO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBtbHg1ZV90eF93aV9rZnJlZV9maWZvX3NrYnMoc3RydWN0IG1seDVlX3R4cXNxICpzcSwgc3RydWN0IG1seDVlX3R4X3dxZV9pbmZvICp3aSlcbkBAIC04NzksNiAmIzQzOzkwNCw4IEBAIHZvaWQgbWx4NWVfZnJlZV90eHFzcV9kZXNjcyhzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxKVxuIFx0ZG1hX2ZpZm9fY2MgPSBzcS1cdTAwM2VkbWFfZmlmb19jYztcbiBcbiBcdHdoaWxlIChzcWNjICE9IHNxLVx1MDAzZXBjKSB7XG4mIzQzO1x0XHRjb25kX3Jlc2NoZWQoKTtcbiYjNDM7XG4gXHRcdGNpID0gbWx4NV93cV9jeWNfY3RyMml4KFx1MDAyNnNxLVx1MDAzZXdxLCBzcWNjKTtcbiBcdFx0d2kgPSBcdTAwMjZzcS1cdTAwM2VkYi53cWVfaW5mb1tjaV07XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDE6NTA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IG1seDUgZXRoZXJuZXQgZHJpdmVyIChtbHg1ZV9wb2xsX3R4X2NxKS4gVGhpcyBpcyBhIHBoeXNpY2FsIGhhcmR3YXJlIGRyaXZlciBmb3IgTWVsbGFub3ggQ29ubmVjdFggYWRhcHRlcnMgYW5kIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIGl0IGluIFFFTVUgb3IgdGhlIGtlcm5lbC4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGUwOTUwNGJjMDg2OWQzMDJlNzBkMTA5ZTVmZTZjYTIxMWRkMzI5MDgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAzIDAxOjUwOjM5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuYwppbmRleCA3ZjMzMjYxYmE2NTUzYi4uYjk0MDI4MGFmMTlkYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jCkBAIC0xNzEsNiAmIzQzOzE3MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHN3X3N0YXRzX2Rlc2NbXSA9IHsKIAl7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X2NxZXMpIH0sCiAJeyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF9xdWV1ZV93YWtlKSB9LAogCXsgTUxYNUVfREVDTEFSRV9TVEFUKHN0cnVjdCBtbHg1ZV9zd19zdGF0cywgdHhfY3FlX2VycikgfSwKJiM0MzsJeyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF90aW1lX2J1ZGdldF9leGl0KSB9LAogCXsgTUxYNUVfREVDTEFSRV9TVEFUKHN0cnVjdCBtbHg1ZV9zd19zdGF0cywgdHhfeGRwX3htaXQpIH0sCiAJeyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF94ZHBfbXB3cWUpIH0sCiAJeyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF94ZHBfaW5sbncpIH0sCkBAIC00MjYsNiAmIzQzOzQyNyw3IEBAIHN0YXRpYyB2b2lkIG1seDVlX3N0YXRzX2dycF9zd191cGRhdGVfc3RhdHNfc3Eoc3RydWN0IG1seDVlX3N3X3N0YXRzICpzLAogCXMtJmd0O3R4X3F1ZXVlX3dha2UgICAgICAgICAgICAmIzQzOz0gc3Ffc3RhdHMtJmd0O3dha2U7CiAJcy0mZ3Q7dHhfcXVldWVfZHJvcHBlZCAgICAgICAgICYjNDM7PSBzcV9zdGF0cy0mZ3Q7ZHJvcHBlZDsKIAlzLSZndDt0eF9jcWVfZXJyICAgICAgICAgICAgICAgJiM0Mzs9IHNxX3N0YXRzLSZndDtjcWVfZXJyOwomIzQzOwlzLSZndDt0eF90aW1lX2J1ZGdldF9leGl0ICAgICAgJiM0Mzs9IHNxX3N0YXRzLSZndDt0aW1lX2J1ZGdldF9leGl0OwogCXMtJmd0O3R4X3JlY292ZXIgICAgICAgICAgICAgICAmIzQzOz0gc3Ffc3RhdHMtJmd0O3JlY292ZXI7CiAJcy0mZ3Q7dHhfeG1pdF9tb3JlICAgICAgICAgICAgICYjNDM7PSBzcV9zdGF0cy0mZ3Q7eG1pdF9tb3JlOwogCXMtJmd0O3R4X2NzdW1fcGFydGlhbF9pbm5lciAgICAmIzQzOz0gc3Ffc3RhdHMtJmd0O2NzdW1fcGFydGlhbF9pbm5lcjsKQEAgLTIzMjMsNiAmIzQzOzIzMjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBzcV9zdGF0c19kZXNjW10gPSB7CiAJeyBNTFg1RV9ERUNMQVJFX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCBjcWVzKSB9LAogCXsgTUxYNUVfREVDTEFSRV9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgd2FrZSkgfSwKIAl7IE1MWDVFX0RFQ0xBUkVfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZV9lcnIpIH0sCiYjNDM7CXsgTUxYNUVfREVDTEFSRV9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgdGltZV9idWRnZXRfZXhpdCkgfSwKIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHJxX3hkcHNxX3N0YXRzX2Rlc2NbXSA9IHsKQEAgLTIzOTksNiAmIzQzOzI0MDIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBwdHBfc3Ffc3RhdHNfZGVzY1tdID0gewogCXsgTUxYNUVfREVDTEFSRV9QVFBfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZXMpIH0sCiAJeyBNTFg1RV9ERUNMQVJFX1BUUF9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgd2FrZSkgfSwKIAl7IE1MWDVFX0RFQ0xBUkVfUFRQX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCBjcWVfZXJyKSB9LAomIzQzOwl7IE1MWDVFX0RFQ0xBUkVfUFRQX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCB0aW1lX2J1ZGdldF9leGl0KSB9LAogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBjb3VudGVyX2Rlc2MgcHRwX2NoX3N0YXRzX2Rlc2NbXSA9IHsKQEAgLTI0NzYsNiAmIzQzOzI0ODAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBxb3Nfc3Ffc3RhdHNfZGVzY1tdID0gewogCXsgTUxYNUVfREVDTEFSRV9RT1NfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZXMpIH0sCiAJeyBNTFg1RV9ERUNMQVJFX1FPU19UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgd2FrZSkgfSwKIAl7IE1MWDVFX0RFQ0xBUkVfUU9TX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCBjcWVfZXJyKSB9LAomIzQzOwl7IE1MWDVFX0RFQ0xBUkVfUU9TX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCB0aW1lX2J1ZGdldF9leGl0KSB9LAogfTsKIAogI2RlZmluZSBOVU1fUlFfU1RBVFMJCQlBUlJBWV9TSVpFKHJxX3N0YXRzX2Rlc2MpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5oCmluZGV4IDA5ZjE1NWFjYjQ2MWJjLi41YmE5NTRmNDJjY2Q1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmgKQEAgLTE4Nyw2ICYjNDM7MTg3LDcgQEAgc3RydWN0IG1seDVlX3N3X3N0YXRzIHsKIAl1NjQgdHhfY3FlczsKIAl1NjQgdHhfcXVldWVfd2FrZTsKIAl1NjQgdHhfY3FlX2VycjsKJiM0MzsJdTY0IHR4X3RpbWVfYnVkZ2V0X2V4aXQ7CiAJdTY0IHR4X3hkcF94bWl0OwogCXU2NCB0eF94ZHBfbXB3cWU7CiAJdTY0IHR4X3hkcF9pbmxudzsKQEAgLTQ0NSw2ICYjNDM7NDQ2LDcgQEAgc3RydWN0IG1seDVlX3NxX3N0YXRzIHsKIAl1NjQgY3FlcyBfX19fY2FjaGVsaW5lX2FsaWduZWRfaW5fc21wOwogCXU2NCB3YWtlOwogCXU2NCBjcWVfZXJyOwomIzQzOwl1NjQgdGltZV9idWRnZXRfZXhpdDsKIH07CiAKIHN0cnVjdCBtbHg1ZV94ZHBzcV9zdGF0cyB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jCmluZGV4IDBiNWU2MDBlNGE2YTk1Li45OTRkZjkxMmI3NjVjYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmMKQEAgLTQzLDYgJiM0Mzs0MywxMyBAQAogI2luY2x1ZGUgJiMzNDtlbl9hY2NlbC9tYWNzZWMuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O2VuL3B0cC5oJiMzNDsKICNpbmNsdWRlICZsdDtuZXQvaXB2Ni5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9tb2R1bGVwYXJhbS5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9zY2hlZC9jbG9jay5oJmd0OwomIzQzOwomIzQzO3N0YXRpYyB1bnNpZ25lZCBpbnQgbWx4NWVfdHhfY3FfdGltZV9idWRnZXRfdXMgPSA1MDA7CiYjNDM7bW9kdWxlX3BhcmFtX25hbWVkKHR4X2NxX3RpbWVfYnVkZ2V0X3VzLCBtbHg1ZV90eF9jcV90aW1lX2J1ZGdldF91cywgdWludCwgMDY0NCk7CiYjNDM7TU9EVUxFX1BBUk1fREVTQyh0eF9jcV90aW1lX2J1ZGdldF91cywKJiM0MzsJCSAmIzM0O01heCBtaWNyb3NlY29uZHMgb25lIFRYIENRIHBvbGwgbWF5IHNwZW5kIGJlZm9yZSB5aWVsZGluZyAoMCA9IHVuYm91bmRlZCkmIzM0Oyk7CiAKIHN0YXRpYyB2b2lkIG1seDVlX2RtYV91bm1hcF93cWVfZXJyKHN0cnVjdCBtbHg1ZV90eHFzcSAqc3EsIHU4IG51bV9kbWEpCiB7CkBAIC03NjAsOSAmIzQzOzc2NywxMiBAQCB2b2lkIG1seDVlX3R4cXNxX3dha2Uoc3RydWN0IG1seDVlX3R4cXNxICpzcSkKIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpCiB7CiAJc3RydWN0IG1seDVlX3NxX3N0YXRzICpzdGF0czsKJiM0MzsJYm9vbCB0aW1lX2V4Y2VlZGVkID0gZmFsc2U7CiYjNDM7CXU2NCB0aW1lX2J1ZGdldF9lbmQgPSAwOwogCXN0cnVjdCBtbHg1ZV90eHFzcSAqc3E7CiAJc3RydWN0IG1seDVfY3FlNjQgKmNxZTsKIAl1MzIgZG1hX2ZpZm9fY2M7CiYjNDM7CXUzMiBidWRnZXRfdXM7CiAJdTMyIG5ieXRlczsKIAl1MTYgbnBrdHM7CiAJdTE2IHNxY2M7CkBAIC03OTAsNiAmIzQzOzgwMCwxMCBAQCBib29sIG1seDVlX3BvbGxfdHhfY3Eoc3RydWN0IG1seDVlX2NxICpjcSwgaW50IG5hcGlfYnVkZ2V0KQogCS8qIGF2b2lkIGRpcnR5aW5nIHNxIGNhY2hlIGxpbmUgZXZlcnkgY3FlICovCiAJZG1hX2ZpZm9fY2MgPSBzcS0mZ3Q7ZG1hX2ZpZm9fY2M7CiAKJiM0MzsJYnVkZ2V0X3VzID0gUkVBRF9PTkNFKG1seDVlX3R4X2NxX3RpbWVfYnVkZ2V0X3VzKTsKJiM0MzsJaWYgKGJ1ZGdldF91cykKJiM0MzsJCXRpbWVfYnVkZ2V0X2VuZCA9IGxvY2FsX2Nsb2NrKCkgJiM0MzsgKHU2NClidWRnZXRfdXMgKiBOU0VDX1BFUl9VU0VDOwomIzQzOwogCWkgPSAwOwogCWRvIHsKIAkJc3RydWN0IG1seDVlX3R4X3dxZV9pbmZvICp3aTsKQEAgLTg0Miw4ICYjNDM7ODU2LDE5IEBAIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpCiAJCQlzdGF0cy0mZ3Q7Y3FlX2VyciYjNDM7JiM0Mzs7CiAJCX0KIAomIzQzOwkJLyogQ2hlY2sgYmV0d2VlbiBDUUVzIG9ubHkgKHNxY2MvZG1hX2ZpZm9fY2MgbXVzdCBhZHZhbmNlIHRvZ2V0aGVyKS4gKi8KJiM0MzsJCWlmICh1bmxpa2VseSh0aW1lX2J1ZGdldF9lbmQgJmFtcDsmYW1wOyAoaSAmYW1wOyA3KSA9PSA3ICZhbXA7JmFtcDsKJiM0MzsJCQkgICAgIGxvY2FsX2Nsb2NrKCkgJmd0Oz0gdGltZV9idWRnZXRfZW5kKSkgewomIzQzOwkJCXRpbWVfZXhjZWVkZWQgPSB0cnVlOwomIzQzOwkJCWkmIzQzOyYjNDM7OwomIzQzOwkJCWJyZWFrOwomIzQzOwkJfQomIzQzOwogCX0gd2hpbGUgKCgmIzQzOyYjNDM7aSAmbHQ7IE1MWDVFX1RYX0NRX1BPTExfQlVER0VUKSAmYW1wOyZhbXA7IChjcWUgPSBtbHg1X2Nxd3FfZ2V0X2NxZSgmYW1wO2NxLSZndDt3cSkpKTsKIAomIzQzOwlpZiAodW5saWtlbHkodGltZV9leGNlZWRlZCkpCiYjNDM7CQlzdGF0cy0mZ3Q7dGltZV9idWRnZXRfZXhpdCYjNDM7JiM0Mzs7CiYjNDM7CiAJc3RhdHMtJmd0O2NxZXMgJiM0Mzs9IGk7CiAKIAltbHg1X2Nxd3FfdXBkYXRlX2RiX3JlY29yZCgmYW1wO2NxLSZndDt3cSk7CkBAIC04NTgsNyAmIzQzOzg4Myw3IEBAIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpCiAKIAltbHg1ZV90eHFzcV93YWtlKHNxKTsKIAotCXJldHVybiAoaSA9PSBNTFg1RV9UWF9DUV9QT0xMX0JVREdFVCk7CiYjNDM7CXJldHVybiB0aW1lX2V4Y2VlZGVkIHx8IChpID09IE1MWDVFX1RYX0NRX1BPTExfQlVER0VUKTsKIH0KIAogc3RhdGljIHZvaWQgbWx4NWVfdHhfd2lfa2ZyZWVfZmlmb19za2JzKHN0cnVjdCBtbHg1ZV90eHFzcSAqc3EsIHN0cnVjdCBtbHg1ZV90eF93cWVfaW5mbyAqd2kpCkBAIC04NzksNiAmIzQzOzkwNCw4IEBAIHZvaWQgbWx4NWVfZnJlZV90eHFzcV9kZXNjcyhzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxKQogCWRtYV9maWZvX2NjID0gc3EtJmd0O2RtYV9maWZvX2NjOwogCiAJd2hpbGUgKHNxY2MgIT0gc3EtJmd0O3BjKSB7CiYjNDM7CQljb25kX3Jlc2NoZWQoKTsKJiM0MzsKIAkJY2kgPSBtbHg1X3dxX2N5Y19jdHIyaXgoJmFtcDtzcS0mZ3Q7d3EsIHNxY2MpOwogCQl3aSA9ICZhbXA7c3EtJmd0O2RiLndxZV9pbmZvW2NpXTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwMTo1MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MzY5CgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogMzk1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTWVsbGFub3ggbWx4NSBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggZm9yIHRoZSBNZWxsYW5veCBtbHg1IGV0aGVybmV0IGRyaXZlci4gSXQgc2VlbXMgdG8gaW50cm9kdWNlIGEgbmV3IG1vZHVsZSBwYXJhbWV0ZXIsIGB0eF9jcV90aW1lX2J1ZGdldF91c2AsIHRvIGxpbWl0IHRoZSB0aW1lIHNwZW50IGluIGBtbHg1ZV9wb2xsX3R4X2NxYC4gSXQgYWxzbyBpbmNsdWRlcyBhIG5ldyBzdGF0aXN0aWMsIGB0eF90aW1lX2J1ZGdldF9leGl0YCwgdG8gdHJhY2sgd2hlbiB0aGF0IHRpbWUgYnVkZ2V0IGlzIGV4Y2VlZGVkIGFuZCBhIGBjb25kX3Jlc2NoZWQoKWAgY2FsbCBpbiBgbWx4NWVfZnJlZV90eHFzcV9kZXNjc2AuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBhc3Nlc3MgaXRzIGZ1enppbmcgcG90ZW50aWFsLgoKYG1seDVlX3BvbGxfdHhfY3FgIGlzIGEgaGlnaC1wZXJmb3JtYW5jZSBmdW5jdGlvbiDigJMgYSBob3QgcGF0aCBmb3IgcG9sbGluZyB0aGUgdHJhbnNtaXQgY29tcGxldGlvbiBxdWV1ZSwgYW5kIHRoYXQgbWFrZXMgaXQgaW50ZXJlc3RpbmcuIFRoZSBwYXRjaCBhZGRzIGEgdGltZSBjaGVjayB1c2luZyBgbG9jYWxfY2xvY2soKWAgYW5kIGEgYnJlYWsgY29uZGl0aW9uIGlmIHRoZSBidWRnZXQgaXMgZXhjZWVkZWQsIHdoaWNoIGNvdWxkIGludHJvZHVjZSBzdWJ0bGUgdGltaW5nLXJlbGF0ZWQgYnVncy4gVGhlIGBjb25kX3Jlc2NoZWQoKWAgY2FsbCBpbiBgbWx4NWVfZnJlZV90eHFzcV9kZXNjc2AgaXMgYWxzbyB3b3J0aCBhIGNsb3NlciBsb29rIGZvciBwb3NzaWJsZSByYWNlIGNvbmRpdGlvbnMsIGFsdGhvdWdoIHRoZSBsb2NhdGlvbiBtYWtlcyBpdCBsZXNzIG9mIGEgaG90IHNwb3QuCgpUaGUgbWFpbiBjb25jZXJuIG5vdywgZ2l2ZW4gbXkgZXhwZXJpZW5jZSwgaXMgcmVhY2hhYmlsaXR5LiBNZWxsYW5veCBtbHg1IGlzLCBhcyBJIHJlY2FsbCwgYSBwaHlzaWNhbCBuZXR3b3JrIGNhcmQgZHJpdmVyLiBNeSBwcmltYXJ5IHF1ZXN0aW9uIGlzIGhvdyBhY2Nlc3NpYmxlIGlzIHRoaXMgY29kZSBpbiBhIHR5cGljYWwgZnV6emluZyBzZXR1cD8gSGFyZHdhcmUgcmVxdWlyZW1lbnRzIGFyZSB0aGUgaW1tZWRpYXRlIHByb2JsZW0uIElzIHRoaXMgc29tZXRoaW5nIHRoYXQgY2FuIGJlIGVtdWxhdGVkIG9yIGJ5cGFzc2VkPyBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB3ZSBoYXZlIGFueSBraW5kIG9mIHZEUEEgaW1wbGVtZW50YXRpb24gb3Igc29tZXRoaW5nIHNpbWlsYXIgdGhhdCBtaWdodCBhbGxvdyB1cyB0byBleGVyY2lzZSB0aGlzIGNvZGUgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gV2l0aG91dCBzb21ldGhpbmcgbGlrZSB0aGF0LCB0aGlzIGlzIGxpa2VseSBhIG5vbi1zdGFydGVyLgoKSSBuZWVkIHRvIGNvbmZpcm0gaWYgb3VyIGZ1enppbmcgZW52aXJvbm1lbnQgaGFzIFBDSSBlbXVsYXRpb24gY2FwYWJsZSBvZiBydW5uaW5nIHRoZSBtbHg1IGRyaXZlci4gUUVNVSBjb21lcyB0byBtaW5kLiBEb2VzIFFFTVUgZXZlbiBlbXVsYXRlIG1seDU/IFRoZSBvYnZpb3VzIGFuc3dlciBpcyBsaWtlbHkgbm8sIGF0IGxlYXN0IG5vdCBpbiBhIHdheSB0aGF0IHN5emthbGxlciB3b3VsZCB0eXBpY2FsbHkgbGV2ZXJhZ2UuIEhvd2V2ZXIsIEkmIzM5O20gbm93IHJlY2FsbGluZyBzb21ldGhpbmcgYWJvdXQgYG1seDVgIHZEUEEuIEkgbmVlZCB0byBkbyBhIGtlcm5lbCBzZWFyY2ggdG8gY29uZmlybSBhbmQgc2VlIGlmIHdlIGNhbiBnZXQgdGhpcyB0byB3b3JrLiBJIGhhdmUgYSBmZWVsaW5nIHRoZSB2RFBBIHBhdGggaXMgd2hlcmUgdGhlIHJlYWwgcG90ZW50aWFsIGxpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDE6NTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NWVfcG9sbF90eF9jcSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcHRwLmM9MjczPXN0YXRpYyBpbnQgbWx4NWVfcHRwX25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3B0cC5jLTI4Ny1cdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgYy1cdTAwM2VudW1fdGM7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcHRwLmM6Mjg4Olx0XHRcdGJ1c3kgfD0gbWx4NWVfcG9sbF90eF9jcShcdTAwMjZjLVx1MDAzZXB0cHNxW2ldLnR4cXNxLmNxLCBidWRnZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3B0cC5jLTI4OS1cdFx0XHRidXN5IHw9IG1seDVlX3B0cF9wb2xsX3RzX2NxKFx1MDAyNmMtXHUwMDNlcHRwc3FbaV0udHNfY3EsIGJ1ZGdldCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaD0xMTM9bmV0ZGV2X3R4X3QgbWx4NWVfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90eHJ4Lmg6MTE0OmJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaC0xMTUtdm9pZCBtbHg1ZV9mcmVlX3R4cXNxX2Rlc2NzKHN0cnVjdCBtbHg1ZV90eHFzcSAqc3EpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jPTc1Nj12b2lkIG1seDVlX3R4cXNxX3dha2Uoc3RydWN0IG1seDVlX3R4cXNxICpzcSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguYy03NjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguYzo3Njc6Ym9vbCBtbHg1ZV9wb2xsX3R4X2NxKHN0cnVjdCBtbHg1ZV9jcSAqY3EsIGludCBuYXBpX2J1ZGdldClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jLTc2OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4cnguYz0xMjQ9aW50IG1seDVlX25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4cnguYy0xNTAtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBjLVx1MDAzZW51bV90YzsgaSYjNDM7JiM0MzspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHhyeC5jOjE1MTpcdFx0YnVzeSB8PSBtbHg1ZV9wb2xsX3R4X2NxKFx1MDAyNmMtXHUwMDNlc3FbaV0uY3EsIGJ1ZGdldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHhyeC5jLTE1Mi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHhyeC5jLTE2MC1cdFx0XHRpZiAoc3EpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHhyeC5jOjE2MTpcdFx0XHRcdGJ1c3kgfD0gbWx4NWVfcG9sbF90eF9jcShcdTAwMjZzcS1cdTAwM2VjcSwgYnVkZ2V0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eHJ4LmMtMTYyLVx0XHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDE6NTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjExMgoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDM3OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNbHg1IERyaXZlciBSZWFjaGFiaWxpdHkgQXNzZXNzbWVudCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBtbHg1IGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciBNZWxsYW5veCBDb25uZWN0WC00LzUvNi83IGNhcmRzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGNhbiBzeXprYWxsZXIgZXZlbiAqcmVhY2gqIHRoaXMgdGhpbmc/IE9idmlvdXNseSwgc3l6a2FsbGVyIGRvZXNuJiMzOTt0IGhhdmUgcGh5c2ljYWwgTWVsbGFub3ggaGFyZHdhcmUsIHNvIHRoYXQmIzM5O3MgYSBub24tc3RhcnRlci4gSSBxdWlja2x5IGNvbnNpZGVyIGEgc29mdHdhcmUgZW11bGF0aW9uIC0gaXMgdGhlcmUgc29tZXRoaW5nIGZvciBtbHg1PyBObywgdGhhdCYjMzk7cyBub3QgcmlnaHQuIEhtbSwgdGhlbiBJIHJlY2FsbCBzeXprYWxsZXIgKmNhbiogZnV6eiBkcml2ZXJzIHRoYXQgY2FuIGJlIGluc3RhbnRpYXRlZCB0aHJvdWdoIHRoaW5ncyBsaWtlIG5ldGxpbmssIGJ1dCBtbHg1IGlzIGEgUENJIGRyaXZlciwgc28gdGhhdCBwcm9iYWJseSBydWxlcyBpdCBvdXQuCgpUaGVuIEkgdGhpbmsgYWJvdXQgYHN5el9tb3VudF9pbWFnZWAgb3IgVVNCIGZ1enppbmcsIGJ1dCBhZ2FpbiwgbWx4NSBpcyBQQ0kuIE9rYXksIGlzIHRoZXJlIGEgUENJIGZ1enplciAqaW4qIHN5emthbGxlcj8gQWgsIHllcywgdGhlcmUgaXMsIHRocm91Z2ggdmZpby9wY2kuIEhvd2V2ZXIsIG15IGV4cGVyaWVuY2UgaXMgdGhhdCB0aGlzIGlzIHVzdWFsbHkgcHJldHR5IGxpbWl0ZWQsIGFuZCB0eXBpY2FsbHkgZG9lc24mIzM5O3QgZ2V0IGRlZXAgaW50byBuZXR3b3JrIGRhdGEgcGF0aHMgdW5sZXNzIGl0JiMzOTtzIGJlZW4gc3BlY2lmaWNhbGx5IGNvbmZpZ3VyZWQuCgpBbHJpZ2h0LCB3aGF0IGFib3V0IHRob3NlIGluc3RydWN0aW9ucz8gSSByZXJlYWQgdGhlbTogJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOiAtIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSYjMzQ7LiBTbywgdGhlIGtleSBpcyBRRU1VLiBDYW4gSSByZWFjaCBtbHg1IGluIFFFTVU/CgpJIGtub3cgUUVNVSBkb2VzbiYjMzk7dCBkaXJlY3RseSAqZW11bGF0ZSogbWx4NS4gSSBxdWlja2x5IGRvdWJsZSBjaGVjaywganVzdCB0byBiZSBzdXJlLi4uIG5vLCBRRU1VIGRvZXNuJiMzOTt0IGhhdmUgYW4gbWx4NSBlbXVsYXRpb24uIFdhaXQsICpkb2VzKiBRRU1VIGVtdWxhdGUgKmFueSogTWVsbGFub3ggaGFyZHdhcmU/IE5vLCB0aGF0JiMzOTtzIG5vdCByaWdodCBlaXRoZXIuIEkgc2VlIGUxMDAwLCBlMTAwMGUsIHJ0bDgxMzksIHBjbmV0LCBuZTJrX3BjaSwgdm14bmV0MywgdmlydGlvLW5ldCwgaWdiLCB0dWxpcC4gT2theSwgdGhhdCYjMzk7cyBkZWZpbml0ZWx5IG5vdCB3aGF0IEkmIzM5O20gbG9va2luZyBmb3IuIFNvIEkgdGhpbmsgSSBuZWVkIHRvIGRpZyBkZWVwZXIuIEkmIzM5O2xsIG5lZWQgdG8gcmVzZWFyY2ggaWYgdGhlcmUgaXMgKmFueSogd2F5IHRvIHJlYWNoIG1seDUsIHVzaW5nIGEgZGlmZmVyZW50IGFuZ2xlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDAxOjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDE6NTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzAxMgoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDQyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqTmF2aWdhdGluZyB0aGUgTWVsbGFub3ggS2NvbmZpZyBMYW5kc2NhcGUqKgoKUmlnaHQsIHNvIEkmIzM5O20gZGl2aW5nIGludG8gdGhlIE1lbGxhbm94IEV0aGVybmV0IGRyaXZlciBjb25maWd1cmF0aW9uLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSB0aGUgS2NvbmZpZyBmaWxlIGZvciB0aGlzIHRoaW5nIGxpdmVzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgaXQmIzM5O3MgbGlrZWx5IHVuZGVyIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9LY29uZmlnYCwgdGhhdCYjMzk7cyB0aGUgb2J2aW91cyB0b3AtbGV2ZWwgbG9jYXRpb24uIEJ1dCwgd2l0aCBNZWxsYW5veCwgeW91IG5ldmVyIGtub3cuLi4gdGhleSBvZnRlbiBoYXZlIHNvbWUgcHJldHR5IGRlZXAgbGF5ZXJzLCBwYXJ0aWN1bGFybHkgd2l0aCB0aGUgbWx4NSBhcmNoaXRlY3R1cmUuIFNvLCBJIG5lZWQgdG8ga2VlcCBpbiBtaW5kIHRoYXQgaXQgKmNvdWxkKiBiZSB0dWNrZWQgYXdheSBkZWVwZXIsIHNwZWNpZmljYWxseSB3aXRoaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnYC4gVGhhdCBsb2NhdGlvbiB3b3VsZCBiZSBmb3IgdGhlIGNvcmUgbWx4NSBmdW5jdGlvbmFsaXR5LiBJIG5lZWQgdG8gY2hlY2sgYm90aCBiZWZvcmUgbWFraW5nIGEgZGVmaW5pdGl2ZSBjaG9pY2Ugb3IgbWFraW5nIGFzc3VtcHRpb25zLiBJdCBkZXBlbmRzIG9uIHdoYXQgc2VjdGlvbiBJIGFtIHRhcmdldGluZyB3aXRoaW4gdGhlIG92ZXJhbGwgZHJpdmVyLiBBbHJpZ2h0LCBsZXQmIzM5O3MgZ28gY2hlY2sgdGhvc2UgbG9jYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDAxOjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNTFg1JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzo2OmNvbmZpZyBNTFg1X0NPUkVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtNZWxsYW5veCA1dGggZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChDb25uZWN0WCBzZXJpZXMpIGNvcmUgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxOTpjb25maWcgTUxYNV9GUEdBXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0yMC1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIElubm92YSBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoyOTpjb25maWcgTUxYNV9DT1JFX0VOXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0zMC1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggNXRoIGdlbmVyYXRpb24gbmV0d29yayBhZGFwdGVycyAoQ29ubmVjdFggc2VyaWVzKSBFdGhlcm5ldCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzozODpjb25maWcgTUxYNV9FTl9BUkZTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0zOS1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggTUxYNSBldGhlcm5ldCBhY2NlbGVyYXRlZCByZWNlaXZlIGZsb3cgc3RlZXJpbmcgKEFSRlMpIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy00NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjQ2OmNvbmZpZyBNTFg1X0VOX1JYTkZDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy00Ny1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggTUxYNSBldGhlcm5ldCByeCBuZmMgZmxvdyBzdGVlcmluZyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctNTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzo1Njpjb25maWcgTUxYNV9NUEZTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy01Ny1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIE1MWDUgTVBGUyBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctNjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzo2Njpjb25maWcgTUxYNV9FU1dJVENIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy02Ny1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIE1MWDUgU1JJT1YgRS1Td2l0Y2ggc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTc2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6Nzc6Y29uZmlnIE1MWDVfQlJJREdFXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy03OC1cdGJvb2xcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy04Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjg3OmNvbmZpZyBNTFg1X0NMU19BQ1RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTg4LVx0Ym9vbCBcJiMzNDtNTFg1IFRDIGNsYXNzaWZpZXIgYWN0aW9uIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xMDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxMDI6Y29uZmlnIE1MWDVfVENfQ1RcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEwMy1cdGJvb2wgXCYjMzQ7TUxYNSBUQyBjb25uZWN0aW9uIHRyYWNraW5nIG9mZmxvYWQgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTExMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjExMjpjb25maWcgTUxYNV9UQ19TQU1QTEVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTExMy1cdGJvb2wgXCYjMzQ7TUxYNSBUQyBzYW1wbGUgb2ZmbG9hZCBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTI0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6MTI1OmNvbmZpZyBNTFg1X0NPUkVfRU5fRENCXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xMjYtXHRib29sIFwmIzM0O0RhdGEgQ2VudGVyIEJyaWRnaW5nIChEQ0IpIFN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xMzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxMzc6Y29uZmlnIE1MWDVfQ09SRV9JUE9JQlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTM4LVx0Ym9vbCBcJiMzNDtNZWxsYW5veCA1dGggZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChjb25uZWN0WCBzZXJpZXMpIElQb0lCIG9mZmxvYWRzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxNDM6Y29uZmlnIE1MWDVfTUFDU0VDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNDQtXHRib29sIFwmIzM0O0Nvbm5lY3QtWCBzdXBwb3J0IGZvciBNQUNTZWMgb2ZmbG9hZFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE1MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjE1MTpjb25maWcgTUxYNV9FTl9JUFNFQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTUyLVx0Ym9vbCBcJiMzNDtNZWxsYW5veCBUZWNobm9sb2dpZXMgSVBzZWMgQ29ubmVjdC1YIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxNTk6Y29uZmlnIE1MWDVfRU5fVExTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNjAtXHRib29sIFwmIzM0O01lbGxhbm94IFRlY2hub2xvZ2llcyBUTFMgQ29ubmVjdC1YIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxNjc6Y29uZmlnIE1MWDVfU1dfU1RFRVJJTkdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE2OC1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIHNvZnR3YXJlLW1hbmFnZWQgc3RlZXJpbmdcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxNzU6Y29uZmlnIE1MWDVfSFdfU1RFRVJJTkdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE3Ni1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIGhhcmR3YXJlLW1hbmFnZWQgc3RlZXJpbmdcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xODQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxODU6Y29uZmlnIE1MWDVfU0ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE4Ni1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIHN1YmZ1bmN0aW9uIGRldmljZSBzdXBwb3J0IHVzaW5nIGF1eGlsaWFyeSBkZXZpY2VcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxOTM6Y29uZmlnIE1MWDVfU0ZfTUFOQUdFUlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTk0LVx0Ym9vbFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTIwMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjIwMzpjb25maWcgTUxYNV9EUExMXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0yMDQtXHR0cmlzdGF0ZSBcJiMzNDtNZWxsYW5veCA1dGggZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChDb25uZWN0WCBzZXJpZXMpIERQTEwgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTIwOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjIxMDpjb25maWcgTUxYNV9FTl9QU1BcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTIxMS1cdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIHN1cHBvcnQgZm9yIFBTUCBjcnlwdG9ncmFwaHktb2ZmbG9hZCBhY2NlbGVyYXRpb25cJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwMTo1MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5NDA3CgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTAwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgdGhlIFJlYWNoYWJpbGl0eSBvZiBNZWxsYW5veCBDb2RlIGluIGEgU3l6a2FsbGVyIENvbnRleHQqKgoKT2theSwgaG9sZCBvbiBhIHNlY29uZC4gU3l6a2FsbGVyLCBhcyBmYXIgYXMgSSBrbm93LCBkb2VzbiYjMzk7dCB0eXBpY2FsbHkgaGF2ZSBNZWxsYW5veCBoYXJkd2FyZSBhcyBhIHRhcmdldC4gVGhhdCYjMzk7cyBhIGtleSByb2FkYmxvY2suIE15IGluaXRpYWwgdGhvdWdodCBpcywgaG93IGNhbiBJIGV2ZW4gKnRyaWdnZXIqIHRoaXMgY29kZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBnaXZlbiB0aGF0IGltbWVkaWF0ZSBoYXJkd2FyZSBhY2Nlc3MgaXMgb3V0PwoKQWxyaWdodCwgdGltZSB0byBwaXZvdC4gSXMgdGhlcmUgKmFueSoga2luZCBvZiB2aXJ0dWFsIGRldmljZSBlbXVsYXRpbmcgTWVsbGFub3ggZnVuY3Rpb25hbGl0eSBJIGNhbiBsZXZlcmFnZT8gSSByZW1lbWJlciBzZWVpbmcgc29tZXRoaW5nIHJlbGF0ZWQgdG8gYHZkcGEvbWx4NWAsIGJ1dCBpc24mIzM5O3QgdGhhdCBhIHZEUEEgaW1wbGVtZW50YXRpb24/IEFuZCBkb2VzbiYjMzk7dCB2RFBBICpyZXF1aXJlKiB1bmRlcmx5aW5nIHJlYWwgaGFyZHdhcmUgKGFjdHVhbCBtbHg1IGhhcmR3YXJlISkgdG8gZnVuY3Rpb24gYXMgdGhlIGJhY2tpbmcgc3RvcmU/CgpMZXQmIzM5O3MgY29uZmlybSB0aGF0IGh5cG90aGVzaXMuIEkgbmVlZCB0byBkaXZlIGludG8gdGhlIGtlcm5lbCBjb25maWcgZmlsZXMgZm9yIG1vcmUgZGVmaW5pdGl2ZSBpbmZvcm1hdGlvbi4gTGV0IG1lIGNoZWNrIGBkcml2ZXJzL3ZkcGEvbWx4NS9LY29uZmlnYC4gVGhhdCBzaG91bGQgY2xlYXIgdGhpbmdzIHVwLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGVyZSBpcyBhIHZpcnR1YWwgZHJpdmVyIGluIHRoZXJlLCBvciBpZiB0aGlzIGlzIGhhcmR3YXJlLWRlcGVuZGVudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDE6NTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTUxYNV9WRFBBJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy92ZHBhL21seDUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDE6NTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTc4MgoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDE5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipJbnZlc3RpZ2F0aW5nIGEgUG90ZW50aWFsIERyaXZlciBQYXRoKioKCk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEkgaGF2ZSBhIGh1bmNoLCBhIHBvc3NpYmxlIHBhdGggdG8gaW52ZXN0aWdhdGUgcmVnYXJkaW5nIGEgZHJpdmVyLiBJdCAqZmVlbHMqIGxpa2UgdGhlIGBkcml2ZXJzL3ZkcGEvbWx4NWAgZGlyZWN0b3J5IG1pZ2h0IGFjdHVhbGx5IGV4aXN0LiBJIGNhbiYjMzk7dCBxdWl0ZSByZW1lbWJlciBvZmYgdGhlIHRvcCBvZiBteSBoZWFkLCBzbyB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gY29uZmlybSB0aGlzIHN1c3BpY2lvbi4gSSBuZWVkIHRvIGNoZWNrIGFuZCB2ZXJpZnkgaWYgdGhpcyBkcml2ZXIgcGF0aCBpcyByZWFsIGJlZm9yZSBJIGdvIGFueSBmdXJ0aGVyIGRvd24gdGhpcyBwYXJ0aWN1bGFyIGxpbmUgb2YgcmVhc29uaW5nLiBUaW1lIHRvIGxvb2suCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzAzIDAxOjUxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Y29kZXNlYXJjaC1kaXItaW5kZXg8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0RpciYjMzQ7OiAmIzM0O2RyaXZlcnMvdmRwYS9tbHg1JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IG51bGwsCiAgJiMzNDtTdWJkaXJzJiMzNDs6IFsKICAgICYjMzQ7Y29yZSYjMzQ7LAogICAgJiMzNDtuZXQmIzM0OwogIF0KfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwMTo1MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5OTY0CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogNjIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKldvcnRoRnV6emluZz1mYWxzZTogbWx4NSBhbmQgVmlydHVhbGl6ZWQgRW52aXJvbm1lbnRzKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoLCBhbmQgSSBuZWVkIHRvIGRldGVybWluZSBpZiBpdCYjMzk7cyB3b3J0aCBmdXp6aW5nLiBUaGUgcGF0Y2ggdG91Y2hlcyBtbHg1LCB3aGljaCBpcyBhIG5ldHdvcmsgZGV2aWNlIGRyaXZlci4gSSBrbm93IG1seDUgaXMgdGllZCB0byBzcGVjaWZpYyBoYXJkd2FyZSwgcmlnaHQ/IE5vIHNvZnR3YXJlIGVtdWxhdGlvbiB3aXRoaW4gdGhlIGtlcm5lbCwgbWFraW5nIGl0IGEgcGh5c2ljYWwgZGV2aWNlIGRyaXZlci4KClRoZSBzeXprYWxsZXIgUENJIGZ1enplciBpcyB0aGUga2V5LCBidXQgSSBuZWVkIHRvIGNvbnNpZGVyIHRoYXQgJiMzNDtXb3J0aEZ1enppbmc9ZmFsc2UmIzM0OyBzY2VuYXJpbzogaWYgdGhlIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIENhbiB0aGUgUENJIGZ1enplciByZWFjaCBpdD8gSXQgKmNhbiogZnV6eiBQQ0kgZGV2aWNlcy4gSXQgKmNhbiogaW50ZXJhY3QgdXNpbmcgc3l6X3BjaV9kZXZpY2VfYWRkIGFuZCBzaW1pbGFyLCBidXQgZ2VuZXJhbGx5LCB0aGF0JiMzOTtzIHByZXR0eSBzaGFsbG93LiBJdCBkb2VzIFBDSSBjb25maWcgc3BhY2UgYW5kIE1NSU8gcmVhZHMvd3JpdGVzLCBidXQgZ2V0dGluZyBpbnRvIGFueSByZWFsIGZ1bmN0aW9uYWxpdHk/IFRoYXQmIzM5O3MgdGhlIGNoYWxsZW5nZS4KCkxldCYjMzk7cyB0aGluayBhYm91dCBgbWx4NWVfcG9sbF90eF9jcWAuIFJlYWNoaW5nICp0aGF0KiByZXF1aXJlcyBzZXR0aW5nIHVwIGEgbmV0ZGV2LCBicmluZ2luZyBpdCB1cCwgdHJpZ2dlcmluZyBUWC4uLiB3aGljaCB0aGVuIHJlcXVpcmVzIGEgaGFyZHdhcmUgdG8gd29yay4gRE1BLCBpbnRlcnJ1cHRzLi4uIHRoYXQmIzM5O3MgYSAqbG90KiBmb3IgdGhlIGZ1enplciB0byBwZXJmZWN0bHkgZW11bGF0ZS4gSXQgY2FuJiMzOTt0IHBlcmZlY3RseSBlbXVsYXRlIGhhcmR3YXJlIGJlaGF2aW9yLCBzbyB0aGF0JiMzOTtzIG5vdCBsaWtlbHkgdG8gd29yay4gYG5kb19zdGFydF94bWl0YCB3b24mIzM5O3QgZGlyZWN0bHkgdHJpZ2dlciBgbWx4NWVfcG9sbF90eF9jcWAgYmVjYXVzZSBpdCYjMzk7cyBjYWxsZWQgZnJvbSBOQVBJIHBvbGwuCgpFc3NlbnRpYWxseSwgKnVubGVzcyogdGhlIFBDSSBmdXp6ZXIgY2FuIGZsYXdsZXNzbHkgZW11bGF0ZSB0aGUgaGFyZHdhcmUgLSBhbmQgbGV0JiMzOTtzIGZhY2UgaXQsIHRoYXQmIzM5O3Mgbm90IGhhcHBlbmluZyBmb3IgYSBjb21wbGV4IGRyaXZlciBsaWtlIG1seDUgLSB0aGVuIEkgY2FuJiMzOTt0IHJlYWNoIGl0LiBUaGVyZSYjMzk7cyBubyBgbmV0ZGV2c2ltYC1saWtlIHRoaW5nIGZvciBtbHg1LCBub3RoaW5nIHRoYXQgd291bGQgcHJvdmlkZSBhIHNvZnR3YXJlIHJlcHJlc2VudGF0aW9uLgoKU28sIEkmIzM5O20gc3R1Y2sgd2l0aCBhIHBoeXNpY2FsIGhhcmR3YXJlIGRyaXZlciwgbm8gc29mdHdhcmUgZW11bGF0aW9uLiBHaXZlbiB0aGUgcHJvbXB0JiMzOTtzIGNyaXRlcmlhLCB0aGlzIGNvZGUgaXMgKmltcG9zc2libGUqIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gVGhlcmVmb3JlLCAqV29ydGhGdXp6aW5nPWZhbHNlLiogSnVzdCBuZWVkIHRvIGNvbmZpcm0gdGhlcmUgaXNuJiMzOTt0IGFueSBlbXVsYXRpb24gYW55d2hlcmUuLi4ganVzdCB0byBiZSBzYWZlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wMyAwMTo1MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1X2NvcmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxOTA2NyBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc9MTk9Y29uZmlnIE1MWDVfRlBHQVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTI1LVx0ICBhbmQgYW4gRlBHQSBjaGlwIG9uIG9uZSBib2FyZC4gSWYgeW91IHNlbGVjdCB0aGlzIG9wdGlvbiwgdGhlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoyNjpcdCAgbWx4NV9jb3JlIGRyaXZlciB3aWxsIGluY2x1ZGUgdGhlIElubm92YSBGUEdBIGNvcmUgYW5kIGFsbG93IGJ1aWxkaW5nXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0yNy1cdCAgc2FuZGJveC1zcGVjaWZpYyBjbGllbnQgZHJpdmVycy5cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU9Nz1zdWJkaXItY2NmbGFncy15ICYjNDM7PSAtSSQoc3JjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTUxYNV9DT1JFKSAmIzQzOz0gbWx4NV9jb3JlLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTMtI1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE0Om1seDVfY29yZS15IDo9XHRtYWluLm8gY21kLm8gZGVidWdmcy5vIGZ3Lm8gZXEubyB1YXIubyBwYWdlYWxsb2MubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE1LVx0XHRoZWFsdGgubyBtY2cubyBjcS5vIGFsbG9jLm8gcG9ydC5vIG1yLm8gcGQubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0yNS0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MjY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfQ09SRV9FTikgJiM0Mzs9IGVuL3JxdC5vIGVuL3Rpci5vIGVuL3Jzcy5vIGVuL3J4X3Jlcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMjctXHRcdGVuL2NoYW5uZWxzLm8gZW5fbWFpbi5vIGVuX2NvbW1vbi5vIGVuX2ZzLm8gZW5fZXRodG9vbC5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTM3LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTozODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FTl9BUkZTKSAgICAgJiM0Mzs9IGVuX2FyZnMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjM5Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX1JYTkZDKSAgICAmIzQzOz0gZW5fZnNfZXRodG9vbC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NDA6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfQ09SRV9FTl9EQ0IpICYjNDM7PSBlbl9kY2JubC5vIGVuL3BvcnRfYnVmZmVyLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo0MTptbHg1X2NvcmUtJChDT05GSUdfUENJX0hZUEVSVl9JTlRFUkZBQ0UpICYjNDM7PSBlbi9odl92aGNhX3N0YXRzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo0MjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FU1dJVENIKSAgICAgJiM0Mzs9IGxhZy9tcC5vIGxhZy9wb3J0X3NlbC5vIGxpYi9nZW5ldmUubyBsaWIvcG9ydF90dW4ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTQzLVx0XHRcdFx0XHRlbl9yZXAubyBlbi9yZXAvYm9uZC5vIGVuL21vZF9oZHIubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTQ0LVx0XHRcdFx0XHRlbi9tYXBwaW5nLm8gbGFnL21wZXN3Lm8gbGFnL3NoYXJlZF9mZGIub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQ1Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0NMU19BQ1QpICAgICAmIzQzOz0gZW5fdGMubyBlbi9yZXAvdGMubyBlbi9yZXAvbmVpZ2gubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTQ2LVx0XHRcdFx0XHRsaWIvZnNfY2hhaW5zLm8gZW4vdGNfdHVuLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NTM6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfQ0xTX0FDVCkgICAgICYjNDM7PSBlbi90Yy9hY3QvYWN0Lm8gZW4vdGMvYWN0L2Ryb3AubyBlbi90Yy9hY3QvdHJhcC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNTQtXHRcdFx0XHRcdGVuL3RjL2FjdC9hY2NlcHQubyBlbi90Yy9hY3QvbWFyay5vIGVuL3RjL2FjdC9nb3RvLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU9NjE9aWZuZXEgKCQoQ09ORklHX01MWDVfVENfQ1QpLClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2MjpcdG1seDVfY29yZS15XHRcdFx0ICAgICAmIzQzOz0gZW4vdGNfY3QubyBlbi90Yy9jdF9mc19kbWZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2MzpcdG1seDVfY29yZS0kKENPTkZJR19NTFg1X1NXX1NURUVSSU5HKSAmIzQzOz0gZW4vdGMvY3RfZnNfc21mcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NjQ6XHRtbHg1X2NvcmUtJChDT05GSUdfTUxYNV9IV19TVEVFUklORykgJiM0Mzs9IGVuL3RjL2N0X2ZzX2htZnMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTY1LWVuZGlmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6Njc6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfVENfU0FNUExFKSAgICYjNDM7PSBlbi90Yy9zYW1wbGUub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTY4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS03MS0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NzI6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRVNXSVRDSCkgICAmIzQzOz0gZXN3aXRjaC5vIGVzd2l0Y2hfb2ZmbG9hZHMubyBlc3dpdGNoX29mZmxvYWRzX3Rlcm10YmwubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTczLVx0XHRcdFx0ICAgICAgZWNwZi5vIHJkbWEubyBlc3cvbGVnYWN5Lm8gZXN3L2Fkal92cG9ydC5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTc1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjc2Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgJiM0Mzs9IGVzdy9hY2wvaGVscGVyLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS03Ny1cdFx0XHRcdCAgICAgIGVzdy9hY2wvZWdyZXNzX2xnY3kubyBlc3cvYWNsL2VncmVzc19vZmxkLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU9ODA9aWZuZXEgKCQoQ09ORklHX01MWDVfRU5fSVBTRUMpLClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo4MTpcdG1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgJiM0Mzs9IGVzdy9pcHNlY19mcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODItZW5kaWZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo4NDptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9CUklER0UpICAgICYjNDM7PSBlc3cvYnJpZGdlLm8gZXN3L2JyaWRnZV9tY2FzdC5vIGVzdy9icmlkZ2VfZGVidWdmcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODUtXHRcdFx0XHQgICAgICBlbi9yZXAvYnJpZGdlLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo4NzptbHg1X2NvcmUtJChDT05GSUdfSFdNT04pICAgICAgICAgICYjNDM7PSBod21vbi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6ODg6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfTVBGUykgICAgICAmIzQzOz0gbGliL21wZnMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTg5LWlmbmVxICgkKENPTkZJR19WWExBTiksKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjkwOlx0bWx4NV9jb3JlLXlcdFx0ICAgJiM0Mzs9IGxpYi92eGxhbi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOTEtZW5kaWZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo5MjptbHg1X2NvcmUtJChDT05GSUdfUFRQXzE1ODhfQ0xPQ0spICYjNDM7PSBsaWIvY2xvY2sub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjkzOm1seDVfY29yZS0kKENPTkZJR19QQ0lfSFlQRVJWX0lOVEVSRkFDRSkgJiM0Mzs9IGxpYi9odi5vIGxpYi9odl92aGNhLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS05NC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOTctI1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjk4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0NPUkVfSVBPSUIpICYjNDM7PSBpcG9pYi9pcG9pYi5vIGlwb2liL2V0aHRvb2wubyBpcG9pYi9pcG9pYl92bGFuLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS05OS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTAyLSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMDM6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRlBHQSkgJiM0Mzs9IGZwZ2EvY21kLm8gZnBnYS9jb3JlLm8gZnBnYS9jb25uLm8gZnBnYS9zZGsub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMDU6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfTUFDU0VDKSAmIzQzOz0gZW5fYWNjZWwvbWFjc2VjLm8gbGliL21hY3NlY19mcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTA2LVx0XHRcdFx0ICAgICAgZW5fYWNjZWwvbWFjc2VjX3N0YXRzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTA4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX0lQU0VDKSAmIzQzOz0gZW5fYWNjZWwvaXBzZWMubyBlbl9hY2NlbC9pcHNlY19yeHR4Lm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDktXHRcdFx0XHQgICAgIGVuX2FjY2VsL2lwc2VjX3N0YXRzLm8gZW5fYWNjZWwvaXBzZWNfZnMubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTEyOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX1RMUykgJiM0Mzs9IGVuX2FjY2VsL2t0bHNfc3RhdHMubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTExMy1cdFx0XHRcdCAgIGVuX2FjY2VsL2ZzX3RjcC5vIGVuX2FjY2VsL2t0bHMubyBlbl9hY2NlbC9rdGxzX3R4cngubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTE2Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX1BTUCkgJiM0Mzs9IGVuX2FjY2VsL3BzcC5vIGVuX2FjY2VsL3BzcF9yeHR4Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMTctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEyMC0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTIxOm1seDVfY29yZS0kKENPTkZJR19NTFg1X1NXX1NURUVSSU5HKSAmIzQzOz0gc3RlZXJpbmcvc3dzL2RyX2RvbWFpbi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTIyLVx0XHRcdFx0XHRzdGVlcmluZy9zd3MvZHJfdGFibGUubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNDUtI1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE0NjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9IV19TVEVFUklORykgJiM0Mzs9IHN0ZWVyaW5nL2h3cy9jbWQubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE0Ny1cdFx0XHRcdFx0c3RlZXJpbmcvaHdzL2NvbnRleHQubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNjctI1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE2ODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9TRikgJiM0Mzs9IHNmL3ZoY2FfZXZlbnQubyBzZi9kZXYvZGV2Lm8gc2YvZGV2L2RyaXZlci5vIGlycV9hZmZpbml0eS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTY5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNzItI1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE3MzptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9TRl9NQU5BR0VSKSAmIzQzOz0gc2YvY21kLm8gc2YvaHdfdGFibGUubyBzZi9kZXZsaW5rLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNzQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE3Ny0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTc4Om1seDVfY29yZS0kKENPTkZJR19QQ0lFX1RQSCkgJiM0Mzs9IGxpYi9zdC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTc5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDU6I2luY2x1ZGUgXCYjMzQ7bWx4NV9jb3JlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTU4PXN0cnVjdCBtbHg1X2RtYV9wb29sIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy02MS1cdHN0cnVjdCBsaXN0X2hlYWQgcGFnZV9saXN0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NjI6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNjMtXHRpbnQgbm9kZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz03OT1zdHJ1Y3QgbWx4NV9kbWFfcG9vbF9zdGF0cyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo5MDpzdGF0aWMgdm9pZCAqbWx4NV9kbWFfemFsbG9jX2NvaGVyZW50X25vZGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTkxLVx0XHRcdFx0XHQgICBzaXplX3Qgc2l6ZSwgZG1hX2FkZHJfdCAqZG1hX2hhbmRsZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy05My17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo5NDpcdHN0cnVjdCBkZXZpY2UgKmRldmljZSA9IG1seDVfY29yZV9kbWFfZGV2KGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy05NS1cdHN0cnVjdCBtbHg1X3ByaXYgKnByaXYgPSBcdTAwMjZkZXYtXHUwMDNlcHJpdjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz0xMDk9c3RhdGljIHZvaWQgbWx4NV9kbWFfcG9vbF9kZXN0cm95KHN0cnVjdCBtbHg1X2RtYV9wb29sICpwb29sKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTExNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjExNTpzdGF0aWMgc3RydWN0IG1seDVfZG1hX3Bvb2wgKm1seDVfZG1hX3Bvb2xfY3JlYXRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xMTYtXHRcdFx0XHRcdFx0ICBpbnQgbm9kZSwgdTggYmxvY2tfc2hpZnQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9MTMzPW1seDVfZG1hX3Bvb2xfcGFnZV9hbGxvYyhzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxNjM6c3RhdGljIHZvaWQgbWx4NV9kbWFfcG9vbF9wYWdlX2ZyZWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE2NC1cdFx0XHRcdCAgICBzdHJ1Y3QgbWx4NV9kbWFfcG9vbF9wYWdlICpwYWdlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTY1LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjE2NjpcdGRtYV9mcmVlX2NvaGVyZW50KG1seDVfY29yZV9kbWFfZGV2KGRldiksIFBBR0VfU0laRSwgcGFnZS1cdTAwM2VidWYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNjctXHRcdFx0ICBwYWdlLVx1MDAzZWRtYSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9MjgzPXN0YXRpYyBzdHJ1Y3QgbWx4NV9mcmFnX2J1Zl9ub2RlX3Bvb2xzICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjI4NDptbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHNfY3JlYXRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBub2RlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMjg1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz0zMDc9bWx4NV9mcmFnX2J1Zl9kbWFfcG9vbHNfZGVidWdmc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqcHJpdilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMwOC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozMDk6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlsZS1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzEwLVx0aW50IG5vZGU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9MzM2PURFRklORV9TSE9XX0FUVFJJQlVURShtbHg1X2ZyYWdfYnVmX2RtYV9wb29sc19kZWJ1Z2ZzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMzNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMzODp2b2lkIG1seDVfZnJhZ19idWZfcG9vbHNfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzM5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zNTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozNTk6aW50IG1seDVfZnJhZ19idWZfcG9vbHNfaW5pdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzYwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zODctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozODg6aW50IG1seDVfZnJhZ19idWZfYWxsb2Nfbm9kZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgc2l6ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM4OS1cdFx0XHQgICAgIHN0cnVjdCBtbHg1X2ZyYWdfYnVmICpidWYsIGludCBub2RlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTQyNT1FWFBPUlRfU1lNQk9MX0dQTChtbHg1X2ZyYWdfYnVmX2FsbG9jX25vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDI2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDI3OnZvaWQgbWx4NV9mcmFnX2J1Zl9mcmVlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2ZyYWdfYnVmICpidWYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00Mjgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTQ0NT1FWFBPUlRfU1lNQk9MX0dQTChtbHg1X2ZyYWdfYnVmX2ZyZWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NDQ3OnN0YXRpYyBzdHJ1Y3QgbWx4NV9kYl9wZ2RpciAqbWx4NV9hbGxvY19kYl9wZ2RpcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDQ4LVx0XHRcdFx0XHRcdCBpbnQgbm9kZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz00NzY9c3RhdGljIGludCBtbHg1X2FsbG9jX2RiX2Zyb21fcGdkaXIoc3RydWN0IG1seDVfZGJfcGdkaXIgKnBnZGlyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUwMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjUwMTppbnQgbWx4NV9kYl9hbGxvY19ub2RlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2RiICpkYiwgaW50IG5vZGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01MDIte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTUyOD1FWFBPUlRfU1lNQk9MX0dQTChtbHg1X2RiX2FsbG9jX25vZGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTMwOnZvaWQgbWx4NV9kYl9mcmVlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2RiICpkYilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUzMS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTM4LVx0aWYgKGJpdG1hcF9mdWxsKGRiLVx1MDAzZXUucGdkaXItXHUwMDNlYml0bWFwLCBkYl9wZXJfcGFnZSkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjUzOTpcdFx0ZG1hX2ZyZWVfY29oZXJlbnQobWx4NV9jb3JlX2RtYV9kZXYoZGV2KSwgUEFHRV9TSVpFLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTQwLVx0XHRcdFx0ICBkYi1cdTAwM2V1LnBnZGlyLVx1MDAzZWRiX3BhZ2UsIGRiLVx1MDAzZXUucGdkaXItXHUwMDNlZGJfZG1hKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtNDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6NDQ6I2luY2x1ZGUgXCYjMzQ7bWx4NV9jb3JlLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy00NS0jaW5jbHVkZSBcJiMzNDtsaWIvZXEuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0yODM9c3RhdGljIHZvaWQgcG9sbF90aW1lb3V0KHN0cnVjdCBtbHg1X2NtZF93b3JrX2VudCAqZW50KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTI4NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6Mjg1Olx0c3RydWN0IG1seDVfY29yZV9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihlbnQtXHUwMDNlY21kLCBzdHJ1Y3QgbWx4NV9jb3JlX2RldiwgY21kKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yODYtXHR1NjQgY21kX3RvX21zID0gbWx4NV90b3V0X21zKGRldiwgQ01EKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MzMxPXN0YXRpYyB2b2lkIGR1bXBfYnVmKHZvaWQgKmJ1ZiwgaW50IHNpemUsIGludCBkYXRhX29ubHksIGludCBvZmZzZXQsIGludCBpZHgpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTM0Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzozNDc6c3RhdGljIGludCBtbHg1X2ludGVybmFsX2Vycl9yZXRfdmFsdWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IG9wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTM0OC1cdFx0XHRcdCAgICAgICB1MzIgKnN5bmQsIHU4ICpzdGF0dXMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTU0Ni1cdGRlZmF1bHQ6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6NTQ3Olx0XHRtbHg1X2NvcmVfZXJyKGRldiwgXCYjMzQ7VW5rbm93biBGVyBjb21tYW5kICglZClcXG5cJiMzNDssIG9wKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy01NDgtXHRcdHJldHVybiAtRUlOVkFMO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz03OTM9c3RhdGljIGludCBjbWRfc3RhdHVzX3RvX2Vycih1OCBzdGF0dXMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTgxNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo4MTc6dm9pZCBtbHg1X2NtZF9vdXRfZXJyKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBvcGNvZGUsIHUxNiBvcF9tb2QsIHZvaWQgKm91dClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MTgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODIyOlx0bWx4NV9jb3JlX2Vycl9ybChkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODIzLVx0XHRcdCBcJiMzNDslcygweCV4KSBvcF9tb2QoMHgleCkgZmFpbGVkLCBzdGF0dXMgJXMoMHgleCksIHN5bmRyb21lICgweCV4KSwgZXJyKCVkKVxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9ODI3PUVYUE9SVF9TWU1CT0wobWx4NV9jbWRfb3V0X2Vycik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODI4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjgyOTpzdGF0aWMgdm9pZCBjbWRfc3RhdHVzX3ByaW50KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHZvaWQgKmluLCB2b2lkICpvdXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODMwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjg0NTppbnQgbWx4NV9jbWRfY2hlY2soc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IGVyciwgdm9pZCAqaW4sIHZvaWQgKm91dClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04NDYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz04NzI9RVhQT1JUX1NZTUJPTChtbHg1X2NtZF9jaGVjayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODczLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjg3NDpzdGF0aWMgdm9pZCBkdW1wX2NvbW1hbmQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04NzUtXHRcdFx0IHN0cnVjdCBtbHg1X2NtZF93b3JrX2VudCAqZW50LCBpbnQgaW5wdXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg4NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo4ODY6XHRtbHg1X2NvcmVfZGJnKGRldiwgXCYjMzQ7Y21kWyVkXTogc3RhcnQgZHVtcFxcblwmIzM0OywgZW50LVx1MDAzZWlkeCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODg3Olx0ZGF0YV9vbmx5ID0gISEobWx4NV9jb3JlX2RlYnVnX21hc2sgXHUwMDI2ICgxIFx1MDAzY1x1MDAzYyBNTFg1X0NNRF9EQVRBKSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODg4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg4OS1cdGlmIChkYXRhX29ubHkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODkwOlx0XHRtbHg1X2NvcmVfZGJnX21hc2soZGV2LCAxIFx1MDAzY1x1MDAzYyBNTFg1X0NNRF9EQVRBLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg5MS1cdFx0XHRcdCAgIFwmIzM0O2NtZFslZF06IGR1bXAgY29tbWFuZCBkYXRhICVzKDB4JXgpICVzXFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04OTQtXHRlbHNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODk1Olx0XHRtbHg1X2NvcmVfZGJnKGRldiwgXCYjMzQ7Y21kWyVkXTogZHVtcCBjb21tYW5kICVzKDB4JXgpICVzXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg5Ni1cdFx0XHQgICAgICBlbnQtXHUwMDNlaWR4LCBtbHg1X2NvbW1hbmRfc3RyKG9wKSwgb3AsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTkxNy1cdFx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5MTg6XHRcdFx0bWx4NV9jb3JlX2RiZyhkZXYsIFwmIzM0O2NtZFslZF06IGNvbW1hbmQgYmxvY2s6XFxuXCYjMzQ7LCBlbnQtXHUwMDNlaWR4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05MTktXHRcdFx0ZHVtcF9idWYobmV4dC1cdTAwM2VidWYsIHNpemVvZihzdHJ1Y3QgbWx4NV9jbWRfcHJvdF9ibG9jayksIDAsIG9mZnNldCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTI4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjkyOTpcdG1seDVfY29yZV9kYmcoZGV2LCBcJiMzNDtjbWRbJWRdOiBlbmQgZHVtcFxcblwmIzM0OywgZW50LVx1MDAzZWlkeCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTMwLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05MzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6OTMyOnN0YXRpYyB2b2lkIG1seDVfY21kX2NvbXBfaGFuZGxlcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1NjQgdmVjLCBib29sIGZvcmNlZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTMzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTkzND1zdGF0aWMgdm9pZCBjYl90aW1lb3V0X2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05MzktXHRcdFx0XHRcdFx0ICAgICBjYl90aW1lb3V0X3dvcmspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk0MDpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBjb250YWluZXJfb2YoZW50LVx1MDAzZWNtZCwgc3RydWN0IG1seDVfY29yZV9kZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTQxLVx0XHRcdFx0XHRcdCBjbWQpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NDYtXHRpZiAoIXRlc3RfYml0KE1MWDVfQ01EX0VOVF9TVEFURV9QRU5ESU5HX0NPTVAsIFx1MDAyNmVudC1cdTAwM2VzdGF0ZSkpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5NDc6XHRcdG1seDVfY29yZV93YXJuKGRldiwgXCYjMzQ7Y21kWyVkXTogJXMoMHgleCkgQXN5bmMsIHJlY292ZXJlZCBhZnRlciB0aW1lb3V0XFxuXCYjMzQ7LCBlbnQtXHUwMDNlaWR4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk0OC1cdFx0XHQgICAgICAgbWx4NV9jb21tYW5kX3N0cihlbnQtXHUwMDNlb3ApLCBlbnQtXHUwMDNlb3ApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NTItXHRlbnQtXHUwMDNlcmV0ID0gLUVUSU1FRE9VVDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5NTM6XHRtbHg1X2NvcmVfd2FybihkZXYsIFwmIzM0O2NtZFslZF06ICVzKDB4JXgpIEFzeW5jLCB0aW1lb3V0LiBXaWxsIGNhdXNlIGEgbGVhayBvZiBhIGNvbW1hbmQgcmVzb3VyY2VcXG5cJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTU0LVx0XHQgICAgICAgZW50LVx1MDAzZWlkeCwgbWx4NV9jb21tYW5kX3N0cihlbnQtXHUwMDNlb3ApLCBlbnQtXHUwMDNlb3ApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6OTYxOnN0YXRpYyB2b2lkIGZyZWVfbXNnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1zZyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6OTYyOnN0YXRpYyB2b2lkIG1seDVfZnJlZV9jbWRfbXNnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTYzLVx0XHRcdCAgICAgIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1zZyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTk2NT1zdGF0aWMgYm9vbCBvcGNvZGVfYWxsb3dlZChzdHJ1Y3QgbWx4NV9jbWQgKmNtZCwgdTE2IG9wY29kZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk3Mzpib29sIG1seDVfY21kX2lzX2Rvd24oc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NzQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz05ODA9c3RhdGljIHZvaWQgY21kX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk4NS1cdHN0cnVjdCBtbHg1X2NtZF9sYXlvdXQgKmxheTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5ODY6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk4Ny1cdHVuc2lnbmVkIGxvbmcgdGltZW91dDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk5NDpcdGRldiA9IGNvbnRhaW5lcl9vZihjbWQsIHN0cnVjdCBtbHg1X2NvcmVfZGV2LCBjbWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk5NS1cdHRpbWVvdXQgPSBtc2Vjc190b19qaWZmaWVzKG1seDVfdG91dF9tcyhkZXYsIENNRCkpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05OTgtXHRcdGlmIChkb3duX3RpbWVvdXQoXHUwMDI2Y21kLVx1MDAzZXZhcnMuc2VtLCB0aW1lb3V0KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk5OTpcdFx0XHRtbHg1X2NvcmVfd2FybihkZXYsIFwmIzM0OyVzKDB4JXgpIHRpbWVkIG91dCB3aGlsZSB3YWl0aW5nIGZvciBhIHNsb3QuXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEwMDAtXHRcdFx0XHQgICAgICAgbWx4NV9jb21tYW5kX3N0cihlbnQtXHUwMDNlb3ApLCBlbnQtXHUwMDNlb3ApO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMDE1LVx0XHRpZiAoYWxsb2NfcmV0IFx1MDAzYyAwKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTAxNjpcdFx0XHRtbHg1X2NvcmVfZXJyX3JsKGRldiwgXCYjMzQ7ZmFpbGVkIHRvIGFsbG9jYXRlIGNvbW1hbmQgZW50cnlcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEwMTctXHRcdFx0aWYgKGVudC1cdTAwM2VjYWxsYmFjaykge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMDcyLVx0LyogcmluZyBkb29yYmVsbCBhZnRlciB0aGUgZGVzY3JpcHRvciBpcyB2YWxpZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjEwNzM6XHRtbHg1X2NvcmVfZGJnKGRldiwgXCYjMzQ7d3JpdGluZyAweCV4IHRvIGNvbW1hbmQgZG9vcmJlbGxcXG5cJiMzNDssIDEgXHUwMDNjXHUwMDNjIGVudC1cdTAwM2VpZHgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEwNzQtXHR3bWIoKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTE0MD1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE0My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMTQ0OnN0YXRpYyB2b2lkIHdhaXRfZnVuY19oYW5kbGVfZXhlY190aW1lb3V0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE0NS1cdFx0XHRcdFx0ICBzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE1Ni1cdGlmICh3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoXHUwMDI2ZW50LVx1MDAzZWRvbmUsIHRpbWVvdXQpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTE1NzpcdFx0bWx4NV9jb3JlX3dhcm4oZGV2LCBcJiMzNDtjbWRbJWRdOiAlcygweCV4KSByZWNvdmVyZWQgYWZ0ZXIgdGltZW91dFxcblwmIzM0OywgZW50LVx1MDAzZWlkeCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTU4LVx0XHRcdCAgICAgICBtbHg1X2NvbW1hbmRfc3RyKGVudC1cdTAwM2VvcCksIGVudC1cdTAwM2VvcCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExNjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTE2MjpcdG1seDVfY29yZV93YXJuKGRldiwgXCYjMzQ7Y21kWyVkXTogJXMoMHgleCkgTm8gZG9uZSBjb21wbGV0aW9uXFxuXCYjMzQ7LCBlbnQtXHUwMDNlaWR4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExNjMtXHRcdCAgICAgICBtbHg1X2NvbW1hbmRfc3RyKGVudC1cdTAwM2VvcCksIGVudC1cdTAwM2VvcCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExNjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTE2OTpzdGF0aWMgaW50IHdhaXRfZnVuYyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTcwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE5MS1cdGlmIChlcnIgPT0gLUVUSU1FRE9VVCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjExOTI6XHRcdG1seDVfY29yZV93YXJuKGRldiwgXCYjMzQ7JXMoMHgleCkgdGltZW91dC4gV2lsbCBjYXVzZSBhIGxlYWsgb2YgYSBjb21tYW5kIHJlc291cmNlXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExOTMtXHRcdFx0ICAgICAgIG1seDVfY29tbWFuZF9zdHIoZW50LVx1MDAzZW9wKSwgZW50LVx1MDAzZW9wKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTk0LVx0fSBlbHNlIGlmIChlcnIgPT0gLUVDQU5DRUxFRCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjExOTU6XHRcdG1seDVfY29yZV93YXJuKGRldiwgXCYjMzQ7JXMoMHgleCkgY2FuY2VsZWQgb24gb3V0IG9mIHF1ZXVlIHRpbWVvdXQuXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExOTYtXHRcdFx0ICAgICAgIG1seDVfY29tbWFuZF9zdHIoZW50LVx1MDAzZW9wKSwgZW50LVx1MDAzZW9wKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTk3LVx0fSBlbHNlIGlmIChlcnIgPT0gLUVCVVNZKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTE5ODpcdFx0bWx4NV9jb3JlX3dhcm4oZGV2LCBcJiMzNDslcygweCV4KSB0aW1lb3V0IHdoaWxlIHdhaXRpbmcgZm9yIGNvbW1hbmQgc2VtYXBob3JlLlxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTk5LVx0XHRcdCAgICAgICBtbHg1X2NvbW1hbmRfc3RyKGVudC1cdTAwM2VvcCksIGVudC1cdTAwM2VvcCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTIwMC1cdH1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMjAxOlx0bWx4NV9jb3JlX2RiZyhkZXYsIFwmIzM0O2VyciAlZCwgZGVsaXZlcnkgc3RhdHVzICVzKCVkKVxcblwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjAyLVx0XHQgICAgICBlcnIsIGRlbGl2X3N0YXR1c190b19zdHIoZW50LVx1MDAzZXN0YXR1cyksIGVudC1cdTAwM2VzdGF0dXMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjE1LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjEyMTY6c3RhdGljIGJvb2wgbWx4NV9jbWRfYWxsX3N0YWxsZWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjE3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTI1OC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMjU5OnN0YXRpYyBpbnQgbWx4NV9jbWRfaW52b2tlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZF9tc2cgKmluLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyNjAtXHRcdFx0ICAgc3RydWN0IG1seDVfY21kX21zZyAqb3V0LCB2b2lkICp1b3V0LCBpbnQgdW91dF9zaXplLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjc1LVx0aWYgKCFwYWdlX3F1ZXVlIFx1MDAyNlx1MDAyNiBtbHg1X2NtZF9hbGxfc3RhbGxlZChkZXYpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTI3NjpcdFx0bWx4NV9jb3JlX2Vycl9ybChkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTI3Ny1cdFx0XHRcdCBcJiMzNDtBbGwgQ01EIHNsb3RzIGFyZSBzdGFsbGVkLCBhYm9ydGluZyBjb21tYW5kXFxuXCYjMzQ7KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTMwNi1cdH0gZWxzZSBpZiAoIXF1ZXVlX3dvcmsoY21kLVx1MDAzZXdxLCBcdTAwMjZlbnQtXHUwMDNld29yaykpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMzA3Olx0XHRtbHg1X2NvcmVfd2FybihkZXYsIFwmIzM0O2ZhaWxlZCB0byBxdWV1ZSB3b3JrXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMzA4LVx0XHRlcnIgPSAtRUFMUkVBRFk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEzMjYtXHR9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTMyNzpcdG1seDVfY29yZV9kYmdfbWFzayhkZXYsIDEgXHUwMDNjXHUwMDNjIE1MWDVfQ01EX1RJTUUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTMyOC1cdFx0XHQgICBcJiMzNDtmdyBleGVjIHRpbWUgZm9yICVzIGlzICVsbGQgbnNlY1xcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTMzNz1zdGF0aWMgc3NpemVfdCBkYmdfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICpidWYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEzMzkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjEzNDA6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTM0MS1cdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXHUwMDI2ZGV2LVx1MDAzZWNtZC5kYmc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE0MDQ9c3RhdGljIGludCBtbHg1X2NvcHlfZnJvbV9tc2codm9pZCAqdG8sIHN0cnVjdCBtbHg1X2NtZF9tc2cgKmZyb20sIGludCBzaXplKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE0Mzc6c3RhdGljIHN0cnVjdCBtbHg1X2NtZF9tYWlsYm94ICphbGxvY19jbWRfYm94KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQzOC1cdFx0XHRcdFx0ICAgICAgZ2ZwX3QgZmxhZ3MpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0NDgtXHRpZiAoIW1haWxib3gtXHUwMDNlYnVmKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTQ0OTpcdFx0bWx4NV9jb3JlX2RiZyhkZXYsIFwmIzM0O2ZhaWxlZCBhbGxvY2F0aW9uXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDUwLVx0XHRrZnJlZShtYWlsYm94KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQ1Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNDU4OnN0YXRpYyB2b2lkIGZyZWVfY21kX2JveChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0NTktXHRcdFx0IHN0cnVjdCBtbHg1X2NtZF9tYWlsYm94ICptYWlsYm94KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE0NjU6c3RhdGljIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1seDVfYWxsb2NfY21kX21zZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0NjYtXHRcdFx0XHRcdCAgICAgICBnZnBfdCBmbGFncywgaW50IHNpemUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0ODUtXHRcdGlmIChJU19FUlIodG1wKSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE0ODY6XHRcdFx0bWx4NV9jb3JlX3dhcm4oZGV2LCBcJiMzNDtmYWlsZWQgYWxsb2NhdGluZyBibG9ja1xcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQ4Ny1cdFx0XHRlcnIgPSBQVFJfRVJSKHRtcCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1MTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTUxMjpzdGF0aWMgdm9pZCBtbHg1X2ZyZWVfY21kX21zZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1MTMtXHRcdFx0ICAgICAgc3RydWN0IG1seDVfY21kX21zZyAqbXNnKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNTI2PXN0YXRpYyBzc2l6ZV90IGRhdGFfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICpidWYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1Mjgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE1Mjk6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTUzMC1cdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXHUwMDI2ZGV2LVx1MDAzZWNtZC5kYmc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1NTA9c3RhdGljIHNzaXplX3QgZGF0YV9yZWFkKHN0cnVjdCBmaWxlICpmaWxwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1NTIte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE1NTM6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU1NC1cdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXHUwMDI2ZGV2LVx1MDAzZWNtZC5kYmc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1NzA9c3RhdGljIHNzaXplX3Qgb3V0bGVuX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU3Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU3MzpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBmaWxwLVx1MDAzZXByaXZhdGVfZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTc0LVx0c3RydWN0IG1seDVfY21kX2RlYnVnICpkYmcgPSBcdTAwMjZkZXYtXHUwMDNlY21kLmRiZztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTU4NT1zdGF0aWMgc3NpemVfdCBvdXRsZW5fd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsIGNvbnN0IGNoYXIgX191c2VyICpidWYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1ODcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE1ODg6XHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cdTAwM2Vwcml2YXRlX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTU4OS1cdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXHUwMDI2ZGV2LVx1MDAzZWNtZC5kYmc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE2MjE9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgb2xmb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2Mjg6c3RhdGljIHZvaWQgc2V0X3dxbmFtZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2Mjkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjM1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2MzY6c3RhdGljIHZvaWQgY2xlYW5fZGVidWdfZmlsZXMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjM3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY0NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjQ2OnN0YXRpYyB2b2lkIGNyZWF0ZV9kZWJ1Z2ZzX2ZpbGVzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY0Ny17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTY1OTp2b2lkIG1seDVfY21kX2FsbG93ZWRfb3Bjb2RlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUxNiBvcGNvZGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY2MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTY3NTpzdGF0aWMgdm9pZCBtbHg1X2NtZF9jaGFuZ2VfbW9kKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBtb2RlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NzYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNjkxPXN0YXRpYyBpbnQgY21kX2NvbXBfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY5My17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTY5NDpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY5NS1cdHN0cnVjdCBtbHg1X2NtZCAqY21kO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjk4LVx0Y21kID0gbWx4NV9uYl9jb2YobmIsIHN0cnVjdCBtbHg1X2NtZCwgbmIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2OTk6XHRkZXYgPSBjb250YWluZXJfb2YoY21kLCBzdHJ1Y3QgbWx4NV9jb3JlX2RldiwgY21kKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzAwLVx0ZXFlID0gZGF0YTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcwOC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTcwOTp2b2lkIG1seDVfY21kX3VzZV9ldmVudHMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzEwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcxNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzE2OnZvaWQgbWx4NV9jbWRfdXNlX3BvbGxpbmcoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzE3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzIyOnN0YXRpYyB2b2lkIGZyZWVfbXNnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1zZylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzIzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTczNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzM1OnN0YXRpYyB2b2lkIG1seDVfY21kX2NvbXBfaGFuZGxlcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1NjQgdmVjLCBib29sIGZvcmNlZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzM2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTc2NS1cdFx0XHRcdGlmICghZm9yY2VkKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTc2NjpcdFx0XHRcdFx0bWx4NV9jb3JlX2VycihkZXYsIFwmIzM0O0NvbW1hbmQgY29tcGxldGlvbiBhcnJpdmVkIGFmdGVyIHRpbWVvdXQgKGVudHJ5IGlkeCA9ICVkKS5cXG5cJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTc2Ny1cdFx0XHRcdFx0XHQgICAgICBlbnQtXHUwMDNlaWR4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTc5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzk0Olx0XHRcdFx0bWx4NV9jb3JlX2RiZyhkZXYsIFwmIzM0O2NvbW1hbmQgY29tcGxldGVkLiByZXQgMHgleCwgZGVsaXZlcnkgc3RhdHVzICVzKDB4JXgpXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE3OTUtXHRcdFx0XHRcdCAgICAgIGVudC1cdTAwM2VyZXQsIGRlbGl2X3N0YXR1c190b19zdHIoZW50LVx1MDAzZXN0YXR1cyksIGVudC1cdTAwM2VzdGF0dXMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE4Mzk6c3RhdGljIHZvaWQgbWx4NV9jbWRfdHJpZ2dlcl9jb21wbGV0aW9ucyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE4NDAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODYzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE4NjQ6XHRtbHg1X2NvcmVfZGJnKGRldiwgXCYjMzQ7dmVjdG9yIDB4JWxseFxcblwmIzM0OywgdmVjdG9yKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODY1LVx0bWx4NV9jbWRfY29tcF9oYW5kbGVyKGRldiwgdmVjdG9yLCB0cnVlKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTg3My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxODc0OnZvaWQgbWx4NV9jbWRfZmx1c2goc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODc1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTg5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxODk3OnN0YXRpYyBzdHJ1Y3QgbWx4NV9jbWRfbXNnICphbGxvY19tc2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IGluX3NpemUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTg5OC1cdFx0XHRcdCAgICAgIGdmcF90IGdmcClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MTkzNT1zdGF0aWMgaW50IGlzX21hbmFnZV9wYWdlcyh2b2lkICppbilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTkzOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxOTQwOnN0YXRpYyBib29sIG1seDVfaGFzX3ByaXZpbGVnZWRfdWlkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTk0MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE5NDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTk0NTpzdGF0aWMgYm9vbCBtbHg1X2NtZF9pc19wcml2aWxlZ2VkX3VpZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE5NDYtXHRcdFx0XHQgICAgICAgdTE2IHVpZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTk1NC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxOTU1OnN0YXRpYyBpbnQgY21kX2V4ZWMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdm9pZCAqaW4sIGludCBpbl9zaXplLCB2b2lkICpvdXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTk1Ni1cdFx0ICAgIGludCBvdXRfc2l6ZSwgbWx4NV9jbWRfY2JrX3QgY2FsbGJhY2ssIHZvaWQgKmNvbnRleHQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE5OTktXHRpZiAoZXJyKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MjAwMDpcdFx0bWx4NV9jb3JlX3dhcm4oZGV2LCBcJiMzNDtlcnIgJWRcXG5cJiMzNDssIGVycik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjAwMS1cdFx0Z290byBvdXRfaW47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTIwMzUtXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDE6NTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjYwODEKCQkJCQkJCW91dHB1dDogMTAxCgkJCQkJCQl0aG91Z2h0czogNzQ5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1MWDUgUGF0Y2gmIzM5O3MgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIGBDT05GSUdfTUxYNV9DT1JFYCDigJMgdGhhdCYjMzk7cyB0aGUgY29yZSBkcml2ZXIsIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsICYjMzQ7Q2FuIHN5emthbGxlciBldmVuIHRvdWNoIHRoaXMgY29kZT8mIzM0OyBJIG5lZWQgdG8gdmVyaWZ5IGlmIHN5emthbGxlciBpcyBhY3RpdmVseSBmdXp6aW5nIG1seDUuIEkga25vdyBpdCBoYXMgYSBgc3l6X3BjaV9kZXZpY2VfYWRkYCBjYWxsLCB3aGljaCBpcyBhIHN0YXJ0aW5nIHBvaW50IGZvciBQQ0kgZGV2aWNlIGludGVyYWN0aW9uLCBidXQgaXQmIzM5O3Mgbm90IGEgZ3VhcmFudGVlIHRvIHJlYWNoIGRlZXAgaW50byBuZXR3b3JrIGRyaXZlcnMgdW5sZXNzIHRoZXJlJiMzOTtzIGRlZGljYXRlZCBzdXBwb3J0LiAKCkhvbGQgb24sIG1heWJlIHRoZSBwYXRjaCBpdHNlbGYgaXMganVzdCBhIGZ1bmN0aW9uYWwgY2hhbmdlIHdpdGhpbiB0aGUgZHJpdmVyPyBJIHNob3VsZCByZS1yZWFkIHRob3NlIGluc3RydWN0aW9uczogJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zLi4uIGNvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuLi4mIzM0OwoKR2l2ZW4gdGhhdCBtbHg1IGlzIHRpZWQgdG8gcGh5c2ljYWwgaGFyZHdhcmUsIE1lbGxhbm94IENvbm5lY3RYIHNwZWNpZmljYWxseSwgYW5kIHRoZXJlJiMzOTtzIG5vIG5hdGl2ZSBzb2Z0d2FyZSBlbXVsYXRpb24gb2YgaXQgaW4gUUVNVSBvciB0aGUga2VybmVsICh1bmxpa2UsIHNheSwgYSB2aXJ0dWFsIFVTQiBnYWRnZXQgb3IgbWFjODAyMTFfaHdzaW0pLCB0aGUgY29kZSBwYXRocyBhZGRyZXNzZWQgYnkgdGhpcyBwYXRjaCBhcmUgZGVmaW5pdGl2ZWx5IGluYWNjZXNzaWJsZSBpbiBhIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnQuCgpMZXQgbWUganVzdCBjaGVjayBmb3IgYWx0ZXJuYXRpdmVzIGp1c3QgaW4gY2FzZS4uLiBJcyB0aGVyZSBhIHZEUEEgcGF0aD8gQWgsIGB2ZHBhL21seDVgICpyZXF1aXJlcyogdGhlIHBoeXNpY2FsIG1seDUgZGV2aWNlLiBXaGF0IGFib3V0IG5ldGRldnNpbT8gTm8sIGl0IGhhbmRsZXMgc29tZSBvZmZsb2FkcyBidXQgZG9lc24mIzM5O3QgYWN0dWFsbHkgdXNlIG1seDUgY29kZS4gTW9jayBkcml2ZXJzPyBObyBkaWNlLgoKQWxyaWdodCwgYmFjayB0byB0aGUgcGF0Y2guIEl0JiMzOTtzIG1vZGlmeWluZyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmNgIGFuZCBgZW5fc3RhdHMuY2AsIHNwZWNpZmljYWxseSBgbWx4NWVfcG9sbF90eF9jcWAuIFRoaXMgaXMgdW5lcXVpdm9jYWxseSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgY29kZSwgbm8gaWZzLCBhbmRzLCBvciBidXRzLiBTaW5jZSB0aGVyZSYjMzk7cyBubyBzb2Z0d2FyZSBlbXVsYXRpb24sIHJlYWNoaW5nIHRoaXMgY29kZSBpbiBRRU1VIG9yIHNpbWlsYXIgZW52aXJvbm1lbnRzIGlzIGEgZGVhZCBlbmQuCgpUaHVzLCBJJiMzOTttIHNldHRpbmcgYFdvcnRoRnV6emluZz1mYWxzZWAgYW5kIGFkZGluZyB0aGUgZm9sbG93aW5nIHJlYXNvbmluZzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IG1seDUgZXRoZXJuZXQgZHJpdmVyIChgbWx4NWVfcG9sbF90eF9jcWApLiBUaGlzIGlzIGEgcGh5c2ljYWwgaGFyZHdhcmUgZHJpdmVyIGZvciBNZWxsYW5veCBDb25uZWN0WCBhZGFwdGVycyBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgaXQgaW4gUUVNVSBvciB0aGUga2VybmVsLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLiYjMzQ7CgpCdXQganVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIGxldCYjMzk7cyBleHBsb3JlIGlmIHN5emthbGxlciBjYW4gYmxpbmRseSBwcm9iZSB0aGUgZHJpdmVyLiAgSXQgKm1pZ2h0KiBiZSBhYmxlIHRvIHJlYWNoIHNvbWUgY29kZSBieSB1c2luZyBgc3l6X3BjaV9kZXZpY2VfYWRkYCBhbmQgbWFwcGluZyBtZW1vcnkgcGx1cyByZXNwb25kaW5nIHRvIE1NSU8gcmVhZHMsIGhvd2V2ZXIgcmVhY2hpbmcgYG1seDVlX3BvbGxfdHhfY3FgIG5lZWRzIGEgZnVsbHkgaW5pdGlhbGl6ZWQgZGV2aWNlLCBuZXRkZXYgcmVnaXN0cmF0aW9uLCBicmluZ2luZyBpdCB1cCwgYW5kIGEgVFggaW50ZXJydXB0LiBUaGF0JiMzOTtzIHByYWN0aWNhbGx5IGltcG9zc2libGUgZm9yIGEgYmxpbmQgZnV6emVyIHdpdGhvdXQgc3BlY2lmaWMgZW11bGF0aW9uLiBQbHVzIHRoZSBpbnN0cnVjdGlvbnMgc2F5OiAmIzM0O0NvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgKmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUqLiYjMzQ7IFNvLCBteSBjb25jbHVzaW9uIGhvbGRzLgoKSSYjMzk7bSBjYWxsaW5nIGBzZXQtcmVzdWx0c2Agd2l0aCBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDMgMDE6NTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggbWx4NSBldGhlcm5ldCBkcml2ZXIgKG1seDVlX3BvbGxfdHhfY3EpLiBUaGlzIGlzIGEgcGh5c2ljYWwgaGFyZHdhcmUgZHJpdmVyIGZvciBNZWxsYW5veCBDb25uZWN0WCBhZGFwdGVycyBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgaXQgaW4gUUVNVSBvciB0aGUga2VybmVsLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IG1seDUgZXRoZXJuZXQgZHJpdmVyIChtbHg1ZV9wb2xsX3R4X2NxKS4gVGhpcyBpcyBhIHBoeXNpY2FsIGhhcmR3YXJlIGRyaXZlciBmb3IgTWVsbGFub3ggQ29ubmVjdFggYWRhcHRlcnMgYW5kIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIGl0IGluIFFFTVUgb3IgdGhlIGtlcm5lbC4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwMTo1MDo0MC41MzUwNzY4MDhaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTIxODUwOTA5NDksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBtbHg1IGV0aGVybmV0IGRyaXZlciAobWx4NWVfcG9sbF90eF9jcSkuIFRoaXMgaXMgYSBwaHlzaWNhbCBoYXJkd2FyZSBkcml2ZXIgZm9yIE1lbGxhbm94IENvbm5lY3RYIGFkYXB0ZXJzIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gYXZhaWxhYmxlIGZvciBpdCBpbiBRRU1VIG9yIHRoZSBrZXJuZWwuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwMTo1MDo0MC41MzUwODE5ODhaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwMDAwNDI2OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGUwOTUwNGJjMDg2OWQzMDJlNzBkMTA5ZTVmZTZjYTIxMWRkMzI5MDhcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMyAwMTo1MDozOSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jXFxuaW5kZXggN2YzMzI2MWJhNjU1M2IuLmI5NDAyODBhZjE5ZGJmIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmNcXG5AQCAtMTcxLDYgKzE3MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHN3X3N0YXRzX2Rlc2NbXSA9IHtcXG4gXFx0eyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF9jcWVzKSB9LFxcbiBcXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X3F1ZXVlX3dha2UpIH0sXFxuIFxcdHsgTUxYNUVfREVDTEFSRV9TVEFUKHN0cnVjdCBtbHg1ZV9zd19zdGF0cywgdHhfY3FlX2VycikgfSxcXG4rXFx0eyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF90aW1lX2J1ZGdldF9leGl0KSB9LFxcbiBcXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X3hkcF94bWl0KSB9LFxcbiBcXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X3hkcF9tcHdxZSkgfSxcXG4gXFx0eyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF94ZHBfaW5sbncpIH0sXFxuQEAgLTQyNiw2ICs0MjcsNyBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9zdGF0c19ncnBfc3dfdXBkYXRlX3N0YXRzX3NxKHN0cnVjdCBtbHg1ZV9zd19zdGF0cyAqcyxcXG4gXFx0cy1cXHUwMDNldHhfcXVldWVfd2FrZSAgICAgICAgICAgICs9IHNxX3N0YXRzLVxcdTAwM2V3YWtlO1xcbiBcXHRzLVxcdTAwM2V0eF9xdWV1ZV9kcm9wcGVkICAgICAgICAgKz0gc3Ffc3RhdHMtXFx1MDAzZWRyb3BwZWQ7XFxuIFxcdHMtXFx1MDAzZXR4X2NxZV9lcnIgICAgICAgICAgICAgICArPSBzcV9zdGF0cy1cXHUwMDNlY3FlX2VycjtcXG4rXFx0cy1cXHUwMDNldHhfdGltZV9idWRnZXRfZXhpdCAgICAgICs9IHNxX3N0YXRzLVxcdTAwM2V0aW1lX2J1ZGdldF9leGl0O1xcbiBcXHRzLVxcdTAwM2V0eF9yZWNvdmVyICAgICAgICAgICAgICAgKz0gc3Ffc3RhdHMtXFx1MDAzZXJlY292ZXI7XFxuIFxcdHMtXFx1MDAzZXR4X3htaXRfbW9yZSAgICAgICAgICAgICArPSBzcV9zdGF0cy1cXHUwMDNleG1pdF9tb3JlO1xcbiBcXHRzLVxcdTAwM2V0eF9jc3VtX3BhcnRpYWxfaW5uZXIgICAgKz0gc3Ffc3RhdHMtXFx1MDAzZWNzdW1fcGFydGlhbF9pbm5lcjtcXG5AQCAtMjMyMyw2ICsyMzI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjb3VudGVyX2Rlc2Mgc3Ffc3RhdHNfZGVzY1tdID0ge1xcbiBcXHR7IE1MWDVFX0RFQ0xBUkVfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZXMpIH0sXFxuIFxcdHsgTUxYNUVfREVDTEFSRV9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgd2FrZSkgfSxcXG4gXFx0eyBNTFg1RV9ERUNMQVJFX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCBjcWVfZXJyKSB9LFxcbitcXHR7IE1MWDVFX0RFQ0xBUkVfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIHRpbWVfYnVkZ2V0X2V4aXQpIH0sXFxuIH07XFxuIFxcbiBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBycV94ZHBzcV9zdGF0c19kZXNjW10gPSB7XFxuQEAgLTIzOTksNiArMjQwMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHB0cF9zcV9zdGF0c19kZXNjW10gPSB7XFxuIFxcdHsgTUxYNUVfREVDTEFSRV9QVFBfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZXMpIH0sXFxuIFxcdHsgTUxYNUVfREVDTEFSRV9QVFBfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIHdha2UpIH0sXFxuIFxcdHsgTUxYNUVfREVDTEFSRV9QVFBfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZV9lcnIpIH0sXFxuK1xcdHsgTUxYNUVfREVDTEFSRV9QVFBfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIHRpbWVfYnVkZ2V0X2V4aXQpIH0sXFxuIH07XFxuIFxcbiBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBwdHBfY2hfc3RhdHNfZGVzY1tdID0ge1xcbkBAIC0yNDc2LDYgKzI0ODAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBxb3Nfc3Ffc3RhdHNfZGVzY1tdID0ge1xcbiBcXHR7IE1MWDVFX0RFQ0xBUkVfUU9TX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCBjcWVzKSB9LFxcbiBcXHR7IE1MWDVFX0RFQ0xBUkVfUU9TX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCB3YWtlKSB9LFxcbiBcXHR7IE1MWDVFX0RFQ0xBUkVfUU9TX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCBjcWVfZXJyKSB9LFxcbitcXHR7IE1MWDVFX0RFQ0xBUkVfUU9TX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCB0aW1lX2J1ZGdldF9leGl0KSB9LFxcbiB9O1xcbiBcXG4gI2RlZmluZSBOVU1fUlFfU1RBVFNcXHRcXHRcXHRBUlJBWV9TSVpFKHJxX3N0YXRzX2Rlc2MpXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmhcXG5pbmRleCAwOWYxNTVhY2I0NjFiYy4uNWJhOTU0ZjQyY2NkNWIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmhcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuaFxcbkBAIC0xODcsNiArMTg3LDcgQEAgc3RydWN0IG1seDVlX3N3X3N0YXRzIHtcXG4gXFx0dTY0IHR4X2NxZXM7XFxuIFxcdHU2NCB0eF9xdWV1ZV93YWtlO1xcbiBcXHR1NjQgdHhfY3FlX2VycjtcXG4rXFx0dTY0IHR4X3RpbWVfYnVkZ2V0X2V4aXQ7XFxuIFxcdHU2NCB0eF94ZHBfeG1pdDtcXG4gXFx0dTY0IHR4X3hkcF9tcHdxZTtcXG4gXFx0dTY0IHR4X3hkcF9pbmxudztcXG5AQCAtNDQ1LDYgKzQ0Niw3IEBAIHN0cnVjdCBtbHg1ZV9zcV9zdGF0cyB7XFxuIFxcdHU2NCBjcWVzIF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7XFxuIFxcdHU2NCB3YWtlO1xcbiBcXHR1NjQgY3FlX2VycjtcXG4rXFx0dTY0IHRpbWVfYnVkZ2V0X2V4aXQ7XFxuIH07XFxuIFxcbiBzdHJ1Y3QgbWx4NWVfeGRwc3Ffc3RhdHMge1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jXFxuaW5kZXggMGI1ZTYwMGU0YTZhOTUuLjk5NGRmOTEyYjc2NWNiIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmNcXG5AQCAtNDMsNiArNDMsMTMgQEBcXG4gI2luY2x1ZGUgXFxcImVuX2FjY2VsL21hY3NlYy5oXFxcIlxcbiAjaW5jbHVkZSBcXFwiZW4vcHRwLmhcXFwiXFxuICNpbmNsdWRlIFxcdTAwM2NuZXQvaXB2Ni5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNjbGludXgvbW9kdWxlcGFyYW0uaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3NjaGVkL2Nsb2NrLmhcXHUwMDNlXFxuK1xcbitzdGF0aWMgdW5zaWduZWQgaW50IG1seDVlX3R4X2NxX3RpbWVfYnVkZ2V0X3VzID0gNTAwO1xcbittb2R1bGVfcGFyYW1fbmFtZWQodHhfY3FfdGltZV9idWRnZXRfdXMsIG1seDVlX3R4X2NxX3RpbWVfYnVkZ2V0X3VzLCB1aW50LCAwNjQ0KTtcXG4rTU9EVUxFX1BBUk1fREVTQyh0eF9jcV90aW1lX2J1ZGdldF91cyxcXG4rXFx0XFx0IFxcXCJNYXggbWljcm9zZWNvbmRzIG9uZSBUWCBDUSBwb2xsIG1heSBzcGVuZCBiZWZvcmUgeWllbGRpbmcgKDAgPSB1bmJvdW5kZWQpXFxcIik7XFxuIFxcbiBzdGF0aWMgdm9pZCBtbHg1ZV9kbWFfdW5tYXBfd3FlX2VycihzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxLCB1OCBudW1fZG1hKVxcbiB7XFxuQEAgLTc2MCw5ICs3NjcsMTIgQEAgdm9pZCBtbHg1ZV90eHFzcV93YWtlKHN0cnVjdCBtbHg1ZV90eHFzcSAqc3EpXFxuIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpXFxuIHtcXG4gXFx0c3RydWN0IG1seDVlX3NxX3N0YXRzICpzdGF0cztcXG4rXFx0Ym9vbCB0aW1lX2V4Y2VlZGVkID0gZmFsc2U7XFxuK1xcdHU2NCB0aW1lX2J1ZGdldF9lbmQgPSAwO1xcbiBcXHRzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxO1xcbiBcXHRzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlO1xcbiBcXHR1MzIgZG1hX2ZpZm9fY2M7XFxuK1xcdHUzMiBidWRnZXRfdXM7XFxuIFxcdHUzMiBuYnl0ZXM7XFxuIFxcdHUxNiBucGt0cztcXG4gXFx0dTE2IHNxY2M7XFxuQEAgLTc5MCw2ICs4MDAsMTAgQEAgYm9vbCBtbHg1ZV9wb2xsX3R4X2NxKHN0cnVjdCBtbHg1ZV9jcSAqY3EsIGludCBuYXBpX2J1ZGdldClcXG4gXFx0LyogYXZvaWQgZGlydHlpbmcgc3EgY2FjaGUgbGluZSBldmVyeSBjcWUgKi9cXG4gXFx0ZG1hX2ZpZm9fY2MgPSBzcS1cXHUwMDNlZG1hX2ZpZm9fY2M7XFxuIFxcbitcXHRidWRnZXRfdXMgPSBSRUFEX09OQ0UobWx4NWVfdHhfY3FfdGltZV9idWRnZXRfdXMpO1xcbitcXHRpZiAoYnVkZ2V0X3VzKVxcbitcXHRcXHR0aW1lX2J1ZGdldF9lbmQgPSBsb2NhbF9jbG9jaygpICsgKHU2NClidWRnZXRfdXMgKiBOU0VDX1BFUl9VU0VDO1xcbitcXG4gXFx0aSA9IDA7XFxuIFxcdGRvIHtcXG4gXFx0XFx0c3RydWN0IG1seDVlX3R4X3dxZV9pbmZvICp3aTtcXG5AQCAtODQyLDggKzg1NiwxOSBAQCBib29sIG1seDVlX3BvbGxfdHhfY3Eoc3RydWN0IG1seDVlX2NxICpjcSwgaW50IG5hcGlfYnVkZ2V0KVxcbiBcXHRcXHRcXHRzdGF0cy1cXHUwMDNlY3FlX2VycisrO1xcbiBcXHRcXHR9XFxuIFxcbitcXHRcXHQvKiBDaGVjayBiZXR3ZWVuIENRRXMgb25seSAoc3FjYy9kbWFfZmlmb19jYyBtdXN0IGFkdmFuY2UgdG9nZXRoZXIpLiAqL1xcbitcXHRcXHRpZiAodW5saWtlbHkodGltZV9idWRnZXRfZW5kIFxcdTAwMjZcXHUwMDI2IChpIFxcdTAwMjYgNykgPT0gNyBcXHUwMDI2XFx1MDAyNlxcbitcXHRcXHRcXHQgICAgIGxvY2FsX2Nsb2NrKCkgXFx1MDAzZT0gdGltZV9idWRnZXRfZW5kKSkge1xcbitcXHRcXHRcXHR0aW1lX2V4Y2VlZGVkID0gdHJ1ZTtcXG4rXFx0XFx0XFx0aSsrO1xcbitcXHRcXHRcXHRicmVhaztcXG4rXFx0XFx0fVxcbitcXG4gXFx0fSB3aGlsZSAoKCsraSBcXHUwMDNjIE1MWDVFX1RYX0NRX1BPTExfQlVER0VUKSBcXHUwMDI2XFx1MDAyNiAoY3FlID0gbWx4NV9jcXdxX2dldF9jcWUoXFx1MDAyNmNxLVxcdTAwM2V3cSkpKTtcXG4gXFxuK1xcdGlmICh1bmxpa2VseSh0aW1lX2V4Y2VlZGVkKSlcXG4rXFx0XFx0c3RhdHMtXFx1MDAzZXRpbWVfYnVkZ2V0X2V4aXQrKztcXG4rXFxuIFxcdHN0YXRzLVxcdTAwM2VjcWVzICs9IGk7XFxuIFxcbiBcXHRtbHg1X2Nxd3FfdXBkYXRlX2RiX3JlY29yZChcXHUwMDI2Y3EtXFx1MDAzZXdxKTtcXG5AQCAtODU4LDcgKzg4Myw3IEBAIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpXFxuIFxcbiBcXHRtbHg1ZV90eHFzcV93YWtlKHNxKTtcXG4gXFxuLVxcdHJldHVybiAoaSA9PSBNTFg1RV9UWF9DUV9QT0xMX0JVREdFVCk7XFxuK1xcdHJldHVybiB0aW1lX2V4Y2VlZGVkIHx8IChpID09IE1MWDVFX1RYX0NRX1BPTExfQlVER0VUKTtcXG4gfVxcbiBcXG4gc3RhdGljIHZvaWQgbWx4NWVfdHhfd2lfa2ZyZWVfZmlmb19za2JzKHN0cnVjdCBtbHg1ZV90eHFzcSAqc3EsIHN0cnVjdCBtbHg1ZV90eF93cWVfaW5mbyAqd2kpXFxuQEAgLTg3OSw2ICs5MDQsOCBAQCB2b2lkIG1seDVlX2ZyZWVfdHhxc3FfZGVzY3Moc3RydWN0IG1seDVlX3R4cXNxICpzcSlcXG4gXFx0ZG1hX2ZpZm9fY2MgPSBzcS1cXHUwMDNlZG1hX2ZpZm9fY2M7XFxuIFxcbiBcXHR3aGlsZSAoc3FjYyAhPSBzcS1cXHUwMDNlcGMpIHtcXG4rXFx0XFx0Y29uZF9yZXNjaGVkKCk7XFxuK1xcbiBcXHRcXHRjaSA9IG1seDVfd3FfY3ljX2N0cjJpeChcXHUwMDI2c3EtXFx1MDAzZXdxLCBzcWNjKTtcXG4gXFx0XFx0d2kgPSBcXHUwMDI2c3EtXFx1MDAzZWRiLndxZV9pbmZvW2NpXTtcXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDAxOjUwOjQwLjgzNTg2MTY0NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTExODg0Mjk5MDExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggbWx4NSBldGhlcm5ldCBkcml2ZXIgKG1seDVlX3BvbGxfdHhfY3EpLiBUaGlzIGlzIGEgcGh5c2ljYWwgaGFyZHdhcmUgZHJpdmVyIGZvciBNZWxsYW5veCBDb25uZWN0WCBhZGFwdGVycyBhbmQgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGF2YWlsYWJsZSBmb3IgaXQgaW4gUUVNVSBvciB0aGUga2VybmVsLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBlMDk1MDRiYzA4NjlkMzAyZTcwZDEwOWU1ZmU2Y2EyMTFkZDMyOTA4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMyAwMTo1MDozOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmNcbmluZGV4IDdmMzMyNjFiYTY1NTNiLi5iOTQwMjgwYWYxOWRiZiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuY1xuQEAgLTE3MSw2ICsxNzEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBzd19zdGF0c19kZXNjW10gPSB7XG4gXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X2NxZXMpIH0sXG4gXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X3F1ZXVlX3dha2UpIH0sXG4gXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X2NxZV9lcnIpIH0sXG4rXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X3RpbWVfYnVkZ2V0X2V4aXQpIH0sXG4gXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X3hkcF94bWl0KSB9LFxuIFx0eyBNTFg1RV9ERUNMQVJFX1NUQVQoc3RydWN0IG1seDVlX3N3X3N0YXRzLCB0eF94ZHBfbXB3cWUpIH0sXG4gXHR7IE1MWDVFX0RFQ0xBUkVfU1RBVChzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMsIHR4X3hkcF9pbmxudykgfSxcbkBAIC00MjYsNiArNDI3LDcgQEAgc3RhdGljIHZvaWQgbWx4NWVfc3RhdHNfZ3JwX3N3X3VwZGF0ZV9zdGF0c19zcShzdHJ1Y3QgbWx4NWVfc3dfc3RhdHMgKnMsXG4gXHRzLVx1MDAzZXR4X3F1ZXVlX3dha2UgICAgICAgICAgICArPSBzcV9zdGF0cy1cdTAwM2V3YWtlO1xuIFx0cy1cdTAwM2V0eF9xdWV1ZV9kcm9wcGVkICAgICAgICAgKz0gc3Ffc3RhdHMtXHUwMDNlZHJvcHBlZDtcbiBcdHMtXHUwMDNldHhfY3FlX2VyciAgICAgICAgICAgICAgICs9IHNxX3N0YXRzLVx1MDAzZWNxZV9lcnI7XG4rXHRzLVx1MDAzZXR4X3RpbWVfYnVkZ2V0X2V4aXQgICAgICArPSBzcV9zdGF0cy1cdTAwM2V0aW1lX2J1ZGdldF9leGl0O1xuIFx0cy1cdTAwM2V0eF9yZWNvdmVyICAgICAgICAgICAgICAgKz0gc3Ffc3RhdHMtXHUwMDNlcmVjb3ZlcjtcbiBcdHMtXHUwMDNldHhfeG1pdF9tb3JlICAgICAgICAgICAgICs9IHNxX3N0YXRzLVx1MDAzZXhtaXRfbW9yZTtcbiBcdHMtXHUwMDNldHhfY3N1bV9wYXJ0aWFsX2lubmVyICAgICs9IHNxX3N0YXRzLVx1MDAzZWNzdW1fcGFydGlhbF9pbm5lcjtcbkBAIC0yMzIzLDYgKzIzMjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBzcV9zdGF0c19kZXNjW10gPSB7XG4gXHR7IE1MWDVFX0RFQ0xBUkVfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZXMpIH0sXG4gXHR7IE1MWDVFX0RFQ0xBUkVfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIHdha2UpIH0sXG4gXHR7IE1MWDVFX0RFQ0xBUkVfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZV9lcnIpIH0sXG4rXHR7IE1MWDVFX0RFQ0xBUkVfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIHRpbWVfYnVkZ2V0X2V4aXQpIH0sXG4gfTtcbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBycV94ZHBzcV9zdGF0c19kZXNjW10gPSB7XG5AQCAtMjM5OSw2ICsyNDAyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjb3VudGVyX2Rlc2MgcHRwX3NxX3N0YXRzX2Rlc2NbXSA9IHtcbiBcdHsgTUxYNUVfREVDTEFSRV9QVFBfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZXMpIH0sXG4gXHR7IE1MWDVFX0RFQ0xBUkVfUFRQX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCB3YWtlKSB9LFxuIFx0eyBNTFg1RV9ERUNMQVJFX1BUUF9UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgY3FlX2VycikgfSxcbitcdHsgTUxYNUVfREVDTEFSRV9QVFBfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIHRpbWVfYnVkZ2V0X2V4aXQpIH0sXG4gfTtcbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IGNvdW50ZXJfZGVzYyBwdHBfY2hfc3RhdHNfZGVzY1tdID0ge1xuQEAgLTI0NzYsNiArMjQ4MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY291bnRlcl9kZXNjIHFvc19zcV9zdGF0c19kZXNjW10gPSB7XG4gXHR7IE1MWDVFX0RFQ0xBUkVfUU9TX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCBjcWVzKSB9LFxuIFx0eyBNTFg1RV9ERUNMQVJFX1FPU19UWF9TVEFUKHN0cnVjdCBtbHg1ZV9zcV9zdGF0cywgd2FrZSkgfSxcbiBcdHsgTUxYNUVfREVDTEFSRV9RT1NfVFhfU1RBVChzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMsIGNxZV9lcnIpIH0sXG4rXHR7IE1MWDVFX0RFQ0xBUkVfUU9TX1RYX1NUQVQoc3RydWN0IG1seDVlX3NxX3N0YXRzLCB0aW1lX2J1ZGdldF9leGl0KSB9LFxuIH07XG4gXG4gI2RlZmluZSBOVU1fUlFfU1RBVFNcdFx0XHRBUlJBWV9TSVpFKHJxX3N0YXRzX2Rlc2MpXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuaFxuaW5kZXggMDlmMTU1YWNiNDYxYmMuLjViYTk1NGY0MmNjZDViIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmhcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5oXG5AQCAtMTg3LDYgKzE4Nyw3IEBAIHN0cnVjdCBtbHg1ZV9zd19zdGF0cyB7XG4gXHR1NjQgdHhfY3FlcztcbiBcdHU2NCB0eF9xdWV1ZV93YWtlO1xuIFx0dTY0IHR4X2NxZV9lcnI7XG4rXHR1NjQgdHhfdGltZV9idWRnZXRfZXhpdDtcbiBcdHU2NCB0eF94ZHBfeG1pdDtcbiBcdHU2NCB0eF94ZHBfbXB3cWU7XG4gXHR1NjQgdHhfeGRwX2lubG53O1xuQEAgLTQ0NSw2ICs0NDYsNyBAQCBzdHJ1Y3QgbWx4NWVfc3Ffc3RhdHMge1xuIFx0dTY0IGNxZXMgX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcbiBcdHU2NCB3YWtlO1xuIFx0dTY0IGNxZV9lcnI7XG4rXHR1NjQgdGltZV9idWRnZXRfZXhpdDtcbiB9O1xuIFxuIHN0cnVjdCBtbHg1ZV94ZHBzcV9zdGF0cyB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguY1xuaW5kZXggMGI1ZTYwMGU0YTZhOTUuLjk5NGRmOTEyYjc2NWNiIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jXG5AQCAtNDMsNiArNDMsMTMgQEBcbiAjaW5jbHVkZSBcImVuX2FjY2VsL21hY3NlYy5oXCJcbiAjaW5jbHVkZSBcImVuL3B0cC5oXCJcbiAjaW5jbHVkZSBcdTAwM2NuZXQvaXB2Ni5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbGludXgvbW9kdWxlcGFyYW0uaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L3NjaGVkL2Nsb2NrLmhcdTAwM2VcbitcbitzdGF0aWMgdW5zaWduZWQgaW50IG1seDVlX3R4X2NxX3RpbWVfYnVkZ2V0X3VzID0gNTAwO1xuK21vZHVsZV9wYXJhbV9uYW1lZCh0eF9jcV90aW1lX2J1ZGdldF91cywgbWx4NWVfdHhfY3FfdGltZV9idWRnZXRfdXMsIHVpbnQsIDA2NDQpO1xuK01PRFVMRV9QQVJNX0RFU0ModHhfY3FfdGltZV9idWRnZXRfdXMsXG4rXHRcdCBcIk1heCBtaWNyb3NlY29uZHMgb25lIFRYIENRIHBvbGwgbWF5IHNwZW5kIGJlZm9yZSB5aWVsZGluZyAoMCA9IHVuYm91bmRlZClcIik7XG4gXG4gc3RhdGljIHZvaWQgbWx4NWVfZG1hX3VubWFwX3dxZV9lcnIoc3RydWN0IG1seDVlX3R4cXNxICpzcSwgdTggbnVtX2RtYSlcbiB7XG5AQCAtNzYwLDkgKzc2NywxMiBAQCB2b2lkIG1seDVlX3R4cXNxX3dha2Uoc3RydWN0IG1seDVlX3R4cXNxICpzcSlcbiBib29sIG1seDVlX3BvbGxfdHhfY3Eoc3RydWN0IG1seDVlX2NxICpjcSwgaW50IG5hcGlfYnVkZ2V0KVxuIHtcbiBcdHN0cnVjdCBtbHg1ZV9zcV9zdGF0cyAqc3RhdHM7XG4rXHRib29sIHRpbWVfZXhjZWVkZWQgPSBmYWxzZTtcbitcdHU2NCB0aW1lX2J1ZGdldF9lbmQgPSAwO1xuIFx0c3RydWN0IG1seDVlX3R4cXNxICpzcTtcbiBcdHN0cnVjdCBtbHg1X2NxZTY0ICpjcWU7XG4gXHR1MzIgZG1hX2ZpZm9fY2M7XG4rXHR1MzIgYnVkZ2V0X3VzO1xuIFx0dTMyIG5ieXRlcztcbiBcdHUxNiBucGt0cztcbiBcdHUxNiBzcWNjO1xuQEAgLTc5MCw2ICs4MDAsMTAgQEAgYm9vbCBtbHg1ZV9wb2xsX3R4X2NxKHN0cnVjdCBtbHg1ZV9jcSAqY3EsIGludCBuYXBpX2J1ZGdldClcbiBcdC8qIGF2b2lkIGRpcnR5aW5nIHNxIGNhY2hlIGxpbmUgZXZlcnkgY3FlICovXG4gXHRkbWFfZmlmb19jYyA9IHNxLVx1MDAzZWRtYV9maWZvX2NjO1xuIFxuK1x0YnVkZ2V0X3VzID0gUkVBRF9PTkNFKG1seDVlX3R4X2NxX3RpbWVfYnVkZ2V0X3VzKTtcbitcdGlmIChidWRnZXRfdXMpXG4rXHRcdHRpbWVfYnVkZ2V0X2VuZCA9IGxvY2FsX2Nsb2NrKCkgKyAodTY0KWJ1ZGdldF91cyAqIE5TRUNfUEVSX1VTRUM7XG4rXG4gXHRpID0gMDtcbiBcdGRvIHtcbiBcdFx0c3RydWN0IG1seDVlX3R4X3dxZV9pbmZvICp3aTtcbkBAIC04NDIsOCArODU2LDE5IEBAIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpXG4gXHRcdFx0c3RhdHMtXHUwMDNlY3FlX2VycisrO1xuIFx0XHR9XG4gXG4rXHRcdC8qIENoZWNrIGJldHdlZW4gQ1FFcyBvbmx5IChzcWNjL2RtYV9maWZvX2NjIG11c3QgYWR2YW5jZSB0b2dldGhlcikuICovXG4rXHRcdGlmICh1bmxpa2VseSh0aW1lX2J1ZGdldF9lbmQgXHUwMDI2XHUwMDI2IChpIFx1MDAyNiA3KSA9PSA3IFx1MDAyNlx1MDAyNlxuK1x0XHRcdCAgICAgbG9jYWxfY2xvY2soKSBcdTAwM2U9IHRpbWVfYnVkZ2V0X2VuZCkpIHtcbitcdFx0XHR0aW1lX2V4Y2VlZGVkID0gdHJ1ZTtcbitcdFx0XHRpKys7XG4rXHRcdFx0YnJlYWs7XG4rXHRcdH1cbitcbiBcdH0gd2hpbGUgKCgrK2kgXHUwMDNjIE1MWDVFX1RYX0NRX1BPTExfQlVER0VUKSBcdTAwMjZcdTAwMjYgKGNxZSA9IG1seDVfY3F3cV9nZXRfY3FlKFx1MDAyNmNxLVx1MDAzZXdxKSkpO1xuIFxuK1x0aWYgKHVubGlrZWx5KHRpbWVfZXhjZWVkZWQpKVxuK1x0XHRzdGF0cy1cdTAwM2V0aW1lX2J1ZGdldF9leGl0Kys7XG4rXG4gXHRzdGF0cy1cdTAwM2VjcWVzICs9IGk7XG4gXG4gXHRtbHg1X2Nxd3FfdXBkYXRlX2RiX3JlY29yZChcdTAwMjZjcS1cdTAwM2V3cSk7XG5AQCAtODU4LDcgKzg4Myw3IEBAIGJvb2wgbWx4NWVfcG9sbF90eF9jcShzdHJ1Y3QgbWx4NWVfY3EgKmNxLCBpbnQgbmFwaV9idWRnZXQpXG4gXG4gXHRtbHg1ZV90eHFzcV93YWtlKHNxKTtcbiBcbi1cdHJldHVybiAoaSA9PSBNTFg1RV9UWF9DUV9QT0xMX0JVREdFVCk7XG4rXHRyZXR1cm4gdGltZV9leGNlZWRlZCB8fCAoaSA9PSBNTFg1RV9UWF9DUV9QT0xMX0JVREdFVCk7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIG1seDVlX3R4X3dpX2tmcmVlX2ZpZm9fc2ticyhzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxLCBzdHJ1Y3QgbWx4NWVfdHhfd3FlX2luZm8gKndpKVxuQEAgLTg3OSw2ICs5MDQsOCBAQCB2b2lkIG1seDVlX2ZyZWVfdHhxc3FfZGVzY3Moc3RydWN0IG1seDVlX3R4cXNxICpzcSlcbiBcdGRtYV9maWZvX2NjID0gc3EtXHUwMDNlZG1hX2ZpZm9fY2M7XG4gXG4gXHR3aGlsZSAoc3FjYyAhPSBzcS1cdTAwM2VwYykge1xuK1x0XHRjb25kX3Jlc2NoZWQoKTtcbitcbiBcdFx0Y2kgPSBtbHg1X3dxX2N5Y19jdHIyaXgoXHUwMDI2c3EtXHUwMDNld3EsIHNxY2MpO1xuIFx0XHR3aSA9IFx1MDAyNnNxLVx1MDAzZWRiLndxZV9pbmZvW2NpXTtcbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDAxOjUwOjQwLjgzNTg2MzM0NloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY2MDYyNTIyODUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNZWxsYW5veCBtbHg1IFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2ggZm9yIHRoZSBNZWxsYW5veCBtbHg1IGV0aGVybmV0IGRyaXZlci4gSXQgc2VlbXMgdG8gaW50cm9kdWNlIGEgbmV3IG1vZHVsZSBwYXJhbWV0ZXIsIGB0eF9jcV90aW1lX2J1ZGdldF91c2AsIHRvIGxpbWl0IHRoZSB0aW1lIHNwZW50IGluIGBtbHg1ZV9wb2xsX3R4X2NxYC4gSXQgYWxzbyBpbmNsdWRlcyBhIG5ldyBzdGF0aXN0aWMsIGB0eF90aW1lX2J1ZGdldF9leGl0YCwgdG8gdHJhY2sgd2hlbiB0aGF0IHRpbWUgYnVkZ2V0IGlzIGV4Y2VlZGVkIGFuZCBhIGBjb25kX3Jlc2NoZWQoKWAgY2FsbCBpbiBgbWx4NWVfZnJlZV90eHFzcV9kZXNjc2AuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBhc3Nlc3MgaXRzIGZ1enppbmcgcG90ZW50aWFsLlxuXG5gbWx4NWVfcG9sbF90eF9jcWAgaXMgYSBoaWdoLXBlcmZvcm1hbmNlIGZ1bmN0aW9uIOKAkyBhIGhvdCBwYXRoIGZvciBwb2xsaW5nIHRoZSB0cmFuc21pdCBjb21wbGV0aW9uIHF1ZXVlLCBhbmQgdGhhdCBtYWtlcyBpdCBpbnRlcmVzdGluZy4gVGhlIHBhdGNoIGFkZHMgYSB0aW1lIGNoZWNrIHVzaW5nIGBsb2NhbF9jbG9jaygpYCBhbmQgYSBicmVhayBjb25kaXRpb24gaWYgdGhlIGJ1ZGdldCBpcyBleGNlZWRlZCwgd2hpY2ggY291bGQgaW50cm9kdWNlIHN1YnRsZSB0aW1pbmctcmVsYXRlZCBidWdzLiBUaGUgYGNvbmRfcmVzY2hlZCgpYCBjYWxsIGluIGBtbHg1ZV9mcmVlX3R4cXNxX2Rlc2NzYCBpcyBhbHNvIHdvcnRoIGEgY2xvc2VyIGxvb2sgZm9yIHBvc3NpYmxlIHJhY2UgY29uZGl0aW9ucywgYWx0aG91Z2ggdGhlIGxvY2F0aW9uIG1ha2VzIGl0IGxlc3Mgb2YgYSBob3Qgc3BvdC5cblxuVGhlIG1haW4gY29uY2VybiBub3csIGdpdmVuIG15IGV4cGVyaWVuY2UsIGlzIHJlYWNoYWJpbGl0eS4gTWVsbGFub3ggbWx4NSBpcywgYXMgSSByZWNhbGwsIGEgcGh5c2ljYWwgbmV0d29yayBjYXJkIGRyaXZlci4gTXkgcHJpbWFyeSBxdWVzdGlvbiBpcyBob3cgYWNjZXNzaWJsZSBpcyB0aGlzIGNvZGUgaW4gYSB0eXBpY2FsIGZ1enppbmcgc2V0dXA/IEhhcmR3YXJlIHJlcXVpcmVtZW50cyBhcmUgdGhlIGltbWVkaWF0ZSBwcm9ibGVtLiBJcyB0aGlzIHNvbWV0aGluZyB0aGF0IGNhbiBiZSBlbXVsYXRlZCBvciBieXBhc3NlZD8gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgd2UgaGF2ZSBhbnkga2luZCBvZiB2RFBBIGltcGxlbWVudGF0aW9uIG9yIHNvbWV0aGluZyBzaW1pbGFyIHRoYXQgbWlnaHQgYWxsb3cgdXMgdG8gZXhlcmNpc2UgdGhpcyBjb2RlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFdpdGhvdXQgc29tZXRoaW5nIGxpa2UgdGhhdCwgdGhpcyBpcyBsaWtlbHkgYSBub24tc3RhcnRlci5cblxuSSBuZWVkIHRvIGNvbmZpcm0gaWYgb3VyIGZ1enppbmcgZW52aXJvbm1lbnQgaGFzIFBDSSBlbXVsYXRpb24gY2FwYWJsZSBvZiBydW5uaW5nIHRoZSBtbHg1IGRyaXZlci4gUUVNVSBjb21lcyB0byBtaW5kLiBEb2VzIFFFTVUgZXZlbiBlbXVsYXRlIG1seDU/IFRoZSBvYnZpb3VzIGFuc3dlciBpcyBsaWtlbHkgbm8sIGF0IGxlYXN0IG5vdCBpbiBhIHdheSB0aGF0IHN5emthbGxlciB3b3VsZCB0eXBpY2FsbHkgbGV2ZXJhZ2UuIEhvd2V2ZXIsIEknbSBub3cgcmVjYWxsaW5nIHNvbWV0aGluZyBhYm91dCBgbWx4NWAgdkRQQS4gSSBuZWVkIHRvIGRvIGEga2VybmVsIHNlYXJjaCB0byBjb25maXJtIGFuZCBzZWUgaWYgd2UgY2FuIGdldCB0aGlzIHRvIHdvcmsuIEkgaGF2ZSBhIGZlZWxpbmcgdGhlIHZEUEEgcGF0aCBpcyB3aGVyZSB0aGUgcmVhbCBwb3RlbnRpYWwgbGllcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NDM2OSwiT3V0cHV0VG9rZW5zIjoyMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM5NSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDAxOjUwOjQ3LjQ0MjExNzYyMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDc0NTA4MjkyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVlX3BvbGxfdHhfY3FcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3B0cC5jPTI3Mz1zdGF0aWMgaW50IG1seDVlX3B0cF9uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3B0cC5jLTI4Ny1cXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgYy1cXHUwMDNlbnVtX3RjOyBpKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcHRwLmM6Mjg4OlxcdFxcdFxcdGJ1c3kgfD0gbWx4NWVfcG9sbF90eF9jcShcXHUwMDI2Yy1cXHUwMDNlcHRwc3FbaV0udHhxc3EuY3EsIGJ1ZGdldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3B0cC5jLTI4OS1cXHRcXHRcXHRidXN5IHw9IG1seDVlX3B0cF9wb2xsX3RzX2NxKFxcdTAwMjZjLVxcdTAwM2VwdHBzcVtpXS50c19jcSwgYnVkZ2V0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90eHJ4Lmg9MTEzPW5ldGRldl90eF90IG1seDVlX3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaDoxMTQ6Ym9vbCBtbHg1ZV9wb2xsX3R4X2NxKHN0cnVjdCBtbHg1ZV9jcSAqY3EsIGludCBuYXBpX2J1ZGdldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaC0xMTUtdm9pZCBtbHg1ZV9mcmVlX3R4cXNxX2Rlc2NzKHN0cnVjdCBtbHg1ZV90eHFzcSAqc3EpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmM9NzU2PXZvaWQgbWx4NWVfdHhxc3Ffd2FrZShzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmMtNzY2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jOjc2Nzpib29sIG1seDVlX3BvbGxfdHhfY3Eoc3RydWN0IG1seDVlX2NxICpjcSwgaW50IG5hcGlfYnVkZ2V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jLTc2OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHhyeC5jPTEyND1pbnQgbWx4NWVfbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eHJ4LmMtMTUwLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBjLVxcdTAwM2VudW1fdGM7IGkrKylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHhyeC5jOjE1MTpcXHRcXHRidXN5IHw9IG1seDVlX3BvbGxfdHhfY3EoXFx1MDAyNmMtXFx1MDAzZXNxW2ldLmNxLCBidWRnZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eHJ4LmMtMTUyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4cnguYy0xNjAtXFx0XFx0XFx0aWYgKHNxKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eHJ4LmM6MTYxOlxcdFxcdFxcdFxcdGJ1c3kgfD0gbWx4NWVfcG9sbF90eF9jcShcXHUwMDI2c3EtXFx1MDAzZWNxLCBidWRnZXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eHJ4LmMtMTYyLVxcdFxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDE6NTA6NDkuNTE2NjM0NTAzWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDEwOTg0Nzc3MTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTWx4NSBEcml2ZXIgUmVhY2hhYmlsaXR5IEFzc2Vzc21lbnQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIG1seDUgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZm9yIE1lbGxhbm94IENvbm5lY3RYLTQvNS82LzcgY2FyZHMuIE15IGluaXRpYWwgdGhvdWdodCBpcywgY2FuIHN5emthbGxlciBldmVuICpyZWFjaCogdGhpcyB0aGluZz8gT2J2aW91c2x5LCBzeXprYWxsZXIgZG9lc24ndCBoYXZlIHBoeXNpY2FsIE1lbGxhbm94IGhhcmR3YXJlLCBzbyB0aGF0J3MgYSBub24tc3RhcnRlci4gSSBxdWlja2x5IGNvbnNpZGVyIGEgc29mdHdhcmUgZW11bGF0aW9uIC0gaXMgdGhlcmUgc29tZXRoaW5nIGZvciBtbHg1PyBObywgdGhhdCdzIG5vdCByaWdodC4gSG1tLCB0aGVuIEkgcmVjYWxsIHN5emthbGxlciAqY2FuKiBmdXp6IGRyaXZlcnMgdGhhdCBjYW4gYmUgaW5zdGFudGlhdGVkIHRocm91Z2ggdGhpbmdzIGxpa2UgbmV0bGluaywgYnV0IG1seDUgaXMgYSBQQ0kgZHJpdmVyLCBzbyB0aGF0IHByb2JhYmx5IHJ1bGVzIGl0IG91dC5cblxuVGhlbiBJIHRoaW5rIGFib3V0IGBzeXpfbW91bnRfaW1hZ2VgIG9yIFVTQiBmdXp6aW5nLCBidXQgYWdhaW4sIG1seDUgaXMgUENJLiBPa2F5LCBpcyB0aGVyZSBhIFBDSSBmdXp6ZXIgKmluKiBzeXprYWxsZXI/IEFoLCB5ZXMsIHRoZXJlIGlzLCB0aHJvdWdoIHZmaW8vcGNpLiBIb3dldmVyLCBteSBleHBlcmllbmNlIGlzIHRoYXQgdGhpcyBpcyB1c3VhbGx5IHByZXR0eSBsaW1pdGVkLCBhbmQgdHlwaWNhbGx5IGRvZXNuJ3QgZ2V0IGRlZXAgaW50byBuZXR3b3JrIGRhdGEgcGF0aHMgdW5sZXNzIGl0J3MgYmVlbiBzcGVjaWZpY2FsbHkgY29uZmlndXJlZC5cblxuQWxyaWdodCwgd2hhdCBhYm91dCB0aG9zZSBpbnN0cnVjdGlvbnM/IEkgcmVyZWFkIHRoZW06IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmVcIi4gU28sIHRoZSBrZXkgaXMgUUVNVS4gQ2FuIEkgcmVhY2ggbWx4NSBpbiBRRU1VP1xuXG5JIGtub3cgUUVNVSBkb2Vzbid0IGRpcmVjdGx5ICplbXVsYXRlKiBtbHg1LiBJIHF1aWNrbHkgZG91YmxlIGNoZWNrLCBqdXN0IHRvIGJlIHN1cmUuLi4gbm8sIFFFTVUgZG9lc24ndCBoYXZlIGFuIG1seDUgZW11bGF0aW9uLiBXYWl0LCAqZG9lcyogUUVNVSBlbXVsYXRlICphbnkqIE1lbGxhbm94IGhhcmR3YXJlPyBObywgdGhhdCdzIG5vdCByaWdodCBlaXRoZXIuIEkgc2VlIGUxMDAwLCBlMTAwMGUsIHJ0bDgxMzksIHBjbmV0LCBuZTJrX3BjaSwgdm14bmV0MywgdmlydGlvLW5ldCwgaWdiLCB0dWxpcC4gT2theSwgdGhhdCdzIGRlZmluaXRlbHkgbm90IHdoYXQgSSdtIGxvb2tpbmcgZm9yLiBTbyBJIHRoaW5rIEkgbmVlZCB0byBkaWcgZGVlcGVyLiBJJ2xsIG5lZWQgdG8gcmVzZWFyY2ggaWYgdGhlcmUgaXMgKmFueSogd2F5IHRvIHJlYWNoIG1seDUsIHVzaW5nIGEgZGlmZmVyZW50IGFuZ2xlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MTEyLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzc5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDAxOjUxOjMwLjYxNTExNDYyNloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDQ0MjA2NTQsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwMTo1MTozMC43NTk1NDc2OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3ODE5MTQ0MzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqTmF2aWdhdGluZyB0aGUgTWVsbGFub3ggS2NvbmZpZyBMYW5kc2NhcGUqKlxuXG5SaWdodCwgc28gSSdtIGRpdmluZyBpbnRvIHRoZSBNZWxsYW5veCBFdGhlcm5ldCBkcml2ZXIgY29uZmlndXJhdGlvbi4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhlIEtjb25maWcgZmlsZSBmb3IgdGhpcyB0aGluZyBsaXZlcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIGl0J3MgbGlrZWx5IHVuZGVyIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9LY29uZmlnYCwgdGhhdCdzIHRoZSBvYnZpb3VzIHRvcC1sZXZlbCBsb2NhdGlvbi4gQnV0LCB3aXRoIE1lbGxhbm94LCB5b3UgbmV2ZXIga25vdy4uLiB0aGV5IG9mdGVuIGhhdmUgc29tZSBwcmV0dHkgZGVlcCBsYXllcnMsIHBhcnRpY3VsYXJseSB3aXRoIHRoZSBtbHg1IGFyY2hpdGVjdHVyZS4gU28sIEkgbmVlZCB0byBrZWVwIGluIG1pbmQgdGhhdCBpdCAqY291bGQqIGJlIHR1Y2tlZCBhd2F5IGRlZXBlciwgc3BlY2lmaWNhbGx5IHdpdGhpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWdgLiBUaGF0IGxvY2F0aW9uIHdvdWxkIGJlIGZvciB0aGUgY29yZSBtbHg1IGZ1bmN0aW9uYWxpdHkuIEkgbmVlZCB0byBjaGVjayBib3RoIGJlZm9yZSBtYWtpbmcgYSBkZWZpbml0aXZlIGNob2ljZSBvciBtYWtpbmcgYXNzdW1wdGlvbnMuIEl0IGRlcGVuZHMgb24gd2hhdCBzZWN0aW9uIEkgYW0gdGFyZ2V0aW5nIHdpdGhpbiB0aGUgb3ZlcmFsbCBkcml2ZXIuIEFscmlnaHQsIGxldCdzIGdvIGNoZWNrIHRob3NlIGxvY2F0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NzAxMiwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDAxOjUxOjM0LjU0MTQ2Mzk5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc0ODc0OTc3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNTFg1XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy01LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjY6Y29uZmlnIE1MWDVfQ09SRVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIk1lbGxhbm94IDV0aCBnZW5lcmF0aW9uIG5ldHdvcmsgYWRhcHRlcnMgKENvbm5lY3RYIHNlcmllcykgY29yZSBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxOTpjb25maWcgTUxYNV9GUEdBXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMjAtXFx0Ym9vbCBcXFwiTWVsbGFub3ggVGVjaG5vbG9naWVzIElubm92YSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6Mjk6Y29uZmlnIE1MWDVfQ09SRV9FTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTMwLVxcdGJvb2wgXFxcIk1lbGxhbm94IDV0aCBnZW5lcmF0aW9uIG5ldHdvcmsgYWRhcHRlcnMgKENvbm5lY3RYIHNlcmllcykgRXRoZXJuZXQgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjM4OmNvbmZpZyBNTFg1X0VOX0FSRlNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0zOS1cXHRib29sIFxcXCJNZWxsYW5veCBNTFg1IGV0aGVybmV0IGFjY2VsZXJhdGVkIHJlY2VpdmUgZmxvdyBzdGVlcmluZyAoQVJGUykgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjQ2OmNvbmZpZyBNTFg1X0VOX1JYTkZDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctNDctXFx0Ym9vbCBcXFwiTWVsbGFub3ggTUxYNSBldGhlcm5ldCByeCBuZmMgZmxvdyBzdGVlcmluZyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctNTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6NTY6Y29uZmlnIE1MWDVfTVBGU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTU3LVxcdGJvb2wgXFxcIk1lbGxhbm94IFRlY2hub2xvZ2llcyBNTFg1IE1QRlMgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTY1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjY2OmNvbmZpZyBNTFg1X0VTV0lUQ0hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy02Ny1cXHRib29sIFxcXCJNZWxsYW5veCBUZWNobm9sb2dpZXMgTUxYNSBTUklPViBFLVN3aXRjaCBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6Nzc6Y29uZmlnIE1MWDVfQlJJREdFXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctNzgtXFx0Ym9vbFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctODYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6ODc6Y29uZmlnIE1MWDVfQ0xTX0FDVFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTg4LVxcdGJvb2wgXFxcIk1MWDUgVEMgY2xhc3NpZmllciBhY3Rpb24gc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEwMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxMDI6Y29uZmlnIE1MWDVfVENfQ1RcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xMDMtXFx0Ym9vbCBcXFwiTUxYNSBUQyBjb25uZWN0aW9uIHRyYWNraW5nIG9mZmxvYWQgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTExMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxMTI6Y29uZmlnIE1MWDVfVENfU0FNUExFXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTEzLVxcdGJvb2wgXFxcIk1MWDUgVEMgc2FtcGxlIG9mZmxvYWQgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEyNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxMjU6Y29uZmlnIE1MWDVfQ09SRV9FTl9EQ0JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xMjYtXFx0Ym9vbCBcXFwiRGF0YSBDZW50ZXIgQnJpZGdpbmcgKERDQikgU3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxMzc6Y29uZmlnIE1MWDVfQ09SRV9JUE9JQlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTEzOC1cXHRib29sIFxcXCJNZWxsYW5veCA1dGggZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChjb25uZWN0WCBzZXJpZXMpIElQb0lCIG9mZmxvYWRzIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6MTQzOmNvbmZpZyBNTFg1X01BQ1NFQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE0NC1cXHRib29sIFxcXCJDb25uZWN0LVggc3VwcG9ydCBmb3IgTUFDU2VjIG9mZmxvYWRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6MTUxOmNvbmZpZyBNTFg1X0VOX0lQU0VDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTUyLVxcdGJvb2wgXFxcIk1lbGxhbm94IFRlY2hub2xvZ2llcyBJUHNlYyBDb25uZWN0LVggc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE1OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxNTk6Y29uZmlnIE1MWDVfRU5fVExTXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTYwLVxcdGJvb2wgXFxcIk1lbGxhbm94IFRlY2hub2xvZ2llcyBUTFMgQ29ubmVjdC1YIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6MTY3OmNvbmZpZyBNTFg1X1NXX1NURUVSSU5HXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTY4LVxcdGJvb2wgXFxcIk1lbGxhbm94IFRlY2hub2xvZ2llcyBzb2Z0d2FyZS1tYW5hZ2VkIHN0ZWVyaW5nXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMTc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjE3NTpjb25maWcgTUxYNV9IV19TVEVFUklOR1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE3Ni1cXHRib29sIFxcXCJNZWxsYW5veCBUZWNobm9sb2dpZXMgaGFyZHdhcmUtbWFuYWdlZCBzdGVlcmluZ1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTE4NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoxODU6Y29uZmlnIE1MWDVfU0ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xODYtXFx0Ym9vbCBcXFwiTWVsbGFub3ggVGVjaG5vbG9naWVzIHN1YmZ1bmN0aW9uIGRldmljZSBzdXBwb3J0IHVzaW5nIGF1eGlsaWFyeSBkZXZpY2VcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xOTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWc6MTkzOmNvbmZpZyBNTFg1X1NGX01BTkFHRVJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZy0xOTQtXFx0Ym9vbFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMjAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjIwMzpjb25maWcgTUxYNV9EUExMXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMjA0LVxcdHRyaXN0YXRlIFxcXCJNZWxsYW5veCA1dGggZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChDb25uZWN0WCBzZXJpZXMpIERQTEwgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTIwOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZzoyMTA6Y29uZmlnIE1MWDVfRU5fUFNQXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMjExLVxcdGJvb2wgXFxcIk1lbGxhbm94IFRlY2hub2xvZ2llcyBzdXBwb3J0IGZvciBQU1AgY3J5cHRvZ3JhcGh5LW9mZmxvYWQgYWNjZWxlcmF0aW9uXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwMTo1MTozNC42MTYzNDQwMzdaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzk0NTU2Njk5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgdGhlIFJlYWNoYWJpbGl0eSBvZiBNZWxsYW5veCBDb2RlIGluIGEgU3l6a2FsbGVyIENvbnRleHQqKlxuXG5Pa2F5LCBob2xkIG9uIGEgc2Vjb25kLiBTeXprYWxsZXIsIGFzIGZhciBhcyBJIGtub3csIGRvZXNuJ3QgdHlwaWNhbGx5IGhhdmUgTWVsbGFub3ggaGFyZHdhcmUgYXMgYSB0YXJnZXQuIFRoYXQncyBhIGtleSByb2FkYmxvY2suIE15IGluaXRpYWwgdGhvdWdodCBpcywgaG93IGNhbiBJIGV2ZW4gKnRyaWdnZXIqIHRoaXMgY29kZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCBnaXZlbiB0aGF0IGltbWVkaWF0ZSBoYXJkd2FyZSBhY2Nlc3MgaXMgb3V0P1xuXG5BbHJpZ2h0LCB0aW1lIHRvIHBpdm90LiBJcyB0aGVyZSAqYW55KiBraW5kIG9mIHZpcnR1YWwgZGV2aWNlIGVtdWxhdGluZyBNZWxsYW5veCBmdW5jdGlvbmFsaXR5IEkgY2FuIGxldmVyYWdlPyBJIHJlbWVtYmVyIHNlZWluZyBzb21ldGhpbmcgcmVsYXRlZCB0byBgdmRwYS9tbHg1YCwgYnV0IGlzbid0IHRoYXQgYSB2RFBBIGltcGxlbWVudGF0aW9uPyBBbmQgZG9lc24ndCB2RFBBICpyZXF1aXJlKiB1bmRlcmx5aW5nIHJlYWwgaGFyZHdhcmUgKGFjdHVhbCBtbHg1IGhhcmR3YXJlISkgdG8gZnVuY3Rpb24gYXMgdGhlIGJhY2tpbmcgc3RvcmU/XG5cbkxldCdzIGNvbmZpcm0gdGhhdCBoeXBvdGhlc2lzLiBJIG5lZWQgdG8gZGl2ZSBpbnRvIHRoZSBrZXJuZWwgY29uZmlnIGZpbGVzIGZvciBtb3JlIGRlZmluaXRpdmUgaW5mb3JtYXRpb24uIExldCBtZSBjaGVjayBgZHJpdmVycy92ZHBhL21seDUvS2NvbmZpZ2AuIFRoYXQgc2hvdWxkIGNsZWFyIHRoaW5ncyB1cC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaWYgdGhlcmUgaXMgYSB2aXJ0dWFsIGRyaXZlciBpbiB0aGVyZSwgb3IgaWYgdGhpcyBpcyBoYXJkd2FyZS1kZXBlbmRlbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk0MDcsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDE6NTE6MzguNDEwOTAyNjU2WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjA3NjE5MzQsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNTFg1X1ZEUEFcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy92ZHBhL21seDUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwMTo1MTozOC41NzE2NzIwN1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDM5MTA1ODgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIHlvdSByZXF1ZXN0ZWQ6XG5cbioqSW52ZXN0aWdhdGluZyBhIFBvdGVudGlhbCBEcml2ZXIgUGF0aCoqXG5cbk9rYXksIGhvbGQgb24gYSBzZWNvbmQuIEkgaGF2ZSBhIGh1bmNoLCBhIHBvc3NpYmxlIHBhdGggdG8gaW52ZXN0aWdhdGUgcmVnYXJkaW5nIGEgZHJpdmVyLiBJdCAqZmVlbHMqIGxpa2UgdGhlIGBkcml2ZXJzL3ZkcGEvbWx4NWAgZGlyZWN0b3J5IG1pZ2h0IGFjdHVhbGx5IGV4aXN0LiBJIGNhbid0IHF1aXRlIHJlbWVtYmVyIG9mZiB0aGUgdG9wIG9mIG15IGhlYWQsIHNvIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBjb25maXJtIHRoaXMgc3VzcGljaW9uLiBJIG5lZWQgdG8gY2hlY2sgYW5kIHZlcmlmeSBpZiB0aGlzIGRyaXZlciBwYXRoIGlzIHJlYWwgYmVmb3JlIEkgZ28gYW55IGZ1cnRoZXIgZG93biB0aGlzIHBhcnRpY3VsYXIgbGluZSBvZiByZWFzb25pbmcuIFRpbWUgdG8gbG9vay5cblxuXG4iLCJJbnB1dFRva2VucyI6OTc4MiwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDAxOjUxOjQyLjAxMDc4MDcyMloiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUxODgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwiZHJpdmVycy92ZHBhL21seDVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogbnVsbCxcbiAgXCJTdWJkaXJzXCI6IFtcbiAgICBcImNvcmVcIixcbiAgICBcIm5ldFwiXG4gIF1cbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTAzVDAxOjUxOjQyLjAxMDgzNDE3MloiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDA1MjQ3Nzc5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmc9ZmFsc2U6IG1seDUgYW5kIFZpcnR1YWxpemVkIEVudmlyb25tZW50cyoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2gsIGFuZCBJIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIGl0J3Mgd29ydGggZnV6emluZy4gVGhlIHBhdGNoIHRvdWNoZXMgbWx4NSwgd2hpY2ggaXMgYSBuZXR3b3JrIGRldmljZSBkcml2ZXIuIEkga25vdyBtbHg1IGlzIHRpZWQgdG8gc3BlY2lmaWMgaGFyZHdhcmUsIHJpZ2h0PyBObyBzb2Z0d2FyZSBlbXVsYXRpb24gd2l0aGluIHRoZSBrZXJuZWwsIG1ha2luZyBpdCBhIHBoeXNpY2FsIGRldmljZSBkcml2ZXIuXG5cblRoZSBzeXprYWxsZXIgUENJIGZ1enplciBpcyB0aGUga2V5LCBidXQgSSBuZWVkIHRvIGNvbnNpZGVyIHRoYXQgXCJXb3J0aEZ1enppbmc9ZmFsc2VcIiBzY2VuYXJpbzogaWYgdGhlIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIENhbiB0aGUgUENJIGZ1enplciByZWFjaCBpdD8gSXQgKmNhbiogZnV6eiBQQ0kgZGV2aWNlcy4gSXQgKmNhbiogaW50ZXJhY3QgdXNpbmcgc3l6X3BjaV9kZXZpY2VfYWRkIGFuZCBzaW1pbGFyLCBidXQgZ2VuZXJhbGx5LCB0aGF0J3MgcHJldHR5IHNoYWxsb3cuIEl0IGRvZXMgUENJIGNvbmZpZyBzcGFjZSBhbmQgTU1JTyByZWFkcy93cml0ZXMsIGJ1dCBnZXR0aW5nIGludG8gYW55IHJlYWwgZnVuY3Rpb25hbGl0eT8gVGhhdCdzIHRoZSBjaGFsbGVuZ2UuXG5cbkxldCdzIHRoaW5rIGFib3V0IGBtbHg1ZV9wb2xsX3R4X2NxYC4gUmVhY2hpbmcgKnRoYXQqIHJlcXVpcmVzIHNldHRpbmcgdXAgYSBuZXRkZXYsIGJyaW5naW5nIGl0IHVwLCB0cmlnZ2VyaW5nIFRYLi4uIHdoaWNoIHRoZW4gcmVxdWlyZXMgYSBoYXJkd2FyZSB0byB3b3JrLiBETUEsIGludGVycnVwdHMuLi4gdGhhdCdzIGEgKmxvdCogZm9yIHRoZSBmdXp6ZXIgdG8gcGVyZmVjdGx5IGVtdWxhdGUuIEl0IGNhbid0IHBlcmZlY3RseSBlbXVsYXRlIGhhcmR3YXJlIGJlaGF2aW9yLCBzbyB0aGF0J3Mgbm90IGxpa2VseSB0byB3b3JrLiBgbmRvX3N0YXJ0X3htaXRgIHdvbid0IGRpcmVjdGx5IHRyaWdnZXIgYG1seDVlX3BvbGxfdHhfY3FgIGJlY2F1c2UgaXQncyBjYWxsZWQgZnJvbSBOQVBJIHBvbGwuXG5cbkVzc2VudGlhbGx5LCAqdW5sZXNzKiB0aGUgUENJIGZ1enplciBjYW4gZmxhd2xlc3NseSBlbXVsYXRlIHRoZSBoYXJkd2FyZSAtIGFuZCBsZXQncyBmYWNlIGl0LCB0aGF0J3Mgbm90IGhhcHBlbmluZyBmb3IgYSBjb21wbGV4IGRyaXZlciBsaWtlIG1seDUgLSB0aGVuIEkgY2FuJ3QgcmVhY2ggaXQuIFRoZXJlJ3Mgbm8gYG5ldGRldnNpbWAtbGlrZSB0aGluZyBmb3IgbWx4NSwgbm90aGluZyB0aGF0IHdvdWxkIHByb3ZpZGUgYSBzb2Z0d2FyZSByZXByZXNlbnRhdGlvbi5cblxuU28sIEknbSBzdHVjayB3aXRoIGEgcGh5c2ljYWwgaGFyZHdhcmUgZHJpdmVyLCBubyBzb2Z0d2FyZSBlbXVsYXRpb24uIEdpdmVuIHRoZSBwcm9tcHQncyBjcml0ZXJpYSwgdGhpcyBjb2RlIGlzICppbXBvc3NpYmxlKiB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgKldvcnRoRnV6emluZz1mYWxzZS4qIEp1c3QgbmVlZCB0byBjb25maXJtIHRoZXJlIGlzbid0IGFueSBlbXVsYXRpb24gYW55d2hlcmUuLi4ganVzdCB0byBiZSBzYWZlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo5OTY0LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjIwLCJUb29sQ2FsbHMiOlsiY29kZXNlYXJjaC1kaXItaW5kZXgiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwMTo1MTo1Mi4wNjMzMTQ2NDhaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgwNzAyMjQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVfY29yZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTkwNjcgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnPTE5PWNvbmZpZyBNTFg1X0ZQR0FcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnLTI1LVxcdCAgYW5kIGFuIEZQR0EgY2hpcCBvbiBvbmUgYm9hcmQuIElmIHlvdSBzZWxlY3QgdGhpcyBvcHRpb24sIHRoZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnOjI2OlxcdCAgbWx4NV9jb3JlIGRyaXZlciB3aWxsIGluY2x1ZGUgdGhlIElubm92YSBGUEdBIGNvcmUgYW5kIGFsbG93IGJ1aWxkaW5nXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWctMjctXFx0ICBzYW5kYm94LXNwZWNpZmljIGNsaWVudCBkcml2ZXJzLlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlPTc9c3ViZGlyLWNjZmxhZ3MteSArPSAtSSQoc3JjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19NTFg1X0NPUkUpICs9IG1seDVfY29yZS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEzLSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTQ6bWx4NV9jb3JlLXkgOj1cXHRtYWluLm8gY21kLm8gZGVidWdmcy5vIGZ3Lm8gZXEubyB1YXIubyBwYWdlYWxsb2MubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE1LVxcdFxcdGhlYWx0aC5vIG1jZy5vIGNxLm8gYWxsb2MubyBwb3J0Lm8gbXIubyBwZC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0yNS0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjI2Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0NPUkVfRU4pICs9IGVuL3JxdC5vIGVuL3Rpci5vIGVuL3Jzcy5vIGVuL3J4X3Jlcy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMjctXFx0XFx0ZW4vY2hhbm5lbHMubyBlbl9tYWluLm8gZW5fY29tbW9uLm8gZW5fZnMubyBlbl9ldGh0b29sLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTM3LSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6Mzg6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fQVJGUykgICAgICs9IGVuX2FyZnMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTozOTptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FTl9SWE5GQykgICAgKz0gZW5fZnNfZXRodG9vbC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQwOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0NPUkVfRU5fRENCKSArPSBlbl9kY2JubC5vIGVuL3BvcnRfYnVmZmVyLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NDE6bWx4NV9jb3JlLSQoQ09ORklHX1BDSV9IWVBFUlZfSU5URVJGQUNFKSArPSBlbi9odl92aGNhX3N0YXRzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NDI6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRVNXSVRDSCkgICAgICs9IGxhZy9tcC5vIGxhZy9wb3J0X3NlbC5vIGxpYi9nZW5ldmUubyBsaWIvcG9ydF90dW4ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTQzLVxcdFxcdFxcdFxcdFxcdGVuX3JlcC5vIGVuL3JlcC9ib25kLm8gZW4vbW9kX2hkci5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNDQtXFx0XFx0XFx0XFx0XFx0ZW4vbWFwcGluZy5vIGxhZy9tcGVzdy5vIGxhZy9zaGFyZWRfZmRiLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NDU6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfQ0xTX0FDVCkgICAgICs9IGVuX3RjLm8gZW4vcmVwL3RjLm8gZW4vcmVwL25laWdoLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS00Ni1cXHRcXHRcXHRcXHRcXHRsaWIvZnNfY2hhaW5zLm8gZW4vdGNfdHVuLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTUyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo1MzptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DTFNfQUNUKSAgICAgKz0gZW4vdGMvYWN0L2FjdC5vIGVuL3RjL2FjdC9kcm9wLm8gZW4vdGMvYWN0L3RyYXAubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTU0LVxcdFxcdFxcdFxcdFxcdGVuL3RjL2FjdC9hY2NlcHQubyBlbi90Yy9hY3QvbWFyay5vIGVuL3RjL2FjdC9nb3RvLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlPTYxPWlmbmVxICgkKENPTkZJR19NTFg1X1RDX0NUKSwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjYyOlxcdG1seDVfY29yZS15XFx0XFx0XFx0ICAgICArPSBlbi90Y19jdC5vIGVuL3RjL2N0X2ZzX2RtZnMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2MzpcXHRtbHg1X2NvcmUtJChDT05GSUdfTUxYNV9TV19TVEVFUklORykgKz0gZW4vdGMvY3RfZnNfc21mcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjY0OlxcdG1seDVfY29yZS0kKENPTkZJR19NTFg1X0hXX1NURUVSSU5HKSArPSBlbi90Yy9jdF9mc19obWZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNjUtZW5kaWZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjY3Om1seDVfY29yZS0kKENPTkZJR19NTFg1X1RDX1NBTVBMRSkgICArPSBlbi90Yy9zYW1wbGUub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS02OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS03MS0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjcyOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgKz0gZXN3aXRjaC5vIGVzd2l0Y2hfb2ZmbG9hZHMubyBlc3dpdGNoX29mZmxvYWRzX3Rlcm10YmwubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTczLVxcdFxcdFxcdFxcdCAgICAgIGVjcGYubyByZG1hLm8gZXN3L2xlZ2FjeS5vIGVzdy9hZGpfdnBvcnQubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNzUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjc2Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgKz0gZXN3L2FjbC9oZWxwZXIubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTc3LVxcdFxcdFxcdFxcdCAgICAgIGVzdy9hY2wvZWdyZXNzX2xnY3kubyBlc3cvYWNsL2VncmVzc19vZmxkLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlPTgwPWlmbmVxICgkKENPTkZJR19NTFg1X0VOX0lQU0VDKSwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjgxOlxcdG1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgKz0gZXN3L2lwc2VjX2ZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODItZW5kaWZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjg0Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0JSSURHRSkgICAgKz0gZXN3L2JyaWRnZS5vIGVzdy9icmlkZ2VfbWNhc3QubyBlc3cvYnJpZGdlX2RlYnVnZnMubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTg1LVxcdFxcdFxcdFxcdCAgICAgIGVuL3JlcC9icmlkZ2Uub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6ODc6bWx4NV9jb3JlLSQoQ09ORklHX0hXTU9OKSAgICAgICAgICArPSBod21vbi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjg4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X01QRlMpICAgICAgKz0gbGliL21wZnMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04OS1pZm5lcSAoJChDT05GSUdfVlhMQU4pLClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6OTA6XFx0bWx4NV9jb3JlLXlcXHRcXHQgICArPSBsaWIvdnhsYW4ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS05MS1lbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo5MjptbHg1X2NvcmUtJChDT05GSUdfUFRQXzE1ODhfQ0xPQ0spICs9IGxpYi9jbG9jay5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjkzOm1seDVfY29yZS0kKENPTkZJR19QQ0lfSFlQRVJWX0lOVEVSRkFDRSkgKz0gbGliL2h2Lm8gbGliL2h2X3ZoY2Eub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS05NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS05Ny0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjk4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0NPUkVfSVBPSUIpICs9IGlwb2liL2lwb2liLm8gaXBvaWIvZXRodG9vbC5vIGlwb2liL2lwb2liX3ZsYW4ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS05OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDItI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMDM6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRlBHQSkgKz0gZnBnYS9jbWQubyBmcGdhL2NvcmUubyBmcGdhL2Nvbm4ubyBmcGdhL3Nkay5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTA1Om1seDVfY29yZS0kKENPTkZJR19NTFg1X01BQ1NFQykgKz0gZW5fYWNjZWwvbWFjc2VjLm8gbGliL21hY3NlY19mcy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTA2LVxcdFxcdFxcdFxcdCAgICAgIGVuX2FjY2VsL21hY3NlY19zdGF0cy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTA4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX0lQU0VDKSArPSBlbl9hY2NlbC9pcHNlYy5vIGVuX2FjY2VsL2lwc2VjX3J4dHgubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwOS1cXHRcXHRcXHRcXHQgICAgIGVuX2FjY2VsL2lwc2VjX3N0YXRzLm8gZW5fYWNjZWwvaXBzZWNfZnMubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMTI6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fVExTKSArPSBlbl9hY2NlbC9rdGxzX3N0YXRzLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMTMtXFx0XFx0XFx0XFx0ICAgZW5fYWNjZWwvZnNfdGNwLm8gZW5fYWNjZWwva3Rscy5vIGVuX2FjY2VsL2t0bHNfdHhyeC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjExNjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FTl9QU1ApICs9IGVuX2FjY2VsL3BzcC5vIGVuX2FjY2VsL3BzcF9yeHR4Lm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTE3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEyMC0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjEyMTptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9TV19TVEVFUklORykgKz0gc3RlZXJpbmcvc3dzL2RyX2RvbWFpbi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTIyLVxcdFxcdFxcdFxcdFxcdHN0ZWVyaW5nL3N3cy9kcl90YWJsZS5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNDUtI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNDY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfSFdfU1RFRVJJTkcpICs9IHN0ZWVyaW5nL2h3cy9jbWQubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE0Ny1cXHRcXHRcXHRcXHRcXHRzdGVlcmluZy9od3MvY29udGV4dC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNjctI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNjg6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU0YpICs9IHNmL3ZoY2FfZXZlbnQubyBzZi9kZXYvZGV2Lm8gc2YvZGV2L2RyaXZlci5vIGlycV9hZmZpbml0eS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE2OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNzItI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNzM6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU0ZfTUFOQUdFUikgKz0gc2YvY21kLm8gc2YvaHdfdGFibGUubyBzZi9kZXZsaW5rLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTc0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE3Ny0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE3ODptbHg1X2NvcmUtJChDT05GSUdfUENJRV9UUEgpICs9IGxpYi9zdC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE3OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQ1OiNpbmNsdWRlIFxcXCJtbHg1X2NvcmUuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTU4PXN0cnVjdCBtbHg1X2RtYV9wb29sIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTYxLVxcdHN0cnVjdCBsaXN0X2hlYWQgcGFnZV9saXN0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjYyOlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNjMtXFx0aW50IG5vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz03OT1zdHJ1Y3QgbWx4NV9kbWFfcG9vbF9zdGF0cyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy04OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo5MDpzdGF0aWMgdm9pZCAqbWx4NV9kbWFfemFsbG9jX2NvaGVyZW50X25vZGUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy05MS1cXHRcXHRcXHRcXHRcXHQgICBzaXplX3Qgc2l6ZSwgZG1hX2FkZHJfdCAqZG1hX2hhbmRsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTkzLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo5NDpcXHRzdHJ1Y3QgZGV2aWNlICpkZXZpY2UgPSBtbHg1X2NvcmVfZG1hX2RldihkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTk1LVxcdHN0cnVjdCBtbHg1X3ByaXYgKnByaXYgPSBcXHUwMDI2ZGV2LVxcdTAwM2Vwcml2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9MTA5PXN0YXRpYyB2b2lkIG1seDVfZG1hX3Bvb2xfZGVzdHJveShzdHJ1Y3QgbWx4NV9kbWFfcG9vbCAqcG9vbClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTExNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzoxMTU6c3RhdGljIHN0cnVjdCBtbHg1X2RtYV9wb29sICptbHg1X2RtYV9wb29sX2NyZWF0ZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTExNi1cXHRcXHRcXHRcXHRcXHRcXHQgIGludCBub2RlLCB1OCBibG9ja19zaGlmdClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTEzMz1tbHg1X2RtYV9wb29sX3BhZ2VfYWxsb2Moc3RydWN0IG1seDVfZG1hX3Bvb2wgKnBvb2wpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0xNjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MTYzOnN0YXRpYyB2b2lkIG1seDVfZG1hX3Bvb2xfcGFnZV9mcmVlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMTY0LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbWx4NV9kbWFfcG9vbF9wYWdlICpwYWdlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE2NS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6MTY2OlxcdGRtYV9mcmVlX2NvaGVyZW50KG1seDVfY29yZV9kbWFfZGV2KGRldiksIFBBR0VfU0laRSwgcGFnZS1cXHUwMDNlYnVmLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTE2Ny1cXHRcXHRcXHQgIHBhZ2UtXFx1MDAzZWRtYSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz0yODM9c3RhdGljIHN0cnVjdCBtbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHMgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjI4NDptbHg1X2ZyYWdfYnVmX25vZGVfcG9vbHNfY3JlYXRlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGludCBub2RlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTI4NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz0zMDc9bWx4NV9mcmFnX2J1Zl9kbWFfcG9vbHNfZGVidWdmc19zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqcHJpdilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMDgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjMwOTpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMTAtXFx0aW50IG5vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz0zMzY9REVGSU5FX1NIT1dfQVRUUklCVVRFKG1seDVfZnJhZ19idWZfZG1hX3Bvb2xzX2RlYnVnZnMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTMzNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozMzg6dm9pZCBtbHg1X2ZyYWdfYnVmX3Bvb2xzX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zMzkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjM1OTppbnQgbWx4NV9mcmFnX2J1Zl9wb29sc19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtMzYwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTM4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzozODg6aW50IG1seDVfZnJhZ19idWZfYWxsb2Nfbm9kZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgc2l6ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy0zODktXFx0XFx0XFx0ICAgICBzdHJ1Y3QgbWx4NV9mcmFnX2J1ZiAqYnVmLCBpbnQgbm9kZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jPTQyNT1FWFBPUlRfU1lNQk9MX0dQTChtbHg1X2ZyYWdfYnVmX2FsbG9jX25vZGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTQyNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo0Mjc6dm9pZCBtbHg1X2ZyYWdfYnVmX2ZyZWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfZnJhZ19idWYgKmJ1ZilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00Mjgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9NDQ1PUVYUE9SVF9TWU1CT0xfR1BMKG1seDVfZnJhZ19idWZfZnJlZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNDQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jOjQ0NzpzdGF0aWMgc3RydWN0IG1seDVfZGJfcGdkaXIgKm1seDVfYWxsb2NfZGJfcGdkaXIoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy00NDgtXFx0XFx0XFx0XFx0XFx0XFx0IGludCBub2RlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM9NDc2PXN0YXRpYyBpbnQgbWx4NV9hbGxvY19kYl9mcm9tX3BnZGlyKHN0cnVjdCBtbHg1X2RiX3BnZGlyICpwZ2RpcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUwMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1MDE6aW50IG1seDVfZGJfYWxsb2Nfbm9kZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9kYiAqZGIsIGludCBub2RlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTUwMi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYz01Mjg9RVhQT1JUX1NZTUJPTF9HUEwobWx4NV9kYl9hbGxvY19ub2RlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01MjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmM6NTMwOnZvaWQgbWx4NV9kYl9mcmVlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHN0cnVjdCBtbHg1X2RiICpkYilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYy01MzEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2FsbG9jLmMtNTM4LVxcdGlmIChiaXRtYXBfZnVsbChkYi1cXHUwMDNldS5wZ2Rpci1cXHUwMDNlYml0bWFwLCBkYl9wZXJfcGFnZSkpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvYWxsb2MuYzo1Mzk6XFx0XFx0ZG1hX2ZyZWVfY29oZXJlbnQobWx4NV9jb3JlX2RtYV9kZXYoZGV2KSwgUEFHRV9TSVpFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9hbGxvYy5jLTU0MC1cXHRcXHRcXHRcXHQgIGRiLVxcdTAwM2V1LnBnZGlyLVxcdTAwM2VkYl9wYWdlLCBkYi1cXHUwMDNldS5wZ2Rpci1cXHUwMDNlZGJfZG1hKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy00My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6NDQ6I2luY2x1ZGUgXFxcIm1seDVfY29yZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy00NS0jaW5jbHVkZSBcXFwibGliL2VxLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MjgzPXN0YXRpYyB2b2lkIHBvbGxfdGltZW91dChzdHJ1Y3QgbWx4NV9jbWRfd29ya19lbnQgKmVudClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjg0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6Mjg1OlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBjb250YWluZXJfb2YoZW50LVxcdTAwM2VjbWQsIHN0cnVjdCBtbHg1X2NvcmVfZGV2LCBjbWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yODYtXFx0dTY0IGNtZF90b19tcyA9IG1seDVfdG91dF9tcyhkZXYsIENNRCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9MzMxPXN0YXRpYyB2b2lkIGR1bXBfYnVmKHZvaWQgKmJ1ZiwgaW50IHNpemUsIGludCBkYXRhX29ubHksIGludCBvZmZzZXQsIGludCBpZHgpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMzQ2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzozNDc6c3RhdGljIGludCBtbHg1X2ludGVybmFsX2Vycl9yZXRfdmFsdWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IG9wLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0zNDgtXFx0XFx0XFx0XFx0ICAgICAgIHUzMiAqc3luZCwgdTggKnN0YXR1cylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy01NDYtXFx0ZGVmYXVsdDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6NTQ3OlxcdFxcdG1seDVfY29yZV9lcnIoZGV2LCBcXFwiVW5rbm93biBGVyBjb21tYW5kICglZClcXFxcblxcXCIsIG9wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtNTQ4LVxcdFxcdHJldHVybiAtRUlOVkFMO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTc5Mz1zdGF0aWMgaW50IGNtZF9zdGF0dXNfdG9fZXJyKHU4IHN0YXR1cylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjgxNzp2b2lkIG1seDVfY21kX291dF9lcnIoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IG9wY29kZSwgdTE2IG9wX21vZCwgdm9pZCAqb3V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MTgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTgyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODIyOlxcdG1seDVfY29yZV9lcnJfcmwoZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MjMtXFx0XFx0XFx0IFxcXCIlcygweCV4KSBvcF9tb2QoMHgleCkgZmFpbGVkLCBzdGF0dXMgJXMoMHgleCksIHN5bmRyb21lICgweCV4KSwgZXJyKCVkKVxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz04Mjc9RVhQT1JUX1NZTUJPTChtbHg1X2NtZF9vdXRfZXJyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODI4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo4Mjk6c3RhdGljIHZvaWQgY21kX3N0YXR1c19wcmludChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB2b2lkICppbiwgdm9pZCAqb3V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04MzAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg0NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODQ1OmludCBtbHg1X2NtZF9jaGVjayhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBpbnQgZXJyLCB2b2lkICppbiwgdm9pZCAqb3V0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04NDYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTg3Mj1FWFBPUlRfU1lNQk9MKG1seDVfY21kX2NoZWNrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODczLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo4NzQ6c3RhdGljIHZvaWQgZHVtcF9jb21tYW5kKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg3NS1cXHRcXHRcXHQgc3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQsIGludCBpbnB1dClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04ODUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjg4NjpcXHRtbHg1X2NvcmVfZGJnKGRldiwgXFxcImNtZFslZF06IHN0YXJ0IGR1bXBcXFxcblxcXCIsIGVudC1cXHUwMDNlaWR4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6ODg3OlxcdGRhdGFfb25seSA9ICEhKG1seDVfY29yZV9kZWJ1Z19tYXNrIFxcdTAwMjYgKDEgXFx1MDAzY1xcdTAwM2MgTUxYNV9DTURfREFUQSkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04ODgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg4OS1cXHRpZiAoZGF0YV9vbmx5KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo4OTA6XFx0XFx0bWx4NV9jb3JlX2RiZ19tYXNrKGRldiwgMSBcXHUwMDNjXFx1MDAzYyBNTFg1X0NNRF9EQVRBLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy04OTEtXFx0XFx0XFx0XFx0ICAgXFxcImNtZFslZF06IGR1bXAgY29tbWFuZCBkYXRhICVzKDB4JXgpICVzXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTg5NC1cXHRlbHNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjg5NTpcXHRcXHRtbHg1X2NvcmVfZGJnKGRldiwgXFxcImNtZFslZF06IGR1bXAgY29tbWFuZCAlcygweCV4KSAlc1xcXFxuXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtODk2LVxcdFxcdFxcdCAgICAgIGVudC1cXHUwMDNlaWR4LCBtbHg1X2NvbW1hbmRfc3RyKG9wKSwgb3AsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTE3LVxcdFxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjkxODpcXHRcXHRcXHRtbHg1X2NvcmVfZGJnKGRldiwgXFxcImNtZFslZF06IGNvbW1hbmQgYmxvY2s6XFxcXG5cXFwiLCBlbnQtXFx1MDAzZWlkeCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTkxOS1cXHRcXHRcXHRkdW1wX2J1ZihuZXh0LVxcdTAwM2VidWYsIHNpemVvZihzdHJ1Y3QgbWx4NV9jbWRfcHJvdF9ibG9jayksIDAsIG9mZnNldCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05MjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjkyOTpcXHRtbHg1X2NvcmVfZGJnKGRldiwgXFxcImNtZFslZF06IGVuZCBkdW1wXFxcXG5cXFwiLCBlbnQtXFx1MDAzZWlkeCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTkzMC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTkzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6OTMyOnN0YXRpYyB2b2lkIG1seDVfY21kX2NvbXBfaGFuZGxlcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1NjQgdmVjLCBib29sIGZvcmNlZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTkzMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9OTM0PXN0YXRpYyB2b2lkIGNiX3RpbWVvdXRfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTM5LVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgY2JfdGltZW91dF93b3JrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6OTQwOlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBjb250YWluZXJfb2YoZW50LVxcdTAwM2VjbWQsIHN0cnVjdCBtbHg1X2NvcmVfZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NDEtXFx0XFx0XFx0XFx0XFx0XFx0IGNtZCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTQ2LVxcdGlmICghdGVzdF9iaXQoTUxYNV9DTURfRU5UX1NUQVRFX1BFTkRJTkdfQ09NUCwgXFx1MDAyNmVudC1cXHUwMDNlc3RhdGUpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk0NzpcXHRcXHRtbHg1X2NvcmVfd2FybihkZXYsIFxcXCJjbWRbJWRdOiAlcygweCV4KSBBc3luYywgcmVjb3ZlcmVkIGFmdGVyIHRpbWVvdXRcXFxcblxcXCIsIGVudC1cXHUwMDNlaWR4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NDgtXFx0XFx0XFx0ICAgICAgIG1seDVfY29tbWFuZF9zdHIoZW50LVxcdTAwM2VvcCksIGVudC1cXHUwMDNlb3ApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk1Mi1cXHRlbnQtXFx1MDAzZXJldCA9IC1FVElNRURPVVQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk1MzpcXHRtbHg1X2NvcmVfd2FybihkZXYsIFxcXCJjbWRbJWRdOiAlcygweCV4KSBBc3luYywgdGltZW91dC4gV2lsbCBjYXVzZSBhIGxlYWsgb2YgYSBjb21tYW5kIHJlc291cmNlXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NTQtXFx0XFx0ICAgICAgIGVudC1cXHUwMDNlaWR4LCBtbHg1X2NvbW1hbmRfc3RyKGVudC1cXHUwMDNlb3ApLCBlbnQtXFx1MDAzZW9wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk2MTpzdGF0aWMgdm9pZCBmcmVlX21zZyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBzdHJ1Y3QgbWx4NV9jbWRfbXNnICptc2cpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5NjI6c3RhdGljIHZvaWQgbWx4NV9mcmVlX2NtZF9tc2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTYzLVxcdFxcdFxcdCAgICAgIHN0cnVjdCBtbHg1X2NtZF9tc2cgKm1zZyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM9OTY1PXN0YXRpYyBib29sIG9wY29kZV9hbGxvd2VkKHN0cnVjdCBtbHg1X2NtZCAqY21kLCB1MTYgb3Bjb2RlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6OTczOmJvb2wgbWx4NV9jbWRfaXNfZG93bihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05NzQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTk4MD1zdGF0aWMgdm9pZCBjbWRfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05ODUtXFx0c3RydWN0IG1seDVfY21kX2xheW91dCAqbGF5O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5ODY6XFx0c3RydWN0IG1seDVfY29yZV9kZXYgKmRldjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTg3LVxcdHVuc2lnbmVkIGxvbmcgdGltZW91dDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy05OTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjk5NDpcXHRkZXYgPSBjb250YWluZXJfb2YoY21kLCBzdHJ1Y3QgbWx4NV9jb3JlX2RldiwgY21kKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtOTk1LVxcdHRpbWVvdXQgPSBtc2Vjc190b19qaWZmaWVzKG1seDVfdG91dF9tcyhkZXYsIENNRCkpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTk5OC1cXHRcXHRpZiAoZG93bl90aW1lb3V0KFxcdTAwMjZjbWQtXFx1MDAzZXZhcnMuc2VtLCB0aW1lb3V0KSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzo5OTk6XFx0XFx0XFx0bWx4NV9jb3JlX3dhcm4oZGV2LCBcXFwiJXMoMHgleCkgdGltZWQgb3V0IHdoaWxlIHdhaXRpbmcgZm9yIGEgc2xvdC5cXFxcblxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEwMDAtXFx0XFx0XFx0XFx0ICAgICAgIG1seDVfY29tbWFuZF9zdHIoZW50LVxcdTAwM2VvcCksIGVudC1cXHUwMDNlb3ApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEwMTUtXFx0XFx0aWYgKGFsbG9jX3JldCBcXHUwMDNjIDApIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTAxNjpcXHRcXHRcXHRtbHg1X2NvcmVfZXJyX3JsKGRldiwgXFxcImZhaWxlZCB0byBhbGxvY2F0ZSBjb21tYW5kIGVudHJ5XFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTAxNy1cXHRcXHRcXHRpZiAoZW50LVxcdTAwM2VjYWxsYmFjaykge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEwNzItXFx0LyogcmluZyBkb29yYmVsbCBhZnRlciB0aGUgZGVzY3JpcHRvciBpcyB2YWxpZCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMDczOlxcdG1seDVfY29yZV9kYmcoZGV2LCBcXFwid3JpdGluZyAweCV4IHRvIGNvbW1hbmQgZG9vcmJlbGxcXFxcblxcXCIsIDEgXFx1MDAzY1xcdTAwM2MgZW50LVxcdTAwM2VpZHgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMDc0LVxcdHdtYigpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTExNDA9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE0My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTE0NDpzdGF0aWMgdm9pZCB3YWl0X2Z1bmNfaGFuZGxlX2V4ZWNfdGltZW91dChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTQ1LVxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE1Ni1cXHRpZiAod2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KFxcdTAwMjZlbnQtXFx1MDAzZWRvbmUsIHRpbWVvdXQpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjExNTc6XFx0XFx0bWx4NV9jb3JlX3dhcm4oZGV2LCBcXFwiY21kWyVkXTogJXMoMHgleCkgcmVjb3ZlcmVkIGFmdGVyIHRpbWVvdXRcXFxcblxcXCIsIGVudC1cXHUwMDNlaWR4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTU4LVxcdFxcdFxcdCAgICAgICBtbHg1X2NvbW1hbmRfc3RyKGVudC1cXHUwMDNlb3ApLCBlbnQtXFx1MDAzZW9wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTYxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMTYyOlxcdG1seDVfY29yZV93YXJuKGRldiwgXFxcImNtZFslZF06ICVzKDB4JXgpIE5vIGRvbmUgY29tcGxldGlvblxcXFxuXFxcIiwgZW50LVxcdTAwM2VpZHgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExNjMtXFx0XFx0ICAgICAgIG1seDVfY29tbWFuZF9zdHIoZW50LVxcdTAwM2VvcCksIGVudC1cXHUwMDNlb3ApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExNjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjExNjk6c3RhdGljIGludCB3YWl0X2Z1bmMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY21kX3dvcmtfZW50ICplbnQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExNzAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTExOTEtXFx0aWYgKGVyciA9PSAtRVRJTUVET1VUKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjExOTI6XFx0XFx0bWx4NV9jb3JlX3dhcm4oZGV2LCBcXFwiJXMoMHgleCkgdGltZW91dC4gV2lsbCBjYXVzZSBhIGxlYWsgb2YgYSBjb21tYW5kIHJlc291cmNlXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTkzLVxcdFxcdFxcdCAgICAgICBtbHg1X2NvbW1hbmRfc3RyKGVudC1cXHUwMDNlb3ApLCBlbnQtXFx1MDAzZW9wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE5NC1cXHR9IGVsc2UgaWYgKGVyciA9PSAtRUNBTkNFTEVEKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjExOTU6XFx0XFx0bWx4NV9jb3JlX3dhcm4oZGV2LCBcXFwiJXMoMHgleCkgY2FuY2VsZWQgb24gb3V0IG9mIHF1ZXVlIHRpbWVvdXQuXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMTk2LVxcdFxcdFxcdCAgICAgICBtbHg1X2NvbW1hbmRfc3RyKGVudC1cXHUwMDNlb3ApLCBlbnQtXFx1MDAzZW9wKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE5Ny1cXHR9IGVsc2UgaWYgKGVyciA9PSAtRUJVU1kpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTE5ODpcXHRcXHRtbHg1X2NvcmVfd2FybihkZXYsIFxcXCIlcygweCV4KSB0aW1lb3V0IHdoaWxlIHdhaXRpbmcgZm9yIGNvbW1hbmQgc2VtYXBob3JlLlxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTE5OS1cXHRcXHRcXHQgICAgICAgbWx4NV9jb21tYW5kX3N0cihlbnQtXFx1MDAzZW9wKSwgZW50LVxcdTAwM2VvcCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyMDAtXFx0fVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMjAxOlxcdG1seDVfY29yZV9kYmcoZGV2LCBcXFwiZXJyICVkLCBkZWxpdmVyeSBzdGF0dXMgJXMoJWQpXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjAyLVxcdFxcdCAgICAgIGVyciwgZGVsaXZfc3RhdHVzX3RvX3N0cihlbnQtXFx1MDAzZXN0YXR1cyksIGVudC1cXHUwMDNlc3RhdHVzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMjE1LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMjE2OnN0YXRpYyBib29sIG1seDVfY21kX2FsbF9zdGFsbGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyMTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyNTgtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjEyNTk6c3RhdGljIGludCBtbHg1X2NtZF9pbnZva2Uoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY21kX21zZyAqaW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyNjAtXFx0XFx0XFx0ICAgc3RydWN0IG1seDVfY21kX21zZyAqb3V0LCB2b2lkICp1b3V0LCBpbnQgdW91dF9zaXplLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEyNzUtXFx0aWYgKCFwYWdlX3F1ZXVlIFxcdTAwMjZcXHUwMDI2IG1seDVfY21kX2FsbF9zdGFsbGVkKGRldikpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTI3NjpcXHRcXHRtbHg1X2NvcmVfZXJyX3JsKGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTI3Ny1cXHRcXHRcXHRcXHQgXFxcIkFsbCBDTUQgc2xvdHMgYXJlIHN0YWxsZWQsIGFib3J0aW5nIGNvbW1hbmRcXFxcblxcXCIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTEzMDYtXFx0fSBlbHNlIGlmICghcXVldWVfd29yayhjbWQtXFx1MDAzZXdxLCBcXHUwMDI2ZW50LVxcdTAwM2V3b3JrKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxMzA3OlxcdFxcdG1seDVfY29yZV93YXJuKGRldiwgXFxcImZhaWxlZCB0byBxdWV1ZSB3b3JrXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTMwOC1cXHRcXHRlcnIgPSAtRUFMUkVBRFk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTMyNi1cXHR9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjEzMjc6XFx0bWx4NV9jb3JlX2RiZ19tYXNrKGRldiwgMSBcXHUwMDNjXFx1MDAzYyBNTFg1X0NNRF9USU1FLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMzI4LVxcdFxcdFxcdCAgIFxcXCJmdyBleGVjIHRpbWUgZm9yICVzIGlzICVsbGQgbnNlY1xcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xMzM3PXN0YXRpYyBzc2l6ZV90IGRiZ193cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMzM5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTM0MDpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cXHUwMDNlcHJpdmF0ZV9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xMzQxLVxcdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXFx1MDAyNmRldi1cXHUwMDNlY21kLmRiZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNDA0PXN0YXRpYyBpbnQgbWx4NV9jb3B5X2Zyb21fbXNnKHZvaWQgKnRvLCBzdHJ1Y3QgbWx4NV9jbWRfbXNnICpmcm9tLCBpbnQgc2l6ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNDM3OnN0YXRpYyBzdHJ1Y3QgbWx4NV9jbWRfbWFpbGJveCAqYWxsb2NfY21kX2JveChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDM4LVxcdFxcdFxcdFxcdFxcdCAgICAgIGdmcF90IGZsYWdzKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0NDgtXFx0aWYgKCFtYWlsYm94LVxcdTAwM2VidWYpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTQ0OTpcXHRcXHRtbHg1X2NvcmVfZGJnKGRldiwgXFxcImZhaWxlZCBhbGxvY2F0aW9uXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQ1MC1cXHRcXHRrZnJlZShtYWlsYm94KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDU3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNDU4OnN0YXRpYyB2b2lkIGZyZWVfY21kX2JveChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDU5LVxcdFxcdFxcdCBzdHJ1Y3QgbWx4NV9jbWRfbWFpbGJveCAqbWFpbGJveClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNDY1OnN0YXRpYyBzdHJ1Y3QgbWx4NV9jbWRfbXNnICptbHg1X2FsbG9jX2NtZF9tc2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTQ2Ni1cXHRcXHRcXHRcXHRcXHQgICAgICAgZ2ZwX3QgZmxhZ3MsIGludCBzaXplLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE0ODUtXFx0XFx0aWYgKElTX0VSUih0bXApKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE0ODY6XFx0XFx0XFx0bWx4NV9jb3JlX3dhcm4oZGV2LCBcXFwiZmFpbGVkIGFsbG9jYXRpbmcgYmxvY2tcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNDg3LVxcdFxcdFxcdGVyciA9IFBUUl9FUlIodG1wKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNTEyOnN0YXRpYyB2b2lkIG1seDVfZnJlZV9jbWRfbXNnKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1MTMtXFx0XFx0XFx0ICAgICAgc3RydWN0IG1seDVfY21kX21zZyAqbXNnKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1MjY9c3RhdGljIHNzaXplX3QgZGF0YV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTI4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTUyOTpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cXHUwMDNlcHJpdmF0ZV9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTMwLVxcdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXFx1MDAyNmRldi1cXHUwMDNlY21kLmRiZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNTUwPXN0YXRpYyBzc2l6ZV90IGRhdGFfcmVhZChzdHJ1Y3QgZmlsZSAqZmlscCwgY2hhciBfX3VzZXIgKmJ1Ziwgc2l6ZV90IGNvdW50LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1NTIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNTUzOlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYgPSBmaWxwLVxcdTAwM2Vwcml2YXRlX2RhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE1NTQtXFx0c3RydWN0IG1seDVfY21kX2RlYnVnICpkYmcgPSBcXHUwMDI2ZGV2LVxcdTAwM2VjbWQuZGJnO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE1NzA9c3RhdGljIHNzaXplX3Qgb3V0bGVuX3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTcyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU3MzpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cXHUwMDNlcHJpdmF0ZV9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTc0LVxcdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXFx1MDAyNmRldi1cXHUwMDNlY21kLmRiZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNTg1PXN0YXRpYyBzc2l6ZV90IG91dGxlbl93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgY29uc3QgY2hhciBfX3VzZXIgKmJ1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTg3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTU4ODpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2ID0gZmlscC1cXHUwMDNlcHJpdmF0ZV9kYXRhO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNTg5LVxcdHN0cnVjdCBtbHg1X2NtZF9kZWJ1ZyAqZGJnID0gXFx1MDAyNmRldi1cXHUwMDNlY21kLmRiZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYz0xNjIxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIG9sZm9wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjI4OnN0YXRpYyB2b2lkIHNldF93cW5hbWUoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTYyOS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTYzNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTYzNjpzdGF0aWMgdm9pZCBjbGVhbl9kZWJ1Z19maWxlcyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjM3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjQ2OnN0YXRpYyB2b2lkIGNyZWF0ZV9kZWJ1Z2ZzX2ZpbGVzKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NDcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2NTk6dm9pZCBtbHg1X2NtZF9hbGxvd2VkX29wY29kZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1MTYgb3Bjb2RlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjYwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNjc0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjc1OnN0YXRpYyB2b2lkIG1seDVfY21kX2NoYW5nZV9tb2Qoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IG1vZGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2NzYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE2OTE9c3RhdGljIGludCBjbWRfY29tcF9ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2OTMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNjk0OlxcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE2OTUtXFx0c3RydWN0IG1seDVfY21kICpjbWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTY5OC1cXHRjbWQgPSBtbHg1X25iX2NvZihuYiwgc3RydWN0IG1seDVfY21kLCBuYik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE2OTk6XFx0ZGV2ID0gY29udGFpbmVyX29mKGNtZCwgc3RydWN0IG1seDVfY29yZV9kZXYsIGNtZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE3MDAtXFx0ZXFlID0gZGF0YTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzA4LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTcwOTp2b2lkIG1seDVfY21kX3VzZV9ldmVudHMoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcxMC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTcxNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTcxNjp2b2lkIG1seDVfY21kX3VzZV9wb2xsaW5nKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE3MTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE3MjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE3MjI6c3RhdGljIHZvaWQgZnJlZV9tc2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgc3RydWN0IG1seDVfY21kX21zZyAqbXNnKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzIzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzM1OnN0YXRpYyB2b2lkIG1seDVfY21kX2NvbXBfaGFuZGxlcihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCB1NjQgdmVjLCBib29sIGZvcmNlZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTczNi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTc2NS1cXHRcXHRcXHRcXHRpZiAoIWZvcmNlZCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxNzY2OlxcdFxcdFxcdFxcdFxcdG1seDVfY29yZV9lcnIoZGV2LCBcXFwiQ29tbWFuZCBjb21wbGV0aW9uIGFycml2ZWQgYWZ0ZXIgdGltZW91dCAoZW50cnkgaWR4ID0gJWQpLlxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTc2Ny1cXHRcXHRcXHRcXHRcXHRcXHQgICAgICBlbnQtXFx1MDAzZWlkeCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTc5My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTc5NDpcXHRcXHRcXHRcXHRtbHg1X2NvcmVfZGJnKGRldiwgXFxcImNvbW1hbmQgY29tcGxldGVkLiByZXQgMHgleCwgZGVsaXZlcnkgc3RhdHVzICVzKDB4JXgpXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xNzk1LVxcdFxcdFxcdFxcdFxcdCAgICAgIGVudC1cXHUwMDNlcmV0LCBkZWxpdl9zdGF0dXNfdG9fc3RyKGVudC1cXHUwMDNlc3RhdHVzKSwgZW50LVxcdTAwM2VzdGF0dXMpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE4MzgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE4Mzk6c3RhdGljIHZvaWQgbWx4NV9jbWRfdHJpZ2dlcl9jb21wbGV0aW9ucyhzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODQwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxODY0OlxcdG1seDVfY29yZV9kYmcoZGV2LCBcXFwidmVjdG9yIDB4JWxseFxcXFxuXFxcIiwgdmVjdG9yKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTg2NS1cXHRtbHg1X2NtZF9jb21wX2hhbmRsZXIoZGV2LCB2ZWN0b3IsIHRydWUpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE4NzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jOjE4NzQ6dm9pZCBtbHg1X2NtZF9mbHVzaChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xODk2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxODk3OnN0YXRpYyBzdHJ1Y3QgbWx4NV9jbWRfbXNnICphbGxvY19tc2coc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgaW50IGluX3NpemUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE4OTgtXFx0XFx0XFx0XFx0ICAgICAgZ2ZwX3QgZ2ZwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jPTE5MzU9c3RhdGljIGludCBpc19tYW5hZ2VfcGFnZXModm9pZCAqaW4pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTkzOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTk0MDpzdGF0aWMgYm9vbCBtbHg1X2hhc19wcml2aWxlZ2VkX3VpZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xOTQxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xOTQ0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoxOTQ1OnN0YXRpYyBib29sIG1seDVfY21kX2lzX3ByaXZpbGVnZWRfdWlkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE5NDYtXFx0XFx0XFx0XFx0ICAgICAgIHUxNiB1aWQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMTk1NC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmM6MTk1NTpzdGF0aWMgaW50IGNtZF9leGVjKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHZvaWQgKmluLCBpbnQgaW5fc2l6ZSwgdm9pZCAqb3V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0xOTU2LVxcdFxcdCAgICBpbnQgb3V0X3NpemUsIG1seDVfY21kX2Nia190IGNhbGxiYWNrLCB2b2lkICpjb250ZXh0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2NtZC5jLTE5OTktXFx0aWYgKGVycikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYzoyMDAwOlxcdFxcdG1seDVfY29yZV93YXJuKGRldiwgXFxcImVyciAlZFxcXFxuXFxcIiwgZXJyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvY21kLmMtMjAwMS1cXHRcXHRnb3RvIG91dF9pbjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9jbWQuYy0yMDM1LVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wM1QwMTo1MTo1Mi4xNDQwMjMwNjZaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDA1NzYxMDk1NTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgTUxYNSBQYXRjaCdzIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgYENPTkZJR19NTFg1X0NPUkVgIOKAkyB0aGF0J3MgdGhlIGNvcmUgZHJpdmVyLCB0aGUgaGVhcnQgb2YgdGhlIG1hdHRlci4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBcIkNhbiBzeXprYWxsZXIgZXZlbiB0b3VjaCB0aGlzIGNvZGU/XCIgSSBuZWVkIHRvIHZlcmlmeSBpZiBzeXprYWxsZXIgaXMgYWN0aXZlbHkgZnV6emluZyBtbHg1LiBJIGtub3cgaXQgaGFzIGEgYHN5el9wY2lfZGV2aWNlX2FkZGAgY2FsbCwgd2hpY2ggaXMgYSBzdGFydGluZyBwb2ludCBmb3IgUENJIGRldmljZSBpbnRlcmFjdGlvbiwgYnV0IGl0J3Mgbm90IGEgZ3VhcmFudGVlIHRvIHJlYWNoIGRlZXAgaW50byBuZXR3b3JrIGRyaXZlcnMgdW5sZXNzIHRoZXJlJ3MgZGVkaWNhdGVkIHN1cHBvcnQuIFxuXG5Ib2xkIG9uLCBtYXliZSB0aGUgcGF0Y2ggaXRzZWxmIGlzIGp1c3QgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoaW4gdGhlIGRyaXZlcj8gSSBzaG91bGQgcmUtcmVhZCB0aG9zZSBpbnN0cnVjdGlvbnM6IFwiUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucy4uLiBjb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLi4uXCJcblxuR2l2ZW4gdGhhdCBtbHg1IGlzIHRpZWQgdG8gcGh5c2ljYWwgaGFyZHdhcmUsIE1lbGxhbm94IENvbm5lY3RYIHNwZWNpZmljYWxseSwgYW5kIHRoZXJlJ3Mgbm8gbmF0aXZlIHNvZnR3YXJlIGVtdWxhdGlvbiBvZiBpdCBpbiBRRU1VIG9yIHRoZSBrZXJuZWwgKHVubGlrZSwgc2F5LCBhIHZpcnR1YWwgVVNCIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbSksIHRoZSBjb2RlIHBhdGhzIGFkZHJlc3NlZCBieSB0aGlzIHBhdGNoIGFyZSBkZWZpbml0aXZlbHkgaW5hY2Nlc3NpYmxlIGluIGEgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudC5cblxuTGV0IG1lIGp1c3QgY2hlY2sgZm9yIGFsdGVybmF0aXZlcyBqdXN0IGluIGNhc2UuLi4gSXMgdGhlcmUgYSB2RFBBIHBhdGg/IEFoLCBgdmRwYS9tbHg1YCAqcmVxdWlyZXMqIHRoZSBwaHlzaWNhbCBtbHg1IGRldmljZS4gV2hhdCBhYm91dCBuZXRkZXZzaW0/IE5vLCBpdCBoYW5kbGVzIHNvbWUgb2ZmbG9hZHMgYnV0IGRvZXNuJ3QgYWN0dWFsbHkgdXNlIG1seDUgY29kZS4gTW9jayBkcml2ZXJzPyBObyBkaWNlLlxuXG5BbHJpZ2h0LCBiYWNrIHRvIHRoZSBwYXRjaC4gSXQncyBtb2RpZnlpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jYCBhbmQgYGVuX3N0YXRzLmNgLCBzcGVjaWZpY2FsbHkgYG1seDVlX3BvbGxfdHhfY3FgLiBUaGlzIGlzIHVuZXF1aXZvY2FsbHkgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGNvZGUsIG5vIGlmcywgYW5kcywgb3IgYnV0cy4gU2luY2UgdGhlcmUncyBubyBzb2Z0d2FyZSBlbXVsYXRpb24sIHJlYWNoaW5nIHRoaXMgY29kZSBpbiBRRU1VIG9yIHNpbWlsYXIgZW52aXJvbm1lbnRzIGlzIGEgZGVhZCBlbmQuXG5cblRodXMsIEknbSBzZXR0aW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGFuZCBhZGRpbmcgdGhlIGZvbGxvd2luZyByZWFzb25pbmc6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBtbHg1IGV0aGVybmV0IGRyaXZlciAoYG1seDVlX3BvbGxfdHhfY3FgKS4gVGhpcyBpcyBhIHBoeXNpY2FsIGhhcmR3YXJlIGRyaXZlciBmb3IgTWVsbGFub3ggQ29ubmVjdFggYWRhcHRlcnMgYW5kIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIGl0IGluIFFFTVUgb3IgdGhlIGtlcm5lbC4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy5cIlxuXG5CdXQganVzdCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4sIGxldCdzIGV4cGxvcmUgaWYgc3l6a2FsbGVyIGNhbiBibGluZGx5IHByb2JlIHRoZSBkcml2ZXIuICBJdCAqbWlnaHQqIGJlIGFibGUgdG8gcmVhY2ggc29tZSBjb2RlIGJ5IHVzaW5nIGBzeXpfcGNpX2RldmljZV9hZGRgIGFuZCBtYXBwaW5nIG1lbW9yeSBwbHVzIHJlc3BvbmRpbmcgdG8gTU1JTyByZWFkcywgaG93ZXZlciByZWFjaGluZyBgbWx4NWVfcG9sbF90eF9jcWAgbmVlZHMgYSBmdWxseSBpbml0aWFsaXplZCBkZXZpY2UsIG5ldGRldiByZWdpc3RyYXRpb24sIGJyaW5naW5nIGl0IHVwLCBhbmQgYSBUWCBpbnRlcnJ1cHQuIFRoYXQncyBwcmFjdGljYWxseSBpbXBvc3NpYmxlIGZvciBhIGJsaW5kIGZ1enplciB3aXRob3V0IHNwZWNpZmljIGVtdWxhdGlvbi4gUGx1cyB0aGUgaW5zdHJ1Y3Rpb25zIHNheTogXCJDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsICpldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlKi5cIiBTbywgbXkgY29uY2x1c2lvbiBob2xkcy5cblxuSSdtIGNhbGxpbmcgYHNldC1yZXN1bHRzYCB3aXRoIGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjA4MSwiT3V0cHV0VG9rZW5zIjoxMDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3NDksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDNUMDE6NTI6MzIuNzIwMTM1NzY3WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjM1NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IG1seDUgZXRoZXJuZXQgZHJpdmVyIChtbHg1ZV9wb2xsX3R4X2NxKS4gVGhpcyBpcyBhIHBoeXNpY2FsIGhhcmR3YXJlIGRyaXZlciBmb3IgTWVsbGFub3ggQ29ubmVjdFggYWRhcHRlcnMgYW5kIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBhdmFpbGFibGUgZm9yIGl0IGluIFFFTVUgb3IgdGhlIGtlcm5lbC4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBtbHg1IGV0aGVybmV0IGRyaXZlciAobWx4NWVfcG9sbF90eF9jcSkuIFRoaXMgaXMgYSBwaHlzaWNhbCBoYXJkd2FyZSBkcml2ZXIgZm9yIE1lbGxhbm94IENvbm5lY3RYIGFkYXB0ZXJzIGFuZCB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gYXZhaWxhYmxlIGZvciBpdCBpbiBRRU1VIG9yIHRoZSBrZXJuZWwuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowtk8nx[1] Phase: Running StartedAt: 2026-07-03 01:52:44 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtk8nx[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-03 01:52:44 +0000 UTC FinishedAt: 2026-07-03 01:52:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}