Name: series-workflownd27b Phase: Succeeded StartedAt: 2026-07-23 15:35:34 +0000 UTC FinishedAt: 2026-07-23 20:50:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[0] Phase: Succeeded StartedAt: 2026-07-23 15:35:34 +0000 UTC FinishedAt: 2026-07-23 15:59:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[0].run-triage Phase: Succeeded StartedAt: 2026-07-23 15:35:34 +0000 UTC FinishedAt: 2026-07-23 15:59:46 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "e61e6fd4f139f2342a6bc86da602df7456ef87f6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM_INTEL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "e61e6fd4f139f2342a6bc86da602df7456ef87f6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM_INTEL" ], "series_id": "f3a5c1d6-4eef-49d9-b649-fac139c61e3e" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "vmx_set_hv_timer" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIzIDE1OjU5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTV9JTlRFTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZteF9zZXRfaHZfdGltZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGZ1bmN0aW9uYWwgd29ya2Fyb3VuZCBmb3IgYSBWTVgtcHJlZW1wdGlvbiB0aW1lciBlcnJhdHVtIGluIEtWTSwgbW9kaWZ5aW5nIGhvdyB0aGUgdGltZXIgbGltaXQgaXMgY2FsY3VsYXRlZCBhbmQgZW5mb3JjZWQuIFRoaXMgYWZmZWN0cyBndWVzdCBleGVjdXRpb24gYW5kIHRpbWVyIGhhbmRsaW5nLCBtYWtpbmcgaXQgc3VpdGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAzNWU5ZWI4MTdkNWU2YmQ1NDNhN2FmOGUwMmIwOWE4NTdmMTQ3ODZiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMjMgMTU6NTg6NTkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC92bXguYyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmNcbmluZGV4IGNjNzVmZWVjMDVkYWE0Li4yYzIyNmU0ODNmZWNmNCAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS92bXgvdm14LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmNcbkBAIC0xNTEsNiAmIzQzOzE1MSw3IEBAIG1vZHVsZV9wYXJhbShkdW1wX2ludmFsaWRfdm1jcywgYm9vbCwgMDY0NCk7XG4gLyogR3Vlc3RfdHNjIC1cdTAwM2UgaG9zdF90c2MgY29udmVyc2lvbiByZXF1aXJlcyA2NC1iaXQgZGl2aXNpb24uICAqL1xuIHN0YXRpYyBpbnQgX19yZWFkX21vc3RseSBjcHVfcHJlZW1wdGlvbl90aW1lcl9tdWx0aTtcbiBzdGF0aWMgYm9vbCBfX3JlYWRfbW9zdGx5IGVuYWJsZV9wcmVlbXB0aW9uX3RpbWVyID0gMTtcbiYjNDM7c3RhdGljIHU2NCBfX3JvX2FmdGVyX2luaXQgcHJlZW1wdGlvbl90aW1lcl9saW1pdDtcbiAjaWZkZWYgQ09ORklHX1g4Nl82NFxuIG1vZHVsZV9wYXJhbV9uYW1lZChwcmVlbXB0aW9uX3RpbWVyLCBlbmFibGVfcHJlZW1wdGlvbl90aW1lciwgYm9vbCwgU19JUlVHTyk7XG4gI2VuZGlmXG5AQCAtNzQxMiw3ICYjNDM7NzQxMyw3IEBAIHN0YXRpYyB2b2lkIHZteF91cGRhdGVfaHZfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcmNlX2ltbWVkaWF0ZV9leGl0XG4gXHRcdHZtY3Nfd3JpdGUzMihWTVhfUFJFRU1QVElPTl9USU1FUl9WQUxVRSwgZGVsdGFfdHNjKTtcbiBcdFx0dm14LVx1MDAzZWxvYWRlZF92bWNzLVx1MDAzZWh2X3RpbWVyX3NvZnRfZGlzYWJsZWQgPSBmYWxzZTtcbiBcdH0gZWxzZSBpZiAoIXZteC1cdTAwM2Vsb2FkZWRfdm1jcy1cdTAwM2Vodl90aW1lcl9zb2Z0X2Rpc2FibGVkKSB7XG4tXHRcdHZtY3Nfd3JpdGUzMihWTVhfUFJFRU1QVElPTl9USU1FUl9WQUxVRSwgLTEpO1xuJiM0MztcdFx0dm1jc193cml0ZTMyKFZNWF9QUkVFTVBUSU9OX1RJTUVSX1ZBTFVFLCBwcmVlbXB0aW9uX3RpbWVyX2xpbWl0IC0gMSk7XG4gXHRcdHZteC1cdTAwM2Vsb2FkZWRfdm1jcy1cdTAwM2Vodl90aW1lcl9zb2Z0X2Rpc2FibGVkID0gdHJ1ZTtcbiBcdH1cbiB9XG5AQCAtODMzOCwxMiAmIzQzOzgzMzksMTIgQEAgaW50IHZteF9zZXRfaHZfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgZ3Vlc3RfZGVhZGxpbmVfdHNjLFxuIFx0XHRyZXR1cm4gLUVSQU5HRTtcbiBcbiBcdC8qXG4tXHQgKiBJZiB0aGUgZGVsdGEgdHNjIGNhbiYjMzk7dCBmaXQgaW4gdGhlIDMyIGJpdCBhZnRlciB0aGUgbXVsdGkgc2hpZnQsXG4tXHQgKiB3ZSBjYW4mIzM5O3QgdXNlIHRoZSBwcmVlbXB0aW9uIHRpbWVyLlxuJiM0MztcdCAqIElmIHRoZSBkZWx0YSB0c2MgZXhjZWVkcyB0aGUgcHJlZW1wdGlvbiB0aW1lciBsaW1pdCBhZnRlciB0aGVcbiYjNDM7XHQgKiBtdWx0aSBzaGlmdCwgd2UgY2FuJiMzOTt0IHVzZSB0aGUgcHJlZW1wdGlvbiB0aW1lci5cbiBcdCAqIEl0JiMzOTtzIHBvc3NpYmxlIHRoYXQgaXQgZml0cyBvbiBsYXRlciB2bWVudHJpZXMsIGJ1dCBjaGVja2luZ1xuIFx0ICogb24gZXZlcnkgdm1lbnRyeSBpcyBjb3N0bHkgc28gd2UganVzdCB1c2UgYW4gaHJ0aW1lci5cbiBcdCAqL1xuLVx0aWYgKGRlbHRhX3RzYyBcdTAwM2VcdTAwM2UgKGNwdV9wcmVlbXB0aW9uX3RpbWVyX211bHRpICYjNDM7IDMyKSlcbiYjNDM7XHRpZiAoKGRlbHRhX3RzYyBcdTAwM2VcdTAwM2UgY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGkpIFx1MDAzZT0gcHJlZW1wdGlvbl90aW1lcl9saW1pdClcbiBcdFx0cmV0dXJuIC1FUkFOR0U7XG4gXG4gXHR2bXgtXHUwMDNlaHZfZGVhZGxpbmVfdHNjID0gdHNjbCAmIzQzOyBkZWx0YV90c2M7XG5AQCAtODU4NSw2ICYjNDM7ODU4NiwyNiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgdm14X3NldHVwX21lX3NwdGVfbWFzayh2b2lkKVxuIFx0a3ZtX21tdV9zZXRfbWVfc3B0ZV9tYXNrKDAsIG1lX21hc2spO1xuIH1cbiBcbiYjNDM7LypcbiYjNDM7ICogV29ya2Fyb3VuZCBmb3IgYSB3aWRlc3ByZWFkIEludGVsIGVycmF0dW0gKGUuZy4gRU1SMTU4KSB3aGVyZSB0aGVcbiYjNDM7ICogVk1YLXByZWVtcHRpb24gdGltZXIgbWF5IGV4cGlyZSBlYXJsaWVyIHRoYW4gZXhwZWN0ZWQgd2hlbiBwcm9ncmFtbWVkXG4mIzQzOyAqIHdpdGggbGFyZ2UgdmFsdWVzLiBUaGUgd29ya2Fyb3VuZCBpcyB0byBjYXAgdGhlIHRpbWVyIHZhbHVlIHRvIHN0cmljdGx5XG4mIzQzOyAqIGxlc3MgdGhhbiAyXjI1ICogQ1BVSUQuMTVIOkVCWCAvIENQVUlELjE1SDpFQVguXG4mIzQzOyAqL1xuJiM0MztzdGF0aWMgX19pbml0IHU2NCBjYWxjX3ByZWVtcHRpb25fdGltZXJfbGltaXQodm9pZClcbiYjNDM7e1xuJiM0MztcdHUzMiBlYXgsIGVieCwgZWN4LCBlZHg7XG4mIzQzO1xuJiM0MztcdGlmIChjcHVpZF9lYXgoMCkgXHUwMDNjIDB4MTUpXG4mIzQzO1x0XHRyZXR1cm4gMVVMTCBcdTAwM2NcdTAwM2MgMzI7XG4mIzQzO1xuJiM0MztcdGNwdWlkKDB4MTUsIFx1MDAyNmVheCwgXHUwMDI2ZWJ4LCBcdTAwMjZlY3gsIFx1MDAyNmVkeCk7XG4mIzQzO1x0aWYgKCFlYXggfHwgIWVieClcbiYjNDM7XHRcdHJldHVybiAxVUxMIFx1MDAzY1x1MDAzYyAzMjtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIG1pbl90KHU2NCwgMVVMTCBcdTAwM2NcdTAwM2MgMzIsIGRpdl91NjQoKHU2NCllYnggXHUwMDNjXHUwMDNjIDI1LCBlYXgpKTtcbiYjNDM7fVxuJiM0MztcbiBfX2luaXQgaW50IHZteF9oYXJkd2FyZV9zZXR1cCh2b2lkKVxuIHtcbiBcdHVuc2lnbmVkIGxvbmcgaG9zdF9ibmRjZmdzO1xuQEAgLTg3MjYsNiAmIzQzOzg3NDcsOCBAQCBfX2luaXQgaW50IHZteF9oYXJkd2FyZV9zZXR1cCh2b2lkKVxuIFx0XHRjcHVfcHJlZW1wdGlvbl90aW1lcl9tdWx0aSA9XG4gXHRcdFx0dm14X21pc2NfcHJlZW1wdGlvbl90aW1lcl9yYXRlKHZtY3NfY29uZmlnLm1pc2MpO1xuIFxuJiM0MztcdFx0cHJlZW1wdGlvbl90aW1lcl9saW1pdCA9IGNhbGNfcHJlZW1wdGlvbl90aW1lcl9saW1pdCgpO1xuJiM0MztcbiBcdFx0aWYgKHRzY19raHopXG4gXHRcdFx0dXNlX3RpbWVyX2ZyZXEgPSAodTY0KXRzY19raHogKiAxMDAwO1xuIFx0XHR1c2VfdGltZXJfZnJlcSBcdTAwM2VcdTAwM2U9IGNwdV9wcmVlbXB0aW9uX3RpbWVyX211bHRpO1xuQEAgLTg3MzUsNyAmIzQzOzg3NTgsOCBAQCBfX2luaXQgaW50IHZteF9oYXJkd2FyZV9zZXR1cCh2b2lkKVxuIFx0XHQgKiB2YWx1ZS4gIERvbiYjMzk7dCB1c2UgdGhlIHRpbWVyIGlmIGl0IG1pZ2h0IGNhdXNlIHNwdXJpb3VzIGV4aXRzXG4gXHRcdCAqIGF0IGEgcmF0ZSBmYXN0ZXIgdGhhbiAwLjEgSHogKG9mIHVuaW50ZXJydXB0ZWQgZ3Vlc3QgdGltZSkuXG4gXHRcdCAqL1xuLVx0XHRpZiAodXNlX3RpbWVyX2ZyZXEgXHUwMDNlIDB4ZmZmZmZmZmZ1IC8gMTApXG4mIzQzO1x0XHRpZiAoIXByZWVtcHRpb25fdGltZXJfbGltaXQgfHxcbiYjNDM7XHRcdCAgICB1c2VfdGltZXJfZnJlcSBcdTAwM2UgKHByZWVtcHRpb25fdGltZXJfbGltaXQgLSAxKSAvIDEwKVxuIFx0XHRcdGVuYWJsZV9wcmVlbXB0aW9uX3RpbWVyID0gZmFsc2U7XG4gXHR9XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTV9JTlRFTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZteF9zZXRfaHZfdGltZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGZ1bmN0aW9uYWwgd29ya2Fyb3VuZCBmb3IgYSBWTVgtcHJlZW1wdGlvbiB0aW1lciBlcnJhdHVtIGluIEtWTSwgbW9kaWZ5aW5nIGhvdyB0aGUgdGltZXIgbGltaXQgaXMgY2FsY3VsYXRlZCBhbmQgZW5mb3JjZWQuIFRoaXMgYWZmZWN0cyBndWVzdCBleGVjdXRpb24gYW5kIHRpbWVyIGhhbmRsaW5nLCBtYWtpbmcgaXQgc3VpdGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDM1ZTllYjgxN2Q1ZTZiZDU0M2E3YWY4ZTAyYjA5YTg1N2YxNDc4NmIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1bCAyMyAxNTo1ODo1OSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jCmluZGV4IGNjNzVmZWVjMDVkYWE0Li4yYzIyNmU0ODNmZWNmNCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jCkBAIC0xNTEsNiAmIzQzOzE1MSw3IEBAIG1vZHVsZV9wYXJhbShkdW1wX2ludmFsaWRfdm1jcywgYm9vbCwgMDY0NCk7CiAvKiBHdWVzdF90c2MgLSZndDsgaG9zdF90c2MgY29udmVyc2lvbiByZXF1aXJlcyA2NC1iaXQgZGl2aXNpb24uICAqLwogc3RhdGljIGludCBfX3JlYWRfbW9zdGx5IGNwdV9wcmVlbXB0aW9uX3RpbWVyX211bHRpOwogc3RhdGljIGJvb2wgX19yZWFkX21vc3RseSBlbmFibGVfcHJlZW1wdGlvbl90aW1lciA9IDE7CiYjNDM7c3RhdGljIHU2NCBfX3JvX2FmdGVyX2luaXQgcHJlZW1wdGlvbl90aW1lcl9saW1pdDsKICNpZmRlZiBDT05GSUdfWDg2XzY0CiBtb2R1bGVfcGFyYW1fbmFtZWQocHJlZW1wdGlvbl90aW1lciwgZW5hYmxlX3ByZWVtcHRpb25fdGltZXIsIGJvb2wsIFNfSVJVR08pOwogI2VuZGlmCkBAIC03NDEyLDcgJiM0Mzs3NDEzLDcgQEAgc3RhdGljIHZvaWQgdm14X3VwZGF0ZV9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yY2VfaW1tZWRpYXRlX2V4aXQKIAkJdm1jc193cml0ZTMyKFZNWF9QUkVFTVBUSU9OX1RJTUVSX1ZBTFVFLCBkZWx0YV90c2MpOwogCQl2bXgtJmd0O2xvYWRlZF92bWNzLSZndDtodl90aW1lcl9zb2Z0X2Rpc2FibGVkID0gZmFsc2U7CiAJfSBlbHNlIGlmICghdm14LSZndDtsb2FkZWRfdm1jcy0mZ3Q7aHZfdGltZXJfc29mdF9kaXNhYmxlZCkgewotCQl2bWNzX3dyaXRlMzIoVk1YX1BSRUVNUFRJT05fVElNRVJfVkFMVUUsIC0xKTsKJiM0MzsJCXZtY3Nfd3JpdGUzMihWTVhfUFJFRU1QVElPTl9USU1FUl9WQUxVRSwgcHJlZW1wdGlvbl90aW1lcl9saW1pdCAtIDEpOwogCQl2bXgtJmd0O2xvYWRlZF92bWNzLSZndDtodl90aW1lcl9zb2Z0X2Rpc2FibGVkID0gdHJ1ZTsKIAl9CiB9CkBAIC04MzM4LDEyICYjNDM7ODMzOSwxMiBAQCBpbnQgdm14X3NldF9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBndWVzdF9kZWFkbGluZV90c2MsCiAJCXJldHVybiAtRVJBTkdFOwogCiAJLyoKLQkgKiBJZiB0aGUgZGVsdGEgdHNjIGNhbiYjMzk7dCBmaXQgaW4gdGhlIDMyIGJpdCBhZnRlciB0aGUgbXVsdGkgc2hpZnQsCi0JICogd2UgY2FuJiMzOTt0IHVzZSB0aGUgcHJlZW1wdGlvbiB0aW1lci4KJiM0MzsJICogSWYgdGhlIGRlbHRhIHRzYyBleGNlZWRzIHRoZSBwcmVlbXB0aW9uIHRpbWVyIGxpbWl0IGFmdGVyIHRoZQomIzQzOwkgKiBtdWx0aSBzaGlmdCwgd2UgY2FuJiMzOTt0IHVzZSB0aGUgcHJlZW1wdGlvbiB0aW1lci4KIAkgKiBJdCYjMzk7cyBwb3NzaWJsZSB0aGF0IGl0IGZpdHMgb24gbGF0ZXIgdm1lbnRyaWVzLCBidXQgY2hlY2tpbmcKIAkgKiBvbiBldmVyeSB2bWVudHJ5IGlzIGNvc3RseSBzbyB3ZSBqdXN0IHVzZSBhbiBocnRpbWVyLgogCSAqLwotCWlmIChkZWx0YV90c2MgJmd0OyZndDsgKGNwdV9wcmVlbXB0aW9uX3RpbWVyX211bHRpICYjNDM7IDMyKSkKJiM0MzsJaWYgKChkZWx0YV90c2MgJmd0OyZndDsgY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGkpICZndDs9IHByZWVtcHRpb25fdGltZXJfbGltaXQpCiAJCXJldHVybiAtRVJBTkdFOwogCiAJdm14LSZndDtodl9kZWFkbGluZV90c2MgPSB0c2NsICYjNDM7IGRlbHRhX3RzYzsKQEAgLTg1ODUsNiAmIzQzOzg1ODYsMjYgQEAgc3RhdGljIHZvaWQgX19pbml0IHZteF9zZXR1cF9tZV9zcHRlX21hc2sodm9pZCkKIAlrdm1fbW11X3NldF9tZV9zcHRlX21hc2soMCwgbWVfbWFzayk7CiB9CiAKJiM0MzsvKgomIzQzOyAqIFdvcmthcm91bmQgZm9yIGEgd2lkZXNwcmVhZCBJbnRlbCBlcnJhdHVtIChlLmcuIEVNUjE1OCkgd2hlcmUgdGhlCiYjNDM7ICogVk1YLXByZWVtcHRpb24gdGltZXIgbWF5IGV4cGlyZSBlYXJsaWVyIHRoYW4gZXhwZWN0ZWQgd2hlbiBwcm9ncmFtbWVkCiYjNDM7ICogd2l0aCBsYXJnZSB2YWx1ZXMuIFRoZSB3b3JrYXJvdW5kIGlzIHRvIGNhcCB0aGUgdGltZXIgdmFsdWUgdG8gc3RyaWN0bHkKJiM0MzsgKiBsZXNzIHRoYW4gMl4yNSAqIENQVUlELjE1SDpFQlggLyBDUFVJRC4xNUg6RUFYLgomIzQzOyAqLwomIzQzO3N0YXRpYyBfX2luaXQgdTY0IGNhbGNfcHJlZW1wdGlvbl90aW1lcl9saW1pdCh2b2lkKQomIzQzO3sKJiM0MzsJdTMyIGVheCwgZWJ4LCBlY3gsIGVkeDsKJiM0MzsKJiM0MzsJaWYgKGNwdWlkX2VheCgwKSAmbHQ7IDB4MTUpCiYjNDM7CQlyZXR1cm4gMVVMTCAmbHQ7Jmx0OyAzMjsKJiM0MzsKJiM0MzsJY3B1aWQoMHgxNSwgJmFtcDtlYXgsICZhbXA7ZWJ4LCAmYW1wO2VjeCwgJmFtcDtlZHgpOwomIzQzOwlpZiAoIWVheCB8fCAhZWJ4KQomIzQzOwkJcmV0dXJuIDFVTEwgJmx0OyZsdDsgMzI7CiYjNDM7CiYjNDM7CXJldHVybiBtaW5fdCh1NjQsIDFVTEwgJmx0OyZsdDsgMzIsIGRpdl91NjQoKHU2NCllYnggJmx0OyZsdDsgMjUsIGVheCkpOwomIzQzO30KJiM0MzsKIF9faW5pdCBpbnQgdm14X2hhcmR3YXJlX3NldHVwKHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyBob3N0X2JuZGNmZ3M7CkBAIC04NzI2LDYgJiM0Mzs4NzQ3LDggQEAgX19pbml0IGludCB2bXhfaGFyZHdhcmVfc2V0dXAodm9pZCkKIAkJY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGkgPQogCQkJdm14X21pc2NfcHJlZW1wdGlvbl90aW1lcl9yYXRlKHZtY3NfY29uZmlnLm1pc2MpOwogCiYjNDM7CQlwcmVlbXB0aW9uX3RpbWVyX2xpbWl0ID0gY2FsY19wcmVlbXB0aW9uX3RpbWVyX2xpbWl0KCk7CiYjNDM7CiAJCWlmICh0c2Nfa2h6KQogCQkJdXNlX3RpbWVyX2ZyZXEgPSAodTY0KXRzY19raHogKiAxMDAwOwogCQl1c2VfdGltZXJfZnJlcSAmZ3Q7Jmd0Oz0gY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGk7CkBAIC04NzM1LDcgJiM0Mzs4NzU4LDggQEAgX19pbml0IGludCB2bXhfaGFyZHdhcmVfc2V0dXAodm9pZCkKIAkJICogdmFsdWUuICBEb24mIzM5O3QgdXNlIHRoZSB0aW1lciBpZiBpdCBtaWdodCBjYXVzZSBzcHVyaW91cyBleGl0cwogCQkgKiBhdCBhIHJhdGUgZmFzdGVyIHRoYW4gMC4xIEh6IChvZiB1bmludGVycnVwdGVkIGd1ZXN0IHRpbWUpLgogCQkgKi8KLQkJaWYgKHVzZV90aW1lcl9mcmVxICZndDsgMHhmZmZmZmZmZnUgLyAxMCkKJiM0MzsJCWlmICghcHJlZW1wdGlvbl90aW1lcl9saW1pdCB8fAomIzQzOwkJICAgIHVzZV90aW1lcl9mcmVxICZndDsgKHByZWVtcHRpb25fdGltZXJfbGltaXQgLSAxKSAvIDEwKQogCQkJZW5hYmxlX3ByZWVtcHRpb25fdGltZXIgPSBmYWxzZTsKIAl9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzA0MQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDIxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBLVk0gVk1YIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIEtWTSBWTVggY29kZSwgc3BlY2lmaWNhbGx5IGBhcmNoL3g4Ni9rdm0vdm14L3ZteC5jYC4gSXQgc2VlbXMgdG8gYmUgYWRkcmVzc2luZyBhbiBJbnRlbCBlcnJhdHVtIHJlbGF0ZWQgdG8gdGhlIFZNWC1wcmVlbXB0aW9uIHRpbWVyLCB3aGljaCBpbW1lZGlhdGVseSBwaXF1ZXMgbXkgaW50ZXJlc3QgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUuIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgYHByZWVtcHRpb25fdGltZXJfbGltaXRgIHZhcmlhYmxlIGFuZCwgY3J1Y2lhbGx5LCBhbHRlcnMgaG93IHRoZSB0aW1lciBpcyBjYWxjdWxhdGVkIGFuZCB1cGRhdGVkIHdpdGhpbiB0aGUgVk1YIGNvZGUuIFdlIHNlZSBjYWxscyBpbiBgY2FsY19wcmVlbXB0aW9uX3RpbWVyX2xpbWl0KClgLCBgdm14X3VwZGF0ZV9odl90aW1lcigpYCwgYW5kIGB2bXhfc2V0X2h2X3RpbWVyKClgIHdoaWNoIGFyZSBhbGwga2V5IGFyZWFzLiBJdCBhbHNvIHRvdWNoZXMgYHZteF9oYXJkd2FyZV9zZXR1cCgpYC4KClRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSDigJMgaXQgZGlyZWN0bHkgaW1wYWN0cyBob3cgdGhlIGd1ZXN0JiMzOTtzIHRpbWVyIGlzIG1hbmFnZWQsIHdoaWNoIG1lYW5zIGl0IGRlZmluaXRlbHkgY2hhbmdlcyBLVk0gZ3Vlc3QgZXhlY3V0aW9uLiBUaW1lci1yZWxhdGVkIGNvZGUgaXMgb2Z0ZW4gYSBmZXJ0aWxlIGdyb3VuZCBmb3IgZnV6emluZy4gVGhlIGZhY3QgdGhhdCB3ZSBoYXZlIGEgYHByZWVtcHRpb25fdGltZXJfbGltaXRgIGFuZCBpdHMgY2FsY3VsYXRpb24gYWRkZWQgdG8gdGhlIGNvZGUgZ2l2ZXMgdXMgbXVsdGlwbGUgYXR0YWNrIHZlY3RvcnMgYXMgaW5wdXQgY291bGQgbm93IGFmZmVjdCB0aGUgYmVoYXZpb3Igb2YgdGhlIFZNWCBjb2RlLiBTbywgYWJzb2x1dGVseSwgdGhpcyBwYXRjaCBoYXMgZnV6emluZyBwb3RlbnRpYWwuIFRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbiBhcHBlYXJzIHRvIGJlIGBLVk1fSU5URUxgLCBvciBwb3NzaWJseSBqdXN0IGBLVk1gIGlmIHRoZXJlJiMzOTtzIGEgZmFsbGJhY2suCgpNeSBuZXh0IHN0ZXAgd291bGQgYmUgdG8gZG91YmxlLWNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIGBhcmNoL3g4Ni9rdm0vdm14L3ZteC5jYCB0byBjb25maXJtIHRoZSBidWlsZCBkZXBlbmRlbmN5IGFuZCBlbnN1cmUgYENPTkZJR19LVk1fSU5URUxgIGlzIGluZGVlZCB0aGUgZGVjaWRpbmcgZmFjdG9yLiBUaGVuLCB0aW1lIHRvIGZpcmUgdXAgdGhlIGZ1enplci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAxNTo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtLVk1fSU5URUwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL01ha2VmaWxlPTIxPWt2bS1pbnRlbC0kKENPTkZJR19LVk1fSFlQRVJWKVx0JiM0Mzs9IHZteC9oeXBlcnYubyB2bXgvaHlwZXJ2X2V2bWNzLm9cbmFyY2gveDg2L2t2bS9NYWtlZmlsZToyMjprdm0taW50ZWwtJChDT05GSUdfS1ZNX0lOVEVMX1REWClcdCYjNDM7PSB2bXgvdGR4Lm9cbmFyY2gveDg2L2t2bS9NYWtlZmlsZS0yMy1cbi0tXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGU9MzU9b2JqLSQoQ09ORklHX0tWTV9YODYpXHQmIzQzOz0ga3ZtLm9cbmFyY2gveDg2L2t2bS9NYWtlZmlsZTozNjpvYmotJChDT05GSUdfS1ZNX0lOVEVMKVx0JiM0Mzs9IGt2bS1pbnRlbC5vXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGUtMzctb2JqLSQoQ09ORklHX0tWTV9BTUQpXHQmIzQzOz0ga3ZtLWFtZC5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzg2MgoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDEwOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgS1ZNIEludGVsIEh5cGVydmlzb3IgVGltZXIgVXBkYXRlcyoqCgpPa2F5LCBzbyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGBDT05GSUdfS1ZNX0lOVEVMYCwgdW5kZXJzdG9vZC4gTm93LCB0aGUga2V5IHN5bWJvbHMgSSBuZWVkIHRvIGZvY3VzIG9uIGFyZSBgdm14X3VwZGF0ZV9odl90aW1lcmAgYW5kIGB2bXhfc2V0X2h2X3RpbWVyYC4gSSB3YW50IHRvIHF1aWNrbHkgYXNzZXNzIHdoZXRoZXIgdGhlc2UgZnVuY3Rpb25zIGFyZSBwZXJmb3JtYW5jZS1jcml0aWNhbCwgZXNzZW50aWFsbHkgd2hldGhlciB0aGV5JiMzOTtyZSBob3QtcGF0aCBmdW5jdGlvbnMuIE15IGluc3RpbmN0IHRlbGxzIG1lIHRoYXQgdGhleSYjMzk7cmUgbGlrZWx5IGludm9sdmVkIGluIGh5cGVydmlzb3IgdGltZXIgb3BlcmF0aW9ucywgd2hpY2ggY2FuIGJlIGZyZXF1ZW50LCBidXQgSSBuZWVkIGNvbmZpcm1hdGlvbi4KClNwZWNpZmljYWxseSwgSSYjMzk7bSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBgdm14X3VwZGF0ZV9odl90aW1lcmAgaXMgdHJpZ2dlcmVkIG9uIGEgdmlydHVhbCBtYWNoaW5lIGVudHJ5IG9yIHNpbWlsYXIgZXZlbnRzLCB3aGljaCB3b3VsZCBzdHJvbmdseSBzdWdnZXN0IGl0cyBpbXBvcnRhbmNlLiBJJiMzOTttIGdvaW5nIHRvIHJ1biBhIHF1aWNrIGBncmVwYCBmb3IgYHZteF91cGRhdGVfaHZfdGltZXJgIGluIHRoZSBzb3VyY2UgdG8gZGV0ZXJtaW5lIGl0cyBjYWxsaW5nIGNvbnRleHQuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBzb2xpZCBjbHVlIGFzIHRvIGl0cyBmcmVxdWVuY3kgYW5kIHRodXMsIGl0cyBzaWduaWZpY2FuY2UgaW4gdGVybXMgb2YgcGVyZm9ybWFuY2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dm14X3VwZGF0ZV9odl90aW1lciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS92bXgvdm14LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3ZteC92bXguYz03MzcyPXN0YXRpYyB2b2lkIHZteF9yZWZyZXNoX2d1ZXN0X3BlcmZfZ2xvYmFsX2NvbnRyb2woc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNzM5NC1cbmFyY2gveDg2L2t2bS92bXgvdm14LmM6NzM5NTpzdGF0aWMgdm9pZCB2bXhfdXBkYXRlX2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JjZV9pbW1lZGlhdGVfZXhpdClcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNzM5Ni17XG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguYz03NTA2PWZhc3RwYXRoX3Qgdm14X3ZjcHVfcnVuKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IHJ1bl9mbGFncylcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTc1OTItXHRpZiAoZW5hYmxlX3ByZWVtcHRpb25fdGltZXIpXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjc1OTM6XHRcdHZteF91cGRhdGVfaHZfdGltZXIodmNwdSwgZm9yY2VfaW1tZWRpYXRlX2V4aXQpO1xuYXJjaC94ODYva3ZtL3ZteC92bXguYy03NTk0LVx0ZWxzZSBpZiAoZm9yY2VfaW1tZWRpYXRlX2V4aXQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDU0MAoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDY0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgaG93IEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhpcyBjb2RlOgoKKipBbmFseXppbmcgdGhlIEh5cGVydmlzb3IgVGltZXIgVXBkYXRlKioKClJpZ2h0LCBzbyBgdm14X3VwZGF0ZV9odl90aW1lcmAuLi4gdGhhdCYjMzk7cyB0cmlnZ2VyZWQgZnJvbSBgdm14X3ZjcHVfcnVuYC4gQWgsICp0aGUqIGB2bXhfdmNwdV9ydW5gIGxvb3AuIFRoYXQmIzM5O3MgYSBjb3JlIGV4ZWN1dGlvbiBwYXRoLCBhIHJlYWwgcGVyZm9ybWFuY2UgaG90c3BvdC4gV2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgc29tZXRoaW5nIHRoYXQmIzM5O3MgbGlrZWx5IGV4ZWN1dGVkIGluY3JlZGlibHkgZnJlcXVlbnRseS4gU28sIGFueSBvdmVyaGVhZCB0aGVyZSBpcyBjcnVjaWFsIHRvIG1pbmltaXplLiBOb3csIGxldCYjMzk7cyBzZWUgaG93IGB2bXhfc2V0X2h2X3RpbWVyYCBpcyBjYWxsZWQgLSBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY2lyY3Vtc3RhbmNlcyB1bmRlciB3aGljaCB0aGUgdGltZXIgaXMgYWN0dWFsbHkgYmVpbmcgc2V0LiBUaGlzIHdpbGwgaGVscCBtZSBldmFsdWF0ZSBob3cgb2Z0ZW4gdGhpcyBjb2RlIHBhdGggaXMgaGl0IGFuZCB3aGV0aGVyIHdlIGFyZSBhYmxlIHRvIG9wdGltaXplIGl0LiBMZXQmIzM5O3Mgc2VlIHdoYXQmIzM5O3MgY2FsbGluZyB0aGF0IGZ1bmN0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDE1OjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZteF9zZXRfaHZfdGltZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vdm14L3ZteC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS92bXgvdm14LmM9ODI5OD1zdGF0aWMgaW5saW5lIGludCB1NjRfc2hsX2Rpdl91NjQodTY0IGEsIHVuc2lnbmVkIGludCBzaGlmdCxcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTgzMTQtXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjgzMTU6aW50IHZteF9zZXRfaHZfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgZ3Vlc3RfZGVhZGxpbmVfdHNjLFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy04MzE2LVx0XHQgICAgIGJvb2wgKmV4cGlyZWQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTAwMAoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGF0IGNvZGU6CgoqKkRpdmluZyBpbnRvIHRoZSBWTVggVGltZXIgTWVjaGFuaXNtKioKCk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByb2xlIG9mIGB2bXhfc2V0X2h2X3RpbWVyYC4gSSBrbm93IHRoYXQgVk1YLCBvciBWaXJ0dWFsIE1hY2hpbmUgRXh0ZW5zaW9ucywgaXMgY3J1Y2lhbCBmb3IgdmlydHVhbGl6YXRpb24sIHNvIGFueXRoaW5nIHRpbWVyLXJlbGF0ZWQgaXMgZ29pbmcgdG8gYmUgY29yZSB0byBwZXJmb3JtYW5jZSBhbmQgYWNjdXJhY3kuIE15IGltbWVkaWF0ZSBmb2N1cyBpcyB0byBwaW5wb2ludCB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQuIEkgbmVlZCB0byB0cmFjZSBpdHMgYXNzaWdubWVudHMgYW5kIGNhbGxzIHRvIHVuZGVyc3RhbmQgaXRzIHB1cnBvc2UgYW5kIGludGVyYWN0aW9ucyB3aXRoaW4gdGhlIGh5cGVydmlzb3IuIEtub3dpbmcgaXRzIGNhbGxpbmcgY29udGV4dCB3aWxsIGdpdmUgbWUgY2x1ZXMgYWJvdXQgaG93IGl0JiMzOTtzIHNldHRpbmcgdXAgb3IgbWFuYWdpbmcgdGltZXJzIGZvciB2aXJ0dWFsIG1hY2hpbmVzLiBJcyBpdCBpbnZvbHZlZCBpbiB2aXJ0dWFsIENQVSBzY2hlZHVsaW5nLCBndWVzdCB0aW1lIG1hbmFnZW1lbnQsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5PyBUaGUgdHJhY2luZyBleGVyY2lzZSBzaG91bGQgYmUgc3RyYWlnaHRmb3J3YXJkIGVub3VnaCwgYnV0IGl0JiMzOTtzIHRoZSBmaXJzdCBzdGVwIHRvIHRydWx5IHVuZGVyc3RhbmQgdGhlIGludGVudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dm14X3NldF9odl90aW1lciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3ZteC9tYWluLmM9ODAzPXN0YXRpYyBpbnQgdnRfc2V0X2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X2RlYWRsaW5lX3RzYyxcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYy04MDktXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYzo4MTA6XHRyZXR1cm4gdm14X3NldF9odl90aW1lcih2Y3B1LCBndWVzdF9kZWFkbGluZV90c2MsIGV4cGlyZWQpO1xuYXJjaC94ODYva3ZtL3ZteC9tYWluLmMtODExLX1cbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTgyOTg9c3RhdGljIGlubGluZSBpbnQgdTY0X3NobF9kaXZfdTY0KHU2NCBhLCB1bnNpZ25lZCBpbnQgc2hpZnQsXG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguYy04MzE0LVxuYXJjaC94ODYva3ZtL3ZteC92bXguYzo4MzE1OmludCB2bXhfc2V0X2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X2RlYWRsaW5lX3RzYyxcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtODMxNi1cdFx0ICAgICBib29sICpleHBpcmVkKVxuLS1cbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oPTEyMT12b2lkIHZteF91cGRhdGVfY3B1X2RpcnR5X2xvZ2dpbmcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oLTEyMi0jaWZkZWYgQ09ORklHX1g4Nl82NFxuYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmg6MTIzOmludCB2bXhfc2V0X2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X2RlYWRsaW5lX3RzYyxcbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oLTEyNC1cdFx0ICAgICBib29sICpleHBpcmVkKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTcwMAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDI4NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGb2N1c2luZyBvbiBIViBUaW1lciBMb2dpYyBpbiBLVk0qKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gS1ZNJiMzOTtzIEhWIHRpbWVyIGltcGxlbWVudGF0aW9uLiBMZXQmIzM5O3Mgc2VlLi4uIGB2dF9zZXRfaHZfdGltZXJgIGlzIGFsaWFzZWQgdG8gYHNldF9odl90aW1lcmAgd2l0aGluIGBrdm1feDg2X29wc2AuIFRoYXQmIzM5O3Mgd2hlcmUgdGhpbmdzIGdldCBpbnRlcmVzdGluZywgaXQmIzM5O3MgY2FsbGVkIGR1cmluZyB0aW1lciBzZXR1cCB3aXRoaW4gdGhlIGd1ZXN0LiBOb3QgYXMgZnJlcXVlbnRseSBhcyBzb21ldGhpbmcgbGlrZSBgdm14X3ZjcHVfcnVuYCwgYnV0IHN0aWxsIGEgY3J1Y2lhbCBmdW5jdGlvbiBmb3IgdGltZXIgY29uZmlndXJhdGlvbi4KCldhaXQsIGB2bXhfc2V0X2h2X3RpbWVyYCBpcyB0aGUga2V5IGZ1bmN0aW9uIHRvIGZvY3VzIG9uIGhlcmUuIEl0JiMzOTtzIHRoZSBvbmUgdGhhdCB3YXMgZGlyZWN0bHkgbW9kaWZpZWQgcmVjZW50bHksIGFuZCBjb250YWlucyB0aGUgbG9naWMgdGhhdCBjaGVja3MgdGhlIHRpbWVyIGxpbWl0LiBQZXJmZWN0IQoKTm93LCB3aGF0IGFib3V0IHRoZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbnM/IGBjYWxjX3ByZWVtcHRpb25fdGltZXJfbGltaXRgIGFuZCBgdm14X2hhcmR3YXJlX3NldHVwYCBhcmUgbWFya2VkIGFzIGBfX2luaXRgLCBzbyB0aGV5IGFyZSBvbmx5IGNhbGxlZCBkdXJpbmcgbW9kdWxlIGxvYWQuIFRoYXQgbWVhbnMgZGlyZWN0IGZ1enppbmcgb2YgdGhlbSBpc24mIzM5O3QgcHJhY3RpY2FsLgoKQWxyaWdodCwgc28gYHZteF9zZXRfaHZfdGltZXJgIGlzIHN0aWxsIHRoZSBiZXN0IGNhbmRpZGF0ZS4gQXJlIHRoZXJlIGFueSBvdGhlciBwcm9taXNpbmcgZnVuY3Rpb25zPyBIbW0sIGB2bXhfdXBkYXRlX2h2X3RpbWVyYCBsb29rcyBpbnRlcmVzdGluZywgaXQmIzM5O3MgYWxzbyBiZWVuIG1vZGlmaWVkLCBidXQgaXQmIzM5O3MgY2FsbGVkIG9uICpldmVyeSogdm1lbnRyeSwgdGhhdCBtYWtlcyBpdCBwcmV0dHkgaG90LiBJdCBjb3VsZCBiZSB0b28gZnJlcXVlbnQgdG8gZWZmZWN0aXZlbHkgdGFyZ2V0LiBMZXQmIzM5O3Mgc3RpY2sgd2l0aCBgdm14X3NldF9odl90aW1lcmAgZm9yIG5vdy4KCkhvbGQgb24sIGxldCBtZSBxdWlja2x5IGNvbmZpcm0gd2hhdCB0cmlnZ2VycyBgdm14X3NldF9odl90aW1lcmAuIEFoLCBpdCYjMzk7cyB0cmlnZ2VyZWQgd2hlbiB0aGUgZ3Vlc3QgcHJvZ3JhbXMgdGhlIExBUElDIHRpbWVyIG9yIHNpbWlsYXIuIFRoYXQmIzM5O3MgZ29vZCB0byBrbm93LiBMZXQmIzM5O3MgdHJhY2UgaXQgYmFjayB0byBgc2V0X2h2X3RpbWVyYCBpbiBgYXJjaC94ODYva3ZtL2xhcGljLmNgIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBhbnkgb3RoZXIgdXNlZnVsIGxvZ2ljIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAxNTo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZXRfaHZfdGltZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS9sYXBpYy5jPTE5ND1zdGF0aWMgYm9vbCBrdm1fY2FuX3VzZV9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG5hcmNoL3g4Ni9rdm0vbGFwaWMuYy0xOTUte1xuYXJjaC94ODYva3ZtL2xhcGljLmM6MTk2Olx0cmV0dXJuIGt2bV94ODZfb3BzLnNldF9odl90aW1lclxuYXJjaC94ODYva3ZtL2xhcGljLmMtMTk3LVx0ICAgICAgIFx1MDAyNlx1MDAyNiAhKGt2bV9td2FpdF9pbl9ndWVzdCh2Y3B1LVx1MDAzZWt2bSkgfHxcbi0tXG5hcmNoL3g4Ni9rdm0vbGFwaWMuYz0yMjcwPXN0YXRpYyBib29sIHN0YXJ0X2h2X3RpbWVyKHN0cnVjdCBrdm1fbGFwaWMgKmFwaWMpXG4tLVxuYXJjaC94ODYva3ZtL2xhcGljLmMtMjI4Mi1cbmFyY2gveDg2L2t2bS9sYXBpYy5jOjIyODM6XHRpZiAoa3ZtX3g4Nl9jYWxsKHNldF9odl90aW1lcikodmNwdSwga3RpbWVyLVx1MDAzZXRzY2RlYWRsaW5lLCBcdTAwMjZleHBpcmVkKSlcbmFyY2gveDg2L2t2bS9sYXBpYy5jLTIyODQtXHRcdHJldHVybiBmYWxzZTtcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYz03OTM9c3RhdGljIHZvaWQgdnRfd3JpdGVfdHNjX211bHRpcGxpZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuLS1cbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jLTgwMi0jaWZkZWYgQ09ORklHX1g4Nl82NFxuYXJjaC94ODYva3ZtL3ZteC9tYWluLmM6ODAzOnN0YXRpYyBpbnQgdnRfc2V0X2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X2RlYWRsaW5lX3RzYyxcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jLTgwNC1cdFx0XHQgICAgICBib29sICpleHBpcmVkKVxuLS1cbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jLTgwOS1cbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jOjgxMDpcdHJldHVybiB2bXhfc2V0X2h2X3RpbWVyKHZjcHUsIGd1ZXN0X2RlYWRsaW5lX3RzYywgZXhwaXJlZCk7XG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYy04MTEtfVxuLS1cbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jPTgxMz1zdGF0aWMgdm9pZCB2dF9jYW5jZWxfaHZfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuYXJjaC94ODYva3ZtL3ZteC9tYWluLmMtODE0LXtcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jOjgxNTpcdC8qIFZNWC1wcmVlbXB0aW9uIHRpbWVyIGNhbiYjMzk7dCBiZSBzZXQuICBTZWUgdnRfc2V0X2h2X3RpbWVyKCkuICovXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYy04MTYtXHRpZiAoaXNfdGRfdmNwdSh2Y3B1KSlcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYz04ODA9c3RydWN0IGt2bV94ODZfb3BzIHZ0X3g4Nl9vcHMgX19pbml0ZGF0YSA9IHtcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYy0xMDAzLSNpZmRlZiBDT05GSUdfWDg2XzY0XG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYzoxMDA0Olx0LnNldF9odl90aW1lciA9IHZ0X29wKHNldF9odl90aW1lciksXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYy0xMDA1LVx0LmNhbmNlbF9odl90aW1lciA9IHZ0X29wKGNhbmNlbF9odl90aW1lciksXG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguYz03Mzk1PXN0YXRpYyB2b2lkIHZteF91cGRhdGVfaHZfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcmNlX2ltbWVkaWF0ZV9leGl0KVxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNzQwNi1cdFx0aWYgKHZteC1cdTAwM2Vodl9kZWFkbGluZV90c2MgXHUwMDNlIHRzY2wpXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjc0MDc6XHRcdFx0Lyogc2V0X2h2X3RpbWVyIGVuc3VyZXMgdGhlIGRlbHRhIGZpdHMgaW4gMzItYml0cyAqL1xuYXJjaC94ODYva3ZtL3ZteC92bXguYy03NDA4LVx0XHRcdGRlbHRhX3RzYyA9ICh1MzIpKCh2bXgtXHUwMDNlaHZfZGVhZGxpbmVfdHNjIC0gdHNjbCkgXHUwMDNlXHUwMDNlXG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguYz04Mjk4PXN0YXRpYyBpbmxpbmUgaW50IHU2NF9zaGxfZGl2X3U2NCh1NjQgYSwgdW5zaWduZWQgaW50IHNoaWZ0LFxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmMtODMxNC1cbmFyY2gveDg2L2t2bS92bXgvdm14LmM6ODMxNTppbnQgdm14X3NldF9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBndWVzdF9kZWFkbGluZV90c2MsXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTgzMTYtXHRcdCAgICAgYm9vbCAqZXhwaXJlZClcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTg2MDk9X19pbml0IGludCB2bXhfaGFyZHdhcmVfc2V0dXAodm9pZClcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTg3NjYtXHRpZiAoIWVuYWJsZV9wcmVlbXB0aW9uX3RpbWVyKSB7XG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjg3Njc6XHRcdHZ0X3g4Nl9vcHMuc2V0X2h2X3RpbWVyID0gTlVMTDtcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtODc2OC1cdFx0dnRfeDg2X29wcy5jYW5jZWxfaHZfdGltZXIgPSBOVUxMO1xuLS1cbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oPTEyMT12b2lkIHZteF91cGRhdGVfY3B1X2RpcnR5X2xvZ2dpbmcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oLTEyMi0jaWZkZWYgQ09ORklHX1g4Nl82NFxuYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmg6MTIzOmludCB2bXhfc2V0X2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X2RlYWRsaW5lX3RzYyxcbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oLTEyNC1cdFx0ICAgICBib29sICpleHBpcmVkKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzg5MgoJCQkJCQkJb3V0cHV0OiA5MwoJCQkJCQkJdGhvdWdodHM6IDI5NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgUGF0Y2gqKgoKT2theSwgc28gYHZteF9zZXRfaHZfdGltZXJgIGxvb2tzIGxpa2UgdGhlIGNyaXRpY2FsIGZ1bmN0aW9uIHRvIGZvY3VzIG9uIGhlcmUuIFRoYXQgc2VlbXMgbGlrZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgZm9yIGEgZGVlcGVyIGRpdmUuIEkgc2hvdWxkIHByb2JhYmx5IGFsc28gY2hlY2sgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuCgpSaWdodCwgYENPTkZJR19LVk1fSU5URUxgIGlzIHRoZSBwcmltYXJ5IG9uZSwgb2YgY291cnNlLiBBbmQsIHRoZSBjb2RlIGlzIHVzaW5nIGAjaWZkZWYgQ09ORklHX1g4Nl82NGAgYXJvdW5kIHRoYXQgdGltZXIgZnVuY3Rpb24sIHNvIHRoYXQmIzM5O3MgaW1wbGljaXRseSByZXF1aXJlZCBhcyB3ZWxsLiBCdXQgYENPTkZJR19YODZfNjRgIGlzIGZvdW5kYXRpb25hbDsgd2UgZG9uJiMzOTt0IG5lZWQgdG8gZXhwbGljaXRseSBkZWNsYXJlIHRoYXQgb25lLgoKTGV0IG1lIHJlY2FwIHdoYXQgdGhlIHBhdGNoIGFjdHVhbGx5ICpkb2VzKi4gSXQmIzM5O3MgYSB3b3JrYXJvdW5kIGZvciBhIFZNWC1wcmVlbXB0aW9uIHRpbWVyIGlzc3VlLCBzcGVjaWZpY2FsbHkgYSBoYXJkd2FyZSBlcnJhdHVtLiBJdCBhcHBlYXJzIHRvIGNhcCB0aGUgdGltZXImIzM5O3MgdmFsdWUgYmFzZWQgb24gYSBjYWxjdWxhdGlvbiB1c2luZyBDUFVJRCBkYXRhIOKAkyBgMl4yNSAqIENQVUlELjE1SDpFQlggLyBDUFVJRC4xNUg6RUFYYC4gSXQmIzM5O3MgdHdlYWtpbmcgYHZteF9zZXRfaHZfdGltZXJgIHRvIGNoZWNrIGlmIGBkZWx0YV90c2MgJmd0OyZndDsgY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGlgIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBgcHJlZW1wdGlvbl90aW1lcl9saW1pdGAuIEFuZCB0aGVuLCBpdCYjMzk7cyBtb2RpZnlpbmcgYHZteF91cGRhdGVfaHZfdGltZXJgIHRvIHdyaXRlIGBwcmVlbXB0aW9uX3RpbWVyX2xpbWl0IC0gMWAgd2hlbiBzb2Z0LWRpc2FibGluZyB0aGUgdGltZXIsIGFzIG9wcG9zZWQgdG8gc2V0dGluZyBhIHZhbHVlIG9mIGAtMWAuCgpUaGlzIGlzIGEgY2xlYXIsIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSB0aW1lciBiZWhhdmlvci4gR2l2ZW4gdGhlIGhhcmR3YXJlIGRlcGVuZGVuY3ksIEkmIzM5O2Qgc2F5IHRoaXMgaXMgZGVmaW5pdGVseSBzb21ldGhpbmcgdG8gZnV6ei4KCkFscmlnaHQsIHRoZSBjb3JlIGZvY3VzIGlzIGB2bXhfc2V0X2h2X3RpbWVyYC4gV2UmIzM5O2xsIG5lZWQgYEtWTV9JTlRFTGAgZW5hYmxlZC4gSSBjYW4gY2FsbCBzZXQtcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTV9JTlRFTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZteF9zZXRfaHZfdGltZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGZ1bmN0aW9uYWwgd29ya2Fyb3VuZCBmb3IgYSBWTVgtcHJlZW1wdGlvbiB0aW1lciBlcnJhdHVtIGluIEtWTSwgbW9kaWZ5aW5nIGhvdyB0aGUgdGltZXIgbGltaXQgaXMgY2FsY3VsYXRlZCBhbmQgZW5mb3JjZWQuIFRoaXMgYWZmZWN0cyBndWVzdCBleGVjdXRpb24gYW5kIHRpbWVyIGhhbmRsaW5nLCBtYWtpbmcgaXQgc3VpdGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTV9JTlRFTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZteF9zZXRfaHZfdGltZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGZ1bmN0aW9uYWwgd29ya2Fyb3VuZCBmb3IgYSBWTVgtcHJlZW1wdGlvbiB0aW1lciBlcnJhdHVtIGluIEtWTSwgbW9kaWZ5aW5nIGhvdyB0aGUgdGltZXIgbGltaXQgaXMgY2FsY3VsYXRlZCBhbmQgZW5mb3JjZWQuIFRoaXMgYWZmZWN0cyBndWVzdCBleGVjdXRpb24gYW5kIHRpbWVyIGhhbmRsaW5nLCBtYWtpbmcgaXQgc3VpdGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTo1OTowMS40OTIzMzI0MDNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzE4NDQyMzY3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1fSU5URUxcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2bXhfc2V0X2h2X3RpbWVyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGZ1bmN0aW9uYWwgd29ya2Fyb3VuZCBmb3IgYSBWTVgtcHJlZW1wdGlvbiB0aW1lciBlcnJhdHVtIGluIEtWTSwgbW9kaWZ5aW5nIGhvdyB0aGUgdGltZXIgbGltaXQgaXMgY2FsY3VsYXRlZCBhbmQgZW5mb3JjZWQuIFRoaXMgYWZmZWN0cyBndWVzdCBleGVjdXRpb24gYW5kIHRpbWVyIGhhbmRsaW5nLCBtYWtpbmcgaXQgc3VpdGFibGUgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjU5OjAxLjQ5MjM0MDM2M1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTc0MDgwNjkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMzVlOWViODE3ZDVlNmJkNTQzYTdhZjhlMDJiMDlhODU3ZjE0Nzg2YlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCAyMyAxNTo1ODo1OSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xcbmluZGV4IGNjNzVmZWVjMDVkYWE0Li4yYzIyNmU0ODNmZWNmNCAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXFxuKysrIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xcbkBAIC0xNTEsNiArMTUxLDcgQEAgbW9kdWxlX3BhcmFtKGR1bXBfaW52YWxpZF92bWNzLCBib29sLCAwNjQ0KTtcXG4gLyogR3Vlc3RfdHNjIC1cXHUwMDNlIGhvc3RfdHNjIGNvbnZlcnNpb24gcmVxdWlyZXMgNjQtYml0IGRpdmlzaW9uLiAgKi9cXG4gc3RhdGljIGludCBfX3JlYWRfbW9zdGx5IGNwdV9wcmVlbXB0aW9uX3RpbWVyX211bHRpO1xcbiBzdGF0aWMgYm9vbCBfX3JlYWRfbW9zdGx5IGVuYWJsZV9wcmVlbXB0aW9uX3RpbWVyID0gMTtcXG4rc3RhdGljIHU2NCBfX3JvX2FmdGVyX2luaXQgcHJlZW1wdGlvbl90aW1lcl9saW1pdDtcXG4gI2lmZGVmIENPTkZJR19YODZfNjRcXG4gbW9kdWxlX3BhcmFtX25hbWVkKHByZWVtcHRpb25fdGltZXIsIGVuYWJsZV9wcmVlbXB0aW9uX3RpbWVyLCBib29sLCBTX0lSVUdPKTtcXG4gI2VuZGlmXFxuQEAgLTc0MTIsNyArNzQxMyw3IEBAIHN0YXRpYyB2b2lkIHZteF91cGRhdGVfaHZfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcmNlX2ltbWVkaWF0ZV9leGl0XFxuIFxcdFxcdHZtY3Nfd3JpdGUzMihWTVhfUFJFRU1QVElPTl9USU1FUl9WQUxVRSwgZGVsdGFfdHNjKTtcXG4gXFx0XFx0dm14LVxcdTAwM2Vsb2FkZWRfdm1jcy1cXHUwMDNlaHZfdGltZXJfc29mdF9kaXNhYmxlZCA9IGZhbHNlO1xcbiBcXHR9IGVsc2UgaWYgKCF2bXgtXFx1MDAzZWxvYWRlZF92bWNzLVxcdTAwM2Vodl90aW1lcl9zb2Z0X2Rpc2FibGVkKSB7XFxuLVxcdFxcdHZtY3Nfd3JpdGUzMihWTVhfUFJFRU1QVElPTl9USU1FUl9WQUxVRSwgLTEpO1xcbitcXHRcXHR2bWNzX3dyaXRlMzIoVk1YX1BSRUVNUFRJT05fVElNRVJfVkFMVUUsIHByZWVtcHRpb25fdGltZXJfbGltaXQgLSAxKTtcXG4gXFx0XFx0dm14LVxcdTAwM2Vsb2FkZWRfdm1jcy1cXHUwMDNlaHZfdGltZXJfc29mdF9kaXNhYmxlZCA9IHRydWU7XFxuIFxcdH1cXG4gfVxcbkBAIC04MzM4LDEyICs4MzM5LDEyIEBAIGludCB2bXhfc2V0X2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X2RlYWRsaW5lX3RzYyxcXG4gXFx0XFx0cmV0dXJuIC1FUkFOR0U7XFxuIFxcbiBcXHQvKlxcbi1cXHQgKiBJZiB0aGUgZGVsdGEgdHNjIGNhbid0IGZpdCBpbiB0aGUgMzIgYml0IGFmdGVyIHRoZSBtdWx0aSBzaGlmdCxcXG4tXFx0ICogd2UgY2FuJ3QgdXNlIHRoZSBwcmVlbXB0aW9uIHRpbWVyLlxcbitcXHQgKiBJZiB0aGUgZGVsdGEgdHNjIGV4Y2VlZHMgdGhlIHByZWVtcHRpb24gdGltZXIgbGltaXQgYWZ0ZXIgdGhlXFxuK1xcdCAqIG11bHRpIHNoaWZ0LCB3ZSBjYW4ndCB1c2UgdGhlIHByZWVtcHRpb24gdGltZXIuXFxuIFxcdCAqIEl0J3MgcG9zc2libGUgdGhhdCBpdCBmaXRzIG9uIGxhdGVyIHZtZW50cmllcywgYnV0IGNoZWNraW5nXFxuIFxcdCAqIG9uIGV2ZXJ5IHZtZW50cnkgaXMgY29zdGx5IHNvIHdlIGp1c3QgdXNlIGFuIGhydGltZXIuXFxuIFxcdCAqL1xcbi1cXHRpZiAoZGVsdGFfdHNjIFxcdTAwM2VcXHUwMDNlIChjcHVfcHJlZW1wdGlvbl90aW1lcl9tdWx0aSArIDMyKSlcXG4rXFx0aWYgKChkZWx0YV90c2MgXFx1MDAzZVxcdTAwM2UgY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGkpIFxcdTAwM2U9IHByZWVtcHRpb25fdGltZXJfbGltaXQpXFxuIFxcdFxcdHJldHVybiAtRVJBTkdFO1xcbiBcXG4gXFx0dm14LVxcdTAwM2Vodl9kZWFkbGluZV90c2MgPSB0c2NsICsgZGVsdGFfdHNjO1xcbkBAIC04NTg1LDYgKzg1ODYsMjYgQEAgc3RhdGljIHZvaWQgX19pbml0IHZteF9zZXR1cF9tZV9zcHRlX21hc2sodm9pZClcXG4gXFx0a3ZtX21tdV9zZXRfbWVfc3B0ZV9tYXNrKDAsIG1lX21hc2spO1xcbiB9XFxuIFxcbisvKlxcbisgKiBXb3JrYXJvdW5kIGZvciBhIHdpZGVzcHJlYWQgSW50ZWwgZXJyYXR1bSAoZS5nLiBFTVIxNTgpIHdoZXJlIHRoZVxcbisgKiBWTVgtcHJlZW1wdGlvbiB0aW1lciBtYXkgZXhwaXJlIGVhcmxpZXIgdGhhbiBleHBlY3RlZCB3aGVuIHByb2dyYW1tZWRcXG4rICogd2l0aCBsYXJnZSB2YWx1ZXMuIFRoZSB3b3JrYXJvdW5kIGlzIHRvIGNhcCB0aGUgdGltZXIgdmFsdWUgdG8gc3RyaWN0bHlcXG4rICogbGVzcyB0aGFuIDJeMjUgKiBDUFVJRC4xNUg6RUJYIC8gQ1BVSUQuMTVIOkVBWC5cXG4rICovXFxuK3N0YXRpYyBfX2luaXQgdTY0IGNhbGNfcHJlZW1wdGlvbl90aW1lcl9saW1pdCh2b2lkKVxcbit7XFxuK1xcdHUzMiBlYXgsIGVieCwgZWN4LCBlZHg7XFxuK1xcbitcXHRpZiAoY3B1aWRfZWF4KDApIFxcdTAwM2MgMHgxNSlcXG4rXFx0XFx0cmV0dXJuIDFVTEwgXFx1MDAzY1xcdTAwM2MgMzI7XFxuK1xcbitcXHRjcHVpZCgweDE1LCBcXHUwMDI2ZWF4LCBcXHUwMDI2ZWJ4LCBcXHUwMDI2ZWN4LCBcXHUwMDI2ZWR4KTtcXG4rXFx0aWYgKCFlYXggfHwgIWVieClcXG4rXFx0XFx0cmV0dXJuIDFVTEwgXFx1MDAzY1xcdTAwM2MgMzI7XFxuK1xcbitcXHRyZXR1cm4gbWluX3QodTY0LCAxVUxMIFxcdTAwM2NcXHUwMDNjIDMyLCBkaXZfdTY0KCh1NjQpZWJ4IFxcdTAwM2NcXHUwMDNjIDI1LCBlYXgpKTtcXG4rfVxcbitcXG4gX19pbml0IGludCB2bXhfaGFyZHdhcmVfc2V0dXAodm9pZClcXG4ge1xcbiBcXHR1bnNpZ25lZCBsb25nIGhvc3RfYm5kY2ZncztcXG5AQCAtODcyNiw2ICs4NzQ3LDggQEAgX19pbml0IGludCB2bXhfaGFyZHdhcmVfc2V0dXAodm9pZClcXG4gXFx0XFx0Y3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGkgPVxcbiBcXHRcXHRcXHR2bXhfbWlzY19wcmVlbXB0aW9uX3RpbWVyX3JhdGUodm1jc19jb25maWcubWlzYyk7XFxuIFxcbitcXHRcXHRwcmVlbXB0aW9uX3RpbWVyX2xpbWl0ID0gY2FsY19wcmVlbXB0aW9uX3RpbWVyX2xpbWl0KCk7XFxuK1xcbiBcXHRcXHRpZiAodHNjX2toeilcXG4gXFx0XFx0XFx0dXNlX3RpbWVyX2ZyZXEgPSAodTY0KXRzY19raHogKiAxMDAwO1xcbiBcXHRcXHR1c2VfdGltZXJfZnJlcSBcXHUwMDNlXFx1MDAzZT0gY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGk7XFxuQEAgLTg3MzUsNyArODc1OCw4IEBAIF9faW5pdCBpbnQgdm14X2hhcmR3YXJlX3NldHVwKHZvaWQpXFxuIFxcdFxcdCAqIHZhbHVlLiAgRG9uJ3QgdXNlIHRoZSB0aW1lciBpZiBpdCBtaWdodCBjYXVzZSBzcHVyaW91cyBleGl0c1xcbiBcXHRcXHQgKiBhdCBhIHJhdGUgZmFzdGVyIHRoYW4gMC4xIEh6IChvZiB1bmludGVycnVwdGVkIGd1ZXN0IHRpbWUpLlxcbiBcXHRcXHQgKi9cXG4tXFx0XFx0aWYgKHVzZV90aW1lcl9mcmVxIFxcdTAwM2UgMHhmZmZmZmZmZnUgLyAxMClcXG4rXFx0XFx0aWYgKCFwcmVlbXB0aW9uX3RpbWVyX2xpbWl0IHx8XFxuK1xcdFxcdCAgICB1c2VfdGltZXJfZnJlcSBcXHUwMDNlIChwcmVlbXB0aW9uX3RpbWVyX2xpbWl0IC0gMSkgLyAxMClcXG4gXFx0XFx0XFx0ZW5hYmxlX3ByZWVtcHRpb25fdGltZXIgPSBmYWxzZTtcXG4gXFx0fVxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMTU6NTk6MDIuMDY2OTg0NzIzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MzI2MDk3NjM0NzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNX0lOVEVMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidm14X3NldF9odl90aW1lclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBmdW5jdGlvbmFsIHdvcmthcm91bmQgZm9yIGEgVk1YLXByZWVtcHRpb24gdGltZXIgZXJyYXR1bSBpbiBLVk0sIG1vZGlmeWluZyBob3cgdGhlIHRpbWVyIGxpbWl0IGlzIGNhbGN1bGF0ZWQgYW5kIGVuZm9yY2VkLiBUaGlzIGFmZmVjdHMgZ3Vlc3QgZXhlY3V0aW9uIGFuZCB0aW1lciBoYW5kbGluZywgbWFraW5nIGl0IHN1aXRhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDM1ZTllYjgxN2Q1ZTZiZDU0M2E3YWY4ZTAyYjA5YTg1N2YxNDc4NmJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAyMyAxNTo1ODo1OSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG5pbmRleCBjYzc1ZmVlYzA1ZGFhNC4uMmMyMjZlNDgzZmVjZjQgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG5AQCAtMTUxLDYgKzE1MSw3IEBAIG1vZHVsZV9wYXJhbShkdW1wX2ludmFsaWRfdm1jcywgYm9vbCwgMDY0NCk7XG4gLyogR3Vlc3RfdHNjIC1cdTAwM2UgaG9zdF90c2MgY29udmVyc2lvbiByZXF1aXJlcyA2NC1iaXQgZGl2aXNpb24uICAqL1xuIHN0YXRpYyBpbnQgX19yZWFkX21vc3RseSBjcHVfcHJlZW1wdGlvbl90aW1lcl9tdWx0aTtcbiBzdGF0aWMgYm9vbCBfX3JlYWRfbW9zdGx5IGVuYWJsZV9wcmVlbXB0aW9uX3RpbWVyID0gMTtcbitzdGF0aWMgdTY0IF9fcm9fYWZ0ZXJfaW5pdCBwcmVlbXB0aW9uX3RpbWVyX2xpbWl0O1xuICNpZmRlZiBDT05GSUdfWDg2XzY0XG4gbW9kdWxlX3BhcmFtX25hbWVkKHByZWVtcHRpb25fdGltZXIsIGVuYWJsZV9wcmVlbXB0aW9uX3RpbWVyLCBib29sLCBTX0lSVUdPKTtcbiAjZW5kaWZcbkBAIC03NDEyLDcgKzc0MTMsNyBAQCBzdGF0aWMgdm9pZCB2bXhfdXBkYXRlX2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JjZV9pbW1lZGlhdGVfZXhpdFxuIFx0XHR2bWNzX3dyaXRlMzIoVk1YX1BSRUVNUFRJT05fVElNRVJfVkFMVUUsIGRlbHRhX3RzYyk7XG4gXHRcdHZteC1cdTAwM2Vsb2FkZWRfdm1jcy1cdTAwM2Vodl90aW1lcl9zb2Z0X2Rpc2FibGVkID0gZmFsc2U7XG4gXHR9IGVsc2UgaWYgKCF2bXgtXHUwMDNlbG9hZGVkX3ZtY3MtXHUwMDNlaHZfdGltZXJfc29mdF9kaXNhYmxlZCkge1xuLVx0XHR2bWNzX3dyaXRlMzIoVk1YX1BSRUVNUFRJT05fVElNRVJfVkFMVUUsIC0xKTtcbitcdFx0dm1jc193cml0ZTMyKFZNWF9QUkVFTVBUSU9OX1RJTUVSX1ZBTFVFLCBwcmVlbXB0aW9uX3RpbWVyX2xpbWl0IC0gMSk7XG4gXHRcdHZteC1cdTAwM2Vsb2FkZWRfdm1jcy1cdTAwM2Vodl90aW1lcl9zb2Z0X2Rpc2FibGVkID0gdHJ1ZTtcbiBcdH1cbiB9XG5AQCAtODMzOCwxMiArODMzOSwxMiBAQCBpbnQgdm14X3NldF9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBndWVzdF9kZWFkbGluZV90c2MsXG4gXHRcdHJldHVybiAtRVJBTkdFO1xuIFxuIFx0Lypcbi1cdCAqIElmIHRoZSBkZWx0YSB0c2MgY2FuJ3QgZml0IGluIHRoZSAzMiBiaXQgYWZ0ZXIgdGhlIG11bHRpIHNoaWZ0LFxuLVx0ICogd2UgY2FuJ3QgdXNlIHRoZSBwcmVlbXB0aW9uIHRpbWVyLlxuK1x0ICogSWYgdGhlIGRlbHRhIHRzYyBleGNlZWRzIHRoZSBwcmVlbXB0aW9uIHRpbWVyIGxpbWl0IGFmdGVyIHRoZVxuK1x0ICogbXVsdGkgc2hpZnQsIHdlIGNhbid0IHVzZSB0aGUgcHJlZW1wdGlvbiB0aW1lci5cbiBcdCAqIEl0J3MgcG9zc2libGUgdGhhdCBpdCBmaXRzIG9uIGxhdGVyIHZtZW50cmllcywgYnV0IGNoZWNraW5nXG4gXHQgKiBvbiBldmVyeSB2bWVudHJ5IGlzIGNvc3RseSBzbyB3ZSBqdXN0IHVzZSBhbiBocnRpbWVyLlxuIFx0ICovXG4tXHRpZiAoZGVsdGFfdHNjIFx1MDAzZVx1MDAzZSAoY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGkgKyAzMikpXG4rXHRpZiAoKGRlbHRhX3RzYyBcdTAwM2VcdTAwM2UgY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGkpIFx1MDAzZT0gcHJlZW1wdGlvbl90aW1lcl9saW1pdClcbiBcdFx0cmV0dXJuIC1FUkFOR0U7XG4gXG4gXHR2bXgtXHUwMDNlaHZfZGVhZGxpbmVfdHNjID0gdHNjbCArIGRlbHRhX3RzYztcbkBAIC04NTg1LDYgKzg1ODYsMjYgQEAgc3RhdGljIHZvaWQgX19pbml0IHZteF9zZXR1cF9tZV9zcHRlX21hc2sodm9pZClcbiBcdGt2bV9tbXVfc2V0X21lX3NwdGVfbWFzaygwLCBtZV9tYXNrKTtcbiB9XG4gXG4rLypcbisgKiBXb3JrYXJvdW5kIGZvciBhIHdpZGVzcHJlYWQgSW50ZWwgZXJyYXR1bSAoZS5nLiBFTVIxNTgpIHdoZXJlIHRoZVxuKyAqIFZNWC1wcmVlbXB0aW9uIHRpbWVyIG1heSBleHBpcmUgZWFybGllciB0aGFuIGV4cGVjdGVkIHdoZW4gcHJvZ3JhbW1lZFxuKyAqIHdpdGggbGFyZ2UgdmFsdWVzLiBUaGUgd29ya2Fyb3VuZCBpcyB0byBjYXAgdGhlIHRpbWVyIHZhbHVlIHRvIHN0cmljdGx5XG4rICogbGVzcyB0aGFuIDJeMjUgKiBDUFVJRC4xNUg6RUJYIC8gQ1BVSUQuMTVIOkVBWC5cbisgKi9cbitzdGF0aWMgX19pbml0IHU2NCBjYWxjX3ByZWVtcHRpb25fdGltZXJfbGltaXQodm9pZClcbit7XG4rXHR1MzIgZWF4LCBlYngsIGVjeCwgZWR4O1xuK1xuK1x0aWYgKGNwdWlkX2VheCgwKSBcdTAwM2MgMHgxNSlcbitcdFx0cmV0dXJuIDFVTEwgXHUwMDNjXHUwMDNjIDMyO1xuK1xuK1x0Y3B1aWQoMHgxNSwgXHUwMDI2ZWF4LCBcdTAwMjZlYngsIFx1MDAyNmVjeCwgXHUwMDI2ZWR4KTtcbitcdGlmICghZWF4IHx8ICFlYngpXG4rXHRcdHJldHVybiAxVUxMIFx1MDAzY1x1MDAzYyAzMjtcbitcbitcdHJldHVybiBtaW5fdCh1NjQsIDFVTEwgXHUwMDNjXHUwMDNjIDMyLCBkaXZfdTY0KCh1NjQpZWJ4IFx1MDAzY1x1MDAzYyAyNSwgZWF4KSk7XG4rfVxuK1xuIF9faW5pdCBpbnQgdm14X2hhcmR3YXJlX3NldHVwKHZvaWQpXG4ge1xuIFx0dW5zaWduZWQgbG9uZyBob3N0X2JuZGNmZ3M7XG5AQCAtODcyNiw2ICs4NzQ3LDggQEAgX19pbml0IGludCB2bXhfaGFyZHdhcmVfc2V0dXAodm9pZClcbiBcdFx0Y3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGkgPVxuIFx0XHRcdHZteF9taXNjX3ByZWVtcHRpb25fdGltZXJfcmF0ZSh2bWNzX2NvbmZpZy5taXNjKTtcbiBcbitcdFx0cHJlZW1wdGlvbl90aW1lcl9saW1pdCA9IGNhbGNfcHJlZW1wdGlvbl90aW1lcl9saW1pdCgpO1xuK1xuIFx0XHRpZiAodHNjX2toeilcbiBcdFx0XHR1c2VfdGltZXJfZnJlcSA9ICh1NjQpdHNjX2toeiAqIDEwMDA7XG4gXHRcdHVzZV90aW1lcl9mcmVxIFx1MDAzZVx1MDAzZT0gY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGk7XG5AQCAtODczNSw3ICs4NzU4LDggQEAgX19pbml0IGludCB2bXhfaGFyZHdhcmVfc2V0dXAodm9pZClcbiBcdFx0ICogdmFsdWUuICBEb24ndCB1c2UgdGhlIHRpbWVyIGlmIGl0IG1pZ2h0IGNhdXNlIHNwdXJpb3VzIGV4aXRzXG4gXHRcdCAqIGF0IGEgcmF0ZSBmYXN0ZXIgdGhhbiAwLjEgSHogKG9mIHVuaW50ZXJydXB0ZWQgZ3Vlc3QgdGltZSkuXG4gXHRcdCAqL1xuLVx0XHRpZiAodXNlX3RpbWVyX2ZyZXEgXHUwMDNlIDB4ZmZmZmZmZmZ1IC8gMTApXG4rXHRcdGlmICghcHJlZW1wdGlvbl90aW1lcl9saW1pdCB8fFxuK1x0XHQgICAgdXNlX3RpbWVyX2ZyZXEgXHUwMDNlIChwcmVlbXB0aW9uX3RpbWVyX2xpbWl0IC0gMSkgLyAxMClcbiBcdFx0XHRlbmFibGVfcHJlZW1wdGlvbl90aW1lciA9IGZhbHNlO1xuIFx0fVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMTU6NTk6MDIuMDY2OTg4MzQzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTgzMjE0NTI2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBLVk0gVk1YIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBLVk0gVk1YIGNvZGUsIHNwZWNpZmljYWxseSBgYXJjaC94ODYva3ZtL3ZteC92bXguY2AuIEl0IHNlZW1zIHRvIGJlIGFkZHJlc3NpbmcgYW4gSW50ZWwgZXJyYXR1bSByZWxhdGVkIHRvIHRoZSBWTVgtcHJlZW1wdGlvbiB0aW1lciwgd2hpY2ggaW1tZWRpYXRlbHkgcGlxdWVzIG15IGludGVyZXN0IGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGBwcmVlbXB0aW9uX3RpbWVyX2xpbWl0YCB2YXJpYWJsZSBhbmQsIGNydWNpYWxseSwgYWx0ZXJzIGhvdyB0aGUgdGltZXIgaXMgY2FsY3VsYXRlZCBhbmQgdXBkYXRlZCB3aXRoaW4gdGhlIFZNWCBjb2RlLiBXZSBzZWUgY2FsbHMgaW4gYGNhbGNfcHJlZW1wdGlvbl90aW1lcl9saW1pdCgpYCwgYHZteF91cGRhdGVfaHZfdGltZXIoKWAsIGFuZCBgdm14X3NldF9odl90aW1lcigpYCB3aGljaCBhcmUgYWxsIGtleSBhcmVhcy4gSXQgYWxzbyB0b3VjaGVzIGB2bXhfaGFyZHdhcmVfc2V0dXAoKWAuXG5cblRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSDigJMgaXQgZGlyZWN0bHkgaW1wYWN0cyBob3cgdGhlIGd1ZXN0J3MgdGltZXIgaXMgbWFuYWdlZCwgd2hpY2ggbWVhbnMgaXQgZGVmaW5pdGVseSBjaGFuZ2VzIEtWTSBndWVzdCBleGVjdXRpb24uIFRpbWVyLXJlbGF0ZWQgY29kZSBpcyBvZnRlbiBhIGZlcnRpbGUgZ3JvdW5kIGZvciBmdXp6aW5nLiBUaGUgZmFjdCB0aGF0IHdlIGhhdmUgYSBgcHJlZW1wdGlvbl90aW1lcl9saW1pdGAgYW5kIGl0cyBjYWxjdWxhdGlvbiBhZGRlZCB0byB0aGUgY29kZSBnaXZlcyB1cyBtdWx0aXBsZSBhdHRhY2sgdmVjdG9ycyBhcyBpbnB1dCBjb3VsZCBub3cgYWZmZWN0IHRoZSBiZWhhdmlvciBvZiB0aGUgVk1YIGNvZGUuIFNvLCBhYnNvbHV0ZWx5LCB0aGlzIHBhdGNoIGhhcyBmdXp6aW5nIHBvdGVudGlhbC4gVGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGFwcGVhcnMgdG8gYmUgYEtWTV9JTlRFTGAsIG9yIHBvc3NpYmx5IGp1c3QgYEtWTWAgaWYgdGhlcmUncyBhIGZhbGxiYWNrLlxuXG5NeSBuZXh0IHN0ZXAgd291bGQgYmUgdG8gZG91YmxlLWNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIGBhcmNoL3g4Ni9rdm0vdm14L3ZteC5jYCB0byBjb25maXJtIHRoZSBidWlsZCBkZXBlbmRlbmN5IGFuZCBlbnN1cmUgYENPTkZJR19LVk1fSU5URUxgIGlzIGluZGVlZCB0aGUgZGVjaWRpbmcgZmFjdG9yLiBUaGVuLCB0aW1lIHRvIGZpcmUgdXAgdGhlIGZ1enplci5cblxuXG4iLCJJbnB1dFRva2VucyI6MzA0MSwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxMSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjU5OjA3Ljg5OTEzNjgwN1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NDAzOTcyMDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiS1ZNX0lOVEVMXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gveDg2L2t2bS9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vTWFrZWZpbGU9MjE9a3ZtLWludGVsLSQoQ09ORklHX0tWTV9IWVBFUlYpXFx0Kz0gdm14L2h5cGVydi5vIHZteC9oeXBlcnZfZXZtY3Mub1xcbmFyY2gveDg2L2t2bS9NYWtlZmlsZToyMjprdm0taW50ZWwtJChDT05GSUdfS1ZNX0lOVEVMX1REWClcXHQrPSB2bXgvdGR4Lm9cXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGUtMjMtXFxuLS1cXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGU9MzU9b2JqLSQoQ09ORklHX0tWTV9YODYpXFx0Kz0ga3ZtLm9cXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGU6MzY6b2JqLSQoQ09ORklHX0tWTV9JTlRFTClcXHQrPSBrdm0taW50ZWwub1xcbmFyY2gveDg2L2t2bS9NYWtlZmlsZS0zNy1vYmotJChDT05GSUdfS1ZNX0FNRClcXHQrPSBrdm0tYW1kLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMTU6NTk6MDguMzM5NTM5MTA2WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg1ODY2MDkxMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgS1ZNIEludGVsIEh5cGVydmlzb3IgVGltZXIgVXBkYXRlcyoqXG5cbk9rYXksIHNvIHdlJ3JlIGRlYWxpbmcgd2l0aCBgQ09ORklHX0tWTV9JTlRFTGAsIHVuZGVyc3Rvb2QuIE5vdywgdGhlIGtleSBzeW1ib2xzIEkgbmVlZCB0byBmb2N1cyBvbiBhcmUgYHZteF91cGRhdGVfaHZfdGltZXJgIGFuZCBgdm14X3NldF9odl90aW1lcmAuIEkgd2FudCB0byBxdWlja2x5IGFzc2VzcyB3aGV0aGVyIHRoZXNlIGZ1bmN0aW9ucyBhcmUgcGVyZm9ybWFuY2UtY3JpdGljYWwsIGVzc2VudGlhbGx5IHdoZXRoZXIgdGhleSdyZSBob3QtcGF0aCBmdW5jdGlvbnMuIE15IGluc3RpbmN0IHRlbGxzIG1lIHRoYXQgdGhleSdyZSBsaWtlbHkgaW52b2x2ZWQgaW4gaHlwZXJ2aXNvciB0aW1lciBvcGVyYXRpb25zLCB3aGljaCBjYW4gYmUgZnJlcXVlbnQsIGJ1dCBJIG5lZWQgY29uZmlybWF0aW9uLlxuXG5TcGVjaWZpY2FsbHksIEknbSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBgdm14X3VwZGF0ZV9odl90aW1lcmAgaXMgdHJpZ2dlcmVkIG9uIGEgdmlydHVhbCBtYWNoaW5lIGVudHJ5IG9yIHNpbWlsYXIgZXZlbnRzLCB3aGljaCB3b3VsZCBzdHJvbmdseSBzdWdnZXN0IGl0cyBpbXBvcnRhbmNlLiBJJ20gZ29pbmcgdG8gcnVuIGEgcXVpY2sgYGdyZXBgIGZvciBgdm14X3VwZGF0ZV9odl90aW1lcmAgaW4gdGhlIHNvdXJjZSB0byBkZXRlcm1pbmUgaXRzIGNhbGxpbmcgY29udGV4dC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIHNvbGlkIGNsdWUgYXMgdG8gaXRzIGZyZXF1ZW5jeSBhbmQgdGh1cywgaXRzIHNpZ25pZmljYW5jZSBpbiB0ZXJtcyBvZiBwZXJmb3JtYW5jZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzg2MiwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTo1OToxMi4xOTgyMDI1NjhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTE3MzQyMDQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidm14X3VwZGF0ZV9odl90aW1lclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9rdm0vdm14L3ZteC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L2t2bS92bXgvdm14LmM9NzM3Mj1zdGF0aWMgdm9pZCB2bXhfcmVmcmVzaF9ndWVzdF9wZXJmX2dsb2JhbF9jb250cm9sKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNzM5NC1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjczOTU6c3RhdGljIHZvaWQgdm14X3VwZGF0ZV9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yY2VfaW1tZWRpYXRlX2V4aXQpXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy03Mzk2LXtcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmM9NzUwNj1mYXN0cGF0aF90IHZteF92Y3B1X3J1bihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBydW5fZmxhZ3MpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTc1OTItXFx0aWYgKGVuYWJsZV9wcmVlbXB0aW9uX3RpbWVyKVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmM6NzU5MzpcXHRcXHR2bXhfdXBkYXRlX2h2X3RpbWVyKHZjcHUsIGZvcmNlX2ltbWVkaWF0ZV9leGl0KTtcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTc1OTQtXFx0ZWxzZSBpZiAoZm9yY2VfaW1tZWRpYXRlX2V4aXQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjU5OjEyLjI4OTk0MjA1MloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1NzM5NzI2NDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgaG93IEknbSB0aGlua2luZyBhYm91dCB0aGlzIGNvZGU6XG5cbioqQW5hbHl6aW5nIHRoZSBIeXBlcnZpc29yIFRpbWVyIFVwZGF0ZSoqXG5cblJpZ2h0LCBzbyBgdm14X3VwZGF0ZV9odl90aW1lcmAuLi4gdGhhdCdzIHRyaWdnZXJlZCBmcm9tIGB2bXhfdmNwdV9ydW5gLiBBaCwgKnRoZSogYHZteF92Y3B1X3J1bmAgbG9vcC4gVGhhdCdzIGEgY29yZSBleGVjdXRpb24gcGF0aCwgYSByZWFsIHBlcmZvcm1hbmNlIGhvdHNwb3QuIFdlJ3JlIHRhbGtpbmcgYWJvdXQgc29tZXRoaW5nIHRoYXQncyBsaWtlbHkgZXhlY3V0ZWQgaW5jcmVkaWJseSBmcmVxdWVudGx5LiBTbywgYW55IG92ZXJoZWFkIHRoZXJlIGlzIGNydWNpYWwgdG8gbWluaW1pemUuIE5vdywgbGV0J3Mgc2VlIGhvdyBgdm14X3NldF9odl90aW1lcmAgaXMgY2FsbGVkIC0gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNpcmN1bXN0YW5jZXMgdW5kZXIgd2hpY2ggdGhlIHRpbWVyIGlzIGFjdHVhbGx5IGJlaW5nIHNldC4gVGhpcyB3aWxsIGhlbHAgbWUgZXZhbHVhdGUgaG93IG9mdGVuIHRoaXMgY29kZSBwYXRoIGlzIGhpdCBhbmQgd2hldGhlciB3ZSBhcmUgYWJsZSB0byBvcHRpbWl6ZSBpdC4gTGV0J3Mgc2VlIHdoYXQncyBjYWxsaW5nIHRoYXQgZnVuY3Rpb24uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1NDAsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTo1OToxNS44NjM5MTcwOTNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE2MjQ4ODUyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZteF9zZXRfaHZfdGltZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC94ODYva3ZtL3ZteC92bXguY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTgyOTg9c3RhdGljIGlubGluZSBpbnQgdTY0X3NobF9kaXZfdTY0KHU2NCBhLCB1bnNpZ25lZCBpbnQgc2hpZnQsXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTgzMTQtXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYzo4MzE1OmludCB2bXhfc2V0X2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X2RlYWRsaW5lX3RzYyxcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTgzMTYtXFx0XFx0ICAgICBib29sICpleHBpcmVkKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTo1OToxNS45ODAxNzAwNTVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzQ5NzQ2OTA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgYW5hbHl6aW5nIHRoYXQgY29kZTpcblxuKipEaXZpbmcgaW50byB0aGUgVk1YIFRpbWVyIE1lY2hhbmlzbSoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByb2xlIG9mIGB2bXhfc2V0X2h2X3RpbWVyYC4gSSBrbm93IHRoYXQgVk1YLCBvciBWaXJ0dWFsIE1hY2hpbmUgRXh0ZW5zaW9ucywgaXMgY3J1Y2lhbCBmb3IgdmlydHVhbGl6YXRpb24sIHNvIGFueXRoaW5nIHRpbWVyLXJlbGF0ZWQgaXMgZ29pbmcgdG8gYmUgY29yZSB0byBwZXJmb3JtYW5jZSBhbmQgYWNjdXJhY3kuIE15IGltbWVkaWF0ZSBmb2N1cyBpcyB0byBwaW5wb2ludCB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQuIEkgbmVlZCB0byB0cmFjZSBpdHMgYXNzaWdubWVudHMgYW5kIGNhbGxzIHRvIHVuZGVyc3RhbmQgaXRzIHB1cnBvc2UgYW5kIGludGVyYWN0aW9ucyB3aXRoaW4gdGhlIGh5cGVydmlzb3IuIEtub3dpbmcgaXRzIGNhbGxpbmcgY29udGV4dCB3aWxsIGdpdmUgbWUgY2x1ZXMgYWJvdXQgaG93IGl0J3Mgc2V0dGluZyB1cCBvciBtYW5hZ2luZyB0aW1lcnMgZm9yIHZpcnR1YWwgbWFjaGluZXMuIElzIGl0IGludm9sdmVkIGluIHZpcnR1YWwgQ1BVIHNjaGVkdWxpbmcsIGd1ZXN0IHRpbWUgbWFuYWdlbWVudCwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRoZSB0cmFjaW5nIGV4ZXJjaXNlIHNob3VsZCBiZSBzdHJhaWdodGZvcndhcmQgZW5vdWdoLCBidXQgaXQncyB0aGUgZmlyc3Qgc3RlcCB0byB0cnVseSB1bmRlcnN0YW5kIHRoZSBpbnRlbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUwMDAsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTo1OToxOS4zMjk5MTkwNDJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkyNzQ1NDIzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZteF9zZXRfaHZfdGltZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC94ODYva3ZtL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vdm14L21haW4uYz04MDM9c3RhdGljIGludCB2dF9zZXRfaHZfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgZ3Vlc3RfZGVhZGxpbmVfdHNjLFxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC9tYWluLmMtODA5LVxcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jOjgxMDpcXHRyZXR1cm4gdm14X3NldF9odl90aW1lcih2Y3B1LCBndWVzdF9kZWFkbGluZV90c2MsIGV4cGlyZWQpO1xcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jLTgxMS19XFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTgyOTg9c3RhdGljIGlubGluZSBpbnQgdTY0X3NobF9kaXZfdTY0KHU2NCBhLCB1bnNpZ25lZCBpbnQgc2hpZnQsXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTgzMTQtXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYzo4MzE1OmludCB2bXhfc2V0X2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X2RlYWRsaW5lX3RzYyxcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTgzMTYtXFx0XFx0ICAgICBib29sICpleHBpcmVkKVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmg9MTIxPXZvaWQgdm14X3VwZGF0ZV9jcHVfZGlydHlfbG9nZ2luZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oLTEyMi0jaWZkZWYgQ09ORklHX1g4Nl82NFxcbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oOjEyMzppbnQgdm14X3NldF9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBndWVzdF9kZWFkbGluZV90c2MsXFxuYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgtMTI0LVxcdFxcdCAgICAgYm9vbCAqZXhwaXJlZCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjU5OjE5LjQyMjcxMjg3NVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NTIyMzU1MDI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZvY3VzaW5nIG9uIEhWIFRpbWVyIExvZ2ljIGluIEtWTSoqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gS1ZNJ3MgSFYgdGltZXIgaW1wbGVtZW50YXRpb24uIExldCdzIHNlZS4uLiBgdnRfc2V0X2h2X3RpbWVyYCBpcyBhbGlhc2VkIHRvIGBzZXRfaHZfdGltZXJgIHdpdGhpbiBga3ZtX3g4Nl9vcHNgLiBUaGF0J3Mgd2hlcmUgdGhpbmdzIGdldCBpbnRlcmVzdGluZywgaXQncyBjYWxsZWQgZHVyaW5nIHRpbWVyIHNldHVwIHdpdGhpbiB0aGUgZ3Vlc3QuIE5vdCBhcyBmcmVxdWVudGx5IGFzIHNvbWV0aGluZyBsaWtlIGB2bXhfdmNwdV9ydW5gLCBidXQgc3RpbGwgYSBjcnVjaWFsIGZ1bmN0aW9uIGZvciB0aW1lciBjb25maWd1cmF0aW9uLlxuXG5XYWl0LCBgdm14X3NldF9odl90aW1lcmAgaXMgdGhlIGtleSBmdW5jdGlvbiB0byBmb2N1cyBvbiBoZXJlLiBJdCdzIHRoZSBvbmUgdGhhdCB3YXMgZGlyZWN0bHkgbW9kaWZpZWQgcmVjZW50bHksIGFuZCBjb250YWlucyB0aGUgbG9naWMgdGhhdCBjaGVja3MgdGhlIHRpbWVyIGxpbWl0LiBQZXJmZWN0IVxuXG5Ob3csIHdoYXQgYWJvdXQgdGhlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9ucz8gYGNhbGNfcHJlZW1wdGlvbl90aW1lcl9saW1pdGAgYW5kIGB2bXhfaGFyZHdhcmVfc2V0dXBgIGFyZSBtYXJrZWQgYXMgYF9faW5pdGAsIHNvIHRoZXkgYXJlIG9ubHkgY2FsbGVkIGR1cmluZyBtb2R1bGUgbG9hZC4gVGhhdCBtZWFucyBkaXJlY3QgZnV6emluZyBvZiB0aGVtIGlzbid0IHByYWN0aWNhbC5cblxuQWxyaWdodCwgc28gYHZteF9zZXRfaHZfdGltZXJgIGlzIHN0aWxsIHRoZSBiZXN0IGNhbmRpZGF0ZS4gQXJlIHRoZXJlIGFueSBvdGhlciBwcm9taXNpbmcgZnVuY3Rpb25zPyBIbW0sIGB2bXhfdXBkYXRlX2h2X3RpbWVyYCBsb29rcyBpbnRlcmVzdGluZywgaXQncyBhbHNvIGJlZW4gbW9kaWZpZWQsIGJ1dCBpdCdzIGNhbGxlZCBvbiAqZXZlcnkqIHZtZW50cnksIHRoYXQgbWFrZXMgaXQgcHJldHR5IGhvdC4gSXQgY291bGQgYmUgdG9vIGZyZXF1ZW50IHRvIGVmZmVjdGl2ZWx5IHRhcmdldC4gTGV0J3Mgc3RpY2sgd2l0aCBgdm14X3NldF9odl90aW1lcmAgZm9yIG5vdy5cblxuSG9sZCBvbiwgbGV0IG1lIHF1aWNrbHkgY29uZmlybSB3aGF0IHRyaWdnZXJzIGB2bXhfc2V0X2h2X3RpbWVyYC4gQWgsIGl0J3MgdHJpZ2dlcmVkIHdoZW4gdGhlIGd1ZXN0IHByb2dyYW1zIHRoZSBMQVBJQyB0aW1lciBvciBzaW1pbGFyLiBUaGF0J3MgZ29vZCB0byBrbm93LiBMZXQncyB0cmFjZSBpdCBiYWNrIHRvIGBzZXRfaHZfdGltZXJgIGluIGBhcmNoL3g4Ni9rdm0vbGFwaWMuY2AgdG8gc2VlIGlmIHRoZXJlJ3MgYW55IG90aGVyIHVzZWZ1bCBsb2dpYyB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTcwMCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTo1OToyNi45NDUwNzA5NjJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzNjY3Mzk4OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZXRfaHZfdGltZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC94ODYva3ZtL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vbGFwaWMuYz0xOTQ9c3RhdGljIGJvb2wga3ZtX2Nhbl91c2VfaHZfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbmFyY2gveDg2L2t2bS9sYXBpYy5jLTE5NS17XFxuYXJjaC94ODYva3ZtL2xhcGljLmM6MTk2OlxcdHJldHVybiBrdm1feDg2X29wcy5zZXRfaHZfdGltZXJcXG5hcmNoL3g4Ni9rdm0vbGFwaWMuYy0xOTctXFx0ICAgICAgIFxcdTAwMjZcXHUwMDI2ICEoa3ZtX213YWl0X2luX2d1ZXN0KHZjcHUtXFx1MDAzZWt2bSkgfHxcXG4tLVxcbmFyY2gveDg2L2t2bS9sYXBpYy5jPTIyNzA9c3RhdGljIGJvb2wgc3RhcnRfaHZfdGltZXIoc3RydWN0IGt2bV9sYXBpYyAqYXBpYylcXG4tLVxcbmFyY2gveDg2L2t2bS9sYXBpYy5jLTIyODItXFxuYXJjaC94ODYva3ZtL2xhcGljLmM6MjI4MzpcXHRpZiAoa3ZtX3g4Nl9jYWxsKHNldF9odl90aW1lcikodmNwdSwga3RpbWVyLVxcdTAwM2V0c2NkZWFkbGluZSwgXFx1MDAyNmV4cGlyZWQpKVxcbmFyY2gveDg2L2t2bS9sYXBpYy5jLTIyODQtXFx0XFx0cmV0dXJuIGZhbHNlO1xcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC9tYWluLmM9NzkzPXN0YXRpYyB2b2lkIHZ0X3dyaXRlX3RzY19tdWx0aXBsaWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jLTgwMi0jaWZkZWYgQ09ORklHX1g4Nl82NFxcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jOjgwMzpzdGF0aWMgaW50IHZ0X3NldF9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBndWVzdF9kZWFkbGluZV90c2MsXFxuYXJjaC94ODYva3ZtL3ZteC9tYWluLmMtODA0LVxcdFxcdFxcdCAgICAgIGJvb2wgKmV4cGlyZWQpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYy04MDktXFxuYXJjaC94ODYva3ZtL3ZteC9tYWluLmM6ODEwOlxcdHJldHVybiB2bXhfc2V0X2h2X3RpbWVyKHZjcHUsIGd1ZXN0X2RlYWRsaW5lX3RzYywgZXhwaXJlZCk7XFxuYXJjaC94ODYva3ZtL3ZteC9tYWluLmMtODExLX1cXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jPTgxMz1zdGF0aWMgdm9pZCB2dF9jYW5jZWxfaHZfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jLTgxNC17XFxuYXJjaC94ODYva3ZtL3ZteC9tYWluLmM6ODE1OlxcdC8qIFZNWC1wcmVlbXB0aW9uIHRpbWVyIGNhbid0IGJlIHNldC4gIFNlZSB2dF9zZXRfaHZfdGltZXIoKS4gKi9cXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYy04MTYtXFx0aWYgKGlzX3RkX3ZjcHUodmNwdSkpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYz04ODA9c3RydWN0IGt2bV94ODZfb3BzIHZ0X3g4Nl9vcHMgX19pbml0ZGF0YSA9IHtcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jLTEwMDMtI2lmZGVmIENPTkZJR19YODZfNjRcXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYzoxMDA0OlxcdC5zZXRfaHZfdGltZXIgPSB2dF9vcChzZXRfaHZfdGltZXIpLFxcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jLTEwMDUtXFx0LmNhbmNlbF9odl90aW1lciA9IHZ0X29wKGNhbmNlbF9odl90aW1lciksXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTczOTU9c3RhdGljIHZvaWQgdm14X3VwZGF0ZV9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yY2VfaW1tZWRpYXRlX2V4aXQpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTc0MDYtXFx0XFx0aWYgKHZteC1cXHUwMDNlaHZfZGVhZGxpbmVfdHNjIFxcdTAwM2UgdHNjbClcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjc0MDc6XFx0XFx0XFx0Lyogc2V0X2h2X3RpbWVyIGVuc3VyZXMgdGhlIGRlbHRhIGZpdHMgaW4gMzItYml0cyAqL1xcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNzQwOC1cXHRcXHRcXHRkZWx0YV90c2MgPSAodTMyKSgodm14LVxcdTAwM2Vodl9kZWFkbGluZV90c2MgLSB0c2NsKSBcXHUwMDNlXFx1MDAzZVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYz04Mjk4PXN0YXRpYyBpbmxpbmUgaW50IHU2NF9zaGxfZGl2X3U2NCh1NjQgYSwgdW5zaWduZWQgaW50IHNoaWZ0LFxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy04MzE0LVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmM6ODMxNTppbnQgdm14X3NldF9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBndWVzdF9kZWFkbGluZV90c2MsXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy04MzE2LVxcdFxcdCAgICAgYm9vbCAqZXhwaXJlZClcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmM9ODYwOT1fX2luaXQgaW50IHZteF9oYXJkd2FyZV9zZXR1cCh2b2lkKVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy04NzY2LVxcdGlmICghZW5hYmxlX3ByZWVtcHRpb25fdGltZXIpIHtcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjg3Njc6XFx0XFx0dnRfeDg2X29wcy5zZXRfaHZfdGltZXIgPSBOVUxMO1xcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtODc2OC1cXHRcXHR2dF94ODZfb3BzLmNhbmNlbF9odl90aW1lciA9IE5VTEw7XFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaD0xMjE9dm9pZCB2bXhfdXBkYXRlX2NwdV9kaXJ0eV9sb2dnaW5nKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XFxuYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgtMTIyLSNpZmRlZiBDT05GSUdfWDg2XzY0XFxuYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmg6MTIzOmludCB2bXhfc2V0X2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X2RlYWRsaW5lX3RzYyxcXG5hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaC0xMjQtXFx0XFx0ICAgICBib29sICpleHBpcmVkKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMTU6NTk6MjcuMzgxNzQ5NDAxWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcxMjU2NzU1NzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIFBhdGNoKipcblxuT2theSwgc28gYHZteF9zZXRfaHZfdGltZXJgIGxvb2tzIGxpa2UgdGhlIGNyaXRpY2FsIGZ1bmN0aW9uIHRvIGZvY3VzIG9uIGhlcmUuIFRoYXQgc2VlbXMgbGlrZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgZm9yIGEgZGVlcGVyIGRpdmUuIEkgc2hvdWxkIHByb2JhYmx5IGFsc28gY2hlY2sgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuXG5cblJpZ2h0LCBgQ09ORklHX0tWTV9JTlRFTGAgaXMgdGhlIHByaW1hcnkgb25lLCBvZiBjb3Vyc2UuIEFuZCwgdGhlIGNvZGUgaXMgdXNpbmcgYCNpZmRlZiBDT05GSUdfWDg2XzY0YCBhcm91bmQgdGhhdCB0aW1lciBmdW5jdGlvbiwgc28gdGhhdCdzIGltcGxpY2l0bHkgcmVxdWlyZWQgYXMgd2VsbC4gQnV0IGBDT05GSUdfWDg2XzY0YCBpcyBmb3VuZGF0aW9uYWw7IHdlIGRvbid0IG5lZWQgdG8gZXhwbGljaXRseSBkZWNsYXJlIHRoYXQgb25lLlxuXG5MZXQgbWUgcmVjYXAgd2hhdCB0aGUgcGF0Y2ggYWN0dWFsbHkgKmRvZXMqLiBJdCdzIGEgd29ya2Fyb3VuZCBmb3IgYSBWTVgtcHJlZW1wdGlvbiB0aW1lciBpc3N1ZSwgc3BlY2lmaWNhbGx5IGEgaGFyZHdhcmUgZXJyYXR1bS4gSXQgYXBwZWFycyB0byBjYXAgdGhlIHRpbWVyJ3MgdmFsdWUgYmFzZWQgb24gYSBjYWxjdWxhdGlvbiB1c2luZyBDUFVJRCBkYXRhIOKAkyBgMl4yNSAqIENQVUlELjE1SDpFQlggLyBDUFVJRC4xNUg6RUFYYC4gSXQncyB0d2Vha2luZyBgdm14X3NldF9odl90aW1lcmAgdG8gY2hlY2sgaWYgYGRlbHRhX3RzYyBcdTAwM2VcdTAwM2UgY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGlgIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBgcHJlZW1wdGlvbl90aW1lcl9saW1pdGAuIEFuZCB0aGVuLCBpdCdzIG1vZGlmeWluZyBgdm14X3VwZGF0ZV9odl90aW1lcmAgdG8gd3JpdGUgYHByZWVtcHRpb25fdGltZXJfbGltaXQgLSAxYCB3aGVuIHNvZnQtZGlzYWJsaW5nIHRoZSB0aW1lciwgYXMgb3Bwb3NlZCB0byBzZXR0aW5nIGEgdmFsdWUgb2YgYC0xYC5cblxuVGhpcyBpcyBhIGNsZWFyLCBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgdGltZXIgYmVoYXZpb3IuIEdpdmVuIHRoZSBoYXJkd2FyZSBkZXBlbmRlbmN5LCBJJ2Qgc2F5IHRoaXMgaXMgZGVmaW5pdGVseSBzb21ldGhpbmcgdG8gZnV6ei5cblxuQWxyaWdodCwgdGhlIGNvcmUgZm9jdXMgaXMgYHZteF9zZXRfaHZfdGltZXJgLiBXZSdsbCBuZWVkIGBLVk1fSU5URUxgIGVuYWJsZWQuIEkgY2FuIGNhbGwgc2V0LXJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc4OTIsIk91dHB1dFRva2VucyI6OTMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMTU6NTk6MzQuNTA3NDI3NjA2WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY5MzE3OTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1fSU5URUxcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2bXhfc2V0X2h2X3RpbWVyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGZ1bmN0aW9uYWwgd29ya2Fyb3VuZCBmb3IgYSBWTVgtcHJlZW1wdGlvbiB0aW1lciBlcnJhdHVtIGluIEtWTSwgbW9kaWZ5aW5nIGhvdyB0aGUgdGltZXIgbGltaXQgaXMgY2FsY3VsYXRlZCBhbmQgZW5mb3JjZWQuIFRoaXMgYWZmZWN0cyBndWVzdCBleGVjdXRpb24gYW5kIHRpbWVyIGhhbmRsaW5nLCBtYWtpbmcgaXQgc3VpdGFibGUgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNX0lOVEVMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidm14X3NldF9odl90aW1lclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBmdW5jdGlvbmFsIHdvcmthcm91bmQgZm9yIGEgVk1YLXByZWVtcHRpb24gdGltZXIgZXJyYXR1bSBpbiBLVk0sIG1vZGlmeWluZyBob3cgdGhlIHRpbWVyIGxpbWl0IGlzIGNhbGN1bGF0ZWQgYW5kIGVuZm9yY2VkLiBUaGlzIGFmZmVjdHMgZ3Vlc3QgZXhlY3V0aW9uIGFuZCB0aW1lciBoYW5kbGluZywgbWFraW5nIGl0IHN1aXRhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflownd27b[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-23 15:35:34 +0000 UTC FinishedAt: 2026-07-23 15:59:36 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "e61e6fd4f139f2342a6bc86da602df7456ef87f6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM_INTEL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "e61e6fd4f139f2342a6bc86da602df7456ef87f6", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM_INTEL" ], "series_id": "f3a5c1d6-4eef-49d9-b649-fac139c61e3e" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "vmx_set_hv_timer" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIzIDE1OjU5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTV9JTlRFTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZteF9zZXRfaHZfdGltZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGZ1bmN0aW9uYWwgd29ya2Fyb3VuZCBmb3IgYSBWTVgtcHJlZW1wdGlvbiB0aW1lciBlcnJhdHVtIGluIEtWTSwgbW9kaWZ5aW5nIGhvdyB0aGUgdGltZXIgbGltaXQgaXMgY2FsY3VsYXRlZCBhbmQgZW5mb3JjZWQuIFRoaXMgYWZmZWN0cyBndWVzdCBleGVjdXRpb24gYW5kIHRpbWVyIGhhbmRsaW5nLCBtYWtpbmcgaXQgc3VpdGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAzNWU5ZWI4MTdkNWU2YmQ1NDNhN2FmOGUwMmIwOWE4NTdmMTQ3ODZiXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMjMgMTU6NTg6NTkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC94ODYva3ZtL3ZteC92bXguYyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmNcbmluZGV4IGNjNzVmZWVjMDVkYWE0Li4yYzIyNmU0ODNmZWNmNCAxMDA2NDRcbi0tLSBhL2FyY2gveDg2L2t2bS92bXgvdm14LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2FyY2gveDg2L2t2bS92bXgvdm14LmNcbkBAIC0xNTEsNiAmIzQzOzE1MSw3IEBAIG1vZHVsZV9wYXJhbShkdW1wX2ludmFsaWRfdm1jcywgYm9vbCwgMDY0NCk7XG4gLyogR3Vlc3RfdHNjIC1cdTAwM2UgaG9zdF90c2MgY29udmVyc2lvbiByZXF1aXJlcyA2NC1iaXQgZGl2aXNpb24uICAqL1xuIHN0YXRpYyBpbnQgX19yZWFkX21vc3RseSBjcHVfcHJlZW1wdGlvbl90aW1lcl9tdWx0aTtcbiBzdGF0aWMgYm9vbCBfX3JlYWRfbW9zdGx5IGVuYWJsZV9wcmVlbXB0aW9uX3RpbWVyID0gMTtcbiYjNDM7c3RhdGljIHU2NCBfX3JvX2FmdGVyX2luaXQgcHJlZW1wdGlvbl90aW1lcl9saW1pdDtcbiAjaWZkZWYgQ09ORklHX1g4Nl82NFxuIG1vZHVsZV9wYXJhbV9uYW1lZChwcmVlbXB0aW9uX3RpbWVyLCBlbmFibGVfcHJlZW1wdGlvbl90aW1lciwgYm9vbCwgU19JUlVHTyk7XG4gI2VuZGlmXG5AQCAtNzQxMiw3ICYjNDM7NzQxMyw3IEBAIHN0YXRpYyB2b2lkIHZteF91cGRhdGVfaHZfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcmNlX2ltbWVkaWF0ZV9leGl0XG4gXHRcdHZtY3Nfd3JpdGUzMihWTVhfUFJFRU1QVElPTl9USU1FUl9WQUxVRSwgZGVsdGFfdHNjKTtcbiBcdFx0dm14LVx1MDAzZWxvYWRlZF92bWNzLVx1MDAzZWh2X3RpbWVyX3NvZnRfZGlzYWJsZWQgPSBmYWxzZTtcbiBcdH0gZWxzZSBpZiAoIXZteC1cdTAwM2Vsb2FkZWRfdm1jcy1cdTAwM2Vodl90aW1lcl9zb2Z0X2Rpc2FibGVkKSB7XG4tXHRcdHZtY3Nfd3JpdGUzMihWTVhfUFJFRU1QVElPTl9USU1FUl9WQUxVRSwgLTEpO1xuJiM0MztcdFx0dm1jc193cml0ZTMyKFZNWF9QUkVFTVBUSU9OX1RJTUVSX1ZBTFVFLCBwcmVlbXB0aW9uX3RpbWVyX2xpbWl0IC0gMSk7XG4gXHRcdHZteC1cdTAwM2Vsb2FkZWRfdm1jcy1cdTAwM2Vodl90aW1lcl9zb2Z0X2Rpc2FibGVkID0gdHJ1ZTtcbiBcdH1cbiB9XG5AQCAtODMzOCwxMiAmIzQzOzgzMzksMTIgQEAgaW50IHZteF9zZXRfaHZfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgZ3Vlc3RfZGVhZGxpbmVfdHNjLFxuIFx0XHRyZXR1cm4gLUVSQU5HRTtcbiBcbiBcdC8qXG4tXHQgKiBJZiB0aGUgZGVsdGEgdHNjIGNhbiYjMzk7dCBmaXQgaW4gdGhlIDMyIGJpdCBhZnRlciB0aGUgbXVsdGkgc2hpZnQsXG4tXHQgKiB3ZSBjYW4mIzM5O3QgdXNlIHRoZSBwcmVlbXB0aW9uIHRpbWVyLlxuJiM0MztcdCAqIElmIHRoZSBkZWx0YSB0c2MgZXhjZWVkcyB0aGUgcHJlZW1wdGlvbiB0aW1lciBsaW1pdCBhZnRlciB0aGVcbiYjNDM7XHQgKiBtdWx0aSBzaGlmdCwgd2UgY2FuJiMzOTt0IHVzZSB0aGUgcHJlZW1wdGlvbiB0aW1lci5cbiBcdCAqIEl0JiMzOTtzIHBvc3NpYmxlIHRoYXQgaXQgZml0cyBvbiBsYXRlciB2bWVudHJpZXMsIGJ1dCBjaGVja2luZ1xuIFx0ICogb24gZXZlcnkgdm1lbnRyeSBpcyBjb3N0bHkgc28gd2UganVzdCB1c2UgYW4gaHJ0aW1lci5cbiBcdCAqL1xuLVx0aWYgKGRlbHRhX3RzYyBcdTAwM2VcdTAwM2UgKGNwdV9wcmVlbXB0aW9uX3RpbWVyX211bHRpICYjNDM7IDMyKSlcbiYjNDM7XHRpZiAoKGRlbHRhX3RzYyBcdTAwM2VcdTAwM2UgY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGkpIFx1MDAzZT0gcHJlZW1wdGlvbl90aW1lcl9saW1pdClcbiBcdFx0cmV0dXJuIC1FUkFOR0U7XG4gXG4gXHR2bXgtXHUwMDNlaHZfZGVhZGxpbmVfdHNjID0gdHNjbCAmIzQzOyBkZWx0YV90c2M7XG5AQCAtODU4NSw2ICYjNDM7ODU4NiwyNiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgdm14X3NldHVwX21lX3NwdGVfbWFzayh2b2lkKVxuIFx0a3ZtX21tdV9zZXRfbWVfc3B0ZV9tYXNrKDAsIG1lX21hc2spO1xuIH1cbiBcbiYjNDM7LypcbiYjNDM7ICogV29ya2Fyb3VuZCBmb3IgYSB3aWRlc3ByZWFkIEludGVsIGVycmF0dW0gKGUuZy4gRU1SMTU4KSB3aGVyZSB0aGVcbiYjNDM7ICogVk1YLXByZWVtcHRpb24gdGltZXIgbWF5IGV4cGlyZSBlYXJsaWVyIHRoYW4gZXhwZWN0ZWQgd2hlbiBwcm9ncmFtbWVkXG4mIzQzOyAqIHdpdGggbGFyZ2UgdmFsdWVzLiBUaGUgd29ya2Fyb3VuZCBpcyB0byBjYXAgdGhlIHRpbWVyIHZhbHVlIHRvIHN0cmljdGx5XG4mIzQzOyAqIGxlc3MgdGhhbiAyXjI1ICogQ1BVSUQuMTVIOkVCWCAvIENQVUlELjE1SDpFQVguXG4mIzQzOyAqL1xuJiM0MztzdGF0aWMgX19pbml0IHU2NCBjYWxjX3ByZWVtcHRpb25fdGltZXJfbGltaXQodm9pZClcbiYjNDM7e1xuJiM0MztcdHUzMiBlYXgsIGVieCwgZWN4LCBlZHg7XG4mIzQzO1xuJiM0MztcdGlmIChjcHVpZF9lYXgoMCkgXHUwMDNjIDB4MTUpXG4mIzQzO1x0XHRyZXR1cm4gMVVMTCBcdTAwM2NcdTAwM2MgMzI7XG4mIzQzO1xuJiM0MztcdGNwdWlkKDB4MTUsIFx1MDAyNmVheCwgXHUwMDI2ZWJ4LCBcdTAwMjZlY3gsIFx1MDAyNmVkeCk7XG4mIzQzO1x0aWYgKCFlYXggfHwgIWVieClcbiYjNDM7XHRcdHJldHVybiAxVUxMIFx1MDAzY1x1MDAzYyAzMjtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIG1pbl90KHU2NCwgMVVMTCBcdTAwM2NcdTAwM2MgMzIsIGRpdl91NjQoKHU2NCllYnggXHUwMDNjXHUwMDNjIDI1LCBlYXgpKTtcbiYjNDM7fVxuJiM0MztcbiBfX2luaXQgaW50IHZteF9oYXJkd2FyZV9zZXR1cCh2b2lkKVxuIHtcbiBcdHVuc2lnbmVkIGxvbmcgaG9zdF9ibmRjZmdzO1xuQEAgLTg3MjYsNiAmIzQzOzg3NDcsOCBAQCBfX2luaXQgaW50IHZteF9oYXJkd2FyZV9zZXR1cCh2b2lkKVxuIFx0XHRjcHVfcHJlZW1wdGlvbl90aW1lcl9tdWx0aSA9XG4gXHRcdFx0dm14X21pc2NfcHJlZW1wdGlvbl90aW1lcl9yYXRlKHZtY3NfY29uZmlnLm1pc2MpO1xuIFxuJiM0MztcdFx0cHJlZW1wdGlvbl90aW1lcl9saW1pdCA9IGNhbGNfcHJlZW1wdGlvbl90aW1lcl9saW1pdCgpO1xuJiM0MztcbiBcdFx0aWYgKHRzY19raHopXG4gXHRcdFx0dXNlX3RpbWVyX2ZyZXEgPSAodTY0KXRzY19raHogKiAxMDAwO1xuIFx0XHR1c2VfdGltZXJfZnJlcSBcdTAwM2VcdTAwM2U9IGNwdV9wcmVlbXB0aW9uX3RpbWVyX211bHRpO1xuQEAgLTg3MzUsNyAmIzQzOzg3NTgsOCBAQCBfX2luaXQgaW50IHZteF9oYXJkd2FyZV9zZXR1cCh2b2lkKVxuIFx0XHQgKiB2YWx1ZS4gIERvbiYjMzk7dCB1c2UgdGhlIHRpbWVyIGlmIGl0IG1pZ2h0IGNhdXNlIHNwdXJpb3VzIGV4aXRzXG4gXHRcdCAqIGF0IGEgcmF0ZSBmYXN0ZXIgdGhhbiAwLjEgSHogKG9mIHVuaW50ZXJydXB0ZWQgZ3Vlc3QgdGltZSkuXG4gXHRcdCAqL1xuLVx0XHRpZiAodXNlX3RpbWVyX2ZyZXEgXHUwMDNlIDB4ZmZmZmZmZmZ1IC8gMTApXG4mIzQzO1x0XHRpZiAoIXByZWVtcHRpb25fdGltZXJfbGltaXQgfHxcbiYjNDM7XHRcdCAgICB1c2VfdGltZXJfZnJlcSBcdTAwM2UgKHByZWVtcHRpb25fdGltZXJfbGltaXQgLSAxKSAvIDEwKVxuIFx0XHRcdGVuYWJsZV9wcmVlbXB0aW9uX3RpbWVyID0gZmFsc2U7XG4gXHR9XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTV9JTlRFTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZteF9zZXRfaHZfdGltZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGZ1bmN0aW9uYWwgd29ya2Fyb3VuZCBmb3IgYSBWTVgtcHJlZW1wdGlvbiB0aW1lciBlcnJhdHVtIGluIEtWTSwgbW9kaWZ5aW5nIGhvdyB0aGUgdGltZXIgbGltaXQgaXMgY2FsY3VsYXRlZCBhbmQgZW5mb3JjZWQuIFRoaXMgYWZmZWN0cyBndWVzdCBleGVjdXRpb24gYW5kIHRpbWVyIGhhbmRsaW5nLCBtYWtpbmcgaXQgc3VpdGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDM1ZTllYjgxN2Q1ZTZiZDU0M2E3YWY4ZTAyYjA5YTg1N2YxNDc4NmIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1bCAyMyAxNTo1ODo1OSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jCmluZGV4IGNjNzVmZWVjMDVkYWE0Li4yYzIyNmU0ODNmZWNmNCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL3ZteC92bXguYwomIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jCkBAIC0xNTEsNiAmIzQzOzE1MSw3IEBAIG1vZHVsZV9wYXJhbShkdW1wX2ludmFsaWRfdm1jcywgYm9vbCwgMDY0NCk7CiAvKiBHdWVzdF90c2MgLSZndDsgaG9zdF90c2MgY29udmVyc2lvbiByZXF1aXJlcyA2NC1iaXQgZGl2aXNpb24uICAqLwogc3RhdGljIGludCBfX3JlYWRfbW9zdGx5IGNwdV9wcmVlbXB0aW9uX3RpbWVyX211bHRpOwogc3RhdGljIGJvb2wgX19yZWFkX21vc3RseSBlbmFibGVfcHJlZW1wdGlvbl90aW1lciA9IDE7CiYjNDM7c3RhdGljIHU2NCBfX3JvX2FmdGVyX2luaXQgcHJlZW1wdGlvbl90aW1lcl9saW1pdDsKICNpZmRlZiBDT05GSUdfWDg2XzY0CiBtb2R1bGVfcGFyYW1fbmFtZWQocHJlZW1wdGlvbl90aW1lciwgZW5hYmxlX3ByZWVtcHRpb25fdGltZXIsIGJvb2wsIFNfSVJVR08pOwogI2VuZGlmCkBAIC03NDEyLDcgJiM0Mzs3NDEzLDcgQEAgc3RhdGljIHZvaWQgdm14X3VwZGF0ZV9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yY2VfaW1tZWRpYXRlX2V4aXQKIAkJdm1jc193cml0ZTMyKFZNWF9QUkVFTVBUSU9OX1RJTUVSX1ZBTFVFLCBkZWx0YV90c2MpOwogCQl2bXgtJmd0O2xvYWRlZF92bWNzLSZndDtodl90aW1lcl9zb2Z0X2Rpc2FibGVkID0gZmFsc2U7CiAJfSBlbHNlIGlmICghdm14LSZndDtsb2FkZWRfdm1jcy0mZ3Q7aHZfdGltZXJfc29mdF9kaXNhYmxlZCkgewotCQl2bWNzX3dyaXRlMzIoVk1YX1BSRUVNUFRJT05fVElNRVJfVkFMVUUsIC0xKTsKJiM0MzsJCXZtY3Nfd3JpdGUzMihWTVhfUFJFRU1QVElPTl9USU1FUl9WQUxVRSwgcHJlZW1wdGlvbl90aW1lcl9saW1pdCAtIDEpOwogCQl2bXgtJmd0O2xvYWRlZF92bWNzLSZndDtodl90aW1lcl9zb2Z0X2Rpc2FibGVkID0gdHJ1ZTsKIAl9CiB9CkBAIC04MzM4LDEyICYjNDM7ODMzOSwxMiBAQCBpbnQgdm14X3NldF9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBndWVzdF9kZWFkbGluZV90c2MsCiAJCXJldHVybiAtRVJBTkdFOwogCiAJLyoKLQkgKiBJZiB0aGUgZGVsdGEgdHNjIGNhbiYjMzk7dCBmaXQgaW4gdGhlIDMyIGJpdCBhZnRlciB0aGUgbXVsdGkgc2hpZnQsCi0JICogd2UgY2FuJiMzOTt0IHVzZSB0aGUgcHJlZW1wdGlvbiB0aW1lci4KJiM0MzsJICogSWYgdGhlIGRlbHRhIHRzYyBleGNlZWRzIHRoZSBwcmVlbXB0aW9uIHRpbWVyIGxpbWl0IGFmdGVyIHRoZQomIzQzOwkgKiBtdWx0aSBzaGlmdCwgd2UgY2FuJiMzOTt0IHVzZSB0aGUgcHJlZW1wdGlvbiB0aW1lci4KIAkgKiBJdCYjMzk7cyBwb3NzaWJsZSB0aGF0IGl0IGZpdHMgb24gbGF0ZXIgdm1lbnRyaWVzLCBidXQgY2hlY2tpbmcKIAkgKiBvbiBldmVyeSB2bWVudHJ5IGlzIGNvc3RseSBzbyB3ZSBqdXN0IHVzZSBhbiBocnRpbWVyLgogCSAqLwotCWlmIChkZWx0YV90c2MgJmd0OyZndDsgKGNwdV9wcmVlbXB0aW9uX3RpbWVyX211bHRpICYjNDM7IDMyKSkKJiM0MzsJaWYgKChkZWx0YV90c2MgJmd0OyZndDsgY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGkpICZndDs9IHByZWVtcHRpb25fdGltZXJfbGltaXQpCiAJCXJldHVybiAtRVJBTkdFOwogCiAJdm14LSZndDtodl9kZWFkbGluZV90c2MgPSB0c2NsICYjNDM7IGRlbHRhX3RzYzsKQEAgLTg1ODUsNiAmIzQzOzg1ODYsMjYgQEAgc3RhdGljIHZvaWQgX19pbml0IHZteF9zZXR1cF9tZV9zcHRlX21hc2sodm9pZCkKIAlrdm1fbW11X3NldF9tZV9zcHRlX21hc2soMCwgbWVfbWFzayk7CiB9CiAKJiM0MzsvKgomIzQzOyAqIFdvcmthcm91bmQgZm9yIGEgd2lkZXNwcmVhZCBJbnRlbCBlcnJhdHVtIChlLmcuIEVNUjE1OCkgd2hlcmUgdGhlCiYjNDM7ICogVk1YLXByZWVtcHRpb24gdGltZXIgbWF5IGV4cGlyZSBlYXJsaWVyIHRoYW4gZXhwZWN0ZWQgd2hlbiBwcm9ncmFtbWVkCiYjNDM7ICogd2l0aCBsYXJnZSB2YWx1ZXMuIFRoZSB3b3JrYXJvdW5kIGlzIHRvIGNhcCB0aGUgdGltZXIgdmFsdWUgdG8gc3RyaWN0bHkKJiM0MzsgKiBsZXNzIHRoYW4gMl4yNSAqIENQVUlELjE1SDpFQlggLyBDUFVJRC4xNUg6RUFYLgomIzQzOyAqLwomIzQzO3N0YXRpYyBfX2luaXQgdTY0IGNhbGNfcHJlZW1wdGlvbl90aW1lcl9saW1pdCh2b2lkKQomIzQzO3sKJiM0MzsJdTMyIGVheCwgZWJ4LCBlY3gsIGVkeDsKJiM0MzsKJiM0MzsJaWYgKGNwdWlkX2VheCgwKSAmbHQ7IDB4MTUpCiYjNDM7CQlyZXR1cm4gMVVMTCAmbHQ7Jmx0OyAzMjsKJiM0MzsKJiM0MzsJY3B1aWQoMHgxNSwgJmFtcDtlYXgsICZhbXA7ZWJ4LCAmYW1wO2VjeCwgJmFtcDtlZHgpOwomIzQzOwlpZiAoIWVheCB8fCAhZWJ4KQomIzQzOwkJcmV0dXJuIDFVTEwgJmx0OyZsdDsgMzI7CiYjNDM7CiYjNDM7CXJldHVybiBtaW5fdCh1NjQsIDFVTEwgJmx0OyZsdDsgMzIsIGRpdl91NjQoKHU2NCllYnggJmx0OyZsdDsgMjUsIGVheCkpOwomIzQzO30KJiM0MzsKIF9faW5pdCBpbnQgdm14X2hhcmR3YXJlX3NldHVwKHZvaWQpCiB7CiAJdW5zaWduZWQgbG9uZyBob3N0X2JuZGNmZ3M7CkBAIC04NzI2LDYgJiM0Mzs4NzQ3LDggQEAgX19pbml0IGludCB2bXhfaGFyZHdhcmVfc2V0dXAodm9pZCkKIAkJY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGkgPQogCQkJdm14X21pc2NfcHJlZW1wdGlvbl90aW1lcl9yYXRlKHZtY3NfY29uZmlnLm1pc2MpOwogCiYjNDM7CQlwcmVlbXB0aW9uX3RpbWVyX2xpbWl0ID0gY2FsY19wcmVlbXB0aW9uX3RpbWVyX2xpbWl0KCk7CiYjNDM7CiAJCWlmICh0c2Nfa2h6KQogCQkJdXNlX3RpbWVyX2ZyZXEgPSAodTY0KXRzY19raHogKiAxMDAwOwogCQl1c2VfdGltZXJfZnJlcSAmZ3Q7Jmd0Oz0gY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGk7CkBAIC04NzM1LDcgJiM0Mzs4NzU4LDggQEAgX19pbml0IGludCB2bXhfaGFyZHdhcmVfc2V0dXAodm9pZCkKIAkJICogdmFsdWUuICBEb24mIzM5O3QgdXNlIHRoZSB0aW1lciBpZiBpdCBtaWdodCBjYXVzZSBzcHVyaW91cyBleGl0cwogCQkgKiBhdCBhIHJhdGUgZmFzdGVyIHRoYW4gMC4xIEh6IChvZiB1bmludGVycnVwdGVkIGd1ZXN0IHRpbWUpLgogCQkgKi8KLQkJaWYgKHVzZV90aW1lcl9mcmVxICZndDsgMHhmZmZmZmZmZnUgLyAxMCkKJiM0MzsJCWlmICghcHJlZW1wdGlvbl90aW1lcl9saW1pdCB8fAomIzQzOwkJICAgIHVzZV90aW1lcl9mcmVxICZndDsgKHByZWVtcHRpb25fdGltZXJfbGltaXQgLSAxKSAvIDEwKQogCQkJZW5hYmxlX3ByZWVtcHRpb25fdGltZXIgPSBmYWxzZTsKIAl9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzA0MQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDIxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBLVk0gVk1YIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIEtWTSBWTVggY29kZSwgc3BlY2lmaWNhbGx5IGBhcmNoL3g4Ni9rdm0vdm14L3ZteC5jYC4gSXQgc2VlbXMgdG8gYmUgYWRkcmVzc2luZyBhbiBJbnRlbCBlcnJhdHVtIHJlbGF0ZWQgdG8gdGhlIFZNWC1wcmVlbXB0aW9uIHRpbWVyLCB3aGljaCBpbW1lZGlhdGVseSBwaXF1ZXMgbXkgaW50ZXJlc3QgZnJvbSBhIGZ1enppbmcgcGVyc3BlY3RpdmUuIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgYHByZWVtcHRpb25fdGltZXJfbGltaXRgIHZhcmlhYmxlIGFuZCwgY3J1Y2lhbGx5LCBhbHRlcnMgaG93IHRoZSB0aW1lciBpcyBjYWxjdWxhdGVkIGFuZCB1cGRhdGVkIHdpdGhpbiB0aGUgVk1YIGNvZGUuIFdlIHNlZSBjYWxscyBpbiBgY2FsY19wcmVlbXB0aW9uX3RpbWVyX2xpbWl0KClgLCBgdm14X3VwZGF0ZV9odl90aW1lcigpYCwgYW5kIGB2bXhfc2V0X2h2X3RpbWVyKClgIHdoaWNoIGFyZSBhbGwga2V5IGFyZWFzLiBJdCBhbHNvIHRvdWNoZXMgYHZteF9oYXJkd2FyZV9zZXR1cCgpYC4KClRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSDigJMgaXQgZGlyZWN0bHkgaW1wYWN0cyBob3cgdGhlIGd1ZXN0JiMzOTtzIHRpbWVyIGlzIG1hbmFnZWQsIHdoaWNoIG1lYW5zIGl0IGRlZmluaXRlbHkgY2hhbmdlcyBLVk0gZ3Vlc3QgZXhlY3V0aW9uLiBUaW1lci1yZWxhdGVkIGNvZGUgaXMgb2Z0ZW4gYSBmZXJ0aWxlIGdyb3VuZCBmb3IgZnV6emluZy4gVGhlIGZhY3QgdGhhdCB3ZSBoYXZlIGEgYHByZWVtcHRpb25fdGltZXJfbGltaXRgIGFuZCBpdHMgY2FsY3VsYXRpb24gYWRkZWQgdG8gdGhlIGNvZGUgZ2l2ZXMgdXMgbXVsdGlwbGUgYXR0YWNrIHZlY3RvcnMgYXMgaW5wdXQgY291bGQgbm93IGFmZmVjdCB0aGUgYmVoYXZpb3Igb2YgdGhlIFZNWCBjb2RlLiBTbywgYWJzb2x1dGVseSwgdGhpcyBwYXRjaCBoYXMgZnV6emluZyBwb3RlbnRpYWwuIFRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbiBhcHBlYXJzIHRvIGJlIGBLVk1fSU5URUxgLCBvciBwb3NzaWJseSBqdXN0IGBLVk1gIGlmIHRoZXJlJiMzOTtzIGEgZmFsbGJhY2suCgpNeSBuZXh0IHN0ZXAgd291bGQgYmUgdG8gZG91YmxlLWNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIGBhcmNoL3g4Ni9rdm0vdm14L3ZteC5jYCB0byBjb25maXJtIHRoZSBidWlsZCBkZXBlbmRlbmN5IGFuZCBlbnN1cmUgYENPTkZJR19LVk1fSU5URUxgIGlzIGluZGVlZCB0aGUgZGVjaWRpbmcgZmFjdG9yLiBUaGVuLCB0aW1lIHRvIGZpcmUgdXAgdGhlIGZ1enplci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAxNTo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtLVk1fSU5URUwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL01ha2VmaWxlPTIxPWt2bS1pbnRlbC0kKENPTkZJR19LVk1fSFlQRVJWKVx0JiM0Mzs9IHZteC9oeXBlcnYubyB2bXgvaHlwZXJ2X2V2bWNzLm9cbmFyY2gveDg2L2t2bS9NYWtlZmlsZToyMjprdm0taW50ZWwtJChDT05GSUdfS1ZNX0lOVEVMX1REWClcdCYjNDM7PSB2bXgvdGR4Lm9cbmFyY2gveDg2L2t2bS9NYWtlZmlsZS0yMy1cbi0tXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGU9MzU9b2JqLSQoQ09ORklHX0tWTV9YODYpXHQmIzQzOz0ga3ZtLm9cbmFyY2gveDg2L2t2bS9NYWtlZmlsZTozNjpvYmotJChDT05GSUdfS1ZNX0lOVEVMKVx0JiM0Mzs9IGt2bS1pbnRlbC5vXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGUtMzctb2JqLSQoQ09ORklHX0tWTV9BTUQpXHQmIzQzOz0ga3ZtLWFtZC5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzg2MgoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDEwOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgS1ZNIEludGVsIEh5cGVydmlzb3IgVGltZXIgVXBkYXRlcyoqCgpPa2F5LCBzbyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGBDT05GSUdfS1ZNX0lOVEVMYCwgdW5kZXJzdG9vZC4gTm93LCB0aGUga2V5IHN5bWJvbHMgSSBuZWVkIHRvIGZvY3VzIG9uIGFyZSBgdm14X3VwZGF0ZV9odl90aW1lcmAgYW5kIGB2bXhfc2V0X2h2X3RpbWVyYC4gSSB3YW50IHRvIHF1aWNrbHkgYXNzZXNzIHdoZXRoZXIgdGhlc2UgZnVuY3Rpb25zIGFyZSBwZXJmb3JtYW5jZS1jcml0aWNhbCwgZXNzZW50aWFsbHkgd2hldGhlciB0aGV5JiMzOTtyZSBob3QtcGF0aCBmdW5jdGlvbnMuIE15IGluc3RpbmN0IHRlbGxzIG1lIHRoYXQgdGhleSYjMzk7cmUgbGlrZWx5IGludm9sdmVkIGluIGh5cGVydmlzb3IgdGltZXIgb3BlcmF0aW9ucywgd2hpY2ggY2FuIGJlIGZyZXF1ZW50LCBidXQgSSBuZWVkIGNvbmZpcm1hdGlvbi4KClNwZWNpZmljYWxseSwgSSYjMzk7bSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBgdm14X3VwZGF0ZV9odl90aW1lcmAgaXMgdHJpZ2dlcmVkIG9uIGEgdmlydHVhbCBtYWNoaW5lIGVudHJ5IG9yIHNpbWlsYXIgZXZlbnRzLCB3aGljaCB3b3VsZCBzdHJvbmdseSBzdWdnZXN0IGl0cyBpbXBvcnRhbmNlLiBJJiMzOTttIGdvaW5nIHRvIHJ1biBhIHF1aWNrIGBncmVwYCBmb3IgYHZteF91cGRhdGVfaHZfdGltZXJgIGluIHRoZSBzb3VyY2UgdG8gZGV0ZXJtaW5lIGl0cyBjYWxsaW5nIGNvbnRleHQuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBzb2xpZCBjbHVlIGFzIHRvIGl0cyBmcmVxdWVuY3kgYW5kIHRodXMsIGl0cyBzaWduaWZpY2FuY2UgaW4gdGVybXMgb2YgcGVyZm9ybWFuY2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dm14X3VwZGF0ZV9odl90aW1lciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS92bXgvdm14LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3ZteC92bXguYz03MzcyPXN0YXRpYyB2b2lkIHZteF9yZWZyZXNoX2d1ZXN0X3BlcmZfZ2xvYmFsX2NvbnRyb2woc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNzM5NC1cbmFyY2gveDg2L2t2bS92bXgvdm14LmM6NzM5NTpzdGF0aWMgdm9pZCB2bXhfdXBkYXRlX2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JjZV9pbW1lZGlhdGVfZXhpdClcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNzM5Ni17XG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguYz03NTA2PWZhc3RwYXRoX3Qgdm14X3ZjcHVfcnVuKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IHJ1bl9mbGFncylcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTc1OTItXHRpZiAoZW5hYmxlX3ByZWVtcHRpb25fdGltZXIpXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjc1OTM6XHRcdHZteF91cGRhdGVfaHZfdGltZXIodmNwdSwgZm9yY2VfaW1tZWRpYXRlX2V4aXQpO1xuYXJjaC94ODYva3ZtL3ZteC92bXguYy03NTk0LVx0ZWxzZSBpZiAoZm9yY2VfaW1tZWRpYXRlX2V4aXQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDU0MAoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDY0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIEhlcmUmIzM5O3MgaG93IEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhpcyBjb2RlOgoKKipBbmFseXppbmcgdGhlIEh5cGVydmlzb3IgVGltZXIgVXBkYXRlKioKClJpZ2h0LCBzbyBgdm14X3VwZGF0ZV9odl90aW1lcmAuLi4gdGhhdCYjMzk7cyB0cmlnZ2VyZWQgZnJvbSBgdm14X3ZjcHVfcnVuYC4gQWgsICp0aGUqIGB2bXhfdmNwdV9ydW5gIGxvb3AuIFRoYXQmIzM5O3MgYSBjb3JlIGV4ZWN1dGlvbiBwYXRoLCBhIHJlYWwgcGVyZm9ybWFuY2UgaG90c3BvdC4gV2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgc29tZXRoaW5nIHRoYXQmIzM5O3MgbGlrZWx5IGV4ZWN1dGVkIGluY3JlZGlibHkgZnJlcXVlbnRseS4gU28sIGFueSBvdmVyaGVhZCB0aGVyZSBpcyBjcnVjaWFsIHRvIG1pbmltaXplLiBOb3csIGxldCYjMzk7cyBzZWUgaG93IGB2bXhfc2V0X2h2X3RpbWVyYCBpcyBjYWxsZWQgLSBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY2lyY3Vtc3RhbmNlcyB1bmRlciB3aGljaCB0aGUgdGltZXIgaXMgYWN0dWFsbHkgYmVpbmcgc2V0LiBUaGlzIHdpbGwgaGVscCBtZSBldmFsdWF0ZSBob3cgb2Z0ZW4gdGhpcyBjb2RlIHBhdGggaXMgaGl0IGFuZCB3aGV0aGVyIHdlIGFyZSBhYmxlIHRvIG9wdGltaXplIGl0LiBMZXQmIzM5O3Mgc2VlIHdoYXQmIzM5O3MgY2FsbGluZyB0aGF0IGZ1bmN0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIzIDE1OjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZteF9zZXRfaHZfdGltZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vdm14L3ZteC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS92bXgvdm14LmM9ODI5OD1zdGF0aWMgaW5saW5lIGludCB1NjRfc2hsX2Rpdl91NjQodTY0IGEsIHVuc2lnbmVkIGludCBzaGlmdCxcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTgzMTQtXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjgzMTU6aW50IHZteF9zZXRfaHZfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgZ3Vlc3RfZGVhZGxpbmVfdHNjLFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy04MzE2LVx0XHQgICAgIGJvb2wgKmV4cGlyZWQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTAwMAoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGF0IGNvZGU6CgoqKkRpdmluZyBpbnRvIHRoZSBWTVggVGltZXIgTWVjaGFuaXNtKioKCk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByb2xlIG9mIGB2bXhfc2V0X2h2X3RpbWVyYC4gSSBrbm93IHRoYXQgVk1YLCBvciBWaXJ0dWFsIE1hY2hpbmUgRXh0ZW5zaW9ucywgaXMgY3J1Y2lhbCBmb3IgdmlydHVhbGl6YXRpb24sIHNvIGFueXRoaW5nIHRpbWVyLXJlbGF0ZWQgaXMgZ29pbmcgdG8gYmUgY29yZSB0byBwZXJmb3JtYW5jZSBhbmQgYWNjdXJhY3kuIE15IGltbWVkaWF0ZSBmb2N1cyBpcyB0byBwaW5wb2ludCB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQuIEkgbmVlZCB0byB0cmFjZSBpdHMgYXNzaWdubWVudHMgYW5kIGNhbGxzIHRvIHVuZGVyc3RhbmQgaXRzIHB1cnBvc2UgYW5kIGludGVyYWN0aW9ucyB3aXRoaW4gdGhlIGh5cGVydmlzb3IuIEtub3dpbmcgaXRzIGNhbGxpbmcgY29udGV4dCB3aWxsIGdpdmUgbWUgY2x1ZXMgYWJvdXQgaG93IGl0JiMzOTtzIHNldHRpbmcgdXAgb3IgbWFuYWdpbmcgdGltZXJzIGZvciB2aXJ0dWFsIG1hY2hpbmVzLiBJcyBpdCBpbnZvbHZlZCBpbiB2aXJ0dWFsIENQVSBzY2hlZHVsaW5nLCBndWVzdCB0aW1lIG1hbmFnZW1lbnQsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5PyBUaGUgdHJhY2luZyBleGVyY2lzZSBzaG91bGQgYmUgc3RyYWlnaHRmb3J3YXJkIGVub3VnaCwgYnV0IGl0JiMzOTtzIHRoZSBmaXJzdCBzdGVwIHRvIHRydWx5IHVuZGVyc3RhbmQgdGhlIGludGVudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dm14X3NldF9odl90aW1lciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC94ODYva3ZtL3ZteC9tYWluLmM9ODAzPXN0YXRpYyBpbnQgdnRfc2V0X2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X2RlYWRsaW5lX3RzYyxcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYy04MDktXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYzo4MTA6XHRyZXR1cm4gdm14X3NldF9odl90aW1lcih2Y3B1LCBndWVzdF9kZWFkbGluZV90c2MsIGV4cGlyZWQpO1xuYXJjaC94ODYva3ZtL3ZteC9tYWluLmMtODExLX1cbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTgyOTg9c3RhdGljIGlubGluZSBpbnQgdTY0X3NobF9kaXZfdTY0KHU2NCBhLCB1bnNpZ25lZCBpbnQgc2hpZnQsXG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguYy04MzE0LVxuYXJjaC94ODYva3ZtL3ZteC92bXguYzo4MzE1OmludCB2bXhfc2V0X2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X2RlYWRsaW5lX3RzYyxcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtODMxNi1cdFx0ICAgICBib29sICpleHBpcmVkKVxuLS1cbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oPTEyMT12b2lkIHZteF91cGRhdGVfY3B1X2RpcnR5X2xvZ2dpbmcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oLTEyMi0jaWZkZWYgQ09ORklHX1g4Nl82NFxuYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmg6MTIzOmludCB2bXhfc2V0X2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X2RlYWRsaW5lX3RzYyxcbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oLTEyNC1cdFx0ICAgICBib29sICpleHBpcmVkKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTcwMAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDI4NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGb2N1c2luZyBvbiBIViBUaW1lciBMb2dpYyBpbiBLVk0qKgoKT2theSwgc28gSSYjMzk7bSBkaWdnaW5nIGludG8gS1ZNJiMzOTtzIEhWIHRpbWVyIGltcGxlbWVudGF0aW9uLiBMZXQmIzM5O3Mgc2VlLi4uIGB2dF9zZXRfaHZfdGltZXJgIGlzIGFsaWFzZWQgdG8gYHNldF9odl90aW1lcmAgd2l0aGluIGBrdm1feDg2X29wc2AuIFRoYXQmIzM5O3Mgd2hlcmUgdGhpbmdzIGdldCBpbnRlcmVzdGluZywgaXQmIzM5O3MgY2FsbGVkIGR1cmluZyB0aW1lciBzZXR1cCB3aXRoaW4gdGhlIGd1ZXN0LiBOb3QgYXMgZnJlcXVlbnRseSBhcyBzb21ldGhpbmcgbGlrZSBgdm14X3ZjcHVfcnVuYCwgYnV0IHN0aWxsIGEgY3J1Y2lhbCBmdW5jdGlvbiBmb3IgdGltZXIgY29uZmlndXJhdGlvbi4KCldhaXQsIGB2bXhfc2V0X2h2X3RpbWVyYCBpcyB0aGUga2V5IGZ1bmN0aW9uIHRvIGZvY3VzIG9uIGhlcmUuIEl0JiMzOTtzIHRoZSBvbmUgdGhhdCB3YXMgZGlyZWN0bHkgbW9kaWZpZWQgcmVjZW50bHksIGFuZCBjb250YWlucyB0aGUgbG9naWMgdGhhdCBjaGVja3MgdGhlIHRpbWVyIGxpbWl0LiBQZXJmZWN0IQoKTm93LCB3aGF0IGFib3V0IHRoZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbnM/IGBjYWxjX3ByZWVtcHRpb25fdGltZXJfbGltaXRgIGFuZCBgdm14X2hhcmR3YXJlX3NldHVwYCBhcmUgbWFya2VkIGFzIGBfX2luaXRgLCBzbyB0aGV5IGFyZSBvbmx5IGNhbGxlZCBkdXJpbmcgbW9kdWxlIGxvYWQuIFRoYXQgbWVhbnMgZGlyZWN0IGZ1enppbmcgb2YgdGhlbSBpc24mIzM5O3QgcHJhY3RpY2FsLgoKQWxyaWdodCwgc28gYHZteF9zZXRfaHZfdGltZXJgIGlzIHN0aWxsIHRoZSBiZXN0IGNhbmRpZGF0ZS4gQXJlIHRoZXJlIGFueSBvdGhlciBwcm9taXNpbmcgZnVuY3Rpb25zPyBIbW0sIGB2bXhfdXBkYXRlX2h2X3RpbWVyYCBsb29rcyBpbnRlcmVzdGluZywgaXQmIzM5O3MgYWxzbyBiZWVuIG1vZGlmaWVkLCBidXQgaXQmIzM5O3MgY2FsbGVkIG9uICpldmVyeSogdm1lbnRyeSwgdGhhdCBtYWtlcyBpdCBwcmV0dHkgaG90LiBJdCBjb3VsZCBiZSB0b28gZnJlcXVlbnQgdG8gZWZmZWN0aXZlbHkgdGFyZ2V0LiBMZXQmIzM5O3Mgc3RpY2sgd2l0aCBgdm14X3NldF9odl90aW1lcmAgZm9yIG5vdy4KCkhvbGQgb24sIGxldCBtZSBxdWlja2x5IGNvbmZpcm0gd2hhdCB0cmlnZ2VycyBgdm14X3NldF9odl90aW1lcmAuIEFoLCBpdCYjMzk7cyB0cmlnZ2VyZWQgd2hlbiB0aGUgZ3Vlc3QgcHJvZ3JhbXMgdGhlIExBUElDIHRpbWVyIG9yIHNpbWlsYXIuIFRoYXQmIzM5O3MgZ29vZCB0byBrbm93LiBMZXQmIzM5O3MgdHJhY2UgaXQgYmFjayB0byBgc2V0X2h2X3RpbWVyYCBpbiBgYXJjaC94ODYva3ZtL2xhcGljLmNgIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBhbnkgb3RoZXIgdXNlZnVsIGxvZ2ljIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMyAxNTo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZXRfaHZfdGltZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4Ni9rdm0vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gveDg2L2t2bS9sYXBpYy5jPTE5ND1zdGF0aWMgYm9vbCBrdm1fY2FuX3VzZV9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpXG5hcmNoL3g4Ni9rdm0vbGFwaWMuYy0xOTUte1xuYXJjaC94ODYva3ZtL2xhcGljLmM6MTk2Olx0cmV0dXJuIGt2bV94ODZfb3BzLnNldF9odl90aW1lclxuYXJjaC94ODYva3ZtL2xhcGljLmMtMTk3LVx0ICAgICAgIFx1MDAyNlx1MDAyNiAhKGt2bV9td2FpdF9pbl9ndWVzdCh2Y3B1LVx1MDAzZWt2bSkgfHxcbi0tXG5hcmNoL3g4Ni9rdm0vbGFwaWMuYz0yMjcwPXN0YXRpYyBib29sIHN0YXJ0X2h2X3RpbWVyKHN0cnVjdCBrdm1fbGFwaWMgKmFwaWMpXG4tLVxuYXJjaC94ODYva3ZtL2xhcGljLmMtMjI4Mi1cbmFyY2gveDg2L2t2bS9sYXBpYy5jOjIyODM6XHRpZiAoa3ZtX3g4Nl9jYWxsKHNldF9odl90aW1lcikodmNwdSwga3RpbWVyLVx1MDAzZXRzY2RlYWRsaW5lLCBcdTAwMjZleHBpcmVkKSlcbmFyY2gveDg2L2t2bS9sYXBpYy5jLTIyODQtXHRcdHJldHVybiBmYWxzZTtcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYz03OTM9c3RhdGljIHZvaWQgdnRfd3JpdGVfdHNjX211bHRpcGxpZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuLS1cbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jLTgwMi0jaWZkZWYgQ09ORklHX1g4Nl82NFxuYXJjaC94ODYva3ZtL3ZteC9tYWluLmM6ODAzOnN0YXRpYyBpbnQgdnRfc2V0X2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X2RlYWRsaW5lX3RzYyxcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jLTgwNC1cdFx0XHQgICAgICBib29sICpleHBpcmVkKVxuLS1cbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jLTgwOS1cbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jOjgxMDpcdHJldHVybiB2bXhfc2V0X2h2X3RpbWVyKHZjcHUsIGd1ZXN0X2RlYWRsaW5lX3RzYywgZXhwaXJlZCk7XG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYy04MTEtfVxuLS1cbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jPTgxMz1zdGF0aWMgdm9pZCB2dF9jYW5jZWxfaHZfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxuYXJjaC94ODYva3ZtL3ZteC9tYWluLmMtODE0LXtcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jOjgxNTpcdC8qIFZNWC1wcmVlbXB0aW9uIHRpbWVyIGNhbiYjMzk7dCBiZSBzZXQuICBTZWUgdnRfc2V0X2h2X3RpbWVyKCkuICovXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYy04MTYtXHRpZiAoaXNfdGRfdmNwdSh2Y3B1KSlcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYz04ODA9c3RydWN0IGt2bV94ODZfb3BzIHZ0X3g4Nl9vcHMgX19pbml0ZGF0YSA9IHtcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYy0xMDAzLSNpZmRlZiBDT05GSUdfWDg2XzY0XG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYzoxMDA0Olx0LnNldF9odl90aW1lciA9IHZ0X29wKHNldF9odl90aW1lciksXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYy0xMDA1LVx0LmNhbmNlbF9odl90aW1lciA9IHZ0X29wKGNhbmNlbF9odl90aW1lciksXG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguYz03Mzk1PXN0YXRpYyB2b2lkIHZteF91cGRhdGVfaHZfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcmNlX2ltbWVkaWF0ZV9leGl0KVxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNzQwNi1cdFx0aWYgKHZteC1cdTAwM2Vodl9kZWFkbGluZV90c2MgXHUwMDNlIHRzY2wpXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjc0MDc6XHRcdFx0Lyogc2V0X2h2X3RpbWVyIGVuc3VyZXMgdGhlIGRlbHRhIGZpdHMgaW4gMzItYml0cyAqL1xuYXJjaC94ODYva3ZtL3ZteC92bXguYy03NDA4LVx0XHRcdGRlbHRhX3RzYyA9ICh1MzIpKCh2bXgtXHUwMDNlaHZfZGVhZGxpbmVfdHNjIC0gdHNjbCkgXHUwMDNlXHUwMDNlXG4tLVxuYXJjaC94ODYva3ZtL3ZteC92bXguYz04Mjk4PXN0YXRpYyBpbmxpbmUgaW50IHU2NF9zaGxfZGl2X3U2NCh1NjQgYSwgdW5zaWduZWQgaW50IHNoaWZ0LFxuLS1cbmFyY2gveDg2L2t2bS92bXgvdm14LmMtODMxNC1cbmFyY2gveDg2L2t2bS92bXgvdm14LmM6ODMxNTppbnQgdm14X3NldF9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBndWVzdF9kZWFkbGluZV90c2MsXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTgzMTYtXHRcdCAgICAgYm9vbCAqZXhwaXJlZClcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTg2MDk9X19pbml0IGludCB2bXhfaGFyZHdhcmVfc2V0dXAodm9pZClcbi0tXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTg3NjYtXHRpZiAoIWVuYWJsZV9wcmVlbXB0aW9uX3RpbWVyKSB7XG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjg3Njc6XHRcdHZ0X3g4Nl9vcHMuc2V0X2h2X3RpbWVyID0gTlVMTDtcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtODc2OC1cdFx0dnRfeDg2X29wcy5jYW5jZWxfaHZfdGltZXIgPSBOVUxMO1xuLS1cbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oPTEyMT12b2lkIHZteF91cGRhdGVfY3B1X2RpcnR5X2xvZ2dpbmcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KTtcbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oLTEyMi0jaWZkZWYgQ09ORklHX1g4Nl82NFxuYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmg6MTIzOmludCB2bXhfc2V0X2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X2RlYWRsaW5lX3RzYyxcbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oLTEyNC1cdFx0ICAgICBib29sICpleHBpcmVkKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzg5MgoJCQkJCQkJb3V0cHV0OiA5MwoJCQkJCQkJdGhvdWdodHM6IDI5NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiB0aGUgUGF0Y2gqKgoKT2theSwgc28gYHZteF9zZXRfaHZfdGltZXJgIGxvb2tzIGxpa2UgdGhlIGNyaXRpY2FsIGZ1bmN0aW9uIHRvIGZvY3VzIG9uIGhlcmUuIFRoYXQgc2VlbXMgbGlrZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgZm9yIGEgZGVlcGVyIGRpdmUuIEkgc2hvdWxkIHByb2JhYmx5IGFsc28gY2hlY2sgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuCgpSaWdodCwgYENPTkZJR19LVk1fSU5URUxgIGlzIHRoZSBwcmltYXJ5IG9uZSwgb2YgY291cnNlLiBBbmQsIHRoZSBjb2RlIGlzIHVzaW5nIGAjaWZkZWYgQ09ORklHX1g4Nl82NGAgYXJvdW5kIHRoYXQgdGltZXIgZnVuY3Rpb24sIHNvIHRoYXQmIzM5O3MgaW1wbGljaXRseSByZXF1aXJlZCBhcyB3ZWxsLiBCdXQgYENPTkZJR19YODZfNjRgIGlzIGZvdW5kYXRpb25hbDsgd2UgZG9uJiMzOTt0IG5lZWQgdG8gZXhwbGljaXRseSBkZWNsYXJlIHRoYXQgb25lLgoKTGV0IG1lIHJlY2FwIHdoYXQgdGhlIHBhdGNoIGFjdHVhbGx5ICpkb2VzKi4gSXQmIzM5O3MgYSB3b3JrYXJvdW5kIGZvciBhIFZNWC1wcmVlbXB0aW9uIHRpbWVyIGlzc3VlLCBzcGVjaWZpY2FsbHkgYSBoYXJkd2FyZSBlcnJhdHVtLiBJdCBhcHBlYXJzIHRvIGNhcCB0aGUgdGltZXImIzM5O3MgdmFsdWUgYmFzZWQgb24gYSBjYWxjdWxhdGlvbiB1c2luZyBDUFVJRCBkYXRhIOKAkyBgMl4yNSAqIENQVUlELjE1SDpFQlggLyBDUFVJRC4xNUg6RUFYYC4gSXQmIzM5O3MgdHdlYWtpbmcgYHZteF9zZXRfaHZfdGltZXJgIHRvIGNoZWNrIGlmIGBkZWx0YV90c2MgJmd0OyZndDsgY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGlgIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBgcHJlZW1wdGlvbl90aW1lcl9saW1pdGAuIEFuZCB0aGVuLCBpdCYjMzk7cyBtb2RpZnlpbmcgYHZteF91cGRhdGVfaHZfdGltZXJgIHRvIHdyaXRlIGBwcmVlbXB0aW9uX3RpbWVyX2xpbWl0IC0gMWAgd2hlbiBzb2Z0LWRpc2FibGluZyB0aGUgdGltZXIsIGFzIG9wcG9zZWQgdG8gc2V0dGluZyBhIHZhbHVlIG9mIGAtMWAuCgpUaGlzIGlzIGEgY2xlYXIsIGZ1bmN0aW9uYWwgY2hhbmdlIHRvIHRoZSB0aW1lciBiZWhhdmlvci4gR2l2ZW4gdGhlIGhhcmR3YXJlIGRlcGVuZGVuY3ksIEkmIzM5O2Qgc2F5IHRoaXMgaXMgZGVmaW5pdGVseSBzb21ldGhpbmcgdG8gZnV6ei4KCkFscmlnaHQsIHRoZSBjb3JlIGZvY3VzIGlzIGB2bXhfc2V0X2h2X3RpbWVyYC4gV2UmIzM5O2xsIG5lZWQgYEtWTV9JTlRFTGAgZW5hYmxlZC4gSSBjYW4gY2FsbCBzZXQtcmVzdWx0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjMgMTU6NTk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTV9JTlRFTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZteF9zZXRfaHZfdGltZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGZ1bmN0aW9uYWwgd29ya2Fyb3VuZCBmb3IgYSBWTVgtcHJlZW1wdGlvbiB0aW1lciBlcnJhdHVtIGluIEtWTSwgbW9kaWZ5aW5nIGhvdyB0aGUgdGltZXIgbGltaXQgaXMgY2FsY3VsYXRlZCBhbmQgZW5mb3JjZWQuIFRoaXMgYWZmZWN0cyBndWVzdCBleGVjdXRpb24gYW5kIHRpbWVyIGhhbmRsaW5nLCBtYWtpbmcgaXQgc3VpdGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTV9JTlRFTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3ZteF9zZXRfaHZfdGltZXImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGZ1bmN0aW9uYWwgd29ya2Fyb3VuZCBmb3IgYSBWTVgtcHJlZW1wdGlvbiB0aW1lciBlcnJhdHVtIGluIEtWTSwgbW9kaWZ5aW5nIGhvdyB0aGUgdGltZXIgbGltaXQgaXMgY2FsY3VsYXRlZCBhbmQgZW5mb3JjZWQuIFRoaXMgYWZmZWN0cyBndWVzdCBleGVjdXRpb24gYW5kIHRpbWVyIGhhbmRsaW5nLCBtYWtpbmcgaXQgc3VpdGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTo1OTowMS40OTIzMzI0MDNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzE4NDQyMzY3MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1fSU5URUxcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2bXhfc2V0X2h2X3RpbWVyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGZ1bmN0aW9uYWwgd29ya2Fyb3VuZCBmb3IgYSBWTVgtcHJlZW1wdGlvbiB0aW1lciBlcnJhdHVtIGluIEtWTSwgbW9kaWZ5aW5nIGhvdyB0aGUgdGltZXIgbGltaXQgaXMgY2FsY3VsYXRlZCBhbmQgZW5mb3JjZWQuIFRoaXMgYWZmZWN0cyBndWVzdCBleGVjdXRpb24gYW5kIHRpbWVyIGhhbmRsaW5nLCBtYWtpbmcgaXQgc3VpdGFibGUgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjU5OjAxLjQ5MjM0MDM2M1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTc0MDgwNjkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMzVlOWViODE3ZDVlNmJkNTQzYTdhZjhlMDJiMDlhODU3ZjE0Nzg2YlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEp1bCAyMyAxNTo1ODo1OSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xcbmluZGV4IGNjNzVmZWVjMDVkYWE0Li4yYzIyNmU0ODNmZWNmNCAxMDA2NDRcXG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXFxuKysrIGIvYXJjaC94ODYva3ZtL3ZteC92bXguY1xcbkBAIC0xNTEsNiArMTUxLDcgQEAgbW9kdWxlX3BhcmFtKGR1bXBfaW52YWxpZF92bWNzLCBib29sLCAwNjQ0KTtcXG4gLyogR3Vlc3RfdHNjIC1cXHUwMDNlIGhvc3RfdHNjIGNvbnZlcnNpb24gcmVxdWlyZXMgNjQtYml0IGRpdmlzaW9uLiAgKi9cXG4gc3RhdGljIGludCBfX3JlYWRfbW9zdGx5IGNwdV9wcmVlbXB0aW9uX3RpbWVyX211bHRpO1xcbiBzdGF0aWMgYm9vbCBfX3JlYWRfbW9zdGx5IGVuYWJsZV9wcmVlbXB0aW9uX3RpbWVyID0gMTtcXG4rc3RhdGljIHU2NCBfX3JvX2FmdGVyX2luaXQgcHJlZW1wdGlvbl90aW1lcl9saW1pdDtcXG4gI2lmZGVmIENPTkZJR19YODZfNjRcXG4gbW9kdWxlX3BhcmFtX25hbWVkKHByZWVtcHRpb25fdGltZXIsIGVuYWJsZV9wcmVlbXB0aW9uX3RpbWVyLCBib29sLCBTX0lSVUdPKTtcXG4gI2VuZGlmXFxuQEAgLTc0MTIsNyArNzQxMyw3IEBAIHN0YXRpYyB2b2lkIHZteF91cGRhdGVfaHZfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29sIGZvcmNlX2ltbWVkaWF0ZV9leGl0XFxuIFxcdFxcdHZtY3Nfd3JpdGUzMihWTVhfUFJFRU1QVElPTl9USU1FUl9WQUxVRSwgZGVsdGFfdHNjKTtcXG4gXFx0XFx0dm14LVxcdTAwM2Vsb2FkZWRfdm1jcy1cXHUwMDNlaHZfdGltZXJfc29mdF9kaXNhYmxlZCA9IGZhbHNlO1xcbiBcXHR9IGVsc2UgaWYgKCF2bXgtXFx1MDAzZWxvYWRlZF92bWNzLVxcdTAwM2Vodl90aW1lcl9zb2Z0X2Rpc2FibGVkKSB7XFxuLVxcdFxcdHZtY3Nfd3JpdGUzMihWTVhfUFJFRU1QVElPTl9USU1FUl9WQUxVRSwgLTEpO1xcbitcXHRcXHR2bWNzX3dyaXRlMzIoVk1YX1BSRUVNUFRJT05fVElNRVJfVkFMVUUsIHByZWVtcHRpb25fdGltZXJfbGltaXQgLSAxKTtcXG4gXFx0XFx0dm14LVxcdTAwM2Vsb2FkZWRfdm1jcy1cXHUwMDNlaHZfdGltZXJfc29mdF9kaXNhYmxlZCA9IHRydWU7XFxuIFxcdH1cXG4gfVxcbkBAIC04MzM4LDEyICs4MzM5LDEyIEBAIGludCB2bXhfc2V0X2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X2RlYWRsaW5lX3RzYyxcXG4gXFx0XFx0cmV0dXJuIC1FUkFOR0U7XFxuIFxcbiBcXHQvKlxcbi1cXHQgKiBJZiB0aGUgZGVsdGEgdHNjIGNhbid0IGZpdCBpbiB0aGUgMzIgYml0IGFmdGVyIHRoZSBtdWx0aSBzaGlmdCxcXG4tXFx0ICogd2UgY2FuJ3QgdXNlIHRoZSBwcmVlbXB0aW9uIHRpbWVyLlxcbitcXHQgKiBJZiB0aGUgZGVsdGEgdHNjIGV4Y2VlZHMgdGhlIHByZWVtcHRpb24gdGltZXIgbGltaXQgYWZ0ZXIgdGhlXFxuK1xcdCAqIG11bHRpIHNoaWZ0LCB3ZSBjYW4ndCB1c2UgdGhlIHByZWVtcHRpb24gdGltZXIuXFxuIFxcdCAqIEl0J3MgcG9zc2libGUgdGhhdCBpdCBmaXRzIG9uIGxhdGVyIHZtZW50cmllcywgYnV0IGNoZWNraW5nXFxuIFxcdCAqIG9uIGV2ZXJ5IHZtZW50cnkgaXMgY29zdGx5IHNvIHdlIGp1c3QgdXNlIGFuIGhydGltZXIuXFxuIFxcdCAqL1xcbi1cXHRpZiAoZGVsdGFfdHNjIFxcdTAwM2VcXHUwMDNlIChjcHVfcHJlZW1wdGlvbl90aW1lcl9tdWx0aSArIDMyKSlcXG4rXFx0aWYgKChkZWx0YV90c2MgXFx1MDAzZVxcdTAwM2UgY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGkpIFxcdTAwM2U9IHByZWVtcHRpb25fdGltZXJfbGltaXQpXFxuIFxcdFxcdHJldHVybiAtRVJBTkdFO1xcbiBcXG4gXFx0dm14LVxcdTAwM2Vodl9kZWFkbGluZV90c2MgPSB0c2NsICsgZGVsdGFfdHNjO1xcbkBAIC04NTg1LDYgKzg1ODYsMjYgQEAgc3RhdGljIHZvaWQgX19pbml0IHZteF9zZXR1cF9tZV9zcHRlX21hc2sodm9pZClcXG4gXFx0a3ZtX21tdV9zZXRfbWVfc3B0ZV9tYXNrKDAsIG1lX21hc2spO1xcbiB9XFxuIFxcbisvKlxcbisgKiBXb3JrYXJvdW5kIGZvciBhIHdpZGVzcHJlYWQgSW50ZWwgZXJyYXR1bSAoZS5nLiBFTVIxNTgpIHdoZXJlIHRoZVxcbisgKiBWTVgtcHJlZW1wdGlvbiB0aW1lciBtYXkgZXhwaXJlIGVhcmxpZXIgdGhhbiBleHBlY3RlZCB3aGVuIHByb2dyYW1tZWRcXG4rICogd2l0aCBsYXJnZSB2YWx1ZXMuIFRoZSB3b3JrYXJvdW5kIGlzIHRvIGNhcCB0aGUgdGltZXIgdmFsdWUgdG8gc3RyaWN0bHlcXG4rICogbGVzcyB0aGFuIDJeMjUgKiBDUFVJRC4xNUg6RUJYIC8gQ1BVSUQuMTVIOkVBWC5cXG4rICovXFxuK3N0YXRpYyBfX2luaXQgdTY0IGNhbGNfcHJlZW1wdGlvbl90aW1lcl9saW1pdCh2b2lkKVxcbit7XFxuK1xcdHUzMiBlYXgsIGVieCwgZWN4LCBlZHg7XFxuK1xcbitcXHRpZiAoY3B1aWRfZWF4KDApIFxcdTAwM2MgMHgxNSlcXG4rXFx0XFx0cmV0dXJuIDFVTEwgXFx1MDAzY1xcdTAwM2MgMzI7XFxuK1xcbitcXHRjcHVpZCgweDE1LCBcXHUwMDI2ZWF4LCBcXHUwMDI2ZWJ4LCBcXHUwMDI2ZWN4LCBcXHUwMDI2ZWR4KTtcXG4rXFx0aWYgKCFlYXggfHwgIWVieClcXG4rXFx0XFx0cmV0dXJuIDFVTEwgXFx1MDAzY1xcdTAwM2MgMzI7XFxuK1xcbitcXHRyZXR1cm4gbWluX3QodTY0LCAxVUxMIFxcdTAwM2NcXHUwMDNjIDMyLCBkaXZfdTY0KCh1NjQpZWJ4IFxcdTAwM2NcXHUwMDNjIDI1LCBlYXgpKTtcXG4rfVxcbitcXG4gX19pbml0IGludCB2bXhfaGFyZHdhcmVfc2V0dXAodm9pZClcXG4ge1xcbiBcXHR1bnNpZ25lZCBsb25nIGhvc3RfYm5kY2ZncztcXG5AQCAtODcyNiw2ICs4NzQ3LDggQEAgX19pbml0IGludCB2bXhfaGFyZHdhcmVfc2V0dXAodm9pZClcXG4gXFx0XFx0Y3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGkgPVxcbiBcXHRcXHRcXHR2bXhfbWlzY19wcmVlbXB0aW9uX3RpbWVyX3JhdGUodm1jc19jb25maWcubWlzYyk7XFxuIFxcbitcXHRcXHRwcmVlbXB0aW9uX3RpbWVyX2xpbWl0ID0gY2FsY19wcmVlbXB0aW9uX3RpbWVyX2xpbWl0KCk7XFxuK1xcbiBcXHRcXHRpZiAodHNjX2toeilcXG4gXFx0XFx0XFx0dXNlX3RpbWVyX2ZyZXEgPSAodTY0KXRzY19raHogKiAxMDAwO1xcbiBcXHRcXHR1c2VfdGltZXJfZnJlcSBcXHUwMDNlXFx1MDAzZT0gY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGk7XFxuQEAgLTg3MzUsNyArODc1OCw4IEBAIF9faW5pdCBpbnQgdm14X2hhcmR3YXJlX3NldHVwKHZvaWQpXFxuIFxcdFxcdCAqIHZhbHVlLiAgRG9uJ3QgdXNlIHRoZSB0aW1lciBpZiBpdCBtaWdodCBjYXVzZSBzcHVyaW91cyBleGl0c1xcbiBcXHRcXHQgKiBhdCBhIHJhdGUgZmFzdGVyIHRoYW4gMC4xIEh6IChvZiB1bmludGVycnVwdGVkIGd1ZXN0IHRpbWUpLlxcbiBcXHRcXHQgKi9cXG4tXFx0XFx0aWYgKHVzZV90aW1lcl9mcmVxIFxcdTAwM2UgMHhmZmZmZmZmZnUgLyAxMClcXG4rXFx0XFx0aWYgKCFwcmVlbXB0aW9uX3RpbWVyX2xpbWl0IHx8XFxuK1xcdFxcdCAgICB1c2VfdGltZXJfZnJlcSBcXHUwMDNlIChwcmVlbXB0aW9uX3RpbWVyX2xpbWl0IC0gMSkgLyAxMClcXG4gXFx0XFx0XFx0ZW5hYmxlX3ByZWVtcHRpb25fdGltZXIgPSBmYWxzZTtcXG4gXFx0fVxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMTU6NTk6MDIuMDY2OTg0NzIzWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MzI2MDk3NjM0NzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNX0lOVEVMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidm14X3NldF9odl90aW1lclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBmdW5jdGlvbmFsIHdvcmthcm91bmQgZm9yIGEgVk1YLXByZWVtcHRpb24gdGltZXIgZXJyYXR1bSBpbiBLVk0sIG1vZGlmeWluZyBob3cgdGhlIHRpbWVyIGxpbWl0IGlzIGNhbGN1bGF0ZWQgYW5kIGVuZm9yY2VkLiBUaGlzIGFmZmVjdHMgZ3Vlc3QgZXhlY3V0aW9uIGFuZCB0aW1lciBoYW5kbGluZywgbWFraW5nIGl0IHN1aXRhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDM1ZTllYjgxN2Q1ZTZiZDU0M2E3YWY4ZTAyYjA5YTg1N2YxNDc4NmJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEp1bCAyMyAxNTo1ODo1OSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS92bXgvdm14LmMgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG5pbmRleCBjYzc1ZmVlYzA1ZGFhNC4uMmMyMjZlNDgzZmVjZjQgMTAwNjQ0XG4tLS0gYS9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG4rKysgYi9hcmNoL3g4Ni9rdm0vdm14L3ZteC5jXG5AQCAtMTUxLDYgKzE1MSw3IEBAIG1vZHVsZV9wYXJhbShkdW1wX2ludmFsaWRfdm1jcywgYm9vbCwgMDY0NCk7XG4gLyogR3Vlc3RfdHNjIC1cdTAwM2UgaG9zdF90c2MgY29udmVyc2lvbiByZXF1aXJlcyA2NC1iaXQgZGl2aXNpb24uICAqL1xuIHN0YXRpYyBpbnQgX19yZWFkX21vc3RseSBjcHVfcHJlZW1wdGlvbl90aW1lcl9tdWx0aTtcbiBzdGF0aWMgYm9vbCBfX3JlYWRfbW9zdGx5IGVuYWJsZV9wcmVlbXB0aW9uX3RpbWVyID0gMTtcbitzdGF0aWMgdTY0IF9fcm9fYWZ0ZXJfaW5pdCBwcmVlbXB0aW9uX3RpbWVyX2xpbWl0O1xuICNpZmRlZiBDT05GSUdfWDg2XzY0XG4gbW9kdWxlX3BhcmFtX25hbWVkKHByZWVtcHRpb25fdGltZXIsIGVuYWJsZV9wcmVlbXB0aW9uX3RpbWVyLCBib29sLCBTX0lSVUdPKTtcbiAjZW5kaWZcbkBAIC03NDEyLDcgKzc0MTMsNyBAQCBzdGF0aWMgdm9pZCB2bXhfdXBkYXRlX2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgYm9vbCBmb3JjZV9pbW1lZGlhdGVfZXhpdFxuIFx0XHR2bWNzX3dyaXRlMzIoVk1YX1BSRUVNUFRJT05fVElNRVJfVkFMVUUsIGRlbHRhX3RzYyk7XG4gXHRcdHZteC1cdTAwM2Vsb2FkZWRfdm1jcy1cdTAwM2Vodl90aW1lcl9zb2Z0X2Rpc2FibGVkID0gZmFsc2U7XG4gXHR9IGVsc2UgaWYgKCF2bXgtXHUwMDNlbG9hZGVkX3ZtY3MtXHUwMDNlaHZfdGltZXJfc29mdF9kaXNhYmxlZCkge1xuLVx0XHR2bWNzX3dyaXRlMzIoVk1YX1BSRUVNUFRJT05fVElNRVJfVkFMVUUsIC0xKTtcbitcdFx0dm1jc193cml0ZTMyKFZNWF9QUkVFTVBUSU9OX1RJTUVSX1ZBTFVFLCBwcmVlbXB0aW9uX3RpbWVyX2xpbWl0IC0gMSk7XG4gXHRcdHZteC1cdTAwM2Vsb2FkZWRfdm1jcy1cdTAwM2Vodl90aW1lcl9zb2Z0X2Rpc2FibGVkID0gdHJ1ZTtcbiBcdH1cbiB9XG5AQCAtODMzOCwxMiArODMzOSwxMiBAQCBpbnQgdm14X3NldF9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBndWVzdF9kZWFkbGluZV90c2MsXG4gXHRcdHJldHVybiAtRVJBTkdFO1xuIFxuIFx0Lypcbi1cdCAqIElmIHRoZSBkZWx0YSB0c2MgY2FuJ3QgZml0IGluIHRoZSAzMiBiaXQgYWZ0ZXIgdGhlIG11bHRpIHNoaWZ0LFxuLVx0ICogd2UgY2FuJ3QgdXNlIHRoZSBwcmVlbXB0aW9uIHRpbWVyLlxuK1x0ICogSWYgdGhlIGRlbHRhIHRzYyBleGNlZWRzIHRoZSBwcmVlbXB0aW9uIHRpbWVyIGxpbWl0IGFmdGVyIHRoZVxuK1x0ICogbXVsdGkgc2hpZnQsIHdlIGNhbid0IHVzZSB0aGUgcHJlZW1wdGlvbiB0aW1lci5cbiBcdCAqIEl0J3MgcG9zc2libGUgdGhhdCBpdCBmaXRzIG9uIGxhdGVyIHZtZW50cmllcywgYnV0IGNoZWNraW5nXG4gXHQgKiBvbiBldmVyeSB2bWVudHJ5IGlzIGNvc3RseSBzbyB3ZSBqdXN0IHVzZSBhbiBocnRpbWVyLlxuIFx0ICovXG4tXHRpZiAoZGVsdGFfdHNjIFx1MDAzZVx1MDAzZSAoY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGkgKyAzMikpXG4rXHRpZiAoKGRlbHRhX3RzYyBcdTAwM2VcdTAwM2UgY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGkpIFx1MDAzZT0gcHJlZW1wdGlvbl90aW1lcl9saW1pdClcbiBcdFx0cmV0dXJuIC1FUkFOR0U7XG4gXG4gXHR2bXgtXHUwMDNlaHZfZGVhZGxpbmVfdHNjID0gdHNjbCArIGRlbHRhX3RzYztcbkBAIC04NTg1LDYgKzg1ODYsMjYgQEAgc3RhdGljIHZvaWQgX19pbml0IHZteF9zZXR1cF9tZV9zcHRlX21hc2sodm9pZClcbiBcdGt2bV9tbXVfc2V0X21lX3NwdGVfbWFzaygwLCBtZV9tYXNrKTtcbiB9XG4gXG4rLypcbisgKiBXb3JrYXJvdW5kIGZvciBhIHdpZGVzcHJlYWQgSW50ZWwgZXJyYXR1bSAoZS5nLiBFTVIxNTgpIHdoZXJlIHRoZVxuKyAqIFZNWC1wcmVlbXB0aW9uIHRpbWVyIG1heSBleHBpcmUgZWFybGllciB0aGFuIGV4cGVjdGVkIHdoZW4gcHJvZ3JhbW1lZFxuKyAqIHdpdGggbGFyZ2UgdmFsdWVzLiBUaGUgd29ya2Fyb3VuZCBpcyB0byBjYXAgdGhlIHRpbWVyIHZhbHVlIHRvIHN0cmljdGx5XG4rICogbGVzcyB0aGFuIDJeMjUgKiBDUFVJRC4xNUg6RUJYIC8gQ1BVSUQuMTVIOkVBWC5cbisgKi9cbitzdGF0aWMgX19pbml0IHU2NCBjYWxjX3ByZWVtcHRpb25fdGltZXJfbGltaXQodm9pZClcbit7XG4rXHR1MzIgZWF4LCBlYngsIGVjeCwgZWR4O1xuK1xuK1x0aWYgKGNwdWlkX2VheCgwKSBcdTAwM2MgMHgxNSlcbitcdFx0cmV0dXJuIDFVTEwgXHUwMDNjXHUwMDNjIDMyO1xuK1xuK1x0Y3B1aWQoMHgxNSwgXHUwMDI2ZWF4LCBcdTAwMjZlYngsIFx1MDAyNmVjeCwgXHUwMDI2ZWR4KTtcbitcdGlmICghZWF4IHx8ICFlYngpXG4rXHRcdHJldHVybiAxVUxMIFx1MDAzY1x1MDAzYyAzMjtcbitcbitcdHJldHVybiBtaW5fdCh1NjQsIDFVTEwgXHUwMDNjXHUwMDNjIDMyLCBkaXZfdTY0KCh1NjQpZWJ4IFx1MDAzY1x1MDAzYyAyNSwgZWF4KSk7XG4rfVxuK1xuIF9faW5pdCBpbnQgdm14X2hhcmR3YXJlX3NldHVwKHZvaWQpXG4ge1xuIFx0dW5zaWduZWQgbG9uZyBob3N0X2JuZGNmZ3M7XG5AQCAtODcyNiw2ICs4NzQ3LDggQEAgX19pbml0IGludCB2bXhfaGFyZHdhcmVfc2V0dXAodm9pZClcbiBcdFx0Y3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGkgPVxuIFx0XHRcdHZteF9taXNjX3ByZWVtcHRpb25fdGltZXJfcmF0ZSh2bWNzX2NvbmZpZy5taXNjKTtcbiBcbitcdFx0cHJlZW1wdGlvbl90aW1lcl9saW1pdCA9IGNhbGNfcHJlZW1wdGlvbl90aW1lcl9saW1pdCgpO1xuK1xuIFx0XHRpZiAodHNjX2toeilcbiBcdFx0XHR1c2VfdGltZXJfZnJlcSA9ICh1NjQpdHNjX2toeiAqIDEwMDA7XG4gXHRcdHVzZV90aW1lcl9mcmVxIFx1MDAzZVx1MDAzZT0gY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGk7XG5AQCAtODczNSw3ICs4NzU4LDggQEAgX19pbml0IGludCB2bXhfaGFyZHdhcmVfc2V0dXAodm9pZClcbiBcdFx0ICogdmFsdWUuICBEb24ndCB1c2UgdGhlIHRpbWVyIGlmIGl0IG1pZ2h0IGNhdXNlIHNwdXJpb3VzIGV4aXRzXG4gXHRcdCAqIGF0IGEgcmF0ZSBmYXN0ZXIgdGhhbiAwLjEgSHogKG9mIHVuaW50ZXJydXB0ZWQgZ3Vlc3QgdGltZSkuXG4gXHRcdCAqL1xuLVx0XHRpZiAodXNlX3RpbWVyX2ZyZXEgXHUwMDNlIDB4ZmZmZmZmZmZ1IC8gMTApXG4rXHRcdGlmICghcHJlZW1wdGlvbl90aW1lcl9saW1pdCB8fFxuK1x0XHQgICAgdXNlX3RpbWVyX2ZyZXEgXHUwMDNlIChwcmVlbXB0aW9uX3RpbWVyX2xpbWl0IC0gMSkgLyAxMClcbiBcdFx0XHRlbmFibGVfcHJlZW1wdGlvbl90aW1lciA9IGZhbHNlO1xuIFx0fVxuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMTU6NTk6MDIuMDY2OTg4MzQzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTgzMjE0NTI2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBLVk0gVk1YIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBLVk0gVk1YIGNvZGUsIHNwZWNpZmljYWxseSBgYXJjaC94ODYva3ZtL3ZteC92bXguY2AuIEl0IHNlZW1zIHRvIGJlIGFkZHJlc3NpbmcgYW4gSW50ZWwgZXJyYXR1bSByZWxhdGVkIHRvIHRoZSBWTVgtcHJlZW1wdGlvbiB0aW1lciwgd2hpY2ggaW1tZWRpYXRlbHkgcGlxdWVzIG15IGludGVyZXN0IGZyb20gYSBmdXp6aW5nIHBlcnNwZWN0aXZlLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGBwcmVlbXB0aW9uX3RpbWVyX2xpbWl0YCB2YXJpYWJsZSBhbmQsIGNydWNpYWxseSwgYWx0ZXJzIGhvdyB0aGUgdGltZXIgaXMgY2FsY3VsYXRlZCBhbmQgdXBkYXRlZCB3aXRoaW4gdGhlIFZNWCBjb2RlLiBXZSBzZWUgY2FsbHMgaW4gYGNhbGNfcHJlZW1wdGlvbl90aW1lcl9saW1pdCgpYCwgYHZteF91cGRhdGVfaHZfdGltZXIoKWAsIGFuZCBgdm14X3NldF9odl90aW1lcigpYCB3aGljaCBhcmUgYWxsIGtleSBhcmVhcy4gSXQgYWxzbyB0b3VjaGVzIGB2bXhfaGFyZHdhcmVfc2V0dXAoKWAuXG5cblRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSDigJMgaXQgZGlyZWN0bHkgaW1wYWN0cyBob3cgdGhlIGd1ZXN0J3MgdGltZXIgaXMgbWFuYWdlZCwgd2hpY2ggbWVhbnMgaXQgZGVmaW5pdGVseSBjaGFuZ2VzIEtWTSBndWVzdCBleGVjdXRpb24uIFRpbWVyLXJlbGF0ZWQgY29kZSBpcyBvZnRlbiBhIGZlcnRpbGUgZ3JvdW5kIGZvciBmdXp6aW5nLiBUaGUgZmFjdCB0aGF0IHdlIGhhdmUgYSBgcHJlZW1wdGlvbl90aW1lcl9saW1pdGAgYW5kIGl0cyBjYWxjdWxhdGlvbiBhZGRlZCB0byB0aGUgY29kZSBnaXZlcyB1cyBtdWx0aXBsZSBhdHRhY2sgdmVjdG9ycyBhcyBpbnB1dCBjb3VsZCBub3cgYWZmZWN0IHRoZSBiZWhhdmlvciBvZiB0aGUgVk1YIGNvZGUuIFNvLCBhYnNvbHV0ZWx5LCB0aGlzIHBhdGNoIGhhcyBmdXp6aW5nIHBvdGVudGlhbC4gVGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGFwcGVhcnMgdG8gYmUgYEtWTV9JTlRFTGAsIG9yIHBvc3NpYmx5IGp1c3QgYEtWTWAgaWYgdGhlcmUncyBhIGZhbGxiYWNrLlxuXG5NeSBuZXh0IHN0ZXAgd291bGQgYmUgdG8gZG91YmxlLWNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIGBhcmNoL3g4Ni9rdm0vdm14L3ZteC5jYCB0byBjb25maXJtIHRoZSBidWlsZCBkZXBlbmRlbmN5IGFuZCBlbnN1cmUgYENPTkZJR19LVk1fSU5URUxgIGlzIGluZGVlZCB0aGUgZGVjaWRpbmcgZmFjdG9yLiBUaGVuLCB0aW1lIHRvIGZpcmUgdXAgdGhlIGZ1enplci5cblxuXG4iLCJJbnB1dFRva2VucyI6MzA0MSwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxMSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjU5OjA3Ljg5OTEzNjgwN1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NDAzOTcyMDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiS1ZNX0lOVEVMXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gveDg2L2t2bS9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vTWFrZWZpbGU9MjE9a3ZtLWludGVsLSQoQ09ORklHX0tWTV9IWVBFUlYpXFx0Kz0gdm14L2h5cGVydi5vIHZteC9oeXBlcnZfZXZtY3Mub1xcbmFyY2gveDg2L2t2bS9NYWtlZmlsZToyMjprdm0taW50ZWwtJChDT05GSUdfS1ZNX0lOVEVMX1REWClcXHQrPSB2bXgvdGR4Lm9cXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGUtMjMtXFxuLS1cXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGU9MzU9b2JqLSQoQ09ORklHX0tWTV9YODYpXFx0Kz0ga3ZtLm9cXG5hcmNoL3g4Ni9rdm0vTWFrZWZpbGU6MzY6b2JqLSQoQ09ORklHX0tWTV9JTlRFTClcXHQrPSBrdm0taW50ZWwub1xcbmFyY2gveDg2L2t2bS9NYWtlZmlsZS0zNy1vYmotJChDT05GSUdfS1ZNX0FNRClcXHQrPSBrdm0tYW1kLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMTU6NTk6MDguMzM5NTM5MTA2WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg1ODY2MDkxMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgS1ZNIEludGVsIEh5cGVydmlzb3IgVGltZXIgVXBkYXRlcyoqXG5cbk9rYXksIHNvIHdlJ3JlIGRlYWxpbmcgd2l0aCBgQ09ORklHX0tWTV9JTlRFTGAsIHVuZGVyc3Rvb2QuIE5vdywgdGhlIGtleSBzeW1ib2xzIEkgbmVlZCB0byBmb2N1cyBvbiBhcmUgYHZteF91cGRhdGVfaHZfdGltZXJgIGFuZCBgdm14X3NldF9odl90aW1lcmAuIEkgd2FudCB0byBxdWlja2x5IGFzc2VzcyB3aGV0aGVyIHRoZXNlIGZ1bmN0aW9ucyBhcmUgcGVyZm9ybWFuY2UtY3JpdGljYWwsIGVzc2VudGlhbGx5IHdoZXRoZXIgdGhleSdyZSBob3QtcGF0aCBmdW5jdGlvbnMuIE15IGluc3RpbmN0IHRlbGxzIG1lIHRoYXQgdGhleSdyZSBsaWtlbHkgaW52b2x2ZWQgaW4gaHlwZXJ2aXNvciB0aW1lciBvcGVyYXRpb25zLCB3aGljaCBjYW4gYmUgZnJlcXVlbnQsIGJ1dCBJIG5lZWQgY29uZmlybWF0aW9uLlxuXG5TcGVjaWZpY2FsbHksIEknbSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBgdm14X3VwZGF0ZV9odl90aW1lcmAgaXMgdHJpZ2dlcmVkIG9uIGEgdmlydHVhbCBtYWNoaW5lIGVudHJ5IG9yIHNpbWlsYXIgZXZlbnRzLCB3aGljaCB3b3VsZCBzdHJvbmdseSBzdWdnZXN0IGl0cyBpbXBvcnRhbmNlLiBJJ20gZ29pbmcgdG8gcnVuIGEgcXVpY2sgYGdyZXBgIGZvciBgdm14X3VwZGF0ZV9odl90aW1lcmAgaW4gdGhlIHNvdXJjZSB0byBkZXRlcm1pbmUgaXRzIGNhbGxpbmcgY29udGV4dC4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIHNvbGlkIGNsdWUgYXMgdG8gaXRzIGZyZXF1ZW5jeSBhbmQgdGh1cywgaXRzIHNpZ25pZmljYW5jZSBpbiB0ZXJtcyBvZiBwZXJmb3JtYW5jZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzg2MiwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTo1OToxMi4xOTgyMDI1NjhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTE3MzQyMDQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidm14X3VwZGF0ZV9odl90aW1lclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4Ni9rdm0vdm14L3ZteC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gveDg2L2t2bS92bXgvdm14LmM9NzM3Mj1zdGF0aWMgdm9pZCB2bXhfcmVmcmVzaF9ndWVzdF9wZXJmX2dsb2JhbF9jb250cm9sKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNzM5NC1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjczOTU6c3RhdGljIHZvaWQgdm14X3VwZGF0ZV9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yY2VfaW1tZWRpYXRlX2V4aXQpXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy03Mzk2LXtcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmM9NzUwNj1mYXN0cGF0aF90IHZteF92Y3B1X3J1bihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBydW5fZmxhZ3MpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTc1OTItXFx0aWYgKGVuYWJsZV9wcmVlbXB0aW9uX3RpbWVyKVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmM6NzU5MzpcXHRcXHR2bXhfdXBkYXRlX2h2X3RpbWVyKHZjcHUsIGZvcmNlX2ltbWVkaWF0ZV9leGl0KTtcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTc1OTQtXFx0ZWxzZSBpZiAoZm9yY2VfaW1tZWRpYXRlX2V4aXQpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjU5OjEyLjI4OTk0MjA1MloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1NzM5NzI2NDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzLiBIZXJlJ3MgaG93IEknbSB0aGlua2luZyBhYm91dCB0aGlzIGNvZGU6XG5cbioqQW5hbHl6aW5nIHRoZSBIeXBlcnZpc29yIFRpbWVyIFVwZGF0ZSoqXG5cblJpZ2h0LCBzbyBgdm14X3VwZGF0ZV9odl90aW1lcmAuLi4gdGhhdCdzIHRyaWdnZXJlZCBmcm9tIGB2bXhfdmNwdV9ydW5gLiBBaCwgKnRoZSogYHZteF92Y3B1X3J1bmAgbG9vcC4gVGhhdCdzIGEgY29yZSBleGVjdXRpb24gcGF0aCwgYSByZWFsIHBlcmZvcm1hbmNlIGhvdHNwb3QuIFdlJ3JlIHRhbGtpbmcgYWJvdXQgc29tZXRoaW5nIHRoYXQncyBsaWtlbHkgZXhlY3V0ZWQgaW5jcmVkaWJseSBmcmVxdWVudGx5LiBTbywgYW55IG92ZXJoZWFkIHRoZXJlIGlzIGNydWNpYWwgdG8gbWluaW1pemUuIE5vdywgbGV0J3Mgc2VlIGhvdyBgdm14X3NldF9odl90aW1lcmAgaXMgY2FsbGVkIC0gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNpcmN1bXN0YW5jZXMgdW5kZXIgd2hpY2ggdGhlIHRpbWVyIGlzIGFjdHVhbGx5IGJlaW5nIHNldC4gVGhpcyB3aWxsIGhlbHAgbWUgZXZhbHVhdGUgaG93IG9mdGVuIHRoaXMgY29kZSBwYXRoIGlzIGhpdCBhbmQgd2hldGhlciB3ZSBhcmUgYWJsZSB0byBvcHRpbWl6ZSBpdC4gTGV0J3Mgc2VlIHdoYXQncyBjYWxsaW5nIHRoYXQgZnVuY3Rpb24uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1NDAsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTo1OToxNS44NjM5MTcwOTNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE2MjQ4ODUyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZteF9zZXRfaHZfdGltZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC94ODYva3ZtL3ZteC92bXguY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTgyOTg9c3RhdGljIGlubGluZSBpbnQgdTY0X3NobF9kaXZfdTY0KHU2NCBhLCB1bnNpZ25lZCBpbnQgc2hpZnQsXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTgzMTQtXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYzo4MzE1OmludCB2bXhfc2V0X2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X2RlYWRsaW5lX3RzYyxcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTgzMTYtXFx0XFx0ICAgICBib29sICpleHBpcmVkKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTo1OToxNS45ODAxNzAwNTVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzQ5NzQ2OTA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgYW5hbHl6aW5nIHRoYXQgY29kZTpcblxuKipEaXZpbmcgaW50byB0aGUgVk1YIFRpbWVyIE1lY2hhbmlzbSoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSByb2xlIG9mIGB2bXhfc2V0X2h2X3RpbWVyYC4gSSBrbm93IHRoYXQgVk1YLCBvciBWaXJ0dWFsIE1hY2hpbmUgRXh0ZW5zaW9ucywgaXMgY3J1Y2lhbCBmb3IgdmlydHVhbGl6YXRpb24sIHNvIGFueXRoaW5nIHRpbWVyLXJlbGF0ZWQgaXMgZ29pbmcgdG8gYmUgY29yZSB0byBwZXJmb3JtYW5jZSBhbmQgYWNjdXJhY3kuIE15IGltbWVkaWF0ZSBmb2N1cyBpcyB0byBwaW5wb2ludCB3aGVyZSB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQuIEkgbmVlZCB0byB0cmFjZSBpdHMgYXNzaWdubWVudHMgYW5kIGNhbGxzIHRvIHVuZGVyc3RhbmQgaXRzIHB1cnBvc2UgYW5kIGludGVyYWN0aW9ucyB3aXRoaW4gdGhlIGh5cGVydmlzb3IuIEtub3dpbmcgaXRzIGNhbGxpbmcgY29udGV4dCB3aWxsIGdpdmUgbWUgY2x1ZXMgYWJvdXQgaG93IGl0J3Mgc2V0dGluZyB1cCBvciBtYW5hZ2luZyB0aW1lcnMgZm9yIHZpcnR1YWwgbWFjaGluZXMuIElzIGl0IGludm9sdmVkIGluIHZpcnR1YWwgQ1BVIHNjaGVkdWxpbmcsIGd1ZXN0IHRpbWUgbWFuYWdlbWVudCwgb3Igc29tZXRoaW5nIGVsc2UgZW50aXJlbHk/IFRoZSB0cmFjaW5nIGV4ZXJjaXNlIHNob3VsZCBiZSBzdHJhaWdodGZvcndhcmQgZW5vdWdoLCBidXQgaXQncyB0aGUgZmlyc3Qgc3RlcCB0byB0cnVseSB1bmRlcnN0YW5kIHRoZSBpbnRlbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUwMDAsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTo1OToxOS4zMjk5MTkwNDJaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjkyNzQ1NDIzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZteF9zZXRfaHZfdGltZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC94ODYva3ZtL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vdm14L21haW4uYz04MDM9c3RhdGljIGludCB2dF9zZXRfaHZfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1NjQgZ3Vlc3RfZGVhZGxpbmVfdHNjLFxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC9tYWluLmMtODA5LVxcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jOjgxMDpcXHRyZXR1cm4gdm14X3NldF9odl90aW1lcih2Y3B1LCBndWVzdF9kZWFkbGluZV90c2MsIGV4cGlyZWQpO1xcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jLTgxMS19XFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTgyOTg9c3RhdGljIGlubGluZSBpbnQgdTY0X3NobF9kaXZfdTY0KHU2NCBhLCB1bnNpZ25lZCBpbnQgc2hpZnQsXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTgzMTQtXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYzo4MzE1OmludCB2bXhfc2V0X2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X2RlYWRsaW5lX3RzYyxcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTgzMTYtXFx0XFx0ICAgICBib29sICpleHBpcmVkKVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmg9MTIxPXZvaWQgdm14X3VwZGF0ZV9jcHVfZGlydHlfbG9nZ2luZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpO1xcbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oLTEyMi0jaWZkZWYgQ09ORklHX1g4Nl82NFxcbmFyY2gveDg2L2t2bS92bXgveDg2X29wcy5oOjEyMzppbnQgdm14X3NldF9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBndWVzdF9kZWFkbGluZV90c2MsXFxuYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgtMTI0LVxcdFxcdCAgICAgYm9vbCAqZXhwaXJlZCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIzVDE1OjU5OjE5LjQyMjcxMjg3NVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NTIyMzU1MDI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZvY3VzaW5nIG9uIEhWIFRpbWVyIExvZ2ljIGluIEtWTSoqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gS1ZNJ3MgSFYgdGltZXIgaW1wbGVtZW50YXRpb24uIExldCdzIHNlZS4uLiBgdnRfc2V0X2h2X3RpbWVyYCBpcyBhbGlhc2VkIHRvIGBzZXRfaHZfdGltZXJgIHdpdGhpbiBga3ZtX3g4Nl9vcHNgLiBUaGF0J3Mgd2hlcmUgdGhpbmdzIGdldCBpbnRlcmVzdGluZywgaXQncyBjYWxsZWQgZHVyaW5nIHRpbWVyIHNldHVwIHdpdGhpbiB0aGUgZ3Vlc3QuIE5vdCBhcyBmcmVxdWVudGx5IGFzIHNvbWV0aGluZyBsaWtlIGB2bXhfdmNwdV9ydW5gLCBidXQgc3RpbGwgYSBjcnVjaWFsIGZ1bmN0aW9uIGZvciB0aW1lciBjb25maWd1cmF0aW9uLlxuXG5XYWl0LCBgdm14X3NldF9odl90aW1lcmAgaXMgdGhlIGtleSBmdW5jdGlvbiB0byBmb2N1cyBvbiBoZXJlLiBJdCdzIHRoZSBvbmUgdGhhdCB3YXMgZGlyZWN0bHkgbW9kaWZpZWQgcmVjZW50bHksIGFuZCBjb250YWlucyB0aGUgbG9naWMgdGhhdCBjaGVja3MgdGhlIHRpbWVyIGxpbWl0LiBQZXJmZWN0IVxuXG5Ob3csIHdoYXQgYWJvdXQgdGhlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9ucz8gYGNhbGNfcHJlZW1wdGlvbl90aW1lcl9saW1pdGAgYW5kIGB2bXhfaGFyZHdhcmVfc2V0dXBgIGFyZSBtYXJrZWQgYXMgYF9faW5pdGAsIHNvIHRoZXkgYXJlIG9ubHkgY2FsbGVkIGR1cmluZyBtb2R1bGUgbG9hZC4gVGhhdCBtZWFucyBkaXJlY3QgZnV6emluZyBvZiB0aGVtIGlzbid0IHByYWN0aWNhbC5cblxuQWxyaWdodCwgc28gYHZteF9zZXRfaHZfdGltZXJgIGlzIHN0aWxsIHRoZSBiZXN0IGNhbmRpZGF0ZS4gQXJlIHRoZXJlIGFueSBvdGhlciBwcm9taXNpbmcgZnVuY3Rpb25zPyBIbW0sIGB2bXhfdXBkYXRlX2h2X3RpbWVyYCBsb29rcyBpbnRlcmVzdGluZywgaXQncyBhbHNvIGJlZW4gbW9kaWZpZWQsIGJ1dCBpdCdzIGNhbGxlZCBvbiAqZXZlcnkqIHZtZW50cnksIHRoYXQgbWFrZXMgaXQgcHJldHR5IGhvdC4gSXQgY291bGQgYmUgdG9vIGZyZXF1ZW50IHRvIGVmZmVjdGl2ZWx5IHRhcmdldC4gTGV0J3Mgc3RpY2sgd2l0aCBgdm14X3NldF9odl90aW1lcmAgZm9yIG5vdy5cblxuSG9sZCBvbiwgbGV0IG1lIHF1aWNrbHkgY29uZmlybSB3aGF0IHRyaWdnZXJzIGB2bXhfc2V0X2h2X3RpbWVyYC4gQWgsIGl0J3MgdHJpZ2dlcmVkIHdoZW4gdGhlIGd1ZXN0IHByb2dyYW1zIHRoZSBMQVBJQyB0aW1lciBvciBzaW1pbGFyLiBUaGF0J3MgZ29vZCB0byBrbm93LiBMZXQncyB0cmFjZSBpdCBiYWNrIHRvIGBzZXRfaHZfdGltZXJgIGluIGBhcmNoL3g4Ni9rdm0vbGFwaWMuY2AgdG8gc2VlIGlmIHRoZXJlJ3MgYW55IG90aGVyIHVzZWZ1bCBsb2dpYyB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTcwMCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yM1QxNTo1OToyNi45NDUwNzA5NjJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzNjY3Mzk4OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzZXRfaHZfdGltZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYXJjaC94ODYva3ZtL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3g4Ni9rdm0vbGFwaWMuYz0xOTQ9c3RhdGljIGJvb2wga3ZtX2Nhbl91c2VfaHZfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbmFyY2gveDg2L2t2bS9sYXBpYy5jLTE5NS17XFxuYXJjaC94ODYva3ZtL2xhcGljLmM6MTk2OlxcdHJldHVybiBrdm1feDg2X29wcy5zZXRfaHZfdGltZXJcXG5hcmNoL3g4Ni9rdm0vbGFwaWMuYy0xOTctXFx0ICAgICAgIFxcdTAwMjZcXHUwMDI2ICEoa3ZtX213YWl0X2luX2d1ZXN0KHZjcHUtXFx1MDAzZWt2bSkgfHxcXG4tLVxcbmFyY2gveDg2L2t2bS9sYXBpYy5jPTIyNzA9c3RhdGljIGJvb2wgc3RhcnRfaHZfdGltZXIoc3RydWN0IGt2bV9sYXBpYyAqYXBpYylcXG4tLVxcbmFyY2gveDg2L2t2bS9sYXBpYy5jLTIyODItXFxuYXJjaC94ODYva3ZtL2xhcGljLmM6MjI4MzpcXHRpZiAoa3ZtX3g4Nl9jYWxsKHNldF9odl90aW1lcikodmNwdSwga3RpbWVyLVxcdTAwM2V0c2NkZWFkbGluZSwgXFx1MDAyNmV4cGlyZWQpKVxcbmFyY2gveDg2L2t2bS9sYXBpYy5jLTIyODQtXFx0XFx0cmV0dXJuIGZhbHNlO1xcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC9tYWluLmM9NzkzPXN0YXRpYyB2b2lkIHZ0X3dyaXRlX3RzY19tdWx0aXBsaWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSlcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jLTgwMi0jaWZkZWYgQ09ORklHX1g4Nl82NFxcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jOjgwMzpzdGF0aWMgaW50IHZ0X3NldF9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBndWVzdF9kZWFkbGluZV90c2MsXFxuYXJjaC94ODYva3ZtL3ZteC9tYWluLmMtODA0LVxcdFxcdFxcdCAgICAgIGJvb2wgKmV4cGlyZWQpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYy04MDktXFxuYXJjaC94ODYva3ZtL3ZteC9tYWluLmM6ODEwOlxcdHJldHVybiB2bXhfc2V0X2h2X3RpbWVyKHZjcHUsIGd1ZXN0X2RlYWRsaW5lX3RzYywgZXhwaXJlZCk7XFxuYXJjaC94ODYva3ZtL3ZteC9tYWluLmMtODExLX1cXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jPTgxMz1zdGF0aWMgdm9pZCB2dF9jYW5jZWxfaHZfdGltZXIoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KVxcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jLTgxNC17XFxuYXJjaC94ODYva3ZtL3ZteC9tYWluLmM6ODE1OlxcdC8qIFZNWC1wcmVlbXB0aW9uIHRpbWVyIGNhbid0IGJlIHNldC4gIFNlZSB2dF9zZXRfaHZfdGltZXIoKS4gKi9cXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYy04MTYtXFx0aWYgKGlzX3RkX3ZjcHUodmNwdSkpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYz04ODA9c3RydWN0IGt2bV94ODZfb3BzIHZ0X3g4Nl9vcHMgX19pbml0ZGF0YSA9IHtcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jLTEwMDMtI2lmZGVmIENPTkZJR19YODZfNjRcXG5hcmNoL3g4Ni9rdm0vdm14L21haW4uYzoxMDA0OlxcdC5zZXRfaHZfdGltZXIgPSB2dF9vcChzZXRfaHZfdGltZXIpLFxcbmFyY2gveDg2L2t2bS92bXgvbWFpbi5jLTEwMDUtXFx0LmNhbmNlbF9odl90aW1lciA9IHZ0X29wKGNhbmNlbF9odl90aW1lciksXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jPTczOTU9c3RhdGljIHZvaWQgdm14X3VwZGF0ZV9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGJvb2wgZm9yY2VfaW1tZWRpYXRlX2V4aXQpXFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jLTc0MDYtXFx0XFx0aWYgKHZteC1cXHUwMDNlaHZfZGVhZGxpbmVfdHNjIFxcdTAwM2UgdHNjbClcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjc0MDc6XFx0XFx0XFx0Lyogc2V0X2h2X3RpbWVyIGVuc3VyZXMgdGhlIGRlbHRhIGZpdHMgaW4gMzItYml0cyAqL1xcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtNzQwOC1cXHRcXHRcXHRkZWx0YV90c2MgPSAodTMyKSgodm14LVxcdTAwM2Vodl9kZWFkbGluZV90c2MgLSB0c2NsKSBcXHUwMDNlXFx1MDAzZVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYz04Mjk4PXN0YXRpYyBpbmxpbmUgaW50IHU2NF9zaGxfZGl2X3U2NCh1NjQgYSwgdW5zaWduZWQgaW50IHNoaWZ0LFxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy04MzE0LVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmM6ODMxNTppbnQgdm14X3NldF9odl90aW1lcihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHU2NCBndWVzdF9kZWFkbGluZV90c2MsXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy04MzE2LVxcdFxcdCAgICAgYm9vbCAqZXhwaXJlZClcXG4tLVxcbmFyY2gveDg2L2t2bS92bXgvdm14LmM9ODYwOT1fX2luaXQgaW50IHZteF9oYXJkd2FyZV9zZXR1cCh2b2lkKVxcbi0tXFxuYXJjaC94ODYva3ZtL3ZteC92bXguYy04NzY2LVxcdGlmICghZW5hYmxlX3ByZWVtcHRpb25fdGltZXIpIHtcXG5hcmNoL3g4Ni9rdm0vdm14L3ZteC5jOjg3Njc6XFx0XFx0dnRfeDg2X29wcy5zZXRfaHZfdGltZXIgPSBOVUxMO1xcbmFyY2gveDg2L2t2bS92bXgvdm14LmMtODc2OC1cXHRcXHR2dF94ODZfb3BzLmNhbmNlbF9odl90aW1lciA9IE5VTEw7XFxuLS1cXG5hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaD0xMjE9dm9pZCB2bXhfdXBkYXRlX2NwdV9kaXJ0eV9sb2dnaW5nKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7XFxuYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmgtMTIyLSNpZmRlZiBDT05GSUdfWDg2XzY0XFxuYXJjaC94ODYva3ZtL3ZteC94ODZfb3BzLmg6MTIzOmludCB2bXhfc2V0X2h2X3RpbWVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTY0IGd1ZXN0X2RlYWRsaW5lX3RzYyxcXG5hcmNoL3g4Ni9rdm0vdm14L3g4Nl9vcHMuaC0xMjQtXFx0XFx0ICAgICBib29sICpleHBpcmVkKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMTU6NTk6MjcuMzgxNzQ5NDAxWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcxMjU2NzU1NzQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIFBhdGNoKipcblxuT2theSwgc28gYHZteF9zZXRfaHZfdGltZXJgIGxvb2tzIGxpa2UgdGhlIGNyaXRpY2FsIGZ1bmN0aW9uIHRvIGZvY3VzIG9uIGhlcmUuIFRoYXQgc2VlbXMgbGlrZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgZm9yIGEgZGVlcGVyIGRpdmUuIEkgc2hvdWxkIHByb2JhYmx5IGFsc28gY2hlY2sgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgY29uZmlndXJhdGlvbiBkZXBlbmRlbmNpZXMuXG5cblJpZ2h0LCBgQ09ORklHX0tWTV9JTlRFTGAgaXMgdGhlIHByaW1hcnkgb25lLCBvZiBjb3Vyc2UuIEFuZCwgdGhlIGNvZGUgaXMgdXNpbmcgYCNpZmRlZiBDT05GSUdfWDg2XzY0YCBhcm91bmQgdGhhdCB0aW1lciBmdW5jdGlvbiwgc28gdGhhdCdzIGltcGxpY2l0bHkgcmVxdWlyZWQgYXMgd2VsbC4gQnV0IGBDT05GSUdfWDg2XzY0YCBpcyBmb3VuZGF0aW9uYWw7IHdlIGRvbid0IG5lZWQgdG8gZXhwbGljaXRseSBkZWNsYXJlIHRoYXQgb25lLlxuXG5MZXQgbWUgcmVjYXAgd2hhdCB0aGUgcGF0Y2ggYWN0dWFsbHkgKmRvZXMqLiBJdCdzIGEgd29ya2Fyb3VuZCBmb3IgYSBWTVgtcHJlZW1wdGlvbiB0aW1lciBpc3N1ZSwgc3BlY2lmaWNhbGx5IGEgaGFyZHdhcmUgZXJyYXR1bS4gSXQgYXBwZWFycyB0byBjYXAgdGhlIHRpbWVyJ3MgdmFsdWUgYmFzZWQgb24gYSBjYWxjdWxhdGlvbiB1c2luZyBDUFVJRCBkYXRhIOKAkyBgMl4yNSAqIENQVUlELjE1SDpFQlggLyBDUFVJRC4xNUg6RUFYYC4gSXQncyB0d2Vha2luZyBgdm14X3NldF9odl90aW1lcmAgdG8gY2hlY2sgaWYgYGRlbHRhX3RzYyBcdTAwM2VcdTAwM2UgY3B1X3ByZWVtcHRpb25fdGltZXJfbXVsdGlgIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBgcHJlZW1wdGlvbl90aW1lcl9saW1pdGAuIEFuZCB0aGVuLCBpdCdzIG1vZGlmeWluZyBgdm14X3VwZGF0ZV9odl90aW1lcmAgdG8gd3JpdGUgYHByZWVtcHRpb25fdGltZXJfbGltaXQgLSAxYCB3aGVuIHNvZnQtZGlzYWJsaW5nIHRoZSB0aW1lciwgYXMgb3Bwb3NlZCB0byBzZXR0aW5nIGEgdmFsdWUgb2YgYC0xYC5cblxuVGhpcyBpcyBhIGNsZWFyLCBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgdGltZXIgYmVoYXZpb3IuIEdpdmVuIHRoZSBoYXJkd2FyZSBkZXBlbmRlbmN5LCBJJ2Qgc2F5IHRoaXMgaXMgZGVmaW5pdGVseSBzb21ldGhpbmcgdG8gZnV6ei5cblxuQWxyaWdodCwgdGhlIGNvcmUgZm9jdXMgaXMgYHZteF9zZXRfaHZfdGltZXJgLiBXZSdsbCBuZWVkIGBLVk1fSU5URUxgIGVuYWJsZWQuIEkgY2FuIGNhbGwgc2V0LXJlc3VsdHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc4OTIsIk91dHB1dFRva2VucyI6OTMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjNUMTU6NTk6MzQuNTA3NDI3NjA2WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTY5MzE3OTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1fSU5URUxcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2bXhfc2V0X2h2X3RpbWVyXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggaW50cm9kdWNlcyBhIGZ1bmN0aW9uYWwgd29ya2Fyb3VuZCBmb3IgYSBWTVgtcHJlZW1wdGlvbiB0aW1lciBlcnJhdHVtIGluIEtWTSwgbW9kaWZ5aW5nIGhvdyB0aGUgdGltZXIgbGltaXQgaXMgY2FsY3VsYXRlZCBhbmQgZW5mb3JjZWQuIFRoaXMgYWZmZWN0cyBndWVzdCBleGVjdXRpb24gYW5kIHRpbWVyIGhhbmRsaW5nLCBtYWtpbmcgaXQgc3VpdGFibGUgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNX0lOVEVMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidm14X3NldF9odl90aW1lclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBmdW5jdGlvbmFsIHdvcmthcm91bmQgZm9yIGEgVk1YLXByZWVtcHRpb24gdGltZXIgZXJyYXR1bSBpbiBLVk0sIG1vZGlmeWluZyBob3cgdGhlIHRpbWVyIGxpbWl0IGlzIGNhbGN1bGF0ZWQgYW5kIGVuZm9yY2VkLiBUaGlzIGFmZmVjdHMgZ3Vlc3QgZXhlY3V0aW9uIGFuZCB0aW1lciBoYW5kbGluZywgbWFraW5nIGl0IHN1aXRhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflownd27b[1] Phase: Succeeded StartedAt: 2026-07-23 15:59:46 +0000 UTC FinishedAt: 2026-07-23 15:59:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-23 15:59:46 +0000 UTC FinishedAt: 2026-07-23 15:59:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2] Phase: Succeeded StartedAt: 2026-07-23 15:59:46 +0000 UTC FinishedAt: 2026-07-23 20:50:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-23 15:59:46 +0000 UTC FinishedAt: 2026-07-23 20:50:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-23 15:59:46 +0000 UTC FinishedAt: 2026-07-23 15:59:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-23 15:59:46 +0000 UTC FinishedAt: 2026-07-23 15:59:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},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-workflownd27b/series-workflownd27b-convert-artifact-1826680339/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-23 15:59:56 +0000 UTC FinishedAt: 2026-07-23 17:04:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-23 15:59:56 +0000 UTC FinishedAt: 2026-07-23 17:04:21 +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:*9cfd44a0-8059-436e-8a6f-2918c38c9d4d,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-workflownd27b/series-workflownd27b-convert-artifact-1826680339/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": "dc75bf29-cf47-41b7-b02c-5220d14ca0a0", "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-workflownd27b/series-workflownd27b-build-action-506487295/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build(0) Phase: Failed StartedAt: 2026-07-23 15:59:56 +0000 UTC FinishedAt: 2026-07-23 16:08:51 +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:*9cfd44a0-8059-436e-8a6f-2918c38c9d4d,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-workflownd27b/series-workflownd27b-convert-artifact-1826680339/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build(1) Phase: Failed StartedAt: 2026-07-23 16:14:23 +0000 UTC FinishedAt: 2026-07-23 16:18:50 +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:*9cfd44a0-8059-436e-8a6f-2918c38c9d4d,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-workflownd27b/series-workflownd27b-convert-artifact-1826680339/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build(2) Phase: Succeeded StartedAt: 2026-07-23 16:24:02 +0000 UTC FinishedAt: 2026-07-23 17:02:51 +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:*9cfd44a0-8059-436e-8a6f-2918c38c9d4d,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-workflownd27b/series-workflownd27b-convert-artifact-1826680339/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": "dc75bf29-cf47-41b7-b02c-5220d14ca0a0", "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-workflownd27b/series-workflownd27b-build-action-506487295/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-23 17:04:21 +0000 UTC FinishedAt: 2026-07-23 17:04:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-23 17:04:21 +0000 UTC FinishedAt: 2026-07-23 17:04:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-23 17:04:21 +0000 UTC FinishedAt: 2026-07-23 17:04:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-23 17:04:21 +0000 UTC FinishedAt: 2026-07-23 17:04:27 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},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-workflownd27b/series-workflownd27b-convert-artifact-2467798282/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-23 17:04:31 +0000 UTC FinishedAt: 2026-07-23 17:06:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-23 17:04:31 +0000 UTC FinishedAt: 2026-07-23 17:06:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*dc75bf29-cf47-41b7-b02c-5220d14ca0a0,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-workflownd27b/series-workflownd27b-build-action-506487295/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-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-23 17:06:47 +0000 UTC FinishedAt: 2026-07-23 17:06:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-23 17:06:47 +0000 UTC FinishedAt: 2026-07-23 17:06:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-23 17:06:47 +0000 UTC FinishedAt: 2026-07-23 17:46:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-23 17:06:47 +0000 UTC FinishedAt: 2026-07-23 17:46:19 +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:*9cfd44a0-8059-436e-8a6f-2918c38c9d4d,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-workflownd27b/series-workflownd27b-convert-artifact-2467798282/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": "083e3145-4961-4e1c-9e3f-bd5bd21656d1", "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-workflownd27b/series-workflownd27b-build-action-2656492334/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-23 17:06:47 +0000 UTC FinishedAt: 2026-07-23 17:44:40 +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:*9cfd44a0-8059-436e-8a6f-2918c38c9d4d,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-workflownd27b/series-workflownd27b-convert-artifact-2467798282/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": "083e3145-4961-4e1c-9e3f-bd5bd21656d1", "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-workflownd27b/series-workflownd27b-build-action-2656492334/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-23 17:46:19 +0000 UTC FinishedAt: 2026-07-23 17:46:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-23 17:46:19 +0000 UTC FinishedAt: 2026-07-23 17:46:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-23 17:46:19 +0000 UTC FinishedAt: 2026-07-23 17:48:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-23 17:46:19 +0000 UTC FinishedAt: 2026-07-23 17:48:20 +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:*083e3145-4961-4e1c-9e3f-bd5bd21656d1,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-workflownd27b/series-workflownd27b-build-action-2656492334/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-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-23 17:48:30 +0000 UTC FinishedAt: 2026-07-23 20:50:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-23 17:48:30 +0000 UTC FinishedAt: 2026-07-23 20:50:52 +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":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"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:*dc75bf29-cf47-41b7-b02c-5220d14ca0a0,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*083e3145-4961-4e1c-9e3f-bd5bd21656d1,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-workflownd27b/series-workflownd27b-build-action-506487295/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-workflownd27b/series-workflownd27b-build-action-2656492334/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-23 17:48:30 +0000 UTC FinishedAt: 2026-07-23 17:48:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-23 17:48:30 +0000 UTC FinishedAt: 2026-07-23 17:48:36 +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":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"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-workflownd27b/series-workflownd27b-convert-artifact-2196456607/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-23 17:48:30 +0000 UTC FinishedAt: 2026-07-23 17:48:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-23 17:48:30 +0000 UTC FinishedAt: 2026-07-23 17:48:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-23 17:48:30 +0000 UTC FinishedAt: 2026-07-23 17:48:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-23 17:48:40 +0000 UTC FinishedAt: 2026-07-23 20:50:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflownd27b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["vmx_set_hv_timer"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e61e6fd4f139f2342a6bc86da602df7456ef87f6","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM_INTEL"],"series_id":"f3a5c1d6-4eef-49d9-b649-fac139c61e3e","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-23 17:48:40 +0000 UTC FinishedAt: 2026-07-23 20:50:42 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*dc75bf29-cf47-41b7-b02c-5220d14ca0a0,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*083e3145-4961-4e1c-9e3f-bd5bd21656d1,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-workflownd27b/series-workflownd27b-build-action-506487295/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-workflownd27b/series-workflownd27b-build-action-2656492334/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-workflownd27b/series-workflownd27b-convert-artifact-2196456607/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,}