Name: series-workflowbwzmb Phase: Succeeded StartedAt: 2026-08-07 04:39:28 +0000 UTC FinishedAt: 2026-08-07 08:24:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[0] Phase: Succeeded StartedAt: 2026-08-07 04:39:28 +0000 UTC FinishedAt: 2026-08-07 04:42:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[0].run-triage Phase: Succeeded StartedAt: 2026-08-07 04:39:28 +0000 UTC FinishedAt: 2026-08-07 04:42:16 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "075b74841bd0065a3bda3440873c747938e69b68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MMC_VUB300" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "075b74841bd0065a3bda3440873c747938e69b68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MMC_VUB300" ], "series_id": "64f6a2f9-788b-44e6-aba4-057e55ddb70a" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "vub300_inactivity_timer_expired", "vub300_cmndwork_thread", "vub300_probe", "vub300_disconnect", "vub300_sg_timed_out" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA0OjQwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01NQ19WVUIzMDAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkJiMzNDssCiAgICAmIzM0O3Z1YjMwMF9jbW5kd29ya190aHJlYWQmIzM0OywKICAgICYjMzQ7dnViMzAwX3Byb2JlJiMzNDssCiAgICAmIzM0O3Z1YjMwMF9kaXNjb25uZWN0JiMzNDssCiAgICAmIzM0O3Z1YjMwMF9zZ190aW1lZF9vdXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgdGltZXIgc3luY2hyb25pemF0aW9uIGFuZCByZWZlcmVuY2UgY291bnRpbmcgaXNzdWVzIGluIHRoZSBWVUIzMDAgVVNCIE1NQyBob3N0IGRyaXZlci4gSXQgcmVwbGFjZXMgdGltZXJfZGVsZXRlIHdpdGggdGltZXJfZGVsZXRlX3N5bmMgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSBidWdzIGFuZCBmaXhlcyBhIHJlZmVyZW5jZSBjb3VudGluZyBpc3N1ZSBpbiB0aGUgaW5hY3Rpdml0eSB0aW1lciBjYWxsYmFjay4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZHJpdmVyJiMzOTtzIGxpZmVjeWNsZSBhbmQgY29tbWFuZCBleGVjdXRpb24gcGF0aHMsIHdoaWNoIGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZW11bGF0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA0OjQwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZWU5NGM2MjMwMDQ0NWQyZmYxNDdiMmJlM2QwODc3YjU1MjI3NWU5Y1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgQXVnIDcgMDQ6NDA6NTcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYyBiL2RyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmNcbmluZGV4IDJkYWU0NzRkY2QwNjcuLjliMDg3NTVjYzY1MzkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jXG5AQCAtNzQ0LDcgJiM0Mzs3NDQsNyBAQCBzdGF0aWMgdm9pZCB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuIFx0c3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwID0gdGltZXJfY29udGFpbmVyX29mKHZ1YjMwMCwgdCxcbiBcdFx0XHRcdFx0XHRcdCAgICBpbmFjdGl2aXR5X3RpbWVyKTtcbiBcdGlmICghdnViMzAwLVx1MDAzZWludGVyZmFjZSkge1xuLVx0XHRrcmVmX3B1dChcdTAwMjZ2dWIzMDAtXHUwMDNla3JlZiwgdnViMzAwX2RlbGV0ZSk7XG4mIzQzO1x0XHQvKiB0aW1lcl9kZWxldGVfc3luYygpIHdpbGwgd2FpdCBmb3IgdXMgKi9cbiBcdH0gZWxzZSBpZiAodnViMzAwLVx1MDAzZWNtZCkge1xuIFx0XHRtb2RfdGltZXIoXHUwMDI2dnViMzAwLVx1MDAzZWluYWN0aXZpdHlfdGltZXIsIGppZmZpZXMgJiM0MzsgSFopO1xuIFx0fSBlbHNlIHtcbkBAIC0xNDUzLDcgJiM0MzsxNDUzLDcgQEAgc3RhdGljIGludCBfX2NvbW1hbmRfcmVhZF9kYXRhKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcbiBcdFx0XHRcdFx0XHQgIChsaW5lYXJfbGVuZ3RoIC8gMTYzODQpKTtcbiBcdFx0XHRhZGRfdGltZXIoXHUwMDI2dnViMzAwLVx1MDAzZXNnX3RyYW5zZmVyX3RpbWVyKTtcbiBcdFx0XHR1c2Jfc2dfd2FpdChcdTAwMjZ2dWIzMDAtXHUwMDNlc2dfcmVxdWVzdCk7XG4tXHRcdFx0dGltZXJfZGVsZXRlKFx1MDAyNnZ1YjMwMC1cdTAwM2VzZ190cmFuc2Zlcl90aW1lcik7XG4mIzQzO1x0XHRcdHRpbWVyX2RlbGV0ZV9zeW5jKFx1MDAyNnZ1YjMwMC1cdTAwM2VzZ190cmFuc2Zlcl90aW1lcik7XG4gXHRcdFx0aWYgKHZ1YjMwMC1cdTAwM2VzZ19yZXF1ZXN0LnN0YXR1cyBcdTAwM2MgMCkge1xuIFx0XHRcdFx0Y21kLVx1MDAzZWVycm9yID0gdnViMzAwLVx1MDAzZXNnX3JlcXVlc3Quc3RhdHVzO1xuIFx0XHRcdFx0ZGF0YS1cdTAwM2VieXRlc194ZmVyZWQgPSAwO1xuQEAgLTE1NzAsMTAgJiM0MzsxNTcwLDEwIEBAIHN0YXRpYyBpbnQgX19jb21tYW5kX3dyaXRlX2RhdGEoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwLFxuIFx0XHRcdFx0XHRcdFx0ICAgbGluZWFyX2xlbmd0aCAvIDE2Mzg0KTtcbiBcdFx0XHRhZGRfdGltZXIoXHUwMDI2dnViMzAwLVx1MDAzZXNnX3RyYW5zZmVyX3RpbWVyKTtcbiBcdFx0XHR1c2Jfc2dfd2FpdChcdTAwMjZ2dWIzMDAtXHUwMDNlc2dfcmVxdWVzdCk7XG4mIzQzO1x0XHRcdHRpbWVyX2RlbGV0ZV9zeW5jKFx1MDAyNnZ1YjMwMC1cdTAwM2VzZ190cmFuc2Zlcl90aW1lcik7XG4gXHRcdFx0aWYgKGNtZC1cdTAwM2VlcnJvcikge1xuIFx0XHRcdFx0ZGF0YS1cdTAwM2VieXRlc194ZmVyZWQgPSAwO1xuIFx0XHRcdH0gZWxzZSB7XG4tXHRcdFx0XHR0aW1lcl9kZWxldGUoXHUwMDI2dnViMzAwLVx1MDAzZXNnX3RyYW5zZmVyX3RpbWVyKTtcbiBcdFx0XHRcdGlmICh2dWIzMDAtXHUwMDNlc2dfcmVxdWVzdC5zdGF0dXMgXHUwMDNjIDApIHtcbiBcdFx0XHRcdFx0Y21kLVx1MDAzZWVycm9yID0gdnViMzAwLVx1MDAzZXNnX3JlcXVlc3Quc3RhdHVzO1xuIFx0XHRcdFx0XHRkYXRhLVx1MDAzZWJ5dGVzX3hmZXJlZCA9IDA7XG5AQCAtMjMyNyw3ICYjNDM7MjMyNyw2IEBAIHN0YXRpYyBpbnQgdnViMzAwX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsXG4gXHRJTklUX1dPUksoXHUwMDI2dnViMzAwLVx1MDAzZWRlYWR3b3JrLCB2dWIzMDBfZGVhZHdvcmtfdGhyZWFkKTtcbiBcdGtyZWZfaW5pdChcdTAwMjZ2dWIzMDAtXHUwMDNla3JlZik7XG4gXHR0aW1lcl9zZXR1cChcdTAwMjZ2dWIzMDAtXHUwMDNlc2dfdHJhbnNmZXJfdGltZXIsIHZ1YjMwMF9zZ190aW1lZF9vdXQsIDApO1xuLVx0a3JlZl9nZXQoXHUwMDI2dnViMzAwLVx1MDAzZWtyZWYpO1xuIFx0dGltZXJfc2V0dXAoXHUwMDI2dnViMzAwLVx1MDAzZWluYWN0aXZpdHlfdGltZXIsXG4gXHRcdCAgICB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkLCAwKTtcbiBcdHZ1YjMwMC1cdTAwM2VpbmFjdGl2aXR5X3RpbWVyLmV4cGlyZXMgPSBqaWZmaWVzICYjNDM7IEhaO1xuQEAgLTIzNTAsNiAmIzQzOzIzNDksNyBAQCBzdGF0aWMgaW50IHZ1YjMwMF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlLFxuIFxuIGVycl9zdG9wX2lvOlxuIFx0dnViMzAwLVx1MDAzZWludGVyZmFjZSA9IE5VTEw7XG4mIzQzO1x0dGltZXJfZGVsZXRlX3N5bmMoXHUwMDI2dnViMzAwLVx1MDAzZWluYWN0aXZpdHlfdGltZXIpO1xuIFx0a3JlZl9wdXQoXHUwMDI2dnViMzAwLVx1MDAzZWtyZWYsIHZ1YjMwMF9kZWxldGUpO1xuIFxuIFx0cmV0dXJuIHJldHZhbDtcbkBAIC0yMzg1LDYgJiM0MzsyMzg1LDcgQEAgc3RhdGljIHZvaWQgdnViMzAwX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcbiBcdFx0XHQvKiBwcmV2ZW50IG1vcmUgSS9PIGZyb20gc3RhcnRpbmcgKi9cbiBcdFx0XHR2dWIzMDAtXHUwMDNlaW50ZXJmYWNlID0gTlVMTDtcbiBcdFx0XHRtbWNfcmVtb3ZlX2hvc3QobW1jKTtcbiYjNDM7XHRcdFx0dGltZXJfZGVsZXRlX3N5bmMoXHUwMDI2dnViMzAwLVx1MDAzZWluYWN0aXZpdHlfdGltZXIpO1xuIFx0XHRcdGtyZWZfcHV0KFx1MDAyNnZ1YjMwMC1cdTAwM2VrcmVmLCB2dWIzMDBfZGVsZXRlKTtcbiBcdFx0XHRwcl9pbmZvKFwmIzM0O1VTQiB2dWIzMDAgcmVtb3RlIFNESU8gaG9zdCBjb250cm9sbGVyWyVkXVwmIzM0O1xuIFx0XHRcdFx0XCYjMzQ7IG5vdyBkaXNjb25uZWN0ZWRcJiMzNDssIGlmbnVtKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNDo0MDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TU1DX1ZVQjMwMCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3Z1YjMwMF9pbmFjdGl2aXR5X3RpbWVyX2V4cGlyZWQmIzM0OywKICAgICYjMzQ7dnViMzAwX2NtbmR3b3JrX3RocmVhZCYjMzQ7LAogICAgJiMzNDt2dWIzMDBfcHJvYmUmIzM0OywKICAgICYjMzQ7dnViMzAwX2Rpc2Nvbm5lY3QmIzM0OywKICAgICYjMzQ7dnViMzAwX3NnX3RpbWVkX291dCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyB0aW1lciBzeW5jaHJvbml6YXRpb24gYW5kIHJlZmVyZW5jZSBjb3VudGluZyBpc3N1ZXMgaW4gdGhlIFZVQjMwMCBVU0IgTU1DIGhvc3QgZHJpdmVyLiBJdCByZXBsYWNlcyB0aW1lcl9kZWxldGUgd2l0aCB0aW1lcl9kZWxldGVfc3luYyB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVlIGJ1Z3MgYW5kIGZpeGVzIGEgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlIGluIHRoZSBpbmFjdGl2aXR5IHRpbWVyIGNhbGxiYWNrLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBkcml2ZXImIzM5O3MgbGlmZWN5Y2xlIGFuZCBjb21tYW5kIGV4ZWN1dGlvbiBwYXRocywgd2hpY2ggY2FuIGJlIHJlYWNoZWQgdmlhIFVTQiBlbXVsYXRpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBlZTk0YzYyMzAwNDQ1ZDJmZjE0N2IyYmUzZDA4NzdiNTUyMjc1ZTljCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBBdWcgNyAwNDo0MDo1NyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMgYi9kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jCmluZGV4IDJkYWU0NzRkY2QwNjcuLjliMDg3NTVjYzY1MzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYwpAQCAtNzQ0LDcgJiM0Mzs3NDQsNyBAQCBzdGF0aWMgdm9pZCB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkKHN0cnVjdCB0aW1lcl9saXN0ICp0KQogCXN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCA9IHRpbWVyX2NvbnRhaW5lcl9vZih2dWIzMDAsIHQsCiAJCQkJCQkJICAgIGluYWN0aXZpdHlfdGltZXIpOwogCWlmICghdnViMzAwLSZndDtpbnRlcmZhY2UpIHsKLQkJa3JlZl9wdXQoJmFtcDt2dWIzMDAtJmd0O2tyZWYsIHZ1YjMwMF9kZWxldGUpOwomIzQzOwkJLyogdGltZXJfZGVsZXRlX3N5bmMoKSB3aWxsIHdhaXQgZm9yIHVzICovCiAJfSBlbHNlIGlmICh2dWIzMDAtJmd0O2NtZCkgewogCQltb2RfdGltZXIoJmFtcDt2dWIzMDAtJmd0O2luYWN0aXZpdHlfdGltZXIsIGppZmZpZXMgJiM0MzsgSFopOwogCX0gZWxzZSB7CkBAIC0xNDUzLDcgJiM0MzsxNDUzLDcgQEAgc3RhdGljIGludCBfX2NvbW1hbmRfcmVhZF9kYXRhKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCwKIAkJCQkJCSAgKGxpbmVhcl9sZW5ndGggLyAxNjM4NCkpOwogCQkJYWRkX3RpbWVyKCZhbXA7dnViMzAwLSZndDtzZ190cmFuc2Zlcl90aW1lcik7CiAJCQl1c2Jfc2dfd2FpdCgmYW1wO3Z1YjMwMC0mZ3Q7c2dfcmVxdWVzdCk7Ci0JCQl0aW1lcl9kZWxldGUoJmFtcDt2dWIzMDAtJmd0O3NnX3RyYW5zZmVyX3RpbWVyKTsKJiM0MzsJCQl0aW1lcl9kZWxldGVfc3luYygmYW1wO3Z1YjMwMC0mZ3Q7c2dfdHJhbnNmZXJfdGltZXIpOwogCQkJaWYgKHZ1YjMwMC0mZ3Q7c2dfcmVxdWVzdC5zdGF0dXMgJmx0OyAwKSB7CiAJCQkJY21kLSZndDtlcnJvciA9IHZ1YjMwMC0mZ3Q7c2dfcmVxdWVzdC5zdGF0dXM7CiAJCQkJZGF0YS0mZ3Q7Ynl0ZXNfeGZlcmVkID0gMDsKQEAgLTE1NzAsMTAgJiM0MzsxNTcwLDEwIEBAIHN0YXRpYyBpbnQgX19jb21tYW5kX3dyaXRlX2RhdGEoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwLAogCQkJCQkJCSAgIGxpbmVhcl9sZW5ndGggLyAxNjM4NCk7CiAJCQlhZGRfdGltZXIoJmFtcDt2dWIzMDAtJmd0O3NnX3RyYW5zZmVyX3RpbWVyKTsKIAkJCXVzYl9zZ193YWl0KCZhbXA7dnViMzAwLSZndDtzZ19yZXF1ZXN0KTsKJiM0MzsJCQl0aW1lcl9kZWxldGVfc3luYygmYW1wO3Z1YjMwMC0mZ3Q7c2dfdHJhbnNmZXJfdGltZXIpOwogCQkJaWYgKGNtZC0mZ3Q7ZXJyb3IpIHsKIAkJCQlkYXRhLSZndDtieXRlc194ZmVyZWQgPSAwOwogCQkJfSBlbHNlIHsKLQkJCQl0aW1lcl9kZWxldGUoJmFtcDt2dWIzMDAtJmd0O3NnX3RyYW5zZmVyX3RpbWVyKTsKIAkJCQlpZiAodnViMzAwLSZndDtzZ19yZXF1ZXN0LnN0YXR1cyAmbHQ7IDApIHsKIAkJCQkJY21kLSZndDtlcnJvciA9IHZ1YjMwMC0mZ3Q7c2dfcmVxdWVzdC5zdGF0dXM7CiAJCQkJCWRhdGEtJmd0O2J5dGVzX3hmZXJlZCA9IDA7CkBAIC0yMzI3LDcgJiM0MzsyMzI3LDYgQEAgc3RhdGljIGludCB2dWIzMDBfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSwKIAlJTklUX1dPUksoJmFtcDt2dWIzMDAtJmd0O2RlYWR3b3JrLCB2dWIzMDBfZGVhZHdvcmtfdGhyZWFkKTsKIAlrcmVmX2luaXQoJmFtcDt2dWIzMDAtJmd0O2tyZWYpOwogCXRpbWVyX3NldHVwKCZhbXA7dnViMzAwLSZndDtzZ190cmFuc2Zlcl90aW1lciwgdnViMzAwX3NnX3RpbWVkX291dCwgMCk7Ci0Ja3JlZl9nZXQoJmFtcDt2dWIzMDAtJmd0O2tyZWYpOwogCXRpbWVyX3NldHVwKCZhbXA7dnViMzAwLSZndDtpbmFjdGl2aXR5X3RpbWVyLAogCQkgICAgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZCwgMCk7CiAJdnViMzAwLSZndDtpbmFjdGl2aXR5X3RpbWVyLmV4cGlyZXMgPSBqaWZmaWVzICYjNDM7IEhaOwpAQCAtMjM1MCw2ICYjNDM7MjM0OSw3IEBAIHN0YXRpYyBpbnQgdnViMzAwX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsCiAKIGVycl9zdG9wX2lvOgogCXZ1YjMwMC0mZ3Q7aW50ZXJmYWNlID0gTlVMTDsKJiM0MzsJdGltZXJfZGVsZXRlX3N5bmMoJmFtcDt2dWIzMDAtJmd0O2luYWN0aXZpdHlfdGltZXIpOwogCWtyZWZfcHV0KCZhbXA7dnViMzAwLSZndDtrcmVmLCB2dWIzMDBfZGVsZXRlKTsKIAogCXJldHVybiByZXR2YWw7CkBAIC0yMzg1LDYgJiM0MzsyMzg1LDcgQEAgc3RhdGljIHZvaWQgdnViMzAwX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSkKIAkJCS8qIHByZXZlbnQgbW9yZSBJL08gZnJvbSBzdGFydGluZyAqLwogCQkJdnViMzAwLSZndDtpbnRlcmZhY2UgPSBOVUxMOwogCQkJbW1jX3JlbW92ZV9ob3N0KG1tYyk7CiYjNDM7CQkJdGltZXJfZGVsZXRlX3N5bmMoJmFtcDt2dWIzMDAtJmd0O2luYWN0aXZpdHlfdGltZXIpOwogCQkJa3JlZl9wdXQoJmFtcDt2dWIzMDAtJmd0O2tyZWYsIHZ1YjMwMF9kZWxldGUpOwogCQkJcHJfaW5mbygmIzM0O1VTQiB2dWIzMDAgcmVtb3RlIFNESU8gaG9zdCBjb250cm9sbGVyWyVkXSYjMzQ7CiAJCQkJJiMzNDsgbm93IGRpc2Nvbm5lY3RlZCYjMzQ7LCBpZm51bSk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA0OjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5OTUKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAyMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgVlVCMzAwIE1NQyBIb3N0IERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBoZXJlIHRoYXTigJlzIHR3ZWFraW5nIHRoZSBgZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuY2AgZmlsZS4gSXQmIzM5O3MgbWFraW5nIGEgZmV3IGludGVyZXN0aW5nIGNoYW5nZXMuIEZpcnN0LCBpdOKAmXMgcmVwbGFjaW5nIGB0aW1lcl9kZWxldGVgIHdpdGggYHRpbWVyX2RlbGV0ZV9zeW5jYCBmb3IgdGhlIGBzZ190cmFuc2Zlcl90aW1lcmAuIFRoaXMgaW1tZWRpYXRlbHkgc3VnZ2VzdHMgdGhleSYjMzk7cmUgYWRkcmVzc2luZyBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBpbnZvbHZpbmcgdGhlIHRpbWVyLCBsaWtlbHkgcmVsYXRlZCB0byBzeW5jaHJvbml6YXRpb24uIFRoZW4sIEkgc2VlIHRoZXkmIzM5O3ZlIHJlbW92ZWQgc29tZSBga3JlZmAgb3BlcmF0aW9ucyDigJMgYGtyZWZfZ2V0YCBhbmQgYGtyZWZfcHV0YCDigJMgYXJvdW5kIHRoZSBpbmFjdGl2aXR5IHRpbWVyIGNhbGxiYWNrIGZ1bmN0aW9uLCBgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZGAuIFRoZXkmIzM5O3ZlIGFsc28gYWRkZWQgYSBgdGltZXJfZGVsZXRlX3N5bmNgIGNhbGwgZm9yIHRoZSBgaW5hY3Rpdml0eV90aW1lcmAgaW4gYm90aCB0aGUgcHJvYmUgZXJyb3IgcGF0aCBhbmQgZHVyaW5nIGRpc2Nvbm5lY3QuCgpOb3csIHRoaXMgaXMgdGhlIFVTQiBNTUMgaG9zdCBkcml2ZXIsIHRoZSBWVUIzMDAuIENvbnNpZGVyaW5nIHRoZSBuYXR1cmUgb2YgVVNCLCBJIHNob3VsZCBjb25zaWRlciByZWFjaGFiaWxpdHkgaW4gdmlydHVhbCBlbnZpcm9ubWVudHMuIEZvcnR1bmF0ZWx5LCBpdCYjMzk7cyBxdWl0ZSBsaWtlbHksIHNpbmNlIHdlIGNhbiBlbXVsYXRlIFVTQiBkZXZpY2VzIHdpdGggVVNCIGdhZGdldCBvciBkdW1teV9oY2QsIGFuZCBzeXprYWxsZXIgaGFzIGEgcHJldHR5IGdvb2QgVVNCIGZ1enplci4gSXTigJlzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRoYXQgY2FuIGJlIHRhcmdldGVkLiBUbyB1bmRlcnN0YW5kIHRoaXMgcHJvcGVybHksIEkgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyB0byBzZWUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVGhpcyBzaG91bGQgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGlzIGNvZGUgaXMgZXhwb3NlZCBhbmQgd2hhdCBpdHMgZGVwZW5kZW5jaWVzIGFyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNDo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2dWIzMDAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL21tYy9ob3N0L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnPTkyMD1jb25maWcgTU1DX1ZVQjMwMFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZy05NDQtXHQgIFRvIGNvbXBpbGUgdGhpcyBtbWMgaG9zdCBjb250cm9sbGVyIGRyaXZlciBhcyBhIG1vZHVsZSxcbmRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZzo5NDU6XHQgIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgdnViMzAwLlxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTk0Ni1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNDo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjU1CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEZXBlbmRlbmN5IENoZWNrOiBgTU1DX1ZVQjMwMGAqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGUgZGVwZW5kZW5jaWVzIGZvciBgTU1DX1ZVQjMwMGAuIFRoaXMgZmVlbHMgbGlrZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEkgbmVlZCB0byBxdWlja2x5IGFzY2VydGFpbiB0aGUgc2NvcGUgb2Ygd2hhdCByZWxpZXMgb24gdGhpcyBjb21wb25lbnQsIGJvdGggdXBzdHJlYW0gYW5kIGRvd25zdHJlYW0uIFNwZWNpZmljYWxseSwgSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgc3RhbmRhcmQgc3VzcGVjdHM6IHdoYXQgbGlicmFyaWVzLCBvdGhlciBtb2R1bGVzLCBwb3RlbnRpYWxseSBldmVuIGV4dGVybmFsIHNlcnZpY2VzLCBhcmUgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aWVkIHRvIGl0cyBmdW5jdGlvbmFsaXR5PyBLbm93aW5nIHRoZSBmdWxsIGRlcGVuZGVuY3kgZ3JhcGggaXMgY3J1Y2lhbCBiZWZvcmUgYW55IG1vZGlmaWNhdGlvbiwgdXBkYXRlIG9yIG1pZ3JhdGlvbi4gSSBuZWVkIHRvIGJlIGVzcGVjaWFsbHkgY29nbml6YW50IG9mIHBvdGVudGlhbCBjaXJjdWxhciBkZXBlbmRlbmNpZXMgYW5kIGltcGxpY2l0IGFzc3VtcHRpb25zIGJ1aWx0IGludG8gYW55IGxpbmtlZCBjb2RlLiBBcmUgdGhlcmUgYW55IGtub3duIGlzc3VlcyBmbGFnZ2VkIGluIHJlbGF0ZWQgZG9jdW1lbnRhdGlvbiBvciBpbnRlcm5hbCBidWcgdHJhY2tlcnM/IEtub3dpbmcgdGhpcyBpbmZvcm1hdGlvbiB3aWxsIGdyZWF0bHkgaGVscCB0byBwcmlvcml0aXplIG15IHdvcmsuIEkgbmVlZCB0byBtYWtlIHN1cmUgdG8gYWNjb3VudCBmb3IgaW1wbGljaXQgZGVwZW5kZW5jaWVzIGFzIHdlbGwgLSB0aGluZ3MgdGhhdCBtaWdodCBjYWxsIGBNTUNfVlVCMzAwYCYjMzk7cyBBUEkgYnV0IGFyZSBub3QgZGlyZWN0bHkgbGlzdGVkIGFzIGRlcGVuZGVudHMgaW4gYSBzdGFuZGFyZCB0b29sLiBUaW1lIHRvIHB1bGwgdXAgdGhlIGRlcGVuZGVuY3kgYW5hbHl6ZXIgYW5kIGRpZyBpbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNDo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTU1DX1ZVQjMwMCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL21tYy9ob3N0L0tjb25maWc9OTEwPWNvbmZpZyBNTUNfSlo0NzQwXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTkxOS1cbmRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZzo5MjA6Y29uZmlnIE1NQ19WVUIzMDBcbmRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZy05MjEtXHR0cmlzdGF0ZSBcJiMzNDtWVUIzMDAgVVNCIHRvIFNESU8vU0QvTU1DIEhvc3QgQ29udHJvbGxlciBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDQ6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDA0MQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gdGhlIE1NQyBIb3N0IENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIHplcm8gaW4gb24gdGhlIGBkcml2ZXJzL21tYy9ob3N0L0tjb25maWdgIGZpbGUsIHNwZWNpZmljYWxseSBhcm91bmQgbGluZSA5MjAuIEkmIzM5O20gbGlrZWx5IGludGVyZXN0ZWQgaW4gaG93IHNvbWUgcGFydGljdWxhciBmZWF0dXJlIG9yIG9wdGlvbiByZWxhdGVkIHRvIE1NQyBob3N0IGNvbnRyb2xsZXJzIGlzIGJlaW5nIGNvbmZpZ3VyZWQuIEdpdmVuIHRoZSBsb2NhdGlvbiB3aXRoaW4gS2NvbmZpZywgSSYjMzk7bSBleHBlY3RpbmcgdG8gZmluZCBjb25kaXRpb25hbCBjb21waWxhdGlvbiBvcHRpb25zIG9yIGRlcGVuZGVuY2llcyBiZWluZyBkZWZpbmVkLiBNeSBnb2FsIGlzIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgc3BlY2lmaWMgYXNwZWN0IGlzIGNvbnRyb2xsZWQsIHdoYXQgb3RoZXIgZmVhdHVyZXMgaXQgbWlnaHQgZGVwZW5kIG9uLCBhbmQgcG90ZW50aWFsbHksIHdoYXQgaGFyZHdhcmUgcGxhdGZvcm1zIG9yIGtlcm5lbCBjb25maWd1cmF0aW9ucyBlbmFibGUgb3IgZGlzYWJsZSBpdC4gUGVyaGFwcyBJJiMzOTttIHRyeWluZyB0byBkZWJ1ZyBhbiBpc3N1ZSwgb3Igc2ltcGx5IHVuZGVyc3RhbmQgdGhlIGxvZ2ljIGJlaGluZCBhIG5ldyBNTUMgaG9zdCBkcml2ZXIgSSYjMzk7bSBsb29raW5nIGF0LiBNYXliZSBJJiMzOTttIHRyeWluZyB0byBidWlsZCBhIGN1c3RvbSBrZXJuZWwgY29uZmlndXJhdGlvbiwgYW5kIG5lZWQgdG8ga25vdyB0aGUgaW1wbGljYXRpb25zIG9mIGVuYWJsaW5nIGEgcGFydGljdWxhciBNTUMtcmVsYXRlZCBvcHRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDQ6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL21tYy9ob3N0L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA5MTUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDkxNTpcdFx0ICBKWjQ3NDAsIEpaNDc1MCwgSlo0NzcwIGFuZCBKWjQ3ODAgU29Dcy5cbiA5MTY6XHRcbiA5MTc6XHRcdCAgSWYgeW91IGhhdmUgYSBib2FyZCBiYXNlZCBvbiBzdWNoIGEgU29DIGFuZCB3aXRoIGEgU0QvTU1DIHNsb3QsXG4gOTE4Olx0XHQgIHNheSBZIG9yIE0gaGVyZS5cbiA5MTk6XHRcbiA5MjA6XHRjb25maWcgTU1DX1ZVQjMwMFxuIDkyMTpcdFx0dHJpc3RhdGUgXCYjMzQ7VlVCMzAwIFVTQiB0byBTRElPL1NEL01NQyBIb3N0IENvbnRyb2xsZXIgc3VwcG9ydFwmIzM0O1xuIDkyMjpcdFx0ZGVwZW5kcyBvbiBVU0JcbiA5MjM6XHRcdGhlbHBcbiA5MjQ6XHRcdCAgVGhpcyBzZWxlY3RzIHN1cHBvcnQgZm9yIEVsYW4gRGlnaXRhbCBTeXN0ZW1zJiMzOTsgVlVCMzAwIGNoaXAuXG4gOTI1Olx0XG4gOTI2Olx0XHQgIFRoZSBWVUIzMDAgaXMgYSBVU0ItU0RJTyBIb3N0IENvbnRyb2xsZXIgSW50ZXJmYWNlIGNoaXBcbiA5Mjc6XHRcdCAgdGhhdCBlbmFibGVzIHRoZSBob3N0IGNvbXB1dGVyIHRvIHVzZSBTRElPL1NEL01NQyBjYXJkc1xuIDkyODpcdFx0ICB2aWEgYSBVU0IgMi4wIG9yIFVTQiAxLjEgaG9zdC5cbiA5Mjk6XHRcbiA5MzA6XHRcdCAgVGhlIFZVQjMwMCBjaGlwIHdpbGwgYmUgZm91bmQgaW4gYm90aCBwaHlzaWNhbGx5IHNlcGFyYXRlXG4gOTMxOlx0XHQgIFVTQiB0byBTRElPL1NEL01NQyBhZGFwdGVycyBhbmQgZW1iZWRkZWQgb24gc29tZSBtb3RoZXJib2FyZHMuXG4gOTMyOlx0XG4gOTMzOlx0XHQgIFRoZSBWVUIzMDAgY2hpcCBzdXBwb3J0cyBTRCBhbmQgTU1DIG1lbW9yeSBjYXJkcyBpbiBhZGRpdGlvblxuIDkzNDpcdFx0ICB0byBzaW5nbGUgYW5kIG11bHRpZnVuY3Rpb24gU0RJTyBjYXJkcy5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNDo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjUzCgkJCQkJCQlvdXRwdXQ6IDYzCgkJCQkJCQl0aG91Z2h0czogNDYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGZyb20gYW4gZXhwZXJ0JiMzOTtzIHBlcnNwZWN0aXZlOgoKKipEaXZpbmcgaW50byB0aGUgTU1DX1ZVQjMwMCBEcml2ZXIgRGVwZW5kZW5jaWVzKioKClJpZ2h0LCBzbyBgTU1DX1ZVQjMwMGAgLSB0aGF0JiMzOTtzIGEgZHJpdmVyIGZvciBhIHNwZWNpZmljIE1NQyBob3N0IGNvbnRyb2xsZXIsIGFuZCBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIGJ1aWx0IG9uIHRvcCBvZiBib3RoIGBVU0JgIGFuZCBgTU1DYCBpdHNlbGYuIFRoYXQgbWVhbnMgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBpbnRlcmFjdGlvbiB3b3Jrcy4gTXkgZmlyc3Qgc3RlcCBpcyB0byB6ZXJvIGluIG9uIHRoZSByZWxldmFudCBjb2RlLiBJJiMzOTttIGhlYWRpbmcgc3RyYWlnaHQgZm9yIHRoZSBzb3VyY2U6IGBkcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jYC4gVGhpcyBpcyB3aGVyZSB0aGUgY29yZSBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIGBNTUNfVlVCMzAwYCBkcml2ZXIgcmVzaWRlcywgYW5kIGl0JiMzOTtsbCBjb250YWluIHRoZSBmdW5jdGlvbnMgSSBuZWVkIHRvIGRpc3NlY3QuIEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdGhlIGNvbnRyb2xsZXIgaW50ZXJmYWNlcyB3aXRoIHRoZSBVU0IgYnVzIGFuZCB0aGVuLCBob3cgdGhhdCB0cmFuc2xhdGVzIHRvIE1NQyBjb21tYW5kcyBhbmQgZGF0YSB0cmFuc2Zlci4gTGV0JiMzOTtzIHNlZSB3aGF0IGludGVyZXN0aW5nIHRpZGJpdHMgYXJlIGluIHRoYXQgYC5jYCBmaWxlLiBJJiMzOTttIGV4cGVjdGluZyB0byBmaW5kIGludGVyZXN0aW5nIGZ1bmN0aW9ucyB0byB3b3JrIHdpdGguCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA0OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O19fY29tbWFuZF9yZWFkX2RhdGF8X19jb21tYW5kX3dyaXRlX2RhdGF8dnViMzAwX3Byb2JlfHZ1YjMwMF9kaXNjb25uZWN0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTEzOTY9c3RhdGljIGludCB2dWIzMDBfdXNiX2J1bGtfbXNnKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE0MjgtXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjE0Mjk6c3RhdGljIGludCBfX2NvbW1hbmRfcmVhZF9kYXRhKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMTQzMC1cdFx0XHQgICAgICAgc3RydWN0IG1tY19jb21tYW5kICpjbWQsIHN0cnVjdCBtbWNfZGF0YSAqZGF0YSlcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE1MDAtXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjE1MDE6c3RhdGljIGludCBfX2NvbW1hbmRfd3JpdGVfZGF0YShzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE1MDItXHRcdFx0XHRzdHJ1Y3QgbW1jX2NvbW1hbmQgKmNtZCwgc3RydWN0IG1tY19kYXRhICpkYXRhKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MTczNz1zdGF0aWMgdm9pZCB2dWIzMDBfY21uZHdvcmtfdGhyZWFkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE3NjctXHRcdGVsc2UgaWYgKE1NQ19EQVRBX1JFQUQgXHUwMDI2IGRhdGEtXHUwMDNlZmxhZ3MpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjE3Njg6XHRcdFx0ZGF0YV9sZW5ndGggPSBfX2NvbW1hbmRfcmVhZF9kYXRhKHZ1YjMwMCwgY21kLCBkYXRhKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMTc2OS1cdFx0ZWxzZVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoxNzcwOlx0XHRcdGRhdGFfbGVuZ3RoID0gX19jb21tYW5kX3dyaXRlX2RhdGEodnViMzAwLCBjbWQsIGRhdGEpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNzcxLVx0XHRyZXNldF9kZXZpY2UgPSBfX3Z1YjMwMF9jb21tYW5kX3Jlc3BvbnNlKHZ1YjMwMCwgY21kLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MjA4NT1zdGF0aWMgY29uc3Qgc3RydWN0IG1tY19ob3N0X29wcyB2dWIzMDBfbW1jX29wcyA9IHtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTIwOTEtXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjIwOTI6c3RhdGljIGludCB2dWIzMDBfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjA5My1cdFx0XHRjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yMzcyLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoyMzczOnN0YXRpYyB2b2lkIHZ1YjMwMF9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTIzNzQte1x0XHRcdFx0LyogTk9UIGlycSAqL1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MjQyNz1zdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgdnViMzAwX2RyaXZlciA9IHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjQyOC1cdC5uYW1lID0gXCYjMzQ7dnViMzAwXCYjMzQ7LFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoyNDI5Olx0LnByb2JlID0gdnViMzAwX3Byb2JlLFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoyNDMwOlx0LmRpc2Nvbm5lY3QgPSB2dWIzMDBfZGlzY29ubmVjdCxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjQzMS1cdC5zdXNwZW5kID0gdnViMzAwX3N1c3BlbmQsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA0OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU4OTUKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiA0MzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBWVUIzMDAgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgc2V2ZXJhbCBrZXkgZnVuY3Rpb25zIHdpdGhpbiB0aGUgYHZ1YjMwMGAgZHJpdmVyLiBJIHNlZSBpdCYjMzk7cyBtb2RpZnlpbmcgYHZ1YjMwMF9pbmFjdGl2aXR5X3RpbWVyX2V4cGlyZWRgLCBgX19jb21tYW5kX3JlYWRfZGF0YWAsIGBfX2NvbW1hbmRfd3JpdGVfZGF0YWAsIGB2dWIzMDBfcHJvYmVgLCBhbmQgYHZ1YjMwMF9kaXNjb25uZWN0YC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGluY2x1ZGUgdGhlc2UgaW4gYEZvY3VzU3ltYm9sc2AuCgpOb3csIGRpZ2dpbmcgYSBiaXQgZGVlcGVyLCBJIHJlbWVtYmVyIGBfX2NvbW1hbmRfcmVhZF9kYXRhYCBhbmQgYF9fY29tbWFuZF93cml0ZV9kYXRhYCBhcmUgc3RhdGljIGZ1bmN0aW9ucyBjYWxsZWQgZnJvbSBgdnViMzAwX2NtbmR3b3JrX3RocmVhZGAuIFNpbmNlIHRoZSB0aHJlYWQgaXMgYSB3b3JrcXVldWUgZnVuY3Rpb24sIHRoYXQgbG9va3MgbGlrZSBhIHZlcnkgZ29vZCBlbnRyeSBwb2ludCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiBTaW1pbGFybHksIGB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkYCBpcyBhIHRpbWVyIGNhbGxiYWNrLCBzbyB0aGF0JiMzOTtzIGFub3RoZXIgcG90ZW50aWFsbHkgZXhjZWxsZW50IHN0YXJ0aW5nIHBvaW50LiBBbmQgb2YgY291cnNlLCBgdnViMzAwX3Byb2JlYCBhbmQgYHZ1YjMwMF9kaXNjb25uZWN0YCBhcmUgdGhlIHN0YW5kYXJkIFVTQiBkcml2ZXIgY2FsbGJhY2tzLCBhbHNvIGltcG9ydGFudCB0byBrZWVwIGluIGZvY3VzLgoKTmV4dCwgSSBuZWVkIHRvIGNoZWNrIHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbnMuIExldCYjMzk7cyBzZWUuLi4gYE1NQ19WVUIzMDBgLi4uIEl0IGRlcGVuZHMgb24gYFVTQmAgYW5kIGBNTUNgLiBgTU1DYCBpcyB1c3VhbGx5IGVuYWJsZWQgaW4gc3l6a2FsbGVyIGJ5IGRlZmF1bHQsIHNvIGBNTUNfVlVCMzAwYCBpcyBwcm9iYWJseSB0aGUgbWFpbiBvbmUgd2UgbmVlZCB0byBmb2N1cyBvbi4KCkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQmIzM5O3MgbG9vayBhdCB0aGUgYGRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZ2AgZmlsZS4gWWVzLCBgY29uZmlnIE1NQ19WVUIzMDBgIGRlcGVuZHMgb24gYFVTQmAgYW5kIGlzIHdpdGhpbiB0aGUgYG1lbnVjb25maWcgTU1DYCB3aGljaCBpbiB0dXJuIGRlcGVuZHMgb24gYEhBU19JT01FTWAuCgpUaGVyZWZvcmUsIHRoZSBgRW5hYmxlQ29uZmlnc2AgbGlzdCBzaG91bGQganVzdCBiZSBgWyYjMzQ7TU1DX1ZVQjMwMCYjMzQ7XWAuIFRoYXQgc2hvdWxkIGJlIHN1ZmZpY2llbnQuCgpPa2F5LCBub3csIGxldCYjMzk7cyBqdXN0IGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrIGFuZCBtYWtlIHN1cmUgdGhhdCBgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZGAgaXNuJiMzOTt0IHN0YXRpYy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDQ6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz03MDk9c3RhdGljIHZvaWQgdnViMzAwX2RlYWR3b3JrX3RocmVhZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03NDEtXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc0MjpzdGF0aWMgdm9pZCB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03NDMte1x0XHRcdFx0Lyogc29mdGlycSAqL1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MjA5Mj1zdGF0aWMgaW50IHZ1YjMwMF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjMzMC1cdHRpbWVyX3NldHVwKFx1MDAyNnZ1YjMwMC1cdTAwM2VpbmFjdGl2aXR5X3RpbWVyLFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoyMzMxOlx0XHQgICAgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZCwgMCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTIzMzItXHR2dWIzMDAtXHUwMDNlaW5hY3Rpdml0eV90aW1lci5leHBpcmVzID0gamlmZmllcyAmIzQzOyBIWjtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDQ6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzExNAoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDQxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlLi4uCgoqKkFuYWx5emluZyB0aGlzIEVudHJ5IFBvaW50KioKClJpZ2h0LCBzbyB0aGlzIGNvZGUgc25pcHBldCB1c2VzIGEgdGltZXIgY2FsbGJhY2sg4oCTIEkgY2FuIHNlZSB0aGF0LiBFdmVuIHRob3VnaCB0aGUgY29udGV4dCBtaWdodCAqYXBwZWFyKiBzdGF0aWMsIGJlY2F1c2UgaXQmIzM5O3MgaW5pdGlhdGVkIGJ5IGEgdGltZXIsIGl0IGVzc2VudGlhbGx5IGJlY29tZXMgYW4gZW50cnkgcG9pbnQgaW50byB0aGUgc3lzdGVtIGF0IHJlZ3VsYXIgaW50ZXJ2YWxzLiBUaGF0IGNoYW5nZXMgaG93IEkgYXBwcm9hY2ggdGhpcywgaXQmIzM5O3Mgbm90IGp1c3Qgc29tZSB2YXJpYWJsZS4gSSBuZWVkIHRvIHRyZWF0IGl0IGRpZmZlcmVudGx5IGFzIGl0JiMzOTtzIHRoZSBzdGFydCBwb2ludCBvZiBhIHByb2Nlc3MuCgpOb3csIHdoZXJlIGRvZXMgdGhpcyB0aW1lciBsZWFkPyBMZXQgbWUgZXhhbWluZSB0aGUgYHZ1YjMwMF9jbW5kd29ya190aHJlYWRgIGZ1bmN0aW9uIHRvIHVuZGVyc3RhbmQgdGhlIHByb2Nlc3MuIFRoYXQmIzM5O3MgdGhlIGtleS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDQ6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dnViMzAwX2NtbmR3b3JrX3RocmVhZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz01Njg9c3RhdGljIHZvaWQgY2hlY2tfdnViMzAwX3BvcnRfc3RhdHVzKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMClcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU3MS1cdCAqIGNtZF9tdXRleCBpcyBoZWxkIGJ5IHZ1YjMwMF9wb2xsd29ya190aHJlYWQsXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU3MjpcdCAqIHZ1YjMwMF9kZWFkd29ya190aHJlYWQgb3IgdnViMzAwX2NtbmR3b3JrX3RocmVhZFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NzMtXHQgKi9cbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTg5MD1zdGF0aWMgdm9pZCBzZW5kX2NvbW1hbmQoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04OTEte1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4OTI6XHQvKiBjbWRfbXV0ZXggaXMgaGVsZCBieSB2dWIzMDBfY21uZHdvcmtfdGhyZWFkICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg5My1cdHN0cnVjdCBtbWNfY29tbWFuZCAqY21kID0gdnViMzAwLVx1MDAzZWNtZDtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTEzOTY9c3RhdGljIGludCB2dWIzMDBfdXNiX2J1bGtfbXNnKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTEzOTkte1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoxNDAwOlx0LyogY21kX211dGV4IGlzIGhlbGQgYnkgdnViMzAwX2NtbmR3b3JrX3RocmVhZCAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNDAxLVx0c3RydWN0IHVzYl9kZXZpY2UgKnVzYl9kZXYgPSB2dWIzMDAtXHUwMDNldWRldjtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTE0Mjk9c3RhdGljIGludCBfX2NvbW1hbmRfcmVhZF9kYXRhKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE0MzEte1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoxNDMyOlx0LyogY21kX211dGV4IGlzIGhlbGQgYnkgdnViMzAwX2NtbmR3b3JrX3RocmVhZCAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNDMzLVx0aW50IGxpbmVhcl9sZW5ndGggPSB2dWIzMDAtXHUwMDNlZGF0YXNpemU7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz0xNTAxPXN0YXRpYyBpbnQgX19jb21tYW5kX3dyaXRlX2RhdGEoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMTUwMy17XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjE1MDQ6XHQvKiBjbWRfbXV0ZXggaXMgaGVsZCBieSB2dWIzMDBfY21uZHdvcmtfdGhyZWFkICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE1MDUtXHR1bnNpZ25lZCBwaXBlID0gdXNiX3NuZGJ1bGtwaXBlKHZ1YjMwMC1cdTAwM2V1ZGV2LCB2dWIzMDAtXHUwMDNlZGF0YV9vdXRfZXApO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MTU4OT1zdGF0aWMgYm9vbCBfX3Z1YjMwMF9jb21tYW5kX3Jlc3BvbnNlKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE1OTIte1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoxNTkzOlx0LyogY21kX211dGV4IGlzIGhlbGQgYnkgdnViMzAwX2NtbmR3b3JrX3RocmVhZCAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNTk0LVx0bG9uZyByZXNwcmV0dmFsO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MTcwNT1zdGF0aWMgdm9pZCBjb25zdHJ1Y3RfcmVxdWVzdF9yZXNwb25zZShzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNzM2LS8qIHRoaXMgdGhyZWFkIHJ1bnMgb25seSB3aGVuIHRoZXJlIGlzIGFuIHVwcGVyIGxldmVsIGNvbW1hbmQgcmVxIG91dHN0YW5kaW5nICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjE3Mzc6c3RhdGljIHZvaWQgdnViMzAwX2NtbmR3b3JrX3RocmVhZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE3Mzgte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MjA5Mj1zdGF0aWMgaW50IHZ1YjMwMF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjMyNS1cdElOSVRfREVMQVlFRF9XT1JLKFx1MDAyNnZ1YjMwMC1cdTAwM2Vwb2xsd29yaywgdnViMzAwX3BvbGx3b3JrX3RocmVhZCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjIzMjY6XHRJTklUX1dPUksoXHUwMDI2dnViMzAwLVx1MDAzZWNtbmR3b3JrLCB2dWIzMDBfY21uZHdvcmtfdGhyZWFkKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjMyNy1cdElOSVRfV09SSyhcdTAwMjZ2dWIzMDAtXHUwMDNlZGVhZHdvcmssIHZ1YjMwMF9kZWFkd29ya190aHJlYWQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNDo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4NjAxCgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMjUzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgVlVCMzAwIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIGB2dWIzMDBfY21uZHdvcmtfdGhyZWFkYCBpcyBhIHdvcmtxdWV1ZSBmdW5jdGlvbiwgdGhhdCBtdWNoIGlzIGNsZWFyLiBUaGUgcHJpbWFyeSBmb2N1cyBvZiB0aGlzIHBhdGNoIHNlZW1zIHRvIGFkZHJlc3MgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgbWVtb3J5IGxlYWsgaXNzdWUgd2l0aGluIHRoZSBgdnViMzAwLmNgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGNvbmNlcm5pbmcgdGhlIGluY29ycmVjdCB1c2Ugb2YgYHRpbWVyX2RlbGV0ZWAgaW5zdGVhZCBvZiBgdGltZXJfZGVsZXRlX3N5bmNgIGFuZCBhbHNvIHRoZSBpbmNvcnJlY3QgdXNlIG9mIGBrcmVmX2dldGAvYGtyZWZfcHV0YC4gR2l2ZW4gdGhpcyBmdW5jdGlvbmFsIGltcGFjdCwgZnV6emluZyBpcyBkZWZpbml0ZWx5IGEgd29ydGh3aGlsZSBuZXh0IHN0ZXAuCgpMZXQmIzM5O3MgcXVpY2tseSByZXZpZXcgdGhlIGBGb2N1c1N5bWJvbHNgLiBXZSYjMzk7cmUgbG9va2luZyBhdCBgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZGAsIGB2dWIzMDBfY21uZHdvcmtfdGhyZWFkYCwgYHZ1YjMwMF9wcm9iZWAsIGFuZCBgdnViMzAwX2Rpc2Nvbm5lY3RgLgoKTm93LCBiZWZvcmUgZGl2aW5nIHRvbyBkZWVwLCBpdCYjMzk7cyBnb29kIHByYWN0aWNlIHRvIHF1aWNrbHkgY2hlY2sgZm9yIG90aGVyIG1vZGlmaWNhdGlvbnMgaW4gdGhlIGNvZGUuIEFoLCBsb29rcyBsaWtlIGBfX2NvbW1hbmRfcmVhZF9kYXRhYCBhbmQgYF9fY29tbWFuZF93cml0ZV9kYXRhYCBhcmUgYWxzbyBtb2RpZmllZC4gVGhleSYjMzk7cmUgc3RhdGljIGFuZCBjYWxsZWQgZnJvbSBgdnViMzAwX2NtbmR3b3JrX3RocmVhZGAsIHdoaWNoIG1ha2VzIGB2dWIzMDBfY21uZHdvcmtfdGhyZWFkYCBhbiBldmVuIG1vcmUgY29tcGVsbGluZyBlbnRyeXBvaW50IGZvciBhbmFseXNpcyBhbmQgZGVidWdnaW5nLgoKQWxzbyBvZiBpbnRlcmVzdCBpcyBgdnViMzAwX3NnX3RpbWVkX291dGAsIHdoaWNoIGFwcGVhcnMgdG8gYmUgdGhlIHRpbWVyIGNhbGxiYWNrIGZvciBgc2dfdHJhbnNmZXJfdGltZXJgLiBUaGlzIHNob3VsZCBiZSBsb29rZWQgYXQgYWxvbmdzaWRlIHRoZSBjb3JlIGNoYW5nZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA0OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Z1YjMwMF9zZ190aW1lZF9vdXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9ODkwPXN0YXRpYyB2b2lkIHNlbmRfY29tbWFuZChzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDApXG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xMTgxLSAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoxMTgyOnN0YXRpYyB2b2lkIHZ1YjMwMF9zZ190aW1lZF9vdXQoc3RydWN0IHRpbWVyX2xpc3QgKnQpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTExODMte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MjA5Mj1zdGF0aWMgaW50IHZ1YjMwMF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjMyOC1cdGtyZWZfaW5pdChcdTAwMjZ2dWIzMDAtXHUwMDNla3JlZik7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjIzMjk6XHR0aW1lcl9zZXR1cChcdTAwMjZ2dWIzMDAtXHUwMDNlc2dfdHJhbnNmZXJfdGltZXIsIHZ1YjMwMF9zZ190aW1lZF9vdXQsIDApO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yMzMwLVx0dGltZXJfc2V0dXAoXHUwMDI2dnViMzAwLVx1MDAzZWluYWN0aXZpdHlfdGltZXIsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA0OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDk1MzUKCQkJCQkJCW91dHB1dDogMTc3CgkJCQkJCQl0aG91Z2h0czogNTU3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5c2lzIG9mIHRoZSBWVUIzMDAgVVNCIE1NQyBIb3N0IERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBjb25maXJtZWQgdGhhdCBgdnViMzAwX3NnX3RpbWVkX291dGAgaXMgaW5kZWVkIHRoZSB0aW1lciBjYWxsYmFjayB3ZSYjMzk7cmUgYWZ0ZXIsIHNvIEkgc2hvdWxkIGRlZmluaXRlbHkgaW5jbHVkZSBpdCBpbiBgRm9jdXNTeW1ib2xzYC4gTGV0JiMzOTtzIGdldCB0aGF0IGxpc3QgZmluYWxpemVkLgoKTXkgYEZvY3VzU3ltYm9sc2AgYXJlOiBgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZGAsIGB2dWIzMDBfY21uZHdvcmtfdGhyZWFkYCwgYHZ1YjMwMF9wcm9iZWAsIGB2dWIzMDBfZGlzY29ubmVjdGAsIGFuZCBub3csIGltcG9ydGFudGx5LCBgdnViMzAwX3NnX3RpbWVkX291dGAuCgpSaWdodCwgbGV0JiMzOTtzIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQgYHZ1YjMwMF9wcm9iZWAgYW5kIGB2dWIzMDBfZGlzY29ubmVjdGAgYXJlIHNlbnNpYmxlIGVudHJ5cG9pbnRzLiBZZXAsIHRoZXkmIzM5O3JlIFVTQiBkcml2ZXIgY2FsbGJhY2tzLCBzbyB0aGV5JiMzOTtyZSBzb2xpZCBjaG9pY2VzIGZvciBmdXp6aW5nIGVudHJ5IHBvaW50cy4KCk5leHQsIEkgbmVlZCB0byBjaGVjayB0aGUgY29uZmlndXJhdGlvbiByZXF1aXJlbWVudHMuIElzIGBNTUNfVlVCMzAwYCB0aGUgb25seSBjb25maWcgbmVlZGVkIGZvciB0aGlzIGRyaXZlcj8gWWVzLCBpdCBhcHBlYXJzIHRvIGJlLiBUaGF0JiMzOTtzIGEgZ29vZCBzdGFydC4KCkhtbSwgd2FpdCBhIG1pbnV0ZSwgdGhlIHBhdGNoICphbHNvKiBtb2RpZmllcyBgdnViMzAwX3Byb2JlYCBhbmQgYHZ1YjMwMF9kaXNjb25uZWN0YC4gVGhhdCYjMzk7cyBpbXBvcnRhbnQ7IGl0IHJlaW5mb3JjZXMgdGhlaXIgc2lnbmlmaWNhbmNlIGFzIGtleSBmdW5jdGlvbnMuCgpUaGUgcGF0Y2gmIzM5O3MgcmVhc29uaW5nIG1ha2VzIHNlbnNlOiBJdCYjMzk7cyBhZGRyZXNzaW5nIHRpbWVyIHN5bmNocm9uaXphdGlvbiBhbmQgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlcyBpbiB0aGUgVlVCMzAwIFVTQiBNTUMgaG9zdCBkcml2ZXIuIFNwZWNpZmljYWxseSwgaXQmIzM5O3Mgc3dhcHBpbmcgYHRpbWVyX2RlbGV0ZWAgZm9yIGB0aW1lcl9kZWxldGVfc3luY2AgdG8gbWl0aWdhdGUgdXNlLWFmdGVyLWZyZWUgYnVncyBhbmQgZml4aW5nIGEgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlIGluIHRoZSBpbmFjdGl2aXR5IHRpbWVyIGNhbGxiYWNrLiBUaGVzZSBhcmUgZnVuZGFtZW50YWwgY2hhbmdlcyBpbXBhY3RpbmcgdGhlIGRyaXZlciYjMzk7cyBsaWZlY3ljbGUgYW5kIGNvbW1hbmQgZXhlY3V0aW9uIHBhdGhzLCBhbmQgdGhleSYjMzk7cmUgZGVmaW5pdGVseSByZWFjaGFibGUgdmlhIFVTQiBlbXVsYXRpb24uIFRoaXMgaXMgd2hlcmUgdGhlIHZ1bG5lcmFiaWxpdGllcyBjb3VsZCBsaWUuCgpKdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgSSYjMzk7bGwgZG91YmxlLWNoZWNrIGBNTUNfVlVCMzAwYCYjMzk7cyBkZXBlbmRlbmNpZXMuIGBkZXBlbmRzIG9uIFVTQmAgYW5kIGBNTUNgLiBCb3RoIGFyZSBzdGFuZGFyZCBzdWJzeXN0ZW1zOyBubyBzdXJwcmlzZXMgdGhlcmUuIFNvLCB5ZXMsIGBNTUNfVlVCMzAwYCBpcyBzdWZmaWNpZW50LgoKT2theSwgZXZlcnl0aGluZyBsb29rcyBnb29kLiBUaW1lIHRvIGNvbnN0cnVjdCB0aGUgZmluYWwgcmVzcG9uc2UuCgpgYGBqc29uCnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZCYjMzQ7LAogICAgJiMzNDt2dWIzMDBfY21uZHdvcmtfdGhyZWFkJiMzNDssCiAgICAmIzM0O3Z1YjMwMF9wcm9iZSYjMzQ7LAogICAgJiMzNDt2dWIzMDBfZGlzY29ubmVjdCYjMzQ7LAogICAgJiMzNDt2dWIzMDBfc2dfdGltZWRfb3V0JiMzNDsKICBdLAogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01NQ19WVUIzMDAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgdGltZXIgc3luY2hyb25pemF0aW9uIGFuZCByZWZlcmVuY2UgY291bnRpbmcgaXNzdWVzIGluIHRoZSBWVUIzMDAgVVNCIE1NQyBob3N0IGRyaXZlci4gSXQgcmVwbGFjZXMgdGltZXJfZGVsZXRlIHdpdGggdGltZXJfZGVsZXRlX3N5bmMgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSBidWdzIGFuZCBmaXhlcyBhIHJlZmVyZW5jZSBjb3VudGluZyBpc3N1ZSBpbiB0aGUgaW5hY3Rpdml0eSB0aW1lciBjYWxsYmFjay4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZHJpdmVyJiMzOTtzIGxpZmVjeWNsZSBhbmQgY29tbWFuZCBleGVjdXRpb24gcGF0aHMsIHdoaWNoIGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZW11bGF0aW9uLiYjMzQ7Cn0KYGBgCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA0OjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNTUNfVlVCMzAwJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZCYjMzQ7LAogICAgJiMzNDt2dWIzMDBfY21uZHdvcmtfdGhyZWFkJiMzNDssCiAgICAmIzM0O3Z1YjMwMF9wcm9iZSYjMzQ7LAogICAgJiMzNDt2dWIzMDBfZGlzY29ubmVjdCYjMzQ7LAogICAgJiMzNDt2dWIzMDBfc2dfdGltZWRfb3V0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHRpbWVyIHN5bmNocm9uaXphdGlvbiBhbmQgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlcyBpbiB0aGUgVlVCMzAwIFVTQiBNTUMgaG9zdCBkcml2ZXIuIEl0IHJlcGxhY2VzIHRpbWVyX2RlbGV0ZSB3aXRoIHRpbWVyX2RlbGV0ZV9zeW5jIHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgYnVncyBhbmQgZml4ZXMgYSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUgaW4gdGhlIGluYWN0aXZpdHkgdGltZXIgY2FsbGJhY2suIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGRyaXZlciYjMzk7cyBsaWZlY3ljbGUgYW5kIGNvbW1hbmQgZXhlY3V0aW9uIHBhdGhzLCB3aGljaCBjYW4gYmUgcmVhY2hlZCB2aWEgVVNCIGVtdWxhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TU1DX1ZVQjMwMCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3Z1YjMwMF9pbmFjdGl2aXR5X3RpbWVyX2V4cGlyZWQmIzM0OywKICAgICYjMzQ7dnViMzAwX2NtbmR3b3JrX3RocmVhZCYjMzQ7LAogICAgJiMzNDt2dWIzMDBfcHJvYmUmIzM0OywKICAgICYjMzQ7dnViMzAwX2Rpc2Nvbm5lY3QmIzM0OywKICAgICYjMzQ7dnViMzAwX3NnX3RpbWVkX291dCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyB0aW1lciBzeW5jaHJvbml6YXRpb24gYW5kIHJlZmVyZW5jZSBjb3VudGluZyBpc3N1ZXMgaW4gdGhlIFZVQjMwMCBVU0IgTU1DIGhvc3QgZHJpdmVyLiBJdCByZXBsYWNlcyB0aW1lcl9kZWxldGUgd2l0aCB0aW1lcl9kZWxldGVfc3luYyB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVlIGJ1Z3MgYW5kIGZpeGVzIGEgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlIGluIHRoZSBpbmFjdGl2aXR5IHRpbWVyIGNhbGxiYWNrLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBkcml2ZXImIzM5O3MgbGlmZWN5Y2xlIGFuZCBjb21tYW5kIGV4ZWN1dGlvbiBwYXRocywgd2hpY2ggY2FuIGJlIHJlYWNoZWQgdmlhIFVTQiBlbXVsYXRpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNDo0MDo1OC43NzMwNzY3OTNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NzYzMDgzODI0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNTUNfVlVCMzAwXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZFwiLFxuICAgIFwidnViMzAwX2NtbmR3b3JrX3RocmVhZFwiLFxuICAgIFwidnViMzAwX3Byb2JlXCIsXG4gICAgXCJ2dWIzMDBfZGlzY29ubmVjdFwiLFxuICAgIFwidnViMzAwX3NnX3RpbWVkX291dFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHRpbWVyIHN5bmNocm9uaXphdGlvbiBhbmQgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlcyBpbiB0aGUgVlVCMzAwIFVTQiBNTUMgaG9zdCBkcml2ZXIuIEl0IHJlcGxhY2VzIHRpbWVyX2RlbGV0ZSB3aXRoIHRpbWVyX2RlbGV0ZV9zeW5jIHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgYnVncyBhbmQgZml4ZXMgYSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUgaW4gdGhlIGluYWN0aXZpdHkgdGltZXIgY2FsbGJhY2suIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGRyaXZlcidzIGxpZmVjeWNsZSBhbmQgY29tbWFuZCBleGVjdXRpb24gcGF0aHMsIHdoaWNoIGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZW11bGF0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNDo0MDo1OC43NzMwODIzMzNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM5MDIxNTI0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGVlOTRjNjIzMDA0NDVkMmZmMTQ3YjJiZTNkMDg3N2I1NTIyNzVlOWNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBBdWcgNyAwNDo0MDo1NyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jIGIvZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuY1xcbmluZGV4IDJkYWU0NzRkY2QwNjcuLjliMDg3NTVjYzY1MzkgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuY1xcbisrKyBiL2RyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmNcXG5AQCAtNzQ0LDcgKzc0NCw3IEBAIHN0YXRpYyB2b2lkIHZ1YjMwMF9pbmFjdGl2aXR5X3RpbWVyX2V4cGlyZWQoc3RydWN0IHRpbWVyX2xpc3QgKnQpXFxuIFxcdHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCA9IHRpbWVyX2NvbnRhaW5lcl9vZih2dWIzMDAsIHQsXFxuIFxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICBpbmFjdGl2aXR5X3RpbWVyKTtcXG4gXFx0aWYgKCF2dWIzMDAtXFx1MDAzZWludGVyZmFjZSkge1xcbi1cXHRcXHRrcmVmX3B1dChcXHUwMDI2dnViMzAwLVxcdTAwM2VrcmVmLCB2dWIzMDBfZGVsZXRlKTtcXG4rXFx0XFx0LyogdGltZXJfZGVsZXRlX3N5bmMoKSB3aWxsIHdhaXQgZm9yIHVzICovXFxuIFxcdH0gZWxzZSBpZiAodnViMzAwLVxcdTAwM2VjbWQpIHtcXG4gXFx0XFx0bW9kX3RpbWVyKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWluYWN0aXZpdHlfdGltZXIsIGppZmZpZXMgKyBIWik7XFxuIFxcdH0gZWxzZSB7XFxuQEAgLTE0NTMsNyArMTQ1Myw3IEBAIHN0YXRpYyBpbnQgX19jb21tYW5kX3JlYWRfZGF0YShzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXFxuIFxcdFxcdFxcdFxcdFxcdFxcdCAgKGxpbmVhcl9sZW5ndGggLyAxNjM4NCkpO1xcbiBcXHRcXHRcXHRhZGRfdGltZXIoXFx1MDAyNnZ1YjMwMC1cXHUwMDNlc2dfdHJhbnNmZXJfdGltZXIpO1xcbiBcXHRcXHRcXHR1c2Jfc2dfd2FpdChcXHUwMDI2dnViMzAwLVxcdTAwM2VzZ19yZXF1ZXN0KTtcXG4tXFx0XFx0XFx0dGltZXJfZGVsZXRlKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZXNnX3RyYW5zZmVyX3RpbWVyKTtcXG4rXFx0XFx0XFx0dGltZXJfZGVsZXRlX3N5bmMoXFx1MDAyNnZ1YjMwMC1cXHUwMDNlc2dfdHJhbnNmZXJfdGltZXIpO1xcbiBcXHRcXHRcXHRpZiAodnViMzAwLVxcdTAwM2VzZ19yZXF1ZXN0LnN0YXR1cyBcXHUwMDNjIDApIHtcXG4gXFx0XFx0XFx0XFx0Y21kLVxcdTAwM2VlcnJvciA9IHZ1YjMwMC1cXHUwMDNlc2dfcmVxdWVzdC5zdGF0dXM7XFxuIFxcdFxcdFxcdFxcdGRhdGEtXFx1MDAzZWJ5dGVzX3hmZXJlZCA9IDA7XFxuQEAgLTE1NzAsMTAgKzE1NzAsMTAgQEAgc3RhdGljIGludCBfX2NvbW1hbmRfd3JpdGVfZGF0YShzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXFxuIFxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgIGxpbmVhcl9sZW5ndGggLyAxNjM4NCk7XFxuIFxcdFxcdFxcdGFkZF90aW1lcihcXHUwMDI2dnViMzAwLVxcdTAwM2VzZ190cmFuc2Zlcl90aW1lcik7XFxuIFxcdFxcdFxcdHVzYl9zZ193YWl0KFxcdTAwMjZ2dWIzMDAtXFx1MDAzZXNnX3JlcXVlc3QpO1xcbitcXHRcXHRcXHR0aW1lcl9kZWxldGVfc3luYyhcXHUwMDI2dnViMzAwLVxcdTAwM2VzZ190cmFuc2Zlcl90aW1lcik7XFxuIFxcdFxcdFxcdGlmIChjbWQtXFx1MDAzZWVycm9yKSB7XFxuIFxcdFxcdFxcdFxcdGRhdGEtXFx1MDAzZWJ5dGVzX3hmZXJlZCA9IDA7XFxuIFxcdFxcdFxcdH0gZWxzZSB7XFxuLVxcdFxcdFxcdFxcdHRpbWVyX2RlbGV0ZShcXHUwMDI2dnViMzAwLVxcdTAwM2VzZ190cmFuc2Zlcl90aW1lcik7XFxuIFxcdFxcdFxcdFxcdGlmICh2dWIzMDAtXFx1MDAzZXNnX3JlcXVlc3Quc3RhdHVzIFxcdTAwM2MgMCkge1xcbiBcXHRcXHRcXHRcXHRcXHRjbWQtXFx1MDAzZWVycm9yID0gdnViMzAwLVxcdTAwM2VzZ19yZXF1ZXN0LnN0YXR1cztcXG4gXFx0XFx0XFx0XFx0XFx0ZGF0YS1cXHUwMDNlYnl0ZXNfeGZlcmVkID0gMDtcXG5AQCAtMjMyNyw3ICsyMzI3LDYgQEAgc3RhdGljIGludCB2dWIzMDBfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcXG4gXFx0SU5JVF9XT1JLKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWRlYWR3b3JrLCB2dWIzMDBfZGVhZHdvcmtfdGhyZWFkKTtcXG4gXFx0a3JlZl9pbml0KFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWtyZWYpO1xcbiBcXHR0aW1lcl9zZXR1cChcXHUwMDI2dnViMzAwLVxcdTAwM2VzZ190cmFuc2Zlcl90aW1lciwgdnViMzAwX3NnX3RpbWVkX291dCwgMCk7XFxuLVxcdGtyZWZfZ2V0KFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWtyZWYpO1xcbiBcXHR0aW1lcl9zZXR1cChcXHUwMDI2dnViMzAwLVxcdTAwM2VpbmFjdGl2aXR5X3RpbWVyLFxcbiBcXHRcXHQgICAgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZCwgMCk7XFxuIFxcdHZ1YjMwMC1cXHUwMDNlaW5hY3Rpdml0eV90aW1lci5leHBpcmVzID0gamlmZmllcyArIEhaO1xcbkBAIC0yMzUwLDYgKzIzNDksNyBAQCBzdGF0aWMgaW50IHZ1YjMwMF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlLFxcbiBcXG4gZXJyX3N0b3BfaW86XFxuIFxcdHZ1YjMwMC1cXHUwMDNlaW50ZXJmYWNlID0gTlVMTDtcXG4rXFx0dGltZXJfZGVsZXRlX3N5bmMoXFx1MDAyNnZ1YjMwMC1cXHUwMDNlaW5hY3Rpdml0eV90aW1lcik7XFxuIFxcdGtyZWZfcHV0KFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWtyZWYsIHZ1YjMwMF9kZWxldGUpO1xcbiBcXG4gXFx0cmV0dXJuIHJldHZhbDtcXG5AQCAtMjM4NSw2ICsyMzg1LDcgQEAgc3RhdGljIHZvaWQgdnViMzAwX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcXG4gXFx0XFx0XFx0LyogcHJldmVudCBtb3JlIEkvTyBmcm9tIHN0YXJ0aW5nICovXFxuIFxcdFxcdFxcdHZ1YjMwMC1cXHUwMDNlaW50ZXJmYWNlID0gTlVMTDtcXG4gXFx0XFx0XFx0bW1jX3JlbW92ZV9ob3N0KG1tYyk7XFxuK1xcdFxcdFxcdHRpbWVyX2RlbGV0ZV9zeW5jKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWluYWN0aXZpdHlfdGltZXIpO1xcbiBcXHRcXHRcXHRrcmVmX3B1dChcXHUwMDI2dnViMzAwLVxcdTAwM2VrcmVmLCB2dWIzMDBfZGVsZXRlKTtcXG4gXFx0XFx0XFx0cHJfaW5mbyhcXFwiVVNCIHZ1YjMwMCByZW1vdGUgU0RJTyBob3N0IGNvbnRyb2xsZXJbJWRdXFxcIlxcbiBcXHRcXHRcXHRcXHRcXFwiIG5vdyBkaXNjb25uZWN0ZWRcXFwiLCBpZm51bSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA0OjQwOjU5LjE2NDA4MjA4M1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjY3MjM5ODI0MTc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1NQ19WVUIzMDBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkXCIsXG4gICAgXCJ2dWIzMDBfY21uZHdvcmtfdGhyZWFkXCIsXG4gICAgXCJ2dWIzMDBfcHJvYmVcIixcbiAgICBcInZ1YjMwMF9kaXNjb25uZWN0XCIsXG4gICAgXCJ2dWIzMDBfc2dfdGltZWRfb3V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgdGltZXIgc3luY2hyb25pemF0aW9uIGFuZCByZWZlcmVuY2UgY291bnRpbmcgaXNzdWVzIGluIHRoZSBWVUIzMDAgVVNCIE1NQyBob3N0IGRyaXZlci4gSXQgcmVwbGFjZXMgdGltZXJfZGVsZXRlIHdpdGggdGltZXJfZGVsZXRlX3N5bmMgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSBidWdzIGFuZCBmaXhlcyBhIHJlZmVyZW5jZSBjb3VudGluZyBpc3N1ZSBpbiB0aGUgaW5hY3Rpdml0eSB0aW1lciBjYWxsYmFjay4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZHJpdmVyJ3MgbGlmZWN5Y2xlIGFuZCBjb21tYW5kIGV4ZWN1dGlvbiBwYXRocywgd2hpY2ggY2FuIGJlIHJlYWNoZWQgdmlhIFVTQiBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGVlOTRjNjIzMDA0NDVkMmZmMTQ3YjJiZTNkMDg3N2I1NTIyNzVlOWNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyA3IDA0OjQwOjU3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYyBiL2RyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmNcbmluZGV4IDJkYWU0NzRkY2QwNjcuLjliMDg3NTVjYzY1MzkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jXG4rKysgYi9kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jXG5AQCAtNzQ0LDcgKzc0NCw3IEBAIHN0YXRpYyB2b2lkIHZ1YjMwMF9pbmFjdGl2aXR5X3RpbWVyX2V4cGlyZWQoc3RydWN0IHRpbWVyX2xpc3QgKnQpXG4gXHRzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAgPSB0aW1lcl9jb250YWluZXJfb2YodnViMzAwLCB0LFxuIFx0XHRcdFx0XHRcdFx0ICAgIGluYWN0aXZpdHlfdGltZXIpO1xuIFx0aWYgKCF2dWIzMDAtXHUwMDNlaW50ZXJmYWNlKSB7XG4tXHRcdGtyZWZfcHV0KFx1MDAyNnZ1YjMwMC1cdTAwM2VrcmVmLCB2dWIzMDBfZGVsZXRlKTtcbitcdFx0LyogdGltZXJfZGVsZXRlX3N5bmMoKSB3aWxsIHdhaXQgZm9yIHVzICovXG4gXHR9IGVsc2UgaWYgKHZ1YjMwMC1cdTAwM2VjbWQpIHtcbiBcdFx0bW9kX3RpbWVyKFx1MDAyNnZ1YjMwMC1cdTAwM2VpbmFjdGl2aXR5X3RpbWVyLCBqaWZmaWVzICsgSFopO1xuIFx0fSBlbHNlIHtcbkBAIC0xNDUzLDcgKzE0NTMsNyBAQCBzdGF0aWMgaW50IF9fY29tbWFuZF9yZWFkX2RhdGEoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwLFxuIFx0XHRcdFx0XHRcdCAgKGxpbmVhcl9sZW5ndGggLyAxNjM4NCkpO1xuIFx0XHRcdGFkZF90aW1lcihcdTAwMjZ2dWIzMDAtXHUwMDNlc2dfdHJhbnNmZXJfdGltZXIpO1xuIFx0XHRcdHVzYl9zZ193YWl0KFx1MDAyNnZ1YjMwMC1cdTAwM2VzZ19yZXF1ZXN0KTtcbi1cdFx0XHR0aW1lcl9kZWxldGUoXHUwMDI2dnViMzAwLVx1MDAzZXNnX3RyYW5zZmVyX3RpbWVyKTtcbitcdFx0XHR0aW1lcl9kZWxldGVfc3luYyhcdTAwMjZ2dWIzMDAtXHUwMDNlc2dfdHJhbnNmZXJfdGltZXIpO1xuIFx0XHRcdGlmICh2dWIzMDAtXHUwMDNlc2dfcmVxdWVzdC5zdGF0dXMgXHUwMDNjIDApIHtcbiBcdFx0XHRcdGNtZC1cdTAwM2VlcnJvciA9IHZ1YjMwMC1cdTAwM2VzZ19yZXF1ZXN0LnN0YXR1cztcbiBcdFx0XHRcdGRhdGEtXHUwMDNlYnl0ZXNfeGZlcmVkID0gMDtcbkBAIC0xNTcwLDEwICsxNTcwLDEwIEBAIHN0YXRpYyBpbnQgX19jb21tYW5kX3dyaXRlX2RhdGEoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwLFxuIFx0XHRcdFx0XHRcdFx0ICAgbGluZWFyX2xlbmd0aCAvIDE2Mzg0KTtcbiBcdFx0XHRhZGRfdGltZXIoXHUwMDI2dnViMzAwLVx1MDAzZXNnX3RyYW5zZmVyX3RpbWVyKTtcbiBcdFx0XHR1c2Jfc2dfd2FpdChcdTAwMjZ2dWIzMDAtXHUwMDNlc2dfcmVxdWVzdCk7XG4rXHRcdFx0dGltZXJfZGVsZXRlX3N5bmMoXHUwMDI2dnViMzAwLVx1MDAzZXNnX3RyYW5zZmVyX3RpbWVyKTtcbiBcdFx0XHRpZiAoY21kLVx1MDAzZWVycm9yKSB7XG4gXHRcdFx0XHRkYXRhLVx1MDAzZWJ5dGVzX3hmZXJlZCA9IDA7XG4gXHRcdFx0fSBlbHNlIHtcbi1cdFx0XHRcdHRpbWVyX2RlbGV0ZShcdTAwMjZ2dWIzMDAtXHUwMDNlc2dfdHJhbnNmZXJfdGltZXIpO1xuIFx0XHRcdFx0aWYgKHZ1YjMwMC1cdTAwM2VzZ19yZXF1ZXN0LnN0YXR1cyBcdTAwM2MgMCkge1xuIFx0XHRcdFx0XHRjbWQtXHUwMDNlZXJyb3IgPSB2dWIzMDAtXHUwMDNlc2dfcmVxdWVzdC5zdGF0dXM7XG4gXHRcdFx0XHRcdGRhdGEtXHUwMDNlYnl0ZXNfeGZlcmVkID0gMDtcbkBAIC0yMzI3LDcgKzIzMjcsNiBAQCBzdGF0aWMgaW50IHZ1YjMwMF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlLFxuIFx0SU5JVF9XT1JLKFx1MDAyNnZ1YjMwMC1cdTAwM2VkZWFkd29yaywgdnViMzAwX2RlYWR3b3JrX3RocmVhZCk7XG4gXHRrcmVmX2luaXQoXHUwMDI2dnViMzAwLVx1MDAzZWtyZWYpO1xuIFx0dGltZXJfc2V0dXAoXHUwMDI2dnViMzAwLVx1MDAzZXNnX3RyYW5zZmVyX3RpbWVyLCB2dWIzMDBfc2dfdGltZWRfb3V0LCAwKTtcbi1cdGtyZWZfZ2V0KFx1MDAyNnZ1YjMwMC1cdTAwM2VrcmVmKTtcbiBcdHRpbWVyX3NldHVwKFx1MDAyNnZ1YjMwMC1cdTAwM2VpbmFjdGl2aXR5X3RpbWVyLFxuIFx0XHQgICAgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZCwgMCk7XG4gXHR2dWIzMDAtXHUwMDNlaW5hY3Rpdml0eV90aW1lci5leHBpcmVzID0gamlmZmllcyArIEhaO1xuQEAgLTIzNTAsNiArMjM0OSw3IEBAIHN0YXRpYyBpbnQgdnViMzAwX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsXG4gXG4gZXJyX3N0b3BfaW86XG4gXHR2dWIzMDAtXHUwMDNlaW50ZXJmYWNlID0gTlVMTDtcbitcdHRpbWVyX2RlbGV0ZV9zeW5jKFx1MDAyNnZ1YjMwMC1cdTAwM2VpbmFjdGl2aXR5X3RpbWVyKTtcbiBcdGtyZWZfcHV0KFx1MDAyNnZ1YjMwMC1cdTAwM2VrcmVmLCB2dWIzMDBfZGVsZXRlKTtcbiBcbiBcdHJldHVybiByZXR2YWw7XG5AQCAtMjM4NSw2ICsyMzg1LDcgQEAgc3RhdGljIHZvaWQgdnViMzAwX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcbiBcdFx0XHQvKiBwcmV2ZW50IG1vcmUgSS9PIGZyb20gc3RhcnRpbmcgKi9cbiBcdFx0XHR2dWIzMDAtXHUwMDNlaW50ZXJmYWNlID0gTlVMTDtcbiBcdFx0XHRtbWNfcmVtb3ZlX2hvc3QobW1jKTtcbitcdFx0XHR0aW1lcl9kZWxldGVfc3luYyhcdTAwMjZ2dWIzMDAtXHUwMDNlaW5hY3Rpdml0eV90aW1lcik7XG4gXHRcdFx0a3JlZl9wdXQoXHUwMDI2dnViMzAwLVx1MDAzZWtyZWYsIHZ1YjMwMF9kZWxldGUpO1xuIFx0XHRcdHByX2luZm8oXCJVU0IgdnViMzAwIHJlbW90ZSBTRElPIGhvc3QgY29udHJvbGxlclslZF1cIlxuIFx0XHRcdFx0XCIgbm93IGRpc2Nvbm5lY3RlZFwiLCBpZm51bSk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNDo0MDo1OS4xNjQwODM1NTNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5NzQzMTA1Nzk3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFZVQjMwMCBNTUMgSG9zdCBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIGhlcmUgdGhhdOKAmXMgdHdlYWtpbmcgdGhlIGBkcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jYCBmaWxlLiBJdCdzIG1ha2luZyBhIGZldyBpbnRlcmVzdGluZyBjaGFuZ2VzLiBGaXJzdCwgaXTigJlzIHJlcGxhY2luZyBgdGltZXJfZGVsZXRlYCB3aXRoIGB0aW1lcl9kZWxldGVfc3luY2AgZm9yIHRoZSBgc2dfdHJhbnNmZXJfdGltZXJgLiBUaGlzIGltbWVkaWF0ZWx5IHN1Z2dlc3RzIHRoZXkncmUgYWRkcmVzc2luZyBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBpbnZvbHZpbmcgdGhlIHRpbWVyLCBsaWtlbHkgcmVsYXRlZCB0byBzeW5jaHJvbml6YXRpb24uIFRoZW4sIEkgc2VlIHRoZXkndmUgcmVtb3ZlZCBzb21lIGBrcmVmYCBvcGVyYXRpb25zIOKAkyBga3JlZl9nZXRgIGFuZCBga3JlZl9wdXRgIOKAkyBhcm91bmQgdGhlIGluYWN0aXZpdHkgdGltZXIgY2FsbGJhY2sgZnVuY3Rpb24sIGB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkYC4gVGhleSd2ZSBhbHNvIGFkZGVkIGEgYHRpbWVyX2RlbGV0ZV9zeW5jYCBjYWxsIGZvciB0aGUgYGluYWN0aXZpdHlfdGltZXJgIGluIGJvdGggdGhlIHByb2JlIGVycm9yIHBhdGggYW5kIGR1cmluZyBkaXNjb25uZWN0LlxuXG5Ob3csIHRoaXMgaXMgdGhlIFVTQiBNTUMgaG9zdCBkcml2ZXIsIHRoZSBWVUIzMDAuIENvbnNpZGVyaW5nIHRoZSBuYXR1cmUgb2YgVVNCLCBJIHNob3VsZCBjb25zaWRlciByZWFjaGFiaWxpdHkgaW4gdmlydHVhbCBlbnZpcm9ubWVudHMuIEZvcnR1bmF0ZWx5LCBpdCdzIHF1aXRlIGxpa2VseSwgc2luY2Ugd2UgY2FuIGVtdWxhdGUgVVNCIGRldmljZXMgd2l0aCBVU0IgZ2FkZ2V0IG9yIGR1bW15X2hjZCwgYW5kIHN5emthbGxlciBoYXMgYSBwcmV0dHkgZ29vZCBVU0IgZnV6emVyLiBJdOKAmXMgZGVmaW5pdGVseSBzb21ldGhpbmcgdGhhdCBjYW4gYmUgdGFyZ2V0ZWQuIFRvIHVuZGVyc3RhbmQgdGhpcyBwcm9wZXJseSwgSSBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIHRvIHNlZSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLiBUaGlzIHNob3VsZCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoaXMgY29kZSBpcyBleHBvc2VkIGFuZCB3aGF0IGl0cyBkZXBlbmRlbmNpZXMgYXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTk1LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDQ6NDE6MDguOTA3MTkzNjRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDMzNDM2NDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidnViMzAwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL21tYy9ob3N0L0tjb25maWc9OTIwPWNvbmZpZyBNTUNfVlVCMzAwXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWctOTQ0LVxcdCAgVG8gY29tcGlsZSB0aGlzIG1tYyBob3N0IGNvbnRyb2xsZXIgZHJpdmVyIGFzIGEgbW9kdWxlLFxcbmRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZzo5NDU6XFx0ICBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHZ1YjMwMC5cXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWctOTQ2LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNDo0MTowOC45NTA1NDIyNDVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxODExNjg4NTU2NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEZXBlbmRlbmN5IENoZWNrOiBgTU1DX1ZVQjMwMGAqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhlIGRlcGVuZGVuY2llcyBmb3IgYE1NQ19WVUIzMDBgLiBUaGlzIGZlZWxzIGxpa2UgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBJIG5lZWQgdG8gcXVpY2tseSBhc2NlcnRhaW4gdGhlIHNjb3BlIG9mIHdoYXQgcmVsaWVzIG9uIHRoaXMgY29tcG9uZW50LCBib3RoIHVwc3RyZWFtIGFuZCBkb3duc3RyZWFtLiBTcGVjaWZpY2FsbHksIEknbSB0aGlua2luZyBhYm91dCB0aGUgc3RhbmRhcmQgc3VzcGVjdHM6IHdoYXQgbGlicmFyaWVzLCBvdGhlciBtb2R1bGVzLCBwb3RlbnRpYWxseSBldmVuIGV4dGVybmFsIHNlcnZpY2VzLCBhcmUgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aWVkIHRvIGl0cyBmdW5jdGlvbmFsaXR5PyBLbm93aW5nIHRoZSBmdWxsIGRlcGVuZGVuY3kgZ3JhcGggaXMgY3J1Y2lhbCBiZWZvcmUgYW55IG1vZGlmaWNhdGlvbiwgdXBkYXRlIG9yIG1pZ3JhdGlvbi4gSSBuZWVkIHRvIGJlIGVzcGVjaWFsbHkgY29nbml6YW50IG9mIHBvdGVudGlhbCBjaXJjdWxhciBkZXBlbmRlbmNpZXMgYW5kIGltcGxpY2l0IGFzc3VtcHRpb25zIGJ1aWx0IGludG8gYW55IGxpbmtlZCBjb2RlLiBBcmUgdGhlcmUgYW55IGtub3duIGlzc3VlcyBmbGFnZ2VkIGluIHJlbGF0ZWQgZG9jdW1lbnRhdGlvbiBvciBpbnRlcm5hbCBidWcgdHJhY2tlcnM/IEtub3dpbmcgdGhpcyBpbmZvcm1hdGlvbiB3aWxsIGdyZWF0bHkgaGVscCB0byBwcmlvcml0aXplIG15IHdvcmsuIEkgbmVlZCB0byBtYWtlIHN1cmUgdG8gYWNjb3VudCBmb3IgaW1wbGljaXQgZGVwZW5kZW5jaWVzIGFzIHdlbGwgLSB0aGluZ3MgdGhhdCBtaWdodCBjYWxsIGBNTUNfVlVCMzAwYCdzIEFQSSBidXQgYXJlIG5vdCBkaXJlY3RseSBsaXN0ZWQgYXMgZGVwZW5kZW50cyBpbiBhIHN0YW5kYXJkIHRvb2wuIFRpbWUgdG8gcHVsbCB1cCB0aGUgZGVwZW5kZW5jeSBhbmFseXplciBhbmQgZGlnIGluLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjU1LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDQ6NDE6MjcuMDY3NDMwMzkyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1NjYyNzg1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNTUNfVlVCMzAwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL21tYy9ob3N0L0tjb25maWc9OTEwPWNvbmZpZyBNTUNfSlo0NzQwXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWctOTE5LVxcbmRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZzo5MjA6Y29uZmlnIE1NQ19WVUIzMDBcXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWctOTIxLVxcdHRyaXN0YXRlIFxcXCJWVUIzMDAgVVNCIHRvIFNESU8vU0QvTU1DIEhvc3QgQ29udHJvbGxlciBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNDo0MToyNy4xMTMwOTgxOTdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzQ0MTQ5NjAyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBNTUMgSG9zdCBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgbGV0J3MgemVybyBpbiBvbiB0aGUgYGRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZ2AgZmlsZSwgc3BlY2lmaWNhbGx5IGFyb3VuZCBsaW5lIDkyMC4gSSdtIGxpa2VseSBpbnRlcmVzdGVkIGluIGhvdyBzb21lIHBhcnRpY3VsYXIgZmVhdHVyZSBvciBvcHRpb24gcmVsYXRlZCB0byBNTUMgaG9zdCBjb250cm9sbGVycyBpcyBiZWluZyBjb25maWd1cmVkLiBHaXZlbiB0aGUgbG9jYXRpb24gd2l0aGluIEtjb25maWcsIEknbSBleHBlY3RpbmcgdG8gZmluZCBjb25kaXRpb25hbCBjb21waWxhdGlvbiBvcHRpb25zIG9yIGRlcGVuZGVuY2llcyBiZWluZyBkZWZpbmVkLiBNeSBnb2FsIGlzIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgc3BlY2lmaWMgYXNwZWN0IGlzIGNvbnRyb2xsZWQsIHdoYXQgb3RoZXIgZmVhdHVyZXMgaXQgbWlnaHQgZGVwZW5kIG9uLCBhbmQgcG90ZW50aWFsbHksIHdoYXQgaGFyZHdhcmUgcGxhdGZvcm1zIG9yIGtlcm5lbCBjb25maWd1cmF0aW9ucyBlbmFibGUgb3IgZGlzYWJsZSBpdC4gUGVyaGFwcyBJJ20gdHJ5aW5nIHRvIGRlYnVnIGFuIGlzc3VlLCBvciBzaW1wbHkgdW5kZXJzdGFuZCB0aGUgbG9naWMgYmVoaW5kIGEgbmV3IE1NQyBob3N0IGRyaXZlciBJJ20gbG9va2luZyBhdC4gTWF5YmUgSSdtIHRyeWluZyB0byBidWlsZCBhIGN1c3RvbSBrZXJuZWwgY29uZmlndXJhdGlvbiwgYW5kIG5lZWQgdG8ga25vdyB0aGUgaW1wbGljYXRpb25zIG9mIGVuYWJsaW5nIGEgcGFydGljdWxhciBNTUMtcmVsYXRlZCBvcHRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwNDEsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNDo0MTozMC40NTcyNTAxOTlaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDgxMjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDkxNSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDkxNTpcXHRcXHQgIEpaNDc0MCwgSlo0NzUwLCBKWjQ3NzAgYW5kIEpaNDc4MCBTb0NzLlxcbiA5MTY6XFx0XFxuIDkxNzpcXHRcXHQgIElmIHlvdSBoYXZlIGEgYm9hcmQgYmFzZWQgb24gc3VjaCBhIFNvQyBhbmQgd2l0aCBhIFNEL01NQyBzbG90LFxcbiA5MTg6XFx0XFx0ICBzYXkgWSBvciBNIGhlcmUuXFxuIDkxOTpcXHRcXG4gOTIwOlxcdGNvbmZpZyBNTUNfVlVCMzAwXFxuIDkyMTpcXHRcXHR0cmlzdGF0ZSBcXFwiVlVCMzAwIFVTQiB0byBTRElPL1NEL01NQyBIb3N0IENvbnRyb2xsZXIgc3VwcG9ydFxcXCJcXG4gOTIyOlxcdFxcdGRlcGVuZHMgb24gVVNCXFxuIDkyMzpcXHRcXHRoZWxwXFxuIDkyNDpcXHRcXHQgIFRoaXMgc2VsZWN0cyBzdXBwb3J0IGZvciBFbGFuIERpZ2l0YWwgU3lzdGVtcycgVlVCMzAwIGNoaXAuXFxuIDkyNTpcXHRcXG4gOTI2OlxcdFxcdCAgVGhlIFZVQjMwMCBpcyBhIFVTQi1TRElPIEhvc3QgQ29udHJvbGxlciBJbnRlcmZhY2UgY2hpcFxcbiA5Mjc6XFx0XFx0ICB0aGF0IGVuYWJsZXMgdGhlIGhvc3QgY29tcHV0ZXIgdG8gdXNlIFNESU8vU0QvTU1DIGNhcmRzXFxuIDkyODpcXHRcXHQgIHZpYSBhIFVTQiAyLjAgb3IgVVNCIDEuMSBob3N0LlxcbiA5Mjk6XFx0XFxuIDkzMDpcXHRcXHQgIFRoZSBWVUIzMDAgY2hpcCB3aWxsIGJlIGZvdW5kIGluIGJvdGggcGh5c2ljYWxseSBzZXBhcmF0ZVxcbiA5MzE6XFx0XFx0ICBVU0IgdG8gU0RJTy9TRC9NTUMgYWRhcHRlcnMgYW5kIGVtYmVkZGVkIG9uIHNvbWUgbW90aGVyYm9hcmRzLlxcbiA5MzI6XFx0XFxuIDkzMzpcXHRcXHQgIFRoZSBWVUIzMDAgY2hpcCBzdXBwb3J0cyBTRCBhbmQgTU1DIG1lbW9yeSBjYXJkcyBpbiBhZGRpdGlvblxcbiA5MzQ6XFx0XFx0ICB0byBzaW5nbGUgYW5kIG11bHRpZnVuY3Rpb24gU0RJTyBjYXJkcy5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDQ6NDE6MzAuNDU3MzYwMTA5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgwNTQ0MTg4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBmcm9tIGFuIGV4cGVydCdzIHBlcnNwZWN0aXZlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBNTUNfVlVCMzAwIERyaXZlciBEZXBlbmRlbmNpZXMqKlxuXG5SaWdodCwgc28gYE1NQ19WVUIzMDBgIC0gdGhhdCdzIGEgZHJpdmVyIGZvciBhIHNwZWNpZmljIE1NQyBob3N0IGNvbnRyb2xsZXIsIGFuZCBpdCBsb29rcyBsaWtlIGl0J3MgYnVpbHQgb24gdG9wIG9mIGJvdGggYFVTQmAgYW5kIGBNTUNgIGl0c2VsZi4gVGhhdCBtZWFucyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGludGVyYWN0aW9uIHdvcmtzLiBNeSBmaXJzdCBzdGVwIGlzIHRvIHplcm8gaW4gb24gdGhlIHJlbGV2YW50IGNvZGUuIEknbSBoZWFkaW5nIHN0cmFpZ2h0IGZvciB0aGUgc291cmNlOiBgZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuY2AuIFRoaXMgaXMgd2hlcmUgdGhlIGNvcmUgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBgTU1DX1ZVQjMwMGAgZHJpdmVyIHJlc2lkZXMsIGFuZCBpdCdsbCBjb250YWluIHRoZSBmdW5jdGlvbnMgSSBuZWVkIHRvIGRpc3NlY3QuIEknbGwgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGUgY29udHJvbGxlciBpbnRlcmZhY2VzIHdpdGggdGhlIFVTQiBidXMgYW5kIHRoZW4sIGhvdyB0aGF0IHRyYW5zbGF0ZXMgdG8gTU1DIGNvbW1hbmRzIGFuZCBkYXRhIHRyYW5zZmVyLiBMZXQncyBzZWUgd2hhdCBpbnRlcmVzdGluZyB0aWRiaXRzIGFyZSBpbiB0aGF0IGAuY2AgZmlsZS4gSSdtIGV4cGVjdGluZyB0byBmaW5kIGludGVyZXN0aW5nIGZ1bmN0aW9ucyB0byB3b3JrIHdpdGguXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2NTMsIk91dHB1dFRva2VucyI6NjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA0OjQxOjM0LjI2MjgwNDU3NFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM3NzE1NDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiX19jb21tYW5kX3JlYWRfZGF0YXxfX2NvbW1hbmRfd3JpdGVfZGF0YXx2dWIzMDBfcHJvYmV8dnViMzAwX2Rpc2Nvbm5lY3RcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTEzOTY9c3RhdGljIGludCB2dWIzMDBfdXNiX2J1bGtfbXNnKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMTQyOC1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjE0Mjk6c3RhdGljIGludCBfX2NvbW1hbmRfcmVhZF9kYXRhKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE0MzAtXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBtbWNfY29tbWFuZCAqY21kLCBzdHJ1Y3QgbW1jX2RhdGEgKmRhdGEpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE1MDAtXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoxNTAxOnN0YXRpYyBpbnQgX19jb21tYW5kX3dyaXRlX2RhdGEoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwLFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMTUwMi1cXHRcXHRcXHRcXHRzdHJ1Y3QgbW1jX2NvbW1hbmQgKmNtZCwgc3RydWN0IG1tY19kYXRhICpkYXRhKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz0xNzM3PXN0YXRpYyB2b2lkIHZ1YjMwMF9jbW5kd29ya190aHJlYWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNzY3LVxcdFxcdGVsc2UgaWYgKE1NQ19EQVRBX1JFQUQgXFx1MDAyNiBkYXRhLVxcdTAwM2VmbGFncylcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjE3Njg6XFx0XFx0XFx0ZGF0YV9sZW5ndGggPSBfX2NvbW1hbmRfcmVhZF9kYXRhKHZ1YjMwMCwgY21kLCBkYXRhKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE3NjktXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MTc3MDpcXHRcXHRcXHRkYXRhX2xlbmd0aCA9IF9fY29tbWFuZF93cml0ZV9kYXRhKHZ1YjMwMCwgY21kLCBkYXRhKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE3NzEtXFx0XFx0cmVzZXRfZGV2aWNlID0gX192dWIzMDBfY29tbWFuZF9yZXNwb25zZSh2dWIzMDAsIGNtZCxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MjA4NT1zdGF0aWMgY29uc3Qgc3RydWN0IG1tY19ob3N0X29wcyB2dWIzMDBfbW1jX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjA5MS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjIwOTI6c3RhdGljIGludCB2dWIzMDBfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTIwOTMtXFx0XFx0XFx0Y29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yMzcyLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MjM3MzpzdGF0aWMgdm9pZCB2dWIzMDBfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjM3NC17XFx0XFx0XFx0XFx0LyogTk9UIGlycSAqL1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz0yNDI3PXN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciB2dWIzMDBfZHJpdmVyID0ge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjQyOC1cXHQubmFtZSA9IFxcXCJ2dWIzMDBcXFwiLFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MjQyOTpcXHQucHJvYmUgPSB2dWIzMDBfcHJvYmUsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoyNDMwOlxcdC5kaXNjb25uZWN0ID0gdnViMzAwX2Rpc2Nvbm5lY3QsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yNDMxLVxcdC5zdXNwZW5kID0gdnViMzAwX3N1c3BlbmQsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA0OjQxOjM0LjMwNjU4MjM5OVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4MjI0MzIyOTY1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVlVCMzAwIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgc2V2ZXJhbCBrZXkgZnVuY3Rpb25zIHdpdGhpbiB0aGUgYHZ1YjMwMGAgZHJpdmVyLiBJIHNlZSBpdCdzIG1vZGlmeWluZyBgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZGAsIGBfX2NvbW1hbmRfcmVhZF9kYXRhYCwgYF9fY29tbWFuZF93cml0ZV9kYXRhYCwgYHZ1YjMwMF9wcm9iZWAsIGFuZCBgdnViMzAwX2Rpc2Nvbm5lY3RgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gaW5jbHVkZSB0aGVzZSBpbiBgRm9jdXNTeW1ib2xzYC5cblxuTm93LCBkaWdnaW5nIGEgYml0IGRlZXBlciwgSSByZW1lbWJlciBgX19jb21tYW5kX3JlYWRfZGF0YWAgYW5kIGBfX2NvbW1hbmRfd3JpdGVfZGF0YWAgYXJlIHN0YXRpYyBmdW5jdGlvbnMgY2FsbGVkIGZyb20gYHZ1YjMwMF9jbW5kd29ya190aHJlYWRgLiBTaW5jZSB0aGUgdGhyZWFkIGlzIGEgd29ya3F1ZXVlIGZ1bmN0aW9uLCB0aGF0IGxvb2tzIGxpa2UgYSB2ZXJ5IGdvb2QgZW50cnkgcG9pbnQgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZy4gU2ltaWxhcmx5LCBgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZGAgaXMgYSB0aW1lciBjYWxsYmFjaywgc28gdGhhdCdzIGFub3RoZXIgcG90ZW50aWFsbHkgZXhjZWxsZW50IHN0YXJ0aW5nIHBvaW50LiBBbmQgb2YgY291cnNlLCBgdnViMzAwX3Byb2JlYCBhbmQgYHZ1YjMwMF9kaXNjb25uZWN0YCBhcmUgdGhlIHN0YW5kYXJkIFVTQiBkcml2ZXIgY2FsbGJhY2tzLCBhbHNvIGltcG9ydGFudCB0byBrZWVwIGluIGZvY3VzLlxuXG5OZXh0LCBJIG5lZWQgdG8gY2hlY2sgdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9ucy4gTGV0J3Mgc2VlLi4uIGBNTUNfVlVCMzAwYC4uLiBJdCBkZXBlbmRzIG9uIGBVU0JgIGFuZCBgTU1DYC4gYE1NQ2AgaXMgdXN1YWxseSBlbmFibGVkIGluIHN5emthbGxlciBieSBkZWZhdWx0LCBzbyBgTU1DX1ZVQjMwMGAgaXMgcHJvYmFibHkgdGhlIG1haW4gb25lIHdlIG5lZWQgdG8gZm9jdXMgb24uXG5cbkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQncyBsb29rIGF0IHRoZSBgZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnYCBmaWxlLiBZZXMsIGBjb25maWcgTU1DX1ZVQjMwMGAgZGVwZW5kcyBvbiBgVVNCYCBhbmQgaXMgd2l0aGluIHRoZSBgbWVudWNvbmZpZyBNTUNgIHdoaWNoIGluIHR1cm4gZGVwZW5kcyBvbiBgSEFTX0lPTUVNYC5cblxuVGhlcmVmb3JlLCB0aGUgYEVuYWJsZUNvbmZpZ3NgIGxpc3Qgc2hvdWxkIGp1c3QgYmUgYFtcIk1NQ19WVUIzMDBcIl1gLiBUaGF0IHNob3VsZCBiZSBzdWZmaWNpZW50LlxuXG5Pa2F5LCBub3csIGxldCdzIGp1c3QgZG8gYSBxdWljayBzYW5pdHkgY2hlY2sgYW5kIG1ha2Ugc3VyZSB0aGF0IGB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkYCBpc24ndCBzdGF0aWMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU4OTUsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDQ6NDE6NDIuNTMwOTA4MTE0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzQ4Njc4NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz03MDk9c3RhdGljIHZvaWQgdnViMzAwX2RlYWR3b3JrX3RocmVhZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc0MS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc0MjpzdGF0aWMgdm9pZCB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzQzLXtcXHRcXHRcXHRcXHQvKiBzb2Z0aXJxICovXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTIwOTI9c3RhdGljIGludCB2dWIzMDBfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjMzMC1cXHR0aW1lcl9zZXR1cChcXHUwMDI2dnViMzAwLVxcdTAwM2VpbmFjdGl2aXR5X3RpbWVyLFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MjMzMTpcXHRcXHQgICAgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZCwgMCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yMzMyLVxcdHZ1YjMwMC1cXHUwMDNlaW5hY3Rpdml0eV90aW1lci5leHBpcmVzID0gamlmZmllcyArIEhaO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNDo0MTo0Mi41NzQ0MDEwNloiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjc3ODkzNzU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUuLi5cblxuKipBbmFseXppbmcgdGhpcyBFbnRyeSBQb2ludCoqXG5cblJpZ2h0LCBzbyB0aGlzIGNvZGUgc25pcHBldCB1c2VzIGEgdGltZXIgY2FsbGJhY2sg4oCTIEkgY2FuIHNlZSB0aGF0LiBFdmVuIHRob3VnaCB0aGUgY29udGV4dCBtaWdodCAqYXBwZWFyKiBzdGF0aWMsIGJlY2F1c2UgaXQncyBpbml0aWF0ZWQgYnkgYSB0aW1lciwgaXQgZXNzZW50aWFsbHkgYmVjb21lcyBhbiBlbnRyeSBwb2ludCBpbnRvIHRoZSBzeXN0ZW0gYXQgcmVndWxhciBpbnRlcnZhbHMuIFRoYXQgY2hhbmdlcyBob3cgSSBhcHByb2FjaCB0aGlzLCBpdCdzIG5vdCBqdXN0IHNvbWUgdmFyaWFibGUuIEkgbmVlZCB0byB0cmVhdCBpdCBkaWZmZXJlbnRseSBhcyBpdCdzIHRoZSBzdGFydCBwb2ludCBvZiBhIHByb2Nlc3MuXG5cbk5vdywgd2hlcmUgZG9lcyB0aGlzIHRpbWVyIGxlYWQ/IExldCBtZSBleGFtaW5lIHRoZSBgdnViMzAwX2NtbmR3b3JrX3RocmVhZGAgZnVuY3Rpb24gdG8gdW5kZXJzdGFuZCB0aGUgcHJvY2Vzcy4gVGhhdCdzIHRoZSBrZXkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcxMTQsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNDo0MTo0NS44NTIzMDIyMDlaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzNDE1OTQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZ1YjMwMF9jbW5kd29ya190aHJlYWRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTU2OD1zdGF0aWMgdm9pZCBjaGVja192dWIzMDBfcG9ydF9zdGF0dXMoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NzEtXFx0ICogY21kX211dGV4IGlzIGhlbGQgYnkgdnViMzAwX3BvbGx3b3JrX3RocmVhZCxcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU3MjpcXHQgKiB2dWIzMDBfZGVhZHdvcmtfdGhyZWFkIG9yIHZ1YjMwMF9jbW5kd29ya190aHJlYWRcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU3My1cXHQgKi9cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9ODkwPXN0YXRpYyB2b2lkIHNlbmRfY29tbWFuZChzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDApXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04OTEte1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODkyOlxcdC8qIGNtZF9tdXRleCBpcyBoZWxkIGJ5IHZ1YjMwMF9jbW5kd29ya190aHJlYWQgKi9cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg5My1cXHRzdHJ1Y3QgbW1jX2NvbW1hbmQgKmNtZCA9IHZ1YjMwMC1cXHUwMDNlY21kO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz0xMzk2PXN0YXRpYyBpbnQgdnViMzAwX3VzYl9idWxrX21zZyhzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTEzOTkte1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MTQwMDpcXHQvKiBjbWRfbXV0ZXggaXMgaGVsZCBieSB2dWIzMDBfY21uZHdvcmtfdGhyZWFkICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNDAxLVxcdHN0cnVjdCB1c2JfZGV2aWNlICp1c2JfZGV2ID0gdnViMzAwLVxcdTAwM2V1ZGV2O1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz0xNDI5PXN0YXRpYyBpbnQgX19jb21tYW5kX3JlYWRfZGF0YShzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE0MzEte1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MTQzMjpcXHQvKiBjbWRfbXV0ZXggaXMgaGVsZCBieSB2dWIzMDBfY21uZHdvcmtfdGhyZWFkICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNDMzLVxcdGludCBsaW5lYXJfbGVuZ3RoID0gdnViMzAwLVxcdTAwM2VkYXRhc2l6ZTtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MTUwMT1zdGF0aWMgaW50IF9fY29tbWFuZF93cml0ZV9kYXRhKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMTUwMy17XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoxNTA0OlxcdC8qIGNtZF9tdXRleCBpcyBoZWxkIGJ5IHZ1YjMwMF9jbW5kd29ya190aHJlYWQgKi9cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE1MDUtXFx0dW5zaWduZWQgcGlwZSA9IHVzYl9zbmRidWxrcGlwZSh2dWIzMDAtXFx1MDAzZXVkZXYsIHZ1YjMwMC1cXHUwMDNlZGF0YV9vdXRfZXApO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz0xNTg5PXN0YXRpYyBib29sIF9fdnViMzAwX2NvbW1hbmRfcmVzcG9uc2Uoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwLFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNTkyLXtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjE1OTM6XFx0LyogY21kX211dGV4IGlzIGhlbGQgYnkgdnViMzAwX2NtbmR3b3JrX3RocmVhZCAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMTU5NC1cXHRsb25nIHJlc3ByZXR2YWw7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTE3MDU9c3RhdGljIHZvaWQgY29uc3RydWN0X3JlcXVlc3RfcmVzcG9uc2Uoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwLFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNzM2LS8qIHRoaXMgdGhyZWFkIHJ1bnMgb25seSB3aGVuIHRoZXJlIGlzIGFuIHVwcGVyIGxldmVsIGNvbW1hbmQgcmVxIG91dHN0YW5kaW5nICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoxNzM3OnN0YXRpYyB2b2lkIHZ1YjMwMF9jbW5kd29ya190aHJlYWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMTczOC17XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTIwOTI9c3RhdGljIGludCB2dWIzMDBfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjMyNS1cXHRJTklUX0RFTEFZRURfV09SSyhcXHUwMDI2dnViMzAwLVxcdTAwM2Vwb2xsd29yaywgdnViMzAwX3BvbGx3b3JrX3RocmVhZCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoyMzI2OlxcdElOSVRfV09SSyhcXHUwMDI2dnViMzAwLVxcdTAwM2VjbW5kd29yaywgdnViMzAwX2NtbmR3b3JrX3RocmVhZCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yMzI3LVxcdElOSVRfV09SSyhcXHUwMDI2dnViMzAwLVxcdTAwM2VkZWFkd29yaywgdnViMzAwX2RlYWR3b3JrX3RocmVhZCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA0OjQxOjQ1Ljg5NTcyNjU2NFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4NDcwNjAzODEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVlVCMzAwIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgYHZ1YjMwMF9jbW5kd29ya190aHJlYWRgIGlzIGEgd29ya3F1ZXVlIGZ1bmN0aW9uLCB0aGF0IG11Y2ggaXMgY2xlYXIuIFRoZSBwcmltYXJ5IGZvY3VzIG9mIHRoaXMgcGF0Y2ggc2VlbXMgdG8gYWRkcmVzcyBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVhayBpc3N1ZSB3aXRoaW4gdGhlIGB2dWIzMDAuY2AgZHJpdmVyLCBzcGVjaWZpY2FsbHkgY29uY2VybmluZyB0aGUgaW5jb3JyZWN0IHVzZSBvZiBgdGltZXJfZGVsZXRlYCBpbnN0ZWFkIG9mIGB0aW1lcl9kZWxldGVfc3luY2AgYW5kIGFsc28gdGhlIGluY29ycmVjdCB1c2Ugb2YgYGtyZWZfZ2V0YC9ga3JlZl9wdXRgLiBHaXZlbiB0aGlzIGZ1bmN0aW9uYWwgaW1wYWN0LCBmdXp6aW5nIGlzIGRlZmluaXRlbHkgYSB3b3J0aHdoaWxlIG5leHQgc3RlcC5cblxuTGV0J3MgcXVpY2tseSByZXZpZXcgdGhlIGBGb2N1c1N5bWJvbHNgLiBXZSdyZSBsb29raW5nIGF0IGB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkYCwgYHZ1YjMwMF9jbW5kd29ya190aHJlYWRgLCBgdnViMzAwX3Byb2JlYCwgYW5kIGB2dWIzMDBfZGlzY29ubmVjdGAuXG5cbk5vdywgYmVmb3JlIGRpdmluZyB0b28gZGVlcCwgaXQncyBnb29kIHByYWN0aWNlIHRvIHF1aWNrbHkgY2hlY2sgZm9yIG90aGVyIG1vZGlmaWNhdGlvbnMgaW4gdGhlIGNvZGUuIEFoLCBsb29rcyBsaWtlIGBfX2NvbW1hbmRfcmVhZF9kYXRhYCBhbmQgYF9fY29tbWFuZF93cml0ZV9kYXRhYCBhcmUgYWxzbyBtb2RpZmllZC4gVGhleSdyZSBzdGF0aWMgYW5kIGNhbGxlZCBmcm9tIGB2dWIzMDBfY21uZHdvcmtfdGhyZWFkYCwgd2hpY2ggbWFrZXMgYHZ1YjMwMF9jbW5kd29ya190aHJlYWRgIGFuIGV2ZW4gbW9yZSBjb21wZWxsaW5nIGVudHJ5cG9pbnQgZm9yIGFuYWx5c2lzIGFuZCBkZWJ1Z2dpbmcuXG5cbkFsc28gb2YgaW50ZXJlc3QgaXMgYHZ1YjMwMF9zZ190aW1lZF9vdXRgLCB3aGljaCBhcHBlYXJzIHRvIGJlIHRoZSB0aW1lciBjYWxsYmFjayBmb3IgYHNnX3RyYW5zZmVyX3RpbWVyYC4gVGhpcyBzaG91bGQgYmUgbG9va2VkIGF0IGFsb25nc2lkZSB0aGUgY29yZSBjaGFuZ2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4NjAxLCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA0OjQxOjU0LjM2NjMzMzc1NVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDUyODY1NjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidnViMzAwX3NnX3RpbWVkX291dFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9ODkwPXN0YXRpYyB2b2lkIHNlbmRfY29tbWFuZChzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDApXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTExODEtICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoxMTgyOnN0YXRpYyB2b2lkIHZ1YjMwMF9zZ190aW1lZF9vdXQoc3RydWN0IHRpbWVyX2xpc3QgKnQpXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xMTgzLXtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MjA5Mj1zdGF0aWMgaW50IHZ1YjMwMF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlLFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yMzI4LVxcdGtyZWZfaW5pdChcXHUwMDI2dnViMzAwLVxcdTAwM2VrcmVmKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjIzMjk6XFx0dGltZXJfc2V0dXAoXFx1MDAyNnZ1YjMwMC1cXHUwMDNlc2dfdHJhbnNmZXJfdGltZXIsIHZ1YjMwMF9zZ190aW1lZF9vdXQsIDApO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjMzMC1cXHR0aW1lcl9zZXR1cChcXHUwMDI2dnViMzAwLVxcdTAwM2VpbmFjdGl2aXR5X3RpbWVyLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNDo0MTo1NC40MTE2MjUzM1oiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTg5Mjk2OTE5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXNpcyBvZiB0aGUgVlVCMzAwIFVTQiBNTUMgSG9zdCBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGNvbmZpcm1lZCB0aGF0IGB2dWIzMDBfc2dfdGltZWRfb3V0YCBpcyBpbmRlZWQgdGhlIHRpbWVyIGNhbGxiYWNrIHdlJ3JlIGFmdGVyLCBzbyBJIHNob3VsZCBkZWZpbml0ZWx5IGluY2x1ZGUgaXQgaW4gYEZvY3VzU3ltYm9sc2AuIExldCdzIGdldCB0aGF0IGxpc3QgZmluYWxpemVkLlxuXG5NeSBgRm9jdXNTeW1ib2xzYCBhcmU6IGB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkYCwgYHZ1YjMwMF9jbW5kd29ya190aHJlYWRgLCBgdnViMzAwX3Byb2JlYCwgYHZ1YjMwMF9kaXNjb25uZWN0YCwgYW5kIG5vdywgaW1wb3J0YW50bHksIGB2dWIzMDBfc2dfdGltZWRfb3V0YC5cblxuUmlnaHQsIGxldCdzIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQgYHZ1YjMwMF9wcm9iZWAgYW5kIGB2dWIzMDBfZGlzY29ubmVjdGAgYXJlIHNlbnNpYmxlIGVudHJ5cG9pbnRzLiBZZXAsIHRoZXkncmUgVVNCIGRyaXZlciBjYWxsYmFja3MsIHNvIHRoZXkncmUgc29saWQgY2hvaWNlcyBmb3IgZnV6emluZyBlbnRyeSBwb2ludHMuXG5cbk5leHQsIEkgbmVlZCB0byBjaGVjayB0aGUgY29uZmlndXJhdGlvbiByZXF1aXJlbWVudHMuIElzIGBNTUNfVlVCMzAwYCB0aGUgb25seSBjb25maWcgbmVlZGVkIGZvciB0aGlzIGRyaXZlcj8gWWVzLCBpdCBhcHBlYXJzIHRvIGJlLiBUaGF0J3MgYSBnb29kIHN0YXJ0LlxuXG5IbW0sIHdhaXQgYSBtaW51dGUsIHRoZSBwYXRjaCAqYWxzbyogbW9kaWZpZXMgYHZ1YjMwMF9wcm9iZWAgYW5kIGB2dWIzMDBfZGlzY29ubmVjdGAuIFRoYXQncyBpbXBvcnRhbnQ7IGl0IHJlaW5mb3JjZXMgdGhlaXIgc2lnbmlmaWNhbmNlIGFzIGtleSBmdW5jdGlvbnMuXG5cblRoZSBwYXRjaCdzIHJlYXNvbmluZyBtYWtlcyBzZW5zZTogSXQncyBhZGRyZXNzaW5nIHRpbWVyIHN5bmNocm9uaXphdGlvbiBhbmQgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlcyBpbiB0aGUgVlVCMzAwIFVTQiBNTUMgaG9zdCBkcml2ZXIuIFNwZWNpZmljYWxseSwgaXQncyBzd2FwcGluZyBgdGltZXJfZGVsZXRlYCBmb3IgYHRpbWVyX2RlbGV0ZV9zeW5jYCB0byBtaXRpZ2F0ZSB1c2UtYWZ0ZXItZnJlZSBidWdzIGFuZCBmaXhpbmcgYSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUgaW4gdGhlIGluYWN0aXZpdHkgdGltZXIgY2FsbGJhY2suIFRoZXNlIGFyZSBmdW5kYW1lbnRhbCBjaGFuZ2VzIGltcGFjdGluZyB0aGUgZHJpdmVyJ3MgbGlmZWN5Y2xlIGFuZCBjb21tYW5kIGV4ZWN1dGlvbiBwYXRocywgYW5kIHRoZXkncmUgZGVmaW5pdGVseSByZWFjaGFibGUgdmlhIFVTQiBlbXVsYXRpb24uIFRoaXMgaXMgd2hlcmUgdGhlIHZ1bG5lcmFiaWxpdGllcyBjb3VsZCBsaWUuXG5cbkp1c3QgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLCBJJ2xsIGRvdWJsZS1jaGVjayBgTU1DX1ZVQjMwMGAncyBkZXBlbmRlbmNpZXMuIGBkZXBlbmRzIG9uIFVTQmAgYW5kIGBNTUNgLiBCb3RoIGFyZSBzdGFuZGFyZCBzdWJzeXN0ZW1zOyBubyBzdXJwcmlzZXMgdGhlcmUuIFNvLCB5ZXMsIGBNTUNfVlVCMzAwYCBpcyBzdWZmaWNpZW50LlxuXG5Pa2F5LCBldmVyeXRoaW5nIGxvb2tzIGdvb2QuIFRpbWUgdG8gY29uc3RydWN0IHRoZSBmaW5hbCByZXNwb25zZS5cblxuYGBganNvblxue1xuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkXCIsXG4gICAgXCJ2dWIzMDBfY21uZHdvcmtfdGhyZWFkXCIsXG4gICAgXCJ2dWIzMDBfcHJvYmVcIixcbiAgICBcInZ1YjMwMF9kaXNjb25uZWN0XCIsXG4gICAgXCJ2dWIzMDBfc2dfdGltZWRfb3V0XCJcbiAgXSxcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1NQ19WVUIzMDBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyB0aW1lciBzeW5jaHJvbml6YXRpb24gYW5kIHJlZmVyZW5jZSBjb3VudGluZyBpc3N1ZXMgaW4gdGhlIFZVQjMwMCBVU0IgTU1DIGhvc3QgZHJpdmVyLiBJdCByZXBsYWNlcyB0aW1lcl9kZWxldGUgd2l0aCB0aW1lcl9kZWxldGVfc3luYyB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVlIGJ1Z3MgYW5kIGZpeGVzIGEgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlIGluIHRoZSBpbmFjdGl2aXR5IHRpbWVyIGNhbGxiYWNrLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBkcml2ZXIncyBsaWZlY3ljbGUgYW5kIGNvbW1hbmQgZXhlY3V0aW9uIHBhdGhzLCB3aGljaCBjYW4gYmUgcmVhY2hlZCB2aWEgVVNCIGVtdWxhdGlvbi5cIlxufVxuYGBgXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk1MzUsIk91dHB1dFRva2VucyI6MTc3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTU3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA0OjQyOjA2LjMwNDYwMTUxM1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk5MzAxMjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNTUNfVlVCMzAwXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZFwiLFxuICAgIFwidnViMzAwX2NtbmR3b3JrX3RocmVhZFwiLFxuICAgIFwidnViMzAwX3Byb2JlXCIsXG4gICAgXCJ2dWIzMDBfZGlzY29ubmVjdFwiLFxuICAgIFwidnViMzAwX3NnX3RpbWVkX291dFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHRpbWVyIHN5bmNocm9uaXphdGlvbiBhbmQgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlcyBpbiB0aGUgVlVCMzAwIFVTQiBNTUMgaG9zdCBkcml2ZXIuIEl0IHJlcGxhY2VzIHRpbWVyX2RlbGV0ZSB3aXRoIHRpbWVyX2RlbGV0ZV9zeW5jIHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgYnVncyBhbmQgZml4ZXMgYSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUgaW4gdGhlIGluYWN0aXZpdHkgdGltZXIgY2FsbGJhY2suIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGRyaXZlcidzIGxpZmVjeWNsZSBhbmQgY29tbWFuZCBleGVjdXRpb24gcGF0aHMsIHdoaWNoIGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZW11bGF0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1NQ19WVUIzMDBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkXCIsXG4gICAgXCJ2dWIzMDBfY21uZHdvcmtfdGhyZWFkXCIsXG4gICAgXCJ2dWIzMDBfcHJvYmVcIixcbiAgICBcInZ1YjMwMF9kaXNjb25uZWN0XCIsXG4gICAgXCJ2dWIzMDBfc2dfdGltZWRfb3V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgdGltZXIgc3luY2hyb25pemF0aW9uIGFuZCByZWZlcmVuY2UgY291bnRpbmcgaXNzdWVzIGluIHRoZSBWVUIzMDAgVVNCIE1NQyBob3N0IGRyaXZlci4gSXQgcmVwbGFjZXMgdGltZXJfZGVsZXRlIHdpdGggdGltZXJfZGVsZXRlX3N5bmMgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSBidWdzIGFuZCBmaXhlcyBhIHJlZmVyZW5jZSBjb3VudGluZyBpc3N1ZSBpbiB0aGUgaW5hY3Rpdml0eSB0aW1lciBjYWxsYmFjay4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZHJpdmVyJ3MgbGlmZWN5Y2xlIGFuZCBjb21tYW5kIGV4ZWN1dGlvbiBwYXRocywgd2hpY2ggY2FuIGJlIHJlYWNoZWQgdmlhIFVTQiBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowbwzmb[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-07 04:39:28 +0000 UTC FinishedAt: 2026-08-07 04:42:07 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "075b74841bd0065a3bda3440873c747938e69b68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MMC_VUB300" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "drm-next", "tree_url": "https://gitlab.freedesktop.org/drm/kernel.git", "commit_hash": "075b74841bd0065a3bda3440873c747938e69b68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MMC_VUB300" ], "series_id": "64f6a2f9-788b-44e6-aba4-057e55ddb70a" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "vub300_inactivity_timer_expired", "vub300_cmndwork_thread", "vub300_probe", "vub300_disconnect", "vub300_sg_timed_out" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA0OjQwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01NQ19WVUIzMDAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkJiMzNDssCiAgICAmIzM0O3Z1YjMwMF9jbW5kd29ya190aHJlYWQmIzM0OywKICAgICYjMzQ7dnViMzAwX3Byb2JlJiMzNDssCiAgICAmIzM0O3Z1YjMwMF9kaXNjb25uZWN0JiMzNDssCiAgICAmIzM0O3Z1YjMwMF9zZ190aW1lZF9vdXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgdGltZXIgc3luY2hyb25pemF0aW9uIGFuZCByZWZlcmVuY2UgY291bnRpbmcgaXNzdWVzIGluIHRoZSBWVUIzMDAgVVNCIE1NQyBob3N0IGRyaXZlci4gSXQgcmVwbGFjZXMgdGltZXJfZGVsZXRlIHdpdGggdGltZXJfZGVsZXRlX3N5bmMgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSBidWdzIGFuZCBmaXhlcyBhIHJlZmVyZW5jZSBjb3VudGluZyBpc3N1ZSBpbiB0aGUgaW5hY3Rpdml0eSB0aW1lciBjYWxsYmFjay4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZHJpdmVyJiMzOTtzIGxpZmVjeWNsZSBhbmQgY29tbWFuZCBleGVjdXRpb24gcGF0aHMsIHdoaWNoIGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZW11bGF0aW9uLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA0OjQwPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZWU5NGM2MjMwMDQ0NWQyZmYxNDdiMmJlM2QwODc3YjU1MjI3NWU5Y1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgQXVnIDcgMDQ6NDA6NTcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYyBiL2RyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmNcbmluZGV4IDJkYWU0NzRkY2QwNjcuLjliMDg3NTVjYzY1MzkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jXG5AQCAtNzQ0LDcgJiM0Mzs3NDQsNyBAQCBzdGF0aWMgdm9pZCB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuIFx0c3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwID0gdGltZXJfY29udGFpbmVyX29mKHZ1YjMwMCwgdCxcbiBcdFx0XHRcdFx0XHRcdCAgICBpbmFjdGl2aXR5X3RpbWVyKTtcbiBcdGlmICghdnViMzAwLVx1MDAzZWludGVyZmFjZSkge1xuLVx0XHRrcmVmX3B1dChcdTAwMjZ2dWIzMDAtXHUwMDNla3JlZiwgdnViMzAwX2RlbGV0ZSk7XG4mIzQzO1x0XHQvKiB0aW1lcl9kZWxldGVfc3luYygpIHdpbGwgd2FpdCBmb3IgdXMgKi9cbiBcdH0gZWxzZSBpZiAodnViMzAwLVx1MDAzZWNtZCkge1xuIFx0XHRtb2RfdGltZXIoXHUwMDI2dnViMzAwLVx1MDAzZWluYWN0aXZpdHlfdGltZXIsIGppZmZpZXMgJiM0MzsgSFopO1xuIFx0fSBlbHNlIHtcbkBAIC0xNDUzLDcgJiM0MzsxNDUzLDcgQEAgc3RhdGljIGludCBfX2NvbW1hbmRfcmVhZF9kYXRhKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcbiBcdFx0XHRcdFx0XHQgIChsaW5lYXJfbGVuZ3RoIC8gMTYzODQpKTtcbiBcdFx0XHRhZGRfdGltZXIoXHUwMDI2dnViMzAwLVx1MDAzZXNnX3RyYW5zZmVyX3RpbWVyKTtcbiBcdFx0XHR1c2Jfc2dfd2FpdChcdTAwMjZ2dWIzMDAtXHUwMDNlc2dfcmVxdWVzdCk7XG4tXHRcdFx0dGltZXJfZGVsZXRlKFx1MDAyNnZ1YjMwMC1cdTAwM2VzZ190cmFuc2Zlcl90aW1lcik7XG4mIzQzO1x0XHRcdHRpbWVyX2RlbGV0ZV9zeW5jKFx1MDAyNnZ1YjMwMC1cdTAwM2VzZ190cmFuc2Zlcl90aW1lcik7XG4gXHRcdFx0aWYgKHZ1YjMwMC1cdTAwM2VzZ19yZXF1ZXN0LnN0YXR1cyBcdTAwM2MgMCkge1xuIFx0XHRcdFx0Y21kLVx1MDAzZWVycm9yID0gdnViMzAwLVx1MDAzZXNnX3JlcXVlc3Quc3RhdHVzO1xuIFx0XHRcdFx0ZGF0YS1cdTAwM2VieXRlc194ZmVyZWQgPSAwO1xuQEAgLTE1NzAsMTAgJiM0MzsxNTcwLDEwIEBAIHN0YXRpYyBpbnQgX19jb21tYW5kX3dyaXRlX2RhdGEoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwLFxuIFx0XHRcdFx0XHRcdFx0ICAgbGluZWFyX2xlbmd0aCAvIDE2Mzg0KTtcbiBcdFx0XHRhZGRfdGltZXIoXHUwMDI2dnViMzAwLVx1MDAzZXNnX3RyYW5zZmVyX3RpbWVyKTtcbiBcdFx0XHR1c2Jfc2dfd2FpdChcdTAwMjZ2dWIzMDAtXHUwMDNlc2dfcmVxdWVzdCk7XG4mIzQzO1x0XHRcdHRpbWVyX2RlbGV0ZV9zeW5jKFx1MDAyNnZ1YjMwMC1cdTAwM2VzZ190cmFuc2Zlcl90aW1lcik7XG4gXHRcdFx0aWYgKGNtZC1cdTAwM2VlcnJvcikge1xuIFx0XHRcdFx0ZGF0YS1cdTAwM2VieXRlc194ZmVyZWQgPSAwO1xuIFx0XHRcdH0gZWxzZSB7XG4tXHRcdFx0XHR0aW1lcl9kZWxldGUoXHUwMDI2dnViMzAwLVx1MDAzZXNnX3RyYW5zZmVyX3RpbWVyKTtcbiBcdFx0XHRcdGlmICh2dWIzMDAtXHUwMDNlc2dfcmVxdWVzdC5zdGF0dXMgXHUwMDNjIDApIHtcbiBcdFx0XHRcdFx0Y21kLVx1MDAzZWVycm9yID0gdnViMzAwLVx1MDAzZXNnX3JlcXVlc3Quc3RhdHVzO1xuIFx0XHRcdFx0XHRkYXRhLVx1MDAzZWJ5dGVzX3hmZXJlZCA9IDA7XG5AQCAtMjMyNyw3ICYjNDM7MjMyNyw2IEBAIHN0YXRpYyBpbnQgdnViMzAwX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsXG4gXHRJTklUX1dPUksoXHUwMDI2dnViMzAwLVx1MDAzZWRlYWR3b3JrLCB2dWIzMDBfZGVhZHdvcmtfdGhyZWFkKTtcbiBcdGtyZWZfaW5pdChcdTAwMjZ2dWIzMDAtXHUwMDNla3JlZik7XG4gXHR0aW1lcl9zZXR1cChcdTAwMjZ2dWIzMDAtXHUwMDNlc2dfdHJhbnNmZXJfdGltZXIsIHZ1YjMwMF9zZ190aW1lZF9vdXQsIDApO1xuLVx0a3JlZl9nZXQoXHUwMDI2dnViMzAwLVx1MDAzZWtyZWYpO1xuIFx0dGltZXJfc2V0dXAoXHUwMDI2dnViMzAwLVx1MDAzZWluYWN0aXZpdHlfdGltZXIsXG4gXHRcdCAgICB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkLCAwKTtcbiBcdHZ1YjMwMC1cdTAwM2VpbmFjdGl2aXR5X3RpbWVyLmV4cGlyZXMgPSBqaWZmaWVzICYjNDM7IEhaO1xuQEAgLTIzNTAsNiAmIzQzOzIzNDksNyBAQCBzdGF0aWMgaW50IHZ1YjMwMF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlLFxuIFxuIGVycl9zdG9wX2lvOlxuIFx0dnViMzAwLVx1MDAzZWludGVyZmFjZSA9IE5VTEw7XG4mIzQzO1x0dGltZXJfZGVsZXRlX3N5bmMoXHUwMDI2dnViMzAwLVx1MDAzZWluYWN0aXZpdHlfdGltZXIpO1xuIFx0a3JlZl9wdXQoXHUwMDI2dnViMzAwLVx1MDAzZWtyZWYsIHZ1YjMwMF9kZWxldGUpO1xuIFxuIFx0cmV0dXJuIHJldHZhbDtcbkBAIC0yMzg1LDYgJiM0MzsyMzg1LDcgQEAgc3RhdGljIHZvaWQgdnViMzAwX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcbiBcdFx0XHQvKiBwcmV2ZW50IG1vcmUgSS9PIGZyb20gc3RhcnRpbmcgKi9cbiBcdFx0XHR2dWIzMDAtXHUwMDNlaW50ZXJmYWNlID0gTlVMTDtcbiBcdFx0XHRtbWNfcmVtb3ZlX2hvc3QobW1jKTtcbiYjNDM7XHRcdFx0dGltZXJfZGVsZXRlX3N5bmMoXHUwMDI2dnViMzAwLVx1MDAzZWluYWN0aXZpdHlfdGltZXIpO1xuIFx0XHRcdGtyZWZfcHV0KFx1MDAyNnZ1YjMwMC1cdTAwM2VrcmVmLCB2dWIzMDBfZGVsZXRlKTtcbiBcdFx0XHRwcl9pbmZvKFwmIzM0O1VTQiB2dWIzMDAgcmVtb3RlIFNESU8gaG9zdCBjb250cm9sbGVyWyVkXVwmIzM0O1xuIFx0XHRcdFx0XCYjMzQ7IG5vdyBkaXNjb25uZWN0ZWRcJiMzNDssIGlmbnVtKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNDo0MDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TU1DX1ZVQjMwMCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3Z1YjMwMF9pbmFjdGl2aXR5X3RpbWVyX2V4cGlyZWQmIzM0OywKICAgICYjMzQ7dnViMzAwX2NtbmR3b3JrX3RocmVhZCYjMzQ7LAogICAgJiMzNDt2dWIzMDBfcHJvYmUmIzM0OywKICAgICYjMzQ7dnViMzAwX2Rpc2Nvbm5lY3QmIzM0OywKICAgICYjMzQ7dnViMzAwX3NnX3RpbWVkX291dCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyB0aW1lciBzeW5jaHJvbml6YXRpb24gYW5kIHJlZmVyZW5jZSBjb3VudGluZyBpc3N1ZXMgaW4gdGhlIFZVQjMwMCBVU0IgTU1DIGhvc3QgZHJpdmVyLiBJdCByZXBsYWNlcyB0aW1lcl9kZWxldGUgd2l0aCB0aW1lcl9kZWxldGVfc3luYyB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVlIGJ1Z3MgYW5kIGZpeGVzIGEgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlIGluIHRoZSBpbmFjdGl2aXR5IHRpbWVyIGNhbGxiYWNrLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBkcml2ZXImIzM5O3MgbGlmZWN5Y2xlIGFuZCBjb21tYW5kIGV4ZWN1dGlvbiBwYXRocywgd2hpY2ggY2FuIGJlIHJlYWNoZWQgdmlhIFVTQiBlbXVsYXRpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBlZTk0YzYyMzAwNDQ1ZDJmZjE0N2IyYmUzZDA4NzdiNTUyMjc1ZTljCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBBdWcgNyAwNDo0MDo1NyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMgYi9kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jCmluZGV4IDJkYWU0NzRkY2QwNjcuLjliMDg3NTVjYzY1MzkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYwpAQCAtNzQ0LDcgJiM0Mzs3NDQsNyBAQCBzdGF0aWMgdm9pZCB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkKHN0cnVjdCB0aW1lcl9saXN0ICp0KQogCXN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCA9IHRpbWVyX2NvbnRhaW5lcl9vZih2dWIzMDAsIHQsCiAJCQkJCQkJICAgIGluYWN0aXZpdHlfdGltZXIpOwogCWlmICghdnViMzAwLSZndDtpbnRlcmZhY2UpIHsKLQkJa3JlZl9wdXQoJmFtcDt2dWIzMDAtJmd0O2tyZWYsIHZ1YjMwMF9kZWxldGUpOwomIzQzOwkJLyogdGltZXJfZGVsZXRlX3N5bmMoKSB3aWxsIHdhaXQgZm9yIHVzICovCiAJfSBlbHNlIGlmICh2dWIzMDAtJmd0O2NtZCkgewogCQltb2RfdGltZXIoJmFtcDt2dWIzMDAtJmd0O2luYWN0aXZpdHlfdGltZXIsIGppZmZpZXMgJiM0MzsgSFopOwogCX0gZWxzZSB7CkBAIC0xNDUzLDcgJiM0MzsxNDUzLDcgQEAgc3RhdGljIGludCBfX2NvbW1hbmRfcmVhZF9kYXRhKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCwKIAkJCQkJCSAgKGxpbmVhcl9sZW5ndGggLyAxNjM4NCkpOwogCQkJYWRkX3RpbWVyKCZhbXA7dnViMzAwLSZndDtzZ190cmFuc2Zlcl90aW1lcik7CiAJCQl1c2Jfc2dfd2FpdCgmYW1wO3Z1YjMwMC0mZ3Q7c2dfcmVxdWVzdCk7Ci0JCQl0aW1lcl9kZWxldGUoJmFtcDt2dWIzMDAtJmd0O3NnX3RyYW5zZmVyX3RpbWVyKTsKJiM0MzsJCQl0aW1lcl9kZWxldGVfc3luYygmYW1wO3Z1YjMwMC0mZ3Q7c2dfdHJhbnNmZXJfdGltZXIpOwogCQkJaWYgKHZ1YjMwMC0mZ3Q7c2dfcmVxdWVzdC5zdGF0dXMgJmx0OyAwKSB7CiAJCQkJY21kLSZndDtlcnJvciA9IHZ1YjMwMC0mZ3Q7c2dfcmVxdWVzdC5zdGF0dXM7CiAJCQkJZGF0YS0mZ3Q7Ynl0ZXNfeGZlcmVkID0gMDsKQEAgLTE1NzAsMTAgJiM0MzsxNTcwLDEwIEBAIHN0YXRpYyBpbnQgX19jb21tYW5kX3dyaXRlX2RhdGEoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwLAogCQkJCQkJCSAgIGxpbmVhcl9sZW5ndGggLyAxNjM4NCk7CiAJCQlhZGRfdGltZXIoJmFtcDt2dWIzMDAtJmd0O3NnX3RyYW5zZmVyX3RpbWVyKTsKIAkJCXVzYl9zZ193YWl0KCZhbXA7dnViMzAwLSZndDtzZ19yZXF1ZXN0KTsKJiM0MzsJCQl0aW1lcl9kZWxldGVfc3luYygmYW1wO3Z1YjMwMC0mZ3Q7c2dfdHJhbnNmZXJfdGltZXIpOwogCQkJaWYgKGNtZC0mZ3Q7ZXJyb3IpIHsKIAkJCQlkYXRhLSZndDtieXRlc194ZmVyZWQgPSAwOwogCQkJfSBlbHNlIHsKLQkJCQl0aW1lcl9kZWxldGUoJmFtcDt2dWIzMDAtJmd0O3NnX3RyYW5zZmVyX3RpbWVyKTsKIAkJCQlpZiAodnViMzAwLSZndDtzZ19yZXF1ZXN0LnN0YXR1cyAmbHQ7IDApIHsKIAkJCQkJY21kLSZndDtlcnJvciA9IHZ1YjMwMC0mZ3Q7c2dfcmVxdWVzdC5zdGF0dXM7CiAJCQkJCWRhdGEtJmd0O2J5dGVzX3hmZXJlZCA9IDA7CkBAIC0yMzI3LDcgJiM0MzsyMzI3LDYgQEAgc3RhdGljIGludCB2dWIzMDBfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSwKIAlJTklUX1dPUksoJmFtcDt2dWIzMDAtJmd0O2RlYWR3b3JrLCB2dWIzMDBfZGVhZHdvcmtfdGhyZWFkKTsKIAlrcmVmX2luaXQoJmFtcDt2dWIzMDAtJmd0O2tyZWYpOwogCXRpbWVyX3NldHVwKCZhbXA7dnViMzAwLSZndDtzZ190cmFuc2Zlcl90aW1lciwgdnViMzAwX3NnX3RpbWVkX291dCwgMCk7Ci0Ja3JlZl9nZXQoJmFtcDt2dWIzMDAtJmd0O2tyZWYpOwogCXRpbWVyX3NldHVwKCZhbXA7dnViMzAwLSZndDtpbmFjdGl2aXR5X3RpbWVyLAogCQkgICAgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZCwgMCk7CiAJdnViMzAwLSZndDtpbmFjdGl2aXR5X3RpbWVyLmV4cGlyZXMgPSBqaWZmaWVzICYjNDM7IEhaOwpAQCAtMjM1MCw2ICYjNDM7MjM0OSw3IEBAIHN0YXRpYyBpbnQgdnViMzAwX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsCiAKIGVycl9zdG9wX2lvOgogCXZ1YjMwMC0mZ3Q7aW50ZXJmYWNlID0gTlVMTDsKJiM0MzsJdGltZXJfZGVsZXRlX3N5bmMoJmFtcDt2dWIzMDAtJmd0O2luYWN0aXZpdHlfdGltZXIpOwogCWtyZWZfcHV0KCZhbXA7dnViMzAwLSZndDtrcmVmLCB2dWIzMDBfZGVsZXRlKTsKIAogCXJldHVybiByZXR2YWw7CkBAIC0yMzg1LDYgJiM0MzsyMzg1LDcgQEAgc3RhdGljIHZvaWQgdnViMzAwX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSkKIAkJCS8qIHByZXZlbnQgbW9yZSBJL08gZnJvbSBzdGFydGluZyAqLwogCQkJdnViMzAwLSZndDtpbnRlcmZhY2UgPSBOVUxMOwogCQkJbW1jX3JlbW92ZV9ob3N0KG1tYyk7CiYjNDM7CQkJdGltZXJfZGVsZXRlX3N5bmMoJmFtcDt2dWIzMDAtJmd0O2luYWN0aXZpdHlfdGltZXIpOwogCQkJa3JlZl9wdXQoJmFtcDt2dWIzMDAtJmd0O2tyZWYsIHZ1YjMwMF9kZWxldGUpOwogCQkJcHJfaW5mbygmIzM0O1VTQiB2dWIzMDAgcmVtb3RlIFNESU8gaG9zdCBjb250cm9sbGVyWyVkXSYjMzQ7CiAJCQkJJiMzNDsgbm93IGRpc2Nvbm5lY3RlZCYjMzQ7LCBpZm51bSk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA0OjQwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5OTUKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAyMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgVlVCMzAwIE1NQyBIb3N0IERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgdGhpcyBwYXRjaCBoZXJlIHRoYXTigJlzIHR3ZWFraW5nIHRoZSBgZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuY2AgZmlsZS4gSXQmIzM5O3MgbWFraW5nIGEgZmV3IGludGVyZXN0aW5nIGNoYW5nZXMuIEZpcnN0LCBpdOKAmXMgcmVwbGFjaW5nIGB0aW1lcl9kZWxldGVgIHdpdGggYHRpbWVyX2RlbGV0ZV9zeW5jYCBmb3IgdGhlIGBzZ190cmFuc2Zlcl90aW1lcmAuIFRoaXMgaW1tZWRpYXRlbHkgc3VnZ2VzdHMgdGhleSYjMzk7cmUgYWRkcmVzc2luZyBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBpbnZvbHZpbmcgdGhlIHRpbWVyLCBsaWtlbHkgcmVsYXRlZCB0byBzeW5jaHJvbml6YXRpb24uIFRoZW4sIEkgc2VlIHRoZXkmIzM5O3ZlIHJlbW92ZWQgc29tZSBga3JlZmAgb3BlcmF0aW9ucyDigJMgYGtyZWZfZ2V0YCBhbmQgYGtyZWZfcHV0YCDigJMgYXJvdW5kIHRoZSBpbmFjdGl2aXR5IHRpbWVyIGNhbGxiYWNrIGZ1bmN0aW9uLCBgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZGAuIFRoZXkmIzM5O3ZlIGFsc28gYWRkZWQgYSBgdGltZXJfZGVsZXRlX3N5bmNgIGNhbGwgZm9yIHRoZSBgaW5hY3Rpdml0eV90aW1lcmAgaW4gYm90aCB0aGUgcHJvYmUgZXJyb3IgcGF0aCBhbmQgZHVyaW5nIGRpc2Nvbm5lY3QuCgpOb3csIHRoaXMgaXMgdGhlIFVTQiBNTUMgaG9zdCBkcml2ZXIsIHRoZSBWVUIzMDAuIENvbnNpZGVyaW5nIHRoZSBuYXR1cmUgb2YgVVNCLCBJIHNob3VsZCBjb25zaWRlciByZWFjaGFiaWxpdHkgaW4gdmlydHVhbCBlbnZpcm9ubWVudHMuIEZvcnR1bmF0ZWx5LCBpdCYjMzk7cyBxdWl0ZSBsaWtlbHksIHNpbmNlIHdlIGNhbiBlbXVsYXRlIFVTQiBkZXZpY2VzIHdpdGggVVNCIGdhZGdldCBvciBkdW1teV9oY2QsIGFuZCBzeXprYWxsZXIgaGFzIGEgcHJldHR5IGdvb2QgVVNCIGZ1enplci4gSXTigJlzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRoYXQgY2FuIGJlIHRhcmdldGVkLiBUbyB1bmRlcnN0YW5kIHRoaXMgcHJvcGVybHksIEkgbmVlZCB0byBjaGVjayB0aGUgS2NvbmZpZyB0byBzZWUgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVGhpcyBzaG91bGQgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGlzIGNvZGUgaXMgZXhwb3NlZCBhbmQgd2hhdCBpdHMgZGVwZW5kZW5jaWVzIGFyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNDo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2dWIzMDAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL21tYy9ob3N0L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnPTkyMD1jb25maWcgTU1DX1ZVQjMwMFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZy05NDQtXHQgIFRvIGNvbXBpbGUgdGhpcyBtbWMgaG9zdCBjb250cm9sbGVyIGRyaXZlciBhcyBhIG1vZHVsZSxcbmRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZzo5NDU6XHQgIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgdnViMzAwLlxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTk0Ni1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNDo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjU1CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEZXBlbmRlbmN5IENoZWNrOiBgTU1DX1ZVQjMwMGAqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGUgZGVwZW5kZW5jaWVzIGZvciBgTU1DX1ZVQjMwMGAuIFRoaXMgZmVlbHMgbGlrZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIEkgbmVlZCB0byBxdWlja2x5IGFzY2VydGFpbiB0aGUgc2NvcGUgb2Ygd2hhdCByZWxpZXMgb24gdGhpcyBjb21wb25lbnQsIGJvdGggdXBzdHJlYW0gYW5kIGRvd25zdHJlYW0uIFNwZWNpZmljYWxseSwgSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgc3RhbmRhcmQgc3VzcGVjdHM6IHdoYXQgbGlicmFyaWVzLCBvdGhlciBtb2R1bGVzLCBwb3RlbnRpYWxseSBldmVuIGV4dGVybmFsIHNlcnZpY2VzLCBhcmUgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aWVkIHRvIGl0cyBmdW5jdGlvbmFsaXR5PyBLbm93aW5nIHRoZSBmdWxsIGRlcGVuZGVuY3kgZ3JhcGggaXMgY3J1Y2lhbCBiZWZvcmUgYW55IG1vZGlmaWNhdGlvbiwgdXBkYXRlIG9yIG1pZ3JhdGlvbi4gSSBuZWVkIHRvIGJlIGVzcGVjaWFsbHkgY29nbml6YW50IG9mIHBvdGVudGlhbCBjaXJjdWxhciBkZXBlbmRlbmNpZXMgYW5kIGltcGxpY2l0IGFzc3VtcHRpb25zIGJ1aWx0IGludG8gYW55IGxpbmtlZCBjb2RlLiBBcmUgdGhlcmUgYW55IGtub3duIGlzc3VlcyBmbGFnZ2VkIGluIHJlbGF0ZWQgZG9jdW1lbnRhdGlvbiBvciBpbnRlcm5hbCBidWcgdHJhY2tlcnM/IEtub3dpbmcgdGhpcyBpbmZvcm1hdGlvbiB3aWxsIGdyZWF0bHkgaGVscCB0byBwcmlvcml0aXplIG15IHdvcmsuIEkgbmVlZCB0byBtYWtlIHN1cmUgdG8gYWNjb3VudCBmb3IgaW1wbGljaXQgZGVwZW5kZW5jaWVzIGFzIHdlbGwgLSB0aGluZ3MgdGhhdCBtaWdodCBjYWxsIGBNTUNfVlVCMzAwYCYjMzk7cyBBUEkgYnV0IGFyZSBub3QgZGlyZWN0bHkgbGlzdGVkIGFzIGRlcGVuZGVudHMgaW4gYSBzdGFuZGFyZCB0b29sLiBUaW1lIHRvIHB1bGwgdXAgdGhlIGRlcGVuZGVuY3kgYW5hbHl6ZXIgYW5kIGRpZyBpbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNDo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgTU1DX1ZVQjMwMCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL21tYy9ob3N0L0tjb25maWc9OTEwPWNvbmZpZyBNTUNfSlo0NzQwXG4tLVxuZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnLTkxOS1cbmRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZzo5MjA6Y29uZmlnIE1NQ19WVUIzMDBcbmRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZy05MjEtXHR0cmlzdGF0ZSBcJiMzNDtWVUIzMDAgVVNCIHRvIFNESU8vU0QvTU1DIEhvc3QgQ29udHJvbGxlciBzdXBwb3J0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDQ6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDA0MQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gdGhlIE1NQyBIb3N0IENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIHplcm8gaW4gb24gdGhlIGBkcml2ZXJzL21tYy9ob3N0L0tjb25maWdgIGZpbGUsIHNwZWNpZmljYWxseSBhcm91bmQgbGluZSA5MjAuIEkmIzM5O20gbGlrZWx5IGludGVyZXN0ZWQgaW4gaG93IHNvbWUgcGFydGljdWxhciBmZWF0dXJlIG9yIG9wdGlvbiByZWxhdGVkIHRvIE1NQyBob3N0IGNvbnRyb2xsZXJzIGlzIGJlaW5nIGNvbmZpZ3VyZWQuIEdpdmVuIHRoZSBsb2NhdGlvbiB3aXRoaW4gS2NvbmZpZywgSSYjMzk7bSBleHBlY3RpbmcgdG8gZmluZCBjb25kaXRpb25hbCBjb21waWxhdGlvbiBvcHRpb25zIG9yIGRlcGVuZGVuY2llcyBiZWluZyBkZWZpbmVkLiBNeSBnb2FsIGlzIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgc3BlY2lmaWMgYXNwZWN0IGlzIGNvbnRyb2xsZWQsIHdoYXQgb3RoZXIgZmVhdHVyZXMgaXQgbWlnaHQgZGVwZW5kIG9uLCBhbmQgcG90ZW50aWFsbHksIHdoYXQgaGFyZHdhcmUgcGxhdGZvcm1zIG9yIGtlcm5lbCBjb25maWd1cmF0aW9ucyBlbmFibGUgb3IgZGlzYWJsZSBpdC4gUGVyaGFwcyBJJiMzOTttIHRyeWluZyB0byBkZWJ1ZyBhbiBpc3N1ZSwgb3Igc2ltcGx5IHVuZGVyc3RhbmQgdGhlIGxvZ2ljIGJlaGluZCBhIG5ldyBNTUMgaG9zdCBkcml2ZXIgSSYjMzk7bSBsb29raW5nIGF0LiBNYXliZSBJJiMzOTttIHRyeWluZyB0byBidWlsZCBhIGN1c3RvbSBrZXJuZWwgY29uZmlndXJhdGlvbiwgYW5kIG5lZWQgdG8ga25vdyB0aGUgaW1wbGljYXRpb25zIG9mIGVuYWJsaW5nIGEgcGFydGljdWxhciBNTUMtcmVsYXRlZCBvcHRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDQ6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL21tYy9ob3N0L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA5MTUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDkxNTpcdFx0ICBKWjQ3NDAsIEpaNDc1MCwgSlo0NzcwIGFuZCBKWjQ3ODAgU29Dcy5cbiA5MTY6XHRcbiA5MTc6XHRcdCAgSWYgeW91IGhhdmUgYSBib2FyZCBiYXNlZCBvbiBzdWNoIGEgU29DIGFuZCB3aXRoIGEgU0QvTU1DIHNsb3QsXG4gOTE4Olx0XHQgIHNheSBZIG9yIE0gaGVyZS5cbiA5MTk6XHRcbiA5MjA6XHRjb25maWcgTU1DX1ZVQjMwMFxuIDkyMTpcdFx0dHJpc3RhdGUgXCYjMzQ7VlVCMzAwIFVTQiB0byBTRElPL1NEL01NQyBIb3N0IENvbnRyb2xsZXIgc3VwcG9ydFwmIzM0O1xuIDkyMjpcdFx0ZGVwZW5kcyBvbiBVU0JcbiA5MjM6XHRcdGhlbHBcbiA5MjQ6XHRcdCAgVGhpcyBzZWxlY3RzIHN1cHBvcnQgZm9yIEVsYW4gRGlnaXRhbCBTeXN0ZW1zJiMzOTsgVlVCMzAwIGNoaXAuXG4gOTI1Olx0XG4gOTI2Olx0XHQgIFRoZSBWVUIzMDAgaXMgYSBVU0ItU0RJTyBIb3N0IENvbnRyb2xsZXIgSW50ZXJmYWNlIGNoaXBcbiA5Mjc6XHRcdCAgdGhhdCBlbmFibGVzIHRoZSBob3N0IGNvbXB1dGVyIHRvIHVzZSBTRElPL1NEL01NQyBjYXJkc1xuIDkyODpcdFx0ICB2aWEgYSBVU0IgMi4wIG9yIFVTQiAxLjEgaG9zdC5cbiA5Mjk6XHRcbiA5MzA6XHRcdCAgVGhlIFZVQjMwMCBjaGlwIHdpbGwgYmUgZm91bmQgaW4gYm90aCBwaHlzaWNhbGx5IHNlcGFyYXRlXG4gOTMxOlx0XHQgIFVTQiB0byBTRElPL1NEL01NQyBhZGFwdGVycyBhbmQgZW1iZWRkZWQgb24gc29tZSBtb3RoZXJib2FyZHMuXG4gOTMyOlx0XG4gOTMzOlx0XHQgIFRoZSBWVUIzMDAgY2hpcCBzdXBwb3J0cyBTRCBhbmQgTU1DIG1lbW9yeSBjYXJkcyBpbiBhZGRpdGlvblxuIDkzNDpcdFx0ICB0byBzaW5nbGUgYW5kIG11bHRpZnVuY3Rpb24gU0RJTyBjYXJkcy5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNDo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjUzCgkJCQkJCQlvdXRwdXQ6IDYzCgkJCQkJCQl0aG91Z2h0czogNDYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGZyb20gYW4gZXhwZXJ0JiMzOTtzIHBlcnNwZWN0aXZlOgoKKipEaXZpbmcgaW50byB0aGUgTU1DX1ZVQjMwMCBEcml2ZXIgRGVwZW5kZW5jaWVzKioKClJpZ2h0LCBzbyBgTU1DX1ZVQjMwMGAgLSB0aGF0JiMzOTtzIGEgZHJpdmVyIGZvciBhIHNwZWNpZmljIE1NQyBob3N0IGNvbnRyb2xsZXIsIGFuZCBpdCBsb29rcyBsaWtlIGl0JiMzOTtzIGJ1aWx0IG9uIHRvcCBvZiBib3RoIGBVU0JgIGFuZCBgTU1DYCBpdHNlbGYuIFRoYXQgbWVhbnMgSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBpbnRlcmFjdGlvbiB3b3Jrcy4gTXkgZmlyc3Qgc3RlcCBpcyB0byB6ZXJvIGluIG9uIHRoZSByZWxldmFudCBjb2RlLiBJJiMzOTttIGhlYWRpbmcgc3RyYWlnaHQgZm9yIHRoZSBzb3VyY2U6IGBkcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jYC4gVGhpcyBpcyB3aGVyZSB0aGUgY29yZSBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIGBNTUNfVlVCMzAwYCBkcml2ZXIgcmVzaWRlcywgYW5kIGl0JiMzOTtsbCBjb250YWluIHRoZSBmdW5jdGlvbnMgSSBuZWVkIHRvIGRpc3NlY3QuIEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdGhlIGNvbnRyb2xsZXIgaW50ZXJmYWNlcyB3aXRoIHRoZSBVU0IgYnVzIGFuZCB0aGVuLCBob3cgdGhhdCB0cmFuc2xhdGVzIHRvIE1NQyBjb21tYW5kcyBhbmQgZGF0YSB0cmFuc2Zlci4gTGV0JiMzOTtzIHNlZSB3aGF0IGludGVyZXN0aW5nIHRpZGJpdHMgYXJlIGluIHRoYXQgYC5jYCBmaWxlLiBJJiMzOTttIGV4cGVjdGluZyB0byBmaW5kIGludGVyZXN0aW5nIGZ1bmN0aW9ucyB0byB3b3JrIHdpdGguCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA0OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O19fY29tbWFuZF9yZWFkX2RhdGF8X19jb21tYW5kX3dyaXRlX2RhdGF8dnViMzAwX3Byb2JlfHZ1YjMwMF9kaXNjb25uZWN0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTEzOTY9c3RhdGljIGludCB2dWIzMDBfdXNiX2J1bGtfbXNnKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE0MjgtXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjE0Mjk6c3RhdGljIGludCBfX2NvbW1hbmRfcmVhZF9kYXRhKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMTQzMC1cdFx0XHQgICAgICAgc3RydWN0IG1tY19jb21tYW5kICpjbWQsIHN0cnVjdCBtbWNfZGF0YSAqZGF0YSlcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE1MDAtXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjE1MDE6c3RhdGljIGludCBfX2NvbW1hbmRfd3JpdGVfZGF0YShzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE1MDItXHRcdFx0XHRzdHJ1Y3QgbW1jX2NvbW1hbmQgKmNtZCwgc3RydWN0IG1tY19kYXRhICpkYXRhKVxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MTczNz1zdGF0aWMgdm9pZCB2dWIzMDBfY21uZHdvcmtfdGhyZWFkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE3NjctXHRcdGVsc2UgaWYgKE1NQ19EQVRBX1JFQUQgXHUwMDI2IGRhdGEtXHUwMDNlZmxhZ3MpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjE3Njg6XHRcdFx0ZGF0YV9sZW5ndGggPSBfX2NvbW1hbmRfcmVhZF9kYXRhKHZ1YjMwMCwgY21kLCBkYXRhKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMTc2OS1cdFx0ZWxzZVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoxNzcwOlx0XHRcdGRhdGFfbGVuZ3RoID0gX19jb21tYW5kX3dyaXRlX2RhdGEodnViMzAwLCBjbWQsIGRhdGEpO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNzcxLVx0XHRyZXNldF9kZXZpY2UgPSBfX3Z1YjMwMF9jb21tYW5kX3Jlc3BvbnNlKHZ1YjMwMCwgY21kLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MjA4NT1zdGF0aWMgY29uc3Qgc3RydWN0IG1tY19ob3N0X29wcyB2dWIzMDBfbW1jX29wcyA9IHtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTIwOTEtXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjIwOTI6c3RhdGljIGludCB2dWIzMDBfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjA5My1cdFx0XHRjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yMzcyLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoyMzczOnN0YXRpYyB2b2lkIHZ1YjMwMF9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTIzNzQte1x0XHRcdFx0LyogTk9UIGlycSAqL1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MjQyNz1zdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgdnViMzAwX2RyaXZlciA9IHtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjQyOC1cdC5uYW1lID0gXCYjMzQ7dnViMzAwXCYjMzQ7LFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoyNDI5Olx0LnByb2JlID0gdnViMzAwX3Byb2JlLFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoyNDMwOlx0LmRpc2Nvbm5lY3QgPSB2dWIzMDBfZGlzY29ubmVjdCxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjQzMS1cdC5zdXNwZW5kID0gdnViMzAwX3N1c3BlbmQsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA0OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU4OTUKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiA0MzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBWVUIzMDAgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgc2V2ZXJhbCBrZXkgZnVuY3Rpb25zIHdpdGhpbiB0aGUgYHZ1YjMwMGAgZHJpdmVyLiBJIHNlZSBpdCYjMzk7cyBtb2RpZnlpbmcgYHZ1YjMwMF9pbmFjdGl2aXR5X3RpbWVyX2V4cGlyZWRgLCBgX19jb21tYW5kX3JlYWRfZGF0YWAsIGBfX2NvbW1hbmRfd3JpdGVfZGF0YWAsIGB2dWIzMDBfcHJvYmVgLCBhbmQgYHZ1YjMwMF9kaXNjb25uZWN0YC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGluY2x1ZGUgdGhlc2UgaW4gYEZvY3VzU3ltYm9sc2AuCgpOb3csIGRpZ2dpbmcgYSBiaXQgZGVlcGVyLCBJIHJlbWVtYmVyIGBfX2NvbW1hbmRfcmVhZF9kYXRhYCBhbmQgYF9fY29tbWFuZF93cml0ZV9kYXRhYCBhcmUgc3RhdGljIGZ1bmN0aW9ucyBjYWxsZWQgZnJvbSBgdnViMzAwX2NtbmR3b3JrX3RocmVhZGAuIFNpbmNlIHRoZSB0aHJlYWQgaXMgYSB3b3JrcXVldWUgZnVuY3Rpb24sIHRoYXQgbG9va3MgbGlrZSBhIHZlcnkgZ29vZCBlbnRyeSBwb2ludCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiBTaW1pbGFybHksIGB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkYCBpcyBhIHRpbWVyIGNhbGxiYWNrLCBzbyB0aGF0JiMzOTtzIGFub3RoZXIgcG90ZW50aWFsbHkgZXhjZWxsZW50IHN0YXJ0aW5nIHBvaW50LiBBbmQgb2YgY291cnNlLCBgdnViMzAwX3Byb2JlYCBhbmQgYHZ1YjMwMF9kaXNjb25uZWN0YCBhcmUgdGhlIHN0YW5kYXJkIFVTQiBkcml2ZXIgY2FsbGJhY2tzLCBhbHNvIGltcG9ydGFudCB0byBrZWVwIGluIGZvY3VzLgoKTmV4dCwgSSBuZWVkIHRvIGNoZWNrIHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbnMuIExldCYjMzk7cyBzZWUuLi4gYE1NQ19WVUIzMDBgLi4uIEl0IGRlcGVuZHMgb24gYFVTQmAgYW5kIGBNTUNgLiBgTU1DYCBpcyB1c3VhbGx5IGVuYWJsZWQgaW4gc3l6a2FsbGVyIGJ5IGRlZmF1bHQsIHNvIGBNTUNfVlVCMzAwYCBpcyBwcm9iYWJseSB0aGUgbWFpbiBvbmUgd2UgbmVlZCB0byBmb2N1cyBvbi4KCkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQmIzM5O3MgbG9vayBhdCB0aGUgYGRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZ2AgZmlsZS4gWWVzLCBgY29uZmlnIE1NQ19WVUIzMDBgIGRlcGVuZHMgb24gYFVTQmAgYW5kIGlzIHdpdGhpbiB0aGUgYG1lbnVjb25maWcgTU1DYCB3aGljaCBpbiB0dXJuIGRlcGVuZHMgb24gYEhBU19JT01FTWAuCgpUaGVyZWZvcmUsIHRoZSBgRW5hYmxlQ29uZmlnc2AgbGlzdCBzaG91bGQganVzdCBiZSBgWyYjMzQ7TU1DX1ZVQjMwMCYjMzQ7XWAuIFRoYXQgc2hvdWxkIGJlIHN1ZmZpY2llbnQuCgpPa2F5LCBub3csIGxldCYjMzk7cyBqdXN0IGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrIGFuZCBtYWtlIHN1cmUgdGhhdCBgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZGAgaXNuJiMzOTt0IHN0YXRpYy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDQ6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz03MDk9c3RhdGljIHZvaWQgdnViMzAwX2RlYWR3b3JrX3RocmVhZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03NDEtXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc0MjpzdGF0aWMgdm9pZCB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy03NDMte1x0XHRcdFx0Lyogc29mdGlycSAqL1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MjA5Mj1zdGF0aWMgaW50IHZ1YjMwMF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjMzMC1cdHRpbWVyX3NldHVwKFx1MDAyNnZ1YjMwMC1cdTAwM2VpbmFjdGl2aXR5X3RpbWVyLFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoyMzMxOlx0XHQgICAgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZCwgMCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTIzMzItXHR2dWIzMDAtXHUwMDNlaW5hY3Rpdml0eV90aW1lci5leHBpcmVzID0gamlmZmllcyAmIzQzOyBIWjtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDQ6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzExNAoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDQxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlLi4uCgoqKkFuYWx5emluZyB0aGlzIEVudHJ5IFBvaW50KioKClJpZ2h0LCBzbyB0aGlzIGNvZGUgc25pcHBldCB1c2VzIGEgdGltZXIgY2FsbGJhY2sg4oCTIEkgY2FuIHNlZSB0aGF0LiBFdmVuIHRob3VnaCB0aGUgY29udGV4dCBtaWdodCAqYXBwZWFyKiBzdGF0aWMsIGJlY2F1c2UgaXQmIzM5O3MgaW5pdGlhdGVkIGJ5IGEgdGltZXIsIGl0IGVzc2VudGlhbGx5IGJlY29tZXMgYW4gZW50cnkgcG9pbnQgaW50byB0aGUgc3lzdGVtIGF0IHJlZ3VsYXIgaW50ZXJ2YWxzLiBUaGF0IGNoYW5nZXMgaG93IEkgYXBwcm9hY2ggdGhpcywgaXQmIzM5O3Mgbm90IGp1c3Qgc29tZSB2YXJpYWJsZS4gSSBuZWVkIHRvIHRyZWF0IGl0IGRpZmZlcmVudGx5IGFzIGl0JiMzOTtzIHRoZSBzdGFydCBwb2ludCBvZiBhIHByb2Nlc3MuCgpOb3csIHdoZXJlIGRvZXMgdGhpcyB0aW1lciBsZWFkPyBMZXQgbWUgZXhhbWluZSB0aGUgYHZ1YjMwMF9jbW5kd29ya190aHJlYWRgIGZ1bmN0aW9uIHRvIHVuZGVyc3RhbmQgdGhlIHByb2Nlc3MuIFRoYXQmIzM5O3MgdGhlIGtleS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDQ6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dnViMzAwX2NtbmR3b3JrX3RocmVhZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz01Njg9c3RhdGljIHZvaWQgY2hlY2tfdnViMzAwX3BvcnRfc3RhdHVzKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMClcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU3MS1cdCAqIGNtZF9tdXRleCBpcyBoZWxkIGJ5IHZ1YjMwMF9wb2xsd29ya190aHJlYWQsXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU3MjpcdCAqIHZ1YjMwMF9kZWFkd29ya190aHJlYWQgb3IgdnViMzAwX2NtbmR3b3JrX3RocmVhZFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NzMtXHQgKi9cbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTg5MD1zdGF0aWMgdm9pZCBzZW5kX2NvbW1hbmQoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04OTEte1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzo4OTI6XHQvKiBjbWRfbXV0ZXggaXMgaGVsZCBieSB2dWIzMDBfY21uZHdvcmtfdGhyZWFkICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg5My1cdHN0cnVjdCBtbWNfY29tbWFuZCAqY21kID0gdnViMzAwLVx1MDAzZWNtZDtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTEzOTY9c3RhdGljIGludCB2dWIzMDBfdXNiX2J1bGtfbXNnKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTEzOTkte1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoxNDAwOlx0LyogY21kX211dGV4IGlzIGhlbGQgYnkgdnViMzAwX2NtbmR3b3JrX3RocmVhZCAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNDAxLVx0c3RydWN0IHVzYl9kZXZpY2UgKnVzYl9kZXYgPSB2dWIzMDAtXHUwMDNldWRldjtcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTE0Mjk9c3RhdGljIGludCBfX2NvbW1hbmRfcmVhZF9kYXRhKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE0MzEte1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoxNDMyOlx0LyogY21kX211dGV4IGlzIGhlbGQgYnkgdnViMzAwX2NtbmR3b3JrX3RocmVhZCAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNDMzLVx0aW50IGxpbmVhcl9sZW5ndGggPSB2dWIzMDAtXHUwMDNlZGF0YXNpemU7XG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz0xNTAxPXN0YXRpYyBpbnQgX19jb21tYW5kX3dyaXRlX2RhdGEoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMTUwMy17XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjE1MDQ6XHQvKiBjbWRfbXV0ZXggaXMgaGVsZCBieSB2dWIzMDBfY21uZHdvcmtfdGhyZWFkICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE1MDUtXHR1bnNpZ25lZCBwaXBlID0gdXNiX3NuZGJ1bGtwaXBlKHZ1YjMwMC1cdTAwM2V1ZGV2LCB2dWIzMDAtXHUwMDNlZGF0YV9vdXRfZXApO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MTU4OT1zdGF0aWMgYm9vbCBfX3Z1YjMwMF9jb21tYW5kX3Jlc3BvbnNlKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcbi0tXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE1OTIte1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoxNTkzOlx0LyogY21kX211dGV4IGlzIGhlbGQgYnkgdnViMzAwX2NtbmR3b3JrX3RocmVhZCAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNTk0LVx0bG9uZyByZXNwcmV0dmFsO1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MTcwNT1zdGF0aWMgdm9pZCBjb25zdHJ1Y3RfcmVxdWVzdF9yZXNwb25zZShzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNzM2LS8qIHRoaXMgdGhyZWFkIHJ1bnMgb25seSB3aGVuIHRoZXJlIGlzIGFuIHVwcGVyIGxldmVsIGNvbW1hbmQgcmVxIG91dHN0YW5kaW5nICovXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjE3Mzc6c3RhdGljIHZvaWQgdnViMzAwX2NtbmR3b3JrX3RocmVhZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE3Mzgte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MjA5Mj1zdGF0aWMgaW50IHZ1YjMwMF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjMyNS1cdElOSVRfREVMQVlFRF9XT1JLKFx1MDAyNnZ1YjMwMC1cdTAwM2Vwb2xsd29yaywgdnViMzAwX3BvbGx3b3JrX3RocmVhZCk7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjIzMjY6XHRJTklUX1dPUksoXHUwMDI2dnViMzAwLVx1MDAzZWNtbmR3b3JrLCB2dWIzMDBfY21uZHdvcmtfdGhyZWFkKTtcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjMyNy1cdElOSVRfV09SSyhcdTAwMjZ2dWIzMDAtXHUwMDNlZGVhZHdvcmssIHZ1YjMwMF9kZWFkd29ya190aHJlYWQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwNDo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4NjAxCgkJCQkJCQlvdXRwdXQ6IDQ1CgkJCQkJCQl0aG91Z2h0czogMjUzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgVlVCMzAwIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIGB2dWIzMDBfY21uZHdvcmtfdGhyZWFkYCBpcyBhIHdvcmtxdWV1ZSBmdW5jdGlvbiwgdGhhdCBtdWNoIGlzIGNsZWFyLiBUaGUgcHJpbWFyeSBmb2N1cyBvZiB0aGlzIHBhdGNoIHNlZW1zIHRvIGFkZHJlc3MgYSBwb3RlbnRpYWwgdXNlLWFmdGVyLWZyZWUgb3IgbWVtb3J5IGxlYWsgaXNzdWUgd2l0aGluIHRoZSBgdnViMzAwLmNgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGNvbmNlcm5pbmcgdGhlIGluY29ycmVjdCB1c2Ugb2YgYHRpbWVyX2RlbGV0ZWAgaW5zdGVhZCBvZiBgdGltZXJfZGVsZXRlX3N5bmNgIGFuZCBhbHNvIHRoZSBpbmNvcnJlY3QgdXNlIG9mIGBrcmVmX2dldGAvYGtyZWZfcHV0YC4gR2l2ZW4gdGhpcyBmdW5jdGlvbmFsIGltcGFjdCwgZnV6emluZyBpcyBkZWZpbml0ZWx5IGEgd29ydGh3aGlsZSBuZXh0IHN0ZXAuCgpMZXQmIzM5O3MgcXVpY2tseSByZXZpZXcgdGhlIGBGb2N1c1N5bWJvbHNgLiBXZSYjMzk7cmUgbG9va2luZyBhdCBgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZGAsIGB2dWIzMDBfY21uZHdvcmtfdGhyZWFkYCwgYHZ1YjMwMF9wcm9iZWAsIGFuZCBgdnViMzAwX2Rpc2Nvbm5lY3RgLgoKTm93LCBiZWZvcmUgZGl2aW5nIHRvbyBkZWVwLCBpdCYjMzk7cyBnb29kIHByYWN0aWNlIHRvIHF1aWNrbHkgY2hlY2sgZm9yIG90aGVyIG1vZGlmaWNhdGlvbnMgaW4gdGhlIGNvZGUuIEFoLCBsb29rcyBsaWtlIGBfX2NvbW1hbmRfcmVhZF9kYXRhYCBhbmQgYF9fY29tbWFuZF93cml0ZV9kYXRhYCBhcmUgYWxzbyBtb2RpZmllZC4gVGhleSYjMzk7cmUgc3RhdGljIGFuZCBjYWxsZWQgZnJvbSBgdnViMzAwX2NtbmR3b3JrX3RocmVhZGAsIHdoaWNoIG1ha2VzIGB2dWIzMDBfY21uZHdvcmtfdGhyZWFkYCBhbiBldmVuIG1vcmUgY29tcGVsbGluZyBlbnRyeXBvaW50IGZvciBhbmFseXNpcyBhbmQgZGVidWdnaW5nLgoKQWxzbyBvZiBpbnRlcmVzdCBpcyBgdnViMzAwX3NnX3RpbWVkX291dGAsIHdoaWNoIGFwcGVhcnMgdG8gYmUgdGhlIHRpbWVyIGNhbGxiYWNrIGZvciBgc2dfdHJhbnNmZXJfdGltZXJgLiBUaGlzIHNob3VsZCBiZSBsb29rZWQgYXQgYWxvbmdzaWRlIHRoZSBjb3JlIGNoYW5nZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA0OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3Z1YjMwMF9zZ190aW1lZF9vdXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9ODkwPXN0YXRpYyB2b2lkIHNlbmRfY29tbWFuZChzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDApXG4tLVxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xMTgxLSAqL1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoxMTgyOnN0YXRpYyB2b2lkIHZ1YjMwMF9zZ190aW1lZF9vdXQoc3RydWN0IHRpbWVyX2xpc3QgKnQpXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTExODMte1xuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MjA5Mj1zdGF0aWMgaW50IHZ1YjMwMF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlLFxuLS1cbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjMyOC1cdGtyZWZfaW5pdChcdTAwMjZ2dWIzMDAtXHUwMDNla3JlZik7XG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjIzMjk6XHR0aW1lcl9zZXR1cChcdTAwMjZ2dWIzMDAtXHUwMDNlc2dfdHJhbnNmZXJfdGltZXIsIHZ1YjMwMF9zZ190aW1lZF9vdXQsIDApO1xuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yMzMwLVx0dGltZXJfc2V0dXAoXHUwMDI2dnViMzAwLVx1MDAzZWluYWN0aXZpdHlfdGltZXIsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA0OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDk1MzUKCQkJCQkJCW91dHB1dDogMTc3CgkJCQkJCQl0aG91Z2h0czogNTU3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5c2lzIG9mIHRoZSBWVUIzMDAgVVNCIE1NQyBIb3N0IERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBjb25maXJtZWQgdGhhdCBgdnViMzAwX3NnX3RpbWVkX291dGAgaXMgaW5kZWVkIHRoZSB0aW1lciBjYWxsYmFjayB3ZSYjMzk7cmUgYWZ0ZXIsIHNvIEkgc2hvdWxkIGRlZmluaXRlbHkgaW5jbHVkZSBpdCBpbiBgRm9jdXNTeW1ib2xzYC4gTGV0JiMzOTtzIGdldCB0aGF0IGxpc3QgZmluYWxpemVkLgoKTXkgYEZvY3VzU3ltYm9sc2AgYXJlOiBgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZGAsIGB2dWIzMDBfY21uZHdvcmtfdGhyZWFkYCwgYHZ1YjMwMF9wcm9iZWAsIGB2dWIzMDBfZGlzY29ubmVjdGAsIGFuZCBub3csIGltcG9ydGFudGx5LCBgdnViMzAwX3NnX3RpbWVkX291dGAuCgpSaWdodCwgbGV0JiMzOTtzIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQgYHZ1YjMwMF9wcm9iZWAgYW5kIGB2dWIzMDBfZGlzY29ubmVjdGAgYXJlIHNlbnNpYmxlIGVudHJ5cG9pbnRzLiBZZXAsIHRoZXkmIzM5O3JlIFVTQiBkcml2ZXIgY2FsbGJhY2tzLCBzbyB0aGV5JiMzOTtyZSBzb2xpZCBjaG9pY2VzIGZvciBmdXp6aW5nIGVudHJ5IHBvaW50cy4KCk5leHQsIEkgbmVlZCB0byBjaGVjayB0aGUgY29uZmlndXJhdGlvbiByZXF1aXJlbWVudHMuIElzIGBNTUNfVlVCMzAwYCB0aGUgb25seSBjb25maWcgbmVlZGVkIGZvciB0aGlzIGRyaXZlcj8gWWVzLCBpdCBhcHBlYXJzIHRvIGJlLiBUaGF0JiMzOTtzIGEgZ29vZCBzdGFydC4KCkhtbSwgd2FpdCBhIG1pbnV0ZSwgdGhlIHBhdGNoICphbHNvKiBtb2RpZmllcyBgdnViMzAwX3Byb2JlYCBhbmQgYHZ1YjMwMF9kaXNjb25uZWN0YC4gVGhhdCYjMzk7cyBpbXBvcnRhbnQ7IGl0IHJlaW5mb3JjZXMgdGhlaXIgc2lnbmlmaWNhbmNlIGFzIGtleSBmdW5jdGlvbnMuCgpUaGUgcGF0Y2gmIzM5O3MgcmVhc29uaW5nIG1ha2VzIHNlbnNlOiBJdCYjMzk7cyBhZGRyZXNzaW5nIHRpbWVyIHN5bmNocm9uaXphdGlvbiBhbmQgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlcyBpbiB0aGUgVlVCMzAwIFVTQiBNTUMgaG9zdCBkcml2ZXIuIFNwZWNpZmljYWxseSwgaXQmIzM5O3Mgc3dhcHBpbmcgYHRpbWVyX2RlbGV0ZWAgZm9yIGB0aW1lcl9kZWxldGVfc3luY2AgdG8gbWl0aWdhdGUgdXNlLWFmdGVyLWZyZWUgYnVncyBhbmQgZml4aW5nIGEgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlIGluIHRoZSBpbmFjdGl2aXR5IHRpbWVyIGNhbGxiYWNrLiBUaGVzZSBhcmUgZnVuZGFtZW50YWwgY2hhbmdlcyBpbXBhY3RpbmcgdGhlIGRyaXZlciYjMzk7cyBsaWZlY3ljbGUgYW5kIGNvbW1hbmQgZXhlY3V0aW9uIHBhdGhzLCBhbmQgdGhleSYjMzk7cmUgZGVmaW5pdGVseSByZWFjaGFibGUgdmlhIFVTQiBlbXVsYXRpb24uIFRoaXMgaXMgd2hlcmUgdGhlIHZ1bG5lcmFiaWxpdGllcyBjb3VsZCBsaWUuCgpKdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgSSYjMzk7bGwgZG91YmxlLWNoZWNrIGBNTUNfVlVCMzAwYCYjMzk7cyBkZXBlbmRlbmNpZXMuIGBkZXBlbmRzIG9uIFVTQmAgYW5kIGBNTUNgLiBCb3RoIGFyZSBzdGFuZGFyZCBzdWJzeXN0ZW1zOyBubyBzdXJwcmlzZXMgdGhlcmUuIFNvLCB5ZXMsIGBNTUNfVlVCMzAwYCBpcyBzdWZmaWNpZW50LgoKT2theSwgZXZlcnl0aGluZyBsb29rcyBnb29kLiBUaW1lIHRvIGNvbnN0cnVjdCB0aGUgZmluYWwgcmVzcG9uc2UuCgpgYGBqc29uCnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZCYjMzQ7LAogICAgJiMzNDt2dWIzMDBfY21uZHdvcmtfdGhyZWFkJiMzNDssCiAgICAmIzM0O3Z1YjMwMF9wcm9iZSYjMzQ7LAogICAgJiMzNDt2dWIzMDBfZGlzY29ubmVjdCYjMzQ7LAogICAgJiMzNDt2dWIzMDBfc2dfdGltZWRfb3V0JiMzNDsKICBdLAogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01NQ19WVUIzMDAmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgdGltZXIgc3luY2hyb25pemF0aW9uIGFuZCByZWZlcmVuY2UgY291bnRpbmcgaXNzdWVzIGluIHRoZSBWVUIzMDAgVVNCIE1NQyBob3N0IGRyaXZlci4gSXQgcmVwbGFjZXMgdGltZXJfZGVsZXRlIHdpdGggdGltZXJfZGVsZXRlX3N5bmMgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSBidWdzIGFuZCBmaXhlcyBhIHJlZmVyZW5jZSBjb3VudGluZyBpc3N1ZSBpbiB0aGUgaW5hY3Rpdml0eSB0aW1lciBjYWxsYmFjay4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZHJpdmVyJiMzOTtzIGxpZmVjeWNsZSBhbmQgY29tbWFuZCBleGVjdXRpb24gcGF0aHMsIHdoaWNoIGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZW11bGF0aW9uLiYjMzQ7Cn0KYGBgCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA0OjQyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNTUNfVlVCMzAwJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZCYjMzQ7LAogICAgJiMzNDt2dWIzMDBfY21uZHdvcmtfdGhyZWFkJiMzNDssCiAgICAmIzM0O3Z1YjMwMF9wcm9iZSYjMzQ7LAogICAgJiMzNDt2dWIzMDBfZGlzY29ubmVjdCYjMzQ7LAogICAgJiMzNDt2dWIzMDBfc2dfdGltZWRfb3V0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIHRpbWVyIHN5bmNocm9uaXphdGlvbiBhbmQgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlcyBpbiB0aGUgVlVCMzAwIFVTQiBNTUMgaG9zdCBkcml2ZXIuIEl0IHJlcGxhY2VzIHRpbWVyX2RlbGV0ZSB3aXRoIHRpbWVyX2RlbGV0ZV9zeW5jIHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgYnVncyBhbmQgZml4ZXMgYSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUgaW4gdGhlIGluYWN0aXZpdHkgdGltZXIgY2FsbGJhY2suIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGRyaXZlciYjMzk7cyBsaWZlY3ljbGUgYW5kIGNvbW1hbmQgZXhlY3V0aW9uIHBhdGhzLCB3aGljaCBjYW4gYmUgcmVhY2hlZCB2aWEgVVNCIGVtdWxhdGlvbi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TU1DX1ZVQjMwMCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3Z1YjMwMF9pbmFjdGl2aXR5X3RpbWVyX2V4cGlyZWQmIzM0OywKICAgICYjMzQ7dnViMzAwX2NtbmR3b3JrX3RocmVhZCYjMzQ7LAogICAgJiMzNDt2dWIzMDBfcHJvYmUmIzM0OywKICAgICYjMzQ7dnViMzAwX2Rpc2Nvbm5lY3QmIzM0OywKICAgICYjMzQ7dnViMzAwX3NnX3RpbWVkX291dCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyB0aW1lciBzeW5jaHJvbml6YXRpb24gYW5kIHJlZmVyZW5jZSBjb3VudGluZyBpc3N1ZXMgaW4gdGhlIFZVQjMwMCBVU0IgTU1DIGhvc3QgZHJpdmVyLiBJdCByZXBsYWNlcyB0aW1lcl9kZWxldGUgd2l0aCB0aW1lcl9kZWxldGVfc3luYyB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVlIGJ1Z3MgYW5kIGZpeGVzIGEgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlIGluIHRoZSBpbmFjdGl2aXR5IHRpbWVyIGNhbGxiYWNrLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBkcml2ZXImIzM5O3MgbGlmZWN5Y2xlIGFuZCBjb21tYW5kIGV4ZWN1dGlvbiBwYXRocywgd2hpY2ggY2FuIGJlIHJlYWNoZWQgdmlhIFVTQiBlbXVsYXRpb24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNDo0MDo1OC43NzMwNzY3OTNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NzYzMDgzODI0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNTUNfVlVCMzAwXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZFwiLFxuICAgIFwidnViMzAwX2NtbmR3b3JrX3RocmVhZFwiLFxuICAgIFwidnViMzAwX3Byb2JlXCIsXG4gICAgXCJ2dWIzMDBfZGlzY29ubmVjdFwiLFxuICAgIFwidnViMzAwX3NnX3RpbWVkX291dFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHRpbWVyIHN5bmNocm9uaXphdGlvbiBhbmQgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlcyBpbiB0aGUgVlVCMzAwIFVTQiBNTUMgaG9zdCBkcml2ZXIuIEl0IHJlcGxhY2VzIHRpbWVyX2RlbGV0ZSB3aXRoIHRpbWVyX2RlbGV0ZV9zeW5jIHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgYnVncyBhbmQgZml4ZXMgYSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUgaW4gdGhlIGluYWN0aXZpdHkgdGltZXIgY2FsbGJhY2suIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGRyaXZlcidzIGxpZmVjeWNsZSBhbmQgY29tbWFuZCBleGVjdXRpb24gcGF0aHMsIHdoaWNoIGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZW11bGF0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNDo0MDo1OC43NzMwODIzMzNaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM5MDIxNTI0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGVlOTRjNjIzMDA0NDVkMmZmMTQ3YjJiZTNkMDg3N2I1NTIyNzVlOWNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBBdWcgNyAwNDo0MDo1NyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jIGIvZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuY1xcbmluZGV4IDJkYWU0NzRkY2QwNjcuLjliMDg3NTVjYzY1MzkgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuY1xcbisrKyBiL2RyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmNcXG5AQCAtNzQ0LDcgKzc0NCw3IEBAIHN0YXRpYyB2b2lkIHZ1YjMwMF9pbmFjdGl2aXR5X3RpbWVyX2V4cGlyZWQoc3RydWN0IHRpbWVyX2xpc3QgKnQpXFxuIFxcdHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCA9IHRpbWVyX2NvbnRhaW5lcl9vZih2dWIzMDAsIHQsXFxuIFxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICBpbmFjdGl2aXR5X3RpbWVyKTtcXG4gXFx0aWYgKCF2dWIzMDAtXFx1MDAzZWludGVyZmFjZSkge1xcbi1cXHRcXHRrcmVmX3B1dChcXHUwMDI2dnViMzAwLVxcdTAwM2VrcmVmLCB2dWIzMDBfZGVsZXRlKTtcXG4rXFx0XFx0LyogdGltZXJfZGVsZXRlX3N5bmMoKSB3aWxsIHdhaXQgZm9yIHVzICovXFxuIFxcdH0gZWxzZSBpZiAodnViMzAwLVxcdTAwM2VjbWQpIHtcXG4gXFx0XFx0bW9kX3RpbWVyKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWluYWN0aXZpdHlfdGltZXIsIGppZmZpZXMgKyBIWik7XFxuIFxcdH0gZWxzZSB7XFxuQEAgLTE0NTMsNyArMTQ1Myw3IEBAIHN0YXRpYyBpbnQgX19jb21tYW5kX3JlYWRfZGF0YShzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXFxuIFxcdFxcdFxcdFxcdFxcdFxcdCAgKGxpbmVhcl9sZW5ndGggLyAxNjM4NCkpO1xcbiBcXHRcXHRcXHRhZGRfdGltZXIoXFx1MDAyNnZ1YjMwMC1cXHUwMDNlc2dfdHJhbnNmZXJfdGltZXIpO1xcbiBcXHRcXHRcXHR1c2Jfc2dfd2FpdChcXHUwMDI2dnViMzAwLVxcdTAwM2VzZ19yZXF1ZXN0KTtcXG4tXFx0XFx0XFx0dGltZXJfZGVsZXRlKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZXNnX3RyYW5zZmVyX3RpbWVyKTtcXG4rXFx0XFx0XFx0dGltZXJfZGVsZXRlX3N5bmMoXFx1MDAyNnZ1YjMwMC1cXHUwMDNlc2dfdHJhbnNmZXJfdGltZXIpO1xcbiBcXHRcXHRcXHRpZiAodnViMzAwLVxcdTAwM2VzZ19yZXF1ZXN0LnN0YXR1cyBcXHUwMDNjIDApIHtcXG4gXFx0XFx0XFx0XFx0Y21kLVxcdTAwM2VlcnJvciA9IHZ1YjMwMC1cXHUwMDNlc2dfcmVxdWVzdC5zdGF0dXM7XFxuIFxcdFxcdFxcdFxcdGRhdGEtXFx1MDAzZWJ5dGVzX3hmZXJlZCA9IDA7XFxuQEAgLTE1NzAsMTAgKzE1NzAsMTAgQEAgc3RhdGljIGludCBfX2NvbW1hbmRfd3JpdGVfZGF0YShzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXFxuIFxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgIGxpbmVhcl9sZW5ndGggLyAxNjM4NCk7XFxuIFxcdFxcdFxcdGFkZF90aW1lcihcXHUwMDI2dnViMzAwLVxcdTAwM2VzZ190cmFuc2Zlcl90aW1lcik7XFxuIFxcdFxcdFxcdHVzYl9zZ193YWl0KFxcdTAwMjZ2dWIzMDAtXFx1MDAzZXNnX3JlcXVlc3QpO1xcbitcXHRcXHRcXHR0aW1lcl9kZWxldGVfc3luYyhcXHUwMDI2dnViMzAwLVxcdTAwM2VzZ190cmFuc2Zlcl90aW1lcik7XFxuIFxcdFxcdFxcdGlmIChjbWQtXFx1MDAzZWVycm9yKSB7XFxuIFxcdFxcdFxcdFxcdGRhdGEtXFx1MDAzZWJ5dGVzX3hmZXJlZCA9IDA7XFxuIFxcdFxcdFxcdH0gZWxzZSB7XFxuLVxcdFxcdFxcdFxcdHRpbWVyX2RlbGV0ZShcXHUwMDI2dnViMzAwLVxcdTAwM2VzZ190cmFuc2Zlcl90aW1lcik7XFxuIFxcdFxcdFxcdFxcdGlmICh2dWIzMDAtXFx1MDAzZXNnX3JlcXVlc3Quc3RhdHVzIFxcdTAwM2MgMCkge1xcbiBcXHRcXHRcXHRcXHRcXHRjbWQtXFx1MDAzZWVycm9yID0gdnViMzAwLVxcdTAwM2VzZ19yZXF1ZXN0LnN0YXR1cztcXG4gXFx0XFx0XFx0XFx0XFx0ZGF0YS1cXHUwMDNlYnl0ZXNfeGZlcmVkID0gMDtcXG5AQCAtMjMyNyw3ICsyMzI3LDYgQEAgc3RhdGljIGludCB2dWIzMDBfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcXG4gXFx0SU5JVF9XT1JLKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWRlYWR3b3JrLCB2dWIzMDBfZGVhZHdvcmtfdGhyZWFkKTtcXG4gXFx0a3JlZl9pbml0KFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWtyZWYpO1xcbiBcXHR0aW1lcl9zZXR1cChcXHUwMDI2dnViMzAwLVxcdTAwM2VzZ190cmFuc2Zlcl90aW1lciwgdnViMzAwX3NnX3RpbWVkX291dCwgMCk7XFxuLVxcdGtyZWZfZ2V0KFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWtyZWYpO1xcbiBcXHR0aW1lcl9zZXR1cChcXHUwMDI2dnViMzAwLVxcdTAwM2VpbmFjdGl2aXR5X3RpbWVyLFxcbiBcXHRcXHQgICAgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZCwgMCk7XFxuIFxcdHZ1YjMwMC1cXHUwMDNlaW5hY3Rpdml0eV90aW1lci5leHBpcmVzID0gamlmZmllcyArIEhaO1xcbkBAIC0yMzUwLDYgKzIzNDksNyBAQCBzdGF0aWMgaW50IHZ1YjMwMF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlLFxcbiBcXG4gZXJyX3N0b3BfaW86XFxuIFxcdHZ1YjMwMC1cXHUwMDNlaW50ZXJmYWNlID0gTlVMTDtcXG4rXFx0dGltZXJfZGVsZXRlX3N5bmMoXFx1MDAyNnZ1YjMwMC1cXHUwMDNlaW5hY3Rpdml0eV90aW1lcik7XFxuIFxcdGtyZWZfcHV0KFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWtyZWYsIHZ1YjMwMF9kZWxldGUpO1xcbiBcXG4gXFx0cmV0dXJuIHJldHZhbDtcXG5AQCAtMjM4NSw2ICsyMzg1LDcgQEAgc3RhdGljIHZvaWQgdnViMzAwX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcXG4gXFx0XFx0XFx0LyogcHJldmVudCBtb3JlIEkvTyBmcm9tIHN0YXJ0aW5nICovXFxuIFxcdFxcdFxcdHZ1YjMwMC1cXHUwMDNlaW50ZXJmYWNlID0gTlVMTDtcXG4gXFx0XFx0XFx0bW1jX3JlbW92ZV9ob3N0KG1tYyk7XFxuK1xcdFxcdFxcdHRpbWVyX2RlbGV0ZV9zeW5jKFxcdTAwMjZ2dWIzMDAtXFx1MDAzZWluYWN0aXZpdHlfdGltZXIpO1xcbiBcXHRcXHRcXHRrcmVmX3B1dChcXHUwMDI2dnViMzAwLVxcdTAwM2VrcmVmLCB2dWIzMDBfZGVsZXRlKTtcXG4gXFx0XFx0XFx0cHJfaW5mbyhcXFwiVVNCIHZ1YjMwMCByZW1vdGUgU0RJTyBob3N0IGNvbnRyb2xsZXJbJWRdXFxcIlxcbiBcXHRcXHRcXHRcXHRcXFwiIG5vdyBkaXNjb25uZWN0ZWRcXFwiLCBpZm51bSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA0OjQwOjU5LjE2NDA4MjA4M1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjY3MjM5ODI0MTc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1NQ19WVUIzMDBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkXCIsXG4gICAgXCJ2dWIzMDBfY21uZHdvcmtfdGhyZWFkXCIsXG4gICAgXCJ2dWIzMDBfcHJvYmVcIixcbiAgICBcInZ1YjMwMF9kaXNjb25uZWN0XCIsXG4gICAgXCJ2dWIzMDBfc2dfdGltZWRfb3V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgdGltZXIgc3luY2hyb25pemF0aW9uIGFuZCByZWZlcmVuY2UgY291bnRpbmcgaXNzdWVzIGluIHRoZSBWVUIzMDAgVVNCIE1NQyBob3N0IGRyaXZlci4gSXQgcmVwbGFjZXMgdGltZXJfZGVsZXRlIHdpdGggdGltZXJfZGVsZXRlX3N5bmMgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSBidWdzIGFuZCBmaXhlcyBhIHJlZmVyZW5jZSBjb3VudGluZyBpc3N1ZSBpbiB0aGUgaW5hY3Rpdml0eSB0aW1lciBjYWxsYmFjay4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZHJpdmVyJ3MgbGlmZWN5Y2xlIGFuZCBjb21tYW5kIGV4ZWN1dGlvbiBwYXRocywgd2hpY2ggY2FuIGJlIHJlYWNoZWQgdmlhIFVTQiBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGVlOTRjNjIzMDA0NDVkMmZmMTQ3YjJiZTNkMDg3N2I1NTIyNzVlOWNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyA3IDA0OjQwOjU3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYyBiL2RyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmNcbmluZGV4IDJkYWU0NzRkY2QwNjcuLjliMDg3NTVjYzY1MzkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jXG4rKysgYi9kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jXG5AQCAtNzQ0LDcgKzc0NCw3IEBAIHN0YXRpYyB2b2lkIHZ1YjMwMF9pbmFjdGl2aXR5X3RpbWVyX2V4cGlyZWQoc3RydWN0IHRpbWVyX2xpc3QgKnQpXG4gXHRzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAgPSB0aW1lcl9jb250YWluZXJfb2YodnViMzAwLCB0LFxuIFx0XHRcdFx0XHRcdFx0ICAgIGluYWN0aXZpdHlfdGltZXIpO1xuIFx0aWYgKCF2dWIzMDAtXHUwMDNlaW50ZXJmYWNlKSB7XG4tXHRcdGtyZWZfcHV0KFx1MDAyNnZ1YjMwMC1cdTAwM2VrcmVmLCB2dWIzMDBfZGVsZXRlKTtcbitcdFx0LyogdGltZXJfZGVsZXRlX3N5bmMoKSB3aWxsIHdhaXQgZm9yIHVzICovXG4gXHR9IGVsc2UgaWYgKHZ1YjMwMC1cdTAwM2VjbWQpIHtcbiBcdFx0bW9kX3RpbWVyKFx1MDAyNnZ1YjMwMC1cdTAwM2VpbmFjdGl2aXR5X3RpbWVyLCBqaWZmaWVzICsgSFopO1xuIFx0fSBlbHNlIHtcbkBAIC0xNDUzLDcgKzE0NTMsNyBAQCBzdGF0aWMgaW50IF9fY29tbWFuZF9yZWFkX2RhdGEoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwLFxuIFx0XHRcdFx0XHRcdCAgKGxpbmVhcl9sZW5ndGggLyAxNjM4NCkpO1xuIFx0XHRcdGFkZF90aW1lcihcdTAwMjZ2dWIzMDAtXHUwMDNlc2dfdHJhbnNmZXJfdGltZXIpO1xuIFx0XHRcdHVzYl9zZ193YWl0KFx1MDAyNnZ1YjMwMC1cdTAwM2VzZ19yZXF1ZXN0KTtcbi1cdFx0XHR0aW1lcl9kZWxldGUoXHUwMDI2dnViMzAwLVx1MDAzZXNnX3RyYW5zZmVyX3RpbWVyKTtcbitcdFx0XHR0aW1lcl9kZWxldGVfc3luYyhcdTAwMjZ2dWIzMDAtXHUwMDNlc2dfdHJhbnNmZXJfdGltZXIpO1xuIFx0XHRcdGlmICh2dWIzMDAtXHUwMDNlc2dfcmVxdWVzdC5zdGF0dXMgXHUwMDNjIDApIHtcbiBcdFx0XHRcdGNtZC1cdTAwM2VlcnJvciA9IHZ1YjMwMC1cdTAwM2VzZ19yZXF1ZXN0LnN0YXR1cztcbiBcdFx0XHRcdGRhdGEtXHUwMDNlYnl0ZXNfeGZlcmVkID0gMDtcbkBAIC0xNTcwLDEwICsxNTcwLDEwIEBAIHN0YXRpYyBpbnQgX19jb21tYW5kX3dyaXRlX2RhdGEoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwLFxuIFx0XHRcdFx0XHRcdFx0ICAgbGluZWFyX2xlbmd0aCAvIDE2Mzg0KTtcbiBcdFx0XHRhZGRfdGltZXIoXHUwMDI2dnViMzAwLVx1MDAzZXNnX3RyYW5zZmVyX3RpbWVyKTtcbiBcdFx0XHR1c2Jfc2dfd2FpdChcdTAwMjZ2dWIzMDAtXHUwMDNlc2dfcmVxdWVzdCk7XG4rXHRcdFx0dGltZXJfZGVsZXRlX3N5bmMoXHUwMDI2dnViMzAwLVx1MDAzZXNnX3RyYW5zZmVyX3RpbWVyKTtcbiBcdFx0XHRpZiAoY21kLVx1MDAzZWVycm9yKSB7XG4gXHRcdFx0XHRkYXRhLVx1MDAzZWJ5dGVzX3hmZXJlZCA9IDA7XG4gXHRcdFx0fSBlbHNlIHtcbi1cdFx0XHRcdHRpbWVyX2RlbGV0ZShcdTAwMjZ2dWIzMDAtXHUwMDNlc2dfdHJhbnNmZXJfdGltZXIpO1xuIFx0XHRcdFx0aWYgKHZ1YjMwMC1cdTAwM2VzZ19yZXF1ZXN0LnN0YXR1cyBcdTAwM2MgMCkge1xuIFx0XHRcdFx0XHRjbWQtXHUwMDNlZXJyb3IgPSB2dWIzMDAtXHUwMDNlc2dfcmVxdWVzdC5zdGF0dXM7XG4gXHRcdFx0XHRcdGRhdGEtXHUwMDNlYnl0ZXNfeGZlcmVkID0gMDtcbkBAIC0yMzI3LDcgKzIzMjcsNiBAQCBzdGF0aWMgaW50IHZ1YjMwMF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlLFxuIFx0SU5JVF9XT1JLKFx1MDAyNnZ1YjMwMC1cdTAwM2VkZWFkd29yaywgdnViMzAwX2RlYWR3b3JrX3RocmVhZCk7XG4gXHRrcmVmX2luaXQoXHUwMDI2dnViMzAwLVx1MDAzZWtyZWYpO1xuIFx0dGltZXJfc2V0dXAoXHUwMDI2dnViMzAwLVx1MDAzZXNnX3RyYW5zZmVyX3RpbWVyLCB2dWIzMDBfc2dfdGltZWRfb3V0LCAwKTtcbi1cdGtyZWZfZ2V0KFx1MDAyNnZ1YjMwMC1cdTAwM2VrcmVmKTtcbiBcdHRpbWVyX3NldHVwKFx1MDAyNnZ1YjMwMC1cdTAwM2VpbmFjdGl2aXR5X3RpbWVyLFxuIFx0XHQgICAgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZCwgMCk7XG4gXHR2dWIzMDAtXHUwMDNlaW5hY3Rpdml0eV90aW1lci5leHBpcmVzID0gamlmZmllcyArIEhaO1xuQEAgLTIzNTAsNiArMjM0OSw3IEBAIHN0YXRpYyBpbnQgdnViMzAwX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsXG4gXG4gZXJyX3N0b3BfaW86XG4gXHR2dWIzMDAtXHUwMDNlaW50ZXJmYWNlID0gTlVMTDtcbitcdHRpbWVyX2RlbGV0ZV9zeW5jKFx1MDAyNnZ1YjMwMC1cdTAwM2VpbmFjdGl2aXR5X3RpbWVyKTtcbiBcdGtyZWZfcHV0KFx1MDAyNnZ1YjMwMC1cdTAwM2VrcmVmLCB2dWIzMDBfZGVsZXRlKTtcbiBcbiBcdHJldHVybiByZXR2YWw7XG5AQCAtMjM4NSw2ICsyMzg1LDcgQEAgc3RhdGljIHZvaWQgdnViMzAwX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcbiBcdFx0XHQvKiBwcmV2ZW50IG1vcmUgSS9PIGZyb20gc3RhcnRpbmcgKi9cbiBcdFx0XHR2dWIzMDAtXHUwMDNlaW50ZXJmYWNlID0gTlVMTDtcbiBcdFx0XHRtbWNfcmVtb3ZlX2hvc3QobW1jKTtcbitcdFx0XHR0aW1lcl9kZWxldGVfc3luYyhcdTAwMjZ2dWIzMDAtXHUwMDNlaW5hY3Rpdml0eV90aW1lcik7XG4gXHRcdFx0a3JlZl9wdXQoXHUwMDI2dnViMzAwLVx1MDAzZWtyZWYsIHZ1YjMwMF9kZWxldGUpO1xuIFx0XHRcdHByX2luZm8oXCJVU0IgdnViMzAwIHJlbW90ZSBTRElPIGhvc3QgY29udHJvbGxlclslZF1cIlxuIFx0XHRcdFx0XCIgbm93IGRpc2Nvbm5lY3RlZFwiLCBpZm51bSk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNDo0MDo1OS4xNjQwODM1NTNaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5NzQzMTA1Nzk3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFZVQjMwMCBNTUMgSG9zdCBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIGhlcmUgdGhhdOKAmXMgdHdlYWtpbmcgdGhlIGBkcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jYCBmaWxlLiBJdCdzIG1ha2luZyBhIGZldyBpbnRlcmVzdGluZyBjaGFuZ2VzLiBGaXJzdCwgaXTigJlzIHJlcGxhY2luZyBgdGltZXJfZGVsZXRlYCB3aXRoIGB0aW1lcl9kZWxldGVfc3luY2AgZm9yIHRoZSBgc2dfdHJhbnNmZXJfdGltZXJgLiBUaGlzIGltbWVkaWF0ZWx5IHN1Z2dlc3RzIHRoZXkncmUgYWRkcmVzc2luZyBhIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbiBpbnZvbHZpbmcgdGhlIHRpbWVyLCBsaWtlbHkgcmVsYXRlZCB0byBzeW5jaHJvbml6YXRpb24uIFRoZW4sIEkgc2VlIHRoZXkndmUgcmVtb3ZlZCBzb21lIGBrcmVmYCBvcGVyYXRpb25zIOKAkyBga3JlZl9nZXRgIGFuZCBga3JlZl9wdXRgIOKAkyBhcm91bmQgdGhlIGluYWN0aXZpdHkgdGltZXIgY2FsbGJhY2sgZnVuY3Rpb24sIGB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkYC4gVGhleSd2ZSBhbHNvIGFkZGVkIGEgYHRpbWVyX2RlbGV0ZV9zeW5jYCBjYWxsIGZvciB0aGUgYGluYWN0aXZpdHlfdGltZXJgIGluIGJvdGggdGhlIHByb2JlIGVycm9yIHBhdGggYW5kIGR1cmluZyBkaXNjb25uZWN0LlxuXG5Ob3csIHRoaXMgaXMgdGhlIFVTQiBNTUMgaG9zdCBkcml2ZXIsIHRoZSBWVUIzMDAuIENvbnNpZGVyaW5nIHRoZSBuYXR1cmUgb2YgVVNCLCBJIHNob3VsZCBjb25zaWRlciByZWFjaGFiaWxpdHkgaW4gdmlydHVhbCBlbnZpcm9ubWVudHMuIEZvcnR1bmF0ZWx5LCBpdCdzIHF1aXRlIGxpa2VseSwgc2luY2Ugd2UgY2FuIGVtdWxhdGUgVVNCIGRldmljZXMgd2l0aCBVU0IgZ2FkZ2V0IG9yIGR1bW15X2hjZCwgYW5kIHN5emthbGxlciBoYXMgYSBwcmV0dHkgZ29vZCBVU0IgZnV6emVyLiBJdOKAmXMgZGVmaW5pdGVseSBzb21ldGhpbmcgdGhhdCBjYW4gYmUgdGFyZ2V0ZWQuIFRvIHVuZGVyc3RhbmQgdGhpcyBwcm9wZXJseSwgSSBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIHRvIHNlZSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLiBUaGlzIHNob3VsZCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoaXMgY29kZSBpcyBleHBvc2VkIGFuZCB3aGF0IGl0cyBkZXBlbmRlbmNpZXMgYXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTk1LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDQ6NDE6MDguOTA3MTkzNjRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDMzNDM2NDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidnViMzAwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL21tYy9ob3N0L0tjb25maWc9OTIwPWNvbmZpZyBNTUNfVlVCMzAwXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWctOTQ0LVxcdCAgVG8gY29tcGlsZSB0aGlzIG1tYyBob3N0IGNvbnRyb2xsZXIgZHJpdmVyIGFzIGEgbW9kdWxlLFxcbmRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZzo5NDU6XFx0ICBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHZ1YjMwMC5cXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWctOTQ2LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNDo0MTowOC45NTA1NDIyNDVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxODExNjg4NTU2NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEZXBlbmRlbmN5IENoZWNrOiBgTU1DX1ZVQjMwMGAqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhlIGRlcGVuZGVuY2llcyBmb3IgYE1NQ19WVUIzMDBgLiBUaGlzIGZlZWxzIGxpa2UgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBJIG5lZWQgdG8gcXVpY2tseSBhc2NlcnRhaW4gdGhlIHNjb3BlIG9mIHdoYXQgcmVsaWVzIG9uIHRoaXMgY29tcG9uZW50LCBib3RoIHVwc3RyZWFtIGFuZCBkb3duc3RyZWFtLiBTcGVjaWZpY2FsbHksIEknbSB0aGlua2luZyBhYm91dCB0aGUgc3RhbmRhcmQgc3VzcGVjdHM6IHdoYXQgbGlicmFyaWVzLCBvdGhlciBtb2R1bGVzLCBwb3RlbnRpYWxseSBldmVuIGV4dGVybmFsIHNlcnZpY2VzLCBhcmUgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSB0aWVkIHRvIGl0cyBmdW5jdGlvbmFsaXR5PyBLbm93aW5nIHRoZSBmdWxsIGRlcGVuZGVuY3kgZ3JhcGggaXMgY3J1Y2lhbCBiZWZvcmUgYW55IG1vZGlmaWNhdGlvbiwgdXBkYXRlIG9yIG1pZ3JhdGlvbi4gSSBuZWVkIHRvIGJlIGVzcGVjaWFsbHkgY29nbml6YW50IG9mIHBvdGVudGlhbCBjaXJjdWxhciBkZXBlbmRlbmNpZXMgYW5kIGltcGxpY2l0IGFzc3VtcHRpb25zIGJ1aWx0IGludG8gYW55IGxpbmtlZCBjb2RlLiBBcmUgdGhlcmUgYW55IGtub3duIGlzc3VlcyBmbGFnZ2VkIGluIHJlbGF0ZWQgZG9jdW1lbnRhdGlvbiBvciBpbnRlcm5hbCBidWcgdHJhY2tlcnM/IEtub3dpbmcgdGhpcyBpbmZvcm1hdGlvbiB3aWxsIGdyZWF0bHkgaGVscCB0byBwcmlvcml0aXplIG15IHdvcmsuIEkgbmVlZCB0byBtYWtlIHN1cmUgdG8gYWNjb3VudCBmb3IgaW1wbGljaXQgZGVwZW5kZW5jaWVzIGFzIHdlbGwgLSB0aGluZ3MgdGhhdCBtaWdodCBjYWxsIGBNTUNfVlVCMzAwYCdzIEFQSSBidXQgYXJlIG5vdCBkaXJlY3RseSBsaXN0ZWQgYXMgZGVwZW5kZW50cyBpbiBhIHN0YW5kYXJkIHRvb2wuIFRpbWUgdG8gcHVsbCB1cCB0aGUgZGVwZW5kZW5jeSBhbmFseXplciBhbmQgZGlnIGluLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjU1LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDQ6NDE6MjcuMDY3NDMwMzkyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1NjYyNzg1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNTUNfVlVCMzAwXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL21tYy9ob3N0L0tjb25maWc9OTEwPWNvbmZpZyBNTUNfSlo0NzQwXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWctOTE5LVxcbmRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZzo5MjA6Y29uZmlnIE1NQ19WVUIzMDBcXG5kcml2ZXJzL21tYy9ob3N0L0tjb25maWctOTIxLVxcdHRyaXN0YXRlIFxcXCJWVUIzMDAgVVNCIHRvIFNESU8vU0QvTU1DIEhvc3QgQ29udHJvbGxlciBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNDo0MToyNy4xMTMwOTgxOTdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzQ0MTQ5NjAyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBNTUMgSG9zdCBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgbGV0J3MgemVybyBpbiBvbiB0aGUgYGRyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZ2AgZmlsZSwgc3BlY2lmaWNhbGx5IGFyb3VuZCBsaW5lIDkyMC4gSSdtIGxpa2VseSBpbnRlcmVzdGVkIGluIGhvdyBzb21lIHBhcnRpY3VsYXIgZmVhdHVyZSBvciBvcHRpb24gcmVsYXRlZCB0byBNTUMgaG9zdCBjb250cm9sbGVycyBpcyBiZWluZyBjb25maWd1cmVkLiBHaXZlbiB0aGUgbG9jYXRpb24gd2l0aGluIEtjb25maWcsIEknbSBleHBlY3RpbmcgdG8gZmluZCBjb25kaXRpb25hbCBjb21waWxhdGlvbiBvcHRpb25zIG9yIGRlcGVuZGVuY2llcyBiZWluZyBkZWZpbmVkLiBNeSBnb2FsIGlzIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgc3BlY2lmaWMgYXNwZWN0IGlzIGNvbnRyb2xsZWQsIHdoYXQgb3RoZXIgZmVhdHVyZXMgaXQgbWlnaHQgZGVwZW5kIG9uLCBhbmQgcG90ZW50aWFsbHksIHdoYXQgaGFyZHdhcmUgcGxhdGZvcm1zIG9yIGtlcm5lbCBjb25maWd1cmF0aW9ucyBlbmFibGUgb3IgZGlzYWJsZSBpdC4gUGVyaGFwcyBJJ20gdHJ5aW5nIHRvIGRlYnVnIGFuIGlzc3VlLCBvciBzaW1wbHkgdW5kZXJzdGFuZCB0aGUgbG9naWMgYmVoaW5kIGEgbmV3IE1NQyBob3N0IGRyaXZlciBJJ20gbG9va2luZyBhdC4gTWF5YmUgSSdtIHRyeWluZyB0byBidWlsZCBhIGN1c3RvbSBrZXJuZWwgY29uZmlndXJhdGlvbiwgYW5kIG5lZWQgdG8ga25vdyB0aGUgaW1wbGljYXRpb25zIG9mIGVuYWJsaW5nIGEgcGFydGljdWxhciBNTUMtcmVsYXRlZCBvcHRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwNDEsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNDo0MTozMC40NTcyNTAxOTlaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDgxMjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDkxNSxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDkxNTpcXHRcXHQgIEpaNDc0MCwgSlo0NzUwLCBKWjQ3NzAgYW5kIEpaNDc4MCBTb0NzLlxcbiA5MTY6XFx0XFxuIDkxNzpcXHRcXHQgIElmIHlvdSBoYXZlIGEgYm9hcmQgYmFzZWQgb24gc3VjaCBhIFNvQyBhbmQgd2l0aCBhIFNEL01NQyBzbG90LFxcbiA5MTg6XFx0XFx0ICBzYXkgWSBvciBNIGhlcmUuXFxuIDkxOTpcXHRcXG4gOTIwOlxcdGNvbmZpZyBNTUNfVlVCMzAwXFxuIDkyMTpcXHRcXHR0cmlzdGF0ZSBcXFwiVlVCMzAwIFVTQiB0byBTRElPL1NEL01NQyBIb3N0IENvbnRyb2xsZXIgc3VwcG9ydFxcXCJcXG4gOTIyOlxcdFxcdGRlcGVuZHMgb24gVVNCXFxuIDkyMzpcXHRcXHRoZWxwXFxuIDkyNDpcXHRcXHQgIFRoaXMgc2VsZWN0cyBzdXBwb3J0IGZvciBFbGFuIERpZ2l0YWwgU3lzdGVtcycgVlVCMzAwIGNoaXAuXFxuIDkyNTpcXHRcXG4gOTI2OlxcdFxcdCAgVGhlIFZVQjMwMCBpcyBhIFVTQi1TRElPIEhvc3QgQ29udHJvbGxlciBJbnRlcmZhY2UgY2hpcFxcbiA5Mjc6XFx0XFx0ICB0aGF0IGVuYWJsZXMgdGhlIGhvc3QgY29tcHV0ZXIgdG8gdXNlIFNESU8vU0QvTU1DIGNhcmRzXFxuIDkyODpcXHRcXHQgIHZpYSBhIFVTQiAyLjAgb3IgVVNCIDEuMSBob3N0LlxcbiA5Mjk6XFx0XFxuIDkzMDpcXHRcXHQgIFRoZSBWVUIzMDAgY2hpcCB3aWxsIGJlIGZvdW5kIGluIGJvdGggcGh5c2ljYWxseSBzZXBhcmF0ZVxcbiA5MzE6XFx0XFx0ICBVU0IgdG8gU0RJTy9TRC9NTUMgYWRhcHRlcnMgYW5kIGVtYmVkZGVkIG9uIHNvbWUgbW90aGVyYm9hcmRzLlxcbiA5MzI6XFx0XFxuIDkzMzpcXHRcXHQgIFRoZSBWVUIzMDAgY2hpcCBzdXBwb3J0cyBTRCBhbmQgTU1DIG1lbW9yeSBjYXJkcyBpbiBhZGRpdGlvblxcbiA5MzQ6XFx0XFx0ICB0byBzaW5nbGUgYW5kIG11bHRpZnVuY3Rpb24gU0RJTyBjYXJkcy5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDQ6NDE6MzAuNDU3MzYwMTA5WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzgwNTQ0MTg4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBmcm9tIGFuIGV4cGVydCdzIHBlcnNwZWN0aXZlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBNTUNfVlVCMzAwIERyaXZlciBEZXBlbmRlbmNpZXMqKlxuXG5SaWdodCwgc28gYE1NQ19WVUIzMDBgIC0gdGhhdCdzIGEgZHJpdmVyIGZvciBhIHNwZWNpZmljIE1NQyBob3N0IGNvbnRyb2xsZXIsIGFuZCBpdCBsb29rcyBsaWtlIGl0J3MgYnVpbHQgb24gdG9wIG9mIGJvdGggYFVTQmAgYW5kIGBNTUNgIGl0c2VsZi4gVGhhdCBtZWFucyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGludGVyYWN0aW9uIHdvcmtzLiBNeSBmaXJzdCBzdGVwIGlzIHRvIHplcm8gaW4gb24gdGhlIHJlbGV2YW50IGNvZGUuIEknbSBoZWFkaW5nIHN0cmFpZ2h0IGZvciB0aGUgc291cmNlOiBgZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuY2AuIFRoaXMgaXMgd2hlcmUgdGhlIGNvcmUgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBgTU1DX1ZVQjMwMGAgZHJpdmVyIHJlc2lkZXMsIGFuZCBpdCdsbCBjb250YWluIHRoZSBmdW5jdGlvbnMgSSBuZWVkIHRvIGRpc3NlY3QuIEknbGwgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGUgY29udHJvbGxlciBpbnRlcmZhY2VzIHdpdGggdGhlIFVTQiBidXMgYW5kIHRoZW4sIGhvdyB0aGF0IHRyYW5zbGF0ZXMgdG8gTU1DIGNvbW1hbmRzIGFuZCBkYXRhIHRyYW5zZmVyLiBMZXQncyBzZWUgd2hhdCBpbnRlcmVzdGluZyB0aWRiaXRzIGFyZSBpbiB0aGF0IGAuY2AgZmlsZS4gSSdtIGV4cGVjdGluZyB0byBmaW5kIGludGVyZXN0aW5nIGZ1bmN0aW9ucyB0byB3b3JrIHdpdGguXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2NTMsIk91dHB1dFRva2VucyI6NjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA0OjQxOjM0LjI2MjgwNDU3NFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDM3NzE1NDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiX19jb21tYW5kX3JlYWRfZGF0YXxfX2NvbW1hbmRfd3JpdGVfZGF0YXx2dWIzMDBfcHJvYmV8dnViMzAwX2Rpc2Nvbm5lY3RcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTEzOTY9c3RhdGljIGludCB2dWIzMDBfdXNiX2J1bGtfbXNnKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMTQyOC1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjE0Mjk6c3RhdGljIGludCBfX2NvbW1hbmRfcmVhZF9kYXRhKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE0MzAtXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBtbWNfY29tbWFuZCAqY21kLCBzdHJ1Y3QgbW1jX2RhdGEgKmRhdGEpXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE1MDAtXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoxNTAxOnN0YXRpYyBpbnQgX19jb21tYW5kX3dyaXRlX2RhdGEoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwLFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMTUwMi1cXHRcXHRcXHRcXHRzdHJ1Y3QgbW1jX2NvbW1hbmQgKmNtZCwgc3RydWN0IG1tY19kYXRhICpkYXRhKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz0xNzM3PXN0YXRpYyB2b2lkIHZ1YjMwMF9jbW5kd29ya190aHJlYWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNzY3LVxcdFxcdGVsc2UgaWYgKE1NQ19EQVRBX1JFQUQgXFx1MDAyNiBkYXRhLVxcdTAwM2VmbGFncylcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjE3Njg6XFx0XFx0XFx0ZGF0YV9sZW5ndGggPSBfX2NvbW1hbmRfcmVhZF9kYXRhKHZ1YjMwMCwgY21kLCBkYXRhKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE3NjktXFx0XFx0ZWxzZVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MTc3MDpcXHRcXHRcXHRkYXRhX2xlbmd0aCA9IF9fY29tbWFuZF93cml0ZV9kYXRhKHZ1YjMwMCwgY21kLCBkYXRhKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE3NzEtXFx0XFx0cmVzZXRfZGV2aWNlID0gX192dWIzMDBfY29tbWFuZF9yZXNwb25zZSh2dWIzMDAsIGNtZCxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MjA4NT1zdGF0aWMgY29uc3Qgc3RydWN0IG1tY19ob3N0X29wcyB2dWIzMDBfbW1jX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjA5MS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjIwOTI6c3RhdGljIGludCB2dWIzMDBfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTIwOTMtXFx0XFx0XFx0Y29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yMzcyLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MjM3MzpzdGF0aWMgdm9pZCB2dWIzMDBfZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjM3NC17XFx0XFx0XFx0XFx0LyogTk9UIGlycSAqL1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz0yNDI3PXN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciB2dWIzMDBfZHJpdmVyID0ge1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjQyOC1cXHQubmFtZSA9IFxcXCJ2dWIzMDBcXFwiLFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MjQyOTpcXHQucHJvYmUgPSB2dWIzMDBfcHJvYmUsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoyNDMwOlxcdC5kaXNjb25uZWN0ID0gdnViMzAwX2Rpc2Nvbm5lY3QsXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yNDMxLVxcdC5zdXNwZW5kID0gdnViMzAwX3N1c3BlbmQsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA0OjQxOjM0LjMwNjU4MjM5OVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4MjI0MzIyOTY1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVlVCMzAwIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgc2V2ZXJhbCBrZXkgZnVuY3Rpb25zIHdpdGhpbiB0aGUgYHZ1YjMwMGAgZHJpdmVyLiBJIHNlZSBpdCdzIG1vZGlmeWluZyBgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZGAsIGBfX2NvbW1hbmRfcmVhZF9kYXRhYCwgYF9fY29tbWFuZF93cml0ZV9kYXRhYCwgYHZ1YjMwMF9wcm9iZWAsIGFuZCBgdnViMzAwX2Rpc2Nvbm5lY3RgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gaW5jbHVkZSB0aGVzZSBpbiBgRm9jdXNTeW1ib2xzYC5cblxuTm93LCBkaWdnaW5nIGEgYml0IGRlZXBlciwgSSByZW1lbWJlciBgX19jb21tYW5kX3JlYWRfZGF0YWAgYW5kIGBfX2NvbW1hbmRfd3JpdGVfZGF0YWAgYXJlIHN0YXRpYyBmdW5jdGlvbnMgY2FsbGVkIGZyb20gYHZ1YjMwMF9jbW5kd29ya190aHJlYWRgLiBTaW5jZSB0aGUgdGhyZWFkIGlzIGEgd29ya3F1ZXVlIGZ1bmN0aW9uLCB0aGF0IGxvb2tzIGxpa2UgYSB2ZXJ5IGdvb2QgZW50cnkgcG9pbnQgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZy4gU2ltaWxhcmx5LCBgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZGAgaXMgYSB0aW1lciBjYWxsYmFjaywgc28gdGhhdCdzIGFub3RoZXIgcG90ZW50aWFsbHkgZXhjZWxsZW50IHN0YXJ0aW5nIHBvaW50LiBBbmQgb2YgY291cnNlLCBgdnViMzAwX3Byb2JlYCBhbmQgYHZ1YjMwMF9kaXNjb25uZWN0YCBhcmUgdGhlIHN0YW5kYXJkIFVTQiBkcml2ZXIgY2FsbGJhY2tzLCBhbHNvIGltcG9ydGFudCB0byBrZWVwIGluIGZvY3VzLlxuXG5OZXh0LCBJIG5lZWQgdG8gY2hlY2sgdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9ucy4gTGV0J3Mgc2VlLi4uIGBNTUNfVlVCMzAwYC4uLiBJdCBkZXBlbmRzIG9uIGBVU0JgIGFuZCBgTU1DYC4gYE1NQ2AgaXMgdXN1YWxseSBlbmFibGVkIGluIHN5emthbGxlciBieSBkZWZhdWx0LCBzbyBgTU1DX1ZVQjMwMGAgaXMgcHJvYmFibHkgdGhlIG1haW4gb25lIHdlIG5lZWQgdG8gZm9jdXMgb24uXG5cbkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQncyBsb29rIGF0IHRoZSBgZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnYCBmaWxlLiBZZXMsIGBjb25maWcgTU1DX1ZVQjMwMGAgZGVwZW5kcyBvbiBgVVNCYCBhbmQgaXMgd2l0aGluIHRoZSBgbWVudWNvbmZpZyBNTUNgIHdoaWNoIGluIHR1cm4gZGVwZW5kcyBvbiBgSEFTX0lPTUVNYC5cblxuVGhlcmVmb3JlLCB0aGUgYEVuYWJsZUNvbmZpZ3NgIGxpc3Qgc2hvdWxkIGp1c3QgYmUgYFtcIk1NQ19WVUIzMDBcIl1gLiBUaGF0IHNob3VsZCBiZSBzdWZmaWNpZW50LlxuXG5Pa2F5LCBub3csIGxldCdzIGp1c3QgZG8gYSBxdWljayBzYW5pdHkgY2hlY2sgYW5kIG1ha2Ugc3VyZSB0aGF0IGB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkYCBpc24ndCBzdGF0aWMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU4OTUsIk91dHB1dFRva2VucyI6NDYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDQ6NDE6NDIuNTMwOTA4MTE0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzQ4Njc4NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz03MDk9c3RhdGljIHZvaWQgdnViMzAwX2RlYWR3b3JrX3RocmVhZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTc0MS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjc0MjpzdGF0aWMgdm9pZCB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkKHN0cnVjdCB0aW1lcl9saXN0ICp0KVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtNzQzLXtcXHRcXHRcXHRcXHQvKiBzb2Z0aXJxICovXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTIwOTI9c3RhdGljIGludCB2dWIzMDBfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjMzMC1cXHR0aW1lcl9zZXR1cChcXHUwMDI2dnViMzAwLVxcdTAwM2VpbmFjdGl2aXR5X3RpbWVyLFxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MjMzMTpcXHRcXHQgICAgdnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZCwgMCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yMzMyLVxcdHZ1YjMwMC1cXHUwMDNlaW5hY3Rpdml0eV90aW1lci5leHBpcmVzID0gamlmZmllcyArIEhaO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNDo0MTo0Mi41NzQ0MDEwNloiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjc3ODkzNzU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUuLi5cblxuKipBbmFseXppbmcgdGhpcyBFbnRyeSBQb2ludCoqXG5cblJpZ2h0LCBzbyB0aGlzIGNvZGUgc25pcHBldCB1c2VzIGEgdGltZXIgY2FsbGJhY2sg4oCTIEkgY2FuIHNlZSB0aGF0LiBFdmVuIHRob3VnaCB0aGUgY29udGV4dCBtaWdodCAqYXBwZWFyKiBzdGF0aWMsIGJlY2F1c2UgaXQncyBpbml0aWF0ZWQgYnkgYSB0aW1lciwgaXQgZXNzZW50aWFsbHkgYmVjb21lcyBhbiBlbnRyeSBwb2ludCBpbnRvIHRoZSBzeXN0ZW0gYXQgcmVndWxhciBpbnRlcnZhbHMuIFRoYXQgY2hhbmdlcyBob3cgSSBhcHByb2FjaCB0aGlzLCBpdCdzIG5vdCBqdXN0IHNvbWUgdmFyaWFibGUuIEkgbmVlZCB0byB0cmVhdCBpdCBkaWZmZXJlbnRseSBhcyBpdCdzIHRoZSBzdGFydCBwb2ludCBvZiBhIHByb2Nlc3MuXG5cbk5vdywgd2hlcmUgZG9lcyB0aGlzIHRpbWVyIGxlYWQ/IExldCBtZSBleGFtaW5lIHRoZSBgdnViMzAwX2NtbmR3b3JrX3RocmVhZGAgZnVuY3Rpb24gdG8gdW5kZXJzdGFuZCB0aGUgcHJvY2Vzcy4gVGhhdCdzIHRoZSBrZXkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcxMTQsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNDo0MTo0NS44NTIzMDIyMDlaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzNDE1OTQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZ1YjMwMF9jbW5kd29ya190aHJlYWRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTU2OD1zdGF0aWMgdm9pZCBjaGVja192dWIzMDBfcG9ydF9zdGF0dXMoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwKVxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy01NzEtXFx0ICogY21kX211dGV4IGlzIGhlbGQgYnkgdnViMzAwX3BvbGx3b3JrX3RocmVhZCxcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjU3MjpcXHQgKiB2dWIzMDBfZGVhZHdvcmtfdGhyZWFkIG9yIHZ1YjMwMF9jbW5kd29ya190aHJlYWRcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTU3My1cXHQgKi9cXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9ODkwPXN0YXRpYyB2b2lkIHNlbmRfY29tbWFuZChzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDApXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy04OTEte1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6ODkyOlxcdC8qIGNtZF9tdXRleCBpcyBoZWxkIGJ5IHZ1YjMwMF9jbW5kd29ya190aHJlYWQgKi9cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTg5My1cXHRzdHJ1Y3QgbW1jX2NvbW1hbmQgKmNtZCA9IHZ1YjMwMC1cXHUwMDNlY21kO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz0xMzk2PXN0YXRpYyBpbnQgdnViMzAwX3VzYl9idWxrX21zZyhzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTEzOTkte1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MTQwMDpcXHQvKiBjbWRfbXV0ZXggaXMgaGVsZCBieSB2dWIzMDBfY21uZHdvcmtfdGhyZWFkICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNDAxLVxcdHN0cnVjdCB1c2JfZGV2aWNlICp1c2JfZGV2ID0gdnViMzAwLVxcdTAwM2V1ZGV2O1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz0xNDI5PXN0YXRpYyBpbnQgX19jb21tYW5kX3JlYWRfZGF0YShzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDAsXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE0MzEte1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM6MTQzMjpcXHQvKiBjbWRfbXV0ZXggaXMgaGVsZCBieSB2dWIzMDBfY21uZHdvcmtfdGhyZWFkICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNDMzLVxcdGludCBsaW5lYXJfbGVuZ3RoID0gdnViMzAwLVxcdTAwM2VkYXRhc2l6ZTtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MTUwMT1zdGF0aWMgaW50IF9fY29tbWFuZF93cml0ZV9kYXRhKHN0cnVjdCB2dWIzMDBfbW1jX2hvc3QgKnZ1YjMwMCxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMTUwMy17XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoxNTA0OlxcdC8qIGNtZF9tdXRleCBpcyBoZWxkIGJ5IHZ1YjMwMF9jbW5kd29ya190aHJlYWQgKi9cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTE1MDUtXFx0dW5zaWduZWQgcGlwZSA9IHVzYl9zbmRidWxrcGlwZSh2dWIzMDAtXFx1MDAzZXVkZXYsIHZ1YjMwMC1cXHUwMDNlZGF0YV9vdXRfZXApO1xcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYz0xNTg5PXN0YXRpYyBib29sIF9fdnViMzAwX2NvbW1hbmRfcmVzcG9uc2Uoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwLFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNTkyLXtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjE1OTM6XFx0LyogY21kX211dGV4IGlzIGhlbGQgYnkgdnViMzAwX2NtbmR3b3JrX3RocmVhZCAqL1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMTU5NC1cXHRsb25nIHJlc3ByZXR2YWw7XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTE3MDU9c3RhdGljIHZvaWQgY29uc3RydWN0X3JlcXVlc3RfcmVzcG9uc2Uoc3RydWN0IHZ1YjMwMF9tbWNfaG9zdCAqdnViMzAwLFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xNzM2LS8qIHRoaXMgdGhyZWFkIHJ1bnMgb25seSB3aGVuIHRoZXJlIGlzIGFuIHVwcGVyIGxldmVsIGNvbW1hbmQgcmVxIG91dHN0YW5kaW5nICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoxNzM3OnN0YXRpYyB2b2lkIHZ1YjMwMF9jbW5kd29ya190aHJlYWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMTczOC17XFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jPTIwOTI9c3RhdGljIGludCB2dWIzMDBfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjMyNS1cXHRJTklUX0RFTEFZRURfV09SSyhcXHUwMDI2dnViMzAwLVxcdTAwM2Vwb2xsd29yaywgdnViMzAwX3BvbGx3b3JrX3RocmVhZCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoyMzI2OlxcdElOSVRfV09SSyhcXHUwMDI2dnViMzAwLVxcdTAwM2VjbW5kd29yaywgdnViMzAwX2NtbmR3b3JrX3RocmVhZCk7XFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yMzI3LVxcdElOSVRfV09SSyhcXHUwMDI2dnViMzAwLVxcdTAwM2VkZWFkd29yaywgdnViMzAwX2RlYWR3b3JrX3RocmVhZCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA0OjQxOjQ1Ljg5NTcyNjU2NFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4NDcwNjAzODEwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVlVCMzAwIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgYHZ1YjMwMF9jbW5kd29ya190aHJlYWRgIGlzIGEgd29ya3F1ZXVlIGZ1bmN0aW9uLCB0aGF0IG11Y2ggaXMgY2xlYXIuIFRoZSBwcmltYXJ5IGZvY3VzIG9mIHRoaXMgcGF0Y2ggc2VlbXMgdG8gYWRkcmVzcyBhIHBvdGVudGlhbCB1c2UtYWZ0ZXItZnJlZSBvciBtZW1vcnkgbGVhayBpc3N1ZSB3aXRoaW4gdGhlIGB2dWIzMDAuY2AgZHJpdmVyLCBzcGVjaWZpY2FsbHkgY29uY2VybmluZyB0aGUgaW5jb3JyZWN0IHVzZSBvZiBgdGltZXJfZGVsZXRlYCBpbnN0ZWFkIG9mIGB0aW1lcl9kZWxldGVfc3luY2AgYW5kIGFsc28gdGhlIGluY29ycmVjdCB1c2Ugb2YgYGtyZWZfZ2V0YC9ga3JlZl9wdXRgLiBHaXZlbiB0aGlzIGZ1bmN0aW9uYWwgaW1wYWN0LCBmdXp6aW5nIGlzIGRlZmluaXRlbHkgYSB3b3J0aHdoaWxlIG5leHQgc3RlcC5cblxuTGV0J3MgcXVpY2tseSByZXZpZXcgdGhlIGBGb2N1c1N5bWJvbHNgLiBXZSdyZSBsb29raW5nIGF0IGB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkYCwgYHZ1YjMwMF9jbW5kd29ya190aHJlYWRgLCBgdnViMzAwX3Byb2JlYCwgYW5kIGB2dWIzMDBfZGlzY29ubmVjdGAuXG5cbk5vdywgYmVmb3JlIGRpdmluZyB0b28gZGVlcCwgaXQncyBnb29kIHByYWN0aWNlIHRvIHF1aWNrbHkgY2hlY2sgZm9yIG90aGVyIG1vZGlmaWNhdGlvbnMgaW4gdGhlIGNvZGUuIEFoLCBsb29rcyBsaWtlIGBfX2NvbW1hbmRfcmVhZF9kYXRhYCBhbmQgYF9fY29tbWFuZF93cml0ZV9kYXRhYCBhcmUgYWxzbyBtb2RpZmllZC4gVGhleSdyZSBzdGF0aWMgYW5kIGNhbGxlZCBmcm9tIGB2dWIzMDBfY21uZHdvcmtfdGhyZWFkYCwgd2hpY2ggbWFrZXMgYHZ1YjMwMF9jbW5kd29ya190aHJlYWRgIGFuIGV2ZW4gbW9yZSBjb21wZWxsaW5nIGVudHJ5cG9pbnQgZm9yIGFuYWx5c2lzIGFuZCBkZWJ1Z2dpbmcuXG5cbkFsc28gb2YgaW50ZXJlc3QgaXMgYHZ1YjMwMF9zZ190aW1lZF9vdXRgLCB3aGljaCBhcHBlYXJzIHRvIGJlIHRoZSB0aW1lciBjYWxsYmFjayBmb3IgYHNnX3RyYW5zZmVyX3RpbWVyYC4gVGhpcyBzaG91bGQgYmUgbG9va2VkIGF0IGFsb25nc2lkZSB0aGUgY29yZSBjaGFuZ2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4NjAxLCJPdXRwdXRUb2tlbnMiOjQ1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjUzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA0OjQxOjU0LjM2NjMzMzc1NVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDUyODY1NjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidnViMzAwX3NnX3RpbWVkX291dFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9ODkwPXN0YXRpYyB2b2lkIHNlbmRfY29tbWFuZChzdHJ1Y3QgdnViMzAwX21tY19ob3N0ICp2dWIzMDApXFxuLS1cXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jLTExODEtICovXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYzoxMTgyOnN0YXRpYyB2b2lkIHZ1YjMwMF9zZ190aW1lZF9vdXQoc3RydWN0IHRpbWVyX2xpc3QgKnQpXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0xMTgzLXtcXG4tLVxcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmM9MjA5Mj1zdGF0aWMgaW50IHZ1YjMwMF9wcm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlLFxcbi0tXFxuZHJpdmVycy9tbWMvaG9zdC92dWIzMDAuYy0yMzI4LVxcdGtyZWZfaW5pdChcXHUwMDI2dnViMzAwLVxcdTAwM2VrcmVmKTtcXG5kcml2ZXJzL21tYy9ob3N0L3Z1YjMwMC5jOjIzMjk6XFx0dGltZXJfc2V0dXAoXFx1MDAyNnZ1YjMwMC1cXHUwMDNlc2dfdHJhbnNmZXJfdGltZXIsIHZ1YjMwMF9zZ190aW1lZF9vdXQsIDApO1xcbmRyaXZlcnMvbW1jL2hvc3QvdnViMzAwLmMtMjMzMC1cXHR0aW1lcl9zZXR1cChcXHUwMDI2dnViMzAwLVxcdTAwM2VpbmFjdGl2aXR5X3RpbWVyLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwNDo0MTo1NC40MTE2MjUzM1oiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTg5Mjk2OTE5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXNpcyBvZiB0aGUgVlVCMzAwIFVTQiBNTUMgSG9zdCBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGNvbmZpcm1lZCB0aGF0IGB2dWIzMDBfc2dfdGltZWRfb3V0YCBpcyBpbmRlZWQgdGhlIHRpbWVyIGNhbGxiYWNrIHdlJ3JlIGFmdGVyLCBzbyBJIHNob3VsZCBkZWZpbml0ZWx5IGluY2x1ZGUgaXQgaW4gYEZvY3VzU3ltYm9sc2AuIExldCdzIGdldCB0aGF0IGxpc3QgZmluYWxpemVkLlxuXG5NeSBgRm9jdXNTeW1ib2xzYCBhcmU6IGB2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkYCwgYHZ1YjMwMF9jbW5kd29ya190aHJlYWRgLCBgdnViMzAwX3Byb2JlYCwgYHZ1YjMwMF9kaXNjb25uZWN0YCwgYW5kIG5vdywgaW1wb3J0YW50bHksIGB2dWIzMDBfc2dfdGltZWRfb3V0YC5cblxuUmlnaHQsIGxldCdzIGp1c3QgcXVpY2tseSBjb25maXJtIHRoYXQgYHZ1YjMwMF9wcm9iZWAgYW5kIGB2dWIzMDBfZGlzY29ubmVjdGAgYXJlIHNlbnNpYmxlIGVudHJ5cG9pbnRzLiBZZXAsIHRoZXkncmUgVVNCIGRyaXZlciBjYWxsYmFja3MsIHNvIHRoZXkncmUgc29saWQgY2hvaWNlcyBmb3IgZnV6emluZyBlbnRyeSBwb2ludHMuXG5cbk5leHQsIEkgbmVlZCB0byBjaGVjayB0aGUgY29uZmlndXJhdGlvbiByZXF1aXJlbWVudHMuIElzIGBNTUNfVlVCMzAwYCB0aGUgb25seSBjb25maWcgbmVlZGVkIGZvciB0aGlzIGRyaXZlcj8gWWVzLCBpdCBhcHBlYXJzIHRvIGJlLiBUaGF0J3MgYSBnb29kIHN0YXJ0LlxuXG5IbW0sIHdhaXQgYSBtaW51dGUsIHRoZSBwYXRjaCAqYWxzbyogbW9kaWZpZXMgYHZ1YjMwMF9wcm9iZWAgYW5kIGB2dWIzMDBfZGlzY29ubmVjdGAuIFRoYXQncyBpbXBvcnRhbnQ7IGl0IHJlaW5mb3JjZXMgdGhlaXIgc2lnbmlmaWNhbmNlIGFzIGtleSBmdW5jdGlvbnMuXG5cblRoZSBwYXRjaCdzIHJlYXNvbmluZyBtYWtlcyBzZW5zZTogSXQncyBhZGRyZXNzaW5nIHRpbWVyIHN5bmNocm9uaXphdGlvbiBhbmQgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlcyBpbiB0aGUgVlVCMzAwIFVTQiBNTUMgaG9zdCBkcml2ZXIuIFNwZWNpZmljYWxseSwgaXQncyBzd2FwcGluZyBgdGltZXJfZGVsZXRlYCBmb3IgYHRpbWVyX2RlbGV0ZV9zeW5jYCB0byBtaXRpZ2F0ZSB1c2UtYWZ0ZXItZnJlZSBidWdzIGFuZCBmaXhpbmcgYSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUgaW4gdGhlIGluYWN0aXZpdHkgdGltZXIgY2FsbGJhY2suIFRoZXNlIGFyZSBmdW5kYW1lbnRhbCBjaGFuZ2VzIGltcGFjdGluZyB0aGUgZHJpdmVyJ3MgbGlmZWN5Y2xlIGFuZCBjb21tYW5kIGV4ZWN1dGlvbiBwYXRocywgYW5kIHRoZXkncmUgZGVmaW5pdGVseSByZWFjaGFibGUgdmlhIFVTQiBlbXVsYXRpb24uIFRoaXMgaXMgd2hlcmUgdGhlIHZ1bG5lcmFiaWxpdGllcyBjb3VsZCBsaWUuXG5cbkp1c3QgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLCBJJ2xsIGRvdWJsZS1jaGVjayBgTU1DX1ZVQjMwMGAncyBkZXBlbmRlbmNpZXMuIGBkZXBlbmRzIG9uIFVTQmAgYW5kIGBNTUNgLiBCb3RoIGFyZSBzdGFuZGFyZCBzdWJzeXN0ZW1zOyBubyBzdXJwcmlzZXMgdGhlcmUuIFNvLCB5ZXMsIGBNTUNfVlVCMzAwYCBpcyBzdWZmaWNpZW50LlxuXG5Pa2F5LCBldmVyeXRoaW5nIGxvb2tzIGdvb2QuIFRpbWUgdG8gY29uc3RydWN0IHRoZSBmaW5hbCByZXNwb25zZS5cblxuYGBganNvblxue1xuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkXCIsXG4gICAgXCJ2dWIzMDBfY21uZHdvcmtfdGhyZWFkXCIsXG4gICAgXCJ2dWIzMDBfcHJvYmVcIixcbiAgICBcInZ1YjMwMF9kaXNjb25uZWN0XCIsXG4gICAgXCJ2dWIzMDBfc2dfdGltZWRfb3V0XCJcbiAgXSxcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1NQ19WVUIzMDBcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyB0aW1lciBzeW5jaHJvbml6YXRpb24gYW5kIHJlZmVyZW5jZSBjb3VudGluZyBpc3N1ZXMgaW4gdGhlIFZVQjMwMCBVU0IgTU1DIGhvc3QgZHJpdmVyLiBJdCByZXBsYWNlcyB0aW1lcl9kZWxldGUgd2l0aCB0aW1lcl9kZWxldGVfc3luYyB0byBwcmV2ZW50IHVzZS1hZnRlci1mcmVlIGJ1Z3MgYW5kIGZpeGVzIGEgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlIGluIHRoZSBpbmFjdGl2aXR5IHRpbWVyIGNhbGxiYWNrLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBkcml2ZXIncyBsaWZlY3ljbGUgYW5kIGNvbW1hbmQgZXhlY3V0aW9uIHBhdGhzLCB3aGljaCBjYW4gYmUgcmVhY2hlZCB2aWEgVVNCIGVtdWxhdGlvbi5cIlxufVxuYGBgXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk1MzUsIk91dHB1dFRva2VucyI6MTc3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTU3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA0OjQyOjA2LjMwNDYwMTUxM1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk5MzAxMjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNTUNfVlVCMzAwXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidnViMzAwX2luYWN0aXZpdHlfdGltZXJfZXhwaXJlZFwiLFxuICAgIFwidnViMzAwX2NtbmR3b3JrX3RocmVhZFwiLFxuICAgIFwidnViMzAwX3Byb2JlXCIsXG4gICAgXCJ2dWIzMDBfZGlzY29ubmVjdFwiLFxuICAgIFwidnViMzAwX3NnX3RpbWVkX291dFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIHRpbWVyIHN5bmNocm9uaXphdGlvbiBhbmQgcmVmZXJlbmNlIGNvdW50aW5nIGlzc3VlcyBpbiB0aGUgVlVCMzAwIFVTQiBNTUMgaG9zdCBkcml2ZXIuIEl0IHJlcGxhY2VzIHRpbWVyX2RlbGV0ZSB3aXRoIHRpbWVyX2RlbGV0ZV9zeW5jIHRvIHByZXZlbnQgdXNlLWFmdGVyLWZyZWUgYnVncyBhbmQgZml4ZXMgYSByZWZlcmVuY2UgY291bnRpbmcgaXNzdWUgaW4gdGhlIGluYWN0aXZpdHkgdGltZXIgY2FsbGJhY2suIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGRyaXZlcidzIGxpZmVjeWNsZSBhbmQgY29tbWFuZCBleGVjdXRpb24gcGF0aHMsIHdoaWNoIGNhbiBiZSByZWFjaGVkIHZpYSBVU0IgZW11bGF0aW9uLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1NQ19WVUIzMDBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2dWIzMDBfaW5hY3Rpdml0eV90aW1lcl9leHBpcmVkXCIsXG4gICAgXCJ2dWIzMDBfY21uZHdvcmtfdGhyZWFkXCIsXG4gICAgXCJ2dWIzMDBfcHJvYmVcIixcbiAgICBcInZ1YjMwMF9kaXNjb25uZWN0XCIsXG4gICAgXCJ2dWIzMDBfc2dfdGltZWRfb3V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgdGltZXIgc3luY2hyb25pemF0aW9uIGFuZCByZWZlcmVuY2UgY291bnRpbmcgaXNzdWVzIGluIHRoZSBWVUIzMDAgVVNCIE1NQyBob3N0IGRyaXZlci4gSXQgcmVwbGFjZXMgdGltZXJfZGVsZXRlIHdpdGggdGltZXJfZGVsZXRlX3N5bmMgdG8gcHJldmVudCB1c2UtYWZ0ZXItZnJlZSBidWdzIGFuZCBmaXhlcyBhIHJlZmVyZW5jZSBjb3VudGluZyBpc3N1ZSBpbiB0aGUgaW5hY3Rpdml0eSB0aW1lciBjYWxsYmFjay4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgZHJpdmVyJ3MgbGlmZWN5Y2xlIGFuZCBjb21tYW5kIGV4ZWN1dGlvbiBwYXRocywgd2hpY2ggY2FuIGJlIHJlYWNoZWQgdmlhIFVTQiBlbXVsYXRpb24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowbwzmb[1] Phase: Succeeded StartedAt: 2026-08-07 04:42:16 +0000 UTC FinishedAt: 2026-08-07 04:42:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-07 04:42:16 +0000 UTC FinishedAt: 2026-08-07 04:42:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2] Phase: Succeeded StartedAt: 2026-08-07 04:42:16 +0000 UTC FinishedAt: 2026-08-07 08:24:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-07 04:42:17 +0000 UTC FinishedAt: 2026-08-07 08:24:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-07 04:42:17 +0000 UTC FinishedAt: 2026-08-07 04:42:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-07 04:42:17 +0000 UTC FinishedAt: 2026-08-07 04:42:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbwzmb/series-workflowbwzmb-convert-artifact-671961149/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-07 04:42:27 +0000 UTC FinishedAt: 2026-08-07 04:58:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-07 04:42:27 +0000 UTC FinishedAt: 2026-08-07 04:58:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*caa99bc3-824d-4fa6-8f63-90ecf855cebe,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbwzmb/series-workflowbwzmb-convert-artifact-671961149/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "fa731e84-5182-4304-bad6-5821c5874d26", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbwzmb/series-workflowbwzmb-build-action-1248229747/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-07 04:42:27 +0000 UTC FinishedAt: 2026-08-07 04:58:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*caa99bc3-824d-4fa6-8f63-90ecf855cebe,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbwzmb/series-workflowbwzmb-convert-artifact-671961149/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "fa731e84-5182-4304-bad6-5821c5874d26", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbwzmb/series-workflowbwzmb-build-action-1248229747/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-07 04:58:43 +0000 UTC FinishedAt: 2026-08-07 04:58:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-07 04:58:43 +0000 UTC FinishedAt: 2026-08-07 04:58:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-07 04:58:43 +0000 UTC FinishedAt: 2026-08-07 04:58:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-07 04:58:43 +0000 UTC FinishedAt: 2026-08-07 04:58:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbwzmb/series-workflowbwzmb-convert-artifact-3861191576/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-07 04:58:53 +0000 UTC FinishedAt: 2026-08-07 05:00:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-07 04:58:53 +0000 UTC FinishedAt: 2026-08-07 05:00:46 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*fa731e84-5182-4304-bad6-5821c5874d26,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbwzmb/series-workflowbwzmb-build-action-1248229747/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-07 05:00:56 +0000 UTC FinishedAt: 2026-08-07 05:00:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-07 05:00:56 +0000 UTC FinishedAt: 2026-08-07 05:00:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-07 05:00:56 +0000 UTC FinishedAt: 2026-08-07 05:17:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-07 05:00:56 +0000 UTC FinishedAt: 2026-08-07 05:17:25 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*caa99bc3-824d-4fa6-8f63-90ecf855cebe,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbwzmb/series-workflowbwzmb-convert-artifact-3861191576/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "f2718310-e965-4f56-8696-776917721443", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbwzmb/series-workflowbwzmb-build-action-2123920388/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-07 05:00:56 +0000 UTC FinishedAt: 2026-08-07 05:17:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*caa99bc3-824d-4fa6-8f63-90ecf855cebe,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbwzmb/series-workflowbwzmb-convert-artifact-3861191576/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "f2718310-e965-4f56-8696-776917721443", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbwzmb/series-workflowbwzmb-build-action-2123920388/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-07 05:17:25 +0000 UTC FinishedAt: 2026-08-07 05:17:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-07 05:17:25 +0000 UTC FinishedAt: 2026-08-07 05:17:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-07 05:17:25 +0000 UTC FinishedAt: 2026-08-07 05:19:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-07 05:17:25 +0000 UTC FinishedAt: 2026-08-07 05:19:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*f2718310-e965-4f56-8696-776917721443,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbwzmb/series-workflowbwzmb-build-action-2123920388/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-07 05:19:57 +0000 UTC FinishedAt: 2026-08-07 08:24:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-07 05:19:57 +0000 UTC FinishedAt: 2026-08-07 08:24:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*fa731e84-5182-4304-bad6-5821c5874d26,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*f2718310-e965-4f56-8696-776917721443,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbwzmb/series-workflowbwzmb-build-action-1248229747/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbwzmb/series-workflowbwzmb-build-action-2123920388/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-07 05:19:57 +0000 UTC FinishedAt: 2026-08-07 05:20:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-07 05:19:57 +0000 UTC FinishedAt: 2026-08-07 05:20:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbwzmb/series-workflowbwzmb-convert-artifact-2029853297/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-07 05:19:57 +0000 UTC FinishedAt: 2026-08-07 05:19:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-07 05:19:57 +0000 UTC FinishedAt: 2026-08-07 05:19:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-07 05:19:57 +0000 UTC FinishedAt: 2026-08-07 05:19:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-07 05:20:07 +0000 UTC FinishedAt: 2026-08-07 08:24:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbwzmb[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vub300_inactivity_timer_expired","vub300_cmndwork_thread","vub300_probe","vub300_disconnect","vub300_sg_timed_out"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["MMC_VUB300"],"series_id":"64f6a2f9-788b-44e6-aba4-057e55ddb70a","tree_name":"drm-next","tree_url":"https://gitlab.freedesktop.org/drm/kernel.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-07 05:20:07 +0000 UTC FinishedAt: 2026-08-07 08:24:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*fa731e84-5182-4304-bad6-5821c5874d26,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*f2718310-e965-4f56-8696-776917721443,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Fuzz,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbwzmb/series-workflowbwzmb-build-action-1248229747/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:/patched,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbwzmb/series-workflowbwzmb-build-action-2123920388/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:config,Path:/tmp/config.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowbwzmb/series-workflowbwzmb-convert-artifact-2029853297/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}